summaryrefslogtreecommitdiffstats
path: root/docs/drakfont
diff options
context:
space:
mode:
authorThierry Vignaud <tv@mageia.org>2013-05-31 09:12:40 +0000
committerThierry Vignaud <tv@mageia.org>2013-05-31 09:12:40 +0000
commit891ba0678136faa17621d0ec88f8b53049560efa (patch)
treed32125a162601307d4a32a843e248407bd5bda0e /docs/drakfont
parent758d73118d3f8bb50c5b434f0e8c1f9756c8f298 (diff)
downloaddrakx-backup-do-not-use-891ba0678136faa17621d0ec88f8b53049560efa.tar
drakx-backup-do-not-use-891ba0678136faa17621d0ec88f8b53049560efa.tar.gz
drakx-backup-do-not-use-891ba0678136faa17621d0ec88f8b53049560efa.tar.bz2
drakx-backup-do-not-use-891ba0678136faa17621d0ec88f8b53049560efa.tar.xz
drakx-backup-do-not-use-891ba0678136faa17621d0ec88f8b53049560efa.zip
better log
Diffstat (limited to 'docs/drakfont')
0 files changed, 0 insertions, 0 deletions
-rw-r--r--Makefile109
-rw-r--r--docs/.cvsignore1
-rw-r--r--docs/BUGS10
-rw-r--r--docs/COPYING340
-rw-r--r--docs/HACKING126
-rw-r--r--docs/README377
-rw-r--r--docs/README.devel252
-rw-r--r--docs/README.pxe133
-rw-r--r--docs/SHORTCUTS51
-rw-r--r--docs/TODO515
-rw-r--r--docs/advocacy87
-rw-r--r--docs/advocacy-interactive60
-rw-r--r--docs/comparisons91
-rw-r--r--docs/diskdrake.TODO23
-rw-r--r--docs/drakfont/Makefile57
-rw-r--r--docs/drakfont/dia_srcs/drakfont.diabin4599 -> 0 bytes-rw-r--r--docs/drakfont/dia_srcs/drakfont_install.diabin3662 -> 0 bytes-rw-r--r--docs/drakfont/dia_srcs/drakfont_uninstall.diabin1908 -> 0 bytes-rw-r--r--docs/drakfont/drakfont.jpgbin134044 -> 0 bytes-rw-r--r--docs/drakfont/drakfont.tex152
-rw-r--r--docs/drakfont/drakfont_install.jpgbin86455 -> 0 bytes-rw-r--r--docs/drakfont/drakfont_uninstall.jpgbin42291 -> 0 bytes-rw-r--r--docs/drakfont/mandrake.ps534
-rw-r--r--docs/draknet_advanced_doc.txt165
-rwxr-xr-xdocs/interactive/ask_from29
-rwxr-xr-xdocs/interactive/ask_from_list27
-rwxr-xr-xdocs/interactive/ask_from_listf27
-rwxr-xr-xdocs/interactive/ask_from_treelist27
-rwxr-xr-xdocs/interactive/wait_message13
-rw-r--r--docs/mdk-vs-redhat43
-rw-r--r--docs/net_object_class.fig73
-rw-r--r--docs/object_class.fig32
-rw-r--r--docs/spec-DrakX-8.0.html405
-rw-r--r--docs/wizard.doc31
-rw-r--r--isolinux-graphic.bmpbin480566 -> 0 bytes-rw-r--r--kernel/.cvsignore3
-rw-r--r--kernel/Makefile13
-rwxr-xr-xkernel/check_mar.pl30
-rw-r--r--kernel/list_modules.pm197
-rw-r--r--kernel/modules.pl165
-rwxr-xr-xkernel/update_kernel100
-rw-r--r--live_update77
-rwxr-xr-xmake_boot_img522
-rw-r--r--mdk-stage1/.cvsignore12
-rw-r--r--mdk-stage1/Makefile260
-rw-r--r--mdk-stage1/Makefile.common57
-rw-r--r--mdk-stage1/Makefile.mkinitrd_helper30
-rw-r--r--mdk-stage1/adsl.c172
-rw-r--r--mdk-stage1/adsl.h34
-rw-r--r--mdk-stage1/automatic.c161
-rw-r--r--mdk-stage1/automatic.h32
-rw-r--r--mdk-stage1/bzlib/Makefile55
-rw-r--r--mdk-stage1/bzlib/blocksort.c1138
-rw-r--r--mdk-stage1/bzlib/bzlib.c1567
-rw-r--r--mdk-stage1/bzlib/bzlib.h319
-rw-r--r--mdk-stage1/bzlib/bzlib_private.h530
-rw-r--r--mdk-stage1/bzlib/compress.c720
-rw-r--r--mdk-stage1/bzlib/crctable.c148
-rw-r--r--mdk-stage1/bzlib/decompress.c664
-rw-r--r--mdk-stage1/bzlib/huffman.c232
-rw-r--r--mdk-stage1/bzlib/randtable.c128
-rw-r--r--mdk-stage1/cdrom.c181
-rw-r--r--mdk-stage1/cdrom.h29
-rw-r--r--mdk-stage1/config-stage1.h48
-rw-r--r--mdk-stage1/dhcp.c679
-rw-r--r--mdk-stage1/dhcp.h36
-rw-r--r--mdk-stage1/dietlibc/.cvsignore12
-rw-r--r--mdk-stage1/dietlibc/AUTHOR1
-rw-r--r--mdk-stage1/dietlibc/Makefile146
-rw-r--r--mdk-stage1/dietlibc/README43
-rw-r--r--mdk-stage1/dietlibc/alpha/Makefile.add5
-rw-r--r--mdk-stage1/dietlibc/alpha/__longjmp.S38
-rw-r--r--mdk-stage1/dietlibc/alpha/__time.c11
-rw-r--r--mdk-stage1/dietlibc/alpha/accept.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/bind.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/clone.S42
-rw-r--r--mdk-stage1/dietlibc/alpha/connect.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/divl.S101
-rw-r--r--mdk-stage1/dietlibc/alpha/divq.S102
-rw-r--r--mdk-stage1/dietlibc/alpha/getegid.S11
-rw-r--r--mdk-stage1/dietlibc/alpha/geteuid.S11
-rw-r--r--mdk-stage1/dietlibc/alpha/getgid.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/getpeername.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/getpid.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/getppid.S11
-rw-r--r--mdk-stage1/dietlibc/alpha/getsockname.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/getsockopt.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/getuid.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/listen.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/mmap.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/msgctl.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/msgget.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/msgrcv.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/msgsnd.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/pipe.S17
-rw-r--r--mdk-stage1/dietlibc/alpha/recv.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/recvfrom.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/recvmsg.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/reml.S101
-rw-r--r--mdk-stage1/dietlibc/alpha/remq.S97
-rw-r--r--mdk-stage1/dietlibc/alpha/semctl.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/semget.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/semop.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/send.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/sendmsg.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/sendto.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/seteuid.c7
-rw-r--r--mdk-stage1/dietlibc/alpha/setjmp.S46
-rw-r--r--mdk-stage1/dietlibc/alpha/setsockopt.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/shmat.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/shmctl.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/shmdt.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/shmget.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/shutdown.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/signal.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/sigprocmask.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/socket.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/socketcall.S5
-rw-r--r--mdk-stage1/dietlibc/alpha/start.S35
-rw-r--r--mdk-stage1/dietlibc/alpha/strlen.c32
-rw-r--r--mdk-stage1/dietlibc/alpha/time.S0
-rw-r--r--mdk-stage1/dietlibc/alpha/unified.S29
-rw-r--r--mdk-stage1/dietlibc/alpha/utime.S3
-rw-r--r--mdk-stage1/dietlibc/alpha/waitpid.S10
-rw-r--r--mdk-stage1/dietlibc/diet.c112
-rw-r--r--mdk-stage1/dietlibc/dietdirent.h6
-rw-r--r--mdk-stage1/dietlibc/dietfeatures.h42
-rw-r--r--mdk-stage1/dietlibc/dietstdarg.h12
-rw-r--r--mdk-stage1/dietlibc/dietstdio.h81
-rw-r--r--mdk-stage1/dietlibc/dietwarning.h23
-rw-r--r--mdk-stage1/dietlibc/dirstream.h78
-rw-r--r--mdk-stage1/dietlibc/i386/Makefile.add3
-rw-r--r--mdk-stage1/dietlibc/i386/__longjmp.S18
-rw-r--r--mdk-stage1/dietlibc/i386/__testandset.S8
-rw-r--r--mdk-stage1/dietlibc/i386/clone.S51
-rw-r--r--mdk-stage1/dietlibc/i386/mmap.c16
-rw-r--r--mdk-stage1/dietlibc/i386/select.S3
-rw-r--r--mdk-stage1/dietlibc/i386/setjmp.S62
-rw-r--r--mdk-stage1/dietlibc/i386/start.S42
-rw-r--r--mdk-stage1/dietlibc/i386/unified.S34
-rw-r--r--mdk-stage1/dietlibc/include/alloca.h0
-rw-r--r--mdk-stage1/dietlibc/include/arpa/inet.h19
-rw-r--r--mdk-stage1/dietlibc/include/arpa/nameser.h217
-rw-r--r--mdk-stage1/dietlibc/include/assert.h27
-rw-r--r--mdk-stage1/dietlibc/include/ctype.h28
-rw-r--r--mdk-stage1/dietlibc/include/daemon.h6
-rw-r--r--mdk-stage1/dietlibc/include/dirent.h26
-rw-r--r--mdk-stage1/dietlibc/include/dlfcn.h15
-rw-r--r--mdk-stage1/dietlibc/include/elf.h1
-rw-r--r--mdk-stage1/dietlibc/include/endian.h43
-rw-r--r--mdk-stage1/dietlibc/include/errno.h11
-rw-r--r--mdk-stage1/dietlibc/include/fcntl.h24
-rw-r--r--mdk-stage1/dietlibc/include/features.h3
-rw-r--r--mdk-stage1/dietlibc/include/fnmatch.h15
-rw-r--r--mdk-stage1/dietlibc/include/ftw.h51
-rw-r--r--mdk-stage1/dietlibc/include/getopt.h32
-rw-r--r--mdk-stage1/dietlibc/include/glob.h55
-rw-r--r--mdk-stage1/dietlibc/include/grp.h25
-rw-r--r--mdk-stage1/dietlibc/include/inttypes.h0
-rw-r--r--mdk-stage1/dietlibc/include/limits.h48
-rw-r--r--mdk-stage1/dietlibc/include/locale.h6
-rw-r--r--mdk-stage1/dietlibc/include/malloc.h1
-rw-r--r--mdk-stage1/dietlibc/include/math.h61
-rw-r--r--mdk-stage1/dietlibc/include/memory.h6
-rw-r--r--mdk-stage1/dietlibc/include/mntent.h72
-rw-r--r--mdk-stage1/dietlibc/include/net/if.h11
-rw-r--r--mdk-stage1/dietlibc/include/net/if_arp.h6
-rw-r--r--mdk-stage1/dietlibc/include/net/route.h6
-rw-r--r--mdk-stage1/dietlibc/include/netdb.h90
-rw-r--r--mdk-stage1/dietlibc/include/netinet/in.h9
-rw-r--r--mdk-stage1/dietlibc/include/netinet/in_systm.h0
-rw-r--r--mdk-stage1/dietlibc/include/netinet/ip.h6
-rw-r--r--mdk-stage1/dietlibc/include/paths.h16
-rw-r--r--mdk-stage1/dietlibc/include/pthread.h227
-rw-r--r--mdk-stage1/dietlibc/include/pwd.h24
-rw-r--r--mdk-stage1/dietlibc/include/regex.h67
-rw-r--r--mdk-stage1/dietlibc/include/resolv.h1
-rw-r--r--mdk-stage1/dietlibc/include/rpc/auth.h213
-rw-r--r--mdk-stage1/dietlibc/include/rpc/auth_des.h112
-rw-r--r--mdk-stage1/dietlibc/include/rpc/auth_unix.h90
-rw-r--r--mdk-stage1/dietlibc/include/rpc/clnt.h421
-rw-r--r--mdk-stage1/dietlibc/include/rpc/des_crypt.h97
-rw-r--r--mdk-stage1/dietlibc/include/rpc/key_prot.h346
-rw-r--r--mdk-stage1/dietlibc/include/rpc/netdb.h74
-rw-r--r--mdk-stage1/dietlibc/include/rpc/pmap_clnt.h98
-rw-r--r--mdk-stage1/dietlibc/include/rpc/pmap_prot.h108
-rw-r--r--mdk-stage1/dietlibc/include/rpc/pmap_rmt.h68
-rw-r--r--mdk-stage1/dietlibc/include/rpc/rpc.h72
-rw-r--r--mdk-stage1/dietlibc/include/rpc/rpc_des.h72
-rw-r--r--mdk-stage1/dietlibc/include/rpc/rpc_msg.h202
-rw-r--r--mdk-stage1/dietlibc/include/rpc/svc.h316
-rw-r--r--mdk-stage1/dietlibc/include/rpc/svc_auth.h54
-rw-r--r--mdk-stage1/dietlibc/include/rpc/types.h78
-rw-r--r--mdk-stage1/dietlibc/include/rpc/xdr.h379
-rw-r--r--mdk-stage1/dietlibc/include/sched.h74
-rw-r--r--mdk-stage1/dietlibc/include/scsi/scsi.h224
-rw-r--r--mdk-stage1/dietlibc/include/scsi/scsi_ioctl.h34
-rw-r--r--mdk-stage1/dietlibc/include/scsi/sg.h274
-rw-r--r--mdk-stage1/dietlibc/include/setjmp.h123
-rw-r--r--mdk-stage1/dietlibc/include/shadow.h24
-rw-r--r--mdk-stage1/dietlibc/include/signal.h35
-rw-r--r--mdk-stage1/dietlibc/include/stdint.h6
-rw-r--r--mdk-stage1/dietlibc/include/stdio.h97
-rw-r--r--mdk-stage1/dietlibc/include/stdlib.h67
-rw-r--r--mdk-stage1/dietlibc/include/string.h57
-rw-r--r--mdk-stage1/dietlibc/include/strings.h2
-rw-r--r--mdk-stage1/dietlibc/include/sys/cdefs.h36
-rw-r--r--mdk-stage1/dietlibc/include/sys/file.h19
-rw-r--r--mdk-stage1/dietlibc/include/sys/io.h41
-rw-r--r--mdk-stage1/dietlibc/include/sys/ioctl.h10
-rw-r--r--mdk-stage1/dietlibc/include/sys/ipc.h8
-rw-r--r--mdk-stage1/dietlibc/include/sys/kd.h6
-rw-r--r--mdk-stage1/dietlibc/include/sys/mman.h33
-rw-r--r--mdk-stage1/dietlibc/include/sys/mount.h19
-rw-r--r--mdk-stage1/dietlibc/include/sys/msg.h13
-rw-r--r--mdk-stage1/dietlibc/include/sys/mtio.h6
-rw-r--r--mdk-stage1/dietlibc/include/sys/param.h8
-rw-r--r--mdk-stage1/dietlibc/include/sys/poll.h11
-rw-r--r--mdk-stage1/dietlibc/include/sys/ptrace.h10
-rw-r--r--mdk-stage1/dietlibc/include/sys/reboot.h9
-rw-r--r--mdk-stage1/dietlibc/include/sys/resource.h16
-rw-r--r--mdk-stage1/dietlibc/include/sys/select.h0
-rw-r--r--mdk-stage1/dietlibc/include/sys/sem.h11
-rw-r--r--mdk-stage1/dietlibc/include/sys/sendfile.h9
-rw-r--r--mdk-stage1/dietlibc/include/sys/shm.h17
-rw-r--r--mdk-stage1/dietlibc/include/sys/signal.h1
-rw-r--r--mdk-stage1/dietlibc/include/sys/socket.h46
-rw-r--r--mdk-stage1/dietlibc/include/sys/stat.h52
-rw-r--r--mdk-stage1/dietlibc/include/sys/syscall.h6
-rw-r--r--mdk-stage1/dietlibc/include/sys/sysinfo.h9
-rw-r--r--mdk-stage1/dietlibc/include/sys/syslog.h102
-rw-r--r--mdk-stage1/dietlibc/include/sys/time.h46
-rw-r--r--mdk-stage1/dietlibc/include/sys/times.h8
-rw-r--r--mdk-stage1/dietlibc/include/sys/types.h33
-rw-r--r--mdk-stage1/dietlibc/include/sys/uio.h9
-rw-r--r--mdk-stage1/dietlibc/include/sys/un.h8
-rw-r--r--mdk-stage1/dietlibc/include/sys/utsname.h35
-rw-r--r--mdk-stage1/dietlibc/include/sys/vfs.h11
-rw-r--r--mdk-stage1/dietlibc/include/sys/wait.h37
-rw-r--r--mdk-stage1/dietlibc/include/syslog.h1
-rw-r--r--mdk-stage1/dietlibc/include/termios.h22
-rw-r--r--mdk-stage1/dietlibc/include/time.h24
-rw-r--r--mdk-stage1/dietlibc/include/unistd.h168
-rw-r--r--mdk-stage1/dietlibc/include/utime.h16
-rw-r--r--mdk-stage1/dietlibc/include/utmp.h73
-rw-r--r--mdk-stage1/dietlibc/lib/__dtostr.c104
-rw-r--r--mdk-stage1/dietlibc/lib/__fstat64.c25
-rw-r--r--mdk-stage1/dietlibc/lib/__getcwd.c10
-rw-r--r--mdk-stage1/dietlibc/lib/__isnan.c14
-rw-r--r--mdk-stage1/dietlibc/lib/__lltostr.c31
-rw-r--r--mdk-stage1/dietlibc/lib/__lstat64.c25
-rw-r--r--mdk-stage1/dietlibc/lib/__ltostr.c31
-rw-r--r--mdk-stage1/dietlibc/lib/__stat64.c25
-rw-r--r--mdk-stage1/dietlibc/lib/__stat64_cvt.c18
-rw-r--r--mdk-stage1/dietlibc/lib/__xmknod.c6
-rw-r--r--mdk-stage1/dietlibc/lib/_brk.c14
-rw-r--r--mdk-stage1/dietlibc/lib/abort.c13
-rw-r--r--mdk-stage1/dietlibc/lib/abs.c6
-rw-r--r--mdk-stage1/dietlibc/lib/accept.c14
-rw-r--r--mdk-stage1/dietlibc/lib/alarm.c47
-rw-r--r--mdk-stage1/dietlibc/lib/alloc.c243
-rw-r--r--mdk-stage1/dietlibc/lib/assert_fail.c30
-rw-r--r--mdk-stage1/dietlibc/lib/atexit.c23
-rw-r--r--mdk-stage1/dietlibc/lib/atof.c10
-rw-r--r--mdk-stage1/dietlibc/lib/atoi.c8
-rw-r--r--mdk-stage1/dietlibc/lib/atol.c8
-rw-r--r--mdk-stage1/dietlibc/lib/bind.c12
-rw-r--r--mdk-stage1/dietlibc/lib/bsearch.c20
-rw-r--r--mdk-stage1/dietlibc/lib/cfmakeraw.c14
-rw-r--r--mdk-stage1/dietlibc/lib/closedir.c10
-rw-r--r--mdk-stage1/dietlibc/lib/connect.c14
-rw-r--r--mdk-stage1/dietlibc/lib/creat.c5
-rw-r--r--mdk-stage1/dietlibc/lib/creat64.c9
-rw-r--r--mdk-stage1/dietlibc/lib/errlist.c132
-rw-r--r--mdk-stage1/dietlibc/lib/errno_location.c5
-rw-r--r--mdk-stage1/dietlibc/lib/exec_lib.c20
-rw-r--r--mdk-stage1/dietlibc/lib/exec_lib.h9
-rw-r--r--mdk-stage1/dietlibc/lib/execl.c24
-rw-r--r--mdk-stage1/dietlibc/lib/execlp.c26
-rw-r--r--mdk-stage1/dietlibc/lib/execv.c13
-rw-r--r--mdk-stage1/dietlibc/lib/execvp.c38
-rw-r--r--mdk-stage1/dietlibc/lib/ftw.c52
-rw-r--r--mdk-stage1/dietlibc/lib/getdomainname.c17
-rw-r--r--mdk-stage1/dietlibc/lib/getenv.c17
-rw-r--r--mdk-stage1/dietlibc/lib/gethostname.c18
-rw-r--r--mdk-stage1/dietlibc/lib/getopt.c118
-rw-r--r--mdk-stage1/dietlibc/lib/getpeername.c13
-rw-r--r--mdk-stage1/dietlibc/lib/getpgrp.c6
-rw-r--r--mdk-stage1/dietlibc/lib/getservent.c137
-rw-r--r--mdk-stage1/dietlibc/lib/getsockname.c13
-rw-r--r--mdk-stage1/dietlibc/lib/getsockopt.c13
-rw-r--r--mdk-stage1/dietlibc/lib/htonl.c12
-rw-r--r--mdk-stage1/dietlibc/lib/htons.c11
-rw-r--r--mdk-stage1/dietlibc/lib/if_indextoname.c29
-rw-r--r--mdk-stage1/dietlibc/lib/if_nametoindex.c27
-rw-r--r--mdk-stage1/dietlibc/lib/isalnum.c7
-rw-r--r--mdk-stage1/dietlibc/lib/isalpha.c7
-rw-r--r--mdk-stage1/dietlibc/lib/isascii.c6
-rw-r--r--mdk-stage1/dietlibc/lib/isatty.c20
-rw-r--r--mdk-stage1/dietlibc/lib/isblank.c6
-rw-r--r--mdk-stage1/dietlibc/lib/iscntrl.c7
-rw-r--r--mdk-stage1/dietlibc/lib/isdigit.c7
-rw-r--r--mdk-stage1/dietlibc/lib/isgraph.c5
-rw-r--r--mdk-stage1/dietlibc/lib/islower.c7
-rw-r--r--mdk-stage1/dietlibc/lib/isprint.c6
-rw-r--r--mdk-stage1/dietlibc/lib/ispunct.c7
-rw-r--r--mdk-stage1/dietlibc/lib/isspace.c8
-rw-r--r--mdk-stage1/dietlibc/lib/isupper.c7
-rw-r--r--mdk-stage1/dietlibc/lib/isxdigit.c5
-rw-r--r--mdk-stage1/dietlibc/lib/listen.c13
-rw-r--r--mdk-stage1/dietlibc/lib/lockf.c37
-rw-r--r--mdk-stage1/dietlibc/lib/longjmp.c51
-rw-r--r--mdk-stage1/dietlibc/lib/lseek64.c22
-rw-r--r--mdk-stage1/dietlibc/lib/memccmp.c17
-rw-r--r--mdk-stage1/dietlibc/lib/memccpy.c19
-rw-r--r--mdk-stage1/dietlibc/lib/memchr.c9
-rw-r--r--mdk-stage1/dietlibc/lib/memcmp.c16
-rw-r--r--mdk-stage1/dietlibc/lib/memcpy.c12
-rw-r--r--mdk-stage1/dietlibc/lib/memmove.c23
-rw-r--r--mdk-stage1/dietlibc/lib/memset.c9
-rw-r--r--mdk-stage1/dietlibc/lib/mkfifo.c6
-rw-r--r--mdk-stage1/dietlibc/lib/msgctl.c10
-rw-r--r--mdk-stage1/dietlibc/lib/msgget.c10
-rw-r--r--mdk-stage1/dietlibc/lib/msgrcv.c13
-rw-r--r--mdk-stage1/dietlibc/lib/msgsnd.c10
-rw-r--r--mdk-stage1/dietlibc/lib/nop.c7
-rw-r--r--mdk-stage1/dietlibc/lib/open64.c14
-rw-r--r--mdk-stage1/dietlibc/lib/opendir.c18
-rw-r--r--mdk-stage1/dietlibc/lib/perror.c22
-rw-r--r--mdk-stage1/dietlibc/lib/pread.c10
-rw-r--r--mdk-stage1/dietlibc/lib/pread64.c13
-rw-r--r--mdk-stage1/dietlibc/lib/putenv.c37
-rw-r--r--mdk-stage1/dietlibc/lib/puts.c12
-rw-r--r--mdk-stage1/dietlibc/lib/qsort.c125
-rw-r--r--mdk-stage1/dietlibc/lib/raise.c8
-rw-r--r--mdk-stage1/dietlibc/lib/rand.c9
-rw-r--r--mdk-stage1/dietlibc/lib/random.c9
-rw-r--r--mdk-stage1/dietlibc/lib/readdir.c13
-rw-r--r--mdk-stage1/dietlibc/lib/reboot.c8
-rw-r--r--mdk-stage1/dietlibc/lib/recv.c15
-rw-r--r--mdk-stage1/dietlibc/lib/recvfrom.c15
-rw-r--r--mdk-stage1/dietlibc/lib/recvmsg.c15
-rw-r--r--mdk-stage1/dietlibc/lib/remove.c11
-rw-r--r--mdk-stage1/dietlibc/lib/rewind.c6
-rw-r--r--mdk-stage1/dietlibc/lib/rewinddir.c8
-rw-r--r--mdk-stage1/dietlibc/lib/sbrk.c20
-rw-r--r--mdk-stage1/dietlibc/lib/seekdir.c8
-rw-r--r--mdk-stage1/dietlibc/lib/semctl.c10
-rw-r--r--mdk-stage1/dietlibc/lib/semget.c10
-rw-r--r--mdk-stage1/dietlibc/lib/semop.c10
-rw-r--r--mdk-stage1/dietlibc/lib/send.c15
-rw-r--r--mdk-stage1/dietlibc/lib/sendmsg.c15
-rw-r--r--mdk-stage1/dietlibc/lib/sendto.c15
-rw-r--r--mdk-stage1/dietlibc/lib/set_errno.c9
-rw-r--r--mdk-stage1/dietlibc/lib/setpgrp.c6
-rw-r--r--mdk-stage1/dietlibc/lib/setsockopt.c13
-rw-r--r--mdk-stage1/dietlibc/lib/shmat.c15
-rw-r--r--mdk-stage1/dietlibc/lib/shmctl.c10
-rw-r--r--mdk-stage1/dietlibc/lib/shmdt.c10
-rw-r--r--mdk-stage1/dietlibc/lib/shmget.c10
-rw-r--r--mdk-stage1/dietlibc/lib/shutdown.c14
-rw-r--r--mdk-stage1/dietlibc/lib/sigaddset.c15
-rw-r--r--mdk-stage1/dietlibc/lib/sigdelset.c15
-rw-r--r--mdk-stage1/dietlibc/lib/sigemptyset.c14
-rw-r--r--mdk-stage1/dietlibc/lib/sigfillset.c11
-rw-r--r--mdk-stage1/dietlibc/lib/sigismember.c21
-rw-r--r--mdk-stage1/dietlibc/lib/sigjmp.c35
-rw-r--r--mdk-stage1/dietlibc/lib/sleep.c11
-rw-r--r--mdk-stage1/dietlibc/lib/snprintf.c14
-rw-r--r--mdk-stage1/dietlibc/lib/socket.c12
-rw-r--r--mdk-stage1/dietlibc/lib/speed.c67
-rw-r--r--mdk-stage1/dietlibc/lib/sprintf.c18
-rw-r--r--mdk-stage1/dietlibc/lib/sscanf.c13
-rw-r--r--mdk-stage1/dietlibc/lib/strcasecmp.c17
-rw-r--r--mdk-stage1/dietlibc/lib/strcat.c18
-rw-r--r--mdk-stage1/dietlibc/lib/strchr.c18
-rw-r--r--mdk-stage1/dietlibc/lib/strcmp.c16
-rw-r--r--mdk-stage1/dietlibc/lib/strcpy.c15
-rw-r--r--mdk-stage1/dietlibc/lib/strcspn.c17
-rw-r--r--mdk-stage1/dietlibc/lib/strdup.c9
-rw-r--r--mdk-stage1/dietlibc/lib/strerror.c10
-rw-r--r--mdk-stage1/dietlibc/lib/strlcat.c72
-rw-r--r--mdk-stage1/dietlibc/lib/strlcpy.3169
-rw-r--r--mdk-stage1/dietlibc/lib/strlcpy.c68
-rw-r--r--mdk-stage1/dietlibc/lib/strlen.c47
-rw-r--r--mdk-stage1/dietlibc/lib/strncasecmp.c18
-rw-r--r--mdk-stage1/dietlibc/lib/strncat.c31
-rw-r--r--mdk-stage1/dietlibc/lib/strncmp.c6
-rw-r--r--mdk-stage1/dietlibc/lib/strncpy.c10
-rw-r--r--mdk-stage1/dietlibc/lib/strpbrk.c11
-rw-r--r--mdk-stage1/dietlibc/lib/strrchr.c20
-rw-r--r--mdk-stage1/dietlibc/lib/strsep.c16
-rw-r--r--mdk-stage1/dietlibc/lib/strspn.c17
-rw-r--r--mdk-stage1/dietlibc/lib/strstr.c15
-rw-r--r--mdk-stage1/dietlibc/lib/strtod.c52
-rw-r--r--mdk-stage1/dietlibc/lib/strtok.c8
-rw-r--r--mdk-stage1/dietlibc/lib/strtok_r.c21
-rw-r--r--mdk-stage1/dietlibc/lib/strtol.c15
-rw-r--r--mdk-stage1/dietlibc/lib/strtoll.c15
-rw-r--r--mdk-stage1/dietlibc/lib/strtoul.c32
-rw-r--r--mdk-stage1/dietlibc/lib/strtoull.c30
-rw-r--r--mdk-stage1/dietlibc/lib/sys_siglist.c37
-rw-r--r--mdk-stage1/dietlibc/lib/tcdrain.c8
-rw-r--r--mdk-stage1/dietlibc/lib/tcflush.c23
-rw-r--r--mdk-stage1/dietlibc/lib/tcgetattr.c7
-rw-r--r--mdk-stage1/dietlibc/lib/tcgetpgrp.c7
-rw-r--r--mdk-stage1/dietlibc/lib/tcsetattr.c27
-rw-r--r--mdk-stage1/dietlibc/lib/tcsetpgrp.c7
-rw-r--r--mdk-stage1/dietlibc/lib/telldir.c7
-rw-r--r--mdk-stage1/dietlibc/lib/tolower.c6
-rw-r--r--mdk-stage1/dietlibc/lib/toupper.c6
-rw-r--r--mdk-stage1/dietlibc/lib/ttyname.c59
-rw-r--r--mdk-stage1/dietlibc/lib/usleep.c12
-rw-r--r--mdk-stage1/dietlibc/lib/vfork.c6
-rw-r--r--mdk-stage1/dietlibc/lib/vfprintf.c19
-rw-r--r--mdk-stage1/dietlibc/lib/vprintf.c14
-rw-r--r--mdk-stage1/dietlibc/lib/vsnprintf.c238
-rw-r--r--mdk-stage1/dietlibc/lib/vsprintf.c10
-rw-r--r--mdk-stage1/dietlibc/lib/vsscanf.c304
-rw-r--r--mdk-stage1/dietlibc/lib/wait.c6
-rw-r--r--mdk-stage1/dietlibc/lib/wait3.c5
-rw-r--r--mdk-stage1/dietlibc/libcruft/___div.c11
-rw-r--r--mdk-stage1/dietlibc/libcruft/dnscruft.c115
-rw-r--r--mdk-stage1/dietlibc/libcruft/dnscruft2.c185
-rw-r--r--mdk-stage1/dietlibc/libcruft/entlib.c153
-rw-r--r--mdk-stage1/dietlibc/libcruft/entlib.h44
-rw-r--r--mdk-stage1/dietlibc/libcruft/getdtablesize.c6
-rw-r--r--mdk-stage1/dietlibc/libcruft/getgrgid.c14
-rw-r--r--mdk-stage1/dietlibc/libcruft/getgrnam.c14
-rw-r--r--mdk-stage1/dietlibc/libcruft/gethostbyaddr.c38
-rw-r--r--mdk-stage1/dietlibc/libcruft/gethostbyaddr_r.c51
-rw-r--r--mdk-stage1/dietlibc/libcruft/gethostbyname.c39
-rw-r--r--mdk-stage1/dietlibc/libcruft/gethostbyname2.c40
-rw-r--r--mdk-stage1/dietlibc/libcruft/gethostbyname2_r.c36
-rw-r--r--mdk-stage1/dietlibc/libcruft/gethostbyname_r.c30
-rw-r--r--mdk-stage1/dietlibc/libcruft/getlogin.c5
-rw-r--r--mdk-stage1/dietlibc/libcruft/getpagesize.c14
-rw-r--r--mdk-stage1/dietlibc/libcruft/getpass.c40
-rw-r--r--mdk-stage1/dietlibc/libcruft/getpwnam.c14
-rw-r--r--mdk-stage1/dietlibc/libcruft/getpwuid.c14
-rw-r--r--mdk-stage1/dietlibc/libcruft/getspnam.c14
-rw-r--r--mdk-stage1/dietlibc/libcruft/grent.c54
-rw-r--r--mdk-stage1/dietlibc/libcruft/h_errno.c1
-rw-r--r--mdk-stage1/dietlibc/libcruft/herrno_location.c5
-rw-r--r--mdk-stage1/dietlibc/libcruft/inet_addr.c11
-rw-r--r--mdk-stage1/dietlibc/libcruft/inet_aton.c43
-rw-r--r--mdk-stage1/dietlibc/libcruft/inet_ntoa.c10
-rw-r--r--mdk-stage1/dietlibc/libcruft/inet_ntoa_r.c22
-rw-r--r--mdk-stage1/dietlibc/libcruft/inet_ntop.c75
-rw-r--r--mdk-stage1/dietlibc/libcruft/inet_pton.c97
-rw-r--r--mdk-stage1/dietlibc/libcruft/initgroups.c23
-rw-r--r--mdk-stage1/dietlibc/libcruft/mkstemp.c23
-rw-r--r--mdk-stage1/dietlibc/libcruft/pwent.c43
-rw-r--r--mdk-stage1/dietlibc/libcruft/res_init.c7
-rw-r--r--mdk-stage1/dietlibc/libcruft/spent.c45
-rw-r--r--mdk-stage1/dietlibc/libcrypt/crypt.c309
-rw-r--r--mdk-stage1/dietlibc/libdl/Makefile24
-rw-r--r--mdk-stage1/dietlibc/libdl/README6
-rw-r--r--mdk-stage1/dietlibc/libdl/_dl_int.h31
-rw-r--r--mdk-stage1/dietlibc/libdl/_dl_jump.S8
-rw-r--r--mdk-stage1/dietlibc/libdl/_dl_open.c207
-rw-r--r--mdk-stage1/dietlibc/libdl/_dl_search.c84
-rw-r--r--mdk-stage1/dietlibc/libdl/dlclose.c14
-rw-r--r--mdk-stage1/dietlibc/libdl/dlerror.c4
-rw-r--r--mdk-stage1/dietlibc/libdl/dlopen.c21
-rw-r--r--mdk-stage1/dietlibc/libdl/dlsym.c7
-rw-r--r--mdk-stage1/dietlibc/libdl/elf_hash.c12
-rw-r--r--mdk-stage1/dietlibc/liblatin1/latin1-iscntrl.c5
-rw-r--r--mdk-stage1/dietlibc/liblatin1/latin1-isgraph.c4
-rw-r--r--mdk-stage1/dietlibc/liblatin1/latin1-islower.c5
-rw-r--r--mdk-stage1/dietlibc/liblatin1/latin1-isprint.c4
-rw-r--r--mdk-stage1/dietlibc/liblatin1/latin1-isupper.c5
-rw-r--r--mdk-stage1/dietlibc/libpthread/CHANGES45
-rw-r--r--mdk-stage1/dietlibc/libpthread/Makefile139
-rw-r--r--mdk-stage1/dietlibc/libpthread/README42
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_atfork.c77
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_attr_getdetachstate.c14
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_attr_getinheritsched.c13
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_attr_getschedparam.c13
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_attr_getschedpolicy.c13
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_attr_getscope.c13
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_attr_getstackaddr.c13
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_attr_getstacksize.c14
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_attr_init.c17
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_attr_setdetachstate.c18
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_attr_setinheritsched.c18
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_attr_setschedparam.c23
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_attr_setschedpolicy.c25
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_attr_setscope.c18
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_attr_setstackaddr.c13
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_attr_setstacksize.c17
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_cancel.c35
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_cleanup_pop.c27
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_cleanup_push.c23
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_cond_broadcast.c23
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_cond_destroy.c19
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_cond_init.c14
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_cond_signal.c24
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_cond_timedwait.c43
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_cond_wait.c37
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_condattr.c15
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_create.c76
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_detach.c36
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_exit.c17
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_getspecific.c20
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_join.c50
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_key_create.c35
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_key_delete.c21
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_mutex_destroy.c16
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_mutex_init.c18
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_mutex_lock.c33
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_mutex_trylock.c36
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_mutex_unlock.c34
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_mutexattr_getkind_np.c13
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_mutexattr_init.c15
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_mutexattr_setkind_np.c18
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_once.c9
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_self.c4
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_setcancelstate.c25
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_setcanceltype.c25
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_setspecific.c21
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_spinlock.c38
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_sys_alloc.c26
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_sys_close.c10
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_sys_create.c10
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_sys_fcntl.c10
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_sys_fsync.c10
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_sys_logging.c31
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_sys_nanosleep.c11
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_sys_open.c12
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_sys_pause.c10
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_sys_read.c10
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_sys_sigsuspend.c10
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_sys_tcdrain.c10
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_sys_waitpid.c10
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_sys_write.c10
-rw-r--r--mdk-stage1/dietlibc/libpthread/pthread_testcancel.c16
-rw-r--r--mdk-stage1/dietlibc/libpthread/test.c72
-rw-r--r--mdk-stage1/dietlibc/libpthread/thread_internal.c344
-rw-r--r--mdk-stage1/dietlibc/libpthread/thread_internal.h131
-rw-r--r--mdk-stage1/dietlibc/libpthread/thread_key.c41
-rw-r--r--mdk-stage1/dietlibc/libregex/rx.c434
-rw-r--r--mdk-stage1/dietlibc/librpc/auth_none.c128
-rw-r--r--mdk-stage1/dietlibc/librpc/auth_unix.c313
-rw-r--r--mdk-stage1/dietlibc/librpc/authunix_prot.c69
-rw-r--r--mdk-stage1/dietlibc/librpc/bindresvport.c79
-rw-r--r--mdk-stage1/dietlibc/librpc/clnt_generic.c112
-rw-r--r--mdk-stage1/dietlibc/librpc/clnt_perror.c302
-rw-r--r--mdk-stage1/dietlibc/librpc/clnt_raw.c230
-rw-r--r--mdk-stage1/dietlibc/librpc/clnt_simple.c116
-rw-r--r--mdk-stage1/dietlibc/librpc/clnt_tcp.c463
-rw-r--r--mdk-stage1/dietlibc/librpc/clnt_udp.c437
-rw-r--r--mdk-stage1/dietlibc/librpc/get_myaddress.c69
-rw-r--r--mdk-stage1/dietlibc/librpc/getrpcent.c274
-rw-r--r--mdk-stage1/dietlibc/librpc/getrpcport.c57
-rw-r--r--mdk-stage1/dietlibc/librpc/pmap_clnt.c118
-rw-r--r--mdk-stage1/dietlibc/librpc/pmap_getmaps.c85
-rw-r--r--mdk-stage1/dietlibc/librpc/pmap_getport.c90
-rw-r--r--mdk-stage1/dietlibc/librpc/pmap_prot.c58
-rw-r--r--mdk-stage1/dietlibc/librpc/pmap_prot2.c116
-rw-r--r--mdk-stage1/dietlibc/librpc/pmap_rmt.c403
-rw-r--r--mdk-stage1/dietlibc/librpc/rpc_callmsg.c189
-rw-r--r--mdk-stage1/dietlibc/librpc/rpc_commondata.c42
-rw-r--r--mdk-stage1/dietlibc/librpc/rpc_dtablesize.c50
-rw-r--r--mdk-stage1/dietlibc/librpc/rpc_prot.c281
-rw-r--r--mdk-stage1/dietlibc/librpc/svc.c479
-rw-r--r--mdk-stage1/dietlibc/librpc/svc_auth.c115
-rw-r--r--mdk-stage1/dietlibc/librpc/svc_auth_unix.c136
-rw-r--r--mdk-stage1/dietlibc/librpc/svc_raw.c159
-rw-r--r--mdk-stage1/dietlibc/librpc/svc_run.c71
-rw-r--r--mdk-stage1/dietlibc/librpc/svc_simple.c144
-rw-r--r--mdk-stage1/dietlibc/librpc/svc_tcp.c406
-rw-r--r--mdk-stage1/dietlibc/librpc/svc_udp.c467
-rw-r--r--mdk-stage1/dietlibc/librpc/xdr.c536
-rw-r--r--mdk-stage1/dietlibc/librpc/xdr_array.c152
-rw-r--r--mdk-stage1/dietlibc/librpc/xdr_float.c284
-rw-r--r--mdk-stage1/dietlibc/librpc/xdr_mem.c180
-rw-r--r--mdk-stage1/dietlibc/librpc/xdr_rec.c573
-rw-r--r--mdk-stage1/dietlibc/librpc/xdr_reference.c130
-rw-r--r--mdk-stage1/dietlibc/librpc/xdr_stdio.c187
-rw-r--r--mdk-stage1/dietlibc/libshell/fnmatch.c74
-rw-r--r--mdk-stage1/dietlibc/libshell/glob.c350
-rw-r--r--mdk-stage1/dietlibc/libshell/realpath.c31
-rw-r--r--mdk-stage1/dietlibc/libstdio/clearerr.c5
-rw-r--r--mdk-stage1/dietlibc/libstdio/fclose.c26
-rw-r--r--mdk-stage1/dietlibc/libstdio/fdglue.c52
-rw-r--r--mdk-stage1/dietlibc/libstdio/fdopen.c21
-rw-r--r--mdk-stage1/dietlibc/libstdio/feof.c9
-rw-r--r--mdk-stage1/dietlibc/libstdio/ferror.c5
-rw-r--r--mdk-stage1/dietlibc/libstdio/fflush.c62
-rw-r--r--mdk-stage1/dietlibc/libstdio/fgetc.c40
-rw-r--r--mdk-stage1/dietlibc/libstdio/fgets.c20
-rw-r--r--mdk-stage1/dietlibc/libstdio/fileno.c5
-rw-r--r--mdk-stage1/dietlibc/libstdio/fopen.c21
-rw-r--r--mdk-stage1/dietlibc/libstdio/fprintf.c23
-rw-r--r--mdk-stage1/dietlibc/libstdio/fputc.c19
-rw-r--r--mdk-stage1/dietlibc/libstdio/fputs.c6
-rw-r--r--mdk-stage1/dietlibc/libstdio/fread.c51
-rw-r--r--mdk-stage1/dietlibc/libstdio/freopen.c9
-rw-r--r--mdk-stage1/dietlibc/libstdio/fseek.c11
-rw-r--r--mdk-stage1/dietlibc/libstdio/ftell.c7
-rw-r--r--mdk-stage1/dietlibc/libstdio/fwrite.c30
-rw-r--r--mdk-stage1/dietlibc/libstdio/printf.c29
-rw-r--r--mdk-stage1/dietlibc/libstdio/putchar.c6
-rw-r--r--mdk-stage1/dietlibc/libstdio/setvbuf.c18
-rw-r--r--mdk-stage1/dietlibc/libstdio/stderr.c13
-rw-r--r--mdk-stage1/dietlibc/libstdio/stdin.c13
-rw-r--r--mdk-stage1/dietlibc/libstdio/stdout.c14
-rw-r--r--mdk-stage1/dietlibc/libstdio/ungetc.c11
-rw-r--r--mdk-stage1/dietlibc/libugly/asctime.c7
-rw-r--r--mdk-stage1/dietlibc/libugly/asctime_r.c29
-rw-r--r--mdk-stage1/dietlibc/libugly/asprintf.c22
-rw-r--r--mdk-stage1/dietlibc/libugly/ctime.c5
-rw-r--r--mdk-stage1/dietlibc/libugly/daemon.c35
-rw-r--r--mdk-stage1/dietlibc/libugly/endmntent.c7
-rw-r--r--mdk-stage1/dietlibc/libugly/facilitynames.c32
-rw-r--r--mdk-stage1/dietlibc/libugly/getmntent.c30
-rw-r--r--mdk-stage1/dietlibc/libugly/getprotoent.c130
-rw-r--r--mdk-stage1/dietlibc/libugly/gmtime.c6
-rw-r--r--mdk-stage1/dietlibc/libugly/gmtime_r.c35
-rw-r--r--mdk-stage1/dietlibc/libugly/isleap.c6
-rw-r--r--mdk-stage1/dietlibc/libugly/localtime.c6
-rw-r--r--mdk-stage1/dietlibc/libugly/localtime_r.c21
-rw-r--r--mdk-stage1/dietlibc/libugly/logging.c211
-rw-r--r--mdk-stage1/dietlibc/libugly/mktime.c21
-rw-r--r--mdk-stage1/dietlibc/libugly/pclose.c11
-rw-r--r--mdk-stage1/dietlibc/libugly/popen.c32
-rw-r--r--mdk-stage1/dietlibc/libugly/prioritynames.c22
-rw-r--r--mdk-stage1/dietlibc/libugly/setenv.c17
-rw-r--r--mdk-stage1/dietlibc/libugly/setmntent.c7
-rw-r--r--mdk-stage1/dietlibc/libugly/strftime.c182
-rw-r--r--mdk-stage1/dietlibc/libugly/strsignal.c92
-rw-r--r--mdk-stage1/dietlibc/libugly/system.c69
-rw-r--r--mdk-stage1/dietlibc/libugly/time_table_spd.c17
-rw-r--r--mdk-stage1/dietlibc/libugly/tzfile.c86
-rw-r--r--mdk-stage1/dietlibc/libugly/unsetenv.c6
-rw-r--r--mdk-stage1/dietlibc/ppc/Makefile.add3
-rw-r--r--mdk-stage1/dietlibc/ppc/__longjmp.S59
-rw-r--r--mdk-stage1/dietlibc/ppc/__testandset.S11
-rw-r--r--mdk-stage1/dietlibc/ppc/mmap.c37
-rw-r--r--mdk-stage1/dietlibc/ppc/setjmp.S56
-rw-r--r--mdk-stage1/dietlibc/ppc/start.S44
-rw-r--r--mdk-stage1/dietlibc/ppc/unified.S21
-rw-r--r--mdk-stage1/dietlibc/sparc/Makefile.add3
-rw-r--r--mdk-stage1/dietlibc/sparc/__longjmp.S67
-rw-r--r--mdk-stage1/dietlibc/sparc/__testandset.S6
-rw-r--r--mdk-stage1/dietlibc/sparc/clone.S45
-rw-r--r--mdk-stage1/dietlibc/sparc/fork.S25
-rw-r--r--mdk-stage1/dietlibc/sparc/mmap.c43
-rw-r--r--mdk-stage1/dietlibc/sparc/pipe.S26
-rw-r--r--mdk-stage1/dietlibc/sparc/setjmp.S37
-rw-r--r--mdk-stage1/dietlibc/sparc/shmat.c19
-rw-r--r--mdk-stage1/dietlibc/sparc/start.S46
-rw-r--r--mdk-stage1/dietlibc/sparc/udiv.S363
-rw-r--r--mdk-stage1/dietlibc/sparc/umul.S170
-rw-r--r--mdk-stage1/dietlibc/sparc/unified.S28
-rw-r--r--mdk-stage1/dietlibc/sparc/urem.S362
-rw-r--r--mdk-stage1/dietlibc/start.h14
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/_llseek.c5
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/_newselect.c6
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/access.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/chdir.c3
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/chmod.c5
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/chown.c5
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/chroot.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/clone.c1
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/close.c3
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/dup.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/dup2.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/execve.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/exit.c3
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/fchdir.c3
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/fchmod.c5
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/fchown.c5
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/fcntl.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/flock.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/fork.c6
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/fsync.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/ftruncate.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/getcwd.c5
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/getdents.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/getegid.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/geteuid.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/getgid.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/getgroups.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/getpgid.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/getpid.c3
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/getppid.c3
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/getpriority.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/getresgid.c8
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/getresuid.c8
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/getrlimit.c3
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/getrusage.c3
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/getsid.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/gettimeofday.c5
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/getuid.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/ioctl.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/kill.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/lchown.c5
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/link.c5
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/lseek.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/mkdir.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/mknod.c5
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/mount.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/mprotect.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/mremap.c5
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/munmap.c5
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/nanosleep.c5
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/open.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/pipe.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/poll.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/read.c3
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/readlink.c5
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/reboot.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/rename.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/rmdir.c3
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/setdomainname.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/setgid.c3
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/setgroups.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/sethostname.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/setitimer.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/setpgid.c3
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/setpriority.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/setregid.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/setresgid.c8
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/setresuid.c8
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/setreuid.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/setrlimit.c3
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/setsid.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/setuid.c3
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/sigaction.c3
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/signal.c3
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/sigpending.c3
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/sigprocmask.c3
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/sigsuspend.c3
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/socketcall.c3
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/swapoff.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/swapon.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/symlink.c3
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/sync.c3
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/syslog.c3
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/time.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/truncate.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/umask.c5
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/umount.c3
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/uname.c5
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/unlink.c3
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/utime.c3
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/vhangup.c3
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/wait4.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/waitpid.c4
-rw-r--r--mdk-stage1/dietlibc/syscalls.c/write.c3
-rw-r--r--mdk-stage1/dietlibc/syscalls.h142
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/__getpagesize.S5
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/__pread.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/__reboot.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/_llseek.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/access.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/brk.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/chdir.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/chmod.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/chown.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/chroot.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/close.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/dup.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/dup2.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/execve.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/exit.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/fchdir.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/fchmod.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/fchown.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/fcntl.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/flock.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/fork.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/fstat.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/fstat64.S8
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/fstatfs.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/fsync.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/ftruncate.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/getcwd.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/getdents.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/getdents64.S5
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/getegid.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/geteuid.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/getgid.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/getgroups.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/getitimer.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/getpgid.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/getpid.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/getppid.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/getpriority.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/getresgid.S7
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/getresuid.S7
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/getrlimit.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/getrusage.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/getsid.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/gettimeofday.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/getuid.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/ioctl.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/ioperm.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/iopl.S6
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/ipc.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/kill.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/lchown.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/link.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/llseek.S6
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/lseek.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/lstat.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/lstat64.S8
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/mkdir.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/mknod.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/mlockall.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/mount.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/mprotect.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/mremap.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/munlockall.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/munmap.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/nanosleep.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/nice.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/open.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/pause.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/personality.S5
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/pipe.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/poll.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/ptrace.s3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/pwrite.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/query_module.S5
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/read.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/readlink.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/readv.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/rename.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/rmdir.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/sched_get_priority_max.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/sched_get_priority_min.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/sched_getparam.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/sched_getscheduler.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/sched_rr_get_interval.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/sched_setparam.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/sched_setscheduler.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/sched_yield.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/select.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/sendfile.S6
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/setdomainname.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/setgid.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/setgroups.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/sethostname.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/setitimer.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/setpgid.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/setpriority.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/setregid.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/setresgid.S7
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/setresuid.S7
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/setreuid.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/setrlimit.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/setsid.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/setuid.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/sigaction.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/sigaltstack.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/signal.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/sigpending.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/sigprocmask.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/sigsuspend.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/socketcall.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/stat.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/stat64.S8
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/statfs.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/stime.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/swapoff.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/swapon.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/symlink.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/sync.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/sysctl.S5
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/sysinfo.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/syslog.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/time.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/times.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/truncate.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/umask.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/umount.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/umount2.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/uname.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/unlink.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/utime.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/vhangup.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/wait4.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/waitpid.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/write.S3
-rw-r--r--mdk-stage1/dietlibc/syscalls.s/writev.S3
-rw-r--r--mdk-stage1/disk.c342
-rw-r--r--mdk-stage1/disk.h27
-rw-r--r--mdk-stage1/dns.c213
-rw-r--r--mdk-stage1/dns.h30
-rw-r--r--mdk-stage1/doc/HACKING31
-rw-r--r--mdk-stage1/doc/README185
-rw-r--r--mdk-stage1/doc/TECH-INFOS91
-rw-r--r--mdk-stage1/doc/UPDATEMODULES74
-rw-r--r--mdk-stage1/doc/WHY-DIETLIBC50
-rw-r--r--mdk-stage1/doc/documented..frontend.h69
-rw-r--r--mdk-stage1/frontend-common.c43
-rw-r--r--mdk-stage1/frontend.h52
-rw-r--r--mdk-stage1/init-data/emptyboot.img.bz2bin6342 -> 0 bytes-rw-r--r--mdk-stage1/init-data/msgboot-blank.img.bz2bin14592 -> 0 bytes-rw-r--r--mdk-stage1/init-data/msgboot-graphicallogo-2880.img.bz2bin30301 -> 0 bytes-rw-r--r--mdk-stage1/init-data/msgboot-graphicallogo.img.bz2bin26960 -> 0 bytes-rw-r--r--mdk-stage1/init-data/msgboot.img.bz2bin30881 -> 0 bytes-rw-r--r--mdk-stage1/init-libc-headers.h44
-rw-r--r--mdk-stage1/init.c468
-rw-r--r--mdk-stage1/insmod-busybox/.cvsignore2
-rw-r--r--mdk-stage1/insmod-busybox/Config.h132
-rw-r--r--mdk-stage1/insmod-busybox/Makefile65
-rw-r--r--mdk-stage1/insmod-busybox/README8
-rw-r--r--mdk-stage1/insmod-busybox/busybox.h467
-rw-r--r--mdk-stage1/insmod-busybox/insmod-frontend.c24
-rw-r--r--mdk-stage1/insmod-busybox/insmod.c2951
-rw-r--r--mdk-stage1/insmod-busybox/loop.h5
-rw-r--r--mdk-stage1/insmod-busybox/messages.c90
-rw-r--r--mdk-stage1/insmod-busybox/utility.c1759
-rw-r--r--mdk-stage1/insmod-modutils/Makefile63
-rw-r--r--mdk-stage1/insmod-modutils/include/config.h105
-rw-r--r--mdk-stage1/insmod-modutils/include/elf_alpha.h10
-rw-r--r--mdk-stage1/insmod-modutils/include/elf_arm.h10
-rw-r--r--mdk-stage1/insmod-modutils/include/elf_hppa.h9
-rw-r--r--mdk-stage1/insmod-modutils/include/elf_hppa64.h9
-rw-r--r--mdk-stage1/insmod-modutils/include/elf_i386.h10
-rw-r--r--mdk-stage1/insmod-modutils/include/elf_ia64.h9
-rw-r--r--mdk-stage1/insmod-modutils/include/elf_m68k.h10
-rw-r--r--mdk-stage1/insmod-modutils/include/elf_mips.h24
-rw-r--r--mdk-stage1/insmod-modutils/include/elf_ppc.h10
-rw-r--r--mdk-stage1/insmod-modutils/include/elf_s390.h10
-rw-r--r--mdk-stage1/insmod-modutils/include/elf_sparc.h10
-rw-r--r--mdk-stage1/insmod-modutils/include/elf_sparc64.h27
-rw-r--r--mdk-stage1/insmod-modutils/include/kallsyms.h131
-rw-r--r--mdk-stage1/insmod-modutils/include/kerneld.h46
-rw-r--r--mdk-stage1/insmod-modutils/include/modstat.h55
-rw-r--r--mdk-stage1/insmod-modutils/include/module.h210
-rw-r--r--mdk-stage1/insmod-modutils/include/obj.h275
-rw-r--r--mdk-stage1/insmod-modutils/include/util.h101
-rw-r--r--mdk-stage1/insmod-modutils/include/version.h1
-rw-r--r--mdk-stage1/insmod-modutils/insmod-frontend.c24
-rw-r--r--mdk-stage1/insmod-modutils/insmod.c1964
-rw-r--r--mdk-stage1/insmod-modutils/obj/Makefile33
-rw-r--r--mdk-stage1/insmod-modutils/obj/obj_alpha.c305
-rw-r--r--mdk-stage1/insmod-modutils/obj/obj_arm.c318
-rw-r--r--mdk-stage1/insmod-modutils/obj/obj_common.c399
-rw-r--r--mdk-stage1/insmod-modutils/obj/obj_hppa.c668
-rw-r--r--mdk-stage1/insmod-modutils/obj/obj_hppa64.c686
-rw-r--r--mdk-stage1/insmod-modutils/obj/obj_i386.c245
-rw-r--r--mdk-stage1/insmod-modutils/obj/obj_ia64.c1065
-rw-r--r--mdk-stage1/insmod-modutils/obj/obj_kallsyms.c292
-rw-r--r--mdk-stage1/insmod-modutils/obj/obj_load.c354
-rw-r--r--mdk-stage1/insmod-modutils/obj/obj_m68k.c147
-rw-r--r--mdk-stage1/insmod-modutils/obj/obj_mips.c238
-rw-r--r--mdk-stage1/insmod-modutils/obj/obj_ppc.c255
-rw-r--r--mdk-stage1/insmod-modutils/obj/obj_reloc.c435
-rw-r--r--mdk-stage1/insmod-modutils/obj/obj_s390.c245
-rw-r--r--mdk-stage1/insmod-modutils/obj/obj_sparc.c226
-rw-r--r--mdk-stage1/insmod-modutils/obj/obj_sparc64.c352
-rw-r--r--mdk-stage1/insmod-modutils/util/Makefile42
-rw-r--r--mdk-stage1/insmod-modutils/util/alias.h244
-rw-r--r--mdk-stage1/insmod-modutils/util/arch64.c35
-rw-r--r--mdk-stage1/insmod-modutils/util/config.c1591
-rw-r--r--mdk-stage1/insmod-modutils/util/gzfiles.c74
-rw-r--r--mdk-stage1/insmod-modutils/util/logger.c163
-rw-r--r--mdk-stage1/insmod-modutils/util/meta_expand.c339
-rw-r--r--mdk-stage1/insmod-modutils/util/modstat.c419
-rw-r--r--mdk-stage1/insmod-modutils/util/snap_shot.c154
-rw-r--r--mdk-stage1/insmod-modutils/util/sys_cm.c88
-rw-r--r--mdk-stage1/insmod-modutils/util/sys_dm.c37
-rw-r--r--mdk-stage1/insmod-modutils/util/sys_gks.c37
-rw-r--r--mdk-stage1/insmod-modutils/util/sys_nim.c53
-rw-r--r--mdk-stage1/insmod-modutils/util/sys_oim.c40
-rw-r--r--mdk-stage1/insmod-modutils/util/sys_qm.c56
-rw-r--r--mdk-stage1/insmod-modutils/util/xftw.c422
-rw-r--r--mdk-stage1/insmod-modutils/util/xmalloc.c39
-rw-r--r--mdk-stage1/insmod-modutils/util/xrealloc.c39
-rw-r--r--mdk-stage1/insmod-modutils/util/xstrcat.c40
-rw-r--r--mdk-stage1/insmod-modutils/util/xstrdup.c41
-rw-r--r--mdk-stage1/insmod-modutils/util/xsystem.c51
-rw-r--r--mdk-stage1/insmod.h20
-rw-r--r--mdk-stage1/linux-2.2/nfs.h226
-rw-r--r--mdk-stage1/linux-2.2/nfs_mount.h53
-rw-r--r--mdk-stage1/log.c89
-rw-r--r--mdk-stage1/log.h34
-rw-r--r--mdk-stage1/lomount.c171
-rw-r--r--mdk-stage1/lomount.h21
-rw-r--r--mdk-stage1/mar/.cvsignore1
-rw-r--r--mdk-stage1/mar/Makefile61
-rw-r--r--mdk-stage1/mar/mar-extract-only.c208
-rw-r--r--mdk-stage1/mar/mar-extract-only.h32
-rw-r--r--mdk-stage1/mar/mar-frontend.c199
-rw-r--r--mdk-stage1/mar/mar.h70
-rw-r--r--mdk-stage1/minilibc.c251
-rw-r--r--mdk-stage1/minilibc.h144
-rw-r--r--mdk-stage1/mkinitrd_helper/Makefile46
-rw-r--r--mdk-stage1/mkinitrd_helper/mkinitrd_helper.c308
-rw-r--r--mdk-stage1/modules.c437
-rw-r--r--mdk-stage1/modules.h35
-rw-r--r--mdk-stage1/modules_descr.h66
-rw-r--r--mdk-stage1/mount.c189
-rw-r--r--mdk-stage1/mount.h35
-rw-r--r--mdk-stage1/mount_rpcgen.h208
-rw-r--r--mdk-stage1/network.c833
-rw-r--r--mdk-stage1/network.h61
-rw-r--r--mdk-stage1/newt-frontend.c396
-rw-r--r--mdk-stage1/newt/Makefile56
-rw-r--r--mdk-stage1/newt/button.c190
-rw-r--r--mdk-stage1/newt/buttonbar.c46
-rw-r--r--mdk-stage1/newt/checkbox.c290
-rw-r--r--mdk-stage1/newt/checkboxtree.c714
-rw-r--r--mdk-stage1/newt/entry.c376
-rw-r--r--mdk-stage1/newt/form.c712
-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/nfsmount.c294
-rw-r--r--mdk-stage1/nfsmount.h328
-rw-r--r--mdk-stage1/pci-resource/.cvsignore1
-rw-r--r--mdk-stage1/pci-resource/Makefile25
-rwxr-xr-xmdk-stage1/pci-resource/update-pci-ids.pl46
-rw-r--r--mdk-stage1/pcmcia_/Makefile48
-rw-r--r--mdk-stage1/pcmcia_/bulkmem.h195
-rw-r--r--mdk-stage1/pcmcia_/cardmgr.c1652
-rw-r--r--mdk-stage1/pcmcia_/cardmgr.h112
-rw-r--r--mdk-stage1/pcmcia_/cirrus.h182
-rw-r--r--mdk-stage1/pcmcia_/cistpl.h604
-rw-r--r--mdk-stage1/pcmcia_/cs.h465
-rw-r--r--mdk-stage1/pcmcia_/cs_types.h65
-rw-r--r--mdk-stage1/pcmcia_/driver_ops.h82
-rw-r--r--mdk-stage1/pcmcia_/ds.h163
-rw-r--r--mdk-stage1/pcmcia_/i82365.h154
-rw-r--r--mdk-stage1/pcmcia_/lex_config.c2053
-rwxr-xr-xmdk-stage1/pcmcia_/merge_from_pcitable51
-rw-r--r--mdk-stage1/pcmcia_/pcmcia.h21
-rw-r--r--mdk-stage1/pcmcia_/probe.c513
-rw-r--r--mdk-stage1/pcmcia_/tcic.h266
-rw-r--r--mdk-stage1/pcmcia_/version.h4
-rw-r--r--mdk-stage1/pcmcia_/vg468.h112
-rw-r--r--mdk-stage1/pcmcia_/yacc_config.c1015
-rw-r--r--mdk-stage1/pcmcia_/yacc_config.h37
-rw-r--r--mdk-stage1/ppp/.cvsignore1
-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/.cvsignore2
-rw-r--r--mdk-stage1/ppp/pppd/Makefile59
-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/probing.c656
-rw-r--r--mdk-stage1/probing.h36
-rw-r--r--mdk-stage1/rescue-gui.c222
-rw-r--r--mdk-stage1/rp-pppoe/.cvsignore1
-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/.cvsignore2
-rw-r--r--mdk-stage1/rp-pppoe/src/Makefile58
-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/Makefile56
-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-data/stage1-with-busybox.tar.bz2bin92142 -> 0 bytes-rw-r--r--mdk-stage1/stage1-data/stage1-with-sash.tar.bz2bin345030 -> 0 bytes-rw-r--r--mdk-stage1/stage1-data/stage1.tar.bz2bin1957 -> 0 bytes-rw-r--r--mdk-stage1/stage1.c468
-rw-r--r--mdk-stage1/stage1.h59
-rw-r--r--mdk-stage1/stdio-frontend.c366
-rw-r--r--mdk-stage1/tools.c434
-rw-r--r--mdk-stage1/tools.h53
-rw-r--r--mdk-stage1/url.c501
-rw-r--r--mdk-stage1/url.h44
-rw-r--r--mdk-stage1/usb-resource/.cvsignore1
-rw-r--r--mdk-stage1/usb-resource/Makefile25
-rwxr-xr-xmdk-stage1/usb-resource/update-usb-ids.pl52
-rw-r--r--perl-install/ChangeLog26315
-rw-r--r--perl-install/Makefile241
-rw-r--r--perl-install/Makefile.config23
-rw-r--r--perl-install/Makefile.drakxtools61
-rw-r--r--perl-install/Newt/.cvsignore6
-rw-r--r--perl-install/Newt/Av_CharPtrPtr.c99
-rw-r--r--perl-install/Newt/Av_CharPtrPtr.h4
-rw-r--r--perl-install/Newt/Makefile10
-rw-r--r--perl-install/Newt/Makefile.PL13
-rw-r--r--perl-install/Newt/Newt.pm16
-rw-r--r--perl-install/Newt/Newt.xs478
-rw-r--r--perl-install/Newt/typemap25
-rw-r--r--perl-install/any.pm1186
-rw-r--r--perl-install/apps.net_monitor4
-rw-r--r--perl-install/bootloader.pm1073
-rw-r--r--perl-install/bootlook.pm321
-rw-r--r--perl-install/c.pm19
-rw-r--r--perl-install/c/.cvsignore9
-rw-r--r--perl-install/c/Makefile18
-rw-r--r--perl-install/c/Makefile.PL23
-rw-r--r--perl-install/c/README3
-rw-r--r--perl-install/c/sbus.c156
-rw-r--r--perl-install/c/silo.c817
-rw-r--r--perl-install/c/smp-test.c6
-rw-r--r--perl-install/c/smp.c509
-rw-r--r--perl-install/c/smp.h6
-rw-r--r--perl-install/c/stuff.pm34
-rw-r--r--perl-install/c/stuff.xs.pm579
-rw-r--r--perl-install/class_discard.pm11
-rwxr-xr-xperl-install/commands15
-rw-r--r--perl-install/commands.pm587
-rw-r--r--perl-install/common.pm190
-rw-r--r--perl-install/crypto.pm166
-rw-r--r--perl-install/detect_devices.pm663
-rw-r--r--perl-install/devices.pm220
-rw-r--r--perl-install/diskdrake/diskdrake.html139
-rw-r--r--perl-install/diskdrake/hd_gtk.pm382
-rw-r--r--perl-install/diskdrake/interactive.pm1171
-rw-r--r--perl-install/diskdrake/removable.pm53
-rw-r--r--perl-install/diskdrake/removable_gtk.pm31
-rw-r--r--perl-install/diskdrake/smbnfs_gtk.pm266
-rw-r--r--perl-install/drakxtools.spec1252
-rw-r--r--perl-install/fs.pm868
-rw-r--r--perl-install/fsedit.pm741
-rw-r--r--perl-install/ftp.pm86
-rwxr-xr-xperl-install/g_auto_install53
-rw-r--r--perl-install/harddrake/TODO172
-rw-r--r--perl-install/harddrake/data.pm75
-rw-r--r--perl-install/harddrake/ui.pmbin9747 -> 0 bytes-rw-r--r--perl-install/help.pm906
-rw-r--r--perl-install/http.pm42
-rwxr-xr-xperl-install/install238
-rw-r--r--perl-install/install2.pm637
-rw-r--r--perl-install/install_any.pm1211
-rw-r--r--perl-install/install_gtk.pm388
-rw-r--r--perl-install/install_interactive.pm272
-rw-r--r--perl-install/install_steps.pm1071
-rw-r--r--perl-install/install_steps_auto_install.pm111
-rw-r--r--perl-install/install_steps_gtk.pm646
-rw-r--r--perl-install/install_steps_interactive.pm1375
-rw-r--r--perl-install/install_steps_newt.pm61
-rw-r--r--perl-install/install_steps_stdio.pm40
-rw-r--r--perl-install/interactive.pm401
-rw-r--r--perl-install/interactive/gtk.pm636
-rw-r--r--perl-install/interactive/http.pm159
-rw-r--r--perl-install/interactive/newt.pm254
-rw-r--r--perl-install/interactive/stdio.pm171
-rw-r--r--perl-install/keyboard.pm542
-rw-r--r--perl-install/lang.pm871
-rw-r--r--perl-install/list.sparc74
-rwxr-xr-xperl-install/live_install45
-rwxr-xr-xperl-install/live_install255
-rw-r--r--perl-install/log.pm58
-rw-r--r--perl-install/loopback.pm129
-rw-r--r--perl-install/lvm.pm124
-rw-r--r--perl-install/modparm.pm63
-rw-r--r--perl-install/modules.pm393
-rw-r--r--perl-install/mouse.pm565
-rw-r--r--perl-install/my_gtk.pm1323
-rw-r--r--perl-install/network.pm5
-rw-r--r--perl-install/network/adsl.pm172
-rw-r--r--perl-install/network/ethernet.pm216
-rw-r--r--perl-install/network/isdn.pm276
-rw-r--r--perl-install/network/isdn_consts.pm326
-rw-r--r--perl-install/network/modem.pm91
-rw-r--r--perl-install/network/netconnect.pm629
-rw-r--r--perl-install/network/network.pm460
-rw-r--r--perl-install/network/nfs.pm66
-rw-r--r--perl-install/network/smb.pm150
-rw-r--r--perl-install/network/smbnfs.pm58
-rw-r--r--perl-install/network/tools.pm227
-rw-r--r--perl-install/pam.net_monitor6
-rw-r--r--perl-install/partition_table.pm799
-rw-r--r--perl-install/partition_table/bsd.pm147
-rw-r--r--perl-install/partition_table/dos.pm99
-rw-r--r--perl-install/partition_table/empty.pm36
-rw-r--r--perl-install/partition_table/gpt.pm266
-rw-r--r--perl-install/partition_table/lvm_PV.pm43
-rw-r--r--perl-install/partition_table/mac.pm398
-rw-r--r--perl-install/partition_table/raw.pm192
-rw-r--r--perl-install/partition_table/sun.pm201
-rw-r--r--perl-install/patch/patch-oem-hp.pl323
-rwxr-xr-xperl-install/perl2etags8
-rw-r--r--perl-install/pixmaps/X.pngbin1812 -> 0 bytes-rw-r--r--perl-install/pixmaps/arrow_down.xpm14
-rw-r--r--perl-install/pixmaps/arrow_up.xpm14
-rw-r--r--perl-install/pixmaps/bootdisk.pngbin1180 -> 0 bytes-rw-r--r--perl-install/pixmaps/bootloader.pngbin1804 -> 0 bytes-rw-r--r--perl-install/pixmaps/colors.pngbin275 -> 0 bytes-rw-r--r--perl-install/pixmaps/colors16.pngbin6414 -> 0 bytes-rw-r--r--perl-install/pixmaps/colors8.pngbin798 -> 0 bytes-rw-r--r--perl-install/pixmaps/default.pngbin875 -> 0 bytes-rw-r--r--perl-install/pixmaps/eth_card_mini.pngbin2265 -> 0 bytes-rw-r--r--perl-install/pixmaps/exit.pngbin2117 -> 0 bytes-rw-r--r--perl-install/pixmaps/harddrive.pngbin2264 -> 0 bytes-rw-r--r--perl-install/pixmaps/keyboard.pngbin3115 -> 0 bytes-rw-r--r--perl-install/pixmaps/language.pngbin3297 -> 0 bytes-rw-r--r--perl-install/pixmaps/monitor-1024.pngbin7833 -> 0 bytes-rw-r--r--perl-install/pixmaps/monitor-1280.pngbin6123 -> 0 bytes-rw-r--r--perl-install/pixmaps/monitor-640.pngbin11629 -> 0 bytes-rw-r--r--perl-install/pixmaps/monitor-800.pngbin9544 -> 0 bytes-rw-r--r--perl-install/pixmaps/monitor.pngbin1813 -> 0 bytes-rw-r--r--perl-install/pixmaps/mouse.pngbin1719 -> 0 bytes-rw-r--r--perl-install/pixmaps/mouse_3b+.xpm386
-rw-r--r--perl-install/pixmaps/mouse_3b+_mini.xpm211
-rw-r--r--perl-install/pixmaps/mouse_3b.xpm386
-rw-r--r--perl-install/pixmaps/mouse_3b_mini.xpm211
-rw-r--r--perl-install/pixmaps/mouse_left.xpm142
-rw-r--r--perl-install/pixmaps/mouse_middle.xpm89
-rw-r--r--perl-install/pixmaps/mouse_right.xpm143
-rw-r--r--perl-install/pixmaps/network.pngbin1852 -> 0 bytes-rw-r--r--perl-install/pixmaps/partition.pngbin2473 -> 0 bytes-rw-r--r--perl-install/pixmaps/quit.pngbin2787 -> 0 bytes-rw-r--r--perl-install/pixmaps/rootpasswd.pngbin1799 -> 0 bytes-rw-r--r--perl-install/pixmaps/security.pngbin1799 -> 0 bytes-rw-r--r--perl-install/pixmaps/services.pngbin5048 -> 0 bytes-rw-r--r--perl-install/pixmaps/summary.pngbin1788 -> 0 bytes-rw-r--r--perl-install/pixmaps/user.pngbin3254 -> 0 bytes-rw-r--r--perl-install/pixmaps/warning.pngbin1968 -> 0 bytes-rw-r--r--perl-install/pkgs.pm1206
-rw-r--r--perl-install/printer.pm2266
-rw-r--r--perl-install/printerdrake.pm2938
-rw-r--r--perl-install/proxy.pm110
-rw-r--r--perl-install/raid.pm180
-rw-r--r--perl-install/resize_fat/.cvsignore5
-rw-r--r--perl-install/resize_fat/Makefile10
-rw-r--r--perl-install/resize_fat/Makefile.PL13
-rw-r--r--perl-install/resize_fat/README8
-rw-r--r--perl-install/resize_fat/any.pm123
-rw-r--r--perl-install/resize_fat/boot_sector.pm110
-rw-r--r--perl-install/resize_fat/c_rewritten.pm14
-rw-r--r--perl-install/resize_fat/c_rewritten.xs259
-rw-r--r--perl-install/resize_fat/dir_entry.pm77
-rw-r--r--perl-install/resize_fat/directory.pm79
-rw-r--r--perl-install/resize_fat/fat.pm138
-rw-r--r--perl-install/resize_fat/info_sector.pm37
-rw-r--r--perl-install/resize_fat/io.pm71
-rw-r--r--perl-install/resize_fat/main.pm186
-rw-r--r--perl-install/run_program.pm68
-rw-r--r--perl-install/sbus_probing/main.pm138
-rwxr-xr-xperl-install/scanner.pm227
-rw-r--r--perl-install/security.pm39
-rw-r--r--perl-install/security/msec.pm91
-rw-r--r--perl-install/services.pm288
-rw-r--r--perl-install/share/.cvsignore2
-rw-r--r--perl-install/share/Makefile5
-rw-r--r--perl-install/share/advertising/Makefile8
-rw-r--r--perl-install/share/advertising/list14
-rw-r--r--perl-install/share/aliases7
-rw-r--r--perl-install/share/compssList1665
-rw-r--r--perl-install/share/compssUsers92
-rw-r--r--perl-install/share/compssUsers.desktop39
-rw-r--r--perl-install/share/compssUsers.server67
-rw-r--r--perl-install/share/consolefonts/Cyr_a8x16bin9782 -> 0 bytes-rw-r--r--perl-install/share/consolefonts/lat0-sun16bin9770 -> 0 bytes-rw-r--r--perl-install/share/consolefonts/lat2-sun16bin9802 -> 0 bytes-rw-r--r--perl-install/share/consolefonts/ruscii_8x16bin9782 -> 0 bytes-rw-r--r--perl-install/share/diskdrake.rc43
-rw-r--r--perl-install/share/floppy.pngbin317 -> 0 bytes-rw-r--r--perl-install/share/fonts.tar.bz2bin1140649 -> 0 bytes-rw-r--r--perl-install/share/ftin.pngbin190 -> 0 bytes-rw-r--r--perl-install/share/ftout.pngbin190 -> 0 bytes-rw-r--r--perl-install/share/gen_locales.pl16
-rwxr-xr-xperl-install/share/gen_locales.sh56
-rw-r--r--perl-install/share/help.pngbin3769 -> 0 bytes-rw-r--r--perl-install/share/install.rc21
-rw-r--r--perl-install/share/keyboards.tar.bz2bin20974 -> 0 bytes-rw-r--r--perl-install/share/keymaps.tar.bz2bin10929 -> 0 bytes-rwxr-xr-xperl-install/share/keymaps_generate18
-rwxr-xr-xperl-install/share/kmap2bkmap37
-rw-r--r--perl-install/share/list173
-rw-r--r--perl-install/share/list.alpha13
-rw-r--r--perl-install/share/list.i38611
-rw-r--r--perl-install/share/list.ia64119
-rw-r--r--perl-install/share/list.ppc15
-rw-r--r--perl-install/share/list.sparc84
-rw-r--r--perl-install/share/locales-skeleton.tar.bz2bin1544 -> 0 bytes-rw-r--r--perl-install/share/logo-mandrake.pngbin12814 -> 0 bytes-rwxr-xr-xperl-install/share/makedev.sh89
-rw-r--r--perl-install/share/po/Changelog249
-rw-r--r--perl-install/share/po/DrakX.pot10577
-rw-r--r--perl-install/share/po/Makefile75
-rw-r--r--perl-install/share/po/af.po12923
-rw-r--r--perl-install/share/po/ar.po10269
-rw-r--r--perl-install/share/po/az.po12924
-rw-r--r--perl-install/share/po/b_dump_strings.pm113
-rw-r--r--perl-install/share/po/be.po13566
-rw-r--r--perl-install/share/po/bg.po13898
-rw-r--r--perl-install/share/po/br.po12284
-rw-r--r--perl-install/share/po/bs.po12336
-rw-r--r--perl-install/share/po/ca.po14978
-rw-r--r--perl-install/share/po/cs.po12241
-rw-r--r--perl-install/share/po/cy.po12371
-rw-r--r--perl-install/share/po/da.po12282
-rw-r--r--perl-install/share/po/de.po12653
-rw-r--r--perl-install/share/po/el.po13124
-rw-r--r--perl-install/share/po/eo.po11770
-rw-r--r--perl-install/share/po/es.po12570
-rw-r--r--perl-install/share/po/et.po14194
-rw-r--r--perl-install/share/po/eu.po12369
-rwxr-xr-xperl-install/share/po/fake_c.pl22
-rw-r--r--perl-install/share/po/fi.po11489
-rw-r--r--perl-install/share/po/fr.po12589
-rw-r--r--perl-install/share/po/ga.po11023
-rw-r--r--perl-install/share/po/gl.po12241
-rw-r--r--perl-install/share/po/help-de.pot1911
-rw-r--r--perl-install/share/po/help-es.pot1898
-rw-r--r--perl-install/share/po/help-fr.pot1797
-rw-r--r--perl-install/share/po/help-it.pot1926
-rwxr-xr-xperl-install/share/po/help_xml2pm.pl218
-rw-r--r--perl-install/share/po/hr.po11819
-rw-r--r--perl-install/share/po/hu.po12496
-rw-r--r--perl-install/share/po/i18n_compssUsers41
-rw-r--r--perl-install/share/po/id.po13585
-rw-r--r--perl-install/share/po/id.xsl5
-rw-r--r--perl-install/share/po/is.po12530
-rw-r--r--perl-install/share/po/it.po12041
-rw-r--r--perl-install/share/po/ja.po15415
-rw-r--r--perl-install/share/po/ko.po11766
-rw-r--r--perl-install/share/po/lt.po13994
-rw-r--r--perl-install/share/po/lv.po12830
-rw-r--r--perl-install/share/po/mt.po12071
-rw-r--r--perl-install/share/po/nl.po12264
-rw-r--r--perl-install/share/po/no.po12310
-rw-r--r--perl-install/share/po/pl.po13539
-rw-r--r--perl-install/share/po/pt.po11403
-rw-r--r--perl-install/share/po/pt_BR.po12055
-rw-r--r--perl-install/share/po/ro.po12989
-rw-r--r--perl-install/share/po/ru.po13049
-rw-r--r--perl-install/share/po/sk.po11152
-rw-r--r--perl-install/share/po/sl.po11880
-rw-r--r--perl-install/share/po/sp.po13028
-rw-r--r--perl-install/share/po/sr.po12449
-rw-r--r--perl-install/share/po/sv.po12343
-rw-r--r--perl-install/share/po/th.po11570
-rw-r--r--perl-install/share/po/tr.po12339
-rw-r--r--perl-install/share/po/uk.po14938
-rwxr-xr-xperl-install/share/po/validate.pl86
-rw-r--r--perl-install/share/po/vi.po14002
-rw-r--r--perl-install/share/po/wa.po12031
-rw-r--r--perl-install/share/po/zh_CN.po11311
-rw-r--r--perl-install/share/po/zh_TW.po11721
-rw-r--r--perl-install/share/reload.pngbin157 -> 0 bytes-rw-r--r--perl-install/share/rpmsrate571
-rw-r--r--perl-install/share/step-green-click.xpm245
-rw-r--r--perl-install/share/step-green-on.xpm242
-rw-r--r--perl-install/share/step-green.xpm243
-rw-r--r--perl-install/share/step-orange-click.xpm246
-rw-r--r--perl-install/share/step-orange-on.xpm243
-rw-r--r--perl-install/share/step-orange.xpm245
-rw-r--r--perl-install/share/step-red-click.xpm245
-rw-r--r--perl-install/share/step-red-on.xpm245
-rw-r--r--perl-install/share/step-red.xpm245
-rwxr-xr-xperl-install/share/theme-editor.pl161
-rw-r--r--perl-install/share/themes-blackwhite.rc62
-rw-r--r--perl-install/share/themes-blue.rc62
-rw-r--r--perl-install/share/themes-marble3d.rc208
-rw-r--r--perl-install/share/themes-mdk-Desktop.rc203
-rw-r--r--perl-install/share/themes-mdk.rc225
-rw-r--r--perl-install/share/themes-savane.rc62
-rw-r--r--perl-install/share/themes.rc30
-rw-r--r--perl-install/share/themes/blueHeart-button_def.pngbin2735 -> 0 bytes-rw-r--r--perl-install/share/themes/focus.pngbin345 -> 0 bytes-rw-r--r--perl-install/share/themes/marble3d-bg1.pngbin9693 -> 0 bytes-rw-r--r--perl-install/share/themes/marble3d-button1.pngbin3454 -> 0 bytes-rw-r--r--perl-install/share/themes/marble3d-button2.pngbin3840 -> 0 bytes-rw-r--r--perl-install/share/themes/marble3d-button4.pngbin2936 -> 0 bytes-rw-r--r--perl-install/share/themes/marble3d-button_def.pngbin4888 -> 0 bytes-rw-r--r--perl-install/share/themes/marble3d-check1.pngbin180 -> 0 bytes-rw-r--r--perl-install/share/themes/marble3d-check2.pngbin231 -> 0 bytes-rw-r--r--perl-install/share/themes/mdk-Desktop-bg.pngbin153 -> 0 bytes-rw-r--r--perl-install/share/themes/mdk-bg.pngbin151 -> 0 bytes-rw-r--r--perl-install/share/themes/mdk-button1.pngbin387 -> 0 bytes-rw-r--r--perl-install/share/themes/mdk-button4.pngbin369 -> 0 bytes-rw-r--r--perl-install/share/themes/mdk-check_off.pngbin754 -> 0 bytes-rw-r--r--perl-install/share/themes/mdk-check_on.pngbin850 -> 0 bytes-rw-r--r--perl-install/share/themes/mdk-toggle_off.pngbin754 -> 0 bytes-rw-r--r--perl-install/share/themes/mdk-toggle_on.pngbin850 -> 0 bytes-rwxr-xr-xperl-install/share/verify_modules.pl102
-rw-r--r--perl-install/standalone.pm192
-rwxr-xr-xperl-install/standalone/XFdrake101
-rwxr-xr-xperl-install/standalone/adduserdrake43
-rwxr-xr-xperl-install/standalone/diskdrake120
-rwxr-xr-xperl-install/standalone/drakTermServ1288
-rwxr-xr-xperl-install/standalone/drakautoinst439
-rwxr-xr-xperl-install/standalone/drakbackup5149
-rwxr-xr-xperl-install/standalone/drakboot63
-rwxr-xr-xperl-install/standalone/drakbug136
-rwxr-xr-xperl-install/standalone/drakbug_report14
-rwxr-xr-xperl-install/standalone/drakconnect694
-rwxr-xr-xperl-install/standalone/drakfloppy456
-rwxr-xr-xperl-install/standalone/drakfont1265
-rwxr-xr-xperl-install/standalone/drakgw770
-rwxr-xr-xperl-install/standalone/drakproxy34
-rwxr-xr-xperl-install/standalone/draksec33
-rwxr-xr-xperl-install/standalone/drakxservices25
-rwxr-xr-xperl-install/standalone/drakxtv166
-rwxr-xr-xperl-install/standalone/fileshareset389
-rwxr-xr-xperl-install/standalone/harddrake26
-rw-r--r--perl-install/standalone/icons/categ.pngbin5173 -> 0 bytes-rw-r--r--perl-install/standalone/icons/drakTS.620x57.pngbin410 -> 0 bytes-rw-r--r--perl-install/standalone/icons/drakbackup.540x57.pngbin15562 -> 0 bytes-rw-r--r--perl-install/standalone/icons/drakconnect_step.pngbin10749 -> 0 bytes-rw-r--r--perl-install/standalone/icons/drakfont.620x57.pngbin13239 -> 0 bytes-rw-r--r--perl-install/standalone/icons/eth_card_mini2.pngbin1538 -> 0 bytes-rw-r--r--perl-install/standalone/icons/fileopen.xpm34
-rw-r--r--perl-install/standalone/icons/find.xpm34
-rw-r--r--perl-install/standalone/icons/findf.xpm31
-rw-r--r--perl-install/standalone/icons/ftin.xpm30
-rw-r--r--perl-install/standalone/icons/ftout.xpm30
-rw-r--r--perl-install/standalone/icons/gmon.pngbin17411 -> 0 bytes-rw-r--r--perl-install/standalone/icons/harddrake2/cd.pngbin712 -> 0 bytes-rw-r--r--perl-install/standalone/icons/harddrake2/cpu.pngbin438 -> 0 bytes-rw-r--r--perl-install/standalone/icons/harddrake2/floppy.pngbin419 -> 0 bytes-rw-r--r--perl-install/standalone/icons/harddrake2/harddisk.pngbin731 -> 0 bytes-rw-r--r--perl-install/standalone/icons/harddrake2/harddrake.pngbin671 -> 0 bytes-rw-r--r--perl-install/standalone/icons/harddrake2/hw_mouse.pngbin606 -> 0 bytes-rw-r--r--perl-install/standalone/icons/harddrake2/hw_network.pngbin499 -> 0 bytes-rw-r--r--perl-install/standalone/icons/harddrake2/hw_printer.pngbin547 -> 0 bytes-rw-r--r--perl-install/standalone/icons/harddrake2/ide_hd.pngbin712 -> 0 bytes-rw-r--r--perl-install/standalone/icons/harddrake2/isdn.pngbin584 -> 0 bytes-rw-r--r--perl-install/standalone/icons/harddrake2/joystick.pngbin592 -> 0 bytes-rw-r--r--perl-install/standalone/icons/harddrake2/keyboard.pngbin798 -> 0 bytes-rw-r--r--perl-install/standalone/icons/harddrake2/memory.pngbin527 -> 0 bytes-rw-r--r--perl-install/standalone/icons/harddrake2/modem.pngbin533 -> 0 bytes-rw-r--r--perl-install/standalone/icons/harddrake2/scanner.pngbin685 -> 0 bytes-rw-r--r--perl-install/standalone/icons/harddrake2/scsi.pngbin390 -> 0 bytes-rw-r--r--perl-install/standalone/icons/harddrake2/scsi_hd.pngbin677 -> 0 bytes-rw-r--r--perl-install/standalone/icons/harddrake2/sound.pngbin435 -> 0 bytes-rw-r--r--perl-install/standalone/icons/harddrake2/tape.pngbin374 -> 0 bytes-rw-r--r--perl-install/standalone/icons/harddrake2/tv.pngbin543 -> 0 bytes-rw-r--r--perl-install/standalone/icons/harddrake2/unknown.pngbin461 -> 0 bytes-rw-r--r--perl-install/standalone/icons/harddrake2/usb.pngbin432 -> 0 bytes-rw-r--r--perl-install/standalone/icons/harddrake2/video.pngbin526 -> 0 bytes-rw-r--r--perl-install/standalone/icons/harddrake2/webcam.pngbin444 -> 0 bytes-rw-r--r--perl-install/standalone/icons/hori.pngbin7232 -> 0 bytes-rw-r--r--perl-install/standalone/icons/ic-drakfont-48.pngbin3337 -> 0 bytes-rw-r--r--perl-install/standalone/icons/ic82-CD-40.pngbin1444 -> 0 bytes-rw-r--r--perl-install/standalone/icons/ic82-back-up-16.pngbin594 -> 0 bytes-rw-r--r--perl-install/standalone/icons/ic82-back-up-32.pngbin3153 -> 0 bytes-rw-r--r--perl-install/standalone/icons/ic82-back-up-48.pngbin4735 -> 0 bytes-rw-r--r--perl-install/standalone/icons/ic82-discdurwhat-40.pngbin1873 -> 0 bytes-rw-r--r--perl-install/standalone/icons/ic82-dossier-32.pngbin818 -> 0 bytes-rw-r--r--perl-install/standalone/icons/ic82-moreoption-40.pngbin1891 -> 0 bytes-rw-r--r--perl-install/standalone/icons/ic82-network-40.pngbin952 -> 0 bytes-rw-r--r--perl-install/standalone/icons/ic82-others-40.pngbin2230 -> 0 bytes-rw-r--r--perl-install/standalone/icons/ic82-system-40.pngbin1169 -> 0 bytes-rw-r--r--perl-install/standalone/icons/ic82-systemeplus-40.pngbin1551 -> 0 bytes-rw-r--r--perl-install/standalone/icons/ic82-tape-40.pngbin2389 -> 0 bytes-rw-r--r--perl-install/standalone/icons/ic82-users-40.pngbin1836 -> 0 bytes-rw-r--r--perl-install/standalone/icons/ic82-when-40.pngbin1834 -> 0 bytes-rw-r--r--perl-install/standalone/icons/ic82-where-40.pngbin1124 -> 0 bytes-rw-r--r--perl-install/standalone/icons/mdk_logo.pngbin10892 -> 0 bytes-rw-r--r--perl-install/standalone/icons/net_c.pngbin3198 -> 0 bytes-rw-r--r--perl-install/standalone/icons/net_d.pngbin3192 -> 0 bytes-rw-r--r--perl-install/standalone/icons/net_u.pngbin2866 -> 0 bytes-rw-r--r--perl-install/standalone/icons/reload.xpm31
-rw-r--r--perl-install/standalone/icons/smbnfs_default.pngbin279 -> 0 bytes-rw-r--r--perl-install/standalone/icons/smbnfs_has_mntpoint.pngbin300 -> 0 bytes-rw-r--r--perl-install/standalone/icons/smbnfs_mounted.pngbin295 -> 0 bytes-rw-r--r--perl-install/standalone/icons/smbnfs_server.pngbin314 -> 0 bytes-rw-r--r--perl-install/standalone/icons/tradi.pngbin32579 -> 0 bytes-rw-r--r--perl-install/standalone/icons/verti.pngbin21123 -> 0 bytes-rw-r--r--perl-install/standalone/icons/wiz_default_left.pngbin2185 -> 0 bytes-rw-r--r--perl-install/standalone/icons/wiz_default_up.pngbin14567 -> 0 bytes-rw-r--r--perl-install/standalone/icons/wiz_drakconnect.pngbin14567 -> 0 bytes-rw-r--r--perl-install/standalone/icons/wiz_drakgw.pngbin8733 -> 0 bytes-rw-r--r--perl-install/standalone/icons/wiz_firewall.pngbin7016 -> 0 bytes-rw-r--r--perl-install/standalone/icons/wiz_printerdrake.pngbin11340 -> 0 bytes-rw-r--r--perl-install/standalone/icons/wiz_scannerdrake.pngbin7158 -> 0 bytes-rw-r--r--perl-install/standalone/interactive_http/Makefile21
-rw-r--r--perl-install/standalone/interactive_http/authorised_progs13
-rw-r--r--perl-install/standalone/interactive_http/index.html.pl14
-rwxr-xr-xperl-install/standalone/interactive_http/interactive_http.cgi95
-rw-r--r--perl-install/standalone/interactive_http/miniserv.conf13
-rw-r--r--perl-install/standalone/interactive_http/miniserv.init51
-rw-r--r--perl-install/standalone/interactive_http/miniserv.logrotate7
-rw-r--r--perl-install/standalone/interactive_http/miniserv.pam5
-rw-r--r--perl-install/standalone/interactive_http/miniserv.pem18
-rw-r--r--perl-install/standalone/interactive_http/miniserv.pl1817
-rw-r--r--perl-install/standalone/interactive_http/miniserv.users1
-rwxr-xr-xperl-install/standalone/keyboarddrake72
-rwxr-xr-xperl-install/standalone/livedrake46
-rw-r--r--perl-install/standalone/localedrake40
-rwxr-xr-xperl-install/standalone/logdrake681
-rwxr-xr-xperl-install/standalone/lsnetdrake29
-rwxr-xr-xperl-install/standalone/mousedrake97
-rwxr-xr-xperl-install/standalone/net_monitor540
-rwxr-xr-xperl-install/standalone/printerdrake72
-rwxr-xr-xperl-install/standalone/scannerdrake148
-rwxr-xr-xperl-install/standalone/service_harddrake97
-rw-r--r--perl-install/standalone/service_harddrake.sh53
-rw-r--r--perl-install/steps.pm51
-rw-r--r--perl-install/swap.pm136
-rw-r--r--perl-install/timezone.pm198
-rw-r--r--perl-install/unused/.cvsignore1
-rw-r--r--perl-install/unused/cdrom.pm41
-rw-r--r--perl-install/unused/christmas-karaoke.patch98
-rw-r--r--perl-install/unused/dns.pm64
-rw-r--r--perl-install/unused/otherinsmod.pm26
-rw-r--r--perl-install/unused/scsi.pm104
-rwxr-xr-xperl-install/verify_c15
-rw-r--r--rescue/.cvsignore2
-rw-r--r--rescue/Makefile14
-rw-r--r--rescue/aliases4
-rw-r--r--rescue/devices.pl53
-rw-r--r--rescue/dirs8
-rwxr-xr-xrescue/drvinst84
-rwxr-xr-xrescue/guessmounts102
-rwxr-xr-xrescue/install_bootloader47
-rw-r--r--rescue/kernel_read_part.c26
-rw-r--r--rescue/list139
-rw-r--r--rescue/list.alpha2
-rw-r--r--rescue/list.i38613
-rw-r--r--rescue/list.ia649
-rw-r--r--rescue/list.ppc10
-rw-r--r--rescue/list.sparc3
-rwxr-xr-xrescue/lsparts127
-rwxr-xr-xrescue/make_rescue_img135
-rwxr-xr-xrescue/rescue-doc61
-rwxr-xr-xrescue/restore_ms_boot108
-rwxr-xr-xrescue/tree/bin/insmod3
-rwxr-xr-xrescue/tree/bin/login2
-rw-r--r--rescue/tree/boot/grub/menu.lst5
-rw-r--r--rescue/tree/etc/fstab4
-rw-r--r--rescue/tree/etc/group1
-rw-r--r--rescue/tree/etc/host.conf2
-rw-r--r--rescue/tree/etc/hosts1
-rw-r--r--rescue/tree/etc/inittab14
-rw-r--r--rescue/tree/etc/issue27
-rwxr-xr-xrescue/tree/etc/oem991
-rw-r--r--rescue/tree/etc/passwd3
-rw-r--r--rescue/tree/etc/profile25
-rwxr-xr-xrescue/tree/etc/rc.reboot8
-rwxr-xr-xrescue/tree/etc/rc.sysinit46
-rw-r--r--rescue/tree/etc/resolv.conf2
-rwxr-xr-xrescue/tree/sbin/fakeshutdown39
-rwxr-xr-xrescue/tree/sbin/modprobe40
-rw-r--r--rescue/tree/usr/lib/CVS.0
-rw-r--r--tools/.cvsignore4
-rw-r--r--tools/2adsldb.pm17
-rw-r--r--tools/2isdndb.pm25
-rw-r--r--tools/Makefile32
-rwxr-xr-xtools/addchangelog.pl18
-rw-r--r--tools/aewm-drakx/.cvsignore1
-rw-r--r--tools/aewm-drakx/Makefile10
-rw-r--r--tools/aewm-drakx/README53
-rw-r--r--tools/aewm-drakx/aewm-drakx.c50
-rw-r--r--tools/aewm-drakx/aewm.h34
-rw-r--r--tools/aewm-drakx/client.c122
-rw-r--r--tools/aewm-drakx/events.c106
-rw-r--r--tools/aewm-drakx/misc.c30
-rw-r--r--tools/alpha/cd/Makefile8
-rw-r--r--tools/alpha/cd/README40
-rw-r--r--tools/alpha/cd/README.milo13
-rw-r--r--tools/alpha/cd/aboot.cnf3
-rw-r--r--tools/alpha/cd/up1000/5100440A.txt25
-rw-r--r--tools/alpha/cd/up1000/README.txt16
-rwxr-xr-xtools/alpha/cd/up1000/apb.cfg2
-rwxr-xr-xtools/alpha/cd/up1000/apb.exebin120832 -> 0 bytes-rw-r--r--tools/alpha/cd/up1000/install.txt356
-rw-r--r--tools/alpha/cd/up1000/up1000.palbin30464 -> 0 bytes-rwxr-xr-xtools/alpha/e2fsck.sharedbin111080 -> 0 bytes-rwxr-xr-xtools/closurepkgs108
-rwxr-xr-xtools/cvslog2changelog.pl80
-rw-r--r--tools/extractchangelog2
-rwxr-xr-xtools/gencompss14
-rwxr-xr-xtools/gencryptofiles115
-rwxr-xr-xtools/genmodparm145
-rwxr-xr-xtools/i386/busyboxbin55508 -> 0 bytes-rwxr-xr-xtools/i386/e2fsck.sharedbin80308 -> 0 bytes-rwxr-xr-xtools/i386/mkreiserfsbin15868 -> 0 bytes-rw-r--r--tools/i386/netboot/.cvsignore4
-rw-r--r--tools/i386/netboot/3c503/nbgrubbin106660 -> 0 bytes-rw-r--r--tools/i386/netboot/3c503/pxegrubbin107684 -> 0 bytes-rwxr-xr-xtools/i386/netboot/3c503/stage1bin512 -> 0 bytes-rw-r--r--tools/i386/netboot/3c503/stage2bin106660 -> 0 bytes-rw-r--r--tools/i386/netboot/3c507/nbgrubbin106208 -> 0 bytes-rw-r--r--tools/i386/netboot/3c507/pxegrubbin107232 -> 0 bytes-rwxr-xr-xtools/i386/netboot/3c507/stage1bin512 -> 0 bytes-rw-r--r--tools/i386/netboot/3c507/stage2bin106272 -> 0 bytes-rw-r--r--tools/i386/netboot/3c509/nbgrubbin106712 -> 0 bytes-rw-r--r--tools/i386/netboot/3c509/pxegrubbin107736 -> 0 bytes-rwxr-xr-xtools/i386/netboot/3c509/stage1bin512 -> 0 bytes-rw-r--r--tools/i386/netboot/3c509/stage2bin106744 -> 0 bytes-rw-r--r--tools/i386/netboot/3c529/nbgrubbin107592 -> 0 bytes-rw-r--r--tools/i386/netboot/3c529/pxegrubbin108616 -> 0 bytes-rwxr-xr-xtools/i386/netboot/3c529/stage1bin512 -> 0 bytes-rw-r--r--tools/i386/netboot/3c529/stage2bin107624 -> 0 bytes-rw-r--r--tools/i386/netboot/3c595/nbgrubbin109440 -> 0 bytes-rw-r--r--tools/i386/netboot/3c595/pxegrubbin110464 -> 0 bytes-rwxr-xr-xtools/i386/netboot/3c595/stage1bin512 -> 0 bytes-rw-r--r--tools/i386/netboot/3c595/stage2bin109440 -> 0 bytes-rw-r--r--tools/i386/netboot/3c90x/nbgrubbin111360 -> 0 bytes-rw-r--r--tools/i386/netboot/3c90x/pxegrubbin112384 -> 0 bytes-rwxr-xr-xtools/i386/netboot/3c90x/stage1bin512 -> 0 bytes-rw-r--r--tools/i386/netboot/3c90x/stage2bin111360 -> 0 bytes-rw-r--r--tools/i386/netboot/depca/nbgrubbin106376 -> 0 bytes-rw-r--r--tools/i386/netboot/depca/pxegrubbin107400 -> 0 bytes-rwxr-xr-xtools/i386/netboot/depca/stage1bin512 -> 0 bytes-rw-r--r--tools/i386/netboot/depca/stage2bin106440 -> 0 bytes-rw-r--r--tools/i386/netboot/device.map1
-rw-r--r--tools/i386/netboot/eepro/nbgrubbin106472 -> 0 bytes-rw-r--r--tools/i386/netboot/eepro/pxegrubbin107496 -> 0 bytes-rwxr-xr-xtools/i386/netboot/eepro/stage1bin512 -> 0 bytes-rw-r--r--tools/i386/netboot/eepro/stage2bin106504 -> 0 bytes-rw-r--r--tools/i386/netboot/eepro100/nbgrubbin109408 -> 0 bytes-rw-r--r--tools/i386/netboot/eepro100/pxegrubbin110432 -> 0 bytes-rwxr-xr-xtools/i386/netboot/eepro100/stage1bin512 -> 0 bytes-rw-r--r--tools/i386/netboot/eepro100/stage2bin109472 -> 0 bytes-rw-r--r--tools/i386/netboot/epic100/nbgrubbin108160 -> 0 bytes-rw-r--r--tools/i386/netboot/epic100/pxegrubbin109184 -> 0 bytes-rwxr-xr-xtools/i386/netboot/epic100/stage1bin512 -> 0 bytes-rw-r--r--tools/i386/netboot/epic100/stage2bin108192 -> 0 bytes-rw-r--r--tools/i386/netboot/exos205/nbgrubbin106560 -> 0 bytes-rw-r--r--tools/i386/netboot/exos205/pxegrubbin107584 -> 0 bytes-rwxr-xr-xtools/i386/netboot/exos205/stage1bin512 -> 0 bytes-rw-r--r--tools/i386/netboot/exos205/stage2bin106592 -> 0 bytes-rwxr-xr-xtools/i386/netboot/grubbin355291 -> 0 bytes-rw-r--r--tools/i386/netboot/lance/nbgrubbin108512 -> 0 bytes-rw-r--r--tools/i386/netboot/lance/pxegrubbin109536 -> 0 bytes-rwxr-xr-xtools/i386/netboot/lance/stage1bin512 -> 0 bytes-rw-r--r--tools/i386/netboot/lance/stage2bin108512 -> 0 bytes-rwxr-xr-xtools/i386/netboot/makeImages31
-rwxr-xr-xtools/i386/netboot/make_boot_network17
-rw-r--r--tools/i386/netboot/menu.lst.example21
-rw-r--r--tools/i386/netboot/ne/nbgrubbin106280 -> 0 bytes-rw-r--r--tools/i386/netboot/ne/pxegrubbin107304 -> 0 bytes-rwxr-xr-xtools/i386/netboot/ne/stage1bin512 -> 0 bytes-rw-r--r--tools/i386/netboot/ne/stage2bin106344 -> 0 bytes-rw-r--r--tools/i386/netboot/ne2100/nbgrubbin106620 -> 0 bytes-rw-r--r--tools/i386/netboot/ne2100/pxegrubbin107644 -> 0 bytes-rwxr-xr-xtools/i386/netboot/ne2100/stage1bin512 -> 0 bytes-rw-r--r--tools/i386/netboot/ne2100/stage2bin106652 -> 0 bytes-rw-r--r--tools/i386/netboot/ni5010/nbgrubbin105608 -> 0 bytes-rw-r--r--tools/i386/netboot/ni5010/pxegrubbin106632 -> 0 bytes-rwxr-xr-xtools/i386/netboot/ni5010/stage1bin512 -> 0 bytes-rw-r--r--tools/i386/netboot/ni5010/stage2bin105640 -> 0 bytes-rw-r--r--tools/i386/netboot/ni5210/nbgrubbin106336 -> 0 bytes-rw-r--r--tools/i386/netboot/ni5210/pxegrubbin107360 -> 0 bytes-rwxr-xr-xtools/i386/netboot/ni5210/stage1bin512 -> 0 bytes-rw-r--r--tools/i386/netboot/ni5210/stage2bin106368 -> 0 bytes-rw-r--r--tools/i386/netboot/ni6510/nbgrubbin106588 -> 0 bytes-rw-r--r--tools/i386/netboot/ni6510/pxegrubbin107612 -> 0 bytes-rwxr-xr-xtools/i386/netboot/ni6510/stage1bin512 -> 0 bytes-rw-r--r--tools/i386/netboot/ni6510/stage2bin106620 -> 0 bytes-rw-r--r--tools/i386/netboot/ns8390/nbgrubbin108664 -> 0 bytes-rw-r--r--tools/i386/netboot/ns8390/pxegrubbin109688 -> 0 bytes-rwxr-xr-xtools/i386/netboot/ns8390/stage1bin512 -> 0 bytes-rw-r--r--tools/i386/netboot/ns8390/stage2bin108696 -> 0 bytes-rw-r--r--tools/i386/netboot/otulip/nbgrubbin108484 -> 0 bytes-rw-r--r--tools/i386/netboot/otulip/pxegrubbin109508 -> 0 bytes-rwxr-xr-xtools/i386/netboot/otulip/stage1bin512 -> 0 bytes-rw-r--r--tools/i386/netboot/otulip/stage2bin108516 -> 0 bytes-rw-r--r--tools/i386/netboot/rtl8139/nbgrubbin108000 -> 0 bytes-rw-r--r--tools/i386/netboot/rtl8139/pxegrubbin109024 -> 0 bytes-rwxr-xr-xtools/i386/netboot/rtl8139/stage1bin512 -> 0 bytes-rw-r--r--tools/i386/netboot/rtl8139/stage2bin108000 -> 0 bytes-rw-r--r--tools/i386/netboot/sis900/nbgrubbin112392 -> 0 bytes-rw-r--r--tools/i386/netboot/sis900/pxegrubbin113416 -> 0 bytes-rwxr-xr-xtools/i386/netboot/sis900/stage1bin512 -> 0 bytes-rw-r--r--tools/i386/netboot/sis900/stage2bin112392 -> 0 bytes-rw-r--r--tools/i386/netboot/sk_g16/nbgrubbin106500 -> 0 bytes-rw-r--r--tools/i386/netboot/sk_g16/pxegrubbin107524 -> 0 bytes-rwxr-xr-xtools/i386/netboot/sk_g16/stage1bin512 -> 0 bytes-rw-r--r--tools/i386/netboot/sk_g16/stage2bin106532 -> 0 bytes-rw-r--r--tools/i386/netboot/smc9000/nbgrubbin106976 -> 0 bytes-rw-r--r--tools/i386/netboot/smc9000/pxegrubbin108000 -> 0 bytes-rwxr-xr-xtools/i386/netboot/smc9000/stage1bin512 -> 0 bytes-rw-r--r--tools/i386/netboot/smc9000/stage2bin106976 -> 0 bytes-rwxr-xr-xtools/i386/netboot/stage1.3c59xbin512 -> 0 bytes-rwxr-xr-xtools/i386/netboot/stage1.3c90xbin512 -> 0 bytes-rwxr-xr-xtools/i386/netboot/stage1.eepro100bin512 -> 0 bytes-rwxr-xr-xtools/i386/netboot/stage1.rtl8139bin512 -> 0 bytes-rwxr-xr-xtools/i386/netboot/stage1.tulipbin512 -> 0 bytes-rwxr-xr-xtools/i386/netboot/stage1.via-rhinebin512 -> 0 bytes-rw-r--r--tools/i386/netboot/stage2.3c59xbin80564 -> 0 bytes-rw-r--r--tools/i386/netboot/stage2.3c90xbin111100 -> 0 bytes-rw-r--r--tools/i386/netboot/stage2.eepro100bin107584 -> 0 bytes-rw-r--r--tools/i386/netboot/stage2.rtl8139bin108028 -> 0 bytes-rw-r--r--tools/i386/netboot/stage2.tulipbin94396 -> 0 bytes-rw-r--r--tools/i386/netboot/stage2.via-rhinebin88208 -> 0 bytes-rw-r--r--tools/i386/netboot/tiara/nbgrubbin105188 -> 0 bytes-rw-r--r--tools/i386/netboot/tiara/pxegrubbin106212 -> 0 bytes-rwxr-xr-xtools/i386/netboot/tiara/stage1bin512 -> 0 bytes-rw-r--r--tools/i386/netboot/tiara/stage2bin105252 -> 0 bytes-rw-r--r--tools/i386/netboot/tulip/nbgrubbin119404 -> 0 bytes-rw-r--r--tools/i386/netboot/tulip/pxegrubbin120428 -> 0 bytes-rwxr-xr-xtools/i386/netboot/tulip/stage1bin512 -> 0 bytes-rw-r--r--tools/i386/netboot/tulip/stage2bin119404 -> 0 bytes-rw-r--r--tools/i386/netboot/w89c840/nbgrubbin109356 -> 0 bytes-rw-r--r--tools/i386/netboot/w89c840/pxegrubbin110380 -> 0 bytes-rwxr-xr-xtools/i386/netboot/w89c840/stage1bin512 -> 0 bytes-rw-r--r--tools/i386/netboot/w89c840/stage2bin109388 -> 0 bytes-rw-r--r--tools/i386/netboot/wd/nbgrubbin106760 -> 0 bytes-rw-r--r--tools/i386/netboot/wd/pxegrubbin107784 -> 0 bytes-rwxr-xr-xtools/i386/netboot/wd/stage1bin512 -> 0 bytes-rw-r--r--tools/i386/netboot/wd/stage2bin106792 -> 0 bytes-rwxr-xr-xtools/i386/shbin153752 -> 0 bytes-rwxr-xr-xtools/ia64/e2fsck.sharedbin1060504 -> 0 bytes-rwxr-xr-xtools/ia64/elilo.efibin315800 -> 0 bytes-rwxr-xr-xtools/mailchangelog.pl14
-rwxr-xr-xtools/make_mdkinst_stage277
-rwxr-xr-xtools/mkhdlist16
-rw-r--r--tools/ntp_servers.pl298
-rwxr-xr-xtools/oem-prepare477
-rwxr-xr-xtools/patch_pcmcia_config.pl28
-rw-r--r--tools/ppc/README39
-rwxr-xr-xtools/ppc/Xpmacbin3762427 -> 0 bytes-rwxr-xr-xtools/ppc/convert5
-rw-r--r--tools/ppc/e2fsck.sharedbin101469 -> 0 bytes-rwxr-xr-xtools/ppc/magic81
-rwxr-xr-xtools/ppc/mapping20
-rwxr-xr-xtools/ppc/mkINSTALLCD78
-rwxr-xr-xtools/ppc/mkhybrid-1.12b5.4bin488623 -> 0 bytes-rwxr-xr-xtools/ppc/mkhybrid-1.12b5.4-x86bin194471 -> 0 bytes-rw-r--r--tools/ppc/yabootbin58556 -> 0 bytes-rwxr-xr-xtools/sparc/e2fsck.sharedbin125624 -> 0 bytes-rwxr-xr-xtools/specific_arch9
-rwxr-xr-xtools/syncrpms263
-rwxr-xr-xtools/updatehdlist10
-rw-r--r--tools/xhost+.c11
2021 files changed, 0 insertions, 965426 deletions
diff --git a/.cvsignore b/.cvsignore
deleted file mode 100644
index 2a8035f11..000000000
--- a/.cvsignore
+++ /dev/null
@@ -1,5 +0,0 @@
-docs
-images
-unused
-drakxtools.tar.bz2
-isolinux
diff --git a/Makefile b/Makefile
deleted file mode 100644
index b61c610dc..000000000
--- a/Makefile
+++ /dev/null
@@ -1,109 +0,0 @@
-ROOTDEST = /export
-
-DIRS = tools kernel mdk-stage1 perl-install
-
-
-ARCH := $(patsubst i%86,i386,$(shell uname -m))
-ARCH := $(patsubst sparc%,sparc,$(ARCH))
-
-ifeq (i386,$(ARCH))
- BOOT_IMG = cdrom.img hd.img network.img usb.img blank.img pcmcia.img other.img
-endif
-ifeq (sparc,$(ARCH))
- BOOT_IMG = cdrom.img hd.img network.img live.img tftp.img tftprd.img
- BOOT_IMG += cdrom64.img hd64.img network64.img live64.img tftp64.img tftprd64.img
-endif
-ifeq (ppc,$(ARCH))
- BOOT_IMG = all.img
-endif
-ifeq (ia64,$(ARCH))
- BOOT_IMG = all.img
-endif
-
-FBOOT_IMG = $(BOOT_IMG:%=images/%)
-FBOOT_RDZ = $(FBOOT_IMG:%.img=%.rdz) images/all.rdz
-
-.PHONY: dirs install
-
-install: dirs images rescue install_only
-
-dirs:
- @for n in $(DIRS); do $(MAKE) -C $$n all || exit 1 ; done
-
-images: $(FBOOT_IMG) images/all.rdz # all.rdz is needed to update isolinux
-
-$(FBOOT_RDZ): kernel/all.modules
- ./make_boot_img $@ `basename $(@:%.rdz=%)`
-
-$(FBOOT_IMG): %.img: %.rdz
- ./make_boot_img $@ `basename $(@:%.img=%)`
-
-tar: clean
- rpm -qa > needed_rpms.lst
- cd .. ; tar cfj gi.tar.bz2 gi
- rm needed_rpms.lst
-
-install_only:
- for i in images misc Mandrake Mandrake/base Mandrake/share; do install -d $(ROOTDEST)/$$i ; done
- ifneq (ppc,$(ARCH))
- for i in $(FBOOT_IMG); do cp -f $${i}* $(ROOTDEST)/images; done
- endif
- ifeq (alpha,$(ARCH))
- for i in $(FBOOT_RDZ); do cp -f $${i}* $(ROOTDEST)/boot; done
- cp -f vmlinux.gz $(ROOTDEST)/boot/instboot.gz
- make -C tools/$(ARCH)/cd install ROOTDEST=$(ROOTDEST)
- endif
- cd $(ROOTDEST)/images; rm -rf alternatives
- if [ `ls $(ROOTDEST)/images/*.img-* 2>/dev/null | wc -l` -gt 0 ]; then \
- cd $(ROOTDEST)/images; mkdir alternatives; cd alternatives; mv ../*.img-* .; md5sum *.img-* > MD5SUM; \
- fi
- cd $(ROOTDEST)/images; md5sum *.img* > MD5SUM
-
- ifeq (i386,$(ARCH))
- rm -rf $(ROOTDEST)/isolinux
- cp -af isolinux $(ROOTDEST)
- endif
-
- install live_update $(ROOTDEST)/live_update
- make -C perl-install full_stage2
- make -C perl-install/share/advertising install
-
-clean:
- rm -rf images all.modules all.modules64
- for i in $(DIRS) rescue; do make -C $$i clean; done
- find . -name "*~" -o -name ".#*" | xargs rm -f
-
-check:
- @badrights=`find $(ROOTDEST)/Mandrake/mdkinst | perl -lne 'print if !((stat)[2] & 4)'`; [ -z "$$badrights" ] || { echo "bad rights for files vvvvvvvvvvvvvvvvvvvvvvvvvv" ; echo "$$badrights" ; echo "bad rights for files ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" ; exit 1; }
- @missing_kb=`find -name "Entries" | xargs perl -F/ -alne 'print $$ARGV =~ m|(.*)/CVS|, "/$$F[1]" if $$F[1] =~ /\.(png|gif|bmp|xcf|gz|bz2|tar|rdz|so|a|o|mar|img|exe)$$/ && $$F[4] ne "-kb"'` ; [ -z "$$missing_kb" ] || { echo "missing -kb in CVS for files vvvvvvvvvvvvvvvvvvvvvvvvvv" ; echo "$$missing_kb" ; echo "missing -kb in CVS for files ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" ; exit 1; }
- $(MAKE) -C perl-install check
-
-upload:
- $(MAKE) clean
-
-# # done before make install to increment ChangeLog version
- tools/addchangelog.pl tools/cvslog2changelog.pl | tools/mailchangelog.pl &
-
- $(MAKE) install
- $(MAKE) check
- $(MAKE) upload_only
-
-upload_only:
- function upload() { rsync -qSavz --verbose --exclude '*~' -e ssh --delete $(ROOTDEST)/$$1/$$2 mandrake@ken:/c/cooker/$$1; } ;\
- upload Mandrake/mdkinst '' ;\
- upload Mandrake/base compssUsers* ;\
- upload Mandrake/base rpmsrate ;\
- upload Mandrake/base *_stage2.bz2 ;\
- upload Mandrake/share/advertising '' ;\
- upload misc gendistrib ;\
- upload misc make_mdkinst_stage2 ;\
- upload misc packdrake ;\
- upload misc packdrake.pm ;\
- upload misc rpmtools.pm ;\
- upload misc auto ;\
- upload '' live_update ;\
- upload images MD5SUM ;\
- upload images *.img* ;\
- upload images/alternatives '' ;\
- upload isolinux '' ;\
- echo
diff --git a/docs/.cvsignore b/docs/.cvsignore
deleted file mode 100644
index a0593a470..000000000
--- a/docs/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-pictures
diff --git a/docs/BUGS b/docs/BUGS
deleted file mode 100644
index 1d154fcf1..000000000
--- a/docs/BUGS
+++ /dev/null
@@ -1,10 +0,0 @@
-doInstallStep: if there's not enough room, error, but packages are marked installed :(
-
-when you click directly on setupFilesystems and you have scsi, you're fucked.
-Even if you go to setupSCSI, you won't be able to have partitions again.
-
-bug non reproductible:
-- /etc/passwd is empty after `root passwd' stage :(
-- reboot at the end of package installation with a lot of error messages from
-gtk about the progressbar
-
diff --git a/docs/COPYING b/docs/COPYING
deleted file mode 100644
index 60549be51..000000000
--- a/docs/COPYING
+++ /dev/null
@@ -1,340 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 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
-
- 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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/docs/HACKING b/docs/HACKING
deleted file mode 100644
index a517839ba..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 Mandrake Linux distribution.
-
-cd to gi
-for i in `du -a | grep CVS/Root | cut -f 2`
-do
- sed -e 's/prigaux/anoncvs/' $i > $i.tmp
- mv $i.tmp $i
-done
-
-Then, log yourself into the cvs:
-% export CVS_RSH=ssh
-% export CVSROOT=:ext:anoncvs@cvs.mandrakesoft.com:/cooker
-% cvs checkout gi
- (passwd: 'cvs')
-And update the gi package:
-cvs update -P -d
-
-
---------------------------------------------------------------------------
-Preparing the compilation process:
-
-(1) target directory
-
-create a /export directory and copy a recent Mandrake Linux CD in there.
-(You don't have to put have all the RPMS...) ; you'll need roughly 1.5
-Gbytes for a full install.
-
-[gc@obiwan ~/cvs/gi] su -c "mkdir /export"
-
-
-(2) devel packages
-
-you need quite a few devel packages to run the stuff; roughly: gcc, make,
-glibc-devel, perl-devel, XFree86-devel, libglib-devel, libgtk+-devel,
-perl-GTK, ldetect*, libslang-devel, libnewt-devel, e2fsprogs, dosfstools,
-rpm-devel, popt-devel, rpmtools, libbzip2*, libncurses*.
-
-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.
-
-
-(3) sudo
-
-never build or run DrakX as root; install package sudo, and set up
-relevant permissions; the following should be enough: (in your
-/etc/sudoers)
-
-gc 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
-
-
-(4) boot kernel
-
-you need one or more kernels and (all?) their modules. it's located in
-subdirectory "all.kernels" in DrakX-*.src.rpm ; if you ever grab (or
-build) another boot kernel, replace or add an entry in "all.kernels" as:
-
- (a) create your modules subdir (useful to describe the
- VERSION_RELEASE) and untar your kernel
-
-[gc@obiwan ~/cvs/gi/all.kernels] mkdir 2.4.1-BOOTcustom
-[gc@obiwan ~/cvs/gi/all.kernels] cd 2.4.1-BOOTcustom
-[gc@obiwan ~/cvs/gi/all.kernels/2.4.1-BOOTcustom] tar jxvf ~/mycustomkernel.tar.bz2
-[gc@obiwan ~/cvs/gi/all.kernels/2.4.1-BOOTcustom] ls
-boot/ cardmgr/ lib/
-
- (c) build kernel/modules stuff for stage1 and stage2
-[gc@obiwan ~/cvs/gi] ./update_kernel
-
-
-(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 ./g_auto_install --test
-
- You should be able to test the whole thing in a non-destructive way.
-
-NEVER compile and/or execute DrakX as root!
-
-
-
-
-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
diff --git a/docs/README b/docs/README
deleted file mode 100644
index d35508e66..000000000
--- a/docs/README
+++ /dev/null
@@ -1,377 +0,0 @@
-Well here is a little description of what DrakX needs to work in comparison
-to the RH newt install.
-
-********************************************************************************
-* CVS **************************************************************************
-********************************************************************************
-Like all good free software, DrakX is in CVS :)
-
-You can access it at http://www.mandrakelinux.com/cgi-bin/cvsweb.cgi/gi
-
-or via
-
-export CVS_RSH=ssh
-export CVSROOT=:ext:anoncvs@cvs.mandrakesoft.com:/cooker
-cvs checkout gi
- (enter password 'cvs')
-
-
-This is only read-only access. If you want more, tell me (pixel@mandrakesoft.com)
-
-Alas, all is not in CVS as a lot of things are binary files.
-
-For the boot kernel, see https://kenobi.mandrakesoft.com/~chmou/kernel/BOOT/
-or build your own:
-- install the kernel-*.src.rpm from
-- go to the /usr/src/RPM/SPECS/ (or any others topdir you have configured).
-- type rpm -ba --with BOOT kernel-2.4.spec.
-Then see function install_kernel() at the end of gi/update_kernel.
-
-For the other things, take SRPMS/DrakX-*.src.rpm
-
-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)
-
-********************************************************************************
-* Making your custom install ***************************************************
-********************************************************************************
-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 :
-
-(1) network or 1-cdrom installs
- DIRS == the root directory of the Distribution
-
-(2) multi-cdrom install
- DIRS == the root directories of all the media that the install will see
-
-``gendistrib'' will scan the file Mandrake/base/hdlists in the main root
-directory (the first one in DIRS) to search for all media used. Typically you
-use Mandrake/RPMS* for RPM packages repository.
-For multi-cd, please use Mandrake/RPMS or Mandrake/RPMS1, Mandrake/RPMS2, etc.
-For one CD or a network/hd volume, please use Mandrake/RPMS.
-
-Optionnally, you can modify ``Mandrake/base/rpmsrate''; this file manages
-the relative importance of the files, and thus their installation or not.
-
-Also, mdkinst_stage2.gz must be remade if you modify files in Mandrake/mdkinst.
-See below for information about these files.
-
-********************************************************************************
-* FILES ************************************************************************
-********************************************************************************
-First here are the different things needed :
-
-Mandrake/base/hdlists
- description of the available install media.
- format is one line for one medium as
- <hdlist_name> <rpms_directory> <description>
- <hdlist_name> should be match regexp /hdlist\S*.cz2?/
- for example (two cd install) you get
- hdlist1.cz Mandrake/RPMS1 Boot CD
- hdlist2.cz Mandrake/RPMS2 Extension CD
-
-Mandrake/base/hdlist*.cz
- table of rpm's headers, referred by ``hdlists''
- their contents can be listed using ``packdrake -l <hdlist_file>'' or
- or ``parsehdlist <hdlist_file>''.
- ! Need to be remade when Mandrake/RPMS* changes (with ``gendistrib'') !
-
-Mandrake/base/depslist.ordered
- for each packages, tell which package it depends on. Also contains the
- size for some (obscure) bloody reasons.
- ! Need to be remade when Mandrake/RPMS* changes !
- (with ``gendistrib --noclean --distrib .'')
-
-Mandrake/base/compss
- obsoletes comps. It store packages in different categories, generated
- from the %{GROUP} field
- ! Need to be remade when Mandrake/RPMS* changes !
- (with ``gendistrib --noclean --distrib .'')
-
-Mandrake/base/rpmsrate
- ranks and classify packages, so that the installer will know which
- ones to install. format is :
- <intern_group>
- <level> <packages>
- where <intern_group> is a symbolic name used in Mandrake/base/compssUsers* files,
- and <level> defines importance level as described below :
- 5 must have
- 4 important
- 3 very nice
- 2 nice
- 1 maybe
- by default (for non expert), group selects packages for level 4 (important)
- and 5 (must have). export mode add 3 (very nice) level. other level (below 2)
- can only be selected using individual package selection.
-
-Mandrake/mdkinst
- live system used on certain installs. See ``Ramdisk or not'' below for
- more.
-
-Mandrake/base/mdkinst_stage2.bz2
- for the ramdisk. live sytem in ext2 filesystem bzipped2.
- generated from Mandrake/mdkinst tree using misc/make_mdkinst_stage2
- See ``Ramdisk or not'' below for more.
-
-Mandrake/base/rescue_stage2.bz2
- rescue ramdisk. live sytem in ext2 filesystem bzipped2.
- this is the ramdisk loaded when typing rescue on boot prompt.
- there is no live system available, only the ramdisk is used.
-
-images/*.img
- boot images to use with DrakX. Use:
- - cdrom for cdrom install
- - network for ftp/nfs install (non-pcmcia devices)
- - hd for hard-disk install
- - pcmcia for pcmcia install (see ``PCMCIA install'' below for more)
-
- the following modules have been removed from:
- network.img: acenic sk98lin de4x5
- cdrom.img and hd.img: BusLogic seagate fdomain g_NCR5380 dc395x_trm tmscsim
- hd.img: dpt_i2o eata eata_pio eata_dma
- cdrom.img: aztcd gscd isp16 mcd mcdx optcd cm206 sjcd
- pcmcia.img: apa1480_cb
- they are now in "other.img",
-
- blank.img is a blank boot image without a kernel nor initrd. this image
- can be used to generate custom boot disk.
-
- if you think one of those modules is used a lot, tell me, i may find some room
- to put it back on the main floppies.
-
-
-********************************************************************************
-* logs *************************************************************************
-********************************************************************************
-During install, a lot of interesting stuff can be found in different places:
-in consoles and in files. To switch to console 2 for example, do Ctrl-Alt-F2
-from the X install.
-- alt-F1: the stdout of the install. Not very interesting stuff
-- alt-F2: simple shell. Quite a lot of commands are available but as they are
-written in perl (for space), they do not handle the very same options as normal.
-After install, you can do ``chroot /mnt'' to see your system just like after
-rebooting. ``rpm -qa'' works for example.
-- alt-F3: a lot of interesting things. Be carefull, some ``ERROR'' messages are
-not interesting.
-- alt-F4: kernel's place. aka the output of dmesg.
-- alt-F7: the graphical install lives there
-
-- command "bug" puts on floppy lots of interesting stuff.
-- /tmp/stage1.log: same as alt-F3 part when stage1 run (e.g. actions
- before graphical install really begins)
-- /tmp/ddebug.log: (nearly the) same as latter alt-F3 part
-- /tmp/syslog: same as alt-F4
-- /mnt/root/drakx/ddebug.log: at the end of each step, DrakX tries to backup
- /tmp/ddebug.log to /mnt/root/drakx. Available only after mounting of /.
-- /mnt/root/drakx/install.log: the log of the installation (or upgrade) of the rpms
-(just like rpm's /mnt/tmp/(install|upgrade).log)
-- /mnt/root/drakx/auto_inst.cfg.pl: a kickstart file generated at the end of each
-step. Can be used in 2 ways: kickstart install or ``defcfg'' install. Hopefully
-you know about kickstart. ``defcfg'' is a way to customize the default values in
-install. For example, French can be the default language with a qwerty keyboard,
-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.
-To add a new language, you just have to add it to lang.pm (if it's not there
-already) and put the .po in the perl-install/po directory (see ``Ramdisk or
-not'' to know if you have to regenerate the mdkinst_stage2.gz)
-
-********************************************************************************
-* PCMCIA install ***************************************************************
-********************************************************************************
-If the media you use to install is a pcmcia device, use the pcmcia boot disk.
-
-********************************************************************************
-* Ramdisk or not ***************************************************************
-********************************************************************************
-The DrakX install is much bigger than the newt one. So the ramdisk which was
-used is getting big, and costs a lot in memory
-(eg: the mdkinst_stage2 is 14MB - 23/09/99)
-(update! now size is 21MB - 24/01/01)
-(update! now size is 19MB - 26/04/01)
-
-| | newt | DrakX
-|-------+---------+----------------------------------------------------------
-| nfs | live | live
-| ftp | ramdisk | ramdisk
-| http | ramdisk | ramdisk
-| hd | ramdisk | live if Mandrake/mdkinst/usr/bin/runinstall2 is a link,
-| | | ramdisk otherwise
-| cdrom | ramdisk | live if memory < 52MB, ramdisk otherwise
-
-Where ramdisk is needed, if detected memory is below the limit allowed for
-ramdisk (maintained in file gi/mdk-stage1/config-stage1.h; currently 52 Mb),
-a failure dialog will be printed explaining that there is not enough memory
-to perform the installation.
-
-When i say live, it means that the stage1 will *mount* the
-Mandrake/mdkinst and use it that way.
-
-The ramdisk is used in place of the live in some cases. This ramdisk is filled
-with mdkinst_stage2.gz
-
-For cdrom install, the ramdisk is used to speed up things (access time is quite
-high on cdrom drives)
-
-For pcmcia, it depends on the type of install.
-
-
-********************************************************************************
-* modules **********************************************************************
-********************************************************************************
-Modules can be found in at least 2 places:
-- in /modules/modules.mar
-- in /lib/modules.cz<KERNEL_VERSION_RELEASE>
-
-/modules/modules.mar is used in mdk-stage1. It contains only modules
-interesting for one kind of install. For example in an hd install, it
-contains scsi modules. For a network install, it contains network card
-modules. (To create, extract or view files in a ``mar'' archive, please
-use gi/mdk-stage1/mar/mar; this is basically an archive format meant to
-be minimalistic)
-
-/lib/modules.cz<KERNEL_VERSION_RELEASE> contains all modules, it is used
-in stage2.
-
-
-To install a module, use modprobe which is in /usr/bin. It's a perl wrapper
-around /usr/bin/insmod. It uses the dependencies found in
-/modules/modules.dep (stage1).
-
-/usr/bin/insmod is a wrapper around /usr/bin/insmod_. It just extracts the
-module out of /lib/modules.cz in /tmp. Then it calls insmod_.
-
-/usr/bin/insmod_ is the real prog (which you usually find in /sbin/). You need
-to give it the complete path.
-
-********************************************************************************
-* Making screenshots ***********************************************************
-********************************************************************************
-1. easy solution: press "F2"!
-
-2. On a test machine, make a network install, switch to console (ctrl-alt-F2), enter:
-% xhost+
-then, on another computer:
-% DISPLAY=test_machine:0 xwd -root | convert - screenshot.png
-
-********************************************************************************
-* Miscellaneous ****************************************************************
-********************************************************************************
-> o Media access methods: nfs, ftp, http, hd, cdrom
-> o Stages: init, stage1, stage2
-> - What exactly each stage does
-
-init loads stage1
-stage1 loads stage2, on various medium type
-
-stage2 is too big to fit on a floppy, that's why stage1 exists
-
-> - How each stage relates to the various media access methods
-
-stage1 knows only how to access to the media is compiled for. It contains only
-the kernel modules needed for that media. For eg, the nfs/ftp/http stage1
-doesn't contain scsi modules nor ide.
-
-> - How one stage terminates and another begins. i.e., How does
-> stage1 find, mount, and launch stage2?
-
-/sbin/init just starts /sbin/stage1
-/sbin/stage1 takes care of mounting stage2 (in ramdisk if necessary)
- then it runs /usr/bin/runinstall2
-
-> o Text and Graphic mode installers
-> - Architectural overview of each
-
-have a look at gi/docs/object_class.fig
-
-
-********************************************************************************
-* OEM **************************************************************************
-********************************************************************************
-> I am a system OEM in Bangalore,India selling systems bundled with
-> Mandrake Linux. The problem is that with every system I sell, I need to
-> install & configure the system which takes HOURS!. Can I do a diskcopy
-> instead?
->
-> Please Help. This is a major bottleneck for me.
-
-many solutions:
-
-- make an install on drive hdb, then :
- dd if=/dev/hdb of=/dev/hdc
- but you should make sure the hardware is *REALLY* identical.
-
-- try the oem feature
- 3. - burn a cd out of *latest* cooker or 8.0 and above.
- - boot on it telling "oem" to syslinux
- !! it will destroy every data on the harddrive or
- resize (or use free space) if *ONLY* one fat partition is defined !!
- - you now have a very automated install matrix
- (duplicate it with "dd if=/dev/hdb of=/dev/hdc bs=1M count=730")
-
- put the harddrive in the oem box, the user will now have an *very* automated
- install, just asking the root password and user password, and some other
- question according its hardware.
-
- 4. just like 3. but you may have to mount /cdrom after typing rescue on
- syslinux prompt (oem script do it automatically if a automatic boot nfs
- network has been done as server is known). under /cdrom may be anything
- as long as it provides an installation tree of Mandrake Linux.
- after that run oem script by typing "/etc/oem -f" for normal installation
- or "/etc/oem -f server" for server installation (normal with server installed).
-
- 5. (just like 3. without burning a cd, doing the first part by hand)
- have a look at the /etc/oem script on the rescue and do it by hand...
-
-
-cu Pixel, fpons.
-
-
-comments:
-1. maybe copy unnecessary things -> take too long
- solution -> use bs=8k count=xxxx
-2. kernel_reread can be found on the new rescue, source is also at end of this
-mail. This solution works with one partition. Can be easily enhanced to many
-primary partitions... For extended partitions, more complicated, but not much :)
-3. has just been added in latest cooker. It may still have some pb. The main
-current limitation is IDE only, though it can be fixed easily for special cases.
-
---------------------------------------------------------------------------------
-#include <stdio.h>
-#include <sys/mount.h>
-#include <fcntl.h>
-
-void die(char *msg)
-{
- perror(msg);
- exit(1);
-}
-
-void kernel_read(char *dev)
-{
- int fd;
- if ((fd = open(dev, O_RDONLY)) == -1) die("can't open device");
- ioctl(fd, BLKRRPART, 0);
- close(fd);
-}
-
-int main(int argc, char **argv)
-{
- if (argc != 2) {
- fprintf(stderr, "usage: kernel_read_part <hard drive device>\n");
- exit(1);
- }
- kernel_read(argv[1]);
-}
diff --git a/docs/README.devel b/docs/README.devel
deleted file mode 100644
index 0244557ba..000000000
--- a/docs/README.devel
+++ /dev/null
@@ -1,252 +0,0 @@
-Well here is a little description of how DrakX can be modified or extended.
-Please refer to README file for getting DrakX code source and to known more
-exactly how it works and what it can do.
-
-
-********************************************************************************
-* Execution of DrakX ***********************************************************
-********************************************************************************
-DrakX has originally be written by pixel in perl and C.
-entry point for stage2 is /usr/bin/runinstall2 which is typically a link to
-/usr/bin/install2 which simply load module install2.pm and execute
-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
-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().
-while running step, it trap any errors that may arise and use perl exception to
-change step.
-
-********************************************************************************
-* DrakX modules descriptions ***************************************************
-********************************************************************************
-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
- 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
- methods. typically are found all interactive code of DrakX for each steps.
-
-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
- modules described below).
-
-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
- interactive_newt.
-
-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
- not used by standalone tools.
-
-install_gtk: contains various methods using gtk interface but not used by
- standalone tools.
-
-interactive_stdio: implementation methods for interactivity in stdio mode.
- inherit module interactive.
-
-interactive_newt: implementation methods for interactivity in newt mode.
- inherit module interactive.
-
-interactive_gtk: implementation methods for interactivity in gtk mode.
- inherit module interactive.
-
-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.
-
-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
- code that reference interactive method which are not defined.
-
-common: contains very simple and very usefull (common) methods to do various task.
- some methods inspired by functionnal language.
-
-c: contains wrapper to C definition of methods used by DrakX, use of C is necessary
- for C extern libraries interface (rpmlib, ldetect), kernel interface, XFree
- interface.
-
-commands: implement some un*x commands, conflicting name with perl contains
- trailing underscore (_). this module is used by commands perl script that
- determine which command to run according to $0 (this is used this way when DrakX
- is running).
-
-run_program: allow running a program with redirection but without using a shell.
- allow rooted execution.
-
-help: contains all help message displayed by DrakX.
-
-log: log facility methods.
-
-lang: language manipulation methods, get and set sysconfig file, load po.
-
-keyboard: keyboard manipulation methods, get and set sysconfig file, set console
- keyboard mapping.
-
-mouse: mouse manipulation methods, get and set sysconfig file, change mouse.
-
-timezone: time zone manipulation methods, get and set timezone.
-
-services: services manipulation methods, activate or delete services (see
- /etc/rc.d/init.d directories).
-
-detect_devices: manage detection of various class of hardware.
-
-devices: manage device file, create device special according device name.
-
-partition_table: base partition table management methods, it manages
- appriopriate partition_table_XXX object according to what has been read
- as XXX partition table type.
-
-partition_table_raw: generic class for the following partition_table_XXX.
-
-partition_table_emtpy: matches an empty partition table.
-
-partition_table_dos: matches a DOS partition table.
-
-partition_table_bsd: matches a BSD partition table.
-
-partition_table_mac: matches an Apple partition table.
-
-partition_table_sun: matches a Sun Label partition table.
-
-fs: read and write /etc/fstab file, mount and umount, format.
-
-fsedit: manage (modyfy, edit) mount point associated to partition (like editing
- /etc/fstab).
-
-swap: swap management methods, format and mount (activation).
-
-raid: raid (software only) management methods.
-
-lvm: lvm (Logical Volume Manager) management methods.
-
-loopback: loopback management methods, used for lnx4win type installation or using
- a file as a partition.
-
-diskdrake: diskdrake itself, disk graphical (using gtk) manipulation tools.
-
-ftp: ftp mangement methods, used when using ftp install.
-
-http: http management methods, used when using http install.
-
-modparm: kernel modules options management, allow building nice dialog with each
- module parameter available.
-
-modules: kernel modules management, allow loading or unloading (ala modprobe or
- insmod).
-
-printer: printer management methods, read and write both LPR or CUPS configuration.
-
-printerdrake: interactive printer management methods.
-
-network: network management methods, get and set sysconfig file.
-
-netconnect: network configuration wizard.
-
-netconnect_const: network configuration wirard data.
-
-Xconfig: X configuration (monitor + already existing config file) management.
-
-Xconfigurator: X configuration wizard.
-
-Xconfigurator_const: X configuration wizard data.
-
-booloader: bootloader (LILO, GRUB, LOADLIN, SILO) configuration management methods.
-
-pkgs: rpm package and hdlist, depslist management methods, allow selecting or
- unselecting packages, manage rpmsrate file and select group, installation and
- removal methods of rpm file.
-
-crypto: *obsoleted* module to manage crypto site and rpm file.
-
-standalone: standalone only, allow defining a standalone tools.
-
-bootlook: standalone only, interface with DrakConf to configure bootloader options.
-
-tinyfirewall: standalone only, interface with DrakConf to configure a tiny firewall.
-
-********************************************************************************
-* DrakX FAT resizer module description *****************************************
-********************************************************************************
-here is a fat resizer written in perl and C used by DrakX (diskdrake) to resize
-FAT16/FAT32 partition. it moves clusters to make sure a shrink can be done on the
-limit of the partition itself, if no cluster need to be moved, only boot sector
-partition limit are modified.
-
-any: various methods to flag cluster, compute min size.
-
-boot_sector: boot sector management methods.
-
-c_rewritten: originally resize_fat was only perl, this contains code section that
- are the most sensible to speed or memory contraints and have been rewritten to C
- using perl extension.
-
-dir_entry: manage directory structure.
-
-directory: traverse directory recursively, needed to move correctly cluster.
-
-fat: manage fat structure.
-
-info_sector: manage info sector.
-
-io: manage I/O on disk (need to take care of big file as partition size may be
- larger than 2GB).
-
-main: main resizer algortihm. if needed allocate new clusters, copy files, copy
- directories. update boot sector info.
-
-********************************************************************************
-* Adding a new step to DrakX ***************************************************
-********************************************************************************
-Say we want to add a question for setting "alawindows" option.
-We put it pretty early in the install, let's say after "Select Installation
-Class".
-
-1. in install2.pm
-
-add
-
- selectAlawindows => [ __("A la windows or not"), 0, 1, '' ],
-
-after
-
- selectInstallClass => [ __("Select installation class"), 1, 1, '' ],
-
-the 0, 1, '' means not "redoable", "skip on error", "don't hide"
-
-2. add your function selectAlawindows in install2.pm
-
-sub selectAlawindows { $o->selectAlawindows }
-
-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
-case, except for auto_install)
-
-sub selectAlawindows {}
-
-
diff --git a/docs/README.pxe b/docs/README.pxe
deleted file mode 100644
index 2ddd205fe..000000000
--- a/docs/README.pxe
+++ /dev/null
@@ -1,133 +0,0 @@
-Here is a short description to configure a PXE server using dhcpd and tftpd.
-This allows a network boot for your ethernet card conforming to the Interl
-PXE specification.
-
-********************************************************************************
-********** General overview ************
-********************************************************************************
-
-You need a dhcp server and a tftp server on one or two machines to allow the
-network boot. We are not using a PXE server to achieve this as it is not
-mandatory.
-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
-assumed to be your domain name, and 192.168.1.1 a name server. All install are
-done on subnet 192.168.2.0.
-
-All the files that will be downloaded by the tftp daemon are located under
-"/tftpboot" :
- "/tftpboot/pxelinux.0" is a program that is loaded directly by the machine
- where a network boot will be done, this program comes
- from the SYSLINUX package by H. Peter Anvin. (look at
- http://syslinux.zytor.com/pxe.php for more information)
- "/tftpboot/pxelinux.cfg/" is a directory where all configuration file for
- pxelinux.0 will be found, pxelinux.0 will download
- these file by itself. It searches first for a file
- named accordind to the machine IP address in
- hexadecimal, for example for 192.168.2.20, it
- looks for "C0A80214" first, then "C0A8021" and so
- on down to "C0", "C" and "default".
- "/tftpboot/network.rdz" is the standard network initrd for Mandrake installation.
- "/tftpboot/vmlinuz" is the boot kernel for installation.
- "/tftpboot/help.msg" is the message displayed by pxelinux.0, note that currently
- graphical message (as for install using SYSLINUX 1.48 with
- graphic patch by Mandrake) is not supported.
-
-All file "network.rdz", "vmlinuz", "help.msg" can be found by mounting "network.img",
-or the network floppy disk used for install, "pxelinux.cfg" is just an adaptation
-of the file found on the "network.img" called "syslinux.cfg" but without the reference
-to boot.msg (as it is not currently supported).
-
-Update network configuration for your needs and start dhcp server on the machine and
-tftp server and this should work.
-
-********************************************************************************
-* /etc/dhcpd.conf **************************************************************
-********************************************************************************
-ddns-update-style ad-hoc;
-
-authoritative;
-
-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;
-
-default-lease-time 28800;
-max-lease-time 86400;
-
-option domain-name "mydomain.com";
-option domain-name-servers 192.168.1.1;
-
-class "PXE" {
- match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
- option vendor-class-identifier "PXEClient";
-
- vendor-option-space PXE;
- option PXE.mtftp-ip 0.0.0.0;
- next-server 192.168.2.1; #tftp server location
-
- filename "pxelinux.0"; # standard TFTP
-
-}
-
-shared-network "mynetwork" {
- subnet 192.168.2.0 netmask 255.255.255.0 {
- option subnet-mask 255.255.255.0;
- option routers 192.168.2.1;
-
- ddns-domainname = "mydomain.com";
-
- pool {
- range 192.168.2.10 192.168.2.20;
- allow members of "PXE";
- }
- }
-}
-********************************************************************************
-* /tftpboot/pxelinux.cfg/default ***********************************************
-********************************************************************************
-default linux
-prompt 1
-timeout 72
-display help.msg
-label linux
- kernel vmlinuz
- append ramdisk_size=32000 initrd=network.rdz root=/dev/ram3 vga=788
-label vgalo
- kernel vmlinuz
- append ramdisk_size=32000 initrd=network.rdz root=/dev/ram3 vga=785
-label vgahi
- kernel vmlinuz
- append ramdisk_size=32000 initrd=network.rdz root=/dev/ram3 vga=791
-label vga16
- kernel vmlinuz
- append ramdisk_size=32000 initrd=network.rdz root=/dev/ram3 vga16
-label text
- kernel vmlinuz
- append ramdisk_size=32000 initrd=network.rdz root=/dev/ram3 text
-label patch
- kernel vmlinuz
- append ramdisk_size=32000 initrd=network.rdz root=/dev/ram3 patch vga=788
-label expert
- kernel vmlinuz
- append ramdisk_size=32000 initrd=network.rdz root=/dev/ram3 expert vga=788
-label rescue
- kernel vmlinuz
- append ramdisk_size=32000 initrd=network.rdz root=/dev/ram3 rescue rw
-label oem
- kernel vmlinuz
- append ramdisk_size=32000 initrd=network.rdz automatic=method:cdrom root=/dev/ram3 rescue oem rw
-********************************************************************************
-* Usefull linkst ***************************************************************
-********************************************************************************
-
-http://syslinux.zytor.com/pxe.php
-http://www.kano.org.uk/projects/pxe/
diff --git a/docs/SHORTCUTS b/docs/SHORTCUTS
deleted file mode 100644
index 93a7133db..000000000
--- a/docs/SHORTCUTS
+++ /dev/null
@@ -1,51 +0,0 @@
-********************************************************************************
-main shortcuts
-
-F1 -> help
-F2 -> take a screenshot
-F11 -> previous step
-F12 -> next (reachable) step
-
-********************************************************************************
-diskdrake
-
-taken directly from diskdrake.pm:
-
- "a" => \&Active,
- "b" => \&Move,
- "c" => \&Create,
- "d" => \&Delete,
- "f" => \&Format,
- "m" => \&Mount_point,
- "M" => \&Mount,
- "n" => \&Create,
- "o" => \&ReadFromFile,
- "s" => \&SaveInFile,
- "q" => \&Exit,
- "r" => \&Resize,
- "t" => \&Type,
- "u" => \&Unmount,
- "w" => \&WritePartitions,
- "W" => \&WriteFstab,
-
-hopefully it is explicit enough :)
-
-********************************************************************************
-list choice
-
-- acceleration a la windows (default): enter a letter and the selection will move to the
-first entry beginning with that letter. If you enter another letter it will try
-to find the entry beginning with the 2 letters you have given. In case it fails
-the starting_word is reset.
-- incremental search a la emacs: searches trough the list
-
-Use control-s to use incremental search and then to search next occurence
-
-********************************************************************************
-in case of complete mouse sh**t
-
-XFree86 provides a way of moving the mouse pointer:
-- first, press Ctrl-Shift-NumLock
-- then move the pointer with the keypad arrows
-- press button is ``0'' (aka Inser)
-- release button is ``.'' (aka Suppr)
diff --git a/docs/TODO b/docs/TODO
deleted file mode 100644
index cb9399f82..000000000
--- a/docs/TODO
+++ /dev/null
@@ -1,515 +0,0 @@
--URGENT---------------------------------------------------------------------------------
-check for fpons/pixel BOTH that resize_fat is clean for current version
-relative to 7.0-2.
-
-heavy testing of diskdrake to avoid corrupting partition table, current version
-should be available to fix bogus partition table, writing enabled only when
-partition is Ok (fixme? allow primary partition inside extended one, but with
-warning on diskdrake startup, made them as warning ?).
-
--features-------------------------------------------------------------------------------
-add rpmdrake in menu
-
-(7.1 or later) clean SCSI CDROM autoboot.
-(done,gc,8.0) stage1 & cdrom: add ability in expert to choose the scsi cdrom drive to use
-
-(7.1)better help for partitioning in newbie
-
-(7.1)Improved network configuration (PPP and/or Ethernet)
-PPPoE install and configuration (SuSE includes it, DHCP-like)
-(7.1)standalone applications for configuration (netdrake, timetool, authentificationconf, soundcard)
-
-----
-(7.2) replace normal with standard (in the installClass's)
-
-(7.2 or later)horizontal sub-steps
-
-(7.2 or later)diskdrake in text mode
-
-ask "do you have SCSI?" before asking "probe PCI or not"
-
-(?) paride in stage1
-(done,gc,8.0) stage1 & network: add ability to choose the network interface to use
-
-(?) msec custom
-
-(?)firewall configuration (instant firewalling?)
-
-(?)widget for displaying fdisk (dindinx)
-add fdisk using the zvt widget (taken in gnome-libs)
-
-(?)help in some configuration files.
-
-ability to add nfs/weird_fs entries in fstab
-
-size of packages in crypto
-
--to test--------------------------------------------------------------------------------
-what's lseek64?
-
-ensure installClass is set to something in auto install.
-
-for axp, swriteboot -f1 if swriteboot failed.
-axp with swap part sigsegv
-
-tree for choosing monitors (buggy?)
-
-what happens if a module fails to insmod (scsi step), in beginner/normal/expert
-
-fstab must be sorted (/usr/local after /usr)
-
-RAID upgrades
-
-add choice clean /tmp or not in expert
-
-kernel chosen by default must be the one according to supermount/secure
-
-bug if ide-scsi, no more hdX, but scd0 (aka sr0)
- (and add alias block-major-11 ide-scsi ?)
-
-check on update for conf.modules and modules.conf !
-
-with /usr, /usr/local and /usr/local/e mount points i get an error at step mounting local filesystems
-
--easy fixes-----------------------------------------------------------------------------
-rpmdrake proposition for cdrom labels
-
-use option nocheck to mount for upgrades
-
--fixes needing thinking-----------------------------------------------------------------
-bug: changing mem= in miscellaneous doesn't modify lilo conf if you backtrack
-
-ask network configuration only if NIC found?
-
-configure DHCP for newbies if ethernet & DHCP card available
-
-xvidtune like screen configuration (see SuSE's yast)
-
-live cdrom for alpha (sparc?)
-
-network boot
-
-get the error when getting/reading .rpm files fail
-better timeout handling for network installs
-
-handle not enough room for update
-(fpons)verify the free space is big enough.
-
-the XFdrake test does not handle the fontset
-
-> Here I go into the printer configuration select 'HP Deskjet 722C Colour',
-> print a test ASCII page, pressing 'No' when prompted to indicate the page did
-> not print OK and then hitting cancel when prompted to choose a printer type
-> again.
-> ask_from_list cancel at /usr/lib/libDrakX/my_gtk.pm line 504.
-
-diskdrake: take from parted mklabel, hide(?)
-
-bug in kde desktop if keeps home but not an upgrade
-
-bug in users: mandrake user is added twice in strange installs
-(mixed of security 0 + ???)
-
-bugs rpmdrake:
-- just after installing a package, switch to `Installed', the package has wrong name
-- refresh the kde desktop after package installation in rpmdrake
-(restart kpanel)
-- rpmdrake and same name packages
-
-urpmi: pb if XXX-devel requires XXX = 1.2.3 and we updgrade XXX-1.2.3
-
-bug in defcfg in with lang=fr_FR, display is buggy
-
-bug keyboard focus: after switch in console at Xconfig step
-
-
-
--to look at--------------------------------------------------------------------------
-adduserdrake to remove/update users
-
-(???)free provider auto configuration facility (to be discussed).
-auto ppp-configure with free provider
-
-(?)on laptop, configure the MMU to use swap not very often
-
-(?)checkboxes in groups based on compssList (and availableSpace?)
-
-(?)see what can be done with nvram (50 bytes to save information)
-
-better wacom support
-
-(fpons)bug: CANON BJC 4X00 do not work with current rhs-printfilters
- (work with magicfilters (debian))
- (should be handled by ghostscript BJC600's driver)
-
-(pix)install text on mem=8M, mem=16M?
-
-(pix)kickstart
-partitioning? raid?
-X configuration and bootloader in kickstart
-
-XFdrake chooseResolutions with ask_from_list do not permit ``Show all''
-
-(?) options in mkfs, progress bar when formatting
-
-(?) when some error occurs, partition must be unset isFormatted
-
--hardware-------------------------------------------------------------------------------
-- with no floppy drive, mkbootdisk step fails badly
-- with bad floppy or write protected, mkbootdisk doesn't say anything
-- try detect_devices::floppies (and how are scsi floppies handled?)
-maybe: do a iotcl FDGETPRM to detect fd1, fd0.
-
-need a simple solution to precise mouse type (syslinux option?)
-
-ELSA Gloria has bad ddc info
-
-token ring is tr0 not eth0
-
-I have Mandrake 6.1 installed and working on a ThinkPad 770.
-To enable the PCMCIA Token ring I have to append the following line to
-/etc/pcmcia/config.opts
-module "ibmtr_cs" opts "mmiobase=0xd2000 srambase=0xd4000"
-
-smp not detected (mhoward@memphisonline.com on cooker, bios=BP6PW)
-
-UDMA66 (ultra66.o for promise)
-
-aha152x needs "insmod aha152x.o aha152x=0x140,11,7"
-
-(obsolete) usb module not removed if no mouse found
-
-(fpons)handle dat drives
-
-hibernation on laptop -> clock not restored
-
-# in 2.3.15 "Silicon Integrated Systems [SiS]|SiS900 10/100 Ethernet" is handled
-
-(?)enable the testing of the mouse type (under X) (wheel)
-possibility to specify the mouse
-
--(?)---------------------------------------------------------------------------------
-(?) handle NT (add entry for it in lilo, put it in fstab)
-
-(?) lilo-0.22-19mdk is buggy with boot=/dev/hde & root=/dev/sda13, it needs
-disk=/dev/hde bios=0x80 & disk=/dev/sda bios=0x81
-
-(?)using setxkb, enable the testing of the keyboard
-
-(?)XFdrake does not handle fbdev
-
-(?) Je viens de faire une installation sur une machine oł seul Be était
-installé. Je l'ai supprimé et installé (mode recommandé) Oxygen. Au
-redémarrage, le boot manager de Be apparaīt et il est impossible de
-démarrer Linux.
-Pourquoi ne pas installer LILO si on supprime toutes les partitions ?
-
-(?)initrd in bzip2
-
-(?)smaller zsh (or ash in initrd)
-
-(?)is configureNetworkNet needed with dhcp/bootp?
-
-(?)bug in upgrade: install from hda1:/usr/local/blah with hda1:/
-
-(?)mandrake_desk was not installed while kdebase it there on upgrade
-
-(?)when clicking on X configuration, installation of packages is not displayed
-
-(?)maybe remove commented lines in /usr/lib/perl5/... files
-
-(?)timezone using a picture (pb: how to delimit zones)
-when asking GMT or not, display the time for each possibility
-the list is too big for USA
-
-(?)ability to select the type of install when booting of cdrom
-(?)use the ability of el torito to handle 2.88MB or more
-
-(obsolete)lilo-deinstallation in case of lilo auto-installation for beginners
-
-(?)loadFont sucks
-
-(obsolete)trash on the screen when X first starts
-
-(?)remove the gray line surrounding the logo
-
-(?)cleanup /etc/services & /etc/protocols
-
-(?)strange: no scsi of type 'fd', only 'tape'
-
-(?)remount ro before X test.
-
-(?)remove every << and >> (doesn't handle > 32bits)
-
-
--done---------------------------------------------------------------------------------
-(7.1,done,fpons) improve printerdrake to at least have the same functionalities as printtool.
-
-(done,fpons)diskdrake can olverlap partitions (resize lower, resize original typically
-after clear all and auto allocate, try maximal size available).
-
-(done,fpons)rewrite mouseconfig in perl?
-
-(done,pix)kudzu or not in miscellaneous
-
-(done,pix)warn the user if not enough ram to fulfill install
-
-(done,fpons)test after printer config
-
-(done,pix)ask for more than the memory size detected
-
-(done,fpons)modem config
-
-(done,pix)call kudzu in batch to initialize its list
-
-(done,pix)standalone generator of mdkinst_stage2.gz
-
-(done,pix)text install
-
-(done,pix) if u choose mouse usb != found mouse, it fails at X config
-
-(done,pix) diskdrake bug: saved information on floppy contains isMounted.
-
-(done,pix) update devices.c from modules.pm
-
-(done,pix) in lilo.conf, put
-disk=/dev/hdb
- bios=0x80
-
-(done,pix) diskdrake
-auto_partitions
-suggested partition tables must be better foreach installClass
-
-(done,pix) update the list of modules (in update_kernel)
-
-(done,pix) language support: only choose the right locales and upmark the packages requiring it
-
-(done,pix) move security question before isntallation of packages
-
-(done,pix) install ssh
-
-(done,fpons,pix) change the boot message of syslinux (have something different from RedHat)
-
-(done,pix) install_steps.pm: 569 (128M + 3)
-
-(done,pix) bug: mouse freeze just before network configuration (mouse primax)
- (was kudzu)
-
-(done,pix) signal 11 in stage1 nfs kickstart mount failed
-
-(done,pix) ask supermount or not, no supermount with kernel-secure
-
-(done,pix) fix bug in g_auto_install (can't go through all)
-
-(done,pix) bug: install from ciril.fr fails
-
-(done,pix)wizard for partitioning in case of one full vfat
-
-(done,dindinx)app for choosing drakxtools (drakxconf)
-(done,pix)verify being root
-(done,pix)log::l -> initlog
-
-(done,pix)install apmd for laptops (maybe not start apmd though)
-(done,pix)icewm apm (sh icewm_apm)
-(done,pix)kde apm (put Kapm.kdelnk in ~/Desktop/Autostart)
-
-(done,pix)bug in adduserdrake: missing pwconv in md5
-(done,pix)correct the default value of draksec (cp draksec)
-(done,pix)in draksec, (and maybe others) have --expert as default if /etc/sysconfig/system has TYPE=expert
-
-(done,pix)bug in XFdrake in install, cancel in choose Card do not close the window
-
-(done,pix)in XFdrake, testing should not overwrite /etc/X11/XF86Config
-
-(done,pix) hwiz and supermount and eject :(
-
-(done(replaced by msec's),pix) bug: usermod -G urpmi a not done (full install)
-
-(done,pix)perl and .ph's
-
-(done,pix) BUG bootp in network install sigsegv
-
-(done,pix) move the last done stuff before Xconfiguration if possible
-
-(done,pix)draksec is buggy, don't try security >= 4
-
-(done,pix)install apmd on laptops?? (maybe ask emcweb@btinernet.com (see alix))
-
-(done,pix)missing alias ll for root
-
-(done,pix)urpmi.addmedia: |gzip instead of doing it afterwards
-
-(done,pix)locale (and fonts?) buggy in case ramdisk is used
-
-(done,pix)rpmdrake: Installed packages not in hdlist should be there
-
-(done)in ftp install, locale not installed properly
-
-(done,pix)pcmcia.img does not handle hd/cdrom
-
-(done,pix)cyrillic font buggy in DrakX
-
-(done,fred)remove xfs user from kdm
-
-(done,pix)bug with 2 cdrom drives (.kdelnk to there for 1st drive)
-
-(done,pix(works))test ramdisk stage2 and romanian
-
-(done,pix)kfmrc
-
-(done,pix)on laptop, default to 1024x768
-
-(done,pix)mkinitrd and deps
-
-(done,fred(removed the call))XFdrake and mousedrake freeze if lothar launches them
-
-(done,pix)crypto message
-
-(done,pix)test bug with lilo and windows (if not on mbr)
-
-(done,pix)removed icons come back later (kde desktop)
-
-(done,pix(was bug in upgrade reading old config))
- segfault in linuxconf (adapter 1 empty)
- (test with the sysconfig sent)
-
-(done,fpons)bug: Lrosqu'on effectue une mise ą jour et que /etc/lilo.conf
-contient la variable « default » positionnée sur autre chose que
-« linux » ou « windows », DrakX est incapable de générer LILO.
-
-(done,fpons)bug: GeForce and hd.img?
-
-(done,fpons)for upgrade in expert, give choice of packages to install
- choosing packages available in upgrade?
-
-(done,pix)rpmdrake: pb uninstalling package with dependencies (rpmdrake is killed?!) (as root too)
-
-(done,pix)noatime option for ext2 fs on laptops (do not wake up the hd)
- Do not update inode access times on this
- file system (e.g, for faster access on the
- news spool to speed up news servers).
-
-(done,pix)kde's icons: 28 horiz and 25 vert grid for big icons
-
-(done,pix)bug: DrakConf don't follow the charset -> add setlocale(LC_ALL, "")
-(done,pix)for ko|ja|zh, gnome-terminal should point to rxvt (-CLE)
-(done,pix)group cdrom in /etc/group (gid=22)
-(done,pix)drakxtools should require urpmi
-(done,pix)bug: gdm unset LANG
-(done,pix) zip with automount -> ppa not autoloaded
-(done,pix)when you set the kde icons to Large, maybe it'd be good to chown the .kderc
-(done,pix)lilo in russian/japaneese is horrible
-(ok,pix)test ide burners
-(ok)test check bad blocks optional for mke2fs
-(done,pix)hd install: no umount is done at the end of install :(
-
-just before release:
-(done,pix)- mandrake_doc-xx, the symlink is no good in /usr/doc/mandrake as
-(done,pix)- crypto dependencies to update
-(done,pix)- update kudzu's pcitable
-(done,pix)- update pcitable for 86C368 if 3.3.6 (and other S3 3D's)
- ("ATI|3D Rage P/M Mobility AGP 2x" -> changed to Server:Mach64)
-
-(done,pix)with 2MB of video ram, chooses 8bpp instead of 16bpp
-
-(done,pix) replace
- { device => "loop7", type => 0x83, size => ((cat_('/dos/lnx4win/size.txt'))[0]*2048), mntpoint => "/", isFormatted => 1, isMounted => 1 },
-by
- { device => "loop7", type => 0x83, size => cat_('/dos/lnx4win/size.txt') * 2048, mntpoint => "/", isFormatted => 1, isMounted => 1 },
-
-(done,fpons)in ftp install, bug with X server install with wu-ftpd 2.6 (see http://www.wu-ftpd.org/broken-clients.html)
-
-(done,pix)ask package installation languages (must be put in RPM_INSTALL_LANG)
-
-(done,pix)bug (by dadou): Si la partition racine est trop petite pour installer le systčme, un
-message d'erreur apparaīt pour signaler le problčme (bien) mais on ne
-peut en sortir. La seule solution est de redémarrer.
-
-(obsolete)bug when selecting compssUsers, do not deselect after (if u deselect)
-
-(done,pix)detect ide burners and then add hdX=ide-scsi to kernel cmdline
-
-(done,pix)urpmi: handle many args on cmd-line
-
-(done,pix)fix any // in path to ftp server otherwise windobe server bug :(
-
-(done,pix)diskdrake and auto partitioning, may have the last creation of partition rejected,
-try to figure why?
-
-(done,pix)in chooseResolutions: display the graphic card found
-
-(done,pix)with pcmcia, need ONBOOT=no
-
-(fpons,done) XFree: handle by card options
-eg: SIS6326 needs "no_bitblt" "no_bltimage" and 24bpp instead of 32bpp
-
-(done,pix) Xconfiguration: if "can't open fixed font", relaunch xfs.
-
-(obsolete) pb with dependencies ``missing'': icewm do not require XFree86 and so you can have icewm but no X server
-
-(obsolete) bug in ext2resizing (no sparse superbloc, don't finish properly)
-
-(done,pix,7.1)manage a lot of language (ergonomic issue as it already exists)
-
-(done,pix,7.1)tree for choosing things like timezone, monitors, graphic cards, modules, mice, keyboard? ...
-
-(done,pix,7.1)sound config, although very simple, no dedicated steps and only PCI (or maybe ISA-PNP if time left ?)
-
-(done,pix,7.1)partitioning, keyboard shortcut.
-
-(done,fpons,7.1)index/compress hdlist? (for multi-cd)
-! for multi-cd live is mandatory, small transaction are mandatory too.
-
-(done,pix,7.1?)loopback partitions (even root one)
-
-(done,pix)in ok_cancel, focus has 3 states, should be 2 (ask dindinx)
-
-(done,pix,7.1)Generally improved package selection /ergonmic issue.
-Tree -> CTree, ``all'' branch with all packages
-show the value associated (100->a must, 90->great, 80->nice, ... 10->useless, 0->do not install)
-
-(done,pix)let diskdrake have dos/win partition automatically set up with mount point,
-this will help loopback too.
-
-(done,pix,7.1)grub
-
-(done,pix,7.1)feature missing: cancel installation
-
-(obsolete) bug in diskdrake: can in strange cases create a primary partition at sector #0
-
-(done,pix(partly, protection against bugging))bug in diskdrake:
-in expert: blank, create hda5 at beginning, create hda6 at the end, create hda7
-in the middle, remove the first one. Result hda5 at the end and bug.
-
-(obsolete) have a better time estimation of the remaining time in install packages
-
-(done,dindinx+pix)ask_many_from_list can't keyboard scroll
-
-(done,pix,7.1)individual package selection: double click is tiring...
-
-(done,fpons,7.1) sparc ehancement, avoid V7+ machine target (div and mul not in v7 standard)
-
-(done,fpons,7.1)syslinux in graphical mode to be improved for heavily bogus BIOSes.
-
-(done,pix)missing feature in lilo configuration: can't give hda2 with /boot/vmlinuz if
-already hda1 with /boot/vmlinuz
-
-(done,pix)in 640x480 install box is to small (cuz of 'Cancel' button beeing added)
-
-(done,pix)chooseGroup with individual alone
-
-(done)(7.1) rewrite crypto stuff
-(done)crypto: add a cancel & progress bar while downloading
-(done)error handling (like reading hdlist)
-(done)(7.1)progression bar on crypto.
-
-(done, daouda&pix,7.1, other persons)rescue:
-- small modification for stage1 to get the rescue stage2
-- create a stage2 with many tools (fdisk, bash...)
-the rescue could be on another cd (if multi-cd)
-! care must be taken about modules (if ide is in module...)
-
-(done,7.1)install in 800x600
-- need handling of both 640x480 (mostly for VGA16) and 800x600
-
-(done,NEED 7.1) auto-install for corporate, very important (need consolidation).
diff --git a/docs/advocacy b/docs/advocacy
deleted file mode 100644
index 9e7f00b6b..000000000
--- a/docs/advocacy
+++ /dev/null
@@ -1,87 +0,0 @@
-a little DrakX history:
-
-june 1999:
- i start rewriting redhat's install in perl, partly for the fun of it. I'm
- still working for the army
-
-5 july 1999:
- i start full time job at mandrakesoft. But we don't have many computers and i
- must share the accounting computer with Merieme who is working half-time. No
- test machine (i test on others box, and destroyed Jacques partitions once),
- guess how it slows things down?
-
-august 1999:
- at last computers, even test one
- first DrakX version which can install things, very very rough
-
-september 1999:
- a friend of mine help me 2 weeks on DrakX relayed by Francois
-
-november 1999:
- first released version of DrakX (goldpack). Not really stable yet.
-
-january 2000:
- 7.0 is out, with a DrakX quite stable
-
-july 2000:
- dams starts working on draknet
-
-mid-october -> mid-january 2000:
- gc rewrites the stage1 to win every kb we can
- -> size divided by 7 (!) for cdrom
-
-
-The DrakX team is also doing a lot of other things:
-- drakxtools
-- urpmi, early MandrakeUpdate, early rpmdrake...
-- Mandrake Control Center (new DrakConf)
-- packages maintenance/enhancing (esp. ghostscript, 3D-wrappers, lilo)
-- fixing core packages to make them installable
-- scoring packages, sorting them, flagging them... (compssList, rpmsrate)
-- reading/answering cooker and other MLs
-- helping non-perl gurus :)
-
-That doesn't give much. Me being the one more working on plain DrakX. It gives 2
-people working for 1.5 years. IMO it isn't ``spending an enormous amount of
-resources''.
-And what do you mean by ``compared to the code base size''??? DrakX is currently
-around 28K lines, which is big IMO. You can compare it with linuxconf which is
-170K lines. I think the achievement of DrakX is comparable (a 6 times code size
-win from dumb C++ to expressive perl is normal imo).
-
-
-Also it seems like we don't have the same understanding of the word
-"maintenance".
-DrakX functionalities have evolved *a lot* since the beginning:
-
-- hardware detection, configuration, debugging, work-arounding (multi-kernel installs...)
-- making things prettier
- - more bitmaps
- - "advanced" button
- - syslinux graphical boot
-- making it work with latest versions of software (eg: switching to rpm4)
-- finding out the best way to use rpmlib
-- multi-cd
-- draknet: configuring every piece of stupid protocols
-- diskdrake: raid, loopback, LVM, resizing, checking stupid users entry
-- XFdrake: multi-mice, multi-heads, 3D-accel
-- porting to axp/sparc/ppc (with Stew's help)
-- always more i18n
-- keeping things small
- - .cz format
- - moving to .png
- - getFile on demand from mdkinst for ramdisk installs
-
-[...]
-
-> You don't believe the books ? Count yourself; see the man/months spent
-> in 'pure' developoment in drakX, and the resources put in mantainance
-> of the code base; as far as i know, your count should confirm what the
-> books says; more probabily, you will discover that our numbers are
-> even worse.
-
-if you count enhancements, adding features... in maintenance, i confirm the
-numbers, and find them quite normal.
-
-if you only count bug fixing, the time would be much shorter (around 30%).
-
diff --git a/docs/advocacy-interactive b/docs/advocacy-interactive
deleted file mode 100644
index 99036008e..000000000
--- a/docs/advocacy-interactive
+++ /dev/null
@@ -1,60 +0,0 @@
-
-> > We already have some functional backends, frontends, that works great, and has
-> > not been thrown away since 1 year. We use it during install, post install, mcc
-> > and so.
->
-> But aren't generic enough.
-
-DrakX handles:
-- buttons
-- bool values (checkboxes)
-- ranges
-- entries
-- combo boxes (editable or not)
-- lists / radio boxes
-- tree lists
-- iconlist
-- wait messages
-
-Features:
-- all the entries above can be mixed
-- nice separation between data and displayed data (eg: choose in list of
-objects representing hda/hdb/... but displayed nicely with size...)
-- keyboard handled nicely in GTK frontend
-- callback on events:
- ok pressed => check before the dialog is hidden
- focus changed =>
- * enables pre-setting things based on other entries
- * value checking on the fly
-- simple/advance toggle
-- shadowing of entries
-- tooltips
-- size of windows computed the best possible
-- perl-based
-
-Misfeatures:
-- display not flexible (though i don't know any of the tools we're talking
-about that is flexible => nice)
-- quite a few features are gtk only (simple/advance toggle, shadowing of
-entries, certain events, tooltips).
-- a stdio front-end exist but handle only certain entries. It would need a
-week-work to finish it
-- a http front-end could be done (mod-perl needed)
-- perl-based
-
-The DrakX frontend (called "interactive") could be moved out of DrakX.
-
-eg of use:
-
-<#part type="text/plain" filename="~/bin/perl/imessage" disposition=attachment>
-<#/part>
-
-[...]
-
-> > -provides a lot of frontends
->
-> And you ideally have to provide a frontend by widget set.
-
-nope. The interface is completly standardised, even if it include some
-gtk-like niceties. The *complete* newt (and not just entries and radioboxes
-like bus) binding takes 241 lines.
diff --git a/docs/comparisons b/docs/comparisons
deleted file mode 100644
index 716efd938..000000000
--- a/docs/comparisons
+++ /dev/null
@@ -1,91 +0,0 @@
-redhat 6.1 (fr?), install 766MB, df 900MB, 35min (asked for all groups except "everything")
-
-upgrade to redhat 6.2, sum 757MB, df 936MB, 20min
-
-mandrake 7.1, install 755MB, df 1091MB, 17min (asked install size 910MB), 515 packages
-
-upgrade to cooker, sum 1000MB, df 1404MB, 35min
-
-
-redhat 7.0b, install 815MB, df 960MB, 18min
-redhat 7.0, install 995MB, df MB, 26min
-
-7.2b, 3.3GB 2h26
-
-
-7.2b: (lang fr)
-compssLevel df rpm time fs df/time
-
-100 64 59 0:59 ext2 500M 1.08
- 90 132 127 1:50 ext2 500M 1.20
- 80 226 218 3:26 ext2 500M 1.10
- 70 449 387 5:52 ext2 1G 1.28
- 60 614 541 8:36 ext2 1G 1.19
- 50 1113 943 17:40 ext2 2G 1.05
- 40 1193 1013 20:39 ext2 2G 0.96
- 30 1262 1072 22:28 ext2 2G 0.94
- 20 1445 1219 27:34 ext2 2G 0.87
- 10 1649 1394 36:58 ext2 2G 0.74
- 0 1943 1638 48:02 ext2 2G 0.67
--10 2957 2519 101:49 ext2 4G 0.48
-
-7.2b: (lang all)
-compssLevel df rpm time fs df/time
-
-100 70 59 1:04 ext2 500M 1.09
- 90 289 281 4:20 ext2 500M 1.11
- 80 373 361 5:41 ext2 500M 1.09
- 70 890 794 13:28 ext2 1G 1.10
-
-
-mem used 7.2cooker
-gtk: runinstall2 13608(data 9572) + FBDev 2984(data 1544)
-newt: runinstall2 9516(data 7528)
-stdio: runinstall2 9160(data 7372)
-
-8.0rc1: (lang fr)
-
-rpmsrate
-
-4 () 175 139 3:25 reiserfs 2G 0.85
-4 all 831 786 18:08 reiserfs 2G 0.76
-
-8.1b
-
-5 () 77 66 1:24 ext2 300M
-
-8.1pre_rc1 rpm df time/rpm rpm/df
-
-6 () 82 66 1:26 ext2 500M 1.05 1.24
-5 () 89 71 1:38 ext2 500M 1.10 1.25
-3 () 94 77 1:46 ext2 500M 1.13 1.22
-5 X 145 127 2:09 ext2 500M 0.89 1.14
-3 X 231 217 3:26 ext2 500M 0.89 1.06
-4 kde 393 316 4:31 ext2 2G 0.69 1.24
-4 kde 393 316 4:41 ext2 2G 0.72 1.24
-4 kde 393 316 4:43 ext2 4G 0.72 1.24
-5 all 367 337 5:02 ext2 500M 0.82 1.09
-4 kde+gnome 454 370 5:50 ext2 4G 0.77 1.23
-4 kde+gnome 454 370 6:10 ext2 4G 0.81 1.23
-4 kde+gnome 454 370 6:24 ext2 4G 0.85 1.23
-5 all 489 406 5:55 ext2 4G 0.73 1.20
-5 all 490 406 5:18 ext2 1G 0.65 1.21
-4 kd+gn+dsk 594 494 7:31 ext2 4G 0.76 1.20
-4 prev+dev 827 696 10:27 ext2 4G 0.76 1.19
-4 all 1100 988 19:34 ext2 1G 1.07 1.11
-3 all 1640 1331 31:33 ext2 2G 1.15 1.23
-3 all 1740 1434 39:38 ext2 4G 1.37 1.21
-2 all 2252 1843 54:40 ext2 4G 1.46 1.22
--1 all 2490 2048 61:02 ext2 4G 1.47 1.22
-
-# perl -alpe '$F[4] =~ /(.*):(.*)/; $r = ($1 * 60 + $2) / $F[2]; s|\S+(\s+\S+)\s*$|sprintf("%.2f", $r) . "$1"|e;'
-# perl -ape '$r = $F[2] / $F[3]; s|\S+\s*$|sprintf "%.2f\n", $r|e;'
-
-
-redhat 7.3:
-- do not halt the box when "halt" is used
-- no sysreq
-- kdm has gnome entry whereas gnome is not installed
- => choosing gnome gives a flashing black screen and kdm reruns
-
-- repartition of packages on various CDs is crap
diff --git a/docs/diskdrake.TODO b/docs/diskdrake.TODO
deleted file mode 100644
index e6f2da038..000000000
--- a/docs/diskdrake.TODO
+++ /dev/null
@@ -1,23 +0,0 @@
-- test what windows can handle (the number of partitions)
-- better keyboard focus handling
-- end sector in Create
-- add warnings for scsi drives if you create more than sdx15
-- the information put in save/restore partitions must be cleaned
-(remove mounted/formatted/..., also remove the Data::Dumper dependency)
-- test, test, test
-- do not allow swap partitions above 2Gigs
-- wanting the first partition to be extended is not used
-- maybe warn if a mounted partition change of dev number
-- text version
-- better error handling (what to do if we find a bad partition table?)
-- display the information about the correspondance color2type
-- handle the partition labels (missing information here)
-- add comments in the code
-- add documentation
-- handle the `luke' case (main extended partition must be extended)
-- ability to batch actions (like chained moves)
-- add a verification after fdiskReadPartitionTable that the start_cyl,
-end_cyl... do correspond to start and start+size. For the moment, this
-information is just discarded :(
-This verif can't be done in fdiskReadPartitionTable as start is relative in
-extended partitions
diff --git a/docs/drakfont/Makefile b/docs/drakfont/Makefile
deleted file mode 100644
index b70b4a0c8..000000000
--- a/docs/drakfont/Makefile
+++ /dev/null
@@ -1,57 +0,0 @@
-#
-#
-# Project : Projet Libre
-# file : pki.tex
-# Date : Thu Jun 21 19:26:19 CEST 2001
-# (o- Id : DUPONT Sebastien
-# /\ mail : <dupont_s@epita.fr>
-# Y_/___________________________________________
-#
-
-RM = @rm -f
-
-CD = @cd
-
-ECHO = @echo
-
-PRINTF = @echo -n
-
-FILE = drakfont
-
-DVI = @dvips -j0 -Pcmz -Pamz -o
-
-PS = @ps2pdf
-
-LATEX = @latex
-
-normal :
- $(ECHO) '/*--LATEX--*/'
- $(LATEX) $(FILE).tex
-
-all :
- $(ECHO) '/*----------latex -> dvi -> ps -> pdf------------'
- $(ECHO) '/*--LATEX--*/'
- $(LATEX) $(FILE).tex
- $(ECHO) '/*--DVI -> PS--*/'
- $(DVI) $(FILE).ps $(FILE).dvi
- $(ECHO) '/*--PS -> PDF--*/'
- $(PS) $(FILE).ps
- $(ECHO) '/*--That s all--*/'
-
-
-ps : normal
- $(ECHO) '/*--DVI -> PS--*/'
- $(DVI) $(FILE).ps $(FILE).dvi
- $(ECHO) '/*--That s all--*/'
-
-pdf : ps
- $(ECHO) '/*--PS -> PDF--*/'
- $(PS) $(FILE).ps
- $(ECHO) '/*--That s all--*/'
-
-clean :
- $(RM) $(FILE).toc $(FILE).log $(FILE).aux *~
-
-fclean :
- make clean
- $(RM) $(FILE).ps $(FILE).pdf $(FILE).dvi
diff --git a/docs/drakfont/dia_srcs/drakfont.dia b/docs/drakfont/dia_srcs/drakfont.dia
deleted file mode 100644
index c4502a12e..000000000
--- a/docs/drakfont/dia_srcs/drakfont.dia
+++ /dev/null
Binary files differ
diff --git a/docs/drakfont/dia_srcs/drakfont_install.dia b/docs/drakfont/dia_srcs/drakfont_install.dia
deleted file mode 100644
index 737c19b9f..000000000
--- a/docs/drakfont/dia_srcs/drakfont_install.dia
+++ /dev/null
Binary files differ
diff --git a/docs/drakfont/dia_srcs/drakfont_uninstall.dia b/docs/drakfont/dia_srcs/drakfont_uninstall.dia
deleted file mode 100644
index c06f92dd6..000000000
--- a/docs/drakfont/dia_srcs/drakfont_uninstall.dia
+++ /dev/null
Binary files differ
diff --git a/docs/drakfont/drakfont.jpg b/docs/drakfont/drakfont.jpg
deleted file mode 100644
index 898dfe440..000000000
--- a/docs/drakfont/drakfont.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/drakfont/drakfont.tex b/docs/drakfont/drakfont.tex
deleted file mode 100644
index bbc936e5b..000000000
--- a/docs/drakfont/drakfont.tex
+++ /dev/null
@@ -1,152 +0,0 @@
-%\documentclass[pdftex]{article} \usepackage{hyperref} .
-%\documentclass[pdftex,onecolumn,11pt,oneside]{article}
-\documentclass[onecolumn,11pt,oneside]{article}%seminar}
-%\usepackage[pdftex]{hyperref}
-\usepackage{isolatin1}
-%\ifx\pdfoutput\undefined
-
-\usepackage[dvips]{graphicx}
-%\else
-%\usepackage[pdftex]{graphicx}
-%\usepackage[pdftex]{hyperref}
-%\usepackage{type1cm}
-%\fi
-%\pdfoutput=1
-\usepackage{color,graphicx,shortvrb,epsfig,verbatim,tabularx}
-\usepackage{url}
-\usepackage{hyperref}
-\urlstyle{sf}
-\usepackage{fancyheadings}
-\usepackage{program}
-\usepackage{ulem}
-\usepackage{amsfonts}
-\usepackage{xspace}
-\usepackage[english,francais]{babel}
-\pagestyle{fancy}
-\newcommand{\trtitle}{Drakfont\\ fonts importation for mandrake linux}
-\DeclareGraphicsRule{.ps}{eps}{.ps}{}
-\DeclareGraphicsExtensions{.ps}
-\renewcommand\star{{\ttfamily*}}
-\let\package\textsf
-\newlength{\gxlen}
-\settowidth{\gxlen}{\package{graphicx}: }
-\newcommand\gs{\makebox[\gxlen][l]{\package{graphics}:}}
-\newcommand\gx{\makebox[\gxlen][l]{\package{graphicx}:}}
-\MakeShortVerb{\|}
-\begin{document}
-\title{$Drakfont$ fonts importation for mandrake linux}
-
-\begin{figure}%[ht]
-\begin{center}
-%\caption{Exemple d'image}
-\mbox{\epsfig{file=mandrake.ps}}\\ %,height=1in,width=2in}}\\
-%\mbox{\epsfig{file=carte_.ps,height=1in,width=2in}}
-\end{center}
-\end{figure}
-%\begin{figure}
-%\begin{center}
-
-%\end{center}
-%\end{figure}
-\author{Dupont Sebastien \\ sdupont@mandrakesoft.com}
-\date{05/10/2001}
-\pagestyle{myheadings}
-\markright{\scriptsize \trtitle}
-\title{\bf \trtitle}
-\maketitle
-\section{drakfont Future Overview}
-
-\paragraph{Fonts import :\\}
-\begin{itemize}
-\item pfb ( Adobe Type 1 binary )
-\item pfa ( Adobe Type 1 ASCII )
-\item ttf ( True-Type )
-\item pcf.gz
-\item Speedo
-\item pfa ( Adobe Type 1 ASCII )
-\item ttf ( True-Type )
-\item and Bitmap (PCF, BDF, and SNF)
-\end{itemize}
-
-
-\paragraph{Features}
-\begin{itemize}
-\item Install fonts from any directory
-\item Get windows fonts on any vfat partitions
-\item UN-installation of any fonts (even if not installed through drakfont)
-\end{itemize}
-
-
-\paragraph{Support}
-\begin{itemize}
-\item Xfs
-\item ghostscript \& printer
-\item Staroffice \& printer
-\item abiword
-\item Koffice, Gnumeric, ... studying
-\item all fonts supported by printer
-\item ( aliases by RENDER in Xfree86 .... -> later )
-\end{itemize}
-
-
-\section{Window interface:}
-\begin{itemize}
-\item
-\item Fontselectiondialog widget
-\item Command buttons under Fontselectiondialog (like the actual frontend).
-\item Commands buttons:
-\item import from windows partition.
-\item import from all fat32 partitions and look for winnt/windows/font
-\item and import all (delete doublon) but don't import if already exist.
-\item import from directory
-\item look for if it exist before for each font and not delete the original.
-\item (replace all, no, none)
-\item expert options:
-\item ask the directory, and look for if it exist before
-\item if it exist ask: (replace all, no, none)
-\item uninstall with list per font type
-\item Expert additional switch
-\item option support: ghostscript, Staroffice, etc...
-\item check-button. (by default all check)
-\item Printer Application Fonts Support...
-\item check-button. (by default all check)
-\end{itemize}
-
-\section{Command line}
-\paragraph{Font Importation and monitoring application\\}
-\-\-windows\_import : import from all available windows partitions. \\
-\-\-strong : strong verification of font.\\
-\-\-install : accept any font file and any directory.\\
-\-\-uninstall : uninstall any font or any directory of font.\\
-\-\-replace : replace all font if already exist\\
-\-\-application : 0 none application.\\
- : 1 all application available supported.\\
- : name\_of\_application" like staroffice for only this one.\\
-
-\section{Graphics}
-
-to visualize the conceptual graphics please see:\\
-drakfont.jpg\\
-drakfont\_install\.jpg\\
-\& drakfont\_uninstall.jpg\\
-
-
-
-%\begin{figure}%[ht]
-%\begin{center}
-%\caption{Exemple d'image}
-%\mbox{\epsfig{file=drakfont_install.ps}}\\ %,height=1in,width=2in}}\\
-%\mbox{\epsfig{file=carte_.ps,height=1in,width=2in}}
-%\end{center}
-%\end{figure}
-
-
-%\begin{figure}%[ht]
-%\begin{center}
-%\caption{Exemple d'image}
-%\mbox{\epsfig{file=drakfont_uninstall.eps}}\\ %,height=1in,width=2in}}\\
-%\mbox{\epsfig{file=carte_.ps,height=1in,width=2in}}
-%\end{center}
-%\end{figure}
-
-\end{document}
diff --git a/docs/drakfont/drakfont_install.jpg b/docs/drakfont/drakfont_install.jpg
deleted file mode 100644
index 795a5a711..000000000
--- a/docs/drakfont/drakfont_install.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/drakfont/drakfont_uninstall.jpg b/docs/drakfont/drakfont_uninstall.jpg
deleted file mode 100644
index 711f28e77..000000000
--- a/docs/drakfont/drakfont_uninstall.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/drakfont/mandrake.ps b/docs/drakfont/mandrake.ps
deleted file mode 100644
index 1af9d5bb4..000000000
--- a/docs/drakfont/mandrake.ps
+++ /dev/null
@@ -1,534 +0,0 @@
-%!PS-Adobe-3.0
-%%Creator: GIMP PostScript file plugin V 1.12 by Peter Kirchgessner
-%%Title: /home/seb/drakfont/mandrake.ps
-%%CreationDate: Fri Oct 5 18:28:29 2001
-%%DocumentData: Clean7Bit
-%%LanguageLevel: 2
-%%Pages: 1
-%%BoundingBox: 14 14 424 84
-%%EndComments
-%%BeginProlog
-% Use own dictionary to avoid conflicts
-10 dict begin
-%%EndProlog
-%%Page: 1 1
-% Translate for offset
-14.173228 14.173228 translate
-% Translate to begin of first scanline
-0.000000 69.000000 translate
-409.000000 -69.000000 scale
-% Image geometry
-409 69 8
-% Transformation matrix
-[ 409 0 0 69 0 0 ]
-% Strings to hold RGB-samples per scanline
-/rstr 409 string def
-/gstr 409 string def
-/bstr 409 string def
-{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
-{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
-{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
-true 3
-%%BeginData: 29637 ASCII Bytes
-colorimage
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-bl7e@q"4E6s+13Ds*t~>
-bl7e@m,@els+13Ds*t~>
-bl7e@T5=@Ts+13Ds*t~>
-c2RqDnG2D<JcC<$U&TW~>
-c2RqDl/9_PJcC<$U&TW~>
-c2RqD]71%QJcC<$U&TW~>
-cMn+JnG;n/i;S<-JcDJEJ,~>
-cMn+JmbuTmh#;m)JcDJEJ,~>
-cMn+Jie^A<a8UYiJcDJEJ,~>
-cMn+DnbMk)f)($uJcDJEJ,~>
-cMn+DjkIhQchi:nJcDJEJ,~>
-cMn+DST5n_V>GiDJcDJEJ,~>
-ci47Jn+l_KeBdl?s+13Es*t~>
-ci47Jkhjh)WP\C\s+13Es*t~>
-ci47J^4K&h%!hSus+13Es*t~>
-d/OCNnbW%Rn_2+VJcC<$UAo`~>
-d/OCNn);p@^TP0>JcC<$UAo`~>
-d/OCNj+q1n%LcV6JcC<$UAo`~>
-d/OCHnG2eMo&%LUJcC<$UAo`~>
-d/OCHjkS+u^p135JcC<$UAo`~>
-d/OCHTl`:/%Lk8_JcC<$UAo`~>
-lMgqbp\sLY$2s;fp\"1NjN$P:s+13Es*t~>
-lMgqbp\sLY$2s,He&K8A[BAeGs+13Es*t~>
-lMgqbq>T^[$2r)%;B-/V%3+S`s+13Es*t~>
-li.(dk/mMerri>mqY9a_oE+4!k(3P`s.]OD~>
-li.(dk/mMersJbqin;Gk_SWgdk(3P`s.]OD~>
-li.(dmFhC'rsJbkMeO[R%M'!Pk(3P`s.]OD~>
-m/I4fjeV8=m/I1an+l\UoE4C(gAQU&JcDMFJ,~>
-m/I4fje_>>m/I4bjk\5#rk\cKUso9ns+13Fs*t~>
-m/I4flbMl_m/IIiWH^N?%Ls!Y%&s2Vs+13Fs*t~>
-mJd@ggl^4WrU'UfrU9RVp&4Lbm*a;WJcC<$U]5i~>
-mJd@gglg:XrU'UfrTiCk`r3aV];N^FJcC<$U]5i~>
-mJd@gjg<_0rU'UfrR6L%+8lZO%1J$fJcC<$U]5i~>
-mf*Iik)["5qX+:crq-'^p&+Famb#_TJcC<$U]5i~>
-mf*Iik)d(6qX+:drq#.'b/=1p"21eLoR[$ns.fUE~>
-mf*IilEnChqX+:drp>Y\/e\'l!Xrf8JcC<$U]5i~>
-n,F"!nYD2sp&>!hp%nOYp@\.TrV6BpqX41Qqt(!\hT52;s+13Fs*t~>
-n,F"!nYM8tp&>!hm-F!$l0Rm2rV6BqqW?VZ`;IIS^p(69JcC<$U]5i~>
-n,F"!o>7BVp&>!h[uQH0T!cSkrV6BqqQkK3(&JIB%70K7s+13Fs*t~>
-n,FI)^NR3SrVuomhY$U:q"X[\qY0^VpA+[ds82B`p\"CT!oq>fJcC<$U]5i~>
-n,FI)^j!BUrVuomg;hIdf%Jg6kNM-qn+?PWs82-AeAqF&!jo2uJcC<$U]5i~>
-n,FI)d@e5>rVuom_BM'9>A8)$G_hZm`nC%as80]m<Zq5K!Y$ODJcC<$U]5i~>
-nG`[jf8YC8q>UBuqVJd?m.L&NpAajeq#1!kp%eIZp%e4]kKW1@s+13Fs*t~>
-nG`[jf8YC8q>UC0qVJQ`]>_n8c-Xnhg"Y?>kiqElf#bi+_?.6OkCNYas.fUE~>
-nG`[jhm8^'q>UC0qVI;C%2gQM4%)eE@rZaAKVFlk?7QZc%Kd4N"m:I:JcDMFJ,~>
-nc&gmm]UN9m/I"a#6+8C]\r,HrUg-_rq??c!VZ3]oE4O8iVnE.JcDPGJ,~>
-nc&gmm]UQ:m/I"a(&mjRYd1mV_SX4/`lQ?JcdC7lcH*p!_?7KSh>W!*JcDPGJ,~>
-nc&gmnApp+m/I"a(&mjRCCL^_%M'-d*@NX&6:t6X5:%$?%Km:P%*&9ts+13Gs*t~>
-nc&dibD(8oq>C6srp\(Nj6cI(oE4^PjnOE,JcDPGJ,~>
-nc&dibD(;pq>C6srp\(:[(O6N_?7]o`5D>d"2VXrpjrHrs.o[F~>
-nc&dif<14fq>C6qrp\&r%J^M6%g3L](D78P%KT)pJcC<$V#Pr~>
-o)Apnm'1H"lMg\\#6!f&dH0iglLY2OnG*"XrsA\uq"XjgqtB^[JcC<$\c70~>
-o)ApnmBLT$lMg\\#6!f&\@0,fm(rqD`5^X+rqQL"rpo1Err;l[jSON.JcE:\J,~>
-o)Apnm`LrrlMg\\"T@T$+q<fI"VDOmC#f3frsA\WEU3W(qji66JcC<$\c70~>
-o)Amjb*?Map%eUlqr>9CjmVg,oEY'_p\"4Rr;QWo$2s&VmeZnNp>>Uqs+13\s*t~>
-o)Amjb*?Pbp%eUlqr>2i[_BTE_?e'"cIM%Anb`=`rsAYegtV](lHe5ZJcC<$\c70~>
-o)Amjf"$U`p%eUjqr=df%I4K1%hp3M>Ci]roD\[f$2s$mBDVSN(rc6#s+13\s*t~>
-o)Am`[;pHKrV6BrptE13kO@d/(%q:pq"X[Yp%\Lcs8M65p?qSEe(skOs+13\s*t~>
-o)Am`[W6TMrV6BrptE!V\A.@H(;n2:dFR%+k3DR:s8W)^b0fDEf>-5=JcC<$\c70~>
-o)Am`bFssSrV6BqptC`;%I4K?%hp-C8mQ7RKs0)+s8W)^Q8?5H>YX&NJcC<$\c70~>
-oD]!me>?o:lhCD`rq+[OhWjXqo`+Uap(-omq"aUUq=E"uo]5Yem/DS9JcE:\J,~>
-oD]!meYd,>lhCD`rq+[DZ+@a9_A'o,aNMlWf%T6KmIg(uccXqbaR&nWs+13\s*t~>
-oD]!mgr,DGlhCD_rq+ZT%1VS4'b:op,r7b[?>XPE\DZu+?7Vct]^5WKs+13\s*t~>
-oD]!f^6W?3nb2terp\+KipH=!o`+Uap($ilq"O+(guI)Go(DbUrdk*#s1JA^~>
-oD]!f^6`H5nb2terp\+:Zb4-;_@si+aNVuZf\>QHa2#=.eDfTZqu20HJcEC_J,~>
-oD]!fcFJk?nb2tcrp\*'%H\-7%h]a,2F:;PDg@Us1*L+oT;9Krrdk*#s1JA^~>
-oD]!]YCC#np\"OjrThAHk3qp%o_nFnp@?/4i8NJDeEQYKc-"5QrlP;YVY^&e!rCEmrQ58a`3ciI
-d/OCNp#k&U\;/o>h#@ZZp#k&V\rFr4iVs>cn`8KObf\)MdFe!gir92]puU2Tbl5cb^&\&$s*t~>
-oD]!]YCC#np\"OjrThA1\%]]>_A'o-aN2ZXdCHg.]=keag\&b7bKS30b6#MWqY1!kqUNslb6?&0
-`3ciId/OCNp#k&U\VT)@h#@ZZp#k&V]8k/7iVs>cn`8KObfe/NdFn'hir9DcpuU2Tbfe2P^V9T9
-s*t~>
-oD]!]aJt!3p\"OhrTh?P%H@p+%hp!3-mB]:J%7BArWNL]p"S9UgY;_]!n>*`p\t<kinaRe"PMAM
-b59Qc#laScjPJ7fjo4'8#laScjPS@lgAU"1%0#nbjk\\Fg=b?Co`!kM"oe>aj5&JhgAfS$qjmb;~>
-o`#-pfr/arg&(FA"oIDohWO@goFpf^hTE^[d+I+3\@B)hioYiBMk'a<!fM0fq#:d$hS6+`T:M*e
-C1Mkcdf0[Qg;:S9ZD;SVjSds8$N8Ym]Xb>FH>(\%jSoMbptsB7]<eK2rgs@hW2mGdrT4%`rTDG@
-ZDXGrT)saenX]]1~>
-o`#-pfr/asg&(FA"oIDmZ+.O/_@s_sYb@bpYJAE'\@B)hioYlDMk'a<!fM3gq#:d$hS?1aT:M*e
-C1Mnddf0[Qg;:V:ZD;SWjSds8$N8Ym]XkDGH>1b&jSoMbptsE9]<eK2rgs@hW3!MerT4%`rTDG@
-ZDXGrT)safnX]]1~>
-o`#-phSl(>g&(FA"T.;a%1V;,rs]MI#nAC@F#gb?\]3XkXJrM=rP&E>SaH4P%/o8;a1oC'[\K.H
-S+>#-$N9&:eC)RXUQ4F6hZ!r]j3uH'bep?>eGA8+#laY_hUg0!`PMPg"iA7"cKP5grs&Ggh:9`f
-_>_1NY+"mOs*t~>
-o`#-k`1LULi;W?J"o6r`jR)O$oH!MhhT2q%V6%_Zamms?io]goWKMCCDf9T7A7i^Wq>Uls_PM^#
-EG/W[H],6!df0[K[s3%5GACN#iVq^6$MV#aF)?#9>[lFajo6"lim#-6Ob7puCMe$3G'nq%P-t2M
-rseqc_lA`EF(f,p@pNR+qYpZso@s5Bs*t~>
-o`#-k`1U[Ni;W?J"o6r[[Cj?=_B$G(Yb-l2RA-dea2uK^io]goWfhOEDf9T7A7i^Wq>Uls_PM^#
-EG/W[H]5<"df0[K[s<.7GACN$iVq^6$MV&bFDc2;>[uLbjo6"lim#-6Ob7puCMe$3G'nq%PICAO
-rseqd_lA`EF(f,p@pNU,qYpZso@s5Bs*t~>
-o`#-kd(bp"i;W?J"8U`5%HJ$!%2'$U$Vu+1*4lc6i8Wnik-LYHT`1PdTU(S\rV?I%p=$pYT:h[3
-H]"0#n'_4CpW&ntT;8$8L>i-grsJMAUn"!NSr/*QqrRhkr9<%c`3ueET:MRGTqnTfZa\-TkPl"i
-kL[_[W1f]IQ'I8]k5,)[rq>LQW;hA~>
-o`#*d[?tH4iq!*Orq+U^kO]kem,#gfX.uc3c/-+Vg@4Y3s8V`JaII`jBOk^aA?5P&rseqYZA*4-
-An"tc][5[4df0XJgUa)+DIZpqkM?.FpYNZaKQL^.E9$r[rtYF__PW-/@pN2?>?b?@A7fLoF`b+j
-kl1kZ]qg0nA7#49!`N1[rVm*#m+]aaPkD!TJ,~>
-o`#*d[?tH5iq!*Qrq+UM_o(`U+2GLmT8\SmWkcK^ZHL,*n,E@eo\RZZIq35'An#;Pq>1+#rR\?0
-D.R<g>][R)iqLn$$2<2cTmU`f>^5GfrsJMW^Sup0@p<p4roX4qqq/c_LiHp1=B\p5>[_/TBQ/*:
-\,>Ii%J7B1J8/V$='/O*;cr&Xrs&Gggrugaor.n@~>
-o`#*daL[Uhiq!*Qrq+T=&eX=;rs]qU$49S'^m5IRb>Su4rr<#jhT2duQC+#+P`30KqYq$'hor9p
-R$j.jL:kmmpX9'JpY39ST:_@%Np#6u$MWDlWLorNKS\[fk5Q1nimu&PTTkChKS>2>Od;B(T;/.&
-r94.io[1OUS<f1eIXHKcG2iK##6"&QgW-\oW;hA~>
-o`#*_Y**4%ipm$Orp7u)p$;5no'G5SYcFP#`80S<da$mpg!]Zqs8DcYY`!(2BkCmdRIp@U%J7;r
-C2Rg"@9\fPp%n[9rsAYqkKfKE@U+lYh>[f[o]t&"L1=JFlK8*_qpN'DH"C;]<*!I??<^cDA7fIh
-AT[29lMhb#f;aXCARA><Dg6PQL$&F8rp%YE[[qAdm&9r7~>
-o`#*_Y**4&ipm$Orp7_N`p:Jb^q6hCN/3h#`80S%YKl1M]Wh22s8DcYY`!(3BkCmdRIp@U%J7;r
-C2Rg"@9eoRp%n[9rsAYqkKfNF@U+lYh>[f[o]t&#L1=JFlK8*_qpW-EH"C;]<**RB?X-rFA7fIh
-AT[29lMh1hf;aXCARA><DuP"jL?AO9rp%YE[[qAem&9r7~>
-o`#*__mY_]ipm$Orp619+6j@9%3>la$;[D7h<&&XcK!"r-M[W@rV>`pZBLK>R$E]4o_SRso[(%8
-R%0S,JXtfnqYnqC$2sJYcaTp<K:M;arsAYrld`SMP_,=gk5Q7phU/s3R#QQ;FaJO^I"dTHR$jJ2
-Rd9t<rsAY\`iu#$O*Z#%reLuJk5YJ\mb?C>^7Lk]W;hA~>
-o`#*ZUkW8cipcsMp"fB8mIV+`m,#gfX.uc7h=(70ftQD>j2T+,rVm5nY_6SBEG/onK^em=$iSSQ
-AoDX/BO>#Io$.1>roKu.@9o]!gA_B@WJ4hdV"!RI)#`C(R!*(K;HJLGZF-p8L1t./AnPUc]DUso
-)>M+?H=pbn?DG-N`Pp?ss8VuHXd"9O@X..9s*t~>
-o`#*ZV1rAeipcsMp"%[8mD9RQ]<IodLmP-[h=(70^o$&bj1r.lrVm5nZ%Q\DEG/onK^em=$iSSQ
-AoDX/BO>&Jo$.1>roKu.@:#c"gA_B@WeOqfV"!RI)#`C)R!*(K;HJLGZF-p8LM:70AnPUd]_q'p
-)>M+@H=pbn?DG-N`Pp?ss8VuHXd"9O@X74:s*t~>
-o`#*Z_lo/TipcsMorV=Eljj%)&ISpQ:SPe`n,)Q69AoU*Sm:^^rsJ57Xc8[=R[9,,nGE4nrS5>X
-Od;]1Ne"S/c2S%Jjhn-]K!+Xtrs%],YE=C=nE9fgrT2G=UmR0gG)iE)[BQToO-H$"R?WcQr9F;"
-ps6[OR?rbYV7X[b`ROGXs81Tm\#Gs[PNf%GJ,~>
-o`#*USpk'WipcsMo^2GHmdq7aj3"U,UTDDin,*+anBoYPs7bI*nbrIpl)/<.WHrAm@s759rsSJ2
-I:ACfH"^Ghc1oQ`#Q</JHsU*ip"TKOrR.Hg?!Y;?kPlCl^8$'h@ola#aP>qAk2+1GFD,9!@UY`"
-lMhao^RTFYA7Bc1lgXH7o_\[gps#U\B4YY(l)=W4~>
-o`#*UT710YipcsMo\e<Am_T^R[@rP8Q`A![n,*+anBoYPs7bI*nbrIpl)8B/WI&Gn@s@;:rsSJ2
-I:JIhH"^Ghc1oQ`#Q</JHsU-jp"TKOrR7Qi?!Y>@kPlCl^8$'h@ola$aP>qAk2+1HF_GB"@UYc#
-lMhao^moOZA7Bf2lgXH7o_\[gps#U\B4YY)l)=W4~>
-o`#*U^T!9KipcsMoS[$&m1'g>$OR5:U;YmVqu6WbdF%F_pYacqrVm5h`LVjeVOa*;PjJ;I$hVcD
-Ln(08RYu[Aps&gDrS#,eNe"q<g]%NWg;9eIJ&_3FrttFU_PirgJp*g.gudh_hT2LdS!f\/M6-I:
-ru(IQ]q_!^O-@uWnF?&@qu?]ke&%uMR$+!(W;hA~>
-o`#-TSpXpVgA^[C"T@]_p\""I$M!,kX.uc7h=(7?rr39#nF?DUrqQ0`rr3B*gRr(l_2W\Q@;"d$
-rs\kUW+'bVOa^kHB&<L2rs/AEVfl9Mg%sJ'#Pc0+F'E),qrn%trnXZ6D.[6aLXGVgrr<#sm`B`\
->$>!/P4JSO$NB_ai7ci8j6?C=rVn,AnE]E#]pj(TASZtFkNV-or9Wb8k/F0@AnGb*cfjZYk3)`H
-s*t~>
-o`#-TT6t$XgA^[C"T@N>dDbRk$Ga!9LmP-[h=(7?rr39#nF?DUrqQ0`rr3B*gS&.n_2`bR@;+j%
-rs\kUW+'eWP($tIBAWU3rs/AEVfl9Ng%sJ'#Pc0,F'E,-qrn%trnX]7D.[6bLXGVgrr<#sm`Bc]
->$>!/P4JSO$NB_ai7cl:j6?C=rVn,AnE]E#]ps.UASd(HkN_3pr9`h9k/F3AAnGb*cfjZZk3)`H
-s*t~>
-o`#-T^Sd0Lh#?mE"T?Pj8f@%,#n77L:SPe`n,*+`rs8Jjnb`@cq"=O`rsSh_^m'YkXJMAJMs($<%
-/o#$Nf(?RWL/KohYk_!#PlogUksTSqV2#Tps-RHLk+4Vkl2P"ilJBrR?NDkdI@&4s8W&caeauPL
-OslIo)8RqrqGmFjQ#7bn,!%^s!.O8nF5Vd]qLj]S#+d)n*KQAnaQ&6d_hlKR@9u)mdKW2mf'BhJ
-,~>
-p&>9rfUI1qAAA*6rr_uaq"=(I#jTO4W5RN\qu6*b%/\5;@X67aIVN;&b5VD?%K>h.I9iVgS:>$Q
-E97)srseu&j4W#8g[4q*f#-ePrVm?+nD;IBrVulhiRu`LrqQL&rp\gma3WGQSnqYIiVrfU$iTGD
-a6`g)o\S-WrVQU'rTr7if@K0ao\.C>rVlg-o=(-$>B&X%s8W)nimu]Zq>V-,le:"AlMgh`q8/\K
-BP(dkW9sT^rr`5OC0CL:32Q3Grq"sk`4`U`XfSb5[(FcZrr;`7_S!FWKl(F7COr.a[$dWS`50!q
-Y)I=3B52a`ZFI90PP;6[J,~>
-p&>9rfUI1qA\\37rri&Tfuh5$_?d`GLo&&Gn,*+Rrs\eJS76chQ@<RWB$1,Prsetr]7!t[aII`i
->B/d(r;R6*puL,ZfA#]jm+92@rr)j+rp\difDYaKo\nKRn,E+^%K>kSdE'\f^7T4HCZ59krsSel
-f>m7Wrq,'tir/cS!r_K>rmqA<rUegbg&:pM&+d8uBNoH9rr<#tpu9oVrV?I,rTi4kf'<87s7sR(
-H>$o$D5ck$r;Qltf5"Rg=?*/Js8MWGcG[H+YcY"3['dNop&>!cb/:m&VhJu"B5<*mZa?0pm)?fO
-]!%'3AnPk)S[,f5R[!QLs*t~>
-p&>9rgq9PJM9,Ydrri%ZC+^+e%L<LO$BrEan,*+Rrs\eS]T/*!ZDj@WMUDG&rsetsc_uAqb.Xg>
-KSegir;R6*q<I#!ioT_.nD`!err)j+rq#=.ir/oVp?CVroD\Ob%K>t_hUpZCcbH$,L#N%0rsSeq
-in3f#rq>O6lM^V[!r_WLro+.MrV#=)jSf)X&+dlSRtQUXrr<#tq<Hu!rV?I,rUAn.iU?dGs7t$U
-Vja$?QaH/Zr;QltfoULXFuZ\rs8M]Rh:U3%b/hWGc-=Vmp\t3eg"4[!`N>`"R@UCobg!f8m+Bn9
-dE/\dR@0SC^<FsK]X.@8s*t~>
-p&>9qe<bGiA\.^/rri;fq=jRMoEO?eX3pA4rpKdpp:Z]!N7jqXD.7%`qYpL'qp)$GD:$7nHsp9;
-li$i-rqG-bVh9;XWO9ORQuhZnrpJ^ob/:HB[J'1A`k&CNP0Nt&ruh:,e%:laFG6?XK4J52kPk5<
-g!RmUUOqY(gr[+(Ls#\qrsnq`b-[7VNMEen_5D=oqYpL+m]_pd>`%bGs8D-*^8cn'rVca4rqG*\
-UR%RPTs=LpoX0j'AnG[iJ'@WcrVlruke@"p3O[W8qqfH+UlpI\G'/(ZK85MVUXoD3Z^lo'H#IA.
-B52C3Jph<eeu=peJpMEMAnPdpG_(KqBRfHQs*t~>
-p&>9qeX1VkB"Rm1rri;ahU9C2_?RE4UXAN,rpKdpp:Z]!N7jqXD.7(aqYpL'qp)$GD:$7oHsp9;
-li$i-rqG-bVh9>YWO9RTQuq`orpJ^ob/:HB[J'1Aa1ALOPKj('ruh:,e@_)dFbQHYK4J53kPk5<
-g!RmVUP%_)grd1)M9Gksrsnqab-[7VNMEen_5D@qqYpL+m]i!e>`%bGs8D-*^T*"(rVca4rqG*\
-Um@[QU9XUqoX0j'AnG[iJ'@WcrVlruke@"p3O[W8qqfK,UlpI\G'/(ZK85MWUt5M4[%3#(H#IA.
-B52C3Jph<feuG!fJpMEMAnPdpG_(KqBRfHQs*t~>
-p&>9qft+#DNPkS`rri;GI7tRI%L*@LG1#aTrpKdpp<0q%SCt?PSs,,KqYpL'qq8lGL!\,[W02b$
-li$i-rqPR,`2olF`Qm#^\sr*crpo:3gXjTRanGAcg!Rs[\(^fXruh:0i6o0.Trl)DXHnR#kPk;D
-j58S@_Q2qsjkJ/#Yh8pRrsnqigWd+&Zbjr8e\n',qYpL+m_u]%Jskp(s8D<?eAeW;rVca,rqPO'
-_R[J$_9)TSoYn85rg<nYWS.(GrVlruke@"p3O[W8qrZY\_R?YIUnaccXKT%E_;Y@\aM+mZV4X3E
-R@BhGX/VG]f#G5%X/DV[R@0P9V5p_tQ^[?Fs*t~>
-p&>9qh3`IuAXiDbrr_rbq"=%H"QI&9o)A"U*:U4g@'&CoM/d$8Re?^\rp@4;=eXcaRs8=HV""B`
-,Q6oOY@q-TL6-A%LjW]Uk5P%GR[TP$I!M[1Y`jQ^I!fUSo_e_Fqq]5`?s\8GL2:U?@9ecXrRd?u
-QBI#DJ()9=P_4-kL%YKFp!UC%?<qlDE-@"k@q49irr3PoWJFtfV""E_i5)4IFCTpprr4)=jN*g$
-D1d%QHuQ7cnZ7LaAnG^mH'tnN`mNB$me,iCi[s?cpsm0RKlLX0=^#'8?=RSaG_1XmkFcNo?"%;V
-An>FX>?Y-1Gg1_G>$PKHralFG?X-c<=BBS.Y5a"~>
-p&>9qh3iP!AXrJcrri#Ufuh5#_?@3>b4>PuruCO6LL@4DZANX3A"3/ks8MDqFBYBr\XRhO?DR)i
-s!.L-bcb\bCPIpiI#*/[G38esTUVC9N-orM`j(_WH$k!QI.[@:1]-"IT3tuSP_O!hCLLJ,m/>S$
-PEqAeEe)WUY`sc`AqfpXrq4^MJR2W/QuR;)L1=cKqYpL+l)KPJ?)6uirSYPgMf`H\o`"k4rT)%i
-AT!0GEdVi/qsgbCDe<TpCjDGQ^W+[PkjJ-.rSfElo_?tPTnRJs?<LH:>[CoPD0UYebNGR5>[:cL
-AnGU`?<^T8=*`&@?s6fDAH$0H@p`JE>$+jJl)t&:~>
-p&>9qh7BGJO0/-Irri"VC+^+d%Km4Eb4>PuruCOJYD'@D^TaArN32dQs8MH3UO9'!ah4I3K!+VB
-s!.L1grc+;Js;grVm*+\O66H7^q@=jZ`'b5eB>>$V5L5[Sb2j[1]-:d^Q<o(S=,b7SW\Vqm/>nQ
-\%/rNTr-Gkb.+RLPbIdMrq>6rX,)+]TUDUZYEajsqYpL+l,KrjJZeMBrTDbLZ(mDOo`"k4rT`+M
-OGT3hTr=U#qshD(T:)+9SYj!@e(<I8mIKr7rSfj#o_@Cq_6'AqNJ3%>LlR^eSu&Kjg#oo6Mi<gc
-R@0G,NerOFIZr$VOGJgWQC+)-Q&gfYLP:29l)t&:~>
-p&>9ri0S\"A;0RGrri;fq=jRLoE4*fhYld?6gCXi@*J&VNH8W?MXg`Hqok^>C=;@PQZHJ=](Q+'
-rp%Lt?rMQ_`P77JBOP/&l2U+CMfW]JAS$."@r6'lA7f4[l2CX3qprKA=]_$-c+SaGB4,#@nb_+7
-M/R3CCN#8KEbJrj>'B93oZXOW<,AJK_jGIX@p<^+rVuosf;*h$?,H=6hQhEB?sHc`mJm4bi5(4Q
-EjE?WHZ!A@o('&0AS#IdBP_jEO-ucBZ*q3U`p!F%s81?YR<W=O<Duq-Am\kN&Rf6aDJsd;KO7ef
-@q'%^@p2q3<t'#lAm/8?A79%]AR/=6<rm7(Y5a"~>
-p&>9ri0\b#A;9XHrri;`hU0=0_?70AhYld?6gCXi@*J&VNcS`AMt-iIqok^>CXVIQQucS?](Q+'
-rp%Lt?rVZa`P77JBOP/&l2U+CN,rfKAS$."A8Z6nA7f4\l2CX3qprKA=]_$-c+SdHB4,&Anb_+7
-MK!BECN,AMEbJrj>'K?4oZaUX<,AJK_jPRZ@p<a,rVuosf;3n%?GcF7hm.NC?sHfbmJm4bi5(4R
-F0`HXHu<JBo(')2AS#IdBP_jEO-ucBZ*q3U`p!F%s81BZR<W=O<Dut/B4,%P&Rf6aDJsg<Kj\"j
-@q'%^@p2q3=:B/nB3SJCART.^AR/=6=93C*Y5a"~>
-p&>9ri4>bPOe;19rri;8HV,1C%Kd.DhYld?6gDU_K$Nf-Z_<_HU%/0_qq&W>K$ro&\tP+6_"Ia-
-rpACTOEHPj`P8(;RZ`8jl2U+TT9u1=Q^+/*LkgkKQ'm\hl2CX$qr-#2L3B3*c+Td@R?3$'nb_4I
-SX,h7S=?^MQBIJoJro?up"[`^H\&04_kiuoQ%k"NrVuosh8?4OJB%<]jijTgOG\IOmJm4bkLHeg
-KsJ@mVk0*@o('PkR$a;0R[p7U[(F2obKeJ^fC&Y<ruh3rdCZ6COFVLsH[U3kM34-nStDk)UOdT>
-N0K]tQ%s\aFps/NMgBPoMisHqQ]-:hFodB_Y5a"~>
-o`#-UP]^SJEpNAts7??ep$D;Pj2'a@s$ZkAU1IrnpXt[MAn6;Vs8MDpDHa4-l`?4a>@#qYs8MT-
-Uh!JR`T-LO]o6r=>bplho%(RBIqiCm<HOn>XaY%t?!u^ls"s]2]Tc]&S^Zrtj/n,S?<t/8rU&.L
-P(%.V@TRN?IUlARM<ju\Z$BA\]%ZT=bE7$Y?%_A?s!RZ_T6+:JgA'O+AS-3k;,aC]s8ColO^)V7
-i9Sg_H!=\@pX=Lu@:]@L6"akGDfpAVKo(nYS%ALrl+*7-B44b;GbVLOYFBWC@qB:fBnaC,WMYDh
-BP(^[H)@R?YKGP5WMueYFD>Du?YQ>8W<09Gn#l\@~>
-o`#-UP]^SJF6iJu"SCd-ai!M_!jnlbli0BPgnSFnhY5]cF(Ss2mJm1Q[r,BQl0GF5CKk,uqZ$Qc
-`2$pDIDt7:kIupq?sTSts74aUQ[`aY<`X@9ZE8UlAmJj*rr4hRhS#.Z=.Rh,o]**2D-gP[p&4:.
-^6="\A7AY\T7:BM:l=T7bcuFoA\-U`m)tQ:@U4WMrr4AB`h.?WA_Qq9XCZ!i>#A4rn,N@F^l_l9
-^>S>*T6XXLl1`YT@:<^GAjL'CC2\6@J;&iAR%1bbropt^G\:Ga;L,"B[BH'B@Uit^C2&C<YGnCS
-E+iim??rEIWNXIt^T"31P'(MOA7')Iri#t&b3uM5J,~>
-o`#-U[\T=SPO%l@"S@FZ.M;%X!Y#=mli0BPhnbV3hY5^3U6q+2mJm1Rc(B?gl0H9rSV_jLqZ$Qd
-f>Eo"N5aiIkJ4BrO+FJ's74aUW2c>LJ9QgEZE9[fR#H[Xrr4hRjO:SrG,*OQo]*EbSrJ99p&4:.
-^8S$$QAg6HTotC_ELH.gg<6=BICe/#m)uW0PD,:crr4DCdD)H4L"c=`a-)"2J9>q:n,N@Le[C3_
-^>S>*];CF;l1`YtO-,crrg?$?S=cRSWi`M5]"H>crp.qDV4!KrEJUEr[BH3^Ng,p!S!g%fYGnCg
-T:;74KnuV*WNXIt^T"31S>)L@QAU6hri#t&b3uM5J,~>
-o`#0XQ?d.RC=`CXrr`5dq=a^X#P.6Ah:prSnbMeYji6<Gs*X^eS76L"rSWl_B4,B:s81'6??Olp
-kbj/H>\i<ts8'mAH<=RmlhpeYbaWf_?,?77r:T0RP&"9(NPF*,fq*h.>@QXms8MN%Tk.;IdI[A;
-oXpN1>@#qYrqlBKViGOu<-5k$Z=$^Xbja>pN*KGaiVEKOiLka1>F"XUs"!`PRr)P[i7t\PD5jp_
-B:%6Erp[^p@9KJfqu,0MEE[;BrTCV-?<UZD@qGOL3bN,AF*`26p!9XhC1LLJLVhd-kiC=+Iq`J+
-BObeoj5S[aL2U[5?]*IpioKLtl/L^YZ\rm:A7'B*ro+"?mJ=!cJ,~>
-o`#0XQ?d.RC=`CXrri;^h9a+<_?[lg['-X=]"n-Y!k,,gli2A0bFN*_jo+,%G%Y2rl2UY*TO2lo
-punZ2AR'$0rr;i<YBj;Z_s@7#q95@Q?=(MBs8;QOY**R)=H1)Ijk68YAm8d*s8W)f^7f+?Fj]g[
-s7EsjEEcc&qYpBbj/@uR>uc!\d'@(]H-Gd3[u=QoWo<dQrSaH$@9f)crr4M@\XRGDI,NeeB5X`W
-EbLilp\sZtSmbg"j88f-YAm`bjo+ANE*c^S@:NmGAiaR<CNFfKX7af>JSJ_!<JSHFk31mW\pnF*
-AnY[i_W0Y-Tn[Jt@UG#Eio9%do',/nh6`,^An57idf/5-jR)fHs*t~>
-o`#0XZDF%TOkTg.rri;6GXNAF%fQn=$k3[@%K[(Cip6Vlqp`<?MWOfp[%s+OMs:9=fYE<!fD+RK
-YEt#uiVrlRfZL+DHc,1Is7t*VUlBoEpAb'`jhS?rLj56#fB(\kXI4lrj8]/Yo$Y@AI>H;Brr;W3
-\Y+e/g%t^Fp#EcnSVqcK^<j<AFc+E4iQnfeGcp$$rr(fjX-/%/mf*5;oZ=b;N0iJ`c'<p^[>9=)
-fD#:7e\@5mXQ03Vh8u@BLZSKt\W)?!NKKHlR/<:3R[p1NVo/2[a/b\qLj#!!g?.V[f".<;R$jD.
-P0)bDf<h]QR?NDqfAbfNmIKN$in_;RTp_4(MphUa!p&bFY5a"~>
-o`#0\SpbBcC8q('s8V]lq"=XY%.`iKfuLG"XLZ^>n+6GK"6[b[rp9Y=p:Z`"MX1<)Q?m4QA^gVB
-[r,BTm/>M0IUZQ1kl:YD[?G'&OQ-0;s7sX)F';l'qu6UAn$/*h>B%aLq>TigP@e$<jo>AXd]\:.
-=gIAms8V`'Rr2JHiVriV+7#tfA63'HjRh6#W5n/m\tE_>E7O^_s8LoOJ6uQaoD\bEn#qskCQ?fU
-NHDegi5i[anbr@/Y'aSseG&t.`0FV+L["j6hQqZ;=^"s4>$P?@@V#IM->.(*HI]WtFCnucBufQ:
-rr;umj0s>IAnPXcTDANWY`Ed9@UPDiq>U`q`g(a[A70WGW;hA~>
-o`#0\T7(KdC9%.(rr_oSfZF-0%)KWdXe(W3Q'8&Q^;9]`"1Y&Urp9Y=p:Z`"MX1<)Q[3=RB%-_C
-\8GNVm/>M1IUZT3kl:YD[?G'&OQ-0;s7sX)F';o(qu6UAn$/*h>B%aLq>TigP@e$=jo>AXe$"C/
-=gIAms8V`'Rr2JHiVriV+7#tfA63*IjRh6$W5n/m\tE_>E7O^_s8LoPJ6uQaoD\bEn$&$lCQHlV
-NHMkhi5i[anbr@0Y'aSteG&t.`0FV+M!=s7hQqZ<=^"s4>$P?@@V#IM->.(*He#`uFCnucC<,Z;
-rr;umj0sAJAnPXcT_\WXY`Ed9@UPDiq>U`q`g1g\A70ZHW;hA~>
-o`#0\[&KU_Q+HhcrrhtK@jhld%L<LP$OR1D$4IC>%Kd.J\,Pao0_W]"MONl2k-LqSP)Iuklcu,M
-[d<tJ_5WZQP3DrFkg$Z$I@K6ns8VoA^7pF4gACmL-1Aj`R"U19l1t>I_7,hcM<4d;qqK5oML)_s
-rr<#jah44$L#N%1ru^RG[$H5f\`ED<WN+#'n^"t>JVDYKs8W)W_Q&ZH[e'Lu1@N2lSX6>,e$G.J
-h;HAhf(&_9fZC(LMq%M#maeq,FI27lptiE>I=$HqL51YFO->otrg>(&RAS]_]q_!ZJq:u.qu6Wp
-puAo]R@'D.NjAK\n\MT+R?WN'nbN1jps-FGR?ieol)=W4~>
-o`#0bY^gP%AUF"BrtYM!q=aIQn`o#X]W8'.Uo1&mdH'cfr:C*SaOC%Qs!@0?Lg[%Js6HG3Cgq%n
-ouW_1FkQTeb+Eug>E%qKqSoF\>[52<rr35r]:3S@DrUcqru1.$M.9eIk5G>[n#qsd>`%bGs7Edj
-C0PN+q>UBun?A-h>^,B1ruh="Vh8A[No'X3o&/HpqV830@9]8err<#sd%GYh?IeiMs$GtLMJI3l
-WL\$Lh"gg9me6VZn[4^#D4p%Yf"HrE;.[o@s8McQa0:YNB4=qD<`r[6@:a%_B4Z"YTnR;p@9eiS
-rVZ[/q:UdLB4b[`MXpf;Y`Ed9@UPDiq>U`q`g(a[A70WGW;hA~>
-o`#0bY^pV&AUO(CrtYLoh9a*W^Ug\GQ&(ZkTr4WYVR=.Sr5&QGT?[9"s!@0?Lgd+Ks6HG3Cgq(o
-ouWb3G1l]fb+O&h>E/"LqT#L]>[52<rr35r]:3S@E8plrru1.%M.9eIk5G>[n$&$e>`%bGs7Egk
-C0PQ,q>UBun?A-h>^5H2ruh="W.SJ\O5Ba4o&/HpqV861@9f>frr<#sd%P_i?e+rNs$GtLMJI3l
-WL\$Lh"gg9me6VZn[=d$D4p%Yf"HrE;.[o@s8McQa0:\OB4G%F='8d7@:a%_B4Z"YTnR;p@9noT
-rVZ[/q:UdLB4b[aMt6o<Y`Ed9@UPDiq>U`q`g1g\A70ZHW;hA~>
-o`#0b]W7TkQC[U@rtG@EGXN>X%LijU$ORA5O/J%.$k<%C!t>X6qs=>/nA_\eY42JW[]>s`O3@4I
-]n_Htq>/RTVNHG#m/Qq2`2AK?`Uj*/#PH6PSV;mZrr2p9l,KrlJskd"s8VQ,\<_`7lMpnVbe9O"
-K\-&!rs%u3\=&&2kPkK(ro:quO+!JRqYp'Di:$O$aKUeVVX"0\s8CQbV2BfRq#::Ll,9itTWQ2I
-TTe1,qXEqHrVuE4\t5=nk4.H[Z&!FLb4>T3pZ';uR#$3<G'/"VK8PhYrg=.\T"De@SXGUlSE9_I
-rtG4]XJ2,NQB%[0s7*q4Tp_.$V"+9\#l)]UUm[O-Om/hEJ,~>
-o`#3jbCF>>ASnsUq#CBd'DV7gjOV8SX/2Yr_q3baZ*MsCnGMn\kK)$Fm/JBsWH)@^pAaWdLi?m?
-V;AUk=gIDnot?l=?X0]'s7*C\C0YK.qu6U"n?A-g>_D;?rs/PTUjlcWV"+Ha&F-<R@9]Mrs8M,[
-M.9eHkl1S]#4&4H@pFuZrr3`3dA)"m>f6.3s8DinrqXF(H<spup&=t,pq`M@>@ugls8W)RV1E2e
-Dfg)5C;'TDs!%ElW.SVlHC1@VA6;lY^#f.ks8Mocj4)&ZZE0a]K6:j;@fBsHA8HgPF(f/o@'0"s
-rtGCrV1reuA70`Ns7*=SEFrZfPO\JK#l)E)G@kAnGNl(+J,~>
-o`#3jbCOD?AT#$Vq#;*$jOhPe[Ao^TLm4C4_q3baZ)=V2^\kqN\=^n<m/JBsWH)@_pAaWdLi?m@
-V;AUk=gIDnot?l=?X9c(s7*F]C0YN/qu6U"n?A-g>_MA@rs/PTV12lYV"+Ha&F-?S@9fVts8M,\
-M.9eHkl1S]#4&7I@pFuZrr3`3dA2(n>f6.3s8DinrqXF(H<st!p&=t,pq`PA>A)mms8W)RVL`;f
-Dfg)5CVKcFs!%EmWIn_mHC:IYAQW#[^#f.ks8Mocj4)&ZZE0a]KQV!=@fBsHA8HjQF(f/o@BK+t
-rtGCrV1reuA70cOs7*=SEFrZfPO\JK#l)E*G@kAnGj21,J,~>
-o`#3jcDmA%R$u+pq#;'#L1;M>%1EUO$8Q4s_q3bg[V$!Xq[N];$_d@^s!?sKU4UDYs7!b+T9bhU
-iQdg:[d="dbIs^4J@+nIn]AA4LP4I[rr32l`OM7fQ0J;J#QEPsWfVe7nc&P"lGg)kJ?JDAro_;*
-P_,:drr2p%lbg&oK:M<-rtYLb_PW3<`Ua$.rVQQmq9ZpSNI].Drr3c/cG#s,KAc_.s8LonX-f*A
-U8+-@b5M8<0`BeGXI#0H]>1J/H?G(Xjno)Xrql6GeA]#)XJ;/DLPLnSR$jA-RA@$\R[K:l[IX4p
-'E77+Y+:uHN0N`0n\MT+R?WN'nbN1jps-FGR?ieol)=W4~>
-o`#6qhi2JbBP;n\rqcX2rTs@QiQJ^2WMHN)cJe6bqt/mh\(g-:rU^3Ub0]qNs!Ia#U1@`equ?<%
-MfWKKPI?KVHeJ5pn?A-r?!bbLs66G:A6jWHrr2p%l`,nQ?(CB_ru1aRT6O[J_=mp/rn!uq?!YVI
-s8C?>I:6K`nbrIlk,*c>?)7#irs/;5So@qLh#%!K#P"s\DHgE%r;Q^#o!Oiu>B]0.rs\eJTm:$G
-@q]FcB8?0Xs"O5]RWMk;>[1HHEJ1:2jQkXVf\"]ol1a`6kMtCKbe^K:DeN`p@V0q-C1_'eA@D7/
-rt=e+P]:;G?Ztc8nZ\'oAn#/3nbN1jpr8SCAn5:nl)=W4~>
-o`#6qhi;SdBP;n\rqcX2rT2eVZ_ES<PaA5XcJe6bqt/mhXKK+KrPAZITum)ss!Ia#UL[lgqu?<&
-N,rTLPdc]YI+e>qn?A-r?!khMs66J;A6s`Jrr2p%l`,nQ?(CB_ru1aRT6O[K_Y4$0rn+)s?!b\J
-s8C?>I:6NanbrIlk,3i??DR,jrs/;5So@qMh#%!K#P"s\DHgH&r;Q^#o!Oiu>Bf6/rs\eJU3U-H
-@qfLdB8?0Xs"O5]RWMk;?!UZLEJ1:2jQkXVg"Fosl1a`6kMtCKbe^K;DeN`p@V0q-C1_'eA[_@0
-rt=e,P]:;G?[(i9nZ\'oAn#/3nbN1jpr8VDAn5:ol)=W4~>
-o`#6qhl337R[Kr<rqcX1rOd/&%1ERN(Jp@-cJe6cqt/mhBabIK%Kd.JT_RpS-N;o=Q%@Zds7F@;
-TpVIXag?_[g%k[;`jhY!JBmohl,BilL6Ca!rr32g_m>PYW:0`c)Z%jrV2^#FpAb0lh8?4MJ'@Ze
-rRercObC(2rVm)a`3#/RY4;Mk#PZKWT883VqtpBun\qu/Lk"4Xrr32na1@^nNTU6?%/\PiV2p+[
-Ng,rtV=jcd0_il(UQ'_NI<pEsOK-@^n)i]kj5ASXp[RS4j5&80_69B$S!f\.OI;f4R@07s^A%L(
-'(<]HTp_1&OmE&;_6fo(P_c.*q>U`qcFKa=Q].'kW;hA~>
-o`#6sm&bA@AnZ4XqYL4/o^_[uY,e@pZGkP^oAlm+n,)qIb.c]qnc&._lHdfNmJeL0bFE$\j8T)R
-d>r?]DM3^N?+fV)s6HVBB3Sj$rVkNCIUccGm/I"iro']*?X'c,rr3o/\XRSB?/#2Us8'd/F'N>5
-r;ZQ,R<N(I[.aM!#Q<)DHsU*ip&=srn["Qp>^,?0qu6oeV28knEo[/urs%npP@RmUli-nnp:Zu8
->$@)HDJ!EsdJj+E(\4npDI@4VWi`_GcJS-cftXqsXe:!`qu6U*rr)WambP(/EFrcg@#Aq&AclRU
-U\FWb'(</mEFrZbHKtP#Y`Ed9@UPDiq>U`q`g(a[AR]oKW;hA~>
-o`#6sm&bDAAnZ7YqYL4/o\[]`MhmXjZGkP^oAlp-n,)qIb-/"Z^])(P\u!F@mJeL0bFN*]j8T)R
-d?&E^DM3aO?+fV)s6HYCB3Sm%rVkNDIUccHm/I"iro'`+?X0i-rr3o/\sm\C?J>;Vs8'd/F'N>5
-r;ZQ,R<N(J[.aM!#Q<)EHsU-jp&=srn[+Wq>^5E1qu6oeVMStoF6!9!rs%npP@RmUli-nnp:Zu8
->$@)HDJ!EtdJj+E(\4qqDI@7WWi`_GcJS-cftXqsXe:$aqu6U*rr)WambP+1EFrcg@#Aq&AclRV
-U\FWb'(</mEFrZbHKtP#Y`Ed9@UPDiq>U`q`g1g\AR]rLW;hA~>
-o`#6sm'rdWR@Bk\qYL4.oOf9T$48nBZGkP^oBO;snb`.Kb#AfZr=/o=%$LAPs!@Ql]oS!0rr;cB
-[%`t\XKIS0^@)"#lbg&sLk4C\rnbDhP_bsurr36&j27pYJ%5.Mru1OP]V((0gACpMqU30RLP"@[
-s7jjNUlgAEpAY'srRnubNe"q<rr35na1@[mNop?<rs.l(Z'pW1j8T&X#4BF=Q%>Fjrr3H$bIsO&
-H'jtfR?j2mrr)j5o#.u.N.\"-XgZ'khsgC!eBZ.V^S]QYrr3`4rV6$Qh7C%fR@&tgR[ok6R?iuB
-p\On&n&Mu4R?N>dlMpCj[%WnPLnsS:rs8DF\YPX[Ng&_+s*t~>
-oD]-ke:VIHBQ8U'qu$I:rTWITVkg?,e)^&okeDar]C5b!rThG=gZ\2"o^'uIp$Mc*p:Z`#M<b-@
-rS<QWAnZ$h=G#B*s8V5ZK4J5,jSo&"Q[*(NPOSSO#Q<&EH<ab,q>UC4n$&$i?#\g&s8V`&S8)8O
-jo5;PZ]K6:A%;=5rs/A=T64CFg%t^J#4&=M@pFuZqYpcaU5*JnGNf#*#3i+C@9ou)rr3GsYa/m*
-FiV=FB4bkDq#14/nZ\'nA9QD\jQZ+*qu6<(TS@c=F)SS`q>Ufm^R]IY@olp:Ir>6t!b[5Xqu7?/
-k-U(`Amef#m/QU[O)\c@@$C-Vrs8D=Q$-bOA9[::s*t~>
-oD]-ke:_OIBQA^*qu$I:rSk;MPaSMbe)^&okeMjt]C5b!rThG+Y.;<a_Rl\Wp$Mc*p:Z`#MX(6A
-rS<TXAnZ$h=G#B*s8V5[K4J5,jSo&"R!E1OPjn\P#Q<&FH<ae-q>UC4n$/*j?#em's8V`&S8)8P
-jo5;PZ]K6:A%;=5rs/A>T64CGg%t^J#4&=M@pFuZqYpcaUPESoGj,,+#3i+C@:$&*rr3GsZ'K!,
-G/qFHB4bnEq#14/nZ\'nA9QD\jQZ+*qu6<(TS@c=F)\Yaq>Ufm^R]IY@ols;J8Y?u!b[8Yqu7?/
-k-^.aAmef$m/QU[O)\c@@$C-Vrs8D>Q$-bOA9d@;s*t~>
-oD]-ke>&FuR\?e"qu$I3rNm"@+BkGPe)^&omF&)'_XIL(rThEe$k<1G!t>ZQp$Mc*p<0t'Rd0qQ
-rS=fSR@Bb/I$*7]s8V6#Xd+TsjSo&*\tt[NV==Ka#Q<;kVM]lSq>UC4n&Dl+LPb$is8V`6]pj_8
-jo5;P`3c8%M88ocrs/AH^S?[:g%t^J#4'78Q%PUnqYpca]W[fdP3DlE#3j.3P(C"1rr3Gs`jqIi
-M9!H.R@0DFq#14/n\DN(Oc\#NjQZ+*qu6<6^TXQ5Tps$rq>Ufmcb?0BP_4CfTUu.N!g]SOqu7?/
-kKU<'R?2ogm/QUl[%WnPLnsS:rs8DF\>5O[PEtI3s*t~>
-oD]3skbrH1ASZOGVsOE^ruh3s_Psrbh<an5ikpgsNPF3?rr<#qkeY$ekje<3d)>MBs!@0?M.*4L
-s8W)ZQ?m4V@TQdJnG`Idd\;/!>_MAAq9"eAAS-kirr35u`hIN\CuG9krs%_dLh'b>l2L\om]Vgb
->`7qJs73CMEFWXdp\t1)oYR8@?>SU"s8W)WVh8D`V"+<]#3hh8Cgq>Hrr36&goH!5?c2X;rsn@p
-N+6(Lk2;MDBOu/=rr2p%nZ@^h@Vk9*rri>h\rUh0Acl_$li-e]')U1eNc&E6<-H<EEFrfrAoc)n
-r;RH,bc6,*A6N-Ao)J6aO)\c@@$C-VrsAJ=OEG/JA9?`.WW.J~>
-oD]3skbrK2ASZOHW9jN_ruh3o[%t+Oh<an5il$q!Nka<@rr<#qkeXC'\\H"nVRQ-`s!@0?M.3:M
-s8W)ZQ[3=W@TQdJnG`Idd\D5">_VGBq9"hBAS6tkrr35u`hRT]D;bBlrs%_dLh'e@l2L\om]Vgb
->`A"Ks73CNEFW[fp\t1)oYR8@?>\[#s8W)WW.SMbV"+<]#3hk9CgqAIrr36&goQ'6?c2X;rsn@p
-N+6(Lk2;MDBOu2>rr2p%nZIdi@Vt?+rri>h\rUh0Acl_$li-e]')U4fNc&E6<HlKGEFrfrAol/o
-r;RH,c)Z;,A6N0Bo)J6aO)\c@@$C-VrsAJ=O`b8KA9Hf/WW.J~>
-oD]3skd-eER%:(W_XRR(ruh3V>_of0h<an5l.*2,SA3eNrr<#qkeTIl%1WjW$tf(ts!@0SZ%oLO
-s8W)ZZDO(YP_"%onG`IdftjYOKU:s'q9cUFR$496rr35udD;Q7LuA72rs%`,Ya'p*l2L\om`)`%
-Jt20,s73t0TTtVPp\t1)oZk7FMMU6js8W)Y`3#2SY4;Ag#3i_%SWf6#rr36&hoMjZK#m]crsnA4
-Z]p$0k2<83R[9K&rr2p%n\;?&PEP/,rri>ja0_K<R0/nXmf*+`')US3Z_!MAH&BY@TUD4:R%Dn-
-r;RH,fZ0t[Q\^!uo)J6r[%WnPLnsS:rsAJF[A0.XQ_!.8WW.J~>
-o)Bg*dtqgLAnlF@S]^I$s82'2fB2Z"kL6u'D0r;*jnJcQrsJYc_8"[ena+Z@na6>[lE,>?]Cl1'
--L%4TCLpdPK&6D)s7jL(H!t'Mn,N:<N,WB>GO5A0rpIXpE+4(Trr36&gSB=->`J.Mru1+#LLXkt
-nc/X]]7k-6BpJ>js8M,mP\afRkPkJdrR%Bf?<t/8qYqf)RXT$_DT;YTs8(!>H=1:<qu?]qiMM68
->cdMc]Qe%$C6\Mmrs/(sK5P7<\,H:*55jQB]74L*AnZ")S^HX!rqc!<cF9']AR88;ZerB<A7]Cg
-DMZI5s8W)mf!pl_ARAAEfD5I:Y`Ed9@UPDiq>Us#c&-IPB4u1McIg^bb5JLCJ,~>
-o)Bg*du%mMAnlFAT$$R%s82'2fB2Z"kL@&)DLAJ,jnJcQrsJYc_6'iM^UpANna6>[lE,>@]Cl1'
--L%7UCLpdPK&6D)s7jL(H!t'Nn,N:<NGrK?GjPJ1rpIXpE+4(Trr36&gSB=->`S4Nru1+#LLXkt
-nc/X]]7k-6C6nMls8M,mP\afRkPkJdrR%Eg?=(59qYqf)Rso-`DT;YTs8(!>H=1==qu?]qiMV<9
-?**Vd]Qn+%C6\Mmrs/(sK5P7<\,H:*55jQB]7=R+AnZ")T$lg#rqc!<cFB-^AR88;ZerB=A7]Cg
-DMZI5s8W)mf!pl_ARAAFfD5I:Y`Ed9@UPDiq>Us#c&6OQB4u1NcIgacbPeUDJ,~>
-o)Bg*e"E%mR%0kP^=i/Xs82'2fB2Z"mGQ<uP`W&jjnJcQrsJYc_*8>;%LihXna6>[lGocU_=dg-
--L%t?SX5:\Ol$!8s7jpTV36P3n,N:<Z_*YOSF$:Urp\=LT9#/urr36&hSQ:UJtDB/ru1+@YEb!S
-nc/X]`NGf"R'-)]s8M92\=J\DkPkJdrReucNe"q<qYqf)[],gaR*bg3s8(?dViZ_hqu?]qj2A$\
-J@+n:_5*KeR^)Yers/)/XIbfI`r5l955jcd_Q'&lR@9\C^#&/Trql3IgsER+R#ZK:\)4upQC+)0
-T<HoFs8W)niR#$+R#ZK?fD5I:_6fo(P_c.*q>Us#d^#L4R@BhYgZ%2BgAS2SJ,~>
-o)Ba/m(IUQ@qB=nJ![1Jce7C<f@J6]Vg;umQbhDFr;-F"qrY`0g$%bO`:<9q#6*J_F)'D)rr4>5
-W.f+u<a*6,rr<#i^n5aYBXIF3ro&]MAnPt[p&*jhVh8bsIHgb2-2YoZH='sZo)Jagd@G\sD6rp8
-s7k,rBP(q$_Ya,_]:+%ZAprqCrs/;6Soe1Bg%tRFEU03?BP2(>lM^"mYDdF1DqY-is8CB@HsL(&
-p\NU&D.[I&_>XE6oYc)fAncbIrVui^c'`OhJ7iA'B4u::SZ]T?_S<LQLiHp0:fES5o@f+9@:a(g
-H'PYSbKe,8P]gVF;H'1Mrr;MmO)\c@@$C-Vrsnq]JnS_-BPrBkWhXj:p9+FG~>
-o)Ba/m(IXR@qB=nJ![4Ld+[R>f[e?_W-W)oR).MGr;-F"qrY_sXgu'C\+/nd#6*J`F)0J*rr4>5
-W.f+u<a*6,rr<#i^n5aYBXIF3ro&`NAnQ"\p&*jiVh8bsId-k3-2YoZH='sZo)Jagd@PbtDR9$9
-s7k,sBP(q%_Ya,_]UF.[Aq'"Drs/;6Soe1Cg%tRFEU06@BP2(?lM^"mYDdF1E7t6js8CBAHsL+'
-p\NU&DJ!R'_YsN7oYl2hAnceKrVui^cC/akJS/J(B4u::T!,fC_nWURLiHp0:fES5o@f.:@:a(g
-H'Y_Tbg4;:P]gVF;H'1Mrr;MmO)\c@@$C-Vrsnq]K4nh.BPrBkWhXj:p9+FG~>
-o)Ba/m(f'QPaIr5Wk-3th;mk`iSiSA`MSQHT>B7Nr;-F"qrY^Z$k3XSAb#3g#6*T(U6+()rr4>5
-]<.ZgJ9Sfurr<#ic+g$<OM1;dro'oKR$jP^p\a=.`N>\rT'?7S-2Z3-VN6;8o)JagfY4>OR)&Cp
-s7k-ER[BS?dJNb#d_)KIQ(I7>rs/;D^8$O7g%tRFEU0s,R[KYMmeuV/ag.P'QJDK>s8CWfVi6/O
-p\NUASXGq?dJa+FoZ="uR%()6rVuicgq/okT9bb0R@BkN^<+gRf@8*^Yb78=GB9;0o@fq'P*_T.
-VRXe#gYLQ.\"oCPHul1Jrr;N)[%WnPLnsS:rsnq]W0s!?R\$Rn`knUap9+FG~>
-nc'R)iM^Kt?t<kbFFfLGWNrn2QuunCBp6-WlhUPTrs8Ma_8"[bf>[7Ks(;9#lH6&KFN!>@s8VZ#
-MJQNsK&6D(o^(GHP&OuPU>PtMl(Ds(AT*="XcddEAS,Ll[+3%=oXpK)>?o)?s8Vr8NH&QBIE]p?
-q;R?H@V9bCWMY2mBP(geDm\'3d-e,uA6Na,rqcY7o"B-RA8?UbXdaBWB4YXiRa]EmoY-W)=^g.b
-rp-Y+@qKV2^>dMmfnj<LAp9TQaMOii?&[14CgCFYAS>n&J;9&@Km[`H>uXU'PgK""m_s9V?".A\
-G(l6RSs"Y@@Tu]-MUV7us7*1@@piSIP4AAJ%fYUXB3\hR@qB=iA7:epY5a"~>
-nc'R)iM^Kt?t<kbFFfLGWj9"4R<E(FC6Q6XlhUPTrs8Ma_6'iJX0hBcs(;9#lH6)LFN!>@s8VZ$
-MelWtK&6D(o^(JIP&OuPU>PtMl(Ds(AT*@$Y**pHAS,Ll[+<.@oXpK)>?o)?s8Vr8NH&QBIEg!A
-q;RBJ@V9bDWMb8oBkCpfDm\*5d-e0!A6Nd-rqcY7o"B0SA8?UcY+0QZB4YXiS(#QpoY-W)=^p4c
-rp-\,@qKV2^>dMmfnsENAp9WRaMXrk?B!:5CgCFYAS>n&J;9&@Km[`H>uXX(Q-f+#m_s<W?".A\
-G(l6RSs"Y@@Tu]-MUV7us7*1@@piSIP4AAJ%fYUXBO"qS@qB=iA7:epY5a"~>
-nc'R)iNJ<#OHu<*UT:f<`lu]J];(@6JXa7"lhUPTrs8Ma_*8>;$r-6\s(;9'maoFRT$Qg's8VZ-
-Z(6brOl$!7p@74k\"B%Y\E<ejl*-V?R%LS"agRq4QC+&1a5PS)oZOe8LjmD=s8VrAZ_<bSVqKhH
-q;S9;PF8/P`l+mNQ'[l*S]B^>h<r7hQ\C.PrqcX&o#%)_QCY"hah=C>rg7/a\DQ#goZXk7Kn/"X
-rp.%bQ'n5Fd-9EIfqXaoRAILAf[[p/JXOolOc#3bR$sS@Wir\4Y,IqVMgf_kSC$j*m_tEKN0BX"
-Uoq8B^:()5P_j[*Q.,F+s7*h'Q&poVU[e0[%fYUjOc,9aQ'[r1Q&;L1Y5a"~>
-nc'L+p",mS?!CTA?t!MS@pr\J=&s:,]$fg9rUp0qqrY`/eBP_pnc)Gai3TGCAR/\cG-UrEpW.Sa
-:gh?5rqO73TQadJ>$Z,lPPXprG@4QW>$G08OFL_B=^#BOBs$TcB3S;>h#%-Oq9*kc=]o$FBP6f&
-^2mU`r`Tq;CS5cU=]np>C2'g1M.KgeFQ`K"55O#m@p3&?>$>'WQ=jB(=^c&ZNT?L@>>]7urr;`B
-JRDVb>\S1mVWGI1?<^]DBP:jZBq*B3fqN.d>?bE@rEq6b?!C?/;-%Y9dd[58qr>,4?<^T=?X[DR
-@UNJD<)HhTbjYN1s7)^m>$"^$O7E#F"nKol?WgM1=Thf*;NL@Ns*t~>
-nc'L+p",pU?!CTA?t!MS@pr\J=''C.]$fg9rUp0qqrY_rWM?N]nc)GaiO#VEAR/\dGI%,GpW7\c
-:gqE6rqO:5TQadJ>$Z,mPPXprG[OZX>$G08OFLbC=^#BOBs$TcB3S;?h#%-Oq9*nd=]o$FBP?l'
-^2mXar`Tq;CnPoW=]np>C2'g1MIfpfFm&T#55O#nA6N/@>$G-YQ=sH)=^c&[NoZXB>>];!rr;`B
-Jmhed>\S4oVrbR3?<^]DBP:m[C7EK4fqN1e>?bE@rEq6b?!C?/;HIk<dd[58qr>,5?X-c??X[DR
-@UNJD<)HhUbjYN1s7)an>$"^$OR`,G"nKol?WpS2=Thf*;NUFOs*t~>
-nc'L+p"-."K85AFOHG`kQ'.)ZH$+e2]$fg9rUp0qqrY^Z$k+u[nc*5"kKV#QQ].!!UW332pW]Ol
-GC.C"rqOsb^nm-KLl@n"ZMO4<QAC6NLk^D*R$!;]L51hRO1shcQA'R/h#%-Oq9YalL4tJJP)Sku
-^lsS.Lkp_3Jte9^L5(JEPE3H<Y*4EZMWag855O$,MhHkAL4OW0S;i;YL5_=YW8t@QKQVt/rr;`B
-S;W,XMjBou]&gYfKnbMJR@&t_J>(6Pfr9aYKo(eMrK&XlN/3%2F*3/;dd[58qr>2JJqSo;O-,Wj
-PE:]UHZF=pbjYN1s7*LXJ9uQ_TCM^V"nKp)Jpr4KJHUIKF.`!*s*t~>
-nGa:'o@UL#@Tc`5=&r:!<*O-jVSC^HpAOR^#5dQ!\[\s2nc&ag`,8sbrDsP4R.UFUgM'bkOQ-0;
-mYPO[qc>FQG45Cl\:.[a='g0Qa1$"i='KBoY1hojD.[F1jo5;[qr!`H='&mRNP4]TiO!b,<tf%s
-]Zd<l='&U?LT]@gI;<G.R-aYK+TCiPO^M6l>Ap1P`IV;r=(lrVd,:%)An[7ks8W&_]Qa?V)J"5b
-dI?,&I:$&S='K[-]%6?Io@LF+AQW&8r`9J.<)cdtAq$SmhXpdGrtP7f_j,4H='&F(=&r:!<F0sM
-cL(T0rrVc"K`65uJ$AM=rrr>daJ+0"rFQ.II^&CGs*t~>
-nG`^lo@UL#@p8k5$s$>+<Ej6lVSC^HpAOR^#5dQ!Vim_=nc&ag`,B'erE'V6R.UFUgM0knOQ-0;
-mYPR]qcGLSGOPLm\:.^c=C6BTa1$"j=BoTrYM/#lDJ*X5jo5;[qr!`I=BK*VNP4]TiO!e-=;,2!
-]Zd<m=BJgCLTfFhIV`Y2R-aYK+TCiPO^V?o>]?@R`IV>t=D</Yd,:(*B5*Ins8W&_]QjEX)J+;d
-dI?,&IUH8V=Boj/]%6?Io@LF+Am&5:r`9J.<)lk!B7HbohXpdGrtP7f_j,7J='&F(=&r:"<F:'P
-cL(T0rrVc"K`65uJ$AM=rrr>daJ+3$rFZ4JJ$ALHs*t~>
-nG`[ko@UL4J,Xa'H[9mXFEi=sW5$pJpAOR^#5dQ!57013nc&agc]s*,rH8`sWV$5fgQ-Q%S)X>F
-m\bqiqfXW:O73&0\rV,[G']"Ia1@.PG'JS&ZJ+?3LOO]6jo5;[qr"5uG'87gR(r"aiO4XCFq]7c
-]ZdR7G'8+]Pd9$#RY6-?V!RpW:&aV(S:#L'G_;d/`KY^mG(5INd,:gXIXdpSs8W&_^5[>[G(,FI
-eF;G+NdGqjG'J\/]%6?Io@LF7IsH<cH@(!bGBItMIZ12@hXpdGrtP7f_juO.G^4U^H[9jVFaAnF
-cL(T0rrVc+Q2ZR@Nk"ZTrrr>daJY#JrI+j!Nk"Y_s*t~>
-n,EUkpZ'?$Q[esZ#_\MH]Zo="q#9a^"oIH!ZG#VprrW&S\bi?:[++aJroh(qZdSLGs6n+6qPbL=
-b4#B*j2\I*X0fq*n)M6dWirtTh!j[V]"#B!nG`G6rpe@BWiWSBcJnTtpYiumWN<VTkOIBBXfAS8
-akZCObIG'sg%G.?)>idI[]?F4_:e8@bH\(L[`-kamF/_X^=MrUruh-t`36/A[DLGZqY0$k[&K4e
-YeS]Op\t3lp>sQ-SrS-pGmK4fX16=.meZq]rs/Q"m+&kSOb<RW#)SnWa5?IdrVlroim%JA!mTa"
-p\tBnn(c("rO;sCb2W3!s*t~>
-n,EUkpZ'?$Q[esZ#_\MH]Zo="q#9a^"oIH!VmYm]rrW&S\bi?:[++aJroh(qZdSLGs6n+6qPbL=
-b4#B*j2\I*X0fq*n)M6dWirtTh!j[V]"#B!nG`G6rpe@BWiWSBcJnTtpYiumWN<VTkOIBBXfAS8
-akZCObIG'sg%G.?)>idI[]?F4_:e8@bH\(L[`-kamF/_X^=MrUruh-t`36/A[DLGZqY0$k[&K4e
-YeS]Op\t3lp>sQ-Sr\3rGmSeROK5n6h<t.=rVm-%qWubIYE=M:GmAYPS[6Aoo)8Oe!r1d"rl"r`
-iqW9J"T.ZCb.dha"22k:poaXI~>
-n,EUkpZ'?$SW*N'#`tOY]Zo="q#9a^"oIH!@u'F@rrW&S\bi?:[++aJroh(qZdSLGs6n+6qPbL=
-b4#B*j2\I*X0fq*n)M6dWirtTh!j[V]"#B!nG`G6rpe@BWiWSBcJnTtpYiumWN<VTkOIBBXfAS8
-akZCObIG'sg%G.?)>idI[]?F4_:e8@bH\(L[`-kamF/_X^=MrUruh-t`36/A[DLGZqY0$k[&KLm
-YeS]Op\t3lp>sQ-U6^Z7L^Ap$R&da>h<t.=rVm-%qWubIYF1IML^/d#TsMeso)8Oe!r1d"rl"r`
-iqW9J"T.ZCb.dha"22k:poaXI~>
-mJd^oo&\KIa2Q$<cIh1Do_\XSrri5`f&$)irrW/kkkj?Mk4/?Ks7kj<kOSTOs8)-DqViOVmJ?k^
-qsik0j66%1rqYpAj5oUtqYp?\lKRX*qu-O?rU]75j65q(qu6WpqX3J)j6?47rqGd?j5oUtqYp?[
-l07R,rV-=/rUf@7j6#e*rql3Ij5fIoq#:0]lfmd.r;Q^2rqc'EioB7kpAFphqsin.gY_/]p\k$i
-"o\)WgsX=C`<XK0fAPrcqu6Ek#6";aimuAprl#)_d+d^Qqu6Nn!r_obrp^'\q#0pd$i^"om-<j"
-lKn'9rN?0N~>
-mJd^oo&\KIa2Q$<cIh1Do_\XSrri5`f&$)irrW/kkkj?Mk4/?Ks7kj<kOSTOs8)-DqViOVmJ?k^
-qsik0j66%1rqYpAj5oUtqYp?\lKRX*qu-O?rU]75j65q(qu6WpqX3J)j6?47rqGd?j5oUtqYp?[
-l07R,rV-=/rUf@7j6#e*rql3Ij5fIoq#:0]lfmd.r;Q^2rqc'EioB7kpAFphqsin.gY_/]p\k$i
-"o\)WgsX=C`<XK0fAPrcqu6Ek#6";aimuAprl#)_d+d^Qqu6Nn!r_obrp^'\q#0pd$i^"om-<j"
-lKn'9rN?0N~>
-mJd^oo&\KIa2Q$<cIh1Do_\XSrri5`f&$)irrW/kkkj?Mk4/?Ks7kj<kOSTOs8)-DqViOVmJ?k^
-qsik0j66%1rqYpAj5oUtqYp?\lKRX*qu-O?rU]75j65q(qu6WpqX3J)j6?47rqGd?j5oUtqYp?[
-l07R,rV-=/rUf@7j6#e*rql3Ij5fIoq#:0]lfmd.r;Q^2rqc'EioB7kpAFphqsin.gY_/]p\k$i
-"o\)WgsX=C`<XK0fAPrcqu6Ek#6";aimuAprl#)_d+d^Qqu6Nn!r_obrp^'\q#0pd$i^"om-<j"
-lKn'9rN?0N~>
-li.%cq=O[V"7l-]roa:`r:fsaJcF:#!r`#ppAY6oqtK[[nH8@Tq>Kma"9&&fo)A.]o(Mt[LAuc~>
-li.%cq=O[V"7l-]roa:`r:fsaJcF:#!r`#ppAY6oqtK[[nH8@Tq>Kma"9&&fo)A.]o(Mt[LAuc~>
-li.%cq=O[V"7l-]roa:`r:fsaJcF:#!r`#ppAY6oqtK[[nH8@Tq>Kma"9&&fo)A.]o(Mt[LAuc~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-JcC<$JcFs6J,~>
-%%EndData
-showpage
-%%Trailer
-end
-%%EOF
diff --git a/docs/draknet_advanced_doc.txt b/docs/draknet_advanced_doc.txt
deleted file mode 100644
index a0c0c63e0..000000000
--- a/docs/draknet_advanced_doc.txt
+++ /dev/null
@@ -1,165 +0,0 @@
-This document details the entry points you can call without the DrakX graohical
-toolkit. First, the general variables you will encounter further. If you don't
-know wht a variable is, look here. Any additional locally variables are
-commented 'in place'
-
-------------------------------
-Special types (in upper cases)
-------------------------------
- DB_FILE : file storing the ISDN ISP database. see share/isdndb.txt : file of lines in 'Unlisted - edit manually' or /^(.*)\|(.*)\|(.*)=>([0-9]*)=>(.*)=>(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})=>(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/ where $1=Land $2=City $3=ISP_name $4=phone_number $5=hostname $6=dns1 $7=dns2
-
----------------------------------------------------------------------------------------
-Summary of common variables used (local variables are described in the function itself)
----------------------------------------------------------------------------------------
-notation : keys : description : type : format (regexp or enumeration. `...' means it's not exhaustive
- $prefix : prefix path (empty in post-install) : string : path
- $isLaptop : flag for laptop : boolean or int : guess
- $isdn : hash table containing isdn infos
- $isdn->{login} : cnx login : string
- $isdn->{passwd} : cnx passwd : string
- $isdn->{phone_in} : user phone : /^[0-9]*$/
- $isdn->{phone_out} : ISP phone : /^[0-9]*$/
- $isdn->{dialing_mode} : dialing mode : "auto" or "manual"
- $isdn->{driver} : driver used for the card : "hisax" or "b1pci" or ...
- $isdn->{type} : type of card, used for the driver, see netconnect_consts : integer : /^[1-22]|[24-37]$/
- $isdn->{irq} : irq of the ISA card : integer |
- $isdn->{mem} : mem of the ISA card : string |
- $isdn->{io} : io of the ISA card : string | see netconnect_consts for examples.
- $isdn->{io0} : io0 of the ISA card : string |
- $isdn->{io1} : i01 of the ISA card : string |
- $isdn->{idl} : amount of time after the cnx times out in secs : int
- $isdn->{user_name} : not used anymore. Not explicit. It represented the name of the connexion.
- $isdn->{card_type} : card type : string : "isa" or "pci" or "pcmcia"
- $isdn->{protocol} : cnx protocol : int : 1|2|3 : 1 for old german specific (not used anymore), 2 for europe, 3 for rest of the world
- $isdn->{id} : card id. Associated with vendor, identify strictly the card. see pcitable : integer
- $isdn->{description} : card description from pcitable : string
- $isdn->{vendor} : card vendor : integer
- $isdn->{passwd2} : passwd verification : string
- $modem : hash table containing modem infos
- $modem->{device} : device of the modem : string : /ttyS[0-9]/
- $adsl : hash table containing modem infos
- $adsl->{login} : cnx login : string
- $adsl->{passwd} : cnx passwd : string
- $adsl->{atboot} :
- $netc : hash table containing system-wide networking infos (maybe not true, correct this) :
- $netc->{NET_DEVICE}
- $netc->{dnsServer2}
- $netc->{dnsServer3}
- $netc->{DOMAINNAME2}
- $netc->{NET_INTERFACE} is set to "ppp0"
- $in : interactive object
-
-------------
-Entry points
-------------
-
-isdn_write_config_backend : write isdn info, only for ippp0 -> ask_connect_now
-input :
- $prefix
- $isdn
-$isdn input:
- $isdn->{login} $isdn->{passwd} $isdn->{phone_in} $isdn->{phone_out} $isdn->{dialing_mode}
- $isdn->{driver} $isdn->{type} $isdn->{irq} $isdn->{mem} $isdn->{io} $isdn->{io0} $isdn->{io1}
-
-write_secret_backend : write login and passwd into /etc/ppp/{chap, pap}-secrets. Replace old passwd only if same login
-input :
- $a : login : string : /^.*$/
- $b : passwd : string : /^.*$/
-
-connect_backend : launch the cnx script
-input : $prefix
-
-connect_backend : launch the cnx script
-input : $prefix
-
-read_providers_backend : build the tree of isdn ISP
-input :
- $file : 1st location of the file : ISDN_DB_FILE
- $file2 : 2nd location of the file : ISDN_DB_FILE
-output : the list of ISP : array of strings : array of /^(.*)\|(.*)\|(.*)$/ where $1=Land $2=City $3=ISP_name
-
-get_info_isdn_backend : fills the infos from the line of the tree returned into $isdn and $netc
-input :
- $isdn
- $netc
- $name : the line choosen in the tree of ISP : string : /^(.*)\|(.*)\|(.*)$/ with $1=Land $2=City $3=ISP_name
- $file : 1st location of the file : ISDN_DB_FILE
- $file2 : 2nd location of the file : ISDN_DB_FILE
-$isdn ouput
- $isdn->{user_name}, $isdn->{phone_out}, $netc->{DOMAINNAME2}, $netc->{dnsServer2}, $netc->{dnsServer3},
-$netc output
- $netc->{DOMAINNAME2}, $netc->{dnsServer2}, $netc->{dnsServer3}
-
-isdn_detect_backend : detects isdn pci card and fills the infos in $isdn : only detects one card
-input
- $isdn
-$isdn output:
- $isdn->{description} $isdn->{vendor} $isdn->{id} $isdn->{driver} $isdn->{card_type} $isdn->{type}
-
-isdn_get_list : return isdn cards descriptions list. This function is not use internally.
-output : descriptions : list of strings
-
-isdn_get_info : return isdn card infos. This function is not use internally.
-input : the description of the card (see isdn_get_list)
-output : a reference on the decription of the card. : ref on a hash(description,type,irq,mem,io,io0,io1card,)
-
-conf_network_card_backend : configure the network cards and return the list of them, or configure one specified interface : WARNING, you have to setup the ethernet cards, by calling setup_thiskind($in, 'net', !$::expert, 1) or setup_thiskind_backend before calling this function. Basically, you call this function in 2 times.
-input
- $prefix
- $netc
- $intf
- $type : type of interface, must be given if $interface is : string : "static" or "dhcp"
- $interface : facultative, if given, set this interface and return it in a proper form. If not, return @all_cards
- $ipadr : facultative, ip address of the interface : string
- $netadr : facultative, netaddress of the interface : string
-when $interface is given, informations are written in $intf and $netc. If not, @all_cards is returned.
-$intf output: $device is the result of
- $intf->{$device}->{DEVICE} : which device is concerned : $device is the result of $interface =~ /(eth[0-9]+)/; my $device = $1;;
- $intf->{$device}->{BOOTPROTO} : $type
- $intf->{$device}->{NETMASK} : '255.255.255.0'
- $intf->{$device}->{NETWORK} : $netadr
- $intf->{$device}->{ONBOOT} : "yes"
-$netc output:
- $netc->{nb_cards} : nb of ethernet cards
- $netc->{NET_DEVICE} : this is used to indicate that this eth card is used to connect to internet : $device
-output:
- $all_cards : a list of a list ( (eth1, module1), ... , (ethn, modulen)). Pass the ethx as $interface in further call.
- $device : only returned in case $interface was given it's $interface, but filtered by /eth[0-9+]/ : string : /eth[0-9+]/
-
-adsl_conf_backend : write adsl configuration
-input :
- $prefix
- $adsl
- $netc
- $adsl_type : type of cnx : string : "pptp" or "pppoe"
-$adsl input:
- $adsl->{login}, $adsl->{passwd}, $adsl->{atboot}
-$netc input:
- $netc->{NET_DEVICE}
- $netc->{dnsServer2}
- $netc->{dnsServer3}
- $netc->{DOMAINNAME2}
-$netc output:
- $netc->{NET_INTERFACE} is set to "ppp0"
-
-modem_detect_backend : detects modem on serial ports and fills the infos in $modem : detects only one card
-input
- $modem
- $mouse : facultative, hash containing device to exclude not to test mouse port : ( device => /ttyS[0-9]/ )
-output:
- $modem->{device} : device where the modem were detected
-
-get_net_device : return the device choosen for the net cnx
-no input
-output : name of the internet device.
-
-read_net_conf : read the information stored in $prefix/etc/sysconfig/draknet and $prefix/etc/sysconfig/draknet.`type`
-input:
- $prefix
- $netcnx
- $netc
-
-set_net_conf : set the information from netcnx in $prefix/etc/sysconfig/draknet and $prefix/etc/sysconfig/draknet.`type`
- $prefix
- $netcnx
- $netc : useless! REMOVE ME
diff --git a/docs/interactive/ask_from b/docs/interactive/ask_from
deleted file mode 100755
index dad69247e..000000000
--- a/docs/interactive/ask_from
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/perl
-# Yves Duret <yduret at mandrakesoft.com>
-# license: GPL
-
-use lib qw(/usr/lib/libDrakX);
-use interactive;
-
-my $irq=1;
-my $login;
-my $login2="editable";
-my $check;
-my $range=57;
-
-my $in = 'interactive'->vnew(undef, 'default');
-
-$in->ask_from("window title - ask_from",
- "message\nexamples of utilisation of ask_from",
- [
- { label => "enter scalar", val => \$irq },
- { label => "combo (type=>combo optionnal)", val => \$login, list => ['Netherlands', 'France', 'Belgium', 'Italy', 'UK'], type => 'combo'},
- { label => "choose from list editable and sorted", val => \$login2, list => ['Netherlands', 'France', 'Belgium', 'Italy', 'UK'], not_edit => 0, sort => 1},
- { label => "check box", val => \$check, type => "bool", text => "text" },
- { label => "range", val => \$range, type => 'range', min => 0, max => 100 },
- ],
- complete => sub { print "complete\n";print "$irq\n$login\n$range\n"; },
-# focus_out => sub { print "focus_out\n"},
-# changed => sub { print "changed\n"; },
- ) or $in->exit(0);
-$in->exit(0);
diff --git a/docs/interactive/ask_from_list b/docs/interactive/ask_from_list
deleted file mode 100755
index 63c0ee996..000000000
--- a/docs/interactive/ask_from_list
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/usr/bin/perl
-# Yves Duret <yduret at mandrakesoft.com>
-# license: GPL
-
-use lib qw(/usr/lib/libDrakX);
-use common;
-use interactive;
-
-my %l = (
- 0 => "Welcome To Crackers",
- 1 => "Poor",
- 2 => "Low",
- 3 => "Medium",
- 4 => "High",
- 5 => "Paranoid",
- );
-
-my $in = 'interactive'->vnew(undef, 'default');
-
-my $level = $in->ask_from_list("window title - ask_from_list",
- "radio button\nexamples of utilisation of ask_from_list",
- [ values %l ], $l{2}
- ) or $in->exit(0);
-
-print "$level\n";
-$in->exit(0);
-
diff --git a/docs/interactive/ask_from_listf b/docs/interactive/ask_from_listf
deleted file mode 100755
index 077540b49..000000000
--- a/docs/interactive/ask_from_listf
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/usr/bin/perl
-# Yves Duret <yduret at mandrakesoft.com>
-# license: GPL
-
-use lib qw(/usr/lib/libDrakX);
-use interactive;
-use Data::Dumper;
-
-my $in = 'interactive'->vnew(undef, 'default');
-
-my @m=(
- { description => "dhcpcd",
- c => 1},
- { description => "dhcpxd",
- c => 3},
- { description => "dhcp-client",
- c => 4},
- );
-my $f = $in->ask_from_listf(_("ask_from_listf"),
- _("Which dhcp client do you want to use?\nDefault is dhcpcd"),
- sub { $_[0]{description} },
- \@m );
-
-print Data::Dumper->Dump([$f],['f']) . "\n";
-
-$in->exit(0);
-
diff --git a/docs/interactive/ask_from_treelist b/docs/interactive/ask_from_treelist
deleted file mode 100755
index ade7141d4..000000000
--- a/docs/interactive/ask_from_treelist
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/usr/bin/perl
-# Yves Duret <yduret at mandrakesoft.com>
-# license: GPL
-
-use lib qw(/usr/lib/libDrakX);
-use common;
-use interactive;
-
-my $in = 'interactive'->vnew(undef, 'default');
-my $foo = $in->ask_from_treelist("window title - ask_from_treelist",
- "message\nexamples of utilisation of ask_from_treelist",
- '|',
- ['Custom',
- 'Other|Unlisted',
- 'Matrox|Millennium II=>Matrox Millennium II',
- 'Matrox|Millennium G200=>Matrox Millennium G200',
- 'Matrox|Millennium G400=>Matrox Millennium G400',
- 'Matrox|Millennium G450=>Matrox Millennium G450',
- 'Matrox|Millennium G550=>Matrox Millennium G550',
- 'Sun|FFB 67MHz Creator=>Sun FFB 67MHz Creator',
- 'Sun|FFB 67MHz Creator 3D=>Sun FFB 67MHz Creator 3D',
- 'Sun|FFB 75MHz Creator 3D=>Sun FFB 75MHz Creator 3D',
- ],
- 'Custom'
- ) or $in->exit(0);
-print "$foo\n";
-$in->exit(0);
diff --git a/docs/interactive/wait_message b/docs/interactive/wait_message
deleted file mode 100755
index 0caec4471..000000000
--- a/docs/interactive/wait_message
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/usr/bin/perl
-# Yves Duret <yduret at mandrakesoft.com>
-# license: GPL
-
-use lib qw(/usr/lib/libDrakX);
-use interactive;
-
-my $in = 'interactive'->vnew(undef, 'default');
-my $wait = $in->wait_message('wainting title', _("Moving files to the new partition"));
-sleep(3);
-$wait->set(_("Removing"));
-sleep(3);
-$in->exit(0);
diff --git a/docs/mdk-vs-redhat b/docs/mdk-vs-redhat
deleted file mode 100644
index 4d0de8223..000000000
--- a/docs/mdk-vs-redhat
+++ /dev/null
@@ -1,43 +0,0 @@
-+ Open Development (at least DrakX)
-+ UDMA66 (HPT366)
-+ gamerz
-+ number of packages
-+ better packages(?)
-+ no automatic handling of ide burners
-+ urpmi/rpmdrake
-+ XFdrake
-+ no newbie install
-+ reiserfs
-+ fat resizing
-+ 3D handling (eg: Voodoo3)
-+ diskdrake (vs diskdruid)
-+ usb storage (?)
-+ KDE2
-+ faces in kdm/gdm
-+ menu
-+ alternatives
-+ /etc/emacs/site-start.d
-+ default config
-+ i18n (bootloader keyboard)
-
-+ More user-friendliness in general:
- + you can choose between multiple net devices when more than one are
- detected
- + you are presented with the media descriptions (disks, cdrom's)
- when you must choose between multiple media, and not only "sda",
- "hdc", ..
- + when installing from a disk partition, you are presented with an
- extract of the directory contents when you fail to give the
- correct location, which is very helpful to correct the input
- instead of simply rebooting to remember where on earth you
- mirrored the distribution on your disks
-
-+ Automatic mode (Redhat's equivalent is called "kickstart") is not
- performed according to a file on the floppy but from kernel parameters,
- which have many pros, among them: (1) we don't need the vfat filesystem
- for that purpose, and (2) with advanced bootloaders such as grub and
- lilo you can edit parameters on the fly at boot time.
-
-- no LABEL= in fstab (for auto renumbering of devices)
-- kerberos
-- LDAP
diff --git a/docs/net_object_class.fig b/docs/net_object_class.fig
deleted file mode 100644
index 19f7f5318..000000000
--- a/docs/net_object_class.fig
+++ /dev/null
@@ -1,73 +0,0 @@
-#FIG 3.2
-Landscape
-Center
-Inches
-Letter
-100.00
-Single
--2
-1200 2
-1 1 0 1 0 7 50 0 -1 0.000 1 0.0000 4050 4162 675 338 4050 4162 4725 4500
-1 1 0 1 0 7 50 0 -1 0.000 1 0.0000 5700 3112 675 338 5700 3112 6375 3450
-1 1 0 1 0 7 50 0 -1 0.000 1 0.0000 7275 4087 675 338 7275 4087 7950 4425
-1 1 0 1 0 7 50 0 -1 0.000 1 0.0000 4800 1462 975 487 4800 1462 5775 1950
-1 1 0 1 0 7 50 0 -1 0.000 1 0.0000 2700 3112 675 338 2700 3112 3375 3450
-1 1 0 1 0 7 50 0 -1 0.000 1 0.0000 4875 5887 975 487 4875 5887 5850 6375
-1 1 0 1 0 7 50 0 -1 0.000 1 0.0000 9450 5062 675 338 9450 5062 10125 5400
-1 1 0 1 0 7 50 0 -1 0.000 1 0.0000 4654 4038 3900 3225 4654 4038 754 813
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 4125 1875 3225 2850
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 4575 1950 4200 3750
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 5250 1950 5475 2775
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 3000 3450 3600 3900
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 5925 3450 6675 3900
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 2700 3450 4050 5550
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 4125 4500 4575 5400
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 5625 3450 5025 5400
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 5775 1575 9450 4725
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 7800 4275 9000 4800
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 4800 1950 4800 5400
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 9000 975 9450 4725
-2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
- 7500 75 10687 75 10687 975 7500 975 7500 75
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 7500 375 5400 1050
-2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
- 0 0 1.00 60.00 120.00
- 5550 1800 7200 3675
-4 0 0 50 0 0 12 0.0000 4 135 885 4350 1500 Netconnect\001
-4 0 0 50 0 0 12 0.0000 4 135 435 2475 3150 ISDN\001
-4 0 0 50 0 0 12 0.0000 4 135 720 3675 4200 MODEM\001
-4 0 0 50 0 0 12 0.0000 4 135 960 6825 4125 ETHERNET\001
-4 0 0 50 0 0 12 0.0000 4 135 480 5400 3150 ADSL\001
-4 0 0 50 0 0 12 0.0000 4 135 420 4650 5925 Tools\001
-4 0 0 50 0 0 12 0.0000 4 135 660 9150 5100 Network\001
-4 0 0 50 0 0 12 0.0000 4 135 1305 8400 375 Rest of the world\001
-4 0 0 50 0 0 12 0.0000 4 180 2595 7725 600 (draknet, printerdrake, tinyfirewall\001
-4 0 0 50 0 0 12 0.0000 4 180 2310 7725 825 ftp, http, net_monitor, drakgw)\001
-4 0 0 50 0 0 12 0.0000 4 195 2760 3525 6825 Global variables $in, $prefix, $install\001
-4 0 0 50 0 0 12 0.0000 4 180 2340 3525 7050 shared with the module globals\001
diff --git a/docs/object_class.fig b/docs/object_class.fig
deleted file mode 100644
index 44fd3fe89..000000000
--- a/docs/object_class.fig
+++ /dev/null
@@ -1,32 +0,0 @@
-#FIG 3.2
-Landscape
-Center
-Inches
-Letter
-100.00
-Single
--2
-1200 2
-2 1 0 1 0 7 100 0 -1 0.000 0 0 -1 0 0 2
- 2625 1200 2625 1725
-2 1 0 1 0 7 100 0 -1 0.000 0 0 -1 0 0 2
- 7575 1125 7575 1650
-2 1 0 1 0 7 100 0 -1 0.000 0 0 -1 0 0 2
- 7575 2100 4350 3225
-2 1 0 1 0 7 100 0 -1 0.000 0 0 -1 0 0 2
- 5025 2025 4350 3225
-2 1 0 1 0 7 100 0 -1 0.000 0 0 -1 0 0 2
- 2625 2100 4350 3225
-2 1 0 1 0 7 100 0 -1 0.000 0 0 -1 0 0 2
- 5025 2025 6075 4125
-2 1 0 1 0 7 100 0 -1 0.000 0 0 -1 0 0 2
- 2625 1200 4950 1725
-2 1 0 1 0 7 100 0 -1 0.000 0 0 -1 0 0 2
- 7575 1125 4950 1725
-4 0 0 100 0 0 12 0.0000 4 180 1755 1800 1050 install_steps_gtk\001
-4 0 0 100 0 0 12 0.0000 4 180 1440 6900 975 install_steps_stdio\001
-4 0 0 100 0 0 12 0.0000 4 180 1140 2100 1950 interactive_gtk\001
-4 0 0 100 0 0 12 0.0000 4 180 1275 6900 1950 interactive_stdio\001
-4 0 0 100 0 0 12 0.0000 4 180 1875 4125 1950 install_steps_interactive\001
-4 0 0 100 0 0 12 0.0000 4 135 810 3975 3450 interactive\001
-4 0 0 100 0 0 12 0.0000 4 180 975 5625 4350 install_steps\001
diff --git a/docs/spec-DrakX-8.0.html b/docs/spec-DrakX-8.0.html
deleted file mode 100644
index 3fd545447..000000000
--- a/docs/spec-DrakX-8.0.html
+++ /dev/null
@@ -1,405 +0,0 @@
-<html><head><title>DrakX Specification for Linux-Mandrake 8.0</title></head>
-<body bgcolor="#FFFFFF" link="#0066FF" vlink="#0066FF" alink="#FF0000">
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-<tr>
-<td bgcolor="#99AAFF"><h2 align="left">DrakX Specification for Linux-Mandrake 8.0</h2></td></tr>
-<tr><td valign="top">
-Current team of Install group is :
-<p>
-<table cellpadding="2" cellspacing="2" border="1" width="30%">
-<tbody>
-<tr valign="Top">
-<td valign="Top">gc
-
-</td>
-</tr>
-<tr valign="Top">
-<td valign="Top">damien
-
-</td>
-</tr>
-<tr valign="Top">
-<td valign="Top">fpons
-
-</td>
-</tr>
-<tr valign="Top">
-<td valign="Top">pixel
-
-</td>
-</tr>
-</tbody>
-</table>
-<p>
-
-<pre>
-
- <b>Boot process (stage1)</b>
-
- Installation begin by booting from CD-ROM or Diskette. From CD-ROM all
-installation method are available (CD, HD, NFS, FTP, HTTP) on options. From
-Diskette according to image selected, only some related method (network or cdrom
-or hd) are available and module managed due to size limitation to 1.44Mb.
- Options are always available by pressing on F1.
-
- <b>DrakX process (stage2)</b>
-
- DrakX installation organized in steps (execution sequence described below).
-Steps listed on left side and help available on bottom right side. most of the
-screen is available for various dialog for interacting with the user. Steps
-execution sequence is automated and described below.
-
-Mouse is probed and if none has been found or if the mouse has not moved, a
-specific mouse configuration is displayed at the begining.
-
-
-Before the graphical steps, there is a detection step. It detects various
-hardware, including modems (from tty0 to tty7), mouse (serial, usb, ps/2) and
-tablets.
-
- <b>Steps</b>
-
- <i>Choose Your language</i>: step always displayed. default choice is previous one or
-<font color="#000080"><i>English</i></font>. After choosing a language, a license splash screen translated in the
-chosen language is displayed with <font color="#000080"><i>Accept</i></font> and <font color="#000080"><i>Refuse</i></font> buttons. <font color="#000080"><i>Refuse</i></font> should
-stop installation. <font color="#000080"><i>Accept</i></font> validate language choice which are propagated to all
-DrakX visible widget. Advanced mode allow to select other language available to
-be installed. Advanced mode allow to select language which will be installed on
-system.
- If step is redone, the license is no more displayed.
-
- <font color="#000080"><i>Select Install Class</i></font>: step always displayed. default choice is previous one
-or <font color="#000080"><i>Recommended</i></font>. Only one other option available is <font color="#000080"><i>Customized</i></font>. Two buttons
-available are <font color="#000080"><i>Install</i></font> or <font color="#000080"><i>Upgrade</i></font>. Available steps (left side) are changed
-according to installation class selected, where the default is the one of
-<font color="#000080"><i>Recommended</i></font> with <font color="#000080"><i>Install</i></font>.
-
- <font color="#000080"><i>Hard Drive Detection</i></font>: step always displayed. In recommended mode,
-automatically done. In Customized mode, all modules that manage SCSI/IDE cards
-are loaded automatically and a question asking for other module to load is
-displayed.
- If clicked later or if to the question to load other module the
-answer is <font color="#000080"><i>Yes</i></font>, a list of module is displayed (or if the question to other
-module to load is. When a module is chosen, two options are available
-<font color="#000080"><i>Autoprobe</i></font> and <font color="#000080"><i>Specify options</i></font>. Autoprobe try to load the module without any
-other user options (default module parameter). Specify options allow user to
-give module parameters individually in a list for all known parameters. At this
-point <font color="#000080"><i>Ok</i></font> or <font color="#000080"><i>Cancel</i></font> are available, Cancel should stop the module installation
-and go to next step. If any error occurs during module installation, a question
-asking to try with other parameter is displayed, the same module is still used.
-
- <font color="#000080"><i>Setup filesystems</i></font>: step always displayed. display a list of available choice
-accoding to what has been probed. May contains <font color="#000080"><i>Use free space</i></font>, "Use existing
-partition<font color="#000080"><i>, </i></font>Use the window partition for loopback<font color="#000080"><i>, </i></font>Use the free space on the
-Windows partition<font color="#000080"><i>, </i></font>Remove Windows(TM)<font color="#000080"><i>|</i></font>Erase entire disk" (according to disk
-configuration =&gt; only one big fat for the first case only), "Custom disk
-partitioning".
- If <font color="#000080"><i>Use free space</i></font> mode, auto allocation in available on available disk.
- If <font color="#000080"><i>Use existing partition</i></font> mode, a list of partition named in Linux
-scheme are displayed with their approximate size in Mb and propose mount point
-to choose in list boxes for each partitions available on hard drive.
- If <font color="#000080"><i>Use the window partition for loopback</i></font> mode, DrakX use available size
-on the windows partition to create a root file and a swap file which will be
-used in loopback, this means this is a lnx4win installation.
- If <font color="#000080"><i>Use the free space on the Windows partition</i></font> mode, DrakX will resize
-the windows partition and allocate true linux filesystem (at least / and swap).
- If <font color="#000080"><i>Remove Windows(TM)</i></font>|<font color="#000080"><i>Erase entire disk</i></font> mode, DrakX clean the
-partition table before auto allocating partition.
- If <font color="#000080"><i>Custom disk partitioning</i></font> mode, diskdrake is launch. TO BE DEFINED to
-change make diskdrake use only advanced mode.
-Diskdrake show all partition of all non-removable disk graphically. All special
-partition are hidden, only user accessible partition are visible: this remove
-extended partition, whole disk partition on sparc platform. Clicking on a disk
-notebook tab show all his partitions. Clicking on a partition show all actions
-available for this partition (depend if customized or advanced mode) as well as
-information on this partition (depend if customized or advanced mode). Most
-diskdrake operation are done without writing on disk (exception are Resizing
-partitions) and everything is written once on the disk when exiting diskdrake,
-at any time if writing partition table is necessary, there are always a dialog
-box asking the user to confirm the write. If no operation are modifying
-partition table, no dialog is displayed on exit (for example if giving mount
-point to partition). General action are available too:
- <font color="#000080"><i>Clear All</i></font>: clear all partition of the given disk.
- <font color="#000080"><i>Auto allocate</i></font>: try to allocate partition in available disk (not the
-seen disk).
- <font color="#000080"><i>Undo</i></font>: undo last operation.
- <font color="#000080"><i>Done</i></font>: quit and save changes.
-Other operations are available in advanced mode:
- <font color="#000080"><i>Rescue partition table</i></font>: try to rescue a lost partition table,
-absolutely no garantee to succeed and may destroy what could be saveable by
-another tools.
- <font color="#000080"><i>Reload</i></font>: reload partition table from disk, erasing all changes in
-memory done by the user.
- <font color="#000080"><i>Wizard</i></font>: go to partition wizard, that the partition filesystems default
-behaviour on startup.
- <font color="#000080"><i>Restore from floppy</i></font>: restore a partition table from previously saved
-partition table from diskdrake.
- <font color="#000080"><i>Save to floppy</i></font>: save partition table to floppy.
- <font color="#000080"><i>Options</i></font>: global options available for filesystem configuration. This
-include <font color="#000080"><i>Removable media automouting supermount</i></font> check box disabled by default.
- Operation available on partition are:
- <font color="#000080"><i>Mount point</i></font>: change or define mount point for partition, only
-available for true filesystem partition.
- <font color="#000080"><i>Resize</i></font>: resize partition, if a specific algorithm to keep data is
-used no data may be lost, else all data are lost but nothing is written by
-diskdrake on the partition data in this last case (this means data can be
-restored by restoring original size and location).
- <font color="#000080"><i>Delete</i></font>: delete partition, if the same partition is created (same type,
-location, size) all data can be restored as diskdrake doesn't write on partition
-data.
- Operation available on partition table but in advanced mode are:
- <font color="#000080"><i>Type</i></font>: change type of partition, all data will be lost but diskdrake as
-above does not destroy them, and everyting can be restored.
- <font color="#000080"><i>Format</i></font>: format partition, at this point, all data ARE LOST.
- <font color="#000080"><i>Mount</i></font>: mount partition now, usefull for swap to increase memory
-capacity for machine low on resource that are not available to complete setup
-filesystem step correctly (problably if a resize partition is used on FAT fs).
-allow Mounting swap on customized mode too.
- A legend for partition type colors is available
-(Ext2,ReiserFS,Swap,FAT,Other,Empty). It has additionnal features to create a
-partition or change its type (only available in advanced mode).
-
- <font color="#000080"><i>Format partitions</i></font>: step always displayed. display list of partition to
-format with click boxes. Some are defined according to type of partitions and if
-the partition has been created or taken back.
-If a partition has already been formated, it is not proposed, or if it should
-not be proposed (alrady existing partition like /mnt/windows).
-On Advanced tag, an additional dialog is displayed to select partition to format
-(all available partition listed) and to format them with bad block checking.
-
- <font color="#000080"><i>Choose packages</i></font>: step always displayed. default selection done to be
-<font color="#000080"><i>correct</i></font> according to size available, Install or Upgrade, Hardware available.
-This selection is done according to <font color="#000080"><i>Mandrake first choice</i></font> of packages.
-On all mode, display groups and main desktop used (KDE or Gnome), an
-individual package selection check box is available to allow selecting package
-individually. In this case, a dialog displaying a tree with groups, (Mandrake
-first choice/alternatives) and packages is shown on the left part, a description
-window for each packages is shown on the right part.
-
- <font color="#000080"><i>Install system</i></font>: step always displayed. no interactive and display
-installation progression. include if available and on a CD basis a spash screen
-of advertising and other (pub!).
-
- <font color="#000080"><i>Hardware panel</i></font>: step always displayed. show current configuration for
-Mouse, Keyboard, TimeZone, Graphic/TV Card, Monitor.
-At each values chosen (list boxes displayed a
-synthesis description) the current dialog is removed from screen and specific
-configuration panels are displayed (like currently for mouse, keyboard ...).
-And end of these specific configuration panels, this one is remapped on screen
-to be accepted in general.
-
- <b>Sub steps of Hardware panel:</b>
-
- <font color="#000080"><i>Configure mouse</i></font>: displayed on request or if the mouse has not been
-moved (so unsafe detection), but have to be displayed earlier. A mouse tree
-selection for type is displayed with default case as what is probed or
-<font color="#000080"><i>serial/Generic 2 button Mouse</i></font> if none has been probed. <font color="#000080"><i>Cancel</i></font> disable mouse
-modification and <font color="#000080"><i>Ok</i></font> allow next mouse configuration dialog. Then comes a serial
-port dialog for serial mice (default mouse connected to COM1 if nothing found).
-Then a mouse screen control is chown (according to mouse capacity: 3 buttons
-with or without mouse, need 7 buttons checking ?). Here <font color="#000080"><i>Ok</i></font> validate to go to
-next step and <font color="#000080"><i>Cancel</i></font> to first mouse dialog displayed (mouse tree selection for
-type).
-
- <font color="#000080"><i>Configure keyboard</i></font>: displayed on request. default is set according to
-TimeZone definition (itself defaulting to language selection at the beginning).
-A list of keyboard is shown to the user and <font color="#000080"><i>Ok</i></font> validates change and return to
-<font color="#000080"><i>Hardware panel</i></font> dialog with enabled change. <font color="#000080"><i>Cancel</i></font> abort any modification and
-return to the same <font color="#000080"><i>Hardware panel</i></font> dialog.
-
- <font color="#000080"><i>Configure timezone</i></font>: displayed on request. default is set according to
-language selection. A timezone tree selection is shown with only the subtree
-corresponding to the current selection expanded (as other tree dialog). <font color="#000080"><i>Ok</i></font>
-validates change and return to <font color="#000080"><i>Hardware panel</i></font> dialog whereas <font color="#000080"><i>Cancel</i></font> avoid
-the change before returning to the same main dialog.
-
- <font color="#000080"><i>Graphic Card</i></font>: display graphic card probed. No change available.
-
- <font color="#000080"><i>TV Card</i></font>: display TV/Tuner card probed. No change available.
-
- <font color="#000080"><i>Monitor</i></font>: need execution of ddcxinfos at this point. Only Size, Max
-resolution and depth displayed. No change available.
-
-
- Miscellaneous step have been removed and dispatched to other steps. "Use
-hard drive optimisation<font color="#000080"><i> and </i></font>Enable num lock at startup<font color="#000080"><i> are removed. </i></font>Choose
-security level<font color="#000080"><i> is moved to security step. </i></font>Precise RAM size if needed" and
-<font color="#000080"><i>Clean /tmp at each boot</i></font> are moved to bootloader step.
-<font color="#000080"><i>Removable media automouting</i></font> is moved to diskdrake options.
-
- <font color="#000080"><i>Security</i></font>: step displayed only in customized mode. TO BE DEFINED. should
-display at least securty level to choose. level are <font color="#000080"><i>Low</i></font>, <font color="#000080"><i>Medium</i></font>, <font color="#000080"><i>High</i></font> and
-for advanced there are <font color="#000080"><i>Welcome To Crackers</i></font>, <font color="#000080"><i>Poor</i></font>, <font color="#000080"><i>Paranoid</i></font> too.
-
- <font color="#000080"><i>Configure networking</i></font>: step always displayed. dialog always displayed in
-both <font color="#000080"><i>Recommended</i></font> and <font color="#000080"><i>Customized</i></font> mode. A list of network configuration
-entries are shown with the following:
- <font color="#000080"><i>Configure a normal modem connection</i></font>
- <font color="#000080"><i>Configure an ISDN connection</i></font>
- "Configure a DSL (or ADSL) connection
- <font color="#000080"><i>Configure a cable connection</i></font>
- <font color="#000080"><i>Configure local network</i></font>|<font color="#000080"><i>Reconfigure local network</i></font>
- <font color="#000080"><i>Disable networking</i></font>|<font color="#000080"><i>Enable networking</i></font>
- <font color="#000080"><i>Done</i></font>
- By cliking on a specific item, another dialog is displayed to configure
-some specific part of the network.
- <font color="#000080"><i>Configure a normal modem connection</i></font>: display a question to probe for a
-modem if not already detected, then if none are found or probe has been refused
-a list of possible serial device are listed (in the form ttySx / COM(x+1) with
-the current mouse device removed if it is serial). After that a dialog including
-all parameters than can be used is shown. This includes <font color="#000080"><i>Connection Name</i></font>,
-<font color="#000080"><i>Phone number</i></font>, <font color="#000080"><i>Login ID</i></font>, <font color="#000080"><i>Password</i></font>, <font color="#000080"><i>Authentication</i></font>, <font color="#000080"><i>Domain name</i></font>, <font color="#000080"><i>DNS 1</i></font>
-and <font color="#000080"><i>DNS 2</i></font>. Authentication is a combo of <font color="#000080"><i>PAP</i></font>, <font color="#000080"><i>Termina-Based</i></font> and
-<font color="#000080"><i>Script-Based</i></font> (It seems necessary to get CHAP back on this one, no way of
-testing TO BE DEFINED). If no DNS are given, the connection is configured to try
-using provider DNS. <font color="#000080"><i>Ok</i></font> and <font color="#000080"><i>Cancel</i></font> button are available.
- <font color="#000080"><i>Configure an ISDN connection</i></font>:
-Try to detect some PCI card. If not detected, asks if it's a ISA/pcmcia or PCI
-card, and gives the list of the cards. Information are then asked:
-<font color="#000080"><i>Card IRQ</i></font> only if ISA/pcmcia
-<font color="#000080"><i>Card mem (DMA)</i></font> only if ISA/pcmcia
-<font color="#000080"><i>Card IO</i></font> only if ISA/pcmcia
-<font color="#000080"><i>Card IO_0</i></font> only if ISA/pcmcia with io0
-<font color="#000080"><i>Card IO_1</i></font> only if ISA/pcmcia with io1
-<font color="#000080"><i>Your personal phone number</i></font> phone
-<font color="#000080"><i>Provider name (ex provider.net)</i></font>
-<font color="#000080"><i>Provider phone number</i></font>
-<font color="#000080"><i>Provider dns 1</i></font>
-<font color="#000080"><i>Provider dns 2</i></font>
-<font color="#000080"><i>Dialing mode</i></font> auto or manual
-<font color="#000080"><i>Account Login (user name)</i></font>
-<font color="#000080"><i>Account Password</i></font> hided
-<font color="#000080"><i>Confirm Password</i></font> again
- <font color="#000080"><i>Configure a DLS (or ADSL) connection</i></font>:
-The user chooses between pptp, pppoe and dhcp. If dhcp, redirection to LAN.
-If there is more than one ethernet card, The user must choose the card to use
-(displayed with the module). After that, some informations are asked:
-<font color="#000080"><i>Provider name (ex provider.net)</i></font>
-<font color="#000080"><i>Provider dns 1</i></font>
-<font color="#000080"><i>Provider dns 2</i></font>
-<font color="#000080"><i>Account Login (user name)</i></font>
-<font color="#000080"><i>Account Password</i></font> hided
-<font color="#000080"><i>Confirm Password</i></font> again
- <font color="#000080"><i>Configure a cable connection</i></font>: redirection to LAN
- <font color="#000080"><i>Configure local network</i></font>: display what has been probed with a question
-about using another module and <font color="#000080"><i>Yes</i></font>, <font color="#000080"><i>No</i></font> and <font color="#000080"><i>See hardware info</i></font> buttons.
-<font color="#000080"><i>No</i></font> is the default. If <font color="#000080"><i>Yes</i></font> is clicked a list of modules is displayed with
-<font color="#000080"><i>Ok</i></font> or <font color="#000080"><i>Cancel</i></font> buttons available. <font color="#000080"><i>Cancel</i></font> should go back to previous
-question. If <font color="#000080"><i>See hardware info</i></font> is clicked a list of probed hardware is
-displayed. If <font color="#000080"><i>Yes</i></font> is clicked, for each ethernet interface, a dialog asking for
-IP address, Netmask and Automatic IP check box (DHCP/BOOTP) is displayed. Then
-if DHCP has been chosen, only a dialog asking for Host name and another for HTTP
-proxy and FTP proxy if any. If DHCP has not been chosen, an IP address has to be
-defined and a dialog including <font color="#000080"><i>Host name</i></font>, <font color="#000080"><i>DNS server</i></font>, <font color="#000080"><i>Gateway</i></font> and "Gateway
-device" is displayed. Then the same HTTP proxy and FTP proxy dialog as above. As
-network configuration may to have been reworked a bit it has TO BE DEFINED if
-this is kept like that or not.
- <font color="#000080"><i>Disable networking</i></font>|<font color="#000080"><i>Enable networking</i></font> is just a way to toggle
-networking on or off, may be to be accessible only for advanced mode.
- <font color="#000080"><i>Quit</i></font> exit the network step.
-
-<b>NETWORK ADVANCED DOCUMENTATION:</b>
-Here is a list of entry points available in post install without using the ugly
-install graphic toolkit:
-
-<a href=<font color="#000080"><i>http://www.mandrakesoft.com/~damien/html/draknet_advanced_doc.txt</i></font>>http://www.mandrakesoft.com/~damien/html/draknet_advanced_doc.txt</a>
-
- <font color="#000080"><i>Configure Printer</i></font>: step always displayed. In recommended mode, only
-activated if a local printer is detected, else no printer are configured by
-default. In customized mode or if the step has been clicked a list of printer
-already configured is displayed and the possibility to add or exit the
-configuration. It allow configuration of printers for both LPR and CUPS
-individually (available by advanced mode when adding a printer). Printer
-protocol managed are local/usb/samba/ncp/lpd for LPR and
-local/usb/serial/samba/lpd/cups_network for CUPS.
-
- <font color="#000080"><i>Set root password</i></font>: step always displayed for Install only. In
-recommended mode display only a <font color="#000080"><i>Password</i></font> entry and a <font color="#000080"><i>Password (again)</i></font> entry
-to select the root password. In advanced mode, a Use NIS (yellow pages) check
-boxes and Use MD5 check box are available. <font color="#000080"><i>Ok</i></font> validate root password and "No
-password<font color="#000080"><i> avoid setting a password. </i></font>No password<font color="#000080"><i> is only available in </i></font>Low"
-security level or less. The length of the minimal password depend upon security level.
-
-In corporate firewall :
- <font color="#000080"><i>Set admin password</i></font>: step always displayed for Install only. It only
- displays a <font color="#000080"><i>Password</i></font> entry and a <font color="#000080"><i>Password (again)</i></font> entry
-to select the admin password.
-The length of the minimal password depend upon security level. (double of the
- security level)
-
- <font color="#000080"><i>Add a user</i></font>: step always displayed for Install Only. In recommend mode
-display <font color="#000080"><i>Real name</i></font>, <font color="#000080"><i>User name</i></font>, <font color="#000080"><i>Password</i></font>, <font color="#000080"><i>Password (again)</i></font> and icon
-choices as graphical. For customized mode a shell combo is available to choose a
-specific shell for the user depending on the package installed. The real name is
-the user friendly name of the user whereas user name is its login id name. The
-box display user that have already been added below the title. <font color="#000080"><i>Accept user</i></font>
-button allow the creation of the user and <font color="#000080"><i>Done</i></font> finish this step. High or
-higher security level implies the creation of at least one user. Password length
-are subject to same restriction according to security level. In advanced mode,
-allow to choose the user in auto login mode.
-
- <font color="#000080"><i>Create a boot disk</i></font>: step always displayed. In recommended mode this
-step is automatically done by doing nothing. If clicked or customized mode, the
-user is prompted to allow building a boot disk (default is yes). In advanced
-mode allow selection of floppy drive.
-
- <font color="#000080"><i>Install boot loader</i></font>: step always displayed. In recommended mode this
-step is automatically done. In customized mode, a combo <font color="#000080"><i>Boot device</i></font> list the
-various boot device that can be used where the bootloader can be installed. The
-boot device can the Linux description of the whole disk available (ex: /dev/hda)
-or partition available in these disk or floppy drives. Other platform
-specificity are not listed here.
- LBA check box is displayed in advanced mode (enabled by default) to
-allow using LBA addressing if available (PC with LILO). bootloader combo to
-select a given bootloader to use, available choice are <font color="#000080"><i>Grub</i></font>, "LILO with text
-menu<font color="#000080"><i>, </i></font>LILO with graphical menu<font color="#000080"><i>. default chosen is </i></font>LILO
-with graphical menu<font color="#000080"><i>. </i></font>Delay before booting default image" entry
-field is available with default value current setting (upgrade) or 5 else.
-<font color="#000080"><i>Precise RAM size if needed (found xx MB)</i></font> entry is displayed too,
-<font color="#000080"><i>clean /tmp</i></font> check box is disabled by default too.
-Boot in graphical mode (init 5) is available here in advanced mode too
-(previously in X configuration). <font color="#000080"><i>Video mode</i></font> combo, <font color="#000080"><i>Password</i></font>, <font color="#000080"><i>Password (again)</i></font>,
-<font color="#000080"><i>Restrict command line options</i></font> check box is displayed.
-Video mode combo list text mode and video mode used for frame buffer, video mode
-used for frame buffer are available only if the install managed to boot with
-frame buffer activated. Password are restricted according to security level as
-other password. Password are mandatory according to security level TO BE DEFINED.
-
- <font color="#000080"><i>Configure X</i></font>: step always displayed. By default on recommended mode,
-everything is done automatically if possible up to test of graphic card, and if
-the user accept the settings no more question are asked to him. In customized
-mode a dialog is displayed to choose resolution, color depth and which version
-of XFree (with 3D optionally) is available for the current card where only a
-short description is displayed. <font color="#000080"><i>Ok</i></font> button allow to jump to test phase (for the
-first time only) if available. <font color="#000080"><i>Cancel</i></font> return to main XFree configuration
-window allowing to change Monitor, Graphic card, Server options or Resolution
-with X version to choose. <font color="#000080"><i>Show all</i></font> extend resolution list to more resolutions
-according to card (with onboard memory) only and no more monitor capabilities.
- The main dialog is a list of command to change some X configuration aspect
-according to advanced mode or not :
- <font color="#000080"><i>Change Monitor</i></font>: display a tree selection of monitors where default one
-is selected. <font color="#000080"><i>Ok</i></font> and <font color="#000080"><i>Cancel</i></font> buttons are available.
- <font color="#000080"><i>Change Graphic card</i></font>: display a tree selection of graphic card where
-default one is selected. <font color="#000080"><i>Ok</i></font> and <font color="#000080"><i>Cancel</i></font> buttons are available. If <font color="#000080"><i>Unlisted</i></font>
-is chosen, then a tree of server/driver is displayed containing available server
-for XF3 or driver for XF4. <font color="#000080"><i>Cancel</i></font> return to main window and <font color="#000080"><i>Ok</i></font> validates
-change.
- <font color="#000080"><i>Change Server options</i></font>: available only in advanced mode. display list
-of check boxes options for server currently used. <font color="#000080"><i>Ok</i></font> and <font color="#000080"><i>Cancel</i></font> available.
- <font color="#000080"><i>Change Resolution</i></font>: change resolution and depth including with X server
-version chosen (relative to Xdrakres too).
- <font color="#000080"><i>Show Information</i></font>: display an information dialog showing current
-configuration internals of X.
- <font color="#000080"><i>Test again</i></font>: restart test with current configuration of X.
- <font color="#000080"><i>Quit</i></font>: exit X configuration main window. Other question about autologin
-and window manager to use are asked on Add user step.
-
- <font color="#000080"><i>Exit install</i></font>: step displayed only in customized mode but always
-executed. Only a text is displayed with a <font color="#000080"><i>Ok</i></font> button. If clicked and some step
-have not been executed/completed correctly, a question dialog ask the user if he
-really want to quit now, default answer is <font color="#000080"><i>No</i></font>. Advanced switch let user access
-to do the previously <font color="#000080"><i>Auto install floppy</i></font> step in DrakX &lt; 8.0. This is just a
-question asking the user to generate an auto install floppy automatically.
-</pre>
-</body>
-</html>
diff --git a/docs/wizard.doc b/docs/wizard.doc
deleted file mode 100644
index 0bbf8d254..000000000
--- a/docs/wizard.doc
+++ /dev/null
@@ -1,31 +0,0 @@
-How to handle wizard?
-
-to switch in wizard mode:
-set $::isWizard to true;
-if $::Wizard_no_previous is set to true, the wizard won't display the previous button. Usefull for first step
-if $::Wizard_finished is set to true, the wizard will display Finish instead of Next. Usefull for last step
-
-how to code:
-Code as if there were no wizard.
-OK button is displayed as Next
-Cancel is displayed as Previous
-a additional button Cancel is added, xhich die with the exception 'wizard_cancelled'
-
-You have to handle the previous button. For example:
-
-step 1:
-ask_from list( blablablabl) or return;
-step2:
-ask_from list( blablablabl) or goto step1;
-step3:
-ask_from list( blablablabl) or goto step2;
-
-etc... You don't have to handle the wizard Cancel button as it send an exception.
-
-Understood? If yes, you'll see that there is a pb with ask_yesorno. In this case, yes+next returns true, no+next returns false, Cancel send the exception 'wizard_canceled' and previous send the exception 'wizard previous'. So you have to handle the previous button manually.
-
-plop.
-
-dam's, pour vous servir
-
-
diff --git a/isolinux-graphic.bmp b/isolinux-graphic.bmp
deleted file mode 100644
index 1c50e583e..000000000
--- a/isolinux-graphic.bmp
+++ /dev/null
Binary files differ
diff --git a/kernel/.cvsignore b/kernel/.cvsignore
deleted file mode 100644
index 827e0ba13..000000000
--- a/kernel/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-modules.description
-all.modules
-all.kernels
diff --git a/kernel/Makefile b/kernel/Makefile
deleted file mode 100644
index 90fad04b6..000000000
--- a/kernel/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-all: all.modules
-
-all.modules: ../mdk-stage1/mar/mar update_kernel list_modules.pm
- `../tools/specific_arch ./update_kernel`
-
-../mdk-stage1/mar/mar:
- make -C `dirname $@`
-
-clean:
- rm -rf *~ modules.description all.modules all.modules64
-
-check:
- perl modules.pl check > /dev/null
diff --git a/kernel/check_mar.pl b/kernel/check_mar.pl
deleted file mode 100755
index 556a0e442..000000000
--- a/kernel/check_mar.pl
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/usr/bin/perl
-
-use MDK::Common;
-
-my $mar = '../mdk-stage1/mar/mar';
--x $mar or die "ERROR: Sorry, need $mar binary\n";
-
-my %sanity_check = (
- hd => [
- qw(aic7xxx sym53c8xx initio),
- if_(arch() !~ /ppc/, 'advansys'),
- ],
- network => [
- qw(3c59x eepro100 tulip via-rhine ne2k-pci 8139too),
- if_(arch() !~ /ppc/, 'e100'),
- if_(arch() !~ /ppc|ia64/, 'tlan'),
- ],
-);
-
-my $main_version = chomp_(cat_("all.kernels/.main"));
-
-foreach (keys %sanity_check) {
- my $marfile = "all.modules/$main_version/${_}_modules.mar";
- -e $mar or die "ERROR: missing $marfile\n";
-
- my @l = map { /(\S+)\.o/ } `$mar -l $marfile`;
- my @pbs = difference2($sanity_check{$_}, \@l);
-
- @pbs and die "ERROR: sanity check should prove that " . join(" ", @pbs) . "be part of $marfile\n";
-}
diff --git a/kernel/list_modules.pm b/kernel/list_modules.pm
deleted file mode 100644
index ce9ec9765..000000000
--- a/kernel/list_modules.pm
+++ /dev/null
@@ -1,197 +0,0 @@
-package list_modules;
-
-use MDK::Common;
-
-our @ISA = qw(Exporter);
-our @EXPORT = qw(load_dependencies dependencies_closure category2modules module2category sub_categories);
-
-# the categories have 2 purposes
-# - choosing modules to include on stage1's (cf update_kernel and mdk-stage1/pci-resource/update-pci-ids.pl)
-# - performing a load_category or probe_category (modules.pm and many files in perl-install)
-
-our %l = (
- ################################################################################
- network =>
- {
- main => [
- if_(arch() =~ /ppc/, qw(mace bmac gmac)),
- if_(arch() =~ /^sparc/, qw(myri_sbus sunbmac sunhme sunqe)),
- if_(arch() !~ /alpha/ && arch() !~ /sparc/,
- qw(3c501 3c503 3c505 3c507 3c509 3c515), # 3c90x
- qw(82596 abyss ac3200 acenic aironet4500_card at1700 atp com20020-pci),
- qw(cs89x0 de600 de620),
- qw(defxx orinoco_plx), # most unused
- qw(depca dgrs dmfe e100 e1000 e2100 eepro eepro100 eexpress epic100 eth16i),
- qw(ewrk3 hamachi hp hp-plus hp100 ibmtr),
- qw(lance natsemi ne ne2k-pci ni5010 ni52 ni65 olympic pcnet32 plip rcpci), #old_tulip
- qw(sb1000 sis900 sk98lin smc-ultra smc9194 starfire tlan tmspci tulip via-rhine), #sktr
- qw(wd winbond-840 yellowfin ns83820),
-
- qw(iph5526), #- fibre channel
- ),
- qw(3c59x 8139too sundance dl2k), #rtl8139
- ],
- raw => [
- qw(8390 mii),
- qw(ppp_generic ppp_async slhc aironet4500_core),
- ],
- pcmcia => [
- qw(3c574_cs 3c589_cs airo airo_cs aironet4500_cs axnet_cs fmvj18x_cs),
- qw(ibmtr_cs netwave_cs nmclan_cs pcnet_cs ray_cs smc91c92_cs wavelan_cs wvlan_cs),
- qw(xirc2ps_cs xircom_cb xircom_tulip_cb),
- ],
- usb => [
- qw(pegasus kaweth usbnet catc CDCEther),
- ],
- isdn => [
- qw(hisax hysdn b1pci t1pci c4),
- ],
- },
-
- ################################################################################
- disk =>
- {
- scsi => [
- if_(arch() =~ /ppc/, qw(mesh mac53c94)),
- if_(arch() =~ /^sparc/, qw(qlogicpti)),
- if_(arch() !~ /alpha/ && arch() !~ /sparc/,
- qw(3w-xxxx AM53C974 BusLogic NCR53c406a a100u2w advansys aha152x aha1542 aha1740),
- qw(atp870u dc395x_trm dtc fdomain g_NCR5380 in2000 initio pci2220i psi240i),
- qw(qla1280 qla2x00 qlogicfas qlogicfc),
- qw(seagate sim710 sym53c416 t128 tmscsim u14-34f ultrastor wd7000),
- qw(eata eata_pio eata_dma),
- ),
- '53c7,8xx',
- qw(aic7xxx pci2000 qlogicisp sym53c8xx), # ncr53c8xx
- ],
- hardware_raid => [
- if_(arch() =~ /^sparc/, qw(pluto)),
- if_(arch() !~ /alpha/ && arch() !~ /sparc/,
- qw(DAC960 dpt_i2o megaraid aacraid ataraid cciss cpqarray gdth i2o_block),
- qw(qla2200 qla2300 cpqfc),
- qw(ips ppa imm),
- ),
- ],
- pcmcia => [ qw(aha152x_cs fdomain_cs nsp_cs qlogic_cs ide-cs) ], #ide_cs
- raw => [ qw(scsi_mod sd_mod) ],
- usb => [ qw(usb-storage) ],
- cdrom => [ qw(ide-cd sr_mod cdrom) ],
- },
-
- ################################################################################
-
- bus =>
- {
- usb => [ qw(usbcore usb-uhci usb-ohci ehci-hcd usbkbd keybdev input) ],
- pcmcia => [
- if_(arch() !~ /^sparc/, qw(pcmcia_core tcic ds i82365 yenta_socket)), # cb_enabler
- ],
- #serial_cs
- #ftl_cs 3c575_cb apa1480_cb epic_cb serial_cb tulip_cb iflash2+_mtd iflash2_mtd
- #cb_enabler
- },
-
- fs =>
- {
- network => [ qw(af_packet nfs lockd sunrpc) ],
- cdrom => [ qw(isofs) ],
- loopback => [ qw(isofs loop) ],
- local => [
- if_(arch() =~ /^i.86/, qw(vfat fat)),
- if_(arch() =~ /^ppc/, qw(hfs)),
- qw(reiserfs),
- ],
- various => [ qw(smbfs romfs jbd xfs) ],
-
- },
-
- ################################################################################
- multimedia =>
- {
- sound => [
- if_(arch() =~ /ppc/, qw(dmasound_awacs)),
- if_(arch() !~ /^sparc/,
- qw(cmpci cs46xx cs4281 es1370 es1371 esssolo1 i810_audio maestro maestro3),
- qw(nm256_audio pas16 trident via82cxxx_audio sonicvibes emu10k1 ymfpci),
- qw(rme96xx audigy),
-
- qw(snd-ice1712 snd-cmipci snd-ens1371 snd-via8233),
- qw(snd-es1938 snd-fm801 snd-intel8x0 snd-rme96),
- qw(snd-cs46xx snd-maestro3 snd-korg1212 snd-ens1370 snd-als4000),
- qw(snd-trident snd-ymfpci),
- ),
- ],
- tv => [ qw(bttv cpia_usb ibmcam mod_quickcam ov511 ultracam usbvideo cyber2000fb) ],
- photo => [ qw(dc2xx mdc800) ],
- radio => [ qw(radio-maxiradio) ],
- scanner => [ qw(scanner microtek) ],
- joystick => [ qw(ns558 emu10k1-gp iforce) ],
- },
-
- various =>
- # just here for classification, unused categories (nor auto-detect, nor load_thiskind)
- {
- raid => [
- qw(linear raid0 raid1 raid5 lvm-mod md multipath xor),
- ],
- mouse => [
- qw(busmouse msbusmouse logibusmouse serial qpmouse atixlmouse),
- ],
- char => [
- qw(amd768_rng applicom n_r3964 nvram pc110pad ppdev),
- qw(mxser moxa isicom wdt_pci epca synclink istallion sonypi i810-tco sx), #- what are these???
- ],
- other => [
- qw(agpgart defxx i810_rng i810fb ide-floppy ide-scsi ide-tape loop lp nbd sg st),
- qw(parport parport_pc parport_serial),
- qw(btaudio),
-
- #- these need checking
- qw(pcilynx sktr rrunner gmac meye 3c559 buz paep),
- ],
- },
-);
-
-my %dependencies;
-
-sub load_dependencies {
- my ($file) = @_;
-
- %dependencies = map {
- my ($f, $deps) = split ':';
- $f => [ split ' ', $deps ];
- } cat_($file);
-}
-
-sub dependencies_closure {
- my @l = map { dependencies_closure($_) } @{$dependencies{$_[0]} || []};
- (@l, $_[0]);
-}
-
-sub category2modules {
- map {
- my ($t1, $t2s) = m|(.*)/(.*)|;
- map {
- my $l = $l{$t1}{$_} or die "bad category $t1/$_\n" . backtrace();
- @$l;
- } split('\|', $t2s);
- } split(' ', $_[0]);
-}
-
-sub module2category {
- my ($module) = @_;
- foreach my $t1 (keys %l) {
- my $h = $l{$t1};
- foreach my $t2 (keys %$h) {
- $module eq $_ and return "$t1/$t2" foreach @{$h->{$t2}};
- }
- }
- return;
-}
-
-sub sub_categories {
- my ($t1) = @_;
- keys %{$l{$t1}};
-}
-
-1;
diff --git a/kernel/modules.pl b/kernel/modules.pl
deleted file mode 100644
index ac99a4919..000000000
--- a/kernel/modules.pl
+++ /dev/null
@@ -1,165 +0,0 @@
-use strict;
-
-
-BEGIN {
- #- for testing purpose
- (my $f = __FILE__) =~ s|/[^/]*$||;
- push @INC, $f;
-}
-
-use MDK::Common;
-use list_modules;
-
-
-my @skip_big_modules_on_stage1 = (
-qw(
-olympic
-sk98lin acenic
-3c90x
-ns83820
-aironet4500_card aironet4500_core com20020-pci hamachi starfire winbond-840
-
-dc395x_trm
-BusLogic seagate fdomain g_NCR5380
-)
-);
-
-my @skip_modules_on_stage1 = (
- qw(sktr tmspci ibmtr abyss), # alt token ring
- qw(old_tulip rtl8139),
- if_(arch() =~ /alpha|ppc/, qw(sb1000)),
- qw(
- apa1480_cb
- imm ppa plip
- 3w-xxxx pci2220i qla2x00 i2o_block
- eata_pio eata_dma
- qla2200 qla2300
- iph5526
- ),
- 'AM53C974', # deprecated by tmscsim
- qw(ac3200 at1700 atp ni5010 ni52 ni65), #- unused from Jeff
- "u14-34f", #- duplicate from ultrastor.o
-);
-
-my %images = (
- network => 'fs/network network/main|raw bus/pcmcia',
- cdrom => 'fs/cdrom disk/cdrom|scsi|raw',
- hd => 'fs/local fs/loopback disk/scsi|hardware_raid|raw',
- usb => 'fs/network|cdrom bus/usb network/usb|raw disk/cdrom|usb|raw',
- pcmcia => 'fs/network|cdrom disk/cdrom|pcmcia|raw bus/pcmcia network/pcmcia|raw',
- other => 'network/main disk/scsi|hardware_raid ONLY_BIG fs/network network/raw fs/cdrom disk/cdrom|raw',
- all => 'fs/network|cdrom|loopback|local bus/pcmcia|usb network/main|pcmcia|usb|raw disk/cdrom|scsi|hardware_raid|pcmcia|usb|raw',
-);
-
-my $verbose = "@ARGV" =~ /-v/;
-images() if "@ARGV" =~ /images/;
-check() if "@ARGV" =~ /check/;
-pci_modules4stage1($1) if "@ARGV" =~ /pci_modules4stage1:(.*)/;
-
-sub images {
- load_dependencies('modules.dep');
-
- while (my ($image, $l) = each %images) {
- my @modules;
- foreach (split(' ', $l)) {
- if (/ONLY_BIG/) {
- @modules = intersection(\@modules, \@skip_big_modules_on_stage1);
- next;
- }
- push @modules, category2modules($_);
- }
-
- if ($image !~ /all/) {
- @modules = difference2(\@modules, \@skip_modules_on_stage1);
- }
- if ($image !~ /other|all/) {
- @modules = difference2(\@modules, \@skip_big_modules_on_stage1)
- }
- @modules = map { dependencies_closure($_) } @modules;
- printf qq(%s_modules="%s"\n), $image, join(" ", map { "$_.o" } sort @modules);
- }
-}
-
-sub pci_modules4stage1 {
- print "$_\n" foreach difference2([ category2modules($_[0]) ], \@skip_modules_on_stage1);
-}
-
-sub check {
- my $error;
- my %listed;
- my %big_modules_categories;
- while (my ($t1, $l) = each %list_modules::l) {
- while (my ($t2, $l) = each %$l) {
- ref $l or die "bad $l in $t1/$t2";
- foreach (@$l) {
- $listed{$_} = 1;
- push @{$big_modules_categories{$t1}{$t2}}, $_ if member($_, @skip_modules_on_stage1);
- }
- }
- }
-
- # remove accepted categories for other.img
- delete $big_modules_categories{disk}{hardware_raid};
- delete $big_modules_categories{disk}{scsi};
- delete $big_modules_categories{network}{main};
-
- if (map { %$_ } values %big_modules_categories) {
- my @l = map { "$_/" . join('|', sort keys %{$big_modules_categories{$_}}) } sort keys %big_modules_categories;
- print STDERR "WEIRD CATEGORIES USED FOR other.img: ", join(" ", @l), "\n";
- if ($verbose) {
- while (my ($t1, $t2s) = each %big_modules_categories) {
- print "$t1/$_ used for other.img: ", join(" ", @{$t2s->{$_}}), "\n" foreach keys %$t2s;
- }
- }
- $error = 1;
- }
-
- my %module2category;
- my %deprecated_modules = %listed;
- my $not_listed = sub {
- my ($msg, $verbose, @l) = @_;
- my %not_listed;
- foreach (@l) {
- my ($mod) = m|([^/]*)\.o(\.gz)?$| or next;
- delete $deprecated_modules{$mod};
- next if $listed{$mod};
- s|.*?mdk(BOOT)?/||;
- s|kernel/||; s|drivers/||; s|3rdparty/||;
- $_ = dirname $_;
- $_ = dirname $_ if $mod eq basename($_);
- $module2category{$mod} = $_;
- push @{$not_listed{$_}}, $mod;
- }
- if ($verbose) {
- print "$msg $_: ", join(" ", @{$not_listed{$_}}), "\n" foreach sort keys %not_listed;
- }
- };
- $not_listed->('NOT LISTED', 1, `cd all.kernels/2.4* ; find -name "*.o" -o -name "*.o.gz"`);
- $not_listed->('not listed', $verbose, `rpm -qpl /RPMS/kernel-2.4*`);
- print "bad/old modules : ", join(" ", sort keys %deprecated_modules), "\n" if %deprecated_modules;
-
- {
- require '/usr/bin/merge2pcitable.pl';
- my $pcitable = read_pcitable("/usr/share/ldetect-lst/pcitable");
- my $usbtable = read_pcitable("/usr/share/ldetect-lst/usbtable");
-
- my @l = uniq grep { !/:/ && $_ ne 'unknown' } map { $_->[0] } values %$pcitable;
- if (my @l = difference2(\@l, [ keys %listed ])) {
- my %not_listed;
- push @{$not_listed{$module2category{$_}}}, $_ foreach @l;
- print STDERR "PCITABLE MODULES NOT LISTED $_: ", join(" ", @{$not_listed{$_}}), "\n" foreach sort keys %not_listed;
- #$error = 1;
- }
-
- my @l = uniq grep { !/:/ && $_ ne 'unknown' } map { $_->[0] } values %$usbtable;
- if (my @l = difference2(\@l, [ keys %listed ])) {
- my %not_listed;
- push @{$not_listed{$module2category{$_}}}, $_ foreach @l;
- if ($verbose) {
- print "usbtable modules not listed $_: ", join(" ", @{$not_listed{$_}}), "\n" foreach sort keys %not_listed;
- }
- }
- }
-
- exit $error;
-}
diff --git a/kernel/update_kernel b/kernel/update_kernel
deleted file mode 100755
index 9cea09e7d..000000000
--- a/kernel/update_kernel
+++ /dev/null
@@ -1,100 +0,0 @@
-#!/bin/bash
-
-ALL_KERNELS="all.kernels"
-
-# move stuff to this new "kernel" directory
-if [ ! -d all.kernels ]; then
- mv ../all.kernels .
- rm -rf ../all.modules
-fi
-
-function create_marfile() {
- marfile=$1
- shift
- $GIBASEDIR/mdk-stage1/mar/mar -c $marfile $*
-}
-
-function create_modules() {
- kernel_path=$1
- kern=$2
- echo "Updating modules in '`pwd`' for kernel '$kern'"
- cp -f `find $kernel_path/lib/modules/ -name "*.o"` .
- /sbin/depmod -F $kernel_path/boot/System.map* -e *.o | perl -pe 's/\\\n//' \
- | perl -ne 's/\.o//g; s/[ \t]+/ /g; print if /: /' > modules.dep
- perl -pi -e 's/((plip|ppa|imm): parport)/$1 parport_pc/' modules.dep
-
- /sbin/modinfo -f '%{filename} %{description}\n' *.o | perl -lne 'print "$1\t$2" if /(.*?)\.o "(.*)"/' > modules.description
-
- echo -n "packdrake $kern: "
- ls *.o | packdrake -b9s "modules.cz" 400000
- echo "done"
- mv modules.cz ../modules.cz-$kern
- for i in network cdrom hd usb other pcmcia all; do
- modules_var="${i}_modules"
- eval "create_marfile ${i}_modules.mar \$$modules_var"
- done
- echo
-}
-
-[ -e $ALL_KERNELS/.main ] && main=$(cat $ALL_KERNELS/.main)
-
-rpm=$(rpm -qp --qf '%{name}' /RPMS/kernel-BOOT-*.rpm | perl -pe 's/kernel-BOOT-(.*)\.(.*)/$1-${2}BOOT/')
-if [ -n "$rpm" -a ! -e $ALL_KERNELS/$rpm ]; then
- [ -n "$main" ] && rm -rf $ALL_KERNELS/$main
- cd $ALL_KERNELS
- rm -rf $rpm ; mkdir $rpm
- cd $rpm
- rpm2cpio /RPMS/kernel-BOOT-*.rpm | cpio -id
- find -type f -name "*.o.gz" | xargs gunzip
- cd ../..
-
- for dir in /tftpboot /var/lib/tftpboot; do
- rm -f $dir/{vmlinuz,network.rdz}
- done
-fi
-
-[ -n "$main" -a -e $ALL_KERNELS/$main ] || {
- cd $ALL_KERNELS
- main=$(echo 2.* | sed 's/.* //')
- echo "Choosing $main"
- echo $main > .main
- cd ..
-}
-
-ARCH=`uname -m | sed -e 's/i.86/i386/' -e 's/sparc.*/sparc/'`
-
-eval `perl modules.pl images`
-
-if [ "$ARCH" == "i386" ]; then
- for i in $ALL_KERNELS/*/boot/vmlinuz*; do
- #disable any existing resolution!!!
- /usr/sbin/rdev -v $i 65535 #788 #785
- done
-else
- if [ "$ARCH" == "ppc" ]; then
- cp -f "$KERNEL_BOOT_PATH"/boot/vmlinux .
- else
- cp -f "$KERNEL_BOOT_PATH"/boot/vmlinux.gz .
- fi
-fi
-
-
-GIBASEDIR=`pwd`/..
-
-rm -rf all.modules ; mkdir all.modules
-for i in $ALL_KERNELS/*; do
- kern=`basename $i`
- (
- mkdir all.modules/$kern
- cd all.modules/$kern
- if [ "$kern" = "$main" ]; then
- create_modules ../../$i $kern
- else
- echo "$kern ($main)"
- create_modules ../../$i $kern 2>/dev/null
- fi
- ) || exit 1
-done
-cp -f all.modules/$main/modules.description .
-
-./check_mar.pl
diff --git a/live_update b/live_update
deleted file mode 100644
index 0778b4ae8..000000000
--- a/live_update
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/sh
-
-message=/usr/X11R6/bin/gmessage
-[ -x $message ] || message=/usr/X11R6/bin/xmessage
-[ -x $message ] || unset message
-
-if [ "$UID" -ne 0 ]; then
- if [ -x "$message" ]; then
- case "$LANG" in
- fr*) buttons="Arrźter:0"
- msg="Mise ą jour en direct de Mandrake Linux.
-
-Vous devez źtre l'utilisateur root pour lancer cette application." ;;
- *) buttons="Abort:0"
- msg="Mandrake Linux live upgrade.
-
-You need to be root to start this program." ;;
- esac
- $message -buttons "$buttons" -print "$msg"
- else
- echo >&2 "You need to be root to start this program."
- fi
- exit 3
-fi
-
-distrib=`pwd`;
-if [ ! -x "$distrib/Mandrake/mdkinst/usr/bin/perl-install/live_install" ]; then
- distrib="/mnt/cdrom"
-fi
-if [ ! -x "$distrib/Mandrake/mdkinst/usr/bin/perl-install/live_install" ]; then
- if [ -x "$message" ]; then
- case "$LANG" in
- fr*) buttons="Arrźter:0"
- msg="Mise ą jour en direct de Mandrake Linux.
-
-Impossible de trouver le Cédérom d'installation de Mandrake Linux dans le premier lecteur." ;;
- *) buttons="Abort:0"
- msg="Mandrake Linux live upgrade.
-
-Unable to find Mandrake Linux Installation Cd-Rom in the first drive." ;;
- esac
- $message -buttons "$buttons" -print "$msg"
- else
- echo >&2 "Unable to find Mandrake Linux Installation Cd-Rom in the first drive."
- fi
- exit 2
-fi
-
-if [ -x "$message" ]; then
- case "$LANG" in
- fr*) buttons="Mise ą jour:0,Annuler:1"
- msg="Mise ą jour en direct de Mandrake Linux.
-
-Appuyez sur \"Mise ą jour\" pour lancer la mise ą jour de votre systčme,
-cela prendra quelques minutes avant que l'écran de DrakX apparaisse.
-
-Appuyez sur \"Annuler\" pour ne pas mettre ą jour votre systčme de cette maničre." ;;
- *) buttons="Upgrade:0,Cancel:1"
- msg="Mandrake Linux live upgrade.
-
-Press \"Upgrade\" to start live upgrade on your system, note this will
-take some time to prepare the system before DrakX screen appears.
-
-Press \"Cancel\" to avoid upgrading your system this way." ;;
- esac
- default=`echo $buttons | cut -d: -f1`
- $message -buttons "$buttons" -default "$default" -print "$msg"
- [ $? -ne 0 ] && exit 1
-else
- echo >&2 "Press ENTER to start live upgrade on your system, note this will
-take some time to prepare the system before DrakX screen appears.
-
-Press CTRL-C to avoid upgrading your system this way."
-fi
-
-cd "$distrib/Mandrake/mdkinst/usr/bin/perl-install" && exec ./live_install
-exit 2
diff --git a/make_boot_img b/make_boot_img
deleted file mode 100755
index c26939f6f..000000000
--- a/make_boot_img
+++ /dev/null
@@ -1,522 +0,0 @@
-#!/usr/bin/perl
-
-@ARGV >= 2 or die "usage: $0 <image> all|other|cdrom|hd|network|usb|blank|pcmcia|live|tftp|tftprd\n";
-
-use Config;
-use MDK::Common;
-Config->import;
-my ($arch) = $Config{archname} =~ /(.*)-/;
-
-($img, $type) = @ARGV;
-
-# move stuff to new "kernel" directory
--d 'kernel' or die "directory kernel is missing\n";
-rename 'all.kernels', 'kernel/all.kernels';
-rename 'all.modules', 'kernel/all.modules';
-
-$default_append = "ramdisk_size=32000 root=/dev/ram3";
-$default_vga = "vga=788";
-
-$instdir = "mdk-stage1";
-$mnt = "/tmp/drakx_mnt";
-$mke2fs = "/sbin/mke2fs -q -m 0 -F -s 1";
-
-if ($>) {
- $sudo = "sudo";
- $ENV{PATH} = "/sbin:/usr/sbin:$ENV{PATH}";
-}
-
-sub __ { print @_, "\n"; system(@_); }
-sub _ { __ @_; $? and die; }
-
-_ "$sudo mkdir $mnt" unless -e $mnt;
-_ "$sudo mkdir ${mnt}2" unless -e "${mnt}2";
-
-$install = $ {{
- all => "stage1-full",
- other => "stage1-full",
- blank => "stage1-full",
- live => "stage1-full",
- tftp => "stage1-full",
- tftprd => "stage1-full",
- pcmcia => "stage1-full",
- network => "stage1-network",
- usb => "stage1-usb",
- cdrom => "stage1-cdrom",
- hd => "stage1-disk",
- live64 => "stage1-full",
- tftp64 => "stage1-full",
- tftprd64 => "stage1-full",
- pcmcia64 => "stage1-full",
- network64 => "stage1-network",
- cdrom64 => "stage1-cdrom",
- hd64 => "stage1-disk",
-}}{$type} or die;
-
-mkdir "images";
-chomp($main = `cat kernel/all.kernels/.main`);
-
-if ($img =~ /blank|other|pcmcia/) {
- @kernels = $main;
-} else {
- @kernels = map { m|kernel/all.kernels/(.*)| } glob('kernel/all.kernels/*');
- $img =~ /usb/ and @kernels = grep { $_ !~ /2\.2\.14/ } @kernels; #- 2.2.14 is too old, usb support was not working properly
-}
-
-foreach (@kernels) {
- if ($img =~ /rdz$/) {
- initrd($mnt, "$img-$_");
- } else {
- $::{"boot_img_$arch"}->($mnt, "$img-$_", glob("kernel/all.kernels/$_/boot/vmlinu*"));
- rename("$img-$main", "$img");
- }
-}
-if ($arch =~ /i.86/ && $img =~ /all/) {
- isolinux($main, @kernels);
-}
-
-if (my ($tftpboot) = grep { -e $_ } qw(/tftpboot /var/lib/tftpboot)) {
- system("/bin/cp -f kernel/all.kernels/$main/boot/vmlinu* $tftpboot/vmlinuz 2>/dev/null");
- system("/bin/cp -f images/network.rdz-$main $tftpboot/network.rdz 2>/dev/null");
-}
-
-sub install_stripped { _ "strip $_[0]"; _ "$sudo install $_[0] $_[1]" }
-
-sub initrd {
- my ($mnt, $img) = @_;
- my ($ltype, $I) = $type =~ /(.*?)(64)/; $ltype ||= $type;
- my $tmp = "$ENV{HOME}/tmp/initrd";
- my $tar = "$instdir/stage1-data/stage1.tar.bz2";
-
- __ "$sudo umount $tmp $mnt 2>/dev/null";
- _ "dd if=/dev/zero of=$tmp bs=1k count=" . ($arch =~ /ia64/ ? ($type eq "all" ? 16386 : 16384) : ($type eq "all" ? 4000 : 2000));
- _ "$mke2fs $tmp";
- _ "$sudo mount -t ext2 $tmp $mnt -o loop";
-
- _ "$sudo tar xjC $mnt -f $tar";
- install_stripped("$instdir/init", "$mnt/sbin");
- install_stripped("$instdir/$install", "$mnt/sbin/stage1");
-
- if ($type eq "network" || $type eq "usb" || $type eq "all" || $type eq "other" || $type eq "blank") {
- install_stripped("$instdir/ppp/pppd-bin", "$mnt/sbin/pppd");
- install_stripped("$instdir/rp-pppoe/pppoe-bin", "$mnt/sbin/pppoe");
- _ "$sudo mknod $mnt/dev/ppp c 108 0";
- _ "$sudo mknod $mnt/dev/ptyp0 c 2 0";
- _ "$sudo mknod $mnt/dev/ttyp0 c 3 0";
- }
-
- if (member($type, qw(pcmcia all network)) && $arch !~ /ppc/ && $arch !~ /ia64/) {
- _ "$sudo cp -a /etc/pcmcia $mnt/etc";
- _ "cp $mnt/etc/pcmcia/config /tmp/pcmcia_config_tmp";
- _ "tools/patch_pcmcia_config.pl /tmp/pcmcia_config_tmp kernel/all.modules/$main/modules.dep";
- _ "sudo mv /tmp/pcmcia_config_tmp $mnt/etc/pcmcia/config";
- }
- my ($ext) = $img =~ /rdz-(.*)/ or die "bad initrd name ($img)";
- $modz = "kernel/all.modules$I/$ext";
- _ "$sudo cp -f $modz/${ltype}_modules.mar $mnt/modules/modules$I.mar" if $type !~ /blank/;
- _ "$sudo cp -f $modz/modules.dep $mnt/modules/";
- _ "$sudo umount $mnt";
-
-
-# Workaround for vfat-loop bug (quite touchy)
- _ "gzip -9f $tmp";
- _ "cp -f $tmp.gz $img";
- _ "rm -f $tmp.gz";
-# _ "gzip -9 -c $tmp > $img";
-# _ "rm -f $tmp";
-}
-
-sub entries_append {
- my ($type) = @_;
-
- my $automatic = "";
- $automatic = "automatic=method:cdrom" if ($type eq "cdrom");
- $automatic = "automatic=method:disk" if ($type eq "hd");
-
- my @simple_entries = (
- linux => "$default_vga",
- vgalo => "vga=785",
- vgahi => "vga=791",
- vga16 => "vga16",
- text => "text",
- patch => "patch $default_vga",
- expert => "expert $default_vga",
- rescue => "rescue rw",
- );
- my @entries = (
- (map { $_->[0] => "$automatic $_->[1]" } group_by2(@simple_entries)),
- if_(member($type, "cdrom", "all"), oem => "automatic=method:cdrom $default_vga rescue oem rw"),
- if_($type eq "all", all => "pcmcia $default_vga"),
- );
-
- map { [ $_->[0], "$default_append $_->[1]" ] }
- group_by2(@entries);
-}
-
-sub boot_img_i386 {
- my ($mnt, $img, $kernel) = @_;
-
- __ "$sudo umount $mnt 2>/dev/null";
-
- if ($type eq "hd") {
- _ "bunzip2 -c $instdir/init-data/msgboot.img.bz2 > $img";
- } elsif ($type eq "all") {
- _ "bunzip2 -c $instdir/init-data/msgboot-graphicallogo-2880.img.bz2 > $img";
- } elsif ($type eq "blank") {
- _ "bunzip2 -c $instdir/init-data/msgboot-blank.img.bz2 > $img";
- } else {
- _ "bunzip2 -c $instdir/init-data/msgboot-graphicallogo.img.bz2 > $img";
- }
-
-
- _ "$sudo mount -t vfat -o umask=0 $img $mnt -o loop";
- _ "cat $kernel > $mnt/vmlinuz" if $type !~ /blank/;
-
- my $rdz = $img; $rdz =~ s/\.img/.rdz/;
- initrd("${mnt}2", $rdz) if !-e $rdz;
- eval { _ "cp -f $rdz $mnt/$type.rdz" };
- if ($@) {
- unlink "$mnt/$type.rdz";
- my $avail = (split ' ', `df $mnt`)[-3];
- my $s = int((-s $rdz) / 1024);
- die sprintf("not enough room for $rdz: need %dKB (available %dKB < needed %dKB)\n", $s - $avail, $avail, $s);
- }
-
- my $timeout = 72;
- output "$mnt/syslinux.cfg",
-"default linux
-prompt 1
-timeout $timeout
-display boot.msg
-F1 help.msg
-F2 advanced.msg
-F3 boot.msg
-" . join('', map {
-"label $_->[0]
- kernel vmlinuz
- append initrd=$type.rdz $_->[1]
-" } entries_append($type));
-
- _ "sync";
- _ "df $mnt";
-}
-
-sub boot_img_alpha {
- my ($mnt, $img) = @_;
-
- __ "$sudo umount $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 $mnt -o loop";
- _ "cp -f vmlinux.gz $mnt" if $type !~ /blank/;
- -f "$type.rdz" ? _ "cp -f $type.rdz $mnt" : initrd("${mnt}2", "$mnt/$type.rdz");
-
- mkdir "$mnt/etc", 0777;
- output("$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 $mnt";
-}
-
-sub boot_img_ia64 {
- my ($mnt, $img, $kernel) = @_;
- my $rdz = $img; $rdz =~ s/\.img/.rdz/;
-
- __ "$sudo umount $mnt 2>/dev/null";
- _ "dd if=/dev/zero of=$img bs=1k count=16384";
- _ "mkdosfs $img";
- _ "$sudo mount -t vfat $img $mnt -o loop,umask=000";
- _ "$sudo cp -f $kernel $mnt/vmlinux";
- _ "cp -f $rdz $mnt/$type.rdz";
- _ "$sudo cp -f tools/ia64/elilo.efi $mnt";
- output("$mnt/elilo.conf", "
-prompt
-timeout=50
-
-image=vmlinux
- label=linux
- root=/dev/ram3
- initrd=$type.rdz
- append=\" ramdisk_size=120000\"
- read-only
-
-image=vmlinux
- label=rescue
- root=/dev/ram3
- initrd=$type.rdz
- append=\" rescue ramdisk_size=120000\"
-");
- _ "sync";
- _ "df $mnt";
-
-}
-
-sub boot_img_sparc {
- my ($mnt, $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("${mnt}2", "$dir/$boot/live$1.rdz");
-
- output("$dir/$boot/silo.conf", "
-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=32000 root=/dev/ram3\"
-image[sun4c,sun4d,sun4m]=/$boot/vmlinux
- label=text
- initrd=/$boot/live.rdz
- append=\"ramdisk_size=32000 text root=/dev/ram3\"
-image[sun4c,sun4d,sun4m]=/$boot/vmlinux
- label=expert
- initrd=/$boot/live.rdz
- append=\"ramdisk_size=32000 expert root=/dev/ram3\"
-image[sun4c,sun4d,sun4m]=/$boot/vmlinux
- label=ks
- initrd=/$boot/live.rdz
- append=\"ramdisk_size=32000 ks root=/dev/ram3\"
-image[sun4c,sun4d,sun4m]=/$boot/vmlinux
- label=rescue
- initrd=/$boot/live.rdz
- append=\"ramdisk_size=32000 rescue rw root=/dev/ram3\"
-image[sun4u]=/$boot/vmlinux64
- label=linux
- alias=install
- initrd=/$boot/live64.rdz
- append=\"ramdisk_size=32000 root=/dev/ram3\"
-image[sun4u]=/$boot/vmlinux64
- label=text
- initrd=/$boot/live64.rdz
- append=\"ramdisk_size=32000 text root=/dev/ram3\"
-image[sun4u]=/$boot/vmlinux64
- label=expert
- initrd=/$boot/live64.rdz
- append=\"ramdisk_size=32000 expert root=/dev/ram3\"
-image[sun4u]=/$boot/vmlinux64
- label=ks
- initrd=/$boot/live64.rdz
- append=\"ramdisk_size=32000 ks root=/dev/ram3\"
-image[sun4u]=/$boot/vmlinux64
- label=rescue
- initrd=/$boot/live64.rdz
- append=\"ramdisk_size=32000 rescue rw root=/dev/ram3\"
-");
-
- output("$dir/$boot/README", "
-To Build a Bootable CD-ROM, try:
- mkisofs -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("${mnt}2", "$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";
- my ($ltype, $I) = $type =~ /(.*?)(64)/; $ltype ||= $type;
-
- __ "$sudo umount $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" if $type !~ /blank/;
- -f "$type.rdz" ? _ "cp -f $type.rdz $dir" : initrd("${mnt}2", "$dir/$type.rdz");
-
- output("$dir/boot.msg", "
-Welcome to Mandrake Linux 7.1
-
-Press <Enter> to install or upgrade a system 7mMandrake Linux7m
-");
-
- output("$dir/silo.conf", "
-partition=1
-default=linux
-timeout=100
-read-write
-message=/boot.msg
-image=/vmlinux$I.gz
- label=linux
- initrd=/$type.rdz
- append=\"ramdisk_size=32000 $ltype root=/dev/ram3\"
-");
- _ "genromfs -d $dir -f /dev/ram -A 2048,/.. -a 512 -V \'DrakX boot disk\'";
- _ "$sudo mount -t romfs /dev/ram $mnt";
- _ "silo -r $mnt -F -i /fd.b -b /second.b -C /silo.conf";
- _ "$sudo umount $mnt";
- _ "dd if=/dev/ram of=$type.img bs=1440k count=1";
- _ "sync";
- _ "$sudo mount -t romfs /dev/ram $mnt";
- _ "df $mnt";
- }
-}
-
-sub boot_img_ppc {
- my ($mnt, $img, $kern, $modz) = @_;
- my $dir = "/export";
- my $boot = "boot"; #- non-absolute pathname only!
- my ($extension) = $modz =~ /.*\/([^\/]+)/;
- _ "mkdir -p $dir/$boot";
- _ "cp -f $kern $dir/$boot/vmlinux";
- _ "cp -f images/all.rdz$extension $dir/boot/all.gz";
- _ "cp -f tools/ppc/yaboot $dir/boot/yaboot";
-
- output("$dir/$boot/yaboot.conf", "
-init-message = \"\\nWelcome to Mandrake Linux PPC!\\nHit <TAB> for boot options.\\n\\n\"
-timeout = 150
-default = install-novideo
-
-image = cd:,\\\\\\\\vmlinux
- label = install-novideo
- root = /dev/ram3
- initrd = cd:,\\\\\\\\all.gz
- initrd-size = 32000
- append = \" video=ofonly\"
-
-image = cd:,\\\\\\\\vmlinux
- label = install-atyfb
- root = /dev/ram3
- initrd = cd:,\\\\\\\\all.gz
- initrd-size = 32000
- append = \" video=atyfb:vmode:17\"
-
-image = cd:,\\\\\\\\vmlinux
- label = install-aty128fb
- root = /dev/ram3
- initrd = cd:,\\\\\\\\all.gz
- initrd-size = 32000
- append = \" video=aty128fb:vmode:17\"
-
-image = cd:,\\\\\\\\vmlinux
- label = install-text
- root = /dev/ram3
- initrd = cd:,\\\\\\\\all.gz
- initrd-size = 32000
- append = \" text video=ofonly\"
-
-image = enet:0,vmlinux
- label = install-net
- root = /dev/ram3
- initrd = enet:0,all.gz
- initrd-size = 32000
- append = \" video=ofonly\"
-
-image = enet:0,vmlinux
- label = install-net-text
- root = /dev/ram3
- initrd = enet:0,all.gz
- initrd-size = 32000
- append = \" text video=ofonly\"
-
-image = cd:,\\\\\\\\vmlinux
- label = rescue
- root = /dev/ram3
- initrd = cd:,\\\\\\\\all.gz
- initrd-size = 32000
- append = \" rescue video=ofonly\"
-
-image = enet:0,vmlinux
- label = rescue-net
- root = /dev/ram3
- initrd = enet:0,all.gz
- initrd-size = 32000
- append = \" rescue video=ofonly\"
-");
- #- seem to need 2 yaboot.conf, one in the root, and one in boot
- _ "cp -f $dir/boot/yaboot.conf $dir/yaboot.conf";
-
- output("$dir/$boot/README", "
-To Build a Bootable CD-ROM, do:
-cd /tools/ppc
-./mkINSTALLCD /export ppc-cd.img
-");
-
-}
-
-sub isolinux {
- my ($main, @kernels) = @_;
- @kernels = ($main, grep { $_ ne $main } @kernels);
- my $debug = 1 ? '-debug' : '';
- _ "rm -rf isolinux"; mkdir "isolinux", 0777;
- my $i = 0;
- foreach (@kernels) {
- mkdir "isolinux/alt$i", 0777;
- my ($kernel) = glob("kernel/all.kernels/$_/boot/vmlinu*");
- _ "cp $kernel isolinux/alt$i/vmlinuz";
- _ "cp images/all.rdz-$_ isolinux/alt$i/all.rdz";
- $i++;
- }
- if (-e "isolinux-graphic.bmp") {
- #- change here for newer picture isolinux-graphic.bmp and newer parameters.
- _ "lilo-bmp2mdk mode:0x103 progress:425,173,16,10,64+2 clear:600,800,64+2 pos:0,0 <isolinux-graphic.bmp >isolinux/boot.msg";
- }
- _ "cp /usr/lib/syslinux/isolinux$debug.bin isolinux/isolinux.bin";
- output "isolinux/isolinux.cfg", "
-default linux
-prompt 1
-timeout 150
-" . (-e "isolinux/boot.msg" ? "display boot.msg
-F1 help.msg" : "display help.msg") . "
-" . join('', map {
-"label $_->[0]
- kernel alt0/vmlinuz
- append initrd=alt0/all.rdz $_->[1] automatic=method:cdrom
-" } entries_append('all'))
- . join('', map_index {
-"label alt$::i
- kernel alt$::i/vmlinuz
- append initrd=alt$::i/all.rdz $default_append $default_vga
-" } @kernels);
-
- output "isolinux/help.msg", (-e "isolinux/boot.msg" && pack "C*", 0x0E, 0x03, 0x00) .
-"Welcome to Mandrake Linux Installation.
-
-If you want more installations options (install from hard
-disk, network, etc), select the kernel you wish to use for
-this installation. Or you may just type Enter, so that the
-automatic CDROM installation will proceed, with the default
-kernel ($main).
-
-" . join('', map_index { "\"alt$::i\" is kernel $_\n" } @kernels);
-}
diff --git a/mdk-stage1/.cvsignore b/mdk-stage1/.cvsignore
deleted file mode 100644
index a96a43de4..000000000
--- a/mdk-stage1/.cvsignore
+++ /dev/null
@@ -1,12 +0,0 @@
-init
-stage1-full
-stage1-cdrom
-stage1-disk
-stage1-network
-debug.log
-.depend
-*.rdz*
-mkinitrd_helper.tar.bz2
-hack_*
-stage1-usb
-rescue-gui
diff --git a/mdk-stage1/Makefile b/mdk-stage1/Makefile
deleted file mode 100644
index 68505ff7c..000000000
--- a/mdk-stage1/Makefile
+++ /dev/null
@@ -1,260 +0,0 @@
- #******************************************************************************
- #
- # mdk-stage1 - the program that will load second-stage install
- #
- # $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.
- #
- # Portions from Erik Troan (ewt@redhat.com) Copyright 1996 Red Hat Software
- #
- #*****************************************************************************
- #
- # Currently:
- #
- # ix86
- # init with minilibc
- # stage1 with dietlibc
- #
- # ppc
- # init with dietlibc
- # stage1 with glibc
- #
- # ia64
- # init with glibc
- # stage1 with glibc
- #
- #*****************************************************************************
-
-
-VERSION = cooker
-
-top_dir = .
-
-include $(top_dir)/Makefile.common
-
-
-DEFS = -DVERSION=\"$(VERSION)\" -DSPAWN_SHELL
-
-COMPILE = $(CC) $(DEFS) $(CFLAGS)
-
-
- #- stage1 "loader"
-ifeq (i386, $(ARCH))
-INITSRC = minilibc.c init.c
-INIT_DEFS = -DINIT_HEADERS=\"minilibc.h\" -fno-builtin
-else
-INITSRC = init.c
-ifeq (ia64, $(ARCH))
-INIT_DEFS = -DINIT_HEADERS=\"init-libc-headers.h\" $(GLIBC_INCLUDES)
-else
-INIT_DEFS = -DINIT_HEADERS=\"init-libc-headers.h\" $(DIETLIBC_INCLUDES)
-endif
-endif
-
-INITOBJS = $(subst .c,.o,$(INITSRC))
-
-
- #- frontends
-NEWT_FRONTEND_SRC = newt-frontend.c
-GLIBC_NEWT_FRONTEND_LIBS = newt/libnewt.a slang/libslang.a
-DIETLIBC_NEWT_FRONTEND_LIBS = $(subst .a,-DIET.a,$(GLIBC_NEWT_FRONTEND_LIBS))
-
-STDIO_FRONTEND_SRC = stdio-frontend.c
-GLIBC_STDIO_FRONTEND_LIBS =
-DIETLIBC_STDIO_FRONTEND_LIBS =
-
-
-FRONTEND_OBJS = $(subst .c,.o,$($(F)_FRONTEND_SRC))
-
-FRONTEND_LINK = $(FRONTEND_OBJS) $($(L)_$(F)_FRONTEND_LIBS)
-
-ifeq (i386, $(ARCH))
-INSMOD = insmod-busybox
-else
-INSMOD = insmod-modutils
-endif
-
-GLIBC_STAGE1_OWN_LIBS = $(INSMOD)/libinsmod.a mar/libmar.a bzlib/libbzlib.a
-DIETLIBC_STAGE1_OWN_LIBS = $(subst .a,-DIET.a,$(GLIBC_STAGE1_OWN_LIBS))
-STAGE1_OWN_LIBS = $($(L)_STAGE1_OWN_LIBS)
-
-
-ifeq (DIETLIBC, $(L))
-STAGE1_NETWORK_LIBS = $(top_dir)/dietlibc/bin-$(ARCH)/librpc.a
-endif
-
-ifeq (GLIBC, $(L))
-STAGE1_NETWORK_LIBS = /usr/lib/libresolv.a
-endif
-
- #- stage1 itself
-STAGE1SRC = stage1.c log.c tools.c modules.c probing.c mount.c automatic.c frontend-common.c
-CDROMSRC = cdrom.c
-DISKSRC = disk.c lomount.c
-NETWORKSRC = network.c nfsmount.c dhcp.c url.c dns.c adsl.c
-
-ALLSRC = $(INITSRC) $(STAGE1SRC) $(CDROMSRC) $(DISKSRC) $(NETWORKSRC)
-
-
-
-STAGE1OBJS-CDROM = $(subst .c,-CDROM.o,$(STAGE1SRC) $(CDROMSRC))
-
-CDROM_DEFS = -DDISABLE_DISK -DDISABLE_NETWORK
-
-
-STAGE1OBJS-DISK = $(subst .c,-DISK.o,$(STAGE1SRC) $(DISKSRC))
-
-DISK_DEFS = -DDISABLE_CDROM -DDISABLE_NETWORK
-
-
-STAGE1OBJS-NETWORK = $(subst .c,-NETWORK.o,$(STAGE1SRC) $(NETWORKSRC))
-
-NETWORK_DEFS = -DDISABLE_CDROM -DDISABLE_DISK
-
-
-STAGE1OBJS-USB = $(subst .c,-USB.o,$(STAGE1SRC) $(CDROMSRC) $(DISKSRC) $(NETWORKSRC))
-
-STAGE1OBJS-FULL = $(subst .c,-FULL.o,$(STAGE1SRC) $(CDROMSRC) $(DISKSRC) $(NETWORKSRC))
-
-
-ifeq (i386, $(ARCH))
-LDFLAGS_INIT = -static -nostdlib /usr/lib/crt1.o
-else
-ifeq (ia64, $(ARCH))
-LDFLAGS_INIT = $(GLIBC_LDFLAGS_STAGE1)
-INIT_LIBC = $(GLIBC_LIBC)
-else
-LDFLAGS_INIT = $(DIETLIBC_LDFLAGS_STAGE1)
-INIT_LIBC = $(DIETLIBC_LIBC)
-endif
-endif
-
-
-BINS = init stage1-full
-
-ifeq (i386, $(ARCH))
-BINS += stage1-cdrom stage1-disk stage1-network stage1-usb
-endif
-
-ifneq (ia64, $(ARCH))
-DIRS = dietlibc
-endif
-DIRS += mar pci-resource usb-resource bzlib $(INSMOD) slang newt ppp/pppd rp-pppoe/src
-ifeq (i386,$(ARCH))
-DIRS += pcmcia_
-endif
-
-
-ifeq (i386,$(ARCH))
-GLIBC_PCMCIA_LIB = pcmcia_/libpcmcia.a
-DIETLIBC_PCMCIA_LIB = $(subst .a,-DIET.a,$(GLIBC_PCMCIA_LIB))
-PCMCIA_LIB = $($(L)_PCMCIA_LIB)
-PCMCIA_DEFS = -DENABLE_PCMCIA
-endif
-
-
-USB_DEFS_GEN = -DENABLE_USB
-USB_DEFS = -DENABLE_USB -DDISABLE_PCIADAPTERS
-
-all: dirs $(BINS)
-
-dirs:
- @for n in . $(DIRS); do \
- [ "$$n" = "." ] || make -C $$n || exit 1 ;\
- done
-
-init: $(INITOBJS) $(INIT_LIBC)
- $(CC) $(LDFLAGS_INIT) -o $@ $^
- $(STRIPCMD) $@
-
-stage1-cdrom: $(STAGE1OBJS-CDROM) $(STAGE1_OWN_LIBS) $(FRONTEND_LINK) $(STAGE1_LIBC)
- $(CC) $(LDFLAGS_STAGE1) -o $@ $^
- $(STRIPCMD) $@
-
-stage1-disk: $(STAGE1OBJS-DISK) $(STAGE1_OWN_LIBS) $(FRONTEND_LINK) $(STAGE1_LIBC)
- $(CC) $(LDFLAGS_STAGE1) -o $@ $^
- $(STRIPCMD) $@
-
-stage1-network: $(STAGE1OBJS-NETWORK) $(STAGE1_OWN_LIBS) $(STAGE1_NETWORK_LIBS) $(FRONTEND_LINK) $(PCMCIA_LIB) $(STAGE1_LIBC)
- $(CC) $(LDFLAGS_STAGE1) -o $@ $^
- $(STRIPCMD) $@
-
-stage1-usb: $(STAGE1OBJS-USB) $(STAGE1_OWN_LIBS) $(STAGE1_NETWORK_LIBS) $(FRONTEND_LINK) $(STAGE1_LIBC)
- $(CC) $(LDFLAGS_STAGE1) -o $@ $^
- $(STRIPCMD) $@
-
-stage1-full: $(STAGE1OBJS-FULL) $(STAGE1_OWN_LIBS) $(STAGE1_NETWORK_LIBS) $(FRONTEND_LINK) $(PCMCIA_LIB) $(STAGE1_LIBC)
- $(CC) $(LDFLAGS_STAGE1) -o $@ $^
- $(STRIPCMD) $@
-
-
-$(INITOBJS): %.o: %.c
- $(COMPILE) $(INIT_DEFS) -c $<
-
-$(STAGE1OBJS-CDROM): %-CDROM.o: %.c
- $(COMPILE) $(INCLUDES) $(CDROM_DEFS) -c $< -o $@
-
-$(STAGE1OBJS-DISK): %-DISK.o: %.c
- $(COMPILE) $(INCLUDES) $(DISK_DEFS) -c $< -o $@
-
-$(STAGE1OBJS-NETWORK): %-NETWORK.o: %.c
- $(COMPILE) $(INCLUDES) $(NETWORK_DEFS) $(PCMCIA_DEFS) -c $< -o $@
-
-$(STAGE1OBJS-USB): %-USB.o: %.c
- $(COMPILE) $(INCLUDES) $(USB_DEFS) -c $< -o $@
-
-$(STAGE1OBJS-FULL): %-FULL.o: %.c
- $(COMPILE) $(INCLUDES) $(USB_DEFS_GEN) $(PCMCIA_DEFS) -c $< -o $@
-
-.c.o:
- $(COMPILE) $(INCLUDES) -c $<
-
-
-clean:
- @for n in $(DIRS); do \
- (cd $$n; make clean) \
- done
- rm -f *.o .depend *.rdz *.img rescue-gui $(BINS)
-
-
-tar-mkinitrd_helper: clean
- rm -rf mkinitrd_helper-subdir
- mkdir mkinitrd_helper-subdir
- cd mkinitrd_helper-subdir ; cp -a ../dietlibc ../insmod-busybox ../Makefile.common ../insmod.h ../log.h . ; \
- cp ../Makefile.mkinitrd_helper Makefile
- tar cfj mkinitrd_helper.tar.bz2 mkinitrd_helper-subdir --exclude CVS
- rm -rf mkinitrd_helper-subdir
-
-rescue-gui: rescue-gui.o frontend-common.o $(FRONTEND_LINK) $(STAGE1_LIBC)
- $(CC) $(LDFLAGS_STAGE1) -o $@ $^
- $(STRIPCMD) $@
-
-
-.depend:
- $(CPP) $(CFLAGS) -M $(ALLSRC) > .depend
-
-ifeq (.depend,$(wildcard .depend))
-include .depend
-endif
-
-
-*-CDROM.o: %-CDROM.o: %.o
-
-*-DISK.o: %-DISK.o: %.o
-
-*-NETWORK.o: %-NETWORK.o: %.o
-
-*-USB.o: %-USB.o: %.o
-
-*-FULL.o: %-FULL.o: %.o
-
diff --git a/mdk-stage1/Makefile.common b/mdk-stage1/Makefile.common
deleted file mode 100644
index 7506c1381..000000000
--- a/mdk-stage1/Makefile.common
+++ /dev/null
@@ -1,57 +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
-
-
- #- flags used by all stuff
-ifeq (ppc, $(ARCH))
-CFLAGS = -Os -pipe -Wall -fomit-frame-pointer
-else
-CFLAGS = -Os -pipe -Wall -Werror -W -fomit-frame-pointer
-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 $(top_dir)/dietlibc/bin-$(ARCH)/start.o
-LDFLAGS_STAGE1 = $($(L)_LDFLAGS_STAGE1)
-
-GLIBC_LIBC =
-DIETLIBC_LIBC = $(top_dir)/dietlibc/bin-$(ARCH)/dietlibc.a
-STAGE1_LIBC = $($(L)_LIBC)
-
-STRIPCMD = strip -R .note -R .comment
-
diff --git a/mdk-stage1/Makefile.mkinitrd_helper b/mdk-stage1/Makefile.mkinitrd_helper
deleted file mode 100644
index 72bef595f..000000000
--- a/mdk-stage1/Makefile.mkinitrd_helper
+++ /dev/null
@@ -1,30 +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.
- #
- #*****************************************************************************
-
-
-DIRS = dietlibc insmod-busybox
-
-
-all: dirs
-
-dirs:
- @for n in . $(DIRS); do \
- [ "$$n" = "." ] || make -C $$n ;\
- done
-
-clean:
- @for n in $(DIRS); do \
- (cd $$n; make clean) \
- done
diff --git a/mdk-stage1/adsl.c b/mdk-stage1/adsl.c
deleted file mode 100644
index d542f2f35..000000000
--- a/mdk-stage1/adsl.c
+++ /dev/null
@@ -1,172 +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.
- *
- */
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <string.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <sys/ioctl.h>
-#include <errno.h>
-#include <stdio.h>
-#include <resolv.h>
-#include <signal.h>
-
-#include "stage1.h"
-#include "log.h"
-#include "network.h"
-#include "modules.h"
-#include "tools.h"
-#include "frontend.h"
-#include "automatic.h"
-
-#include "adsl.h"
-
-
-static enum return_type adsl_connect(char * net_device, char * username, char * password)
-{
- char pppoe_call[500];
- char * pppd_launch[] = { "/sbin/pppd", "pty", pppoe_call, "noipdefault", "noauth", "default-asyncmap", "defaultroute",
- "hide-password", "nodetach", "usepeerdns", "local", "mtu", "1492", "mru", "1492", "noaccomp",
- "noccp", "nobsdcomp", "nodeflate", "nopcomp", "novj", "novjccomp", "user", username,
- "password", password, "lcp-echo-interval", "20", "lcp-echo-failure", "3", "lock", "persist", NULL };
- int fd;
- int retries = 10;
- char * tty_adsl = "/dev/tty6";
- enum return_type status = RETURN_ERROR;
- pid_t ppp_pid;
-
- snprintf(pppoe_call, sizeof(pppoe_call), "/sbin/pppoe -p /var/run/pppoe.conf-adsl.pid.pppoe -I %s -T 80 -U -m 1412", net_device);
-
-
- fd = open(tty_adsl, O_RDWR);
- if (fd == -1) {
- log_message("cannot open tty -- no pppd");
- return RETURN_ERROR;
- }
- else if (access(pppd_launch[0], X_OK)) {
- log_message("cannot open pppd - %s doesn't exist", pppd_launch[0]);
- return RETURN_ERROR;
- }
-
- if (!(ppp_pid = fork())) {
- dup2(fd, 0);
- dup2(fd, 1);
- dup2(fd, 2);
-
- close(fd);
- setsid();
- if (ioctl(0, TIOCSCTTY, NULL))
- log_perror("could not set new controlling tty");
-
- printf("\t(exec of pppd)\n");
- execve(pppd_launch[0], pppd_launch, grab_env());
- log_message("execve of %s failed: %s", pppd_launch[0], strerror(errno));
- exit(-1);
- }
- close(fd);
- while (retries > 0 && kill(ppp_pid, 0) == 0) {
- FILE * f;
- if ((f = fopen("/var/run/pppd.tdb", "rb"))) {
- while (1) {
- char buf[500];
- if (!fgets(buf, sizeof(buf), f))
- break;
- if (strstr(buf, "IPLOCAL="))
- status = RETURN_OK;
- }
- fclose(f);
- if (status == RETURN_OK) {
- log_message("PPP: connected!");
- break;
- }
- }
- retries--;
- log_message("PPP: <sleep>");
- sleep(2);
- }
-
- if (status != RETURN_OK) {
- log_message("PPP: could not connect");
- kill(ppp_pid, SIGTERM);
- sleep(1);
- kill(ppp_pid, SIGKILL);
- sleep(1);
- }
- return status;
-}
-
-
-enum return_type perform_adsl(struct interface_info * intf)
-{
- struct in_addr addr;
- char * questions[] = { "Username", "Password", NULL };
- char * questions_auto[] = { "adsluser", "adslpass", NULL };
- static char ** answers = NULL;
- enum return_type results;
-
- inet_aton("10.0.0.10", &addr);
- memcpy(&intf->ip, &addr, sizeof(addr));
-
- inet_aton("255.255.255.0", &addr);
- memcpy(&intf->netmask, &addr, sizeof(addr));
-
- *((uint32_t *) &intf->broadcast) = (*((uint32_t *) &intf->ip) &
- *((uint32_t *) &intf->netmask)) | ~(*((uint32_t *) &intf->netmask));
-
- intf->is_ptp = 0;
-
- if (configure_net_device(intf)) {
- stg1_error_message("Could not configure..");
- return RETURN_ERROR;
- }
-
- results = ask_from_entries_auto("Please enter the username and password for your ADSL account.\n"
- "(Warning! only PPPoE protocol is supported)",
- questions, &answers, 40, questions_auto, NULL);
- if (results != RETURN_OK)
- return results;
-
- intf->boot_proto = BOOTPROTO_ADSL_PPPOE;
-
- wait_message("Waiting for ADSL connection to show up...");
- my_insmod("ppp_generic", ANY_DRIVER_TYPE, NULL);
- my_insmod("ppp_async", ANY_DRIVER_TYPE, NULL);
- my_insmod("ppp", ANY_DRIVER_TYPE, NULL);
- results = adsl_connect(intf->device, answers[0], answers[1]);
- remove_wait_message();
-
- if (results != RETURN_OK) {
- wait_message("Retrying the ADSL connection...");
- results = adsl_connect(intf->device, answers[0], answers[1]);
- remove_wait_message();
- } else {
- intf->user = strdup(answers[0]);
- intf->pass = strdup(answers[1]);
- }
-
- if (results != RETURN_OK) {
- stg1_error_message("I could not connect to the ADSL network.");
- return perform_adsl(intf);
- }
-
- sleep(1);
- res_init(); /* reinit the resolver, pppd modified /etc/resolv.conf */
-
- return RETURN_OK;
-}
diff --git a/mdk-stage1/adsl.h b/mdk-stage1/adsl.h
deleted file mode 100644
index 9d32cc631..000000000
--- a/mdk-stage1/adsl.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
- *
- * Copyright 2000 MandrakeSoft
- *
- * View the homepage: http://us.mandrakesoft.com/~gc/html/stage1.html
- *
- *
- * 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.
- *
- */
-
-/*
- * Portions from GRUB -- GRand Unified Bootloader
- * Copyright (C) 2000 Free Software Foundation, Inc.
- *
- * Itself based on etherboot-4.6.4 by Martin Renters.
- *
- */
-
-#ifndef _ADSL_H_
-#define _ADSL_H_
-
-#include "stage1.h"
-#include "network.h"
-
-enum return_type perform_adsl(struct interface_info * intf);
-
-#endif
diff --git a/mdk-stage1/automatic.c b/mdk-stage1/automatic.c
deleted file mode 100644
index 1c6e021a0..000000000
--- a/mdk-stage1/automatic.c
+++ /dev/null
@@ -1,161 +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.
- *
- */
-
-/*
- * This is supposed to replace the redhat "kickstart", by name but
- * also by design (less code pollution).
- *
- */
-
-
-#include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-#include "tools.h"
-#include "stage1.h"
-#include "frontend.h"
-#include "log.h"
-
-#include "automatic.h"
-
-
-static struct param_elem * automatic_params;
-static char * value_not_bound = "";
-
-void grab_automatic_params(char * line)
-{
- int i, p;
- struct param_elem tmp_params[50];
-
- i = 0; p = 0;
- while (line[i] != '\0') {
- char *name, *value;
- int k;
- int j = i;
- while (line[i] != ':' && line[i] != '\0')
- i++;
- 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[i-k] = 0;
-
- tmp_params[p].name = name;
- tmp_params[p].value = value;
- p++;
- if (line[i] == '\0')
- break;
- i++;
- }
-
- tmp_params[p++].name = NULL;
- automatic_params = memdup(tmp_params, sizeof(struct param_elem) * p);
-
- log_message("AUTOMATIC MODE: got %d params", p-1);
-}
-
-
-char * get_auto_value(char * auto_param)
-{
- struct param_elem * ptr = automatic_params;
-
- struct param_elem short_aliases[] =
- { { "method", "met" }, { "network", "netw" }, { "interface", "int" }, { "gateway", "gat" },
- { "netmask", "netm" }, { "adsluser", "adslu" }, { "adslpass", "adslp" }, { "hostname", "hos" },
- { "domain", "dom" }, { "server", "ser" }, { "directory", "dir" }, { "user", "use" },
- { "pass", "pas" }, { "disk", "dis" }, { "partition", "par" }, { NULL, NULL } };
- struct param_elem * ptr_alias = short_aliases;
- while (ptr_alias->name) {
- if (streq(auto_param, ptr_alias->name))
- break;
- ptr_alias++;
- }
-
- while (ptr->name) {
- if (streq(ptr->name, auto_param)
- || (ptr_alias->name && streq(ptr_alias->value, ptr->name)))
- return ptr->value;
- ptr++;
- }
-
- return value_not_bound;
-}
-
-
-enum return_type ask_from_list_auto(char *msg, char ** elems, char ** choice, char * auto_param, char ** elems_auto)
-{
- if (!IS_AUTOMATIC)
- return ask_from_list(msg, elems, choice);
- else {
- char ** sav_elems = elems;
- char * tmp = get_auto_value(auto_param);
- while (elems && *elems) {
- if (!strcmp(tmp, *elems_auto)) {
- *choice = *elems;
- log_message("AUTOMATIC: parameter %s for %s means returning %s", tmp, auto_param, *elems);
- return RETURN_OK;
- }
- elems++;
- elems_auto++;
- }
- unset_param(MODE_AUTOMATIC); /* we are in a fallback mode */
- return ask_from_list(msg, sav_elems, choice);
- }
-}
-
-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)
- return ask_from_list_comments(msg, elems, elems_comments, choice);
- else {
- char ** sav_elems = elems;
- char * tmp = get_auto_value(auto_param);
- while (elems && *elems) {
- if (!strcmp(tmp, *elems_auto)) {
- *choice = *elems;
- log_message("AUTOMATIC: parameter %s for %s means returning %s", tmp, auto_param, *elems);
- return RETURN_OK;
- }
- elems++;
- elems_auto++;
- }
- unset_param(MODE_AUTOMATIC); /* we are in a fallback mode */
- return ask_from_list_comments(msg, sav_elems, elems_comments, choice);
- }
-}
-
-
-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)
- return ask_from_entries(msg, questions, answers, entry_size, callback_func);
- else {
- char * tmp_answers[50];
- int i = 0;
- while (questions && *questions) {
- tmp_answers[i] = get_auto_value(*questions_auto);
- log_message("AUTOMATIC: question %s answers %s because of param %s", *questions, tmp_answers[i], *questions_auto);
- i++;
- questions++;
- questions_auto++;
-
- }
- *answers = memdup(tmp_answers, sizeof(char *) * i);
- return RETURN_OK;
- }
-}
diff --git a/mdk-stage1/automatic.h b/mdk-stage1/automatic.h
deleted file mode 100644
index c2ac0a73d..000000000
--- a/mdk-stage1/automatic.h
+++ /dev/null
@@ -1,32 +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.
- *
- */
-
-/*
- * This is supposed to replace the redhat "kickstart", by name but
- * also by design (no code pollution).
- *
- */
-
-#ifndef _AUTOMATIC_H_
-#define _AUTOMATIC_H_
-
-#include "stage1.h"
-
-void grab_automatic_params(char * line);
-
-enum return_type ask_from_list_auto(char *msg, char ** elems, char ** choice, char * auto_param, char ** elems_auto);
-enum return_type ask_from_list_comments_auto(char *msg, char ** elems, char ** elems_comments, char ** choice, char * auto_param, char ** elems_auto);
-enum return_type ask_from_entries_auto(char *msg, char ** questions, char *** answers, int entry_size, char ** questions_auto, void (*callback_func)(char ** strings));
-
-#endif
diff --git a/mdk-stage1/bzlib/Makefile b/mdk-stage1/bzlib/Makefile
deleted file mode 100644
index 03a2c254b..000000000
--- a/mdk-stage1/bzlib/Makefile
+++ /dev/null
@@ -1,55 +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 = libbzlib
-
-OBJS = blocksort.o bzlib.o compress.o crctable.o decompress.o huffman.o randtable.o
-
-DEFS =
-
-INCS =
-
-
-TARGETS = $(LIBNAME).a
-
-ifeq (DIETLIBC, $(L))
-TARGETS += $(LIBNAME)-DIET.a
-endif
-
-all: $(TARGETS)
-
-clean:
- rm -f *.o *.a
-
-OBJS-DIET = $(subst .o,-DIET.o,$(OBJS))
-
-$(LIBNAME).a: $(OBJS)
- ar -cru $@ $^
- ranlib $@
-
-$(LIBNAME)-DIET.a: $(OBJS-DIET)
- ar -cru $@ $^
- ranlib $@
-
-$(OBJS): %.o: %.c
- $(CC) $(CFLAGS) $(DEFS) $(INCS) $(GLIBC_INCLUDES) -c $< -o $@
-
-$(OBJS-DIET): %-DIET.o: %.c
- $(CC) $(CFLAGS) $(DEFS) $(INCS) $(DIETLIBC_INCLUDES) -c $< -o $@
diff --git a/mdk-stage1/bzlib/blocksort.c b/mdk-stage1/bzlib/blocksort.c
deleted file mode 100644
index c1b78c483..000000000
--- a/mdk-stage1/bzlib/blocksort.c
+++ /dev/null
@@ -1,1138 +0,0 @@
-
-/*-------------------------------------------------------------*/
-/*--- Block sorting machinery ---*/
-/*--- blocksort.c ---*/
-/*-------------------------------------------------------------*/
-
-/*--
- This file is a part of bzip2 and/or libbzip2, a program and
- library for lossless, block-sorting data compression.
-
- Copyright (C) 1996-2000 Julian R Seward. 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. 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.
-
- 3. Altered source versions must be plainly marked as such, and must
- not be misrepresented as being the original software.
-
- 4. 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 BY THE AUTHOR ``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 AUTHOR 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.
-
- Julian Seward, Cambridge, UK.
- jseward@acm.org
- bzip2/libbzip2 version 1.0 of 21 March 2000
-
- This program is based on (at least) the work of:
- Mike Burrows
- David Wheeler
- Peter Fenwick
- Alistair Moffat
- Radford Neal
- Ian H. Witten
- Robert Sedgewick
- Jon L. Bentley
-
- For more information on these sources, see the manual.
-
- To get some idea how the block sorting algorithms in this file
- work, read my paper
- On the Performance of BWT Sorting Algorithms
- in Proceedings of the IEEE Data Compression Conference 2000,
- Snowbird, Utah, USA, 27-30 March 2000. The main sort in this
- file implements the algorithm called cache in the paper.
---*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-
-#include "bzlib_private.h"
-
-/*---------------------------------------------*/
-/*--- Fallback O(N log(N)^2) sorting ---*/
-/*--- algorithm, for repetitive blocks ---*/
-/*---------------------------------------------*/
-
-/*---------------------------------------------*/
-static
-__inline__
-void fallbackSimpleSort ( UInt32* fmap,
- UInt32* eclass,
- Int32 lo,
- Int32 hi )
-{
- Int32 i, j, tmp;
- UInt32 ec_tmp;
-
- if (lo == hi) return;
-
- if (hi - lo > 3) {
- for ( i = hi-4; i >= lo; i-- ) {
- tmp = fmap[i];
- ec_tmp = eclass[tmp];
- for ( j = i+4; j <= hi && ec_tmp > eclass[fmap[j]]; j += 4 )
- fmap[j-4] = fmap[j];
- fmap[j-4] = tmp;
- }
- }
-
- for ( i = hi-1; i >= lo; i-- ) {
- tmp = fmap[i];
- ec_tmp = eclass[tmp];
- for ( j = i+1; j <= hi && ec_tmp > eclass[fmap[j]]; j++ )
- fmap[j-1] = fmap[j];
- fmap[j-1] = tmp;
- }
-}
-
-
-/*---------------------------------------------*/
-#define fswap(zz1, zz2) \
- { Int32 zztmp = zz1; zz1 = zz2; zz2 = zztmp; }
-
-#define fvswap(zzp1, zzp2, zzn) \
-{ \
- Int32 yyp1 = (zzp1); \
- Int32 yyp2 = (zzp2); \
- Int32 yyn = (zzn); \
- while (yyn > 0) { \
- fswap(fmap[yyp1], fmap[yyp2]); \
- yyp1++; yyp2++; yyn--; \
- } \
-}
-
-
-#define fmin(a,b) ((a) < (b)) ? (a) : (b)
-
-#define fpush(lz,hz) { stackLo[sp] = lz; \
- stackHi[sp] = hz; \
- sp++; }
-
-#define fpop(lz,hz) { sp--; \
- lz = stackLo[sp]; \
- hz = stackHi[sp]; }
-
-#define FALLBACK_QSORT_SMALL_THRESH 10
-#define FALLBACK_QSORT_STACK_SIZE 100
-
-
-static
-void fallbackQSort3 ( UInt32* fmap,
- UInt32* eclass,
- Int32 loSt,
- Int32 hiSt )
-{
- Int32 unLo, unHi, ltLo, gtHi, n, m;
- Int32 sp, lo, hi;
- UInt32 med, r, r3;
- Int32 stackLo[FALLBACK_QSORT_STACK_SIZE];
- Int32 stackHi[FALLBACK_QSORT_STACK_SIZE];
-
- r = 0;
-
- sp = 0;
- fpush ( loSt, hiSt );
-
- while (sp > 0) {
-
- AssertH ( sp < FALLBACK_QSORT_STACK_SIZE, 1004 );
-
- fpop ( lo, hi );
- if (hi - lo < FALLBACK_QSORT_SMALL_THRESH) {
- fallbackSimpleSort ( fmap, eclass, lo, hi );
- continue;
- }
-
- /* Random partitioning. Median of 3 sometimes fails to
- avoid bad cases. Median of 9 seems to help but
- looks rather expensive. This too seems to work but
- is cheaper. Guidance for the magic constants
- 7621 and 32768 is taken from Sedgewick's algorithms
- book, chapter 35.
- */
- r = ((r * 7621) + 1) % 32768;
- r3 = r % 3;
- if (r3 == 0) med = eclass[fmap[lo]]; else
- if (r3 == 1) med = eclass[fmap[(lo+hi)>>1]]; else
- med = eclass[fmap[hi]];
-
- unLo = ltLo = lo;
- unHi = gtHi = hi;
-
- while (1) {
- while (1) {
- if (unLo > unHi) break;
- n = (Int32)eclass[fmap[unLo]] - (Int32)med;
- if (n == 0) {
- fswap(fmap[unLo], fmap[ltLo]);
- ltLo++; unLo++;
- continue;
- };
- if (n > 0) break;
- unLo++;
- }
- while (1) {
- if (unLo > unHi) break;
- n = (Int32)eclass[fmap[unHi]] - (Int32)med;
- if (n == 0) {
- fswap(fmap[unHi], fmap[gtHi]);
- gtHi--; unHi--;
- continue;
- };
- if (n < 0) break;
- unHi--;
- }
- if (unLo > unHi) break;
- fswap(fmap[unLo], fmap[unHi]); unLo++; unHi--;
- }
-
- AssertD ( unHi == unLo-1, "fallbackQSort3(2)" );
-
- if (gtHi < ltLo) continue;
-
- n = fmin(ltLo-lo, unLo-ltLo); fvswap(lo, unLo-n, n);
- m = fmin(hi-gtHi, gtHi-unHi); fvswap(unLo, hi-m+1, m);
-
- n = lo + unLo - ltLo - 1;
- m = hi - (gtHi - unHi) + 1;
-
- if (n - lo > hi - m) {
- fpush ( lo, n );
- fpush ( m, hi );
- } else {
- fpush ( m, hi );
- fpush ( lo, n );
- }
- }
-}
-
-#undef fmin
-#undef fpush
-#undef fpop
-#undef fswap
-#undef fvswap
-#undef FALLBACK_QSORT_SMALL_THRESH
-#undef FALLBACK_QSORT_STACK_SIZE
-
-
-/*---------------------------------------------*/
-/* Pre:
- nblock > 0
- eclass exists for [0 .. nblock-1]
- ((UChar*)eclass) [0 .. nblock-1] holds block
- ptr exists for [0 .. nblock-1]
-
- Post:
- ((UChar*)eclass) [0 .. nblock-1] holds block
- All other areas of eclass destroyed
- fmap [0 .. nblock-1] holds sorted order
- bhtab [ 0 .. 2+(nblock/32) ] destroyed
-*/
-
-#define SET_BH(zz) bhtab[(zz) >> 5] |= (1 << ((zz) & 31))
-#define CLEAR_BH(zz) bhtab[(zz) >> 5] &= ~(1 << ((zz) & 31))
-#define ISSET_BH(zz) (bhtab[(zz) >> 5] & (1 << ((zz) & 31)))
-#define WORD_BH(zz) bhtab[(zz) >> 5]
-#define UNALIGNED_BH(zz) ((zz) & 0x01f)
-
-static
-void fallbackSort ( UInt32* fmap,
- UInt32* eclass,
- UInt32* bhtab,
- Int32 nblock,
- Int32 verb )
-{
- Int32 ftab[257];
- Int32 ftabCopy[256];
- Int32 H, i, j, k, l, r, cc, cc1;
- Int32 nNotDone;
- Int32 nBhtab;
- UChar* eclass8 = (UChar*)eclass;
-
- /*--
- Initial 1-char radix sort to generate
- initial fmap and initial BH bits.
- --*/
- if (verb >= 4)
- VPrintf0 ( " bucket sorting ...\n" );
- for (i = 0; i < 257; i++) ftab[i] = 0;
- for (i = 0; i < nblock; i++) ftab[eclass8[i]]++;
- for (i = 0; i < 256; i++) ftabCopy[i] = ftab[i];
- for (i = 1; i < 257; i++) ftab[i] += ftab[i-1];
-
- for (i = 0; i < nblock; i++) {
- j = eclass8[i];
- k = ftab[j] - 1;
- ftab[j] = k;
- fmap[k] = i;
- }
-
- nBhtab = 2 + (nblock / 32);
- for (i = 0; i < nBhtab; i++) bhtab[i] = 0;
- for (i = 0; i < 256; i++) SET_BH(ftab[i]);
-
- /*--
- Inductively refine the buckets. Kind-of an
- "exponential radix sort" (!), inspired by the
- Manber-Myers suffix array construction algorithm.
- --*/
-
- /*-- set sentinel bits for block-end detection --*/
- for (i = 0; i < 32; i++) {
- SET_BH(nblock + 2*i);
- CLEAR_BH(nblock + 2*i + 1);
- }
-
- /*-- the log(N) loop --*/
- H = 1;
- while (1) {
-
- if (verb >= 4)
- VPrintf1 ( " depth %6d has ", H );
-
- j = 0;
- for (i = 0; i < nblock; i++) {
- if (ISSET_BH(i)) j = i;
- k = fmap[i] - H; if (k < 0) k += nblock;
- eclass[k] = j;
- }
-
- nNotDone = 0;
- r = -1;
- while (1) {
-
- /*-- find the next non-singleton bucket --*/
- k = r + 1;
- while (ISSET_BH(k) && UNALIGNED_BH(k)) k++;
- if (ISSET_BH(k)) {
- while (WORD_BH(k) == 0xffffffff) k += 32;
- while (ISSET_BH(k)) k++;
- }
- l = k - 1;
- if (l >= nblock) break;
- while (!ISSET_BH(k) && UNALIGNED_BH(k)) k++;
- if (!ISSET_BH(k)) {
- while (WORD_BH(k) == 0x00000000) k += 32;
- while (!ISSET_BH(k)) k++;
- }
- r = k - 1;
- if (r >= nblock) break;
-
- /*-- now [l, r] bracket current bucket --*/
- if (r > l) {
- nNotDone += (r - l + 1);
- fallbackQSort3 ( fmap, eclass, l, r );
-
- /*-- scan bucket and generate header bits-- */
- cc = -1;
- for (i = l; i <= r; i++) {
- cc1 = eclass[fmap[i]];
- if (cc != cc1) { SET_BH(i); cc = cc1; };
- }
- }
- }
-
- if (verb >= 4)
- VPrintf1 ( "%6d unresolved strings\n", nNotDone );
-
- H *= 2;
- if (H > nblock || nNotDone == 0) break;
- }
-
- /*--
- Reconstruct the original block in
- eclass8 [0 .. nblock-1], since the
- previous phase destroyed it.
- --*/
- if (verb >= 4)
- VPrintf0 ( " reconstructing block ...\n" );
- j = 0;
- for (i = 0; i < nblock; i++) {
- while (ftabCopy[j] == 0) j++;
- ftabCopy[j]--;
- eclass8[fmap[i]] = (UChar)j;
- }
- AssertH ( j < 256, 1005 );
-}
-
-#undef SET_BH
-#undef CLEAR_BH
-#undef ISSET_BH
-#undef WORD_BH
-#undef UNALIGNED_BH
-
-
-/*---------------------------------------------*/
-/*--- The main, O(N^2 log(N)) sorting ---*/
-/*--- algorithm. Faster for "normal" ---*/
-/*--- non-repetitive blocks. ---*/
-/*---------------------------------------------*/
-
-/*---------------------------------------------*/
-static
-__inline__
-Bool mainGtU ( UInt32 i1,
- UInt32 i2,
- UChar* block,
- UInt16* quadrant,
- UInt32 nblock,
- Int32* budget )
-{
- Int32 k;
- UChar c1, c2;
- UInt16 s1, s2;
-
- AssertD ( i1 != i2, "mainGtU" );
- /* 1 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- i1++; i2++;
- /* 2 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- i1++; i2++;
- /* 3 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- i1++; i2++;
- /* 4 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- i1++; i2++;
- /* 5 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- i1++; i2++;
- /* 6 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- i1++; i2++;
- /* 7 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- i1++; i2++;
- /* 8 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- i1++; i2++;
- /* 9 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- i1++; i2++;
- /* 10 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- i1++; i2++;
- /* 11 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- i1++; i2++;
- /* 12 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- i1++; i2++;
-
- k = nblock + 8;
-
- do {
- /* 1 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- s1 = quadrant[i1]; s2 = quadrant[i2];
- if (s1 != s2) return (s1 > s2);
- i1++; i2++;
- /* 2 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- s1 = quadrant[i1]; s2 = quadrant[i2];
- if (s1 != s2) return (s1 > s2);
- i1++; i2++;
- /* 3 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- s1 = quadrant[i1]; s2 = quadrant[i2];
- if (s1 != s2) return (s1 > s2);
- i1++; i2++;
- /* 4 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- s1 = quadrant[i1]; s2 = quadrant[i2];
- if (s1 != s2) return (s1 > s2);
- i1++; i2++;
- /* 5 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- s1 = quadrant[i1]; s2 = quadrant[i2];
- if (s1 != s2) return (s1 > s2);
- i1++; i2++;
- /* 6 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- s1 = quadrant[i1]; s2 = quadrant[i2];
- if (s1 != s2) return (s1 > s2);
- i1++; i2++;
- /* 7 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- s1 = quadrant[i1]; s2 = quadrant[i2];
- if (s1 != s2) return (s1 > s2);
- i1++; i2++;
- /* 8 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- s1 = quadrant[i1]; s2 = quadrant[i2];
- if (s1 != s2) return (s1 > s2);
- i1++; i2++;
-
- if (i1 >= nblock) i1 -= nblock;
- if (i2 >= nblock) i2 -= nblock;
-
- k -= 8;
- (*budget)--;
- }
- while (k >= 0);
-
- return False;
-}
-
-
-/*---------------------------------------------*/
-/*--
- Knuth's increments seem to work better
- than Incerpi-Sedgewick here. Possibly
- because the number of elems to sort is
- usually small, typically <= 20.
---*/
-static
-Int32 incs[14] = { 1, 4, 13, 40, 121, 364, 1093, 3280,
- 9841, 29524, 88573, 265720,
- 797161, 2391484 };
-
-static
-void mainSimpleSort ( UInt32* ptr,
- UChar* block,
- UInt16* quadrant,
- Int32 nblock,
- Int32 lo,
- Int32 hi,
- Int32 d,
- Int32* budget )
-{
- Int32 i, j, h, bigN, hp;
- UInt32 v;
-
- bigN = hi - lo + 1;
- if (bigN < 2) return;
-
- hp = 0;
- while (incs[hp] < bigN) hp++;
- hp--;
-
- for (; hp >= 0; hp--) {
- h = incs[hp];
-
- i = lo + h;
- while (True) {
-
- /*-- copy 1 --*/
- if (i > hi) break;
- v = ptr[i];
- j = i;
- while ( mainGtU (
- ptr[j-h]+d, v+d, block, quadrant, nblock, budget
- ) ) {
- ptr[j] = ptr[j-h];
- j = j - h;
- if (j <= (lo + h - 1)) break;
- }
- ptr[j] = v;
- i++;
-
- /*-- copy 2 --*/
- if (i > hi) break;
- v = ptr[i];
- j = i;
- while ( mainGtU (
- ptr[j-h]+d, v+d, block, quadrant, nblock, budget
- ) ) {
- ptr[j] = ptr[j-h];
- j = j - h;
- if (j <= (lo + h - 1)) break;
- }
- ptr[j] = v;
- i++;
-
- /*-- copy 3 --*/
- if (i > hi) break;
- v = ptr[i];
- j = i;
- while ( mainGtU (
- ptr[j-h]+d, v+d, block, quadrant, nblock, budget
- ) ) {
- ptr[j] = ptr[j-h];
- j = j - h;
- if (j <= (lo + h - 1)) break;
- }
- ptr[j] = v;
- i++;
-
- if (*budget < 0) return;
- }
- }
-}
-
-
-/*---------------------------------------------*/
-/*--
- The following is an implementation of
- an elegant 3-way quicksort for strings,
- described in a paper "Fast Algorithms for
- Sorting and Searching Strings", by Robert
- Sedgewick and Jon L. Bentley.
---*/
-
-#define mswap(zz1, zz2) \
- { Int32 zztmp = zz1; zz1 = zz2; zz2 = zztmp; }
-
-#define mvswap(zzp1, zzp2, zzn) \
-{ \
- Int32 yyp1 = (zzp1); \
- Int32 yyp2 = (zzp2); \
- Int32 yyn = (zzn); \
- while (yyn > 0) { \
- mswap(ptr[yyp1], ptr[yyp2]); \
- yyp1++; yyp2++; yyn--; \
- } \
-}
-
-static
-__inline__
-UChar mmed3 ( UChar a, UChar b, UChar c )
-{
- UChar t;
- if (a > b) { t = a; a = b; b = t; };
- if (b > c) {
- b = c;
- if (a > b) b = a;
- }
- return b;
-}
-
-#define mmin(a,b) ((a) < (b)) ? (a) : (b)
-
-#define mpush(lz,hz,dz) { stackLo[sp] = lz; \
- stackHi[sp] = hz; \
- stackD [sp] = dz; \
- sp++; }
-
-#define mpop(lz,hz,dz) { sp--; \
- lz = stackLo[sp]; \
- hz = stackHi[sp]; \
- dz = stackD [sp]; }
-
-
-#define mnextsize(az) (nextHi[az]-nextLo[az])
-
-#define mnextswap(az,bz) \
- { Int32 tz; \
- tz = nextLo[az]; nextLo[az] = nextLo[bz]; nextLo[bz] = tz; \
- tz = nextHi[az]; nextHi[az] = nextHi[bz]; nextHi[bz] = tz; \
- tz = nextD [az]; nextD [az] = nextD [bz]; nextD [bz] = tz; }
-
-
-#define MAIN_QSORT_SMALL_THRESH 20
-#define MAIN_QSORT_DEPTH_THRESH (BZ_N_RADIX + BZ_N_QSORT)
-#define MAIN_QSORT_STACK_SIZE 100
-
-static
-void mainQSort3 ( UInt32* ptr,
- UChar* block,
- UInt16* quadrant,
- Int32 nblock,
- Int32 loSt,
- Int32 hiSt,
- Int32 dSt,
- Int32* budget )
-{
- Int32 unLo, unHi, ltLo, gtHi, n, m, med;
- Int32 sp, lo, hi, d;
-
- Int32 stackLo[MAIN_QSORT_STACK_SIZE];
- Int32 stackHi[MAIN_QSORT_STACK_SIZE];
- Int32 stackD [MAIN_QSORT_STACK_SIZE];
-
- Int32 nextLo[3];
- Int32 nextHi[3];
- Int32 nextD [3];
-
- sp = 0;
- mpush ( loSt, hiSt, dSt );
-
- while (sp > 0) {
-
- AssertH ( sp < MAIN_QSORT_STACK_SIZE, 1001 );
-
- mpop ( lo, hi, d );
- if (hi - lo < MAIN_QSORT_SMALL_THRESH ||
- d > MAIN_QSORT_DEPTH_THRESH) {
- mainSimpleSort ( ptr, block, quadrant, nblock, lo, hi, d, budget );
- if (*budget < 0) return;
- continue;
- }
-
- med = (Int32)
- mmed3 ( block[ptr[ lo ]+d],
- block[ptr[ hi ]+d],
- block[ptr[ (lo+hi)>>1 ]+d] );
-
- unLo = ltLo = lo;
- unHi = gtHi = hi;
-
- while (True) {
- while (True) {
- if (unLo > unHi) break;
- n = ((Int32)block[ptr[unLo]+d]) - med;
- if (n == 0) {
- mswap(ptr[unLo], ptr[ltLo]);
- ltLo++; unLo++; continue;
- };
- if (n > 0) break;
- unLo++;
- }
- while (True) {
- if (unLo > unHi) break;
- n = ((Int32)block[ptr[unHi]+d]) - med;
- if (n == 0) {
- mswap(ptr[unHi], ptr[gtHi]);
- gtHi--; unHi--; continue;
- };
- if (n < 0) break;
- unHi--;
- }
- if (unLo > unHi) break;
- mswap(ptr[unLo], ptr[unHi]); unLo++; unHi--;
- }
-
- AssertD ( unHi == unLo-1, "mainQSort3(2)" );
-
- if (gtHi < ltLo) {
- mpush(lo, hi, d+1 );
- continue;
- }
-
- n = mmin(ltLo-lo, unLo-ltLo); mvswap(lo, unLo-n, n);
- m = mmin(hi-gtHi, gtHi-unHi); mvswap(unLo, hi-m+1, m);
-
- n = lo + unLo - ltLo - 1;
- m = hi - (gtHi - unHi) + 1;
-
- nextLo[0] = lo; nextHi[0] = n; nextD[0] = d;
- nextLo[1] = m; nextHi[1] = hi; nextD[1] = d;
- nextLo[2] = n+1; nextHi[2] = m-1; nextD[2] = d+1;
-
- if (mnextsize(0) < mnextsize(1)) mnextswap(0,1);
- if (mnextsize(1) < mnextsize(2)) mnextswap(1,2);
- if (mnextsize(0) < mnextsize(1)) mnextswap(0,1);
-
- AssertD (mnextsize(0) >= mnextsize(1), "mainQSort3(8)" );
- AssertD (mnextsize(1) >= mnextsize(2), "mainQSort3(9)" );
-
- mpush (nextLo[0], nextHi[0], nextD[0]);
- mpush (nextLo[1], nextHi[1], nextD[1]);
- mpush (nextLo[2], nextHi[2], nextD[2]);
- }
-}
-
-#undef mswap
-#undef mvswap
-#undef mpush
-#undef mpop
-#undef mmin
-#undef mnextsize
-#undef mnextswap
-#undef MAIN_QSORT_SMALL_THRESH
-#undef MAIN_QSORT_DEPTH_THRESH
-#undef MAIN_QSORT_STACK_SIZE
-
-
-/*---------------------------------------------*/
-/* Pre:
- nblock > N_OVERSHOOT
- block32 exists for [0 .. nblock-1 +N_OVERSHOOT]
- ((UChar*)block32) [0 .. nblock-1] holds block
- ptr exists for [0 .. nblock-1]
-
- Post:
- ((UChar*)block32) [0 .. nblock-1] holds block
- All other areas of block32 destroyed
- ftab [0 .. 65536 ] destroyed
- ptr [0 .. nblock-1] holds sorted order
- if (*budget < 0), sorting was abandoned
-*/
-
-#define BIGFREQ(b) (ftab[((b)+1) << 8] - ftab[(b) << 8])
-#define SETMASK (1 << 21)
-#define CLEARMASK (~(SETMASK))
-
-static
-void mainSort ( UInt32* ptr,
- UChar* block,
- UInt16* quadrant,
- UInt32* ftab,
- Int32 nblock,
- Int32 verb,
- Int32* budget )
-{
- Int32 i, j, k, ss, sb;
- Int32 runningOrder[256];
- Bool bigDone[256];
- Int32 copyStart[256];
- Int32 copyEnd [256];
- UChar c1;
- Int32 numQSorted;
- UInt16 s;
- if (verb >= 4) VPrintf0 ( " main sort initialise ...\n" );
-
- /*-- set up the 2-byte frequency table --*/
- for (i = 65536; i >= 0; i--) ftab[i] = 0;
-
- j = block[0] << 8;
- i = nblock-1;
- for (; i >= 3; i -= 4) {
- quadrant[i] = 0;
- j = (j >> 8) | ( ((UInt16)block[i]) << 8);
- ftab[j]++;
- quadrant[i-1] = 0;
- j = (j >> 8) | ( ((UInt16)block[i-1]) << 8);
- ftab[j]++;
- quadrant[i-2] = 0;
- j = (j >> 8) | ( ((UInt16)block[i-2]) << 8);
- ftab[j]++;
- quadrant[i-3] = 0;
- j = (j >> 8) | ( ((UInt16)block[i-3]) << 8);
- ftab[j]++;
- }
- for (; i >= 0; i--) {
- quadrant[i] = 0;
- j = (j >> 8) | ( ((UInt16)block[i]) << 8);
- ftab[j]++;
- }
-
- /*-- (emphasises close relationship of block & quadrant) --*/
- for (i = 0; i < BZ_N_OVERSHOOT; i++) {
- block [nblock+i] = block[i];
- quadrant[nblock+i] = 0;
- }
-
- if (verb >= 4) VPrintf0 ( " bucket sorting ...\n" );
-
- /*-- Complete the initial radix sort --*/
- for (i = 1; i <= 65536; i++) ftab[i] += ftab[i-1];
-
- s = block[0] << 8;
- i = nblock-1;
- for (; i >= 3; i -= 4) {
- s = (s >> 8) | (block[i] << 8);
- j = ftab[s] -1;
- ftab[s] = j;
- ptr[j] = i;
- s = (s >> 8) | (block[i-1] << 8);
- j = ftab[s] -1;
- ftab[s] = j;
- ptr[j] = i-1;
- s = (s >> 8) | (block[i-2] << 8);
- j = ftab[s] -1;
- ftab[s] = j;
- ptr[j] = i-2;
- s = (s >> 8) | (block[i-3] << 8);
- j = ftab[s] -1;
- ftab[s] = j;
- ptr[j] = i-3;
- }
- for (; i >= 0; i--) {
- s = (s >> 8) | (block[i] << 8);
- j = ftab[s] -1;
- ftab[s] = j;
- ptr[j] = i;
- }
-
- /*--
- Now ftab contains the first loc of every small bucket.
- Calculate the running order, from smallest to largest
- big bucket.
- --*/
- for (i = 0; i <= 255; i++) {
- bigDone [i] = False;
- runningOrder[i] = i;
- }
-
- {
- Int32 vv;
- Int32 h = 1;
- do h = 3 * h + 1; while (h <= 256);
- do {
- h = h / 3;
- for (i = h; i <= 255; i++) {
- vv = runningOrder[i];
- j = i;
- while ( BIGFREQ(runningOrder[j-h]) > BIGFREQ(vv) ) {
- runningOrder[j] = runningOrder[j-h];
- j = j - h;
- if (j <= (h - 1)) goto zero;
- }
- zero:
- runningOrder[j] = vv;
- }
- } while (h != 1);
- }
-
- /*--
- The main sorting loop.
- --*/
-
- numQSorted = 0;
-
- for (i = 0; i <= 255; i++) {
-
- /*--
- Process big buckets, starting with the least full.
- Basically this is a 3-step process in which we call
- mainQSort3 to sort the small buckets [ss, j], but
- also make a big effort to avoid the calls if we can.
- --*/
- ss = runningOrder[i];
-
- /*--
- Step 1:
- Complete the big bucket [ss] by quicksorting
- any unsorted small buckets [ss, j], for j != ss.
- Hopefully previous pointer-scanning phases have already
- completed many of the small buckets [ss, j], so
- we don't have to sort them at all.
- --*/
- for (j = 0; j <= 255; j++) {
- if (j != ss) {
- sb = (ss << 8) + j;
- if ( ! (ftab[sb] & SETMASK) ) {
- Int32 lo = ftab[sb] & CLEARMASK;
- Int32 hi = (ftab[sb+1] & CLEARMASK) - 1;
- if (hi > lo) {
- if (verb >= 4)
- VPrintf4 ( " qsort [0x%x, 0x%x] "
- "done %d this %d\n",
- ss, j, numQSorted, hi - lo + 1 );
- mainQSort3 (
- ptr, block, quadrant, nblock,
- lo, hi, BZ_N_RADIX, budget
- );
- numQSorted += (hi - lo + 1);
- if (*budget < 0) return;
- }
- }
- ftab[sb] |= SETMASK;
- }
- }
-
- AssertH ( !bigDone[ss], 1006 );
-
- /*--
- Step 2:
- Now scan this big bucket [ss] so as to synthesise the
- sorted order for small buckets [t, ss] for all t,
- including, magically, the bucket [ss,ss] too.
- This will avoid doing Real Work in subsequent Step 1's.
- --*/
- {
- for (j = 0; j <= 255; j++) {
- copyStart[j] = ftab[(j << 8) + ss] & CLEARMASK;
- copyEnd [j] = (ftab[(j << 8) + ss + 1] & CLEARMASK) - 1;
- }
- for (j = ftab[ss << 8] & CLEARMASK; j < copyStart[ss]; j++) {
- k = ptr[j]-1; if (k < 0) k += nblock;
- c1 = block[k];
- if (!bigDone[c1])
- ptr[ copyStart[c1]++ ] = k;
- }
- for (j = (ftab[(ss+1) << 8] & CLEARMASK) - 1; j > copyEnd[ss]; j--) {
- k = ptr[j]-1; if (k < 0) k += nblock;
- c1 = block[k];
- if (!bigDone[c1])
- ptr[ copyEnd[c1]-- ] = k;
- }
- }
-
- AssertH ( copyStart[ss]-1 == copyEnd[ss], 1007 );
-
- for (j = 0; j <= 255; j++) ftab[(j << 8) + ss] |= SETMASK;
-
- /*--
- Step 3:
- The [ss] big bucket is now done. Record this fact,
- and update the quadrant descriptors. Remember to
- update quadrants in the overshoot area too, if
- necessary. The "if (i < 255)" test merely skips
- this updating for the last bucket processed, since
- updating for the last bucket is pointless.
-
- The quadrant array provides a way to incrementally
- cache sort orderings, as they appear, so as to
- make subsequent comparisons in fullGtU() complete
- faster. For repetitive blocks this makes a big
- difference (but not big enough to be able to avoid
- the fallback sorting mechanism, exponential radix sort).
-
- The precise meaning is: at all times:
-
- for 0 <= i < nblock and 0 <= j <= nblock
-
- if block[i] != block[j],
-
- then the relative values of quadrant[i] and
- quadrant[j] are meaningless.
-
- else {
- if quadrant[i] < quadrant[j]
- then the string starting at i lexicographically
- precedes the string starting at j
-
- else if quadrant[i] > quadrant[j]
- then the string starting at j lexicographically
- precedes the string starting at i
-
- else
- the relative ordering of the strings starting
- at i and j has not yet been determined.
- }
- --*/
- bigDone[ss] = True;
-
- if (i < 255) {
- Int32 bbStart = ftab[ss << 8] & CLEARMASK;
- Int32 bbSize = (ftab[(ss+1) << 8] & CLEARMASK) - bbStart;
- Int32 shifts = 0;
-
- while ((bbSize >> shifts) > 65534) shifts++;
-
- for (j = bbSize-1; j >= 0; j--) {
- Int32 a2update = ptr[bbStart + j];
- UInt16 qVal = (UInt16)(j >> shifts);
- quadrant[a2update] = qVal;
- if (a2update < BZ_N_OVERSHOOT)
- quadrant[a2update + nblock] = qVal;
- }
- AssertH ( ((bbSize-1) >> shifts) <= 65535, 1002 );
- }
-
- }
-
- if (verb >= 4)
- VPrintf3 ( " %d pointers, %d sorted, %d scanned\n",
- nblock, numQSorted, nblock - numQSorted );
-}
-
-#undef BIGFREQ
-#undef SETMASK
-#undef CLEARMASK
-
-
-/*---------------------------------------------*/
-/* Pre:
- nblock > 0
- arr2 exists for [0 .. nblock-1 +N_OVERSHOOT]
- ((UChar*)arr2) [0 .. nblock-1] holds block
- arr1 exists for [0 .. nblock-1]
-
- Post:
- ((UChar*)arr2) [0 .. nblock-1] holds block
- All other areas of block destroyed
- ftab [ 0 .. 65536 ] destroyed
- arr1 [0 .. nblock-1] holds sorted order
-*/
-void BZ2_blockSort ( EState* s )
-{
- UInt32* ptr = s->ptr;
- UChar* block = s->block;
- UInt32* ftab = s->ftab;
- Int32 nblock = s->nblock;
- Int32 verb = s->verbosity;
- Int32 wfact = s->workFactor;
- UInt16* quadrant;
- Int32 budget;
- Int32 budgetInit;
- Int32 i;
-
- if (nblock < 10000) {
- fallbackSort ( s->arr1, s->arr2, ftab, nblock, verb );
- } else {
- /* Calculate the location for quadrant, remembering to get
- the alignment right. Assumes that &(block[0]) is at least
- 2-byte aligned -- this should be ok since block is really
- the first section of arr2.
- */
- i = nblock+BZ_N_OVERSHOOT;
- if (i & 1) i++;
- quadrant = (UInt16*)(&(block[i]));
-
- /* (wfact-1) / 3 puts the default-factor-30
- transition point at very roughly the same place as
- with v0.1 and v0.9.0.
- Not that it particularly matters any more, since the
- resulting compressed stream is now the same regardless
- of whether or not we use the main sort or fallback sort.
- */
- if (wfact < 1 ) wfact = 1;
- if (wfact > 100) wfact = 100;
- budgetInit = nblock * ((wfact-1) / 3);
- budget = budgetInit;
-
- mainSort ( ptr, block, quadrant, ftab, nblock, verb, &budget );
- if (verb >= 3)
- VPrintf3 ( " %d work, %d block, ratio %5.2f\n",
- budgetInit - budget,
- nblock,
- (float)(budgetInit - budget) /
- (float)(nblock==0 ? 1 : nblock) );
- if (budget < 0) {
- if (verb >= 2)
- VPrintf0 ( " too repetitive; using fallback"
- " sorting algorithm\n" );
- fallbackSort ( s->arr1, s->arr2, ftab, nblock, verb );
- }
- }
-
- s->origPtr = -1;
- for (i = 0; i < s->nblock; i++)
- if (ptr[i] == 0)
- { s->origPtr = i; break; };
-
- AssertH( s->origPtr != -1, 1003 );
-}
-
-
-/*-------------------------------------------------------------*/
-/*--- end blocksort.c ---*/
-/*-------------------------------------------------------------*/
diff --git a/mdk-stage1/bzlib/bzlib.c b/mdk-stage1/bzlib/bzlib.c
deleted file mode 100644
index b1fc85236..000000000
--- a/mdk-stage1/bzlib/bzlib.c
+++ /dev/null
@@ -1,1567 +0,0 @@
-
-/*-------------------------------------------------------------*/
-/*--- Library top-level functions. ---*/
-/*--- bzlib.c ---*/
-/*-------------------------------------------------------------*/
-
-/*--
- This file is a part of bzip2 and/or libbzip2, a program and
- library for lossless, block-sorting data compression.
-
- Copyright (C) 1996-2000 Julian R Seward. 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. 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.
-
- 3. Altered source versions must be plainly marked as such, and must
- not be misrepresented as being the original software.
-
- 4. 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 BY THE AUTHOR ``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 AUTHOR 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.
-
- Julian Seward, Cambridge, UK.
- jseward@acm.org
- bzip2/libbzip2 version 1.0 of 21 March 2000
-
- This program is based on (at least) the work of:
- Mike Burrows
- David Wheeler
- Peter Fenwick
- Alistair Moffat
- Radford Neal
- Ian H. Witten
- Robert Sedgewick
- Jon L. Bentley
-
- For more information on these sources, see the manual.
---*/
-
-/*--
- CHANGES
- ~~~~~~~
- 0.9.0 -- original version.
-
- 0.9.0a/b -- no changes in this file.
-
- 0.9.0c
- * made zero-length BZ_FLUSH work correctly in bzCompress().
- * fixed bzWrite/bzRead to ignore zero-length requests.
- * fixed bzread to correctly handle read requests after EOF.
- * wrong parameter order in call to bzDecompressInit in
- bzBuffToBuffDecompress. Fixed.
---*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-
-
-#include "bzlib_private.h"
-
-
-/*---------------------------------------------------*/
-/*--- Compression stuff ---*/
-/*---------------------------------------------------*/
-
-
-/*---------------------------------------------------*/
-#ifndef BZ_NO_STDIO
-void BZ2_bz__AssertH__fail ( int errcode )
-{
- fprintf(stderr,
- "\n\nbzip2/libbzip2: internal error number %d.\n"
- "This is a bug in bzip2/libbzip2, %s.\n"
- "Please report it to me at: jseward@acm.org. If this happened\n"
- "when you were using some program which uses libbzip2 as a\n"
- "component, you should also report this bug to the author(s)\n"
- "of that program. Please make an effort to report this bug;\n"
- "timely and accurate bug reports eventually lead to higher\n"
- "quality software. Thanks. Julian Seward, 21 March 2000.\n\n",
- errcode,
- BZ2_bzlibVersion()
- );
- exit(3);
-}
-#endif
-
-
-/*---------------------------------------------------*/
-static
-int bz_config_ok ( void )
-{
- if (sizeof(int) != 4) return 0;
- if (sizeof(short) != 2) return 0;
- if (sizeof(char) != 1) return 0;
- return 1;
-}
-
-
-/*---------------------------------------------------*/
-static
-void* default_bzalloc ( void* opaque __attribute__ ((unused)), Int32 items, Int32 size )
-{
- void* v = malloc ( items * size );
- return v;
-}
-
-static
-void default_bzfree ( void* opaque __attribute__ ((unused)), void* addr )
-{
- if (addr != NULL) free ( addr );
-}
-
-
-/*---------------------------------------------------*/
-static
-void prepare_new_block ( EState* s )
-{
- Int32 i;
- s->nblock = 0;
- s->numZ = 0;
- s->state_out_pos = 0;
- BZ_INITIALISE_CRC ( s->blockCRC );
- for (i = 0; i < 256; i++) s->inUse[i] = False;
- s->blockNo++;
-}
-
-
-/*---------------------------------------------------*/
-static
-void init_RL ( EState* s )
-{
- s->state_in_ch = 256;
- s->state_in_len = 0;
-}
-
-
-static
-Bool isempty_RL ( EState* s )
-{
- if (s->state_in_ch < 256 && s->state_in_len > 0)
- return False; else
- return True;
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzCompressInit)
- ( bz_stream* strm,
- int blockSize100k,
- int verbosity,
- int workFactor )
-{
- Int32 n;
- EState* s;
-
- if (!bz_config_ok()) return BZ_CONFIG_ERROR;
-
- if (strm == NULL ||
- blockSize100k < 1 || blockSize100k > 9 ||
- workFactor < 0 || workFactor > 250)
- return BZ_PARAM_ERROR;
-
- if (workFactor == 0) workFactor = 30;
- if (strm->bzalloc == NULL) strm->bzalloc = default_bzalloc;
- if (strm->bzfree == NULL) strm->bzfree = default_bzfree;
-
- s = BZALLOC( sizeof(EState) );
- if (s == NULL) return BZ_MEM_ERROR;
- s->strm = strm;
-
- s->arr1 = NULL;
- s->arr2 = NULL;
- s->ftab = NULL;
-
- n = 100000 * blockSize100k;
- s->arr1 = BZALLOC( n * sizeof(UInt32) );
- s->arr2 = BZALLOC( (n+BZ_N_OVERSHOOT) * sizeof(UInt32) );
- s->ftab = BZALLOC( 65537 * sizeof(UInt32) );
-
- if (s->arr1 == NULL || s->arr2 == NULL || s->ftab == NULL) {
- if (s->arr1 != NULL) BZFREE(s->arr1);
- if (s->arr2 != NULL) BZFREE(s->arr2);
- if (s->ftab != NULL) BZFREE(s->ftab);
- if (s != NULL) BZFREE(s);
- return BZ_MEM_ERROR;
- }
-
- s->blockNo = 0;
- s->state = BZ_S_INPUT;
- s->mode = BZ_M_RUNNING;
- s->combinedCRC = 0;
- s->blockSize100k = blockSize100k;
- s->nblockMAX = 100000 * blockSize100k - 19;
- s->verbosity = verbosity;
- s->workFactor = workFactor;
-
- s->block = (UChar*)s->arr2;
- s->mtfv = (UInt16*)s->arr1;
- s->zbits = NULL;
- s->ptr = (UInt32*)s->arr1;
-
- strm->state = s;
- strm->total_in_lo32 = 0;
- strm->total_in_hi32 = 0;
- strm->total_out_lo32 = 0;
- strm->total_out_hi32 = 0;
- init_RL ( s );
- prepare_new_block ( s );
- return BZ_OK;
-}
-
-
-/*---------------------------------------------------*/
-static
-void add_pair_to_block ( EState* s )
-{
- Int32 i;
- UChar ch = (UChar)(s->state_in_ch);
- for (i = 0; i < s->state_in_len; i++) {
- BZ_UPDATE_CRC( s->blockCRC, ch );
- }
- s->inUse[s->state_in_ch] = True;
- switch (s->state_in_len) {
- case 1:
- s->block[s->nblock] = (UChar)ch; s->nblock++;
- break;
- case 2:
- s->block[s->nblock] = (UChar)ch; s->nblock++;
- s->block[s->nblock] = (UChar)ch; s->nblock++;
- break;
- case 3:
- s->block[s->nblock] = (UChar)ch; s->nblock++;
- s->block[s->nblock] = (UChar)ch; s->nblock++;
- s->block[s->nblock] = (UChar)ch; s->nblock++;
- break;
- default:
- s->inUse[s->state_in_len-4] = True;
- s->block[s->nblock] = (UChar)ch; s->nblock++;
- s->block[s->nblock] = (UChar)ch; s->nblock++;
- s->block[s->nblock] = (UChar)ch; s->nblock++;
- s->block[s->nblock] = (UChar)ch; s->nblock++;
- s->block[s->nblock] = ((UChar)(s->state_in_len-4));
- s->nblock++;
- break;
- }
-}
-
-
-/*---------------------------------------------------*/
-static
-void flush_RL ( EState* s )
-{
- if (s->state_in_ch < 256) add_pair_to_block ( s );
- init_RL ( s );
-}
-
-
-/*---------------------------------------------------*/
-#define ADD_CHAR_TO_BLOCK(zs,zchh0) \
-{ \
- UInt32 zchh = (UInt32)(zchh0); \
- /*-- fast track the common case --*/ \
- if (zchh != zs->state_in_ch && \
- zs->state_in_len == 1) { \
- UChar ch = (UChar)(zs->state_in_ch); \
- BZ_UPDATE_CRC( zs->blockCRC, ch ); \
- zs->inUse[zs->state_in_ch] = True; \
- zs->block[zs->nblock] = (UChar)ch; \
- zs->nblock++; \
- zs->state_in_ch = zchh; \
- } \
- else \
- /*-- general, uncommon cases --*/ \
- if (zchh != zs->state_in_ch || \
- zs->state_in_len == 255) { \
- if (zs->state_in_ch < 256) \
- add_pair_to_block ( zs ); \
- zs->state_in_ch = zchh; \
- zs->state_in_len = 1; \
- } else { \
- zs->state_in_len++; \
- } \
-}
-
-
-/*---------------------------------------------------*/
-static
-Bool copy_input_until_stop ( EState* s )
-{
- Bool progress_in = False;
-
- if (s->mode == BZ_M_RUNNING) {
-
- /*-- fast track the common case --*/
- while (True) {
- /*-- block full? --*/
- if (s->nblock >= s->nblockMAX) break;
- /*-- no input? --*/
- if (s->strm->avail_in == 0) break;
- progress_in = True;
- ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) );
- s->strm->next_in++;
- s->strm->avail_in--;
- s->strm->total_in_lo32++;
- if (s->strm->total_in_lo32 == 0) s->strm->total_in_hi32++;
- }
-
- } else {
-
- /*-- general, uncommon case --*/
- while (True) {
- /*-- block full? --*/
- if (s->nblock >= s->nblockMAX) break;
- /*-- no input? --*/
- if (s->strm->avail_in == 0) break;
- /*-- flush/finish end? --*/
- if (s->avail_in_expect == 0) break;
- progress_in = True;
- ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) );
- s->strm->next_in++;
- s->strm->avail_in--;
- s->strm->total_in_lo32++;
- if (s->strm->total_in_lo32 == 0) s->strm->total_in_hi32++;
- s->avail_in_expect--;
- }
- }
- return progress_in;
-}
-
-
-/*---------------------------------------------------*/
-static
-Bool copy_output_until_stop ( EState* s )
-{
- Bool progress_out = False;
-
- while (True) {
-
- /*-- no output space? --*/
- if (s->strm->avail_out == 0) break;
-
- /*-- block done? --*/
- if (s->state_out_pos >= s->numZ) break;
-
- progress_out = True;
- *(s->strm->next_out) = s->zbits[s->state_out_pos];
- s->state_out_pos++;
- s->strm->avail_out--;
- s->strm->next_out++;
- s->strm->total_out_lo32++;
- if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
- }
-
- return progress_out;
-}
-
-
-/*---------------------------------------------------*/
-static
-Bool handle_compress ( bz_stream* strm )
-{
- Bool progress_in = False;
- Bool progress_out = False;
- EState* s = strm->state;
-
- while (True) {
-
- if (s->state == BZ_S_OUTPUT) {
- progress_out |= copy_output_until_stop ( s );
- if (s->state_out_pos < s->numZ) break;
- if (s->mode == BZ_M_FINISHING &&
- s->avail_in_expect == 0 &&
- isempty_RL(s)) break;
- prepare_new_block ( s );
- s->state = BZ_S_INPUT;
- if (s->mode == BZ_M_FLUSHING &&
- s->avail_in_expect == 0 &&
- isempty_RL(s)) break;
- }
-
- if (s->state == BZ_S_INPUT) {
- progress_in |= copy_input_until_stop ( s );
- if (s->mode != BZ_M_RUNNING && s->avail_in_expect == 0) {
- flush_RL ( s );
- BZ2_compressBlock ( s, (Bool)(s->mode == BZ_M_FINISHING) );
- s->state = BZ_S_OUTPUT;
- }
- else
- if (s->nblock >= s->nblockMAX) {
- BZ2_compressBlock ( s, False );
- s->state = BZ_S_OUTPUT;
- }
- else
- if (s->strm->avail_in == 0) {
- break;
- }
- }
-
- }
-
- return progress_in || progress_out;
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzCompress) ( bz_stream *strm, int action )
-{
- Bool progress;
- EState* s;
- if (strm == NULL) return BZ_PARAM_ERROR;
- s = strm->state;
- if (s == NULL) return BZ_PARAM_ERROR;
- if (s->strm != strm) return BZ_PARAM_ERROR;
-
- preswitch:
- switch (s->mode) {
-
- case BZ_M_IDLE:
- return BZ_SEQUENCE_ERROR;
-
- case BZ_M_RUNNING:
- if (action == BZ_RUN) {
- progress = handle_compress ( strm );
- return progress ? BZ_RUN_OK : BZ_PARAM_ERROR;
- }
- else
- if (action == BZ_FLUSH) {
- s->avail_in_expect = strm->avail_in;
- s->mode = BZ_M_FLUSHING;
- goto preswitch;
- }
- else
- if (action == BZ_FINISH) {
- s->avail_in_expect = strm->avail_in;
- s->mode = BZ_M_FINISHING;
- goto preswitch;
- }
- else
- return BZ_PARAM_ERROR;
-
- case BZ_M_FLUSHING:
- if (action != BZ_FLUSH) return BZ_SEQUENCE_ERROR;
- if (s->avail_in_expect != s->strm->avail_in)
- return BZ_SEQUENCE_ERROR;
- progress = handle_compress ( strm );
- if (s->avail_in_expect > 0 || !isempty_RL(s) ||
- s->state_out_pos < s->numZ) return BZ_FLUSH_OK;
- s->mode = BZ_M_RUNNING;
- return BZ_RUN_OK;
-
- case BZ_M_FINISHING:
- if (action != BZ_FINISH) return BZ_SEQUENCE_ERROR;
- if (s->avail_in_expect != s->strm->avail_in)
- return BZ_SEQUENCE_ERROR;
- progress = handle_compress ( strm );
- if (!progress) return BZ_SEQUENCE_ERROR;
- if (s->avail_in_expect > 0 || !isempty_RL(s) ||
- s->state_out_pos < s->numZ) return BZ_FINISH_OK;
- s->mode = BZ_M_IDLE;
- return BZ_STREAM_END;
- }
- return BZ_OK; /*--not reached--*/
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzCompressEnd) ( bz_stream *strm )
-{
- EState* s;
- if (strm == NULL) return BZ_PARAM_ERROR;
- s = strm->state;
- if (s == NULL) return BZ_PARAM_ERROR;
- if (s->strm != strm) return BZ_PARAM_ERROR;
-
- if (s->arr1 != NULL) BZFREE(s->arr1);
- if (s->arr2 != NULL) BZFREE(s->arr2);
- if (s->ftab != NULL) BZFREE(s->ftab);
- BZFREE(strm->state);
-
- strm->state = NULL;
-
- return BZ_OK;
-}
-
-
-/*---------------------------------------------------*/
-/*--- Decompression stuff ---*/
-/*---------------------------------------------------*/
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzDecompressInit)
- ( bz_stream* strm,
- int verbosity,
- int small )
-{
- DState* s;
-
- if (!bz_config_ok()) return BZ_CONFIG_ERROR;
-
- if (strm == NULL) return BZ_PARAM_ERROR;
- if (small != 0 && small != 1) return BZ_PARAM_ERROR;
- if (verbosity < 0 || verbosity > 4) return BZ_PARAM_ERROR;
-
- if (strm->bzalloc == NULL) strm->bzalloc = default_bzalloc;
- if (strm->bzfree == NULL) strm->bzfree = default_bzfree;
-
- s = BZALLOC( sizeof(DState) );
- if (s == NULL) return BZ_MEM_ERROR;
- s->strm = strm;
- strm->state = s;
- s->state = BZ_X_MAGIC_1;
- s->bsLive = 0;
- s->bsBuff = 0;
- s->calculatedCombinedCRC = 0;
- strm->total_in_lo32 = 0;
- strm->total_in_hi32 = 0;
- strm->total_out_lo32 = 0;
- strm->total_out_hi32 = 0;
- s->smallDecompress = (Bool)small;
- s->ll4 = NULL;
- s->ll16 = NULL;
- s->tt = NULL;
- s->currBlockNo = 0;
- s->verbosity = verbosity;
-
- return BZ_OK;
-}
-
-
-/*---------------------------------------------------*/
-static
-void unRLE_obuf_to_output_FAST ( DState* s )
-{
- UChar k1;
-
- if (s->blockRandomised) {
-
- while (True) {
- /* try to finish existing run */
- while (True) {
- if (s->strm->avail_out == 0) return;
- if (s->state_out_len == 0) break;
- *( (UChar*)(s->strm->next_out) ) = s->state_out_ch;
- BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch );
- s->state_out_len--;
- s->strm->next_out++;
- s->strm->avail_out--;
- s->strm->total_out_lo32++;
- if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
- }
-
- /* can a new run be started? */
- if (s->nblock_used == s->save_nblock+1) return;
-
-
- s->state_out_len = 1;
- s->state_out_ch = s->k0;
- BZ_GET_FAST(k1); BZ_RAND_UPD_MASK;
- k1 ^= BZ_RAND_MASK; s->nblock_used++;
- if (s->nblock_used == s->save_nblock+1) continue;
- if (k1 != s->k0) { s->k0 = k1; continue; };
-
- s->state_out_len = 2;
- BZ_GET_FAST(k1); BZ_RAND_UPD_MASK;
- k1 ^= BZ_RAND_MASK; s->nblock_used++;
- if (s->nblock_used == s->save_nblock+1) continue;
- if (k1 != s->k0) { s->k0 = k1; continue; };
-
- s->state_out_len = 3;
- BZ_GET_FAST(k1); BZ_RAND_UPD_MASK;
- k1 ^= BZ_RAND_MASK; s->nblock_used++;
- if (s->nblock_used == s->save_nblock+1) continue;
- if (k1 != s->k0) { s->k0 = k1; continue; };
-
- BZ_GET_FAST(k1); BZ_RAND_UPD_MASK;
- k1 ^= BZ_RAND_MASK; s->nblock_used++;
- s->state_out_len = ((Int32)k1) + 4;
- BZ_GET_FAST(s->k0); BZ_RAND_UPD_MASK;
- s->k0 ^= BZ_RAND_MASK; s->nblock_used++;
- }
-
- } else {
-
- /* restore */
- UInt32 c_calculatedBlockCRC = s->calculatedBlockCRC;
- UChar c_state_out_ch = s->state_out_ch;
- Int32 c_state_out_len = s->state_out_len;
- Int32 c_nblock_used = s->nblock_used;
- Int32 c_k0 = s->k0;
- UInt32* c_tt = s->tt;
- UInt32 c_tPos = s->tPos;
- char* cs_next_out = s->strm->next_out;
- unsigned int cs_avail_out = s->strm->avail_out;
- /* end restore */
-
- UInt32 avail_out_INIT = cs_avail_out;
- Int32 s_save_nblockPP = s->save_nblock+1;
- unsigned int total_out_lo32_old;
-
- while (True) {
-
- /* try to finish existing run */
- if (c_state_out_len > 0) {
- while (True) {
- if (cs_avail_out == 0) goto return_notr;
- if (c_state_out_len == 1) break;
- *( (UChar*)(cs_next_out) ) = c_state_out_ch;
- BZ_UPDATE_CRC ( c_calculatedBlockCRC, c_state_out_ch );
- c_state_out_len--;
- cs_next_out++;
- cs_avail_out--;
- }
- s_state_out_len_eq_one:
- {
- if (cs_avail_out == 0) {
- c_state_out_len = 1; goto return_notr;
- };
- *( (UChar*)(cs_next_out) ) = c_state_out_ch;
- BZ_UPDATE_CRC ( c_calculatedBlockCRC, c_state_out_ch );
- cs_next_out++;
- cs_avail_out--;
- }
- }
- /* can a new run be started? */
- if (c_nblock_used == s_save_nblockPP) {
- c_state_out_len = 0; goto return_notr;
- };
- c_state_out_ch = c_k0;
- BZ_GET_FAST_C(k1); c_nblock_used++;
- if (k1 != c_k0) {
- c_k0 = k1; goto s_state_out_len_eq_one;
- };
- if (c_nblock_used == s_save_nblockPP)
- goto s_state_out_len_eq_one;
-
- c_state_out_len = 2;
- BZ_GET_FAST_C(k1); c_nblock_used++;
- if (c_nblock_used == s_save_nblockPP) continue;
- if (k1 != c_k0) { c_k0 = k1; continue; };
-
- c_state_out_len = 3;
- BZ_GET_FAST_C(k1); c_nblock_used++;
- if (c_nblock_used == s_save_nblockPP) continue;
- if (k1 != c_k0) { c_k0 = k1; continue; };
-
- BZ_GET_FAST_C(k1); c_nblock_used++;
- c_state_out_len = ((Int32)k1) + 4;
- BZ_GET_FAST_C(c_k0); c_nblock_used++;
- }
-
- return_notr:
- total_out_lo32_old = s->strm->total_out_lo32;
- s->strm->total_out_lo32 += (avail_out_INIT - cs_avail_out);
- if (s->strm->total_out_lo32 < total_out_lo32_old)
- s->strm->total_out_hi32++;
-
- /* save */
- s->calculatedBlockCRC = c_calculatedBlockCRC;
- s->state_out_ch = c_state_out_ch;
- s->state_out_len = c_state_out_len;
- s->nblock_used = c_nblock_used;
- s->k0 = c_k0;
- s->tt = c_tt;
- s->tPos = c_tPos;
- s->strm->next_out = cs_next_out;
- s->strm->avail_out = cs_avail_out;
- /* end save */
- }
-}
-
-
-
-/*---------------------------------------------------*/
-__inline__ Int32 BZ2_indexIntoF ( Int32 indx, Int32 *cftab )
-{
- Int32 nb, na, mid;
- nb = 0;
- na = 256;
- do {
- mid = (nb + na) >> 1;
- if (indx >= cftab[mid]) nb = mid; else na = mid;
- }
- while (na - nb != 1);
- return nb;
-}
-
-
-/*---------------------------------------------------*/
-static
-void unRLE_obuf_to_output_SMALL ( DState* s )
-{
- UChar k1;
-
- if (s->blockRandomised) {
-
- while (True) {
- /* try to finish existing run */
- while (True) {
- if (s->strm->avail_out == 0) return;
- if (s->state_out_len == 0) break;
- *( (UChar*)(s->strm->next_out) ) = s->state_out_ch;
- BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch );
- s->state_out_len--;
- s->strm->next_out++;
- s->strm->avail_out--;
- s->strm->total_out_lo32++;
- if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
- }
-
- /* can a new run be started? */
- if (s->nblock_used == s->save_nblock+1) return;
-
-
- s->state_out_len = 1;
- s->state_out_ch = s->k0;
- BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK;
- k1 ^= BZ_RAND_MASK; s->nblock_used++;
- if (s->nblock_used == s->save_nblock+1) continue;
- if (k1 != s->k0) { s->k0 = k1; continue; };
-
- s->state_out_len = 2;
- BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK;
- k1 ^= BZ_RAND_MASK; s->nblock_used++;
- if (s->nblock_used == s->save_nblock+1) continue;
- if (k1 != s->k0) { s->k0 = k1; continue; };
-
- s->state_out_len = 3;
- BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK;
- k1 ^= BZ_RAND_MASK; s->nblock_used++;
- if (s->nblock_used == s->save_nblock+1) continue;
- if (k1 != s->k0) { s->k0 = k1; continue; };
-
- BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK;
- k1 ^= BZ_RAND_MASK; s->nblock_used++;
- s->state_out_len = ((Int32)k1) + 4;
- BZ_GET_SMALL(s->k0); BZ_RAND_UPD_MASK;
- s->k0 ^= BZ_RAND_MASK; s->nblock_used++;
- }
-
- } else {
-
- while (True) {
- /* try to finish existing run */
- while (True) {
- if (s->strm->avail_out == 0) return;
- if (s->state_out_len == 0) break;
- *( (UChar*)(s->strm->next_out) ) = s->state_out_ch;
- BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch );
- s->state_out_len--;
- s->strm->next_out++;
- s->strm->avail_out--;
- s->strm->total_out_lo32++;
- if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
- }
-
- /* can a new run be started? */
- if (s->nblock_used == s->save_nblock+1) return;
-
- s->state_out_len = 1;
- s->state_out_ch = s->k0;
- BZ_GET_SMALL(k1); s->nblock_used++;
- if (s->nblock_used == s->save_nblock+1) continue;
- if (k1 != s->k0) { s->k0 = k1; continue; };
-
- s->state_out_len = 2;
- BZ_GET_SMALL(k1); s->nblock_used++;
- if (s->nblock_used == s->save_nblock+1) continue;
- if (k1 != s->k0) { s->k0 = k1; continue; };
-
- s->state_out_len = 3;
- BZ_GET_SMALL(k1); s->nblock_used++;
- if (s->nblock_used == s->save_nblock+1) continue;
- if (k1 != s->k0) { s->k0 = k1; continue; };
-
- BZ_GET_SMALL(k1); s->nblock_used++;
- s->state_out_len = ((Int32)k1) + 4;
- BZ_GET_SMALL(s->k0); s->nblock_used++;
- }
-
- }
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzDecompress) ( bz_stream *strm )
-{
- DState* s;
- if (strm == NULL) return BZ_PARAM_ERROR;
- s = strm->state;
- if (s == NULL) return BZ_PARAM_ERROR;
- if (s->strm != strm) return BZ_PARAM_ERROR;
-
- while (True) {
- if (s->state == BZ_X_IDLE) return BZ_SEQUENCE_ERROR;
- if (s->state == BZ_X_OUTPUT) {
- if (s->smallDecompress)
- unRLE_obuf_to_output_SMALL ( s ); else
- unRLE_obuf_to_output_FAST ( s );
- if (s->nblock_used == s->save_nblock+1 && s->state_out_len == 0) {
- BZ_FINALISE_CRC ( s->calculatedBlockCRC );
- if (s->verbosity >= 3)
- VPrintf2 ( " {0x%x, 0x%x}", s->storedBlockCRC,
- s->calculatedBlockCRC );
- if (s->verbosity >= 2) VPrintf0 ( "]" );
- if (s->calculatedBlockCRC != s->storedBlockCRC)
- return BZ_DATA_ERROR;
- s->calculatedCombinedCRC
- = (s->calculatedCombinedCRC << 1) |
- (s->calculatedCombinedCRC >> 31);
- s->calculatedCombinedCRC ^= s->calculatedBlockCRC;
- s->state = BZ_X_BLKHDR_1;
- } else {
- return BZ_OK;
- }
- }
- if (s->state >= BZ_X_MAGIC_1) {
- Int32 r = BZ2_decompress ( s );
- if (r == BZ_STREAM_END) {
- if (s->verbosity >= 3)
- VPrintf2 ( "\n combined CRCs: stored = 0x%x, computed = 0x%x",
- s->storedCombinedCRC, s->calculatedCombinedCRC );
- if (s->calculatedCombinedCRC != s->storedCombinedCRC)
- return BZ_DATA_ERROR;
- return r;
- }
- if (s->state != BZ_X_OUTPUT) return r;
- }
- }
-
- AssertH ( 0, 6001 );
-
- return 0; /*NOTREACHED*/
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzDecompressEnd) ( bz_stream *strm )
-{
- DState* s;
- if (strm == NULL) return BZ_PARAM_ERROR;
- s = strm->state;
- if (s == NULL) return BZ_PARAM_ERROR;
- if (s->strm != strm) return BZ_PARAM_ERROR;
-
- if (s->tt != NULL) BZFREE(s->tt);
- if (s->ll16 != NULL) BZFREE(s->ll16);
- if (s->ll4 != NULL) BZFREE(s->ll4);
-
- BZFREE(strm->state);
- strm->state = NULL;
-
- return BZ_OK;
-}
-
-
-#ifndef BZ_NO_STDIO
-/*---------------------------------------------------*/
-/*--- File I/O stuff ---*/
-/*---------------------------------------------------*/
-
-#define BZ_SETERR(eee) \
-{ \
- if (bzerror != NULL) *bzerror = eee; \
- if (bzf != NULL) bzf->lastErr = eee; \
-}
-
-typedef
- struct {
- FILE* handle;
- Char buf[BZ_MAX_UNUSED];
- Int32 bufN;
- Bool writing;
- bz_stream strm;
- Int32 lastErr;
- Bool initialisedOk;
- }
- bzFile;
-
-
-/*---------------------------------------------*/
-static Bool myfeof ( FILE* f )
-{
- return feof(f) ? True : False;
-}
-
-
-/*---------------------------------------------------*/
-BZFILE* BZ_API(BZ2_bzWriteOpen)
- ( int* bzerror,
- FILE* f,
- int blockSize100k,
- int verbosity,
- int workFactor )
-{
- Int32 ret;
- bzFile* bzf = NULL;
-
- BZ_SETERR(BZ_OK);
-
- if (f == NULL ||
- (blockSize100k < 1 || blockSize100k > 9) ||
- (workFactor < 0 || workFactor > 250) ||
- (verbosity < 0 || verbosity > 4))
- { BZ_SETERR(BZ_PARAM_ERROR); return NULL; };
-
- if (ferror(f))
- { BZ_SETERR(BZ_IO_ERROR); return NULL; };
-
- bzf = malloc ( sizeof(bzFile) );
- if (bzf == NULL)
- { BZ_SETERR(BZ_MEM_ERROR); return NULL; };
-
- BZ_SETERR(BZ_OK);
- bzf->initialisedOk = False;
- bzf->bufN = 0;
- bzf->handle = f;
- bzf->writing = True;
- bzf->strm.bzalloc = NULL;
- bzf->strm.bzfree = NULL;
- bzf->strm.opaque = NULL;
-
- if (workFactor == 0) workFactor = 30;
- ret = BZ2_bzCompressInit ( &(bzf->strm), blockSize100k,
- verbosity, workFactor );
- if (ret != BZ_OK)
- { BZ_SETERR(ret); free(bzf); return NULL; };
-
- bzf->strm.avail_in = 0;
- bzf->initialisedOk = True;
- return bzf;
-}
-
-
-
-/*---------------------------------------------------*/
-void BZ_API(BZ2_bzWrite)
- ( int* bzerror,
- BZFILE* b,
- void* buf,
- int len )
-{
- Int32 n, n2, ret;
- bzFile* bzf = (bzFile*)b;
-
- BZ_SETERR(BZ_OK);
- if (bzf == NULL || buf == NULL || len < 0)
- { BZ_SETERR(BZ_PARAM_ERROR); return; };
- if (!(bzf->writing))
- { BZ_SETERR(BZ_SEQUENCE_ERROR); return; };
- if (ferror(bzf->handle))
- { BZ_SETERR(BZ_IO_ERROR); return; };
-
- if (len == 0)
- { BZ_SETERR(BZ_OK); return; };
-
- bzf->strm.avail_in = len;
- bzf->strm.next_in = buf;
-
- while (True) {
- bzf->strm.avail_out = BZ_MAX_UNUSED;
- bzf->strm.next_out = bzf->buf;
- ret = BZ2_bzCompress ( &(bzf->strm), BZ_RUN );
- if (ret != BZ_RUN_OK)
- { BZ_SETERR(ret); return; };
-
- if (bzf->strm.avail_out < BZ_MAX_UNUSED) {
- n = BZ_MAX_UNUSED - bzf->strm.avail_out;
- n2 = fwrite ( (void*)(bzf->buf), sizeof(UChar),
- n, bzf->handle );
- if (n != n2 || ferror(bzf->handle))
- { BZ_SETERR(BZ_IO_ERROR); return; };
- }
-
- if (bzf->strm.avail_in == 0)
- { BZ_SETERR(BZ_OK); return; };
- }
-}
-
-
-/*---------------------------------------------------*/
-void BZ_API(BZ2_bzWriteClose)
- ( int* bzerror,
- BZFILE* b,
- int abandon,
- unsigned int* nbytes_in,
- unsigned int* nbytes_out )
-{
- BZ2_bzWriteClose64 ( bzerror, b, abandon,
- nbytes_in, NULL, nbytes_out, NULL );
-}
-
-
-void BZ_API(BZ2_bzWriteClose64)
- ( int* bzerror,
- BZFILE* b,
- int abandon,
- unsigned int* nbytes_in_lo32,
- unsigned int* nbytes_in_hi32,
- unsigned int* nbytes_out_lo32,
- unsigned int* nbytes_out_hi32 )
-{
- Int32 n, n2, ret;
- bzFile* bzf = (bzFile*)b;
-
- if (bzf == NULL)
- { BZ_SETERR(BZ_OK); return; };
- if (!(bzf->writing))
- { BZ_SETERR(BZ_SEQUENCE_ERROR); return; };
- if (ferror(bzf->handle))
- { BZ_SETERR(BZ_IO_ERROR); return; };
-
- if (nbytes_in_lo32 != NULL) *nbytes_in_lo32 = 0;
- if (nbytes_in_hi32 != NULL) *nbytes_in_hi32 = 0;
- if (nbytes_out_lo32 != NULL) *nbytes_out_lo32 = 0;
- if (nbytes_out_hi32 != NULL) *nbytes_out_hi32 = 0;
-
- if ((!abandon) && bzf->lastErr == BZ_OK) {
- while (True) {
- bzf->strm.avail_out = BZ_MAX_UNUSED;
- bzf->strm.next_out = bzf->buf;
- ret = BZ2_bzCompress ( &(bzf->strm), BZ_FINISH );
- if (ret != BZ_FINISH_OK && ret != BZ_STREAM_END)
- { BZ_SETERR(ret); return; };
-
- if (bzf->strm.avail_out < BZ_MAX_UNUSED) {
- n = BZ_MAX_UNUSED - bzf->strm.avail_out;
- n2 = fwrite ( (void*)(bzf->buf), sizeof(UChar),
- n, bzf->handle );
- if (n != n2 || ferror(bzf->handle))
- { BZ_SETERR(BZ_IO_ERROR); return; };
- }
-
- if (ret == BZ_STREAM_END) break;
- }
- }
-
- if ( !abandon && !ferror ( bzf->handle ) ) {
- fflush ( bzf->handle );
- if (ferror(bzf->handle))
- { BZ_SETERR(BZ_IO_ERROR); return; };
- }
-
- if (nbytes_in_lo32 != NULL)
- *nbytes_in_lo32 = bzf->strm.total_in_lo32;
- if (nbytes_in_hi32 != NULL)
- *nbytes_in_hi32 = bzf->strm.total_in_hi32;
- if (nbytes_out_lo32 != NULL)
- *nbytes_out_lo32 = bzf->strm.total_out_lo32;
- if (nbytes_out_hi32 != NULL)
- *nbytes_out_hi32 = bzf->strm.total_out_hi32;
-
- BZ_SETERR(BZ_OK);
- BZ2_bzCompressEnd ( &(bzf->strm) );
- free ( bzf );
-}
-
-
-/*---------------------------------------------------*/
-BZFILE* BZ_API(BZ2_bzReadOpen)
- ( int* bzerror,
- FILE* f,
- int verbosity,
- int small,
- void* unused,
- int nUnused )
-{
- bzFile* bzf = NULL;
- int ret;
-
- BZ_SETERR(BZ_OK);
-
- if (f == NULL ||
- (small != 0 && small != 1) ||
- (verbosity < 0 || verbosity > 4) ||
- (unused == NULL && nUnused != 0) ||
- (unused != NULL && (nUnused < 0 || nUnused > BZ_MAX_UNUSED)))
- { BZ_SETERR(BZ_PARAM_ERROR); return NULL; };
-
- if (ferror(f))
- { BZ_SETERR(BZ_IO_ERROR); return NULL; };
-
- bzf = malloc ( sizeof(bzFile) );
- if (bzf == NULL)
- { BZ_SETERR(BZ_MEM_ERROR); return NULL; };
-
- BZ_SETERR(BZ_OK);
-
- bzf->initialisedOk = False;
- bzf->handle = f;
- bzf->bufN = 0;
- bzf->writing = False;
- bzf->strm.bzalloc = NULL;
- bzf->strm.bzfree = NULL;
- bzf->strm.opaque = NULL;
-
- while (nUnused > 0) {
- bzf->buf[bzf->bufN] = *((UChar*)(unused)); bzf->bufN++;
- unused = ((void*)( 1 + ((UChar*)(unused)) ));
- nUnused--;
- }
-
- ret = BZ2_bzDecompressInit ( &(bzf->strm), verbosity, small );
- if (ret != BZ_OK)
- { BZ_SETERR(ret); free(bzf); return NULL; };
-
- bzf->strm.avail_in = bzf->bufN;
- bzf->strm.next_in = bzf->buf;
-
- bzf->initialisedOk = True;
- return bzf;
-}
-
-
-/*---------------------------------------------------*/
-void BZ_API(BZ2_bzReadClose) ( int *bzerror, BZFILE *b )
-{
- bzFile* bzf = (bzFile*)b;
-
- BZ_SETERR(BZ_OK);
- if (bzf == NULL)
- { BZ_SETERR(BZ_OK); return; };
-
- if (bzf->writing)
- { BZ_SETERR(BZ_SEQUENCE_ERROR); return; };
-
- if (bzf->initialisedOk)
- (void)BZ2_bzDecompressEnd ( &(bzf->strm) );
- free ( bzf );
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzRead)
- ( int* bzerror,
- BZFILE* b,
- void* buf,
- int len )
-{
- Int32 n, ret;
- bzFile* bzf = (bzFile*)b;
-
- BZ_SETERR(BZ_OK);
-
- if (bzf == NULL || buf == NULL || len < 0)
- { BZ_SETERR(BZ_PARAM_ERROR); return 0; };
-
- if (bzf->writing)
- { BZ_SETERR(BZ_SEQUENCE_ERROR); return 0; };
-
- if (len == 0)
- { BZ_SETERR(BZ_OK); return 0; };
-
- bzf->strm.avail_out = len;
- bzf->strm.next_out = buf;
-
- while (True) {
-
- if (ferror(bzf->handle))
- { BZ_SETERR(BZ_IO_ERROR); return 0; };
-
- if (bzf->strm.avail_in == 0 && !myfeof(bzf->handle)) {
- n = fread ( bzf->buf, sizeof(UChar),
- BZ_MAX_UNUSED, bzf->handle );
- if (ferror(bzf->handle))
- { BZ_SETERR(BZ_IO_ERROR); return 0; };
- bzf->bufN = n;
- bzf->strm.avail_in = bzf->bufN;
- bzf->strm.next_in = bzf->buf;
- }
-
- ret = BZ2_bzDecompress ( &(bzf->strm) );
-
- if (ret != BZ_OK && ret != BZ_STREAM_END)
- { BZ_SETERR(ret); return 0; };
-
- if (ret == BZ_OK && myfeof(bzf->handle) &&
- bzf->strm.avail_in == 0 && bzf->strm.avail_out > 0)
- { BZ_SETERR(BZ_UNEXPECTED_EOF); return 0; };
-
- if (ret == BZ_STREAM_END)
- { BZ_SETERR(BZ_STREAM_END);
- return len - bzf->strm.avail_out; };
- if (bzf->strm.avail_out == 0)
- { BZ_SETERR(BZ_OK); return len; };
-
- }
-
- return 0; /*not reached*/
-}
-
-
-/*---------------------------------------------------*/
-void BZ_API(BZ2_bzReadGetUnused)
- ( int* bzerror,
- BZFILE* b,
- void** unused,
- int* nUnused )
-{
- bzFile* bzf = (bzFile*)b;
- if (bzf == NULL)
- { BZ_SETERR(BZ_PARAM_ERROR); return; };
- if (bzf->lastErr != BZ_STREAM_END)
- { BZ_SETERR(BZ_SEQUENCE_ERROR); return; };
- if (unused == NULL || nUnused == NULL)
- { BZ_SETERR(BZ_PARAM_ERROR); return; };
-
- BZ_SETERR(BZ_OK);
- *nUnused = bzf->strm.avail_in;
- *unused = bzf->strm.next_in;
-}
-#endif
-
-
-/*---------------------------------------------------*/
-/*--- Misc convenience stuff ---*/
-/*---------------------------------------------------*/
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzBuffToBuffCompress)
- ( char* dest,
- unsigned int* destLen,
- char* source,
- unsigned int sourceLen,
- int blockSize100k,
- int verbosity,
- int workFactor )
-{
- bz_stream strm;
- int ret;
-
- if (dest == NULL || destLen == NULL ||
- source == NULL ||
- blockSize100k < 1 || blockSize100k > 9 ||
- verbosity < 0 || verbosity > 4 ||
- workFactor < 0 || workFactor > 250)
- return BZ_PARAM_ERROR;
-
- if (workFactor == 0) workFactor = 30;
- strm.bzalloc = NULL;
- strm.bzfree = NULL;
- strm.opaque = NULL;
- ret = BZ2_bzCompressInit ( &strm, blockSize100k,
- verbosity, workFactor );
- if (ret != BZ_OK) return ret;
-
- strm.next_in = source;
- strm.next_out = dest;
- strm.avail_in = sourceLen;
- strm.avail_out = *destLen;
-
- ret = BZ2_bzCompress ( &strm, BZ_FINISH );
- if (ret == BZ_FINISH_OK) goto output_overflow;
- if (ret != BZ_STREAM_END) goto errhandler;
-
- /* normal termination */
- *destLen -= strm.avail_out;
- BZ2_bzCompressEnd ( &strm );
- return BZ_OK;
-
- output_overflow:
- BZ2_bzCompressEnd ( &strm );
- return BZ_OUTBUFF_FULL;
-
- errhandler:
- BZ2_bzCompressEnd ( &strm );
- return ret;
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzBuffToBuffDecompress)
- ( char* dest,
- unsigned int* destLen,
- char* source,
- unsigned int sourceLen,
- int small,
- int verbosity )
-{
- bz_stream strm;
- int ret;
-
- if (dest == NULL || destLen == NULL ||
- source == NULL ||
- (small != 0 && small != 1) ||
- verbosity < 0 || verbosity > 4)
- return BZ_PARAM_ERROR;
-
- strm.bzalloc = NULL;
- strm.bzfree = NULL;
- strm.opaque = NULL;
- ret = BZ2_bzDecompressInit ( &strm, verbosity, small );
- if (ret != BZ_OK) return ret;
-
- strm.next_in = source;
- strm.next_out = dest;
- strm.avail_in = sourceLen;
- strm.avail_out = *destLen;
-
- ret = BZ2_bzDecompress ( &strm );
- if (ret == BZ_OK) goto output_overflow_or_eof;
- if (ret != BZ_STREAM_END) goto errhandler;
-
- /* normal termination */
- *destLen -= strm.avail_out;
- BZ2_bzDecompressEnd ( &strm );
- return BZ_OK;
-
- output_overflow_or_eof:
- if (strm.avail_out > 0) {
- BZ2_bzDecompressEnd ( &strm );
- return BZ_UNEXPECTED_EOF;
- } else {
- BZ2_bzDecompressEnd ( &strm );
- return BZ_OUTBUFF_FULL;
- };
-
- errhandler:
- BZ2_bzDecompressEnd ( &strm );
- return ret;
-}
-
-
-/*---------------------------------------------------*/
-/*--
- Code contributed by Yoshioka Tsuneo
- (QWF00133@niftyserve.or.jp/tsuneo-y@is.aist-nara.ac.jp),
- to support better zlib compatibility.
- This code is not _officially_ part of libbzip2 (yet);
- I haven't tested it, documented it, or considered the
- threading-safeness of it.
- If this code breaks, please contact both Yoshioka and me.
---*/
-/*---------------------------------------------------*/
-
-/*---------------------------------------------------*/
-/*--
- return version like "0.9.0c".
---*/
-const char * BZ_API(BZ2_bzlibVersion)(void)
-{
- return BZ_VERSION;
-}
-
-
-#ifndef BZ_NO_STDIO
-/*---------------------------------------------------*/
-
-#if defined(_WIN32) || defined(OS2) || defined(MSDOS)
-# include <fcntl.h>
-# include <io.h>
-# define SET_BINARY_MODE(file) setmode(fileno(file),O_BINARY)
-#else
-# define SET_BINARY_MODE(file)
-#endif
-static
-BZFILE * bzopen_or_bzdopen
- ( const char *path, /* no use when bzdopen */
- int fd, /* no use when bzdopen */
- const char *mode,
- int open_mode) /* bzopen: 0, bzdopen:1 */
-{
- int bzerr;
- char unused[BZ_MAX_UNUSED];
- int blockSize100k = 9;
- int writing = 0;
- char mode2[10] = "";
- FILE *fp = NULL;
- BZFILE *bzfp = NULL;
- int verbosity = 0;
- int workFactor = 30;
- int smallMode = 0;
- int nUnused = 0;
-
- if (mode == NULL) return NULL;
- while (*mode) {
- switch (*mode) {
- case 'r':
- writing = 0; break;
- case 'w':
- writing = 1; break;
- case 's':
- smallMode = 1; break;
- default:
- if (isdigit((int)(*mode))) {
- blockSize100k = *mode-'0';
- }
- }
- mode++;
- }
- strcat(mode2, writing ? "w" : "r" );
- strcat(mode2,"b"); /* binary mode */
-
- if (open_mode==0) {
- if (path==NULL || strcmp(path,"")==0) {
- fp = (writing ? stdout : stdin);
- SET_BINARY_MODE(fp);
- } else {
- fp = fopen(path,mode2);
- }
- } else {
-#ifdef BZ_STRICT_ANSI
- fp = NULL;
-#else
- fp = fdopen(fd,mode2);
-#endif
- }
- if (fp == NULL) return NULL;
-
- if (writing) {
- /* Guard against total chaos and anarchy -- JRS */
- if (blockSize100k < 1) blockSize100k = 1;
- if (blockSize100k > 9) blockSize100k = 9;
- bzfp = BZ2_bzWriteOpen(&bzerr,fp,blockSize100k,
- verbosity,workFactor);
- } else {
- bzfp = BZ2_bzReadOpen(&bzerr,fp,verbosity,smallMode,
- unused,nUnused);
- }
- if (bzfp == NULL) {
- if (fp != stdin && fp != stdout) fclose(fp);
- return NULL;
- }
- return bzfp;
-}
-
-
-/*---------------------------------------------------*/
-/*--
- open file for read or write.
- ex) bzopen("file","w9")
- case path="" or NULL => use stdin or stdout.
---*/
-BZFILE * BZ_API(BZ2_bzopen)
- ( const char *path,
- const char *mode )
-{
- return bzopen_or_bzdopen(path,-1,mode,/*bzopen*/0);
-}
-
-
-/*---------------------------------------------------*/
-BZFILE * BZ_API(BZ2_bzdopen)
- ( int fd,
- const char *mode )
-{
- return bzopen_or_bzdopen(NULL,fd,mode,/*bzdopen*/1);
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzread) (BZFILE* b, void* buf, int len )
-{
- int bzerr, nread;
- if (((bzFile*)b)->lastErr == BZ_STREAM_END) return 0;
- nread = BZ2_bzRead(&bzerr,b,buf,len);
- if (bzerr == BZ_OK || bzerr == BZ_STREAM_END) {
- return nread;
- } else {
- return -1;
- }
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzwrite) (BZFILE* b, void* buf, int len )
-{
- int bzerr;
-
- BZ2_bzWrite(&bzerr,b,buf,len);
- if(bzerr == BZ_OK){
- return len;
- }else{
- return -1;
- }
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzflush) (BZFILE *b __attribute__ ((unused)))
-{
- /* do nothing now... */
- return 0;
-}
-
-
-/*---------------------------------------------------*/
-void BZ_API(BZ2_bzclose) (BZFILE* b)
-{
- int bzerr;
- FILE *fp = ((bzFile *)b)->handle;
-
- if (b==NULL) {return;}
- if(((bzFile*)b)->writing){
- BZ2_bzWriteClose(&bzerr,b,0,NULL,NULL);
- if(bzerr != BZ_OK){
- BZ2_bzWriteClose(NULL,b,1,NULL,NULL);
- }
- }else{
- BZ2_bzReadClose(&bzerr,b);
- }
- if(fp!=stdin && fp!=stdout){
- fclose(fp);
- }
-}
-
-
-/*---------------------------------------------------*/
-/*--
- return last error code
---*/
-static char *bzerrorstrings[] = {
- "OK"
- ,"SEQUENCE_ERROR"
- ,"PARAM_ERROR"
- ,"MEM_ERROR"
- ,"DATA_ERROR"
- ,"DATA_ERROR_MAGIC"
- ,"IO_ERROR"
- ,"UNEXPECTED_EOF"
- ,"OUTBUFF_FULL"
- ,"CONFIG_ERROR"
- ,"???" /* for future */
- ,"???" /* for future */
- ,"???" /* for future */
- ,"???" /* for future */
- ,"???" /* for future */
- ,"???" /* for future */
-};
-
-
-const char * BZ_API(BZ2_bzerror) (BZFILE *b, int *errnum)
-{
- int err = ((bzFile *)b)->lastErr;
-
- if(err>0) err = 0;
- *errnum = err;
- return bzerrorstrings[err*-1];
-}
-#endif
-
-
-/*-------------------------------------------------------------*/
-/*--- end bzlib.c ---*/
-/*-------------------------------------------------------------*/
diff --git a/mdk-stage1/bzlib/bzlib.h b/mdk-stage1/bzlib/bzlib.h
deleted file mode 100644
index c9447a295..000000000
--- a/mdk-stage1/bzlib/bzlib.h
+++ /dev/null
@@ -1,319 +0,0 @@
-
-/*-------------------------------------------------------------*/
-/*--- Public header file for the library. ---*/
-/*--- bzlib.h ---*/
-/*-------------------------------------------------------------*/
-
-/*--
- This file is a part of bzip2 and/or libbzip2, a program and
- library for lossless, block-sorting data compression.
-
- Copyright (C) 1996-2000 Julian R Seward. 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. 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.
-
- 3. Altered source versions must be plainly marked as such, and must
- not be misrepresented as being the original software.
-
- 4. 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 BY THE AUTHOR ``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 AUTHOR 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.
-
- Julian Seward, Cambridge, UK.
- jseward@acm.org
- bzip2/libbzip2 version 1.0 of 21 March 2000
-
- This program is based on (at least) the work of:
- Mike Burrows
- David Wheeler
- Peter Fenwick
- Alistair Moffat
- Radford Neal
- Ian H. Witten
- Robert Sedgewick
- Jon L. Bentley
-
- For more information on these sources, see the manual.
---*/
-
-
-#ifndef _BZLIB_H
-#define _BZLIB_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define BZ_RUN 0
-#define BZ_FLUSH 1
-#define BZ_FINISH 2
-
-#define BZ_OK 0
-#define BZ_RUN_OK 1
-#define BZ_FLUSH_OK 2
-#define BZ_FINISH_OK 3
-#define BZ_STREAM_END 4
-#define BZ_SEQUENCE_ERROR (-1)
-#define BZ_PARAM_ERROR (-2)
-#define BZ_MEM_ERROR (-3)
-#define BZ_DATA_ERROR (-4)
-#define BZ_DATA_ERROR_MAGIC (-5)
-#define BZ_IO_ERROR (-6)
-#define BZ_UNEXPECTED_EOF (-7)
-#define BZ_OUTBUFF_FULL (-8)
-#define BZ_CONFIG_ERROR (-9)
-
-typedef
- struct {
- char *next_in;
- unsigned int avail_in;
- unsigned int total_in_lo32;
- unsigned int total_in_hi32;
-
- char *next_out;
- unsigned int avail_out;
- unsigned int total_out_lo32;
- unsigned int total_out_hi32;
-
- void *state;
-
- void *(*bzalloc)(void *,int,int);
- void (*bzfree)(void *,void *);
- void *opaque;
- }
- bz_stream;
-
-
-#ifndef BZ_IMPORT
-#define BZ_EXPORT
-#endif
-
-#ifdef _WIN32
-# include <stdio.h>
-# include <windows.h>
-# ifdef small
- /* windows.h define small to char */
-# undef small
-# endif
-# ifdef BZ_EXPORT
-# define BZ_API(func) WINAPI func
-# define BZ_EXTERN extern
-# else
- /* import windows dll dynamically */
-# define BZ_API(func) (WINAPI * func)
-# define BZ_EXTERN
-# endif
-#else
-# define BZ_API(func) func
-# define BZ_EXTERN extern
-#endif
-
-
-/*-- Core (low-level) library functions --*/
-
-BZ_EXTERN int BZ_API(BZ2_bzCompressInit) (
- bz_stream* strm,
- int blockSize100k,
- int verbosity,
- int workFactor
- );
-
-BZ_EXTERN int BZ_API(BZ2_bzCompress) (
- bz_stream* strm,
- int action
- );
-
-BZ_EXTERN int BZ_API(BZ2_bzCompressEnd) (
- bz_stream* strm
- );
-
-BZ_EXTERN int BZ_API(BZ2_bzDecompressInit) (
- bz_stream *strm,
- int verbosity,
- int small
- );
-
-BZ_EXTERN int BZ_API(BZ2_bzDecompress) (
- bz_stream* strm
- );
-
-BZ_EXTERN int BZ_API(BZ2_bzDecompressEnd) (
- bz_stream *strm
- );
-
-
-
-/*-- High(er) level library functions --*/
-
-#ifndef BZ_NO_STDIO
-#define BZ_MAX_UNUSED 5000
-
-typedef void BZFILE;
-
-BZ_EXTERN BZFILE* BZ_API(BZ2_bzReadOpen) (
- int* bzerror,
- FILE* f,
- int verbosity,
- int small,
- void* unused,
- int nUnused
- );
-
-BZ_EXTERN void BZ_API(BZ2_bzReadClose) (
- int* bzerror,
- BZFILE* b
- );
-
-BZ_EXTERN void BZ_API(BZ2_bzReadGetUnused) (
- int* bzerror,
- BZFILE* b,
- void** unused,
- int* nUnused
- );
-
-BZ_EXTERN int BZ_API(BZ2_bzRead) (
- int* bzerror,
- BZFILE* b,
- void* buf,
- int len
- );
-
-BZ_EXTERN BZFILE* BZ_API(BZ2_bzWriteOpen) (
- int* bzerror,
- FILE* f,
- int blockSize100k,
- int verbosity,
- int workFactor
- );
-
-BZ_EXTERN void BZ_API(BZ2_bzWrite) (
- int* bzerror,
- BZFILE* b,
- void* buf,
- int len
- );
-
-BZ_EXTERN void BZ_API(BZ2_bzWriteClose) (
- int* bzerror,
- BZFILE* b,
- int abandon,
- unsigned int* nbytes_in,
- unsigned int* nbytes_out
- );
-
-BZ_EXTERN void BZ_API(BZ2_bzWriteClose64) (
- int* bzerror,
- BZFILE* b,
- int abandon,
- unsigned int* nbytes_in_lo32,
- unsigned int* nbytes_in_hi32,
- unsigned int* nbytes_out_lo32,
- unsigned int* nbytes_out_hi32
- );
-#endif
-
-
-/*-- Utility functions --*/
-
-BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffCompress) (
- char* dest,
- unsigned int* destLen,
- char* source,
- unsigned int sourceLen,
- int blockSize100k,
- int verbosity,
- int workFactor
- );
-
-BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffDecompress) (
- char* dest,
- unsigned int* destLen,
- char* source,
- unsigned int sourceLen,
- int small,
- int verbosity
- );
-
-
-/*--
- Code contributed by Yoshioka Tsuneo
- (QWF00133@niftyserve.or.jp/tsuneo-y@is.aist-nara.ac.jp),
- to support better zlib compatibility.
- This code is not _officially_ part of libbzip2 (yet);
- I haven't tested it, documented it, or considered the
- threading-safeness of it.
- If this code breaks, please contact both Yoshioka and me.
---*/
-
-BZ_EXTERN const char * BZ_API(BZ2_bzlibVersion) (
- void
- );
-
-#ifndef BZ_NO_STDIO
-BZ_EXTERN BZFILE * BZ_API(BZ2_bzopen) (
- const char *path,
- const char *mode
- );
-
-BZ_EXTERN BZFILE * BZ_API(BZ2_bzdopen) (
- int fd,
- const char *mode
- );
-
-BZ_EXTERN int BZ_API(BZ2_bzread) (
- BZFILE* b,
- void* buf,
- int len
- );
-
-BZ_EXTERN int BZ_API(BZ2_bzwrite) (
- BZFILE* b,
- void* buf,
- int len
- );
-
-BZ_EXTERN int BZ_API(BZ2_bzflush) (
- BZFILE* b
- );
-
-BZ_EXTERN void BZ_API(BZ2_bzclose) (
- BZFILE* b
- );
-
-BZ_EXTERN const char * BZ_API(BZ2_bzerror) (
- BZFILE *b,
- int *errnum
- );
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-/*-------------------------------------------------------------*/
-/*--- end bzlib.h ---*/
-/*-------------------------------------------------------------*/
diff --git a/mdk-stage1/bzlib/bzlib_private.h b/mdk-stage1/bzlib/bzlib_private.h
deleted file mode 100644
index fb51c7a1d..000000000
--- a/mdk-stage1/bzlib/bzlib_private.h
+++ /dev/null
@@ -1,530 +0,0 @@
-
-/*-------------------------------------------------------------*/
-/*--- Private header file for the library. ---*/
-/*--- bzlib_private.h ---*/
-/*-------------------------------------------------------------*/
-
-/*--
- This file is a part of bzip2 and/or libbzip2, a program and
- library for lossless, block-sorting data compression.
-
- Copyright (C) 1996-2000 Julian R Seward. 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. 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.
-
- 3. Altered source versions must be plainly marked as such, and must
- not be misrepresented as being the original software.
-
- 4. 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 BY THE AUTHOR ``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 AUTHOR 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.
-
- Julian Seward, Cambridge, UK.
- jseward@acm.org
- bzip2/libbzip2 version 1.0 of 21 March 2000
-
- This program is based on (at least) the work of:
- Mike Burrows
- David Wheeler
- Peter Fenwick
- Alistair Moffat
- Radford Neal
- Ian H. Witten
- Robert Sedgewick
- Jon L. Bentley
-
- For more information on these sources, see the manual.
---*/
-
-
-#ifndef _BZLIB_PRIVATE_H
-#define _BZLIB_PRIVATE_H
-
-#include <stdlib.h>
-
-#ifndef BZ_NO_STDIO
-#include <stdio.h>
-#include <ctype.h>
-#include <string.h>
-#endif
-
-#include "bzlib.h"
-
-
-
-/*-- General stuff. --*/
-
-#define BZ_VERSION "1.0.1, 23-June-2000"
-
-typedef char Char;
-typedef unsigned char Bool;
-typedef unsigned char UChar;
-typedef int Int32;
-typedef unsigned int UInt32;
-typedef short Int16;
-typedef unsigned short UInt16;
-
-#define True ((Bool)1)
-#define False ((Bool)0)
-
-#ifndef __GNUC__
-#define __inline__ /* */
-#endif
-
-#ifndef BZ_NO_STDIO
-extern void BZ2_bz__AssertH__fail ( int errcode );
-#define AssertH(cond,errcode) \
- { if (!(cond)) BZ2_bz__AssertH__fail ( errcode ); }
-#if BZ_DEBUG
-#define AssertD(cond,msg) \
- { if (!(cond)) { \
- fprintf ( stderr, \
- "\n\nlibbzip2(debug build): internal error\n\t%s\n", msg );\
- exit(1); \
- }}
-#else
-#define AssertD(cond,msg) /* */
-#endif
-#define VPrintf0(zf) \
- fprintf(stderr,zf)
-#define VPrintf1(zf,za1) \
- fprintf(stderr,zf,za1)
-#define VPrintf2(zf,za1,za2) \
- fprintf(stderr,zf,za1,za2)
-#define VPrintf3(zf,za1,za2,za3) \
- fprintf(stderr,zf,za1,za2,za3)
-#define VPrintf4(zf,za1,za2,za3,za4) \
- fprintf(stderr,zf,za1,za2,za3,za4)
-#define VPrintf5(zf,za1,za2,za3,za4,za5) \
- fprintf(stderr,zf,za1,za2,za3,za4,za5)
-#else
-extern void bz_internal_error ( int errcode );
-#define AssertH(cond,errcode) \
- { if (!(cond)) bz_internal_error ( errcode ); }
-#define AssertD(cond,msg) /* */
-#define VPrintf0(zf) /* */
-#define VPrintf1(zf,za1) /* */
-#define VPrintf2(zf,za1,za2) /* */
-#define VPrintf3(zf,za1,za2,za3) /* */
-#define VPrintf4(zf,za1,za2,za3,za4) /* */
-#define VPrintf5(zf,za1,za2,za3,za4,za5) /* */
-#endif
-
-
-#define BZALLOC(nnn) (strm->bzalloc)(strm->opaque,(nnn),1)
-#define BZFREE(ppp) (strm->bzfree)(strm->opaque,(ppp))
-
-
-/*-- Constants for the back end. --*/
-
-#define BZ_MAX_ALPHA_SIZE 258
-#define BZ_MAX_CODE_LEN 23
-
-#define BZ_RUNA 0
-#define BZ_RUNB 1
-
-#define BZ_N_GROUPS 6
-#define BZ_G_SIZE 50
-#define BZ_N_ITERS 4
-
-#define BZ_MAX_SELECTORS (2 + (900000 / BZ_G_SIZE))
-
-
-
-/*-- Stuff for randomising repetitive blocks. --*/
-
-extern Int32 BZ2_rNums[512];
-
-#define BZ_RAND_DECLS \
- Int32 rNToGo; \
- Int32 rTPos \
-
-#define BZ_RAND_INIT_MASK \
- s->rNToGo = 0; \
- s->rTPos = 0 \
-
-#define BZ_RAND_MASK ((s->rNToGo == 1) ? 1 : 0)
-
-#define BZ_RAND_UPD_MASK \
- if (s->rNToGo == 0) { \
- s->rNToGo = BZ2_rNums[s->rTPos]; \
- s->rTPos++; \
- if (s->rTPos == 512) s->rTPos = 0; \
- } \
- s->rNToGo--;
-
-
-
-/*-- Stuff for doing CRCs. --*/
-
-extern UInt32 BZ2_crc32Table[256];
-
-#define BZ_INITIALISE_CRC(crcVar) \
-{ \
- crcVar = 0xffffffffL; \
-}
-
-#define BZ_FINALISE_CRC(crcVar) \
-{ \
- crcVar = ~(crcVar); \
-}
-
-#define BZ_UPDATE_CRC(crcVar,cha) \
-{ \
- crcVar = (crcVar << 8) ^ \
- BZ2_crc32Table[(crcVar >> 24) ^ \
- ((UChar)cha)]; \
-}
-
-
-
-/*-- States and modes for compression. --*/
-
-#define BZ_M_IDLE 1
-#define BZ_M_RUNNING 2
-#define BZ_M_FLUSHING 3
-#define BZ_M_FINISHING 4
-
-#define BZ_S_OUTPUT 1
-#define BZ_S_INPUT 2
-
-#define BZ_N_RADIX 2
-#define BZ_N_QSORT 12
-#define BZ_N_SHELL 18
-#define BZ_N_OVERSHOOT (BZ_N_RADIX + BZ_N_QSORT + BZ_N_SHELL + 2)
-
-
-
-
-/*-- Structure holding all the compression-side stuff. --*/
-
-typedef
- struct {
- /* pointer back to the struct bz_stream */
- bz_stream* strm;
-
- /* mode this stream is in, and whether inputting */
- /* or outputting data */
- Int32 mode;
- Int32 state;
-
- /* remembers avail_in when flush/finish requested */
- UInt32 avail_in_expect;
-
- /* for doing the block sorting */
- UInt32* arr1;
- UInt32* arr2;
- UInt32* ftab;
- Int32 origPtr;
-
- /* aliases for arr1 and arr2 */
- UInt32* ptr;
- UChar* block;
- UInt16* mtfv;
- UChar* zbits;
-
- /* for deciding when to use the fallback sorting algorithm */
- Int32 workFactor;
-
- /* run-length-encoding of the input */
- UInt32 state_in_ch;
- Int32 state_in_len;
- BZ_RAND_DECLS;
-
- /* input and output limits and current posns */
- Int32 nblock;
- Int32 nblockMAX;
- Int32 numZ;
- Int32 state_out_pos;
-
- /* map of bytes used in block */
- Int32 nInUse;
- Bool inUse[256];
- UChar unseqToSeq[256];
-
- /* the buffer for bit stream creation */
- UInt32 bsBuff;
- Int32 bsLive;
-
- /* block and combined CRCs */
- UInt32 blockCRC;
- UInt32 combinedCRC;
-
- /* misc administratium */
- Int32 verbosity;
- Int32 blockNo;
- Int32 blockSize100k;
-
- /* stuff for coding the MTF values */
- Int32 nMTF;
- Int32 mtfFreq [BZ_MAX_ALPHA_SIZE];
- UChar selector [BZ_MAX_SELECTORS];
- UChar selectorMtf[BZ_MAX_SELECTORS];
-
- UChar len [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
- Int32 code [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
- Int32 rfreq [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
- /* second dimension: only 3 needed; 4 makes index calculations faster */
- UInt32 len_pack[BZ_MAX_ALPHA_SIZE][4];
-
- }
- EState;
-
-
-
-/*-- externs for compression. --*/
-
-extern void
-BZ2_blockSort ( EState* );
-
-extern void
-BZ2_compressBlock ( EState*, Bool );
-
-extern void
-BZ2_bsInitWrite ( EState* );
-
-extern void
-BZ2_hbAssignCodes ( Int32*, UChar*, Int32, Int32, Int32 );
-
-extern void
-BZ2_hbMakeCodeLengths ( UChar*, Int32*, Int32, Int32 );
-
-
-
-/*-- states for decompression. --*/
-
-#define BZ_X_IDLE 1
-#define BZ_X_OUTPUT 2
-
-#define BZ_X_MAGIC_1 10
-#define BZ_X_MAGIC_2 11
-#define BZ_X_MAGIC_3 12
-#define BZ_X_MAGIC_4 13
-#define BZ_X_BLKHDR_1 14
-#define BZ_X_BLKHDR_2 15
-#define BZ_X_BLKHDR_3 16
-#define BZ_X_BLKHDR_4 17
-#define BZ_X_BLKHDR_5 18
-#define BZ_X_BLKHDR_6 19
-#define BZ_X_BCRC_1 20
-#define BZ_X_BCRC_2 21
-#define BZ_X_BCRC_3 22
-#define BZ_X_BCRC_4 23
-#define BZ_X_RANDBIT 24
-#define BZ_X_ORIGPTR_1 25
-#define BZ_X_ORIGPTR_2 26
-#define BZ_X_ORIGPTR_3 27
-#define BZ_X_MAPPING_1 28
-#define BZ_X_MAPPING_2 29
-#define BZ_X_SELECTOR_1 30
-#define BZ_X_SELECTOR_2 31
-#define BZ_X_SELECTOR_3 32
-#define BZ_X_CODING_1 33
-#define BZ_X_CODING_2 34
-#define BZ_X_CODING_3 35
-#define BZ_X_MTF_1 36
-#define BZ_X_MTF_2 37
-#define BZ_X_MTF_3 38
-#define BZ_X_MTF_4 39
-#define BZ_X_MTF_5 40
-#define BZ_X_MTF_6 41
-#define BZ_X_ENDHDR_2 42
-#define BZ_X_ENDHDR_3 43
-#define BZ_X_ENDHDR_4 44
-#define BZ_X_ENDHDR_5 45
-#define BZ_X_ENDHDR_6 46
-#define BZ_X_CCRC_1 47
-#define BZ_X_CCRC_2 48
-#define BZ_X_CCRC_3 49
-#define BZ_X_CCRC_4 50
-
-
-
-/*-- Constants for the fast MTF decoder. --*/
-
-#define MTFA_SIZE 4096
-#define MTFL_SIZE 16
-
-
-
-/*-- Structure holding all the decompression-side stuff. --*/
-
-typedef
- struct {
- /* pointer back to the struct bz_stream */
- bz_stream* strm;
-
- /* state indicator for this stream */
- Int32 state;
-
- /* for doing the final run-length decoding */
- UChar state_out_ch;
- Int32 state_out_len;
- Bool blockRandomised;
- BZ_RAND_DECLS;
-
- /* the buffer for bit stream reading */
- UInt32 bsBuff;
- Int32 bsLive;
-
- /* misc administratium */
- Int32 blockSize100k;
- Bool smallDecompress;
- Int32 currBlockNo;
- Int32 verbosity;
-
- /* for undoing the Burrows-Wheeler transform */
- Int32 origPtr;
- UInt32 tPos;
- Int32 k0;
- Int32 unzftab[256];
- Int32 nblock_used;
- Int32 cftab[257];
- Int32 cftabCopy[257];
-
- /* for undoing the Burrows-Wheeler transform (FAST) */
- UInt32 *tt;
-
- /* for undoing the Burrows-Wheeler transform (SMALL) */
- UInt16 *ll16;
- UChar *ll4;
-
- /* stored and calculated CRCs */
- UInt32 storedBlockCRC;
- UInt32 storedCombinedCRC;
- UInt32 calculatedBlockCRC;
- UInt32 calculatedCombinedCRC;
-
- /* map of bytes used in block */
- Int32 nInUse;
- Bool inUse[256];
- Bool inUse16[16];
- UChar seqToUnseq[256];
-
- /* for decoding the MTF values */
- UChar mtfa [MTFA_SIZE];
- Int32 mtfbase[256 / MTFL_SIZE];
- UChar selector [BZ_MAX_SELECTORS];
- UChar selectorMtf[BZ_MAX_SELECTORS];
- UChar len [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
-
- Int32 limit [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
- Int32 base [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
- Int32 perm [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
- Int32 minLens[BZ_N_GROUPS];
-
- /* save area for scalars in the main decompress code */
- Int32 save_i;
- Int32 save_j;
- Int32 save_t;
- Int32 save_alphaSize;
- Int32 save_nGroups;
- Int32 save_nSelectors;
- Int32 save_EOB;
- Int32 save_groupNo;
- Int32 save_groupPos;
- Int32 save_nextSym;
- Int32 save_nblockMAX;
- Int32 save_nblock;
- Int32 save_es;
- Int32 save_N;
- Int32 save_curr;
- Int32 save_zt;
- Int32 save_zn;
- Int32 save_zvec;
- Int32 save_zj;
- Int32 save_gSel;
- Int32 save_gMinlen;
- Int32* save_gLimit;
- Int32* save_gBase;
- Int32* save_gPerm;
-
- }
- DState;
-
-
-
-/*-- Macros for decompression. --*/
-
-#define BZ_GET_FAST(cccc) \
- s->tPos = s->tt[s->tPos]; \
- cccc = (UChar)(s->tPos & 0xff); \
- s->tPos >>= 8;
-
-#define BZ_GET_FAST_C(cccc) \
- c_tPos = c_tt[c_tPos]; \
- cccc = (UChar)(c_tPos & 0xff); \
- c_tPos >>= 8;
-
-#define SET_LL4(i,n) \
- { if (((i) & 0x1) == 0) \
- s->ll4[(i) >> 1] = (s->ll4[(i) >> 1] & 0xf0) | (n); else \
- s->ll4[(i) >> 1] = (s->ll4[(i) >> 1] & 0x0f) | ((n) << 4); \
- }
-
-#define GET_LL4(i) \
- ((((UInt32)(s->ll4[(i) >> 1])) >> (((i) << 2) & 0x4)) & 0xF)
-
-#define SET_LL(i,n) \
- { s->ll16[i] = (UInt16)(n & 0x0000ffff); \
- SET_LL4(i, n >> 16); \
- }
-
-#define GET_LL(i) \
- (((UInt32)s->ll16[i]) | (GET_LL4(i) << 16))
-
-#define BZ_GET_SMALL(cccc) \
- cccc = BZ2_indexIntoF ( s->tPos, s->cftab ); \
- s->tPos = GET_LL(s->tPos);
-
-
-/*-- externs for decompression. --*/
-
-extern Int32
-BZ2_indexIntoF ( Int32, Int32* );
-
-extern Int32
-BZ2_decompress ( DState* );
-
-extern void
-BZ2_hbCreateDecodeTables ( Int32*, Int32*, Int32*, UChar*,
- Int32, Int32, Int32 );
-
-
-#endif
-
-
-/*-- BZ_NO_STDIO seems to make NULL disappear on some platforms. --*/
-
-#ifdef BZ_NO_STDIO
-#ifndef NULL
-#define NULL 0
-#endif
-#endif
-
-
-/*-------------------------------------------------------------*/
-/*--- end bzlib_private.h ---*/
-/*-------------------------------------------------------------*/
diff --git a/mdk-stage1/bzlib/compress.c b/mdk-stage1/bzlib/compress.c
deleted file mode 100644
index 58d5abe7c..000000000
--- a/mdk-stage1/bzlib/compress.c
+++ /dev/null
@@ -1,720 +0,0 @@
-
-/*-------------------------------------------------------------*/
-/*--- Compression machinery (not incl block sorting) ---*/
-/*--- compress.c ---*/
-/*-------------------------------------------------------------*/
-
-/*--
- This file is a part of bzip2 and/or libbzip2, a program and
- library for lossless, block-sorting data compression.
-
- Copyright (C) 1996-2000 Julian R Seward. 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. 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.
-
- 3. Altered source versions must be plainly marked as such, and must
- not be misrepresented as being the original software.
-
- 4. 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 BY THE AUTHOR ``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 AUTHOR 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.
-
- Julian Seward, Cambridge, UK.
- jseward@acm.org
- bzip2/libbzip2 version 1.0 of 21 March 2000
-
- This program is based on (at least) the work of:
- Mike Burrows
- David Wheeler
- Peter Fenwick
- Alistair Moffat
- Radford Neal
- Ian H. Witten
- Robert Sedgewick
- Jon L. Bentley
-
- For more information on these sources, see the manual.
---*/
-
-/*--
- CHANGES
- ~~~~~~~
- 0.9.0 -- original version.
-
- 0.9.0a/b -- no changes in this file.
-
- 0.9.0c
- * changed setting of nGroups in sendMTFValues() so as to
- do a bit better on small files
---*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-
-
-#include "bzlib_private.h"
-
-
-/*---------------------------------------------------*/
-/*--- Bit stream I/O ---*/
-/*---------------------------------------------------*/
-
-/*---------------------------------------------------*/
-void BZ2_bsInitWrite ( EState* s )
-{
- s->bsLive = 0;
- s->bsBuff = 0;
-}
-
-
-/*---------------------------------------------------*/
-static
-void bsFinishWrite ( EState* s )
-{
- while (s->bsLive > 0) {
- s->zbits[s->numZ] = (UChar)(s->bsBuff >> 24);
- s->numZ++;
- s->bsBuff <<= 8;
- s->bsLive -= 8;
- }
-}
-
-
-/*---------------------------------------------------*/
-#define bsNEEDW(nz) \
-{ \
- while (s->bsLive >= 8) { \
- s->zbits[s->numZ] \
- = (UChar)(s->bsBuff >> 24); \
- s->numZ++; \
- s->bsBuff <<= 8; \
- s->bsLive -= 8; \
- } \
-}
-
-
-/*---------------------------------------------------*/
-static
-__inline__
-void bsW ( EState* s, Int32 n, UInt32 v )
-{
- bsNEEDW ( n );
- s->bsBuff |= (v << (32 - s->bsLive - n));
- s->bsLive += n;
-}
-
-
-/*---------------------------------------------------*/
-static
-void bsPutUInt32 ( EState* s, UInt32 u )
-{
- bsW ( s, 8, (u >> 24) & 0xffL );
- bsW ( s, 8, (u >> 16) & 0xffL );
- bsW ( s, 8, (u >> 8) & 0xffL );
- bsW ( s, 8, u & 0xffL );
-}
-
-
-/*---------------------------------------------------*/
-static
-void bsPutUChar ( EState* s, UChar c )
-{
- bsW( s, 8, (UInt32)c );
-}
-
-
-/*---------------------------------------------------*/
-/*--- The back end proper ---*/
-/*---------------------------------------------------*/
-
-/*---------------------------------------------------*/
-static
-void makeMaps_e ( EState* s )
-{
- Int32 i;
- s->nInUse = 0;
- for (i = 0; i < 256; i++)
- if (s->inUse[i]) {
- s->unseqToSeq[i] = s->nInUse;
- s->nInUse++;
- }
-}
-
-
-/*---------------------------------------------------*/
-static
-void generateMTFValues ( EState* s )
-{
- UChar yy[256];
- Int32 i, j;
- Int32 zPend;
- Int32 wr;
- Int32 EOB;
-
- /*
- After sorting (eg, here),
- s->arr1 [ 0 .. s->nblock-1 ] holds sorted order,
- and
- ((UChar*)s->arr2) [ 0 .. s->nblock-1 ]
- holds the original block data.
-
- The first thing to do is generate the MTF values,
- and put them in
- ((UInt16*)s->arr1) [ 0 .. s->nblock-1 ].
- Because there are strictly fewer or equal MTF values
- than block values, ptr values in this area are overwritten
- with MTF values only when they are no longer needed.
-
- The final compressed bitstream is generated into the
- area starting at
- (UChar*) (&((UChar*)s->arr2)[s->nblock])
-
- These storage aliases are set up in bzCompressInit(),
- except for the last one, which is arranged in
- compressBlock().
- */
- UInt32* ptr = s->ptr;
- UChar* block = s->block;
- UInt16* mtfv = s->mtfv;
-
- makeMaps_e ( s );
- EOB = s->nInUse+1;
-
- for (i = 0; i <= EOB; i++) s->mtfFreq[i] = 0;
-
- wr = 0;
- zPend = 0;
- for (i = 0; i < s->nInUse; i++) yy[i] = (UChar) i;
-
- for (i = 0; i < s->nblock; i++) {
- UChar ll_i;
- AssertD ( wr <= i, "generateMTFValues(1)" );
- j = ptr[i]-1; if (j < 0) j += s->nblock;
- ll_i = s->unseqToSeq[block[j]];
- AssertD ( ll_i < s->nInUse, "generateMTFValues(2a)" );
-
- if (yy[0] == ll_i) {
- zPend++;
- } else {
-
- if (zPend > 0) {
- zPend--;
- while (True) {
- if (zPend & 1) {
- mtfv[wr] = BZ_RUNB; wr++;
- s->mtfFreq[BZ_RUNB]++;
- } else {
- mtfv[wr] = BZ_RUNA; wr++;
- s->mtfFreq[BZ_RUNA]++;
- }
- if (zPend < 2) break;
- zPend = (zPend - 2) / 2;
- };
- zPend = 0;
- }
- {
- register UChar rtmp;
- register UChar* ryy_j;
- register UChar rll_i;
- rtmp = yy[1];
- yy[1] = yy[0];
- ryy_j = &(yy[1]);
- rll_i = ll_i;
- while ( rll_i != rtmp ) {
- register UChar rtmp2;
- ryy_j++;
- rtmp2 = rtmp;
- rtmp = *ryy_j;
- *ryy_j = rtmp2;
- };
- yy[0] = rtmp;
- j = ryy_j - &(yy[0]);
- mtfv[wr] = j+1; wr++; s->mtfFreq[j+1]++;
- }
-
- }
- }
-
- if (zPend > 0) {
- zPend--;
- while (True) {
- if (zPend & 1) {
- mtfv[wr] = BZ_RUNB; wr++;
- s->mtfFreq[BZ_RUNB]++;
- } else {
- mtfv[wr] = BZ_RUNA; wr++;
- s->mtfFreq[BZ_RUNA]++;
- }
- if (zPend < 2) break;
- zPend = (zPend - 2) / 2;
- };
- zPend = 0;
- }
-
- mtfv[wr] = EOB; wr++; s->mtfFreq[EOB]++;
-
- s->nMTF = wr;
-}
-
-
-/*---------------------------------------------------*/
-#define BZ_LESSER_ICOST 0
-#define BZ_GREATER_ICOST 15
-
-static
-void sendMTFValues ( EState* s )
-{
- Int32 v, t, i, j, gs, ge, totc, bt, bc, iter;
- Int32 nSelectors, alphaSize, minLen, maxLen, selCtr;
- Int32 nGroups, nBytes;
-
- /*--
- UChar len [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
- is a global since the decoder also needs it.
-
- Int32 code[BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
- Int32 rfreq[BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
- are also globals only used in this proc.
- Made global to keep stack frame size small.
- --*/
-
-
- UInt16 cost[BZ_N_GROUPS];
- Int32 fave[BZ_N_GROUPS];
-
- UInt16* mtfv = s->mtfv;
-
- if (s->verbosity >= 3)
- VPrintf3( " %d in block, %d after MTF & 1-2 coding, "
- "%d+2 syms in use\n",
- s->nblock, s->nMTF, s->nInUse );
-
- alphaSize = s->nInUse+2;
- for (t = 0; t < BZ_N_GROUPS; t++)
- for (v = 0; v < alphaSize; v++)
- s->len[t][v] = BZ_GREATER_ICOST;
-
- /*--- Decide how many coding tables to use ---*/
- AssertH ( s->nMTF > 0, 3001 );
- if (s->nMTF < 200) nGroups = 2; else
- if (s->nMTF < 600) nGroups = 3; else
- if (s->nMTF < 1200) nGroups = 4; else
- if (s->nMTF < 2400) nGroups = 5; else
- nGroups = 6;
-
- /*--- Generate an initial set of coding tables ---*/
- {
- Int32 nPart, remF, tFreq, aFreq;
-
- nPart = nGroups;
- remF = s->nMTF;
- gs = 0;
- while (nPart > 0) {
- tFreq = remF / nPart;
- ge = gs-1;
- aFreq = 0;
- while (aFreq < tFreq && ge < alphaSize-1) {
- ge++;
- aFreq += s->mtfFreq[ge];
- }
-
- if (ge > gs
- && nPart != nGroups && nPart != 1
- && ((nGroups-nPart) % 2 == 1)) {
- aFreq -= s->mtfFreq[ge];
- ge--;
- }
-
- if (s->verbosity >= 3)
- VPrintf5( " initial group %d, [%d .. %d], "
- "has %d syms (%4.1f%%)\n",
- nPart, gs, ge, aFreq,
- (100.0 * (float)aFreq) / (float)(s->nMTF) );
-
- for (v = 0; v < alphaSize; v++)
- if (v >= gs && v <= ge)
- s->len[nPart-1][v] = BZ_LESSER_ICOST; else
- s->len[nPart-1][v] = BZ_GREATER_ICOST;
-
- nPart--;
- gs = ge+1;
- remF -= aFreq;
- }
- }
-
- /*---
- Iterate up to BZ_N_ITERS times to improve the tables.
- ---*/
- for (iter = 0; iter < BZ_N_ITERS; iter++) {
-
- for (t = 0; t < nGroups; t++) fave[t] = 0;
-
- for (t = 0; t < nGroups; t++)
- for (v = 0; v < alphaSize; v++)
- s->rfreq[t][v] = 0;
-
- /*---
- Set up an auxiliary length table which is used to fast-track
- the common case (nGroups == 6).
- ---*/
- if (nGroups == 6) {
- for (v = 0; v < alphaSize; v++) {
- s->len_pack[v][0] = (s->len[1][v] << 16) | s->len[0][v];
- s->len_pack[v][1] = (s->len[3][v] << 16) | s->len[2][v];
- s->len_pack[v][2] = (s->len[5][v] << 16) | s->len[4][v];
- }
- }
-
- nSelectors = 0;
- totc = 0;
- gs = 0;
- while (True) {
-
- /*--- Set group start & end marks. --*/
- if (gs >= s->nMTF) break;
- ge = gs + BZ_G_SIZE - 1;
- if (ge >= s->nMTF) ge = s->nMTF-1;
-
- /*--
- Calculate the cost of this group as coded
- by each of the coding tables.
- --*/
- for (t = 0; t < nGroups; t++) cost[t] = 0;
-
- if (nGroups == 6 && 50 == ge-gs+1) {
- /*--- fast track the common case ---*/
- register UInt32 cost01, cost23, cost45;
- register UInt16 icv;
- cost01 = cost23 = cost45 = 0;
-
-# define BZ_ITER(nn) \
- icv = mtfv[gs+(nn)]; \
- cost01 += s->len_pack[icv][0]; \
- cost23 += s->len_pack[icv][1]; \
- cost45 += s->len_pack[icv][2]; \
-
- BZ_ITER(0); BZ_ITER(1); BZ_ITER(2); BZ_ITER(3); BZ_ITER(4);
- BZ_ITER(5); BZ_ITER(6); BZ_ITER(7); BZ_ITER(8); BZ_ITER(9);
- BZ_ITER(10); BZ_ITER(11); BZ_ITER(12); BZ_ITER(13); BZ_ITER(14);
- BZ_ITER(15); BZ_ITER(16); BZ_ITER(17); BZ_ITER(18); BZ_ITER(19);
- BZ_ITER(20); BZ_ITER(21); BZ_ITER(22); BZ_ITER(23); BZ_ITER(24);
- BZ_ITER(25); BZ_ITER(26); BZ_ITER(27); BZ_ITER(28); BZ_ITER(29);
- BZ_ITER(30); BZ_ITER(31); BZ_ITER(32); BZ_ITER(33); BZ_ITER(34);
- BZ_ITER(35); BZ_ITER(36); BZ_ITER(37); BZ_ITER(38); BZ_ITER(39);
- BZ_ITER(40); BZ_ITER(41); BZ_ITER(42); BZ_ITER(43); BZ_ITER(44);
- BZ_ITER(45); BZ_ITER(46); BZ_ITER(47); BZ_ITER(48); BZ_ITER(49);
-
-# undef BZ_ITER
-
- cost[0] = cost01 & 0xffff; cost[1] = cost01 >> 16;
- cost[2] = cost23 & 0xffff; cost[3] = cost23 >> 16;
- cost[4] = cost45 & 0xffff; cost[5] = cost45 >> 16;
-
- } else {
- /*--- slow version which correctly handles all situations ---*/
- for (i = gs; i <= ge; i++) {
- UInt16 icv = mtfv[i];
- for (t = 0; t < nGroups; t++) cost[t] += s->len[t][icv];
- }
- }
-
- /*--
- Find the coding table which is best for this group,
- and record its identity in the selector table.
- --*/
- bc = 999999999; bt = -1;
- for (t = 0; t < nGroups; t++)
- if (cost[t] < bc) { bc = cost[t]; bt = t; };
- totc += bc;
- fave[bt]++;
- s->selector[nSelectors] = bt;
- nSelectors++;
-
- /*--
- Increment the symbol frequencies for the selected table.
- --*/
- if (nGroups == 6 && 50 == ge-gs+1) {
- /*--- fast track the common case ---*/
-
-# define BZ_ITUR(nn) s->rfreq[bt][ mtfv[gs+(nn)] ]++
-
- BZ_ITUR(0); BZ_ITUR(1); BZ_ITUR(2); BZ_ITUR(3); BZ_ITUR(4);
- BZ_ITUR(5); BZ_ITUR(6); BZ_ITUR(7); BZ_ITUR(8); BZ_ITUR(9);
- BZ_ITUR(10); BZ_ITUR(11); BZ_ITUR(12); BZ_ITUR(13); BZ_ITUR(14);
- BZ_ITUR(15); BZ_ITUR(16); BZ_ITUR(17); BZ_ITUR(18); BZ_ITUR(19);
- BZ_ITUR(20); BZ_ITUR(21); BZ_ITUR(22); BZ_ITUR(23); BZ_ITUR(24);
- BZ_ITUR(25); BZ_ITUR(26); BZ_ITUR(27); BZ_ITUR(28); BZ_ITUR(29);
- BZ_ITUR(30); BZ_ITUR(31); BZ_ITUR(32); BZ_ITUR(33); BZ_ITUR(34);
- BZ_ITUR(35); BZ_ITUR(36); BZ_ITUR(37); BZ_ITUR(38); BZ_ITUR(39);
- BZ_ITUR(40); BZ_ITUR(41); BZ_ITUR(42); BZ_ITUR(43); BZ_ITUR(44);
- BZ_ITUR(45); BZ_ITUR(46); BZ_ITUR(47); BZ_ITUR(48); BZ_ITUR(49);
-
-# undef BZ_ITUR
-
- } else {
- /*--- slow version which correctly handles all situations ---*/
- for (i = gs; i <= ge; i++)
- s->rfreq[bt][ mtfv[i] ]++;
- }
-
- gs = ge+1;
- }
- if (s->verbosity >= 3) {
- VPrintf2 ( " pass %d: size is %d, grp uses are ",
- iter+1, totc/8 );
- for (t = 0; t < nGroups; t++)
- VPrintf1 ( "%d ", fave[t] );
- VPrintf0 ( "\n" );
- }
-
- /*--
- Recompute the tables based on the accumulated frequencies.
- --*/
- for (t = 0; t < nGroups; t++)
- BZ2_hbMakeCodeLengths ( &(s->len[t][0]), &(s->rfreq[t][0]),
- alphaSize, 20 );
- }
-
-
- AssertH( nGroups < 8, 3002 );
- AssertH( nSelectors < 32768 &&
- nSelectors <= (2 + (900000 / BZ_G_SIZE)),
- 3003 );
-
-
- /*--- Compute MTF values for the selectors. ---*/
- {
- UChar pos[BZ_N_GROUPS], ll_i, tmp2, tmp;
- for (i = 0; i < nGroups; i++) pos[i] = i;
- for (i = 0; i < nSelectors; i++) {
- ll_i = s->selector[i];
- j = 0;
- tmp = pos[j];
- while ( ll_i != tmp ) {
- j++;
- tmp2 = tmp;
- tmp = pos[j];
- pos[j] = tmp2;
- };
- pos[0] = tmp;
- s->selectorMtf[i] = j;
- }
- };
-
- /*--- Assign actual codes for the tables. --*/
- for (t = 0; t < nGroups; t++) {
- minLen = 32;
- maxLen = 0;
- for (i = 0; i < alphaSize; i++) {
- if (s->len[t][i] > maxLen) maxLen = s->len[t][i];
- if (s->len[t][i] < minLen) minLen = s->len[t][i];
- }
- AssertH ( !(maxLen > 20), 3004 );
- AssertH ( !(minLen < 1), 3005 );
- BZ2_hbAssignCodes ( &(s->code[t][0]), &(s->len[t][0]),
- minLen, maxLen, alphaSize );
- }
-
- /*--- Transmit the mapping table. ---*/
- {
- Bool inUse16[16];
- for (i = 0; i < 16; i++) {
- inUse16[i] = False;
- for (j = 0; j < 16; j++)
- if (s->inUse[i * 16 + j]) inUse16[i] = True;
- }
-
- nBytes = s->numZ;
- for (i = 0; i < 16; i++)
- if (inUse16[i]) bsW(s,1,1); else bsW(s,1,0);
-
- for (i = 0; i < 16; i++)
- if (inUse16[i])
- for (j = 0; j < 16; j++) {
- if (s->inUse[i * 16 + j]) bsW(s,1,1); else bsW(s,1,0);
- }
-
- if (s->verbosity >= 3)
- VPrintf1( " bytes: mapping %d, ", s->numZ-nBytes );
- }
-
- /*--- Now the selectors. ---*/
- nBytes = s->numZ;
- bsW ( s, 3, nGroups );
- bsW ( s, 15, nSelectors );
- for (i = 0; i < nSelectors; i++) {
- for (j = 0; j < s->selectorMtf[i]; j++) bsW(s,1,1);
- bsW(s,1,0);
- }
- if (s->verbosity >= 3)
- VPrintf1( "selectors %d, ", s->numZ-nBytes );
-
- /*--- Now the coding tables. ---*/
- nBytes = s->numZ;
-
- for (t = 0; t < nGroups; t++) {
- Int32 curr = s->len[t][0];
- bsW ( s, 5, curr );
- for (i = 0; i < alphaSize; i++) {
- while (curr < s->len[t][i]) { bsW(s,2,2); curr++; /* 10 */ };
- while (curr > s->len[t][i]) { bsW(s,2,3); curr--; /* 11 */ };
- bsW ( s, 1, 0 );
- }
- }
-
- if (s->verbosity >= 3)
- VPrintf1 ( "code lengths %d, ", s->numZ-nBytes );
-
- /*--- And finally, the block data proper ---*/
- nBytes = s->numZ;
- selCtr = 0;
- gs = 0;
- while (True) {
- if (gs >= s->nMTF) break;
- ge = gs + BZ_G_SIZE - 1;
- if (ge >= s->nMTF) ge = s->nMTF-1;
- AssertH ( s->selector[selCtr] < nGroups, 3006 );
-
- if (nGroups == 6 && 50 == ge-gs+1) {
- /*--- fast track the common case ---*/
- UInt16 mtfv_i;
- UChar* s_len_sel_selCtr
- = &(s->len[s->selector[selCtr]][0]);
- Int32* s_code_sel_selCtr
- = &(s->code[s->selector[selCtr]][0]);
-
-# define BZ_ITAH(nn) \
- mtfv_i = mtfv[gs+(nn)]; \
- bsW ( s, \
- s_len_sel_selCtr[mtfv_i], \
- s_code_sel_selCtr[mtfv_i] )
-
- BZ_ITAH(0); BZ_ITAH(1); BZ_ITAH(2); BZ_ITAH(3); BZ_ITAH(4);
- BZ_ITAH(5); BZ_ITAH(6); BZ_ITAH(7); BZ_ITAH(8); BZ_ITAH(9);
- BZ_ITAH(10); BZ_ITAH(11); BZ_ITAH(12); BZ_ITAH(13); BZ_ITAH(14);
- BZ_ITAH(15); BZ_ITAH(16); BZ_ITAH(17); BZ_ITAH(18); BZ_ITAH(19);
- BZ_ITAH(20); BZ_ITAH(21); BZ_ITAH(22); BZ_ITAH(23); BZ_ITAH(24);
- BZ_ITAH(25); BZ_ITAH(26); BZ_ITAH(27); BZ_ITAH(28); BZ_ITAH(29);
- BZ_ITAH(30); BZ_ITAH(31); BZ_ITAH(32); BZ_ITAH(33); BZ_ITAH(34);
- BZ_ITAH(35); BZ_ITAH(36); BZ_ITAH(37); BZ_ITAH(38); BZ_ITAH(39);
- BZ_ITAH(40); BZ_ITAH(41); BZ_ITAH(42); BZ_ITAH(43); BZ_ITAH(44);
- BZ_ITAH(45); BZ_ITAH(46); BZ_ITAH(47); BZ_ITAH(48); BZ_ITAH(49);
-
-# undef BZ_ITAH
-
- } else {
- /*--- slow version which correctly handles all situations ---*/
- for (i = gs; i <= ge; i++) {
- bsW ( s,
- s->len [s->selector[selCtr]] [mtfv[i]],
- s->code [s->selector[selCtr]] [mtfv[i]] );
- }
- }
-
-
- gs = ge+1;
- selCtr++;
- }
- AssertH( selCtr == nSelectors, 3007 );
-
- if (s->verbosity >= 3)
- VPrintf1( "codes %d\n", s->numZ-nBytes );
-}
-
-
-/*---------------------------------------------------*/
-void BZ2_compressBlock ( EState* s, Bool is_last_block )
-{
- if (s->nblock > 0) {
-
- BZ_FINALISE_CRC ( s->blockCRC );
- s->combinedCRC = (s->combinedCRC << 1) | (s->combinedCRC >> 31);
- s->combinedCRC ^= s->blockCRC;
- if (s->blockNo > 1) s->numZ = 0;
-
- if (s->verbosity >= 2)
- VPrintf4( " block %d: crc = 0x%8x, "
- "combined CRC = 0x%8x, size = %d\n",
- s->blockNo, s->blockCRC, s->combinedCRC, s->nblock );
-
- BZ2_blockSort ( s );
- }
-
- s->zbits = (UChar*) (&((UChar*)s->arr2)[s->nblock]);
-
- /*-- If this is the first block, create the stream header. --*/
- if (s->blockNo == 1) {
- BZ2_bsInitWrite ( s );
- bsPutUChar ( s, 'B' );
- bsPutUChar ( s, 'Z' );
- bsPutUChar ( s, 'h' );
- bsPutUChar ( s, (UChar)('0' + s->blockSize100k) );
- }
-
- if (s->nblock > 0) {
-
- bsPutUChar ( s, 0x31 ); bsPutUChar ( s, 0x41 );
- bsPutUChar ( s, 0x59 ); bsPutUChar ( s, 0x26 );
- bsPutUChar ( s, 0x53 ); bsPutUChar ( s, 0x59 );
-
- /*-- Now the block's CRC, so it is in a known place. --*/
- bsPutUInt32 ( s, s->blockCRC );
-
- /*--
- Now a single bit indicating (non-)randomisation.
- As of version 0.9.5, we use a better sorting algorithm
- which makes randomisation unnecessary. So always set
- the randomised bit to 'no'. Of course, the decoder
- still needs to be able to handle randomised blocks
- so as to maintain backwards compatibility with
- older versions of bzip2.
- --*/
- bsW(s,1,0);
-
- bsW ( s, 24, s->origPtr );
- generateMTFValues ( s );
- sendMTFValues ( s );
- }
-
-
- /*-- If this is the last block, add the stream trailer. --*/
- if (is_last_block) {
-
- bsPutUChar ( s, 0x17 ); bsPutUChar ( s, 0x72 );
- bsPutUChar ( s, 0x45 ); bsPutUChar ( s, 0x38 );
- bsPutUChar ( s, 0x50 ); bsPutUChar ( s, 0x90 );
- bsPutUInt32 ( s, s->combinedCRC );
- if (s->verbosity >= 2)
- VPrintf1( " final combined CRC = 0x%x\n ", s->combinedCRC );
- bsFinishWrite ( s );
- }
-}
-
-
-/*-------------------------------------------------------------*/
-/*--- end compress.c ---*/
-/*-------------------------------------------------------------*/
diff --git a/mdk-stage1/bzlib/crctable.c b/mdk-stage1/bzlib/crctable.c
deleted file mode 100644
index c0ea3f769..000000000
--- a/mdk-stage1/bzlib/crctable.c
+++ /dev/null
@@ -1,148 +0,0 @@
-
-/*-------------------------------------------------------------*/
-/*--- Table for doing CRCs ---*/
-/*--- crctable.c ---*/
-/*-------------------------------------------------------------*/
-
-/*--
- This file is a part of bzip2 and/or libbzip2, a program and
- library for lossless, block-sorting data compression.
-
- Copyright (C) 1996-2000 Julian R Seward. 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. 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.
-
- 3. Altered source versions must be plainly marked as such, and must
- not be misrepresented as being the original software.
-
- 4. 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 BY THE AUTHOR ``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 AUTHOR 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.
-
- Julian Seward, Cambridge, UK.
- jseward@acm.org
- bzip2/libbzip2 version 1.0 of 21 March 2000
-
- This program is based on (at least) the work of:
- Mike Burrows
- David Wheeler
- Peter Fenwick
- Alistair Moffat
- Radford Neal
- Ian H. Witten
- Robert Sedgewick
- Jon L. Bentley
-
- For more information on these sources, see the manual.
---*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-
-#include "bzlib_private.h"
-
-/*--
- I think this is an implementation of the AUTODIN-II,
- Ethernet & FDDI 32-bit CRC standard. Vaguely derived
- from code by Rob Warnock, in Section 51 of the
- comp.compression FAQ.
---*/
-
-UInt32 BZ2_crc32Table[256] = {
-
- /*-- Ugly, innit? --*/
-
- 0x00000000L, 0x04c11db7L, 0x09823b6eL, 0x0d4326d9L,
- 0x130476dcL, 0x17c56b6bL, 0x1a864db2L, 0x1e475005L,
- 0x2608edb8L, 0x22c9f00fL, 0x2f8ad6d6L, 0x2b4bcb61L,
- 0x350c9b64L, 0x31cd86d3L, 0x3c8ea00aL, 0x384fbdbdL,
- 0x4c11db70L, 0x48d0c6c7L, 0x4593e01eL, 0x4152fda9L,
- 0x5f15adacL, 0x5bd4b01bL, 0x569796c2L, 0x52568b75L,
- 0x6a1936c8L, 0x6ed82b7fL, 0x639b0da6L, 0x675a1011L,
- 0x791d4014L, 0x7ddc5da3L, 0x709f7b7aL, 0x745e66cdL,
- 0x9823b6e0L, 0x9ce2ab57L, 0x91a18d8eL, 0x95609039L,
- 0x8b27c03cL, 0x8fe6dd8bL, 0x82a5fb52L, 0x8664e6e5L,
- 0xbe2b5b58L, 0xbaea46efL, 0xb7a96036L, 0xb3687d81L,
- 0xad2f2d84L, 0xa9ee3033L, 0xa4ad16eaL, 0xa06c0b5dL,
- 0xd4326d90L, 0xd0f37027L, 0xddb056feL, 0xd9714b49L,
- 0xc7361b4cL, 0xc3f706fbL, 0xceb42022L, 0xca753d95L,
- 0xf23a8028L, 0xf6fb9d9fL, 0xfbb8bb46L, 0xff79a6f1L,
- 0xe13ef6f4L, 0xe5ffeb43L, 0xe8bccd9aL, 0xec7dd02dL,
- 0x34867077L, 0x30476dc0L, 0x3d044b19L, 0x39c556aeL,
- 0x278206abL, 0x23431b1cL, 0x2e003dc5L, 0x2ac12072L,
- 0x128e9dcfL, 0x164f8078L, 0x1b0ca6a1L, 0x1fcdbb16L,
- 0x018aeb13L, 0x054bf6a4L, 0x0808d07dL, 0x0cc9cdcaL,
- 0x7897ab07L, 0x7c56b6b0L, 0x71159069L, 0x75d48ddeL,
- 0x6b93dddbL, 0x6f52c06cL, 0x6211e6b5L, 0x66d0fb02L,
- 0x5e9f46bfL, 0x5a5e5b08L, 0x571d7dd1L, 0x53dc6066L,
- 0x4d9b3063L, 0x495a2dd4L, 0x44190b0dL, 0x40d816baL,
- 0xaca5c697L, 0xa864db20L, 0xa527fdf9L, 0xa1e6e04eL,
- 0xbfa1b04bL, 0xbb60adfcL, 0xb6238b25L, 0xb2e29692L,
- 0x8aad2b2fL, 0x8e6c3698L, 0x832f1041L, 0x87ee0df6L,
- 0x99a95df3L, 0x9d684044L, 0x902b669dL, 0x94ea7b2aL,
- 0xe0b41de7L, 0xe4750050L, 0xe9362689L, 0xedf73b3eL,
- 0xf3b06b3bL, 0xf771768cL, 0xfa325055L, 0xfef34de2L,
- 0xc6bcf05fL, 0xc27dede8L, 0xcf3ecb31L, 0xcbffd686L,
- 0xd5b88683L, 0xd1799b34L, 0xdc3abdedL, 0xd8fba05aL,
- 0x690ce0eeL, 0x6dcdfd59L, 0x608edb80L, 0x644fc637L,
- 0x7a089632L, 0x7ec98b85L, 0x738aad5cL, 0x774bb0ebL,
- 0x4f040d56L, 0x4bc510e1L, 0x46863638L, 0x42472b8fL,
- 0x5c007b8aL, 0x58c1663dL, 0x558240e4L, 0x51435d53L,
- 0x251d3b9eL, 0x21dc2629L, 0x2c9f00f0L, 0x285e1d47L,
- 0x36194d42L, 0x32d850f5L, 0x3f9b762cL, 0x3b5a6b9bL,
- 0x0315d626L, 0x07d4cb91L, 0x0a97ed48L, 0x0e56f0ffL,
- 0x1011a0faL, 0x14d0bd4dL, 0x19939b94L, 0x1d528623L,
- 0xf12f560eL, 0xf5ee4bb9L, 0xf8ad6d60L, 0xfc6c70d7L,
- 0xe22b20d2L, 0xe6ea3d65L, 0xeba91bbcL, 0xef68060bL,
- 0xd727bbb6L, 0xd3e6a601L, 0xdea580d8L, 0xda649d6fL,
- 0xc423cd6aL, 0xc0e2d0ddL, 0xcda1f604L, 0xc960ebb3L,
- 0xbd3e8d7eL, 0xb9ff90c9L, 0xb4bcb610L, 0xb07daba7L,
- 0xae3afba2L, 0xaafbe615L, 0xa7b8c0ccL, 0xa379dd7bL,
- 0x9b3660c6L, 0x9ff77d71L, 0x92b45ba8L, 0x9675461fL,
- 0x8832161aL, 0x8cf30badL, 0x81b02d74L, 0x857130c3L,
- 0x5d8a9099L, 0x594b8d2eL, 0x5408abf7L, 0x50c9b640L,
- 0x4e8ee645L, 0x4a4ffbf2L, 0x470cdd2bL, 0x43cdc09cL,
- 0x7b827d21L, 0x7f436096L, 0x7200464fL, 0x76c15bf8L,
- 0x68860bfdL, 0x6c47164aL, 0x61043093L, 0x65c52d24L,
- 0x119b4be9L, 0x155a565eL, 0x18197087L, 0x1cd86d30L,
- 0x029f3d35L, 0x065e2082L, 0x0b1d065bL, 0x0fdc1becL,
- 0x3793a651L, 0x3352bbe6L, 0x3e119d3fL, 0x3ad08088L,
- 0x2497d08dL, 0x2056cd3aL, 0x2d15ebe3L, 0x29d4f654L,
- 0xc5a92679L, 0xc1683bceL, 0xcc2b1d17L, 0xc8ea00a0L,
- 0xd6ad50a5L, 0xd26c4d12L, 0xdf2f6bcbL, 0xdbee767cL,
- 0xe3a1cbc1L, 0xe760d676L, 0xea23f0afL, 0xeee2ed18L,
- 0xf0a5bd1dL, 0xf464a0aaL, 0xf9278673L, 0xfde69bc4L,
- 0x89b8fd09L, 0x8d79e0beL, 0x803ac667L, 0x84fbdbd0L,
- 0x9abc8bd5L, 0x9e7d9662L, 0x933eb0bbL, 0x97ffad0cL,
- 0xafb010b1L, 0xab710d06L, 0xa6322bdfL, 0xa2f33668L,
- 0xbcb4666dL, 0xb8757bdaL, 0xb5365d03L, 0xb1f740b4L
-};
-
-
-/*-------------------------------------------------------------*/
-/*--- end crctable.c ---*/
-/*-------------------------------------------------------------*/
diff --git a/mdk-stage1/bzlib/decompress.c b/mdk-stage1/bzlib/decompress.c
deleted file mode 100644
index 65cf75d8f..000000000
--- a/mdk-stage1/bzlib/decompress.c
+++ /dev/null
@@ -1,664 +0,0 @@
-
-/*-------------------------------------------------------------*/
-/*--- Decompression machinery ---*/
-/*--- decompress.c ---*/
-/*-------------------------------------------------------------*/
-
-/*--
- This file is a part of bzip2 and/or libbzip2, a program and
- library for lossless, block-sorting data compression.
-
- Copyright (C) 1996-2000 Julian R Seward. 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. 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.
-
- 3. Altered source versions must be plainly marked as such, and must
- not be misrepresented as being the original software.
-
- 4. 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 BY THE AUTHOR ``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 AUTHOR 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.
-
- Julian Seward, Cambridge, UK.
- jseward@acm.org
- bzip2/libbzip2 version 1.0 of 21 March 2000
-
- This program is based on (at least) the work of:
- Mike Burrows
- David Wheeler
- Peter Fenwick
- Alistair Moffat
- Radford Neal
- Ian H. Witten
- Robert Sedgewick
- Jon L. Bentley
-
- For more information on these sources, see the manual.
---*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-
-#include "bzlib_private.h"
-
-
-/*---------------------------------------------------*/
-static
-void makeMaps_d ( DState* s )
-{
- Int32 i;
- s->nInUse = 0;
- for (i = 0; i < 256; i++)
- if (s->inUse[i]) {
- s->seqToUnseq[s->nInUse] = i;
- s->nInUse++;
- }
-}
-
-
-/*---------------------------------------------------*/
-#define RETURN(rrr) \
- { retVal = rrr; goto save_state_and_return; };
-
-#define GET_BITS(lll,vvv,nnn) \
- case lll: s->state = lll; \
- while (True) { \
- if (s->bsLive >= nnn) { \
- UInt32 v; \
- v = (s->bsBuff >> \
- (s->bsLive-nnn)) & ((1 << nnn)-1); \
- s->bsLive -= nnn; \
- vvv = v; \
- break; \
- } \
- if (s->strm->avail_in == 0) RETURN(BZ_OK); \
- s->bsBuff \
- = (s->bsBuff << 8) | \
- ((UInt32) \
- (*((UChar*)(s->strm->next_in)))); \
- s->bsLive += 8; \
- s->strm->next_in++; \
- s->strm->avail_in--; \
- s->strm->total_in_lo32++; \
- if (s->strm->total_in_lo32 == 0) \
- s->strm->total_in_hi32++; \
- }
-
-#define GET_UCHAR(lll,uuu) \
- GET_BITS(lll,uuu,8)
-
-#define GET_BIT(lll,uuu) \
- GET_BITS(lll,uuu,1)
-
-/*---------------------------------------------------*/
-#define GET_MTF_VAL(label1,label2,lval) \
-{ \
- if (groupPos == 0) { \
- groupNo++; \
- if (groupNo >= nSelectors) \
- RETURN(BZ_DATA_ERROR); \
- groupPos = BZ_G_SIZE; \
- gSel = s->selector[groupNo]; \
- gMinlen = s->minLens[gSel]; \
- gLimit = &(s->limit[gSel][0]); \
- gPerm = &(s->perm[gSel][0]); \
- gBase = &(s->base[gSel][0]); \
- } \
- groupPos--; \
- zn = gMinlen; \
- GET_BITS(label1, zvec, zn); \
- while (1) { \
- if (zn > 20 /* the longest code */) \
- RETURN(BZ_DATA_ERROR); \
- if (zvec <= gLimit[zn]) break; \
- zn++; \
- GET_BIT(label2, zj); \
- zvec = (zvec << 1) | zj; \
- }; \
- if (zvec - gBase[zn] < 0 \
- || zvec - gBase[zn] >= BZ_MAX_ALPHA_SIZE) \
- RETURN(BZ_DATA_ERROR); \
- lval = gPerm[zvec - gBase[zn]]; \
-}
-
-
-/*---------------------------------------------------*/
-Int32 BZ2_decompress ( DState* s )
-{
- UChar uc;
- Int32 retVal;
- Int32 minLen, maxLen;
- bz_stream* strm = s->strm;
-
- /* stuff that needs to be saved/restored */
- Int32 i;
- Int32 j;
- Int32 t;
- Int32 alphaSize;
- Int32 nGroups;
- Int32 nSelectors;
- Int32 EOB;
- Int32 groupNo;
- Int32 groupPos;
- Int32 nextSym;
- Int32 nblockMAX;
- Int32 nblock;
- Int32 es;
- Int32 N;
- Int32 curr;
- Int32 zt;
- Int32 zn;
- Int32 zvec;
- Int32 zj;
- Int32 gSel;
- Int32 gMinlen;
- Int32* gLimit;
- Int32* gBase;
- Int32* gPerm;
-
- if (s->state == BZ_X_MAGIC_1) {
- /*initialise the save area*/
- s->save_i = 0;
- s->save_j = 0;
- s->save_t = 0;
- s->save_alphaSize = 0;
- s->save_nGroups = 0;
- s->save_nSelectors = 0;
- s->save_EOB = 0;
- s->save_groupNo = 0;
- s->save_groupPos = 0;
- s->save_nextSym = 0;
- s->save_nblockMAX = 0;
- s->save_nblock = 0;
- s->save_es = 0;
- s->save_N = 0;
- s->save_curr = 0;
- s->save_zt = 0;
- s->save_zn = 0;
- s->save_zvec = 0;
- s->save_zj = 0;
- s->save_gSel = 0;
- s->save_gMinlen = 0;
- s->save_gLimit = NULL;
- s->save_gBase = NULL;
- s->save_gPerm = NULL;
- }
-
- /*restore from the save area*/
- i = s->save_i;
- j = s->save_j;
- t = s->save_t;
- alphaSize = s->save_alphaSize;
- nGroups = s->save_nGroups;
- nSelectors = s->save_nSelectors;
- EOB = s->save_EOB;
- groupNo = s->save_groupNo;
- groupPos = s->save_groupPos;
- nextSym = s->save_nextSym;
- nblockMAX = s->save_nblockMAX;
- nblock = s->save_nblock;
- es = s->save_es;
- N = s->save_N;
- curr = s->save_curr;
- zt = s->save_zt;
- zn = s->save_zn;
- zvec = s->save_zvec;
- zj = s->save_zj;
- gSel = s->save_gSel;
- gMinlen = s->save_gMinlen;
- gLimit = s->save_gLimit;
- gBase = s->save_gBase;
- gPerm = s->save_gPerm;
-
- retVal = BZ_OK;
-
- switch (s->state) {
-
- GET_UCHAR(BZ_X_MAGIC_1, uc);
- if (uc != 'B') RETURN(BZ_DATA_ERROR_MAGIC);
-
- GET_UCHAR(BZ_X_MAGIC_2, uc);
- if (uc != 'Z') RETURN(BZ_DATA_ERROR_MAGIC);
-
- GET_UCHAR(BZ_X_MAGIC_3, uc)
- if (uc != 'h') RETURN(BZ_DATA_ERROR_MAGIC);
-
- GET_BITS(BZ_X_MAGIC_4, s->blockSize100k, 8)
- if (s->blockSize100k < '1' ||
- s->blockSize100k > '9') RETURN(BZ_DATA_ERROR_MAGIC);
- s->blockSize100k -= '0';
-
- if (s->smallDecompress) {
- s->ll16 = BZALLOC( s->blockSize100k * 100000 * sizeof(UInt16) );
- s->ll4 = BZALLOC(
- ((1 + s->blockSize100k * 100000) >> 1) * sizeof(UChar)
- );
- if (s->ll16 == NULL || s->ll4 == NULL) RETURN(BZ_MEM_ERROR);
- } else {
- s->tt = BZALLOC( s->blockSize100k * 100000 * sizeof(Int32) );
- if (s->tt == NULL) RETURN(BZ_MEM_ERROR);
- }
-
- GET_UCHAR(BZ_X_BLKHDR_1, uc);
-
- if (uc == 0x17) goto endhdr_2;
- if (uc != 0x31) RETURN(BZ_DATA_ERROR);
- GET_UCHAR(BZ_X_BLKHDR_2, uc);
- if (uc != 0x41) RETURN(BZ_DATA_ERROR);
- GET_UCHAR(BZ_X_BLKHDR_3, uc);
- if (uc != 0x59) RETURN(BZ_DATA_ERROR);
- GET_UCHAR(BZ_X_BLKHDR_4, uc);
- if (uc != 0x26) RETURN(BZ_DATA_ERROR);
- GET_UCHAR(BZ_X_BLKHDR_5, uc);
- if (uc != 0x53) RETURN(BZ_DATA_ERROR);
- GET_UCHAR(BZ_X_BLKHDR_6, uc);
- if (uc != 0x59) RETURN(BZ_DATA_ERROR);
-
- s->currBlockNo++;
- if (s->verbosity >= 2)
- VPrintf1 ( "\n [%d: huff+mtf ", s->currBlockNo );
-
- s->storedBlockCRC = 0;
- GET_UCHAR(BZ_X_BCRC_1, uc);
- s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc);
- GET_UCHAR(BZ_X_BCRC_2, uc);
- s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc);
- GET_UCHAR(BZ_X_BCRC_3, uc);
- s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc);
- GET_UCHAR(BZ_X_BCRC_4, uc);
- s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc);
-
- GET_BITS(BZ_X_RANDBIT, s->blockRandomised, 1);
-
- s->origPtr = 0;
- GET_UCHAR(BZ_X_ORIGPTR_1, uc);
- s->origPtr = (s->origPtr << 8) | ((Int32)uc);
- GET_UCHAR(BZ_X_ORIGPTR_2, uc);
- s->origPtr = (s->origPtr << 8) | ((Int32)uc);
- GET_UCHAR(BZ_X_ORIGPTR_3, uc);
- s->origPtr = (s->origPtr << 8) | ((Int32)uc);
-
- if (s->origPtr < 0)
- RETURN(BZ_DATA_ERROR);
- if (s->origPtr > 10 + 100000*s->blockSize100k)
- RETURN(BZ_DATA_ERROR);
-
- /*--- Receive the mapping table ---*/
- for (i = 0; i < 16; i++) {
- GET_BIT(BZ_X_MAPPING_1, uc);
- if (uc == 1)
- s->inUse16[i] = True; else
- s->inUse16[i] = False;
- }
-
- for (i = 0; i < 256; i++) s->inUse[i] = False;
-
- for (i = 0; i < 16; i++)
- if (s->inUse16[i])
- for (j = 0; j < 16; j++) {
- GET_BIT(BZ_X_MAPPING_2, uc);
- if (uc == 1) s->inUse[i * 16 + j] = True;
- }
- makeMaps_d ( s );
- if (s->nInUse == 0) RETURN(BZ_DATA_ERROR);
- alphaSize = s->nInUse+2;
-
- /*--- Now the selectors ---*/
- GET_BITS(BZ_X_SELECTOR_1, nGroups, 3);
- if (nGroups < 2 || nGroups > 6) RETURN(BZ_DATA_ERROR);
- GET_BITS(BZ_X_SELECTOR_2, nSelectors, 15);
- if (nSelectors < 1) RETURN(BZ_DATA_ERROR);
- for (i = 0; i < nSelectors; i++) {
- j = 0;
- while (True) {
- GET_BIT(BZ_X_SELECTOR_3, uc);
- if (uc == 0) break;
- j++;
- if (j >= nGroups) RETURN(BZ_DATA_ERROR);
- }
- s->selectorMtf[i] = j;
- }
-
- /*--- Undo the MTF values for the selectors. ---*/
- {
- UChar pos[BZ_N_GROUPS], tmp, v;
- for (v = 0; v < nGroups; v++) pos[v] = v;
-
- for (i = 0; i < nSelectors; i++) {
- v = s->selectorMtf[i];
- tmp = pos[v];
- while (v > 0) { pos[v] = pos[v-1]; v--; }
- pos[0] = tmp;
- s->selector[i] = tmp;
- }
- }
-
- /*--- Now the coding tables ---*/
- for (t = 0; t < nGroups; t++) {
- GET_BITS(BZ_X_CODING_1, curr, 5);
- for (i = 0; i < alphaSize; i++) {
- while (True) {
- if (curr < 1 || curr > 20) RETURN(BZ_DATA_ERROR);
- GET_BIT(BZ_X_CODING_2, uc);
- if (uc == 0) break;
- GET_BIT(BZ_X_CODING_3, uc);
- if (uc == 0) curr++; else curr--;
- }
- s->len[t][i] = curr;
- }
- }
-
- /*--- Create the Huffman decoding tables ---*/
- for (t = 0; t < nGroups; t++) {
- minLen = 32;
- maxLen = 0;
- for (i = 0; i < alphaSize; i++) {
- if (s->len[t][i] > maxLen) maxLen = s->len[t][i];
- if (s->len[t][i] < minLen) minLen = s->len[t][i];
- }
- BZ2_hbCreateDecodeTables (
- &(s->limit[t][0]),
- &(s->base[t][0]),
- &(s->perm[t][0]),
- &(s->len[t][0]),
- minLen, maxLen, alphaSize
- );
- s->minLens[t] = minLen;
- }
-
- /*--- Now the MTF values ---*/
-
- EOB = s->nInUse+1;
- nblockMAX = 100000 * s->blockSize100k;
- groupNo = -1;
- groupPos = 0;
-
- for (i = 0; i <= 255; i++) s->unzftab[i] = 0;
-
- /*-- MTF init --*/
- {
- Int32 ii, jj, kk;
- kk = MTFA_SIZE-1;
- for (ii = 256 / MTFL_SIZE - 1; ii >= 0; ii--) {
- for (jj = MTFL_SIZE-1; jj >= 0; jj--) {
- s->mtfa[kk] = (UChar)(ii * MTFL_SIZE + jj);
- kk--;
- }
- s->mtfbase[ii] = kk + 1;
- }
- }
- /*-- end MTF init --*/
-
- nblock = 0;
- GET_MTF_VAL(BZ_X_MTF_1, BZ_X_MTF_2, nextSym);
-
- while (True) {
-
- if (nextSym == EOB) break;
-
- if (nextSym == BZ_RUNA || nextSym == BZ_RUNB) {
-
- es = -1;
- N = 1;
- do {
- if (nextSym == BZ_RUNA) es = es + (0+1) * N; else
- if (nextSym == BZ_RUNB) es = es + (1+1) * N;
- N = N * 2;
- GET_MTF_VAL(BZ_X_MTF_3, BZ_X_MTF_4, nextSym);
- }
- while (nextSym == BZ_RUNA || nextSym == BZ_RUNB);
-
- es++;
- uc = s->seqToUnseq[ s->mtfa[s->mtfbase[0]] ];
- s->unzftab[uc] += es;
-
- if (s->smallDecompress)
- while (es > 0) {
- if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR);
- s->ll16[nblock] = (UInt16)uc;
- nblock++;
- es--;
- }
- else
- while (es > 0) {
- if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR);
- s->tt[nblock] = (UInt32)uc;
- nblock++;
- es--;
- };
-
- continue;
-
- } else {
-
- if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR);
-
- /*-- uc = MTF ( nextSym-1 ) --*/
- {
- Int32 ii, jj, kk, pp, lno, off;
- UInt32 nn;
- nn = (UInt32)(nextSym - 1);
-
- if (nn < MTFL_SIZE) {
- /* avoid general-case expense */
- pp = s->mtfbase[0];
- uc = s->mtfa[pp+nn];
- while (nn > 3) {
- Int32 z = pp+nn;
- s->mtfa[(z) ] = s->mtfa[(z)-1];
- s->mtfa[(z)-1] = s->mtfa[(z)-2];
- s->mtfa[(z)-2] = s->mtfa[(z)-3];
- s->mtfa[(z)-3] = s->mtfa[(z)-4];
- nn -= 4;
- }
- while (nn > 0) {
- s->mtfa[(pp+nn)] = s->mtfa[(pp+nn)-1]; nn--;
- };
- s->mtfa[pp] = uc;
- } else {
- /* general case */
- lno = nn / MTFL_SIZE;
- off = nn % MTFL_SIZE;
- pp = s->mtfbase[lno] + off;
- uc = s->mtfa[pp];
- while (pp > s->mtfbase[lno]) {
- s->mtfa[pp] = s->mtfa[pp-1]; pp--;
- };
- s->mtfbase[lno]++;
- while (lno > 0) {
- s->mtfbase[lno]--;
- s->mtfa[s->mtfbase[lno]]
- = s->mtfa[s->mtfbase[lno-1] + MTFL_SIZE - 1];
- lno--;
- }
- s->mtfbase[0]--;
- s->mtfa[s->mtfbase[0]] = uc;
- if (s->mtfbase[0] == 0) {
- kk = MTFA_SIZE-1;
- for (ii = 256 / MTFL_SIZE-1; ii >= 0; ii--) {
- for (jj = MTFL_SIZE-1; jj >= 0; jj--) {
- s->mtfa[kk] = s->mtfa[s->mtfbase[ii] + jj];
- kk--;
- }
- s->mtfbase[ii] = kk + 1;
- }
- }
- }
- }
- /*-- end uc = MTF ( nextSym-1 ) --*/
-
- s->unzftab[s->seqToUnseq[uc]]++;
- if (s->smallDecompress)
- s->ll16[nblock] = (UInt16)(s->seqToUnseq[uc]); else
- s->tt[nblock] = (UInt32)(s->seqToUnseq[uc]);
- nblock++;
-
- GET_MTF_VAL(BZ_X_MTF_5, BZ_X_MTF_6, nextSym);
- continue;
- }
- }
-
- /* Now we know what nblock is, we can do a better sanity
- check on s->origPtr.
- */
- if (s->origPtr < 0 || s->origPtr >= nblock)
- RETURN(BZ_DATA_ERROR);
-
- s->state_out_len = 0;
- s->state_out_ch = 0;
- BZ_INITIALISE_CRC ( s->calculatedBlockCRC );
- s->state = BZ_X_OUTPUT;
- if (s->verbosity >= 2) VPrintf0 ( "rt+rld" );
-
- /*-- Set up cftab to facilitate generation of T^(-1) --*/
- s->cftab[0] = 0;
- for (i = 1; i <= 256; i++) s->cftab[i] = s->unzftab[i-1];
- for (i = 1; i <= 256; i++) s->cftab[i] += s->cftab[i-1];
-
- if (s->smallDecompress) {
-
- /*-- Make a copy of cftab, used in generation of T --*/
- for (i = 0; i <= 256; i++) s->cftabCopy[i] = s->cftab[i];
-
- /*-- compute the T vector --*/
- for (i = 0; i < nblock; i++) {
- uc = (UChar)(s->ll16[i]);
- SET_LL(i, s->cftabCopy[uc]);
- s->cftabCopy[uc]++;
- }
-
- /*-- Compute T^(-1) by pointer reversal on T --*/
- i = s->origPtr;
- j = GET_LL(i);
- do {
- Int32 tmp = GET_LL(j);
- SET_LL(j, i);
- i = j;
- j = tmp;
- }
- while (i != s->origPtr);
-
- s->tPos = s->origPtr;
- s->nblock_used = 0;
- if (s->blockRandomised) {
- BZ_RAND_INIT_MASK;
- BZ_GET_SMALL(s->k0); s->nblock_used++;
- BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK;
- } else {
- BZ_GET_SMALL(s->k0); s->nblock_used++;
- }
-
- } else {
-
- /*-- compute the T^(-1) vector --*/
- for (i = 0; i < nblock; i++) {
- uc = (UChar)(s->tt[i] & 0xff);
- s->tt[s->cftab[uc]] |= (i << 8);
- s->cftab[uc]++;
- }
-
- s->tPos = s->tt[s->origPtr] >> 8;
- s->nblock_used = 0;
- if (s->blockRandomised) {
- BZ_RAND_INIT_MASK;
- BZ_GET_FAST(s->k0); s->nblock_used++;
- BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK;
- } else {
- BZ_GET_FAST(s->k0); s->nblock_used++;
- }
-
- }
-
- RETURN(BZ_OK);
-
-
-
- endhdr_2:
-
- GET_UCHAR(BZ_X_ENDHDR_2, uc);
- if (uc != 0x72) RETURN(BZ_DATA_ERROR);
- GET_UCHAR(BZ_X_ENDHDR_3, uc);
- if (uc != 0x45) RETURN(BZ_DATA_ERROR);
- GET_UCHAR(BZ_X_ENDHDR_4, uc);
- if (uc != 0x38) RETURN(BZ_DATA_ERROR);
- GET_UCHAR(BZ_X_ENDHDR_5, uc);
- if (uc != 0x50) RETURN(BZ_DATA_ERROR);
- GET_UCHAR(BZ_X_ENDHDR_6, uc);
- if (uc != 0x90) RETURN(BZ_DATA_ERROR);
-
- s->storedCombinedCRC = 0;
- GET_UCHAR(BZ_X_CCRC_1, uc);
- s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc);
- GET_UCHAR(BZ_X_CCRC_2, uc);
- s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc);
- GET_UCHAR(BZ_X_CCRC_3, uc);
- s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc);
- GET_UCHAR(BZ_X_CCRC_4, uc);
- s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc);
-
- s->state = BZ_X_IDLE;
- RETURN(BZ_STREAM_END);
-
- default: AssertH ( False, 4001 );
- }
-
- AssertH ( False, 4002 );
-
- save_state_and_return:
-
- s->save_i = i;
- s->save_j = j;
- s->save_t = t;
- s->save_alphaSize = alphaSize;
- s->save_nGroups = nGroups;
- s->save_nSelectors = nSelectors;
- s->save_EOB = EOB;
- s->save_groupNo = groupNo;
- s->save_groupPos = groupPos;
- s->save_nextSym = nextSym;
- s->save_nblockMAX = nblockMAX;
- s->save_nblock = nblock;
- s->save_es = es;
- s->save_N = N;
- s->save_curr = curr;
- s->save_zt = zt;
- s->save_zn = zn;
- s->save_zvec = zvec;
- s->save_zj = zj;
- s->save_gSel = gSel;
- s->save_gMinlen = gMinlen;
- s->save_gLimit = gLimit;
- s->save_gBase = gBase;
- s->save_gPerm = gPerm;
-
- return retVal;
-}
-
-
-/*-------------------------------------------------------------*/
-/*--- end decompress.c ---*/
-/*-------------------------------------------------------------*/
diff --git a/mdk-stage1/bzlib/huffman.c b/mdk-stage1/bzlib/huffman.c
deleted file mode 100644
index 8994f0bb9..000000000
--- a/mdk-stage1/bzlib/huffman.c
+++ /dev/null
@@ -1,232 +0,0 @@
-
-/*-------------------------------------------------------------*/
-/*--- Huffman coding low-level stuff ---*/
-/*--- huffman.c ---*/
-/*-------------------------------------------------------------*/
-
-/*--
- This file is a part of bzip2 and/or libbzip2, a program and
- library for lossless, block-sorting data compression.
-
- Copyright (C) 1996-2000 Julian R Seward. 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. 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.
-
- 3. Altered source versions must be plainly marked as such, and must
- not be misrepresented as being the original software.
-
- 4. 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 BY THE AUTHOR ``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 AUTHOR 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.
-
- Julian Seward, Cambridge, UK.
- jseward@acm.org
- bzip2/libbzip2 version 1.0 of 21 March 2000
-
- This program is based on (at least) the work of:
- Mike Burrows
- David Wheeler
- Peter Fenwick
- Alistair Moffat
- Radford Neal
- Ian H. Witten
- Robert Sedgewick
- Jon L. Bentley
-
- For more information on these sources, see the manual.
---*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-
-#include "bzlib_private.h"
-
-/*---------------------------------------------------*/
-#define WEIGHTOF(zz0) ((zz0) & 0xffffff00)
-#define DEPTHOF(zz1) ((zz1) & 0x000000ff)
-#define MYMAX(zz2,zz3) ((zz2) > (zz3) ? (zz2) : (zz3))
-
-#define ADDWEIGHTS(zw1,zw2) \
- (WEIGHTOF(zw1)+WEIGHTOF(zw2)) | \
- (1 + MYMAX(DEPTHOF(zw1),DEPTHOF(zw2)))
-
-#define UPHEAP(z) \
-{ \
- Int32 zz, tmp; \
- zz = z; tmp = heap[zz]; \
- while (weight[tmp] < weight[heap[zz >> 1]]) { \
- heap[zz] = heap[zz >> 1]; \
- zz >>= 1; \
- } \
- heap[zz] = tmp; \
-}
-
-#define DOWNHEAP(z) \
-{ \
- Int32 zz, yy, tmp; \
- zz = z; tmp = heap[zz]; \
- while (True) { \
- yy = zz << 1; \
- if (yy > nHeap) break; \
- if (yy < nHeap && \
- weight[heap[yy+1]] < weight[heap[yy]]) \
- yy++; \
- if (weight[tmp] < weight[heap[yy]]) break; \
- heap[zz] = heap[yy]; \
- zz = yy; \
- } \
- heap[zz] = tmp; \
-}
-
-
-/*---------------------------------------------------*/
-void BZ2_hbMakeCodeLengths ( UChar *len,
- Int32 *freq,
- Int32 alphaSize,
- Int32 maxLen )
-{
- /*--
- Nodes and heap entries run from 1. Entry 0
- for both the heap and nodes is a sentinel.
- --*/
- Int32 nNodes, nHeap, n1, n2, i, j, k;
- Bool tooLong;
-
- Int32 heap [ BZ_MAX_ALPHA_SIZE + 2 ];
- Int32 weight [ BZ_MAX_ALPHA_SIZE * 2 ];
- Int32 parent [ BZ_MAX_ALPHA_SIZE * 2 ];
-
- for (i = 0; i < alphaSize; i++)
- weight[i+1] = (freq[i] == 0 ? 1 : freq[i]) << 8;
-
- while (True) {
-
- nNodes = alphaSize;
- nHeap = 0;
-
- heap[0] = 0;
- weight[0] = 0;
- parent[0] = -2;
-
- for (i = 1; i <= alphaSize; i++) {
- parent[i] = -1;
- nHeap++;
- heap[nHeap] = i;
- UPHEAP(nHeap);
- }
-
- AssertH( nHeap < (BZ_MAX_ALPHA_SIZE+2), 2001 );
-
- while (nHeap > 1) {
- n1 = heap[1]; heap[1] = heap[nHeap]; nHeap--; DOWNHEAP(1);
- n2 = heap[1]; heap[1] = heap[nHeap]; nHeap--; DOWNHEAP(1);
- nNodes++;
- parent[n1] = parent[n2] = nNodes;
- weight[nNodes] = ADDWEIGHTS(weight[n1], weight[n2]);
- parent[nNodes] = -1;
- nHeap++;
- heap[nHeap] = nNodes;
- UPHEAP(nHeap);
- }
-
- AssertH( nNodes < (BZ_MAX_ALPHA_SIZE * 2), 2002 );
-
- tooLong = False;
- for (i = 1; i <= alphaSize; i++) {
- j = 0;
- k = i;
- while (parent[k] >= 0) { k = parent[k]; j++; }
- len[i-1] = j;
- if (j > maxLen) tooLong = True;
- }
-
- if (! tooLong) break;
-
- for (i = 1; i < alphaSize; i++) {
- j = weight[i] >> 8;
- j = 1 + (j / 2);
- weight[i] = j << 8;
- }
- }
-}
-
-
-/*---------------------------------------------------*/
-void BZ2_hbAssignCodes ( Int32 *code,
- UChar *length,
- Int32 minLen,
- Int32 maxLen,
- Int32 alphaSize )
-{
- Int32 n, vec, i;
-
- vec = 0;
- for (n = minLen; n <= maxLen; n++) {
- for (i = 0; i < alphaSize; i++)
- if (length[i] == n) { code[i] = vec; vec++; };
- vec <<= 1;
- }
-}
-
-
-/*---------------------------------------------------*/
-void BZ2_hbCreateDecodeTables ( Int32 *limit,
- Int32 *base,
- Int32 *perm,
- UChar *length,
- Int32 minLen,
- Int32 maxLen,
- Int32 alphaSize )
-{
- Int32 pp, i, j, vec;
-
- pp = 0;
- for (i = minLen; i <= maxLen; i++)
- for (j = 0; j < alphaSize; j++)
- if (length[j] == i) { perm[pp] = j; pp++; };
-
- for (i = 0; i < BZ_MAX_CODE_LEN; i++) base[i] = 0;
- for (i = 0; i < alphaSize; i++) base[length[i]+1]++;
-
- for (i = 1; i < BZ_MAX_CODE_LEN; i++) base[i] += base[i-1];
-
- for (i = 0; i < BZ_MAX_CODE_LEN; i++) limit[i] = 0;
- vec = 0;
-
- for (i = minLen; i <= maxLen; i++) {
- vec += (base[i+1] - base[i]);
- limit[i] = vec-1;
- vec <<= 1;
- }
- for (i = minLen + 1; i <= maxLen; i++)
- base[i] = ((limit[i-1] + 1) << 1) - base[i];
-}
-
-
-/*-------------------------------------------------------------*/
-/*--- end huffman.c ---*/
-/*-------------------------------------------------------------*/
diff --git a/mdk-stage1/bzlib/randtable.c b/mdk-stage1/bzlib/randtable.c
deleted file mode 100644
index a1fc82cfb..000000000
--- a/mdk-stage1/bzlib/randtable.c
+++ /dev/null
@@ -1,128 +0,0 @@
-
-/*-------------------------------------------------------------*/
-/*--- Table for randomising repetitive blocks ---*/
-/*--- randtable.c ---*/
-/*-------------------------------------------------------------*/
-
-/*--
- This file is a part of bzip2 and/or libbzip2, a program and
- library for lossless, block-sorting data compression.
-
- Copyright (C) 1996-2000 Julian R Seward. 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. 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.
-
- 3. Altered source versions must be plainly marked as such, and must
- not be misrepresented as being the original software.
-
- 4. 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 BY THE AUTHOR ``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 AUTHOR 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.
-
- Julian Seward, Cambridge, UK.
- jseward@acm.org
- bzip2/libbzip2 version 1.0 of 21 March 2000
-
- This program is based on (at least) the work of:
- Mike Burrows
- David Wheeler
- Peter Fenwick
- Alistair Moffat
- Radford Neal
- Ian H. Witten
- Robert Sedgewick
- Jon L. Bentley
-
- For more information on these sources, see the manual.
---*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-
-#include "bzlib_private.h"
-
-
-/*---------------------------------------------*/
-Int32 BZ2_rNums[512] = {
- 619, 720, 127, 481, 931, 816, 813, 233, 566, 247,
- 985, 724, 205, 454, 863, 491, 741, 242, 949, 214,
- 733, 859, 335, 708, 621, 574, 73, 654, 730, 472,
- 419, 436, 278, 496, 867, 210, 399, 680, 480, 51,
- 878, 465, 811, 169, 869, 675, 611, 697, 867, 561,
- 862, 687, 507, 283, 482, 129, 807, 591, 733, 623,
- 150, 238, 59, 379, 684, 877, 625, 169, 643, 105,
- 170, 607, 520, 932, 727, 476, 693, 425, 174, 647,
- 73, 122, 335, 530, 442, 853, 695, 249, 445, 515,
- 909, 545, 703, 919, 874, 474, 882, 500, 594, 612,
- 641, 801, 220, 162, 819, 984, 589, 513, 495, 799,
- 161, 604, 958, 533, 221, 400, 386, 867, 600, 782,
- 382, 596, 414, 171, 516, 375, 682, 485, 911, 276,
- 98, 553, 163, 354, 666, 933, 424, 341, 533, 870,
- 227, 730, 475, 186, 263, 647, 537, 686, 600, 224,
- 469, 68, 770, 919, 190, 373, 294, 822, 808, 206,
- 184, 943, 795, 384, 383, 461, 404, 758, 839, 887,
- 715, 67, 618, 276, 204, 918, 873, 777, 604, 560,
- 951, 160, 578, 722, 79, 804, 96, 409, 713, 940,
- 652, 934, 970, 447, 318, 353, 859, 672, 112, 785,
- 645, 863, 803, 350, 139, 93, 354, 99, 820, 908,
- 609, 772, 154, 274, 580, 184, 79, 626, 630, 742,
- 653, 282, 762, 623, 680, 81, 927, 626, 789, 125,
- 411, 521, 938, 300, 821, 78, 343, 175, 128, 250,
- 170, 774, 972, 275, 999, 639, 495, 78, 352, 126,
- 857, 956, 358, 619, 580, 124, 737, 594, 701, 612,
- 669, 112, 134, 694, 363, 992, 809, 743, 168, 974,
- 944, 375, 748, 52, 600, 747, 642, 182, 862, 81,
- 344, 805, 988, 739, 511, 655, 814, 334, 249, 515,
- 897, 955, 664, 981, 649, 113, 974, 459, 893, 228,
- 433, 837, 553, 268, 926, 240, 102, 654, 459, 51,
- 686, 754, 806, 760, 493, 403, 415, 394, 687, 700,
- 946, 670, 656, 610, 738, 392, 760, 799, 887, 653,
- 978, 321, 576, 617, 626, 502, 894, 679, 243, 440,
- 680, 879, 194, 572, 640, 724, 926, 56, 204, 700,
- 707, 151, 457, 449, 797, 195, 791, 558, 945, 679,
- 297, 59, 87, 824, 713, 663, 412, 693, 342, 606,
- 134, 108, 571, 364, 631, 212, 174, 643, 304, 329,
- 343, 97, 430, 751, 497, 314, 983, 374, 822, 928,
- 140, 206, 73, 263, 980, 736, 876, 478, 430, 305,
- 170, 514, 364, 692, 829, 82, 855, 953, 676, 246,
- 369, 970, 294, 750, 807, 827, 150, 790, 288, 923,
- 804, 378, 215, 828, 592, 281, 565, 555, 710, 82,
- 896, 831, 547, 261, 524, 462, 293, 465, 502, 56,
- 661, 821, 976, 991, 658, 869, 905, 758, 745, 193,
- 768, 550, 608, 933, 378, 286, 215, 979, 792, 961,
- 61, 688, 793, 644, 986, 403, 106, 366, 905, 644,
- 372, 567, 466, 434, 645, 210, 389, 550, 919, 135,
- 780, 773, 635, 389, 707, 100, 626, 958, 165, 504,
- 920, 176, 193, 713, 857, 265, 203, 50, 668, 108,
- 645, 990, 626, 197, 510, 357, 358, 850, 858, 364,
- 936, 638
-};
-
-
-/*-------------------------------------------------------------*/
-/*--- end randtable.c ---*/
-/*-------------------------------------------------------------*/
diff --git a/mdk-stage1/cdrom.c b/mdk-stage1/cdrom.c
deleted file mode 100644
index c3ff2e802..000000000
--- a/mdk-stage1/cdrom.c
+++ /dev/null
@@ -1,181 +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.
- *
- */
-
-/*
- * Portions from Erik Troan (ewt@redhat.com)
- *
- * Copyright 1996 Red Hat Software
- *
- */
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <stdio.h>
-#include <sys/mount.h>
-#include "stage1.h"
-#include "frontend.h"
-#include "modules.h"
-#include "probing.h"
-#include "log.h"
-#include "mount.h"
-
-#include "cdrom.h"
-
-
-static int mount_that_cd_device(char * dev_name)
-{
- char device_fullname[50];
-
- strcpy(device_fullname, "/dev/");
- strcat(device_fullname, dev_name);
-
- return my_mount(device_fullname, IMAGE_LOCATION, "iso9660", 0);
-}
-
-
-static int test_that_cd()
-{
- return access(IMAGE_LOCATION LIVE_LOCATION, R_OK);
-}
-
-
-static enum return_type try_with_device(char * dev_name, char * dev_model);
-
-static enum return_type do_with_device(char * dev_name, char * dev_model)
-{
- if (test_that_cd()) {
- enum return_type results;
- umount(IMAGE_LOCATION);
- results = ask_yes_no("That CDROM disc does not seem to be a " DISTRIB_NAME " Installation CDROM.\nRetry with another disc?");
- if (results == RETURN_OK)
- return try_with_device(dev_name, dev_model);
- return results;
- }
-
- log_message("found a " DISTRIB_NAME " CDROM, good news!");
-
- if (IS_SPECIAL_STAGE2 || ramdisk_possible())
- load_ramdisk(); /* we don't care about return code, we'll do it live if we failed */
-
- if (IS_RESCUE)
- umount(IMAGE_LOCATION);
-
- method_name = strdup("cdrom");
- return RETURN_OK;
-}
-
-static enum return_type try_with_device(char * dev_name, char * dev_model)
-{
- wait_message("Trying to access a CDROM disc (drive %s)", dev_model);
-
- if (mount_that_cd_device(dev_name) == -1) {
- enum return_type results;
- char msg[500];
- unset_param(MODE_AUTOMATIC); /* we are in a fallback mode */
- remove_wait_message();
-
- snprintf(msg, sizeof(msg), "I can't access a " DISTRIB_NAME " Installation disc in your CDROM drive (%s).\nRetry?", dev_model);
- results = ask_yes_no(msg);
- if (results == RETURN_OK)
- return try_with_device(dev_name, dev_model);
- return results;
- }
- remove_wait_message();
-
- return do_with_device(dev_name, dev_model);
-}
-
-enum return_type cdrom_prepare(void)
-{
- char ** medias, ** ptr, ** medias_models;
- char * choice;
- int i, count = 0;
- enum return_type results;
-
- my_insmod("ide-cd", ANY_DRIVER_TYPE, NULL);
- my_insmod("sr_mod", ANY_DRIVER_TYPE, NULL);
-
- get_medias(CDROM, &medias, &medias_models);
-
- ptr = medias;
- while (ptr && *ptr) {
- count++;
- ptr++;
- }
-
- if (count == 0) {
- stg1_error_message("No CDROM device found.");
- i = ask_insmod(SCSI_ADAPTERS);
- if (i == RETURN_BACK)
- return RETURN_BACK;
- return cdrom_prepare();
- }
-
- if (count == 1) {
- results = try_with_device(*medias, *medias_models);
- if (results == RETURN_OK)
- return RETURN_OK;
- i = ask_insmod(SCSI_ADAPTERS);
- if (i == RETURN_BACK)
- return RETURN_BACK;
- return cdrom_prepare();
- }
-
- if (IS_AUTOMATIC) {
- char ** model = medias_models;
- ptr = medias;
- while (ptr && *ptr) {
- wait_message("Trying to access " DISTRIB_NAME " CDROM disc (drive %s)", *model);
- if (mount_that_cd_device(*ptr) != -1) {
- if (!test_that_cd()) {
- remove_wait_message();
- return do_with_device(*ptr, *model);
- }
- else
- umount(IMAGE_LOCATION);
- }
- remove_wait_message();
- ptr++;
- model++;
- }
- unset_param(MODE_AUTOMATIC);
- return cdrom_prepare();
- }
- else {
- results = ask_from_list_comments("Please choose the CDROM drive to use for the installation.", medias, medias_models, &choice);
- if (results == RETURN_OK) {
- char ** model = medias_models;
- ptr = medias;
- while (ptr && *ptr && model && *model) {
- if (!strcmp(*ptr, choice))
- break;
- ptr++;
- model++;
- }
- results = try_with_device(choice, *model);
- } else
- return results;
- }
-
- if (results == RETURN_OK)
- return RETURN_OK;
- if (results == RETURN_BACK)
- return cdrom_prepare();
-
- i = ask_insmod(SCSI_ADAPTERS);
- if (i == RETURN_BACK)
- return RETURN_BACK;
- return cdrom_prepare();
-}
diff --git a/mdk-stage1/cdrom.h b/mdk-stage1/cdrom.h
deleted file mode 100644
index 639487eed..000000000
--- a/mdk-stage1/cdrom.h
+++ /dev/null
@@ -1,29 +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.
- *
- */
-
-/*
- * Portions from Erik Troan (ewt@redhat.com)
- *
- * Copyright 1996 Red Hat Software
- *
- */
-
-#ifndef _CDROM_H_
-#define _CDROM_H_
-
-#include "stage1.h"
-
-enum return_type cdrom_prepare(void);
-
-#endif
diff --git a/mdk-stage1/config-stage1.h b/mdk-stage1/config-stage1.h
deleted file mode 100644
index 3af38a446..000000000
--- a/mdk-stage1/config-stage1.h
+++ /dev/null
@@ -1,48 +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.
- *
- */
-
-#ifndef _CONFIG_STAGE1_H_
-#define _CONFIG_STAGE1_H_
-
-#define _GNU_SOURCE 1
-
-
-/* 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_RAMDISK 52
-
-/* 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
-
-#define DISTRIB_NAME "Mandrake Linux"
-
-#define RAMDISK_COMPRESSION_RATIO 1.95
-
-#define LIVE_LOCATION "/Mandrake/mdkinst/"
-#define RAMDISK_LOCATION "/Mandrake/base/"
-#define IMAGE_LOCATION "/tmp/image"
-#define STAGE2_LOCATION "/tmp/stage2"
-
-/* user-definable (in Makefile): DISABLE_NETWORK, DISABLE_DISK, DISABLE_CDROM, DISABLE_PCMCIA */
-
-
-/* some factorizing for disabling more features */
-
-#ifdef DISABLE_DISK
-#ifdef DISABLE_CDROM
-#define DISABLE_MEDIAS
-#endif
-#endif
-
-
-#endif
diff --git a/mdk-stage1/dhcp.c b/mdk-stage1/dhcp.c
deleted file mode 100644
index 32c7a932b..000000000
--- a/mdk-stage1/dhcp.c
+++ /dev/null
@@ -1,679 +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.
- *
- */
-
-/*
- * Portions from Erik Troan (ewt@redhat.com)
- *
- * Copyright 1996 Red Hat Software
- *
- */
-
-/*
- * Portions from GRUB -- GRand Unified Bootloader
- * Copyright (C) 2000 Free Software Foundation, Inc.
- */
-
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/socket.h>
-#include <sys/ioctl.h>
-#include <net/if.h>
-#include <arpa/inet.h>
-#include <net/route.h>
-#include <errno.h>
-#include <net/ethernet.h>
-#include <netinet/ip.h>
-#include <netinet/udp.h>
-#include <sys/time.h>
-#include <time.h>
-#include <fcntl.h>
-#include <sys/poll.h>
-
-#include "stage1.h"
-#include "log.h"
-#include "network.h"
-#include "frontend.h"
-#include "automatic.h"
-
-#include "dhcp.h"
-
-
-typedef int bp_int32;
-typedef short bp_int16;
-
-#define BOOTP_OPTION_NETMASK 1
-#define BOOTP_OPTION_GATEWAY 3
-#define BOOTP_OPTION_DNS 6
-#define BOOTP_OPTION_HOSTNAME 12
-#define BOOTP_OPTION_DOMAIN 15
-#define BOOTP_OPTION_BROADCAST 28
-
-#define DHCP_OPTION_REQADDR 50
-#define DHCP_OPTION_LEASE 51
-#define DHCP_OPTION_TYPE 53
-#define DHCP_OPTION_SERVER 54
-#define DHCP_OPTION_OPTIONREQ 55
-#define DHCP_OPTION_MAXSIZE 57
-
-#define DHCP_OPTION_CLIENT_IDENTIFIER 61
-
-#define BOOTP_CLIENT_PORT 68
-#define BOOTP_SERVER_PORT 67
-
-#define BOOTP_OPCODE_REQUEST 1
-#define BOOTP_OPCODE_REPLY 2
-
-#define DHCP_TYPE_DISCOVER 1
-#define DHCP_TYPE_OFFER 2
-#define DHCP_TYPE_REQUEST 3
-#define DHCP_TYPE_ACK 5
-#define DHCP_TYPE_RELEASE 7
-
-#define BOOTP_VENDOR_LENGTH 64
-#define DHCP_VENDOR_LENGTH 340
-
-struct bootp_request {
- char opcode;
- char hw;
- char hwlength;
- char hopcount;
- bp_int32 id;
- bp_int16 secs;
- bp_int16 flags;
- bp_int32 ciaddr, yiaddr, server_ip, bootp_gw_ip;
- char hwaddr[16];
- char servername[64];
- char bootfile[128];
- char vendor[DHCP_VENDOR_LENGTH];
-} ;
-
-static const char vendor_cookie[] = { 99, 130, 83, 99, 255 };
-
-
-static unsigned int verify_checksum(void * buf2, int length2)
-{
- unsigned int csum = 0;
- unsigned short * sp;
-
- for (sp = (unsigned short *) buf2; length2 > 0; (length2 -= 2), sp++)
- csum += *sp;
-
- while (csum >> 16)
- csum = (csum & 0xffff) + (csum >> 16);
-
- return (csum == 0xffff);
-}
-
-
-static int initial_setup_interface(char * device, int s) {
- struct sockaddr_in * addrp;
- struct ifreq req;
- struct rtentry route;
- int true = 1;
-
- addrp = (struct sockaddr_in *) &req.ifr_addr;
-
- strcpy(req.ifr_name, device);
- addrp->sin_family = AF_INET;
- addrp->sin_port = 0;
- memset(&addrp->sin_addr, 0, sizeof(addrp->sin_addr));
-
- req.ifr_flags = 0; /* take it down */
- if (ioctl(s, SIOCSIFFLAGS, &req)) {
- log_perror("SIOCSIFFLAGS (downing)");
- return -1;
- }
-
- addrp->sin_family = AF_INET;
- addrp->sin_addr.s_addr = htonl(0);
- if (ioctl(s, SIOCSIFADDR, &req)) {
- log_perror("SIOCSIFADDR");
- return -1;
- }
-
- req.ifr_flags = IFF_UP | IFF_BROADCAST | IFF_RUNNING;
- if (ioctl(s, SIOCSIFFLAGS, &req)) {
- log_perror("SIOCSIFFLAGS (upping)");
- return -1;
- }
-
- memset(&route, 0, sizeof(route));
- memcpy(&route.rt_gateway, addrp, sizeof(*addrp));
-
- addrp->sin_family = AF_INET;
- addrp->sin_port = 0;
- addrp->sin_addr.s_addr = INADDR_ANY;
- memcpy(&route.rt_dst, addrp, sizeof(*addrp));
- memcpy(&route.rt_genmask, addrp, sizeof(*addrp));
-
- route.rt_dev = device;
- route.rt_flags = RTF_UP;
- route.rt_metric = 0;
-
- if (ioctl(s, SIOCADDRT, &route)) {
- if (errno != EEXIST) {
- close(s);
- log_perror("SIOCADDRT");
- return -1;
- }
- }
-
- if (setsockopt(s, SOL_SOCKET, SO_BROADCAST, &true, sizeof(true))) {
- close(s);
- log_perror("setsockopt");
- return -1;
- }
-
- /* I need to sleep a bit in order for kernel to finish init of the
- network device; this would allow to not send further multiple
- dhcp requests when only one is needed. */
- wait_message("Bringing up networking...");
- sleep(2);
- remove_wait_message();
-
- return 0;
-}
-
-
-void set_missing_ip_info(struct interface_info * intf)
-{
- bp_int32 ipNum = *((bp_int32 *) &intf->ip);
- bp_int32 nmNum;
-
- if (intf->netmask.s_addr == 0)
- inet_aton(guess_netmask(inet_ntoa(intf->ip)), &intf->netmask);
-
- nmNum = *((bp_int32 *) &intf->netmask);
-
- if (intf->broadcast.s_addr == 0)
- *((bp_int32 *) &intf->broadcast) = (ipNum & nmNum) | ~(nmNum);
-
- if (intf->network.s_addr == 0)
- *((bp_int32 *) &intf->network) = ipNum & nmNum;
-}
-
-static void parse_reply(struct bootp_request * breq, struct interface_info * intf)
-{
- unsigned char * chptr;
- unsigned char option, length;
-
- if (breq->bootfile && strlen(breq->bootfile) > 0)
- stage2_kickstart = strdup(breq->bootfile);
-
- memcpy(&intf->ip, &breq->yiaddr, 4);
-
- chptr = breq->vendor;
- chptr += 4;
- while (*chptr != 0xFF && (void *) chptr < (void *) breq->vendor + DHCP_VENDOR_LENGTH) {
- char tmp_str[500];
- option = *chptr++;
- if (!option)
- continue;
- length = *chptr++;
-
- switch (option) {
- case BOOTP_OPTION_DNS:
- memcpy(&dns_server, chptr, sizeof(dns_server));
- log_message("got dns %s", inet_ntoa(dns_server));
- if (length >= sizeof(dns_server)*2) {
- memcpy(&dns_server2, chptr+sizeof(dns_server), sizeof(dns_server2));
- log_message("got dns2 %s", inet_ntoa(dns_server2));
- }
- break;
-
- case BOOTP_OPTION_NETMASK:
- memcpy(&intf->netmask, chptr, sizeof(intf->netmask));
- log_message("got netmask %s", inet_ntoa(intf->netmask));
- break;
-
- case BOOTP_OPTION_DOMAIN:
- memcpy(tmp_str, chptr, length);
- tmp_str[length] = '\0';
- domain = strdup(tmp_str);
- log_message("got domain %s", domain);
- break;
-
- case BOOTP_OPTION_BROADCAST:
- memcpy(&intf->broadcast, chptr, sizeof(intf->broadcast));
- log_message("got broadcast %s", inet_ntoa(intf->broadcast));
- break;
-
- case BOOTP_OPTION_GATEWAY:
- memcpy(&gateway, chptr, sizeof(gateway));
- log_message("got gateway %s", inet_ntoa(gateway));
- break;
-
- case BOOTP_OPTION_HOSTNAME:
- memcpy(tmp_str, chptr, length);
- tmp_str[length] = '\0';
- hostname = strdup(tmp_str);
- log_message("got hostname %s", hostname);
- break;
-
- }
-
- chptr += length;
- }
-
- set_missing_ip_info(intf);
-}
-
-
-static void init_vendor_codes(struct bootp_request * breq) {
- memcpy(breq->vendor, vendor_cookie, sizeof(vendor_cookie));
-}
-
-static char gen_hwaddr[16];
-
-static int prepare_request(struct bootp_request * breq, int sock, char * device)
-{
- struct ifreq req;
-
- memset(breq, 0, sizeof(*breq));
-
- breq->opcode = BOOTP_OPCODE_REQUEST;
-
- strcpy(req.ifr_name, device);
- if (ioctl(sock, SIOCGIFHWADDR, &req)) {
- log_perror("SIOCSIFHWADDR");
- return -1;
- }
-
- breq->hw = 1; /* ethernet */
- breq->hwlength = IFHWADDRLEN;
- memcpy(breq->hwaddr, req.ifr_hwaddr.sa_data, IFHWADDRLEN);
- memcpy(gen_hwaddr, req.ifr_hwaddr.sa_data, IFHWADDRLEN);
-
- breq->hopcount = 0;
-
- init_vendor_codes(breq);
-
- return 0;
-}
-
-static int get_vendor_code(struct bootp_request * bresp, unsigned char option, void * data)
-{
- unsigned char * chptr;
- unsigned int length, theOption;
-
- chptr = bresp->vendor + 4;
- while (*chptr != 0xFF && *chptr != option) {
- theOption = *chptr++;
- if (!theOption)
- continue;
- length = *chptr++;
- chptr += length;
- }
-
- if (*chptr++ == 0xff)
- return 1;
-
- length = *chptr++;
- memcpy(data, chptr, length);
-
- return 0;
-}
-
-
-static unsigned long currticks(void)
-{
- struct timeval tv;
- unsigned long csecs;
- unsigned long ticks_per_csec, ticks_per_usec;
-
- /* Note: 18.2 ticks/sec. */
-
- gettimeofday (&tv, 0);
- csecs = tv.tv_sec / 10;
- ticks_per_csec = csecs * 182;
- ticks_per_usec = (((tv.tv_sec - csecs * 10) * 1000000 + tv.tv_usec) * 182 / 10000000);
- return ticks_per_csec + ticks_per_usec;
-}
-
-
-#define BACKOFF_LIMIT 7
-#define TICKS_PER_SEC 18
-#define MAX_ARP_RETRIES 4
-
-static void rfc951_sleep(int exp)
-{
- static long seed = 0;
- long q;
- unsigned long tmo;
-
- if (exp > BACKOFF_LIMIT)
- exp = BACKOFF_LIMIT;
-
- if (!seed)
- /* Initialize linear congruential generator. */
- seed = (currticks () + *(long *) &gen_hwaddr + ((short *) gen_hwaddr)[2]);
-
- /* Simplified version of the LCG given in Bruce Scheier's
- "Applied Cryptography". */
- q = seed / 53668;
- if ((seed = 40014 * (seed - 53668 * q) - 12211 * q) < 0)
- seed += 2147483563l;
-
- /* Compute mask. */
- for (tmo = 63; tmo <= 60 * TICKS_PER_SEC && --exp > 0; tmo = 2 * tmo + 1)
- ;
-
- /* Sleep. */
- log_message("<sleep>");
-
- for (tmo = (tmo & seed) + currticks (); currticks () < tmo;);
-}
-
-
-static int handle_transaction(int s, struct bootp_request * breq, struct bootp_request * bresp,
- struct sockaddr_in * server_addr, int dhcp_type)
-{
- struct pollfd polls;
- int i, j;
- int retry = 1;
- int sin;
- char eth_packet[ETH_FRAME_LEN];
- struct iphdr * ip_hdr;
- struct udphdr * udp_hdr;
- unsigned char type;
- unsigned long starttime;
- int timeout = 1;
-
- breq->id = starttime = currticks();
- breq->secs = 0;
-
- sin = socket(AF_PACKET, SOCK_DGRAM, ntohs(ETH_P_IP));
- if (sin < 0) {
- log_perror("af_packet socket");
- return -1;
- }
-
- while (retry <= MAX_ARP_RETRIES) {
- i = sizeof(*breq);
-
- if (sendto(s, breq, i, 0, (struct sockaddr *) server_addr, sizeof(*server_addr)) != i) {
- close(s);
- log_perror("sendto");
- return -1;
- }
-
- polls.fd = sin;
- polls.events = POLLIN;
-
- while (poll(&polls, 1, timeout*1000) == 1) {
-
- if ((j = recv(sin, eth_packet, sizeof(eth_packet), 0)) == -1) {
- log_perror("recv");
- continue;
- }
-
- /* We need to do some basic sanity checking of the header */
- if (j < (signed)(sizeof(*ip_hdr) + sizeof(*udp_hdr)))
- continue;
-
- ip_hdr = (void *) eth_packet;
- if (!verify_checksum(ip_hdr, sizeof(*ip_hdr)))
- continue;
-
- if (ntohs(ip_hdr->tot_len) > j)
- continue;
-
- j = ntohs(ip_hdr->tot_len);
-
- if (ip_hdr->protocol != IPPROTO_UDP)
- continue;
-
- udp_hdr = (void *) (eth_packet + sizeof(*ip_hdr));
-
- if (ntohs(udp_hdr->source) != BOOTP_SERVER_PORT)
- continue;
-
- if (ntohs(udp_hdr->dest) != BOOTP_CLIENT_PORT)
- continue;
- /* Go on with this packet; it looks sane */
-
- /* Originally copied sizeof (*bresp) - this is a security
- problem due to a potential underflow of the source
- buffer. Also, it trusted that the packet was properly
- 0xFF terminated, which is not true in the case of the
- DHCP server on Cisco 800 series ISDN router. */
-
- memset (bresp, 0xFF, sizeof (*bresp));
- memcpy (bresp, (char *) udp_hdr + sizeof (*udp_hdr), j - sizeof (*ip_hdr) - sizeof (*udp_hdr));
-
- /* sanity checks */
- if (bresp->id != breq->id)
- continue;
- if (bresp->opcode != BOOTP_OPCODE_REPLY)
- continue;
- if (bresp->hwlength != breq->hwlength)
- continue;
- if (memcmp(bresp->hwaddr, breq->hwaddr, bresp->hwlength))
- continue;
- if (get_vendor_code(bresp, DHCP_OPTION_TYPE, &type) || type != dhcp_type)
- continue;
- if (memcmp(bresp->vendor, vendor_cookie, 4))
- continue;
- return 0;
- }
- rfc951_sleep(retry);
- breq->secs = htons ((currticks () - starttime) / 20);
- retry++;
- timeout *= 2;
- if (timeout > 5)
- timeout = 5;
- }
-
- return -1;
-}
-
-static void add_vendor_code(struct bootp_request * breq, unsigned char option, unsigned char length, void * data)
-{
- unsigned char * chptr;
- int theOption, theLength;
-
- chptr = breq->vendor;
- chptr += 4;
- while (*chptr != 0xFF && *chptr != option) {
- theOption = *chptr++;
- if (!theOption) continue;
- theLength = *chptr++;
- chptr += theLength;
- }
-
- *chptr++ = option;
- *chptr++ = length;
- memcpy(chptr, data, length);
- chptr[length] = 0xff;
-}
-
-
-char * dhcp_hostname = NULL;
-char * dhcp_domain = NULL;
-
-enum return_type perform_dhcp(struct interface_info * intf)
-{
- int s, i;
- struct sockaddr_in server_addr;
- struct sockaddr_in client_addr;
- struct sockaddr_in broadcast_addr;
- struct bootp_request breq, bresp;
- unsigned char messageType;
- unsigned int lease;
- short aShort;
- int num_options;
- char requested_options[50];
- char * client_id_str, * client_id_hwaddr;
-
- if (strncmp(intf->device, "eth", 3)) {
- stg1_error_message("DHCP available only for Ethernet networking.");
- return RETURN_ERROR;
- }
-
- s = socket(AF_INET, SOCK_DGRAM, 0);
- if (s < 0) {
- log_perror("socket");
- return RETURN_ERROR;
- }
-
- {
- enum return_type results;
- char * questions[] = { "Host name", "Domain name", NULL };
- char * questions_auto[] = { "hostname", "domain" };
- static char ** answers = NULL;
- char * boulet;
-
- client_id_str = client_id_hwaddr = NULL;
-
- results = ask_from_entries_auto("If the DHCP server needs to know you by 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.",
- questions, &answers, 32, questions_auto, NULL);
- if (results == RETURN_OK)
- {
- dhcp_hostname = answers[0];
- if ((boulet = strchr(dhcp_hostname, '.')) != NULL)
- boulet[0] = '\0';
- dhcp_domain = answers[1];
-
- if (*dhcp_hostname && *dhcp_domain) {
- /* if we have both, then create client id from them */
- client_id_str = malloc(1 + strlen(dhcp_hostname) + 1 + strlen(dhcp_domain) + 1);
- client_id_str[0] = '\0';
- sprintf(client_id_str+1, "%s.%s", dhcp_hostname, dhcp_domain);
- }
- }
- }
-
- if (initial_setup_interface(intf->device, s) != 0) {
- close(s);
- return RETURN_ERROR;
- }
-
- if (prepare_request(&breq, s, intf->device) != 0) {
- close(s);
- return RETURN_ERROR;
- }
-
- messageType = DHCP_TYPE_DISCOVER;
- add_vendor_code(&breq, DHCP_OPTION_TYPE, 1, &messageType);
-
- /* add pieces needed to have DDNS/DHCP IP selection based on requested name */
- if (dhcp_hostname && *dhcp_hostname) { /* pick client id form based on absence or presence of domain name */
- if (*dhcp_domain) /* alternate style <hostname>.<domainname> */
- add_vendor_code(&breq, DHCP_OPTION_CLIENT_IDENTIFIER, strlen(client_id_str+1)+1, client_id_str);
- else { /* usual style (aka windows / dhcpcd) */
- /* but put MAC in form required for client identifier first */
- client_id_hwaddr = malloc(IFHWADDRLEN+2);
- client_id_hwaddr[0] = 1; /* set flag for ethernet */
- memcpy(client_id_hwaddr+1, gen_hwaddr, IFHWADDRLEN);
- add_vendor_code(&breq, DHCP_OPTION_CLIENT_IDENTIFIER, IFHWADDRLEN+1, client_id_hwaddr);
- }
- /* this is the one that the dhcp server really wants for DDNS updates */
- add_vendor_code(&breq, BOOTP_OPTION_HOSTNAME, strlen(dhcp_hostname), dhcp_hostname);
- log_message("DHCP: telling server to use name = %s", dhcp_hostname);
- }
-
- 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 */
-
- if (bind(s, (struct sockaddr *) &client_addr, sizeof(client_addr))) {
- log_perror("bind");
- return RETURN_ERROR;
- }
-
- broadcast_addr.sin_family = AF_INET;
- broadcast_addr.sin_port = htons(BOOTP_SERVER_PORT); /* bootp server */
- memset(&broadcast_addr.sin_addr, 0xff, sizeof(broadcast_addr.sin_addr)); /* broadcast */
-
- log_message("DHCP: sending DISCOVER");
-
- wait_message("Sending DHCP request...");
- i = handle_transaction(s, &breq, &bresp, &broadcast_addr, DHCP_TYPE_OFFER);
- remove_wait_message();
-
- if (i != 0) {
- stg1_error_message("No DHCP reply received.");
- close(s);
- return RETURN_ERROR;
- }
-
- server_addr.sin_family = AF_INET;
- server_addr.sin_port = htons(BOOTP_SERVER_PORT); /* bootp server */
- if (get_vendor_code(&bresp, DHCP_OPTION_SERVER, &server_addr.sin_addr)) {
- close(s);
- log_message("DHCPOFFER didn't include server address");
- return RETURN_ERROR;
- }
-
- init_vendor_codes(&breq);
- messageType = DHCP_TYPE_REQUEST;
- add_vendor_code(&breq, DHCP_OPTION_TYPE, 1, &messageType);
- add_vendor_code(&breq, DHCP_OPTION_SERVER, 4, &server_addr.sin_addr);
- add_vendor_code(&breq, DHCP_OPTION_REQADDR, 4, &bresp.yiaddr);
-
- /* if used the first time, then have to use it again */
- if (dhcp_hostname && *dhcp_hostname) { /* add pieces needed to have DDNS/DHCP IP selection based on requested name */
- if (dhcp_domain && *dhcp_domain) /* alternate style */
- add_vendor_code(&breq, DHCP_OPTION_CLIENT_IDENTIFIER, strlen(client_id_str+1)+1, client_id_str);
- else /* usual style (aka windows / dhcpcd) */
- add_vendor_code(&breq, DHCP_OPTION_CLIENT_IDENTIFIER, IFHWADDRLEN+1, client_id_hwaddr);
- /* this is the one that the dhcp server really wants for DDNS updates */
- add_vendor_code(&breq, BOOTP_OPTION_HOSTNAME, strlen(dhcp_hostname), dhcp_hostname);
- }
-
- aShort = ntohs(sizeof(struct bootp_request));
- add_vendor_code(&breq, DHCP_OPTION_MAXSIZE, 2, &aShort);
-
- num_options = 0;
- requested_options[num_options++] = BOOTP_OPTION_NETMASK;
- requested_options[num_options++] = BOOTP_OPTION_GATEWAY;
- requested_options[num_options++] = BOOTP_OPTION_DNS;
- requested_options[num_options++] = BOOTP_OPTION_DOMAIN;
- requested_options[num_options++] = BOOTP_OPTION_BROADCAST;
- add_vendor_code(&breq, DHCP_OPTION_OPTIONREQ, num_options, requested_options);
-
- /* request a lease of 1 hour */
- i = htonl(60 * 60);
- add_vendor_code(&breq, DHCP_OPTION_LEASE, 4, &i);
-
- log_message("DHCP: sending REQUEST");
-
- i = handle_transaction(s, &breq, &bresp, &broadcast_addr, DHCP_TYPE_ACK);
-
- if (i != 0) {
- close(s);
- return RETURN_ERROR;
- }
-
- if (get_vendor_code(&bresp, DHCP_OPTION_LEASE, &lease)) {
- log_message("failed to get lease time\n");
- return RETURN_ERROR;
- }
- lease = ntohl(lease);
-
- close(s);
-
- intf->netmask.s_addr = 0;
- intf->broadcast.s_addr = 0;
- intf->network.s_addr = 0;
-
- parse_reply(&bresp, intf);
-
- return RETURN_OK;
-}
diff --git a/mdk-stage1/dhcp.h b/mdk-stage1/dhcp.h
deleted file mode 100644
index 71d062e9c..000000000
--- a/mdk-stage1/dhcp.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
- *
- * Copyright 2000 MandrakeSoft
- *
- * View the homepage: http://us.mandrakesoft.com/~gc/html/stage1.html
- *
- *
- * 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.
- *
- */
-
-/*
- * Portions from GRUB -- GRand Unified Bootloader
- * Copyright (C) 2000 Free Software Foundation, Inc.
- *
- * Itself based on etherboot-4.6.4 by Martin Renters.
- *
- */
-
-#ifndef _DHCP_H_
-#define _DHCP_H_
-
-#include "stage1.h"
-#include "network.h"
-
-enum return_type perform_dhcp(struct interface_info * intf);
-
-extern char * dhcp_hostname;
-
-#endif
diff --git a/mdk-stage1/dietlibc/.cvsignore b/mdk-stage1/dietlibc/.cvsignore
deleted file mode 100644
index 7c88cb004..000000000
--- a/mdk-stage1/dietlibc/.cvsignore
+++ /dev/null
@@ -1,12 +0,0 @@
-t
-elftrunc
-mapfile
-t1
-load
-compile
-bin-alpha
-bin-arm
-bin-i386
-bin-mips
-bin-ppc
-bin-sparc
diff --git a/mdk-stage1/dietlibc/AUTHOR b/mdk-stage1/dietlibc/AUTHOR
deleted file mode 100644
index 6d8ab1a05..000000000
--- a/mdk-stage1/dietlibc/AUTHOR
+++ /dev/null
@@ -1 +0,0 @@
-Felix von Leitner <felix-dietlibc@fefe.de>
diff --git a/mdk-stage1/dietlibc/Makefile b/mdk-stage1/dietlibc/Makefile
deleted file mode 100644
index b6e7b2783..000000000
--- a/mdk-stage1/dietlibc/Makefile
+++ /dev/null
@@ -1,146 +0,0 @@
-ARCH=$(shell uname -m | sed 's/i[4-9]86/i386/')
-
-OBJDIR=bin-$(ARCH)
-
-all: $(OBJDIR) $(OBJDIR)/start.o $(OBJDIR)/dietlibc.a $(OBJDIR)/liblatin1.a $(OBJDIR)/librpc.a $(OBJDIR)/diet
-
-CFLAGS=-pipe
-CROSS=
-
-VPATH=lib:libstdio:libugly:libcruft:libcrypt:libshell:liblatin1:librpc:libregex:syscalls.c
-
-SYSCALLOBJ=$(patsubst syscalls.s/%.S,$(OBJDIR)/%.o,$(wildcard syscalls.s/*.S))
-
-LIBOBJ=$(patsubst lib/%.c,$(OBJDIR)/%.o,$(wildcard lib/*.c))
-LIBUGLYOBJ=$(patsubst libugly/%.c,$(OBJDIR)/%.o,$(wildcard libugly/*.c))
-LIBSTDIOOBJ=$(patsubst libstdio/%.c,$(OBJDIR)/%.o,$(wildcard libstdio/*.c))
-LIBCRUFTOBJ=$(patsubst libcruft/%.c,$(OBJDIR)/%.o,$(wildcard libcruft/*.c))
-LIBCRYPTOBJ=$(patsubst libcrypt/%.c,$(OBJDIR)/%.o,$(wildcard libcrypt/*.c))
-LIBSHELLOBJ=$(patsubst libshell/%.c,$(OBJDIR)/%.o,$(wildcard libshell/*.c))
-
-LIBRPCOBJ=$(patsubst librpc/%.c,$(OBJDIR)/%.o,$(wildcard librpc/*.c))
-LIBREGEXOBJ=$(patsubst libregex/%.c,$(OBJDIR)/%.o,$(wildcard libregex/*.c))
-
-include $(ARCH)/Makefile.add
-
-ifeq ($(CFLAGS),-pipe)
-CFLAGS+=-O -fomit-frame-pointer
-endif
-
-ifneq ($(DEBUG),)
-CFLAGS = -g
-COMMENT = :
-endif
-CFLAGS += -Wall -Wno-switch
-
-PWD=$(shell pwd)
-
-.SUFFIXES:
-.SUFFIXES: .S .c
-
-$(OBJDIR):
- mkdir $@
-
-% :: %,v
-
-$(OBJDIR)/%.o: %.S
- $(CROSS)$(CC) -I. -Iinclude $(CFLAGS) -c $< -o $@
-
-$(OBJDIR)/%.o: %.c
- $(CROSS)$(CC) -I. -Iinclude $(CFLAGS) -c $< -o $@
- $(COMMENT) $(CROSS)strip -x -R .comment -R .note $@
-
-DIETLIBC_OBJ = $(SYSCALLOBJ) $(LIBOBJ) $(LIBSTDIOOBJ) $(LIBUGLYOBJ) \
-$(LIBCRUFTOBJ) $(LIBCRYPTOBJ) $(LIBSHELLOBJ) $(LIBREGEXOBJ) \
-$(OBJDIR)/__longjmp.o $(OBJDIR)/setjmp.o $(OBJDIR)/unified.o \
-$(OBJDIR)/mmap.o $(OBJDIR)/clone.o
-
-$(OBJDIR)/dietlibc.a: $(DIETLIBC_OBJ) $(OBJDIR)/start.o
- $(CROSS)ar cru $@ $(DIETLIBC_OBJ)
-
-$(OBJDIR)/librpc.a: $(LIBRPCOBJ)
- $(CROSS)ar cru $@ $(LIBRPCOBJ)
-
-LIBLATIN1_OBJS=$(patsubst liblatin1/%.c,$(OBJDIR)/%.o,$(wildcard liblatin1/*.c))
-$(OBJDIR)/liblatin1.a: $(LIBLATIN1_OBJS)
- $(CROSS)ar cru $@ $^
-
-$(OBJDIR)/libdietc.so: $(OBJDIR)/dietlibc.a
- $(CROSS)ld -whole-archive -shared -o $@ $^
-
-$(SYSCALLOBJ): syscalls.h
-
-$(OBJDIR)/diet: diet.c $(OBJDIR)/start.o $(OBJDIR)/dietlibc.a
- $(CROSS)$(CC) -Iinclude $(CFLAGS) -nostdlib -o $@ $^ -DDIETHOME=\"$(PWD)\"
- $(CROSS)strip -R .comment -R .note $@
-
-$(OBJDIR)/djb: $(OBJDIR)/compile $(OBJDIR)/load
-
-$(OBJDIR)/compile:
- echo 'exec gcc $(CFLAGS) -I$(PWD)/$(OBJDIR)/include -c $${1+"$$@"}' > $@
- chmod 755 $@
-
-$(OBJDIR)/load:
- echo 'main="$$1"; shift; exec gcc -nostdlib -o "$$main" $(PWD)/$(OBJDIR)/start.o "$$main".o $${1+"$$@"} $(PWD)/$(OBJDIR)/dietlibc.a -lgcc' > $@
- chmod 755 $@
-
-clean:
- rm -f *.o *.a t t1 compile load exports mapfile libdietc.so
- rm -rf bin-*
-
-tar: clean
- rm -f armv4l
- ln -sf arm armv4l
- cd ..; tar cvvf dietlibc.tar.bz2 dietlibc --use=bzip2 --exclude CVS
-
-$(OBJDIR)/exports: $(OBJDIR)/dietlibc.a
- nm -g $(OBJDIR)/dietlibc.a | grep -w T | awk '{ print $$3 }' | sort -u > $(OBJDIR)/exports
-
-.PHONY: t t1
-t:
- $(CROSS)$(CC) -g $(CFLAGS) -fno-builtin -nostdlib -Iinclude -o t t.c $(OBJDIR)/start.o $(OBJDIR)/dietlibc.a -lgcc -Wl,-Map,mapfile
-
-t1:
- $(CROSS)$(CC) -g -o t1 t.c
-
-install: $(OBJDIR)/start.o $(OBJDIR)/dietlibc.a $(OBJDIR)/liblatin1.a $(OBJDIR)/diet
- cp $(OBJDIR)/start.o $(INSTALLPREFIX)$(prefix)/lib/dietstart.o
- cp $(OBJDIR)/dietlibc.a $(INSTALLPREFIX)$(prefix)/lib/libdietc.a
- cp $(OBJDIR)/liblatin1.a $(INSTALLPREFIX)$(prefix)/lib/libdietlatin1.a
- cp $(OBJDIR)/diet $(INSTALLPREFIX)$(prefix)/bin/diet
-
-.PHONY: sparc ppc mips arm alpha i386
-
-arm sparc ppc alpha i386:
- $(MAKE) ARCH=$@ CROSS=$@-linux- all t bin-$@/libdietc.so
-
-mips:
- $(MAKE) ARCH=$@ CROSS=$@-linux-gnu- all t bin-$@/libdietc.so
-
-cross:
- $(MAKE) arm sparc ppc alpha i386 mips
-
-
-# these depend on dietfeatures.h for large file backward compatibility
-$(OBJDIR)/__fstat64.o $(OBJDIR)/__lstat64.o $(OBJDIR)/__stat64.o: dietfeatures.h
-
-# these depend on dietfeatures.h for thread support
-$(OBJDIR)/alloc.o $(OBJDIR)/perror.o $(OBJDIR)/logging.o $(OBJDIR)/unified.o: dietfeatures.h
-
-# these depend on dietfeatures.h for linker warnings
-$(OBJDIR)/assert_fail.o $(OBJDIR)/sprintf.o $(OBJDIR)/vsnprintf.o $(OBJDIR)/___div.o $(OBJDIR)/fflush.o $(OBJDIR)/setvbuf.o $(OBJDIR)/system.o $(OBJDIR)/sendfile.o $(OBJDIR)/setenv.o: dietfeatures.h
-
-# these depend on dietfeatures.h for buffered stdio
-fclose.o $(OBJDIR)/fdglue.o $(OBJDIR)/fflush.o $(OBJDIR)/fgetc.o $(OBJDIR)/fputc.o $(OBJDIR)/fread.o $(OBJDIR)/fseek.o $(OBJDIR)/printf.o $(OBJDIR)/setvbuf.o $(OBJDIR)/stderr.o $(OBJDIR)/stdin.o $(OBJDIR)/stdout.o $(OBJDIR)/fwrite.o $(OBJDIR)/puts.o: dietfeatures.h
-
-# these depend on dietfeatures.h for fast string routines
-strcasecmp.o $(OBJDIR)/strcat.o $(OBJDIR)/strchr.o $(OBJDIR)/strcmp.o $(OBJDIR)/strcpy.o $(OBJDIR)/strlen.o $(OBJDIR)/strncasecmp.o $(OBJDIR)/strncat.o $(OBJDIR)/strrchr.o: dietfeatures.h
-
-# these depend on dietfeatures.h for /proc
-$(OBJDIR)/tty.o: dietfeatures.h
-
-# these depend on dietfeatures.h for ungetc support ;-)
-$(OBJDIR)/ungetc.o: dietfeatures.h
-
-# these depend on dietfeatures.h for WANT_TZFILE_PARSER
-$(OBJDIR)/localtime_r.o: dietfeatures.h
diff --git a/mdk-stage1/dietlibc/README b/mdk-stage1/dietlibc/README
deleted file mode 100644
index ce9838832..000000000
--- a/mdk-stage1/dietlibc/README
+++ /dev/null
@@ -1,43 +0,0 @@
-diet libc to statically link programs that don't need all the bloat
-from glibc.
-
-malloc, printf and scanf contributed from Olaf Dreesen.
-
-To compile:
-
- $ make
-
-make should compile the diet libc itself without warnings. In addition
-to the diet libc, the default make target includes t, which is a test
-program and probably contains code which produces warnings. You can
-safely ignore them.
-
-When make is done, it will have created dietlibc.a in bin-i386 (or
-bin-ppc, bin-alpha, bin-sparc, bin-ppc or bin-arm, depending on your
-architecture). In that directory you will also find a program called
-"diet", which you need to copy in a directory in your $PATH:
-
- # install bin-i386/diet /usr/local/bin
-
-Then you can compile programs by prepending diet to the command line,
-i.e.
-
- $ diet gcc -s -Os -pipe -o t t.c
-
-diet is cross-compiler friendly and can also be used like this:
-
- $ diet sparc-linux-gcc -o t t.c
-
-diet will then link against dietlibc.a from bin-sparc, of course.
-diet comes with a man page (diet.1), which you can copy to an
-appropriate location, too:
-
- # cp diet.1 /usr/local/man/man1
-
-After you compiled the diet libc successfully, I invite you to check out
-the embedded utils (http://www.fefe.de/embutils/) and the diet libc
-binary repository (ftp://foobar.math.fu-berlin.de/pub/dietlibc/), too.
-The embedded utils are small replacements for common utilities like mv,
-chown, ls, and even a small tar that can extract tar files. The binary
-repository contains a few utilities I linked against the diet libc, for
-example gzip, bzip2 and fdisk.
diff --git a/mdk-stage1/dietlibc/alpha/Makefile.add b/mdk-stage1/dietlibc/alpha/Makefile.add
deleted file mode 100644
index 10ff0faef..000000000
--- a/mdk-stage1/dietlibc/alpha/Makefile.add
+++ /dev/null
@@ -1,5 +0,0 @@
-
-CFLAGS+=-Os -Iinclude -fomit-frame-pointer -fstrict-aliasing
-VPATH:=alpha:syscalls.s:$(VPATH)
-
-LIBOBJ+=$(patsubst %,$(OBJDIR)/%,divq.o divl.o remq.o reml.o seteuid.o __time.o)
diff --git a/mdk-stage1/dietlibc/alpha/__longjmp.S b/mdk-stage1/dietlibc/alpha/__longjmp.S
deleted file mode 100644
index d86d76717..000000000
--- a/mdk-stage1/dietlibc/alpha/__longjmp.S
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifdef __alpha__
-
-#include <setjmp.h>
-
-.text
-.align 2
-
-.global __longjmp
-__longjmp:
- mov $17, $0 /* a1 -> v0 */
-
- ldq $9, (JB_S0*8) ($16) /* s0 */
- ldq $10, (JB_S1*8) ($16) /* s1 */
- ldq $11, (JB_S2*8) ($16) /* s2 */
- ldq $12, (JB_S3*8) ($16) /* s3 */
- ldq $13, (JB_S4*8) ($16) /* s4 */
- ldq $14, (JB_S5*8) ($16) /* s5 */
-
- ldq $26, (JB_PC*8) ($16) /* ra */
- ldq $fp, (JB_FP*8) ($16) /* fp */
- ldq $1, (JB_SP*8) ($16) /* sp */
-
- ldt $f2, (JB_F2*8) ($16) /* f2 */
- ldt $f3, (JB_F3*8) ($16) /* f3 */
- ldt $f4, (JB_F4*8) ($16) /* f4 */
- ldt $f5, (JB_F5*8) ($16) /* f5 */
- ldt $f6, (JB_F6*8) ($16) /* f6 */
- ldt $f7, (JB_F7*8) ($16) /* f7 */
- ldt $f8, (JB_F8*8) ($16) /* f8 */
- ldt $f9, (JB_F9*8) ($16) /* f9 */
-
- cmoveq $0, 0x1, $0
- mov $1, $sp
-
- ret $31, ($26), 1
-
-
-#endif
diff --git a/mdk-stage1/dietlibc/alpha/__time.c b/mdk-stage1/dietlibc/alpha/__time.c
deleted file mode 100644
index 07275e0e3..000000000
--- a/mdk-stage1/dietlibc/alpha/__time.c
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <time.h>
-#include <sys/time.h>
-
-time_t time(time_t *foo) {
- struct timeval tv;
- time_t tmp=(time_t)-1;
- if (gettimeofday(&tv,0)==0)
- tmp=(time_t)tv.tv_sec;
- if (foo) *foo=tmp;
- return tmp;
-}
diff --git a/mdk-stage1/dietlibc/alpha/accept.S b/mdk-stage1/dietlibc/alpha/accept.S
deleted file mode 100644
index 459c45d7a..000000000
--- a/mdk-stage1/dietlibc/alpha/accept.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall_weak(accept,accept,__libc_accept)
diff --git a/mdk-stage1/dietlibc/alpha/bind.S b/mdk-stage1/dietlibc/alpha/bind.S
deleted file mode 100644
index 86a04cb70..000000000
--- a/mdk-stage1/dietlibc/alpha/bind.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(bind,bind)
diff --git a/mdk-stage1/dietlibc/alpha/clone.S b/mdk-stage1/dietlibc/alpha/clone.S
deleted file mode 100644
index b7e32d707..000000000
--- a/mdk-stage1/dietlibc/alpha/clone.S
+++ /dev/null
@@ -1,42 +0,0 @@
-#include "syscalls.h"
-#include <asm/errno.h>
-
-.text
-.align 2
-.weak clone
-clone:
-.global __clone
-.type __clone,@function
-__clone:
- ldiq $0, EINVAL
- beq $16, .Lerror
- beq $17, .Lerror
-
- subq $17, 16, $17
- stq $16, 0($17)
- stq $19, 8($17)
- mov $18, $16
-
- lda $0, __NR_clone($31)
- callsys
- bne $19, .Lerror
-
- beq $0, .Lstart_thread
-
- ret $31, ($26), 0x01
-
-.Lerror:
- jmp error_unified_syscall
-
-.Lstart_thread:
- clr $fp
-
- ldq $27, 0($sp)
- ldq $16, 8($sp)
-
- jsr $26, ($27), 0x04
-
- ldgp $gp, 0($26)
- mov $0, $16
- jsr $26, exit
-
diff --git a/mdk-stage1/dietlibc/alpha/connect.S b/mdk-stage1/dietlibc/alpha/connect.S
deleted file mode 100644
index c191ca808..000000000
--- a/mdk-stage1/dietlibc/alpha/connect.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall_weak(connect,connect,__libc_connect)
diff --git a/mdk-stage1/dietlibc/alpha/divl.S b/mdk-stage1/dietlibc/alpha/divl.S
deleted file mode 100644
index 3af22a5e8..000000000
--- a/mdk-stage1/dietlibc/alpha/divl.S
+++ /dev/null
@@ -1,101 +0,0 @@
-/* taken from glibc 2.2 */
-
- .set noreorder
- .set noat
-
- .ent __divlu
- .globl __divlu
-
- .align 3
-__divlu :
- lda $30 , - 48 ($30 )
- .frame $30 , 48 , $23 , 0
- .prologue 0
-.Ludiv:
- stq $1 , 0($30 )
- zapnot $25 ,15, $1
- stq $2 , 8($30 )
- zapnot $24 ,15, $2
- stq $0 , 16($30 )
- clr $27
- stq $3 , 24($30 )
- ldiq $0 , 1
- stq $4 ,32($30 )
- beq $1 , .Ldivbyzero
-
- .align 3
-
-
-1: cmpult $1 , $2 , $at
- s8addq $1 , $31 , $1
- s8addq $0 , $31 , $0
- bne $at , 1b
-
-
-
-3: addq $27 ,$0 , $4
- srl $0 , 1, $0
- cmpule $1 , $2 , $at
- subq $2 , $1 , $3
- cmovne $at ,$4 , $27
- srl $1 , 1, $1
- cmovne $at , $3 , $2
- bne $0 , 3b
-
-.Ldone: ldq $1 , 0($30 )
- ldq $2 , 8($30 )
- ldq $0 , 16($30 )
- ldq $3 , 24($30 )
- ldq $4 ,32($30 )
- lda $30 , 48 ($30 )
- ret $31 , ($23 ), 1
-
-.Ldivbyzero:
- mov $16 , $3
- ldiq $16 , -2
- call_pal 170
- mov $3 , $16
- clr $27
- br .Ldone
-
- .end __divlu
-
- .ent __divl
- .globl __divl
-
- .align 3
-__divl :
- lda $30 , - 48 ($30 )
- .frame $30 , 48 , $23 , 0
- .prologue 0
- or $24 , $25 , $at
- sextl $at , $at
- bge $at , .Ludiv
-
-
- stq $24 , 0($30 )
- negl $24 , $at
- stq $25 , 8($30 )
- cmovge $at , $at , $24
- stq $23 , 16($30 )
- negl $25 , $at
- stq $3 , 24($30 )
- cmovge $at , $at , $25
-
-
- bsr $23 , __divlu
-
-
- ldq $24 , 0($30 )
- ldq $25 , 8($30 )
- xor $24 , $25 , $at
- negl $27 , $3
- sextl $at , $at
- ldq $23 , 16($30 )
- cmovlt $at , $3 , $27
- ldq $3 , 24($30 )
-
- lda $30 , 48 ($30 )
- ret $31 , ($23 ), 1
-
- .end __divl
diff --git a/mdk-stage1/dietlibc/alpha/divq.S b/mdk-stage1/dietlibc/alpha/divq.S
deleted file mode 100644
index cf70862c4..000000000
--- a/mdk-stage1/dietlibc/alpha/divq.S
+++ /dev/null
@@ -1,102 +0,0 @@
-/* taken from glibc 2.2 */
-
- .set noreorder
- .set noat
-
- .ent __divqu
- .globl __divqu
-
- .align 3
-__divqu :
- lda $30 , - 48 ($30 )
- .frame $30 , 48 , $23 , 0
- .prologue 0
-$udiv:
- stq $1 , 0($30 )
- mov $25 , $1
- stq $2 , 8($30 )
- mov $24 , $2
- stq $0 , 16($30 )
- clr $27
- stq $3 , 24($30 )
- ldiq $0 , 1
- stq $4 ,32($30 )
- beq $1 , $divbyzero
-
- .align 3
-
-
-1: cmpult $1 , $2 , $at
- blt $1 , 2f
- addq $1 , $1 , $1
- addq $0 , $0 , $0
- bne $at , 1b
- unop
-2:
-3: addq $27 ,$0 , $4
- srl $0 , 1, $0
- cmpule $1 , $2 , $at
- subq $2 , $1 , $3
- cmovne $at ,$4 , $27
- srl $1 , 1, $1
- cmovne $at , $3 , $2
- bne $0 , 3b
-
-$done: ldq $1 , 0($30 )
- ldq $2 , 8($30 )
- ldq $0 , 16($30 )
- ldq $3 , 24($30 )
- ldq $4 ,32($30 )
- lda $30 , 48 ($30 )
- ret $31 , ($23 ), 1
-
-$divbyzero:
- mov $16 , $3
- ldiq $16 , -2
- call_pal 170
- mov $3 , $16
- clr $27
- br $done
-
- .end __divqu
-
- .ent __divq
- .globl __divq
-
- .align 3
-__divq :
- lda $30 , - 48 ($30 )
- .frame $30 , 48 , $23 , 0
- .prologue 0
- or $24 , $25 , $at
-
- bge $at , $udiv
-
-
- stq $24 , 0($30 )
- negq $24 , $at
- stq $25 , 8($30 )
- cmovge $at , $at , $24
- stq $23 , 16($30 )
- negq $25 , $at
- stq $3 , 24($30 )
- cmovge $at , $at , $25
-
-
- bsr $23 , __divqu
-
-
- ldq $24 , 0($30 )
- ldq $25 , 8($30 )
- xor $24 , $25 , $at
- negq $27 , $3
-
- ldq $23 , 16($30 )
- cmovlt $at , $3 , $27
- ldq $3 , 24($30 )
-
- lda $30 , 48 ($30 )
- ret $31 , ($23 ), 1
-
- .end __divq
-
diff --git a/mdk-stage1/dietlibc/alpha/getegid.S b/mdk-stage1/dietlibc/alpha/getegid.S
deleted file mode 100644
index 89c35d45e..000000000
--- a/mdk-stage1/dietlibc/alpha/getegid.S
+++ /dev/null
@@ -1,11 +0,0 @@
-.text
-.align 2
-.global getegid
-getegid:
- lda $sp,-8($sp)
- stq $26, 0($sp)
- jsr getgid
- ldq $26, 0($sp)
- lda $sp, 8($sp)
- cmovge $0, $20, $0
- ret
diff --git a/mdk-stage1/dietlibc/alpha/geteuid.S b/mdk-stage1/dietlibc/alpha/geteuid.S
deleted file mode 100644
index 087ca7348..000000000
--- a/mdk-stage1/dietlibc/alpha/geteuid.S
+++ /dev/null
@@ -1,11 +0,0 @@
-.text
-.align 2
-.global geteuid
-geteuid:
- lda $sp,-8($sp)
- stq $26, 0($sp)
- jsr getuid
- ldq $26, 0($sp)
- lda $sp, 8($sp)
- cmovge $0, $20, $0
- ret
diff --git a/mdk-stage1/dietlibc/alpha/getgid.S b/mdk-stage1/dietlibc/alpha/getgid.S
deleted file mode 100644
index 7350082f3..000000000
--- a/mdk-stage1/dietlibc/alpha/getgid.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(getxgid,getgid)
diff --git a/mdk-stage1/dietlibc/alpha/getpeername.S b/mdk-stage1/dietlibc/alpha/getpeername.S
deleted file mode 100644
index 3b3f48b1a..000000000
--- a/mdk-stage1/dietlibc/alpha/getpeername.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(getpeername,getpeername)
diff --git a/mdk-stage1/dietlibc/alpha/getpid.S b/mdk-stage1/dietlibc/alpha/getpid.S
deleted file mode 100644
index d8b3523b2..000000000
--- a/mdk-stage1/dietlibc/alpha/getpid.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(getxpid,getpid)
diff --git a/mdk-stage1/dietlibc/alpha/getppid.S b/mdk-stage1/dietlibc/alpha/getppid.S
deleted file mode 100644
index e181268c3..000000000
--- a/mdk-stage1/dietlibc/alpha/getppid.S
+++ /dev/null
@@ -1,11 +0,0 @@
-.text
-.align 2
-.global getppid
-getppid:
- lda $sp,-8($sp)
- stq $26, 0($sp)
- jsr getpid
- ldq $26, 0($sp)
- lda $sp, 8($sp)
- cmovge $0, $20, $0
- ret
diff --git a/mdk-stage1/dietlibc/alpha/getsockname.S b/mdk-stage1/dietlibc/alpha/getsockname.S
deleted file mode 100644
index 2727d88da..000000000
--- a/mdk-stage1/dietlibc/alpha/getsockname.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(getsockname,getsockname)
diff --git a/mdk-stage1/dietlibc/alpha/getsockopt.S b/mdk-stage1/dietlibc/alpha/getsockopt.S
deleted file mode 100644
index 44b4a910a..000000000
--- a/mdk-stage1/dietlibc/alpha/getsockopt.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(getsockopt,getsockopt)
diff --git a/mdk-stage1/dietlibc/alpha/getuid.S b/mdk-stage1/dietlibc/alpha/getuid.S
deleted file mode 100644
index fcb5570c2..000000000
--- a/mdk-stage1/dietlibc/alpha/getuid.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(getxuid,getuid)
diff --git a/mdk-stage1/dietlibc/alpha/listen.S b/mdk-stage1/dietlibc/alpha/listen.S
deleted file mode 100644
index 1102831d4..000000000
--- a/mdk-stage1/dietlibc/alpha/listen.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(listen,listen)
diff --git a/mdk-stage1/dietlibc/alpha/mmap.S b/mdk-stage1/dietlibc/alpha/mmap.S
deleted file mode 100644
index 2e57fbb74..000000000
--- a/mdk-stage1/dietlibc/alpha/mmap.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(mmap,mmap)
diff --git a/mdk-stage1/dietlibc/alpha/msgctl.S b/mdk-stage1/dietlibc/alpha/msgctl.S
deleted file mode 100644
index d7caed2cc..000000000
--- a/mdk-stage1/dietlibc/alpha/msgctl.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(msgctl,msgctl)
diff --git a/mdk-stage1/dietlibc/alpha/msgget.S b/mdk-stage1/dietlibc/alpha/msgget.S
deleted file mode 100644
index 518d67ac4..000000000
--- a/mdk-stage1/dietlibc/alpha/msgget.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(msgget,msgget)
diff --git a/mdk-stage1/dietlibc/alpha/msgrcv.S b/mdk-stage1/dietlibc/alpha/msgrcv.S
deleted file mode 100644
index ab62e6c30..000000000
--- a/mdk-stage1/dietlibc/alpha/msgrcv.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(msgrcv,msgrcv)
diff --git a/mdk-stage1/dietlibc/alpha/msgsnd.S b/mdk-stage1/dietlibc/alpha/msgsnd.S
deleted file mode 100644
index 890a996a2..000000000
--- a/mdk-stage1/dietlibc/alpha/msgsnd.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(msgsnd,msgsnd)
diff --git a/mdk-stage1/dietlibc/alpha/pipe.S b/mdk-stage1/dietlibc/alpha/pipe.S
deleted file mode 100644
index 3dfef10bf..000000000
--- a/mdk-stage1/dietlibc/alpha/pipe.S
+++ /dev/null
@@ -1,17 +0,0 @@
-#include "syscalls.h"
-
-.text
-.align 2
-.global pipe
-.type pipe,@function
-pipe:
- lda $0, __NR_pipe($31)
- callsys
- bne $19, .Lerror
- stl $0, 0($16)
- stl $20, 4($16)
- clr $0
- ret $31, ($26), 0x01
-.Lerror:
- br error_unified_syscall
-
diff --git a/mdk-stage1/dietlibc/alpha/recv.S b/mdk-stage1/dietlibc/alpha/recv.S
deleted file mode 100644
index 17664f2e2..000000000
--- a/mdk-stage1/dietlibc/alpha/recv.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall_weak(recv,recv,__libc_recv)
diff --git a/mdk-stage1/dietlibc/alpha/recvfrom.S b/mdk-stage1/dietlibc/alpha/recvfrom.S
deleted file mode 100644
index d8e3922af..000000000
--- a/mdk-stage1/dietlibc/alpha/recvfrom.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall_weak(recvfrom,recvfrom,__libc_recvfrom)
diff --git a/mdk-stage1/dietlibc/alpha/recvmsg.S b/mdk-stage1/dietlibc/alpha/recvmsg.S
deleted file mode 100644
index 6ce87eebb..000000000
--- a/mdk-stage1/dietlibc/alpha/recvmsg.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(recvmsg,recvmsg)
diff --git a/mdk-stage1/dietlibc/alpha/reml.S b/mdk-stage1/dietlibc/alpha/reml.S
deleted file mode 100644
index 2d89e3280..000000000
--- a/mdk-stage1/dietlibc/alpha/reml.S
+++ /dev/null
@@ -1,101 +0,0 @@
-/* taken from glibc 2.2 */
-
- .set noreorder
- .set noat
-
- .ent __remlu
- .globl __remlu
-
- .align 3
-__remlu :
- lda $30 , -32($30)
- .frame $30 , 32 , $23 , 0
- .prologue 0
-.Ludiv:
- stq $1 , 0($30)
- zapnot $25 , 15 , $1
- stq $2 , 8($30)
- zapnot $24 , 15 , $27
- stq $0 , 16($30)
- clr $2
- stq $3 , 24($30)
- ldiq $0 , 1
-
- beq $1 , .Ldivbyzero
-
- .align 3
-
-
-1: cmpult $1 , $27 , $at
- s8addq $1 , $31 , $1
- s8addq $0 , $31 , $0
- bne $at , 1b
-
-
-
-3:
- srl $0 , 1 , $0
- cmpule $1 , $27 , $at
- subq $27 , $1 , $3
-
- srl $1 , 1 , $1
- cmovne $at , $3 , $27
- bne $0 , 3b
-
-.Ldone: ldq $1 , 0($30)
- ldq $2 , 8($30)
- ldq $0 , 16($30)
- ldq $3 , 24($30)
-
- lda $30 , 32($30)
- ret $31 , ($23), 1
-
-.Ldivbyzero:
- mov $16 , $3
- ldiq $16 , -2
- call_pal 170
- mov $3 , $16
- clr $27
- br .Ldone
-
- .end __remlu
-
- .ent __reml
- .globl __reml
-
- .align 3
-__reml :
- lda $30 , - 32 ($30 )
- .frame $30 , 32 , $23 , 0
- .prologue 0
- or $24 , $25 , $at
- sextl $at , $at
- bge $at , .Ludiv
-
-
- stq $24 , 0($30 )
- negl $24 , $at
- stq $25 , 8($30 )
- cmovge $at , $at , $24
- stq $23 , 16($30 )
- negl $25 , $at
- stq $3 , 24($30 )
- cmovge $at , $at , $25
-
-
- bsr $23 , __remlu
-
-
- ldq $24 , 0($30 )
- ldq $25 , 8($30 )
- mov $24 , $at
- negl $27 , $3
- sextl $at , $at
- ldq $23 , 16($30 )
- cmovlt $at , $3 , $27
- ldq $3 , 24($30 )
-
- lda $30 , 32 ($30 )
- ret $31 , ($23 ), 1
-
- .end __reml
diff --git a/mdk-stage1/dietlibc/alpha/remq.S b/mdk-stage1/dietlibc/alpha/remq.S
deleted file mode 100644
index 713484da3..000000000
--- a/mdk-stage1/dietlibc/alpha/remq.S
+++ /dev/null
@@ -1,97 +0,0 @@
-/* taken from glibc 2.2 */
-
- .set noreorder
- .set noat
-
- .ent __remqu
- .globl __remqu
-
- .align 3
-__remqu :
- lda $30 , - 32 ($30 )
- .frame $30 , 32 , $23 , 0
- .prologue 0
-.Ludiv:
- stq $1 , 0($30 )
- mov $25 , $1
- stq $2 , 8($30 )
- mov $24 , $27
- stq $0 , 16($30 )
- clr $2
- stq $3 , 24($30 )
- ldiq $0 , 1
-
- beq $1 , .Ldivbyzero
-
- .align 3
-
-1: cmpult $1 , $27 , $at
- blt $1 , 2f
- addq $1 , $1 , $1
- addq $0 , $0 , $0
- bne $at , 1b
- unop
-2:
-3:
- srl $0 , 1, $0
- cmpule $1 , $27 , $at
- subq $27 , $1 , $3
-
- srl $1 , 1, $1
- cmovne $at , $3 , $27
- bne $0 , 3b
-
-.Ldone: ldq $1 , 0($30 )
- ldq $2 , 8($30 )
- ldq $0 , 16($30 )
- ldq $3 , 24($30 )
-
- lda $30 , 32 ($30 )
- ret $31 , ($23 ), 1
-
-.Ldivbyzero:
- mov $16 , $3
- ldiq $16 , -2
- call_pal 170
- mov $3 , $16
- clr $27
- br .Ldone
-
- .end __remqu
-
- .ent __remq
- .globl __remq
-
- .align 3
-__remq :
- lda $30 , - 32 ($30 )
- .frame $30 , 32 , $23 , 0
- .prologue 0
- or $24 , $25 , $at
-
- bge $at , .Ludiv
-
- stq $24 , 0($30 )
- negq $24 , $at
- stq $25 , 8($30 )
- cmovge $at , $at , $24
- stq $23 , 16($30 )
- negq $25 , $at
- stq $3 , 24($30 )
- cmovge $at , $at , $25
-
- bsr $23 , __remqu
-
- ldq $24 , 0($30 )
- ldq $25 , 8($30 )
- mov $24 , $at
- negq $27 , $3
-
- ldq $23 , 16($30 )
- cmovlt $at , $3 , $27
- ldq $3 , 24($30 )
-
- lda $30 , 32 ($30 )
- ret $31 , ($23 ), 1
-
- .end __remq
diff --git a/mdk-stage1/dietlibc/alpha/semctl.S b/mdk-stage1/dietlibc/alpha/semctl.S
deleted file mode 100644
index e215ed955..000000000
--- a/mdk-stage1/dietlibc/alpha/semctl.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(semctl,semctl)
diff --git a/mdk-stage1/dietlibc/alpha/semget.S b/mdk-stage1/dietlibc/alpha/semget.S
deleted file mode 100644
index 67f488546..000000000
--- a/mdk-stage1/dietlibc/alpha/semget.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(semget,semget)
diff --git a/mdk-stage1/dietlibc/alpha/semop.S b/mdk-stage1/dietlibc/alpha/semop.S
deleted file mode 100644
index 81b6fc606..000000000
--- a/mdk-stage1/dietlibc/alpha/semop.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(semop,semop)
diff --git a/mdk-stage1/dietlibc/alpha/send.S b/mdk-stage1/dietlibc/alpha/send.S
deleted file mode 100644
index cfd11be2a..000000000
--- a/mdk-stage1/dietlibc/alpha/send.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall_weak(send,send,__libc_send)
diff --git a/mdk-stage1/dietlibc/alpha/sendmsg.S b/mdk-stage1/dietlibc/alpha/sendmsg.S
deleted file mode 100644
index 14646ad68..000000000
--- a/mdk-stage1/dietlibc/alpha/sendmsg.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(sendmsg,sendmsg)
diff --git a/mdk-stage1/dietlibc/alpha/sendto.S b/mdk-stage1/dietlibc/alpha/sendto.S
deleted file mode 100644
index 17a033011..000000000
--- a/mdk-stage1/dietlibc/alpha/sendto.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall_weak(sendto,sendto,__libc_sendto)
diff --git a/mdk-stage1/dietlibc/alpha/seteuid.c b/mdk-stage1/dietlibc/alpha/seteuid.c
deleted file mode 100644
index a7cf47893..000000000
--- a/mdk-stage1/dietlibc/alpha/seteuid.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <sys/types.h>
-#include <unistd.h>
-
-#undef seteuid
-int seteuid(uid_t euid) {
- return setreuid(-1,euid);
-}
diff --git a/mdk-stage1/dietlibc/alpha/setjmp.S b/mdk-stage1/dietlibc/alpha/setjmp.S
deleted file mode 100644
index 3768056be..000000000
--- a/mdk-stage1/dietlibc/alpha/setjmp.S
+++ /dev/null
@@ -1,46 +0,0 @@
-#include <setjmp.h>
-
-.text
-.global __sigsetjmp
-__sigsetjmp:
- ldgp $gp, 0($gp)
-
- mov $sp, $1
- lda $sp, -16($sp)
-
- stq $26, 0($sp) /* save ra */
-
- stq $9, (JB_S0*8) ($16) /* s0 */
- stq $10, (JB_S1*8) ($16) /* s1 */
- stq $11, (JB_S2*8) ($16) /* s2 */
- stq $12, (JB_S3*8) ($16) /* s3 */
- stq $13, (JB_S4*8) ($16) /* s4 */
- stq $14, (JB_S5*8) ($16) /* s5 */
-
- stq $26, (JB_PC*8) ($16) /* ra */
- stq $fp, (JB_FP*8) ($16) /* fp */
- stq $1, (JB_SP*8) ($16) /* sp */
-
- stt $f2, (JB_F2*8) ($16) /* f2 */
- stt $f3, (JB_F3*8) ($16) /* f3 */
- stt $f4, (JB_F4*8) ($16) /* f4 */
- stt $f5, (JB_F5*8) ($16) /* f5 */
- stt $f6, (JB_F6*8) ($16) /* f6 */
- stt $f7, (JB_F7*8) ($16) /* f7 */
- stt $f8, (JB_F8*8) ($16) /* f8 */
- stt $f9, (JB_F9*8) ($16) /* f9 */
-
- br $26, __sigjmp_save /* call __sigjmp_save */
-
- ldq $26, 0($sp) /* restore ra */
-
- lda $sp, 16($sp)
- ret $31, ($26), 1 /* back to caller */
-
-.weak setjmp
-setjmp:
-.weak __setjmp
-__setjmp:
- ldgp $gp, 0($gp)
- mov 0, $17
- br __sigsetjmp
diff --git a/mdk-stage1/dietlibc/alpha/setsockopt.S b/mdk-stage1/dietlibc/alpha/setsockopt.S
deleted file mode 100644
index e3fe1d321..000000000
--- a/mdk-stage1/dietlibc/alpha/setsockopt.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(setsockopt,setsockopt)
diff --git a/mdk-stage1/dietlibc/alpha/shmat.S b/mdk-stage1/dietlibc/alpha/shmat.S
deleted file mode 100644
index 51248173d..000000000
--- a/mdk-stage1/dietlibc/alpha/shmat.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(shmat,shmat)
diff --git a/mdk-stage1/dietlibc/alpha/shmctl.S b/mdk-stage1/dietlibc/alpha/shmctl.S
deleted file mode 100644
index d56caace4..000000000
--- a/mdk-stage1/dietlibc/alpha/shmctl.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(shmctl,shmctl)
diff --git a/mdk-stage1/dietlibc/alpha/shmdt.S b/mdk-stage1/dietlibc/alpha/shmdt.S
deleted file mode 100644
index d9812a799..000000000
--- a/mdk-stage1/dietlibc/alpha/shmdt.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(shmdt,shmdt)
diff --git a/mdk-stage1/dietlibc/alpha/shmget.S b/mdk-stage1/dietlibc/alpha/shmget.S
deleted file mode 100644
index 82914223f..000000000
--- a/mdk-stage1/dietlibc/alpha/shmget.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(shmget,shmget)
diff --git a/mdk-stage1/dietlibc/alpha/shutdown.S b/mdk-stage1/dietlibc/alpha/shutdown.S
deleted file mode 100644
index 9b5139325..000000000
--- a/mdk-stage1/dietlibc/alpha/shutdown.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(shutdown,shutdown)
diff --git a/mdk-stage1/dietlibc/alpha/signal.S b/mdk-stage1/dietlibc/alpha/signal.S
deleted file mode 100644
index ceca0f02d..000000000
--- a/mdk-stage1/dietlibc/alpha/signal.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(osf_signal,signal)
diff --git a/mdk-stage1/dietlibc/alpha/sigprocmask.S b/mdk-stage1/dietlibc/alpha/sigprocmask.S
deleted file mode 100644
index d9da836c2..000000000
--- a/mdk-stage1/dietlibc/alpha/sigprocmask.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall_weak(osf_sigprocmask,sigprocmask,__sigprocmask)
diff --git a/mdk-stage1/dietlibc/alpha/socket.S b/mdk-stage1/dietlibc/alpha/socket.S
deleted file mode 100644
index 85401f56e..000000000
--- a/mdk-stage1/dietlibc/alpha/socket.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(socket,socket)
diff --git a/mdk-stage1/dietlibc/alpha/socketcall.S b/mdk-stage1/dietlibc/alpha/socketcall.S
deleted file mode 100644
index b150bd5d5..000000000
--- a/mdk-stage1/dietlibc/alpha/socketcall.S
+++ /dev/null
@@ -1,5 +0,0 @@
-#include "syscalls.h"
-
-/*
- * Doesn't exist on alpha ( accept, bind, ... are SYSCALLS !?! )
- */
diff --git a/mdk-stage1/dietlibc/alpha/start.S b/mdk-stage1/dietlibc/alpha/start.S
deleted file mode 100644
index 00b8e950d..000000000
--- a/mdk-stage1/dietlibc/alpha/start.S
+++ /dev/null
@@ -1,35 +0,0 @@
-#include "start.h"
-
-#ifdef __alpha__
-
-.text
-.align 2
- .set noreorder
-
-.global __start
-__start:
-.global _start
-_start:
- clr $fp /* clear frame pointer */
-
- br $gp,.Lstart /* set global pointer */
-.Lstart:
- ldgp $gp, 0($gp)
-
-/* prepare to call main */
- ldl $16, 0($sp) /* argc */
-
- lda $17, 8($sp) /* argv */
-
- addq $16, 1, $18 /* argp */
- s8addq $18, $17, $18 /* (8*(argc+1))+argv -> argp */
-
- stq $18, environ
-
- mov $0, $21 /* mov v0(dynload) to a5 */
-
- jsr $26, main
- mov $0, $16
- jsr $26, exit /* YES, CALL! for threads and atexit ! (+4 byte) */
-
-#endif
diff --git a/mdk-stage1/dietlibc/alpha/strlen.c b/mdk-stage1/dietlibc/alpha/strlen.c
deleted file mode 100644
index ac532254a..000000000
--- a/mdk-stage1/dietlibc/alpha/strlen.c
+++ /dev/null
@@ -1,32 +0,0 @@
-#include <string.h>
-
-static const unsigned long long magic = 0x0101010101010101LL;
-
-size_t strlen(const char *s)
-{
- const char *t = s;
- unsigned long long word;
-
- if (!s) return 0;
-
- /* Byte compare up until 64 bit word boundary */
- for (; ((unsigned long long) t & 7); t++)
- if (!*t) return t - s;
-
- /* Word compare */
- do {
- word = *((unsigned long long *) t); t += 8;
- word = (word - magic) &~ word;
- word &= (magic << 7);
- } while (word == 0);
-
- /* word & 0x8080808080808080 == word */
- word = (word - 1) & (magic << 8);
- word += (word << 32);
- word += (word << 16);
- word += (word << 8);
- t += word >> 56;
- return ((const char *) t) - 8 - s;
-}
-
-
diff --git a/mdk-stage1/dietlibc/alpha/time.S b/mdk-stage1/dietlibc/alpha/time.S
deleted file mode 100644
index e69de29bb..000000000
--- a/mdk-stage1/dietlibc/alpha/time.S
+++ /dev/null
diff --git a/mdk-stage1/dietlibc/alpha/unified.S b/mdk-stage1/dietlibc/alpha/unified.S
deleted file mode 100644
index 02a1c9bcd..000000000
--- a/mdk-stage1/dietlibc/alpha/unified.S
+++ /dev/null
@@ -1,29 +0,0 @@
-#include <dietfeatures.h>
-
-.global __unified_syscall
-__unified_syscall:
- callsys
- bne $19, .Lerror
- ret $31, ($26), 0x01
-
-.Lerror:
-.global error_unified_syscall
-error_unified_syscall:
-#ifdef WANT_THREAD_SAVE
- lda $sp, -16($sp) /* alloc 2 qwords on stack */
- stq $26, 0($sp) /* save ra to stack */
- stq $0, 8($sp) /* save v0 to stack */
-
- jsr $26, __errno_location /* call __errno_location */
-
- ldq $1, 8($sp) /* write old v0 to errno */
- stl $1, 0($0)
-
- lda $0, -1($31) /* new return value is -1 */
- ldq $26, 0($sp) /* restore return address */
- lda $sp, 16($sp) /* free 2 qwords on stack */
-#else
- lda $1, errno
- stl $0, 0($1)
-#endif
- ret $31, ($26), 0x01 /* return */
diff --git a/mdk-stage1/dietlibc/alpha/utime.S b/mdk-stage1/dietlibc/alpha/utime.S
deleted file mode 100644
index a9a8aada6..000000000
--- a/mdk-stage1/dietlibc/alpha/utime.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(utimes,utime)
diff --git a/mdk-stage1/dietlibc/alpha/waitpid.S b/mdk-stage1/dietlibc/alpha/waitpid.S
deleted file mode 100644
index 6dc1c99db..000000000
--- a/mdk-stage1/dietlibc/alpha/waitpid.S
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <syscalls.h>
-
-.text
-.align 2
-.weak waitpid
-waitpid:
-.global __libc_waitpid
-__libc_waitpid:
- clr $19
- br wait4
diff --git a/mdk-stage1/dietlibc/diet.c b/mdk-stage1/dietlibc/diet.c
deleted file mode 100644
index 1de6befc8..000000000
--- a/mdk-stage1/dietlibc/diet.c
+++ /dev/null
@@ -1,112 +0,0 @@
-#include <string.h>
-#include <unistd.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-/* goal:
- * when invoked as
- * "diet gcc -c t.c"
- * exec
- * "gcc -I/path/to/dietlibc/include -c t.c"
- *
- * when invoked as
- * "diet sparc-linux-gcc -o t t.o"
- * exec
- * "sparc-linux-gcc -nostdlib -static -o t t.o /path/to/dietlibc/bin-sparc/start.o /path/to/dietlibc/bin-sparc/dietlibc.a"
-*/
-
-void error(const char *message) {
- write(2,message,strlen(message));
- exit(1);
-}
-
-int main(int argc,char *argv[]) {
- int link=0;
- int compile=0;
- char diethome[]=DIETHOME;
- char platform[1000]=DIETHOME "/bin-";
- char *nostdlib="-nostdlib";
- char *libgcc="-lgcc";
- char dashL[1000]="-L";
- int i;
-
- if (argc<2) {
- error("usage: diet [gcc command line]\n"
- "e.g. diet gcc -c t.c\n"
- "or diet sparc-linux-gcc -o foo foo.c bar.o\n");
- }
- {
- char *tmp=strchr(argv[1],0)-2;
- char *tmp2;
- char *cc=argv[1];
- if (tmp<cc) goto donttouch;
- if ((tmp2=strchr(cc,'-'))) { /* cross compiling? */
- int len=strlen(platform);
- if (tmp2-cc>90) error("platform name too long!\n");
- memmove(platform+len,argv[1],tmp2-cc);
- platform[tmp2-cc+len]=0;
-/* printf("found platform %s\n",platform); */
- } else {
-#ifdef __sparc__
- strcat(platform,"sparc");
-#endif
-#ifdef __ppc__
- strcat(platform,"ppc");
-#endif
-#ifdef __i386__
- strcat(platform,"i386");
-#endif
-#ifdef __alpha__
- strcat(platform,"alpha");
-#endif
-#ifdef __arm__
- strcat(platform,"arm");
-#endif
-#ifdef __mips__
- strcat(platform,"mips");
-#endif
- }
- strcat(dashL,platform);
- if (!strcmp(tmp,"cc")) {
- char **newargv;
- char **dest;
- char *a,*b,*c;
-/* we need to add -I... if the command line contains -c, -S or -E */
- for (i=2; i<argc; ++i)
- if (!strcmp(argv[i],"-c") || !strcmp(argv[i],"-S") || !strcmp(argv[i],"-E"))
- compile=1;
-/* we need to add -nostdlib if we are not compiling*/
- link=!compile;
-#if 0
- for (i=2; i<argc; ++i)
- if (!strcmp(argv[i],"-o"))
- if (!compile) link=1;
-#endif
- newargv=alloca(sizeof(char*)*(argc+6));
- a=alloca(strlen(diethome)+20);
- b=alloca(strlen(platform)+20);
- c=alloca(strlen(platform)+20);
-
- strcpy(a,"-I"); strcat(a,diethome); strcat(a,"/include");
- strcpy(b,platform); strcat(b,"/start.o");
- strcpy(c,platform); strcat(c,"/dietlibc.a");
-
- dest=newargv;
- *dest++=argv[1];
- if (link) { *dest++=nostdlib; *dest++=dashL; }
- if (compile || link) *dest++=a;
- for (i=2; i<argc; ++i)
- *dest++=argv[i];
- if (link) { *dest++=b; *dest++=c; *dest++=libgcc; }
- *dest=0;
- execvp(newargv[0],newargv);
- goto error;
- } else if (!strcmp(tmp,"ld")) {
- }
- }
-donttouch:
- execvp(argv[1],argv+1);
-error:
- error("execvp failed!\n");
- return 1;
-}
diff --git a/mdk-stage1/dietlibc/dietdirent.h b/mdk-stage1/dietlibc/dietdirent.h
deleted file mode 100644
index d732cf7dc..000000000
--- a/mdk-stage1/dietlibc/dietdirent.h
+++ /dev/null
@@ -1,6 +0,0 @@
-struct __dirstream {
- int fd;
- char buf[1024];
- unsigned int num;
- unsigned int cur;
-}; /* stream data from opendir() */
diff --git a/mdk-stage1/dietlibc/dietfeatures.h b/mdk-stage1/dietlibc/dietfeatures.h
deleted file mode 100644
index e1de38577..000000000
--- a/mdk-stage1/dietlibc/dietfeatures.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef _DIETFEATURES_H
-#define _DIETFEATURES_H
-
-/* feel free to comment some of these out to reduce code size */
-
-//#define WANT_FLOATING_POINT_IN_PRINTF
-//#define WANT_FLOATING_POINT_IN_SCANF
-#define WANT_CHARACTER_CLASSES_IN_SCANF
-#define WANT_NULL_PRINTF
-
-#define SLASH_PROC_OK
-
-// #define WANT_BUFFERED_STDIO
-
-/* use errno_location instead of errno */
-// #define WANT_THREAD_SAFE
-
-/* make the startcode, etc. dynamic aware */
-/* #undef WANT_DYNAMIC */
-
-/* do you want smaller or faster string routines? */
-/* #define WANT_FASTER_STRING_ROUTINES */
-
-/* do you want ungetc? makes fgetc more complex */
-#define WANT_UNGETC
-
-// #define WANT_LINKER_WARNINGS
-
-/* you need to define this if you want to run your programs with large
- * file support on kernel 2.2 or 2.4 */
-// #define WANT_LARGEFILE_BACKCOMPAT
-
-/* do you want localtime(3) to read /etc/localtime?
- * Needed for daylight saving time etc. */
-// #define WANT_TZFILE_PARSER
-
-/* stop uncommenting here ;-) */
-#ifndef WANT_FASTER_STRING_ROUTINES
-#define WANT_SMALL_STRING_ROUTINES
-#endif
-
-#endif
diff --git a/mdk-stage1/dietlibc/dietstdarg.h b/mdk-stage1/dietlibc/dietstdarg.h
deleted file mode 100644
index 827671b22..000000000
--- a/mdk-stage1/dietlibc/dietstdarg.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#include <stdarg.h>
-
-/* this assumes that va_copy() will be a macro, it is on gcc */
-#ifndef va_copy
-# ifdef __va_copy
-# define va_copy(x, y) __va_copy(x, y)
-# else
-/* assume copying it works... */
-# define va_copy(x, y) x = y
-# endif
-#endif
-
diff --git a/mdk-stage1/dietlibc/dietstdio.h b/mdk-stage1/dietlibc/dietstdio.h
deleted file mode 100644
index a1cbeba83..000000000
--- a/mdk-stage1/dietlibc/dietstdio.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/* diet stdio -- no buffering ;-} */
-
-#include "dietfeatures.h"
-#include <sys/types.h>
-#ifdef WANT_THREAD_SAVE
-#include <pthread.h>
-#endif
-
-#define BUFSIZE 128
-
-typedef struct __file {
- int fd;
- int flags;
-#ifdef WANT_BUFFERED_STDIO
- unsigned int bs; /* read: bytes in buffer */
- unsigned int bm; /* position in buffer */
- char buf[BUFSIZE];
- struct __file *next; /* for fflush */
-#endif
- pid_t popen_kludge;
-#ifdef WANT_UNGETC
- char ungetbuf;
- char ungotten;
-#endif
-#ifdef WANT_THREAD_SAVE
- pthread_mutex_t m;
-#endif
-} FILE;
-
-extern FILE *__stdio_root;
-
-#define ERRORINDICATOR 1
-#define EOFINDICATOR 2
-#define BUFINPUT 4
-#define BUFLINEWISE 8
-#define NOBUF 16
-#define UNSEEKABLE 32
-
-#define _IONBF 0
-#define _IOLBF 1
-#define _IOFBF 2
-
-/* internal function to flush buffer.
- * However, if next is BUFINPUT and the buffer is an input buffer, it
- * will not be flushed. Vice versa for output */
-extern int __fflush4(FILE *stream,int next);
-
-FILE *fopen (const char *path, const char *mode);
-FILE *fdopen (int fildes, const char *mode);
-FILE *freopen (const char *path, const char *mode, FILE *stream);
-
-int fgetc(FILE *stream);
-char *fgets(char *s, int size, FILE *stream);
-int getc(FILE *stream);
-int getchar(void);
-char *gets(char *s);
-int ungetc(int c, FILE *stream);
-
-int fputc(int c, FILE *stream);
-int fputs(const char *s, FILE *stream);
-int putc(int c, FILE *stream);
-int putchar(int c);
-int puts(const char *s);
-
-long fseek( FILE *stream, long offset, int whence);
-long ftell( FILE *stream);
-void rewind( FILE *stream);
-int fgetpos( FILE *stream, fpos_t *pos);
-int fsetpos( FILE *stream, fpos_t *pos);
-
-size_t fread( void *ptr, size_t size, size_t nmemb, FILE *stream);
-
-size_t fwrite( const void *ptr, size_t size, size_t nmemb, FILE *stream);
-
-int fflush(FILE *stream);
-
-int fclose(FILE *stream);
-
-extern FILE *stdout, *stderr, *stdin;
-
-#define EOF (int)(-1)
diff --git a/mdk-stage1/dietlibc/dietwarning.h b/mdk-stage1/dietlibc/dietwarning.h
deleted file mode 100644
index f7c67a175..000000000
--- a/mdk-stage1/dietlibc/dietwarning.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#include "dietfeatures.h"
-
-#ifdef WANT_LINKER_WARNINGS
-
-#ifndef __ASSEMBLER__
-
-#define link_warning(symbol,msg) \
- asm (".section .gnu.warning." symbol "\n\t.string \"" msg "\"\n\t.previous");
-
-#else
-
-#define link_warning(symbol,msg) \
- .section .gnu.warning.##symbol ;\
- .string msg ;\
- .previous
-
-#endif
-
-#else
-
-#define link_warning(foo,bar)
-
-#endif
diff --git a/mdk-stage1/dietlibc/dirstream.h b/mdk-stage1/dietlibc/dirstream.h
deleted file mode 100644
index dc8fba79c..000000000
--- a/mdk-stage1/dietlibc/dirstream.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Copyright (C) 1991, 1992 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
-
-The GNU C 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB. If
-not, write to the, 1992 Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA. */
-
-/*
- * POSIX Standard: 5.1.2 Directory Operations <dirent.h>
- */
-
-#ifndef _DIRSTREAM_H
-
-#define _DIRSTREAM_H 1
-
-#include <sys/types.h>
-#include <dirent.h>
-#ifdef _POSIX_THREADS
-#include <pthread.h>
-#endif
-
-/* For now, syscall readdir () only supports one entry at a time. It
- * will be changed in the future.
-#define NUMENT 3
-*/
-#ifndef NUMENT
-#define NUMENT 1
-#endif
-
-#define SINGLE_READDIR 11
-#define MULTI_READDIR 12
-#define NEW_READDIR 13
-
-/* Directory stream type. */
-struct __dirstream {
- /* file descriptor */
- int dd_fd;
-
- /* offset of the next dir entry in buffer */
- off_t dd_nextloc;
-
- /* bytes of valid entries in buffer */
- size_t dd_size;
-
- /* -> directory buffer */
- struct dirent *dd_buf;
-
- /* we have to convert */
- struct dirent convbuf;
-
- /* offset of the next dir entry in directory. */
- off_t dd_nextoff;
-
- /* total size of buffer */
- size_t dd_max;
-
- enum {unknown, have_getdents, no_getdents} dd_getdents;
-
- /* lock */
-#ifdef _POSIX_THREADS
- pthread_mutex_t *dd_lock;
-#else
- void *dd_lock;
-#endif
-}; /* stream data from opendir() */
-
-#endif /* dirent.h */
diff --git a/mdk-stage1/dietlibc/i386/Makefile.add b/mdk-stage1/dietlibc/i386/Makefile.add
deleted file mode 100644
index b685cc360..000000000
--- a/mdk-stage1/dietlibc/i386/Makefile.add
+++ /dev/null
@@ -1,3 +0,0 @@
-
-CFLAGS+=-march=i386 -mcpu=i386 -Os -fomit-frame-pointer
-VPATH:=i386:syscalls.s:$(VPATH)
diff --git a/mdk-stage1/dietlibc/i386/__longjmp.S b/mdk-stage1/dietlibc/i386/__longjmp.S
deleted file mode 100644
index 098275037..000000000
--- a/mdk-stage1/dietlibc/i386/__longjmp.S
+++ /dev/null
@@ -1,18 +0,0 @@
-#include <setjmp.h>
-
-.text
-.global __longjmp
-__longjmp:
- movl 4(%esp), %ecx /* User's jmp_buf in %ecx. */
- movl 8(%esp), %eax /* Second argument is return value. */
- /* Save the return address now. */
- movl (JB_PC*4)(%ecx), %edx
- /* Restore registers. */
- movl (JB_BX*4)(%ecx), %ebx
- movl (JB_SI*4)(%ecx), %esi
- movl (JB_DI*4)(%ecx), %edi
- movl (JB_BP*4)(%ecx), %ebp
- movl (JB_SP*4)(%ecx), %esp
- /* Jump to saved PC. */
- jmp *%edx
-.size __longjmp,.-__longjmp;
diff --git a/mdk-stage1/dietlibc/i386/__testandset.S b/mdk-stage1/dietlibc/i386/__testandset.S
deleted file mode 100644
index af7b4d5a0..000000000
--- a/mdk-stage1/dietlibc/i386/__testandset.S
+++ /dev/null
@@ -1,8 +0,0 @@
-.text
-.global __testandset
-__testandset:
- xorl %eax, %eax
- movl 0x4(%esp),%edx
- incl %eax
- xchgl %eax,(%edx)
- ret
diff --git a/mdk-stage1/dietlibc/i386/clone.S b/mdk-stage1/dietlibc/i386/clone.S
deleted file mode 100644
index ac02eb468..000000000
--- a/mdk-stage1/dietlibc/i386/clone.S
+++ /dev/null
@@ -1,51 +0,0 @@
-#include <asm/unistd.h>
-
-.text
-.weak clone
-clone:
-.global __clone
-__clone:
- movl 4(%esp), %ecx /* have non null thread_funcion */
- testl %ecx, %ecx
- je .Lclone_error
-
- movl 8(%esp), %ecx /* have non null child_stack pointer */
- testl %ecx, %ecx
- je .Lclone_error
-
- /* put the parameter on thread stack */
- subl $8, %ecx
-
- movl 16(%esp), %eax /* arg */
- movl %eax, 4(%ecx)
-
- movl 4(%esp), %eax /* thread_func */
- movl %eax, 0(%ecx)
-
- /* the syscall */
- pushl %ebx
- movl 16(%esp), %ebx /* flags */
- movl $__NR_clone, %eax
- int $0x80
- popl %ebx
-
- testl %eax, %eax
- jl .Lclone_error
- je .Lstart_thread
- ret
-
-.Lstart_thread:
- xorl %ebp,%ebp
- call *%ebx
- pushl %eax
- call _exit
-
-.Lclone_error:
- negl %eax
- pushl %eax
- call __errno_location
- popl %ecx
- movl %ecx, (%eax)
- xorl %eax, %eax
- decl %eax
- ret
diff --git a/mdk-stage1/dietlibc/i386/mmap.c b/mdk-stage1/dietlibc/i386/mmap.c
deleted file mode 100644
index 26ecb55c0..000000000
--- a/mdk-stage1/dietlibc/i386/mmap.c
+++ /dev/null
@@ -1,16 +0,0 @@
-#include <linux/types.h>
-#include <linux/unistd.h>
-
-#define __NR__mmap __NR_mmap
-_syscall1(int,_mmap,unsigned long *,buffer)
-
-char *mmap(char *addr, size_t len, int prot, int flags, int fd, unsigned long off) {
- unsigned long buffer[6];
- buffer[0] = (unsigned long)addr;
- buffer[1] = (unsigned long)len;
- buffer[2] = (unsigned long)prot;
- buffer[3] = (unsigned long)flags;
- buffer[4] = (unsigned long)fd;
- buffer[5] = (unsigned long)off;
- return (char*) _mmap(buffer);
-}
diff --git a/mdk-stage1/dietlibc/i386/select.S b/mdk-stage1/dietlibc/i386/select.S
deleted file mode 100644
index 9e7066eae..000000000
--- a/mdk-stage1/dietlibc/i386/select.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall_weak(_newselect,select,__libc_select)
diff --git a/mdk-stage1/dietlibc/i386/setjmp.S b/mdk-stage1/dietlibc/i386/setjmp.S
deleted file mode 100644
index 9bfecf565..000000000
--- a/mdk-stage1/dietlibc/i386/setjmp.S
+++ /dev/null
@@ -1,62 +0,0 @@
-#include <setjmp.h>
-
-/* setjmp for i386.
- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The GNU C 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-
-.section .rodata
-.text
-.weak setjmp
-setjmp:
-.globl __setjmp
-__setjmp:
- popl %eax /* Pop return address. */
- popl %ecx /* Pop jmp_buf. */
- pushl $0 /* Push zero argument. */
- pushl %ecx /* Push jmp_buf. */
- pushl %eax /* Push back return address. */
-
-.globl __sigsetjmp
-__sigsetjmp:
- movl 4(%esp), %eax /* User's jmp_buf in %eax. */
- /* Save registers. */
- movl %ebx, (JB_BX*4)(%eax)
- movl %esi, (JB_SI*4)(%eax)
- movl %edi, (JB_DI*4)(%eax)
- movl %ebp, (JB_BP*4)(%eax)
- leal 4(%esp), %ecx /* Save SP as it will be after we return. */
- movl %ecx, (JB_SP*4)(%eax)
- movl 0(%esp), %ecx /* Save PC we are returning to now. */
- movl %ecx, (JB_PC*4)(%eax)
-
- /* Make a tail call to __sigjmp_save; it takes the same args. */
-#ifdef PIC
- /* We cannot use the PLT, because it requires that %ebx be set, but
- we can't save and restore our caller's value. Instead, we do an
- indirect jump through the GOT, using for the temporary register
- %ecx, which is call-clobbered. */
- call L(here)
-L(here):
- popl %ecx
- addl $_GLOBAL_OFFSET_TABLE_+[.-L(here)], %ecx
- movl C_SYMBOL_NAME(__sigjmp_save@GOT)(%ecx), %ecx
- jmp *%ecx
-#else
- jmp __sigjmp_save
-#endif
-.size __sigsetjmp,.-__sigsetjmp;
diff --git a/mdk-stage1/dietlibc/i386/start.S b/mdk-stage1/dietlibc/i386/start.S
deleted file mode 100644
index 167bb779c..000000000
--- a/mdk-stage1/dietlibc/i386/start.S
+++ /dev/null
@@ -1,42 +0,0 @@
-#include "start.h"
-
-#ifdef __i386__
-.text
-.globl _start
-_start:
-#if 0
- popl %ecx
- movl %esp, %esi
- leal 4(%esp,%ecx,4),%eax
-#else
- movl (%esp),%ecx /* %ecx = argc */
- leal 4(%esp),%esi /* %esi = argv */
-
- leal 4(%esi,%ecx,4),%eax /* eax = 4*ecx+4 = envp */
-#endif
- pushl %eax
- pushl %esi
- pushl %ecx
- movl %eax,environ
-
-#ifdef WANT_DYNAMIC
-/* in %edx we have the dynamic _fini ( register this if non null ) */
- test %edx, %edx
- je .Linit
- push %edx
- call atexit
- pop %edx
-.Linit:
- call _init
- push $_fini
- call atexit
- pop %edx
-#endif
-
- call main
- pushl %eax
- call exit
-.Lfefe:
- .size _start,.Lfefe-_start
-#endif
-
diff --git a/mdk-stage1/dietlibc/i386/unified.S b/mdk-stage1/dietlibc/i386/unified.S
deleted file mode 100644
index f182bdb4b..000000000
--- a/mdk-stage1/dietlibc/i386/unified.S
+++ /dev/null
@@ -1,34 +0,0 @@
-#include <dietfeatures.h>
-
-.text
-.global __unified_syscall
-__unified_syscall:
- movzbl %al, %eax
- push %edi
- push %esi
- push %ebx
- movl %esp,%edi
- movl 0x10(%edi),%ebx
- movl 0x14(%edi),%ecx
- movl 0x18(%edi),%edx
- movl 0x1c(%edi),%esi
- movl 0x20(%edi),%edi
- int $0x80
- cmp $-124,%eax
- jbe .Lnoerror
-#ifdef WANT_THREAD_SAVE
- movl %eax,%ebx
- call __errno_location
- neg %ebx
- movl %ebx,(%eax)
-#else
- neg %eax
- mov %eax,errno
-#endif
- xor %eax,%eax
- dec %eax
-.Lnoerror:
- pop %ebx
- pop %esi
- pop %edi
- ret
diff --git a/mdk-stage1/dietlibc/include/alloca.h b/mdk-stage1/dietlibc/include/alloca.h
deleted file mode 100644
index e69de29bb..000000000
--- a/mdk-stage1/dietlibc/include/alloca.h
+++ /dev/null
diff --git a/mdk-stage1/dietlibc/include/arpa/inet.h b/mdk-stage1/dietlibc/include/arpa/inet.h
deleted file mode 100644
index 6d5a6dc35..000000000
--- a/mdk-stage1/dietlibc/include/arpa/inet.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef _ARPA_INET_H
-#define _ARPA_INET_H
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-
-int inet_aton(const char *cp, struct in_addr *inp) __THROW;
-unsigned long int inet_addr(const char *cp) __THROW;
-unsigned long int inet_network(const char *cp) __THROW;
-char *inet_ntoa(struct in_addr in) __THROW;
-struct in_addr inet_makeaddr(int net, int host) __THROW;
-unsigned long int inet_lnaof(struct in_addr in) __THROW;
-unsigned long int inet_netof(struct in_addr in) __THROW;
-
-int inet_pton (int AF, const char* CP, void* BUF) __THROW;
-const char* inet_ntop (int AF, const void* CP, char* BUF, size_t LEN) __THROW;
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/arpa/nameser.h b/mdk-stage1/dietlibc/include/arpa/nameser.h
deleted file mode 100644
index 1ee048d66..000000000
--- a/mdk-stage1/dietlibc/include/arpa/nameser.h
+++ /dev/null
@@ -1,217 +0,0 @@
-#ifndef _ARPA_NAMESER_H
-#define _ARPA_NAMESER_H
-
-#include <endian.h>
-
-#define NS_PACKETSZ 512 /* maximum packet size */
-#define NS_MAXDNAME 1025 /* maximum domain name */
-#define NS_MAXCDNAME 255 /* maximum compressed domain name */
-#define NS_MAXLABEL 63 /* maximum length of domain label */
-#define NS_HFIXEDSZ 12 /* #/bytes of fixed data in header */
-#define NS_QFIXEDSZ 4 /* #/bytes of fixed data in query */
-#define NS_RRFIXEDSZ 10 /* #/bytes of fixed data in r record */
-#define NS_INT32SZ 4 /* #/bytes of data in a u_int32_t */
-#define NS_INT16SZ 2 /* #/bytes of data in a u_int16_t */
-#define NS_INT8SZ 1 /* #/bytes of data in a u_int8_t */
-#define NS_INADDRSZ 4 /* IPv4 T_A */
-#define NS_IN6ADDRSZ 16 /* IPv6 T_AAAA */
-#define NS_CMPRSFLGS 0xc0 /* Flag bits indicating name compression. */
-#define NS_DEFAULTPORT 53 /* For both TCP and UDP. */
-
-/*
- * Currently defined type values for resources and queries.
- */
-typedef enum __ns_type {
- ns_t_invalid = 0, /* Cookie. */
- ns_t_a = 1, /* Host address. */
- ns_t_ns = 2, /* Authoritative server. */
- ns_t_md = 3, /* Mail destination. */
- ns_t_mf = 4, /* Mail forwarder. */
- ns_t_cname = 5, /* Canonical name. */
- ns_t_soa = 6, /* Start of authority zone. */
- ns_t_mb = 7, /* Mailbox domain name. */
- ns_t_mg = 8, /* Mail group member. */
- ns_t_mr = 9, /* Mail rename name. */
- ns_t_null = 10, /* Null resource record. */
- ns_t_wks = 11, /* Well known service. */
- ns_t_ptr = 12, /* Domain name pointer. */
- ns_t_hinfo = 13, /* Host information. */
- ns_t_minfo = 14, /* Mailbox information. */
- ns_t_mx = 15, /* Mail routing information. */
- ns_t_txt = 16, /* Text strings. */
- ns_t_rp = 17, /* Responsible person. */
- ns_t_afsdb = 18, /* AFS cell database. */
- ns_t_x25 = 19, /* X_25 calling address. */
- ns_t_isdn = 20, /* ISDN calling address. */
- ns_t_rt = 21, /* Router. */
- ns_t_nsap = 22, /* NSAP address. */
- ns_t_nsap_ptr = 23, /* Reverse NSAP lookup (deprecated). */
- ns_t_sig = 24, /* Security signature. */
- ns_t_key = 25, /* Security key. */
- ns_t_px = 26, /* X.400 mail mapping. */
- ns_t_gpos = 27, /* Geographical position (withdrawn). */
- ns_t_aaaa = 28, /* Ip6 Address. */
- ns_t_loc = 29, /* Location Information. */
- ns_t_nxt = 30, /* Next domain (security). */
- ns_t_eid = 31, /* Endpoint identifier. */
- ns_t_nimloc = 32, /* Nimrod Locator. */
- ns_t_srv = 33, /* Server Selection. */
- ns_t_atma = 34, /* ATM Address */
- ns_t_naptr = 35, /* Naming Authority PoinTeR */
- ns_t_kx = 36, /* Key Exchange */
- ns_t_cert = 37, /* Certification record */
- ns_t_a6 = 38, /* IPv6 address (deprecates AAAA) */
- ns_t_dname = 39, /* Non-terminal DNAME (for IPv6) */
- ns_t_sink = 40, /* Kitchen sink (experimentatl) */
- ns_t_opt = 41, /* EDNS0 option (meta-RR) */
- ns_t_tsig = 250, /* Transaction signature. */
- ns_t_ixfr = 251, /* Incremental zone transfer. */
- ns_t_axfr = 252, /* Transfer zone of authority. */
- ns_t_mailb = 253, /* Transfer mailbox records. */
- ns_t_maila = 254, /* Transfer mail agent records. */
- ns_t_any = 255, /* Wildcard match. */
- ns_t_zxfr = 256, /* BIND-specific, nonstandard. */
- ns_t_max = 65536
-} ns_type;
-
-/*
- * Values for class field
- */
-typedef enum __ns_class {
- ns_c_invalid = 0, /* Cookie. */
- ns_c_in = 1, /* Internet. */
- ns_c_2 = 2, /* unallocated/unsupported. */
- ns_c_chaos = 3, /* MIT Chaos-net. */
- ns_c_hs = 4, /* MIT Hesiod. */
- /* Query class values which do not appear in resource records */
- ns_c_none = 254, /* for prereq. sections in update requests */
- ns_c_any = 255, /* Wildcard match. */
- ns_c_max = 65536
-} ns_class;
-
-typedef struct {
- unsigned id :16; /* query identification number */
-#if BYTE_ORDER == BIG_ENDIAN
- /* fields in third byte */
- unsigned qr: 1; /* response flag */
- unsigned opcode: 4; /* purpose of message */
- unsigned aa: 1; /* authoritive answer */
- unsigned tc: 1; /* truncated message */
- unsigned rd: 1; /* recursion desired */
- /* fields in fourth byte */
- unsigned ra: 1; /* recursion available */
- unsigned unused :1; /* unused bits (MBZ as of 4.9.3a3) */
- unsigned ad: 1; /* authentic data from named */
- unsigned cd: 1; /* checking disabled by resolver */
- unsigned rcode :4; /* response code */
-#endif
-#if BYTE_ORDER == LITTLE_ENDIAN || BYTE_ORDER == PDP_ENDIAN
- /* fields in third byte */
- unsigned rd :1; /* recursion desired */
- unsigned tc :1; /* truncated message */
- unsigned aa :1; /* authoritive answer */
- unsigned opcode :4; /* purpose of message */
- unsigned qr :1; /* response flag */
- /* fields in fourth byte */
- unsigned rcode :4; /* response code */
- unsigned cd: 1; /* checking disabled by resolver */
- unsigned ad: 1; /* authentic data from named */
- unsigned unused :1; /* unused bits (MBZ as of 4.9.3a3) */
- unsigned ra :1; /* recursion available */
-#endif
- /* remaining bytes */
- unsigned qdcount :16; /* number of question entries */
- unsigned ancount :16; /* number of answer entries */
- unsigned nscount :16; /* number of authority entries */
- unsigned arcount :16; /* number of resource entries */
-} HEADER;
-
-#define PACKETSZ NS_PACKETSZ
-#define MAXDNAME NS_MAXDNAME
-#define MAXCDNAME NS_MAXCDNAME
-#define MAXLABEL NS_MAXLABEL
-#define HFIXEDSZ NS_HFIXEDSZ
-#define QFIXEDSZ NS_QFIXEDSZ
-#define RRFIXEDSZ NS_RRFIXEDSZ
-#define INT32SZ NS_INT32SZ
-#define INT16SZ NS_INT16SZ
-#define INADDRSZ NS_INADDRSZ
-#define IN6ADDRSZ NS_IN6ADDRSZ
-#define INDIR_MASK NS_CMPRSFLGS
-#define NAMESERVER_PORT NS_DEFAULTPORT
-
-#define S_ZONE ns_s_zn
-#define S_PREREQ ns_s_pr
-#define S_UPDATE ns_s_ud
-#define S_ADDT ns_s_ar
-
-#define QUERY ns_o_query
-#define IQUERY ns_o_iquery
-#define STATUS ns_o_status
-#define NS_NOTIFY_OP ns_o_notify
-#define NS_UPDATE_OP ns_o_update
-
-#define NOERROR ns_r_noerror
-#define FORMERR ns_r_formerr
-#define SERVFAIL ns_r_servfail
-#define NXDOMAIN ns_r_nxdomain
-#define NOTIMP ns_r_notimpl
-#define REFUSED ns_r_refused
-#define YXDOMAIN ns_r_yxdomain
-#define YXRRSET ns_r_yxrrset
-#define NXRRSET ns_r_nxrrset
-#define NOTAUTH ns_r_notauth
-#define NOTZONE ns_r_notzone
-
-#define DELETE ns_uop_delete
-#define ADD ns_uop_add
-
-#define T_A ns_t_a
-#define T_NS ns_t_ns
-#define T_MD ns_t_md
-#define T_MF ns_t_mf
-#define T_CNAME ns_t_cname
-#define T_SOA ns_t_soa
-#define T_MB ns_t_mb
-#define T_MG ns_t_mg
-#define T_MR ns_t_mr
-#define T_NULL ns_t_null
-#define T_WKS ns_t_wks
-#define T_PTR ns_t_ptr
-#define T_HINFO ns_t_hinfo
-#define T_MINFO ns_t_minfo
-#define T_MX ns_t_mx
-#define T_TXT ns_t_txt
-#define T_RP ns_t_rp
-#define T_AFSDB ns_t_afsdb
-#define T_X25 ns_t_x25
-#define T_ISDN ns_t_isdn
-#define T_RT ns_t_rt
-#define T_NSAP ns_t_nsap
-#define T_NSAP_PTR ns_t_nsap_ptr
-#define T_SIG ns_t_sig
-#define T_KEY ns_t_key
-#define T_PX ns_t_px
-#define T_GPOS ns_t_gpos
-#define T_AAAA ns_t_aaaa
-#define T_LOC ns_t_loc
-#define T_NXT ns_t_nxt
-#define T_EID ns_t_eid
-#define T_NIMLOC ns_t_nimloc
-#define T_SRV ns_t_srv
-#define T_ATMA ns_t_atma
-#define T_NAPTR ns_t_naptr
-#define T_TSIG ns_t_tsig
-#define T_IXFR ns_t_ixfr
-#define T_AXFR ns_t_axfr
-#define T_MAILB ns_t_mailb
-#define T_MAILA ns_t_maila
-#define T_ANY ns_t_any
-
-#define C_IN ns_c_in
-#define C_CHAOS ns_c_chaos
-#define C_HS ns_c_hs
-#define C_NONE ns_c_none
-#define C_ANY ns_c_any
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/assert.h b/mdk-stage1/dietlibc/include/assert.h
deleted file mode 100644
index bb573d0f2..000000000
--- a/mdk-stage1/dietlibc/include/assert.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef _ASSERT_H
-#define _ASSERT_H
-
-#include <sys/cdefs.h>
-
-/* This prints an "Assertion failed" message and aborts. */
-extern void __assert_fail (__const char *__assertion, __const char *__file,
- unsigned int __line, __const char *__function)
- __THROW __attribute__ ((__noreturn__));
-
-#ifdef __PRETTY_FUNCTION__
-#define __ASSERT_FUNCTION __PRETTY_FUNCTION__
-#else
-#define __ASSERT_FUNCTION __func__
-#endif
-
-#undef assert
-#ifdef NDEBUG
-#define assert(expr)
-#else
-# define assert(expr) \
- ((void) ((expr) ? 0 : \
- (__assert_fail (#expr, \
- __FILE__, __LINE__, __ASSERT_FUNCTION), 0)))
-#endif
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/ctype.h b/mdk-stage1/dietlibc/include/ctype.h
deleted file mode 100644
index 9322e8c7b..000000000
--- a/mdk-stage1/dietlibc/include/ctype.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef _CTYPE_H
-#define _CTYPE_H
-
-#include <sys/cdefs.h>
-
-extern int isascii (int c) __THROW __attribute__ ((__const__));
-extern int isblank (int c) __THROW __attribute__ ((__const__));
-extern int isalnum (int c) __THROW __attribute__ ((__const__));
-extern int isalpha (int c) __THROW __attribute__ ((__const__));
-extern int isdigit (int c) __THROW __attribute__ ((__const__));
-extern int isspace (int c) __THROW __attribute__ ((__const__));
-
-extern int isupper (int c) __THROW __attribute__ ((__const__));
-extern int islower (int c) __THROW __attribute__ ((__const__));
-
-extern int tolower(int c) __THROW __attribute__ ((__const__));
-extern int toupper(int c) __THROW __attribute__ ((__const__));
-
-extern int isprint(int c) __THROW __attribute__ ((__const__));
-extern int ispunct(int c) __THROW __attribute__ ((__const__));
-extern int iscntrl(int c) __THROW __attribute__ ((__const__));
-
-/* fscking GNU extensions! */
-extern int isxdigit(int c) __THROW __attribute__ ((__const__));
-
-extern int isgraph(int c) __THROW __attribute__ ((__const__));
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/daemon.h b/mdk-stage1/dietlibc/include/daemon.h
deleted file mode 100644
index 9049f367d..000000000
--- a/mdk-stage1/dietlibc/include/daemon.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef _DAEMON_H
-#define _DAEMON_H
-
-extern int daemon (int nochdir,int noclose);
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/dirent.h b/mdk-stage1/dietlibc/include/dirent.h
deleted file mode 100644
index b0ad4f5ec..000000000
--- a/mdk-stage1/dietlibc/include/dirent.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef _DIRENT_H
-#define _DIRENT_H 1
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-
-#include <linux/dirent.h>
-
-#define d_fileno d_ino /* Backwards compatibility. */
-
-#undef _DIRENT_HAVE_D_NAMLEN
-#define _DIRENT_HAVE_D_RECLEN
-#define _DIRENT_HAVE_D_OFF
-#define _DIRENT_HAVE_D_TYPE
-
-typedef struct __dirstream DIR;
-
-DIR *opendir (const char *__name) __THROW;
-int closedir (DIR *__dirp) __THROW;
-struct dirent *readdir (DIR *__dirp) __THROW;
-struct dirent64 *readdir64 (DIR *__dirp) __THROW;
-void rewinddir (DIR *__dirp) __THROW;
-void seekdir (DIR *__dirp, long int __pos) __THROW;
-long int telldir (DIR *__dirp) __THROW;
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/dlfcn.h b/mdk-stage1/dietlibc/include/dlfcn.h
deleted file mode 100644
index b96f8f615..000000000
--- a/mdk-stage1/dietlibc/include/dlfcn.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef _DLFCN_H
-#define _DLFCN_H 1
-
-#define RTLD_LAZY 0x00000
-#define RTLD_NOW 0x00001
-
-#define RTLD_LOCAL 0x00000
-#define RTLD_GLOBAL 0x10000
-
-void *dlopen (const char *filename, int flag);
-const char *dlerror(void);
-void *dlsym(void *handle, char *symbol);
-int dlclose (void *handle);
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/elf.h b/mdk-stage1/dietlibc/include/elf.h
deleted file mode 100644
index be09dbee4..000000000
--- a/mdk-stage1/dietlibc/include/elf.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <linux/elf.h>
diff --git a/mdk-stage1/dietlibc/include/endian.h b/mdk-stage1/dietlibc/include/endian.h
deleted file mode 100644
index 463c24fff..000000000
--- a/mdk-stage1/dietlibc/include/endian.h
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef _ENDIAN_H
-#define _ENDIAN_H
-
-#define __LITTLE_ENDIAN 1234
-#define __BIG_ENDIAN 4321
-
-#ifdef __i386__
-#define __BYTE_ORDER __LITTLE_ENDIAN
-#define __FLOAT_WORD_ORDER __BYTE_ORDER
-#endif
-
-#ifdef __sparc__
-#define __BYTE_ORDER __BIG_ENDIAN
-#define __FLOAT_WORD_ORDER __BYTE_ORDER
-#endif
-
-#ifdef __mips__
-#ifdef __MIPSEB__
-#define __BIG_ENDIAN__
-#endif
-#endif
-
-#ifndef __BYTE_ORDER
-#ifdef __BIG_ENDIAN__
-#define __BYTE_ORDER __BIG_ENDIAN
-#define __FLOAT_WORD_ORDER __BYTE_ORDER
-#else
-#define __BYTE_ORDER __LITTLE_ENDIAN
-#define __FLOAT_WORD_ORDER __BYTE_ORDER
-#endif
-#endif
-
-#define LITTLE_ENDIAN __LITTLE_ENDIAN
-#define BIG_ENDIAN __BIG_ENDIAN
-#define BYTE_ORDER __BYTE_ORDER
-
-#if __BYTE_ORDER == __LITTLE_ENDIAN
-# define __LONG_LONG_PAIR(HI, LO) LO, HI
-#elif __BYTE_ORDER == __BIG_ENDIAN
-# define __LONG_LONG_PAIR(HI, LO) HI, LO
-#endif
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/errno.h b/mdk-stage1/dietlibc/include/errno.h
deleted file mode 100644
index d1c68f39c..000000000
--- a/mdk-stage1/dietlibc/include/errno.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef _ERRNO_H
-#define _ERRNO_H
-
-extern int errno;
-
-#include <linux/errno.h>
-
-extern int *__errno_location(void);
-extern void __set_errno(int error);
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/fcntl.h b/mdk-stage1/dietlibc/include/fcntl.h
deleted file mode 100644
index b792502c1..000000000
--- a/mdk-stage1/dietlibc/include/fcntl.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef _FCNTL_H
-#define _FCNTL_H
-
-#include <sys/cdefs.h>
-
-#include <sys/types.h>
-#include <unistd.h>
-
-#include <asm/fcntl.h>
-
-extern int fcntl (int __fd, int __cmd, ...) __THROW;
-extern int open (const char *__file, int __oflag, ...) __THROW;
-extern int open64 (const char *__file, int __oflag, ...) __THROW;
-extern int creat (const char *__file, mode_t __mode) __THROW;
-extern int creat64 (const char *__file, mode_t __mode) __THROW;
-extern int lockf (int __fd, int __cmd, off_t __len) __THROW;
-extern int lockf64 (int __fd, int __cmd, off64_t __len) __THROW;
-
-#define F_ULOCK 0 /* Unlock a previously locked region. */
-#define F_LOCK 1 /* Lock a region for exclusive use. */
-#define F_TLOCK 2 /* Test and lock a region for exclusive use. */
-#define F_TEST 3 /* Test a region for other processes locks. */
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/features.h b/mdk-stage1/dietlibc/include/features.h
deleted file mode 100644
index 5b0283f20..000000000
--- a/mdk-stage1/dietlibc/include/features.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#warning "someone included features.h, apparently someone is including glibc headers!"
-
-#define __dietlibc__
diff --git a/mdk-stage1/dietlibc/include/fnmatch.h b/mdk-stage1/dietlibc/include/fnmatch.h
deleted file mode 100644
index 762b43ff7..000000000
--- a/mdk-stage1/dietlibc/include/fnmatch.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef _FNMATCH_H
-#define _FNMATCH_H
-
-#include <sys/cdefs.h>
-
-int fnmatch(const char *pattern, const char *string, int flags) __THROW;
-
-#define FNM_NOESCAPE 1
-#define FNM_PATHNAME 2
-#define FNM_FILE_NAME 2
-#define FNM_PERIOD 4
-#define FNM_LEADING_DIR 8
-#define FNM_CASEFOLD 16
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/ftw.h b/mdk-stage1/dietlibc/include/ftw.h
deleted file mode 100644
index c888f0021..000000000
--- a/mdk-stage1/dietlibc/include/ftw.h
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef _FTW_H
-#define _FTW_H
-
-#include <sys/cdefs.h>
-#include <sys/stat.h>
-
-struct FTW
- {
- int base;
- int level;
- };
-
-int ftw (const char *dir, int (*fn)(const char *file, const struct stat *sb, int flag), int depth) __THROW;
-int nftw (const char *dir, int (*fn)(const char *file, const struct stat *sb, int flag, struct FTW *s), int depth, int flags) __THROW;
-
-enum
-{
- FTW_F, /* Regular file. */
-#define FTW_F FTW_F
- FTW_D, /* Directory. */
-#define FTW_D FTW_D
- FTW_DNR, /* Unreadable directory. */
-#define FTW_DNR FTW_DNR
- FTW_NS, /* Unstatable file. */
-#define FTW_NS FTW_NS
- FTW_SL, /* Symbolic link. */
-# define FTW_SL FTW_SL
-/* These flags are only passed from the `nftw' function. */
- FTW_DP, /* Directory, all subdirs have been visited. */
-# define FTW_DP FTW_DP
- FTW_SLN /* Symbolic link naming non-existing file. */
-# define FTW_SLN FTW_SLN
-};
-
-typedef int (*__ftw_func_t) (__const char *__filename,
- __const struct stat *__status, int __flag) __THROW;
-
-typedef int (*__nftw_func_t) (__const char *__filename,
- __const struct stat *__status, int __flag,
- struct FTW *__info) __THROW;
-
-#ifndef __NO_STAT64
-typedef int (*__ftw64_func_t) (__const char *__filename,
- __const struct stat64 *__status, int __flag) __THROW;
-
-typedef int (*__nftw64_func_t) (__const char *__filename,
- __const struct stat64 *__status,
- int __flag, struct FTW *__info) __THROW;
-#endif
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/getopt.h b/mdk-stage1/dietlibc/include/getopt.h
deleted file mode 100644
index ebfc5522d..000000000
--- a/mdk-stage1/dietlibc/include/getopt.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef __GETOPT_H__
-#define __GETOPT_H__
-
-extern int optind,opterr;
-extern char *optarg;
-int getopt(int argc, char *argv[], char *options);
-
-/* the following was taken from GNU getopt, it's not actually supported
- * by the diet libc! */
-extern int optopt;
-
-struct option {
- const char* name;
- int has_arg;
- int* flag;
- int val;
-};
-
-#define no_argument 0
-#define required_argument 1
-#define optional_argument 2
-
-extern int getopt_long(int argc, char *const *argv,
- const char *shortopts, const struct option *longopts,
- int *longind);
-
-extern int getopt_long_only(int argc, char *const *argv,
- const char *shortopts, const struct option *longopts,
- int *longind);
-
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/glob.h b/mdk-stage1/dietlibc/include/glob.h
deleted file mode 100644
index 80febbccf..000000000
--- a/mdk-stage1/dietlibc/include/glob.h
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef _GLOB_H
-#define _GLOB_H
-
-
-typedef struct {
- size_t gl_pathc; /* Count of paths matched so far */
- char **gl_pathv; /* List of matched pathnames. */
- size_t gl_offs; /* Slots to reserve in `gl_pathv'. */
- int gl_flags; /* Set to FLAGS, maybe | GLOB_MAGCHAR. */
-} glob_t;
-
-
-int glob(const char *pattern, int flags,
- int errfunc(const char * epath, int eerrno),
- glob_t *pglob) __THROW;
-
-void globfree(glob_t *pglob) __THROW;
-
-
-
-/* Bits set in the FLAGS argument to `glob'. */
-#define GLOB_ERR (1 << 0)/* Return on read errors. */
-#define GLOB_MARK (1 << 1)/* Append a slash to each name. */
-#define GLOB_NOSORT (1 << 2)/* Don't sort the names. */
-#define GLOB_DOOFFS (1 << 3)/* Insert PGLOB->gl_offs NULLs. */
-#define GLOB_NOCHECK (1 << 4)/* If nothing matches, return the pattern. */
-#define GLOB_APPEND (1 << 5)/* Append to results of a previous call. */
-#define GLOB_NOESCAPE (1 << 6)/* Backslashes don't quote metacharacters. */
-#define GLOB_PERIOD (1 << 7)/* Leading `.' can be matched by metachars. */
-
-#define GLOB_MAGCHAR (1 << 8)/* Set in gl_flags if any metachars seen. */
-#define GLOB_ALTDIRFUNC (1 << 9)/* Use gl_opendir et al functions. */
-#define GLOB_BRACE (1 << 10)/* Expand "{a,b}" to "a" "b". */
-#define GLOB_NOMAGIC (1 << 11)/* If no magic chars, return the pattern. */
-#define GLOB_TILDE (1 << 12)/* Expand ~user and ~ to home directories. */
-#define GLOB_ONLYDIR (1 << 13)/* Match only directories. */
-#define GLOB_TILDE_CHECK (1 << 14)/* Like GLOB_TILDE but return an error
- if the user name is not available. */
-#define __GLOB_FLAGS (GLOB_ERR|GLOB_MARK|GLOB_NOSORT|GLOB_DOOFFS| \
- GLOB_NOESCAPE|GLOB_NOCHECK|GLOB_APPEND| \
- GLOB_PERIOD|GLOB_ALTDIRFUNC|GLOB_BRACE| \
- GLOB_NOMAGIC|GLOB_TILDE|GLOB_ONLYDIR|GLOB_TILDE_CHECK)
-
-
-/* Error returns from `glob'. */
-#define GLOB_NOSPACE 1 /* Ran out of memory. */
-#define GLOB_ABORTED 2 /* Read error. */
-#define GLOB_NOMATCH 3 /* No matches found. */
-#define GLOB_NOSYS 4 /* Not implemented. */
-/* Previous versions of this file defined GLOB_ABEND instead of
- GLOB_ABORTED. Provide a compatibility definition here. */
-#define GLOB_ABEND GLOB_ABORTED
-
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/grp.h b/mdk-stage1/dietlibc/include/grp.h
deleted file mode 100644
index 32bf49afc..000000000
--- a/mdk-stage1/dietlibc/include/grp.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef _GRP_H
-#define _GRP_H
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-
-struct group
- {
- char *gr_name; /* Group name. */
- char *gr_passwd; /* Password. */
- gid_t gr_gid; /* Group ID. */
- char **gr_mem; /* Member list. */
- };
-
-extern struct group *getgrgid (gid_t uid) __THROW;
-extern struct group *getgrnam (const char *name) __THROW;
-
-extern struct group *getgrent(void) __THROW;
-extern void setgrent(void) __THROW;
-extern void endgrent(void) __THROW;
-
-extern int setgroups(size_t n, const gid_t *groups) __THROW;
-extern int initgroups(const char *user, gid_t group) __THROW;
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/inttypes.h b/mdk-stage1/dietlibc/include/inttypes.h
deleted file mode 100644
index e69de29bb..000000000
--- a/mdk-stage1/dietlibc/include/inttypes.h
+++ /dev/null
diff --git a/mdk-stage1/dietlibc/include/limits.h b/mdk-stage1/dietlibc/include/limits.h
deleted file mode 100644
index a333debfd..000000000
--- a/mdk-stage1/dietlibc/include/limits.h
+++ /dev/null
@@ -1,48 +0,0 @@
-#ifndef _LIMITS_H
-#define _LIMITS_H
-
-#include <linux/limits.h>
-
-#define __WORDSIZE 32
-
-#ifdef __alpha__
-#undef __WORDSIZE
-#define __WORDSIZE 64
-#endif
-
-#ifndef PATH_MAX
-#define PATH_MAX 4096
-#endif
-
-#define CHAR_BIT 8
-
-#define SCHAR_MIN (-128)
-#define SCHAR_MAX 0x7f
-#define UCHAR_MAX 0xff
-
-#define SHRT_MIN (-SHRT_MAX-1)
-#define SHRT_MAX 0x7fff
-#define USHRT_MAX 0xffff
-
-#define INT_MIN (-INT_MAX-1)
-#define INT_MAX 0x7fffffff
-#define UINT_MAX 0xffffffff
-
-#if __WORDSIZE == 64
-#define LONG_MAX 9223372036854775807L
-#define ULONG_MAX 18446744073709551615UL
-#else
-#define LONG_MAX 2147483647L
-#define ULONG_MAX 4294967295UL
-#endif
-#define LONG_MIN (-LONG_MAX - 1L)
-
-#define LLONG_MAX 9223372036854775807LL
-#define LLONG_MIN (-LLONG_MAX - 1LL)
-
-/* Maximum value an `unsigned long long int' can hold. (Minimum is 0.) */
-#define ULLONG_MAX 18446744073709551615ULL
-
-#define PASS_MAX 256
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/locale.h b/mdk-stage1/dietlibc/include/locale.h
deleted file mode 100644
index acbeec8c1..000000000
--- a/mdk-stage1/dietlibc/include/locale.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#warning "there is no locale support for diet libc yet"
-
-#define setlocale(a,b) 0
-#define bindtextdomain
-#define textdomain
-
diff --git a/mdk-stage1/dietlibc/include/malloc.h b/mdk-stage1/dietlibc/include/malloc.h
deleted file mode 100644
index c8b49f26d..000000000
--- a/mdk-stage1/dietlibc/include/malloc.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <stdlib.h>
diff --git a/mdk-stage1/dietlibc/include/math.h b/mdk-stage1/dietlibc/include/math.h
deleted file mode 100644
index 2f4f2e33f..000000000
--- a/mdk-stage1/dietlibc/include/math.h
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifndef _MATH_H
-#define _MATH_H
-
-#include <sys/cdefs.h>
-
-#define M_E 2.7182818284590452354 /* e */
-#define M_LOG2E 1.4426950408889634074 /* log_2 e */
-#define M_LOG10E 0.43429448190325182765 /* log_10 e */
-#define M_LN2 0.69314718055994530942 /* log_e 2 */
-#define M_LN10 2.30258509299404568402 /* log_e 10 */
-#define M_PI 3.14159265358979323846 /* pi */
-#define M_PI_2 1.57079632679489661923 /* pi/2 */
-#define M_PI_4 0.78539816339744830962 /* pi/4 */
-#define M_1_PI 0.31830988618379067154 /* 1/pi */
-#define M_2_PI 0.63661977236758134308 /* 2/pi */
-#define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */
-#define M_SQRT2 1.41421356237309504880 /* sqrt(2) */
-#define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */
-
-#define M_El 2.7182818284590452353602874713526625L /* e */
-#define M_LOG2El 1.4426950408889634073599246810018922L /* log_2 e */
-#define M_LOG10El 0.4342944819032518276511289189166051L /* log_10 e */
-#define M_LN2l 0.6931471805599453094172321214581766L /* log_e 2 */
-#define M_LN10l 2.3025850929940456840179914546843642L /* log_e 10 */
-#define M_PIl 3.1415926535897932384626433832795029L /* pi */
-#define M_PI_2l 1.5707963267948966192313216916397514L /* pi/2 */
-#define M_PI_4l 0.7853981633974483096156608458198757L /* pi/4 */
-#define M_1_PIl 0.3183098861837906715377675267450287L /* 1/pi */
-#define M_2_PIl 0.6366197723675813430755350534900574L /* 2/pi */
-#define M_2_SQRTPIl 1.1283791670955125738961589031215452L /* 2/sqrt(pi) */
-#define M_SQRT2l 1.4142135623730950488016887242096981L /* sqrt(2) */
-#define M_SQRT1_2l 0.7071067811865475244008443621048490L /* 1/sqrt(2) */
-
-double sin(double d) __THROW __attribute__((__const__));
-double cos(double d) __THROW __attribute__((__const__));
-double tan(double d) __THROW __attribute__((__const__));
-
-double sinh(double d) __THROW __attribute__((__const__));
-double cosh(double d) __THROW __attribute__((__const__));
-double tanh(double d) __THROW __attribute__((__const__));
-
-double asin(double d) __THROW __attribute__((__const__));
-double acos(double d) __THROW __attribute__((__const__));
-double atan(double d) __THROW __attribute__((__const__));
-
-double asinh(double d) __THROW __attribute__((__const__));
-double acosh(double d) __THROW __attribute__((__const__));
-double atanh(double d) __THROW __attribute__((__const__));
-
-double exp(double d) __THROW __attribute__((__const__));
-double log(double d) __THROW __attribute__((__const__));
-double log10(double d) __THROW __attribute__((__const__));
-
-double pow(double x, double y) __THROW __attribute__((__const__));
-
-double sqrt(double x) __THROW __attribute__((__const__));
-double fabs(double x) __THROW __attribute__((__const__));
-double fmod(double x, double y) __THROW __attribute__((__const__));
-
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/memory.h b/mdk-stage1/dietlibc/include/memory.h
deleted file mode 100644
index 39adee705..000000000
--- a/mdk-stage1/dietlibc/include/memory.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef _MEMORY_H
-#define _MEMORY_H
-
-#include <string.h>
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/mntent.h b/mdk-stage1/dietlibc/include/mntent.h
deleted file mode 100644
index 301403224..000000000
--- a/mdk-stage1/dietlibc/include/mntent.h
+++ /dev/null
@@ -1,72 +0,0 @@
-#ifndef _MNTENT_H
-#define _MNTENT_H
-
-#include <sys/cdefs.h>
-#include <stdio.h>
-#include <paths.h>
-
-#define MNTTAB _PATH_MNTTAB /* Deprecated alias. */
-#define MOUNTED _PATH_MOUNTED /* Deprecated alias. */
-
-/* General filesystem types. */
-#define MNTTYPE_IGNORE "ignore" /* Ignore this entry. */
-#define MNTTYPE_NFS "nfs" /* Network file system. */
-#define MNTTYPE_SWAP "swap" /* Swap device. */
-
-
-/* Generic mount options. */
-#define MNTOPT_DEFAULTS "defaults" /* Use all default options. */
-#define MNTOPT_RO "ro" /* Read only. */
-#define MNTOPT_RW "rw" /* Read/write. */
-#define MNTOPT_SUID "suid" /* Set uid allowed. */
-#define MNTOPT_NOSUID "nosuid" /* No set uid allowed. */
-#define MNTOPT_NOAUTO "noauto" /* Do not auto mount. */
-
-__BEGIN_DECLS
-
-/* Structure describing a mount table entry. */
-struct mntent
- {
- char *mnt_fsname; /* Device or server for filesystem. */
- char *mnt_dir; /* Directory mounted on. */
- char *mnt_type; /* Type of filesystem: ufs, nfs, etc. */
- char *mnt_opts; /* Comma-separated options for fs. */
- int mnt_freq; /* Dump frequency (in days). */
- int mnt_passno; /* Pass number for `fsck'. */
- };
-
-
-/* Prepare to begin reading and/or writing mount table entries from the
- beginning of FILE. MODE is as for `fopen'. */
-extern FILE *setmntent (const char *file, const char *mode) __THROW;
-
-/* Read one mount table entry from STREAM. Returns a pointer to storage
- reused on the next call, or null for EOF or error (use feof/ferror to
- check). */
-extern struct mntent *getmntent (FILE* stream) __THROW;
-
-#ifdef __USE_MISC
-/* Reentrant version of the above function. */
-extern struct mntent *getmntent_r (FILE* stream,
- struct mntent* result,
- char* buffer,
- int bufsize) __THROW;
-#endif
-
-/* Write the mount table entry described by MNT to STREAM.
- Return zero on success, nonzero on failure. */
-extern int addmntent (FILE* stream,
- const struct mntent* mnt) __THROW;
-
-/* Close a stream opened with `setmntent'. */
-extern int endmntent (FILE *stream) __THROW;
-
-/* Search MNT->mnt_opts for an option matching OPT.
- Returns the address of the substring, or null if none found. */
-extern char *hasmntopt (const struct mntent *__mnt,
- const char *opt) __THROW;
-
-
-__END_DECLS
-
-#endif /* mntent.h */
diff --git a/mdk-stage1/dietlibc/include/net/if.h b/mdk-stage1/dietlibc/include/net/if.h
deleted file mode 100644
index 88f386f46..000000000
--- a/mdk-stage1/dietlibc/include/net/if.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef _NET_IF_H
-#define _NET_IF_H
-
-#include <sys/cdefs.h>
-
-#include <linux/if.h>
-
-unsigned int if_nametoindex (const char *ifname) __THROW;
-char *if_indextoname (unsigned int ifindex, char *ifname) __THROW;
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/net/if_arp.h b/mdk-stage1/dietlibc/include/net/if_arp.h
deleted file mode 100644
index fe37a22dc..000000000
--- a/mdk-stage1/dietlibc/include/net/if_arp.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef _NET_IF_ARP_H
-#define _NET_IF_ARP_H
-
-#include <linux/if_arp.h>
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/net/route.h b/mdk-stage1/dietlibc/include/net/route.h
deleted file mode 100644
index 5e5db7b1a..000000000
--- a/mdk-stage1/dietlibc/include/net/route.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef _NET_IF_ROUTE_H
-#define _NET_IF_ROUTE_H
-
-#include <linux/route.h>
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/netdb.h b/mdk-stage1/dietlibc/include/netdb.h
deleted file mode 100644
index e90ea81ac..000000000
--- a/mdk-stage1/dietlibc/include/netdb.h
+++ /dev/null
@@ -1,90 +0,0 @@
-#ifndef _NETDB_H
-#define _NETDB_H
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-
-/* Absolute file name for network data base files. */
-#define _PATH_HEQUIV "/etc/hosts.equiv"
-#define _PATH_HOSTS "/etc/hosts"
-#define _PATH_NETWORKS "/etc/networks"
-#define _PATH_NSSWITCH_CONF "/etc/nsswitch.conf"
-#define _PATH_PROTOCOLS "/etc/protocols"
-#define _PATH_SERVICES "/etc/services"
-
-/* Description of data base entry for a single service. */
-struct servent
-{
- char *s_name; /* Official service name. */
- char **s_aliases; /* Alias list. */
- int s_port; /* Port number. */
- char *s_proto; /* Protocol to use. */
-};
-
-extern void endservent (void) __THROW;
-extern struct servent *getservent (void) __THROW;
-extern struct servent *getservbyname (const char *__name,
- const char *__proto) __THROW;
-extern struct servent *getservbyport (int __port, const char *__proto)
- __THROW;
-
-struct hostent
-{
- char *h_name; /* Official name of host. */
- char **h_aliases; /* Alias list. */
- int h_addrtype; /* Host address type. */
- socklen_t h_length; /* Length of address. */
- char **h_addr_list; /* List of addresses from name server. */
-#define h_addr h_addr_list[0] /* Address, for backward compatibility. */
-};
-
-extern void endhostent (void) __THROW;
-extern struct hostent *gethostent (void) __THROW;
-extern struct hostent *gethostbyaddr (const void *__addr, socklen_t __len,
- int __type) __THROW;
-extern struct hostent *gethostbyname (const char *__name) __THROW;
-extern struct hostent *gethostbyname2 (const char *__name, int __af) __THROW;
-
-/* this glibc "invention" is so ugly, I'm going to throw up any minute
- * now */
-extern int gethostbyname_r(const char* NAME, struct hostent* RESULT_BUF,char* BUF,
- size_t BUFLEN, struct hostent** RESULT,
- int* H_ERRNOP) __THROW;
-
-#define HOST_NOT_FOUND 1
-#define TRY_AGAIN 2
-#define NO_RECOVERY 3
-#define NO_ADDRESS 4
-
-extern int gethostbyaddr_r(const char* addr, size_t length, int format,
- struct hostent* result, char *buf, size_t buflen,
- struct hostent **RESULT, int *h_errnop) __THROW;
-
-struct protoent {
- char *p_name; /* official protocol name */
- char **p_aliases; /* alias list */
- int p_proto; /* protocol number */
-};
-
-struct protoent *getprotoent(void) __THROW;
-struct protoent *getprotobyname(const char *name) __THROW;
-struct protoent *getprotobynumber(int proto) __THROW;
-void setprotoent(int stayopen) __THROW;
-void endprotoent(void) __THROW;
-
-
-/* Description of data base entry for a single network. NOTE: here a
- poor assumption is made. The network number is expected to fit
- into an unsigned long int variable. */
-struct netent
-{
- char *n_name; /* Official name of network. */
- char **n_aliases; /* Alias list. */
- int n_addrtype; /* Net address type. */
- uint32_t n_net; /* Network number. */
-};
-
-extern struct netent *getnetbyname (__const char *__name) __THROW;
-
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/netinet/in.h b/mdk-stage1/dietlibc/include/netinet/in.h
deleted file mode 100644
index 0569c8289..000000000
--- a/mdk-stage1/dietlibc/include/netinet/in.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef _NETINET_IN_H
-#define _NETINET_IN_H
-
-#include <linux/in.h>
-#include <linux/in6.h>
-
-#define IPPORT_RESERVED 1024
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/netinet/in_systm.h b/mdk-stage1/dietlibc/include/netinet/in_systm.h
deleted file mode 100644
index e69de29bb..000000000
--- a/mdk-stage1/dietlibc/include/netinet/in_systm.h
+++ /dev/null
diff --git a/mdk-stage1/dietlibc/include/netinet/ip.h b/mdk-stage1/dietlibc/include/netinet/ip.h
deleted file mode 100644
index 35bf9cc42..000000000
--- a/mdk-stage1/dietlibc/include/netinet/ip.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef _NETINET_IP_H
-#define _NETINET_IP_H
-
-#include <linux/ip.h>
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/paths.h b/mdk-stage1/dietlibc/include/paths.h
deleted file mode 100644
index 0e36bb10e..000000000
--- a/mdk-stage1/dietlibc/include/paths.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef _PATHS_H
-#define _PATHS_H
-
-#define _PATH_BSHELL "/bin/sh"
-#define _PATH_DEFPATH "/bin:/usr/bin:"
-
-#define _PATH_DEVNULL "/dev/null"
-
-#define _PATH_CONSOLE "/dev/console"
-#define _PATH_MOUNTED "/etc/mtab"
-
-#define _PATH_PASSWD "/etc/passwd"
-#define _PATH_GROUP "/etc/group"
-#define _PATH_SHADOW "/etc/shadow"
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/pthread.h b/mdk-stage1/dietlibc/include/pthread.h
deleted file mode 100644
index e922ab28b..000000000
--- a/mdk-stage1/dietlibc/include/pthread.h
+++ /dev/null
@@ -1,227 +0,0 @@
-#ifndef _PTHREAD_H
-#define _PTHREAD_H 1
-
-#include <sched.h>
-#include <signal.h>
-#include <setjmp.h>
-
-/* arg... kernel haeder... */
-#define ENOTSUP 524 /* Operation is not supported */
-
-#define PTHREAD_STACK_SIZE 16384
-
-#define PTHREAD_THREADS_MAX 128
-
-#define MAX_SPIN_COUNT 50
-#define SPIN_SLEEP_DURATION 2000001
-
-#define PTHREAD_KEYS_MAX 7
-#define PTHREAD_DESTRUCTOR_ITERATIONS 10
-
-typedef struct _pthread_descr_struct *_pthread_descr;
-typedef unsigned long int pthread_t;
-
-/* Fast locks */
-struct _pthread_fastlock {
- int __spinlock;
-};
-
-/* Mutexes */
-typedef struct {
- struct _pthread_fastlock lock;
- _pthread_descr owner;
- int kind;
- unsigned int count;
-} pthread_mutex_t;
-
-enum {
- PTHREAD_MUTEX_FAST_NP,
- PTHREAD_MUTEX_RECURSIVE_NP,
- PTHREAD_MUTEX_ERRORCHECK_NP,
-};
-
-enum
-{
- PTHREAD_PROCESS_PRIVATE,
-#define PTHREAD_PROCESS_PRIVATE PTHREAD_PROCESS_PRIVATE
- PTHREAD_PROCESS_SHARED
-#define PTHREAD_PROCESS_SHARED PTHREAD_PROCESS_SHARED
-};
-
-#define PTHREAD_MUTEX_INITIALIZER \
-{{0}, 0, PTHREAD_MUTEX_FAST_NP, 0}
-
-#define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \
-{{0}, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0}
-
-#define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \
-{{0}, 0, PTHREAD_MUTEX_ERRORCHECK_NP, 0}
-
-typedef struct {
- int __mutexkind;
-} pthread_mutexattr_t;
-
-int pthread_mutex_init(pthread_mutex_t *mutex,
- const pthread_mutexattr_t *mutexattr);
-int pthread_mutex_lock(pthread_mutex_t *mutex);
-int pthread_mutex_unlock(pthread_mutex_t *mutex);
-int pthread_mutex_trylock(pthread_mutex_t *mutex);
-int pthread_mutex_destroy(pthread_mutex_t *mutex);
-
-/* Conditions */
-typedef void* pthread_condattr_t;
-
-typedef struct {
- struct _pthread_fastlock lock;
- _pthread_descr wait_chain;
-} pthread_cond_t;
-
-#define PTHREAD_COND_INITIALIZER \
-{{0},0}
-
-int pthread_cond_init(pthread_cond_t *cond, pthread_condattr_t *cond_attr);
-int pthread_cond_destroy(pthread_cond_t *cond);
-int pthread_cond_signal(pthread_cond_t *cond);
-int pthread_cond_broadcast(pthread_cond_t *cond);
-int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex,
- const struct timespec *abstime);
-int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex);
-
-/* only for completeness (always return NULL) */
-int pthread_condattr_init(pthread_condattr_t *attr);
-int pthread_condattr_destroy(pthread_condattr_t *attr);
-int pthread_condattr_getpshared(const pthread_condattr_t *attr, int *pshared);
-int pthread_condattr_setpshared(pthread_condattr_t *attr, int pshared);
-
-/* thread specific variables */
-typedef unsigned int pthread_key_t;
-
-int pthread_key_create(pthread_key_t *key, void (*destructor)(const void*));
-int pthread_key_delete(pthread_key_t key);
-int pthread_setspecific(pthread_key_t key, const void *value);
-const void *pthread_getspecific(pthread_key_t key);
-
-
-/* Attributes for threads. */
-typedef struct
-{
- int __detachstate;
- int __schedpolicy;
- struct sched_param __schedparam;
- int __inheritsched;
- int __scope;
- void * __stackaddr;
- unsigned long __stacksize;
-} pthread_attr_t;
-
-enum
-{
- PTHREAD_CREATE_JOINABLE,
-#define PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_JOINABLE
- PTHREAD_CREATE_DETACHED
-#define PTHREAD_CREATE_DETACHED PTHREAD_CREATE_DETACHED
-};
-
-enum
-{
- PTHREAD_EXPLICIT_SCHED,
-#define PTHREAD_EXPLICIT_SCHED PTHREAD_EXPLICIT_SCHED
- PTHREAD_INHERIT_SCHED
-#define PTHREAD_INHERIT_SCHED PTHREAD_INHERIT_SCHED
-};
-
-enum /* for completeness */
-{
- PTHREAD_SCOPE_SYSTEM,
-#define PTHREAD_SCOPE_SYSTEM PTHREAD_SCOPE_SYSTEM
- PTHREAD_SCOPE_PROCESS
-#define PTHREAD_SCOPE_PROCESS PTHREAD_SCOPE_PROCESS
-};
-
-int pthread_attr_init(pthread_attr_t *attr);
-int pthread_attr_destroy(pthread_attr_t *attr);
-
-int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate);
-int pthread_attr_getdetachstate(const pthread_attr_t *attr, int *detachstate);
-
-int pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy);
-int pthread_attr_getschedpolicy(const pthread_attr_t *attr, int *policy);
-
-int pthread_attr_setschedparam(pthread_attr_t *attr,
- const struct sched_param *param);
-int pthread_attr_getschedparam(const pthread_attr_t *attr,
- struct sched_param *param);
-
-int pthread_attr_setinheritsched(pthread_attr_t *attr, int inherit);
-int pthread_attr_getinheritsched(const pthread_attr_t *attr, int *inherit);
-
-int pthread_attr_setscope(pthread_attr_t *attr, int scope);
-int pthread_attr_getscope(const pthread_attr_t *attr, int *scope);
-
-int pthread_attr_setstackaddr(pthread_attr_t *attr, void *stack);
-int pthread_attr_getstackaddr(pthread_attr_t *attr, void **stack);
-
-int pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize);
-int pthread_attr_getstacksize(pthread_attr_t *attr, size_t *stacksize);
-
-/* ONCE */
-typedef int pthread_once_t;
-#define PTHREAD_ONCE_INIT 0
-
-int __pthread_once(pthread_once_t* once_control, void (*init_routine)(void));
-int pthread_once(pthread_once_t* once_control, void (*init_routine)(void));
-
-/* CANCEL */
-
-enum {
- PTHREAD_CANCEL_ENABLE,
-#define PTHREAD_CANCEL_ENABLE PTHREAD_CANCEL_ENABLE
- PTHREAD_CANCEL_DISABLE,
-#define PTHREAD_CANCEL_DISABLE PTHREAD_CANCEL_DISABLE
-};
-
-enum {
- PTHREAD_CANCEL_ASYNCHRONOUS,
-#define PTHREAD_CANCEL_ASYNCHRONOUS PTHREAD_CANCEL_ASYNCHRONOUS
- PTHREAD_CANCEL_DEFERRED,
-#define PTHREAD_CANCEL_DEFERRED PTHREAD_CANCEL_DEFERRED
-};
-
-#define PTHREAD_CANCELED ((void *) -1)
-
-int pthread_cancel(pthread_t thread);
-int pthread_setcancelstate(int state, int *oldstate);
-
-int pthread_setcanceltype(int type, int *oldtype);
-
-void pthread_testcancel(void);
-
-/* CLEANUP */
-
-void pthread_cleanup_push(void (*routine)(void*), void *arg);
-void pthread_cleanup_pop (int execute);
-
-void pthread_cleanup_push_defer_np(void (*routine)(void *), void *arg);
-void pthread_cleanup_pop_restore_np(int execute);
-
-/* FORK */
-
-pid_t pthread_atfork(void (*prepare)(void), void (*parent)(void),
- void (*child)(void));
-
-/* THREADS */
-int pthread_create (pthread_t *__thread,
- const pthread_attr_t *__attr,
- void *(*__start_routine) (void *),
- void *__arg);
-
-void pthread_exit (void *__retval) __attribute__ ((__noreturn__));
-
-int pthread_join (pthread_t __th, void **__thread_return);
-
-int pthread_detach (pthread_t __th);
-
-pthread_t pthread_self (void);
-int pthread_equal (pthread_t __thread1, pthread_t __thread2);
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/pwd.h b/mdk-stage1/dietlibc/include/pwd.h
deleted file mode 100644
index e6fb5d0be..000000000
--- a/mdk-stage1/dietlibc/include/pwd.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef _PWD_H
-#define _PWD_H
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-
-struct passwd {
- char *pw_name; /* Username. */
- char *pw_passwd; /* Password. */
- uid_t pw_uid; /* User ID. */
- gid_t pw_gid; /* Group ID. */
- char *pw_gecos; /* Real name. */
- char *pw_dir; /* Home directory. */
- char *pw_shell; /* Shell program. */
-};
-
-extern struct passwd *getpwuid (uid_t __uid) __THROW;
-extern struct passwd *getpwnam (const char *__name) __THROW;
-
-extern struct passwd *getpwent(void) __THROW;
-extern void setpwent(void) __THROW;
-extern void endpwent(void) __THROW;
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/regex.h b/mdk-stage1/dietlibc/include/regex.h
deleted file mode 100644
index be609d9db..000000000
--- a/mdk-stage1/dietlibc/include/regex.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef _REGEX_H
-#define _REGEX_H
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-
-typedef ptrdiff_t regoff_t;
-
-typedef struct {
- regoff_t rm_so;
- regoff_t rm_eo;
-} regmatch_t;
-
-#define REG_EXTENDED 1
-#define REG_ICASE 2
-#define REG_NOSUB 4
-#define REG_NEWLINE 8
-
-#define REG_NOTBOL 1
-#define REG_NOTEOL 2
-
-#define REG_NOMATCH -1
-
-#define RE_DUP_MAX 255
-
-struct __regex_t;
-
-typedef int (*matcher)(void*,const char*,int ofs,struct __regex_t *t,int plus,int eflags);
-
-typedef struct __regex_t {
- struct regex {
- matcher m;
- void* next;
- int pieces;
- int num;
- struct branch *b;
- } r;
- int brackets,cflags;
- regmatch_t *l;
-} regex_t;
-
-int regcomp(regex_t *preg, const char *regex, int cflags) __THROW;
-int regexec(const regex_t *preg, const char *string, size_t nmatch, regmatch_t pmatch[], int eflags) __THROW;
-size_t regerror(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size) __THROW;
-void regfree(regex_t *preg) __THROW;
-
-enum __regex_errors {
- REG_NOERROR,
- REG_BADRPT, /* Invalid use of repetition operators such as using `*' as the first character. */
- REG_BADBR, /* Invalid use of back reference operator. */
- REG_EBRACE, /* Un-matched brace interval operators. */
- REG_EBRACK, /* Un-matched bracket list operators. */
- REG_ERANGE, /* Invalid use of the range operator, eg. the ending point of the
- range occurs prior to the starting point. */
- REG_ECTYPE, /* Unknown character class name. */
- REG_ECOLLATE, /* Invalid collating element. */
- REG_EPAREN, /* Un-matched parenthesis group operators. */
- REG_ESUBREG, /* Invalid back reference to a subexpression. */
- REG_EEND, /* Non specific error. This is not defined by POSIX.2. */
- REG_EESCAPE, /* Trailing backslash. */
- REG_BADPAT, /* Invalid use of pattern operators such as group or list. */
- REG_ESIZE, /* Compiled regular expression requires a pattern buffer
- larger than 64Kb. This is not defined by POSIX.2. */
- REG_ESPACE, /* regcomp ran out of space */
-};
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/resolv.h b/mdk-stage1/dietlibc/include/resolv.h
deleted file mode 100644
index 4e90799c2..000000000
--- a/mdk-stage1/dietlibc/include/resolv.h
+++ /dev/null
@@ -1 +0,0 @@
-void res_init(void);
diff --git a/mdk-stage1/dietlibc/include/rpc/auth.h b/mdk-stage1/dietlibc/include/rpc/auth.h
deleted file mode 100644
index 4aa7d21ce..000000000
--- a/mdk-stage1/dietlibc/include/rpc/auth.h
+++ /dev/null
@@ -1,213 +0,0 @@
-/* @(#)auth.h 2.3 88/08/07 4.0 RPCSRC; from 1.17 88/02/08 SMI */
-/*
- * 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.
- *
- * 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
- */
-
-/*
- * auth.h, Authentication interface.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * The data structures are completely opaque to the client. The client
- * is required to pass a AUTH * to routines that create rpc
- * "sessions".
- */
-
-#ifndef _RPC_AUTH_H
-
-#define _RPC_AUTH_H 1
-#include <sys/cdefs.h>
-#include <rpc/xdr.h>
-
-__BEGIN_DECLS
-
-#define MAX_AUTH_BYTES 400
-#define MAXNETNAMELEN 255 /* maximum length of network user's name */
-
-/*
- * Status returned from authentication check
- */
-enum auth_stat {
- AUTH_OK=0,
- /*
- * failed at remote end
- */
- AUTH_BADCRED=1, /* bogus credentials (seal broken) */
- AUTH_REJECTEDCRED=2, /* client should begin new session */
- AUTH_BADVERF=3, /* bogus verifier (seal broken) */
- AUTH_REJECTEDVERF=4, /* verifier expired or was replayed */
- AUTH_TOOWEAK=5, /* rejected due to security reasons */
- /*
- * failed locally
- */
- AUTH_INVALIDRESP=6, /* bogus response verifier */
- AUTH_FAILED=7 /* some unknown reason */
-};
-
-union des_block {
- struct {
- u_int32_t high;
- u_int32_t low;
- } key;
- char c[8];
-};
-typedef union des_block des_block;
-extern bool_t xdr_des_block (XDR *__xdrs, des_block *__blkp) __THROW;
-
-/*
- * Authentication info. Opaque to client.
- */
-struct opaque_auth {
- enum_t oa_flavor; /* flavor of auth */
- caddr_t oa_base; /* address of more auth stuff */
- u_int oa_length; /* not to exceed MAX_AUTH_BYTES */
-};
-
-/*
- * Auth handle, interface to client side authenticators.
- */
-typedef struct AUTH AUTH;
-struct AUTH {
- struct opaque_auth ah_cred;
- struct opaque_auth ah_verf;
- union des_block ah_key;
- struct auth_ops {
- void (*ah_nextverf) (AUTH *);
- int (*ah_marshal) (AUTH *, XDR *); /* nextverf & serialize */
- int (*ah_validate) (AUTH *, struct opaque_auth *);
- /* validate verifier */
- int (*ah_refresh) (AUTH *); /* refresh credentials */
- void (*ah_destroy) (AUTH *); /* destroy this structure */
- } *ah_ops;
- caddr_t ah_private;
-};
-
-
-/*
- * Authentication ops.
- * The ops and the auth handle provide the interface to the authenticators.
- *
- * AUTH *auth;
- * XDR *xdrs;
- * struct opaque_auth verf;
- */
-#define AUTH_NEXTVERF(auth) \
- ((*((auth)->ah_ops->ah_nextverf))(auth))
-#define auth_nextverf(auth) \
- ((*((auth)->ah_ops->ah_nextverf))(auth))
-
-#define AUTH_MARSHALL(auth, xdrs) \
- ((*((auth)->ah_ops->ah_marshal))(auth, xdrs))
-#define auth_marshall(auth, xdrs) \
- ((*((auth)->ah_ops->ah_marshal))(auth, xdrs))
-
-#define AUTH_VALIDATE(auth, verfp) \
- ((*((auth)->ah_ops->ah_validate))((auth), verfp))
-#define auth_validate(auth, verfp) \
- ((*((auth)->ah_ops->ah_validate))((auth), verfp))
-
-#define AUTH_REFRESH(auth) \
- ((*((auth)->ah_ops->ah_refresh))(auth))
-#define auth_refresh(auth) \
- ((*((auth)->ah_ops->ah_refresh))(auth))
-
-#define AUTH_DESTROY(auth) \
- ((*((auth)->ah_ops->ah_destroy))(auth))
-#define auth_destroy(auth) \
- ((*((auth)->ah_ops->ah_destroy))(auth))
-
-
-extern struct opaque_auth _null_auth;
-
-
-/*
- * These are the various implementations of client side authenticators.
- */
-
-/*
- * Unix style authentication
- * AUTH *authunix_create(machname, uid, gid, len, aup_gids)
- * char *machname;
- * int uid;
- * int gid;
- * int len;
- * int *aup_gids;
- */
-extern AUTH *authunix_create (char *__machname,uid_t __uid, gid_t __gid,
- int __len, gid_t *__aup_gids) __THROW;
-extern AUTH *authunix_create_default (void) __THROW;
-extern AUTH *authnone_create (void) __THROW;
-extern AUTH *authdes_create (const char *__servername, u_int __window,
- struct sockaddr *__syncaddr, des_block *__ckey)
- __THROW;
-extern AUTH *authdes_pk_create (const char *, netobj *, u_int,
- struct sockaddr *, des_block *) __THROW;
-
-
-#define AUTH_NONE 0 /* no authentication */
-#define AUTH_NULL 0 /* backward compatibility */
-#define AUTH_SYS 1 /* unix style (uid, gids) */
-#define AUTH_UNIX AUTH_SYS
-#define AUTH_SHORT 2 /* short hand unix style */
-#define AUTH_DES 3 /* des style (encrypted timestamps) */
-#define AUTH_DH AUTH_DES /* Diffie-Hellman (this is DES) */
-#define AUTH_KERB 4 /* kerberos style */
-
-/*
- * Netname manipulating functions
- *
- */
-extern int getnetname (char *) __THROW;
-extern int host2netname (char *, __const char *, __const char *) __THROW;
-extern int user2netname (char *, __const uid_t, __const char *) __THROW;
-extern int netname2user (__const char *, uid_t *, gid_t *, int *, gid_t *)
- __THROW;
-extern int netname2host (__const char *, char *, __const int) __THROW;
-
-/*
- *
- * These routines interface to the keyserv daemon
- *
- */
-extern int key_decryptsession (char *, des_block *) __THROW;
-extern int key_decryptsession_pk (char *, netobj *, des_block *) __THROW;
-extern int key_encryptsession (char *, des_block *) __THROW;
-extern int key_encryptsession_pk (char *, netobj *, des_block *) __THROW;
-extern int key_gendes (des_block *) __THROW;
-extern int key_setsecret (char *) __THROW;
-extern int key_secretkey_is_set (void) __THROW;
-extern int key_get_conv (char *, des_block *) __THROW;
-
-/*
- * XDR an opaque authentication struct.
- */
-extern bool_t xdr_opaque_auth (XDR *, struct opaque_auth *) __THROW;
-
-__END_DECLS
-
-#endif /* rpc/auth.h */
diff --git a/mdk-stage1/dietlibc/include/rpc/auth_des.h b/mdk-stage1/dietlibc/include/rpc/auth_des.h
deleted file mode 100644
index 198b299e7..000000000
--- a/mdk-stage1/dietlibc/include/rpc/auth_des.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The GNU C 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-
-#ifndef _RPC_AUTH_DES_H
-#define _RPC_AUTH_DES_H 1
-
-#include <sys/cdefs.h>
-#include <rpc/auth.h>
-
-__BEGIN_DECLS
-
-/* There are two kinds of "names": fullnames and nicknames */
-enum authdes_namekind
- {
- ADN_FULLNAME,
- ADN_NICKNAME
- };
-
-/* A fullname contains the network name of the client,
- a conversation key and the window */
-struct authdes_fullname
- {
- char *name; /* network name of client, up to MAXNETNAMELEN */
- des_block key; /* conversation key */
- uint32_t window; /* associated window */
- };
-
-/* A credential */
-struct authdes_cred
- {
- enum authdes_namekind adc_namekind;
- struct authdes_fullname adc_fullname;
- uint32_t adc_nickname;
- };
-
-/* A timeval replacement for !32bit platforms */
-struct rpc_timeval
- {
- uint32_t tv_sec; /* Seconds. */
- uint32_t tv_usec; /* Microseconds. */
- };
-
-/* A des authentication verifier */
-struct authdes_verf
- {
- union
- {
- struct rpc_timeval adv_ctime; /* clear time */
- des_block adv_xtime; /* crypt time */
- }
- adv_time_u;
- uint32_t adv_int_u;
- };
-
-/* des authentication verifier: client variety
-
- adv_timestamp is the current time.
- adv_winverf is the credential window + 1.
- Both are encrypted using the conversation key. */
-#define adv_timestamp adv_time_u.adv_ctime
-#define adv_xtimestamp adv_time_u.adv_xtime
-#define adv_winverf adv_int_u
-
-/* des authentication verifier: server variety
-
- adv_timeverf is the client's timestamp + client's window
- adv_nickname is the server's nickname for the client.
- adv_timeverf is encrypted using the conversation key. */
-#define adv_timeverf adv_time_u.adv_ctime
-#define adv_xtimeverf adv_time_u.adv_xtime
-#define adv_nickname adv_int_u
-
-/* Map a des credential into a unix cred. */
-extern int authdes_getucred (__const struct authdes_cred * __adc,
- uid_t * __uid, gid_t * __gid,
- short *__grouplen, gid_t * __groups) __THROW;
-
-/* Get the public key for NAME and place it in KEY. NAME can only be
- up to MAXNETNAMELEN bytes long and the destination buffer KEY should
- have HEXKEYBYTES + 1 bytes long to fit all characters from the key. */
-extern int getpublickey (__const char *__name, char *__key) __THROW;
-
-/* Get the secret key for NAME and place it in KEY. PASSWD is used to
- decrypt the encrypted key stored in the database. NAME can only be
- up to MAXNETNAMELEN bytes long and the destination buffer KEY
- should have HEXKEYBYTES + 1 bytes long to fit all characters from
- the key. */
-extern int getsecretkey (__const char *__name, char *__key,
- __const char *__passwd) __THROW;
-
-extern int rtime (struct sockaddr_in *__addrp, struct rpc_timeval *__timep,
- struct rpc_timeval *__timeout) __THROW;
-
-__END_DECLS
-
-
-#endif /* rpc/auth_des.h */
diff --git a/mdk-stage1/dietlibc/include/rpc/auth_unix.h b/mdk-stage1/dietlibc/include/rpc/auth_unix.h
deleted file mode 100644
index 7a1bfa9f0..000000000
--- a/mdk-stage1/dietlibc/include/rpc/auth_unix.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/* @(#)auth_unix.h 2.2 88/07/29 4.0 RPCSRC; from 1.8 88/02/08 SMI */
-/*
- * 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.
- *
- * 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
- */
-/* @(#)auth_unix.h 1.5 86/07/16 SMI */
-
-/*
- * auth_unix.h, Protocol for UNIX style authentication parameters for RPC
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-/*
- * The system is very weak. The client uses no encryption for it
- * credentials and only sends null verifiers. The server sends backs
- * null verifiers or optionally a verifier that suggests a new short hand
- * for the credentials.
- */
-
-#ifndef _RPC_AUTH_UNIX_H
-#define _RPC_AUTH_UNIX_H 1
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <rpc/types.h>
-#include <rpc/auth.h>
-#include <rpc/xdr.h>
-
-__BEGIN_DECLS
-
-/* The machine name is part of a credential; it may not exceed 255 bytes */
-#define MAX_MACHINE_NAME 255
-
-/* gids compose part of a credential; there may not be more than 16 of them */
-#define NGRPS 16
-
-/*
- * Unix style credentials.
- */
-struct authunix_parms
- {
- u_long aup_time;
- char *aup_machname;
- uid_t aup_uid;
- gid_t aup_gid;
- u_int aup_len;
- gid_t *aup_gids;
- };
-
-extern bool_t xdr_authunix_parms (XDR *__xdrs, struct authunix_parms *__p)
- __THROW;
-
-/*
- * If a response verifier has flavor AUTH_SHORT,
- * then the body of the response verifier encapsulates the following structure;
- * again it is serialized in the obvious fashion.
- */
-struct short_hand_verf
- {
- struct opaque_auth new_cred;
- };
-
-__END_DECLS
-
-#endif /* rpc/auth_unix.h */
diff --git a/mdk-stage1/dietlibc/include/rpc/clnt.h b/mdk-stage1/dietlibc/include/rpc/clnt.h
deleted file mode 100644
index 60b0fafdf..000000000
--- a/mdk-stage1/dietlibc/include/rpc/clnt.h
+++ /dev/null
@@ -1,421 +0,0 @@
-/* @(#)clnt.h 2.1 88/07/29 4.0 RPCSRC; from 1.31 88/02/08 SMI*/
-/*
- * 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.
- *
- * 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
- */
-
-/*
- * clnt.h - Client side remote procedure call interface.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#ifndef _RPC_CLNT_H
-#define _RPC_CLNT_H 1
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <rpc/types.h>
-#include <rpc/auth.h>
-#include <sys/un.h>
-
-__BEGIN_DECLS
-
-/*
- * Rpc calls return an enum clnt_stat. This should be looked at more,
- * since each implementation is required to live with this (implementation
- * independent) list of errors.
- */
-enum clnt_stat {
- RPC_SUCCESS=0, /* call succeeded */
- /*
- * local errors
- */
- RPC_CANTENCODEARGS=1, /* can't encode arguments */
- RPC_CANTDECODERES=2, /* can't decode results */
- RPC_CANTSEND=3, /* failure in sending call */
- RPC_CANTRECV=4, /* failure in receiving result */
- RPC_TIMEDOUT=5, /* call timed out */
- /*
- * remote errors
- */
- RPC_VERSMISMATCH=6, /* rpc versions not compatible */
- RPC_AUTHERROR=7, /* authentication error */
- RPC_PROGUNAVAIL=8, /* program not available */
- RPC_PROGVERSMISMATCH=9, /* program version mismatched */
- RPC_PROCUNAVAIL=10, /* procedure unavailable */
- RPC_CANTDECODEARGS=11, /* decode arguments error */
- RPC_SYSTEMERROR=12, /* generic "other problem" */
- RPC_NOBROADCAST = 21, /* Broadcasting not supported */
- /*
- * callrpc & clnt_create errors
- */
- RPC_UNKNOWNHOST=13, /* unknown host name */
- RPC_UNKNOWNPROTO=17, /* unknown protocol */
- RPC_UNKNOWNADDR = 19, /* Remote address unknown */
-
- /*
- * rpcbind errors
- */
- RPC_RPCBFAILURE=14, /* portmapper failed in its call */
-#define RPC_PMAPFAILURE RPC_RPCBFAILURE
- RPC_PROGNOTREGISTERED=15, /* remote program is not registered */
- RPC_N2AXLATEFAILURE = 22, /* Name to addr translation failed */
- /*
- * unspecified error
- */
- RPC_FAILED=16,
- RPC_INTR=18,
- RPC_TLIERROR=20,
- RPC_UDERROR=23,
- /*
- * asynchronous errors
- */
- RPC_INPROGRESS = 24,
- RPC_STALERACHANDLE = 25
-};
-
-
-/*
- * Error info.
- */
-struct rpc_err {
- enum clnt_stat re_status;
- union {
- int RE_errno; /* related system error */
- enum auth_stat RE_why; /* why the auth error occurred */
- struct {
- u_long low; /* lowest verion supported */
- u_long high; /* highest verion supported */
- } RE_vers;
- struct { /* maybe meaningful if RPC_FAILED */
- long s1;
- long s2;
- } RE_lb; /* life boot & debugging only */
- } ru;
-#define re_errno ru.RE_errno
-#define re_why ru.RE_why
-#define re_vers ru.RE_vers
-#define re_lb ru.RE_lb
-};
-
-
-/*
- * Client rpc handle.
- * Created by individual implementations, see e.g. rpc_udp.c.
- * Client is responsible for initializing auth, see e.g. auth_none.c.
- */
-typedef struct CLIENT CLIENT;
-struct CLIENT {
- AUTH *cl_auth; /* authenticator */
- struct clnt_ops {
- enum clnt_stat (*cl_call) (CLIENT *, u_long, xdrproc_t, caddr_t, xdrproc_t,
- caddr_t, struct timeval);
- /* call remote procedure */
- void (*cl_abort) (void); /* abort a call */
- void (*cl_geterr) (CLIENT *, struct rpc_err *);
- /* get specific error code */
- bool_t (*cl_freeres) (CLIENT *, xdrproc_t, caddr_t);
- /* frees results */
- void (*cl_destroy) (CLIENT *); /* destroy this structure */
- bool_t (*cl_control) (CLIENT *, int, char *);
- /* the ioctl() of rpc */
- } *cl_ops;
- caddr_t cl_private; /* private stuff */
-};
-
-
-/*
- * client side rpc interface ops
- *
- * Parameter types are:
- *
- */
-
-/*
- * enum clnt_stat
- * CLNT_CALL(rh, proc, xargs, argsp, xres, resp, timeout)
- * CLIENT *rh;
- * u_long proc;
- * xdrproc_t xargs;
- * caddr_t argsp;
- * xdrproc_t xres;
- * caddr_t resp;
- * struct timeval timeout;
- */
-#define CLNT_CALL(rh, proc, xargs, argsp, xres, resp, secs) \
- ((*(rh)->cl_ops->cl_call)(rh, proc, xargs, argsp, xres, resp, secs))
-#define clnt_call(rh, proc, xargs, argsp, xres, resp, secs) \
- ((*(rh)->cl_ops->cl_call)(rh, proc, xargs, argsp, xres, resp, secs))
-
-/*
- * void
- * CLNT_ABORT(rh);
- * CLIENT *rh;
- */
-#define CLNT_ABORT(rh) ((*(rh)->cl_ops->cl_abort)(rh))
-#define clnt_abort(rh) ((*(rh)->cl_ops->cl_abort)(rh))
-
-/*
- * struct rpc_err
- * CLNT_GETERR(rh);
- * CLIENT *rh;
- */
-#define CLNT_GETERR(rh,errp) ((*(rh)->cl_ops->cl_geterr)(rh, errp))
-#define clnt_geterr(rh,errp) ((*(rh)->cl_ops->cl_geterr)(rh, errp))
-
-
-/*
- * bool_t
- * CLNT_FREERES(rh, xres, resp);
- * CLIENT *rh;
- * xdrproc_t xres;
- * caddr_t resp;
- */
-#define CLNT_FREERES(rh,xres,resp) ((*(rh)->cl_ops->cl_freeres)(rh,xres,resp))
-#define clnt_freeres(rh,xres,resp) ((*(rh)->cl_ops->cl_freeres)(rh,xres,resp))
-
-/*
- * bool_t
- * CLNT_CONTROL(cl, request, info)
- * CLIENT *cl;
- * u_int request;
- * char *info;
- */
-#define CLNT_CONTROL(cl,rq,in) ((*(cl)->cl_ops->cl_control)(cl,rq,in))
-#define clnt_control(cl,rq,in) ((*(cl)->cl_ops->cl_control)(cl,rq,in))
-
-/*
- * control operations that apply to all transports
- *
- * Note: options marked XXX are no-ops in this implementation of RPC.
- * The are present in TI-RPC but can't be implemented here since they
- * depend on the presence of STREAMS/TLI, which we don't have.
- */
-#define CLSET_TIMEOUT 1 /* set timeout (timeval) */
-#define CLGET_TIMEOUT 2 /* get timeout (timeval) */
-#define CLGET_SERVER_ADDR 3 /* get server's address (sockaddr) */
-#define CLGET_FD 6 /* get connections file descriptor */
-#define CLGET_SVC_ADDR 7 /* get server's address (netbuf) XXX */
-#define CLSET_FD_CLOSE 8 /* close fd while clnt_destroy */
-#define CLSET_FD_NCLOSE 9 /* Do not close fd while clnt_destroy*/
-#define CLGET_XID 10 /* Get xid */
-#define CLSET_XID 11 /* Set xid */
-#define CLGET_VERS 12 /* Get version number */
-#define CLSET_VERS 13 /* Set version number */
-#define CLGET_PROG 14 /* Get program number */
-#define CLSET_PROG 15 /* Set program number */
-#define CLSET_SVC_ADDR 16 /* get server's address (netbuf) XXX */
-#define CLSET_PUSH_TIMOD 17 /* push timod if not already present XXX */
-#define CLSET_POP_TIMOD 18 /* pop timod XXX */
-/*
- * Connectionless only control operations
- */
-#define CLSET_RETRY_TIMEOUT 4 /* set retry timeout (timeval) */
-#define CLGET_RETRY_TIMEOUT 5 /* get retry timeout (timeval) */
-
-/*
- * void
- * CLNT_DESTROY(rh);
- * CLIENT *rh;
- */
-#define CLNT_DESTROY(rh) ((*(rh)->cl_ops->cl_destroy)(rh))
-#define clnt_destroy(rh) ((*(rh)->cl_ops->cl_destroy)(rh))
-
-
-/*
- * RPCTEST is a test program which is accessible on every rpc
- * transport/port. It is used for testing, performance evaluation,
- * and network administration.
- */
-
-#define RPCTEST_PROGRAM ((u_long)1)
-#define RPCTEST_VERSION ((u_long)1)
-#define RPCTEST_NULL_PROC ((u_long)2)
-#define RPCTEST_NULL_BATCH_PROC ((u_long)3)
-
-/*
- * By convention, procedure 0 takes null arguments and returns them
- */
-
-#define NULLPROC ((u_long)0)
-
-/*
- * Below are the client handle creation routines for the various
- * implementations of client side rpc. They can return NULL if a
- * creation failure occurs.
- */
-
-/*
- * Memory based rpc (for speed check and testing)
- * CLIENT *
- * clntraw_create(prog, vers)
- * u_long prog;
- * u_long vers;
- */
-extern CLIENT *clntraw_create (__const u_long __prog, __const u_long __vers)
- __THROW;
-
-
-/*
- * Generic client creation routine. Supported protocols are "udp", "tcp" and
- * "unix"
- * CLIENT *
- * clnt_create(host, prog, vers, prot)
- * char *host; -- hostname
- * u_long prog; -- program number
- * u_ong vers; -- version number
- * char *prot; -- protocol
- */
-extern CLIENT *clnt_create (__const char *__host, __const u_long __prog,
- __const u_long __vers, __const char *__prot)
- __THROW;
-
-
-/*
- * TCP based rpc
- * CLIENT *
- * clnttcp_create(raddr, prog, vers, sockp, sendsz, recvsz)
- * struct sockaddr_in *raddr;
- * u_long prog;
- * u_long version;
- * register int *sockp;
- * u_int sendsz;
- * u_int recvsz;
- */
-extern CLIENT *clnttcp_create (struct sockaddr_in *__raddr, u_long __prog,
- u_long __version, int *__sockp, u_int __sendsz,
- u_int __recvsz) __THROW;
-
-/*
- * UDP based rpc.
- * CLIENT *
- * clntudp_create(raddr, program, version, wait, sockp)
- * struct sockaddr_in *raddr;
- * u_long program;
- * u_long version;
- * struct timeval wait_resend;
- * int *sockp;
- *
- * Same as above, but you specify max packet sizes.
- * CLIENT *
- * clntudp_bufcreate(raddr, program, version, wait, sockp, sendsz, recvsz)
- * struct sockaddr_in *raddr;
- * u_long program;
- * u_long version;
- * struct timeval wait_resend;
- * int *sockp;
- * u_int sendsz;
- * u_int recvsz;
- */
-extern CLIENT *clntudp_create (struct sockaddr_in *__raddr, u_long __program,
- u_long __version, struct timeval __wait_resend,
- int *__sockp) __THROW;
-extern CLIENT *clntudp_bufcreate (struct sockaddr_in *__raddr,
- u_long __program, u_long __version,
- struct timeval __wait_resend, int *__sockp,
- u_int __sendsz, u_int __recvsz) __THROW;
-
-
-
-
-/*
- * AF_UNIX based rpc
- * CLIENT *
- * clntunix_create(raddr, prog, vers, sockp, sendsz, recvsz)
- * struct sockaddr_un *raddr;
- * u_long prog;
- * u_long version;
- * register int *sockp;
- * u_int sendsz;
- * u_int recvsz;
- */
-extern CLIENT *clntunix_create (struct sockaddr_un *__raddr, u_long __program,
- u_long __version, int *__sockp,
- u_int __sendsz, u_int __recvsz) __THROW;
-
-
-extern int callrpc (__const char *__host, __const u_long __prognum,
- __const u_long __versnum, __const u_long __procnum,
- __const xdrproc_t __inproc, __const char *__in,
- __const xdrproc_t __outproc, char *__out) __THROW;
-extern int _rpc_dtablesize (void) __THROW;
-
-/*
- * Print why creation failed
- */
-extern void clnt_pcreateerror (__const char *__msg) __THROW; /* stderr */
-extern char *clnt_spcreateerror(__const char *__msg) __THROW; /* string */
-
-/*
- * Like clnt_perror(), but is more verbose in its output
- */
-extern void clnt_perrno (enum clnt_stat __num) __THROW; /* stderr */
-
-/*
- * Print an English error message, given the client error code
- */
-extern void clnt_perror (CLIENT *__clnt, __const char *__msg) __THROW;
- /* stderr */
-extern char *clnt_sperror (CLIENT *__clnt, __const char *__msg) __THROW;
- /* string */
-
-/*
- * If a creation fails, the following allows the user to figure out why.
- */
-struct rpc_createerr {
- enum clnt_stat cf_stat;
- struct rpc_err cf_error; /* useful when cf_stat == RPC_PMAPFAILURE */
-};
-
-extern struct rpc_createerr rpc_createerr;
-
-
-
-/*
- * Copy error message to buffer.
- */
-extern char *clnt_sperrno (enum clnt_stat __num) __THROW; /* string */
-
-/*
- * get the port number on the host for the rpc program,version and proto
- */
-extern int getrpcport (__const char * __host, u_long __prognum,
- u_long __versnum, u_int proto) __THROW;
-
-/*
- * get the local host's IP address without consulting
- * name service library functions
- */
-extern void get_myaddress (struct sockaddr_in *) __THROW;
-
-#define UDPMSGSIZE 8800 /* rpc imposed limit on udp msg size */
-#define RPCSMALLMSGSIZE 400 /* a more reasonable packet size */
-
-__END_DECLS
-
-#endif /* rpc/clnt.h */
diff --git a/mdk-stage1/dietlibc/include/rpc/des_crypt.h b/mdk-stage1/dietlibc/include/rpc/des_crypt.h
deleted file mode 100644
index 6a65887d3..000000000
--- a/mdk-stage1/dietlibc/include/rpc/des_crypt.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * @(#)des_crypt.h 2.1 88/08/11 4.0 RPCSRC; from 1.4 88/02/08 (C) 1986 SMI
- *
- * des_crypt.h, des library routine interface
- * Copyright (C) 1986, Sun Microsystems, Inc.
- */
-/*
- * 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.
- *
- * 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
- */
-
-#ifndef __DES_CRYPT_H__
-#define __DES_CRYPT_H__ 1
-
-#include <features.h>
-
-__BEGIN_DECLS
-
-#define DES_MAXDATA 8192 /* max bytes encrypted in one call */
-#define DES_DIRMASK (1 << 0)
-#define DES_ENCRYPT (0*DES_DIRMASK) /* Encrypt */
-#define DES_DECRYPT (1*DES_DIRMASK) /* Decrypt */
-
-
-#define DES_DEVMASK (1 << 1)
-#define DES_HW (0*DES_DEVMASK) /* Use hardware device */
-#define DES_SW (1*DES_DEVMASK) /* Use software device */
-
-
-#define DESERR_NONE 0 /* succeeded */
-#define DESERR_NOHWDEVICE 1 /* succeeded, but hw device not available */
-#define DESERR_HWERROR 2 /* failed, hardware/driver error */
-#define DESERR_BADPARAM 3 /* failed, bad parameter to call */
-
-#define DES_FAILED(err) \
- ((err) > DESERR_NOHWDEVICE)
-
-/*
- * cbc_crypt()
- * ecb_crypt()
- *
- * Encrypt (or decrypt) len bytes of a buffer buf.
- * The length must be a multiple of eight.
- * The key should have odd parity in the low bit of each byte.
- * ivec is the input vector, and is updated to the new one (cbc only).
- * The mode is created by oring together the appropriate parameters.
- * DESERR_NOHWDEVICE is returned if DES_HW was specified but
- * there was no hardware to do it on (the data will still be
- * encrypted though, in software).
- */
-
-
-/*
- * Cipher Block Chaining mode
- */
-extern int cbc_crypt (char *__key, char *__buf, unsigned __len,
- unsigned __mode, char *__ivec) __THROW;
-
-/*
- * Electronic Code Book mode
- */
-extern int ecb_crypt (char *__key, char *__buf, unsigned __len,
- unsigned __mode) __THROW;
-
-/*
- * Set des parity for a key.
- * DES parity is odd and in the low bit of each byte
- */
-extern void des_setparity (char *__key) __THROW;
-
-__END_DECLS
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/rpc/key_prot.h b/mdk-stage1/dietlibc/include/rpc/key_prot.h
deleted file mode 100644
index 3e2eb7208..000000000
--- a/mdk-stage1/dietlibc/include/rpc/key_prot.h
+++ /dev/null
@@ -1,346 +0,0 @@
-/*
- * Please do not edit this file.
- * It was generated using rpcgen.
- */
-
-#ifndef _KEY_PROT_H_RPCGEN
-#define _KEY_PROT_H_RPCGEN
-
-#include <rpc/rpc.h>
-
-/*
- * 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.
- *
- * 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
- */
-#if 0
-#pragma ident "@(#)key_prot.x 1.7 94/04/29 SMI"
-#endif
-/* Copyright (c) 1990, 1991 Sun Microsystems, Inc. */
-
-/*
- * Compiled from key_prot.x using rpcgen.
- * DO NOT EDIT THIS FILE!
- * This is NOT source code!
- */
-#define PROOT 3
-#define HEXMODULUS "d4a0ba0250b6fd2ec626e7efd637df76c716e22d0944b88b"
-#define HEXKEYBYTES 48
-#define KEYSIZE 192
-#define KEYBYTES 24
-#define KEYCHECKSUMSIZE 16
-
-enum keystatus {
- KEY_SUCCESS = 0,
- KEY_NOSECRET = 1,
- KEY_UNKNOWN = 2,
- KEY_SYSTEMERR = 3,
-};
-typedef enum keystatus keystatus;
-#ifdef __cplusplus
-extern "C" bool_t xdr_keystatus(XDR *, keystatus*);
-#elif __STDC__
-extern bool_t xdr_keystatus(XDR *, keystatus*);
-#else /* Old Style C */
-bool_t xdr_keystatus();
-#endif /* Old Style C */
-
-
-typedef char keybuf[HEXKEYBYTES];
-#ifdef __cplusplus
-extern "C" bool_t xdr_keybuf(XDR *, keybuf);
-#elif __STDC__
-extern bool_t xdr_keybuf(XDR *, keybuf);
-#else /* Old Style C */
-bool_t xdr_keybuf();
-#endif /* Old Style C */
-
-
-typedef char *netnamestr;
-#ifdef __cplusplus
-extern "C" bool_t xdr_netnamestr(XDR *, netnamestr*);
-#elif __STDC__
-extern bool_t xdr_netnamestr(XDR *, netnamestr*);
-#else /* Old Style C */
-bool_t xdr_netnamestr();
-#endif /* Old Style C */
-
-
-struct cryptkeyarg {
- netnamestr remotename;
- des_block deskey;
-};
-typedef struct cryptkeyarg cryptkeyarg;
-#ifdef __cplusplus
-extern "C" bool_t xdr_cryptkeyarg(XDR *, cryptkeyarg*);
-#elif __STDC__
-extern bool_t xdr_cryptkeyarg(XDR *, cryptkeyarg*);
-#else /* Old Style C */
-bool_t xdr_cryptkeyarg();
-#endif /* Old Style C */
-
-
-struct cryptkeyarg2 {
- netnamestr remotename;
- netobj remotekey;
- des_block deskey;
-};
-typedef struct cryptkeyarg2 cryptkeyarg2;
-#ifdef __cplusplus
-extern "C" bool_t xdr_cryptkeyarg2(XDR *, cryptkeyarg2*);
-#elif __STDC__
-extern bool_t xdr_cryptkeyarg2(XDR *, cryptkeyarg2*);
-#else /* Old Style C */
-bool_t xdr_cryptkeyarg2();
-#endif /* Old Style C */
-
-
-struct cryptkeyres {
- keystatus status;
- union {
- des_block deskey;
- } cryptkeyres_u;
-};
-typedef struct cryptkeyres cryptkeyres;
-#ifdef __cplusplus
-extern "C" bool_t xdr_cryptkeyres(XDR *, cryptkeyres*);
-#elif __STDC__
-extern bool_t xdr_cryptkeyres(XDR *, cryptkeyres*);
-#else /* Old Style C */
-bool_t xdr_cryptkeyres();
-#endif /* Old Style C */
-
-#define MAXGIDS 16
-
-struct unixcred {
- u_int uid;
- u_int gid;
- struct {
- u_int gids_len;
- u_int *gids_val;
- } gids;
-};
-typedef struct unixcred unixcred;
-#ifdef __cplusplus
-extern "C" bool_t xdr_unixcred(XDR *, unixcred*);
-#elif __STDC__
-extern bool_t xdr_unixcred(XDR *, unixcred*);
-#else /* Old Style C */
-bool_t xdr_unixcred();
-#endif /* Old Style C */
-
-
-struct getcredres {
- keystatus status;
- union {
- unixcred cred;
- } getcredres_u;
-};
-typedef struct getcredres getcredres;
-#ifdef __cplusplus
-extern "C" bool_t xdr_getcredres(XDR *, getcredres*);
-#elif __STDC__
-extern bool_t xdr_getcredres(XDR *, getcredres*);
-#else /* Old Style C */
-bool_t xdr_getcredres();
-#endif /* Old Style C */
-
-
-struct key_netstarg {
- keybuf st_priv_key;
- keybuf st_pub_key;
- netnamestr st_netname;
-};
-typedef struct key_netstarg key_netstarg;
-#ifdef __cplusplus
-extern "C" bool_t xdr_key_netstarg(XDR *, key_netstarg*);
-#elif __STDC__
-extern bool_t xdr_key_netstarg(XDR *, key_netstarg*);
-#else /* Old Style C */
-bool_t xdr_key_netstarg();
-#endif /* Old Style C */
-
-
-struct key_netstres {
- keystatus status;
- union {
- key_netstarg knet;
- } key_netstres_u;
-};
-typedef struct key_netstres key_netstres;
-#ifdef __cplusplus
-extern "C" bool_t xdr_key_netstres(XDR *, key_netstres*);
-#elif __STDC__
-extern bool_t xdr_key_netstres(XDR *, key_netstres*);
-#else /* Old Style C */
-bool_t xdr_key_netstres();
-#endif /* Old Style C */
-
-
-#ifndef opaque
-#define opaque char
-#endif
-
-
-#define KEY_PROG ((u_long)100029)
-#define KEY_VERS ((u_long)1)
-
-#ifdef __cplusplus
-#define KEY_SET ((u_long)1)
-extern "C" keystatus * key_set_1(opaque *, CLIENT *);
-extern "C" keystatus * key_set_1_svc(opaque *, struct svc_req *);
-#define KEY_ENCRYPT ((u_long)2)
-extern "C" cryptkeyres * key_encrypt_1(cryptkeyarg *, CLIENT *);
-extern "C" cryptkeyres * key_encrypt_1_svc(cryptkeyarg *, struct svc_req *);
-#define KEY_DECRYPT ((u_long)3)
-extern "C" cryptkeyres * key_decrypt_1(cryptkeyarg *, CLIENT *);
-extern "C" cryptkeyres * key_decrypt_1_svc(cryptkeyarg *, struct svc_req *);
-#define KEY_GEN ((u_long)4)
-extern "C" des_block * key_gen_1(void *, CLIENT *);
-extern "C" des_block * key_gen_1_svc(void *, struct svc_req *);
-#define KEY_GETCRED ((u_long)5)
-extern "C" getcredres * key_getcred_1(netnamestr *, CLIENT *);
-extern "C" getcredres * key_getcred_1_svc(netnamestr *, struct svc_req *);
-
-#elif __STDC__
-#define KEY_SET ((u_long)1)
-extern keystatus * key_set_1(opaque *, CLIENT *);
-extern keystatus * key_set_1_svc(opaque *, struct svc_req *);
-#define KEY_ENCRYPT ((u_long)2)
-extern cryptkeyres * key_encrypt_1(cryptkeyarg *, CLIENT *);
-extern cryptkeyres * key_encrypt_1_svc(cryptkeyarg *, struct svc_req *);
-#define KEY_DECRYPT ((u_long)3)
-extern cryptkeyres * key_decrypt_1(cryptkeyarg *, CLIENT *);
-extern cryptkeyres * key_decrypt_1_svc(cryptkeyarg *, struct svc_req *);
-#define KEY_GEN ((u_long)4)
-extern des_block * key_gen_1(void *, CLIENT *);
-extern des_block * key_gen_1_svc(void *, struct svc_req *);
-#define KEY_GETCRED ((u_long)5)
-extern getcredres * key_getcred_1(netnamestr *, CLIENT *);
-extern getcredres * key_getcred_1_svc(netnamestr *, struct svc_req *);
-
-#else /* Old Style C */
-#define KEY_SET ((u_long)1)
-extern keystatus * key_set_1();
-extern keystatus * key_set_1_svc();
-#define KEY_ENCRYPT ((u_long)2)
-extern cryptkeyres * key_encrypt_1();
-extern cryptkeyres * key_encrypt_1_svc();
-#define KEY_DECRYPT ((u_long)3)
-extern cryptkeyres * key_decrypt_1();
-extern cryptkeyres * key_decrypt_1_svc();
-#define KEY_GEN ((u_long)4)
-extern des_block * key_gen_1();
-extern des_block * key_gen_1_svc();
-#define KEY_GETCRED ((u_long)5)
-extern getcredres * key_getcred_1();
-extern getcredres * key_getcred_1_svc();
-#endif /* Old Style C */
-#define KEY_VERS2 ((u_long)2)
-
-#ifdef __cplusplus
-extern "C" keystatus * key_set_2(opaque *, CLIENT *);
-extern "C" keystatus * key_set_2_svc(opaque *, struct svc_req *);
-extern "C" cryptkeyres * key_encrypt_2(cryptkeyarg *, CLIENT *);
-extern "C" cryptkeyres * key_encrypt_2_svc(cryptkeyarg *, struct svc_req *);
-extern "C" cryptkeyres * key_decrypt_2(cryptkeyarg *, CLIENT *);
-extern "C" cryptkeyres * key_decrypt_2_svc(cryptkeyarg *, struct svc_req *);
-extern "C" des_block * key_gen_2(void *, CLIENT *);
-extern "C" des_block * key_gen_2_svc(void *, struct svc_req *);
-extern "C" getcredres * key_getcred_2(netnamestr *, CLIENT *);
-extern "C" getcredres * key_getcred_2_svc(netnamestr *, struct svc_req *);
-#define KEY_ENCRYPT_PK ((u_long)6)
-extern "C" cryptkeyres * key_encrypt_pk_2(cryptkeyarg2 *, CLIENT *);
-extern "C" cryptkeyres * key_encrypt_pk_2_svc(cryptkeyarg2 *, struct svc_req *);
-#define KEY_DECRYPT_PK ((u_long)7)
-extern "C" cryptkeyres * key_decrypt_pk_2(cryptkeyarg2 *, CLIENT *);
-extern "C" cryptkeyres * key_decrypt_pk_2_svc(cryptkeyarg2 *, struct svc_req *);
-#define KEY_NET_PUT ((u_long)8)
-extern "C" keystatus * key_net_put_2(key_netstarg *, CLIENT *);
-extern "C" keystatus * key_net_put_2_svc(key_netstarg *, struct svc_req *);
-#define KEY_NET_GET ((u_long)9)
-extern "C" key_netstres * key_net_get_2(void *, CLIENT *);
-extern "C" key_netstres * key_net_get_2_svc(void *, struct svc_req *);
-#define KEY_GET_CONV ((u_long)10)
-extern "C" cryptkeyres * key_get_conv_2(opaque *, CLIENT *);
-extern "C" cryptkeyres * key_get_conv_2_svc(opaque *, struct svc_req *);
-
-#elif __STDC__
-extern keystatus * key_set_2(opaque *, CLIENT *);
-extern keystatus * key_set_2_svc(opaque *, struct svc_req *);
-extern cryptkeyres * key_encrypt_2(cryptkeyarg *, CLIENT *);
-extern cryptkeyres * key_encrypt_2_svc(cryptkeyarg *, struct svc_req *);
-extern cryptkeyres * key_decrypt_2(cryptkeyarg *, CLIENT *);
-extern cryptkeyres * key_decrypt_2_svc(cryptkeyarg *, struct svc_req *);
-extern des_block * key_gen_2(void *, CLIENT *);
-extern des_block * key_gen_2_svc(void *, struct svc_req *);
-extern getcredres * key_getcred_2(netnamestr *, CLIENT *);
-extern getcredres * key_getcred_2_svc(netnamestr *, struct svc_req *);
-#define KEY_ENCRYPT_PK ((u_long)6)
-extern cryptkeyres * key_encrypt_pk_2(cryptkeyarg2 *, CLIENT *);
-extern cryptkeyres * key_encrypt_pk_2_svc(cryptkeyarg2 *, struct svc_req *);
-#define KEY_DECRYPT_PK ((u_long)7)
-extern cryptkeyres * key_decrypt_pk_2(cryptkeyarg2 *, CLIENT *);
-extern cryptkeyres * key_decrypt_pk_2_svc(cryptkeyarg2 *, struct svc_req *);
-#define KEY_NET_PUT ((u_long)8)
-extern keystatus * key_net_put_2(key_netstarg *, CLIENT *);
-extern keystatus * key_net_put_2_svc(key_netstarg *, struct svc_req *);
-#define KEY_NET_GET ((u_long)9)
-extern key_netstres * key_net_get_2(void *, CLIENT *);
-extern key_netstres * key_net_get_2_svc(void *, struct svc_req *);
-#define KEY_GET_CONV ((u_long)10)
-extern cryptkeyres * key_get_conv_2(opaque *, CLIENT *);
-extern cryptkeyres * key_get_conv_2_svc(opaque *, struct svc_req *);
-
-#else /* Old Style C */
-extern keystatus * key_set_2();
-extern keystatus * key_set_2_svc();
-extern cryptkeyres * key_encrypt_2();
-extern cryptkeyres * key_encrypt_2_svc();
-extern cryptkeyres * key_decrypt_2();
-extern cryptkeyres * key_decrypt_2_svc();
-extern des_block * key_gen_2();
-extern des_block * key_gen_2_svc();
-extern getcredres * key_getcred_2();
-extern getcredres * key_getcred_2_svc();
-#define KEY_ENCRYPT_PK ((u_long)6)
-extern cryptkeyres * key_encrypt_pk_2();
-extern cryptkeyres * key_encrypt_pk_2_svc();
-#define KEY_DECRYPT_PK ((u_long)7)
-extern cryptkeyres * key_decrypt_pk_2();
-extern cryptkeyres * key_decrypt_pk_2_svc();
-#define KEY_NET_PUT ((u_long)8)
-extern keystatus * key_net_put_2();
-extern keystatus * key_net_put_2_svc();
-#define KEY_NET_GET ((u_long)9)
-extern key_netstres * key_net_get_2();
-extern key_netstres * key_net_get_2_svc();
-#define KEY_GET_CONV ((u_long)10)
-extern cryptkeyres * key_get_conv_2();
-extern cryptkeyres * key_get_conv_2_svc();
-#endif /* Old Style C */
-
-#endif /* !_KEY_PROT_H_RPCGEN */
diff --git a/mdk-stage1/dietlibc/include/rpc/netdb.h b/mdk-stage1/dietlibc/include/rpc/netdb.h
deleted file mode 100644
index da4bddfc4..000000000
--- a/mdk-stage1/dietlibc/include/rpc/netdb.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* @(#)netdb.h 2.1 88/07/29 3.9 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-/* @(#)rpc.h 1.8 87/07/24 SMI */
-
-/* Cleaned up for GNU C library roland@gnu.ai.mit.edu:
- added multiple inclusion protection and use of <sys/cdefs.h>.
- In GNU this file is #include'd by <netdb.h>. */
-
-#ifndef _RPC_NETDB_H
-#define _RPC_NETDB_H 1
-
-#include <sys/cdefs.h>
-
-#define __need_size_t
-#include <stddef.h>
-
-__BEGIN_DECLS
-
-struct rpcent
-{
- char *r_name; /* Name of server for this rpc program. */
- char **r_aliases; /* Alias list. */
- int r_number; /* RPC program number. */
-};
-
-extern void setrpcent (int __stayopen) __THROW;
-extern void endrpcent (void) __THROW;
-extern struct rpcent *getrpcbyname (__const char *__name) __THROW;
-extern struct rpcent *getrpcbynumber (int __number) __THROW;
-extern struct rpcent *getrpcent (void) __THROW;
-
-#ifdef __USE_MISC
-extern int getrpcbyname_r (__const char *__name, struct rpcent *__result_buf,
- char *__buffer, size_t __buflen,
- struct rpcent **__result) __THROW;
-
-extern int getrpcbynumber_r (int __number, struct rpcent *__result_buf,
- char *__buffer, size_t __buflen,
- struct rpcent **__result) __THROW;
-
-extern int getrpcent_r (struct rpcent *__result_buf, char *__buffer,
- size_t __buflen, struct rpcent **__result) __THROW;
-#endif
-
-__END_DECLS
-
-#endif /* rpc/netdb.h */
diff --git a/mdk-stage1/dietlibc/include/rpc/pmap_clnt.h b/mdk-stage1/dietlibc/include/rpc/pmap_clnt.h
deleted file mode 100644
index 68bc8d8ec..000000000
--- a/mdk-stage1/dietlibc/include/rpc/pmap_clnt.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/* @(#)pmap_clnt.h 2.1 88/07/29 4.0 RPCSRC; from 1.11 88/02/08 SMI */
-/*
- * 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.
- *
- * 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
- */
-
-/*
- * pmap_clnt.h
- * Supplies C routines to get to portmap services.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#ifndef _RPC_PMAP_CLNT_H
-#define _RPC_PMAP_CLNT_H 1
-
-#include <sys/cdefs.h>
-#include <rpc/types.h>
-#include <rpc/xdr.h>
-#include <rpc/clnt.h>
-
-__BEGIN_DECLS
-
-typedef bool_t (*resultproc_t) (caddr_t resp, struct sockaddr_in *raddr);
-
-/*
- * Usage:
- * success = pmap_set(program, version, protocol, port);
- * success = pmap_unset(program, version);
- * port = pmap_getport(address, program, version, protocol);
- * head = pmap_getmaps(address);
- * clnt_stat = pmap_rmtcall(address, program, version, procedure,
- * xdrargs, argsp, xdrres, resp, tout, port_ptr)
- * (works for udp only.)
- * clnt_stat = clnt_broadcast(program, version, procedure,
- * xdrargs, argsp, xdrres, resp, eachresult)
- * (like pmap_rmtcall, except the call is broadcasted to all
- * locally connected nets. For each valid response received,
- * the procedure eachresult is called. Its form is:
- * done = eachresult(resp, raddr)
- * bool_t done;
- * caddr_t resp;
- * struct sockaddr_in raddr;
- * where resp points to the results of the call and raddr is the
- * address if the responder to the broadcast.
- */
-
-extern bool_t pmap_set (__const u_long __program, __const u_long __vers,
- int __protocol, u_short __port) __THROW;
-extern bool_t pmap_unset (__const u_long __program, __const u_long __vers)
- __THROW;
-extern struct pmaplist *pmap_getmaps (struct sockaddr_in *__address) __THROW;
-extern enum clnt_stat pmap_rmtcall (struct sockaddr_in *__addr,
- __const u_long __prog,
- __const u_long __vers,
- __const u_long __proc,
- xdrproc_t __xdrargs,
- caddr_t __argsp, xdrproc_t __xdrres,
- caddr_t __resp, struct timeval __tout,
- u_long *__port_ptr) __THROW;
-extern enum clnt_stat clnt_broadcast (__const u_long __prog,
- __const u_long __vers,
- __const u_long __proc, xdrproc_t __xargs,
- caddr_t __argsp, xdrproc_t __xresults,
- caddr_t __resultsp,
- resultproc_t __eachresult) __THROW;
-extern u_short pmap_getport (struct sockaddr_in *__address,
- __const u_long __program,
- __const u_long __version, u_int __protocol)
- __THROW;
-
-__END_DECLS
-
-#endif /* rpc/pmap_clnt.h */
diff --git a/mdk-stage1/dietlibc/include/rpc/pmap_prot.h b/mdk-stage1/dietlibc/include/rpc/pmap_prot.h
deleted file mode 100644
index fd7fb8e7e..000000000
--- a/mdk-stage1/dietlibc/include/rpc/pmap_prot.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/* @(#)pmap_prot.h 2.1 88/07/29 4.0 RPCSRC; from 1.14 88/02/08 SMI */
-/*
- * 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.
- *
- * 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
- */
-
-/*
- * pmap_prot.h
- * Protocol for the local binder service, or pmap.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#ifndef _RPC_PMAP_PROT_H
-#define _RPC_PMAP_PROT_H 1
-
-#include <sys/cdefs.h>
-
-#include <rpc/xdr.h>
-
-__BEGIN_DECLS
-
-/* The following procedures are supported by the protocol:
- *
- * PMAPPROC_NULL() returns ()
- * takes nothing, returns nothing
- *
- * PMAPPROC_SET(struct pmap) returns (bool_t)
- * TRUE is success, FALSE is failure. Registers the tuple
- * [prog, vers, prot, port].
- *
- * PMAPPROC_UNSET(struct pmap) returns (bool_t)
- * TRUE is success, FALSE is failure. Un-registers pair
- * [prog, vers]. prot and port are ignored.
- *
- * PMAPPROC_GETPORT(struct pmap) returns (long unsigned).
- * 0 is failure. Otherwise returns the port number where the pair
- * [prog, vers] is registered. It may lie!
- *
- * PMAPPROC_DUMP() RETURNS (struct pmaplist *)
- *
- * PMAPPROC_CALLIT(unsigned, unsigned, unsigned, string<>)
- * RETURNS (port, string<>);
- * usage: encapsulatedresults = PMAPPROC_CALLIT(prog, vers, proc, encapsulatedargs);
- * Calls the procedure on the local machine. If it is not registered,
- * this procedure is quite; ie it does not return error information!!!
- * This procedure only is supported on rpc/udp and calls via
- * rpc/udp. This routine only passes null authentication parameters.
- * This file has no interface to xdr routines for PMAPPROC_CALLIT.
- *
- * The service supports remote procedure calls on udp/ip or tcp/ip socket 111.
- */
-
-#define PMAPPORT ((u_short)111)
-#define PMAPPROG ((u_long)100000)
-#define PMAPVERS ((u_long)2)
-#define PMAPVERS_PROTO ((u_long)2)
-#define PMAPVERS_ORIG ((u_long)1)
-#define PMAPPROC_NULL ((u_long)0)
-#define PMAPPROC_SET ((u_long)1)
-#define PMAPPROC_UNSET ((u_long)2)
-#define PMAPPROC_GETPORT ((u_long)3)
-#define PMAPPROC_DUMP ((u_long)4)
-#define PMAPPROC_CALLIT ((u_long)5)
-
-struct pmap {
- long unsigned pm_prog;
- long unsigned pm_vers;
- long unsigned pm_prot;
- long unsigned pm_port;
-};
-
-extern bool_t xdr_pmap (XDR *__xdrs, struct pmap *__regs) __THROW;
-
-struct pmaplist {
- struct pmap pml_map;
- struct pmaplist *pml_next;
-};
-
-extern bool_t xdr_pmaplist (XDR *__xdrs, struct pmaplist **__rp) __THROW;
-
-__END_DECLS
-
-#endif /* rpc/pmap_prot.h */
diff --git a/mdk-stage1/dietlibc/include/rpc/pmap_rmt.h b/mdk-stage1/dietlibc/include/rpc/pmap_rmt.h
deleted file mode 100644
index 160f998ca..000000000
--- a/mdk-stage1/dietlibc/include/rpc/pmap_rmt.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* @(#)pmap_rmt.h 2.1 88/07/29 4.0 RPCSRC; from 1.2 88/02/08 SMI */
-/*
- * 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.
- *
- * 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
- */
-
-/*
- * Structures and XDR routines for parameters to and replies from
- * the portmapper remote-call-service.
- *
- * Copyright (C) 1986, Sun Microsystems, Inc.
- */
-
-#ifndef _RPC_PMAP_RMT_H
-#define _RPC_PMAP_RMT_H 1
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <rpc/types.h>
-#include <rpc/xdr.h>
-
-__BEGIN_DECLS
-
-struct rmtcallargs {
- u_long prog, vers, proc, arglen;
- caddr_t args_ptr;
- xdrproc_t xdr_args;
-};
-
-extern bool_t xdr_rmtcall_args (XDR *__xdrs, struct rmtcallargs *__crp)
- __THROW;
-
-struct rmtcallres {
- u_long *port_ptr;
- u_long resultslen;
- caddr_t results_ptr;
- xdrproc_t xdr_results;
-};
-
-extern bool_t xdr_rmtcallres (XDR *__xdrs, struct rmtcallres *__crp) __THROW;
-
-__END_DECLS
-
-#endif /* rpc/pmap_rmt.h */
diff --git a/mdk-stage1/dietlibc/include/rpc/rpc.h b/mdk-stage1/dietlibc/include/rpc/rpc.h
deleted file mode 100644
index 20b341d74..000000000
--- a/mdk-stage1/dietlibc/include/rpc/rpc.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/* @(#)rpc.h 2.3 88/08/10 4.0 RPCSRC; from 1.9 88/02/08 SMI */
-/*
- * 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.
- *
- * 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
- */
-
-/*
- * rpc.h, Just includes the billions of rpc header files necessary to
- * do remote procedure calling.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#ifndef _RPC_RPC_H
-#define _RPC_RPC_H 1
-
-#include <rpc/types.h> /* some typedefs */
-#include <netinet/in.h>
-
-/* external data representation interfaces */
-#include <rpc/xdr.h> /* generic (de)serializer */
-
-/* Client side only authentication */
-#include <rpc/auth.h> /* generic authenticator (client side) */
-
-/* Client side (mostly) remote procedure call */
-#include <rpc/clnt.h> /* generic rpc stuff */
-
-/* semi-private protocol headers */
-#include <rpc/rpc_msg.h> /* protocol for rpc messages */
-#include <rpc/auth_unix.h> /* protocol for unix style cred */
-#include <rpc/auth_des.h> /* protocol for des style cred */
-
-/* Server side only remote procedure callee */
-#include <rpc/svc.h> /* service manager and multiplexer */
-#include <rpc/svc_auth.h> /* service side authenticator */
-
-/*
- * COMMENT OUT THE NEXT INCLUDE IF RUNNING ON SUN OS OR ON A VERSION
- * OF UNIX BASED ON NFSSRC. These systems will already have the structures
- * defined by <rpc/netdb.h> included in <netdb.h>.
- */
-/* routines for parsing /etc/rpc */
-#include <rpc/netdb.h> /* structures and routines to parse /etc/rpc */
-
-int bindresvport(int sd, struct sockaddr_in* sin) __THROW;
-
-#endif /* rpc/rpc.h */
diff --git a/mdk-stage1/dietlibc/include/rpc/rpc_des.h b/mdk-stage1/dietlibc/include/rpc/rpc_des.h
deleted file mode 100644
index 0f36d1697..000000000
--- a/mdk-stage1/dietlibc/include/rpc/rpc_des.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * 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.
- *
- * 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
- */
-/*
- * Generic DES driver interface
- * Keep this file hardware independent!
- * Copyright (c) 1986 by Sun Microsystems, Inc.
- */
-
-#ifndef _DES_H
-#define _DES_H
-
-#include <sys/types.h>
-
-#define DES_MAXLEN 65536 /* maximum # of bytes to encrypt */
-#define DES_QUICKLEN 16 /* maximum # of bytes to encrypt quickly */
-
-enum desdir
- {
- ENCRYPT, DECRYPT
- };
-enum desmode
- {
- CBC, ECB
- };
-
-/*
- * parameters to ioctl call
- */
-struct desparams
- {
- u_char des_key[8]; /* key (with low bit parity) */
- enum desdir des_dir; /* direction */
- enum desmode des_mode; /* mode */
- u_char des_ivec[8]; /* input vector */
- unsigned des_len; /* number of bytes to crypt */
- union
- {
- u_char UDES_data[DES_QUICKLEN];
- u_char *UDES_buf;
- }
- UDES;
-#define des_data UDES.UDES_data /* direct data here if quick */
-#define des_buf UDES.UDES_buf /* otherwise, pointer to data */
- };
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/rpc/rpc_msg.h b/mdk-stage1/dietlibc/include/rpc/rpc_msg.h
deleted file mode 100644
index 636d60ea9..000000000
--- a/mdk-stage1/dietlibc/include/rpc/rpc_msg.h
+++ /dev/null
@@ -1,202 +0,0 @@
-/* @(#)rpc_msg.h 2.1 88/07/29 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-/* @(#)rpc_msg.h 1.7 86/07/16 SMI */
-
-#ifndef _RPC_MSG_H
-#define _RPC_MSG_H 1
-
-#include <sys/cdefs.h>
-
-#include <rpc/xdr.h>
-#include <rpc/clnt.h>
-
-/*
- * rpc_msg.h
- * rpc message definition
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#define RPC_MSG_VERSION ((u_long) 2)
-#define RPC_SERVICE_PORT ((u_short) 2048)
-
-__BEGIN_DECLS
-
-/*
- * Bottom up definition of an rpc message.
- * NOTE: call and reply use the same overall struct but
- * different parts of unions within it.
- */
-
-enum msg_type {
- CALL=0,
- REPLY=1
-};
-
-enum reply_stat {
- MSG_ACCEPTED=0,
- MSG_DENIED=1
-};
-
-enum accept_stat {
- SUCCESS=0,
- PROG_UNAVAIL=1,
- PROG_MISMATCH=2,
- PROC_UNAVAIL=3,
- GARBAGE_ARGS=4,
- SYSTEM_ERR=5
-};
-
-enum reject_stat {
- RPC_MISMATCH=0,
- AUTH_ERROR=1
-};
-
-/*
- * Reply part of an rpc exchange
- */
-
-/*
- * Reply to an rpc request that was accepted by the server.
- * Note: there could be an error even though the request was
- * accepted.
- */
-struct accepted_reply {
- struct opaque_auth ar_verf;
- enum accept_stat ar_stat;
- union {
- struct {
- u_long low;
- u_long high;
- } AR_versions;
- struct {
- caddr_t where;
- xdrproc_t proc;
- } AR_results;
- /* and many other null cases */
- } ru;
-#define ar_results ru.AR_results
-#define ar_vers ru.AR_versions
-};
-
-/*
- * Reply to an rpc request that was rejected by the server.
- */
-struct rejected_reply {
- enum reject_stat rj_stat;
- union {
- struct {
- u_long low;
- u_long high;
- } RJ_versions;
- enum auth_stat RJ_why; /* why authentication did not work */
- } ru;
-#define rj_vers ru.RJ_versions
-#define rj_why ru.RJ_why
-};
-
-/*
- * Body of a reply to an rpc request.
- */
-struct reply_body {
- enum reply_stat rp_stat;
- union {
- struct accepted_reply RP_ar;
- struct rejected_reply RP_dr;
- } ru;
-#define rp_acpt ru.RP_ar
-#define rp_rjct ru.RP_dr
-};
-
-/*
- * Body of an rpc request call.
- */
-struct call_body {
- u_long cb_rpcvers; /* must be equal to two */
- u_long cb_prog;
- u_long cb_vers;
- u_long cb_proc;
- struct opaque_auth cb_cred;
- struct opaque_auth cb_verf; /* protocol specific - provided by client */
-};
-
-/*
- * The rpc message
- */
-struct rpc_msg {
- u_long rm_xid;
- enum msg_type rm_direction;
- union {
- struct call_body RM_cmb;
- struct reply_body RM_rmb;
- } ru;
-#define rm_call ru.RM_cmb
-#define rm_reply ru.RM_rmb
-};
-#define acpted_rply ru.RM_rmb.ru.RP_ar
-#define rjcted_rply ru.RM_rmb.ru.RP_dr
-
-
-/*
- * XDR routine to handle a rpc message.
- * xdr_callmsg(xdrs, cmsg)
- * XDR *xdrs;
- * struct rpc_msg *cmsg;
- */
-extern bool_t xdr_callmsg (XDR *__xdrs, struct rpc_msg *__cmsg) __THROW;
-
-/*
- * XDR routine to pre-serialize the static part of a rpc message.
- * xdr_callhdr(xdrs, cmsg)
- * XDR *xdrs;
- * struct rpc_msg *cmsg;
- */
-extern bool_t xdr_callhdr (XDR *__xdrs, struct rpc_msg *__cmsg) __THROW;
-
-/*
- * XDR routine to handle a rpc reply.
- * xdr_replymsg(xdrs, rmsg)
- * XDR *xdrs;
- * struct rpc_msg *rmsg;
- */
-extern bool_t xdr_replymsg (XDR *__xdrs, struct rpc_msg *__rmsg) __THROW;
-
-/*
- * Fills in the error part of a reply message.
- * _seterr_reply(msg, error)
- * struct rpc_msg *msg;
- * struct rpc_err *error;
- */
-extern void _seterr_reply (struct rpc_msg *__msg, struct rpc_err *__error)
- __THROW;
-
-__END_DECLS
-
-#endif /* rpc/rpc_msg.h */
diff --git a/mdk-stage1/dietlibc/include/rpc/svc.h b/mdk-stage1/dietlibc/include/rpc/svc.h
deleted file mode 100644
index 27c997dde..000000000
--- a/mdk-stage1/dietlibc/include/rpc/svc.h
+++ /dev/null
@@ -1,316 +0,0 @@
-/*
- * 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.
- *
- * 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
- */
-
-/*
- * svc.h, Server-side remote procedure call interface.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#ifndef _RPC_SVC_H
-#define _RPC_SVC_H 1
-
-#include <sys/cdefs.h>
-#include <rpc/rpc_msg.h>
-
-__BEGIN_DECLS
-
-/*
- * This interface must manage two items concerning remote procedure calling:
- *
- * 1) An arbitrary number of transport connections upon which rpc requests
- * are received. The two most notable transports are TCP and UDP; they are
- * created and registered by routines in svc_tcp.c and svc_udp.c, respectively;
- * they in turn call xprt_register and xprt_unregister.
- *
- * 2) An arbitrary number of locally registered services. Services are
- * described by the following four data: program number, version number,
- * "service dispatch" function, a transport handle, and a boolean that
- * indicates whether or not the exported program should be registered with a
- * local binder service; if true the program's number and version and the
- * port number from the transport handle are registered with the binder.
- * These data are registered with the rpc svc system via svc_register.
- *
- * A service's dispatch function is called whenever an rpc request comes in
- * on a transport. The request's program and version numbers must match
- * those of the registered service. The dispatch function is passed two
- * parameters, struct svc_req * and SVCXPRT *, defined below.
- */
-
-enum xprt_stat {
- XPRT_DIED,
- XPRT_MOREREQS,
- XPRT_IDLE
-};
-
-/*
- * Server side transport handle
- */
-typedef struct SVCXPRT SVCXPRT;
-struct SVCXPRT {
- int xp_sock;
- u_short xp_port; /* associated port number */
- const struct xp_ops {
- bool_t (*xp_recv) (SVCXPRT *__xprt, struct rpc_msg *__msg);
- /* receive incoming requests */
- enum xprt_stat (*xp_stat) (SVCXPRT *__xprt);
- /* get transport status */
- bool_t (*xp_getargs) (SVCXPRT *__xprt, xdrproc_t __xdr_args,
- caddr_t args_ptr); /* get arguments */
- bool_t (*xp_reply) (SVCXPRT *__xprt, struct rpc_msg *__msg);
- /* send reply */
- bool_t (*xp_freeargs) (SVCXPRT *__xprt, xdrproc_t __xdr_args,
- caddr_t args_ptr);
- /* free mem allocated for args */
- void (*xp_destroy) (SVCXPRT *__xprt);
- /* destroy this struct */
- } *xp_ops;
- int xp_addrlen; /* length of remote address */
- struct sockaddr_in xp_raddr; /* remote address */
- struct opaque_auth xp_verf; /* raw response verifier */
- caddr_t xp_p1; /* private */
- caddr_t xp_p2; /* private */
- char xp_pad [256]; /* padding, internal use */
-};
-
-/*
- * Approved way of getting address of caller
- */
-#define svc_getcaller(x) (&(x)->xp_raddr)
-
-/*
- * Operations defined on an SVCXPRT handle
- *
- * SVCXPRT *xprt;
- * struct rpc_msg *msg;
- * xdrproc_t xargs;
- * caddr_t argsp;
- */
-#define SVC_RECV(xprt, msg) \
- (*(xprt)->xp_ops->xp_recv)((xprt), (msg))
-#define svc_recv(xprt, msg) \
- (*(xprt)->xp_ops->xp_recv)((xprt), (msg))
-
-#define SVC_STAT(xprt) \
- (*(xprt)->xp_ops->xp_stat)(xprt)
-#define svc_stat(xprt) \
- (*(xprt)->xp_ops->xp_stat)(xprt)
-
-#define SVC_GETARGS(xprt, xargs, argsp) \
- (*(xprt)->xp_ops->xp_getargs)((xprt), (xargs), (argsp))
-#define svc_getargs(xprt, xargs, argsp) \
- (*(xprt)->xp_ops->xp_getargs)((xprt), (xargs), (argsp))
-
-#define SVC_REPLY(xprt, msg) \
- (*(xprt)->xp_ops->xp_reply) ((xprt), (msg))
-#define svc_reply(xprt, msg) \
- (*(xprt)->xp_ops->xp_reply) ((xprt), (msg))
-
-#define SVC_FREEARGS(xprt, xargs, argsp) \
- (*(xprt)->xp_ops->xp_freeargs)((xprt), (xargs), (argsp))
-#define svc_freeargs(xprt, xargs, argsp) \
- (*(xprt)->xp_ops->xp_freeargs)((xprt), (xargs), (argsp))
-
-#define SVC_DESTROY(xprt) \
- (*(xprt)->xp_ops->xp_destroy)(xprt)
-#define svc_destroy(xprt) \
- (*(xprt)->xp_ops->xp_destroy)(xprt)
-
-
-/*
- * Service request
- */
-struct svc_req {
- rpcprog_t rq_prog; /* service program number */
- rpcvers_t rq_vers; /* service protocol version */
- rpcproc_t rq_proc; /* the desired procedure */
- struct opaque_auth rq_cred; /* raw creds from the wire */
- caddr_t rq_clntcred; /* read only cooked cred */
- SVCXPRT *rq_xprt; /* associated transport */
-};
-
-#ifndef __DISPATCH_FN_T
-#define __DISPATCH_FN_T
-typedef void (*__dispatch_fn_t) (struct svc_req*, SVCXPRT*);
-#endif
-
-/*
- * Service registration
- *
- * svc_register(xprt, prog, vers, dispatch, protocol)
- * SVCXPRT *xprt;
- * rpcprog_t prog;
- * rpcvers_t vers;
- * void (*dispatch)(struct svc_req*, SVCXPRT*);
- * rpcprot_t protocol; like TCP or UDP, zero means do not register
- */
-extern bool_t svc_register (SVCXPRT *__xprt, rpcprog_t __prog,
- rpcvers_t __vers, __dispatch_fn_t __dispatch,
- rpcprot_t __protocol) __THROW;
-
-/*
- * Service un-registration
- *
- * svc_unregister(prog, vers)
- * rpcprog_t prog;
- * rpcvers_t vers;
- */
-extern void svc_unregister (rpcprog_t __prog, rpcvers_t __vers) __THROW;
-
-/*
- * Transport registration.
- *
- * xprt_register(xprt)
- * SVCXPRT *xprt;
- */
-extern void xprt_register (SVCXPRT *__xprt) __THROW;
-
-/*
- * Transport un-register
- *
- * xprt_unregister(xprt)
- * SVCXPRT *xprt;
- */
-extern void xprt_unregister (SVCXPRT *__xprt) __THROW;
-
-
-/*
- * When the service routine is called, it must first check to see if it
- * knows about the procedure; if not, it should call svcerr_noproc
- * and return. If so, it should deserialize its arguments via
- * SVC_GETARGS (defined above). If the deserialization does not work,
- * svcerr_decode should be called followed by a return. Successful
- * decoding of the arguments should be followed the execution of the
- * procedure's code and a call to svc_sendreply.
- *
- * Also, if the service refuses to execute the procedure due to too-
- * weak authentication parameters, svcerr_weakauth should be called.
- * Note: do not confuse access-control failure with weak authentication!
- *
- * NB: In pure implementations of rpc, the caller always waits for a reply
- * msg. This message is sent when svc_sendreply is called.
- * Therefore pure service implementations should always call
- * svc_sendreply even if the function logically returns void; use
- * xdr.h - xdr_void for the xdr routine. HOWEVER, tcp based rpc allows
- * for the abuse of pure rpc via batched calling or pipelining. In the
- * case of a batched call, svc_sendreply should NOT be called since
- * this would send a return message, which is what batching tries to avoid.
- * It is the service/protocol writer's responsibility to know which calls are
- * batched and which are not. Warning: responding to batch calls may
- * deadlock the caller and server processes!
- */
-
-extern bool_t svc_sendreply (SVCXPRT *xprt, xdrproc_t __xdr_results,
- caddr_t __xdr_location) __THROW;
-
-extern void svcerr_decode (SVCXPRT *__xprt) __THROW;
-
-extern void svcerr_weakauth (SVCXPRT *__xprt) __THROW;
-
-extern void svcerr_noproc (SVCXPRT *__xprt) __THROW;
-
-extern void svcerr_progvers (SVCXPRT *__xprt, rpcvers_t __low_vers,
- rpcvers_t __high_vers) __THROW;
-
-extern void svcerr_auth (SVCXPRT *__xprt, enum auth_stat __why) __THROW;
-
-extern void svcerr_noprog (SVCXPRT *__xprt) __THROW;
-
-extern void svcerr_systemerr (SVCXPRT *__xprt) __THROW;
-
-/*
- * Lowest level dispatching -OR- who owns this process anyway.
- * Somebody has to wait for incoming requests and then call the correct
- * service routine. The routine svc_run does infinite waiting; i.e.,
- * svc_run never returns.
- * Since another (coexistent) package may wish to selectively wait for
- * incoming calls or other events outside of the rpc architecture, the
- * routine svc_getreq is provided. It must be passed readfds, the
- * "in-place" results of a select system call (see select, section 2).
- */
-
-/*
- * Global keeper of rpc service descriptors in use
- * dynamic; must be inspected before each call to select
- */
-
-extern struct pollfd *svc_pollfd;
-extern int svc_max_pollfd;
-extern fd_set svc_fdset;
-#define svc_fds svc_fdset.fds_bits[0] /* compatibility */
-
-/*
- * a small program implemented by the svc_rpc implementation itself;
- * also see clnt.h for protocol numbers.
- */
-extern void svc_getreq (int __rdfds) __THROW;
-extern void svc_getreq_common (const int __fd) __THROW;
-extern void svc_getreqset (fd_set *__readfds) __THROW;
-extern void svc_getreq_poll (struct pollfd *, const int) __THROW;
-extern void svc_exit (void) __THROW;
-extern void svc_run (void) __THROW;
-
-/*
- * Socket to use on svcxxx_create call to get default socket
- */
-#define RPC_ANYSOCK -1
-
-/*
- * These are the existing service side transport implementations
- */
-
-/*
- * Memory based rpc for testing and timing.
- */
-extern SVCXPRT *svcraw_create (void) __THROW;
-
-/*
- * Udp based rpc.
- */
-extern SVCXPRT *svcudp_create (int __sock) __THROW;
-extern SVCXPRT *svcudp_bufcreate (int __sock, u_int __sendsz, u_int __recvsz)
- __THROW;
-
-/*
- * Tcp based rpc.
- */
-extern SVCXPRT *svctcp_create (int __sock, u_int __sendsize, u_int __recvsize)
- __THROW;
-
-
-/*
- * Unix based rpc.
- */
-extern SVCXPRT *svcunix_create (int __sock, u_int __sendsize, u_int __recvsize,
- char *__path) __THROW;
-
-
-__END_DECLS
-
-#endif /* rpc/svc.h */
diff --git a/mdk-stage1/dietlibc/include/rpc/svc_auth.h b/mdk-stage1/dietlibc/include/rpc/svc_auth.h
deleted file mode 100644
index cd4b8da29..000000000
--- a/mdk-stage1/dietlibc/include/rpc/svc_auth.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* @(#)svc_auth.h 2.1 88/07/29 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-/* @(#)svc_auth.h 1.6 86/07/16 SMI */
-
-/*
- * svc_auth.h, Service side of rpc authentication.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#ifndef _RPC_SVC_AUTH_H
-#define _RPC_SVC_AUTH_H 1
-
-#include <sys/cdefs.h>
-#include <rpc/svc.h>
-
-__BEGIN_DECLS
-
-/*
- * Server side authenticator
- */
-extern enum auth_stat _authenticate (struct svc_req *__rqst,
- struct rpc_msg *__msg) __THROW;
-
-__END_DECLS
-
-#endif /* rpc/svc_auth.h */
diff --git a/mdk-stage1/dietlibc/include/rpc/types.h b/mdk-stage1/dietlibc/include/rpc/types.h
deleted file mode 100644
index e2e8402be..000000000
--- a/mdk-stage1/dietlibc/include/rpc/types.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * 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.
- *
- * 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
- */
-/* fixincludes should not add extern "C" to this file */
-/*
- * Rpc additions to <sys/types.h>
- */
-#ifndef _RPC_TYPES_H
-#define _RPC_TYPES_H 1
-
-typedef int bool_t;
-typedef int enum_t;
-/* This needs to be changed to uint32_t in the future */
-typedef unsigned long rpcprog_t;
-typedef unsigned long rpcvers_t;
-typedef unsigned long rpcproc_t;
-typedef unsigned long rpcprot_t;
-typedef unsigned long rpcport_t;
-
-#define __dontcare__ -1
-
-#ifndef FALSE
-# define FALSE (0)
-#endif
-
-#ifndef TRUE
-# define TRUE (1)
-#endif
-
-#ifndef NULL
-# define NULL 0
-#endif
-
-#include <stdlib.h> /* For malloc decl. */
-#define mem_alloc(bsize) malloc(bsize)
-#define mem_free(ptr, bsize) free(ptr)
-
-#ifndef makedev /* ie, we haven't already included it */
-#include <sys/types.h>
-#endif
-#include <sys/time.h>
-#include <sys/param.h>
-
-#include <netinet/in.h>
-
-#ifndef INADDR_LOOPBACK
-#define INADDR_LOOPBACK (u_long)0x7F000001
-#endif
-#ifndef MAXHOSTNAMELEN
-#define MAXHOSTNAMELEN 64
-#endif
-
-#endif /* rpc/types.h */
diff --git a/mdk-stage1/dietlibc/include/rpc/xdr.h b/mdk-stage1/dietlibc/include/rpc/xdr.h
deleted file mode 100644
index ce092f085..000000000
--- a/mdk-stage1/dietlibc/include/rpc/xdr.h
+++ /dev/null
@@ -1,379 +0,0 @@
-/*
- * 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.
- *
- * 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
- */
-
-/*
- * xdr.h, External Data Representation Serialization Routines.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#ifndef _RPC_XDR_H
-#define _RPC_XDR_H 1
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <rpc/types.h>
-
-/* We need FILE. */
-#include <stdio.h>
-
-__BEGIN_DECLS
-
-/*
- * XDR provides a conventional way for converting between C data
- * types and an external bit-string representation. Library supplied
- * routines provide for the conversion on built-in C data types. These
- * routines and utility routines defined here are used to help implement
- * a type encode/decode routine for each user-defined type.
- *
- * Each data type provides a single procedure which takes two arguments:
- *
- * bool_t
- * xdrproc(xdrs, argresp)
- * XDR *xdrs;
- * <type> *argresp;
- *
- * xdrs is an instance of a XDR handle, to which or from which the data
- * type is to be converted. argresp is a pointer to the structure to be
- * converted. The XDR handle contains an operation field which indicates
- * which of the operations (ENCODE, DECODE * or FREE) is to be performed.
- *
- * XDR_DECODE may allocate space if the pointer argresp is null. This
- * data can be freed with the XDR_FREE operation.
- *
- * We write only one procedure per data type to make it easy
- * to keep the encode and decode procedures for a data type consistent.
- * In many cases the same code performs all operations on a user defined type,
- * because all the hard work is done in the component type routines.
- * decode as a series of calls on the nested data types.
- */
-
-/*
- * Xdr operations. XDR_ENCODE causes the type to be encoded into the
- * stream. XDR_DECODE causes the type to be extracted from the stream.
- * XDR_FREE can be used to release the space allocated by an XDR_DECODE
- * request.
- */
-enum xdr_op {
- XDR_ENCODE = 0,
- XDR_DECODE = 1,
- XDR_FREE = 2
-};
-
-/*
- * This is the number of bytes per unit of external data.
- */
-#define BYTES_PER_XDR_UNIT (4)
-/*
- * This only works if the above is a power of 2. But it's defined to be
- * 4 by the appropriate RFCs. So it will work. And it's normally quicker
- * than the old routine.
- */
-#if 1
-#define RNDUP(x) (((x) + BYTES_PER_XDR_UNIT - 1) & ~(BYTES_PER_XDR_UNIT - 1))
-#else /* this is the old routine */
-#define RNDUP(x) ((((x) + BYTES_PER_XDR_UNIT - 1) / BYTES_PER_XDR_UNIT) \
- * BYTES_PER_XDR_UNIT)
-#endif
-
-/*
- * The XDR handle.
- * Contains operation which is being applied to the stream,
- * an operations vector for the particular implementation (e.g. see xdr_mem.c),
- * and two private fields for the use of the particular implementation.
- */
-typedef struct XDR XDR;
-struct XDR
- {
- enum xdr_op x_op; /* operation; fast additional param */
- struct xdr_ops
- {
- bool_t (*x_getlong) (XDR *__xdrs, long *__lp);
- /* get a long from underlying stream */
- bool_t (*x_putlong) (XDR *__xdrs, const long *__lp);
- /* put a long to " */
- bool_t (*x_getbytes) (XDR *__xdrs, caddr_t __addr, u_int __len);
- /* get some bytes from " */
- bool_t (*x_putbytes) (XDR *__xdrs, const char *__addr, u_int __len);
- /* put some bytes to " */
- u_int (*x_getpostn) (const XDR *__xdrs);
- /* returns bytes off from beginning */
- bool_t (*x_setpostn) (XDR *__xdrs, u_int __pos);
- /* lets you reposition the stream */
- int32_t *(*x_inline) (XDR *__xdrs, int __len);
- /* buf quick ptr to buffered data */
- void (*x_destroy) (XDR *__xdrs);
- /* free privates of this xdr_stream */
- bool_t (*x_getint32) (XDR *__xdrs, int32_t *__ip);
- /* get a int from underlying stream */
- bool_t (*x_putint32) (XDR *__xdrs, const int32_t *__ip);
- /* put a int to " */
- }
- *x_ops;
- caddr_t x_public; /* users' data */
- caddr_t x_private; /* pointer to private data */
- caddr_t x_base; /* private used for position info */
- int x_handy; /* extra private word */
- };
-
-/*
- * A xdrproc_t exists for each data type which is to be encoded or decoded.
- *
- * The second argument to the xdrproc_t is a pointer to an opaque pointer.
- * The opaque pointer generally points to a structure of the data type
- * to be decoded. If this pointer is 0, then the type routines should
- * allocate dynamic storage of the appropriate size and return it.
- * bool_t (*xdrproc_t)(XDR *, caddr_t *);
- */
-typedef bool_t (*xdrproc_t) (XDR *, void *,...);
-
-
-/*
- * Operations defined on a XDR handle
- *
- * XDR *xdrs;
- * int32_t *int32p;
- * long *longp;
- * caddr_t addr;
- * u_int len;
- * u_int pos;
- */
-#define XDR_GETINT32(xdrs, int32p) \
- (*(xdrs)->x_ops->x_getint32)(xdrs, int32p)
-#define xdr_getint32(xdrs, int32p) \
- (*(xdrs)->x_ops->x_getint32)(xdrs, int32p)
-
-#define XDR_PUTINT32(xdrs, int32p) \
- (*(xdrs)->x_ops->x_putint32)(xdrs, int32p)
-#define xdr_putint32(xdrs, int32p) \
- (*(xdrs)->x_ops->x_putint32)(xdrs, int32p)
-
-#define XDR_GETLONG(xdrs, longp) \
- (*(xdrs)->x_ops->x_getlong)(xdrs, longp)
-#define xdr_getlong(xdrs, longp) \
- (*(xdrs)->x_ops->x_getlong)(xdrs, longp)
-
-#define XDR_PUTLONG(xdrs, longp) \
- (*(xdrs)->x_ops->x_putlong)(xdrs, longp)
-#define xdr_putlong(xdrs, longp) \
- (*(xdrs)->x_ops->x_putlong)(xdrs, longp)
-
-#define XDR_GETBYTES(xdrs, addr, len) \
- (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len)
-#define xdr_getbytes(xdrs, addr, len) \
- (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len)
-
-#define XDR_PUTBYTES(xdrs, addr, len) \
- (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len)
-#define xdr_putbytes(xdrs, addr, len) \
- (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len)
-
-#define XDR_GETPOS(xdrs) \
- (*(xdrs)->x_ops->x_getpostn)(xdrs)
-#define xdr_getpos(xdrs) \
- (*(xdrs)->x_ops->x_getpostn)(xdrs)
-
-#define XDR_SETPOS(xdrs, pos) \
- (*(xdrs)->x_ops->x_setpostn)(xdrs, pos)
-#define xdr_setpos(xdrs, pos) \
- (*(xdrs)->x_ops->x_setpostn)(xdrs, pos)
-
-#define XDR_INLINE(xdrs, len) \
- (*(xdrs)->x_ops->x_inline)(xdrs, len)
-#define xdr_inline(xdrs, len) \
- (*(xdrs)->x_ops->x_inline)(xdrs, len)
-
-#define XDR_DESTROY(xdrs) \
- do { \
- if ((xdrs)->x_ops->x_destroy) \
- (*(xdrs)->x_ops->x_destroy)(xdrs); \
- } while (0)
-#define xdr_destroy(xdrs) \
- do { \
- if ((xdrs)->x_ops->x_destroy) \
- (*(xdrs)->x_ops->x_destroy)(xdrs); \
- } while (0)
-
-/*
- * Support struct for discriminated unions.
- * You create an array of xdrdiscrim structures, terminated with
- * a entry with a null procedure pointer. The xdr_union routine gets
- * the discriminant value and then searches the array of structures
- * for a matching value. If a match is found the associated xdr routine
- * is called to handle that part of the union. If there is
- * no match, then a default routine may be called.
- * If there is no match and no default routine it is an error.
- */
-#define NULL_xdrproc_t ((xdrproc_t)0)
-struct xdr_discrim
-{
- int value;
- xdrproc_t proc;
-};
-
-/*
- * Inline routines for fast encode/decode of primitive data types.
- * Caveat emptor: these use single memory cycles to get the
- * data from the underlying buffer, and will fail to operate
- * properly if the data is not aligned. The standard way to use these
- * is to say:
- * if ((buf = XDR_INLINE(xdrs, count)) == NULL)
- * return (FALSE);
- * <<< macro calls >>>
- * where ``count'' is the number of bytes of data occupied
- * by the primitive data types.
- *
- * N.B. and frozen for all time: each data type here uses 4 bytes
- * of external representation.
- */
-
-#define IXDR_GET_INT32(buf) ((int32_t)ntohl((uint32_t)*(buf)++))
-#define IXDR_PUT_INT32(buf, v) (*(buf)++ = (int32_t)htonl((uint32_t)(v)))
-#define IXDR_GET_U_INT32(buf) ((uint32_t)IXDR_GET_INT32(buf))
-#define IXDR_PUT_U_INT32(buf, v) IXDR_PUT_INT32(buf, (int32_t)(v))
-
-/* WARNING: The IXDR_*_LONG defines are removed by Sun for new platforms
- * and shouldn't be used any longer. Code which use this defines or longs
- * in the RPC code will not work on 64bit Solaris platforms !
- */
-#define IXDR_GET_LONG(buf) \
- ((long)ntohl((u_long)*__extension__((u_int32_t*)(buf))++))
-#define IXDR_PUT_LONG(buf, v) \
- (*__extension__((u_int32_t*)(buf))++ = (long)htonl((u_long)(v)))
-#define IXDR_GET_U_LONG(buf) ((u_long)IXDR_GET_LONG(buf))
-#define IXDR_PUT_U_LONG(buf, v) IXDR_PUT_LONG(buf, (long)(v))
-
-
-#define IXDR_GET_BOOL(buf) ((bool_t)IXDR_GET_LONG(buf))
-#define IXDR_GET_ENUM(buf, t) ((t)IXDR_GET_LONG(buf))
-#define IXDR_GET_SHORT(buf) ((short)IXDR_GET_LONG(buf))
-#define IXDR_GET_U_SHORT(buf) ((u_short)IXDR_GET_LONG(buf))
-
-#define IXDR_PUT_BOOL(buf, v) IXDR_PUT_LONG(buf, (long)(v))
-#define IXDR_PUT_ENUM(buf, v) IXDR_PUT_LONG(buf, (long)(v))
-#define IXDR_PUT_SHORT(buf, v) IXDR_PUT_LONG(buf, (long)(v))
-#define IXDR_PUT_U_SHORT(buf, v) IXDR_PUT_LONG(buf, (long)(v))
-
-/*
- * These are the "generic" xdr routines.
- * None of these can have const applied because it's not possible to
- * know whether the call is a read or a write to the passed parameter
- * also, the XDR structure is always updated by some of these calls.
- */
-extern bool_t xdr_void (void) __THROW;
-extern bool_t xdr_short (XDR *__xdrs, short *__sp) __THROW;
-extern bool_t xdr_u_short (XDR *__xdrs, u_short *__usp) __THROW;
-extern bool_t xdr_int (XDR *__xdrs, int *__ip) __THROW;
-extern bool_t xdr_u_int (XDR *__xdrs, u_int *__up) __THROW;
-extern bool_t xdr_long (XDR *__xdrs, long *__lp) __THROW;
-extern bool_t xdr_u_long (XDR *__xdrs, u_long *__ulp) __THROW;
-extern bool_t xdr_hyper (XDR *__xdrs, __quad_t *__llp) __THROW;
-extern bool_t xdr_u_hyper (XDR *__xdrs, __u_quad_t *__ullp) __THROW;
-extern bool_t xdr_longlong_t (XDR *__xdrs, __quad_t *__llp) __THROW;
-extern bool_t xdr_u_longlong_t (XDR *__xdrs, __u_quad_t *__ullp) __THROW;
-extern bool_t xdr_int8_t (XDR *__xdrs, int8_t *__ip) __THROW;
-extern bool_t xdr_uint8_t (XDR *__xdrs, uint8_t *__up) __THROW;
-extern bool_t xdr_int16_t (XDR *__xdrs, int16_t *__ip) __THROW;
-extern bool_t xdr_uint16_t (XDR *__xdrs, uint16_t *__up) __THROW;
-extern bool_t xdr_int32_t (XDR *__xdrs, int32_t *__ip) __THROW;
-extern bool_t xdr_uint32_t (XDR *__xdrs, uint32_t *__up) __THROW;
-extern bool_t xdr_int64_t (XDR *__xdrs, int64_t *__ip) __THROW;
-extern bool_t xdr_uint64_t (XDR *__xdrs, uint64_t *__up) __THROW;
-extern bool_t xdr_bool (XDR *__xdrs, bool_t *__bp) __THROW;
-extern bool_t xdr_enum (XDR *__xdrs, enum_t *__ep) __THROW;
-extern bool_t xdr_array (XDR * _xdrs, caddr_t *__addrp, u_int *__sizep,
- u_int __maxsize, u_int __elsize, xdrproc_t __elproc)
- __THROW;
-extern bool_t xdr_bytes (XDR *__xdrs, char **__cpp, u_int *__sizep,
- u_int __maxsize) __THROW;
-extern bool_t xdr_opaque (XDR *__xdrs, caddr_t __cp, u_int __cnt) __THROW;
-extern bool_t xdr_string (XDR *__xdrs, char **__cpp, u_int __maxsize) __THROW;
-extern bool_t xdr_union (XDR *__xdrs, enum_t *__dscmp, char *__unp,
- const struct xdr_discrim *__choices,
- xdrproc_t dfault) __THROW;
-extern bool_t xdr_char (XDR *__xdrs, char *__cp) __THROW;
-extern bool_t xdr_u_char (XDR *__xdrs, u_char *__cp) __THROW;
-extern bool_t xdr_vector (XDR *__xdrs, char *__basep, u_int __nelem,
- u_int __elemsize, xdrproc_t __xdr_elem) __THROW;
-extern bool_t xdr_float (XDR *__xdrs, float *__fp) __THROW;
-extern bool_t xdr_double (XDR *__xdrs, double *__dp) __THROW;
-extern bool_t xdr_reference (XDR *__xdrs, caddr_t *__xpp, u_int __size,
- xdrproc_t __proc) __THROW;
-extern bool_t xdr_pointer (XDR *__xdrs, char **__objpp,
- u_int __obj_size, xdrproc_t __xdr_obj) __THROW;
-extern bool_t xdr_wrapstring (XDR *__xdrs, char **__cpp) __THROW;
-extern u_long xdr_sizeof (xdrproc_t, void *) __THROW;
-
-/*
- * Common opaque bytes objects used by many rpc protocols;
- * declared here due to commonality.
- */
-#define MAX_NETOBJ_SZ 1024
-struct netobj
-{
- u_int n_len;
- char *n_bytes;
-};
-typedef struct netobj netobj;
-extern bool_t xdr_netobj (XDR *__xdrs, struct netobj *__np) __THROW;
-
-/*
- * These are the public routines for the various implementations of
- * xdr streams.
- */
-
-/* XDR using memory buffers */
-extern void xdrmem_create (XDR *__xdrs, const caddr_t __addr,
- u_int __size, enum xdr_op __xop) __THROW;
-
-/* XDR using stdio library */
-extern void xdrstdio_create (XDR *__xdrs, FILE *__file, enum xdr_op __xop)
- __THROW;
-
-/* XDR pseudo records for tcp */
-extern void xdrrec_create (XDR *__xdrs, u_int __sendsize,
- u_int __recvsize, caddr_t __tcp_handle,
- int (*__readit) (char *, char *, int),
- int (*__writeit) (char *, char *, int)) __THROW;
-
-/* make end of xdr record */
-extern bool_t xdrrec_endofrecord (XDR *__xdrs, bool_t __sendnow) __THROW;
-
-/* move to beginning of next record */
-extern bool_t xdrrec_skiprecord (XDR *__xdrs) __THROW;
-
-/* true if no more input */
-extern bool_t xdrrec_eof (XDR *__xdrs) __THROW;
-
-/* free memory buffers for xdr */
-extern void xdr_free (xdrproc_t __proc, char *__objp) __THROW;
-
-__END_DECLS
-
-#endif /* rpc/xdr.h */
diff --git a/mdk-stage1/dietlibc/include/sched.h b/mdk-stage1/dietlibc/include/sched.h
deleted file mode 100644
index 5e4430d29..000000000
--- a/mdk-stage1/dietlibc/include/sched.h
+++ /dev/null
@@ -1,74 +0,0 @@
-#ifndef _SCHED_H
-#define _SCHED_H 1
-
-#include <time.h>
-
-#include <sys/types.h>
-#ifndef u16
-#define u16 __u16
-#endif
-
-/* till those F**KIN' kernel headers are sane: A COPY !
- * #include <linux/sched.h>
- * A COPY OF THE STUFF WE NEED.... *GRUMBLE* */
-
-/*
- * cloning flags:
- */
-#define CSIGNAL 0x000000ff /* signal mask to be sent at exit */
-#define CLONE_VM 0x00000100 /* set if VM shared between processes */
-#define CLONE_FS 0x00000200 /* set if fs info shared between processes */
-#define CLONE_FILES 0x00000400 /* set if open files shared between processes */
-#define CLONE_SIGHAND 0x00000800 /* set if signal handlers and blocked signals shared */
-#define CLONE_PID 0x00001000 /* set if pid shared */
-#define CLONE_PTRACE 0x00002000 /* set if we want to let tracing continue on the child too */
-#define CLONE_VFORK 0x00004000 /* set if the parent wants the child to wake it up on mm_release */
-#define CLONE_PARENT 0x00008000 /* set if we want to have the same parent as the cloner */
-#define CLONE_THREAD 0x00010000 /* Same thread group? */
-
-#define CLONE_SIGNAL (CLONE_SIGHAND | CLONE_THREA)
-
-/*
- * Scheduling policies
- */
-#define SCHED_OTHER 0
-#define SCHED_FIFO 1
-#define SCHED_RR 2
-
-/*
- * This is an additional bit set when we want to
- * yield the CPU for one re-schedule..
- */
-#define SCHED_YIELD 0x10
-
-struct sched_param {
- int sched_priority;
-};
-
-/* END OF COPY form kernel-header */
-
-int __sched_setparam(pid_t pid, const struct sched_param *p);
-int sched_setparam(pid_t pid, const struct sched_param *p);
-
-int __sched_getparam(pid_t pid, struct sched_param *p);
-int sched_getparam(pid_t pid, struct sched_param *p);
-
-int __sched_getscheduler(pid_t pid);
-int sched_getscheduler(pid_t pid);
-
-int __sched_setscheduler(pid_t pid, int policy, const struct sched_param *p);
-int sched_setscheduler(pid_t pid, int policy, const struct sched_param *p);
-
-int __sched_yield(void);
-int sched_yield(void);
-
-int __sched_get_priority_max(int policy);
-int sched_get_priority_max(int policy);
-
-int __sched_get_priority_min(int policy);
-int sched_get_priority_min(int policy);
-
-int __sched_rr_get_interval(pid_t pid, struct timespec *tp);
-int sched_rr_get_interval(pid_t pid, struct timespec *tp);
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/scsi/scsi.h b/mdk-stage1/dietlibc/include/scsi/scsi.h
deleted file mode 100644
index 652e44ee9..000000000
--- a/mdk-stage1/dietlibc/include/scsi/scsi.h
+++ /dev/null
@@ -1,224 +0,0 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The GNU C 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-
-/*
- * This header file contains public constants and structures used by
- * the scsi code for linux.
- */
-
-#ifndef _SCSI_SCSI_H
-#define _SCSI_SCSI_H 1
-
-/*
- * SCSI opcodes
- */
-
-#define TEST_UNIT_READY 0x00
-#define REZERO_UNIT 0x01
-#define REQUEST_SENSE 0x03
-#define FORMAT_UNIT 0x04
-#define READ_BLOCK_LIMITS 0x05
-#define REASSIGN_BLOCKS 0x07
-#define READ_6 0x08
-#define WRITE_6 0x0a
-#define SEEK_6 0x0b
-#define READ_REVERSE 0x0f
-#define WRITE_FILEMARKS 0x10
-#define SPACE 0x11
-#define INQUIRY 0x12
-#define RECOVER_BUFFERED_DATA 0x14
-#define MODE_SELECT 0x15
-#define RESERVE 0x16
-#define RELEASE 0x17
-#define COPY 0x18
-#define ERASE 0x19
-#define MODE_SENSE 0x1a
-#define START_STOP 0x1b
-#define RECEIVE_DIAGNOSTIC 0x1c
-#define SEND_DIAGNOSTIC 0x1d
-#define ALLOW_MEDIUM_REMOVAL 0x1e
-
-#define SET_WINDOW 0x24
-#define READ_CAPACITY 0x25
-#define READ_10 0x28
-#define WRITE_10 0x2a
-#define SEEK_10 0x2b
-#define WRITE_VERIFY 0x2e
-#define VERIFY 0x2f
-#define SEARCH_HIGH 0x30
-#define SEARCH_EQUAL 0x31
-#define SEARCH_LOW 0x32
-#define SET_LIMITS 0x33
-#define PRE_FETCH 0x34
-#define READ_POSITION 0x34
-#define SYNCHRONIZE_CACHE 0x35
-#define LOCK_UNLOCK_CACHE 0x36
-#define READ_DEFECT_DATA 0x37
-#define MEDIUM_SCAN 0x38
-#define COMPARE 0x39
-#define COPY_VERIFY 0x3a
-#define WRITE_BUFFER 0x3b
-#define READ_BUFFER 0x3c
-#define UPDATE_BLOCK 0x3d
-#define READ_LONG 0x3e
-#define WRITE_LONG 0x3f
-#define CHANGE_DEFINITION 0x40
-#define WRITE_SAME 0x41
-#define READ_TOC 0x43
-#define LOG_SELECT 0x4c
-#define LOG_SENSE 0x4d
-#define MODE_SELECT_10 0x55
-#define RESERVE_10 0x56
-#define RELEASE_10 0x57
-#define MODE_SENSE_10 0x5a
-#define PERSISTENT_RESERVE_IN 0x5e
-#define PERSISTENT_RESERVE_OUT 0x5f
-#define MOVE_MEDIUM 0xa5
-#define READ_12 0xa8
-#define WRITE_12 0xaa
-#define WRITE_VERIFY_12 0xae
-#define SEARCH_HIGH_12 0xb0
-#define SEARCH_EQUAL_12 0xb1
-#define SEARCH_LOW_12 0xb2
-#define READ_ELEMENT_STATUS 0xb8
-#define SEND_VOLUME_TAG 0xb6
-#define WRITE_LONG_2 0xea
-
-/*
- * Status codes
- */
-
-#define GOOD 0x00
-#define CHECK_CONDITION 0x01
-#define CONDITION_GOOD 0x02
-#define BUSY 0x04
-#define INTERMEDIATE_GOOD 0x08
-#define INTERMEDIATE_C_GOOD 0x0a
-#define RESERVATION_CONFLICT 0x0c
-#define COMMAND_TERMINATED 0x11
-#define QUEUE_FULL 0x14
-
-#define STATUS_MASK 0x3e
-
-/*
- * SENSE KEYS
- */
-
-#define NO_SENSE 0x00
-#define RECOVERED_ERROR 0x01
-#define NOT_READY 0x02
-#define MEDIUM_ERROR 0x03
-#define HARDWARE_ERROR 0x04
-#define ILLEGAL_REQUEST 0x05
-#define UNIT_ATTENTION 0x06
-#define DATA_PROTECT 0x07
-#define BLANK_CHECK 0x08
-#define COPY_ABORTED 0x0a
-#define ABORTED_COMMAND 0x0b
-#define VOLUME_OVERFLOW 0x0d
-#define MISCOMPARE 0x0e
-
-
-/*
- * DEVICE TYPES
- */
-
-#define TYPE_DISK 0x00
-#define TYPE_TAPE 0x01
-#define TYPE_PROCESSOR 0x03 /* HP scanners use this */
-#define TYPE_WORM 0x04 /* Treated as ROM by our system */
-#define TYPE_ROM 0x05
-#define TYPE_SCANNER 0x06
-#define TYPE_MOD 0x07 /* Magneto-optical disk -
- * - treated as TYPE_DISK */
-#define TYPE_MEDIUM_CHANGER 0x08
-#define TYPE_ENCLOSURE 0x0d /* Enclosure Services Device */
-#define TYPE_NO_LUN 0x7f
-
-/*
- * standard mode-select header prepended to all mode-select commands
- *
- * moved here from cdrom.h -- kraxel
- */
-
-struct ccs_modesel_head
- {
- unsigned char _r1; /* reserved. */
- unsigned char medium; /* device-specific medium type. */
- unsigned char _r2; /* reserved. */
- unsigned char block_desc_length; /* block descriptor length. */
- unsigned char density; /* device-specific density code. */
- unsigned char number_blocks_hi; /* number of blocks in this block
- desc. */
- unsigned char number_blocks_med;
- unsigned char number_blocks_lo;
- unsigned char _r3;
- unsigned char block_length_hi; /* block length for blocks in this
- desc. */
- unsigned char block_length_med;
- unsigned char block_length_lo;
- };
-
-/*
- * MESSAGE CODES
- */
-
-#define COMMAND_COMPLETE 0x00
-#define EXTENDED_MESSAGE 0x01
-#define EXTENDED_MODIFY_DATA_POINTER 0x00
-#define EXTENDED_SDTR 0x01
-#define EXTENDED_EXTENDED_IDENTIFY 0x02 /* SCSI-I only */
-#define EXTENDED_WDTR 0x03
-#define SAVE_POINTERS 0x02
-#define RESTORE_POINTERS 0x03
-#define DISCONNECT 0x04
-#define INITIATOR_ERROR 0x05
-#define ABORT 0x06
-#define MESSAGE_REJECT 0x07
-#define NOP 0x08
-#define MSG_PARITY_ERROR 0x09
-#define LINKED_CMD_COMPLETE 0x0a
-#define LINKED_FLG_CMD_COMPLETE 0x0b
-#define BUS_DEVICE_RESET 0x0c
-
-#define INITIATE_RECOVERY 0x0f /* SCSI-II only */
-#define RELEASE_RECOVERY 0x10 /* SCSI-II only */
-
-#define SIMPLE_QUEUE_TAG 0x20
-#define HEAD_OF_QUEUE_TAG 0x21
-#define ORDERED_QUEUE_TAG 0x22
-
-/*
- * Here are some scsi specific ioctl commands which are sometimes useful.
- */
-/* These are a few other constants only used by scsi devices. */
-
-#define SCSI_IOCTL_GET_IDLUN 0x5382
-
-/* Used to turn on and off tagged queuing for scsi devices. */
-
-#define SCSI_IOCTL_TAGGED_ENABLE 0x5383
-#define SCSI_IOCTL_TAGGED_DISABLE 0x5384
-
-/* Used to obtain the host number of a device. */
-#define SCSI_IOCTL_PROBE_HOST 0x5385
-
-/* Used to get the bus number for a device. */
-#define SCSI_IOCTL_GET_BUS_NUMBER 0x5386
-
-#endif /* scsi/scsi.h */
diff --git a/mdk-stage1/dietlibc/include/scsi/scsi_ioctl.h b/mdk-stage1/dietlibc/include/scsi/scsi_ioctl.h
deleted file mode 100644
index bc9931838..000000000
--- a/mdk-stage1/dietlibc/include/scsi/scsi_ioctl.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The GNU C 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-
-#ifndef _SCSI_IOCTL_H
-#define _SCSI_IOCTL_H
-
-/* IOCTLs for SCSI. */
-#define SCSI_IOCTL_SEND_COMMAND 1 /* Send a command to the SCSI host. */
-#define SCSI_IOCTL_TEST_UNIT_READY 2 /* Test if unit is ready. */
-#define SCSI_IOCTL_BENCHMARK_COMMAND 3
-#define SCSI_IOCTL_SYNC 4 /* Request synchronous parameters. */
-#define SCSI_IOCTL_START_UNIT 5
-#define SCSI_IOCTL_STOP_UNIT 6
-#define SCSI_IOCTL_DOORLOCK 0x5380 /* Lock the eject mechanism. */
-#define SCSI_IOCTL_DOORUNLOCK 0x5381 /* Unlock the mechanism. */
-
-#endif
-
-
diff --git a/mdk-stage1/dietlibc/include/scsi/sg.h b/mdk-stage1/dietlibc/include/scsi/sg.h
deleted file mode 100644
index 00334654e..000000000
--- a/mdk-stage1/dietlibc/include/scsi/sg.h
+++ /dev/null
@@ -1,274 +0,0 @@
-/* Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The GNU C 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-
-/*
- History:
- Started: Aug 9 by Lawrence Foard (entropy@world.std.com), to allow user
- process control of SCSI devices.
- Development Sponsored by Killy Corp. NY NY
-*/
-
-#ifndef _SCSI_SG_H
-#define _SCSI_SG_H 1
-
-#include <sys/types.h>
-
-/* New interface introduced in the 3.x SG drivers follows */
-
-/* Same structure as used by readv() Linux system call. It defines one
- scatter-gather element. */
-typedef struct sg_iovec
-{
- void * iov_base; /* Starting address */
- size_t iov_len; /* Length in bytes */
-} sg_iovec_t;
-
-
-typedef struct sg_io_hdr
-{
- int interface_id; /* [i] 'S' for SCSI generic (required) */
- int dxfer_direction; /* [i] data transfer direction */
- unsigned char cmd_len; /* [i] SCSI command length ( <= 16 bytes) */
- unsigned char mx_sb_len; /* [i] max length to write to sbp */
- unsigned short int iovec_count; /* [i] 0 implies no scatter gather */
- unsigned int dxfer_len; /* [i] byte count of data transfer */
- void * dxferp; /* [i], [*io] points to data transfer memory
- or scatter gather list */
- unsigned char * cmdp; /* [i], [*i] points to command to perform */
- unsigned char * sbp; /* [i], [*o] points to sense_buffer memory */
- unsigned int timeout; /* [i] MAX_UINT->no timeout (unit: millisec) */
- unsigned int flags; /* [i] 0 -> default, see SG_FLAG... */
- int pack_id; /* [i->o] unused internally (normally) */
- void * usr_ptr; /* [i->o] unused internally */
- unsigned char status; /* [o] scsi status */
- unsigned char masked_status;/* [o] shifted, masked scsi status */
- unsigned char msg_status; /* [o] messaging level data (optional) */
- unsigned char sb_len_wr; /* [o] byte count actually written to sbp */
- unsigned short int host_status; /* [o] errors from host adapter */
- unsigned short int driver_status;/* [o] errors from software driver */
- int resid; /* [o] dxfer_len - actual_transferred */
- unsigned int duration; /* [o] time taken by cmd (unit: millisec) */
- unsigned int info; /* [o] auxiliary information */
-} sg_io_hdr_t;
-
-
-/* Use negative values to flag difference from original sg_header structure. */
-#define SG_DXFER_NONE -1 /* e.g. a SCSI Test Unit Ready command */
-#define SG_DXFER_TO_DEV -2 /* e.g. a SCSI WRITE command */
-#define SG_DXFER_FROM_DEV -3 /* e.g. a SCSI READ command */
-#define SG_DXFER_TO_FROM_DEV -4 /* treated like SG_DXFER_FROM_DEV with the
- additional property than during indirect
- IO the user buffer is copied into the
- kernel buffers before the transfer */
-
-
-/* following flag values can be "or"-ed together */
-#define SG_FLAG_DIRECT_IO 1 /* default is indirect IO */
-#define SG_FLAG_LUN_INHIBIT 2 /* default is to put device's lun into */
- /* the 2nd byte of SCSI command */
-#define SG_FLAG_NO_DXFER 0x10000 /* no transfer of kernel buffers to/from */
- /* user space (debug indirect IO) */
-
-/* The following 'info' values are "or"-ed together. */
-#define SG_INFO_OK_MASK 0x1
-#define SG_INFO_OK 0x0 /* no sense, host nor driver "noise" */
-#define SG_INFO_CHECK 0x1 /* something abnormal happened */
-
-#define SG_INFO_DIRECT_IO_MASK 0x6
-#define SG_INFO_INDIRECT_IO 0x0 /* data xfer via kernel buffers (or no xfer) */
-#define SG_INFO_DIRECT_IO 0x2 /* direct IO requested and performed */
-#define SG_INFO_MIXED_IO 0x4 /* part direct, part indirect IO */
-
-
-/* Request information about a specific SG device, used by
- SG_GET_SCSI_ID ioctl (). */
-struct sg_scsi_id {
- /* Host number as in "scsi<n>" where 'n' is one of 0, 1, 2 etc. */
- int host_no;
- int channel;
- /* SCSI id of target device. */
- int scsi_id;
- int lun;
- /* TYPE_... defined in <scsi/scsi.h>. */
- int scsi_type;
- /* Host (adapter) maximum commands per lun. */
- short int h_cmd_per_lun;
- /* Device (or adapter) maximum queue length. */
- short int d_queue_depth;
- /* Unused, set to 0 for now. */
- int unused[2];
-};
-
-/* Used by SG_GET_REQUEST_TABLE ioctl(). */
-typedef struct sg_req_info {
- char req_state; /* 0 -> not used, 1 -> written, 2 -> ready to read */
- char orphan; /* 0 -> normal request, 1 -> from interruped SG_IO */
- char sg_io_owned; /* 0 -> complete with read(), 1 -> owned by SG_IO */
- char problem; /* 0 -> no problem detected, 1 -> error to report */
- int pack_id; /* pack_id associated with request */
- void * usr_ptr; /* user provided pointer (in new interface) */
- unsigned int duration; /* millisecs elapsed since written (req_state==1)
- or request duration (req_state==2) */
- int unused;
-} sg_req_info_t;
-
-
-/* IOCTLs: Those ioctls that are relevant to the SG 3.x drivers follow.
- [Those that only apply to the SG 2.x drivers are at the end of the file.]
- (_GET_s yield result via 'int *' 3rd argument unless otherwise indicated) */
-
-#define SG_EMULATED_HOST 0x2203 /* true for emulated host adapter (ATAPI) */
-
-/* Used to configure SCSI command transformation layer for ATAPI devices */
-/* Only supported by the ide-scsi driver */
-#define SG_SET_TRANSFORM 0x2204 /* N.B. 3rd arg is not pointer but value: */
- /* 3rd arg = 0 to disable transform, 1 to enable it */
-#define SG_GET_TRANSFORM 0x2205
-
-#define SG_SET_RESERVED_SIZE 0x2275 /* request a new reserved buffer size */
-#define SG_GET_RESERVED_SIZE 0x2272 /* actual size of reserved buffer */
-
-/* The following ioctl has a 'sg_scsi_id_t *' object as its 3rd argument. */
-#define SG_GET_SCSI_ID 0x2276 /* Yields fd's bus, chan, dev, lun + type */
-/* SCSI id information can also be obtained from SCSI_IOCTL_GET_IDLUN */
-
-/* Override host setting and always DMA using low memory ( <16MB on i386) */
-#define SG_SET_FORCE_LOW_DMA 0x2279 /* 0-> use adapter setting, 1-> force */
-#define SG_GET_LOW_DMA 0x227a /* 0-> use all ram for dma; 1-> low dma ram */
-
-/* When SG_SET_FORCE_PACK_ID set to 1, pack_id is input to read() which
- tries to fetch a packet with a matching pack_id, waits, or returns EAGAIN.
- If pack_id is -1 then read oldest waiting. When ...FORCE_PACK_ID set to 0
- then pack_id ignored by read() and oldest readable fetched. */
-#define SG_SET_FORCE_PACK_ID 0x227b
-#define SG_GET_PACK_ID 0x227c /* Yields oldest readable pack_id (or -1) */
-
-#define SG_GET_NUM_WAITING 0x227d /* Number of commands awaiting read() */
-
-/* Yields max scatter gather tablesize allowed by current host adapter */
-#define SG_GET_SG_TABLESIZE 0x227F /* 0 implies can't do scatter gather */
-
-#define SG_GET_VERSION_NUM 0x2282 /* Example: version 2.1.34 yields 20134 */
-
-/* Returns -EBUSY if occupied. 3rd argument pointer to int (see next) */
-#define SG_SCSI_RESET 0x2284
-/* Associated values that can be given to SG_SCSI_RESET follow */
-#define SG_SCSI_RESET_NOTHING 0
-#define SG_SCSI_RESET_DEVICE 1
-#define SG_SCSI_RESET_BUS 2
-#define SG_SCSI_RESET_HOST 3
-
-/* synchronous SCSI command ioctl, (only in version 3 interface) */
-#define SG_IO 0x2285 /* similar effect as write() followed by read() */
-
-#define SG_GET_REQUEST_TABLE 0x2286 /* yields table of active requests */
-
-/* How to treat EINTR during SG_IO ioctl(), only in SG 3.x series */
-#define SG_SET_KEEP_ORPHAN 0x2287 /* 1 -> hold for read(), 0 -> drop (def) */
-#define SG_GET_KEEP_ORPHAN 0x2288
-
-
-#define SG_SCATTER_SZ (8 * 4096) /* PAGE_SIZE not available to user */
-/* Largest size (in bytes) a single scatter-gather list element can have.
- The value must be a power of 2 and <= (PAGE_SIZE * 32) [131072 bytes on
- i386]. The minimum value is PAGE_SIZE. If scatter-gather not supported
- by adapter then this value is the largest data block that can be
- read/written by a single scsi command. The user can find the value of
- PAGE_SIZE by calling getpagesize() defined in unistd.h . */
-
-#define SG_DEFAULT_RETRIES 1
-
-/* Defaults, commented if they differ from original sg driver */
-#define SG_DEF_FORCE_LOW_DMA 0 /* was 1 -> memory below 16MB on i386 */
-#define SG_DEF_FORCE_PACK_ID 0
-#define SG_DEF_KEEP_ORPHAN 0
-#define SG_DEF_RESERVED_SIZE SG_SCATTER_SZ /* load time option */
-
-/* maximum outstanding requests, write() yields EDOM if exceeded */
-#define SG_MAX_QUEUE 16
-
-#define SG_BIG_BUFF SG_DEF_RESERVED_SIZE /* for backward compatibility */
-
-/* Alternate style type names, "..._t" variants preferred */
-typedef struct sg_io_hdr Sg_io_hdr;
-typedef struct sg_io_vec Sg_io_vec;
-typedef struct sg_scsi_id Sg_scsi_id;
-typedef struct sg_req_info Sg_req_info;
-
-
-/* vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv */
-/* The older SG interface based on the 'sg_header' structure follows. */
-/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ */
-
-#define SG_MAX_SENSE 16 /* this only applies to the sg_header interface */
-
-struct sg_header
- {
- /* Length of incoming packet (including header). */
- int pack_len;
- /* Maximal length of expected reply. */
- int reply_len;
- /* Id number of packet. */
- int pack_id;
- /* 0==ok, otherwise error number. */
- int result;
- /* Force 12 byte command length for group 6 & 7 commands. */
- unsigned int twelve_byte:1;
- /* SCSI status from target. */
- unsigned int target_status:5;
- /* Host status (see "DID" codes). */
- unsigned int host_status:8;
- /* Driver status+suggestion. */
- unsigned int driver_status:8;
- /* Unused. */
- unsigned int other_flags:10;
- /* Output in 3 cases:
- when target_status is CHECK_CONDITION or
- when target_status is COMMAND_TERMINATED or
- when (driver_status & DRIVER_SENSE) is true. */
- unsigned char sense_buffer[SG_MAX_SENSE];
- };
-
-
-/* IOCTLs: The following are not required (or ignored) when the sg_io_hdr_t
- interface is used. They are kept for backward compatibility with
- the original and version 2 drivers. */
-
-#define SG_SET_TIMEOUT 0x2201 /* Set timeout; *(int *)arg==timeout. */
-#define SG_GET_TIMEOUT 0x2202 /* Get timeout; return timeout. */
-
-/* Get/set command queuing state per fd (default is SG_DEF_COMMAND_Q). */
-#define SG_GET_COMMAND_Q 0x2270 /* Yields 0 (queuing off) or 1 (on). */
-#define SG_SET_COMMAND_Q 0x2271 /* Change queuing state with 0 or 1. */
-
-/* Turn on error sense trace (1..8), dump this device to log/console (9)
- or dump all sg device states ( >9 ) to log/console. */
-#define SG_SET_DEBUG 0x227e /* 0 -> turn off debug */
-
-#define SG_NEXT_CMD_LEN 0x2283 /* Override SCSI command length with given
- number on the next write() on this file
- descriptor. */
-
-/* Defaults, commented if they differ from original sg driver */
-#define SG_DEFAULT_TIMEOUT (60*HZ) /* HZ == 'jiffies in 1 second' */
-#define SG_DEF_COMMAND_Q 0 /* command queuing is always on when
- the new interface is used */
-#define SG_DEF_UNDERRUN_FLAG 0
-
-
-#endif /* scsi/sg.h */
diff --git a/mdk-stage1/dietlibc/include/setjmp.h b/mdk-stage1/dietlibc/include/setjmp.h
deleted file mode 100644
index 66fc288f4..000000000
--- a/mdk-stage1/dietlibc/include/setjmp.h
+++ /dev/null
@@ -1,123 +0,0 @@
-#ifndef _SETJMP_H
-#define _SETJMP_H
-
-#include <sys/cdefs.h>
-
-#ifdef __i386__
-#ifndef __ASSEMBLER__
-typedef int __jmp_buf[6];
-#endif
-# define JB_BX 0
-# define JB_SI 1
-# define JB_DI 2
-# define JB_BP 3
-# define JB_SP 4
-# define JB_PC 5
-# define JB_SIZE 24
-#endif
-
-#ifdef __alpha__
-#define JB_S0 0
-#define JB_S1 1
-#define JB_S2 2
-#define JB_S3 3
-#define JB_S4 4
-#define JB_S5 5
-#define JB_PC 6
-#define JB_FP 7
-#define JB_SP 8
-#define JB_F2 9
-#define JB_F3 10
-#define JB_F4 11
-#define JB_F5 12
-#define JB_F6 13
-#define JB_F7 14
-#define JB_F8 15
-#define JB_F9 16
-#ifndef __ASSEMBLER__
-typedef long int __jmp_buf[17];
-#endif
-#endif
-
-#ifdef __mips__
-#ifndef __ASSEMBLER__
-typedef struct
- {
- void * __pc; /* Program counter. */
- void * __sp; /* Stack pointer. */
- int __regs[8]; /* Callee-saved registers s0 through s7. */
- void * __fp; /* The frame pointer. */
- void * __gp; /* The global pointer. */
- int __fpc_csr; /* Floating point status register. */
- double __fpregs[6]; /* Callee-saved floating point registers. */
- } __jmp_buf[1];
-#endif
-#endif
-
-#ifdef __sparc__
-#define JB_SP 0
-#define JB_FP 1
-#define JB_PC 2
-#ifndef __ASSEMBLER__
-typedef int __jmp_buf[3];
-#endif
-#endif
-
-#ifdef __arm__
-#define __JMP_BUF_SP 8
-#ifndef __ASSEMBLER__
-typedef int __jmp_buf[10];
-#endif
-#endif
-
-#ifdef __powerpc__
-# define JB_GPR1 0 /* Also known as the stack pointer */
-# define JB_GPR2 1
-# define JB_LR 2 /* The address we will return to */
-# define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18 in total */
-# define JB_CR 21 /* Condition code registers. */
-# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total */
-# define JB_SIZE (58*4)
-#ifndef __ASSEMBLER__
-typedef long int __jmp_buf[58];
-#endif
-#endif
-
-#ifndef __ASSEMBLER__
-
-typedef int sig_atomic_t;
-#define __sig_atomic_t sig_atomic_t
-
-# define _SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int)))
-typedef struct
- {
- unsigned long int __val[_SIGSET_NWORDS];
- } __sigset_t;
-
-/* Calling environment, plus possibly a saved signal mask. */
-typedef struct __jmp_buf_tag /* C++ doesn't like tagless structs. */
- {
- /* NOTE: The machine-dependent definitions of `__sigsetjmp'
- assume that a `jmp_buf' begins with a `__jmp_buf'.
- Do not move this member or add others before it. */
- __jmp_buf __jmpbuf; /* Calling environment. */
- int __mask_was_saved; /* Saved the signal mask? */
- __sigset_t __saved_mask; /* Saved signal mask. */
- } jmp_buf[1];
-
-extern int __sigsetjmp (jmp_buf __env, int __savemask) __THROW;
-
-extern void longjmp (jmp_buf __env, int __val)
- __THROW __attribute__ ((__noreturn__));
-
-typedef jmp_buf sigjmp_buf;
-
-extern void siglongjmp (sigjmp_buf __env, int __val)
- __THROW __attribute__ ((__noreturn__));
-
-#define setjmp(env) __sigsetjmp(env,0)
-#define sigsetjmp(a,b) __sigsetjmp(a,b)
-
-#endif
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/shadow.h b/mdk-stage1/dietlibc/include/shadow.h
deleted file mode 100644
index 4d6341af1..000000000
--- a/mdk-stage1/dietlibc/include/shadow.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef _SHADOW_H
-#define _SHADOW_H
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-
-struct spwd {
- char *sp_namp; /* user login name */
- char *sp_pwdp; /* encrypted password */
- long sp_lstchg; /* last password change */
- int sp_min; /* days until change allowed. */
- int sp_max; /* days before change required */
- int sp_warn; /* days warning for expiration */
- int sp_inact; /* days before account inactive */
- int sp_expire; /* date when account expires */
- int sp_flag; /* reserved for future use */
-};
-
-extern struct spwd *getspent(void) __THROW;
-extern void setspent(void) __THROW;
-extern void endspent(void) __THROW;
-extern struct spwd *getspnam (__const char *__name) __THROW;
-
-#endif /* _SHADOW_H */
diff --git a/mdk-stage1/dietlibc/include/signal.h b/mdk-stage1/dietlibc/include/signal.h
deleted file mode 100644
index 9ed93fe83..000000000
--- a/mdk-stage1/dietlibc/include/signal.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef _SIGNAL_H
-#define _SIGNAL_H
-
-#include <sys/cdefs.h>
-
-#define __WANT_POSIX1B_SIGNALS__
-
-#include <linux/types.h>
-#include <linux/signal.h>
-
-typedef void (*sighandler_t)(int);
-
-int sigemptyset(sigset_t *set) __THROW;
-int sigfillset(sigset_t *set) __THROW;
-int sigaddset(sigset_t *set, int signum) __THROW;
-int sigdelset(sigset_t *set, int signum) __THROW;
-int sigprocmask(int how, const sigset_t *set, sigset_t *oldset) __THROW;
-sighandler_t signal(int signum, sighandler_t action);
-int raise (int sig) __THROW;
-int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact) __THROW;
-int sigaltstack(const struct sigaltstack *newstack, struct sigaltstack *oldstack) __THROW;
-
-#ifndef SIGCLD
-#define SIGCLD SIGCHLD
-#endif
-
-extern const char *const sys_siglist[];
-
-typedef __sighandler_t sig_t;
-
-#ifndef NSIG
-#define NSIG _NSIG
-#endif
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/stdint.h b/mdk-stage1/dietlibc/include/stdint.h
deleted file mode 100644
index d287e6794..000000000
--- a/mdk-stage1/dietlibc/include/stdint.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef _STDINT_H
-#define _STDINT_H
-
-#include <sys/types.h>
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/stdio.h b/mdk-stage1/dietlibc/include/stdio.h
deleted file mode 100644
index 92d9dc0cb..000000000
--- a/mdk-stage1/dietlibc/include/stdio.h
+++ /dev/null
@@ -1,97 +0,0 @@
-#ifndef _STDIO_H
-#define _STDIO_H
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-
-typedef struct __stdio_file FILE;
-
-FILE *fopen (const char *path, const char *mode) __THROW;
-FILE *fdopen (int fildes, const char *mode) __THROW;
-FILE *freopen (const char *path, const char *mode, FILE *stream) __THROW;
-
-int printf(const char *format, ...) __THROW;
-int fprintf(FILE *stream, const char *format, ...) __THROW;
-int sprintf(char *str, const char *format, ...) __THROW;
-int snprintf(char *str, size_t size, const char *format, ...) __THROW;
-int asprintf(char **ptr, const char* format, ...) __THROW;
-
-int scanf( const char *format, ...) __THROW;
-int fscanf( FILE *stream, const char *format, ...) __THROW;
-int sscanf( const char *str, const char *format, ...) __THROW;
-
-#include <stdarg.h>
-
-int vprintf(const char *format, va_list ap) __THROW;
-int vfprintf(FILE *stream, const char *format, va_list ap) __THROW;
-int vsprintf(char *str, const char *format, va_list ap) __THROW;
-int vsnprintf(char *str, size_t size, const char *format, va_list ap) __THROW;
-
-int vscanf( const char *format, va_list ap) __THROW;
-int vsscanf( const char *str, const char *format, va_list ap) __THROW;
-int vfscanf( FILE *stream, const char *format, va_list ap) __THROW;
-
-int fgetc(FILE *stream) __THROW;
-char *fgets(char *s, int size, FILE *stream) __THROW;
-int getc(FILE *stream) __THROW;
-int getchar(void) __THROW;
-char *gets(char *s) __THROW;
-int ungetc(int c, FILE *stream) __THROW;
-
-int fputc(int c, FILE *stream) __THROW;
-int fputs(const char *s, FILE *stream) __THROW;
-
-#define putc(c,stream) fputc(c,stream)
-#define putchar(c) fputc(c,stdout)
-
-#define getchar() fgetc(stdin)
-#define getc(stream) fgetc(stream)
-
-int puts(const char *s) __THROW;
-
-long fseek( FILE *stream, long offset, int whence) __THROW;
-long ftell( FILE *stream) __THROW;
-void rewind( FILE *stream) __THROW;
-int fgetpos( FILE *stream, fpos_t *pos) __THROW;
-int fsetpos( FILE *stream, fpos_t *pos) __THROW;
-
-size_t fread( void *ptr, size_t size, size_t nmemb, FILE *stream) __THROW;
-
-size_t fwrite( const void *ptr, size_t size, size_t nmemb, FILE *stream) __THROW;
-
-int fflush(FILE *stream) __THROW;
-
-int fclose(FILE *stream) __THROW;
-
-void clearerr(FILE *stream) __THROW;
-int feof (FILE *stream) __THROW;
-int ferror( FILE *stream) __THROW;
-int fileno( FILE *stream) __THROW;
-
-int remove(const char *pathname) __THROW;
-
-void perror(const char *s) __THROW;
-
-extern FILE *stdin, *stdout, *stderr;
-
-#define EOF (int)(-1)
-
-#define BUFSIZ 128
-
-#define _IONBF 0
-#define _IOLBF 1
-#define _IOFBF 2
-
-int setvbuf(FILE *stream, char *buf, int mode , size_t size) __THROW;
-
-#define setbuf(stream,buf) setvbuf(stream,buf,buf?_IOFBF:_IONBF,BUFSIZ)
-#define setbuffer(stream,buf,size) setvbuf(stream,buf,buf?_IOFBF:_IONBF,size)
-#define setlinebuf(stream) setvbuf(stream,0,_IOLBF,BUFSIZ)
-
-FILE *popen(const char *command, const char *type) __THROW;
-int pclose(FILE *stream) __THROW;
-
-#define getc_unlocked(stream) getc(stream)
-#define putc_unlocked(c,stream) putc(c,stream)
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/stdlib.h b/mdk-stage1/dietlibc/include/stdlib.h
deleted file mode 100644
index 6a13a48ff..000000000
--- a/mdk-stage1/dietlibc/include/stdlib.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef _STDLIB_H
-#define _STDLIB_H
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-
-#define __LIBC_DIETLIBC__
-
-void *calloc(size_t nmemb, size_t size) __THROW;
-void *malloc(size_t size) __THROW;
-void free(void *ptr) __THROW;
-void *realloc(void *ptr, size_t size) __THROW;
-
-char *getenv(const char *name) __THROW __pure__;
-int putenv(const char *string) __THROW;
-int setenv(const char *name, const char *value, int overwrite) __THROW;
-void unsetenv(const char *name) __THROW;
-
-int atexit(void (*function)(void)) __THROW;
-
-double strtod(const char *nptr, char **endptr) __THROW;
-long int strtol(const char *nptr, char **endptr, int base) __THROW;
-unsigned long int strtoul(const char *nptr, char **endptr, int base) __THROW;
-
-int __ltostr(char *s, int size, unsigned long i, int base, char UpCase) __THROW;
-#ifdef __GNUC__
-long long int strtoll(const char *nptr, char **endptr, int base) __THROW;
-unsigned long long int strtoull(const char *nptr, char **endptr, int base) __THROW;
-int __lltostr(char *s, int size, unsigned long long i, int base, char UpCase) __THROW;
-#endif
-
-int atoi(const char *nptr) __THROW;
-long int atol(const char *nptr) __THROW;
-double atof(const char *nptr) __THROW;
-
-void exit(int status) __THROW __attribute__((noreturn));
-void abort(void) __THROW;
-
-/* warning: the rand() implementation of the diet libc really sucks. */
-#define RAND_MAX 32767
-
-extern int rand(void) __THROW;
-extern void srand(unsigned int seed) __THROW;
-
-void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)) __THROW;
-void *bsearch(const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)) __THROW;
-
-extern char **environ;
-
-#define EXIT_SUCCESS 0
-#define EXIT_FAILURE 1
-
-/* now this function is the greatest bullshit I have ever seen.
- * The ISO people must be out of their minds. */
-typedef struct { int quot,rem; } div_t;
-div_t div(int numer, int denom) __THROW __attribute__((const));
-
-void *alloca(size_t size) __THROW; /* gcc built-in */
-
-char *realpath(const char *path, char *resolved_path) __THROW;
-
-int abs(int j) __THROW;
-
-long int random(void) __THROW;
-void srandom(unsigned int seed) __THROW;
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/string.h b/mdk-stage1/dietlibc/include/string.h
deleted file mode 100644
index 1ef78ae54..000000000
--- a/mdk-stage1/dietlibc/include/string.h
+++ /dev/null
@@ -1,57 +0,0 @@
-#ifndef _STRING_H
-#define _STRING_H
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-
-char *strcpy(char *dest, const char *src) __THROW;
-char *strncpy(char *dest, const char *src, size_t n) __THROW;
-
-void *memccpy(void *dest, const void *src, int c, size_t n) __THROW;
-void *memcpy(void *dest, const void *src, size_t n) __THROW;
-void *memmove(void *dest, const void *src, size_t n) __THROW;
-
-int memccmp(const void *s1, const void *s2, int c, size_t n) __THROW __pure__;
-int memcmp(const void *s1, const void *s2, size_t n) __THROW __pure__;
-int strcmp(const char *s1, const char *s2) __THROW __pure__;
-int strncmp(const char *s1, const char *s2, size_t n) __THROW __pure__;
-
-int strcasecmp(const char *s1, const char *s2) __THROW __pure__;
-int strncasecmp(const char *s1, const char *s2, size_t n) __THROW __pure__;
-
-size_t strlen(const char *s) __THROW __pure__;
-
-char *strstr(const char *haystack, const char *needle) __THROW __pure__;
-
-char *strdup(const char *s) __THROW;
-
-char *strchr(const char *s, int c) __THROW __pure__;
-char *strrchr(const char *s, int c) __THROW __pure__;
-
-char *strcat(char *dest, const char *src) __THROW;
-char *strncat(char *dest, const char *src, size_t n) __THROW;
-
-size_t strspn(const char *s, const char *accept) __THROW;
-size_t strcspn(const char *s, const char *reject) __THROW;
-
-char *strpbrk(const char *s, const char *accept) __THROW;
-char *strsep(char **stringp, const char *delim) __THROW;
-
-void* memset(void *s, int c, size_t n) __THROW;
-
-#undef NULL
-#define NULL (void*)0
-
-#define bzero(s,n) memset(s,0,n)
-#define bcopy(src,dest,n) memmove(dest,src,n)
-#define bcmp(a,b,n) memcmp(a,b,n)
-
-char *strerror(int errnum) __THROW;
-char *strsignal(int signum) __THROW;
-
-char *strtok(char *s, const char *delim) __THROW;
-char *strtok_r(char *s, const char *delim, char **ptrptr) __THROW;
-
-int ffs(int i) __THROW __attribute__((__const__));
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/strings.h b/mdk-stage1/dietlibc/include/strings.h
deleted file mode 100644
index ec947a9b9..000000000
--- a/mdk-stage1/dietlibc/include/strings.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#warning "your code included obsolescent <strings.h>. Please change that to <string.h>!"
-#include <string.h>
diff --git a/mdk-stage1/dietlibc/include/sys/cdefs.h b/mdk-stage1/dietlibc/include/sys/cdefs.h
deleted file mode 100644
index 895bb74b8..000000000
--- a/mdk-stage1/dietlibc/include/sys/cdefs.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef _SYS_CDEFS_H
-#define _SYS_CDEFS_H
-
-#define __dietlibc__
-
-#ifndef __cplusplus
-#define throw ()
-#define __THROW
-#define __BEGIN_DECLS
-#define __END_DECLS
-#else
-#define __THROW throw ()
-#define __BEGIN_DECLS extern "C" {
-#define __END_DECLS }
-#endif
-
-#ifndef __GNUC__
-#define __attribute__(xyz)
-#endif
-
-#define __pure__
-#ifdef __GNUC__
-#if (__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >= 96))
-#undef __pure__
-#define __pure__ __attribute__ ((__pure__))
-#endif
-
-#if (__GNUC__ == 2) && (__GNUC_MINOR__ < 95)
-#define __restrict__
-#endif
-
-#endif
-
-#define __P(x) x
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/sys/file.h b/mdk-stage1/dietlibc/include/sys/file.h
deleted file mode 100644
index 93787fd42..000000000
--- a/mdk-stage1/dietlibc/include/sys/file.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef _SYS_FILE_H
-#define _SYS_FILE_H
-
-#include <sys/cdefs.h>
-
-extern int fcntl(int fd, int cmd, ...) __THROW;
-extern int flock(int fd, int operation) __THROW;
-
-/* Operations for the `flock' call. */
-#define LOCK_SH 1 /* Shared lock. */
-#define LOCK_EX 2 /* Exclusive lock. */
-#define LOCK_UN 8 /* Unlock. */
-
-/* Can be OR'd in to one of the above. */
-#define LOCK_NB 4 /* Don't block when locking. */
-
-
-
-#endif /* _SYS_FILE_H */
diff --git a/mdk-stage1/dietlibc/include/sys/io.h b/mdk-stage1/dietlibc/include/sys/io.h
deleted file mode 100644
index cce841735..000000000
--- a/mdk-stage1/dietlibc/include/sys/io.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef _IO_H
-#define _IO_H
-
-int ioperm(unsigned long from, unsigned long num, int turn_on) __THROW;
-
-#ifdef __i386__
-
-static __inline void
-outb (unsigned char value, unsigned short int port)
-{
- __asm__ __volatile__ ("outb %b0,%w1": :"a" (value), "Nd" (port));
-}
-
-static __inline unsigned char
-inb (unsigned short int port)
-{
- unsigned char _v;
-
- __asm__ __volatile__ ("inb %w1,%0":"=a" (_v):"Nd" (port));
- return _v;
-}
-
-static __inline unsigned short int
-inw (unsigned short int port)
-{
- unsigned short _v;
-
- __asm__ __volatile__ ("inw %w1,%0":"=a" (_v):"Nd" (port));
- return _v;
-}
-
-static __inline void
-outw (unsigned short int value, unsigned short int port)
-{
- __asm__ __volatile__ ("outw %w0,%w1": :"a" (value), "Nd" (port));
-
-}
-
-#endif
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/sys/ioctl.h b/mdk-stage1/dietlibc/include/sys/ioctl.h
deleted file mode 100644
index fca1aeeab..000000000
--- a/mdk-stage1/dietlibc/include/sys/ioctl.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef _IOCTL_H
-#define _IOCTL_H
-
-#include <sys/cdefs.h>
-#include <linux/ioctl.h>
-#include <asm/ioctls.h>
-
-int ioctl(int d, int request, ...) __THROW;
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/sys/ipc.h b/mdk-stage1/dietlibc/include/sys/ipc.h
deleted file mode 100644
index 9184a2a82..000000000
--- a/mdk-stage1/dietlibc/include/sys/ipc.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef _SYS_IPC_H
-#define _SYS_IPC_H
-
-#include <sys/cdefs.h>
-#include <linux/ipc.h>
-#include <asm/page.h>
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/sys/kd.h b/mdk-stage1/dietlibc/include/sys/kd.h
deleted file mode 100644
index 9e9a5152b..000000000
--- a/mdk-stage1/dietlibc/include/sys/kd.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef _SYS_KD_H
-#define _SYS_KD_H
-
-#include <linux/kd.h>
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/sys/mman.h b/mdk-stage1/dietlibc/include/sys/mman.h
deleted file mode 100644
index dc398ba90..000000000
--- a/mdk-stage1/dietlibc/include/sys/mman.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef _SYS_MMAN_H
-#define _SYS_MMAN_H
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <linux/mman.h>
-#include <asm/page.h>
-
-#ifndef PAGE_SIZE
-#warning PAGE_SIZE undefined
-#endif
-
-#define MAP_FAILED ((void *) -1)
-
-extern void *mmap (void *__addr, size_t __len, int __prot,
- int __flags, int __fd, off_t __offset);
-
-extern int munmap (void *__addr, size_t __len) __THROW;
-extern int mprotect (void *__addr, size_t __len, int __prot) __THROW;
-extern int msync (void *__addr, size_t __len, int __flags) __THROW;
-extern void *mremap (void *__addr, size_t __old_len, size_t __new_len,
- int __may_move) __THROW;
-extern int mincore (void *__start, size_t __len, unsigned char *__vec);
-
-#ifdef __quad_t
-extern void *mmap64 (void *__addr, size_t __len, int __prot,
- int __flags, int __fd, off64_t __offset) __THROW;
-#endif
-
-int mlockall(int flags) __THROW;
-int munlockall(void) __THROW;
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/sys/mount.h b/mdk-stage1/dietlibc/include/sys/mount.h
deleted file mode 100644
index 2e9e86774..000000000
--- a/mdk-stage1/dietlibc/include/sys/mount.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef _SYS_MOUNT_H
-#define _SYS_MOUNT_H
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <linux/fs.h>
-
-int mount(const char* specialfile, const char* dir, const char* filesystemtype,
- unsigned long rwflag, const void * data) __THROW;
-
-int umount(const char *specialfile) __THROW;
-
-int umount(const char *dir) __THROW;
-
-int umount2(const char *specialfile, int mflag) __THROW;
-
-int umount2(const char *dir, int mflag) __THROW;
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/sys/msg.h b/mdk-stage1/dietlibc/include/sys/msg.h
deleted file mode 100644
index ea1e470b6..000000000
--- a/mdk-stage1/dietlibc/include/sys/msg.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef _SYS_MSG_H
-#define _SYS_MSG_H
-
-#include <linux/msg.h>
-#include <sys/ipc.h>
-#include <asm/page.h>
-
-extern int msgctl (int msqid, int cmd, struct msqid_ds *buf) __THROW;
-extern int msgget (key_t key, int msgflg) __THROW;
-extern int msgrcv (int msqid, void *msgp, size_t msgsz, long int msgtyp, int msgflg) __THROW;
-extern int msgsnd (int msqid, const void *msgp, size_t msgsz, int msgflg) __THROW;
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/sys/mtio.h b/mdk-stage1/dietlibc/include/sys/mtio.h
deleted file mode 100644
index e70663407..000000000
--- a/mdk-stage1/dietlibc/include/sys/mtio.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef _SYS_MTIO_H
-#define _SYS_MTIO_H
-
-#include <linux/mtio.h>
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/sys/param.h b/mdk-stage1/dietlibc/include/sys/param.h
deleted file mode 100644
index 05f4d40e2..000000000
--- a/mdk-stage1/dietlibc/include/sys/param.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef _SYS_PARAM_H
-#define _SYS_PARAM_H
-
-#include <limits.h>
-
-#define MAXPATHLEN PATH_MAX
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/sys/poll.h b/mdk-stage1/dietlibc/include/sys/poll.h
deleted file mode 100644
index adce26687..000000000
--- a/mdk-stage1/dietlibc/include/sys/poll.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef _SYS_POLL_H
-#define _SYS_POLL_H
-
-#include <sys/cdefs.h>
-
-#include <linux/poll.h>
-
-extern int poll(struct pollfd *ufds, unsigned int nfds, int timeout) __THROW;
-
-
-#endif /* _SYS_POLL_H */
diff --git a/mdk-stage1/dietlibc/include/sys/ptrace.h b/mdk-stage1/dietlibc/include/sys/ptrace.h
deleted file mode 100644
index 9dd730bc6..000000000
--- a/mdk-stage1/dietlibc/include/sys/ptrace.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef _SYS_PTRACE_H
-#define _SYS_PTRACE_H
-
-#include <sys/cdefs.h>
-
-#include <linux/ptrace.h>
-
-extern long int ptrace (int request, ...) __THROW;
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/sys/reboot.h b/mdk-stage1/dietlibc/include/sys/reboot.h
deleted file mode 100644
index ba58d296a..000000000
--- a/mdk-stage1/dietlibc/include/sys/reboot.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef _SYS_REBOOT_H
-#define _SYS_REBOOT_H
-
-#include <linux/reboot.h>
-
-/* Reboot or halt the system. */
-int reboot (int flag, void *arg);
-
-#endif /* _SYS_REBOOT_H */
diff --git a/mdk-stage1/dietlibc/include/sys/resource.h b/mdk-stage1/dietlibc/include/sys/resource.h
deleted file mode 100644
index 442434cd1..000000000
--- a/mdk-stage1/dietlibc/include/sys/resource.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef _SYS_RESOURCE_H
-#define _SYS_RESOURCE_H
-
-#include <sys/cdefs.h>
-#include <linux/resource.h>
-
-int getpriority(int which, int who) __THROW;
-int setpriority(int which, int who, int prio) __THROW;
-
-int getrlimit (int resource, struct rlimit *rlim);
-int getrusage (int who, struct rusage *usage);
-int setrlimit (int resource, const struct rlimit *rlim);
-
-typedef unsigned long rlim_t;
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/sys/select.h b/mdk-stage1/dietlibc/include/sys/select.h
deleted file mode 100644
index e69de29bb..000000000
--- a/mdk-stage1/dietlibc/include/sys/select.h
+++ /dev/null
diff --git a/mdk-stage1/dietlibc/include/sys/sem.h b/mdk-stage1/dietlibc/include/sys/sem.h
deleted file mode 100644
index cc182649c..000000000
--- a/mdk-stage1/dietlibc/include/sys/sem.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef _SYS_SEM_H
-#define _SYS_SEM_H
-
-#include <linux/sem.h>
-#include <sys/ipc.h>
-
-extern int semget( key_t key, int nsems, int semflg) __THROW;
-extern int semctl(int semid, int semnum, int cmd, union semun arg) __THROW;
-extern int semop(int semid, struct sembuf *sops, unsigned nsops) __THROW;
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/sys/sendfile.h b/mdk-stage1/dietlibc/include/sys/sendfile.h
deleted file mode 100644
index 2e0c04add..000000000
--- a/mdk-stage1/dietlibc/include/sys/sendfile.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef _SYS_SENDFILE_H
-#define _SYS_SENDFILE_H
-
-#include <sys/cdefs.h>
-
-extern ssize_t sendfile (int __out_fd, int __in_fd, off_t *offset,
- size_t __count) __THROW;
-
-#endif /* sys/sendfile.h */
diff --git a/mdk-stage1/dietlibc/include/sys/shm.h b/mdk-stage1/dietlibc/include/sys/shm.h
deleted file mode 100644
index c27f5ddcf..000000000
--- a/mdk-stage1/dietlibc/include/sys/shm.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef _SYS_SHM_H
-#define _SYS_SHM_H
-
-#include <linux/shm.h>
-#include <sys/ipc.h>
-#include <asm/page.h>
-
-#ifndef PAGE_SIZE
-#define PAGE_SIZE getpagesize()
-#endif
-
-extern int shmget(key_t key, int size, int shmflg) __THROW;
-extern void *shmat(int shmid, const void *shmaddr, int shmflg) __THROW;
-extern int shmdt (const void *shmaddr) __THROW;
-extern int shmctl(int shmid, int cmd, struct shmid_ds *buf) __THROW;
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/sys/signal.h b/mdk-stage1/dietlibc/include/sys/signal.h
deleted file mode 100644
index 2e602dad8..000000000
--- a/mdk-stage1/dietlibc/include/sys/signal.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <signal.h>
diff --git a/mdk-stage1/dietlibc/include/sys/socket.h b/mdk-stage1/dietlibc/include/sys/socket.h
deleted file mode 100644
index a1435501c..000000000
--- a/mdk-stage1/dietlibc/include/sys/socket.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef _SYS_SOCKET_H
-#define _SYS_SOCKET_H
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <linux/socket.h>
-
-#ifndef SOCK_DGRAM
-/* the Linux kernel headers suck really badly on non-x86 */
-#define SOCK_STREAM 1 /* stream (connection) socket */
-#define SOCK_DGRAM 2 /* datagram (conn.less) socket */
-#define SOCK_RAW 3 /* raw socket */
-#define SOCK_RDM 4 /* reliably-delivered message */
-#define SOCK_SEQPACKET 5 /* sequential packet socket */
-#define SOCK_PACKET 10 /* linux specific way of */
-#endif
-
-struct sockaddr_storage {
- char __tmp[sizeof(struct sockaddr)];
-};
-
-int socket(int domain, int type, int protocol) __THROW;
-int accept(int s, struct sockaddr *addr, socklen_t *addrlen) __THROW;
-int connect(int sockfd, const struct sockaddr *serv_addr, socklen_t addrlen) __THROW;
-int bind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen) __THROW;
-int recv(int s, void *buf, size_t len, int flags) __THROW;
-int recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen) __THROW;
-int recvmsg(int s, struct msghdr *msg, int flags) __THROW;
-int send(int s, const void *msg, size_t len, int flags) __THROW;
-int sendto(int s, const void *msg, size_t len, int flags, const struct sockaddr *to, socklen_t tolen) __THROW;
-int sendmsg(int s, const struct msghdr *msg, int flags) __THROW;
-
-int getpeername(int s, struct sockaddr *name, socklen_t *namelen) __THROW;
-int getsockname(int s , struct sockaddr * name , socklen_t * namelen) __THROW;
-
-int getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen) __THROW;
-int setsockopt(int s, int level, int optname, const void *optval, socklen_t optlen) __THROW;
-
-int listen(int s, int backlog) __THROW;
-
-#define SHUT_RD 0
-#define SHUT_WR 1
-#define SHUT_RDWR 2
-int shutdown(int s, int how) __THROW;
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/sys/stat.h b/mdk-stage1/dietlibc/include/sys/stat.h
deleted file mode 100644
index 10fddfa42..000000000
--- a/mdk-stage1/dietlibc/include/sys/stat.h
+++ /dev/null
@@ -1,52 +0,0 @@
-#ifndef _SYS_STAT_H
-#define _SYS_STAT_H
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-
-#include <linux/stat.h>
-#include <asm/stat.h>
-
-#ifndef STAT64_HAS_BROKEN_ST_INO
-#define __NO_STAT64
-#endif
-
-extern int stat(const char *__file, struct stat *__buf) __THROW;
-extern int fstat(int __fd, struct stat *__buf) __THROW;
-extern int lstat(const char *__file, struct stat *__buf) __THROW;
-
-#ifdef __NO_STAT64
-#undef _FILE_OFFSET_BITS
-#else
-extern int stat64(const char *__file, struct stat64 *__buf) __THROW;
-extern int fstat64(int __fd, struct stat64 *__buf) __THROW;
-extern int lstat64(const char *__file, struct stat64 *__buf) __THROW;
-#endif
-
-#if _FILE_OFFSET_BITS == 64
-#define lstat(file,buf) lstat64(file,buf)
-#define fstat(file,buf) fstat64(file,buf)
-#define stat stat64
-#endif
-
-#define major(dev) (((dev)>>8) & 0xff)
-#define minor(dev) ((dev) & 0xff)
-#define makedev(major, minor) ((((unsigned int) (major)) << 8) | ((unsigned int) (minor)))
-
-extern int chmod (const char *__file, mode_t __mode) __THROW;
-
-extern int fchmod (int __fd, mode_t __mode) __THROW;
-
-extern mode_t umask (mode_t __mask) __THROW;
-
-extern int mkdir (const char *__path, mode_t __mode) __THROW;
-
-extern int mknod (const char *__path, mode_t __mode, dev_t __dev) __THROW;
-
-extern int mkfifo (const char *__path, mode_t __mode) __THROW;
-
-#define S_IREAD S_IRUSR
-#define S_IWRITE S_IWUSR
-#define S_IEXEC S_IXUSR
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/sys/syscall.h b/mdk-stage1/dietlibc/include/sys/syscall.h
deleted file mode 100644
index 5d6b5a4ad..000000000
--- a/mdk-stage1/dietlibc/include/sys/syscall.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef _SYSCALL_H
-#define _SYSCALL_H
-
-#include <asm/unistd.h>
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/sys/sysinfo.h b/mdk-stage1/dietlibc/include/sys/sysinfo.h
deleted file mode 100644
index 5f059d469..000000000
--- a/mdk-stage1/dietlibc/include/sys/sysinfo.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef _SYS_SYSINFO_H
-#define _SYS_SYSINFO_H
-
-#include <sys/cdefs.h>
-#include <linux/kernel.h>
-
-int sysinfo(struct sysinfo *info) __THROW;
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/sys/syslog.h b/mdk-stage1/dietlibc/include/sys/syslog.h
deleted file mode 100644
index 91bf0d1fa..000000000
--- a/mdk-stage1/dietlibc/include/sys/syslog.h
+++ /dev/null
@@ -1,102 +0,0 @@
-#ifndef _SYS_SYSLOG_H
-#define _SYS_SYSLOG_H 1
-
-#include <sys/cdefs.h>
-#include <stdarg.h>
-
-#define _PATH_LOG "/dev/log"
-
-/*
- * priorities/facilities are encoded into a single 32-bit quantity, where the
- * bottom 3 bits are the priority (0-7) and the top 28 bits are the facility
- * (0-big number). Both the priorities and the facilities map roughly
- * one-to-one to strings in the syslogd(8) source code. This mapping is
- * included in this file.
- *
- * priorities (these are ordered)
- */
-#define LOG_EMERG 0 /* system is unusable */
-#define LOG_ALERT 1 /* action must be taken immediately */
-#define LOG_CRIT 2 /* critical conditions */
-#define LOG_ERR 3 /* error conditions */
-#define LOG_WARNING 4 /* warning conditions */
-#define LOG_NOTICE 5 /* normal but significant condition */
-#define LOG_INFO 6 /* informational */
-#define LOG_DEBUG 7 /* debug-level messages */
-
-#define LOG_PRIMASK 0x07 /* mask to extract priority part (internal) */
- /* extract priority */
-#define LOG_PRI(p) ((p) & LOG_PRIMASK)
-#define LOG_MAKEPRI(fac, pri) (((fac) << 3) | (pri))
-
-/* facility codes */
-#define LOG_KERN (0<<3) /* kernel messages */
-#define LOG_USER (1<<3) /* random user-level messages */
-#define LOG_MAIL (2<<3) /* mail system */
-#define LOG_DAEMON (3<<3) /* system daemons */
-#define LOG_AUTH (4<<3) /* security/authorization messages */
-#define LOG_SYSLOG (5<<3) /* messages generated internally by syslogd */
-#define LOG_LPR (6<<3) /* line printer subsystem */
-#define LOG_NEWS (7<<3) /* network news subsystem */
-#define LOG_UUCP (8<<3) /* UUCP subsystem */
-#define LOG_CRON (9<<3) /* clock daemon */
-#define LOG_AUTHPRIV (10<<3) /* security/authorization messages (private) */
-#define LOG_FTP (11<<3) /* ftp daemon */
-
- /* other codes through 15 reserved for system use */
-#define LOG_LOCAL0 (16<<3) /* reserved for local use */
-#define LOG_LOCAL1 (17<<3) /* reserved for local use */
-#define LOG_LOCAL2 (18<<3) /* reserved for local use */
-#define LOG_LOCAL3 (19<<3) /* reserved for local use */
-#define LOG_LOCAL4 (20<<3) /* reserved for local use */
-#define LOG_LOCAL5 (21<<3) /* reserved for local use */
-#define LOG_LOCAL6 (22<<3) /* reserved for local use */
-#define LOG_LOCAL7 (23<<3) /* reserved for local use */
-
-#define LOG_NFACILITIES 24 /* current number of facilities */
-#define LOG_FACMASK 0x03f8 /* mask to extract facility part */
- /* facility of pri */
-#define LOG_FAC(p) (((p) & LOG_FACMASK) >> 3)
-
-/*
- * arguments to setlogmask.
- */
-#define LOG_MASK(pri) (1 << (pri)) /* mask for one priority */
-#define LOG_UPTO(pri) ((1 << ((pri)+1)) - 1) /* all priorities through pri */
-
-/*
- * Option flags for openlog.
- *
- * LOG_ODELAY no longer does anything.
- * LOG_NDELAY is the inverse of what it used to be.
- */
-#define LOG_PID 0x01 /* log the pid with each message */
-#define LOG_CONS 0x02 /* log on the console if errors in sending */
-#define LOG_ODELAY 0x04 /* delay open until first syslog() (default) */
-#define LOG_NDELAY 0x08 /* don't delay open */
-#define LOG_NOWAIT 0x10 /* don't wait for console forks: DEPRECATED */
-#define LOG_PERROR 0x20 /* log to stderr as well */
-
-/* Open connection to system logger. */
-/* against the glibc-routine ident has not to be const ! */
-/* instead ident is limited to 80 characters ! */
-void openlog (const char *ident, int option, int facility);
-
-void closelog (void) __THROW;
-
-int setlogmask (int mask) __THROW;
-
-void syslog (int priority, const char *format, ...) __THROW;
-
-void vsyslog (int priority, const char *format, va_list arg_ptr) __THROW;
-
-/* yuck yuck yuck, only needed for syslogd. */
-typedef struct _code {
- char *c_name;
- int c_val;
-} CODE;
-
-extern CODE prioritynames[];
-extern CODE facilitynames[];
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/sys/time.h b/mdk-stage1/dietlibc/include/sys/time.h
deleted file mode 100644
index 11144f57b..000000000
--- a/mdk-stage1/dietlibc/include/sys/time.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef _SYS_TIME_H
-#define _SYS_TIME_H 1
-
-#include <sys/cdefs.h>
-
-#include <sys/types.h>
-#include <linux/time.h>
-
-#if defined __USE_GNU || defined __USE_BSD
-typedef struct timezone *__timezone_ptr_t;
-#else
-typedef void *__timezone_ptr_t;
-#endif
-
-int getitimer(int which, struct itimerval *value) __THROW;
-int setitimer(int which, const struct itimerval *value, struct itimerval *ovalue) __THROW;
-
-int gettimeofday(struct timeval *tv, struct timezone *tz) __THROW;
-int settimeofday(const struct timeval *tv , const struct timezone *tz) __THROW;
-
-extern int adjtime (const struct timeval *__delta,
- struct timeval *__olddelta) __THROW;
-
-struct tm
-{
- int tm_sec; /* Seconds. [0-60] (1 leap second) */
- int tm_min; /* Minutes. [0-59] */
- int tm_hour; /* Hours. [0-23] */
- int tm_mday; /* Day. [1-31] */
- int tm_mon; /* Month. [0-11] */
- int tm_year; /* Year - 1900. */
- int tm_wday; /* Day of week. [0-6] */
- int tm_yday; /* Days in year.[0-365] */
- int tm_isdst; /* DST. [-1/0/1]*/
-
- long int tm_gmtoff; /* Seconds east of UTC. */
- const char *tm_zone; /* Timezone abbreviation. */
-};
-
-struct tm* gmtime(const time_t *t) __THROW;
-struct tm* gmtime_r(const time_t *t, struct tm *r) __THROW;
-
-struct tm* localtime(const time_t *t) __THROW;
-struct tm* localtime_r(const time_t *t, struct tm *r) __THROW;
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/sys/times.h b/mdk-stage1/dietlibc/include/sys/times.h
deleted file mode 100644
index 72ec62fec..000000000
--- a/mdk-stage1/dietlibc/include/sys/times.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef _SYS_TIMES_H
-#define _SYS_TIMES_H
-
-#include <linux/times.h>
-
-clock_t times(struct tms *buf);
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/sys/types.h b/mdk-stage1/dietlibc/include/sys/types.h
deleted file mode 100644
index 34dbaa9f1..000000000
--- a/mdk-stage1/dietlibc/include/sys/types.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef _SYS_TYPES_H
-#define _SYS_TYPES_H
-
-#include <linux/types.h>
-#include <linux/posix_types.h>
-#include <linux/socket.h>
-
-#ifdef __GNUC__
-#define __quad_t __quad_t
-typedef long long int __quad_t;
-typedef unsigned long long int __u_quad_t;
-#else
-#warning no long long support - no 64 bit file I/O support
-typedef long int __quad_t;
-typedef unsigned long int __u_quad_t;
-#endif
-
-
-#ifdef __quad_t
-typedef __quad_t off64_t;
-typedef __u_quad_t ino64_t;
-typedef __quad_t blkcnt64_t;
-#endif
-
-typedef long int fpos_t;
-
-#define socklen_t socklen_t
-typedef unsigned int socklen_t;
-
-typedef long int blksize_t;
-typedef long int blkcnt_t;
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/sys/uio.h b/mdk-stage1/dietlibc/include/sys/uio.h
deleted file mode 100644
index d64fd33c9..000000000
--- a/mdk-stage1/dietlibc/include/sys/uio.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef _SYS_UIO
-#define _SYS_UIO 1
-
-#include <linux/uio.h>
-
-int readv(int filedes, const struct iovec *vector, size_t count);
-int writev(int filedes, const struct iovec *vector, size_t count);
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/sys/un.h b/mdk-stage1/dietlibc/include/sys/un.h
deleted file mode 100644
index 213d9290e..000000000
--- a/mdk-stage1/dietlibc/include/sys/un.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef _SYS_UN_H
-#define _SYS_UN_H
-
-#include <sys/cdefs.h>
-
-#include <linux/un.h>
-
-#endif /* sys/un.h */
diff --git a/mdk-stage1/dietlibc/include/sys/utsname.h b/mdk-stage1/dietlibc/include/sys/utsname.h
deleted file mode 100644
index 37bf6c811..000000000
--- a/mdk-stage1/dietlibc/include/sys/utsname.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef _SYS_UTSNAME_H
-#define _SYS_UTSNAME_H 1
-
-#include <sys/cdefs.h>
-
-/* Length of the entries in `struct utsname' is 65. */
-#define _UTSNAME_LENGTH 65
-#define _UTSNAME_NODENAME_LENGTH _UTSNAME_LENGTH
-
-/* Linux provides as additional information in the `struct utsname'
- the name of the current domain. Define _UTSNAME_DOMAIN_LENGTH
- to a value != 0 to activate this entry. */
-#define _UTSNAME_DOMAIN_LENGTH _UTSNAME_LENGTH
-
-struct utsname {
- /* Name of the implementation of the operating system. */
- char sysname[_UTSNAME_LENGTH];
-
- /* Name of this node on the network. */
- char nodename[_UTSNAME_NODENAME_LENGTH];
-
- /* Current release level of this implementation. */
- char release[_UTSNAME_LENGTH];
- /* Current version level of this release. */
- char version[_UTSNAME_LENGTH];
-
- /* Name of the hardware type the system is running on. */
- char machine[_UTSNAME_LENGTH];
-
- /* Name of the domain of this node on the network. */
- char domainname[_UTSNAME_DOMAIN_LENGTH];
-};
-
-extern int uname (struct utsname *__name) __THROW;
-#endif
diff --git a/mdk-stage1/dietlibc/include/sys/vfs.h b/mdk-stage1/dietlibc/include/sys/vfs.h
deleted file mode 100644
index e4740a225..000000000
--- a/mdk-stage1/dietlibc/include/sys/vfs.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef _SYS_VFS_H
-#define _SYS_VFS_H
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <linux/vfs.h>
-
-int statfs(const char *path, struct statfs *buf) __THROW;
-int fstatfs(int fd, struct statfs *buf) __THROW;
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/sys/wait.h b/mdk-stage1/dietlibc/include/sys/wait.h
deleted file mode 100644
index eb70112e2..000000000
--- a/mdk-stage1/dietlibc/include/sys/wait.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef _SYS_WAIT_H
-#define _SYS_WAIT_H
-
-#include <sys/cdefs.h>
-#include <sys/resource.h>
-#include <linux/wait.h>
-
-/* If WIFEXITED(STATUS), the low-order 8 bits of the status. */
-#define __WEXITSTATUS(status) (((status) & 0xff00) >> 8)
-#define WEXITSTATUS __WEXITSTATUS
-
-/* If WIFSIGNALED(STATUS), the terminating signal. */
-#define __WTERMSIG(status) ((status) & 0x7f)
-#define WTERMSIG __WTERMSIG
-
-/* If WIFSTOPPED(STATUS), the signal that stopped the child. */
-#define __WSTOPSIG(status) __WEXITSTATUS(status)
-#define WSTOPSIG __WSTOPSIG
-
-/* Nonzero if STATUS indicates normal termination. */
-#define WIFEXITED(status) (__WTERMSIG(status) == 0)
-
-/* Nonzero if STATUS indicates termination by a signal. */
-#define WIFSIGNALED(status) (!WIFSTOPPED(status) && !WIFEXITED(status))
-
-/* Nonzero if STATUS indicates the child is stopped. */
-#define WIFSTOPPED(status) (((status) & 0xff) == 0x7f)
-
-
-pid_t wait(int *status) __THROW;
-pid_t waitpid(pid_t pid, int *status, int options) __THROW;
-
-pid_t wait3(int *status, int options, struct rusage *rusage) __THROW;
-
-pid_t wait4(pid_t pid, int *status, int options, struct rusage *rusage) __THROW;
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/syslog.h b/mdk-stage1/dietlibc/include/syslog.h
deleted file mode 100644
index 830b4928a..000000000
--- a/mdk-stage1/dietlibc/include/syslog.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <sys/syslog.h>
diff --git a/mdk-stage1/dietlibc/include/termios.h b/mdk-stage1/dietlibc/include/termios.h
deleted file mode 100644
index f10909c1b..000000000
--- a/mdk-stage1/dietlibc/include/termios.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef _TERMIOS_H
-#define _TERMIOS_H
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-
-/* man, the Linux kernel headers suck */
-#define __USE_BSD
-#include <linux/termios.h>
-#undef __USE_BSD
-
-pid_t tcgetpgrp(int fd) __THROW;
-int tcsetpgrp(int fd, pid_t pgrpid) __THROW;
-int tcgetattr(int fd, struct termios *termios_p) __THROW;
-int tcsetattr(int fd, int optional_actions, struct termios *termios_p) __THROW;
-speed_t cfgetospeed(struct termios *termios_p) __THROW;
-int cfsetospeed(struct termios *termios_p, speed_t speed) __THROW;
-speed_t cfgetispeed(struct termios *termios_p) __THROW;
-int cfsetispeed(struct termios *termios_p, speed_t speed) __THROW;
-int tcflush(int fd, int queue_selector) __THROW;
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/time.h b/mdk-stage1/dietlibc/include/time.h
deleted file mode 100644
index 827c85b97..000000000
--- a/mdk-stage1/dietlibc/include/time.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef _TIME_H
-#define _TIME_H
-
-#include <sys/cdefs.h>
-#include <sys/time.h>
-
-extern int __isleap(int year);
-
-int nanosleep(const struct timespec *req, struct timespec *rem) __THROW;
-unsigned int sleep(unsigned int secs) __THROW;
-
-time_t mktime(struct tm *timeptr) __THROW __pure__;
-
-char *asctime(const struct tm *timeptr) __THROW;
-char *asctime_r(const struct tm *timeptr, char *buf) __THROW;
-
-char *ctime(const time_t *timep) __THROW;
-
-size_t strftime(char *s, size_t max, const char *format, const struct tm *tm) __THROW;
-time_t time(time_t *t) __THROW;
-
-int stime(time_t *t) __THROW;
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/unistd.h b/mdk-stage1/dietlibc/include/unistd.h
deleted file mode 100644
index 1a528c0e4..000000000
--- a/mdk-stage1/dietlibc/include/unistd.h
+++ /dev/null
@@ -1,168 +0,0 @@
-#ifndef _UNISTD_H
-#define _UNISTD_H
-
-#include <sys/cdefs.h>
-#include <dirent.h>
-#include <sys/types.h>
-#include <sys/time.h>
-#include <getopt.h>
-#include <linux/sysctl.h>
-#include <sys/stat.h>
-
-/* Values for the second argument to access.
- These may be OR'd together. */
-#define R_OK 4 /* Test for read permission. */
-#define W_OK 2 /* Test for write permission. */
-#define X_OK 1 /* Test for execute permission. */
-#define F_OK 0 /* Test for existence. */
-
-/* Test for access to NAME using the real UID and real GID. */
-extern int access (__const char *__name, int __type) __THROW;
-
-#define SEEK_SET 0
-#define SEEK_CUR 1
-#define SEEK_END 2
-
-#define STDIN_FILENO 0
-#define STDOUT_FILENO 1
-#define STDERR_FILENO 2
-
-off_t lseek(int fildes, off_t offset, int whence) __THROW;
-int llseek(int fildes, unsigned long hi, unsigned long lo, loff_t* result,int whence) __THROW;
-#ifndef __NO_STAT64
-loff_t lseek64(int fildes, loff_t offset, int whence) __THROW;
-#endif
-#if _FILE_OFFSET_BITS == 64
-#define lseek(fildes,offset,whence) lseek64(fildes,offset,whence)
-#endif
-
-int chdir(const char *path) __THROW;
-int fchdir(int fd) __THROW;
-int mkdir(const char *pathname, mode_t mode) __THROW;
-int rmdir(const char *pathname) __THROW;
-char *getcwd(char *buf, size_t size) __THROW;
-
-int open(const char* pathname,int flags, ...) __THROW;
-int open64(const char* pathname,int flags, ...) __THROW;
-int creat(const char* pathname,mode_t mode) __THROW;
-int creat64(const char* pathname,mode_t mode) __THROW;
-int write(int fd,const void* buf,size_t len) __THROW;
-int read(int fd,void* buf,size_t len) __THROW;
-int close(int fd) __THROW;
-
-int unlink(const char *pathname) __THROW;
-
-int pread(int fd, void *buf, size_t count, off_t offset);
-int pwrite(int fd, const void *buf, size_t count, off_t offset);
-
-int execve(const char *filename, char *const argv [], char *const envp[]) __THROW;
-int execlp(const char *file, const char *arg, ...) __THROW;
-int execv(const char *path, char *const argv[]) __THROW;
-int execvp(const char *file, char *const argv[]) __THROW;
-int execl(const char *path, ...) __THROW;
-
-pid_t getpid(void) __attribute__((__const__)) __THROW;
-pid_t getppid(void) __THROW;
-int kill(pid_t pid, int sig) __THROW;
-
-int setpgid (pid_t pid,pid_t pgid) __THROW;
-pid_t getpgid (pid_t pid) __THROW;
-int setpgrp (void) __THROW;
-pid_t getpgrp (void) __THROW;
-pid_t setsid (void) __THROW;
-int dup (int oldfd) __THROW;
-int dup2 (int oldfd,int newfd) __THROW;
-
-int mknod(const char *pathname, mode_t mode, dev_t dev) __THROW;
-
-int getdents(unsigned int fd, struct dirent *dirp, unsigned int count) __THROW;
-int getdents64(unsigned int fd, struct dirent64 *dirp, unsigned int count) __THROW;
-
-pid_t fork(void) __THROW;
-pid_t vfork(void) __THROW;
-
-int readlink(const char *path, char *buf, size_t bufsiz) __THROW;
-int symlink(const char *oldpath, const char *newpath) __THROW;
-int link(const char *oldpath, const char *newpath) __THROW;
-
-int chown(const char *path, uid_t owner, gid_t group) __THROW;
-int fchown(int fd, uid_t owner, gid_t group) __THROW;
-int lchown(const char *path, uid_t owner, gid_t group) __THROW;
-
-int fsync(int fd) __THROW;
-
-int pipe(int filedes[2]) __THROW;
-
-char *ttyname (int desc) __THROW;
-
-int brk(void *end_data_segment) __THROW;
-void *sbrk(ptrdiff_t increment) __THROW;
-
-int gethostname(char *name, size_t len) __THROW;
-int sethostname(const char *name, size_t len) __THROW;
-
-void usleep(unsigned long usec) __THROW;
-unsigned int sleep(unsigned int seconds) __THROW;
-
-unsigned int alarm(unsigned int seconds) __THROW;
-int sync(void) __THROW;
-
-int isatty(int desc) __THROW;
-
-void _exit(int status) __THROW __attribute__((noreturn));
-
-extern int daemon (int nochdir,int noclose) __THROW;
-
-#if _FILE_OFFSET_BITS == 64
-#define open open64
-#define creat creat64
-#endif
-
-extern char* getlogin(void) __THROW;
-/* warning: the diet libc getlogin() simply returns getenv("LOGNAME") */
-
-int chroot(const char *path) __THROW;
-
-uid_t getuid(void) __THROW;
-uid_t geteuid(void) __THROW;
-gid_t getgid(void) __THROW;
-gid_t getegid(void) __THROW;
-int setuid(uid_t uid) __THROW;
-/* int seteuid(uid_t uid) __THROW; */
-int setgid(gid_t gid) __THROW;
-/* int setegid(gid_t gid) __THROW; */
-int setregid(gid_t rgid, gid_t egid) __THROW;
-int setreuid(uid_t ruid, uid_t euid) __THROW;
-#define seteuid(euid) setreuid(-1,euid)
-#define setegid(egid) setregid(-1,egid)
-
-int rename(const char *oldpath, const char *newpath) __THROW;
-int ftruncate(int fd, off_t length) __THROW;
-
-int mkstemp(char *Template) __THROW;
-
-int select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout) __THROW;
-
-int nice(int inc) __THROW;
-
-extern char *__environ[];
-
-char *crypt(const char *key, const char *salt) __THROW;
-void encrypt(char block[64], int edflag) __THROW;
-void setkey(const char *key) __THROW;
-
-size_t getpagesize(void) __attribute__((__const__)) __THROW;
-
-int getdomainname(char *name, size_t len) __THROW;
-int setdomainname(const char *name, size_t len) __THROW;
-
-int getgroups(int size, gid_t list[]) __THROW;
-
-/* warning: linux specific: */
-int _sysctl(struct __sysctl_args *args) __THROW;
-int sendfile(int out_fd, int in_fd, off_t *offset, size_t count) __THROW;
-
-int getdtablesize(void) __THROW;
-char *getpass(const char * prompt) __THROW;
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/utime.h b/mdk-stage1/dietlibc/include/utime.h
deleted file mode 100644
index 41674f379..000000000
--- a/mdk-stage1/dietlibc/include/utime.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef _UTIME_H
-#define _UTIME_H
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <time.h>
-
-struct utimbuf {
- time_t actime; /* access time */
- time_t modtime; /* modification time */
-};
-
-int utime(const char *filename, struct utimbuf *buf) __THROW;
-
-
-#endif
diff --git a/mdk-stage1/dietlibc/include/utmp.h b/mdk-stage1/dietlibc/include/utmp.h
deleted file mode 100644
index 2946be921..000000000
--- a/mdk-stage1/dietlibc/include/utmp.h
+++ /dev/null
@@ -1,73 +0,0 @@
-#ifndef _UTMP_H
-#define _UTMP_H
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <time.h>
-
-#define UT_LINESIZE 32
-#define UT_NAMESIZE 32
-#define UT_HOSTSIZE 256
-
-#define _PATH_UTMP "/var/run/utmp"
-#define _PATH_WTMP "/var/log/wtmp"
-
-/* The structure describing an entry in the database of
- previous logins. */
-struct lastlog
- {
- time_t ll_time;
- char ll_line[UT_LINESIZE];
- char ll_host[UT_HOSTSIZE];
- };
-
-/* The structure describing the status of a terminated process. This
- type is used in `struct utmp' below. */
-struct exit_status
- {
- short int e_termination; /* Process termination status. */
- short int e_exit; /* Process exit status. */
- };
-
-/* The structure describing an entry in the user accounting database. */
-struct utmp
-{
- short int ut_type; /* Type of login. */
- pid_t ut_pid; /* Process ID of login process. */
- char ut_line[UT_LINESIZE]; /* Devicename. */
- char ut_id[4]; /* Inittab ID. */
- char ut_user[UT_NAMESIZE]; /* Username. */
- char ut_host[UT_HOSTSIZE]; /* Hostname for remote login. */
-#define ut_name ut_host
- struct exit_status ut_exit; /* Exit status of a process marked
- as DEAD_PROCESS. */
- long int ut_session; /* Session ID, used for windowing. */
- struct timeval ut_tv; /* Time entry was made. */
- int32_t ut_addr_v6[4]; /* Internet address of remote host. */
- char __unused[20]; /* Reserved for future use. */
-};
-
-/* Values for the `ut_type' field of a `struct utmp'. */
-#define EMPTY 0 /* No valid user accounting information. */
-
-#define RUN_LVL 1 /* The system's runlevel. */
-#define BOOT_TIME 2 /* Time of system boot. */
-#define NEW_TIME 3 /* Time after system clock changed. */
-#define OLD_TIME 4 /* Time when system clock changed. */
-
-#define INIT_PROCESS 5 /* Process spawned by the init process. */
-#define LOGIN_PROCESS 6 /* Session leader of a logged in user. */
-#define USER_PROCESS 7 /* Normal process. */
-#define DEAD_PROCESS 8 /* Terminated process. */
-
-#define ACCOUNTING 9
-
-/* Tell the user that we have a modern system with UT_HOST, UT_PID,
- UT_TYPE, UT_ID and UT_TV fields. */
-#define _HAVE_UT_TYPE 1
-#define _HAVE_UT_PID 1
-#define _HAVE_UT_ID 1
-#define _HAVE_UT_TV 1
-#define _HAVE_UT_HOST 1
-
-#endif
diff --git a/mdk-stage1/dietlibc/lib/__dtostr.c b/mdk-stage1/dietlibc/lib/__dtostr.c
deleted file mode 100644
index e9a8a83d3..000000000
--- a/mdk-stage1/dietlibc/lib/__dtostr.c
+++ /dev/null
@@ -1,104 +0,0 @@
-#include <stdio.h>
-/* convert double to string. Helper for sprintf. */
-
-int __dtostr(double d,char *buf,int maxlen,int prec) {
- unsigned long long *x=(unsigned long long *)&d;
- /* step 1: extract sign, mantissa and exponent */
- signed int s=*x>>63;
- signed long e=((*x>>52)&((1<<11)-1))-1023;
-/* unsigned long long m=*x & ((1ull<<52)-1); */
- /* step 2: exponent is base 2, compute exponent for base 10 */
- signed long e10=1+(long)(e*0.30102999566398119802); /* log10(2) */
- /* step 3: calculate 10^e10 */
- int i;
- double tmp=10.0;
- char *oldbuf=buf;
- int initial=1;
-
- if (d==0.0) {
- *buf='0'; ++buf;
- goto done;
- }
- if (s) { d=-d; *buf='-'; --maxlen; buf++; }
-/* printf("e=%d e10=%d prec=%d\n",e,e10,prec); */
- if (e10>=0) {
- i=e10;
- while (i>10) { tmp=tmp*1e10; i-=10; }
- while (i>1) { tmp=tmp*10; --i; }
- } else {
- i=(e10=-e10);
- while (i>10) { tmp=tmp*1e-10; i-=10; }
- while (i>1) { tmp=tmp/10; --i; }
- }
- while (d/tmp<1) {
- --e10;
- tmp/=10.0;
- }
- /* step 4: see if precision is sufficient to display all digits */
- if (e10>prec) {
- /* use scientific notation */
- int len=__dtostr(d/tmp,buf,maxlen,prec);
- if (len==0) return 0;
- maxlen-=len; buf+=len;
- if (--maxlen>=0) {
- *buf='e';
- ++buf;
- }
- for (len=1000; len>0; len/=10) {
- if (e10>=len || !initial) {
- if (--maxlen>=0) {
- *buf=(e10/len)+'0';
- ++buf;
- }
- initial=0;
- e10=e10%len;
- }
- }
- if (maxlen>=0) return buf-oldbuf;
- return 0;
- }
- /* step 5: loop through the digits, inserting the decimal point when
- * appropriate */
- if (d<1.0) {
- double x=1.0;
- int first=1;
- do {
- if (--maxlen<0) return buf-oldbuf;
- *buf='0'; ++buf;
- if (first) {
- first=0;
- *buf='.'; ++buf;
- if (--maxlen<0) return buf-oldbuf;
- }
- x/=10.0;
- } while (x>d);
- }
- for (; prec>0; ) {
- double tmp2=d/tmp;
- char c;
- d-=((int)tmp2*tmp);
- c=((int)tmp2);
- if ((!initial)||c) {
- if (--maxlen>=0) {
- initial=0;
- *buf=c+'0';
- ++buf;
- } else
- return 0;
- --prec;
- }
- if (tmp>0.5 && tmp<1.5) {
- tmp=1e-1;
- initial=0;
- if (--maxlen>=0) {
- *buf='.';
- ++buf;
- } else
- return 0;
- } else
- tmp/=10.0;
- }
-done:
- *buf=0;
- return buf-oldbuf;
-}
diff --git a/mdk-stage1/dietlibc/lib/__fstat64.c b/mdk-stage1/dietlibc/lib/__fstat64.c
deleted file mode 100644
index 6f9fcb2c5..000000000
--- a/mdk-stage1/dietlibc/lib/__fstat64.c
+++ /dev/null
@@ -1,25 +0,0 @@
-#include "dietfeatures.h"
-
-#ifdef WANT_LARGEFILE_BACKCOMPAT
-#include <sys/stat.h>
-#ifndef __NO_STAT64
-#include <errno.h>
-
-extern int __dietlibc_fstat64(int __fd, struct stat64 *__buf);
-extern void __stat64_cvt(const struct stat *src,struct stat64 *dest);
-
-int fstat64(int __fd, struct stat64 *__buf) {
- if (__dietlibc_fstat64(__fd,__buf)) {
- struct stat temp;
-#ifdef WANT_THREAD_SAFE
- if (*__errno_location()!=ENOSYS) return -1;
-#else
- if (errno!=ENOSYS) return -1;
-#endif
- if (fstat(__fd,&temp)) return -1;
- __stat64_cvt(&temp,__buf);
- }
- return 0;
-}
-#endif
-#endif
diff --git a/mdk-stage1/dietlibc/lib/__getcwd.c b/mdk-stage1/dietlibc/lib/__getcwd.c
deleted file mode 100644
index e97fc4520..000000000
--- a/mdk-stage1/dietlibc/lib/__getcwd.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <stdlib.h>
-
-extern int __syscall_getcwd(char* buf, size_t size);
-
-char *getcwd(char *buf, size_t size) {
- int tmp;
- if ((tmp=__syscall_getcwd(buf,size))<0) return 0;
- buf[tmp]=0;
- return buf;
-}
diff --git a/mdk-stage1/dietlibc/lib/__isnan.c b/mdk-stage1/dietlibc/lib/__isnan.c
deleted file mode 100644
index 9d21e9824..000000000
--- a/mdk-stage1/dietlibc/lib/__isnan.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <stdio.h>
-
-int __isnan(double d) {
- unsigned long long *x=(unsigned long long *)&d;
- return (*x==0x7FF8002000000000ll || *x==0x7FF0002000000000);
-}
-
-#if 0
-TestFromIeeeExtended("7FFF0000000000000000"); /* +infinity */
-TestFromIeeeExtended("FFFF0000000000000000"); /* -infinity */
-TestFromIeeeExtended("7FFF8001000000000000"); /* Quiet NaN(1) */
-TestFromIeeeExtended("7FFF0001000000000000"); /* Signalling NaN(1) */
-TestFromIeeeExtended("3FFFFEDCBA9876543210"); /* accuracy test */
-#endif
diff --git a/mdk-stage1/dietlibc/lib/__lltostr.c b/mdk-stage1/dietlibc/lib/__lltostr.c
deleted file mode 100644
index eb4a27cef..000000000
--- a/mdk-stage1/dietlibc/lib/__lltostr.c
+++ /dev/null
@@ -1,31 +0,0 @@
-#include <string.h>
-
-int __lltostr(char *s, int size, unsigned long long i, int base, char UpCase)
-{
- char *tmp;
- int j=0;
-
- s[--size]=0;
-
- tmp=s+size;
-
- if ((base==0)||(base>36)) base=10;
-
- j=0;
- if (!i)
- {
- *(--tmp)='0';
- j=1;
- }
-
- while((tmp>s)&&(i))
- {
- tmp--;
- if ((*tmp=i%base+'0')>'9') *tmp+=(UpCase?'A':'a')-'9'-1;
- i=i/base;
- j++;
- }
- memmove(s,tmp,j+1);
-
- return j;
-}
diff --git a/mdk-stage1/dietlibc/lib/__lstat64.c b/mdk-stage1/dietlibc/lib/__lstat64.c
deleted file mode 100644
index a871f3917..000000000
--- a/mdk-stage1/dietlibc/lib/__lstat64.c
+++ /dev/null
@@ -1,25 +0,0 @@
-#include "dietfeatures.h"
-
-#ifdef WANT_LARGEFILE_BACKCOMPAT
-#include <sys/stat.h>
-#ifndef __NO_STAT64
-#include <errno.h>
-
-extern int __dietlibc_lstat64(const char *__file, struct stat64 *__buf);
-extern void __stat64_cvt(const struct stat *src,struct stat64 *dest);
-
-int lstat64(const char *__file, struct stat64 *__buf) {
- if (__dietlibc_lstat64(__file,__buf)) {
- struct stat temp;
-#ifdef WANT_THREAD_SAFE
- if (*__errno_location()!=ENOSYS) return -1;
-#else
- if (errno!=ENOSYS) return -1;
-#endif
- if (lstat(__file,&temp)) return -1;
- __stat64_cvt(&temp,__buf);
- }
- return 0;
-}
-#endif
-#endif
diff --git a/mdk-stage1/dietlibc/lib/__ltostr.c b/mdk-stage1/dietlibc/lib/__ltostr.c
deleted file mode 100644
index 57e0690d2..000000000
--- a/mdk-stage1/dietlibc/lib/__ltostr.c
+++ /dev/null
@@ -1,31 +0,0 @@
-#include <string.h>
-
-int __ltostr(char *s, int size, unsigned long i, int base, char UpCase)
-{
- char *tmp;
- int j=0;
-
- s[--size]=0;
-
- tmp=s+size;
-
- if ((base==0)||(base>36)) base=10;
-
- j=0;
- if (!i)
- {
- *(--tmp)='0';
- j=1;
- }
-
- while((tmp>s)&&(i))
- {
- tmp--;
- if ((*tmp=i%base+'0')>'9') *tmp+=(UpCase?'A':'a')-'9'-1;
- i=i/base;
- j++;
- }
- memmove(s,tmp,j+1);
-
- return j;
-}
diff --git a/mdk-stage1/dietlibc/lib/__stat64.c b/mdk-stage1/dietlibc/lib/__stat64.c
deleted file mode 100644
index dfb0d4315..000000000
--- a/mdk-stage1/dietlibc/lib/__stat64.c
+++ /dev/null
@@ -1,25 +0,0 @@
-#include "dietfeatures.h"
-
-#ifdef WANT_LARGEFILE_BACKCOMPAT
-#include <sys/stat.h>
-#ifndef __NO_STAT64
-#include <errno.h>
-
-extern int __dietlibc_stat64(const char *__file, struct stat64 *__buf);
-extern void __stat64_cvt(const struct stat *src,struct stat64 *dest);
-
-int stat64(const char *__file, struct stat64 *__buf) {
- if (__dietlibc_stat64(__file,__buf)) {
- struct stat temp;
-#ifdef WANT_THREAD_SAFE
- if (*__errno_location()!=ENOSYS) return -1;
-#else
- if (errno!=ENOSYS) return -1;
-#endif
- if (stat(__file,&temp)) return -1;
- __stat64_cvt(&temp,__buf);
- }
- return 0;
-}
-#endif
-#endif
diff --git a/mdk-stage1/dietlibc/lib/__stat64_cvt.c b/mdk-stage1/dietlibc/lib/__stat64_cvt.c
deleted file mode 100644
index dced352a4..000000000
--- a/mdk-stage1/dietlibc/lib/__stat64_cvt.c
+++ /dev/null
@@ -1,18 +0,0 @@
-#include <sys/stat.h>
-#ifndef __NO_STAT64
-
-void __stat64_cvt(const struct stat *src,struct stat64 *dest) {
- dest->st_dev=src->st_dev;
- dest->st_ino=src->st_ino;
- dest->st_mode=src->st_mode;
- dest->st_nlink=src->st_nlink;
- dest->st_uid=src->st_gid;
- dest->st_rdev=src->st_rdev;
- dest->st_size=src->st_size;
- dest->st_blksize=src->st_blksize;
- dest->st_blocks=src->st_blocks;
- dest->st_atime=src->st_atime;
- dest->st_mtime=src->st_mtime;
- dest->st_ctime=src->st_ctime;
-}
-#endif
diff --git a/mdk-stage1/dietlibc/lib/__xmknod.c b/mdk-stage1/dietlibc/lib/__xmknod.c
deleted file mode 100644
index 4739a1f5f..000000000
--- a/mdk-stage1/dietlibc/lib/__xmknod.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <sys/stat.h>
-
-int __xmknod(int ver,char* filename,mode_t mode,dev_t *dev) {
- return mknod(filename,mode,*dev);
-}
-
diff --git a/mdk-stage1/dietlibc/lib/_brk.c b/mdk-stage1/dietlibc/lib/_brk.c
deleted file mode 100644
index 6d0b29c03..000000000
--- a/mdk-stage1/dietlibc/lib/_brk.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <unistd.h>
-
-extern int __diet_brk(void *end_data_segment);
-
-void* __curbrk=0;
-
-int __brk(void *end_data_segment) {
- int res;
- if ((res=__diet_brk(end_data_segment))==0)
- __curbrk=end_data_segment;
- return res;
-}
-
-int brk (void *end_data_segment) __attribute__((weak,alias("__brk")));
diff --git a/mdk-stage1/dietlibc/lib/abort.c b/mdk-stage1/dietlibc/lib/abort.c
deleted file mode 100644
index 55bfb8f0f..000000000
--- a/mdk-stage1/dietlibc/lib/abort.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <linux/types.h>
-#include <linux/signal.h>
-#include <signal.h>
-#include <stdlib.h>
-
-void abort() {
- sigset_t t;
- if (!sigemptyset(&t) && !sigaddset(&t, SIGABRT))
- sigprocmask(SIG_UNBLOCK, &t, 0);
- while (1)
- if (raise(SIGABRT))
- exit(127);
-}
diff --git a/mdk-stage1/dietlibc/lib/abs.c b/mdk-stage1/dietlibc/lib/abs.c
deleted file mode 100644
index 9d7055358..000000000
--- a/mdk-stage1/dietlibc/lib/abs.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <stdlib.h>
-
-int abs(int j)
-{
- return (j < 0) ? -j : j;
-}
diff --git a/mdk-stage1/dietlibc/lib/accept.c b/mdk-stage1/dietlibc/lib/accept.c
deleted file mode 100644
index c7e8254ca..000000000
--- a/mdk-stage1/dietlibc/lib/accept.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <linux/net.h>
-
-extern int socketcall(int callno,long* args);
-
-int __libc_accept(int a, void * addr, void * addr2) {
-#ifdef __i386__
- return socketcall(SYS_ACCEPT, (long*)&a);
-#else
- unsigned long args[] = { a, (long) addr, (long) addr2 };
- return socketcall(SYS_ACCEPT, args);
-#endif
-}
-
-int accept(int a, void * addr, void * addr2) __attribute__((weak,alias("__libc_accept")));
diff --git a/mdk-stage1/dietlibc/lib/alarm.c b/mdk-stage1/dietlibc/lib/alarm.c
deleted file mode 100644
index fd35372f2..000000000
--- a/mdk-stage1/dietlibc/lib/alarm.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright (C) 1991, 1992, 1994, 1997 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The GNU C 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-
-#include <unistd.h>
-#include <sys/time.h>
-
-/* Schedule an alarm. In SECONDS seconds, the process will get a SIGALRM.
- If SECONDS is zero, any currently scheduled alarm will be cancelled.
- The function returns the number of seconds remaining until the last
- alarm scheduled would have signaled, or zero if there wasn't one.
- There is no return value to indicate an error, but you can set `errno'
- to 0 and check its value after calling `alarm', and this might tell you.
- The signal may come late due to processor scheduling. */
-unsigned int
-alarm (seconds)
- unsigned int seconds;
-{
- struct itimerval old, new;
- unsigned int retval;
-
- new.it_interval.tv_usec = 0;
- new.it_interval.tv_sec = 0;
- new.it_value.tv_usec = 0;
- new.it_value.tv_sec = (long int) seconds;
- if (setitimer (ITIMER_REAL, &new, &old) < 0)
- return 0;
-
- retval = old.it_value.tv_sec;
- if (old.it_value.tv_usec)
- ++retval;
- return retval;
-}
diff --git a/mdk-stage1/dietlibc/lib/alloc.c b/mdk-stage1/dietlibc/lib/alloc.c
deleted file mode 100644
index 8cb87a69b..000000000
--- a/mdk-stage1/dietlibc/lib/alloc.c
+++ /dev/null
@@ -1,243 +0,0 @@
-/*
- * malloc/free by O.Dreesen
- */
-
-#include <linux/unistd.h>
-#include <asm/mman.h>
-#include <linux/errno.h>
-#include "dietfeatures.h"
-
-#if 0
-#include <sys/mman.h>
-#define _LIBC
-#include <errno.h>
-#endif
-
-#include <linux/types.h>
-
-#if defined(MAP_ANONYMOUS) && !defined(MAP_ANON)
-#define MAP_ANON MAP_ANONYMOUS
-#endif
-
-#ifndef MAP_FAILED
-#define MAP_FAILED ((void*)-1)
-#endif
-
-#ifndef NULL
-#define NULL ((void*)0)
-#endif
-
-extern void * mmap(void *start, size_t length, int prot , int flags, int fd, off_t offset);
-extern void *memset(void *s, int c, size_t n);
-extern void *memcpy(void *dest, const void *src, size_t n);
-
-typedef struct t_alloc_head {
- unsigned int magic1;
- struct t_alloc_head *ptr;
- unsigned long size;
- unsigned int magic2;
-} alloc_head;
-
-/* guess what ? the virtual block size */
-#define MEM_BLOCK_SIZE 4096
-
-/* minimum allocated bytes */
-#define MEM_ALLOC_MIN 4
-
-/* Initial start position in memory */
-#define MEM_ALLOC_START ((char*)0x18000000)
-
-/* Make every block align */
-#define MEM_ALIGN(s) (((s)+MEM_ALLOC_MIN-1)&(~(MEM_ALLOC_MIN-1)))
-#define PAGE_ALIGN(s) (((s)+MEM_BLOCK_SIZE-1)&(~(MEM_BLOCK_SIZE-1)))
-#define PAGE_ALIGNP(p) ((char*)PAGE_ALIGN((size_t)(p)))
-
-#define END_OF_BLOCK(p) ((alloc_head*)(((char*)(p))+((p)->size)))
-#define START_BLOCK(p) ((alloc_head*)(((char*)(p))-sizeof(alloc_head)))
-#define START_DATA(p) (((char*)(p))+sizeof(alloc_head))
-#define MIN_ALLOC(s) (((((s)+sizeof(alloc_head)-1)/MEM_ALLOC_MIN)+1)*MEM_ALLOC_MIN)
-
-#define ALLOC_MAGIC1 0xbad2f7ee
-#define ALLOC_MAGIC2 0xf7ee2bad
-
-/* freelist handler */
-static alloc_head base = {ALLOC_MAGIC1,&base,0,ALLOC_MAGIC2};
-static char *alloc_get_end = MEM_ALLOC_START;
-
-void __libc_free(void *ptr)
-{
- alloc_head *prev,*p,*block;
-
- if (ptr==NULL) return;
-
- block=START_BLOCK(ptr);
- if (block->magic1 != ALLOC_MAGIC1) return;
- if (block->magic2 != ALLOC_MAGIC2) return;
-
- prev=&base;
- for (p=prev->ptr ; ; prev=p, p=p->ptr)
- {
- if ((block>prev)&&(block<p)) break; /* found the gap block belongs */
- if ((prev>p)&&(block<p)) break; /* block pre freelist */
- if ((prev>p)&&(block>prev)) break; /* block after freelist */
-
- /* emergency escape: freelist has ONLY one entry the freelist base */
- if (p->ptr==p) break;
- }
- prev->ptr = block;
-
- if (END_OF_BLOCK(block)==p)
- { /* join right neighbor */
- block->ptr = p->ptr;
- block->size += p->size;
- }
- else
- block->ptr = p;
-
- if (END_OF_BLOCK(prev)==block)
- { /* join left neighbor */
- prev->size += block->size;
- prev->ptr = block->ptr;
- }
-}
-void free(void *ptr) __attribute__((weak,alias("__libc_free")));
-
-static void *alloc_get_mem(unsigned long size)
-{
- char *tmp;
- alloc_head *ah;
-
- size=PAGE_ALIGN(size);
-
- /* map free pages @ alloc_get_end */
- tmp=mmap(alloc_get_end, size, PROT_READ|PROT_WRITE,
- MAP_ANONYMOUS|MAP_PRIVATE|MAP_FIXED, -1, 0);
- if (tmp==MAP_FAILED)
- {
- /* OK we can't map free pages @ alloc_get_end so try free position */
- tmp=mmap(0, size, PROT_READ|PROT_WRITE,
- MAP_ANONYMOUS|MAP_PRIVATE, -1, 0);
- if (tmp==MAP_FAILED)
- {
- errno = ENOMEM;
- return NULL; /* PANIC ! */
- }
- alloc_get_end=tmp;
- }
-
- alloc_get_end+=size;
-
- /* make a header */
- ah=(alloc_head*)tmp;
- ah->magic1=ALLOC_MAGIC1;
- ah->magic2=ALLOC_MAGIC2;
- ah->ptr=ah;
- ah->size=size;
-
- /* link new free maped pages in freelist */
- __libc_free(START_DATA(tmp));
-
- return &base;
-}
-
-void *__libc_malloc(size_t size)
-{
- alloc_head *p, *prev;
- size_t need;
-
- /* needed MEM_ALLOC_MIN */
- need=MIN_ALLOC(size);
-
- prev=&base;
- for (p=prev->ptr;;prev=p,p=p->ptr)
- {
- if (p->size>=need)
- {
- if (p->size==need)
- { /* fit PERFECT */
- prev->ptr=p->ptr; /* relink freelist */
- }
- else
- {
- alloc_head *tmp=(alloc_head*)(((char*)p)+need);
- if ((p->size-need)<sizeof(alloc_head))
- { /* work around: if there is not enough space for freelist head.
- * this waste some bytes ( < sizeof(alloc_head) ) */
- need=p->size;
- prev->ptr=p->ptr; /* relink freelist */
- }
- else
- {
- prev->ptr=tmp;
- tmp->magic1=ALLOC_MAGIC1;
- tmp->magic2=ALLOC_MAGIC2;
- tmp->ptr=p->ptr;
- tmp->size=p->size-need; /* remaining size */
- }
-
- p->size=need; /* set size */
- }
- p->ptr=p; /* self-link */
-
- return (void*)START_DATA(p);
- }
- else if (p==&base)
- {
- if ((p=alloc_get_mem(need))==NULL) goto err_out;
- }
- }
-err_out:
- return NULL;
-}
-void *malloc(size_t size) __attribute__((weak,alias("__libc_malloc")));
-
-void *calloc(size_t nmemb,size_t size)
-{
- size_t n=nmemb*size;
- void *tmp=malloc(n);
- if (tmp) memset(tmp,0,n);
- return tmp;
-}
-
-void *realloc(void *ptr,size_t size)
-{
- alloc_head *tmp=0,*tf=0;
- long need=0;
- long diff=0;
-
- if (ptr)
- {
- if (size)
- {
- tmp=START_BLOCK(ptr);
- need=MIN_ALLOC(size); /* only this size will survive */
- diff=tmp->size-need;
- if (diff<0)
- {
- if ((tf=malloc(size)))
- {
- memcpy(tf,ptr,tmp->size-sizeof(alloc_head));
- free(ptr);
- return tf;
- }
- return NULL;
- }
- if (diff>=sizeof(alloc_head))
- {
- tmp->size=need;
- tf=END_OF_BLOCK(tmp);
- tf->magic1=ALLOC_MAGIC1;
- tf->magic2=ALLOC_MAGIC2;
- tf->ptr=tf;
- tf->size=diff;
- free(START_DATA(tf));
- }
- return ptr;
- }
- else
- free(ptr);
- }
- else if (size>0)
- return malloc(size);
- return NULL;
-}
diff --git a/mdk-stage1/dietlibc/lib/assert_fail.c b/mdk-stage1/dietlibc/lib/assert_fail.c
deleted file mode 100644
index 3d6ba65c1..000000000
--- a/mdk-stage1/dietlibc/lib/assert_fail.c
+++ /dev/null
@@ -1,30 +0,0 @@
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include "dietwarning.h"
-
-extern int __ltostr(char *s, int size, unsigned long i, int base, char UpCase);
-
-void __assert_fail (const char *assertion, const char *file, unsigned int line, const char *function)
-{
- int alen=strlen(assertion);
- int flen=strlen(file);
- int fulen=strlen(function);
- char *buf=(char*)alloca(alen+flen+fulen+50);
- if (buf) {
- char *tmp;
- *buf=0;
- if (file) strcat(strcat(buf,file),":");
- tmp=buf+strlen(buf);
- __ltostr(tmp,10,line,10,0);
- strcat(buf,": ");
- if (function) strcat(strcat(buf,function),": ");
- strcat(buf,"Assertion `");
- strcat(buf,assertion);
- strcat(buf,"' failed.\n");
- write(2,buf,strlen(buf));
- }
- abort();
-}
-
-link_warning("__assert_fail","warning: your code still has assertions enabled!")
diff --git a/mdk-stage1/dietlibc/lib/atexit.c b/mdk-stage1/dietlibc/lib/atexit.c
deleted file mode 100644
index 8204af06c..000000000
--- a/mdk-stage1/dietlibc/lib/atexit.c
+++ /dev/null
@@ -1,23 +0,0 @@
-typedef void (*function)(void);
-
-static function __atexitlist[4];
-
-int atexit(function t) {
- int i;
- for (i=0; i<4; i++)
- if (__atexitlist[i]==0) {
- __atexitlist[i]=t;
- return 0;
- }
- return -1;
-}
-
-extern void _exit(int code) __attribute__((noreturn));
-
-void exit(int code) {
- if (__atexitlist[3]) __atexitlist[3]();
- if (__atexitlist[2]) __atexitlist[2]();
- if (__atexitlist[1]) __atexitlist[1]();
- if (__atexitlist[0]) __atexitlist[0]();
- _exit(code);
-}
diff --git a/mdk-stage1/dietlibc/lib/atof.c b/mdk-stage1/dietlibc/lib/atof.c
deleted file mode 100644
index 54221390e..000000000
--- a/mdk-stage1/dietlibc/lib/atof.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <stdlib.h>
-
-double atof(const char *nptr) {
-#if 0
- return strtod(nptr,0);
-#else
- double tmp=strtod(nptr,0);
- return tmp;
-#endif
-}
diff --git a/mdk-stage1/dietlibc/lib/atoi.c b/mdk-stage1/dietlibc/lib/atoi.c
deleted file mode 100644
index fe952b8c4..000000000
--- a/mdk-stage1/dietlibc/lib/atoi.c
+++ /dev/null
@@ -1,8 +0,0 @@
-int atoi(const char* s) {
- int v=0;
- int sign=1;
- if (*s=='-') { sign=-1; ++s; } else if (*s=='+') ++s;
- while (*s && (*s>='0') && (*s<='9'))
- v=v*10+*s++-'0';
- return v*sign;
-}
diff --git a/mdk-stage1/dietlibc/lib/atol.c b/mdk-stage1/dietlibc/lib/atol.c
deleted file mode 100644
index 558a004b9..000000000
--- a/mdk-stage1/dietlibc/lib/atol.c
+++ /dev/null
@@ -1,8 +0,0 @@
-long int atol(const char* s) {
- long int v=0;
- int sign=1;
- if (*s=='-') { sign=-1; ++s; } else if (*s=='+') ++s;
- while (*s && (*s>='0') && (*s<='9'))
- v=v*10+*s++-'0';
- return v*sign;
-}
diff --git a/mdk-stage1/dietlibc/lib/bind.c b/mdk-stage1/dietlibc/lib/bind.c
deleted file mode 100644
index ec1c93e1b..000000000
--- a/mdk-stage1/dietlibc/lib/bind.c
+++ /dev/null
@@ -1,12 +0,0 @@
-#include <linux/net.h>
-
-extern int socketcall(int callno,long* args);
-
-int bind(int a, void * b, int c) {
-#ifdef __i386__
- return socketcall(SYS_BIND, (long*)&a);
-#else
- unsigned long args[] = { a, (long) b, c };
- return socketcall(SYS_BIND, args);
-#endif
-}
diff --git a/mdk-stage1/dietlibc/lib/bsearch.c b/mdk-stage1/dietlibc/lib/bsearch.c
deleted file mode 100644
index d2f5c74b2..000000000
--- a/mdk-stage1/dietlibc/lib/bsearch.c
+++ /dev/null
@@ -1,20 +0,0 @@
-#include <stdlib.h>
-
-void *bsearch(const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)) {
- const char *v, *r;
- int res;
- r=base+(nmemb-1)*size;
- do {
- register int num=nmemb/2;
- v=base+num*size;
- if ((res=compar(key,v))<0) {
- r=v-size;
- nmemb=num;
- } else {
- if (res==0) return (void*)v;
- base=v+size;
- nmemb-=num;
- }
- } while ((char*)base<=r);
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/lib/cfmakeraw.c b/mdk-stage1/dietlibc/lib/cfmakeraw.c
deleted file mode 100644
index 7f6df9913..000000000
--- a/mdk-stage1/dietlibc/lib/cfmakeraw.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <termios.h>
-#include <sys/ioctl.h>
-
-void cfmakeraw(struct termios *t)
-{
- t->c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON);
- t->c_oflag &= ~OPOST;
- t->c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN);
- t->c_cflag &= ~(CSIZE|PARENB);
- t->c_cflag |= CS8;
- t->c_cc[VMIN] = 1;
- t->c_cc[VTIME] = 0;
-}
-
diff --git a/mdk-stage1/dietlibc/lib/closedir.c b/mdk-stage1/dietlibc/lib/closedir.c
deleted file mode 100644
index e73025eb1..000000000
--- a/mdk-stage1/dietlibc/lib/closedir.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include "dietdirent.h"
-#include <unistd.h>
-#include <dirent.h>
-#include <stdlib.h>
-
-int closedir (DIR* d) {
- int res=close(d->fd);
- free(d);
- return res;
-}
diff --git a/mdk-stage1/dietlibc/lib/connect.c b/mdk-stage1/dietlibc/lib/connect.c
deleted file mode 100644
index 01fd61a6c..000000000
--- a/mdk-stage1/dietlibc/lib/connect.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <linux/net.h>
-
-extern int socketcall(int callno,long* args);
-
-int __libc_connect(int a, void * b, int c) {
-#ifdef __i386__
- return socketcall(SYS_CONNECT, (long*)&a);
-#else
- unsigned long args[] = { a, (long) b, c };
- return socketcall(SYS_CONNECT, args);
-#endif
-}
-
-int connect(int a, void * b, int c) __attribute__((weak,alias("__libc_connect")));
diff --git a/mdk-stage1/dietlibc/lib/creat.c b/mdk-stage1/dietlibc/lib/creat.c
deleted file mode 100644
index 82145b515..000000000
--- a/mdk-stage1/dietlibc/lib/creat.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <fcntl.h>
-
-int creat(const char *file,mode_t mode) {
- return open(file,O_WRONLY|O_CREAT|O_TRUNC,mode);
-}
diff --git a/mdk-stage1/dietlibc/lib/creat64.c b/mdk-stage1/dietlibc/lib/creat64.c
deleted file mode 100644
index 8cf897b57..000000000
--- a/mdk-stage1/dietlibc/lib/creat64.c
+++ /dev/null
@@ -1,9 +0,0 @@
-#include <fcntl.h>
-
-#ifndef O_LARGEFILE
-#define O_LARGEFILE 0
-#endif
-
-int creat64(const char *file,mode_t mode) {
- return open(file,O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE,mode);
-}
diff --git a/mdk-stage1/dietlibc/lib/errlist.c b/mdk-stage1/dietlibc/lib/errlist.c
deleted file mode 100644
index d0e712190..000000000
--- a/mdk-stage1/dietlibc/lib/errlist.c
+++ /dev/null
@@ -1,132 +0,0 @@
-
-const char *const sys_errlist[] = {
- "Success", /* 0 */
- "Operation not permitted", /* EPERM */
- "No such file or directory", /* ENOENT */
- "No such process", /* ESRCH */
- "Interrupted system call", /* EINTR */
- "I/O error", /* EIO */
- "No such device or address", /* ENXIO */
- "Arg list too long", /* E2BIG */
- "Exec format error", /* ENOEXEC */
- "Bad file number", /* EBADF */
- "No child processes", /* ECHILD */
- "Try again", /* EAGAIN */
- "Out of memory", /* ENOMEM */
- "Permission denied", /* EACCES */
- "Bad address", /* EFAULT */
- "Block device required", /* ENOTBLK */
- "Device or resource busy", /* EBUSY */
- "File exists", /* EEXIST */
- "Cross-device link", /* EXDEV */
- "No such device", /* ENODEV */
- "Not a directory", /* ENOTDIR */
- "Is a directory", /* EISDIR */
- "Invalid argument", /* EINVAL */
- "File table overflow", /* ENFILE */
- "Too many open files", /* EMFILE */
- "Not a typewriter", /* ENOTTY */
- "Text file busy", /* ETXTBSY */
- "File too large", /* EFBIG */
- "No space left on device", /* ENOSPC */
- "Illegal seek", /* ESPIPE */
- "Read-only file system", /* EROFS */
- "Too many links", /* EMLINK */
- "Broken pipe", /* EPIPE */
- "Math argument out of domain of func", /* EDOM */
- "Math result not representable", /* ERANGE */
- "Resource deadlock would occur", /* EDEADLK */
- "File name too long", /* ENAMETOOLONG */
- "No record locks available", /* ENOLCK */
- "Function not implemented", /* ENOSYS */
- "Directory not empty", /* ENOTEMPTY */
- "Too many symbolic links encountered", /* ELOOP */
- "Operation would block", /* EWOULDBLOCK */
- "No message of desired type", /* ENOMSG */
- "Identifier removed", /* EIDRM */
- "Channel number out of range", /* ECHRNG */
- "Level 2 not synchronized", /* EL2NSYNC */
- "Level 3 halted", /* EL3HLT */
- "Level 3 reset", /* EL3RST */
- "Link number out of range", /* ELNRNG */
- "Protocol driver not attached", /* EUNATCH */
- "No CSI structure available", /* ENOCSI */
- "Level 2 halted", /* EL2HLT */
- "Invalid exchange", /* EBADE */
- "Invalid request descriptor", /* EBADR */
- "Exchange full", /* EXFULL */
- "No anode", /* ENOANO */
- "Invalid request code", /* EBADRQC */
- "Invalid slot", /* EBADSLT */
- "File locking deadlock error", /* EDEADLOCK */
- "Bad font file format", /* EBFONT */
- "Device not a stream", /* ENOSTR */
- "No data available", /* ENODATA */
- "Timer expired", /* ETIME */
- "Out of streams resources", /* ENOSR */
- "Machine is not on the network", /* ENONET */
- "Package not installed", /* ENOPKG */
- "Object is remote", /* EREMOTE */
- "Link has been severed", /* ENOLINK */
- "Advertise error", /* EADV */
- "Srmount error", /* ESRMNT */
- "Communication error on send", /* ECOMM */
- "Protocol error", /* EPROTO */
- "Multihop attempted", /* EMULTIHOP */
- "RFS specific error", /* EDOTDOT */
- "Not a data message", /* EBADMSG */
- "Value too large for defined data type", /* EOVERFLOW */
- "Name not unique on network", /* ENOTUNIQ */
- "File descriptor in bad state", /* EBADFD */
- "Remote address changed", /* EREMCHG */
- "Can not access a needed shared library", /* ELIBACC */
- "Accessing a corrupted shared library", /* ELIBBAD */
- ".lib section in a.out corrupted", /* ELIBSCN */
- "Attempting to link in too many shared libraries", /* ELIBMAX */
- "Cannot exec a shared library directly", /* ELIBEXEC */
- "Illegal byte sequence", /* EILSEQ */
- "Interrupted system call should be restarted", /* ERESTART */
- "Streams pipe error", /* ESTRPIPE */
- "Too many users", /* EUSERS */
- "Socket operation on non-socket", /* ENOTSOCK */
- "Destination address required", /* EDESTADDRREQ */
- "Message too long", /* EMSGSIZE */
- "Protocol wrong type for socket", /* EPROTOTYPE */
- "Protocol not available", /* ENOPROTOOPT */
- "Protocol not supported", /* EPROTONOSUPPORT */
- "Socket type not supported", /* ESOCKTNOSUPPORT */
- "Operation not supported on transport endpoint", /* EOPNOTSUPP */
- "Protocol family not supported", /* EPFNOSUPPORT */
- "Address family not supported by protocol", /* EAFNOSUPPORT */
- "Address already in use", /* EADDRINUSE */
- "Cannot assign requested address", /* EADDRNOTAVAIL */
- "Network is down", /* ENETDOWN */
- "Network is unreachable", /* ENETUNREACH */
- "Network dropped connection because of reset", /* ENETRESET */
- "Software caused connection abort", /* ECONNABORTED */
- "Connection reset by peer", /* ECONNRESET */
- "No buffer space available", /* ENOBUFS */
- "Transport endpoint is already connected", /* EISCONN */
- "Transport endpoint is not connected", /* ENOTCONN */
- "Cannot send after transport endpoint shutdown", /* ESHUTDOWN */
- "Too many references: cannot splice", /* ETOOMANYREFS */
- "Connection timed out", /* ETIMEDOUT */
- "Connection refused", /* ECONNREFUSED */
- "Host is down", /* EHOSTDOWN */
- "No route to host", /* EHOSTUNREACH */
- "Operation already in progress", /* EALREADY */
- "Operation now in progress", /* EINPROGRESS */
- "Stale NFS file handle", /* ESTALE */
- "Structure needs cleaning", /* EUCLEAN */
- "Not a XENIX named type file", /* ENOTNAM */
- "No XENIX semaphores available", /* ENAVAIL */
- "Is a named type file", /* EISNAM */
- "Remote I/O error", /* EREMOTEIO */
- "Quota exceeded", /* EDQUOT */
- "No medium found", /* ENOMEDIUM */
- "Wrong medium type", /* EMEDIUMTYPE */
- 0
-};
-
-
-const int sys_nerr = ((sizeof (sys_errlist))/(sizeof(char *))-1);
diff --git a/mdk-stage1/dietlibc/lib/errno_location.c b/mdk-stage1/dietlibc/lib/errno_location.c
deleted file mode 100644
index 286f833c9..000000000
--- a/mdk-stage1/dietlibc/lib/errno_location.c
+++ /dev/null
@@ -1,5 +0,0 @@
-extern int errno;
-
-int *__errno_location() { return &errno; }
-
-int *errno_location() __attribute__((weak,alias("__errno_location")));
diff --git a/mdk-stage1/dietlibc/lib/exec_lib.c b/mdk-stage1/dietlibc/lib/exec_lib.c
deleted file mode 100644
index 3129224a0..000000000
--- a/mdk-stage1/dietlibc/lib/exec_lib.c
+++ /dev/null
@@ -1,20 +0,0 @@
-#include <unistd.h>
-#include <paths.h>
-
-extern char **environ;
-
-int __exec_shell(const char *file, char *const argv[]) {
- int i;
-
- for (i = 0; argv[i]; i++);
-
- {
- char *shell_argv[i + 1];
- shell_argv[0] = _PATH_BSHELL;
- shell_argv[1] = (char *) file;
- for (; i > 1; i--)
- shell_argv[i] = argv[i - 1];
- return execve(_PATH_BSHELL, shell_argv, environ);
- }
-}
-
diff --git a/mdk-stage1/dietlibc/lib/exec_lib.h b/mdk-stage1/dietlibc/lib/exec_lib.h
deleted file mode 100644
index 0971bd1fb..000000000
--- a/mdk-stage1/dietlibc/lib/exec_lib.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef __EXEC_LIB_H
-#define __EXEC_LIB_H
-
-#include <paths.h>
-
-extern int __exec_shell(const char *file, char *const argv[]);
-
-#endif /* __EXEC_LIB_H */
-
diff --git a/mdk-stage1/dietlibc/lib/execl.c b/mdk-stage1/dietlibc/lib/execl.c
deleted file mode 100644
index 71459e71f..000000000
--- a/mdk-stage1/dietlibc/lib/execl.c
+++ /dev/null
@@ -1,24 +0,0 @@
-#include <stdarg.h>
-#include <unistd.h>
-#include <errno.h>
-#include <stdlib.h>
-
-int execl( const char *path,...) {
- va_list ap;
- int n,i;
- char **argv,*tmp;
- va_start(ap, path);
- n=1;
- while ((tmp=va_arg(ap,char *)))
- ++n;
- va_end (ap);
- if ((argv=(char **)alloca(n*sizeof(char*)))) {
- va_start(ap, path);
- for (i=0; i<n; ++i)
- argv[i]=va_arg(ap,char *);
- va_end (ap);
- return execve(path,argv,environ);
- }
- __set_errno(ENOMEM);
- return -1;
-}
diff --git a/mdk-stage1/dietlibc/lib/execlp.c b/mdk-stage1/dietlibc/lib/execlp.c
deleted file mode 100644
index 3aea1e960..000000000
--- a/mdk-stage1/dietlibc/lib/execlp.c
+++ /dev/null
@@ -1,26 +0,0 @@
-#include <stdarg.h>
-#include <unistd.h>
-#include <errno.h>
-#include <stdlib.h>
-#include "dietstdarg.h"
-
-int execlp(const char* file, const char *arg,...) {
- va_list ap,bak;
- int n,i;
- char **argv,*tmp;
- va_start(ap, arg);
- va_copy(bak,ap);
- n=2;
- while ((tmp=va_arg(ap,char *)))
- ++n;
- va_end (ap);
- if ((argv=(char **)alloca(n*sizeof(char*)))) {
- argv[0]=arg;
- for (i=0; i<n; ++i)
- argv[i+1]=va_arg(bak,char *);
- va_end (bak);
- return execvp(file,argv);
- }
- __set_errno(ENOMEM);
- return -1;
-}
diff --git a/mdk-stage1/dietlibc/lib/execv.c b/mdk-stage1/dietlibc/lib/execv.c
deleted file mode 100644
index efd760253..000000000
--- a/mdk-stage1/dietlibc/lib/execv.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <limits.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <errno.h>
-#include "exec_lib.h"
-
-int execv(const char *file, char *const argv[]) {
- if (execve(file,argv,environ)==-1) {
- if (errno==ENOEXEC) __exec_shell(file,argv);
- }
- return -1;
-}
diff --git a/mdk-stage1/dietlibc/lib/execvp.c b/mdk-stage1/dietlibc/lib/execvp.c
deleted file mode 100644
index 20521d69f..000000000
--- a/mdk-stage1/dietlibc/lib/execvp.c
+++ /dev/null
@@ -1,38 +0,0 @@
-#include <limits.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <errno.h>
-#include "exec_lib.h"
-
-int execvp(const char *file, char *const argv[]) {
- char *path=getenv("PATH");
- char *cur,*next;
- char buf[PATH_MAX];
- if (strchr((char*)file,'/')) {
- if (execve(file,argv,environ)==-1) {
- if (errno==ENOEXEC) __exec_shell(file,argv);
- return -1;
- }
- }
- if (!path) path=_PATH_DEFPATH;
- for (cur=path; cur; cur=next) {
- next=strchr(cur,':');
- if (!next)
- next=cur+strlen(cur);
- if (next==cur) {
- buf[0]='.';
- cur--;
- } else
- memmove(buf,cur,next-cur);
- buf[next-cur]='/';
- memmove(&buf[next-cur+1],file,strlen(file)+1);
- if (execve(buf,argv,environ)==-1) {
- if (errno==ENOEXEC) return __exec_shell(buf,argv);
- if ((errno!=EACCES) && (errno!=ENOENT)) return -1;
- }
- if (*next==0) break;
- next++;
- }
- return -1;
-}
diff --git a/mdk-stage1/dietlibc/lib/ftw.c b/mdk-stage1/dietlibc/lib/ftw.c
deleted file mode 100644
index a3c04af9a..000000000
--- a/mdk-stage1/dietlibc/lib/ftw.c
+++ /dev/null
@@ -1,52 +0,0 @@
-#include <linux/stat.h>
-#include <unistd.h>
-#include <limits.h>
-#include <ftw.h>
-#include <dirent.h>
-#include <string.h>
-#include <stdlib.h>
-
-int ftw(const char *dir,int (*fn)(const char *file, const struct stat *sb, int flag), int depth) {
- char *cwd;
- int cwdlen;
- DIR *d;
- struct dirent *de;
- struct stat sb;
- if (chdir(dir)) return -1;
- cwd=alloca(PATH_MAX+1);
- if (!getcwd(cwd,PATH_MAX)) return -1;
- cwd[PATH_MAX]=0;
- cwdlen=strlen(cwd);
-/* write(1,"ftw in ",7); puts(cwd); */
- if (!(d=opendir("."))) return -1;
- while ((de=readdir(d))) {
- int res;
- int flag;
- int nlen;
- char *filename;
- if (de->d_name[0]=='.' &&
- (de->d_name[1]==0 ||
- (de->d_name[1]=='.' && de->d_name[2]==0))) continue;
- nlen=strlen(de->d_name);
- filename=alloca(nlen+cwdlen+3);
- memmove(filename,cwd,cwdlen);
- filename[cwdlen]='/';
- memmove(filename+cwdlen+1,de->d_name,nlen+1);
- if (!lstat(de->d_name,&sb)) {
- if (S_ISLNK(sb.st_mode)) flag=FTW_SL; else
- if (S_ISDIR(sb.st_mode)) flag=FTW_D; else
- flag=FTW_F;
- } else
- flag=FTW_NS;
- res=fn(filename,&sb,flag);
- if (res) return res;
- if (flag==FTW_D && depth>0) {
- res=ftw(filename,fn,depth-1);
- chdir(dir);
- if (res) return res;
- }
-/* puts(de->d_name); */
- }
- closedir(d);
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/lib/getdomainname.c b/mdk-stage1/dietlibc/lib/getdomainname.c
deleted file mode 100644
index 2554fe4c3..000000000
--- a/mdk-stage1/dietlibc/lib/getdomainname.c
+++ /dev/null
@@ -1,17 +0,0 @@
-#define _GNU_SOURCE
-
-#include <sys/types.h>
-#include <sys/utsname.h>
-
-int getdomainname(char *name,size_t len) {
- struct utsname u;
- int res=uname(&u);
- if (res==0) {
- int i;
- if (len>=_UTSNAME_DOMAIN_LENGTH)
- len=_UTSNAME_DOMAIN_LENGTH;
- for (i=0; i<len; i++)
- name[i]=u.domainname[i];
- }
- return res;
-}
diff --git a/mdk-stage1/dietlibc/lib/getenv.c b/mdk-stage1/dietlibc/lib/getenv.c
deleted file mode 100644
index fc37e9927..000000000
--- a/mdk-stage1/dietlibc/lib/getenv.c
+++ /dev/null
@@ -1,17 +0,0 @@
-#include <string.h>
-
-extern char **environ;
-
-extern char *getenv(const char *s)
-{
- int i;
- unsigned int len;
-
- if (!environ || !s) return 0;
- len = strlen(s);
- for (i = 0;environ[i];++i)
- if ((memcmp(environ[i],s,len)==0) && (environ[i][len] == '='))
- return environ[i] + len + 1;
- return 0;
-}
-
diff --git a/mdk-stage1/dietlibc/lib/gethostname.c b/mdk-stage1/dietlibc/lib/gethostname.c
deleted file mode 100644
index ccc0fbc8e..000000000
--- a/mdk-stage1/dietlibc/lib/gethostname.c
+++ /dev/null
@@ -1,18 +0,0 @@
-#define _GNU_SOURCE
-
-#include <sys/types.h>
-#include <sys/utsname.h>
-
-int gethostname(char *name,size_t len) {
- struct utsname u;
- int res=uname(&u);
- if (res==0) {
- int i;
- if (len>=_UTSNAME_NODENAME_LENGTH)
- len=_UTSNAME_NODENAME_LENGTH;
- for (i=0; i<len; i++)
- name[i]=u.nodename[i];
- }
- return res;
-}
-
diff --git a/mdk-stage1/dietlibc/lib/getopt.c b/mdk-stage1/dietlibc/lib/getopt.c
deleted file mode 100644
index 93097122f..000000000
--- a/mdk-stage1/dietlibc/lib/getopt.c
+++ /dev/null
@@ -1,118 +0,0 @@
-#include "getopt.h"
-#include <string.h>
-
-/*
- * by Olaf Dreesen
- */
-
-int opterr;
-
-int optind=1;
-char *optarg;
-
-static int opt_unknown=1,opt_unknown_len;
-
-static int getopt_check(int c,char*o,int ol)
-{
- int i;
- if (c==':') return 2;
- for (i=0;i<ol;i++)
- {
- if (o[i]==c)
- {
- if (o[i+1]==':') return 1;
- return 0;
- }
- }
- return 2;
-}
-
-static void getopt_sort(char*v[],int oi)
-{
- int i;
- char *tmp, *tmp2=0;
-
- if (opt_unknown_len)
- {
- tmp=v[optind-(1+oi)];
- if (oi) tmp2=v[optind-1];
-
- for (i=opt_unknown+opt_unknown_len;i>opt_unknown;i--) v[i+oi]=v[i-1];
-
- v[opt_unknown++]=tmp;
- if (oi) v[opt_unknown++]=tmp2;
- }
-}
-
-static char* nextchar;
-int getopt(int c,char*v[],char*o)
-{
- int ol=strlen(o);
- int ret=0;
- int oi=0;
-
- optarg=0;
-
- while (nextchar || (optind<c))
- {
- if (nextchar)
- {
- if ((ret=(*(++nextchar))))
- {
- switch (getopt_check(ret,o,ol))
- {
- case 1:
- if (*(++nextchar))
- optarg=nextchar;
- else
- {
- if (optind<c)
- {
- oi=1;
- optarg=v[optind++];
- }
- else
- ret='?';
- }
- nextchar=0;
- case 0:
- if (!nextchar)
- getopt_sort(v,oi);
- else
- if (!(*(nextchar+1)))
- getopt_sort(v,oi);
- return ret;
- break;
- default:
- return '?';
- break;
- }
- }
- else
- nextchar=0;
- }
- else
- {
- if ((v[optind][0]=='-')&&((v[optind][1]!=0)))
- {
- if ((v[optind][1]=='-')&&(v[optind][2]==0))
- {
- getopt_sort(v,oi);
- optind=opt_unknown;
- return -1;
- }
- else
- {
- nextchar=v[optind];
- }
- }
- else
- {
- ++opt_unknown_len;
- }
- ++optind;
- }
- }
- optind=opt_unknown;
- return -1;
-}
diff --git a/mdk-stage1/dietlibc/lib/getpeername.c b/mdk-stage1/dietlibc/lib/getpeername.c
deleted file mode 100644
index 8adcddf55..000000000
--- a/mdk-stage1/dietlibc/lib/getpeername.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <linux/net.h>
-
-extern int socketcall(int callno,long* args);
-
-int getpeername(int a, void * b, int c) {
-#ifdef __i386__
- return socketcall(SYS_GETPEERNAME, (long*)&a);
-#else
- unsigned long args[] = { a, (long) b, c };
- return socketcall(SYS_GETPEERNAME, args);
-#endif
-}
-
diff --git a/mdk-stage1/dietlibc/lib/getpgrp.c b/mdk-stage1/dietlibc/lib/getpgrp.c
deleted file mode 100644
index ee2ab0257..000000000
--- a/mdk-stage1/dietlibc/lib/getpgrp.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <unistd.h>
-
-int getpgrp()
-{
- return getpgid(0);
-}
diff --git a/mdk-stage1/dietlibc/lib/getservent.c b/mdk-stage1/dietlibc/lib/getservent.c
deleted file mode 100644
index bf25d046b..000000000
--- a/mdk-stage1/dietlibc/lib/getservent.c
+++ /dev/null
@@ -1,137 +0,0 @@
-#include <unistd.h>
-#include <fcntl.h>
-#include <netdb.h>
-#include <sys/mman.h>
-#include <errno.h>
-#include <netinet/in.h>
-#include <string.h>
-#include <ctype.h>
-
-static int servicesfd=-1;
-static char* servicesmap;
-static unsigned int serviceslen;
-
-static char* aliases[10];
-
-static char *cur;
-
-/* nameserver 42/tcp name # IEN 116 */
-struct servent *getservent(void) {
- static struct servent se;
- char *last;
- int aliasidx;
- if (servicesfd<0) {
- servicesfd=open(_PATH_SERVICES,O_RDONLY);
- if (servicesfd<0) return 0;
- serviceslen=lseek(servicesfd,0,SEEK_END);
- servicesmap=mmap(0,serviceslen,PROT_READ|PROT_WRITE,MAP_PRIVATE,servicesfd,0);
- if ((long)servicesmap==(-1)) goto error;
- cur=servicesmap;
- }
- last=servicesmap+serviceslen;
-again:
- se.s_name=0;
- se.s_aliases=aliases; aliases[0]=0;
- se.s_port=0;
- se.s_proto=0;
- if (cur>=last) return 0;
- if (*cur=='#' || *cur=='\n') goto parseerror;
- /* first, the primary name */
- if (!isalpha(*cur)) goto parseerror;
- se.s_name=cur;
- se.s_aliases=aliases;
- while (cur<last && isalnum(*cur)) cur++;
- if (cur>=last) return 0;
- if (*cur=='\n') goto parseerror;
- *cur=0; cur++;
- /* second, the port */
- while (cur<last && isblank(*cur)) cur++;
- while (cur<last && isdigit(*cur)) {
- se.s_port=se.s_port*10+*cur-'0';
- cur++;
- }
- se.s_port=htons(se.s_port);
- if (cur>=last) return 0;
- /* third, "/tcp" or "/udp" */
- if (*cur!='/') goto parseerror;
- cur++;
- se.s_proto=cur;
- while (cur<last && isalpha(*cur)) ++cur;
- if (cur>=last) return 0;
- if (*cur=='\n') { *cur++=0; return &se; }
- *cur=0; cur++;
- /* now the aliases */
- for (aliasidx=0;aliasidx<10;++aliasidx) {
- while (cur<last && isblank(*cur)) ++cur;
- aliases[aliasidx]=cur;
- while (cur<last && isalpha(*cur)) ++cur;
- if (*cur=='\n') { *cur++=0; ++aliasidx; break; }
- if (cur>=last || !isblank(*cur)) break;
- *cur++=0;
- }
- aliases[aliasidx]=0;
- return &se;
-parseerror:
- while (cur<last && *cur!='\n') cur++;
- cur++;
- goto again;
-error:
- if (servicesmap!=(char*)-1) munmap(servicesmap,serviceslen);
- if (servicesfd!=-1) close(servicesfd);
- servicesmap=(char*)-1;
- servicesfd=-1;
- errno=ENOMEM;
- return 0;
-}
-
-void setservent(int stayopen) {
- cur=servicesmap;
-}
-
-struct servent *getservbyname(const char *name, const char *proto) {
- struct servent *s;
- setservent(0);
- for (s=getservent(); s; s=getservent()) {
- char **tmp;
-#if 0
- write(1,"found ",6);
- write(1,s->s_name,strlen(s->s_name));
- write(1,"/",1);
- write(1,s->s_proto,strlen(s->s_proto));
- write(1,"\n",1);
- if (!strcmp(name,"auth")) {
- tmp=s->s_aliases;
- write(1," aka ",5);
- while (*tmp) {
- write(1,*tmp,strlen(*tmp));
- write(1,", ",2);
- ++tmp;
- }
- write(1,"\n",1);
- }
-#endif
- if (!strcmp(name,s->s_name) && !strcmp(proto,s->s_proto))
- return s;
- tmp=s->s_aliases;
- while (*tmp)
- if (!strcmp(name,*tmp++)) return s;
- }
- return 0;
-}
-
-struct servent *getservbyport(int port, const char *proto) {
- struct servent *s;
- for (s=getservent(); s; s=getservent()) {
- if (port==s->s_port && !strcmp(proto,s->s_proto))
- return s;
- }
- return 0;
-}
-
-void endservent(void) {
- if (servicesmap!=(char*)-1) munmap(servicesmap,serviceslen);
- if (servicesfd!=-1) close(servicesfd);
- servicesmap=(char*)-1;
- servicesfd=-1;
-}
-
diff --git a/mdk-stage1/dietlibc/lib/getsockname.c b/mdk-stage1/dietlibc/lib/getsockname.c
deleted file mode 100644
index 61a3ea24a..000000000
--- a/mdk-stage1/dietlibc/lib/getsockname.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <linux/net.h>
-
-extern int socketcall(int callno,long* args);
-
-int getsockname(int a, void * b, int c) {
-#ifdef __i386__
- return socketcall(SYS_GETSOCKNAME, (long*)&a);
-#else
- unsigned long args[] = { a, (long) b, c };
- return socketcall(SYS_GETSOCKNAME, args);
-#endif
-}
-
diff --git a/mdk-stage1/dietlibc/lib/getsockopt.c b/mdk-stage1/dietlibc/lib/getsockopt.c
deleted file mode 100644
index 8c0a57557..000000000
--- a/mdk-stage1/dietlibc/lib/getsockopt.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <linux/net.h>
-
-extern int socketcall(int callno,long* args);
-
-int getsockopt(int a, int b, int c, void *d, int e) {
-#ifdef __i386__
- return socketcall(SYS_GETSOCKOPT, (long*)&a);
-#else
- unsigned long args[] = { a, b, c, (long)d, e };
- return socketcall(SYS_GETSOCKOPT, args);
-#endif
-}
-
diff --git a/mdk-stage1/dietlibc/lib/htonl.c b/mdk-stage1/dietlibc/lib/htonl.c
deleted file mode 100644
index 490de42c4..000000000
--- a/mdk-stage1/dietlibc/lib/htonl.c
+++ /dev/null
@@ -1,12 +0,0 @@
-#include <endian.h>
-
-unsigned long int htonl(unsigned long int hostlong) {
-#if __BYTE_ORDER==__LITTLE_ENDIAN
- return (hostlong>>24) | ((hostlong&0xff0000)>>8) |
- ((hostlong&0xff00)<<8) | (hostlong<<24);
-#else
- return hostlong;
-#endif
-}
-
-unsigned long int ntohl(unsigned long int hostlong) __attribute__((weak,alias("htonl")));
diff --git a/mdk-stage1/dietlibc/lib/htons.c b/mdk-stage1/dietlibc/lib/htons.c
deleted file mode 100644
index 765d3bbc5..000000000
--- a/mdk-stage1/dietlibc/lib/htons.c
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <endian.h>
-
-unsigned short int htons(unsigned short int hostshort) {
-#if __BYTE_ORDER==__LITTLE_ENDIAN
- return ((hostshort>>8)&0xff) | (hostshort<<8);
-#else
- return hostshort;
-#endif
-}
-
-unsigned short int ntohs(unsigned short int hostshort) __attribute__((weak,alias("htons")));
diff --git a/mdk-stage1/dietlibc/lib/if_indextoname.c b/mdk-stage1/dietlibc/lib/if_indextoname.c
deleted file mode 100644
index e683755f6..000000000
--- a/mdk-stage1/dietlibc/lib/if_indextoname.c
+++ /dev/null
@@ -1,29 +0,0 @@
-#include <linux/if.h>
-#include <linux/net.h>
-#include <sys/ioctl.h>
-#include <unistd.h>
-#include <sys/socket.h>
-
-#ifndef SOCK_DGRAM
-#define SOCK_DGRAM 2
-#endif
-
-char* if_indextoname(unsigned int interface,char* blub) {
- struct ifreq ifr;
- int fd;
-
- fd=socket(AF_INET6,SOCK_DGRAM,0);
- if (fd<0) fd=socket(AF_INET,SOCK_DGRAM,0);
- ifr.ifr_ifindex=interface;
- if (ioctl(fd,SIOCGIFNAME,&ifr)==0) {
- int i;
- close(fd);
- for (i=0; i<IFNAMSIZ-1; i++)
- if (!(blub[i]=ifr.ifr_name[i]))
- return blub;
- blub[i]=0;
- return blub;
- }
- close(fd);
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/lib/if_nametoindex.c b/mdk-stage1/dietlibc/lib/if_nametoindex.c
deleted file mode 100644
index 5923963b1..000000000
--- a/mdk-stage1/dietlibc/lib/if_nametoindex.c
+++ /dev/null
@@ -1,27 +0,0 @@
-#include <linux/if.h>
-#include <linux/net.h>
-#include <sys/ioctl.h>
-#include <unistd.h>
-#include <sys/socket.h>
-
-#ifndef SOCK_DGRAM
-#define SOCK_DGRAM 2
-#endif
-
-int if_nametoindex(char* blub) {
- struct ifreq ifr;
- int fd;
- char *tmp;
- int len=sizeof(ifr.ifr_name);
- fd=socket(AF_INET6,SOCK_DGRAM,0);
- if (fd<0) fd=socket(AF_INET,SOCK_DGRAM,0);
- for (tmp=ifr.ifr_name; len>0; --len) {
- if ((*tmp++=*blub++)==0) break;
- }
- if (ioctl(fd,SIOCGIFINDEX,&ifr)==0) {
- close(fd);
- return ifr.ifr_ifindex;
- }
- close(fd);
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/lib/isalnum.c b/mdk-stage1/dietlibc/lib/isalnum.c
deleted file mode 100644
index 4d363fab9..000000000
--- a/mdk-stage1/dietlibc/lib/isalnum.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <ctype.h>
-
-int __isalnum_ascii(int c) {
- return isalpha(c) || isdigit(c);
-}
-
-int isalnum(int c) __attribute__((weak,alias("__isalnum_ascii")));
diff --git a/mdk-stage1/dietlibc/lib/isalpha.c b/mdk-stage1/dietlibc/lib/isalpha.c
deleted file mode 100644
index 07ea69696..000000000
--- a/mdk-stage1/dietlibc/lib/isalpha.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <ctype.h>
-
-int __isalpha_ascii(int c) {
- return (c>='a' && c<='z') || (c>='A' && c<='Z');
-}
-
-int isalpha(int c) __attribute__((weak,alias("__isalpha_ascii")));
diff --git a/mdk-stage1/dietlibc/lib/isascii.c b/mdk-stage1/dietlibc/lib/isascii.c
deleted file mode 100644
index e06994783..000000000
--- a/mdk-stage1/dietlibc/lib/isascii.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <ctype.h>
-
-int isascii(int c) {
- return (c & 0x80) == 0;
-}
-
diff --git a/mdk-stage1/dietlibc/lib/isatty.c b/mdk-stage1/dietlibc/lib/isatty.c
deleted file mode 100644
index b31609720..000000000
--- a/mdk-stage1/dietlibc/lib/isatty.c
+++ /dev/null
@@ -1,20 +0,0 @@
-#define ioctl libc_ioctl
-#include <termios.h>
-#undef ioctl
-#include <sys/ioctl.h>
-
-extern int errno;
-
-int isatty(int fd)
-{
- int save;
- int is_tty;
- struct termios term;
-
- save = errno;
- is_tty = ioctl(fd, TCGETS, &term) == 0;
- errno = save;
-
- return is_tty;
-}
-
diff --git a/mdk-stage1/dietlibc/lib/isblank.c b/mdk-stage1/dietlibc/lib/isblank.c
deleted file mode 100644
index 034e543b1..000000000
--- a/mdk-stage1/dietlibc/lib/isblank.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <ctype.h>
-
-int isblank(int ch)
-{
- return ((ch==' ')||(ch=='\t'));
-}
diff --git a/mdk-stage1/dietlibc/lib/iscntrl.c b/mdk-stage1/dietlibc/lib/iscntrl.c
deleted file mode 100644
index a183a54f1..000000000
--- a/mdk-stage1/dietlibc/lib/iscntrl.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <ctype.h>
-
-int __iscntrl_ascii(int c) {
- return (c<32) || (c==127);
-}
-
-int iscntrl(int c) __attribute__((weak,alias("__iscntrl_ascii")));
diff --git a/mdk-stage1/dietlibc/lib/isdigit.c b/mdk-stage1/dietlibc/lib/isdigit.c
deleted file mode 100644
index 8a7c3e801..000000000
--- a/mdk-stage1/dietlibc/lib/isdigit.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <ctype.h>
-
-int __isdigit_ascii(int c) {
- return (c>='0' && c<='9');
-}
-
-int isdigit(int c) __attribute__((weak,alias("__isdigit_ascii")));
diff --git a/mdk-stage1/dietlibc/lib/isgraph.c b/mdk-stage1/dietlibc/lib/isgraph.c
deleted file mode 100644
index 807f90ff0..000000000
--- a/mdk-stage1/dietlibc/lib/isgraph.c
+++ /dev/null
@@ -1,5 +0,0 @@
-int __isgraph_ascii(int c) {
- return (c>=33 && c<=126);
-}
-
-int isgraph(int c) __attribute__((weak,alias("__isgraph_ascii")));
diff --git a/mdk-stage1/dietlibc/lib/islower.c b/mdk-stage1/dietlibc/lib/islower.c
deleted file mode 100644
index 6a9afa519..000000000
--- a/mdk-stage1/dietlibc/lib/islower.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <ctype.h>
-
-int __islower_ascii(int c) {
- return (c>='a' && c<='z');
-}
-
-int islower(int c) __attribute__((weak,alias("__islower_ascii")));
diff --git a/mdk-stage1/dietlibc/lib/isprint.c b/mdk-stage1/dietlibc/lib/isprint.c
deleted file mode 100644
index e980658a5..000000000
--- a/mdk-stage1/dietlibc/lib/isprint.c
+++ /dev/null
@@ -1,6 +0,0 @@
-
-int __isprint_ascii(int c) {
- return (c>=32 && c<=126);
-}
-
-int isprint(int c) __attribute__((weak,alias("__isprint_ascii")));
diff --git a/mdk-stage1/dietlibc/lib/ispunct.c b/mdk-stage1/dietlibc/lib/ispunct.c
deleted file mode 100644
index 2fd1183b1..000000000
--- a/mdk-stage1/dietlibc/lib/ispunct.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <ctype.h>
-
-int __ispunct_ascii(int c) {
- return isprint(c) && !( isalnum(c) || isspace(c) );
-}
-
-int ispunct(int c) __attribute__((weak,alias("__ispunct_ascii")));
diff --git a/mdk-stage1/dietlibc/lib/isspace.c b/mdk-stage1/dietlibc/lib/isspace.c
deleted file mode 100644
index 916f784ab..000000000
--- a/mdk-stage1/dietlibc/lib/isspace.c
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <ctype.h>
-
-int __isspace_ascii(int ch)
-{
- return ((ch==' ')||(ch=='\f')||(ch=='\t')||(ch=='\v')||(ch=='\r')||(ch=='\n'));
-}
-
-int isspace(int c) __attribute__((weak,alias("__isspace_ascii")));
diff --git a/mdk-stage1/dietlibc/lib/isupper.c b/mdk-stage1/dietlibc/lib/isupper.c
deleted file mode 100644
index 933dfc169..000000000
--- a/mdk-stage1/dietlibc/lib/isupper.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <ctype.h>
-
-int __isupper_ascii(int c) {
- return (c>='A' && c<='Z');
-}
-
-int isupper(int c) __attribute__((weak,alias("__isupper_ascii")));
diff --git a/mdk-stage1/dietlibc/lib/isxdigit.c b/mdk-stage1/dietlibc/lib/isxdigit.c
deleted file mode 100644
index 22a711f2d..000000000
--- a/mdk-stage1/dietlibc/lib/isxdigit.c
+++ /dev/null
@@ -1,5 +0,0 @@
-int __isxdigit_ascii(int c) {
- return ((c>='0'&&c<='9') || (c>='A'&&c<='F') || (c>='a'&&c<='f'));
-}
-
-int isxdigit(int c) __attribute__((weak,alias("__isxdigit_ascii")));
diff --git a/mdk-stage1/dietlibc/lib/listen.c b/mdk-stage1/dietlibc/lib/listen.c
deleted file mode 100644
index 56a51be06..000000000
--- a/mdk-stage1/dietlibc/lib/listen.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <linux/net.h>
-
-extern int socketcall(int callno,long* args);
-
-int listen(int a, int b) {
-#ifdef __i386__
- return socketcall(SYS_LISTEN, (long*)&a);
-#else
- unsigned long args[] = { a, b, 0 };
- return socketcall(SYS_LISTEN, args);
-#endif
-}
-
diff --git a/mdk-stage1/dietlibc/lib/lockf.c b/mdk-stage1/dietlibc/lib/lockf.c
deleted file mode 100644
index 2b1d004ef..000000000
--- a/mdk-stage1/dietlibc/lib/lockf.c
+++ /dev/null
@@ -1,37 +0,0 @@
-#include <sys/types.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <errno.h>
-
-int lockf(int fd, int cmd, off_t len) {
- struct flock fl;
- fl.l_whence=SEEK_CUR;
- fl.l_start=0;
- fl.l_len=len;
- fl.l_pid=0;
- switch (cmd) {
- case F_TEST:
- if (fcntl(fd,F_GETLK,&fl)<0)
- return -1;
- if (fl.l_type == F_UNLCK || fl.l_pid == getpid ())
- return 0;
- errno=EACCES;
- return -1;
- case F_ULOCK:
- fl.l_type=F_UNLCK;
- cmd=F_SETLK;
- break;
- case F_LOCK:
- fl.l_type = F_WRLCK;
- cmd = F_SETLKW;
- break;
- case F_TLOCK:
- fl.l_type = F_WRLCK;
- cmd = F_SETLK;
- break;
- default:
- errno=EINVAL;
- return -1;
- }
- return fcntl(fd,cmd,&fl);
-}
diff --git a/mdk-stage1/dietlibc/lib/longjmp.c b/mdk-stage1/dietlibc/lib/longjmp.c
deleted file mode 100644
index d0a5719c1..000000000
--- a/mdk-stage1/dietlibc/lib/longjmp.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright (C) 1991, 92, 94, 95, 97, 98 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The GNU C 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-
-/* #include <stddef.h> */
-#include <setjmp.h>
-#include <signal.h>
-
-extern int __sigprocmask(int how,void* set,void* oldset);
-extern void __longjmp(void* env, int val);
-
-/*
-extern void _longjmp_unwind (jmp_buf env, int val);
-*/
-/* Set the signal mask to the one specified in ENV, and jump
- to the position specified in ENV, causing the setjmp
- call there to return VAL, or 1 if VAL is 0. */
-void __siglongjmp (sigjmp_buf env, int val)
-{
- /* Perform any cleanups needed by the frames being unwound. */
- /*
- _longjmp_unwind (env, val);
- */
-
- if (env[0].__mask_was_saved)
- /* Restore the saved signal mask. */
- (void) __sigprocmask (SIG_SETMASK, &env[0].__saved_mask,
- (sigset_t *) NULL);
-
- /* Call the machine-dependent function to restore machine state. */
- __longjmp (env[0].__jmpbuf, val ?: 1);
-}
-
-void siglongjmp (sigjmp_buf env, int val) __attribute__((weak,alias("__siglongjmp")));
-void longjmp (sigjmp_buf env, int val) __attribute__((weak,alias("__siglongjmp")));
-void _longjmp (sigjmp_buf env, int val) __attribute__((weak,alias("__siglongjmp")));
-void __libc_longjmp (sigjmp_buf env, int val) __attribute__((weak,alias("__siglongjmp")));
diff --git a/mdk-stage1/dietlibc/lib/lseek64.c b/mdk-stage1/dietlibc/lib/lseek64.c
deleted file mode 100644
index f39e779f9..000000000
--- a/mdk-stage1/dietlibc/lib/lseek64.c
+++ /dev/null
@@ -1,22 +0,0 @@
-#include "dietfeatures.h"
-
-#ifdef WANT_LARGEFILE_BACKCOMPAT
-#include <sys/stat.h>
-#ifndef __NO_STAT64
-#include <errno.h>
-#include <unistd.h>
-
-loff_t lseek64(int fildes, loff_t offset, int whence) {
- loff_t tmp;
- if (llseek(fildes,offset>>32,offset&0xffffffff,&tmp,whence)) {
-#ifdef WANT_THREAD_SAFE
- if (*__errno_location()!=ENOSYS) return -1;
-#else
- if (errno!=ENOSYS) return -1;
-#endif
- return (loff_t)lseek(fildes,(off_t)offset,whence);
- }
- return tmp;
-}
-#endif
-#endif
diff --git a/mdk-stage1/dietlibc/lib/memccmp.c b/mdk-stage1/dietlibc/lib/memccmp.c
deleted file mode 100644
index 3a8c14f60..000000000
--- a/mdk-stage1/dietlibc/lib/memccmp.c
+++ /dev/null
@@ -1,17 +0,0 @@
-#define _POSIX_SOURCE
-#define _XOPEN_SOURCE
-#include <sys/types.h>
-
-int memccmp(const void *dst, const void *src, int c, size_t count)
-{
- register const char *a = dst;
- register const char *b = src;
- while (count--)
- {
- register int res=(*a - *b);
- if (res) return res;
- if (*a==c) return 0;
- ++a; ++b;
- }
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/lib/memccpy.c b/mdk-stage1/dietlibc/lib/memccpy.c
deleted file mode 100644
index 6d6ac98ab..000000000
--- a/mdk-stage1/dietlibc/lib/memccpy.c
+++ /dev/null
@@ -1,19 +0,0 @@
-#define _POSIX_SOURCE
-#define _XOPEN_SOURCE
-#include <sys/types.h>
-
-void *memccpy(void *dst, const void *src, int c, size_t count)
-{
- char *a = dst;
- const char *b = src;
- while (count--)
- {
- *a++ = *b;
- if (*b==c)
- {
- return (void *)a;
- }
- b++;
- }
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/lib/memchr.c b/mdk-stage1/dietlibc/lib/memchr.c
deleted file mode 100644
index 93d81328a..000000000
--- a/mdk-stage1/dietlibc/lib/memchr.c
+++ /dev/null
@@ -1,9 +0,0 @@
-#include <sys/types.h>
-
-char *memchr(const char *s, int c, size_t n) {
- int i;
- for (i=n; i; --i)
- if (*s++==c)
- return (char*)s;
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/lib/memcmp.c b/mdk-stage1/dietlibc/lib/memcmp.c
deleted file mode 100644
index c05a46863..000000000
--- a/mdk-stage1/dietlibc/lib/memcmp.c
+++ /dev/null
@@ -1,16 +0,0 @@
-#include <sys/types.h>
-
-int memcmp(const void *dst, const void *src, size_t count) {
- register int r;
- register const char *d=dst;
- register const char *s=src;
- while (count--) {
- if ((r=(*d - *s)))
- return r;
- ++d;
- ++s;
- }
- return 0;
-}
-
-int bcmp(const char *a,const char *b,size_t c) __attribute__((weak,alias("memcmp")));
diff --git a/mdk-stage1/dietlibc/lib/memcpy.c b/mdk-stage1/dietlibc/lib/memcpy.c
deleted file mode 100644
index 0c688b509..000000000
--- a/mdk-stage1/dietlibc/lib/memcpy.c
+++ /dev/null
@@ -1,12 +0,0 @@
-#include <sys/types.h>
-
-void* memcpy(void* dst, const void* src, size_t count) {
- register char *d=dst;
- register const char *s=src;
- ++count; /* this actually produces better code than using count-- */
- while (--count) {
- *d = *s;
- ++d; ++s;
- }
- return dst;
-}
diff --git a/mdk-stage1/dietlibc/lib/memmove.c b/mdk-stage1/dietlibc/lib/memmove.c
deleted file mode 100644
index 7adb2be91..000000000
--- a/mdk-stage1/dietlibc/lib/memmove.c
+++ /dev/null
@@ -1,23 +0,0 @@
-#define _POSIX_SOURCE
-#define _XOPEN_SOURCE
-#include <sys/types.h>
-
-void *memmove(void *dst, const void *src, size_t count)
-{
- char *a = dst;
- const char *b = src;
- if (src!=dst)
- {
- if (src>dst)
- {
- while (count--) *a++ = *b++;
- }
- else
- {
- a+=count-1;
- b+=count-1;
- while (count--) *a-- = *b--;
- }
- }
- return dst;
-}
diff --git a/mdk-stage1/dietlibc/lib/memset.c b/mdk-stage1/dietlibc/lib/memset.c
deleted file mode 100644
index 5f9ae49ee..000000000
--- a/mdk-stage1/dietlibc/lib/memset.c
+++ /dev/null
@@ -1,9 +0,0 @@
-#include <sys/types.h>
-
-void * memset(void * dst, int s, size_t count) {
- register char * a = dst;
- count++; /* this actually creates smaller code than using count-- */
- while (--count)
- *a++ = s;
- return dst;
-}
diff --git a/mdk-stage1/dietlibc/lib/mkfifo.c b/mdk-stage1/dietlibc/lib/mkfifo.c
deleted file mode 100644
index 596efbe27..000000000
--- a/mdk-stage1/dietlibc/lib/mkfifo.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <linux/stat.h>
-#include <unistd.h>
-
-int mkfifo(const char *fn,mode_t mode) {
- return mknod(fn,S_IFIFO|mode,0);
-}
diff --git a/mdk-stage1/dietlibc/lib/msgctl.c b/mdk-stage1/dietlibc/lib/msgctl.c
deleted file mode 100644
index 19ea6d8cf..000000000
--- a/mdk-stage1/dietlibc/lib/msgctl.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <sys/types.h>
-#include <sys/ipc.h>
-#include <sys/msg.h>
-#include <asm/ipc.h>
-
-extern int __ipc();
-
-int msgctl(int msqid, int cmd, struct msqid_ds *buf) {
- return __ipc(MSGCTL,msqid,cmd,0,buf);
-}
diff --git a/mdk-stage1/dietlibc/lib/msgget.c b/mdk-stage1/dietlibc/lib/msgget.c
deleted file mode 100644
index 9bca09ebe..000000000
--- a/mdk-stage1/dietlibc/lib/msgget.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <sys/types.h>
-#include <sys/ipc.h>
-#include <sys/msg.h>
-#include <asm/ipc.h>
-
-extern int __ipc();
-
-int msgget(key_t key,int flag) {
- return __ipc(MSGGET,key,flag,0,0);
-}
diff --git a/mdk-stage1/dietlibc/lib/msgrcv.c b/mdk-stage1/dietlibc/lib/msgrcv.c
deleted file mode 100644
index b4ae9cc6c..000000000
--- a/mdk-stage1/dietlibc/lib/msgrcv.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <sys/types.h>
-#include <sys/ipc.h>
-#include <sys/msg.h>
-#include <asm/ipc.h>
-
-extern int __ipc();
-
-int msgrcv(int msqid, void *msgp, size_t msgsz, long int msgtyp, int msgflg) {
- struct ipc_kludge tmp;
- tmp.msgp = msgp;
- tmp.msgtyp = msgtyp;
- return __ipc(MSGRCV,msqid, msgsz, msgflg, &tmp);
-}
diff --git a/mdk-stage1/dietlibc/lib/msgsnd.c b/mdk-stage1/dietlibc/lib/msgsnd.c
deleted file mode 100644
index 6203053f0..000000000
--- a/mdk-stage1/dietlibc/lib/msgsnd.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <sys/types.h>
-#include <sys/ipc.h>
-#include <sys/msg.h>
-#include <asm/ipc.h>
-
-extern int __ipc();
-
-int msgsnd (int msqid, const void *msgp, size_t msgsz, int msgflg) {
- return __ipc(MSGSND,msqid, msgsz, msgflg, msgp);
-}
diff --git a/mdk-stage1/dietlibc/lib/nop.c b/mdk-stage1/dietlibc/lib/nop.c
deleted file mode 100644
index c05bea813..000000000
--- a/mdk-stage1/dietlibc/lib/nop.c
+++ /dev/null
@@ -1,7 +0,0 @@
-
-int __fflush_stdin() __attribute__((weak,alias("__return0")));
-int __fflush_stdout() __attribute__((weak,alias("__return0")));
-int __fflush_stderr() __attribute__((weak,alias("__return0")));
-
-/* used for weak aliases */
-int __return0() { return 0; }
diff --git a/mdk-stage1/dietlibc/lib/open64.c b/mdk-stage1/dietlibc/lib/open64.c
deleted file mode 100644
index f1499d017..000000000
--- a/mdk-stage1/dietlibc/lib/open64.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <linux/types.h>
-#include <linux/fcntl.h>
-
-#ifndef O_LARGEFILE
-#define O_LARGEFILE 0
-#endif
-
-extern int open(const char* file,int oflag,int mode);
-
-int __libc_open64(const char* file,int oflag,int mode) {
- return open(file,oflag|O_LARGEFILE,mode);
-}
-
-int open64(const char* file,int oflag,int mode) __attribute__((weak,alias("__libc_open64")));
diff --git a/mdk-stage1/dietlibc/lib/opendir.c b/mdk-stage1/dietlibc/lib/opendir.c
deleted file mode 100644
index 5c0c4a305..000000000
--- a/mdk-stage1/dietlibc/lib/opendir.c
+++ /dev/null
@@ -1,18 +0,0 @@
-#include "dietdirent.h"
-#include <unistd.h>
-#include <dirent.h>
-#include <stdlib.h>
-#include <fcntl.h>
-
-DIR *opendir (const char *name) {
- DIR *t=(DIR*)malloc(sizeof(DIR));
- if (t) {
- if ((t->fd=open(name,O_RDONLY|O_DIRECTORY))>=0) {
- t->num=t->cur=0;
- } else {
- free(t);
- t=0;
- }
- }
- return t;
-}
diff --git a/mdk-stage1/dietlibc/lib/perror.c b/mdk-stage1/dietlibc/lib/perror.c
deleted file mode 100644
index ecab7250b..000000000
--- a/mdk-stage1/dietlibc/lib/perror.c
+++ /dev/null
@@ -1,22 +0,0 @@
-#include "dietfeatures.h"
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-
-extern char *sys_errlist[];
-extern int sys_nerr;
-extern int errno;
-
-void perror(const char *s) {
- register char *message="[unknown error]";
- write(2,s,strlen(s));
- write(2,": ",2);
- if (errno>=0 && errno<sys_nerr)
-#ifdef WANT_THREAD_SAFE
- message=sys_errlist[*__errno_location()];
-#else
- message=sys_errlist[errno];
-#endif
- write(2,message,strlen(message));
- write(2,"\n",1);
-}
diff --git a/mdk-stage1/dietlibc/lib/pread.c b/mdk-stage1/dietlibc/lib/pread.c
deleted file mode 100644
index b922aa93e..000000000
--- a/mdk-stage1/dietlibc/lib/pread.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <endian.h>
-#include <sys/types.h>
-
-extern size_t __pread(int fd, void *buf, size_t count, off_t a,off_t b);
-
-size_t __libc_pread(int fd, void *buf, size_t count, off_t offset) {
- return __pread(fd,buf,count,offset,0);
-}
-
-int pread(int fd, void *buf, size_t count, off_t offset) __attribute__((weak,alias("__libc_pread")));
diff --git a/mdk-stage1/dietlibc/lib/pread64.c b/mdk-stage1/dietlibc/lib/pread64.c
deleted file mode 100644
index e6ba4d103..000000000
--- a/mdk-stage1/dietlibc/lib/pread64.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <endian.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#ifndef __NO_STAT64
-extern size_t __pread(int fd, void *buf, size_t count, off_t a,off_t b);
-
-size_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset) {
- return __pread(fd,buf,count,__LONG_LONG_PAIR (offset&0xffffffff,offset>>32));
-}
-
-int pread64(int fd, void *buf, size_t count, off_t offset) __attribute__((weak,alias("__libc_pread64")));
-#endif
diff --git a/mdk-stage1/dietlibc/lib/putenv.c b/mdk-stage1/dietlibc/lib/putenv.c
deleted file mode 100644
index 274b16b0e..000000000
--- a/mdk-stage1/dietlibc/lib/putenv.c
+++ /dev/null
@@ -1,37 +0,0 @@
-#include <stdlib.h>
-#include <string.h>
-
-int putenv(const char *string) {
- int len;
- int envc;
- char *tmp;
- const char **ep;
- char **newenv;
- static char **origenv=0;
- if (!origenv) origenv=environ;
- if (!(tmp=strchr(string,'=')))
- len=strlen(string);
- else
- len=tmp-string+1;
- for (envc=0, ep=(const char**)environ; *ep; ++ep) {
- if (!memcmp(string,*ep,len)) { /* found */
- if (!tmp) {
- for (; ep[1]; ++ep) ep[0]=ep[1];
- ep[0]=0;
- return 0;
- }
- *ep=string;
- return 0;
- }
- ++envc;
- }
- if (tmp) {
- newenv=(char**)malloc((envc+2)*sizeof(char*));
- if (!newenv) return -1;
- newenv[0]=(char*)string;
- memcpy(newenv+1,environ,(envc+1)*sizeof(char*));
- if (environ!=origenv) free(environ);
- environ=newenv;
- }
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/lib/puts.c b/mdk-stage1/dietlibc/lib/puts.c
deleted file mode 100644
index 54415151d..000000000
--- a/mdk-stage1/dietlibc/lib/puts.c
+++ /dev/null
@@ -1,12 +0,0 @@
-#include <unistd.h>
-#include <string.h>
-#include "dietstdio.h"
-#include "dietfeatures.h"
-
-int puts(const char *s) {
-#ifdef WANT_BUFFERED_STDIO
- return fwrite(s,1,strlen(s),stdout) && fputc('\n',stdout);
-#else
- return write(1,s,strlen(s)) && write(1,"\n",1);
-#endif
-}
diff --git a/mdk-stage1/dietlibc/lib/qsort.c b/mdk-stage1/dietlibc/lib/qsort.c
deleted file mode 100644
index 2a8824bf3..000000000
--- a/mdk-stage1/dietlibc/lib/qsort.c
+++ /dev/null
@@ -1,125 +0,0 @@
-#include <stdlib.h>
-#include <assert.h>
-
-/* comments:
- 1. insertion sort sofort, nicht nachträglich
- 2. threshold = 16
- */
-
-static inline void iswap(void *a,void *b,size_t size) {
- register char *x=a;
- register char *y=b;
- register char *z=x+size;
- while (x<z) {
- register char tmp=*x;
- *x=*y;
- *y=tmp;
- ++x; ++y;
- }
-}
-
-static inline void swap(void *base,size_t size,size_t a,size_t b) {
- iswap(base+a*size,base+b*size,size);
-}
-
-#if 0
-extern int array[];
-
-void dumparray() {
- printf("array now {%d,%d,%d,%d,%d}\n",array[0],array[1],array[2],array[3],array[4]);
-}
-#endif
-
-void isort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)) {
- int i;
- while (nmemb>1) {
- char *min=base;
- char *tmp=min+size;
- for (i=1; i<nmemb; ++i) {
- if (compar(tmp,min)<0)
- min=tmp;
- tmp+=size;
- }
- iswap(min,base,size);
- base+=size;
- nmemb-=1;
- }
-}
-
-void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)) {
-#ifdef DEBUG
- char *dbase=base;
- char *dmax=base+(nmemb-1)*size;
- char dmemb=nmemb;
-#endif
- static int level=0;
- char* v; /* pivot */
- char* mid, *max, *min;
- int lmemb;
-
-#if 0
- int left,right;
- left=(int*)base-array;
- right=left+nmemb-1;
- ++level;
- { int i; for (i=0; i<level; ++i) printf(" "); }
- printf("qsort: level %d; base=%p, %dx%d; array[%d..%d]\n",level,base,nmemb,size,left,right);
- assert(left>=0 && right<=1000);
-#endif
- if (nmemb<=8) {
- --level;
- return isort(base,nmemb,size,compar);
- }
- {
- mid=base+(nmemb/2)*size;
- max=base+(nmemb-1)*size;
-
- if (compar(base,max)<0) /* a[left] < a[right] */
- if (compar(base,mid)<0) /* a[left] < a[med] */
- if (compar(max,mid)<0) /* a[left] < a[right] < a[med] */
- v=max;
- else /* a[left] < a[med] < a[right] */
- v=mid;
- else /* a[med] < a[left] < a[right] */
- v=base;
- else /* a[right] < a[left] */
- if (compar(base,mid)<0) /* a[right] < a[left] < a[med] */
- v=base;
- else /* a[right] < a[left] && a[med] < a[left] */
- if (compar(max,mid)<0) /* a[right] < a[med] < a[left] */
- v=mid;
- else
- v=max;
-// printf("%d %d %d -> median %d\n",*(int*)base,*(int*)mid,*(int*)max,*(int*)v);
- }
- if (v != max)
- iswap(v,max,size);
- v=max;
- min=base; lmemb=0;
- for (;;) {
- while (compar(min,v)<0) { min+=size; ++lmemb; }
- while (compar(max-=size,v)>0) ;
- if (min>=max) break;
- iswap(min,max,size);
- }
- iswap(min,v,size);
-#ifdef DEBUG
-// { int i; for (i=0; i<level; ++i) printf(" "); }
-// printf("-=< base=%p, min=%p, nmemb=%d, lmemb=%d (%d)\n",base,min,nmemb,lmemb,(min-(char*)base)/size);
- assert(lmemb==((min-(char*)base)/size));
-#endif
- if (min>(char*)base+size) {
-#ifdef DEBUG
- assert(base==dbase);
-#endif
-// { int i; for (i=0; i<level; ++i) printf(" "); }
-// printf("+-left %d [%d..%d] of [%d..%d]\n",level+1,left,left+lmemb,left,right);
- qsort(base,lmemb,size,compar);
- }
- if (nmemb>lmemb+1) {
-// { int i; for (i=0; i<level; ++i) printf(" "); }
-// printf("+-right %d [%d..%d] of [%d..%d]\n",level+1,left+lmemb,right,left,right);
- qsort(min+size,nmemb-lmemb-1,size,compar);
- }
- --level;
-}
diff --git a/mdk-stage1/dietlibc/lib/raise.c b/mdk-stage1/dietlibc/lib/raise.c
deleted file mode 100644
index 606546034..000000000
--- a/mdk-stage1/dietlibc/lib/raise.c
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <linux/types.h>
-#include <unistd.h>
-#include <signal.h>
-#include "syscalls.h"
-
-int raise(int sig) {
- return kill(getpid(),sig);
-}
diff --git a/mdk-stage1/dietlibc/lib/rand.c b/mdk-stage1/dietlibc/lib/rand.c
deleted file mode 100644
index 10bfaf94d..000000000
--- a/mdk-stage1/dietlibc/lib/rand.c
+++ /dev/null
@@ -1,9 +0,0 @@
-#include <stdlib.h>
-
-static unsigned int seed=1;
-
-int rand() {
- return ((seed = seed * 1103515245 + 12345) % ((unsigned int)RAND_MAX + 1));
-}
-
-void srand(unsigned int i) { seed=i; }
diff --git a/mdk-stage1/dietlibc/lib/random.c b/mdk-stage1/dietlibc/lib/random.c
deleted file mode 100644
index e7785c455..000000000
--- a/mdk-stage1/dietlibc/lib/random.c
+++ /dev/null
@@ -1,9 +0,0 @@
-#include <stdlib.h>
-
-static unsigned int seed=1;
-
-long int random() {
- return ((seed = seed * 1103515245 + 12345) % ((unsigned int)RAND_MAX + 1));
-}
-
-void srandom(unsigned int i) { seed=i; }
diff --git a/mdk-stage1/dietlibc/lib/readdir.c b/mdk-stage1/dietlibc/lib/readdir.c
deleted file mode 100644
index 689f5d08b..000000000
--- a/mdk-stage1/dietlibc/lib/readdir.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#include "dietdirent.h"
-#include <unistd.h>
-#include <dirent.h>
-#include <stdlib.h>
-
-struct dirent* readdir(DIR *d) {
- if (!d->num || (d->cur += ((struct dirent*)(d->buf+d->cur))->d_reclen)>=d->num) {
- int res=getdents(d->fd,(struct dirent*)d->buf,1023);
- if (res<=0) return 0;
- d->num=res; d->cur=0;
- }
- return (struct dirent*)(d->buf+d->cur);
-}
diff --git a/mdk-stage1/dietlibc/lib/reboot.c b/mdk-stage1/dietlibc/lib/reboot.c
deleted file mode 100644
index 7f47a95dd..000000000
--- a/mdk-stage1/dietlibc/lib/reboot.c
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <sys/reboot.h>
-
-int __reboot(int magic1, int magic2, int cmd, void * arg);
-
-int reboot(int cmd, void *arg)
-{
- return __reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, cmd, arg);
-}
diff --git a/mdk-stage1/dietlibc/lib/recv.c b/mdk-stage1/dietlibc/lib/recv.c
deleted file mode 100644
index bc6b1e5d7..000000000
--- a/mdk-stage1/dietlibc/lib/recv.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <linux/net.h>
-
-extern int socketcall(int callno,long* args);
-
-int __libc_recv(int a, const void * b, size_t c, int flags) {
-#ifdef __i386__
- return socketcall(SYS_RECV,(long*)&a);
-#else
- unsigned long args[] = { a, (long) b, c, flags };
- return socketcall(SYS_RECV, args);
-#endif
-}
-
-int recv(int a, const void * b, size_t c, int flags)
- __attribute__ ((weak, alias("__libc_recv")));
diff --git a/mdk-stage1/dietlibc/lib/recvfrom.c b/mdk-stage1/dietlibc/lib/recvfrom.c
deleted file mode 100644
index 802ad665f..000000000
--- a/mdk-stage1/dietlibc/lib/recvfrom.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <linux/net.h>
-
-extern int socketcall(int callno,long* args);
-
-int __libc_recvfrom(int a, const void * b, size_t c, int flags, void *to, void *tolen) {
-#ifdef __i386__
- return socketcall(SYS_RECVFROM, (long*)&a);
-#else
- unsigned long args[] = { a, (long) b, c, flags, (long) to, (long) tolen };
- return socketcall(SYS_RECVFROM, args);
-#endif
-}
-
-int recvfrom(int a, const void * b, size_t c, int flags, void *to, void *tolen)
- __attribute__ ((weak,alias("__libc_recvfrom"))) ;
diff --git a/mdk-stage1/dietlibc/lib/recvmsg.c b/mdk-stage1/dietlibc/lib/recvmsg.c
deleted file mode 100644
index c14c58c78..000000000
--- a/mdk-stage1/dietlibc/lib/recvmsg.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <linux/net.h>
-
-extern int socketcall(int callno,long* args);
-
-int __libc_recvmsg(int a, struct msghdr* msg, int flags) {
-#ifdef __i386__
- return socketcall(SYS_RECVMSG, (long*)&a);
-#else
- unsigned long args[] = { a, (long) msg, flags };
- return socketcall(SYS_RECVMSG, args);
-#endif
-}
-
-int recvmsg(int a, struct msghdr *msg, int flags)
- __attribute__ ((weak,alias("__libc_recvmsg"))) ;
diff --git a/mdk-stage1/dietlibc/lib/remove.c b/mdk-stage1/dietlibc/lib/remove.c
deleted file mode 100644
index d5125bfed..000000000
--- a/mdk-stage1/dietlibc/lib/remove.c
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-int remove(const char* filename) {
- if (unlink(filename)) {
- if (errno==EISDIR)
- return rmdir(filename);
- return -1;
- }
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/lib/rewind.c b/mdk-stage1/dietlibc/lib/rewind.c
deleted file mode 100644
index 48434a316..000000000
--- a/mdk-stage1/dietlibc/lib/rewind.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <dietstdio.h>
-#include <unistd.h>
-
-void rewind( FILE *stream) {
- fseek(stream, 0L, SEEK_SET);
-}
diff --git a/mdk-stage1/dietlibc/lib/rewinddir.c b/mdk-stage1/dietlibc/lib/rewinddir.c
deleted file mode 100644
index addc7bde9..000000000
--- a/mdk-stage1/dietlibc/lib/rewinddir.c
+++ /dev/null
@@ -1,8 +0,0 @@
-#include "dietdirent.h"
-#include <unistd.h>
-#include <dirent.h>
-
-void rewinddir(DIR *d) {
- if (lseek(d->fd,0,SEEK_SET) != (off_t)-1)
- d->num=d->cur=0;
-}
diff --git a/mdk-stage1/dietlibc/lib/sbrk.c b/mdk-stage1/dietlibc/lib/sbrk.c
deleted file mode 100644
index 945ad5a16..000000000
--- a/mdk-stage1/dietlibc/lib/sbrk.c
+++ /dev/null
@@ -1,20 +0,0 @@
-#include <unistd.h>
-
-extern int __brk(void *end_data_segment);
-
-extern void* __curbrk;
-
-void* __sbrk(ptrdiff_t increment) {
- void* oldbrk;
- if (__curbrk==0)
- if (__brk(0) < 0)
- return (void*)-1;
- if (increment==0)
- return __curbrk;
- oldbrk=__curbrk;
- if (__brk(oldbrk+increment)<0)
- return (void*)-1;
- return oldbrk;
-}
-
-void* sbrk (ptrdiff_t increment) __attribute__((weak,alias("__sbrk")));
diff --git a/mdk-stage1/dietlibc/lib/seekdir.c b/mdk-stage1/dietlibc/lib/seekdir.c
deleted file mode 100644
index cf111fbc8..000000000
--- a/mdk-stage1/dietlibc/lib/seekdir.c
+++ /dev/null
@@ -1,8 +0,0 @@
-#include "dietdirent.h"
-#include <unistd.h>
-#include <dirent.h>
-
-void seekdir(DIR *d,off_t offset) {
- if (lseek(d->fd,offset,SEEK_SET) != (off_t)-1)
- d->num=d->cur=0;
-}
diff --git a/mdk-stage1/dietlibc/lib/semctl.c b/mdk-stage1/dietlibc/lib/semctl.c
deleted file mode 100644
index ddc0aae95..000000000
--- a/mdk-stage1/dietlibc/lib/semctl.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <sys/types.h>
-#include <sys/ipc.h>
-#include <sys/sem.h>
-#include <asm/ipc.h>
-
-extern int __ipc();
-
-int semctl(int semid, int semnum, int cmd, union semun arg) {
- return __ipc(SEMCTL,semid,semnum,cmd,&arg);
-}
diff --git a/mdk-stage1/dietlibc/lib/semget.c b/mdk-stage1/dietlibc/lib/semget.c
deleted file mode 100644
index 056aeae04..000000000
--- a/mdk-stage1/dietlibc/lib/semget.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <sys/types.h>
-#include <sys/ipc.h>
-#include <sys/sem.h>
-#include <asm/ipc.h>
-
-extern int __ipc();
-
-int semget(key_t key, int nsems, int semflg) {
- return __ipc(SEMGET,key,nsems,semflg,0);
-}
diff --git a/mdk-stage1/dietlibc/lib/semop.c b/mdk-stage1/dietlibc/lib/semop.c
deleted file mode 100644
index abfde73a7..000000000
--- a/mdk-stage1/dietlibc/lib/semop.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <sys/types.h>
-#include <sys/ipc.h>
-#include <sys/sem.h>
-#include <asm/ipc.h>
-
-extern int __ipc();
-
-int semop(int semid,struct sembuf *sops,unsigned nsops) {
- return __ipc(SEMOP,semid,nsops,0,sops);
-}
diff --git a/mdk-stage1/dietlibc/lib/send.c b/mdk-stage1/dietlibc/lib/send.c
deleted file mode 100644
index c1adf1b5d..000000000
--- a/mdk-stage1/dietlibc/lib/send.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <linux/net.h>
-
-extern int socketcall(int callno,long* args);
-
-int __libc_send(int a, const void * b, size_t c, int flags) {
-#ifdef __i386__
- return socketcall(SYS_SEND, (long*)&a);
-#else
- unsigned long args[] = { a, (long) b, c, flags };
- return socketcall(SYS_SEND, args);
-#endif
-}
-
-int send(int a, const void * b, size_t c, int flags)
- __attribute__ ((weak, alias("__libc_send")));
diff --git a/mdk-stage1/dietlibc/lib/sendmsg.c b/mdk-stage1/dietlibc/lib/sendmsg.c
deleted file mode 100644
index 277265985..000000000
--- a/mdk-stage1/dietlibc/lib/sendmsg.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <linux/net.h>
-
-extern int socketcall(int callno,long* args);
-
-int __libc_sendmsg(int a, const struct msghdr* msg, int flags) {
-#ifdef __i386__
- return socketcall(SYS_SENDMSG, (long*)&a);
-#else
- unsigned long args[] = { a, (long) msg, flags };
- return socketcall(SYS_SENDMSG, args);
-#endif
-}
-
-int sendmsg(int a, const struct msghdr *msg, int flags)
- __attribute__ ((weak,alias("__libc_sendmsg"))) ;
diff --git a/mdk-stage1/dietlibc/lib/sendto.c b/mdk-stage1/dietlibc/lib/sendto.c
deleted file mode 100644
index 078c010ea..000000000
--- a/mdk-stage1/dietlibc/lib/sendto.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <linux/net.h>
-
-extern int socketcall(int callno,long* args);
-
-int __libc_sendto(int a, const void * b, size_t c, int flags, void *to, int tolen) {
-#ifdef __i386__
- return socketcall(SYS_SENDTO, (long*)&a);
-#else
- unsigned long args[] = { a, (long) b, c, flags, (long) to, tolen };
- return socketcall(SYS_SENDTO, args);
-#endif
-}
-
-int sendto(int a, const void * b, size_t c, int flags, void *to, int tolen)
- __attribute__ ((weak, alias("__libc_sendto")));
diff --git a/mdk-stage1/dietlibc/lib/set_errno.c b/mdk-stage1/dietlibc/lib/set_errno.c
deleted file mode 100644
index 6553bc496..000000000
--- a/mdk-stage1/dietlibc/lib/set_errno.c
+++ /dev/null
@@ -1,9 +0,0 @@
-extern int errno;
-
-void __set_errno(int error) __attribute__ ((weak));
-
-void __set_errno(int error)
-{
- errno=error;
-}
-
diff --git a/mdk-stage1/dietlibc/lib/setpgrp.c b/mdk-stage1/dietlibc/lib/setpgrp.c
deleted file mode 100644
index 825ca3725..000000000
--- a/mdk-stage1/dietlibc/lib/setpgrp.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <unistd.h>
-
-int setpgrp()
-{
- return setpgid(0,0);
-}
diff --git a/mdk-stage1/dietlibc/lib/setsockopt.c b/mdk-stage1/dietlibc/lib/setsockopt.c
deleted file mode 100644
index 781e9c31c..000000000
--- a/mdk-stage1/dietlibc/lib/setsockopt.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <linux/net.h>
-
-extern int socketcall(int callno,long* args);
-
-int setsockopt(int a, int b, int c, void *d, void *e) {
-#ifdef __i386__
- return socketcall(SYS_SETSOCKOPT, (long*)&a);
-#else
- unsigned long args[] = { a, b, c, (long)d, (long) e };
- return socketcall(SYS_SETSOCKOPT, args);
-#endif
-}
-
diff --git a/mdk-stage1/dietlibc/lib/shmat.c b/mdk-stage1/dietlibc/lib/shmat.c
deleted file mode 100644
index 63284b1ea..000000000
--- a/mdk-stage1/dietlibc/lib/shmat.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <sys/types.h>
-#include <sys/ipc.h>
-#include <sys/shm.h>
-#include <asm/ipc.h>
-
-extern void* __ipc();
-
-void* shmat(int shmid,const void* shmaddr,int shmflg) {
- void* raddr;
- register void* result;
- result=__ipc(SHMAT,shmid,shmflg,&raddr,shmaddr);
- if ((unsigned long)result <= -(unsigned long)SHMLBA)
- result=raddr;
- return result;
-}
diff --git a/mdk-stage1/dietlibc/lib/shmctl.c b/mdk-stage1/dietlibc/lib/shmctl.c
deleted file mode 100644
index 8f942f2a4..000000000
--- a/mdk-stage1/dietlibc/lib/shmctl.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <sys/types.h>
-#include <sys/ipc.h>
-#include <sys/shm.h>
-#include <asm/ipc.h>
-
-extern int __ipc();
-
-int shmctl(int shmid, int cmd, struct shmid_ds *buf) {
- return __ipc(SHMCTL,shmid,cmd,0,buf);
-}
diff --git a/mdk-stage1/dietlibc/lib/shmdt.c b/mdk-stage1/dietlibc/lib/shmdt.c
deleted file mode 100644
index 36db10f08..000000000
--- a/mdk-stage1/dietlibc/lib/shmdt.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <sys/types.h>
-#include <sys/ipc.h>
-#include <sys/shm.h>
-#include <asm/ipc.h>
-
-extern int __ipc();
-
-int shmdt(const void* shmaddr) {
- return __ipc(SHMDT,0,0,0,shmaddr);
-}
diff --git a/mdk-stage1/dietlibc/lib/shmget.c b/mdk-stage1/dietlibc/lib/shmget.c
deleted file mode 100644
index 9b03f5deb..000000000
--- a/mdk-stage1/dietlibc/lib/shmget.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <sys/types.h>
-#include <sys/ipc.h>
-#include <sys/shm.h>
-#include <asm/ipc.h>
-
-extern int __ipc();
-
-int shmget(key_t key, int size, int shmflg) {
- return __ipc(SHMGET,key,size,shmflg,0);
-}
diff --git a/mdk-stage1/dietlibc/lib/shutdown.c b/mdk-stage1/dietlibc/lib/shutdown.c
deleted file mode 100644
index 0a6be6c37..000000000
--- a/mdk-stage1/dietlibc/lib/shutdown.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <linux/net.h>
-
-extern int socketcall(int callno,long* args);
-
-int __libc_shutdown(int s, int how) {
-#ifdef __i386__
- return socketcall(SYS_SHUTDOWN, (long*)&s);
-#else
- unsigned long args[] = { s, (long) how, 0 };
- return socketcall(SYS_SHUTDOWN, args);
-#endif
-}
-
-int shutdown(int s, int how) __attribute__((weak,alias("__libc_shutdown")));
diff --git a/mdk-stage1/dietlibc/lib/sigaddset.c b/mdk-stage1/dietlibc/lib/sigaddset.c
deleted file mode 100644
index 8ce69ea77..000000000
--- a/mdk-stage1/dietlibc/lib/sigaddset.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#define __KERNEL__
-#define sigaddset foobar
-#include <asm/signal.h>
-#undef sigaddset
-
-int __sigaddset(sigset_t *set, int signo) {
- unsigned long sig = signo - 1;
- if (_NSIG_WORDS == 1)
- set->sig[0] |= 1UL << sig;
- else
- set->sig[sig / _NSIG_BPW] |= 1UL << (sig % _NSIG_BPW);
- return 0;
-}
-
-int sigaddset (sigset_t *env, int signo) __attribute__((weak,alias("__sigaddset")));
diff --git a/mdk-stage1/dietlibc/lib/sigdelset.c b/mdk-stage1/dietlibc/lib/sigdelset.c
deleted file mode 100644
index 2c3385ea8..000000000
--- a/mdk-stage1/dietlibc/lib/sigdelset.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#define __KERNEL__
-#define sigdelset foobar
-#include <asm/signal.h>
-#undef sigdelset
-
-int __sigdelset(sigset_t *set, int signo) {
- unsigned long sig = signo - 1;
- if (_NSIG_WORDS == 1)
- set->sig[0] &= ~(1UL << sig);
- else
- set->sig[sig / _NSIG_BPW] &= ~(1UL << (sig % _NSIG_BPW));
- return 0;
-}
-
-int sigdelset (sigset_t *env, int signo) __attribute__((weak,alias("__sigdelset")));
diff --git a/mdk-stage1/dietlibc/lib/sigemptyset.c b/mdk-stage1/dietlibc/lib/sigemptyset.c
deleted file mode 100644
index f4532f96e..000000000
--- a/mdk-stage1/dietlibc/lib/sigemptyset.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#define __USE_EXTERN_INLINES 1
-#include <signal.h>
-#include <errno.h>
-#include <string.h>
-
-int sigemptyset(sigset_t *set) {
- if (set==NULL) {
- __set_errno(EINVAL);
- return -1;
- }
- memset(set,0,sizeof(*set));
- return 0;
-}
-
diff --git a/mdk-stage1/dietlibc/lib/sigfillset.c b/mdk-stage1/dietlibc/lib/sigfillset.c
deleted file mode 100644
index ddac6e391..000000000
--- a/mdk-stage1/dietlibc/lib/sigfillset.c
+++ /dev/null
@@ -1,11 +0,0 @@
-#define __KERNEL__
-#include <asm/signal.h>
-
-int __sigfillset (sigset_t *set) {
- int i;
- for (i=0; i<_NSIG_WORDS; i++)
- set->sig[i]=~0;
- return 0;
-}
-
-int sigfillset(sigset_t *env) __attribute__((weak,alias("__sigfillset")));
diff --git a/mdk-stage1/dietlibc/lib/sigismember.c b/mdk-stage1/dietlibc/lib/sigismember.c
deleted file mode 100644
index 67a258884..000000000
--- a/mdk-stage1/dietlibc/lib/sigismember.c
+++ /dev/null
@@ -1,21 +0,0 @@
-#define __USE_EXTERN_INLINES 1
-#include <signal.h>
-
-# define __sigmask(sig) \
- (((unsigned long int) 1) << (((sig) - 1) % (8 * sizeof (unsigned long int))))
-
-# define __sigword(sig) (((sig) - 1) / (8 * sizeof (unsigned long int)))
-
-# define _SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int)))
-typedef struct
- {
- unsigned long int __val[_SIGSET_NWORDS];
- } __sigset_t;
-
-int __sigismember(const __sigset_t *set, int signo) {
- unsigned long int __mask = __sigmask (signo);
- unsigned long int __word = __sigword (signo);
- return (set->__val[__word] & __mask);
-}
-
-int sigismember(const sigset_t *env, int signo) __attribute__((weak,alias("__sigismember")));
diff --git a/mdk-stage1/dietlibc/lib/sigjmp.c b/mdk-stage1/dietlibc/lib/sigjmp.c
deleted file mode 100644
index be97c62cc..000000000
--- a/mdk-stage1/dietlibc/lib/sigjmp.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 1992, 1994, 1997 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The GNU C 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-
-#include <setjmp.h>
-#include <signal.h>
-#include <string.h>
-
-/* This function is called by the `sigsetjmp' macro
- before doing a `__setjmp' on ENV[0].__jmpbuf.
- Always return zero. */
-
-int
-__sigjmp_save (sigjmp_buf env, int savemask)
-{
- env[0].__mask_was_saved = (savemask &&
- sigprocmask (SIG_BLOCK, (sigset_t *) NULL,
- (sigset_t*)&env[0].__saved_mask) == 0);
-
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/lib/sleep.c b/mdk-stage1/dietlibc/lib/sleep.c
deleted file mode 100644
index ec5b99533..000000000
--- a/mdk-stage1/dietlibc/lib/sleep.c
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <linux/time.h>
-#include <time.h>
-
-unsigned int sleep(unsigned int secs) {
- struct timespec t;
- t.tv_sec=secs;
- t.tv_nsec=0;
- nanosleep(&t,&t);
- return secs-t.tv_sec;
-}
-
diff --git a/mdk-stage1/dietlibc/lib/snprintf.c b/mdk-stage1/dietlibc/lib/snprintf.c
deleted file mode 100644
index 096c06115..000000000
--- a/mdk-stage1/dietlibc/lib/snprintf.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <stdarg.h>
-#include <sys/types.h>
-
-int vsnprintf (char *str,size_t size,const char *format, va_list arg_ptr);
-
-int snprintf(char *str,size_t size,const char *format,...)
-{
- int n;
- va_list arg_ptr;
- va_start(arg_ptr, format);
- n=vsnprintf(str,size,format,arg_ptr);
- va_end (arg_ptr);
- return n;
-}
diff --git a/mdk-stage1/dietlibc/lib/socket.c b/mdk-stage1/dietlibc/lib/socket.c
deleted file mode 100644
index 1684a6a2b..000000000
--- a/mdk-stage1/dietlibc/lib/socket.c
+++ /dev/null
@@ -1,12 +0,0 @@
-#include <linux/net.h>
-
-extern int socketcall(int callno,long* args);
-
-int socket(int a, int b, int c) {
-#ifdef __i386__
- return socketcall(SYS_SOCKET, (long*)&a);
-#else
- unsigned long args[] = { a, b, c };
- return socketcall(SYS_SOCKET, args);
-#endif
-}
diff --git a/mdk-stage1/dietlibc/lib/speed.c b/mdk-stage1/dietlibc/lib/speed.c
deleted file mode 100644
index a7fcca7c9..000000000
--- a/mdk-stage1/dietlibc/lib/speed.c
+++ /dev/null
@@ -1,67 +0,0 @@
-#include <unistd.h>
-#include <termios.h>
-#include <sys/types.h>
-
-#include <asm/errno.h>
-
-extern int errno;
-
-/* Hack around a kernel bug; value must correspond to the one used in tcsetattr.c */
-#define IBAUD0 020000000000
-
-
-/* Return the output baud rate stored in *TERMIOS_P. */
-speed_t cfgetospeed (struct termios *termios_p)
-{
- return termios_p->c_cflag & (CBAUD | CBAUDEX);
-}
-
-
-/* Return the input baud rate stored in *TERMIOS_P.
- Although for Linux there is no difference between input and output
- speed, the numerical 0 is a special case for the input baud rate. It
- should set the input baud rate to the output baud rate. */
-speed_t cfgetispeed (struct termios *termios_p)
-{
- return ((termios_p->c_iflag & IBAUD0)
- ? 0 : termios_p->c_cflag & (CBAUD | CBAUDEX));
-}
-
-
-/* Set the output baud rate stored in *TERMIOS_P to SPEED. */
-int cfsetospeed (struct termios *termios_p, speed_t speed)
-{
- if ((speed & ~CBAUD) != 0 && (speed < B57600 || speed > B460800)) {
- errno = EINVAL;
- return -1;
- }
-
- termios_p->c_cflag &= ~(CBAUD | CBAUDEX);
- termios_p->c_cflag |= speed;
-
- return 0;
-}
-
-
-/* Set the input baud rate stored in *TERMIOS_P to SPEED.
- Although for Linux there is no difference between input and output
- speed, the numerical 0 is a special case for the input baud rate. It
- should set the input baud rate to the output baud rate. */
-int cfsetispeed (struct termios *termios_p, speed_t speed)
-{
- if ((speed & ~CBAUD) != 0 && (speed < B57600 || speed > B460800)) {
- errno = EINVAL;
- return -1;
- }
-
- if (speed == 0)
- termios_p->c_iflag |= IBAUD0;
- else
- {
- termios_p->c_iflag &= ~IBAUD0;
- termios_p->c_cflag &= ~(CBAUD | CBAUDEX);
- termios_p->c_cflag |= speed;
- }
-
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/lib/sprintf.c b/mdk-stage1/dietlibc/lib/sprintf.c
deleted file mode 100644
index b355d01f9..000000000
--- a/mdk-stage1/dietlibc/lib/sprintf.c
+++ /dev/null
@@ -1,18 +0,0 @@
-#include <stdarg.h>
-#include <linux/types.h>
-#include <stdlib.h>
-#include "dietwarning.h"
-
-int vsnprintf (char *str,size_t size,const char *format, va_list arg_ptr);
-
-int sprintf(char *dest,const char *format,...)
-{
- int n;
- va_list arg_ptr;
- va_start(arg_ptr, format);
- n=vsnprintf(dest,1000000,format,arg_ptr);
- va_end (arg_ptr);
- return n;
-}
-
-link_warning("sprintf","warning: Avoid sprintf; use snprintf. It is more secure and faster.")
diff --git a/mdk-stage1/dietlibc/lib/sscanf.c b/mdk-stage1/dietlibc/lib/sscanf.c
deleted file mode 100644
index 341e74bba..000000000
--- a/mdk-stage1/dietlibc/lib/sscanf.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <stdarg.h>
-
-int vsscanf(const char *str, const char *format, va_list arg_ptr);
-
-int sscanf(const char *str, const char *format, ...)
-{
- int n;
- va_list arg_ptr;
- va_start(arg_ptr, format);
- n=vsscanf(str,format,arg_ptr);
- va_end (arg_ptr);
- return n;
-}
diff --git a/mdk-stage1/dietlibc/lib/strcasecmp.c b/mdk-stage1/dietlibc/lib/strcasecmp.c
deleted file mode 100644
index d978488a4..000000000
--- a/mdk-stage1/dietlibc/lib/strcasecmp.c
+++ /dev/null
@@ -1,17 +0,0 @@
-#include <ctype.h>
-#include "dietfeatures.h"
-
-int strcasecmp(register const char *s,register const char *t) {
- register char x;
-
- for (;;) {
- x = tolower(*s); if (x != tolower(*t)) break; if (!x) break; ++s; ++t;
-#ifndef WANT_SMALL_STRING_ROUTINES
- x = tolower(*s); if (x != tolower(*t)) break; if (!x) break; ++s; ++t;
- x = tolower(*s); if (x != tolower(*t)) break; if (!x) break; ++s; ++t;
- x = tolower(*s); if (x != tolower(*t)) break; if (!x) break; ++s; ++t;
-#endif
- }
- return ((int)(unsigned int)(unsigned char) x)
- - ((int)(unsigned int)(unsigned char) *t);
-}
diff --git a/mdk-stage1/dietlibc/lib/strcat.c b/mdk-stage1/dietlibc/lib/strcat.c
deleted file mode 100644
index 8a755afea..000000000
--- a/mdk-stage1/dietlibc/lib/strcat.c
+++ /dev/null
@@ -1,18 +0,0 @@
-#include "dietfeatures.h"
-#include <string.h>
-
-char* strcat(register char* s,register const char* t)
-{
- char *dest=s;
- s+=strlen(s);
- for (;;) {
- if (!(*s = *t)) break; ++s; ++t;
-#ifndef WANT_SMALL_STRING_ROUTINES
- if (!(*s = *t)) break; ++s; ++t;
- if (!(*s = *t)) break; ++s; ++t;
- if (!(*s = *t)) break; ++s; ++t;
-#endif
- }
- return dest;
-}
-
diff --git a/mdk-stage1/dietlibc/lib/strchr.c b/mdk-stage1/dietlibc/lib/strchr.c
deleted file mode 100644
index 0c2050da6..000000000
--- a/mdk-stage1/dietlibc/lib/strchr.c
+++ /dev/null
@@ -1,18 +0,0 @@
-#include "dietfeatures.h"
-
-char *strchr(register const char *t, int c) {
- register char ch;
-
- ch = c;
- for (;;) {
- if (*t == ch) break; if (!*t) return 0; ++t;
-#ifndef WANT_SMALL_STRING_ROUTINES
- if (*t == ch) break; if (!*t) return 0; ++t;
- if (*t == ch) break; if (!*t) return 0; ++t;
- if (*t == ch) break; if (!*t) return 0; ++t;
-#endif
- }
- return (char*)t;
-}
-
-char *index(char *t,int c) __attribute__((weak,alias("strchr")));
diff --git a/mdk-stage1/dietlibc/lib/strcmp.c b/mdk-stage1/dietlibc/lib/strcmp.c
deleted file mode 100644
index 0db324e66..000000000
--- a/mdk-stage1/dietlibc/lib/strcmp.c
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "dietfeatures.h"
-
-int strcmp(register const char *s,register const char *t) {
- register char x;
-
- for (;;) {
- x = *s; if (x != *t) break; if (!x) break; ++s; ++t;
-#ifndef WANT_SMALL_STRING_ROUTINES
- x = *s; if (x != *t) break; if (!x) break; ++s; ++t;
- x = *s; if (x != *t) break; if (!x) break; ++s; ++t;
- x = *s; if (x != *t) break; if (!x) break; ++s; ++t;
-#endif
- }
- return ((int)(unsigned int)(unsigned char) x)
- - ((int)(unsigned int)(unsigned char) *t);
-}
diff --git a/mdk-stage1/dietlibc/lib/strcpy.c b/mdk-stage1/dietlibc/lib/strcpy.c
deleted file mode 100644
index 49693c30d..000000000
--- a/mdk-stage1/dietlibc/lib/strcpy.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#include "dietfeatures.h"
-
-char* strcpy(register char* s,register const char* t)
-{
- char *dest=s;
- for (;;) {
- if (!(*s = *t)) return dest; ++s; ++t;
-#ifndef WANT_SMALL_STRING_ROUTINES
- if (!(*s = *t)) return dest; ++s; ++t;
- if (!(*s = *t)) return dest; ++s; ++t;
- if (!(*s = *t)) return dest; ++s; ++t;
-#endif
- }
-}
-
diff --git a/mdk-stage1/dietlibc/lib/strcspn.c b/mdk-stage1/dietlibc/lib/strcspn.c
deleted file mode 100644
index 37053c72c..000000000
--- a/mdk-stage1/dietlibc/lib/strcspn.c
+++ /dev/null
@@ -1,17 +0,0 @@
-#include <sys/types.h>
-#include <string.h>
-
-size_t strcspn(const char *s, const char *reject)
-{
- size_t l=0;
- int a=1,i,al=strlen(reject);
-
- while((a)&&(*s))
- {
- for(i=0;(a)&&(i<al);i++)
- if (*s==reject[i]) a=0;
- if (a) l++;
- s++;
- }
- return l;
-}
diff --git a/mdk-stage1/dietlibc/lib/strdup.c b/mdk-stage1/dietlibc/lib/strdup.c
deleted file mode 100644
index 6a2ea5f95..000000000
--- a/mdk-stage1/dietlibc/lib/strdup.c
+++ /dev/null
@@ -1,9 +0,0 @@
-#include <string.h>
-#include <stdlib.h>
-
-char *strdup(const char *s) {
- char *tmp=(char *)malloc(strlen(s)+1);
- if (!tmp) return 0;
- strcpy(tmp,s);
- return tmp;
-}
diff --git a/mdk-stage1/dietlibc/lib/strerror.c b/mdk-stage1/dietlibc/lib/strerror.c
deleted file mode 100644
index f15b86aae..000000000
--- a/mdk-stage1/dietlibc/lib/strerror.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <string.h>
-
-extern char *sys_errlist[];
-extern int sys_nerr;
-
-char *strerror(int errnum) {
- if (errnum>=0 && errnum<sys_nerr)
- return sys_errlist[errnum];
- return "[unknown error]";
-}
diff --git a/mdk-stage1/dietlibc/lib/strlcat.c b/mdk-stage1/dietlibc/lib/strlcat.c
deleted file mode 100644
index fd35ec8af..000000000
--- a/mdk-stage1/dietlibc/lib/strlcat.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* $OpenBSD: strlcat.c,v 1.2 1999/06/17 16:28:58 millert Exp $ */
-
-/*
- * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
- * 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. 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 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 AUTHOR 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char *rcsid = "$OpenBSD: strlcat.c,v 1.2 1999/06/17 16:28:58 millert Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-#include <sys/types.h>
-#include <string.h>
-
-/*
- * Appends src to string dst of size siz (unlike strncat, siz is the
- * full size of dst, not space left). At most siz-1 characters
- * will be copied. Always NUL terminates (unless siz == 0).
- * Returns strlen(initial dst) + strlen(src); if retval >= siz,
- * truncation occurred.
- */
-size_t strlcat(dst, src, siz)
- char *dst;
- const char *src;
- size_t siz;
-{
- register char *d = dst;
- register const char *s = src;
- register size_t n = siz;
- size_t dlen;
-
- /* Find the end of dst and adjust bytes left but don't go past end */
- while (*d != '\0' && n-- != 0)
- d++;
- dlen = d - dst;
- n = siz - dlen;
-
- if (n == 0)
- return(dlen + strlen(s));
- while (*s != '\0') {
- if (n != 1) {
- *d++ = *s;
- n--;
- }
- s++;
- }
- *d = '\0';
-
- return(dlen + (s - src)); /* count does not include NUL */
-}
diff --git a/mdk-stage1/dietlibc/lib/strlcpy.3 b/mdk-stage1/dietlibc/lib/strlcpy.3
deleted file mode 100644
index e00af8d6b..000000000
--- a/mdk-stage1/dietlibc/lib/strlcpy.3
+++ /dev/null
@@ -1,169 +0,0 @@
-.\" $OpenBSD: strlcpy.3,v 1.10 2000/11/06 01:03:25 aaron Exp $
-.\"
-.\" Copyright (c) 1998, 2000 Todd C. Miller <Todd.Miller@courtesan.com>
-.\" 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. 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 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 AUTHOR 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.
-.\"
-.Dd June 22, 1998
-.Dt STRLCPY 3
-.Os
-.Sh NAME
-.Nm strlcpy ,
-.Nm strlcat
-.Nd size-bounded string copying and concatenation
-.Sh SYNOPSIS
-.Fd #include <string.h>
-.Ft size_t
-.Fn strlcpy "char *dst" "const char *src" "size_t size"
-.Ft size_t
-.Fn strlcat "char *dst" "const char *src" "size_t size"
-.Sh DESCRIPTION
-The
-.Fn strlcpy
-and
-.Fn strlcat
-functions copy and concatenate strings respectively.
-They are designed
-to be safer, more consistent, and less error prone replacements for
-.Xr strncpy 3
-and
-.Xr strncat 3 .
-Unlike those functions,
-.Fn strlcpy
-and
-.Fn strlcat
-take the full size of the buffer (not just the length) and guarantee to
-NUL-terminate the result (as long as
-.Fa size
-is larger than 0 or, in the case of
-.Fn strlcat ,
-as long as there is at least one byte free in
-.Fa dst ) .
-Note that you should include a byte for the NUL in
-.Fa size .
-Also note that
-.Fn strlcpy
-and
-.Fn strlcat
-only operate on true
-.Dq C
-strings.
-This means that for
-.Fn strlcpy
-.Fa src
-must be NUL-terminated and for
-.Fn strlcat
-both
-.Fa src
-and
-.Fa dst
-must be NUL-terminated.
-.Pp
-The
-.Fn strlcpy
-function copies up to
-.Fa size
-- 1 characters from the NUL-terminated string
-.Fa src
-to
-.Fa dst ,
-NUL-terminating the result.
-.Pp
-The
-.Fn strlcat
-function appends the NUL-terminated string
-.Fa src
-to the end of
-.Fa dst .
-It will append at most
-.Fa size
-- strlen(dst) - 1 bytes, NUL-terminating the result.
-.Sh RETURN VALUES
-The
-.Fn strlcpy
-and
-.Fn strlcat
-functions return the total length of the string they tried to create.
-For
-.Fn strlcpy
-that means the length of
-.Fa src .
-For
-.Fn strlcat
-that means the initial length of
-.Fa dst
-plus
-the length of
-.Fa src .
-While this may seem somewhat confusing it was done to make
-truncation detection simple.
-.Sh EXAMPLES
-The following code fragment illustrates the simple case:
-.Bd -literal -offset indent
-char *s, *p, buf[BUFSIZ];
-
-\&...
-
-(void)strlcpy(buf, s, sizeof(buf));
-(void)strlcat(buf, p, sizeof(buf));
-.Ed
-.Pp
-To detect truncation, perhaps while building a pathname, something
-like the following might be used:
-.Bd -literal -offset indent
-char *dir, *file, pname[MAXPATHLEN];
-
-\&...
-
-if (strlcpy(pname, dir, sizeof(pname)) >= sizeof(pname))
- goto toolong;
-if (strlcat(pname, file, sizeof(pname)) >= sizeof(pname))
- goto toolong;
-.Ed
-.Pp
-Since we know how many characters we copied the first time, we can
-speed things up a bit by using a copy instead of an append:
-.Bd -literal -offset indent
-char *dir, *file, pname[MAXPATHLEN];
-size_t n;
-
-\&...
-
-n = strlcpy(pname, dir, sizeof(pname));
-if (n >= sizeof(pname))
- goto toolong;
-if (strlcpy(pname + n, file, sizeof(pname) - n) >= sizeof(pname) - n)
- goto toolong;
-.Ed
-.Pp
-However, one may question the validity of such optimizations, as they
-defeat the whole purpose of
-.Fn strlcpy
-and
-.Fn strlcat .
-As a matter of fact, the first version of this manual page got it wrong.
-.Sh SEE ALSO
-.Xr snprintf 3 ,
-.Xr strncat 3 ,
-.Xr strncpy 3
diff --git a/mdk-stage1/dietlibc/lib/strlcpy.c b/mdk-stage1/dietlibc/lib/strlcpy.c
deleted file mode 100644
index b935b9527..000000000
--- a/mdk-stage1/dietlibc/lib/strlcpy.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* $OpenBSD: strlcpy.c,v 1.3 1999/04/24 01:17:37 millert Exp $ */
-
-/*
- * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
- * 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. 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 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 AUTHOR 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.
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char *rcsid = "$OpenBSD: strlcpy.c,v 1.3 1999/04/24 01:17:37 millert Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-#include <sys/types.h>
-#include <string.h>
-
-/*
- * Copy src to string dst of size siz. At most siz-1 characters
- * will be copied. Always NUL terminates (unless siz == 0).
- * Returns strlen(src); if retval >= siz, truncation occurred.
- */
-size_t strlcpy(dst, src, siz)
- char *dst;
- const char *src;
- size_t siz;
-{
- register char *d = dst;
- register const char *s = src;
- register size_t n = siz;
-
- /* Copy as many bytes as will fit */
- if (n != 0 && --n != 0) {
- do {
- if ((*d++ = *s++) == 0)
- break;
- } while (--n != 0);
- }
-
- /* Not enough room in dst, add NUL and traverse rest of src */
- if (n == 0) {
- if (siz != 0)
- *d = '\0'; /* NUL-terminate dst */
- while (*s++)
- ;
- }
-
- return(s - src - 1); /* count does not include NUL */
-}
diff --git a/mdk-stage1/dietlibc/lib/strlen.c b/mdk-stage1/dietlibc/lib/strlen.c
deleted file mode 100644
index 56c085dac..000000000
--- a/mdk-stage1/dietlibc/lib/strlen.c
+++ /dev/null
@@ -1,47 +0,0 @@
-#include <endian.h>
-#include "dietfeatures.h"
-#include <string.h>
-
-#ifdef WANT_SMALL_STRING_ROUTINES
-size_t strlen(const char *s) {
- register int i;
- if (!s) return 0;
- for (i=0; *s; ++s) ++i;
- return i;
-}
-#else
-static const unsigned long magic = 0x01010101;
-
-size_t strlen(const char *s)
-{
- const char *t = s;
- unsigned long word;
-
- if (!s) return 0;
-
- /* Byte compare up until word boundary */
- for (; ((unsigned long) t & 3); t++)
- if (!*t) return t - s;
-
- /* Word compare */
- do {
- word = *((unsigned long *) t); t += 4;
- word = (word - magic) &~ word;
- word &= (magic << 7);
- } while (word == 0);
-
-#if BYTE_ORDER == LITTLE_ENDIAN
- /* word & 0x80808080 == word */
- word = (word - 1) & (magic << 10);
- word += (word << 8) + (word << 16);
- t += word >> 26;
-#else
- if ((word & 0x80800000) == 0) {
- word <<= 16;
- t += 2;
- }
- if ((word & 0x80000000) == 0) t += 1;
-#endif
- return ((const char *) t) - 4 - s;
-}
-#endif
diff --git a/mdk-stage1/dietlibc/lib/strncasecmp.c b/mdk-stage1/dietlibc/lib/strncasecmp.c
deleted file mode 100644
index 8a5445e53..000000000
--- a/mdk-stage1/dietlibc/lib/strncasecmp.c
+++ /dev/null
@@ -1,18 +0,0 @@
-#include <ctype.h>
-#include <sys/types.h>
-#include <string.h>
-
-int strncasecmp(const char *s, const char *t, size_t n) {
- register char x;
- register const char* u=s+n;
- for (;;) {
- x = tolower(*s); if (x!=tolower(*t)) break; if (!x) break; if (++s>=u) return 0; ++t;
-#ifndef WANT_SMALL_STRING_ROUTINES
- x = tolower(*s); if (x!=tolower(*t)) break; if (!x) break; if (++s>=u) return 0; ++t;
- x = tolower(*s); if (x!=tolower(*t)) break; if (!x) break; if (++s>=u) return 0; ++t;
- x = tolower(*s); if (x!=tolower(*t)) break; if (!x) break; if (++s>=u) return 0; ++t;
-#endif
- }
- return ((int)(unsigned int)(unsigned char) x)
- - ((int)(unsigned int)(unsigned char) *t);
-}
diff --git a/mdk-stage1/dietlibc/lib/strncat.c b/mdk-stage1/dietlibc/lib/strncat.c
deleted file mode 100644
index a08e97916..000000000
--- a/mdk-stage1/dietlibc/lib/strncat.c
+++ /dev/null
@@ -1,31 +0,0 @@
-#include "dietfeatures.h"
-#include <string.h>
-
-#ifdef WANT_NON_COMPLIANT_STRNCAT
-/* this implementation is not standards compliant.
- * the standard says that strncat(dest,"foobar",3) should write 'f', 'o'
- * and 'o'. The programmer is then expected to overwrite the last byte
- * with '\0', which is often forgotten. This implementation makes sure
- * the last written bytes is always '\0'. */
-#endif
-
-char *strncat(char *s, const char *t, size_t n) {
- char *dest=s;
- register char *max;
- s+=strlen(s);
-#ifdef WANT_NON_COMPLIANT_STRNCAT
- max=s+n-1;
-#else
- max=s+n;
-#endif
- for (;;) {
- if (!(*s = *t)) break; if (++s==max) break; ++t;
-#ifndef WANT_SMALL_STRING_ROUTINES
- if (!(*s = *t)) break; if (++s==max) break; ++t;
- if (!(*s = *t)) break; if (++s==max) break; ++t;
- if (!(*s = *t)) break; if (++s==max) break; ++t;
-#endif
- }
- *s=0;
- return dest;
-}
diff --git a/mdk-stage1/dietlibc/lib/strncmp.c b/mdk-stage1/dietlibc/lib/strncmp.c
deleted file mode 100644
index 7c08c0fa7..000000000
--- a/mdk-stage1/dietlibc/lib/strncmp.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <sys/types.h>
-#include <string.h>
-
-int strncmp(const char *s1, const char *s2, size_t n) {
- return memccmp(s1,s2,0,n);
-}
diff --git a/mdk-stage1/dietlibc/lib/strncpy.c b/mdk-stage1/dietlibc/lib/strncpy.c
deleted file mode 100644
index 531387b7f..000000000
--- a/mdk-stage1/dietlibc/lib/strncpy.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#define _POSIX_SOURCE
-#define _XOPEN_SOURCE
-#include <sys/types.h>
-#include <string.h>
-
-char *strncpy(char *dest, const char *src, size_t n)
-{
- memccpy(dest,src,0,n);
- return dest;
-}
diff --git a/mdk-stage1/dietlibc/lib/strpbrk.c b/mdk-stage1/dietlibc/lib/strpbrk.c
deleted file mode 100644
index e18fd2a2d..000000000
--- a/mdk-stage1/dietlibc/lib/strpbrk.c
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <sys/types.h>
-#include <string.h>
-
-char *strpbrk(const char *s, const char *accept) {
- register int i,l=strlen(accept);
- for (; *s; s++)
- for (i=0; i<l; i++)
- if (*s == accept[i])
- return (char*)s;
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/lib/strrchr.c b/mdk-stage1/dietlibc/lib/strrchr.c
deleted file mode 100644
index 1abb655e2..000000000
--- a/mdk-stage1/dietlibc/lib/strrchr.c
+++ /dev/null
@@ -1,20 +0,0 @@
-#include <string.h>
-#include "dietfeatures.h"
-
-char *strrchr(const char *t, int c) {
- register char ch;
- register const char *l=0;
-
- ch = c;
- for (;;) {
- if (*t == ch) l=t; if (!*t) return (char*)l; ++t;
-#ifndef WANT_SMALL_STRING_ROUTINES
- if (*t == ch) l=t; if (!*t) return (char*)l; ++t;
- if (*t == ch) l=t; if (!*t) return (char*)l; ++t;
- if (*t == ch) l=t; if (!*t) return (char*)l; ++t;
-#endif
- }
- return (char*)l;
-}
-
-char *rindex(const char *t,int c) __attribute__((weak,alias("strrchr")));
diff --git a/mdk-stage1/dietlibc/lib/strsep.c b/mdk-stage1/dietlibc/lib/strsep.c
deleted file mode 100644
index a1bf1872a..000000000
--- a/mdk-stage1/dietlibc/lib/strsep.c
+++ /dev/null
@@ -1,16 +0,0 @@
-#include <string.h>
-
-char *strsep(char **stringp, const char *delim) {
- register char *tmp=*stringp;
- register char *tmp2=tmp;
- register const char *tmp3;
- for (tmp2=tmp; *tmp2; ++tmp2) {
- for (tmp3=delim; *tmp3; ++tmp3)
- if (*tmp2==*tmp3) { /* delimiter found */
- *tmp2=0;
- *stringp=tmp2+1;
- return tmp;
- }
- }
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/lib/strspn.c b/mdk-stage1/dietlibc/lib/strspn.c
deleted file mode 100644
index 2b3a4c116..000000000
--- a/mdk-stage1/dietlibc/lib/strspn.c
+++ /dev/null
@@ -1,17 +0,0 @@
-#include <sys/types.h>
-#include <string.h>
-
-size_t strspn(const char *s, const char *accept)
-{
- size_t l=0;
- int a=1,i,al=strlen(accept);
-
- while((a)&&(*s))
- {
- for(a=i=0;(!a)&&(i<al);i++)
- if (*s==accept[i]) a=1;
- if (a) l++;
- s++;
- }
- return l;
-}
diff --git a/mdk-stage1/dietlibc/lib/strstr.c b/mdk-stage1/dietlibc/lib/strstr.c
deleted file mode 100644
index 641d9d7ac..000000000
--- a/mdk-stage1/dietlibc/lib/strstr.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <sys/types.h>
-#include <string.h>
-
-char *strstr(const char *haystack, const char *needle) {
- int nl=strlen(needle);
- int hl=strlen(haystack);
- int i;
- if (nl>hl) return 0;
- for (i=hl-nl+1; i; --i) {
- if (!memcmp(haystack,needle,nl))
- return (char*)haystack;
- ++haystack;
- }
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/lib/strtod.c b/mdk-stage1/dietlibc/lib/strtod.c
deleted file mode 100644
index cbe983d84..000000000
--- a/mdk-stage1/dietlibc/lib/strtod.c
+++ /dev/null
@@ -1,52 +0,0 @@
-#include <string.h>
-
-extern char isspace(char c);
-
-#ifdef __GNUC__
-static inline char isdigit(char c) { return (c>='0' && c<='9'); }
-#endif
-
-double strtod(const char *nptr, char **endptr) {
- double d=0;
- register const char *c=nptr;
- char neg=0;
- while (*c && isspace(*c)) ++c;
- switch (*c) {
- case '-': neg=1;
- case '+': c++; break;
- default: break;
- }
- while (isdigit(*c)) {
- d=d*10+(*c-'0');
- ++c;
- }
- if (*c=='.') {
- double factor=.1;
- while (isdigit(*++c)) {
- d=d+(factor*(*c-'0'));
- factor/=10;
- }
- }
- if ((*c|32)=='e') {
- int exp=0;
- double factor=10;
- if (c[1]<'0') {
- switch (c[1]) {
- case '-': factor=0.1;
- case '+': c++; break;
- default:
- d=0;
- c=nptr;
- goto done;
- }
- }
- while (isdigit(*++c))
- exp=exp*10+(*c-'0');
- while (exp) { /* XXX: this introduces rounding errors */
- d*=factor; --exp;
- }
- }
-done:
- if (endptr) *endptr=(char*)c;
- return d;
-}
diff --git a/mdk-stage1/dietlibc/lib/strtok.c b/mdk-stage1/dietlibc/lib/strtok.c
deleted file mode 100644
index 86337da7b..000000000
--- a/mdk-stage1/dietlibc/lib/strtok.c
+++ /dev/null
@@ -1,8 +0,0 @@
-char *strtok_r(char *s, const char *delim, char **ptrptr);
-
-static char *strtok_pos;
-
-char *strtok(char *s, const char *delim)
-{
- return strtok_r(s,delim,&strtok_pos);
-}
diff --git a/mdk-stage1/dietlibc/lib/strtok_r.c b/mdk-stage1/dietlibc/lib/strtok_r.c
deleted file mode 100644
index 93f9401de..000000000
--- a/mdk-stage1/dietlibc/lib/strtok_r.c
+++ /dev/null
@@ -1,21 +0,0 @@
-#include <string.h>
-
-char *strtok_r(char *s, const char *delim, char **ptrptr)
-{
- int i;
- char *tmp=0;
-
- if (s) (*ptrptr)=s;
-
- if (**ptrptr)
- {
- while(!(i=strcspn(*ptrptr,delim))) (*ptrptr)++;
- if (**ptrptr)
- {
- tmp=(*ptrptr);
- (*ptrptr)+=i;
- if (**ptrptr) *(*ptrptr)++=0;
- }
- }
- return tmp;
-}
diff --git a/mdk-stage1/dietlibc/lib/strtol.c b/mdk-stage1/dietlibc/lib/strtol.c
deleted file mode 100644
index ead89f408..000000000
--- a/mdk-stage1/dietlibc/lib/strtol.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <ctype.h>
-
-extern unsigned long int strtoul(const char *nptr, char **endptr, int base);
-
-long int strtol(const char *nptr, char **endptr, int base)
-{
- int neg=0;
- unsigned long int v;
-
- while(isspace(*nptr)) nptr++;
-
- if (*nptr == '-' && isdigit(nptr[1])) { neg=-1; nptr++; }
- v=strtoul(nptr,endptr,base);
- return (neg?-v:v);
-}
diff --git a/mdk-stage1/dietlibc/lib/strtoll.c b/mdk-stage1/dietlibc/lib/strtoll.c
deleted file mode 100644
index 7b8e28a1d..000000000
--- a/mdk-stage1/dietlibc/lib/strtoll.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <ctype.h>
-
-extern unsigned long int strtoull(const char *nptr, char **endptr, int base);
-
-long int strtoll(const char *nptr, char **endptr, int base)
-{
- int neg=0;
- unsigned long long int v;
-
- while(isspace(*nptr)) nptr++;
-
- if (*nptr == '-' && isdigit(nptr[1])) { neg=-1; nptr++; }
- v=strtoull(nptr,endptr,base);
- return (neg?-v:v);
-}
diff --git a/mdk-stage1/dietlibc/lib/strtoul.c b/mdk-stage1/dietlibc/lib/strtoul.c
deleted file mode 100644
index 3f93962a9..000000000
--- a/mdk-stage1/dietlibc/lib/strtoul.c
+++ /dev/null
@@ -1,32 +0,0 @@
-#include <ctype.h>
-
-/* static char *num="0123456789abcdefghijklmnopqrstuvwxyz"; */
-
-unsigned long int strtoul(const char *nptr, char **endptr, int base)
-{
- long int v=0;
-
- while(isspace(*nptr)) ++nptr;
-
- if (*nptr == '+') ++nptr;
- if (!base) {
- if (*nptr=='0') {
- base=8;
- if ((*(nptr+1)=='x')||(*(nptr+1)=='X')) {
- nptr+=2;
- base=16;
- }
- }
- else
- base=10;
- }
- while(*nptr) {
- register unsigned char c=*nptr;
- c=(c>='a'?c-'a'+10:c>='A'?c-'A'+10:c-'0');
- if (c>=base) break;
- v=v*base+c;
- ++nptr;
- }
- if (endptr) *endptr=(char *)nptr;
- return v;
-}
diff --git a/mdk-stage1/dietlibc/lib/strtoull.c b/mdk-stage1/dietlibc/lib/strtoull.c
deleted file mode 100644
index 40818958d..000000000
--- a/mdk-stage1/dietlibc/lib/strtoull.c
+++ /dev/null
@@ -1,30 +0,0 @@
-#include <ctype.h>
-
-unsigned long long int strtoull(const char *nptr, char **endptr, int base)
-{
- long long int v=0;
-
- while(isspace(*nptr)) ++nptr;
-
- if (*nptr == '+') ++nptr;
- if (!base) {
- if (*nptr=='0') {
- base=8;
- if ((*(nptr+1)=='x')||(*(nptr+1)=='X')) {
- nptr+=2;
- base=16;
- }
- }
- else
- base=10;
- }
- while(*nptr) {
- register unsigned char c=*nptr;
- c=(c>='a'?c-'a'+10:c>='A'?c-'A'+10:c-'0');
- if (c>=base) break;
- v=v*base+c;
- ++nptr;
- }
- if (endptr) *endptr=(char *)nptr;
- return v;
-}
diff --git a/mdk-stage1/dietlibc/lib/sys_siglist.c b/mdk-stage1/dietlibc/lib/sys_siglist.c
deleted file mode 100644
index 80d7b3fb0..000000000
--- a/mdk-stage1/dietlibc/lib/sys_siglist.c
+++ /dev/null
@@ -1,37 +0,0 @@
-const char *const sys_siglist[] =
- {
- "Signal 0",
- "Hangup",
- "Interrupt",
- "Quit",
- "Illegal instruction",
- "Trace/breakpoint trap",
- "IOT trap",
- "EMT trap",
- "Floating point exception",
- "Killed",
- "Bus error",
- "Segmentation fault",
- "Bad system call",
- "Broken pipe",
- "Alarm clock",
- "Terminated",
- "Urgent I/O condition",
- "Stopped (signal)",
- "Stopped",
- "Continued",
- "Child exited",
- "Stopped (tty input)",
- "Stopped (tty output)",
- "I/O possible",
- "CPU time limit exceeded",
- "File size limit exceeded",
- "Virtual timer expired",
- "Profiling timer expired",
- "Window changed",
- "Resource lost",
- "User defined signal 1",
- "User defined signal 2",
- 0
- };
-
diff --git a/mdk-stage1/dietlibc/lib/tcdrain.c b/mdk-stage1/dietlibc/lib/tcdrain.c
deleted file mode 100644
index 7a760f643..000000000
--- a/mdk-stage1/dietlibc/lib/tcdrain.c
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <sys/ioctl.h>
-
-int __libc_tcdrain(int fd)
-{
- return ioctl(fd, TCSBRK, 1);
-}
-
-int tcdrain(int fd) __attribute__((weak,alias("__libc_tcdrain")));
diff --git a/mdk-stage1/dietlibc/lib/tcflush.c b/mdk-stage1/dietlibc/lib/tcflush.c
deleted file mode 100644
index a19fe11d1..000000000
--- a/mdk-stage1/dietlibc/lib/tcflush.c
+++ /dev/null
@@ -1,23 +0,0 @@
-#include <unistd.h>
-#include <termios.h>
-#include <sys/ioctl.h>
-
-#include <asm/errno.h>
-
-extern int errno;
-
-/* Flush pending data on FD. */
-int tcflush(int fd, int queue_selector)
-{
- switch (queue_selector) {
- case TCIFLUSH:
- return ioctl(fd, TCFLSH, 0);
- case TCOFLUSH:
- return ioctl(fd, TCFLSH, 1);
- case TCIOFLUSH:
- return ioctl(fd, TCFLSH, 2);
- default:
- errno = EINVAL;
- return -1;
- }
-}
diff --git a/mdk-stage1/dietlibc/lib/tcgetattr.c b/mdk-stage1/dietlibc/lib/tcgetattr.c
deleted file mode 100644
index f35d39442..000000000
--- a/mdk-stage1/dietlibc/lib/tcgetattr.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <termios.h>
-#include <sys/ioctl.h>
-
-int tcgetattr(int fildes, struct termios *termios_p)
-{
- return ioctl(fildes, TCGETS, termios_p);
-}
diff --git a/mdk-stage1/dietlibc/lib/tcgetpgrp.c b/mdk-stage1/dietlibc/lib/tcgetpgrp.c
deleted file mode 100644
index f2a290651..000000000
--- a/mdk-stage1/dietlibc/lib/tcgetpgrp.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <termios.h>
-#include <sys/ioctl.h>
-
-int tcgetpgrp(int fildes)
-{
- return ioctl(fildes, TIOCGPGRP);
-}
diff --git a/mdk-stage1/dietlibc/lib/tcsetattr.c b/mdk-stage1/dietlibc/lib/tcsetattr.c
deleted file mode 100644
index cf70354d2..000000000
--- a/mdk-stage1/dietlibc/lib/tcsetattr.c
+++ /dev/null
@@ -1,27 +0,0 @@
-#define tcsetattr libc_tcsetattr
-#include <termios.h>
-#include <sys/ioctl.h>
-#undef tcsetattr
-
-#include <asm/errno.h>
-
-extern int errno;
-
-/* Hack around a kernel bug; value must correspond to the one used in speed.c */
-#define IBAUD0 020000000000
-
-int tcsetattr(int fildes, int optional_actions, struct termios *termios_p)
-{
- termios_p->c_iflag &= ~IBAUD0;
- switch (optional_actions) {
- case TCSANOW:
- return ioctl(fildes, TCSETS, termios_p);
- case TCSADRAIN:
- return ioctl(fildes, TCSETSW, termios_p);
- case TCSAFLUSH:
- return ioctl(fildes, TCSETSF, termios_p);
- default:
- errno = EINVAL;
- return -1;
- }
-}
diff --git a/mdk-stage1/dietlibc/lib/tcsetpgrp.c b/mdk-stage1/dietlibc/lib/tcsetpgrp.c
deleted file mode 100644
index 6c40b5c79..000000000
--- a/mdk-stage1/dietlibc/lib/tcsetpgrp.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <termios.h>
-#include <sys/ioctl.h>
-
-int tcsetpgrp(int fildes, pid_t pgrpid)
-{
- return ioctl(fildes, TIOCSPGRP, &pgrpid);
-}
diff --git a/mdk-stage1/dietlibc/lib/telldir.c b/mdk-stage1/dietlibc/lib/telldir.c
deleted file mode 100644
index 58be5d034..000000000
--- a/mdk-stage1/dietlibc/lib/telldir.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include "dietdirent.h"
-#include <unistd.h>
-#include <dirent.h>
-
-off_t telldir(DIR *d) {
- return lseek(d->fd,0,SEEK_CUR)-d->num+d->cur;
-}
diff --git a/mdk-stage1/dietlibc/lib/tolower.c b/mdk-stage1/dietlibc/lib/tolower.c
deleted file mode 100644
index 4b7c7cf2d..000000000
--- a/mdk-stage1/dietlibc/lib/tolower.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <ctype.h>
-
-inline int tolower(int c) {
- return (c>='A' && c<='Z')?c-'A'+'a':c;
-}
-
diff --git a/mdk-stage1/dietlibc/lib/toupper.c b/mdk-stage1/dietlibc/lib/toupper.c
deleted file mode 100644
index c048e60bb..000000000
--- a/mdk-stage1/dietlibc/lib/toupper.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <ctype.h>
-
-inline int toupper(int c) {
- return (c>='a' && c<='z')?c-'a'+'A':c;
-}
-
diff --git a/mdk-stage1/dietlibc/lib/ttyname.c b/mdk-stage1/dietlibc/lib/ttyname.c
deleted file mode 100644
index a6b479088..000000000
--- a/mdk-stage1/dietlibc/lib/ttyname.c
+++ /dev/null
@@ -1,59 +0,0 @@
-#include "dietfeatures.h"
-#include <unistd.h>
-#include <sys/stat.h>
-
-#ifdef __linux__
-
-extern int __ltostr(char *s, int size, unsigned long i, int base, char UpCase);
-
-char *ttyname(int fd) {
-#ifdef SLASH_PROC_OK
- char ibuf[20];
- static char obuf[20];
- strcpy(ibuf,"/proc/self/fd/");
- ibuf[__ltostr(ibuf+14,6,fd,10,0)+14]=0;
- if (readlink(ibuf,obuf,sizeof(obuf)-1)<0) return 0;
- return obuf;
-#else
- static char buf[20]="/dev/tty";
- struct stat s;
- char *c=buf+8;
- int n;
- if (fstat(fd,&s)) return 0;
- if (S_ISCHR(s.st_mode)) {
- n=minor(s.st_rdev);
- switch (major(s.st_rdev)) {
- case 4:
- buf[5]='t'; buf[7]='y';
- if (n>63) {
- n-=64;
- *c='S';
- ++c;
- }
-num:
- c[__ltostr(c,6,n,10,0)]=0;
- break;
- case 2:
- buf[5]='p'; buf[7]='y';
- buf[8]='p'-(n>>4);
- buf[9]=n%4+'0';
- if (buf[9]>'9') *c+='a'-'0';
- buf[10]=0;
- case 136:
- case 137:
- case 138:
- case 139:
- buf[5]='p'; buf[7]='s';
- n+=(major(s.st_rdev)-136)<<8;
- *c='/'; ++c;
- goto num;
- default:
- return 0;
- }
- return buf;
- }
- return 0;
-#endif
-}
-
-#endif
diff --git a/mdk-stage1/dietlibc/lib/usleep.c b/mdk-stage1/dietlibc/lib/usleep.c
deleted file mode 100644
index 494f99233..000000000
--- a/mdk-stage1/dietlibc/lib/usleep.c
+++ /dev/null
@@ -1,12 +0,0 @@
-#include <linux/time.h>
-#include <time.h>
-
-/* nano * 1000 == usecs
- * usecs * 1000 == msecs
- * msecs * 1000 = secs */
-void usleep(unsigned int usecs) {
- struct timespec t;
- t.tv_sec=usecs/1000000;
- t.tv_nsec=(usecs%1000000)*1000;
- nanosleep(&t,&t);
-}
diff --git a/mdk-stage1/dietlibc/lib/vfork.c b/mdk-stage1/dietlibc/lib/vfork.c
deleted file mode 100644
index 795cddb05..000000000
--- a/mdk-stage1/dietlibc/lib/vfork.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <linux/types.h>
-#include <unistd.h>
-
-pid_t vfork(void) {
- return fork();
-}
diff --git a/mdk-stage1/dietlibc/lib/vfprintf.c b/mdk-stage1/dietlibc/lib/vfprintf.c
deleted file mode 100644
index c33a2404b..000000000
--- a/mdk-stage1/dietlibc/lib/vfprintf.c
+++ /dev/null
@@ -1,19 +0,0 @@
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include "dietstdarg.h"
-
-int vfprintf(FILE *fstream, const char *format, va_list ap)
-{
- char *tmp;
- va_list cp_ap;
- size_t n = 0;
-
- va_copy(cp_ap, ap);
- n=vsnprintf(0, 1000000, format, cp_ap);
- tmp=alloca(n+2);
- vsnprintf(tmp, n+1, format, ap);
- fwrite(tmp, n,1, fstream);
- return n;
-}
-
diff --git a/mdk-stage1/dietlibc/lib/vprintf.c b/mdk-stage1/dietlibc/lib/vprintf.c
deleted file mode 100644
index 46ecc47a4..000000000
--- a/mdk-stage1/dietlibc/lib/vprintf.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <stdarg.h>
-#include <linux/types.h>
-#include <unistd.h>
-#include <stdlib.h>
-
-int vsnprintf (char *str,size_t size,const char *format, va_list arg_ptr);
-
-int vprintf(const char *format, va_list ap)
-{
- char tmp[1000000];
- size_t n = vsnprintf(tmp, sizeof(tmp), format, ap);
- write(1, tmp, n);
- return n;
-}
diff --git a/mdk-stage1/dietlibc/lib/vsnprintf.c b/mdk-stage1/dietlibc/lib/vsnprintf.c
deleted file mode 100644
index f425066e3..000000000
--- a/mdk-stage1/dietlibc/lib/vsnprintf.c
+++ /dev/null
@@ -1,238 +0,0 @@
-#include "dietfeatures.h"
-#include <stdarg.h>
-#include <sys/types.h>
-#include <stdlib.h>
-#include <string.h>
-#include "dietwarning.h"
-
-extern int __ltostr(char *s, int size, unsigned long i, int base, char UpCase);
-extern int __dtostr(double d,char *buf,int maxlen,int prec);
-
-int vsnprintf (char *str, size_t size, const char *format, va_list arg_ptr)
-{
- size_t apos,i;
- char ch,buf[1024];
- char *pb;
- char flag_in_sign;
- char flag_hash,flag_zero,flag_left,flag_space,flag_sign,flag_dot,flag_long;
- long number,width,preci,buf_len,pad;
- char padwith;
-
- size--;
-
- apos=0;
- while (apos<size)
- {
- ch=*format++;
- switch (ch)
- {
- case '%':
- flag_hash=0;
- flag_zero=0;
- flag_left=0;
- flag_space=0;
- flag_sign=0;
- flag_dot=0;
- flag_in_sign=0;
- flag_long=0;
-
- width=0;
- padwith=' ';
-
-inn_vsnprintf:
- if (apos>=size) continue; /* ARGL !!! */
-
- ch=*format++;
- switch (ch)
- {
-/* Format end ?!? */
- case 0:
- return -1;
- break;
-
-/* Format flag chars */
- case '#':
- flag_hash=1;
- goto inn_vsnprintf;
-
- case 'l':
- ++flag_long;
- goto inn_vsnprintf;
-
- case '0':
- padwith='0';
- goto inn_vsnprintf;
-
- case '-':
- flag_left=1;
- goto inn_vsnprintf;
-
- case ' ':
- flag_space=1;
- goto inn_vsnprintf;
-
- case '+':
- flag_sign=1;
- goto inn_vsnprintf;
-
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- if(flag_dot) return -1;
- width=strtol(--format,&pb,10);
- format=pb;
- goto inn_vsnprintf;
-
- case '*':
- width=va_arg(arg_ptr,int);
- goto inn_vsnprintf;
-
- case '.':
- flag_dot=1;
- if (*format=='*') {
- preci=va_arg(arg_ptr,int);
- ++format;
- } else {
- preci=strtol(format,&pb,10);
- format=pb;
- }
- goto inn_vsnprintf;
-
-/* Format conversion chars */
- case 'c':
- ch=(char)va_arg(arg_ptr,int);
- case '%':
- if (str) str[apos]=ch; ++apos;
- break;
-
- case 's':
- pb=va_arg(arg_ptr,char *);
-#ifdef WANT_NULL_PRINTF
- if (!pb) pb="(null)";
-#endif
- buf_len=strlen(pb);
- if (flag_dot && buf_len>preci) buf_len=preci;
- if (buf_len>size-apos) buf_len=size-apos;
-
-print_out:
- if (str) {
- if (width && (!flag_left))
- {
- for (pad=width-buf_len; pad>0; --pad) str[apos++]=padwith;
- }
- for(i=0;i<buf_len;++i) { str[apos++]=pb[i]; } /* strncpy */
- if (width && (flag_left))
- {
- for (pad=width-buf_len; pad>0; --pad) str[apos++]=padwith;
- }
- } else {
- if (width) {
- apos+=width>buf_len?width:buf_len;
- } else {
- apos+=size>buf_len?buf_len:size;
- }
- }
-
- break;
-
- /* Numbers */
- case 'b':
- i=2;
- goto num_vsnprintf;
- case 'p':
- flag_hash=1;
- width=sizeof(void *)<<1;
- padwith='0';
- ch='x';
- case 'X':
- case 'x':
- i=16;
- if (flag_hash)
- {
- if (str) {
- str[apos++]='0';
- str[apos++]=ch;
- } else
- apos+=2;
- }
- goto num_vsnprintf;
- case 'd':
- case 'i':
- flag_in_sign=1;
- case 'u':
- i=10;
- goto num_vsnprintf;
- case 'o':
- i=8;
- if (flag_hash) { if (str) str[apos]='0'; ++apos; }
-
-num_vsnprintf:
- if (apos>=size) continue; /* ARGL !!! */
-
- if (flag_long)
- number=va_arg(arg_ptr,long);
- else
- number=va_arg(arg_ptr,int);
-
- if (flag_in_sign && (number<0))
- {
- number*=-1;
- flag_in_sign=2;
- }
-
- buf_len=__ltostr(buf+1,sizeof(buf)-1,(unsigned long) number,i,0);
- pb=buf+1;
-
- if (flag_in_sign==2)
- {
- *(--pb)='-';
- buf_len++;
- }
- else if ((flag_in_sign)&&(flag_sign || flag_space))
- {
- *(--pb)=(flag_sign)?'+':' ';
- buf_len++;
- }
- goto print_out;
-
-#ifdef WANT_FLOATING_POINT_IN_PRINTF
- case 'f':
- case 'g':
- {
- double d=va_arg(arg_ptr,double);
- buf_len=__dtostr(d,buf,sizeof(buf),width?width:6);
- if (flag_dot) {
- char *tmp;
- if ((tmp=strchr(buf,'.'))) {
- while (preci>-1 && *++tmp) --preci;
- *tmp=0;
- }
- }
- pb=buf;
- goto print_out;
- }
-#endif
- default:
- break;
- }
- break;
- case 0:
- if (str) str[apos]=0;
- return apos;
- default:
- if (str) str[apos]=ch; apos++;
- break;
- }
- }
- if (str) str[apos]=0;
- return apos;
-}
-
-link_warning("vsnprintf","warning: the printf functions add several kilobytes of bloat.")
-
diff --git a/mdk-stage1/dietlibc/lib/vsprintf.c b/mdk-stage1/dietlibc/lib/vsprintf.c
deleted file mode 100644
index 10ff04bd7..000000000
--- a/mdk-stage1/dietlibc/lib/vsprintf.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <stdarg.h>
-#include <linux/types.h>
-#include <stdlib.h>
-
-int vsnprintf (char *str,size_t size,const char *format, va_list arg_ptr);
-
-int vsprintf(char *dest,const char *format, va_list arg_ptr)
-{
- return vsnprintf(dest,1000000,format,arg_ptr);
-}
diff --git a/mdk-stage1/dietlibc/lib/vsscanf.c b/mdk-stage1/dietlibc/lib/vsscanf.c
deleted file mode 100644
index 1c4c9b787..000000000
--- a/mdk-stage1/dietlibc/lib/vsscanf.c
+++ /dev/null
@@ -1,304 +0,0 @@
-#include "dietfeatures.h"
-#include <stdarg.h>
-#include <sys/types.h>
-#include <ctype.h>
-#include <stdlib.h>
-#include <string.h>
-
-const char *skip_ws(const char *str)
-{
- while ((*str)&&(isspace(*str))) str++;
- return str;
-}
-
-extern double strtod(const char *s,char **f);
-
-int vsscanf(const char *str, const char *format, va_list arg_ptr)
-{
- int n=0,div;
- unsigned char ch;
-
- char flag_discard, flag_malloc, flag_half, flag_long, flag_longlong;
- char flag_width;
-
- unsigned long width;
-
- /* arg_ptr tmps */
-#ifdef WANT_FLOATING_POINT_IN_SCANF
- double d,*pd;
- float *pf;
-#endif
-
- long l=0,*pl;
- short *ph;
- int *pi;
- char *s;
-
- while ((*str)&&(*format))
- {
- const char *prevfmt=format;
- format=skip_ws(format);
- ch=*format++;
- if (!ch) continue;
-
- switch (ch)
- {
- case '%':
- div=0;
- flag_discard=0;
- flag_malloc=0;
- flag_half=0;
- flag_long=0;
- flag_longlong=0;
-
- flag_width=0;
- width=-1;
-
-inn_vsscanf:
- ch=*format++;
-
- switch (ch)
- {
- case 0:
- return 0;
-
- case '%':
- if (*(str++)!=ch) return n;
- break;
-
- /* flags */
- case '*':
- flag_discard=1;
- goto inn_vsscanf;
-
- case 'a':
- flag_malloc=1;
- goto inn_vsscanf;
-
- case 'h':
- flag_half=1;
- goto inn_vsscanf;
-
- case 'l':
- if (flag_long) flag_longlong=1;
- flag_long=1;
- goto inn_vsscanf;
-
- /* longlong ? NOT YET ! */
- case 'q':
- case 'L':
- flag_longlong=1;
- goto inn_vsscanf;
-
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- width=strtol(format-1,&s,10);
- format=s;
- flag_width=1;
- goto inn_vsscanf;
-
- /* conversion */
-
- case 'n':
- while (width && *str)
- {
- *(s++)=*(str++);
- --width;
- l++;
- }
- if (!flag_discard)
- {
- pl=(long *)va_arg(arg_ptr,long*);
- *pl=l;
- ++n;
- }
- break;
-
- case 'p':
- case 'X':
- case 'x':
- div+=6;
- case 'd':
- div+=2;
- case 'o':
- div+=8;
- case 'u':
- case 'i':
- if (*(str=skip_ws(str)))
- {
- l=strtol(str,&s,div);
- if (str!=s)
- {
- if (!flag_discard)
- {
- if (flag_long)
- {
- pl=(long *)va_arg(arg_ptr,long*);
- *pl=l;
- }
- else if (flag_half)
- {
- ph=(short *)va_arg(arg_ptr,short*);
- *ph=l;
- }
- else
- {
- pi=(int *)va_arg(arg_ptr,int*);
- *pi=l;
- }
- ++n;
- }
- str=s;
- }
- else
- return n;
- }
- break;
-
-#ifdef WANT_FLOATING_POINT_IN_SCANF
- case 'e':
- case 'E':
- case 'f':
- case 'g':
- if (*(str=skip_ws(str)))
- {
- d=strtod(str,&s);
- if (str!=s)
- {
- if (!flag_discard)
- {
- if (flag_long)
- {
- pd=(double *)va_arg(arg_ptr,double*);
- *pd=d;
- }
- else
- {
- pf=(float *)va_arg(arg_ptr,float*);
- *pf=d;
- }
- ++n;
- }
- str=s;
- }
- else
- return n;
- }
- break;
-#endif
-
- case 'c':
- if (!flag_discard)
- {
- s=(char *)va_arg(arg_ptr,char*);
- ++n;
- }
- if (!flag_width) width=1;
- while (width && *str)
- {
- if (!flag_discard) *(s++)=*(str);
- ++str;
- --width;
- }
- break;
-
- case 's':
- if (!flag_discard)
- {
- s=(char *)va_arg(arg_ptr,char*);
- ++n;
- }
- if (*(str=skip_ws(str)))
- {
- while (width && (!isspace(*str)))
- {
- if (!flag_discard) *(s++)=*(str);
- if (!*str) break;
- ++str;
- --width;
- }
- *s=0;
- }
- break;
-
-#ifdef WANT_CHARACTER_CLASSES_IN_SCANF
- case '[':
- {
- char cset[256];
- int flag_not=0;
- int flag_dash=0;
- memset(cset,0,sizeof(cset));
- ch=*format++;
-
- /* first char specials */
- if (ch=='^')
- {
- flag_not=1;
- ch=*format++;
- }
- if ((ch=='-')||(ch==']'))
- {
- cset[ch]=1;
- ch=*format++;
- }
-
- /* almost all non special chars */
- for (;(*format) && (*format!=']');++format) {
- if (flag_dash)
- {
- register unsigned char tmp=*format;
- for (;ch<=tmp;++ch) cset[ch]=1;
- flag_dash=0;
- ch=*(++format);
- }
- else if (*format=='-') flag_dash=1;
- else
- {
- cset[ch]=1;
- ch=*format;
- }
- }
-
- /* last char specials */
- if (flag_dash) cset['-']=1;
- else cset[ch]=1;
-
- /* like %c or %s */
- if (!flag_discard)
- {
- s=(char *)va_arg(arg_ptr,char*);
- ++n;
- }
- while (width && (cset[(unsigned char)(*str)]-flag_not))
- {
- if (!flag_discard) *(s++)=*(str);
- if (!*str) break;
- ++str;
- --width;
- }
- }
- break;
-#endif
- }
- break;
-
- default:
- if (prevfmt<format) {
- while (prevfmt<format) {
- if (*str!=*prevfmt) return n;
- ++str; ++prevfmt;
- }
- } else
- if (*(str++)!=ch) return n;
- break;
- }
- }
- return n;
-}
diff --git a/mdk-stage1/dietlibc/lib/wait.c b/mdk-stage1/dietlibc/lib/wait.c
deleted file mode 100644
index 8459af18c..000000000
--- a/mdk-stage1/dietlibc/lib/wait.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <sys/types.h>
-#include <sys/wait.h>
-
-pid_t wait(int *status) {
- return waitpid(-1,status,0);
-}
diff --git a/mdk-stage1/dietlibc/lib/wait3.c b/mdk-stage1/dietlibc/lib/wait3.c
deleted file mode 100644
index 19e90740c..000000000
--- a/mdk-stage1/dietlibc/lib/wait3.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <sys/wait.h>
-
-int wait3(int* status,int opts,struct rusage* rusage) {
- return wait4(-1,status,opts,rusage);
-}
diff --git a/mdk-stage1/dietlibc/libcruft/___div.c b/mdk-stage1/dietlibc/libcruft/___div.c
deleted file mode 100644
index d359dc47b..000000000
--- a/mdk-stage1/dietlibc/libcruft/___div.c
+++ /dev/null
@@ -1,11 +0,0 @@
-#include "dietwarning.h"
-#include <stdlib.h>
-
-div_t div(int numer, int denom) {
- div_t temp;
- temp.quot=numer/denom;
- temp.rem=numer%denom;
- return temp;
-}
-
-link_warning("div","warning: your code uses div(), which is completely superfluous!");
diff --git a/mdk-stage1/dietlibc/libcruft/dnscruft.c b/mdk-stage1/dietlibc/libcruft/dnscruft.c
deleted file mode 100644
index d7a0efa50..000000000
--- a/mdk-stage1/dietlibc/libcruft/dnscruft.c
+++ /dev/null
@@ -1,115 +0,0 @@
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <arpa/inet.h>
-#include <string.h>
-#include <ctype.h>
-#include <stdlib.h>
-
-int __dns_fd=-1;
-
-void __dns_make_fd() {
- int tmp;
- struct sockaddr_in si;
- if (__dns_fd>0) return;
- tmp=socket(PF_INET,SOCK_DGRAM,IPPROTO_UDP);
- if (tmp<0) {
- perror("__dns_make_fd!socket");
- return;
- }
- si.sin_family=AF_INET;
- si.sin_port=0;
- si.sin_addr.s_addr=INADDR_ANY;
- if (bind(tmp,(struct sockaddr*)&si,sizeof(si))) {
- perror("__dns_make_fd!bind");
- return;
- }
- __dns_fd=tmp;
-}
-
-int __dns_servers=0;
-struct sockaddr __dns_server_ips[8];
-
-int __dns_search=0;
-char *__dns_domains[8];
-
-void __dns_readstartfiles() {
- int fd;
- char *buf=alloca(4096);
- int len;
- if (__dns_servers>0) return;
- {
- struct sockaddr_in to;
- char *cacheip=getenv("DNSCACHEIP");
- if (cacheip) {
- to.sin_port=htons(53);
- to.sin_family=AF_INET;
- if (inet_aton(cacheip,&to.sin_addr)) {
- memmove(__dns_server_ips,&to,sizeof(struct sockaddr));
- ++__dns_servers;
- }
- }
- }
- if ((fd=open("/etc/resolv.conf",O_RDONLY))<0) return;
- len=read(fd,buf,4096);
- close(fd);
- {
- char *last=buf+len;
- for (; buf<last;) {
- if (!strncmp(buf,"nameserver",10)) {
- buf+=10;
- while (buf<last && *buf!='\n') {
- while (buf<last && isblank(*buf)) ++buf;
- {
- char *tmp=buf;
- struct sockaddr_in i;
- while (buf<last && !isspace(*buf)) ++buf;
- if (buf>=last) break;
- *buf=0;
- if (inet_aton(tmp,&i.sin_addr)) {
- i.sin_family=AF_INET;
- i.sin_port=htons(53);
- memmove(&__dns_server_ips[__dns_servers],&i,sizeof(struct sockaddr));
- if (__dns_servers<8) ++__dns_servers;
- }
- }
- }
- }
- if (!strncmp(buf,"search",6) || !strncmp(buf,"domain",6)) {
- buf+=6;
- }
- while (buf<last && *buf!='\n') ++buf;
- while (buf<last && *buf=='\n') ++buf;
- }
- }
-}
-
-/* return length of decoded data or -1 */
-int __dns_decodename(unsigned char *packet,int offset,unsigned char *dest,int maxlen) {
- unsigned char *tmp;
- unsigned char *max=dest+maxlen;
- unsigned char *after=packet+offset;
- int ok=0;
- for (tmp=after; maxlen>0&&*tmp; ) {
- if ((*tmp>>6)==3) { /* goofy DNS decompression */
- unsigned int ofs=((unsigned int)(*tmp&0x3f)<<8)|*(tmp+1);
- if (ofs>=offset) return -1; /* RFC1035: "pointer to a _prior_ occurrance" */
- if (after<tmp+2) after=tmp+2;
- tmp=packet+ofs;
- ok=0;
- } else {
- unsigned int duh;
- if (dest+*tmp+1>max) return -1;
- for (duh=*tmp; duh>0; --duh)
- *dest++=*++tmp;
- *dest++='.'; ok=1;
- ++tmp;
- if (tmp>after) { after=tmp; if (!*tmp) ++after; }
- }
- }
- if (ok) --dest;
- *dest=0;
- return after-packet;
-}
diff --git a/mdk-stage1/dietlibc/libcruft/dnscruft2.c b/mdk-stage1/dietlibc/libcruft/dnscruft2.c
deleted file mode 100644
index b59207072..000000000
--- a/mdk-stage1/dietlibc/libcruft/dnscruft2.c
+++ /dev/null
@@ -1,185 +0,0 @@
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#include <stdlib.h>
-#include <arpa/inet.h>
-#include <sys/poll.h>
-#include <unistd.h>
-#include <errno.h>
-
-#include <stdio.h>
-
-extern int h_errno;
-
-static char dnspacket[]="\xfe\xfe\001\000\000\001\000\000\000\000\000\000";
-
-extern void __dns_make_fd();
-extern int __dns_fd;
-
-extern int __dns_servers;
-extern struct sockaddr __dns_server_ips[];
-
-extern void __dns_readstartfiles();
-
-extern int __dns_decodename(unsigned char *packet,int offset,unsigned char *dest,int maxlen);
-
-/* Oh boy, this interface sucks so badly, there are no words for it.
- * Not one, not two, but _three_ error signalling methods! (*h_errnop
- * nonzero? return value nonzero? *RESULT zero?) The glibc goons
- * really outdid themselves with this one. */
-int __dns_gethostbyx_r(const char* name, struct hostent* result,
- char *buf, size_t buflen,
- struct hostent **RESULT, int *h_errnop, int lookfor) {
- int names,ips;
- unsigned char *cur;
- unsigned char *max;
- unsigned char packet[512];
- __dns_make_fd();
-
- if (lookfor==1) {
- result->h_aliases=(char**)(buf+8*4);
- result->h_addrtype=AF_INET;
- result->h_length=4;
- result->h_addr_list=(char**)buf;
- } else {
- result->h_aliases=(char**)(buf+8*16);
- result->h_addrtype=AF_INET6;
- result->h_length=16;
- result->h_addr_list=(char**)buf;
- }
- result->h_aliases[0]=0;
-
- cur=buf+16*sizeof(char*);
- max=buf+buflen;
- names=ips=0;
-
- memmove(packet,dnspacket,12);
- *(unsigned short*)packet=rand();
- {
- unsigned char* x;
- const char* y,* tmp;
- x=packet+12; y=name;
- while (*y) {
- while (*y=='.') ++y;
- for (tmp=y; *tmp && *tmp!='.'; ++tmp) ;
- *x=tmp-y;
- if (!(tmp-y)) break;
- ++x;
- if (x>=packet+510-(tmp-y)) { *h_errnop=ERANGE; return 1; }
- memmove(x,y,tmp-y);
- x+=tmp-y;
- if (!*tmp) {
- *x=0;
- break;
- }
- y=tmp;
- }
- *++x= 0; *++x= lookfor; /* A */
- *++x= 0; *++x= 1; /* IN */
- ++x;
- {
- int i; /* current server */
- int j; /* timeout count down */
- struct pollfd duh;
- i=0; j=30;
- __dns_readstartfiles();
- duh.fd=__dns_fd;
- duh.events=POLLIN;
- for (j=30; j>0; --j) {
- sendto(__dns_fd,packet,x-packet,0,(struct sockaddr*)&(__dns_server_ips[i]),sizeof(struct sockaddr));
- if (++i > __dns_servers) i=0;
- if (poll(&duh,1,1) == 1) {
- /* read and parse answer */
- unsigned char inpkg[1500];
- /*int len=*/ read(__dns_fd,inpkg,1500);
-#if 0
- {
- int tft=open("duh",0);
- read(tft,inpkg,1500);
- close(tft);
- }
-#endif
- /* header, question, answer, authority, additional */
- if (inpkg[0]!=packet[0] || inpkg[1]!=packet[1]) continue; /* wrong ID */
- if ((inpkg[2]&0xf9) != 0x81) continue; /* not answer */
- if ((inpkg[3]&0x0f) != 0) break; /* error */
- tmp=inpkg+12;
- {
- char name[257];
- unsigned short q=((unsigned short)inpkg[4]<<8)+inpkg[5];
- while (q>0) {
- while (*tmp) tmp+=*tmp+1;
- tmp+=5;
- --q;
- }
- q=((unsigned short)inpkg[6]<<8)+inpkg[7];
- if (q<1) break;
- while (q>0) {
- int decofs=__dns_decodename(inpkg,tmp-(char*)inpkg,name,256);
- if (decofs<0) break;
- tmp=inpkg+decofs;
- --q;
- if (tmp[0]!=0 || tmp[1]!=lookfor || /* TYPE != A */
- tmp[2]!=0 || tmp[3]!=1) { /* CLASS != IN */
- if (tmp[1]==5) { /* CNAME */
- tmp+=10;
- decofs=__dns_decodename(inpkg,tmp-(char*)inpkg,name,256);
- if (decofs<0) break;
- tmp=inpkg+decofs;
- } else
- break;
- continue;
- }
- tmp+=10; /* skip type, class, TTL and length */
- {
- int slen;
- if (lookfor==1 || lookfor==28) /* A or AAAA*/ {
- slen=strlen(name);
- if (cur+slen+8+(lookfor==28?12:0)>=max) { *h_errnop=NO_RECOVERY; return 1; }
- } else if (lookfor==12) /* PTR */ {
- decofs=__dns_decodename(inpkg,tmp-(char*)inpkg,name,256);
- if (decofs<0) break;
- tmp=inpkg+decofs;
- slen=strlen(name);
- } else
- slen=strlen(name);
- strcpy(cur,name);
- if (names==0)
- result->h_name=cur;
- else
- result->h_aliases[names-1]=cur;
- result->h_aliases[names]=0;
- ++names;
-/* cur+=slen+1; */
- cur+=(slen|3)+1;
- result->h_addr_list[ips++] = cur;
- if (lookfor==1) /* A */ {
- *(int*)cur=*(int*)tmp;
- cur+=4;
- result->h_addr_list[ips]=0;
- } else if (lookfor==28) /* AAAA */ {
- {
- int i;
- for (i=0; i<16; ++i) cur[i]=tmp[i];
- }
- cur+=16;
- result->h_addr_list[ips]=0;
- }
- }
-/* puts(name); */
- }
- }
-/* printf("%d answers\n",((unsigned short)inpkg[6]<<8)+inpkg[7]);
- printf("ok\n");*/
- *h_errnop=0;
- *RESULT=result;
- return 0;
- }
-/*kaputt:*/
- }
- }
- }
- return 1;
-}
diff --git a/mdk-stage1/dietlibc/libcruft/entlib.c b/mdk-stage1/dietlibc/libcruft/entlib.c
deleted file mode 100644
index f88b3f057..000000000
--- a/mdk-stage1/dietlibc/libcruft/entlib.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * dietlibc/lib/entlib.c - Generic delimited-line parsing library
- *
- * Copyright 2001 Jeff Garzik <jgarzik@mandrakesoft.com>
- *
- * This is a brand new implementation, based on the interface
- * described in man-pages-1.34-1mdk man pages package.
- */
-
-
-#include "entlib.h" /* this is our only include */
-
-
-/*
- * __ent_start
- *
- * Allocates and zeroes the module's state structure,
- * and open a handle to /etc/passwd.
- *
- * Returns -1 on failure and sets errno, or zero for success.
- */
-
-int __ent_start(const char *pathname, struct __ent_state **st_ref)
-{
- struct __ent_state *st;
-
- if (*st_ref)
- return 0;
-
- st = calloc(1, sizeof(*st));
- if (!st) {
- errno = ENOMEM;
- return -1;
- }
-
- st->fd = open(pathname, O_RDONLY);
- if (st->fd == -1) {
- /* errno should have been set by open(2) */
- free(st);
- st = NULL;
- return -1;
- }
-
- *st_ref = st;
- return 0;
-}
-
-
-/*
- * __ent_get_line
- *
- * Eliminates a previous line from the buffer, if any.
- * Then reads in a new line from /etc/passwd, if necessary.
- *
- * Returns -1 on failure, or zero for success.
- */
-
-int __ent_get_line(struct __ent_state *st)
-{
- int rc;
-
- /* overwrite previous line, by shifting the rest
- * of the rest to the front of the buffer
- */
- if (st->bufptr) {
- unsigned int slop = st->buflen - st->bufptr;
- memmove(st->ent_buf, &st->ent_buf[st->bufptr], slop);
- st->bufptr = 0;
- st->buflen = slop;
- st->ent_buf[st->buflen] = 0; /* null terminate */
- }
-
- if (st->buflen == __ENT_BUFSIZ || strchr(st->ent_buf, '\n'))
- return 0;
-
- rc = read(st->fd, &st->ent_buf[st->buflen], __ENT_BUFSIZ - st->buflen);
- if (rc < 0)
- return -1;
-
- st->buflen += rc;
- if (st->buflen == 0)
- return -1;
-
- return 0;
-}
-
-
-/*
- * __ent_split
- *
- * Splits a string into parts based on a delimiter.
- * Stops processing when \n is reached also.
- *
- * Returns -1 on failure, or zero on success.
- */
-
-int __ent_split(struct __ent_state *st, char **parts,
- int n_parts, int delimiter, int require_exact)
-{
- char *s = &st->ent_buf[st->bufptr];
- int idx = 0;
-
- /* empty list */
- if (!*s) {
- if (!require_exact)
- return 0;
- return -1;
- }
-
- /* scan through string, sticking string pointers
- * into parts[] as delimiters are found
- */
- parts[idx++] = s;
- while (*s) {
- st->bufptr++;
- if (*s == '\n') {
- *s = 0; /* null terminate */
- break;
- }
- if (*s == delimiter) {
- *s = 0; /* null terminate */
- /* boundary error: too many delimiters */
- if (idx == n_parts)
- return -1;
- s++;
- parts[idx++] = s;
- } else {
- s++;
- }
- }
-
- if (!require_exact)
- return 0;
- return (n_parts == idx) ? 0 : -1;
-}
-
-
-void __ent_set(struct __ent_state *st)
-{
- if (!st)
- return;
- st->buflen = st->bufptr = 0;
- lseek(st->fd, 0, SEEK_SET);
-}
-
-
-void __ent_end(struct __ent_state *st)
-{
- if (!st)
- return;
- close(st->fd);
- free(st);
-}
diff --git a/mdk-stage1/dietlibc/libcruft/entlib.h b/mdk-stage1/dietlibc/libcruft/entlib.h
deleted file mode 100644
index 2659d542e..000000000
--- a/mdk-stage1/dietlibc/libcruft/entlib.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * dietlibc/lib/entlib.h - Generic delimited-line parsing library header
- *
- * Copyright 2001 Jeff Garzik <jgarzik@mandrakesoft.com>
- *
- * This is a brand new implementation, based on the interface
- * described in man-pages-1.34-1mdk man pages package.
- */
-
-#ifndef __ENTLIB_H
-#define __ENTLIB_H
-
-#include <sys/types.h> /* for open(2), lseek(2) */
-#include <sys/stat.h> /* for open(2) */
-#include <fcntl.h> /* for open(2) */
-#include <unistd.h> /* for close(2), lseek(2) */
-#include <stdlib.h> /* for calloc(3), free(3) */
-#include <errno.h> /* for errno */
-#include <string.h> /* for memmove(3) */
-#include <stdlib.h> /* for atoi(3) */
-#include <paths.h> /* for the file locations */
-
-#include <pwd.h> /* for struct passwd */
-#include <grp.h> /* for struct group */
-#include <shadow.h> /* for struct spwd */
-
-/* should be a multiple of 64 to create decent alignment */
-#define __ENT_BUFSIZ (64 * 2)
-#define __ENT_RAW_BUFSIZ (__ENT_BUFSIZ + 2) /* some overlap required */
-
-struct __ent_state {
- char ent_buf[__ENT_RAW_BUFSIZ]; /* raw file data buffer */
- unsigned int buflen; /* amount of valid data in ent_buf */
- unsigned int bufptr; /* next valid position in ent_buf */
- int fd; /* /etc/passwd file descriptor */
-};
-
-extern int __ent_start(const char *pathname, struct __ent_state **st_ref);
-extern int __ent_get_line(struct __ent_state *st);
-extern int __ent_split(struct __ent_state *st, char **parts, int n_parts, int delimiter, int require_exact);
-extern void __ent_set(struct __ent_state *st);
-extern void __ent_end(struct __ent_state *st);
-
-#endif /* __ENTLIB_H */
diff --git a/mdk-stage1/dietlibc/libcruft/getdtablesize.c b/mdk-stage1/dietlibc/libcruft/getdtablesize.c
deleted file mode 100644
index 227354714..000000000
--- a/mdk-stage1/dietlibc/libcruft/getdtablesize.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <unistd.h>
-#include <limits.h>
-
-int getdtablesize(void) {
- return OPEN_MAX;
-}
diff --git a/mdk-stage1/dietlibc/libcruft/getgrgid.c b/mdk-stage1/dietlibc/libcruft/getgrgid.c
deleted file mode 100644
index 0c223056c..000000000
--- a/mdk-stage1/dietlibc/libcruft/getgrgid.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <grp.h>
-#include <string.h>
-#include <stdlib.h>
-
-struct group *getgrgid(gid_t gid) {
- struct group *tmp;
- setgrent();
- for (;;) {
- tmp=getgrent();
- if (!tmp) return 0;
- if (tmp->gr_gid == gid)
- return tmp;
- }
-}
diff --git a/mdk-stage1/dietlibc/libcruft/getgrnam.c b/mdk-stage1/dietlibc/libcruft/getgrnam.c
deleted file mode 100644
index 1bdbb42a8..000000000
--- a/mdk-stage1/dietlibc/libcruft/getgrnam.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <grp.h>
-#include <string.h>
-#include <stdlib.h>
-
-struct group *getgrnam(const char* name) {
- struct group *tmp;
- setgrent();
- for (;;) {
- tmp=getgrent();
- if (!tmp) return 0;
- if (!strcmp(tmp->gr_name,name))
- return tmp;
- }
-}
diff --git a/mdk-stage1/dietlibc/libcruft/gethostbyaddr.c b/mdk-stage1/dietlibc/libcruft/gethostbyaddr.c
deleted file mode 100644
index a4207d44d..000000000
--- a/mdk-stage1/dietlibc/libcruft/gethostbyaddr.c
+++ /dev/null
@@ -1,38 +0,0 @@
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#include <stdlib.h>
-#include <arpa/inet.h>
-#include <sys/poll.h>
-#include <unistd.h>
-#include <errno.h>
-
-extern int h_errno;
-
-struct hostent* gethostbyaddr(const void *addr, socklen_t len, int type) {
- static struct hostent hostbuf;
- struct hostent *hp;
- size_t hstbuflen;
- char *tmphstbuf;
- int res;
- int herr;
-
- hstbuflen = 1024;
- /* Allocate buffer, remember to free it to avoid a memory leakage. */
- tmphstbuf = malloc (hstbuflen);
-
- while ((res = gethostbyaddr_r (addr, len, type, &hostbuf, tmphstbuf, hstbuflen,
- &hp, &herr)) == ERANGE)
- {
- /* Enlarge the buffer. */
- hstbuflen *= 2;
- tmphstbuf = realloc (tmphstbuf, hstbuflen);
- }
- /* Check for errors. */
- if (res || hp == NULL)
- return NULL;
- return hp;
-}
-
diff --git a/mdk-stage1/dietlibc/libcruft/gethostbyaddr_r.c b/mdk-stage1/dietlibc/libcruft/gethostbyaddr_r.c
deleted file mode 100644
index 37174ab13..000000000
--- a/mdk-stage1/dietlibc/libcruft/gethostbyaddr_r.c
+++ /dev/null
@@ -1,51 +0,0 @@
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#include <stdlib.h>
-#include <arpa/inet.h>
-#include <sys/poll.h>
-#include <unistd.h>
-#include <errno.h>
-
-#include <stdio.h>
-
-extern int __dns_gethostbyx_r(const char* name, struct hostent* result,
- char *buf, size_t buflen,
- struct hostent **RESULT, int *h_errnop, int lookfor);
-
-static int i2a(char* dest,unsigned int x) {
- register unsigned int tmp=x;
- register int len=0;
- if (x>=100) { *dest++=tmp/100+'0'; tmp=tmp%100; ++len; }
- if (x>=10) { *dest++=tmp/10+'0'; tmp=tmp%10; ++len; }
- *dest++=tmp+'0';
- return len+1;
-}
-
-/* Oh boy, this interface sucks so badly, there are no words for it.
- * Not one, not two, but _three_ error signalling methods! (*h_errnop
- * nonzero? return value nonzero? *RESULT zero?) The glibc goons
- * really outdid themselves with this one. */
-int gethostbyaddr_r(const char* addr, size_t length, int format,
- struct hostent* result, char *buf, size_t buflen,
- struct hostent **RESULT, int *h_errnop) {
- if (format==AF_INET) {
- char tmpbuf[50];
- char *tmp;
- int res;
- tmp=tmpbuf+i2a(tmpbuf,(unsigned char)addr[3]); *tmp++='.';
- tmp+=i2a(tmp,(unsigned char)addr[2]); *tmp++='.';
- tmp+=i2a(tmp,(unsigned char)addr[1]); *tmp++='.';
- tmp+=i2a(tmp,(unsigned char)addr[0]); strcpy(tmp,".in-addr.arpa");
- res= __dns_gethostbyx_r(tmpbuf,result,buf+4,buflen-4,RESULT,h_errnop,12); /* 12 == ns_t_ptr */
- if (res==0) {
- result->h_addr_list[0]=buf;
- result->h_addr_list[1]=buf;
- *(int*)buf=*(int*)addr;
- }
- return res;
- }
- return 1;
-}
diff --git a/mdk-stage1/dietlibc/libcruft/gethostbyname.c b/mdk-stage1/dietlibc/libcruft/gethostbyname.c
deleted file mode 100644
index 5db5bf3c5..000000000
--- a/mdk-stage1/dietlibc/libcruft/gethostbyname.c
+++ /dev/null
@@ -1,39 +0,0 @@
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#include <stdlib.h>
-#include <arpa/inet.h>
-#include <sys/poll.h>
-#include <unistd.h>
-#include <errno.h>
-
-extern int h_errno;
-
-struct hostent* gethostbyname (const char *host)
-{
- static struct hostent hostbuf;
- struct hostent *hp;
- size_t hstbuflen;
- char *tmphstbuf;
- int res;
- int herr;
-
- hstbuflen = 1024;
- /* Allocate buffer, remember to free it to avoid a memory leakage. */
- tmphstbuf = malloc (hstbuflen);
-
- while ((res = gethostbyname_r (host, &hostbuf, tmphstbuf, hstbuflen,
- &hp, &herr)) == ERANGE)
- {
- /* Enlarge the buffer. */
- hstbuflen *= 2;
- tmphstbuf = realloc (tmphstbuf, hstbuflen);
- }
- /* Check for errors. */
- if (res || hp == NULL)
- return NULL;
- return hp;
-}
-
diff --git a/mdk-stage1/dietlibc/libcruft/gethostbyname2.c b/mdk-stage1/dietlibc/libcruft/gethostbyname2.c
deleted file mode 100644
index 3d8296616..000000000
--- a/mdk-stage1/dietlibc/libcruft/gethostbyname2.c
+++ /dev/null
@@ -1,40 +0,0 @@
-
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#include <stdlib.h>
-#include <arpa/inet.h>
-#include <sys/poll.h>
-#include <unistd.h>
-#include <errno.h>
-
-extern int h_errno;
-
-struct hostent* gethostbyname2(const char *host,int AF)
-{
- static struct hostent hostbuf;
- struct hostent *hp;
- size_t hstbuflen;
- char *tmphstbuf;
- int res;
- int herr;
-
- hstbuflen = 1024;
- /* Allocate buffer, remember to free it to avoid a memory leakage. */
- tmphstbuf = malloc (hstbuflen);
-
- while ((res = gethostbyname2_r (host, AF,&hostbuf, tmphstbuf, hstbuflen,
- &hp, &herr)) == ERANGE)
- {
- /* Enlarge the buffer. */
- hstbuflen *= 2;
- tmphstbuf = realloc (tmphstbuf, hstbuflen);
- }
- /* Check for errors. */
- if (res || hp == NULL)
- return NULL;
- return hp;
-}
-
diff --git a/mdk-stage1/dietlibc/libcruft/gethostbyname2_r.c b/mdk-stage1/dietlibc/libcruft/gethostbyname2_r.c
deleted file mode 100644
index b505ccfbc..000000000
--- a/mdk-stage1/dietlibc/libcruft/gethostbyname2_r.c
+++ /dev/null
@@ -1,36 +0,0 @@
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#include <stdlib.h>
-#include <arpa/inet.h>
-#include <sys/poll.h>
-#include <unistd.h>
-#include <errno.h>
-
-#include <stdio.h>
-
-extern int __dns_gethostbyx_r(const char* name, struct hostent* result,
- char *buf, size_t buflen,
- struct hostent **RESULT, int *h_errnop, int lookfor);
-
-/* Oh boy, this interface sucks so badly, there are no words for it.
- * Not one, not two, but _three_ error signalling methods! (*h_errnop
- * nonzero? return value nonzero? *RESULT zero?) The glibc goons
- * really outdid themselves with this one. */
-int gethostbyname2_r(const char* name, int AF, struct hostent* result,
- char *buf, size_t buflen,
- struct hostent **RESULT, int *h_errnop) {
- int L=strlen(name);
- int lookfor=0;
- switch (AF) {
- case AF_INET: lookfor=1; break;
- case AF_INET6: lookfor=28; break;
- default: *h_errnop=EINVAL; return 1;
- }
- result->h_name=buf;
- if (buflen<L) { *h_errnop=ERANGE; return 1; }
- strcpy(buf,name);
- return __dns_gethostbyx_r(name,result,buf+L,buflen-L,RESULT,h_errnop,lookfor);
-}
diff --git a/mdk-stage1/dietlibc/libcruft/gethostbyname_r.c b/mdk-stage1/dietlibc/libcruft/gethostbyname_r.c
deleted file mode 100644
index d5a531f0f..000000000
--- a/mdk-stage1/dietlibc/libcruft/gethostbyname_r.c
+++ /dev/null
@@ -1,30 +0,0 @@
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#include <stdlib.h>
-#include <arpa/inet.h>
-#include <sys/poll.h>
-#include <unistd.h>
-#include <errno.h>
-
-#include <stdio.h>
-
-extern int __dns_gethostbyx_r(const char* name, struct hostent* result,
- char *buf, size_t buflen,
- struct hostent **RESULT, int *h_errnop, int lookfor);
-
-/* Oh boy, this interface sucks so badly, there are no words for it.
- * Not one, not two, but _three_ error signalling methods! (*h_errnop
- * nonzero? return value nonzero? *RESULT zero?) The glibc goons
- * really outdid themselves with this one. */
-int gethostbyname_r(const char* name, struct hostent* result,
- char *buf, size_t buflen,
- struct hostent **RESULT, int *h_errnop) {
- int L=strlen(name);
- result->h_name=buf;
- if (buflen<L) { *h_errnop=ERANGE; return 1; }
- strcpy(buf,name);
- return __dns_gethostbyx_r(name,result,buf+L,buflen-L,RESULT,h_errnop,1);
-}
diff --git a/mdk-stage1/dietlibc/libcruft/getlogin.c b/mdk-stage1/dietlibc/libcruft/getlogin.c
deleted file mode 100644
index 359f44d9f..000000000
--- a/mdk-stage1/dietlibc/libcruft/getlogin.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <stdlib.h>
-
-char* getlogin() {
- return getenv("LOGNAME");
-}
diff --git a/mdk-stage1/dietlibc/libcruft/getpagesize.c b/mdk-stage1/dietlibc/libcruft/getpagesize.c
deleted file mode 100644
index dea4a9693..000000000
--- a/mdk-stage1/dietlibc/libcruft/getpagesize.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <sys/types.h>
-#include <sys/ipc.h>
-#include <sys/shm.h>
-
-#ifndef PAGE_SIZE
-#define PAGE_SIZE 4096
-#endif
-
-size_t __libc_getpagesize(void) {
- return PAGE_SIZE;
-}
-
-size_t getpagesize(void) __attribute__((weak,alias("__libc_getpagesize")));
-
diff --git a/mdk-stage1/dietlibc/libcruft/getpass.c b/mdk-stage1/dietlibc/libcruft/getpass.c
deleted file mode 100644
index 3da7cd2b3..000000000
--- a/mdk-stage1/dietlibc/libcruft/getpass.c
+++ /dev/null
@@ -1,40 +0,0 @@
-#include <termios.h>
-#include <unistd.h>
-#include <limits.h>
-#include <fcntl.h>
-#include <string.h>
-
-char *getpass(const char* prompt) {
- struct termios old,tmp;
- int out,in=open("/dev/tty",O_RDWR);
- int doclose=(in>=0);
- static char buf[PASS_MAX];
- if (doclose) { in=0; out=2; } else out=in;
- if (!tcgetattr(in,&old)) {
- tmp=old;
- tmp.c_lflag &= ~(ECHO|ISIG);
- tcsetattr(in,TCSAFLUSH,&tmp);
- }
- write(out,prompt,strlen(prompt));
- {
- int nread,ofs=0;
- for (;;) {
- nread=read(in,buf+ofs,PASS_MAX-ofs);
- if (nread<0) {
- buf[ofs]=0;
- break;
- } else if (ofs+nread>=PASS_MAX) {
- buf[PASS_MAX-1]=0;
- break;
- } else if (buf[ofs+nread-1]=='\n') {
- buf[ofs+nread-1]=0;
- break;
- }
- ofs+=nread;
- }
- write(out,"\n",1);
- }
- tcsetattr(in,TCSAFLUSH,&old);
- if (doclose) close(in);
- return buf;
-}
diff --git a/mdk-stage1/dietlibc/libcruft/getpwnam.c b/mdk-stage1/dietlibc/libcruft/getpwnam.c
deleted file mode 100644
index 53aae74d1..000000000
--- a/mdk-stage1/dietlibc/libcruft/getpwnam.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <pwd.h>
-#include <string.h>
-#include <stdlib.h>
-
-struct passwd *getpwnam(const char * name) {
- struct passwd *tmp;
- setpwent();
- for (;;) {
- tmp=getpwent();
- if (!tmp) return 0;
- if (!strcmp(tmp->pw_name,name))
- return tmp;
- }
-}
diff --git a/mdk-stage1/dietlibc/libcruft/getpwuid.c b/mdk-stage1/dietlibc/libcruft/getpwuid.c
deleted file mode 100644
index eef14e6e8..000000000
--- a/mdk-stage1/dietlibc/libcruft/getpwuid.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <pwd.h>
-#include <string.h>
-#include <stdlib.h>
-
-struct passwd *getpwuid(uid_t uid) {
- struct passwd *tmp;
- setpwent();
- for (;;) {
- tmp=getpwent();
- if (!tmp) return 0;
- if (tmp->pw_uid==uid)
- return tmp;
- }
-}
diff --git a/mdk-stage1/dietlibc/libcruft/getspnam.c b/mdk-stage1/dietlibc/libcruft/getspnam.c
deleted file mode 100644
index e6573345d..000000000
--- a/mdk-stage1/dietlibc/libcruft/getspnam.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <shadow.h>
-#include <string.h>
-#include <stdlib.h>
-
-struct spwd *getspnam(const char * name) {
- struct spwd *tmp;
- setspent();
- for (;;) {
- tmp=getspent();
- if (!tmp) return 0;
- if (!strcmp(tmp->sp_namp,name))
- return tmp;
- }
-}
diff --git a/mdk-stage1/dietlibc/libcruft/grent.c b/mdk-stage1/dietlibc/libcruft/grent.c
deleted file mode 100644
index 0357657de..000000000
--- a/mdk-stage1/dietlibc/libcruft/grent.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * dietlibc/lib/grent.c - getgrent(3)/setgrent(3)/endgrent(3) implementation
- *
- * Copyright 2001 Jeff Garzik <jgarzik@mandrakesoft.com>
- *
- * This is a brand new implementation, based on the interface
- * described in man-pages-1.34-1mdk man pages package.
- */
-
-
-#include "entlib.h" /* this is our only include */
-
-#define MAX_GROUP_MEMBERS 16 /* matches Linux kernel task struct */
-
-static struct __ent_state *st = NULL; /* state held across calls */
-static char *gr_mem[MAX_GROUP_MEMBERS+1];
-static struct group gr;
-
-struct group *getgrent(void)
-{
- char *parts[4], *grouplist;
- unsigned int bufptr;
-
- if (__ent_start(_PATH_GROUP, &st))
- return NULL;
- if (__ent_get_line(st))
- goto err_out;
- if (__ent_split(st, parts, 4, ':', 1) < 0)
- goto err_out;
-
- gr.gr_name = parts[0];
- gr.gr_passwd = parts[1];
- gr.gr_gid = (gid_t) atoi(parts[2]);
- grouplist = parts[3];
-
- memset(&gr_mem, 0, sizeof(gr_mem));
- gr.gr_mem = gr_mem;
-
- /* rewind bufptr to beginning of group list */
- bufptr = st->bufptr;
- st->bufptr = (int) (grouplist - st->ent_buf);
-
- __ent_split(st, gr_mem, MAX_GROUP_MEMBERS, ',', 0);
- st->bufptr = bufptr;
-
- return &gr;
-
-err_out:
- st->buflen = st->bufptr = 0; /* invalidate file data buffer */
- return NULL;
-}
-
-void setgrent(void) { __ent_set(st); }
-void endgrent(void) { __ent_end(st); st=NULL; }
diff --git a/mdk-stage1/dietlibc/libcruft/h_errno.c b/mdk-stage1/dietlibc/libcruft/h_errno.c
deleted file mode 100644
index 73ead0469..000000000
--- a/mdk-stage1/dietlibc/libcruft/h_errno.c
+++ /dev/null
@@ -1 +0,0 @@
-int h_errno;
diff --git a/mdk-stage1/dietlibc/libcruft/herrno_location.c b/mdk-stage1/dietlibc/libcruft/herrno_location.c
deleted file mode 100644
index 203f73d4b..000000000
--- a/mdk-stage1/dietlibc/libcruft/herrno_location.c
+++ /dev/null
@@ -1,5 +0,0 @@
-extern int h_errno;
-
-int *__h_errno_location() { return &h_errno; }
-
-int *h_errno_location() __attribute__((weak,alias("__h_errno_location")));
diff --git a/mdk-stage1/dietlibc/libcruft/inet_addr.c b/mdk-stage1/dietlibc/libcruft/inet_addr.c
deleted file mode 100644
index 0b8531ab1..000000000
--- a/mdk-stage1/dietlibc/libcruft/inet_addr.c
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-unsigned long int inet_addr(const char *cp) {
- struct in_addr foo;
- if (inet_aton(cp,&foo))
- return foo.s_addr;
- else
- return (unsigned long int)-1;
-}
diff --git a/mdk-stage1/dietlibc/libcruft/inet_aton.c b/mdk-stage1/dietlibc/libcruft/inet_aton.c
deleted file mode 100644
index ac7d9d007..000000000
--- a/mdk-stage1/dietlibc/libcruft/inet_aton.c
+++ /dev/null
@@ -1,43 +0,0 @@
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <stdlib.h>
-
-/* inet_aton() converts the Internet host address cp from the standard
- * numbers-and-dots notation into binary data and stores it in the
- * structure that inp points to. inet_aton returns nonzero if the
- * address is valid, zero if not. */
-
-/* problem is, inet_aton is historically quite, uh, lenient.
- * the following are all acceptable:
- * 0x7f000001 == 127.1 == 127.0.0.1.0 == 127.0.0.1
- * btw: 127.0.0.x.y == 127.0.0.(x|y)
- * and: 10.1.1 == 10.1.0.1 (huh?!)
- * and: 10 == 0.0.0.10 (?!?!?)
- * The Berkeley people must have been so stoned that they are still high.
- */
-
-/* I hereby disclaim that I wrote this code. */
-int inet_aton(const char *cp, struct in_addr *inp) {
- int i;
- unsigned int ip=0;
- char *tmp=(char*)cp;
- for (i=24; ;) {
- long j;
- j=strtol(tmp,&tmp,0);
- if (*tmp==0) {
- ip|=j;
- break;
- }
- if (*tmp=='.') {
- if (j>255) return 0;
- ip|=(j<<i);
- if (i>0) i-=8;
- ++tmp;
- continue;
- }
- return 0;
- }
- inp->s_addr=htonl(ip);
- return 1;
-}
diff --git a/mdk-stage1/dietlibc/libcruft/inet_ntoa.c b/mdk-stage1/dietlibc/libcruft/inet_ntoa.c
deleted file mode 100644
index f8c975f7a..000000000
--- a/mdk-stage1/dietlibc/libcruft/inet_ntoa.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-extern char *inet_ntoa_r(struct in_addr in,char* buf);
-
-char *inet_ntoa(struct in_addr in) {
- static char buf[20];
- return inet_ntoa_r(in,buf);
-}
diff --git a/mdk-stage1/dietlibc/libcruft/inet_ntoa_r.c b/mdk-stage1/dietlibc/libcruft/inet_ntoa_r.c
deleted file mode 100644
index dcf0eab7b..000000000
--- a/mdk-stage1/dietlibc/libcruft/inet_ntoa_r.c
+++ /dev/null
@@ -1,22 +0,0 @@
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-static unsigned int i2a(char* dest,unsigned int x) {
- register unsigned int tmp=x;
- register unsigned int len=0;
- if (x>=100) { *dest++=tmp/100+'0'; tmp=tmp%100; ++len; }
- if (x>=10) { *dest++=tmp/10+'0'; tmp=tmp%10; ++len; }
- *dest++=tmp+'0';
- return len+1;
-}
-
-char *inet_ntoa_r(struct in_addr in,char* buf) {
- unsigned int len;
- unsigned char *ip=(unsigned char*)&in;
- len=i2a(buf,ip[0]); buf[len]='.'; ++len;
- len+=i2a(buf+ len,ip[1]); buf[len]='.'; ++len;
- len+=i2a(buf+ len,ip[2]); buf[len]='.'; ++len;
- len+=i2a(buf+ len,ip[3]); buf[len]=0;
- return buf;
-}
diff --git a/mdk-stage1/dietlibc/libcruft/inet_ntop.c b/mdk-stage1/dietlibc/libcruft/inet_ntop.c
deleted file mode 100644
index 77c47f239..000000000
--- a/mdk-stage1/dietlibc/libcruft/inet_ntop.c
+++ /dev/null
@@ -1,75 +0,0 @@
-#include <arpa/inet.h>
-
-extern char *inet_ntoa_r(struct in_addr in,char* buf);
-
-static const unsigned char V4mappedprefix[12]={0,0,0,0,0,0,0,0,0,0,0xff,0xff};
-
-static char tohex(char hexdigit) {
- return hexdigit>9?hexdigit+'a'-10:hexdigit+'0';
-}
-
-static int fmt_xlong(char* s,unsigned int i) {
- char* bak=s;
- *s=tohex((i>>12)&0xf); if (s!=bak || *s!='0') ++s;
- *s=tohex((i>>8)&0xf); if (s!=bak || *s!='0') ++s;
- *s=tohex((i>>4)&0xf); if (s!=bak || *s!='0') ++s;
- *s=tohex(i&0xf);
- return s-bak+1;
-}
-
-unsigned int fmt_ip6(char *s,const char ip[16])
-{
- unsigned int len;
- unsigned int i;
- unsigned int temp;
- unsigned int compressing;
- int j;
-
- len = 0; compressing = 0;
- for (j=0; j<16; j+=2) {
- if (j==12 && !memcmp(ip,V4mappedprefix,12)) {
- inet_ntoa_r(*(struct in_addr*)(ip+12),s);
- temp=strlen(s);
- return len+temp;
- }
- temp = ((unsigned long) (unsigned char) ip[j] << 8) +
- (unsigned long) (unsigned char) ip[j+1];
- if (temp == 0) {
- if (!compressing) {
- compressing=1;
- if (j==0) {
- *s++=':'; ++len;
- }
- }
- } else {
- if (compressing) {
- compressing=0;
- *s++=':'; ++len;
- }
- i = fmt_xlong(s,temp); len += i; s += i;
- if (j<14) {
- *s++ = ':';
- ++len;
- }
- }
- }
- *s=0;
- return len;
-}
-
-const char* inet_ntop(int AF, const void *CP, char *BUF, size_t LEN) {
- char buf[100];
- int len;
- if (AF==AF_INET) {
- inet_ntoa_r(*(struct in_addr*)CP,buf);
- len=strlen(buf);
- } else if (AF==AF_INET6) {
- len=fmt_ip6(buf,CP);
- } else
- return 0;
- if (len<LEN) {
- strcpy(BUF,buf);
- return BUF;
- }
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/libcruft/inet_pton.c b/mdk-stage1/dietlibc/libcruft/inet_pton.c
deleted file mode 100644
index d5c17509c..000000000
--- a/mdk-stage1/dietlibc/libcruft/inet_pton.c
+++ /dev/null
@@ -1,97 +0,0 @@
-#include <stdlib.h>
-#include <arpa/inet.h>
-#include <errno.h>
-
-static unsigned int scan_ip6(const char *s,char ip[16])
-{
- unsigned int i;
- unsigned int len=0;
- unsigned long u;
-
- char suffix[16];
- int prefixlen=0;
- int suffixlen=0;
-
- for (i=0; i<16; i++) ip[i]=0;
-
- for (;;) {
- if (*s == ':') {
- len++;
- if (s[1] == ':') { /* Found "::", skip to part 2 */
- s+=2;
- len++;
- break;
- }
- s++;
- }
- {
- char *tmp;
- u=strtol(s,&tmp,16);
- i=tmp-s;
- }
-
- if (!i) return 0;
- if (prefixlen==12 && s[i]=='.') {
- /* the last 4 bytes may be written as IPv4 address */
- if (inet_aton(s,(struct in_addr*)(ip+12)))
- return i+len;
- else
- return 0;
- }
- ip[prefixlen++] = (u >> 8);
- ip[prefixlen++] = (u & 255);
- s += i; len += i;
- if (prefixlen==16)
- return len;
- }
-
-/* part 2, after "::" */
- for (;;) {
- if (*s == ':') {
- if (suffixlen==0)
- break;
- s++;
- len++;
- } else if (suffixlen!=0)
- break;
- {
- char *tmp;
- u=strtol(s,&tmp,16);
- i=tmp-s;
- }
- if (!i) {
- len--;
- break;
- }
- if (suffixlen+prefixlen<=12 && s[i]=='.') {
- if (inet_aton(s,(struct in_addr*)(suffix+suffixlen))) {
- suffixlen+=4;
- len+=strlen(s);
- break;
- } else
- prefixlen=12-suffixlen; /* make end-of-loop test true */
- }
- suffix[suffixlen++] = (u >> 8);
- suffix[suffixlen++] = (u & 255);
- s += i; len += i;
- if (prefixlen+suffixlen==16)
- break;
- }
- for (i=0; i<suffixlen; i++)
- ip[16-suffixlen+i] = suffix[i];
- return len;
-}
-
-int inet_pton(int AF, const char *CP, void *BUF) {
- if (AF==AF_INET) {
- if (!inet_aton(CP,(struct in_addr*)BUF))
- return 0;
- } else if (AF==AF_INET6) {
- if (CP[scan_ip6(CP,BUF)])
- return 0;
- } else {
- errno=EAFNOSUPPORT;
- return -1;
- }
- return 1;
-}
diff --git a/mdk-stage1/dietlibc/libcruft/initgroups.c b/mdk-stage1/dietlibc/libcruft/initgroups.c
deleted file mode 100644
index 7d24866e9..000000000
--- a/mdk-stage1/dietlibc/libcruft/initgroups.c
+++ /dev/null
@@ -1,23 +0,0 @@
-#include <grp.h>
-#include <sys/types.h>
-#include <string.h>
-
-int initgroups(const char *user, gid_t group) {
- int n=0;
- gid_t grouplist[32];
- struct group *g;
- setgrent();
- while ((g=getgrent())) {
- char **duh=g->gr_mem;
- while (*duh) {
- if (!strcmp(*duh,user)) {
- grouplist[n]=g->gr_gid;
- if (++n>=32)
- break;
- }
- duh++;
- }
- }
- return setgroups(n,grouplist);
-}
-
diff --git a/mdk-stage1/dietlibc/libcruft/mkstemp.c b/mdk-stage1/dietlibc/libcruft/mkstemp.c
deleted file mode 100644
index 3b24ecb54..000000000
--- a/mdk-stage1/dietlibc/libcruft/mkstemp.c
+++ /dev/null
@@ -1,23 +0,0 @@
-#include <unistd.h>
-#include <fcntl.h>
-#include <string.h>
-#include <errno.h>
-
-int mkstemp(char* template) {
- char *tmp=template+strlen(template)-6;
- int randfd;
- int i,res;
- unsigned int random;
- for (i=0; i<6; ++i) if (tmp[i]!='X') { __set_errno(EINVAL); return -1; }
- randfd=open("/dev/urandom",O_RDONLY);
- for (;;) {
- read(randfd,&random,sizeof(random));
- for (i=0; i<6; ++i) {
- int hexdigit=(random>>(i*5))&0x1f;
- tmp[i]=hexdigit>9?hexdigit+'a'-10:hexdigit+'0';
- }
- res=open(template,O_CREAT|O_RDWR|O_EXCL,0600);
- if (res>=0) return res;
- }
- close(randfd);
-}
diff --git a/mdk-stage1/dietlibc/libcruft/pwent.c b/mdk-stage1/dietlibc/libcruft/pwent.c
deleted file mode 100644
index 30a8a0957..000000000
--- a/mdk-stage1/dietlibc/libcruft/pwent.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * dietlibc/lib/pwent.c - getpwent(3)/setpwent(3)/endpwent(3) implementation
- *
- * Copyright 2001 Jeff Garzik <jgarzik@mandrakesoft.com>
- *
- * This is a brand new implementation, based on the interface
- * described in man-pages-1.34-1mdk man pages package.
- */
-
-
-#include "entlib.h" /* this is our only include */
-
-static struct __ent_state *st = NULL; /* state held across calls */
-static struct passwd pw;
-
-struct passwd *getpwent(void)
-{
- char *parts[7];
-
- if (__ent_start(_PATH_PASSWD, &st))
- return NULL;
- if (__ent_get_line(st))
- goto err_out;
- if (__ent_split(st, parts, 7, ':', 1) < 0)
- goto err_out;
-
- pw.pw_name = parts[0];
- pw.pw_passwd = parts[1];
- pw.pw_uid = (uid_t) atoi(parts[2]);
- pw.pw_gid = (gid_t) atoi(parts[3]);
- pw.pw_gecos = parts[4];
- pw.pw_dir = parts[5];
- pw.pw_shell = parts[6];
-
- return &pw;
-
-err_out:
- st->buflen = st->bufptr = 0; /* invalidate file data buffer */
- return NULL;
-}
-
-void setpwent(void) { __ent_set(st); }
-void endpwent(void) { __ent_end(st); st=NULL; }
diff --git a/mdk-stage1/dietlibc/libcruft/res_init.c b/mdk-stage1/dietlibc/libcruft/res_init.c
deleted file mode 100644
index 9322af298..000000000
--- a/mdk-stage1/dietlibc/libcruft/res_init.c
+++ /dev/null
@@ -1,7 +0,0 @@
-extern int __dns_servers;
-extern void __dns_readstartfiles(void);
-
-int res_init(void) {
- __dns_servers=0;
- __dns_readstartfiles();
-}
diff --git a/mdk-stage1/dietlibc/libcruft/spent.c b/mdk-stage1/dietlibc/libcruft/spent.c
deleted file mode 100644
index e4beb81e4..000000000
--- a/mdk-stage1/dietlibc/libcruft/spent.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * dietlibc/lib/spent.c - getspent(3)/setspent(3)/endspent(3) implementation
- *
- * Copyright 2001 Jeff Garzik <jgarzik@mandrakesoft.com>
- *
- * This is a brand new implementation, based on the interface
- * described in man-pages-1.34-1mdk man pages package.
- */
-
-
-#include "entlib.h" /* this is our only include */
-
-static struct __ent_state *st = NULL; /* state held across calls */
-static struct spwd sp;
-
-struct spwd *getspent(void)
-{
- char *parts[9];
-
- if (__ent_start(_PATH_SHADOW, &st))
- return NULL;
- if (__ent_get_line(st))
- goto err_out;
- if (__ent_split(st, parts, 9, ':', 1) < 0)
- goto err_out;
-
- sp.sp_namp = parts[0];
- sp.sp_pwdp = parts[1];
- sp.sp_lstchg = atoi(parts[2]); /* XXX: atol */
- sp.sp_min = atoi(parts[3]);
- sp.sp_max = atoi(parts[4]);
- sp.sp_warn = atoi(parts[5]);
- sp.sp_inact = atoi(parts[6]);
- sp.sp_expire = atoi(parts[7]);
- sp.sp_flag = atoi(parts[8]);
-
- return &sp;
-
-err_out:
- st->buflen = st->bufptr = 0; /* invalidate file data buffer */
- return NULL;
-}
-
-void setspent(void) { __ent_set(st); }
-void endspent(void) { __ent_end(st); st=NULL; }
diff --git a/mdk-stage1/dietlibc/libcrypt/crypt.c b/mdk-stage1/dietlibc/libcrypt/crypt.c
deleted file mode 100644
index 933397f5f..000000000
--- a/mdk-stage1/dietlibc/libcrypt/crypt.c
+++ /dev/null
@@ -1,309 +0,0 @@
-#include "dietfeatures.h"
-#include <unistd.h>
-
-/* Initial permutation, */
-static char IP[] = {
- 57,49,41,33,25,17, 9, 1,
- 59,51,43,35,27,19,11, 3,
- 61,53,45,37,29,21,13, 5,
- 63,55,47,39,31,23,15, 7,
- 56,48,40,32,24,16, 8, 0,
- 58,50,42,34,26,18,10, 2,
- 60,52,44,36,28,20,12, 4,
- 62,54,46,38,30,22,14, 6
-};
-
-/* Final permutation, FP = IP^(-1) */
-static char FP[] = {
- 39, 7,47,15,55,23,63,31,
- 38, 6,46,14,54,22,62,30,
- 37, 5,45,13,53,21,61,29,
- 36, 4,44,12,52,20,60,28,
- 35, 3,43,11,51,19,59,27,
- 34, 2,42,10,50,18,58,26,
- 33, 1,41, 9,49,17,57,25,
- 32, 0,40, 8,48,16,56,24
-};
-
-/* Permuted-choice 1 from the key bits to yield C and D.
- * Note that bits 8,16... are left out: They are intended for a parity check.
- */
-static char PC1_C[] = {
- 56,48,40,32,24,16, 8,
- 0,57,49,41,33,25,17,
- 9, 1,58,50,42,34,26,
- 18,10, 2,59,51,43,35
-};
-
-static char PC1_D[] = {
- 62,54,46,38,30,22,14,
- 6,61,53,45,37,29,21,
- 13, 5,60,52,44,36,28,
- 20,12, 4,27,19,11, 3
-};
-
-/* Sequence of shifts used for the key schedule. */
-static char shifts[] = { 1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1 };
-
-/*
- * Permuted-choice 2, to pick out the bits from the CD array that generate
- * the key schedule.
- */
-static char PC2_C[] = {
- 13, 16, 10, 23, 0, 4, 2, 27, 14, 5, 20, 9,
- 22, 18, 11, 3, 25, 7, 15, 6, 26, 19, 12, 1
-};
-
-static char PC2_D[] = {
- 12, 23, 2, 8, 18, 26, 1, 11, 22, 16, 4, 19,
- 15, 20, 10, 27, 5, 24, 17, 13, 21, 7, 0, 3
-};
-
-/* The C and D arrays used to calculate the key schedule. */
-
-static char C[28];
-static char D[28];
-/* The key schedule. Generated from the key. */
-static char KS[16][48];
-
-/* The E bit-selection table. */
-static char E[48];
-static char e2[] = {
- 32, 1, 2, 3, 4, 5, 4, 5, 6, 7, 8, 9,
- 8, 9, 10, 11, 12, 13, 12, 13, 14, 15, 16, 17,
- 16, 17, 18, 19, 20, 21, 20, 21, 22, 23, 24, 25,
- 24, 25, 26, 27, 28, 29, 28, 29, 30, 31, 32, 1
-};
-
-/* Set up the key schedule from the key. */
-void setkey(const char *key)
-{
- register int i, j, k;
- int t;
- int s;
-
- /* First, generate C and D by permuting the key. The low order bit of each
- * 8-bit char is not used, so C and D are only 28 bits apiece.
- */
- for(i=0; i < 28; i++) {
- C[i] = key[(int)PC1_C[i]];
- D[i] = key[(int)PC1_D[i]];
- }
- /* To generate Ki, rotate C and D according to schedule and pick up a
- * permutation using PC2.
- */
- for(i=0; i < 16; i++) {
- /* rotate. */
- s = shifts[i];
- for(k=0; k < s; k++) {
- t = C[0];
- for(j=0; j < 27; j++)
- C[j] = C[j+1];
- C[27] = t;
- t = D[0];
- for(j=0; j < 27; j++)
- D[j] = D[j+1];
- D[27] = t;
- }
- /* get Ki. Note C and D are concatenated. */
- for(j=0; j < 24; j++) {
- KS[i][j] = C[(int)PC2_C[j]];
- KS[i][j+24] = D[(int)PC2_D[j]];
- }
- }
-
- for(i=0; i < 48; i++)
- E[i] = e2[i];
-}
-
-/* The 8 selection functions. For some reason, they give a 0-origin index,
- * unlike everything else.
- */
-static char S[8][64] = {
- {
- 14, 4,13, 1, 2,15,11, 8, 3,10, 6,12, 5, 9, 0, 7,
- 0,15, 7, 4,14, 2,13, 1,10, 6,12,11, 9, 5, 3, 8,
- 4, 1,14, 8,13, 6, 2,11,15,12, 9, 7, 3,10, 5, 0,
- 15,12, 8, 2, 4, 9, 1, 7, 5,11, 3,14,10, 0, 6,13
- },
-
- {
- 15, 1, 8,14, 6,11, 3, 4, 9, 7, 2,13,12, 0, 5,10,
- 3,13, 4, 7,15, 2, 8,14,12, 0, 1,10, 6, 9,11, 5,
- 0,14, 7,11,10, 4,13, 1, 5, 8,12, 6, 9, 3, 2,15,
- 13, 8,10, 1, 3,15, 4, 2,11, 6, 7,12, 0, 5,14, 9
- },
-
- {
- 10, 0, 9,14, 6, 3,15, 5, 1,13,12, 7,11, 4, 2, 8,
- 13, 7, 0, 9, 3, 4, 6,10, 2, 8, 5,14,12,11,15, 1,
- 13, 6, 4, 9, 8,15, 3, 0,11, 1, 2,12, 5,10,14, 7,
- 1,10,13, 0, 6, 9, 8, 7, 4,15,14, 3,11, 5, 2,12
- },
-
- {
- 7,13,14, 3, 0, 6, 9,10, 1, 2, 8, 5,11,12, 4,15,
- 13, 8,11, 5, 6,15, 0, 3, 4, 7, 2,12, 1,10,14, 9,
- 10, 6, 9, 0,12,11, 7,13,15, 1, 3,14, 5, 2, 8, 4,
- 3,15, 0, 6,10, 1,13, 8, 9, 4, 5,11,12, 7, 2,14
- },
-
- {
- 2,12, 4, 1, 7,10,11, 6, 8, 5, 3,15,13, 0,14, 9,
- 14,11, 2,12, 4, 7,13, 1, 5, 0,15,10, 3, 9, 8, 6,
- 4, 2, 1,11,10,13, 7, 8,15, 9,12, 5, 6, 3, 0,14,
- 11, 8,12, 7, 1,14, 2,13, 6,15, 0, 9,10, 4, 5, 3
- },
-
- {
- 12, 1,10,15, 9, 2, 6, 8, 0,13, 3, 4,14, 7, 5,11,
- 10,15, 4, 2, 7,12, 9, 5, 6, 1,13,14, 0,11, 3, 8,
- 9,14,15, 5, 2, 8,12, 3, 7, 0, 4,10, 1,13,11, 6,
- 4, 3, 2,12, 9, 5,15,10,11,14, 1, 7, 6, 0, 8,13
- },
-
- {
- 4,11, 2,14,15, 0, 8,13, 3,12, 9, 7, 5,10, 6, 1,
- 13, 0,11, 7, 4, 9, 1,10,14, 3, 5,12, 2,15, 8, 6,
- 1, 4,11,13,12, 3, 7,14,10,15, 6, 8, 0, 5, 9, 2,
- 6,11,13, 8, 1, 4,10, 7, 9, 5, 0,15,14, 2, 3,12
- },
-
- {
- 13, 2, 8, 4, 6,15,11, 1,10, 9, 3,14, 5, 0,12, 7,
- 1,15,13, 8,10, 3, 7, 4,12, 5, 6,11, 0,14, 9, 2,
- 7,11, 4, 1, 9,12,14, 2, 0, 6,10,13,15, 3, 5, 8,
- 2, 1,14, 7, 4,10, 8,13,15,12, 9, 0, 3, 5, 6,11
- }
-};
-
-/* P is a permutation on the selected combination of the current L and key. */
-static char P[] = {
- 15, 6,19,20, 28,11,27,16, 0,14,22,25, 4,17,30, 9,
- 1, 7,23,13, 31,26, 2, 8, 18,12,29, 5, 21,10, 3,24
-};
-
-/* The current block, divided into 2 halves. */
-static char L[32], R[32];
-static char tempL[32];
-static char f[32];
-
-/* The combination of the key and the input, before selection. */
-static char preS[48];
-
-/* The payoff: encrypt a block. */
-void encrypt(char block[64], int edflag)
-{
- int i, ii;
- register int t, j, k;
-
- /* First, permute the bits in the input */
- for(j=0; j < 64; j++)
- L[j] = block[(int)IP[j]];
- /* Perform an encryption operation 16 times. */
- for(ii=0; ii < 16; ii++) {
- i = ii;
- /* Save the R array, which will be the new L. */
- for(j=0; j < 32; j++)
- tempL[j] = R[j];
- /* Expand R to 48 bits using the E selector;
- * exclusive-or with the current key bits.
- */
- for(j=0; j < 48; j++)
- preS[j] = R[E[j]-1] ^ KS[i][j];
- /* The pre-select bits are now considered in 8 groups of 6 bits each.
- * The 8 selection functions map these 6-bit quantities into 4-bit
- * quantities and the results permuted to make an f(R, K).
- * The indexing into the selection functions is peculiar;
- * it could be simplified by rewriting the tables.
- */
- for(j=0; j < 8; j++) {
- t = ((j<<1)+j)<<1;
- k = S[j][(preS[t]<<5)+
- (preS[t+1]<<3)+
- (preS[t+2]<<2)+
- (preS[t+3]<<1)+
- (preS[t+4] )+
- (preS[t+5]<<4)];
- t = j << 2;
- f[t ] = (k>>3)&01;
- f[t+1] = (k>>2)&01;
- f[t+2] = (k>>1)&01;
- f[t+3] = (k )&01;
- }
- /* The new R is L ^ f(R, K). The f here has to be permuted first, though. */
- for(j=0; j < 32; j++)
- R[j] = L[j] ^ f[(int)P[j]];
- /* Finally, the new L (the original R) is copied back. */
- for(j=0; j < 32; j++)
- L[j] = tempL[j];
- }
- /* The output L and R are reversed. */
- for(j=0; j < 32; j++) {
- L[j] ^= R[j];
- R[j] ^= L[j];
- L[j] ^= R[j];
- }
- /* The final output gets the inverse permutation of the very original. */
- for(j=0; j < 64; j++)
- block[j] = L[(int)FP[j]];
-}
-
-char * crypt(const char *pw, const char *salt)
-{
- register int i, j, c;
- static char block[66], iobuf[16];
-
- for(i=0; i < 66; i++)
- block[i] = 0;
- for(i=0; (c= *pw) && i < 64; pw++) {
- for(j=0; j < 7; j++, i++)
- block[i] = (c>>(6-j)) & 01;
- i++;
- }
-
- setkey(block);
-
- for(i=0; i < 66; i++)
- block[i] = 0;
-
- for(i=0; i < 2; i++) {
- c = *salt++;
- iobuf[i] = c;
- if(c > 'Z')
- c -= 6;
- if(c > '9')
- c -= 7;
- c -= '.';
- for(j=0; j < 6; j++) {
- if((c>>j) & 01) {
- int ind1 = (((i<<1)+i)<< 1) + j;
- int ind2 = ind1 + 24;
- E[ind1] ^= E[ind2];
- E[ind2] ^= E[ind1];
- E[ind1] ^= E[ind2];
- }
- }
- }
-
- for(i=0; i < 25; i++)
- encrypt(block, 0);
-
- for(i=0; i < 11; i++) {
- c = 0;
- for(j=0; j < 6; j++) {
- c <<= 1;
- c |= block[(((i<<1)+i)<<1)+j];
- }
- c += '.';
- if(c > '9')
- c += 7;
- if(c > 'Z')
- c += 6;
- iobuf[i+2] = c;
- }
- iobuf[i+2] = 0;
- if(iobuf[1] == 0)
- iobuf[1] = iobuf[0];
- return(iobuf);
-}
diff --git a/mdk-stage1/dietlibc/libdl/Makefile b/mdk-stage1/dietlibc/libdl/Makefile
deleted file mode 100644
index c0463f887..000000000
--- a/mdk-stage1/dietlibc/libdl/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# local "test" make file
-
-SRC = $(wildcard *.c) test/test.c
-OBJ = _dl_jump.o $(SRC:.c=.o)
-
-#CFLAGS = -Wall -O2
-CFLAGS = -g
-
-%.o : %.S
- $(HOME)/bin/diet gcc $(CFLAGS) -c -o $@ $^
-
-%.o : %.c
- $(HOME)/bin/diet gcc $(CFLAGS) -c -o $@ $^
-
-all: test.out
-
-test.g: test.c
- gcc -o $@ $^ -ldl
-
-test.out: $(OBJ)
- $(HOME)/bin/diet gcc -o $@ $^
-
-clean:
- $(RM) *.o *.a *.out *~ # *.so
diff --git a/mdk-stage1/dietlibc/libdl/README b/mdk-stage1/dietlibc/libdl/README
deleted file mode 100644
index 5d77bde34..000000000
--- a/mdk-stage1/dietlibc/libdl/README
+++ /dev/null
@@ -1,6 +0,0 @@
-this is the experimental libdl test-pre-pre-alpha code
-
-written by Olaf Dreesen
-
-Shouldn't work yet had some problems with the elf specs...
-and more inconsistencies...
diff --git a/mdk-stage1/dietlibc/libdl/_dl_int.h b/mdk-stage1/dietlibc/libdl/_dl_int.h
deleted file mode 100644
index 659e6ee0f..000000000
--- a/mdk-stage1/dietlibc/libdl/_dl_int.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef ___DL_INT_H__
-#define ___DL_INT_H__
-
-#include <elf.h>
-
-struct _dl_handle {
- /* basic */
- void * mem_base; /* base address of maped *.so */
- unsigned long mem_size; /* len of mem block */
- unsigned int lnk_count; /* reference count */
-
- /* symbol resolve helper */
- unsigned long*hash_tab; /* hash table */
- Elf32_Sym * dyn_sym_tab; /* dynamic symbol table */
- char * dyn_str_tab; /* dyn_name table */
-
- Elf32_Rel * plt_rel; /* PLT relocation table */
-
- /* FINI */
- void (*fini)(void);
-};
-
-#define HASH_BUCKET_LEN(p) ((p))
-#define HASH_BUCKET(p) ((p)+2)
-
-#define HASH_CHAIN_LEN(p) ((p)+1)
-#define HASH_CHAIN(p) ((p)+2+HASH_BUCKET_LEN(p))
-
-unsigned long elf_hash(const unsigned char *name);
-
-#endif
diff --git a/mdk-stage1/dietlibc/libdl/_dl_jump.S b/mdk-stage1/dietlibc/libdl/_dl_jump.S
deleted file mode 100644
index 134f31ea5..000000000
--- a/mdk-stage1/dietlibc/libdl/_dl_jump.S
+++ /dev/null
@@ -1,8 +0,0 @@
-.text
-.global _dl_jump
-_dl_jump:
- call do_rel
- pop %edx
- pop %edx
- jmp *%eax
-
diff --git a/mdk-stage1/dietlibc/libdl/_dl_open.c b/mdk-stage1/dietlibc/libdl/_dl_open.c
deleted file mode 100644
index 1f907db21..000000000
--- a/mdk-stage1/dietlibc/libdl/_dl_open.c
+++ /dev/null
@@ -1,207 +0,0 @@
-#include <stdio.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <dlfcn.h>
-#include <linux/elf.h>
-
-#include "_dl_int.h"
-
-struct _dl_handle dl_test;
-
-#define _ELF_DWN_ROUND(ps,n) ((n)&(~((ps)-1)))
-#define _ELF_UP_ROUND(ps,n) ((((n)&((ps)-1))?(ps):0)+ _ELF_DWN_ROUND((ps),(n)))
-#define _ELF_RST_ROUND(ps,n) ((n)&((ps)-1))
-
-void _dl_jump();
-
-/*
- * this file is a Q. & D. hack ... don't think this is bug free or meaningfull
- */
-
-static void *do_map_in(void *base, unsigned long length, int flags, int fd, unsigned long offset)
-{
- int perm = 0;
- if (flags & PF_X) perm|=PROT_EXEC;
- if (flags & PF_R) perm|=PROT_READ;
- if (flags & PF_W) perm|=PROT_WRITE;
- return mmap(base, length, perm, MAP_PRIVATE|((base)?MAP_FIXED:0), fd, offset);
-}
-
-unsigned long do_rel(struct _dl_handle * tmp_dl, unsigned long off)
-{
-// struct _dl_handle * tmp_dl = ((void*)*((&off)-1));
- Elf32_Rel *tmp = ((void*)tmp_dl->plt_rel)+off;
- int sym=ELF32_R_SYM(tmp->r_info);
- register unsigned long sym_val;
-
- printf("do_rel %08x %08x\n",tmp_dl,off);
-
- printf ("do_rel %08x+%x\n",tmp_dl->plt_rel,off);
- printf("do_rel @ %08x with type %d -> %d\n",tmp->r_offset,ELF32_R_TYPE(tmp->r_info),sym);
-
- printf("do_rel sym %08x\n",tmp_dl->dyn_sym_tab[sym].st_value);
-
- /* modify GOT for REAL symbol */
- sym_val=((unsigned long)(tmp_dl->mem_base+tmp_dl->dyn_sym_tab[sym].st_value));
- *((unsigned long*)(tmp_dl->mem_base+tmp->r_offset))=sym_val;
-
- printf("do_rel sym %08x\n",sym_val);
- /* HOWTO JUMP ?!? */
- return sym_val;
-}
-
-void *_dl_open(const char*pathname, int fd, int flag)
-{
- int ps=getpagesize();
- int i;
- unsigned char buf[1024];
- char *m=0,*d;
- struct _dl_handle *ret=0;
-
- unsigned long l;
-
- Elf32_Ehdr *eh;
- Elf32_Phdr *ph;
-
- int ld_nr=0;
- Elf32_Phdr *ld[4]={0,0,0,0};
- Elf32_Phdr *dyn=0;
-
- if (fd==-1) return 0;
-
- printf("_dl_open: %s\n",pathname);
-
- read(fd, buf, 1024);
- eh=(Elf32_Ehdr*)buf;
- ph=(Elf32_Phdr*)&buf[eh->e_phoff];
-
- for (i=0; i<eh->e_phnum; i++) {
- if (ph[i].p_type==PT_LOAD) {
- ld[ld_nr++]=ph+i;
- }
- if (ph[i].p_type==PT_DYNAMIC) {
- dyn=ph+i;
- }
- }
-
- if (ld_nr==1) {
- unsigned long offset = _ELF_DWN_ROUND(ps,ld[0]->p_offset);
- unsigned long off = _ELF_RST_ROUND(ps,ld[0]->p_offset);
- unsigned long length = _ELF_UP_ROUND(ps,ld[0]->p_memsz+off);
- m = (char*)do_map_in(0, length, ld[0]->p_flags, fd, offset);
-
- /* zero pad bss */
- l = ld[0]->p_offset+ld[0]->p_filesz;
- memset(m+l,0,length-l);
-
- dl_test.mem_base=m;
- dl_test.mem_size=length;
- dl_test.lnk_count=0;
-
- ret = &dl_test;
- }
- else if (ld_nr==2) { /* aem... yes Quick & Really Dirty / for the avarage 99% */
- //unsigned long text_addr = _ELF_DWN_ROUND(ps,ld[0]->p_vaddr);
- unsigned long text_offset = _ELF_DWN_ROUND(ps,ld[0]->p_offset);
- unsigned long text_off = _ELF_RST_ROUND(ps,ld[0]->p_offset);
- unsigned long text_size = _ELF_UP_ROUND(ps,ld[0]->p_memsz+text_off);
-
- unsigned long data_addr = _ELF_DWN_ROUND(ps,ld[1]->p_vaddr);
- unsigned long data_offset = _ELF_DWN_ROUND(ps,ld[1]->p_offset);
- unsigned long data_off = _ELF_RST_ROUND(ps,ld[1]->p_offset);
- unsigned long data_size = _ELF_UP_ROUND(ps,ld[1]->p_memsz+data_off);
- unsigned long data_fsize = _ELF_UP_ROUND(ps,ld[1]->p_filesz+data_off);
-
- /* mmap all mem_blocks for *.so */
- l = text_size+data_size;
-
- dl_test.mem_size=l;
-
- m = (char*) do_map_in(0,l,ld[0]->p_flags,fd,text_offset);
-
- /* release data,bss part */
- mprotect(m+data_addr, data_size, PROT_NONE);
-
- /* mmap data,bss part */
- d = (char*) do_map_in(m+data_addr,data_fsize,ld[1]->p_flags,fd,data_offset);
-
- /* zero pad bss */
- l = data_off+ld[1]->p_filesz;
- memset(d+l,0,data_size-l);
-
- /* more bss ? */
- if (data_size>data_fsize) {
- l = data_size-data_fsize;
- mmap(d+data_fsize, l, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0);
- }
-
- dl_test.mem_base=m;
- dl_test.lnk_count=0;
- ret = &dl_test;
- }
-
- printf("_dl_open pre resolv\n");
- if (ret) {
- Elf32_Dyn* dyn_tab = (void*)m+dyn->p_vaddr;
- void (*init)();
- unsigned long* got=0;
- void* jmprel=0;
- int pltreltype=0;
- int pltrelsize=0;
-
- printf("_dl_open IN resolv\n");
- for(i=0;dyn_tab[i].d_tag;i++) {
- if (dyn_tab[i].d_tag==DT_HASH) {
- ret->hash_tab = (unsigned long*)(m+dyn_tab[i].d_un.d_ptr);
- }
- if (dyn_tab[i].d_tag==DT_SYMTAB) {
- ret->dyn_sym_tab = (Elf32_Sym*)(m+dyn_tab[i].d_un.d_ptr);
- }
- if (dyn_tab[i].d_tag==DT_STRTAB) {
- ret->dyn_str_tab = (char*)(m+dyn_tab[i].d_un.d_ptr);
- }
- if (dyn_tab[i].d_tag==DT_FINI) {
- ret->fini = (void(*)(void))(m+dyn_tab[i].d_un.d_val);
- }
- if (dyn_tab[i].d_tag==DT_INIT) {
- init = (void(*)(void))(m+dyn_tab[i].d_un.d_val);
- printf("init @ %08x\n",init);
- }
- if (dyn_tab[i].d_tag==DT_PLTGOT) {
- got=(unsigned long*)(m+dyn_tab[i].d_un.d_val);
- }
- if (dyn_tab[i].d_tag==DT_PLTREL) {
- pltreltype=dyn_tab[i].d_un.d_val;
- }
- if (dyn_tab[i].d_tag==DT_PLTRELSZ) {
- pltrelsize=dyn_tab[i].d_un.d_val;
- }
- if (dyn_tab[i].d_tag==DT_JMPREL) {
- jmprel=(m+dyn_tab[i].d_un.d_val);
- dl_test.plt_rel=jmprel;
- }
- }
- /* GOT */
- got[0]+=(unsigned long)m;
- got[1]=(unsigned long)&dl_test;
-// got[2]=(unsigned long)do_rel;
- got[2]=(unsigned long)(_dl_jump);
- /* */
-
- if (pltreltype == DT_REL) {
- Elf32_Rel *tmp = jmprel;
- for (;(char*)tmp<(((char*)jmprel)+pltrelsize);(char*)tmp=((char*)tmp)+sizeof(Elf32_Rel)) {
- *((unsigned long*)(m+tmp->r_offset))+=(unsigned long)m;
-// *((unsigned long*)(m+tmp->r_offset))+=(unsigned long)do_rel;
- printf("rel @ %08x with type %d -> %d\n",tmp->r_offset,ELF32_R_TYPE(tmp->r_info),ELF32_R_SYM(tmp->r_info));
- }
- }
-
- printf("_dl_open post resolv, pre init\n");
- init();
- }
- printf("_dl_open post resolv, init\n");
-
- close(fd);
- return ret;
-}
diff --git a/mdk-stage1/dietlibc/libdl/_dl_search.c b/mdk-stage1/dietlibc/libdl/_dl_search.c
deleted file mode 100644
index 5e3217d46..000000000
--- a/mdk-stage1/dietlibc/libdl/_dl_search.c
+++ /dev/null
@@ -1,84 +0,0 @@
-#include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-#include <dlfcn.h>
-
-#include <fcntl.h>
-#include <stdio.h>
-
-#define WANT_LD_SO_CONF_SEARCH
-
-static const char *_dl_search_rpath=0;
-void _dl_set_rpath(const char *path) { _dl_search_rpath=path; }
-
-/* search a colon (semicolon) seperated path for the libraray "filename" */
-static int _dl_search_path(char *buf, int len, const char*path, const int pathlen, const char *filename)
-{
- int fd,l=len,i=1;
- const char *c,*pe=path+pathlen;
-
- if (path) {
- for (c=path; c<pe; c+=i) {
- if ((*c==':')||(*c==';')) ++c;
- i=strcspn(c,":;");
- if (i) {
- strncpy(buf, c, i); buf[i]=0;
- l-=i;
- strncat(buf, "/", l);
- }
- else
- buf[0]=0;
- strncat(buf, filename, --l);
-// printf("_dl_search: %s\n",buf);
- if ((fd=open(buf,O_RDONLY))!=-1) return fd;
- }
- }
- return -1;
-}
-
-/* parse the SMALL file "conf" for lib directories (aem... hang me if you can :) ) */
-static int _dl_search_conf(char *buf, int len, const char *conf, const char *filename)
-{
- char ld_so_conf[1024];
- int i,l,fd=open(conf,O_RDONLY);
- if (fd!=-1) {
- l=read(fd,ld_so_conf,sizeof(ld_so_conf)-1);
- ld_so_conf[sizeof(ld_so_conf)-1]=0;
- close(fd);
- if (ld_so_conf[l-1]=='\n') ld_so_conf[--l]=0;
- for (i=0;i<l;i++) if (ld_so_conf[i]=='\n') ld_so_conf[i]=':';
- if ((fd=_dl_search_path(buf,len,ld_so_conf,l,filename))!=-1) return fd;
- }
- return -1;
-}
-
-int _dl_search(char *buf, int len, const char *filename)
-{
- int fd;
-
- /* 1. search the LD_RUN_PATH (from the executable */
- if (_dl_search_rpath) {
- if ((fd=_dl_search_path(buf,len,_dl_search_rpath,strlen(_dl_search_rpath),filename))!=-1) return fd;
- }
-
- /* 2. IF we have a "secure" enviroment THEN search LD_LIBRARY_PATH */
- if (getuid()==geteuid()) {
- char *p=getenv("LD_LIBRARY_PATH");
- if (p)
- if ((fd=_dl_search_path(buf,len,p,strlen(p),filename))!=-1) return fd;
- }
-
- /* 3. search all pathes in the the /etc/diet.ld.conf, a dietlibc extension :) */
- if ((fd=_dl_search_conf(buf,len,"/etc/diet.ld.conf",filename))!=-1) return fd;
-
-#ifdef WANT_LD_SO_CONF_SEARCH
- /* 4. search all pathes in the the /etc/ld.so.conf / can't handle this ...=lib?? crap */
- if ((fd=_dl_search_conf(buf,len,"/etc/ld.so.conf",filename))!=-1) return fd;
-#endif
-
- /* default path search */
- {
- const char* def_path="/usr/lib:/lib";
- return _dl_search_path(buf,len,def_path,strlen(def_path),filename);
- }
-}
diff --git a/mdk-stage1/dietlibc/libdl/dlclose.c b/mdk-stage1/dietlibc/libdl/dlclose.c
deleted file mode 100644
index 384550c47..000000000
--- a/mdk-stage1/dietlibc/libdl/dlclose.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include "_dl_int.h"
-
-int dlclose (void *handle)
-{
- if (handle) {
- struct _dl_handle *h = handle;
- if (h->lnk_count) {
- --h->lnk_count;
- return -1;
- }
- if (munmap(h->mem_base,h->mem_size)!=0) return -1;
- }
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/libdl/dlerror.c b/mdk-stage1/dietlibc/libdl/dlerror.c
deleted file mode 100644
index 1e31bae54..000000000
--- a/mdk-stage1/dietlibc/libdl/dlerror.c
+++ /dev/null
@@ -1,4 +0,0 @@
-const char *dlerror(void)
-{
- return "HAE ?!?";
-}
diff --git a/mdk-stage1/dietlibc/libdl/dlopen.c b/mdk-stage1/dietlibc/libdl/dlopen.c
deleted file mode 100644
index 1693d889f..000000000
--- a/mdk-stage1/dietlibc/libdl/dlopen.c
+++ /dev/null
@@ -1,21 +0,0 @@
-#include <fcntl.h>
-#include <dlfcn.h>
-#include <limits.h>
-
-int _dl_search(char*buf, int bufsize, const char*filename);
-void *_dl_open(const char*pathname, int fd, int flag);
-
-void *dlopen (const char *filename, int flag)
-{
- int fd;
- char buf[PATH_MAX];
- const char *p;
- if (*filename=='/')
- fd=open(p=filename,O_RDONLY);
- else {
- p=buf;
- fd=_dl_search(buf,sizeof(buf),filename);
- }
-
- return _dl_open(p,fd,flag);
-}
diff --git a/mdk-stage1/dietlibc/libdl/dlsym.c b/mdk-stage1/dietlibc/libdl/dlsym.c
deleted file mode 100644
index 2af940837..000000000
--- a/mdk-stage1/dietlibc/libdl/dlsym.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include "_dl_int.h"
-
-void *dlsym(void *handle, char *symbol)
-{
- printf("dlsym(%08x,%s) -> %08x\n",handle,symbol,elf_hash(symbol)%17);
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/libdl/elf_hash.c b/mdk-stage1/dietlibc/libdl/elf_hash.c
deleted file mode 100644
index 463dba0dd..000000000
--- a/mdk-stage1/dietlibc/libdl/elf_hash.c
+++ /dev/null
@@ -1,12 +0,0 @@
-unsigned long elf_hash(const unsigned char *name)
-{
- unsigned long h=0, g;
-
- while (*name)
- {
- h = (h<<4) + *(name++);
- if (g = h&0xf0000000) h ^= g>>24;
- h &= ~g;
- }
- return h;
-}
diff --git a/mdk-stage1/dietlibc/liblatin1/latin1-iscntrl.c b/mdk-stage1/dietlibc/liblatin1/latin1-iscntrl.c
deleted file mode 100644
index b0c3605b0..000000000
--- a/mdk-stage1/dietlibc/liblatin1/latin1-iscntrl.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <ctype.h>
-
-int iscntrl(int c) {
- return (c<32) || (c>=127 && c<=160);
-}
diff --git a/mdk-stage1/dietlibc/liblatin1/latin1-isgraph.c b/mdk-stage1/dietlibc/liblatin1/latin1-isgraph.c
deleted file mode 100644
index c8d4a5df0..000000000
--- a/mdk-stage1/dietlibc/liblatin1/latin1-isgraph.c
+++ /dev/null
@@ -1,4 +0,0 @@
-int isgraph(int c) {
- return (c>=33 && c<=126) || (c>=161 && c<=255);
-}
-
diff --git a/mdk-stage1/dietlibc/liblatin1/latin1-islower.c b/mdk-stage1/dietlibc/liblatin1/latin1-islower.c
deleted file mode 100644
index cab1a5171..000000000
--- a/mdk-stage1/dietlibc/liblatin1/latin1-islower.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <ctype.h>
-
-int islower(int c) {
- return (c>='a' && c<='z') || (c>=223 && c<=255 && c!=247);
-}
diff --git a/mdk-stage1/dietlibc/liblatin1/latin1-isprint.c b/mdk-stage1/dietlibc/liblatin1/latin1-isprint.c
deleted file mode 100644
index f632483a0..000000000
--- a/mdk-stage1/dietlibc/liblatin1/latin1-isprint.c
+++ /dev/null
@@ -1,4 +0,0 @@
-
-int isprint(int c) {
- return (c>=32 && c<=126) || (c>=160 && c<=255);
-}
diff --git a/mdk-stage1/dietlibc/liblatin1/latin1-isupper.c b/mdk-stage1/dietlibc/liblatin1/latin1-isupper.c
deleted file mode 100644
index 1c1d59db8..000000000
--- a/mdk-stage1/dietlibc/liblatin1/latin1-isupper.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <ctype.h>
-
-int isupper(int c) {
- return (c>='A' && c<='Z') || (c>=192 && c<=222 && c!=215);
-}
diff --git a/mdk-stage1/dietlibc/libpthread/CHANGES b/mdk-stage1/dietlibc/libpthread/CHANGES
deleted file mode 100644
index d39d990ba..000000000
--- a/mdk-stage1/dietlibc/libpthread/CHANGES
+++ /dev/null
@@ -1,45 +0,0 @@
-This is the pthread implementation of dietlibc.
-Written from scratch by Olaf Dreesen.
-
-Thu Apr 12 16:47:12 MEST 2001
-
- added conditional variables...
- except pthread_cond_timedwait all should work man-page like
- pthread_cond_timedwait dosen't handle cancel request according to man-page
-
- added thread specific key handling (all according to man-page)
-
-Fri Mar 30 18:47:37 MEST 2001
-
- uff found some logic errors and fixed them.
- pthread_create had a problem with user provided stacks.
-
-
-Fri Mar 23 14:09:54 MET 2001
-
- arg.. the kernel-header are so inconsistent...
- on x86 it works on arm and sparc not due to MISSING defines, miss-places
- includes and __KERNEL__ checks....
- the best in this category is that the kernel-header are changed that the
- buggy (g)libc haven't to change... (f..k glibc, the headers HAVE to be
- CONSISTENT)
- a public defined symbol on arch X have to be in Y to unless marked...
- that is mainly speaking SCHED.H ! arg....
-
-
-Wed Mar 14 04:28:45 MET 2001
-
- I have implemented the "Manager Thread" so that nested thread creation
- works. really ugly stuff... don't look at it unless you're sitting on solid
- ground.
-
-
-Mon Mar 12 16:16:00 CET 2001
-
- first of all:
- I strongly suggest NOT to use it yet, it's very, very, ... very
- experimental. I guess you got the point. there is still much debug code,
- incomplete functions and unusable states....
-
- I'm still working on the final alpha...
-
diff --git a/mdk-stage1/dietlibc/libpthread/Makefile b/mdk-stage1/dietlibc/libpthread/Makefile
deleted file mode 100644
index 06420f43a..000000000
--- a/mdk-stage1/dietlibc/libpthread/Makefile
+++ /dev/null
@@ -1,139 +0,0 @@
-all: libpthread.a
-
-ARCH=$(shell uname -m | sed 's/i[4-9]86/i386/')
-
-CFLAGS=-pipe
-CROSS=
-
-CC=gcc
-
-VPATH=../$(ARCH)/
-
-PTHREAD_OBJS = \
- __testandset.o \
- \
- thread_internal.o \
- thread_key.o \
- \
- pthread_once.o pthread_spinlock.o \
- \
- pthread_create.o pthread_detach.o \
- pthread_join.o pthread_self.o \
- pthread_exit.o \
- \
- pthread_cleanup_push.o \
- pthread_cleanup_pop.o \
- \
- pthread_attr_getdetachstate.o \
- pthread_attr_getinheritsched.o \
- pthread_attr_getschedparam.o \
- pthread_attr_getschedpolicy.o \
- pthread_attr_getscope.o \
- pthread_attr_getstackaddr.o \
- pthread_attr_getstacksize.o \
- pthread_attr_init.o \
- pthread_attr_setdetachstate.o \
- pthread_attr_setinheritsched.o \
- pthread_attr_setschedparam.o \
- pthread_attr_setschedpolicy.o \
- pthread_attr_setscope.o \
- pthread_attr_setstackaddr.o \
- pthread_attr_setstacksize.o \
- \
- pthread_cancel.o pthread_setcancelstate.o \
- pthread_setcanceltype.o pthread_testcancel.o \
- \
- pthread_mutex_init.o \
- pthread_mutex_destroy.o \
- pthread_mutex_lock.o \
- pthread_mutex_trylock.o \
- pthread_mutex_unlock.o \
- \
- pthread_mutexattr_getkind_np.o \
- pthread_mutexattr_init.o \
- pthread_mutexattr_setkind_np.o \
- \
- pthread_condattr.o \
- pthread_cond_broadcast.o \
- pthread_cond_destroy.o \
- pthread_cond_init.o \
- pthread_cond_signal.o \
- pthread_cond_timedwait.o \
- pthread_cond_wait.o \
- \
- pthread_key_create.o \
- pthread_key_delete.o \
- pthread_getspecific.o \
- pthread_setspecific.o \
- \
- pthread_atfork.o \
- pthread_sys_alloc.o \
- pthread_sys_close.o \
- pthread_sys_create.o \
- pthread_sys_fcntl.o \
- pthread_sys_fsync.o \
- pthread_sys_nanosleep.o \
- pthread_sys_logging.o \
- pthread_sys_open.o \
- pthread_sys_pause.o \
- pthread_sys_read.o \
- pthread_sys_sigsuspend.o \
- pthread_sys_tcdrain.o \
- pthread_sys_waitpid.o \
- pthread_sys_write.o
-
-%.o : %.c
- $(CC) $(CFLAGS) -c -o $@ $?
-
-include ../$(ARCH)/Makefile.add
-
-ifeq ($(CFLAGS),-pipe)
-CFLAGS+=-O -fomit-frame-pointer
-endif
-
-#CFLAGS = -g
-CFLAGS += -Wall
-
-CFLAGS += -I.. -I../include -Wall
-
-PWD=$(shell pwd)
-
-.SUFFIXES:
-.SUFFIXES: .S .c
-
-% :: %,v
-
-%.o: %.S
- $(CROSS)$(CC) -I. -Iinclude $(CFLAGS) -c $<
-
-%.o: %.c
- $(CROSS)$(CC) -I. -Iinclude $(CFLAGS) -c $<
-# $(CROSS)strip -x -R .comment -R .note $@
-
-libpthread.a: $(PTHREAD_OBJS)
- ar cr $@ $^
-
-libpthread.so: libpthread.a
- $(CROSS)ld -whole-archive -shared -o $@ $^
-
-
-clean:
- $(RM) *.o *.a *.so *.out *~
-
-exports: libpthread.a
- nm -g libpthread.a | grep -w T | awk '{ print $$3 }' | sort -u > exports
-
-.PHONY: test.out
-
-test.out: test.o libpthread.a $(LIBS)
- $(CROSS)$(CC) -g $(CFLAGS) -nostdlib ../bin-$(ARCH)/start.o -o $@ $^ ../bin-$(ARCH)/dietlibc.a -lgcc
-
-
-.PHONY: sparc ppc mips arm alpha i386
-
-sparc ppc alpha i386:
- $(MAKE) ARCH=$@ CROSS=$@-linux- all t libdietc.so
-
-mips arm:
- $(MAKE) ARCH=$@ CROSS=$@-linux-gnu- all t libdietc.so
-
diff --git a/mdk-stage1/dietlibc/libpthread/README b/mdk-stage1/dietlibc/libpthread/README
deleted file mode 100644
index 3139c731d..000000000
--- a/mdk-stage1/dietlibc/libpthread/README
+++ /dev/null
@@ -1,42 +0,0 @@
-LIBPTHREAD
-
- This is the pthread implementation of dietlibc.
- Written from scratch by Olaf Dreesen.
-
-1. STATUS: incomplete but should work (or not... I had a lot of heisen-bugs...)
- On non i386 archs the kernel header have major differences...
- NO workaround yet for this problems...
-
-It's like linuxthreads a clone base thread implementation.
-
-I have implemented a "Manager Thread" with all the pain it involves...
-Nested thread creation is now working fine...
-
-
-2. HOW-TO make this lib:
-
- 1. generate the dietlibc in the parent directory.
- and make sure you have WANT_THREAD_SAVE active in the file:
- dietfeatures.h
-
- 2. change back here and type make
-
- and then you should have a libpthread.a
-
-
-3. NOTES
-
-NON STANDARD SIGNAL HANDLING for the threads:
-
- SIGHUP the targeted thread is canceled
- depends on the cancel type of the thread.
-
- ASYNCHRONOUS: the signal handler will KILL the thread immediately.
-
- DEFERRED: the signal handler mark its thread as canceled.
- (only for the sig-handler to do some sane stuff...)
-
- SIGTERM the thread is KILLED
- if the thread signaled is the main thread, then ALL child-threads
- will get a SIGHUP and after some micros a SIGTERM....
-
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_atfork.c b/mdk-stage1/dietlibc/libpthread/pthread_atfork.c
deleted file mode 100644
index 2dc612dcc..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_atfork.c
+++ /dev/null
@@ -1,77 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-#define PTHREAD_NUM_ATFORK 4
-
-static struct _pthread_fastlock __atfork_struct_lock;
-static struct {
- int used;
- void (*prepare)(void);
- void (*parent)(void);
- void (*child)(void);
-} pthread_atfork_buf[PTHREAD_NUM_ATFORK];
-
-int pthread_atfork(void (*prepare)(void),
- void (*parent)(void),
- void (*child)(void))
-{
- int i,ret=-1;
-
- __NO_ASYNC_CANCEL_BEGIN;
- __pthread_lock(&__atfork_struct_lock);
-
- for (i=0;i<PTHREAD_NUM_ATFORK; ++i) {
- if (!(pthread_atfork_buf[i].used)) {
- pthread_atfork_buf[i].prepare=prepare;
- pthread_atfork_buf[i].parent=parent;
- pthread_atfork_buf[i].child=child;
- ret=0;
- break;
- }
- }
-
- __pthread_unlock(&__atfork_struct_lock);
- __NO_ASYNC_CANCEL_END;
-
- if (ret) (*(__errno_location()))=ENOMEM;
- return ret;
-}
-
-pid_t fork(void)
-{
- pid_t pid;
- int i=PTHREAD_NUM_ATFORK;
-
- __NO_ASYNC_CANCEL_BEGIN;
-
- __TEST_CANCEL();
- __pthread_lock(&__atfork_struct_lock);
-
- while (i) {
- if (pthread_atfork_buf[--i].used)
- if (pthread_atfork_buf[i].prepare)
- pthread_atfork_buf[i].prepare();
- }
-
- pid=__libc_fork();
-
- if (pid>0) { /* parent */
- for (i=0;i<PTHREAD_NUM_ATFORK;++i)
- if (pthread_atfork_buf[i].used)
- if (pthread_atfork_buf[i].parent)
- pthread_atfork_buf[i].parent();
- } else if (pid==0) { /* child */
- for (i=0;i<PTHREAD_NUM_ATFORK;++i)
- if (pthread_atfork_buf[i].used)
- if (pthread_atfork_buf[i].child)
- pthread_atfork_buf[i].child();
- }
-
- __pthread_unlock(&__atfork_struct_lock);
- __NO_ASYNC_CANCEL_END;
-
- return pid;
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_attr_getdetachstate.c b/mdk-stage1/dietlibc/libpthread/pthread_attr_getdetachstate.c
deleted file mode 100644
index ccdfc0e47..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_attr_getdetachstate.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_attr_getdetachstate(const pthread_attr_t *attr, int *detachstate)
-{
- __THREAD_INIT();
-
- *detachstate=attr->__detachstate;
- return 0;
-}
-
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_attr_getinheritsched.c b/mdk-stage1/dietlibc/libpthread/pthread_attr_getinheritsched.c
deleted file mode 100644
index 314fd8ade..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_attr_getinheritsched.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_attr_getinheritsched(const pthread_attr_t *attr, int *inherit)
-{
- __THREAD_INIT();
-
- *inherit = attr->__inheritsched;
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_attr_getschedparam.c b/mdk-stage1/dietlibc/libpthread/pthread_attr_getschedparam.c
deleted file mode 100644
index f0a9a07d1..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_attr_getschedparam.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_attr_getschedparam(const pthread_attr_t *attr, struct sched_param *param)
-{
- __THREAD_INIT();
-
- param->sched_priority=attr->__schedparam.sched_priority;
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_attr_getschedpolicy.c b/mdk-stage1/dietlibc/libpthread/pthread_attr_getschedpolicy.c
deleted file mode 100644
index 53f1bed8c..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_attr_getschedpolicy.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_attr_getschedpolicy(const pthread_attr_t *attr, int *policy)
-{
- __THREAD_INIT();
-
- *policy = attr->__schedpolicy;
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_attr_getscope.c b/mdk-stage1/dietlibc/libpthread/pthread_attr_getscope.c
deleted file mode 100644
index 99a33110d..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_attr_getscope.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_attr_getscope(const pthread_attr_t *attr, int *scope)
-{
- __THREAD_INIT();
-
- *scope=PTHREAD_SCOPE_SYSTEM;
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_attr_getstackaddr.c b/mdk-stage1/dietlibc/libpthread/pthread_attr_getstackaddr.c
deleted file mode 100644
index d71421901..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_attr_getstackaddr.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_attr_getstackaddr(pthread_attr_t *attr, void **stack)
-{
- __THREAD_INIT();
-
- *stack=attr->__stackaddr;
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_attr_getstacksize.c b/mdk-stage1/dietlibc/libpthread/pthread_attr_getstacksize.c
deleted file mode 100644
index 4785979a0..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_attr_getstacksize.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_attr_getstacksize(pthread_attr_t *attr, size_t *stacksize)
-{
- __THREAD_INIT();
-
- *stacksize=attr->__stacksize;
- return 0;
-}
-
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_attr_init.c b/mdk-stage1/dietlibc/libpthread/pthread_attr_init.c
deleted file mode 100644
index 726e88fe5..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_attr_init.c
+++ /dev/null
@@ -1,17 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_attr_init(pthread_attr_t *attr)
-{
- __THREAD_INIT();
-
- memset(attr,0,sizeof(pthread_attr_t));
- attr->__stacksize=PTHREAD_STACK_SIZE;
- return 0;
-}
-
-int pthread_attr_destroy(pthread_attr_t *attr) __attribute__((alias("pthread_attr_init")));
-
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_attr_setdetachstate.c b/mdk-stage1/dietlibc/libpthread/pthread_attr_setdetachstate.c
deleted file mode 100644
index 690ad5f8e..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_attr_setdetachstate.c
+++ /dev/null
@@ -1,18 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate)
-{
- __THREAD_INIT();
-
- if ((detachstate == PTHREAD_CREATE_JOINABLE) ||
- (detachstate == PTHREAD_CREATE_DETACHED)) {
- attr->__detachstate=detachstate;
- return 0;
- }
- (*(__errno_location()))=EINVAL;
- return -1;
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_attr_setinheritsched.c b/mdk-stage1/dietlibc/libpthread/pthread_attr_setinheritsched.c
deleted file mode 100644
index f38e6e35e..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_attr_setinheritsched.c
+++ /dev/null
@@ -1,18 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_attr_setinheritsched(pthread_attr_t *attr, int inherit)
-{
- __THREAD_INIT();
-
- if ((inherit==PTHREAD_INHERIT_SCHED) ||
- (inherit==PTHREAD_EXPLICIT_SCHED)) {
- attr->__inheritsched=inherit;
- return 0;
- }
- (*(__errno_location()))=EINVAL;
- return -1;
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_attr_setschedparam.c b/mdk-stage1/dietlibc/libpthread/pthread_attr_setschedparam.c
deleted file mode 100644
index 833c0111b..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_attr_setschedparam.c
+++ /dev/null
@@ -1,23 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_attr_setschedparam(pthread_attr_t *attr, const struct sched_param *param)
-{
- __THREAD_INIT();
-
- if ((attr->__schedpolicy == SCHED_OTHER) && (param->sched_priority == 0)) {
- attr->__schedparam.sched_priority=0;
- return 0;
- }
- if (((attr->__schedpolicy == SCHED_RR) || (attr->__schedpolicy == SCHED_RR))
- && ((param->sched_priority > 0) && (param->sched_priority < 100))) {
- attr->__schedparam.sched_priority=param->sched_priority;
- return 0;
- }
- (*(__errno_location()))=EINVAL;
- return -1;
-}
-
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_attr_setschedpolicy.c b/mdk-stage1/dietlibc/libpthread/pthread_attr_setschedpolicy.c
deleted file mode 100644
index e845bca32..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_attr_setschedpolicy.c
+++ /dev/null
@@ -1,25 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy)
-{
- __THREAD_INIT();
-
- if (policy==SCHED_OTHER) {
- attr->__schedpolicy=policy;
- return 0;
- }
- if ((policy==SCHED_FIFO) || (policy==SCHED_RR)) {
- if (geteuid()==0) {
- attr->__schedpolicy=policy;
- return 0;
- }
- (*(__errno_location()))=ENOTSUP;
- }
- else
- (*(__errno_location()))=EINVAL;
- return -1;
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_attr_setscope.c b/mdk-stage1/dietlibc/libpthread/pthread_attr_setscope.c
deleted file mode 100644
index 39088c9b2..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_attr_setscope.c
+++ /dev/null
@@ -1,18 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_attr_setscope(pthread_attr_t *attr, int scope)
-{
- __THREAD_INIT();
-
- if (scope==PTHREAD_SCOPE_SYSTEM) return 0;
-
- if (scope==PTHREAD_SCOPE_PROCESS)
- (*(__errno_location()))=ENOTSUP;
- else
- (*(__errno_location()))=EINVAL;
- return -1;
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_attr_setstackaddr.c b/mdk-stage1/dietlibc/libpthread/pthread_attr_setstackaddr.c
deleted file mode 100644
index 4b320cd9d..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_attr_setstackaddr.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_attr_setstackaddr(pthread_attr_t *attr, void *stack)
-{
- __THREAD_INIT();
-
- attr->__stackaddr=stack;
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_attr_setstacksize.c b/mdk-stage1/dietlibc/libpthread/pthread_attr_setstacksize.c
deleted file mode 100644
index cfbab7747..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_attr_setstacksize.c
+++ /dev/null
@@ -1,17 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize)
-{
- __THREAD_INIT();
-
- if (stacksize>=PTHREAD_STACK_SIZE) {
- attr->__stacksize=stacksize;
- return 0;
- }
- (*(__errno_location()))=EINVAL;
- return -1;
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_cancel.c b/mdk-stage1/dietlibc/libpthread/pthread_cancel.c
deleted file mode 100644
index 4c87a3ed1..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_cancel.c
+++ /dev/null
@@ -1,35 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_cancel(pthread_t th)
-{
- pthread_t j;
- _pthread_descr thread;
-
- __THREAD_INIT();
-
- j=__find_thread_id(th);
-
- if (j==-1) {
- (*(__errno_location()))=ESRCH;
- return -1;
- }
- thread = __get_thread_struct(j);
-
- if (thread==0) {
- (*(__errno_location()))=ESRCH;
- return -1;
- }
-
- if (thread->cancelstate!=PTHREAD_CANCEL_DISABLE) {
- thread->canceled=1;
- if (thread->canceltype!=PTHREAD_CANCEL_DEFERRED) {
- kill(thread->pid,SIGHUP);
- }
- }
-
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_cleanup_pop.c b/mdk-stage1/dietlibc/libpthread/pthread_cleanup_pop.c
deleted file mode 100644
index 641bb6083..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_cleanup_pop.c
+++ /dev/null
@@ -1,27 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-void pthread_cleanup_pop(int execute)
-{
- _pthread_descr this;
- struct thread_cleanup_t tmp;
- int i=PTHREAD_MAX_CLEANUP;
-
- __THREAD_INIT();
-
- this = __thread_self();
-
- while(i>0) {
- if (this->cleanup_stack[--i].func) {
- tmp.func=this->cleanup_stack[i].func;
- tmp.arg=this->cleanup_stack[i].arg;
- this->cleanup_stack[i].func=0;
- break;
- }
- }
-
- if (execute) tmp.func(tmp.arg);
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_cleanup_push.c b/mdk-stage1/dietlibc/libpthread/pthread_cleanup_push.c
deleted file mode 100644
index cd2aabf71..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_cleanup_push.c
+++ /dev/null
@@ -1,23 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-void pthread_cleanup_push(void (*func)(void*), void *arg)
-{
- _pthread_descr this;
- int i;
-
- __THREAD_INIT();
-
- this = __thread_self();
-
- for (i=0; i<PTHREAD_MAX_CLEANUP; ++i) {
- if (this->cleanup_stack[i].func==0) {
- this->cleanup_stack[i].func=func;
- this->cleanup_stack[i].arg=arg;
- break;
- }
- }
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_cond_broadcast.c b/mdk-stage1/dietlibc/libpthread/pthread_cond_broadcast.c
deleted file mode 100644
index d3c2274f3..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_cond_broadcast.c
+++ /dev/null
@@ -1,23 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_cond_broadcast(pthread_cond_t *cond)
-{
- _pthread_descr tmp;
-
- __THREAD_INIT();
-
- __pthread_lock(&(cond->lock));
- while ((tmp=cond->wait_chain)) {
- cond->wait_chain=tmp->waitnext;
- tmp->waitnext=0;
- tmp->waiting=0;
- }
- __pthread_unlock(&(cond->lock));
-
- return 0;
-}
-
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_cond_destroy.c b/mdk-stage1/dietlibc/libpthread/pthread_cond_destroy.c
deleted file mode 100644
index 9a6cc4f0b..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_cond_destroy.c
+++ /dev/null
@@ -1,19 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_cond_destroy(pthread_cond_t *cond)
-{
- __THREAD_INIT();
-
- if (cond->wait_chain) {
- (*__errno_location())=EBUSY;
- return 1;
- }
-
- memset(cond,0,sizeof(pthread_cond_t));
- return 0;
-}
-
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_cond_init.c b/mdk-stage1/dietlibc/libpthread/pthread_cond_init.c
deleted file mode 100644
index 20b38bef2..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_cond_init.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_cond_init(pthread_cond_t *cond, pthread_condattr_t *cond_attr)
-{
- __THREAD_INIT();
-
- memset(cond,0,sizeof(pthread_cond_t));
- return 0;
-}
-
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_cond_signal.c b/mdk-stage1/dietlibc/libpthread/pthread_cond_signal.c
deleted file mode 100644
index 60bf2119c..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_cond_signal.c
+++ /dev/null
@@ -1,24 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_cond_signal(pthread_cond_t *cond)
-{
- _pthread_descr tmp=0;
-
- __THREAD_INIT();
-
- __pthread_lock(&(cond->lock));
- if ((tmp=cond->wait_chain)) cond->wait_chain=tmp->waitnext;
- __pthread_unlock(&(cond->lock));
-
- if (tmp) {
- tmp->waitnext=0;
- tmp->waiting=0;
- }
-
- return 0;
-}
-
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_cond_timedwait.c b/mdk-stage1/dietlibc/libpthread/pthread_cond_timedwait.c
deleted file mode 100644
index 6613f2ca9..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_cond_timedwait.c
+++ /dev/null
@@ -1,43 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex,
- const struct timespec *abstime)
-{
- _pthread_descr tmp;
- _pthread_descr this;
- int ret;
-
- __THREAD_INIT();
-
- this=__thread_self();
-
- /* put in wait-chain */
- __pthread_lock(&(cond->lock));
- this->waiting=1;
- if (cond->wait_chain) {
- for(tmp=cond->wait_chain;tmp->waitnext;tmp=tmp->waitnext);
- tmp->waitnext=this;
- } else cond->wait_chain=this;
- __pthread_unlock(&(cond->lock));
-
- /* Aeh yeah / wait till signal */
- pthread_mutex_unlock(mutex);
- ret=nanosleep(abstime,0);
- pthread_mutex_lock(mutex);
-
- __TEST_CANCEL();
-
- if (ret) {
- if ((*__errno_location())!=EINTR) return -1;
- return 0;
- }
-
- (*__errno_location())=ETIMEDOUT;
- return -1;
-}
-
-
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_cond_wait.c b/mdk-stage1/dietlibc/libpthread/pthread_cond_wait.c
deleted file mode 100644
index 0c6c0ae13..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_cond_wait.c
+++ /dev/null
@@ -1,37 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)
-{
- _pthread_descr tmp;
- _pthread_descr this;
-
- __THREAD_INIT();
-
- this=__thread_self();
-
- /* put in wait-chain */
- __pthread_lock(&(cond->lock));
- this->waiting=1;
- if (cond->wait_chain) {
- for(tmp=cond->wait_chain;tmp->waitnext;tmp=tmp->waitnext);
- tmp->waitnext=this;
- } else cond->wait_chain=this;
- __pthread_unlock(&(cond->lock));
-
- /* Aeh yeah / wait till signal */
- pthread_mutex_unlock(mutex);
- while (this->waiting) {
- __thread_wait_some_time();
- if (this->canceled) this->waiting=0; /* we got a cancel signal */
- }
- pthread_mutex_lock(mutex);
-
- __TEST_CANCEL();
- return 0;
-}
-
-
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_condattr.c b/mdk-stage1/dietlibc/libpthread/pthread_condattr.c
deleted file mode 100644
index c537890ba..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_condattr.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <pthread.h>
-
-int pthread_condattr_init(pthread_condattr_t *attr)
-{
- return 0;
-}
-
-int pthread_condattr_destroy(pthread_condattr_t *attr)
-__attribute__((alias("pthread_condattr_init")));
-
-int pthread_condattr_getpshared(const pthread_condattr_t *attr, int *pshared)
-__attribute__((alias("pthread_condattr_init")));
-
-int pthread_condattr_setpshared(pthread_condattr_t *attr, int pshared)
-__attribute__((alias("pthread_condattr_init")));
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_create.c b/mdk-stage1/dietlibc/libpthread/pthread_create.c
deleted file mode 100644
index b4a499081..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_create.c
+++ /dev/null
@@ -1,76 +0,0 @@
-#include <unistd.h>
-#include <stdlib.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_create (pthread_t *thread, const pthread_attr_t *attr,
- void *(*start_routine) (void *), void *arg)
-{
- int ret=0;
- _pthread_descr td;
- pthread_attr_t default_attr;
-
- __THREAD_INIT();
-
- if (start_routine==0) {
- (*(__errno_location()))=EINVAL;
- return -1;
- }
-
- td = __thread_get_free();
-
- if (td) {
- if (!(attr)) {
- pthread_attr_init(&default_attr);
- attr=&default_attr;
- }
-
- if ((td->policy!=SCHED_OTHER)&&(td->priority==0)) {
- (*(__errno_location()))=EINVAL;
- return -1;
- }
-
- if (attr->__inheritsched==PTHREAD_INHERIT_SCHED) {
- _pthread_descr this = __thread_self();
- td->policy = this->policy;
- td->priority = this->priority;
- } else {
- td->policy = attr->__schedpolicy;
- td->priority = attr->__schedparam.sched_priority;
- }
-
- td->func = start_routine;
- td->arg = arg;
-
- td->detached = attr->__detachstate;
-
- td->stack_size = attr->__stacksize;
-
- if (!(td->stack_addr)) {
- char *stack=(char*)malloc(td->stack_size);
- if (!(stack)) {
- (*(__errno_location()))=EINVAL;
- return -1;
- }
- td->stack_begin = stack;
- td->stack_addr = stack+td->stack_size;
- } else {
- td->stack_begin = 0;
- td->stack_addr = attr->__stackaddr;
- }
-
- ret = signal_manager_thread(td);
-
- if (ret>1)
- *thread=ret;
- else
- __thread_cleanup(td);
- }
- else
- (*(__errno_location()))=EAGAIN;
-
- if (ret<2) return -1;
- return ret;
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_detach.c b/mdk-stage1/dietlibc/libpthread/pthread_detach.c
deleted file mode 100644
index c07280389..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_detach.c
+++ /dev/null
@@ -1,36 +0,0 @@
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_detach(pthread_t th)
-{
- pthread_t j;
- _pthread_descr thread;
-
- __THREAD_INIT();
-
- j=__find_thread_id(th);
-
- if (j==-1) {
- (*(__errno_location()))=ESRCH;
- return -1;
- }
- thread = __get_thread_struct(j);
-
- if (thread==0) {
- (*(__errno_location()))=ESRCH;
- return -1;
- }
-
- if (thread->detached) {
- (*(__errno_location()))=EINVAL;
- return -1;
- }
-
- if (!thread->joined) {
- thread->detached=1;
- }
-
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_exit.c b/mdk-stage1/dietlibc/libpthread/pthread_exit.c
deleted file mode 100644
index 41eac0a33..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_exit.c
+++ /dev/null
@@ -1,17 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-void pthread_exit(void *retval)
-{
- _pthread_descr this;
-
- __THREAD_INIT();
-
- this = __thread_self();
- this->retval = retval;
-
- longjmp(this->jmp_exit,1);
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_getspecific.c b/mdk-stage1/dietlibc/libpthread/pthread_getspecific.c
deleted file mode 100644
index c2f84c814..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_getspecific.c
+++ /dev/null
@@ -1,20 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-extern struct _thread_key __thread_keys[PTHREAD_KEYS_MAX];
-const void *pthread_getspecific(pthread_key_t key)
-{
- int id;
- __THREAD_INIT();
-
- id=__find_thread_id(getpid());
-
- if ((key<PTHREAD_KEYS_MAX) && (__thread_keys[key].used)) {
- return __thread_keys[key].tkd[id];
- }
- return 0;
-}
-
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_join.c b/mdk-stage1/dietlibc/libpthread/pthread_join.c
deleted file mode 100644
index 5b295bad1..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_join.c
+++ /dev/null
@@ -1,50 +0,0 @@
-#include <unistd.h>
-#include <stdlib.h>
-#include <errno.h>
-
-#include "thread_internal.h"
-#include <pthread.h>
-
-int pthread_join(pthread_t th, void **thread_return)
-{
- pthread_t j;
- _pthread_descr this, thread;
-
- __THREAD_INIT();
-
- this = __thread_self();
- j=__find_thread_id(th);
-
- if (j==-1) {
- (*(__errno_location()))=ESRCH;
- return -1;
- }
-
- thread = __get_thread_struct(j);
-
- /* error handling */
- if (thread==0) {
- (*(__errno_location()))=ESRCH;
- return -1;
- }
-
- if (this==thread) {
- (*(__errno_location()))=EDEADLK;
- return -1;
- }
-
- if (thread->detached || thread->joined) {
- (*(__errno_location()))=EINVAL;
- return -1;
- }
-
- thread->joined=this;
- this->join=1;
-
- while(this->join) __thread_wait_some_time();
-
- if (thread_return) *thread_return=this->retval;
-
- return 0;
-}
-
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_key_create.c b/mdk-stage1/dietlibc/libpthread/pthread_key_create.c
deleted file mode 100644
index 44fccea6a..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_key_create.c
+++ /dev/null
@@ -1,35 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-extern struct _pthread_fastlock __thread_keys_lock;
-extern struct _thread_key __thread_keys[PTHREAD_KEYS_MAX];
-int pthread_key_create(pthread_key_t *key, void (*destructor)(const void*))
-{
- int ret=-1,i;
-
- __THREAD_INIT();
-
- __NO_ASYNC_CANCEL_BEGIN;
- __pthread_lock(&__thread_keys_lock);
-
- for (i=0; i<PTHREAD_KEYS_MAX; i++) {
- if (!__thread_keys[i].used) {
- __thread_keys[i].used=1;
- __thread_keys[i].destructor=destructor;
- memset(__thread_keys[i].tkd,0,PTHREAD_THREADS_MAX*sizeof(struct _thread_key));
- *key=i;
- ret=0;
- break;
- }
- }
-
- __pthread_unlock(&__thread_keys_lock);
- __NO_ASYNC_CANCEL_END;
-
- if (ret) (*__errno_location())=EAGAIN;
- return ret;
-}
-
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_key_delete.c b/mdk-stage1/dietlibc/libpthread/pthread_key_delete.c
deleted file mode 100644
index b1bc366e2..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_key_delete.c
+++ /dev/null
@@ -1,21 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-extern struct _thread_key __thread_keys[PTHREAD_KEYS_MAX];
-int pthread_key_delete(pthread_key_t key)
-{
- __THREAD_INIT();
-
- if (key>=PTHREAD_KEYS_MAX) {
- (*__errno_location())=EINVAL;
- return -1;
- }
-
- __thread_keys[key].used=0;
-
- return 0;
-}
-
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_mutex_destroy.c b/mdk-stage1/dietlibc/libpthread/pthread_mutex_destroy.c
deleted file mode 100644
index 33a16abd4..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_mutex_destroy.c
+++ /dev/null
@@ -1,16 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_mutex_destroy(pthread_mutex_t *mutex)
-{
- __THREAD_INIT();
-
- if ((mutex->owner)||(mutex->lock.__spinlock)) {
- (*(__errno_location()))=EBUSY;
- return -1;
- }
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_mutex_init.c b/mdk-stage1/dietlibc/libpthread/pthread_mutex_init.c
deleted file mode 100644
index b1797fb20..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_mutex_init.c
+++ /dev/null
@@ -1,18 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_mutex_init(pthread_mutex_t *mutex,
- const pthread_mutexattr_t *mutexattr)
-{
- __THREAD_INIT();
-
- memset(mutex,0,sizeof(pthread_mutex_t));
- if (mutexattr) {
- mutex->kind=mutexattr->__mutexkind;
- }
- return 0;
-}
-
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_mutex_lock.c b/mdk-stage1/dietlibc/libpthread/pthread_mutex_lock.c
deleted file mode 100644
index 0c3ade9e8..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_mutex_lock.c
+++ /dev/null
@@ -1,33 +0,0 @@
-#include <unistd.h>
-#include <sched.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-/* will never return EINVAL ! */
-
-int pthread_mutex_lock(pthread_mutex_t *mutex)
-{
- _pthread_descr this;
-
- __THREAD_INIT();
-
- this = __thread_self();
-
- if (this!=mutex->owner) {
- /* wait for mutex to free */
- __pthread_lock(&(mutex->lock));
-
- mutex->owner=this;
- }
- else if (mutex->kind==PTHREAD_MUTEX_ERRORCHECK_NP)
- {
- (*(__errno_location()))=EDEADLK;
- return -1;
- }
-
- if (mutex->kind==PTHREAD_MUTEX_RECURSIVE_NP) ++(mutex->count);
-
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_mutex_trylock.c b/mdk-stage1/dietlibc/libpthread/pthread_mutex_trylock.c
deleted file mode 100644
index fcf63f75e..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_mutex_trylock.c
+++ /dev/null
@@ -1,36 +0,0 @@
-#include <unistd.h>
-#include <sched.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-/* will never return EINVAL ! */
-
-int pthread_mutex_trylock(pthread_mutex_t *mutex)
-{
- _pthread_descr this;
-
- __THREAD_INIT();
-
- this = __thread_self();
-
- if (this!=mutex->owner) {
- /* wait for mutex to free */
- if (__pthread_trylock(&(mutex->lock))) {
- (*(__errno_location()))=EBUSY;
- return -1;
- }
-
- mutex->owner=this;
- }
- else if (mutex->kind==PTHREAD_MUTEX_ERRORCHECK_NP)
- {
- (*(__errno_location()))=EDEADLK;
- return -1;
- }
-
- if (mutex->kind==PTHREAD_MUTEX_RECURSIVE_NP) ++(mutex->count);
-
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_mutex_unlock.c b/mdk-stage1/dietlibc/libpthread/pthread_mutex_unlock.c
deleted file mode 100644
index 0b5a1d0f7..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_mutex_unlock.c
+++ /dev/null
@@ -1,34 +0,0 @@
-#include <unistd.h>
-#include <sched.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-/* will never return EINVAL ! */
-
-int pthread_mutex_unlock(pthread_mutex_t *mutex)
-{
- _pthread_descr this;
-
- __THREAD_INIT();
-
- this = __thread_self();
-
- if (this==mutex->owner) {
- if (mutex->kind==PTHREAD_MUTEX_RECURSIVE_NP) {
- if (--(mutex->count))
- return 0;
- }
-
- mutex->owner=0;
- __pthread_unlock(&(mutex->lock));
- }
- else if (mutex->kind==PTHREAD_MUTEX_ERRORCHECK_NP)
- {
- (*(__errno_location()))=EPERM;
- return -1;
- }
-
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_mutexattr_getkind_np.c b/mdk-stage1/dietlibc/libpthread/pthread_mutexattr_getkind_np.c
deleted file mode 100644
index 63cd9133c..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_mutexattr_getkind_np.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_mutexattr_getkind_np(const pthread_mutexattr_t *attr, int *kind)
-{
- __THREAD_INIT();
-
- *kind=attr->__mutexkind;
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_mutexattr_init.c b/mdk-stage1/dietlibc/libpthread/pthread_mutexattr_init.c
deleted file mode 100644
index ff60e4c74..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_mutexattr_init.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_mutexattr_init(pthread_mutexattr_t *attr)
-{
- __THREAD_INIT();
-
- attr->__mutexkind = 0;
- return 0;
-}
-
-int pthread_mutexattr_destroy(pthread_mutexattr_t *attr) __attribute__((alias ("pthread_mutexattr_init")));
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_mutexattr_setkind_np.c b/mdk-stage1/dietlibc/libpthread/pthread_mutexattr_setkind_np.c
deleted file mode 100644
index ac600f8ed..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_mutexattr_setkind_np.c
+++ /dev/null
@@ -1,18 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_mutexattr_setkind_np(pthread_mutexattr_t *attr, int kind)
-{
- __THREAD_INIT();
-
- if ((kind==PTHREAD_MUTEX_FAST_NP) || (kind==PTHREAD_MUTEX_RECURSIVE_NP) ||
- (kind==PTHREAD_MUTEX_ERRORCHECK_NP)) {
- attr->__mutexkind=kind;
- return 0;
- }
- (*(__errno_location()))=EINVAL;
- return -1;
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_once.c b/mdk-stage1/dietlibc/libpthread/pthread_once.c
deleted file mode 100644
index 16d9cb392..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_once.c
+++ /dev/null
@@ -1,9 +0,0 @@
-#include <pthread.h>
-#include "thread_internal.h"
-
-int __pthread_once (pthread_once_t* once_control, void (*init_routine)(void))
-{
- if (!(__testandset(once_control))) init_routine();
- return 0;
-}
-int pthread_once (pthread_once_t* once_control, void (*init_routine)(void)) __attribute__((alias("__pthread_once")));
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_self.c b/mdk-stage1/dietlibc/libpthread/pthread_self.c
deleted file mode 100644
index 394686dd4..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_self.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <unistd.h>
-#include <pthread.h>
-
-pthread_t pthread_self() { return getpid(); }
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_setcancelstate.c b/mdk-stage1/dietlibc/libpthread/pthread_setcancelstate.c
deleted file mode 100644
index b906492fb..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_setcancelstate.c
+++ /dev/null
@@ -1,25 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_setcancelstate(int state, int *oldstate)
-{
- _pthread_descr thread;
-
- __THREAD_INIT();
-
- if ((state==PTHREAD_CANCEL_ENABLE) || (state==PTHREAD_CANCEL_DISABLE))
- {
- thread = __thread_self();
-
- if (oldstate) *oldstate = thread->cancelstate;
- thread->cancelstate = state;
-
- return 0;
- }
-
- (*(__errno_location()))=EINVAL;
- return -1;
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_setcanceltype.c b/mdk-stage1/dietlibc/libpthread/pthread_setcanceltype.c
deleted file mode 100644
index 03d1f53de..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_setcanceltype.c
+++ /dev/null
@@ -1,25 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pthread_setcanceltype(int type, int *oldtype)
-{
- _pthread_descr thread;
-
- __THREAD_INIT();
-
- if ((type==PTHREAD_CANCEL_DEFERRED) || (type==PTHREAD_CANCEL_ASYNCHRONOUS))
- {
- thread = __thread_self();
-
- if (oldtype) *oldtype = thread->canceltype;
- thread->canceltype = type;
-
- return 0;
- }
-
- (*(__errno_location()))=EINVAL;
- return -1;
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_setspecific.c b/mdk-stage1/dietlibc/libpthread/pthread_setspecific.c
deleted file mode 100644
index 78339c20b..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_setspecific.c
+++ /dev/null
@@ -1,21 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-extern struct _thread_key __thread_keys[PTHREAD_KEYS_MAX];
-int pthread_setspecific(pthread_key_t key, const void *value)
-{
- int id;
- __THREAD_INIT();
-
- id=__find_thread_id(getpid());
- if ((key<PTHREAD_KEYS_MAX) && (__thread_keys[key].used)) {
- __thread_keys[key].tkd[id]=value;
- return 0;
- }
- (*__errno_location())=EINVAL;
- return -1;
-}
-
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_spinlock.c b/mdk-stage1/dietlibc/libpthread/pthread_spinlock.c
deleted file mode 100644
index 449782adf..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_spinlock.c
+++ /dev/null
@@ -1,38 +0,0 @@
-#include <time.h>
-#include <pthread.h>
-#include "thread_internal.h"
-
-static void __pthread_acquire(int * spinlock)
-{
- int cnt = 0;
- struct timespec tm;
-
- while (__testandset(spinlock)) {
- if (cnt < MAX_SPIN_COUNT) {
- sched_yield();
- cnt++;
- } else {
- tm.tv_sec = 0;
- tm.tv_nsec = SPIN_SLEEP_DURATION;
- __libc_nanosleep(&tm, 0);
- cnt = 0;
- }
- }
-}
-
-void __pthread_lock(struct _pthread_fastlock * lock)
-{
- __pthread_acquire(&lock->__spinlock);
-}
-
-int __pthread_trylock(struct _pthread_fastlock * lock)
-{
- return __testandset(&lock->__spinlock);
-}
-
-int __pthread_unlock(struct _pthread_fastlock * lock)
-{
- return (lock->__spinlock = 0);
-}
-
-
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_sys_alloc.c b/mdk-stage1/dietlibc/libpthread/pthread_sys_alloc.c
deleted file mode 100644
index 9f7d23d79..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_sys_alloc.c
+++ /dev/null
@@ -1,26 +0,0 @@
-#include <unistd.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-static pthread_mutex_t mutex_alloc = PTHREAD_MUTEX_INITIALIZER;
-
-void free(void *ptr)
-{
- __NO_ASYNC_CANCEL_BEGIN;
- pthread_mutex_lock(&mutex_alloc);
- __libc_free(ptr);
- pthread_mutex_unlock(&mutex_alloc);
- __NO_ASYNC_CANCEL_END;
-}
-
-void *malloc(size_t size)
-{
- register void *ret;
- __NO_ASYNC_CANCEL_BEGIN;
- pthread_mutex_lock(&mutex_alloc);
- ret=__libc_malloc(size);
- pthread_mutex_unlock(&mutex_alloc);
- __NO_ASYNC_CANCEL_END;
- return ret;
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_sys_close.c b/mdk-stage1/dietlibc/libpthread/pthread_sys_close.c
deleted file mode 100644
index 84d5d5f36..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_sys_close.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <unistd.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int close(int fd)
-{
- __TEST_CANCEL();
- return __libc_close(fd);
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_sys_create.c b/mdk-stage1/dietlibc/libpthread/pthread_sys_create.c
deleted file mode 100644
index 9d47844f5..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_sys_create.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <unistd.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int creat(const char *pathname, mode_t mode)
-{
- __TEST_CANCEL();
- return __libc_creat(pathname,mode);
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_sys_fcntl.c b/mdk-stage1/dietlibc/libpthread/pthread_sys_fcntl.c
deleted file mode 100644
index 99210a488..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_sys_fcntl.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <unistd.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int fcntl(int fd, int cmd, void *arg)
-{
- __TEST_CANCEL();
- return __libc_fcntl(fd,cmd,arg);
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_sys_fsync.c b/mdk-stage1/dietlibc/libpthread/pthread_sys_fsync.c
deleted file mode 100644
index a2c995069..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_sys_fsync.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <unistd.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int fsync(int fd)
-{
- __TEST_CANCEL();
- return __libc_fsync(fd);
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_sys_logging.c b/mdk-stage1/dietlibc/libpthread/pthread_sys_logging.c
deleted file mode 100644
index 6070ad219..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_sys_logging.c
+++ /dev/null
@@ -1,31 +0,0 @@
-#include <unistd.h>
-#include <stdarg.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-static pthread_mutex_t mutex_syslog = PTHREAD_MUTEX_INITIALIZER;
-
-void closelog(void)
-{
- pthread_cleanup_push((void(*)(void*))pthread_mutex_unlock,&mutex_syslog);
- pthread_mutex_lock(&mutex_syslog);
- __libc_closelog();
- pthread_cleanup_pop(1);
-}
-
-void openlog(const char *ident, int option, int facility)
-{
- pthread_cleanup_push((void(*)(void*))pthread_mutex_unlock,&mutex_syslog);
- pthread_mutex_lock(&mutex_syslog);
- __libc_openlog(ident, option, facility);
- pthread_cleanup_pop(1);
-}
-
-void vsyslog(int priority, const char *format, va_list arg_ptr)
-{
- pthread_cleanup_push((void(*)(void*))pthread_mutex_unlock,&mutex_syslog);
- pthread_mutex_lock(&mutex_syslog);
- __libc_vsyslog(priority, format, arg_ptr);
- pthread_cleanup_pop(1);
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_sys_nanosleep.c b/mdk-stage1/dietlibc/libpthread/pthread_sys_nanosleep.c
deleted file mode 100644
index 699de4654..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_sys_nanosleep.c
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <time.h>
-#include <unistd.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int nanosleep(const struct timespec *req, struct timespec *rem)
-{
- __TEST_CANCEL();
- return __libc_nanosleep(req,rem);
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_sys_open.c b/mdk-stage1/dietlibc/libpthread/pthread_sys_open.c
deleted file mode 100644
index 513f6a323..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_sys_open.c
+++ /dev/null
@@ -1,12 +0,0 @@
-#include <unistd.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int __pthread_open(const char *pathname, int flags, mode_t mode)
-{
- __TEST_CANCEL();
- return __libc_open(pathname,flags,mode);
-}
-
-int open(const char *pathname, int flags, ...) __attribute__((alias("__pthread_open")));
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_sys_pause.c b/mdk-stage1/dietlibc/libpthread/pthread_sys_pause.c
deleted file mode 100644
index ab15ead11..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_sys_pause.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <unistd.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int pause()
-{
- __TEST_CANCEL();
- return __libc_pause();
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_sys_read.c b/mdk-stage1/dietlibc/libpthread/pthread_sys_read.c
deleted file mode 100644
index 60f886003..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_sys_read.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <unistd.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int read(int fd, void *buf, size_t count)
-{
- __TEST_CANCEL();
- return __libc_read(fd,buf,count);
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_sys_sigsuspend.c b/mdk-stage1/dietlibc/libpthread/pthread_sys_sigsuspend.c
deleted file mode 100644
index 72cd783ae..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_sys_sigsuspend.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <unistd.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int sigsuspend(const sigset_t *mask)
-{
- __TEST_CANCEL();
- return __libc_sigsuspend(mask);
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_sys_tcdrain.c b/mdk-stage1/dietlibc/libpthread/pthread_sys_tcdrain.c
deleted file mode 100644
index 1ac33adfc..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_sys_tcdrain.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <unistd.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int tcdrain(int fd)
-{
- __TEST_CANCEL();
- return __libc_tcdrain(fd);
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_sys_waitpid.c b/mdk-stage1/dietlibc/libpthread/pthread_sys_waitpid.c
deleted file mode 100644
index 76d5ddca7..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_sys_waitpid.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <unistd.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-pid_t waitpid(pid_t pid, int *status, int options)
-{
- __TEST_CANCEL();
- return __libc_waitpid(pid,status,options);
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_sys_write.c b/mdk-stage1/dietlibc/libpthread/pthread_sys_write.c
deleted file mode 100644
index 37541ae42..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_sys_write.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <unistd.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-int write(int fd, const void *buf, size_t count)
-{
- __TEST_CANCEL();
- return __libc_write(fd,buf,count);
-}
diff --git a/mdk-stage1/dietlibc/libpthread/pthread_testcancel.c b/mdk-stage1/dietlibc/libpthread/pthread_testcancel.c
deleted file mode 100644
index 68f91e743..000000000
--- a/mdk-stage1/dietlibc/libpthread/pthread_testcancel.c
+++ /dev/null
@@ -1,16 +0,0 @@
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-void pthread_testcancel()
-{
- _pthread_descr thread;
- __THREAD_INIT();
-
- thread=__thread_self();
-
- if (thread->canceled) {
- pthread_exit(PTHREAD_CANCELED);
- }
-}
diff --git a/mdk-stage1/dietlibc/libpthread/test.c b/mdk-stage1/dietlibc/libpthread/test.c
deleted file mode 100644
index 3272c1753..000000000
--- a/mdk-stage1/dietlibc/libpthread/test.c
+++ /dev/null
@@ -1,72 +0,0 @@
-#include <stdio.h>
-#include <pthread.h>
-
-#include <unistd.h>
-#include <signal.h>
-
-#include <errno.h>
-
-int ra;
-
-void test(int sig)
-{
- printf("SIGNAL %d in %d\n",sig,getpid());
- fflush(stdout);
- signal(SIGHUP, test);
-}
-
-void* thread(void* arg)
-{
- int i;
- for (i=0;i<10; i++)
- {
- printf("child %ld %8p\n", pthread_self(),arg);
- sleep(1);
- }
- return arg;
-}
-
-void* thread2(void *arg)
-{
- pthread_t t;
- int i;
-
- printf("child %ld %8p\n", pthread_self(),arg);
- for (i=0; i<3; ++i) {
- printf("child starting next in %d secs %ld %8p\n", 3-i, pthread_self(),arg);
- sleep(1);
- }
- pthread_create(&t,0, thread, (void*)2);
- printf("new child @ %ld\n",t);
- return (void*)t;
-}
-
-int main(int argc, char*argv[])
-{
- pthread_t t;
-
- signal(SIGHUP, test);
-
- pthread_create(&t,0, thread2, 0);
- pthread_create(&t,0, thread, (void *)3);
- pthread_create(&t,0, thread, (void *)1);
-
- puts("main");
-
-#if 0
- {
- int i;
- for(i=0;i<4;i++) sleep(1);
- }
-#else
- {
- int *tt;
- int i = pthread_join(t,(void*)&tt);
- printf("join %d %p %d\n",i,tt,(*(__errno_location())));
- }
-#endif
-
- puts("main exit");
-
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/libpthread/thread_internal.c b/mdk-stage1/dietlibc/libpthread/thread_internal.c
deleted file mode 100644
index a93806203..000000000
--- a/mdk-stage1/dietlibc/libpthread/thread_internal.c
+++ /dev/null
@@ -1,344 +0,0 @@
-#include <signal.h>
-#include <string.h>
-#include <sys/wait.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <errno.h>
-
-#include <sched.h>
-#include <sys/resource.h>
-
-#include <stdio.h>
-#include "thread_internal.h"
-
-static struct _pthread_fastlock __thread_struct_lock = {0};
-static struct _pthread_descr_struct threads[PTHREAD_THREADS_MAX];
-static int _max_used_thread_id=1;
-pthread_once_t __thread_inited;
-
-static struct _pthread_fastlock __manager_thread_signal_lock = {0};
-static struct _pthread_fastlock __manager_thread_data_lock = {1};
-static struct _pthread_fastlock __manager_thread_data_go_lock = {1};
-
-//#define DEBUG
-
-/* find thread */
-int __find_thread_id(int pid)
-{
- register int i;
- for (i=0; i<_max_used_thread_id; i++)
- if (threads[i].pid==pid)
- return i;
- return -1;
-}
-
-/* get thread */
-_pthread_descr __get_thread_struct(int id)
-{
- return threads+id;
-}
-
-/* thread errno location */
-int *__errno_location(void)
-{
- int id=0;
- if (__thread_inited) id=__find_thread_id(getpid());
- if (id<0)
- return 0;
- else
- return &threads[id].errno;
-}
-
-/* thread self */
-_pthread_descr __thread_self()
-{
- register int i=__find_thread_id(getpid());
- if (i<0)
- return 0;
- else
- return threads+i;
-}
-
-/* allocate a thread slot */
-_pthread_descr __thread_get_free()
-{
- _pthread_descr ret=0;
- int i;
-
- __NO_ASYNC_CANCEL_BEGIN;
- __pthread_lock(&__thread_struct_lock);
-
- for (i=0; i<PTHREAD_THREADS_MAX; i++) {
- if (threads[i].pid==0) {
- threads[i].pid=1; /* mark as taken */
- ret = threads+i;
- if (i>=_max_used_thread_id) _max_used_thread_id=i+1;
- break;
- }
- }
-
- __pthread_unlock(&__thread_struct_lock);
- __NO_ASYNC_CANCEL_END;
- return ret;
-}
-
-/* sleep a little (reschedule for this time) */
-void __thread_wait_some_time()
-{
- struct timespec reg;
- reg.tv_sec=0;
- reg.tv_nsec=SPIN_SLEEP_DURATION;
- __libc_nanosleep(&reg,0);
-}
-
-/* cleanup a thread struct */
-void __thread_cleanup(_pthread_descr th)
-{
- /* lib provided stack should be freed */
- if (th->stack_begin) free(th->stack_begin);
-
- /* an other thread has joined this on */
- if (th->joined) {
- th->joined->retval=th->retval;
- th->joined->join=0;
- th->joined=0;
- }
- th->pid=0; /* mark struct as free */
-}
-
-/* SIGHUP handler (thread cnacel) PTHREAD_CANCEL_ASYNCHRONOUS */
-static void __thread_cancel_handler(int sig)
-{
- _pthread_descr this;
- this = __thread_self();
- this->canceled=1;
- if (this->canceltype==PTHREAD_CANCEL_ASYNCHRONOUS)
- pthread_exit(PTHREAD_CANCELED);
- signal( SIGHUP, __thread_cancel_handler );
-}
-
-/* kill ALL threads / other then prime task and manager thread */
-static void __kill_all_threads()
-{
- int i;
-
- for (i=2; i<_max_used_thread_id; i++) {
- if (threads[i].pid>1) {
-#ifdef DEBUG
- printf("CANCEL ! %d\n",threads[i].pid);
-#endif
- threads[i].canceled=1;
- kill(threads[i].pid, SIGHUP); /* cancel thread */
- }
- }
-
- __thread_wait_some_time();
-
- for (i=2; i<_max_used_thread_id; i++) {
- if (threads[i].pid>1) {
-#ifdef DEBUG
- printf("KILL ! %d\n",threads[i].pid);
-#endif
- kill(threads[i].pid, SIGTERM); /* KILL thread */
- }
- }
-}
-
-__attribute__((weak)) volatile void __thread_start__key(int id) { return; }
-__attribute__((weak,alias("__thread_start__key"))) volatile void __thread_exit__key(int id);
-
-/* support for manager */
-static void *__mthread_starter(void *arg)
-{
- _pthread_descr td = (_pthread_descr)arg;
- int i = td->stack_size-4096;
-
- /* just to be sure */
- td->pid=getpid();
-
- /* signal handling for a thread */
- signal(SIGTERM, _exit);
- signal(SIGCHLD, SIG_DFL);
- signal(SIGHUP, __thread_cancel_handler );
-
- /* limit stack so that we NEVER have to worry */
- setrlimit(RLIMIT_STACK, (struct rlimit *)(&i));
-
- /* set scheduler */
- if (td->policy!=SCHED_OTHER) {
- struct sched_param sp;
- sp.sched_priority=td->priority;
- sched_setscheduler(td->pid,td->policy, &sp);
- }
-
- /* thread_key glue */
- __thread_start__key(td-threads);
-
-#ifdef DEBUG
- printf("in starter %d, parameter %8p\n", td->pid, td->func);
-#endif
-
- if (!td->canceled) {
- if (!(setjmp(td->jmp_exit))) {
- td->retval=td->func(td->arg);
-#ifdef DEBUG
- } else {
- printf("pthread_exit called in %d\n", td->pid);
-#endif
- }
- }
- pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED,0);
-
- /* thread_key glue */
- __thread_exit__key(td-threads);
-
-#ifdef DEBUG
- printf("end starter %d, retval %8p\n", td->pid, td->retval);
-#endif
-
- /* wake joined thread and put retval */
- if (td->joined) {
- td->joined->retval=td->retval;
- td->joined->join=0;
- td->joined=0;
- }
-
- /* execute all functions on the cleanup-stack */
- for (i=PTHREAD_MAX_CLEANUP;i;) {
- if (td->cleanup_stack[--i].func) {
- td->cleanup_stack[i].func(td->cleanup_stack[i].arg);
- }
- }
-
- return 0;
-}
-
-
-/* manager thread and signal handler */
-static char __manager_thread_stack[12*1024];
-static volatile _pthread_descr __manager_thread_data;
-static void __manager_SIGCHLD(int sig)
-{
- int pid, status, i;
-
- while(1) {
- pid = __libc_waitpid (-1, &status, WNOHANG);
- if (pid <= 0) break;
-
- for (i=0; i<_max_used_thread_id; i++) {
- if (threads[i].pid==pid) {
- __thread_cleanup(threads+i);
- break;
- }
- }
- }
-}
-
-static void __manager_SIGTERM(int sig)
-{
- __kill_all_threads();
- _exit(0);
-}
-
-static void* __manager_thread(void *arg)
-{
- struct sigaction sig_action_chld;
- sig_action_chld.sa_handler = __manager_SIGCHLD;
- sigemptyset(&sig_action_chld.sa_mask);
- sig_action_chld.sa_flags = SA_RESTART;
-
- sigaction(SIGCHLD, &sig_action_chld, 0);
- signal(SIGTERM, __manager_SIGTERM);
- signal(SIGHUP, SIG_IGN);
-
- __pthread_unlock(&__manager_thread_data_go_lock); /* release init */
- while(1) {
- do {
- __thread_wait_some_time();
- if (getppid()<0) __manager_SIGTERM(0);
- } while (__pthread_trylock(&__manager_thread_data_lock));
-
- __manager_thread_data->pid =
- __clone(__mthread_starter,
- __manager_thread_data->stack_addr,
- CLONE_VM | CLONE_FS | CLONE_FILES | SIGCHLD,
- __manager_thread_data);
- __thread_wait_some_time();
-#ifdef DEBUG
- printf("manager new thread %d\n",__manager_thread_data->pid);
-#endif
- __pthread_unlock(&__manager_thread_data_go_lock); /* release sender */
- }
- return 0;
-}
-
-/* pthread_create bottom half */
-int signal_manager_thread(_pthread_descr td)
-{
- __NO_ASYNC_CANCEL_BEGIN;
-
- __pthread_lock(&__manager_thread_signal_lock); /* lock */
-
- __manager_thread_data = td;
- __thread_wait_some_time();
- __pthread_unlock(&__manager_thread_data_lock); /* signal manager to start */
- __thread_wait_some_time();
- __pthread_lock(&__manager_thread_data_go_lock); /* wait for manager */
-
- __pthread_unlock(&__manager_thread_signal_lock); /* unlock */
-
- __NO_ASYNC_CANCEL_END;
-
- return td->pid;
-}
-
-
-/* thread stop */
-static void __thread_main_exit()
-{
- if (getpid()!=threads[0].pid) {
-#ifdef DEBUG
- printf("A THREAD ? %d\n",getpid());
-#endif
- kill(threads[0].pid, SIGTERM);
- while(1) __thread_wait_some_time();
- }
-#ifdef DEBUG
- else
- printf("EXIT ! %d\n",getpid());
-#endif
-
- /* stop ALL threads */
- kill(threads[1].pid, SIGTERM);
- __thread_wait_some_time();
- __kill_all_threads();
-}
-
-/* thread intern init */
-void __thread_init()
-{
- if (atexit(__thread_main_exit)==-1)
- exit(42);
-
-#ifdef DEBUG
- printf("INIT ! %d\n",getpid());
- memset(threads,0,sizeof(threads));
-#endif
-
- threads[0].pid = getpid();
-
- ++_max_used_thread_id;
- threads[1].stack_size=sizeof(__manager_thread_stack);
- threads[1].stack_addr=&__manager_thread_stack[sizeof(__manager_thread_stack)];
- threads[1].stack_begin=0;
- threads[1].func=__manager_thread;
-
- threads[1].pid = __clone(__mthread_starter, threads[1].stack_addr,
- CLONE_VM | CLONE_FS | CLONE_FILES, threads+1);
-
-#ifdef DEBUG
- printf("manager thread @ : %d\n",threads[1].pid);
-#endif
- __pthread_lock(&__manager_thread_data_go_lock); /* wait for manager to be ready */
-}
-
diff --git a/mdk-stage1/dietlibc/libpthread/thread_internal.h b/mdk-stage1/dietlibc/libpthread/thread_internal.h
deleted file mode 100644
index 5eb3bbd08..000000000
--- a/mdk-stage1/dietlibc/libpthread/thread_internal.h
+++ /dev/null
@@ -1,131 +0,0 @@
-#ifndef __THREAD_INTERNAL_H__
-#define __THREAD_INTERNAL_H__
-
-#include <pthread.h>
-#include <stdarg.h>
-#include <setjmp.h>
-#include "dietfeatures.h"
-#ifndef WANT_THREAD_SAFE
-#error "the diet libc is not compiled with thread safeness enabled!"
-#endif
-
-/* cleanup */
-#define PTHREAD_MAX_CLEANUP 8
-struct thread_cleanup_t {
- void (*func)(void*);
- void *arg;
-};
-
-/* the thread descriptor / internal */
-struct _pthread_descr_struct {
- /* runtime handling */
- struct _pthread_descr_struct *joined; /* a joined thread or NULL */
-
- /* conditional variables */
- struct _pthread_descr_struct *waitnext; /* an other waiting thread or NULL */
- int waiting; /* internal waiting "lock" */
-
- /* thread/process data */
- int pid; /* Process id */
-
- int policy; /* thread scheduling policy */
- int priority; /* thread priority */
-
- /* errno handling */
- int errno;
- int h_errno;
-
- /* stack handling */
- unsigned int stack_size; /* stack size for setrlimit */
- void *stack_addr; /* stack address for clone */
- void *stack_begin; /* begin of lib-stack / lowest address (free) */
-
- /* thread exit handling */
- void *retval; /* thread return value */
- int join; /* thread waits for other to return */
- jmp_buf jmp_exit; /* pthread_exit jump */
-
- /* thread flags */
- int detached; /* thread is detached */
- int canceled; /* thread canceled */
-
- /* cancel handling */
- int cancelstate; /* cancel state */
- int canceltype; /* type of cancellation */
-
- /* thread basics */
- void* (*func) (void* arg); /* thread function */
- void* arg; /* thread argument */
-
- /* create thread / manager thread lock */
- struct _pthread_fastlock *manager_lock;
-
- /* cleanup stack */
- struct thread_cleanup_t cleanup_stack[PTHREAD_MAX_CLEANUP];
-
-} __attribute__ ((aligned(32)));
-
-/* thread keys */
-struct _thread_key {
- int used;
- void (*destructor)(const void*);
- const void *tkd[PTHREAD_THREADS_MAX];
-};
-
-/* internal stuff */
-int __testandset(int *spinlock);
-
-void __pthread_lock(struct _pthread_fastlock * lock);
-int __pthread_trylock(struct _pthread_fastlock * lock);
-int __pthread_unlock(struct _pthread_fastlock * lock);
-
-int __clone(void* (*fn)(void*), void* stack, int flags, void *arg);
-
-int __find_thread_id(int pid);
-_pthread_descr __get_thread_struct(int id);
-
-_pthread_descr __thread_get_free();
-_pthread_descr __thread_self();
-
-void __thread_cleanup(_pthread_descr th);
-
-void __thread_wait_some_time();
-
-#define __NO_ASYNC_CANCEL_BEGIN { int oldtype; pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, &oldtype);
-#define __NO_ASYNC_CANCEL_END pthread_setcanceltype(oldtype,0); pthread_testcancel(); }
-#define __NO_ASYNC_CANCEL_STOP pthread_setcanceltype(oldtype,0); }
-
-/* manager thread stuff */
-int signal_manager_thread(_pthread_descr td);
-
-/* init stuff */
-extern pthread_once_t __thread_inited;
-void __thread_init();
-#define __THREAD_INIT() __pthread_once(&__thread_inited, __thread_init)
-#define __TEST_CANCEL() pthread_testcancel()
-
-/* diet libc syscalls */
-
-void __libc_free(void *ptr);
-void *__libc_malloc(size_t size);
-
-void __libc_closelog(void);
-void __libc_openlog(const char *ident, int option, int facility);
-void __libc_vsyslog(int priority, const char *format, va_list arg_ptr);
-
-pid_t __libc_fork(void);
-
-int __libc_close(int fd);
-int __libc_creat(const char *pathname, mode_t mode);
-int __libc_fcntl(int fd, int cmd, void *arg);
-int __libc_fsync(int fd);
-int __libc_nanosleep(const struct timespec *req, struct timespec *rem);
-int __libc_open(const char *pathname, int flags, mode_t mode);
-int __libc_pause(void);
-int __libc_read(int fd, void *buf, size_t count);
-int __libc_sigsuspend(const sigset_t *mask);
-int __libc_tcdrain(int fd);
-pid_t __libc_waitpid(pid_t pid, int *status, int options);
-int __libc_write(int fd, const void *buf, size_t count);
-
-#endif
diff --git a/mdk-stage1/dietlibc/libpthread/thread_key.c b/mdk-stage1/dietlibc/libpthread/thread_key.c
deleted file mode 100644
index b0f719fc9..000000000
--- a/mdk-stage1/dietlibc/libpthread/thread_key.c
+++ /dev/null
@@ -1,41 +0,0 @@
-#include <unistd.h>
-#include <errno.h>
-
-#include <pthread.h>
-#include "thread_internal.h"
-
-struct _pthread_fastlock __thread_keys_lock;
-struct _thread_key __thread_keys[PTHREAD_KEYS_MAX];
-
-void __thread_start__key(int id)
-{
- int i;
-
- __NO_ASYNC_CANCEL_BEGIN;
- __pthread_lock(&__thread_keys_lock);
-
- for (i=0; i<PTHREAD_KEYS_MAX; i++) {
- __thread_keys[i].tkd[id]=0;
- }
-
- __pthread_unlock(&__thread_keys_lock);
- __NO_ASYNC_CANCEL_END;
-}
-
-void __thread_exit__key(int id)
-{
- int i,try;
-
- __NO_ASYNC_CANCEL_BEGIN;
- __pthread_lock(&__thread_keys_lock);
-
- for (i=0; i<PTHREAD_KEYS_MAX; i++) {
- if ((__thread_keys[i].used) && (__thread_keys[i].destructor)) {
- for (try=0;__thread_keys[i].tkd[id] && (try<PTHREAD_DESTRUCTOR_ITERATIONS);++try)
- __thread_keys[i].destructor(__thread_keys[i].tkd[id]);
- }
- }
-
- __pthread_unlock(&__thread_keys_lock);
- __NO_ASYNC_CANCEL_STOP;
-}
diff --git a/mdk-stage1/dietlibc/libregex/rx.c b/mdk-stage1/dietlibc/libregex/rx.c
deleted file mode 100644
index b28358c2e..000000000
--- a/mdk-stage1/dietlibc/libregex/rx.c
+++ /dev/null
@@ -1,434 +0,0 @@
-#include <regex.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <sys/types.h>
-#include <string.h>
-
-/* this is ugly.
- * the idea is to build a parse tree, then do some poor man's OOP with a
- * generic matcher function call that is always that the start of each
- * record, and a next pointer. When the parse tree is done, we need to
- * recursively set the next pointers to point to the part of the parse
- * tree that needs to match next.
- * This is the prototype of the generic match function call pointer.
- * The first argument is the "this" pointer, the second is the text to
- * be matched against, ofs is the offset from the start of the matched
- * text (so we can match "^") and matches is an array where match
- * positions are stored. */
-/* now declared in regex.h: */
-/* typedef int (*matcher)(void*,const char*,int ofs,regmatch_t* matches,int plus,int eflags); */
-
-/* one would think that this is approach is an order of magnitude slower
- * than the standard NFA approach, but it isn't. The busybox grep took
- * 0.26 seconds for a fixed string compared to 0.19 seconds for the
- * glibc regex. */
-
-/* first part: parse a regex into a parse tree */
-struct bracketed {
- unsigned int cc[32];
-};
-
-/* now declared in regex.h:
-struct regex {
- matcher m;
- void* next;
- int pieces;
- int num;
- struct branch *b;
-}; */
-
-struct atom {
- matcher m;
- void* next;
- enum { EMPTY, REGEX, BRACKET, ANY, LINESTART, LINEEND, WORDSTART, WORDEND, CHAR, } type;
- int bnum;
- union {
- struct regex r;
- struct bracketed b;
- char c;
- } u;
-};
-
-struct piece {
- matcher m;
- void* next;
- struct atom a;
- unsigned char min,max;
-};
-
-struct branch {
- matcher m;
- void* next;
- int num;
- struct piece *p;
-};
-
-static void clearcc(unsigned int* x) {
- memset(x,0,sizeof(*x));
-}
-
-static void setcc(unsigned int* x,unsigned int bit) {
- x[bit/32]|=(1<<((bit%32)-1));
-}
-
-static int issetcc(unsigned int* x,unsigned int bit) {
- return x[bit/32] & (1<<((bit%32)-1));
-}
-
-static const char* parsebracketed(struct bracketed*__restrict__ b,const char*__restrict__ s,regex_t*__restrict__ rx) {
- const char* t;
- int i,negflag=0;
- if (*s!='[') return s;
- t=s+1;
- clearcc(b->cc);
- if (*t=='^') { negflag=1; ++t; }
- do {
- if (*t==0) return s;
- setcc(b->cc,rx->cflags&REG_ICASE?*t:tolower(*t));
- if (t[1]=='-' && t[2]!=']') {
- for (i=*t+1; i<=t[2]; ++i) setcc(b->cc,rx->cflags&REG_ICASE?i:tolower(i));
- t+=2;
- }
- ++t;
- } while (*t!=']');
- if (negflag) for (i=0; i<32; ++i) b->cc[i]=~b->cc[i];
- return t+1;
-}
-
-static const char* parseregex(struct regex* r,const char* s,regex_t* rx);
-
-static int matchatom(void*__restrict__ x,const char*__restrict__ s,int ofs,struct __regex_t*__restrict__ preg,int plus,int eflags) {
- register struct atom* a=(struct atom*)x;
- int matchlen=0;
- switch (a->type) {
- case EMPTY:
-// printf("matching EMPTY against \"%s\"\n",s);
- preg->l[a->bnum].rm_so=preg->l[a->bnum].rm_eo=ofs;
- goto match;
- case REGEX:
-// printf("matching REGEX against \"%s\"\n",s);
- if ((matchlen=a->u.r.m(a,s,ofs,preg,0,eflags))>=0) {
- preg->l[a->bnum].rm_so=ofs;
- preg->l[a->bnum].rm_eo=ofs+matchlen;
- goto match;
- }
- break;
- case BRACKET:
-// printf("matching BRACKET against \"%s\"\n",s);
- matchlen=1;
- if (*s=='\n' && (preg->cflags&REG_NEWLINE)) break;
- if (*s && issetcc(a->u.b.cc,(preg->cflags&REG_ICASE?tolower(*s):*s)))
- goto match;
- break;
- case ANY:
-// printf("matching ANY against \"%s\"\n",s);
- if (*s=='\n' && (preg->cflags&REG_NEWLINE)) break;
- matchlen=1;
- if (*s) goto match;
- break;
- case LINESTART:
-// printf("matching LINESTART against \"%s\"\n",s);
- if (ofs==0 && (eflags&REG_NOTBOL)==0) {
- goto match;
- }
- break;
- case LINEEND:
-// printf("matching LINEEND against \"%s\"\n",s);
- if ((*s && *s!='\n') || (eflags&REG_NOTEOL)==0) break;
- goto match;
- case WORDSTART:
- if ((ofs==0 || isspace(s[-1])) && !isspace(*s))
- goto match;
- break;
- case WORDEND:
- if (ofs>0 && !isspace(s[-1]) && isspace(*s))
- goto match;
- break;
- case CHAR:
-// printf("matching CHAR %c against \"%s\"\n",a->u.c,s);
- matchlen=1;
- if (((preg->cflags&REG_ICASE)?tolower(*s):*s)==a->u.c) goto match;
- break;
- }
- return -1;
-match:
- if (a->next)
- return ((struct atom*)(a->next))->m(a->next,s+matchlen,ofs+matchlen,preg,plus+matchlen,eflags);
- else
- return plus+matchlen;
-}
-
-static const char* parseatom(struct atom*__restrict__ a,const char*__restrict__ s,regex_t*__restrict__ rx) {
- const char *tmp;
- a->m=matchatom;
- a->bnum=-1;
- switch (*s) {
- case '(':
- a->bnum=++rx->brackets;
- if (s[1]==')') {
- a->type=EMPTY;
- return s+2;
- }
- a->type=REGEX;
- if ((tmp=parseregex(&a->u.r,s+1,rx))!=s) {
- if (*tmp==')')
- return tmp+1;
- }
- case 0:
- case '|':
- case ')':
- return s;
- case '[':
- a->type=BRACKET;
- if ((tmp=parsebracketed(&a->u.b,s,rx))!=s)
- return tmp;
- return s;
- case '.':
- a->type=ANY;
- break;
- case '^':
- a->type=LINESTART;
- break;
- case '$':
- a->type=LINEEND;
- break;
- case '\\':
- if (!*++s) return s;
- if (*s=='<') {
- a->type=WORDSTART;
- break;
- } else if (*s=='>') {
- a->type=WORDEND;
- break;
- }
- default:
- a->type=CHAR;
- a->u.c=rx->cflags&REG_ICASE?*s:tolower(*s);
- break;
- }
- return s+1;
-}
-
-/* needs to do "greedy" matching, i.e. match as often as possible */
-static int matchpiece(void*__restrict__ x,const char*__restrict__ s,int ofs,struct __regex_t*__restrict__ preg,int plus,int eflags) {
- register struct piece* a=(struct piece*)x;
- int matchlen=0;
- int tmp,num=0;
- unsigned int *offsets=alloca(sizeof(int)*a->max);
- offsets[0]=0;
-// printf("matchpiece \"%s\"...\n",s);
- /* first, try to match the atom as often as possible, up to a->max times */
- if (a->max == 1 && a->min == 1)
- return a->a.m(&a->a,s+matchlen,ofs+matchlen,preg,0,eflags);
- while (num<a->max) {
- void* save=a->a.next;
- a->a.next=0;
- if ((tmp=a->a.m(&a->a,s+matchlen,ofs+matchlen,preg,0,eflags))>=0) {
- a->a.next=save;
- ++num;
- matchlen+=tmp;
- offsets[num]=tmp;
- } else {
- a->a.next=save;
- break;
- }
- }
- if (num<a->min) return -1; /* already at minimum matches; signal mismatch */
- /* then, while the rest does not match, back off */
- for (;;) {
- if (a->next)
- tmp=((struct atom*)(a->next))->m(a->next,s+matchlen,ofs+matchlen,preg,plus+matchlen,eflags);
- else
- tmp=plus+matchlen;
- if (tmp>=0) break; /* it did match; don't back off any further */
- matchlen-=offsets[num];
- --num;
- }
- return tmp;
-}
-
-static const char* parsepiece(struct piece*__restrict__ p,const char*__restrict__ s,regex_t*__restrict__ rx) {
- const char* tmp=parseatom(&p->a,s,rx);
- if (tmp==s) return s;
- p->m=matchpiece;
- p->min=p->max=1;
- switch (*tmp) {
- case '*': p->min=0; p->max=RE_DUP_MAX; break;
- case '+': p->min=1; p->max=RE_DUP_MAX; break;
- case '?': p->min=0; p->max=1; break;
- case '{':
- if (isdigit(*++tmp)) {
- p->min=*tmp-'0'; p->max=RE_DUP_MAX;
- while (isdigit(*++tmp)) p->min=p->min*10+*tmp-'0';
- if (*tmp==',') {
- if (isdigit(*++tmp)) {
- p->max=*tmp-'0';
- while (isdigit(*++tmp)) p->max=p->max*10+*tmp-'0';
- }
- }
- if (*tmp!='}') return s;
- ++tmp;
- }
- default:
- return tmp;
- }
- return tmp+1;
-}
-
-/* trivial, just pass through */
-static int matchbranch(void*__restrict__ x,const char*__restrict__ s,int ofs,struct __regex_t*__restrict__ preg,int plus,int eflags) {
- register struct branch* a=(struct branch*)x;
- int tmp;
- tmp=a->p->m(a->p,s,ofs,preg,plus,eflags);
- if (tmp>=0) {
- if (a->next)
- return ((struct atom*)(a->next))->m(a->next,s+tmp,ofs+tmp,preg,plus+tmp,eflags);
- else
- return plus+tmp;
- }
- return -1;
-}
-
-static const char* parsebranch(struct branch*__restrict__ b,const char*__restrict__ s,regex_t*__restrict__ rx,int*__restrict__ pieces) {
- struct piece p;
- const char *tmp;
- b->m=matchbranch;
- b->num=0; b->p=0;
- for (;;) {
- if (*s=='|') {
- if (b->num==0) {
- tmp=s+1;
- p.a.type=EMPTY;
- p.min=p.max=1;
- }
- } else {
- tmp=parsepiece(&p,s,rx);
- if (tmp==s) return s;
- }
- if (!(b->p=realloc(b->p,++b->num*sizeof(p)))) return s;
- b->p[b->num-1]=p;
- if (*s=='|') { ++tmp; break; }
- s=tmp;
- }
- *pieces+=b->num;
- return tmp;
-}
-
-/* try the branches one by one */
-static int matchregex(void*__restrict__ x,const char*__restrict__ s,int ofs,struct __regex_t*__restrict__ preg,int plus,int eflags) {
- register struct regex* a=(struct regex*)x;
- int i,tmp;
- for (i=0; i<a->num; ++i) {
- tmp=a->b[i].m(&a->b[i],s,ofs,preg,plus,eflags);
- if (tmp>=0) {
- if (a->next)
- return ((struct atom*)(a->next))->m(a->next,s+tmp,ofs+tmp,preg,plus+tmp,eflags);
- else
- return plus+tmp;
- }
- }
- return -1;
-}
-
-static const char* parseregex(struct regex*__restrict__ r,const char*__restrict__ s,regex_t*__restrict__ p) {
- struct branch b;
- const char *tmp;
- r->m=matchregex;
- r->num=0; r->b=0; r->pieces=0;
- for (;;) {
- tmp=parsebranch(&b,s,p,&r->pieces);
- if (tmp==s) return s;
- if (!(r->b=realloc(r->b,++r->num*sizeof(b)))) return s;
- r->b[r->num-1]=b;
- s=tmp;
- }
- return tmp;
-}
-
-
-/* The matcher relies on the presence of next pointers, of which the
- * parser does not know the correct destination. So we need an
- * additional pass through the data structure that sets the next
- * pointers correctly. */
-static void regex_putnext(struct regex* r,void* next);
-
-static void atom_putnext(struct atom*__restrict__ a,void*__restrict__ next) {
- a->next=next;
- if (a->type==REGEX)
- regex_putnext(&a->u.r,next);
-}
-
-static void piece_putnext(struct piece*__restrict__ p,void*__restrict__ next) {
- p->next=next;
- atom_putnext(&p->a,next);
-}
-
-static void branch_putnext(struct branch*__restrict__ b,void*__restrict__ next) {
- int i;
- for (i=0; i<b->num-1; ++i)
- piece_putnext(&b->p[i],&b->p[i+1]);
- piece_putnext(&b->p[i],0);
- b->next=next;
-}
-
-static void regex_putnext(struct regex*__restrict__ r,void*__restrict__ next) {
- int i;
- for (i=0; i<r->num; ++i)
- branch_putnext(&r->b[i],next);
- r->next=next;
-}
-
-
-
-int regcomp(regex_t*__restrict__ preg, const char*__restrict__ regex, int cflags) {
- const char* t=parseregex(&preg->r,regex,preg);
- if (t==regex) return -1;
- regex_putnext(&preg->r,0);
- preg->cflags=cflags;
- return 0;
-}
-
-int regexec(const regex_t*__restrict__ preg, const char*__restrict__ string, size_t nmatch, regmatch_t pmatch[], int eflags) {
- int matched;
- const char *orig=string;
- ((regex_t*)preg)->l=alloca(sizeof(regmatch_t)*(preg->brackets+1));
- while (*string) {
- matched=preg->r.m((void*)&preg->r,string,string-orig,(regex_t*)preg,0,eflags);
- if (matched>=0) {
- if ((preg->cflags&REG_NOSUB)==0) memmove(pmatch,preg->l,nmatch*sizeof(regmatch_t));
- return 0;
- }
- ++string; eflags|=REG_NOTBOL;
- }
- return REG_NOMATCH;
-}
-
-
-
-void regfree(regex_t* preg) {
- int i;
- for (i=0; i<preg->r.num; ++i) {
- free(preg->r.b[i].p);
- free(preg->r.b);
- }
-}
-
-size_t regerror(int errcode, const regex_t*__restrict__ preg, char*__restrict__ errbuf, size_t errbuf_size) {
- strncpy(errbuf,"invalid regular expression (sorry)",errbuf_size);
- return strlen(errbuf);
-}
-
-
-
-
-#if 0
-int main() {
- struct regex r;
- int bnum=-1;
- const char* t=parseregex(&r,"^a*ab$",&bnum);
- regex_putnext(&r,0);
- printf("%d pieces, %s\n",r.pieces,t);
- printf("%d\n",r.m(&r,"aaab",0,0,0));
- return 0;
-}
-#endif
diff --git a/mdk-stage1/dietlibc/librpc/auth_none.c b/mdk-stage1/dietlibc/librpc/auth_none.c
deleted file mode 100644
index 7a4dffe87..000000000
--- a/mdk-stage1/dietlibc/librpc/auth_none.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/* @(#)auth_none.c 2.1 88/07/29 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] =
-
- "@(#)auth_none.c 1.19 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * auth_none.c
- * Creates a client authentication handle for passing "null"
- * credentials and verifiers to remote systems.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#include <rpc/types.h>
-#include <rpc/xdr.h>
-#include <rpc/auth.h>
-#define MAX_MARSHEL_SIZE 20
-
-/*
- * Authenticator operations routines
- */
-static void authnone_verf();
-static void authnone_destroy();
-static bool_t authnone_marshal();
-static bool_t authnone_validate();
-static bool_t authnone_refresh();
-
-static struct auth_ops ops = {
- authnone_verf,
- authnone_marshal,
- authnone_validate,
- authnone_refresh,
- authnone_destroy
-};
-
-static struct authnone_private {
- AUTH no_client;
- char marshalled_client[MAX_MARSHEL_SIZE];
- u_int mcnt;
-} *authnone_private;
-
-AUTH *authnone_create()
-{
- register struct authnone_private *ap = authnone_private;
- XDR xdr_stream;
- register XDR *xdrs;
-
- if (ap == 0) {
- ap = (struct authnone_private *) calloc(1, sizeof(*ap));
- if (ap == 0)
- return (0);
- authnone_private = ap;
- }
- if (!ap->mcnt) {
- ap->no_client.ah_cred = ap->no_client.ah_verf = _null_auth;
- ap->no_client.ah_ops = &ops;
- xdrs = &xdr_stream;
- xdrmem_create(xdrs, ap->marshalled_client,
- (u_int) MAX_MARSHEL_SIZE, XDR_ENCODE);
- (void) xdr_opaque_auth(xdrs, &ap->no_client.ah_cred);
- (void) xdr_opaque_auth(xdrs, &ap->no_client.ah_verf);
- ap->mcnt = XDR_GETPOS(xdrs);
- XDR_DESTROY(xdrs);
- }
- return (&ap->no_client);
-}
-
- /*ARGSUSED*/ static bool_t authnone_marshal(client, xdrs)
-AUTH *client;
-XDR *xdrs;
-{
- register struct authnone_private *ap = authnone_private;
-
- if (ap == 0)
- return (0);
- return ((*xdrs->x_ops->x_putbytes) (xdrs,
- ap->marshalled_client, ap->mcnt));
-}
-
-static void authnone_verf()
-{
-}
-
-static bool_t authnone_validate()
-{
-
- return (TRUE);
-}
-
-static bool_t authnone_refresh()
-{
-
- return (FALSE);
-}
-
-static void authnone_destroy()
-{
-}
diff --git a/mdk-stage1/dietlibc/librpc/auth_unix.c b/mdk-stage1/dietlibc/librpc/auth_unix.c
deleted file mode 100644
index 5daeb5f4a..000000000
--- a/mdk-stage1/dietlibc/librpc/auth_unix.c
+++ /dev/null
@@ -1,313 +0,0 @@
-/* @(#)auth_unix.c 2.2 88/08/01 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] =
-
- "@(#)auth_unix.c 1.19 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * auth_unix.c, Implements UNIX style authentication parameters.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * The system is very weak. The client uses no encryption for it's
- * credentials and only sends null verifiers. The server sends backs
- * null verifiers or optionally a verifier that suggests a new short hand
- * for the credentials.
- *
- */
-
-#include <stdio.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <string.h>
-
-#include <rpc/types.h>
-#include <rpc/xdr.h>
-#include <rpc/auth.h>
-#include <rpc/auth_unix.h>
-
-/*
- * Unix authenticator operations vector
- */
-static void authunix_nextverf();
-static bool_t authunix_marshal();
-static bool_t authunix_validate();
-static bool_t authunix_refresh();
-static void authunix_destroy();
-
-static struct auth_ops auth_unix_ops = {
- authunix_nextverf,
- authunix_marshal,
- authunix_validate,
- authunix_refresh,
- authunix_destroy
-};
-
-/*
- * This struct is pointed to by the ah_private field of an auth_handle.
- */
-struct audata {
- struct opaque_auth au_origcred; /* original credentials */
- struct opaque_auth au_shcred; /* short hand cred */
- u_long au_shfaults; /* short hand cache faults */
- char au_marshed[MAX_AUTH_BYTES];
- u_int au_mpos; /* xdr pos at end of marshed */
-};
-
-#define AUTH_PRIVATE(auth) ((struct audata *)auth->ah_private)
-
-static void marshal_new_auth();
-
-
-/*
- * Create a unix style authenticator.
- * Returns an auth handle with the given stuff in it.
- */
-AUTH *authunix_create __P ((char *machname, uid_t uid,
- gid_t gid, int len,
- gid_t *aup_gids))
-{
- struct authunix_parms aup;
- char mymem[MAX_AUTH_BYTES];
- struct timeval now;
- XDR xdrs;
- register AUTH *auth;
- register struct audata *au;
-
- /*
- * Allocate and set up auth handle
- */
- auth = (AUTH *) mem_alloc(sizeof(*auth));
-#ifndef KERNEL
- if (auth == NULL) {
- (void) fprintf(stderr, "authunix_create: out of memory\n");
- return (NULL);
- }
-#endif
- au = (struct audata *) mem_alloc(sizeof(*au));
-#ifndef KERNEL
- if (au == NULL) {
- (void) fprintf(stderr, "authunix_create: out of memory\n");
- return (NULL);
- }
-#endif
- auth->ah_ops = &auth_unix_ops;
- auth->ah_private = (caddr_t) au;
- auth->ah_verf = au->au_shcred = _null_auth;
- au->au_shfaults = 0;
-
- /*
- * fill in param struct from the given params
- */
- (void) gettimeofday(&now, (struct timezone *) 0);
- aup.aup_time = now.tv_sec;
- aup.aup_machname = machname;
- aup.aup_uid = uid;
- aup.aup_gid = gid;
- aup.aup_len = (u_int) len;
- aup.aup_gids = aup_gids;
-
- /*
- * Serialize the parameters into origcred
- */
- xdrmem_create(&xdrs, mymem, MAX_AUTH_BYTES, XDR_ENCODE);
- if (!xdr_authunix_parms(&xdrs, &aup))
- abort();
- au->au_origcred.oa_length = len = XDR_GETPOS(&xdrs);
- au->au_origcred.oa_flavor = AUTH_UNIX;
-#ifdef KERNEL
- au->au_origcred.oa_base = mem_alloc((u_int) len);
-#else
- if ((au->au_origcred.oa_base = mem_alloc((u_int) len)) == NULL) {
- (void) fprintf(stderr, "authunix_create: out of memory\n");
- return (NULL);
- }
-#endif
- bcopy(mymem, au->au_origcred.oa_base, (u_int) len);
-
- /*
- * set auth handle to reflect new cred.
- */
- auth->ah_cred = au->au_origcred;
- marshal_new_auth(auth);
- return (auth);
-}
-
-/*
- * Returns an auth handle with parameters determined by doing lots of
- * syscalls.
- */
-AUTH *authunix_create_default()
-{
- register int len;
- char machname[MAX_MACHINE_NAME + 1];
- register int uid;
- register int gid;
- gid_t gids[NGRPS];
-
- if (gethostname(machname, MAX_MACHINE_NAME) == -1)
- abort();
- machname[MAX_MACHINE_NAME] = 0;
- uid = geteuid();
- gid = getegid();
- if ((len = getgroups(NGRPS, gids)) < 0)
- abort();
- return (authunix_create(machname, uid, gid, len, gids));
-}
-
-/*
- * authunix operations
- */
-
-static void authunix_nextverf(auth)
-AUTH *auth;
-{
- /* no action necessary */
-}
-
-static bool_t authunix_marshal(auth, xdrs)
-AUTH *auth;
-XDR *xdrs;
-{
- register struct audata *au = AUTH_PRIVATE(auth);
-
- return (XDR_PUTBYTES(xdrs, au->au_marshed, au->au_mpos));
-}
-
-static bool_t authunix_validate(auth, verf)
-register AUTH *auth;
-struct opaque_auth verf;
-{
- register struct audata *au;
- XDR xdrs;
-
- if (verf.oa_flavor == AUTH_SHORT) {
- au = AUTH_PRIVATE(auth);
- xdrmem_create(&xdrs, verf.oa_base, verf.oa_length, XDR_DECODE);
-
- if (au->au_shcred.oa_base != NULL) {
- mem_free(au->au_shcred.oa_base, au->au_shcred.oa_length);
- au->au_shcred.oa_base = NULL;
- }
- if (xdr_opaque_auth(&xdrs, &au->au_shcred)) {
- auth->ah_cred = au->au_shcred;
- } else {
- xdrs.x_op = XDR_FREE;
- (void) xdr_opaque_auth(&xdrs, &au->au_shcred);
- au->au_shcred.oa_base = NULL;
- auth->ah_cred = au->au_origcred;
- }
- marshal_new_auth(auth);
- }
- return (TRUE);
-}
-
-static bool_t authunix_refresh(auth)
-register AUTH *auth;
-{
- register struct audata *au = AUTH_PRIVATE(auth);
- struct authunix_parms aup;
- struct timeval now;
- XDR xdrs;
- register int stat;
-
- if (auth->ah_cred.oa_base == au->au_origcred.oa_base) {
- /* there is no hope. Punt */
- return (FALSE);
- }
- au->au_shfaults++;
-
- /* first deserialize the creds back into a struct authunix_parms */
- aup.aup_machname = NULL;
- aup.aup_gids = (gid_t *) NULL;
- xdrmem_create(&xdrs, au->au_origcred.oa_base,
- au->au_origcred.oa_length, XDR_DECODE);
- stat = xdr_authunix_parms(&xdrs, &aup);
- if (!stat)
- goto done;
-
- /* update the time and serialize in place */
- (void) gettimeofday(&now, (struct timezone *) 0);
- aup.aup_time = now.tv_sec;
- xdrs.x_op = XDR_ENCODE;
- XDR_SETPOS(&xdrs, 0);
- stat = xdr_authunix_parms(&xdrs, &aup);
- if (!stat)
- goto done;
- auth->ah_cred = au->au_origcred;
- marshal_new_auth(auth);
- done:
- /* free the struct authunix_parms created by deserializing */
- xdrs.x_op = XDR_FREE;
- (void) xdr_authunix_parms(&xdrs, &aup);
- XDR_DESTROY(&xdrs);
- return (stat);
-}
-
-static void authunix_destroy(auth)
-register AUTH *auth;
-{
- register struct audata *au = AUTH_PRIVATE(auth);
-
- mem_free(au->au_origcred.oa_base, au->au_origcred.oa_length);
-
- if (au->au_shcred.oa_base != NULL)
- mem_free(au->au_shcred.oa_base, au->au_shcred.oa_length);
-
- mem_free(auth->ah_private, sizeof(struct audata));
-
- if (auth->ah_verf.oa_base != NULL)
- mem_free(auth->ah_verf.oa_base, auth->ah_verf.oa_length);
-
- mem_free((caddr_t) auth, sizeof(*auth));
-}
-
-/*
- * Marshals (pre-serializes) an auth struct.
- * sets private data, au_marshed and au_mpos
- */
-static void marshal_new_auth(auth)
-register AUTH *auth;
-{
- XDR xdr_stream;
- register XDR *xdrs = &xdr_stream;
- register struct audata *au = AUTH_PRIVATE(auth);
-
- xdrmem_create(xdrs, au->au_marshed, MAX_AUTH_BYTES, XDR_ENCODE);
- if ((!xdr_opaque_auth(xdrs, &(auth->ah_cred))) ||
- (!xdr_opaque_auth(xdrs, &(auth->ah_verf)))) {
- perror("auth_none.c - Fatal marshalling problem");
- } else {
- au->au_mpos = XDR_GETPOS(xdrs);
- }
- XDR_DESTROY(xdrs);
-}
diff --git a/mdk-stage1/dietlibc/librpc/authunix_prot.c b/mdk-stage1/dietlibc/librpc/authunix_prot.c
deleted file mode 100644
index ddcadb808..000000000
--- a/mdk-stage1/dietlibc/librpc/authunix_prot.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* @(#)authunix_prot.c 2.1 88/07/29 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] =
-
- "@(#)authunix_prot.c 1.15 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * authunix_prot.c
- * XDR for UNIX style authentication parameters for RPC
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-
-#include <rpc/types.h>
-#include <rpc/xdr.h>
-#include <rpc/auth.h>
-#include <rpc/auth_unix.h>
-
-/*
- * XDR for unix authentication parameters.
- */
-bool_t xdr_authunix_parms(xdrs, p)
-register XDR *xdrs;
-register struct authunix_parms *p;
-{
- int a,b;
-
- if (xdr_u_long(xdrs, &(p->aup_time))
- && xdr_string(xdrs, &(p->aup_machname), MAX_MACHINE_NAME)
- && xdr_int(xdrs, &a)
- && xdr_int(xdrs, &b)
- && xdr_array(xdrs, (caddr_t *) & (p->aup_gids),
- &(p->aup_len), NGRPS, sizeof(int), (xdrproc_t)xdr_int)) {
- p->aup_uid=(uid_t)a;
- p->aup_gid=(gid_t)b;
- return (TRUE);
- }
- return (FALSE);
-}
diff --git a/mdk-stage1/dietlibc/librpc/bindresvport.c b/mdk-stage1/dietlibc/librpc/bindresvport.c
deleted file mode 100644
index 8b65261dd..000000000
--- a/mdk-stage1/dietlibc/librpc/bindresvport.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * 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.
- *
- * 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) 1987 by Sun Microsystems, Inc.
- */
-
-#include <unistd.h>
-#include <string.h>
-#include <sys/types.h>
-#include <errno.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-
-/*
- * Bind a socket to a privileged IP port
- */
-int bindresvport(sd, sin)
-int sd;
-struct sockaddr_in *sin;
-{
- int res;
- static short port;
- struct sockaddr_in myaddr;
- extern int errno;
- int i;
-
-#define STARTPORT 600
-#define ENDPORT (IPPORT_RESERVED - 1)
-#define NPORTS (ENDPORT - STARTPORT + 1)
-
- if (sin == (struct sockaddr_in *) 0) {
- sin = &myaddr;
- bzero(sin, sizeof(*sin));
- sin->sin_family = AF_INET;
- } else if (sin->sin_family != AF_INET) {
- errno = EPFNOSUPPORT;
- return (-1);
- }
- if (port == 0) {
- port = (getpid() % NPORTS) + STARTPORT;
- }
- res = -1;
- errno = EADDRINUSE;
- for (i = 0; i < NPORTS && res < 0 && errno == EADDRINUSE; i++) {
- sin->sin_port = htons(port++);
- if (port > ENDPORT) {
- port = STARTPORT;
- }
- res = bind(sd, (struct sockaddr*)sin, sizeof(struct sockaddr_in));
- }
- return (res);
-}
diff --git a/mdk-stage1/dietlibc/librpc/clnt_generic.c b/mdk-stage1/dietlibc/librpc/clnt_generic.c
deleted file mode 100644
index 9bb81cc80..000000000
--- a/mdk-stage1/dietlibc/librpc/clnt_generic.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/* @(#)clnt_generic.c 2.2 88/08/01 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)clnt_generic.c 1.4 87/08/11 (C) 1987 SMI";
-#endif
-/*
- * Copyright (C) 1987, Sun Microsystems, Inc.
- */
-#include <rpc/rpc.h>
-#include <sys/socket.h>
-#include <errno.h>
-#include <netdb.h>
-#include <string.h>
-
-/*
- * Generic client creation: takes (hostname, program-number, protocol) and
- * returns client handle. Default options are set, which the user can
- * change using the rpc equivalent of ioctl()'s.
- */
-CLIENT *clnt_create __P ((const char *hostname, const u_long prog,
- const u_long vers, const char *proto))
-{
- struct hostent *h;
- struct protoent *p;
- struct sockaddr_in sin;
- int sock;
- struct timeval tv;
- CLIENT *client;
-
- h = gethostbyname(hostname);
- if (h == NULL) {
- rpc_createerr.cf_stat = RPC_UNKNOWNHOST;
- return (NULL);
- }
- if (h->h_addrtype != AF_INET) {
- /*
- * Only support INET for now
- */
- rpc_createerr.cf_stat = RPC_SYSTEMERROR;
- rpc_createerr.cf_error.re_errno = EAFNOSUPPORT;
- return (NULL);
- }
-#ifdef __linux__
- bzero((char *) &sin, sizeof(sin));
-#endif
- sin.sin_family = h->h_addrtype;
- sin.sin_port = 0;
-#ifndef __linux__
- bzero(sin.sin_zero, sizeof(sin.sin_zero));
-#endif
- bcopy(h->h_addr, (char *) &sin.sin_addr, h->h_length);
- p = getprotobyname(proto);
- if (p == NULL) {
- rpc_createerr.cf_stat = RPC_UNKNOWNPROTO;
- rpc_createerr.cf_error.re_errno = EPFNOSUPPORT;
- return (NULL);
- }
- sock = RPC_ANYSOCK;
- switch (p->p_proto) {
- case IPPROTO_UDP:
- tv.tv_sec = 5;
- tv.tv_usec = 0;
- client = clntudp_create(&sin, prog, vers, tv, &sock);
- if (client == NULL) {
- return (NULL);
- }
- tv.tv_sec = 25;
- clnt_control(client, CLSET_TIMEOUT, (char*)&tv);
- break;
- case IPPROTO_TCP:
- client = clnttcp_create(&sin, prog, vers, &sock, 0, 0);
- if (client == NULL) {
- return (NULL);
- }
- tv.tv_sec = 25;
- tv.tv_usec = 0;
- clnt_control(client, CLSET_TIMEOUT, (char*)&tv);
- break;
- default:
- rpc_createerr.cf_stat = RPC_SYSTEMERROR;
- rpc_createerr.cf_error.re_errno = EPFNOSUPPORT;
- return (NULL);
- }
- return (client);
-}
diff --git a/mdk-stage1/dietlibc/librpc/clnt_perror.c b/mdk-stage1/dietlibc/librpc/clnt_perror.c
deleted file mode 100644
index 4ede1a43e..000000000
--- a/mdk-stage1/dietlibc/librpc/clnt_perror.c
+++ /dev/null
@@ -1,302 +0,0 @@
-/* @(#)clnt_perror.c 2.1 88/07/29 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] =
-
- "@(#)clnt_perror.c 1.15 87/10/07 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * clnt_perror.c
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- */
-#include <stdio.h>
-
-#include <rpc/types.h>
-#include <rpc/auth.h>
-#include <rpc/clnt.h>
-
-//extern char *sys_errlist[];
-//static char *auth_errmsg();
-
-extern char *strcpy();
-
-#if 0
-static char *buf;
-
-static char *_buf()
-{
-
- if (buf == 0)
- buf = (char *) malloc(256);
- return (buf);
-}
-#endif
-
-/*
- * Print reply error info
- */
-char *clnt_sperror __P ((CLIENT *rpch, const char *s))
-{
-#if 0
- struct rpc_err e;
- void clnt_perrno();
- char *err;
- char *str = _buf();
- char *strstart = str;
-
- if (str == 0)
- return (0);
- CLNT_GETERR(rpch, &e);
-
- (void) sprintf(str, "%s: ", s);
- str += strlen(str);
-
- (void) strcpy(str, clnt_sperrno(e.re_status));
- str += strlen(str);
-
- switch (e.re_status) {
- case RPC_SUCCESS:
- case RPC_CANTENCODEARGS:
- case RPC_CANTDECODERES:
- case RPC_TIMEDOUT:
- case RPC_PROGUNAVAIL:
- case RPC_PROCUNAVAIL:
- case RPC_CANTDECODEARGS:
- case RPC_SYSTEMERROR:
- case RPC_UNKNOWNHOST:
- case RPC_UNKNOWNPROTO:
- case RPC_PMAPFAILURE:
- case RPC_PROGNOTREGISTERED:
- case RPC_FAILED:
- break;
-
- case RPC_CANTSEND:
- case RPC_CANTRECV:
- (void) sprintf(str, "; errno = %s", sys_errlist[e.re_errno]);
- str += strlen(str);
- break;
-
- case RPC_VERSMISMATCH:
- (void) sprintf(str,
- "; low version = %lu, high version = %lu",
- e.re_vers.low, e.re_vers.high);
- str += strlen(str);
- break;
-
- case RPC_AUTHERROR:
- err = auth_errmsg(e.re_why);
- (void) sprintf(str, "; why = ");
- str += strlen(str);
- if (err != NULL) {
- (void) sprintf(str, "%s", err);
- } else {
- (void) sprintf(str,
- "(unknown authentication error - %d)",
- (int) e.re_why);
- }
- str += strlen(str);
- break;
-
- case RPC_PROGVERSMISMATCH:
- (void) sprintf(str,
- "; low version = %lu, high version = %lu",
- e.re_vers.low, e.re_vers.high);
- str += strlen(str);
- break;
-
- default: /* unknown */
- (void) sprintf(str,
- "; s1 = %lu, s2 = %lu", e.re_lb.s1, e.re_lb.s2);
- str += strlen(str);
- break;
- }
- (void) sprintf(str, "\n");
- return (strstart);
-#endif
- return (0);
-}
-
-void clnt_perror __P ((CLIENT *rpch, const char *s))
-{
- (void) fprintf(stderr, "%s", clnt_sperror(rpch, s));
-}
-
-
-struct rpc_errtab {
- enum clnt_stat status;
- char *message;
-};
-
-#if 0
-static struct rpc_errtab rpc_errlist[] = {
- {RPC_SUCCESS,
- "RPC: Success"},
- {RPC_CANTENCODEARGS,
- "RPC: Can't encode arguments"},
- {RPC_CANTDECODERES,
- "RPC: Can't decode result"},
- {RPC_CANTSEND,
- "RPC: Unable to send"},
- {RPC_CANTRECV,
- "RPC: Unable to receive"},
- {RPC_TIMEDOUT,
- "RPC: Timed out"},
- {RPC_VERSMISMATCH,
- "RPC: Incompatible versions of RPC"},
- {RPC_AUTHERROR,
- "RPC: Authentication error"},
- {RPC_PROGUNAVAIL,
- "RPC: Program unavailable"},
- {RPC_PROGVERSMISMATCH,
- "RPC: Program/version mismatch"},
- {RPC_PROCUNAVAIL,
- "RPC: Procedure unavailable"},
- {RPC_CANTDECODEARGS,
- "RPC: Server can't decode arguments"},
- {RPC_SYSTEMERROR,
- "RPC: Remote system error"},
- {RPC_UNKNOWNHOST,
- "RPC: Unknown host"},
- {RPC_UNKNOWNPROTO,
- "RPC: Unknown protocol"},
- {RPC_PMAPFAILURE,
- "RPC: Port mapper failure"},
- {RPC_PROGNOTREGISTERED,
- "RPC: Program not registered"},
- {RPC_FAILED,
- "RPC: Failed (unspecified error)"}
-};
-#endif
-
-/*
- * This interface for use by clntrpc
- */
-char *clnt_sperrno(stat)
-enum clnt_stat stat;
-{
-#if 0
- int i;
-
- for (i = 0; i < sizeof(rpc_errlist) / sizeof(struct rpc_errtab); i++) {
- if (rpc_errlist[i].status == stat) {
- return (rpc_errlist[i].message);
- }
- }
-#endif
- return ("RPC: (unknown error code)");
-}
-
-void clnt_perrno(num)
-enum clnt_stat num;
-{
- (void) fprintf(stderr, "%s", clnt_sperrno(num));
-}
-
-
-char *clnt_spcreateerror __P ((__const char *s))
-{
-#if 0
- extern int sys_nerr;
- extern char *sys_errlist[];
- char *str = _buf();
-
- if (str == 0)
- return (0);
- (void) sprintf(str, "%s: ", s);
- (void) strcat(str, clnt_sperrno(rpc_createerr.cf_stat));
- switch (rpc_createerr.cf_stat) {
- case RPC_PMAPFAILURE:
- (void) strcat(str, " - ");
- (void) strcat(str, clnt_sperrno(rpc_createerr.cf_error.re_status));
- break;
-
- case RPC_SYSTEMERROR:
- (void) strcat(str, " - ");
- if (rpc_createerr.cf_error.re_errno > 0
- && rpc_createerr.cf_error.re_errno < sys_nerr)
- (void) strcat(str,
- sys_errlist[rpc_createerr.cf_error.re_errno]);
- else
- (void) sprintf(&str[strlen(str)], "Error %d",
- rpc_createerr.cf_error.re_errno);
- break;
- }
- (void) strcat(str, "\n");
- return (str);
-#endif
- return(0);
-}
-
-extern void clnt_pcreateerror __P ((__const char *s))
-{
- (void) fprintf(stderr, "%s", clnt_spcreateerror(s));
-}
-
-struct auth_errtab {
- enum auth_stat status;
- char *message;
-};
-
-#if 0
-static struct auth_errtab auth_errlist[] = {
- {AUTH_OK,
- "Authentication OK"},
- {AUTH_BADCRED,
- "Invalid client credential"},
- {AUTH_REJECTEDCRED,
- "Server rejected credential"},
- {AUTH_BADVERF,
- "Invalid client verifier"},
- {AUTH_REJECTEDVERF,
- "Server rejected verifier"},
- {AUTH_TOOWEAK,
- "Client credential too weak"},
- {AUTH_INVALIDRESP,
- "Invalid server verifier"},
- {AUTH_FAILED,
- "Failed (unspecified error)"},
-};
-
-static char *auth_errmsg(stat)
-enum auth_stat stat;
-{
- int i;
-
- for (i = 0; i < sizeof(auth_errlist) / sizeof(struct auth_errtab); i++) {
- if (auth_errlist[i].status == stat) {
- return (auth_errlist[i].message);
- }
- }
- return (NULL);
-}
-#endif
diff --git a/mdk-stage1/dietlibc/librpc/clnt_raw.c b/mdk-stage1/dietlibc/librpc/clnt_raw.c
deleted file mode 100644
index 7479b55d6..000000000
--- a/mdk-stage1/dietlibc/librpc/clnt_raw.c
+++ /dev/null
@@ -1,230 +0,0 @@
-/* @(#)clnt_raw.c 2.2 88/08/01 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)clnt_raw.c 1.22 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * clnt_raw.c
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * Memory based rpc for simple testing and timing.
- * Interface to create an rpc client and server in the same process.
- * This lets us similate rpc and get round trip overhead, without
- * any interference from the kernal.
- */
-
-#include <rpc/rpc.h>
-
-#define MCALL_MSG_SIZE 24
-
-/*
- * This is the "network" we will be moving stuff over.
- */
-static struct clntraw_private {
- CLIENT client_object;
- XDR xdr_stream;
- char _raw_buf[UDPMSGSIZE];
- char mashl_callmsg[MCALL_MSG_SIZE];
- u_int mcnt;
-} *clntraw_private;
-
-static enum clnt_stat clntraw_call();
-static void clntraw_abort();
-static void clntraw_geterr();
-static bool_t clntraw_freeres();
-static bool_t clntraw_control();
-static void clntraw_destroy();
-
-static struct clnt_ops client_ops = {
- clntraw_call,
- clntraw_abort,
- clntraw_geterr,
- clntraw_freeres,
- clntraw_destroy,
- clntraw_control
-};
-
-void svc_getreq();
-
-/*
- * Create a client handle for memory based rpc.
- */
-CLIENT *clntraw_create(prog, vers)
-u_long prog;
-u_long vers;
-{
- register struct clntraw_private *clp = clntraw_private;
- struct rpc_msg call_msg;
- XDR *xdrs = &clp->xdr_stream;
- CLIENT *client = &clp->client_object;
-
- if (clp == 0) {
- clp = (struct clntraw_private *) calloc(1, sizeof(*clp));
- if (clp == 0)
- return (0);
- clntraw_private = clp;
- }
- /*
- * pre-serialize the staic part of the call msg and stash it away
- */
- call_msg.rm_direction = CALL;
- call_msg.rm_call.cb_rpcvers = RPC_MSG_VERSION;
- call_msg.rm_call.cb_prog = prog;
- call_msg.rm_call.cb_vers = vers;
- xdrmem_create(xdrs, clp->mashl_callmsg, MCALL_MSG_SIZE, XDR_ENCODE);
- if (!xdr_callhdr(xdrs, &call_msg)) {
- perror("clnt_raw.c - Fatal header serialization error.");
- }
- clp->mcnt = XDR_GETPOS(xdrs);
- XDR_DESTROY(xdrs);
-
- /*
- * Set xdrmem for client/server shared buffer
- */
- xdrmem_create(xdrs, clp->_raw_buf, UDPMSGSIZE, XDR_FREE);
-
- /*
- * create client handle
- */
- client->cl_ops = &client_ops;
- client->cl_auth = authnone_create();
- return (client);
-}
-
-static enum clnt_stat
-clntraw_call(h, proc, xargs, argsp, xresults, resultsp, timeout)
-CLIENT *h;
-u_long proc;
-xdrproc_t xargs;
-caddr_t argsp;
-xdrproc_t xresults;
-caddr_t resultsp;
-struct timeval timeout;
-{
- register struct clntraw_private *clp = clntraw_private;
- register XDR *xdrs = &clp->xdr_stream;
- struct rpc_msg msg;
- enum clnt_stat status;
- struct rpc_err error;
-
- if (clp == 0)
- return (RPC_FAILED);
- call_again:
- /*
- * send request
- */
- xdrs->x_op = XDR_ENCODE;
- XDR_SETPOS(xdrs, 0);
- ((struct rpc_msg *) clp->mashl_callmsg)->rm_xid++;
- if ((!XDR_PUTBYTES(xdrs, clp->mashl_callmsg, clp->mcnt)) ||
- (!XDR_PUTLONG(xdrs, (long *) &proc)) ||
- (!AUTH_MARSHALL(h->cl_auth, xdrs)) || (!(*xargs) (xdrs, argsp))) {
- return (RPC_CANTENCODEARGS);
- }
- (void) XDR_GETPOS(xdrs); /* called just to cause overhead */
-
- /*
- * We have to call server input routine here because this is
- * all going on in one process. Yuk.
- */
- svc_getreq(1);
-
- /*
- * get results
- */
- xdrs->x_op = XDR_DECODE;
- XDR_SETPOS(xdrs, 0);
- msg.acpted_rply.ar_verf = _null_auth;
- msg.acpted_rply.ar_results.where = resultsp;
- msg.acpted_rply.ar_results.proc = xresults;
- if (!xdr_replymsg(xdrs, &msg))
- return (RPC_CANTDECODERES);
- _seterr_reply(&msg, &error);
- status = error.re_status;
-
- if (status == RPC_SUCCESS) {
- if (!AUTH_VALIDATE(h->cl_auth, &msg.acpted_rply.ar_verf)) {
- status = RPC_AUTHERROR;
- }
- } /* end successful completion */
- else {
- if (AUTH_REFRESH(h->cl_auth))
- goto call_again;
- } /* end of unsuccessful completion */
-
- if (status == RPC_SUCCESS) {
- if (!AUTH_VALIDATE(h->cl_auth, &msg.acpted_rply.ar_verf)) {
- status = RPC_AUTHERROR;
- }
- if (msg.acpted_rply.ar_verf.oa_base != NULL) {
- xdrs->x_op = XDR_FREE;
- (void) xdr_opaque_auth(xdrs, &(msg.acpted_rply.ar_verf));
- }
- }
-
- return (status);
-}
-
-static void clntraw_geterr()
-{
-}
-
-
-static bool_t clntraw_freeres(cl, xdr_res, res_ptr)
-CLIENT *cl;
-xdrproc_t xdr_res;
-caddr_t res_ptr;
-{
- register struct clntraw_private *clp = clntraw_private;
- register XDR *xdrs = &clp->xdr_stream;
- bool_t rval;
-
- if (clp == 0) {
- rval = (bool_t) RPC_FAILED;
- return (rval);
- }
- xdrs->x_op = XDR_FREE;
- return ((*xdr_res) (xdrs, res_ptr));
-}
-
-static void clntraw_abort()
-{
-}
-
-static bool_t clntraw_control()
-{
- return (FALSE);
-}
-
-static void clntraw_destroy()
-{
-}
diff --git a/mdk-stage1/dietlibc/librpc/clnt_simple.c b/mdk-stage1/dietlibc/librpc/clnt_simple.c
deleted file mode 100644
index f309f86ff..000000000
--- a/mdk-stage1/dietlibc/librpc/clnt_simple.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/* @(#)clnt_simple.c 2.2 88/08/01 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] =
-
- "@(#)clnt_simple.c 1.35 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * clnt_simple.c
- * Simplified front end to rpc.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#include <stdio.h>
-#include <unistd.h>
-#include <rpc/rpc.h>
-#include <sys/socket.h>
-#include <netdb.h>
-#include <string.h>
-
-static struct callrpc_private {
- CLIENT *client;
- int socket;
- int oldprognum, oldversnum, valid;
- char *oldhost;
-} *callrpc_private;
-
-int callrpc (const char *host, const u_long prognum,
- const u_long versnum, const u_long procnum,
- const xdrproc_t inproc, const char *in,
- const xdrproc_t outproc, char *out)
-{
- register struct callrpc_private *crp = callrpc_private;
- struct sockaddr_in server_addr;
- enum clnt_stat clnt_stat;
- struct hostent *hp;
- struct timeval timeout, tottimeout;
-
- if (crp == 0) {
- crp = (struct callrpc_private *) calloc(1, sizeof(*crp));
- if (crp == 0)
- return (0);
- callrpc_private = crp;
- }
- if (crp->oldhost == NULL) {
- crp->oldhost = malloc(256);
- crp->oldhost[0] = 0;
- crp->socket = RPC_ANYSOCK;
- }
- if (crp->valid && crp->oldprognum == prognum
- && crp->oldversnum == versnum && strcmp(crp->oldhost, host) == 0) {
- /* reuse old client */
- } else {
- crp->valid = 0;
- (void) close(crp->socket);
- crp->socket = RPC_ANYSOCK;
- if (crp->client) {
- clnt_destroy(crp->client);
- crp->client = NULL;
- }
- if ((hp = gethostbyname(host)) == NULL)
- return ((int) RPC_UNKNOWNHOST);
- timeout.tv_usec = 0;
- timeout.tv_sec = 5;
- bcopy(hp->h_addr, (char *) &server_addr.sin_addr, hp->h_length);
- server_addr.sin_family = AF_INET;
- server_addr.sin_port = 0;
- if ((crp->client = clntudp_create(&server_addr, (u_long) prognum,
- (u_long) versnum, timeout,
- &crp->socket)) == NULL)
- return ((int) rpc_createerr.cf_stat);
- crp->valid = 1;
- crp->oldprognum = prognum;
- crp->oldversnum = versnum;
- (void) strcpy(crp->oldhost, host);
- }
- tottimeout.tv_sec = 25;
- tottimeout.tv_usec = 0;
- clnt_stat = clnt_call(crp->client, procnum, inproc, (char*)in,
- outproc, out, tottimeout);
- /*
- * if call failed, empty cache
- */
- if (clnt_stat != RPC_SUCCESS)
- crp->valid = 0;
- return ((int) clnt_stat);
-}
diff --git a/mdk-stage1/dietlibc/librpc/clnt_tcp.c b/mdk-stage1/dietlibc/librpc/clnt_tcp.c
deleted file mode 100644
index 8c39e8933..000000000
--- a/mdk-stage1/dietlibc/librpc/clnt_tcp.c
+++ /dev/null
@@ -1,463 +0,0 @@
-/* @(#)clnt_tcp.c 2.2 88/08/01 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)clnt_tcp.c 1.37 87/10/05 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * clnt_tcp.c, Implements a TCP/IP based, client side RPC.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * TCP based RPC supports 'batched calls'.
- * A sequence of calls may be batched-up in a send buffer. The rpc call
- * return immediately to the client even though the call was not necessarily
- * sent. The batching occurs if the results' xdr routine is NULL (0) AND
- * the rpc timeout value is zero (see clnt.h, rpc).
- *
- * Clients should NOT casually batch calls that in fact return results; that is,
- * the server side should be aware that a call is batched and not produce any
- * return message. Batched calls that produce many result messages can
- * deadlock (netlock) the client and the server....
- *
- * Now go hang yourself.
- */
-
-#include <stdio.h>
-#include <rpc/rpc.h>
-#include <sys/socket.h>
-#include <netdb.h>
-#include <errno.h>
-#include <rpc/pmap_clnt.h>
-#include <unistd.h>
-
-#define MCALL_MSG_SIZE 24
-
-extern int errno;
-
-static int readtcp();
-static int writetcp();
-
-static enum clnt_stat clnttcp_call();
-static void clnttcp_abort();
-static void clnttcp_geterr();
-static bool_t clnttcp_freeres();
-static bool_t clnttcp_control();
-static void clnttcp_destroy();
-
-static struct clnt_ops tcp_ops = {
- clnttcp_call,
- clnttcp_abort,
- clnttcp_geterr,
- clnttcp_freeres,
- clnttcp_destroy,
- clnttcp_control
-};
-
-struct ct_data {
- int ct_sock;
- bool_t ct_closeit;
- struct timeval ct_wait;
- bool_t ct_waitset; /* wait set by clnt_control? */
- struct sockaddr_in ct_addr;
- struct rpc_err ct_error;
- char ct_mcall[MCALL_MSG_SIZE]; /* marshalled callmsg */
- u_int ct_mpos; /* pos after marshal */
- XDR ct_xdrs;
-};
-
-/*
- * Create a client handle for a tcp/ip connection.
- * If *sockp<0, *sockp is set to a newly created TCP socket and it is
- * connected to raddr. If *sockp non-negative then
- * raddr is ignored. The rpc/tcp package does buffering
- * similar to stdio, so the client must pick send and receive buffer sizes,];
- * 0 => use the default.
- * If raddr->sin_port is 0, then a binder on the remote machine is
- * consulted for the right port number.
- * NB: *sockp is copied into a private area.
- * NB: It is the clients responsibility to close *sockp.
- * NB: The rpch->cl_auth is set null authentication. Caller may wish to set this
- * something more useful.
- */
-CLIENT *clnttcp_create(raddr, prog, vers, sockp, sendsz, recvsz)
-struct sockaddr_in *raddr;
-u_long prog;
-u_long vers;
-register int *sockp;
-u_int sendsz;
-u_int recvsz;
-{
- CLIENT *h;
- register struct ct_data *ct;
- struct timeval now;
- struct rpc_msg call_msg;
-
- h = (CLIENT *) mem_alloc(sizeof(*h));
- if (h == NULL) {
- (void) fprintf(stderr, "clnttcp_create: out of memory\n");
- rpc_createerr.cf_stat = RPC_SYSTEMERROR;
- rpc_createerr.cf_error.re_errno = errno;
- goto fooy;
- }
- ct = (struct ct_data *) mem_alloc(sizeof(*ct));
- if (ct == NULL) {
- (void) fprintf(stderr, "clnttcp_create: out of memory\n");
- rpc_createerr.cf_stat = RPC_SYSTEMERROR;
- rpc_createerr.cf_error.re_errno = errno;
- goto fooy;
- }
-
- /*
- * If no port number given ask the pmap for one
- */
- if (raddr->sin_port == 0) {
- u_short port;
-
- if ((port = pmap_getport(raddr, prog, vers, IPPROTO_TCP)) == 0) {
- mem_free((caddr_t) ct, sizeof(struct ct_data));
-
- mem_free((caddr_t) h, sizeof(CLIENT));
- return ((CLIENT *) NULL);
- }
- raddr->sin_port = htons(port);
- }
-
- /*
- * If no socket given, open one
- */
- if (*sockp < 0) {
- *sockp = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
- (void) bindresvport(*sockp, (struct sockaddr_in *) 0);
- if ((*sockp < 0)
- || (connect(*sockp, (struct sockaddr *) raddr,
- sizeof(*raddr)) < 0)) {
- rpc_createerr.cf_stat = RPC_SYSTEMERROR;
- rpc_createerr.cf_error.re_errno = errno;
- (void) close(*sockp);
- goto fooy;
- }
- ct->ct_closeit = TRUE;
- } else {
- ct->ct_closeit = FALSE;
- }
-
- /*
- * Set up private data struct
- */
- ct->ct_sock = *sockp;
- ct->ct_wait.tv_usec = 0;
- ct->ct_waitset = FALSE;
- ct->ct_addr = *raddr;
-
- /*
- * Initialize call message
- */
- (void) gettimeofday(&now, (struct timezone *) 0);
- call_msg.rm_xid = getpid() ^ now.tv_sec ^ now.tv_usec;
- call_msg.rm_direction = CALL;
- call_msg.rm_call.cb_rpcvers = RPC_MSG_VERSION;
- call_msg.rm_call.cb_prog = prog;
- call_msg.rm_call.cb_vers = vers;
-
- /*
- * pre-serialize the staic part of the call msg and stash it away
- */
- xdrmem_create(&(ct->ct_xdrs), ct->ct_mcall, MCALL_MSG_SIZE,
- XDR_ENCODE);
- if (!xdr_callhdr(&(ct->ct_xdrs), &call_msg)) {
- if (ct->ct_closeit) {
- (void) close(*sockp);
- }
- goto fooy;
- }
- ct->ct_mpos = XDR_GETPOS(&(ct->ct_xdrs));
- XDR_DESTROY(&(ct->ct_xdrs));
-
- /*
- * Create a client handle which uses xdrrec for serialization
- * and authnone for authentication.
- */
- xdrrec_create(&(ct->ct_xdrs), sendsz, recvsz,
- (caddr_t) ct, readtcp, writetcp);
- h->cl_ops = &tcp_ops;
- h->cl_private = (caddr_t) ct;
- h->cl_auth = authnone_create();
- return (h);
-
- fooy:
- /*
- * Something goofed, free stuff and barf
- */
- mem_free((caddr_t) ct, sizeof(struct ct_data));
-
- mem_free((caddr_t) h, sizeof(CLIENT));
- return ((CLIENT *) NULL);
-}
-
-static enum clnt_stat
-clnttcp_call(h, proc, xdr_args, args_ptr, xdr_results, results_ptr,
- timeout)
-register CLIENT *h;
-u_long proc;
-xdrproc_t xdr_args;
-caddr_t args_ptr;
-xdrproc_t xdr_results;
-caddr_t results_ptr;
-struct timeval timeout;
-{
- register struct ct_data *ct = (struct ct_data *) h->cl_private;
- register XDR *xdrs = &(ct->ct_xdrs);
- struct rpc_msg reply_msg;
- u_long x_id;
- u_long *msg_x_id = (u_long *) (ct->ct_mcall); /* yuk */
- register bool_t shipnow;
- int refreshes = 2;
-
- if (!ct->ct_waitset) {
- ct->ct_wait = timeout;
- }
-
- shipnow =
- (xdr_results == (xdrproc_t) 0 && timeout.tv_sec == 0
- && timeout.tv_usec == 0) ? FALSE : TRUE;
-
- call_again:
- xdrs->x_op = XDR_ENCODE;
- ct->ct_error.re_status = RPC_SUCCESS;
- x_id = ntohl(--(*msg_x_id));
- if ((!XDR_PUTBYTES(xdrs, ct->ct_mcall, ct->ct_mpos)) ||
- (!XDR_PUTLONG(xdrs, (long *) &proc)) ||
- (!AUTH_MARSHALL(h->cl_auth, xdrs)) ||
- (!(*xdr_args) (xdrs, args_ptr))) {
- if (ct->ct_error.re_status == RPC_SUCCESS)
- ct->ct_error.re_status = RPC_CANTENCODEARGS;
- (void) xdrrec_endofrecord(xdrs, TRUE);
- return (ct->ct_error.re_status);
- }
- if (!xdrrec_endofrecord(xdrs, shipnow))
- return (ct->ct_error.re_status = RPC_CANTSEND);
- if (!shipnow)
- return (RPC_SUCCESS);
- /*
- * Hack to provide rpc-based message passing
- */
- if (timeout.tv_sec == 0 && timeout.tv_usec == 0) {
- return (ct->ct_error.re_status = RPC_TIMEDOUT);
- }
-
-
- /*
- * Keep receiving until we get a valid transaction id
- */
- xdrs->x_op = XDR_DECODE;
- while (TRUE) {
- reply_msg.acpted_rply.ar_verf = _null_auth;
- reply_msg.acpted_rply.ar_results.where = NULL;
- reply_msg.acpted_rply.ar_results.proc = (xdrproc_t)xdr_void;
- if (!xdrrec_skiprecord(xdrs))
- return (ct->ct_error.re_status);
- /* now decode and validate the response header */
- if (!xdr_replymsg(xdrs, &reply_msg)) {
- if (ct->ct_error.re_status == RPC_SUCCESS)
- continue;
- return (ct->ct_error.re_status);
- }
- if (reply_msg.rm_xid == x_id)
- break;
- }
-
- /*
- * process header
- */
- _seterr_reply(&reply_msg, &(ct->ct_error));
- if (ct->ct_error.re_status == RPC_SUCCESS) {
- if (!AUTH_VALIDATE(h->cl_auth, &reply_msg.acpted_rply.ar_verf)) {
- ct->ct_error.re_status = RPC_AUTHERROR;
- ct->ct_error.re_why = AUTH_INVALIDRESP;
- } else if (!(*xdr_results) (xdrs, results_ptr)) {
- if (ct->ct_error.re_status == RPC_SUCCESS)
- ct->ct_error.re_status = RPC_CANTDECODERES;
- }
- /* free verifier ... */
- if (reply_msg.acpted_rply.ar_verf.oa_base != NULL) {
- xdrs->x_op = XDR_FREE;
- (void) xdr_opaque_auth(xdrs, &(reply_msg.acpted_rply.ar_verf));
- }
- } /* end successful completion */
- else {
- /* maybe our credentials need to be refreshed ... */
- if (refreshes-- && AUTH_REFRESH(h->cl_auth))
- goto call_again;
- } /* end of unsuccessful completion */
- return (ct->ct_error.re_status);
-}
-
-static void clnttcp_geterr(h, errp)
-CLIENT *h;
-struct rpc_err *errp;
-{
- register struct ct_data *ct = (struct ct_data *) h->cl_private;
-
- *errp = ct->ct_error;
-}
-
-static bool_t clnttcp_freeres(cl, xdr_res, res_ptr)
-CLIENT *cl;
-xdrproc_t xdr_res;
-caddr_t res_ptr;
-{
- register struct ct_data *ct = (struct ct_data *) cl->cl_private;
- register XDR *xdrs = &(ct->ct_xdrs);
-
- xdrs->x_op = XDR_FREE;
- return ((*xdr_res) (xdrs, res_ptr));
-}
-
-static void clnttcp_abort()
-{
-}
-
-static bool_t clnttcp_control(cl, request, info)
-CLIENT *cl;
-int request;
-char *info;
-{
- register struct ct_data *ct = (struct ct_data *) cl->cl_private;
-
- switch (request) {
- case CLSET_TIMEOUT:
- ct->ct_wait = *(struct timeval *) info;
- ct->ct_waitset = TRUE;
- break;
- case CLGET_TIMEOUT:
- *(struct timeval *) info = ct->ct_wait;
- break;
- case CLGET_SERVER_ADDR:
- *(struct sockaddr_in *) info = ct->ct_addr;
- break;
- default:
- return (FALSE);
- }
- return (TRUE);
-}
-
-
-static void clnttcp_destroy(h)
-CLIENT *h;
-{
- register struct ct_data *ct = (struct ct_data *) h->cl_private;
-
- if (ct->ct_closeit) {
- (void) close(ct->ct_sock);
- }
- XDR_DESTROY(&(ct->ct_xdrs));
- mem_free((caddr_t) ct, sizeof(struct ct_data));
-
- mem_free((caddr_t) h, sizeof(CLIENT));
-}
-
-/*
- * Interface between xdr serializer and tcp connection.
- * Behaves like the system calls, read & write, but keeps some error state
- * around for the rpc level.
- */
-static int readtcp(ct, buf, len)
-register struct ct_data *ct;
-caddr_t buf;
-register int len;
-{
-#ifdef FD_SETSIZE
- fd_set mask;
- fd_set readfds;
-
- if (len == 0)
- return (0);
- FD_ZERO(&mask);
- FD_SET(ct->ct_sock, &mask);
-#else
- register int mask = 1 << (ct->ct_sock);
- int readfds;
-
- if (len == 0)
- return (0);
-
-#endif /* def FD_SETSIZE */
- while (TRUE) {
- readfds = mask;
- switch (select
- (_rpc_dtablesize(), &readfds, 0, 0,
- &(ct->ct_wait))) {
- case 0:
- ct->ct_error.re_status = RPC_TIMEDOUT;
- return (-1);
-
- case -1:
- if (errno == EINTR)
- continue;
- ct->ct_error.re_status = RPC_CANTRECV;
- ct->ct_error.re_errno = errno;
- return (-1);
- }
- break;
- }
- switch (len = read(ct->ct_sock, buf, len)) {
-
- case 0:
- /* premature eof */
- ct->ct_error.re_errno = ECONNRESET;
- ct->ct_error.re_status = RPC_CANTRECV;
- len = -1; /* it's really an error */
- break;
-
- case -1:
- ct->ct_error.re_errno = errno;
- ct->ct_error.re_status = RPC_CANTRECV;
- break;
- }
- return (len);
-}
-
-static int writetcp(ct, buf, len)
-struct ct_data *ct;
-caddr_t buf;
-int len;
-{
- register int i, cnt;
-
- for (cnt = len; cnt > 0; cnt -= i, buf += i) {
- if ((i = write(ct->ct_sock, buf, cnt)) == -1) {
- ct->ct_error.re_errno = errno;
- ct->ct_error.re_status = RPC_CANTSEND;
- return (-1);
- }
- }
- return (len);
-}
diff --git a/mdk-stage1/dietlibc/librpc/clnt_udp.c b/mdk-stage1/dietlibc/librpc/clnt_udp.c
deleted file mode 100644
index 7305d3ff1..000000000
--- a/mdk-stage1/dietlibc/librpc/clnt_udp.c
+++ /dev/null
@@ -1,437 +0,0 @@
-/* @(#)clnt_udp.c 2.2 88/08/01 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)clnt_udp.c 1.39 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * clnt_udp.c, Implements a UDP/IP based, client side RPC.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#include <stdio.h>
-#include <rpc/rpc.h>
-#include <sys/socket.h>
-#include <sys/ioctl.h>
-#include <netdb.h>
-#include <errno.h>
-#include <rpc/pmap_clnt.h>
-#include <unistd.h>
-
-extern int errno;
-
-/*
- * UDP bases client side rpc operations
- */
-static enum clnt_stat clntudp_call();
-static void clntudp_abort();
-static void clntudp_geterr();
-static bool_t clntudp_freeres();
-static bool_t clntudp_control();
-static void clntudp_destroy();
-
-static struct clnt_ops udp_ops = {
- clntudp_call,
- clntudp_abort,
- clntudp_geterr,
- clntudp_freeres,
- clntudp_destroy,
- clntudp_control
-};
-
-/*
- * Private data kept per client handle
- */
-struct cu_data {
- int cu_sock;
- bool_t cu_closeit;
- struct sockaddr_in cu_raddr;
- int cu_rlen;
- struct timeval cu_wait;
- struct timeval cu_total;
- struct rpc_err cu_error;
- XDR cu_outxdrs;
- u_int cu_xdrpos;
- u_int cu_sendsz;
- char *cu_outbuf;
- u_int cu_recvsz;
- char cu_inbuf[1];
-};
-
-/*
- * Create a UDP based client handle.
- * If *sockp<0, *sockp is set to a newly created UPD socket.
- * If raddr->sin_port is 0 a binder on the remote machine
- * is consulted for the correct port number.
- * NB: It is the clients responsibility to close *sockp.
- * NB: The rpch->cl_auth is initialized to null authentication.
- * Caller may wish to set this something more useful.
- *
- * wait is the amount of time used between retransmitting a call if
- * no response has been heard; retransmition occurs until the actual
- * rpc call times out.
- *
- * sendsz and recvsz are the maximum allowable packet sizes that can be
- * sent and received.
- */
-CLIENT *clntudp_bufcreate(raddr, program, version, wait, sockp, sendsz,
- recvsz)
-struct sockaddr_in *raddr;
-u_long program;
-u_long version;
-struct timeval wait;
-register int *sockp;
-u_int sendsz;
-u_int recvsz;
-{
- CLIENT *cl;
- register struct cu_data *cu;
- struct timeval now;
- struct rpc_msg call_msg;
-
- cl = (CLIENT *) mem_alloc(sizeof(CLIENT));
- if (cl == NULL) {
- (void) fprintf(stderr, "clntudp_create: out of memory\n");
- rpc_createerr.cf_stat = RPC_SYSTEMERROR;
- rpc_createerr.cf_error.re_errno = errno;
- goto fooy;
- }
- sendsz = ((sendsz + 3) / 4) * 4;
- recvsz = ((recvsz + 3) / 4) * 4;
- cu = (struct cu_data *) mem_alloc(sizeof(*cu) + sendsz + recvsz);
- if (cu == NULL) {
- (void) fprintf(stderr, "clntudp_create: out of memory\n");
- rpc_createerr.cf_stat = RPC_SYSTEMERROR;
- rpc_createerr.cf_error.re_errno = errno;
- goto fooy;
- }
- cu->cu_outbuf = &cu->cu_inbuf[recvsz];
-
- (void) gettimeofday(&now, (struct timezone *) 0);
- if (raddr->sin_port == 0) {
- u_short port;
-
- if ((port =
- pmap_getport(raddr, program, version, IPPROTO_UDP)) == 0) {
- goto fooy;
- }
- raddr->sin_port = htons(port);
- }
- cl->cl_ops = &udp_ops;
- cl->cl_private = (caddr_t) cu;
- cu->cu_raddr = *raddr;
- cu->cu_rlen = sizeof(cu->cu_raddr);
- cu->cu_wait = wait;
- cu->cu_total.tv_sec = -1;
- cu->cu_total.tv_usec = -1;
- cu->cu_sendsz = sendsz;
- cu->cu_recvsz = recvsz;
- call_msg.rm_xid = getpid() ^ now.tv_sec ^ now.tv_usec;
- call_msg.rm_direction = CALL;
- call_msg.rm_call.cb_rpcvers = RPC_MSG_VERSION;
- call_msg.rm_call.cb_prog = program;
- call_msg.rm_call.cb_vers = version;
- xdrmem_create(&(cu->cu_outxdrs), cu->cu_outbuf, sendsz, XDR_ENCODE);
- if (!xdr_callhdr(&(cu->cu_outxdrs), &call_msg)) {
- goto fooy;
- }
- cu->cu_xdrpos = XDR_GETPOS(&(cu->cu_outxdrs));
- if (*sockp < 0) {
- int dontblock = 1;
-
- *sockp = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
- if (*sockp < 0) {
- rpc_createerr.cf_stat = RPC_SYSTEMERROR;
- rpc_createerr.cf_error.re_errno = errno;
- goto fooy;
- }
- /* attempt to bind to prov port */
- (void) bindresvport(*sockp, (struct sockaddr_in *) 0);
- /* the sockets rpc controls are non-blocking */
- (void) ioctl(*sockp, FIONBIO, (char *) &dontblock);
- cu->cu_closeit = TRUE;
- } else {
- cu->cu_closeit = FALSE;
- }
- cu->cu_sock = *sockp;
- cl->cl_auth = authnone_create();
- return (cl);
- fooy:
- if (cu)
- mem_free((caddr_t) cu, sizeof(*cu) + sendsz + recvsz);
- if (cl)
- mem_free((caddr_t) cl, sizeof(CLIENT));
- return ((CLIENT *) NULL);
-}
-
-CLIENT *clntudp_create(raddr, program, version, wait, sockp)
-struct sockaddr_in *raddr;
-u_long program;
-u_long version;
-struct timeval wait;
-register int *sockp;
-{
-
- return (clntudp_bufcreate(raddr, program, version, wait, sockp,
- UDPMSGSIZE, UDPMSGSIZE));
-}
-
-static enum clnt_stat
-clntudp_call(cl, proc, xargs, argsp, xresults, resultsp, utimeout)
-register CLIENT *cl; /* client handle */
-u_long proc; /* procedure number */
-xdrproc_t xargs; /* xdr routine for args */
-caddr_t argsp; /* pointer to args */
-xdrproc_t xresults; /* xdr routine for results */
-caddr_t resultsp; /* pointer to results */
-struct timeval utimeout; /* seconds to wait before giving up */
-{
- register struct cu_data *cu = (struct cu_data *) cl->cl_private;
- register XDR *xdrs;
- register int outlen;
- register int inlen;
- int fromlen;
-
-#ifdef FD_SETSIZE
- fd_set readfds;
- fd_set mask;
-#else
- int readfds;
- register int mask;
-#endif /* def FD_SETSIZE */
- struct sockaddr_in from;
- struct rpc_msg reply_msg;
- XDR reply_xdrs;
- struct timeval time_waited;
- bool_t ok;
- int nrefreshes = 2; /* number of times to refresh cred */
- struct timeval timeout;
-
- if (cu->cu_total.tv_usec == -1) {
- timeout = utimeout; /* use supplied timeout */
- } else {
- timeout = cu->cu_total; /* use default timeout */
- }
-
- time_waited.tv_sec = 0;
- time_waited.tv_usec = 0;
- call_again:
- xdrs = &(cu->cu_outxdrs);
- xdrs->x_op = XDR_ENCODE;
- XDR_SETPOS(xdrs, cu->cu_xdrpos);
- /*
- * the transaction is the first thing in the out buffer
- */
- (*(u_short *) (cu->cu_outbuf))++;
- if ((!XDR_PUTLONG(xdrs, (long *) &proc)) ||
- (!AUTH_MARSHALL(cl->cl_auth, xdrs)) || (!(*xargs) (xdrs, argsp)))
- return (cu->cu_error.re_status = RPC_CANTENCODEARGS);
- outlen = (int) XDR_GETPOS(xdrs);
-
- send_again:
- if (sendto(cu->cu_sock, cu->cu_outbuf, outlen, 0,
- (struct sockaddr *) &(cu->cu_raddr), cu->cu_rlen)
- != outlen) {
- cu->cu_error.re_errno = errno;
- return (cu->cu_error.re_status = RPC_CANTSEND);
- }
-
- /*
- * Hack to provide rpc-based message passing
- */
- if (timeout.tv_sec == 0 && timeout.tv_usec == 0) {
- return (cu->cu_error.re_status = RPC_TIMEDOUT);
- }
- /*
- * sub-optimal code appears here because we have
- * some clock time to spare while the packets are in flight.
- * (We assume that this is actually only executed once.)
- */
- reply_msg.acpted_rply.ar_verf = _null_auth;
- reply_msg.acpted_rply.ar_results.where = resultsp;
- reply_msg.acpted_rply.ar_results.proc = xresults;
-#ifdef FD_SETSIZE
- FD_ZERO(&mask);
- FD_SET(cu->cu_sock, &mask);
-#else
- mask = 1 << cu->cu_sock;
-#endif /* def FD_SETSIZE */
- for (;;) {
- readfds = mask;
- switch (select(_rpc_dtablesize(), &readfds, 0, 0, &(cu->cu_wait))) {
-
- case 0:
- time_waited.tv_sec += cu->cu_wait.tv_sec;
- time_waited.tv_usec += cu->cu_wait.tv_usec;
- while (time_waited.tv_usec >= 1000000) {
- time_waited.tv_sec++;
- time_waited.tv_usec -= 1000000;
- }
- if ((time_waited.tv_sec < timeout.tv_sec) ||
- ((time_waited.tv_sec == timeout.tv_sec) &&
- (time_waited.tv_usec < timeout.tv_usec)))
- goto send_again;
- return (cu->cu_error.re_status = RPC_TIMEDOUT);
-
- /*
- * buggy in other cases because time_waited is not being
- * updated.
- */
- case -1:
- if (errno == EINTR)
- continue;
- cu->cu_error.re_errno = errno;
- return (cu->cu_error.re_status = RPC_CANTRECV);
- }
- do {
- fromlen = sizeof(struct sockaddr);
-
- inlen = recvfrom(cu->cu_sock, cu->cu_inbuf,
- (int) cu->cu_recvsz, 0,
- (struct sockaddr *) &from, &fromlen);
- } while (inlen < 0 && errno == EINTR);
- if (inlen < 0) {
- if (errno == EWOULDBLOCK)
- continue;
- cu->cu_error.re_errno = errno;
- return (cu->cu_error.re_status = RPC_CANTRECV);
- }
- if (inlen < sizeof(u_long))
- continue;
- /* see if reply transaction id matches sent id */
- if (*((u_long *) (cu->cu_inbuf)) != *((u_long *) (cu->cu_outbuf)))
- continue;
- /* we now assume we have the proper reply */
- break;
- }
-
- /*
- * now decode and validate the response
- */
- xdrmem_create(&reply_xdrs, cu->cu_inbuf, (u_int) inlen, XDR_DECODE);
- ok = xdr_replymsg(&reply_xdrs, &reply_msg);
- /* XDR_DESTROY(&reply_xdrs); save a few cycles on noop destroy */
- if (ok) {
- _seterr_reply(&reply_msg, &(cu->cu_error));
- if (cu->cu_error.re_status == RPC_SUCCESS) {
- if (!AUTH_VALIDATE(cl->cl_auth,
- &reply_msg.acpted_rply.ar_verf)) {
- cu->cu_error.re_status = RPC_AUTHERROR;
- cu->cu_error.re_why = AUTH_INVALIDRESP;
- }
- if (reply_msg.acpted_rply.ar_verf.oa_base != NULL) {
- xdrs->x_op = XDR_FREE;
- (void) xdr_opaque_auth(xdrs,
- &(reply_msg.acpted_rply.ar_verf));
- }
- } /* end successful completion */
- else {
- /* maybe our credentials need to be refreshed ... */
- if (nrefreshes > 0 && AUTH_REFRESH(cl->cl_auth)) {
- nrefreshes--;
- goto call_again;
- }
- } /* end of unsuccessful completion */
- } /* end of valid reply message */
- else {
- cu->cu_error.re_status = RPC_CANTDECODERES;
- }
- return (cu->cu_error.re_status);
-}
-
-static void clntudp_geterr(cl, errp)
-CLIENT *cl;
-struct rpc_err *errp;
-{
- register struct cu_data *cu = (struct cu_data *) cl->cl_private;
-
- *errp = cu->cu_error;
-}
-
-
-static bool_t clntudp_freeres(cl, xdr_res, res_ptr)
-CLIENT *cl;
-xdrproc_t xdr_res;
-caddr_t res_ptr;
-{
- register struct cu_data *cu = (struct cu_data *) cl->cl_private;
- register XDR *xdrs = &(cu->cu_outxdrs);
-
- xdrs->x_op = XDR_FREE;
- return ((*xdr_res) (xdrs, res_ptr));
-}
-
-static void clntudp_abort( /*h */ )
- /*CLIENT *h; */
-{
-}
-
-static bool_t clntudp_control(cl, request, info)
-CLIENT *cl;
-int request;
-char *info;
-{
- register struct cu_data *cu = (struct cu_data *) cl->cl_private;
-
- switch (request) {
- case CLSET_TIMEOUT:
- cu->cu_total = *(struct timeval *) info;
- break;
- case CLGET_TIMEOUT:
- *(struct timeval *) info = cu->cu_total;
- break;
- case CLSET_RETRY_TIMEOUT:
- cu->cu_wait = *(struct timeval *) info;
- break;
- case CLGET_RETRY_TIMEOUT:
- *(struct timeval *) info = cu->cu_wait;
- break;
- case CLGET_SERVER_ADDR:
- *(struct sockaddr_in *) info = cu->cu_raddr;
- break;
- default:
- return (FALSE);
- }
- return (TRUE);
-}
-
-static void clntudp_destroy(cl)
-CLIENT *cl;
-{
- register struct cu_data *cu = (struct cu_data *) cl->cl_private;
-
- if (cu->cu_closeit) {
- (void) close(cu->cu_sock);
- }
- XDR_DESTROY(&(cu->cu_outxdrs));
- mem_free((caddr_t) cu, (sizeof(*cu) + cu->cu_sendsz + cu->cu_recvsz));
- mem_free((caddr_t) cl, sizeof(CLIENT));
-}
diff --git a/mdk-stage1/dietlibc/librpc/get_myaddress.c b/mdk-stage1/dietlibc/librpc/get_myaddress.c
deleted file mode 100644
index cd63383d0..000000000
--- a/mdk-stage1/dietlibc/librpc/get_myaddress.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* @(#)get_myaddress.c 2.1 88/07/29 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] =
-
- "@(#)get_myaddress.c 1.4 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * get_myaddress.c
- *
- * Get client's IP address via ioctl. This avoids using the yellowpages.
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#include <rpc/types.h>
-#include <rpc/pmap_prot.h>
-#include <sys/socket.h>
-#include <stdio.h>
-//#include <net/if.h>
-#include <sys/ioctl.h>
-#include <arpa/inet.h>
-#include <netinet/in.h>
-
-/* DO use gethostbyname because it's portable */
-#include <unistd.h>
-#include <netdb.h>
-#include <string.h>
-void get_myaddress(struct sockaddr_in* addr)
-{
- char localhost[256 + 1];
- struct hostent *hp;
-
- gethostname(localhost, 256);
- if ((hp = gethostbyname(localhost)) == NULL) {
- perror("get_myaddress: gethostbyname");
- exit(1);
- }
- addr->sin_family = AF_INET;
- bcopy((char *) hp->h_addr, (char *) &addr->sin_addr, hp->h_length);
- addr->sin_port = htons(PMAPPORT);
-}
diff --git a/mdk-stage1/dietlibc/librpc/getrpcent.c b/mdk-stage1/dietlibc/librpc/getrpcent.c
deleted file mode 100644
index 5e7f694d2..000000000
--- a/mdk-stage1/dietlibc/librpc/getrpcent.c
+++ /dev/null
@@ -1,274 +0,0 @@
-/* @(#)getrpcent.c 2.2 88/07/29 4.0 RPCSRC */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] =
-
- "@(#)getrpcent.c 1.9 87/08/11 Copyr 1984 Sun Micro";
-#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.
- *
- * 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 by Sun Microsystems, Inc.
- */
-
-#include <stdio.h>
-#include <sys/types.h>
-#include <rpc/rpc.h>
-#include <netdb.h>
-#include <sys/socket.h>
-#include <string.h>
-
-/*
- * Internet version.
- */
-struct rpcdata {
- FILE *rpcf;
- char *current;
- int currentlen;
- int stayopen;
-#define MAXALIASES 35
- char *rpc_aliases[MAXALIASES];
- struct rpcent rpc;
- char line[BUFSIZ + 1];
- char *domain;
-} *rpcdata;
-
-static struct rpcent *interpret();
-struct hostent *gethostent();
-char *inet_ntoa();
-
-#ifndef __linux__
-static char *index();
-#else
-char *index();
-#endif
-
-static char RPCDB[] = "/etc/rpc";
-
-static struct rpcdata *_rpcdata()
-{
- register struct rpcdata *d = rpcdata;
-
- if (d == 0) {
- d = (struct rpcdata *) calloc(1, sizeof(struct rpcdata));
-
- rpcdata = d;
- }
- return (d);
-}
-
-struct rpcent *getrpcbynumber(number)
-register int number;
-{
- register struct rpcdata *d = _rpcdata();
- register struct rpcent *p;
-
- if (d == 0)
- return (0);
- setrpcent(0);
- while ((p = getrpcent())) {
- if (p->r_number == number)
- break;
- }
- endrpcent();
- return (p);
-}
-
-struct rpcent *
-#ifdef __linux__
-getrpcbyname(const char *name)
-#else
-getrpcbyname(name)
-char *name;
-#endif
-{
- struct rpcent *rpc;
- char **rp;
-
- setrpcent(0);
- while ((rpc = getrpcent())) {
- if (strcmp(rpc->r_name, name) == 0)
- return (rpc);
- for (rp = rpc->r_aliases; *rp != NULL; rp++) {
- if (strcmp(*rp, name) == 0)
- return (rpc);
- }
- }
- endrpcent();
- return (NULL);
-}
-
-#ifdef __linux__
-void
-#endif
-setrpcent(f)
-int f;
-{
- register struct rpcdata *d = _rpcdata();
-
- if (d == 0)
- return;
- if (d->rpcf == NULL)
- d->rpcf = fopen(RPCDB, "r");
- else
- rewind(d->rpcf);
- if (d->current)
- free(d->current);
- d->current = NULL;
- d->stayopen |= f;
-}
-
-#ifdef __linux__
-void
-#endif
-endrpcent()
-{
- register struct rpcdata *d = _rpcdata();
-
- if (d == 0)
- return;
- if (d->current && !d->stayopen) {
- free(d->current);
- d->current = NULL;
- }
- if (d->rpcf && !d->stayopen) {
- fclose(d->rpcf);
- d->rpcf = NULL;
- }
-}
-
-struct rpcent *getrpcent()
-{
- register struct rpcdata *d = _rpcdata();
-
- if (d == 0)
- return (NULL);
- if (d->rpcf == NULL && (d->rpcf = fopen(RPCDB, "r")) == NULL)
- return (NULL);
- if (fgets(d->line, BUFSIZ, d->rpcf) == NULL)
- return (NULL);
- return interpret(d->line, strlen(d->line));
-}
-
-#ifdef __linux__
-static char *firstwhite(s)
-char *s;
-{
- char *s1, *s2;
-
- s1 = index(s, ' ');
- s2 = index(s, '\t');
- if (s1) {
- if (s2)
- return (s1 < s2) ? s1 : s2;
- else
- return s1;
- } else
- return s2;
-}
-#endif
-
-static struct rpcent *interpret(const char* val, int len)
-{
- register struct rpcdata *d = _rpcdata();
- char *p;
- register char *cp, **q;
-
- if (d == 0)
- return 0;
- strncpy(d->line, val, len);
- p = d->line;
- d->line[len] = '\n';
- if (*p == '#')
- return (getrpcent());
- cp = index(p, '#');
- if (cp == NULL) {
- cp = index(p, '\n');
- if (cp == NULL)
- return (getrpcent());
- }
- *cp = '\0';
-#ifdef __linux__
- if ((cp = firstwhite(p)))
- *cp++ = 0;
- else
- return (getrpcent());
-#else
- cp = index(p, ' ');
- if (cp == NULL) {
- cp = index(p, '\t');
- if (cp == NULL)
- return (getrpcent());
- }
- *cp++ = '\0';
-#endif
- /* THIS STUFF IS INTERNET SPECIFIC */
- d->rpc.r_name = d->line;
- while (*cp == ' ' || *cp == '\t')
- cp++;
- d->rpc.r_number = atoi(cp);
- q = d->rpc.r_aliases = d->rpc_aliases;
-#ifdef __linux__
- if ((cp = firstwhite(cp)))
- *cp++ = '\0';
-#else
- cp = index(p, ' ');
- if (cp != NULL)
- *cp++ = '\0';
- else {
- cp = index(p, '\t');
- if (cp != NULL)
- *cp++ = '\0';
- }
-#endif
- while (cp && *cp) {
- if (*cp == ' ' || *cp == '\t') {
- cp++;
- continue;
- }
- if (q < &(d->rpc_aliases[MAXALIASES - 1]))
- *q++ = cp;
-#ifdef __linux__
- if ((cp = firstwhite(cp)))
- *cp++ = '\0';
-#else
- cp = index(p, ' ');
- if (cp != NULL)
- *cp++ = '\0';
- else {
- cp = index(p, '\t');
- if (cp != NULL)
- *cp++ = '\0';
- }
-#endif
- }
- *q = NULL;
- return (&d->rpc);
-}
diff --git a/mdk-stage1/dietlibc/librpc/getrpcport.c b/mdk-stage1/dietlibc/librpc/getrpcport.c
deleted file mode 100644
index a7085cbe7..000000000
--- a/mdk-stage1/dietlibc/librpc/getrpcport.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* @(#)getrpcport.c 2.1 88/07/29 4.0 RPCSRC */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)getrpcport.c 1.3 87/08/11 SMI";
-#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.
- *
- * 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 by Sun Microsystems, Inc.
- */
-
-#include <stdio.h>
-#include <rpc/rpc.h>
-#include <netdb.h>
-#include <sys/socket.h>
-#include <string.h>
-#include <rpc/pmap_clnt.h>
-
-extern int getrpcport (const char * host, u_long prognum,
- u_long versnum, u_int proto)
-{
- struct sockaddr_in addr;
- struct hostent *hp;
-
- if ((hp = gethostbyname(host)) == NULL)
- return (0);
- bcopy(hp->h_addr, (char *) &addr.sin_addr, hp->h_length);
- addr.sin_family = AF_INET;
- addr.sin_port = 0;
- return (pmap_getport(&addr, prognum, versnum, proto));
-}
diff --git a/mdk-stage1/dietlibc/librpc/pmap_clnt.c b/mdk-stage1/dietlibc/librpc/pmap_clnt.c
deleted file mode 100644
index 428675656..000000000
--- a/mdk-stage1/dietlibc/librpc/pmap_clnt.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/* @(#)pmap_clnt.c 2.2 88/08/01 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] =
-
- "@(#)pmap_clnt.c 1.37 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * pmap_clnt.c
- * Client interface to pmap rpc service.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#include <rpc/rpc.h>
-#include <rpc/pmap_prot.h>
-#include <rpc/pmap_clnt.h>
-#include <unistd.h>
-
-static struct timeval timeout = { 5, 0 };
-static struct timeval tottimeout = { 60, 0 };
-
-void clnt_perror();
-
-
-/*
- * Set a mapping between program,version and port.
- * Calls the pmap service remotely to do the mapping.
- */
-bool_t pmap_set(program, version, protocol, port)
-u_long program;
-u_long version;
-int protocol;
-u_short port;
-{
- struct sockaddr_in myaddress;
- int socket = -1;
- register CLIENT *client;
- struct pmap parms;
- bool_t rslt;
-
- get_myaddress(&myaddress);
- client = clntudp_bufcreate(&myaddress, PMAPPROG, PMAPVERS,
- timeout, &socket, RPCSMALLMSGSIZE,
- RPCSMALLMSGSIZE);
- if (client == (CLIENT *) NULL)
- return (FALSE);
- parms.pm_prog = program;
- parms.pm_vers = version;
- parms.pm_prot = protocol;
- parms.pm_port = port;
- if (CLNT_CALL(client, PMAPPROC_SET, (xdrproc_t)xdr_pmap, (caddr_t)&parms, (xdrproc_t)xdr_bool, (caddr_t)&rslt,
- tottimeout) != RPC_SUCCESS) {
- clnt_perror(client, "Cannot register service");
- return (FALSE);
- }
- CLNT_DESTROY(client);
- (void) close(socket);
- return (rslt);
-}
-
-/*
- * Remove the mapping between program,version and port.
- * Calls the pmap service remotely to do the un-mapping.
- */
-bool_t pmap_unset(program, version)
-u_long program;
-u_long version;
-{
- struct sockaddr_in myaddress;
- int socket = -1;
- register CLIENT *client;
- struct pmap parms;
- bool_t rslt;
-
- get_myaddress(&myaddress);
- client = clntudp_bufcreate(&myaddress, PMAPPROG, PMAPVERS,
- timeout, &socket, RPCSMALLMSGSIZE,
- RPCSMALLMSGSIZE);
- if (client == (CLIENT *) NULL)
- return (FALSE);
- parms.pm_prog = program;
- parms.pm_vers = version;
- parms.pm_port = parms.pm_prot = 0;
- CLNT_CALL(client, PMAPPROC_UNSET, (xdrproc_t)xdr_pmap, (caddr_t)&parms, (xdrproc_t)xdr_bool, (caddr_t)&rslt,
- tottimeout);
- CLNT_DESTROY(client);
- (void) close(socket);
- return (rslt);
-}
diff --git a/mdk-stage1/dietlibc/librpc/pmap_getmaps.c b/mdk-stage1/dietlibc/librpc/pmap_getmaps.c
deleted file mode 100644
index 6940783fb..000000000
--- a/mdk-stage1/dietlibc/librpc/pmap_getmaps.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/* @(#)pmap_getmaps.c 2.2 88/08/01 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] =
-
- "@(#)pmap_getmaps.c 1.10 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * pmap_getmap.c
- * Client interface to pmap rpc service.
- * contains pmap_getmaps, which is only tcp service involved
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#include <rpc/rpc.h>
-#include <rpc/pmap_prot.h>
-#include <rpc/pmap_clnt.h>
-#include <sys/socket.h>
-#include <netdb.h>
-#include <stdio.h>
-#include <errno.h>
-//#include <net/if.h>
-#include <sys/ioctl.h>
-#define NAMELEN 255
-#define MAX_BROADCAST_SIZE 1400
-#include <unistd.h>
-
-extern int errno;
-
-/*
- * Get a copy of the current port maps.
- * Calls the pmap service remotely to do get the maps.
- */
-struct pmaplist *pmap_getmaps(address)
-struct sockaddr_in *address;
-{
- struct pmaplist *head = (struct pmaplist *) NULL;
- int socket = -1;
- struct timeval minutetimeout;
- register CLIENT *client;
-
- minutetimeout.tv_sec = 60;
- minutetimeout.tv_usec = 0;
- address->sin_port = htons(PMAPPORT);
- client = clnttcp_create(address, PMAPPROG, PMAPVERS, &socket, 50, 500);
- if (client != (CLIENT *) NULL) {
- if (CLNT_CALL(client, PMAPPROC_DUMP, (xdrproc_t)xdr_void, NULL, (xdrproc_t)xdr_pmaplist,
- (caddr_t)&head, minutetimeout) != RPC_SUCCESS) {
- clnt_perror(client, "pmap_getmaps rpc problem");
- }
- CLNT_DESTROY(client);
- }
- (void) close(socket);
- address->sin_port = 0;
- return (head);
-}
diff --git a/mdk-stage1/dietlibc/librpc/pmap_getport.c b/mdk-stage1/dietlibc/librpc/pmap_getport.c
deleted file mode 100644
index 174dca41a..000000000
--- a/mdk-stage1/dietlibc/librpc/pmap_getport.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/* @(#)pmap_getport.c 2.2 88/08/01 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] =
-
- "@(#)pmap_getport.c 1.9 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * pmap_getport.c
- * Client interface to pmap rpc service.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#include <rpc/rpc.h>
-#include <rpc/pmap_prot.h>
-#include <rpc/pmap_clnt.h>
-#include <sys/socket.h>
-//#include <net/if.h>
-#include <unistd.h>
-
-static struct timeval timeout = { 5, 0 };
-static struct timeval tottimeout = { 60, 0 };
-
-/*
- * Find the mapped port for program,version.
- * Calls the pmap service remotely to do the lookup.
- * Returns 0 if no map exists.
- */
-u_short pmap_getport(address, program, version, protocol)
-struct sockaddr_in *address;
-u_long program;
-u_long version;
-u_int protocol;
-{
- u_short port = 0;
- int socket = -1;
- register CLIENT *client;
- struct pmap parms;
-
- address->sin_port = htons(PMAPPORT);
- client = clntudp_bufcreate(address, PMAPPROG,
- PMAPVERS, timeout, &socket, RPCSMALLMSGSIZE,
- RPCSMALLMSGSIZE);
- if (client != (CLIENT *) NULL) {
- parms.pm_prog = program;
- parms.pm_vers = version;
- parms.pm_prot = protocol;
- parms.pm_port = 0; /* not needed or used */
- if (CLNT_CALL(client, PMAPPROC_GETPORT, (xdrproc_t)xdr_pmap, (caddr_t)&parms,
- (xdrproc_t)xdr_u_short, (caddr_t)&port, tottimeout) != RPC_SUCCESS) {
- rpc_createerr.cf_stat = RPC_PMAPFAILURE;
- clnt_geterr(client, &rpc_createerr.cf_error);
- } else if (port == 0) {
- rpc_createerr.cf_stat = RPC_PROGNOTREGISTERED;
- }
- CLNT_DESTROY(client);
- }
- (void) close(socket);
- address->sin_port = 0;
- return (port);
-}
diff --git a/mdk-stage1/dietlibc/librpc/pmap_prot.c b/mdk-stage1/dietlibc/librpc/pmap_prot.c
deleted file mode 100644
index ec8b5af79..000000000
--- a/mdk-stage1/dietlibc/librpc/pmap_prot.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/* @(#)pmap_prot.c 2.1 88/07/29 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] =
-
- "@(#)pmap_prot.c 1.17 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * pmap_prot.c
- * Protocol for the local binder service, or pmap.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#include <rpc/types.h>
-#include <rpc/xdr.h>
-#include <rpc/pmap_prot.h>
-
-
-bool_t xdr_pmap(xdrs, regs)
-XDR *xdrs;
-struct pmap *regs;
-{
-
- if (xdr_u_long(xdrs, &regs->pm_prog) &&
- xdr_u_long(xdrs, &regs->pm_vers) &&
- xdr_u_long(xdrs, &regs->pm_prot))
- return (xdr_u_long(xdrs, &regs->pm_port));
- return (FALSE);
-}
diff --git a/mdk-stage1/dietlibc/librpc/pmap_prot2.c b/mdk-stage1/dietlibc/librpc/pmap_prot2.c
deleted file mode 100644
index 870c844ed..000000000
--- a/mdk-stage1/dietlibc/librpc/pmap_prot2.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/* @(#)pmap_prot2.c 2.1 88/07/29 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] =
-
- "@(#)pmap_prot2.c 1.3 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * pmap_prot2.c
- * Protocol for the local binder service, or pmap.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#include <rpc/types.h>
-#include <rpc/xdr.h>
-#include <rpc/pmap_prot.h>
-
-
-/*
- * What is going on with linked lists? (!)
- * First recall the link list declaration from pmap_prot.h:
- *
- * struct pmaplist {
- * struct pmap pml_map;
- * struct pmaplist *pml_map;
- * };
- *
- * Compare that declaration with a corresponding xdr declaration that
- * is (a) pointer-less, and (b) recursive:
- *
- * typedef union switch (bool_t) {
- *
- * case TRUE: struct {
- * struct pmap;
- * pmaplist_t foo;
- * };
- *
- * case FALSE: struct {};
- * } pmaplist_t;
- *
- * Notice that the xdr declaration has no nxt pointer while
- * the C declaration has no bool_t variable. The bool_t can be
- * interpreted as ``more data follows me''; if FALSE then nothing
- * follows this bool_t; if TRUE then the bool_t is followed by
- * an actual struct pmap, and then (recursively) by the
- * xdr union, pamplist_t.
- *
- * This could be implemented via the xdr_union primitive, though this
- * would cause a one recursive call per element in the list. Rather than do
- * that we can ``unwind'' the recursion
- * into a while loop and do the union arms in-place.
- *
- * The head of the list is what the C programmer wishes to past around
- * the net, yet is the data that the pointer points to which is interesting;
- * this sounds like a job for xdr_reference!
- */
-bool_t xdr_pmaplist(XDR* xdrs, struct pmaplist** rp)
-{
- /*
- * more_elements is pre-computed in case the direction is
- * XDR_ENCODE or XDR_FREE. more_elements is overwritten by
- * xdr_bool when the direction is XDR_DECODE.
- */
- bool_t more_elements;
- register int freeing = (xdrs->x_op == XDR_FREE);
- register struct pmaplist **next=0;
-
- while (TRUE) {
- more_elements = (bool_t) (*rp != NULL);
- if (!xdr_bool(xdrs, &more_elements))
- return (FALSE);
- if (!more_elements)
- return (TRUE); /* we are done */
- /*
- * the unfortunate side effect of non-recursion is that in
- * the case of freeing we must remember the next object
- * before we free the current object ...
- */
- if (freeing)
- next = &((*rp)->pml_next);
- if (!xdr_reference(xdrs, (caddr_t *) rp,
- (u_int) sizeof(struct pmaplist), (xdrproc_t)xdr_pmap))
- return (FALSE);
-
- rp = (freeing) ? next : &((*rp)->pml_next);
- }
-}
diff --git a/mdk-stage1/dietlibc/librpc/pmap_rmt.c b/mdk-stage1/dietlibc/librpc/pmap_rmt.c
deleted file mode 100644
index 02efcf91c..000000000
--- a/mdk-stage1/dietlibc/librpc/pmap_rmt.c
+++ /dev/null
@@ -1,403 +0,0 @@
-/* @(#)pmap_rmt.c 2.2 88/08/01 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)pmap_rmt.c 1.21 87/08/27 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * pmap_rmt.c
- * Client interface to pmap rpc service.
- * remote call and broadcast service
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#include <rpc/rpc.h>
-#include <rpc/pmap_prot.h>
-#include <rpc/pmap_clnt.h>
-#include <rpc/pmap_rmt.h>
-#include <sys/socket.h>
-#include <stdio.h>
-#include <errno.h>
-//#include <net/if.h>
-#include <sys/ioctl.h>
-#include <arpa/inet.h>
-#define MAX_BROADCAST_SIZE 1400
-#include <unistd.h>
-#include <string.h>
-
-extern int errno;
-static struct timeval timeout = { 3, 0 };
-
-
-/*
- * pmapper remote-call-service interface.
- * This routine is used to call the pmapper remote call service
- * which will look up a service program in the port maps, and then
- * remotely call that routine with the given parameters. This allows
- * programs to do a lookup and call in one step.
-*/
-enum clnt_stat
-pmap_rmtcall(addr, prog, vers, proc, xdrargs, argsp, xdrres, resp, tout,
- port_ptr)
-struct sockaddr_in *addr;
-u_long prog, vers, proc;
-xdrproc_t xdrargs, xdrres;
-caddr_t argsp, resp;
-struct timeval tout;
-u_long *port_ptr;
-{
- int socket = -1;
- register CLIENT *client;
- struct rmtcallargs a;
- struct rmtcallres r;
- enum clnt_stat stat;
-
- addr->sin_port = htons(PMAPPORT);
- client = clntudp_create(addr, PMAPPROG, PMAPVERS, timeout, &socket);
- if (client != (CLIENT *) NULL) {
- a.prog = prog;
- a.vers = vers;
- a.proc = proc;
- a.args_ptr = argsp;
- a.xdr_args = xdrargs;
- r.port_ptr = port_ptr;
- r.results_ptr = resp;
- r.xdr_results = xdrres;
- stat = CLNT_CALL(client, PMAPPROC_CALLIT, (xdrproc_t)xdr_rmtcall_args, (caddr_t)&a,
- (xdrproc_t)xdr_rmtcallres, (caddr_t)&r, tout);
- CLNT_DESTROY(client);
- } else {
- stat = RPC_FAILED;
- }
- (void) close(socket);
- addr->sin_port = 0;
- return (stat);
-}
-
-
-/*
- * XDR remote call arguments
- * written for XDR_ENCODE direction only
- */
-bool_t xdr_rmtcall_args(XDR* xdrs, struct rmtcallargs* cap)
-{
- u_int lenposition, argposition, position;
-
- if (xdr_u_long(xdrs, &(cap->prog)) &&
- xdr_u_long(xdrs, &(cap->vers)) && xdr_u_long(xdrs, &(cap->proc))) {
- lenposition = XDR_GETPOS(xdrs);
- if (!xdr_u_long(xdrs, &(cap->arglen)))
- return (FALSE);
- argposition = XDR_GETPOS(xdrs);
- if (!(*(cap->xdr_args)) (xdrs, cap->args_ptr))
- return (FALSE);
- position = XDR_GETPOS(xdrs);
- cap->arglen = (u_long) position - (u_long) argposition;
- XDR_SETPOS(xdrs, lenposition);
- if (!xdr_u_long(xdrs, &(cap->arglen)))
- return (FALSE);
- XDR_SETPOS(xdrs, position);
- return (TRUE);
- }
- return (FALSE);
-}
-
-/*
- * XDR remote call results
- * written for XDR_DECODE direction only
- */
-bool_t xdr_rmtcallres(XDR* xdrs, struct rmtcallres* crp)
-{
- caddr_t port_ptr;
-
- port_ptr = (caddr_t) crp->port_ptr;
- if (xdr_reference(xdrs, &port_ptr, sizeof(u_long),
- (xdrproc_t)xdr_u_long) && xdr_u_long(xdrs, &crp->resultslen)) {
- crp->port_ptr = (u_long *) port_ptr;
- return ((*(crp->xdr_results)) (xdrs, crp->results_ptr));
- }
- return (FALSE);
-}
-
-
-/*
- * The following is kludged-up support for simple rpc broadcasts.
- * Someday a large, complicated system will replace these trivial
- * routines which only support udp/ip .
- */
-
-static int getbroadcastnets(addrs, sock, buf)
-struct in_addr *addrs;
-int sock; /* any valid socket will do */
-char *buf; /* why allocxate more when we can use existing... */
-{
-#ifdef __linux__
- struct sockaddr_in addr;
-
- get_myaddress(&addr);
-#if 1
- printf("%s(%d): no inet_makeaddr()\n", __FILE__, __LINE__);
-#else
- addrs[0] = inet_makeaddr(inet_netof(addr.sin_addr), INADDR_ANY);
-#endif
- return 1;
-#else
- struct ifconf ifc;
- struct ifreq ifreq, *ifr;
- struct sockaddr_in *sin;
- int n, i;
-
- ifc.ifc_len = UDPMSGSIZE;
- ifc.ifc_buf = buf;
- if (ioctl(sock, SIOCGIFCONF, (char *) &ifc) < 0) {
- perror("broadcast: ioctl (get interface configuration)");
- return (0);
- }
- ifr = ifc.ifc_req;
- for (i = 0, n = ifc.ifc_len / sizeof(struct ifreq); n > 0; n--, ifr++) {
- ifreq = *ifr;
- if (ioctl(sock, SIOCGIFFLAGS, (char *) &ifreq) < 0) {
- perror("broadcast: ioctl (get interface flags)");
- continue;
- }
- if ((ifreq.ifr_flags & IFF_BROADCAST) &&
- (ifreq.ifr_flags & IFF_UP) &&
- ifr->ifr_addr.sa_family == AF_INET) {
- sin = (struct sockaddr_in *) &ifr->ifr_addr;
-#ifdef SIOCGIFBRDADDR /* 4.3BSD */
- if (ioctl(sock, SIOCGIFBRDADDR, (char *) &ifreq) < 0) {
-#if 1
- printf("%s(%d): no inet_makeaddr()\n", __FILE__, __LINE__);
-#else
- addrs[i++] = inet_makeaddr(inet_netof
- (sin->sin_addr.s_addr),
- INADDR_ANY);
-#endif
- } else {
- addrs[i++] = ((struct sockaddr_in *)
- &ifreq.ifr_addr)->sin_addr;
- }
-#else /* 4.2 BSD */
-#if 1
- printf("%s(%d): no inet_makeaddr()\n", __FILE__, __LINE__);
-#else
- addrs[i++] = inet_makeaddr(inet_netof
- (sin->sin_addr.s_addr), INADDR_ANY);
-#endif
-#endif
- }
- }
- return (i);
-#endif
-}
-
-enum clnt_stat
-clnt_broadcast(prog, vers, proc, xargs, argsp, xresults, resultsp,
- eachresult)
-u_long prog; /* program number */
-u_long vers; /* version number */
-u_long proc; /* procedure number */
-xdrproc_t xargs; /* xdr routine for args */
-caddr_t argsp; /* pointer to args */
-xdrproc_t xresults; /* xdr routine for results */
-caddr_t resultsp; /* pointer to results */
-resultproc_t eachresult; /* call with each result obtained */
-{
- enum clnt_stat stat;
- AUTH *unix_auth = authunix_create_default();
- XDR xdr_stream;
- register XDR *xdrs = &xdr_stream;
- int outlen, inlen, fromlen, nets;
- register int sock;
- int on = 1;
-
-#ifdef FD_SETSIZE
- fd_set mask;
- fd_set readfds;
-#else
- int readfds;
- register int mask;
-#endif /* def FD_SETSIZE */
- register int i;
- bool_t done = FALSE;
- register u_long xid;
- u_long port;
- struct in_addr addrs[20];
- struct sockaddr_in baddr, raddr; /* broadcast and response addresses */
- struct rmtcallargs a;
- struct rmtcallres r;
- struct rpc_msg msg;
- struct timeval t;
- char outbuf[MAX_BROADCAST_SIZE], inbuf[UDPMSGSIZE];
-
- /*
- * initialization: create a socket, a broadcast address, and
- * preserialize the arguments into a send buffer.
- */
- if ((sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) {
- perror("Cannot create socket for broadcast rpc");
- stat = RPC_CANTSEND;
- goto done_broad;
- }
-#ifdef SO_BROADCAST
- if (setsockopt(sock, SOL_SOCKET, SO_BROADCAST, &on, sizeof(on)) < 0) {
- perror("Cannot set socket option SO_BROADCAST");
- stat = RPC_CANTSEND;
- goto done_broad;
- }
-#endif /* def SO_BROADCAST */
-#ifdef FD_SETSIZE
- FD_ZERO(&mask);
- FD_SET(sock, &mask);
-#else
- mask = (1 << sock);
-#endif /* def FD_SETSIZE */
- nets = getbroadcastnets(addrs, sock, inbuf);
- bzero((char *) &baddr, sizeof(baddr));
- baddr.sin_family = AF_INET;
- baddr.sin_port = htons(PMAPPORT);
- baddr.sin_addr.s_addr = htonl(INADDR_ANY);
-/* baddr.sin_addr.S_un.S_addr = htonl(INADDR_ANY); */
- (void) gettimeofday(&t, (struct timezone *) 0);
- msg.rm_xid = xid = getpid() ^ t.tv_sec ^ t.tv_usec;
- t.tv_usec = 0;
- msg.rm_direction = CALL;
- msg.rm_call.cb_rpcvers = RPC_MSG_VERSION;
- msg.rm_call.cb_prog = PMAPPROG;
- msg.rm_call.cb_vers = PMAPVERS;
- msg.rm_call.cb_proc = PMAPPROC_CALLIT;
- msg.rm_call.cb_cred = unix_auth->ah_cred;
- msg.rm_call.cb_verf = unix_auth->ah_verf;
- a.prog = prog;
- a.vers = vers;
- a.proc = proc;
- a.xdr_args = xargs;
- a.args_ptr = argsp;
- r.port_ptr = &port;
- r.xdr_results = xresults;
- r.results_ptr = resultsp;
- xdrmem_create(xdrs, outbuf, MAX_BROADCAST_SIZE, XDR_ENCODE);
- if ((!xdr_callmsg(xdrs, &msg)) || (!xdr_rmtcall_args(xdrs, &a))) {
- stat = RPC_CANTENCODEARGS;
- goto done_broad;
- }
- outlen = (int) xdr_getpos(xdrs);
- xdr_destroy(xdrs);
- /*
- * Basic loop: broadcast a packet and wait a while for response(s).
- * The response timeout grows larger per iteration.
- */
- for (t.tv_sec = 4; t.tv_sec <= 14; t.tv_sec += 2) {
- for (i = 0; i < nets; i++) {
- baddr.sin_addr = addrs[i];
- if (sendto(sock, outbuf, outlen, 0,
- (struct sockaddr *) &baddr,
- sizeof(struct sockaddr)) != outlen) {
- perror("Cannot send broadcast packet");
- stat = RPC_CANTSEND;
- goto done_broad;
- }
- }
- if (eachresult == NULL) {
- stat = RPC_SUCCESS;
- goto done_broad;
- }
- recv_again:
- msg.acpted_rply.ar_verf = _null_auth;
- msg.acpted_rply.ar_results.where = (caddr_t) & r;
- msg.acpted_rply.ar_results.proc = (xdrproc_t)xdr_rmtcallres;
- readfds = mask;
- switch (select(_rpc_dtablesize(), &readfds, 0, 0, &t)) {
-
- case 0: /* timed out */
- stat = RPC_TIMEDOUT;
- continue;
-
- case -1: /* some kind of error */
- if (errno == EINTR)
- goto recv_again;
- perror("Broadcast select problem");
- stat = RPC_CANTRECV;
- goto done_broad;
-
- } /* end of select results switch */
- try_again:
- fromlen = sizeof(struct sockaddr);
-
- inlen = recvfrom(sock, inbuf, UDPMSGSIZE, 0,
- (struct sockaddr *) &raddr, &fromlen);
- if (inlen < 0) {
- if (errno == EINTR)
- goto try_again;
- perror("Cannot receive reply to broadcast");
- stat = RPC_CANTRECV;
- goto done_broad;
- }
- if (inlen < sizeof(u_long))
- goto recv_again;
- /*
- * see if reply transaction id matches sent id.
- * If so, decode the results.
- */
- xdrmem_create(xdrs, inbuf, (u_int) inlen, XDR_DECODE);
- if (xdr_replymsg(xdrs, &msg)) {
- if ((msg.rm_xid == xid) &&
- (msg.rm_reply.rp_stat == MSG_ACCEPTED) &&
- (msg.acpted_rply.ar_stat == SUCCESS)) {
- raddr.sin_port = htons((u_short) port);
- done = (*eachresult) (resultsp, &raddr);
- }
- /* otherwise, we just ignore the errors ... */
- } else {
-#ifdef notdef
- /* some kind of deserialization problem ... */
- if (msg.rm_xid == xid)
- fprintf(stderr, "Broadcast deserialization problem");
- /* otherwise, just random garbage */
-#endif
- }
- xdrs->x_op = XDR_FREE;
- msg.acpted_rply.ar_results.proc = (xdrproc_t)xdr_void;
- (void) xdr_replymsg(xdrs, &msg);
- (void) (*xresults) (xdrs, resultsp);
- xdr_destroy(xdrs);
- if (done) {
- stat = RPC_SUCCESS;
- goto done_broad;
- } else {
- goto recv_again;
- }
- }
- done_broad:
- (void) close(sock);
- AUTH_DESTROY(unix_auth);
- return (stat);
-}
diff --git a/mdk-stage1/dietlibc/librpc/rpc_callmsg.c b/mdk-stage1/dietlibc/librpc/rpc_callmsg.c
deleted file mode 100644
index 4b3a9880e..000000000
--- a/mdk-stage1/dietlibc/librpc/rpc_callmsg.c
+++ /dev/null
@@ -1,189 +0,0 @@
-/* @(#)rpc_callmsg.c 2.1 88/07/29 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] =
-
- "@(#)rpc_callmsg.c 1.4 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * rpc_callmsg.c
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- */
-
-#include <sys/param.h>
-
-#include <rpc/rpc.h>
-#include <string.h>
-
-/*
- * XDR a call message
- */
-bool_t xdr_callmsg(xdrs, cmsg)
-register XDR *xdrs;
-register struct rpc_msg *cmsg;
-{
- register int32_t *buf;
- register struct opaque_auth *oa;
-
- if (xdrs->x_op == XDR_ENCODE) {
- if (cmsg->rm_call.cb_cred.oa_length > MAX_AUTH_BYTES) {
- return (FALSE);
- }
- if (cmsg->rm_call.cb_verf.oa_length > MAX_AUTH_BYTES) {
- return (FALSE);
- }
- buf = XDR_INLINE(xdrs, 8 * BYTES_PER_XDR_UNIT
- + RNDUP(cmsg->rm_call.cb_cred.oa_length)
- + 2 * BYTES_PER_XDR_UNIT
- + RNDUP(cmsg->rm_call.cb_verf.oa_length));
- if (buf != NULL) {
- IXDR_PUT_LONG(buf, cmsg->rm_xid);
- IXDR_PUT_ENUM(buf, cmsg->rm_direction);
- if (cmsg->rm_direction != CALL) {
- return (FALSE);
- }
- IXDR_PUT_LONG(buf, cmsg->rm_call.cb_rpcvers);
- if (cmsg->rm_call.cb_rpcvers != RPC_MSG_VERSION) {
- return (FALSE);
- }
- IXDR_PUT_LONG(buf, cmsg->rm_call.cb_prog);
- IXDR_PUT_LONG(buf, cmsg->rm_call.cb_vers);
- IXDR_PUT_LONG(buf, cmsg->rm_call.cb_proc);
- oa = &cmsg->rm_call.cb_cred;
- IXDR_PUT_ENUM(buf, oa->oa_flavor);
- IXDR_PUT_LONG(buf, oa->oa_length);
- if (oa->oa_length) {
- bcopy(oa->oa_base, (caddr_t) buf, oa->oa_length);
- buf += RNDUP(oa->oa_length) / sizeof(long);
- }
- oa = &cmsg->rm_call.cb_verf;
- IXDR_PUT_ENUM(buf, oa->oa_flavor);
- IXDR_PUT_LONG(buf, oa->oa_length);
- if (oa->oa_length) {
- bcopy(oa->oa_base, (caddr_t) buf, oa->oa_length);
- /* no real need....
- buf += RNDUP(oa->oa_length) / sizeof (long);
- */
- }
- return (TRUE);
- }
- }
- if (xdrs->x_op == XDR_DECODE) {
- buf = XDR_INLINE(xdrs, 8 * BYTES_PER_XDR_UNIT);
- if (buf != NULL) {
- cmsg->rm_xid = IXDR_GET_LONG(buf);
- cmsg->rm_direction = IXDR_GET_ENUM(buf, enum msg_type);
-
- if (cmsg->rm_direction != CALL) {
- return (FALSE);
- }
- cmsg->rm_call.cb_rpcvers = IXDR_GET_LONG(buf);
- if (cmsg->rm_call.cb_rpcvers != RPC_MSG_VERSION) {
- return (FALSE);
- }
- cmsg->rm_call.cb_prog = IXDR_GET_LONG(buf);
- cmsg->rm_call.cb_vers = IXDR_GET_LONG(buf);
- cmsg->rm_call.cb_proc = IXDR_GET_LONG(buf);
- oa = &cmsg->rm_call.cb_cred;
- oa->oa_flavor = IXDR_GET_ENUM(buf, enum_t);
- oa->oa_length = IXDR_GET_LONG(buf);
- if (oa->oa_length) {
- if (oa->oa_length > MAX_AUTH_BYTES) {
- return (FALSE);
- }
- if (oa->oa_base == NULL) {
- oa->oa_base = (caddr_t)
- mem_alloc(oa->oa_length);
- }
- buf = XDR_INLINE(xdrs, RNDUP(oa->oa_length));
- if (buf == NULL) {
- if (xdr_opaque(xdrs, oa->oa_base,
- oa->oa_length) == FALSE) {
- return (FALSE);
- }
- } else {
- bcopy((caddr_t) buf, oa->oa_base, oa->oa_length);
- /* no real need....
- buf += RNDUP(oa->oa_length) /
- sizeof (long);
- */
- }
- }
- oa = &cmsg->rm_call.cb_verf;
- buf = XDR_INLINE(xdrs, 2 * BYTES_PER_XDR_UNIT);
- if (buf == NULL) {
- if (xdr_enum(xdrs, &oa->oa_flavor) == FALSE ||
- xdr_u_int(xdrs, &oa->oa_length) == FALSE) {
- return (FALSE);
- }
- } else {
- oa->oa_flavor = IXDR_GET_ENUM(buf, enum_t);
- oa->oa_length = IXDR_GET_LONG(buf);
- }
- if (oa->oa_length) {
- if (oa->oa_length > MAX_AUTH_BYTES) {
- return (FALSE);
- }
- if (oa->oa_base == NULL) {
- oa->oa_base = (caddr_t)
- mem_alloc(oa->oa_length);
- }
- buf = XDR_INLINE(xdrs, RNDUP(oa->oa_length));
- if (buf == NULL) {
- if (xdr_opaque(xdrs, oa->oa_base,
- oa->oa_length) == FALSE) {
- return (FALSE);
- }
- } else {
- bcopy((caddr_t) buf, oa->oa_base, oa->oa_length);
- /* no real need...
- buf += RNDUP(oa->oa_length) /
- sizeof (long);
- */
- }
- }
- return (TRUE);
- }
- }
- if (xdr_u_long(xdrs, &(cmsg->rm_xid)) &&
- xdr_enum(xdrs, (enum_t *) & (cmsg->rm_direction)) &&
- (cmsg->rm_direction == CALL) &&
- xdr_u_long(xdrs, &(cmsg->rm_call.cb_rpcvers)) &&
- (cmsg->rm_call.cb_rpcvers == RPC_MSG_VERSION) &&
- xdr_u_long(xdrs, &(cmsg->rm_call.cb_prog)) &&
- xdr_u_long(xdrs, &(cmsg->rm_call.cb_vers)) &&
- xdr_u_long(xdrs, &(cmsg->rm_call.cb_proc)) &&
- xdr_opaque_auth(xdrs, &(cmsg->rm_call.cb_cred)))
- return (xdr_opaque_auth(xdrs, &(cmsg->rm_call.cb_verf)));
- return (FALSE);
-}
diff --git a/mdk-stage1/dietlibc/librpc/rpc_commondata.c b/mdk-stage1/dietlibc/librpc/rpc_commondata.c
deleted file mode 100644
index 39648d284..000000000
--- a/mdk-stage1/dietlibc/librpc/rpc_commondata.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* @(#)rpc_commondata.c 2.1 88/07/29 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#include <rpc/rpc.h>
-/*
- * This file should only contain common data (global data) that is exported
- * by public interfaces
- */
-struct opaque_auth _null_auth;
-
-#ifdef FD_SETSIZE
-fd_set svc_fdset;
-#else
-int svc_fds;
-#endif /* def FD_SETSIZE */
-struct rpc_createerr rpc_createerr;
diff --git a/mdk-stage1/dietlibc/librpc/rpc_dtablesize.c b/mdk-stage1/dietlibc/librpc/rpc_dtablesize.c
deleted file mode 100644
index b08ebaccd..000000000
--- a/mdk-stage1/dietlibc/librpc/rpc_dtablesize.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* @(#)rpc_dtablesize.c 2.1 88/07/29 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] =
-
- "@(#)rpc_dtablesize.c 1.2 87/08/11 Copyr 1987 Sun Micro";
-#endif
-
-#include <unistd.h>
-
-/*
- * Cache the result of getdtablesize(), so we don't have to do an
- * expensive system call every time.
- */
-int _rpc_dtablesize()
-{
- static int size;
-
- if (size == 0) {
- size = getdtablesize();
- }
- return (size);
-}
diff --git a/mdk-stage1/dietlibc/librpc/rpc_prot.c b/mdk-stage1/dietlibc/librpc/rpc_prot.c
deleted file mode 100644
index 19a4db27f..000000000
--- a/mdk-stage1/dietlibc/librpc/rpc_prot.c
+++ /dev/null
@@ -1,281 +0,0 @@
-/* @(#)rpc_prot.c 2.3 88/08/07 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)rpc_prot.c 1.36 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * rpc_prot.c
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * This set of routines implements the rpc message definition,
- * its serializer and some common rpc utility routines.
- * The routines are meant for various implementations of rpc -
- * they are NOT for the rpc client or rpc service implementations!
- * Because authentication stuff is easy and is part of rpc, the opaque
- * routines are also in this program.
- */
-
-#include <sys/param.h>
-
-#include <rpc/rpc.h>
-
-/* * * * * * * * * * * * * * XDR Authentication * * * * * * * * * * * */
-
-struct opaque_auth _null_auth;
-
-/*
- * XDR an opaque authentication struct
- * (see auth.h)
- */
-bool_t xdr_opaque_auth(xdrs, ap)
-register XDR *xdrs;
-register struct opaque_auth *ap;
-{
-
- if (xdr_enum(xdrs, &(ap->oa_flavor)))
- return (xdr_bytes(xdrs, &ap->oa_base,
- &ap->oa_length, MAX_AUTH_BYTES));
- return (FALSE);
-}
-
-/*
- * XDR a DES block
- */
-bool_t xdr_des_block(xdrs, blkp)
-register XDR *xdrs;
-register des_block *blkp;
-{
- return (xdr_opaque(xdrs, (caddr_t) blkp, sizeof(des_block)));
-}
-
-/* * * * * * * * * * * * * * XDR RPC MESSAGE * * * * * * * * * * * * * * * */
-
-/*
- * XDR the MSG_ACCEPTED part of a reply message union
- */
-bool_t xdr_accepted_reply(xdrs, ar)
-register XDR *xdrs;
-register struct accepted_reply *ar;
-{
-
- /* personalized union, rather than calling xdr_union */
- if (!xdr_opaque_auth(xdrs, &(ar->ar_verf)))
- return (FALSE);
- if (!xdr_enum(xdrs, (enum_t *) & (ar->ar_stat)))
- return (FALSE);
- switch (ar->ar_stat) {
-
- case SUCCESS:
- return ((*(ar->ar_results.proc)) (xdrs, ar->ar_results.where));
-
- case PROG_MISMATCH:
- if (!xdr_u_long(xdrs, &(ar->ar_vers.low)))
- return (FALSE);
- return (xdr_u_long(xdrs, &(ar->ar_vers.high)));
- }
- return (TRUE); /* TRUE => open ended set of problems */
-}
-
-/*
- * XDR the MSG_DENIED part of a reply message union
- */
-bool_t xdr_rejected_reply(xdrs, rr)
-register XDR *xdrs;
-register struct rejected_reply *rr;
-{
-
- /* personalized union, rather than calling xdr_union */
- if (!xdr_enum(xdrs, (enum_t *) & (rr->rj_stat)))
- return (FALSE);
- switch (rr->rj_stat) {
-
- case RPC_MISMATCH:
- if (!xdr_u_long(xdrs, &(rr->rj_vers.low)))
- return (FALSE);
- return (xdr_u_long(xdrs, &(rr->rj_vers.high)));
-
- case AUTH_ERROR:
- return (xdr_enum(xdrs, (enum_t *) & (rr->rj_why)));
- }
- return (FALSE);
-}
-
-static struct xdr_discrim reply_dscrm[3] = {
- {(int) MSG_ACCEPTED, (xdrproc_t)xdr_accepted_reply},
- {(int) MSG_DENIED, (xdrproc_t)xdr_rejected_reply},
- {__dontcare__, NULL_xdrproc_t}
-};
-
-/*
- * XDR a reply message
- */
-bool_t xdr_replymsg(xdrs, rmsg)
-register XDR *xdrs;
-register struct rpc_msg *rmsg;
-{
- if (xdr_u_long(xdrs, &(rmsg->rm_xid)) &&
- xdr_enum(xdrs, (enum_t *) & (rmsg->rm_direction)) &&
- (rmsg->rm_direction == REPLY))
- return (xdr_union(xdrs, (enum_t *) & (rmsg->rm_reply.rp_stat),
- (caddr_t) & (rmsg->rm_reply.ru), reply_dscrm,
- NULL_xdrproc_t));
- return (FALSE);
-}
-
-
-/*
- * Serializes the "static part" of a call message header.
- * The fields include: rm_xid, rm_direction, rpcvers, prog, and vers.
- * The rm_xid is not really static, but the user can easily munge on the fly.
- */
-bool_t xdr_callhdr(xdrs, cmsg)
-register XDR *xdrs;
-register struct rpc_msg *cmsg;
-{
-
- cmsg->rm_direction = CALL;
- cmsg->rm_call.cb_rpcvers = RPC_MSG_VERSION;
- if (
- (xdrs->x_op == XDR_ENCODE) &&
- xdr_u_long(xdrs, &(cmsg->rm_xid)) &&
- xdr_enum(xdrs, (enum_t *) & (cmsg->rm_direction)) &&
- xdr_u_long(xdrs, &(cmsg->rm_call.cb_rpcvers)) &&
- xdr_u_long(xdrs, &(cmsg->rm_call.cb_prog)))
- return (xdr_u_long(xdrs, &(cmsg->rm_call.cb_vers)));
- return (FALSE);
-}
-
-/* ************************** Client utility routine ************* */
-
-static void accepted(acpt_stat, error)
-register enum accept_stat acpt_stat;
-register struct rpc_err *error;
-{
-
- switch (acpt_stat) {
-
- case PROG_UNAVAIL:
- error->re_status = RPC_PROGUNAVAIL;
- return;
-
- case PROG_MISMATCH:
- error->re_status = RPC_PROGVERSMISMATCH;
- return;
-
- case PROC_UNAVAIL:
- error->re_status = RPC_PROCUNAVAIL;
- return;
-
- case GARBAGE_ARGS:
- error->re_status = RPC_CANTDECODEARGS;
- return;
-
- case SYSTEM_ERR:
- error->re_status = RPC_SYSTEMERROR;
- return;
-
- case SUCCESS:
- error->re_status = RPC_SUCCESS;
- return;
- }
- /* something's wrong, but we don't know what ... */
- error->re_status = RPC_FAILED;
- error->re_lb.s1 = (long) MSG_ACCEPTED;
- error->re_lb.s2 = (long) acpt_stat;
-}
-
-static void rejected(rjct_stat, error)
-register enum reject_stat rjct_stat;
-register struct rpc_err *error;
-{
-
- switch (rjct_stat) {
-
- case RPC_VERSMISMATCH:
- error->re_status = RPC_VERSMISMATCH;
- return;
-
- case AUTH_ERROR:
- error->re_status = RPC_AUTHERROR;
- return;
- }
- /* something's wrong, but we don't know what ... */
- error->re_status = RPC_FAILED;
- error->re_lb.s1 = (long) MSG_DENIED;
- error->re_lb.s2 = (long) rjct_stat;
-}
-
-/*
- * given a reply message, fills in the error
- */
-void _seterr_reply(msg, error)
-register struct rpc_msg *msg;
-register struct rpc_err *error;
-{
-
- /* optimized for normal, SUCCESSful case */
- switch (msg->rm_reply.rp_stat) {
-
- case MSG_ACCEPTED:
- if (msg->acpted_rply.ar_stat == SUCCESS) {
- error->re_status = RPC_SUCCESS;
- return;
- };
- accepted(msg->acpted_rply.ar_stat, error);
- break;
-
- case MSG_DENIED:
- rejected(msg->rjcted_rply.rj_stat, error);
- break;
-
- default:
- error->re_status = RPC_FAILED;
- error->re_lb.s1 = (long) (msg->rm_reply.rp_stat);
- break;
- }
- switch (error->re_status) {
-
- case RPC_VERSMISMATCH:
- error->re_vers.low = msg->rjcted_rply.rj_vers.low;
- error->re_vers.high = msg->rjcted_rply.rj_vers.high;
- break;
-
- case RPC_AUTHERROR:
- error->re_why = msg->rjcted_rply.rj_why;
- break;
-
- case RPC_PROGVERSMISMATCH:
- error->re_vers.low = msg->acpted_rply.ar_vers.low;
- error->re_vers.high = msg->acpted_rply.ar_vers.high;
- break;
- }
-}
diff --git a/mdk-stage1/dietlibc/librpc/svc.c b/mdk-stage1/dietlibc/librpc/svc.c
deleted file mode 100644
index 4fcdb5216..000000000
--- a/mdk-stage1/dietlibc/librpc/svc.c
+++ /dev/null
@@ -1,479 +0,0 @@
-/* @(#)svc.c 2.4 88/08/11 4.0 RPCSRC; from 1.44 88/02/08 SMI */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)svc.c 1.41 87/10/13 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * svc.c, Server-side remote procedure call interface.
- *
- * There are two sets of procedures here. The xprt routines are
- * for handling transport handles. The svc routines handle the
- * list of service routines.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#include <errno.h>
-#include <rpc/rpc.h>
-#include <rpc/pmap_clnt.h>
-#ifdef __linux__
-#include <sys/types.h>
-#endif
-
-extern int errno;
-
-#ifdef FD_SETSIZE
-static SVCXPRT **xports;
-#else
-#define NOFILE 32
-
-static SVCXPRT *xports[NOFILE];
-#endif /* def FD_SETSIZE */
-
-#define NULL_SVC ((struct svc_callout *)0)
-#define RQCRED_SIZE 400 /* this size is excessive */
-
-/*
- * The services list
- * Each entry represents a set of procedures (an rpc program).
- * The dispatch routine takes request structs and runs the
- * apropriate procedure.
- */
-static struct svc_callout {
- struct svc_callout *sc_next;
- u_long sc_prog;
- u_long sc_vers;
- void (*sc_dispatch) ();
-} *svc_head;
-
-static struct svc_callout *svc_find();
-
-/* *************** SVCXPRT related stuff **************** */
-
-/*
- * Activate a transport handle.
- */
-void xprt_register(xprt)
-SVCXPRT *xprt;
-{
- register int sock = xprt->xp_sock;
-
-#ifdef FD_SETSIZE
- if (xports == NULL) {
- xports = (SVCXPRT **)
- mem_alloc(FD_SETSIZE * sizeof(SVCXPRT *));
- }
- if (sock < _rpc_dtablesize()) {
- xports[sock] = xprt;
- FD_SET(sock, &svc_fdset);
- }
-#else
- if (sock < NOFILE) {
- xports[sock] = xprt;
- svc_fds |= (1 << sock);
- }
-#endif /* def FD_SETSIZE */
-
-}
-
-/*
- * De-activate a transport handle.
- */
-void xprt_unregister(xprt)
-SVCXPRT *xprt;
-{
- register int sock = xprt->xp_sock;
-
-#ifdef FD_SETSIZE
- if ((sock < _rpc_dtablesize()) && (xports[sock] == xprt)) {
- xports[sock] = (SVCXPRT *) 0;
- FD_CLR(sock, &svc_fdset);
- }
-#else
- if ((sock < NOFILE) && (xports[sock] == xprt)) {
- xports[sock] = (SVCXPRT *) 0;
- svc_fds &= ~(1 << sock);
- }
-#endif /* def FD_SETSIZE */
-}
-
-
-/* ********************** CALLOUT list related stuff ************* */
-
-/*
- * Add a service program to the callout list.
- * The dispatch routine will be called when a rpc request for this
- * program number comes in.
- */
-bool_t svc_register(xprt, prog, vers, dispatch, protocol)
-SVCXPRT *xprt;
-u_long prog;
-u_long vers;
-void (*dispatch) ();
-rpcprot_t protocol;
-{
- struct svc_callout *prev;
- register struct svc_callout *s;
-
- if ((s = svc_find(prog, vers, &prev)) != NULL_SVC) {
- if (s->sc_dispatch == dispatch)
- goto pmap_it; /* he is registering another xptr */
- return (FALSE);
- }
- s = (struct svc_callout *) mem_alloc(sizeof(struct svc_callout));
-
- if (s == (struct svc_callout *) 0) {
- return (FALSE);
- }
- s->sc_prog = prog;
- s->sc_vers = vers;
- s->sc_dispatch = dispatch;
- s->sc_next = svc_head;
- svc_head = s;
- pmap_it:
- /* now register the information with the local binder service */
- if (protocol) {
- return (pmap_set(prog, vers, protocol, xprt->xp_port));
- }
- return (TRUE);
-}
-
-/*
- * Remove a service program from the callout list.
- */
-void svc_unregister(prog, vers)
-u_long prog;
-u_long vers;
-{
- struct svc_callout *prev;
- register struct svc_callout *s;
-
- if ((s = svc_find(prog, vers, &prev)) == NULL_SVC)
- return;
- if (prev == NULL_SVC) {
- svc_head = s->sc_next;
- } else {
- prev->sc_next = s->sc_next;
- }
- s->sc_next = NULL_SVC;
- mem_free((char *) s, (u_int) sizeof(struct svc_callout));
-
- /* now unregister the information with the local binder service */
- (void) pmap_unset(prog, vers);
-}
-
-/*
- * Search the callout list for a program number, return the callout
- * struct.
- */
-static struct svc_callout *svc_find(prog, vers, prev)
-u_long prog;
-u_long vers;
-struct svc_callout **prev;
-{
- register struct svc_callout *s, *p;
-
- p = NULL_SVC;
- for (s = svc_head; s != NULL_SVC; s = s->sc_next) {
- if ((s->sc_prog == prog) && (s->sc_vers == vers))
- goto done;
- p = s;
- }
- done:
- *prev = p;
- return (s);
-}
-
-/* ******************* REPLY GENERATION ROUTINES ************ */
-
-/*
- * Send a reply to an rpc request
- */
-bool_t svc_sendreply(xprt, xdr_results, xdr_location)
-register SVCXPRT *xprt;
-xdrproc_t xdr_results;
-caddr_t xdr_location;
-{
- struct rpc_msg rply;
-
- rply.rm_direction = REPLY;
- rply.rm_reply.rp_stat = MSG_ACCEPTED;
- rply.acpted_rply.ar_verf = xprt->xp_verf;
- rply.acpted_rply.ar_stat = SUCCESS;
- rply.acpted_rply.ar_results.where = xdr_location;
- rply.acpted_rply.ar_results.proc = xdr_results;
- return (SVC_REPLY(xprt, &rply));
-}
-
-/*
- * No procedure error reply
- */
-void svcerr_noproc(xprt)
-register SVCXPRT *xprt;
-{
- struct rpc_msg rply;
-
- rply.rm_direction = REPLY;
- rply.rm_reply.rp_stat = MSG_ACCEPTED;
- rply.acpted_rply.ar_verf = xprt->xp_verf;
- rply.acpted_rply.ar_stat = PROC_UNAVAIL;
- SVC_REPLY(xprt, &rply);
-}
-
-/*
- * Can't decode args error reply
- */
-void svcerr_decode(xprt)
-register SVCXPRT *xprt;
-{
- struct rpc_msg rply;
-
- rply.rm_direction = REPLY;
- rply.rm_reply.rp_stat = MSG_ACCEPTED;
- rply.acpted_rply.ar_verf = xprt->xp_verf;
- rply.acpted_rply.ar_stat = GARBAGE_ARGS;
- SVC_REPLY(xprt, &rply);
-}
-
-/*
- * Some system error
- */
-void svcerr_systemerr(xprt)
-register SVCXPRT *xprt;
-{
- struct rpc_msg rply;
-
- rply.rm_direction = REPLY;
- rply.rm_reply.rp_stat = MSG_ACCEPTED;
- rply.acpted_rply.ar_verf = xprt->xp_verf;
- rply.acpted_rply.ar_stat = SYSTEM_ERR;
- SVC_REPLY(xprt, &rply);
-}
-
-/*
- * Authentication error reply
- */
-void svcerr_auth(xprt, why)
-SVCXPRT *xprt;
-enum auth_stat why;
-{
- struct rpc_msg rply;
-
- rply.rm_direction = REPLY;
- rply.rm_reply.rp_stat = MSG_DENIED;
- rply.rjcted_rply.rj_stat = AUTH_ERROR;
- rply.rjcted_rply.rj_why = why;
- SVC_REPLY(xprt, &rply);
-}
-
-/*
- * Auth too weak error reply
- */
-void svcerr_weakauth(xprt)
-SVCXPRT *xprt;
-{
-
- svcerr_auth(xprt, AUTH_TOOWEAK);
-}
-
-/*
- * Program unavailable error reply
- */
-void svcerr_noprog(xprt)
-register SVCXPRT *xprt;
-{
- struct rpc_msg rply;
-
- rply.rm_direction = REPLY;
- rply.rm_reply.rp_stat = MSG_ACCEPTED;
- rply.acpted_rply.ar_verf = xprt->xp_verf;
- rply.acpted_rply.ar_stat = PROG_UNAVAIL;
- SVC_REPLY(xprt, &rply);
-}
-
-/*
- * Program version mismatch error reply
- */
-void svcerr_progvers(xprt, low_vers, high_vers)
-register SVCXPRT *xprt;
-u_long low_vers;
-u_long high_vers;
-{
- struct rpc_msg rply;
-
- rply.rm_direction = REPLY;
- rply.rm_reply.rp_stat = MSG_ACCEPTED;
- rply.acpted_rply.ar_verf = xprt->xp_verf;
- rply.acpted_rply.ar_stat = PROG_MISMATCH;
- rply.acpted_rply.ar_vers.low = low_vers;
- rply.acpted_rply.ar_vers.high = high_vers;
- SVC_REPLY(xprt, &rply);
-}
-
-/* ******************* SERVER INPUT STUFF ******************* */
-
-/*
- * Get server side input from some transport.
- *
- * Statement of authentication parameters management:
- * This function owns and manages all authentication parameters, specifically
- * the "raw" parameters (msg.rm_call.cb_cred and msg.rm_call.cb_verf) and
- * the "cooked" credentials (rqst->rq_clntcred).
- * However, this function does not know the structure of the cooked
- * credentials, so it make the following assumptions:
- * a) the structure is contiguous (no pointers), and
- * b) the cred structure size does not exceed RQCRED_SIZE bytes.
- * In all events, all three parameters are freed upon exit from this routine.
- * The storage is trivially management on the call stack in user land, but
- * is mallocated in kernel land.
- */
-
-void svc_getreq(rdfds)
-int rdfds;
-{
-#ifdef FD_SETSIZE
- fd_set readfds;
-
- FD_ZERO(&readfds);
-/*#ifdef __linux__*/
-#if 0
- readfds = rdfds;
-#else
- readfds.fds_bits[0] = rdfds;
-#endif
- svc_getreqset(&readfds);
-#else
- int readfds = rdfds & svc_fds;
-
- svc_getreqset(&readfds);
-#endif /* def FD_SETSIZE */
-}
-
-void svc_getreqset(readfds)
-#ifdef FD_SETSIZE
-fd_set *readfds;
-{
-#else
-int *readfds;
-{
- int readfds_local = *readfds;
-#endif /* def FD_SETSIZE */
- enum xprt_stat stat;
- struct rpc_msg msg;
- int prog_found;
- u_long low_vers;
- u_long high_vers;
- struct svc_req r;
- register SVCXPRT *xprt;
- register u_long mask;
- register int bit;
- register u_long *maskp;
- register int setsize;
- register int sock;
- char cred_area[2 * MAX_AUTH_BYTES + RQCRED_SIZE];
-
- msg.rm_call.cb_cred.oa_base = cred_area;
- msg.rm_call.cb_verf.oa_base = &(cred_area[MAX_AUTH_BYTES]);
- r.rq_clntcred = &(cred_area[2 * MAX_AUTH_BYTES]);
-
-
-#ifdef FD_SETSIZE
- setsize = _rpc_dtablesize();
-#ifdef __linux__
-/*#define NFDBITS 32*/
- maskp = (u_long *) readfds;
-#else
- maskp = (u_long *) readfds->fds_bits;
-#endif
- for (sock = 0; sock < setsize; sock += NFDBITS) {
- for (mask = *maskp++; (bit = ffs(mask)); mask ^= (1 << (bit - 1))) {
- /* sock has input waiting */
- xprt = xports[sock + bit - 1];
-#else
- for (sock = 0; readfds_local != 0; sock++, readfds_local >>= 1) {
- if ((readfds_local & 1) != 0) {
- /* sock has input waiting */
- xprt = xports[sock];
-#endif /* def FD_SETSIZE */
- /* now receive msgs from xprtprt (support batch calls) */
- do {
- if (SVC_RECV(xprt, &msg)) {
-
- /* now find the exported program and call it */
- register struct svc_callout *s;
- enum auth_stat why;
-
- r.rq_xprt = xprt;
- r.rq_prog = msg.rm_call.cb_prog;
- r.rq_vers = msg.rm_call.cb_vers;
- r.rq_proc = msg.rm_call.cb_proc;
- r.rq_cred = msg.rm_call.cb_cred;
- /* first authenticate the message */
- if ((why = _authenticate(&r, &msg)) != AUTH_OK) {
- svcerr_auth(xprt, why);
- goto call_done;
- }
- /* now match message with a registered service */
- prog_found = FALSE;
- low_vers = 0 - 1;
- high_vers = 0;
- for (s = svc_head; s != NULL_SVC; s = s->sc_next) {
- if (s->sc_prog == r.rq_prog) {
- if (s->sc_vers == r.rq_vers) {
- (*s->sc_dispatch) (&r, xprt);
- goto call_done;
- } /* found correct version */
- prog_found = TRUE;
- if (s->sc_vers < low_vers)
- low_vers = s->sc_vers;
- if (s->sc_vers > high_vers)
- high_vers = s->sc_vers;
- } /* found correct program */
- }
- /*
- * if we got here, the program or version
- * is not served ...
- */
- if (prog_found)
- svcerr_progvers(xprt, low_vers, high_vers);
- else
- svcerr_noprog(xprt);
- /* Fall through to ... */
- }
- call_done:
- if ((stat = SVC_STAT(xprt)) == XPRT_DIED) {
- SVC_DESTROY(xprt);
- break;
- }
- } while (stat == XPRT_MOREREQS);
- }
- }
-}
diff --git a/mdk-stage1/dietlibc/librpc/svc_auth.c b/mdk-stage1/dietlibc/librpc/svc_auth.c
deleted file mode 100644
index 336586d95..000000000
--- a/mdk-stage1/dietlibc/librpc/svc_auth.c
+++ /dev/null
@@ -1,115 +0,0 @@
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] =
-
- "@(#)svc_auth.c 2.1 88/08/07 4.0 RPCSRC; from 1.19 87/08/11 Copyr 1984 Sun Micro";
-#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.
- *
- * 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
- */
-
-/*
- * svc_auth_nodes.c, Server-side rpc authenticator interface,
- * *WITHOUT* DES authentication.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#include <rpc/rpc.h>
-
-/*
- * svcauthsw is the bdevsw of server side authentication.
- *
- * Server side authenticators are called from authenticate by
- * using the client auth struct flavor field to index into svcauthsw.
- * The server auth flavors must implement a routine that looks
- * like:
- *
- * enum auth_stat
- * flavorx_auth(rqst, msg)
- * register struct svc_req *rqst;
- * register struct rpc_msg *msg;
- *
- */
-
-enum auth_stat _svcauth_null(); /* no authentication */
-enum auth_stat _svcauth_unix(); /* unix style (uid, gids) */
-enum auth_stat _svcauth_short(); /* short hand unix style */
-
-static struct {
- enum auth_stat (*authenticator) ();
-} svcauthsw[] = {
- { _svcauth_null }, /* AUTH_NULL */
- { _svcauth_unix }, /* AUTH_UNIX */
- { _svcauth_short }, /* AUTH_SHORT */
-};
-
-#define AUTH_MAX 2 /* HIGHEST AUTH NUMBER */
-
-
-/*
- * The call rpc message, msg has been obtained from the wire. The msg contains
- * the raw form of credentials and verifiers. authenticate returns AUTH_OK
- * if the msg is successfully authenticated. If AUTH_OK then the routine also
- * does the following things:
- * set rqst->rq_xprt->verf to the appropriate response verifier;
- * sets rqst->rq_client_cred to the "cooked" form of the credentials.
- *
- * NB: rqst->rq_cxprt->verf must be pre-alloctaed;
- * its length is set appropriately.
- *
- * The caller still owns and is responsible for msg->u.cmb.cred and
- * msg->u.cmb.verf. The authentication system retains ownership of
- * rqst->rq_client_cred, the cooked credentials.
- *
- * There is an assumption that any flavour less than AUTH_NULL is
- * invalid.
- */
-enum auth_stat _authenticate(rqst, msg)
-register struct svc_req *rqst;
-struct rpc_msg *msg;
-{
- register int cred_flavor;
-
- rqst->rq_cred = msg->rm_call.cb_cred;
- rqst->rq_xprt->xp_verf.oa_flavor = _null_auth.oa_flavor;
- rqst->rq_xprt->xp_verf.oa_length = 0;
- cred_flavor = rqst->rq_cred.oa_flavor;
- if ((cred_flavor <= AUTH_MAX) && (cred_flavor >= AUTH_NULL)) {
- return ((*(svcauthsw[cred_flavor].authenticator)) (rqst, msg));
- }
-
- return (AUTH_REJECTEDCRED);
-}
-
-enum auth_stat _svcauth_null( /*rqst, msg */ )
- /*struct svc_req *rqst;
- struct rpc_msg *msg; */
-{
-
- return (AUTH_OK);
-}
diff --git a/mdk-stage1/dietlibc/librpc/svc_auth_unix.c b/mdk-stage1/dietlibc/librpc/svc_auth_unix.c
deleted file mode 100644
index 7e0305f0a..000000000
--- a/mdk-stage1/dietlibc/librpc/svc_auth_unix.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/* @(#)svc_auth_unix.c 2.3 88/08/01 4.0 RPCSRC; from 1.28 88/02/08 SMI */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] =
-
- "@(#)svc_auth_unix.c 1.28 88/02/08 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * svc_auth_unix.c
- * Handles UNIX flavor authentication parameters on the service side of rpc.
- * There are two svc auth implementations here: AUTH_UNIX and AUTH_SHORT.
- * _svcauth_unix does full blown unix style uid,gid+gids auth,
- * _svcauth_short uses a shorthand auth to index into a cache of longhand auths.
- * Note: the shorthand has been gutted for efficiency.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#include <stdio.h>
-#include <rpc/rpc.h>
-#include <string.h>
-
-/*
- * Unix longhand authenticator
- */
-enum auth_stat _svcauth_unix(rqst, msg)
-register struct svc_req *rqst;
-register struct rpc_msg *msg;
-{
- register enum auth_stat stat;
- XDR xdrs;
- register struct authunix_parms *aup;
- register int32_t *buf;
- struct area {
- struct authunix_parms area_aup;
- char area_machname[MAX_MACHINE_NAME + 1];
- gid_t area_gids[NGRPS];
- } *area;
- u_int auth_len;
- int str_len, gid_len;
- register int i;
-
- area = (struct area *) rqst->rq_clntcred;
- aup = &area->area_aup;
- aup->aup_machname = area->area_machname;
- aup->aup_gids = area->area_gids;
- auth_len = (u_int) msg->rm_call.cb_cred.oa_length;
- xdrmem_create(&xdrs, msg->rm_call.cb_cred.oa_base, auth_len,
- XDR_DECODE);
- buf = XDR_INLINE(&xdrs, auth_len);
- if (buf != NULL) {
- aup->aup_time = IXDR_GET_LONG(buf);
- str_len = IXDR_GET_U_LONG(buf);
- if (str_len > MAX_MACHINE_NAME) {
- stat = AUTH_BADCRED;
- goto done;
- }
- bcopy((caddr_t) buf, aup->aup_machname, (u_int) str_len);
- aup->aup_machname[str_len] = 0;
- str_len = RNDUP(str_len);
- buf += str_len / sizeof(long);
-
- aup->aup_uid = IXDR_GET_LONG(buf);
- aup->aup_gid = IXDR_GET_LONG(buf);
- gid_len = IXDR_GET_U_LONG(buf);
- if (gid_len > NGRPS) {
- stat = AUTH_BADCRED;
- goto done;
- }
- aup->aup_len = gid_len;
- for (i = 0; i < gid_len; i++) {
- aup->aup_gids[i] = IXDR_GET_LONG(buf);
- }
- /*
- * five is the smallest unix credentials structure -
- * timestamp, hostname len (0), uid, gid, and gids len (0).
- */
- if ((5 + gid_len) * BYTES_PER_XDR_UNIT + str_len > auth_len) {
- (void) printf("bad auth_len gid %d str %d auth %d\n",
- gid_len, str_len, auth_len);
- stat = AUTH_BADCRED;
- goto done;
- }
- } else if (!xdr_authunix_parms(&xdrs, aup)) {
- xdrs.x_op = XDR_FREE;
- (void) xdr_authunix_parms(&xdrs, aup);
- stat = AUTH_BADCRED;
- goto done;
- }
- rqst->rq_xprt->xp_verf.oa_flavor = AUTH_NULL;
- rqst->rq_xprt->xp_verf.oa_length = 0;
- stat = AUTH_OK;
- done:
- XDR_DESTROY(&xdrs);
- return (stat);
-}
-
-
-/*
- * Shorthand unix authenticator
- * Looks up longhand in a cache.
- */
- /*ARGSUSED*/ enum auth_stat _svcauth_short(rqst, msg)
-struct svc_req *rqst;
-struct rpc_msg *msg;
-{
- return (AUTH_REJECTEDCRED);
-}
diff --git a/mdk-stage1/dietlibc/librpc/svc_raw.c b/mdk-stage1/dietlibc/librpc/svc_raw.c
deleted file mode 100644
index c13ea5e06..000000000
--- a/mdk-stage1/dietlibc/librpc/svc_raw.c
+++ /dev/null
@@ -1,159 +0,0 @@
-/* @(#)svc_raw.c 2.1 88/07/29 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)svc_raw.c 1.15 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * svc_raw.c, This a toy for simple testing and timing.
- * Interface to create an rpc client and server in the same UNIX process.
- * This lets us similate rpc and get rpc (round trip) overhead, without
- * any interference from the kernal.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#include <rpc/rpc.h>
-
-
-/*
- * This is the "network" that we will be moving data over
- */
-static struct svcraw_private {
- char _raw_buf[UDPMSGSIZE];
- SVCXPRT server;
- XDR xdr_stream;
- char verf_body[MAX_AUTH_BYTES];
-} *svcraw_private;
-
-static bool_t svcraw_recv();
-static enum xprt_stat svcraw_stat();
-static bool_t svcraw_getargs();
-static bool_t svcraw_reply();
-static bool_t svcraw_freeargs();
-static void svcraw_destroy();
-
-static struct xp_ops server_ops = {
- svcraw_recv,
- svcraw_stat,
- svcraw_getargs,
- svcraw_reply,
- svcraw_freeargs,
- svcraw_destroy
-};
-
-SVCXPRT *svcraw_create()
-{
- register struct svcraw_private *srp = svcraw_private;
-
- if (srp == 0) {
- srp = (struct svcraw_private *) calloc(1, sizeof(*srp));
- if (srp == 0)
- return (0);
- }
- srp->server.xp_sock = 0;
- srp->server.xp_port = 0;
- srp->server.xp_ops = &server_ops;
- srp->server.xp_verf.oa_base = srp->verf_body;
- xdrmem_create(&srp->xdr_stream, srp->_raw_buf, UDPMSGSIZE, XDR_FREE);
- return (&srp->server);
-}
-
-static enum xprt_stat svcraw_stat()
-{
-
- return (XPRT_IDLE);
-}
-
-static bool_t svcraw_recv(xprt, msg)
-SVCXPRT *xprt;
-struct rpc_msg *msg;
-{
- register struct svcraw_private *srp = svcraw_private;
- register XDR *xdrs;
-
- if (srp == 0)
- return (0);
- xdrs = &srp->xdr_stream;
- xdrs->x_op = XDR_DECODE;
- XDR_SETPOS(xdrs, 0);
- if (!xdr_callmsg(xdrs, msg))
- return (FALSE);
- return (TRUE);
-}
-
-static bool_t svcraw_reply(xprt, msg)
-SVCXPRT *xprt;
-struct rpc_msg *msg;
-{
- register struct svcraw_private *srp = svcraw_private;
- register XDR *xdrs;
-
- if (srp == 0)
- return (FALSE);
- xdrs = &srp->xdr_stream;
- xdrs->x_op = XDR_ENCODE;
- XDR_SETPOS(xdrs, 0);
- if (!xdr_replymsg(xdrs, msg))
- return (FALSE);
- (void) XDR_GETPOS(xdrs); /* called just for overhead */
- return (TRUE);
-}
-
-static bool_t svcraw_getargs(xprt, xdr_args, args_ptr)
-SVCXPRT *xprt;
-xdrproc_t xdr_args;
-caddr_t args_ptr;
-{
- register struct svcraw_private *srp = svcraw_private;
-
- if (srp == 0)
- return (FALSE);
- return ((*xdr_args) (&srp->xdr_stream, args_ptr));
-}
-
-static bool_t svcraw_freeargs(xprt, xdr_args, args_ptr)
-SVCXPRT *xprt;
-xdrproc_t xdr_args;
-caddr_t args_ptr;
-{
- register struct svcraw_private *srp = svcraw_private;
- register XDR *xdrs;
-
- if (srp == 0)
- return (FALSE);
- xdrs = &srp->xdr_stream;
- xdrs->x_op = XDR_FREE;
- return ((*xdr_args) (xdrs, args_ptr));
-}
-
-static void svcraw_destroy()
-{
-}
diff --git a/mdk-stage1/dietlibc/librpc/svc_run.c b/mdk-stage1/dietlibc/librpc/svc_run.c
deleted file mode 100644
index c7150e357..000000000
--- a/mdk-stage1/dietlibc/librpc/svc_run.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* @(#)svc_run.c 2.1 88/07/29 4.0 RPCSRC */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)svc_run.c 1.1 87/10/13 Copyr 1984 Sun Micro";
-#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.
- *
- * 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
- */
-
-/*
- * This is the rpc server side idle loop
- * Wait for input, call server program.
- */
-#include <rpc/rpc.h>
-#include <errno.h>
-#include <unistd.h>
-
-void svc_run()
-{
-#ifdef FD_SETSIZE
- fd_set readfds;
-#else
- int readfds;
-#endif /* def FD_SETSIZE */
- extern int errno;
-
- for (;;) {
-#ifdef FD_SETSIZE
- readfds = svc_fdset;
-#else
- readfds = svc_fds;
-#endif /* def FD_SETSIZE */
- switch (select(_rpc_dtablesize(), &readfds, 0, 0, 0)) {
- case -1:
- if (errno == EINTR) {
- continue;
- }
- perror("svc_run: - select failed");
- return;
- case 0:
- continue;
- default:
- svc_getreqset(&readfds);
- }
- }
-}
diff --git a/mdk-stage1/dietlibc/librpc/svc_simple.c b/mdk-stage1/dietlibc/librpc/svc_simple.c
deleted file mode 100644
index 0bb9a19eb..000000000
--- a/mdk-stage1/dietlibc/librpc/svc_simple.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/* @(#)svc_simple.c 2.2 88/08/01 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] =
-
- "@(#)svc_simple.c 1.18 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * svc_simple.c
- * Simplified front end to rpc.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#include <stdio.h>
-#include <rpc/rpc.h>
-#include <sys/socket.h>
-#include <netdb.h>
-#include <rpc/pmap_clnt.h>
-#include <string.h>
-
-static struct proglst {
- char *(*p_progname) ();
- int p_prognum;
- int p_procnum;
- xdrproc_t p_inproc, p_outproc;
- struct proglst *p_nxt;
-} *proglst;
-static void universal();
-static SVCXPRT *transp;
-struct proglst *pl;
-
-int registerrpc(int prognum, int versnum, int procnum, char *(*progname)(), xdrproc_t inproc, xdrproc_t outproc)
-{
-
- if (procnum == NULLPROC) {
- (void) fprintf(stderr,
- "can't reassign procedure number %d\n", NULLPROC);
- return (-1);
- }
- if (transp == 0) {
- transp = svcudp_create(RPC_ANYSOCK);
- if (transp == NULL) {
- (void) fprintf(stderr, "couldn't create an rpc server\n");
- return (-1);
- }
- }
- (void) pmap_unset((u_long) prognum, (u_long) versnum);
- if (!svc_register(transp, (u_long) prognum, (u_long) versnum,
- universal, IPPROTO_UDP)) {
- (void) fprintf(stderr, "couldn't register prog %d vers %d\n",
- prognum, versnum);
- return (-1);
- }
- pl = (struct proglst *) malloc(sizeof(struct proglst));
-
- if (pl == NULL) {
- (void) fprintf(stderr, "registerrpc: out of memory\n");
- return (-1);
- }
- pl->p_progname = progname;
- pl->p_prognum = prognum;
- pl->p_procnum = procnum;
- pl->p_inproc = inproc;
- pl->p_outproc = outproc;
- pl->p_nxt = proglst;
- proglst = pl;
- return (0);
-}
-
-static void universal(rqstp, transp)
-struct svc_req *rqstp;
-SVCXPRT *transp;
-{
- int prog, proc;
- char *outdata;
- char xdrbuf[UDPMSGSIZE];
- struct proglst *pl;
-
- /*
- * enforce "procnum 0 is echo" convention
- */
- if (rqstp->rq_proc == NULLPROC) {
- if (svc_sendreply(transp, (xdrproc_t)xdr_void, (char *) NULL) == FALSE) {
- (void) fprintf(stderr, "xxx\n");
- exit(1);
- }
- return;
- }
- prog = rqstp->rq_prog;
- proc = rqstp->rq_proc;
- for (pl = proglst; pl != NULL; pl = pl->p_nxt)
- if (pl->p_prognum == prog && pl->p_procnum == proc) {
- /* decode arguments into a CLEAN buffer */
- bzero(xdrbuf, sizeof(xdrbuf)); /* required ! */
- if (!svc_getargs(transp, pl->p_inproc, xdrbuf)) {
- svcerr_decode(transp);
- return;
- }
- outdata = (*(pl->p_progname)) (xdrbuf);
- if (outdata == NULL && pl->p_outproc != (xdrproc_t)xdr_void)
- /* there was an error */
- return;
- if (!svc_sendreply(transp, pl->p_outproc, outdata)) {
- (void) fprintf(stderr,
- "trouble replying to prog %d\n",
- pl->p_prognum);
- exit(1);
- }
- /* free the decoded arguments */
- (void) svc_freeargs(transp, pl->p_inproc, xdrbuf);
- return;
- }
- (void) fprintf(stderr, "never registered prog %d\n", prog);
- exit(1);
-}
diff --git a/mdk-stage1/dietlibc/librpc/svc_tcp.c b/mdk-stage1/dietlibc/librpc/svc_tcp.c
deleted file mode 100644
index 6edafa1b1..000000000
--- a/mdk-stage1/dietlibc/librpc/svc_tcp.c
+++ /dev/null
@@ -1,406 +0,0 @@
-/* @(#)svc_tcp.c 2.2 88/08/01 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)svc_tcp.c 1.21 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * svc_tcp.c, Server side for TCP/IP based RPC.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * Actually implements two flavors of transporter -
- * a tcp rendezvouser (a listner and connection establisher)
- * and a record/tcp stream.
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <rpc/rpc.h>
-#include <sys/socket.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-
-/*
- * Ops vector for TCP/IP based rpc service handle
- */
-static bool_t svctcp_recv();
-static enum xprt_stat svctcp_stat();
-static bool_t svctcp_getargs();
-static bool_t svctcp_reply();
-static bool_t svctcp_freeargs();
-static void svctcp_destroy();
-
-static struct xp_ops svctcp_op = {
- svctcp_recv,
- svctcp_stat,
- svctcp_getargs,
- svctcp_reply,
- svctcp_freeargs,
- svctcp_destroy
-};
-
-/*
- * Ops vector for TCP/IP rendezvous handler
- */
-static bool_t rendezvous_request();
-static enum xprt_stat rendezvous_stat();
-
-static struct xp_ops svctcp_rendezvous_op = {
- rendezvous_request,
- rendezvous_stat,
- (void*)abort,
- (void*)abort,
- (void*)abort,
- svctcp_destroy
-};
-
-static int readtcp(), writetcp();
-static SVCXPRT *makefd_xprt();
-
-struct tcp_rendezvous { /* kept in xprt->xp_p1 */
- u_int sendsize;
- u_int recvsize;
-};
-
-struct tcp_conn { /* kept in xprt->xp_p1 */
- enum xprt_stat strm_stat;
- u_long x_id;
- XDR xdrs;
- char verf_body[MAX_AUTH_BYTES];
-};
-
-/*
- * Usage:
- * xprt = svctcp_create(sock, send_buf_size, recv_buf_size);
- *
- * Creates, registers, and returns a (rpc) tcp based transporter.
- * Once *xprt is initialized, it is registered as a transporter
- * see (svc.h, xprt_register). This routine returns
- * a NULL if a problem occurred.
- *
- * If sock<0 then a socket is created, else sock is used.
- * If the socket, sock is not bound to a port then svctcp_create
- * binds it to an arbitrary port. The routine then starts a tcp
- * listener on the socket's associated port. In any (successful) case,
- * xprt->xp_sock is the registered socket number and xprt->xp_port is the
- * associated port number.
- *
- * Since tcp streams do buffered io similar to stdio, the caller can specify
- * how big the send and receive buffers are via the second and third parms;
- * 0 => use the system default.
- */
-SVCXPRT *svctcp_create(sock, sendsize, recvsize)
-register int sock;
-u_int sendsize;
-u_int recvsize;
-{
- bool_t madesock = FALSE;
- register SVCXPRT *xprt;
- register struct tcp_rendezvous *r;
- struct sockaddr_in addr;
- int len = sizeof(struct sockaddr_in);
-
- if (sock == RPC_ANYSOCK) {
- if ((sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) {
- perror("svc_tcp.c - tcp socket creation problem");
- return ((SVCXPRT *) NULL);
- }
- madesock = TRUE;
- }
- bzero((char *) &addr, sizeof(addr));
- addr.sin_family = AF_INET;
- if (bindresvport(sock, &addr)) {
- addr.sin_port = 0;
- (void) bind(sock, (struct sockaddr *) &addr, len);
- }
- if ((getsockname(sock, (struct sockaddr *) &addr, &len) != 0) ||
- (listen(sock, 2) != 0)) {
- perror("svctcp_.c - cannot getsockname or listen");
- if (madesock)
- (void) close(sock);
- return ((SVCXPRT *) NULL);
- }
- r = (struct tcp_rendezvous *) mem_alloc(sizeof(*r));
- if (r == NULL) {
- (void) fprintf(stderr, "svctcp_create: out of memory\n");
- return (NULL);
- }
- r->sendsize = sendsize;
- r->recvsize = recvsize;
- xprt = (SVCXPRT *) mem_alloc(sizeof(SVCXPRT));
- if (xprt == NULL) {
- (void) fprintf(stderr, "svctcp_create: out of memory\n");
- return (NULL);
- }
- xprt->xp_p2 = NULL;
- xprt->xp_p1 = (caddr_t) r;
- xprt->xp_verf = _null_auth;
- xprt->xp_ops = &svctcp_rendezvous_op;
- xprt->xp_port = ntohs(addr.sin_port);
- xprt->xp_sock = sock;
- xprt_register(xprt);
- return (xprt);
-}
-
-/*
- * Like svtcp_create(), except the routine takes any *open* UNIX file
- * descriptor as its first input.
- */
-SVCXPRT *svcfd_create(fd, sendsize, recvsize)
-int fd;
-u_int sendsize;
-u_int recvsize;
-{
-
- return (makefd_xprt(fd, sendsize, recvsize));
-}
-
-static SVCXPRT *makefd_xprt(fd, sendsize, recvsize)
-int fd;
-u_int sendsize;
-u_int recvsize;
-{
- register SVCXPRT *xprt;
- register struct tcp_conn *cd;
-
- xprt = (SVCXPRT *) mem_alloc(sizeof(SVCXPRT));
- if (xprt == (SVCXPRT *) NULL) {
- (void) fprintf(stderr, "svc_tcp: makefd_xprt: out of memory\n");
- goto done;
- }
- cd = (struct tcp_conn *) mem_alloc(sizeof(struct tcp_conn));
-
- if (cd == (struct tcp_conn *) NULL) {
- (void) fprintf(stderr, "svc_tcp: makefd_xprt: out of memory\n");
- mem_free((char *) xprt, sizeof(SVCXPRT));
- xprt = (SVCXPRT *) NULL;
- goto done;
- }
- cd->strm_stat = XPRT_IDLE;
- xdrrec_create(&(cd->xdrs), sendsize, recvsize,
- (caddr_t) xprt, readtcp, writetcp);
- xprt->xp_p2 = NULL;
- xprt->xp_p1 = (caddr_t) cd;
- xprt->xp_verf.oa_base = cd->verf_body;
- xprt->xp_addrlen = 0;
- xprt->xp_ops = &svctcp_op; /* truely deals with calls */
- xprt->xp_port = 0; /* this is a connection, not a rendezvouser */
- xprt->xp_sock = fd;
- xprt_register(xprt);
- done:
- return (xprt);
-}
-
-static bool_t rendezvous_request(xprt)
-register SVCXPRT *xprt;
-{
- int sock;
- struct tcp_rendezvous *r;
- struct sockaddr_in addr;
- int len;
-
- r = (struct tcp_rendezvous *) xprt->xp_p1;
- again:
- len = sizeof(struct sockaddr_in);
-
- if ((sock = accept(xprt->xp_sock, (struct sockaddr *) &addr,
- &len)) < 0) {
- if (errno == EINTR)
- goto again;
- return (FALSE);
- }
- /*
- * make a new transporter (re-uses xprt)
- */
- xprt = makefd_xprt(sock, r->sendsize, r->recvsize);
- xprt->xp_raddr = addr;
- xprt->xp_addrlen = len;
- return (FALSE); /* there is never an rpc msg to be processed */
-}
-
-static enum xprt_stat rendezvous_stat()
-{
-
- return (XPRT_IDLE);
-}
-
-static void svctcp_destroy(xprt)
-register SVCXPRT *xprt;
-{
- register struct tcp_conn *cd = (struct tcp_conn *) xprt->xp_p1;
-
- xprt_unregister(xprt);
- (void) close(xprt->xp_sock);
- if (xprt->xp_port != 0) {
- /* a rendezvouser socket */
- xprt->xp_port = 0;
- } else {
- /* an actual connection socket */
- XDR_DESTROY(&(cd->xdrs));
- }
- mem_free((caddr_t) cd, sizeof(struct tcp_conn));
-
- mem_free((caddr_t) xprt, sizeof(SVCXPRT));
-}
-
-/*
- * All read operations timeout after 35 seconds.
- * A timeout is fatal for the connection.
- */
-static struct timeval wait_per_try = { 35, 0 };
-
-/*
- * reads data from the tcp conection.
- * any error is fatal and the connection is closed.
- * (And a read of zero bytes is a half closed stream => error.)
- */
-static int readtcp(xprt, buf, len)
-register SVCXPRT *xprt;
-caddr_t buf;
-register int len;
-{
- register int sock = xprt->xp_sock;
-
-#ifdef FD_SETSIZE
- fd_set mask;
- fd_set readfds;
-
- FD_ZERO(&mask);
- FD_SET(sock, &mask);
-#else
- register int mask = 1 << sock;
- int readfds;
-#endif /* def FD_SETSIZE */
- do {
- readfds = mask;
- if (select(_rpc_dtablesize(), &readfds, 0, 0, &wait_per_try) <= 0) {
- if (errno == EINTR) {
- continue;
- }
- goto fatal_err;
- }
-#ifdef FD_SETSIZE
- } while (!FD_ISSET(sock, &readfds));
-#else
- } while (readfds != mask);
-#endif /* def FD_SETSIZE */
- if ((len = read(sock, buf, len)) > 0) {
- return (len);
- }
- fatal_err:
- ((struct tcp_conn *) (xprt->xp_p1))->strm_stat = XPRT_DIED;
- return (-1);
-}
-
-/*
- * writes data to the tcp connection.
- * Any error is fatal and the connection is closed.
- */
-static int writetcp(xprt, buf, len)
-register SVCXPRT *xprt;
-caddr_t buf;
-int len;
-{
- register int i, cnt;
-
- for (cnt = len; cnt > 0; cnt -= i, buf += i) {
- if ((i = write(xprt->xp_sock, buf, cnt)) < 0) {
- ((struct tcp_conn *) (xprt->xp_p1))->strm_stat = XPRT_DIED;
- return (-1);
- }
- }
- return (len);
-}
-
-static enum xprt_stat svctcp_stat(xprt)
-SVCXPRT *xprt;
-{
- register struct tcp_conn *cd = (struct tcp_conn *) (xprt->xp_p1);
-
- if (cd->strm_stat == XPRT_DIED)
- return (XPRT_DIED);
- if (!xdrrec_eof(&(cd->xdrs)))
- return (XPRT_MOREREQS);
- return (XPRT_IDLE);
-}
-
-static bool_t svctcp_recv(xprt, msg)
-SVCXPRT *xprt;
-register struct rpc_msg *msg;
-{
- register struct tcp_conn *cd = (struct tcp_conn *) (xprt->xp_p1);
- register XDR *xdrs = &(cd->xdrs);
-
- xdrs->x_op = XDR_DECODE;
- (void) xdrrec_skiprecord(xdrs);
- if (xdr_callmsg(xdrs, msg)) {
- cd->x_id = msg->rm_xid;
- return (TRUE);
- }
- return (FALSE);
-}
-
-static bool_t svctcp_getargs(xprt, xdr_args, args_ptr)
-SVCXPRT *xprt;
-xdrproc_t xdr_args;
-caddr_t args_ptr;
-{
-
- return ((*xdr_args)
- (&(((struct tcp_conn *) (xprt->xp_p1))->xdrs), args_ptr));
-}
-
-static bool_t svctcp_freeargs(xprt, xdr_args, args_ptr)
-SVCXPRT *xprt;
-xdrproc_t xdr_args;
-caddr_t args_ptr;
-{
- register XDR *xdrs = &(((struct tcp_conn *) (xprt->xp_p1))->xdrs);
-
- xdrs->x_op = XDR_FREE;
- return ((*xdr_args) (xdrs, args_ptr));
-}
-
-static bool_t svctcp_reply(xprt, msg)
-SVCXPRT *xprt;
-register struct rpc_msg *msg;
-{
- register struct tcp_conn *cd = (struct tcp_conn *) (xprt->xp_p1);
- register XDR *xdrs = &(cd->xdrs);
- register bool_t stat;
-
- xdrs->x_op = XDR_ENCODE;
- msg->rm_xid = cd->x_id;
- stat = xdr_replymsg(xdrs, msg);
- (void) xdrrec_endofrecord(xdrs, TRUE);
- return (stat);
-}
diff --git a/mdk-stage1/dietlibc/librpc/svc_udp.c b/mdk-stage1/dietlibc/librpc/svc_udp.c
deleted file mode 100644
index 1cdb5ce91..000000000
--- a/mdk-stage1/dietlibc/librpc/svc_udp.c
+++ /dev/null
@@ -1,467 +0,0 @@
-/* @(#)svc_udp.c 2.2 88/07/29 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)svc_udp.c 1.24 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * svc_udp.c,
- * Server side for UDP/IP based RPC. (Does some caching in the hopes of
- * achieving execute-at-most-once semantics.)
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#include <stdio.h>
-#include <rpc/rpc.h>
-#include <sys/socket.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-
-
-#define rpc_buffer(xprt) ((xprt)->xp_p1)
-#define MAX(a, b) ((a > b) ? a : b)
-
-static bool_t svcudp_recv();
-static bool_t svcudp_reply();
-static enum xprt_stat svcudp_stat();
-static bool_t svcudp_getargs();
-static bool_t svcudp_freeargs();
-static void svcudp_destroy();
-
-static struct xp_ops svcudp_op = {
- svcudp_recv,
- svcudp_stat,
- svcudp_getargs,
- svcudp_reply,
- svcudp_freeargs,
- svcudp_destroy
-};
-
-extern int errno;
-
-/*
- * kept in xprt->xp_p2
- */
-struct svcudp_data {
- u_int su_iosz; /* byte size of send.recv buffer */
- u_long su_xid; /* transaction id */
- XDR su_xdrs; /* XDR handle */
- char su_verfbody[MAX_AUTH_BYTES]; /* verifier body */
- char *su_cache; /* cached data, NULL if no cache */
-};
-
-#define su_data(xprt) ((struct svcudp_data *)(xprt->xp_p2))
-
-static int cache_get(SVCXPRT* xprt, struct rpc_msg* msg, char** replyp, u_long* replylenp);
-static void cache_set(SVCXPRT* xprt, u_long replylen);
-
-/*
- * Usage:
- * xprt = svcudp_create(sock);
- *
- * If sock<0 then a socket is created, else sock is used.
- * If the socket, sock is not bound to a port then svcudp_create
- * binds it to an arbitrary port. In any (successful) case,
- * xprt->xp_sock is the registered socket number and xprt->xp_port is the
- * associated port number.
- * Once *xprt is initialized, it is registered as a transporter;
- * see (svc.h, xprt_register).
- * The routines returns NULL if a problem occurred.
- */
-SVCXPRT *svcudp_bufcreate(sock, sendsz, recvsz)
-register int sock;
-u_int sendsz, recvsz;
-{
- bool_t madesock = FALSE;
- register SVCXPRT *xprt;
- register struct svcudp_data *su;
- struct sockaddr_in addr;
- int len = sizeof(struct sockaddr_in);
-
- if (sock == RPC_ANYSOCK) {
- if ((sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) {
- perror("svcudp_create: socket creation problem");
- return ((SVCXPRT *) NULL);
- }
- madesock = TRUE;
- }
- bzero((char *) &addr, sizeof(addr));
- addr.sin_family = AF_INET;
- if (bindresvport(sock, &addr)) {
- addr.sin_port = 0;
- (void) bind(sock, (struct sockaddr *) &addr, len);
- }
- if (getsockname(sock, (struct sockaddr *) &addr, &len) != 0) {
- perror("svcudp_create - cannot getsockname");
- if (madesock)
- (void) close(sock);
- return ((SVCXPRT *) NULL);
- }
- xprt = (SVCXPRT *) mem_alloc(sizeof(SVCXPRT));
- if (xprt == NULL) {
- (void) fprintf(stderr, "svcudp_create: out of memory\n");
- return (NULL);
- }
- su = (struct svcudp_data *) mem_alloc(sizeof(*su));
- if (su == NULL) {
- (void) fprintf(stderr, "svcudp_create: out of memory\n");
- return (NULL);
- }
- su->su_iosz = ((MAX(sendsz, recvsz) + 3) / 4) * 4;
- if ((rpc_buffer(xprt) = mem_alloc(su->su_iosz)) == NULL) {
- (void) fprintf(stderr, "svcudp_create: out of memory\n");
- return (NULL);
- }
- xdrmem_create(&(su->su_xdrs), rpc_buffer(xprt), su->su_iosz,
- XDR_DECODE);
- su->su_cache = NULL;
- xprt->xp_p2 = (caddr_t) su;
- xprt->xp_verf.oa_base = su->su_verfbody;
- xprt->xp_ops = &svcudp_op;
- xprt->xp_port = ntohs(addr.sin_port);
- xprt->xp_sock = sock;
- xprt_register(xprt);
- return (xprt);
-}
-
-SVCXPRT *svcudp_create(sock)
-int sock;
-{
-
- return (svcudp_bufcreate(sock, UDPMSGSIZE, UDPMSGSIZE));
-}
-
-static enum xprt_stat svcudp_stat(xprt)
-SVCXPRT *xprt;
-{
-
- return (XPRT_IDLE);
-}
-
-static bool_t svcudp_recv(xprt, msg)
-register SVCXPRT *xprt;
-struct rpc_msg *msg;
-{
- register struct svcudp_data *su = su_data(xprt);
- register XDR *xdrs = &(su->su_xdrs);
- register int rlen;
- char *reply;
- u_long replylen;
-
- again:
- xprt->xp_addrlen = sizeof(struct sockaddr_in);
-
- rlen = recvfrom(xprt->xp_sock, rpc_buffer(xprt), (int) su->su_iosz,
- 0, (struct sockaddr *) &(xprt->xp_raddr),
- &(xprt->xp_addrlen));
- if (rlen == -1 && errno == EINTR)
- goto again;
- if (rlen < 4 * sizeof(u_long))
- return (FALSE);
- xdrs->x_op = XDR_DECODE;
- XDR_SETPOS(xdrs, 0);
- if (!xdr_callmsg(xdrs, msg))
- return (FALSE);
- su->su_xid = msg->rm_xid;
- if (su->su_cache != NULL) {
- if (cache_get(xprt, msg, &reply, &replylen)) {
- (void) sendto(xprt->xp_sock, reply, (int) replylen, 0,
- (struct sockaddr *) &xprt->xp_raddr,
- xprt->xp_addrlen);
- return (TRUE);
- }
- }
- return (TRUE);
-}
-
-static bool_t svcudp_reply(xprt, msg)
-register SVCXPRT *xprt;
-struct rpc_msg *msg;
-{
- register struct svcudp_data *su = su_data(xprt);
- register XDR *xdrs = &(su->su_xdrs);
- register int slen;
- register bool_t stat = FALSE;
-
- xdrs->x_op = XDR_ENCODE;
- XDR_SETPOS(xdrs, 0);
- msg->rm_xid = su->su_xid;
- if (xdr_replymsg(xdrs, msg)) {
- slen = (int) XDR_GETPOS(xdrs);
- if (sendto(xprt->xp_sock, rpc_buffer(xprt), slen, 0,
- (struct sockaddr *) &(xprt->xp_raddr), xprt->xp_addrlen)
- == slen) {
- stat = TRUE;
- if (su->su_cache && slen >= 0) {
- cache_set(xprt, (u_long) slen);
- }
- }
- }
- return (stat);
-}
-
-static bool_t svcudp_getargs(xprt, xdr_args, args_ptr)
-SVCXPRT *xprt;
-xdrproc_t xdr_args;
-caddr_t args_ptr;
-{
-
- return ((*xdr_args) (&(su_data(xprt)->su_xdrs), args_ptr));
-}
-
-static bool_t svcudp_freeargs(xprt, xdr_args, args_ptr)
-SVCXPRT *xprt;
-xdrproc_t xdr_args;
-caddr_t args_ptr;
-{
- register XDR *xdrs = &(su_data(xprt)->su_xdrs);
-
- xdrs->x_op = XDR_FREE;
- return ((*xdr_args) (xdrs, args_ptr));
-}
-
-static void svcudp_destroy(xprt)
-register SVCXPRT *xprt;
-{
- register struct svcudp_data *su = su_data(xprt);
-
- xprt_unregister(xprt);
- (void) close(xprt->xp_sock);
- XDR_DESTROY(&(su->su_xdrs));
- mem_free(rpc_buffer(xprt), su->su_iosz);
- mem_free((caddr_t) su, sizeof(struct svcudp_data));
-
- mem_free((caddr_t) xprt, sizeof(SVCXPRT));
-}
-
-
-/***********this could be a separate file*********************/
-
-/*
- * Fifo cache for udp server
- * Copies pointers to reply buffers into fifo cache
- * Buffers are sent again if retransmissions are detected.
- */
-
-#define SPARSENESS 4 /* 75% sparse */
-
-#define CACHE_PERROR(msg) \
- (void) fprintf(stderr,"%s\n", msg)
-
-#define ALLOC(type, size) \
- (type *) mem_alloc((unsigned) (sizeof(type) * (size)))
-
-#define BZERO(addr, type, size) \
- bzero((char *) addr, sizeof(type) * (int) (size))
-
-/*
- * An entry in the cache
- */
-typedef struct cache_node *cache_ptr;
-struct cache_node {
- /*
- * Index into cache is xid, proc, vers, prog and address
- */
- u_long cache_xid;
- u_long cache_proc;
- u_long cache_vers;
- u_long cache_prog;
- struct sockaddr_in cache_addr;
- /*
- * The cached reply and length
- */
- char *cache_reply;
- u_long cache_replylen;
- /*
- * Next node on the list, if there is a collision
- */
- cache_ptr cache_next;
-};
-
-
-
-/*
- * The entire cache
- */
-struct udp_cache {
- u_long uc_size; /* size of cache */
- cache_ptr *uc_entries; /* hash table of entries in cache */
- cache_ptr *uc_fifo; /* fifo list of entries in cache */
- u_long uc_nextvictim; /* points to next victim in fifo list */
- u_long uc_prog; /* saved program number */
- u_long uc_vers; /* saved version number */
- u_long uc_proc; /* saved procedure number */
- struct sockaddr_in uc_addr; /* saved caller's address */
-};
-
-
-/*
- * the hashing function
- */
-#define CACHE_LOC(transp, xid) \
- (xid % (SPARSENESS*((struct udp_cache *) su_data(transp)->su_cache)->uc_size))
-
-
-/*
- * Enable use of the cache.
- * Note: there is no disable.
- */
-int svcudp_enablecache(SVCXPRT* transp, u_long size)
-{
- struct svcudp_data *su = su_data(transp);
- struct udp_cache *uc;
-
- if (su->su_cache != NULL) {
- CACHE_PERROR("enablecache: cache already enabled");
- return (0);
- }
- uc = ALLOC(struct udp_cache, 1);
- if (uc == NULL) {
- CACHE_PERROR("enablecache: could not allocate cache");
- return (0);
- }
- uc->uc_size = size;
- uc->uc_nextvictim = 0;
- uc->uc_entries = ALLOC(cache_ptr, size * SPARSENESS);
- if (uc->uc_entries == NULL) {
- CACHE_PERROR("enablecache: could not allocate cache data");
- return (0);
- }
- BZERO(uc->uc_entries, cache_ptr, size * SPARSENESS);
- uc->uc_fifo = ALLOC(cache_ptr, size);
- if (uc->uc_fifo == NULL) {
- CACHE_PERROR("enablecache: could not allocate cache fifo");
- return (0);
- }
- BZERO(uc->uc_fifo, cache_ptr, size);
- su->su_cache = (char *) uc;
- return (1);
-}
-
-
-/*
- * Set an entry in the cache
- */
-static void cache_set(SVCXPRT* xprt, u_long replylen)
-{
- register cache_ptr victim;
- register cache_ptr *vicp;
- register struct svcudp_data *su = su_data(xprt);
- struct udp_cache *uc = (struct udp_cache *) su->su_cache;
- u_int loc;
- char *newbuf;
-
- /*
- * Find space for the new entry, either by
- * reusing an old entry, or by mallocing a new one
- */
- victim = uc->uc_fifo[uc->uc_nextvictim];
- if (victim != NULL) {
- loc = CACHE_LOC(xprt, victim->cache_xid);
- for (vicp = &uc->uc_entries[loc];
- *vicp != NULL && *vicp != victim;
- vicp = &(*vicp)->cache_next);
- if (*vicp == NULL) {
- CACHE_PERROR("cache_set: victim not found");
- return;
- }
- *vicp = victim->cache_next; /* remote from cache */
- newbuf = victim->cache_reply;
- } else {
- victim = ALLOC(struct cache_node, 1);
-
- if (victim == NULL) {
- CACHE_PERROR("cache_set: victim alloc failed");
- return;
- }
- newbuf = mem_alloc(su->su_iosz);
- if (newbuf == NULL) {
- CACHE_PERROR("cache_set: could not allocate new rpc_buffer");
- return;
- }
- }
-
- /*
- * Store it away
- */
- victim->cache_replylen = replylen;
- victim->cache_reply = rpc_buffer(xprt);
- rpc_buffer(xprt) = newbuf;
- xdrmem_create(&(su->su_xdrs), rpc_buffer(xprt), su->su_iosz,
- XDR_ENCODE);
- victim->cache_xid = su->su_xid;
- victim->cache_proc = uc->uc_proc;
- victim->cache_vers = uc->uc_vers;
- victim->cache_prog = uc->uc_prog;
- victim->cache_addr = uc->uc_addr;
- loc = CACHE_LOC(xprt, victim->cache_xid);
- victim->cache_next = uc->uc_entries[loc];
- uc->uc_entries[loc] = victim;
- uc->uc_fifo[uc->uc_nextvictim++] = victim;
- uc->uc_nextvictim %= uc->uc_size;
-}
-
-/*
- * Try to get an entry from the cache
- * return 1 if found, 0 if not found
- */
-static int cache_get(SVCXPRT* xprt, struct rpc_msg* msg, char** replyp, u_long* replylenp)
-{
- u_int loc;
- register cache_ptr ent;
- register struct svcudp_data *su = su_data(xprt);
- register struct udp_cache *uc = (struct udp_cache *) su->su_cache;
-
-# define EQADDR(a1, a2) (bcmp((char*)&a1, (char*)&a2, sizeof(a1)) == 0)
-
- loc = CACHE_LOC(xprt, su->su_xid);
- for (ent = uc->uc_entries[loc]; ent != NULL; ent = ent->cache_next) {
- if (ent->cache_xid == su->su_xid &&
- ent->cache_proc == uc->uc_proc &&
- ent->cache_vers == uc->uc_vers &&
- ent->cache_prog == uc->uc_prog &&
- EQADDR(ent->cache_addr, uc->uc_addr)) {
- *replyp = ent->cache_reply;
- *replylenp = ent->cache_replylen;
- return (1);
- }
- }
- /*
- * Failed to find entry
- * Remember a few things so we can do a set later
- */
- uc->uc_proc = msg->rm_call.cb_proc;
- uc->uc_vers = msg->rm_call.cb_vers;
- uc->uc_prog = msg->rm_call.cb_prog;
- uc->uc_addr = xprt->xp_raddr;
- return (0);
-}
diff --git a/mdk-stage1/dietlibc/librpc/xdr.c b/mdk-stage1/dietlibc/librpc/xdr.c
deleted file mode 100644
index 864b47dea..000000000
--- a/mdk-stage1/dietlibc/librpc/xdr.c
+++ /dev/null
@@ -1,536 +0,0 @@
-/* @(#)xdr.c 2.1 88/07/29 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)xdr.c 1.35 87/08/12";
-#endif
-
-/*
- * xdr.c, Generic XDR routines implementation.
- *
- * Copyright (C) 1986, Sun Microsystems, Inc.
- *
- * These are the "generic" xdr routines used to serialize and de-serialize
- * most common data items. See xdr.h for more info on the interface to
- * xdr.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <rpc/types.h>
-#include <rpc/xdr.h>
-#include <string.h>
-
-/*
- * constants specific to the xdr "protocol"
- */
-#define XDR_FALSE ((long) 0)
-#define XDR_TRUE ((long) 1)
-#define LASTUNSIGNED ((u_int) 0-1)
-
-/*
- * for unit alignment
- */
-static char xdr_zero[BYTES_PER_XDR_UNIT] = { 0, 0, 0, 0 };
-
-/*
- * Free a data structure using XDR
- * Not a filter, but a convenient utility nonetheless
- */
-void xdr_free(xdrproc_t proc, char* objp)
-{
- XDR x;
-
- x.x_op = XDR_FREE;
- (*proc) (&x, objp);
-}
-
-/*
- * XDR nothing
- */
-bool_t xdr_void( /* xdrs, addr */ )
- /* XDR *xdrs; */
- /* caddr_t addr; */
-{
-
- return (TRUE);
-}
-
-/*
- * XDR integers
- */
-bool_t xdr_int(XDR* xdrs, int* ip)
-{
-
-#ifdef lint
- (void) (xdr_short(xdrs, (short *) ip));
- return (xdr_long(xdrs, (long *) ip));
-#else
- if (sizeof(int) == sizeof(long)) {
- return (xdr_long(xdrs, (long *) ip));
- } else {
- return (xdr_short(xdrs, (short *) ip));
- }
-#endif
-}
-
-/*
- * XDR unsigned integers
- */
-bool_t xdr_u_int(XDR* xdrs, unsigned int* up)
-{
-
-#ifdef lint
- (void) (xdr_short(xdrs, (short *) up));
- return (xdr_u_long(xdrs, (u_long *) up));
-#else
- if (sizeof(u_int) == sizeof(u_long)) {
- return (xdr_u_long(xdrs, (u_long *) up));
- } else {
- return (xdr_short(xdrs, (short *) up));
- }
-#endif
-}
-
-/*
- * XDR long integers
- * same as xdr_u_long - open coded to save a proc call!
- */
-bool_t xdr_long(XDR* xdrs, long* lp)
-{
-
- if (xdrs->x_op == XDR_ENCODE)
- return (XDR_PUTLONG(xdrs, lp));
-
- if (xdrs->x_op == XDR_DECODE)
- return (XDR_GETLONG(xdrs, lp));
-
- if (xdrs->x_op == XDR_FREE)
- return (TRUE);
-
- return (FALSE);
-}
-
-/*
- * XDR unsigned long integers
- * same as xdr_long - open coded to save a proc call!
- */
-bool_t xdr_u_long(XDR* xdrs, unsigned long* ulp)
-{
-
- if (xdrs->x_op == XDR_DECODE)
- return (XDR_GETLONG(xdrs, (long *) ulp));
- if (xdrs->x_op == XDR_ENCODE)
- return (XDR_PUTLONG(xdrs, (long *) ulp));
- if (xdrs->x_op == XDR_FREE)
- return (TRUE);
- return (FALSE);
-}
-
-/*
- * XDR short integers
- */
-bool_t xdr_short(XDR* xdrs, short* sp)
-{
- long l;
-
- switch (xdrs->x_op) {
-
- case XDR_ENCODE:
- l = (long) *sp;
- return (XDR_PUTLONG(xdrs, &l));
-
- case XDR_DECODE:
- if (!XDR_GETLONG(xdrs, &l)) {
- return (FALSE);
- }
- *sp = (short) l;
- return (TRUE);
-
- case XDR_FREE:
- return (TRUE);
- }
- return (FALSE);
-}
-
-/*
- * XDR unsigned short integers
- */
-bool_t xdr_u_short(XDR* xdrs, unsigned short* usp)
-{
- u_long l;
-
- switch (xdrs->x_op) {
-
- case XDR_ENCODE:
- l = (u_long) * usp;
- return (XDR_PUTLONG(xdrs, &l));
-
- case XDR_DECODE:
- if (!XDR_GETLONG(xdrs, &l)) {
- return (FALSE);
- }
- *usp = (u_short) l;
- return (TRUE);
-
- case XDR_FREE:
- return (TRUE);
- }
- return (FALSE);
-}
-
-
-/*
- * XDR a char
- */
-bool_t xdr_char(XDR* xdrs, char* cp)
-{
- int i;
-
- i = (*cp);
- if (!xdr_int(xdrs, &i)) {
- return (FALSE);
- }
- *cp = i;
- return (TRUE);
-}
-
-/*
- * XDR an unsigned char
- */
-bool_t xdr_u_char(XDR* xdrs, unsigned char* cp)
-{
- u_int u;
-
- u = (*cp);
- if (!xdr_u_int(xdrs, &u)) {
- return (FALSE);
- }
- *cp = u;
- return (TRUE);
-}
-
-/*
- * XDR booleans
- */
-bool_t xdr_bool(xdrs, bp)
-register XDR *xdrs;
-bool_t *bp;
-{
- long lb;
-
- switch (xdrs->x_op) {
-
- case XDR_ENCODE:
- lb = *bp ? XDR_TRUE : XDR_FALSE;
- return (XDR_PUTLONG(xdrs, &lb));
-
- case XDR_DECODE:
- if (!XDR_GETLONG(xdrs, &lb)) {
- return (FALSE);
- }
- *bp = (lb == XDR_FALSE) ? FALSE : TRUE;
- return (TRUE);
-
- case XDR_FREE:
- return (TRUE);
- }
- return (FALSE);
-}
-
-/*
- * XDR enumerations
- */
-bool_t xdr_enum(xdrs, ep)
-XDR *xdrs;
-enum_t *ep;
-{
-#ifndef lint
- enum sizecheck { SIZEVAL }; /* used to find the size of an enum */
-
- /*
- * enums are treated as ints
- */
- if (sizeof(enum sizecheck) == sizeof(long)) {
- return (xdr_long(xdrs, (long *) ep));
- } else if (sizeof(enum sizecheck) == sizeof(short)) {
- return (xdr_short(xdrs, (short *) ep));
- } else {
- return (FALSE);
- }
-#else
- (void) (xdr_short(xdrs, (short *) ep));
- return (xdr_long(xdrs, (long *) ep));
-#endif
-}
-
-/*
- * XDR opaque data
- * Allows the specification of a fixed size sequence of opaque bytes.
- * cp points to the opaque object and cnt gives the byte length.
- */
-bool_t xdr_opaque(xdrs, cp, cnt)
-register XDR *xdrs;
-caddr_t cp;
-register u_int cnt;
-{
- register u_int rndup;
- static char crud[BYTES_PER_XDR_UNIT];
-
- /*
- * if no data we are done
- */
- if (cnt == 0)
- return (TRUE);
-
- /*
- * round byte count to full xdr units
- */
- rndup = cnt % BYTES_PER_XDR_UNIT;
- if (rndup > 0)
- rndup = BYTES_PER_XDR_UNIT - rndup;
-
- if (xdrs->x_op == XDR_DECODE) {
- if (!XDR_GETBYTES(xdrs, cp, cnt)) {
- return (FALSE);
- }
- if (rndup == 0)
- return (TRUE);
- return (XDR_GETBYTES(xdrs, crud, rndup));
- }
-
- if (xdrs->x_op == XDR_ENCODE) {
- if (!XDR_PUTBYTES(xdrs, cp, cnt)) {
- return (FALSE);
- }
- if (rndup == 0)
- return (TRUE);
- return (XDR_PUTBYTES(xdrs, xdr_zero, rndup));
- }
-
- if (xdrs->x_op == XDR_FREE) {
- return (TRUE);
- }
-
- return (FALSE);
-}
-
-/*
- * XDR counted bytes
- * *cpp is a pointer to the bytes, *sizep is the count.
- * If *cpp is NULL maxsize bytes are allocated
- */
-bool_t xdr_bytes(xdrs, cpp, sizep, maxsize)
-register XDR *xdrs;
-char **cpp;
-register u_int *sizep;
-u_int maxsize;
-{
- register char *sp = *cpp; /* sp is the actual string pointer */
- register u_int nodesize;
-
- /*
- * first deal with the length since xdr bytes are counted
- */
- if (!xdr_u_int(xdrs, sizep)) {
- return (FALSE);
- }
- nodesize = *sizep;
- if ((nodesize > maxsize) && (xdrs->x_op != XDR_FREE)) {
- return (FALSE);
- }
-
- /*
- * now deal with the actual bytes
- */
- switch (xdrs->x_op) {
-
- case XDR_DECODE:
- if (nodesize == 0) {
- return (TRUE);
- }
- if (sp == NULL) {
- *cpp = sp = (char *) mem_alloc(nodesize);
- }
- if (sp == NULL) {
- (void) fprintf(stderr, "xdr_bytes: out of memory\n");
- return (FALSE);
- }
- /* fall into ... */
-
- case XDR_ENCODE:
- return (xdr_opaque(xdrs, sp, nodesize));
-
- case XDR_FREE:
- if (sp != NULL) {
- mem_free(sp, nodesize);
- *cpp = NULL;
- }
- return (TRUE);
- }
- return (FALSE);
-}
-
-/*
- * Implemented here due to commonality of the object.
- */
-bool_t xdr_netobj(xdrs, np)
-XDR *xdrs;
-struct netobj *np;
-{
-
- return (xdr_bytes(xdrs, &np->n_bytes, &np->n_len, MAX_NETOBJ_SZ));
-}
-
-/*
- * XDR a descriminated union
- * Support routine for discriminated unions.
- * You create an array of xdrdiscrim structures, terminated with
- * an entry with a null procedure pointer. The routine gets
- * the discriminant value and then searches the array of xdrdiscrims
- * looking for that value. It calls the procedure given in the xdrdiscrim
- * to handle the discriminant. If there is no specific routine a default
- * routine may be called.
- * If there is no specific or default routine an error is returned.
- */
-bool_t xdr_union(XDR* xdrs, enum_t* dscmp, char* unp, const struct xdr_discrim* choices, xdrproc_t dfault)
-{
- register enum_t dscm;
-
- /*
- * we deal with the discriminator; it's an enum
- */
- if (!xdr_enum(xdrs, dscmp)) {
- return (FALSE);
- }
- dscm = *dscmp;
-
- /*
- * search choices for a value that matches the discriminator.
- * if we find one, execute the xdr routine for that value.
- */
- for (; choices->proc != NULL_xdrproc_t; choices++) {
- if (choices->value == dscm)
- return ((*(choices->proc)) (xdrs, unp, LASTUNSIGNED));
- }
-
- /*
- * no match - execute the default xdr routine if there is one
- */
- return ((dfault == NULL_xdrproc_t) ? FALSE :
- (*dfault) (xdrs, unp, LASTUNSIGNED));
-}
-
-
-/*
- * Non-portable xdr primitives.
- * Care should be taken when moving these routines to new architectures.
- */
-
-
-/*
- * XDR null terminated ASCII strings
- * xdr_string deals with "C strings" - arrays of bytes that are
- * terminated by a NULL character. The parameter cpp references a
- * pointer to storage; If the pointer is null, then the necessary
- * storage is allocated. The last parameter is the max allowed length
- * of the string as specified by a protocol.
- */
-bool_t xdr_string(xdrs, cpp, maxsize)
-register XDR *xdrs;
-char **cpp;
-u_int maxsize;
-{
- register char *sp = *cpp; /* sp is the actual string pointer */
- u_int size;
- u_int nodesize;
-
- /*
- * first deal with the length since xdr strings are counted-strings
- */
- switch (xdrs->x_op) {
- case XDR_FREE:
- if (sp == NULL) {
- return (TRUE); /* already free */
- }
- /* fall through... */
- case XDR_ENCODE:
- size = strlen(sp);
- break;
- }
- if (!xdr_u_int(xdrs, &size)) {
- return (FALSE);
- }
- if (size > maxsize) {
- return (FALSE);
- }
- nodesize = size + 1;
-
- /*
- * now deal with the actual bytes
- */
- switch (xdrs->x_op) {
-
- case XDR_DECODE:
- if (nodesize == 0) {
- return (TRUE);
- }
- if (sp == NULL)
- *cpp = sp = (char *) mem_alloc(nodesize);
- if (sp == NULL) {
- (void) fprintf(stderr, "xdr_string: out of memory\n");
- return (FALSE);
- }
- sp[size] = 0;
- /* fall into ... */
-
- case XDR_ENCODE:
- return (xdr_opaque(xdrs, sp, size));
-
- case XDR_FREE:
- mem_free(sp, nodesize);
- *cpp = NULL;
- return (TRUE);
- }
- return (FALSE);
-}
-
-/*
- * Wrapper for xdr_string that can be called directly from
- * routines like clnt_call
- */
-bool_t xdr_wrapstring(xdrs, cpp)
-XDR *xdrs;
-char **cpp;
-{
- if (xdr_string(xdrs, cpp, LASTUNSIGNED)) {
- return (TRUE);
- }
- return (FALSE);
-}
diff --git a/mdk-stage1/dietlibc/librpc/xdr_array.c b/mdk-stage1/dietlibc/librpc/xdr_array.c
deleted file mode 100644
index f8ae12b19..000000000
--- a/mdk-stage1/dietlibc/librpc/xdr_array.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/* @(#)xdr_array.c 2.1 88/07/29 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] =
-
- "@(#)xdr_array.c 1.10 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * xdr_array.c, Generic XDR routines impelmentation.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * These are the "non-trivial" xdr primitives used to serialize and de-serialize
- * arrays. See xdr.h for more info on the interface to xdr.
- */
-
-#include <stdio.h>
-
-#include <rpc/types.h>
-#include <rpc/xdr.h>
-#include <string.h>
-
-#define LASTUNSIGNED ((u_int)0-1)
-
-
-/*
- * XDR an array of arbitrary elements
- * *addrp is a pointer to the array, *sizep is the number of elements.
- * If addrp is NULL (*sizep * elsize) bytes are allocated.
- * elsize is the size (in bytes) of each element, and elproc is the
- * xdr procedure to call to handle each element of the array.
- */
-bool_t xdr_array(xdrs, addrp, sizep, maxsize, elsize, elproc)
-register XDR *xdrs;
-caddr_t *addrp; /* array pointer */
-u_int *sizep; /* number of elements */
-u_int maxsize; /* max numberof elements */
-u_int elsize; /* size in bytes of each element */
-xdrproc_t elproc; /* xdr routine to handle each element */
-{
- register u_int i;
- register caddr_t target = *addrp;
- register u_int c; /* the actual element count */
- register bool_t stat = TRUE;
- register u_int nodesize;
-
- /* like strings, arrays are really counted arrays */
- if (!xdr_u_int(xdrs, sizep)) {
- return (FALSE);
- }
- c = *sizep;
- if ((c > maxsize) && (xdrs->x_op != XDR_FREE)) {
- return (FALSE);
- }
- nodesize = c * elsize;
-
- /*
- * if we are deserializing, we may need to allocate an array.
- * We also save time by checking for a null array if we are freeing.
- */
- if (target == NULL)
- switch (xdrs->x_op) {
- case XDR_DECODE:
- if (c == 0)
- return (TRUE);
- *addrp = target = mem_alloc(nodesize);
- if (target == NULL) {
- (void) fprintf(stderr, "xdr_array: out of memory\n");
- return (FALSE);
- }
- bzero(target, nodesize);
- break;
-
- case XDR_FREE:
- return (TRUE);
- }
-
- /*
- * now we xdr each element of array
- */
- for (i = 0; (i < c) && stat; i++) {
- stat = (*elproc) (xdrs, target, LASTUNSIGNED);
- target += elsize;
- }
-
- /*
- * the array may need freeing
- */
- if (xdrs->x_op == XDR_FREE) {
- mem_free(*addrp, nodesize);
- *addrp = NULL;
- }
- return (stat);
-}
-
-/*
- * xdr_vector():
- *
- * XDR a fixed length array. Unlike variable-length arrays,
- * the storage of fixed length arrays is static and unfreeable.
- * > basep: base of the array
- * > size: size of the array
- * > elemsize: size of each element
- * > xdr_elem: routine to XDR each element
- */
-bool_t xdr_vector(xdrs, basep, nelem, elemsize, xdr_elem)
-register XDR *xdrs;
-register char *basep;
-register u_int nelem;
-register u_int elemsize;
-register xdrproc_t xdr_elem;
-{
- register u_int i;
- register char *elptr;
-
- elptr = basep;
- for (i = 0; i < nelem; i++) {
- if (!(*xdr_elem) (xdrs, elptr, LASTUNSIGNED)) {
- return (FALSE);
- }
- elptr += elemsize;
- }
- return (TRUE);
-}
diff --git a/mdk-stage1/dietlibc/librpc/xdr_float.c b/mdk-stage1/dietlibc/librpc/xdr_float.c
deleted file mode 100644
index f8eb5e99c..000000000
--- a/mdk-stage1/dietlibc/librpc/xdr_float.c
+++ /dev/null
@@ -1,284 +0,0 @@
-/* @(#)xdr_float.c 2.1 88/07/29 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] =
-
- "@(#)xdr_float.c 1.12 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * xdr_float.c, Generic XDR routines impelmentation.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * These are the "floating point" xdr routines used to (de)serialize
- * most common data items. See xdr.h for more info on the interface to
- * xdr.
- */
-
-#include <stdio.h>
-
-#include <rpc/types.h>
-#include <rpc/xdr.h>
-
-/*
- * NB: Not portable.
- * This routine works on Suns (Sky / 68000's) and Vaxen.
- */
-
-#ifdef __linux__
-/* cheat big time */
-#define sparc
-#endif
-
-#ifdef vax
-
-/* What IEEE single precision floating point looks like on a Vax */
-struct ieee_single {
- unsigned int mantissa:23;
- unsigned int exp:8;
- unsigned int sign:1;
-};
-
-/* Vax single precision floating point */
-struct vax_single {
- unsigned int mantissa1:7;
- unsigned int exp:8;
- unsigned int sign:1;
- unsigned int mantissa2:16;
-};
-
-#define VAX_SNG_BIAS 0x81
-#define IEEE_SNG_BIAS 0x7f
-
-static struct sgl_limits {
- struct vax_single s;
- struct ieee_single ieee;
-} sgl_limits[2] = {
- { {
- 0x7f, 0xff, 0x0, 0xffff}, /* Max Vax */
- {
- 0x0, 0xff, 0x0}}, /* Max IEEE */
- { {
- 0x0, 0x0, 0x0, 0x0}, /* Min Vax */
- {
- 0x0, 0x0, 0x0}} /* Min IEEE */
-};
-#endif /* vax */
-
-bool_t xdr_float(xdrs, fp)
-register XDR *xdrs;
-register float *fp;
-{
-#if !defined(mc68000) && !defined(sparc)
- struct ieee_single is;
- struct vax_single vs, *vsp;
- struct sgl_limits *lim;
- int i;
-#endif
- switch (xdrs->x_op) {
-
- case XDR_ENCODE:
-#if defined(mc68000) || defined(sparc)
- return (XDR_PUTLONG(xdrs, (long *) fp));
-#else
- vs = *((struct vax_single *) fp);
- for (i = 0, lim = sgl_limits;
-
- i < sizeof(sgl_limits) / sizeof(struct sgl_limits);
- i++, lim++) {
- if ((vs.mantissa2 == lim->s.mantissa2) &&
- (vs.exp == lim->s.exp) &&
- (vs.mantissa1 == lim->s.mantissa1)) {
- is = lim->ieee;
- goto shipit;
- }
- }
- is.exp = vs.exp - VAX_SNG_BIAS + IEEE_SNG_BIAS;
- is.mantissa = (vs.mantissa1 << 16) | vs.mantissa2;
- shipit:
- is.sign = vs.sign;
- return (XDR_PUTLONG(xdrs, (long *) &is));
-#endif
-
- case XDR_DECODE:
-#if defined(mc68000) || defined(sparc)
- return (XDR_GETLONG(xdrs, (long *) fp));
-#else
- vsp = (struct vax_single *) fp;
- if (!XDR_GETLONG(xdrs, (long *) &is))
- return (FALSE);
- for (i = 0, lim = sgl_limits;
-
- i < sizeof(sgl_limits) / sizeof(struct sgl_limits);
- i++, lim++) {
- if ((is.exp == lim->ieee.exp) &&
- (is.mantissa == lim->ieee.mantissa)) {
- *vsp = lim->s;
- goto doneit;
- }
- }
- vsp->exp = is.exp - IEEE_SNG_BIAS + VAX_SNG_BIAS;
- vsp->mantissa2 = is.mantissa;
- vsp->mantissa1 = (is.mantissa >> 16);
- doneit:
- vsp->sign = is.sign;
- return (TRUE);
-#endif
-
- case XDR_FREE:
- return (TRUE);
- }
- return (FALSE);
-}
-
-/*
- * This routine works on Suns (Sky / 68000's) and Vaxen.
- */
-
-#ifdef vax
-/* What IEEE double precision floating point looks like on a Vax */
-struct ieee_double {
- unsigned int mantissa1:20;
- unsigned int exp:11;
- unsigned int sign:1;
- unsigned int mantissa2:32;
-};
-
-/* Vax double precision floating point */
-struct vax_double {
- unsigned int mantissa1:7;
- unsigned int exp:8;
- unsigned int sign:1;
- unsigned int mantissa2:16;
- unsigned int mantissa3:16;
- unsigned int mantissa4:16;
-};
-
-#define VAX_DBL_BIAS 0x81
-#define IEEE_DBL_BIAS 0x3ff
-#define MASK(nbits) ((1 << nbits) - 1)
-
-static struct dbl_limits {
- struct vax_double d;
- struct ieee_double ieee;
-} dbl_limits[2] = {
- { {
- 0x7f, 0xff, 0x0, 0xffff, 0xffff, 0xffff}, /* Max Vax */
- {
- 0x0, 0x7ff, 0x0, 0x0}}, /* Max IEEE */
- { {
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, /* Min Vax */
- {
- 0x0, 0x0, 0x0, 0x0}} /* Min IEEE */
-};
-
-#endif /* vax */
-
-
-bool_t xdr_double(xdrs, dp)
-register XDR *xdrs;
-double *dp;
-{
- register long *lp;
-
-#if !defined(mc68000) && !defined(sparc)
- struct ieee_double id;
- struct vax_double vd;
- register struct dbl_limits *lim;
- int i;
-#endif
-
- switch (xdrs->x_op) {
-
- case XDR_ENCODE:
-#if defined(mc68000) || defined(sparc)
- lp = (long *) dp;
-#else
- vd = *((struct vax_double *) dp);
- for (i = 0, lim = dbl_limits;
-
- i < sizeof(dbl_limits) / sizeof(struct dbl_limits);
- i++, lim++) {
- if ((vd.mantissa4 == lim->d.mantissa4) &&
- (vd.mantissa3 == lim->d.mantissa3) &&
- (vd.mantissa2 == lim->d.mantissa2) &&
- (vd.mantissa1 == lim->d.mantissa1) &&
- (vd.exp == lim->d.exp)) {
- id = lim->ieee;
- goto shipit;
- }
- }
- id.exp = vd.exp - VAX_DBL_BIAS + IEEE_DBL_BIAS;
- id.mantissa1 = (vd.mantissa1 << 13) | (vd.mantissa2 >> 3);
- id.mantissa2 = ((vd.mantissa2 & MASK(3)) << 29) |
- (vd.mantissa3 << 13) | ((vd.mantissa4 >> 3) & MASK(13));
- shipit:
- id.sign = vd.sign;
- lp = (long *) &id;
-#endif
- return (XDR_PUTLONG(xdrs, lp++) && XDR_PUTLONG(xdrs, lp));
-
- case XDR_DECODE:
-#if defined(mc68000) || defined(sparc)
- lp = (long *) dp;
- return (XDR_GETLONG(xdrs, lp++) && XDR_GETLONG(xdrs, lp));
-#else
- lp = (long *) &id;
- if (!XDR_GETLONG(xdrs, lp++) || !XDR_GETLONG(xdrs, lp))
- return (FALSE);
- for (i = 0, lim = dbl_limits;
-
- i < sizeof(dbl_limits) / sizeof(struct dbl_limits);
- i++, lim++) {
- if ((id.mantissa2 == lim->ieee.mantissa2) &&
- (id.mantissa1 == lim->ieee.mantissa1) &&
- (id.exp == lim->ieee.exp)) {
- vd = lim->d;
- goto doneit;
- }
- }
- vd.exp = id.exp - IEEE_DBL_BIAS + VAX_DBL_BIAS;
- vd.mantissa1 = (id.mantissa1 >> 13);
- vd.mantissa2 = ((id.mantissa1 & MASK(13)) << 3) |
- (id.mantissa2 >> 29);
- vd.mantissa3 = (id.mantissa2 >> 13);
- vd.mantissa4 = (id.mantissa2 << 3);
- doneit:
- vd.sign = id.sign;
- *dp = *((double *) &vd);
- return (TRUE);
-#endif
-
- case XDR_FREE:
- return (TRUE);
- }
- return (FALSE);
-}
diff --git a/mdk-stage1/dietlibc/librpc/xdr_mem.c b/mdk-stage1/dietlibc/librpc/xdr_mem.c
deleted file mode 100644
index 755f6abf1..000000000
--- a/mdk-stage1/dietlibc/librpc/xdr_mem.c
+++ /dev/null
@@ -1,180 +0,0 @@
-/* @(#)xdr_mem.c 2.1 88/07/29 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)xdr_mem.c 1.19 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * xdr_mem.h, XDR implementation using memory buffers.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * If you have some data to be interpreted as external data representation
- * or to be converted to external data representation in a memory buffer,
- * then this is the package for you.
- *
- */
-
-
-#include <rpc/types.h>
-#include <rpc/xdr.h>
-#include <netinet/in.h>
-#include <string.h>
-
-static bool_t xdrmem_getlong();
-static bool_t xdrmem_putlong();
-static bool_t xdrmem_getbytes();
-static bool_t xdrmem_putbytes();
-static u_int xdrmem_getpos();
-static bool_t xdrmem_setpos();
-static int32_t *xdrmem_inline();
-static void xdrmem_destroy();
-
-static struct xdr_ops xdrmem_ops = {
- xdrmem_getlong,
- xdrmem_putlong,
- xdrmem_getbytes,
- xdrmem_putbytes,
- xdrmem_getpos,
- xdrmem_setpos,
- xdrmem_inline,
- xdrmem_destroy
-};
-
-/*
- * The procedure xdrmem_create initializes a stream descriptor for a
- * memory buffer.
- */
-void xdrmem_create(xdrs, addr, size, op)
-register XDR *xdrs;
-caddr_t addr;
-u_int size;
-enum xdr_op op;
-{
-
- xdrs->x_op = op;
- xdrs->x_ops = &xdrmem_ops;
- xdrs->x_private = xdrs->x_base = addr;
- xdrs->x_handy = size;
-}
-
-static void xdrmem_destroy( /*xdrs */ )
- /*XDR *xdrs; */
-{
-}
-
-static bool_t xdrmem_getlong(xdrs, lp)
-register XDR *xdrs;
-long *lp;
-{
-
- if ((xdrs->x_handy -= sizeof(long)) < 0)
- return (FALSE);
-
- *lp = (long) ntohl((u_long) (*((long *) (xdrs->x_private))));
- xdrs->x_private += sizeof(long);
-
- return (TRUE);
-}
-
-static bool_t xdrmem_putlong(xdrs, lp)
-register XDR *xdrs;
-long *lp;
-{
-
- if ((xdrs->x_handy -= sizeof(long)) < 0)
- return (FALSE);
-
- *(long *) xdrs->x_private = (long) htonl((u_long) (*lp));
- xdrs->x_private += sizeof(long);
-
- return (TRUE);
-}
-
-static bool_t xdrmem_getbytes(xdrs, addr, len)
-register XDR *xdrs;
-caddr_t addr;
-register u_int len;
-{
-
- if ((xdrs->x_handy -= len) < 0)
- return (FALSE);
- bcopy(xdrs->x_private, addr, len);
- xdrs->x_private += len;
- return (TRUE);
-}
-
-static bool_t xdrmem_putbytes(xdrs, addr, len)
-register XDR *xdrs;
-caddr_t addr;
-register u_int len;
-{
-
- if ((xdrs->x_handy -= len) < 0)
- return (FALSE);
- bcopy(addr, xdrs->x_private, len);
- xdrs->x_private += len;
- return (TRUE);
-}
-
-static u_int xdrmem_getpos(xdrs)
-register XDR *xdrs;
-{
-
- return ((u_int) xdrs->x_private - (u_int) xdrs->x_base);
-}
-
-static bool_t xdrmem_setpos(xdrs, pos)
-register XDR *xdrs;
-u_int pos;
-{
- register caddr_t newaddr = xdrs->x_base + pos;
- register caddr_t lastaddr = xdrs->x_private + xdrs->x_handy;
-
- if ((long) newaddr > (long) lastaddr)
- return (FALSE);
- xdrs->x_private = newaddr;
- xdrs->x_handy = (int) lastaddr - (int) newaddr;
- return (TRUE);
-}
-
-static int32_t *xdrmem_inline(xdrs, len)
-register XDR *xdrs;
-int len;
-{
- int32_t *buf = 0;
-
- if (xdrs->x_handy >= len) {
- xdrs->x_handy -= len;
- buf = (int32_t *) xdrs->x_private;
- xdrs->x_private += len;
- }
- return (buf);
-}
diff --git a/mdk-stage1/dietlibc/librpc/xdr_rec.c b/mdk-stage1/dietlibc/librpc/xdr_rec.c
deleted file mode 100644
index 83e800f5e..000000000
--- a/mdk-stage1/dietlibc/librpc/xdr_rec.c
+++ /dev/null
@@ -1,573 +0,0 @@
-/* @(#)xdr_rec.c 2.2 88/08/01 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)xdr_rec.c 1.21 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * xdr_rec.c, Implements TCP/IP based XDR streams with a "record marking"
- * layer above tcp (for rpc's use).
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * These routines interface XDRSTREAMS to a tcp/ip connection.
- * There is a record marking layer between the xdr stream
- * and the tcp transport level. A record is composed on one or more
- * record fragments. A record fragment is a thirty-two bit header followed
- * by n bytes of data, where n is contained in the header. The header
- * is represented as a htonl(u_long). Thegh order bit encodes
- * whether or not the fragment is the last fragment of the record
- * (1 => fragment is last, 0 => more fragments to follow.
- * The other 31 bits encode the byte length of the fragment.
- */
-
-#include <stdio.h>
-#include <rpc/types.h>
-#include <rpc/xdr.h>
-#include <netinet/in.h>
-#include <string.h>
-
-extern long lseek();
-
-static u_int fix_buf_size();
-
-static bool_t xdrrec_getlong();
-static bool_t xdrrec_putlong();
-static bool_t xdrrec_getbytes();
-static bool_t xdrrec_putbytes();
-static u_int xdrrec_getpos();
-static bool_t xdrrec_setpos();
-static int32_t *xdrrec_inline();
-static void xdrrec_destroy();
-
-static struct xdr_ops xdrrec_ops = {
- xdrrec_getlong,
- xdrrec_putlong,
- xdrrec_getbytes,
- xdrrec_putbytes,
- xdrrec_getpos,
- xdrrec_setpos,
- xdrrec_inline,
- xdrrec_destroy
-};
-
-/*
- * A record is composed of one or more record fragments.
- * A record fragment is a two-byte header followed by zero to
- * 2**32-1 bytes. The header is treated as a long unsigned and is
- * encode/decoded to the network via htonl/ntohl. The low order 31 bits
- * are a byte count of the fragment. The highest order bit is a boolean:
- * 1 => this fragment is the last fragment of the record,
- * 0 => this fragment is followed by more fragment(s).
- *
- * The fragment/record machinery is not general; it is constructed to
- * meet the needs of xdr and rpc based on tcp.
- */
-
-#define LAST_FRAG ((u_long)(1 << 31))
-
-typedef struct rec_strm {
- caddr_t tcp_handle;
- caddr_t the_buffer;
- /*
- * out-goung bits
- */
- int (*writeit) ();
- caddr_t out_base; /* output buffer (points to frag header) */
- caddr_t out_finger; /* next output position */
- caddr_t out_boundry; /* data cannot up to this address */
- u_long *frag_header; /* beginning of curren fragment */
- bool_t frag_sent; /* true if buffer sent in middle of record */
- /*
- * in-coming bits
- */
- int (*readit) ();
- u_long in_size; /* fixed size of the input buffer */
- caddr_t in_base;
- caddr_t in_finger; /* location of next byte to be had */
- caddr_t in_boundry; /* can read up to this location */
- long fbtbc; /* fragment bytes to be consumed */
- bool_t last_frag;
- u_int sendsize;
- u_int recvsize;
-} RECSTREAM;
-
-
-/*
- * Create an xdr handle for xdrrec
- * xdrrec_create fills in xdrs. Sendsize and recvsize are
- * send and recv buffer sizes (0 => use default).
- * tcp_handle is an opaque handle that is passed as the first parameter to
- * the procedures readit and writeit. Readit and writeit are read and
- * write respectively. They are like the system
- * calls expect that they take an opaque handle rather than an fd.
- */
-void xdrrec_create(xdrs, sendsize, recvsize, tcp_handle, readit, writeit)
-register XDR *xdrs;
-register u_int sendsize;
-register u_int recvsize;
-caddr_t tcp_handle;
-int (*readit) (); /* like read, but pass it a tcp_handle, not sock */
-int (*writeit) (); /* like write, but pass it a tcp_handle, not sock */
-{
- register RECSTREAM *rstrm = (RECSTREAM *) mem_alloc(sizeof(RECSTREAM));
-
- if (rstrm == NULL) {
- (void) fprintf(stderr, "xdrrec_create: out of memory\n");
- /*
- * This is bad. Should rework xdrrec_create to
- * return a handle, and in this case return NULL
- */
- return;
- }
- /*
- * adjust sizes and allocate buffer quad byte aligned
- */
- rstrm->sendsize = sendsize = fix_buf_size(sendsize);
- rstrm->recvsize = recvsize = fix_buf_size(recvsize);
- rstrm->the_buffer =
- mem_alloc(sendsize + recvsize + BYTES_PER_XDR_UNIT);
- if (rstrm->the_buffer == NULL) {
- (void) fprintf(stderr, "xdrrec_create: out of memory\n");
- return;
- }
- for (rstrm->out_base = rstrm->the_buffer;
- (u_int) rstrm->out_base % BYTES_PER_XDR_UNIT != 0;
- rstrm->out_base++);
- rstrm->in_base = rstrm->out_base + sendsize;
- /*
- * now the rest ...
- */
- xdrs->x_ops = &xdrrec_ops;
- xdrs->x_private = (caddr_t) rstrm;
- rstrm->tcp_handle = tcp_handle;
- rstrm->readit = readit;
- rstrm->writeit = writeit;
- rstrm->out_finger = rstrm->out_boundry = rstrm->out_base;
- rstrm->frag_header = (u_long *) rstrm->out_base;
- rstrm->out_finger += sizeof(u_long);
- rstrm->out_boundry += sendsize;
- rstrm->frag_sent = FALSE;
- rstrm->in_size = recvsize;
- rstrm->in_boundry = rstrm->in_base;
- rstrm->in_finger = (rstrm->in_boundry += recvsize);
- rstrm->fbtbc = 0;
- rstrm->last_frag = TRUE;
-}
-
-
-/*
- * The reoutines defined below are the xdr ops which will go into the
- * xdr handle filled in by xdrrec_create.
- */
-
-static bool_t xdrrec_getlong(xdrs, lp)
-XDR *xdrs;
-long *lp;
-{
- register RECSTREAM *rstrm = (RECSTREAM *) (xdrs->x_private);
- register long *buflp = (long *) (rstrm->in_finger);
- long mylong;
-
- /* first try the inline, fast case */
- if ((rstrm->fbtbc >= sizeof(long)) &&
- (((int) rstrm->in_boundry - (int) buflp) >= sizeof(long))) {
- *lp = (long) ntohl((u_long) (*buflp));
- rstrm->fbtbc -= sizeof(long);
- rstrm->in_finger += sizeof(long);
- } else {
- if (!xdrrec_getbytes(xdrs, (caddr_t) & mylong, sizeof(long)))
- return (FALSE);
-
- *lp = (long) ntohl((u_long) mylong);
- }
- return (TRUE);
-}
-
-/*
- * Internal useful routines
- */
-static bool_t flush_out(RECSTREAM* rstrm, bool_t eor)
-{
- register u_long eormask = (eor == TRUE) ? LAST_FRAG : 0;
- register u_long len = (u_long) (rstrm->out_finger) -
- (u_long) (rstrm->frag_header) - sizeof(u_long);
-
- *(rstrm->frag_header) = htonl(len | eormask);
- len = (u_long) (rstrm->out_finger) - (u_long) (rstrm->out_base);
- if ((*(rstrm->writeit)) (rstrm->tcp_handle, rstrm->out_base, (int) len)
- != (int) len)
- return (FALSE);
- rstrm->frag_header = (u_long *) rstrm->out_base;
- rstrm->out_finger = (caddr_t) rstrm->out_base + sizeof(u_long);
- return (TRUE);
-}
-
-static bool_t
-/* knows nothing about records! Only about input buffers */
-fill_input_buf(rstrm)
-register RECSTREAM *rstrm;
-{
- register caddr_t where;
- u_int i;
- register int len;
-
- where = rstrm->in_base;
- i = (u_int) rstrm->in_boundry % BYTES_PER_XDR_UNIT;
- where += i;
- len = rstrm->in_size - i;
- if ((len = (*(rstrm->readit)) (rstrm->tcp_handle, where, len)) == -1)
- return (FALSE);
- rstrm->in_finger = where;
- where += len;
- rstrm->in_boundry = where;
- return (TRUE);
-}
-
-static bool_t
-/* knows nothing about records! Only about input buffers */
-get_input_bytes(rstrm, addr, len)
-register RECSTREAM *rstrm;
-register caddr_t addr;
-register int len;
-{
- register int current;
-
- while (len > 0) {
- current = (int) rstrm->in_boundry - (int) rstrm->in_finger;
- if (current == 0) {
- if (!fill_input_buf(rstrm))
- return (FALSE);
- continue;
- }
- current = (len < current) ? len : current;
- bcopy(rstrm->in_finger, addr, current);
- rstrm->in_finger += current;
- addr += current;
- len -= current;
- }
- return (TRUE);
-}
-
-static bool_t
-/* next two bytes of the input stream are treated as a header */
-set_input_fragment(rstrm)
-register RECSTREAM *rstrm;
-{
- u_long header;
-
- if (!get_input_bytes(rstrm, (caddr_t) & header, sizeof(header)))
- return (FALSE);
- header = (long) ntohl(header);
- rstrm->last_frag = ((header & LAST_FRAG) == 0) ? FALSE : TRUE;
- rstrm->fbtbc = header & (~LAST_FRAG);
- return (TRUE);
-}
-
-static bool_t
-/* consumes input bytes; knows nothing about records! */
-skip_input_bytes(rstrm, cnt)
-register RECSTREAM *rstrm;
-long cnt;
-{
- register int current;
-
- while (cnt > 0) {
- current = (int) rstrm->in_boundry - (int) rstrm->in_finger;
- if (current == 0) {
- if (!fill_input_buf(rstrm))
- return (FALSE);
- continue;
- }
- current = (cnt < current) ? cnt : current;
- rstrm->in_finger += current;
- cnt -= current;
- }
- return (TRUE);
-}
-
-static u_int fix_buf_size(s)
-register u_int s;
-{
-
- if (s < 100)
- s = 4000;
- return (RNDUP(s));
-}
-static bool_t xdrrec_putlong(xdrs, lp)
-XDR *xdrs;
-long *lp;
-{
- register RECSTREAM *rstrm = (RECSTREAM *) (xdrs->x_private);
- register long *dest_lp = ((long *) (rstrm->out_finger));
-
- if ((rstrm->out_finger += sizeof(long)) > rstrm->out_boundry) {
- /*
- * this case should almost never happen so the code is
- * inefficient
- */
- rstrm->out_finger -= sizeof(long);
-
- rstrm->frag_sent = TRUE;
- if (!flush_out(rstrm, FALSE))
- return (FALSE);
- dest_lp = ((long *) (rstrm->out_finger));
- rstrm->out_finger += sizeof(long);
- }
- *dest_lp = (long) htonl((u_long) (*lp));
- return (TRUE);
-}
-
-static bool_t
-/* must manage buffers, fragments, and records */
-xdrrec_getbytes(xdrs, addr, len)
-XDR *xdrs;
-register caddr_t addr;
-register u_int len;
-{
- register RECSTREAM *rstrm = (RECSTREAM *) (xdrs->x_private);
- register int current;
-
- while (len > 0) {
- current = rstrm->fbtbc;
- if (current == 0) {
- if (rstrm->last_frag)
- return (FALSE);
- if (!set_input_fragment(rstrm))
- return (FALSE);
- continue;
- }
- current = (len < current) ? len : current;
- if (!get_input_bytes(rstrm, addr, current))
- return (FALSE);
- addr += current;
- rstrm->fbtbc -= current;
- len -= current;
- }
- return (TRUE);
-}
-
-static bool_t xdrrec_putbytes(xdrs, addr, len)
-XDR *xdrs;
-register caddr_t addr;
-register u_int len;
-{
- register RECSTREAM *rstrm = (RECSTREAM *) (xdrs->x_private);
- register int current;
-
- while (len > 0) {
- current = (u_int) rstrm->out_boundry - (u_int) rstrm->out_finger;
- current = (len < current) ? len : current;
- bcopy(addr, rstrm->out_finger, current);
- rstrm->out_finger += current;
- addr += current;
- len -= current;
- if (rstrm->out_finger == rstrm->out_boundry) {
- rstrm->frag_sent = TRUE;
- if (!flush_out(rstrm, FALSE))
- return (FALSE);
- }
- }
- return (TRUE);
-}
-
-static u_int xdrrec_getpos(xdrs)
-register XDR *xdrs;
-{
- register RECSTREAM *rstrm = (RECSTREAM *) xdrs->x_private;
- register long pos;
-
- pos = lseek((int) rstrm->tcp_handle, (long) 0, 1);
- if (pos != -1)
- switch (xdrs->x_op) {
-
- case XDR_ENCODE:
- pos += rstrm->out_finger - rstrm->out_base;
- break;
-
- case XDR_DECODE:
- pos -= rstrm->in_boundry - rstrm->in_finger;
- break;
-
- default:
- pos = (u_int) - 1;
- break;
- }
- return ((u_int) pos);
-}
-
-static bool_t xdrrec_setpos(xdrs, pos)
-register XDR *xdrs;
-u_int pos;
-{
- register RECSTREAM *rstrm = (RECSTREAM *) xdrs->x_private;
- u_int currpos = xdrrec_getpos(xdrs);
- int delta = currpos - pos;
- caddr_t newpos;
-
- if ((int) currpos != -1)
- switch (xdrs->x_op) {
-
- case XDR_ENCODE:
- newpos = rstrm->out_finger - delta;
- if ((newpos > (caddr_t) (rstrm->frag_header)) &&
- (newpos < rstrm->out_boundry)) {
- rstrm->out_finger = newpos;
- return (TRUE);
- }
- break;
-
- case XDR_DECODE:
- newpos = rstrm->in_finger - delta;
- if ((delta < (int) (rstrm->fbtbc)) &&
- (newpos <= rstrm->in_boundry) &&
- (newpos >= rstrm->in_base)) {
- rstrm->in_finger = newpos;
- rstrm->fbtbc -= delta;
- return (TRUE);
- }
- break;
- }
- return (FALSE);
-}
-
-static int32_t *xdrrec_inline(xdrs, len)
-register XDR *xdrs;
-int len;
-{
- register RECSTREAM *rstrm = (RECSTREAM *) xdrs->x_private;
- int32_t *buf = NULL;
-
- switch (xdrs->x_op) {
-
- case XDR_ENCODE:
- if ((rstrm->out_finger + len) <= rstrm->out_boundry) {
- buf = (int32_t *) rstrm->out_finger;
- rstrm->out_finger += len;
- }
- break;
-
- case XDR_DECODE:
- if ((len <= rstrm->fbtbc) &&
- ((rstrm->in_finger + len) <= rstrm->in_boundry)) {
- buf = (int32_t *) rstrm->in_finger;
- rstrm->fbtbc -= len;
- rstrm->in_finger += len;
- }
- break;
- }
- return (buf);
-}
-
-static void xdrrec_destroy(xdrs)
-register XDR *xdrs;
-{
- register RECSTREAM *rstrm = (RECSTREAM *) xdrs->x_private;
-
- mem_free(rstrm->the_buffer,
- rstrm->sendsize + rstrm->recvsize + BYTES_PER_XDR_UNIT);
- mem_free((caddr_t) rstrm, sizeof(RECSTREAM));
-}
-
-
-/*
- * Exported routines to manage xdr records
- */
-
-/*
- * Before reading (deserializing from the stream, one should always call
- * this procedure to guarantee proper record alignment.
- */
-bool_t xdrrec_skiprecord(xdrs)
-XDR *xdrs;
-{
- register RECSTREAM *rstrm = (RECSTREAM *) (xdrs->x_private);
-
- while (rstrm->fbtbc > 0 || (!rstrm->last_frag)) {
- if (!skip_input_bytes(rstrm, rstrm->fbtbc))
- return (FALSE);
- rstrm->fbtbc = 0;
- if ((!rstrm->last_frag) && (!set_input_fragment(rstrm)))
- return (FALSE);
- }
- rstrm->last_frag = FALSE;
- return (TRUE);
-}
-
-/*
- * Look ahead fuction.
- * Returns TRUE iff there is no more input in the buffer
- * after consuming the rest of the current record.
- */
-bool_t xdrrec_eof(xdrs)
-XDR *xdrs;
-{
- register RECSTREAM *rstrm = (RECSTREAM *) (xdrs->x_private);
-
- while (rstrm->fbtbc > 0 || (!rstrm->last_frag)) {
- if (!skip_input_bytes(rstrm, rstrm->fbtbc))
- return (TRUE);
- rstrm->fbtbc = 0;
- if ((!rstrm->last_frag) && (!set_input_fragment(rstrm)))
- return (TRUE);
- }
- if (rstrm->in_finger == rstrm->in_boundry)
- return (TRUE);
- return (FALSE);
-}
-
-/*
- * The client must tell the package when an end-of-record has occurred.
- * The second paraemters tells whether the record should be flushed to the
- * (output) tcp stream. (This let's the package support batched or
- * pipelined procedure calls.) TRUE => immmediate flush to tcp connection.
- */
-bool_t xdrrec_endofrecord(xdrs, sendnow)
-XDR *xdrs;
-bool_t sendnow;
-{
- register RECSTREAM *rstrm = (RECSTREAM *) (xdrs->x_private);
- register u_long len; /* fragment length */
-
- if (sendnow || rstrm->frag_sent ||
- ((u_long) rstrm->out_finger + sizeof(u_long) >=
- (u_long) rstrm->out_boundry)) {
- rstrm->frag_sent = FALSE;
- return (flush_out(rstrm, TRUE));
- }
- len = (u_long) (rstrm->out_finger) - (u_long) (rstrm->frag_header) -
- sizeof(u_long);
- *(rstrm->frag_header) = htonl((u_long) len | LAST_FRAG);
- rstrm->frag_header = (u_long *) rstrm->out_finger;
- rstrm->out_finger += sizeof(u_long);
- return (TRUE);
-}
-
-
diff --git a/mdk-stage1/dietlibc/librpc/xdr_reference.c b/mdk-stage1/dietlibc/librpc/xdr_reference.c
deleted file mode 100644
index 7715d821c..000000000
--- a/mdk-stage1/dietlibc/librpc/xdr_reference.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/* @(#)xdr_reference.c 2.1 88/07/29 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)xdr_reference.c 1.11 87/08/11 SMI";
-#endif
-
-/*
- * xdr_reference.c, Generic XDR routines impelmentation.
- *
- * Copyright (C) 1987, Sun Microsystems, Inc.
- *
- * These are the "non-trivial" xdr primitives used to serialize and de-serialize
- * "pointers". See xdr.h for more info on the interface to xdr.
- */
-
-#include <stdio.h>
-#include <rpc/types.h>
-#include <rpc/xdr.h>
-#include <string.h>
-
-#define LASTUNSIGNED ((u_int)0-1)
-
-/*
- * XDR an indirect pointer
- * xdr_reference is for recursively translating a structure that is
- * referenced by a pointer inside the structure that is currently being
- * translated. pp references a pointer to storage. If *pp is null
- * the necessary storage is allocated.
- * size is the sizeof the referneced structure.
- * proc is the routine to handle the referenced structure.
- */
-bool_t xdr_reference(xdrs, pp, size, proc)
-register XDR *xdrs;
-caddr_t *pp; /* the pointer to work on */
-u_int size; /* size of the object pointed to */
-xdrproc_t proc; /* xdr routine to handle the object */
-{
- register caddr_t loc = *pp;
- register bool_t stat;
-
- if (loc == NULL)
- switch (xdrs->x_op) {
- case XDR_FREE:
- return (TRUE);
-
- case XDR_DECODE:
- *pp = loc = (caddr_t) mem_alloc(size);
- if (loc == NULL) {
- (void) fprintf(stderr, "xdr_reference: out of memory\n");
- return (FALSE);
- }
- bzero(loc, (int) size);
- break;
- }
-
- stat = (*proc) (xdrs, loc, LASTUNSIGNED);
-
- if (xdrs->x_op == XDR_FREE) {
- mem_free(loc, size);
- *pp = NULL;
- }
- return (stat);
-}
-
-
-/*
- * xdr_pointer():
- *
- * XDR a pointer to a possibly recursive data structure. This
- * differs with xdr_reference in that it can serialize/deserialiaze
- * trees correctly.
- *
- * What's sent is actually a union:
- *
- * union object_pointer switch (boolean b) {
- * case TRUE: object_data data;
- * case FALSE: void nothing;
- * }
- *
- * > objpp: Pointer to the pointer to the object.
- * > obj_size: size of the object.
- * > xdr_obj: routine to XDR an object.
- *
- */
-bool_t xdr_pointer(xdrs, objpp, obj_size, xdr_obj)
-register XDR *xdrs;
-char **objpp;
-u_int obj_size;
-xdrproc_t xdr_obj;
-{
-
- bool_t more_data;
-
- more_data = (*objpp != NULL);
- if (!xdr_bool(xdrs, &more_data)) {
- return (FALSE);
- }
- if (!more_data) {
- *objpp = NULL;
- return (TRUE);
- }
- return (xdr_reference(xdrs, objpp, obj_size, xdr_obj));
-}
diff --git a/mdk-stage1/dietlibc/librpc/xdr_stdio.c b/mdk-stage1/dietlibc/librpc/xdr_stdio.c
deleted file mode 100644
index e3190e0a9..000000000
--- a/mdk-stage1/dietlibc/librpc/xdr_stdio.c
+++ /dev/null
@@ -1,187 +0,0 @@
-/* @(#)xdr_stdio.c 2.1 88/07/29 4.0 RPCSRC */
-/*
- * 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.
- *
- * 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
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] =
-
- "@(#)xdr_stdio.c 1.16 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * xdr_stdio.c, XDR implementation on standard i/o file.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * This set of routines implements a XDR on a stdio stream.
- * XDR_ENCODE serializes onto the stream, XDR_DECODE de-serializes
- * from the stream.
- */
-
-#include <rpc/types.h>
-#include <stdio.h>
-#include <rpc/xdr.h>
-
-static bool_t xdrstdio_getlong();
-static bool_t xdrstdio_putlong();
-static bool_t xdrstdio_getbytes();
-static bool_t xdrstdio_putbytes();
-static u_int xdrstdio_getpos();
-static bool_t xdrstdio_setpos();
-static int32_t *xdrstdio_inline();
-static void xdrstdio_destroy();
-
-/*
- * Ops vector for stdio type XDR
- */
-static struct xdr_ops xdrstdio_ops = {
- xdrstdio_getlong, /* deseraialize a long int */
- xdrstdio_putlong, /* seraialize a long int */
- xdrstdio_getbytes, /* deserialize counted bytes */
- xdrstdio_putbytes, /* serialize counted bytes */
- xdrstdio_getpos, /* get offset in the stream */
- xdrstdio_setpos, /* set offset in the stream */
- xdrstdio_inline, /* prime stream for inline macros */
- xdrstdio_destroy /* destroy stream */
-};
-
-/*
- * Initialize a stdio xdr stream.
- * Sets the xdr stream handle xdrs for use on the stream file.
- * Operation flag is set to op.
- */
-void xdrstdio_create(xdrs, file, op)
-register XDR *xdrs;
-FILE *file;
-enum xdr_op op;
-{
-
- xdrs->x_op = op;
- xdrs->x_ops = &xdrstdio_ops;
- xdrs->x_private = (caddr_t) file;
- xdrs->x_handy = 0;
- xdrs->x_base = 0;
-}
-
-/*
- * Destroy a stdio xdr stream.
- * Cleans up the xdr stream handle xdrs previously set up by xdrstdio_create.
- */
-static void xdrstdio_destroy(xdrs)
-register XDR *xdrs;
-{
- (void) fflush((FILE *) xdrs->x_private);
- /* xx should we close the file ?? */
-};
-
-static bool_t xdrstdio_getlong(xdrs, lp)
-XDR *xdrs;
-register long *lp;
-{
-
- if (fread((caddr_t) lp, sizeof(long), 1, (FILE *) xdrs->x_private) !=
- 1) return (FALSE);
-
-#ifndef mc68000
- *lp = ntohl(*lp);
-#endif
- return (TRUE);
-}
-
-static bool_t xdrstdio_putlong(xdrs, lp)
-XDR *xdrs;
-long *lp;
-{
-
-#ifndef mc68000
- long mycopy = htonl(*lp);
-
- lp = &mycopy;
-#endif
- if (fwrite((caddr_t) lp, sizeof(long), 1, (FILE *) xdrs->x_private) !=
- 1) return (FALSE);
-
- return (TRUE);
-}
-
-static bool_t xdrstdio_getbytes(xdrs, addr, len)
-XDR *xdrs;
-caddr_t addr;
-u_int len;
-{
-
- if ((len != 0)
- && (fread(addr, (int) len, 1, (FILE *) xdrs->x_private) != 1))
- return (FALSE);
- return (TRUE);
-}
-
-static bool_t xdrstdio_putbytes(xdrs, addr, len)
-XDR *xdrs;
-caddr_t addr;
-u_int len;
-{
-
- if ((len != 0)
- && (fwrite(addr, (int) len, 1, (FILE *) xdrs->x_private) != 1))
- return (FALSE);
- return (TRUE);
-}
-
-static u_int xdrstdio_getpos(xdrs)
-XDR *xdrs;
-{
-
- return ((u_int) ftell((FILE *) xdrs->x_private));
-}
-
-static bool_t xdrstdio_setpos(xdrs, pos)
-XDR *xdrs;
-u_int pos;
-{
-
- return ((fseek((FILE *) xdrs->x_private, (long) pos, 0) < 0) ?
- FALSE : TRUE);
-}
-
-static int32_t *xdrstdio_inline(xdrs, len)
-XDR *xdrs;
-u_int len;
-{
-
- /*
- * Must do some work to implement this: must insure
- * enough data in the underlying stdio buffer,
- * that the buffer is aligned so that we can indirect through a
- * long *, and stuff this pointer in xdrs->x_buf. Doing
- * a fread or fwrite to a scratch buffer would defeat
- * most of the gains to be had here and require storage
- * management on this buffer, so we don't do this.
- */
- return (NULL);
-}
diff --git a/mdk-stage1/dietlibc/libshell/fnmatch.c b/mdk-stage1/dietlibc/libshell/fnmatch.c
deleted file mode 100644
index 4e7664510..000000000
--- a/mdk-stage1/dietlibc/libshell/fnmatch.c
+++ /dev/null
@@ -1,74 +0,0 @@
-#include <ctype.h>
-#include <fnmatch.h>
-
-#define NOTFIRST 128
-
-static int match(char c,char d,int flags) {
- if (flags&FNM_CASEFOLD)
- return (tolower(c)==tolower(d));
- else
- return (c==d);
-}
-
-int fnmatch(const char *pattern, const char *string, int flags) {
- if (*string==0) {
- while (*pattern=='*') ++pattern;
- return (!!*pattern);
- }
- if (*string=='.' && *pattern!='.' && (flags&FNM_PERIOD)) {
- /* don't match if FNM_PERIOD and this is the first char */
- if ((flags&FNM_PERIOD) && (!(flags&NOTFIRST)))
- return 1;
- /* don't match if FNM_PERIOD and FNM_FILE_NAME and previous was '/' */
- if ((flags&(FNM_FILE_NAME|FNM_PERIOD)) && string[-1]=='/')
- return 1;
- }
- flags|=NOTFIRST;
- switch (*pattern) {
- case '[':
- ++pattern;
- while (*pattern && *pattern!=']') {
- if (flags&FNM_PATHNAME || *string!='/') {
- int res=0;
- if (pattern[1]=='-') {
- if (*string>=*pattern && *string<=pattern[2]) res=1;
- if (flags&FNM_CASEFOLD) {
- if (tolower(*string)>=tolower(*pattern) && tolower(*string)<=tolower(pattern[2])) res=1;
- }
- } else
- res=match(*pattern,*string,flags);
- if (res) {
- while (*pattern && *pattern!=']') ++pattern;
- return fnmatch(pattern+1,string+1,flags);
- }
- }
- ++pattern;
- }
- break;
- case '\\':
- if (flags&FNM_NOESCAPE) {
- if (*string=='\\')
- return fnmatch(pattern+1,string+1,flags);
- } else {
- if (*string==pattern[1])
- return fnmatch(pattern+2,string+1,flags);
- }
- break;
- case '*':
- if (!pattern[1] || fnmatch(pattern+1,string,flags)==0)
- return 0;
- else
- if (*string!='/')
- return fnmatch(pattern,string+1,flags);
- break;
- case 0:
- if (*string==0 || (*string=='/' && (flags&FNM_LEADING_DIR)))
- return 0;
- break;
- default:
- if (match(*pattern,*string,flags))
- return fnmatch(pattern+1,string+1,flags);
- break;
- }
- return 1;
-}
diff --git a/mdk-stage1/dietlibc/libshell/glob.c b/mdk-stage1/dietlibc/libshell/glob.c
deleted file mode 100644
index 34d09d87a..000000000
--- a/mdk-stage1/dietlibc/libshell/glob.c
+++ /dev/null
@@ -1,350 +0,0 @@
-/*
- * dietlibc/libshell/glob.c
- *
- * Copyright 2001 Guillaume Cottenceau <gc@mandrakesoft.com>
- *
- * This is free software, licensed under the Gnu General Public License.
- *
- */
-
-/*
- * unsupported: GLOB_BRACE GLOB_ALTDIRFUNC GLOB_MAGCHAR
- */
-
-#define DEBUG(x)
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <assert.h>
-#include <fnmatch.h>
-#include <dirent.h>
-#include <pwd.h>
-
-#include <glob.h>
-
-
-
-/* If i18n, should be using strcoll */
-static int cmp_func(const void * a, const void * b)
-{
- const char *const s1 = *(const char *const * const) a;
- const char *const s2 = *(const char *const * const) b;
- if (s1 == NULL)
- return 1;
- if (s2 == NULL)
- return -1;
- return strcmp(s1, s2);
-}
-
-
-/* Like `glob', but PATTERN is a final pathname component,
- and matches are searched for in DIRECTORY.
- The GLOB_NOSORT bit in FLAGS is ignored. No sorting is ever done.
- The GLOB_APPEND flag is assumed to be set (always appends).
- Prepends DIRECTORY in constructed PGLOB. */
-static int glob_in_dir(const char *pattern, const char *directory, int flags,
- int errfunc(const char * epath, int eerrno),
- glob_t *pglob)
-{
- DIR *dp = opendir(directory);
- int nfound = 0;
-
- int i;
- char * ptr;
-
- void close_dir_keep_errno(void) {
- int save = errno;
- if (dp)
- closedir (dp);
- __set_errno(save);
- }
- int add_entry(const char * name) {
- pglob->gl_pathv = (char **) realloc(pglob->gl_pathv,
- (pglob->gl_pathc + pglob->gl_offs + 2)
- * sizeof (char *));
- if (pglob->gl_pathv == NULL)
- return 1;
- pglob->gl_pathv[pglob->gl_offs + pglob->gl_pathc] = strdup(name);
- pglob->gl_pathv[pglob->gl_offs + pglob->gl_pathc + 1] = NULL;
- pglob->gl_pathc++;
- nfound++;
- return 0;
- }
- void build_fullname(char * fullname, int fullnamesize, const char * directory, const char * filename) {
- if (!strcmp(directory, "/"))
- snprintf(fullname, fullnamesize, "/%s", filename);
- else if (!strcmp(directory, "."))
- snprintf(fullname, fullnamesize, "%s", filename);
- else
- snprintf(fullname, fullnamesize, "%s/%s", directory, filename);
- }
-
- if (!dp) {
- if (errno != ENOTDIR
- && ((errfunc != NULL && (*errfunc) (directory, errno))
- || (flags & GLOB_ERR)))
- return GLOB_ABORTED;
- } else {
- int fnm_flags = ((!(flags & GLOB_PERIOD) ? FNM_PERIOD : 0)
- | ((flags & GLOB_NOESCAPE) ? FNM_NOESCAPE : 0));
- struct dirent *ep;
- while ((ep = readdir(dp))) {
- i = strlen(directory) + strlen(ep->d_name) + 2;
- ptr = (char *) alloca(i);
- build_fullname(ptr, i, directory, ep->d_name);
- if (flags & GLOB_ONLYDIR) {
- struct stat statr;
- if (stat(ptr, &statr) || !S_ISDIR(statr.st_mode))
- continue;
- }
- if (fnmatch(pattern, ep->d_name, fnm_flags) == 0)
- if (add_entry(ptr))
- goto memory_error;
- }
- }
-
- close_dir_keep_errno();
-
- if (nfound != 0)
- pglob->gl_flags = flags;
- else if (flags & GLOB_NOCHECK) {
- /* nfound == 0 */
- i = strlen(directory) + strlen(pattern) + 2;
- ptr = (char *) alloca(i);
- build_fullname(ptr, i, directory, pattern);
- if (add_entry(ptr))
- goto memory_error;
- }
-
- return (nfound == 0) ? GLOB_NOMATCH : 0;
-
- memory_error:
- /* We're in trouble since we can't free the already allocated memory. [allocated from strdup(filame)]
- * Well, after all, when malloc returns NULL we're already in a bad mood, and no doubt the
- * program will manage to segfault by itself very soon :-). */
- close_dir_keep_errno();
- return GLOB_NOSPACE;
-}
-
-
-
-int glob(const char *pattern, int flags, int errfunc(const char * epath, int eerrno), glob_t *pglob)
-{
- char * pattern_;
- char * filename;
- char * dirname;
- size_t oldcount;
- struct stat statr;
-
- size_t i; /* tmp variables are declared here to save a bit of object space */
- int j, k; /* */
- char * ptr, * ptr2;
-
- if (pattern == NULL || pglob == NULL || (flags & ~__GLOB_FLAGS) != 0) {
- __set_errno (EINVAL);
- return -1;
- }
-
- if (!(flags & GLOB_DOOFFS))
- pglob->gl_offs = 0;
-
-
- /* Duplicate pattern so I can make modif to it later (to handle
- TILDE stuff replacing old contents, and to null-terminate the
- directory) */
- pattern_ = alloca(strlen(pattern) + 1);
- strcpy(pattern_, pattern);
-
- /* Check for TILDE stuff */
- if ((flags & (GLOB_TILDE|GLOB_TILDE_CHECK)) && pattern_[0] == '~') {
- char * home_dir = NULL;
- if (pattern_[1] == '\0' || pattern_[1] == '/') {
- /* She's asking for ~, her homedir */
- home_dir = getenv("HOME");
- } else {
- /* She's asking for another one's homedir */
- struct passwd * p;
- ptr2 = alloca(strlen(pattern_) + 1);
- strcpy(ptr2, pattern_ + 1);
- ptr = strchr(ptr2, '/');
- if (ptr != NULL)
- *ptr = '\0';
- if (((p = getpwnam(ptr2)) != NULL))
- home_dir = p->pw_dir;
- }
- if (home_dir != NULL) {
- i = strlen(home_dir) + strlen(pattern_); /* pessimistic (the ~ case) */
- ptr = alloca(i);
- strncpy(ptr, home_dir, i);
- ptr2 = pattern_ + 1;
- while (*ptr2 != '/' && *ptr2 != '\0')
- ptr2++;
- strncat(ptr, ptr2, i);
- pattern_ = ptr;
- } else if (flags & GLOB_TILDE_CHECK)
- return GLOB_NOMATCH;
- }
-
- /* Find the filename */
- filename = strrchr(pattern_, '/');
-
- if (filename == NULL) {
- /* We have no '/' in the pattern */
- filename = pattern_;
- dirname = ".";
- } else if (filename == pattern_) {
- /* "/pattern". */
- dirname = "/";
- filename++;
- } else {
- dirname = pattern_;
- filename++;
- /* allow dirname to be null terminated */
- *(filename-1) = '\0';
-
- if (filename[0] == '\0' && strcmp(pattern_, "/")) {
- /* "pattern/". Expand "pattern", appending slashes. */
- j = glob(dirname, flags | GLOB_MARK, errfunc, pglob);
- if (j == 0)
- pglob->gl_flags = ((pglob->gl_flags & ~GLOB_MARK)
- | (flags & GLOB_MARK));
- return j;
- }
- }
-
-
- /* Reserve memory for pglob */
- if (!(flags & GLOB_APPEND)) {
- pglob->gl_pathc = 0;
- if (!(flags & GLOB_DOOFFS))
- pglob->gl_pathv = NULL;
- else {
- pglob->gl_pathv = (char **) malloc((pglob->gl_offs + 1) * sizeof (char *));
- if (pglob->gl_pathv == NULL)
- return GLOB_NOSPACE;
- for (i = 0; i <= pglob->gl_offs; i++)
- pglob->gl_pathv[i] = NULL;
- }
- }
-
-
- oldcount = pglob->gl_pathc + pglob->gl_offs;
-
-
- /* Begin real work */
- if (!strcmp(dirname, "/") || !strcmp(dirname, ".")
- || (!strchr(dirname, '*') && !strchr(dirname, '?') && !strchr(dirname, '['))) {
- /* Approx of a terminal state, glob directly in dir. */
- j = glob_in_dir(filename, dirname, flags, errfunc, pglob);
- if (j != 0)
- return j;
- } else {
- /* We are not in a terminal state, so we have to glob for
- the directory, and then glob for the pattern in each
- directory found. */
- glob_t dirs;
-
- j = glob(dirname, ((flags & (GLOB_ERR | GLOB_NOCHECK | GLOB_NOESCAPE | GLOB_ALTDIRFUNC))
- | GLOB_NOSORT | GLOB_ONLYDIR),
- errfunc, &dirs);
- if (j != 0)
- return j;
-
- /* We have successfully globbed the directory name.
- For each name we found, call glob_in_dir on it and FILENAME,
- appending the results to PGLOB. */
- for (i = 0; i < dirs.gl_pathc; i++) {
- j = glob_in_dir(filename, dirs.gl_pathv[i], ((flags | GLOB_APPEND) & ~GLOB_NOCHECK),
- errfunc, pglob);
- if (j == GLOB_NOMATCH)
- /* No matches in this directory. Try the next. */
- continue;
- if (j != 0) {
- globfree(&dirs);
- globfree(pglob);
- return j;
- }
- }
-
- /* We have ignored the GLOB_NOCHECK flag in the `glob_in_dir' calls.
- But if we have not found any matching entry and the GLOB_NOCHECK
- flag was set we must return the list consisting of the disrectory
- names followed by the filename. */
- if (pglob->gl_pathc + pglob->gl_offs == oldcount)
- {
- /* No matches. */
- if (flags & GLOB_NOCHECK)
- {
- for (i = 0; i < dirs.gl_pathc; i++) {
- if (stat(dirs.gl_pathv[i], &statr) || !S_ISDIR(statr.st_mode))
- continue;
-
- /* stat is okay, we will add the entry, but before let's resize the pathv */
- j = pglob->gl_pathc + pglob->gl_offs;
- pglob->gl_pathv = (char **) realloc(pglob->gl_pathv, (j + 2) * sizeof (char *));
- if (pglob->gl_pathv == NULL) {
- globfree (&dirs);
- return GLOB_NOSPACE;
- }
-
- /* okay now we add the new entry */
- k = strlen(dirs.gl_pathv[i]) + 1 + strlen(filename) + 1;
- if ((pglob->gl_pathv[j] = malloc(k)) == NULL) {
- globfree(&dirs);
- globfree(pglob);
- return GLOB_NOSPACE;
- }
- snprintf(pglob->gl_pathv[j], k, "%s/%s", dirs.gl_pathv[i], filename);
- pglob->gl_pathc++;
- pglob->gl_pathv[j+1] = NULL;
- }
- } else {
- globfree(&dirs);
- return GLOB_NOMATCH;
- }
- }
-
- globfree (&dirs);
- }
-
-
- if (flags & GLOB_MARK) {
- for (i = oldcount; i < pglob->gl_pathc + pglob->gl_offs; i++)
- if (!stat(pglob->gl_pathv[i], &statr) && S_ISDIR(statr.st_mode)) {
- size_t len = strlen(pglob->gl_pathv[i]) + 2;
- ptr = realloc(pglob->gl_pathv[i], len);
- if (ptr == NULL) {
- globfree(pglob);
- return GLOB_NOSPACE;
- }
- strcpy(&ptr[len - 2], "/");
- pglob->gl_pathv[i] = ptr;
- }
- }
-
- if (!(flags & GLOB_NOSORT)) {
- qsort(&pglob->gl_pathv[oldcount],
- pglob->gl_pathc + pglob->gl_offs - oldcount,
- sizeof(char *), cmp_func);
- }
-
- return 0;
-}
-
-
-/* Free storage allocated in PGLOB by a previous `glob' call. */
-void globfree (glob_t * pglob)
-{
- if (pglob->gl_pathv != NULL) {
- size_t i;
- for (i = 0; i < pglob->gl_pathc; i++)
- if (pglob->gl_pathv[pglob->gl_offs + i] != NULL)
- free((void *) pglob->gl_pathv[pglob->gl_offs + i]);
- free((void *) pglob->gl_pathv);
- }
-}
diff --git a/mdk-stage1/dietlibc/libshell/realpath.c b/mdk-stage1/dietlibc/libshell/realpath.c
deleted file mode 100644
index 1377018e5..000000000
--- a/mdk-stage1/dietlibc/libshell/realpath.c
+++ /dev/null
@@ -1,31 +0,0 @@
-#include <limits.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <string.h>
-#include "dietfeatures.h"
-
-char *realpath(const char *path, char *resolved_path) {
- int fd=open(".",O_RDONLY);
- char *tmp="";
- if (chdir(path)) {
-#ifdef WANT_THREAD_SAFE
- if (*__errno_location()==ENOTDIR)
-#else
- if (errno==ENOTDIR)
-#endif
- {
- if ((tmp=strrchr(path,'/'))) {
- memmove(resolved_path,path,tmp-path);
- resolved_path[tmp-path]=0;
- if (chdir(resolved_path)) { resolved_path=0; goto abort; }
- }
- }
- }
- if (!getcwd(resolved_path,PATH_MAX)) { resolved_path=0; goto abort; }
- strcat(resolved_path,tmp);
-abort:
- fchdir(fd);
- close(fd);
- return resolved_path;
-}
diff --git a/mdk-stage1/dietlibc/libstdio/clearerr.c b/mdk-stage1/dietlibc/libstdio/clearerr.c
deleted file mode 100644
index 8bde8c702..000000000
--- a/mdk-stage1/dietlibc/libstdio/clearerr.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include "dietstdio.h"
-
-void clearerr( FILE *stream) {
- stream->flags&=~(ERRORINDICATOR|EOFINDICATOR);
-}
diff --git a/mdk-stage1/dietlibc/libstdio/fclose.c b/mdk-stage1/dietlibc/libstdio/fclose.c
deleted file mode 100644
index a955c6086..000000000
--- a/mdk-stage1/dietlibc/libstdio/fclose.c
+++ /dev/null
@@ -1,26 +0,0 @@
-#include "dietstdio.h"
-#include <stdlib.h>
-#include <unistd.h>
-
-int fclose(FILE *stream) {
- int res;
-#ifdef WANT_BUFFERED_STDIO
- FILE *f,*fl;
-#endif
- if (!stream)
- return EOF;
- fflush(stream);
- res=close(stream->fd);
-#ifdef WANT_BUFFERED_STDIO
- for (fl=0,f=__stdio_root; f; fl=f,f=f->next)
- if (f==stream) {
- if (fl)
- fl->next=f->next;
- else
- __stdio_root=f->next;
- break;
- }
-#endif
- free(stream);
- return res;
-}
diff --git a/mdk-stage1/dietlibc/libstdio/fdglue.c b/mdk-stage1/dietlibc/libstdio/fdglue.c
deleted file mode 100644
index 1c3918f1f..000000000
--- a/mdk-stage1/dietlibc/libstdio/fdglue.c
+++ /dev/null
@@ -1,52 +0,0 @@
-#include "dietstdio.h"
-#include <unistd.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <stdlib.h>
-
-#ifdef WANT_BUFFERED_STDIO
-extern int __stdio_atexit;
-extern void __stdio_flushall();
-#endif
-
-int __stdio_parse_mode(const char *mode) {
- int f=0;
- for (;;) {
- switch (*mode) {
- case 0: return f;
- case 'b': break;
- case 'r': f=O_RDONLY; break;
- case 'w': f=O_WRONLY|O_CREAT|O_TRUNC; break;
- case 'a': f=O_WRONLY|O_CREAT|O_APPEND; break;
- case '+': f=(f&(~O_WRONLY))|O_RDWR; break;
- }
- ++mode;
- }
-}
-
-FILE* __stdio_init_file(int fd) {
- FILE *tmp=(FILE*)malloc(sizeof(FILE));
- if (!tmp) {
- close(fd);
- errno=ENOMEM;
- return 0;
- }
- tmp->fd=fd;
-#ifdef WANT_BUFFERED_STDIO
- tmp->bm=0;
- tmp->bs=0;
-#endif
-#ifdef WANT_UNGETC
- tmp->ungotten = 0;
-#endif
- tmp->flags=0;
-#ifdef WANT_BUFFERED_STDIO
- if (__stdio_atexit==0) {
- __stdio_atexit=1;
- atexit(__stdio_flushall);
- }
- tmp->next=__stdio_root;
- __stdio_root=tmp;
-#endif
- return tmp;
-}
diff --git a/mdk-stage1/dietlibc/libstdio/fdopen.c b/mdk-stage1/dietlibc/libstdio/fdopen.c
deleted file mode 100644
index aee14fb0c..000000000
--- a/mdk-stage1/dietlibc/libstdio/fdopen.c
+++ /dev/null
@@ -1,21 +0,0 @@
-#include <sys/types.h>
-#include <dietstdio.h>
-#include <unistd.h>
-
-#define SEEK_END 2
-
-int __stdio_parse_mode(const char *mode);
-FILE* __stdio_init_file(int fd);
-
-FILE *fdopen (int filedes, const char *mode) {
- int f=0; /* O_RDONLY, O_WRONLY or O_RDWR */
- int fd;
-
- f=__stdio_parse_mode(mode);
- if ((fd=filedes)<0) return 0;
- {
- FILE * ret = __stdio_init_file(fd);
- ret->flags |= UNSEEKABLE;
- return ret;
- }
-}
diff --git a/mdk-stage1/dietlibc/libstdio/feof.c b/mdk-stage1/dietlibc/libstdio/feof.c
deleted file mode 100644
index b7e86fe3b..000000000
--- a/mdk-stage1/dietlibc/libstdio/feof.c
+++ /dev/null
@@ -1,9 +0,0 @@
-#include <dietstdio.h>
-
-int feof(FILE *stream) {
-#ifdef WANT_UNGETC
- /* yuck!!! */
- if (stream->ungotten) return 0;
-#endif
- return (stream->flags&EOFINDICATOR);
-}
diff --git a/mdk-stage1/dietlibc/libstdio/ferror.c b/mdk-stage1/dietlibc/libstdio/ferror.c
deleted file mode 100644
index e86873be0..000000000
--- a/mdk-stage1/dietlibc/libstdio/ferror.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <dietstdio.h>
-
-int ferror(FILE *stream) {
- return (stream->flags&ERRORINDICATOR);
-}
diff --git a/mdk-stage1/dietlibc/libstdio/fflush.c b/mdk-stage1/dietlibc/libstdio/fflush.c
deleted file mode 100644
index 7078e04f4..000000000
--- a/mdk-stage1/dietlibc/libstdio/fflush.c
+++ /dev/null
@@ -1,62 +0,0 @@
-#include "dietstdio.h"
-#include <unistd.h>
-#include <stdlib.h>
-#include "dietwarning.h"
-
-FILE *__stdio_root;
-
-#ifdef WANT_BUFFERED_STDIO
-int __stdio_atexit=0;
-
-void __stdio_flushall() {
- fflush(0);
-}
-
-extern int __fflush_stdin();
-extern int __fflush_stdout();
-extern int __fflush_stderr();
-
-int fflush(FILE *stream) {
- if (stream==0) {
- int res;
- FILE *f;
- __fflush_stdin();
- __fflush_stdout();
- __fflush_stderr();
- for (res=0, f=__stdio_root; f; f=f->next)
- if (fflush(f))
- res=-1;
- return res;
- }
- if (stream->flags&BUFINPUT) {
- register int tmp;
- if ((tmp=stream->bm-stream->bs)) lseek(stream->fd,tmp,SEEK_CUR);
- } else
- if (stream->bm && write(stream->fd,stream->buf,stream->bm)!=stream->bm) {
- stream->flags|=ERRORINDICATOR;
- return -1;
- }
- stream->bm=0;
- return 0;
-}
-
-int __fflush4(FILE *stream,int next) {
- if (!__stdio_atexit) {
- __stdio_atexit=1;
- atexit(__stdio_flushall);
- }
- if ((stream->flags&BUFINPUT)!=next) {
- int res=fflush(stream);
- stream->flags=(stream->flags&~BUFINPUT)|next;
- return res;
- }
- return 0;
-}
-
-#else
-int fflush(FILE *stream) {
- return 0;
-}
-#endif
-
-link_warning("fflush","warning: your code uses stdio (several kilobytes of bloat).")
diff --git a/mdk-stage1/dietlibc/libstdio/fgetc.c b/mdk-stage1/dietlibc/libstdio/fgetc.c
deleted file mode 100644
index 90d83961a..000000000
--- a/mdk-stage1/dietlibc/libstdio/fgetc.c
+++ /dev/null
@@ -1,40 +0,0 @@
-#include "dietstdio.h"
-#include <unistd.h>
-
-extern int feof(FILE *stream);
-
-int fgetc(FILE *stream) {
- unsigned char c;
-#ifdef WANT_UNGETC
- if (stream->ungotten) {
- stream->ungotten=0;
- return stream->ungetbuf;
- }
-#endif
- if (feof(stream))
- return EOF;
-#ifdef WANT_BUFFERED_STDIO
- if (__fflush4(stream,BUFINPUT)) return EOF;
- if (stream->bm>=stream->bs) {
- int len=read(stream->fd,stream->buf,BUFSIZE);
- if (len==0) {
- stream->flags|=EOFINDICATOR;
- return EOF;
- } else if (len<0) {
- stream->flags|=ERRORINDICATOR;
- return EOF;
- }
- stream->bm=0;
- stream->bs=len;
- }
- c=stream->buf[stream->bm];
- ++stream->bm;
- return c;
-#else
- if (read(stream->fd,&c,1)!=1) {
- stream->flags|=ERRORINDICATOR;
- return EOF;
- }
- return c;
-#endif
-}
diff --git a/mdk-stage1/dietlibc/libstdio/fgets.c b/mdk-stage1/dietlibc/libstdio/fgets.c
deleted file mode 100644
index c613d452d..000000000
--- a/mdk-stage1/dietlibc/libstdio/fgets.c
+++ /dev/null
@@ -1,20 +0,0 @@
-#include "dietstdio.h"
-
-extern int ferror(FILE *stream);
-
-char *fgets(char *s, int size, FILE *stream) {
- char *orig=s;
- int l;
- for (l=size; l>0;) {
- int c=fgetc(stream);
- if (c==EOF) break;
- *s=c;
- ++s;
- --l;
- if (c=='\n') break;
- }
- if (l==size || ferror(stream))
- return 0;
- *s=0;
- return orig;
-}
diff --git a/mdk-stage1/dietlibc/libstdio/fileno.c b/mdk-stage1/dietlibc/libstdio/fileno.c
deleted file mode 100644
index f021d3881..000000000
--- a/mdk-stage1/dietlibc/libstdio/fileno.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <dietstdio.h>
-
-int fileno(FILE *stream) {
- return stream->fd;
-}
diff --git a/mdk-stage1/dietlibc/libstdio/fopen.c b/mdk-stage1/dietlibc/libstdio/fopen.c
deleted file mode 100644
index aac17be42..000000000
--- a/mdk-stage1/dietlibc/libstdio/fopen.c
+++ /dev/null
@@ -1,21 +0,0 @@
-#include <sys/types.h>
-#include <dietstdio.h>
-#include <unistd.h>
-
-#define SEEK_END 2
-
-extern int __stdio_atexit;
-extern void __stdio_flushall();
-
-extern int __stdio_parse_mode(const char *mode);
-extern FILE* __stdio_init_file(int fd);
-
-FILE *fopen (const char *path, const char *mode) {
- int f=0; /* O_RDONLY, O_WRONLY or O_RDWR */
- int fd;
-
- f=__stdio_parse_mode(mode);
- if ((fd=open(path,f,0666))<0)
- return 0;
- return __stdio_init_file(fd);
-}
diff --git a/mdk-stage1/dietlibc/libstdio/fprintf.c b/mdk-stage1/dietlibc/libstdio/fprintf.c
deleted file mode 100644
index 237fd1e51..000000000
--- a/mdk-stage1/dietlibc/libstdio/fprintf.c
+++ /dev/null
@@ -1,23 +0,0 @@
-#include <stdarg.h>
-#include <linux/types.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-extern int vsnprintf (char *str,size_t size,const char *format, va_list arg_ptr);
-
-int fprintf(FILE *f,const char *format,...) {
- int n;
- char *printf_buf;
-/* char printf_buf[1024]; */
- va_list arg_ptr;
- va_start(arg_ptr, format);
- n=vsnprintf(0,1000000,format,arg_ptr);
-/* write(1,printf_buf,strlen(printf_buf)); */
- va_end (arg_ptr);
- va_start (arg_ptr, format);
- printf_buf=alloca(n+2);
- n=vsnprintf(printf_buf,n+1,format,arg_ptr);
- va_end (arg_ptr);
- fwrite(printf_buf,n,1,f);
- return n;
-}
diff --git a/mdk-stage1/dietlibc/libstdio/fputc.c b/mdk-stage1/dietlibc/libstdio/fputc.c
deleted file mode 100644
index b816f7c4d..000000000
--- a/mdk-stage1/dietlibc/libstdio/fputc.c
+++ /dev/null
@@ -1,19 +0,0 @@
-#include <dietstdio.h>
-#ifndef WANT_BUFFERED_STDIO
-#include <unistd.h>
-#endif
-
-int fputc(int c, FILE *stream) {
-#ifdef WANT_BUFFERED_STDIO
- if (__fflush4(stream,0)) return EOF;
- if (stream->bm>=BUFSIZE-1)
- if (fflush(stream)) return EOF;
- stream->buf[stream->bm]=c;
- ++stream->bm;
- if ((stream->flags&BUFLINEWISE) && c=='\n') /* puke */
- if (fflush(stream)) return EOF;
-#else
- write(stream->fd,&c,1);
-#endif
- return 0;
-}
diff --git a/mdk-stage1/dietlibc/libstdio/fputs.c b/mdk-stage1/dietlibc/libstdio/fputs.c
deleted file mode 100644
index 51ee9a96e..000000000
--- a/mdk-stage1/dietlibc/libstdio/fputs.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "dietstdio.h"
-#include <string.h>
-
-int fputs(const char *s, FILE *stream) {
- return fwrite(s,strlen(s),1,stream);
-}
diff --git a/mdk-stage1/dietlibc/libstdio/fread.c b/mdk-stage1/dietlibc/libstdio/fread.c
deleted file mode 100644
index 29afa1489..000000000
--- a/mdk-stage1/dietlibc/libstdio/fread.c
+++ /dev/null
@@ -1,51 +0,0 @@
-#include <sys/types.h>
-#include "dietstdio.h"
-#include <unistd.h>
-
-size_t fread( void *ptr, size_t size, size_t nmemb, FILE *stream) {
- int res;
-#ifdef WANT_BUFFERED_STDIO
- unsigned long i,j;
- j=size*nmemb;
-#ifdef WANT_UNGETC
- if (stream->ungotten) {
- *(char*)ptr=stream->ungetbuf;
- ptr=((char*)ptr)+1;
- --j;
- }
- if (!j) return 1;
-#endif
- for (i=0; i<j; ++i) {
- res=fgetc(stream);
- if (res==EOF)
- return i/size;
- else
- ((unsigned char*)ptr)[i]=(unsigned char)res;
- }
- return nmemb;
-#else
-#ifdef WANT_UNGETC
- unsigned long j=size*nmemb;
-#endif
- fflush(stream);
-#ifdef WANT_UNGETC
- if (stream->ungotten) {
- *(char*)ptr=stream->ungetbuf;
- ptr=((char*)ptr)+1;
- --j;
- }
- if (!j) return 1;
- res=read(stream->fd,ptr,j);
-#else
- res=read(stream->fd,ptr,size*nmemb);
-#endif
- if (res<0) {
- stream->flags|=ERRORINDICATOR;
- return 0;
- } else if (res<size*nmemb)
- if (!(stream->flags & UNSEEKABLE)
- || ((stream->flags & UNSEEKABLE) && res == 0))
- stream->flags|=EOFINDICATOR;
- return res/size;
-#endif
-}
diff --git a/mdk-stage1/dietlibc/libstdio/freopen.c b/mdk-stage1/dietlibc/libstdio/freopen.c
deleted file mode 100644
index 8d4644a10..000000000
--- a/mdk-stage1/dietlibc/libstdio/freopen.c
+++ /dev/null
@@ -1,9 +0,0 @@
-#include <sys/types.h>
-#include <dietstdio.h>
-#include <unistd.h>
-
-FILE *freopen (const char *path, const char *mode, FILE *stream) {
- fclose(stream);
- stream=fopen(path,mode);
- return stream;
-}
diff --git a/mdk-stage1/dietlibc/libstdio/fseek.c b/mdk-stage1/dietlibc/libstdio/fseek.c
deleted file mode 100644
index 5bb96bc6e..000000000
--- a/mdk-stage1/dietlibc/libstdio/fseek.c
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <dietstdio.h>
-#include <unistd.h>
-
-long fseek(FILE *stream, long offset, int whence) {
- fflush(stream);
-#ifdef WANT_BUFFERED_STDIO
- stream->bm=0; stream->bs=0;
-#endif
- stream->flags&=~(ERRORINDICATOR|EOFINDICATOR);
- return (lseek(stream->fd,offset,whence));
-}
diff --git a/mdk-stage1/dietlibc/libstdio/ftell.c b/mdk-stage1/dietlibc/libstdio/ftell.c
deleted file mode 100644
index 42d2c9f26..000000000
--- a/mdk-stage1/dietlibc/libstdio/ftell.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <dietstdio.h>
-#include <unistd.h>
-
-long ftell(FILE *stream) {
- fflush(stream);
- return (lseek(stream->fd,0,SEEK_CUR));
-}
diff --git a/mdk-stage1/dietlibc/libstdio/fwrite.c b/mdk-stage1/dietlibc/libstdio/fwrite.c
deleted file mode 100644
index 5691661a5..000000000
--- a/mdk-stage1/dietlibc/libstdio/fwrite.c
+++ /dev/null
@@ -1,30 +0,0 @@
-#include <sys/types.h>
-#include "dietstdio.h"
-#include <unistd.h>
-
-size_t fwrite( const void *ptr, size_t size, size_t nmemb, FILE *stream) {
- int res;
-#ifdef WANT_BUFFERED_STDIO
- long len=size*nmemb;
- long i;
- if (len>BUFSIZE || (stream->flags&NOBUF)) {
- if (!(stream->flags&NOBUF)) fflush(stream);
- res=write(stream->fd,ptr,size*nmemb);
- } else {
- register const unsigned char *c=ptr;
- for (i=size*nmemb; i>0; --i,++c)
- if (fputc(*c,stream)) {
- res=-1;
- break;
- }
- res=size*nmemb;
- }
-#else
- res=write(stream->fd,ptr,size*nmemb);
-#endif
- if (res<0) {
- stream->flags|=ERRORINDICATOR;
- return 0;
- }
- return size?res/size:0;
-}
diff --git a/mdk-stage1/dietlibc/libstdio/printf.c b/mdk-stage1/dietlibc/libstdio/printf.c
deleted file mode 100644
index 571420dc3..000000000
--- a/mdk-stage1/dietlibc/libstdio/printf.c
+++ /dev/null
@@ -1,29 +0,0 @@
-#include <stdarg.h>
-#include <linux/types.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include "dietstdio.h"
-
-int vsnprintf (char *str,size_t size,const char *format, va_list arg_ptr);
-
-int printf(const char *format,...)
-{
- int n;
- char *printf_buf;
-/* char printf_buf[1024]; */
- va_list arg_ptr;
- va_start(arg_ptr, format);
- n=vsnprintf(0,1000000,format,arg_ptr);
-/* write(1,printf_buf,strlen(printf_buf)); */
- va_end (arg_ptr);
- va_start (arg_ptr, format);
- printf_buf=alloca(n+2);
- n=vsnprintf(printf_buf,n+1,format,arg_ptr);
-#ifdef WANT_BUFFERED_STDIO
- fwrite(printf_buf,n,1,stdout);
-#else
- write(1,printf_buf,n);
-#endif
- va_end (arg_ptr);
- return n;
-}
diff --git a/mdk-stage1/dietlibc/libstdio/putchar.c b/mdk-stage1/dietlibc/libstdio/putchar.c
deleted file mode 100644
index 7e5285a48..000000000
--- a/mdk-stage1/dietlibc/libstdio/putchar.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <stdio.h>
-
-#undef putchar
-int putchar(int c) {
- return fputc(c,stdout);
-}
diff --git a/mdk-stage1/dietlibc/libstdio/setvbuf.c b/mdk-stage1/dietlibc/libstdio/setvbuf.c
deleted file mode 100644
index d0b1b7640..000000000
--- a/mdk-stage1/dietlibc/libstdio/setvbuf.c
+++ /dev/null
@@ -1,18 +0,0 @@
-#include <sys/types.h>
-#include "dietstdio.h"
-#include <unistd.h>
-#include "dietwarning.h"
-
-int setvbuf(FILE *stream, char *buf, int flags , size_t size) {
-#ifdef WANT_BUFFERED_STDIO
- switch (flags) {
- case _IONBF: stream->flags = (stream->flags & ~(BUFLINEWISE)) | NOBUF; break;
- case _IOLBF: stream->flags = (stream->flags & ~(BUFLINEWISE|NOBUF)) | BUFLINEWISE; break;
- case _IOFBF: stream->flags = stream->flags & ~(NOBUF | BUFLINEWISE); break;
- default: return -1;
- }
-#endif
- return 0;
-}
-
-link_warning("setvbuf","setvbuf does not implement changing the buffer in diet libc.")
diff --git a/mdk-stage1/dietlibc/libstdio/stderr.c b/mdk-stage1/dietlibc/libstdio/stderr.c
deleted file mode 100644
index a82b1b727..000000000
--- a/mdk-stage1/dietlibc/libstdio/stderr.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <dietstdio.h>
-
-#ifdef WANT_BUFFERED_STDIO
-static FILE __stderr = { 2, NOBUF, 0, 0 };
-
-int __fflush_stderr() {
- return fflush(stderr);
-}
-#else
-static FILE __stderr = { 2, 0 };
-#endif
-
-FILE *stderr=&__stderr;
diff --git a/mdk-stage1/dietlibc/libstdio/stdin.c b/mdk-stage1/dietlibc/libstdio/stdin.c
deleted file mode 100644
index 2db82f9ab..000000000
--- a/mdk-stage1/dietlibc/libstdio/stdin.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <dietstdio.h>
-
-#ifdef WANT_BUFFERED_STDIO
-static FILE __stdin = { 0, BUFINPUT, 0, 0 };
-
-int __fflush_stdin() {
- return fflush(stdin);
-}
-#else
-static FILE __stdin = { 0, 0 };
-#endif
-
-FILE *stdin=&__stdin;
diff --git a/mdk-stage1/dietlibc/libstdio/stdout.c b/mdk-stage1/dietlibc/libstdio/stdout.c
deleted file mode 100644
index 481fb1014..000000000
--- a/mdk-stage1/dietlibc/libstdio/stdout.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <dietstdio.h>
-
-#ifdef WANT_BUFFERED_STDIO
-static FILE __stdout = { 1, BUFLINEWISE, 0, 0 };
-
-int __fflush_stdout() {
- return fflush(stdout);
-}
-#else
-static FILE __stdout = { 1, 0 };
-#endif
-
-FILE *stdout=&__stdout;
-
diff --git a/mdk-stage1/dietlibc/libstdio/ungetc.c b/mdk-stage1/dietlibc/libstdio/ungetc.c
deleted file mode 100644
index ae03e9381..000000000
--- a/mdk-stage1/dietlibc/libstdio/ungetc.c
+++ /dev/null
@@ -1,11 +0,0 @@
-#include "dietstdio.h"
-
-#ifdef WANT_UNGETC
-int ungetc(int c, FILE *stream) {
- if (stream->ungotten)
- return EOF;
- stream->ungotten=1;
- stream->ungetbuf=(char)(unsigned char)c;
- return c;
-}
-#endif
diff --git a/mdk-stage1/dietlibc/libugly/asctime.c b/mdk-stage1/dietlibc/libugly/asctime.c
deleted file mode 100644
index e1fcc8706..000000000
--- a/mdk-stage1/dietlibc/libugly/asctime.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <time.h>
-
-static char buf[25];
-
-char *asctime(const struct tm *timeptr) {
- return asctime_r(timeptr,buf);
-}
diff --git a/mdk-stage1/dietlibc/libugly/asctime_r.c b/mdk-stage1/dietlibc/libugly/asctime_r.c
deleted file mode 100644
index 46325927c..000000000
--- a/mdk-stage1/dietlibc/libugly/asctime_r.c
+++ /dev/null
@@ -1,29 +0,0 @@
-#include <time.h>
-
-static const char days[] = "Sun Mon Tue Wed Thu Fri Sat ";
-static const char months[] = "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec ";
-
-static void num2str(char *c,int i) {
- c[0]=i/10+'0';
- c[1]=i%10+'0';
-}
-
-char *asctime_r(const struct tm *t, char *buf) {
- /* "Wed Jun 30 21:49:08 1993\n" */
- *(int*)buf=*(int*)(days+(t->tm_wday<<2));
- *(int*)(buf+4)=*(int*)(months+(t->tm_mon<<2));
- num2str(buf+8,t->tm_mday);
- if (buf[8]=='0') buf[8]=' ';
- buf[10]=' ';
- num2str(buf+11,t->tm_hour);
- if (buf[11]=='0') buf[11]=' ';
- buf[13]=':';
- num2str(buf+14,t->tm_min);
- buf[16]=':';
- num2str(buf+17,t->tm_sec);
- buf[19]=' ';
- num2str(buf+20,(t->tm_year+1900)/100);
- num2str(buf+22,(t->tm_year+1900)%100);
- buf[24]='\n';
- return buf;
-}
diff --git a/mdk-stage1/dietlibc/libugly/asprintf.c b/mdk-stage1/dietlibc/libugly/asprintf.c
deleted file mode 100644
index d10c20b4a..000000000
--- a/mdk-stage1/dietlibc/libugly/asprintf.c
+++ /dev/null
@@ -1,22 +0,0 @@
-#include <stdarg.h>
-#include <linux/types.h>
-#include <stdlib.h>
-#include "dietwarning.h"
-
-extern int vsnprintf (char *str,size_t size,const char *format, va_list arg_ptr);
-
-int asprintf(char **s, const char *format,...)
-{
- int n;
- va_list arg_ptr;
- va_start(arg_ptr, format);
- n=vsnprintf(0,1000000,format,arg_ptr);
- va_end (arg_ptr);
- va_start (arg_ptr, format);
- if ((*s=malloc(n+2))) {
- n=vsnprintf(*s,n+1,format,arg_ptr);
- va_end(arg_ptr);
- return n;
- }
- return -1;
-}
diff --git a/mdk-stage1/dietlibc/libugly/ctime.c b/mdk-stage1/dietlibc/libugly/ctime.c
deleted file mode 100644
index a0e12d673..000000000
--- a/mdk-stage1/dietlibc/libugly/ctime.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <time.h>
-
-char *ctime(const time_t *timep) {
- return asctime(localtime(timep));
-}
diff --git a/mdk-stage1/dietlibc/libugly/daemon.c b/mdk-stage1/dietlibc/libugly/daemon.c
deleted file mode 100644
index 6748cc3c9..000000000
--- a/mdk-stage1/dietlibc/libugly/daemon.c
+++ /dev/null
@@ -1,35 +0,0 @@
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <paths.h>
-
-#include "daemon.h"
-
-int daemon (int nochdir,int noclose)
-{
- int fd;
- switch (fork ())
- {
- case -1:
- return (-1);
- case 0:
- break;
- default:
- _exit (0);
- }
- if (setsid () == -1)
- return (-1);
- if (!nochdir) chdir ("/");
- if (!noclose)
- {
- fd = open (_PATH_DEVNULL,O_RDWR,0);
- if (fd == -1) return (-1);
- dup2 (fd,STDIN_FILENO);
- dup2 (fd,STDOUT_FILENO);
- dup2 (fd,STDERR_FILENO);
- close (fd);
- }
- return (0);
-}
-
diff --git a/mdk-stage1/dietlibc/libugly/endmntent.c b/mdk-stage1/dietlibc/libugly/endmntent.c
deleted file mode 100644
index 00ade38e5..000000000
--- a/mdk-stage1/dietlibc/libugly/endmntent.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <stdio.h>
-#include <mntent.h>
-
-int endmntent(FILE *filep) {
- return fclose(filep);
-}
-
diff --git a/mdk-stage1/dietlibc/libugly/facilitynames.c b/mdk-stage1/dietlibc/libugly/facilitynames.c
deleted file mode 100644
index 8b0e1f21f..000000000
--- a/mdk-stage1/dietlibc/libugly/facilitynames.c
+++ /dev/null
@@ -1,32 +0,0 @@
-#include <sys/syslog.h>
-
-#ifndef INTERNAL_MARK
-#define INTERNAL_MARK 0x300
-#endif
-
-CODE facilitynames[] =
- {
- { "auth", LOG_AUTH },
- { "authpriv", LOG_AUTHPRIV },
- { "cron", LOG_CRON },
- { "daemon", LOG_DAEMON },
- { "ftp", LOG_FTP },
- { "kern", LOG_KERN },
- { "lpr", LOG_LPR },
- { "mail", LOG_MAIL },
- { "mark", INTERNAL_MARK }, /* INTERNAL */
- { "news", LOG_NEWS },
- { "security", LOG_AUTH }, /* DEPRECATED */
- { "syslog", LOG_SYSLOG },
- { "user", LOG_USER },
- { "uucp", LOG_UUCP },
- { "local0", LOG_LOCAL0 },
- { "local1", LOG_LOCAL1 },
- { "local2", LOG_LOCAL2 },
- { "local3", LOG_LOCAL3 },
- { "local4", LOG_LOCAL4 },
- { "local5", LOG_LOCAL5 },
- { "local6", LOG_LOCAL6 },
- { "local7", LOG_LOCAL7 },
- { 0, -1 }
- };
diff --git a/mdk-stage1/dietlibc/libugly/getmntent.c b/mdk-stage1/dietlibc/libugly/getmntent.c
deleted file mode 100644
index 250a77b7f..000000000
--- a/mdk-stage1/dietlibc/libugly/getmntent.c
+++ /dev/null
@@ -1,30 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <mntent.h>
-#include <string.h>
-
-struct mntent *getmntent(FILE *filep) {
- static struct mntent m;
- char buf[1024];
- do {
- char *tmp=buf;
- int num;
- fgets(buf,1024,filep);
-/* "/dev/ide/host0/bus0/target0/lun0/part2 / reiserfs defaults 1 1" */
- for (num=0; num<6; ++num) {
- switch (num) {
- case 0: m.mnt_fsname=tmp; break;
- case 1: m.mnt_dir=tmp; break;
- case 2: m.mnt_type=tmp; break;
- case 3: m.mnt_opts=tmp; break;
- case 4: m.mnt_freq=strtol(tmp,&tmp,0); if (*tmp!=' ') continue; break;
- case 5: m.mnt_passno=strtol(tmp,&tmp,0); if (*tmp=='\n') return &m; break;
- }
- if ((tmp=strchr(tmp,' '))) {
- if (num<4) *tmp++=0;
- while (*tmp==' ') ++tmp;
- } else
- continue;
- }
- } while (1);
-}
diff --git a/mdk-stage1/dietlibc/libugly/getprotoent.c b/mdk-stage1/dietlibc/libugly/getprotoent.c
deleted file mode 100644
index a648e2307..000000000
--- a/mdk-stage1/dietlibc/libugly/getprotoent.c
+++ /dev/null
@@ -1,130 +0,0 @@
-#include <unistd.h>
-#include <fcntl.h>
-#include <netdb.h>
-#include <sys/mman.h>
-#include <errno.h>
-#include <netinet/in.h>
-#include <string.h>
-#include <ctype.h>
-
-static int protofd=-1;
-static char* protomap;
-static unsigned int protolen;
-
-static char* aliases[10];
-
-static char *cur;
-
-/* ip 0 IP # internet protocol, pseudo protocol number */
-struct protoent *getprotoent(void) {
- static struct protoent pe;
- char *last;
- int aliasidx;
- if (protofd<0) {
- protofd=open(_PATH_SERVICES,O_RDONLY);
- if (protofd<0) return 0;
- protolen=lseek(protofd,0,SEEK_END);
- protomap=mmap(0,protolen,PROT_READ|PROT_WRITE,MAP_PRIVATE,protofd,0);
- if ((long)protomap==(-1)) goto error;
- cur=protomap;
- }
- last=protomap+protolen;
-again:
- pe.p_name=0;
- pe.p_aliases=aliases; aliases[0]=0;
- pe.p_proto=0;
- if (cur>=last) return 0;
- if (*cur=='#' || *cur=='\n') goto parseerror;
- /* first, the primary name */
- if (!isalpha(*cur)) goto parseerror;
- pe.p_name=cur;
- pe.p_aliases=aliases;
- while (cur<last && isalnum(*cur)) cur++;
- if (cur>=last) return 0;
- if (*cur=='\n') goto parseerror;
- *cur=0; cur++;
- /* second, the protocol number */
- while (cur<last && isblank(*cur)) cur++;
- while (cur<last && isdigit(*cur)) {
- pe.p_proto=pe.p_proto*10+*cur-'0';
- cur++;
- }
-/* pe.p_proto=htons(pe.s_proto); */
- if (cur>=last) return 0;
- if (*cur=='\n') { *cur++=0; return &pe; }
- *cur=0; cur++;
- /* now the aliases */
- for (aliasidx=0;aliasidx<10;++aliasidx) {
- while (cur<last && isblank(*cur)) ++cur;
- aliases[aliasidx]=cur;
- while (cur<last && isalpha(*cur)) ++cur;
- if (*cur=='\n') { *cur++=0; ++aliasidx; break; }
- if (cur>=last || !isblank(*cur)) break;
- *cur++=0;
- }
- aliases[aliasidx]=0;
- return &pe;
-parseerror:
- while (cur<last && *cur!='\n') cur++;
- cur++;
- goto again;
-error:
- if (protomap!=(char*)-1) munmap(protomap,protolen);
- if (protofd!=-1) close(protofd);
- protomap=(char*)-1;
- protofd=-1;
- errno=ENOMEM;
- return 0;
-}
-
-void setprotoent(int stayopen) {
- cur=protomap;
-}
-
-struct protoent *getprotobyname(const char *name) {
- struct protoent *s;
- setprotoent(0);
- for (s=getprotoent(); s; s=getprotoent()) {
- char **tmp;
-#if 0
- write(1,"found ",6);
- write(1,s->p_name,strlen(s->p_name));
- write(1,"/",1);
- write(1,s->p_proto,strlen(s->p_proto));
- write(1,"\n",1);
- if (!strcmp(name,"auth")) {
- tmp=s->p_aliases;
- write(1," aka ",5);
- while (*tmp) {
- write(1,*tmp,strlen(*tmp));
- write(1,", ",2);
- ++tmp;
- }
- write(1,"\n",1);
- }
-#endif
- if (!strcmp(name,s->p_name))
- return s;
- tmp=s->p_aliases;
- while (*tmp)
- if (!strcmp(name,*tmp++)) return s;
- }
- return 0;
-}
-
-struct protoent *getprotobynumber(int proto) {
- struct protoent *s;
- for (s=getprotoent(); s; s=getprotoent()) {
- if (proto==s->p_proto)
- return s;
- }
- return 0;
-}
-
-void endprotoent(void) {
- if (protomap!=(char*)-1) munmap(protomap,protolen);
- if (protofd!=-1) close(protofd);
- protomap=(char*)-1;
- protofd=-1;
-}
-
diff --git a/mdk-stage1/dietlibc/libugly/gmtime.c b/mdk-stage1/dietlibc/libugly/gmtime.c
deleted file mode 100644
index d33af7972..000000000
--- a/mdk-stage1/dietlibc/libugly/gmtime.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <time.h>
-
-struct tm* gmtime(const time_t *t) {
- static struct tm tmp;
- return gmtime_r(t,&tmp);
-}
diff --git a/mdk-stage1/dietlibc/libugly/gmtime_r.c b/mdk-stage1/dietlibc/libugly/gmtime_r.c
deleted file mode 100644
index c102d10fa..000000000
--- a/mdk-stage1/dietlibc/libugly/gmtime_r.c
+++ /dev/null
@@ -1,35 +0,0 @@
-#include <time.h>
-
-/* seconds per day */
-#define SPD 24*60*60
-
-extern unsigned int __spm[];
-
-struct tm *gmtime_r(const time_t *timep, struct tm *r) {
- time_t i;
- register time_t work=*timep%(SPD);
- r->tm_sec=work%60; work/=60;
- r->tm_min=work%60; r->tm_hour=work/60;
- work=*timep/(SPD);
- r->tm_wday=(4+work)%7;
- for (i=1970; ; ++i) {
- register time_t k=__isleap(i)?366:365;
- if (work>k)
- work-=k;
- else
- break;
- }
- r->tm_year=i-1900;
- r->tm_yday=work;
-
- r->tm_mday=1;
- if (__isleap(i) && (work>58)) {
- if (work==59) r->tm_mday=2; /* 29.2. */
- work-=1;
- }
-
- for (i=11; i && __spm[i]>work; --i) ;
- r->tm_mon=i;
- r->tm_mday+=work-__spm[i];
- return r;
-}
diff --git a/mdk-stage1/dietlibc/libugly/isleap.c b/mdk-stage1/dietlibc/libugly/isleap.c
deleted file mode 100644
index dcfa1ced6..000000000
--- a/mdk-stage1/dietlibc/libugly/isleap.c
+++ /dev/null
@@ -1,6 +0,0 @@
-int __isleap(int year) {
- /* every fourth year is a leap year except for century years that are
- * not divisible by 400. */
-/* return (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)); */
- return (!(year%4) && ((year%100) || !(year%400)));
-}
diff --git a/mdk-stage1/dietlibc/libugly/localtime.c b/mdk-stage1/dietlibc/libugly/localtime.c
deleted file mode 100644
index 6fa6acf8a..000000000
--- a/mdk-stage1/dietlibc/libugly/localtime.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <time.h>
-
-struct tm* localtime(const time_t* t) {
- static struct tm tmp;
- return localtime_r(t,&tmp);
-}
diff --git a/mdk-stage1/dietlibc/libugly/localtime_r.c b/mdk-stage1/dietlibc/libugly/localtime_r.c
deleted file mode 100644
index d4bc073ce..000000000
--- a/mdk-stage1/dietlibc/libugly/localtime_r.c
+++ /dev/null
@@ -1,21 +0,0 @@
-#include "dietfeatures.h"
-#include <time.h>
-#include <sys/time.h>
-
-#ifdef WANT_TZFILE_PARSER
-extern void __maplocaltime();
-extern time_t __tzfile_map(time_t t, int *isdst);
-#endif
-
-struct tm* localtime_r(const time_t* t, struct tm* r) {
- time_t tmp;
-#ifdef WANT_TZFILE_PARSER
- __maplocaltime();
- tmp=__tzfile_map(*t,&r->tm_isdst);
-#else
- struct timezone tz;
- gettimeofday(0, &tz);
- tmp=*t-tz.tz_minuteswest*60L;
-#endif
- return gmtime_r(&tmp,r);
-}
diff --git a/mdk-stage1/dietlibc/libugly/logging.c b/mdk-stage1/dietlibc/libugly/logging.c
deleted file mode 100644
index 69c2c2337..000000000
--- a/mdk-stage1/dietlibc/libugly/logging.c
+++ /dev/null
@@ -1,211 +0,0 @@
-#include "dietfeatures.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdarg.h>
-#include <errno.h>
-#include <unistd.h>
-#include <asm/socket.h>
-#include <fcntl.h>
-#include <syslog.h>
-#include <string.h>
-#include <time.h>
-#include <sys/socket.h>
-#include <signal.h>
-
-#define _PATH_CONSOLE "/dev/console"
-#define BUF_SIZE 512 /* messagebuffer size (>= 200) */
-
-#define MAX_LOGTAG 80
-
-/* those have to be global *sigh* */
-static volatile int connected = 0; /* have done connect */
-static volatile int LogMask = 0xff; /* mask of priorities to be logged */
-static char LogTag[MAX_LOGTAG]; /* string to tag the entry with */
-static int LogFile = -1; /* fd for log */
-static int LogType = SOCK_DGRAM; /* type of socket connection */
-static int LogFacility = LOG_USER; /* default facility code */
-static int LogStat; /* status bits, set by openlog() */
-extern char *__progname; /* Program name, from crt0. */
-static struct sockaddr SyslogAddr; /* AF_UNIX address of local logger */
-
-static void closelog_intern(void)
-{
- if (!connected) return;
- close(LogFile);
- LogFile = -1;
- connected = 0;
-}
-
-void closelog(void)
-{
- closelog_intern();
-
- LogTag[0]=0;
- LogType = SOCK_DGRAM;
-}
-
-static void openlog_intern(int option, int facility)
-{
- LogStat = option;
- if (facility && ((facility & ~LOG_FACMASK) == 0))
- LogFacility = facility;
-
- /* yep, there is a continue inside ;) */
- while(1) {
- if (LogFile == -1) {
- SyslogAddr.sa_family = AF_UNIX;
- strncpy(SyslogAddr.sa_data, _PATH_LOG, sizeof(SyslogAddr.sa_data));
- if (LogStat & LOG_NDELAY)
- {
- if ((LogFile = socket(AF_UNIX, LogType, 0)) == -1) return;
- fcntl(LogFile, F_SETFD, 1);
- }
- }
- if ((LogFile != -1) && !connected) {
-#ifdef WANT_THREAD_SAFE
- int old_errno = (*(__errno_location()));
-#else
- int old_errno=errno;
-#endif
- if(connect(LogFile, &SyslogAddr, sizeof(SyslogAddr)) == -1) {
-#ifdef WANT_THREAD_SAFE
- int saved_errno = (*(__errno_location()));
-#else
- int saved_errno=errno;
-#endif
- close(LogFile);
- LogFile = -1;
- if((LogType == SOCK_DGRAM) && (saved_errno == EPROTOTYPE)) {
- /* retry with SOCK_STREAM instead of SOCK_DGRAM */
- LogType = SOCK_STREAM;
-#ifdef WANT_THREAD_SAFE
- (*(__errno_location()))=old_errno;
-#else
- errno=old_errno;
-#endif
- continue;
- }
- }
- else connected = 1;
- }
- break;
- }
-}
-
-/* has to be secured against multiple, simultanious call's in threaded environment */
-void openlog(const char *ident, int option, int facility)
-{
- if (ident) {
- strncpy(LogTag,ident,MAX_LOGTAG);
- LogTag[MAX_LOGTAG-1]=0;
- }
- openlog_intern(option, facility);
-}
-
-int setlogmask(int mask)
-{
- int old = LogMask;
- if (mask) LogMask = mask;
- return old;
-}
-
-void vsyslog(int priority, const char *format, va_list arg_ptr)
-{
- char buffer[BUF_SIZE];
- char time_buf[20];
- int buflen, headerlen;
- time_t now;
- struct tm now_tm;
- pid_t pid;
- int fd;
- int sigpipe;
- struct sigaction action, oldaction;
- struct sigaction *oldaction_ptr = NULL;
-#ifdef WANT_THREAD_SAFE
- int saved_errno = (*(__errno_location()));
-#else
- int saved_errno = errno;
-#endif
-
- /* check for invalid priority/facility bits */
- if (priority & ~(LOG_PRIMASK|LOG_FACMASK)) {
- syslog(LOG_ERR|LOG_CONS|LOG_PERROR|LOG_PID, "syslog: unknown facility/priorityority: %x", priority);
- priority &= LOG_PRIMASK|LOG_FACMASK;
- }
-
- /* check priority against setlogmask */
- if ((LOG_MASK(LOG_PRI(priority)) && LogMask) == 0) return;
-
- /* Set default facility if none specified. */
- if ((priority & LOG_FACMASK) == 0) priority |= LogFacility;
-
- pid = getpid();
- time(&now);
- strftime(time_buf, 20, "%h %e %T", localtime_r (&now, &now_tm));
-
- if (LogStat & LOG_PID)
- headerlen = snprintf(buffer, 130, "<%d>%s %s[%d]: ", priority, time_buf, LogTag, pid);
- else
- headerlen = snprintf(buffer, 130, "<%d>%s %s: ", priority, time_buf, LogTag);
-
- if (!LogTag[0]) {
- if ((LogStat & LOG_PID) != LOG_PID)
- headerlen = snprintf(buffer, 130, "<%d>%s (unknown)[%d]: ", priority, time_buf, pid);
- strcat(buffer+headerlen, "syslog without openlog w/ ident, please check code!");
- buflen = 41;
- }
- else {
-#ifdef WANT_THREAD_SAFE
- (*(__errno_location()))=saved_errno;
-#else
- errno=saved_errno;
-#endif
- buflen = vsnprintf(buffer+headerlen, BUF_SIZE - headerlen, format, arg_ptr);
- }
- if (LogStat & LOG_PERROR) {
- write(1, buffer+headerlen, buflen);
- if (buffer[headerlen+buflen] != '\n') write(1,"\n", 1);
- }
-
- /* prepare for broken connection */
- memset(&action, 0, sizeof(action));
- action.sa_handler = SIG_IGN;
- sigemptyset(&action.sa_mask);
-
- if ((sigpipe = sigaction (SIGPIPE, &action, &oldaction))==0)
- oldaction_ptr = &oldaction;
-
- if (!connected) openlog_intern(LogStat | LOG_NDELAY, 0);
-
- /* If we have a SOCK_STREAM connection, also send ASCII NUL as a
- * record terminator. */
- if (LogType == SOCK_STREAM) buflen++;
-
- if (!connected || (send(LogFile, buffer, buflen+headerlen, 0) != buflen+headerlen)) {
- if (LogType == SOCK_STREAM) buflen--;
- closelog_intern();
- /*
- * Output the message to the console; don't worry about blocking,
- * if console blocks everything will. Make sure the error reported
- * is the one from the syslogd failure.
- */
- if ((LogStat & LOG_CONS) &&
- ((fd = open(_PATH_CONSOLE, O_WRONLY|O_NOCTTY, 0)) >= 0))
- {
- write(fd, buffer, buflen+headerlen);
- write(fd, "\r\n", 2);
- }
- }
-
- if (sigpipe == 0)
- sigaction(SIGPIPE, &oldaction, (struct sigaction *) NULL);
-}
-
-void syslog(int priority, const char *format, ...)
-{
- va_list arg_ptr;
- va_start(arg_ptr, format);
- vsyslog(priority, format, arg_ptr);
- va_end(arg_ptr);
-}
diff --git a/mdk-stage1/dietlibc/libugly/mktime.c b/mdk-stage1/dietlibc/libugly/mktime.c
deleted file mode 100644
index ee4dab6c1..000000000
--- a/mdk-stage1/dietlibc/libugly/mktime.c
+++ /dev/null
@@ -1,21 +0,0 @@
-#include <time.h>
-
-/* seconds per day */
-#define SPD 24*60*60
-
-extern unsigned int __spm[];
-
-time_t mktime(struct tm *t) {
- time_t x=0;
- unsigned int i;
- if (t->tm_year<70) return (time_t)(-1);
- for (i=70; i<t->tm_year; ++i) {
- x+=__isleap(i+1900)?366:365;
- }
- t->tm_yday=__spm[t->tm_mon] + t->tm_mday-1 + ((t->tm_mon>2) && __isleap(t->tm_year)?1:0);
- x+=t->tm_yday;
- /* x is now the number of days since Jan 1 1970 */
- t->tm_wday=(4+x)%7;
- x = x*SPD + t->tm_hour*60*60 + t->tm_min*60 + t->tm_sec;
- return x;
-}
diff --git a/mdk-stage1/dietlibc/libugly/pclose.c b/mdk-stage1/dietlibc/libugly/pclose.c
deleted file mode 100644
index e33076c19..000000000
--- a/mdk-stage1/dietlibc/libugly/pclose.c
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <sys/types.h>
-#include <sys/wait.h>
-#include "dietstdio.h"
-
-int pclose(FILE *f) {
- int status;
- fclose(f);
- if (waitpid(f->popen_kludge,&status,0)>=0)
- return status;
- return -1;
-}
diff --git a/mdk-stage1/dietlibc/libugly/popen.c b/mdk-stage1/dietlibc/libugly/popen.c
deleted file mode 100644
index e0e441495..000000000
--- a/mdk-stage1/dietlibc/libugly/popen.c
+++ /dev/null
@@ -1,32 +0,0 @@
-#include "dietstdio.h"
-#include <unistd.h>
-
-extern char **environ;
-
-FILE *popen(const char *command, const char *type) {
- int pfd[2];
- int fd0;
- pid_t pid;
- if (pipe(pfd)<0) return 0;
- fd0=(*type=='r');
- if ((pid=vfork())<0) {
- close(pfd[0]);
- close(pfd[1]);
- return 0;
- }
- if (!pid) { /* child */
- char *argv[]={"sh","-c",0,0};
- close(pfd[!fd0]); close(fd0);
- dup2(pfd[fd0],fd0); close(pfd[fd0]);
- argv[2]=(char*)command;
- execve("/bin/sh",argv,environ);
- _exit(255);
- }
- close(pfd[fd0]);
- {
- register FILE* f;
- if ((f=fdopen(pfd[!fd0],type)))
- f->popen_kludge=pid;
- return f;
- }
-}
diff --git a/mdk-stage1/dietlibc/libugly/prioritynames.c b/mdk-stage1/dietlibc/libugly/prioritynames.c
deleted file mode 100644
index 87a99b76d..000000000
--- a/mdk-stage1/dietlibc/libugly/prioritynames.c
+++ /dev/null
@@ -1,22 +0,0 @@
-#include <sys/syslog.h>
-
-#ifndef INTERNAL_NOPRI
-#define INTERNAL_NOPRI 0x10
-#endif
-
-CODE prioritynames[] =
- {
- { "alert", LOG_ALERT },
- { "crit", LOG_CRIT },
- { "debug", LOG_DEBUG },
- { "emerg", LOG_EMERG },
- { "err", LOG_ERR },
- { "error", LOG_ERR }, /* DEPRECATED */
- { "info", LOG_INFO },
- { "none", INTERNAL_NOPRI }, /* INTERNAL */
- { "notice", LOG_NOTICE },
- { "panic", LOG_EMERG }, /* DEPRECATED */
- { "warn", LOG_WARNING }, /* DEPRECATED */
- { "warning", LOG_WARNING },
- { 0, -1 }
- };
diff --git a/mdk-stage1/dietlibc/libugly/setenv.c b/mdk-stage1/dietlibc/libugly/setenv.c
deleted file mode 100644
index bf47cdb79..000000000
--- a/mdk-stage1/dietlibc/libugly/setenv.c
+++ /dev/null
@@ -1,17 +0,0 @@
-#include <string.h>
-#include <stdlib.h>
-
-#include <dietwarning.h>
-link_warning("setenv","setenv calls malloc. Avoid it in small programs.");
-
-int setenv(const char *name, const char *value, int overwrite) {
- char *c=malloc(strlen(name)+strlen(value)+3);
- if (getenv(name)) {
- if (!overwrite) return 0;
- unsetenv(name);
- }
- strcpy(c,name);
- strcat(c,"=");
- strcat(c,value);
- return putenv(c);
-}
diff --git a/mdk-stage1/dietlibc/libugly/setmntent.c b/mdk-stage1/dietlibc/libugly/setmntent.c
deleted file mode 100644
index a91d3902b..000000000
--- a/mdk-stage1/dietlibc/libugly/setmntent.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <stdio.h>
-#include <mntent.h>
-
-FILE *setmntent(const char *filename, const char *type) {
- return fopen(filename,type);
-}
-
diff --git a/mdk-stage1/dietlibc/libugly/strftime.c b/mdk-stage1/dietlibc/libugly/strftime.c
deleted file mode 100644
index b7e750ab1..000000000
--- a/mdk-stage1/dietlibc/libugly/strftime.c
+++ /dev/null
@@ -1,182 +0,0 @@
-#include <sys/types.h>
-#include <time.h>
-
-static char *sweekdays[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
-static char *weekdays[]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
-static char *smonths[]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
-static char *months[]={"January","February","March","April","May","June","July","August","September","October","November","December"};
-static char *ampm[]={"am","pm","AM","PM"};
-
-static int i2a(char* dest,unsigned int x) {
- register unsigned int tmp=x;
- register int len=0;
- *dest++=tmp/10+'0'; tmp=tmp%10; ++len;
- *dest++=tmp+'0';
- return 2;
-}
-
-static int i2as(char* dest,unsigned int x) {
- int len=i2a(dest,x);
- if (*dest=='0') *dest=' ';
- return len;
-}
-
-size_t strftime(char *s, size_t max, const char *format, const struct tm *tm) {
- char *t=s;
- const char *src;
- char buf[5];
- while (*format) {
- switch (*format) {
- case 0: break;
- case '%':
- switch (*++format) {
- case '%': *t='%'; ++t; break;
- case 'a': src=sweekdays[tm->tm_wday]; goto append;
- case 'A': src=weekdays[tm->tm_wday]; goto append;
- case 'h':
- case 'b': src=smonths[tm->tm_mon]; goto append;
- case 'B': src=months[tm->tm_mon]; goto append;
- case 'c': t+=strftime(t,max-(t-s),"%b %a %d %k:%M:%S %Z %Y",tm); break;
- case 'C': buf[i2a(buf,(tm->tm_year+1900)/100)]=0; src=buf; goto append;
- case 'd': buf[i2a(buf,tm->tm_mday)]=0; src=buf; goto append;
- case 'e': buf[i2as(buf,tm->tm_mday)]=0; src=buf; goto append;
- case 'H': buf[i2a(buf,tm->tm_hour)]=0; src=buf; goto append;
- case 'I': buf[i2a(buf,tm->tm_hour%12)]=0; src=buf; goto append;
- case 'j': buf[i2a(buf,tm->tm_yday)]=0; src=buf; goto append;
- case 'k': buf[i2as(buf,tm->tm_hour)]=0; src=buf; goto append;
- case 'l': buf[i2as(buf,tm->tm_hour%12)]=0; src=buf; goto append;
- case 'm': buf[i2a(buf,tm->tm_mon+1)]=0; src=buf; goto append;
- case 'M': buf[i2a(buf,tm->tm_min)]=0; src=buf; goto append;
- case 'n': *t='\n'; break;
- case 'p': src=ampm[tm->tm_hour>11?3:2]; goto append;
- case 'P': src=ampm[tm->tm_hour>11?1:0]; goto append;
- case 'r': t+=strftime(t,max-(t-s),"%I:%M:%S %p",tm); break;
- case 'R': t+=strftime(t,max-(t-s),"%H:%M",tm); break;
- case 'S': buf[i2a(buf,tm->tm_sec)]=0; src=buf; goto append;
- case 't': *t='\t'; break;
- case 'T': t+=strftime(t,max-(t-s),"%H:%M:%S",tm); break;
- case 'u': buf[i2a(buf,tm->tm_wday?tm->tm_wday:7)]=0; src=buf; goto append;
- case 'w': buf[i2a(buf,tm->tm_wday)]=0; src=buf; goto append;
- case 'x': t+=strftime(t,max-(t-s),"%b %a %d",tm); break;
- case 'X': t+=strftime(t,max-(t-s),"%k:%M:%S",tm); break;
- case 'y': buf[i2a(buf,tm->tm_year%100)]=0; src=buf; goto append;
- case 'Y': i2a(buf,(tm->tm_year+1900)/100); buf[i2a(buf+2,(tm->tm_year%100))+2]=0; src=buf; goto append;
- case 'Z': src="GMT"; goto append; /* hehe */
-append:
- while (*src && t<s+max) { *t=*src; ++t; ++src; }
- };
- break;
- default:
- *t=*format; ++t;
- }
- ++format;
- if (t>=s+max) break;
- continue;
- }
- *t=0; return t-s;
-}
-
-
-
-/*
- %u The day of the week as a decimal, range 1 to 7,
- Monday being 1. See also %w. (SU)
-
- %U The week number of the current year as a decimal
- number, range 00 to 53, starting with the first
- Sunday as the first day of week 01. See also %V and
- %W.
-
- %V The ISO 8601:1988 week number of the current year
- as a decimal number, range 01 to 53, where week 1
- is the first week that has at least 4 days in the
- current year, and with Monday as the first day of
- the week. See also %U and %W. (SU)
-
- %w The day of the week as a decimal, range 0 to 6,
- Sunday being 0. See also %u.
-
- %W The week number of the current year as a decimal
- number, range 00 to 53, starting with the first
- Monday as the first day of week 01.
-
- %x The preferred date representation for the current
- locale without the time.
-
- %X The preferred time representation for the current
- locale without the date.
-
- %y The year as a decimal number without a century
- (range 00 to 99).
-
- %Y The year as a decimal number including the century.
-
- %z The time-zone as hour offset from GMT. Required to
- emit RFC822-conformant dates (using "%a, %d %b %Y
- %H:%M:%S %z"). (GNU)
-
- %Z The time zone or name or abbreviation.
-
- %+ The date and time in date(1) format. (TZ)
-
- %% A literal `%' character.
-
- Some conversion specifiers can be modified by preceding
- them by the E or O modifier to indicate that an alterna­
- tive format should be used. If the alternative format or
- specification does not exist for the current locale, the
- behaviour will be as if the unmodified conversion specifi­
- cation were used. (SU) The Single Unix Specification men­
- tions %Ec, %EC, %Ex, %EX, %Ry, %EY, %Od, %Oe, %OH, %OI,
- %Om, %OM, %OS, %Ou, %OU, %OV, %Ow, %OW, %Oy, where the
- effect of the O modifier is to use alternative numeric
- symbols (say, roman numerals), and that of the E modifier
-
-
-
-GNU 29 March 1999 3
-
-
-
-
-
-STRFTIME(3) Linux Programmer's Manual STRFTIME(3)
-
-
- is to use a locale-dependent alternative representation.
-
- The broken-down time structure tm is defined in <time.h>.
- See also ctime(3).
-
-
-RETURN VALUE
- The strftime() function returns the number of characters
- placed in the array s, not including the terminating NUL
- character, provided the string, including the terminating
- NUL, fits. Otherwise, it returns 0, and the contents of
- the array is undefined. (Thus at least since libc 4.4.4;
- very old versions of libc, such as libc 4.4.1, would
- return max if the array was too small.)
-
- Note that the return value 0 does not necessarily indicate
- an error; for example, in many locales %p yields an empty
- string.
-
-ENVIRONMENT
- The environment variables TZ and LC_TIME are used.
-
-CONFORMING TO
- ANSI C, SVID 3, ISO 9899. There are strict inclusions
- between the set of conversions given in ANSI C (unmarked),
- those given in the Single Unix Specification (marked SU),
- those given in Olson's timezone package (marked TZ), and
- those given in glibc (marked GNU), except that %+ is not
- supported in glibc2. On the other hand glibc2 has several
- more extensions. POSIX.1 only refers to ANSI C; POSIX.2
- describes under date(1) several extensions that could
- apply to strftime as well.
-
-SEE ALSO
- date(1), time(2), ctime(3), setlocale(3), sprintf(3)
-
-*/
diff --git a/mdk-stage1/dietlibc/libugly/strsignal.c b/mdk-stage1/dietlibc/libugly/strsignal.c
deleted file mode 100644
index 54314d2c7..000000000
--- a/mdk-stage1/dietlibc/libugly/strsignal.c
+++ /dev/null
@@ -1,92 +0,0 @@
-#include <signal.h>
-/* F....ng Kernel haeder is damn broken... */
-#ifndef _NSIG
-#define _NSIG 64
-#endif
-#include <asm/signal.h>
-
-char * strsignal(int sig) {
- if (sig==SIGHUP)
- return "Hangup";
- else if (sig==SIGINT)
- return "Interrupt";
- else if (sig==SIGQUIT)
- return "Quit";
- else if (sig==SIGILL)
- return "Illegal instruction";
- else if (sig==SIGTRAP)
- return "Trace/breakpoint trap";
- else if (sig==SIGABRT)
- return "Aborted";
- else if (sig==SIGFPE)
- return "Floating point exception";
- else if (sig==SIGKILL)
- return "Killed";
- else if (sig==SIGBUS)
- return "Bus error";
- else if (sig==SIGSEGV)
- return "Segmentation fault";
- else if (sig==SIGPIPE)
- return "Broken pipe";
- else if (sig==SIGALRM)
- return "Alarm clock";
- else if (sig==SIGTERM)
- return "Terminated";
- else if (sig==SIGURG)
- return "Urgent I/O condition";
- else if (sig==SIGSTOP)
- return "Stopped (signal)";
- else if (sig==SIGTSTP)
- return "Stopped";
- else if (sig==SIGCONT)
- return "Continue";
- else if (sig==SIGCHLD)
- return "Child exited";
- else if (sig==SIGTTIN)
- return "Stopped (tty input)";
- else if (sig==SIGTTOU)
- return "Stopped (tty output)";
- else if (sig==SIGIO)
- return "I/O possible";
- else if (sig==SIGXCPU)
- return "CPU time limit exceeded";
- else if (sig==SIGXFSZ)
- return "File size limit exceeded";
- else if (sig==SIGVTALRM)
- return "Virtual timer expired";
- else if (sig==SIGPROF)
- return "Profiling timer expired";
- else if (sig==SIGWINCH)
- return "Window changed";
- else if (sig==SIGUSR1)
- return "User defined signal 1";
- else if (sig==SIGUSR2)
- return "User defined signal 1";
-#ifdef SIGEMT
- else if (sig==SIGEMT)
- return "EMT trap";
-#endif
-#ifdef SIGSYS
- else if (sig==SIGSYS)
- return "Bad system call";
-#endif
-#ifdef SIGSTKFLT
- else if (sig==SIGSTKFLT)
- return "Stack fault";
-#endif
-#ifdef SIGINFO
- else if (sig==SIGINFO)
- return "Information request";
-#elif defined(SIGPWR) && (!defined(SIGLOST) || (SIGPWR!=SIGLOST))
- else if (sig==SIGPWR)
- return "Power falure";
-#endif
-#ifdef SIGLOST
- else if (sig==SIGLOST)
- return "Resource lost";
-#endif
- else if ((sig>=SIGRTMIN)&&(sig<=SIGRTMAX))
- return "Real time signal";
- else
- return "(unknown signal)";
-}
diff --git a/mdk-stage1/dietlibc/libugly/system.c b/mdk-stage1/dietlibc/libugly/system.c
deleted file mode 100644
index b9eea20eb..000000000
--- a/mdk-stage1/dietlibc/libugly/system.c
+++ /dev/null
@@ -1,69 +0,0 @@
-#include <signal.h>
-#include <asm/errno.h>
-#include <errno.h>
-#include <unistd.h>
-#include "dietwarning.h"
-
-#define SHELL_PATH "/bin/sh" /* Path of the shell. */
-#define SHELL_NAME "sh" /* Name to give it. */
-
-extern char **environ;
-
-int __libc_fork();
-int __libc_waitpid(int pid, int *status, int options);
-int execve(const char*filename, char *const argv[], char *const envp[]);
-void __set_errno(int errno);
-int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);
-
-int __libc_system (const char *line)
-{
- struct sigaction sa, intr, quit;
- int save,pid,ret=-1;
-
- if (line == 0) return __libc_system("exit 0") == 0;
-
- sa.sa_handler = SIG_IGN;
- sa.sa_flags = 0;
- sigemptyset (&sa.sa_mask);
-
- if (sigaction(SIGINT, &sa, &intr)<0) return -1;
- if (sigaction(SIGQUIT, &sa, &quit)<0) {
- save = errno;
- sigaction (SIGINT, &intr, (struct sigaction*)0);
- __set_errno (save);
- return -1;
- }
-
- pid=__libc_fork();
- if (pid>0)
- { /* parent */
- int n;
- do
- n=__libc_waitpid(pid, &ret, 0);
- while ((n==-1) && (errno==EINTR));
- if (n!=pid) ret=-1;
- }
- else if (!pid)
- { /* child */
- const char *nargs[4];
- nargs[0] = SHELL_NAME;
- nargs[1] = "-c";
- nargs[2] = line;
- nargs[3] = 0;
-
- sigaction(SIGINT, &intr, (struct sigaction*)0);
- sigaction(SIGQUIT, &quit, (struct sigaction*)0);
-
- execve(SHELL_PATH,(char *const *)nargs, environ);
- _exit(127);
- }
- save = errno;
- sigaction (SIGINT, &intr, (struct sigaction *)0);
- sigaction (SIGQUIT, &quit, (struct sigaction *)0);
- __set_errno(save);
- return ret;
-}
-
-int system (const char *line) __attribute__((weak,alias("__libc_system")));
-
-link_warning("system","warning: system() is a security risk. Use fork and execvp instead!")
diff --git a/mdk-stage1/dietlibc/libugly/time_table_spd.c b/mdk-stage1/dietlibc/libugly/time_table_spd.c
deleted file mode 100644
index bfe1cf86d..000000000
--- a/mdk-stage1/dietlibc/libugly/time_table_spd.c
+++ /dev/null
@@ -1,17 +0,0 @@
-
-/* seconds per month -- nonleap! */
-const unsigned int __spm[12] =
- { 0,
- (31),
- (31+28),
- (31+28+31),
- (31+28+31+30),
- (31+28+31+30+31),
- (31+28+31+30+31+30),
- (31+28+31+30+31+30+31),
- (31+28+31+30+31+30+31+31),
- (31+28+31+30+31+30+31+31+30),
- (31+28+31+30+31+30+31+31+30+31),
- (31+28+31+30+31+30+31+31+30+31+30),
- };
-
diff --git a/mdk-stage1/dietlibc/libugly/tzfile.c b/mdk-stage1/dietlibc/libugly/tzfile.c
deleted file mode 100644
index 5702d4bea..000000000
--- a/mdk-stage1/dietlibc/libugly/tzfile.c
+++ /dev/null
@@ -1,86 +0,0 @@
-#include "dietfeatures.h"
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/mman.h>
-#include <netinet/in.h>
-
-#include <stdio.h>
-
-#ifdef WANT_TZFILE_PARSER
-static char *tzfile=0;
-static int tzlen=-1;
-
-void __maplocaltime() {
- int fd;
- unsigned int len;
- if (tzlen>=0) return;
- tzlen=0;
- if ((fd=open("/etc/localtime",O_RDONLY))<0) return;
- len=lseek(fd,0,SEEK_END);
- if ((tzfile=mmap(0,len,PROT_READ,MAP_SHARED,fd,0))==MAP_FAILED) return;
- close(fd);
- if (ntohl(*(int*)tzfile) != 0x545a6966) return;
- tzlen=len;
-}
-
-char *tzset(void) __attribute__((weak,alias("__maplocaltime")));
-
-static unsigned long __myntohl(const unsigned char* c) {
- return (((unsigned long)c[0])<<24) +
- (((unsigned long)c[1])<<16) +
- (((unsigned long)c[2])<<8) +
- ((unsigned long)c[3]);
-}
-
-time_t __tzfile_map(time_t t, int *isdst) {
- /* "TZif" plus 16 reserved bytes. */
- char *tmp;
- int i;
- int tzh_ttisgmtcnt, tzh_ttisstdcnt, tzh_leapcnt, tzh_timecnt, tzh_typecnt, tzh_charcnt;
- *isdst=0;
- if (!tzfile) return t;
- tzh_ttisgmtcnt=ntohl(*(int*)(tzfile+20));
- tzh_ttisstdcnt=ntohl(*(int*)(tzfile+24));
- tzh_leapcnt=ntohl(*(int*)(tzfile+28));
- tzh_timecnt=ntohl(*(int*)(tzfile+32));
- tzh_typecnt=ntohl(*(int*)(tzfile+36));
- tzh_charcnt=ntohl(*(int*)(tzfile+40));
-
-#if 0
- tmp=tzfile+20+6*4;
- printf("ttisgmtcnt %d ttisstdcnt %d leapcnt %d timecnt %d typecnt %d charcnt %d\n",tzh_ttisgmtcnt,tzh_ttisstdcnt, tzh_leapcnt, tzh_timecnt, tzh_typecnt, tzh_charcnt);
- printf("transition times: ");
- for (i=0; i<tzh_timecnt; ++i) {
- printf("%s%lu",i?", ":"",ntohl(*(int*)tmp)); tmp+=4;
- }
- printf("\n");
- printf("indices: ");
- for (i=0; i<tzh_timecnt; ++i) {
- printf("%s%d",i?", ":"",*tmp); ++tmp;
- }
- printf("\n");
- printf("transition times: ");
- for (i=0; i<tzh_typecnt; ++i) {
- printf("%s(%lu,%d,%d)",i?", ":"",ntohl(*(int*)tmp),tmp[4],tmp[5]); tmp+=6;
- }
- printf("\n");
-#endif
-
- tmp=tzfile+20+6*4;
- for (i=0; i<tzh_timecnt; ++i)
- if ((time_t)__myntohl(tmp+i*4) >= t) {
-/* printf("match at %d\n",i); */
- tmp+=tzh_timecnt*4;
- i=tmp[i-1];
-/* printf("using index %d\n",i); */
- tmp+=tzh_timecnt;
- tmp+=i*6;
-/* printf("(%lu,%d,%d)\n",ntohl(*(int*)tmp),tmp[4],tmp[5]); */
- *isdst=tmp[4];
- return t+__myntohl(tmp);
- }
- return t;
-}
-#else
-void tzset(void) __attribute__((weak,alias("return0")));
-#endif
diff --git a/mdk-stage1/dietlibc/libugly/unsetenv.c b/mdk-stage1/dietlibc/libugly/unsetenv.c
deleted file mode 100644
index 46e880271..000000000
--- a/mdk-stage1/dietlibc/libugly/unsetenv.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <stdlib.h>
-
-void unsetenv(const char *name) {
- putenv(name);
-}
-
diff --git a/mdk-stage1/dietlibc/ppc/Makefile.add b/mdk-stage1/dietlibc/ppc/Makefile.add
deleted file mode 100644
index 641cf1ade..000000000
--- a/mdk-stage1/dietlibc/ppc/Makefile.add
+++ /dev/null
@@ -1,3 +0,0 @@
-
-CFLAGS+=-mpowerpc-gpopt -mpowerpc-gfxopt -Os
-VPATH:=ppc:syscalls.s:$(VPATH)
diff --git a/mdk-stage1/dietlibc/ppc/__longjmp.S b/mdk-stage1/dietlibc/ppc/__longjmp.S
deleted file mode 100644
index 8113eeeea..000000000
--- a/mdk-stage1/dietlibc/ppc/__longjmp.S
+++ /dev/null
@@ -1,59 +0,0 @@
-#include <setjmp.h>
-
-
-#ifdef PIC
-#define JUMPTARGET(name) name##@plt
-#else
-#define JUMPTARGET(name) name
-#endif
-
-.global __longjmp
-.type __longjmp,@function
-.align 2
-__longjmp:
- lwz 1,(JB_GPR1*4)(3)
- lwz 2,(JB_GPR2*4)(3)
- lwz 0,(JB_LR*4)(3)
- lwz 14,((JB_GPRS+0)*4)(3)
- lfd 14,((JB_FPRS+0*2)*4)(3)
- lwz 15,((JB_GPRS+1)*4)(3)
- lfd 15,((JB_FPRS+1*2)*4)(3)
- lwz 16,((JB_GPRS+2)*4)(3)
- lfd 16,((JB_FPRS+2*2)*4)(3)
- lwz 17,((JB_GPRS+3)*4)(3)
- lfd 17,((JB_FPRS+3*2)*4)(3)
- lwz 18,((JB_GPRS+4)*4)(3)
- lfd 18,((JB_FPRS+4*2)*4)(3)
- lwz 19,((JB_GPRS+5)*4)(3)
- lfd 19,((JB_FPRS+5*2)*4)(3)
- lwz 20,((JB_GPRS+6)*4)(3)
- lfd 20,((JB_FPRS+6*2)*4)(3)
- mtlr 0
- lwz 21,((JB_GPRS+7)*4)(3)
- lfd 21,((JB_FPRS+7*2)*4)(3)
- lwz 22,((JB_GPRS+8)*4)(3)
- lfd 22,((JB_FPRS+8*2)*4)(3)
- lwz 0,(JB_CR*4)(3)
- lwz 23,((JB_GPRS+9)*4)(3)
- lfd 23,((JB_FPRS+9*2)*4)(3)
- lwz 24,((JB_GPRS+10)*4)(3)
- lfd 24,((JB_FPRS+10*2)*4)(3)
- lwz 25,((JB_GPRS+11)*4)(3)
- lfd 25,((JB_FPRS+11*2)*4)(3)
- mtcrf 0xFF,0
- lwz 26,((JB_GPRS+12)*4)(3)
- lfd 26,((JB_FPRS+12*2)*4)(3)
- lwz 27,((JB_GPRS+13)*4)(3)
- lfd 27,((JB_FPRS+13*2)*4)(3)
- lwz 28,((JB_GPRS+14)*4)(3)
- lfd 28,((JB_FPRS+14*2)*4)(3)
- lwz 29,((JB_GPRS+15)*4)(3)
- lfd 29,((JB_FPRS+15*2)*4)(3)
- lwz 30,((JB_GPRS+16)*4)(3)
- lfd 30,((JB_FPRS+16*2)*4)(3)
- lwz 31,((JB_GPRS+17)*4)(3)
- lfd 31,((JB_FPRS+17*2)*4)(3)
- mr 3,4
- blr
-.size __longjmp,.-__longjmp
-
diff --git a/mdk-stage1/dietlibc/ppc/__testandset.S b/mdk-stage1/dietlibc/ppc/__testandset.S
deleted file mode 100644
index a6063fbb2..000000000
--- a/mdk-stage1/dietlibc/ppc/__testandset.S
+++ /dev/null
@@ -1,11 +0,0 @@
-.global __testandset
-.type __testandset,@function
-.align 2
-__testandset:
- lwarx 5,0,3
- add 0,4,5
- stwcx 0,0,3
- bne __testandset
- blr
-.size __testandset,.-__testandset
-
diff --git a/mdk-stage1/dietlibc/ppc/mmap.c b/mdk-stage1/dietlibc/ppc/mmap.c
deleted file mode 100644
index 25d2926b2..000000000
--- a/mdk-stage1/dietlibc/ppc/mmap.c
+++ /dev/null
@@ -1,37 +0,0 @@
-#include <linux/types.h>
-#include <linux/unistd.h>
-
-int mmap(void*start,size_t length,int prot,int flags,int fd,off_t offset) {
- unsigned long __sc_ret, __sc_err;
- {
- register unsigned long __sc_0 __asm__ ("r0");
- register unsigned long __sc_3 __asm__ ("r3");
- register unsigned long __sc_4 __asm__ ("r4");
- register unsigned long __sc_5 __asm__ ("r5");
- register unsigned long __sc_6 __asm__ ("r6");
- register unsigned long __sc_7 __asm__ ("r7");
- register unsigned long __sc_8 __asm__ ("r8");
-
- __sc_3 = (unsigned long) (start);
- __sc_4 = (unsigned long) (length);
- __sc_5 = (unsigned long) (prot);
- __sc_6 = (unsigned long) (flags);
- __sc_7 = (unsigned long) (fd);
- __sc_8 = (unsigned long) (offset);
- __sc_0 = __NR_mmap;
- __asm__ __volatile__
- ("sc \n\t"
- "mfcr %1 "
- : "=&r" (__sc_3), "=&r" (__sc_0)
- : "0" (__sc_3), "1" (__sc_0),
- "r" (__sc_4),
- "r" (__sc_5),
- "r" (__sc_6),
- "r" (__sc_7),
- "r" (__sc_8)
- : __syscall_clobbers);
- __sc_ret = __sc_3;
- __sc_err = __sc_0;
- }
- __syscall_return (int);
-}
diff --git a/mdk-stage1/dietlibc/ppc/setjmp.S b/mdk-stage1/dietlibc/ppc/setjmp.S
deleted file mode 100644
index 50fa2bdd4..000000000
--- a/mdk-stage1/dietlibc/ppc/setjmp.S
+++ /dev/null
@@ -1,56 +0,0 @@
-#include <setjmp.h>
-
-#ifdef PIC
-#define JUMPTARGET(name) name##@plt
-#else
-#define JUMPTARGET(name) name
-#endif
-
-.global __sigsetjmp
-.type __sigsetjmp,@function
-.align 2
-__sigsetjmp:
- stw 1,(JB_GPR1*4)(3)
- mflr 0
- stw 2,(JB_GPR2*4)(3)
- stw 14,((JB_GPRS+0)*4)(3)
- stfd 14,((JB_FPRS+0*2)*4)(3)
- stw 0,(JB_LR*4)(3)
- stw 15,((JB_GPRS+1)*4)(3)
- stfd 15,((JB_FPRS+1*2)*4)(3)
- mfcr 0
- stw 16,((JB_GPRS+2)*4)(3)
- stfd 16,((JB_FPRS+2*2)*4)(3)
- stw 0,(JB_CR*4)(3)
- stw 17,((JB_GPRS+3)*4)(3)
- stfd 17,((JB_FPRS+3*2)*4)(3)
- stw 18,((JB_GPRS+4)*4)(3)
- stfd 18,((JB_FPRS+4*2)*4)(3)
- stw 19,((JB_GPRS+5)*4)(3)
- stfd 19,((JB_FPRS+5*2)*4)(3)
- stw 20,((JB_GPRS+6)*4)(3)
- stfd 20,((JB_FPRS+6*2)*4)(3)
- stw 21,((JB_GPRS+7)*4)(3)
- stfd 21,((JB_FPRS+7*2)*4)(3)
- stw 22,((JB_GPRS+8)*4)(3)
- stfd 22,((JB_FPRS+8*2)*4)(3)
- stw 23,((JB_GPRS+9)*4)(3)
- stfd 23,((JB_FPRS+9*2)*4)(3)
- stw 24,((JB_GPRS+10)*4)(3)
- stfd 24,((JB_FPRS+10*2)*4)(3)
- stw 25,((JB_GPRS+11)*4)(3)
- stfd 25,((JB_FPRS+11*2)*4)(3)
- stw 26,((JB_GPRS+12)*4)(3)
- stfd 26,((JB_FPRS+12*2)*4)(3)
- stw 27,((JB_GPRS+13)*4)(3)
- stfd 27,((JB_FPRS+13*2)*4)(3)
- stw 28,((JB_GPRS+14)*4)(3)
- stfd 28,((JB_FPRS+14*2)*4)(3)
- stw 29,((JB_GPRS+15)*4)(3)
- stfd 29,((JB_FPRS+15*2)*4)(3)
- stw 30,((JB_GPRS+16)*4)(3)
- stfd 30,((JB_FPRS+16*2)*4)(3)
- stw 31,((JB_GPRS+17)*4)(3)
- stfd 31,((JB_FPRS+17*2)*4)(3)
- b JUMPTARGET (__sigjmp_save)
-.size __sigsetjmp,.-__sigsetjmp
diff --git a/mdk-stage1/dietlibc/ppc/start.S b/mdk-stage1/dietlibc/ppc/start.S
deleted file mode 100644
index c7afeecd2..000000000
--- a/mdk-stage1/dietlibc/ppc/start.S
+++ /dev/null
@@ -1,44 +0,0 @@
-#include "start.h"
-
-#ifdef __powerpc__
-
-.text
-.global _start
-.type _start,@function
-_start:
- /* Save the stack pointer, in case we're statically linked under Linux. */
- mr 9,1
- /* Set up an initial stack frame, and clear the LR. */
- clrrwi 1,1,4
- li 0,0
- stwu 1,-16(1)
- mtlr 0
- stw 0,0(1)
-
- /* r9 enthält den initialen Stackpointer.
- argc = (r9)
- argv = (r9+4)
- envp = argv+(argc+1)*4 */
-
- lwzu 3,0(9) /* argc */
- addi 4,9,4 /* argv */
- add 5,0,3 /* argc... */
- addi 5,5,1 /* argc+1...*/
- slwi 5,5,2 /* (argc+1)*4 */
- add 5,5,4 /* argv+(argc+1)*4 */
-
- lis 6,environ@ha
- stw 5,environ@l(6)
-
- bl main
- b exit
-.size _start,.-_start
-
-
-/* Define a symbol for the first piece of initialized data. */
- .section ".data"
-__data_start:
-
-
-#endif
-
diff --git a/mdk-stage1/dietlibc/ppc/unified.S b/mdk-stage1/dietlibc/ppc/unified.S
deleted file mode 100644
index d2b419f0b..000000000
--- a/mdk-stage1/dietlibc/ppc/unified.S
+++ /dev/null
@@ -1,21 +0,0 @@
-#include <dietfeatures.h>
-
-.text
-.global __unified_syscall
-__unified_syscall:
- sc
- mfcr 0
- andis. 9,0,4096
- mr 0,3
- beq .L1
-#ifdef WANT_THREAD_SAVE
- bl __set_errno
-#else
- lis 9,errno@ha
- stw 3,errno@l(9)
-#endif
- li 0,-1
-.L1:
- mr 3,0
- blr
-
diff --git a/mdk-stage1/dietlibc/sparc/Makefile.add b/mdk-stage1/dietlibc/sparc/Makefile.add
deleted file mode 100644
index 0de05b1db..000000000
--- a/mdk-stage1/dietlibc/sparc/Makefile.add
+++ /dev/null
@@ -1,3 +0,0 @@
-
-CFLAGS+=-mcpu=supersparc -Os
-VPATH:=sparc:syscalls.s:$(VPATH)
diff --git a/mdk-stage1/dietlibc/sparc/__longjmp.S b/mdk-stage1/dietlibc/sparc/__longjmp.S
deleted file mode 100644
index 72e001a2f..000000000
--- a/mdk-stage1/dietlibc/sparc/__longjmp.S
+++ /dev/null
@@ -1,67 +0,0 @@
-#include <setjmp.h>
-
-#define JB_SP 0
-#define JB_FP 1
-#define JB_PC 2
-
-#define ENV(base,reg) [%base + (reg * 4)]
-#define ST_FLUSH_WINDOWS 3
-#define RW_FP [%fp + 0x48]
-
-.text
-.global __longjmp
-__longjmp:
- /* Store our arguments in global registers so we can still
- use them while unwinding frames and their register windows. */
-
- ld ENV(o0,JB_FP), %g3 /* Cache target FP in register %g3. */
- mov %o0, %g1 /* ENV in %g1 */
- orcc %o1, %g0, %g2 /* VAL in %g2 */
- be,a 0f /* Branch if zero; else skip delay slot. */
- mov 1, %g2 /* Delay slot only hit if zero: VAL = 1. */
-0:
- xor %fp, %g3, %o0
- add %fp, 512, %o1
- andncc %o0, 4095, %o0
- bne .Lthread
- cmp %o1, %g3
- bl .Lthread
-
- /* Now we will loop, unwinding the register windows up the stack
- until the restored %fp value matches the target value in %g3. */
-
-.Lloop:
- cmp %fp, %g3 /* Have we reached the target frame? */
- bl,a .Lloop /* Loop while current fp is below target. */
- restore /* Unwind register window in delay slot. */
- be,a .Lfound /* Better have hit it exactly. */
- ld ENV(g1,JB_SP), %o0 /* Delay slot: extract target SP. */
-
-.Lthread:
- /*
- * Do a "flush register windows trap". The trap handler in the
- * kernel writes all the register windows to their stack slots, and
- * marks them all as invalid (needing to be sucked up from the
- * stack when used). This ensures that all information needed to
- * unwind to these callers is in memory, not in the register
- * windows.
- */
- ta ST_FLUSH_WINDOWS
- ld ENV(g1,JB_PC), %o7 /* Set return PC. */
- ld ENV(g1,JB_SP), %fp /* Set saved SP on restore below. */
- sub %fp, 64, %sp /* Allocate a register frame. */
- st %g3, RW_FP /* Set saved FP on restore below. */
- retl
- restore %g2, 0, %o0 /* Restore values from above register frame. */
-
-.Lfound:
- /* We have unwound register windows so %fp matches the target. */
- mov %o0, %sp /* OK, install new SP. */
-
-.Lsp_ok:
- ld ENV(g1,JB_PC), %o0 /* Extract target return PC. */
- jmp %o0 + 8 /* Return there. */
- mov %g2, %o0 /* Delay slot: set return value. */
-
-.size __longjmp, . - __longjmp
-
diff --git a/mdk-stage1/dietlibc/sparc/__testandset.S b/mdk-stage1/dietlibc/sparc/__testandset.S
deleted file mode 100644
index 84f6cf597..000000000
--- a/mdk-stage1/dietlibc/sparc/__testandset.S
+++ /dev/null
@@ -1,6 +0,0 @@
-.text
-.align 4
-.global __testandset
-__testandset:
- retl
- ldstub [%o0], %o0
diff --git a/mdk-stage1/dietlibc/sparc/clone.S b/mdk-stage1/dietlibc/sparc/clone.S
deleted file mode 100644
index 58b438249..000000000
--- a/mdk-stage1/dietlibc/sparc/clone.S
+++ /dev/null
@@ -1,45 +0,0 @@
-#include <asm/errno.h>
-#include <asm/unistd.h>
-
-.text
-.align 4
-.weak clone
-clone:
-.global __clone
-__clone:
- save %sp, -96, %sp
-
- tst %i0 /* check for function pointer */
- be .Lerror
- tst %i1 /* check for stack pointer */
- be .Lerror
- nop
-
- mov %i1, %o1 /* child-stack */
- mov %i2, %o0 /* clone-flags */
- mov __NR_clone, %g1
- ta 0x10 /* syscall: clone */
- bcs .Lerror
-
- tst %o1
- bne .Lstart /* we are the child :) */
- nop
- mov %o0, %i0 /* return child pid */
- ret
- restore
-
-.Lerror:
- call __errno_location
- nop
- mov EINVAL, %l0
- st %l0, [%o0]
- ret
- restore %g0, -1, %o0
-
-.Lstart:
- call %i0 /* call child-function */
- mov %i3, %o0 /* put arg in the right place for the child */
-
- call _exit /* child returned */
- nop
-
diff --git a/mdk-stage1/dietlibc/sparc/fork.S b/mdk-stage1/dietlibc/sparc/fork.S
deleted file mode 100644
index 869c9b30c..000000000
--- a/mdk-stage1/dietlibc/sparc/fork.S
+++ /dev/null
@@ -1,25 +0,0 @@
-#include "syscalls.h"
-
-.text
-.weak fork
-fork:
-.global __libc_fork
-__libc_fork:
- mov 2, %g1
- ta 0x10
- bcc,a 1f
- nop
- save %sp, -96, %sp
-#ifdef WANT_THREAD_SAVE
- call __errno_location
- nop
-#else
- sethi %hi(errno), %o0
- or %o0, %lo(errno), %o0
-#endif
- st %i0, [ %o0 ]
- retl
- restore %g0, -1, %o0
-1: dec %o1
- retl
- and %o0, %o1, %o0
diff --git a/mdk-stage1/dietlibc/sparc/mmap.c b/mdk-stage1/dietlibc/sparc/mmap.c
deleted file mode 100644
index 25ebdc24e..000000000
--- a/mdk-stage1/dietlibc/sparc/mmap.c
+++ /dev/null
@@ -1,43 +0,0 @@
-#include <linux/types.h>
-#include <linux/unistd.h>
-
-#define __SYSCALL_STRING \
- "ta 0x10;" \
- "bcs 2f;" \
- " nop;" \
- "1:" \
- ".subsection 2;" \
- "2:" \
- "save %%sp, -192, %%sp;" \
- "call __errno_location;" \
- " nop;" \
- "st %%i0,[%%o0];" \
- "ba 1b;" \
- " restore %%g0, -1, %%o0;" \
- ".previous;"
-
-#define __SYSCALL_CLOBBERS "g2", "g3", "g4", "g5", "g7", \
- "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \
- "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \
- "f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23", \
- "f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31", \
- "cc", "memory"
-
-#define inline_syscall6(name,arg1,arg2,arg3,arg4,arg5,arg6) \
-({ \
- register long __o0 __asm__ ("o0") = (long)(arg1); \
- register long __o1 __asm__ ("o1") = (long)(arg2); \
- register long __o2 __asm__ ("o2") = (long)(arg3); \
- register long __o3 __asm__ ("o3") = (long)(arg4); \
- register long __o4 __asm__ ("o4") = (long)(arg5); \
- register long __o5 __asm__ ("o5") = (long)(arg6); \
- register long __g1 __asm__ ("g1") = __NR_##name; \
- __asm__ (__SYSCALL_STRING : "=r" (__g1), "=r" (__o0) : \
- "0" (__g1), "1" (__o0), "r" (__o1), "r" (__o2), \
- "r" (__o3), "r" (__o4), "r" (__o5) : \
- __SYSCALL_CLOBBERS); \
- __o0; \
-})
-int mmap(void*start,size_t length,int prot,int flags,int fd,off_t offset) {
- return inline_syscall6(mmap,start,length,prot,flags,fd,offset);
-}
diff --git a/mdk-stage1/dietlibc/sparc/pipe.S b/mdk-stage1/dietlibc/sparc/pipe.S
deleted file mode 100644
index 820da2570..000000000
--- a/mdk-stage1/dietlibc/sparc/pipe.S
+++ /dev/null
@@ -1,26 +0,0 @@
-#include "syscalls.h"
-
-.text
-.global pipe
-pipe:
- mov %o0, %o2
- mov __NR_pipe, %g1
- ta 0x10
- bcc,a 1f
- nop
- save %sp, -96, %sp
-#ifdef WANT_THREAD_SAVE
- call __errno_location
- nop
-#else
- sethi %hi(errno), %o0
- or %o0, %lo(errno), %o0
-#endif
- st %i0, [ %o0 ]
- ret
- restore %g0, -1, %o0
-
-1: st %o0, [ %o2 ]
- st %o1, [ %o2 + 4 ]
- retl
- mov %g0, %o0
diff --git a/mdk-stage1/dietlibc/sparc/setjmp.S b/mdk-stage1/dietlibc/sparc/setjmp.S
deleted file mode 100644
index efc5a7013..000000000
--- a/mdk-stage1/dietlibc/sparc/setjmp.S
+++ /dev/null
@@ -1,37 +0,0 @@
-#include <setjmp.h>
-
-#define JB_SP 0
-#define JB_FP 1
-#define JB_PC 2
-
-#define ST_FLUSH_WINDOWS 0x03
-
-.section .rodata
-.text
-.globl __setjmp
-__setjmp:
- b 1f
- set 0, %o1
-.size __setjmp,.-__setjmp
-
-.globl setjmp
-setjmp:
- set 1, %o1
-.size setjmp,.-setjmp
-
-.globl __sigsetjmp
-__sigsetjmp:
-1:
- /* Save our PC, SP and FP. Save the signal mask if requested with
- a tail-call for simplicity; it always returns zero. */
- ta ST_FLUSH_WINDOWS
-
- st %o7, [%o0 + (JB_PC * 4)]
- st %sp, [%o0 + (JB_SP * 4)]
- st %fp, [%o0 + (JB_FP * 4)]
-
- mov %o7, %g1
- call __sigjmp_save
- mov %g1, %o7
-.size __sigsetjmp,.-__sigsetjmp
-
diff --git a/mdk-stage1/dietlibc/sparc/shmat.c b/mdk-stage1/dietlibc/sparc/shmat.c
deleted file mode 100644
index 73b2d89a9..000000000
--- a/mdk-stage1/dietlibc/sparc/shmat.c
+++ /dev/null
@@ -1,19 +0,0 @@
-#include <sys/types.h>
-#include <sys/ipc.h>
-#include <sys/shm.h>
-#include <asm/ipc.h>
-
-extern void* __ipc();
-
-#ifndef PAGE_SIZE
-#define PAGE_SIZE 4096
-#endif
-
-void* shmat(int shmid,const void* shmaddr,int shmflg) {
- void* raddr;
- register void* result;
- result=__ipc(SHMAT,shmid,shmflg,&raddr,shmaddr);
- if ((unsigned long)result <= -(unsigned long)PAGE_SIZE)
- result=raddr;
- return result;
-}
diff --git a/mdk-stage1/dietlibc/sparc/start.S b/mdk-stage1/dietlibc/sparc/start.S
deleted file mode 100644
index e948aaddc..000000000
--- a/mdk-stage1/dietlibc/sparc/start.S
+++ /dev/null
@@ -1,46 +0,0 @@
-#include "start.h"
-
-#ifdef __sparc__
- .section ".text"
- .align 4
- .global _start
- .type _start,@function
-_start:
-
- /* Terminate the stack frame, and reserve space for functions to
- drop their arguments. */
- mov %g0, %fp
- sub %sp, 6*4, %sp
-
- /* Extract the arguments and environment as encoded on the stack. The
- argument info starts after one register window (16 words) past the SP. */
- ld [%sp+22*4], %o0
- add %sp, 23*4, %o1
- add %o1, %o0, %o2
- add %o2, %o0, %o2
- add %o2, %o0, %o2
- add %o2, %o0, %o2
- add %o2, 4, %o2
-
- sethi %hi(environ), %o3
- or %o3, %lo(environ), %o3
- st %o2, [%o3]
-
- /* When starting a binary via the dynamic linker, %g1 contains the
- address of the shared library termination function, which will be
- registered with atexit(). If we are statically linked, this will
- be NULL. */
-
- /* Let libc do the rest of the initialization, and call main. */
- call main
- mov %g1, %o5
-
- b exit
- mov %o0, %i0
-
- /* Die very horribly if exit returns. */
- unimp
-
- .size _start, .-_start
-#endif
-
diff --git a/mdk-stage1/dietlibc/sparc/udiv.S b/mdk-stage1/dietlibc/sparc/udiv.S
deleted file mode 100644
index 87479e7bd..000000000
--- a/mdk-stage1/dietlibc/sparc/udiv.S
+++ /dev/null
@@ -1,363 +0,0 @@
-#ifdef __sparc__
- /* This file is generated from divrem.m4; DO NOT EDIT! */
-/*
- * Division and remainder, from Appendix E of the Sparc Version 8
- * Architecture Manual, with fixes from Gordon Irlam.
- */
-
-/*
- * Input: dividend and divisor in %o0 and %o1 respectively.
- *
- * m4 parameters:
- * .udiv name of function to generate
- * div div=div => %o0 / %o1; div=rem => %o0 % %o1
- * false false=true => signed; false=false => unsigned
- *
- * Algorithm parameters:
- * N how many bits per iteration we try to get (4)
- * WORDSIZE total number of bits (32)
- *
- * Derived constants:
- * TOPBITS number of bits in the top decade of a number
- *
- * Important variables:
- * Q the partial quotient under development (initially 0)
- * R the remainder so far, initially the dividend
- * ITER number of main division loop iterations required;
- * equal to ceil(log2(quotient) / N). Note that this
- * is the log base (2^N) of the quotient.
- * V the current comparand, initially divisor*2^(ITER*N-1)
- *
- * Cost:
- * Current estimate for non-large dividend is
- * ceil(log2(quotient) / N) * (10 + 7N/2) + C
- * A large dividend is one greater than 2^(31-TOPBITS) and takes a
- * different path, as the upper bits of the quotient must be developed
- * one bit at a time.
- */
-
-
-
-#define C_LABEL(name) name:
-
-#define C_SYMBOL_NAME(name) name
-
-#define ENTRY(name) \
- .global C_SYMBOL_NAME(name); \
- .align 4;\
- C_LABEL(name);\
- .type name,@function;
-
-#define LOC(name) . ## L ## name
-
-#define END(name) \
- .size name, . - name
-
-#define ST_DIV0 0x02
-
-ENTRY(.udiv)
-
- ! Ready to divide. Compute size of quotient; scale comparand.
- orcc %o1, %g0, %o5
- bne 1f
- mov %o0, %o3
-
- ! Divide by zero trap. If it returns, return 0 (about as
- ! wrong as possible, but that is what SunOS does...).
- ta ST_DIV0
- retl
- clr %o0
-
-1:
- cmp %o3, %o5 ! if %o1 exceeds %o0, done
- blu LOC(got_result) ! (and algorithm fails otherwise)
- clr %o2
- sethi %hi(1 << (32 - 4 - 1)), %g1
- cmp %o3, %g1
- blu LOC(not_really_big)
- clr %o4
-
- ! Here the dividend is >= 2**(31-N) or so. We must be careful here,
- ! as our usual N-at-a-shot divide step will cause overflow and havoc.
- ! The number of bits in the result here is N*ITER+SC, where SC <= N.
- ! Compute ITER in an unorthodox manner: know we need to shift V into
- ! the top decade: so do not even bother to compare to R.
- 1:
- cmp %o5, %g1
- bgeu 3f
- mov 1, %g2
- sll %o5, 4, %o5
- b 1b
- add %o4, 1, %o4
-
- ! Now compute %g2.
- 2: addcc %o5, %o5, %o5
- bcc LOC(not_too_big)
- add %g2, 1, %g2
-
- ! We get here if the %o1 overflowed while shifting.
- ! This means that %o3 has the high-order bit set.
- ! Restore %o5 and subtract from %o3.
- sll %g1, 4, %g1 ! high order bit
- srl %o5, 1, %o5 ! rest of %o5
- add %o5, %g1, %o5
- b LOC(do_single_div)
- sub %g2, 1, %g2
-
- LOC(not_too_big):
- 3: cmp %o5, %o3
- blu 2b
- nop
- be LOC(do_single_div)
- nop
- /* NB: these are commented out in the V8-Sparc manual as well */
- /* (I do not understand this) */
- ! %o5 > %o3: went too far: back up 1 step
- ! srl %o5, 1, %o5
- ! dec %g2
- ! do single-bit divide steps
- !
- ! We have to be careful here. We know that %o3 >= %o5, so we can do the
- ! first divide step without thinking. BUT, the others are conditional,
- ! and are only done if %o3 >= 0. Because both %o3 and %o5 may have the high-
- ! order bit set in the first step, just falling into the regular
- ! division loop will mess up the first time around.
- ! So we unroll slightly...
- LOC(do_single_div):
- subcc %g2, 1, %g2
- bl LOC(end_regular_divide)
- nop
- sub %o3, %o5, %o3
- mov 1, %o2
- b LOC(end_single_divloop)
- nop
- LOC(single_divloop):
- sll %o2, 1, %o2
- bl 1f
- srl %o5, 1, %o5
- ! %o3 >= 0
- sub %o3, %o5, %o3
- b 2f
- add %o2, 1, %o2
- 1: ! %o3 < 0
- add %o3, %o5, %o3
- sub %o2, 1, %o2
- 2:
- LOC(end_single_divloop):
- subcc %g2, 1, %g2
- bge LOC(single_divloop)
- tst %o3
- b,a LOC(end_regular_divide)
-
-LOC(not_really_big):
-1:
- sll %o5, 4, %o5
- cmp %o5, %o3
- bleu 1b
- addcc %o4, 1, %o4
- be LOC(got_result)
- sub %o4, 1, %o4
-
- tst %o3 ! set up for initial iteration
-LOC(divloop):
- sll %o2, 4, %o2
- ! depth 1, accumulated bits 0
- bl LOC(1.16)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 2, accumulated bits 1
- bl LOC(2.17)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 3, accumulated bits 3
- bl LOC(3.19)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 4, accumulated bits 7
- bl LOC(4.23)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (7*2+1), %o2
-
-LOC(4.23):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (7*2-1), %o2
-
-
-LOC(3.19):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 4, accumulated bits 5
- bl LOC(4.21)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (5*2+1), %o2
-
-LOC(4.21):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (5*2-1), %o2
-
-
-
-LOC(2.17):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 3, accumulated bits 1
- bl LOC(3.17)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 4, accumulated bits 3
- bl LOC(4.19)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (3*2+1), %o2
-
-LOC(4.19):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (3*2-1), %o2
-
-
-LOC(3.17):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 4, accumulated bits 1
- bl LOC(4.17)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (1*2+1), %o2
-
-LOC(4.17):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (1*2-1), %o2
-
-
-
-
-LOC(1.16):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 2, accumulated bits -1
- bl LOC(2.15)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 3, accumulated bits -1
- bl LOC(3.15)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 4, accumulated bits -1
- bl LOC(4.15)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (-1*2+1), %o2
-
-LOC(4.15):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (-1*2-1), %o2
-
-
-LOC(3.15):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 4, accumulated bits -3
- bl LOC(4.13)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (-3*2+1), %o2
-
-LOC(4.13):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (-3*2-1), %o2
-
-
-
-LOC(2.15):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 3, accumulated bits -3
- bl LOC(3.13)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 4, accumulated bits -5
- bl LOC(4.11)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (-5*2+1), %o2
-
-LOC(4.11):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (-5*2-1), %o2
-
-
-LOC(3.13):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 4, accumulated bits -7
- bl LOC(4.9)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (-7*2+1), %o2
-
-LOC(4.9):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (-7*2-1), %o2
-
-
-
-
- 9:
-LOC(end_regular_divide):
- subcc %o4, 1, %o4
- bge LOC(divloop)
- tst %o3
- bl,a LOC(got_result)
- ! non-restoring fixup here (one instruction only!)
- sub %o2, 1, %o2
-
-
-LOC(got_result):
-
- retl
- mov %o2, %o0
-
-END(.udiv)
-
-#endif
diff --git a/mdk-stage1/dietlibc/sparc/umul.S b/mdk-stage1/dietlibc/sparc/umul.S
deleted file mode 100644
index 15038ab2a..000000000
--- a/mdk-stage1/dietlibc/sparc/umul.S
+++ /dev/null
@@ -1,170 +0,0 @@
-#ifdef __sparc__
-/*
- * Unsigned multiply. Returns %o0 * %o1 in %o1%o0 (i.e., %o1 holds the
- * upper 32 bits of the 64-bit product).
- *
- * This code optimizes short (less than 13-bit) multiplies. Short
- * multiplies require 25 instruction cycles, and long ones require
- * 45 instruction cycles.
- *
- * On return, overflow has occurred (%o1 is not zero) if and only if
- * the Z condition code is clear, allowing, e.g., the following:
- *
- * call .umul
- * nop
- * bnz overflow (or tnz)
- */
-
-#define C_LABEL(name) name:
-
-#define C_SYMBOL_NAME(name) name
-
-#define ENTRY(name) \
- .global C_SYMBOL_NAME(name); \
- .align 4;\
- C_LABEL(name);\
- .type name,@function;
-
-#define LOC(name) . ## L ## name
-
-#define END(name) \
- .size name, . - name
-
-ENTRY(.umul)
- or %o0, %o1, %o4
- mov %o0, %y ! multiplier -> Y
- andncc %o4, 0xfff, %g0 ! test bits 12..31 of *both* args
- be LOC(mul_shortway) ! if zero, can do it the short way
- andcc %g0, %g0, %o4 ! zero the partial product; clear N & V
-
- /*
- * Long multiply. 32 steps, followed by a final shift step.
- */
- mulscc %o4, %o1, %o4 ! 1
- mulscc %o4, %o1, %o4 ! 2
- mulscc %o4, %o1, %o4 ! 3
- mulscc %o4, %o1, %o4 ! 4
- mulscc %o4, %o1, %o4 ! 5
- mulscc %o4, %o1, %o4 ! 6
- mulscc %o4, %o1, %o4 ! 7
- mulscc %o4, %o1, %o4 ! 8
- mulscc %o4, %o1, %o4 ! 9
- mulscc %o4, %o1, %o4 ! 10
- mulscc %o4, %o1, %o4 ! 11
- mulscc %o4, %o1, %o4 ! 12
- mulscc %o4, %o1, %o4 ! 13
- mulscc %o4, %o1, %o4 ! 14
- mulscc %o4, %o1, %o4 ! 15
- mulscc %o4, %o1, %o4 ! 16
- mulscc %o4, %o1, %o4 ! 17
- mulscc %o4, %o1, %o4 ! 18
- mulscc %o4, %o1, %o4 ! 19
- mulscc %o4, %o1, %o4 ! 20
- mulscc %o4, %o1, %o4 ! 21
- mulscc %o4, %o1, %o4 ! 22
- mulscc %o4, %o1, %o4 ! 23
- mulscc %o4, %o1, %o4 ! 24
- mulscc %o4, %o1, %o4 ! 25
- mulscc %o4, %o1, %o4 ! 26
- mulscc %o4, %o1, %o4 ! 27
- mulscc %o4, %o1, %o4 ! 28
- mulscc %o4, %o1, %o4 ! 29
- mulscc %o4, %o1, %o4 ! 30
- mulscc %o4, %o1, %o4 ! 31
- mulscc %o4, %o1, %o4 ! 32
- mulscc %o4, %g0, %o4 ! final shift
-
- /*
- * Normally, with the shift-and-add approach, if both numbers are
- * positive you get the correct result. With 32-bit two's-complement
- * numbers, -x is represented as
- *
- * x 32
- * ( 2 - ------ ) mod 2 * 2
- * 32
- * 2
- *
- * (the `mod 2' subtracts 1 from 1.bbbb). To avoid lots of 2^32s,
- * we can treat this as if the radix point were just to the left
- * of the sign bit (multiply by 2^32), and get
- *
- * -x = (2 - x) mod 2
- *
- * Then, ignoring the `mod 2's for convenience:
- *
- * x * y = xy
- * -x * y = 2y - xy
- * x * -y = 2x - xy
- * -x * -y = 4 - 2x - 2y + xy
- *
- * For signed multiplies, we subtract (x << 32) from the partial
- * product to fix this problem for negative multipliers (see mul.s).
- * Because of the way the shift into the partial product is calculated
- * (N xor V), this term is automatically removed for the multiplicand,
- * so we don't have to adjust.
- *
- * But for unsigned multiplies, the high order bit wasn't a sign bit,
- * and the correction is wrong. So for unsigned multiplies where the
- * high order bit is one, we end up with xy - (y << 32). To fix it
- * we add y << 32.
- */
-#if 0
- tst %o1
- bl,a 1f ! if %o1 < 0 (high order bit = 1),
- add %o4, %o0, %o4 ! %o4 += %o0 (add y to upper half)
-1: rd %y, %o0 ! get lower half of product
- retl
- addcc %o4, %g0, %o1 ! put upper half in place and set Z for %o1==0
-#else
- /* Faster code from tege@sics.se. */
- sra %o1, 31, %o2 ! make mask from sign bit
- and %o0, %o2, %o2 ! %o2 = 0 or %o0, depending on sign of %o1
- rd %y, %o0 ! get lower half of product
- retl
- addcc %o4, %o2, %o1 ! add compensation and put upper half in place
-#endif
-
-LOC(mul_shortway):
- /*
- * Short multiply. 12 steps, followed by a final shift step.
- * The resulting bits are off by 12 and (32-12) = 20 bit positions,
- * but there is no problem with %o0 being negative (unlike above),
- * and overflow is impossible (the answer is at most 24 bits long).
- */
- mulscc %o4, %o1, %o4 ! 1
- mulscc %o4, %o1, %o4 ! 2
- mulscc %o4, %o1, %o4 ! 3
- mulscc %o4, %o1, %o4 ! 4
- mulscc %o4, %o1, %o4 ! 5
- mulscc %o4, %o1, %o4 ! 6
- mulscc %o4, %o1, %o4 ! 7
- mulscc %o4, %o1, %o4 ! 8
- mulscc %o4, %o1, %o4 ! 9
- mulscc %o4, %o1, %o4 ! 10
- mulscc %o4, %o1, %o4 ! 11
- mulscc %o4, %o1, %o4 ! 12
- mulscc %o4, %g0, %o4 ! final shift
-
- /*
- * %o4 has 20 of the bits that should be in the result; %y has
- * the bottom 12 (as %y's top 12). That is:
- *
- * %o4 %y
- * +----------------+----------------+
- * | -12- | -20- | -12- | -20- |
- * +------(---------+------)---------+
- * -----result-----
- *
- * The 12 bits of %o4 left of the `result' area are all zero;
- * in fact, all top 20 bits of %o4 are zero.
- */
-
- rd %y, %o5
- sll %o4, 12, %o0 ! shift middle bits left 12
- srl %o5, 20, %o5 ! shift low bits right 20
- or %o5, %o0, %o0
- retl
- addcc %g0, %g0, %o1 ! %o1 = zero, and set Z
-
-END(.umul)
-#endif
diff --git a/mdk-stage1/dietlibc/sparc/unified.S b/mdk-stage1/dietlibc/sparc/unified.S
deleted file mode 100644
index 3cd609da5..000000000
--- a/mdk-stage1/dietlibc/sparc/unified.S
+++ /dev/null
@@ -1,28 +0,0 @@
-#include <dietfeatures.h>
-
-.text
-.global __unified_syscall
-__unified_syscall:
- ta 0x10
-
- bcc 1f
- save %sp, -104, %sp
-
- neg %i0, %i0
-1:
- add %i0, 0xff, %l2
- cmp %l2, 0xfe
- bgu 2f
- neg %i0, %l3
-#ifdef WANT_THREAD_SAVE
- call __errno_location
- nop
-#else
- sethi %hi(errno), %o0
- or %o0, %lo(errno), %o0
-#endif
- st %l3, [ %o0 ]
- mov -1, %i0
-2:
- ret
- restore
diff --git a/mdk-stage1/dietlibc/sparc/urem.S b/mdk-stage1/dietlibc/sparc/urem.S
deleted file mode 100644
index 943cb7873..000000000
--- a/mdk-stage1/dietlibc/sparc/urem.S
+++ /dev/null
@@ -1,362 +0,0 @@
-#ifdef __sparc__
- /* This file is generated from divrem.m4; DO NOT EDIT! */
-/*
- * Division and remainder, from Appendix E of the Sparc Version 8
- * Architecture Manual, with fixes from Gordon Irlam.
- */
-
-/*
- * Input: dividend and divisor in %o0 and %o1 respectively.
- *
- * m4 parameters:
- * .urem name of function to generate
- * rem rem=div => %o0 / %o1; rem=rem => %o0 % %o1
- * false false=true => signed; false=false => unsigned
- *
- * Algorithm parameters:
- * N how many bits per iteration we try to get (4)
- * WORDSIZE total number of bits (32)
- *
- * Derived constants:
- * TOPBITS number of bits in the top decade of a number
- *
- * Important variables:
- * Q the partial quotient under development (initially 0)
- * R the remainder so far, initially the dividend
- * ITER number of main division loop iterations required;
- * equal to ceil(log2(quotient) / N). Note that this
- * is the log base (2^N) of the quotient.
- * V the current comparand, initially divisor*2^(ITER*N-1)
- *
- * Cost:
- * Current estimate for non-large dividend is
- * ceil(log2(quotient) / N) * (10 + 7N/2) + C
- * A large dividend is one greater than 2^(31-TOPBITS) and takes a
- * different path, as the upper bits of the quotient must be developed
- * one bit at a time.
- */
-
-
-
-#define C_LABEL(name) name:
-
-#define C_SYMBOL_NAME(name) name
-
-#define ENTRY(name) \
- .global C_SYMBOL_NAME(name); \
- .align 4;\
- C_LABEL(name);\
- .type name,@function;
-
-#define LOC(name) . ## L ## name
-
-#define END(name) \
- .size name, . - name
-
-#define ST_DIV0 0x02
-
-ENTRY(.urem)
-
- ! Ready to divide. Compute size of quotient; scale comparand.
- orcc %o1, %g0, %o5
- bne 1f
- mov %o0, %o3
-
- ! Divide by zero trap. If it returns, return 0 (about as
- ! wrong as possible, but that is what SunOS does...).
- ta ST_DIV0
- retl
- clr %o0
-
-1:
- cmp %o3, %o5 ! if %o1 exceeds %o0, done
- blu LOC(got_result) ! (and algorithm fails otherwise)
- clr %o2
- sethi %hi(1 << (32 - 4 - 1)), %g1
- cmp %o3, %g1
- blu LOC(not_really_big)
- clr %o4
-
- ! Here the dividend is >= 2**(31-N) or so. We must be careful here,
- ! as our usual N-at-a-shot divide step will cause overflow and havoc.
- ! The number of bits in the result here is N*ITER+SC, where SC <= N.
- ! Compute ITER in an unorthodox manner: know we need to shift V into
- ! the top decade: so do not even bother to compare to R.
- 1:
- cmp %o5, %g1
- bgeu 3f
- mov 1, %g2
- sll %o5, 4, %o5
- b 1b
- add %o4, 1, %o4
-
- ! Now compute %g2.
- 2: addcc %o5, %o5, %o5
- bcc LOC(not_too_big)
- add %g2, 1, %g2
-
- ! We get here if the %o1 overflowed while shifting.
- ! This means that %o3 has the high-order bit set.
- ! Restore %o5 and subtract from %o3.
- sll %g1, 4, %g1 ! high order bit
- srl %o5, 1, %o5 ! rest of %o5
- add %o5, %g1, %o5
- b LOC(do_single_div)
- sub %g2, 1, %g2
-
- LOC(not_too_big):
- 3: cmp %o5, %o3
- blu 2b
- nop
- be LOC(do_single_div)
- nop
- /* NB: these are commented out in the V8-Sparc manual as well */
- /* (I do not understand this) */
- ! %o5 > %o3: went too far: back up 1 step
- ! srl %o5, 1, %o5
- ! dec %g2
- ! do single-bit divide steps
- !
- ! We have to be careful here. We know that %o3 >= %o5, so we can do the
- ! first divide step without thinking. BUT, the others are conditional,
- ! and are only done if %o3 >= 0. Because both %o3 and %o5 may have the high-
- ! order bit set in the first step, just falling into the regular
- ! division loop will mess up the first time around.
- ! So we unroll slightly...
- LOC(do_single_div):
- subcc %g2, 1, %g2
- bl LOC(end_regular_divide)
- nop
- sub %o3, %o5, %o3
- mov 1, %o2
- b LOC(end_single_divloop)
- nop
- LOC(single_divloop):
- sll %o2, 1, %o2
- bl 1f
- srl %o5, 1, %o5
- ! %o3 >= 0
- sub %o3, %o5, %o3
- b 2f
- add %o2, 1, %o2
- 1: ! %o3 < 0
- add %o3, %o5, %o3
- sub %o2, 1, %o2
- 2:
- LOC(end_single_divloop):
- subcc %g2, 1, %g2
- bge LOC(single_divloop)
- tst %o3
- b,a LOC(end_regular_divide)
-
-LOC(not_really_big):
-1:
- sll %o5, 4, %o5
- cmp %o5, %o3
- bleu 1b
- addcc %o4, 1, %o4
- be LOC(got_result)
- sub %o4, 1, %o4
-
- tst %o3 ! set up for initial iteration
-LOC(divloop):
- sll %o2, 4, %o2
- ! depth 1, accumulated bits 0
- bl LOC(1.16)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 2, accumulated bits 1
- bl LOC(2.17)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 3, accumulated bits 3
- bl LOC(3.19)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 4, accumulated bits 7
- bl LOC(4.23)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (7*2+1), %o2
-
-LOC(4.23):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (7*2-1), %o2
-
-
-LOC(3.19):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 4, accumulated bits 5
- bl LOC(4.21)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (5*2+1), %o2
-
-LOC(4.21):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (5*2-1), %o2
-
-
-
-LOC(2.17):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 3, accumulated bits 1
- bl LOC(3.17)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 4, accumulated bits 3
- bl LOC(4.19)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (3*2+1), %o2
-
-LOC(4.19):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (3*2-1), %o2
-
-
-LOC(3.17):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 4, accumulated bits 1
- bl LOC(4.17)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (1*2+1), %o2
-
-LOC(4.17):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (1*2-1), %o2
-
-
-
-
-LOC(1.16):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 2, accumulated bits -1
- bl LOC(2.15)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 3, accumulated bits -1
- bl LOC(3.15)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 4, accumulated bits -1
- bl LOC(4.15)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (-1*2+1), %o2
-
-LOC(4.15):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (-1*2-1), %o2
-
-
-LOC(3.15):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 4, accumulated bits -3
- bl LOC(4.13)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (-3*2+1), %o2
-
-LOC(4.13):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (-3*2-1), %o2
-
-
-
-LOC(2.15):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 3, accumulated bits -3
- bl LOC(3.13)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- ! depth 4, accumulated bits -5
- bl LOC(4.11)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (-5*2+1), %o2
-
-LOC(4.11):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (-5*2-1), %o2
-
-
-LOC(3.13):
- ! remainder is negative
- addcc %o3,%o5,%o3
- ! depth 4, accumulated bits -7
- bl LOC(4.9)
- srl %o5,1,%o5
- ! remainder is positive
- subcc %o3,%o5,%o3
- b 9f
- add %o2, (-7*2+1), %o2
-
-LOC(4.9):
- ! remainder is negative
- addcc %o3,%o5,%o3
- b 9f
- add %o2, (-7*2-1), %o2
-
-
-
-
- 9:
-LOC(end_regular_divide):
- subcc %o4, 1, %o4
- bge LOC(divloop)
- tst %o3
- bl,a LOC(got_result)
- ! non-restoring fixup here (one instruction only!)
- add %o3, %o1, %o3
-
-
-LOC(got_result):
-
- retl
- mov %o3, %o0
-
-END(.urem)
-#endif
diff --git a/mdk-stage1/dietlibc/start.h b/mdk-stage1/dietlibc/start.h
deleted file mode 100644
index 7f9e6be28..000000000
--- a/mdk-stage1/dietlibc/start.h
+++ /dev/null
@@ -1,14 +0,0 @@
-.section ".bss"
-.align 8
-
-.weak errno
-errno:
-.global __errno
-__errno:
- .long 0
-
-.weak environ
-environ:
-.global __environ
-__environ:
- .long 0
diff --git a/mdk-stage1/dietlibc/syscalls.c/_llseek.c b/mdk-stage1/dietlibc/syscalls.c/_llseek.c
deleted file mode 100644
index fdf49eba5..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/_llseek.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <unistd.h>
-#include <sys/types.h>
-#include "syscalls.h"
-
-_syscall5(int,_llseek,uint,fd,ulong,hi,ulong,lo,loff_t*,res,uint,wh);
diff --git a/mdk-stage1/dietlibc/syscalls.c/_newselect.c b/mdk-stage1/dietlibc/syscalls.c/_newselect.c
deleted file mode 100644
index cb42193bd..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/_newselect.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <linux/types.h>
-#include <linux/time.h>
-#include "syscalls.h"
-
-_syscall5(int,_newselect,int,n,fd_set *,rd,fd_set *,wr,fd_set *,ex,struct timeval *,timeval);
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/access.c b/mdk-stage1/dietlibc/syscalls.c/access.c
deleted file mode 100644
index 80944733a..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/access.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall2(int,access,const char*,pathname,int,mode)
diff --git a/mdk-stage1/dietlibc/syscalls.c/chdir.c b/mdk-stage1/dietlibc/syscalls.c/chdir.c
deleted file mode 100644
index a679f528d..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/chdir.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-_syscall1(int,chdir,void*,path)
diff --git a/mdk-stage1/dietlibc/syscalls.c/chmod.c b/mdk-stage1/dietlibc/syscalls.c/chmod.c
deleted file mode 100644
index 80ad33b40..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/chmod.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall2(int,chmod,const char * ,path,mode_t,mode)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/chown.c b/mdk-stage1/dietlibc/syscalls.c/chown.c
deleted file mode 100644
index 5a9352684..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/chown.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall3(int,chown,char*,path,uid_t,owner,gid_t,group)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/chroot.c b/mdk-stage1/dietlibc/syscalls.c/chroot.c
deleted file mode 100644
index ab39f7ebe..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/chroot.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "syscalls.h"
-
-_syscall1(int,chroot,void*,path)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/clone.c b/mdk-stage1/dietlibc/syscalls.c/clone.c
deleted file mode 100644
index 985eee4c8..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/clone.c
+++ /dev/null
@@ -1 +0,0 @@
-#warning "No CLONE support yet"
diff --git a/mdk-stage1/dietlibc/syscalls.c/close.c b/mdk-stage1/dietlibc/syscalls.c/close.c
deleted file mode 100644
index a7d7f0076..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/close.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-_syscall1(int,close,int,fd)
diff --git a/mdk-stage1/dietlibc/syscalls.c/dup.c b/mdk-stage1/dietlibc/syscalls.c/dup.c
deleted file mode 100644
index 9c28f0bd6..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/dup.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "syscalls.h"
-
-_syscall1(int,dup,int,fd)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/dup2.c b/mdk-stage1/dietlibc/syscalls.c/dup2.c
deleted file mode 100644
index 399314aa8..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/dup2.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "syscalls.h"
-
-_syscall2(int,dup2,int,one,int,two)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/execve.c b/mdk-stage1/dietlibc/syscalls.c/execve.c
deleted file mode 100644
index c2bac0117..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/execve.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "syscalls.h"
-
-_syscall3(int,execve,const char *,fn,void *,argv,void *,envp)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/exit.c b/mdk-stage1/dietlibc/syscalls.c/exit.c
deleted file mode 100644
index 87087c939..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/exit.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-_syscall1(int,exit,int,exitcode)
diff --git a/mdk-stage1/dietlibc/syscalls.c/fchdir.c b/mdk-stage1/dietlibc/syscalls.c/fchdir.c
deleted file mode 100644
index b3a41dc7a..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/fchdir.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-_syscall1(int,fchdir,int,fd)
diff --git a/mdk-stage1/dietlibc/syscalls.c/fchmod.c b/mdk-stage1/dietlibc/syscalls.c/fchmod.c
deleted file mode 100644
index 09e52b6c7..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/fchmod.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall2(int,fchmod,int,filedes,mode_t,mode)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/fchown.c b/mdk-stage1/dietlibc/syscalls.c/fchown.c
deleted file mode 100644
index 58923a137..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/fchown.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall3(int,fchown,int,fd,uid_t,owner,gid_t,group)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/fcntl.c b/mdk-stage1/dietlibc/syscalls.c/fcntl.c
deleted file mode 100644
index b21be9531..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/fcntl.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "syscalls.h"
-
-_syscall3(int,fcntl,int,fd,int,cmd,long,arg)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/flock.c b/mdk-stage1/dietlibc/syscalls.c/flock.c
deleted file mode 100644
index 6fcb336ef..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/flock.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "syscalls.h"
-
-_syscall2(int,flock,int,fd,int,op)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/fork.c b/mdk-stage1/dietlibc/syscalls.c/fork.c
deleted file mode 100644
index 1d4b892b6..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/fork.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "syscalls.h"
-
-#ifndef __sparc__
-
-_syscall0(int,fork)
-#endif
diff --git a/mdk-stage1/dietlibc/syscalls.c/fsync.c b/mdk-stage1/dietlibc/syscalls.c/fsync.c
deleted file mode 100644
index db6198b8a..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/fsync.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "syscalls.h"
-
-_syscall1(int,fsync,int,fd)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/ftruncate.c b/mdk-stage1/dietlibc/syscalls.c/ftruncate.c
deleted file mode 100644
index 5f002a899..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/ftruncate.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <sys/types.h>
-#include "syscalls.h"
-
-_syscall2(int,ftruncate,int,fd,off_t,length)
diff --git a/mdk-stage1/dietlibc/syscalls.c/getcwd.c b/mdk-stage1/dietlibc/syscalls.c/getcwd.c
deleted file mode 100644
index 9e5e4a3e2..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/getcwd.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include "syscalls.h"
-
-/* this syscall exists since Linux 2.1.92 */
-
-_syscall2(int,getcwd,char*,buf,unsigned long,size)
diff --git a/mdk-stage1/dietlibc/syscalls.c/getdents.c b/mdk-stage1/dietlibc/syscalls.c/getdents.c
deleted file mode 100644
index be941b21e..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/getdents.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "syscalls.h"
-
-_syscall3(int, getdents, unsigned int, fd, void *, dirp, unsigned int, count);
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/getegid.c b/mdk-stage1/dietlibc/syscalls.c/getegid.c
deleted file mode 100644
index 3213d640c..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/getegid.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall0(gid_t,getegid)
diff --git a/mdk-stage1/dietlibc/syscalls.c/geteuid.c b/mdk-stage1/dietlibc/syscalls.c/geteuid.c
deleted file mode 100644
index 5b31a3cca..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/geteuid.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall0(uid_t,geteuid)
diff --git a/mdk-stage1/dietlibc/syscalls.c/getgid.c b/mdk-stage1/dietlibc/syscalls.c/getgid.c
deleted file mode 100644
index 2f7d96286..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/getgid.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall0(gid_t,getgid)
diff --git a/mdk-stage1/dietlibc/syscalls.c/getgroups.c b/mdk-stage1/dietlibc/syscalls.c/getgroups.c
deleted file mode 100644
index 3e4d6797a..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/getgroups.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall2(int,getgroups,int,size,int*,list)
diff --git a/mdk-stage1/dietlibc/syscalls.c/getpgid.c b/mdk-stage1/dietlibc/syscalls.c/getpgid.c
deleted file mode 100644
index 0b4ff528b..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/getpgid.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall1(pid_t,getpgid,pid_t,pid)
diff --git a/mdk-stage1/dietlibc/syscalls.c/getpid.c b/mdk-stage1/dietlibc/syscalls.c/getpid.c
deleted file mode 100644
index d60a8db9a..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/getpid.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-_syscall0(int,getpid)
diff --git a/mdk-stage1/dietlibc/syscalls.c/getppid.c b/mdk-stage1/dietlibc/syscalls.c/getppid.c
deleted file mode 100644
index ee87a8eae..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/getppid.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-_syscall0(int,getppid)
diff --git a/mdk-stage1/dietlibc/syscalls.c/getpriority.c b/mdk-stage1/dietlibc/syscalls.c/getpriority.c
deleted file mode 100644
index 6f94bcf42..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/getpriority.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "syscalls.h"
-
-_syscall3(int,getpriority,int,which,int,who)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/getresgid.c b/mdk-stage1/dietlibc/syscalls.c/getresgid.c
deleted file mode 100644
index 264ec7dce..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/getresgid.c
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-#ifdef __NR_getresgid
-
-_syscall3(int,getresgid,gid_t*,rgid,gid_t*,egid,gid_t*,sgid)
-
-#endif
diff --git a/mdk-stage1/dietlibc/syscalls.c/getresuid.c b/mdk-stage1/dietlibc/syscalls.c/getresuid.c
deleted file mode 100644
index 74e2daec2..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/getresuid.c
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-#ifdef __getresuid
-
-_syscall3(int,getresuid,uid_t*,ruid,uid_t*,euid,uid_t*,suid)
-
-#endif
diff --git a/mdk-stage1/dietlibc/syscalls.c/getrlimit.c b/mdk-stage1/dietlibc/syscalls.c/getrlimit.c
deleted file mode 100644
index 635b2baf4..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/getrlimit.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-_syscall2(int,getrlimit,int,resource,void*,rlim)
diff --git a/mdk-stage1/dietlibc/syscalls.c/getrusage.c b/mdk-stage1/dietlibc/syscalls.c/getrusage.c
deleted file mode 100644
index 815d3e617..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/getrusage.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-_syscall2(int,getrusage,int,who,void*,rusage)
diff --git a/mdk-stage1/dietlibc/syscalls.c/getsid.c b/mdk-stage1/dietlibc/syscalls.c/getsid.c
deleted file mode 100644
index 69974c36c..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/getsid.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall1(pid_t,getsid,pid_t,pid)
diff --git a/mdk-stage1/dietlibc/syscalls.c/gettimeofday.c b/mdk-stage1/dietlibc/syscalls.c/gettimeofday.c
deleted file mode 100644
index 5f4931a0c..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/gettimeofday.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <linux/types.h>
-#include <linux/time.h>
-#include "syscalls.h"
-
-_syscall2(int,gettimeofday,struct timeval *,tv,void *,tz)
diff --git a/mdk-stage1/dietlibc/syscalls.c/getuid.c b/mdk-stage1/dietlibc/syscalls.c/getuid.c
deleted file mode 100644
index bf38447a6..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/getuid.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall0(uid_t,getuid)
diff --git a/mdk-stage1/dietlibc/syscalls.c/ioctl.c b/mdk-stage1/dietlibc/syscalls.c/ioctl.c
deleted file mode 100644
index 1612109d3..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/ioctl.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "syscalls.h"
-
-_syscall3(int,ioctl,int,fd,int,request,void *,argp)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/kill.c b/mdk-stage1/dietlibc/syscalls.c/kill.c
deleted file mode 100644
index e56b0ac1b..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/kill.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall2(int,kill,pid_t,pid,int,sig)
diff --git a/mdk-stage1/dietlibc/syscalls.c/lchown.c b/mdk-stage1/dietlibc/syscalls.c/lchown.c
deleted file mode 100644
index 976d2ee1f..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/lchown.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall3(int,lchown,char*,path,uid_t,owner,gid_t,group)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/link.c b/mdk-stage1/dietlibc/syscalls.c/link.c
deleted file mode 100644
index ab9b427d9..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/link.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall2(int,link,const char *,a,const char *,b)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/lseek.c b/mdk-stage1/dietlibc/syscalls.c/lseek.c
deleted file mode 100644
index 9925a2185..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/lseek.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "syscalls.h"
-
-_syscall3(unsigned long,lseek,int,fd,unsigned long,offset,int,whence)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/mkdir.c b/mdk-stage1/dietlibc/syscalls.c/mkdir.c
deleted file mode 100644
index aac682c99..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/mkdir.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall2(int,mkdir,void*,path,mode_t,mode)
diff --git a/mdk-stage1/dietlibc/syscalls.c/mknod.c b/mdk-stage1/dietlibc/syscalls.c/mknod.c
deleted file mode 100644
index 00e836b73..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/mknod.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall3(int,mknod,const char*,pathname,mode_t,mode,dev_t,dev)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/mount.c b/mdk-stage1/dietlibc/syscalls.c/mount.c
deleted file mode 100644
index 2d71ee812..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/mount.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "syscalls.h"
-
-_syscall5(int,mount,const char *,spec,const char *,dir,const char *,type,unsigned long,rwflag,const void *,data);
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/mprotect.c b/mdk-stage1/dietlibc/syscalls.c/mprotect.c
deleted file mode 100644
index 634a12089..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/mprotect.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall3(int,mprotect,const void *,addr, size_t, len, int, prot)
diff --git a/mdk-stage1/dietlibc/syscalls.c/mremap.c b/mdk-stage1/dietlibc/syscalls.c/mremap.c
deleted file mode 100644
index 37d066bac..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/mremap.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall4(int,mremap,void*,old_address,size_t,old_size,size_t,new_size,unsigned long,flags)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/munmap.c b/mdk-stage1/dietlibc/syscalls.c/munmap.c
deleted file mode 100644
index 40bc98270..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/munmap.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall2(int,munmap,void*,start,size_t,len)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/nanosleep.c b/mdk-stage1/dietlibc/syscalls.c/nanosleep.c
deleted file mode 100644
index 71aca1f09..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/nanosleep.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <linux/types.h>
-#include <linux/time.h>
-#include "syscalls.h"
-
-_syscall2(int,nanosleep,struct timeval *,in,struct timeval *,out)
diff --git a/mdk-stage1/dietlibc/syscalls.c/open.c b/mdk-stage1/dietlibc/syscalls.c/open.c
deleted file mode 100644
index 8b3ccfcc3..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/open.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall3(int,open,const char *,fn,int,flags,mode_t,mode)
diff --git a/mdk-stage1/dietlibc/syscalls.c/pipe.c b/mdk-stage1/dietlibc/syscalls.c/pipe.c
deleted file mode 100644
index 42197c881..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/pipe.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall1(int,pipe,int *,filedes)
diff --git a/mdk-stage1/dietlibc/syscalls.c/poll.c b/mdk-stage1/dietlibc/syscalls.c/poll.c
deleted file mode 100644
index 10d0d1f78..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/poll.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall3(int,poll,void *,ufds,int,nfds,int,timeout)
diff --git a/mdk-stage1/dietlibc/syscalls.c/read.c b/mdk-stage1/dietlibc/syscalls.c/read.c
deleted file mode 100644
index f5532054e..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/read.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-_syscall3(int,read,int,fd,const char *,buf,unsigned long,count)
diff --git a/mdk-stage1/dietlibc/syscalls.c/readlink.c b/mdk-stage1/dietlibc/syscalls.c/readlink.c
deleted file mode 100644
index 482f8fe27..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/readlink.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include "syscalls.h"
-#include <linux/types.h>
-
-_syscall3(int,readlink,char*,path,char*,buf,size_t,bufsiz)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/reboot.c b/mdk-stage1/dietlibc/syscalls.c/reboot.c
deleted file mode 100644
index 0ad474894..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/reboot.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "syscalls.h"
-
-_syscall3(int,reboot,int,magic,int,magic_too,int,flag)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/rename.c b/mdk-stage1/dietlibc/syscalls.c/rename.c
deleted file mode 100644
index f86d50728..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/rename.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "syscalls.h"
-
-_syscall2(int,rename,char*,oldpath,char*,newpath)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/rmdir.c b/mdk-stage1/dietlibc/syscalls.c/rmdir.c
deleted file mode 100644
index 303885264..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/rmdir.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-_syscall1(int,rmdir,void*,path)
diff --git a/mdk-stage1/dietlibc/syscalls.c/setdomainname.c b/mdk-stage1/dietlibc/syscalls.c/setdomainname.c
deleted file mode 100644
index 83d3aa8b8..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/setdomainname.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "syscalls.h"
-
-_syscall2(int,setdomainname,const char *,name,int,len)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/setgid.c b/mdk-stage1/dietlibc/syscalls.c/setgid.c
deleted file mode 100644
index 1f7263aeb..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/setgid.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-_syscall1(int,setgid,int,gid)
diff --git a/mdk-stage1/dietlibc/syscalls.c/setgroups.c b/mdk-stage1/dietlibc/syscalls.c/setgroups.c
deleted file mode 100644
index fed3b85c1..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/setgroups.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "syscalls.h"
-
-_syscall2(int,setgroups,int,size,const int*,list)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/sethostname.c b/mdk-stage1/dietlibc/syscalls.c/sethostname.c
deleted file mode 100644
index e4b736f87..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/sethostname.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "syscalls.h"
-
-_syscall2(int,sethostname,const char *,name,int,len)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/setitimer.c b/mdk-stage1/dietlibc/syscalls.c/setitimer.c
deleted file mode 100644
index 28935cab7..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/setitimer.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "syscalls.h"
-
-_syscall3(int,setitimer,int,which,void *,value,void *,ovalue)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/setpgid.c b/mdk-stage1/dietlibc/syscalls.c/setpgid.c
deleted file mode 100644
index 66fbf82dd..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/setpgid.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-_syscall2(int,setpgid,int,name,int,len)
diff --git a/mdk-stage1/dietlibc/syscalls.c/setpriority.c b/mdk-stage1/dietlibc/syscalls.c/setpriority.c
deleted file mode 100644
index bc04227d2..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/setpriority.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "syscalls.h"
-
-_syscall3(int,setpriority,int,which,int,who,int,prio)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/setregid.c b/mdk-stage1/dietlibc/syscalls.c/setregid.c
deleted file mode 100644
index c6911aca8..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/setregid.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall2(int,setregid,gid_t,rgid,gid_t,egid)
diff --git a/mdk-stage1/dietlibc/syscalls.c/setresgid.c b/mdk-stage1/dietlibc/syscalls.c/setresgid.c
deleted file mode 100644
index 817fd2942..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/setresgid.c
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-#ifdef __NR_setresgid
-
-_syscall3(int,setresgid,gid_t*,rgid,gid_t*,egid,gid_t*,sgid)
-
-#endif
diff --git a/mdk-stage1/dietlibc/syscalls.c/setresuid.c b/mdk-stage1/dietlibc/syscalls.c/setresuid.c
deleted file mode 100644
index 7073d8ac2..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/setresuid.c
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-#ifdef __NR_setresuid
-
-_syscall3(int,setresuid,uid_t*,ruid,uid_t*,euid,uid_t*,suid)
-
-#endif
diff --git a/mdk-stage1/dietlibc/syscalls.c/setreuid.c b/mdk-stage1/dietlibc/syscalls.c/setreuid.c
deleted file mode 100644
index c0c23a12d..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/setreuid.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall2(int,setreuid,uid_t,ruid,uid_t,euid)
diff --git a/mdk-stage1/dietlibc/syscalls.c/setrlimit.c b/mdk-stage1/dietlibc/syscalls.c/setrlimit.c
deleted file mode 100644
index 213234282..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/setrlimit.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-_syscall2(int,setrlimit,int,resource,void*,rlim)
diff --git a/mdk-stage1/dietlibc/syscalls.c/setsid.c b/mdk-stage1/dietlibc/syscalls.c/setsid.c
deleted file mode 100644
index 4b35a1316..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/setsid.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall0(pid_t,setsid)
diff --git a/mdk-stage1/dietlibc/syscalls.c/setuid.c b/mdk-stage1/dietlibc/syscalls.c/setuid.c
deleted file mode 100644
index 620876c9f..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/setuid.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-_syscall1(int,setuid,int,uid)
diff --git a/mdk-stage1/dietlibc/syscalls.c/sigaction.c b/mdk-stage1/dietlibc/syscalls.c/sigaction.c
deleted file mode 100644
index cfa5c683f..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/sigaction.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-_syscall3(int,sigaction,int,signum,void*,act,void*,oldact)
diff --git a/mdk-stage1/dietlibc/syscalls.c/signal.c b/mdk-stage1/dietlibc/syscalls.c/signal.c
deleted file mode 100644
index 1a913be45..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/signal.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-_syscall2(int,signal,int,num,void *,len)
diff --git a/mdk-stage1/dietlibc/syscalls.c/sigpending.c b/mdk-stage1/dietlibc/syscalls.c/sigpending.c
deleted file mode 100644
index 08fb23991..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/sigpending.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-_syscall1(int,sigpending,void*,set)
diff --git a/mdk-stage1/dietlibc/syscalls.c/sigprocmask.c b/mdk-stage1/dietlibc/syscalls.c/sigprocmask.c
deleted file mode 100644
index e9dcc2d67..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/sigprocmask.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-_syscall3(int,sigprocmask,int,how,void*,set,void*,oldset)
diff --git a/mdk-stage1/dietlibc/syscalls.c/sigsuspend.c b/mdk-stage1/dietlibc/syscalls.c/sigsuspend.c
deleted file mode 100644
index 0fe90e623..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/sigsuspend.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-_syscall1(int,sigsuspend,void*,mask)
diff --git a/mdk-stage1/dietlibc/syscalls.c/socketcall.c b/mdk-stage1/dietlibc/syscalls.c/socketcall.c
deleted file mode 100644
index eee1ae86d..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/socketcall.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-_syscall2(int,socketcall,int,code,unsigned long *, args)
diff --git a/mdk-stage1/dietlibc/syscalls.c/swapoff.c b/mdk-stage1/dietlibc/syscalls.c/swapoff.c
deleted file mode 100644
index e1daa89a9..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/swapoff.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "syscalls.h"
-
-_syscall1(int,swapoff,const char *,fn)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/swapon.c b/mdk-stage1/dietlibc/syscalls.c/swapon.c
deleted file mode 100644
index 543e41e79..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/swapon.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall2(int,swapon,const char*,path,int,swapflags)
diff --git a/mdk-stage1/dietlibc/syscalls.c/symlink.c b/mdk-stage1/dietlibc/syscalls.c/symlink.c
deleted file mode 100644
index b3f4d0b1c..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/symlink.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-_syscall2(int,symlink,const char *,a,const char *,b)
diff --git a/mdk-stage1/dietlibc/syscalls.c/sync.c b/mdk-stage1/dietlibc/syscalls.c/sync.c
deleted file mode 100644
index cca17461f..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/sync.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-_syscall0(int,sync)
diff --git a/mdk-stage1/dietlibc/syscalls.c/syslog.c b/mdk-stage1/dietlibc/syscalls.c/syslog.c
deleted file mode 100644
index aace870ea..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/syslog.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-_syscall3(int,syslog,int, type, char *, buf, int, len);
diff --git a/mdk-stage1/dietlibc/syscalls.c/time.c b/mdk-stage1/dietlibc/syscalls.c/time.c
deleted file mode 100644
index dc15b28f9..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/time.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall1(time_t,time,time_t*,path)
diff --git a/mdk-stage1/dietlibc/syscalls.c/truncate.c b/mdk-stage1/dietlibc/syscalls.c/truncate.c
deleted file mode 100644
index 721bd7134..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/truncate.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall2(int,truncate,const char*,path,off_t,length)
diff --git a/mdk-stage1/dietlibc/syscalls.c/umask.c b/mdk-stage1/dietlibc/syscalls.c/umask.c
deleted file mode 100644
index 506038243..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/umask.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall1(int,umask,mode_t,mask)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/umount.c b/mdk-stage1/dietlibc/syscalls.c/umount.c
deleted file mode 100644
index 4d3ef7637..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/umount.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-_syscall1(int,umount,const char *,dir)
diff --git a/mdk-stage1/dietlibc/syscalls.c/uname.c b/mdk-stage1/dietlibc/syscalls.c/uname.c
deleted file mode 100644
index 68f135007..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/uname.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall1(int,uname,void *,utsname)
-
diff --git a/mdk-stage1/dietlibc/syscalls.c/unlink.c b/mdk-stage1/dietlibc/syscalls.c/unlink.c
deleted file mode 100644
index 860ccebbf..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/unlink.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-_syscall1(int,unlink,const char *,fn)
diff --git a/mdk-stage1/dietlibc/syscalls.c/utime.c b/mdk-stage1/dietlibc/syscalls.c/utime.c
deleted file mode 100644
index 185bdf9e8..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/utime.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-_syscall2(int,utime,void*,filename,void*,buf)
diff --git a/mdk-stage1/dietlibc/syscalls.c/vhangup.c b/mdk-stage1/dietlibc/syscalls.c/vhangup.c
deleted file mode 100644
index bb0669765..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/vhangup.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-_syscall0(int,vhangup)
diff --git a/mdk-stage1/dietlibc/syscalls.c/wait4.c b/mdk-stage1/dietlibc/syscalls.c/wait4.c
deleted file mode 100644
index 4ae7eabcd..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/wait4.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall4(int,wait4,pid_t,pid,int *,status,int,opts,void *,rusage)
diff --git a/mdk-stage1/dietlibc/syscalls.c/waitpid.c b/mdk-stage1/dietlibc/syscalls.c/waitpid.c
deleted file mode 100644
index b7167f9ce..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/waitpid.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <linux/types.h>
-#include "syscalls.h"
-
-_syscall3(int,waitpid,int,pid,int *,status,int,options)
diff --git a/mdk-stage1/dietlibc/syscalls.c/write.c b/mdk-stage1/dietlibc/syscalls.c/write.c
deleted file mode 100644
index d1f7347d5..000000000
--- a/mdk-stage1/dietlibc/syscalls.c/write.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-_syscall3(int,write,int,fd,const char *,buf,unsigned long,count)
diff --git a/mdk-stage1/dietlibc/syscalls.h b/mdk-stage1/dietlibc/syscalls.h
deleted file mode 100644
index eba7a3c00..000000000
--- a/mdk-stage1/dietlibc/syscalls.h
+++ /dev/null
@@ -1,142 +0,0 @@
-#ifdef __ASSEMBLER__
-
-#include <asm/unistd.h>
-
-#else
-
-#include <linux/unistd.h>
-
-#endif
-
-#ifdef __i386__
-
-#define syscall_weak(name,wsym,sym) \
-.text; \
-.weak wsym; \
-wsym: ; \
-.global sym; \
-sym: \
- movb $__NR_##name,%al; \
- jmp __unified_syscall
-
-#define syscall(name,sym) \
-.text; \
-.global sym; \
-sym: \
- movb $__NR_##name,%al; \
- jmp __unified_syscall
-
-#endif
-
-#ifdef __sparc__
-
-#define syscall_weak(name,wsym,sym) \
-.text; \
-.weak wsym; \
-wsym: ; \
-.global sym; \
-sym: \
- b __unified_syscall; \
- mov __NR_##name, %g1
-
-#define syscall(name,sym) \
-.text; \
-.global sym; \
-sym: \
- b __unified_syscall; \
- mov __NR_##name, %g1
-
-#endif
-
-#ifdef __powerpc__
-
-#define syscall_weak(name,wsym,sym) \
-.text; \
-.weak wsym; \
-wsym: ; \
-.global sym; \
-sym: \
- li 0,__NR_##name; \
- b __unified_syscall
-
-#define syscall(name,sym) \
-.text; \
-.global sym; \
-sym: \
- li 0,__NR_##name; \
- b __unified_syscall
-
-#endif
-
-
-#ifdef __mips__
-
-#define syscall_weak(name,wsym,sym) \
-.text; \
-.weak wsym; \
-wsym: ; \
-.global sym; \
-.ent sym; \
-sym: \
- li $2,__NR_##name; \
- la $25,__unified_syscall; \
- jr $25; \
-.end sym
-
-#define syscall(name,sym) \
-.text; \
-.global sym; \
-.ent sym; \
-sym: \
- li $2,__NR_##name; \
- la $25,__unified_syscall; \
- jr $25; \
-.end sym
-
-#endif
-
-#ifdef __arm__
-
-#define syscall_weak(name,wsym,sym) \
-.text; \
-.weak wsym; \
-wsym: ; \
-.global sym; \
-sym: \
- swi __NR_##name; \
- b __unified_syscall
-
-#define syscall(name,sym) \
-.text; \
-.global sym; \
-sym: \
- swi __NR_##name; \
- b __unified_syscall
-
-#endif
-
-
-#ifdef __alpha__
-
-#define syscall_weak(name,wsym,sym) \
-.text ; \
-.align 2 ; \
-.weak wsym; \
-.type wsym,@function ; \
-wsym: ; \
-.global sym ; \
-.type sym,@function ; \
-sym: ; \
- lda $0, __NR_##name($31) ; \
- br __unified_syscall
-
-#define syscall(name,sym) \
-.text ; \
-.align 2 ; \
-.global sym ; \
-.type sym,@function ; \
-sym: ; \
- lda $0, __NR_##name($31) ; \
- br __unified_syscall
-
-#endif
diff --git a/mdk-stage1/dietlibc/syscalls.s/__getpagesize.S b/mdk-stage1/dietlibc/syscalls.s/__getpagesize.S
deleted file mode 100644
index c9fd97898..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/__getpagesize.S
+++ /dev/null
@@ -1,5 +0,0 @@
-#include "syscalls.h"
-
-#ifdef __NR_getpagesize
-syscall(getpagesize,getpagesize)
-#endif
diff --git a/mdk-stage1/dietlibc/syscalls.s/__pread.S b/mdk-stage1/dietlibc/syscalls.s/__pread.S
deleted file mode 100644
index ad47c7873..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/__pread.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall_weak(pread,__pread,__libc__pread)
diff --git a/mdk-stage1/dietlibc/syscalls.s/__reboot.S b/mdk-stage1/dietlibc/syscalls.s/__reboot.S
deleted file mode 100644
index 0de4f25b2..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/__reboot.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(reboot,__reboot)
diff --git a/mdk-stage1/dietlibc/syscalls.s/_llseek.S b/mdk-stage1/dietlibc/syscalls.s/_llseek.S
deleted file mode 100644
index 3e240d822..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/_llseek.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(_llseek,_llseek)
diff --git a/mdk-stage1/dietlibc/syscalls.s/access.S b/mdk-stage1/dietlibc/syscalls.s/access.S
deleted file mode 100644
index d1edafd8c..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/access.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(access,access)
diff --git a/mdk-stage1/dietlibc/syscalls.s/brk.S b/mdk-stage1/dietlibc/syscalls.s/brk.S
deleted file mode 100644
index 6e21810bd..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/brk.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(brk,__diet_brk)
diff --git a/mdk-stage1/dietlibc/syscalls.s/chdir.S b/mdk-stage1/dietlibc/syscalls.s/chdir.S
deleted file mode 100644
index 204f3dd6c..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/chdir.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(chdir,chdir)
diff --git a/mdk-stage1/dietlibc/syscalls.s/chmod.S b/mdk-stage1/dietlibc/syscalls.s/chmod.S
deleted file mode 100644
index c1b85f5a4..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/chmod.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(chmod,chmod)
diff --git a/mdk-stage1/dietlibc/syscalls.s/chown.S b/mdk-stage1/dietlibc/syscalls.s/chown.S
deleted file mode 100644
index daac3bf13..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/chown.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(chown,chown)
diff --git a/mdk-stage1/dietlibc/syscalls.s/chroot.S b/mdk-stage1/dietlibc/syscalls.s/chroot.S
deleted file mode 100644
index 65de1e473..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/chroot.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(chroot,chroot)
diff --git a/mdk-stage1/dietlibc/syscalls.s/close.S b/mdk-stage1/dietlibc/syscalls.s/close.S
deleted file mode 100644
index 361ca5272..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/close.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall_weak(close,close,__libc_close)
diff --git a/mdk-stage1/dietlibc/syscalls.s/dup.S b/mdk-stage1/dietlibc/syscalls.s/dup.S
deleted file mode 100644
index b2977fd43..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/dup.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(dup,dup)
diff --git a/mdk-stage1/dietlibc/syscalls.s/dup2.S b/mdk-stage1/dietlibc/syscalls.s/dup2.S
deleted file mode 100644
index 774bfbfe7..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/dup2.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(dup2,dup2)
diff --git a/mdk-stage1/dietlibc/syscalls.s/execve.S b/mdk-stage1/dietlibc/syscalls.s/execve.S
deleted file mode 100644
index ff952ae7d..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/execve.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(execve,execve)
diff --git a/mdk-stage1/dietlibc/syscalls.s/exit.S b/mdk-stage1/dietlibc/syscalls.s/exit.S
deleted file mode 100644
index 11c989529..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/exit.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall_weak(exit,exit,_exit)
diff --git a/mdk-stage1/dietlibc/syscalls.s/fchdir.S b/mdk-stage1/dietlibc/syscalls.s/fchdir.S
deleted file mode 100644
index 0aeaf610b..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/fchdir.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(fchdir,fchdir)
diff --git a/mdk-stage1/dietlibc/syscalls.s/fchmod.S b/mdk-stage1/dietlibc/syscalls.s/fchmod.S
deleted file mode 100644
index 30bc2e210..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/fchmod.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(fchmod,fchmod)
diff --git a/mdk-stage1/dietlibc/syscalls.s/fchown.S b/mdk-stage1/dietlibc/syscalls.s/fchown.S
deleted file mode 100644
index bc2a296ea..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/fchown.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(fchown,fchown)
diff --git a/mdk-stage1/dietlibc/syscalls.s/fcntl.S b/mdk-stage1/dietlibc/syscalls.s/fcntl.S
deleted file mode 100644
index 2285929a0..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/fcntl.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall_weak(fcntl,fcntl,__libc_fcntl)
diff --git a/mdk-stage1/dietlibc/syscalls.s/flock.S b/mdk-stage1/dietlibc/syscalls.s/flock.S
deleted file mode 100644
index 7b4daeff7..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/flock.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(flock,flock)
diff --git a/mdk-stage1/dietlibc/syscalls.s/fork.S b/mdk-stage1/dietlibc/syscalls.s/fork.S
deleted file mode 100644
index b40c3f708..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/fork.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall_weak(fork,fork,__libc_fork)
diff --git a/mdk-stage1/dietlibc/syscalls.s/fstat.S b/mdk-stage1/dietlibc/syscalls.s/fstat.S
deleted file mode 100644
index 9dd465cda..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/fstat.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(fstat,fstat)
diff --git a/mdk-stage1/dietlibc/syscalls.s/fstat64.S b/mdk-stage1/dietlibc/syscalls.s/fstat64.S
deleted file mode 100644
index 0c7a41609..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/fstat64.S
+++ /dev/null
@@ -1,8 +0,0 @@
-#include "dietfeatures.h"
-#include "syscalls.h"
-
-#ifdef WANT_LARGEFILE_BACKCOMPAT
-syscall(fstat64,__dietlibc_fstat64)
-#else
-syscall(fstat64,fstat64)
-#endif
diff --git a/mdk-stage1/dietlibc/syscalls.s/fstatfs.S b/mdk-stage1/dietlibc/syscalls.s/fstatfs.S
deleted file mode 100644
index a23c8770c..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/fstatfs.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(fstatfs,fstatfs)
diff --git a/mdk-stage1/dietlibc/syscalls.s/fsync.S b/mdk-stage1/dietlibc/syscalls.s/fsync.S
deleted file mode 100644
index 66af59ef9..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/fsync.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall_weak(fsync,fsync,__libc_fsync)
diff --git a/mdk-stage1/dietlibc/syscalls.s/ftruncate.S b/mdk-stage1/dietlibc/syscalls.s/ftruncate.S
deleted file mode 100644
index dde57a615..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/ftruncate.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(ftruncate,ftruncate)
diff --git a/mdk-stage1/dietlibc/syscalls.s/getcwd.S b/mdk-stage1/dietlibc/syscalls.s/getcwd.S
deleted file mode 100644
index e13262f20..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/getcwd.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(getcwd,__syscall_getcwd)
diff --git a/mdk-stage1/dietlibc/syscalls.s/getdents.S b/mdk-stage1/dietlibc/syscalls.s/getdents.S
deleted file mode 100644
index f476e939d..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/getdents.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(getdents,getdents)
diff --git a/mdk-stage1/dietlibc/syscalls.s/getdents64.S b/mdk-stage1/dietlibc/syscalls.s/getdents64.S
deleted file mode 100644
index 16859addf..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/getdents64.S
+++ /dev/null
@@ -1,5 +0,0 @@
-#include "syscalls.h"
-
-#ifdef __NR_getdents64
-syscall(getdents64,getdents64)
-#endif
diff --git a/mdk-stage1/dietlibc/syscalls.s/getegid.S b/mdk-stage1/dietlibc/syscalls.s/getegid.S
deleted file mode 100644
index 64843ee35..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/getegid.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(getegid,getegid)
diff --git a/mdk-stage1/dietlibc/syscalls.s/geteuid.S b/mdk-stage1/dietlibc/syscalls.s/geteuid.S
deleted file mode 100644
index 55dc00981..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/geteuid.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(geteuid,geteuid)
diff --git a/mdk-stage1/dietlibc/syscalls.s/getgid.S b/mdk-stage1/dietlibc/syscalls.s/getgid.S
deleted file mode 100644
index 39f092685..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/getgid.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(getgid,getgid)
diff --git a/mdk-stage1/dietlibc/syscalls.s/getgroups.S b/mdk-stage1/dietlibc/syscalls.s/getgroups.S
deleted file mode 100644
index b4c57689c..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/getgroups.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(getgroups,getgroups)
diff --git a/mdk-stage1/dietlibc/syscalls.s/getitimer.S b/mdk-stage1/dietlibc/syscalls.s/getitimer.S
deleted file mode 100644
index 9a2084080..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/getitimer.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(getitimer,getitimer)
diff --git a/mdk-stage1/dietlibc/syscalls.s/getpgid.S b/mdk-stage1/dietlibc/syscalls.s/getpgid.S
deleted file mode 100644
index e568f060f..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/getpgid.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(getpgid,getpgid)
diff --git a/mdk-stage1/dietlibc/syscalls.s/getpid.S b/mdk-stage1/dietlibc/syscalls.s/getpid.S
deleted file mode 100644
index 093884785..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/getpid.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(getpid,getpid)
diff --git a/mdk-stage1/dietlibc/syscalls.s/getppid.S b/mdk-stage1/dietlibc/syscalls.s/getppid.S
deleted file mode 100644
index b05e64ae3..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/getppid.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(getppid,getppid)
diff --git a/mdk-stage1/dietlibc/syscalls.s/getpriority.S b/mdk-stage1/dietlibc/syscalls.s/getpriority.S
deleted file mode 100644
index 848b27ed7..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/getpriority.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(getpriority,getpriority)
diff --git a/mdk-stage1/dietlibc/syscalls.s/getresgid.S b/mdk-stage1/dietlibc/syscalls.s/getresgid.S
deleted file mode 100644
index a1d873c15..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/getresgid.S
+++ /dev/null
@@ -1,7 +0,0 @@
-#include "syscalls.h"
-
-#ifdef __NR_getresgid
-
-syscall(getresgid,getresgid)
-
-#endif
diff --git a/mdk-stage1/dietlibc/syscalls.s/getresuid.S b/mdk-stage1/dietlibc/syscalls.s/getresuid.S
deleted file mode 100644
index 62f6d764f..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/getresuid.S
+++ /dev/null
@@ -1,7 +0,0 @@
-#include "syscalls.h"
-
-#ifdef __getresuid
-
-syscall(getresuid)
-
-#endif
diff --git a/mdk-stage1/dietlibc/syscalls.s/getrlimit.S b/mdk-stage1/dietlibc/syscalls.s/getrlimit.S
deleted file mode 100644
index 1c63c0196..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/getrlimit.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(getrlimit,getrlimit)
diff --git a/mdk-stage1/dietlibc/syscalls.s/getrusage.S b/mdk-stage1/dietlibc/syscalls.s/getrusage.S
deleted file mode 100644
index 2972c4938..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/getrusage.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(getrusage,getrusage)
diff --git a/mdk-stage1/dietlibc/syscalls.s/getsid.S b/mdk-stage1/dietlibc/syscalls.s/getsid.S
deleted file mode 100644
index cf5cce9d5..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/getsid.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(getsid,getsid)
diff --git a/mdk-stage1/dietlibc/syscalls.s/gettimeofday.S b/mdk-stage1/dietlibc/syscalls.s/gettimeofday.S
deleted file mode 100644
index f364b787a..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/gettimeofday.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(gettimeofday,gettimeofday)
diff --git a/mdk-stage1/dietlibc/syscalls.s/getuid.S b/mdk-stage1/dietlibc/syscalls.s/getuid.S
deleted file mode 100644
index c53c25a7a..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/getuid.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(getuid,getuid)
diff --git a/mdk-stage1/dietlibc/syscalls.s/ioctl.S b/mdk-stage1/dietlibc/syscalls.s/ioctl.S
deleted file mode 100644
index 463d319dc..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/ioctl.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(ioctl,ioctl)
diff --git a/mdk-stage1/dietlibc/syscalls.s/ioperm.S b/mdk-stage1/dietlibc/syscalls.s/ioperm.S
deleted file mode 100644
index 0acfde07a..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/ioperm.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(ioperm,ioperm)
diff --git a/mdk-stage1/dietlibc/syscalls.s/iopl.S b/mdk-stage1/dietlibc/syscalls.s/iopl.S
deleted file mode 100644
index 06a6c53fb..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/iopl.S
+++ /dev/null
@@ -1,6 +0,0 @@
-
-#include "syscalls.h"
-
-#ifdef __NR_iopl
-syscall(iopl,iopl)
-#endif
diff --git a/mdk-stage1/dietlibc/syscalls.s/ipc.S b/mdk-stage1/dietlibc/syscalls.s/ipc.S
deleted file mode 100644
index 40479400d..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/ipc.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(ipc,__ipc)
diff --git a/mdk-stage1/dietlibc/syscalls.s/kill.S b/mdk-stage1/dietlibc/syscalls.s/kill.S
deleted file mode 100644
index eb466dd33..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/kill.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(kill,kill)
diff --git a/mdk-stage1/dietlibc/syscalls.s/lchown.S b/mdk-stage1/dietlibc/syscalls.s/lchown.S
deleted file mode 100644
index 19dfefaef..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/lchown.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(lchown,lchown)
diff --git a/mdk-stage1/dietlibc/syscalls.s/link.S b/mdk-stage1/dietlibc/syscalls.s/link.S
deleted file mode 100644
index 8015d11c8..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/link.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(link,link)
diff --git a/mdk-stage1/dietlibc/syscalls.s/llseek.S b/mdk-stage1/dietlibc/syscalls.s/llseek.S
deleted file mode 100644
index 0318b492e..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/llseek.S
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "dietfeatures.h"
-#include "syscalls.h"
-
-#ifdef __NR__llseek
-syscall(_llseek,llseek)
-#endif
diff --git a/mdk-stage1/dietlibc/syscalls.s/lseek.S b/mdk-stage1/dietlibc/syscalls.s/lseek.S
deleted file mode 100644
index 93707a22a..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/lseek.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall_weak(lseek,lseek,__libc_lseek)
diff --git a/mdk-stage1/dietlibc/syscalls.s/lstat.S b/mdk-stage1/dietlibc/syscalls.s/lstat.S
deleted file mode 100644
index 5720161c0..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/lstat.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(lstat,lstat)
diff --git a/mdk-stage1/dietlibc/syscalls.s/lstat64.S b/mdk-stage1/dietlibc/syscalls.s/lstat64.S
deleted file mode 100644
index 33fd5ab94..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/lstat64.S
+++ /dev/null
@@ -1,8 +0,0 @@
-#include "dietfeatures.h"
-#include "syscalls.h"
-
-#ifdef WANT_LARGEFILE_BACKCOMPAT
-syscall(lstat64,__dietlibc_lstat64)
-#else
-syscall(lstat64,lstat64)
-#endif
diff --git a/mdk-stage1/dietlibc/syscalls.s/mkdir.S b/mdk-stage1/dietlibc/syscalls.s/mkdir.S
deleted file mode 100644
index d6214ee46..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/mkdir.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(mkdir,mkdir)
diff --git a/mdk-stage1/dietlibc/syscalls.s/mknod.S b/mdk-stage1/dietlibc/syscalls.s/mknod.S
deleted file mode 100644
index c1b2af12d..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/mknod.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(mknod,mknod)
diff --git a/mdk-stage1/dietlibc/syscalls.s/mlockall.S b/mdk-stage1/dietlibc/syscalls.s/mlockall.S
deleted file mode 100644
index 6ad0eef9d..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/mlockall.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(mlockall,mlockall)
diff --git a/mdk-stage1/dietlibc/syscalls.s/mount.S b/mdk-stage1/dietlibc/syscalls.s/mount.S
deleted file mode 100644
index 2fd845561..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/mount.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(mount,mount)
diff --git a/mdk-stage1/dietlibc/syscalls.s/mprotect.S b/mdk-stage1/dietlibc/syscalls.s/mprotect.S
deleted file mode 100644
index 73e9a8e17..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/mprotect.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(mprotect,mprotect)
diff --git a/mdk-stage1/dietlibc/syscalls.s/mremap.S b/mdk-stage1/dietlibc/syscalls.s/mremap.S
deleted file mode 100644
index 259ccec99..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/mremap.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(mremap,mremap)
diff --git a/mdk-stage1/dietlibc/syscalls.s/munlockall.S b/mdk-stage1/dietlibc/syscalls.s/munlockall.S
deleted file mode 100644
index 776811dea..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/munlockall.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(munlockall,munlockall)
diff --git a/mdk-stage1/dietlibc/syscalls.s/munmap.S b/mdk-stage1/dietlibc/syscalls.s/munmap.S
deleted file mode 100644
index b43a7b22d..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/munmap.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(munmap,munmap)
diff --git a/mdk-stage1/dietlibc/syscalls.s/nanosleep.S b/mdk-stage1/dietlibc/syscalls.s/nanosleep.S
deleted file mode 100644
index 279a52604..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/nanosleep.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall_weak(nanosleep,nanosleep,__libc_nanosleep)
diff --git a/mdk-stage1/dietlibc/syscalls.s/nice.S b/mdk-stage1/dietlibc/syscalls.s/nice.S
deleted file mode 100644
index 7d3f740b2..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/nice.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(nice,nice)
diff --git a/mdk-stage1/dietlibc/syscalls.s/open.S b/mdk-stage1/dietlibc/syscalls.s/open.S
deleted file mode 100644
index 280efd0d9..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/open.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall_weak(open,open,__libc_open)
diff --git a/mdk-stage1/dietlibc/syscalls.s/pause.S b/mdk-stage1/dietlibc/syscalls.s/pause.S
deleted file mode 100644
index cdf42cabd..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/pause.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall_weak(pause,pause,__libc_pause)
diff --git a/mdk-stage1/dietlibc/syscalls.s/personality.S b/mdk-stage1/dietlibc/syscalls.s/personality.S
deleted file mode 100644
index 34b467084..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/personality.S
+++ /dev/null
@@ -1,5 +0,0 @@
-#include "syscalls.h"
-
-#ifdef __NR_personality
-syscall(personality,personality)
-#endif
diff --git a/mdk-stage1/dietlibc/syscalls.s/pipe.S b/mdk-stage1/dietlibc/syscalls.s/pipe.S
deleted file mode 100644
index 03994d055..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/pipe.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(pipe,pipe)
diff --git a/mdk-stage1/dietlibc/syscalls.s/poll.S b/mdk-stage1/dietlibc/syscalls.s/poll.S
deleted file mode 100644
index 359f55ddd..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/poll.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(poll,poll)
diff --git a/mdk-stage1/dietlibc/syscalls.s/ptrace.s b/mdk-stage1/dietlibc/syscalls.s/ptrace.s
deleted file mode 100644
index 392e6a4ed..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/ptrace.s
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(ptrace,ptrace)
diff --git a/mdk-stage1/dietlibc/syscalls.s/pwrite.S b/mdk-stage1/dietlibc/syscalls.s/pwrite.S
deleted file mode 100644
index f52ead7b2..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/pwrite.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(pwrite,__pwrite)
diff --git a/mdk-stage1/dietlibc/syscalls.s/query_module.S b/mdk-stage1/dietlibc/syscalls.s/query_module.S
deleted file mode 100644
index cb2f1d852..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/query_module.S
+++ /dev/null
@@ -1,5 +0,0 @@
-#include "syscalls.h"
-
-#ifdef __NR_query_module
-syscall(query_module,query_module)
-#endif
diff --git a/mdk-stage1/dietlibc/syscalls.s/read.S b/mdk-stage1/dietlibc/syscalls.s/read.S
deleted file mode 100644
index 33fdb7531..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/read.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall_weak(read,read,__libc_read)
diff --git a/mdk-stage1/dietlibc/syscalls.s/readlink.S b/mdk-stage1/dietlibc/syscalls.s/readlink.S
deleted file mode 100644
index 850e77c4e..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/readlink.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(readlink,readlink)
diff --git a/mdk-stage1/dietlibc/syscalls.s/readv.S b/mdk-stage1/dietlibc/syscalls.s/readv.S
deleted file mode 100644
index 757c26bfb..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/readv.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(readv,readv)
diff --git a/mdk-stage1/dietlibc/syscalls.s/rename.S b/mdk-stage1/dietlibc/syscalls.s/rename.S
deleted file mode 100644
index f92f1dc5d..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/rename.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(rename,rename)
diff --git a/mdk-stage1/dietlibc/syscalls.s/rmdir.S b/mdk-stage1/dietlibc/syscalls.s/rmdir.S
deleted file mode 100644
index 341216e8c..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/rmdir.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(rmdir,rmdir)
diff --git a/mdk-stage1/dietlibc/syscalls.s/sched_get_priority_max.S b/mdk-stage1/dietlibc/syscalls.s/sched_get_priority_max.S
deleted file mode 100644
index caf403672..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/sched_get_priority_max.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(sched_get_priority_max,sched_get_priority_max)
diff --git a/mdk-stage1/dietlibc/syscalls.s/sched_get_priority_min.S b/mdk-stage1/dietlibc/syscalls.s/sched_get_priority_min.S
deleted file mode 100644
index a0c3337dc..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/sched_get_priority_min.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(sched_get_priority_min,sched_get_priority_min)
diff --git a/mdk-stage1/dietlibc/syscalls.s/sched_getparam.S b/mdk-stage1/dietlibc/syscalls.s/sched_getparam.S
deleted file mode 100644
index 7190a40ae..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/sched_getparam.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(sched_getparam,sched_getparam)
diff --git a/mdk-stage1/dietlibc/syscalls.s/sched_getscheduler.S b/mdk-stage1/dietlibc/syscalls.s/sched_getscheduler.S
deleted file mode 100644
index 08709b65e..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/sched_getscheduler.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(sched_getscheduler,sched_getscheduler)
diff --git a/mdk-stage1/dietlibc/syscalls.s/sched_rr_get_interval.S b/mdk-stage1/dietlibc/syscalls.s/sched_rr_get_interval.S
deleted file mode 100644
index 150b9a98d..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/sched_rr_get_interval.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(sched_rr_get_interval,sched_rr_get_interval)
diff --git a/mdk-stage1/dietlibc/syscalls.s/sched_setparam.S b/mdk-stage1/dietlibc/syscalls.s/sched_setparam.S
deleted file mode 100644
index 3a6dd1dcc..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/sched_setparam.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(sched_setparam,sched_setparam)
diff --git a/mdk-stage1/dietlibc/syscalls.s/sched_setscheduler.S b/mdk-stage1/dietlibc/syscalls.s/sched_setscheduler.S
deleted file mode 100644
index 27869d6ce..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/sched_setscheduler.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(sched_setscheduler,sched_setscheduler)
diff --git a/mdk-stage1/dietlibc/syscalls.s/sched_yield.S b/mdk-stage1/dietlibc/syscalls.s/sched_yield.S
deleted file mode 100644
index ccb9ac1d0..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/sched_yield.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(sched_yield,sched_yield)
diff --git a/mdk-stage1/dietlibc/syscalls.s/select.S b/mdk-stage1/dietlibc/syscalls.s/select.S
deleted file mode 100644
index f585d0449..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/select.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(select,select)
diff --git a/mdk-stage1/dietlibc/syscalls.s/sendfile.S b/mdk-stage1/dietlibc/syscalls.s/sendfile.S
deleted file mode 100644
index 12d6195dd..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/sendfile.S
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "syscalls.h"
-#include "dietwarning.h"
-
-syscall_weak(sendfile,sendfile,__libc_sendfile)
-
-link_warning(sendfile,"sendfile is not portable and does not support large files")
diff --git a/mdk-stage1/dietlibc/syscalls.s/setdomainname.S b/mdk-stage1/dietlibc/syscalls.s/setdomainname.S
deleted file mode 100644
index eaade25da..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/setdomainname.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(setdomainname,setdomainname)
diff --git a/mdk-stage1/dietlibc/syscalls.s/setgid.S b/mdk-stage1/dietlibc/syscalls.s/setgid.S
deleted file mode 100644
index 69b18a9c9..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/setgid.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(setgid,setgid)
diff --git a/mdk-stage1/dietlibc/syscalls.s/setgroups.S b/mdk-stage1/dietlibc/syscalls.s/setgroups.S
deleted file mode 100644
index ce8e800a6..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/setgroups.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(setgroups,setgroups)
diff --git a/mdk-stage1/dietlibc/syscalls.s/sethostname.S b/mdk-stage1/dietlibc/syscalls.s/sethostname.S
deleted file mode 100644
index 7616d4848..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/sethostname.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(sethostname,sethostname)
diff --git a/mdk-stage1/dietlibc/syscalls.s/setitimer.S b/mdk-stage1/dietlibc/syscalls.s/setitimer.S
deleted file mode 100644
index bcb0623ba..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/setitimer.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(setitimer,setitimer)
diff --git a/mdk-stage1/dietlibc/syscalls.s/setpgid.S b/mdk-stage1/dietlibc/syscalls.s/setpgid.S
deleted file mode 100644
index e93db31dc..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/setpgid.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(setpgid,setpgid)
diff --git a/mdk-stage1/dietlibc/syscalls.s/setpriority.S b/mdk-stage1/dietlibc/syscalls.s/setpriority.S
deleted file mode 100644
index 57d7bc388..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/setpriority.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(setpriority,setpriority)
diff --git a/mdk-stage1/dietlibc/syscalls.s/setregid.S b/mdk-stage1/dietlibc/syscalls.s/setregid.S
deleted file mode 100644
index 3a7abbc28..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/setregid.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(setregid,setregid)
diff --git a/mdk-stage1/dietlibc/syscalls.s/setresgid.S b/mdk-stage1/dietlibc/syscalls.s/setresgid.S
deleted file mode 100644
index 64cbac94e..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/setresgid.S
+++ /dev/null
@@ -1,7 +0,0 @@
-#include "syscalls.h"
-
-#ifdef __setresgid
-
-syscall(setresgid)
-
-#endif
diff --git a/mdk-stage1/dietlibc/syscalls.s/setresuid.S b/mdk-stage1/dietlibc/syscalls.s/setresuid.S
deleted file mode 100644
index 20b6abee9..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/setresuid.S
+++ /dev/null
@@ -1,7 +0,0 @@
-#include "syscalls.h"
-
-#ifdef __setresuid
-
-syscall(setresuid)
-
-#endif
diff --git a/mdk-stage1/dietlibc/syscalls.s/setreuid.S b/mdk-stage1/dietlibc/syscalls.s/setreuid.S
deleted file mode 100644
index 33ca8deed..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/setreuid.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(setreuid,setreuid)
diff --git a/mdk-stage1/dietlibc/syscalls.s/setrlimit.S b/mdk-stage1/dietlibc/syscalls.s/setrlimit.S
deleted file mode 100644
index 605105658..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/setrlimit.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(setrlimit,setrlimit)
diff --git a/mdk-stage1/dietlibc/syscalls.s/setsid.S b/mdk-stage1/dietlibc/syscalls.s/setsid.S
deleted file mode 100644
index d1ef1c58e..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/setsid.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(setsid,setsid)
diff --git a/mdk-stage1/dietlibc/syscalls.s/setuid.S b/mdk-stage1/dietlibc/syscalls.s/setuid.S
deleted file mode 100644
index d20571cbf..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/setuid.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(setuid,setuid)
diff --git a/mdk-stage1/dietlibc/syscalls.s/sigaction.S b/mdk-stage1/dietlibc/syscalls.s/sigaction.S
deleted file mode 100644
index 32382870c..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/sigaction.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(sigaction,sigaction)
diff --git a/mdk-stage1/dietlibc/syscalls.s/sigaltstack.S b/mdk-stage1/dietlibc/syscalls.s/sigaltstack.S
deleted file mode 100644
index b07d90f40..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/sigaltstack.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall_weak(sigaltstack,sigaltstack,__sigaltstack)
diff --git a/mdk-stage1/dietlibc/syscalls.s/signal.S b/mdk-stage1/dietlibc/syscalls.s/signal.S
deleted file mode 100644
index 86c4d5db0..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/signal.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(signal,signal)
diff --git a/mdk-stage1/dietlibc/syscalls.s/sigpending.S b/mdk-stage1/dietlibc/syscalls.s/sigpending.S
deleted file mode 100644
index 08715bef5..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/sigpending.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(sigpending,sigpending)
diff --git a/mdk-stage1/dietlibc/syscalls.s/sigprocmask.S b/mdk-stage1/dietlibc/syscalls.s/sigprocmask.S
deleted file mode 100644
index 07f5b9d26..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/sigprocmask.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall_weak(sigprocmask,sigprocmask,__sigprocmask)
diff --git a/mdk-stage1/dietlibc/syscalls.s/sigsuspend.S b/mdk-stage1/dietlibc/syscalls.s/sigsuspend.S
deleted file mode 100644
index 062264ab6..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/sigsuspend.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall_weak(sigsuspend,sigsuspend,__libc_sigsuspend)
diff --git a/mdk-stage1/dietlibc/syscalls.s/socketcall.S b/mdk-stage1/dietlibc/syscalls.s/socketcall.S
deleted file mode 100644
index 5837c049a..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/socketcall.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(socketcall,socketcall)
diff --git a/mdk-stage1/dietlibc/syscalls.s/stat.S b/mdk-stage1/dietlibc/syscalls.s/stat.S
deleted file mode 100644
index 2aa3bc088..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/stat.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(stat,stat)
diff --git a/mdk-stage1/dietlibc/syscalls.s/stat64.S b/mdk-stage1/dietlibc/syscalls.s/stat64.S
deleted file mode 100644
index 734fcab20..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/stat64.S
+++ /dev/null
@@ -1,8 +0,0 @@
-#include "dietfeatures.h"
-#include "syscalls.h"
-
-#ifdef WANT_LARGEFILE_BACKCOMPAT
-syscall(stat64,__dietlibc_stat64)
-#else
-syscall(stat64,stat64)
-#endif
diff --git a/mdk-stage1/dietlibc/syscalls.s/statfs.S b/mdk-stage1/dietlibc/syscalls.s/statfs.S
deleted file mode 100644
index 7560f569d..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/statfs.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(statfs,statfs)
diff --git a/mdk-stage1/dietlibc/syscalls.s/stime.S b/mdk-stage1/dietlibc/syscalls.s/stime.S
deleted file mode 100644
index 9d9f5bf0a..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/stime.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(stime,stime)
diff --git a/mdk-stage1/dietlibc/syscalls.s/swapoff.S b/mdk-stage1/dietlibc/syscalls.s/swapoff.S
deleted file mode 100644
index f75ec94e0..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/swapoff.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(swapoff,swapoff)
diff --git a/mdk-stage1/dietlibc/syscalls.s/swapon.S b/mdk-stage1/dietlibc/syscalls.s/swapon.S
deleted file mode 100644
index d10594168..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/swapon.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(swapon,swapon)
diff --git a/mdk-stage1/dietlibc/syscalls.s/symlink.S b/mdk-stage1/dietlibc/syscalls.s/symlink.S
deleted file mode 100644
index 07a6a7fdc..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/symlink.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(symlink,symlink)
diff --git a/mdk-stage1/dietlibc/syscalls.s/sync.S b/mdk-stage1/dietlibc/syscalls.s/sync.S
deleted file mode 100644
index 1ee021693..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/sync.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(sync,sync)
diff --git a/mdk-stage1/dietlibc/syscalls.s/sysctl.S b/mdk-stage1/dietlibc/syscalls.s/sysctl.S
deleted file mode 100644
index 536e62b3d..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/sysctl.S
+++ /dev/null
@@ -1,5 +0,0 @@
-#include "syscalls.h"
-
-#ifdef __NR_sysctl
-syscall(sysctl,_sysctl)
-#endif
diff --git a/mdk-stage1/dietlibc/syscalls.s/sysinfo.S b/mdk-stage1/dietlibc/syscalls.s/sysinfo.S
deleted file mode 100644
index eaec7941e..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/sysinfo.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(sysinfo,sysinfo)
diff --git a/mdk-stage1/dietlibc/syscalls.s/syslog.S b/mdk-stage1/dietlibc/syscalls.s/syslog.S
deleted file mode 100644
index 6af3c4eac..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/syslog.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(syslog,__syscall_syslog)
diff --git a/mdk-stage1/dietlibc/syscalls.s/time.S b/mdk-stage1/dietlibc/syscalls.s/time.S
deleted file mode 100644
index 26c79091c..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/time.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(time,time)
diff --git a/mdk-stage1/dietlibc/syscalls.s/times.S b/mdk-stage1/dietlibc/syscalls.s/times.S
deleted file mode 100644
index dcc8a6dd0..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/times.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(times,times)
diff --git a/mdk-stage1/dietlibc/syscalls.s/truncate.S b/mdk-stage1/dietlibc/syscalls.s/truncate.S
deleted file mode 100644
index 7052bdcee..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/truncate.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(truncate,truncate)
diff --git a/mdk-stage1/dietlibc/syscalls.s/umask.S b/mdk-stage1/dietlibc/syscalls.s/umask.S
deleted file mode 100644
index 9f8ffeda6..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/umask.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(umask,umask)
diff --git a/mdk-stage1/dietlibc/syscalls.s/umount.S b/mdk-stage1/dietlibc/syscalls.s/umount.S
deleted file mode 100644
index 4a423d964..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/umount.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(umount,umount)
diff --git a/mdk-stage1/dietlibc/syscalls.s/umount2.S b/mdk-stage1/dietlibc/syscalls.s/umount2.S
deleted file mode 100644
index 4cdd6a200..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/umount2.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(umount2,umount2)
diff --git a/mdk-stage1/dietlibc/syscalls.s/uname.S b/mdk-stage1/dietlibc/syscalls.s/uname.S
deleted file mode 100644
index a460d2aa6..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/uname.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(uname,uname)
diff --git a/mdk-stage1/dietlibc/syscalls.s/unlink.S b/mdk-stage1/dietlibc/syscalls.s/unlink.S
deleted file mode 100644
index bd6713061..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/unlink.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(unlink,unlink)
diff --git a/mdk-stage1/dietlibc/syscalls.s/utime.S b/mdk-stage1/dietlibc/syscalls.s/utime.S
deleted file mode 100644
index 08cd22158..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/utime.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(utime,utime)
diff --git a/mdk-stage1/dietlibc/syscalls.s/vhangup.S b/mdk-stage1/dietlibc/syscalls.s/vhangup.S
deleted file mode 100644
index 6e2d1d343..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/vhangup.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(vhangup,vhangup)
diff --git a/mdk-stage1/dietlibc/syscalls.s/wait4.S b/mdk-stage1/dietlibc/syscalls.s/wait4.S
deleted file mode 100644
index ca6773569..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/wait4.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(wait4,wait4)
diff --git a/mdk-stage1/dietlibc/syscalls.s/waitpid.S b/mdk-stage1/dietlibc/syscalls.s/waitpid.S
deleted file mode 100644
index 5cdc18afb..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/waitpid.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall_weak(waitpid,waitpid,__libc_waitpid)
diff --git a/mdk-stage1/dietlibc/syscalls.s/write.S b/mdk-stage1/dietlibc/syscalls.s/write.S
deleted file mode 100644
index ba20395df..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/write.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall_weak(write,write,__libc_write)
diff --git a/mdk-stage1/dietlibc/syscalls.s/writev.S b/mdk-stage1/dietlibc/syscalls.s/writev.S
deleted file mode 100644
index 8ec7aa6b0..000000000
--- a/mdk-stage1/dietlibc/syscalls.s/writev.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "syscalls.h"
-
-syscall(writev,writev)
diff --git a/mdk-stage1/disk.c b/mdk-stage1/disk.c
deleted file mode 100644
index 8488a767e..000000000
--- a/mdk-stage1/disk.c
+++ /dev/null
@@ -1,342 +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.
- *
- */
-
-/*
- * Portions from Erik Troan (ewt@redhat.com)
- *
- * Copyright 1996 Red Hat Software
- *
- */
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/mount.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include "stage1.h"
-#include "frontend.h"
-#include "modules.h"
-#include "probing.h"
-#include "log.h"
-#include "mount.h"
-#include "lomount.h"
-#include "automatic.h"
-
-#include "disk.h"
-
-struct partition_detection_anchor {
- off_t offset;
- const char * anchor;
-};
-
-static int seek_and_compare(int fd, struct partition_detection_anchor anch)
-{
- char buf[500];
- size_t count;
- if (lseek(fd, anch.offset, SEEK_SET) == (off_t)-1) {
- log_perror("seek failed");
- return -1;
- }
- count = read(fd, buf, strlen(anch.anchor));
- if (count != strlen(anch.anchor)) {
- log_perror("read failed");
- return -1;
- }
- buf[count] = '\0';
- if (strcmp(anch.anchor, buf))
- return 1;
- return 0;
-}
-
-static const char * detect_partition_type(char * dev)
-{
- struct partition_detection_info {
- const char * name;
- struct partition_detection_anchor anchor0;
- struct partition_detection_anchor anchor1;
- struct partition_detection_anchor anchor2;
- };
- 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 } },
- { "ReiserFS", { 0x10034, "ReIsErFs" }, { 0, NULL }, { 0, NULL } },
- { "ReiserFS", { 0x10034, "ReIsEr2Fs" }, { 0, NULL }, { 0, NULL } },
- { "XFS", { 0, "XFSB" }, { 0x200, "XAGF" }, { 0x400, "XAGI" } },
- { "JFS", { 0x8000, "JFS1" }, { 0, NULL }, { 0, NULL } },
- { "NTFS", { 0x1FE, "\x55\xAA" }, { 0x3, "NTFS" }, { 0, NULL } },
- { "FAT32", { 0x1FE, "\x55\xAA" }, { 0x52, "FAT32" }, { 0, NULL } },
- { "FAT", { 0x1FE, "\x55\xAA" }, { 0x36, "FAT" }, { 0, NULL } },
- { "Linux LVM", { 0, "HM\1\0" }, { 0, NULL }, { 0, NULL } }
- };
- int partitions_signatures_nb = sizeof(partitions_signatures) / sizeof(struct partition_detection_info);
- int i;
- int fd;
-
- char device_fullname[50];
- strcpy(device_fullname, "/dev/");
- strcat(device_fullname, dev);
-
- if (ensure_dev_exists(device_fullname))
- return NULL;
- log_message("guessing type of %s", device_fullname);
-
- if ((fd = open(device_fullname, O_RDONLY, 0)) < 0) {
- log_perror("open");
- return NULL;
- }
-
- for (i=0; i<partitions_signatures_nb; i++) {
- int results = seek_and_compare(fd, partitions_signatures[i].anchor0);
- if (results == -1)
- goto detect_partition_type_end;
- if (results == 1)
- continue;
- if (!partitions_signatures[i].anchor1.anchor)
- goto detect_partition_found_it;
-
- results = seek_and_compare(fd, partitions_signatures[i].anchor1);
- if (results == -1)
- goto detect_partition_type_end;
- if (results == 1)
- continue;
- if (!partitions_signatures[i].anchor2.anchor)
- goto detect_partition_found_it;
-
- results = seek_and_compare(fd, partitions_signatures[i].anchor2);
- if (results == -1)
- goto detect_partition_type_end;
- if (results == 1)
- continue;
-
- detect_partition_found_it:
- return partitions_signatures[i].name;
- }
-
- detect_partition_type_end:
- close(fd);
- return NULL;
-}
-
-static char * disk_extract_list_directory(char * direct)
-{
- char ** full = list_directory(direct);
- char tmp[2000] = "";
- int i;
- for (i=0; i<5 ; i++) {
- if (!full || !*full)
- break;
- strcat(tmp, *full);
- strcat(tmp, "\n");
- full++;
- }
- return strdup(tmp);
-}
-
-static enum return_type try_with_device(char *dev_name)
-{
- char * questions_location[] = { "Directory or ISO image", NULL };
- char * questions_location_auto[] = { "directory", NULL };
- static char ** answers_location = NULL;
- char device_fullname[50];
- char location_full[500];
-
- char * disk_own_mount = "/tmp/hdimage";
-
- int major, minor, blocks;
- char name[100];
-
- char buf[512];
- FILE * f;
- char * parts[50];
- char * parts_comments[50];
- struct stat statbuf;
- int i = 0;
- enum return_type results;
- char * choice;
-
- if (!(f = fopen("/proc/partitions", "rb")) || !fgets(buf, sizeof(buf), f) || !fgets(buf, sizeof(buf), f)) {
- log_perror(dev_name);
- stg1_error_message("Could not read partitions information.");
- return RETURN_ERROR;
- }
-
- while (fgets(buf, sizeof(buf), f)) {
- bzero(name, sizeof(name));
- sscanf(buf, " %d %d %d %s", &major, &minor, &blocks, name);
- if ((strstr(name, dev_name) == name) && (blocks > 1) && (name[strlen(dev_name)] != '\0')) {
- const char * partition_type = detect_partition_type(name);
- parts[i] = strdup(name);
- parts_comments[i] = (char *) malloc(sizeof(char) * 100);
- sprintf(parts_comments[i], "size: %d Mbytes", blocks >> 10);
- if (partition_type) {
- strcat(parts_comments[i], ", type: ");
- strcat(parts_comments[i], partition_type);
- }
- i++;
- }
- }
- parts[i] = NULL;
- fclose(f);
-
- if (parts[0] == NULL) {
- stg1_error_message("No partitions found.");
- return RETURN_ERROR;
- }
-
- results = ask_from_list_comments_auto("Please choose the partition where " DISTRIB_NAME " is copied.",
- parts, parts_comments, &choice, "partition", parts);
- if (results != RETURN_OK)
- return results;
-
- strcpy(device_fullname, "/dev/");
- strcat(device_fullname, choice);
-
- if (my_mount(device_fullname, disk_own_mount, "ext2", 0) == -1 &&
- my_mount(device_fullname, disk_own_mount, "vfat", 0) == -1 &&
- my_mount(device_fullname, disk_own_mount, "reiserfs", 0) == -1) {
- stg1_error_message("I can't find a valid filesystem (tried: ext2, vfat, reiserfs).");
- return try_with_device(dev_name);
- }
-
- if (ask_from_entries_auto("Please enter the directory (or ISO image file) containing the " DISTRIB_NAME " Distribution.",
- questions_location, &answers_location, 24, questions_location_auto, NULL) != RETURN_OK) {
- umount(disk_own_mount);
- return try_with_device(dev_name);
- }
-
- strcpy(location_full, disk_own_mount);
- strcat(location_full, "/");
- strcat(location_full, answers_location[0]);
-
- if (access(location_full, R_OK)) {
- 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 root of the partition:\n"
- "%s", disk_extract_list_directory(disk_own_mount));
- umount(disk_own_mount);
- return try_with_device(dev_name);
- }
-
- unlink(IMAGE_LOCATION);
-
- if (!stat(location_full, &statbuf) && !S_ISDIR(statbuf.st_mode)) {
- log_message("%s exists and is not a directory, assuming this is an ISO image", location_full);
- if (lomount(location_full, IMAGE_LOCATION)) {
- stg1_error_message("Could not mount file %s as an ISO image of the " DISTRIB_NAME " Distribution.", answers_location[0]);
- umount(disk_own_mount);
- return try_with_device(dev_name);
- }
- } else
- symlink(location_full, IMAGE_LOCATION);
-
- if (IS_SPECIAL_STAGE2 || ramdisk_possible()) {
- /* RAMDISK install */
- if (access(IMAGE_LOCATION RAMDISK_LOCATION, R_OK)) {
- stg1_error_message("I can't find the " DISTRIB_NAME " Distribution in the specified directory. "
- "(I need the subdirectory " RAMDISK_LOCATION ")\n"
- "Here's a short extract of the files in the directory:\n"
- "%s", disk_extract_list_directory(IMAGE_LOCATION));
- loumount();
- umount(disk_own_mount);
- return try_with_device(dev_name);
- }
- if (load_ramdisk() != RETURN_OK) {
- stg1_error_message("Could not load program into memory.");
- loumount();
- umount(disk_own_mount);
- return try_with_device(dev_name);
- }
- } else {
- /* LIVE install */
- char p;
- if (access(IMAGE_LOCATION LIVE_LOCATION, R_OK)) {
- stg1_error_message("I can't find the " DISTRIB_NAME " Distribution in the specified directory. "
- "(I need the subdirectory " LIVE_LOCATION ")\n"
- "Here's a short extract of the files in the directory:\n"
- "%s", disk_extract_list_directory(IMAGE_LOCATION));
- loumount();
- umount(disk_own_mount);
- return try_with_device(dev_name);
- }
- if (readlink(IMAGE_LOCATION LIVE_LOCATION "/usr/bin/runinstall2", &p, 1) != 1) {
- stg1_error_message("The " DISTRIB_NAME " Distribution seems to be copied on a Windows partition. "
- "You need more memory to perform an installation from a Windows partition. "
- "Another solution if to copy the " DISTRIB_NAME " Distribution on a Linux partition.");
- loumount();
- umount(disk_own_mount);
- return try_with_device(dev_name);
- }
- log_message("found the " DISTRIB_NAME " Installation, good news!");
- }
-
- if (IS_RESCUE) {
- loumount();
- umount(disk_own_mount);
- }
-
- method_name = strdup("disk");
- return RETURN_OK;
-}
-
-enum return_type disk_prepare(void)
-{
- char ** medias, ** ptr, ** medias_models;
- char * choice;
- int i, count = 0;
- enum return_type results;
-
- my_insmod("sd_mod", ANY_DRIVER_TYPE, NULL);
-
- get_medias(DISK, &medias, &medias_models);
-
- ptr = medias;
- while (ptr && *ptr) {
- count++;
- ptr++;
- }
-
- if (count == 0) {
- stg1_error_message("No DISK drive found.");
- i = ask_insmod(SCSI_ADAPTERS);
- if (i == RETURN_BACK)
- return RETURN_BACK;
- return disk_prepare();
- }
-
- if (count == 1) {
- results = try_with_device(*medias);
- if (results == RETURN_OK)
- return RETURN_OK;
- i = ask_insmod(SCSI_ADAPTERS);
- if (i == RETURN_BACK)
- return RETURN_BACK;
- return disk_prepare();
- }
-
- results = ask_from_list_comments_auto("Please choose the DISK drive on which you copied the " DISTRIB_NAME " Distribution.",
- medias, medias_models, &choice, "disk", medias);
-
- if (results != RETURN_OK)
- return results;
-
- results = try_with_device(choice);
- if (results == RETURN_OK)
- return RETURN_OK;
- i = ask_insmod(SCSI_ADAPTERS);
- if (i == RETURN_BACK)
- return RETURN_BACK;
- return disk_prepare();
-}
diff --git a/mdk-stage1/disk.h b/mdk-stage1/disk.h
deleted file mode 100644
index 54213cf68..000000000
--- a/mdk-stage1/disk.h
+++ /dev/null
@@ -1,27 +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.
- *
- */
-
-/*
- * Portions from Erik Troan (ewt@redhat.com)
- *
- * Copyright 1996 Red Hat Software
- *
- */
-
-#ifndef _DISK_H_
-#define _DISK_H_
-
-enum return_type disk_prepare(void);
-
-#endif
diff --git a/mdk-stage1/dns.c b/mdk-stage1/dns.c
deleted file mode 100644
index d1e67c78d..000000000
--- a/mdk-stage1/dns.c
+++ /dev/null
@@ -1,213 +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.
- *
- */
-
-/*
- * Portions from Erik Troan (ewt@redhat.com)
- *
- * Copyright 1996 Red Hat Software
- *
- */
-
-#include <stdlib.h>
-
-// dietlibc can do hostname lookup, whereas glibc can't when linked statically :-(
-
-#ifdef __LIBC_DIETLIBC__
-
-#include <unistd.h>
-#include <string.h>
-#include <stdio.h>
-#include <netdb.h>
-#include <sys/socket.h>
-
-#include "network.h"
-#include "log.h"
-
-#include "dns.h"
-
-int mygethostbyname(char * name, struct in_addr * addr)
-{
- struct hostent * h = gethostbyname(name);
- if (!h) {
- if (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 (!h) {
- log_message("unknown host %s", name);
- return -1;
- }
- } else
- return -1;
- }
-
- if (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;
- }
- return -1;
-}
-
-char * mygethostbyaddr(char * ipnum)
-{
- struct in_addr in;
- struct hostent * host;
- if (!inet_aton(ipnum, &in))
- return NULL;
- host = gethostbyaddr(&in, strlen((void *) &in), AF_INET);
- if (host && host->h_name)
- return host->h_name;
- return NULL;
-}
-
-
-#else // __LIBC_DIETLIBC__
-
-#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"
-
-#include "dns.h"
-
-/* 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;
-}
-
-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;
-}
-
-#endif
diff --git a/mdk-stage1/dns.h b/mdk-stage1/dns.h
deleted file mode 100644
index 97af9c08a..000000000
--- a/mdk-stage1/dns.h
+++ /dev/null
@@ -1,30 +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.
- *
- */
-
-/*
- * Portions from Erik Troan (ewt@redhat.com)
- *
- * Copyright 1996 Red Hat Software
- *
- */
-
-#ifndef H_DNS
-#define H_DNS
-
-#include <netinet/in.h>
-
-int mygethostbyname(char * name, struct in_addr * addr);
-char * mygethostbyaddr(char * ipnum);
-
-#endif
diff --git a/mdk-stage1/doc/HACKING b/mdk-stage1/doc/HACKING
deleted file mode 100644
index d196c8010..000000000
--- a/mdk-stage1/doc/HACKING
+++ /dev/null
@@ -1,31 +0,0 @@
-If you have to boot pretty often, you'll appreciate to speed the things up
-a little.
-
-Here's what we use: the GRUB feature to boot from the network using the
-DHCP protocol and the TFTP protocol.
-
-Here's the "menu.lst" to do that:
-
--=-=--
-
-timeout 0
-
-title linux
-dhcp
-tftpserver 192.168.1.17
-kernel (nd)/tftpboot/gc/vmlinuz ramdisk=32000 vga=788
-initrd (nd)/tftpboot/gc/network.rdz
-
--=-=--
-
-
-The option "tftpserver" is used to override the tftpserver address given
-as an answer by the DHCP server. That way, you'll not need to bother your
-system administrator to modify his dhcp server configuration.
-
-The directory /tftpboot seems to be the only one defaultly accepted by the
-server, and its subdirs.
-
-
-Of course, your GRUB needs to be compiled with the specific code for your
-network card; use ./configure --help in the GRUB build dir for more infos.
diff --git a/mdk-stage1/doc/README b/mdk-stage1/doc/README
deleted file mode 100644
index 09edce6c2..000000000
--- a/mdk-stage1/doc/README
+++ /dev/null
@@ -1,185 +0,0 @@
--------------------------------------------------------
-* Stage1 of the Mandrake Linux installation program *
--------------------------------------------------------
-
-
-[ Author ]
-
- Guillaume Cottenceau (gc@mandrakesoft.com)
-
-
-[ Copyright ]
-
- Copyright 2000 MandrakeSoft
-
- Partially inspired by Redhat stuff (install from 5.x and 7.x) copyright
- Red Hat Software, and Debian stuff (boot-floppies) copyright by their
- respective holders.
-
-
-[ Licence ]
-
- 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
- *** WARNING! ***
-
- This General Public License does not permit incorporating any part
- of this program as a library into proprietary programs.
-
-
-[ Online ]
-
- http://us.mandrakesoft.com/~gc/html/stage1.html
-
-
-[ Purpose ]
-
- This code will take the control of the computer after that Linux
- kernel booted properly, and will try to run the main installer
- (also known as "stage 2") from a series of different media
- including harddrive, cdrom, and network.
-
- Use the source, Luke.
-
-
-
-
- -=-=-- Okay, now, more details --=-=-
-
-
- [ Installing Mandrake Linux ]
-
-Per default, just insert your Mandrake Linux Installation CD into your
-CDROM tray, be sure your system BIOS is configured to boot on your CDROM,
-and that's all.
-
-If you have multiple CDROM drives and the installer can't autodetect in
-which CDROM drive is the disc, it may ask you to choose the correct drive,
-between your CDROM drives.
-
-Also, if you want to install from an SCSI CDROM, the installer should
-detect your SCSI adapter; if it fails you may have to select the right
-driver and/or supply additional parameters.
-
-
- [ Position of the problem ]
-
-The need for alternate installation methods come with more specific
-hardware configuration and/or need for frequent updates of the Installer
-software.
-
-All of these methods will require to use a special boot disk. The method
-is to download it and then to copy it "physically" to a floppy with the
-command:
-
-# dd if=<boot-disk> of=/dev/fd0
-
-Our boot disks are called "cdrom.img", "network.img", etc.
-
-
- [ Installation from CDROM ]
-
-The first situation you may encounter is an old BIOS which does not permit
-you to boot from your CDROM drive.
-
-In that case, you'll need to use the "cdrom.img" image file. The steps are
-the same as with CDROM boot, and everything should be automatic.
-
-
- [ Installation from DISK ]
-
-If you like trying occasionnally our development version, the Cooker, one
-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.
-
-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
-partition on which you copied the Distribution, then the location
-(directory) in which you copied the Distribution.
-
-
- [ Installation from NETWORK ]
-
-For convenience, you can also install from a NFS volume, from a FTP
-server, or from a HTTP server. NFS installs are maybe the fastest
-and most convenient possible, so if you need to do frequent and/or
-multiple installs, you may like this option.
-
-In that case, you'll need to use the "network.img" image file. If you have
-PCI network card(s), you'll probably have to only setup your network
-options. If not, you'll have to choose the appropriate driver(s) and/or
-optional parameters. Supported network configurations include static IP
-allocation and DHCP automatic configuration.
-
-
- [ Installation from PCMCIA ]
-
-If you want to perform an installation on your laptop that is not based on
-local IDE CDROM or DISK, nor on built-in network card, but on PCMCIA
-extension (probably a network adapter or CDROM drive), you'll need the
-"pcmcia.img" image file.
-
-PCMCIA services should automatically start and be transparent to you.
-Then, you'll follow the instructions according to your preferred
-installation method.
-
-
- [ Monitoring a stage1 session ]
-
-Linux supports virtual consoles. You can switch between them by issueing
-Ctrl+Alt+Fx key, in which 'x' is the number of the console. Here's console
-occupancy during stage1.
-
-(#1) The user-interface of the stage1 is on the first console. In case of
-newt interaction, it's provided with a neat blue and black color scheme,
-and nice widgets. In case of stdio interaction (cdrom and disk installs),
-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 Mandrake Linux
-releases because it's too much diskspace.
-
-(#3) The log is printed out on the third console. This is the location
-where you can find most valuable information, prefixed by a '*'. See
-"log.h" for calls that print things out to the log.
-
-(#4) The kernel messages are printed on the fourth console. There is a
-process forked very early in the init (the program before the stage1)
-which monitors /proc/kmsg for new kernel messages. Also, syslog stuff (the
-logs commited by the programs) should appear on the /dev/log Unix socket,
-this is also printed on this console.
-
-(#5) Former place for the stderr of insmod calls. It's not used anymore.
-
-(#6) Place where a trivial interactive communication with the stage1 is
-set up if the parameter -DSPAWN_INTERACTIVE is compiled in. Basically, you
-can set switches such as "expert" and "rescue" on the fly with this
-feature. It's implemented with a fork and a Unix pipe.
-
-
- [ Rescueing a system ]
-
-Since Mandrake 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
-disks/partitions for disk method, network parameters for network method,
-etc). Then, you'll end up with a workable system, very useful to rescue a
-damaged system, or do other basic actions.
diff --git a/mdk-stage1/doc/TECH-INFOS b/mdk-stage1/doc/TECH-INFOS
deleted file mode 100644
index 074b35d31..000000000
--- a/mdk-stage1/doc/TECH-INFOS
+++ /dev/null
@@ -1,91 +0,0 @@
-
-| (*) Automatic install
-\----------------------
-
-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:ftp,network:dhcp,server:ftp.ciril.fr,directory:/pub/linux/mandrake-devel/cooker
-
- automatic=method:ftp,network:dhcp,server:companyserver,directory:/mdkinst,user:XXX,pass:XXX
-
- automatic=method:ftp,interface:eth1,network:dhcp,...
-
- automatic=method:ftp,network:adsl,adsluser:XXX,adslpass:XXX,...
-
- automatic=method:cdrom
-
- automatic=method:disk,disk:hdb,partition:hdb7
-
-
-The keywords correspond to each "virtual" question answered automatically,
-either from a list or from a free field.
-
-
-Keywords are:
-
-
-`method' <- (nfs,ftp,http,cdrom,disk)
-
-if nfs/ftp/http:
-
- `network' <- (static,dhcp,adsl)
-
- if multiple interfaces detected:
-
- `interface' <- (list-of-detected-interfaces)
-
- fi
-
- if static:
-
- `ip', `dns', `gateway', `netmask' (free fields)
-
- elsif adsl:
-
- `adsluser', `adslpass' (free field)
-
- fi
-
- if resolving fails:
-
- `hostname', `domain' (free fields)
-
- fi
-
- `server', `directory' (free fields)
-
- if ftp:
-
- `user', `pass' (free fields)
-
- fi
-
-fi
-
-if disk:
-
- `disk' <- (list-of-detected-disks)
-
- `partition' <- (list-of-detected-partitions)
-
- `directory' (free fields)
-
-fi
-
-
-
-You may use shorter versions of keywords (it helps reducing size of
-commandline), please find each keyword short-alias counterpart in file
-../automatic.c under the identifier named "short_aliases".
-
-This gives for example for:
-
- automatic=method:nfs,network:static,ip:192.168.1.24,server:192.168.1.7,directory:/stable/i586
-==>
- automatic=met:nfs,net:static,ip:192.168.1.24,ser:192.168.1.7,dir:/stable/i586
-
-
diff --git a/mdk-stage1/doc/UPDATEMODULES b/mdk-stage1/doc/UPDATEMODULES
deleted file mode 100644
index 89d86d365..000000000
--- a/mdk-stage1/doc/UPDATEMODULES
+++ /dev/null
@@ -1,74 +0,0 @@
-This is the documentation for the "Update Modules" (Update Drivers)
-feature.
-
-This feature aims to propose new modules or replacement modules for the
-install. This is useful when there is a firmware update for a given
-driver, an additional driver needed for something, etc.
-
-
-You must use a floppy disk with e2fs filesystem (NOT vfat/windows
-formatted). Use "mke2fs /dev/fd0" on your own box to format a floppy with
-e2fs filesystem.
-
-This disk may contain a number of kernel modules on the root (e.g. not in
-a subdirectory); 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.
-
-
-Here's a typical scenario:
-
-
-1. Boot the floppy (or cdrom) with the option "updatemodules"
-
- (you may do that by pressing F1 then entering "linux updatemodules")
-
-
-2. At the very beginning of the User Interface, you are asked to insert
- the Update Modules disk. Insert the Update Modules disk and press
- Enter.
-
---=----=----=----=----=----=----=----=----=--
-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.o
--rw-r--r-- 1 root root 13660 Jul 26 12:04 ppa.o
--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.o
--rw-r--r-- 1 root root 6572 Jul 26 12:04 wacom.o
-[root@obiwan mnt]# cat floppy/to_load
-# Update Drivers description file
-3c59x
-# fat is a dep for msdos
-fat
-# updated msdos (handling of 9+4 filenames)
-msdos
-ppa
-# ISA network card needing options
-ne io=0x300 irq=7
-[root@obiwan mnt]#
---=----=----=----=----=----=----=----=----=--
-
-
-3. The program reads the special file "to_load" and processes the files.
-
- a- 3c59x loaded from the marfile on the boot floppy
- b- fat loaded from the marfile on the boot floppy
- c- msdos loaded from the update modules floppy
- d- ppa loaded from the update modules floppy
- e- ne loaded from the marfile on the boot floppy
-
-
-
-!!! Beware !!!, the dependencies are not handled automatically in
-the case of load from the update modules floppy, that's why on
-our example we need to load "fat" from the standard modules
-before "msdos" from the update floppy.
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
deleted file mode 100644
index 10417ef3b..000000000
--- a/mdk-stage1/doc/documented..frontend.h
+++ /dev/null
@@ -1,69 +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.
- *
- */
-
-/*
- * Using high-level UI.
- *
- * These functions are frontend-independant: your program won't know each
- * `frontend' (e.g. each way to grab user input) will be used.
- *
- * Then you may link your binary against any `frontend' that implement all
- * these functions (and possibly necessary libraries).
- */
-
-
-#ifndef _FRONTEND_H_
-#define _FRONTEND_H_
-
-/* this must be called before anything else */
-void init_frontend(void);
-
-/* this must be called before exit of program */
-void finish_frontend(void);
-
-
-void info_message(char *msg, ...) __attribute__ ((format (printf, 1, 2))); /* (blocks program) */
-
-void error_message(char *msg, ...) __attribute__ ((format (printf, 1, 2))); /* (blocks program) */
-
-/* (doesn't block program)
- * (this is not necessarily stackable, e.g. only one wait_message at a time) */
-void wait_message(char *msg, ...) __attribute__ ((format (printf, 1, 2)));
-
-/* call this to finish the wait on wait_message */
-void remove_wait_message(void);
-
-/* monitor progression of something (downloading a file, etc)
- * if size of progression is unknown, use `0' */
-void init_progression(char *msg, int size);
-void update_progression(int current_size);
-void end_progression(void);
-
-enum frontend_return { RETURN_OK, RETURN_BACK, RETURN_ERROR };
-
-/* Yes == RETURN_OK No == RETURN_ERROR Back == RETURN_BACK */
-enum frontend_return ask_yes_no(char *msg);
-
-/* [elems] NULL terminated array of char*
- * [choice] address of a (unitialized) char* */
-enum frontend_return ask_from_list(char *msg, char ** elems, char ** choice);
-
-enum frontend_return ask_from_list_comments(char *msg, char ** elems, char ** elems_comments, char ** choice);
-
-/* [questions] NULL terminated array of char*
- * [answers] address of a (unitialized) char**, will contain a non-NULL terminated array of char*
- * [callback_func] function called at most when the answers change; it can examine the array of char* and assign some new char* */
-enum frontend_return ask_from_entries(char *msg, char ** questions, char *** answers, int entry_size, void (*callback_func)(char ** strings));
-
-#endif
diff --git a/mdk-stage1/frontend-common.c b/mdk-stage1/frontend-common.c
deleted file mode 100644
index caddeb7d4..000000000
--- a/mdk-stage1/frontend-common.c
+++ /dev/null
@@ -1,43 +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.
- *
- */
-
-#include <stdlib.h>
-#include <stdarg.h>
-
-#include "frontend.h"
-
-
-void info_message(char *msg, ...)
-{
- va_list args;
- va_start(args, msg);
- vinfo_message(msg, args);
- va_end(args);
-}
-
-void wait_message(char *msg, ...)
-{
- va_list args;
- va_start(args, msg);
- vwait_message(msg, args);
- va_end(args);
-}
-
-void error_message(char *msg, ...)
-{
- va_list args;
- va_start(args, msg);
- verror_message(msg, args);
- va_end(args);
-}
diff --git a/mdk-stage1/frontend.h b/mdk-stage1/frontend.h
deleted file mode 100644
index 9c2609281..000000000
--- a/mdk-stage1/frontend.h
+++ /dev/null
@@ -1,52 +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.
- *
- */
-
-/*
- * For doc please read doc/documented..frontend.h
- */
-
-#ifndef _FRONTEND_H_
-#define _FRONTEND_H_
-
-#include <stdarg.h>
-
-
-enum return_type { RETURN_OK, RETURN_BACK, RETURN_ERROR };
-
-void init_frontend(char * welcome_msg);
-void finish_frontend(void);
-
-void error_message(char *msg, ...) __attribute__ ((format (printf, 1, 2))); /* blocking */
-void info_message(char *msg, ...) __attribute__ ((format (printf, 1, 2))); /* blocking */
-void wait_message(char *msg, ...) __attribute__ ((format (printf, 1, 2))); /* non-blocking */
-void remove_wait_message(void);
-
-void init_progression(char *msg, int size);
-void update_progression(int current_size);
-void end_progression(void);
-
-enum return_type ask_yes_no(char *msg);
-enum return_type ask_from_list(char *msg, char ** elems, char ** choice);
-enum return_type ask_from_list_comments(char *msg, char ** elems, char ** elems_comments, char ** choice);
-enum return_type ask_from_entries(char *msg, char ** questions, char *** answers, int entry_size, void (*callback_func)(char ** strings));
-
-void suspend_to_console(void);
-void resume_from_suspend(void);
-
-void verror_message(char *msg, va_list ap);
-void vinfo_message(char *msg, va_list ap);
-void vwait_message(char *msg, va_list ap);
-
-
-#endif
diff --git a/mdk-stage1/init-data/emptyboot.img.bz2 b/mdk-stage1/init-data/emptyboot.img.bz2
deleted file mode 100644
index 6ae939c1b..000000000
--- a/mdk-stage1/init-data/emptyboot.img.bz2
+++ /dev/null
Binary files differ
diff --git a/mdk-stage1/init-data/msgboot-blank.img.bz2 b/mdk-stage1/init-data/msgboot-blank.img.bz2
deleted file mode 100644
index a572093d9..000000000
--- a/mdk-stage1/init-data/msgboot-blank.img.bz2
+++ /dev/null
Binary files differ
diff --git a/mdk-stage1/init-data/msgboot-graphicallogo-2880.img.bz2 b/mdk-stage1/init-data/msgboot-graphicallogo-2880.img.bz2
deleted file mode 100644
index 9d5d276fb..000000000
--- a/mdk-stage1/init-data/msgboot-graphicallogo-2880.img.bz2
+++ /dev/null
Binary files differ
diff --git a/mdk-stage1/init-data/msgboot-graphicallogo.img.bz2 b/mdk-stage1/init-data/msgboot-graphicallogo.img.bz2
deleted file mode 100644
index cbbdb8cc7..000000000
--- a/mdk-stage1/init-data/msgboot-graphicallogo.img.bz2
+++ /dev/null
Binary files differ
diff --git a/mdk-stage1/init-data/msgboot.img.bz2 b/mdk-stage1/init-data/msgboot.img.bz2
deleted file mode 100644
index e06018f11..000000000
--- a/mdk-stage1/init-data/msgboot.img.bz2
+++ /dev/null
Binary files differ
diff --git a/mdk-stage1/init-libc-headers.h b/mdk-stage1/init-libc-headers.h
deleted file mode 100644
index 01761e869..000000000
--- a/mdk-stage1/init-libc-headers.h
+++ /dev/null
@@ -1,44 +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.
- *
- */
-
-/*
- * Portions from Erik Troan (ewt@redhat.com)
- *
- * Copyright 1996 Red Hat Software
- *
- */
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <sys/mount.h>
-#include <linux/un.h>
-#include <errno.h>
-#include <signal.h>
-#include <sys/resource.h>
-#include <sys/wait.h>
-#include <linux/unistd.h>
-#include <sys/select.h>
-
-#ifndef SOCK_STREAM
-#define SOCK_STREAM 1
-#endif
-
-static inline _syscall3(int, syslog, int, type, char *, bufp, int, len);
-static inline _syscall3(int, reboot, int, magic, int, magic2, int, flag);
diff --git a/mdk-stage1/init.c b/mdk-stage1/init.c
deleted file mode 100644
index dc4239ac3..000000000
--- a/mdk-stage1/init.c
+++ /dev/null
@@ -1,468 +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.
- *
- */
-
-/*
- * Portions from Erik Troan (ewt@redhat.com)
- *
- * Copyright 1996 Red Hat Software
- *
- */
-
-#ifndef INIT_HEADERS
-#include "init-libc-headers.h"
-#else
-#include INIT_HEADERS
-#endif
-
-#include "config-stage1.h"
-
-#if defined(__powerpc__)
-#define TIOCSCTTY 0x540
-#endif
-
-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",
- "HOME=/",
- "TERM=linux",
- "TERMINFO=/etc/terminfo",
- NULL
-};
-
-
-/*
- * this needs to handle the following cases:
- *
- * 1) run from a CD root filesystem
- * 2) run from a read only nfs rooted filesystem
- * 3) run from a floppy
- * 4) run from a floppy that's been loaded into a ramdisk
- *
- */
-
-int testing;
-int klog_pid;
-
-
-void fatal_error(char *msg)
-{
- printf("FATAL ERROR IN INIT: %s\n\nI can't recover from this, please reboot manually and send bugreport.\n", msg);
- while (1);
-}
-
-void print_error(char *msg)
-{
- printf("E: %s\n", msg);
-}
-
-void print_warning(char *msg)
-{
- printf("W: %s\n", msg);
-}
-
-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);
-}
-
-void print_str_init(int fd, char * string)
-{
- write(fd, string, strlen(string));
-}
-
-
-/* fork to:
- * (1) watch /proc/kmsg and copy the stuff to /dev/tty4
- * (2) listens to /dev/log and copy also this stuff (log from programs)
- */
-void doklog()
-{
- fd_set readset, unixs;
- int in, out, i;
- int log;
- int s;
- int sock = -1;
- struct sockaddr_un sockaddr;
- char buf[1024];
- int readfd;
-
- /* open kernel message logger */
- in = open("/proc/kmsg", O_RDONLY,0);
- if (in < 0) {
- print_error("could not open /proc/kmsg");
- return;
- }
-
- if ((log = open("/tmp/syslog", O_WRONLY | O_CREAT, 0644)) < 0) {
- print_error("error opening /tmp/syslog");
- sleep(5);
- return;
- }
-
- if ((klog_pid = fork())) {
- close(in);
- close(log);
- return;
- } else {
- close(0);
- 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");
-
- /* now open the syslog socket */
-// ############# LINUX 2.4 /dev/log IS BUGGED! --> apparently the syslogs can't reach me, and it's full up after a while
-// sockaddr.sun_family = AF_UNIX;
-// strncpy(sockaddr.sun_path, "/dev/log", UNIX_PATH_MAX);
-// sock = socket(AF_UNIX, SOCK_STREAM, 0);
-// if (sock < 0) {
-// printf("error creating socket: %d\n", errno);
-// sleep(5);
-// }
-//
-// print_str_init(log, "] got socket\n");
-// if (bind(sock, (struct sockaddr *) &sockaddr, sizeof(sockaddr.sun_family) + strlen(sockaddr.sun_path))) {
-// print_str_init(log, "] bind error: ");
-// print_int_init(log, errno);
-// print_str_init(log, "\n");
-// sleep(// }
-//
-// print_str_init(log, "] bound socket\n");
-// chmod("/dev/log", 0666);
-// if (listen(sock, 5)) {
-// print_str_init(log, "] listen error: ");
-// print_int_init(log, errno);
-// print_str_init(log, "\n");
-// sleep(5);
-// }
-
- /* disable on-console syslog output */
- syslog(8, NULL, 1);
-
- print_str_init(log, "] kernel/system logger ok\n");
- FD_ZERO(&unixs);
- while (1) {
- memcpy(&readset, &unixs, sizeof(unixs));
-
- if (sock >= 0)
- FD_SET(sock, &readset);
- FD_SET(in, &readset);
-
- i = select(20, &readset, NULL, NULL, NULL);
- if (i <= 0)
- continue;
-
- /* has /proc/kmsg things to tell us? */
- if (FD_ISSET(in, &readset)) {
- i = read(in, buf, sizeof(buf));
- if (i > 0) {
- if (out >= 0)
- write(out, buf, i);
- write(log, buf, i);
- }
- }
-
- /* 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);
- readfd = accept(sock, (struct sockaddr *) &sockaddr, &s);
- if (readfd < 0) {
- char * msg_error = "] error in accept\n";
- if (out >= 0)
- write(out, msg_error, strlen(msg_error));
- write(log, msg_error, strlen(msg_error));
- close(sock);
- sock = -1;
- }
- else
- FD_SET(readfd, &unixs);
- }
- }
-}
-
-
-#define LOOP_CLR_FD 0x4C01
-
-void del_loop(char *device)
-{
- int fd;
- if ((fd = open(device, O_RDONLY, 0)) < 0) {
- printf("del_loop open failed\n");
- return;
- }
-
- if (ioctl(fd, LOOP_CLR_FD, 0) < 0) {
- printf("del_loop ioctl failed");
- return;
- }
-
- close(fd);
-}
-
-struct filesystem
-{
- char * dev;
- char * name;
- char * fs;
- int mounted;
-};
-
-/* attempt to unmount all filesystems in /proc/mounts */
-void unmount_filesystems(void)
-{
- int fd, size;
- char buf[65535]; /* this should be big enough */
- char *p;
- struct filesystem fs[500];
- int numfs = 0;
- int i, nb;
-
- printf("unmounting filesystems...\n");
-
- fd = open("/proc/mounts", O_RDONLY, 0);
- if (fd < 1) {
- print_error("failed to open /proc/mounts");
- sleep(2);
- return;
- }
-
- size = read(fd, buf, sizeof(buf) - 1);
- buf[size] = '\0';
-
- close(fd);
-
- p = buf;
- while (*p) {
- fs[numfs].mounted = 1;
- fs[numfs].dev = p;
- while (*p != ' ') p++;
- *p++ = '\0';
- fs[numfs].name = p;
- while (*p != ' ') p++;
- *p++ = '\0';
- fs[numfs].fs = p;
- while (*p != ' ') p++;
- *p++ = '\0';
- while (*p != '\n') p++;
- p++;
- if (strcmp(fs[numfs].name, "/") != 0) numfs++; /* skip if root, no need to take initrd root in account */
- }
-
- /* Pixel's ultra-optimized sorting algorithm:
- multiple passes trying to umount everything until nothing moves
- anymore (a.k.a holy shotgun method) */
- do {
- nb = 0;
- for (i = 0; i < numfs; i++) {
- /*printf("trying with %s\n", fs[i].name);*/
- if (fs[i].mounted && umount(fs[i].name) == 0) {
- if (strncmp(fs[i].dev + sizeof("/dev/") - 1, "loop",
- sizeof("loop") - 1) == 0)
- del_loop(fs[i].dev);
-
- printf("\t%s\n", fs[i].name);
- fs[i].mounted = 0;
- nb++;
- }
- }
- } while (nb);
-
- 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 (nb) {
- printf("failed to umount some filesystems\n");
- while (1);
- }
-}
-
-int exit_value_rescue = 66;
-
-int main(int argc __attribute__ ((unused)), char **argv __attribute__ ((unused)))
-{
- pid_t installpid, childpid;
- int wait_status;
- int fd;
- int abnormal_termination = 0;
- int end_stage2 = 0;
-
- /* getpid() != 1 should work, by linuxrc tends to get a larger pid */
- testing = (getpid() > 50);
-
- if (!testing) {
- /* turn off screen blanking */
- printf("\033[9;0]");
- printf("\033[8]");
- }
- else
- printf("*** TESTING MODE ***\n");
-
-
- printf("\n\t\t\t\033[1;40mWelcome to \033[1;36mMandrake\033[0;39m Linux\n\n");
-
- if (!testing) {
- if (mount("/proc", "/proc", "proc", 0, NULL))
- fatal_error("Unable to mount proc filesystem");
- }
-
-
- /* ignore Control-C and keyboard stop signals */
- signal(SIGINT, SIG_IGN);
- signal(SIGTSTP, SIG_IGN);
-
-
- if (!testing) {
- fd = open("/dev/tty1", O_RDWR, 0);
- if (fd < 0)
- /* try with devfs */
- fd = open("/dev/vc/1", O_RDWR, 0);
-
- if (fd < 0)
- fatal_error("failed to open /dev/tty1 and /dev/vc/1");
-
- dup2(fd, 0);
- dup2(fd, 1);
- dup2(fd, 2);
- close(fd);
- }
-
-
- /* I set me up as session leader (probably not necessary?) */
- setsid();
- if (ioctl(0, TIOCSCTTY, NULL))
- print_error("could not set new controlling tty");
-
- if (!testing) {
- char my_hostname[] = "localhost.localdomain";
- sethostname(my_hostname, sizeof(my_hostname));
- /* the default domainname (as of 2.0.35) is "(none)", which confuses
- glibc */
- setdomainname("", 0);
- }
-
- 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
- */
-
- printf("If more people were to meet doing raklets, this planet\n");
- printf("would be a safer place.\n");
- printf("\n");
- printf("Running install...\n");
-
- if (!(installpid = fork())) {
- /* child */
- char * child_argv[2];
- child_argv[0] = "/sbin/stage1";
- child_argv[1] = NULL;
-
- execve(child_argv[0], child_argv, env);
- printf("error in exec of stage1 :-(\n");
- return 0;
- }
-
- while (!end_stage2) {
- childpid = wait4(-1, &wait_status, 0, NULL);
- if (childpid == installpid)
- end_stage2 = 1;
- }
-
- if (!WIFEXITED(wait_status) || (WEXITSTATUS(wait_status) != 0 && WEXITSTATUS(wait_status) != exit_value_rescue)) {
- printf("install exited abnormally :-( ");
- if (WIFSIGNALED(wait_status))
- printf("-- received signal %d", WTERMSIG(wait_status));
- printf("\n");
- abnormal_termination = 1;
- } else if (WIFEXITED(wait_status) && WEXITSTATUS(wait_status) == exit_value_rescue) {
- kill(klog_pid, 9);
- printf("exiting init -- giving hand to rescue\n");
- return 0;
- } else
- printf("install succeeded\n");
-
- if (testing)
- return 0;
-
- sync(); sync();
-
- printf("sending termination signals...");
- kill(-1, 15);
- sleep(2);
- printf("done\n");
-
- printf("sending kill signals...");
- kill(-1, 9);
- sleep(2);
- printf("done\n");
-
- unmount_filesystems();
-
- if (!abnormal_termination) {
- printf("rebooting system\n");
- sleep(2);
- reboot(0xfee1dead, 672274793, 0x01234567);
- } else {
- printf("you may safely reboot your system\n");
- while (1);
- }
-
- return 0;
-}
diff --git a/mdk-stage1/insmod-busybox/.cvsignore b/mdk-stage1/insmod-busybox/.cvsignore
deleted file mode 100644
index 26a2c08c9..000000000
--- a/mdk-stage1/insmod-busybox/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-insmod
-insmod-DIET
diff --git a/mdk-stage1/insmod-busybox/Config.h b/mdk-stage1/insmod-busybox/Config.h
deleted file mode 100644
index 8388416b7..000000000
--- a/mdk-stage1/insmod-busybox/Config.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/* vi: set sw=4 ts=4: */
-// This file defines the feature set to be compiled into busybox.
-// When you turn things off here, they won't be compiled in at all.
-//
-//// This file is parsed by sed. You MUST use single line comments.
-// i.e. //#define BB_BLAH
-//
-//
-// BusyBox Applications
-#define BB_INSMOD
-// End of Applications List
-//
-//
-//
-// ---------------------------------------------------------
-// This is where feature definitions go. Generally speaking,
-// turning this stuff off makes things a bit smaller (and less
-// pretty/useful).
-//
-//
-//
-// Turn this on to use Erik's very cool devps, and devmtab kernel drivers,
-// thereby eliminating the need for the /proc filesystem and thereby saving
-// lots and lots memory for more important things. You can not use this and
-// USE_PROCFS at the same time... NOTE: If you enable this feature, you
-// _must_ have patched the kernel to include the devps patch that is included
-// in the busybox/kernel-patches directory. You will also need to create some
-// device special files in /dev on your embedded system:
-// mknod /dev/mtab c 10 22
-// mknod /dev/ps c 10 21
-// I emailed Linus and this patch will not be going into the stock kernel.
-//#define BB_FEATURE_USE_DEVPS_PATCH
-//
-// enable features that use the /proc filesystem (apps that
-// break without this will tell you on compile)...
-// You can't use this and BB_FEATURE_USE_DEVPS_PATCH
-// at the same time...
-#define BB_FEATURE_USE_PROCFS
-
-//
-// Enable tab completion in the shell (not yet
-// working very well -- so don't turn this on)
-//#define BB_FEATURE_SH_TAB_COMPLETION
-//
-//Turn on extra fbset options
-//#define BB_FEATURE_FBSET_FANCY
-//
-//Turn on fbset readmode support
-//#define BB_FEATURE_FBSET_READMODE
-//
-// You must enable one or both of these features
-// Support installing modules from pre 2.1 kernels
-//#define BB_FEATURE_INSMOD_OLD_KERNEL
-// Support installing modules from kernel versions after 2.1.18
-#define BB_FEATURE_INSMOD_NEW_KERNEL
-//
-// Support module version checking
-//#define BB_FEATURE_INSMOD_VERSION_CHECKING
-//
-// Support for Minix filesystem, version 2
-//#define BB_FEATURE_MINIX2
-//
-//
-// Enable busybox --install [-s]
-// to create links (or symlinks) for all the commands that are
-// compiled into the binary. (needs /proc filesystem)
-// #define BB_FEATURE_INSTALLER
-//
-// Clean up all memory before exiting -- usually not needed
-// as the OS can clean up... Don't enable this unless you
-// have a really good reason for cleaning things up manually.
-//#define BB_FEATURE_CLEAN_UP
-//
-// End of Features List
-//
-//
-//
-//
-//
-//
-//---------------------------------------------------
-// Nothing beyond this point should ever be touched by
-// mere mortals so leave this stuff alone.
-//
-#ifdef BB_FEATURE_MOUNT_MTAB_SUPPORT
-#define BB_MTAB
-#endif
-//
-#if defined BB_FEATURE_SH_COMMAND_EDITING && defined BB_SH
-#define BB_CMDEDIT
-#endif
-//
-#ifdef BB_KILLALL
-#ifndef BB_KILL
-#define BB_KILL
-#endif
-#endif
-//
-#ifdef BB_FEATURE_LINUXRC
-#ifndef BB_INIT
-#define BB_INIT
-#endif
-#define BB_LINUXRC
-#endif
-//
-#ifdef BB_GZIP
-#ifndef BB_GUNZIP
-#define BB_GUNZIP
-#endif
-#endif
-//
-#if defined BB_MOUNT && defined BB_FEATURE_NFSMOUNT
-#define BB_NFSMOUNT
-#endif
-//
-#if defined BB_FEATURE_SH_COMMAND_EDITING
-#ifndef BB_FEATURE_USE_TERMIOS
-#define BB_FEATURE_USE_TERMIOS
-#endif
-#endif
-//
-#if defined BB_FEATURE_AUTOWIDTH
-#ifndef BB_FEATURE_USE_TERMIOS
-#define BB_FEATURE_USE_TERMIOS
-#endif
-#endif
-//
-#if defined BB_INSMOD
-#ifndef BB_FEATURE_INSMOD_OLD_KERNEL
-#define BB_FEATURE_INSMOD_NEW_KERNEL
-#endif
-#endif
diff --git a/mdk-stage1/insmod-busybox/Makefile b/mdk-stage1/insmod-busybox/Makefile
deleted file mode 100644
index c8649ae0d..000000000
--- a/mdk-stage1/insmod-busybox/Makefile
+++ /dev/null
@@ -1,65 +0,0 @@
- #******************************************************************************
- #
- # insmod from busybox (i386 only)
- #
- # $Id$
- #
- # Copyright (C) 1999,2000 by Lineo, inc.
- #
- #*****************************************************************************
-
-top_dir = ..
-
-include $(top_dir)/Makefile.common
-
-
-all: insmod insmod-DIET libinsmod.a libinsmod-DIET.a
-
-clean:
- rm -f *.o insmod insmod-DIET libinsmod.a libinsmod-DIET.a
-
-
-FLAGS = -c -Wall -Os -fomit-frame-pointer -D_GNU_SOURCE -DBB_VER='"0.47"' -DBB_BT='"2000.12.06-14:02+0000"'
-
-
-insmod: insmod-frontend.o insmod.o utility-standalone.o
- gcc -o $@ $^
- $(STRIPCMD) $@
-
-insmod-DIET: insmod-frontend-DIET.o insmod-DIET.o utility-standalone-DIET.o
- gcc $(DIETLIBC_LDFLAGS_STAGE1) -o $@ $^ $(DIETLIBC_LIBC)
- $(STRIPCMD) $@
-
-
-libinsmod.a: insmod.o utility.o
- ar cru $@ $^
- ranlib $@
-
-libinsmod-DIET.a: insmod-DIET.o utility-DIET.o
- ar cru $@ $^
- ranlib $@
-
-insmod-frontend.o: insmod-frontend.c busybox.h
- gcc $(FLAGS) $(GLIBC_INCLUDES) insmod-frontend.c
-
-insmod-frontend-DIET.o: insmod-frontend.c busybox.h
- gcc $(FLAGS) $(DIETLIBC_INCLUDES) -o $@ insmod-frontend.c
-
-utility.o: utility.c busybox.h
- gcc $(FLAGS) $(GLIBC_INCLUDES) utility.c
-
-utility-DIET.o: utility.c busybox.h
- gcc $(FLAGS) $(DIETLIBC_INCLUDES) -o $@ utility.c
-
-utility-standalone.o: utility.c busybox.h
- gcc $(FLAGS) $(GLIBC_INCLUDES) -o $@ -D_STANDALONE_ utility.c
-
-utility-standalone-DIET.o: utility.c busybox.h
- gcc $(FLAGS) $(DIETLIBC_INCLUDES) -o $@ -D_STANDALONE_ utility.c
-
-insmod.o: insmod.c busybox.h
- gcc $(FLAGS) $(GLIBC_INCLUDES) insmod.c
-
-insmod-DIET.o: insmod.c busybox.h
- gcc $(FLAGS) $(DIETLIBC_INCLUDES) -o $@ insmod.c
-
diff --git a/mdk-stage1/insmod-busybox/README b/mdk-stage1/insmod-busybox/README
deleted file mode 100644
index 06695074a..000000000
--- a/mdk-stage1/insmod-busybox/README
+++ /dev/null
@@ -1,8 +0,0 @@
-This insmod code comes from busybox-0.47
-
-ftp://ftp.lineo.com/pub/busybox
-
-It is cool but works only for ix86 architecture.
-
-
-gc
diff --git a/mdk-stage1/insmod-busybox/busybox.h b/mdk-stage1/insmod-busybox/busybox.h
deleted file mode 100644
index a2d620c8b..000000000
--- a/mdk-stage1/insmod-busybox/busybox.h
+++ /dev/null
@@ -1,467 +0,0 @@
-/* vi: set sw=4 ts=4: */
-/*
- * Busybox main internal header file
- *
- *
- * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Based in part on code from sash, Copyright (c) 1999 by David I. Bell
- * Permission has been granted to redistribute this code under the GPL.
- *
- */
-#ifndef _BB_INTERNAL_H_
-#define _BB_INTERNAL_H_ 1
-
-#include "Config.h"
-
-#ifdef DMALLOC
-#include "dmalloc.h"
-#endif
-
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <unistd.h>
-#include <errno.h>
-#include <sys/stat.h>
-#include <sys/param.h>
-/* for the _syscall() macros */
-#include <sys/syscall.h>
-#include <linux/unistd.h>
-#include <linux/kernel.h>
-
-/* Some useful definitions */
-#define FALSE ((int) 1)
-#define TRUE ((int) 0)
-
-/* for mtab.c */
-#define MTAB_GETMOUNTPT '1'
-#define MTAB_GETDEVICE '2'
-
-#define BUF_SIZE 8192
-#define EXPAND_ALLOC 1024
-
-
-#define isBlank(ch) (((ch) == ' ') || ((ch) == '\t'))
-#define isDecimal(ch) (((ch) >= '0') && ((ch) <= '9'))
-#define isOctal(ch) (((ch) >= '0') && ((ch) <= '7'))
-#define isWildCard(ch) (((ch) == '*') || ((ch) == '?') || ((ch) == '['))
-
-/* Macros for min/max. */
-#ifndef MIN
-#define MIN(a,b) (((a)<(b))?(a):(b))
-#endif
-
-#ifndef MAX
-#define MAX(a,b) (((a)>(b))?(a):(b))
-#endif
-
-
-/* I don't like nested includes, but the string and io functions are used
- * too often
- */
-#include <stdio.h>
-#if !defined(NO_STRING_H) || defined(STDC_HEADERS)
-# include <string.h>
-# if !defined(STDC_HEADERS) && !defined(NO_MEMORY_H) && !defined(__GNUC__)
-# include <memory.h>
-# endif
-# define memzero(s, n) memset ((void *)(s), 0, (n))
-#else
-# include <strings.h>
-# define strchr index
-# define strrchr rindex
-# define memcpy(d, s, n) bcopy((s), (d), (n))
-# define memcmp(s1, s2, n) bcmp((s1), (s2), (n))
-# define memzero(s, n) bzero((s), (n))
-#endif
-
-
-enum Location {
- _BB_DIR_ROOT = 0,
- _BB_DIR_BIN,
- _BB_DIR_SBIN,
- _BB_DIR_USR_BIN,
- _BB_DIR_USR_SBIN
-};
-
-struct BB_applet {
- const char* name;
- int (*main)(int argc, char** argv);
- enum Location location;
- const char* usage;
-};
-/* From busybox.c */
-extern const struct BB_applet applets[];
-
-extern int ar_main(int argc, char **argv);
-extern int basename_main(int argc, char **argv);
-extern int bogomips_main(int argc, char **argv);
-extern int busybox_main(int argc, char** argv);
-extern int cat_main(int argc, char** argv);
-extern int chmod_chown_chgrp_main(int argc, char** argv);
-extern int chroot_main(int argc, char** argv);
-extern int chvt_main(int argc, char** argv);
-extern int clear_main(int argc, char** argv);
-extern int cp_mv_main(int argc, char** argv);
-extern int cut_main(int argc, char** argv);
-extern int date_main(int argc, char** argv);
-extern int dc_main(int argc, char** argv);
-extern int dd_main(int argc, char** argv);
-extern int dirname_main(int argc, char** argv);
-extern int deallocvt_main(int argc, char** argv);
-extern int df_main(int argc, char** argv);
-extern int dmesg_main(int argc, char** argv);
-extern int dos2unix_main(int argc, char** argv);
-extern int du_main(int argc, char** argv);
-extern int dumpkmap_main(int argc, char** argv);
-extern int dutmp_main(int argc, char** argv);
-extern int echo_main(int argc, char** argv);
-extern int expr_main(int argc, char** argv);
-extern int false_main(int argc, char** argv);
-extern int fbset_main(int argc, char** argv);
-extern int fdisk_main(int argc, char** argv);
-extern int fdflush_main(int argc, char **argv);
-extern int fsck_minix_main(int argc, char **argv);
-extern int find_main(int argc, char** argv);
-extern int free_main(int argc, char** argv);
-extern int freeramdisk_main(int argc, char** argv);
-extern int getopt_main(int argc, char** argv);
-extern int grep_main(int argc, char** argv);
-extern int gunzip_main (int argc, char** argv);
-extern int gzip_main(int argc, char** argv);
-extern int halt_main(int argc, char** argv);
-extern int head_main(int argc, char** argv);
-extern int hostid_main(int argc, char** argv);
-extern int hostname_main(int argc, char** argv);
-extern int id_main(int argc, char** argv);
-extern int init_main(int argc, char** argv);
-extern int insmod_main(int argc, char** argv);
-extern int kill_main(int argc, char** argv);
-extern int length_main(int argc, char** argv);
-extern int ln_main(int argc, char** argv);
-extern int loadacm_main(int argc, char** argv);
-extern int loadfont_main(int argc, char** argv);
-extern int loadkmap_main(int argc, char** argv);
-extern int losetup_main(int argc, char** argv);
-extern int logger_main(int argc, char **argv);
-extern int logname_main(int argc, char **argv);
-extern int ls_main(int argc, char** argv);
-extern int lsmod_main(int argc, char** argv);
-extern int makedevs_main(int argc, char** argv);
-extern int md5sum_main(int argc, char** argv);
-extern int mkdir_main(int argc, char** argv);
-extern int mkfifo_main(int argc, char **argv);
-extern int mkfs_minix_main(int argc, char **argv);
-extern int mknod_main(int argc, char** argv);
-extern int mkswap_main(int argc, char** argv);
-extern int mktemp_main(int argc, char **argv);
-extern int nc_main(int argc, char** argv);
-extern int more_main(int argc, char** argv);
-extern int mount_main(int argc, char** argv);
-extern int mt_main(int argc, char** argv);
-extern int nslookup_main(int argc, char **argv);
-extern int ping_main(int argc, char **argv);
-extern int poweroff_main(int argc, char **argv);
-extern int printf_main(int argc, char** argv);
-extern int ps_main(int argc, char** argv);
-extern int pwd_main(int argc, char** argv);
-extern int rdate_main(int argc, char** argv);
-extern int reboot_main(int argc, char** argv);
-extern int renice_main(int argc, char** argv);
-extern int reset_main(int argc, char** argv);
-extern int rm_main(int argc, char** argv);
-extern int rmdir_main(int argc, char **argv);
-extern int rmmod_main(int argc, char** argv);
-extern int sed_main(int argc, char** argv);
-extern int sfdisk_main(int argc, char** argv);
-extern int setkeycodes_main(int argc, char** argv);
-extern int shell_main(int argc, char** argv);
-extern int sleep_main(int argc, char** argv);
-extern int sort_main(int argc, char** argv);
-extern int swap_on_off_main(int argc, char** argv);
-extern int sync_main(int argc, char** argv);
-extern int syslogd_main(int argc, char **argv);
-extern int tail_main(int argc, char** argv);
-extern int tar_main(int argc, char** argv);
-extern int tee_main(int argc, char** argv);
-extern int test_main(int argc, char** argv);
-extern int telnet_main(int argc, char** argv);
-extern int touch_main(int argc, char** argv);
-extern int tr_main(int argc, char** argv);
-extern int true_main(int argc, char** argv);
-extern int tput_main(int argc, char** argv);
-extern int tryopen_main(int argc, char** argv);
-extern int tty_main(int argc, char** argv);
-extern int umount_main(int argc, char** argv);
-extern int uname_main(int argc, char** argv);
-extern int uniq_main(int argc, char** argv);
-extern int unix2dos_main(int argc, char** argv);
-extern int unrpm_main(int argc, char** argv);
-extern int update_main(int argc, char** argv);
-extern int uptime_main(int argc, char** argv);
-extern int usleep_main(int argc, char** argv);
-extern int uuencode_main(int argc, char** argv);
-extern int uudecode_main(int argc, char** argv);
-extern int wc_main(int argc, char** argv);
-extern int wget_main(int argc, char** argv);
-extern int which_main(int argc, char** argv);
-extern int whoami_main(int argc, char** argv);
-extern int xargs_main(int argc, char** argv);
-extern int yes_main(int argc, char** argv);
-
-extern const char ar_usage[];
-extern const char basename_usage[];
-extern const char cat_usage[];
-extern const char chgrp_usage[];
-extern const char chmod_usage[];
-extern const char chown_usage[];
-extern const char chroot_usage[];
-extern const char chvt_usage[];
-extern const char clear_usage[];
-extern const char cp_usage[];
-extern const char cut_usage[];
-extern const char date_usage[];
-extern const char dc_usage[];
-extern const char dd_usage[];
-extern const char deallocvt_usage[];
-extern const char df_usage[];
-extern const char dirname_usage[];
-extern const char dmesg_usage[];
-extern const char dos2unix_usage[];
-extern const char du_usage[];
-extern const char dumpkmap_usage[];
-extern const char dutmp_usage[];
-extern const char echo_usage[];
-extern const char expr_usage[];
-extern const char false_usage[];
-extern const char fdflush_usage[];
-extern const char find_usage[];
-extern const char free_usage[];
-extern const char freeramdisk_usage[];
-extern const char fsck_minix_usage[];
-extern const char grep_usage[];
-extern const char gunzip_usage[];
-extern const char gzip_usage[];
-extern const char halt_usage[];
-extern const char head_usage[];
-extern const char hostid_usage[];
-extern const char hostname_usage[];
-extern const char id_usage[];
-extern const char insmod_usage[];
-extern const char kill_usage[];
-extern const char killall_usage[];
-extern const char length_usage[];
-extern const char ln_usage[];
-extern const char loadacm_usage[];
-extern const char loadfont_usage[];
-extern const char loadkmap_usage[];
-extern const char logger_usage[];
-extern const char logname_usage[];
-extern const char ls_usage[];
-extern const char lsmod_usage[];
-extern const char makedevs_usage[];
-extern const char md5sum_usage[];
-extern const char mkdir_usage[];
-extern const char mkfifo_usage[];
-extern const char mkfs_minix_usage[];
-extern const char mknod_usage[];
-extern const char mkswap_usage[];
-extern const char mktemp_usage[];
-extern const char more_usage[];
-extern const char mount_usage[];
-extern const char mt_usage[];
-extern const char mv_usage[];
-extern const char nc_usage[];
-extern const char nslookup_usage[];
-extern const char ping_usage[];
-extern const char poweroff_usage[];
-extern const char printf_usage[];
-extern const char ps_usage[];
-extern const char pwd_usage[];
-extern const char rdate_usage[];
-extern const char reboot_usage[];
-extern const char renice_usage[];
-extern const char reset_usage[];
-extern const char rm_usage[];
-extern const char rmdir_usage[];
-extern const char rmmod_usage[];
-extern const char sed_usage[];
-extern const char setkeycodes_usage[];
-extern const char shell_usage[];
-extern const char sleep_usage[];
-extern const char sort_usage[];
-extern const char swapoff_usage[];
-extern const char swapon_usage[];
-extern const char sync_usage[];
-extern const char syslogd_usage[];
-extern const char tail_usage[];
-extern const char tar_usage[];
-extern const char tee_usage[];
-extern const char telnet_usage[];
-extern const char test_usage[];
-extern const char touch_usage[];
-extern const char tr_usage[];
-extern const char true_usage[];
-extern const char tty_usage[];
-extern const char umount_usage[];
-extern const char uname_usage[];
-extern const char uniq_usage[];
-extern const char unix2dos_usage[];
-extern const char unrpm_usage[];
-extern const char update_usage[];
-extern const char uptime_usage[];
-extern const char usleep_usage[];
-extern const char uudecode_usage[];
-extern const char uuencode_usage[];
-extern const char wc_usage[];
-extern const char wget_usage[];
-extern const char which_usage[];
-extern const char whoami_usage[];
-extern const char xargs_usage[];
-extern const char yes_usage[];
-
-extern const char *applet_name;
-
-extern void usage(const char *usage) __attribute__ ((noreturn));
-extern void errorMsg(const char *s, ...) __attribute__ ((format (printf, 1, 2)));
-extern void logperror(char *s);
-extern void fatalError(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2)));
-
-const char *modeString(int mode);
-const char *timeString(time_t timeVal);
-int isDirectory(const char *name, const int followLinks, struct stat *statBuf);
-int isDevice(const char *name);
-
-typedef struct ino_dev_hash_bucket_struct {
- struct ino_dev_hash_bucket_struct *next;
- ino_t ino;
- dev_t dev;
- char name[1];
-} ino_dev_hashtable_bucket_t;
-int is_in_ino_dev_hashtable(const struct stat *statbuf, char **name);
-void add_to_ino_dev_hashtable(const struct stat *statbuf, const char *name);
-void reset_ino_dev_hashtable(void);
-
-int copyFile(const char *srcName, const char *destName,
- int setModes, int followLinks, int forceFlag);
-int copySubFile(int srcFd, int dstFd, size_t remaining);
-char *buildName(const char *dirName, const char *fileName);
-int makeString(int argc, const char **argv, char *buf, int bufLen);
-char *getChunk(int size);
-char *chunkstrdup(const char *str);
-void freeChunks(void);
-int fullWrite(int fd, const char *buf, int len);
-int fullRead(int fd, char *buf, int len);
-int recursiveAction(const char *fileName, int recurse, int followLinks, int depthFirst,
- int (*fileAction) (const char *fileName, struct stat* statbuf, void* userData),
- int (*dirAction) (const char *fileName, struct stat* statbuf, void* userData),
- void* userData);
-
-extern int createPath (const char *name, int mode);
-extern int parse_mode( const char* s, mode_t* theMode);
-
-extern int get_kernel_revision(void);
-
-extern int get_console_fd(char* tty_name);
-extern struct mntent *findMountPoint(const char *name, const char *table);
-extern void write_mtab(char* blockDevice, char* directory,
- char* filesystemType, long flags, char* string_flags);
-extern void erase_mtab(const char * name);
-extern void mtab_read(void);
-extern char *mtab_first(void **iter);
-extern char *mtab_next(void **iter);
-extern char *mtab_getinfo(const char *match, const char which);
-extern int check_wildcard_match(const char* text, const char* pattern);
-extern long getNum (const char *cp);
-extern pid_t* findPidByName( char* pidName);
-extern int find_real_root_device_name(char* name);
-extern char *get_line_from_file(FILE *file);
-extern void print_file(FILE *file);
-extern int print_file_by_name(char *filename);
-extern char process_escape_sequence(char **ptr);
-extern char *get_last_path_component(char *path);
-// extern void xregcomp(regex_t *preg, const char *regex, int cflags);
-
-#ifndef DMALLOC
-extern void *xmalloc (size_t size);
-extern void *xrealloc(void *old, size_t size);
-extern void *xcalloc(size_t nmemb, size_t size);
-extern char *xstrdup (const char *s);
-#endif
-extern char *xstrndup (const char *s, int n);
-
-
-/* These parse entries in /etc/passwd and /etc/group. This is desirable
- * for BusyBox since we want to avoid using the glibc NSS stuff, which
- * increases target size and is often not needed embedded systems. */
-extern long my_getpwnam(char *name);
-extern long my_getgrnam(char *name);
-extern void my_getpwuid(char *name, long uid);
-extern void my_getgrgid(char *group, long gid);
-extern long my_getpwnamegid(char *name);
-
-extern int device_open(char *device, int mode);
-
-#if defined BB_FEATURE_MOUNT_LOOP
-extern int del_loop(const char *device);
-extern int set_loop(const char *device, const char *file, int offset, int *loopro);
-extern char *find_unused_loop_device (void);
-#endif
-
-
-#if (__GLIBC__ < 2) && (defined BB_SYSLOGD || defined BB_INIT)
-extern int vdprintf(int d, const char *format, va_list ap);
-#endif
-
-#if defined BB_NFSMOUNT
-int nfsmount(const char *spec, const char *node, int *flags,
- char **extra_opts, char **mount_opts, int running_bg);
-#endif
-
-#ifndef RB_POWER_OFF
-/* Stop system and switch power off if possible. */
-#define RB_POWER_OFF 0x4321fedc
-#endif
-
-/* Include our own copy of struct sysinfo to avoid binary compatability
- * problems with Linux 2.4, which changed things. Grumble, grumble. */
-//struct sysinfo {
-// long uptime; /* Seconds since boot */
-// unsigned long loads[3]; /* 1, 5, and 15 minute load averages */
-// unsigned long totalram; /* Total usable main memory size */
-// unsigned long freeram; /* Available memory size */
-// unsigned long sharedram; /* Amount of shared memory */
-// unsigned long bufferram; /* Memory used by buffers */
-// unsigned long totalswap; /* Total swap space size */
-// unsigned long freeswap; /* swap space still available */
-// unsigned short procs; /* Number of current processes */
-// unsigned long totalhigh; /* Total high memory size */
-// unsigned long freehigh; /* Available high memory size */
-// unsigned int mem_unit; /* Memory unit size in bytes */
-// char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding: libc5 uses this.. */
-//};
-extern int sysinfo (struct sysinfo* info);
-
-/* Bit map related macros -- libc5 doens't provide these... sigh. */
-#ifndef setbit
-#define NBBY CHAR_BIT
-#define setbit(a,i) ((a)[(i)/NBBY] |= 1<<((i)%NBBY))
-#define clrbit(a,i) ((a)[(i)/NBBY] &= ~(1<<((i)%NBBY)))
-#define isset(a,i) ((a)[(i)/NBBY] & (1<<((i)%NBBY)))
-#define isclr(a,i) (((a)[(i)/NBBY] & (1<<((i)%NBBY))) == 0)
-#endif
-
-#endif /* _BB_INTERNAL_H_ */
diff --git a/mdk-stage1/insmod-busybox/insmod-frontend.c b/mdk-stage1/insmod-busybox/insmod-frontend.c
deleted file mode 100644
index 3e5d6b3d7..000000000
--- a/mdk-stage1/insmod-busybox/insmod-frontend.c
+++ /dev/null
@@ -1,24 +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.
- *
- */
-
-#include <stdio.h>
-
-
-int insmod_main( int argc, char **argv);
-
-int main( int argc, char **argv)
-{
- printf("Using insmod provided by busybox.\n");
- return insmod_main(argc, argv);
-}
diff --git a/mdk-stage1/insmod-busybox/insmod.c b/mdk-stage1/insmod-busybox/insmod.c
deleted file mode 100644
index bdf7ba5f7..000000000
--- a/mdk-stage1/insmod-busybox/insmod.c
+++ /dev/null
@@ -1,2951 +0,0 @@
-/* vi: set sw=4 ts=4: */
-/*
- * Mini insmod implementation for busybox
- *
- * Copyright (C) 1999,2000 by Lineo, inc.
- * Written by Erik Andersen <andersen@lineo.com>
- * and Ron Alder <alder@lineo.com>
- *
- * Modified by Bryan Rittmeyer <bryan@ixiacom.com> to support SH4
- * and (theoretically) SH3. Note that there is still no true
- * multiple architecture support. You just get SH3|SH4|i386, despite
- * the mention of ARM and m68k--which may or may not work (but
- * almost certainly do not, due to at least MATCH_MACHINE). I have
- * only tested SH4 in little endian mode.
- *
- * Based almost entirely on the Linux modutils-2.3.11 implementation.
- * Copyright 1996, 1997 Linux International.
- * New implementation contributed by Richard Henderson <rth@tamu.edu>
- * Based on original work by Bjorn Ekwall <bj0rn@blox.se>
- * Restructured (and partly rewritten) by:
- * Björn Ekwall <bj0rn@blox.se> February 1999
- *
- * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-#include "../insmod.h"
-#include "busybox.h"
-#include <stdlib.h>
-#include <stdio.h>
-#include <stddef.h>
-#include <errno.h>
-#include <unistd.h>
-#include <dirent.h>
-#include <ctype.h>
-#include <assert.h>
-#include <sys/utsname.h>
-
-//----------------------------------------------------------------------------
-//--------modutils module.h, lines 45-242
-//----------------------------------------------------------------------------
-
-/* Definitions for the Linux module syscall interface.
- Copyright 1996, 1997 Linux International.
-
- Contributed by Richard Henderson <rth@tamu.edu>
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-
-#ifndef MODUTILS_MODULE_H
-#define MODUTILS_MODULE_H 1
-
-#ident "$Id$"
-
-/* This file contains the structures used by the 2.0 and 2.1 kernels.
- We do not use the kernel headers directly because we do not wish
- to be dependant on a particular kernel version to compile insmod. */
-
-
-/*======================================================================*/
-/* The structures used by Linux 2.0. */
-
-/* The symbol format used by get_kernel_syms(2). */
-struct old_kernel_sym
-{
- unsigned long value;
- char name[60];
-};
-
-struct old_module_ref
-{
- unsigned long module; /* kernel addresses */
- unsigned long next;
-};
-
-struct old_module_symbol
-{
- unsigned long addr;
- unsigned long name;
-};
-
-struct old_symbol_table
-{
- int size; /* total, including string table!!! */
- int n_symbols;
- int n_refs;
- struct old_module_symbol symbol[0]; /* actual size defined by n_symbols */
- struct old_module_ref ref[0]; /* actual size defined by n_refs */
-};
-
-struct old_mod_routines
-{
- unsigned long init;
- unsigned long cleanup;
-};
-
-struct old_module
-{
- unsigned long next;
- unsigned long ref; /* the list of modules that refer to me */
- unsigned long symtab;
- unsigned long name;
- int size; /* size of module in pages */
- unsigned long addr; /* address of module */
- int state;
- unsigned long cleanup; /* cleanup routine */
-};
-
-/* Sent to init_module(2) or'ed into the code size parameter. */
-#define OLD_MOD_AUTOCLEAN 0x40000000 /* big enough, but no sign problems... */
-
-int get_kernel_syms(struct old_kernel_sym *);
-int old_sys_init_module(const char *name, char *code, unsigned codesize,
- struct old_mod_routines *, struct old_symbol_table *);
-
-/*======================================================================*/
-/* For sizeof() which are related to the module platform and not to the
- environment isnmod is running in, use sizeof_xx instead of sizeof(xx). */
-
-#define tgt_sizeof_char sizeof(char)
-#define tgt_sizeof_short sizeof(short)
-#define tgt_sizeof_int sizeof(int)
-#define tgt_sizeof_long sizeof(long)
-#define tgt_sizeof_char_p sizeof(char *)
-#define tgt_sizeof_void_p sizeof(void *)
-#define tgt_long long
-
-#if defined(__sparc__) && !defined(__sparc_v9__) && defined(ARCH_sparc64)
-#undef tgt_sizeof_long
-#undef tgt_sizeof_char_p
-#undef tgt_sizeof_void_p
-#undef tgt_long
-#define tgt_sizeof_long 8
-#define tgt_sizeof_char_p 8
-#define tgt_sizeof_void_p 8
-#define tgt_long long long
-#endif
-
-/*======================================================================*/
-/* The structures used in Linux 2.1. */
-
-/* Note: new_module_symbol does not use tgt_long intentionally */
-struct new_module_symbol
-{
- unsigned long value;
- unsigned long name;
-};
-
-struct new_module_persist;
-
-struct new_module_ref
-{
- unsigned tgt_long dep; /* kernel addresses */
- unsigned tgt_long ref;
- unsigned tgt_long next_ref;
-};
-
-struct new_module
-{
- unsigned tgt_long size_of_struct; /* == sizeof(module) */
- unsigned tgt_long next;
- unsigned tgt_long name;
- unsigned tgt_long size;
-
- tgt_long usecount;
- unsigned tgt_long flags; /* AUTOCLEAN et al */
-
- unsigned nsyms;
- unsigned ndeps;
-
- unsigned tgt_long syms;
- unsigned tgt_long deps;
- unsigned tgt_long refs;
- unsigned tgt_long init;
- unsigned tgt_long cleanup;
- unsigned tgt_long ex_table_start;
- unsigned tgt_long ex_table_end;
-#ifdef __alpha__
- unsigned tgt_long gp;
-#endif
- /* Everything after here is extension. */
- unsigned tgt_long persist_start;
- unsigned tgt_long persist_end;
- unsigned tgt_long can_unload;
- unsigned tgt_long runsize;
-};
-
-struct new_module_info
-{
- unsigned long addr;
- unsigned long size;
- unsigned long flags;
- long usecount;
-};
-
-/* Bits of module.flags. */
-#define NEW_MOD_RUNNING 1
-#define NEW_MOD_DELETED 2
-#define NEW_MOD_AUTOCLEAN 4
-#define NEW_MOD_VISITED 8
-#define NEW_MOD_USED_ONCE 16
-
-int new_sys_init_module(const char *name, const struct new_module *);
-int query_module(const char *name, int which, void *buf, size_t bufsize,
- size_t *ret);
-
-/* Values for query_module's which. */
-
-#define QM_MODULES 1
-#define QM_DEPS 2
-#define QM_REFS 3
-#define QM_SYMBOLS 4
-#define QM_INFO 5
-
-/*======================================================================*/
-/* The system calls unchanged between 2.0 and 2.1. */
-
-unsigned long create_module(const char *, size_t);
-int delete_module(const char *);
-
-
-#endif /* module.h */
-
-//----------------------------------------------------------------------------
-//--------end of modutils module.h
-//----------------------------------------------------------------------------
-
-
-
-//----------------------------------------------------------------------------
-//--------modutils obj.h, lines 253-462
-//----------------------------------------------------------------------------
-
-/* Elf object file loading and relocation routines.
- Copyright 1996, 1997 Linux International.
-
- Contributed by Richard Henderson <rth@tamu.edu>
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-
-#ifndef MODUTILS_OBJ_H
-#define MODUTILS_OBJ_H 1
-
-#ident "$Id$"
-
-/* The relocatable object is manipulated using elfin types. */
-
-#include <stdio.h>
-#include <elf.h>
-
-
-/* Machine-specific elf macros for i386 et al. */
-
-/* the SH changes have only been tested on the SH4 in =little endian= mode */
-/* I'm not sure about big endian, so let's warn: */
-
-#if (defined(__SH4__) || defined(__SH3__)) && defined(__BIG_ENDIAN__)
-#error insmod.c may require changes for use on big endian SH4/SH3
-#endif
-
-/* it may or may not work on the SH1/SH2... So let's error on those
- also */
-#if (defined(__sh__) && (!(defined(__SH3__) || defined(__SH4__))))
-#error insmod.c may require changes for non-SH3/SH4 use
-#endif
-
-#define ELFCLASSM ELFCLASS32
-#define ELFDATAM ELFDATA2LSB
-
-
-
-#if defined(__sh__)
-
-#define MATCH_MACHINE(x) (x == EM_SH)
-#define SHT_RELM SHT_RELA
-#define Elf32_RelM Elf32_Rela
-
-#else
-
-/* presumably we can use these for anything but the SH */
-/* this is the previous behavior, but it does result in
- insmod.c being broken on anything except i386 */
-
-#define MATCH_MACHINE(x) (x == EM_386)
-#define SHT_RELM SHT_REL
-#define Elf32_RelM Elf32_Rel
-
-#endif
-
-#ifndef ElfW
-# if ELFCLASSM == ELFCLASS32
-# define ElfW(x) Elf32_ ## x
-# define ELFW(x) ELF32_ ## x
-# else
-# define ElfW(x) Elf64_ ## x
-# define ELFW(x) ELF64_ ## x
-# endif
-#endif
-
-/* For some reason this is missing from libc5. */
-#ifndef ELF32_ST_INFO
-# define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf))
-#endif
-
-#ifndef ELF64_ST_INFO
-# define ELF64_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf))
-#endif
-
-struct obj_string_patch;
-struct obj_symbol_patch;
-
-struct obj_section
-{
- ElfW(Shdr) header;
- const char *name;
- char *contents;
- struct obj_section *load_next;
- int idx;
-};
-
-struct obj_symbol
-{
- struct obj_symbol *next; /* hash table link */
- const char *name;
- unsigned long value;
- unsigned long size;
- int secidx; /* the defining section index/module */
- int info;
- int ksymidx; /* for export to the kernel symtab */
- int referenced; /* actually used in the link */
-};
-
-/* Hardcode the hash table size. We shouldn't be needing so many
- symbols that we begin to degrade performance, and we get a big win
- by giving the compiler a constant divisor. */
-
-#define HASH_BUCKETS 521
-
-struct obj_file
-{
- ElfW(Ehdr) header;
- ElfW(Addr) baseaddr;
- struct obj_section **sections;
- struct obj_section *load_order;
- struct obj_section **load_order_search_start;
- struct obj_string_patch *string_patches;
- struct obj_symbol_patch *symbol_patches;
- int (*symbol_cmp)(const char *, const char *);
- unsigned long (*symbol_hash)(const char *);
- unsigned long local_symtab_size;
- struct obj_symbol **local_symtab;
- struct obj_symbol *symtab[HASH_BUCKETS];
-};
-
-enum obj_reloc
-{
- obj_reloc_ok,
- obj_reloc_overflow,
- obj_reloc_dangerous,
- obj_reloc_unhandled
-};
-
-struct obj_string_patch
-{
- struct obj_string_patch *next;
- int reloc_secidx;
- ElfW(Addr) reloc_offset;
- ElfW(Addr) string_offset;
-};
-
-struct obj_symbol_patch
-{
- struct obj_symbol_patch *next;
- int reloc_secidx;
- ElfW(Addr) reloc_offset;
- struct obj_symbol *sym;
-};
-
-
-/* Generic object manipulation routines. */
-
-unsigned long obj_elf_hash(const char *);
-
-unsigned long obj_elf_hash_n(const char *, unsigned long len);
-
-struct obj_symbol *obj_add_symbol (struct obj_file *f, const char *name,
- unsigned long symidx, int info, int secidx,
- ElfW(Addr) value, unsigned long size);
-
-struct obj_symbol *obj_find_symbol (struct obj_file *f,
- const char *name);
-
-ElfW(Addr) obj_symbol_final_value(struct obj_file *f,
- struct obj_symbol *sym);
-
-void obj_set_symbol_compare(struct obj_file *f,
- int (*cmp)(const char *, const char *),
- unsigned long (*hash)(const char *));
-
-struct obj_section *obj_find_section (struct obj_file *f,
- const char *name);
-
-void obj_insert_section_load_order (struct obj_file *f,
- struct obj_section *sec);
-
-struct obj_section *obj_create_alloced_section (struct obj_file *f,
- const char *name,
- unsigned long align,
- unsigned long size);
-
-struct obj_section *obj_create_alloced_section_first (struct obj_file *f,
- const char *name,
- unsigned long align,
- unsigned long size);
-
-void *obj_extend_section (struct obj_section *sec, unsigned long more);
-
-int obj_string_patch(struct obj_file *f, int secidx, ElfW(Addr) offset,
- const char *string);
-
-int obj_symbol_patch(struct obj_file *f, int secidx, ElfW(Addr) offset,
- struct obj_symbol *sym);
-
-int obj_check_undefineds(struct obj_file *f);
-
-void obj_allocate_commons(struct obj_file *f);
-
-unsigned long obj_load_size (struct obj_file *f);
-
-int obj_relocate (struct obj_file *f, ElfW(Addr) base);
-
-struct obj_file *obj_load(FILE *f);
-
-int obj_create_image (struct obj_file *f, char *image);
-
-/* Architecture specific manipulation routines. */
-
-struct obj_file *arch_new_file (void);
-
-struct obj_section *arch_new_section (void);
-
-struct obj_symbol *arch_new_symbol (void);
-
-enum obj_reloc arch_apply_relocation (struct obj_file *f,
- struct obj_section *targsec,
- struct obj_section *symsec,
- struct obj_symbol *sym,
- ElfW(RelM) *rel, ElfW(Addr) value);
-
-int arch_create_got (struct obj_file *f);
-
-struct new_module;
-int arch_init_module (struct obj_file *f, struct new_module *);
-
-#endif /* obj.h */
-//----------------------------------------------------------------------------
-//--------end of modutils obj.h
-//----------------------------------------------------------------------------
-
-
-
-
-
-#define _PATH_MODULES "/lib/modules"
-#define STRVERSIONLEN 32
-
-#if !defined(BB_FEATURE_INSMOD_NEW_KERNEL) && !defined(BB_FEATURE_INSMOD_OLD_KERNEL)
-#error "Must have ether BB_FEATURE_INSMOD_NEW_KERNEL or BB_FEATURE_INSMOD_OLD_KERNEL defined"
-#endif
-
-/*======================================================================*/
-
-int flag_force_load = 1;
-int flag_autoclean = 0;
-int flag_export = 1;
-
-
-/*======================================================================*/
-
-/* previously, these were named i386_* but since we could be
- compiling for the sh, I've renamed them to the more general
- arch_* These structures are the same between the x86 and SH,
- and we can't support anything else right now anyway. In the
- future maybe they should be #if defined'd */
-
-struct arch_got_entry {
- int offset;
- unsigned offset_done:1;
- unsigned reloc_done:1;
-};
-
-struct arch_file {
- struct obj_file root;
- struct obj_section *got;
-};
-
-struct arch_symbol {
- struct obj_symbol root;
- struct arch_got_entry gotent;
-};
-
-
-struct external_module {
- const char *name;
- ElfW(Addr) addr;
- int used;
- size_t nsyms;
- struct new_module_symbol *syms;
-};
-
-struct new_module_symbol *ksyms;
-size_t nksyms;
-
-struct external_module *ext_modules;
-int n_ext_modules;
-int n_ext_modules_used;
-
-
-
-/* Some firendly syscalls to cheer everyone's day... */
-#define __NR_new_sys_init_module __NR_init_module
-_syscall2(int, new_sys_init_module, const char *, name,
- const struct new_module *, info)
-#define __NR_old_sys_init_module __NR_init_module
-_syscall5(int, old_sys_init_module, const char *, name, char *, code,
- unsigned, codesize, struct old_mod_routines *, routines,
- struct old_symbol_table *, symtab)
-#ifndef BB_RMMOD
-_syscall1(int, delete_module, const char *, name)
-#else
-extern int delete_module(const char *);
-#endif
-
-/* This is kind of troublesome. See, we don't actually support
- the m68k or the arm the same way we support i386 and (now)
- sh. In doing my SH patch, I just assumed that whatever works
- for i386 also works for m68k and arm since currently insmod.c
- does nothing special for them. If this isn't true, the below
- line is rather misleading IMHO, and someone should either
- change it or add more proper architecture-dependent support
- for these boys.
-
- -- Bryan Rittmeyer <bryan@ixiacom.com> */
-
-#if defined(__i386__) || defined(__m68k__) || defined(__arm__)
-/* Jump through hoops to fixup error return codes */
-#define __NR__create_module __NR_create_module
-static inline _syscall2(long, _create_module, const char *, name, size_t,
- size)
-unsigned long create_module(const char *name, size_t size)
-{
- long ret = _create_module(name, size);
-
- if (ret == -1 && errno > 125) {
- ret = -errno;
- errno = 0;
- }
- return ret;
-}
-#else
-_syscall2(unsigned long, create_module, const char *, name, size_t, size)
-#endif
-static char m_filename[BUFSIZ + 1] = "\0";
-static char m_fullName[BUFSIZ + 1] = "\0";
-
-/*======================================================================*/
-
-
-/*======================================================================*/
-
-struct obj_file *arch_new_file(void)
-{
- struct arch_file *f;
- f = xmalloc(sizeof(*f));
- f->got = NULL;
- return &f->root;
-}
-
-struct obj_section *arch_new_section(void)
-{
- return xmalloc(sizeof(struct obj_section));
-}
-
-struct obj_symbol *arch_new_symbol(void)
-{
- struct arch_symbol *sym;
- sym = xmalloc(sizeof(*sym));
- memset(&sym->gotent, 0, sizeof(sym->gotent));
- return &sym->root;
-}
-
-enum obj_reloc
-arch_apply_relocation(struct obj_file *f,
- struct obj_section *targsec,
- struct obj_section *symsec,
- struct obj_symbol *sym,
-#if defined(__sh__)
- Elf32_Rela * rel, Elf32_Addr v)
-#else
- Elf32_Rel * rel, Elf32_Addr v)
-#endif
-{
- struct arch_file *ifile = (struct arch_file *) f;
- struct arch_symbol *isym = (struct arch_symbol *) sym;
-
- Elf32_Addr *loc = (Elf32_Addr *) (targsec->contents + rel->r_offset);
- Elf32_Addr dot = targsec->header.sh_addr + rel->r_offset;
- Elf32_Addr got = ifile->got ? ifile->got->header.sh_addr : 0;
-
- enum obj_reloc ret = obj_reloc_ok;
-
- switch (ELF32_R_TYPE(rel->r_info)) {
-
-/* even though these constants seem to be the same for
- the i386 and the sh, we "#if define" them for clarity
- and in case that ever changes */
-#if defined(__sh__)
- case R_SH_NONE:
-#else
- case R_386_NONE:
-#endif
- break;
-
-#if defined(__sh__)
- case R_SH_DIR32:
-#else
- case R_386_32:
-#endif
- *loc += v;
- break;
-
-#if defined(__sh__)
- case R_SH_REL32:
-#else
- case R_386_PLT32:
- case R_386_PC32:
-#endif
- *loc += v - dot;
- break;
-
-#if defined(__sh__)
- case R_SH_PLT32:
- *loc = v - dot;
- break;
-#endif
-
-
-#if defined(__sh__)
- case R_SH_GLOB_DAT:
- case R_SH_JMP_SLOT:
- *loc = v;
- break;
-#else
- case R_386_GLOB_DAT:
- case R_386_JMP_SLOT:
- *loc = v;
- break;
-#endif
-
-#if defined(__sh__)
- case R_SH_RELATIVE:
- *loc += f->baseaddr + rel->r_addend;
- break;
-#else
- case R_386_RELATIVE:
- *loc += f->baseaddr;
- break;
-#endif
-
-#if defined(__sh__)
- case R_SH_GOTPC:
- assert(got != 0);
- *loc += got - dot + rel->r_addend;;
- break;
-#else
- case R_386_GOTPC:
- assert(got != 0);
- *loc += got - dot;
- break;
-#endif
-
-#if defined(__sh__)
- case R_SH_GOT32:
- assert(isym != NULL);
- if (!isym->gotent.reloc_done) {
- isym->gotent.reloc_done = 1;
- *(Elf32_Addr *) (ifile->got->contents + isym->gotent.offset) =
- v;
- }
- *loc += isym->gotent.offset + rel->r_addend;
- break;
-#else
- case R_386_GOT32:
- assert(isym != NULL);
- if (!isym->gotent.reloc_done) {
- isym->gotent.reloc_done = 1;
- *(Elf32_Addr *) (ifile->got->contents + isym->gotent.offset) =
- v;
- }
- *loc += isym->gotent.offset;
- break;
-#endif
-
-#if defined(__sh__)
- case R_SH_GOTOFF:
-#else
- case R_386_GOTOFF:
-#endif
- assert(got != 0);
- *loc += v - got;
- break;
-
- default:
- ret = obj_reloc_unhandled;
- break;
- }
-
- return ret;
-}
-
-int arch_create_got(struct obj_file *f)
-{
- struct arch_file *ifile = (struct arch_file *) f;
- int i, n, offset = 0, gotneeded = 0;
-
- n = ifile->root.header.e_shnum;
- for (i = 0; i < n; ++i) {
- struct obj_section *relsec, *symsec, *strsec;
-#if defined(__sh__)
- Elf32_Rela *rel, *relend;
-#else
- Elf32_Rel *rel, *relend;
-#endif
- Elf32_Sym *symtab;
- const char *strtab;
-
- relsec = ifile->root.sections[i];
- if (relsec->header.sh_type != SHT_REL)
- continue;
-
- symsec = ifile->root.sections[relsec->header.sh_link];
- strsec = ifile->root.sections[symsec->header.sh_link];
-
-
-#if defined(__sh__)
- rel = (Elf32_Rela *) relsec->contents;
- relend = rel + (relsec->header.sh_size / sizeof(Elf32_Rela));
-#else
- rel = (Elf32_Rel *) relsec->contents;
- relend = rel + (relsec->header.sh_size / sizeof(Elf32_Rel));
-#endif
- symtab = (Elf32_Sym *) symsec->contents;
- strtab = (const char *) strsec->contents;
-
- for (; rel < relend; ++rel) {
- Elf32_Sym *extsym;
- struct arch_symbol *intsym;
- const char *name;
-
- switch (ELF32_R_TYPE(rel->r_info)) {
-#if defined(__sh__)
- case R_SH_GOTPC:
- case R_SH_GOTOFF:
-#else
- case R_386_GOTPC:
- case R_386_GOTOFF:
-#endif
- gotneeded = 1;
- default:
- continue;
-
-#if defined(__sh__)
- case R_SH_GOT32:
-#else
- case R_386_GOT32:
-#endif
- break;
- }
-
- extsym = &symtab[ELF32_R_SYM(rel->r_info)];
- if (extsym->st_name)
- name = strtab + extsym->st_name;
- else
- name = f->sections[extsym->st_shndx]->name;
- intsym =
- (struct arch_symbol *) obj_find_symbol(&ifile->root, name);
-
- if (!intsym->gotent.offset_done) {
- intsym->gotent.offset_done = 1;
- intsym->gotent.offset = offset;
- offset += 4;
- }
- }
- }
-
- if (offset > 0 || gotneeded)
- ifile->got =
- obj_create_alloced_section(&ifile->root, ".got", 4, offset);
-
- return 1;
-}
-
-int arch_init_module(struct obj_file *f, struct new_module *mod)
-{
- return 1;
-}
-
-
-/*======================================================================*/
-
-/* Standard ELF hash function. */
-inline unsigned long obj_elf_hash_n(const char *name, unsigned long n)
-{
- unsigned long h = 0;
- unsigned long g;
- unsigned char ch;
-
- while (n > 0) {
- ch = *name++;
- h = (h << 4) + ch;
- if ((g = (h & 0xf0000000)) != 0) {
- h ^= g >> 24;
- h &= ~g;
- }
- n--;
- }
- return h;
-}
-
-unsigned long obj_elf_hash(const char *name)
-{
- return obj_elf_hash_n(name, strlen(name));
-}
-
-#ifdef BB_FEATURE_INSMOD_VERSION_CHECKING
-/* Get the kernel version in the canonical integer form. */
-
-static int get_kernel_version(char str[STRVERSIONLEN])
-{
- struct utsname uts_info;
- char *p, *q;
- int a, b, c;
-
- if (uname(&uts_info) < 0)
- return -1;
- strncpy(str, uts_info.release, STRVERSIONLEN);
- p = uts_info.release;
-
- a = strtoul(p, &p, 10);
- if (*p != '.')
- return -1;
- b = strtoul(p + 1, &p, 10);
- if (*p != '.')
- return -1;
- c = strtoul(p + 1, &q, 10);
- if (p + 1 == q)
- return -1;
-
- return a << 16 | b << 8 | c;
-}
-
-/* String comparison for non-co-versioned kernel and module. */
-
-static int ncv_strcmp(const char *a, const char *b)
-{
- size_t alen = strlen(a), blen = strlen(b);
-
- if (blen == alen + 10 && b[alen] == '_' && b[alen + 1] == 'R')
- return strncmp(a, b, alen);
- else if (alen == blen + 10 && a[blen] == '_' && a[blen + 1] == 'R')
- return strncmp(a, b, blen);
- else
- return strcmp(a, b);
-}
-
-/* String hashing for non-co-versioned kernel and module. Here
- we are simply forced to drop the crc from the hash. */
-
-static unsigned long ncv_symbol_hash(const char *str)
-{
- size_t len = strlen(str);
- if (len > 10 && str[len - 10] == '_' && str[len - 9] == 'R')
- len -= 10;
- return obj_elf_hash_n(str, len);
-}
-
-void
-obj_set_symbol_compare(struct obj_file *f,
- int (*cmp) (const char *, const char *),
- unsigned long (*hash) (const char *))
-{
- if (cmp)
- f->symbol_cmp = cmp;
- if (hash) {
- struct obj_symbol *tmptab[HASH_BUCKETS], *sym, *next;
- int i;
-
- f->symbol_hash = hash;
-
- memcpy(tmptab, f->symtab, sizeof(tmptab));
- memset(f->symtab, 0, sizeof(f->symtab));
-
- for (i = 0; i < HASH_BUCKETS; ++i)
- for (sym = tmptab[i]; sym; sym = next) {
- unsigned long h = hash(sym->name) % HASH_BUCKETS;
- next = sym->next;
- sym->next = f->symtab[h];
- f->symtab[h] = sym;
- }
- }
-}
-
-#endif /* BB_FEATURE_INSMOD_VERSION_CHECKING */
-
-
-struct obj_symbol *obj_add_symbol(struct obj_file *f, const char *name,
- unsigned long symidx, int info,
- int secidx, ElfW(Addr) value,
- unsigned long size)
-{
- struct obj_symbol *sym;
- unsigned long hash = f->symbol_hash(name) % HASH_BUCKETS;
- int n_type = ELFW(ST_TYPE) (info);
- int n_binding = ELFW(ST_BIND) (info);
-
- for (sym = f->symtab[hash]; sym; sym = sym->next)
- if (f->symbol_cmp(sym->name, name) == 0) {
- int o_secidx = sym->secidx;
- int o_info = sym->info;
- int o_type = ELFW(ST_TYPE) (o_info);
- int o_binding = ELFW(ST_BIND) (o_info);
-
- /* A redefinition! Is it legal? */
-
- if (secidx == SHN_UNDEF)
- return sym;
- else if (o_secidx == SHN_UNDEF)
- goto found;
- else if (n_binding == STB_GLOBAL && o_binding == STB_LOCAL) {
- /* Cope with local and global symbols of the same name
- in the same object file, as might have been created
- by ld -r. The only reason locals are now seen at this
- level at all is so that we can do semi-sensible things
- with parameters. */
-
- struct obj_symbol *nsym, **p;
-
- nsym = arch_new_symbol();
- nsym->next = sym->next;
- nsym->ksymidx = -1;
-
- /* Excise the old (local) symbol from the hash chain. */
- for (p = &f->symtab[hash]; *p != sym; p = &(*p)->next)
- continue;
- *p = sym = nsym;
- goto found;
- } else if (n_binding == STB_LOCAL) {
- /* Another symbol of the same name has already been defined.
- Just add this to the local table. */
- sym = arch_new_symbol();
- sym->next = NULL;
- sym->ksymidx = -1;
- f->local_symtab[symidx] = sym;
- goto found;
- } else if (n_binding == STB_WEAK)
- return sym;
- else if (o_binding == STB_WEAK)
- goto found;
- /* Don't unify COMMON symbols with object types the programmer
- doesn't expect. */
- else if (secidx == SHN_COMMON
- && (o_type == STT_NOTYPE || o_type == STT_OBJECT))
- return sym;
- else if (o_secidx == SHN_COMMON
- && (n_type == STT_NOTYPE || n_type == STT_OBJECT))
- goto found;
- else {
- /* Don't report an error if the symbol is coming from
- the kernel or some external module. */
- if (secidx <= SHN_HIRESERVE)
- errorMsg("%s multiply defined", name);
- return sym;
- }
- }
-
- /* Completely new symbol. */
- sym = arch_new_symbol();
- sym->next = f->symtab[hash];
- f->symtab[hash] = sym;
- sym->ksymidx = -1;
-
- if (ELFW(ST_BIND) (info) == STB_LOCAL)
- f->local_symtab[symidx] = sym;
-
- found:
- sym->name = name;
- sym->value = value;
- sym->size = size;
- sym->secidx = secidx;
- sym->info = info;
-
- return sym;
-}
-
-struct obj_symbol *obj_find_symbol(struct obj_file *f, const char *name)
-{
- struct obj_symbol *sym;
- unsigned long hash = f->symbol_hash(name) % HASH_BUCKETS;
-
- for (sym = f->symtab[hash]; sym; sym = sym->next)
- if (f->symbol_cmp(sym->name, name) == 0)
- return sym;
-
- return NULL;
-}
-
-ElfW(Addr)
- obj_symbol_final_value(struct obj_file * f, struct obj_symbol * sym)
-{
- if (sym) {
- if (sym->secidx >= SHN_LORESERVE)
- return sym->value;
-
- return sym->value + f->sections[sym->secidx]->header.sh_addr;
- } else {
- /* As a special case, a NULL sym has value zero. */
- return 0;
- }
-}
-
-struct obj_section *obj_find_section(struct obj_file *f, const char *name)
-{
- int i, n = f->header.e_shnum;
-
- for (i = 0; i < n; ++i)
- if (strcmp(f->sections[i]->name, name) == 0)
- return f->sections[i];
-
- return NULL;
-}
-
-static int obj_load_order_prio(struct obj_section *a)
-{
- unsigned long af, ac;
-
- af = a->header.sh_flags;
-
- ac = 0;
- if (a->name[0] != '.' || strlen(a->name) != 10 ||
- strcmp(a->name + 5, ".init"))
- ac |= 32;
- if (af & SHF_ALLOC)
- ac |= 16;
- if (!(af & SHF_WRITE))
- ac |= 8;
- if (af & SHF_EXECINSTR)
- ac |= 4;
- if (a->header.sh_type != SHT_NOBITS)
- ac |= 2;
-
- return ac;
-}
-
-void
-obj_insert_section_load_order(struct obj_file *f, struct obj_section *sec)
-{
- struct obj_section **p;
- int prio = obj_load_order_prio(sec);
- for (p = f->load_order_search_start; *p; p = &(*p)->load_next)
- if (obj_load_order_prio(*p) < prio)
- break;
- sec->load_next = *p;
- *p = sec;
-}
-
-struct obj_section *obj_create_alloced_section(struct obj_file *f,
- const char *name,
- unsigned long align,
- unsigned long size)
-{
- int newidx = f->header.e_shnum++;
- struct obj_section *sec;
-
- f->sections = xrealloc(f->sections, (newidx + 1) * sizeof(sec));
- f->sections[newidx] = sec = arch_new_section();
-
- memset(sec, 0, sizeof(*sec));
- sec->header.sh_type = SHT_PROGBITS;
- sec->header.sh_flags = SHF_WRITE | SHF_ALLOC;
- sec->header.sh_size = size;
- sec->header.sh_addralign = align;
- sec->name = name;
- sec->idx = newidx;
- if (size)
- sec->contents = xmalloc(size);
-
- obj_insert_section_load_order(f, sec);
-
- return sec;
-}
-
-struct obj_section *obj_create_alloced_section_first(struct obj_file *f,
- const char *name,
- unsigned long align,
- unsigned long size)
-{
- int newidx = f->header.e_shnum++;
- struct obj_section *sec;
-
- f->sections = xrealloc(f->sections, (newidx + 1) * sizeof(sec));
- f->sections[newidx] = sec = arch_new_section();
-
- memset(sec, 0, sizeof(*sec));
- sec->header.sh_type = SHT_PROGBITS;
- sec->header.sh_flags = SHF_WRITE | SHF_ALLOC;
- sec->header.sh_size = size;
- sec->header.sh_addralign = align;
- sec->name = name;
- sec->idx = newidx;
- if (size)
- sec->contents = xmalloc(size);
-
- sec->load_next = f->load_order;
- f->load_order = sec;
- if (f->load_order_search_start == &f->load_order)
- f->load_order_search_start = &sec->load_next;
-
- return sec;
-}
-
-void *obj_extend_section(struct obj_section *sec, unsigned long more)
-{
- unsigned long oldsize = sec->header.sh_size;
- sec->contents = xrealloc(sec->contents, sec->header.sh_size += more);
- return sec->contents + oldsize;
-}
-
-
-
-/* Conditionally add the symbols from the given symbol set to the
- new module. */
-
-static int
-add_symbols_from(
- struct obj_file *f,
- int idx, struct new_module_symbol *syms, size_t nsyms)
-{
- struct new_module_symbol *s;
- size_t i;
- int used = 0;
-
- for (i = 0, s = syms; i < nsyms; ++i, ++s) {
-
- /* Only add symbols that are already marked external. If we
- override locals we may cause problems for argument initialization.
- We will also create a false dependency on the module. */
- struct obj_symbol *sym;
-
- sym = obj_find_symbol(f, (char *) s->name);
- if (sym && !ELFW(ST_BIND) (sym->info) == STB_LOCAL) {
- sym = obj_add_symbol(f, (char *) s->name, -1,
- ELFW(ST_INFO) (STB_GLOBAL, STT_NOTYPE),
- idx, s->value, 0);
- /* Did our symbol just get installed? If so, mark the
- module as "used". */
- if (sym->secidx == idx)
- used = 1;
- }
- }
-
- return used;
-}
-
-static void add_kernel_symbols(struct obj_file *f)
-{
- struct external_module *m;
- int i, nused = 0;
-
- /* Add module symbols first. */
-
- for (i = 0, m = ext_modules; i < n_ext_modules; ++i, ++m)
- if (m->nsyms
- && add_symbols_from(f, SHN_HIRESERVE + 2 + i, m->syms,
- m->nsyms)) m->used = 1, ++nused;
-
- n_ext_modules_used = nused;
-
- /* And finally the symbols from the kernel proper. */
-
- if (nksyms)
- add_symbols_from(f, SHN_HIRESERVE + 1, ksyms, nksyms);
-}
-
-static char *get_modinfo_value(struct obj_file *f, const char *key)
-{
- struct obj_section *sec;
- char *p, *v, *n, *ep;
- size_t klen = strlen(key);
-
- sec = obj_find_section(f, ".modinfo");
- if (sec == NULL)
- return NULL;
- p = sec->contents;
- ep = p + sec->header.sh_size;
- while (p < ep) {
- v = strchr(p, '=');
- n = strchr(p, '\0');
- if (v) {
- if (p + klen == v && strncmp(p, key, klen) == 0)
- return v + 1;
- } else {
- if (p + klen == n && strcmp(p, key) == 0)
- return n;
- }
- p = n + 1;
- }
-
- return NULL;
-}
-
-
-/*======================================================================*/
-/* Functions relating to module loading in pre 2.1 kernels. */
-
-static int
-old_process_module_arguments(struct obj_file *f, int argc, char **argv)
-{
- while (argc > 0) {
- char *p, *q;
- struct obj_symbol *sym;
- int *loc;
-
- p = *argv;
- if ((q = strchr(p, '=')) == NULL) {
- argc--;
- continue;
- }
- *q++ = '\0';
-
- sym = obj_find_symbol(f, p);
-
- /* Also check that the parameter was not resolved from the kernel. */
- if (sym == NULL || sym->secidx > SHN_HIRESERVE) {
- errorMsg("symbol for parameter %s not found", p);
- return 0;
- }
-
- loc = (int *) (f->sections[sym->secidx]->contents + sym->value);
-
- /* Do C quoting if we begin with a ". */
- if (*q == '"') {
- char *r, *str;
-
- str = alloca(strlen(q));
- for (r = str, q++; *q != '"'; ++q, ++r) {
- if (*q == '\0') {
- errorMsg("improperly terminated string argument for %s", p);
- return 0;
- } else if (*q == '\\')
- switch (*++q) {
- case 'a':
- *r = '\a';
- break;
- case 'b':
- *r = '\b';
- break;
- case 'e':
- *r = '\033';
- break;
- case 'f':
- *r = '\f';
- break;
- case 'n':
- *r = '\n';
- break;
- case 'r':
- *r = '\r';
- break;
- case 't':
- *r = '\t';
- break;
-
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- {
- int c = *q - '0';
- if (q[1] >= '0' && q[1] <= '7') {
- c = (c * 8) + *++q - '0';
- if (q[1] >= '0' && q[1] <= '7')
- c = (c * 8) + *++q - '0';
- }
- *r = c;
- }
- break;
-
- default:
- *r = *q;
- break;
- } else
- *r = *q;
- }
- *r = '\0';
- obj_string_patch(f, sym->secidx, sym->value, str);
- } else if (*q >= '0' && *q <= '9') {
- do
- *loc++ = strtoul(q, &q, 0);
- while (*q++ == ',');
- } else {
- char *contents = f->sections[sym->secidx]->contents;
- char *loc = contents + sym->value;
- char *r; /* To search for commas */
-
- /* Break the string with comas */
- while ((r = strchr(q, ',')) != (char *) NULL) {
- *r++ = '\0';
- obj_string_patch(f, sym->secidx, loc - contents, q);
- loc += sizeof(char *);
- q = r;
- }
-
- /* last part */
- obj_string_patch(f, sym->secidx, loc - contents, q);
- }
-
- argc--, argv++;
- }
-
- return 1;
-}
-
-#ifdef BB_FEATURE_INSMOD_VERSION_CHECKING
-static int old_is_module_checksummed(struct obj_file *f)
-{
- return obj_find_symbol(f, "Using_Versions") != NULL;
-}
-/* Get the module's kernel version in the canonical integer form. */
-
-static int
-old_get_module_version(struct obj_file *f, char str[STRVERSIONLEN])
-{
- struct obj_symbol *sym;
- char *p, *q;
- int a, b, c;
-
- sym = obj_find_symbol(f, "kernel_version");
- if (sym == NULL)
- return -1;
-
- p = f->sections[sym->secidx]->contents + sym->value;
- strncpy(str, p, STRVERSIONLEN);
-
- a = strtoul(p, &p, 10);
- if (*p != '.')
- return -1;
- b = strtoul(p + 1, &p, 10);
- if (*p != '.')
- return -1;
- c = strtoul(p + 1, &q, 10);
- if (p + 1 == q)
- return -1;
-
- return a << 16 | b << 8 | c;
-}
-
-#endif /* BB_FEATURE_INSMOD_VERSION_CHECKING */
-
-#ifdef BB_FEATURE_INSMOD_OLD_KERNEL
-
-/* Fetch all the symbols and divvy them up as appropriate for the modules. */
-
-static int old_get_kernel_symbols(const char *m_name)
-{
- struct old_kernel_sym *ks, *k;
- struct new_module_symbol *s;
- struct external_module *mod;
- int nks, nms, nmod, i;
-
- nks = get_kernel_syms(NULL);
- if (nks < 0) {
- errorMsg("get_kernel_syms: %s: %s", m_name, strerror(errno));
- return 0;
- }
-
- ks = k = xmalloc(nks * sizeof(*ks));
-
- if (get_kernel_syms(ks) != nks) {
- logperror("inconsistency with get_kernel_syms -- is someone else "
- "playing with modules?");
- free(ks);
- return 0;
- }
-
- /* Collect the module information. */
-
- mod = NULL;
- nmod = -1;
-
- while (k->name[0] == '#' && k->name[1]) {
- struct old_kernel_sym *k2;
- struct new_module_symbol *s;
-
- /* Find out how many symbols this module has. */
- for (k2 = k + 1; k2->name[0] != '#'; ++k2)
- continue;
- nms = k2 - k - 1;
-
- mod = xrealloc(mod, (++nmod + 1) * sizeof(*mod));
- mod[nmod].name = k->name + 1;
- mod[nmod].addr = k->value;
- mod[nmod].used = 0;
- mod[nmod].nsyms = nms;
- mod[nmod].syms = s = (nms ? xmalloc(nms * sizeof(*s)) : NULL);
-
- for (i = 0, ++k; i < nms; ++i, ++s, ++k) {
- s->name = (unsigned long) k->name;
- s->value = k->value;
- }
-
- k = k2;
- }
-
- ext_modules = mod;
- n_ext_modules = nmod + 1;
-
- /* Now collect the symbols for the kernel proper. */
-
- if (k->name[0] == '#')
- ++k;
-
- nksyms = nms = nks - (k - ks);
- ksyms = s = (nms ? xmalloc(nms * sizeof(*s)) : NULL);
-
- for (i = 0; i < nms; ++i, ++s, ++k) {
- s->name = (unsigned long) k->name;
- s->value = k->value;
- }
-
- return 1;
-}
-
-/* Return the kernel symbol checksum version, or zero if not used. */
-
-static int old_is_kernel_checksummed(void)
-{
- /* Using_Versions is the first symbol. */
- if (nksyms > 0
- && strcmp((char *) ksyms[0].name,
- "Using_Versions") == 0) return ksyms[0].value;
- else
- return 0;
-}
-
-
-static int old_create_mod_use_count(struct obj_file *f)
-{
- struct obj_section *sec;
-
- sec = obj_create_alloced_section_first(f, ".moduse", sizeof(long),
- sizeof(long));
-
- obj_add_symbol(f, "mod_use_count_", -1,
- ELFW(ST_INFO) (STB_LOCAL, STT_OBJECT), sec->idx, 0,
- sizeof(long));
-
- return 1;
-}
-
-static int
-old_init_module(const char *m_name, struct obj_file *f,
- unsigned long m_size)
-{
- char *image;
- struct old_mod_routines routines;
- struct old_symbol_table *symtab;
- int ret;
-
- /* Create the symbol table */
- {
- int nsyms = 0, strsize = 0, total;
-
- /* Size things first... */
- if (flag_export) {
- int i;
- for (i = 0; i < HASH_BUCKETS; ++i) {
- struct obj_symbol *sym;
- for (sym = f->symtab[i]; sym; sym = sym->next)
- if (ELFW(ST_BIND) (sym->info) != STB_LOCAL
- && sym->secidx <= SHN_HIRESERVE)
- {
- sym->ksymidx = nsyms++;
- strsize += strlen(sym->name) + 1;
- }
- }
- }
-
- total = (sizeof(struct old_symbol_table)
- + nsyms * sizeof(struct old_module_symbol)
- + n_ext_modules_used * sizeof(struct old_module_ref)
- + strsize);
- symtab = xmalloc(total);
- symtab->size = total;
- symtab->n_symbols = nsyms;
- symtab->n_refs = n_ext_modules_used;
-
- if (flag_export && nsyms) {
- struct old_module_symbol *ksym;
- char *str;
- int i;
-
- ksym = symtab->symbol;
- str = ((char *) ksym + nsyms * sizeof(struct old_module_symbol)
- + n_ext_modules_used * sizeof(struct old_module_ref));
-
- for (i = 0; i < HASH_BUCKETS; ++i) {
- struct obj_symbol *sym;
- for (sym = f->symtab[i]; sym; sym = sym->next)
- if (sym->ksymidx >= 0) {
- ksym->addr = obj_symbol_final_value(f, sym);
- ksym->name =
- (unsigned long) str - (unsigned long) symtab;
-
- str = stpcpy(str, sym->name) + 1;
- ksym++;
- }
- }
- }
-
- if (n_ext_modules_used) {
- struct old_module_ref *ref;
- int i;
-
- ref = (struct old_module_ref *)
- ((char *) symtab->symbol + nsyms * sizeof(struct old_module_symbol));
-
- for (i = 0; i < n_ext_modules; ++i)
- if (ext_modules[i].used)
- ref++->module = ext_modules[i].addr;
- }
- }
-
- /* Fill in routines. */
-
- routines.init =
- obj_symbol_final_value(f, obj_find_symbol(f, "init_module"));
- routines.cleanup =
- obj_symbol_final_value(f, obj_find_symbol(f, "cleanup_module"));
-
- /* Whew! All of the initialization is complete. Collect the final
- module image and give it to the kernel. */
-
- image = xmalloc(m_size);
- obj_create_image(f, image);
-
- /* image holds the complete relocated module, accounting correctly for
- mod_use_count. However the old module kernel support assume that
- it is receiving something which does not contain mod_use_count. */
- ret = old_sys_init_module(m_name, image + sizeof(long),
- m_size | (flag_autoclean ? OLD_MOD_AUTOCLEAN
- : 0), &routines, symtab);
- if (ret)
- errorMsg("init_module: %s: %s", m_name, strerror(errno));
-
- free(image);
- free(symtab);
-
- return ret == 0;
-}
-
-#else
-
-#define old_create_mod_use_count(x) TRUE
-#define old_init_module(x, y, z) TRUE
-
-#endif /* BB_FEATURE_INSMOD_OLD_KERNEL */
-
-
-
-/*======================================================================*/
-/* Functions relating to module loading after 2.1.18. */
-
-static int
-new_process_module_arguments(struct obj_file *f, int argc, char **argv)
-{
- while (argc > 0) {
- char *p, *q, *key;
- struct obj_symbol *sym;
- char *contents, *loc;
- int min, max, n;
-
- p = *argv;
- if ((q = strchr(p, '=')) == NULL) {
- argc--;
- continue;
- }
-
- key = alloca(q - p + 6);
- memcpy(key, "parm_", 5);
- memcpy(key + 5, p, q - p);
- key[q - p + 5] = 0;
-
- p = get_modinfo_value(f, key);
- key += 5;
- if (p == NULL) {
- errorMsg("invalid parameter %s", key);
- return 0;
- }
-
- sym = obj_find_symbol(f, key);
-
- /* Also check that the parameter was not resolved from the kernel. */
- if (sym == NULL || sym->secidx > SHN_HIRESERVE) {
- errorMsg("symbol for parameter %s not found", key);
- return 0;
- }
-
- if (isdigit(*p)) {
- min = strtoul(p, &p, 10);
- if (*p == '-')
- max = strtoul(p + 1, &p, 10);
- else
- max = min;
- } else
- min = max = 1;
-
- contents = f->sections[sym->secidx]->contents;
- loc = contents + sym->value;
- n = (*++q != '\0');
-
- while (1) {
- if ((*p == 's') || (*p == 'c')) {
- char *str;
-
- /* Do C quoting if we begin with a ", else slurp the lot. */
- if (*q == '"') {
- char *r;
-
- str = alloca(strlen(q));
- for (r = str, q++; *q != '"'; ++q, ++r) {
- if (*q == '\0') {
- errorMsg("improperly terminated string argument for %s",
- key);
- return 0;
- } else if (*q == '\\')
- switch (*++q) {
- case 'a':
- *r = '\a';
- break;
- case 'b':
- *r = '\b';
- break;
- case 'e':
- *r = '\033';
- break;
- case 'f':
- *r = '\f';
- break;
- case 'n':
- *r = '\n';
- break;
- case 'r':
- *r = '\r';
- break;
- case 't':
- *r = '\t';
- break;
-
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- {
- int c = *q - '0';
- if (q[1] >= '0' && q[1] <= '7') {
- c = (c * 8) + *++q - '0';
- if (q[1] >= '0' && q[1] <= '7')
- c = (c * 8) + *++q - '0';
- }
- *r = c;
- }
- break;
-
- default:
- *r = *q;
- break;
- } else
- *r = *q;
- }
- *r = '\0';
- ++q;
- } else {
- char *r;
-
- /* In this case, the string is not quoted. We will break
- it using the coma (like for ints). If the user wants to
- include comas in a string, he just has to quote it */
-
- /* Search the next coma */
- r = strchr(q, ',');
-
- /* Found ? */
- if (r != (char *) NULL) {
- /* Recopy the current field */
- str = alloca(r - q + 1);
- memcpy(str, q, r - q);
-
- /* I don't know if it is usefull, as the previous case
- doesn't null terminate the string ??? */
- str[r - q] = '\0';
-
- /* Keep next fields */
- q = r;
- } else {
- /* last string */
- str = q;
- q = "";
- }
- }
-
- if (*p == 's') {
- /* Normal string */
- obj_string_patch(f, sym->secidx, loc - contents, str);
- loc += tgt_sizeof_char_p;
- } else {
- /* Array of chars (in fact, matrix !) */
- unsigned long charssize; /* size of each member */
-
- /* Get the size of each member */
- /* Probably we should do that outside the loop ? */
- if (!isdigit(*(p + 1))) {
- errorMsg("parameter type 'c' for %s must be followed by"
- " the maximum size", key);
- return 0;
- }
- charssize = strtoul(p + 1, (char **) NULL, 10);
-
- /* Check length */
- if (strlen(str) >= charssize) {
- errorMsg("string too long for %s (max %ld)", key,
- charssize - 1);
- return 0;
- }
-
- /* Copy to location */
- strcpy((char *) loc, str);
- loc += charssize;
- }
- } else {
- long v = strtoul(q, &q, 0);
- switch (*p) {
- case 'b':
- *loc++ = v;
- break;
- case 'h':
- *(short *) loc = v;
- loc += tgt_sizeof_short;
- break;
- case 'i':
- *(int *) loc = v;
- loc += tgt_sizeof_int;
- break;
- case 'l':
- *(long *) loc = v;
- loc += tgt_sizeof_long;
- break;
-
- default:
- errorMsg("unknown parameter type '%c' for %s", *p, key);
- return 0;
- }
- }
-
- retry_end_of_value:
- switch (*q) {
- case '\0':
- goto end_of_arg;
-
- case ' ':
- case '\t':
- case '\n':
- case '\r':
- ++q;
- goto retry_end_of_value;
-
- case ',':
- if (++n > max) {
- errorMsg("too many values for %s (max %d)", key, max);
- return 0;
- }
- ++q;
- break;
-
- default:
- errorMsg("invalid argument syntax for %s", key);
- return 0;
- }
- }
-
- end_of_arg:
- if (n < min) {
- errorMsg("too few values for %s (min %d)", key, min);
- return 0;
- }
-
- argc--, argv++;
- }
-
- return 1;
-}
-
-#ifdef BB_FEATURE_INSMOD_VERSION_CHECKING
-static int new_is_module_checksummed(struct obj_file *f)
-{
- const char *p = get_modinfo_value(f, "using_checksums");
- if (p)
- return atoi(p);
- else
- return 0;
-}
-
-/* Get the module's kernel version in the canonical integer form. */
-
-static int
-new_get_module_version(struct obj_file *f, char str[STRVERSIONLEN])
-{
- char *p, *q;
- int a, b, c;
-
- p = get_modinfo_value(f, "kernel_version");
- if (p == NULL)
- return -1;
- strncpy(str, p, STRVERSIONLEN);
-
- a = strtoul(p, &p, 10);
- if (*p != '.')
- return -1;
- b = strtoul(p + 1, &p, 10);
- if (*p != '.')
- return -1;
- c = strtoul(p + 1, &q, 10);
- if (p + 1 == q)
- return -1;
-
- return a << 16 | b << 8 | c;
-}
-
-#endif /* BB_FEATURE_INSMOD_VERSION_CHECKING */
-
-
-#ifdef BB_FEATURE_INSMOD_NEW_KERNEL
-
-/* Fetch the loaded modules, and all currently exported symbols. */
-
-static int new_get_kernel_symbols(void)
-{
- char *module_names, *mn;
- struct external_module *modules, *m;
- struct new_module_symbol *syms, *s;
- size_t ret, bufsize, nmod, nsyms, i, j;
-
- /* Collect the loaded modules. */
-
- module_names = xmalloc(bufsize = 256);
- retry_modules_load:
- if (query_module(NULL, QM_MODULES, module_names, bufsize, &ret)) {
- if (errno == ENOSPC) {
- module_names = xrealloc(module_names, bufsize = ret);
- goto retry_modules_load;
- }
- errorMsg("QM_MODULES: %s", strerror(errno));
- return 0;
- }
-
- n_ext_modules = nmod = ret;
- ext_modules = modules = xmalloc(nmod * sizeof(*modules));
- memset(modules, 0, nmod * sizeof(*modules));
-
- /* Collect the modules' symbols. */
-
- for (i = 0, mn = module_names, m = modules;
- i < nmod; ++i, ++m, mn += strlen(mn) + 1) {
- struct new_module_info info;
-
- if (query_module(mn, QM_INFO, &info, sizeof(info), &ret)) {
- if (errno == ENOENT) {
- /* The module was removed out from underneath us. */
- continue;
- }
- errorMsg("query_module: QM_INFO: %s: %s", mn, strerror(errno));
- return 0;
- }
-
- syms = xmalloc(bufsize = 1024);
- retry_mod_sym_load:
- if (query_module(mn, QM_SYMBOLS, syms, bufsize, &ret)) {
- switch (errno) {
- case ENOSPC:
- syms = xrealloc(syms, bufsize = ret);
- goto retry_mod_sym_load;
- case ENOENT:
- /* The module was removed out from underneath us. */
- continue;
- default:
- errorMsg("query_module: QM_SYMBOLS: %s: %s", mn, strerror(errno));
- return 0;
- }
- }
- nsyms = ret;
-
- m->name = mn;
- m->addr = info.addr;
- m->nsyms = nsyms;
- m->syms = syms;
-
- for (j = 0, s = syms; j < nsyms; ++j, ++s) {
- s->name += (unsigned long) syms;
- }
- }
-
- /* Collect the kernel's symbols. */
-
- syms = xmalloc(bufsize = 16 * 1024);
- retry_kern_sym_load:
- if (query_module(NULL, QM_SYMBOLS, syms, bufsize, &ret)) {
- if (errno == ENOSPC) {
- syms = xrealloc(syms, bufsize = ret);
- goto retry_kern_sym_load;
- }
- errorMsg("kernel: QM_SYMBOLS: %s", strerror(errno));
- return 0;
- }
- nksyms = nsyms = ret;
- ksyms = syms;
-
- for (j = 0, s = syms; j < nsyms; ++j, ++s) {
- s->name += (unsigned long) syms;
- }
- return 1;
-}
-
-
-/* Return the kernel symbol checksum version, or zero if not used. */
-
-static int new_is_kernel_checksummed(void)
-{
- struct new_module_symbol *s;
- size_t i;
-
- /* Using_Versions is not the first symbol, but it should be in there. */
-
- for (i = 0, s = ksyms; i < nksyms; ++i, ++s)
- if (strcmp((char *) s->name, "Using_Versions") == 0)
- return s->value;
-
- return 0;
-}
-
-
-static int new_create_this_module(struct obj_file *f, const char *m_name)
-{
- struct obj_section *sec;
-
- sec = obj_create_alloced_section_first(f, ".this", tgt_sizeof_long,
- sizeof(struct new_module));
- memset(sec->contents, 0, sizeof(struct new_module));
-
- obj_add_symbol(f, "__this_module", -1,
- ELFW(ST_INFO) (STB_LOCAL, STT_OBJECT), sec->idx, 0,
- sizeof(struct new_module));
-
- obj_string_patch(f, sec->idx, offsetof(struct new_module, name),
- m_name);
-
- return 1;
-}
-
-
-static int new_create_module_ksymtab(struct obj_file *f)
-{
- struct obj_section *sec;
- int i;
-
- /* We must always add the module references. */
-
- if (n_ext_modules_used) {
- struct new_module_ref *dep;
- struct obj_symbol *tm;
-
- sec = obj_create_alloced_section(f, ".kmodtab", tgt_sizeof_void_p,
- (sizeof(struct new_module_ref)
- * n_ext_modules_used));
- if (!sec)
- return 0;
-
- tm = obj_find_symbol(f, "__this_module");
- dep = (struct new_module_ref *) sec->contents;
- for (i = 0; i < n_ext_modules; ++i)
- if (ext_modules[i].used) {
- dep->dep = ext_modules[i].addr;
- obj_symbol_patch(f, sec->idx,
- (char *) &dep->ref - sec->contents, tm);
- dep->next_ref = 0;
- ++dep;
- }
- }
-
- if (flag_export && !obj_find_section(f, "__ksymtab")) {
- size_t nsyms;
- int *loaded;
-
- sec =
- obj_create_alloced_section(f, "__ksymtab", tgt_sizeof_void_p,
- 0);
-
- /* We don't want to export symbols residing in sections that
- aren't loaded. There are a number of these created so that
- we make sure certain module options don't appear twice. */
-
- loaded = alloca(sizeof(int) * (i = f->header.e_shnum));
- while (--i >= 0)
- loaded[i] = (f->sections[i]->header.sh_flags & SHF_ALLOC) != 0;
-
- for (nsyms = i = 0; i < HASH_BUCKETS; ++i) {
- struct obj_symbol *sym;
- for (sym = f->symtab[i]; sym; sym = sym->next)
- if (ELFW(ST_BIND) (sym->info) != STB_LOCAL
- && sym->secidx <= SHN_HIRESERVE
- && (sym->secidx >= SHN_LORESERVE
- || loaded[sym->secidx])) {
- ElfW(Addr) ofs = nsyms * 2 * tgt_sizeof_void_p;
-
- obj_symbol_patch(f, sec->idx, ofs, sym);
- obj_string_patch(f, sec->idx, ofs + tgt_sizeof_void_p,
- sym->name);
-
- nsyms++;
- }
- }
-
- obj_extend_section(sec, nsyms * 2 * tgt_sizeof_char_p);
- }
-
- return 1;
-}
-
-
-static int
-new_init_module(const char *m_name, struct obj_file *f,
- unsigned long m_size)
-{
- struct new_module *module;
- struct obj_section *sec;
- void *image;
- int ret;
- tgt_long m_addr;
-
- sec = obj_find_section(f, ".this");
- module = (struct new_module *) sec->contents;
- m_addr = sec->header.sh_addr;
-
- module->size_of_struct = sizeof(*module);
- module->size = m_size;
- module->flags = flag_autoclean ? NEW_MOD_AUTOCLEAN : 0;
-
- sec = obj_find_section(f, "__ksymtab");
- if (sec && sec->header.sh_size) {
- module->syms = sec->header.sh_addr;
- module->nsyms = sec->header.sh_size / (2 * tgt_sizeof_char_p);
- }
-
- if (n_ext_modules_used) {
- sec = obj_find_section(f, ".kmodtab");
- module->deps = sec->header.sh_addr;
- module->ndeps = n_ext_modules_used;
- }
-
- module->init =
- obj_symbol_final_value(f, obj_find_symbol(f, "init_module"));
- module->cleanup =
- obj_symbol_final_value(f, obj_find_symbol(f, "cleanup_module"));
-
- sec = obj_find_section(f, "__ex_table");
- if (sec) {
- module->ex_table_start = sec->header.sh_addr;
- module->ex_table_end = sec->header.sh_addr + sec->header.sh_size;
- }
-
- sec = obj_find_section(f, ".text.init");
- if (sec) {
- module->runsize = sec->header.sh_addr - m_addr;
- }
- sec = obj_find_section(f, ".data.init");
- if (sec) {
- if (!module->runsize ||
- module->runsize > sec->header.sh_addr - m_addr)
- module->runsize = sec->header.sh_addr - m_addr;
- }
-
- if (!arch_init_module(f, module))
- return 0;
-
- /* Whew! All of the initialization is complete. Collect the final
- module image and give it to the kernel. */
-
- image = xmalloc(m_size);
- obj_create_image(f, image);
-
- ret = new_sys_init_module(m_name, (struct new_module *) image);
- if (ret)
- errorMsg("init_module: %s: %s", m_name, strerror(errno));
-
- free(image);
-
- return ret == 0;
-}
-
-#else
-
-#define new_init_module(x, y, z) TRUE
-#define new_create_this_module(x, y) 0
-#define new_create_module_ksymtab(x)
-
-#endif /* BB_FEATURE_INSMOD_OLD_KERNEL */
-
-
-/*======================================================================*/
-
-int
-obj_string_patch(struct obj_file *f, int secidx, ElfW(Addr) offset,
- const char *string)
-{
- struct obj_string_patch *p;
- struct obj_section *strsec;
- size_t len = strlen(string) + 1;
- char *loc;
-
- p = xmalloc(sizeof(*p));
- p->next = f->string_patches;
- p->reloc_secidx = secidx;
- p->reloc_offset = offset;
- f->string_patches = p;
-
- strsec = obj_find_section(f, ".kstrtab");
- if (strsec == NULL) {
- strsec = obj_create_alloced_section(f, ".kstrtab", 1, len);
- p->string_offset = 0;
- loc = strsec->contents;
- } else {
- p->string_offset = strsec->header.sh_size;
- loc = obj_extend_section(strsec, len);
- }
- memcpy(loc, string, len);
-
- return 1;
-}
-
-int
-obj_symbol_patch(struct obj_file *f, int secidx, ElfW(Addr) offset,
- struct obj_symbol *sym)
-{
- struct obj_symbol_patch *p;
-
- p = xmalloc(sizeof(*p));
- p->next = f->symbol_patches;
- p->reloc_secidx = secidx;
- p->reloc_offset = offset;
- p->sym = sym;
- f->symbol_patches = p;
-
- return 1;
-}
-
-int obj_check_undefineds(struct obj_file *f)
-{
- unsigned long i;
- int ret = 1;
-
- for (i = 0; i < HASH_BUCKETS; ++i) {
- struct obj_symbol *sym;
- for (sym = f->symtab[i]; sym; sym = sym->next)
- if (sym->secidx == SHN_UNDEF) {
- if (ELFW(ST_BIND) (sym->info) == STB_WEAK) {
- sym->secidx = SHN_ABS;
- sym->value = 0;
- } else {
- errorMsg("unresolved symbol %s", sym->name);
- ret = 0;
- }
- }
- }
-
- return ret;
-}
-
-void obj_allocate_commons(struct obj_file *f)
-{
- struct common_entry {
- struct common_entry *next;
- struct obj_symbol *sym;
- } *common_head = NULL;
-
- unsigned long i;
-
- for (i = 0; i < HASH_BUCKETS; ++i) {
- struct obj_symbol *sym;
- for (sym = f->symtab[i]; sym; sym = sym->next)
- if (sym->secidx == SHN_COMMON) {
- /* Collect all COMMON symbols and sort them by size so as to
- minimize space wasted by alignment requirements. */
- {
- struct common_entry **p, *n;
- for (p = &common_head; *p; p = &(*p)->next)
- if (sym->size <= (*p)->sym->size)
- break;
-
- n = alloca(sizeof(*n));
- n->next = *p;
- n->sym = sym;
- *p = n;
- }
- }
- }
-
- for (i = 1; i < f->local_symtab_size; ++i) {
- struct obj_symbol *sym = f->local_symtab[i];
- if (sym && sym->secidx == SHN_COMMON) {
- struct common_entry **p, *n;
- for (p = &common_head; *p; p = &(*p)->next)
- if (sym == (*p)->sym)
- break;
- else if (sym->size < (*p)->sym->size) {
- n = alloca(sizeof(*n));
- n->next = *p;
- n->sym = sym;
- *p = n;
- break;
- }
- }
- }
-
- if (common_head) {
- /* Find the bss section. */
- for (i = 0; i < f->header.e_shnum; ++i)
- if (f->sections[i]->header.sh_type == SHT_NOBITS)
- break;
-
- /* If for some reason there hadn't been one, create one. */
- if (i == f->header.e_shnum) {
- struct obj_section *sec;
-
- f->sections = xrealloc(f->sections, (i + 1) * sizeof(sec));
- f->sections[i] = sec = arch_new_section();
- f->header.e_shnum = i + 1;
-
- memset(sec, 0, sizeof(*sec));
- sec->header.sh_type = SHT_PROGBITS;
- sec->header.sh_flags = SHF_WRITE | SHF_ALLOC;
- sec->name = ".bss";
- sec->idx = i;
- }
-
- /* Allocate the COMMONS. */
- {
- ElfW(Addr) bss_size = f->sections[i]->header.sh_size;
- ElfW(Addr) max_align = f->sections[i]->header.sh_addralign;
- struct common_entry *c;
-
- for (c = common_head; c; c = c->next) {
- ElfW(Addr) align = c->sym->value;
-
- if (align > max_align)
- max_align = align;
- if (bss_size & (align - 1))
- bss_size = (bss_size | (align - 1)) + 1;
-
- c->sym->secidx = i;
- c->sym->value = bss_size;
-
- bss_size += c->sym->size;
- }
-
- f->sections[i]->header.sh_size = bss_size;
- f->sections[i]->header.sh_addralign = max_align;
- }
- }
-
- /* For the sake of patch relocation and parameter initialization,
- allocate zeroed data for NOBITS sections now. Note that after
- this we cannot assume NOBITS are really empty. */
- for (i = 0; i < f->header.e_shnum; ++i) {
- struct obj_section *s = f->sections[i];
- if (s->header.sh_type == SHT_NOBITS) {
- s->contents = memset(xmalloc(s->header.sh_size),
- 0, s->header.sh_size);
- s->header.sh_type = SHT_PROGBITS;
- }
- }
-}
-
-unsigned long obj_load_size(struct obj_file *f)
-{
- unsigned long dot = 0;
- struct obj_section *sec;
-
- /* Finalize the positions of the sections relative to one another. */
-
- for (sec = f->load_order; sec; sec = sec->load_next) {
- ElfW(Addr) align;
-
- align = sec->header.sh_addralign;
- if (align && (dot & (align - 1)))
- dot = (dot | (align - 1)) + 1;
-
- sec->header.sh_addr = dot;
- dot += sec->header.sh_size;
- }
-
- return dot;
-}
-
-int obj_relocate(struct obj_file *f, ElfW(Addr) base)
-{
- int i, n = f->header.e_shnum;
- int ret = 1;
-
- /* Finalize the addresses of the sections. */
-
- f->baseaddr = base;
- for (i = 0; i < n; ++i)
- f->sections[i]->header.sh_addr += base;
-
- /* And iterate over all of the relocations. */
-
- for (i = 0; i < n; ++i) {
- struct obj_section *relsec, *symsec, *targsec, *strsec;
- ElfW(RelM) * rel, *relend;
- ElfW(Sym) * symtab;
- const char *strtab;
-
- relsec = f->sections[i];
- if (relsec->header.sh_type != SHT_RELM)
- continue;
-
- symsec = f->sections[relsec->header.sh_link];
- targsec = f->sections[relsec->header.sh_info];
- strsec = f->sections[symsec->header.sh_link];
-
- rel = (ElfW(RelM) *) relsec->contents;
- relend = rel + (relsec->header.sh_size / sizeof(ElfW(RelM)));
- symtab = (ElfW(Sym) *) symsec->contents;
- strtab = (const char *) strsec->contents;
-
- for (; rel < relend; ++rel) {
- ElfW(Addr) value = 0;
- struct obj_symbol *intsym = NULL;
- unsigned long symndx;
- ElfW(Sym) * extsym = 0;
- const char *errmsg;
-
- /* Attempt to find a value to use for this relocation. */
-
- symndx = ELFW(R_SYM) (rel->r_info);
- if (symndx) {
- /* Note we've already checked for undefined symbols. */
-
- extsym = &symtab[symndx];
- if (ELFW(ST_BIND) (extsym->st_info) == STB_LOCAL) {
- /* Local symbols we look up in the local table to be sure
- we get the one that is really intended. */
- intsym = f->local_symtab[symndx];
- } else {
- /* Others we look up in the hash table. */
- const char *name;
- if (extsym->st_name)
- name = strtab + extsym->st_name;
- else
- name = f->sections[extsym->st_shndx]->name;
- intsym = obj_find_symbol(f, name);
- }
-
- value = obj_symbol_final_value(f, intsym);
- intsym->referenced = 1;
- }
-#if SHT_RELM == SHT_RELA
-#if defined(__alpha__) && defined(AXP_BROKEN_GAS)
- /* Work around a nasty GAS bug, that is fixed as of 2.7.0.9. */
- if (!extsym || !extsym->st_name ||
- ELFW(ST_BIND) (extsym->st_info) != STB_LOCAL)
-#endif
- value += rel->r_addend;
-#endif
-
- /* Do it! */
- switch (arch_apply_relocation
- (f, targsec, symsec, intsym, rel, value)) {
- case obj_reloc_ok:
- break;
-
- case obj_reloc_overflow:
- errmsg = "Relocation overflow";
- goto bad_reloc;
- case obj_reloc_dangerous:
- errmsg = "Dangerous relocation";
- goto bad_reloc;
- case obj_reloc_unhandled:
- errmsg = "Unhandled relocation";
- bad_reloc:
- if (extsym) {
- errorMsg("%s of type %ld for %s", errmsg,
- (long) ELFW(R_TYPE) (rel->r_info),
- strtab + extsym->st_name);
- } else {
- errorMsg("%s of type %ld", errmsg,
- (long) ELFW(R_TYPE) (rel->r_info));
- }
- ret = 0;
- break;
- }
- }
- }
-
- /* Finally, take care of the patches. */
-
- if (f->string_patches) {
- struct obj_string_patch *p;
- struct obj_section *strsec;
- ElfW(Addr) strsec_base;
- strsec = obj_find_section(f, ".kstrtab");
- strsec_base = strsec->header.sh_addr;
-
- for (p = f->string_patches; p; p = p->next) {
- struct obj_section *targsec = f->sections[p->reloc_secidx];
- *(ElfW(Addr) *) (targsec->contents + p->reloc_offset)
- = strsec_base + p->string_offset;
- }
- }
-
- if (f->symbol_patches) {
- struct obj_symbol_patch *p;
-
- for (p = f->symbol_patches; p; p = p->next) {
- struct obj_section *targsec = f->sections[p->reloc_secidx];
- *(ElfW(Addr) *) (targsec->contents + p->reloc_offset)
- = obj_symbol_final_value(f, p->sym);
- }
- }
-
- return ret;
-}
-
-int obj_create_image(struct obj_file *f, char *image)
-{
- struct obj_section *sec;
- ElfW(Addr) base = f->baseaddr;
-
- for (sec = f->load_order; sec; sec = sec->load_next) {
- char *secimg;
-
- if (sec->header.sh_size == 0)
- continue;
-
- secimg = image + (sec->header.sh_addr - base);
-
- /* Note that we allocated data for NOBITS sections earlier. */
- memcpy(secimg, sec->contents, sec->header.sh_size);
- }
-
- return 1;
-}
-
-/*======================================================================*/
-
-struct obj_file *obj_load(FILE * fp)
-{
- struct obj_file *f;
- ElfW(Shdr) * section_headers;
- int shnum, i;
- char *shstrtab;
-
- /* Read the file header. */
-
- f = arch_new_file();
- memset(f, 0, sizeof(*f));
- f->symbol_cmp = strcmp;
- f->symbol_hash = obj_elf_hash;
- f->load_order_search_start = &f->load_order;
-
- fseek(fp, 0, SEEK_SET);
- if (fread(&f->header, sizeof(f->header), 1, fp) != 1) {
- errorMsg("error reading ELF header: %s", strerror(errno));
- return NULL;
- }
-
- if (f->header.e_ident[EI_MAG0] != ELFMAG0
- || f->header.e_ident[EI_MAG1] != ELFMAG1
- || f->header.e_ident[EI_MAG2] != ELFMAG2
- || f->header.e_ident[EI_MAG3] != ELFMAG3) {
- errorMsg("not an ELF file");
- return NULL;
- }
- if (f->header.e_ident[EI_CLASS] != ELFCLASSM
- || f->header.e_ident[EI_DATA] != ELFDATAM
- || f->header.e_ident[EI_VERSION] != EV_CURRENT
- || !MATCH_MACHINE(f->header.e_machine)) {
- errorMsg("ELF file not for this architecture");
- return NULL;
- }
- if (f->header.e_type != ET_REL) {
- errorMsg("ELF file not a relocatable object");
- return NULL;
- }
-
- /* Read the section headers. */
-
- if (f->header.e_shentsize != sizeof(ElfW(Shdr))) {
- errorMsg("section header size mismatch: %lu != %lu",
- (unsigned long) f->header.e_shentsize,
- (unsigned long) sizeof(ElfW(Shdr)));
- return NULL;
- }
-
- shnum = f->header.e_shnum;
- f->sections = xmalloc(sizeof(struct obj_section *) * shnum);
- memset(f->sections, 0, sizeof(struct obj_section *) * shnum);
-
- section_headers = alloca(sizeof(ElfW(Shdr)) * shnum);
- fseek(fp, f->header.e_shoff, SEEK_SET);
- if (fread(section_headers, sizeof(ElfW(Shdr)), shnum, fp) != shnum) {
- errorMsg("error reading ELF section headers: %s", strerror(errno));
- return NULL;
- }
-
- /* Read the section data. */
-
- for (i = 0; i < shnum; ++i) {
- struct obj_section *sec;
-
- f->sections[i] = sec = arch_new_section();
- memset(sec, 0, sizeof(*sec));
-
- sec->header = section_headers[i];
- sec->idx = i;
-
- switch (sec->header.sh_type) {
- case SHT_NULL:
- case SHT_NOTE:
- case SHT_NOBITS:
- /* ignore */
- break;
-
- case SHT_PROGBITS:
- case SHT_SYMTAB:
- case SHT_STRTAB:
- case SHT_RELM:
- if (sec->header.sh_size > 0) {
- sec->contents = xmalloc(sec->header.sh_size);
- fseek(fp, sec->header.sh_offset, SEEK_SET);
- if (fread(sec->contents, sec->header.sh_size, 1, fp) != 1) {
- errorMsg("error reading ELF section data: %s", strerror(errno));
- return NULL;
- }
- } else {
- sec->contents = NULL;
- }
- break;
-
-#if SHT_RELM == SHT_REL
- case SHT_RELA:
- errorMsg("RELA relocations not supported on this architecture");
- return NULL;
-#else
- case SHT_REL:
- errorMsg("REL relocations not supported on this architecture");
- return NULL;
-#endif
-
- default:
- if (sec->header.sh_type >= SHT_LOPROC) {
- /* Assume processor specific section types are debug
- info and can safely be ignored. If this is ever not
- the case (Hello MIPS?), don't put ifdefs here but
- create an arch_load_proc_section(). */
- break;
- }
-
- errorMsg("can't handle sections of type %ld",
- (long) sec->header.sh_type);
- return NULL;
- }
- }
-
- /* Do what sort of interpretation as needed by each section. */
-
- shstrtab = f->sections[f->header.e_shstrndx]->contents;
-
- for (i = 0; i < shnum; ++i) {
- struct obj_section *sec = f->sections[i];
- sec->name = shstrtab + sec->header.sh_name;
- }
-
- for (i = 0; i < shnum; ++i) {
- struct obj_section *sec = f->sections[i];
-
- if (sec->header.sh_flags & SHF_ALLOC)
- obj_insert_section_load_order(f, sec);
-
- switch (sec->header.sh_type) {
- case SHT_SYMTAB:
- {
- unsigned long nsym, j;
- char *strtab;
- ElfW(Sym) * sym;
-
- if (sec->header.sh_entsize != sizeof(ElfW(Sym))) {
- errorMsg("symbol size mismatch: %lu != %lu",
- (unsigned long) sec->header.sh_entsize,
- (unsigned long) sizeof(ElfW(Sym)));
- return NULL;
- }
-
- nsym = sec->header.sh_size / sizeof(ElfW(Sym));
- strtab = f->sections[sec->header.sh_link]->contents;
- sym = (ElfW(Sym) *) sec->contents;
-
- /* Allocate space for a table of local symbols. */
- j = f->local_symtab_size = sec->header.sh_info;
- f->local_symtab = xmalloc(j *=
- sizeof(struct obj_symbol *));
- memset(f->local_symtab, 0, j);
-
- /* Insert all symbols into the hash table. */
- for (j = 1, ++sym; j < nsym; ++j, ++sym) {
- const char *name;
- if (sym->st_name)
- name = strtab + sym->st_name;
- else
- name = f->sections[sym->st_shndx]->name;
-
- obj_add_symbol(f, name, j, sym->st_info, sym->st_shndx,
- sym->st_value, sym->st_size);
- }
- }
- break;
-
- case SHT_RELM:
- if (sec->header.sh_entsize != sizeof(ElfW(RelM))) {
- errorMsg("relocation entry size mismatch: %lu != %lu",
- (unsigned long) sec->header.sh_entsize,
- (unsigned long) sizeof(ElfW(RelM)));
- return NULL;
- }
- break;
- }
- }
-
- return f;
-}
-
-static void hide_special_symbols(struct obj_file *f)
-{
- static const char *const specials[] = {
- "cleanup_module",
- "init_module",
- "kernel_version",
- NULL
- };
-
- struct obj_symbol *sym;
- const char *const *p;
-
- for (p = specials; *p; ++p)
- if ((sym = obj_find_symbol(f, *p)) != NULL)
- sym->info =
- ELFW(ST_INFO) (STB_LOCAL, ELFW(ST_TYPE) (sym->info));
-}
-
-
-void my_usage(void)
-{
- printf("Usage.");
- exit(0);
-}
-
-extern int insmod_main( int argc, char **argv)
-{
- int k_crcs;
- int k_new_syscalls;
- int len;
- char *tmp;
- unsigned long m_size;
- ElfW(Addr) m_addr;
- FILE *fp;
- struct obj_file *f;
- char m_name[BUFSIZ + 1] = "\0";
- int exit_status = FALSE;
- int m_has_modinfo;
-#ifdef BB_FEATURE_INSMOD_VERSION_CHECKING
- int k_version;
- char k_strversion[STRVERSIONLEN];
- char m_strversion[STRVERSIONLEN];
- int m_version;
- int m_crcs;
-#endif
-
-
- if (argc <= 1)
- my_usage();
-
- argv++; argc--;
-
- /* Grab the module name */
- if ((tmp = strrchr(*argv, '/')) != NULL) {
- tmp++;
- } else {
- tmp = *argv;
- }
- len = strlen(tmp);
-
- if (len > 2 && tmp[len - 2] == '.' && tmp[len - 1] == 'o')
- len -= 2;
- memcpy(m_name, tmp, len);
- strcpy(m_fullName, m_name);
- strcat(m_fullName, ".o");
-
- /* Get a filedesc for the module */
- if ((fp = fopen(*argv, "r")) == NULL) {
- errorMsg("Module %s not found", *argv);
- return -1;
- } else
- memcpy(m_filename, *argv, strlen(*argv));
-
-
- if ((f = obj_load(fp)) == NULL) {
- logperror("Could not load the module");
- goto out;
- }
-
- if (get_modinfo_value(f, "kernel_version") == NULL)
- m_has_modinfo = 0;
- else
- m_has_modinfo = 1;
-
-#ifdef BB_FEATURE_INSMOD_VERSION_CHECKING
- /* Version correspondence? */
-
- k_version = get_kernel_version(k_strversion);
- if (m_has_modinfo) {
- m_version = new_get_module_version(f, m_strversion);
- } else {
- m_version = old_get_module_version(f, m_strversion);
- if (m_version == -1) {
- errorMsg("couldn't find the kernel version the module was "
- "compiled for");
- goto out;
- }
- }
-
- if (strncmp(k_strversion, m_strversion, STRVERSIONLEN) != 0) {
- if (flag_force_load) {
- errorMsg("Warning: kernel-module version mismatch\n"
- "\t%s was compiled for kernel version %s\n"
- "\twhile this kernel is version %s",
- m_filename, m_strversion, k_strversion);
- } else {
- errorMsg("kernel-module version mismatch\n"
- "\t%s was compiled for kernel version %s\n"
- "\twhile this kernel is version %s.",
- m_filename, m_strversion, k_strversion);
- goto out;
- }
- }
- k_crcs = 0;
-#endif /* BB_FEATURE_INSMOD_VERSION_CHECKING */
-
- k_new_syscalls = !query_module(NULL, 0, NULL, 0, NULL);
-
- if (k_new_syscalls) {
-#ifdef BB_FEATURE_INSMOD_NEW_KERNEL
- if (!new_get_kernel_symbols())
- goto out;
- k_crcs = new_is_kernel_checksummed();
-#else
- errorMsg("Not configured to support new kernels");
- goto out;
-#endif
- } else {
-#ifdef BB_FEATURE_INSMOD_OLD_KERNEL
- if (!old_get_kernel_symbols(m_name))
- goto out;
- k_crcs = old_is_kernel_checksummed();
-#else
- errorMsg("Not configured to support old kernels");
- goto out;
-#endif
- }
-
-#ifdef BB_FEATURE_INSMOD_VERSION_CHECKING
- if (m_has_modinfo)
- m_crcs = new_is_module_checksummed(f);
- else
- m_crcs = old_is_module_checksummed(f);
-
- if (m_crcs != k_crcs)
- obj_set_symbol_compare(f, ncv_strcmp, ncv_symbol_hash);
-#endif /* BB_FEATURE_INSMOD_VERSION_CHECKING */
-
- /* Let the module know about the kernel symbols. */
- add_kernel_symbols(f);
-
- /* Allocate common symbols, symbol tables, and string tables. */
-
- if (k_new_syscalls
- ? !new_create_this_module(f, m_name)
- : !old_create_mod_use_count(f))
- {
- goto out;
- }
-
- if (!obj_check_undefineds(f)) {
- goto out;
- }
- obj_allocate_commons(f);
-
- if (m_has_modinfo
- ? !new_process_module_arguments(f, argc-1, argv+1)
- : !old_process_module_arguments(f, argc-1, argv+1))
- {
- goto out;
- }
-
- arch_create_got(f);
- hide_special_symbols(f);
-
- if (k_new_syscalls)
- new_create_module_ksymtab(f);
-
- /* Find current size of the module */
- m_size = obj_load_size(f);
-
-
- errno = 0;
- m_addr = create_module(m_name, m_size);
- switch (errno) {
- case 0:
- break;
- case EEXIST:
- errorMsg("A module named %s already exists", m_name);
- /* Considered as a success in stage1 */
- fclose(fp);
- return(TRUE);
- case ENOMEM:
- errorMsg("Can't allocate kernel memory for module; needed %lu bytes",
- m_size);
- goto out;
- default:
- errorMsg("create_module: %s: %s", m_name, strerror(errno));
- goto out;
- }
-
- if (!obj_relocate(f, m_addr)) {
- delete_module(m_name);
- goto out;
- }
-
- if (k_new_syscalls
- ? !new_init_module(m_name, f, m_size)
- : !old_init_module(m_name, f, m_size))
- {
- delete_module(m_name);
- goto out;
- }
-
- exit_status = TRUE;
-
-out:
- fclose(fp);
- return(exit_status);
-}
-
-
-int insmod_call(char * full_filename, char * params)
-{
- int argc = 2;
- char *argv[50];
- char * ptr = params;
- argv[0] = "stage1";
- argv[1] = full_filename;
-
- while (ptr != NULL) {
- argv[argc] = ptr;
- argc++;
- ptr = strchr(ptr, ' ');
- if (ptr) {
- ptr[0] = '\0';
- ptr++;
- }
- }
-
- return insmod_main(argc, argv);
-}
diff --git a/mdk-stage1/insmod-busybox/loop.h b/mdk-stage1/insmod-busybox/loop.h
deleted file mode 100644
index cba8c6b2b..000000000
--- a/mdk-stage1/insmod-busybox/loop.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <linux/posix_types.h>
-#undef dev_t
-#define dev_t __kernel_dev_t
-#include <linux/loop.h>
-#undef dev_t
diff --git a/mdk-stage1/insmod-busybox/messages.c b/mdk-stage1/insmod-busybox/messages.c
deleted file mode 100644
index 81fd9c75c..000000000
--- a/mdk-stage1/insmod-busybox/messages.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/* vi: set sw=4 ts=4: */
-/*
- * Copyright (C) 2000 by BitterSweet Enterprises, LLC.
- * Written by Karl M. Hegbloom <karlheg@debian.org>
- *
- * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-/*
- * Let's put all of these messages in one place, and link this in as
- * a separate object module, so that there are not going to be
- * multiple non-unique but very similar strings in the binary.
- * Perhaps this will make it simpler to internationalize also, and
- * may make the binary slightly smaller.
- */
-
-// To use this header file, include something like this:
-//
-//#define BB_DECLARE_EXTERN
-//#define bb_need_memory_exhausted
-//#include "messages.c"
-//
-//Then just use the string memory_exhausted when it is needed.
-//
-
-#include "busybox.h"
-#ifndef _BB_MESSAGES_C
-#define _BB_MESSAGES_C
-
-#ifdef BB_DECLARE_EXTERN
-# define BB_DEF_MESSAGE(symbol, string_const) extern const char *symbol;
-#else
-# define BB_DEF_MESSAGE(symbol, string_const) const char *symbol = string_const;
-#endif
-
-
-#if defined bb_need_full_version || ! defined BB_DECLARE_EXTERN
- BB_DEF_MESSAGE(full_version,
- "BusyBox v" BB_VER " (" BB_BT ") multi-call binary -- GPL2")
-#endif
-#if defined bb_need_name_too_long || ! defined BB_DECLARE_EXTERN
- BB_DEF_MESSAGE(name_too_long, "file name too long\n")
-#endif
-#if defined bb_need_omitting_directory || ! defined BB_DECLARE_EXTERN
- BB_DEF_MESSAGE(omitting_directory, "%s: omitting directory\n")
-#endif
-#if defined bb_need_not_a_directory || ! defined BB_DECLARE_EXTERN
- BB_DEF_MESSAGE(not_a_directory, "%s: not a directory\n")
-#endif
-#if defined bb_need_memory_exhausted || ! defined BB_DECLARE_EXTERN
- BB_DEF_MESSAGE(memory_exhausted, "memory exhausted\n")
-#endif
-#if defined bb_need_invalid_date || ! defined BB_DECLARE_EXTERN
- BB_DEF_MESSAGE(invalid_date, "invalid date `%s'\n")
-#endif
-#if defined bb_need_invalid_option || ! defined BB_DECLARE_EXTERN
- BB_DEF_MESSAGE(invalid_option, "invalid option -- %c\n")
-#endif
-#if defined bb_need_io_error || ! defined BB_DECLARE_EXTERN
- BB_DEF_MESSAGE(io_error, "%s: input/output error -- %s\n")
-#endif
-#if defined bb_need_help || ! defined BB_DECLARE_EXTERN
- BB_DEF_MESSAGE(dash_dash_help, "--help")
-#endif
-#if defined bb_need_write_error || ! defined BB_DECLARE_EXTERN
- BB_DEF_MESSAGE(write_error, "Write Error\n")
-#endif
-#if defined bb_need_too_few_args || ! defined BB_DECLARE_EXTERN
- BB_DEF_MESSAGE(too_few_args, "too few arguments\n")
-#endif
-#if defined bb_need_name_longer_then_foo || ! defined BB_DECLARE_EXTERN
- BB_DEF_MESSAGE(name_longer_then_foo, "Names longer then %d chars not supported.\n")
-#endif
-
-
-#endif /* _BB_MESSAGES_C */
-
diff --git a/mdk-stage1/insmod-busybox/utility.c b/mdk-stage1/insmod-busybox/utility.c
deleted file mode 100644
index ffd323347..000000000
--- a/mdk-stage1/insmod-busybox/utility.c
+++ /dev/null
@@ -1,1759 +0,0 @@
-/* vi: set sw=4 ts=4: */
-/*
- * Utility routines.
- *
- * Copyright (C) tons of folks. Tracking down who wrote what
- * isn't something I'm going to worry about... If you wrote something
- * here, please feel free to acknowledge your work.
- *
- * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Based in part on code from sash, Copyright (c) 1999 by David I. Bell
- * Permission has been granted to redistribute this code under the GPL.
- *
- */
-
-#include "busybox.h"
-#if defined (BB_CHMOD_CHOWN_CHGRP) \
- || defined (BB_CP_MV) \
- || defined (BB_FIND) \
- || defined (BB_INSMOD) \
- || defined (BB_LS) \
- || defined (BB_RM) \
- || defined (BB_TAR)
-/* same conditions as recursiveAction */
-#define bb_need_name_too_long
-#endif
-#define bb_need_memory_exhausted
-#define bb_need_full_version
-#define BB_DECLARE_EXTERN
-#include "messages.c"
-
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <dirent.h>
-#include <time.h>
-#include <utime.h>
-#include <unistd.h>
-#include <ctype.h>
-#include <sys/ioctl.h>
-#include <sys/utsname.h> /* for uname(2) */
-
-/* Busybox mount uses either /proc/filesystems or /dev/mtab to get the
- * list of available filesystems used for the -t auto option */
-#if defined BB_FEATURE_USE_PROCFS && defined BB_FEATURE_USE_DEVPS_PATCH
-//#error Sorry, but busybox can't use both /proc and /dev/ps at the same time -- Pick one and try again.
-#error "Sorry, but busybox can't use both /proc and /dev/ps at the same time -- Pick one and try again."
-#endif
-
-
-#if defined BB_MOUNT || defined BB_UMOUNT || defined BB_DF
-# if defined BB_MTAB
-const char mtab_file[] = "/etc/mtab";
-# else
-# if defined BB_FEATURE_USE_PROCFS
-const char mtab_file[] = "/proc/mounts";
-# else
-# if defined BB_FEATURE_USE_DEVPS_PATCH
-const char mtab_file[] = "/dev/mtab";
-# else
-# error With (BB_MOUNT||BB_UMOUNT||BB_DF) defined, you must define either BB_MTAB or ( BB_FEATURE_USE_PROCFS | BB_FEATURE_USE_DEVPS_PATCH)
-# endif
-# endif
-# endif
-#endif
-
-#ifdef _STANDALONE_
-void errorMsg(const char *s, ...)
-{
- va_list p;
-
- fflush(stdout);
- printf("busybox: ");
- va_start(p, s);
- vprintf(s, p);
- va_end(p);
- printf("\n");
- fflush(stdout);
-}
-
-extern void logperror(char *s)
-{
- perror(s);
-}
-
-void fatalError(const char *s, ...)
-{
- va_list p;
-
- fflush(stdout);
- fprintf(stdout, "busybox: ");
- va_start(p, s);
- vfprintf(stdout, s, p);
- va_end(p);
- fprintf(stdout, "\n");
- fflush(stdout);
- exit(FALSE);
-}
-#else /* _STANDALONE_ */
-#include "../log.h"
-extern void errorMsg(const char *s, ...)
-{
- va_list p;
-
- va_start(p, s);
- vlog_message(s, p);
- va_end(p);
-}
-
-extern void logperror(char *s)
-{
- log_perror(s);
-}
-
-extern void fatalError(const char *s, ...)
-{
- va_list p;
-
- va_start(p, s);
- vlog_message(s, p);
- va_end(p);
- while (1);
-}
-#endif /* _STANDALONE_ */
-
-
-#if defined BB_INIT
-/* Returns kernel version encoded as major*65536 + minor*256 + patch,
- * so, for example, to check if the kernel is greater than 2.2.11:
- * if (get_kernel_revision() <= 2*65536+2*256+11) { <stuff> }
- */
-extern int get_kernel_revision(void)
-{
- struct utsname name;
- int major = 0, minor = 0, patch = 0;
-
- if (uname(&name) == -1) {
- perror("cannot get system information");
- return (0);
- }
- sscanf(name.version, "%d.%d.%d", &major, &minor, &patch);
- return major * 65536 + minor * 256 + patch;
-}
-#endif /* BB_INIT */
-
-
-
-#if defined BB_FREE || defined BB_INIT || defined BB_UNAME || defined BB_UPTIME
-_syscall1(int, sysinfo, struct sysinfo *, info);
-#endif /* BB_INIT */
-
-#if defined BB_MOUNT || defined BB_UMOUNT
-
-#ifndef __NR_umount2
-#define __NR_umount2 52
-#endif
-
-/* Include our own version of <sys/mount.h>, since libc5 doesn't
- * know about umount2 */
-extern _syscall1(int, umount, const char *, special_file);
-extern _syscall2(int, umount2, const char *, special_file, int, flags);
-extern _syscall5(int, mount, const char *, special_file, const char *, dir,
- const char *, fstype, unsigned long int, rwflag, const void *, data);
-#endif
-
-#if defined BB_INSMOD || defined BB_LSMOD
-#ifndef __NR_query_module
-#define __NR_query_module 167
-#endif
-_syscall5(int, query_module, const char *, name, int, which,
- void *, buf, size_t, bufsize, size_t*, ret);
-#endif
-
-
-#if defined (BB_CP_MV) || defined (BB_DU)
-
-#define HASH_SIZE 311 /* Should be prime */
-#define hash_inode(i) ((i) % HASH_SIZE)
-
-static ino_dev_hashtable_bucket_t *ino_dev_hashtable[HASH_SIZE];
-
-/*
- * Return 1 if statbuf->st_ino && statbuf->st_dev are recorded in
- * `ino_dev_hashtable', else return 0
- *
- * If NAME is a non-NULL pointer to a character pointer, and there is
- * a match, then set *NAME to the value of the name slot in that
- * bucket.
- */
-int is_in_ino_dev_hashtable(const struct stat *statbuf, char **name)
-{
- ino_dev_hashtable_bucket_t *bucket;
-
- bucket = ino_dev_hashtable[hash_inode(statbuf->st_ino)];
- while (bucket != NULL) {
- if ((bucket->ino == statbuf->st_ino) &&
- (bucket->dev == statbuf->st_dev))
- {
- if (name) *name = bucket->name;
- return 1;
- }
- bucket = bucket->next;
- }
- return 0;
-}
-
-/* Add statbuf to statbuf hash table */
-void add_to_ino_dev_hashtable(const struct stat *statbuf, const char *name)
-{
- int i;
- size_t s;
- ino_dev_hashtable_bucket_t *bucket;
-
- i = hash_inode(statbuf->st_ino);
- s = name ? strlen(name) : 0;
- bucket = xmalloc(sizeof(ino_dev_hashtable_bucket_t) + s);
- bucket->ino = statbuf->st_ino;
- bucket->dev = statbuf->st_dev;
- if (name)
- strcpy(bucket->name, name);
- else
- bucket->name[0] = '\0';
- bucket->next = ino_dev_hashtable[i];
- ino_dev_hashtable[i] = bucket;
-}
-
-/* Clear statbuf hash table */
-void reset_ino_dev_hashtable(void)
-{
- int i;
- ino_dev_hashtable_bucket_t *bucket;
-
- for (i = 0; i < HASH_SIZE; i++) {
- while (ino_dev_hashtable[i] != NULL) {
- bucket = ino_dev_hashtable[i]->next;
- free(ino_dev_hashtable[i]);
- ino_dev_hashtable[i] = bucket;
- }
- }
-}
-
-#endif /* BB_CP_MV || BB_DU */
-
-#if defined (BB_CP_MV) || defined (BB_DU) || defined (BB_LN) || defined (BB_AR)
-/*
- * Return TRUE if a fileName is a directory.
- * Nonexistant files return FALSE.
- */
-int isDirectory(const char *fileName, const int followLinks, struct stat *statBuf)
-{
- int status;
- int didMalloc = 0;
-
- if (statBuf == NULL) {
- statBuf = (struct stat *)xmalloc(sizeof(struct stat));
- ++didMalloc;
- }
-
- if (followLinks == TRUE)
- status = stat(fileName, statBuf);
- else
- status = lstat(fileName, statBuf);
-
- if (status < 0 || !(S_ISDIR(statBuf->st_mode))) {
- status = FALSE;
- }
- else status = TRUE;
-
- if (didMalloc) {
- free(statBuf);
- statBuf = NULL;
- }
- return status;
-}
-#endif
-
-#if defined (BB_AR) || defined BB_CP_MV
-/*
- * Copy readSize bytes between two file descriptors
- */
-int copySubFile(int srcFd, int dstFd, size_t remaining)
-{
- size_t size;
- char buffer[BUFSIZ];
-
- while (remaining > 0) {
- if (remaining > BUFSIZ)
- size = BUFSIZ;
- else
- size = remaining;
- if (fullWrite(dstFd, buffer, fullRead(srcFd, buffer, size)) < size)
- return(FALSE);
- remaining -= size;
- }
- return (TRUE);
-}
-#endif
-
-
-#if defined (BB_CP_MV)
-/*
- * Copy one file to another, while possibly preserving its modes, times, and
- * modes. Returns TRUE if successful, or FALSE on a failure with an error
- * message output. (Failure is not indicated if attributes cannot be set.)
- * -Erik Andersen
- */
-int
-copyFile(const char *srcName, const char *destName,
- int setModes, int followLinks, int forceFlag)
-{
- int rfd;
- int wfd;
- int status;
- struct stat srcStatBuf;
- struct stat dstStatBuf;
- struct utimbuf times;
-
- if (followLinks == TRUE)
- status = stat(srcName, &srcStatBuf);
- else
- status = lstat(srcName, &srcStatBuf);
-
- if (status < 0) {
- perror(srcName);
- return FALSE;
- }
-
- if (followLinks == TRUE)
- status = stat(destName, &dstStatBuf);
- else
- status = lstat(destName, &dstStatBuf);
-
- if (status < 0 || forceFlag==TRUE) {
- unlink(destName);
- dstStatBuf.st_ino = -1;
- dstStatBuf.st_dev = -1;
- }
-
- if ((srcStatBuf.st_dev == dstStatBuf.st_dev) &&
- (srcStatBuf.st_ino == dstStatBuf.st_ino)) {
- errorMsg("Copying file \"%s\" to itself\n", srcName);
- return FALSE;
- }
-
- if (S_ISDIR(srcStatBuf.st_mode)) {
- //fprintf(stderr, "copying directory %s to %s\n", srcName, destName);
- /* Make sure the directory is writable */
- status = mkdir(destName, 0777777 ^ umask(0));
- if (status < 0 && errno != EEXIST) {
- perror(destName);
- return FALSE;
- }
- } else if (S_ISLNK(srcStatBuf.st_mode)) {
- char link_val[BUFSIZ + 1];
- int link_size;
-
- //fprintf(stderr, "copying link %s to %s\n", srcName, destName);
- /* Warning: This could possibly truncate silently, to BUFSIZ chars */
- link_size = readlink(srcName, &link_val[0], BUFSIZ);
- if (link_size < 0) {
- perror(srcName);
- return FALSE;
- }
- link_val[link_size] = '\0';
- status = symlink(link_val, destName);
- if (status < 0) {
- perror(destName);
- return FALSE;
- }
-#if (__GLIBC__ >= 2) && (__GLIBC_MINOR__ >= 1)
- if (setModes == TRUE) {
- /* Try to set owner, but fail silently like GNU cp */
- lchown(destName, srcStatBuf.st_uid, srcStatBuf.st_gid);
- }
-#endif
- return TRUE;
- } else if (S_ISFIFO(srcStatBuf.st_mode)) {
- //fprintf(stderr, "copying fifo %s to %s\n", srcName, destName);
- if (mkfifo(destName, 0644) < 0) {
- perror(destName);
- return FALSE;
- }
- } else if (S_ISBLK(srcStatBuf.st_mode) || S_ISCHR(srcStatBuf.st_mode)
- || S_ISSOCK(srcStatBuf.st_mode)) {
- //fprintf(stderr, "copying soc, blk, or chr %s to %s\n", srcName, destName);
- if (mknod(destName, srcStatBuf.st_mode, srcStatBuf.st_rdev) < 0) {
- perror(destName);
- return FALSE;
- }
- } else if (S_ISREG(srcStatBuf.st_mode)) {
- //fprintf(stderr, "copying regular file %s to %s\n", srcName, destName);
- rfd = open(srcName, O_RDONLY);
- if (rfd < 0) {
- perror(srcName);
- return FALSE;
- }
-
- wfd = open(destName, O_WRONLY | O_CREAT | O_TRUNC,
- srcStatBuf.st_mode);
- if (wfd < 0) {
- perror(destName);
- close(rfd);
- return FALSE;
- }
-
- if (copySubFile(rfd, wfd, srcStatBuf.st_size)==FALSE)
- goto error_exit;
-
- close(rfd);
- if (close(wfd) < 0) {
- return FALSE;
- }
- }
-
- if (setModes == TRUE) {
- /* This is fine, since symlinks never get here */
- if (chown(destName, srcStatBuf.st_uid, srcStatBuf.st_gid) < 0) {
- perror(destName);
- exit FALSE;
- }
- if (chmod(destName, srcStatBuf.st_mode) < 0) {
- perror(destName);
- exit FALSE;
- }
- times.actime = srcStatBuf.st_atime;
- times.modtime = srcStatBuf.st_mtime;
- if (utime(destName, &times) < 0) {
- perror(destName);
- exit FALSE;
- }
- }
-
- return TRUE;
-
- error_exit:
- perror(destName);
- close(rfd);
- close(wfd);
-
- return FALSE;
-}
-#endif /* BB_CP_MV */
-
-
-
-#if defined BB_TAR || defined BB_LS ||defined BB_AR
-
-#define TYPEINDEX(mode) (((mode) >> 12) & 0x0f)
-#define TYPECHAR(mode) ("0pcCd?bB-?l?s???" [TYPEINDEX(mode)])
-
-/* The special bits. If set, display SMODE0/1 instead of MODE0/1 */
-static const mode_t SBIT[] = {
- 0, 0, S_ISUID,
- 0, 0, S_ISGID,
- 0, 0, S_ISVTX
-};
-
-/* The 9 mode bits to test */
-static const mode_t MBIT[] = {
- S_IRUSR, S_IWUSR, S_IXUSR,
- S_IRGRP, S_IWGRP, S_IXGRP,
- S_IROTH, S_IWOTH, S_IXOTH
-};
-
-#define MODE1 "rwxrwxrwx"
-#define MODE0 "---------"
-#define SMODE1 "..s..s..t"
-#define SMODE0 "..S..S..T"
-
-/*
- * Return the standard ls-like mode string from a file mode.
- * This is static and so is overwritten on each call.
- */
-const char *modeString(int mode)
-{
- static char buf[12];
-
- int i;
-
- buf[0] = TYPECHAR(mode);
- for (i = 0; i < 9; i++) {
- if (mode & SBIT[i])
- buf[i + 1] = (mode & MBIT[i]) ? SMODE1[i] : SMODE0[i];
- else
- buf[i + 1] = (mode & MBIT[i]) ? MODE1[i] : MODE0[i];
- }
- return buf;
-}
-#endif /* BB_TAR || BB_LS */
-
-
-#if defined BB_TAR || defined BB_AR
-/*
- * Return the standard ls-like time string from a time_t
- * This is static and so is overwritten on each call.
- */
-const char *timeString(time_t timeVal)
-{
- time_t now;
- char *str;
- static char buf[26];
-
- time(&now);
-
- str = ctime(&timeVal);
-
- strcpy(buf, &str[4]);
- buf[12] = '\0';
-
- if ((timeVal > now) || (timeVal < now - 365 * 24 * 60 * 60L)) {
- strcpy(&buf[7], &str[20]);
- buf[11] = '\0';
- }
-
- return buf;
-}
-#endif /* BB_TAR || BB_AR */
-
-#if defined BB_TAR || defined BB_CP_MV || defined BB_AR
-/*
- * Write all of the supplied buffer out to a file.
- * This does multiple writes as necessary.
- * Returns the amount written, or -1 on an error.
- */
-int fullWrite(int fd, const char *buf, int len)
-{
- int cc;
- int total;
-
- total = 0;
-
- while (len > 0) {
- cc = write(fd, buf, len);
-
- if (cc < 0)
- return -1;
-
- buf += cc;
- total += cc;
- len -= cc;
- }
-
- return total;
-}
-#endif /* BB_TAR || BB_CP_MV || BB_AR */
-
-
-#if defined BB_TAR || defined BB_TAIL || defined BB_AR || defined BB_SH || defined BB_CP_MV
-/*
- * Read all of the supplied buffer from a file.
- * This does multiple reads as necessary.
- * Returns the amount read, or -1 on an error.
- * A short read is returned on an end of file.
- */
-int fullRead(int fd, char *buf, int len)
-{
- int cc;
- int total;
-
- total = 0;
-
- while (len > 0) {
- cc = read(fd, buf, len);
-
- if (cc < 0)
- return -1;
-
- if (cc == 0)
- break;
-
- buf += cc;
- total += cc;
- len -= cc;
- }
-
- return total;
-}
-#endif /* BB_TAR || BB_TAIL || BB_AR || BB_SH */
-
-
-#if defined (BB_CHMOD_CHOWN_CHGRP) \
- || defined (BB_CP_MV) \
- || defined (BB_FIND) \
- || defined (BB_INSMOD) \
- || defined (BB_LS) \
- || defined (BB_RM) \
- || defined (BB_TAR)
-
-/*
- * Walk down all the directories under the specified
- * location, and do something (something specified
- * by the fileAction and dirAction function pointers).
- *
- * Unfortunatly, while nftw(3) could replace this and reduce
- * code size a bit, nftw() wasn't supported before GNU libc 2.1,
- * and so isn't sufficiently portable to take over since glibc2.1
- * is so stinking huge.
- */
-int recursiveAction(const char *fileName,
- int recurse, int followLinks, int depthFirst,
- int (*fileAction) (const char *fileName,
- struct stat * statbuf,
- void* userData),
- int (*dirAction) (const char *fileName,
- struct stat * statbuf,
- void* userData),
- void* userData)
-{
- int status;
- struct stat statbuf;
- struct dirent *next;
-
- if (followLinks == TRUE)
- status = stat(fileName, &statbuf);
- else
- status = lstat(fileName, &statbuf);
-
- if (status < 0) {
-#ifdef BB_DEBUG_PRINT_SCAFFOLD
- fprintf(stderr,
- "status=%d followLinks=%d TRUE=%d\n",
- status, followLinks, TRUE);
-#endif
- perror(fileName);
- return FALSE;
- }
-
- if ((followLinks == FALSE) && (S_ISLNK(statbuf.st_mode))) {
- if (fileAction == NULL)
- return TRUE;
- else
- return fileAction(fileName, &statbuf, userData);
- }
-
- if (recurse == FALSE) {
- if (S_ISDIR(statbuf.st_mode)) {
- if (dirAction != NULL)
- return (dirAction(fileName, &statbuf, userData));
- else
- return TRUE;
- }
- }
-
- if (S_ISDIR(statbuf.st_mode)) {
- DIR *dir;
-
- dir = opendir(fileName);
- if (!dir) {
- perror(fileName);
- return FALSE;
- }
- if (dirAction != NULL && depthFirst == FALSE) {
- status = dirAction(fileName, &statbuf, userData);
- if (status == FALSE) {
- perror(fileName);
- return FALSE;
- }
- }
- while ((next = readdir(dir)) != NULL) {
- char nextFile[BUFSIZ + 1];
-
- if ((strcmp(next->d_name, "..") == 0)
- || (strcmp(next->d_name, ".") == 0)) {
- continue;
- }
- if (strlen(fileName) + strlen(next->d_name) + 1 > BUFSIZ) {
- errorMsg("name_too_long");
- return FALSE;
- }
- memset(nextFile, 0, sizeof(nextFile));
- sprintf(nextFile, "%s/%s", fileName, next->d_name);
- status =
- recursiveAction(nextFile, TRUE, followLinks, depthFirst,
- fileAction, dirAction, userData);
- if (status == FALSE) {
- closedir(dir);
- return FALSE;
- }
- }
- status = closedir(dir);
- if (status < 0) {
- perror(fileName);
- return FALSE;
- }
- if (dirAction != NULL && depthFirst == TRUE) {
- status = dirAction(fileName, &statbuf, userData);
- if (status == FALSE) {
- perror(fileName);
- return FALSE;
- }
- }
- } else {
- if (fileAction == NULL)
- return TRUE;
- else
- return fileAction(fileName, &statbuf, userData);
- }
- return TRUE;
-}
-
-#endif /* BB_CHMOD_CHOWN_CHGRP || BB_CP_MV || BB_FIND || BB_LS || BB_INSMOD */
-
-
-
-#if defined (BB_TAR) || defined (BB_MKDIR) || defined (BB_AR)
-/*
- * Attempt to create the directories along the specified path, except for
- * the final component. The mode is given for the final directory only,
- * while all previous ones get default protections. Errors are not reported
- * here, as failures to restore files can be reported later.
- */
-extern int createPath(const char *name, int mode)
-{
- char *cp;
- char *cpOld;
- char buf[BUFSIZ + 1];
- int retVal = 0;
-
- strcpy(buf, name);
- for (cp = buf; *cp == '/'; cp++);
- cp = strchr(cp, '/');
- while (cp) {
- cpOld = cp;
- cp = strchr(cp + 1, '/');
- *cpOld = '\0';
- retVal = mkdir(buf, cp ? 0777 : mode);
- if (retVal != 0 && errno != EEXIST) {
- perror(buf);
- return FALSE;
- }
- *cpOld = '/';
- }
- return TRUE;
-}
-#endif /* BB_TAR || BB_MKDIR */
-
-
-
-#if defined (BB_CHMOD_CHOWN_CHGRP) || defined (BB_MKDIR) \
- || defined (BB_MKFIFO) || defined (BB_MKNOD) || defined (BB_AR)
-/* [ugoa]{+|-|=}[rwxst] */
-
-
-
-extern int parse_mode(const char *s, mode_t * theMode)
-{
- mode_t andMode =
-
- S_ISVTX | S_ISUID | S_ISGID | S_IRWXU | S_IRWXG | S_IRWXO;
- mode_t orMode = 0;
- mode_t mode = 0;
- mode_t groups = 0;
- char type;
- char c;
-
- if (s==NULL)
- return (FALSE);
-
- do {
- for (;;) {
- switch (c = *s++) {
- case '\0':
- return -1;
- case 'u':
- groups |= S_ISUID | S_IRWXU;
- continue;
- case 'g':
- groups |= S_ISGID | S_IRWXG;
- continue;
- case 'o':
- groups |= S_IRWXO;
- continue;
- case 'a':
- groups |= S_ISUID | S_ISGID | S_IRWXU | S_IRWXG | S_IRWXO;
- continue;
- case '+':
- case '=':
- case '-':
- type = c;
- if (groups == 0) /* The default is "all" */
- groups |=
- S_ISUID | S_ISGID | S_IRWXU | S_IRWXG | S_IRWXO;
- break;
- default:
- if (isdigit(c) && c >= '0' && c <= '7' &&
- mode == 0 && groups == 0) {
- *theMode = strtol(--s, NULL, 8);
- return (TRUE);
- } else
- return (FALSE);
- }
- break;
- }
-
- while ((c = *s++) != '\0') {
- switch (c) {
- case ',':
- break;
- case 'r':
- mode |= S_IRUSR | S_IRGRP | S_IROTH;
- continue;
- case 'w':
- mode |= S_IWUSR | S_IWGRP | S_IWOTH;
- continue;
- case 'x':
- mode |= S_IXUSR | S_IXGRP | S_IXOTH;
- continue;
- case 's':
- mode |= S_IXGRP | S_ISUID | S_ISGID;
- continue;
- case 't':
- mode |= 0;
- continue;
- default:
- *theMode &= andMode;
- *theMode |= orMode;
- return (TRUE);
- }
- break;
- }
- switch (type) {
- case '=':
- andMode &= ~(groups);
- /* fall through */
- case '+':
- orMode |= mode & groups;
- break;
- case '-':
- andMode &= ~(mode & groups);
- orMode &= andMode;
- break;
- }
- } while (c == ',');
- *theMode &= andMode;
- *theMode |= orMode;
- return (TRUE);
-}
-
-
-#endif
-/* BB_CHMOD_CHOWN_CHGRP || BB_MKDIR || BB_MKFIFO || BB_MKNOD */
-
-
-
-
-
-#if defined BB_CHMOD_CHOWN_CHGRP || defined BB_PS || defined BB_LS \
- || defined BB_TAR || defined BB_ID || defined BB_LOGGER \
- || defined BB_LOGNAME || defined BB_WHOAMI
-
-/* This parses entries in /etc/passwd and /etc/group. This is desirable
- * for BusyBox, since we want to avoid using the glibc NSS stuff, which
- * increases target size and is often not needed or wanted for embedded
- * systems.
- *
- * /etc/passwd entries look like this:
- * root:x:0:0:root:/root:/bin/bash
- * and /etc/group entries look like this:
- * root:x:0:
- *
- * This uses buf as storage to hold things.
- *
- */
-unsigned long my_getid(const char *filename, char *name, long id, long *gid)
-{
- FILE *file;
- char *rname, *start, *end, buf[128];
- long rid;
- long rgid = 0;
-
- file = fopen(filename, "r");
- if (file == NULL) {
- /* Do not complain. It is ok for /etc/passwd and
- * friends to be missing... */
- return (-1);
- }
-
- while (fgets(buf, 128, file) != NULL) {
- if (buf[0] == '#')
- continue;
-
- /* username/group name */
- start = buf;
- end = strchr(start, ':');
- if (end == NULL)
- continue;
- *end = '\0';
- rname = start;
-
- /* password */
- start = end + 1;
- end = strchr(start, ':');
- if (end == NULL)
- continue;
-
- /* uid in passwd, gid in group */
- start = end + 1;
- rid = (unsigned long) strtol(start, &end, 10);
- if (end == start)
- continue;
-
- /* gid in passwd */
- start = end + 1;
- rgid = (unsigned long) strtol(start, &end, 10);
-
- if (name) {
- if (0 == strcmp(rname, name)) {
- if (gid) *gid = rgid;
- fclose(file);
- return (rid);
- }
- }
- if (id != -1 && id == rid) {
- strncpy(name, rname, 8);
- if (gid) *gid = rgid;
- fclose(file);
- return (TRUE);
- }
- }
- fclose(file);
- return (-1);
-}
-
-/* returns a uid given a username */
-long my_getpwnam(char *name)
-{
- return my_getid("/etc/passwd", name, -1, NULL);
-}
-
-/* returns a gid given a group name */
-long my_getgrnam(char *name)
-{
- return my_getid("/etc/group", name, -1, NULL);
-}
-
-/* gets a username given a uid */
-void my_getpwuid(char *name, long uid)
-{
- my_getid("/etc/passwd", name, uid, NULL);
-}
-
-/* gets a groupname given a gid */
-void my_getgrgid(char *group, long gid)
-{
- my_getid("/etc/group", group, gid, NULL);
-}
-
-/* gets a gid given a user name */
-long my_getpwnamegid(char *name)
-{
- long gid;
- my_getid("/etc/passwd", name, -1, &gid);
- return gid;
-}
-
-#endif
- /* BB_CHMOD_CHOWN_CHGRP || BB_PS || BB_LS || BB_TAR \
- || BB_ID || BB_LOGGER || BB_LOGNAME || BB_WHOAMI */
-
-
-#if (defined BB_CHVT) || (defined BB_DEALLOCVT) || (defined BB_SETKEYCODES)
-
-/* From <linux/kd.h> */
-#define KDGKBTYPE 0x4B33 /* get keyboard type */
-#define KB_84 0x01
-#define KB_101 0x02 /* this is what we always answer */
-
-int is_a_console(int fd)
-{
- char arg;
-
- arg = 0;
- return (ioctl(fd, KDGKBTYPE, &arg) == 0
- && ((arg == KB_101) || (arg == KB_84)));
-}
-
-static int open_a_console(char *fnam)
-{
- int fd;
-
- /* try read-only */
- fd = open(fnam, O_RDWR);
-
- /* if failed, try read-only */
- if (fd < 0 && errno == EACCES)
- fd = open(fnam, O_RDONLY);
-
- /* if failed, try write-only */
- if (fd < 0 && errno == EACCES)
- fd = open(fnam, O_WRONLY);
-
- /* if failed, fail */
- if (fd < 0)
- return -1;
-
- /* if not a console, fail */
- if (!is_a_console(fd)) {
- close(fd);
- return -1;
- }
-
- /* success */
- return fd;
-}
-
-/*
- * Get an fd for use with kbd/console ioctls.
- * We try several things because opening /dev/console will fail
- * if someone else used X (which does a chown on /dev/console).
- *
- * if tty_name is non-NULL, try this one instead.
- */
-
-int get_console_fd(char *tty_name)
-{
- int fd;
-
- if (tty_name) {
- if (-1 == (fd = open_a_console(tty_name)))
- return -1;
- else
- return fd;
- }
-
- fd = open_a_console("/dev/tty");
- if (fd >= 0)
- return fd;
-
- fd = open_a_console("/dev/tty0");
- if (fd >= 0)
- return fd;
-
- fd = open_a_console("/dev/console");
- if (fd >= 0)
- return fd;
-
- for (fd = 0; fd < 3; fd++)
- if (is_a_console(fd))
- return fd;
-
- errorMsg("Couldnt get a file descriptor referring to the console\n");
- return -1; /* total failure */
-}
-
-
-#endif /* BB_CHVT || BB_DEALLOCVT || BB_SETKEYCODES */
-
-
-#if defined BB_FIND || defined BB_INSMOD
-/*
- * Routine to see if a text string is matched by a wildcard pattern.
- * Returns TRUE if the text is matched, or FALSE if it is not matched
- * or if the pattern is invalid.
- * * matches zero or more characters
- * ? matches a single character
- * [abc] matches 'a', 'b' or 'c'
- * \c quotes character c
- * Adapted from code written by Ingo Wilken, and
- * then taken from sash, Copyright (c) 1999 by David I. Bell
- * Permission is granted to use, distribute, or modify this source,
- * provided that this copyright notice remains intact.
- * Permission to distribute this code under the GPL has been granted.
- */
-extern int check_wildcard_match(const char *text, const char *pattern)
-{
- const char *retryPat;
- const char *retryText;
- int ch;
- int found;
- int len;
-
- retryPat = NULL;
- retryText = NULL;
-
- while (*text || *pattern) {
- ch = *pattern++;
-
- switch (ch) {
- case '*':
- retryPat = pattern;
- retryText = text;
- break;
-
- case '[':
- found = FALSE;
-
- while ((ch = *pattern++) != ']') {
- if (ch == '\\')
- ch = *pattern++;
-
- if (ch == '\0')
- return FALSE;
-
- if (*text == ch)
- found = TRUE;
- }
- len=strlen(text);
- if (found == FALSE && len!=0) {
- return FALSE;
- }
- if (found == TRUE) {
- if (strlen(pattern)==0 && len==1) {
- return TRUE;
- }
- if (len!=0) {
- text++;
- continue;
- }
- }
-
- /* fall into next case */
-
- case '?':
- if (*text++ == '\0')
- return FALSE;
-
- break;
-
- case '\\':
- ch = *pattern++;
-
- if (ch == '\0')
- return FALSE;
-
- /* fall into next case */
-
- default:
- if (*text == ch) {
- if (*text)
- text++;
- break;
- }
-
- if (*text) {
- pattern = retryPat;
- text = ++retryText;
- break;
- }
-
- return FALSE;
- }
-
- if (pattern == NULL)
- return FALSE;
- }
-
- return TRUE;
-}
-#endif /* BB_FIND || BB_INSMOD */
-
-
-
-
-#if defined BB_DF || defined BB_MTAB
-/*
- * Given a block device, find the mount table entry if that block device
- * is mounted.
- *
- * Given any other file (or directory), find the mount table entry for its
- * filesystem.
- */
-extern struct mntent *findMountPoint(const char *name, const char *table)
-{
- struct stat s;
- dev_t mountDevice;
- FILE *mountTable;
- struct mntent *mountEntry;
-
- if (stat(name, &s) != 0)
- return 0;
-
- if ((s.st_mode & S_IFMT) == S_IFBLK)
- mountDevice = s.st_rdev;
- else
- mountDevice = s.st_dev;
-
-
- if ((mountTable = setmntent(table, "r")) == 0)
- return 0;
-
- while ((mountEntry = getmntent(mountTable)) != 0) {
- if (strcmp(name, mountEntry->mnt_dir) == 0
- || strcmp(name, mountEntry->mnt_fsname) == 0) /* String match. */
- break;
- if (stat(mountEntry->mnt_fsname, &s) == 0 && s.st_rdev == mountDevice) /* Match the device. */
- break;
- if (stat(mountEntry->mnt_dir, &s) == 0 && s.st_dev == mountDevice) /* Match the directory's mount point. */
- break;
- }
- endmntent(mountTable);
- return mountEntry;
-}
-#endif /* BB_DF || BB_MTAB */
-
-
-
-#if defined BB_DD || defined BB_TAIL
-/*
- * Read a number with a possible multiplier.
- * Returns -1 if the number format is illegal.
- */
-extern long getNum(const char *cp)
-{
- long value;
-
- if (!isDecimal(*cp))
- return -1;
-
- value = 0;
-
- while (isDecimal(*cp))
- value = value * 10 + *cp++ - '0';
-
- switch (*cp++) {
- case 'M':
- case 'm': /* `tail' uses it traditionally */
- value *= 1048576;
- break;
-
- case 'k':
- value *= 1024;
- break;
-
- case 'b':
- value *= 512;
- break;
-
- case 'w':
- value *= 2;
- break;
-
- case '\0':
- return value;
-
- default:
- return -1;
- }
-
- if (*cp)
- return -1;
-
- return value;
-}
-#endif /* BB_DD || BB_TAIL */
-
-
-#if defined BB_INIT || defined BB_SYSLOGD
-/* try to open up the specified device */
-extern int device_open(char *device, int mode)
-{
- int m, f, fd = -1;
-
- m = mode | O_NONBLOCK;
-
- /* Retry up to 5 times */
- for (f = 0; f < 5; f++)
- if ((fd = open(device, m, 0600)) >= 0)
- break;
- if (fd < 0)
- return fd;
- /* Reset original flags. */
- if (m != mode)
- fcntl(fd, F_SETFL, mode);
- return fd;
-}
-#endif /* BB_INIT BB_SYSLOGD */
-
-
-#if defined BB_KILLALL || ( defined BB_FEATURE_LINUXRC && ( defined BB_HALT || defined BB_REBOOT || defined BB_POWEROFF ))
-#ifdef BB_FEATURE_USE_DEVPS_PATCH
-#include <linux/devps.h> /* For Erik's nifty devps device driver */
-#endif
-
-#if defined BB_FEATURE_USE_DEVPS_PATCH
-/* findPidByName()
- *
- * This finds the pid of the specified process,
- * by using the /dev/ps device driver.
- *
- * Returns a list of all matching PIDs
- */
-extern pid_t* findPidByName( char* pidName)
-{
- int fd, i, j;
- char device[] = "/dev/ps";
- pid_t num_pids;
- pid_t* pid_array = NULL;
- pid_t* pidList=NULL;
-
- /* open device */
- fd = open(device, O_RDONLY);
- if (fd < 0)
- fatalError( "open failed for `%s': %s\n", device, strerror (errno));
-
- /* Find out how many processes there are */
- if (ioctl (fd, DEVPS_GET_NUM_PIDS, &num_pids)<0)
- fatalError( "\nDEVPS_GET_PID_LIST: %s\n", strerror (errno));
-
- /* Allocate some memory -- grab a few extras just in case
- * some new processes start up while we wait. The kernel will
- * just ignore any extras if we give it too many, and will trunc.
- * the list if we give it too few. */
- pid_array = (pid_t*) xcalloc( num_pids+10, sizeof(pid_t));
- pid_array[0] = num_pids+10;
-
- /* Now grab the pid list */
- if (ioctl (fd, DEVPS_GET_PID_LIST, pid_array)<0)
- fatalError( "\nDEVPS_GET_PID_LIST: %s\n", strerror (errno));
-
- /* Now search for a match */
- for (i=1, j=0; i<pid_array[0] ; i++) {
- char* p;
- struct pid_info info;
-
- info.pid = pid_array[i];
- if (ioctl (fd, DEVPS_GET_PID_INFO, &info)<0)
- fatalError( "\nDEVPS_GET_PID_INFO: %s\n", strerror (errno));
-
- /* Make sure we only match on the process name */
- p=info.command_line+1;
- while ((*p != 0) && !isspace(*(p)) && (*(p-1) != '\\')) {
- (p)++;
- }
- if (isspace(*(p)))
- *p='\0';
-
- if ((strstr(info.command_line, pidName) != NULL)
- && (strlen(pidName) == strlen(info.command_line))) {
- pidList=xrealloc( pidList, sizeof(pid_t) * (j+2));
- pidList[j++]=info.pid;
- }
- }
- if (pidList)
- pidList[j]=0;
-
- /* Free memory */
- free( pid_array);
-
- /* close device */
- if (close (fd) != 0)
- fatalError( "close failed for `%s': %s\n",device, strerror (errno));
-
- return pidList;
-}
-#else /* BB_FEATURE_USE_DEVPS_PATCH */
-#if ! defined BB_FEATURE_USE_PROCFS
-#error Sorry, I depend on the /proc filesystem right now.
-#endif
-
-/* findPidByName()
- *
- * This finds the pid of the specified process.
- * Currently, it's implemented by rummaging through
- * the proc filesystem.
- *
- * Returns a list of all matching PIDs
- */
-extern pid_t* findPidByName( char* pidName)
-{
- DIR *dir;
- struct dirent *next;
- pid_t* pidList=NULL;
- int i=0;
-
- dir = opendir("/proc");
- if (!dir)
- fatalError( "Cannot open /proc: %s\n", strerror (errno));
-
- while ((next = readdir(dir)) != NULL) {
- FILE *status;
- char filename[256];
- char buffer[256];
-
- /* If it isn't a number, we don't want it */
- if (!isdigit(*next->d_name))
- continue;
-
- sprintf(filename, "/proc/%s/cmdline", next->d_name);
- status = fopen(filename, "r");
- if (!status) {
- continue;
- }
- fgets(buffer, 256, status);
- fclose(status);
-
- if (strstr(get_last_path_component(buffer), pidName) != NULL) {
- pidList=xrealloc( pidList, sizeof(pid_t) * (i+2));
- pidList[i++]=strtol(next->d_name, NULL, 0);
- }
- }
-
- if (pidList)
- pidList[i]=0;
- return pidList;
-}
-#endif /* BB_FEATURE_USE_DEVPS_PATCH */
-#endif /* BB_KILLALL || ( BB_FEATURE_LINUXRC && ( BB_HALT || BB_REBOOT || BB_POWEROFF )) */
-
-#ifndef DMALLOC
-/* this should really be farmed out to libbusybox.a */
-extern void *xmalloc(size_t size)
-{
- void *ptr = malloc(size);
-
- if (!ptr)
- fatalError("memory_exhausted");
- return ptr;
-}
-
-extern void *xrealloc(void *old, size_t size)
-{
- void *ptr;
- if (!size)
- size = 1;
- ptr = realloc(old, size);
- if (!ptr)
- fatalError("memory_exhausted");
- return ptr;
-}
-
-extern void *xcalloc(size_t nmemb, size_t size)
-{
- void *ptr = calloc(nmemb, size);
- if (!ptr)
- fatalError("memory_exhausted");
- return ptr;
-}
-#endif
-
-#if defined BB_FEATURE_NFSMOUNT || defined BB_SH || defined BB_LS
-# ifndef DMALLOC
-extern char * xstrdup (const char *s) {
- char *t;
-
- if (s == NULL)
- return NULL;
-
- t = strdup (s);
-
- if (t == NULL)
- fatalError("memory_exhausted");
-
- return t;
-}
-# endif
-#endif
-
-#if defined BB_FEATURE_NFSMOUNT
-extern char * xstrndup (const char *s, int n) {
- char *t;
-
- if (s == NULL)
- fatalError("xstrndup bug");
-
- t = xmalloc(n+1);
- strncpy(t,s,n);
- t[n] = 0;
-
- return t;
-}
-#endif
-
-
-#if (__GLIBC__ < 2) && (defined BB_SYSLOGD || defined BB_INIT)
-extern int vdprintf(int d, const char *format, va_list ap)
-{
- char buf[BUF_SIZE];
- int len;
-
- len = vsprintf(buf, format, ap);
- return write(d, buf, len);
-}
-#endif /* BB_SYSLOGD */
-
-
-#if defined BB_FEATURE_MOUNT_LOOP
-#include <fcntl.h>
-#include "loop.h" /* Pull in loop device support */
-
-extern int del_loop(const char *device)
-{
- int fd;
-
- if ((fd = open(device, O_RDONLY)) < 0) {
- perror(device);
- return (FALSE);
- }
- if (ioctl(fd, LOOP_CLR_FD, 0) < 0) {
- perror("ioctl: LOOP_CLR_FD");
- return (FALSE);
- }
- close(fd);
- return (TRUE);
-}
-
-extern int set_loop(const char *device, const char *file, int offset,
- int *loopro)
-{
- struct loop_info loopinfo;
- int fd, ffd, mode;
-
- mode = *loopro ? O_RDONLY : O_RDWR;
- if ((ffd = open(file, mode)) < 0 && !*loopro
- && (errno != EROFS || (ffd = open(file, mode = O_RDONLY)) < 0)) {
- perror(file);
- return 1;
- }
- if ((fd = open(device, mode)) < 0) {
- close(ffd);
- perror(device);
- return 1;
- }
- *loopro = (mode == O_RDONLY);
-
- memset(&loopinfo, 0, sizeof(loopinfo));
- strncpy(loopinfo.lo_name, file, LO_NAME_SIZE);
- loopinfo.lo_name[LO_NAME_SIZE - 1] = 0;
-
- loopinfo.lo_offset = offset;
-
- loopinfo.lo_encrypt_key_size = 0;
- if (ioctl(fd, LOOP_SET_FD, ffd) < 0) {
- perror("ioctl: LOOP_SET_FD");
- close(fd);
- close(ffd);
- return 1;
- }
- if (ioctl(fd, LOOP_SET_STATUS, &loopinfo) < 0) {
- (void) ioctl(fd, LOOP_CLR_FD, 0);
- perror("ioctl: LOOP_SET_STATUS");
- close(fd);
- close(ffd);
- return 1;
- }
- close(fd);
- close(ffd);
- return 0;
-}
-
-extern char *find_unused_loop_device(void)
-{
- char dev[20];
- int i, fd;
- struct stat statbuf;
- struct loop_info loopinfo;
-
- for (i = 0; i <= 7; i++) {
- sprintf(dev, "/dev/loop%d", i);
- if (stat(dev, &statbuf) == 0 && S_ISBLK(statbuf.st_mode)) {
- if ((fd = open(dev, O_RDONLY)) >= 0) {
- if (ioctl(fd, LOOP_GET_STATUS, &loopinfo) == -1) {
- if (errno == ENXIO) { /* probably free */
- close(fd);
- return strdup(dev);
- }
- }
- close(fd);
- }
- }
- }
- return NULL;
-}
-#endif /* BB_FEATURE_MOUNT_LOOP */
-
-#if defined BB_MOUNT || defined BB_DF || ( defined BB_UMOUNT && ! defined BB_MTAB)
-extern int find_real_root_device_name(char* name)
-{
- DIR *dir;
- struct dirent *entry;
- struct stat statBuf, rootStat;
- char fileName[BUFSIZ];
-
- if (stat("/", &rootStat) != 0) {
- errorMsg("could not stat '/'\n");
- return( FALSE);
- }
-
- dir = opendir("/dev");
- if (!dir) {
- errorMsg("could not open '/dev'\n");
- return( FALSE);
- }
-
- while((entry = readdir(dir)) != NULL) {
-
- /* Must skip ".." since that is "/", and so we
- * would get a false positive on ".." */
- if (strcmp(entry->d_name, "..") == 0)
- continue;
-
- snprintf( fileName, strlen(name)+1, "/dev/%s", entry->d_name);
-
- if (stat(fileName, &statBuf) != 0)
- continue;
- /* Some char devices have the same dev_t as block
- * devices, so make sure this is a block device */
- if (! S_ISBLK(statBuf.st_mode))
- continue;
- if (statBuf.st_rdev == rootStat.st_rdev) {
- strcpy(name, fileName);
- return ( TRUE);
- }
- }
-
- return( FALSE);
-}
-#endif
-
-
-/* get_line_from_file() - This function reads an entire line from a text file
- * up to a newline. It returns a malloc'ed char * which must be stored and
- * free'ed by the caller. */
-extern char *get_line_from_file(FILE *file)
-{
- static const int GROWBY = 80; /* how large we will grow strings by */
-
- int ch;
- int idx = 0;
- char *linebuf = NULL;
- int linebufsz = 0;
-
- while (1) {
- ch = fgetc(file);
- if (ch == EOF)
- break;
- /* grow the line buffer as necessary */
- while (idx > linebufsz-2)
- linebuf = xrealloc(linebuf, linebufsz += GROWBY);
- linebuf[idx++] = (char)ch;
- if ((char)ch == '\n')
- break;
- }
-
- if (idx == 0)
- return NULL;
-
- linebuf[idx] = 0;
- return linebuf;
-}
-
-#if defined BB_CAT
-extern void print_file(FILE *file)
-{
- int c;
-
- while ((c = getc(file)) != EOF)
- putc(c, stdout);
- fclose(file);
- fflush(stdout);
-}
-
-extern int print_file_by_name(char *filename)
-{
- FILE *file;
- file = fopen(filename, "r");
- if (file == NULL) {
- return FALSE;
- }
- print_file(file);
- return TRUE;
-}
-#endif /* BB_CAT || BB_LSMOD */
-
-#if defined BB_ECHO || defined BB_TR
-char process_escape_sequence(char **ptr)
-{
- char c;
-
- switch (c = *(*ptr)++) {
- case 'a':
- c = '\a';
- break;
- case 'b':
- c = '\b';
- break;
- case 'f':
- c = '\f';
- break;
- case 'n':
- c = '\n';
- break;
- case 't':
- c = '\t';
- break;
- case 'v':
- c = '\v';
- break;
- case '\\':
- c = '\\';
- break;
- case '0': case '1': case '2': case '3':
- case '4': case '5': case '6': case '7':
- c -= '0';
- if ('0' <= **ptr && **ptr <= '7') {
- c = c * 8 + (*(*ptr)++ - '0');
- if ('0' <= **ptr && **ptr <= '7')
- c = c * 8 + (*(*ptr)++ - '0');
- }
- break;
- default:
- (*ptr)--;
- c = '\\';
- break;
- }
- return c;
-}
-#endif
-
-#if defined BB_BASENAME || defined BB_LN || defined BB_SH
-char *get_last_path_component(char *path)
-{
- char *s=path+strlen(path)-1;
-
- /* strip trailing slashes */
- while (s && *s == '/') {
- *s-- = '\0';
- }
-
- /* find last component */
- s = strrchr(path, '/');
- if (s==NULL) return path;
- else return s+1;
-}
-#endif
-
-#if defined BB_GREP || defined BB_SED
-void xregcomp(regex_t *preg, const char *regex, int cflags)
-{
- int ret;
- if ((ret = regcomp(preg, regex, cflags)) != 0) {
- int errmsgsz = regerror(ret, preg, NULL, 0);
- char *errmsg = xmalloc(errmsgsz);
- regerror(ret, preg, errmsg, errmsgsz);
- fatalError("bb_regcomp: %s\n", errmsg);
- }
-}
-#endif
-
-/* END CODE */
-/*
-Local Variables:
-c-file-style: "linux"
-c-basic-offset: 4
-tab-width: 4
-End:
-*/
diff --git a/mdk-stage1/insmod-modutils/Makefile b/mdk-stage1/insmod-modutils/Makefile
deleted file mode 100644
index e8f78d2d0..000000000
--- a/mdk-stage1/insmod-modutils/Makefile
+++ /dev/null
@@ -1,63 +0,0 @@
- #******************************************************************************
- #
- # insmod from modutils (generic)
- #
- # $Id$
- #
- # Copyright 1996, 1997 Linux International.
- #
- #*****************************************************************************
-
-top_dir = ..
-
-include $(top_dir)/Makefile.common
-
-
-INCS = -I./include
-
-DEFS = -Wno-error -D_GNU_SOURCE -DELF_MACHINE_H='"elf_$(ARCH).h"' -DARCH_$(ARCH)
-
-
-DIRS = util obj
-
-all: dirs insmod libinsmod.a #libinsmod-DIET.a
-
-dirs:
- @for n in . $(DIRS); do \
- [ "$$n" = "." ] || make -C $$n ;\
- done
-
-clean:
- @for n in $(DIRS); do \
- (cd $$n; make clean) \
- done
- rm -rf t *.o insmod libinsmod.a libinsmod-DIET.a
-
-
-insmod: insmod-frontend.o insmod.o ./util/libutil-STANDALONE.a ./obj/libobj.a
- gcc -o $@ $^
- $(STRIPCMD) $@
-
-t/.create_stuff: util/libutil.a obj/libobj.a
- rm -rf t
- mkdir t
- cd t && for e in $^; do ar -x ../$$e; done
- touch t/.create_stuff
-
-libinsmod.a: insmod.o t/.create_stuff
- ar cru $@ insmod.o t/*
- ranlib $@
-
-libinsmod-DIET.a: insmod-DIET.o ./util/libutil-DIET.a ./obj/libobj-DIET.a
- ar cru $@ $^
- ranlib $@
-
-insmod-frontend.o: insmod-frontend.c insmod.c
- gcc $(CFLAGS) $(DEFS) $(INCS) $(GLIBC_INCLUDES) -c insmod-frontend.c
-
-insmod.o: insmod.c
- gcc $(CFLAGS) $(DEFS) $(INCS) $(GLIBC_INCLUDES) -c insmod.c
-
-insmod-DIET.o: insmod.c
- gcc $(CFLAGS) $(DEFS) $(INCS) $(DIETLIBC_INCLUDES) -o $@ -c insmod.c
-
diff --git a/mdk-stage1/insmod-modutils/include/config.h b/mdk-stage1/insmod-modutils/include/config.h
deleted file mode 100644
index 11da6a523..000000000
--- a/mdk-stage1/insmod-modutils/include/config.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Configuration file management
- *
- * Copyright 1994, 1995, 1996, 1997:
- * Jacques Gelinas <jack@solucorp.qc.ca>
- * Björn Ekwall <bj0rn@blox.se> February, March 1999
- *
- * This file is part of the Linux modutils.
- *
- * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef _CONFIG_H
-#define _CONFIG_H
-
-#include <stdio.h>
-#include <sys/utsname.h>
-
-#define ETC_MODULES_CONF "/etc/modules.conf"
-
-#define EXEC_PRE_INSTALL 0
-#define EXEC_POST_INSTALL 1
-#define EXEC_PRE_REMOVE 2
-#define EXEC_POST_REMOVE 3
-#define EXEC_INSTALL 4
-#define EXEC_REMOVE 5
-
-struct PATH_TYPE {
- char *type;
- char *path;
-};
-
-struct EXEC_TYPE {
- int when;
- char *module;
- char *cmd;
-};
-
-typedef struct {
- char *name;
- GLOB_LIST *opts;
- int autoclean;
-} OPT_LIST;
-
-/* config.c */
-extern int flag_autoclean;
-extern struct utsname uts_info;
-extern char *aliaslist[];
-extern struct PATH_TYPE *modpath;
-extern int nmodpath;
-extern struct EXEC_TYPE *execs;
-extern int nexecs;
-extern char *insmod_opt;
-extern char *config_file;
-extern char *optlist[];
-extern char *prune[];
-extern OPT_LIST *opt_list;
-extern OPT_LIST *abovelist;
-extern OPT_LIST *belowlist;
-extern OPT_LIST *prunelist;
-extern OPT_LIST *probe_list;
-extern OPT_LIST *probeall_list;
-extern OPT_LIST *aliases;
-extern time_t config_mtime;
-extern int root_check_off; /* Check modules are owned by root? */
-
-/* Information about generated files */
-struct gen_files {
- char *base; /* xxx in /lib/modules/`uname -r`/modules.xxx */
- char *name; /* name actually used */
- time_t mtime;
-};
-
-extern struct gen_files gen_file[];
-extern const int gen_file_count;
-/* The enum order must match the gen_file initialization order in config.c */
-enum gen_file_enum {
- GEN_GENERIC_STRINGFILE,
- GEN_PCIMAPFILE,
- GEN_ISAPNPMAPFILE,
- GEN_USBMAPFILE,
- GEN_PARPORTMAPFILE,
- GEN_DEPFILE,
-};
-
-extern char *persistdir;
-
-char *fgets_strip(char *buf, int sizebuf, FILE * fin, int *lineno);
-int config_read(int all, char *force_ver, char *base_dir, char *conf_file);
-GLOB_LIST *config_lstmod(const char *match, const char *type, int first_only);
-char *search_module_path(const char *base);
-
-#endif /* _CONFIG_H */
diff --git a/mdk-stage1/insmod-modutils/include/elf_alpha.h b/mdk-stage1/insmod-modutils/include/elf_alpha.h
deleted file mode 100644
index f1ec66f1c..000000000
--- a/mdk-stage1/insmod-modutils/include/elf_alpha.h
+++ /dev/null
@@ -1,10 +0,0 @@
-/* Machine-specific elf macros for the Alpha. */
-#ident "$Id$"
-
-#define ELFCLASSM ELFCLASS64
-#define ELFDATAM ELFDATA2LSB
-
-#define MATCH_MACHINE(x) (x == EM_ALPHA)
-
-#define SHT_RELM SHT_RELA
-#define Elf64_RelM Elf64_Rela
diff --git a/mdk-stage1/insmod-modutils/include/elf_arm.h b/mdk-stage1/insmod-modutils/include/elf_arm.h
deleted file mode 100644
index f6b531e88..000000000
--- a/mdk-stage1/insmod-modutils/include/elf_arm.h
+++ /dev/null
@@ -1,10 +0,0 @@
-/* Machine-specific elf macros for ARM. */
-#ident "$Id$"
-
-#define ELFCLASSM ELFCLASS32
-#define ELFDATAM ELFDATA2LSB
-
-#define MATCH_MACHINE(x) (x == EM_ARM)
-
-#define SHT_RELM SHT_REL
-#define Elf32_RelM Elf32_Rel
diff --git a/mdk-stage1/insmod-modutils/include/elf_hppa.h b/mdk-stage1/insmod-modutils/include/elf_hppa.h
deleted file mode 100644
index 9a1bd34ce..000000000
--- a/mdk-stage1/insmod-modutils/include/elf_hppa.h
+++ /dev/null
@@ -1,9 +0,0 @@
-/* Machine-specific elf macros for HP-PA. */
-
-#define ELFCLASSM ELFCLASS32
-#define ELFDATAM ELFDATA2MSB
-
-#define MATCH_MACHINE(x) (x == EM_PARISC)
-
-#define SHT_RELM SHT_RELA
-#define Elf32_RelM Elf32_Rela
diff --git a/mdk-stage1/insmod-modutils/include/elf_hppa64.h b/mdk-stage1/insmod-modutils/include/elf_hppa64.h
deleted file mode 100644
index 05b201aef..000000000
--- a/mdk-stage1/insmod-modutils/include/elf_hppa64.h
+++ /dev/null
@@ -1,9 +0,0 @@
-/* Machine-specific elf macros for HP-PA64. */
-
-#define ELFCLASSM ELFCLASS64
-#define ELFDATAM ELFDATA2MSB
-
-#define MATCH_MACHINE(x) (x == EM_PARISC)
-
-#define SHT_RELM SHT_RELA
-#define Elf64_RelM Elf64_Rela
diff --git a/mdk-stage1/insmod-modutils/include/elf_i386.h b/mdk-stage1/insmod-modutils/include/elf_i386.h
deleted file mode 100644
index c6c2d326e..000000000
--- a/mdk-stage1/insmod-modutils/include/elf_i386.h
+++ /dev/null
@@ -1,10 +0,0 @@
-/* Machine-specific elf macros for i386 et al. */
-#ident "$Id$"
-
-#define ELFCLASSM ELFCLASS32
-#define ELFDATAM ELFDATA2LSB
-
-#define MATCH_MACHINE(x) (x == EM_386)
-
-#define SHT_RELM SHT_REL
-#define Elf32_RelM Elf32_Rel
diff --git a/mdk-stage1/insmod-modutils/include/elf_ia64.h b/mdk-stage1/insmod-modutils/include/elf_ia64.h
deleted file mode 100644
index b4d902956..000000000
--- a/mdk-stage1/insmod-modutils/include/elf_ia64.h
+++ /dev/null
@@ -1,9 +0,0 @@
-/* Machine-specific elf macros for ia64. */
-
-#define ELFCLASSM ELFCLASS64
-#define ELFDATAM ELFDATA2LSB
-
-#define MATCH_MACHINE(x) (x == EM_IA_64)
-
-#define SHT_RELM SHT_RELA
-#define Elf64_RelM Elf64_Rela
diff --git a/mdk-stage1/insmod-modutils/include/elf_m68k.h b/mdk-stage1/insmod-modutils/include/elf_m68k.h
deleted file mode 100644
index 817fc8f2c..000000000
--- a/mdk-stage1/insmod-modutils/include/elf_m68k.h
+++ /dev/null
@@ -1,10 +0,0 @@
-/* Machine-specific elf macros for m68k. */
-#ident "$Id$"
-
-#define ELFCLASSM ELFCLASS32
-#define ELFDATAM ELFDATA2MSB
-
-#define MATCH_MACHINE(x) (x == EM_68K)
-
-#define SHT_RELM SHT_RELA
-#define Elf32_RelM Elf32_Rela
diff --git a/mdk-stage1/insmod-modutils/include/elf_mips.h b/mdk-stage1/insmod-modutils/include/elf_mips.h
deleted file mode 100644
index 8a0430216..000000000
--- a/mdk-stage1/insmod-modutils/include/elf_mips.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Machine-specific elf macros for MIPS. */
-#ident "$Id$"
-
-#define ELFCLASSM ELFCLASS32
-#ifdef __MIPSEB__
-#define ELFDATAM ELFDATA2MSB
-#endif
-#ifdef __MIPSEL__
-#define ELFDATAM ELFDATA2LSB
-#endif
-
-/* Account for ELF spec changes. */
-#ifndef EM_MIPS_RS3_LE
-#ifdef EM_MIPS_RS4_BE
-#define EM_MIPS_RS3_LE EM_MIPS_RS4_BE
-#else
-#define EM_MIPS_RS3_LE 10
-#endif
-#endif /* !EM_MIPS_RS3_LE */
-
-#define MATCH_MACHINE(x) (x == EM_MIPS || x == EM_MIPS_RS3_LE)
-
-#define SHT_RELM SHT_REL
-#define Elf32_RelM Elf32_Rel
diff --git a/mdk-stage1/insmod-modutils/include/elf_ppc.h b/mdk-stage1/insmod-modutils/include/elf_ppc.h
deleted file mode 100644
index 71596de8c..000000000
--- a/mdk-stage1/insmod-modutils/include/elf_ppc.h
+++ /dev/null
@@ -1,10 +0,0 @@
-/* Machine-specific elf macros for the PowerPC. */
-#ident "$Id$"
-
-#define ELFCLASSM ELFCLASS32
-#define ELFDATAM ELFDATA2MSB
-
-#define MATCH_MACHINE(x) (x == EM_PPC)
-
-#define SHT_RELM SHT_RELA
-#define Elf32_RelM Elf32_Rela
diff --git a/mdk-stage1/insmod-modutils/include/elf_s390.h b/mdk-stage1/insmod-modutils/include/elf_s390.h
deleted file mode 100644
index 547d66b83..000000000
--- a/mdk-stage1/insmod-modutils/include/elf_s390.h
+++ /dev/null
@@ -1,10 +0,0 @@
-/* Machine-specific elf macros for i386 et al. */
-#ident "$Id$"
-
-#define ELFCLASSM ELFCLASS32
-#define ELFDATAM ELFDATA2MSB
-
-#define MATCH_MACHINE(x) (x == EM_S390)
-
-#define SHT_RELM SHT_RELA
-#define Elf32_RelM Elf32_Rela
diff --git a/mdk-stage1/insmod-modutils/include/elf_sparc.h b/mdk-stage1/insmod-modutils/include/elf_sparc.h
deleted file mode 100644
index 9b5c348d9..000000000
--- a/mdk-stage1/insmod-modutils/include/elf_sparc.h
+++ /dev/null
@@ -1,10 +0,0 @@
-/* Machine-specific elf macros for the Sparc. */
-#ident "$Id$"
-
-#define ELFCLASSM ELFCLASS32
-#define ELFDATAM ELFDATA2MSB
-
-#define MATCH_MACHINE(x) (x == EM_SPARC)
-
-#define SHT_RELM SHT_RELA
-#define Elf32_RelM Elf32_Rela
diff --git a/mdk-stage1/insmod-modutils/include/elf_sparc64.h b/mdk-stage1/insmod-modutils/include/elf_sparc64.h
deleted file mode 100644
index 158edd7e1..000000000
--- a/mdk-stage1/insmod-modutils/include/elf_sparc64.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Machine-specific elf macros for the Sparc. */
-#ident "$Id$"
-
-#define ELFCLASSM ELFCLASS64
-#define ELFDATAM ELFDATA2MSB
-
-#ifndef EM_SPARCV9
-#define EM_SPARCV9 43
-#endif
-#ifndef EM_SPARC64
-#define EM_SPARC64 11
-#endif
-#define MATCH_MACHINE(x) ((x) == EM_SPARCV9 || (x) == EM_SPARC64)
-
-#define SHT_RELM SHT_RELA
-#define Elf64_RelM Elf64_Rela
-
-#ifndef ELF64_R_SYM
-#define ELF64_R_SYM(x) ((x) >> 32)
-#define ELF64_R_TYPE(x) ((unsigned)(x))
-#endif
-
-#ifndef ELF64_ST_BIND
-#define ELF64_ST_BIND(x) ((x) >> 4)
-#define ELF64_ST_TYPE(x) ((x) & 0xf)
-#endif
-
diff --git a/mdk-stage1/insmod-modutils/include/kallsyms.h b/mdk-stage1/insmod-modutils/include/kallsyms.h
deleted file mode 100644
index 9748873cf..000000000
--- a/mdk-stage1/insmod-modutils/include/kallsyms.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/* kallsyms headers
- Copyright 2000 Keith Owens <kaos@ocs.com.au>
-
- This file is part of the Linux modutils. It is exported to kernel
- space so debuggers can access the kallsyms data.
-
- The kallsyms data contains all the non-stack symbols from a kernel
- or a module. The kernel symbols are held between __start___kallsyms
- and __stop___kallsyms. The symbols for a module are accessed via
- the struct module chain which is based at module_list.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ident "$Id$"
-
-#ifndef MODUTILS_KALLSYMS_H
-#define MODUTILS_KALLSYMS_H 1
-
-/* Have to (re)define these ElfW entries here because external kallsyms
- * code does not have access to modutils/include/obj.h. This code is
- * included from user spaces tools (modutils) and kernel, they need
- * different includes.
- */
-
-#ifndef ELFCLASS32
-#ifdef __KERNEL__
-#include <linux/elf.h>
-#else /* __KERNEL__ */
-#include <elf.h>
-#endif /* __KERNEL__ */
-#endif /* ELFCLASS32 */
-
-#ifndef ELFCLASSM
-#define ELFCLASSM ELF_CLASS
-#endif
-
-#ifndef ElfW
-# if ELFCLASSM == ELFCLASS32
-# define ElfW(x) Elf32_ ## x
-# define ELFW(x) ELF32_ ## x
-# else
-# define ElfW(x) Elf64_ ## x
-# define ELFW(x) ELF64_ ## x
-# endif
-#endif
-
-/* Format of data in the kallsyms section.
- * Most of the fields are small numbers but the total size and all
- * offsets can be large so use the 32/64 bit types for these fields.
- *
- * Do not use sizeof() on these structures, modutils may be using extra
- * fields. Instead use the size fields in the header to access the
- * other bits of data.
- */
-
-struct kallsyms_header {
- int size; /* Size of this header */
- ElfW(Word) total_size; /* Total size of kallsyms data */
- int sections; /* Number of section entries */
- ElfW(Off) section_off; /* Offset to first section entry */
- int section_size; /* Size of one section entry */
- int symbols; /* Number of symbol entries */
- ElfW(Off) symbol_off; /* Offset to first symbol entry */
- int symbol_size; /* Size of one symbol entry */
- ElfW(Off) string_off; /* Offset to first string */
- ElfW(Addr) start; /* Start address of first section */
- ElfW(Addr) end; /* End address of last section */
-};
-
-struct kallsyms_section {
- ElfW(Addr) start; /* Start address of section */
- ElfW(Word) size; /* Size of this section */
- ElfW(Off) name_off; /* Offset to section name */
- ElfW(Word) flags; /* Flags from section */
-};
-
-struct kallsyms_symbol {
- ElfW(Off) section_off; /* Offset to section that owns this symbol */
- ElfW(Addr) symbol_addr; /* Address of symbol */
- ElfW(Off) name_off; /* Offset to symbol name */
-};
-
-#define KALLSYMS_SEC_NAME "__kallsyms"
-#define KALLSYMS_IDX 2 /* obj_kallsyms creates kallsyms as section 2 */
-
-#define kallsyms_next_sec(h,s) \
- ((s) = (struct kallsyms_section *)((char *)(s) + (h)->section_size))
-#define kallsyms_next_sym(h,s) \
- ((s) = (struct kallsyms_symbol *)((char *)(s) + (h)->symbol_size))
-
-int kallsyms_symbol_to_address(
- const char *name, /* Name to lookup */
- unsigned long *token, /* Which module to start with */
- const char **mod_name, /* Set to module name or "kernel" */
- unsigned long *mod_start, /* Set to start address of module */
- unsigned long *mod_end, /* Set to end address of module */
- const char **sec_name, /* Set to section name */
- unsigned long *sec_start, /* Set to start address of section */
- unsigned long *sec_end, /* Set to end address of section */
- const char **sym_name, /* Set to full symbol name */
- unsigned long *sym_start, /* Set to start address of symbol */
- unsigned long *sym_end /* Set to end address of symbol */
- );
-
-int kallsyms_address_to_symbol(
- unsigned long address, /* Address to lookup */
- const char **mod_name, /* Set to module name */
- unsigned long *mod_start, /* Set to start address of module */
- unsigned long *mod_end, /* Set to end address of module */
- const char **sec_name, /* Set to section name */
- unsigned long *sec_start, /* Set to start address of section */
- unsigned long *sec_end, /* Set to end address of section */
- const char **sym_name, /* Set to full symbol name */
- unsigned long *sym_start, /* Set to start address of symbol */
- unsigned long *sym_end /* Set to end address of symbol */
- );
-
-#endif /* kallsyms.h */
diff --git a/mdk-stage1/insmod-modutils/include/kerneld.h b/mdk-stage1/insmod-modutils/include/kerneld.h
deleted file mode 100644
index 3bc2c9d42..000000000
--- a/mdk-stage1/insmod-modutils/include/kerneld.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Definitions for the Linux kerneld SYSV IPC interface.
- This file was part of the Linux kernel, and so is covered by the GPL. */
-
-#ifndef MODUTILS_KERNELD_H
-#define MODUTILS_KERNELD_H
-
-#ident "$Id$"
-
-#define KERNELD_SYSTEM 1
-#define KERNELD_REQUEST_MODULE 2 /* "insmod" */
-#define KERNELD_RELEASE_MODULE 3 /* "rmmod" */
-#define KERNELD_DELAYED_RELEASE_MODULE 4 /* "rmmod" */
-#define KERNELD_CANCEL_RELEASE_MODULE 5 /* "rmmod" */
-#define KERNELD_REQUEST_ROUTE 6 /* net/ipv4/route.c */
-#define KERNELD_BLANKER 7 /* drivers/char/console.c */
-#define KERNELD_PNP 8 /* drivers/pnp/kerneld.c */
-#define KERNELD_ARP 256 /* net/ipv4/arp.c */
-
-#ifdef NEW_KERNELD_PROTOCOL
-# define OLDIPC_KERNELD 00040000 /* old kerneld message channel */
-# define IPC_KERNELD 00140000 /* new kerneld message channel */
-# define KDHDR (sizeof(long) + sizeof(short) + sizeof(short))
-# define NULL_KDHDR 0, 2, 0
-#else /* NEW_KERNELD_PROTOCOL */
-# define IPC_KERNELD 00040000
-# define KDHDR (sizeof(long))
-# define NULL_KDHDR 0
-#endif /* NEW_KERNELD_PROTOCOL */
-
-#define KERNELD_MAXCMD 0x7ffeffff
-#define KERNELD_MINSEQ 0x7fff0000 /* "commands" legal up to 0x7ffeffff */
-#define KERNELD_WAIT 0x80000000
-#define KERNELD_NOWAIT 0
-
-struct kerneld_msg
- {
- long mtype;
- long id;
-#ifdef NEW_KERNELD_PROTOCOL
- short version;
- short pid;
-#endif /* NEW_KERNELD_PROTOCOL */
- char text[1];
- };
-
-#endif /* kerneld.h */
diff --git a/mdk-stage1/insmod-modutils/include/modstat.h b/mdk-stage1/insmod-modutils/include/modstat.h
deleted file mode 100644
index b8a58eeae..000000000
--- a/mdk-stage1/insmod-modutils/include/modstat.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * For kernel module status and information
- *
- * Add module_name_list and l_module_name_list.
- * Keith Owens <kaos@ocs.com.au> November 1999.
- * Björn Ekwall <bj0rn@blox.se> February 1999.
- *
- * This file is part of the Linux modutils.
- *
- * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-#ifndef _KERNEL_H
-#define _KERNEL_H
-
-#define K_SYMBOLS 1 /* Want info about symbols */
-#define K_INFO 2 /* Want extended module info */
-#define K_REFS 4 /* Want info about references */
-
-struct module_stat {
- char *name;
- unsigned long addr;
- unsigned long modstruct; /* COMPAT_2_0! *//* depends on architecture? */
- unsigned long size;
- unsigned long flags;
- long usecount;
- size_t nsyms;
- struct module_symbol *syms;
- size_t nrefs;
- struct module_stat **refs;
- unsigned long status;
-};
-
-extern struct module_stat *module_stat;
-extern size_t n_module_stat;
-extern char *module_name_list;
-extern size_t l_module_name_list;
-extern struct module_symbol *ksyms;
-extern size_t nksyms;
-extern int k_new_syscalls;
-
-int get_kernel_info(int type);
-
-#endif /* _KERNEL_H */
diff --git a/mdk-stage1/insmod-modutils/include/module.h b/mdk-stage1/insmod-modutils/include/module.h
deleted file mode 100644
index db49ab2b2..000000000
--- a/mdk-stage1/insmod-modutils/include/module.h
+++ /dev/null
@@ -1,210 +0,0 @@
-/* Definitions for the Linux module syscall interface.
- Copyright 1996, 1997 Linux International.
-
- Contributed by Richard Henderson <rth@tamu.edu>
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-
-#ifndef MODUTILS_MODULE_H
-#define MODUTILS_MODULE_H 1
-
-#ident "$Id$"
-
-/* This file contains the structures used by the 2.0 and 2.1 kernels.
- We do not use the kernel headers directly because we do not wish
- to be dependant on a particular kernel version to compile insmod. */
-
-
-/*======================================================================*/
-/* The structures used by Linux 2.0. */
-
-/* The symbol format used by get_kernel_syms(2). */
-struct old_kernel_sym
-{
- unsigned long value;
- char name[60];
-};
-
-struct old_module_ref
-{
- unsigned long module; /* kernel addresses */
- unsigned long next;
-};
-
-struct old_module_symbol
-{
- unsigned long addr;
- unsigned long name;
-};
-
-struct old_symbol_table
-{
- int size; /* total, including string table!!! */
- int n_symbols;
- int n_refs;
- struct old_module_symbol symbol[0]; /* actual size defined by n_symbols */
- struct old_module_ref ref[0]; /* actual size defined by n_refs */
-};
-
-struct old_mod_routines
-{
- unsigned long init;
- unsigned long cleanup;
-};
-
-struct old_module
-{
- unsigned long next;
- unsigned long ref; /* the list of modules that refer to me */
- unsigned long symtab;
- unsigned long name;
- int size; /* size of module in pages */
- unsigned long addr; /* address of module */
- int state;
- unsigned long cleanup; /* cleanup routine */
-};
-
-/* Sent to init_module(2) or'ed into the code size parameter. */
-#define OLD_MOD_AUTOCLEAN 0x40000000 /* big enough, but no sign problems... */
-
-int get_kernel_syms(struct old_kernel_sym *);
-int old_sys_init_module(const char *name, char *code, unsigned codesize,
- struct old_mod_routines *, struct old_symbol_table *);
-
-/*======================================================================*/
-/* For sizeof() which are related to the module platform and not to the
- environment isnmod is running in, use sizeof_xx instead of sizeof(xx). */
-
-#define tgt_sizeof_char sizeof(char)
-#define tgt_sizeof_short sizeof(short)
-#define tgt_sizeof_int sizeof(int)
-#define tgt_sizeof_long sizeof(long)
-#define tgt_sizeof_char_p sizeof(char *)
-#define tgt_sizeof_void_p sizeof(void *)
-#define tgt_long long
-#define tgt_long_fmt "l"
-
-/* This assumes that long long on a 32 bit system is equivalent to long on the
- * equivalent 64 bit system. Also that void and char pointers are 8 bytes on
- * all 64 bit systems. Add per system tweaks if it ever becomes necessary.
- */
-#if defined(COMMON_3264) && defined(ONLY_64)
-#undef tgt_long
-#undef tgt_long_fmt
-#undef tgt_sizeof_long
-#undef tgt_sizeof_char_p
-#undef tgt_sizeof_void_p
-#define tgt_long long long
-#define tgt_long_fmt "ll"
-#define tgt_sizeof_long 8
-#define tgt_sizeof_char_p 8
-#define tgt_sizeof_void_p 8
-#endif
-
-/*======================================================================*/
-/* The structures used in Linux 2.1 onwards. */
-
-/* Note: module_symbol does not use tgt_long intentionally */
-struct module_symbol
-{
- unsigned long value;
- unsigned long name;
-};
-
-struct module_ref
-{
- unsigned tgt_long dep; /* kernel addresses */
- unsigned tgt_long ref;
- unsigned tgt_long next_ref;
-};
-
-struct module
-{
- unsigned tgt_long size_of_struct; /* == sizeof(module) */
- unsigned tgt_long next;
- unsigned tgt_long name;
- unsigned tgt_long size;
-
- tgt_long usecount;
- unsigned tgt_long flags; /* AUTOCLEAN et al */
-
- unsigned nsyms;
- unsigned ndeps;
-
- unsigned tgt_long syms;
- unsigned tgt_long deps;
- unsigned tgt_long refs;
- unsigned tgt_long init;
- unsigned tgt_long cleanup;
- unsigned tgt_long ex_table_start;
- unsigned tgt_long ex_table_end;
-#ifdef __alpha__
- unsigned tgt_long gp;
-#endif
- /* Everything after here is extension. */
- unsigned tgt_long read_start; /* Read data from existing module */
- unsigned tgt_long read_end;
- unsigned tgt_long can_unload;
- unsigned tgt_long runsize;
- unsigned tgt_long kallsyms_start;
- unsigned tgt_long kallsyms_end;
- unsigned tgt_long archdata_start;
- unsigned tgt_long archdata_end;
- unsigned tgt_long kernel_data;
-};
-
-struct module_info
-{
- unsigned long addr;
- unsigned long size;
- unsigned long flags;
- long usecount;
-};
-
-/* Bits of module.flags. */
-#define NEW_MOD_RUNNING 1
-#define NEW_MOD_DELETED 2
-#define NEW_MOD_AUTOCLEAN 4
-#define NEW_MOD_VISITED 8
-#define NEW_MOD_USED_ONCE 16
-#define NEW_MOD_INITIALIZING 64
-
-int sys_init_module(const char *name, const struct module *);
-int query_module(const char *name, int which, void *buf, size_t bufsize,
- size_t *ret);
-
-/* Values for query_module's which. */
-
-#define QM_MODULES 1
-#define QM_DEPS 2
-#define QM_REFS 3
-#define QM_SYMBOLS 4
-#define QM_INFO 5
-
-/*======================================================================*/
-/* The system calls unchanged between 2.0 and 2.1. */
-
-unsigned long create_module(const char *, size_t);
-int delete_module(const char *);
-
-/* In safe mode the last parameter is forced to be a module name and meta
- * expansion is not allowed on that name.
- */
-extern unsigned int safemode;
-
-#endif /* module.h */
diff --git a/mdk-stage1/insmod-modutils/include/obj.h b/mdk-stage1/insmod-modutils/include/obj.h
deleted file mode 100644
index b140c65c3..000000000
--- a/mdk-stage1/insmod-modutils/include/obj.h
+++ /dev/null
@@ -1,275 +0,0 @@
-/* Elf object file loading and relocation routines.
- Copyright 1996, 1997 Linux International.
-
- Contributed by Richard Henderson <rth@tamu.edu>
- obj_free() added by Björn Ekwall <bj0rn@blox.se> March 1999
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-
-#ifndef MODUTILS_OBJ_H
-#define MODUTILS_OBJ_H 1
-
-#ident "$Id$"
-
-/* The relocatable object is manipulated using elfin types. */
-
-#include <stdio.h>
-#include <elf.h>
-#include ELF_MACHINE_H
-
-#ifndef ElfW
-# if ELFCLASSM == ELFCLASS32
-# define ElfW(x) Elf32_ ## x
-# define ELFW(x) ELF32_ ## x
-# else
-# define ElfW(x) Elf64_ ## x
-# define ELFW(x) ELF64_ ## x
-# endif
-#endif
-
-#if defined(COMMON_3264) && defined(ONLY_32)
-# define ObjW(x) obj32_ ## x
-#else
-# if defined(COMMON_3264) && defined(ONLY_64)
-# define ObjW(x) obj64_ ## x
-# else
-# define ObjW(x) obj_ ## x
-# endif
-#endif
-
-/* For some reason this is missing from lib5. */
-#ifndef ELF32_ST_INFO
-# define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf))
-#endif
-
-#ifndef ELF64_ST_INFO
-# define ELF64_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf))
-#endif
-
-struct obj_string_patch_struct;
-struct obj_symbol_patch_struct;
-
-struct obj_section
-{
- ElfW(Shdr) header;
- const char *name;
- char *contents;
- struct obj_section *load_next;
- int idx;
-};
-
-struct obj_symbol
-{
- struct obj_symbol *next; /* hash table link */
- const char *name;
- unsigned long value;
- unsigned long size;
- int secidx; /* the defining section index/module */
- int info;
- int ksymidx; /* for export to the kernel symtab */
- int r_type; /* relocation type */
-};
-
-/* Hardcode the hash table size. We shouldn't be needing so many
- symbols that we begin to degrade performance, and we get a big win
- by giving the compiler a constant divisor. */
-
-#define HASH_BUCKETS 521
-
-struct obj_file
-{
- ElfW(Ehdr) header;
- ElfW(Addr) baseaddr;
- struct obj_section **sections;
- struct obj_section *load_order;
- struct obj_section **load_order_search_start;
- struct obj_string_patch_struct *string_patches;
- struct obj_symbol_patch_struct *symbol_patches;
- int (*symbol_cmp)(const char *, const char *);
- unsigned long (*symbol_hash)(const char *);
- unsigned long local_symtab_size;
- struct obj_symbol **local_symtab;
- struct obj_symbol *symtab[HASH_BUCKETS];
- const char *filename;
- char *persist;
-};
-
-enum obj_reloc
-{
- obj_reloc_ok,
- obj_reloc_overflow,
- obj_reloc_dangerous,
- obj_reloc_unhandled,
- obj_reloc_constant_gp
-};
-
-struct obj_string_patch_struct
-{
- struct obj_string_patch_struct *next;
- int reloc_secidx;
- ElfW(Addr) reloc_offset;
- ElfW(Addr) string_offset;
-};
-
-struct obj_symbol_patch_struct
-{
- struct obj_symbol_patch_struct *next;
- int reloc_secidx;
- ElfW(Addr) reloc_offset;
- struct obj_symbol *sym;
-};
-
-
-/* Generic object manipulation routines. */
-
-#define obj_elf_hash ObjW(elf_hash)
-#define obj_elf_hash_n ObjW(elf_hash_n)
-#define obj_add_symbol ObjW(add_symbol)
-#define obj_find_symbol ObjW(find_symbol)
-#define obj_symbol_final_value ObjW(symbol_final_value)
-#define obj_set_symbol_compare ObjW(set_symbol_compare)
-#define obj_find_section ObjW(find_section)
-#define obj_insert_section_load_order ObjW(insert_section_load_order)
-#define obj_create_alloced_section ObjW(create_alloced_section)
-#define obj_create_alloced_section_first \
- ObjW(create_alloced_section_first)
-#define obj_extend_section ObjW(extend_section)
-#define obj_string_patch ObjW(string_patch)
-#define obj_symbol_patch ObjW(symbol_patch)
-#define obj_check_undefineds ObjW(check_undefineds)
-#define obj_clear_undefineds ObjW(clear_undefineds)
-#define obj_allocate_commons ObjW(allocate_commons)
-#define obj_load_size ObjW(load_size)
-#define obj_relocate ObjW(relocate)
-#define obj_load ObjW(load)
-#define obj_free ObjW(free)
-#define obj_create_image ObjW(create_image)
-#define obj_addr_to_native_ptr ObjW(addr_to_native_ptr)
-#define obj_native_ptr_to_addr ObjW(native_ptr_to_addr)
-#define arch_new_file ObjW(arch_new_file)
-#define arch_new_section ObjW(arch_new_section)
-#define arch_new_symbol ObjW(arch_new_symbol)
-#define arch_apply_relocation ObjW(arch_apply_relocation)
-#define arch_create_got ObjW(arch_create_got)
-#define arch_init_module ObjW(arch_init_module)
-#define arch_load_proc_section ObjW(arch_load_proc_section)
-#define arch_finalize_section_address ObjW(arch_finalize_section_address)
-#define arch_archdata ObjW(arch_archdata)
-
-unsigned long obj_elf_hash (const char *);
-
-unsigned long obj_elf_hash_n (const char *, unsigned long len);
-
-struct obj_symbol *obj_add_symbol (struct obj_file *f, const char *name,
- unsigned long symidx, int info, int secidx,
- ElfW(Addr) value, unsigned long size);
-
-struct obj_symbol *obj_find_symbol (struct obj_file *f,
- const char *name);
-
-ElfW(Addr) obj_symbol_final_value (struct obj_file *f,
- struct obj_symbol *sym);
-
-void obj_set_symbol_compare (struct obj_file *f,
- int (*cmp)(const char *, const char *),
- unsigned long (*hash)(const char *));
-
-struct obj_section *obj_find_section (struct obj_file *f,
- const char *name);
-
-void obj_insert_section_load_order (struct obj_file *f,
- struct obj_section *sec);
-
-struct obj_section *obj_create_alloced_section (struct obj_file *f,
- const char *name,
- unsigned long align,
- unsigned long size);
-
-struct obj_section *obj_create_alloced_section_first (struct obj_file *f,
- const char *name,
- unsigned long align,
- unsigned long size);
-
-void *obj_extend_section (struct obj_section *sec, unsigned long more);
-
-int obj_string_patch (struct obj_file *f, int secidx, ElfW(Addr) offset,
- const char *string);
-
-int obj_symbol_patch (struct obj_file *f, int secidx, ElfW(Addr) offset,
- struct obj_symbol *sym);
-
-int obj_check_undefineds (struct obj_file *f, int quiet);
-
-void obj_clear_undefineds (struct obj_file *f);
-
-void obj_allocate_commons (struct obj_file *f);
-
-unsigned long obj_load_size (struct obj_file *f);
-
-int obj_relocate (struct obj_file *f, ElfW(Addr) base);
-
-struct obj_file *obj_load (int f, Elf32_Half e_type, const char *filename);
-
-void obj_free (struct obj_file *f);
-
-int obj_create_image (struct obj_file *f, char *image);
-
-int obj_kallsyms (struct obj_file *fin, struct obj_file **fout);
-
-/* Architecture specific manipulation routines. */
-
-struct obj_file *arch_new_file (void);
-
-struct obj_section *arch_new_section (void);
-
-struct obj_symbol *arch_new_symbol (void);
-
-enum obj_reloc arch_apply_relocation (struct obj_file *f,
- struct obj_section *targsec,
- struct obj_section *symsec,
- struct obj_symbol *sym,
- ElfW(RelM) *rel, ElfW(Addr) value);
-
-int arch_create_got (struct obj_file *f);
-
-struct module;
-int arch_init_module (struct obj_file *f, struct module *);
-
-int arch_load_proc_section (struct obj_section *sec, int fp);
-
-int arch_finalize_section_address (struct obj_file *f, ElfW(Addr) base);
-
-int arch_archdata (struct obj_file *fin, struct obj_section *sec);
-
-#define ARCHDATA_SEC_NAME "__archdata"
-
-/* Pointers in objects can be 32 or 64 bit */
-union obj_ptr_4 {
- Elf32_Word addr;
- void *ptr;
-};
-union obj_ptr_8 {
- Elf64_Xword addr;
- void *ptr;
-};
-
-void *obj_addr_to_native_ptr(ElfW(Addr));
-
-ElfW(Addr) obj_native_ptr_to_addr(void *);
-
-#endif /* obj.h */
diff --git a/mdk-stage1/insmod-modutils/include/util.h b/mdk-stage1/insmod-modutils/include/util.h
deleted file mode 100644
index b2e4a67c3..000000000
--- a/mdk-stage1/insmod-modutils/include/util.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/* Miscelaneous utility functions.
- Copyright 1996, 1997 Linux International.
-
- Contributed by Richard Henderson <rth@tamu.edu>
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-
-#ifndef MODUTILS_UTIL_H
-#define MODUTILS_UTIL_H 1
-
-#ident "$Id$"
-
-#include <stdio.h>
-#include <sys/stat.h>
-
-#define SHELL_META "&();|<>$`\"'\\!{}[]~=+:?*" /* Sum of bj0rn and Debian */
-
-void *xmalloc(size_t);
-void *xrealloc(void *, size_t);
-char *xstrdup(const char *);
-char *xstrcat(char *, const char *, size_t);
-int xsystem(const char *, char *const[]);
-int arch64(void);
-
-typedef int (*xftw_func_t)(const char *, const struct stat *);
-extern int xftw(const char *directory, xftw_func_t);
-
-/* Error logging */
-extern int log;
-extern int errors;
-extern const char *error_file;
-
-extern int flag_verbose;
-extern void verbose(const char *ctl,...);
-
-void error(const char *fmt, ...)
-#ifdef __GNUC__
- __attribute__((format(printf, 1, 2)))
-#endif
- ;
-
-void lprintf(const char *fmt, ...)
-#ifdef __GNUC__
- __attribute__((format(printf, 1, 2)))
-#endif
- ;
-
-void setsyslog(const char *program);
-
-/*
- * Generic globlist <bj0rn@blox.se>
- */
-typedef struct {
- int pathc; /* Count of paths matched so far */
- char **pathv; /* List of matched pathnames. */
-} GLOB_LIST;
-int meta_expand(char *pt, GLOB_LIST *g, char *base_dir, char *version, int type);
-#define ME_BUILTIN_COMMAND 1
-#define ME_SHELL_COMMAND 2
-#define ME_GLOB 4
-#define ME_ALL (ME_GLOB|ME_SHELL_COMMAND|ME_BUILTIN_COMMAND)
-
-extern void snap_shot(const char *module_name, int number);
-extern void snap_shot_log(const char *fmt,...);
-
-#ifdef CONFIG_USE_ZLIB
-int gzf_open(const char *name, int mode);
-int gzf_read(int fd, void *buf, size_t count);
-off_t gzf_lseek(int fd, off_t offset, int whence);
-void gzf_close(int fd);
-
-#else /* ! CONFIG_USE_ZLIB */
-
-#include <unistd.h>
-
-#define gzf_open open
-#define gzf_read read
-#define gzf_lseek lseek
-#define gzf_close close
-
-#endif /* CONFIG_USE_ZLIB */
-
-#define SYMPREFIX "__insmod_";
-extern const char symprefix[10]; /* Must be sizeof(SYMPREFIX), including nul */
-
-#endif /* util.h */
diff --git a/mdk-stage1/insmod-modutils/include/version.h b/mdk-stage1/insmod-modutils/include/version.h
deleted file mode 100644
index 51ca0eb29..000000000
--- a/mdk-stage1/insmod-modutils/include/version.h
+++ /dev/null
@@ -1 +0,0 @@
-#define MODUTILS_VERSION "2.4.2"
diff --git a/mdk-stage1/insmod-modutils/insmod-frontend.c b/mdk-stage1/insmod-modutils/insmod-frontend.c
deleted file mode 100644
index 2b3aa1acb..000000000
--- a/mdk-stage1/insmod-modutils/insmod-frontend.c
+++ /dev/null
@@ -1,24 +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.
- *
- */
-
-#include <stdio.h>
-
-
-int insmod_main( int argc, char **argv);
-
-int main( int argc, char **argv)
-{
- printf("Using insmod provided by modutils.\n");
- return insmod_main(argc, argv);
-}
diff --git a/mdk-stage1/insmod-modutils/insmod.c b/mdk-stage1/insmod-modutils/insmod.c
deleted file mode 100644
index 359b28837..000000000
--- a/mdk-stage1/insmod-modutils/insmod.c
+++ /dev/null
@@ -1,1964 +0,0 @@
-/* Insert a module into a running kernel.
- Copyright 1996, 1997 Linux International.
-
- New implementation contributed by Richard Henderson <rth@tamu.edu>
- Based on original work by Bjorn Ekwall <bj0rn@blox.se>
- Restructured (and partly rewritten) by:
- Björn Ekwall <bj0rn@blox.se> February 1999
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
- /*
- Fixes:
-
- Adjust module size for mod_use_count in old_init_module:
- B. James Phillippe <bryan@terran.org>
-
- Merged modprobe + many fixes: Björn Ekwall <bj0rn@blox.se> February 1999
- SMP "friendliness" (and -P): Bill Zumach <zumach+@transarc.com>
-
- Ksymoops support: Keith Owens <kaos@ocs.com.au> August 1999.
-
- Add -r flag: Keith Owens <kaos@ocs.com.au> October 1999.
-
- More flexible recognition of the way the utility was called.
- Suggested by Stepan Kasal, implemented in a different way by Keith
- Owens <kaos@ocs.com.au> December 1999.
-
- Rationalize common code for 32/64 bit architectures.
- Keith Owens <kaos@ocs.com.au> December 1999.
- Add arch64().
- Keith Owens <kaos@ocs.com.au> December 1999.
- kallsyms support
- Keith Owens <kaos@ocs.com.au> April 2000.
- archdata support
- Keith Owens <kaos@ocs.com.au> August 2000.
- Add insmod -O, move print map before sys_init_module.
- Keith Owens <kaos@ocs.com.au> October 2000.
- Add insmod -S.
- Keith Owens <kaos@ocs.com.au> November 2000.
- Add persistent data support.
- Keith Owens <kaos@ocs.com.au> November 2000.
- */
-
-#ident "$Id$"
-
-#include "../insmod.h"
-#include <sys/types.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-//#include <alloca.h> provided by stdlib
-#include <limits.h>
-#include <ctype.h>
-#include <errno.h>
-#include <stddef.h>
-#include <getopt.h>
-#include <sys/stat.h>
-#include <sys/file.h>
-
-#include "module.h"
-#include "obj.h"
-#include "kallsyms.h"
-#include "util.h"
-#include "version.h"
-
-#include "modstat.h"
-#include "config.h"
-
-#define STRVERSIONLEN 32
-
-/*======================================================================*/
-
-static int flag_force_load = 0;
-static int flag_silent_probe = 0;
-static int flag_export = 1;
-static int flag_load_map = 0;
-static int flag_ksymoops = 1;
-
-static int n_ext_modules_used;
-static int m_has_modinfo;
-
-extern int insmod_main(int argc, char **argv);
-extern int insmod_main_32(int argc, char **argv);
-extern int insmod_main_64(int argc, char **argv);
-extern int modprobe_main(int argc, char **argv);
-extern int rmmod_main(int argc, char **argv);
-extern int ksyms_main(int argc, char **argv);
-extern int lsmod_main(int argc, char **argv);
-extern int kallsyms_main(int argc, char **argv);
-
-/*======================================================================*/
-
-/* Get the kernel version in the canonical integer form. */
-
-static int get_kernel_version(char str[STRVERSIONLEN])
-{
- char *p, *q;
- int a, b, c;
-
- strncpy(str, uts_info.release, STRVERSIONLEN);
- p = uts_info.release;
-
- a = strtoul(p, &p, 10);
- if (*p != '.')
- return -1;
- b = strtoul(p + 1, &p, 10);
- if (*p != '.')
- return -1;
- c = strtoul(p + 1, &q, 10);
- if (p + 1 == q)
- return -1;
-
- return a << 16 | b << 8 | c;
-}
-
-/* String comparison for non-co-versioned kernel and module.
- * prefix should be the same as used by genksyms for this kernel.
- */
-static char *ncv_prefix = NULL; /* Overridden by --prefix option */
-static int ncv_plen = 0;
-
-/* Only set prefix once. If set by the user, use it. If not set by the
- * user, look for a well known kernel symbol and derive the prefix from
- * there. Otherwise set the prefix depending on whether uts_info
- * includes SMP or not for backwards compatibility.
- */
-static void set_ncv_prefix(char *prefix)
-{
- static char derived_prefix[256];
- static const char *well_known_symbol[] = { "get_module_symbol_R",
- "inter_module_get_R",
- };
- struct module_symbol *s;
- int i, j, l, m, pl;
- const char *name;
- char *p;
-
- if (ncv_prefix)
- return;
-
- if (prefix)
- ncv_prefix = prefix;
- else {
- /* Extract the prefix (if any) from well known symbols */
- for (i = 0, s = ksyms; i < nksyms; ++i, ++s) {
- name = (char *) s->name;
- l = strlen(name);
- for (j = 0; j < sizeof(well_known_symbol)/sizeof(well_known_symbol[0]); ++j) {
- m = strlen(well_known_symbol[j]);
- if (m + 8 > l ||
- strncmp(name, well_known_symbol[j], m))
- continue;
- pl = l - m - 8;
- if (pl > sizeof(derived_prefix)-1)
- continue; /* Prefix is wrong length */
- /* Must end with 8 hex digits */
- (void) strtoul(name+l-8, &p, 16);
- if (*p == 0) {
- strncpy(derived_prefix, name+m, pl);
- *(derived_prefix+pl) = '\0';
- ncv_prefix = derived_prefix;
- break;
- }
- }
- }
- }
- if (!ncv_prefix) {
- p = strchr(uts_info.version, ' ');
- if (p && *(++p) && !strncmp(p, "SMP ", 4))
- ncv_prefix = "smp_";
- else
- ncv_prefix = "";
- }
- ncv_plen = strlen(ncv_prefix);
- if (flag_verbose)
- lprintf("Symbol version prefix '%s'", ncv_prefix);
-}
-
-static int ncv_strcmp(const char *a, const char *b)
-{
- size_t alen = strlen(a), blen = strlen(b);
-
- if (blen == alen + 10 + ncv_plen &&
- b[alen] == '_' &&
- b[alen + 1] == 'R' &&
- !(ncv_plen && strncmp(b + alen + 2, ncv_prefix, ncv_plen))) {
- return strncmp(a, b, alen);
- } else if (alen == blen + 10 + ncv_plen &&
- a[blen] == '_' && a[blen + 1] == 'R' &&
- !(ncv_plen && strncmp(a + blen + 2, ncv_prefix, ncv_plen))) {
- return strncmp(a, b, blen);
- } else
- return strcmp(a, b);
-}
-
-/*
- * String hashing for non-co-versioned kernel and module.
- * Here we are simply forced to drop the crc from the hash.
- */
-static unsigned long ncv_symbol_hash(const char *str)
-{
- size_t len = strlen(str);
-
- if (len > 10 + ncv_plen &&
- str[len - 10 - ncv_plen] == '_' &&
- str[len - 9 - ncv_plen] == 'R' &&
- !(
- ncv_plen &&
- strncmp(str + len - (8 + ncv_plen), ncv_prefix, ncv_plen)
- ))
- len -= 10 + ncv_plen;
- return obj_elf_hash_n(str, len);
-}
-
-/*
- * Conditionally add the symbols from the given symbol set
- * to the new module.
- */
-static int add_symbols_from(struct obj_file *f, int idx,
- struct module_symbol *syms, size_t nsyms)
-{
- struct module_symbol *s;
- size_t i;
- int used = 0;
-
- for (i = 0, s = syms; i < nsyms; ++i, ++s) {
- /*
- * Only add symbols that are already marked external.
- * If we override locals we may cause problems for
- * argument initialization.
- * We will also create a false dependency on the module.
- */
- struct obj_symbol *sym;
-
- sym = obj_find_symbol(f, (char *) s->name);
- if (sym && !ELFW(ST_BIND) (sym->info) == STB_LOCAL) {
- sym = obj_add_symbol(f, (char *) s->name, -1,
- ELFW(ST_INFO) (STB_GLOBAL, STT_NOTYPE),
- idx, s->value, 0);
- /*
- * Did our symbol just get installed?
- * If so, mark the module as "used".
- */
- if (sym->secidx == idx)
- used = 1;
- }
- }
-
- return used;
-}
-
-static void add_kernel_symbols(struct obj_file *f)
-{
- struct module_stat *m;
- size_t i, nused = 0;
-
- /* Add module symbols first. */
- for (i = 0, m = module_stat; i < n_module_stat; ++i, ++m)
- if (m->nsyms &&
- add_symbols_from(f, SHN_HIRESERVE + 2 + i, m->syms, m->nsyms))
- m->status = 1 /* used */, ++nused;
- n_ext_modules_used = nused;
-
- /* And finally the symbols from the kernel proper. */
- if (nksyms)
- add_symbols_from(f, SHN_HIRESERVE + 1, ksyms, nksyms);
-}
-
-static void hide_special_symbols(struct obj_file *f)
-{
- struct obj_symbol *sym;
- const char *const *p;
- static const char *const specials[] =
- {
- "cleanup_module",
- "init_module",
- "kernel_version",
- NULL
- };
-
- for (p = specials; *p; ++p)
- if ((sym = obj_find_symbol(f, *p)) != NULL)
- sym->info = ELFW(ST_INFO) (STB_LOCAL, ELFW(ST_TYPE) (sym->info));
-}
-
-static void print_load_map(struct obj_file *f)
-{
- struct obj_symbol *sym;
- struct obj_symbol **all, **p;
- struct obj_section *sec;
- int load_map_cmp(const void *a, const void *b) {
- struct obj_symbol **as = (struct obj_symbol **) a;
- struct obj_symbol **bs = (struct obj_symbol **) b;
- unsigned long aa = obj_symbol_final_value(f, *as);
- unsigned long ba = obj_symbol_final_value(f, *bs);
- return aa < ba ? -1 : aa > ba ? 1 : 0;
- }
- int i, nsyms, *loaded;
-
- /* Report on the section layout. */
-
- lprintf("Sections: Size %-*s Align",
- (int) (2 * sizeof(void *)), "Address");
-
- for (sec = f->load_order; sec; sec = sec->load_next) {
- int a;
- unsigned long tmp;
-
- for (a = -1, tmp = sec->header.sh_addralign; tmp; ++a)
- tmp >>= 1;
- if (a == -1)
- a = 0;
-
- lprintf("%-16s%08lx %0*lx 2**%d",
- sec->name,
- (long)sec->header.sh_size,
- (int) (2 * sizeof(void *)),
- (long)sec->header.sh_addr,
- a);
- }
-
- /* Quick reference which section indicies are loaded. */
-
- loaded = alloca(sizeof(int) * (i = f->header.e_shnum));
- while (--i >= 0)
- loaded[i] = (f->sections[i]->header.sh_flags & SHF_ALLOC) != 0;
-
- /* Collect the symbols we'll be listing. */
-
- for (nsyms = i = 0; i < HASH_BUCKETS; ++i)
- for (sym = f->symtab[i]; sym; sym = sym->next)
- if (sym->secidx <= SHN_HIRESERVE
- && (sym->secidx >= SHN_LORESERVE || loaded[sym->secidx]))
- ++nsyms;
-
- all = alloca(nsyms * sizeof(struct obj_symbol *));
-
- for (i = 0, p = all; i < HASH_BUCKETS; ++i)
- for (sym = f->symtab[i]; sym; sym = sym->next)
- if (sym->secidx <= SHN_HIRESERVE
- && (sym->secidx >= SHN_LORESERVE || loaded[sym->secidx]))
- *p++ = sym;
-
- /* Sort them by final value. */
- qsort(all, nsyms, sizeof(struct obj_file *), load_map_cmp);
-
- /* And list them. */
- lprintf("\nSymbols:");
- for (p = all; p < all + nsyms; ++p) {
- char type = '?';
- unsigned long value;
-
- sym = *p;
- if (sym->secidx == SHN_ABS) {
- type = 'A';
- value = sym->value;
- } else if (sym->secidx == SHN_UNDEF) {
- type = 'U';
- value = 0;
- } else {
- struct obj_section *sec = f->sections[sym->secidx];
-
- if (sec->header.sh_type == SHT_NOBITS)
- type = 'B';
- else if (sec->header.sh_flags & SHF_ALLOC) {
- if (sec->header.sh_flags & SHF_EXECINSTR)
- type = 'T';
- else if (sec->header.sh_flags & SHF_WRITE)
- type = 'D';
- else
- type = 'R';
- }
- value = sym->value + sec->header.sh_addr;
- }
-
- if (ELFW(ST_BIND) (sym->info) == STB_LOCAL)
- type = tolower(type);
-
- lprintf("%0*lx %c %s", (int) (2 * sizeof(void *)), value,
- type, sym->name);
- }
-}
-
-/************************************************************************/
-/* begin compat */
-
-static char * get_modinfo_value(struct obj_file *f, const char *key)
-{
- struct obj_section *sec;
- char *p, *v, *n, *ep;
- size_t klen = strlen(key);
-
- sec = obj_find_section(f, ".modinfo");
- if (sec == NULL)
- return NULL;
-
- p = sec->contents;
- ep = p + sec->header.sh_size;
- while (p < ep) {
- v = strchr(p, '=');
- n = strchr(p, '\0');
- if (v) {
- if (v - p == klen && strncmp(p, key, klen) == 0)
- return v + 1;
- } else {
- if (n - p == klen && strcmp(p, key) == 0)
- return n;
- }
- p = n + 1;
- }
-
- return NULL;
-}
-
-static int create_this_module(struct obj_file *f, const char *m_name)
-{
- struct obj_section *sec;
-
- sec = obj_create_alloced_section_first(f, ".this", tgt_sizeof_long,
- sizeof(struct module));
- memset(sec->contents, 0, sizeof(struct module));
-
- obj_add_symbol(f, "__this_module", -1, ELFW(ST_INFO) (STB_LOCAL, STT_OBJECT),
- sec->idx, 0, sizeof(struct module));
-
- obj_string_patch(f, sec->idx, offsetof(struct module, name), m_name);
-
- return 1;
-}
-
-#ifdef COMPAT_2_0
-static int old_create_mod_use_count(struct obj_file *f)
-{
- struct obj_section *sec;
- struct obj_symbol *got;
-
- sec = obj_create_alloced_section_first(f, ".moduse",
- sizeof(long), sizeof(long));
-
- obj_add_symbol(f, "mod_use_count_",
- -1, ELFW(ST_INFO)(STB_LOCAL, STT_OBJECT),
- sec->idx, 0, sizeof(long));
-
- /*
- * patb: if there is a _GLOBAL_OFFSET_TABLE_,
- * add .got section for PIC type modules;
- * we have to do this here, because obj_* calls are not made until
- * after obj_check_undefined
- * is there a better place for this exception?
- */
- got = obj_find_symbol(f, "_GLOBAL_OFFSET_TABLE_");
- if (got)
-{
- sec = obj_create_alloced_section(f, ".got",
- sizeof(long), sizeof(long));
- got->secidx = sec->idx; /* mark the symbol as defined */
- }
- return 1;
-}
-#endif
-
-/* add an entry to the __ksymtab section, creating it if necessary */
-static void add_ksymtab(struct obj_file *f, struct obj_symbol *sym)
-{
- struct obj_section *sec;
- ElfW(Addr) ofs;
-
- /* ensure __ksymtab is allocated, EXPORT_NOSYMBOLS creates a non-alloc section.
- * If __ksymtab is defined but not marked alloc, x out the first character
- * (no obj_delete routine) and create a new __ksymtab with the correct
- * characteristics.
- */
- sec = obj_find_section(f, "__ksymtab");
- if (sec && !(sec->header.sh_flags & SHF_ALLOC)) {
- *((char *)(sec->name)) = 'x'; /* override const */
- sec = NULL;
- }
- if (!sec)
- sec = obj_create_alloced_section(f, "__ksymtab", tgt_sizeof_void_p, 0);
- if (!sec)
- return;
- sec->header.sh_flags |= SHF_ALLOC;
-
- ofs = sec->header.sh_size;
- obj_symbol_patch(f, sec->idx, ofs, sym);
- obj_string_patch(f, sec->idx, ofs + tgt_sizeof_void_p, sym->name);
- obj_extend_section(sec, 2 * tgt_sizeof_char_p);
-}
-
-static int create_module_ksymtab(struct obj_file *f)
-{
- struct obj_section *sec;
- int i;
-
- /* We must always add the module references. */
-
- if (n_ext_modules_used) {
- struct module_ref *dep;
- struct obj_symbol *tm;
-
- sec = obj_create_alloced_section(f, ".kmodtab", tgt_sizeof_void_p,
- (sizeof(struct module_ref)
- * n_ext_modules_used));
- if (!sec)
- return 0;
-
- tm = obj_find_symbol(f, "__this_module");
- dep = (struct module_ref *) sec->contents;
- for (i = 0; i < n_module_stat; ++i)
- if (module_stat[i].status /* used */) {
- dep->dep = module_stat[i].addr;
- obj_symbol_patch(f, sec->idx, (char *) &dep->ref - sec->contents, tm);
- dep->next_ref = 0;
- ++dep;
- }
- }
- if (flag_export && !obj_find_section(f, "__ksymtab")) {
- int *loaded;
-
- /* We don't want to export symbols residing in sections that
- aren't loaded. There are a number of these created so that
- we make sure certain module options don't appear twice. */
-
- loaded = alloca(sizeof(int) * (i = f->header.e_shnum));
- while (--i >= 0)
- loaded[i] = (f->sections[i]->header.sh_flags & SHF_ALLOC) != 0;
-
- for (i = 0; i < HASH_BUCKETS; ++i) {
- struct obj_symbol *sym;
- for (sym = f->symtab[i]; sym; sym = sym->next) {
- if (ELFW(ST_BIND) (sym->info) != STB_LOCAL
- && sym->secidx <= SHN_HIRESERVE
- && (sym->secidx >= SHN_LORESERVE
- || loaded[sym->secidx])) {
- add_ksymtab(f, sym);
- }
- }
- }
- }
- return 1;
-}
-
-/* Get the module's kernel version in the canonical integer form. */
-static int get_module_version(struct obj_file *f, char str[STRVERSIONLEN])
-{
- int a, b, c;
- char *p, *q;
-
- if ((p = get_modinfo_value(f, "kernel_version")) == NULL) {
- struct obj_symbol *sym;
-
- m_has_modinfo = 0;
- if ((sym = obj_find_symbol(f, "kernel_version")) == NULL)
- sym = obj_find_symbol(f, "__module_kernel_version");
- if (sym == NULL)
- return -1;
- p = f->sections[sym->secidx]->contents + sym->value;
- } else
- m_has_modinfo = 1;
-
- strncpy(str, p, STRVERSIONLEN);
-
- a = strtoul(p, &p, 10);
- if (*p != '.')
- return -1;
- b = strtoul(p + 1, &p, 10);
- if (*p != '.')
- return -1;
- c = strtoul(p + 1, &q, 10);
- if (p + 1 == q)
- return -1;
-
- return a << 16 | b << 8 | c;
-}
-
-/* Return the kernel symbol checksum version, or zero if not used. */
-static int is_kernel_checksummed(void)
-{
- struct module_symbol *s;
- size_t i;
-
- /*
- * Using_Versions might not be the first symbol,
- * but it should be in there.
- */
- for (i = 0, s = ksyms; i < nksyms; ++i, ++s)
- if (strcmp((char *) s->name, "Using_Versions") == 0)
- return s->value;
-
- return 0;
-}
-
-static int is_module_checksummed(struct obj_file *f)
-{
- if (m_has_modinfo) {
- const char *p = get_modinfo_value(f, "using_checksums");
- if (p)
- return atoi(p);
- else
- return 0;
- } else
- return obj_find_symbol(f, "Using_Versions") != NULL;
-}
-
-/* add module source, timestamp, kernel version and a symbol for the
- * start of some sections. this info is used by ksymoops to do better
- * debugging.
- */
-static void add_ksymoops_symbols(struct obj_file *f, const char *filename,
- const char *m_name)
-{
- struct obj_section *sec;
- struct obj_symbol *sym;
- char *name, *absolute_filename;
- char str[STRVERSIONLEN], real[PATH_MAX];
- int i, l, lm_name, lfilename, use_ksymtab, version;
- struct stat statbuf;
-
- static const char *section_names[] = {
- ".text",
- ".rodata",
- ".data",
- ".bss"
- };
-
- if (realpath(filename, real)) {
- absolute_filename = xstrdup(real);
- }
- else {
- int save_errno = errno;
- error("cannot get realpath for %s", filename);
- errno = save_errno;
- absolute_filename = xstrdup(filename);
- }
-
- lm_name = strlen(m_name);
- lfilename = strlen(absolute_filename);
-
- /* add to ksymtab if it already exists or there is no ksymtab and other symbols
- * are not to be exported. otherwise leave ksymtab alone for now, the
- * "export all symbols" compatibility code will export these symbols later.
- */
-
- use_ksymtab = obj_find_section(f, "__ksymtab") || !flag_export;
-
- if ((sec = obj_find_section(f, ".this"))) {
- /* tag the module header with the object name, last modified
- * timestamp and module version. worst case for module version
- * is 0xffffff, decimal 16777215. putting all three fields in
- * one symbol is less readable but saves kernel space.
- */
- l = sizeof(symprefix)+ /* "__insmod_" */
- lm_name+ /* module name */
- 2+ /* "_O" */
- lfilename+ /* object filename */
- 2+ /* "_M" */
- 2*sizeof(statbuf.st_mtime)+ /* mtime in hex */
- 2+ /* "_V" */
- 8+ /* version in dec */
- 1; /* nul */
- name = xmalloc(l);
- if (stat(absolute_filename, &statbuf) != 0)
- statbuf.st_mtime = 0;
- version = get_module_version(f, str); /* -1 if not found */
- snprintf(name, l, "%s%s_O%s_M%0*lX_V%d",
- symprefix, m_name, absolute_filename,
- 2*sizeof(statbuf.st_mtime), statbuf.st_mtime,
- version);
- sym = obj_add_symbol(f, name, -1,
- ELFW(ST_INFO) (STB_GLOBAL, STT_NOTYPE),
- sec->idx, sec->header.sh_addr, 0);
- if (use_ksymtab)
- add_ksymtab(f, sym);
- }
- free(absolute_filename);
-
- /* record where the persistent data is going, same address as previous symbol */
-
- if (f->persist) {
- l = sizeof(symprefix)+ /* "__insmod_" */
- lm_name+ /* module name */
- 2+ /* "_P" */
- strlen(f->persist)+ /* data store */
- 1; /* nul */
- name = xmalloc(l);
- snprintf(name, l, "%s%s_P%s",
- symprefix, m_name, f->persist);
- sym = obj_add_symbol(f, name, -1, ELFW(ST_INFO) (STB_GLOBAL, STT_NOTYPE),
- sec->idx, sec->header.sh_addr, 0);
- if (use_ksymtab)
- add_ksymtab(f, sym);
- }
-
- /* tag the desired sections if size is non-zero */
-
- for (i = 0; i < sizeof(section_names)/sizeof(section_names[0]); ++i) {
- if ((sec = obj_find_section(f, section_names[i])) &&
- sec->header.sh_size) {
- l = sizeof(symprefix)+ /* "__insmod_" */
- lm_name+ /* module name */
- 2+ /* "_S" */
- strlen(sec->name)+ /* section name */
- 2+ /* "_L" */
- 8+ /* length in dec */
- 1; /* nul */
- name = xmalloc(l);
- snprintf(name, l, "%s%s_S%s_L%ld",
- symprefix, m_name, sec->name,
- (long)sec->header.sh_size);
- sym = obj_add_symbol(f, name, -1, ELFW(ST_INFO) (STB_GLOBAL, STT_NOTYPE),
- sec->idx, sec->header.sh_addr, 0);
- if (use_ksymtab)
- add_ksymtab(f, sym);
- }
- }
-}
-
-static int process_module_arguments(struct obj_file *f, int argc, char **argv, int required)
-{
- for (; argc > 0; ++argv, --argc) {
- struct obj_symbol *sym;
- int c;
- int min, max;
- int n;
- char *contents;
- char *input;
- char *fmt;
- char *key;
- char *loc;
-
- if ((input = strchr(*argv, '=')) == NULL)
- continue;
-
- n = input - *argv;
- input += 1; /* skip '=' */
-
- key = alloca(n + 6);
-
- if (m_has_modinfo) {
- memcpy(key, "parm_", 5);
- memcpy(key + 5, *argv, n);
- key[n + 5] = '\0';
- if ((fmt = get_modinfo_value(f, key)) == NULL) {
- if (required) {
- error("invalid parameter %s", key);
- return 0;
- }
- else {
- if (flag_verbose)
- lprintf("ignoring %s", *argv);
- continue; /* silently ignore optional parameters */
- }
- }
- key += 5;
-
- if (isdigit(*fmt)) {
- min = strtoul(fmt, &fmt, 10);
- if (*fmt == '-')
- max = strtoul(fmt + 1, &fmt, 10);
- else
- max = min;
- } else
- min = max = 1;
- } else { /* not m_has_modinfo */
- memcpy(key, *argv, n);
- key[n] = '\0';
-
- if (isdigit(*input))
- fmt = "i";
- else
- fmt = "s";
- min = max = 0;
- }
-
- sym = obj_find_symbol(f, key);
-
- /*
- * Also check that the parameter was not
- * resolved from the kernel.
- */
- if (sym == NULL || sym->secidx > SHN_HIRESERVE) {
- error("symbol for parameter %s not found", key);
- return 0;
- }
-
- contents = f->sections[sym->secidx]->contents;
- loc = contents + sym->value;
- n = 1;
-
- while (*input) {
- char *str;
-
- switch (*fmt) {
- case 's':
- case 'c':
- /*
- * Do C quoting if we begin with a ",
- * else slurp the lot.
- */
- if (*input == '"') {
- char *r;
-
- str = alloca(strlen(input));
- for (r = str, input++; *input != '"'; ++input, ++r) {
- if (*input == '\0') {
- error("improperly terminated string argument for %s", key);
- return 0;
- }
- /* else */
- if (*input != '\\') {
- *r = *input;
- continue;
- }
- /* else handle \ */
- switch (*++input) {
- case 'a': *r = '\a'; break;
- case 'b': *r = '\b'; break;
- case 'e': *r = '\033'; break;
- case 'f': *r = '\f'; break;
- case 'n': *r = '\n'; break;
- case 'r': *r = '\r'; break;
- case 't': *r = '\t'; break;
-
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- c = *input - '0';
- if ('0' <= input[1] && input[1] <= '7') {
- c = (c * 8) + *++input - '0';
- if ('0' <= input[1] && input[1] <= '7')
- c = (c * 8) + *++input - '0';
- }
- *r = c;
- break;
-
- default: *r = *input; break;
- }
- }
- *r = '\0';
- ++input;
- } else {
- /*
- * The string is not quoted.
- * We will break it using the comma
- * (like for ints).
- * If the user wants to include commas
- * in a string, he just has to quote it
- */
- char *r;
-
- /* Search the next comma */
- if ((r = strchr(input, ',')) != NULL) {
- /*
- * Found a comma
- * Recopy the current field
- */
- str = alloca(r - input + 1);
- memcpy(str, input, r - input);
- str[r - input] = '\0';
- /* Keep next fields */
- input = r;
- } else {
- /* last string */
- str = input;
- input = "";
- }
- }
-
- if (*fmt == 's') {
- /* Normal string */
- obj_string_patch(f, sym->secidx, loc - contents, str);
- loc += tgt_sizeof_char_p;
- } else {
- /* Array of chars (in fact, matrix !) */
- long charssize; /* size of each member */
-
- /* Get the size of each member */
- /* Probably we should do that outside the loop ? */
- if (!isdigit(*(fmt + 1))) {
- error("parameter type 'c' for %s must be followed by"
- " the maximum size", key);
- return 0;
- }
- charssize = strtoul(fmt + 1, (char **) NULL, 10);
-
- /* Check length */
- if (strlen(str) >= charssize-1) {
- error("string too long for %s (max %ld)",
- key, charssize - 1);
- return 0;
- }
- /* Copy to location */
- strcpy((char *) loc, str); /* safe, see check above */
- loc += charssize;
- }
- /*
- * End of 's' and 'c'
- */
- break;
-
- case 'b':
- *loc++ = strtoul(input, &input, 0);
- break;
-
- case 'h':
- *(short *) loc = strtoul(input, &input, 0);
- loc += tgt_sizeof_short;
- break;
-
- case 'i':
- *(int *) loc = strtoul(input, &input, 0);
- loc += tgt_sizeof_int;
- break;
-
- case 'l':
- *(long *) loc = strtoul(input, &input, 0);
- loc += tgt_sizeof_long;
- break;
-
- default:
- error("unknown parameter type '%c' for %s",
- *fmt, key);
- return 0;
- }
- /*
- * end of switch (*fmt)
- */
-
- while (*input && isspace(*input))
- ++input;
- if (*input == '\0')
- break; /* while (*input) */
- /* else */
-
- if (*input == ',') {
- if (max && (++n > max)) {
- error("too many values for %s (max %d)", key, max);
- return 0;
- }
- ++input;
- /* continue with while (*input) */
- } else {
- error("invalid argument syntax for %s: '%c'",
- key, *input);
- return 0;
- }
- } /* end of while (*input) */
-
- if (min && (n < min)) {
- error("too few values for %s (min %d)", key, min);
- return 0;
- }
- } /* end of for (;argc > 0;) */
-
- return 1;
-}
-
-
-/* Add a kallsyms section if the kernel supports all symbols. */
-static int add_kallsyms(struct obj_file *f,
- struct obj_section **module_kallsyms, int force_kallsyms)
-{
- struct module_symbol *s;
- struct obj_file *f_kallsyms;
- struct obj_section *sec_kallsyms;
- size_t i;
- int l;
- const char *p, *pt_R;
- unsigned long start = 0, stop = 0;
-
- for (i = 0, s = ksyms; i < nksyms; ++i, ++s) {
- p = (char *)s->name;
- pt_R = strstr(p, "_R");
- if (pt_R)
- l = pt_R - p;
- else
- l = strlen(p);
- if (strncmp(p, "__start_" KALLSYMS_SEC_NAME, l) == 0)
- start = s->value;
- else if (strncmp(p, "__stop_" KALLSYMS_SEC_NAME, l) == 0)
- stop = s->value;
- }
-
- if (start >= stop && !force_kallsyms)
- return(0);
-
- /* The kernel contains all symbols, do the same for this module. */
-
- /* Add an empty kallsyms section to the module if necessary */
- for (i = 0; i < f->header.e_shnum; ++i) {
- if (strcmp(f->sections[i]->name, KALLSYMS_SEC_NAME) == 0) {
- *module_kallsyms = f->sections[i];
- break;
- }
- }
- if (!*module_kallsyms)
- *module_kallsyms = obj_create_alloced_section(f, KALLSYMS_SEC_NAME, 0, 0);
-
- /* Size and populate kallsyms */
- if (obj_kallsyms(f, &f_kallsyms))
- return(1);
- sec_kallsyms = f_kallsyms->sections[KALLSYMS_IDX];
- (*module_kallsyms)->header.sh_addralign = sec_kallsyms->header.sh_addralign;
- (*module_kallsyms)->header.sh_size = sec_kallsyms->header.sh_size;
- free((*module_kallsyms)->contents);
- (*module_kallsyms)->contents = sec_kallsyms->contents;
- sec_kallsyms->contents = NULL;
- obj_free(f_kallsyms);
-
- return 0;
-}
-
-
-/* Add an arch data section if the arch wants it. */
-static int add_archdata(struct obj_file *f,
- struct obj_section **sec)
-{
- size_t i;
-
- *sec = NULL;
- /* Add an empty archdata section to the module if necessary */
- for (i = 0; i < f->header.e_shnum; ++i) {
- if (strcmp(f->sections[i]->name, ARCHDATA_SEC_NAME) == 0) {
- *sec = f->sections[i];
- break;
- }
- }
- if (!*sec)
- *sec = obj_create_alloced_section(f, ARCHDATA_SEC_NAME, 16, 0);
-
- /* Size and populate archdata */
- if (arch_archdata(f, *sec))
- return(1);
- return 0;
-}
-
-
-static int init_module(const char *m_name, struct obj_file *f,
- unsigned long m_size, const char *blob_name,
- unsigned int noload, unsigned int flag_load_map)
-{
- struct module *module;
- struct obj_section *sec;
- void *image;
- int ret = 0;
- tgt_long m_addr;
-
- sec = obj_find_section(f, ".this");
- module = (struct module *) sec->contents;
- m_addr = sec->header.sh_addr;
-
- module->size_of_struct = sizeof(*module);
- module->size = m_size;
- module->flags = flag_autoclean ? NEW_MOD_AUTOCLEAN : 0;
-
- sec = obj_find_section(f, "__ksymtab");
- if (sec && sec->header.sh_size) {
- module->syms = sec->header.sh_addr;
- module->nsyms = sec->header.sh_size / (2 * tgt_sizeof_char_p);
- }
- if (n_ext_modules_used) {
- sec = obj_find_section(f, ".kmodtab");
- module->deps = sec->header.sh_addr;
- module->ndeps = n_ext_modules_used;
- }
- module->init = obj_symbol_final_value(f, obj_find_symbol(f, "init_module"));
- module->cleanup = obj_symbol_final_value(f,
- obj_find_symbol(f, "cleanup_module"));
-
- sec = obj_find_section(f, "__ex_table");
- if (sec) {
- module->ex_table_start = sec->header.sh_addr;
- module->ex_table_end = sec->header.sh_addr + sec->header.sh_size;
- }
- sec = obj_find_section(f, ".text.init");
- if (sec) {
- module->runsize = sec->header.sh_addr - m_addr;
- }
- sec = obj_find_section(f, ".data.init");
- if (sec) {
- if (!module->runsize ||
- module->runsize > sec->header.sh_addr - m_addr)
- module->runsize = sec->header.sh_addr - m_addr;
- }
- sec = obj_find_section(f, ARCHDATA_SEC_NAME);
- if (sec && sec->header.sh_size) {
- module->archdata_start = sec->header.sh_addr;
- module->archdata_end = module->archdata_start + sec->header.sh_size;
- }
- sec = obj_find_section(f, KALLSYMS_SEC_NAME);
- if (sec && sec->header.sh_size) {
- module->kallsyms_start = sec->header.sh_addr;
- module->kallsyms_end = module->kallsyms_start + sec->header.sh_size;
- }
- if (!arch_init_module(f, module))
- return 0;
-
- /*
- * Whew! All of the initialization is complete.
- * Collect the final module image and give it to the kernel.
- */
- image = xmalloc(m_size);
- obj_create_image(f, image);
-
- if (flag_load_map)
- print_load_map(f);
-
- if (blob_name) {
- int fd, l;
- fd = open(blob_name, O_WRONLY|O_CREAT|O_TRUNC, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);
- if (fd < 0) {
- error("open %s failed %m", blob_name);
- ret = -1;
- }
- else {
- if ((l = write(fd, image, m_size)) != m_size) {
- error("write %s failed %m", blob_name);
- ret = -1;
- }
- close(fd);
- }
- }
-
- if (ret == 0 && !noload) {
- fflush(stdout); /* Flush any debugging output */
- ret = sys_init_module(m_name, (struct module *) image);
- if (ret) {
- error("init_module: %m");
- lprintf("Hint: insmod errors can be caused by incorrect module parameters, "
- "including invalid IO or IRQ parameters");
- }
- }
-
- free(image);
-
- return ret == 0;
-}
-
-#ifdef COMPAT_2_0
-static int old_init_module(const char *m_name, struct obj_file *f,
- unsigned long m_size)
-{
- char *image;
- struct old_mod_routines routines;
- struct old_symbol_table *symtab;
- int ret;
- int nsyms = 0, strsize = 0, total;
-
- /* Create the symbol table */
- /* Size things first... */
- if (flag_export) {
- int i;
- for (i = 0; i < HASH_BUCKETS; ++i) {
- struct obj_symbol *sym;
-
- for (sym = f->symtab[i]; sym; sym = sym->next)
- if (ELFW(ST_BIND) (sym->info) != STB_LOCAL &&
- sym->secidx <= SHN_HIRESERVE) {
- sym->ksymidx = nsyms++;
- strsize += strlen(sym->name) + 1;
- }
- }
- }
- total = (sizeof(struct old_symbol_table) +
- nsyms * sizeof(struct old_module_symbol) +
- n_ext_modules_used * sizeof(struct old_module_ref) +
- strsize);
- symtab = xmalloc(total);
- symtab->size = total;
- symtab->n_symbols = nsyms;
- symtab->n_refs = n_ext_modules_used;
-
- if (flag_export && nsyms) {
- struct old_module_symbol *ksym;
- char *str;
- int i;
-
- ksym = symtab->symbol;
- str = ((char *) ksym +
- nsyms * sizeof(struct old_module_symbol) +
- n_ext_modules_used * sizeof(struct old_module_ref));
-
- for (i = 0; i < HASH_BUCKETS; ++i) {
- struct obj_symbol *sym;
- for (sym = f->symtab[i]; sym; sym = sym->next)
- if (sym->ksymidx >= 0) {
- ksym->addr = obj_symbol_final_value(f, sym);
- ksym->name = (unsigned long) str - (unsigned long) symtab;
-
- str = stpcpy(str, sym->name) + 1;
- ksym++;
- }
- }
- }
-
- if (n_ext_modules_used) {
- struct old_module_ref *ref;
- int i;
-
- ref = (struct old_module_ref *)
- ((char *) symtab->symbol + nsyms * sizeof(struct old_module_symbol));
-
- for (i = 0; i < n_module_stat; ++i) {
- if (module_stat[i].status /* used */) {
- ref++->module = module_stat[i].modstruct;
- }
- }
- }
-
- /* Fill in routines. */
-
- routines.init = obj_symbol_final_value(f, obj_find_symbol(f, "init_module"));
- routines.cleanup = obj_symbol_final_value(f,
- obj_find_symbol(f, "cleanup_module"));
-
- /*
- * Whew! All of the initialization is complete.
- * Collect the final module image and give it to the kernel.
- */
- image = xmalloc(m_size);
- obj_create_image(f, image);
-
- /*
- * image holds the complete relocated module,
- * accounting correctly for mod_use_count.
- * However the old module kernel support assume that it
- * is receiving something which does not contain mod_use_count.
- */
- ret = old_sys_init_module(m_name, image + sizeof(long),
- (m_size - sizeof(long)) |
- (flag_autoclean ? OLD_MOD_AUTOCLEAN : 0),
- &routines,
- symtab);
- if (ret)
- error("init_module: %m");
-
- free(image);
- free(symtab);
-
- return ret == 0;
-}
-#endif
-/* end compat */
-/************************************************************************/
-
-/* Check that a module parameter has a reasonable definition */
-static int check_module_parameter(struct obj_file *f, char *key, char *value, int *persist_flag)
-{
- struct obj_symbol *sym;
- int min, max;
- char *p = value;
-
- sym = obj_find_symbol(f, key);
- if (sym == NULL) {
- /* FIXME: For 2.2 kernel compatibility, only issue warnings for
- * most error conditions. Make these all errors in 2.5.
- */
- lprintf("Warning: %s symbol for parameter %s not found", error_file, key);
- return(1);
- }
-
- if (isdigit(*p)) {
- min = strtoul(p, &p, 10);
- if (*p == '-')
- max = strtoul(p + 1, &p, 10);
- else
- max = min;
- } else
- min = max = 1;
-
- if (max < min) {
- lprintf("Warning: %s parameter %s has max < min!", error_file, key);
- return(1);
- }
-
- switch (*p) {
- case 'c':
- if (!isdigit(p[1])) {
- lprintf("%s parameter %s has no size after 'c'!", error_file, key);
- return(1);
- }
- while (isdigit(p[1]))
- ++p; /* swallow c array size */
- break;
- case 'b': /* drop through */
- case 'h': /* drop through */
- case 'i': /* drop through */
- case 'l': /* drop through */
- case 's':
- break;
- case '\0':
- lprintf("%s parameter %s has no format character!", error_file, key);
- return(1);
- default:
- lprintf("%s parameter %s has unknown format character '%c'", error_file, key, *p);
- return(1);
- }
- switch (*++p) {
- case 'p':
- if (*(p-1) == 's') {
- error("parameter %s is invalid persistent string", key);
- return(1);
- }
- *persist_flag = 1;
- break;
- case '\0':
- break;
- default:
- lprintf("%s parameter %s has unknown format modifier '%c'", error_file, key, *p);
- return(1);
- }
- return(0);
-}
-
-/* Check that all module parameters have reasonable definitions */
-static void check_module_parameters(struct obj_file *f, int *persist_flag)
-{
- struct obj_section *sec;
- char *ptr, *value, *n, *endptr;
- int namelen, err = 0;
-
- sec = obj_find_section(f, ".modinfo");
- if (sec == NULL) {
- /* module does not support typed parameters */
- return;
- }
-
- ptr = sec->contents;
- endptr = ptr + sec->header.sh_size;
- while (ptr < endptr && !err) {
- value = strchr(ptr, '=');
- n = strchr(ptr, '\0');
- if (value) {
- namelen = value - ptr;
- if (namelen >= 5 && strncmp(ptr, "parm_", 5) == 0
- && !(namelen > 10 && strncmp(ptr, "parm_desc_", 10) == 0)) {
- char *pname = xmalloc(namelen + 1);
- strncpy(pname, ptr + 5, namelen - 5);
- pname[namelen - 5] = '\0';
- err = check_module_parameter(f, pname, value+1, persist_flag);
- free(pname);
- }
- } else {
- if (n - ptr >= 5 && strncmp(ptr, "parm_", 5) == 0) {
- error("parameter %s found with no value", ptr);
- err = 1;
- }
- }
- ptr = n + 1;
- }
-
- if (err)
- *persist_flag = 0;
- return;
-}
-
-
-/* For common 3264 code, only compile the usage message once, in the 64 bit version */
-#if defined(COMMON_3264) && defined(ONLY_32)
-extern void insmod_usage(void); /* Use the copy in the 64 bit version */
-#else /* Common 64 bit version or any non common code - compile usage routine */
-void insmod_usage(void)
-{
- fputs("Usage:\n"
- "insmod [-fhkLmnpqrsSvVxXyY] [-e persist_name] [-o module_name] [-O blob_name] [-P prefix] module [ symbol=value ... ]\n"
- "\n"
- " module Name of a loadable kernel module ('.o' can be omitted)\n"
- " -f, --force Force loading under wrong kernel version\n"
- " -h, --help Print this message\n"
- " -k, --autoclean Make module autoclean-able\n"
- " -L, --lock Prevent simultaneous loads of the same module\n"
- " -m, --map Generate load map (so crashes can be traced)\n"
- " -n, --noload Don't load, just show\n"
- " -p, --probe Probe mode; check if the module matches the kernel\n"
- " -q, --quiet Don't print unresolved symbols\n"
- " -r, --root Allow root to load modules not owned by root\n"
- " -s, --syslog Report errors via syslog\n"
- " -S, --kallsyms Force kallsyms on module\n"
- " -v, --verbose Verbose output\n"
- " -V, --version Show version\n"
- " -x, --noexport Do not export externs\n"
- " -X, --export Do export externs (default)\n"
- " -y, --noksymoops Do not add ksymoops symbols\n"
- " -Y, --ksymoops Do add ksymoops symbols (default)\n"
- " -e persist_name\n"
- " --persist=persist_name Filename to hold any persistent data from the module\n"
- " -o NAME, --name=NAME Set internal module name to NAME\n"
- " -O NAME, --blob=NAME Save the object as a binary blob in NAME\n"
- " -P PREFIX\n"
- " --prefix=PREFIX Prefix for kernel or module symbols\n"
- ,stderr);
- exit(1);
-}
-#endif /* defined(COMMON_3264) && defined(ONLY_32) */
-
-#if defined(COMMON_3264) && defined(ONLY_32)
-#define INSMOD_MAIN insmod_main_32 /* 32 bit version */
-#elif defined(COMMON_3264) && defined(ONLY_64)
-#define INSMOD_MAIN insmod_main_64 /* 64 bit version */
-#else
-#define INSMOD_MAIN insmod_main /* Not common code */
-#endif
-
-int INSMOD_MAIN(int argc, char **argv)
-{
- int k_version;
- int k_crcs;
- char k_strversion[STRVERSIONLEN];
- struct option long_opts[] = {
- {"force", 0, 0, 'f'},
- {"help", 0, 0, 'h'},
- {"autoclean", 0, 0, 'k'},
- {"lock", 0, 0, 'L'},
- {"map", 0, 0, 'm'},
- {"noload", 0, 0, 'n'},
- {"probe", 0, 0, 'p'},
- {"poll", 0, 0, 'p'}, /* poll is deprecated, remove in 2.5 */
- {"quiet", 0, 0, 'q'},
- {"root", 0, 0, 'r'},
- {"syslog", 0, 0, 's'},
- {"kallsyms", 0, 0, 'S'},
- {"verbose", 0, 0, 'v'},
- {"version", 0, 0, 'V'},
- {"noexport", 0, 0, 'x'},
- {"export", 0, 0, 'X'},
- {"noksymoops", 0, 0, 'y'},
- {"ksymoops", 0, 0, 'Y'},
-
- {"persist", 1, 0, 'e'},
- {"name", 1, 0, 'o'},
- {"blob", 1, 0, 'O'},
- {"prefix", 1, 0, 'P'},
- {0, 0, 0, 0}
- };
- char *m_name = NULL;
- char *blob_name = NULL; /* Save object as binary blob */
- int m_version;
- ElfW(Addr) m_addr;
- unsigned long m_size;
- int m_crcs;
- char m_strversion[STRVERSIONLEN];
- char *filename;
- char *persist_name = NULL; /* filename to hold any persistent data */
- int fp;
- struct obj_file *f;
- struct obj_section *kallsyms = NULL, *archdata = NULL;
- int o;
- int noload = 0;
- int dolock = 1; /*Note: was: 0; */
- int quiet = 0;
- int exit_status = 1;
- int force_kallsyms = 0;
- int persist_parms = 0; /* does module have persistent parms? */
- int i;
-
- error_file = "insmod";
-
- /* To handle repeated calls from combined modprobe */
- errors = optind = 0;
-
- /* Process the command line. */
- while ((o = getopt_long(argc, argv, "fhkLmnpqrsSvVxXyYe:o:O:P:R:",
- &long_opts[0], NULL)) != EOF)
- switch (o) {
- case 'f': /* force loading */
- flag_force_load = 1;
- break;
- case 'h': /* Print the usage message. */
- insmod_usage();
- break;
- case 'k': /* module loaded by kerneld, auto-cleanable */
- flag_autoclean = 1;
- break;
- case 'L': /* protect against recursion. */
- dolock = 1;
- break;
- case 'm': /* generate load map */
- flag_load_map = 1;
- break;
- case 'n': /* don't load, just check */
- noload = 1;
- break;
- case 'p': /* silent probe mode */
- flag_silent_probe = 1;
- break;
- case 'q': /* Don't print unresolved symbols */
- quiet = 1;
- break;
- case 'r': /* allow root to load non-root modules */
- root_check_off = !root_check_off;
- break;
- case 's': /* start syslog */
- setsyslog("insmod");
- break;
- case 'S': /* Force kallsyms */
- force_kallsyms = 1;
- break;
- case 'v': /* verbose output */
- flag_verbose = 1;
- break;
- case 'V':
- fputs("insmod version " MODUTILS_VERSION "\n", stderr);
- break;
- case 'x': /* do not export externs */
- flag_export = 0;
- break;
- case 'X': /* do export externs */
- flag_export = 1;
- break;
- case 'y': /* do not define ksymoops symbols */
- flag_ksymoops = 0;
- break;
- case 'Y': /* do define ksymoops symbols */
- flag_ksymoops = 1;
- break;
-
- case 'e': /* persistent data filename */
- free(persist_name);
- persist_name = xstrdup(optarg);
- break;
- case 'o': /* name the output module */
- m_name = optarg;
- break;
- case 'O': /* save the output module object */
- blob_name = optarg;
- break;
- case 'P': /* use prefix on crc */
- set_ncv_prefix(optarg);
- break;
-
- default:
- insmod_usage();
- break;
- }
-
- if (optind >= argc) {
- insmod_usage();
- }
- filename = argv[optind++];
-
- if (config_read(0, NULL, "", NULL) < 0) {
- error("Failed handle configuration");
- }
-
- if (persist_name && !*persist_name &&
- (!persistdir || !*persistdir)) {
- free(persist_name);
- persist_name = NULL;
- if (flag_verbose)
- lprintf("insmod: -e \"\" ignored, no persistdir");
- }
-
- if (m_name == NULL) {
- size_t len;
- char *p;
-
- if ((p = strrchr(filename, '/')) != NULL)
- p++;
- else
- p = filename;
- len = strlen(p);
- if (len > 2 && p[len - 2] == '.' && p[len - 1] == 'o')
- len -= 2;
- else if (len > 4 && p[len - 4] == '.' && p[len - 3] == 'm'
- && p[len - 2] == 'o' && p[len - 1] == 'd')
- len -= 4;
-#ifdef CONFIG_USE_ZLIB
- else if (len > 5 && !strcmp(p + len - 5, ".o.gz"))
- len -= 5;
-#endif
-
- m_name = xmalloc(len + 1);
- memcpy(m_name, p, len);
- m_name[len] = '\0';
- }
-
- /* Locate the file to be loaded. */
- if (!strchr(filename, '/') && !strchr(filename, '.')) {
- char *tmp = search_module_path(filename);
- if (tmp == NULL) {
- error("%s: no module by that name found", filename);
- return 1;
- }
- filename = tmp;
- lprintf("Using %s", filename);
- } else if (flag_verbose)
- lprintf("Using %s", filename);
-
- /* And open it. */
- if ((fp = gzf_open(filename, O_RDONLY)) == -1) {
- error("%s: %m", filename);
- return 1;
- }
- /* Try to prevent multiple simultaneous loads. */
- if (dolock)
- flock(fp, LOCK_EX);
-
- if (!get_kernel_info(K_SYMBOLS))
- goto out;
-
- /*
- * Set the genksyms prefix if this is a versioned kernel
- * and it's not already set.
- */
- set_ncv_prefix(NULL);
-
- for (i = 0; i < n_module_stat; ++i) {
- if (strcmp(module_stat[i].name, m_name) == 0) {
- error("a module named %s already exists", m_name);
- goto out;
- }
- }
-
- error_file = filename;
- if ((f = obj_load(fp, ET_REL, filename)) == NULL)
- goto out;
-
- /* Version correspondence? */
- k_version = get_kernel_version(k_strversion);
- m_version = get_module_version(f, m_strversion);
- if (m_version == -1) {
- error("couldn't find the kernel version the module was compiled for");
- goto out;
- }
-
- k_crcs = is_kernel_checksummed();
- m_crcs = is_module_checksummed(f);
- if ((m_crcs == 0 || k_crcs == 0) &&
- strncmp(k_strversion, m_strversion, STRVERSIONLEN) != 0) {
- if (flag_force_load) {
- lprintf("Warning: kernel-module version mismatch\n"
- "\t%s was compiled for kernel version %s\n"
- "\twhile this kernel is version %s",
- filename, m_strversion, k_strversion);
- } else {
- if (!quiet)
- error("kernel-module version mismatch\n"
- "\t%s was compiled for kernel version %s\n"
- "\twhile this kernel is version %s.",
- filename, m_strversion, k_strversion);
- goto out;
- }
- }
- if (m_crcs != k_crcs)
- obj_set_symbol_compare(f, ncv_strcmp, ncv_symbol_hash);
-
- /* Let the module know about the kernel symbols. */
- add_kernel_symbols(f);
-
- /* Allocate common symbols, symbol tables, and string tables.
- *
- * The calls marked DEPMOD indicate the bits of code that depmod
- * uses to do a pseudo relocation, ignoring undefined symbols.
- * Any changes made to the relocation sequence here should be
- * checked against depmod.
- */
-#ifdef COMPAT_2_0
- if (k_new_syscalls
- ? !create_this_module(f, m_name)
- : !old_create_mod_use_count(f))
- goto out;
-#else
- if (!create_this_module(f, m_name))
- goto out;
-#endif
-
- if (!obj_check_undefineds(f, quiet)) /* DEPMOD, obj_clear_undefineds */
- goto out;
- obj_allocate_commons(f); /* DEPMOD */
-
- check_module_parameters(f, &persist_parms);
-
- if (optind < argc) {
- if (!process_module_arguments(f, argc - optind, argv + optind, 1))
- goto out;
- }
- arch_create_got(f); /* DEPMOD */
- hide_special_symbols(f);
-
- if (persist_parms && persist_name && *persist_name) {
- f->persist = persist_name;
- persist_name = NULL;
- }
-
- if (persist_parms &&
- persist_name && !*persist_name) {
- /* -e "". This is ugly. Take the filename, compare it against
- * each of the module paths until we find a match on the start
- * of the filename, assume the rest is the relative path. Have
- * to do it this way because modprobe uses absolute filenames
- * for module names in modules.dep and the format of modules.dep
- * does not allow for any backwards compatible changes, so there
- * is nowhere to store the relative filename. The only way this
- * should fail to calculate a relative path is "insmod ./xxx", for
- * that case the user has to specify -e filename.
- */
- int j, l = strlen(filename);
- char *relative = NULL;
- char *p;
- for (i = 0; i < nmodpath; ++i) {
- p = modpath[i].path;
- j = strlen(p);
- while (j && p[j] == '/')
- --j;
- if (j < l && strncmp(filename, p, j) == 0 && filename[j] == '/') {
- while (filename[j] == '/')
- ++j;
- relative = xstrdup(filename+j);
- break;
- }
- }
- if (relative) {
- i = strlen(relative);
- if (i > 3 && strcmp(relative+i-3, ".gz") == 0)
- relative[i -= 3] = '\0';
- if (i > 2 && strcmp(relative+i-2, ".o") == 0)
- relative[i -= 2] = '\0';
- else if (i > 4 && strcmp(relative+i-4, ".mod") == 0)
- relative[i -= 4] = '\0';
- f->persist = xmalloc(strlen(persistdir) + 1 + i + 1);
- strcpy(f->persist, persistdir); /* safe, xmalloc */
- strcat(f->persist, "/"); /* safe, xmalloc */
- strcat(f->persist, relative); /* safe, xmalloc */
- free(relative);
- }
- else
- error("Cannot calculate persistent filename");
- }
-
- if (f->persist && *(f->persist) != '/') {
- error("Persistent filenames must be absolute, ignoring '%s'",
- f->persist);
- free(f->persist);
- f->persist = NULL;
- }
-
- if (f->persist && !flag_ksymoops) {
- error("has persistent data but ksymoops symbols are not available");
- free(f->persist);
- f->persist = NULL;
- }
-
- if (f->persist && !k_new_syscalls) {
- error("has persistent data but the kernel is too old to support it");
- free(f->persist);
- f->persist = NULL;
- }
-
- if (persist_parms && flag_verbose) {
- if (f->persist)
- lprintf("Persist filename '%s'", f->persist);
- else
- lprintf("No persistent filename available");
- }
-
- if (f->persist) {
- FILE *fp = fopen(f->persist, "r");
- if (!fp) {
- if (flag_verbose)
- lprintf("Cannot open persist file '%s' %m", f->persist);
- }
- else {
- int pargc = 0;
- char *pargv[1000]; /* hard coded but big enough */
- char line[3000]; /* hard coded but big enough */
- char *p;
- while (fgets(line, sizeof(line), fp)) {
- p = strchr(line, '\n');
- if (!p) {
- error("Persistent data line is too long\n%s", line);
- break;
- }
- *p = '\0';
- p = line;
- while (isspace(*p))
- ++p;
- if (!*p || *p == '#')
- continue;
- if (pargc == sizeof(pargv)/sizeof(pargv[0])) {
- error("More than %d persistent parameters", pargc);
- break;
- }
- pargv[pargc++] = xstrdup(p);
- }
- fclose(fp);
- if (!process_module_arguments(f, pargc, pargv, 0))
- goto out;
- while (pargc--)
- free(pargv[pargc]);
- }
- }
-
- if (flag_ksymoops)
- add_ksymoops_symbols(f, filename, m_name);
-
- if (k_new_syscalls)
- create_module_ksymtab(f);
-
- /* archdata based on relocatable addresses */
- if (add_archdata(f, &archdata))
- goto out;
-
- /* kallsyms based on relocatable addresses */
- if (add_kallsyms(f, &kallsyms, force_kallsyms))
- goto out;
- /**** No symbols or sections to be changed after kallsyms above ***/
-
- if (errors)
- goto out;
-
- /* If we were just checking, we made it. */
- if (flag_silent_probe) {
- exit_status = 0;
- goto out;
- }
- /* Module has now finished growing; find its size and install it. */
- m_size = obj_load_size(f); /* DEPMOD */
-
- if (noload) {
- /* Don't bother actually touching the kernel. */
- m_addr = 0x12340000;
- } else {
- errno = 0;
- m_addr = create_module(m_name, m_size);
- switch (errno) {
- case 0:
- break;
- case EEXIST:
- if (dolock) {
- /*
- * Assume that we were just invoked
- * simultaneous with another insmod
- * and return success.
- */
- exit_status = 0;
- goto out;
- }
- error("a module named %s already exists", m_name);
- goto out;
- case ENOMEM:
- error("can't allocate kernel memory for module; needed %lu bytes",
- m_size);
- goto out;
- default:
- error("create_module: %m");
- goto out;
- }
- }
-
- /* module is already built, complete with ksymoops symbols for the
- * persistent filename. If the kernel does not support persistent data
- * then give an error but continue. It is too difficult to clean up at
- * this stage and this error will only occur on backported modules.
- * rmmod will also get an error so warn the user now.
- */
- if (f->persist && !noload) {
- struct {
- struct module m;
- int data;
- } test_read;
- memset(&test_read, 0, sizeof(test_read));
- test_read.m.size_of_struct = -sizeof(test_read.m); /* -ve size => read, not write */
- test_read.m.read_start = m_addr + sizeof(struct module);
- test_read.m.read_end = test_read.m.read_start + sizeof(test_read.data);
- if (sys_init_module(m_name, (struct module *) &test_read)) {
- int old_errors = errors;
- error("has persistent data but the kernel is too old to support it."
- " Expect errors during rmmod as well");
- errors = old_errors;
- }
- }
-
- if (!obj_relocate(f, m_addr)) { /* DEPMOD */
- if (!noload)
- delete_module(m_name);
- goto out;
- }
-
- /* Do archdata again, this time we have the final addresses */
- if (add_archdata(f, &archdata))
- goto out;
-
- /* Do kallsyms again, this time we have the final addresses */
- if (add_kallsyms(f, &kallsyms, force_kallsyms))
- goto out;
-
-#ifdef COMPAT_2_0
- if (k_new_syscalls)
- init_module(m_name, f, m_size, blob_name, noload, flag_load_map);
- else if (!noload)
- old_init_module(m_name, f, m_size);
-#else
- init_module(m_name, f, m_size, blob_name, noload, flag_load_map);
-#endif
- if (errors) {
- if (!noload)
- delete_module(m_name);
- goto out;
- }
- exit_status = 0;
-
- out:
- if (dolock)
- flock(fp, LOCK_UN);
- close(fp);
- if (!noload)
- snap_shot(NULL, 0);
-
- return exit_status;
-}
-
-/* For common 3264 code, add an overall insmod_main, in the 64 bit version. */
-#if defined(COMMON_3264) && defined(ONLY_64)
-int insmod_main(int argc, char **argv)
-{
- if (arch64())
- return insmod_main_64(argc, argv);
- else
- return insmod_main_32(argc, argv);
-}
-#endif /* defined(COMMON_3264) && defined(ONLY_64) */
-
-
-
-int insmod_call(char * full_filename, char * params)
-{
- int argc = 2;
- char *argv[50];
- char * ptr = params;
- argv[0] = "stage1";
- argv[1] = full_filename;
-
- while (ptr != NULL) {
- argv[argc] = ptr;
- argc++;
- ptr = strchr(ptr, ' ');
- if (ptr) {
- ptr[0] = '\0';
- ptr++;
- }
- }
-
- return insmod_main(argc, argv);
-}
diff --git a/mdk-stage1/insmod-modutils/obj/Makefile b/mdk-stage1/insmod-modutils/obj/Makefile
deleted file mode 100644
index 34b5df2d9..000000000
--- a/mdk-stage1/insmod-modutils/obj/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
- #******************************************************************************
- #
- # insmod from modutils (generic)
- #
- # $Id$
- #
- # Copyright 1996, 1997 Linux International.
- #
- #*****************************************************************************
-
-top_dir = ../..
-
-include $(top_dir)/Makefile.common
-
-
-all: libobj.a
-
-clean:
- rm -f *.o *.a
-
-
-INCS = -I./../include
-
-DEFS = -D_GNU_SOURCE -DELF_MACHINE_H='"elf_$(ARCH).h"' -DARCH_$(ARCH) -DCONFIG_ROOT_CHECK_OFF=0
-
-OBJS = obj_kallsyms.o obj_common.o obj_load.o obj_reloc.o obj_$(ARCH).o
-
-libobj.a: $(OBJS)
- ar cru $@ $^
- ranlib $@
-
-.c.o:
- gcc $(CFLAGS) $(DEFS) $(INCS) $(GLIBC_INCLUDES) -c $<
diff --git a/mdk-stage1/insmod-modutils/obj/obj_alpha.c b/mdk-stage1/insmod-modutils/obj/obj_alpha.c
deleted file mode 100644
index 4006b3442..000000000
--- a/mdk-stage1/insmod-modutils/obj/obj_alpha.c
+++ /dev/null
@@ -1,305 +0,0 @@
-/* Alpha specific support for Elf loading and relocation.
- Copyright 1996, 1997 Linux International.
-
- Contributed by Richard Henderson <rth@tamu.edu>
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ident "$Id$"
-
-#include <string.h>
-#include <assert.h>
-
-#include <module.h>
-#include <obj.h>
-#include <util.h>
-
-/*======================================================================*/
-
-struct alpha_got_entry
-{
- struct alpha_got_entry *next;
- ElfW(Addr) addend;
- int offset;
- int reloc_done;
-};
-
-struct alpha_file
-{
- struct obj_file root;
- struct obj_section *got;
-};
-
-struct alpha_symbol
-{
- struct obj_symbol root;
- struct alpha_got_entry *got_entries;
-};
-
-
-/*======================================================================*/
-
-struct obj_file *
-arch_new_file (void)
-{
- struct alpha_file *f;
- f = xmalloc(sizeof(*f));
- f->got = NULL;
- return &f->root;
-}
-
-struct obj_section *
-arch_new_section (void)
-{
- return xmalloc(sizeof(struct obj_section));
-}
-
-struct obj_symbol *
-arch_new_symbol (void)
-{
- struct alpha_symbol *sym;
- sym = xmalloc(sizeof(*sym));
- sym->got_entries = NULL;
- return &sym->root;
-}
-
-int
-arch_load_proc_section(struct obj_section *sec, int fp)
-{
- /* Assume it's just a debugging section that we can safely
- ignore ... */
- sec->contents = NULL;
-
- return 0;
-}
-
-enum obj_reloc
-arch_apply_relocation (struct obj_file *f,
- struct obj_section *targsec,
- struct obj_section *symsec,
- struct obj_symbol *sym,
- Elf64_Rela *rel,
- Elf64_Addr v)
-{
- struct alpha_file *af = (struct alpha_file *)f;
- struct alpha_symbol *asym = (struct alpha_symbol *)sym;
-
- unsigned long *lloc = (unsigned long *)(targsec->contents + rel->r_offset);
- unsigned int *iloc = (unsigned int *)lloc;
- Elf64_Addr dot = targsec->header.sh_addr + rel->r_offset;
- Elf64_Addr gp = af->got->header.sh_addr + 0x8000;
-
- enum obj_reloc ret = obj_reloc_ok;
-
- switch (ELF64_R_TYPE(rel->r_info))
- {
- case R_ALPHA_NONE:
- case R_ALPHA_LITUSE:
- break;
-
- case R_ALPHA_REFQUAD:
- *lloc += v;
- break;
-
- case R_ALPHA_GPREL32:
- v -= gp;
- if ((Elf64_Sxword)v > 0x7fffffff
- || (Elf64_Sxword)v < -(Elf64_Sxword)0x80000000)
- ret = obj_reloc_overflow;
- *iloc = v;
- break;
-
- case R_ALPHA_LITERAL:
- {
- struct alpha_got_entry *gotent;
-
- assert(asym != NULL);
- gotent = asym->got_entries;
- while (gotent->addend != rel->r_addend)
- gotent = gotent->next;
-
- if (!gotent->reloc_done)
- {
- *(unsigned long *)(af->got->contents + gotent->offset) = v;
- gotent->reloc_done = 1;
- }
-
- *iloc = (*iloc & ~0xffff) | ((gotent->offset - 0x8000) & 0xffff);
- }
- break;
-
- case R_ALPHA_GPDISP:
- {
- unsigned int *p_ldah, *p_lda;
- unsigned int i_ldah, i_lda, hi, lo;
-
- p_ldah = iloc;
- p_lda = (unsigned int *)((char *)iloc + rel->r_addend);
- i_ldah = *p_ldah;
- i_lda = *p_lda;
-
- /* Make sure the instructions are righteous. */
- if ((i_ldah >> 26) != 9 || (i_lda >> 26) != 8)
- ret = obj_reloc_dangerous;
-
- /* Extract the existing addend. */
- v = (i_ldah & 0xffff) << 16 | (i_lda & 0xffff);
- v = (v ^ 0x80008000) - 0x80008000;
-
- v += gp - dot;
-
- if ((Elf64_Sxword)v >= 0x7fff8000
- || (Elf64_Sxword)v < -(Elf64_Sxword)0x80000000)
- ret = obj_reloc_overflow;
-
- /* Modify the instructions and finish up. */
- lo = v & 0xffff;
- hi = ((v >> 16) + ((v >> 15) & 1)) & 0xffff;
-
- *p_ldah = (i_ldah & 0xffff0000) | hi;
- *p_lda = (i_lda & 0xffff0000) | lo;
- }
- break;
-
- case R_ALPHA_BRADDR:
- v -= dot + 4;
- if (v % 4)
- ret = obj_reloc_dangerous;
- else if ((Elf64_Sxword)v > 0x3fffff
- || (Elf64_Sxword)v < -(Elf64_Sxword)0x400000)
- ret = obj_reloc_overflow;
- v /= 4;
-
- *iloc = (*iloc & ~0x1fffff) | (v & 0x1fffff);
- break;
-
- case R_ALPHA_HINT:
- v -= dot + 4;
- if (v % 4)
- ret = obj_reloc_dangerous;
- v /= 4;
-
- *iloc = (*iloc & ~0x3fff) | (v & 0x3fff);
- break;
-
- default:
- ret = obj_reloc_unhandled;
- break;
- }
-
- return ret;
-}
-
-int
-arch_create_got (struct obj_file *f)
-{
- struct alpha_file *af = (struct alpha_file *)f;
- int i, n, offset = 0;
-
- n = af->root.header.e_shnum;
- for (i = 0; i < n; ++i)
- {
- struct obj_section *relsec, *symsec, *strsec;
- Elf64_Rela *rel, *relend;
- Elf64_Sym *symtab;
- const char *strtab;
-
- relsec = af->root.sections[i];
- if (relsec->header.sh_type != SHT_RELA)
- continue;
-
- symsec = af->root.sections[relsec->header.sh_link];
- strsec = af->root.sections[symsec->header.sh_link];
-
- rel = (Elf64_Rela *)relsec->contents;
- relend = rel + (relsec->header.sh_size / sizeof(Elf64_Rela));
- symtab = (Elf64_Sym *)symsec->contents;
- strtab = (const char *)strsec->contents;
-
- for (; rel < relend; ++rel)
- {
- struct alpha_got_entry *ent;
- Elf64_Sym *extsym;
- struct alpha_symbol *intsym;
- const char *name;
-
- if (ELF64_R_TYPE(rel->r_info) != R_ALPHA_LITERAL)
- continue;
-
- extsym = &symtab[ELF64_R_SYM(rel->r_info)];
- if (extsym->st_name)
- name = strtab + extsym->st_name;
- else
- name = f->sections[extsym->st_shndx]->name;
- intsym = (struct alpha_symbol *)obj_find_symbol(&af->root, name);
-
- for (ent = intsym->got_entries; ent ; ent = ent->next)
- if (ent->addend == rel->r_addend)
- goto found;
-
- ent = xmalloc(sizeof(*ent));
- ent->addend = rel->r_addend;
- ent->offset = offset;
- ent->reloc_done = 0;
- ent->next = intsym->got_entries;
- intsym->got_entries = ent;
- offset += 8;
-
- found:;
- }
- }
-
- if (offset > 0x10000)
- {
- error(".got section overflow: %#x > 0x10000", offset);
- return 0;
- }
-
- /* We always want a .got section so that we always have a GP for
- use with GPDISP and GPREL32 relocs. Besides, if the section
- is empty we don't use up space anyway. */
- af->got = obj_create_alloced_section(&af->root, ".got", 8, offset);
-
- return 1;
-}
-
-int
-arch_init_module (struct obj_file *f, struct module *mod)
-{
- struct alpha_file *af = (struct alpha_file *)f;
-
- mod->gp = af->got->header.sh_addr + 0x8000;
-
- return 1;
-}
-
-int
-arch_finalize_section_address(struct obj_file *f, Elf64_Addr base)
-{
- int i, n = f->header.e_shnum;
-
- f->baseaddr = base;
- for (i = 0; i < n; ++i)
- f->sections[i]->header.sh_addr += base;
- return 1;
-}
-
-int
-arch_archdata (struct obj_file *fin, struct obj_section *sec)
-{
- return 0;
-}
diff --git a/mdk-stage1/insmod-modutils/obj/obj_arm.c b/mdk-stage1/insmod-modutils/obj/obj_arm.c
deleted file mode 100644
index 7a843f947..000000000
--- a/mdk-stage1/insmod-modutils/obj/obj_arm.c
+++ /dev/null
@@ -1,318 +0,0 @@
-/* ARM specific support for Elf loading and relocation.
- Copyright 1996, 1997, 1998 Linux International.
-
- Contributed by Phil Blundell <philb@gnu.org>
- and wms <woody@corelcomputer.com>
- based on the i386 code by Richard Henderson <rth@tamu.edu>
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ident "$Id$"
-
-#include <string.h>
-#include <assert.h>
-
-#include <module.h>
-#include <obj.h>
-#include <util.h>
-
-
-/*======================================================================*/
-
-struct arm_plt_entry
-{
- int offset;
- int allocated:1;
- int inited:1; // has been set up
-};
-
-struct arm_got_entry
-{
- int offset;
- int allocated : 1;
- unsigned reloc_done : 1;
-};
-
-struct arm_file
-{
- struct obj_file root;
- struct obj_section *plt;
- struct obj_section *got;
-};
-
-struct arm_symbol
-{
- struct obj_symbol root;
- struct arm_plt_entry pltent;
- struct arm_got_entry gotent;
-};
-
-
-/*======================================================================*/
-
-struct obj_file *
-arch_new_file (void)
-{
- struct arm_file *f;
- f = xmalloc(sizeof(*f));
- f->got = NULL;
- return &f->root;
-}
-
-struct obj_section *
-arch_new_section (void)
-{
- return xmalloc(sizeof(struct obj_section));
-}
-
-struct obj_symbol *
-arch_new_symbol (void)
-{
- struct arm_symbol *sym;
- sym = xmalloc(sizeof(*sym));
- memset(&sym->gotent, 0, sizeof(sym->gotent));
- memset(&sym->pltent, 0, sizeof(sym->pltent));
- return &sym->root;
-}
-
-int
-arch_load_proc_section(struct obj_section *sec, int fp)
-{
- /* Assume it's just a debugging section that we can safely
- ignore ... */
- sec->contents = NULL;
-
- return 0;
-}
-
-enum obj_reloc
-arch_apply_relocation (struct obj_file *f,
- struct obj_section *targsec,
- struct obj_section *symsec,
- struct obj_symbol *sym,
- Elf32_Rel *rel,
- Elf32_Addr v)
-{
- struct arm_file *afile = (struct arm_file *)f;
- struct arm_symbol *asym = (struct arm_symbol *)sym;
-
- Elf32_Addr *loc = (Elf32_Addr *)(targsec->contents + rel->r_offset);
- Elf32_Addr dot = targsec->header.sh_addr + rel->r_offset;
- Elf32_Addr got = afile->got ? afile->got->header.sh_addr : 0;
- Elf32_Addr plt = afile->plt ? afile->plt->header.sh_addr : 0;
-
- struct arm_plt_entry *pe;
- unsigned long *ip;
-
- enum obj_reloc ret = obj_reloc_ok;
-
- switch (ELF32_R_TYPE(rel->r_info))
- {
- case R_ARM_NONE:
- break;
-
- case R_ARM_ABS32:
- *loc += v;
- break;
-
- case R_ARM_GOT32:
- /* needs an entry in the .got: set it, once */
- if (! asym->gotent.reloc_done)
- {
- asym->gotent.reloc_done = 1;
- *(Elf32_Addr *)(afile->got->contents + asym->gotent.offset) = v;
- }
- /* make the reloc with_respect_to_.got */
- *loc += asym->gotent.offset;
- break;
-
- /* relative reloc, always to _GLOBAL_OFFSET_TABLE_ (which is .got)
- similar to branch, but is full 32 bits relative */
- case R_ARM_GOTPC:
- assert(got);
- *loc += got - dot;
- break;
-
- case R_ARM_PC24:
- case R_ARM_PLT32:
- /* find the plt entry and initialize it if necessary */
- assert(asym != NULL);
- pe = (struct arm_plt_entry*) &asym->pltent;
- if (! pe->inited)
- {
- ip = (unsigned long *) (afile->plt->contents + pe->offset);
- ip[0] = 0xe51ff004; /* ldr pc,[pc,#-4] */
- ip[1] = v; /* sym@ */
- pe->inited = 1;
- }
-
- /* relative distance to target */
- v -= dot;
- /* if the target is too far away.... */
- if ((int)v < -0x02000000 || (int)v >= 0x02000000)
- {
- /* go via the plt */
- v = plt + pe->offset - dot;
- }
- if (v & 3)
- ret = obj_reloc_dangerous;
-
- /* Convert to words. */
- v >>= 2;
-
- /* merge the offset into the instruction. */
- *loc = (*loc & ~0x00ffffff) | ((v + *loc) & 0x00ffffff);
- break;
-
- /* address relative to the got */
- case R_ARM_GOTOFF:
- assert(got);
- *loc += v - got;
- break;
-
- default:
- printf("Warning: unhandled reloc %d\n",ELF32_R_TYPE(rel->r_info));
- ret = obj_reloc_unhandled;
- break;
- }
-
- return ret;
-}
-
-int
-arch_create_got (struct obj_file *f)
-{
- struct arm_file *afile = (struct arm_file *) f;
- int i;
- struct obj_section *sec, *syms, *strs;
- ElfW(Rel) *rel, *relend;
- ElfW(Sym) *symtab, *extsym;
- const char *strtab, *name;
- struct arm_symbol *intsym;
- struct arm_plt_entry *pe;
- struct arm_got_entry *ge;
- int got_offset = 0, plt_offset = 0;
-
- for (i = 0; i < f->header.e_shnum; ++i)
- {
- sec = f->sections[i];
- if (sec->header.sh_type != SHT_RELM)
- continue;
- syms = f->sections[sec->header.sh_link];
- strs = f->sections[syms->header.sh_link];
-
- rel = (ElfW(RelM) *) sec->contents;
- relend = rel + (sec->header.sh_size / sizeof(ElfW(RelM)));
- symtab = (ElfW(Sym) *) syms->contents;
- strtab = (const char *) strs->contents;
-
- for (; rel < relend; ++rel)
- {
- extsym = &symtab[ELF32_R_SYM(rel->r_info)];
-
- switch(ELF32_R_TYPE(rel->r_info)) {
- case R_ARM_PC24:
- case R_ARM_PLT32:
- if (extsym->st_name)
- name = strtab + extsym->st_name;
- else
- name = f->sections[extsym->st_shndx]->name;
- intsym = (struct arm_symbol *) obj_find_symbol(f, name);
-
- pe = &intsym->pltent;
-
- if (! pe->allocated)
- {
- pe->allocated = 1;
- pe->offset = plt_offset;
- plt_offset += 8;
- pe->inited = 0;
- }
- break;
-
- /* these two don_t need got entries, but they need
- the .got to exist */
- case R_ARM_GOTOFF:
- case R_ARM_GOTPC:
- if (got_offset==0) got_offset = 4;
- break;
-
- case R_ARM_GOT32:
- if (extsym->st_name)
- name = strtab + extsym->st_name;
- else
- name = f->sections[extsym->st_shndx]->name;
- intsym = (struct arm_symbol *) obj_find_symbol(f, name);
-
- ge = (struct arm_got_entry *) &intsym->gotent;
- if (! ge->allocated)
- {
- ge->allocated = 1;
- ge->offset = got_offset;
- got_offset += sizeof(void*);
- }
- break;
-
- default:
- continue;
- }
- }
- }
-
- /* if there was a _GLOBAL_OFFSET_TABLE_, then the .got section
- exists already; find it and use it */
- if (got_offset)
- {
- struct obj_section* sec = obj_find_section(f, ".got");
- if (sec)
- obj_extend_section(sec, got_offset);
- else
- {
- sec = obj_create_alloced_section(f, ".got", 8, got_offset);
- assert(sec);
- }
- afile->got = sec;
- }
-
- if (plt_offset)
- afile->plt = obj_create_alloced_section(f, ".plt", 8, plt_offset);
-
- return 1;
-}
-
-int
-arch_init_module (struct obj_file *f, struct module *mod)
-{
- return 1;
-}
-
-int
-arch_finalize_section_address(struct obj_file *f, Elf32_Addr base)
-{
- int i, n = f->header.e_shnum;
-
- f->baseaddr = base;
- for (i = 0; i < n; ++i)
- f->sections[i]->header.sh_addr += base;
- return 1;
-}
-
-int
-arch_archdata (struct obj_file *fin, struct obj_section *sec)
-{
- return 0;
-}
diff --git a/mdk-stage1/insmod-modutils/obj/obj_common.c b/mdk-stage1/insmod-modutils/obj/obj_common.c
deleted file mode 100644
index 2a6606c94..000000000
--- a/mdk-stage1/insmod-modutils/obj/obj_common.c
+++ /dev/null
@@ -1,399 +0,0 @@
-/* Elf file, section, and symbol manipulation routines.
- Copyright 1996, 1997 Linux International.
-
- Contributed by Richard Henderson <rth@tamu.edu>
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ident "$Id$"
-
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-
-#include <obj.h>
-#include <util.h>
-#include <module.h>
-
-/*======================================================================*/
-
-/* Standard ELF hash function. */
-inline unsigned long
-obj_elf_hash_n(const char *name, unsigned long n)
-{
- unsigned long h = 0;
- unsigned long g;
- unsigned char ch;
-
- while (n > 0)
- {
- ch = *name++;
- h = (h << 4) + ch;
- if ((g = (h & 0xf0000000)) != 0)
- {
- h ^= g >> 24;
- h &= ~g;
- }
- n--;
- }
- return h;
-}
-
-unsigned long
-obj_elf_hash (const char *name)
-{
- return obj_elf_hash_n(name, strlen(name));
-}
-
-void
-obj_set_symbol_compare (struct obj_file *f,
- int (*cmp)(const char *, const char *),
- unsigned long (*hash)(const char *))
-{
- if (cmp)
- f->symbol_cmp = cmp;
- if (hash)
- {
- struct obj_symbol *tmptab[HASH_BUCKETS], *sym, *next;
- int i;
-
- f->symbol_hash = hash;
-
- memcpy(tmptab, f->symtab, sizeof(tmptab));
- memset(f->symtab, 0, sizeof(f->symtab));
-
- for (i = 0; i < HASH_BUCKETS; ++i)
- for (sym = tmptab[i]; sym ; sym = next)
- {
- unsigned long h = hash(sym->name) % HASH_BUCKETS;
- next = sym->next;
- sym->next = f->symtab[h];
- f->symtab[h] = sym;
- }
- }
-}
-
-struct obj_symbol *
-obj_add_symbol (struct obj_file *f, const char *name, unsigned long symidx,
- int info, int secidx, ElfW(Addr) value, unsigned long size)
-{
- struct obj_symbol *sym;
- unsigned long hash = f->symbol_hash(name) % HASH_BUCKETS;
- int n_type = ELFW(ST_TYPE)(info);
- int n_binding = ELFW(ST_BIND)(info);
-
- for (sym = f->symtab[hash]; sym; sym = sym->next)
- if (f->symbol_cmp(sym->name, name) == 0)
- {
- int o_secidx = sym->secidx;
- int o_info = sym->info;
- int o_type = ELFW(ST_TYPE)(o_info);
- int o_binding = ELFW(ST_BIND)(o_info);
-
- /* A redefinition! Is it legal? */
-
- if (secidx == SHN_UNDEF)
- return sym;
- else if (o_secidx == SHN_UNDEF)
- goto found;
- else if (n_binding == STB_GLOBAL && o_binding == STB_LOCAL)
- {
- /* Cope with local and global symbols of the same name
- in the same object file, as might have been created
- by ld -r. The only reason locals are now seen at this
- level at all is so that we can do semi-sensible things
- with parameters. */
-
- struct obj_symbol *nsym, **p;
-
- nsym = arch_new_symbol();
- nsym->next = sym->next;
- nsym->ksymidx = -1;
-
- /* Excise the old (local) symbol from the hash chain. */
- for (p = &f->symtab[hash]; *p != sym; p = &(*p)->next)
- continue;
- *p = sym = nsym;
- goto found;
- }
- else if (n_binding == STB_LOCAL)
- {
- /* Another symbol of the same name has already been defined.
- Just add this to the local table. */
- sym = arch_new_symbol();
- sym->next = NULL;
- sym->ksymidx = -1;
- f->local_symtab[symidx] = sym;
- goto found;
- }
- else if (n_binding == STB_WEAK)
- return sym;
- else if (o_binding == STB_WEAK)
- goto found;
- /* Don't unify COMMON symbols with object types the programmer
- doesn't expect. */
- else if (secidx == SHN_COMMON
- && (o_type == STT_NOTYPE || o_type == STT_OBJECT))
- return sym;
- else if (o_secidx == SHN_COMMON
- && (n_type == STT_NOTYPE || n_type == STT_OBJECT))
- goto found;
- else
- {
- /* Don't report an error if the symbol is coming from
- the kernel or some external module. */
- if (secidx <= SHN_HIRESERVE)
- error("%s multiply defined", name);
- return sym;
- }
- }
-
- /* Completely new symbol. */
- sym = arch_new_symbol();
- sym->next = f->symtab[hash];
- f->symtab[hash] = sym;
- sym->ksymidx = -1;
-
- if (ELFW(ST_BIND)(info) == STB_LOCAL && symidx != -1) {
- if (symidx >= f->local_symtab_size)
- error("local symbol %s with index %ld exceeds local_symtab_size %ld",
- name, (long) symidx, (long) f->local_symtab_size);
- else
- f->local_symtab[symidx] = sym;
- }
-
-found:
- sym->name = name;
- sym->value = value;
- sym->size = size;
- sym->secidx = secidx;
- sym->info = info;
- sym->r_type = 0; /* should be R_arch_NONE for all arch */
-
- return sym;
-}
-
-struct obj_symbol *
-obj_find_symbol (struct obj_file *f, const char *name)
-{
- struct obj_symbol *sym;
- unsigned long hash = f->symbol_hash(name) % HASH_BUCKETS;
-
- for (sym = f->symtab[hash]; sym; sym = sym->next)
- if (f->symbol_cmp(sym->name, name) == 0)
- return sym;
-
- return NULL;
-}
-
-ElfW(Addr)
-obj_symbol_final_value (struct obj_file *f, struct obj_symbol *sym)
-{
- if (sym)
- {
- if (sym->secidx >= SHN_LORESERVE)
- return sym->value;
-
- return sym->value + f->sections[sym->secidx]->header.sh_addr;
- }
- else
- {
- /* As a special case, a NULL sym has value zero. */
- return 0;
- }
-}
-
-struct obj_section *
-obj_find_section (struct obj_file *f, const char *name)
-{
- int i, n = f->header.e_shnum;
-
- for (i = 0; i < n; ++i)
- if (strcmp(f->sections[i]->name, name) == 0)
- return f->sections[i];
-
- return NULL;
-}
-
-static int
-obj_load_order_prio(struct obj_section *a)
-{
- unsigned long af, ac;
-
- af = a->header.sh_flags;
-
- ac = 0;
- if (a->name[0] != '.' || strlen(a->name) != 10 ||
- strcmp(a->name + 5, ".init")) ac |= 32;
- if (af & SHF_ALLOC) ac |= 16;
- if (!(af & SHF_WRITE)) ac |= 8;
- if (af & SHF_EXECINSTR) ac |= 4;
- if (a->header.sh_type != SHT_NOBITS) ac |= 2;
-#if defined(ARCH_ia64)
- if (af & SHF_IA_64_SHORT) ac -= 1;
-#endif
-
- return ac;
-}
-
-void
-obj_insert_section_load_order (struct obj_file *f, struct obj_section *sec)
-{
- struct obj_section **p;
- int prio = obj_load_order_prio(sec);
- for (p = f->load_order_search_start; *p ; p = &(*p)->load_next)
- if (obj_load_order_prio(*p) < prio)
- break;
- sec->load_next = *p;
- *p = sec;
-}
-
-struct obj_section *
-obj_create_alloced_section (struct obj_file *f, const char *name,
- unsigned long align, unsigned long size)
-{
- int newidx = f->header.e_shnum++;
- struct obj_section *sec;
-
- f->sections = xrealloc(f->sections, (newidx+1) * sizeof(sec));
- f->sections[newidx] = sec = arch_new_section();
-
- memset(sec, 0, sizeof(*sec));
- sec->header.sh_type = SHT_PROGBITS;
- sec->header.sh_flags = SHF_WRITE|SHF_ALLOC;
- sec->header.sh_size = size;
- sec->header.sh_addralign = align;
- sec->name = name;
- sec->idx = newidx;
- if (size)
- sec->contents = xmalloc(size);
-
- obj_insert_section_load_order(f, sec);
-
- return sec;
-}
-
-struct obj_section *
-obj_create_alloced_section_first (struct obj_file *f, const char *name,
- unsigned long align, unsigned long size)
-{
- int newidx = f->header.e_shnum++;
- struct obj_section *sec;
-
- f->sections = xrealloc(f->sections, (newidx+1) * sizeof(sec));
- f->sections[newidx] = sec = arch_new_section();
-
- memset(sec, 0, sizeof(*sec));
- sec->header.sh_type = SHT_PROGBITS;
- sec->header.sh_flags = SHF_WRITE|SHF_ALLOC;
- sec->header.sh_size = size;
- sec->header.sh_addralign = align;
- sec->name = name;
- sec->idx = newidx;
- if (size)
- sec->contents = xmalloc(size);
-
- sec->load_next = f->load_order;
- f->load_order = sec;
- if (f->load_order_search_start == &f->load_order)
- f->load_order_search_start = &sec->load_next;
-
- return sec;
-}
-
-void *
-obj_extend_section (struct obj_section *sec, unsigned long more)
-{
- unsigned long oldsize = sec->header.sh_size;
- sec->contents = xrealloc(sec->contents, sec->header.sh_size += more);
- return sec->contents + oldsize;
-}
-
-/* Convert an object pointer (address) to a native pointer and vice versa.
- * It gets interesting when the object has 64 bit pointers but modutils
- * is running 32 bit. This is nasty code but it stops the compiler giving
- * spurious warning messages. "I know what I am doing" ...
- */
-
-void *
-obj_addr_to_native_ptr (ElfW(Addr) addr)
-{
- unsigned int convert = (sizeof(void *) << 8) + sizeof(addr); /* to, from */
- union obj_ptr_4 p4;
- union obj_ptr_8 p8;
- switch (convert) {
- case 0x0404:
- p4.addr = addr;
- return(p4.ptr);
- break;
- case 0x0408:
- p4.addr = addr;
- if (p4.addr != addr) {
- error("obj_addr_to_native_ptr truncation %" tgt_long_fmt "x",
- (tgt_long) addr);
- exit(1);
- }
- return(p4.ptr);
- break;
- case 0x0804:
- p8.addr = addr;
- return(p8.ptr);
- break;
- case 0x0808:
- p8.addr = addr;
- return(p8.ptr);
- break;
- default:
- error("obj_addr_to_native_ptr unknown conversion 0x%04x", convert);
- exit(1);
- }
-}
-
-ElfW(Addr)
-obj_native_ptr_to_addr (void *ptr)
-{
- unsigned int convert = (sizeof(ElfW(Addr)) << 8) + sizeof(ptr); /* to, from */
- union obj_ptr_4 p4;
- union obj_ptr_8 p8;
- switch (convert) {
- case 0x0404:
- p4.ptr = ptr;
- return(p4.addr);
- break;
- case 0x0408:
- p8.ptr = ptr;
- p4.addr = p8.addr;
- if (p4.addr != p8.addr) {
- error("obj_native_ptr_to_addr truncation %" tgt_long_fmt "x",
- (tgt_long) p8.addr);
- exit(1);
- }
- return(p4.addr);
- break;
- case 0x0804:
- p4.ptr = ptr;
- return(p4.addr); /* compiler expands to 8 */
- break;
- case 0x0808:
- p8.ptr = ptr;
- return(p8.addr);
- break;
- default:
- error("obj_native_ptr_to_addr unknown conversion 0x%04x", convert);
- exit(1);
- }
-}
diff --git a/mdk-stage1/insmod-modutils/obj/obj_hppa.c b/mdk-stage1/insmod-modutils/obj/obj_hppa.c
deleted file mode 100644
index 4207e692e..000000000
--- a/mdk-stage1/insmod-modutils/obj/obj_hppa.c
+++ /dev/null
@@ -1,668 +0,0 @@
-/*
- * PA-RISC specific support for Elf loading and relocation.
- * Copyright 2000 David Huggins-Daines <dhd@linuxcare.com>, Linuxcare Inc.
- * Copyright 2000 Richard Hirst <rhirst@linuxcare.com>, Linuxcare Inc.
- *
- * Based on the IA-64 support, which is:
- * Copyright 2000 Mike Stephens <mike.stephens@intel.com>
- *
- * This file is part of the Linux modutils.
- *
- * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-
-#include <module.h>
-#include <obj.h>
-#include <util.h>
-#include <modstat.h> /* For ksyms */
-
-
-typedef struct _hppa_stub_t
-{
- struct _hppa_stub_t *next;
- int offset;
- int reloc_done;
-} hppa_stub_t;
-
-typedef struct _hppa_symbol_t
-{
- struct obj_symbol root;
- hppa_stub_t *stub;
-} hppa_symbol_t;
-
-typedef struct _hppa_file_t
-{
- struct obj_file root;
- struct obj_section *stub;
- Elf32_Addr dp;
-} hppa_file_t;
-
-/* The ABI defines various more esoteric types, but these are the only
- ones we actually need. */
-enum hppa_fsel
-{
- e_fsel,
- e_lsel,
- e_rsel,
- e_lrsel,
- e_rrsel
-};
-
-/* This could be a call to obj_create_alloced_section() followed
- * by an overwrite of sec->header.sh_flags.
- */
-
-struct obj_section *
-obj_hppa_create_alloced_section (struct obj_file *f, const char *name,
- unsigned long align, unsigned long size,
- unsigned long sh_flags)
-{
- int newidx = f->header.e_shnum++;
- struct obj_section *sec;
-
- f->sections = xrealloc(f->sections, (newidx+1) * sizeof(sec));
- f->sections[newidx] = sec = arch_new_section();
-
- memset(sec, 0, sizeof(*sec));
- sec->header.sh_type = SHT_PROGBITS;
- sec->header.sh_flags = sh_flags;
- sec->header.sh_size = size;
- sec->header.sh_addralign = align;
- sec->name = name;
- sec->idx = newidx;
- if (size)
- sec->contents = xmalloc(size);
-
- obj_insert_section_load_order(f, sec);
-
- return sec;
-}
-
-struct obj_file *
-arch_new_file (void)
-{
- hppa_file_t *f;
- f = xmalloc(sizeof(*f));
- f->stub = NULL;
- return &f->root;
-}
-
-struct obj_section *
-arch_new_section (void)
-{
- return xmalloc(sizeof(struct obj_section));
-}
-
-struct obj_symbol *
-arch_new_symbol (void)
-{
- hppa_symbol_t *sym;
- sym = xmalloc(sizeof(*sym));
- sym->stub = NULL;
- return &sym->root;
-}
-
-/* This is called for architecture specific sections we might need to
- do special things to. */
-int
-arch_load_proc_section(struct obj_section *sec, int fp)
-{
- /* Assume it's just a debugging section that we can safely
- ignore ... */
- sec->contents = NULL;
-
- return 0;
-}
-
-/* =================================================================
-
- These functions are from libhppa.h in the GNU BFD library.
- (c) 1990, 91, 92, 93, 94, 95, 96, 98, 99, 2000
- Free Software Foundation, Inc.
-
- ================================================================= */
-
-/* The *sign_extend functions are used to assemble various bitfields
- taken from an instruction and return the resulting immediate
- value. */
-
-static inline int
-sign_extend (x, len)
- int x, len;
-{
- int signbit = (1 << (len - 1));
- int mask = (signbit << 1) - 1;
- return ((x & mask) ^ signbit) - signbit;
-}
-
-static inline int
-low_sign_extend (x, len)
- int x, len;
-{
- return (x >> 1) - ((x & 1) << (len - 1));
-}
-
-
-/* The re_assemble_* functions prepare an immediate value for
- insertion into an opcode. pa-risc uses all sorts of weird bitfields
- in the instruction to hold the value. */
-
-static inline int
-sign_unext (x, len)
- int x, len;
-{
- int len_ones;
-
- len_ones = (1 << len) - 1;
-
- return x & len_ones;
-}
-
-static inline int
-low_sign_unext (x, len)
- int x, len;
-{
- int temp;
- int sign;
-
- sign = (x >> (len-1)) & 1;
-
- temp = sign_unext (x, len-1);
-
- return (temp << 1) | sign;
-}
-
-static inline int
-re_assemble_3 (as3)
- int as3;
-{
- return (( (as3 & 4) << (13-2))
- | ((as3 & 3) << (13+1)));
-}
-
-static inline int
-re_assemble_12 (as12)
- int as12;
-{
- return (( (as12 & 0x800) >> 11)
- | ((as12 & 0x400) >> (10 - 2))
- | ((as12 & 0x3ff) << (1 + 2)));
-}
-
-static inline int
-re_assemble_14 (as14)
- int as14;
-{
- return (( (as14 & 0x1fff) << 1)
- | ((as14 & 0x2000) >> 13));
-}
-
-static inline int
-re_assemble_16 (as16)
- int as16;
-{
- int s, t;
-
- /* Unusual 16-bit encoding, for wide mode only. */
- t = (as16 << 1) & 0xffff;
- s = (as16 & 0x8000);
- return (t ^ s ^ (s >> 1)) | (s >> 15);
-}
-
-static inline int
-re_assemble_17 (as17)
- int as17;
-{
- return (( (as17 & 0x10000) >> 16)
- | ((as17 & 0x0f800) << (16 - 11))
- | ((as17 & 0x00400) >> (10 - 2))
- | ((as17 & 0x003ff) << (1 + 2)));
-}
-
-static inline int
-re_assemble_21 (as21)
- int as21;
-{
- return (( (as21 & 0x100000) >> 20)
- | ((as21 & 0x0ffe00) >> 8)
- | ((as21 & 0x000180) << 7)
- | ((as21 & 0x00007c) << 14)
- | ((as21 & 0x000003) << 12));
-}
-
-static inline int
-re_assemble_22 (as22)
- int as22;
-{
- return (( (as22 & 0x200000) >> 21)
- | ((as22 & 0x1f0000) << (21 - 16))
- | ((as22 & 0x00f800) << (16 - 11))
- | ((as22 & 0x000400) >> (10 - 2))
- | ((as22 & 0x0003ff) << (1 + 2)));
-}
-
-
-/* Handle field selectors for PA instructions.
- The L and R (and LS, RS etc.) selectors are used in pairs to form a
- full 32 bit address. eg.
-
- LDIL L'start,%r1 ; put left part into r1
- LDW R'start(%r1),%r2 ; add r1 and right part to form address
-
- This function returns sign extended values in all cases.
-*/
-
-static inline unsigned int
-hppa_field_adjust (value, addend, r_field)
- unsigned int value;
- int addend;
- enum hppa_fsel r_field;
-{
- unsigned int sym_val;
-
- sym_val = value - addend;
- switch (r_field)
- {
- case e_fsel:
- /* F: No change. */
- break;
-
- case e_lsel:
- /* L: Select top 21 bits. */
- value = value >> 11;
- break;
-
- case e_rsel:
- /* R: Select bottom 11 bits. */
- value = value & 0x7ff;
- break;
-
- case e_lrsel:
- /* LR: L with rounding of the addend to nearest 8k. */
- value = sym_val + ((addend + 0x1000) & -0x2000);
- value = value >> 11;
- break;
-
- case e_rrsel:
- /* RR: R with rounding of the addend to nearest 8k.
- We need to return a value such that 2048 * LR'x + RR'x == x
- ie. RR'x = s+a - (s + (((a + 0x1000) & -0x2000) & -0x800))
- . = s+a - ((s & -0x800) + ((a + 0x1000) & -0x2000))
- . = (s & 0x7ff) + a - ((a + 0x1000) & -0x2000) */
- value = (sym_val & 0x7ff) + (((addend & 0x1fff) ^ 0x1000) - 0x1000);
- break;
-
- default:
- abort();
- }
- return value;
-}
-
-/* Insert VALUE into INSN using R_FORMAT to determine exactly what
- bits to change. */
-
-static inline int
-hppa_rebuild_insn (insn, value, r_format)
- int insn;
- int value;
- int r_format;
-{
- switch (r_format)
- {
- case 11:
- return (insn & ~ 0x7ff) | low_sign_unext (value, 11);
-
- case 12:
- return (insn & ~ 0x1ffd) | re_assemble_12 (value);
-
-
- case 10:
- return (insn & ~ 0x3ff1) | re_assemble_14 (value & -8);
-
- case -11:
- return (insn & ~ 0x3ff9) | re_assemble_14 (value & -4);
-
- case 14:
- return (insn & ~ 0x3fff) | re_assemble_14 (value);
-
-
- case -10:
- return (insn & ~ 0xfff1) | re_assemble_16 (value & -8);
-
- case -16:
- return (insn & ~ 0xfff9) | re_assemble_16 (value & -4);
-
- case 16:
- return (insn & ~ 0xffff) | re_assemble_16 (value);
-
-
- case 17:
- return (insn & ~ 0x1f1ffd) | re_assemble_17 (value);
-
- case 21:
- return (insn & ~ 0x1fffff) | re_assemble_21 (value);
-
- case 22:
- return (insn & ~ 0x3ff1ffd) | re_assemble_22 (value);
-
- case 32:
- return value;
-
- default:
- abort ();
- }
- return insn;
-}
-
-/* ====================================================================
-
- End of functions from GNU BFD.
-
- ==================================================================== */
-
-/* This is where we get the opportunity to create any extra dynamic
- sections we might need. In our case we do not need a GOT because
- our code is not PIC, but we do need to create a stub section.
-
- This is significantly less complex than what we do for shared
- libraries because, obviously, modules are not shared. Also we have
- no issues related to symbol visibility, lazy linking, etc.
- The kernels dp is fixed (at symbol data_start), and we can fix up any
- DPREL refs in the module to use that same dp value.
- All PCREL17F refs result in a stub with the following format:
-
- ldil L'func_addr,%r1
- be,n R'func_addr(%sr4,%r1)
-
- Note, all PCREL17F get a stub, regardless of whether they are
- local or external. With local ones, and external ones to other
- modules, there is a good chance we could manage without the stub.
- I'll leave that for a future optimisation.
- */
-
-#define LDIL_R1 0x20200000 /* ldil L'XXX,%r1 */
-#define BE_N_SR4_R1 0xe0202002 /* be,n R'XXX(%sr4,%r1) */
-
-#define STUB_SIZE 8
-
-int
-arch_create_got(struct obj_file *f)
-{
- hppa_file_t *hfile = (hppa_file_t *)f;
- int i, n;
- int stub_offset = 0;
-
- /* Create stub section.
- * XXX set flags, see obj_ia64.c
- */
- hfile->stub = obj_create_alloced_section(f, ".stub", STUB_SIZE, 0);
-
- /* Actually this is a lot like check_relocs() in a BFD backend. We
- walk all sections and all their relocations and look for ones
- that need special treatment. */
- n = hfile->root.header.e_shnum;
- for (i = 0; i < n; ++i)
- {
- struct obj_section *relsec, *symsec, *strsec;
- Elf32_Rela *rel, *relend;
- Elf32_Sym *symtab;
- char const *strtab;
-
- relsec = hfile->root.sections[i];
- if (relsec->header.sh_type != SHT_RELA)
- continue;
-
- symsec = hfile->root.sections[relsec->header.sh_link];
- strsec = hfile->root.sections[symsec->header.sh_link];
-
- rel = (Elf32_Rela *)relsec->contents;
- relend = rel + (relsec->header.sh_size / sizeof(Elf32_Rela));
- symtab = (Elf32_Sym *)symsec->contents;
- strtab = (char const *)strsec->contents;
-
- for (; rel < relend; rel++)
- {
- int need_stub = 0;
-
- switch (ELF32_R_TYPE(rel->r_info))
- {
- default:
- continue;
-
- case R_PARISC_PCREL17F:
- need_stub = 1;
- break;
- }
-
- if (need_stub)
- {
- Elf32_Sym *extsym;
- hppa_symbol_t *hsym;
- char const *name;
- int local;
- unsigned long symndx;
-
- symndx = ELF32_R_SYM(rel->r_info);
- extsym = symtab + symndx;
- if (ELF32_ST_BIND(extsym->st_info) == STB_LOCAL)
- hsym = (hppa_symbol_t *) f->local_symtab[symndx];
- else
- {
- if (extsym->st_name)
- name = strtab + extsym->st_name;
- else
- name = f->sections[extsym->st_shndx]->name;
- hsym = (hppa_symbol_t *)obj_find_symbol(f, name);
- }
- local = hsym->root.secidx <= SHN_HIRESERVE;
-
- if (need_stub)
- {
- hppa_stub_t *stub;
-
- if (hsym->stub == NULL)
- {
- stub = (hppa_stub_t *) xmalloc(sizeof(hppa_stub_t));
- stub->offset = stub_offset;
- stub->reloc_done = 0;
- hsym->stub = stub;
- stub_offset += STUB_SIZE;
- need_stub = 0;
- }
- }
- }
- }
- }
- if (stub_offset)
- {
- hfile->stub->contents = xmalloc(stub_offset);
- hfile->stub->header.sh_size = stub_offset;
- }
- return 1;
-}
-
-
-enum obj_reloc
-arch_apply_relocation(struct obj_file *f,
- struct obj_section *targsec,
- struct obj_section *symsec,
- struct obj_symbol *sym,
- Elf32_Rela *rel,
- Elf32_Addr v)
-{
- hppa_file_t *hfile = (hppa_file_t *) f;
- hppa_symbol_t *hsym = (hppa_symbol_t *) sym;
-
- Elf32_Addr *loc = (Elf32_Addr *)(targsec->contents + rel->r_offset);
- Elf32_Addr dot = (targsec->header.sh_addr + rel->r_offset) & ~0x03;
- Elf32_Addr dp = hfile->dp;
- Elf32_Word r_info = ELF32_R_TYPE(rel->r_info);
-
- enum obj_reloc ret = obj_reloc_ok;
- enum hppa_fsel fsel = e_fsel; /* Avoid compiler warning */
- unsigned int r_format;
-
- /* Fix up the value, and determine whether we can handle this
- relocation. */
- switch (r_info)
- {
- case R_PARISC_PLABEL32:
- case R_PARISC_DIR32:
- case R_PARISC_DIR21L:
- case R_PARISC_DIR14R:
- /* Easy. */
- break;
-
- case R_PARISC_DPREL21L:
- case R_PARISC_DPREL14R:
- v -= dp;
- break;
-
- case R_PARISC_PCREL17F:
- /* Find an import stub. */
- assert(hsym->stub != NULL);
- assert(hfile->stub != NULL);
- /* XXX Optimise. We may not need a stub for short branches */
- if (!hsym->stub->reloc_done) {
- /* Need to create the .stub entry */
- Elf32_Addr *pstub, stubv;
-
- pstub = (Elf32_Addr *)(hfile->stub->contents + hsym->stub->offset);
- pstub[0] = LDIL_R1;
- pstub[1] = BE_N_SR4_R1;
- stubv = hppa_field_adjust(v, rel->r_addend, e_lrsel);
- pstub[0] = hppa_rebuild_insn(pstub[0], stubv, 21);
- stubv = hppa_field_adjust(v, rel->r_addend, e_rrsel);
- stubv >>= 2; /* Branch; divide by 4 */
- pstub[1] = hppa_rebuild_insn(pstub[1], stubv, 17);
- hsym->stub->reloc_done = 1;
- }
- v = hsym->stub->offset + hfile->stub->header.sh_addr;
- break;
-
- default:
- return obj_reloc_unhandled;
- }
-
- /* Find the field selector. */
- switch (r_info)
- {
- case R_PARISC_DIR32:
- case R_PARISC_PLABEL32:
- case R_PARISC_PCREL17F:
- fsel = e_fsel;
- break;
-
- case R_PARISC_DPREL21L:
- case R_PARISC_DIR21L:
- fsel = e_lrsel;
- break;
-
- case R_PARISC_DPREL14R:
- case R_PARISC_DIR14R:
- fsel = e_rrsel;
- break;
- }
-
- v = hppa_field_adjust(v, rel->r_addend, fsel);
-
- switch (r_info)
- {
- case R_PARISC_PCREL17F:
- case R_PARISC_PCREL17R:
- case R_PARISC_PCREL22F:
- v = v - dot - 8;
- case R_PARISC_DIR17F:
- case R_PARISC_DIR17R:
- /* This is a branch. Divide the offset by four. */
- v >>= 2;
- break;
- default:
- break;
- }
-
- /* Find the format. */
- switch (r_info)
- {
- case R_PARISC_DIR32:
- case R_PARISC_PLABEL32:
- r_format = 32;
- break;
-
- case R_PARISC_DPREL21L:
- case R_PARISC_DIR21L:
- r_format = 21;
- break;
-
- case R_PARISC_PCREL17F:
- r_format = 17;
- break;
-
- case R_PARISC_DPREL14R:
- case R_PARISC_DIR14R:
- r_format = 14;
- break;
-
- default:
- abort();
- }
-
- *loc = hppa_rebuild_insn(*loc, v, r_format);
-
- return ret;
-}
-
-int
-arch_init_module (struct obj_file *f, struct module *mod)
-{
- return 1;
-}
-
-int
-arch_finalize_section_address(struct obj_file *f, Elf32_Addr base)
-{
- int i, n = f->header.e_shnum;
-
- f->baseaddr = base;
- for (i = 0; i < n; ++i)
- f->sections[i]->header.sh_addr += base;
- return 1;
-}
-
-int
-arch_archdata (struct obj_file *f, struct obj_section *sec)
-{
- struct module_symbol *s;
- int i;
- hppa_file_t *hfile = (hppa_file_t *)f;
-
- /* Initialise dp to the kernels dp (symbol data_start)
- */
- for (i = 0, s = ksyms; i < nksyms; i++, s++)
- if (!strcmp((char *)s->name, "data_start"))
- break;
- if (i >= nksyms) {
- error("Cannot initialise dp, 'data_start' not found\n");
- return 1;
- }
- hfile->dp = s->value;
-
- return 0;
-}
-
diff --git a/mdk-stage1/insmod-modutils/obj/obj_hppa64.c b/mdk-stage1/insmod-modutils/obj/obj_hppa64.c
deleted file mode 100644
index fe32911ff..000000000
--- a/mdk-stage1/insmod-modutils/obj/obj_hppa64.c
+++ /dev/null
@@ -1,686 +0,0 @@
-/*
- * hppa parisc64 specific support for Elf loading and relocation.
- * Copyright 2000 Richard Hirst <rhirst@linuxcare.com>, Linuxcare Inc.
- *
- * Based on ia64 specific support which was
- * Copyright 2000 Mike Stephens <mike.stephens@intel.com>
- *
- * This file is part of the Linux modutils.
- *
- * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ident "$Id$"
-
-#include <string.h>
-#include <assert.h>
-#include <stdlib.h>
-
-#include <module.h>
-#include <obj.h>
-#include <util.h>
-
-#ifndef FALSE
-#define FALSE 0
-#endif
-#ifndef TRUE
-#define TRUE ~FALSE
-#endif
-
-/*======================================================================*/
-
-typedef struct _hppa64_opd_t
-{
- int offset;
- int reloc_done;
-} hppa64_opd_t;
-
-typedef struct _hppa64_stub_t
-{
- struct _hppa64_stub_t *next;
- Elf64_Addr addend;
- int offset;
- int reloc_done;
-} hppa64_stub_t;
-
-typedef struct _hppa64_got_t
-{
- struct _hppa64_got_t *next;
- Elf64_Addr addend;
- int offset;
- int reloc_done;
-} hppa64_got_t;
-
-typedef struct _hppa64_symbol_t
-{
- struct obj_symbol root;
- hppa64_got_t *gotent;
- hppa64_opd_t *opdent;
- hppa64_stub_t *stubent;
-} hppa64_symbol_t;
-
-typedef struct _hppa64_file_t
-{
- struct obj_file root;
- struct obj_section *got;
- struct obj_section *opd;
- struct obj_section *stub;
- Elf64_Addr gp;
- Elf64_Addr text;
- Elf64_Addr data;
- Elf64_Addr bss;
-} hppa64_file_t;
-
-/*
- * XXX This stub assumes it can reach the .got entry with a +/- 8K offset
- * from dp. Perhaps we should use a .plt for these entries to give a
- * greater chance of that being true.
- *
- * 53 7b 00 00 ldd 0(dp),dp
- * R_PARISC_LTOFF14R <.got entry offset from dp>
- * 53 61 00 20 ldd 10(dp),r1
- * e8 20 d0 00 bve (r1)
- * 53 7b 00 30 ldd 18(dp),dp
- *
- * We need a different stub for millicode calls, which doesn't screw
- * dp:
- *
- * 53 61 00 00 ldd 0(dp),r1
- * R_PARISC_LTOFF14R <.got entry offset from dp>
- * 50 21 00 20 ldd 10(r1),r1
- * e8 20 d0 00 bve (r1)
- * 08 00 02 40 nop
- *
- */
-
-/* NOTE: to keep the code cleaner we make all stubs the same size.
- */
-
-#define SIZEOF_STUB 16
-
-unsigned char hppa64_stub_extern[] =
-{
- 0x53, 0x7b, 0x00, 0x00,
- 0x53, 0x61, 0x00, 0x20,
- 0xe8, 0x20, 0xd0, 0x00,
- 0x53, 0x7b, 0x00, 0x30,
-};
-
-unsigned char hppa64_stub_millicode[] =
-{
- 0x53, 0x61, 0x00, 0x00,
- 0x50, 0x21, 0x00, 0x20,
- 0xe8, 0x20, 0xd0, 0x00,
- 0x08, 0x00, 0x02, 0x40,
-};
-
-/*======================================================================*/
-
-enum obj_reloc
-patch_14r(Elf64_Xword v64, Elf64_Word *p)
-{
- Elf64_Word i = *p;
- Elf64_Word v = (Elf64_Word)v64;
-
- if (v & 0x80000000)
- v |= ~0x7ff;
- else
- v &= 0x7ff;
- i &= ~ 0x3fff;
- i |= (v & 0x1fff) << 1 |
- (v & 0x2000) >> 13;
- *p = i;
-
- return obj_reloc_ok;
-}
-
-enum obj_reloc
-patch_21l(Elf64_Xword v64, Elf64_Word *p)
-{
- Elf64_Word i = *p;
- Elf64_Word v = (Elf64_Word)v64;
-
- v &= 0xfffff800;
- if (v & 0x80000000)
- v += 0x800;
- i &= ~ 0x1fffff;
- i |= (v & 0x80000000) >> 31 |
- (v & 0x7ff00000) >> 19 |
- (v & 0x000c0000) >> 4 |
- (v & 0x0003e000) << 3 |
- (v & 0x00001800) << 1;
- *p = i;
-
- return obj_reloc_ok;
-}
-
-
-/* All 14 bits this time... This is used to patch the .got offset in
- * a stub for PCREL22F.
- */
-
-enum obj_reloc
-patch_14r2(Elf64_Xword v64, Elf64_Word *p)
-{
- Elf64_Word i = *p;
- Elf64_Word v = (Elf64_Word)v64;
-
- if ((Elf64_Sxword)v64 > 0x1fffL ||
- (Elf64_Sxword)v64 < -0x2000L)
- return obj_reloc_overflow;
- i &= ~ 0x3fff;
- i |= (v & 0x2000) >> 13 |
- (v & 0x1fff) << 1;
- *p = i;
-
- return obj_reloc_ok;
-}
-
-
-enum obj_reloc
-patch_22f(Elf64_Xword v64, Elf64_Word *p)
-{
- Elf64_Word i = *p;
- Elf64_Word v = (Elf64_Word)v64;
-
- if ((Elf64_Sxword)v64 > 0x800000-1 ||
- (Elf64_Sxword)v64 < -0x800000)
- return obj_reloc_overflow;
-
- i &= ~ 0x03ff1ffd;
- i |= (v & 0x00800000) >> 23 |
- (v & 0x007c0000) << 3 |
- (v & 0x0003e000) << 3 |
- (v & 0x00001000) >> 10 |
- (v & 0x00000ffc) << 1;
- *p = i;
-
- return obj_reloc_ok;
-}
-
-
-struct obj_section *
-obj_hppa64_create_alloced_section (struct obj_file *f, const char *name,
- unsigned long align, unsigned long size, unsigned long sh_flags)
-{
- int newidx = f->header.e_shnum++;
- struct obj_section *sec;
-
- f->sections = xrealloc(f->sections, (newidx+1) * sizeof(sec));
- f->sections[newidx] = sec = arch_new_section();
-
- memset(sec, 0, sizeof(*sec));
- sec->header.sh_type = SHT_PROGBITS;
- sec->header.sh_flags = sh_flags;
- sec->header.sh_size = size;
- sec->header.sh_addralign = align;
- sec->name = name;
- sec->idx = newidx;
- if (size)
- sec->contents = xmalloc(size);
-
- obj_insert_section_load_order(f, sec);
-
- return sec;
-}
-
-/*======================================================================*/
-
-struct obj_file *
-arch_new_file (void)
-{
- hppa64_file_t *f;
- f = xmalloc(sizeof(*f));
- f->got = NULL;
- f->opd = NULL;
- f->stub = NULL;
- return &f->root;
-}
-
-struct obj_section *
-arch_new_section (void)
-{
- return xmalloc(sizeof(struct obj_section));
-}
-
-struct obj_symbol *
-arch_new_symbol (void)
-{
- hppa64_symbol_t *sym;
- sym = xmalloc(sizeof(*sym));
- sym->gotent = NULL;
- sym->opdent = NULL;
- sym->stubent = NULL;
- return &sym->root;
-}
-
-/* This may not be needed, but does no harm (copied from ia64).
- */
-
-int
-arch_load_proc_section(struct obj_section *sec, int fp)
-{
- switch (sec->header.sh_type)
- {
- case SHT_PARISC_EXT :
- sec->contents = NULL;
- break;
-
- case SHT_PARISC_UNWIND :
- if (sec->header.sh_size > 0)
- {
- sec->contents = xmalloc(sec->header.sh_size);
- gzf_lseek(fp, sec->header.sh_offset, SEEK_SET);
- if (gzf_read(fp, sec->contents, sec->header.sh_size) != sec->header.sh_size)
- {
- error("error reading ELF section data: %m");
- return -1;
- }
- }
- else
- sec->contents = NULL;
- break;
- default:
- error("Unknown section header type: %08x", sec->header.sh_type);
- return -1;
- }
- return 0;
-}
-
-int
-arch_create_got(struct obj_file *f)
-{
- hppa64_file_t *hfile = (hppa64_file_t *)f;
- int i;
- int n;
- int got_offset = 0;
- int opd_offset = 64;
- int stub_offset = 0;
-
- n = hfile->root.header.e_shnum;
- for (i = 0; i < n; ++i)
- {
- struct obj_section *relsec, *symsec, *strsec;
- Elf64_Rela *rel, *relend;
- Elf64_Sym *symtab;
- const char *strtab;
-
- relsec = hfile->root.sections[i];
- if (relsec->header.sh_type != SHT_RELA)
- continue;
-
- symsec = hfile->root.sections[relsec->header.sh_link];
- strsec = hfile->root.sections[symsec->header.sh_link];
-
- rel = (Elf64_Rela *)relsec->contents;
- relend = rel + (relsec->header.sh_size / sizeof(Elf64_Rela));
- symtab = (Elf64_Sym *)symsec->contents;
- strtab = (const char *)strsec->contents;
-
- for (; rel < relend; ++rel)
- {
- int need_got = FALSE;
- int need_opd = FALSE;
- int need_stub = FALSE;
-
- switch (ELF64_R_TYPE(rel->r_info))
- {
- default:
- {
- unsigned r_info = ELF64_R_TYPE(rel->r_info);
- printf("r_info 0x%x not handled\n", r_info);
- }
- continue;
- case R_PARISC_LTOFF14R:
- case R_PARISC_LTOFF21L:
- /* These are simple indirect references to symbols through the
- * DLT. We need to create a DLT entry for any symbols which
- * appears in a DLTIND relocation.
- */
- need_got = TRUE;
- break;
- case R_PARISC_PCREL22F:
- /* These are function calls. Depending on their precise
- * target we may need to make a stub for them. The stub
- * uses the dlt, so we need to create dlt entries for
- * these symbols too.
- */
- need_got = TRUE;
- need_stub = TRUE;
- break;
- case R_PARISC_DIR64:
- break;
- case R_PARISC_FPTR64:
- /* This is a simple OPD entry (only created for local symbols,
- * see below).
- */
- need_opd = TRUE;
- break;
- }
-
- if (need_got || need_opd || need_stub)
- {
- Elf64_Sym *extsym;
- hppa64_symbol_t *isym;
- const char *name;
- int local;
- unsigned long symndx;
-
- symndx = ELF64_R_SYM(rel->r_info);
- extsym = &symtab[symndx];
- if (ELF64_ST_BIND(extsym->st_info) == STB_LOCAL)
- {
- isym = (hppa64_symbol_t *) f->local_symtab[symndx];
- }
- else
- {
- if (extsym->st_name)
- name = strtab + extsym->st_name;
- else
- name = f->sections[extsym->st_shndx]->name;
- isym = (hppa64_symbol_t *)obj_find_symbol(f, name);
- }
- local = isym->root.secidx <= SHN_HIRESERVE;
-
- if (need_stub)
- {
- hppa64_stub_t *stub;
-
- for (stub = isym->stubent; stub != NULL; stub = stub->next)
- if (stub->addend == rel->r_addend)
- break;
- if (stub == NULL)
- {
- stub = (hppa64_stub_t *) xmalloc(sizeof(hppa64_stub_t));
- stub->next = isym->stubent;
- stub->addend = rel->r_addend;
- stub->offset = stub_offset;
- stub->reloc_done = FALSE;
- isym->stubent = stub;
- {
- stub_offset += SIZEOF_STUB;
- }
- need_stub = FALSE;
- }
- }
- if (need_got)
- {
- hppa64_got_t *got;
-
- for (got = isym->gotent; got != NULL; got = got->next)
- if (got->addend == rel->r_addend)
- break;
- if (got == NULL)
- {
- got = (hppa64_got_t *) xmalloc(sizeof(hppa64_got_t));
- got->next = isym->gotent;
- got->addend = rel->r_addend;
- got->offset = got_offset;
- got->reloc_done = FALSE;
- isym->gotent = got;
- got_offset += 8;
- need_got = FALSE;
- }
- }
- if (need_opd && local)
- {
- hppa64_opd_t *opd;
-
- if (isym->opdent == NULL)
- {
- opd = (hppa64_opd_t *) xmalloc(sizeof(hppa64_opd_t));
- opd->offset = opd_offset;
- opd->reloc_done = FALSE;
- isym->opdent = opd;
- opd_offset += 32;
- need_opd = FALSE;
- }
- }
- }
- }
- }
-
- hfile->got = obj_hppa64_create_alloced_section(f, ".got", 8, got_offset,
- (SHF_ALLOC | SHF_WRITE | SHF_PARISC_SHORT));
- assert(hfile->got != NULL);
-
- hfile->opd = obj_hppa64_create_alloced_section(f, ".opd", 16, opd_offset,
- (SHF_ALLOC | SHF_WRITE | SHF_PARISC_SHORT));
- assert(hfile->opd != NULL);
-
- if (stub_offset > 0)
- {
- hfile->stub = obj_hppa64_create_alloced_section(f, ".stub", 16,
- stub_offset, (SHF_ALLOC | SHF_EXECINSTR | SHF_PARISC_SHORT));
- assert(hfile->stub != NULL);
- }
-
- return 1;
-}
-
-
-/* This is a small simple version which seems to work fine. ia64 has
- * a much more complex algorithm. We point dp at the end of the .got,
- * which is the start of the .opd.
- */
-
-int
-arch_finalize_section_address(struct obj_file *f, Elf64_Addr base)
-{
- hppa64_file_t *hfile = (hppa64_file_t *)f;
- int n = f->header.e_shnum;
- int i;
-
- f->baseaddr = base;
- for (i = 0; i < n; ++i)
- f->sections[i]->header.sh_addr += base;
-
- /* Pick a sensible value for gp */
- hfile->gp = hfile->got->header.sh_addr + hfile->got->header.sh_size;
-
- return 1;
-}
-
-
-enum obj_reloc
-arch_apply_relocation(struct obj_file *f,
- struct obj_section *targsec,
- struct obj_section *symsec,
- struct obj_symbol *sym,
- Elf64_Rela *rel,
- Elf64_Addr v)
-{
- hppa64_file_t *hfile = (hppa64_file_t *) f;
- hppa64_symbol_t *isym = (hppa64_symbol_t *) sym;
-
- Elf64_Word *loc = (Elf64_Word *)(targsec->contents + rel->r_offset);
- Elf64_Addr dot = (targsec->header.sh_addr + rel->r_offset) & ~0x03;
-
- Elf64_Addr got = hfile->got->header.sh_addr;
- Elf64_Addr gp = hfile->gp;
-
- Elf64_Xword r_info = ELF64_R_TYPE(rel->r_info);
-
- enum obj_reloc ret = obj_reloc_ok;
-
- switch (r_info)
- {
- default:
- ret = obj_reloc_unhandled;
- break;
- case R_PARISC_LTOFF14R:
- case R_PARISC_LTOFF21L:
- {
- hppa64_got_t *ge;
-
- assert(isym != NULL);
- for (ge = isym->gotent; ge != NULL && ge->addend != rel->r_addend; )
- ge = ge->next;
- assert(ge != NULL);
- if (!ge->reloc_done)
- {
- ge->reloc_done = TRUE;
- *(Elf64_Addr *)(hfile->got->contents + ge->offset) = v;
- }
- v = got + ge->offset - gp;
- if (r_info == R_PARISC_LTOFF14R)
- ret = patch_14r(v, loc);
- else
- ret = patch_21l(v, loc);
- }
- break;
- case R_PARISC_PCREL22F:
- {
- hppa64_got_t *ge;
-
- assert(isym != NULL);
- for (ge = isym->gotent; ge != NULL && ge->addend != rel->r_addend; )
- ge = ge->next;
- assert(ge != NULL);
- if (!ge->reloc_done)
- {
- ge->reloc_done = TRUE;
- *(Elf64_Addr *)(hfile->got->contents + ge->offset) = v;
- }
- if ((isym->root.secidx > SHN_HIRESERVE) ||
- ((Elf64_Sxword) (v - dot - 8) > 0x800000-1) ||
- ((Elf64_Sxword) (v - dot - 8) < -0x800000))
- {
- hppa64_stub_t *se;
-
- for (se = isym->stubent; se != NULL && se->addend != rel->r_addend; )
- se = se->next;
- assert(se != NULL);
- if (!se->reloc_done)
- {
- /* This requires that we can get from dp to the entry in +/- 8K,
- * or +/- 1000 entries. patch_14r2() will check that.
- * Only need these dlt entries for calls to external/far
- * functions, so should probably put them in a seperate section
- * before dlt and point dp at the section. Change to that
- * scheme if we hit problems with big modules.
- */
- unsigned char *stub;
-
- if (!strncmp(isym->root.name, "$$", 2))
- stub = hppa64_stub_millicode;
- else
- stub = hppa64_stub_extern;
- se->reloc_done = TRUE;
- memcpy((Elf64_Addr *)(hfile->stub->contents + se->offset),
- stub, SIZEOF_STUB);
- v = (Elf64_Addr)(hfile->got->header.sh_addr + ge->offset) - gp;
- ret = patch_14r2(v, (Elf64_Word *)(hfile->stub->contents + se->offset));
- }
- v = hfile->stub->header.sh_addr + se->offset;
- }
- v = v - dot - 8;
- if (ret == obj_reloc_ok)
- ret = patch_22f(v, loc);
- }
- break;
- case R_PARISC_DIR64:
- {
- loc[0] = v >> 32;
- loc[1] = v;
- }
- break;
- case R_PARISC_FPTR64:
- {
- assert(isym != NULL);
- if (isym->root.secidx <= SHN_HIRESERVE) /* local */
- {
- assert(isym->opdent != NULL);
- if (!isym->opdent->reloc_done)
- {
- isym->opdent->reloc_done = TRUE;
- *(Elf64_Addr *)(hfile->opd->contents + isym->opdent->offset + 16) = v;
- *(Elf64_Addr *)(hfile->opd->contents + isym->opdent->offset + 24) = gp;
- }
- v = hfile->opd->header.sh_addr + isym->opdent->offset;
- }
- loc[0] = v >> 32;
- loc[1] = v;
- }
- break;
- }
- return ret;
-}
-
-int
-arch_init_module (struct obj_file *f, struct module *mod)
-{
- hppa64_file_t *hfile = (hppa64_file_t *)f;
- Elf64_Addr *opd = (Elf64_Addr *)(hfile->opd->contents);
-
- opd[0] = 0;
- opd[1] = 0;
- if ((opd[2] = mod->init) != 0)
- {
- opd[3] = hfile->gp;
- mod->init = hfile->opd->header.sh_addr;
- }
-
- opd[4] = 0;
- opd[5] = 0;
- if ((opd[6] = mod->cleanup) != 0)
- {
- opd[7] = hfile->gp;
- mod->cleanup = hfile->opd->header.sh_addr + 32;
- }
-
- return 1;
-}
-
-/* XXX Is this relevant to parisc? */
-
-int
-arch_archdata (struct obj_file *f, struct obj_section *archdata_sec)
-{
- hppa64_file_t *hfile = (hppa64_file_t *)f;
- struct archdata {
- unsigned tgt_long unw_table;
- unsigned tgt_long segment_base;
- unsigned tgt_long unw_start;
- unsigned tgt_long unw_end;
- unsigned tgt_long gp;
- } *ad;
- int i;
- struct obj_section *sec;
-
- free(archdata_sec->contents);
- archdata_sec->contents = xmalloc(sizeof(struct archdata));
- memset(archdata_sec->contents, 0, sizeof(struct archdata));
- archdata_sec->header.sh_size = sizeof(struct archdata);
-
- ad = (struct archdata *)(archdata_sec->contents);
- ad->gp = hfile->gp;
- ad->unw_start = 0;
- ad->unw_end = 0;
- ad->unw_table = 0;
- ad->segment_base = f->sections[1]->header.sh_addr;
- for (i = 0; i < f->header.e_shnum; ++i)
- {
- sec = f->sections[i];
- if (sec->header.sh_type == SHT_PARISC_UNWIND)
- {
- ad->unw_start = sec->header.sh_addr;
- ad->unw_end = sec->header.sh_addr + sec->header.sh_size;
- break;
- }
- }
-
- return 0;
-}
diff --git a/mdk-stage1/insmod-modutils/obj/obj_i386.c b/mdk-stage1/insmod-modutils/obj/obj_i386.c
deleted file mode 100644
index 28df3448c..000000000
--- a/mdk-stage1/insmod-modutils/obj/obj_i386.c
+++ /dev/null
@@ -1,245 +0,0 @@
-/* i386 specific support for Elf loading and relocation.
- Copyright 1996, 1997 Linux International.
-
- Contributed by Richard Henderson <rth@tamu.edu>
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ident "$Id$"
-
-#include <string.h>
-#include <assert.h>
-
-#include <module.h>
-#include <obj.h>
-#include <util.h>
-
-
-/*======================================================================*/
-
-struct i386_got_entry
-{
- int offset;
- unsigned offset_done : 1;
- unsigned reloc_done : 1;
-};
-
-struct i386_file
-{
- struct obj_file root;
- struct obj_section *got;
-};
-
-struct i386_symbol
-{
- struct obj_symbol root;
- struct i386_got_entry gotent;
-};
-
-
-/*======================================================================*/
-
-struct obj_file *
-arch_new_file (void)
-{
- struct i386_file *f;
- f = xmalloc(sizeof(*f));
- f->got = NULL;
- return &f->root;
-}
-
-struct obj_section *
-arch_new_section (void)
-{
- return xmalloc(sizeof(struct obj_section));
-}
-
-struct obj_symbol *
-arch_new_symbol (void)
-{
- struct i386_symbol *sym;
- sym = xmalloc(sizeof(*sym));
- memset(&sym->gotent, 0, sizeof(sym->gotent));
- return &sym->root;
-}
-
-int
-arch_load_proc_section(struct obj_section *sec, int fp)
-{
- /* Assume it's just a debugging section that we can safely
- ignore ... */
- sec->contents = NULL;
-
- return 0;
-}
-
-enum obj_reloc
-arch_apply_relocation (struct obj_file *f,
- struct obj_section *targsec,
- struct obj_section *symsec,
- struct obj_symbol *sym,
- Elf32_Rel *rel,
- Elf32_Addr v)
-{
- struct i386_file *ifile = (struct i386_file *)f;
- struct i386_symbol *isym = (struct i386_symbol *)sym;
-
- Elf32_Addr *loc = (Elf32_Addr *)(targsec->contents + rel->r_offset);
- Elf32_Addr dot = targsec->header.sh_addr + rel->r_offset;
- Elf32_Addr got = ifile->got ? ifile->got->header.sh_addr : 0;
-
- enum obj_reloc ret = obj_reloc_ok;
-
- switch (ELF32_R_TYPE(rel->r_info))
- {
- case R_386_NONE:
- break;
-
- case R_386_32:
- *loc += v;
- break;
-
- case R_386_PLT32:
- case R_386_PC32:
- *loc += v - dot;
- break;
-
- case R_386_GLOB_DAT:
- case R_386_JMP_SLOT:
- *loc = v;
- break;
-
- case R_386_RELATIVE:
- *loc += f->baseaddr;
- break;
-
- case R_386_GOTPC:
- assert(got != 0);
- *loc += got - dot;
- break;
-
- case R_386_GOT32:
- assert(isym != NULL);
- if (!isym->gotent.reloc_done)
- {
- isym->gotent.reloc_done = 1;
- *(Elf32_Addr *)(ifile->got->contents + isym->gotent.offset) = v;
- }
- *loc += isym->gotent.offset;
- break;
-
- case R_386_GOTOFF:
- assert(got != 0);
- *loc += v - got;
- break;
-
- default:
- ret = obj_reloc_unhandled;
- break;
- }
-
- return ret;
-}
-
-int
-arch_create_got (struct obj_file *f)
-{
- struct i386_file *ifile = (struct i386_file *)f;
- int i, n, offset = 0, gotneeded = 0;
-
- n = ifile->root.header.e_shnum;
- for (i = 0; i < n; ++i)
- {
- struct obj_section *relsec, *symsec, *strsec;
- Elf32_Rel *rel, *relend;
- Elf32_Sym *symtab;
- const char *strtab;
-
- relsec = ifile->root.sections[i];
- if (relsec->header.sh_type != SHT_REL)
- continue;
-
- symsec = ifile->root.sections[relsec->header.sh_link];
- strsec = ifile->root.sections[symsec->header.sh_link];
-
- rel = (Elf32_Rel *)relsec->contents;
- relend = rel + (relsec->header.sh_size / sizeof(Elf32_Rel));
- symtab = (Elf32_Sym *)symsec->contents;
- strtab = (const char *)strsec->contents;
-
- for (; rel < relend; ++rel)
- {
- Elf32_Sym *extsym;
- struct i386_symbol *intsym;
- const char *name;
-
- switch (ELF32_R_TYPE(rel->r_info))
- {
- case R_386_GOTPC:
- case R_386_GOTOFF:
- gotneeded = 1;
- default:
- continue;
-
- case R_386_GOT32:
- break;
- }
-
- extsym = &symtab[ELF32_R_SYM(rel->r_info)];
- if (extsym->st_name)
- name = strtab + extsym->st_name;
- else
- name = f->sections[extsym->st_shndx]->name;
- intsym = (struct i386_symbol *)obj_find_symbol(&ifile->root, name);
-
- if (!intsym->gotent.offset_done)
- {
- intsym->gotent.offset_done = 1;
- intsym->gotent.offset = offset;
- offset += 4;
- }
- }
- }
-
- if (offset > 0 || gotneeded)
- ifile->got = obj_create_alloced_section(&ifile->root, ".got", 4, offset);
-
- return 1;
-}
-
-int
-arch_init_module (struct obj_file *f, struct module *mod)
-{
- return 1;
-}
-
-int
-arch_finalize_section_address(struct obj_file *f, Elf32_Addr base)
-{
- int i, n = f->header.e_shnum;
-
- f->baseaddr = base;
- for (i = 0; i < n; ++i)
- f->sections[i]->header.sh_addr += base;
- return 1;
-}
-
-int
-arch_archdata (struct obj_file *fin, struct obj_section *sec)
-{
- return 0;
-}
diff --git a/mdk-stage1/insmod-modutils/obj/obj_ia64.c b/mdk-stage1/insmod-modutils/obj/obj_ia64.c
deleted file mode 100644
index 4f92c5d27..000000000
--- a/mdk-stage1/insmod-modutils/obj/obj_ia64.c
+++ /dev/null
@@ -1,1065 +0,0 @@
-/*
- * ia64 specific support for Elf loading and relocation.
- * Copyright 2000 Mike Stephens <mike.stephens@intel.com>
- *
- * This file is part of the Linux modutils.
- *
- * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ident "$Id$"
-
-#include <string.h>
-#include <assert.h>
-#include <stdlib.h>
-
-#include <module.h>
-#include <obj.h>
-#include <util.h>
-
-#ifndef FALSE
-#define FALSE 0
-#endif
-#ifndef TRUE
-#define TRUE ~FALSE
-#endif
-
-/*======================================================================*/
-
-typedef struct _ia64_opd_t
-{
- int offset;
- int reloc_done;
-} ia64_opd_t;
-
-typedef struct _ia64_plt_t
-{
- struct _ia64_plt_t *next;
- Elf64_Addr addend;
- int text_offset;
- int data_offset;
- int reloc_done;
-} ia64_plt_t;
-
-typedef struct _ia64_got_t
-{
- struct _ia64_got_t *next;
- Elf64_Addr addend;
- int offset;
- int reloc_done;
-} ia64_got_t;
-
-typedef struct _ia64_symbol_t
-{
- struct obj_symbol root;
- ia64_got_t *gotent;
- ia64_opd_t *opdent;
- ia64_plt_t *pltent;
-} ia64_symbol_t;
-
-typedef struct _ia64_file_t
-{
- struct obj_file root;
- struct obj_section *got;
- struct obj_section *opd;
- struct obj_section *pltt;
- struct obj_section *pltd;
- Elf64_Addr gp;
- Elf64_Addr text;
- Elf64_Addr data;
- Elf64_Addr bss;
-} ia64_file_t;
-
-/*
- * aa=gp rel address of the function descriptor in the .IA_64.pltoff section
- */
-unsigned char ia64_plt_local[] =
-{
- 0x0b, 0x78, 0x00, 0x02, 0x00, 0x24, /* [MMI] addl r15=aa,gp;; */
- 0x00, 0x41, 0x3c, 0x30, 0x28, 0xc0, /* ld8 r16=[r15],8 */
- 0x01, 0x08, 0x00, 0x84, /* mov r14=gp;; */
- 0x11, 0x08, 0x00, 0x1e, 0x18, 0x10, /* [MIB] ld8 gp=[r15] */
- 0x60, 0x80, 0x04, 0x80, 0x03, 0x00, /* mov b6=r16 */
- 0x60, 0x00, 0x80, 0x00 /* br.few b6;; */
-};
-
-unsigned char ia64_plt_extern[] =
-{
- 0x0b, 0x80, 0x00, 0x02, 0x00, 0x24, /* [MMI] addl r16=aa,gp;; */
- 0xf0, 0x00, 0x40, 0x30, 0x20, 0x00, /* ld8 r15=[r16] */
- 0x00, 0x00, 0x04, 0x00, /* nop.i 0x0;; */
- 0x0b, 0x80, 0x20, 0x1e, 0x18, 0x14, /* [MMI] ld8 r16=[r15],8;; */
- 0x10, 0x00, 0x3c, 0x30, 0x20, 0xc0, /* ld8 gp=[r15] */
- 0x00, 0x09, 0x00, 0x07, /* mov b6=r16;; */
- 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, /* [MIB] nop.m 0x0 */
- 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, /* nop.i 0x0 */
- 0x60, 0x00, 0x80, 0x00 /* br.few b6;; */
-};
-
-/*======================================================================*/
-
-/*
- * return the instruction at slot in bundle
- */
-Elf64_Xword
-obj_ia64_ins_extract_from_bundle(Elf64_Addr *bundle, Elf64_Xword slot)
-{
- switch (slot)
- {
- case 0 :
- return (*bundle >> 5) & 0x1ffffffffff;
-
- case 1 :
- return (((*bundle >> 46) & 0x3ffff) |
- (*(bundle + 1) << 18)) & 0x1ffffffffff;
-
- case 2 :
- return (*(bundle + 1) >> 23) & 0x1ffffffffff;
-
- default:
- }
- return (-1);
-}
-
-/*
- * insert a instruction at slot in bundle
- */
-void
-obj_ia64_ins_insert_in_bundle(Elf64_Addr *bundle, Elf64_Xword slot, Elf64_Xword ins)
-{
- Elf64_Xword i;
- Elf64_Xword in = ins & 0x1ffffffffff;
-
- switch (slot)
- {
- case 0 :
- i = *bundle & 0xffffc0000000001f;
- *bundle = i | (in << 5);
- break;
-
- case 1 :
- i = *bundle & 0x00003fffffffffff;
- *bundle = i | (in << 46);
-
- ++bundle;
- i = *bundle & 0xffffffffff800000;
- *bundle = i | (in >> 18);
- break;
-
- case 2 :
- ++bundle;
- i = *bundle & 0x00000000007fffff;
- *bundle = i | (in << 23);
- break;
- }
-}
-
-/*
- * add a immediate 14 value to the instruction at slot in bundle
- */
-enum obj_reloc
-obj_ia64_ins_imm14(Elf64_Xword v, Elf64_Addr *bundle, Elf64_Xword slot)
-{
- Elf64_Xword ins;
-
- ins = obj_ia64_ins_extract_from_bundle(bundle, slot);
- ins &= 0xffffffee07f01fff;
- ins |= ((v & 0x2000) << 23) | ((v & 0x1f80) << 20) | ((v & 0x007f) << 13);
- obj_ia64_ins_insert_in_bundle(bundle, slot, ins);
- if (((Elf64_Sxword) v > 8191) || ((Elf64_Sxword) v < -8192))
- return obj_reloc_overflow;
- return obj_reloc_ok;
-}
-
-/*
- * add a immediate 22 value to the instruction at slot in bundle
- */
-enum obj_reloc
-obj_ia64_ins_imm22(Elf64_Xword v, Elf64_Addr *bundle, Elf64_Xword slot)
-{
- Elf64_Xword ins;
-
- ins = obj_ia64_ins_extract_from_bundle(bundle, slot);
- ins &= 0xffffffe000301fff;
- ins |= ((v & 0x200000) << 15) | ((v & 0x1f0000) << 6) |
- ((v & 0x00ff80) << 20) | ((v & 0x00007f) << 13);
- obj_ia64_ins_insert_in_bundle(bundle, slot, ins);
- if (((Elf64_Sxword) v > 2097151) || ((Elf64_Sxword) v < -2097152))
- return obj_reloc_overflow;
- return obj_reloc_ok;
-}
-
-/*
- * add a immediate 21 value (form 1) to the instruction at slot in bundle
- */
-enum obj_reloc
-obj_ia64_ins_pcrel21b(Elf64_Xword v, Elf64_Addr *bundle, Elf64_Xword slot)
-{
- Elf64_Xword ins;
-
- ins = obj_ia64_ins_extract_from_bundle(bundle, slot);
- ins &= 0xffffffee00001fff;
- ins |= ((v & 0x1000000) << 12) | ((v & 0x0fffff0) << 9);
- obj_ia64_ins_insert_in_bundle(bundle, slot, ins);
- return obj_reloc_ok;
-}
-
-/*
- * add a immediate 21 value (form 2) to the instruction at slot in bundle
- */
-enum obj_reloc
-obj_ia64_ins_pcrel21m(Elf64_Xword v, Elf64_Addr *bundle, Elf64_Xword slot)
-{
- Elf64_Xword ins;
-
- ins = obj_ia64_ins_extract_from_bundle(bundle, slot);
- ins &= 0xffffffee000fe03f;
- ins |= ((v & 0x1000000) << 12) | ((v & 0x0fff800) << 9) |
- ((v & 0x00007f0) << 2);
- obj_ia64_ins_insert_in_bundle(bundle, slot, ins);
- return obj_reloc_ok;
-}
-
-/*
- * add a immediate 21 value (form 3) to the instruction at slot in bundle
- */
-enum obj_reloc
-obj_ia64_ins_pcrel21f(Elf64_Xword v, Elf64_Addr *bundle, Elf64_Xword slot)
-{
- Elf64_Xword ins;
-
- ins = obj_ia64_ins_extract_from_bundle(bundle, slot);
- ins &= 0xffffffeffc00003f;
- ins |= ((v & 0x1000000) << 12) | ((v & 0x0fffff0) << 2);
- obj_ia64_ins_insert_in_bundle(bundle, slot, ins);
- return obj_reloc_ok;
-}
-
-/*
- * add a immediate 64 value to the instruction at slot in bundle
- */
-enum obj_reloc
-obj_ia64_ins_imm64(Elf64_Xword v, Elf64_Addr *bundle, Elf64_Xword slot)
-{
- Elf64_Xword ins;
-
- assert(slot == 1);
- ins = obj_ia64_ins_extract_from_bundle(bundle, slot);
- ins &= 0xffffffee000101ff;
- ins |= ((v & 0x8000000000000000) >> 28) | ((v & 0x0000000000200000)) |
- ((v & 0x00000000001f0000) << 6) | ((v & 0x000000000000ff80) << 20) |
- ((v & 0x000000000000007f) << 13);
- obj_ia64_ins_insert_in_bundle(bundle, slot, ins);
- obj_ia64_ins_insert_in_bundle(bundle, ++slot, ((v & 0x7fffffffffc00000) >> 22));
- return obj_reloc_ok;
-}
-
-/*
- * create a plt entry
- */
-enum obj_reloc
-obj_ia64_generate_plt(Elf64_Addr v,
- Elf64_Addr gp,
- ia64_file_t *ifile,
- ia64_symbol_t *isym,
- ia64_plt_t *pltent)
-{
- *(Elf64_Addr *)(ifile->pltd->contents + pltent->data_offset) = v;
- if (isym->root.secidx <= SHN_HIRESERVE)
- {
- /* local entry */
- *(Elf64_Addr *)(ifile->pltd->contents + pltent->data_offset + 8) = gp;
- memcpy((Elf64_Addr *)(ifile->pltt->contents + pltent->text_offset),
- ia64_plt_local, sizeof(ia64_plt_local));
- }
- else
- {
- /* external entry */
- memcpy((Elf64_Addr *)(ifile->pltt->contents + pltent->text_offset),
- ia64_plt_extern, sizeof(ia64_plt_extern));
- }
- return obj_ia64_ins_imm22(
- (ifile->pltd->header.sh_addr + pltent->data_offset - gp),
- (Elf64_Addr *)(ifile->pltt->contents + pltent->text_offset), 0);
-}
-
-struct obj_section *
-obj_ia64_create_alloced_section (struct obj_file *f, const char *name,
- unsigned long align, unsigned long size, unsigned long sh_flags)
-{
- int newidx = f->header.e_shnum++;
- struct obj_section *sec;
-
- f->sections = xrealloc(f->sections, (newidx+1) * sizeof(sec));
- f->sections[newidx] = sec = arch_new_section();
-
- memset(sec, 0, sizeof(*sec));
- sec->header.sh_type = SHT_PROGBITS;
- sec->header.sh_flags = sh_flags;
- sec->header.sh_size = size;
- sec->header.sh_addralign = align;
- sec->name = name;
- sec->idx = newidx;
- if (size)
- sec->contents = xmalloc(size);
-
- obj_insert_section_load_order(f, sec);
-
- return sec;
-}
-
-/*======================================================================*/
-
-struct obj_file *
-arch_new_file (void)
-{
- ia64_file_t *f;
- f = xmalloc(sizeof(*f));
- f->got = NULL;
- f->opd = NULL;
- f->pltt = NULL;
- f->pltd = NULL;
- return &f->root;
-}
-
-struct obj_section *
-arch_new_section (void)
-{
- return xmalloc(sizeof(struct obj_section));
-}
-
-struct obj_symbol *
-arch_new_symbol (void)
-{
- ia64_symbol_t *sym;
- sym = xmalloc(sizeof(*sym));
- sym->gotent = NULL;
- sym->opdent = NULL;
- sym->pltent = NULL;
- return &sym->root;
-}
-
-int
-arch_load_proc_section(struct obj_section *sec, int fp)
-{
- switch (sec->header.sh_type)
- {
- case SHT_IA_64_EXT :
- sec->contents = NULL;
- break;
-
- case SHT_IA_64_UNWIND :
- if (sec->header.sh_size > 0)
- {
- sec->contents = xmalloc(sec->header.sh_size);
- gzf_lseek(fp, sec->header.sh_offset, SEEK_SET);
- if (gzf_read(fp, sec->contents, sec->header.sh_size) != sec->header.sh_size)
- {
- error("error reading ELF section data: %m");
- return -1;
- }
- }
- else
- sec->contents = NULL;
- break;
-
- default:
- error("Unknown section header type: %08x", sec->header.sh_type);
- return -1;
- }
- return 0;
-}
-
-int
-arch_create_got(struct obj_file *f)
-{
- ia64_file_t *ifile = (ia64_file_t *)f;
- int i;
- int n;
- int got_offset = 0;
- int opd_offset = 32;
- int plt_text_offset = 0;
- int plt_data_offset = 0;
-
- n = ifile->root.header.e_shnum;
- for (i = 0; i < n; ++i)
- {
- struct obj_section *relsec, *symsec, *strsec;
- Elf64_Rela *rel, *relend;
- Elf64_Sym *symtab;
- const char *strtab;
-
- relsec = ifile->root.sections[i];
- if (relsec->header.sh_type != SHT_RELA)
- continue;
-
- symsec = ifile->root.sections[relsec->header.sh_link];
- strsec = ifile->root.sections[symsec->header.sh_link];
-
- rel = (Elf64_Rela *)relsec->contents;
- relend = rel + (relsec->header.sh_size / sizeof(Elf64_Rela));
- symtab = (Elf64_Sym *)symsec->contents;
- strtab = (const char *)strsec->contents;
-
- for (; rel < relend; ++rel)
- {
- int need_got = FALSE;
- int need_opd = FALSE;
- int need_plt = FALSE;
-
- switch (ELF64_R_TYPE(rel->r_info))
- {
- default:
- continue;
-
- case R_IA64_FPTR64I : /* @fptr(sym + add), mov imm64 */
- case R_IA64_FPTR32LSB : /* @fptr(sym + add), data4 LSB */
- case R_IA64_FPTR64LSB : /* @fptr(sym + add), data8 LSB */
- need_opd = TRUE;
- break;
-
- case R_IA64_LTOFF22 : /* @ltoff(sym + add), add imm22 */
- case R_IA64_LTOFF22X :
- case R_IA64_LTOFF64I : /* @ltoff(sym + add), mov imm64 */
- need_got = TRUE;
- break;
-
- case R_IA64_LTOFF_FPTR22 : /* @ltoff(@fptr(s+a)), imm22 */
- case R_IA64_LTOFF_FPTR64I : /* @ltoff(@fptr(s+a)), imm64 */
- case R_IA64_LTOFF_FPTR32LSB :
- case R_IA64_LTOFF_FPTR64LSB :
- need_got = TRUE;
- need_opd = TRUE;
- break;
-
- case R_IA64_PLTOFF22 : /* @pltoff(sym + add), add imm22 */
- case R_IA64_PLTOFF64I : /* @pltoff(sym + add), mov imm64 */
- case R_IA64_PLTOFF64LSB : /* @pltoff(sym + add), data8 LSB */
-
- case R_IA64_PCREL21B : /* @pcrel(sym + add), ptb, call */
- case R_IA64_PCREL21M : /* @pcrel(sym + add), chk.s */
- case R_IA64_PCREL21F : /* @pcrel(sym + add), fchkf */
- need_plt = TRUE;
- break;
- }
-
- if (need_got || need_opd || need_plt)
- {
- Elf64_Sym *extsym;
- ia64_symbol_t *isym;
- const char *name;
- int local;
- unsigned long symndx;
-
- symndx = ELF64_R_SYM(rel->r_info);
- extsym = &symtab[symndx];
- if (ELF64_ST_BIND(extsym->st_info) == STB_LOCAL)
- {
- isym = (ia64_symbol_t *) f->local_symtab[symndx];
- }
- else
- {
- if (extsym->st_name)
- name = strtab + extsym->st_name;
- else
- name = f->sections[extsym->st_shndx]->name;
- isym = (ia64_symbol_t *)obj_find_symbol(f, name);
- }
- local = isym->root.secidx <= SHN_HIRESERVE;
-
- if (need_plt)
- {
- ia64_plt_t *plt;
-
- for (plt = isym->pltent; plt != NULL; plt = plt->next)
- if (plt->addend == rel->r_addend)
- break;
- if (plt == NULL)
- {
- plt = (ia64_plt_t *) xmalloc(sizeof(ia64_plt_t));
- plt->next = isym->pltent;
- plt->addend = rel->r_addend;
- plt->text_offset = plt_text_offset;
- plt->data_offset = plt_data_offset;
- plt->reloc_done = FALSE;
- isym->pltent = plt;
- if (local)
- {
- plt_text_offset += sizeof(ia64_plt_local);
- plt_data_offset += 16;
- }
- else
- {
- plt_text_offset += sizeof(ia64_plt_extern);
- plt_data_offset += 8;
- }
- need_plt = FALSE;
- }
- }
- if (need_got)
- {
- ia64_got_t *got;
-
- for (got = isym->gotent; got != NULL; got = got->next)
- if (got->addend == rel->r_addend)
- break;
- if (got == NULL)
- {
- got = (ia64_got_t *) xmalloc(sizeof(ia64_got_t));
- got->next = isym->gotent;
- got->addend = rel->r_addend;
- got->offset = got_offset;
- got->reloc_done = FALSE;
- isym->gotent = got;
- got_offset += 8;
- need_got = FALSE;
- }
- }
- if (need_opd && local)
- {
- ia64_opd_t *opd;
-
- if (isym->opdent == NULL)
- {
- opd = (ia64_opd_t *) xmalloc(sizeof(ia64_opd_t));
- opd->offset = opd_offset;
- opd->reloc_done = FALSE;
- isym->opdent = opd;
- opd_offset += 16;
- need_opd = FALSE;
- }
- }
- }
- }
- }
-
- ifile->got = obj_ia64_create_alloced_section(f, ".got", 8, got_offset,
- (SHF_ALLOC | SHF_WRITE | SHF_IA_64_SHORT));
- assert(ifile->got != NULL);
-
- ifile->opd = obj_ia64_create_alloced_section(f, ".opd", 16, opd_offset,
- (SHF_ALLOC | SHF_WRITE | SHF_IA_64_SHORT));
- assert(ifile->opd != NULL);
-
- if (plt_text_offset > 0)
- {
- ifile->pltt = obj_ia64_create_alloced_section(f, ".plt", 16,
- plt_text_offset, (SHF_ALLOC | SHF_EXECINSTR | SHF_IA_64_SHORT));
- ifile->pltd = obj_ia64_create_alloced_section(f, ".IA_64.pltoff",
- 16, plt_data_offset, (SHF_ALLOC | SHF_WRITE | SHF_IA_64_SHORT));
- assert(ifile->pltt != NULL);
- assert(ifile->pltd != NULL);
- }
-
- return 1;
-}
-
-int
-arch_finalize_section_address(struct obj_file *f, Elf64_Addr base)
-{
- ia64_file_t *ifile = (ia64_file_t *)f;
- Elf64_Addr min_addr = (Elf64_Addr) -1;
- Elf64_Addr max_addr = 0;
- Elf64_Addr min_short_addr = (Elf64_Addr) -1;
- Elf64_Addr max_short_addr = 0;
- Elf64_Addr gp;
- Elf64_Addr text = (Elf64_Addr) -1;
- Elf64_Addr data = (Elf64_Addr) -1;
- Elf64_Addr bss = (Elf64_Addr) -1;
- int n = f->header.e_shnum;
- int i;
-
- /*
- * Finalize the addresses of the sections, find the min and max
- * address of all sections marked short, and collect min and max
- * address of any type, for use in selecting a nice gp.
- *
- * The algorithm used for selecting set the GP value was taken from
- * the ld/bfd code contributed by David Mosberger-Tang <davidm@hpl.hp.com>
- */
- f->baseaddr = base;
- for (i = 0; i < n; ++i)
- {
- Elf64_Shdr *header = &f->sections[i]->header;
- Elf64_Addr lo;
- Elf64_Addr hi;
-
- header->sh_addr += base;
- if (header->sh_flags & SHF_ALLOC)
- {
- lo = header->sh_addr;
- hi = header->sh_addr + header->sh_size;
- if (hi < lo)
- hi = (Elf64_Addr) -1;
-
- if (min_addr > lo)
- min_addr = lo;
- if (max_addr < hi)
- max_addr = hi;
- if (header->sh_flags & SHF_IA_64_SHORT)
- {
- if (min_short_addr > lo)
- min_short_addr = lo;
- if (max_short_addr < hi)
- max_short_addr = hi;
- }
- if ((header->sh_type & SHT_NOBITS) && (lo < bss))
- bss = lo;
- else if ((header->sh_flags & SHF_EXECINSTR) && (lo < text))
- text = lo;
- else if (lo < data)
- data = lo;
- }
- }
- /* Pick a sensible value for gp */
-
- /* Start with just the address of the .got */
- gp = ifile->got->header.sh_addr;
-
- /*
- * If it is possible to address the entire image, but we
- * don't with the choice above, adjust.
- */
- if ((max_addr - min_addr < 0x400000) && (max_addr - gp <= 0x200000) &&
- (gp - min_addr > 0x200000))
- {
- gp = min_addr + 0x200000;
- }
- else if (max_short_addr != 0)
- {
- /* If we don't cover all the short data, adjust */
- if (max_short_addr - gp >= 0x200000)
- gp = min_short_addr + 0x200000;
-
- /* If we're addressing stuff past the end, adjust back */
- if (gp > max_addr)
- gp = max_addr - 0x200000 + 8;
- }
-
- /*
- * Validate whether all SHF_IA_64_SHORT sections are within
- * range of the chosen GP.
- */
- if (max_short_addr != 0)
- {
- if (max_short_addr - min_short_addr >= 0x400000)
- {
- error("short data segment overflowed (0x%lx >= 0x400000)",
- (unsigned long)(max_short_addr - min_short_addr));
- return 0;
- }
- else if (((gp > min_short_addr) && (gp - min_short_addr > 0x200000)) ||
- ((gp < max_short_addr) && (max_short_addr - gp >= 0x200000)))
- {
- error("GP does not cover short data segment");
- return 0;
- }
- }
- ifile->gp = gp;
- ifile->text = text;
- ifile->data = data;
- ifile->bss = bss;
- return 1;
-}
-
-/* Targets can be unaligned, use memcpy instead of assignment */
-#define COPY_64LSB(loc, v) \
- do { \
- Elf64_Xword reloc = (v); \
- memcpy((void *)(loc), &reloc, 8); \
- } while(0)
-#define COPY_32LSB(loc, v) \
- do { \
- Elf32_Xword reloc = (v); \
- memcpy((void *)(loc), &reloc, 4); \
- if ((v) != reloc) \
- ret = obj_reloc_overflow; \
- } while(0)
-
-enum obj_reloc
-arch_apply_relocation(struct obj_file *f,
- struct obj_section *targsec,
- struct obj_section *symsec,
- struct obj_symbol *sym,
- Elf64_Rela *rel,
- Elf64_Addr v)
-{
- ia64_file_t *ifile = (ia64_file_t *) f;
- ia64_symbol_t *isym = (ia64_symbol_t *) sym;
-
- Elf64_Addr loc = (Elf64_Addr)(targsec->contents + rel->r_offset);
- Elf64_Addr dot = (targsec->header.sh_addr + rel->r_offset) & ~0x03;
-
- Elf64_Addr got = ifile->got->header.sh_addr;
- Elf64_Addr gp = ifile->gp;
-
- Elf64_Addr *bundle = (Elf64_Addr *)(loc & ~0x03);
- Elf64_Xword slot = loc & 0x03;
-
- Elf64_Xword r_info = ELF64_R_TYPE(rel->r_info);
-
- enum obj_reloc ret = obj_reloc_ok;
-
- /* We cannot load modules compiled with -mconstant-gp */
-#ifndef EF_IA_64_CONS_GP
-#define EF_IA_64_CONS_GP 0x00000040
-#endif
-#ifndef EF_IA_64_NOFUNCDESC_CONS_GP
-#define EF_IA_64_NOFUNCDESC_CONS_GP 0x00000080
-#endif
- if (f->header.e_flags & (EF_IA_64_CONS_GP | EF_IA_64_NOFUNCDESC_CONS_GP))
- return obj_reloc_constant_gp;
-
- switch (r_info)
- {
- case R_IA64_NONE : /* none */
- case R_IA64_LDXMOV : /* Use of LTOFF22X. */
- break;
-
- case R_IA64_IMM14 : /* symbol + addend, add imm14 */
- ret = obj_ia64_ins_imm14(v, bundle, slot);
- break;
-
- case R_IA64_IMM22 : /* symbol + addend, add imm22 */
- ret = obj_ia64_ins_imm22(v, bundle, slot);
- break;
-
- case R_IA64_IMM64 : /* symbol + addend, movl imm64 */
- ret = obj_ia64_ins_imm64(v, bundle, slot);
- break;
-
- case R_IA64_DIR32LSB : /* symbol + addend, data4 LSB */
- COPY_32LSB(loc, v);
- break;
-
- case R_IA64_DIR64LSB : /* symbol + addend, data8 LSB */
- COPY_64LSB(loc, v);
- break;
-
- case R_IA64_GPREL22 : /* @gprel(sym + add), add imm22 */
- v -= gp;
- ret = obj_ia64_ins_imm22(v, bundle, slot);
- break;
-
- case R_IA64_GPREL64I : /* @gprel(sym + add), mov imm64 */
- v -= gp;
- ret = obj_ia64_ins_imm64(v, bundle, slot);
- break;
-
- case R_IA64_GPREL32LSB : /* @gprel(sym + add), data4 LSB */
- COPY_32LSB(loc, v-gp);
- break;
-
- case R_IA64_GPREL64LSB : /* @gprel(sym + add), data8 LSB */
- COPY_64LSB(loc, v-gp);
- break;
-
- case R_IA64_LTOFF22 : /* @ltoff(sym + add), add imm22 */
- case R_IA64_LTOFF22X : /* LTOFF22, relaxable. */
- case R_IA64_LTOFF64I : /* @ltoff(sym + add), mov imm64 */
- {
- ia64_got_t *ge;
-
- assert(isym != NULL);
- for (ge = isym->gotent; ge != NULL && ge->addend != rel->r_addend; )
- ge = ge->next;
- assert(ge != NULL);
- if (!ge->reloc_done)
- {
- ge->reloc_done = TRUE;
- *(Elf64_Addr *)(ifile->got->contents + ge->offset) = v;
- }
- v = got + ge->offset - gp;
- if (r_info == R_IA64_LTOFF64I)
- ret = obj_ia64_ins_imm64(v, bundle, slot);
- else
- ret = obj_ia64_ins_imm22(v, bundle, slot);
- }
- break;
-
- case R_IA64_PLTOFF22 : /* @pltoff(sym + add), add imm22 */
- case R_IA64_PLTOFF64I : /* @pltoff(sym + add), mov imm64 */
- case R_IA64_PLTOFF64LSB : /* @pltoff(sym + add), data8 LSB */
- {
- ia64_plt_t *pe;
-
- assert(isym != NULL);
- for (pe = isym->pltent; pe != NULL && pe->addend != rel->r_addend; )
- pe = pe->next;
- assert(pe != NULL);
- if (!pe->reloc_done)
- {
- pe->reloc_done = TRUE;
- ret = obj_ia64_generate_plt(v, gp, ifile, isym, pe);
- }
- v = ifile->pltt->header.sh_addr + pe->text_offset - gp;
- switch (r_info)
- {
- case R_IA64_PLTOFF22 :
- ret = obj_ia64_ins_imm22(v, bundle, slot);
- break;
-
- case R_IA64_PLTOFF64I :
- ret = obj_ia64_ins_imm64(v, bundle, slot);
- break;
-
- case R_IA64_PLTOFF64LSB :
- COPY_64LSB(loc, v);
- break;
- }
- }
- break;
-
- case R_IA64_FPTR64I : /* @fptr(sym + add), mov imm64 */
- case R_IA64_FPTR32LSB : /* @fptr(sym + add), data4 LSB */
- case R_IA64_FPTR64LSB : /* @fptr(sym + add), data8 LSB */
- assert(isym != NULL);
- if (isym->root.secidx <= SHN_HIRESERVE)
- {
- assert(isym->opdent != NULL);
- if (!isym->opdent->reloc_done)
- {
- isym->opdent->reloc_done = TRUE;
- *(Elf64_Addr *)(ifile->opd->contents + isym->opdent->offset) = v;
- *(Elf64_Addr *)(ifile->opd->contents + isym->opdent->offset + 8) = gp;
- }
- v = ifile->opd->header.sh_addr + isym->opdent->offset;
- }
- switch (r_info)
- {
- case R_IA64_FPTR64I :
- ret = obj_ia64_ins_imm64(v, bundle, slot);
- break;
-
- case R_IA64_FPTR32LSB :
- COPY_32LSB(loc, v);
- break;
-
- case R_IA64_FPTR64LSB : /* @fptr(sym + add), data8 LSB */
- /* Target can be unaligned */
- COPY_64LSB(loc, v);
- break;
- }
- break;
-
- case R_IA64_PCREL21B : /* @pcrel(sym + add), ptb, call */
- case R_IA64_PCREL21M : /* @pcrel(sym + add), chk.s */
- case R_IA64_PCREL21F : /* @pcrel(sym + add), fchkf */
- assert(isym != NULL);
- if ((isym->root.secidx > SHN_HIRESERVE) ||
- ((Elf64_Sxword) (v - dot) > 16777215) ||
- ((Elf64_Sxword) (v - dot) < -16777216))
- {
- ia64_plt_t *pe;
-
- for (pe = isym->pltent; pe != NULL && pe->addend != rel->r_addend; )
- pe = pe->next;
- assert(pe != NULL);
- if (!pe->reloc_done)
- {
- pe->reloc_done = TRUE;
- ret = obj_ia64_generate_plt(v, gp, ifile, isym, pe);
- }
- v = ifile->pltt->header.sh_addr + pe->text_offset;
- }
- v -= dot;
- switch (r_info)
- {
- case R_IA64_PCREL21B :
- ret = obj_ia64_ins_pcrel21b(v, bundle, slot);
- break;
-
- case R_IA64_PCREL21M :
- ret = obj_ia64_ins_pcrel21m(v, bundle, slot);
- break;
-
- case R_IA64_PCREL21F :
- ret = obj_ia64_ins_pcrel21f(v, bundle, slot);
- break;
- }
- break;
-
- case R_IA64_PCREL32LSB : /* @pcrel(sym + add), data4 LSB */
- COPY_32LSB(loc, v-dot);
- break;
-
- case R_IA64_PCREL64LSB : /* @pcrel(sym + add), data8 LSB */
- COPY_64LSB(loc, v-dot);
- break;
-
- case R_IA64_LTOFF_FPTR22 : /* @ltoff(@fptr(s+a)), imm22 */
- case R_IA64_LTOFF_FPTR64I : /* @ltoff(@fptr(s+a)), imm64 */
- case R_IA64_LTOFF_FPTR32LSB : /* @ltoff(@fptr(s+a)), data4 */
- case R_IA64_LTOFF_FPTR64LSB : /* @ltoff(@fptr(s+a)), data8 */
- {
- ia64_got_t *ge;
-
- assert(isym != NULL);
- if (isym->root.secidx <= SHN_HIRESERVE)
- {
- assert(isym->opdent != NULL);
- if (!isym->opdent->reloc_done)
- {
- isym->opdent->reloc_done = TRUE;
- *(Elf64_Addr *)(ifile->opd->contents + isym->opdent->offset) = v;
- *(Elf64_Addr *)(ifile->opd->contents + isym->opdent->offset + 8) = gp;
- }
- v = ifile->opd->header.sh_addr + isym->opdent->offset;
- }
- for (ge = isym->gotent; ge != NULL && ge->addend != rel->r_addend; )
- ge = ge->next;
- assert(ge != NULL);
- if (!ge->reloc_done)
- {
- ge->reloc_done = TRUE;
- *(Elf64_Addr *)(ifile->got->contents + ge->offset) = v;
- }
- v = got + ge->offset - gp;
- switch (r_info)
- {
- case R_IA64_LTOFF_FPTR22 :
- ret = obj_ia64_ins_imm22(v, bundle, slot);
- break;
-
- case R_IA64_LTOFF_FPTR64I :
- ret = obj_ia64_ins_imm64(v, bundle, slot);
- break;
-
- case R_IA64_LTOFF_FPTR32LSB :
- COPY_32LSB(loc, v);
- break;
-
- case R_IA64_LTOFF_FPTR64LSB :
- COPY_64LSB(loc, v);
- break;
- }
- }
- break;
-
- case R_IA64_SEGREL32LSB : /* @segrel(sym + add), data4 LSB */
- case R_IA64_SEGREL64LSB : /* @segrel(sym + add), data8 LSB */
- if (targsec->header.sh_type & SHT_NOBITS)
- v = ifile->bss - v;
- else if (targsec->header.sh_flags & SHF_EXECINSTR)
- v = ifile->text - v;
- else
- v = ifile->data - v;
- if (r_info == R_IA64_SEGREL32LSB)
- COPY_32LSB(loc, v);
- else
- COPY_64LSB(loc, v);
- break;
-
- case R_IA64_SECREL32LSB : /* @secrel(sym + add), data4 LSB */
- COPY_32LSB(loc, targsec->header.sh_addr - v);
- break;
-
- case R_IA64_SECREL64LSB : /* @secrel(sym + add), data8 LSB */
- COPY_64LSB(loc, targsec->header.sh_addr - v);
- break;
-
- /*
- * We don't handle the big-endian relocates
- *
- * R_IA64_DIR32MSB symbol + addend, data4 MSB
- * R_IA64_DIR64MSB symbol + addend, data8 MSB
- * R_IA64_GPREL32MSB @gprel(sym + add), data4 MSB
- * R_IA64_GPREL64MSB @gprel(sym + add), data8 MSB
- * R_IA64_PLTOFF64MSB @pltoff(sym + add), data8 MSB
- * R_IA64_FPTR32MSB @fptr(sym + add), data4 MSB
- * R_IA64_FPTR64MSB @fptr(sym + add), data8 MSB
- * R_IA64_PCREL32MSB @pcrel(sym + add), data4 MSB
- * R_IA64_PCREL64MSB @pcrel(sym + add), data8 MSB
- * R_IA64_SEGREL32MSB @segrel(sym + add), data4 MSB
- * R_IA64_SEGREL64MSB @segrel(sym + add), data8 MSB
- * R_IA64_SECREL32MSB @secrel(sym + add), data4 MSB
- * R_IA64_SECREL64MSB @secrel(sym + add), data8 MSB
- * R_IA64_REL32MSB data 4 + REL
- * R_IA64_REL64MSB data 8 + REL
- * R_IA64_LTV32MSB symbol + addend, data4 MSB
- * R_IA64_LTV64MSB symbol + addend, data8 MSB
- * R_IA64_IPLTMSB dynamic reloc, imported PLT, MSB
- */
- default:
- case R_IA64_REL32LSB : /* data 4 + REL */
- case R_IA64_REL64LSB : /* data 8 + REL */
- case R_IA64_LTV32LSB : /* symbol + addend, data4 LSB */
- case R_IA64_LTV64LSB : /* symbol + addend, data8 LSB */
- case R_IA64_IPLTLSB : /* dynamic reloc, imported PLT, LSB */
- ret = obj_reloc_unhandled;
- break;
- }
- return ret;
-}
-
-int
-arch_init_module (struct obj_file *f, struct module *mod)
-{
- ia64_file_t *ifile = (ia64_file_t *)f;
- Elf64_Addr *opd = (Elf64_Addr *)(ifile->opd->contents);
-
- if ((opd[0] = mod->init) != 0)
- {
- opd[1] = ifile->gp;
- mod->init = ifile->opd->header.sh_addr;
- }
-
- if ((opd[2] = mod->cleanup) != 0)
- {
- opd[3] = ifile->gp;
- mod->cleanup = ifile->opd->header.sh_addr + 16;
- }
-
- return 1;
-}
-
-int
-arch_archdata (struct obj_file *f, struct obj_section *archdata_sec)
-{
- ia64_file_t *ifile = (ia64_file_t *)f;
- struct archdata {
- unsigned tgt_long unw_table;
- unsigned tgt_long segment_base;
- unsigned tgt_long unw_start;
- unsigned tgt_long unw_end;
- unsigned tgt_long gp;
- } *ad;
- int i;
- struct obj_section *sec;
-
- free(archdata_sec->contents);
- archdata_sec->contents = xmalloc(sizeof(struct archdata));
- memset(archdata_sec->contents, 0, sizeof(struct archdata));
- archdata_sec->header.sh_size = sizeof(struct archdata);
-
- ad = (struct archdata *)(archdata_sec->contents);
- ad->gp = ifile->gp;
- ad->unw_start = 0;
- ad->unw_end = 0;
- ad->unw_table = 0;
- ad->segment_base = f->sections[1]->header.sh_addr;
- for (i = 0; i < f->header.e_shnum; ++i)
- {
- sec = f->sections[i];
- if (sec->header.sh_type == SHT_IA_64_UNWIND)
- {
- ad->unw_start = sec->header.sh_addr;
- ad->unw_end = sec->header.sh_addr + sec->header.sh_size;
- break;
- }
- }
-
- return 0;
-}
diff --git a/mdk-stage1/insmod-modutils/obj/obj_kallsyms.c b/mdk-stage1/insmod-modutils/obj/obj_kallsyms.c
deleted file mode 100644
index 8385fb892..000000000
--- a/mdk-stage1/insmod-modutils/obj/obj_kallsyms.c
+++ /dev/null
@@ -1,292 +0,0 @@
-/* Build a section containing all non-stack symbols.
- Copyright 2000 Keith Owens <kaos@ocs.com.au>
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ident "$Id$"
-
-#include <stdlib.h>
-#include <string.h>
-#include <malloc.h>
-
-#include "obj.h"
-#include "kallsyms.h"
-#include "util.h"
-
-/*======================================================================*/
-
-#define EXPAND_BY 4096 /* Arbitrary */
-
-/* Append a string to the big list of strings */
-
-static void
-append_string (const char *s, char **strings,
- ElfW(Word) *strings_size, ElfW(Word) *strings_left)
-{
- int l = strlen(s) + 1;
- while (l > *strings_left) {
- *strings = xrealloc(*strings, *strings_size += EXPAND_BY);
- *strings_left += EXPAND_BY;
- }
- memcpy((char *)*strings+*strings_size-*strings_left, s, l);
- *strings_left -= l;
-}
-
-
-/* Append a symbol to the big list of symbols */
-
-static void
-append_symbol (const struct kallsyms_symbol *s,
- struct kallsyms_symbol **symbols,
- ElfW(Word) *symbols_size, ElfW(Word) *symbols_left)
-{
- int l = sizeof(*s);
- while (l > *symbols_left) {
- *symbols = xrealloc(*symbols, *symbols_size += EXPAND_BY);
- *symbols_left += EXPAND_BY;
- }
- memcpy((char *)*symbols+*symbols_size-*symbols_left, s, l);
- *symbols_left -= l;
-}
-
-/* qsort compare routine to sort symbols */
-
-static const char *sym_strings;
-
-static int
-symbol_compare (const void *a, const void *b)
-{
- struct kallsyms_symbol *c = (struct kallsyms_symbol *) a;
- struct kallsyms_symbol *d = (struct kallsyms_symbol *) b;
-
- if (c->symbol_addr > d->symbol_addr)
- return(1);
- if (c->symbol_addr < d->symbol_addr)
- return(-1);
- return(strcmp(sym_strings+c->name_off, sym_strings+d->name_off));
-}
-
-
-/* Extract all symbols from the input obj_file, ignore ones that are
- * no use for debugging, build an output obj_file containing only the
- * kallsyms section.
- *
- * The kallsyms section is a bit unusual. It deliberately has no
- * relocatable data, all "pointers" are represented as byte offsets
- * into the the section. This means it can be stored anywhere without
- * relocation problems. In particular it can be stored within a kernel
- * image, it can be stored separately from the kernel image, it can be
- * appended to a module just before loading, it can be stored in a
- * separate area etc.
- *
- * Format of the kallsyms section.
- *
- * Header:
- * Size of header.
- * Total size of kallsyms data, including strings.
- * Number of loaded sections.
- * Offset to first section entry from start of header.
- * Size of each section entry, excluding the name string.
- * Number of symbols.
- * Offset to first symbol entry from start of header.
- * Size of each symbol entry, excluding the name string.
- *
- * Section entry - one per loaded section.
- * Start of section[1].
- * Size of section.
- * Offset to name of section, from start of strings.
- * Section flags.
- *
- * Symbol entry - one per symbol in the input file[2].
- * Offset of section that owns this symbol, from start of section data.
- * Address of symbol within the real section[1].
- * Offset to name of symbol, from start of strings.
- *
- * Notes: [1] This is an exception to the "represent pointers as
- * offsets" rule, it is a value, not an offset. The start
- * address of a section or a symbol is extracted from the
- * obj_file data which may contain absolute or relocatable
- * addresses. If the addresses are relocatable then the
- * caller must adjust the section and/or symbol entries in
- * kallsyms after relocation.
- * [2] Only symbols that fall within loaded sections are stored.
- */
-
-int
-obj_kallsyms (struct obj_file *fin, struct obj_file **fout_result)
-{
- struct obj_file *fout;
- int i, loaded = 0, *fin_to_allsym_map;
- struct obj_section *isec, *osec;
- struct kallsyms_header *a_hdr;
- struct kallsyms_section *a_sec;
- ElfW(Off) sec_off;
- struct kallsyms_symbol *symbols = NULL, a_sym;
- ElfW(Word) symbols_size = 0, symbols_left = 0;
- char *strings = NULL, *p;
- ElfW(Word) strings_size = 0, strings_left = 0;
- ElfW(Off) file_offset;
- static char strtab[] = "\000" KALLSYMS_SEC_NAME;
-
- /* Create the kallsyms section. */
- fout = arch_new_file();
- memset(fout, 0, sizeof(*fout));
- fout->symbol_cmp = strcmp;
- fout->symbol_hash = obj_elf_hash;
- fout->load_order_search_start = &fout->load_order;
-
- /* Copy file characteristics from input file and modify to suit */
- memcpy(&fout->header, &fin->header, sizeof(fout->header));
- fout->header.e_type = ET_REL; /* Output is relocatable */
- fout->header.e_entry = 0; /* No entry point */
- fout->header.e_phoff = 0; /* No program header */
- file_offset = sizeof(fout->header); /* Step over Elf header */
- fout->header.e_shoff = file_offset; /* Section headers next */
- fout->header.e_phentsize = 0; /* No program header */
- fout->header.e_phnum = 0; /* No program header */
- fout->header.e_shnum = KALLSYMS_IDX+1; /* Initial, strtab, kallsyms */
- fout->header.e_shstrndx = KALLSYMS_IDX-1; /* strtab */
- file_offset += fout->header.e_shentsize * fout->header.e_shnum;
-
- /* Populate the section data for kallsyms itself */
- fout->sections = xmalloc(sizeof(*(fout->sections))*fout->header.e_shnum);
- memset(fout->sections, 0, sizeof(*(fout->sections))*fout->header.e_shnum);
-
- fout->sections[0] = osec = arch_new_section();
- memset(osec, 0, sizeof(*osec));
- osec->header.sh_type = SHT_NULL;
- osec->header.sh_link = SHN_UNDEF;
-
- fout->sections[KALLSYMS_IDX-1] = osec = arch_new_section();
- memset(osec, 0, sizeof(*osec));
- osec->name = ".strtab";
- osec->header.sh_type = SHT_STRTAB;
- osec->header.sh_link = SHN_UNDEF;
- osec->header.sh_offset = file_offset;
- osec->header.sh_size = sizeof(strtab);
- osec->contents = xmalloc(sizeof(strtab));
- memcpy(osec->contents, strtab, sizeof(strtab));
- file_offset += osec->header.sh_size;
-
- fout->sections[KALLSYMS_IDX] = osec = arch_new_section();
- memset(osec, 0, sizeof(*osec));
- osec->name = KALLSYMS_SEC_NAME;
- osec->header.sh_name = 1; /* Offset in strtab */
- osec->header.sh_type = SHT_PROGBITS; /* Load it */
- osec->header.sh_flags = SHF_ALLOC; /* Read only data */
- osec->header.sh_link = SHN_UNDEF;
- osec->header.sh_addralign = sizeof(ElfW(Word));
- file_offset = (file_offset + osec->header.sh_addralign - 1)
- & -(osec->header.sh_addralign);
- osec->header.sh_offset = file_offset;
-
- /* How many loaded sections are there? */
- for (i = 0; i < fin->header.e_shnum; ++i) {
- if (fin->sections[i]->header.sh_flags & SHF_ALLOC)
- ++loaded;
- }
-
- /* Initial contents, header + one entry per input section. No strings. */
- osec->header.sh_size = sizeof(*a_hdr) + loaded*sizeof(*a_sec);
- a_hdr = (struct kallsyms_header *) osec->contents =
- xmalloc(osec->header.sh_size);
- memset(osec->contents, 0, osec->header.sh_size);
- a_hdr->size = sizeof(*a_hdr);
- a_hdr->sections = loaded;
- a_hdr->section_off = a_hdr->size;
- a_hdr->section_size = sizeof(*a_sec);
- a_hdr->symbol_off = osec->header.sh_size;
- a_hdr->symbol_size = sizeof(a_sym);
- a_hdr->start = (ElfW(Addr))(~0);
-
- /* Map input section numbers to kallsyms section offsets. */
- sec_off = 0; /* Offset to first kallsyms section entry */
- fin_to_allsym_map = xmalloc(sizeof(*fin_to_allsym_map)*fin->header.e_shnum);
- for (i = 0; i < fin->header.e_shnum; ++i) {
- isec = fin->sections[i];
- if (isec->header.sh_flags & SHF_ALLOC) {
- fin_to_allsym_map[isec->idx] = sec_off;
- sec_off += a_hdr->section_size;
- }
- else
- fin_to_allsym_map[isec->idx] = -1; /* Ignore this section */
- }
-
- /* Copy the loaded section data. */
- a_sec = (struct kallsyms_section *) ((char *) a_hdr + a_hdr->section_off);
- for (i = 0; i < fin->header.e_shnum; ++i) {
- isec = fin->sections[i];
- if (!(isec->header.sh_flags & SHF_ALLOC))
- continue;
- a_sec->start = isec->header.sh_addr;
- a_sec->size = isec->header.sh_size;
- a_sec->flags = isec->header.sh_flags;
- a_sec->name_off = strings_size - strings_left;
- append_string(isec->name, &strings, &strings_size, &strings_left);
- if (a_sec->start < a_hdr->start)
- a_hdr->start = a_sec->start;
- if (a_sec->start+a_sec->size > a_hdr->end)
- a_hdr->end = a_sec->start+a_sec->size;
- ++a_sec;
- }
-
- /* Build the kallsyms symbol table from the symbol hashes. */
- for (i = 0; i < HASH_BUCKETS; ++i) {
- struct obj_symbol *sym = fin->symtab[i];
- for (sym = fin->symtab[i]; sym ; sym = sym->next) {
- if (!sym || sym->secidx >= fin->header.e_shnum)
- continue;
- if ((a_sym.section_off = fin_to_allsym_map[sym->secidx]) == -1)
- continue;
- if (strcmp(sym->name, "gcc2_compiled.") == 0 ||
- strncmp(sym->name, "__insmod_", 9) == 0)
- continue;
- a_sym.symbol_addr = sym->value;
- if (fin->header.e_type == ET_REL)
- a_sym.symbol_addr += fin->sections[sym->secidx]->header.sh_addr;
- a_sym.name_off = strings_size - strings_left;
- append_symbol(&a_sym, &symbols, &symbols_size, &symbols_left);
- append_string(sym->name, &strings, &strings_size, &strings_left);
- ++a_hdr->symbols;
- }
- }
- free(fin_to_allsym_map);
-
- /* Sort the symbols into ascending order by address and name */
- sym_strings = strings; /* For symbol_compare */
- qsort((char *) symbols, (unsigned) a_hdr->symbols,
- sizeof(* symbols), symbol_compare);
- sym_strings = NULL;
-
- /* Put the lot together */
- osec->header.sh_size = a_hdr->total_size =
- a_hdr->symbol_off +
- a_hdr->symbols*a_hdr->symbol_size +
- strings_size - strings_left;
- a_hdr = (struct kallsyms_header *) osec->contents =
- xrealloc(a_hdr, a_hdr->total_size);
- p = (char *)a_hdr + a_hdr->symbol_off;
- memcpy(p, symbols, a_hdr->symbols*a_hdr->symbol_size);
- free(symbols);
- p += a_hdr->symbols*a_hdr->symbol_size;
- a_hdr->string_off = p - (char *)a_hdr;
- memcpy(p, strings, strings_size - strings_left);
- free(strings);
-
- *fout_result = fout;
- return 0;
-}
diff --git a/mdk-stage1/insmod-modutils/obj/obj_load.c b/mdk-stage1/insmod-modutils/obj/obj_load.c
deleted file mode 100644
index 4db20a998..000000000
--- a/mdk-stage1/insmod-modutils/obj/obj_load.c
+++ /dev/null
@@ -1,354 +0,0 @@
-/* Elf file reader.
- Copyright 1996, 1997 Linux International.
-
- Contributed by Richard Henderson <rth@tamu.edu>
- obj_free() added by Björn Ekwall <bj0rn@blox.se> March 1999
- Support for kallsyms Keith Owens <kaos@ocs.com.au> April 2000
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ident "$Id$"
-
-#include <alloca.h>
-#include <string.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#include "obj.h"
-#include "util.h"
-
-/*======================================================================*/
-
-struct obj_file *
-obj_load (int fp, Elf32_Half e_type, const char *filename)
-{
- struct obj_file *f;
- ElfW(Shdr) *section_headers;
- int shnum, i;
- char *shstrtab;
-
- /* Read the file header. */
-
- f = arch_new_file();
- memset(f, 0, sizeof(*f));
- f->symbol_cmp = strcmp;
- f->symbol_hash = obj_elf_hash;
- f->load_order_search_start = &f->load_order;
-
- gzf_lseek(fp, 0, SEEK_SET);
- if (gzf_read(fp, &f->header, sizeof(f->header)) != sizeof(f->header))
- {
- error("error reading ELF header %s: %m", filename);
- return NULL;
- }
-
- if (f->header.e_ident[EI_MAG0] != ELFMAG0
- || f->header.e_ident[EI_MAG1] != ELFMAG1
- || f->header.e_ident[EI_MAG2] != ELFMAG2
- || f->header.e_ident[EI_MAG3] != ELFMAG3)
- {
- error("%s is not an ELF file", filename);
- return NULL;
- }
- if (f->header.e_ident[EI_CLASS] != ELFCLASSM
- || f->header.e_ident[EI_DATA] != ELFDATAM
- || f->header.e_ident[EI_VERSION] != EV_CURRENT
- || !MATCH_MACHINE(f->header.e_machine))
- {
- error("ELF file %s not for this architecture", filename);
- return NULL;
- }
- if (f->header.e_type != e_type && e_type != ET_NONE)
- {
- switch (e_type) {
- case ET_REL:
- error("ELF file %s not a relocatable object", filename);
- break;
- case ET_EXEC:
- error("ELF file %s not an executable object", filename);
- break;
- default:
- error("ELF file %s has wrong type, expecting %d got %d",
- filename, e_type, f->header.e_type);
- break;
- }
- return NULL;
- }
-
- /* Read the section headers. */
-
- if (f->header.e_shentsize != sizeof(ElfW(Shdr)))
- {
- error("section header size mismatch %s: %lu != %lu",
- filename,
- (unsigned long)f->header.e_shentsize,
- (unsigned long)sizeof(ElfW(Shdr)));
- return NULL;
- }
-
- shnum = f->header.e_shnum;
- f->sections = xmalloc(sizeof(struct obj_section *) * shnum);
- memset(f->sections, 0, sizeof(struct obj_section *) * shnum);
-
- section_headers = alloca(sizeof(ElfW(Shdr)) * shnum);
- gzf_lseek(fp, f->header.e_shoff, SEEK_SET);
- if (gzf_read(fp, section_headers, sizeof(ElfW(Shdr))*shnum) != sizeof(ElfW(Shdr))*shnum)
- {
- error("error reading ELF section headers %s: %m", filename);
- return NULL;
- }
-
- /* Read the section data. */
-
- for (i = 0; i < shnum; ++i)
- {
- struct obj_section *sec;
-
- f->sections[i] = sec = arch_new_section();
- memset(sec, 0, sizeof(*sec));
-
- sec->header = section_headers[i];
- sec->idx = i;
-
- switch (sec->header.sh_type)
- {
- case SHT_NULL:
- case SHT_NOTE:
- case SHT_NOBITS:
- /* ignore */
- break;
-
- case SHT_PROGBITS:
- case SHT_SYMTAB:
- case SHT_STRTAB:
- case SHT_RELM:
- if (sec->header.sh_size > 0)
- {
- sec->contents = xmalloc(sec->header.sh_size);
- gzf_lseek(fp, sec->header.sh_offset, SEEK_SET);
- if (gzf_read(fp, sec->contents, sec->header.sh_size) != sec->header.sh_size)
- {
- error("error reading ELF section data %s: %m", filename);
- return NULL;
- }
- }
- else
- sec->contents = NULL;
- break;
-
-#if SHT_RELM == SHT_REL
- case SHT_RELA:
- if (sec->header.sh_size) {
- error("RELA relocations not supported on this architecture %s", filename);
- return NULL;
- }
- break;
-#else
- case SHT_REL:
- if (sec->header.sh_size) {
- error("REL relocations not supported on this architecture %s", filename);
- return NULL;
- }
- break;
-#endif
-
- default:
- if (sec->header.sh_type >= SHT_LOPROC)
- {
- if (arch_load_proc_section(sec, fp) < 0)
- return NULL;
- break;
- }
-
- error("can't handle sections of type %ld %s",
- (long)sec->header.sh_type, filename);
- return NULL;
- }
- }
-
- /* Do what sort of interpretation as needed by each section. */
-
- shstrtab = f->sections[f->header.e_shstrndx]->contents;
-
- for (i = 0; i < shnum; ++i)
- {
- struct obj_section *sec = f->sections[i];
- sec->name = shstrtab + sec->header.sh_name;
- }
-
- for (i = 0; i < shnum; ++i)
- {
- struct obj_section *sec = f->sections[i];
-
- /* .modinfo and .modstring should be contents only but gcc has no
- * attribute for that. The kernel may have marked these sections as
- * ALLOC, ignore the allocate bit.
- */
- if (strcmp(sec->name, ".modinfo") == 0 ||
- strcmp(sec->name, ".modstring") == 0)
- sec->header.sh_flags &= ~SHF_ALLOC;
-
- if (sec->header.sh_flags & SHF_ALLOC)
- obj_insert_section_load_order(f, sec);
-
- switch (sec->header.sh_type)
- {
- case SHT_SYMTAB:
- {
- unsigned long nsym, j;
- char *strtab;
- ElfW(Sym) *sym;
-
- if (sec->header.sh_entsize != sizeof(ElfW(Sym)))
- {
- error("symbol size mismatch %s: %lu != %lu",
- filename,
- (unsigned long)sec->header.sh_entsize,
- (unsigned long)sizeof(ElfW(Sym)));
- return NULL;
- }
-
- nsym = sec->header.sh_size / sizeof(ElfW(Sym));
- strtab = f->sections[sec->header.sh_link]->contents;
- sym = (ElfW(Sym) *) sec->contents;
-
- /* Allocate space for a table of local symbols. */
- j = f->local_symtab_size = sec->header.sh_info;
- f->local_symtab = xmalloc(j *= sizeof(struct obj_symbol *));
- memset(f->local_symtab, 0, j);
-
- /* Insert all symbols into the hash table. */
- for (j = 1, ++sym; j < nsym; ++j, ++sym)
- {
- const char *name;
- if (sym->st_name)
- name = strtab+sym->st_name;
- else
- name = f->sections[sym->st_shndx]->name;
-
- obj_add_symbol(f, name, j, sym->st_info, sym->st_shndx,
- sym->st_value, sym->st_size);
-
- }
- }
- break;
- }
- }
-
- /* second pass to add relocation data to symbols */
- for (i = 0; i < shnum; ++i)
- {
- struct obj_section *sec = f->sections[i];
- switch (sec->header.sh_type)
- {
- case SHT_RELM:
- {
- unsigned long nrel, j;
- ElfW(RelM) *rel;
- struct obj_section *symtab;
- char *strtab;
- if (sec->header.sh_entsize != sizeof(ElfW(RelM)))
- {
- error("relocation entry size mismatch %s: %lu != %lu",
- filename,
- (unsigned long)sec->header.sh_entsize,
- (unsigned long)sizeof(ElfW(RelM)));
- return NULL;
- }
-
- nrel = sec->header.sh_size / sizeof(ElfW(RelM));
- rel = (ElfW(RelM) *) sec->contents;
- symtab = f->sections[sec->header.sh_link];
- strtab = f->sections[symtab->header.sh_link]->contents;
-
- /* Save the relocate type in each symbol entry. */
- for (j = 0; j < nrel; ++j, ++rel)
- {
- ElfW(Sym) *extsym;
- struct obj_symbol *intsym;
- unsigned long symndx;
- symndx = ELFW(R_SYM)(rel->r_info);
- if (symndx)
- {
- extsym = ((ElfW(Sym) *) symtab->contents) + symndx;
- if (ELFW(ST_BIND)(extsym->st_info) == STB_LOCAL)
- {
- /* Local symbols we look up in the local table to be sure
- we get the one that is really intended. */
- intsym = f->local_symtab[symndx];
- }
- else
- {
- /* Others we look up in the hash table. */
- const char *name;
- if (extsym->st_name)
- name = strtab + extsym->st_name;
- else
- name = f->sections[extsym->st_shndx]->name;
- intsym = obj_find_symbol(f, name);
- }
- intsym->r_type = ELFW(R_TYPE)(rel->r_info);
- }
- }
- }
- break;
- }
- }
-
- f->filename = xstrdup(filename);
-
- return f;
-}
-
-void obj_free(struct obj_file *f)
-{
- struct obj_section *sec;
- struct obj_symbol *sym;
- struct obj_symbol *next;
- int i;
- int n;
-
- if (f->sections) {
- n = f->header.e_shnum;
- for (i = 0; i < n; ++i) {
- if ((sec = f->sections[i]) != NULL) {
- if (sec->contents)
- free(sec->contents);
- free(sec);
- }
- }
- free(f->sections);
- }
-
- for (i = 0; i < HASH_BUCKETS; ++i) {
- for (sym = f->symtab[i]; sym; sym = next) {
- next = sym->next;
- free(sym);
- }
- }
-
- if (f->local_symtab)
- free(f->local_symtab);
-
- if (f->filename)
- free((char *)(f->filename));
-
- if (f->persist)
- free((char *)(f->persist));
-
- free(f);
-}
diff --git a/mdk-stage1/insmod-modutils/obj/obj_m68k.c b/mdk-stage1/insmod-modutils/obj/obj_m68k.c
deleted file mode 100644
index cb485aed7..000000000
--- a/mdk-stage1/insmod-modutils/obj/obj_m68k.c
+++ /dev/null
@@ -1,147 +0,0 @@
-/* m68k specific support for Elf loading and relocation.
- Copyright 1996, 1997 Linux International.
-
- Contributed by Richard Henderson <rth@tamu.edu>
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ident "$Id$"
-
-#include <stddef.h>
-#include <module.h>
-#include <obj.h>
-#include <util.h>
-
-
-/*======================================================================*/
-
-struct obj_file *
-arch_new_file (void)
-{
- return xmalloc(sizeof(struct obj_file));
-}
-
-struct obj_section *
-arch_new_section (void)
-{
- return xmalloc(sizeof(struct obj_section));
-}
-
-struct obj_symbol *
-arch_new_symbol (void)
-{
- return xmalloc(sizeof(struct obj_symbol));
-}
-
-int
-arch_load_proc_section(struct obj_section *sec, int fp)
-{
- /* Assume it's just a debugging section that we can safely
- ignore ... */
- sec->contents = NULL;
-
- return 0;
-}
-
-enum obj_reloc
-arch_apply_relocation (struct obj_file *ef,
- struct obj_section *targsec,
- struct obj_section *symsec,
- struct obj_symbol *sym,
- Elf32_Rela *rel,
- Elf32_Addr v)
-{
- char *loc = targsec->contents + rel->r_offset;
- Elf32_Addr dot = targsec->header.sh_addr + rel->r_offset;
-
- enum obj_reloc ret = obj_reloc_ok;
-
- switch (ELF32_R_TYPE(rel->r_info))
- {
- case R_68K_NONE:
- break;
-
- case R_68K_8:
- if (v > 0xff)
- ret = obj_reloc_overflow;
- *(char *)loc = v;
- break;
- case R_68K_16:
- if (v > 0xffff)
- ret = obj_reloc_overflow;
- *(short *)loc = v;
- break;
- case R_68K_32:
- *(int *)loc = v;
- break;
-
- case R_68K_PC8:
- v -= dot;
- if ((Elf32_Sword)v > 0x7f || (Elf32_Sword)v < -(Elf32_Sword)0x80)
- ret = obj_reloc_overflow;
- *(char *)loc = v;
- break;
- case R_68K_PC16:
- v -= dot;
- if ((Elf32_Sword)v > 0x7fff || (Elf32_Sword)v < -(Elf32_Sword)0x8000)
- ret = obj_reloc_overflow;
- *(short *)loc = v;
- break;
- case R_68K_PC32:
- *(int *)loc = v - dot;
- break;
-
- case R_68K_RELATIVE:
- *(int *)loc += ef->baseaddr;
- break;
-
- default:
- ret = obj_reloc_unhandled;
- break;
- }
-
- return ret;
-}
-
-int
-arch_create_got (struct obj_file *ef)
-{
- return 1;
-}
-
-int
-arch_init_module (struct obj_file *f, struct module *mod)
-{
- return 1;
-}
-
-int
-arch_finalize_section_address(struct obj_file *f, Elf32_Addr base)
-{
- int i, n = f->header.e_shnum;
-
- f->baseaddr = base;
- for (i = 0; i < n; ++i)
- f->sections[i]->header.sh_addr += base;
- return 1;
-}
-
-int
-arch_archdata (struct obj_file *fin, struct obj_section *sec)
-{
- return 0;
-}
diff --git a/mdk-stage1/insmod-modutils/obj/obj_mips.c b/mdk-stage1/insmod-modutils/obj/obj_mips.c
deleted file mode 100644
index c2315b659..000000000
--- a/mdk-stage1/insmod-modutils/obj/obj_mips.c
+++ /dev/null
@@ -1,238 +0,0 @@
-/* MIPS specific support for Elf loading and relocation.
- Copyright 1997, 1998 Linux International.
- Contributed by Ralf Baechle <ralf@gnu.ai.mit.edu>
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ident "$Id$"
-
-#include <string.h>
-#include <stdlib.h>
-#include <assert.h>
-
-#include <module.h>
-#include <obj.h>
-#include <util.h>
-
-
-/*======================================================================*/
-
-struct mips_hi16
-{
- struct mips_hi16 *next;
- Elf32_Addr *addr;
- Elf32_Addr value;
-};
-
-struct mips_file
-{
- struct obj_file root;
- struct mips_hi16 *mips_hi16_list;
-};
-
-/*======================================================================*/
-
-struct obj_file *
-arch_new_file (void)
-{
- struct mips_file *mf;
-
- mf = xmalloc(sizeof(*mf));
- mf->mips_hi16_list = NULL;
-
- return (struct obj_file *) mf;
-}
-
-struct obj_section *
-arch_new_section (void)
-{
- return xmalloc(sizeof(struct obj_section));
-}
-
-struct obj_symbol *
-arch_new_symbol (void)
-{
- return xmalloc(sizeof(struct obj_symbol));
-}
-
-int
-arch_load_proc_section(struct obj_section *sec, int fp)
-{
- switch (sec->header.sh_type)
- {
- case SHT_MIPS_DEBUG:
- case SHT_MIPS_REGINFO:
- /* Actually these two sections are as useless as something can be ... */
- sec->contents = NULL;
- break;
-
- case SHT_MIPS_LIBLIST:
- case SHT_MIPS_CONFLICT:
- case SHT_MIPS_GPTAB:
- case SHT_MIPS_UCODE:
- case SHT_MIPS_OPTIONS:
- case SHT_MIPS_DWARF:
- case SHT_MIPS_EVENTS:
- /* These shouldn't ever be in a module file. */
- error("Unhandled section header type: %08x", sec->header.sh_type);
-
- default:
- /* We don't even know the type. This time it might as well be a
- supernova. */
- error("Unknown section header type: %08x", sec->header.sh_type);
- return -1;
- }
-
- return 0;
-}
-
-enum obj_reloc
-arch_apply_relocation (struct obj_file *f,
- struct obj_section *targsec,
- struct obj_section *symsec,
- struct obj_symbol *sym,
- Elf32_Rel *rel,
- Elf32_Addr v)
-{
- struct mips_file *mf = (struct mips_file *)f;
- Elf32_Addr *loc = (Elf32_Addr *)(targsec->contents + rel->r_offset);
- Elf32_Addr dot = targsec->header.sh_addr + rel->r_offset;
- enum obj_reloc ret = obj_reloc_ok;
-
- /* _gp_disp is a magic symbol for PIC which is not supported for
- the kernel and loadable modules. */
- if (strcmp(sym->name, "_gp_disp") == 0)
- ret = obj_reloc_unhandled;
-
- switch (ELF32_R_TYPE(rel->r_info))
- {
- case R_MIPS_NONE:
- break;
-
- case R_MIPS_32:
- *loc += v;
- break;
-
- case R_MIPS_26:
- if (v % 4)
- ret = obj_reloc_dangerous;
- if ((v & 0xf0000000) != ((dot + 4) & 0xf0000000))
- ret = obj_reloc_overflow;
- *loc = (*loc & ~0x03ffffff) | ((*loc + (v >> 2)) & 0x03ffffff);
- break;
-
- case R_MIPS_HI16:
- {
- struct mips_hi16 *n;
-
- /* We cannot relocate this one now because we don't know the value
- of the carry we need to add. Save the information, and let LO16
- do the actual relocation. */
- n = (struct mips_hi16 *) xmalloc (sizeof *n);
- n->addr = loc;
- n->value = v;
- n->next = mf->mips_hi16_list;
- mf->mips_hi16_list = n;
- break;
- }
-
- case R_MIPS_LO16:
- {
- unsigned long insnlo = *loc;
- Elf32_Addr val, vallo;
-
- /* Sign extend the addend we extract from the lo insn. */
- vallo = ((insnlo & 0xffff) ^ 0x8000) - 0x8000;
-
- if (mf->mips_hi16_list != NULL)
- {
- struct mips_hi16 *l;
-
- l = mf->mips_hi16_list;
- while (l != NULL)
- {
- struct mips_hi16 *next;
- unsigned long insn;
-
- /* The value for the HI16 had best be the same. */
- assert(v == l->value);
-
- /* Do the HI16 relocation. Note that we actually don't
- need to know anything about the LO16 itself, except where
- to find the low 16 bits of the addend needed by the LO16. */
- insn = *l->addr;
- val = ((insn & 0xffff) << 16) + vallo;
- val += v;
-
- /* Account for the sign extension that will happen in the
- low bits. */
- val = ((val >> 16) + ((val & 0x8000) != 0)) & 0xffff;
-
- insn = (insn &~ 0xffff) | val;
- *l->addr = insn;
-
- next = l->next;
- free(l);
- l = next;
- }
-
- mf->mips_hi16_list = NULL;
- }
-
- /* Ok, we're done with the HI16 relocs. Now deal with the LO16. */
- val = v + vallo;
- insnlo = (insnlo & ~0xffff) | (val & 0xffff);
- *loc = insnlo;
- break;
- }
-
- default:
- ret = obj_reloc_unhandled;
- break;
- }
-
- return ret;
-}
-
-int
-arch_create_got (struct obj_file *f)
-{
- return 1;
-}
-
-int
-arch_init_module (struct obj_file *f, struct module *mod)
-{
- return 1;
-}
-
-int
-arch_finalize_section_address(struct obj_file *f, Elf32_Addr base)
-{
- int i, n = f->header.e_shnum;
-
- f->baseaddr = base;
- for (i = 0; i < n; ++i)
- f->sections[i]->header.sh_addr += base;
- return 1;
-}
-
-int
-arch_archdata (struct obj_file *fin, struct obj_section *sec)
-{
- return 0;
-}
diff --git a/mdk-stage1/insmod-modutils/obj/obj_ppc.c b/mdk-stage1/insmod-modutils/obj/obj_ppc.c
deleted file mode 100644
index 89bb8e46b..000000000
--- a/mdk-stage1/insmod-modutils/obj/obj_ppc.c
+++ /dev/null
@@ -1,255 +0,0 @@
-/* PowerPC specific support for Elf loading and relocation.
- Copyright 1996, 1997 Linux International.
-
- Adapted by Paul Mackerras <paulus@cs.anu.edu.au> from the
- obj-sparc.c and obj-alpha.c files.
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ident "$Id$"
-
-#include <stddef.h>
-#include <module.h>
-#include <obj.h>
-#include <util.h>
-#include <assert.h>
-
-
-/*======================================================================*/
-
-/*
- * Unfortunately, the bl (branch-and-link) instruction used for
- * procedure calls on the PowerPC can only reach +/- 32MB from the
- * current instruction. If the module is loaded far enough away from
- * the main kernel text (or other modules) that this limit is
- * exceeded, we have to redirect procedure calls via a procedure
- * linkage table (PLT). Each entry in the PLT contains instructions
- * to put the address of the procedure in a register and jump to it.
- */
-
-typedef unsigned int instruction; /* a powerpc instruction (4 bytes) */
-
-struct ppc_plt_entry
-{
- struct ppc_plt_entry *next;
- ElfW(Addr) addend;
- int offset;
- int inited;
-};
-
-struct ppc_file
-{
- struct obj_file file;
- struct obj_section *plt;
-};
-
-struct ppc_symbol
-{
- struct obj_symbol sym;
- struct ppc_plt_entry *plt_entries;
-};
-
-struct obj_file *
-arch_new_file (void)
-{
- struct ppc_file *f;
-
- f = xmalloc(sizeof(struct ppc_file));
- f->plt = NULL;
- return &f->file;
-}
-
-struct obj_section *
-arch_new_section (void)
-{
- return xmalloc(sizeof(struct obj_section));
-}
-
-struct obj_symbol *
-arch_new_symbol (void)
-{
- struct ppc_symbol *p;
-
- p = xmalloc(sizeof(struct ppc_symbol));
- p->plt_entries = NULL;
- return &p->sym;
-}
-
-int
-arch_load_proc_section(struct obj_section *sec, int fp)
-{
- /* Assume it's just a debugging section that we can safely
- ignore ... */
- sec->contents = NULL;
-
- return 0;
-}
-
-enum obj_reloc
-arch_apply_relocation (struct obj_file *ef,
- struct obj_section *targsec,
- struct obj_section *symsec,
- struct obj_symbol *sym,
- Elf32_Rela *rel,
- Elf32_Addr v)
-{
- Elf32_Addr *loc = (Elf32_Addr *)(targsec->contents + rel->r_offset);
- Elf32_Addr dot = targsec->header.sh_addr + rel->r_offset;
- struct ppc_file *pf = (struct ppc_file *) ef;
- struct ppc_symbol *psym = (struct ppc_symbol *) sym;
- struct ppc_plt_entry *pe;
- instruction *ip;
-
- enum obj_reloc ret = obj_reloc_ok;
-
- switch (ELF32_R_TYPE(rel->r_info))
- {
- case R_PPC_ADDR16_HA:
- *(unsigned short *)loc = (v + 0x8000) >> 16;
- break;
-
- case R_PPC_ADDR16_HI:
- *(unsigned short *)loc = v >> 16;
- break;
-
- case R_PPC_ADDR16_LO:
- *(unsigned short *)loc = v;
- break;
-
- case R_PPC_REL24:
- /* find the plt entry and initialize it if necessary */
- assert(psym != NULL);
- for (pe = psym->plt_entries; pe != NULL && pe->addend != rel->r_addend; )
- pe = pe->next;
- assert(pe != NULL);
- if (!pe->inited)
- {
- ip = (instruction *) (pf->plt->contents + pe->offset);
- ip[0] = 0x3d600000 + ((v + 0x8000) >> 16); /* lis r11,sym@ha */
- ip[1] = 0x396b0000 + (v & 0xffff); /* addi r11,r11,sym@l */
- ip[2] = 0x7d6903a6; /* mtctr r11 */
- ip[3] = 0x4e800420; /* bctr */
- pe->inited = 1;
- }
-
- v -= dot;
- if ((int)v < -0x02000000 || (int)v >= 0x02000000)
- {
- /* go via the plt */
- v = pf->plt->header.sh_addr + pe->offset - dot;
- }
- if (v & 3)
- ret = obj_reloc_dangerous;
- *loc = (*loc & ~0x03fffffc) | (v & 0x03fffffc);
- break;
-
- case R_PPC_REL32:
- *loc = v - dot;
- break;
-
- case R_PPC_ADDR32:
- *loc = v;
- break;
-
- default:
- ret = obj_reloc_unhandled;
- break;
- }
-
- return ret;
-}
-
-int
-arch_create_got (struct obj_file *f)
-{
- struct ppc_file *pf = (struct ppc_file *) f;
- int i, offset;
- struct obj_section *sec, *syms, *strs;
- ElfW(Rela) *rel, *relend;
- ElfW(Sym) *symtab, *extsym;
- const char *strtab, *name;
- struct ppc_symbol *intsym;
- struct ppc_plt_entry *pe;
-
- offset = 0;
- for (i = 0; i < f->header.e_shnum; ++i)
- {
- sec = f->sections[i];
- if (sec->header.sh_type != SHT_RELM)
- continue;
- syms = f->sections[sec->header.sh_link];
- strs = f->sections[syms->header.sh_link];
-
- rel = (ElfW(RelM) *) sec->contents;
- relend = rel + (sec->header.sh_size / sizeof(ElfW(RelM)));
- symtab = (ElfW(Sym) *) syms->contents;
- strtab = (const char *) strs->contents;
-
- for (; rel < relend; ++rel)
- {
- if (ELF32_R_TYPE(rel->r_info) != R_PPC_REL24)
- continue;
- extsym = &symtab[ELF32_R_SYM(rel->r_info)];
- if (extsym->st_name)
- name = strtab + extsym->st_name;
- else
- name = f->sections[extsym->st_shndx]->name;
- intsym = (struct ppc_symbol *) obj_find_symbol(f, name);
-
- for (pe = intsym->plt_entries; pe != NULL; pe = pe->next)
- if (pe->addend == rel->r_addend)
- break;
- if (pe == NULL)
- {
- pe = xmalloc(sizeof(struct ppc_plt_entry));
- pe->next = intsym->plt_entries;
- pe->addend = rel->r_addend;
- pe->offset = offset;
- pe->inited = 0;
- intsym->plt_entries = pe;
- offset += 16;
- }
- }
- }
-
- pf->plt = obj_create_alloced_section(f, ".plt", 16, offset);
-
- return 1;
-}
-
-int
-arch_init_module (struct obj_file *f, struct module *mod)
-{
- return 1;
-}
-
-int
-arch_finalize_section_address(struct obj_file *f, Elf32_Addr base)
-{
- int i, n = f->header.e_shnum;
-
- f->baseaddr = base;
- for (i = 0; i < n; ++i)
- f->sections[i]->header.sh_addr += base;
- return 1;
-}
-
-int
-arch_archdata (struct obj_file *fin, struct obj_section *sec)
-{
- return 0;
-}
diff --git a/mdk-stage1/insmod-modutils/obj/obj_reloc.c b/mdk-stage1/insmod-modutils/obj/obj_reloc.c
deleted file mode 100644
index f5f2de90d..000000000
--- a/mdk-stage1/insmod-modutils/obj/obj_reloc.c
+++ /dev/null
@@ -1,435 +0,0 @@
-/* Elf relocation routines.
- Copyright 1996, 1997 Linux International.
-
- Contributed by Richard Henderson <rth@tamu.edu>
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ident "$Id$"
-
-#include <string.h>
-#include <assert.h>
-#include <alloca.h>
-
-#include <obj.h>
-#include <util.h>
-
-/*======================================================================*/
-
-int
-obj_string_patch(struct obj_file *f, int secidx, ElfW(Addr) offset,
- const char *string)
-{
- struct obj_string_patch_struct *p;
- struct obj_section *strsec;
- size_t len = strlen(string)+1;
- char *loc;
-
- p = xmalloc(sizeof(*p));
- p->next = f->string_patches;
- p->reloc_secidx = secidx;
- p->reloc_offset = offset;
- f->string_patches = p;
-
- strsec = obj_find_section(f, ".kstrtab");
- if (strsec == NULL)
- {
- strsec = obj_create_alloced_section(f, ".kstrtab", 1, len);
- p->string_offset = 0;
- loc = strsec->contents;
- }
- else
- {
- p->string_offset = strsec->header.sh_size;
- loc = obj_extend_section(strsec, len);
- }
- memcpy(loc, string, len);
-
- return 1;
-}
-
-int
-obj_symbol_patch(struct obj_file *f, int secidx, ElfW(Addr) offset,
- struct obj_symbol *sym)
-{
- struct obj_symbol_patch_struct *p;
-
- p = xmalloc(sizeof(*p));
- p->next = f->symbol_patches;
- p->reloc_secidx = secidx;
- p->reloc_offset = offset;
- p->sym = sym;
- f->symbol_patches = p;
-
- return 1;
-}
-
-int
-obj_check_undefineds(struct obj_file *f, int quiet)
-{
- unsigned long i;
- int ret = 1;
-
- for (i = 0; i < HASH_BUCKETS; ++i)
- {
- struct obj_symbol *sym;
- for (sym = f->symtab[i]; sym ; sym = sym->next)
- if (sym->secidx == SHN_UNDEF)
- {
- if (ELFW(ST_BIND)(sym->info) == STB_WEAK)
- {
- sym->secidx = SHN_ABS;
- sym->value = 0;
- }
- else if (sym->r_type) /* assumes R_arch_NONE is 0 on all arch */
- {
- if (!quiet)
- error("unresolved symbol %s", sym->name);
- ret = 0;
- }
- }
- }
-
- return ret;
-}
-
-void
-obj_clear_undefineds(struct obj_file *f)
-{
- unsigned long i;
- struct obj_symbol *sym;
- for (i = 0; i < HASH_BUCKETS; ++i)
- {
- for (sym = f->symtab[i]; sym ; sym = sym->next)
- if (sym->secidx == SHN_UNDEF)
- {
- sym->secidx = SHN_ABS;
- sym->value = 0;
- }
- }
-}
-
-void
-obj_allocate_commons(struct obj_file *f)
-{
- struct common_entry
- {
- struct common_entry *next;
- struct obj_symbol *sym;
- } *common_head = NULL;
-
- unsigned long i;
-
- for (i = 0; i < HASH_BUCKETS; ++i)
- {
- struct obj_symbol *sym;
- for (sym = f->symtab[i]; sym ; sym = sym->next)
- if (sym->secidx == SHN_COMMON)
- {
- /* Collect all COMMON symbols and sort them by size so as to
- minimize space wasted by alignment requirements. */
- {
- struct common_entry **p, *n;
- for (p = &common_head; *p ; p = &(*p)->next)
- if (sym->size <= (*p)->sym->size)
- break;
-
- n = alloca(sizeof(*n));
- n->next = *p;
- n->sym = sym;
- *p = n;
- }
- }
- }
-
- for (i = 1; i < f->local_symtab_size; ++i)
- {
- struct obj_symbol *sym = f->local_symtab[i];
- if (sym && sym->secidx == SHN_COMMON)
- {
- struct common_entry **p, *n;
- for (p = &common_head; *p ; p = &(*p)->next)
- if (sym == (*p)->sym)
- break;
- else if (sym->size < (*p)->sym->size)
- {
- n = alloca(sizeof(*n));
- n->next = *p;
- n->sym = sym;
- *p = n;
- break;
- }
- }
- }
-
- if (common_head)
- {
- /* Find the bss section. */
- for (i = 0; i < f->header.e_shnum; ++i)
- if (f->sections[i]->header.sh_type == SHT_NOBITS)
- break;
-
- /* If for some reason there hadn't been one, create one. */
- if (i == f->header.e_shnum)
- {
- struct obj_section *sec;
-
- f->sections = xrealloc(f->sections, (i+1) * sizeof(sec));
- f->sections[i] = sec = arch_new_section();
- f->header.e_shnum = i+1;
-
- memset(sec, 0, sizeof(*sec));
- sec->header.sh_type = SHT_PROGBITS;
- sec->header.sh_flags = SHF_WRITE|SHF_ALLOC;
- sec->name = ".bss";
- sec->idx = i;
- }
-
- /* Allocate the COMMONS. */
- {
- ElfW(Addr) bss_size = f->sections[i]->header.sh_size;
- ElfW(Addr) max_align = f->sections[i]->header.sh_addralign;
- struct common_entry *c;
-
- for (c = common_head; c ; c = c->next)
- {
- ElfW(Addr) align = c->sym->value;
-
- if (align > max_align)
- max_align = align;
- if (bss_size & (align - 1))
- bss_size = (bss_size | (align - 1)) + 1;
-
- c->sym->secidx = i;
- c->sym->value = bss_size;
-
- bss_size += c->sym->size;
- }
-
- f->sections[i]->header.sh_size = bss_size;
- f->sections[i]->header.sh_addralign = max_align;
- }
- }
-
- /* For the sake of patch relocation and parameter initialization,
- allocate zeroed data for NOBITS sections now. Note that after
- this we cannot assume NOBITS are really empty. */
- for (i = 0; i < f->header.e_shnum; ++i)
- {
- struct obj_section *s = f->sections[i];
- if (s->header.sh_type == SHT_NOBITS)
- {
- if (s->header.sh_size)
- s->contents = memset(xmalloc(s->header.sh_size),
- 0, s->header.sh_size);
- else
- s->contents = NULL;
- s->header.sh_type = SHT_PROGBITS;
- }
- }
-}
-
-unsigned long
-obj_load_size (struct obj_file *f)
-{
- unsigned long dot = 0;
- struct obj_section *sec;
-
- /* Finalize the positions of the sections relative to one another. */
-
- for (sec = f->load_order; sec ; sec = sec->load_next)
- {
- ElfW(Addr) align;
-
- align = sec->header.sh_addralign;
- if (align && (dot & (align - 1)))
- dot = (dot | (align - 1)) + 1;
-
- sec->header.sh_addr = dot;
- dot += sec->header.sh_size;
- }
-
- return dot;
-}
-
-int
-obj_relocate (struct obj_file *f, ElfW(Addr) base)
-{
- int i, n = f->header.e_shnum;
- int ret = 1;
-
- /* Finalize the addresses of the sections. */
-
- arch_finalize_section_address(f, base);
-
- /* And iterate over all of the relocations. */
-
- for (i = 0; i < n; ++i)
- {
- struct obj_section *relsec, *symsec, *targsec, *strsec;
- ElfW(RelM) *rel, *relend;
- ElfW(Sym) *symtab;
- const char *strtab;
-
- relsec = f->sections[i];
- if (relsec->header.sh_type != SHT_RELM)
- continue;
-
- symsec = f->sections[relsec->header.sh_link];
- targsec = f->sections[relsec->header.sh_info];
- strsec = f->sections[symsec->header.sh_link];
-
- rel = (ElfW(RelM) *)relsec->contents;
- relend = rel + (relsec->header.sh_size / sizeof(ElfW(RelM)));
- symtab = (ElfW(Sym) *)symsec->contents;
- strtab = (const char *)strsec->contents;
-
- for (; rel < relend; ++rel)
- {
- ElfW(Addr) value = 0;
- struct obj_symbol *intsym = NULL;
- unsigned long symndx;
- ElfW(Sym) *extsym = 0;
- const char *errmsg;
-
- /* Attempt to find a value to use for this relocation. */
-
- symndx = ELFW(R_SYM)(rel->r_info);
- if (symndx)
- {
- /* Note we've already checked for undefined symbols. */
-
- extsym = &symtab[symndx];
- if (ELFW(ST_BIND)(extsym->st_info) == STB_LOCAL)
- {
- /* Local symbols we look up in the local table to be sure
- we get the one that is really intended. */
- intsym = f->local_symtab[symndx];
- }
- else
- {
- /* Others we look up in the hash table. */
- const char *name;
- if (extsym->st_name)
- name = strtab + extsym->st_name;
- else
- name = f->sections[extsym->st_shndx]->name;
- intsym = obj_find_symbol(f, name);
- }
-
- value = obj_symbol_final_value(f, intsym);
- }
-
-#if SHT_RELM == SHT_RELA
-#if defined(__alpha__) && defined(AXP_BROKEN_GAS)
- /* Work around a nasty GAS bug, that is fixed as of 2.7.0.9. */
- if (!extsym || !extsym->st_name ||
- ELFW(ST_BIND)(extsym->st_info) != STB_LOCAL)
-#endif
- value += rel->r_addend;
-#endif
-
- /* Do it! */
- switch (arch_apply_relocation(f,targsec,symsec,intsym,rel,value))
- {
- case obj_reloc_ok:
- break;
-
- case obj_reloc_overflow:
- errmsg = "Relocation overflow";
- goto bad_reloc;
- case obj_reloc_dangerous:
- errmsg = "Dangerous relocation";
- goto bad_reloc;
- case obj_reloc_unhandled:
- errmsg = "Unhandled relocation";
- goto bad_reloc;
- case obj_reloc_constant_gp:
- errmsg = "Modules compiled with -mconstant-gp cannot be loaded";
- goto bad_reloc;
- bad_reloc:
- if (extsym)
- {
- error("%s of type %ld for %s", errmsg,
- (long)ELFW(R_TYPE)(rel->r_info),
- strtab + extsym->st_name);
- }
- else
- {
- error("%s of type %ld", errmsg,
- (long)ELFW(R_TYPE)(rel->r_info));
- }
- ret = 0;
- break;
- }
- }
- }
-
- /* Finally, take care of the patches. */
-
- if (f->string_patches)
- {
- struct obj_string_patch_struct *p;
- struct obj_section *strsec;
- ElfW(Addr) strsec_base;
- strsec = obj_find_section(f, ".kstrtab");
- strsec_base = strsec->header.sh_addr;
-
- for (p = f->string_patches; p ; p = p->next)
- {
- struct obj_section *targsec = f->sections[p->reloc_secidx];
- *(ElfW(Addr) *)(targsec->contents + p->reloc_offset)
- = strsec_base + p->string_offset;
- }
- }
-
- if (f->symbol_patches)
- {
- struct obj_symbol_patch_struct *p;
-
- for (p = f->symbol_patches; p; p = p->next)
- {
- struct obj_section *targsec = f->sections[p->reloc_secidx];
- *(ElfW(Addr) *)(targsec->contents + p->reloc_offset)
- = obj_symbol_final_value(f, p->sym);
- }
- }
-
- return ret;
-}
-
-int
-obj_create_image (struct obj_file *f, char *image)
-{
- struct obj_section *sec;
- ElfW(Addr) base = f->baseaddr;
-
- for (sec = f->load_order; sec ; sec = sec->load_next)
- {
- char *secimg;
-
- if (sec->contents == 0)
- continue;
-
- secimg = image + (sec->header.sh_addr - base);
-
- /* Note that we allocated data for NOBITS sections earlier. */
- memcpy(secimg, sec->contents, sec->header.sh_size);
- }
-
- return 1;
-}
diff --git a/mdk-stage1/insmod-modutils/obj/obj_s390.c b/mdk-stage1/insmod-modutils/obj/obj_s390.c
deleted file mode 100644
index 3da72e771..000000000
--- a/mdk-stage1/insmod-modutils/obj/obj_s390.c
+++ /dev/null
@@ -1,245 +0,0 @@
-/* S/390 specific support for Elf loading and relocation.
- Copyright 1996, 1997 Linux International.
-
- Contributed by Richard Henderson <rth@tamu.edu>
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ident "$Id$"
-
-#include <string.h>
-#include <assert.h>
-
-#include <module.h>
-#include <obj.h>
-#include <util.h>
-
-
-/*======================================================================*/
-
-struct s390_got_entry
-{
- int offset;
- unsigned offset_done : 1;
- unsigned reloc_done : 1;
-};
-
-struct s390_file
-{
- struct obj_file root;
- struct obj_section *got;
-};
-
-struct s390_symbol
-{
- struct obj_symbol root;
- struct s390_got_entry gotent;
-};
-
-
-/*======================================================================*/
-
-struct obj_file *
-arch_new_file (void)
-{
- struct s390_file *f;
- f = xmalloc(sizeof(*f));
- f->got = NULL;
- return &f->root;
-}
-
-struct obj_section *
-arch_new_section (void)
-{
- return xmalloc(sizeof(struct obj_section));
-}
-
-struct obj_symbol *
-arch_new_symbol (void)
-{
- struct s390_symbol *sym;
- sym = xmalloc(sizeof(*sym));
- memset(&sym->gotent, 0, sizeof(sym->gotent));
- return &sym->root;
-}
-
-int
-arch_load_proc_section(struct obj_section *sec, int fp)
-{
- /* Assume it's just a debugging section that we can safely
- ignore ... */
- sec->contents = NULL;
-
- return 0;
-}
-
-enum obj_reloc
-arch_apply_relocation (struct obj_file *f,
- struct obj_section *targsec,
- struct obj_section *symsec,
- struct obj_symbol *sym,
- Elf32_Rela *rel,
- Elf32_Addr v)
-{
- struct s390_file *ifile = (struct s390_file *)f;
- struct s390_symbol *isym = (struct s390_symbol *)sym;
-
- Elf32_Addr *loc = (Elf32_Addr *)(targsec->contents + rel->r_offset);
- Elf32_Addr dot = targsec->header.sh_addr + rel->r_offset;
- Elf32_Addr got = ifile->got ? ifile->got->header.sh_addr : 0;
-
- enum obj_reloc ret = obj_reloc_ok;
-
- switch (ELF32_R_TYPE(rel->r_info))
- {
- case R_390_NONE:
- break;
-
- case R_390_32:
- *loc += v;
- break;
-
- case R_390_PLT32:
- case R_390_PC32:
- *loc += v - dot;
- break;
-
- case R_390_GLOB_DAT:
- case R_390_JMP_SLOT:
- *loc = v;
- break;
-
- case R_390_RELATIVE:
- *loc += f->baseaddr;
- break;
-
- case R_390_GOTPC:
- assert(got != 0);
- *loc += got - dot;
- break;
-
- case R_390_GOT32:
- assert(isym != NULL);
- if (!isym->gotent.reloc_done)
- {
- isym->gotent.reloc_done = 1;
- *(Elf32_Addr *)(ifile->got->contents + isym->gotent.offset) = v;
- }
- *loc += isym->gotent.offset;
- break;
-
- case R_390_GOTOFF:
- assert(got != 0);
- *loc += v - got;
- break;
-
- default:
- ret = obj_reloc_unhandled;
- break;
- }
-
- return ret;
-}
-
-int
-arch_create_got (struct obj_file *f)
-{
- struct s390_file *ifile = (struct s390_file *)f;
- int i, n, offset = 0, gotneeded = 0;
-
- n = ifile->root.header.e_shnum;
- for (i = 0; i < n; ++i)
- {
- struct obj_section *relsec, *symsec, *strsec;
- Elf32_Rel *rel, *relend;
- Elf32_Sym *symtab;
- const char *strtab;
-
- relsec = ifile->root.sections[i];
- if (relsec->header.sh_type != SHT_REL)
- continue;
-
- symsec = ifile->root.sections[relsec->header.sh_link];
- strsec = ifile->root.sections[symsec->header.sh_link];
-
- rel = (Elf32_Rel *)relsec->contents;
- relend = rel + (relsec->header.sh_size / sizeof(Elf32_Rel));
- symtab = (Elf32_Sym *)symsec->contents;
- strtab = (const char *)strsec->contents;
-
- for (; rel < relend; ++rel)
- {
- Elf32_Sym *extsym;
- struct s390_symbol *intsym;
- const char *name;
-
- switch (ELF32_R_TYPE(rel->r_info))
- {
- case R_390_GOTPC:
- case R_390_GOTOFF:
- gotneeded = 1;
- default:
- continue;
-
- case R_390_GOT32:
- break;
- }
-
- extsym = &symtab[ELF32_R_SYM(rel->r_info)];
- if (extsym->st_name)
- name = strtab + extsym->st_name;
- else
- name = f->sections[extsym->st_shndx]->name;
- intsym = (struct s390_symbol *)obj_find_symbol(&ifile->root, name);
-
- if (!intsym->gotent.offset_done)
- {
- intsym->gotent.offset_done = 1;
- intsym->gotent.offset = offset;
- offset += 4;
- }
- }
- }
-
- if (offset > 0 || gotneeded)
- ifile->got = obj_create_alloced_section(&ifile->root, ".got", 4, offset);
-
- return 1;
-}
-
-int
-arch_init_module (struct obj_file *f, struct module *m)
-{
- return 1;
-}
-
-int
-arch_finalize_section_address(struct obj_file *f, Elf32_Addr base)
-{
- int i, n = f->header.e_shnum;
-
- f->baseaddr = base;
- for (i = 0; i < n; ++i)
- f->sections[i]->header.sh_addr += base;
- return 1;
-}
-
-int
-arch_archdata (struct obj_file *fin, struct obj_section *sec)
-{
- return 0;
-}
diff --git a/mdk-stage1/insmod-modutils/obj/obj_sparc.c b/mdk-stage1/insmod-modutils/obj/obj_sparc.c
deleted file mode 100644
index 1a03c9090..000000000
--- a/mdk-stage1/insmod-modutils/obj/obj_sparc.c
+++ /dev/null
@@ -1,226 +0,0 @@
-/* Sparc specific support for Elf loading and relocation.
- Copyright 1996, 1997 Linux International.
-
- Contributed by Richard Henderson <rth@tamu.edu>
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ident "$Id$"
-
-#include <stddef.h>
-#include <module.h>
-#include <obj.h>
-#include <util.h>
-
-
-/*======================================================================*/
-
-struct obj_file *
-arch_new_file (void)
-{
- return xmalloc(sizeof(struct obj_file));
-}
-
-struct obj_section *
-arch_new_section (void)
-{
- return xmalloc(sizeof(struct obj_section));
-}
-
-struct obj_symbol *
-arch_new_symbol (void)
-{
- return xmalloc(sizeof(struct obj_symbol));
-}
-
-int
-arch_load_proc_section(struct obj_section *sec, int fp)
-{
- /* Assume it's just a debugging section that we can safely
- ignore ... */
- sec->contents = NULL;
-
- return 0;
-}
-
-enum obj_reloc
-arch_apply_relocation (struct obj_file *ef,
- struct obj_section *targsec,
- struct obj_section *symsec,
- struct obj_symbol *sym,
- Elf32_Rela *rel,
- Elf32_Addr v)
-{
- Elf32_Addr *loc = (Elf32_Addr *)(targsec->contents + rel->r_offset);
- Elf32_Addr dot = targsec->header.sh_addr + rel->r_offset;
-
- enum obj_reloc ret = obj_reloc_ok;
-
- switch (ELF32_R_TYPE(rel->r_info))
- {
- case R_SPARC_NONE:
- break;
- case R_SPARC_8:
- if (v > 0xff)
- ret = obj_reloc_overflow;
- *loc = (*loc & ~0xff) | (v & 0xff);
- break;
- case R_SPARC_16:
- if (v > 0xffff)
- ret = obj_reloc_overflow;
- *loc = (*loc & ~0xffff) | (v & 0xffff);
- break;
- case R_SPARC_32:
- *loc = v;
- break;
- case R_SPARC_DISP8:
- v -= dot;
- if (v > 0xff)
- ret = obj_reloc_overflow;
- *loc = (*loc & ~0xff) | (v & 0xff);
- break;
- case R_SPARC_DISP16:
- v -= dot;
- if (v > 0xffff)
- ret = obj_reloc_overflow;
- *loc = (*loc & ~0xffff) | (v & 0xffff);
- break;
- case R_SPARC_DISP32:
- v -= dot;
- *loc = v;
- break;
- case R_SPARC_WDISP30:
- v -= dot;
- if (v % 4)
- ret = obj_reloc_dangerous;
- *loc = (*loc & ~0x3fffffff) | (v >> 2);
- break;
- case R_SPARC_WDISP22:
- v -= dot;
- if (v % 4)
- ret = obj_reloc_dangerous;
- *loc = (*loc & ~0x3fffff) | ((v >> 2) & 0x3fffff);
- break;
- case R_SPARC_HI22:
- *loc = (*loc & ~0x3fffff) | (v >> 10);
- break;
- case R_SPARC_22:
- if (v > 0x3fffff)
- ret = obj_reloc_overflow;
- *loc = (*loc & ~0x3fffff) | (v & 0x3fffff);
- break;
- case R_SPARC_13:
- if (v > 0x1fff)
- ret = obj_reloc_overflow;
- *loc = (*loc & ~0x1fff) | (v & 0x1fff);
- break;
- case R_SPARC_LO10:
- *loc = (*loc & ~0x3ff) | (v & 0x3ff);
- break;
-
- case R_SPARC_PC10:
- v -= dot;
- *loc = (*loc & ~0x3ff) | (v & 0x3ff);
- break;
- case R_SPARC_PC22:
- v -= dot;
- *loc = (*loc & ~0x3fffff) | (v >> 10);
- break;
-
- case R_SPARC_UA32:
- *(((char *)loc) + 0) = (char)(v >> 24);
- *(((char *)loc) + 1) = (char)(v >> 16);
- *(((char *)loc) + 2) = (char)(v >> 8);
- *(((char *)loc) + 3) = (char)v;
- break;
-
-#ifdef R_SPARC_10
- case R_SPARC_10:
- if (v > 0x3ff)
- ret = obj_reloc_overflow;
- *loc = (*loc & ~0x3ff) | (v & 0x3ff);
- break;
- case R_SPARC_11:
- if (v > 0x7ff)
- ret = obj_reloc_overflow;
- *loc = (*loc & ~0x7ff) | (v & 0x7ff);
- break;
- case R_SPARC_WDISP16:
- v -= dot;
- if (v % 4)
- ret = obj_reloc_dangerous;
- *loc = (*loc & ~0x303fff) | ((v << 4) & 0x300000) | ((v >> 2) & 0x3fff);
- break;
- case R_SPARC_WDISP19:
- v -= dot;
- if (v % 4)
- ret = obj_reloc_dangerous;
- *loc = (*loc & ~0x7ffff) | ((v >> 2) & 0x7ffff);
- break;
- case R_SPARC_7:
- if (v > 0x7f)
- ret = obj_reloc_overflow;
- *loc = (*loc & ~0x7f) | (v & 0x7f);
- break;
- case R_SPARC_5:
- if (v > 0x1f)
- ret = obj_reloc_overflow;
- *loc = (*loc & ~0x1f) | (v & 0x1f);
- break;
- case R_SPARC_6:
- if (v > 0x3f)
- ret = obj_reloc_overflow;
- *loc = (*loc & ~0x3f) | (v & 0x3f);
- break;
-#endif /* R_SPARC_10 */
-
- default:
- ret = obj_reloc_unhandled;
- break;
- }
-
- return ret;
-}
-
-int
-arch_create_got (struct obj_file *ef)
-{
- return 1;
-}
-
-int
-arch_init_module (struct obj_file *f, struct module *mod)
-{
- return 1;
-}
-
-int
-arch_finalize_section_address(struct obj_file *f, Elf32_Addr base)
-{
- int i, n = f->header.e_shnum;
-
- f->baseaddr = base;
- for (i = 0; i < n; ++i)
- f->sections[i]->header.sh_addr += base;
- return 1;
-}
-
-int
-arch_archdata (struct obj_file *fin, struct obj_section *sec)
-{
- return 0;
-}
diff --git a/mdk-stage1/insmod-modutils/obj/obj_sparc64.c b/mdk-stage1/insmod-modutils/obj/obj_sparc64.c
deleted file mode 100644
index 84e8d18a0..000000000
--- a/mdk-stage1/insmod-modutils/obj/obj_sparc64.c
+++ /dev/null
@@ -1,352 +0,0 @@
-/* Sparc64 specific support for Elf loading and relocation.
- Copyright 1997 Linux International.
-
- Contributed by Jakub Jelinek <jj@sunsite.mff.cuni.cz>
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ident "$Id$"
-
-#include <stddef.h>
-#include <module.h>
-#include <obj.h>
-#include <util.h>
-
-
-/*======================================================================*/
-
-struct obj_file *
-arch_new_file (void)
-{
- return xmalloc(sizeof(struct obj_file));
-}
-
-struct obj_section *
-arch_new_section (void)
-{
- return xmalloc(sizeof(struct obj_section));
-}
-
-struct obj_symbol *
-arch_new_symbol (void)
-{
- return xmalloc(sizeof(struct obj_symbol));
-}
-
-#ifdef BROKEN_SPARC64_RELOCS
-
-#undef R_SPARC_PLT32
-#undef R_SPARC_HIPLT22
-#undef R_SPARC_LOPLT10
-#undef R_SPARC_PCPLT32
-#undef R_SPARC_PCPLT22
-#undef R_SPARC_PCPLT10
-#undef R_SPARC_10
-#undef R_SPARC_11
-#undef R_SPARC_64
-#undef R_SPARC_OLO10
-#undef R_SPARC_HH22
-#undef R_SPARC_HM10
-#undef R_SPARC_LM22
-#undef R_SPARC_PC_HH22
-#undef R_SPARC_PC_HM10
-#undef R_SPARC_PC_LM22
-#undef R_SPARC_WDISP16
-#undef R_SPARC_WDISP19
-#undef R_SPARC_GLOB_JMP
-#undef R_SPARC_7
-#undef R_SPARC_5
-#undef R_SPARC_6
-
-#define R_SPARC_10 24
-#define R_SPARC_11 25
-#define R_SPARC_64 26
-#define R_SPARC_OLO10 27
-#define R_SPARC_HH22 28
-#define R_SPARC_HM10 29
-#define R_SPARC_LM22 30
-#define R_SPARC_PC_HH22 31
-#define R_SPARC_PC_HM10 32
-#define R_SPARC_PC_LM22 33
-#define R_SPARC_WDISP16 34
-#define R_SPARC_WDISP19 35
-#define R_SPARC_GLOB_JMP 36
-#define R_SPARC_7 37
-#define R_SPARC_5 38
-#define R_SPARC_6 39
-
-#else
-
-#ifndef R_SPARC_64
-
-#define R_SPARC_64 32
-#define R_SPARC_OLO10 33
-#define R_SPARC_HH22 34
-#define R_SPARC_HM10 35
-#define R_SPARC_LM22 36
-#define R_SPARC_PC_HH22 37
-#define R_SPARC_PC_HM10 38
-#define R_SPARC_PC_LM22 39
-
-#endif
-
-#endif
-
-int
-arch_load_proc_section(struct obj_section *sec, int fp)
-{
- /* Assume it's just a debugging section that we can safely
- ignore ... */
- sec->contents = NULL;
-
- return 0;
-}
-
-#define ELF64_R_TYPE_ID(info) ((info) & 0xff)
-#define ELF64_R_TYPE_DATA(info) ((info) >> 8)
-
-enum obj_reloc
-arch_apply_relocation (struct obj_file *ef,
- struct obj_section *targsec,
- struct obj_section *symsec,
- struct obj_symbol *sym,
- Elf64_Rela *rel,
- Elf64_Addr v)
-{
- unsigned int *loc = (unsigned int *)(targsec->contents + rel->r_offset);
- unsigned int dot = targsec->header.sh_addr + rel->r_offset;
-
- enum obj_reloc ret = obj_reloc_ok;
-
- switch (ELF64_R_TYPE_ID(rel->r_info))
- {
- case R_SPARC_NONE:
- break;
-
- case R_SPARC_64:
- case R_SPARC_UA64:
- if (! ((long) loc & 3)) {
- /* Common in .eh_frame */
- ((unsigned int *) loc) [0] = v >> 32;
- ((unsigned int *) loc) [1] = v;
- break;
- }
- ((unsigned char *) loc) [0] = v >> 56;
- ((unsigned char *) loc) [1] = v >> 48;
- ((unsigned char *) loc) [2] = v >> 40;
- ((unsigned char *) loc) [3] = v >> 32;
- ((unsigned char *) loc) [4] = v >> 24;
- ((unsigned char *) loc) [5] = v >> 16;
- ((unsigned char *) loc) [6] = v >> 8;
- ((unsigned char *) loc) [7] = v;
- break;
- case R_SPARC_32:
- case R_SPARC_UA32:
- if (! ((long) loc & 3)) {
- *loc = v;
- break;
- }
- ((unsigned char *) loc) [0] = v >> 24;
- ((unsigned char *) loc) [1] = v >> 16;
- ((unsigned char *) loc) [2] = v >> 8;
- ((unsigned char *) loc) [3] = v;
- break;
- case R_SPARC_16:
- if (v > 0xffff)
- ret = obj_reloc_overflow;
- *loc = (*loc & ~0xffff) | (v & 0xffff);
- break;
- case R_SPARC_8:
- if (v > 0xff)
- ret = obj_reloc_overflow;
- *loc = (*loc & ~0xff) | (v & 0xff);
- break;
-
- case R_SPARC_DISP32:
- v -= dot;
- *loc = v;
- break;
- case R_SPARC_DISP16:
- v -= dot;
- if (v > 0xffff)
- ret = obj_reloc_overflow;
- *loc = (*loc & ~0xffff) | (v & 0xffff);
- break;
- case R_SPARC_DISP8:
- v -= dot;
- if (v > 0xff)
- ret = obj_reloc_overflow;
- *loc = (*loc & ~0xff) | (v & 0xff);
- break;
- case R_SPARC_WDISP30:
- v -= dot;
- if (v % 4)
- ret = obj_reloc_dangerous;
- *loc = (*loc & ~0x3fffffff) | ((v >> 2) & 0x3fffffff);
- break;
-
- /* MEDLOW code model relocs */
- case R_SPARC_LO10:
- *loc = (*loc & ~0x3ff) | (v & 0x3ff);
- break;
- case R_SPARC_HI22:
- *loc = (*loc & ~0x3fffff) | (v >> 10);
- break;
- case R_SPARC_OLO10:
- *loc = (*loc & ~0x1fff) | (((v & 0x3ff) + ELF64_R_TYPE_DATA (rel->r_info)) & 0x1fff);
- break;
-
- /* MEDMID code model relocs */
- case R_SPARC_H44:
- *loc = (*loc & ~0x3fffff) | (v >> 22);
- break;
- case R_SPARC_M44:
- *loc = (*loc & ~0x3ff) | ((v >> 12) & 0x3ff);
- break;
- case R_SPARC_L44:
- *loc = (*loc & ~0xfff) | (v & 0xfff);
- break;
-
- /* MEDANY code model relocs */
- case R_SPARC_HH22:
- *loc = (*loc & ~0x3fffff) | (v >> 42);
- break;
- case R_SPARC_HM10:
- *loc = (*loc & ~0x3ff) | ((v >> 32) & 0x3ff);
- break;
- case R_SPARC_LM22:
- *loc = (*loc & ~0x3fffff) | ((v >> 10) & 0x3fffff);
- break;
-
- case R_SPARC_WDISP22:
- v -= dot;
- if (v % 4)
- ret = obj_reloc_dangerous;
- *loc = (*loc & ~0x3fffff) | ((v >> 2) & 0x3fffff);
- break;
- case R_SPARC_22:
- if (v > 0x3fffff)
- ret = obj_reloc_overflow;
- *loc = (*loc & ~0x3fffff) | (v & 0x3fffff);
- break;
- case R_SPARC_13:
- if (v > 0x1fff)
- ret = obj_reloc_overflow;
- *loc = (*loc & ~0x1fff) | (v & 0x1fff);
- break;
-
- case R_SPARC_PC10:
- v -= dot;
- *loc = (*loc & ~0x3ff) | (v & 0x3ff);
- break;
- case R_SPARC_PC22:
- v -= dot;
- *loc = (*loc & ~0x3fffff) | ((v >> 10) & 0x3fffff);
- break;
-
-#ifdef R_SPARC_10
- case R_SPARC_10:
- if (v > 0x3ff)
- ret = obj_reloc_overflow;
- *loc = (*loc & ~0x3ff) | (v & 0x3ff);
- break;
- case R_SPARC_11:
- if (v > 0x7ff)
- ret = obj_reloc_overflow;
- *loc = (*loc & ~0x7ff) | (v & 0x7ff);
- break;
-
-#ifdef R_SPARC_64
- case R_SPARC_PC_HH22:
- v -= dot;
- *loc = (*loc & ~0x3fffff) | (v >> 42);
- break;
- case R_SPARC_PC_HM10:
- v -= dot;
- *loc = (*loc & ~0x3ff) | ((v >> 32) & 0x3ff);
- break;
- case R_SPARC_PC_LM22:
- v -= dot;
- *loc = (*loc & ~0x3fffff) | ((v >> 10) & 0x3fffff);
- break;
-#endif
-
- case R_SPARC_WDISP16:
- v -= dot;
- if (v % 4)
- ret = obj_reloc_dangerous;
- *loc = (*loc & ~0x303fff) | ((v << 4) & 0x300000) | ((v >> 2) & 0x3fff);
- break;
- case R_SPARC_WDISP19:
- v -= dot;
- if (v % 4)
- ret = obj_reloc_dangerous;
- *loc = (*loc & ~0x7ffff) | ((v >> 2) & 0x7ffff);
- break;
- case R_SPARC_7:
- if (v > 0x7f)
- ret = obj_reloc_overflow;
- *loc = (*loc & ~0x7f) | (v & 0x7f);
- break;
- case R_SPARC_5:
- if (v > 0x1f)
- ret = obj_reloc_overflow;
- *loc = (*loc & ~0x1f) | (v & 0x1f);
- break;
- case R_SPARC_6:
- if (v > 0x3f)
- ret = obj_reloc_overflow;
- *loc = (*loc & ~0x3f) | (v & 0x3f);
- break;
-#endif /* R_SPARC_10 */
-
- default:
- ret = obj_reloc_unhandled;
- break;
- }
-
- return ret;
-}
-
-int
-arch_create_got (struct obj_file *ef)
-{
- return 1;
-}
-
-int
-arch_init_module (struct obj_file *f, struct module *mod)
-{
- return 1;
-}
-
-int
-arch_finalize_section_address(struct obj_file *f, Elf64_Addr base)
-{
- int i, n = f->header.e_shnum;
-
- f->baseaddr = base;
- for (i = 0; i < n; ++i)
- f->sections[i]->header.sh_addr += base;
- return 1;
-}
-
-int
-arch_archdata (struct obj_file *fin, struct obj_section *sec)
-{
- return 0;
-}
diff --git a/mdk-stage1/insmod-modutils/util/Makefile b/mdk-stage1/insmod-modutils/util/Makefile
deleted file mode 100644
index 763f046f2..000000000
--- a/mdk-stage1/insmod-modutils/util/Makefile
+++ /dev/null
@@ -1,42 +0,0 @@
- #******************************************************************************
- #
- # insmod from modutils (generic)
- #
- # $Id$
- #
- # Copyright 1996, 1997 Linux International.
- #
- #*****************************************************************************
-
-top_dir = ../..
-
-include $(top_dir)/Makefile.common
-
-
-all: libutil.a libutil-STANDALONE.a #libutil-DIET.a
-
-clean:
- rm -f *.o *.a
-
-
-INCS = -I./../include
-
-DEFS = -Wno-error -D_GNU_SOURCE -DELF_MACHINE_H='"elf_$(ARCH).h"' -DARCH_$(ARCH) -DHAVE_WORDEXP=1 -DHAVE_GLOB=1 -DCONFIG_ROOT_CHECK_OFF=0
-
-
-OBJS = xmalloc.o xrealloc.o xstrcat.o xstrdup.o xsystem.o xftw.o \
- modstat.o meta_expand.o config.o snap_shot.o arch64.o gzfiles.o sys_nim.o sys_oim.o
-
-libutil.a: $(OBJS) logger.o
- ar cru $@ $^
- ranlib $@
-
-libutil-STANDALONE.a: $(OBJS) logger-standalone.o
- ar cru $@ $^
- ranlib $@
-
-logger-standalone.o: logger.c
- gcc $(CFLAGS) $(DEFS) $(INCS) $(GLIBC_INCLUDES) -o $@ -D_STANDALONE_ -c logger.c
-
-.c.o:
- gcc $(CFLAGS) $(DEFS) $(INCS) $(GLIBC_INCLUDES) -c $<
diff --git a/mdk-stage1/insmod-modutils/util/alias.h b/mdk-stage1/insmod-modutils/util/alias.h
deleted file mode 100644
index c925a04f3..000000000
--- a/mdk-stage1/insmod-modutils/util/alias.h
+++ /dev/null
@@ -1,244 +0,0 @@
-/*
- * This file is split out from config.c for easier editing
- */
-
-/*
- * tbpath and tbtype are used to build the complete set of paths for finding
- * modules, but only when we search for individual directories, they are not
- * used for [boot] and [toplevel] searches.
- */
-static char *tbpath[] =
-{
- "/lib/modules",
- NULL /* marks the end of the list! */
-};
-
-char *tbtype[] =
-{
- "kernel", /* as of 2.3.14 this must be first */
- "fs",
- "net",
- "scsi",
- "block",
- "cdrom",
- "ipv4",
- "ipv6",
- "sound",
- "fc4",
- "video",
- "misc",
- "pcmcia",
- "atm",
- "usb",
- "ide",
- "ieee1394",
- "mtd",
- NULL /* marks the end of the list! */
-};
-
-/*
- * This is the list of pre-defined aliases.
- * Each entry can be overridden by an entry in /etc/modules.conf
- */
-char *aliaslist[] =
-{
- "binfmt-204 binfmt_aout",
- "binfmt-263 binfmt_aout",
- "binfmt-264 binfmt_aout",
- "binfmt-267 binfmt_aout",
- "binfmt-387 binfmt_aout",
- "binfmt-332 iBCS",
- "binfmt--310 binfmt_java",
-
- "block-major-1 rd",
- "block-major-2 floppy",
- "block-major-3 ide-probe-mod",
- "block-major-7 loop",
- "block-major-8 sd_mod",
- "block-major-9 md", /* For modular RAID */
- "block-major-11 sr_mod",
- "block-major-13 xd",
- "block-major-15 cdu31a",
- "block-major-16 gscd",
- "block-major-17 optcd",
- "block-major-18 sjcd",
- "block-major-20 mcdx",
- "block-major-22 ide-probe-mod",
- "block-major-23 mcd",
- "block-major-24 sonycd535",
- "block-major-25 sbpcd",
- "block-major-26 sbpcd",
- "block-major-27 sbpcd",
- "block-major-29 aztcd",
- "block-major-32 cm206",
- "block-major-33 ide-probe-mod",
- "block-major-34 ide-probe-mod",
- "block-major-37 ide-tape",
- "block-major-44 ftl", /* from David Woodhouse <dwmw2@infradead.org> */
- "block-major-56 ide-probe-mod",
- "block-major-57 ide-probe-mod",
- "block-major-88 ide-probe-mod",
- "block-major-89 ide-probe-mod",
- "block-major-90 ide-probe-mod",
- "block-major-91 ide-probe-mod",
- "block-major-93 nftl", /* from David Woodhouse <dwmw2@infradead.org> */
-
- "char-major-4 serial",
- "char-major-5 serial",
- "char-major-6 lp",
- "char-major-9 st",
- "char-major-10 off", /* was: mouse, was: misc */
- "char-major-10-0 busmouse", /* /dev/logibm Logitech bus mouse */
- "char-major-10-1 off", /* /dev/psaux PS/2-style mouse port */
- "char-major-10-2 msbusmouse", /* /dev/inportbm Microsoft Inport bus mouse */
- "char-major-10-3 atixlmouse", /* /dev/atibm ATI XL bus mouse */
- /* /dev/jbm J-mouse */
- /* /dev/amigamouse Amiga mouse (68k/Amiga) */
- /* /dev/atarimouse Atari mouse */
- /* /dev/sunmouse Sun mouse */
- /* /dev/beep Fancy beep device */
- /* /dev/modreq Kernel module load request */
- "char-major-10-130 wdt", /* /dev/watchdog Watchdog timer port */
- "char-major-10-131 wdt", /* /dev/temperature Machine internal temperature */
- /* /dev/hwtrap Hardware fault trap */
- /* /dev/exttrp External device trap */
- "char-major-10-135 off", /* rtc cannot be compiled as a module */
- "char-major-10-139 openprom", /* /dev/openprom Linux/Sparc interface */
- "char-major-10-144 nvram", /* from Tigran Aivazian <tigran@sco.COM> */
- "char-major-10-157 applicom", /* from David Woodhouse <dwmw2@infradead.org> */
- "char-major-10-175 agpgart", /* /dev/agpgart GART AGP mapping access */
- "char-major-10-184 microcode", /* Tigran Aivazian <tigran@veritas.com> */
-
- "char-major-14 soundcore",
- "char-major-19 cyclades",
- "char-major-20 cyclades",
- "char-major-21 sg",
- "char-major-22 pcxx", /* ?? */
- "char-major-23 pcxx", /* ?? */
- "char-major-27 ftape",
- "char-major-34 scc",
- "char-major-35 tclmidi",
- "char-major-36 netlink",
- "char-major-37 ide-tape",
- "char-major-48 riscom8",
- "char-major-49 riscom8",
- "char-major-57 esp",
- "char-major-58 esp",
- "char-major-63 kdebug",
- "char-major-90 mtdchar", /* from David Woodhouse <dwmw2@infradead.org> */
- "char-major-99 ppdev",
- "char-major-107 3dfx", /* from Tigran Aivazian <tigran@sco.COM> */
- "char-major-161 ircomm-tty",
-
- "dos msdos",
- "dummy0 dummy",
- "dummy1 dummy",
- "eth0 off",
- "iso9660 isofs",
- "md-personality-1 linear",
- "md-personality-2 raid0",
- "md-personality-3 raid1",
- "md-personality-4 raid5",
-
- "net-pf-1 unix", /* PF_UNIX 1 Unix domain sockets */
- "net-pf-2 ipv4", /* PF_INET 2 Internet IP Protocol */
- "net-pf-3 off", /* PF_AX25 3 Amateur Radio AX.25 */
- "net-pf-4 ipx", /* PF_IPX 4 Novell IPX */
- "net-pf-5 appletalk", /* PF_APPLETALK 5 Appletalk DDP */
- "net-pf-6 off", /* PF_NETROM 6 Amateur radio NetROM */
- /* PF_BRIDGE 7 Multiprotocol bridge */
- /* PF_AAL5 8 Reserved for Werner's ATM */
- /* PF_X25 9 Reserved for X.25 project */
- /* PF_INET6 10 IP version 6 */
-
- /* next two from <dairiki@matthews.dairiki.org> Thanks! */
- "net-pf-17 af_packet",
- "net-pf-19 off", /* acorn econet */
-
- "netalias-2 ip_alias",
- "plip0 plip",
- "plip1 plip",
- "cipcb0 cipcb",
- "cipcb1 cipcb",
- "cipcb2 cipcb",
- "cipcb3 cipcb",
- "ppp0 ppp",
- "ppp1 ppp",
- "scsi_hostadapter off", /* if not in config file */
- "slip0 slip",
- "slip1 slip",
- "tty-ldisc-1 slip",
- "tty-ldisc-3 ppp",
- "ppp-compress-21 bsd_comp",
- "ppp-compress-24 ppp_deflate",
- "ppp-compress-26 ppp_deflate",
-
-#ifndef __sparc__
- "parport_lowlevel parport_pc",
-#else
- "parport_lowlevel parport_ax",
-#endif
-
- "tty-ldisc-11 irtty",
-
- "usbdevfs usbcore",
-
- NULL /* marks the end of the list! */
-};
-
-/*
- * This is the list of pre-defined options.
- * Each entry can be overridden by an entry in /etc/modules.conf
- */
-char *optlist[] =
-{
- "dummy0 -o dummy0",
- "dummy1 -o dummy1",
- "sb io=0x220 irq=7 dma=1 dma16=5 mpu_io=0x330",
- NULL /* marks the end of the list! */
-};
-
-/*
- * This is the list of pre-defined "above"s,
- * used for pull-in of additional modules
- * Each entry can be overridden by an entry in /etc/modules.conf
- */
-char *above[] =
-{
- NULL /* marks the end of the list! */
-};
-
-/*
- * This is the list of pre-defined "below"s,
- * used for push-in of additional modules
- * Each entry can be overridden by an entry in /etc/modules.conf
- */
-char *below[] =
-{
- NULL /* marks the end of the list! */
-};
-
-/*
- * This is the list of pre-defined "prune"s,
- * used to exclude paths from scan of /lib/modules.
- * /etc/modules.conf can add entries but not remove them.
- */
-char *prune[] =
-{
- ".rhkmvtag",
- "modules.dep",
- "modules.generic_string",
- "modules.pcimap",
- "modules.isapnpmap",
- "modules.usbmap",
- "modules.parportmap",
- "System.map",
- ".config",
- "build", /* symlink to source tree */
- "vmlinux",
- "vmlinuz",
- "bzImage",
- "zImage",
- ".rhkmvtag", /* wish RedHat had told me before they did this */
- NULL /* marks the end of the list! */
-};
diff --git a/mdk-stage1/insmod-modutils/util/arch64.c b/mdk-stage1/insmod-modutils/util/arch64.c
deleted file mode 100644
index 4d5ace223..000000000
--- a/mdk-stage1/insmod-modutils/util/arch64.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Misc utility functions.
- Copyright 1996, 1997 Linux International.
- Written by Keith Owens <kaos@ocs.com.au>
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ident "$Id$"
-
-#include <stdlib.h>
-#include <string.h>
-#include <sys/utsname.h>
-#include "util.h"
-
-/*======================================================================*/
-
-/* Indicate if the current machine uses 64 bit architecture */
-int arch64(void)
-{
- struct utsname u;
- return(!uname(&u) && strstr(u.machine, "64"));
-}
diff --git a/mdk-stage1/insmod-modutils/util/config.c b/mdk-stage1/insmod-modutils/util/config.c
deleted file mode 100644
index a860920f6..000000000
--- a/mdk-stage1/insmod-modutils/util/config.c
+++ /dev/null
@@ -1,1591 +0,0 @@
-/*
- * Handle the configuration, including /etc/modules.conf
- *
- * Copyright 1994, 1995, 1996, 1997:
- * Jacques Gelinas <jack@solucorp.qc.ca>
- * Björn Ekwall <bj0rn@blox.se> February 1999
- * Keith Owens <kaos@ocs.com.au> October 1999
- *
- * "kernelversion" idea from the Debian release via:
- * Wichert Akkerman <wakkerma@cs.leidenuniv.nl>
- *
- * Björn, inspired by Richard Henderson <rth@twiddle.net>, cleaned up
- * the wildcard handling and started using ftw in March 1999
- * Cleanup of hardcoded arrays: Björn Ekwall <bj0rn@blox.se> March 1999
- * Many additional keywords: Björn Ekwall <bj0rn@blox.se> (C) March 1999
- * Standardize on /etc/modules.conf Keith Owens <kaos@ocs.com.au> October 1999
- *
- * Alpha typecast:Michal Jaegermann <michal@ellpspace.math.ualberta.ca>
- *
- * This file is part of the Linux modutils.
- *
- * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-/*
- * Specification: /etc/modules.conf / format
- * Modules may be located at different places in the filesystem.
- *
- * The file /etc/modules.conf contains different definitions to
- * control the manipulation of modules.
- *
- * Standard Unix style comments and continuation line are supported.
- * Comments begin with a # and continue until the end of the line.
- * A line continues on the next one if the last non-white character
- * is a \.
- */
-/* #Specification: /etc/modules.conf / format / official name */
-
-#include <stdio.h>
-#include <stdarg.h>
-#include <assert.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-#include <sys/stat.h>
-#include <signal.h>
-#include <limits.h>
-#include <sys/param.h>
-#include <errno.h>
-
-#include "util.h"
-#include "config.h"
-#include "alias.h"
-
-int flag_autoclean; /* set/used by modprobe and insmod */
-
-struct utsname uts_info;
-
-struct PATH_TYPE *modpath;
-int nmodpath = 0;
-static int maxpath = 0;
-
-struct EXEC_TYPE *execs;
-int nexecs = 0;
-static int maxexecs = 0;
-
-OPT_LIST *opt_list;
-static int n_opt_list;
-
-OPT_LIST *abovelist;
-static int n_abovelist;
-
-OPT_LIST *belowlist;
-static int n_belowlist;
-
-OPT_LIST *prunelist;
-static int n_prunelist;
-
-OPT_LIST *probe_list;
-static int n_probe_list;
-
-OPT_LIST *probeall_list;
-static int n_probeall_list;
-
-OPT_LIST *aliases;
-static int n_aliases;
-
-char *persistdir = "/var/lib/modules/persist";
-
-const char symprefix[] = SYMPREFIX;
-
-char *insmod_opt = NULL;
-char *config_file = NULL; /* Which file was actually used */
-time_t config_mtime;
-int root_check_off = CONFIG_ROOT_CHECK_OFF; /* Default is modules must be owned by root */
-static char *config_version; /* Hack for config_add */
-int quick = 0; /* Option -A */
-
-/* The initialization order must match the gen_file_enum order in config.h */
-struct gen_files gen_file[] = {
- {"generic_string", NULL, 0},
- {"pcimap", NULL, 0},
- {"isapnpmap", NULL, 0},
- {"usbmap", NULL, 0},
- {"parportmap", NULL, 0},
- {"dep", NULL, 0},
-};
-
-const int gen_file_count = sizeof(gen_file)/sizeof(gen_file[0]);
-
-int flag_verbose;
-
-unsigned long safemode;
-
-void verbose(const char *ctl,...)
-{
- if (flag_verbose) {
- va_list list;
- va_start(list, ctl);
- vprintf(ctl, list);
- va_end(list);
- fflush(stdout);
- }
-}
-
-
-/*
- * Check to see if the existing modules.xxx files need updating,
- * based on the timestamps of the modules and the config file.
- */
-static int check_update (const char *file, const struct stat *sb)
-{
- int len = strlen(file);
- int i;
-
- if (!S_ISREG(sb->st_mode))
- return 0;
- for (i = 0; i < gen_file_count; ++i) {
- if (sb->st_mtime > gen_file[i].mtime)
- break;
- }
- if (i == gen_file_count)
- return 0; /* All generated files are up to date */
-
- if (len > 2 && !strcmp(file + len - 2, ".o"))
- return 1;
- else if (len > 4 && !strcmp(file + len - 4, ".mod"))
- return 1;
-#ifdef CONFIG_USE_ZLIB
- else if (len > 5 && !strcmp(file + len - 5, ".o.gz"))
- return 1;
-#endif
- return 0;
-}
-
-static int need_update (const char *force_ver, const char *base_dir)
-{
- struct stat tmp;
- char dep[PATH_MAX];
- int i;
- uname (&uts_info);
- if (!force_ver)
- force_ver = uts_info.release;
-
- if (strlen (force_ver) > 50)
- /* That's just silly. */
- return 1;
-
- for (i = 0; i < gen_file_count; ++i) {
- if (stat(gen_file[i].name, &tmp))
- return 1; /* No dependency file yet, so we need to build it. */
- gen_file[i].mtime = tmp.st_mtime;
- }
-
- if (stat ("/etc/modules.conf", &tmp) &&
- stat ("/etc/conf.modules", &tmp))
- return 1;
-
- for (i = 0; i < gen_file_count; ++i) {
- if (tmp.st_mtime > gen_file[i].mtime)
- return 1; /* Config file is newer. */
- }
-
- snprintf (dep, sizeof(dep), "%s/lib/modules/%s", base_dir, force_ver);
- return xftw (dep, check_update);
-}
-
-
-/*
- * Strip white char at the end of a string.
- * Return the address of the last non white char + 1 (point on the '\0').
- */
-static char *strip_end(char *str)
-{
- int len = strlen(str);
-
- for (str += len - 1; len > 0 && (isspace(*str)); --len, --str)
- *str = '\0';
- return str + 1;
-}
-
-/*
- * Read a line of a configuration file and process continuation lines.
- * Return buf, or NULL if EOF.
- * Blank at the end of line are always stripped.
- * Everything on a line following comchar is a comment.
- *
- * Continuation character is \
- * Comment character is #
- */
-char *fgets_strip(char *buf, int sizebuf, FILE * fin, int *lineno)
-{
- int nocomment = 1; /* No comments found ? */
- int contline = 0;
- char *start = buf;
- char *ret = NULL;
- char comchar = '#';
- char contchar = '\\';
-
- *buf = '\0';
-
- while (fgets(buf, sizebuf, fin) != NULL) {
- char *end = strip_end(buf);
- char *pt = strchr(buf, comchar);
-
- if (pt != NULL) {
- nocomment = 0;
- *pt = '\0';
- end = strip_end(buf);
- }
-
- if (lineno != NULL)
- (*lineno)++;
- ret = start;
- if (contline) {
- char *pt = buf;
-
- while (isspace(*pt))
- pt++;
- if (pt > buf + 1) {
- strcpy(buf + 1, pt); /* safe, backward copy */
- buf[0] = ' ';
- end -= (int) (pt - buf) - 1;
- } else if (pt == buf + 1) {
- buf[0] = ' ';
- }
- }
- if (end > buf && *(end - 1) == contchar) {
- if (end == buf + 1 || *(end - 2) != contchar) {
- /* Continuation */
- contline = 1;
- end--;
- *end = '\0';
- buf = end;
- } else {
- *(end - 1) = '\0';
- break;
- }
- } else {
- break;
- }
- }
-
- return ret;
-}
-
-static char *next_word(char *pt)
-{
- char *match;
- char *pt2;
-
- /* find end of word */
- for (pt2 = pt; *pt2 && !(isspace(*pt2)); ++pt2) {
- if ((match = strchr("\"'`", *pt2)) != NULL) {
- for (++pt2; *pt2 && *pt2 != *match; ++pt2) {
- if (*pt2 == '\\' && *(pt2 + 1) == *match)
- ++pt2;
- }
- }
- }
-
- /* skip leading whitespace before next word */
- if (*pt2) {
- *pt2++ = '\0'; /* terminate last word */
- while (*pt2 && isspace(*pt2))
- ++pt2;
- }
- return pt2;
-}
-
-static GLOB_LIST *addlist(GLOB_LIST *orig, GLOB_LIST *add)
-{
- if (!orig)
- return add;
- /* else */
- orig->pathv = (char **)xrealloc(orig->pathv,
- (orig->pathc + add->pathc + 1) *
- sizeof(char *));
- memcpy(orig->pathv + orig->pathc, add->pathv,
- add->pathc * sizeof(char *));
- orig->pathc += add->pathc;
- orig->pathv[orig->pathc] = NULL;
- /*
- free(add->pathv);
- free(add);
- */
- return orig;
-}
-
-static void decode_list(int *n, OPT_LIST **list, char *arg, int adding,
- char *version, int opts)
-{
- GLOB_LIST *pg;
- GLOB_LIST *prevlist = NULL;
- int i, autoclean = 1;
- int where = *n;
- char *arg2 = next_word(arg);
-
- if (opts && !strcmp (arg, "-k")) {
- if (!*arg2)
- error("Missing module argument after -k\n");
- arg = arg2;
- arg2 = next_word(arg);
- autoclean = 0;
- }
-
- for (i = 0; i < *n; ++i) {
- if (strcmp((*list)[i].name, arg) == 0) {
- if (adding)
- prevlist = (*list)[i].opts;
- else
- free((*list)[i].opts);
- (*list)[i].opts = NULL;
- where = i;
- break;
- }
- }
- if (where == *n) {
- (*list) = (OPT_LIST *)xrealloc((*list),
- (*n + 2) * sizeof(OPT_LIST));
- (*list)[*n].name = xstrdup(arg);
- (*list)[*n].autoclean = autoclean;
- *n += 1;
- memset(&(*list)[*n], 0, sizeof(OPT_LIST));
- } else if (!autoclean)
- (*list)[where].autoclean = 0;
- pg = (GLOB_LIST *)xmalloc(sizeof(GLOB_LIST));
- meta_expand(arg2, pg, NULL, version, ME_ALL);
- (*list)[where].opts = addlist(prevlist, pg);
-}
-
-static void decode_exec(char *arg, int type)
-{
- char *arg2;
-
- execs[nexecs].when = type;
- arg2 = next_word(arg);
- execs[nexecs].module = xstrdup(arg);
- execs[nexecs].cmd = xstrdup(arg2);
- if (++nexecs >= maxexecs) {
- maxexecs += 10;
- execs = (struct EXEC_TYPE *)xrealloc(execs,
- maxexecs * sizeof(struct EXEC_TYPE));
- }
-}
-
-static int build_list(char **in, OPT_LIST **out, char *version, int opts)
-{
- GLOB_LIST *pg;
- int i;
-
- for (i = 0; in[i]; ++i) {
- char *p = xstrdup(in[i]);
- char *pt = next_word(p);
- char *pn = p;
-
- *out = (OPT_LIST *)xrealloc(*out, (i + 2) * sizeof(OPT_LIST));
- (*out)[i].autoclean = 1;
- if (opts && !strcmp (p, "-k")) {
- pn = pt;
- pt = next_word(pn);
- (*out)[i].autoclean = 0;
- }
- pg = (GLOB_LIST *)xmalloc(sizeof(GLOB_LIST));
- meta_expand(pt, pg, NULL, version, ME_ALL);
- (*out)[i].name = xstrdup(pn);
- (*out)[i].opts = pg;
- free(p);
- }
- memset(&(*out)[i], 0, sizeof(OPT_LIST));
-
- return i;
-}
-
-/* Environment variables can override defaults, testing only */
-static void gen_file_env(struct gen_files *gf)
-{
- if (!safemode) {
- char *e = xmalloc(strlen(gf->base)+5), *p1 = gf->base, *p2 = e;
- while ((*p2++ = toupper(*p1++))) ;
- strcpy(p2-1, "PATH"); /* safe, xmalloc */
- if ((p2 = getenv(e)) != NULL) {
- free(gf->name);
- gf->name = xstrdup(p2);
- }
- free(e);
- }
-}
-
-/* Read a config option for a generated filename */
-static int gen_file_conf(struct gen_files *gf, int assgn, const char *parm, const char *arg)
-{
-
- int l = strlen(gf->base);
- if (assgn &&
- strncmp(parm, gf->base, l) == 0 &&
- strcmp(parm+l, "file") == 0 &&
- !gf->name) {
- gf->name = xstrdup(arg);
- return(0);
- }
- return(1);
-}
-
-/* Check we have a name for a generated file */
-static int gen_file_check(struct gen_files *gf, GLOB_LIST *g,
- char *base_dir, char *version)
-{
- char tmp[PATH_MAX];
- int ret = 0;
- if (!gf->name) {
- /*
- * Specification: config file / no xxxfile parameter
- * The default value for generated filename xxx is:
- *
- * xxxfile=/lib/modules/`uname -r`/modules.xxx
- *
- * If the config file exists but lacks an xxxfile
- * specification, the default value is used since
- * the system can't work without one.
- */
- snprintf(tmp, sizeof(tmp), "%s/lib/modules/%s/modules.%s",
- base_dir, version, gf->base);
- gf->name = xstrdup(tmp);
- } else { /* xxxfile defined in modules.conf */
- /*
- * If we have a xxxfile definition in the configuration file
- * we must resolve any shell meta-chars in its value.
- */
- if (meta_expand(gf->name, g, base_dir, version, ME_ALL))
- ret = -1;
- else if (!g->pathv || g->pathv[0] == NULL)
- ret = -1;
- else {
- free(gf->name);
- gf->name = xstrdup(g->pathv[0]);
- }
- }
- return(ret);
-}
-
-/*
- * Read the configuration file.
- * If parameter "all" == 0 then ignore everything except path info
- * Return -1 if any error.
- * Error messages generated.
- */
-static int do_read(int all, char *force_ver, char *base_dir, char *conf_file, int depth)
-{
- #define MAX_LEVEL 20
- FILE *fin;
- GLOB_LIST g;
- int i;
- int assgn;
- int drop_default_paths = 1;
- int lineno = 0;
- int ret = 0;
- int state[MAX_LEVEL + 1]; /* nested "if" */
- int level = 0;
- char buf[3000];
- char tmpline[100];
- char **pathp;
- char *envpath;
- char *version;
- char *type;
- char **glb;
- char old_name[] = "/etc/conf.modules";
- int conf_file_specified = 0;
-
- /*
- * The configuration file is optional.
- * No error is printed if it is missing.
- * If it is missing the following content is assumed.
- *
- * path[boot]=/lib/modules/boot
- *
- * path[toplevel]=/lib/modules/`uname -r`
- *
- * path[toplevel]=/lib/modules/`kernelversion`
- * (where kernelversion gives the major kernel version: "2.0", "2.2"...)
- *
- * path[toplevel]=/lib/modules/default
- *
- * path[kernel]=/lib/modules/kernel
- * path[fs]=/lib/modules/fs
- * path[net]=/lib/modules/net
- * path[scsi]=/lib/modules/scsi
- * path[block]=/lib/modules/block
- * path[cdrom]=/lib/modules/cdrom
- * path[ipv4]=/lib/modules/ipv4
- * path[ipv6]=/lib/modules/ipv6
- * path[sound]=/lib/modules/sound
- * path[fc4]=/lib/modules/fc4
- * path[video]=/lib/modules/video
- * path[misc]=/lib/modules/misc
- * path[pcmcia]=/lib/modules/pcmcia
- * path[atm]=/lib/modules/atm
- * path[usb]=/lib/modules/usb
- * path[ide]=/lib/modules/ide
- * path[ieee1394]=/lib/modules/ieee1394
- * path[mtd]=/lib/modules/mtd
- *
- * The idea is that modprobe will look first if the
- * modules are compiled for the current release of the kernel.
- * If not found, it will look for modules that fit for the
- * general kernelversion (2.0, 2.2 and so on).
- * If still not found, it will look into the default release.
- * And if still not found, it will look in the other directories.
- *
- * The strategy should be like this:
- * When you install a new linux kernel, the modules should go
- * into a directory related to the release (version) of the kernel.
- * Then you can do a symlink "default" to this directory.
- *
- * Each time you compile a new kernel, the make modules_install
- * will create a new directory, but it won't change thee default.
- *
- * When you get a module unrelated to the kernel distribution
- * you can place it in one of the last three directory types.
- *
- * This is the default strategy. Of course you can overide
- * this in /etc/modules.conf.
- *
- * 2.3.15 added a new file tree walk algorithm which made it possible to
- * point at a top level directory and get the same behaviour as earlier
- * versions of modutils. 2.3.16 takes this one stage further, it
- * removes all the individual directory names from most of the scans,
- * only pointing at the top level directory. The only exception is the
- * last ditch scan, scanning all of /lib/modules would be a bad idea(TM)
- * so the last ditch scan still runs individual directory names under
- * /lib/modules.
- *
- * Additional syntax:
- *
- * [add] above module module1 ...
- * Specify additional modules to pull in on top of a module
- *
- * [add] below module module1 ...
- * Specify additional modules needed to be able to load a module
- *
- * [add] prune filename ...
- *
- * [add] probe name module1 ...
- * When "name" is requested, modprobe tries to install each
- * module in the list until it succeeds.
- *
- * [add] probeall name module1 ...
- * When "name" is requested, modprobe tries to install all
- * modules in the list.
- * If any module is installed, the command has succeeded.
- *
- * [add] options module option_list
- *
- * For all of the above, the optional "add" prefix is used to
- * add to a list instead of replacing the contents.
- *
- * include FILE_TO_INCLUDE
- * This does what you expect. No limitation on include levels.
- *
- * persistdir=persist_directory
- * Name the directory to save persistent data from modules.
- *
- * In the following WORD is a sequence if non-white characters.
- * If ' " or ` is found in the string, all characters up to the
- * matching ' " or ` will also be included, even whitespace.
- * Every WORD will then be expanded w.r.t. meta-characters.
- * If the expanded result gives more than one word, then only
- * the first word of the result will be used.
- *
- *
- * define CODE WORD
- * Do a putenv("CODE=WORD")
- *
- * EXPRESSION below can be:
- * WORD compare_op WORD
- * where compare_op is one of == != < <= >= >
- * The string values of the WORDs are compared
- * or
- * -n WORD compare_op WORD
- * where compare_op is one of == != < <= >= >
- * The numeric values of the WORDs are compared
- * or
- * WORD
- * if the expansion of WORD fails, or if the
- * expansion is "0" (zero), "false" or "" (empty)
- * then the expansion has the value FALSE.
- * Otherwise the expansion has the value TRUE
- * or
- * -f FILENAME
- * Test if the file FILENAME exists
- * or
- * -k
- * Test if "autoclean" (i.e. called from the kernel)
- * or
- * ! EXPRESSION
- * A negated expression is also an expression
- *
- * if EXPRESSION
- * any config line
- * ...
- * elseif EXPRESSION
- * any config line
- * ...
- * else
- * any config line
- * ...
- * endif
- *
- * The else and elseif keywords are optional.
- * "if"-statements nest up to 20 levels.
- */
-
- state[0] = 1;
-
- if (force_ver)
- version = force_ver;
- else
- version = uts_info.release;
-
- config_version = xstrdup(version);
-
- /* Only read the default entries on the first file */
- if (depth == 0) {
- maxpath = 100;
- modpath = (struct PATH_TYPE *)xmalloc(maxpath * sizeof(struct PATH_TYPE));
- nmodpath = 0;
-
- maxexecs = 10;
- execs = (struct EXEC_TYPE *)xmalloc(maxexecs * sizeof(struct EXEC_TYPE));
- nexecs = 0;
-
- /*
- * Build predef options
- */
- if (all && optlist[0])
- n_opt_list = build_list(optlist, &opt_list, version, 1);
-
- /*
- * Build predef above
- */
- if (all && above[0])
- n_abovelist = build_list(above, &abovelist, version, 0);
-
- /*
- * Build predef below
- */
- if (all && below[0])
- n_belowlist = build_list(below, &belowlist, version, 0);
-
- /*
- * Build predef prune list
- */
- if (prune[0])
- n_prunelist = build_list(prune, &prunelist, version, 0);
-
- /*
- * Build predef aliases
- */
- if (all && aliaslist[0])
- n_aliases = build_list(aliaslist, &aliases, version, 0);
-
- /* Order and priority is now: (MODPATH + modules.conf) || (predefs + modules.conf) */
- if ((envpath = getenv("MODPATH")) != NULL && !safemode) {
- size_t len;
- char *p;
- char *path;
-
- /* Make a copy so's we can mung it with strtok. */
- len = strlen(envpath) + 1;
- p = alloca(len);
- memcpy(p, envpath, len);
- path = alloca(PATH_MAX);
-
- for (p = strtok(p, ":"); p != NULL; p = strtok(NULL, ":")) {
- len = snprintf(path, PATH_MAX, p, version);
- modpath[nmodpath].path = xstrdup(path);
- if ((type = strrchr(path, '/')) != NULL)
- type += 1;
- else
- type = "misc";
- modpath[nmodpath].type = xstrdup(type);
- if (++nmodpath >= maxpath) {
- maxpath += 100;
- modpath = (struct PATH_TYPE *)xrealloc(modpath,
- maxpath * sizeof(struct PATH_TYPE));
- }
-
- }
- } else {
- /*
- * Build the default "path[type]" configuration
- */
- int n;
- char *k;
-
- /* The first entry in the path list */
- modpath[nmodpath].type = xstrdup("boot");
- snprintf(tmpline, sizeof(tmpline), "%s/lib/modules/boot", base_dir);
- modpath[nmodpath].path = xstrdup(tmpline);
- ++nmodpath;
-
- /* The second entry in the path list, `uname -r` */
- modpath[nmodpath].type = xstrdup("toplevel");
- snprintf(tmpline, sizeof(tmpline), "%s/lib/modules/%s", base_dir, version);
- modpath[nmodpath].path = xstrdup(tmpline);
- ++nmodpath;
-
- /* The third entry in the path list, `kernelversion` */
- modpath[nmodpath].type = xstrdup("toplevel");
- for (n = 0, k = version; *k; ++k) {
- if (*k == '.' && ++n == 2)
- break;
- }
- snprintf(tmpline, sizeof(tmpline), "%s/lib/modules/%.*s", base_dir,
- (/* typecast for Alpha */ int)(k - version), version);
- modpath[nmodpath].path = xstrdup(tmpline);
- ++nmodpath;
-
- /* The rest of the entries in the path list */
- for (pathp = tbpath; *pathp; ++pathp) {
- char **type;
-
- for (type = tbtype; *type; ++type) {
- char path[PATH_MAX];
-
- snprintf(path, sizeof(path), "%s%s/%s", base_dir, *pathp, *type);
- if (meta_expand(path, &g, NULL, version, ME_ALL))
- return -1;
-
- for (glb = g.pathv; glb && *glb; ++glb) {
- modpath[nmodpath].type = xstrdup(*type);
- modpath[nmodpath].path = *glb;
- if (++nmodpath >= maxpath) {
- maxpath += 100;
- modpath = (struct PATH_TYPE *)xrealloc(modpath,
- maxpath * sizeof(struct PATH_TYPE));
- }
- }
- }
- }
- }
-
- /* Environment overrides for testing only, undocumented */
- for (i = 0; i < gen_file_count; ++i)
- gen_file_env(gen_file+i);
-
- } /* End of depth == 0 */
-
- if (conf_file ||
- ((conf_file = getenv("MODULECONFIG")) != NULL && *conf_file && !safemode)) {
- if (!(fin = fopen(conf_file, "r"))) {
- error("Can't open %s", conf_file);
- return -1;
- }
- conf_file_specified = 1;
- } else {
- if (!(fin = fopen((conf_file = ETC_MODULES_CONF), "r"))) {
- /* Fall back to non-standard name */
- if ((fin = fopen((conf_file = old_name), "r"))) {
- fprintf(stderr,
- "Warning: modutils is reading from %s because\n"
- " %s does not exist. The use of %s is\n"
- " deprecated, please rename %s to %s\n"
- " as soon as possible. Command\n"
- " mv %s %s\n",
- old_name, ETC_MODULES_CONF,
- old_name, old_name, ETC_MODULES_CONF,
- old_name, ETC_MODULES_CONF);
- }
- /* So what... use the default configuration */
- }
- }
-
- if (fin) {
- struct stat statbuf1, statbuf2;
- if (fstat(fileno(fin), &statbuf1) == 0)
- config_mtime = statbuf1.st_mtime;
- config_file = xstrdup(conf_file); /* Save name actually used */
- if (!conf_file_specified &&
- stat(ETC_MODULES_CONF, &statbuf1) == 0 &&
- stat(old_name, &statbuf2) == 0) {
- /* Both /etc files exist */
- if (statbuf1.st_dev == statbuf2.st_dev &&
- statbuf1.st_ino == statbuf2.st_ino) {
- if (lstat(ETC_MODULES_CONF, &statbuf1) == 0 &&
- S_ISLNK(statbuf1.st_mode))
- fprintf(stderr,
- "Warning: You do not need a link from %s to\n"
- " %s. The use of %s is deprecated,\n"
- " please remove %s and rename %s\n"
- " to %s as soon as possible. Commands.\n"
- " rm %s\n"
- " mv %s %s\n",
- ETC_MODULES_CONF, old_name,
- old_name, ETC_MODULES_CONF, old_name, ETC_MODULES_CONF,
- ETC_MODULES_CONF,
- old_name, ETC_MODULES_CONF);
- else {
-#ifndef NO_WARN_ON_OLD_LINK
- fprintf(stderr,
- "Warning: You do not need a link from %s to\n"
- " %s. The use of %s is deprecated,\n"
- " please remove %s as soon as possible. Command\n"
- " rm %s\n",
- old_name, ETC_MODULES_CONF,
- old_name, old_name,
- old_name);
-#endif
- }
- }
- else
- fprintf(stderr,
- "Warning: modutils is reading from %s and\n"
- " ignoring %s. The use of %s is deprecated,\n"
- " please remove %s as soon as possible. Command\n"
- " rm %s\n",
- ETC_MODULES_CONF, old_name,
- old_name, old_name,
- old_name);
- }
- }
-
- /*
- * Finally, decode the file
- */
- while (fin && fgets_strip(buf, sizeof(buf) - 1, fin, &lineno) != NULL) {
- char *arg2;
- char *parm = buf;
- char *arg;
- int one_err = 0;
- int adding;
-
- while (isspace(*parm))
- parm++;
-
- if (strncmp(parm, "add", 3) == 0) {
- adding = 1;
- parm += 3;
- while (isspace(*parm))
- parm++;
- } else
- adding = 0;
-
- arg = parm;
-
- if (*parm == '\0')
- continue;
-
- one_err = 1;
-
- while (*arg > ' ' && *arg != '=')
- arg++;
-
- if (*arg == '=')
- assgn = 1;
- else
- assgn = 0;
- *arg++ = '\0';
- while (isspace(*arg))
- arg++;
-
- /*
- * endif
- */
- if (!assgn && strcmp(parm, "endif") == 0) {
- if (level > 0)
- --level;
- else {
- error("unmatched endif in line %d", lineno);
- return -1;
- }
- continue;
- }
-
- /*
- * else
- */
- if (!assgn && strcmp(parm, "else") == 0) {
- if (level <= 0) {
- error("else without if in line %d", lineno);
- return -1;
- }
- state[level] = !state[level];
- continue;
- }
-
- /*
- * elseif
- */
- if (!assgn && strcmp(parm, "elseif") == 0) {
- if (level <= 0) {
- error("elseif without if in line %d", lineno);
- return -1;
- }
- if (state[level] != 0) {
- /*
- * We have already found a TRUE
- * if statement in this "chain".
- * That's what "2" means.
- */
- state[level] = 2;
- continue;
- }
- /* else: No TRUE if has been found, cheat */
- /*
- * The "if" handling increments level,
- * but this is the _same_ level as before.
- * So, compensate for it.
- */
- --level;
- parm = "if";
- /* Fallthru to "if" */
- }
-
- /*
- * if
- */
- if (strcmp(parm, "if") == 0) {
- char *cmp;
- int not = 0;
- int numeric = 0;
-
- if (level >= MAX_LEVEL) {
- error("Too many nested if's in line %d\n", lineno);
- return -1;
- }
- state[++level] = 0; /* default false */
-
- if (*arg == '!') {
- not = 1;
- arg = next_word(arg);
- }
-
- if (strncmp(arg, "-k", 2) == 0) {
- state[level] = flag_autoclean;
- continue;
- }
-
- if (strncmp(arg, "-f", 2) == 0) {
- char *file = next_word(arg);
- meta_expand(file, &g, NULL, version, ME_ALL);
- if (access(g.pathc ? g.pathv[0] : file, R_OK) == 0)
- state[level] = !not;
- else
- state[level] = not;
- continue;
- }
-
- if (strncmp(arg, "-n", 2) == 0) {
- numeric = 1;
- arg = next_word(arg);
- }
-
-
- cmp = next_word(arg);
- if (*cmp) {
- GLOB_LIST g2;
- long n1 = 0;
- long n2 = 0;
- char *w1 = "";
- char *w2 = "";
-
- arg2 = next_word(cmp);
-
- meta_expand(arg, &g, NULL, version, ME_ALL);
- if (g.pathc && g.pathv[0])
- w1 = g.pathv[0];
-
- meta_expand(arg2, &g2, NULL, version, ME_ALL);
- if (g2.pathc && g2.pathv[0])
- w2 = g2.pathv[0];
-
- if (numeric) {
- n1 = strtol(w1, NULL, 0);
- n2 = strtol(w2, NULL, 0);
- }
-
- if (strcmp(cmp, "==") == 0 ||
- strcmp(cmp, "=") == 0) {
- if (numeric)
- state[level] = (n1 == n2);
- else
- state[level] = strcmp(w1, w2) == 0;
- } else if (strcmp(cmp, "!=") == 0) {
- if (numeric)
- state[level] = (n1 != n2);
- else
- state[level] = strcmp(w1, w2) != 0;
- } else if (strcmp(cmp, ">=") == 0) {
- if (numeric)
- state[level] = (n1 >= n2);
- else
- state[level] = strcmp(w1, w2) >= 0;
- } else if (strcmp(cmp, "<=") == 0) {
- if (numeric)
- state[level] = (n1 <= n2);
- else
- state[level] = strcmp(w1, w2) <= 0;
- } else if (strcmp(cmp, ">") == 0) {
- if (numeric)
- state[level] = (n1 > n2);
- else
- state[level] = strcmp(w1, w2) > 0;
- } else if (strcmp(cmp, "<") == 0) {
- if (numeric)
- state[level] = (n1 < n2);
- else
- state[level] = strcmp(w1, w2) < 0;
- }
- } else { /* Check defined value, if any */
- /* undef or defined as
- * "" or "0" or "false" => false
- * defined => true
- */
- if (!meta_expand(arg, &g, NULL, version, ME_ALL) &&
- g.pathc > 0 &&
- strcmp(g.pathv[0], "0") != 0 &&
- strcmp(g.pathv[0], "false") != 0 &&
- strlen(g.pathv[0]) != 0)
- state[level] = 1; /* true */
- }
- if (not)
- state[level] = !state[level];
-
- continue;
- }
-
- /*
- * Should we bother?
- */
- if (state[level] != 1)
- continue;
-
- /*
- * define
- */
- if (!assgn && strcmp(parm, "define") == 0) {
- char env[PATH_MAX];
-
- arg2 = next_word(arg);
- meta_expand(arg2, &g, NULL, version, ME_ALL);
- snprintf(env, sizeof(env), "%s=%s", arg, (g.pathc ? g.pathv[0] : ""));
- putenv(env);
- one_err = 0;
- }
-
- /*
- * include
- */
- if (!assgn && strcmp(parm, "include") == 0) {
- meta_expand(arg, &g, NULL, version, ME_ALL);
-
- if (!do_read(all, version, base_dir, g.pathc ? g.pathv[0] : arg, depth+1))
- one_err = 0;
- else
- error("include %s failed\n", arg);
- }
-
- /*
- * above
- */
- else if (all && !assgn && strcmp(parm, "above") == 0) {
- decode_list(&n_abovelist, &abovelist, arg, adding, version, 0);
- one_err = 0;
- }
-
- /*
- * below
- */
- else if (all && !assgn && strcmp(parm, "below") == 0) {
- decode_list(&n_belowlist, &belowlist, arg, adding, version, 0);
- one_err = 0;
- }
-
- /*
- * prune
- */
- else if (all && !assgn && strcmp(parm, "prune") == 0) {
- decode_list(&n_prunelist, &prunelist, arg, adding, version, 0);
- one_err = 0;
- }
-
- /*
- * probe
- */
- else if (all && !assgn && strcmp(parm, "probe") == 0) {
- decode_list(&n_probe_list, &probe_list, arg, adding, version, 0);
- one_err = 0;
- }
-
- /*
- * probeall
- */
- else if (all && !assgn && strcmp(parm, "probeall") == 0) {
- decode_list(&n_probeall_list, &probeall_list, arg, adding, version, 0);
- one_err = 0;
- }
-
- /*
- * options
- */
- else if (all && !assgn && strcmp(parm, "options") == 0) {
- decode_list(&n_opt_list, &opt_list, arg, adding, version, 1);
- one_err = 0;
- }
-
- /*
- * alias
- */
- else if (all && !assgn && strcmp(parm, "alias") == 0) {
- /*
- * Replace any previous (default) definitions
- * for the same module
- */
- decode_list(&n_aliases, &aliases, arg, 0, version, 0);
- one_err = 0;
- }
-
- /*
- * Specification: /etc/modules.conf
- * The format of the commands in /etc/modules.conf are:
- *
- * pre-install module command
- * install module command
- * post-install module command
- * pre-remove module command
- * remove module command
- * post-remove module command
- *
- * The different words are separated by tabs or spaces.
- */
- /*
- * pre-install
- */
- else if (all && !assgn && (strcmp(parm, "pre-install") == 0)) {
- decode_exec(arg, EXEC_PRE_INSTALL);
- one_err = 0;
- }
-
- /*
- * install
- */
- else if (all && !assgn && (strcmp(parm, "install") == 0)) {
- decode_exec(arg, EXEC_INSTALL);
- one_err = 0;
- }
-
- /*
- * post-install
- */
- else if (all && !assgn && (strcmp(parm, "post-install") == 0)) {
- decode_exec(arg, EXEC_POST_INSTALL);
- one_err = 0;
- }
-
- /*
- * pre-remove
- */
- else if (all && !assgn && (strcmp(parm, "pre-remove") == 0)) {
- decode_exec(arg, EXEC_PRE_REMOVE);
- one_err = 0;
- }
-
- /*
- * remove
- */
- else if (all && !assgn && (strcmp(parm, "remove") == 0)) {
- decode_exec(arg, EXEC_REMOVE);
- one_err = 0;
- }
-
- /*
- * post-remove
- */
- else if (all && !assgn && (strcmp(parm, "post-remove") == 0)) {
- decode_exec(arg, EXEC_POST_REMOVE);
- one_err = 0;
- }
-
- /*
- * insmod_opt=
- */
- else if (assgn && (strcmp(parm, "insmod_opt") == 0)) {
- insmod_opt = xstrdup(arg);
- one_err = 0;
- }
-
- /*
- * keep
- */
- else if (!assgn && (strcmp(parm, "keep") == 0)) {
- drop_default_paths = 0;
- one_err = 0;
- }
-
- /*
- * path...=
- */
- else if (assgn && strncmp(parm, "path", 4) == 0) {
- /*
- * Specification: config file / path parameter
- * The path parameter specifies a directory to
- * search for modules.
- * This parameter may be repeated multiple times.
- *
- * Note that the actual path may be defined using
- * wildcards and other shell meta-chars, such as "*?`".
- * For example:
- * path[misc]=/lib/modules/1.1.5?/misc
- *
- * Optionally the path keyword carries a tag.
- * This tells us a little more about the purpose of
- * this directory and allows some automated operations.
- * A path is marked with a tag by adding the tag,
- * enclosed in square brackets, to the path keyword:
- * #
- * path[boot]=/lib/modules/boot
- * #
- * This case identifies the path a of directory
- * holding modules loadable a boot time.
- */
-
- if (drop_default_paths) {
- int n;
-
- /*
- * Specification: config file / path / default
- *
- * Whenever there is a path[] specification
- * in the config file, all the default
- * path are reset.
- *
- * If one instead wants to _add_ to the default
- * set of paths, one has to have the option
- * keep
- * before the first path[]-specification line
- * in the configuration file.
- */
- drop_default_paths = 0;
- for (n = 0; n < nmodpath; n++) {
- free(modpath[n].path);
- free(modpath[n].type);
- }
- nmodpath = 0;
- }
-
- /*
- * Get (the optional) tag
- * If the tag is missing, the word "misc"
- * is assumed.
- */
- type = "misc";
-
- if (parm[4] == '[') {
- char *pt_type = parm + 5;
-
- while (*pt_type != '\0' && *pt_type != ']')
- pt_type++;
-
- if (*pt_type == ']' && pt_type[1] == '\0') {
- *pt_type = '\0';
- type = parm + 5;
- } /* else CHECKME */
- }
-
- /*
- * Handle the actual path description
- */
- if (meta_expand(arg, &g, base_dir, version, ME_ALL))
- return -1;
- for (glb = g.pathv; glb && *glb; ++glb) {
- modpath[nmodpath].type = xstrdup(type);
- modpath[nmodpath].path = *glb;
- if (++nmodpath >= maxpath) {
- maxpath += 100;
- modpath = (struct PATH_TYPE *)xrealloc(modpath,
- maxpath * sizeof(struct PATH_TYPE));
- }
- }
- one_err = 0;
- }
-
- /*
- * persistdir
- */
- else if (assgn && strcmp(parm, "persistdir") == 0) {
- meta_expand(arg, &g, NULL, version, ME_ALL);
- persistdir = xstrdup(g.pathc ? g.pathv[0] : arg);
- one_err = 0;
- }
-
- /* Names for generated files in config file */
- for (i = 0; one_err && i < gen_file_count; ++i)
- one_err = gen_file_conf(gen_file+i, assgn, parm, arg);
-
- /*
- * any errors so far?
- */
- if (all == 0)
- one_err = 0;
- else if (one_err) {
- error("Invalid line %d in %s\n\t%s",
- lineno, conf_file, buf);
- ret = -1;
- }
- }
- if (fin)
- fclose(fin);
-
- if (level) {
- error("missing endif at %s EOF", conf_file);
- ret = -1;
- }
-
- if (ret)
- return ret;
- /* else */
-
- /* Check we have names for generated files */
- for (i = 0; !ret && i < gen_file_count; ++i)
- ret = gen_file_check(gen_file+i, &g, base_dir, version);
-
- return ret;
-}
-
-int config_read(int all, char *force_ver, char *base_dir, char *conf_file)
-{
- int r;
- if (modpath != NULL)
- return 0; /* already initialized */
-
- if (uname(&uts_info) < 0) {
- error("Failed to find kernel name information");
- return -1;
- }
-
- r = do_read(all, force_ver, base_dir, conf_file, 0);
-
- if (quick && !r && !need_update (force_ver, base_dir))
- exit (0);
-
- return r;
-}
-
-/****************************************************************************/
-/*
- * FIXME: Far too much global state. KAO.
- */
-static int found;
-static int favail;
-static int one_only;
-static int meta_expand_type;
-char **list;
-static const char *filter_by_file;
-static char *filter_by_dir;
-
-/*
- * Add a file name if it exist
- */
-static int config_add(const char *file, const struct stat *sb)
-{
- int i;
- int npaths = 0;
- char **paths = NULL;
-
- if (meta_expand_type) {
- GLOB_LIST g;
- char **p;
- char full[PATH_MAX];
-
- snprintf(full, sizeof(full), "%s/%s", file, filter_by_file);
-
- if (filter_by_dir && !strstr(full, filter_by_dir))
- return 0;
-
- if (meta_expand(full, &g, NULL, config_version, meta_expand_type))
- return 1;
- for (p = g.pathv; p && *p; ++p) {
- paths = (char **)xrealloc(paths,
- (npaths + 1) * sizeof(char *));
- paths[npaths++] = *p;
- }
- } else { /* normal path match or match with "*" */
- if (!S_ISREG(sb->st_mode))
- return 0;
-
- if (strcmp(filter_by_file, "*")) {
- char *p;
-
- if ((p = strrchr(file, '/')) == NULL)
- p = (char *)file;
- else
- p += 1;
-
- if (strcmp(p, filter_by_file))
- return 0;
- }
- if (filter_by_dir && !strstr(file, filter_by_dir))
- return 0;
- paths = (char **)xmalloc(sizeof(char **));
- *paths = xstrdup(file);
- npaths = 1;
- }
-
- for (i = 0; i < npaths; ++i) {
- struct stat sbuf;
-
- if (S_ISDIR(sb->st_mode)) {
- if (stat(paths[i], &sbuf) == 0)
- sb = &sbuf;
- }
- if (S_ISREG(sb->st_mode) && sb->st_mode & S_IRUSR) {
- int j;
- char **this;
-
- if (!root_check_off) {
- if (sb->st_uid != 0) {
- error("%s is not owned by root", paths[i]);
- continue;
- }
- }
-
- /* avoid duplicates */
- for (j = 0, this = list; j < found; ++j, ++this) {
- if (strcmp(*this, paths[i]) == 0) {
- free(paths[i]);
- goto next;
- }
- }
-
- list[found] = paths[i];
- if (++found >= favail)
- list = (char **)xrealloc(list,
- (favail += 100) * sizeof(char *));
-
- if (one_only) {
- for (j = i + 1; j < npaths; ++j)
- free(paths[j]);
- free(paths);
- return 1; /* finish xftw */
- }
- }
- next:
- }
-
- if (npaths > 0)
- free(paths);
-
- return 0;
-}
-
-/*
- * Find modules matching the name "match" in directory of type "type"
- * (type == NULL matches all)
- *
- * Return a pointer to the list of modules found (or NULL if error).
- * Update the counter (sent as parameter).
- */
-GLOB_LIST *config_lstmod(const char *match, const char *type, int first_only)
-{
- /*
- * Note:
- * There are _no_ wildcards remaining in the path descriptions!
- */
- struct stat sb;
- int i;
- int ret = 0;
- char *path = NULL;
- char this[PATH_MAX];
-
- if (!match)
- match = "*";
- one_only = first_only;
- found = 0;
- filter_by_file = match;
- filter_by_dir = NULL;
- if (type) {
- char tmpdir[PATH_MAX];
- snprintf(tmpdir, sizeof(tmpdir), "/%s/", type);
- filter_by_dir = xstrdup(tmpdir);
- }
- /* In safe mode, the module name is always handled as is, without meta
- * expansion. It might have come from an end user via kmod and must
- * not be trusted. Even in unsafe mode, only apply globbing to the
- * module name, not command expansion. We trust config file input so
- * applying command expansion is safe, we do not trust command line input.
- * This assumes that the only time the user can specify -C config file
- * is when they run under their own authority. In particular all
- * mechanisms that call modprobe as root on behalf of the user must
- * run in safe mode, without letting the user supply a config filename.
- */
- meta_expand_type = 0;
- if (strpbrk(match, SHELL_META) && strcmp(match, "*") && !safemode)
- meta_expand_type = ME_GLOB|ME_BUILTIN_COMMAND;
-
- list = (char **)xmalloc((favail = 100) * sizeof(char *));
-
- for (i = 0; i < nmodpath; i++) {
- path = modpath[i].path;
- /* Special case: insmod: handle single, non-wildcard match */
- if (first_only && strpbrk(match, SHELL_META) == NULL) {
- /* Fix for "2.1.121 syntax */
- snprintf(this, sizeof(this), "%s/%s/%s", path,
- modpath[i].type, match);
- if (stat(this, &sb) == 0 &&
- config_add(this, &sb))
- break;
- /* End fix for "2.1.121 syntax */
-
- snprintf(this, sizeof(this), "%s/%s", path, match);
- if (stat(this, &sb) == 0 &&
- config_add(this, &sb))
- break;
- }
-
- /* Start looking */
- if ((ret = xftw(path, config_add))) {
- break;
- }
- }
- if (ret >= 0) {
- GLOB_LIST *g = (GLOB_LIST *)xmalloc(sizeof(GLOB_LIST));
- g->pathc = found;
- g->pathv = list;
- free(filter_by_dir);
- return g;
- }
- free(list);
- free(filter_by_dir);
- return NULL;
-}
-
-/* Given a bare module name, poke through the module path to find the file. */
-char *search_module_path(const char *base)
-{
- GLOB_LIST *g;
-
- if (config_read(0, NULL, "", NULL) < 0)
- return NULL;
- /* else */
- g = config_lstmod(base, NULL, 1);
- if (g == NULL || g->pathc == 0) {
- char base_o[PATH_MAX];
-
- snprintf(base_o, sizeof(base_o), "%s.o", base);
- g = config_lstmod(base_o, NULL, 1);
-#ifdef CONFIG_USE_ZLIB
- if (g == NULL || g->pathc == 0) {
- snprintf(base_o, sizeof(base_o), "%s.o.gz", base);
- g = config_lstmod(base_o, NULL, 1);
- }
-#endif
- }
- if (g == NULL || g->pathc == 0)
- return NULL;
- /* else */
- return g->pathv[0];
-}
diff --git a/mdk-stage1/insmod-modutils/util/gzfiles.c b/mdk-stage1/insmod-modutils/util/gzfiles.c
deleted file mode 100644
index 8d02253bb..000000000
--- a/mdk-stage1/insmod-modutils/util/gzfiles.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * This simple library intends to make it transparent to read gzipped and/or
- * standard files. This is simple enough to fit modutils' needs, but may be
- * easily adapted to anyone's needs. It's completely free, do what you want
- * with it . - Willy Tarreau <willy@meta-x.org> - 2000/05/05 -
- */
-
-#ifdef CONFIG_USE_ZLIB
-
-#include <stdio.h>
-#include <zlib.h>
-#include <sys/types.h>
-#include <fcntl.h>
-#include <unistd.h>
-
-/* redefinition of gz_stream which isn't exported by zlib */
-typedef struct gz_stream {
- z_stream stream;
- int z_err; /* error code for last stream operation */
- int z_eof; /* set if end of input file */
- FILE *file; /* .gz file */
- Byte *inbuf; /* input buffer */
- Byte *outbuf; /* output buffer */
- uLong crc; /* crc32 of uncompressed data */
- char *msg; /* error message */
- char *path; /* path name for debugging only */
- int transparent; /* 1 if input file is not a .gz file */
- char mode; /* 'w' or 'r' */
- long startpos; /* start of compressed data in file (header skipped) */
-} gz_stream;
-
-/* maximum number of simultaneous open files, also greater file descriptor number */
-#define MAXFD 64
-
-/* this static list is assumed to be filled with NULLs at runtime */
-static gzFile gzf_fds[MAXFD];
-
-/* returns the filedesc of the opened file. */
-int gzf_open(const char *name, int mode) {
- int fd;
- gzFile g;
-
- if ((g=gzopen(name, "rb")) != NULL) {
- fd=fileno(((gz_stream*)g)->file);
- gzf_fds[fd]=g;
- }
- else if ((fd=open(name, mode)) != -1) {
- gzf_fds[fd]=NULL; /* NULL means not GZ mode */
- }
- return fd;
-}
-
-off_t gzf_lseek(int fd, off_t offset, int whence) {
- if (fd<0 || fd>=MAXFD || gzf_fds[fd]==NULL)
- return lseek(fd, offset, whence);
- else
- return gzseek(gzf_fds[fd], offset, whence);
-}
-
-int gzf_read(int fd, void *buf, size_t count) {
- if (fd<0 || fd>=MAXFD || gzf_fds[fd]==NULL)
- return read(fd, buf, count);
- else
- return gzread(gzf_fds[fd], buf, count);
-}
-
-void gzf_close(int fd) {
- if (fd<0 || fd>=MAXFD || gzf_fds[fd]==NULL)
- close(fd);
- else
- gzclose(gzf_fds[fd]);
-}
-#endif
-
diff --git a/mdk-stage1/insmod-modutils/util/logger.c b/mdk-stage1/insmod-modutils/util/logger.c
deleted file mode 100644
index 3b790df5a..000000000
--- a/mdk-stage1/insmod-modutils/util/logger.c
+++ /dev/null
@@ -1,163 +0,0 @@
-/* Error logging facilities.
- Copyright 1996, 1997 Linux International.
-
- Contributed by Richard Henderson <rth@tamu.edu>
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ident "$Id$"
-
-#include <stdio.h>
-#include <stdarg.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <syslog.h>
-
-#include "util.h"
-
-/*======================================================================*/
-
-int errors;
-const char *error_file;
-int log;
-
-#define STOREMSG
-#ifdef STOREMSG
-struct cbuf {
- struct cbuf *next;
- int type;
- char *msg;
-} *head, *tail;
-
-static void savemsg(int type, char *msg)
-{
- struct cbuf *me = (struct cbuf *)xmalloc(sizeof(struct cbuf));
- char *s = xstrdup(msg);
-
- me->next = NULL;
- me->type = type;
- me->msg = s;
-
- if (tail)
- tail->next = me;
- else
- head = me;
- tail = me;
-}
-
-#endif /* STOREMSG */
-
-static void dumpmsg(void)
-{
- for (;head; head = head->next)
- syslog(head->type, "%s", head->msg);
-}
-
-void setsyslog(const char *program)
-{
- openlog(program, LOG_CONS, LOG_DAEMON);
-#ifdef STOREMSG
- atexit(dumpmsg);
-#endif
- log = 1;
-}
-
-
-
-#ifdef _STANDALONE_
-static int silent;
-
-const char *program_name;
-
-void error(const char *fmt,...)
-{
- va_list args;
-
- if (silent)
- ;
- else if (log) {
- char buf[1024];
- int n;
-
- if (error_file)
- n = snprintf(buf, sizeof(buf), "%s: ", error_file);
- else
- n = 0;
- va_start(args, fmt);
- vsnprintf(buf + n, sizeof(buf) - n, fmt, args);
- va_end(args);
-#ifdef STOREMSG
- savemsg(LOG_ERR, buf);
-#else
- syslog(LOG_ERR, "%s", buf);
-#endif
- } else {
- if (error_file)
- fprintf(stderr, "%s: ", error_file);
- va_start(args, fmt);
- vfprintf(stderr, fmt, args);
- va_end(args);
- putc('\n', stderr);
- }
-
- errors++;
-}
-
-void lprintf(const char *fmt,...)
-{
- va_list args;
-
- if (silent);
- else if (log) {
- char buf[1024];
- va_start(args, fmt);
- vsnprintf(buf, sizeof(buf), fmt, args);
- va_end(args);
-#ifdef STOREMSG
- savemsg(LOG_INFO, buf);
-#else
- syslog(LOG_INFO, "%s", buf);
-#endif
- } else {
- va_start(args, fmt);
- vfprintf(stdout, fmt, args);
- va_end(args);
- putchar('\n');
- }
-}
-
-#else /* _STANDALONE_ */
-#include "../../log.h"
-void error(const char *s, ...)
-{
- va_list p;
-
- va_start(p, s);
- vlog_message(s, p);
- va_end(p);
-}
-
-void lprintf(const char *s, ...)
-{
- va_list p;
-
- va_start(p, s);
- vlog_message(s, p);
- va_end(p);
-}
-#endif
diff --git a/mdk-stage1/insmod-modutils/util/meta_expand.c b/mdk-stage1/insmod-modutils/util/meta_expand.c
deleted file mode 100644
index 41fb4024c..000000000
--- a/mdk-stage1/insmod-modutils/util/meta_expand.c
+++ /dev/null
@@ -1,339 +0,0 @@
-/*
- * Handle expansion of meta charaters
- *
- * Copyright 1999 Björn Ekwall <bj0rn@blox.se>
- *
- * "kernelversion" idea from the Debian release via:
- * Wichert Akkerman <wakkerma@cs.leidenuniv.nl>
- *
- * Use wordexp(): idea from Tim Waugh <tim@cyberelk.demon.co.uk>
- *
- * Alpha typecast: Michal Jaegermann <michal@ellpspace.math.ualberta.ca>
- *
- * This file is part of the Linux modutils.
- *
- * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifdef HAVE_WORDEXP
-#undef HAVE_WORDEXP
-#define HAVE_WORDEXP 0
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <limits.h>
-#include <string.h>
-#include <ctype.h>
-#if HAVE_WORDEXP
-#include <wordexp.h>
-#elif HAVE_GLOB
-#include <glob.h>
-#endif
-#include "util.h"
-
-/*
- * Split into words delimited by whitespace,
- * handle remaining quotes though...
- * If strip_quotes != 0 then strip one level of quotes from the line.
- */
-static void split_line(GLOB_LIST *g, char *line, int strip_quotes)
-{
- int len;
- char *d;
- char *e;
- char *p;
- char tmpline[PATH_MAX];
-
- for (p = line; *p; p = e) {
- /* Skip leading whitespace */
- while (*p && isspace(*p))
- ++p;
-
- /* find end of word */
- d = tmpline;
- for (e = p; *e && !(isspace(*e)); ++e) {
- char match;
-
- /* Quote handling */
- switch (*e) {
- case '\\':
- if (!strip_quotes)
- *d++ = *e;
- break;
-
- case '"':
- case '\'':
- match = *e;
- if (!strip_quotes)
- *d++ = *e;
- for (++e; *e && *e != match; ++e) {
- *d++ = *e;
- if (*e == '\\' && *(e + 1) == match)
- *d++ = *++e;
- }
- if (!strip_quotes)
- *d++ = *e;
- break;
-
- default:
- *d++ = *e;
- break;
- }
- }
-
- if ((len = (int)(d - tmpline)) > 0) {
- char *str = xmalloc(len + 1);
- strncpy(str, tmpline, len);
- str[len] = '\0';
- g->pathv = (char **)xrealloc(g->pathv,
- (g->pathc + 2) * sizeof(char *));
- g->pathv[g->pathc++] = str;
- }
- }
-
- if (g->pathc)
- g->pathv[g->pathc] = NULL;
-}
-
-static int glob_it(char *pt, GLOB_LIST *g)
-{
-#if HAVE_WORDEXP
- wordexp_t w;
-
- memset(&w, 0, sizeof(w));
- if (wordexp(pt, &w, WRDE_UNDEF)) {
- /*
- error("wordexp %s failed", pt);
- */
- return -1;
- }
- /* else */
- g->pathc = w.we_wordc;
- g->pathv = w.we_wordv;
-
- return 0;
-#elif HAVE_GLOB /* but not wordexp */
- glob_t w;
-
- memset(&w, 0, sizeof(w));
- if (glob(pt, GLOB_NOSORT, NULL, &w)) {
- /*
- error("glob %s failed", pt);
- */
- return -1;
- }
- /* else */
- if (w.gl_pathc && strpbrk(w.gl_pathv[0], SHELL_META)) {
- globfree(&w);
- return -1;
- }
- g->pathc = w.gl_pathc;
- g->pathv = w.gl_pathv;
-
- return 0;
-#else /* Neither wordexp nor glob */
- return -1;
-#endif
-}
-
-/*
- * Expand the string (including meta-character) to a list of matches
- *
- * Return 0 if OK else -1
- */
-int meta_expand(char *pt, GLOB_LIST *g, char *base_dir, char *version, int type)
-{
- FILE *fin;
- int len = 0;
- char *line = NULL;
- char *p, *p1;
- char tmpline[PATH_MAX + 1];
- char wrk[sizeof(tmpline)];
- char tmpcmd[2*sizeof(tmpline)+20]; /* room for /bin/echo "text" */
-
- g->pathc = 0;
- g->pathv = NULL;
-
- /*
- * Take care of version dependent expansions
- * Needed for forced version handling
- */
- if ((p = strchr(pt, '`')) != NULL && (type & ME_BUILTIN_COMMAND)) {
- do {
- char *s;
-
- for (s = p + 1; isspace(*s); ++s)
- ;
-
- if (strncmp(s, "uname -r", 8) == 0) {
- while (*s && (*s != '`'))
- ++s;
- if (*s == '`') {
- *p = '\0';
- snprintf(wrk, sizeof(wrk), "%s%s%s",
- pt,
- version,
- s + 1);
- *p = '`';
- }
- strcpy(tmpline, wrk); /* safe, same size */
- pt = tmpline;
- } else if (strncmp(s, "kernelversion", 13) == 0) {
- while (*s && (*s != '`'))
- ++s;
- if (*s == '`') {
- int n;
- char *k;
-
- *p = '\0';
- for (n = 0, k = version; *k; ++k) {
- if (*k == '.' && ++n == 2)
- break;
- }
- snprintf(wrk, sizeof(wrk), "%s%.*s%s",
- pt,
- /* typecast for Alpha */
- (int)(k - version),
- version,
- s + 1);
- *p = '`';
- strcpy(tmpline, wrk); /* safe, same size */
- pt = tmpline;
- }
- } else
- break;
- } while ((p = strchr(pt, '`')) != NULL);
- }
-
- /*
- * Any remaining meta-chars?
- */
- if (strpbrk(pt, SHELL_META) == NULL) {
- /*
- * No meta-chars.
- * Split into words, delimited by whitespace.
- */
- snprintf(wrk, sizeof(wrk), "%s%s", (base_dir ? base_dir : ""), pt);
- strcpy(tmpline, wrk); /* safe, same size */
- if ((p = strtok(tmpline, " \t\n")) != NULL) {
- while (p) {
- g->pathv = (char **)xrealloc(g->pathv,
- (g->pathc + 2) * sizeof(char *));
- g->pathv[g->pathc++] = xstrdup(p);
- p = strtok(NULL, " \t\n");
- }
- }
- if (g->pathc)
- g->pathv[g->pathc] = NULL;
- return 0;
- }
- /* else */
- /*
- * Handle remaining meta-chars
- */
-
- /*
- * Just plain quotes?
- */
- if (strpbrk(pt, "&();|<>$`!{}[]~=+:?*") == NULL &&
- (p = strpbrk(pt, "\"'\\"))) {
- split_line(g, pt, 1);
- return 0;
- }
-
- if (strpbrk(pt, "&();|<>$`\"'\\!{}~+:[]~?*") == NULL) {
- /* Only "=" remaining, should be module options */
- split_line(g, pt, 0);
- return 0;
- }
-
- /*
- * If there are meta-characters and
- * if they are only shell glob meta-characters: do globbing
- */
-#if HAVE_WORDEXP
- if (strpbrk(pt, "&();|<>`\"'\\!{}~=+:") == NULL &&
- strpbrk(pt, "$[]~?*"))
-#else
- if (strpbrk(pt, "&();|<>$`\"'\\!{}~=+:") == NULL &&
- strpbrk(pt, "[]~?*"))
-#endif
- if ((type & ME_GLOB) && glob_it(pt, g) == 0)
- return 0;
-
- if (strpbrk(pt, "&();|<>$`\"'\\!{}~+:[]~?*") == NULL) {
- /* Only "=" remaining, should be module options */
- split_line(g, pt, 0);
- return 0;
- }
-
- /*
- * Last resort: Use "echo".
- * DANGER: Applying shell expansion to user supplied input is a
- * major security risk. Modutils code should only do meta
- * expansion via shell commands for trusted data. Basically
- * this means only for data in the config file. Even that
- * assumes that the user cannot run modprobe as root with
- * their own config file. Programs (including the kernel)
- * that invoke modprobe as root with user supplied input must
- * pass exactly one user supplied parameter and must set
- * safe mode.
- */
- if (!(type & ME_SHELL_COMMAND))
- return 0;
- snprintf(wrk, sizeof(wrk), "%s%s", (base_dir ? base_dir : ""), pt);
- strcpy(tmpline, wrk); /* safe, same size */
- snprintf(tmpcmd, sizeof(tmpcmd), "/bin/echo \"");
- for (p = tmpline, p1 = tmpcmd + strlen(tmpcmd); *p; ++p, ++p1) {
- if (*p == '"' || *p == '\\')
- *p1++ = '\\';
- *p1 = *p;
- }
- *p1++ = '"';
- *p1++ = '\0';
- if (p1 - tmpcmd > sizeof(tmpcmd)) {
- error("tmpcmd overflow, should never happen");
- exit(1);
- }
- if ((fin = popen(tmpcmd, "r")) == NULL) {
- error("Can't execute: %s", tmpcmd);
- return -1;
- }
- /* else */
-
- /*
- * Collect the result
- */
- while (fgets(tmpcmd, PATH_MAX, fin) != NULL) {
- int l = strlen(tmpcmd);
-
- line = (char *)xrealloc(line, len + l + 1);
- line[len] = '\0';
- strcat(line + len, tmpcmd); /* safe, realloc */
- len += l;
- }
- pclose(fin);
-
- if (line) {
- /* shell used to strip one set of quotes. Paranoia code in
- * 2.3.20 stops that strip so we do it ourselves.
- */
- split_line(g, line, 1);
- free(line);
- }
-
- return 0;
-}
diff --git a/mdk-stage1/insmod-modutils/util/modstat.c b/mdk-stage1/insmod-modutils/util/modstat.c
deleted file mode 100644
index ad82306c0..000000000
--- a/mdk-stage1/insmod-modutils/util/modstat.c
+++ /dev/null
@@ -1,419 +0,0 @@
-/*
- * Get kernel symbol table(s) and other relevant module info.
- *
- * Add module_name_list and l_module_name_list.
- * Keith Owens <kaos@ocs.com.au> November 1999.
- * Björn Ekwall <bj0rn@blox.se> in February 1999 (C)
- * Initial work contributed by Richard Henderson <rth@tamu.edu>
- *
- * This file is part of the Linux modutils.
- *
- * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <errno.h>
-#include "util.h"
-#include "module.h"
-#include "obj.h"
-#include "modstat.h"
-
-struct module_stat *module_stat;
-size_t n_module_stat;
-char *module_name_list;
-size_t l_module_name_list;
-struct module_symbol *ksyms;
-size_t nksyms;
-int k_new_syscalls;
-
-static void *old_kernsym;
-
-/************************************************************************/
-static void drop(void)
-{
- /*
- * Clean the slate for multiple runs
- */
- if (module_stat) {
- struct module_stat *m;
- int i;
-
- for (i = 0, m = module_stat; i < n_module_stat; ++i, ++m) {
- if (m->syms)
- free(m->syms);
- if (m->refs)
- free(m->refs);
- }
- free(module_stat);
- module_stat = NULL;
- n_module_stat = 0;
- }
- if (module_name_list) {
- free(module_name_list);
- module_name_list = NULL;
- l_module_name_list = 0;
- }
- if (ksyms) {
- free(ksyms);
- ksyms = NULL;
- nksyms = 0;
- }
- if (old_kernsym) {
- free(old_kernsym);
- old_kernsym = NULL;
- }
-}
-
-static int new_get_kernel_info(int type)
-{
- struct module_stat *modules;
- struct module_stat *m;
- struct module_symbol *syms;
- struct module_symbol *s;
- size_t ret;
- size_t bufsize;
- size_t nmod;
- size_t nsyms;
- size_t i;
- size_t j;
- char *module_names;
- char *mn;
-
- drop();
-
- /*
- * Collect the loaded modules
- */
- module_names = xmalloc(bufsize = 256);
- while (query_module(NULL, QM_MODULES, module_names, bufsize, &ret)) {
- if (errno != ENOSPC) {
- error("QM_MODULES: %m\n");
- return 0;
- }
- module_names = xrealloc(module_names, bufsize = ret);
- }
- module_name_list = module_names;
- l_module_name_list = bufsize;
- n_module_stat = nmod = ret;
- module_stat = modules = xmalloc(nmod * sizeof(struct module_stat));
- memset(modules, 0, nmod * sizeof(struct module_stat));
-
- /* Collect the info from the modules */
- for (i = 0, mn = module_names, m = modules;
- i < nmod;
- ++i, ++m, mn += strlen(mn) + 1) {
- struct module_info info;
-
- m->name = mn;
- if (query_module(mn, QM_INFO, &info, sizeof(info), &ret)) {
- if (errno == ENOENT) {
- /* The module was removed out from underneath us. */
- m->flags = NEW_MOD_DELETED;
- continue;
- }
- /* else oops */
- error("module %s: QM_INFO: %m", mn);
- return 0;
- }
-
- m->addr = info.addr;
-
- if (type & K_INFO) {
- m->size = info.size;
- m->flags = info.flags;
- m->usecount = info.usecount;
- m->modstruct = info.addr;
- }
-
- if (type & K_REFS) {
- int mm;
- char *mrefs;
- char *mr;
-
- mrefs = xmalloc(bufsize = 64);
- while (query_module(mn, QM_REFS, mrefs, bufsize, &ret)) {
- if (errno != ENOSPC) {
- error("QM_REFS: %m");
- return 1;
- }
- mrefs = xrealloc(mrefs, bufsize = ret);
- }
- for (j = 0, mr = mrefs;
- j < ret;
- ++j, mr += strlen(mr) + 1) {
- for (mm = 0; mm < i; ++mm) {
- if (strcmp(mr, module_stat[mm].name) == 0) {
- m->nrefs += 1;
- m->refs = xrealloc(m->refs, m->nrefs * sizeof(struct module_stat **));
- m->refs[m->nrefs - 1] = module_stat + mm;
- break;
- }
- }
- }
- free(mrefs);
- }
-
- if (type & K_SYMBOLS) { /* Want info about symbols */
- syms = xmalloc(bufsize = 1024);
- while (query_module(mn, QM_SYMBOLS, syms, bufsize, &ret)) {
- if (errno == ENOSPC) {
- syms = xrealloc(syms, bufsize = ret);
- continue;
- }
- if (errno == ENOENT) {
- /*
- * The module was removed out
- * from underneath us.
- */
- m->flags = NEW_MOD_DELETED;
- free(syms);
- goto next;
- } else {
- error("module %s: QM_SYMBOLS: %m", mn);
- return 0;
- }
- }
- nsyms = ret;
-
- m->nsyms = nsyms;
- m->syms = syms;
-
- /* Convert string offsets to string pointers */
- for (j = 0, s = syms; j < nsyms; ++j, ++s)
- s->name += (unsigned long) syms;
- }
- next:
- }
-
- if (type & K_SYMBOLS) { /* Want info about symbols */
- /* Collect the kernel's symbols. */
- syms = xmalloc(bufsize = 16 * 1024);
- while (query_module(NULL, QM_SYMBOLS, syms, bufsize, &ret)) {
- if (errno != ENOSPC) {
- error("kernel: QM_SYMBOLS: %m");
- return 0;
- }
- syms = xrealloc(syms, bufsize = ret);
- }
- nksyms = nsyms = ret;
- ksyms = syms;
-
- /* Convert string offsets to string pointers */
- for (j = 0, s = syms; j < nsyms; ++j, ++s)
- s->name += (unsigned long) syms;
- }
-
- return 1;
-}
-
-#ifdef COMPAT_2_0
-/************************************************************************/
-
-#define mscan(offs,siz,ptr) \
- if (lseek(kmem_fd, (off_t)(offs), SEEK_SET) == -1 || \
- read(kmem_fd, (ptr), (siz)) != (siz)) { \
- if (kmem_fd != -1) \
- close(kmem_fd); \
- error("kmem: %m"); \
- return 0; \
- }
-
-#define OLD_MOD_RUNNING 1
-#define OLD_MOD_DELETED 2
-#define OLD_MOD_VISITED 0x20000000
-
-/* Fetch all the symbols and divvy them up as appropriate for the modules. */
-static int old_get_kernel_info(int type)
-{
- struct old_kernel_sym *kernsym;
- struct old_kernel_sym *k;
- struct module_stat *module;
- struct module_stat *mod;
- struct module_symbol *s = NULL;
- int kmem_fd = -1;
- int nkernsym;
- int nmod;
- int nm;
- int nms;
- int i;
-
- drop();
- module_name_list = xmalloc(1);
- *module_name_list = '\0';
-
- if ((nkernsym = get_kernel_syms(NULL)) < 0) {
- error("get_kernel_syms: %m");
- return 0;
- }
- kernsym = k = xmalloc(nkernsym * sizeof(struct old_kernel_sym));
- old_kernsym = kernsym;
- if (get_kernel_syms(kernsym) != nkernsym) {
- error("inconsistency with get_kernel_syms -- is someone else "
- "playing with modules?");
- free(kernsym);
- return 0;
- }
-
- /* Number of modules */
- for (k = kernsym, nmod = 0, i = 0; i < nkernsym; ++i, ++k) {
- if (k->name[0] == '#') {
- if (k->name[1]) {
- ++nmod;
- i = strlen(k->name+1) + 1;
- module_name_list =
- xrealloc(module_name_list,
- l_module_name_list + i);
- strcpy(module_name_list+l_module_name_list, /* safe, xrealloc */
- k->name+1);
- l_module_name_list += i; /* NUL separated strings */
- }
- else
- break;
- }
- }
- module_stat = mod = module = xmalloc(nmod * sizeof(struct module_stat));
- memset(module, 0, nmod * sizeof(struct module_stat));
- n_module_stat = nmod;
-
- /*
- * Will we need kernel internal info?
- */
- if ((type & K_INFO) || (type & K_REFS)) {
- if ((kmem_fd = open("/dev/kmem", O_RDONLY)) < 0) {
- perror("ksyms: open /dev/kmem");
- return 0;
- }
- }
-
- /*
- * Collect the module information.
- */
- for (k = kernsym, nm = 0, i = 0; i < nkernsym; ++i, ++k) {
- if (k->name[0] == '#') {
- struct old_kernel_sym *p;
- struct old_module info;
-
- if (k->name[1] == '\0')
- break; /* kernel resident symbols follow */
- /* else normal module */
-
- module = mod++;
- ++nm;
- module->name = k->name + 1;
- module->modstruct = k->value;
-
- if ((type & K_INFO) || (type & K_REFS)) {
- long tmp;
- /*
- * k->value is the address of the
- * struct old_module
- * in the kernel (for use via /dev/kmem)
- */
- mscan(k->value, sizeof(info), &info);
- module->addr = info.addr;
- module->size = info.size * getpagesize();
-
- mscan(info.addr, sizeof(long), &tmp);
- module->flags = info.state &
- (OLD_MOD_RUNNING | OLD_MOD_DELETED);
- module->flags |= NEW_MOD_USED_ONCE; /* Cheat */
- if (tmp & OLD_MOD_AUTOCLEAN)
- module->flags |= NEW_MOD_AUTOCLEAN;
- if (tmp & OLD_MOD_VISITED)
- module->flags |= NEW_MOD_VISITED;
-
- module->usecount = tmp & ~(OLD_MOD_AUTOCLEAN | OLD_MOD_VISITED);
- }
-
- if ((type & K_REFS) && info.ref) {
- struct old_module_ref mr;
- int j;
- unsigned long ref = info.ref;
-
- do {
- mscan(ref, sizeof(struct old_module_ref), &mr);
- for (j = 0; j < nm -1; ++j) {
- if (mr.module == module_stat[j].modstruct) {
- module->nrefs += 1;
- module->refs = xrealloc(module->refs, module->nrefs * sizeof(struct module_stat **));
- module->refs[module->nrefs - 1] = module_stat + j;
- break;
- }
- }
- } while ((ref = mr.next) != 0);
- }
-
- if (!(type & K_SYMBOLS))
- continue;
- /*
- * Find out how many symbols this module has.
- */
- for (nms = 0, p = k+1; p->name[0] != '#'; ++p)
- ++nms;
- s = xmalloc(nms * sizeof(struct module_symbol));
- module->syms = s;
- module->nsyms = nms;
- } else if (type & K_SYMBOLS) { /* Want info about symbols */
- s->name = (unsigned long) k->name;
- s->value = k->value;
- ++s;
- }
- }
- if ((type & K_INFO) || (type & K_REFS)) {
- if (kmem_fd != -1)
- close(kmem_fd);
- }
-
- /*
- * Kernel resident symbols follows
- */
- if (type & K_SYMBOLS) { /* Want info about symbols */
- if (k->name[0] == '#')
- ++k;
- nksyms = nkernsym - (k - kernsym);
- if (nksyms) {
- ksyms = s = xmalloc(nksyms * sizeof(struct module_symbol));
- for (i = 0; i < nksyms; ++i, ++k) {
- if (k->name[0] != '#') {
- s->name = (unsigned long) k->name;
- s->value = k->value;
- ++s;
- }
- }
- nksyms = s - ksyms;
- } else
- ksyms = NULL;
- }
-
- return 1;
-}
-#endif /* COMPAT_2_0 */
-
-int get_kernel_info(int type)
-{
- k_new_syscalls = !query_module(NULL, 0, NULL, 0, NULL);
-
-#ifdef COMPAT_2_0
- if (!k_new_syscalls)
- return old_get_kernel_info(type);
-#endif /* COMPAT_2_0 */
-
- return new_get_kernel_info(type);
-}
diff --git a/mdk-stage1/insmod-modutils/util/snap_shot.c b/mdk-stage1/insmod-modutils/util/snap_shot.c
deleted file mode 100644
index ae0cc7c79..000000000
--- a/mdk-stage1/insmod-modutils/util/snap_shot.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/* Take a snap shot of ksyms and modules for Oops debugging
- Copyright 1999 Linux International.
-
- Contributed by Keith Owens <kaos@ocs.com.au>
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ident "$Id$"
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdarg.h>
-#include <time.h>
-#include <unistd.h>
-#include <string.h>
-
-#include "module.h"
-#include "obj.h"
-#include "modstat.h"
-#include "util.h"
-
-static char snap_dir[] = "/var/log/ksymoops";
-
-/* If snap_dir exists, take a snap shot of ksyms and modules to snap_dir.
- * Prefix the files with the equivalent of
- * date +%Y%m%d%T%M%S | sed -e 's/://g'
- */
-void snap_shot(const char *module_names, int n_module_names)
-{
- char file[] = "ccyymmddhhmmss.modules", buffer[4096];
- static char *infile[] = { "/proc/ksyms", "/proc/modules" };
- static char *suffix[] = { "ksyms", "modules" };
- struct tm *local;
- time_t t;
- int i, l;
- FILE *in, *out;
-
- if (module_names) {
- /* Only snap shot if the list of modules has changed.
- * Otherwise auto cleanup takes a snap shot every time
- * and ends up with a large snap shot directory.
- */
- char *new_module_names;
- size_t n_new_module_names;
- get_kernel_info(0);
- new_module_names = module_name_list;
- n_new_module_names = n_module_stat;
- if (n_module_names && n_new_module_names == n_module_names) {
- while (n_module_names) {
- if (strcmp(module_names, new_module_names))
- break; /* difference detected */
- i = strlen(module_names) + 1;
- module_names += i;
- new_module_names += i;
- --n_module_names;
- }
- }
- if (!n_module_names)
- return; /* no difference, no need for snap shot */
- }
-
- if (chdir(snap_dir))
- return;
- t = time(NULL);
- local = localtime(&t);
- for (i = 0; i < sizeof(infile)/sizeof(infile[0]); ++i) {
- snprintf(file, sizeof(file), "%04d%02d%02d%02d%02d%02d.%s",
- local->tm_year+1900,
- local->tm_mon + 1,
- local->tm_mday,
- local->tm_hour,
- local->tm_min,
- local->tm_sec,
- suffix[i]);
- out = fopen(file, "w");
- if (!out) {
- error("cannot create %s/%s %m", snap_dir, file);
- return;
- }
- in = fopen(infile[i], "r");
- if (!in) {
- error("cannot open %s %m", infile[i]);
- return;
- }
- while ((l = fread(buffer, 1, sizeof(buffer), in)) > 0) {
- if (fwrite(buffer, l, 1, out) != 1) {
- error("unable to write to %s %m", file);
- fclose(in);
- fclose(out);
- return;
- }
- }
- if (ferror(in))
- error("unable to read from %s %m", infile[i]);
- fclose(in);
- fclose(out);
- }
-}
-
-/* If snap_dir exists, log a message to snap_dir. The log file is called the
- * equivalent of date +%Y%m%d | sed -e 's/://g'. Each line is prefixed with
- * timestamp down to seconds and followed by a newline.
- */
-void snap_shot_log(const char *fmt,...)
-{
- char date[] = "ccyymmdd", file[] = "ccyymmdd.log", stamp[] = "ccyymmdd hhmmss";
- struct tm *local;
- time_t t;
- FILE *log;
- va_list args;
- int save_errno = errno;
-
- if (chdir(snap_dir))
- return;
- t = time(NULL);
- local = localtime(&t);
- snprintf(date, sizeof(date), "%04d%02d%02d",
- local->tm_year+1900,
- local->tm_mon + 1,
- local->tm_mday);
- snprintf(file, sizeof(file), "%s.log", date);
- log = fopen(file, "a");
- if (!log) {
- error("cannot create %s/%s %m", snap_dir, file);
- return;
- }
- snprintf(stamp, sizeof(stamp), "%s %02d%02d%02d",
- date,
- local->tm_hour,
- local->tm_min,
- local->tm_sec);
- fprintf(log, "%s ", stamp);
- va_start(args, fmt);
- errno = save_errno; /* fmt may use %m */
- vfprintf(log, fmt, args);
- va_end(args);
- fprintf(log, "\n");
- fclose(log);
-}
diff --git a/mdk-stage1/insmod-modutils/util/sys_cm.c b/mdk-stage1/insmod-modutils/util/sys_cm.c
deleted file mode 100644
index 851fb709e..000000000
--- a/mdk-stage1/insmod-modutils/util/sys_cm.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Functions for the Linux module syscall interface.
- Copyright 1996, 1997 Linux International.
- Contributed by Richard Henderson <rth@tamu.edu>
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ident "$Id$"
-
-#include <stdlib.h>
-#include <errno.h>
-
-#include "module.h"
-
-/* Kernel headers before 2.1.mumble need this on the Alpha to get
- _syscall* defined. */
-#define __LIBRARY__
-
-#include <asm/unistd.h>
-
-
-/*======================================================================*/
-
-#if defined(__i386__) || defined(__m68k__) || defined(__arm__)
-
-#define __NR__create_module __NR_create_module
-static inline _syscall2(long, _create_module, const char *, name, size_t, size)
-
-unsigned long create_module(const char *name, size_t size)
-{
- /* Why all this fuss?
-
- In linux 2.1, the address returned by create module point in
- kernel space which is now mapped at the top of user space (at
- 0xc0000000 on i386). This looks like a negative number for a
- long. The normal syscall macro of linux 2.0 (and all libc compile
- with linux 2.0 or below) consider that the return value is a
- negative number and consider it is an error number (A kernel
- convention, return value are positive or negative, indicating the
- error number).
-
- By checking the value of errno, we know if we have been fooled by
- the syscall2 macro and we fix it. */
-
- long ret = _create_module(name, size);
- if (ret == -1 && errno > 125)
- {
- ret = -errno;
- errno = 0;
- }
- return ret;
-}
-
-#elif defined(__alpha__)
-
-/* Alpha doesn't have the same problem, exactly, but a bug in older
- kernels fails to clear the error flag. Clear it here explicitly. */
-
-#define __NR__create_module __NR_create_module
-static inline _syscall4(unsigned long, _create_module, const char *, name,
- size_t, size, size_t, dummy, size_t, err);
-
-unsigned long create_module(const char *name, size_t size)
-{
- return _create_module(name, size, 0, 0);
-}
-
-#else
-
-/* Sparc, MIPS, (and Alpha, but that's another problem) don't mistake
- return values for errors due to the nature of the system call. */
-
-_syscall2(unsigned long, create_module, const char *, name, size_t, size)
-
-#endif
diff --git a/mdk-stage1/insmod-modutils/util/sys_dm.c b/mdk-stage1/insmod-modutils/util/sys_dm.c
deleted file mode 100644
index a166a30f4..000000000
--- a/mdk-stage1/insmod-modutils/util/sys_dm.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Functions for the Linux module syscall interface.
- Copyright 1996, 1997 Linux International.
- Contributed by Richard Henderson <rth@tamu.edu>
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ident "$Id$"
-
-#include <stdlib.h>
-#include <errno.h>
-
-#include "module.h"
-
-/* Kernel headers before 2.1.mumble need this on the Alpha to get
- _syscall* defined. */
-#define __LIBRARY__
-
-#include <asm/unistd.h>
-
-
-/*======================================================================*/
-
-_syscall1(int, delete_module, const char *, name)
diff --git a/mdk-stage1/insmod-modutils/util/sys_gks.c b/mdk-stage1/insmod-modutils/util/sys_gks.c
deleted file mode 100644
index f71772c71..000000000
--- a/mdk-stage1/insmod-modutils/util/sys_gks.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Functions for the Linux module syscall interface.
- Copyright 1996, 1997 Linux International.
- Contributed by Richard Henderson <rth@tamu.edu>
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ident "$Id$"
-
-#include <stdlib.h>
-#include <errno.h>
-
-#include "module.h"
-
-/* Kernel headers before 2.1.mumble need this on the Alpha to get
- _syscall* defined. */
-#define __LIBRARY__
-
-#include <asm/unistd.h>
-
-
-/*======================================================================*/
-
-_syscall1(int, get_kernel_syms, struct old_kernel_sym *, ksyms)
diff --git a/mdk-stage1/insmod-modutils/util/sys_nim.c b/mdk-stage1/insmod-modutils/util/sys_nim.c
deleted file mode 100644
index bbe42135c..000000000
--- a/mdk-stage1/insmod-modutils/util/sys_nim.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Functions for the Linux module syscall interface.
- Copyright 1996, 1997 Linux International.
- Contributed by Richard Henderson <rth@tamu.edu>
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ident "$Id$"
-
-#include <stdlib.h>
-#include <errno.h>
-
-#include "module.h"
-
-/* Kernel headers before 2.1.mumble need this on the Alpha to get
- _syscall* defined. */
-#define __LIBRARY__
-
-#include <asm/unistd.h>
-
-
-/*======================================================================*/
-
-#ifndef CONFIG_USE_SYSCALL
-
-extern int init_module(const char *name, const struct module *info);
-
-int
-sys_init_module(const char *name, const struct module *info)
-{
- return init_module(name, info);
-}
-
-#else
-
-#define __NR_sys_init_module __NR_init_module
-_syscall2(int, sys_init_module, const char *, name,
- const struct module *, info)
-
-#endif
diff --git a/mdk-stage1/insmod-modutils/util/sys_oim.c b/mdk-stage1/insmod-modutils/util/sys_oim.c
deleted file mode 100644
index 73ac6be52..000000000
--- a/mdk-stage1/insmod-modutils/util/sys_oim.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Functions for the Linux module syscall interface.
- Copyright 1996, 1997 Linux International.
- Contributed by Richard Henderson <rth@tamu.edu>
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ident "$Id$"
-
-#include <stdlib.h>
-#include <errno.h>
-
-#include "module.h"
-
-/* Kernel headers before 2.1.mumble need this on the Alpha to get
- _syscall* defined. */
-#define __LIBRARY__
-
-#include <asm/unistd.h>
-
-
-/*======================================================================*/
-
-#define __NR_old_sys_init_module __NR_init_module
-_syscall5(int, old_sys_init_module, const char *, name, char *, code,
- unsigned, codesize, struct old_mod_routines *, routines,
- struct old_symbol_table *, symtab)
diff --git a/mdk-stage1/insmod-modutils/util/sys_qm.c b/mdk-stage1/insmod-modutils/util/sys_qm.c
deleted file mode 100644
index 119a219a2..000000000
--- a/mdk-stage1/insmod-modutils/util/sys_qm.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Functions for the Linux module syscall interface.
- Copyright 1996, 1997 Linux International.
- Contributed by Richard Henderson <rth@tamu.edu>
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ident "$Id$"
-
-#include <stdlib.h>
-#include <errno.h>
-
-#include "module.h"
-
-/* Kernel headers before 2.1.mumble need this on the Alpha to get
- _syscall* defined. */
-#define __LIBRARY__
-
-#include <asm/unistd.h>
-
-
-/*======================================================================*/
-
-/* I am fucking tired of the "this doesn't build on 2.0.x" questions.
- But if you ask, we still officially require 2.1.x to build. */
-#if !defined(__NR_query_module)
-# if defined(__i386__)
-# define __NR_query_module 167
-# elif defined(__alpha__)
-# define __NR_query_module 347
-# elif defined(__sparc__)
-# define __NR_query_module 184
-# elif defined(__mc68000__)
-# define __NR_query_module 167
-# elif defined(__arm__)
-# define __NR_query_module (__NR_SYSCALL_BASE + 167)
-# elif defined(__mips__)
-# define __NR_query_module 4187
-# endif
-#endif
-
-_syscall5(int, query_module, const char *, name, int, which,
- void *, buf, size_t, bufsize, size_t *, ret);
diff --git a/mdk-stage1/insmod-modutils/util/xftw.c b/mdk-stage1/insmod-modutils/util/xftw.c
deleted file mode 100644
index fe764a63c..000000000
--- a/mdk-stage1/insmod-modutils/util/xftw.c
+++ /dev/null
@@ -1,422 +0,0 @@
-/*
- * modutils specific implementation of ftw().
- *
- * Copyright 2000:
- * Keith Owens <kaos@ocs.com.au> August 2000
- *
- * This file is part of the Linux modutils.
- *
- * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-/*
- modutils requires special processing during the file tree walk
- of /lib/modules/<version> and any paths that the user specifies.
- The standard ftw() does a blind walk of all paths and can end
- up following the build symlink down the kernel source tree.
- Although nftw() has the option to get more control such as not
- automatically following symbolic links, even that is not enough
- for modutils. The requirements are:
-
- Paths must be directories or symlinks to directories.
-
- Each directory is read and sorted into alphabetical order
- before processing.
-
- A directory is type 1 iff it was specified on a path statement
- (either explicit or default) and the directory contains a
- subdirectory with one of the known names and the directory name
- does not end with "/kernel". Otherwise it is type 2.
-
- In a type 1 directory, walk the kernel subdirectory if it exists,
- then the old known names in their historical order then any
- remaining directory entries in alphabetical order and finally any
- non-directory entries in alphabetical order.
-
- Entries in a type 1 directory are filtered against the "prune"
- list. A type 1 directory can contain additional files which
- are not modules nor symlinks to modules. The prune list skips
- known additional files, if a distribution wants to store
- additional text files in the top level directory they should be
- added to the prune list.
-
- A type 2 directory must contain only modules or symlinks to
- modules. They are processed in alphabetical order, without
- pruning. Symlinks to directories are an error in type 2
- directories.
-
- The user function is not called for type 1 directories, nor for
- pruned entries. It is called for type 2 directories and their
- contents. It is also called for any files left in a type 1
- directory after pruning and processing type 2 subdirectories.
- The user function never sees symlinks, they are resolved before
- calling the function.
-
- Why have different directory types? The original file tree
- walk was not well defined. Some users specified each directory
- individually, others just pointed at the top level directory.
- Either version worked until the "build" symlink was added. Now
- users who specify the top level directory end up running the
- entire kernel source tree looking for modules, not nice. We
- cannot just ignore symlinks because pcmcia uses symlinks to
- modules for backwards compatibility.
-
- Type 1 is when a user specifies the top level directory which needs
- special processing, type 2 is individual subdirectories. But the
- only way to tell the difference is by looking at the contents. The
- "/kernel" directory introduced in 2.3.12 either contains nothing
- (old make modules_install) or contains all the kernel modules using
- the same tree structure as the source. Because "/kernel" can
- contain old names but is really a type 2 directory, it is detected
- as a special case.
- */
-
-#include <dirent.h>
-#include <errno.h>
-#include <limits.h>
-#include <malloc.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-
-#include "util.h"
-#include "config.h"
-
-extern char *tbpath[];
-
-extern OPT_LIST *prune_list;
-extern int n_prune_list;
-
-extern char *tbtype[];
-
-struct xftw_dirent {
- struct stat statbuf;
- char *name;
- char *fullname;
-};
-
-#define XFTW_MAXDEPTH 64 /* Maximum directory depth handled */
-
-typedef struct {
- struct xftw_dirent *contents;
- int size;
- int used;
-} xftw_tree_t;
-
-static xftw_tree_t tree[XFTW_MAXDEPTH];
-
-/* Free all data for one tree level */
-static void xftw_free_tree(int depth)
-{
- int i;
- xftw_tree_t *t = tree+depth;
- for (i = 0; i < t->size; ++i) {
- free(t->contents[i].name);
- free(t->contents[i].fullname);
- }
- free(t->contents);
- t->contents = NULL;
- t->size = 0;
- t->used = 0;
-}
-
-/* Increment dirents used at this depth, resizing if necessary */
-static void xftw_add_dirent(int depth)
-{
- xftw_tree_t *t = tree+depth;
- int i, size = t->size;
- if (++t->used < size)
- return;
- size += 10; /* arbitrary increment */
- t->contents = xrealloc(t->contents, size*sizeof(*(t->contents)));
- for (i = t->size; i < size; ++i) {
- memset(&(t->contents[i].statbuf), 0, sizeof(t->contents[i].statbuf));
- t->contents[i].name = NULL;
- t->contents[i].fullname = NULL;
- }
- t->size = size;
-}
-
-/* Concatenate directory name and entry name into one string.
- * Note: caller must free result or leak.
- */
-static char *xftw_dir_name(const char *directory, const char *entry)
-{
- int i = strlen(directory);
- char *name;
- if (entry)
- i += strlen(entry);
- i += 2;
- name = xmalloc(i);
- strcpy(name, directory); /* safe, xmalloc */
- if (*directory && entry)
- strcat(name, "/"); /* safe, xmalloc */
- if (entry)
- strcat(name, entry); /* safe, xmalloc */
- return(name);
-}
-
-/* Call the user function for a directory entry */
-static int xftw_do_name(const char *directory, const char *entry, struct stat *sb, xftw_func_t funcptr)
-{
- int ret = 0;
- char *name = xftw_dir_name(directory, entry);
-
- if (S_ISLNK(sb->st_mode)) {
- char real[PATH_MAX], *newname;
- verbose("resolving %s symlink to ", name);
- if (!(newname = realpath(name, real))) {
- if (errno == ENOENT) {
- verbose("%s: does not exist, dangling symlink ignored\n", real);
- goto cleanup;
- }
- perror("... failed");
- goto cleanup;
- }
- verbose("%s ", newname);
- if (lstat(newname, sb)) {
- error("lstat on %s failed ", newname);
- perror("");
- goto cleanup;
- }
- free(name);
- name = xstrdup(newname);
- }
-
- if (!S_ISREG(sb->st_mode) &&
- !S_ISDIR(sb->st_mode)) {
- error("%s is not plain file nor directory\n", name);
- goto cleanup;
- }
-
- verbose("user function %s\n", name);
- ret = (*funcptr)(name, sb);
-cleanup:
- free(name);
- return(ret);
-}
-
-/* Sort directory entries into alphabetical order */
-static int xftw_sortdir(const void *a, const void *b)
-{
- return(strcmp(((struct xftw_dirent *)a)->name, ((struct xftw_dirent *)b)->name));
-}
-
-/* Read a directory and sort it, ignoring "." and ".." */
-static int xftw_readdir(const char *directory, int depth)
-{
- DIR *d;
- struct dirent *ent;
- verbose("xftw_readdir %s\n", directory);
- if (!(d = opendir(directory))) {
- perror(directory);
- return(1);
- }
- while ((ent = readdir(d))) {
- char *name;
- struct xftw_dirent *f;
- if (strcmp(ent->d_name, ".") == 0 ||
- strcmp(ent->d_name, "..") == 0)
- continue;
- name = xftw_dir_name(directory, ent->d_name);
- xftw_add_dirent(depth);
- f = tree[depth].contents+tree[depth].used-1;
- f->name = xstrdup(ent->d_name);
- f->fullname = name; /* do not free name, it is in use */
- if (lstat(name, &(f->statbuf))) {
- perror(name);
- return(1);
- }
- }
- closedir(d);
- qsort(tree[depth].contents, tree[depth].used, sizeof(*(tree[0].contents)), &xftw_sortdir);
- return(0);
-}
-
-/* Process a type 2 directory */
-int xftw_type2(const char *directory, const char *entry, int depth, xftw_func_t funcptr)
-{
- int ret, i;
- xftw_tree_t *t = tree+depth;
- struct stat statbuf;
- char *dirname = xftw_dir_name(directory, entry);
-
- verbose("type 2 %s\n", dirname);
- if (depth > XFTW_MAXDEPTH) {
- error("xftw_type2 exceeded maxdepth\n");
- ret = 1;
- goto cleanup;
- }
- if ((ret = xftw_readdir(dirname, depth)))
- goto cleanup;
-
- t = tree+depth;
- /* user function sees type 2 directories */
- if ((ret = lstat(dirname, &statbuf)) ||
- (ret = xftw_do_name("", dirname, &statbuf, funcptr)))
- goto cleanup;
-
- /* user sees all contents of type 2 directory, no pruning */
- for (i = 0; i < t->used; ++i) {
- struct xftw_dirent *c = t->contents+i;
- if (S_ISLNK(c->statbuf.st_mode)) {
- if (!stat(c->name, &(c->statbuf))) {
- if (S_ISDIR(c->statbuf.st_mode)) {
- error("symlink to directory is not allowed, %s ignored\n", c->name);
- *(c->name) = '\0'; /* ignore it */
- }
- }
- }
- if (!*(c->name))
- continue;
- if (S_ISDIR(c->statbuf.st_mode)) {
- /* recursion is the curse of the programming classes */
- ret = xftw_type2(dirname, c->name, depth+1, funcptr);
- if (ret)
- goto cleanup;
- }
- else if ((ret = xftw_do_name(dirname, c->name, &(c->statbuf), funcptr)))
- goto cleanup;
- *(c->name) = '\0'; /* processed */
- }
-
- ret = 0;
-cleanup:
- free(dirname);
- return(ret);
-}
-
-/* Only external visible function. Decide on the type of directory and
- * process accordingly.
- */
-int xftw(const char *directory, xftw_func_t funcptr)
-{
- struct stat statbuf;
- int ret, i, j, type;
- xftw_tree_t *t;
- struct xftw_dirent *c;
-
- verbose("xftw starting at %s ", directory);
- if (lstat(directory, &statbuf)) {
- verbose("lstat on %s failed\n", directory);
- return(0);
- }
- if (S_ISLNK(statbuf.st_mode)) {
- char real[PATH_MAX];
- verbose("resolving symlink to ");
- if (!(directory = realpath(directory, real))) {
- if (errno == ENOENT) {
- verbose("%s: does not exist, dangling symlink ignored\n", real);
- return(0);
- }
- perror("... failed");
- return(-1);
- }
- verbose("%s ", directory);
- if (lstat(directory, &statbuf)) {
- error("lstat on %s failed ", directory);
- perror("");
- return(-1);
- }
- }
- if (!S_ISDIR(statbuf.st_mode)) {
- error("%s is not a directory\n", directory);
- return(-1);
- }
- verbose("\n");
-
- /* All returns after this point must be via cleanup */
-
- if ((ret = xftw_readdir(directory, 0)))
- goto cleanup;
-
- t = tree; /* depth 0 */
- type = 2;
- for (i = 0 ; type == 2 && i < t->used; ++i) {
- c = t->contents+i;
- for (j = 0; tbtype[j]; ++j) {
- if (strcmp(c->name, tbtype[j]) == 0 &&
- S_ISDIR(c->statbuf.st_mode)) {
- const char *p = directory + strlen(directory) - 1;
- if (*p == '/')
- --p;
- if (p - directory >= 6 && strncmp(p-6, "/kernel", 7) == 0)
- continue; /* "/kernel" path is a special case, type 2 */
- type = 1; /* known subdirectory */
- break;
- }
- }
- }
-
- if (type == 1) {
- OPT_LIST *p;
- /* prune entries in type 1 directories only */
- for (i = 0 ; i < t->used; ++i) {
- for (p = prunelist; p->name; ++p) {
- c = t->contents+i;
- if (strcmp(p->name, c->name) == 0) {
- verbose("pruned %s\n", c->name);
- *(c->name) = '\0'; /* ignore */
- }
- }
- }
- /* run known subdirectories first in historical order, "kernel" is now top of list */
- for (i = 0 ; i < t->used; ++i) {
- c = t->contents+i;
- for (j = 0; tbtype[j]; ++j) {
- if (*(c->name) &&
- strcmp(c->name, tbtype[j]) == 0 &&
- S_ISDIR(c->statbuf.st_mode)) {
- if ((ret = xftw_type2(directory, c->name, 1, funcptr)))
- goto cleanup;
- *(c->name) = '\0'; /* processed */
- }
- }
- }
- /* any other directories left, in alphabetical order */
- for (i = 0 ; i < t->used; ++i) {
- c = t->contents+i;
- if (*(c->name) &&
- S_ISDIR(c->statbuf.st_mode)) {
- if ((ret = xftw_type2(directory, c->name, 1, funcptr)))
- goto cleanup;
- *(c->name) = '\0'; /* processed */
- }
- }
- /* anything else is passed to the user function */
- for (i = 0 ; i < t->used; ++i) {
- c = t->contents+i;
- if (*(c->name)) {
- verbose("%s found in type 1 directory %s\n", c->name, directory);
- if ((ret = xftw_do_name(directory, c->name, &(c->statbuf), funcptr)))
- goto cleanup;
- *(c->name) = '\0'; /* processed */
- }
- }
- }
- else {
- /* type 2 */
- xftw_free_tree(0);
- if ((ret = xftw_type2(directory, NULL, 0, funcptr)))
- goto cleanup;
- }
-
- /* amazing, it all worked */
- ret = 0;
-cleanup:
- for (i = 0; i < XFTW_MAXDEPTH; ++i)
- xftw_free_tree(i);
- return(ret);
-}
diff --git a/mdk-stage1/insmod-modutils/util/xmalloc.c b/mdk-stage1/insmod-modutils/util/xmalloc.c
deleted file mode 100644
index 9113d47fe..000000000
--- a/mdk-stage1/insmod-modutils/util/xmalloc.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Misc utility functions.
- Copyright 1996, 1997 Linux International.
- Contributed by Richard Henderson <rth@tamu.edu>
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ident "$Id$"
-
-#include <stdlib.h>
-#include "util.h"
-
-
-/*======================================================================*/
-
-void *
-xmalloc(size_t size)
-{
- void *ptr = malloc(size);
- if (!ptr)
- {
- error("Out of memory");
- exit(1);
- }
- return ptr;
-}
diff --git a/mdk-stage1/insmod-modutils/util/xrealloc.c b/mdk-stage1/insmod-modutils/util/xrealloc.c
deleted file mode 100644
index d287486f7..000000000
--- a/mdk-stage1/insmod-modutils/util/xrealloc.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Misc utility functions.
- Copyright 1996, 1997 Linux International.
- Contributed by Richard Henderson <rth@tamu.edu>
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ident "$Id$"
-
-#include <stdlib.h>
-#include "util.h"
-
-
-/*======================================================================*/
-
-void *
-xrealloc(void *old, size_t size)
-{
- void *ptr = realloc(old, size);
- if (!ptr)
- {
- error("Out of memory");
- exit(1);
- }
- return ptr;
-}
diff --git a/mdk-stage1/insmod-modutils/util/xstrcat.c b/mdk-stage1/insmod-modutils/util/xstrcat.c
deleted file mode 100644
index abb075c83..000000000
--- a/mdk-stage1/insmod-modutils/util/xstrcat.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Misc utility functions.
- Copyright 2000 Keith Owens <kaos@ocs.com.au>
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ident "$Id"
-
-#include <stdlib.h>
-#include <string.h>
-#include "util.h"
-
-
-/*======================================================================*/
-
-char *
-xstrcat(char *dest, const char *src, size_t size)
-{
- int ldest = strlen(dest);
- int lsrc = strlen(src);
- if ((size - ldest - 1) < lsrc) {
- error("xstrcat: destination overflow");
- exit(1);
- }
- memcpy(dest+ldest, src, lsrc+1);
- return(dest);
-}
diff --git a/mdk-stage1/insmod-modutils/util/xstrdup.c b/mdk-stage1/insmod-modutils/util/xstrdup.c
deleted file mode 100644
index 11b289eb0..000000000
--- a/mdk-stage1/insmod-modutils/util/xstrdup.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Misc utility functions.
- Copyright 1996, 1997 Linux International.
- Contributed by Richard Henderson <rth@tamu.edu>
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ident "$Id$"
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include "util.h"
-
-
-/*======================================================================*/
-
-char *
-xstrdup(const char *s)
-{
- char *n = strdup(s);
- if (!n)
- {
- error("Out of memory");
- exit(1);
- }
- return n;
-}
diff --git a/mdk-stage1/insmod-modutils/util/xsystem.c b/mdk-stage1/insmod-modutils/util/xsystem.c
deleted file mode 100644
index edb995268..000000000
--- a/mdk-stage1/insmod-modutils/util/xsystem.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Misc utility functions.
- Copyright 2000 Keith Owens <kaos@ocs.com.au>
-
- This file is part of the Linux modutils.
-
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ident "$Id"
-
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <errno.h>
-#include <unistd.h>
-
-
-/*======================================================================*/
-
-/* Clone of the system() function From Steven's Advanced Programming in a Unix
- * Environment. Modified to use *argv[] and execvp to avoid shell expansion
- * problems, modutils runs as root so system() is unsafe.
- */
-
-int
-xsystem(const char *file, char *const argv[])
-{
- pid_t pid;
- int status;
- if ((pid = fork()) < 0)
- return(-1);
- if (pid == 0) {
- execvp(file, argv);
- _exit(127);
- }
- while (waitpid(pid, &status, 0) < 0) {
- if (errno != EINTR)
- return(-1);
- }
- return(status);
-}
diff --git a/mdk-stage1/insmod.h b/mdk-stage1/insmod.h
deleted file mode 100644
index d91f239cf..000000000
--- a/mdk-stage1/insmod.h
+++ /dev/null
@@ -1,20 +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.
- *
- */
-
-#ifndef _INSMOD_INTERFACE_H_
-#define _INSMOD_INTERFACE_H_
-
-int insmod_call(char * full_filename, char * params);
-
-#endif
diff --git a/mdk-stage1/linux-2.2/nfs.h b/mdk-stage1/linux-2.2/nfs.h
deleted file mode 100644
index 7936d5a71..000000000
--- a/mdk-stage1/linux-2.2/nfs.h
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
- * NFS protocol definitions
- */
-#ifndef _LINUX_NFS_H
-#define _LINUX_NFS_H
-
-#include <linux/sunrpc/msg_prot.h>
-
-#define NFS_PORT 2049
-#define NFS_MAXDATA 8192
-#define NFS_MAXPATHLEN 1024
-#define NFS_MAXNAMLEN 255
-#define NFS_MAXGROUPS 16
-#define NFS_FHSIZE 32
-#define NFS_COOKIESIZE 4
-#define NFS_FIFO_DEV (-1)
-#define NFSMODE_FMT 0170000
-#define NFSMODE_DIR 0040000
-#define NFSMODE_CHR 0020000
-#define NFSMODE_BLK 0060000
-#define NFSMODE_REG 0100000
-#define NFSMODE_LNK 0120000
-#define NFSMODE_SOCK 0140000
-#define NFSMODE_FIFO 0010000
-
-
-enum nfs_stat {
- NFS_OK = 0,
- NFSERR_PERM = 1,
- NFSERR_NOENT = 2,
- NFSERR_IO = 5,
- NFSERR_NXIO = 6,
- NFSERR_EAGAIN = 11,
- NFSERR_ACCES = 13,
- NFSERR_EXIST = 17,
- NFSERR_XDEV = 18,
- NFSERR_NODEV = 19,
- NFSERR_NOTDIR = 20,
- NFSERR_ISDIR = 21,
- NFSERR_INVAL = 22, /* that Sun forgot */
- NFSERR_FBIG = 27,
- NFSERR_NOSPC = 28,
- NFSERR_ROFS = 30,
- NFSERR_OPNOTSUPP = 45,
- NFSERR_NAMETOOLONG = 63,
- NFSERR_NOTEMPTY = 66,
- NFSERR_DQUOT = 69,
- NFSERR_STALE = 70,
- NFSERR_WFLUSH = 99
-};
-
-enum nfs_ftype {
- NFNON = 0,
- NFREG = 1,
- NFDIR = 2,
- NFBLK = 3,
- NFCHR = 4,
- NFLNK = 5,
- NFSOCK = 6,
- NFBAD = 7,
- NFFIFO = 8
-};
-
-struct nfs_fh {
- char data[NFS_FHSIZE];
-};
-
-#define NFS_PROGRAM 100003
-#define NFS_VERSION 2
-#define NFSPROC_NULL 0
-#define NFSPROC_GETATTR 1
-#define NFSPROC_SETATTR 2
-#define NFSPROC_ROOT 3
-#define NFSPROC_LOOKUP 4
-#define NFSPROC_READLINK 5
-#define NFSPROC_READ 6
-#define NFSPROC_WRITECACHE 7
-#define NFSPROC_WRITE 8
-#define NFSPROC_CREATE 9
-#define NFSPROC_REMOVE 10
-#define NFSPROC_RENAME 11
-#define NFSPROC_LINK 12
-#define NFSPROC_SYMLINK 13
-#define NFSPROC_MKDIR 14
-#define NFSPROC_RMDIR 15
-#define NFSPROC_READDIR 16
-#define NFSPROC_STATFS 17
-
-/* Mount support for NFSroot */
-#ifdef __KERNEL__
-#define NFS_MNT_PROGRAM 100005
-#define NFS_MNT_VERSION 1
-#define NFS_MNT_PORT 627
-#define NFS_MNTPROC_MNT 1
-#define NFS_MNTPROC_UMNT 3
-#endif
-
-#if defined(__KERNEL__) || defined(NFS_NEED_KERNEL_TYPES)
-
-extern struct rpc_program nfs_program;
-extern struct rpc_stat nfs_rpcstat;
-
-struct nfs_time {
- __u32 seconds;
- __u32 useconds;
-};
-
-struct nfs_fattr {
- enum nfs_ftype type;
- __u32 mode;
- __u32 nlink;
- __u32 uid;
- __u32 gid;
- __u32 size;
- __u32 blocksize;
- __u32 rdev;
- __u32 blocks;
- __u32 fsid;
- __u32 fileid;
- struct nfs_time atime;
- struct nfs_time mtime;
- struct nfs_time ctime;
-};
-
-struct nfs_sattr {
- __u32 mode;
- __u32 uid;
- __u32 gid;
- __u32 size;
- struct nfs_time atime;
- struct nfs_time mtime;
-};
-
-struct nfs_fsinfo {
- __u32 tsize;
- __u32 bsize;
- __u32 blocks;
- __u32 bfree;
- __u32 bavail;
-};
-
-struct nfs_writeargs {
- struct nfs_fh * fh;
- __u32 offset;
- __u32 count;
- const void * buffer;
-};
-
-#ifdef NFS_NEED_XDR_TYPES
-
-struct nfs_sattrargs {
- struct nfs_fh * fh;
- struct nfs_sattr * sattr;
-};
-
-struct nfs_diropargs {
- struct nfs_fh * fh;
- const char * name;
-};
-
-struct nfs_readargs {
- struct nfs_fh * fh;
- __u32 offset;
- __u32 count;
- void * buffer;
-};
-
-struct nfs_createargs {
- struct nfs_fh * fh;
- const char * name;
- struct nfs_sattr * sattr;
-};
-
-struct nfs_renameargs {
- struct nfs_fh * fromfh;
- const char * fromname;
- struct nfs_fh * tofh;
- const char * toname;
-};
-
-struct nfs_linkargs {
- struct nfs_fh * fromfh;
- struct nfs_fh * tofh;
- const char * toname;
-};
-
-struct nfs_symlinkargs {
- struct nfs_fh * fromfh;
- const char * fromname;
- const char * topath;
- struct nfs_sattr * sattr;
-};
-
-struct nfs_readdirargs {
- struct nfs_fh * fh;
- __u32 cookie;
- void * buffer;
- unsigned int bufsiz;
-};
-
-struct nfs_diropok {
- struct nfs_fh * fh;
- struct nfs_fattr * fattr;
-};
-
-struct nfs_readres {
- struct nfs_fattr * fattr;
- unsigned int count;
-};
-
-struct nfs_readlinkres {
- char ** string;
- unsigned int * lenp;
- unsigned int maxlen;
- void * buffer;
-};
-
-struct nfs_readdirres {
- void * buffer;
- unsigned int bufsiz;
-};
-
-#endif /* NFS_NEED_XDR_TYPES */
-#endif /* __KERNEL__ */
-
-#endif
diff --git a/mdk-stage1/linux-2.2/nfs_mount.h b/mdk-stage1/linux-2.2/nfs_mount.h
deleted file mode 100644
index 60493b150..000000000
--- a/mdk-stage1/linux-2.2/nfs_mount.h
+++ /dev/null
@@ -1,53 +0,0 @@
-#ifndef _LINUX_NFS_MOUNT_H
-#define _LINUX_NFS_MOUNT_H
-
-/*
- * linux/include/linux/nfs_mount.h
- *
- * Copyright (C) 1992 Rick Sladkey
- *
- * structure passed from user-space to kernel-space during an nfs mount
- */
-
-/*
- * WARNING! Do not delete or change the order of these fields. If
- * a new field is required then add it to the end. The version field
- * tracks which fields are present. This will ensure some measure of
- * mount-to-kernel version compatibility. Some of these aren't used yet
- * but here they are anyway.
- */
-#define NFS_MOUNT_VERSION 3
-
-struct nfs_mount_data {
- int version; /* 1 */
- int fd; /* 1 */
- struct nfs_fh 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 */
-};
-
-/* 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 */
-
-#endif
diff --git a/mdk-stage1/log.c b/mdk-stage1/log.c
deleted file mode 100644
index 319079fd7..000000000
--- a/mdk-stage1/log.c
+++ /dev/null
@@ -1,89 +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.
- *
- */
-
-/*
- * Portions from Erik Troan (ewt@redhat.com)
- *
- * Copyright 1996 Red Hat Software
- *
- */
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <string.h>
-#include <time.h>
-#include <errno.h>
-#include "stage1.h"
-
-#include "log.h"
-
-static FILE * logtty = NULL;
-static FILE * logfile = NULL;
-
-
-void vlog_message(const char * s, va_list args)
-{
- if (logfile) {
- fprintf(logfile, "* ");
- vfprintf(logfile, s, args);
- fprintf(logfile, "\n");
- fflush(logfile);
- }
- if (logtty) {
- fprintf(logtty, "* ");
- vfprintf(logtty, s, args);
- fprintf(logtty, "\n");
- fflush(logtty);
- }
-}
-
-
-void log_message(const char * s, ...)
-{
- va_list args;
- va_start(args, s);
- vlog_message(s, args);
- va_end(args);
-
- return;
-}
-
-void log_perror(char *msg)
-{
- log_message("%s: %s", msg, strerror(errno));
-}
-
-
-void open_log(void)
-{
- if (!IS_TESTING) {
- logtty = fopen("/dev/tty3", "w");
- logfile = fopen("/tmp/stage1.log", "w");
- }
- else
- logfile = fopen("debug.log", "w");
-}
-
-void close_log(void)
-{
- if (logfile) {
- log_message("stage1: disconnecting life support systems");
- fclose(logfile);
- if (logtty)
- fclose(logtty);
- }
-}
diff --git a/mdk-stage1/log.h b/mdk-stage1/log.h
deleted file mode 100644
index 90aa3f6e6..000000000
--- a/mdk-stage1/log.h
+++ /dev/null
@@ -1,34 +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.
- *
- */
-
-/*
- * Portions from Erik Troan (ewt@redhat.com)
- *
- * Copyright 1996 Red Hat Software
- *
- */
-
-
-#ifndef _LOG_H_
-#define _LOG_H_
-
-#include <stdarg.h>
-
-void log_message(const char * s, ...) __attribute__ ((format (printf, 1, 2)));
-void vlog_message(const char * s, va_list args);
-void log_perror(char *msg);
-void open_log(void);
-void close_log(void);
-
-#endif
diff --git a/mdk-stage1/lomount.c b/mdk-stage1/lomount.c
deleted file mode 100644
index 991a862c7..000000000
--- a/mdk-stage1/lomount.c
+++ /dev/null
@@ -1,171 +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.
- *
- */
-
-/* This code comes from util-linux-2.10n (mount/lomount.c)
- * (this is a simplified version of this code)
- */
-
-#include <sys/types.h>
-#include <sys/mount.h>
-#include <sys/ioctl.h>
-#include <sys/mount.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "stage1.h"
-#include "frontend.h"
-#include "log.h"
-#include "mount.h"
-#include "modules.h"
-
-#include "lomount.h"
-
-
-#define LO_NAME_SIZE 64
-#define LO_KEY_SIZE 32
-
-struct loop_info
-{
- int lo_number; /* ioctl r/o */
- dev_t lo_device; /* ioctl r/o */
- unsigned long lo_inode; /* ioctl r/o */
- dev_t lo_rdevice; /* ioctl r/o */
- int lo_offset;
- int lo_encrypt_type;
- int lo_encrypt_key_size; /* ioctl w/o */
- int lo_flags; /* ioctl r/o */
- char lo_name[LO_NAME_SIZE];
- unsigned char lo_encrypt_key[LO_KEY_SIZE]; /* ioctl w/o */
- unsigned long lo_init[2];
- char reserved[4];
-};
-
-#define LOOP_SET_FD 0x4C00
-#define LOOP_CLR_FD 0x4C01
-#define LOOP_SET_STATUS 0x4C02
-#define LOOP_GET_STATUS 0x4C03
-
-int
-set_loop (const char *device, const char *file)
-{
- struct loop_info loopinfo;
- int fd, ffd, mode;
-
- mode = O_RDONLY;
-
- if ((ffd = open (file, mode)) < 0)
- return 1;
-
- if ((fd = open (device, mode)) < 0) {
- close(ffd);
- return 1;
- }
-
- memset(&loopinfo, 0, sizeof (loopinfo));
- strncpy(loopinfo.lo_name, file, LO_NAME_SIZE);
- loopinfo.lo_name[LO_NAME_SIZE - 1] = 0;
- loopinfo.lo_offset = 0;
-
-#ifdef MCL_FUTURE
- /*
- * Oh-oh, sensitive data coming up. Better lock into memory to prevent
- * passwd etc being swapped out and left somewhere on disk.
- */
-
- if(mlockall(MCL_CURRENT|MCL_FUTURE)) {
- log_message("CRITICAL Couldn't lock into memory! %s (memlock)", strerror(errno));
- return 1;
- }
-#endif
-
- if (ioctl(fd, LOOP_SET_FD, ffd) < 0) {
- close(fd);
- close(ffd);
- return 1;
- }
-
- if (ioctl(fd, LOOP_SET_STATUS, &loopinfo) < 0) {
- (void) ioctl (fd, LOOP_CLR_FD, 0);
- close(fd);
- close(ffd);
- return 1;
- }
-
- close(fd);
- close(ffd);
- return 0;
-}
-
-
-char * loopdev = "/dev/loop3"; /* Ugly. But do I care? */
-
-void
-del_loop(void)
-{
- int fd;
-
- if ((fd = open (loopdev, O_RDONLY)) < 0)
- return;
-
- if (ioctl (fd, LOOP_CLR_FD, 0) < 0)
- return;
-
- close (fd);
-}
-
-
-static char * where_mounted = NULL;
-
-int
-lomount(char *loopfile, char *where)
-{
-
- long int flag;
-
- flag = MS_MGC_VAL;
- flag |= MS_RDONLY;
-
- my_insmod("loop", ANY_DRIVER_TYPE, NULL);
-
- if (set_loop(loopdev, loopfile)) {
- log_message("set_loop failed on %s (%s)", loopdev, strerror(errno));
- return 1;
- }
-
- if (my_mount(loopdev, where, "iso9660", 0)) {
- del_loop();
- return 1;
- }
-
- where_mounted = strdup(where);
- log_message("lomount succeeded for %s on %s", loopfile, where);
- return 0;
-}
-
-
-int
-loumount()
-{
- if (where_mounted) {
- umount(where_mounted);
- where_mounted = NULL;
- }
- del_loop();
- return 0;
-}
-
-
diff --git a/mdk-stage1/lomount.h b/mdk-stage1/lomount.h
deleted file mode 100644
index 3b8a30ac1..000000000
--- a/mdk-stage1/lomount.h
+++ /dev/null
@@ -1,21 +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.
- *
- */
-
-#ifndef LOMOUNT_H
-#define LOMOUNT_H
-
-int lomount(char *loopfile, char *where);
-int loumount(void);
-
-#endif
diff --git a/mdk-stage1/mar/.cvsignore b/mdk-stage1/mar/.cvsignore
deleted file mode 100644
index bfde37886..000000000
--- a/mdk-stage1/mar/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-mar
diff --git a/mdk-stage1/mar/Makefile b/mdk-stage1/mar/Makefile
deleted file mode 100644
index 801785947..000000000
--- a/mdk-stage1/mar/Makefile
+++ /dev/null
@@ -1,61 +0,0 @@
- #******************************************************************************
- #
- # mar - The Mandrake Archiver
- #
- # $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.
- #
- #*****************************************************************************
-
-top_dir = ..
-
-include $(top_dir)/Makefile.common
-
-
-TARGETS = libmar.a mar
-
-
-ifeq (DIETLIBC, $(L))
-TARGETS += libmar-DIET.a
-endif
-
-
-all: $(TARGETS)
-
-clean:
- rm -f *.o libmar.a libmar-DIET.a mar
-
-
-mar: mar-frontend.o mar-extract-only-standalone.o
- gcc -o mar mar-frontend.o mar-extract-only-standalone.o -lbz2
- $(STRIPCMD) $@
-
-libmar.a: mar-extract-only.o
- ar -cru $@ $^
- ranlib $@
-
-libmar-DIET.a: mar-extract-only-DIET.o
- ar -cru $@ $^
- ranlib $@
-
-mar-extract-only.o: mar-extract-only.c mar-extract-only.h mar.h
- gcc $(CFLAGS) $(GLIBC_INCLUDES) -c mar-extract-only.c
-
-mar-extract-only-DIET.o: mar-extract-only.c mar-extract-only.h mar.h
- gcc $(CFLAGS) $(DIETLIBC_INCLUDES) -o $@ -c mar-extract-only.c
-
-mar-frontend.o: mar-frontend.c mar.h mar-extract-only.h
- gcc $(CFLAGS) $(GLIBC_INCLUDES) -c mar-frontend.c
-
-mar-extract-only-standalone.o: mar-extract-only.c mar-extract-only.h mar.h
- gcc $(CFLAGS) $(GLIBC_INCLUDES) -o $@ -D_STANDALONE_ -c mar-extract-only.c
diff --git a/mdk-stage1/mar/mar-extract-only.c b/mdk-stage1/mar/mar-extract-only.c
deleted file mode 100644
index a5b6ccd2f..000000000
--- a/mdk-stage1/mar/mar-extract-only.c
+++ /dev/null
@@ -1,208 +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.
- *
- */
-
-/*
- * mar - The Mandrake Archiver
- *
- * An archiver that supports compression (through zlib).
- *
- */
-
-/*
- * This code should suffice for stage1 on-the-fly uncompression of kernel modules.
- * (and it DOES perform tests and return values, blaaaah..)
- */
-
-#include "mar-extract-only.h"
-#include "mar.h"
-
-#ifdef _STANDALONE_
-void
-zerr(BZFILE * f) /* decrease code size */
-{
- fprintf(stderr, BZ2_bzerror(f, &z_errnum));
-}
-
-inline void
-log_perror(char *msg)
-{
- perror(msg);
-}
-void
-log_message(char *msg)
-{
- fprintf(stderr, msg);
-}
-#else /* _STANDALONE_ */
-#include "../log.h"
-void
-zerr(BZFILE * f) /* decrease code size */
-{
- log_message(BZ2_bzerror(f, &z_errnum));
-}
-#endif /* _STANDALONE_ */
-
-
-static int
-mar_open_file(char *filename, struct mar_stream *s)
-{
- int end_filetable = 0;
- struct mar_element * previous_element = NULL;
-
- /* mar_zfile */
- s->mar_zfile = BZ2_bzopen(filename, "rb");
- if (!s->mar_zfile)
- {
- log_perror(filename);
- return -1;
- }
-
- while (end_filetable == 0)
- {
- char buf[512];
- int ptr = 0;
- /* read filename */
- do
- {
- if (BZ2_bzread(s->mar_zfile, &(buf[ptr]), sizeof(char)) != sizeof(char))
- {
- zerr(s->mar_zfile);
- return -1;
- }
- ptr++;
- } while ((buf[ptr-1] != 0) && (ptr < 512));
- /* ptr == 1 when we arrive on the "char 0" of the end of the filetable */
- if (ptr > 1)
- {
- struct mar_element * e = (struct mar_element *) malloc(sizeof(struct mar_element));
- e->filename = strdup(buf);
- /* read file_length */
- if (BZ2_bzread(s->mar_zfile, &(e->file_length), sizeof(int)) != sizeof(int))
- {
- zerr(s->mar_zfile);
- return -1;
- }
- /* read data_offset */
- if (BZ2_bzread(s->mar_zfile, &(e->data_offset), sizeof(int)) != sizeof(int))
- {
- zerr(s->mar_zfile);
- return -1;
- }
- /* write down chaining */
- if (previous_element)
- previous_element->next_element = e;
- else
- s->first_element = e;
- previous_element = e;
- }
- else
- end_filetable = 1;
-
- }
- /* chaining for last element */
- previous_element->next_element = NULL;
-
- return 0;
-}
-
-
-char **
-mar_list_contents(char * mar_filename)
-{
- struct mar_stream s;
- struct mar_element * elem;
- char * tmp_contents[500];
- char ** answ;
- int i = 0;
-
- if (mar_open_file(mar_filename, &s))
- return NULL;
-
- elem = s.first_element;
- while (elem)
- {
- tmp_contents[i++] = strdup(elem->filename);
- elem = elem->next_element;
- }
- tmp_contents[i++] = NULL;
- answ = (char **) malloc(sizeof(char *) * i);
- memcpy(answ, tmp_contents, sizeof(char *) * i);
- return answ;
-}
-
-
-int
-mar_extract_file(char *mar_filename, char *filename_to_extract, char *dest_dir)
-{
- struct mar_stream s;
- struct mar_element * elem;
-
- if (mar_open_file(mar_filename, &s))
- return -1;
-
- elem = s.first_element;
- while (elem)
- {
- if (strcmp(elem->filename, filename_to_extract) == 0)
- {
- char garb_buf[4096];
- char *buf;
- char *dest_file;
- int fd;
- size_t i;
- dest_file = (char *) alloca(strlen(dest_dir) + strlen(filename_to_extract) + 1);
- strcpy(dest_file, dest_dir);
- strcat(dest_file, filename_to_extract);
- fd = creat(dest_file, 00660);
- if (fd == -1)
- {
- log_perror(dest_file);
- return -1;
- }
- buf = (char *) alloca(elem->file_length);
- if (!buf)
- {
- log_perror(dest_file);
- return -1;
- }
- i = elem->data_offset;
- while (i > 0) {
- int to_read = i > sizeof(garb_buf) ? sizeof(garb_buf) : i;
- if (BZ2_bzread(s.mar_zfile, garb_buf, to_read) != to_read) {
- log_message("MAR: unexpected EOF in stream");
- return -1;
- }
- i -= to_read;
- }
- if (BZ2_bzread(s.mar_zfile, buf, elem->file_length) != elem->file_length)
- {
- zerr(s.mar_zfile);
- return -1;
- }
- if (write(fd, buf, elem->file_length) != elem->file_length)
- {
- log_perror(dest_file);
- return -1;
- }
- close(fd); /* do not check return value for code size */
- BZ2_bzclose(s.mar_zfile);
- return 0;
- }
- elem = elem->next_element;
- }
- BZ2_bzclose(s.mar_zfile);
- return 1; /* 1 for file_not_found_in_archive */
-}
-
-
diff --git a/mdk-stage1/mar/mar-extract-only.h b/mdk-stage1/mar/mar-extract-only.h
deleted file mode 100644
index 6fa34efe4..000000000
--- a/mdk-stage1/mar/mar-extract-only.h
+++ /dev/null
@@ -1,32 +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.
- *
- */
-
-/*
- * mar - The Mandrake Archiver
- *
- * An archiver that supports compression (through zlib).
- *
- */
-
-/*
- * Header for stage1 on-the-fly needs.
- */
-
-#ifndef MAR_EXTRACT_ONLY_H
-#define MAR_EXTRACT_ONLY_H
-
-int mar_extract_file(char *mar_filename, char *filename_to_extract, char *dest_dir);
-char ** mar_list_contents(char *mar_filename);
-
-#endif
diff --git a/mdk-stage1/mar/mar-frontend.c b/mdk-stage1/mar/mar-frontend.c
deleted file mode 100644
index f55ba6fe6..000000000
--- a/mdk-stage1/mar/mar-frontend.c
+++ /dev/null
@@ -1,199 +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.
- *
- */
-
-/*
- * mar - The Mandrake Archiver
- *
- * An archiver that supports compression (through zlib).
- *
- */
-
-/*
- * This code includes the extracting and creating features.
- *
- */
-
-#include "mar.h"
-#include "mar-extract-only.h"
-
-
-int
-file_size(char *filename)
-{
- struct stat buf;
- if (stat(filename, &buf) != 0)
- {
- perror(filename);
- return -1;
- }
- return buf.st_size;
-}
-
-
-/* Yes I don't use the datastructure I directly write the final fileformat in memory then write down it.
- * Yes it's bad.
- */
-/* ``files'' is a NULL-terminated array of char* */
-
-char * fnf_tag = "FILE_NOT_FOUND&";
-
-int
-mar_create_file(char *dest_file, char **files)
-{
- int filenum = 0;
- int current_offset_filetable = 0;
- int current_delta_rawdata = 0;
- int filetable_size;
- char * temp_marfile_buffer;
- int total_length = 0;
-
- filetable_size = sizeof(char); /* ``char 0'' */
- while (files[filenum])
- {
- int fsiz = file_size(files[filenum]);
- if (fsiz == -1)
- files[filenum] = fnf_tag;
- else {
- filetable_size += 2*sizeof(int) /* file_length, data_offset */ + strlen(files[filenum]) + 1;
- total_length += fsiz;
- }
- filenum++;
- }
-
- total_length += filetable_size;
-
- temp_marfile_buffer = (char *) malloc(total_length); /* create the whole file in-memory (not with alloca! it can be bigger than typical limit for stack of programs (ulimit -s) */
- DEBUG_MAR(printf("D: mar::create_marfile total-length %d\n", total_length););
-
- filenum = 0;
- while (files[filenum])
- {
- if (strcmp(files[filenum], fnf_tag)) {
- FILE * f = fopen(files[filenum], "r");
- int fsize;
- if (!f)
- {
- perror(files[filenum]);
- return -1;
- }
-
- /* filename */
- strcpy(&(temp_marfile_buffer[current_offset_filetable]), files[filenum]);
- current_offset_filetable += strlen(files[filenum]) + 1;
-
- /* file_length */
- fsize = file_size(files[filenum]);
- if (fsize == -1) return -1;
- memcpy(&temp_marfile_buffer[current_offset_filetable], &fsize, sizeof(int));
- current_offset_filetable += sizeof(int);
-
- /* data_offset */
- memcpy(&temp_marfile_buffer[current_offset_filetable], &current_delta_rawdata, sizeof(int));
- current_offset_filetable += sizeof(int);
-
- /* data_raw_data */
- if (fread(&temp_marfile_buffer[current_delta_rawdata + filetable_size], 1, fsize, f) != (size_t)fsize)
- {
- perror(files[filenum]);
- return -1;
- }
- fclose(f);
-
- current_delta_rawdata += fsize;
- }
-
- filenum++;
- }
-
- /* write down ``char 0'' to terminate file table */
- memset(&temp_marfile_buffer[current_offset_filetable], 0, sizeof(char));
-
- /* ok, buffer is ready, let's write it on-disk */
- {
- BZFILE * f = BZ2_bzopen(dest_file, "w9");
- if (!f)
- {
- perror(dest_file);
- return -1;
- }
- if (BZ2_bzwrite(f, temp_marfile_buffer, total_length) != total_length)
- {
- fprintf(stderr, BZ2_bzerror(f, &z_errnum));
- return -1;
- }
- BZ2_bzclose(f);
- }
-
- printf("mar: created archive %s (%d files, length %d)\n", dest_file, filenum, total_length);
- return 0;
-}
-
-
-void
-print_usage(char *progname)
-{
- printf("Usage: %s [-lxc] [files..]\n", progname);
- exit(0);
-}
-
-int
-main(int argc, char **argv)
-{
- if (argc <= 2)
- print_usage(argv[0]);
-
- if (argc >= 3)
- {
- if (strcmp(argv[1], "-l") == 0)
- {
- char ** contents = mar_list_contents(argv[2]);
- if (contents)
- while (contents && *contents) {
- printf("\t%s\n", *contents);
- contents++;
- }
- exit(0);
- }
- if ((strcmp(argv[1], "-x") == 0) && argc == 4)
- {
- int res = mar_extract_file(argv[2], argv[3], "./");
- if (res == 1)
- fprintf(stderr, "W: file-not-found-in-archive %s\n", argv[3]);
- if (res == -1)
- exit(-1);
- exit(0);
- }
- if ((strcmp(argv[1], "-c") == 0) && argc >= 4)
- {
- char **files = (char **) alloca(((argc-3)+1) * sizeof(char *));
- int i = 3;
- while (i < argc)
- {
- files[i-3] = argv[i];
- i++;
- }
- files[argc-3] = NULL;
- {
- int results;
- results = mar_create_file(argv[2], files);
- if (results != 0)
- fprintf(stderr, "E: create-marfile-failed\n");
- exit(results);
- }
-
- }
- }
-
- return 0;
-}
diff --git a/mdk-stage1/mar/mar.h b/mdk-stage1/mar/mar.h
deleted file mode 100644
index 672d7ded8..000000000
--- a/mdk-stage1/mar/mar.h
+++ /dev/null
@@ -1,70 +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.
- *
- */
-
-/*
- * mar - The Mandrake Archiver
- *
- * An archiver that supports compression (through bzlib).
- *
- * Designed to be small so these bad designs are inside:
- * . archive and compression are mixed together
- * . create the mar file in-memory
- * . does not free memory
- *
- */
-
-#ifndef MAR_H
-#define MAR_H
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <unistd.h>
-
-#include <bzlib.h>
-
-/*
- * Format of a mar file:
- *
- * ASCIIZ filename \ |
- * int file_length | repeated | bzipped
- * int pointer_in_archive / |
- * char 0 |
- * raw_files_data /
- *
- */
-
-struct mar_element
-{
- char * filename; /* filename (ASCIIZ) of the element */
- int file_length; /* length (in bytes) of the raw data of the element */
- int data_offset; /* seek start of the raw data in the underlying mar stream */
- struct mar_element * next_element; /* pointer to the next element in the mar stream; NULL if last */
-};
-
-struct mar_stream
-{
- struct mar_element * first_element; /* pointer to the first element inside the mar stream */
- BZFILE * mar_zfile; /* associated zfile (opened) */
-};
-
-int z_errnum;
-
-#define DEBUG_MAR(x)
-
-#endif
diff --git a/mdk-stage1/minilibc.c b/mdk-stage1/minilibc.c
deleted file mode 100644
index 73d7deae5..000000000
--- a/mdk-stage1/minilibc.c
+++ /dev/null
@@ -1,251 +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.
- *
- */
-
-/*
- * Portions from Erik Troan (ewt@redhat.com)
- *
- * Copyright 1996 Red Hat Software
- *
- */
-
-
-#define MINILIBC_INTERNAL
-
-#include "minilibc.h"
-
-int atexit (void (*__func) (void) __attribute__ ((unused)))
-{
- return 0;
-}
-
-void exit()
-{
- _do_exit(0);
- for (;;); /* Shut up gcc */
-}
-
-
-char ** _environ = NULL;
-int errno = 0;
-
-void _init (int __status __attribute__ ((unused)))
-{
-}
-
-void __libc_init_first (int __status __attribute__ ((unused)))
-{
-}
-
-int __libc_start_main (int (*main) (int, char **, char **), int argc,
- char **argv, void (*init) (void) __attribute__ ((unused)), void (*fini) (void) __attribute__ ((unused)),
- void (*rtld_fini) (void) __attribute__ ((unused)), void *stack_end __attribute__ ((unused)))
-{
- exit ((*main) (argc, argv, NULL));
- /* never get here */
- return 0;
-}
-
-void _fini (int __status __attribute__ ((unused)))
-{
-}
-
-inline int socket(int a, int b, int c)
-{
- unsigned long args[] = { a, b, c };
-
- return socketcall(SYS_SOCKET, args);
-}
-
-inline int bind(int a, void * b, int c)
-{
- unsigned long args[] = { a, (long) b, c };
-
- return socketcall(SYS_BIND, args);
-}
-
-inline int listen(int a, int b)
-{
- unsigned long args[] = { a, b, 0 };
-
- return socketcall(SYS_LISTEN, args);
-}
-
-inline int accept(int a, void * addr, void * addr2)
-{
- unsigned long args[] = { a, (long) addr, (long) addr2 };
-
- return socketcall(SYS_ACCEPT, args);
-}
-
-
-void sleep(int secs)
-{
- struct timeval tv;
-
- tv.tv_sec = secs;
- tv.tv_usec = 0;
-
- select(0, NULL, NULL, NULL, &tv);
-}
-
-
-int strlen(const char * string)
-{
- int i = 0;
-
- while (*string++) i++;
-
- return i;
-}
-
-char * strncpy(char * dst, const char * src, int len)
-{
- char * chptr = dst;
- int i = 0;
-
- while (*src && i < len) *dst++ = *src++, i++;
- if (i < len) *dst = '\0';
-
- return chptr;
-}
-
-char * strcpy(char * dst, const char * src)
-{
- char * chptr = dst;
-
- while (*src) *dst++ = *src++;
- *dst = '\0';
-
- return chptr;
-}
-
-void * memcpy(void * dst, const void * src, size_t count)
-{
- char * a = dst;
- const char * b = src;
-
- while (count--)
- *a++ = *b++;
-
- return dst;
-}
-
-
-int strcmp(const char * a, const char * b)
-{
- int i, j;
-
- i = strlen(a); j = strlen(b);
- if (i < j)
- return -1;
- else if (j < i)
- return 1;
-
- while (*a && (*a == *b)) a++, b++;
-
- if (!*a) return 0;
-
- if (*a < *b)
- return -1;
- else
- return 1;
-}
-
-int strncmp(const char * a, const char * b, int len)
-{
- char buf1[1000], buf2[1000];
-
- strncpy(buf1, a, len);
- strncpy(buf2, b, len);
- buf1[len] = '\0';
- buf2[len] = '\0';
-
- return strcmp(buf1, buf2);
-}
-
-char * strchr(char * str, int ch)
-{
- char * chptr;
-
- chptr = str;
- while (*chptr)
- {
- if (*chptr == ch) return chptr;
- chptr++;
- }
-
- return NULL;
-}
-
-
-char * strstr(char *haystack, char *needle)
-{
- char * tmp = haystack;
- while ((tmp = strchr(tmp, needle[0])) != NULL) {
- int i = 1;
- while (i < strlen(tmp) && i < strlen(needle) && tmp[i] == needle[i])
- i++;
- if (needle[i] == '\0')
- return tmp;
- tmp++;
- }
- return NULL;
-}
-
-
-/* Minimum printf which handles only characters, %d's and %s's */
-void printf(char * fmt, ...)
-{
- char buf[2048];
- char * start = buf;
- char * chptr = buf;
- va_list args;
- char * strarg;
- int numarg;
-
- strncpy(buf, fmt, sizeof(buf));
- va_start(args, fmt);
-
- while (start)
- {
- while (*chptr != '%' && *chptr) chptr++;
-
- if (*chptr == '%')
- {
- *chptr++ = '\0';
- print_str_init(1, start);
-
- switch (*chptr++)
- {
- case 's':
- strarg = va_arg(args, char *);
- print_str_init(1, strarg);
- break;
-
- case 'd':
- numarg = va_arg(args, int);
- print_int_init(1, numarg);
- break;
- }
-
- start = chptr;
- }
- else
- {
- print_str_init(1, start);
- start = NULL;
- }
- }
-}
-
diff --git a/mdk-stage1/minilibc.h b/mdk-stage1/minilibc.h
deleted file mode 100644
index e0775e3a0..000000000
--- a/mdk-stage1/minilibc.h
+++ /dev/null
@@ -1,144 +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.
- *
- */
-
-/*
- * Portions from Erik Troan (ewt@redhat.com)
- *
- * Copyright 1996 Red Hat Software
- *
- */
-
-
-#include <stdarg.h>
-
-#define _LOOSE_KERNEL_NAMES 1
-
-#define NULL ((void *) 0)
-
-#define WIFSTOPPED(status) (((status) & 0xff) == 0x7f)
-#define WIFSIGNALED(status) (!WIFSTOPPED(status) && !WIFEXITED(status))
-#define WEXITSTATUS(status) (((status) & 0xff00) >> 8)
-#define WTERMSIG(status) ((status) & 0x7f)
-#define WSTOPSIG(status) WEXITSTATUS(status)
-#define WIFEXITED(status) (WTERMSIG(status) == 0)
-
-#define MS_MGC_VAL 0xc0ed0000
-
-#define isspace(a) (a == ' ' || a == '\t')
-
-extern char ** _environ;
-
-extern int errno;
-
-/* Aieee, gcc 2.95+ creates a stub for posix_types.h on i386 which brings
- glibc headers in and thus makes __FD_SET etc. not defined with 2.3+ kernels. */
-#define _FEATURES_H 1
-#include <linux/socket.h>
-#include <linux/types.h>
-#include <linux/time.h>
-#include <linux/if.h>
-#include <linux/un.h>
-#include <linux/loop.h>
-#include <linux/net.h>
-#include <asm/posix_types.h>
-#include <asm/termios.h>
-#include <asm/ioctls.h>
-#include <asm/unistd.h>
-#include <asm/fcntl.h>
-#include <asm/signal.h>
-
-
-#ifndef MINILIBC_INTERNAL
-static inline _syscall5(int,mount,const char *,spec,const char *,dir,const char *,type,unsigned long,rwflag,const void *,data);
-static inline _syscall5(int,_newselect,int,n,fd_set *,rd,fd_set *,wr,fd_set *,ex,struct timeval *,timeval);
-static inline _syscall4(int,wait4,pid_t,pid,int *,status,int,opts,void *,rusage)
-static inline _syscall3(int,write,int,fd,const char *,buf,unsigned long,count)
-static inline _syscall3(int,reboot,int,magic,int,magic_too,int,flag)
-static inline _syscall3(int,execve,const char *,fn,void *,argv,void *,envp)
-static inline _syscall3(int,read,int,fd,const char *,buf,unsigned long,count)
-static inline _syscall3(int,open,const char *,fn,int,flags,mode_t,mode)
-static inline _syscall3(int,ioctl,int,fd,int,request,void *,argp)
-static inline _syscall2(int,dup2,int,one,int,two)
-static inline _syscall2(int,kill,pid_t,pid,int,sig)
-static inline _syscall2(int,symlink,const char *,a,const char *,b)
-static inline _syscall2(int,chmod,const char * ,path,mode_t,mode)
-static inline _syscall2(int,sethostname,const char *,name,int,len)
-static inline _syscall2(int,setdomainname,const char *,name,int,len)
-static inline _syscall2(int,setpgid,int,name,int,len)
-static inline _syscall2(int,signal,int,num,void *,len)
-static inline _syscall1(int,umount,const char *,dir)
-static inline _syscall1(int,unlink,const char *,fn)
-static inline _syscall1(int,close,int,fd)
-static inline _syscall1(int,swapoff,const char *,fn)
-static inline _syscall0(int,getpid)
-static inline _syscall0(int,sync)
-#ifdef __sparc__
-/* Nonstandard fork calling convention :( */
-static inline int fork(void) {
- int __res;
- __asm__ __volatile__ (
- "mov %0, %%g1\n\t"
- "t 0x10\n\t"
- "bcc 1f\n\t"
- "dec %%o1\n\t"
- "sethi %%hi(%2), %%g1\n\t"
- "st %%o0, [%%g1 + %%lo(%2)]\n\t"
- "b 2f\n\t"
- "mov -1, %0\n\t"
- "1:\n\t"
- "and %%o0, %%o1, %0\n\t"
- "2:\n\t"
- : "=r" (__res)
- : "0" (__NR_fork), "i" (&errno)
- : "g1", "o0", "cc");
- return __res;
-}
-#else
-static inline _syscall0(int,fork)
-#endif
-static inline _syscall0(pid_t,setsid)
-static inline _syscall3(int,syslog,int, type, char *, buf, int, len);
-#else
-static inline _syscall5(int,_newselect,int,n,fd_set *,rd,fd_set *,wr,fd_set *,ex,struct timeval *,timeval);
-static inline _syscall3(int,write,int,fd,const char *,buf,unsigned long,count)
-static inline _syscall2(int,socketcall,int,code,unsigned long *, args)
-#define __NR__do_exit __NR_exit
-extern inline _syscall1(int,_do_exit,int,exitcode)
-#endif
-
-#define select _newselect
-
-extern int errno;
-
-inline int socket(int a, int b, int c);
-inline int bind(int a, void * b, int c);
-inline int listen(int a, int b);
-inline int accept(int a, void * addr, void * addr2);
-
-void sleep(int secs);
-
-int strlen(const char * string);
-char * strcpy(char * dst, const char * src);
-void * memcpy(void * dst, const void * src, size_t count);
-int strcmp(const char * a, const char * b);
-int strncmp(const char * a, const char * b, int len);
-char * strchr(char * str, int ch);
-char * strstr(char *haystack, char *needle);
-char * strncpy(char * dst, const char * src, int len);
-
-void print_str_init(int fd, char * string);
-void print_int_init(int fd, int i);
-/* Minimum printf which handles only characters, %d's and %s's */
-void printf(char * fmt, ...) __attribute__ ((format (printf, 1, 2)));
-
diff --git a/mdk-stage1/mkinitrd_helper/Makefile b/mdk-stage1/mkinitrd_helper/Makefile
deleted file mode 100644
index 1fa6a345a..000000000
--- a/mdk-stage1/mkinitrd_helper/Makefile
+++ /dev/null
@@ -1,46 +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
-
-
-VERSION = 1.1.1
-
-DEFS = -DVERSION=\"$(VERSION)\"
-
-
-MKINITRD_HELPER_SRC = mkinitrd_helper.c
-MKINITRD_HELPER_LIBS = ../insmod-busybox/libinsmod-DIET.a
-
-MKINITRD_HELPER_OBJS = $(subst .c,.o,$(MKINITRD_HELPER_SRC))
-
-BIN = mkinitrd_helper
-
-all: $(BIN)
-
-clean:
- rm -f *.o $(BIN)
-
-FLAGS = -Wall -Werror -Os -fomit-frame-pointer -c
-
-
-$(MKINITRD_HELPER_OBJS): %.o: %.c
- $(CC) $(DEFS) $(DIETLIBC_INCLUDES) -I.. -c $< -o $@
-
-mkinitrd_helper: $(MKINITRD_HELPER_OBJS) $(MKINITRD_HELPER_LIBS) $(DIETLIBC_LIBC)
- $(CC) $(DIETLIBC_LDFLAGS_STAGE1) -o $@ $^
- $(STRIPCMD) $@
diff --git a/mdk-stage1/mkinitrd_helper/mkinitrd_helper.c b/mdk-stage1/mkinitrd_helper/mkinitrd_helper.c
deleted file mode 100644
index 67be7c340..000000000
--- a/mdk-stage1/mkinitrd_helper/mkinitrd_helper.c
+++ /dev/null
@@ -1,308 +0,0 @@
-/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
- *
- * Copyright 2001 MandrakeSoft
- *
- * This software is covered by the GPL license.
- *
- * 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.
- *
- *
- * This little program replaces usual sash and insmod.static based script
- * from mkinitrd (that insmod modules, plus possibly mount a partition and
- * losetup a loopback-based / on the partition).
- *
- *
- * On my machine:
- * gzipped sash + insmod.static 502491 bytes
- * gzipped <this-program> 14243 bytes
- *
- * There will be room for linux-2.4 and many modules, now. Cool.
- *
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <sys/mount.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <sys/ioctl.h>
-#include <signal.h>
-
-#include "insmod.h"
-
-int quiet = 0;
-
-void vlog_message(const char * s, va_list args)
-{
- vprintf(s, args);
- printf("\n");
-}
-
-void log_perror(char *msg)
-{
- perror(msg);
-}
-
-
-static void fatal_error(char *msg)
-{
- printf("[] E: %s\n[] giving hand to kernel.\n", msg);
- exit(-1);
-}
-
-static void warning(char *msg)
-{
- printf("[] W: %s\n", msg);
-}
-
-static void parse_parms(const char * parm, char ** parm1, char ** parm2, char ** parm3)
-{
- char * ptr;
-
- ptr = strchr(parm, '\n');
- if (!ptr)
- fatal_error("bad config file: no newline after parms");
-
- *parm1 = malloc(ptr-parm+1); /* yup, never freed :-) */
- memcpy(*parm1, parm, ptr-parm);
- (*parm1)[ptr-parm] = '\0';
-
- if (!parm2)
- return;
-
- *parm2 = strchr(*parm1, ' ');
- if (!*parm2)
- return;
- **parm2 = '\0';
- (*parm2)++;
-
- if (!parm3)
- return;
-
- *parm3 = strchr(*parm2, ' ');
- if (!*parm3)
- return;
- **parm3 = '\0';
- (*parm3)++;
-}
-
-
-static void insmod_(const char * parm)
-{
- char * mod_name, * options;
-
- parse_parms(parm, &mod_name, &options, NULL);
-
-#ifdef DEBUG
- printf("insmod %s options %s\n", mod_name, options);
-#endif
- if (!quiet)
- printf("[] Loading module %s\n", mod_name);
-
- if (insmod_call(mod_name, options))
- perror("insmod failed");
-}
-
-
-static void mount_(const char * parm)
-{
- char * dev, * location, * fs;
- unsigned long flags;
- char * opts = NULL;
-
- parse_parms(parm, &dev, &location, &fs);
-
-#ifdef DEBUG
- printf("mounting %s on %s as type %s\n", dev, location, fs);
-#endif
- if (!quiet)
- printf("[] Mounting device containing loopback root filesystem\n");
-
- flags = MS_MGC_VAL;
-
- if (!strcmp(fs, "vfat"))
- opts = "check=relaxed";
-
- if (mount(dev, location, fs, flags, opts))
- perror("mount failed");
-}
-
-
-#define LO_NAME_SIZE 64
-#define LO_KEY_SIZE 32
-
-struct loop_info
-{
- int lo_number; /* ioctl r/o */
- dev_t lo_device; /* ioctl r/o */
- unsigned long lo_inode; /* ioctl r/o */
- dev_t lo_rdevice; /* ioctl r/o */
- int lo_offset;
- int lo_encrypt_type;
- int lo_encrypt_key_size; /* ioctl w/o */
- int lo_flags; /* ioctl r/o */
- char lo_name[LO_NAME_SIZE];
- unsigned char lo_encrypt_key[LO_KEY_SIZE]; /* ioctl w/o */
- unsigned long lo_init[2];
- char reserved[4];
-};
-
-#define LOOP_SET_FD 0x4C00
-#define LOOP_CLR_FD 0x4C01
-#define LOOP_SET_STATUS 0x4C02
-
-static void set_loop_(const char * parm)
-{
- struct loop_info loopinfo;
- int fd, ffd;
- char * device, * file;
-
- parse_parms(parm, &device, &file, NULL);
-
-#ifdef DEBUG
- printf("set_looping %s with %s\n", device, file);
-#endif
- if (!quiet)
- printf("[] Setting up loopback file %s\n", file);
-
- if ((ffd = open(file, O_RDWR)) < 0) {
- perror("set_loop, opening file in rw");
- exit(-1);
- }
-
- if ((fd = open(device, O_RDWR)) < 0) {
- perror("set_loop, opening loop device in rw");
- close(ffd);
- exit(-1);
- }
-
- memset(&loopinfo, 0, sizeof (loopinfo));
- strncpy(loopinfo.lo_name, file, LO_NAME_SIZE);
- loopinfo.lo_name[LO_NAME_SIZE - 1] = 0;
- loopinfo.lo_offset = 0;
-
- if (ioctl(fd, LOOP_SET_FD, ffd) < 0) {
- close(fd);
- close(ffd);
- perror("LOOP_SET_FD");
- exit(-1);
- }
-
- if (ioctl(fd, LOOP_SET_STATUS, &loopinfo) < 0) {
- (void) ioctl (fd, LOOP_CLR_FD, 0);
- close(fd);
- close(ffd);
- perror("LOOP_SET_STATUS");
- exit(-1);
- }
-
- close(fd);
- close(ffd);
-}
-
-
-#define MD_MAJOR 9
-#define RAID_AUTORUN _IO (MD_MAJOR, 0x14)
-#include <linux/raid/md_u.h>
-
-static void raidautorun_(const char * parm)
-{
- char * device;
- int fd;
-
- parse_parms(parm, &device, NULL, NULL);
-
- if (!quiet)
- printf("[] Calling raid autorun for %s\n", device);
-
- fd = open(device, O_RDWR, 0);
- if (fd < 0) {
- printf("raidautorun: failed to open %s: %d\n", device, errno);
- return;
- }
-
- if (ioctl(fd, RAID_AUTORUN, 0)) {
- printf("raidautorun: RAID_AUTORUN failed: %d\n", errno);
- }
-
- close(fd);
-}
-
-static int handle_command(char ** ptr, char * cmd_name, void (*cmd_func)(const char * parm))
-{
- if (!strncmp(*ptr, cmd_name, strlen(cmd_name))) {
- *ptr = strchr(*ptr, '\n');
- if (!*ptr)
- fatal_error("Bad config file: no newline after command");
- (*ptr)++;
- cmd_func(*ptr);
- *ptr = strchr(*ptr, '\n');
- if (!*ptr)
- exit(0);
- (*ptr)++;
- return 1;
- }
- return 0;
-}
-
-
-int main(int argc, char **argv)
-{
- int fd_conf, i;
- char buf[5000];
- char * ptr;
-
- if (strstr(argv[0], "modprobe"))
- exit(0);
-
- if (mount("/proc", "/loopfs", "proc", 0, NULL))
- printf("[] couldn't mount proc filesystem\n");
- else {
- int fd_cmdline = open("/loopfs/cmdline", O_RDONLY);
- if (fd_cmdline > 0) {
- i = read(fd_cmdline, buf, sizeof(buf));
- if (i == -1)
- warning("could not read cmdline");
- else {
- buf[i] = '\0';
- if (strstr(buf, "quiet"))
- quiet = 1;
- }
- close(fd_cmdline);
- }
- umount("/loopfs");
- }
-
- if (!quiet)
- printf("[] initrd_helper v" VERSION "\n");
-
- if ((fd_conf = open("/mkinitrd_helper.conf", O_RDONLY)) < 0)
- fatal_error("could not open mkinitrd_helper config file");
-
- i = read(fd_conf, buf, sizeof(buf));
- if (i == -1)
- fatal_error("could not read mkinitrd_helper config file");
- buf[i] = '\0';
- close(fd_conf);
-
- ptr = buf;
-
- while (*ptr)
- if (!(handle_command(&ptr, "insmod", insmod_) +
- handle_command(&ptr, "mount", mount_) +
- handle_command(&ptr, "raidautorun", raidautorun_) +
- handle_command(&ptr, "set_loop", set_loop_)))
- warning("unkown command (trying to continue)");
-
- return 0;
-}
diff --git a/mdk-stage1/modules.c b/mdk-stage1/modules.c
deleted file mode 100644
index 1fe1cd42a..000000000
--- a/mdk-stage1/modules.c
+++ /dev/null
@@ -1,437 +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.
- *
- */
-
-/*
- * (1) calculate dependencies
- * (2) unarchive relevant modules
- * (3) insmod them
- */
-
-#include <stdlib.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/mount.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <string.h>
-#include <stdio.h>
-#include "insmod.h"
-#include "stage1.h"
-#include "log.h"
-#include "mar/mar-extract-only.h"
-#include "frontend.h"
-#include "mount.h"
-#include "modules_descr.h"
-
-#include "modules.h"
-
-static struct module_deps_elem * modules_deps = NULL;
-
-static char * archive_name = "/modules/modules.mar";
-int disable_modules = 0;
-
-
-/* unarchive and insmod given module
- * WARNING: module must not contain the trailing ".o"
- */
-static enum insmod_return insmod_archived_file(const char * mod_name, char * options)
-{
- char module_name[50];
- char final_name[50] = "/tmp/";
- int i, rc;
-
- strncpy(module_name, mod_name, sizeof(module_name));
- strcat(module_name, ".o");
- i = mar_extract_file(archive_name, module_name, "/tmp/");
- if (i == 1) {
- log_message("file-not-found-in-archive %s (maybe you can try another boot floppy such as 'other.img' for seldom used SCSI modules)", module_name);
- return INSMOD_FAILED_FILE_NOT_FOUND;
- }
- if (i != 0)
- return INSMOD_FAILED;
-
- strcat(final_name, mod_name);
- strcat(final_name, ".o");
-
- rc = insmod_call(final_name, options);
- unlink(final_name); /* sucking no space left on device */
- if (rc) {
- log_message("\tfailed");
- return INSMOD_FAILED;
- }
- return INSMOD_OK;
-}
-
-
-
-static int load_modules_dependencies(void)
-{
- char * deps_file = "/modules/modules.dep";
- char * buf, * ptr, * start, * end;
- struct stat s;
- int fd, line, i;
-
- log_message("loading modules dependencies");
-
- if (IS_TESTING)
- return 0;
-
- fd = open(deps_file, O_RDONLY);
- if (fd == -1) {
- log_perror(deps_file);
- return -1;
- }
-
- fstat(fd, &s);
- buf = alloca(s.st_size + 1);
- if (read(fd, buf, s.st_size) != (ssize_t)s.st_size) {
- log_perror(deps_file);
- return -1;
- }
- buf[s.st_size] = '\0';
- close(fd);
-
- ptr = buf;
- line = 0;
- while (ptr) {
- line++;
- ptr = strchr(ptr + 1, '\n');
- }
-
- 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++;
- if (!*ptr) {
- start = end + 1;
- continue;
- }
-
- /* sort of a good line */
- modules_deps[line].name = strdup(start);
-
- 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;
-
- modules_deps[line].deps = memdup(tmp_deps, sizeof(char *) * i);
-
- line++;
- start = end + 1;
- }
- modules_deps[line].name = NULL;
-
- return 0;
-}
-
-
-void init_modules_insmoding(void)
-{
- if (load_modules_dependencies()) {
- log_message("warning, error initing modules stuff, modules loading disabled");
- disable_modules = 1;
- }
-}
-
-
-static void add_modules_conf(char * str)
-{
- static char data[5000] = "";
- char * target = "/etc/modules.conf";
- int fd;
-
- if (strlen(data) + strlen(str) >= sizeof(data))
- return;
-
- strcat(data, str);
- strcat(data, "\n");
-
- fd = open(target, O_CREAT|O_WRONLY|O_TRUNC, 00660);
-
- if (fd == -1) {
- log_perror(str);
- return;
- }
-
- if (write(fd, data, strlen(data) + 1) != (ssize_t) (strlen(data) + 1))
- log_perror(str);
-
- close(fd);
-}
-
-
-static int module_already_present(const char * name)
-{
- FILE * f;
- int answ = 0;
- f = fopen("/proc/modules", "rb");
- while (1) {
- char buf[500];
- if (!fgets(buf, sizeof(buf), f)) break;
- if (!strncmp(name, buf, strlen(name)) && buf[strlen(name)] == ' ')
- answ = 1;
- }
- fclose(f);
- return answ;
-}
-
-
-static enum insmod_return insmod_with_deps(const char * mod_name, char * options)
-{
- struct module_deps_elem * dep;
-
- dep = modules_deps;
- while (dep && dep->name && strcmp(dep->name, mod_name)) dep++;
-
- if (dep && dep->name && 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);
- one_dep++;
- }
- }
-
- if (module_already_present(mod_name))
- return INSMOD_OK;
-
- log_message("needs %s", mod_name);
- return insmod_archived_file(mod_name, options);
-}
-
-
-#ifndef DISABLE_NETWORK
-enum insmod_return my_insmod(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)
-#endif
-{
- int i;
-#ifndef DISABLE_NETWORK
- char ** net_devices = NULL; /* fucking compiler */
-#endif
-
- log_message("have to insmod %s", mod_name);
-
- if (disable_modules) {
- log_message("\tdisabled");
- return INSMOD_OK;
- }
-
-#ifndef DISABLE_NETWORK
- if (type == NETWORK_DEVICES)
- net_devices = get_net_devices();
-#endif
-
- if (IS_TESTING)
- return INSMOD_OK;
-
- i = insmod_with_deps(mod_name, options);
- if (i == 0) {
- log_message("\tsucceeded %s", mod_name);
-#ifndef DISABLE_NETWORK
- if (type == NETWORK_DEVICES) {
- char ** new_net_devices = get_net_devices();
- while (new_net_devices && *new_net_devices) {
- char alias[500];
- char ** ptr = net_devices;
- while (ptr && *ptr) {
- if (!strcmp(*new_net_devices, *ptr))
- goto already_present;
- ptr++;
- }
- 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++;
- }
- }
-#endif
- } else
- log_message("warning, insmod failed (%s %s) (%d)", mod_name, options, i);
-
- return i;
-
-}
-
-static enum return_type insmod_with_options(char * mod, enum driver_type type)
-{
- char * questions[] = { "Options", NULL };
- static char ** answers = NULL;
- enum return_type results;
- char options[500] = "options ";
-
- results = ask_from_entries("Please enter the parameters to give to the kernel:", questions, &answers, 24, NULL);
- if (results != RETURN_OK)
- return results;
-
- strcat(options, mod);
- strcat(options, " ");
- strcat(options, answers[0]); // because my_insmod will eventually modify the string
-
- if (my_insmod(mod, type, answers[0]) != INSMOD_OK) {
- stg1_error_message("Insmod failed.");
- return RETURN_ERROR;
- }
-
- add_modules_conf(options);
-
- return RETURN_OK;
-}
-
-enum return_type ask_insmod(enum driver_type type)
-{
- char * mytype;
- char msg[200];
- enum return_type results;
- char * choice;
-
- unset_param(MODE_AUTOMATIC); /* we are in a fallback mode */
-
- if (type == SCSI_ADAPTERS)
- mytype = "SCSI";
- else if (type == NETWORK_DEVICES)
- mytype = "NET";
- else
- return RETURN_ERROR;
-
- if (disable_modules)
- return RETURN_BACK;
-
- snprintf(msg, sizeof(msg), "Which driver should I try to gain %s access?", mytype);
-
- {
- char ** drivers = mar_list_contents(archive_name);
- char ** descrs = malloc(sizeof(char *) * string_array_length(drivers));
- char ** p_drivers = drivers;
- char ** p_descrs = descrs;
- while (p_drivers && *p_drivers) {
- int i;
- *p_descrs = NULL;
- for (i = 0 ; i < modules_descriptions_num ; i++) {
- if (!strncmp(*p_drivers, modules_descriptions[i].module, strlen(modules_descriptions[i].module))
- && (*p_drivers)[strlen(modules_descriptions[i].module)] == '.') /* one contains '.o' not the other */
- *p_descrs = modules_descriptions[i].descr;
- }
- p_drivers++;
- p_descrs++;
- }
- results = ask_from_list_comments(msg, drivers, descrs, &choice);
- }
-
- if (results == RETURN_OK) {
- choice[strlen(choice)-2] = '\0'; /* remove trailing .o */
- return insmod_with_options(choice, type);
- } else
- return results;
-}
-
-
-void update_modules(void)
-{
- FILE * f;
- char ** disk_contents;
- char final_name[500];
- char floppy_mount_location[] = "/tmp/floppy";
-
- stg1_info_message("Please insert the Update Modules floppy.");;
-
- my_insmod("floppy", ANY_DRIVER_TYPE, NULL);
-
- if (my_mount("/dev/fd0", floppy_mount_location, "ext2", 0) == -1) {
- enum return_type results = ask_yes_no("I can't find a Linux ext2 floppy in first floppy drive.\n"
- "Retry?");
- if (results == RETURN_OK)
- return update_modules();
- return;
- }
-
- disk_contents = list_directory(floppy_mount_location);
-
- if (!(f = fopen("/tmp/floppy/to_load", "rb"))) {
- stg1_error_message("I can't find \"to_load\" file.");
- umount(floppy_mount_location);
- return update_modules();
- }
- while (1) {
- char module[500];
- char * options;
- char ** entry = disk_contents;
-
- if (!fgets(module, sizeof(module), f)) break;
- if (module[0] == '#' || strlen(module) == 0)
- continue;
-
- while (module[strlen(module)-1] == '\n')
- module[strlen(module)-1] = '\0';
- options = strchr(module, ' ');
- if (options) {
- options[0] = '\0';
- options++;
- }
-
- log_message("updatemodules: (%s) (%s)", module, options);
- while (entry && *entry) {
- if (!strncmp(*entry, module, strlen(module)) && (*entry)[strlen(module)] == '.') {
- sprintf(final_name, "%s/%s", floppy_mount_location, *entry);
- if (insmod_call(final_name, options)) {
- log_message("\t%s (floppy): failed", *entry);
- stg1_error_message("Insmod %s (floppy) failed.", *entry);
- }
- break;
- }
- entry++;
- }
- if (!entry || !*entry) {
- enum insmod_return ret = my_insmod(module, ANY_DRIVER_TYPE, options);
- if (ret != INSMOD_OK) {
- log_message("\t%s (marfile): failed", module);
- stg1_error_message("Insmod %s (marfile) failed.", module);
- }
- }
- }
- fclose(f);
- umount(floppy_mount_location);
-}
diff --git a/mdk-stage1/modules.h b/mdk-stage1/modules.h
deleted file mode 100644
index a5fccb609..000000000
--- a/mdk-stage1/modules.h
+++ /dev/null
@@ -1,35 +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.
- *
- */
-
-#ifndef _MODULES_H_
-#define _MODULES_H_
-
-#include "stage1.h"
-#include "probing.h"
-
-enum insmod_return { INSMOD_OK, INSMOD_FAILED, INSMOD_FAILED_FILE_NOT_FOUND };
-
-void init_modules_insmoding(void);
-enum insmod_return my_insmod(const char * mod_name, enum driver_type type, char * options);
-enum return_type ask_insmod(enum driver_type);
-void update_modules(void);
-
-struct module_deps_elem {
- char * name;
- char ** deps;
-};
-
-extern int disable_modules;
-
-#endif
diff --git a/mdk-stage1/modules_descr.h b/mdk-stage1/modules_descr.h
deleted file mode 100644
index d38f437d8..000000000
--- a/mdk-stage1/modules_descr.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
- *
- * Copyright 2001 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 _MODULES_DESCR_H_
-#define _MODULES_DESCR_H_
-
-struct module_descr {
- const char * module;
- char * descr;
-};
-
-struct module_descr modules_descriptions[] = {
-#ifndef DISABLE_NETWORK
- /* description of network drivers that have not very explicit names */
- { "ne", "NE1000/NE2000/clones" },
- { "ne2k-pci", "PCI NE2000" },
- { "depca", "DEC DEPCA/DE100/DE101/DE200/DE201/DE202/DE210/DE422" },
- { "dgrs", "Digi RightSwitch SE-X" },
- { "ewrk3", "DEC DE203/DE204/DE205" },
- { "lance", "Allied Telesis AT1500, HP J2405A, NE2100/NE2500" },
- { "sis900", "SiS 900/7016/630E, Am79c901, RTL8201" },
- { "via-rhine", "VIA VT86c100A Rhine-II, 3043 Rhine-I" },
- { "tulip", "DEC 21040-family based cards" },
- { "wd", "WD8003/WD8013" },
- { "bmac", "Macintosh integrated ethernet (G3)" },
- { "gmac", "Macintosh integrated ethernet (G4/iBook)" },
- { "mace", "Macintosh integrated ethernet (PowerMac)" },
-#endif
-
-#ifndef DISABLE_MEDIAS
- /* description of scsi drivers that have not very explicit names */
- { "53c7,8xx", "NCR53c810/700" },
- { "sim710", "NCR53c710" },
- { "aic7xxx", "Adaptec 7xxx family (AIC/AHA/etc)" },
- { "atp870u", "ACARD/ARTOP AEC-6710/6712" },
- { "ncr53c8xx", "Symbios 53c family" },
- { "sym53c8xx", "Symbios 53c family" },
- { "sim710", "NCR53C710 family" },
- { "mesh", "Macintosh integrated SCSI (NewWorld or internal SCSI)" },
- { "mac53c94", "Macintosh integrated SCSI (OldWorld or external SCSI)" },
-#endif
-
-#ifdef ENABLE_USB
- /* description of usb drivers that have not very explicit names */
- { "usbnet", "Netchip or Prolific USB-USB Bridge" },
- { "pegasus", "ADMtek AN986 (USB Ethernet chipset)" },
- { "kaweth", "KL5KUSB101 (USB Ethernet chipset)" },
- { "catc", "CATC EL1210A NetMate USB Ethernet" },
-#endif
-};
-
-int modules_descriptions_num = sizeof(modules_descriptions) / sizeof(struct module_descr);
-
-
-#endif
diff --git a/mdk-stage1/mount.c b/mdk-stage1/mount.c
deleted file mode 100644
index fd86a13b7..000000000
--- a/mdk-stage1/mount.c
+++ /dev/null
@@ -1,189 +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.
- *
- */
-
-/*
- * Portions from Erik Troan (ewt@redhat.com)
- *
- * Copyright 1996 Red Hat Software
- *
- */
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <sys/mount.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include "log.h"
-#include "modules.h"
-
-#include "mount.h"
-
-
-
-#ifndef DISABLE_MEDIAS
-/* WARNING: this won't work if the argument is not /dev/ based */
-int ensure_dev_exists(char *dev)
-{
- int major, minor;
- int type = S_IFBLK; /* my default type is block. don't forget to change for chars */
- 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
- 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 {
- log_message("I don't know how to create device %s, please post bugreport to me!", dev);
- return -1;
- }
-
- if (mknod(dev, type | 0600, makedev(major, minor))) {
- log_perror(dev);
- return -1;
- }
-
- return 0;
-}
-#endif /* DISABLE_MEDIAS */
-
-
-/* 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;
-
-#ifndef DISABLE_MEDIAS
- if (strcmp(fs, "nfs")) {
- rc = ensure_dev_exists(dev);
- if (rc != 0) {
- log_message("could not create required device file");
- return -1;
- }
- }
-#endif
-
- log_message("mounting %s on %s as type %s", dev, location, fs);
-
- if (stat(location, &buf)) {
- if (mkdir(location, 0755)) {
- log_perror("could not create location dir");
- return -1;
- }
- } else if (!S_ISDIR(buf.st_mode)) {
- log_message("not a dir %s, will unlink and mkdir", location);
- if (unlink(location)) {
- log_perror("could not unlink");
- return -1;
- }
- if (mkdir(location, 0755)) {
- log_perror("could not create location dir");
- return -1;
- }
- }
-
-#ifndef DISABLE_MEDIAS
- if (!strcmp(fs, "vfat")) {
- my_insmod("vfat", ANY_DRIVER_TYPE, NULL);
- opts = "check=relaxed";
- }
-
- if (!strcmp(fs, "reiserfs"))
- my_insmod("reiserfs", ANY_DRIVER_TYPE, NULL);
-
- if (!strcmp(fs, "iso9660"))
- my_insmod("isofs", ANY_DRIVER_TYPE, NULL);
-#endif
-
-#ifndef DISABLE_NETWORK
- if (!strcmp(fs, "nfs")) {
- int flags = MS_RDONLY;
- my_insmod("nfs", ANY_DRIVER_TYPE, NULL);
- log_message("preparing nfsmount for %s", dev);
- rc = nfsmount_prepare(dev, &flags, &opts);
- if (rc != 0)
- return rc;
- }
-#endif
-
- rc = mount(dev, location, fs, flags, opts);
- if (rc != 0) {
- log_perror("mount failed");
- rmdir(location);
- }
-
- return rc;
-}
diff --git a/mdk-stage1/mount.h b/mdk-stage1/mount.h
deleted file mode 100644
index 82795462f..000000000
--- a/mdk-stage1/mount.h
+++ /dev/null
@@ -1,35 +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.
- *
- */
-
-/*
- * Portions from Erik Troan (ewt@redhat.com)
- *
- * Copyright 1996 Red Hat Software
- *
- */
-
-#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);
-
-#ifndef DISABLE_MEDIAS
-int ensure_dev_exists(char *dev);
-#endif
-
-#endif
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
deleted file mode 100644
index 3d3107ddf..000000000
--- a/mdk-stage1/network.c
+++ /dev/null
@@ -1,833 +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.
- *
- */
-
-/*
- * Portions from Erik Troan (ewt@redhat.com)
- *
- * Copyright 1996 Red Hat Software
- *
- */
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <sys/socket.h>
-#include <net/if.h>
-#include <arpa/inet.h>
-#include <net/route.h>
-#include <sys/ioctl.h>
-#include <sys/mount.h>
-#include <stdio.h>
-#include <netdb.h>
-#include <resolv.h>
-
-#include "stage1.h"
-#include "frontend.h"
-#include "modules.h"
-#include "probing.h"
-#include "log.h"
-#include "mount.h"
-#include "automatic.h"
-#include "dhcp.h"
-#include "adsl.h"
-#include "url.h"
-#include "dns.h"
-
-#include "network.h"
-
-
-static void error_message_net(void) /* reduce code size */
-{
- stg1_error_message("Could not configure network.");
-}
-
-
-int configure_net_device(struct interface_info * intf)
-{
- struct ifreq req;
- struct rtentry route;
- int s;
- struct sockaddr_in addr;
- struct in_addr ia;
- char ip[20], nm[20], nw[20], bc[20];
-
- addr.sin_family = AF_INET;
- addr.sin_port = 0;
-
- memcpy(&ia, &intf->ip, sizeof(intf->ip));
- strcpy(ip, inet_ntoa(ia));
-
- memcpy(&ia, &intf->netmask, sizeof(intf->netmask));
- strcpy(nm, inet_ntoa(ia));
-
- memcpy(&ia, &intf->broadcast, sizeof(intf->broadcast));
- strcpy(bc, inet_ntoa(ia));
-
- memcpy(&ia, &intf->network, sizeof(intf->network));
- strcpy(nw, inet_ntoa(ia));
-
- log_message("configuring device %s ip: %s nm: %s nw: %s bc: %s", intf->device, ip, nm, nw, bc);
-
- if (IS_TESTING)
- return 0;
-
- s = socket(AF_INET, SOCK_DGRAM, 0);
- if (s < 0) {
- log_perror("socket");
- error_message_net();
- return 1;
- }
-
- strcpy(req.ifr_name, intf->device);
-
- if (intf->is_up == 1) {
- log_message("interface already up, downing before reconfigure");
-
- req.ifr_flags = 0;
- if (ioctl(s, SIOCSIFFLAGS, &req)) {
- close(s);
- log_perror("SIOCSIFFLAGS (downing)");
- error_message_net();
- return 1;
- }
- }
-
- /* sets IP address */
- addr.sin_port = 0;
- memcpy(&addr.sin_addr, &intf->ip, sizeof(intf->ip));
- memcpy(&req.ifr_addr, &addr, sizeof(addr));
- if (ioctl(s, SIOCSIFADDR, &req)) {
- close(s);
- log_perror("SIOCSIFADDR");
- error_message_net();
- return 1;
- }
-
- /* sets broadcast */
- memcpy(&addr.sin_addr, &intf->broadcast, sizeof(intf->broadcast));
- memcpy(&req.ifr_broadaddr, &addr, sizeof(addr));
- if (ioctl(s, SIOCSIFBRDADDR, &req)) {
- close(s);
- log_perror("SIOCSIFBRDADDR");
- error_message_net();
- return 1;
- }
-
- /* sets netmask */
- memcpy(&addr.sin_addr, &intf->netmask, sizeof(intf->netmask));
- memcpy(&req.ifr_netmask, &addr, sizeof(addr));
- if (ioctl(s, SIOCSIFNETMASK, &req)) {
- close(s);
- log_perror("SIOCSIFNETMASK");
- error_message_net();
- return 1;
- }
-
- if (intf->is_ptp)
- req.ifr_flags = IFF_UP | IFF_RUNNING | IFF_POINTOPOINT | IFF_NOARP;
- else
- req.ifr_flags = IFF_UP | IFF_RUNNING | IFF_BROADCAST;
-
- /* brings up networking! */
- if (ioctl(s, SIOCSIFFLAGS, &req)) {
- close(s);
- log_perror("SIOCSIFFLAGS (upping)");
- error_message_net();
- return 1;
- }
-
- memset(&route, 0, sizeof(route));
- route.rt_dev = intf->device;
- route.rt_flags = RTF_UP;
-
- memcpy(&addr.sin_addr, &intf->network, sizeof(intf->network));
- memcpy(&route.rt_dst, &addr, sizeof(addr));
-
- memcpy(&addr.sin_addr, &intf->netmask, sizeof(intf->netmask));
- memcpy(&route.rt_genmask, &addr, sizeof(addr));
-
- /* adds route */
- if (ioctl(s, SIOCADDRT, &route)) {
- close(s);
- log_perror("SIOCADDRT");
- error_message_net();
- return 1;
- }
-
- close(s);
-
- intf->is_up = 1;
-
- if (intf->boot_proto != BOOTPROTO_DHCP && !streq(intf->device, "lo")) {
- /* I need to sleep a bit in order for kernel to finish
- init of the network device; if not, first sendto() for
- gethostbyaddr will get an EINVAL. */
- wait_message("Bringing up networking...");
- sleep(2);
- remove_wait_message();
- }
-
- return 0;
-}
-
-/* host network informations */
-char * hostname = NULL;
-char * domain = NULL;
-struct in_addr gateway = { 0 };
-struct in_addr dns_server = { 0 };
-struct in_addr dns_server2 = { 0 };
-
-static int add_default_route(void)
-{
- int s;
- struct rtentry route;
- struct sockaddr_in addr;
-
- if (IS_TESTING)
- return 0;
-
- if (gateway.s_addr == 0) {
- log_message("no gateway provided, can't add default route");
- return 0;
- }
-
- s = socket(AF_INET, SOCK_DGRAM, 0);
- if (s < 0) {
- close(s);
- log_perror("socket");
- error_message_net();
- return 1;
- }
-
- memset(&route, 0, sizeof(route));
-
- addr.sin_family = AF_INET;
- addr.sin_port = 0;
- addr.sin_addr = gateway;
- memcpy(&route.rt_gateway, &addr, sizeof(addr));
-
- addr.sin_addr.s_addr = INADDR_ANY;
- memcpy(&route.rt_dst, &addr, sizeof(addr));
- memcpy(&route.rt_genmask, &addr, sizeof(addr));
-
- route.rt_flags = RTF_UP | RTF_GATEWAY;
- route.rt_metric = 0;
-
- if (ioctl(s, SIOCADDRT, &route)) {
- close(s);
- log_perror("SIOCADDRT");
- error_message_net();
- return 1;
- }
-
- close(s);
-
- return 0;
-}
-
-
-static int write_resolvconf(void) {
- char * filename = "/etc/resolv.conf";
- FILE * f;
-
- if (dns_server.s_addr == 0) {
- log_message("resolvconf needs a dns server");
- return -1;
- }
-
- f = fopen(filename, "w");
- if (!f) {
- log_perror(filename);
- return -1;
- }
-
- if (domain)
- fprintf(f, "search %s\n", domain); /* we can live without the domain search (user will have to enter fully-qualified names) */
- fprintf(f, "nameserver %s\n", inet_ntoa(dns_server));
- if (dns_server2.s_addr != 0)
- fprintf(f, "nameserver %s\n", inet_ntoa(dns_server2));
-
- fclose(f);
- res_init(); /* reinit the resolver so DNS changes take affect */
-
- return 0;
-}
-
-
-static int save_netinfo(struct interface_info * intf) {
- char * file_network = "/tmp/network";
- char file_intf[500];
- FILE * f;
-
- f = fopen(file_network, "w");
- if (!f) {
- log_perror(file_network);
- return -1;
- }
-
- fprintf(f, "NETWORKING=yes\n");
- fprintf(f, "FORWARD_IPV4=false\n");
-
- if (hostname)
- fprintf(f, "HOSTNAME=%s\n", hostname);
- if (domain)
- fprintf(f, "DOMAINNAME=%s\n", domain);
- if (dhcp_hostname && !streq(dhcp_hostname, ""))
- fprintf(f, "DHCP_HOSTNAME=%s\n", dhcp_hostname);
-
- if (gateway.s_addr != 0)
- fprintf(f, "GATEWAY=%s\n", inet_ntoa(gateway));
-
- fclose(f);
-
-
- strcpy(file_intf, "/tmp/ifcfg-");
- strcat(file_intf, intf->device);
-
- f = fopen(file_intf, "w");
- if (!f) {
- log_perror(file_intf);
- return -1;
- }
-
- fprintf(f, "DEVICE=%s\n", intf->device);
-
- if (intf->boot_proto == BOOTPROTO_DHCP)
- fprintf(f, "BOOTPROTO=dhcp\n");
- else if (intf->boot_proto == BOOTPROTO_STATIC) {
- fprintf(f, "BOOTPROTO=static\n");
- fprintf(f, "IPADDR=%s\n", inet_ntoa(intf->ip));
- fprintf(f, "NETMASK=%s\n", inet_ntoa(intf->netmask));
- fprintf(f, "NETWORK=%s\n", inet_ntoa(intf->network));
- fprintf(f, "BROADCAST=%s\n", inet_ntoa(intf->broadcast));
- } else if (intf->boot_proto == BOOTPROTO_ADSL_PPPOE) {
- fprintf(f, "BOOTPROTO=adsl_pppoe\n");
- fprintf(f, "USER=%s\n", intf->user);
- fprintf(f, "PASS=%s\n", intf->pass);
- }
-
- fclose(f);
-
- return 0;
-}
-
-
-char * guess_netmask(char * ip_addr)
-{
- struct in_addr addr;
- unsigned long int tmp;
-
- if (streq(ip_addr, "") || !inet_aton(ip_addr, &addr))
- return "";
-
- log_message("guessing netmask");
-
- tmp = ntohl(addr.s_addr);
-
- if (((tmp & 0xFF000000) >> 24) <= 127)
- return "255.0.0.0";
- else if (((tmp & 0xFF000000) >> 24) <= 191)
- return "255.255.0.0";
- else
- return "255.255.255.0";
-}
-
-
-static void static_ip_callback(char ** strings)
-{
- struct in_addr addr;
-
- if (!inet_aton(strings[0], &addr))
- return;
-
- if (!strcmp(strings[1], "")) {
- char * ptr;
- strings[1] = strdup(strings[0]);
- ptr = strrchr(strings[1], '.');
- if (ptr)
- *(ptr+1) = '\0';
- }
-
- if (!strcmp(strings[2], ""))
- strings[2] = strdup(strings[1]);
-
- if (!strcmp(strings[3], ""))
- strings[3] = strdup(guess_netmask(strings[0]));
-}
-
-
-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 * choice;
-
- results = ask_from_list_auto("Please choose the desired IP attribution.", bootprotos, &choice, "network", bootprotos_auto);
- if (results != RETURN_OK)
- return results;
-
- if (!strcmp(choice, "Static")) {
- char * questions[] = { "IP of this machine", "IP of DNS", "IP of default gateway", "Netmask", NULL };
- char * questions_auto[] = { "ip", "dns", "gateway", "netmask" };
- static char ** answers = NULL;
- struct in_addr addr;
-
- results = ask_from_entries_auto("Please enter the network information. (leave netmask blank for Internet standard)",
- questions, &answers, 16, questions_auto, static_ip_callback);
- if (results != RETURN_OK)
- return setup_network_interface(intf);
-
- if (streq(answers[0], "") || !inet_aton(answers[0], &addr)) {
- stg1_error_message("Invalid IP address.");
- return setup_network_interface(intf);
- }
- memcpy(&intf->ip, &addr, sizeof(addr));
-
- if (!inet_aton(answers[1], &dns_server)) {
- log_message("invalid DNS");
- dns_server.s_addr = 0; /* keep an understandable state */
- }
-
- if (!inet_aton(answers[2], &gateway)) {
- log_message("invalid gateway");
- gateway.s_addr = 0; /* keep an understandable state */
- }
-
- if ((streq(answers[3], "") && inet_aton(guess_netmask(answers[0]), &addr))
- || inet_aton(answers[3], &addr))
- memcpy(&intf->netmask, &addr, sizeof(addr));
- else {
- stg1_error_message("Invalid netmask.");
- return setup_network_interface(intf);
- }
-
- *((uint32_t *) &intf->broadcast) = (*((uint32_t *) &intf->ip) &
- *((uint32_t *) &intf->netmask)) | ~(*((uint32_t *) &intf->netmask));
-
- inet_aton("255.255.255.255", &addr);
- if (!memcmp(&addr, &intf->netmask, sizeof(addr))) {
- log_message("netmask is 255.255.255.255 -> point to point device");
- intf->network = gateway;
- intf->is_ptp = 1;
- } else {
- *((uint32_t *) &intf->network) = *((uint32_t *) &intf->ip) & *((uint32_t *) &intf->netmask);
- intf->is_ptp = 0;
- }
- intf->boot_proto = BOOTPROTO_STATIC;
-
- if (configure_net_device(intf))
- return RETURN_ERROR;
-
- } else if (streq(choice, "DHCP")) {
- results = perform_dhcp(intf);
-
- if (results == RETURN_BACK)
- return setup_network_interface(intf);
- if (results == RETURN_ERROR)
- return results;
- intf->boot_proto = BOOTPROTO_DHCP;
-
- if (configure_net_device(intf))
- return RETURN_ERROR;
-
- } else if (streq(choice, "ADSL")) {
- results = perform_adsl(intf);
-
- if (results == RETURN_BACK)
- return setup_network_interface(intf);
- if (results == RETURN_ERROR)
- return results;
- } else
- return RETURN_ERROR;
-
- return add_default_route();
-}
-
-
-static enum return_type configure_network(struct interface_info * intf)
-{
- char * dnshostname;
-
- if (hostname && domain)
- return RETURN_OK;
-
- dnshostname = mygethostbyaddr(inet_ntoa(intf->ip));
-
- if (dnshostname) {
- hostname = strdup(dnshostname);
- domain = strchr(strdup(hostname), '.') + 1;
- log_message("got hostname and domain from dns entry, %s and %s", hostname, domain);
- return RETURN_OK;
- }
-
- log_message("reverse name lookup on self failed");
-
- if (domain)
- return RETURN_OK;
-
- if (dns_server.s_addr != 0) {
- wait_message("Trying to resolve dns...");
- dnshostname = mygethostbyaddr(inet_ntoa(dns_server));
- remove_wait_message();
- }
-
- if (dnshostname) {
- domain = strchr(strdup(dnshostname), '.') + 1;
- log_message("got domain from DNS fullname, %s", domain);
- } else {
- enum return_type results;
- char * questions[] = { "Host name", "Domain name", NULL };
- char * questions_auto[] = { "hostname", "domain" };
- static char ** answers = NULL;
- char * boulet;
-
- log_message("reverse name lookup on DNS failed");
-
- 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.",
- questions, &answers, 32, questions_auto, NULL);
- if (results != RETURN_OK)
- return results;
-
- hostname = answers[0];
- if ((boulet = strchr(hostname, '.')) != NULL)
- boulet[0] = '\0';
- domain = answers[1];
- }
-
- return RETURN_OK;
-}
-
-
-static enum return_type bringup_networking(struct interface_info * intf)
-{
- static struct interface_info loopback;
- enum return_type results = RETURN_ERROR;
-
- my_insmod("af_packet", ANY_DRIVER_TYPE, NULL);
-
- while (results != RETURN_OK) {
- results = setup_network_interface(intf);
- if (results != RETURN_OK)
- return results;
- write_resolvconf();
- results = configure_network(intf);
- }
-
- write_resolvconf(); /* maybe we have now domain to write also */
-
- if (loopback.is_up == 0) {
- int rc;
- strcpy(loopback.device, "lo");
- loopback.is_ptp = 0;
- loopback.is_up = 0;
- loopback.ip.s_addr = htonl(0x7f000001);
- loopback.netmask.s_addr = htonl(0xff000000);
- loopback.broadcast.s_addr = htonl(0x7fffffff);
- loopback.network.s_addr = htonl(0x7f000000);
- rc = configure_net_device(&loopback);
- if (rc)
- return RETURN_ERROR;
- }
-
- return RETURN_OK;
-}
-
-
-static char * interface_select(void)
-{
- char ** interfaces, ** ptr;
- char * descriptions[50];
- char * choice;
- int i, count = 0;
- enum return_type results;
-
- interfaces = get_net_devices();
-
- ptr = interfaces;
- while (ptr && *ptr) {
- count++;
- ptr++;
- }
-
- 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.");
- i = ask_insmod(NETWORK_DEVICES);
- if (i == RETURN_BACK)
- return NULL;
- return interface_select();
- }
-
- if (count == 1)
- return *interfaces;
-
- i = 0;
- while (interfaces[i]) {
- descriptions[i] = get_net_intf_description(interfaces[i]);
- i++;
- }
-
- results = ask_from_list_comments_auto("Please choose the NET device to use for the installation.",
- interfaces, descriptions, &choice, "interface", interfaces);
-
- if (results != RETURN_OK)
- return NULL;
-
- return choice;
-}
-
-
-
-/* -=-=-- */
-
-
-static enum return_type intf_select_and_up(void)
-{
- static struct interface_info intf[20];
- static int num_interfaces = 0;
- struct interface_info * sel_intf = NULL;
- int i;
- enum return_type results;
- char * iface = interface_select();
-
- if (iface == NULL)
- return RETURN_BACK;
-
- for (i = 0; i < num_interfaces ; i++)
- if (!strcmp(intf[i].device, iface))
- sel_intf = &(intf[i]);
-
- if (sel_intf == NULL) {
- sel_intf = &(intf[num_interfaces]);
- strcpy(sel_intf->device, iface);
- sel_intf->is_up = 0;
- num_interfaces++;
- }
-
- results = bringup_networking(sel_intf);
-
- if (results == RETURN_OK)
- save_netinfo(sel_intf);
-
- return results;
-}
-
-
-
-enum return_type nfs_prepare(void)
-{
- char * questions[] = { "NFS server name", DISTRIB_NAME " directory", NULL };
- char * questions_auto[] = { "server", "directory", NULL };
- static char ** answers = NULL;
- char * nfsmount_location;
- enum return_type results = intf_select_and_up();
-
- if (results != RETURN_OK)
- return results;
-
- do {
- results = ask_from_entries_auto("Please enter the name or IP address of your NFS server, "
- "and the directory containing the " DISTRIB_NAME " Distribution.",
- questions, &answers, 40, questions_auto, NULL);
- if (results != RETURN_OK || streq(answers[0], "")) {
- unset_param(MODE_AUTOMATIC); /* we are in a fallback mode */
- return nfs_prepare();
- }
-
- nfsmount_location = malloc(strlen(answers[0]) + strlen(answers[1]) + 2);
- strcpy(nfsmount_location, answers[0]);
- strcat(nfsmount_location, ":");
- strcat(nfsmount_location, answers[1]);
-
- if (my_mount(nfsmount_location, IMAGE_LOCATION, "nfs", 0) == -1) {
- stg1_error_message("I can't mount the directory from the NFS server.");
- results = RETURN_BACK;
- continue;
- }
-
- if (access(IMAGE_LOCATION LIVE_LOCATION, R_OK)) {
- stg1_error_message("That NFS volume does not seem to contain the " DISTRIB_NAME " Distribution.");
- umount(IMAGE_LOCATION);
- results = RETURN_BACK;
- }
- }
- while (results == RETURN_BACK);
-
- log_message("found the " DISTRIB_NAME " Installation, good news!");
-
- if (IS_SPECIAL_STAGE2) {
- if (load_ramdisk() != RETURN_OK) {
- stg1_error_message("Could not load program into memory.");
- return nfs_prepare();
- }
- }
-
- if (IS_RESCUE)
- umount(IMAGE_LOCATION);
-
- method_name = strdup("nfs");
- return RETURN_OK;
-}
-
-
-enum return_type ftp_prepare(void)
-{
- char * questions[] = { "FTP server", DISTRIB_NAME " directory", "Login", "Password", NULL };
- char * questions_auto[] = { "server", "directory", "user", "pass", NULL };
- static char ** answers = NULL;
- enum return_type results;
-
- if (!ramdisk_possible()) {
- stg1_error_message("FTP install needs more than %d Mbytes of memory (detected %d Mbytes).",
- MEM_LIMIT_RAMDISK, total_memory());
- return RETURN_ERROR;
- }
-
- results = intf_select_and_up();
-
- if (results != RETURN_OK)
- return results;
-
- do {
- char location_full[500];
- int ftp_serv_response;
- int fd, size;
-
- results = ask_from_entries_auto("Please enter the name or IP address of the FTP server, "
- "the directory containing the " DISTRIB_NAME " Distribution, "
- "and the login/pass if necessary (leave login blank for anonymous).",
- questions, &answers, 40, questions_auto, NULL);
- if (results != RETURN_OK || streq(answers[0], "")) {
- unset_param(MODE_AUTOMATIC); /* we are in a fallback mode */
- return ftp_prepare();
- }
-
- log_message("FTP: trying to connect to %s", answers[0]);
-
- ftp_serv_response = ftp_open_connection(answers[0], answers[2], answers[3], "");
- if (ftp_serv_response < 0) {
- log_message("FTP: error connect %d", ftp_serv_response);
- if (ftp_serv_response == FTPERR_BAD_HOSTNAME)
- stg1_error_message("Error: bad hostname.");
- else if (ftp_serv_response == FTPERR_FAILED_CONNECT)
- stg1_error_message("Error: failed to connect to remote host.");
- else
- stg1_error_message("Error: couldn't connect.");
- results = RETURN_BACK;
- continue;
- }
- strcpy(location_full, answers[1]);
- strcat(location_full, get_ramdisk_realname());
-
- log_message("FTP: trying to retrieve %s", location_full);
-
- fd = ftp_start_download(ftp_serv_response, location_full, &size);
- if (fd < 0) {
- log_message("FTP: error get %d", fd);
- if (fd == FTPERR_PASSIVE_ERROR)
- stg1_error_message("Error: error with passive connection.");
- else if (fd == FTPERR_FILE_NOT_FOUND)
- stg1_error_message("Error: file not found (%s).", location_full);
- else if (fd == FTPERR_BAD_SERVER_RESPONSE)
- stg1_error_message("Error: bad server response (server too busy?).");
- else
- stg1_error_message("Error: couldn't retrieve Installation program.");
- results = RETURN_BACK;
- continue;
- }
-
- log_message("FTP: size of download %d bytes", size);
-
- results = load_ramdisk_fd(fd, size);
- if (results == RETURN_OK)
- ftp_end_data_command(ftp_serv_response);
- else
- return results;
-
- method_name = strdup("ftp");
- add_to_env("HOST", answers[0]);
- add_to_env("PREFIX", answers[1]);
- if (strcmp(answers[2], "")) {
- add_to_env("LOGIN", answers[2]);
- add_to_env("PASSWORD", answers[3]);
- }
- }
- while (results == RETURN_BACK);
-
- return RETURN_OK;
-}
-
-enum return_type http_prepare(void)
-{
- char * questions[] = { "HTTP server", DISTRIB_NAME " directory", NULL };
- char * questions_auto[] = { "server", "directory", NULL };
- static char ** answers = NULL;
- enum return_type results;
-
- if (!ramdisk_possible()) {
- stg1_error_message("HTTP install needs more than %d Mbytes of memory (detected %d Mbytes).",
- MEM_LIMIT_RAMDISK, total_memory());
- return RETURN_ERROR;
- }
-
- results = intf_select_and_up();
-
- if (results != RETURN_OK)
- return results;
-
- do {
- char location_full[500];
- int fd, size;
-
- results = ask_from_entries_auto("Please enter the name or IP address of the HTTP server, "
- "and the directory containing the " DISTRIB_NAME " Distribution.",
- questions, &answers, 40, questions_auto, NULL);
- if (results != RETURN_OK || streq(answers[0], "")) {
- unset_param(MODE_AUTOMATIC); /* we are in a fallback mode */
- return http_prepare();
- }
-
- strcpy(location_full, answers[1]);
- strcat(location_full, get_ramdisk_realname());
-
- log_message("HTTP: trying to retrieve %s from %s", location_full, answers[0]);
-
- fd = http_download_file(answers[0], location_full, &size);
- if (fd < 0) {
- log_message("HTTP: error %d", fd);
- if (fd == FTPERR_FAILED_CONNECT)
- stg1_error_message("Error: couldn't connect to server.");
- else
- stg1_error_message("Error: couldn't get file (%s).", location_full);
- results = RETURN_BACK;
- continue;
- }
-
- log_message("HTTP: size of download %d bytes", size);
-
- if (load_ramdisk_fd(fd, size) != RETURN_OK)
- return RETURN_ERROR;
-
- method_name = strdup("http");
- sprintf(location_full, "http://%s/%s", answers[0], answers[1]);
- add_to_env("URLPREFIX", location_full);
- }
- while (results == RETURN_BACK);
-
- return RETURN_OK;
-
-}
diff --git a/mdk-stage1/network.h b/mdk-stage1/network.h
deleted file mode 100644
index 02eea45b6..000000000
--- a/mdk-stage1/network.h
+++ /dev/null
@@ -1,61 +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.
- *
- */
-
-/*
- * Portions from Erik Troan (ewt@redhat.com)
- *
- * Copyright 1996 Red Hat Software
- *
- */
-
-#ifndef _NETWORK_H_
-#define _NETWORK_H_
-
-#include <netinet/in.h>
-#include <netinet/ip.h>
-#include <arpa/inet.h>
-
-
-enum return_type nfs_prepare(void);
-enum return_type ftp_prepare(void);
-enum return_type http_prepare(void);
-
-
-enum boot_proto_type { BOOTPROTO_STATIC, BOOTPROTO_DHCP, BOOTPROTO_ADSL_PPPOE };
-
-/* all of these in_addr things are in network byte order! */
-struct interface_info {
- char device[10];
- int is_ptp, is_up;
- struct in_addr ip, netmask, broadcast, network;
- enum boot_proto_type boot_proto;
- char *user, *pass; /* for ADSL connection */
-};
-
-
-/* these are to be used only by dhcp.c */
-
-char * guess_netmask(char * ip_addr);
-
-int configure_net_device(struct interface_info * intf);
-
-extern char * hostname;
-extern char * domain;
-extern struct in_addr gateway;
-extern struct in_addr dns_server;
-extern struct in_addr dns_server2;
-
-
-
-#endif
diff --git a/mdk-stage1/newt-frontend.c b/mdk-stage1/newt-frontend.c
deleted file mode 100644
index f50defee1..000000000
--- a/mdk-stage1/newt-frontend.c
+++ /dev/null
@@ -1,396 +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.
- *
- */
-
-/*
- * Portions from Erik Troan (ewt@redhat.com)
- *
- * Copyright 1996 Red Hat Software
- *
- */
-
-
-/*
- * Each different frontend must implement all functions defined in frontend.h
- */
-
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdarg.h>
-#include <sys/time.h>
-#include "newt/newt.h"
-
-#include "frontend.h"
-
-void init_frontend(char * welcome_msg)
-{
- int i;
- for (i=0; i<38; i++) printf("\n");
- newtInit();
- newtCls();
-
- newtDrawRootText(0, 0, welcome_msg);
-
- newtPushHelpLine(" <Alt-F1> for here, <Alt-F3> to see the logs, <Alt-F4> for kernel msg");
- newtRefresh();
-}
-
-
-void finish_frontend(void)
-{
- newtFinished();
-}
-
-
-void verror_message(char *msg, va_list ap)
-{
- newtWinMessagev("Error", "Ok", msg, ap);
-}
-
-void vinfo_message(char *msg, va_list ap)
-{
- newtWinMessagev("Notice", "Ok", msg, ap);
-}
-
-
-void vwait_message(char *msg, va_list ap)
-{
- int width, height;
- char * title = "Please wait...";
- newtComponent c, f;
- newtGrid grid;
- char * buf = NULL;
- char * flowed;
- int size = 0;
- int i = 0;
-
- do {
- size += 1000;
- if (buf) free(buf);
- buf = malloc(size);
- i = vsnprintf(buf, size, msg, ap);
- } while (i >= size || i == -1);
-
- flowed = newtReflowText(buf, 60, 5, 5, &width, &height);
-
- c = newtTextbox(-1, -1, width, height, NEWT_TEXTBOX_WRAP);
- newtTextboxSetText(c, flowed);
-
- grid = newtCreateGrid(1, 1);
- newtGridSetField(grid, 0, 0, NEWT_GRID_COMPONENT, c, 0, 0, 0, 0, 0, 0);
- newtGridWrappedWindow(grid, title);
-
- free(flowed);
- free(buf);
-
- f = newtForm(NULL, NULL, 0);
- newtFormAddComponent(f, c);
-
- newtDrawForm(f);
- newtRefresh();
- newtFormDestroy(f);
-}
-
-void remove_wait_message(void)
-{
- newtPopWindow();
-}
-
-
-static newtComponent form = NULL, scale = NULL;
-static int size_progress;
-static int actually_drawn;
-static char * msg_progress;
-
-void init_progression(char *msg, int size)
-{
- size_progress = size;
- if (size) {
- actually_drawn = 0;
- newtCenteredWindow(70, 5, "Please wait...");
- form = newtForm(NULL, NULL, 0);
- newtFormAddComponent(form, newtLabel(1, 1, msg));
- scale = newtScale(1, 3, 68, size);
- newtFormAddComponent(form, scale);
- newtDrawForm(form);
- newtRefresh();
- }
- else {
- wait_message(msg);
- msg_progress = msg;
- }
-}
-
-void update_progression(int current_size)
-{
- if (size_progress) {
- if (current_size <= size_progress)
- newtScaleSet(scale, current_size);
- newtRefresh();
- }
- else {
- struct timeval t;
- int time;
- static int last_time = -1;
- gettimeofday(&t, NULL);
- time = t.tv_sec*3 + t.tv_usec/300000;
- if (time != last_time) {
- char msg_prog_final[500];
- sprintf(msg_prog_final, "%s (%d bytes read) ", msg_progress, current_size);
- remove_wait_message();
- wait_message(msg_prog_final);
- }
- last_time = time;
- }
-}
-
-void end_progression(void)
-{
- if (size_progress) {
- newtPopWindow();
- newtFormDestroy(form);
- }
- else
- remove_wait_message();
-}
-
-
-enum return_type ask_from_list_comments(char *msg, char ** elems, char ** elems_comments, char ** choice)
-{
- char * items[500];
- int answer = 0, rc;
- char ** sav_elems = elems;
- int i;
-
- i = 0;
- while (elems && *elems) {
- int j = (*elems_comments) ? strlen(*elems_comments) : 0;
- items[i] = malloc(sizeof(char) * (strlen(*elems) + j + 4));
- strcpy(items[i], *elems);
- if (*elems_comments) {
- strcat(items[i], " (");
- strcat(items[i], *elems_comments);
- strcat(items[i], ")");
- }
- elems_comments++;
- i++;
- elems++;
- }
- items[i] = NULL;
-
- rc = newtWinMenu("Please choose...", msg, 52, 5, 5, 7, items, &answer, "Ok", "Cancel", NULL);
-
- if (rc == 2)
- return RETURN_BACK;
-
- *choice = strdup(sav_elems[answer]);
-
- return RETURN_OK;
-}
-
-
-enum return_type ask_from_list(char *msg, char ** elems, char ** choice)
-{
- int answer = 0, rc;
-
- rc = newtWinMenu("Please choose...", msg, 52, 5, 5, 7, elems, &answer, "Ok", "Cancel", NULL);
-
- if (rc == 2)
- return RETURN_BACK;
-
- *choice = strdup(elems[answer]);
-
- return RETURN_OK;
-}
-
-
-enum return_type ask_yes_no(char *msg)
-{
- int rc;
-
- rc = newtWinTernary("Please answer...", "Yes", "No", "Back", msg);
-
- if (rc == 1)
- return RETURN_OK;
- else if (rc == 3)
- return RETURN_BACK;
- else return RETURN_ERROR;
-}
-
-
-static void (*callback_real_function)(char ** strings) = NULL;
-
-static void default_callback(newtComponent co __attribute__ ((unused)), void * data)
-{
- newtComponent * entries = data;
- char * strings[50], ** ptr;
-
- if (!callback_real_function)
- return;
-
- ptr = strings;
- while (entries && *entries) {
- *ptr = newtEntryGetValue(*entries);
- entries++;
- ptr++;
- }
-
- callback_real_function(strings);
-
- ptr = strings;
- entries = data;
- while (entries && *entries) {
- newtEntrySet(*entries, strdup(*ptr), 1);
- entries++;
- ptr++;
- }
-}
-
-/* only supports up to 50 buttons and entries -- shucks! */
-static int mynewtWinEntries(char * title, char * text, int suggestedWidth, int flexDown,
- int flexUp, int dataWidth, void (*callback_func)(char ** strings),
- struct newtWinEntry * items, char * button1, ...) {
- newtComponent buttons[50], result, form, textw;
- newtGrid grid, buttonBar, subgrid;
- int numItems;
- int rc, i;
- int numButtons;
- char * buttonName;
- newtComponent entries[50];
-
- 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);
- }
-
- if (callback_func) {
- callback_real_function = callback_func;
- entries[numItems] = NULL;
- }
- else
- callback_real_function = NULL;
-
- subgrid = newtCreateGrid(2, numItems);
- 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);
-
- 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,
- entr,
- 1, 0, 0, 0, 0, 0);
- if (callback_func) {
- entries[i] = entr;
- newtComponentAddCallback(entr, default_callback, entries);
- }
- }
-
-
- 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;
-}
-
-
-enum return_type ask_from_entries(char *msg, char ** questions, char *** answers, int entry_size, void (*callback_func)(char ** strings))
-{
- struct newtWinEntry entries[50];
- int j, i = 0;
- int rc;
- char ** already_answers = NULL;
-
- while (questions && *questions) {
- entries[i].text = *questions;
- entries[i].flags = NEWT_FLAG_SCROLL | (!strcmp(*questions, "Password") ? NEWT_FLAG_PASSWORD : 0);
- i++;
- questions++;
- }
- entries[i].text = NULL;
- entries[i].value = NULL;
-
- if (*answers == NULL)
- *answers = (char **) malloc(sizeof(char *) * i);
- else
- already_answers = *answers;
-
- for (j = 0 ; j < i ; j++) {
- entries[j].value = &((*answers)[j]);
- if (already_answers && *already_answers) {
- *(entries[j].value) = *already_answers;
- already_answers++;
- } else
- *(entries[j].value) = NULL;
- }
-
- rc = mynewtWinEntries("Please fill in entries...", msg, 52, 5, 5, entry_size, callback_func, entries, "Ok", "Cancel", NULL);
-
- if (rc == 3)
- return RETURN_BACK;
- if (rc != 1)
- return RETURN_ERROR;
-
- return RETURN_OK;
-}
-
-
-void suspend_to_console(void) { newtSuspend(); }
-void resume_from_suspend(void) { newtResume(); }
diff --git a/mdk-stage1/newt/Makefile b/mdk-stage1/newt/Makefile
deleted file mode 100644
index 171bcf0cb..000000000
--- a/mdk-stage1/newt/Makefile
+++ /dev/null
@@ -1,56 +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
-
-ifeq (DIETLIBC, $(L))
-TARGETS += $(LIBNAME)-DIET.a
-endif
-
-all: $(TARGETS)
-
-clean:
- rm -f *.o *.a
-
-OBJS-DIET = $(subst .o,-DIET.o,$(OBJS))
-
-$(LIBNAME).a: $(OBJS)
- ar -cru $@ $^
- ranlib $@
-
-$(LIBNAME)-DIET.a: $(OBJS-DIET)
- ar -cru $@ $^
- ranlib $@
-
-$(OBJS): %.o: %.c
- gcc $(CFLAGS) $(DEFS) $(INCS) $(GLIBC_INCLUDES) -c $< -o $@
-
-$(OBJS-DIET): %-DIET.o: %.c
- gcc $(CFLAGS) $(DEFS) $(INCS) $(DIETLIBC_INCLUDES) -c $< -o $@
-
diff --git a/mdk-stage1/newt/button.c b/mdk-stage1/newt/button.c
deleted file mode 100644
index 1ff360dc5..000000000
--- a/mdk-stage1/newt/button.c
+++ /dev/null
@@ -1,190 +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;
-
- 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 eee514c98..000000000
--- a/mdk-stage1/newt/checkbox.c
+++ /dev/null
@@ -1,290 +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;
-
- 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 1b33f1c6f..000000000
--- a/mdk-stage1/newt/entry.c
+++ /dev/null
@@ -1,376 +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;
-
- 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 4ad465e38..000000000
--- a/mdk-stage1/newt/form.c
+++ /dev/null
@@ -1,712 +0,0 @@
-#include <unistd.h>
-#include <slang.h>
-#include <stdarg.h>
-#include <stdlib.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 d6cb3cd96..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 */
- 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(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(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/nfsmount.c b/mdk-stage1/nfsmount.c
deleted file mode 100644
index 032fde60c..000000000
--- a/mdk-stage1/nfsmount.c
+++ /dev/null
@@ -1,294 +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.
- *
- */
-
-/* this is based on work from redhat, made it lighter (gc)
- */
-
-
-/* MODIFIED for Red Hat Linux installer
- * msw@redhat.com
- * o always mounts without lockd
- * o uses our own host resolution
- */
-
-/*
- * 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.
- */
-
-/*
- * nfsmount.c,v 1.1.1.1 1993/11/18 08:40:51 jrs Exp
- */
-
-#include <unistd.h>
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <netdb.h>
-#include <sys/mount.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 <arpa/inet.h>
-#include "linux-2.2/nfs.h"
-#include "linux-2.2/nfs_mount.h" //#include "mount_constants.h"
-
-#include "log.h"
-#include "dns.h"
-
-#include "nfsmount.h"
-
-
-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);
-}
-
-bool_t
-xdr_dirpath(XDR *xdrs, dirpath *objp)
-{
-
- if (!xdr_string(xdrs, objp, MNTPATHLEN)) {
- return (FALSE);
- }
- return (TRUE);
-}
-
-
-static int nfs_mount_version = 3; /* kernel >= 2.1.32 */ /* *********** TODO for kernel 2.4, nfs-mount version 4 */
-
-
-int nfsmount_prepare(const char *spec, int *flags, char **mount_opts)
-{
- char hostdir[1024];
- CLIENT *mclient;
- char *hostname, *dirname;
- fhandle root_fhandle;
- struct timeval total_timeout;
- enum clnt_stat clnt_stat;
- static struct nfs_mount_data data;
- struct sockaddr_in server_addr;
- struct sockaddr_in mount_server_addr;
- int msock, fsock;
- struct timeval retry_timeout;
- struct fhstatus status;
- char *s;
- int port;
-
- msock = fsock = -1;
- mclient = NULL;
-
- strncpy(hostdir, spec, sizeof(hostdir));
- if ((s = (strchr(hostdir, ':')))) {
- hostname = hostdir;
- dirname = s + 1;
- *s = '\0';
- } else {
- log_message("nfsmount: format not host:dir");
- goto fail;
- }
-
- server_addr.sin_family = AF_INET;
-
- /* first, try as IP address */
- if (!inet_aton(hostname, &server_addr.sin_addr)) {
- /* failure, try as machine name */
- if (mygethostbyname(hostname, &server_addr.sin_addr))
- goto fail;
- }
-
- memcpy (&mount_server_addr, &server_addr, sizeof (mount_server_addr));
-
-
-
- /* Set default options.
- * timeo is filled in after we know whether it'll be TCP or UDP. */
- memset(&data, 0, sizeof(data));
- data.retrans = 3;
- data.acregmin = 3;
- data.acregmax = 60;
- data.acdirmin = 30;
- data.acdirmax = 60;
- data.rsize = 8192;
- data.wsize = 8192;
- data.bsize = 8192;
-#if NFS_MOUNT_VERSION >= 2
- data.namlen = NAME_MAX;
-#endif
-
-#if NFS_MOUNT_VERSION >= 3
- if (nfs_mount_version >= 3)
- data.flags |= NFS_MOUNT_NONLM; /* HACK HACK msw */
-#endif
-
- /* Adjust options if none specified */
- if (!data.timeo)
- data.timeo = 7; /* udp */
-
-
- data.version = nfs_mount_version;
- *mount_opts = (char *) &data;
-
- if (*flags & MS_REMOUNT)
- return 0;
-
-
- retry_timeout.tv_sec = 3;
- retry_timeout.tv_usec = 0;
- total_timeout.tv_sec = 20;
- total_timeout.tv_usec = 0;
-
-
- /* contact the mount daemon via TCP */
- mount_server_addr.sin_port = htons(0);
- msock = RPC_ANYSOCK;
- mclient = clnttcp_create(&mount_server_addr, MOUNTPROG, MOUNTVERS, &msock, 0, 0);
-
- /* if this fails, contact the mount daemon via UDP */
- if (!mclient) {
- mount_server_addr.sin_port = htons(0);
- msock = RPC_ANYSOCK;
- mclient = clntudp_create(&mount_server_addr, MOUNTPROG, MOUNTVERS, retry_timeout, &msock);
- }
- if (mclient) {
- /* try to mount hostname:dirname */
- mclient->cl_auth = authunix_create_default();
- 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) {
- if (errno != ECONNREFUSED) {
- log_message(clnt_sperror(mclient, "mount"));
- goto fail; /* don't retry */
- }
- log_message(clnt_sperror(mclient, "mount"));
- auth_destroy(mclient->cl_auth);
- clnt_destroy(mclient);
- mclient = 0;
- close(msock);
- }
- } else
- goto fail;
-
- if (status.fhs_status != 0) {
- if (status.fhs_status == 2)
- log_message("NFS server says: No such file or directory");
- else if (status.fhs_status == 13)
- log_message("NFS server says: Permission denied");
- else
- log_message("nfsmount prepare failed, reason given by server: %d", status.fhs_status);
- goto fail;
- }
-
- memcpy((char *) &root_fhandle, (char *) status.fhstatus_u.fhs_fhandle, sizeof (root_fhandle));
-
- /* create nfs socket for kernel */
-
- 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;
- }
- server_addr.sin_port = PMAPPORT;
- port = pmap_getport(&server_addr, NFS_PROGRAM, NFS_VERSION, IPPROTO_UDP);
- if (port == 0)
- port = NFS_PORT;
-#ifdef NFS_MOUNT_DEBUG
- else
- log_message("used portmapper to find NFS port\n");
- log_message("using port %d for nfs deamon\n", port);
-#endif
- server_addr.sin_port = htons(port);
-
- /* prepare data structure for kernel */
-
- data.fd = fsock;
- memcpy((char *) &data.root, (char *) &root_fhandle, sizeof (root_fhandle));
- 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 -1;
-}
-
diff --git a/mdk-stage1/nfsmount.h b/mdk-stage1/nfsmount.h
deleted file mode 100644
index 12ffa69a6..000000000
--- a/mdk-stage1/nfsmount.h
+++ /dev/null
@@ -1,328 +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, int *flags, char **mount_opts);
-
-
-/*
- * 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
-#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 */
-
-
-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;
-#ifdef __cplusplus
-extern "C" bool_t xdr_ppathcnf(XDR *, ppathcnf*);
-#elif __STDC__
-extern bool_t xdr_ppathcnf(XDR *, ppathcnf*);
-#else /* Old Style C */
-bool_t xdr_ppathcnf();
-#endif /* Old Style C */
-
-#endif /*!_rpcsvc_mount_h*/
-
-#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 */
-#define MOUNTVERS_POSIX ((u_long)2)
-
-#ifdef __cplusplus
-extern "C" void * mountproc_null_2(void *, CLIENT *);
-extern "C" void * mountproc_null_2_svc(void *, struct svc_req *);
-extern "C" fhstatus * mountproc_mnt_2(dirpath *, CLIENT *);
-extern "C" fhstatus * mountproc_mnt_2_svc(dirpath *, struct svc_req *);
-extern "C" mountlist * mountproc_dump_2(void *, CLIENT *);
-extern "C" mountlist * mountproc_dump_2_svc(void *, struct svc_req *);
-extern "C" void * mountproc_umnt_2(dirpath *, CLIENT *);
-extern "C" void * mountproc_umnt_2_svc(dirpath *, struct svc_req *);
-extern "C" void * mountproc_umntall_2(void *, CLIENT *);
-extern "C" void * mountproc_umntall_2_svc(void *, struct svc_req *);
-extern "C" exports * mountproc_export_2(void *, CLIENT *);
-extern "C" exports * mountproc_export_2_svc(void *, struct svc_req *);
-extern "C" exports * mountproc_exportall_2(void *, CLIENT *);
-extern "C" exports * mountproc_exportall_2_svc(void *, struct svc_req *);
-#define MOUNTPROC_PATHCONF ((u_long)7)
-extern "C" ppathcnf * mountproc_pathconf_2(dirpath *, CLIENT *);
-extern "C" ppathcnf * mountproc_pathconf_2_svc(dirpath *, struct svc_req *);
-
-#elif __STDC__
-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 ((u_long)7)
-extern ppathcnf * mountproc_pathconf_2(dirpath *, CLIENT *);
-extern ppathcnf * mountproc_pathconf_2_svc(dirpath *, struct svc_req *);
-
-#else /* Old Style 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 ((u_long)7)
-extern ppathcnf * mountproc_pathconf_2();
-extern ppathcnf * mountproc_pathconf_2_svc();
-#endif /* Old Style C */
-
-#endif /* !_NFSMOUNT_H_RPCGEN */
diff --git a/mdk-stage1/pci-resource/.cvsignore b/mdk-stage1/pci-resource/.cvsignore
deleted file mode 100644
index 4c7b0844b..000000000
--- a/mdk-stage1/pci-resource/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-pci-ids.h
diff --git a/mdk-stage1/pci-resource/Makefile b/mdk-stage1/pci-resource/Makefile
deleted file mode 100644
index 046ab29dd..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 update-pci-ids.pl
- perl update-pci-ids.pl > $@ || { rm -f $@; exit 1; }
-
-clean:
- rm -f pci-ids.h
diff --git a/mdk-stage1/pci-resource/update-pci-ids.pl b/mdk-stage1/pci-resource/update-pci-ids.pl
deleted file mode 100755
index 73f1d151b..000000000
--- a/mdk-stage1/pci-resource/update-pci-ids.pl
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-use MDK::Common;
-
-require '/usr/bin/merge2pcitable.pl';
-my $pci = read_pcitable("/usr/share/ldetect-lst/pcitable");
-
-print '
-#define PCI_REVISION_ID 0x08 /* Revision ID */
-
-struct pci_module_map {
- unsigned short vendor; /* PCI vendor id */
- unsigned short device; /* PCI device id */
- const char *name; /* PCI human readable name */
- const char *module; /* module to load */
-};
-
-';
-
-my %t = (
- network => 'network/main',
- medias => 'disk/scsi|hardware_raid',
-);
-
-foreach my $type (keys %t) {
- my @modules = chomp_(`perl ../../kernel/modules.pl pci_modules4stage1:"$t{$type}"`);
-
- print "#ifndef DISABLE_".uc($type)."
-struct pci_module_map ${type}_pci_ids[] = {
-";
-
- foreach my $k (sort keys %$pci) {
- my $v = $pci->{$k};
- member($v->[0], @modules) or next;
- $k =~ /^(....)(....)/;
- printf qq|\t{ 0x%s, 0x%s, "%s", "%s" },\n|,
- $1, $2, $v->[1], $v->[0];
- }
-
- print "};
-int ${type}_num_ids = sizeof(${type}_pci_ids) / sizeof(struct pci_module_map);
-#endif
-
-";
-}
diff --git a/mdk-stage1/pcmcia_/Makefile b/mdk-stage1/pcmcia_/Makefile
deleted file mode 100644
index bb3b0257e..000000000
--- a/mdk-stage1/pcmcia_/Makefile
+++ /dev/null
@@ -1,48 +0,0 @@
- #******************************************************************************
- #
- # Guillaume Cottenceau (gc@mandrakesoft.com)
- #
- # Copyright 2001 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
-
-
-all: libpcmcia.a libpcmcia-DIET.a
-
-clean:
- rm -f *.o libpcmcia.a
-
-FLAGS = -D__linux__ -Wall -Werror -Os -fomit-frame-pointer -pipe -c -I..
-
-
-OBJS = probe.o cardmgr.o lex_config.o yacc_config.o
-
-OBJS-DIET = $(subst .o,-DIET.o,$(OBJS))
-
-
-libpcmcia.a: $(OBJS)
- ar -cru $@ $^
- ranlib $@
-
-libpcmcia-DIET.a: $(OBJS-DIET)
- ar -cru $@ $^
- ranlib $@
-
-
-$(OBJS): %.o: %.c
- gcc $(FLAGS) $(GLIBC_INCLUDES) -c $< -o $@
-
-$(OBJS-DIET): %-DIET.o: %.c
- gcc $(FLAGS) $(DIETLIBC_INCLUDES) -c $< -o $@
-
diff --git a/mdk-stage1/pcmcia_/bulkmem.h b/mdk-stage1/pcmcia_/bulkmem.h
deleted file mode 100644
index 7748d4432..000000000
--- a/mdk-stage1/pcmcia_/bulkmem.h
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- * Definitions for bulk memory services
- *
- * bulkmem.h 1.13 2001/08/24 12:16:12
- *
- * The contents of this file are subject to the Mozilla Public License
- * Version 1.1 (the "License"); you may not use this file except in
- * compliance with the License. You may obtain a copy of the License
- * at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS"
- * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
- * the License for the specific language governing rights and
- * limitations under the License.
- *
- * The initial developer of the original code is David A. Hinds
- * <dahinds@users.sourceforge.net>. Portions created by David A. Hinds
- * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
- *
- * Alternatively, the contents of this file may be used under the
- * terms of the GNU General Public License version 2 (the "GPL"), in
- * which case the provisions of the GPL are applicable instead of the
- * above. If you wish to allow the use of your version of this file
- * only under the terms of the GPL and not to allow others to use
- * your version of this file under the MPL, indicate your decision by
- * deleting the provisions above and replace them with the notice and
- * other provisions required by the GPL. If you do not delete the
- * provisions above, a recipient may use your version of this file
- * under either the MPL or the GPL.
- * bulkmem.h 1.3 1995/05/27 04:49:49
- */
-
-#ifndef _LINUX_BULKMEM_H
-#define _LINUX_BULKMEM_H
-
-/* For GetFirstRegion and GetNextRegion */
-typedef struct region_info_t {
- u_int Attributes;
- u_int CardOffset;
- u_int RegionSize;
- u_int AccessSpeed;
- u_int BlockSize;
- u_int PartMultiple;
- u_char JedecMfr, JedecInfo;
- memory_handle_t next;
-} region_info_t;
-
-#define REGION_TYPE 0x0001
-#define REGION_TYPE_CM 0x0000
-#define REGION_TYPE_AM 0x0001
-#define REGION_PREFETCH 0x0008
-#define REGION_CACHEABLE 0x0010
-#define REGION_BAR_MASK 0xe000
-#define REGION_BAR_SHIFT 13
-
-/* For OpenMemory */
-typedef struct open_mem_t {
- u_int Attributes;
- u_int Offset;
-} open_mem_t;
-
-/* Attributes for OpenMemory */
-#define MEMORY_TYPE 0x0001
-#define MEMORY_TYPE_CM 0x0000
-#define MEMORY_TYPE_AM 0x0001
-#define MEMORY_EXCLUSIVE 0x0002
-#define MEMORY_PREFETCH 0x0008
-#define MEMORY_CACHEABLE 0x0010
-#define MEMORY_BAR_MASK 0xe000
-#define MEMORY_BAR_SHIFT 13
-
-typedef struct eraseq_entry_t {
- memory_handle_t Handle;
- u_char State;
- u_int Size;
- u_int Offset;
- void *Optional;
-} eraseq_entry_t;
-
-typedef struct eraseq_hdr_t {
- int QueueEntryCnt;
- eraseq_entry_t *QueueEntryArray;
-} eraseq_hdr_t;
-
-#define ERASE_QUEUED 0x00
-#define ERASE_IN_PROGRESS(n) (((n) > 0) && ((n) < 0x80))
-#define ERASE_IDLE 0xff
-#define ERASE_PASSED 0xe0
-#define ERASE_FAILED 0xe1
-
-#define ERASE_MISSING 0x80
-#define ERASE_MEDIA_WRPROT 0x84
-#define ERASE_NOT_ERASABLE 0x85
-#define ERASE_BAD_OFFSET 0xc1
-#define ERASE_BAD_TECH 0xc2
-#define ERASE_BAD_SOCKET 0xc3
-#define ERASE_BAD_VCC 0xc4
-#define ERASE_BAD_VPP 0xc5
-#define ERASE_BAD_SIZE 0xc6
-
-/* For CopyMemory */
-typedef struct copy_op_t {
- u_int Attributes;
- u_int SourceOffset;
- u_int DestOffset;
- u_int Count;
-} copy_op_t;
-
-/* For ReadMemory and WriteMemory */
-typedef struct mem_op_t {
- u_int Attributes;
- u_int Offset;
- u_int Count;
-} mem_op_t;
-
-#define MEM_OP_BUFFER 0x01
-#define MEM_OP_BUFFER_USER 0x00
-#define MEM_OP_BUFFER_KERNEL 0x01
-#define MEM_OP_DISABLE_ERASE 0x02
-#define MEM_OP_VERIFY 0x04
-
-/* For RegisterMTD */
-typedef struct mtd_reg_t {
- u_int Attributes;
- u_int Offset;
- u_long MediaID;
-} mtd_reg_t;
-
-/*
- * Definitions for MTD requests
- */
-
-typedef struct mtd_request_t {
- u_int SrcCardOffset;
- u_int DestCardOffset;
- u_int TransferLength;
- u_int Function;
- u_long MediaID;
- u_int Status;
- u_int Timeout;
-} mtd_request_t;
-
-/* Fields in MTD Function */
-#define MTD_REQ_ACTION 0x003
-#define MTD_REQ_ERASE 0x000
-#define MTD_REQ_READ 0x001
-#define MTD_REQ_WRITE 0x002
-#define MTD_REQ_COPY 0x003
-#define MTD_REQ_NOERASE 0x004
-#define MTD_REQ_VERIFY 0x008
-#define MTD_REQ_READY 0x010
-#define MTD_REQ_TIMEOUT 0x020
-#define MTD_REQ_LAST 0x040
-#define MTD_REQ_FIRST 0x080
-#define MTD_REQ_KERNEL 0x100
-
-/* Status codes */
-#define MTD_WAITREQ 0x00
-#define MTD_WAITTIMER 0x01
-#define MTD_WAITRDY 0x02
-#define MTD_WAITPOWER 0x03
-
-/*
- * Definitions for MTD helper functions
- */
-
-/* For MTDModifyWindow */
-typedef struct mtd_mod_win_t {
- u_int Attributes;
- u_int AccessSpeed;
- u_int CardOffset;
-} mtd_mod_win_t;
-
-/* For MTDSetVpp */
-typedef struct mtd_vpp_req_t {
- u_char Vpp1, Vpp2;
-} mtd_vpp_req_t;
-
-/* For MTDRDYMask */
-typedef struct mtd_rdy_req_t {
- u_int Mask;
-} mtd_rdy_req_t;
-
-enum mtd_helper {
- MTDRequestWindow, MTDModifyWindow, MTDReleaseWindow,
- MTDSetVpp, MTDRDYMask
-};
-
-#ifdef IN_CARD_SERVICES
-extern int MTDHelperEntry(int func, void *a1, void *a2);
-#else
-extern int MTDHelperEntry(int func, ...);
-#endif
-
-#endif /* _LINUX_BULKMEM_H */
diff --git a/mdk-stage1/pcmcia_/cardmgr.c b/mdk-stage1/pcmcia_/cardmgr.c
deleted file mode 100644
index 1db18b55b..000000000
--- a/mdk-stage1/pcmcia_/cardmgr.c
+++ /dev/null
@@ -1,1652 +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.
- *
- *
- * Code comes from /anonymous@projects.sourceforge.net:/pub/pcmcia-cs/pcmcia-cs-3.1.29.tar.bz2
- *
- * Licence of this code follows:
- *
- */
-/*======================================================================
-
- PCMCIA Card Manager daemon
-
- cardmgr.c 1.161 2001/08/24 12:19:19
-
- The contents of this file are subject to the Mozilla Public
- License Version 1.1 (the "License"); you may not use this file
- except in compliance with the License. You may obtain a copy of
- the License at http://www.mozilla.org/MPL/
-
- Software distributed under the License is distributed on an "AS
- IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
- implied. See the License for the specific language governing
- rights and limitations under the License.
-
- The initial developer of the original code is David A. Hinds
- <dahinds@users.sourceforge.net>. Portions created by David A. Hinds
- are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
-
- Alternatively, the contents of this file may be used under the
- terms of the GNU General Public License version 2 (the "GPL"), in
- which case the provisions of the GPL are applicable instead of the
- above. If you wish to allow the use of your version of this file
- only under the terms of the GPL and not to allow others to use
- your version of this file under the MPL, indicate your decision
- by deleting the provisions above and replace them with the notice
- and other provisions required by the GPL. If you do not delete
- the provisions above, a recipient may use your version of this
- file under either the MPL or the GPL.
-
-======================================================================*/
-
-#ifndef __linux__
-#include <pcmcia/u_compat.h>
-#endif
-
-#include <sys/types.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <errno.h>
-//mdk-stage1// #include <syslog.h>
-//mdk-stage1// #include <getopt.h>
-#include <signal.h>
-#include <sys/time.h>
-#include <sys/ioctl.h>
-#include <sys/wait.h>
-#include <sys/stat.h>
-#include <sys/utsname.h>
-#include <sys/file.h>
-
-#include <pcmcia_/version.h>
-//mdk-stage1// #include <pcmcia/config.h>
-#include <pcmcia_/cs_types.h>
-#include <pcmcia_/cs.h>
-#include <pcmcia_/cistpl.h>
-#include <pcmcia_/ds.h>
-
-#include "cardmgr.h"
-
-#include "../log.h"
-#include "modules.h"
-#include "pcmcia.h"
-
-/*====================================================================*/
-
-typedef struct socket_info_t {
- int fd;
- int state;
- card_info_t *card;
- bind_info_t *bind[MAX_BINDINGS];
- mtd_ident_t *mtd[2*CISTPL_MAX_DEVICES];
-} socket_info_t;
-
-#define SOCKET_PRESENT 0x01
-#define SOCKET_READY 0x02
-#define SOCKET_HOTPLUG 0x04
-
-/* Linked list of resource adjustments */
-struct adjust_list_t *root_adjust = NULL;
-
-/* Linked list of device definitions */
-struct device_info_t *root_device = NULL;
-
-/* Special pointer to "anonymous" card definition */
-struct card_info_t *blank_card = NULL;
-
-/* Linked list of card definitions */
-struct card_info_t *root_card = NULL;
-
-/* Linked list of function definitions */
-struct card_info_t *root_func = NULL;
-
-/* Linked list of MTD definitions */
-struct mtd_ident_t *root_mtd = NULL;
-
-/* Default MTD */
-struct mtd_ident_t *default_mtd = NULL;
-
-static int sockets;
-static struct socket_info_t socket[MAX_SOCKS];
-
-/* Default path for config file, device scripts */
-#ifdef ETC
-static char *configpath = ETC;
-#else
-static char *configpath = "/etc/pcmcia";
-#endif
-
-/* Default path for pid file */
-//mdk-stage1// static char *pidfile = "/var/run/cardmgr.pid";
-
-#ifdef __linux__
-/* Default path for finding modules */
-//mdk-stage1// static char *modpath = NULL;
-#endif
-
-/* Default path for socket info table */
-static char *stabfile;
-
-/* If set, don't generate beeps when cards are inserted */
-//mdk-stage1// static int be_quiet = 0;
-
-/* If set, use modprobe instead of insmod */
-//mdk-stage1// static int do_modprobe = 0;
-
-/* If set, configure already inserted cards, then exit */
-//mdk-stage1// static int one_pass = 0;
-
-/* Extra message logging? */
-//mdk-stage1// static int verbose = 0;
-
-/*====================================================================*/
-
-#ifdef __linux__
-
-static int major = 0;
-
-static int lookup_dev(char *name)
-{
- FILE *f;
- int n;
- char s[32], t[32];
-
- f = fopen("/proc/devices", "r");
- if (f == NULL)
- return -errno;
- while (fgets(s, 32, f) != NULL) {
- if (sscanf(s, "%d %s", &n, t) == 2)
- if (strcmp(name, t) == 0)
- break;
- }
- fclose(f);
- if (strcmp(name, t) == 0)
- return n;
- else
- return -ENODEV;
-}
-
-int open_dev(dev_t dev, int mode)
-{
- char * fn = "/tmp/cardmgr_tmp";
- int fd;
-
- unlink(fn);
- if (mknod(fn, mode, dev) != 0)
- return -1;
- fd = open(fn, (mode&S_IWRITE)?O_RDWR:O_RDONLY);
- if (fd < 0)
- fd = open(fn, O_NONBLOCK|((mode&S_IWRITE)?O_RDWR:O_RDONLY));
- unlink(fn);
- return fd;
-}
-
-#endif /* __linux__ */
-
-int open_sock(int sock, int mode)
-{
-#ifdef __linux__
- dev_t dev = (major<<8)+sock;
- return open_dev(dev, mode);
-#endif
-#ifdef __BEOS__
- int fd;
- char fn[B_OS_NAME_LENGTH];
- sprintf(fn, "/dev/pcmcia/sock%d", sock);
- return open(fn, (mode & S_IWRITE) ? O_RDWR: O_RDONLY);
-#endif
-}
-
-/*======================================================================
-
- xlate_scsi_name() is a sort-of-hack used to deduce the minor
- device numbers of SCSI devices, from the information available to
- the low-level driver.
-
-======================================================================*/
-
-#ifdef __linux__
-
-#include <linux/major.h>
-#include <scsi/scsi.h>
-//mdk-stage1// #define VERSION(v,p,s) (((v)<<16)+(p<<8)+s)
-//mdk-stage1// #if (LINUX_VERSION_CODE < VERSION(2,1,126))
-//mdk-stage1// #define SCSI_DISK0_MAJOR SCSI_DISK_MAJOR
-//mdk-stage1// #endif
-
-static int xlate_scsi_name(bind_info_t *bind)
-{
- int i, fd, mode, minor;
- u_long arg[2], id1, id2;
-
- id1 = strtol(bind->name+3, NULL, 16);
- if ((bind->major == SCSI_DISK0_MAJOR) ||
- (bind->major == SCSI_CDROM_MAJOR))
- mode = S_IREAD|S_IFBLK;
- else
- mode = S_IREAD|S_IFCHR;
-
- for (i = 0; i < 16; i++) {
- minor = (bind->major == SCSI_DISK0_MAJOR) ? (i<<4) : i;
- fd = open_dev((bind->major<<8)+minor, mode);
- if (fd < 0)
- continue;
- if (ioctl(fd, SCSI_IOCTL_GET_IDLUN, arg) == 0) {
- id2 = (arg[0]&0x0f) + ((arg[0]>>4)&0xf0) +
- ((arg[0]>>8)&0xf00) + ((arg[0]>>12)&0xf000);
- if (id1 == id2) {
- close(fd);
- switch (bind->major) {
- case SCSI_DISK0_MAJOR:
- case SCSI_GENERIC_MAJOR:
- sprintf(bind->name+2, "%c", 'a'+i); break;
- case SCSI_CDROM_MAJOR:
- sprintf(bind->name, "scd%d", i); break;
- case SCSI_TAPE_MAJOR:
- sprintf(bind->name+2, "%d", i); break;
- }
- bind->minor = minor;
- return 0;
- }
- }
- close(fd);
- }
- return -1;
-}
-#endif
-
-/*====================================================================*/
-
-#define BEEP_TIME 150
-#define BEEP_OK 1000
-#define BEEP_WARN 2000
-#define BEEP_ERR 4000
-
-#ifdef __linux__
-
-//mdk-stage1// #include <sys/kd.h>
-//mdk-stage1//
-static void beep(unsigned int ms, unsigned int freq)
-{
-//mdk-stage1// int fd, arg;
-//mdk-stage1//
-//mdk-stage1// if (be_quiet)
-//mdk-stage1// return;
-//mdk-stage1// fd = open("/dev/console", O_RDWR);
-//mdk-stage1// if (fd < 0)
-//mdk-stage1// return;
-//mdk-stage1// arg = (ms << 16) | freq;
-//mdk-stage1// ioctl(fd, KDMKTONE, arg);
-//mdk-stage1// close(fd);
-//mdk-stage1// usleep(ms*1000);
-}
-
-#endif /* __linux__ */
-
-#ifdef __BEOS__
-static void beep(unsigned int ms, unsigned int freq)
-{
- if (!be_quiet) system("/bin/beep");
-}
-#endif
-
-/*====================================================================*/
-
-//mdk-stage1// static void write_pid(void)
-//mdk-stage1// {
-//mdk-stage1// FILE *f;
-//mdk-stage1// f = fopen(pidfile, "w");
-//mdk-stage1// if (f == NULL)
-//mdk-stage1// syslog(LOG_WARNING, "could not open %s: %m", pidfile);
-//mdk-stage1// else {
-//mdk-stage1// fprintf(f, "%d\n", getpid());
-//mdk-stage1// fclose(f);
-//mdk-stage1// }
-//mdk-stage1// }
-
-static void write_stab(void)
-{
- int i, j, k;
- FILE *f;
- socket_info_t *s;
- bind_info_t *bind;
-
- f = fopen(stabfile, "w");
- if (f == NULL) {
- log_message("CM: fopen(stabfile) failed: %m");
- return;
- }
-#ifndef __BEOS__
- if (flock(fileno(f), LOCK_EX) != 0) {
- log_message("CM: flock(stabfile) failed: %m");
- return;
- }
-#endif
- for (i = 0; i < sockets; i++) {
- s = &socket[i];
- fprintf(f, "Socket %d: ", i);
- if (!(s->state & SOCKET_PRESENT)) {
- fprintf(f, "empty\n");
-//mdk-stage1// } else if (s->state & SOCKET_HOTPLUG) {
-//mdk-stage1// fprintf(f, "CardBus hotplug device\n");
- } else if (!s->card) {
- fprintf(f, "unsupported card\n");
- } else {
- fprintf(f, "%s\n", s->card->name);
- for (j = 0; j < s->card->bindings; j++)
- for (k = 0, bind = s->bind[j];
- bind != NULL;
- k++, bind = bind->next) {
- char *class = s->card->device[j]->class;
- fprintf(f, "%d\t%s\t%s\t%d\t%s",
- i, (class ? class : "none"),
- bind->dev_info, k, bind->name);
- if (bind->major)
- fprintf(f, "\t%d\t%d\n",
- bind->major, bind->minor);
- else
- fputc('\n', f);
- }
- }
- }
- fflush(f);
-#ifndef __BEOS__
- flock(fileno(f), LOCK_UN);
-#endif
- fclose(f);
-}
-
-/*====================================================================*/
-
-static int get_tuple(int ns, cisdata_t code, ds_ioctl_arg_t *arg)
-{
- socket_info_t *s = &socket[ns];
-
- arg->tuple.DesiredTuple = code;
- arg->tuple.Attributes = 0;
- if (ioctl(s->fd, DS_GET_FIRST_TUPLE, arg) != 0)
- return -1;
- arg->tuple.TupleOffset = 0;
- if (ioctl(s->fd, DS_GET_TUPLE_DATA, arg) != 0) {
- log_message("CM: error reading CIS data on socket %d: %m", ns);
- return -1;
- }
- if (ioctl(s->fd, DS_PARSE_TUPLE, arg) != 0) {
- log_message("CM: error parsing CIS on socket %d: %m", ns);
- return -1;
- }
- return 0;
-}
-
-/*======================================================================
-
- Code to fetch a 2.4 kernel's hot plug PCI driver list
-
- This is distasteful but is the best I could come up with.
-
-======================================================================*/
-
-#ifdef __linux__
-
-typedef struct pci_id {
- u_short vendor, device;
- struct pci_id *next;
-} pci_id_t;
-
-static int get_pci_id(int ns, pci_id_t *id)
-{
- socket_info_t *s = &socket[ns];
- config_info_t config;
-
- config.Function = config.ConfigBase = 0;
- if ((ioctl(s->fd, DS_GET_CONFIGURATION_INFO, &config) != 0) ||
- (config.IntType != INT_CARDBUS) || !config.ConfigBase)
- return 0;
- id->vendor = config.ConfigBase & 0xffff;
- id->device = config.ConfigBase >> 16;
- return 1;
-}
-
-#endif /* __linux__ */
-
-/*====================================================================*/
-
-//mdk-stage1// static void log_card_info(cistpl_vers_1_t *vers,
-//mdk-stage1// cistpl_manfid_t *manfid,
-//mdk-stage1// cistpl_funcid_t *funcid,
-//mdk-stage1// pci_id_t *pci_id)
-//mdk-stage1// {
-//mdk-stage1// char v[256] = "";
-//mdk-stage1// int i;
-//mdk-stage1// static char *fn[] = {
-//mdk-stage1// "multi", "memory", "serial", "parallel", "fixed disk",
-//mdk-stage1// "video", "network", "AIMS", "SCSI"
-//mdk-stage1// };
-//mdk-stage1//
-//mdk-stage1// if (vers) {
-//mdk-stage1// for (i = 0; i < vers->ns; i++)
-//mdk-stage1// sprintf(v+strlen(v), "%s\"%s\"",
-//mdk-stage1// (i>0) ? ", " : "", vers->str+vers->ofs[i]);
-//mdk-stage1// syslog(LOG_INFO, " product info: %s", v);
-//mdk-stage1// } else {
-//mdk-stage1// syslog(LOG_INFO, " no product info available");
-//mdk-stage1// }
-//mdk-stage1// *v = '\0';
-//mdk-stage1// if (manfid->manf != 0)
-//mdk-stage1// sprintf(v, " manfid: 0x%04x, 0x%04x",
-//mdk-stage1// manfid->manf, manfid->card);
-//mdk-stage1// if (funcid->func != 0xff)
-//mdk-stage1// sprintf(v+strlen(v), " function: %d (%s)", funcid->func,
-//mdk-stage1// fn[funcid->func]);
-//mdk-stage1// if (strlen(v) > 0) syslog(LOG_INFO, "%s", v);
-//mdk-stage1// if (pci_id->vendor != 0)
-//mdk-stage1// syslog(LOG_INFO, " PCI id: 0x%04x, 0x%04x",
-//mdk-stage1// pci_id->vendor, pci_id->device);
-//mdk-stage1// }
-
-static card_info_t *lookup_card(int ns)
-{
- socket_info_t *s = &socket[ns];
- card_info_t *card = NULL;
- ds_ioctl_arg_t arg;
- cistpl_vers_1_t *vers = NULL;
- cistpl_manfid_t manfid = { 0, 0 };
- pci_id_t pci_id = { 0, 0 };
- cistpl_funcid_t funcid = { 0xff, 0xff };
- cs_status_t status;
- int i, ret, has_cis = 0;
-
- /* Do we have a CIS structure? */
- ret = ioctl(s->fd, DS_VALIDATE_CIS, &arg);
- has_cis = ((ret == 0) && (arg.cisinfo.Chains > 0));
-
- /* Try to read VERS_1, MANFID tuples */
- if (has_cis) {
- /* rule of thumb: cards with no FUNCID, but with common memory
- device geometry information, are probably memory cards */
- if (get_tuple(ns, CISTPL_FUNCID, &arg) == 0)
- memcpy(&funcid, &arg.tuple_parse.parse.funcid,
- sizeof(funcid));
- else if (get_tuple(ns, CISTPL_DEVICE_GEO, &arg) == 0)
- funcid.func = CISTPL_FUNCID_MEMORY;
- if (get_tuple(ns, CISTPL_MANFID, &arg) == 0)
- memcpy(&manfid, &arg.tuple_parse.parse.manfid,
- sizeof(manfid));
- if (get_tuple(ns, CISTPL_VERS_1, &arg) == 0)
- vers = &arg.tuple_parse.parse.version_1;
-
- for (card = root_card; card; card = card->next) {
-
- if (card->ident_type &
- ~(VERS_1_IDENT|MANFID_IDENT|TUPLE_IDENT))
- continue;
-
- if (card->ident_type & VERS_1_IDENT) {
- if (vers == NULL)
- continue;
- for (i = 0; i < card->id.vers.ns; i++) {
- if (strcmp(card->id.vers.pi[i], "*") == 0)
- continue;
- if (i >= vers->ns)
- break;
- if (strcmp(card->id.vers.pi[i],
- vers->str+vers->ofs[i]) != 0)
- break;
- }
- if (i < card->id.vers.ns)
- continue;
- }
-
- if (card->ident_type & MANFID_IDENT) {
- if ((manfid.manf != card->manfid.manf) ||
- (manfid.card != card->manfid.card))
- continue;
- }
-
- if (card->ident_type & TUPLE_IDENT) {
- arg.tuple.DesiredTuple = card->id.tuple.code;
- arg.tuple.Attributes = 0;
- ret = ioctl(s->fd, DS_GET_FIRST_TUPLE, &arg);
- if (ret != 0) continue;
- arg.tuple.TupleOffset = card->id.tuple.ofs;
- ret = ioctl(s->fd, DS_GET_TUPLE_DATA, &arg);
- if (ret != 0) continue;
- if (strncmp((char *)arg.tuple_parse.data,
- card->id.tuple.info,
- strlen(card->id.tuple.info)) != 0)
- continue;
- }
-
- break; /* we have a match */
- }
- }
-
- /* Check PCI vendor/device info */
- status.Function = 0;
- ioctl(s->fd, DS_GET_STATUS, &status);
- if (status.CardState & CS_EVENT_CB_DETECT) {
- if (get_pci_id(ns, &pci_id)) {
- if (!card) {
- for (card = root_card; card; card = card->next)
- if ((card->ident_type == PCI_IDENT) &&
- (pci_id.vendor == card->manfid.manf) &&
- (pci_id.device == card->manfid.card))
- break;
- }
- } else {
- /* this is a 2.4 kernel; hotplug handles these cards */
-//mdk-stage1// s->state |= SOCKET_HOTPLUG;
- log_message("CM: socket %d: CardBus hotplug device", ns);
- //beep(BEEP_TIME, BEEP_OK);
-//mdk-stage1// return NULL;
- }
- }
-
- /* Try for a FUNCID match */
- if (!card && (funcid.func != 0xff)) {
- for (card = root_func; card; card = card->next)
- if (card->id.func.funcid == funcid.func)
- break;
- }
-
- if (card) {
- log_message("CM: socket %d: %s", ns, card->name);
- beep(BEEP_TIME, BEEP_OK);
-//mdk-stage1// if (verbose) log_card_info(vers, &manfid, &funcid, &pci_id);
- return card;
- }
-
- if (!blank_card || (status.CardState & CS_EVENT_CB_DETECT) ||
- manfid.manf || manfid.card || pci_id.vendor || vers) {
- log_message("CM: unsupported card in socket %d", ns);
-//mdk-stage1// if (one_pass) return NULL;
- beep(BEEP_TIME, BEEP_ERR);
-//mdk-stage1// log_card_info(vers, &manfid, &funcid, &pci_id);
- return NULL;
- } else {
- card = blank_card;
- log_message("CM: socket %d: %s", ns, card->name);
- beep(BEEP_TIME, BEEP_WARN);
- return card;
- }
-}
-
-/*====================================================================*/
-
-static int load_config(void)
-{
- if (chdir(configpath) != 0) {
- log_message("CM: chdir to %s failed: %m", configpath);
- return -1;
- }
- if (parse_configfile("config") != 0) {
- log_message("CM: parsing of config file failed: %m");
- return -1;
- }
- if (root_device == NULL)
- log_message("CM: no device drivers defined");
- if ((root_card == NULL) && (root_func == NULL))
- log_message("CM: no cards defined");
- return 0;
-}
-
-//mdk-stage1// /*====================================================================*/
-//mdk-stage1//
-//mdk-stage1// static void free_card(card_info_t *card)
-//mdk-stage1// {
-//mdk-stage1// if (card && (--card->refs == 0)) {
-//mdk-stage1// int i;
-//mdk-stage1// free(card->name);
-//mdk-stage1// switch(card->ident_type) {
-//mdk-stage1// case VERS_1_IDENT:
-//mdk-stage1// for (i = 0; i < card->id.vers.ns; i++)
-//mdk-stage1// free(card->id.vers.pi[i]);
-//mdk-stage1// break;
-//mdk-stage1// case TUPLE_IDENT:
-//mdk-stage1// free(card->id.tuple.info);
-//mdk-stage1// break;
-//mdk-stage1// default:
-//mdk-stage1// break;
-//mdk-stage1// }
-//mdk-stage1// free(card);
-//mdk-stage1// }
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// static void free_device(device_info_t *dev)
-//mdk-stage1// {
-//mdk-stage1// if (dev && (--dev->refs == 0)) {
-//mdk-stage1// int i;
-//mdk-stage1// for (i = 0; i < dev->modules; i++) {
-//mdk-stage1// free(dev->module[i]);
-//mdk-stage1// if (dev->opts[i]) free(dev->opts[i]);
-//mdk-stage1// }
-//mdk-stage1// if (dev->class) free(dev->class);
-//mdk-stage1// free(dev);
-//mdk-stage1// }
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// static void free_mtd(mtd_ident_t *mtd)
-//mdk-stage1// {
-//mdk-stage1// if (mtd && (--mtd->refs == 0)) {
-//mdk-stage1// free(mtd->name);
-//mdk-stage1// free(mtd->module);
-//mdk-stage1// free(mtd);
-//mdk-stage1// }
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// static void free_config(void)
-//mdk-stage1// {
-//mdk-stage1// while (root_adjust != NULL) {
-//mdk-stage1// adjust_list_t *adj = root_adjust;
-//mdk-stage1// root_adjust = root_adjust->next;
-//mdk-stage1// free(adj);
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// while (root_device != NULL) {
-//mdk-stage1// device_info_t *dev = root_device;
-//mdk-stage1// root_device = root_device->next;
-//mdk-stage1// free_device(dev);
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// while (root_card != NULL) {
-//mdk-stage1// card_info_t *card = root_card;
-//mdk-stage1// root_card = root_card->next;
-//mdk-stage1// free_card(card);
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// while (root_func != NULL) {
-//mdk-stage1// card_info_t *card = root_func;
-//mdk-stage1// root_func = root_func->next;
-//mdk-stage1// free_card(card);
-//mdk-stage1// }
-//mdk-stage1// blank_card = NULL;
-//mdk-stage1//
-//mdk-stage1// while (root_mtd != NULL) {
-//mdk-stage1// mtd_ident_t *mtd = root_mtd;
-//mdk-stage1// root_mtd = root_mtd->next;
-//mdk-stage1// free_mtd(mtd);
-//mdk-stage1// }
-//mdk-stage1// default_mtd = NULL;
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// /*====================================================================*/
-//mdk-stage1//
-//mdk-stage1// static int execute(char *msg, char *cmd)
-//mdk-stage1// {
-//mdk-stage1// int ret;
-//mdk-stage1// FILE *f;
-//mdk-stage1// char line[256];
-//mdk-stage1//
-//mdk-stage1// syslog(LOG_INFO, "executing: '%s'", cmd);
-//mdk-stage1// strcat(cmd, " 2>&1");
-//mdk-stage1// f = popen(cmd, "r");
-//mdk-stage1// while (fgets(line, 255, f)) {
-//mdk-stage1// line[strlen(line)-1] = '\0';
-//mdk-stage1// syslog(LOG_INFO, "+ %s", line);
-//mdk-stage1// }
-//mdk-stage1// ret = pclose(f);
-//mdk-stage1// if (WIFEXITED(ret)) {
-//mdk-stage1// if (WEXITSTATUS(ret))
-//mdk-stage1// syslog(LOG_INFO, "%s exited with status %d",
-//mdk-stage1// msg, WEXITSTATUS(ret));
-//mdk-stage1// return WEXITSTATUS(ret);
-//mdk-stage1// } else
-//mdk-stage1// syslog(LOG_INFO, "%s exited on signal %d",
-//mdk-stage1// msg, WTERMSIG(ret));
-//mdk-stage1// return -1;
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// /*====================================================================*/
-//mdk-stage1//
-//mdk-stage1// static int execute_on_dev(char *action, char *class, char *dev)
-//mdk-stage1// {
-//mdk-stage1// /* Fixed length strings are ok here */
-//mdk-stage1// char msg[128], cmd[128];
-//mdk-stage1//
-//mdk-stage1// sprintf(msg, "%s cmd", action);
-//mdk-stage1// sprintf(cmd, "./%s %s %s", class, action, dev);
-//mdk-stage1// return execute(msg, cmd);
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// static int execute_on_all(char *cmd, char *class, int sn, int fn)
-//mdk-stage1// {
-//mdk-stage1// socket_info_t *s = &socket[sn];
-//mdk-stage1// bind_info_t *bind;
-//mdk-stage1// int ret = 0;
-//mdk-stage1// for (bind = s->bind[fn]; bind != NULL; bind = bind->next)
-//mdk-stage1// if (bind->name[0] && (bind->name[2] != '#'))
-//mdk-stage1// ret |= execute_on_dev(cmd, class, bind->name);
-//mdk-stage1// return ret;
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// /*====================================================================*/
-//mdk-stage1//
-//mdk-stage1// #ifdef __linux__
-//mdk-stage1//
-//mdk-stage1// typedef struct module_list_t {
-//mdk-stage1// char *mod;
-//mdk-stage1// int usage;
-//mdk-stage1// struct module_list_t *next;
-//mdk-stage1// } module_list_t;
-//mdk-stage1//
-//mdk-stage1// static module_list_t *module_list = NULL;
-//mdk-stage1//
-//mdk-stage1// static int try_insmod(char *mod, char *opts)
-//mdk-stage1// {
-//mdk-stage1// char *cmd = malloc(strlen(mod) + strlen(modpath) +
-//mdk-stage1// (opts ? strlen(opts) : 0) + 30);
-//mdk-stage1// int ret;
-//mdk-stage1//
-//mdk-stage1// strcpy(cmd, "insmod ");
-//mdk-stage1// if (strchr(mod, '/') != NULL)
-//mdk-stage1// sprintf(cmd+7, "%s/%s.o", modpath, mod);
-//mdk-stage1// else
-//mdk-stage1// sprintf(cmd+7, "%s/pcmcia/%s.o", modpath, mod);
-//mdk-stage1// if (access(cmd+7, R_OK) != 0) {
-//mdk-stage1// syslog(LOG_INFO, "module %s not available", cmd+7);
-//mdk-stage1// free(cmd);
-//mdk-stage1// return -1;
-//mdk-stage1// }
-//mdk-stage1// if (opts) {
-//mdk-stage1// strcat(cmd, " ");
-//mdk-stage1// strcat(cmd, opts);
-//mdk-stage1// }
-//mdk-stage1// ret = execute("insmod", cmd);
-//mdk-stage1// free(cmd);
-//mdk-stage1// return ret;
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// static int try_modprobe(char *mod, char *opts)
-//mdk-stage1// {
-//mdk-stage1// char *cmd = malloc(strlen(mod) + (opts ? strlen(opts) : 0) + 20);
-//mdk-stage1// char *s = strrchr(mod, '/');
-//mdk-stage1// int ret;
-//mdk-stage1//
-//mdk-stage1// sprintf(cmd, "modprobe %s", (s) ? s+1 : mod);
-//mdk-stage1// if (opts) {
-//mdk-stage1// strcat(cmd, " ");
-//mdk-stage1// strcat(cmd, opts);
-//mdk-stage1// }
-//mdk-stage1// ret = execute("modprobe", cmd);
-//mdk-stage1// free(cmd);
-//mdk-stage1// return ret;
-//mdk-stage1// }
-
-static void install_module(char *mod, char *opts)
-{
- my_insmod(mod, ANY_DRIVER_TYPE, opts);
-//mdk-stage1// module_list_t *ml;
-//mdk-stage1//
-//mdk-stage1// for (ml = module_list; ml != NULL; ml = ml->next)
-//mdk-stage1// if (strcmp(mod, ml->mod) == 0) break;
-//mdk-stage1// if (ml == NULL) {
-//mdk-stage1// ml = (module_list_t *)malloc(sizeof(struct module_list_t));
-//mdk-stage1// ml->mod = mod;
-//mdk-stage1// ml->usage = 0;
-//mdk-stage1// ml->next = module_list;
-//mdk-stage1// module_list = ml;
-//mdk-stage1// }
-//mdk-stage1// ml->usage++;
-//mdk-stage1// if (ml->usage != 1)
-//mdk-stage1// return;
-//mdk-stage1//
-//mdk-stage1// #ifdef __linux__
-//mdk-stage1// if (access("/proc/bus/pccard/drivers", R_OK) == 0) {
-//mdk-stage1// FILE *f = fopen("/proc/bus/pccard/drivers", "r");
-//mdk-stage1// if (f) {
-//mdk-stage1// char a[61], s[33];
-//mdk-stage1// while (fgets(a, 60, f)) {
-//mdk-stage1// int is_kernel;
-//mdk-stage1// sscanf(a, "%s %d", s, &is_kernel);
-//mdk-stage1// if (strcmp(s, mod) != 0) continue;
-//mdk-stage1// /* If it isn't a module, we won't try to rmmod */
-//mdk-stage1// ml->usage += is_kernel;
-//mdk-stage1// fclose(f);
-//mdk-stage1// return;
-//mdk-stage1// }
-//mdk-stage1// fclose(f);
-//mdk-stage1// }
-//mdk-stage1// }
-//mdk-stage1// #endif
-//mdk-stage1//
-//mdk-stage1// if (do_modprobe) {
-//mdk-stage1// if (try_modprobe(mod, opts) != 0)
-//mdk-stage1// try_insmod(mod, opts);
-//mdk-stage1// } else {
-//mdk-stage1// if (try_insmod(mod, opts) != 0)
-//mdk-stage1// try_modprobe(mod, opts);
-//mdk-stage1// }
-}
-
-//mdk-stage1// static void remove_module(char *mod)
-//mdk-stage1// {
-//mdk-stage1// char *s, cmd[128];
-//mdk-stage1// module_list_t *ml;
-//mdk-stage1//
-//mdk-stage1// for (ml = module_list; ml != NULL; ml = ml->next)
-//mdk-stage1// if (strcmp(mod, ml->mod) == 0) break;
-//mdk-stage1// if (ml != NULL) {
-//mdk-stage1// ml->usage--;
-//mdk-stage1// if (ml->usage == 0) {
-//mdk-stage1// /* Strip off leading path names */
-//mdk-stage1// s = strrchr(mod, '/');
-//mdk-stage1// s = (s) ? s+1 : mod;
-//mdk-stage1// sprintf(cmd, do_modprobe ? "modprobe -r %s" : "rmmod %s", s);
-//mdk-stage1// execute(do_modprobe ? "modprobe" : "rmmod", cmd);
-//mdk-stage1// }
-//mdk-stage1// }
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// #endif /* __linux__ */
-//mdk-stage1//
-//mdk-stage1// /*====================================================================*/
-//mdk-stage1//
-//mdk-stage1// #ifdef __BEOS__
-//mdk-stage1//
-//mdk-stage1// #define install_module(a,b)
-//mdk-stage1// #define remove_module(a)
-//mdk-stage1//
-//mdk-stage1// static void republish_driver(char *mod)
-//mdk-stage1// {
-//mdk-stage1// int fd = open("/dev", O_RDWR);
-//mdk-stage1// write(fd, mod, strlen(mod));
-//mdk-stage1// close(fd);
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// #endif /* __BEOS__ */
-//mdk-stage1//
-//mdk-stage1// /*====================================================================*/
-
-static mtd_ident_t *lookup_mtd(region_info_t *region)
-{
- mtd_ident_t *mtd;
- int match = 0;
-
- for (mtd = root_mtd; mtd; mtd = mtd->next) {
- switch (mtd->mtd_type) {
- case JEDEC_MTD:
- if ((mtd->jedec_mfr == region->JedecMfr) &&
- (mtd->jedec_info == region->JedecInfo)) {
- match = 1;
- break;
- }
- case DTYPE_MTD:
- break;
- default:
- break;
- }
- if (match) break;
- }
- if (mtd)
- return mtd;
- else
- return default_mtd;
-}
-
-/*====================================================================*/
-
-static void bind_mtd(int sn)
-{
- socket_info_t *s = &socket[sn];
- region_info_t region;
- bind_info_t bind;
- mtd_info_t mtd_info;
- mtd_ident_t *mtd;
- int i, attr, ret, nr;
-
- nr = 0;
- for (attr = 0; attr < 2; attr++) {
- region.Attributes = attr;
- ret = ioctl(s->fd, DS_GET_FIRST_REGION, &region);
- while (ret == 0) {
- mtd = lookup_mtd(&region);
- if (mtd) {
- /* Have we seen this MTD before? */
- for (i = 0; i < nr; i++)
- if (s->mtd[i] == mtd) break;
- if (i == nr) {
- install_module(mtd->module, mtd->opts);
- s->mtd[nr] = mtd;
- mtd->refs++;
- nr++;
- }
- log_message("CM: %s memory region at 0x%x: %s",
- attr ? "Attribute" : "Common", region.CardOffset,
- mtd->name);
- /* Bind MTD to this region */
- strcpy(mtd_info.dev_info, s->mtd[i]->module);
- mtd_info.Attributes = region.Attributes;
- mtd_info.CardOffset = region.CardOffset;
- if (ioctl(s->fd, DS_BIND_MTD, &mtd_info) != 0) {
- log_message("CM: bind MTD '%s' to region at 0x%x failed: %m",
- (char *)mtd_info.dev_info, region.CardOffset);
- }
- }
- ret = ioctl(s->fd, DS_GET_NEXT_REGION, &region);
- }
- }
- s->mtd[nr] = NULL;
-
- /* Now bind each unique MTD as a normal client of this socket */
- for (i = 0; i < nr; i++) {
- strcpy(bind.dev_info, s->mtd[i]->module);
- bind.function = 0;
- if (ioctl(s->fd, DS_BIND_REQUEST, &bind) != 0)
- log_message("CM: bind MTD '%s' to socket %d failed: %m",
- (char *)bind.dev_info, sn);
- }
-}
-
-/*====================================================================*/
-
-static void update_cis(socket_info_t *s)
-{
- cisdump_t cis;
- FILE *f = fopen(s->card->cis_file, "r");
- if (f == NULL)
- log_message("CM: could not open '%s': %m", s->card->cis_file);
- else {
- cis.Length = fread(cis.Data, 1, CISTPL_MAX_CIS_SIZE, f);
- fclose(f);
- if (ioctl(s->fd, DS_REPLACE_CIS, &cis) != 0)
- log_message("CM: could not replace CIS: %m");
- }
-}
-
-/*====================================================================*/
-
-static void do_insert(int sn)
-{
- socket_info_t *s = &socket[sn];
- card_info_t *card;
- device_info_t **dev;
- bind_info_t *bind, **tail;
- int i, j, ret;
-
- /* Already identified? */
- if ((s->card != NULL) && (s->card != blank_card))
- return;
-
- log_message("CM: initializing socket %d", sn);
- card = lookup_card(sn);
- if (s->state & SOCKET_HOTPLUG) {
- write_stab();
- return;
- }
- /* Make sure we've learned something new before continuing */
- if (card == s->card)
- return;
- s->card = card;
- card->refs++;
- if (card->cis_file) update_cis(s);
-
- dev = card->device;
-
- /* Set up MTD's */
- for (i = 0; i < card->bindings; i++)
- if (dev[i]->needs_mtd)
- break;
- if (i < card->bindings)
- bind_mtd(sn);
-
-#ifdef __linux__
- /* Install kernel modules */
- for (i = 0; i < card->bindings; i++) {
- dev[i]->refs++;
- for (j = 0; j < dev[i]->modules; j++)
- install_module(dev[i]->module[j], dev[i]->opts[j]);
- }
-#endif
-
- /* Bind drivers by their dev_info identifiers */
- for (i = 0; i < card->bindings; i++) {
- bind = calloc(1, sizeof(bind_info_t));
- strcpy((char *)bind->dev_info, (char *)dev[i]->dev_info);
- if (strcmp(bind->dev_info, "cb_enabler") == 0)
- bind->function = BIND_FN_ALL;
- else
- bind->function = card->dev_fn[i];
- if (ioctl(s->fd, DS_BIND_REQUEST, bind) != 0) {
- if (errno == EBUSY) {
- log_message("CM: '%s' already bound to socket %d",
- (char *)bind->dev_info, sn);
- } else {
- log_message("CM: bind '%s' to socket %d failed: %m",
- (char *)bind->dev_info, sn);
- beep(BEEP_TIME, BEEP_ERR);
- write_stab();
- return;
- }
- }
-
-#ifdef __BEOS__
- republish_driver(dev[i]->module[0]);
-#endif
-
- for (ret = j = 0; j < 10; j++) {
- ret = ioctl(s->fd, DS_GET_DEVICE_INFO, bind);
- if ((ret == 0) || (errno != EAGAIN))
- break;
- usleep(100000);
- }
- if (ret != 0) {
- log_message("CM: get dev info on socket %d failed: %m",
- sn);
- ioctl(s->fd, DS_UNBIND_REQUEST, bind);
- beep(BEEP_TIME, BEEP_ERR);
- write_stab();
- return;
- }
- tail = &s->bind[i];
- while (ret == 0) {
- bind_info_t *old;
-#ifdef __linux__
- if ((strlen(bind->name) > 3) && (bind->name[2] == '#'))
- xlate_scsi_name(bind);
-#endif
- old = *tail = bind; tail = (bind_info_t **)&bind->next;
- bind = (bind_info_t *)malloc(sizeof(bind_info_t));
- memcpy(bind, old, sizeof(bind_info_t));
- ret = ioctl(s->fd, DS_GET_NEXT_DEVICE, bind);
- }
- *tail = NULL; free(bind);
- write_stab();
- }
-
-//mdk-stage1// /* Run "start" commands */
-//mdk-stage1// for (i = ret = 0; i < card->bindings; i++)
-//mdk-stage1// if (dev[i]->class)
-//mdk-stage1// ret |= execute_on_all("start", dev[i]->class, sn, i);
-//mdk-stage1// beep(BEEP_TIME, (ret) ? BEEP_ERR : BEEP_OK);
-
-}
-
-//mdk-stage1// /*====================================================================*/
-//mdk-stage1//
-//mdk-stage1// static int do_check(int sn)
-//mdk-stage1// {
-//mdk-stage1// socket_info_t *s = &socket[sn];
-//mdk-stage1// card_info_t *card;
-//mdk-stage1// device_info_t **dev;
-//mdk-stage1// int i, ret;
-//mdk-stage1//
-//mdk-stage1// card = s->card;
-//mdk-stage1// if (card == NULL)
-//mdk-stage1// return 0;
-//mdk-stage1//
-//mdk-stage1// /* Run "check" commands */
-//mdk-stage1// dev = card->device;
-//mdk-stage1// for (i = 0; i < card->bindings; i++) {
-//mdk-stage1// if (dev[i]->class) {
-//mdk-stage1// ret = execute_on_all("check", dev[i]->class, sn, i);
-//mdk-stage1// if (ret != 0)
-//mdk-stage1// return CS_IN_USE;
-//mdk-stage1// }
-//mdk-stage1// }
-//mdk-stage1// return 0;
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// /*====================================================================*/
-//mdk-stage1//
-//mdk-stage1// static void do_remove(int sn)
-//mdk-stage1// {
-//mdk-stage1// socket_info_t *s = &socket[sn];
-//mdk-stage1// card_info_t *card;
-//mdk-stage1// device_info_t **dev;
-//mdk-stage1// bind_info_t *bind;
-//mdk-stage1// int i, j;
-//mdk-stage1//
-//mdk-stage1// if (verbose) syslog(LOG_INFO, "shutting down socket %d", sn);
-//mdk-stage1//
-//mdk-stage1// card = s->card;
-//mdk-stage1// if (card == NULL)
-//mdk-stage1// goto done;
-//mdk-stage1//
-//mdk-stage1// /* Run "stop" commands */
-//mdk-stage1// dev = card->device;
-//mdk-stage1// for (i = 0; i < card->bindings; i++) {
-//mdk-stage1// if (dev[i]->class) {
-//mdk-stage1// execute_on_all("stop", dev[i]->class, sn, i);
-//mdk-stage1// }
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// /* unbind driver instances */
-//mdk-stage1// for (i = 0; i < card->bindings; i++) {
-//mdk-stage1// if (s->bind[i]) {
-//mdk-stage1// if (ioctl(s->fd, DS_UNBIND_REQUEST, s->bind[i]) != 0)
-//mdk-stage1// syslog(LOG_INFO, "unbind '%s' from socket %d failed: %m",
-//mdk-stage1// (char *)s->bind[i]->dev_info, sn);
-//mdk-stage1// while (s->bind[i]) {
-//mdk-stage1// bind = s->bind[i];
-//mdk-stage1// s->bind[i] = bind->next;
-//mdk-stage1// free(bind);
-//mdk-stage1// }
-//mdk-stage1// }
-//mdk-stage1// }
-//mdk-stage1// for (i = 0; (s->mtd[i] != NULL); i++) {
-//mdk-stage1// bind_info_t b;
-//mdk-stage1// strcpy(b.dev_info, s->mtd[i]->module);
-//mdk-stage1// b.function = 0;
-//mdk-stage1// if (ioctl(s->fd, DS_UNBIND_REQUEST, &b) != 0)
-//mdk-stage1// syslog(LOG_INFO, "unbind MTD '%s' from socket %d failed: %m",
-//mdk-stage1// s->mtd[i]->module, sn);
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// /* remove kernel modules in inverse order */
-//mdk-stage1// for (i = 0; i < card->bindings; i++) {
-//mdk-stage1// for (j = dev[i]->modules-1; j >= 0; j--)
-//mdk-stage1// remove_module(dev[i]->module[j]);
-//mdk-stage1// free_device(dev[i]);
-//mdk-stage1// }
-//mdk-stage1// /* Remove any MTD's bound to this socket */
-//mdk-stage1// for (i = 0; (s->mtd[i] != NULL); i++) {
-//mdk-stage1// remove_module(s->mtd[i]->module);
-//mdk-stage1// free_mtd(s->mtd[i]);
-//mdk-stage1// s->mtd[i] = NULL;
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// done:
-//mdk-stage1// beep(BEEP_TIME, BEEP_OK);
-//mdk-stage1// free_card(card);
-//mdk-stage1// s->card = NULL;
-//mdk-stage1// write_stab();
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// /*====================================================================*/
-//mdk-stage1//
-//mdk-stage1// static void do_suspend(int sn)
-//mdk-stage1// {
-//mdk-stage1// socket_info_t *s = &socket[sn];
-//mdk-stage1// card_info_t *card;
-//mdk-stage1// device_info_t **dev;
-//mdk-stage1// int i, ret;
-//mdk-stage1//
-//mdk-stage1// card = s->card;
-//mdk-stage1// if (card == NULL)
-//mdk-stage1// return;
-//mdk-stage1// dev = card->device;
-//mdk-stage1// for (i = 0; i < card->bindings; i++) {
-//mdk-stage1// if (dev[i]->class) {
-//mdk-stage1// ret = execute_on_all("suspend", dev[i]->class, sn, i);
-//mdk-stage1// if (ret != 0)
-//mdk-stage1// beep(BEEP_TIME, BEEP_ERR);
-//mdk-stage1// }
-//mdk-stage1// }
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// /*====================================================================*/
-//mdk-stage1//
-//mdk-stage1// static void do_resume(int sn)
-//mdk-stage1// {
-//mdk-stage1// socket_info_t *s = &socket[sn];
-//mdk-stage1// card_info_t *card;
-//mdk-stage1// device_info_t **dev;
-//mdk-stage1// int i, ret;
-//mdk-stage1//
-//mdk-stage1// card = s->card;
-//mdk-stage1// if (card == NULL)
-//mdk-stage1// return;
-//mdk-stage1// dev = card->device;
-//mdk-stage1// for (i = 0; i < card->bindings; i++) {
-//mdk-stage1// if (dev[i]->class) {
-//mdk-stage1// ret = execute_on_all("resume", dev[i]->class, sn, i);
-//mdk-stage1// if (ret != 0)
-//mdk-stage1// beep(BEEP_TIME, BEEP_ERR);
-//mdk-stage1// }
-//mdk-stage1// }
-//mdk-stage1// }
-
-/*====================================================================*/
-
-static void wait_for_pending(void)
-{
- cs_status_t status;
- int i;
- status.Function = 0;
- for (;;) {
- usleep(100000);
- for (i = 0; i < sockets; i++)
- if ((ioctl(socket[i].fd, DS_GET_STATUS, &status) == 0) &&
- (status.CardState & CS_EVENT_CARD_INSERTION))
- break;
- if (i == sockets) break;
- }
-}
-
-//mdk-stage1// /*====================================================================*/
-//mdk-stage1//
-//mdk-stage1// static void free_resources(void)
-//mdk-stage1// {
-//mdk-stage1// adjust_list_t *al;
-//mdk-stage1// int fd = socket[0].fd;
-//mdk-stage1//
-//mdk-stage1// for (al = root_adjust; al; al = al->next) {
-//mdk-stage1// if (al->adj.Action == ADD_MANAGED_RESOURCE) {
-//mdk-stage1// al->adj.Action = REMOVE_MANAGED_RESOURCE;
-//mdk-stage1// ioctl(fd, DS_ADJUST_RESOURCE_INFO, &al->adj);
-//mdk-stage1// } else if ((al->adj.Action == REMOVE_MANAGED_RESOURCE) &&
-//mdk-stage1// (al->adj.Resource == RES_IRQ)) {
-//mdk-stage1// al->adj.Action = ADD_MANAGED_RESOURCE;
-//mdk-stage1// ioctl(fd, DS_ADJUST_RESOURCE_INFO, &al->adj);
-//mdk-stage1// }
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// }
-
-/*====================================================================*/
-
-static void adjust_resources(void)
-{
- adjust_list_t *al;
- int ret;
- char tmp[64];
- int fd = socket[0].fd;
-
- for (al = root_adjust; al; al = al->next) {
- ret = ioctl(fd, DS_ADJUST_RESOURCE_INFO, &al->adj);
- if (ret != 0) {
- switch (al->adj.Resource) {
- case RES_MEMORY_RANGE:
- sprintf(tmp, "memory %#lx-%#lx",
- al->adj.resource.memory.Base,
- al->adj.resource.memory.Base +
- al->adj.resource.memory.Size - 1);
- break;
- case RES_IO_RANGE:
- sprintf(tmp, "IO ports %#x-%#x",
- al->adj.resource.io.BasePort,
- al->adj.resource.io.BasePort +
- al->adj.resource.io.NumPorts - 1);
- break;
- case RES_IRQ:
- sprintf(tmp, "irq %u", al->adj.resource.irq.IRQ);
- break;
- }
- log_message("CM: could not adjust resource: %s: %m", tmp);
- }
- }
-}
-
-//mdk-stage1// /*====================================================================*/
-//mdk-stage1//
-//mdk-stage1// static int cleanup_files = 0;
-//mdk-stage1//
-//mdk-stage1// static void fork_now(void)
-//mdk-stage1// {
-//mdk-stage1// int ret;
-//mdk-stage1// if ((ret = fork()) > 0) {
-//mdk-stage1// cleanup_files = 0;
-//mdk-stage1// exit(0);
-//mdk-stage1// }
-//mdk-stage1// if (ret == -1)
-//mdk-stage1// syslog(LOG_ERR, "forking: %m");
-//mdk-stage1// if (setsid() < 0)
-//mdk-stage1// syslog(LOG_ERR, "detaching from tty: %m");
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// static void done(void)
-//mdk-stage1// {
-//mdk-stage1// syslog(LOG_INFO, "exiting");
-//mdk-stage1// if (cleanup_files) {
-//mdk-stage1// unlink(pidfile);
-//mdk-stage1// unlink(stabfile);
-//mdk-stage1// }
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// /*====================================================================*/
-//mdk-stage1//
-//mdk-stage1// /* most recent signal */
-//mdk-stage1// static int caught_signal = 0;
-//mdk-stage1//
-//mdk-stage1// static void catch_signal(int sig)
-//mdk-stage1// {
-//mdk-stage1// caught_signal = sig;
-//mdk-stage1// if (signal(sig, catch_signal) == SIG_ERR)
-//mdk-stage1// syslog(LOG_INFO, "signal(%d): %m", sig);
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// static void handle_signal(void)
-//mdk-stage1// {
-//mdk-stage1// int i;
-//mdk-stage1// switch (caught_signal) {
-//mdk-stage1// case SIGTERM:
-//mdk-stage1// case SIGINT:
-//mdk-stage1// for (i = 0; i < sockets; i++)
-//mdk-stage1// if ((socket[i].state & SOCKET_PRESENT) &&
-//mdk-stage1// (do_check(i) == 0)) do_remove(i);
-//mdk-stage1// free_resources();
-//mdk-stage1// exit(0);
-//mdk-stage1// break;
-//mdk-stage1// case SIGHUP:
-//mdk-stage1// free_resources();
-//mdk-stage1// free_config();
-//mdk-stage1// syslog(LOG_INFO, "re-loading config file");
-//mdk-stage1// load_config();
-//mdk-stage1// adjust_resources();
-//mdk-stage1// break;
-//mdk-stage1// #ifdef SIGPWR
-//mdk-stage1// case SIGPWR:
-//mdk-stage1// break;
-//mdk-stage1// #endif
-//mdk-stage1// }
-//mdk-stage1// }
-
-/*====================================================================*/
-
-static int init_sockets(void)
-{
- int fd, i;
- servinfo_t serv;
-
-#ifdef __linux__
- major = lookup_dev("pcmcia");
- if (major < 0) {
- if (major == -ENODEV)
- log_message("CM: no pcmcia driver in /proc/devices");
- else
- log_message("CM: could not open /proc/devices: %m");
- return -1;
- }
-#endif
- for (fd = -1, i = 0; i < MAX_SOCKS; i++) {
- fd = open_sock(i, S_IFCHR|S_IREAD|S_IWRITE);
- if (fd < 0) break;
- socket[i].fd = fd;
- socket[i].state = 0;
- }
- if ((fd < 0) && (errno != ENODEV) && (errno != ENOENT))
- log_message("CM: open_sock(socket %d) failed: %m", i);
- sockets = i;
- if (sockets == 0) {
- log_message("CM: no sockets found!");
- return -1;
- } else
- log_message("CM: watching %d sockets", sockets);
-
- if (ioctl(socket[0].fd, DS_GET_CARD_SERVICES_INFO, &serv) == 0) {
- if (serv.Revision != CS_RELEASE_CODE)
- log_message("CM: warning, Card Services release does not match kernel (generally harmless)");
- } else {
- log_message("CM: could not get CS revision info!");
- return -1;
- }
- adjust_resources();
- return 0;
-}
-
-//mdk-stage1// /*====================================================================*/
-//mdk-stage1//
-//mdk-stage1// int main(int argc, char *argv[])
-//mdk-stage1// {
-//mdk-stage1// int optch, errflg;
-//mdk-stage1// int i, max_fd, ret, event, pass;
-//mdk-stage1// int delay_fork = 0;
-//mdk-stage1// struct timeval tv;
-//mdk-stage1// fd_set fds;
-//mdk-stage1//
-//mdk-stage1// if (access("/var/lib/pcmcia", R_OK) == 0) {
-//mdk-stage1// stabfile = "/var/lib/pcmcia/stab";
-//mdk-stage1// } else {
-//mdk-stage1// stabfile = "/var/run/stab";
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// errflg = 0;
-//mdk-stage1// while ((optch = getopt(argc, argv, "Vqdvofc:m:p:s:")) != -1) {
-//mdk-stage1// switch (optch) {
-//mdk-stage1// case 'V':
-//mdk-stage1// fprintf(stderr, "cardmgr version " CS_RELEASE "\n");
-//mdk-stage1// return 0;
-//mdk-stage1// break;
-//mdk-stage1// case 'q':
-//mdk-stage1// be_quiet = 1; break;
-//mdk-stage1// case 'v':
-//mdk-stage1// verbose = 1; break;
-//mdk-stage1// case 'o':
-//mdk-stage1// one_pass = 1; break;
-//mdk-stage1// case 'f':
-//mdk-stage1// delay_fork = 1; break;
-//mdk-stage1// case 'c':
-//mdk-stage1// configpath = strdup(optarg); break;
-//mdk-stage1// #ifdef __linux__
-//mdk-stage1// case 'd':
-//mdk-stage1// do_modprobe = 1; break;
-//mdk-stage1// case 'm':
-//mdk-stage1// modpath = strdup(optarg); break;
-//mdk-stage1// #endif
-//mdk-stage1// case 'p':
-//mdk-stage1// pidfile = strdup(optarg); break;
-//mdk-stage1// case 's':
-//mdk-stage1// stabfile = strdup(optarg); 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 [-V] [-q] [-v] [-d] [-o] [-f] "
-//mdk-stage1// "[-c configpath] [-m modpath]\n "
-//mdk-stage1// "[-p pidfile] [-s stabfile]\n", argv[0]);
-//mdk-stage1// exit(EXIT_FAILURE);
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// #ifdef DEBUG
-//mdk-stage1// openlog("cardmgr", LOG_PID|LOG_PERROR, LOG_DAEMON);
-//mdk-stage1// #else
-//mdk-stage1// openlog("cardmgr", LOG_PID|LOG_CONS, LOG_DAEMON);
-//mdk-stage1// close(0); close(1); close(2);
-//mdk-stage1// if (!delay_fork && !one_pass)
-//mdk-stage1// fork_now();
-//mdk-stage1// #endif
-//mdk-stage1//
-//mdk-stage1// syslog(LOG_INFO, "starting, version is " CS_RELEASE);
-//mdk-stage1// atexit(&done);
-//mdk-stage1// putenv("PATH=/bin:/sbin:/usr/bin:/usr/sbin");
-//mdk-stage1// if (verbose)
-//mdk-stage1// putenv("VERBOSE=1");
-//mdk-stage1//
-//mdk-stage1// #ifdef __linux__
-//mdk-stage1// if (modpath == NULL) {
-//mdk-stage1// if (access("/lib/modules/preferred", X_OK) == 0)
-//mdk-stage1// modpath = "/lib/modules/preferred";
-//mdk-stage1// else {
-//mdk-stage1// struct utsname utsname;
-//mdk-stage1// if (uname(&utsname) != 0) {
-//mdk-stage1// syslog(LOG_ERR, "uname(): %m");
-//mdk-stage1// exit(EXIT_FAILURE);
-//mdk-stage1// }
-//mdk-stage1// modpath = (char *)malloc(strlen(utsname.release)+14);
-//mdk-stage1// sprintf(modpath, "/lib/modules/%s", utsname.release);
-//mdk-stage1// }
-//mdk-stage1// }
-//mdk-stage1// if (access(modpath, X_OK) != 0)
-//mdk-stage1// syslog(LOG_INFO, "cannot access %s: %m", modpath);
-//mdk-stage1// /* We default to using modprobe if it is available */
-//mdk-stage1// do_modprobe |= (access("/sbin/modprobe", X_OK) == 0);
-//mdk-stage1// #endif /* __linux__ */
-//mdk-stage1//
-//mdk-stage1// load_config();
-//mdk-stage1//
-//mdk-stage1// if (init_sockets() != 0)
-//mdk-stage1// exit(EXIT_FAILURE);
-//mdk-stage1//
-//mdk-stage1// /* If we've gotten this far, then clean up pid and stab at exit */
-//mdk-stage1// write_pid();
-//mdk-stage1// write_stab();
-//mdk-stage1// cleanup_files = 1;
-//mdk-stage1//
-//mdk-stage1// if (signal(SIGHUP, catch_signal) == SIG_ERR)
-//mdk-stage1// syslog(LOG_ERR, "signal(SIGHUP): %m");
-//mdk-stage1// if (signal(SIGTERM, catch_signal) == SIG_ERR)
-//mdk-stage1// syslog(LOG_ERR, "signal(SIGTERM): %m");
-//mdk-stage1// if (signal(SIGINT, catch_signal) == SIG_ERR)
-//mdk-stage1// syslog(LOG_ERR, "signal(SIGINT): %m");
-//mdk-stage1// #ifdef SIGPWR
-//mdk-stage1// if (signal(SIGPWR, catch_signal) == SIG_ERR)
-//mdk-stage1// syslog(LOG_ERR, "signal(SIGPWR): %m");
-//mdk-stage1// #endif
-//mdk-stage1//
-//mdk-stage1// for (i = max_fd = 0; i < sockets; i++)
-//mdk-stage1// max_fd = (socket[i].fd > max_fd) ? socket[i].fd : max_fd;
-//mdk-stage1//
-//mdk-stage1// /* First select() call: poll, don't wait */
-//mdk-stage1// tv.tv_sec = tv.tv_usec = 0;
-//mdk-stage1//
-//mdk-stage1// /* Wait for sockets in setup-pending state to settle */
-//mdk-stage1// if (one_pass || delay_fork)
-//mdk-stage1// wait_for_pending();
-//mdk-stage1//
-//mdk-stage1// for (pass = 0; ; pass++) {
-//mdk-stage1// FD_ZERO(&fds);
-//mdk-stage1// for (i = 0; i < sockets; i++)
-//mdk-stage1// FD_SET(socket[i].fd, &fds);
-//mdk-stage1//
-//mdk-stage1// while ((ret = select(max_fd+1, &fds, NULL, NULL,
-//mdk-stage1// ((pass == 0) ? &tv : NULL))) < 0) {
-//mdk-stage1// if (errno == EINTR) {
-//mdk-stage1// handle_signal();
-//mdk-stage1// } else {
-//mdk-stage1// syslog(LOG_ERR, "select(): %m");
-//mdk-stage1// exit(EXIT_FAILURE);
-//mdk-stage1// }
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// for (i = 0; i < sockets; i++) {
-//mdk-stage1// if (!FD_ISSET(socket[i].fd, &fds))
-//mdk-stage1// continue;
-//mdk-stage1// ret = read(socket[i].fd, &event, 4);
-//mdk-stage1// if ((ret == -1) && (errno != EAGAIN))
-//mdk-stage1// syslog(LOG_INFO, "read(%d): %m\n", i);
-//mdk-stage1// if (ret != 4)
-//mdk-stage1// continue;
-//mdk-stage1//
-//mdk-stage1// switch (event) {
-//mdk-stage1// case CS_EVENT_CARD_REMOVAL:
-//mdk-stage1// socket[i].state = 0;
-//mdk-stage1// do_remove(i);
-//mdk-stage1// break;
-//mdk-stage1// case CS_EVENT_EJECTION_REQUEST:
-//mdk-stage1// ret = do_check(i);
-//mdk-stage1// if (ret == 0) {
-//mdk-stage1// socket[i].state = 0;
-//mdk-stage1// do_remove(i);
-//mdk-stage1// }
-//mdk-stage1// write(socket[i].fd, &ret, 4);
-//mdk-stage1// break;
-//mdk-stage1// case CS_EVENT_CARD_INSERTION:
-//mdk-stage1// case CS_EVENT_INSERTION_REQUEST:
-//mdk-stage1// socket[i].state |= SOCKET_PRESENT;
-//mdk-stage1// case CS_EVENT_CARD_RESET:
-//mdk-stage1// socket[i].state |= SOCKET_READY;
-//mdk-stage1// do_insert(i);
-//mdk-stage1// break;
-//mdk-stage1// case CS_EVENT_RESET_PHYSICAL:
-//mdk-stage1// socket[i].state &= ~SOCKET_READY;
-//mdk-stage1// break;
-//mdk-stage1// case CS_EVENT_PM_SUSPEND:
-//mdk-stage1// do_suspend(i);
-//mdk-stage1// break;
-//mdk-stage1// case CS_EVENT_PM_RESUME:
-//mdk-stage1// do_resume(i);
-//mdk-stage1// break;
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// if (one_pass)
-//mdk-stage1// exit(EXIT_SUCCESS);
-//mdk-stage1// if (delay_fork) {
-//mdk-stage1// fork_now();
-//mdk-stage1// write_pid();
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// } /* repeat */
-//mdk-stage1// return 0;
-//mdk-stage1// }
-
-
-
-static void cardmgr_fail(void)
-{
- log_message("CM: cardmgr: failed");
-}
-
-int cardmgr_call(void)
-{
- int i, max_fd, ret, event;
- struct timeval tv;
- fd_set fds;
-
- stabfile = "/var/run/stab";
-
- log_message("CM: cardmgr/hacked starting, version is " CS_RELEASE);
-
- if (load_config()) {
- cardmgr_fail();
- return -1;
- }
-
- if (init_sockets()) {
- cardmgr_fail();
- return -1;
- }
-
- /* If we've gotten this far, then clean up pid and stab at exit */
- write_stab();
-
- for (i = max_fd = 0; i < sockets; i++)
- max_fd = (socket[i].fd > max_fd) ? socket[i].fd : max_fd;
-
- /* First select() call: poll, don't wait */
- tv.tv_sec = tv.tv_usec = 0;
-
- /* Wait for sockets in setup-pending state to settle */
- wait_for_pending();
-
-
- FD_ZERO(&fds);
- for (i = 0; i < sockets; i++)
- FD_SET(socket[i].fd, &fds);
-
- if (select(max_fd+1, &fds, NULL, NULL, &tv) < 0) {
- log_perror("CM: select fails");
- return -1;
- }
-
- for (i = 0; i < sockets; i++) {
- if (!FD_ISSET(socket[i].fd, &fds))
- continue;
- ret = read(socket[i].fd, &event, 4);
- if ((ret == -1) && (errno != EAGAIN))
- log_message("CM: read(%d): %m", i);
- if (ret != 4)
- continue;
-
- switch (event) {
- case CS_EVENT_CARD_INSERTION:
- case CS_EVENT_INSERTION_REQUEST:
- socket[i].state |= SOCKET_PRESENT;
- case CS_EVENT_CARD_RESET:
- socket[i].state |= SOCKET_READY;
- do_insert(i);
- break;
- case CS_EVENT_RESET_PHYSICAL:
- socket[i].state &= ~SOCKET_READY;
- break;
- }
-
- }
-
- return 0;
-
-}
diff --git a/mdk-stage1/pcmcia_/cardmgr.h b/mdk-stage1/pcmcia_/cardmgr.h
deleted file mode 100644
index 1d002e972..000000000
--- a/mdk-stage1/pcmcia_/cardmgr.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * cardmgr.h 1.37 2001/08/24 12:19:20
- *
- * The contents of this file are subject to the Mozilla Public License
- * Version 1.1 (the "License"); you may not use this file except in
- * compliance with the License. You may obtain a copy of the License
- * at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS"
- * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
- * the License for the specific language governing rights and
- * limitations under the License.
- *
- * The initial developer of the original code is David A. Hinds
- * <dahinds@users.sourceforge.net>. Portions created by David A. Hinds
- * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
- *
- * Alternatively, the contents of this file may be used under the
- * terms of the GNU General Public License version 2 (the "GPL"), in
- * which case the provisions of the GPL are applicable instead of the
- * above. If you wish to allow the use of your version of this file
- * only under the terms of the GPL and not to allow others to use
- * your version of this file under the MPL, indicate your decision by
- * deleting the provisions above and replace them with the notice and
- * other provisions required by the GPL. If you do not delete the
- * provisions above, a recipient may use your version of this file
- * under either the MPL or the GPL.
- */
-
-#define MAX_SOCKS 8
-#define MAX_BINDINGS 4
-#define MAX_MODULES 4
-
-typedef struct adjust_list_t {
- adjust_t adj;
- struct adjust_list_t *next;
-} adjust_list_t;
-
-typedef struct func_ident_t {
- u_char funcid;
-} func_ident_t;
-
-typedef struct manfid_ident_t {
- u_short manf;
- u_short card;
-} manfid_ident_t;
-
-typedef struct vers_ident_t {
- int ns;
- char *pi[4];
-} vers_ident_t;
-
-typedef struct tuple_ident_t {
- cisdata_t code;
- long ofs;
- char *info;
-} tuple_ident_t;
-
-typedef struct device_info_t {
- dev_info_t dev_info;
- int needs_mtd;
- int modules;
- char *module[MAX_MODULES];
- char *opts[MAX_MODULES];
- char *class;
- int refs;
- struct device_info_t *next;
-} device_info_t;
-
-#define VERS_1_IDENT 0x0001
-#define MANFID_IDENT 0x0002
-#define TUPLE_IDENT 0x0010
-#define FUNC_IDENT 0x0020
-#define BLANK_IDENT 0x0040
-#define PCI_IDENT 0x0080
-#define EXCL_IDENT 0x00f0
-
-typedef struct card_info_t {
- char *name;
- int ident_type;
- union {
- vers_ident_t vers;
- tuple_ident_t tuple;
- func_ident_t func;
- } id;
- manfid_ident_t manfid;
- int bindings;
- device_info_t *device[MAX_BINDINGS];
- int dev_fn[MAX_BINDINGS];
- char *cis_file;
- int refs;
- struct card_info_t *next;
-} card_info_t;
-
-typedef struct mtd_ident_t {
- char *name;
- enum {
- JEDEC_MTD=1, DTYPE_MTD, DEFAULT_MTD
- } mtd_type;
- int dtype, jedec_mfr, jedec_info;
- char *module, *opts;
- int refs;
- struct mtd_ident_t *next;
-} mtd_ident_t;
-
-extern adjust_list_t *root_adjust;
-extern device_info_t *root_device;
-extern card_info_t *blank_card;
-extern card_info_t *root_card, *root_func;
-extern mtd_ident_t *root_mtd, *default_mtd;
-
-int parse_configfile(char *fn);
diff --git a/mdk-stage1/pcmcia_/cirrus.h b/mdk-stage1/pcmcia_/cirrus.h
deleted file mode 100644
index 49d7fa2de..000000000
--- a/mdk-stage1/pcmcia_/cirrus.h
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * cirrus.h 1.10 2001/08/24 12:15:33
- *
- * The contents of this file are subject to the Mozilla Public License
- * Version 1.1 (the "License"); you may not use this file except in
- * compliance with the License. You may obtain a copy of the License
- * at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS"
- * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
- * the License for the specific language governing rights and
- * limitations under the License.
- *
- * The initial developer of the original code is David A. Hinds
- * <dahinds@users.sourceforge.net>. Portions created by David A. Hinds
- * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
- *
- * Alternatively, the contents of this file may be used under the
- * terms of the GNU General Public License version 2 (the "GPL"), in
- * which case the provisions of the GPL are applicable instead of the
- * above. If you wish to allow the use of your version of this file
- * only under the terms of the GPL and not to allow others to use
- * your version of this file under the MPL, indicate your decision by
- * deleting the provisions above and replace them with the notice and
- * other provisions required by the GPL. If you do not delete the
- * provisions above, a recipient may use your version of this file
- * under either the MPL or the GPL.
- */
-
-#ifndef _LINUX_CIRRUS_H
-#define _LINUX_CIRRUS_H
-
-#ifndef PCI_VENDOR_ID_CIRRUS
-#define PCI_VENDOR_ID_CIRRUS 0x1013
-#endif
-#ifndef PCI_DEVICE_ID_CIRRUS_6729
-#define PCI_DEVICE_ID_CIRRUS_6729 0x1100
-#endif
-#ifndef PCI_DEVICE_ID_CIRRUS_6832
-#define PCI_DEVICE_ID_CIRRUS_6832 0x1110
-#endif
-
-#define PD67_MISC_CTL_1 0x16 /* Misc control 1 */
-#define PD67_FIFO_CTL 0x17 /* FIFO control */
-#define PD67_MISC_CTL_2 0x1E /* Misc control 2 */
-#define PD67_CHIP_INFO 0x1f /* Chip information */
-#define PD67_ATA_CTL 0x026 /* 6730: ATA control */
-#define PD67_EXT_INDEX 0x2e /* Extension index */
-#define PD67_EXT_DATA 0x2f /* Extension data */
-
-#define pd67_ext_get(s, r) \
- (i365_set(s, PD67_EXT_INDEX, r), i365_get(s, PD67_EXT_DATA))
-#define pd67_ext_set(s, r, v) \
- (i365_set(s, PD67_EXT_INDEX, r), i365_set(s, PD67_EXT_DATA, v))
-
-/* PD6722 extension registers -- indexed in PD67_EXT_INDEX */
-#define PD67_DATA_MASK0 0x01 /* Data mask 0 */
-#define PD67_DATA_MASK1 0x02 /* Data mask 1 */
-#define PD67_DMA_CTL 0x03 /* DMA control */
-
-/* PD6730 extension registers -- indexed in PD67_EXT_INDEX */
-#define PD67_EXT_CTL_1 0x03 /* Extension control 1 */
-#define PD67_MEM_PAGE(n) ((n)+5) /* PCI window bits 31:24 */
-#define PD67_EXTERN_DATA 0x0a
-#define PD67_MISC_CTL_3 0x25
-#define PD67_SMB_PWR_CTL 0x26
-
-/* I/O window address offset */
-#define PD67_IO_OFF(w) (0x36+((w)<<1))
-
-/* Timing register sets */
-#define PD67_TIME_SETUP(n) (0x3a + 3*(n))
-#define PD67_TIME_CMD(n) (0x3b + 3*(n))
-#define PD67_TIME_RECOV(n) (0x3c + 3*(n))
-
-/* Flags for PD67_MISC_CTL_1 */
-#define PD67_MC1_5V_DET 0x01 /* 5v detect */
-#define PD67_MC1_MEDIA_ENA 0x01 /* 6730: Multimedia enable */
-#define PD67_MC1_VCC_3V 0x02 /* 3.3v Vcc */
-#define PD67_MC1_PULSE_MGMT 0x04
-#define PD67_MC1_PULSE_IRQ 0x08
-#define PD67_MC1_SPKR_ENA 0x10
-#define PD67_MC1_INPACK_ENA 0x80
-
-/* Flags for PD67_FIFO_CTL */
-#define PD67_FIFO_EMPTY 0x80
-
-/* Flags for PD67_MISC_CTL_2 */
-#define PD67_MC2_FREQ_BYPASS 0x01
-#define PD67_MC2_DYNAMIC_MODE 0x02
-#define PD67_MC2_SUSPEND 0x04
-#define PD67_MC2_5V_CORE 0x08
-#define PD67_MC2_LED_ENA 0x10 /* IRQ 12 is LED enable */
-#define PD67_MC2_FAST_PCI 0x10 /* 6729: PCI bus > 25 MHz */
-#define PD67_MC2_3STATE_BIT7 0x20 /* Floppy change bit */
-#define PD67_MC2_DMA_MODE 0x40
-#define PD67_MC2_IRQ15_RI 0x80 /* IRQ 15 is ring enable */
-
-/* Flags for PD67_CHIP_INFO */
-#define PD67_INFO_SLOTS 0x20 /* 0 = 1 slot, 1 = 2 slots */
-#define PD67_INFO_CHIP_ID 0xc0
-#define PD67_INFO_REV 0x1c
-
-/* Fields in PD67_TIME_* registers */
-#define PD67_TIME_SCALE 0xc0
-#define PD67_TIME_SCALE_1 0x00
-#define PD67_TIME_SCALE_16 0x40
-#define PD67_TIME_SCALE_256 0x80
-#define PD67_TIME_SCALE_4096 0xc0
-#define PD67_TIME_MULT 0x3f
-
-/* Fields in PD67_DMA_CTL */
-#define PD67_DMA_MODE 0xc0
-#define PD67_DMA_OFF 0x00
-#define PD67_DMA_DREQ_INPACK 0x40
-#define PD67_DMA_DREQ_WP 0x80
-#define PD67_DMA_DREQ_BVD2 0xc0
-#define PD67_DMA_PULLUP 0x20 /* Disable socket pullups? */
-
-/* Fields in PD67_EXT_CTL_1 */
-#define PD67_EC1_VCC_PWR_LOCK 0x01
-#define PD67_EC1_AUTO_PWR_CLEAR 0x02
-#define PD67_EC1_LED_ENA 0x04
-#define PD67_EC1_INV_CARD_IRQ 0x08
-#define PD67_EC1_INV_MGMT_IRQ 0x10
-#define PD67_EC1_PULLUP_CTL 0x20
-
-/* Fields in PD67_EXTERN_DATA */
-#define PD67_EXD_VS1(s) (0x01 << ((s)<<1))
-#define PD67_EXD_VS2(s) (0x02 << ((s)<<1))
-
-/* Fields in PD67_MISC_CTL_3 */
-#define PD67_MC3_IRQ_MASK 0x03
-#define PD67_MC3_IRQ_PCPCI 0x00
-#define PD67_MC3_IRQ_EXTERN 0x01
-#define PD67_MC3_IRQ_PCIWAY 0x02
-#define PD67_MC3_IRQ_PCI 0x03
-#define PD67_MC3_PWR_MASK 0x0c
-#define PD67_MC3_PWR_SERIAL 0x00
-#define PD67_MC3_PWR_TI2202 0x08
-#define PD67_MC3_PWR_SMB 0x0c
-
-/* Register definitions for Cirrus PD6832 PCI-to-CardBus bridge */
-
-/* PD6832 extension registers -- indexed in PD67_EXT_INDEX */
-#define PD68_EXT_CTL_2 0x0b
-#define PD68_PCI_SPACE 0x22
-#define PD68_PCCARD_SPACE 0x23
-#define PD68_WINDOW_TYPE 0x24
-#define PD68_EXT_CSC 0x2e
-#define PD68_MISC_CTL_4 0x2f
-#define PD68_MISC_CTL_5 0x30
-#define PD68_MISC_CTL_6 0x31
-
-/* Extra flags in PD67_MISC_CTL_3 */
-#define PD68_MC3_HW_SUSP 0x10
-#define PD68_MC3_MM_EXPAND 0x40
-#define PD68_MC3_MM_ARM 0x80
-
-/* Bridge Control Register */
-#define PD6832_BCR_MGMT_IRQ_ENA 0x0800
-
-/* Socket Number Register */
-#define PD6832_SOCKET_NUMBER 0x004c /* 8 bit */
-
-/* Data structure for tracking vendor-specific state */
-typedef struct cirrus_state_t {
- u_char misc1; /* PD67_MISC_CTL_1 */
- u_char misc2; /* PD67_MISC_CTL_2 */
- u_char ectl1; /* PD67_EXT_CTL_1 */
- u_char timer[6]; /* PD67_TIME_* */
-} cirrus_state_t;
-
-#define CIRRUS_PCIC_ID \
- IS_PD6729, IS_PD6730, IS_PD6832
-
-#define CIRRUS_PCIC_INFO \
- { "Cirrus PD6729", IS_CIRRUS|IS_PCI, ID(CIRRUS, 6729) }, \
- { "Cirrus PD6730", IS_CIRRUS|IS_PCI, PCI_VENDOR_ID_CIRRUS, -1 }, \
- { "Cirrus PD6832", IS_CIRRUS|IS_CARDBUS, ID(CIRRUS, 6832) }
-
-#endif /* _LINUX_CIRRUS_H */
diff --git a/mdk-stage1/pcmcia_/cistpl.h b/mdk-stage1/pcmcia_/cistpl.h
deleted file mode 100644
index 1d4cac20e..000000000
--- a/mdk-stage1/pcmcia_/cistpl.h
+++ /dev/null
@@ -1,604 +0,0 @@
-/*
- * cistpl.h 1.35 2001/08/24 12:16:12
- *
- * The contents of this file are subject to the Mozilla Public License
- * Version 1.1 (the "License"); you may not use this file except in
- * compliance with the License. You may obtain a copy of the License
- * at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS"
- * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
- * the License for the specific language governing rights and
- * limitations under the License.
- *
- * The initial developer of the original code is David A. Hinds
- * <dahinds@users.sourceforge.net>. Portions created by David A. Hinds
- * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
- *
- * Alternatively, the contents of this file may be used under the
- * terms of the GNU General Public License version 2 (the "GPL"), in
- * which case the provisions of the GPL are applicable instead of the
- * above. If you wish to allow the use of your version of this file
- * only under the terms of the GPL and not to allow others to use
- * your version of this file under the MPL, indicate your decision by
- * deleting the provisions above and replace them with the notice and
- * other provisions required by the GPL. If you do not delete the
- * provisions above, a recipient may use your version of this file
- * under either the MPL or the GPL.
- */
-
-#ifndef _LINUX_CISTPL_H
-#define _LINUX_CISTPL_H
-
-#define CISTPL_NULL 0x00
-#define CISTPL_DEVICE 0x01
-#define CISTPL_LONGLINK_CB 0x02
-#define CISTPL_INDIRECT 0x03
-#define CISTPL_CONFIG_CB 0x04
-#define CISTPL_CFTABLE_ENTRY_CB 0x05
-#define CISTPL_LONGLINK_MFC 0x06
-#define CISTPL_BAR 0x07
-#define CISTPL_PWR_MGMNT 0x08
-#define CISTPL_EXTDEVICE 0x09
-#define CISTPL_CHECKSUM 0x10
-#define CISTPL_LONGLINK_A 0x11
-#define CISTPL_LONGLINK_C 0x12
-#define CISTPL_LINKTARGET 0x13
-#define CISTPL_NO_LINK 0x14
-#define CISTPL_VERS_1 0x15
-#define CISTPL_ALTSTR 0x16
-#define CISTPL_DEVICE_A 0x17
-#define CISTPL_JEDEC_C 0x18
-#define CISTPL_JEDEC_A 0x19
-#define CISTPL_CONFIG 0x1a
-#define CISTPL_CFTABLE_ENTRY 0x1b
-#define CISTPL_DEVICE_OC 0x1c
-#define CISTPL_DEVICE_OA 0x1d
-#define CISTPL_DEVICE_GEO 0x1e
-#define CISTPL_DEVICE_GEO_A 0x1f
-#define CISTPL_MANFID 0x20
-#define CISTPL_FUNCID 0x21
-#define CISTPL_FUNCE 0x22
-#define CISTPL_SWIL 0x23
-#define CISTPL_END 0xff
-/* Layer 2 tuples */
-#define CISTPL_VERS_2 0x40
-#define CISTPL_FORMAT 0x41
-#define CISTPL_GEOMETRY 0x42
-#define CISTPL_BYTEORDER 0x43
-#define CISTPL_DATE 0x44
-#define CISTPL_BATTERY 0x45
-#define CISTPL_FORMAT_A 0x47
-/* Layer 3 tuples */
-#define CISTPL_ORG 0x46
-#define CISTPL_SPCL 0x90
-
-typedef struct cistpl_longlink_t {
- u_int addr;
-} cistpl_longlink_t;
-
-typedef struct cistpl_checksum_t {
- u_short addr;
- u_short len;
- u_char sum;
-} cistpl_checksum_t;
-
-#define CISTPL_MAX_FUNCTIONS 8
-#define CISTPL_MFC_ATTR 0x00
-#define CISTPL_MFC_COMMON 0x01
-
-typedef struct cistpl_longlink_mfc_t {
- u_char nfn;
- struct {
- u_char space;
- u_int addr;
- } fn[CISTPL_MAX_FUNCTIONS];
-} cistpl_longlink_mfc_t;
-
-#define CISTPL_MAX_ALTSTR_STRINGS 4
-
-typedef struct cistpl_altstr_t {
- u_char ns;
- u_char ofs[CISTPL_MAX_ALTSTR_STRINGS];
- char str[254];
-} cistpl_altstr_t;
-
-#define CISTPL_DTYPE_NULL 0x00
-#define CISTPL_DTYPE_ROM 0x01
-#define CISTPL_DTYPE_OTPROM 0x02
-#define CISTPL_DTYPE_EPROM 0x03
-#define CISTPL_DTYPE_EEPROM 0x04
-#define CISTPL_DTYPE_FLASH 0x05
-#define CISTPL_DTYPE_SRAM 0x06
-#define CISTPL_DTYPE_DRAM 0x07
-#define CISTPL_DTYPE_FUNCSPEC 0x0d
-#define CISTPL_DTYPE_EXTEND 0x0e
-
-#define CISTPL_MAX_DEVICES 4
-
-typedef struct cistpl_device_t {
- u_char ndev;
- struct {
- u_char type;
- u_char wp;
- u_int speed;
- u_int size;
- } dev[CISTPL_MAX_DEVICES];
-} cistpl_device_t;
-
-#define CISTPL_DEVICE_MWAIT 0x01
-#define CISTPL_DEVICE_3VCC 0x02
-
-typedef struct cistpl_device_o_t {
- u_char flags;
- cistpl_device_t device;
-} cistpl_device_o_t;
-
-#define CISTPL_VERS_1_MAX_PROD_STRINGS 4
-
-typedef struct cistpl_vers_1_t {
- u_char major;
- u_char minor;
- u_char ns;
- u_char ofs[CISTPL_VERS_1_MAX_PROD_STRINGS];
- char str[254];
-} cistpl_vers_1_t;
-
-typedef struct cistpl_jedec_t {
- u_char nid;
- struct {
- u_char mfr;
- u_char info;
- } id[CISTPL_MAX_DEVICES];
-} cistpl_jedec_t;
-
-typedef struct cistpl_manfid_t {
- u_short manf;
- u_short card;
-} cistpl_manfid_t;
-
-#define CISTPL_FUNCID_MULTI 0x00
-#define CISTPL_FUNCID_MEMORY 0x01
-#define CISTPL_FUNCID_SERIAL 0x02
-#define CISTPL_FUNCID_PARALLEL 0x03
-#define CISTPL_FUNCID_FIXED 0x04
-#define CISTPL_FUNCID_VIDEO 0x05
-#define CISTPL_FUNCID_NETWORK 0x06
-#define CISTPL_FUNCID_AIMS 0x07
-#define CISTPL_FUNCID_SCSI 0x08
-
-#define CISTPL_SYSINIT_POST 0x01
-#define CISTPL_SYSINIT_ROM 0x02
-
-typedef struct cistpl_funcid_t {
- u_char func;
- u_char sysinit;
-} cistpl_funcid_t;
-
-typedef struct cistpl_funce_t {
- u_char type;
- u_char data[0];
-} cistpl_funce_t;
-
-/*======================================================================
-
- Modem Function Extension Tuples
-
-======================================================================*/
-
-#define CISTPL_FUNCE_SERIAL_IF 0x00
-#define CISTPL_FUNCE_SERIAL_CAP 0x01
-#define CISTPL_FUNCE_SERIAL_SERV_DATA 0x02
-#define CISTPL_FUNCE_SERIAL_SERV_FAX 0x03
-#define CISTPL_FUNCE_SERIAL_SERV_VOICE 0x04
-#define CISTPL_FUNCE_SERIAL_CAP_DATA 0x05
-#define CISTPL_FUNCE_SERIAL_CAP_FAX 0x06
-#define CISTPL_FUNCE_SERIAL_CAP_VOICE 0x07
-#define CISTPL_FUNCE_SERIAL_IF_DATA 0x08
-#define CISTPL_FUNCE_SERIAL_IF_FAX 0x09
-#define CISTPL_FUNCE_SERIAL_IF_VOICE 0x0a
-
-/* UART identification */
-#define CISTPL_SERIAL_UART_8250 0x00
-#define CISTPL_SERIAL_UART_16450 0x01
-#define CISTPL_SERIAL_UART_16550 0x02
-#define CISTPL_SERIAL_UART_8251 0x03
-#define CISTPL_SERIAL_UART_8530 0x04
-#define CISTPL_SERIAL_UART_85230 0x05
-
-/* UART capabilities */
-#define CISTPL_SERIAL_UART_SPACE 0x01
-#define CISTPL_SERIAL_UART_MARK 0x02
-#define CISTPL_SERIAL_UART_ODD 0x04
-#define CISTPL_SERIAL_UART_EVEN 0x08
-#define CISTPL_SERIAL_UART_5BIT 0x01
-#define CISTPL_SERIAL_UART_6BIT 0x02
-#define CISTPL_SERIAL_UART_7BIT 0x04
-#define CISTPL_SERIAL_UART_8BIT 0x08
-#define CISTPL_SERIAL_UART_1STOP 0x10
-#define CISTPL_SERIAL_UART_MSTOP 0x20
-#define CISTPL_SERIAL_UART_2STOP 0x40
-
-typedef struct cistpl_serial_t {
- u_char uart_type;
- u_char uart_cap_0;
- u_char uart_cap_1;
-} cistpl_serial_t;
-
-typedef struct cistpl_modem_cap_t {
- u_char flow;
- u_char cmd_buf;
- u_char rcv_buf_0, rcv_buf_1, rcv_buf_2;
- u_char xmit_buf_0, xmit_buf_1, xmit_buf_2;
-} cistpl_modem_cap_t;
-
-#define CISTPL_SERIAL_MOD_103 0x01
-#define CISTPL_SERIAL_MOD_V21 0x02
-#define CISTPL_SERIAL_MOD_V23 0x04
-#define CISTPL_SERIAL_MOD_V22 0x08
-#define CISTPL_SERIAL_MOD_212A 0x10
-#define CISTPL_SERIAL_MOD_V22BIS 0x20
-#define CISTPL_SERIAL_MOD_V26 0x40
-#define CISTPL_SERIAL_MOD_V26BIS 0x80
-#define CISTPL_SERIAL_MOD_V27BIS 0x01
-#define CISTPL_SERIAL_MOD_V29 0x02
-#define CISTPL_SERIAL_MOD_V32 0x04
-#define CISTPL_SERIAL_MOD_V32BIS 0x08
-#define CISTPL_SERIAL_MOD_V34 0x10
-
-#define CISTPL_SERIAL_ERR_MNP2_4 0x01
-#define CISTPL_SERIAL_ERR_V42_LAPM 0x02
-
-#define CISTPL_SERIAL_CMPR_V42BIS 0x01
-#define CISTPL_SERIAL_CMPR_MNP5 0x02
-
-#define CISTPL_SERIAL_CMD_AT1 0x01
-#define CISTPL_SERIAL_CMD_AT2 0x02
-#define CISTPL_SERIAL_CMD_AT3 0x04
-#define CISTPL_SERIAL_CMD_MNP_AT 0x08
-#define CISTPL_SERIAL_CMD_V25BIS 0x10
-#define CISTPL_SERIAL_CMD_V25A 0x20
-#define CISTPL_SERIAL_CMD_DMCL 0x40
-
-typedef struct cistpl_data_serv_t {
- u_char max_data_0;
- u_char max_data_1;
- u_char modulation_0;
- u_char modulation_1;
- u_char error_control;
- u_char compression;
- u_char cmd_protocol;
- u_char escape;
- u_char encrypt;
- u_char misc_features;
- u_char ccitt_code[0];
-} cistpl_data_serv_t;
-
-typedef struct cistpl_fax_serv_t {
- u_char max_data_0;
- u_char max_data_1;
- u_char modulation;
- u_char encrypt;
- u_char features_0;
- u_char features_1;
- u_char ccitt_code[0];
-} cistpl_fax_serv_t;
-
-typedef struct cistpl_voice_serv_t {
- u_char max_data_0;
- u_char max_data_1;
-} cistpl_voice_serv_t;
-
-/*======================================================================
-
- LAN Function Extension Tuples
-
-======================================================================*/
-
-#define CISTPL_FUNCE_LAN_TECH 0x01
-#define CISTPL_FUNCE_LAN_SPEED 0x02
-#define CISTPL_FUNCE_LAN_MEDIA 0x03
-#define CISTPL_FUNCE_LAN_NODE_ID 0x04
-#define CISTPL_FUNCE_LAN_CONNECTOR 0x05
-
-/* LAN technologies */
-#define CISTPL_LAN_TECH_ARCNET 0x01
-#define CISTPL_LAN_TECH_ETHERNET 0x02
-#define CISTPL_LAN_TECH_TOKENRING 0x03
-#define CISTPL_LAN_TECH_LOCALTALK 0x04
-#define CISTPL_LAN_TECH_FDDI 0x05
-#define CISTPL_LAN_TECH_ATM 0x06
-#define CISTPL_LAN_TECH_WIRELESS 0x07
-
-typedef struct cistpl_lan_tech_t {
- u_char tech;
-} cistpl_lan_tech_t;
-
-typedef struct cistpl_lan_speed_t {
- u_int speed;
-} cistpl_lan_speed_t;
-
-/* LAN media definitions */
-#define CISTPL_LAN_MEDIA_UTP 0x01
-#define CISTPL_LAN_MEDIA_STP 0x02
-#define CISTPL_LAN_MEDIA_THIN_COAX 0x03
-#define CISTPL_LAN_MEDIA_THICK_COAX 0x04
-#define CISTPL_LAN_MEDIA_FIBER 0x05
-#define CISTPL_LAN_MEDIA_900MHZ 0x06
-#define CISTPL_LAN_MEDIA_2GHZ 0x07
-#define CISTPL_LAN_MEDIA_5GHZ 0x08
-#define CISTPL_LAN_MEDIA_DIFF_IR 0x09
-#define CISTPL_LAN_MEDIA_PTP_IR 0x0a
-
-typedef struct cistpl_lan_media_t {
- u_char media;
-} cistpl_lan_media_t;
-
-typedef struct cistpl_lan_node_id_t {
- u_char nb;
- u_char id[16];
-} cistpl_lan_node_id_t;
-
-typedef struct cistpl_lan_connector_t {
- u_char code;
-} cistpl_lan_connector_t;
-
-/*======================================================================
-
- IDE Function Extension Tuples
-
-======================================================================*/
-
-#define CISTPL_IDE_INTERFACE 0x01
-
-typedef struct cistpl_ide_interface_t {
- u_char interface;
-} cistpl_ide_interface_t;
-
-/* First feature byte */
-#define CISTPL_IDE_SILICON 0x04
-#define CISTPL_IDE_UNIQUE 0x08
-#define CISTPL_IDE_DUAL 0x10
-
-/* Second feature byte */
-#define CISTPL_IDE_HAS_SLEEP 0x01
-#define CISTPL_IDE_HAS_STANDBY 0x02
-#define CISTPL_IDE_HAS_IDLE 0x04
-#define CISTPL_IDE_LOW_POWER 0x08
-#define CISTPL_IDE_REG_INHIBIT 0x10
-#define CISTPL_IDE_HAS_INDEX 0x20
-#define CISTPL_IDE_IOIS16 0x40
-
-typedef struct cistpl_ide_feature_t {
- u_char feature1;
- u_char feature2;
-} cistpl_ide_feature_t;
-
-#define CISTPL_FUNCE_IDE_IFACE 0x01
-#define CISTPL_FUNCE_IDE_MASTER 0x02
-#define CISTPL_FUNCE_IDE_SLAVE 0x03
-
-/*======================================================================
-
- Configuration Table Entries
-
-======================================================================*/
-
-#define CISTPL_BAR_SPACE 0x07
-#define CISTPL_BAR_SPACE_IO 0x10
-#define CISTPL_BAR_PREFETCH 0x20
-#define CISTPL_BAR_CACHEABLE 0x40
-#define CISTPL_BAR_1MEG_MAP 0x80
-
-typedef struct cistpl_bar_t {
- u_char attr;
- u_int size;
-} cistpl_bar_t;
-
-typedef struct cistpl_config_t {
- u_char last_idx;
- u_int base;
- u_int rmask[4];
- u_char subtuples;
-} cistpl_config_t;
-
-/* These are bits in the 'present' field, and indices in 'param' */
-#define CISTPL_POWER_VNOM 0
-#define CISTPL_POWER_VMIN 1
-#define CISTPL_POWER_VMAX 2
-#define CISTPL_POWER_ISTATIC 3
-#define CISTPL_POWER_IAVG 4
-#define CISTPL_POWER_IPEAK 5
-#define CISTPL_POWER_IDOWN 6
-
-#define CISTPL_POWER_HIGHZ_OK 0x01
-#define CISTPL_POWER_HIGHZ_REQ 0x02
-
-typedef struct cistpl_power_t {
- u_char present;
- u_char flags;
- u_int param[7];
-} cistpl_power_t;
-
-typedef struct cistpl_timing_t {
- u_int wait, waitscale;
- u_int ready, rdyscale;
- u_int reserved, rsvscale;
-} cistpl_timing_t;
-
-#define CISTPL_IO_LINES_MASK 0x1f
-#define CISTPL_IO_8BIT 0x20
-#define CISTPL_IO_16BIT 0x40
-#define CISTPL_IO_RANGE 0x80
-
-#define CISTPL_IO_MAX_WIN 16
-
-typedef struct cistpl_io_t {
- u_char flags;
- u_char nwin;
- struct {
- u_int base;
- u_int len;
- } win[CISTPL_IO_MAX_WIN];
-} cistpl_io_t;
-
-typedef struct cistpl_irq_t {
- u_int IRQInfo1;
- u_int IRQInfo2;
-} cistpl_irq_t;
-
-#define CISTPL_MEM_MAX_WIN 8
-
-typedef struct cistpl_mem_t {
- u_char flags;
- u_char nwin;
- struct {
- u_int len;
- u_int card_addr;
- u_int host_addr;
- } win[CISTPL_MEM_MAX_WIN];
-} cistpl_mem_t;
-
-#define CISTPL_CFTABLE_DEFAULT 0x0001
-#define CISTPL_CFTABLE_BVDS 0x0002
-#define CISTPL_CFTABLE_WP 0x0004
-#define CISTPL_CFTABLE_RDYBSY 0x0008
-#define CISTPL_CFTABLE_MWAIT 0x0010
-#define CISTPL_CFTABLE_AUDIO 0x0800
-#define CISTPL_CFTABLE_READONLY 0x1000
-#define CISTPL_CFTABLE_PWRDOWN 0x2000
-
-typedef struct cistpl_cftable_entry_t {
- u_char index;
- u_short flags;
- u_char interface;
- cistpl_power_t vcc, vpp1, vpp2;
- cistpl_timing_t timing;
- cistpl_io_t io;
- cistpl_irq_t irq;
- cistpl_mem_t mem;
- u_char subtuples;
-} cistpl_cftable_entry_t;
-
-#define CISTPL_CFTABLE_MASTER 0x000100
-#define CISTPL_CFTABLE_INVALIDATE 0x000200
-#define CISTPL_CFTABLE_VGA_PALETTE 0x000400
-#define CISTPL_CFTABLE_PARITY 0x000800
-#define CISTPL_CFTABLE_WAIT 0x001000
-#define CISTPL_CFTABLE_SERR 0x002000
-#define CISTPL_CFTABLE_FAST_BACK 0x004000
-#define CISTPL_CFTABLE_BINARY_AUDIO 0x010000
-#define CISTPL_CFTABLE_PWM_AUDIO 0x020000
-
-typedef struct cistpl_cftable_entry_cb_t {
- u_char index;
- u_int flags;
- cistpl_power_t vcc, vpp1, vpp2;
- u_char io;
- cistpl_irq_t irq;
- u_char mem;
- u_char subtuples;
-} cistpl_cftable_entry_cb_t;
-
-typedef struct cistpl_device_geo_t {
- u_char ngeo;
- struct {
- u_char buswidth;
- u_int erase_block;
- u_int read_block;
- u_int write_block;
- u_int partition;
- u_int interleave;
- } geo[CISTPL_MAX_DEVICES];
-} cistpl_device_geo_t;
-
-typedef struct cistpl_vers_2_t {
- u_char vers;
- u_char comply;
- u_short dindex;
- u_char vspec8, vspec9;
- u_char nhdr;
- u_char vendor, info;
- char str[244];
-} cistpl_vers_2_t;
-
-typedef struct cistpl_org_t {
- u_char data_org;
- char desc[30];
-} cistpl_org_t;
-
-#define CISTPL_ORG_FS 0x00
-#define CISTPL_ORG_APPSPEC 0x01
-#define CISTPL_ORG_XIP 0x02
-
-typedef struct cistpl_format_t {
- u_char type;
- u_char edc;
- u_int offset;
- u_int length;
-} cistpl_format_t;
-
-#define CISTPL_FORMAT_DISK 0x00
-#define CISTPL_FORMAT_MEM 0x01
-
-#define CISTPL_EDC_NONE 0x00
-#define CISTPL_EDC_CKSUM 0x01
-#define CISTPL_EDC_CRC 0x02
-#define CISTPL_EDC_PCC 0x03
-
-typedef union cisparse_t {
- cistpl_device_t device;
- cistpl_checksum_t checksum;
- cistpl_longlink_t longlink;
- cistpl_longlink_mfc_t longlink_mfc;
- cistpl_vers_1_t version_1;
- cistpl_altstr_t altstr;
- cistpl_jedec_t jedec;
- cistpl_manfid_t manfid;
- cistpl_funcid_t funcid;
- cistpl_funce_t funce;
- cistpl_bar_t bar;
- cistpl_config_t config;
- cistpl_cftable_entry_t cftable_entry;
- cistpl_cftable_entry_cb_t cftable_entry_cb;
- cistpl_device_geo_t device_geo;
- cistpl_vers_2_t vers_2;
- cistpl_org_t org;
- cistpl_format_t format;
-} cisparse_t;
-
-typedef struct tuple_t {
- u_int Attributes;
- cisdata_t DesiredTuple;
- u_int Flags; /* internal use */
- u_int LinkOffset; /* internal use */
- u_int CISOffset; /* internal use */
- cisdata_t TupleCode;
- cisdata_t TupleLink;
- cisdata_t TupleOffset;
- cisdata_t TupleDataMax;
- cisdata_t TupleDataLen;
- cisdata_t *TupleData;
-} tuple_t;
-
-/* Special cisdata_t value */
-#define RETURN_FIRST_TUPLE 0xff
-
-/* Attributes for tuple calls */
-#define TUPLE_RETURN_LINK 0x01
-#define TUPLE_RETURN_COMMON 0x02
-
-/* For ValidateCIS */
-typedef struct cisinfo_t {
- u_int Chains;
-} cisinfo_t;
-
-#define CISTPL_MAX_CIS_SIZE 0x200
-
-/* For ReplaceCIS */
-typedef struct cisdump_t {
- u_int Length;
- cisdata_t Data[CISTPL_MAX_CIS_SIZE];
-} cisdump_t;
-
-#endif /* LINUX_CISTPL_H */
diff --git a/mdk-stage1/pcmcia_/cs.h b/mdk-stage1/pcmcia_/cs.h
deleted file mode 100644
index dea6937eb..000000000
--- a/mdk-stage1/pcmcia_/cs.h
+++ /dev/null
@@ -1,465 +0,0 @@
-/*
- * cs.h 1.73 2001/08/24 12:16:12
- *
- * The contents of this file are subject to the Mozilla Public License
- * Version 1.1 (the "License"); you may not use this file except in
- * compliance with the License. You may obtain a copy of the License
- * at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS"
- * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
- * the License for the specific language governing rights and
- * limitations under the License.
- *
- * The initial developer of the original code is David A. Hinds
- * <dahinds@users.sourceforge.net>. Portions created by David A. Hinds
- * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
- *
- * Alternatively, the contents of this file may be used under the
- * terms of the GNU General Public License version 2 (the "GPL"), in
- * which case the provisions of the GPL are applicable instead of the
- * above. If you wish to allow the use of your version of this file
- * only under the terms of the GPL and not to allow others to use
- * your version of this file under the MPL, indicate your decision by
- * deleting the provisions above and replace them with the notice and
- * other provisions required by the GPL. If you do not delete the
- * provisions above, a recipient may use your version of this file
- * under either the MPL or the GPL.
- */
-
-#ifndef _LINUX_CS_H
-#define _LINUX_CS_H
-
-/* For AccessConfigurationRegister */
-typedef struct conf_reg_t {
- u_char Function;
- u_int Action;
- off_t Offset;
- u_int Value;
-} conf_reg_t;
-
-/* Actions */
-#define CS_READ 1
-#define CS_WRITE 2
-
-/* for AdjustResourceInfo */
-typedef struct adjust_t {
- u_int Action;
- u_int Resource;
- u_int Attributes;
- union {
- struct memory {
- u_long Base;
- u_long Size;
- } memory;
- struct io {
- ioaddr_t BasePort;
- ioaddr_t NumPorts;
- u_int IOAddrLines;
- } io;
- struct irq {
- u_int IRQ;
- } irq;
- } resource;
-} adjust_t;
-
-/* Action field */
-#define REMOVE_MANAGED_RESOURCE 1
-#define ADD_MANAGED_RESOURCE 2
-#define GET_FIRST_MANAGED_RESOURCE 3
-#define GET_NEXT_MANAGED_RESOURCE 4
-/* Resource field */
-#define RES_MEMORY_RANGE 1
-#define RES_IO_RANGE 2
-#define RES_IRQ 3
-/* Attribute field */
-#define RES_IRQ_TYPE 0x03
-#define RES_IRQ_TYPE_EXCLUSIVE 0
-#define RES_IRQ_TYPE_TIME 1
-#define RES_IRQ_TYPE_DYNAMIC 2
-#define RES_IRQ_CSC 0x04
-#define RES_SHARED 0x08
-#define RES_RESERVED 0x10
-#define RES_ALLOCATED 0x20
-#define RES_REMOVED 0x40
-
-typedef struct servinfo_t {
- char Signature[2];
- u_int Count;
- u_int Revision;
- u_int CSLevel;
- char *VendorString;
-} servinfo_t;
-
-typedef struct event_callback_args_t {
- client_handle_t client_handle;
- void *info;
- void *mtdrequest;
- void *buffer;
- void *misc;
- void *client_data;
- struct bus_operations *bus;
-} event_callback_args_t;
-
-/* for GetConfigurationInfo */
-typedef struct config_info_t {
- u_char Function;
- u_int Attributes;
- u_int Vcc, Vpp1, Vpp2;
- u_int IntType;
- u_int ConfigBase;
- u_char Status, Pin, Copy, Option, ExtStatus;
- u_int Present;
- u_int CardValues;
- u_int AssignedIRQ;
- u_int IRQAttributes;
- ioaddr_t BasePort1;
- ioaddr_t NumPorts1;
- u_int Attributes1;
- ioaddr_t BasePort2;
- ioaddr_t NumPorts2;
- u_int Attributes2;
- u_int IOAddrLines;
-} config_info_t;
-
-/* For CardValues field */
-#define CV_OPTION_VALUE 0x01
-#define CV_STATUS_VALUE 0x02
-#define CV_PIN_REPLACEMENT 0x04
-#define CV_COPY_VALUE 0x08
-#define CV_EXT_STATUS 0x10
-
-/* For GetFirst/NextClient */
-typedef struct client_req_t {
- socket_t Socket;
- u_int Attributes;
-} client_req_t;
-
-#define CLIENT_THIS_SOCKET 0x01
-
-/* For RegisterClient */
-typedef struct client_reg_t {
- dev_info_t *dev_info;
- u_int Attributes;
- u_int EventMask;
- int (*event_handler)(event_t event, int priority,
- event_callback_args_t *);
- event_callback_args_t event_callback_args;
- u_int Version;
-} client_reg_t;
-
-/* ModifyConfiguration */
-typedef struct modconf_t {
- u_int Attributes;
- u_int Vcc, Vpp1, Vpp2;
-} modconf_t;
-
-/* Attributes for ModifyConfiguration */
-#define CONF_IRQ_CHANGE_VALID 0x100
-#define CONF_VCC_CHANGE_VALID 0x200
-#define CONF_VPP1_CHANGE_VALID 0x400
-#define CONF_VPP2_CHANGE_VALID 0x800
-
-/* For RequestConfiguration */
-typedef struct config_req_t {
- u_int Attributes;
- u_int Vcc, Vpp1, Vpp2;
- u_int IntType;
- u_int ConfigBase;
- u_char Status, Pin, Copy, ExtStatus;
- u_char ConfigIndex;
- u_int Present;
-} config_req_t;
-
-/* Attributes for RequestConfiguration */
-#define CONF_ENABLE_IRQ 0x01
-#define CONF_ENABLE_DMA 0x02
-#define CONF_ENABLE_SPKR 0x04
-#define CONF_VALID_CLIENT 0x100
-
-/* IntType field */
-#define INT_MEMORY 0x01
-#define INT_MEMORY_AND_IO 0x02
-#define INT_CARDBUS 0x04
-#define INT_ZOOMED_VIDEO 0x08
-
-/* For RequestIO and ReleaseIO */
-typedef struct io_req_t {
- ioaddr_t BasePort1;
- ioaddr_t NumPorts1;
- u_int Attributes1;
- ioaddr_t BasePort2;
- ioaddr_t NumPorts2;
- u_int Attributes2;
- u_int IOAddrLines;
-} io_req_t;
-
-/* Attributes for RequestIO and ReleaseIO */
-#define IO_SHARED 0x01
-#define IO_FIRST_SHARED 0x02
-#define IO_FORCE_ALIAS_ACCESS 0x04
-#define IO_DATA_PATH_WIDTH 0x18
-#define IO_DATA_PATH_WIDTH_8 0x00
-#define IO_DATA_PATH_WIDTH_16 0x08
-#define IO_DATA_PATH_WIDTH_AUTO 0x10
-
-/* For RequestIRQ and ReleaseIRQ */
-typedef struct irq_req_t {
- u_int Attributes;
- u_int AssignedIRQ;
- u_int IRQInfo1, IRQInfo2;
- void *Handler;
- void *Instance;
-} irq_req_t;
-
-/* Attributes for RequestIRQ and ReleaseIRQ */
-#define IRQ_TYPE 0x03
-#define IRQ_TYPE_EXCLUSIVE 0x00
-#define IRQ_TYPE_TIME 0x01
-#define IRQ_TYPE_DYNAMIC_SHARING 0x02
-#define IRQ_FORCED_PULSE 0x04
-#define IRQ_FIRST_SHARED 0x08
-#define IRQ_HANDLE_PRESENT 0x10
-#define IRQ_PULSE_ALLOCATED 0x100
-
-/* Bits in IRQInfo1 field */
-#define IRQ_MASK 0x0f
-#define IRQ_NMI_ID 0x01
-#define IRQ_IOCK_ID 0x02
-#define IRQ_BERR_ID 0x04
-#define IRQ_VEND_ID 0x08
-#define IRQ_INFO2_VALID 0x10
-#define IRQ_LEVEL_ID 0x20
-#define IRQ_PULSE_ID 0x40
-#define IRQ_SHARE_ID 0x80
-
-typedef struct eventmask_t {
- u_int Attributes;
- u_int EventMask;
-} eventmask_t;
-
-#define CONF_EVENT_MASK_VALID 0x01
-
-/* Configuration registers present */
-#define PRESENT_OPTION 0x001
-#define PRESENT_STATUS 0x002
-#define PRESENT_PIN_REPLACE 0x004
-#define PRESENT_COPY 0x008
-#define PRESENT_EXT_STATUS 0x010
-#define PRESENT_IOBASE_0 0x020
-#define PRESENT_IOBASE_1 0x040
-#define PRESENT_IOBASE_2 0x080
-#define PRESENT_IOBASE_3 0x100
-#define PRESENT_IOSIZE 0x200
-
-/* For GetMemPage, MapMemPage */
-typedef struct memreq_t {
- u_int CardOffset;
- page_t Page;
-} memreq_t;
-
-/* For ModifyWindow */
-typedef struct modwin_t {
- u_int Attributes;
- u_int AccessSpeed;
-} modwin_t;
-
-/* For RequestWindow */
-typedef struct win_req_t {
- u_int Attributes;
- u_long Base;
- u_int Size;
- u_int AccessSpeed;
-} win_req_t;
-
-/* Attributes for RequestWindow */
-#define WIN_ADDR_SPACE 0x0001
-#define WIN_ADDR_SPACE_MEM 0x0000
-#define WIN_ADDR_SPACE_IO 0x0001
-#define WIN_MEMORY_TYPE 0x0002
-#define WIN_MEMORY_TYPE_CM 0x0000
-#define WIN_MEMORY_TYPE_AM 0x0002
-#define WIN_ENABLE 0x0004
-#define WIN_DATA_WIDTH 0x0018
-#define WIN_DATA_WIDTH_8 0x0000
-#define WIN_DATA_WIDTH_16 0x0008
-#define WIN_DATA_WIDTH_32 0x0010
-#define WIN_PAGED 0x0020
-#define WIN_SHARED 0x0040
-#define WIN_FIRST_SHARED 0x0080
-#define WIN_USE_WAIT 0x0100
-#define WIN_STRICT_ALIGN 0x0200
-#define WIN_MAP_BELOW_1MB 0x0400
-#define WIN_PREFETCH 0x0800
-#define WIN_CACHEABLE 0x1000
-#define WIN_BAR_MASK 0xe000
-#define WIN_BAR_SHIFT 13
-
-/* Attributes for RegisterClient */
-#define INFO_MASTER_CLIENT 0x01
-#define INFO_IO_CLIENT 0x02
-#define INFO_MTD_CLIENT 0x04
-#define INFO_MEM_CLIENT 0x08
-#define MAX_NUM_CLIENTS 3
-
-#define INFO_CARD_SHARE 0x10
-#define INFO_CARD_EXCL 0x20
-
-typedef struct cs_status_t {
- u_char Function;
- event_t CardState;
- event_t SocketState;
-} cs_status_t;
-
-typedef struct error_info_t {
- int func;
- int retcode;
-} error_info_t;
-
-/* Special stuff for binding drivers to sockets */
-typedef struct bind_req_t {
- socket_t Socket;
- u_char Function;
- dev_info_t *dev_info;
-} bind_req_t;
-
-/* Flag to bind to all functions */
-#define BIND_FN_ALL 0xff
-
-typedef struct mtd_bind_t {
- socket_t Socket;
- u_int Attributes;
- u_int CardOffset;
- dev_info_t *dev_info;
-} mtd_bind_t;
-
-/* Events */
-#define CS_EVENT_PRI_LOW 0
-#define CS_EVENT_PRI_HIGH 1
-
-#define CS_EVENT_WRITE_PROTECT 0x000001
-#define CS_EVENT_CARD_LOCK 0x000002
-#define CS_EVENT_CARD_INSERTION 0x000004
-#define CS_EVENT_CARD_REMOVAL 0x000008
-#define CS_EVENT_BATTERY_DEAD 0x000010
-#define CS_EVENT_BATTERY_LOW 0x000020
-#define CS_EVENT_READY_CHANGE 0x000040
-#define CS_EVENT_CARD_DETECT 0x000080
-#define CS_EVENT_RESET_REQUEST 0x000100
-#define CS_EVENT_RESET_PHYSICAL 0x000200
-#define CS_EVENT_CARD_RESET 0x000400
-#define CS_EVENT_REGISTRATION_COMPLETE 0x000800
-#define CS_EVENT_RESET_COMPLETE 0x001000
-#define CS_EVENT_PM_SUSPEND 0x002000
-#define CS_EVENT_PM_RESUME 0x004000
-#define CS_EVENT_INSERTION_REQUEST 0x008000
-#define CS_EVENT_EJECTION_REQUEST 0x010000
-#define CS_EVENT_MTD_REQUEST 0x020000
-#define CS_EVENT_ERASE_COMPLETE 0x040000
-#define CS_EVENT_REQUEST_ATTENTION 0x080000
-#define CS_EVENT_CB_DETECT 0x100000
-#define CS_EVENT_3VCARD 0x200000
-#define CS_EVENT_XVCARD 0x400000
-
-/* Return codes */
-#define CS_SUCCESS 0x00
-#define CS_BAD_ADAPTER 0x01
-#define CS_BAD_ATTRIBUTE 0x02
-#define CS_BAD_BASE 0x03
-#define CS_BAD_EDC 0x04
-#define CS_BAD_IRQ 0x06
-#define CS_BAD_OFFSET 0x07
-#define CS_BAD_PAGE 0x08
-#define CS_READ_FAILURE 0x09
-#define CS_BAD_SIZE 0x0a
-#define CS_BAD_SOCKET 0x0b
-#define CS_BAD_TYPE 0x0d
-#define CS_BAD_VCC 0x0e
-#define CS_BAD_VPP 0x0f
-#define CS_BAD_WINDOW 0x11
-#define CS_WRITE_FAILURE 0x12
-#define CS_NO_CARD 0x14
-#define CS_UNSUPPORTED_FUNCTION 0x15
-#define CS_UNSUPPORTED_MODE 0x16
-#define CS_BAD_SPEED 0x17
-#define CS_BUSY 0x18
-#define CS_GENERAL_FAILURE 0x19
-#define CS_WRITE_PROTECTED 0x1a
-#define CS_BAD_ARG_LENGTH 0x1b
-#define CS_BAD_ARGS 0x1c
-#define CS_CONFIGURATION_LOCKED 0x1d
-#define CS_IN_USE 0x1e
-#define CS_NO_MORE_ITEMS 0x1f
-#define CS_OUT_OF_RESOURCE 0x20
-#define CS_BAD_HANDLE 0x21
-
-#define CS_BAD_TUPLE 0x40
-
-#ifdef __KERNEL__
-
-/*
- * Calls to set up low-level "Socket Services" drivers
- */
-
-typedef int (*ss_entry_t)(u_int sock, u_int cmd, void *arg);
-extern int register_ss_entry(int nsock, ss_entry_t entry);
-extern void unregister_ss_entry(ss_entry_t entry);
-
-/*
- * The main Card Services entry point
- */
-
-enum service {
- AccessConfigurationRegister, AddSocketServices,
- AdjustResourceInfo, CheckEraseQueue, CloseMemory, CopyMemory,
- DeregisterClient, DeregisterEraseQueue, GetCardServicesInfo,
- GetClientInfo, GetConfigurationInfo, GetEventMask,
- GetFirstClient, GetFirstPartion, GetFirstRegion, GetFirstTuple,
- GetNextClient, GetNextPartition, GetNextRegion, GetNextTuple,
- GetStatus, GetTupleData, MapLogSocket, MapLogWindow, MapMemPage,
- MapPhySocket, MapPhyWindow, ModifyConfiguration, ModifyWindow,
- OpenMemory, ParseTuple, ReadMemory, RegisterClient,
- RegisterEraseQueue, RegisterMTD, RegisterTimer,
- ReleaseConfiguration, ReleaseExclusive, ReleaseIO, ReleaseIRQ,
- ReleaseSocketMask, ReleaseWindow, ReplaceSocketServices,
- RequestConfiguration, RequestExclusive, RequestIO, RequestIRQ,
- RequestSocketMask, RequestWindow, ResetCard, ReturnSSEntry,
- SetEventMask, SetRegion, ValidateCIS, VendorSpecific,
- WriteMemory, BindDevice, BindMTD, ReportError,
- SuspendCard, ResumeCard, EjectCard, InsertCard, ReplaceCIS,
- GetFirstWindow, GetNextWindow, GetMemPage
-};
-
-#ifdef IN_CARD_SERVICES
-extern int CardServices(int func, void *a1, void *a2, void *a3);
-#else
-extern int CardServices(int func, ...);
-#endif
-
-#ifdef __BEOS__
-#define SS_MODULE_NAME(s) ("busses/pcmcia/" s "/v1")
-#define MTD_MODULE_NAME(s) ("busses/pcmcia/" s "/v1")
-#define CS_CLIENT_MODULE_NAME "bus_managers/pcmcia_cs/client/v1"
-typedef struct cs_client_module_info {
- bus_manager_info binfo;
- int (*_CardServices)(int, ...);
- int (*_MTDHelperEntry)(int, ...);
- void (*_add_timer)(struct timer_list *);
- void (*_del_timer)(struct timer_list *);
-} cs_client_module_info;
-#define CS_SOCKET_MODULE_NAME "bus_managers/pcmcia_cs/socket/v1"
-typedef struct cs_socket_module_info {
- bus_manager_info binfo;
- int (*_register_ss_entry)(int, ss_entry_t);
- void (*_unregister_ss_entry)(ss_entry_t);
- void (*_add_timer)(struct timer_list *);
- void (*_del_timer)(struct timer_list *);
- int (*register_resource)(int, u_long, u_long);
- int (*release_resource)(int, u_long, u_long);
- int (*check_resource)(int, u_long, u_long);
-} cs_socket_module_info;
-#endif
-
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_CS_H */
diff --git a/mdk-stage1/pcmcia_/cs_types.h b/mdk-stage1/pcmcia_/cs_types.h
deleted file mode 100644
index a6b56b6bf..000000000
--- a/mdk-stage1/pcmcia_/cs_types.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * cs_types.h 1.19 2001/08/24 12:16:12
- *
- * The contents of this file are subject to the Mozilla Public License
- * Version 1.1 (the "License"); you may not use this file except in
- * compliance with the License. You may obtain a copy of the License
- * at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS"
- * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
- * the License for the specific language governing rights and
- * limitations under the License.
- *
- * The initial developer of the original code is David A. Hinds
- * <dahinds@users.sourceforge.net>. Portions created by David A. Hinds
- * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
- *
- * Alternatively, the contents of this file may be used under the
- * terms of the GNU General Public License version 2 (the "GPL"), in
- * which case the provisions of the GPL are applicable instead of the
- * above. If you wish to allow the use of your version of this file
- * only under the terms of the GPL and not to allow others to use
- * your version of this file under the MPL, indicate your decision by
- * deleting the provisions above and replace them with the notice and
- * other provisions required by the GPL. If you do not delete the
- * provisions above, a recipient may use your version of this file
- * under either the MPL or the GPL.
- */
-
-#ifndef _LINUX_CS_TYPES_H
-#define _LINUX_CS_TYPES_H
-
-#ifdef __linux__
-#ifdef __KERNEL__
-#include <linux/types.h>
-#else
-#include <sys/types.h>
-#endif
-#endif
-
-typedef u_short socket_t;
-typedef u_short ioaddr_t;
-typedef u_int event_t;
-typedef u_char cisdata_t;
-typedef u_short page_t;
-
-struct client_t;
-typedef struct client_t *client_handle_t;
-
-struct window_t;
-typedef struct window_t *window_handle_t;
-
-struct region_t;
-typedef struct region_t *memory_handle_t;
-
-struct eraseq_t;
-typedef struct eraseq_t *eraseq_handle_t;
-
-#ifndef DEV_NAME_LEN
-#define DEV_NAME_LEN 32
-#endif
-
-typedef char dev_info_t[DEV_NAME_LEN];
-
-#endif /* _LINUX_CS_TYPES_H */
diff --git a/mdk-stage1/pcmcia_/driver_ops.h b/mdk-stage1/pcmcia_/driver_ops.h
deleted file mode 100644
index a7223e2c6..000000000
--- a/mdk-stage1/pcmcia_/driver_ops.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * driver_ops.h 1.16 2001/08/24 12:16:13
- *
- * The contents of this file are subject to the Mozilla Public License
- * Version 1.1 (the "License"); you may not use this file except in
- * compliance with the License. You may obtain a copy of the License
- * at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS"
- * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
- * the License for the specific language governing rights and
- * limitations under the License.
- *
- * The initial developer of the original code is David A. Hinds
- * <dahinds@users.sourceforge.net>. Portions created by David A. Hinds
- * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
- *
- * Alternatively, the contents of this file may be used under the
- * terms of the GNU General Public License version 2 (the "GPL"), in
- * which case the provisions of the GPL are applicable instead of the
- * above. If you wish to allow the use of your version of this file
- * only under the terms of the GPL and not to allow others to use
- * your version of this file under the MPL, indicate your decision by
- * deleting the provisions above and replace them with the notice and
- * other provisions required by the GPL. If you do not delete the
- * provisions above, a recipient may use your version of this file
- * under either the MPL or the GPL.
- */
-
-#ifndef _LINUX_DRIVER_OPS_H
-#define _LINUX_DRIVER_OPS_H
-
-#ifndef DEV_NAME_LEN
-#define DEV_NAME_LEN 32
-#endif
-
-#ifdef __KERNEL__
-
-typedef struct dev_node_t {
- char dev_name[DEV_NAME_LEN];
- u_short major, minor;
- struct dev_node_t *next;
-} dev_node_t;
-
-typedef struct dev_locator_t {
- enum { LOC_ISA, LOC_PCI } bus;
- union {
- struct {
- u_short io_base_1, io_base_2;
- u_long mem_base;
- u_char irq, dma;
- } isa;
- struct {
- u_char bus;
- u_char devfn;
- } pci;
- } b;
-} dev_locator_t;
-
-typedef struct driver_operations {
- char *name;
- dev_node_t *(*attach) (dev_locator_t *loc);
- void (*suspend) (dev_node_t *dev);
- void (*resume) (dev_node_t *dev);
- void (*detach) (dev_node_t *dev);
-} driver_operations;
-
-int register_driver(struct driver_operations *ops);
-void unregister_driver(struct driver_operations *ops);
-
-#ifdef __BEOS__
-#define CB_ENABLER_MODULE_NAME "bus_managers/cb_enabler/v1"
-typedef struct cb_enabler_module_info {
- bus_manager_info binfo;
- int (*register_driver)(struct driver_operations *ops);
- void (*unregister_driver)(struct driver_operations *ops);
-} cb_enabler_module_info;
-#endif /* __BEOS__ */
-
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_DRIVER_OPS_H */
diff --git a/mdk-stage1/pcmcia_/ds.h b/mdk-stage1/pcmcia_/ds.h
deleted file mode 100644
index d191b09d6..000000000
--- a/mdk-stage1/pcmcia_/ds.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * ds.h 1.57 2001/08/24 12:16:13
- *
- * The contents of this file are subject to the Mozilla Public License
- * Version 1.1 (the "License"); you may not use this file except in
- * compliance with the License. You may obtain a copy of the License
- * at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS"
- * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
- * the License for the specific language governing rights and
- * limitations under the License.
- *
- * The initial developer of the original code is David A. Hinds
- * <dahinds@users.sourceforge.net>. Portions created by David A. Hinds
- * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
- *
- * Alternatively, the contents of this file may be used under the
- * terms of the GNU General Public License version 2 (the "GPL"), in
- * which case the provisions of the GPL are applicable instead of the
- * above. If you wish to allow the use of your version of this file
- * only under the terms of the GPL and not to allow others to use
- * your version of this file under the MPL, indicate your decision by
- * deleting the provisions above and replace them with the notice and
- * other provisions required by the GPL. If you do not delete the
- * provisions above, a recipient may use your version of this file
- * under either the MPL or the GPL.
- */
-
-#ifndef _LINUX_DS_H
-#define _LINUX_DS_H
-
-#include <pcmcia_/driver_ops.h>
-#include <pcmcia_/bulkmem.h>
-
-typedef struct tuple_parse_t {
- tuple_t tuple;
- cisdata_t data[255];
- cisparse_t parse;
-} tuple_parse_t;
-
-typedef struct win_info_t {
- window_handle_t handle;
- win_req_t window;
- memreq_t map;
-} win_info_t;
-
-typedef struct bind_info_t {
- dev_info_t dev_info;
- u_char function;
- struct dev_link_t *instance;
- char name[DEV_NAME_LEN];
- u_short major, minor;
- void *next;
-} bind_info_t;
-
-typedef struct mtd_info_t {
- dev_info_t dev_info;
- u_int Attributes;
- u_int CardOffset;
-} mtd_info_t;
-
-typedef union ds_ioctl_arg_t {
- servinfo_t servinfo;
- adjust_t adjust;
- config_info_t config;
- tuple_t tuple;
- tuple_parse_t tuple_parse;
- client_req_t client_req;
- cs_status_t status;
- conf_reg_t conf_reg;
- cisinfo_t cisinfo;
- region_info_t region;
- bind_info_t bind_info;
- mtd_info_t mtd_info;
- win_info_t win_info;
- cisdump_t cisdump;
-} ds_ioctl_arg_t;
-
-#define DS_GET_CARD_SERVICES_INFO _IOR ('d', 1, servinfo_t)
-#define DS_ADJUST_RESOURCE_INFO _IOWR('d', 2, adjust_t)
-#define DS_GET_CONFIGURATION_INFO _IOWR('d', 3, config_info_t)
-#define DS_GET_FIRST_TUPLE _IOWR('d', 4, tuple_t)
-#define DS_GET_NEXT_TUPLE _IOWR('d', 5, tuple_t)
-#define DS_GET_TUPLE_DATA _IOWR('d', 6, tuple_parse_t)
-#define DS_PARSE_TUPLE _IOWR('d', 7, tuple_parse_t)
-#define DS_RESET_CARD _IO ('d', 8)
-#define DS_GET_STATUS _IOWR('d', 9, cs_status_t)
-#define DS_ACCESS_CONFIGURATION_REGISTER _IOWR('d', 10, conf_reg_t)
-#define DS_VALIDATE_CIS _IOR ('d', 11, cisinfo_t)
-#define DS_SUSPEND_CARD _IO ('d', 12)
-#define DS_RESUME_CARD _IO ('d', 13)
-#define DS_EJECT_CARD _IO ('d', 14)
-#define DS_INSERT_CARD _IO ('d', 15)
-#define DS_GET_FIRST_REGION _IOWR('d', 16, region_info_t)
-#define DS_GET_NEXT_REGION _IOWR('d', 17, region_info_t)
-#define DS_REPLACE_CIS _IOWR('d', 18, cisdump_t)
-#define DS_GET_FIRST_WINDOW _IOR ('d', 19, win_info_t)
-#define DS_GET_NEXT_WINDOW _IOWR('d', 20, win_info_t)
-#define DS_GET_MEM_PAGE _IOWR('d', 21, win_info_t)
-
-#define DS_BIND_REQUEST _IOWR('d', 60, bind_info_t)
-#define DS_GET_DEVICE_INFO _IOWR('d', 61, bind_info_t)
-#define DS_GET_NEXT_DEVICE _IOWR('d', 62, bind_info_t)
-#define DS_UNBIND_REQUEST _IOW ('d', 63, bind_info_t)
-#define DS_BIND_MTD _IOWR('d', 64, mtd_info_t)
-
-#ifdef __KERNEL__
-
-typedef struct dev_link_t {
- dev_node_t *dev;
- u_int state, open;
- wait_queue_head_t pending;
- struct timer_list release;
- client_handle_t handle;
- io_req_t io;
- irq_req_t irq;
- config_req_t conf;
- window_handle_t win;
- void *priv;
- struct dev_link_t *next;
-} dev_link_t;
-
-/* Flags for device state */
-#define DEV_PRESENT 0x01
-#define DEV_CONFIG 0x02
-#define DEV_STALE_CONFIG 0x04 /* release on close */
-#define DEV_STALE_LINK 0x08 /* detach on release */
-#define DEV_CONFIG_PENDING 0x10
-#define DEV_RELEASE_PENDING 0x20
-#define DEV_SUSPEND 0x40
-#define DEV_BUSY 0x80
-
-#define DEV_OK(l) \
- ((l) && ((l->state & ~DEV_BUSY) == (DEV_CONFIG|DEV_PRESENT)))
-
-int register_pccard_driver(dev_info_t *dev_info,
- dev_link_t *(*attach)(void),
- void (*detach)(dev_link_t *));
-
-int unregister_pccard_driver(dev_info_t *dev_info);
-
-#define register_pcmcia_driver register_pccard_driver
-#define unregister_pcmcia_driver unregister_pccard_driver
-
-#ifdef __BEOS__
-#define DS_MODULE_NAME "bus_managers/pcmcia_ds/v1"
-typedef struct ds_module_info {
- bus_manager_info binfo;
- int (*_register_pccard_driver)(dev_info_t *,
- dev_link_t *(*)(void),
- void (*)(dev_link_t *));
- int (*_unregister_pccard_driver)(dev_info_t *);
- struct driver_info_t **root_driver;
- int *sockets;
- struct socket_info_t **socket_table;
- sem_id *list_sem;
-} ds_module_info;
-#endif /* __BEOS__ */
-
-#endif /* __KERNEL__ */
-
-#endif /* _LINUX_DS_H */
diff --git a/mdk-stage1/pcmcia_/i82365.h b/mdk-stage1/pcmcia_/i82365.h
deleted file mode 100644
index 27ee5837c..000000000
--- a/mdk-stage1/pcmcia_/i82365.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * i82365.h 1.21 2001/08/24 12:15:33
- *
- * The contents of this file are subject to the Mozilla Public License
- * Version 1.1 (the "License"); you may not use this file except in
- * compliance with the License. You may obtain a copy of the License
- * at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS"
- * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
- * the License for the specific language governing rights and
- * limitations under the License.
- *
- * The initial developer of the original code is David A. Hinds
- * <dahinds@users.sourceforge.net>. Portions created by David A. Hinds
- * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
- *
- * Alternatively, the contents of this file may be used under the
- * terms of the GNU General Public License version 2 (the "GPL"), in
- * which case the provisions of the GPL are applicable instead of the
- * above. If you wish to allow the use of your version of this file
- * only under the terms of the GPL and not to allow others to use
- * your version of this file under the MPL, indicate your decision by
- * deleting the provisions above and replace them with the notice and
- * other provisions required by the GPL. If you do not delete the
- * provisions above, a recipient may use your version of this file
- * under either the MPL or the GPL.
- */
-
-#ifndef _LINUX_I82365_H
-#define _LINUX_I82365_H
-
-/* register definitions for the Intel 82365SL PCMCIA controller */
-
-/* Offsets for PCIC registers */
-#define I365_IDENT 0x00 /* Identification and revision */
-#define I365_STATUS 0x01 /* Interface status */
-#define I365_POWER 0x02 /* Power and RESETDRV control */
-#define I365_INTCTL 0x03 /* Interrupt and general control */
-#define I365_CSC 0x04 /* Card status change */
-#define I365_CSCINT 0x05 /* Card status change interrupt control */
-#define I365_ADDRWIN 0x06 /* Address window enable */
-#define I365_IOCTL 0x07 /* I/O control */
-#define I365_GENCTL 0x16 /* Card detect and general control */
-#define I365_GBLCTL 0x1E /* Global control register */
-
-/* Offsets for I/O and memory window registers */
-#define I365_IO(map) (0x08+((map)<<2))
-#define I365_MEM(map) (0x10+((map)<<3))
-#define I365_W_START 0
-#define I365_W_STOP 2
-#define I365_W_OFF 4
-
-/* Flags for I365_STATUS */
-#define I365_CS_BVD1 0x01
-#define I365_CS_STSCHG 0x01
-#define I365_CS_BVD2 0x02
-#define I365_CS_SPKR 0x02
-#define I365_CS_DETECT 0x0C
-#define I365_CS_WRPROT 0x10
-#define I365_CS_READY 0x20 /* Inverted */
-#define I365_CS_POWERON 0x40
-#define I365_CS_GPI 0x80
-
-/* Flags for I365_POWER */
-#define I365_PWR_OFF 0x00 /* Turn off the socket */
-#define I365_PWR_OUT 0x80 /* Output enable */
-#define I365_PWR_NORESET 0x40 /* Disable RESETDRV on resume */
-#define I365_PWR_AUTO 0x20 /* Auto pwr switch enable */
-#define I365_VCC_MASK 0x18 /* Mask for turning off Vcc */
-/* There are different layouts for B-step and DF-step chips: the B
- step has independent Vpp1/Vpp2 control, and the DF step has only
- Vpp1 control, plus 3V control */
-#define I365_VCC_5V 0x10 /* Vcc = 5.0v */
-#define I365_VCC_3V 0x18 /* Vcc = 3.3v */
-#define I365_VPP2_MASK 0x0c /* Mask for turning off Vpp2 */
-#define I365_VPP2_5V 0x04 /* Vpp2 = 5.0v */
-#define I365_VPP2_12V 0x08 /* Vpp2 = 12.0v */
-#define I365_VPP1_MASK 0x03 /* Mask for turning off Vpp1 */
-#define I365_VPP1_5V 0x01 /* Vpp2 = 5.0v */
-#define I365_VPP1_12V 0x02 /* Vpp2 = 12.0v */
-
-/* Flags for I365_INTCTL */
-#define I365_RING_ENA 0x80
-#define I365_PC_RESET 0x40
-#define I365_PC_IOCARD 0x20
-#define I365_INTR_ENA 0x10
-#define I365_IRQ_MASK 0x0F
-
-/* Flags for I365_CSC and I365_CSCINT*/
-#define I365_CSC_BVD1 0x01
-#define I365_CSC_STSCHG 0x01
-#define I365_CSC_BVD2 0x02
-#define I365_CSC_READY 0x04
-#define I365_CSC_DETECT 0x08
-#define I365_CSC_ANY 0x0F
-#define I365_CSC_GPI 0x10
-
-/* Flags for I365_ADDRWIN */
-#define I365_ADDR_MEMCS16 0x20
-#define I365_ENA_IO(map) (0x40 << (map))
-#define I365_ENA_MEM(map) (0x01 << (map))
-
-/* Flags for I365_IOCTL */
-#define I365_IOCTL_MASK(map) (0x0F << (map<<2))
-#define I365_IOCTL_WAIT(map) (0x08 << (map<<2))
-#define I365_IOCTL_0WS(map) (0x04 << (map<<2))
-#define I365_IOCTL_IOCS16(map) (0x02 << (map<<2))
-#define I365_IOCTL_16BIT(map) (0x01 << (map<<2))
-
-/* Flags for I365_GENCTL */
-#define I365_CTL_16DELAY 0x01
-#define I365_CTL_RESET 0x02
-#define I365_CTL_GPI_ENA 0x04
-#define I365_CTL_GPI_CTL 0x08
-#define I365_CTL_RESUME 0x10
-#define I365_CTL_SW_IRQ 0x20
-
-/* Flags for I365_GBLCTL */
-#define I365_GBL_PWRDOWN 0x01
-#define I365_GBL_CSC_LEV 0x02
-#define I365_GBL_WRBACK 0x04
-#define I365_GBL_IRQ_0_LEV 0x08
-#define I365_GBL_IRQ_1_LEV 0x10
-
-/* Flags for memory window registers */
-#define I365_MEM_16BIT 0x8000 /* In memory start high byte */
-#define I365_MEM_0WS 0x4000
-#define I365_MEM_WS1 0x8000 /* In memory stop high byte */
-#define I365_MEM_WS0 0x4000
-#define I365_MEM_WRPROT 0x8000 /* In offset high byte */
-#define I365_MEM_REG 0x4000
-
-#define I365_REG(slot, reg) (((slot) << 6) | (reg))
-
-/* Default ISA interrupt mask */
-#define I365_ISA_IRQ_MASK 0xdeb8 /* irq's 3-5,7,9-12,14,15 */
-
-/* Device ID's for PCI-to-PCMCIA bridges */
-
-#ifndef PCI_VENDOR_ID_INTEL
-#define PCI_VENDOR_ID_INTEL 0x8086
-#endif
-#ifndef PCI_DEVICE_ID_INTEL_82092AA_0
-#define PCI_DEVICE_ID_INTEL_82092AA_0 0x1221
-#endif
-#ifndef PCI_VENDOR_ID_OMEGA
-#define PCI_VENDOR_ID_OMEGA 0x119b
-#endif
-#ifndef PCI_DEVICE_ID_OMEGA_82C092G
-#define PCI_DEVICE_ID_OMEGA_82C092G 0x1221
-#endif
-
-#endif /* _LINUX_I82365_H */
diff --git a/mdk-stage1/pcmcia_/lex_config.c b/mdk-stage1/pcmcia_/lex_config.c
deleted file mode 100644
index 2f990618d..000000000
--- a/mdk-stage1/pcmcia_/lex_config.c
+++ /dev/null
@@ -1,2053 +0,0 @@
-/* A lexical scanner generated by flex */
-
-/* Scanner skeleton version:
- * $Header$
- */
-
-#define FLEX_SCANNER
-#define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 5
-
-#include <stdio.h>
-
-
-/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
-#ifdef c_plusplus
-#ifndef __cplusplus
-#define __cplusplus
-#endif
-#endif
-
-
-#ifdef __cplusplus
-
-#include <stdlib.h>
-#include <unistd.h>
-
-/* Use prototypes in function declarations. */
-#define YY_USE_PROTOS
-
-/* The "const" storage-class-modifier is valid. */
-#define YY_USE_CONST
-
-#else /* ! __cplusplus */
-
-#if __STDC__
-
-#define YY_USE_PROTOS
-#define YY_USE_CONST
-
-#endif /* __STDC__ */
-#endif /* ! __cplusplus */
-
-#ifdef __TURBOC__
- #pragma warn -rch
- #pragma warn -use
-#include <io.h>
-#include <stdlib.h>
-#define YY_USE_CONST
-#define YY_USE_PROTOS
-#endif
-
-#ifdef YY_USE_CONST
-#define yyconst const
-#else
-#define yyconst
-#endif
-
-
-#ifdef YY_USE_PROTOS
-#define YY_PROTO(proto) proto
-#else
-#define YY_PROTO(proto) ()
-#endif
-
-/* Returned upon end-of-file. */
-#define YY_NULL 0
-
-/* Promotes a possibly negative, possibly signed char to an unsigned
- * integer for use as an array index. If the signed char is negative,
- * we want to instead treat it as an 8-bit unsigned char, hence the
- * double cast.
- */
-#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
-
-/* Enter a start condition. This macro really ought to take a parameter,
- * but we do it the disgusting crufty way forced on us by the ()-less
- * definition of BEGIN.
- */
-#define BEGIN yy_start = 1 + 2 *
-
-/* Translate the current start state into a value that can be later handed
- * to BEGIN to return to the state. The YYSTATE alias is for lex
- * compatibility.
- */
-#define YY_START ((yy_start - 1) / 2)
-#define YYSTATE YY_START
-
-/* Action number for EOF rule of a given start state. */
-#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
-
-/* Special action meaning "start processing a new file". */
-#define YY_NEW_FILE yyrestart( yyin )
-
-#define YY_END_OF_BUFFER_CHAR 0
-
-/* Size of default input buffer. */
-#define YY_BUF_SIZE 16384
-
-typedef struct yy_buffer_state *YY_BUFFER_STATE;
-
-extern int yyleng;
-extern FILE *yyin, *yyout;
-
-#define EOB_ACT_CONTINUE_SCAN 0
-#define EOB_ACT_END_OF_FILE 1
-#define EOB_ACT_LAST_MATCH 2
-
-/* The funky do-while in the following #define is used to turn the definition
- * int a single C statement (which needs a semi-colon terminator). This
- * avoids problems with code like:
- *
- * if ( condition_holds )
- * yyless( 5 );
- * else
- * do_something_else();
- *
- * Prior to using the do-while the compiler would get upset at the
- * "else" because it interpreted the "if" statement as being all
- * done when it reached the ';' after the yyless() call.
- */
-
-/* Return all but the first 'n' matched characters back to the input stream. */
-
-#define yyless(n) \
- do \
- { \
- /* Undo effects of setting up yytext. */ \
- *yy_cp = yy_hold_char; \
- YY_RESTORE_YY_MORE_OFFSET \
- yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
- YY_DO_BEFORE_ACTION; /* set up yytext again */ \
- } \
- while ( 0 )
-
-//mdk-stage1// #define unput(c) yyunput( c, yytext_ptr )
-
-/* The following is because we cannot portably get our hands on size_t
- * (without autoconf's help, which isn't available because we want
- * flex-generated scanners to compile on their own).
- */
-typedef unsigned int yy_size_t;
-
-
-struct yy_buffer_state
- {
- FILE *yy_input_file;
-
- char *yy_ch_buf; /* input buffer */
- char *yy_buf_pos; /* current position in input buffer */
-
- /* Size of input buffer in bytes, not including room for EOB
- * characters.
- */
- yy_size_t yy_buf_size;
-
- /* Number of characters read into yy_ch_buf, not including EOB
- * characters.
- */
- int yy_n_chars;
-
- /* Whether we "own" the buffer - i.e., we know we created it,
- * and can realloc() it to grow it, and should free() it to
- * delete it.
- */
- int yy_is_our_buffer;
-
- /* Whether this is an "interactive" input source; if so, and
- * if we're using stdio for input, then we want to use getc()
- * instead of fread(), to make sure we stop fetching input after
- * each newline.
- */
- int yy_is_interactive;
-
- /* Whether we're considered to be at the beginning of a line.
- * If so, '^' rules will be active on the next match, otherwise
- * not.
- */
- int yy_at_bol;
-
- /* Whether to try to fill the input buffer when we reach the
- * end of it.
- */
- int yy_fill_buffer;
-
- int yy_buffer_status;
-#define YY_BUFFER_NEW 0
-#define YY_BUFFER_NORMAL 1
- /* When an EOF's been seen but there's still some text to process
- * then we mark the buffer as YY_EOF_PENDING, to indicate that we
- * shouldn't try reading from the input source any more. We might
- * still have a bunch of tokens to match, though, because of
- * possible backing-up.
- *
- * When we actually see the EOF, we change the status to "new"
- * (via yyrestart()), so that the user can continue scanning by
- * just pointing yyin at a new input file.
- */
-#define YY_BUFFER_EOF_PENDING 2
- };
-
-static YY_BUFFER_STATE yy_current_buffer = 0;
-
-/* We provide macros for accessing buffer states in case in the
- * future we want to put the buffer states in a more general
- * "scanner state".
- */
-#define YY_CURRENT_BUFFER yy_current_buffer
-
-
-/* yy_hold_char holds the character lost when yytext is formed. */
-static char yy_hold_char;
-
-static int yy_n_chars; /* number of characters read into yy_ch_buf */
-
-
-int yyleng;
-
-/* Points to current character in buffer. */
-static char *yy_c_buf_p = (char *) 0;
-static int yy_init = 1; /* whether we need to initialize */
-static int yy_start = 0; /* start state number */
-
-/* Flag which is used to allow yywrap()'s to do buffer switches
- * instead of setting up a fresh yyin. A bit of a hack ...
- */
-static int yy_did_buffer_switch_on_eof;
-
-void yyrestart YY_PROTO(( FILE *input_file ));
-
-void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
-void yy_load_buffer_state YY_PROTO(( void ));
-YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
-void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
-void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
-void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
-#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
-
-YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
-YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
-YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
-
-static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
-static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
-static void yy_flex_free YY_PROTO(( void * ));
-
-#define yy_new_buffer yy_create_buffer
-
-#define yy_set_interactive(is_interactive) \
- { \
- if ( ! yy_current_buffer ) \
- yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
- yy_current_buffer->yy_is_interactive = is_interactive; \
- }
-
-#define yy_set_bol(at_bol) \
- { \
- if ( ! yy_current_buffer ) \
- yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
- yy_current_buffer->yy_at_bol = at_bol; \
- }
-
-#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
-
-typedef unsigned char YY_CHAR;
-FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
-typedef int yy_state_type;
-extern char *yytext;
-#define yytext_ptr yytext
-
-static yy_state_type yy_get_previous_state YY_PROTO(( void ));
-static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
-static int yy_get_next_buffer YY_PROTO(( void ));
-static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
-
-/* Done after the current pattern has been matched and before the
- * corresponding action - sets up yytext.
- */
-#define YY_DO_BEFORE_ACTION \
- yytext_ptr = yy_bp; \
- yyleng = (int) (yy_cp - yy_bp); \
- yy_hold_char = *yy_cp; \
- *yy_cp = '\0'; \
- yy_c_buf_p = yy_cp;
-
-#define YY_NUM_RULES 45
-#define YY_END_OF_BUFFER 46
-static yyconst short int yy_accept[247] =
- { 0,
- 5, 5, 2, 2, 46, 44, 5, 4, 5, 44,
- 6, 41, 41, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 3,
- 2, 45, 5, 5, 6, 0, 43, 0, 6, 41,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,
- 0, 0, 3, 2, 0, 43, 0, 42, 0, 0,
- 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 18, 0, 0, 0, 0, 23, 0, 0, 0,
-
- 0, 26, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 8, 10, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 25,
- 0, 27, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 11, 0, 0, 14, 0, 0, 0, 0,
- 19, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 31, 0, 0, 0, 0, 0, 13, 0,
- 0, 0, 0, 20, 21, 22, 0, 0, 0, 28,
- 0, 0, 0, 1, 0, 0, 0, 0, 12, 15,
- 0, 0, 17, 0, 0, 0, 0, 29, 0, 0,
-
- 32, 0, 0, 0, 0, 16, 0, 0, 0, 0,
- 0, 0, 0, 39, 7, 0, 0, 24, 0, 0,
- 0, 0, 0, 36, 0, 0, 0, 0, 0, 0,
- 33, 0, 0, 0, 34, 0, 0, 0, 40, 0,
- 0, 35, 37, 0, 38, 0
- } ;
-
-static yyconst int yy_ec[256] =
- { 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 4, 1, 5, 6, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 7, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 1, 6, 1,
- 1, 1, 1, 1, 9, 9, 9, 9, 9, 9,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 10, 1, 1, 11, 1, 12, 13, 14, 15,
-
- 16, 17, 18, 1, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1
- } ;
-
-static yyconst int yy_meta[36] =
- { 0,
- 1, 2, 3, 2, 1, 1, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1
- } ;
-
-static yyconst short int yy_base[253] =
- { 0,
- 0, 0, 34, 37, 293, 294, 40, 294, 41, 41,
- 0, 41, 45, 31, 273, 42, 40, 257, 38, 34,
- 274, 47, 273, 262, 53, 271, 57, 35, 60, 0,
- 79, 294, 82, 83, 0, 83, 294, 87, 0, 87,
- 0, 263, 260, 260, 255, 253, 269, 74, 245, 265,
- 244, 253, 262, 248, 259, 249, 249, 256, 255, 80,
- 239, 240, 248, 238, 80, 236, 236, 232, 294, 236,
- 233, 245, 0, 97, 95, 97, 108, 0, 230, 234,
- 242, 241, 294, 226, 242, 234, 226, 229, 234, 235,
- 226, 294, 231, 229, 220, 213, 294, 228, 209, 212,
-
- 228, 294, 209, 219, 221, 217, 216, 206, 211, 203,
- 215, 219, 194, 294, 294, 199, 196, 212, 209, 193,
- 208, 192, 190, 206, 200, 190, 195, 187, 190, 294,
- 192, 294, 188, 184, 200, 198, 195, 192, 188, 181,
- 191, 181, 294, 181, 186, 294, 186, 189, 180, 183,
- 294, 182, 161, 179, 183, 165, 170, 167, 158, 177,
- 166, 171, 294, 161, 174, 172, 158, 152, 294, 165,
- 165, 154, 162, 294, 166, 294, 153, 154, 158, 294,
- 157, 157, 160, 294, 146, 157, 140, 136, 294, 294,
- 147, 141, 294, 150, 133, 151, 139, 294, 148, 133,
-
- 294, 143, 142, 127, 126, 294, 142, 138, 140, 140,
- 124, 124, 136, 294, 294, 126, 118, 294, 130, 118,
- 113, 114, 115, 294, 125, 127, 108, 116, 99, 87,
- 294, 90, 87, 86, 294, 96, 78, 74, 294, 75,
- 64, 294, 294, 46, 294, 294, 118, 122, 126, 130,
- 134, 64
- } ;
-
-static yyconst short int yy_def[253] =
- { 0,
- 246, 1, 247, 247, 246, 246, 246, 246, 246, 248,
- 249, 246, 246, 246, 246, 246, 246, 246, 246, 246,
- 246, 246, 246, 246, 246, 246, 246, 246, 246, 250,
- 246, 246, 246, 246, 249, 248, 246, 251, 249, 246,
- 252, 246, 246, 246, 246, 246, 246, 246, 246, 246,
- 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
- 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
- 246, 246, 250, 246, 248, 248, 251, 252, 246, 246,
- 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
- 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
-
- 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
- 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
- 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
- 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
- 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
- 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
- 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
- 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
- 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
- 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
-
- 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
- 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
- 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
- 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
- 246, 246, 246, 246, 246, 0, 246, 246, 246, 246,
- 246, 246
- } ;
-
-static yyconst short int yy_nxt[330] =
- { 0,
- 6, 7, 8, 9, 10, 11, 12, 13, 6, 6,
- 6, 14, 15, 16, 17, 18, 19, 6, 20, 21,
- 6, 6, 22, 23, 24, 25, 6, 26, 27, 28,
- 6, 29, 6, 6, 6, 31, 32, 31, 31, 32,
- 31, 33, 33, 33, 34, 37, 35, 40, 40, 42,
- 38, 40, 40, 45, 43, 48, 51, 53, 56, 69,
- 46, 54, 57, 47, 62, 70, 63, 78, 52, 49,
- 66, 58, 67, 245, 41, 71, 59, 64, 72, 244,
- 74, 68, 74, 33, 33, 33, 34, 37, 35, 36,
- 85, 76, 38, 40, 40, 98, 77, 104, 74, 37,
-
- 74, 37, 243, 242, 38, 86, 38, 241, 105, 99,
- 36, 240, 76, 239, 238, 237, 236, 77, 30, 30,
- 30, 30, 36, 36, 36, 36, 39, 39, 235, 39,
- 73, 234, 233, 73, 75, 75, 75, 75, 232, 231,
- 230, 229, 228, 227, 226, 225, 224, 223, 222, 221,
- 220, 219, 218, 217, 216, 215, 214, 213, 212, 211,
- 210, 209, 208, 207, 206, 205, 204, 203, 202, 201,
- 200, 199, 198, 197, 196, 195, 194, 193, 192, 191,
- 190, 189, 188, 187, 186, 185, 184, 183, 182, 181,
- 180, 179, 178, 177, 176, 175, 174, 173, 172, 171,
-
- 170, 169, 168, 167, 166, 165, 164, 163, 162, 161,
- 160, 159, 158, 157, 156, 155, 154, 153, 152, 151,
- 150, 149, 148, 147, 146, 145, 144, 143, 142, 141,
- 140, 139, 138, 137, 136, 135, 134, 133, 132, 131,
- 130, 129, 128, 127, 126, 125, 124, 123, 122, 121,
- 120, 119, 118, 117, 116, 115, 114, 113, 112, 111,
- 110, 109, 108, 107, 106, 103, 102, 101, 100, 97,
- 96, 95, 94, 93, 92, 91, 90, 89, 88, 87,
- 84, 83, 82, 81, 80, 79, 65, 61, 60, 55,
- 50, 44, 246, 5, 246, 246, 246, 246, 246, 246,
-
- 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
- 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
- 246, 246, 246, 246, 246, 246, 246, 246, 246
- } ;
-
-static yyconst short int yy_chk[330] =
- { 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 3, 3, 3, 4, 4,
- 4, 7, 9, 7, 9, 10, 9, 12, 12, 14,
- 10, 13, 13, 16, 14, 17, 19, 20, 22, 28,
- 16, 20, 22, 16, 25, 28, 25, 252, 19, 17,
- 27, 22, 27, 244, 12, 29, 22, 25, 29, 241,
- 31, 27, 31, 33, 34, 33, 34, 36, 34, 38,
- 48, 38, 36, 40, 40, 60, 38, 65, 74, 75,
-
- 74, 76, 240, 238, 75, 48, 76, 237, 65, 60,
- 77, 236, 77, 234, 233, 232, 230, 77, 247, 247,
- 247, 247, 248, 248, 248, 248, 249, 249, 229, 249,
- 250, 228, 227, 250, 251, 251, 251, 251, 226, 225,
- 223, 222, 221, 220, 219, 217, 216, 213, 212, 211,
- 210, 209, 208, 207, 205, 204, 203, 202, 200, 199,
- 197, 196, 195, 194, 192, 191, 188, 187, 186, 185,
- 183, 182, 181, 179, 178, 177, 175, 173, 172, 171,
- 170, 168, 167, 166, 165, 164, 162, 161, 160, 159,
- 158, 157, 156, 155, 154, 153, 152, 150, 149, 148,
-
- 147, 145, 144, 142, 141, 140, 139, 138, 137, 136,
- 135, 134, 133, 131, 129, 128, 127, 126, 125, 124,
- 123, 122, 121, 120, 119, 118, 117, 116, 113, 112,
- 111, 110, 109, 108, 107, 106, 105, 104, 103, 101,
- 100, 99, 98, 96, 95, 94, 93, 91, 90, 89,
- 88, 87, 86, 85, 84, 82, 81, 80, 79, 72,
- 71, 70, 68, 67, 66, 64, 63, 62, 61, 59,
- 58, 57, 56, 55, 54, 53, 52, 51, 50, 49,
- 47, 46, 45, 44, 43, 42, 26, 24, 23, 21,
- 18, 15, 5, 246, 246, 246, 246, 246, 246, 246,
-
- 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
- 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
- 246, 246, 246, 246, 246, 246, 246, 246, 246
- } ;
-
-static yy_state_type yy_last_accepting_state;
-static char *yy_last_accepting_cpos;
-
-/* The intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed.
- */
-#define REJECT reject_used_but_not_detected
-#define yymore() yymore_used_but_not_detected
-#define YY_MORE_ADJ 0
-#define YY_RESTORE_YY_MORE_OFFSET
-char *yytext;
-#line 1 "lex_config.l"
-#define INITIAL 0
-/* Special state for handling include files */
-#define src 1
-
-#line 5 "lex_config.l"
-/*
- * lex_config.l 1.40 2001/08/24 12:21:25
- *
- * The contents of this file are subject to the Mozilla Public License
- * Version 1.1 (the "License"); you may not use this file except in
- * compliance with the License. You may obtain a copy of the License
- * at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS"
- * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
- * the License for the specific language governing rights and
- * limitations under the License.
- *
- * The initial developer of the original code is David A. Hinds
- * <dahinds@users.sourceforge.net>. Portions created by David A. Hinds
- * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
- *
- * Alternatively, the contents of this file may be used under the
- * terms of the GNU General Public License version 2 (the "GPL"), in
- * which case the provisions of the GPL are applicable instead of the
- * above. If you wish to allow the use of your version of this file
- * only under the terms of the GPL and not to allow others to use
- * your version of this file under the MPL, indicate your decision by
- * deleting the provisions above and replace them with the notice and
- * other provisions required by the GPL. If you do not delete the
- * provisions above, a recipient may use your version of this file
- * under either the MPL or the GPL.
- */
-
-#undef src
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <syslog.h>
-#include <glob.h>
-#define src 1
-
-#include <pcmcia_/cs_types.h>
-#include <pcmcia_/cs.h>
-
-#include "yacc_config.h"
-
-/* For assembling nice error messages */
-char *current_file;
-int current_lineno;
-
-static int lex_number(char *s);
-static int lex_string(char *s);
-static void do_source(char *fn);
-static int do_eof(void);
-
-
-/* Macros after this point can all be overridden by user definitions in
- * section 1.
- */
-
-#ifndef YY_SKIP_YYWRAP
-#ifdef __cplusplus
-extern "C" int yywrap YY_PROTO(( void ));
-#else
-extern int yywrap YY_PROTO(( void ));
-#endif
-#endif
-
-#ifndef YY_NO_UNPUT
-//mdk-stage1// static void yyunput YY_PROTO(( int c, char *buf_ptr ));
-#endif
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen YY_PROTO(( yyconst char * ));
-#endif
-
-#ifndef YY_NO_INPUT
-#ifdef __cplusplus
-static int yyinput YY_PROTO(( void ));
-#else
-static int input YY_PROTO(( void ));
-#endif
-#endif
-
-#if YY_STACK_USED
-static int yy_start_stack_ptr = 0;
-static int yy_start_stack_depth = 0;
-static int *yy_start_stack = 0;
-#ifndef YY_NO_PUSH_STATE
-static void yy_push_state YY_PROTO(( int new_state ));
-#endif
-#ifndef YY_NO_POP_STATE
-static void yy_pop_state YY_PROTO(( void ));
-#endif
-#ifndef YY_NO_TOP_STATE
-static int yy_top_state YY_PROTO(( void ));
-#endif
-
-#else
-#define YY_NO_PUSH_STATE 1
-#define YY_NO_POP_STATE 1
-#define YY_NO_TOP_STATE 1
-#endif
-
-#ifdef YY_MALLOC_DECL
-YY_MALLOC_DECL
-#else
-#if __STDC__
-#ifndef __cplusplus
-#include <stdlib.h>
-#endif
-#else
-/* Just try to get by without declaring the routines. This will fail
- * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
- * or sizeof(void*) != sizeof(int).
- */
-#endif
-#endif
-
-/* Amount of stuff to slurp up with each read. */
-#ifndef YY_READ_BUF_SIZE
-#define YY_READ_BUF_SIZE 8192
-#endif
-
-/* Copy whatever the last rule matched to the standard output. */
-
-#ifndef ECHO
-/* This used to be an fputs(), but since the string might contain NUL's,
- * we now use fwrite().
- */
-#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
-#endif
-
-/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
- * is returned in "result".
- */
-#ifndef YY_INPUT
-#define YY_INPUT(buf,result,max_size) \
- if ( yy_current_buffer->yy_is_interactive ) \
- { \
- int c = '*', n; \
- for ( n = 0; n < max_size && \
- (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
- buf[n] = (char) c; \
- if ( c == '\n' ) \
- buf[n++] = (char) c; \
- if ( c == EOF && ferror( yyin ) ) \
- YY_FATAL_ERROR( "input in flex scanner failed" ); \
- result = n; \
- } \
- else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
- && ferror( yyin ) ) \
- YY_FATAL_ERROR( "input in flex scanner failed" );
-#endif
-
-/* No semi-colon after return; correct usage is to write "yyterminate();" -
- * we don't want an extra ';' after the "return" because that will cause
- * some compilers to complain about unreachable statements.
- */
-#ifndef yyterminate
-#define yyterminate() return YY_NULL
-#endif
-
-/* Number of entries by which start-condition stack grows. */
-#ifndef YY_START_STACK_INCR
-#define YY_START_STACK_INCR 25
-#endif
-
-/* Report a fatal error. */
-#ifndef YY_FATAL_ERROR
-#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
-#endif
-
-/* Default declaration of generated scanner - a define so the user can
- * easily add parameters.
- */
-#ifndef YY_DECL
-#define YY_DECL int yylex YY_PROTO(( void ))
-#endif
-
-/* Code executed at the beginning of each rule, after yytext and yyleng
- * have been set up.
- */
-#ifndef YY_USER_ACTION
-#define YY_USER_ACTION
-#endif
-
-/* Code executed at the end of each rule. */
-#ifndef YY_BREAK
-#define YY_BREAK break;
-#endif
-
-#define YY_RULE_SETUP \
- YY_USER_ACTION
-
-YY_DECL
- {
- register yy_state_type yy_current_state;
- register char *yy_cp = NULL, *yy_bp = NULL;
- register int yy_act;
-
-#line 63 "lex_config.l"
-
-
-
- if ( yy_init )
- {
- yy_init = 0;
-
-#ifdef YY_USER_INIT
- YY_USER_INIT;
-#endif
-
- if ( ! yy_start )
- yy_start = 1; /* first start state */
-
- if ( ! yyin )
- yyin = stdin;
-
- if ( ! yyout )
- yyout = stdout;
-
- if ( ! yy_current_buffer )
- yy_current_buffer =
- yy_create_buffer( yyin, YY_BUF_SIZE );
-
- yy_load_buffer_state();
- }
-
- while ( 1 ) /* loops until end-of-file is reached */
- {
- yy_cp = yy_c_buf_p;
-
- /* Support of yytext. */
- *yy_cp = yy_hold_char;
-
- /* yy_bp points to the position in yy_ch_buf of the start of
- * the current run.
- */
- yy_bp = yy_cp;
-
- yy_current_state = yy_start;
-yy_match:
- do
- {
- register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
- if ( yy_accept[yy_current_state] )
- {
- yy_last_accepting_state = yy_current_state;
- yy_last_accepting_cpos = yy_cp;
- }
- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- {
- yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 247 )
- yy_c = yy_meta[(unsigned int) yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- ++yy_cp;
- }
- while ( yy_base[yy_current_state] != 294 );
-
-yy_find_action:
- yy_act = yy_accept[yy_current_state];
- if ( yy_act == 0 )
- { /* have to back up */
- yy_cp = yy_last_accepting_cpos;
- yy_current_state = yy_last_accepting_state;
- yy_act = yy_accept[yy_current_state];
- }
-
- YY_DO_BEFORE_ACTION;
-
-
-do_action: /* This label is used only to access EOF actions. */
-
-
- switch ( yy_act )
- { /* beginning of action switch */
- case 0: /* must back up */
- /* undo the effects of YY_DO_BEFORE_ACTION */
- *yy_cp = yy_hold_char;
- yy_cp = yy_last_accepting_cpos;
- yy_current_state = yy_last_accepting_state;
- goto yy_find_action;
-
-case 1:
-YY_RULE_SETUP
-#line 65 "lex_config.l"
-BEGIN(src);
- YY_BREAK
-case 2:
-YY_RULE_SETUP
-#line 66 "lex_config.l"
-/* skip */ ;
- YY_BREAK
-case 3:
-YY_RULE_SETUP
-#line 67 "lex_config.l"
-do_source(yytext); BEGIN(INITIAL);
- YY_BREAK
-case YY_STATE_EOF(INITIAL):
-case YY_STATE_EOF(src):
-#line 68 "lex_config.l"
-if (do_eof()) yyterminate();
- YY_BREAK
-case 4:
-YY_RULE_SETUP
-#line 70 "lex_config.l"
-current_lineno++;
- YY_BREAK
-case 5:
-YY_RULE_SETUP
-#line 71 "lex_config.l"
-/* skip */ ;
- YY_BREAK
-case 6:
-YY_RULE_SETUP
-#line 72 "lex_config.l"
-/* skip */ ;
- YY_BREAK
-case 7:
-YY_RULE_SETUP
-#line 74 "lex_config.l"
-return ANONYMOUS;
- YY_BREAK
-case 8:
-YY_RULE_SETUP
-#line 75 "lex_config.l"
-return BIND;
- YY_BREAK
-case 9:
-YY_RULE_SETUP
-#line 76 "lex_config.l"
-return CIS;
- YY_BREAK
-case 10:
-YY_RULE_SETUP
-#line 77 "lex_config.l"
-return CARD;
- YY_BREAK
-case 11:
-YY_RULE_SETUP
-#line 78 "lex_config.l"
-return CLASS;
- YY_BREAK
-case 12:
-YY_RULE_SETUP
-#line 79 "lex_config.l"
-return DEFAULT;
- YY_BREAK
-case 13:
-YY_RULE_SETUP
-#line 80 "lex_config.l"
-return DEVICE;
- YY_BREAK
-case 14:
-YY_RULE_SETUP
-#line 81 "lex_config.l"
-return DTYPE;
- YY_BREAK
-case 15:
-YY_RULE_SETUP
-#line 82 "lex_config.l"
-return EXCLUDE;
- YY_BREAK
-case 16:
-YY_RULE_SETUP
-#line 83 "lex_config.l"
-return FUNCTION;
- YY_BREAK
-case 17:
-YY_RULE_SETUP
-#line 84 "lex_config.l"
-return INCLUDE;
- YY_BREAK
-case 18:
-YY_RULE_SETUP
-#line 85 "lex_config.l"
-return IRQ_NO;
- YY_BREAK
-case 19:
-YY_RULE_SETUP
-#line 86 "lex_config.l"
-return JEDEC;
- YY_BREAK
-case 20:
-YY_RULE_SETUP
-#line 87 "lex_config.l"
-return MANFID;
- YY_BREAK
-case 21:
-YY_RULE_SETUP
-#line 88 "lex_config.l"
-return MEMORY;
- YY_BREAK
-case 22:
-YY_RULE_SETUP
-#line 89 "lex_config.l"
-return MODULE;
- YY_BREAK
-case 23:
-YY_RULE_SETUP
-#line 90 "lex_config.l"
-return MTD;
- YY_BREAK
-case 24:
-YY_RULE_SETUP
-#line 91 "lex_config.l"
-return NEEDS_MTD;
- YY_BREAK
-case 25:
-YY_RULE_SETUP
-#line 92 "lex_config.l"
-return OPTS;
- YY_BREAK
-case 26:
-YY_RULE_SETUP
-#line 93 "lex_config.l"
-return PCI;
- YY_BREAK
-case 27:
-YY_RULE_SETUP
-#line 94 "lex_config.l"
-return PORT;
- YY_BREAK
-case 28:
-YY_RULE_SETUP
-#line 95 "lex_config.l"
-return REGION;
- YY_BREAK
-case 29:
-YY_RULE_SETUP
-#line 96 "lex_config.l"
-return RESERVE;
- YY_BREAK
-case 30:
-YY_RULE_SETUP
-#line 97 "lex_config.l"
-return TO;
- YY_BREAK
-case 31:
-YY_RULE_SETUP
-#line 98 "lex_config.l"
-return TUPLE;
- YY_BREAK
-case 32:
-YY_RULE_SETUP
-#line 99 "lex_config.l"
-return VERSION;
- YY_BREAK
-case 33:
-YY_RULE_SETUP
-#line 101 "lex_config.l"
-return lex_number("1");
- YY_BREAK
-case 34:
-YY_RULE_SETUP
-#line 102 "lex_config.l"
-return lex_number("2");
- YY_BREAK
-case 35:
-YY_RULE_SETUP
-#line 103 "lex_config.l"
-return lex_number("3");
- YY_BREAK
-case 36:
-YY_RULE_SETUP
-#line 104 "lex_config.l"
-return lex_number("4");
- YY_BREAK
-case 37:
-YY_RULE_SETUP
-#line 105 "lex_config.l"
-return lex_number("5");
- YY_BREAK
-case 38:
-YY_RULE_SETUP
-#line 106 "lex_config.l"
-return lex_number("6");
- YY_BREAK
-case 39:
-YY_RULE_SETUP
-#line 107 "lex_config.l"
-return lex_number("7");
- YY_BREAK
-case 40:
-YY_RULE_SETUP
-#line 108 "lex_config.l"
-return lex_number("8");
- YY_BREAK
-case 41:
-YY_RULE_SETUP
-#line 110 "lex_config.l"
-return lex_number(yytext);
- YY_BREAK
-case 42:
-YY_RULE_SETUP
-#line 112 "lex_config.l"
-return lex_number(yytext);
- YY_BREAK
-case 43:
-YY_RULE_SETUP
-#line 114 "lex_config.l"
-return lex_string(yytext);
- YY_BREAK
-case 44:
-YY_RULE_SETUP
-#line 116 "lex_config.l"
-return yytext[0];
- YY_BREAK
-case 45:
-YY_RULE_SETUP
-#line 118 "lex_config.l"
-ECHO;
- YY_BREAK
-
- case YY_END_OF_BUFFER:
- {
- /* Amount of text matched not including the EOB char. */
- int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
-
- /* Undo the effects of YY_DO_BEFORE_ACTION. */
- *yy_cp = yy_hold_char;
- YY_RESTORE_YY_MORE_OFFSET
-
- if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
- {
- /* We're scanning a new file or input source. It's
- * possible that this happened because the user
- * just pointed yyin at a new source and called
- * yylex(). If so, then we have to assure
- * consistency between yy_current_buffer and our
- * globals. Here is the right place to do so, because
- * this is the first action (other than possibly a
- * back-up) that will match for the new input source.
- */
- yy_n_chars = yy_current_buffer->yy_n_chars;
- yy_current_buffer->yy_input_file = yyin;
- yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
- }
-
- /* Note that here we test for yy_c_buf_p "<=" to the position
- * of the first EOB in the buffer, since yy_c_buf_p will
- * already have been incremented past the NUL character
- * (since all states make transitions on EOB to the
- * end-of-buffer state). Contrast this with the test
- * in input().
- */
- if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
- { /* This was really a NUL. */
- yy_state_type yy_next_state;
-
- yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
-
- yy_current_state = yy_get_previous_state();
-
- /* Okay, we're now positioned to make the NUL
- * transition. We couldn't have
- * yy_get_previous_state() go ahead and do it
- * for us because it doesn't know how to deal
- * with the possibility of jamming (and we don't
- * want to build jamming into it because then it
- * will run more slowly).
- */
-
- yy_next_state = yy_try_NUL_trans( yy_current_state );
-
- yy_bp = yytext_ptr + YY_MORE_ADJ;
-
- if ( yy_next_state )
- {
- /* Consume the NUL. */
- yy_cp = ++yy_c_buf_p;
- yy_current_state = yy_next_state;
- goto yy_match;
- }
-
- else
- {
- yy_cp = yy_c_buf_p;
- goto yy_find_action;
- }
- }
-
- else switch ( yy_get_next_buffer() )
- {
- case EOB_ACT_END_OF_FILE:
- {
- yy_did_buffer_switch_on_eof = 0;
-
- if ( yywrap() )
- {
- /* Note: because we've taken care in
- * yy_get_next_buffer() to have set up
- * yytext, we can now set up
- * yy_c_buf_p so that if some total
- * hoser (like flex itself) wants to
- * call the scanner after we return the
- * YY_NULL, it'll still work - another
- * YY_NULL will get returned.
- */
- yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
-
- yy_act = YY_STATE_EOF(YY_START);
- goto do_action;
- }
-
- else
- {
- if ( ! yy_did_buffer_switch_on_eof )
- YY_NEW_FILE;
- }
- break;
- }
-
- case EOB_ACT_CONTINUE_SCAN:
- yy_c_buf_p =
- yytext_ptr + yy_amount_of_matched_text;
-
- yy_current_state = yy_get_previous_state();
-
- yy_cp = yy_c_buf_p;
- yy_bp = yytext_ptr + YY_MORE_ADJ;
- goto yy_match;
-
- case EOB_ACT_LAST_MATCH:
- yy_c_buf_p =
- &yy_current_buffer->yy_ch_buf[yy_n_chars];
-
- yy_current_state = yy_get_previous_state();
-
- yy_cp = yy_c_buf_p;
- yy_bp = yytext_ptr + YY_MORE_ADJ;
- goto yy_find_action;
- }
- break;
- }
-
- default:
- YY_FATAL_ERROR(
- "fatal flex scanner internal error--no action found" );
- } /* end of action switch */
- } /* end of scanning one token */
- } /* end of yylex */
-
-
-/* yy_get_next_buffer - try to read in a new buffer
- *
- * Returns a code representing an action:
- * EOB_ACT_LAST_MATCH -
- * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
- * EOB_ACT_END_OF_FILE - end of file
- */
-
-static int yy_get_next_buffer()
- {
- register char *dest = yy_current_buffer->yy_ch_buf;
- register char *source = yytext_ptr;
- register int number_to_move, i;
- int ret_val;
-
- if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
- YY_FATAL_ERROR(
- "fatal flex scanner internal error--end of buffer missed" );
-
- if ( yy_current_buffer->yy_fill_buffer == 0 )
- { /* Don't try to fill the buffer, so this is an EOF. */
- if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
- {
- /* We matched a single character, the EOB, so
- * treat this as a final EOF.
- */
- return EOB_ACT_END_OF_FILE;
- }
-
- else
- {
- /* We matched some text prior to the EOB, first
- * process it.
- */
- return EOB_ACT_LAST_MATCH;
- }
- }
-
- /* Try to read more data. */
-
- /* First move last chars to start of buffer. */
- number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
-
- for ( i = 0; i < number_to_move; ++i )
- *(dest++) = *(source++);
-
- if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
- /* don't do the read, it's not guaranteed to return an EOF,
- * just force an EOF
- */
- yy_current_buffer->yy_n_chars = yy_n_chars = 0;
-
- else
- {
- int num_to_read =
- yy_current_buffer->yy_buf_size - number_to_move - 1;
-
- while ( num_to_read <= 0 )
- { /* Not enough room in the buffer - grow it. */
-#ifdef YY_USES_REJECT
- YY_FATAL_ERROR(
-"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
-#else
-
- /* just a shorter name for the current buffer */
- YY_BUFFER_STATE b = yy_current_buffer;
-
- int yy_c_buf_p_offset =
- (int) (yy_c_buf_p - b->yy_ch_buf);
-
- if ( b->yy_is_our_buffer )
- {
- int new_size = b->yy_buf_size * 2;
-
- if ( new_size <= 0 )
- b->yy_buf_size += b->yy_buf_size / 8;
- else
- b->yy_buf_size *= 2;
-
- b->yy_ch_buf = (char *)
- /* Include room in for 2 EOB chars. */
- yy_flex_realloc( (void *) b->yy_ch_buf,
- b->yy_buf_size + 2 );
- }
- else
- /* Can't grow it, we don't own it. */
- b->yy_ch_buf = 0;
-
- if ( ! b->yy_ch_buf )
- YY_FATAL_ERROR(
- "fatal error - scanner input buffer overflow" );
-
- yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
-
- num_to_read = yy_current_buffer->yy_buf_size -
- number_to_move - 1;
-#endif
- }
-
- if ( num_to_read > YY_READ_BUF_SIZE )
- num_to_read = YY_READ_BUF_SIZE;
-
- /* Read in more data. */
- YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
- yy_n_chars, num_to_read );
-
- yy_current_buffer->yy_n_chars = yy_n_chars;
- }
-
- if ( yy_n_chars == 0 )
- {
- if ( number_to_move == YY_MORE_ADJ )
- {
- ret_val = EOB_ACT_END_OF_FILE;
- yyrestart( yyin );
- }
-
- else
- {
- ret_val = EOB_ACT_LAST_MATCH;
- yy_current_buffer->yy_buffer_status =
- YY_BUFFER_EOF_PENDING;
- }
- }
-
- else
- ret_val = EOB_ACT_CONTINUE_SCAN;
-
- yy_n_chars += number_to_move;
- yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
- yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
-
- yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
-
- return ret_val;
- }
-
-
-/* yy_get_previous_state - get the state just before the EOB char was reached */
-
-static yy_state_type yy_get_previous_state()
- {
- register yy_state_type yy_current_state;
- register char *yy_cp;
-
- yy_current_state = yy_start;
-
- for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
- {
- register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
- if ( yy_accept[yy_current_state] )
- {
- yy_last_accepting_state = yy_current_state;
- yy_last_accepting_cpos = yy_cp;
- }
- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- {
- yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 247 )
- yy_c = yy_meta[(unsigned int) yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- }
-
- return yy_current_state;
- }
-
-
-/* yy_try_NUL_trans - try to make a transition on the NUL character
- *
- * synopsis
- * next_state = yy_try_NUL_trans( current_state );
- */
-
-#ifdef YY_USE_PROTOS
-static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
-#else
-static yy_state_type yy_try_NUL_trans( yy_current_state )
-yy_state_type yy_current_state;
-#endif
- {
- register int yy_is_jam;
- register char *yy_cp = yy_c_buf_p;
-
- register YY_CHAR yy_c = 1;
- if ( yy_accept[yy_current_state] )
- {
- yy_last_accepting_state = yy_current_state;
- yy_last_accepting_cpos = yy_cp;
- }
- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- {
- yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 247 )
- yy_c = yy_meta[(unsigned int) yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- yy_is_jam = (yy_current_state == 246);
-
- return yy_is_jam ? 0 : yy_current_state;
- }
-
-
-//mdk-stage1// #ifndef YY_NO_UNPUT
-//mdk-stage1// #ifdef YY_USE_PROTOS
-//mdk-stage1// static void yyunput( int c, register char *yy_bp )
-//mdk-stage1// #else
-//mdk-stage1// static void yyunput( c, yy_bp )
-//mdk-stage1// int c;
-//mdk-stage1// register char *yy_bp;
-//mdk-stage1// #endif
-//mdk-stage1// {
-//mdk-stage1// register char *yy_cp = yy_c_buf_p;
-//mdk-stage1//
-//mdk-stage1// /* undo effects of setting up yytext */
-//mdk-stage1// *yy_cp = yy_hold_char;
-//mdk-stage1//
-//mdk-stage1// if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
-//mdk-stage1// { /* need to shift things up to make room */
-//mdk-stage1// /* +2 for EOB chars. */
-//mdk-stage1// register int number_to_move = yy_n_chars + 2;
-//mdk-stage1// register char *dest = &yy_current_buffer->yy_ch_buf[
-//mdk-stage1// yy_current_buffer->yy_buf_size + 2];
-//mdk-stage1// register char *source =
-//mdk-stage1// &yy_current_buffer->yy_ch_buf[number_to_move];
-//mdk-stage1//
-//mdk-stage1// while ( source > yy_current_buffer->yy_ch_buf )
-//mdk-stage1// *--dest = *--source;
-//mdk-stage1//
-//mdk-stage1// yy_cp += (int) (dest - source);
-//mdk-stage1// yy_bp += (int) (dest - source);
-//mdk-stage1// yy_current_buffer->yy_n_chars =
-//mdk-stage1// yy_n_chars = yy_current_buffer->yy_buf_size;
-//mdk-stage1//
-//mdk-stage1// if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
-//mdk-stage1// YY_FATAL_ERROR( "flex scanner push-back overflow" );
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// *--yy_cp = (char) c;
-//mdk-stage1//
-//mdk-stage1//
-//mdk-stage1// yytext_ptr = yy_bp;
-//mdk-stage1// yy_hold_char = *yy_cp;
-//mdk-stage1// yy_c_buf_p = yy_cp;
-//mdk-stage1// }
-//mdk-stage1// #endif /* ifndef YY_NO_UNPUT */
-
-
-#ifdef __cplusplus
-static int yyinput()
-#else
-static int input()
-#endif
- {
- int c;
-
- *yy_c_buf_p = yy_hold_char;
-
- if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
- {
- /* yy_c_buf_p now points to the character we want to return.
- * If this occurs *before* the EOB characters, then it's a
- * valid NUL; if not, then we've hit the end of the buffer.
- */
- if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
- /* This was really a NUL. */
- *yy_c_buf_p = '\0';
-
- else
- { /* need more input */
- int offset = yy_c_buf_p - yytext_ptr;
- ++yy_c_buf_p;
-
- switch ( yy_get_next_buffer() )
- {
- case EOB_ACT_LAST_MATCH:
- /* This happens because yy_g_n_b()
- * sees that we've accumulated a
- * token and flags that we need to
- * try matching the token before
- * proceeding. But for input(),
- * there's no matching to consider.
- * So convert the EOB_ACT_LAST_MATCH
- * to EOB_ACT_END_OF_FILE.
- */
-
- /* Reset buffer status. */
- yyrestart( yyin );
-
- /* fall through */
-
- case EOB_ACT_END_OF_FILE:
- {
- if ( yywrap() )
- return EOF;
-
- if ( ! yy_did_buffer_switch_on_eof )
- YY_NEW_FILE;
-#ifdef __cplusplus
- return yyinput();
-#else
- return input();
-#endif
- }
-
- case EOB_ACT_CONTINUE_SCAN:
- yy_c_buf_p = yytext_ptr + offset;
- break;
- }
- }
- }
-
- c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
- *yy_c_buf_p = '\0'; /* preserve yytext */
- yy_hold_char = *++yy_c_buf_p;
-
-
- return c;
- }
-
-
-#ifdef YY_USE_PROTOS
-void yyrestart( FILE *input_file )
-#else
-void yyrestart( input_file )
-FILE *input_file;
-#endif
- {
- if ( ! yy_current_buffer )
- yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
-
- yy_init_buffer( yy_current_buffer, input_file );
- yy_load_buffer_state();
- }
-
-
-#ifdef YY_USE_PROTOS
-void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
-#else
-void yy_switch_to_buffer( new_buffer )
-YY_BUFFER_STATE new_buffer;
-#endif
- {
- if ( yy_current_buffer == new_buffer )
- return;
-
- if ( yy_current_buffer )
- {
- /* Flush out information for old buffer. */
- *yy_c_buf_p = yy_hold_char;
- yy_current_buffer->yy_buf_pos = yy_c_buf_p;
- yy_current_buffer->yy_n_chars = yy_n_chars;
- }
-
- yy_current_buffer = new_buffer;
- yy_load_buffer_state();
-
- /* We don't actually know whether we did this switch during
- * EOF (yywrap()) processing, but the only time this flag
- * is looked at is after yywrap() is called, so it's safe
- * to go ahead and always set it.
- */
- yy_did_buffer_switch_on_eof = 1;
- }
-
-
-#ifdef YY_USE_PROTOS
-void yy_load_buffer_state( void )
-#else
-void yy_load_buffer_state()
-#endif
- {
- yy_n_chars = yy_current_buffer->yy_n_chars;
- yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
- yyin = yy_current_buffer->yy_input_file;
- yy_hold_char = *yy_c_buf_p;
- }
-
-
-#ifdef YY_USE_PROTOS
-YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
-#else
-YY_BUFFER_STATE yy_create_buffer( file, size )
-FILE *file;
-int size;
-#endif
- {
- YY_BUFFER_STATE b;
-
- b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
- if ( ! b )
- YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
-
- b->yy_buf_size = size;
-
- /* yy_ch_buf has to be 2 characters longer than the size given because
- * we need to put in 2 end-of-buffer characters.
- */
- b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
- if ( ! b->yy_ch_buf )
- YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
-
- b->yy_is_our_buffer = 1;
-
- yy_init_buffer( b, file );
-
- return b;
- }
-
-
-#ifdef YY_USE_PROTOS
-void yy_delete_buffer( YY_BUFFER_STATE b )
-#else
-void yy_delete_buffer( b )
-YY_BUFFER_STATE b;
-#endif
- {
- if ( ! b )
- return;
-
- if ( b == yy_current_buffer )
- yy_current_buffer = (YY_BUFFER_STATE) 0;
-
- if ( b->yy_is_our_buffer )
- yy_flex_free( (void *) b->yy_ch_buf );
-
- yy_flex_free( (void *) b );
- }
-
-
-#ifndef YY_ALWAYS_INTERACTIVE
-#ifndef YY_NEVER_INTERACTIVE
-extern int isatty YY_PROTO(( int ));
-#endif
-#endif
-
-#ifdef YY_USE_PROTOS
-void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
-#else
-void yy_init_buffer( b, file )
-YY_BUFFER_STATE b;
-FILE *file;
-#endif
-
-
- {
- yy_flush_buffer( b );
-
- b->yy_input_file = file;
- b->yy_fill_buffer = 1;
-
-#if YY_ALWAYS_INTERACTIVE
- b->yy_is_interactive = 1;
-#else
-#if YY_NEVER_INTERACTIVE
- b->yy_is_interactive = 0;
-#else
- b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
-#endif
-#endif
- }
-
-
-#ifdef YY_USE_PROTOS
-void yy_flush_buffer( YY_BUFFER_STATE b )
-#else
-void yy_flush_buffer( b )
-YY_BUFFER_STATE b;
-#endif
-
- {
- if ( ! b )
- return;
-
- b->yy_n_chars = 0;
-
- /* We always need two end-of-buffer characters. The first causes
- * a transition to the end-of-buffer state. The second causes
- * a jam in that state.
- */
- b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
- b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
-
- b->yy_buf_pos = &b->yy_ch_buf[0];
-
- b->yy_at_bol = 1;
- b->yy_buffer_status = YY_BUFFER_NEW;
-
- if ( b == yy_current_buffer )
- yy_load_buffer_state();
- }
-
-
-#ifndef YY_NO_SCAN_BUFFER
-#ifdef YY_USE_PROTOS
-YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
-#else
-YY_BUFFER_STATE yy_scan_buffer( base, size )
-char *base;
-yy_size_t size;
-#endif
- {
- YY_BUFFER_STATE b;
-
- if ( size < 2 ||
- base[size-2] != YY_END_OF_BUFFER_CHAR ||
- base[size-1] != YY_END_OF_BUFFER_CHAR )
- /* They forgot to leave room for the EOB's. */
- return 0;
-
- b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
- if ( ! b )
- YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
-
- b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
- b->yy_buf_pos = b->yy_ch_buf = base;
- b->yy_is_our_buffer = 0;
- b->yy_input_file = 0;
- b->yy_n_chars = b->yy_buf_size;
- b->yy_is_interactive = 0;
- b->yy_at_bol = 1;
- b->yy_fill_buffer = 0;
- b->yy_buffer_status = YY_BUFFER_NEW;
-
- yy_switch_to_buffer( b );
-
- return b;
- }
-#endif
-
-
-#ifndef YY_NO_SCAN_STRING
-#ifdef YY_USE_PROTOS
-YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
-#else
-YY_BUFFER_STATE yy_scan_string( yy_str )
-yyconst char *yy_str;
-#endif
- {
- int len;
- for ( len = 0; yy_str[len]; ++len )
- ;
-
- return yy_scan_bytes( yy_str, len );
- }
-#endif
-
-
-#ifndef YY_NO_SCAN_BYTES
-#ifdef YY_USE_PROTOS
-YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
-#else
-YY_BUFFER_STATE yy_scan_bytes( bytes, len )
-yyconst char *bytes;
-int len;
-#endif
- {
- YY_BUFFER_STATE b;
- char *buf;
- yy_size_t n;
- int i;
-
- /* Get memory for full buffer, including space for trailing EOB's. */
- n = len + 2;
- buf = (char *) yy_flex_alloc( n );
- if ( ! buf )
- YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
-
- for ( i = 0; i < len; ++i )
- buf[i] = bytes[i];
-
- buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
-
- b = yy_scan_buffer( buf, n );
- if ( ! b )
- YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
-
- /* It's okay to grow etc. this buffer, and we should throw it
- * away when we're done.
- */
- b->yy_is_our_buffer = 1;
-
- return b;
- }
-#endif
-
-
-#ifndef YY_NO_PUSH_STATE
-#ifdef YY_USE_PROTOS
-static void yy_push_state( int new_state )
-#else
-static void yy_push_state( new_state )
-int new_state;
-#endif
- {
- if ( yy_start_stack_ptr >= yy_start_stack_depth )
- {
- yy_size_t new_size;
-
- yy_start_stack_depth += YY_START_STACK_INCR;
- new_size = yy_start_stack_depth * sizeof( int );
-
- if ( ! yy_start_stack )
- yy_start_stack = (int *) yy_flex_alloc( new_size );
-
- else
- yy_start_stack = (int *) yy_flex_realloc(
- (void *) yy_start_stack, new_size );
-
- if ( ! yy_start_stack )
- YY_FATAL_ERROR(
- "out of memory expanding start-condition stack" );
- }
-
- yy_start_stack[yy_start_stack_ptr++] = YY_START;
-
- BEGIN(new_state);
- }
-#endif
-
-
-#ifndef YY_NO_POP_STATE
-static void yy_pop_state()
- {
- if ( --yy_start_stack_ptr < 0 )
- YY_FATAL_ERROR( "start-condition stack underflow" );
-
- BEGIN(yy_start_stack[yy_start_stack_ptr]);
- }
-#endif
-
-
-#ifndef YY_NO_TOP_STATE
-static int yy_top_state()
- {
- return yy_start_stack[yy_start_stack_ptr - 1];
- }
-#endif
-
-#ifndef YY_EXIT_FAILURE
-#define YY_EXIT_FAILURE 2
-#endif
-
-#ifdef YY_USE_PROTOS
-static void yy_fatal_error( yyconst char msg[] )
-#else
-static void yy_fatal_error( msg )
-char msg[];
-#endif
- {
- (void) fprintf( stderr, "%s\n", msg );
- exit( YY_EXIT_FAILURE );
- }
-
-
-
-/* Redefine yyless() so it works in section 3 code. */
-
-#undef yyless
-#define yyless(n) \
- do \
- { \
- /* Undo effects of setting up yytext. */ \
- yytext[yyleng] = yy_hold_char; \
- yy_c_buf_p = yytext + n; \
- yy_hold_char = *yy_c_buf_p; \
- *yy_c_buf_p = '\0'; \
- yyleng = n; \
- } \
- while ( 0 )
-
-
-/* Internal utility routines. */
-
-#ifndef yytext_ptr
-#ifdef YY_USE_PROTOS
-static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
-#else
-static void yy_flex_strncpy( s1, s2, n )
-char *s1;
-yyconst char *s2;
-int n;
-#endif
- {
- register int i;
- for ( i = 0; i < n; ++i )
- s1[i] = s2[i];
- }
-#endif
-
-#ifdef YY_NEED_STRLEN
-#ifdef YY_USE_PROTOS
-static int yy_flex_strlen( yyconst char *s )
-#else
-static int yy_flex_strlen( s )
-yyconst char *s;
-#endif
- {
- register int n;
- for ( n = 0; s[n]; ++n )
- ;
-
- return n;
- }
-#endif
-
-
-#ifdef YY_USE_PROTOS
-static void *yy_flex_alloc( yy_size_t size )
-#else
-static void *yy_flex_alloc( size )
-yy_size_t size;
-#endif
- {
- return (void *) malloc( size );
- }
-
-#ifdef YY_USE_PROTOS
-static void *yy_flex_realloc( void *ptr, yy_size_t size )
-#else
-static void *yy_flex_realloc( ptr, size )
-void *ptr;
-yy_size_t size;
-#endif
- {
- /* The cast to (char *) in the following accommodates both
- * implementations that use char* generic pointers, and those
- * that use void* generic pointers. It works with the latter
- * because both ANSI C and C++ allow castless assignment from
- * any pointer type to void*, and deal with argument conversions
- * as though doing an assignment.
- */
- return (void *) realloc( (char *) ptr, size );
- }
-
-#ifdef YY_USE_PROTOS
-static void yy_flex_free( void *ptr )
-#else
-static void yy_flex_free( ptr )
-void *ptr;
-#endif
- {
- free( ptr );
- }
-
-#if YY_MAIN
-int main()
- {
- yylex();
- return 0;
- }
-#endif
-#line 118 "lex_config.l"
-
-
-#ifndef yywrap
-int yywrap() { return 1; }
-#endif
-
-/*======================================================================
-
- Stuff to parse basic data types
-
-======================================================================*/
-
-static int lex_number(char *s)
-{
- yylval.num = strtoul(s, NULL, 0);
- return NUMBER;
-}
-
-static int lex_string(char *s)
-{
- int n = strlen(s);
- yylval.str = malloc(n-1);
- strncpy(yylval.str, s+1, n-2);
- yylval.str[n-2] = '\0';
- return STRING;
-}
-
-/*======================================================================
-
- Code to support nesting of configuration files
-
-======================================================================*/
-
-#define MAX_SOURCE_DEPTH 4
-struct source_stack {
- YY_BUFFER_STATE buffer;
- char *filename;
- int lineno, fileno;
- FILE *file;
- glob_t glob;
-} source_stack[MAX_SOURCE_DEPTH];
-static int source_stack_ptr = 0;
-static int parse_env = 0;
-
-static int get_glob(void)
-{
- struct source_stack *s = &source_stack[source_stack_ptr];
- while (s->fileno < s->glob.gl_pathc) {
- char *fn = s->glob.gl_pathv[s->fileno];
- s->file = fopen(fn, "r");
- if (s->file == NULL) {
- if (strpbrk(fn, "?*[") == NULL)
- syslog(LOG_INFO, "could not open '%s': %m", fn);
- s->fileno++;
- } else {
- current_lineno = 1;
- current_file = strdup(fn);
- yy_switch_to_buffer(yy_create_buffer(s->file, YY_BUF_SIZE));
- source_stack_ptr++;
- s->fileno++;
- return 0;
- }
- }
- return -1;
-}
-
-static void do_source(char *fn)
-{
- struct source_stack *s = &source_stack[source_stack_ptr];
-
- if (source_stack_ptr >= MAX_SOURCE_DEPTH) {
- syslog(LOG_INFO, "source depth limit exceeded");
- return;
- }
- glob(fn, GLOB_NOCHECK, NULL, &s->glob);
- s->fileno = 0;
- s->buffer = YY_CURRENT_BUFFER;
- s->lineno = current_lineno;
- s->filename = current_file;
- get_glob();
-}
-
-static int do_eof(void)
-{
- struct source_stack *s = &source_stack[--source_stack_ptr];
- if (source_stack_ptr < 0) {
- if (parse_env == 0) {
- char *t = getenv("PCMCIA_OPTS");
- if (t == NULL) return -1;
- parse_env = 1;
- source_stack_ptr = 0;
- current_file = "PCMCIA_OPTS";
- current_lineno = 1;
- yy_scan_string(t);
- return 0;
- } else
- return -1;
- }
- fclose(s->file);
- free(current_file);
- yy_delete_buffer(YY_CURRENT_BUFFER);
- if (get_glob() != 0) {
- yy_switch_to_buffer(s->buffer);
- current_lineno = s->lineno;
- current_file = s->filename;
- }
- return 0;
-}
-
-/*======================================================================
-
- The main entry point... returns -1 if the file can't be accessed.
-
-======================================================================*/
-int yyparse(void);
-
-int parse_configfile(char *fn)
-{
- FILE *f;
-
- f = fopen(fn, "r");
- if (!f) {
- syslog(LOG_INFO, "could not open '%s': %m", fn);
- return -1;
- }
- current_lineno = 1;
- current_file = fn;
- source_stack_ptr = 0;
- yyrestart(f);
- yyparse();
- fclose(f);
- return 0;
-}
-
diff --git a/mdk-stage1/pcmcia_/merge_from_pcitable b/mdk-stage1/pcmcia_/merge_from_pcitable
deleted file mode 100755
index 74fc56f31..000000000
--- a/mdk-stage1/pcmcia_/merge_from_pcitable
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/usr/bin/perl
-
-# This program will show on stdout yenta_socket stuff from pcitable
-# which is not in probe.c
-
-use MDK::Common;
-
-my @probelines = cat_('probe.c');
-my $status = 0;
-foreach (@probelines) {
- if ($status == 0) {
- /^pci_id_t pci_id\[\] = {/ and $status = 1;
- } elsif ($status == 1) {
- /^\s*{\s*0x([\da-f]+),\s*0x([\da-f]+),\s*"([^"]*)",\s*"([^"]*)"\s*}/
- and push @probes, { vendor => $1, device => $2, tag => $3, name => $4, vd => "$1$2" };
- /^};/ and last;
- }
-}
-
-require '/usr/bin/merge2pcitable.pl';
-my $drivers = read_pcitable("/usr/share/ldetect-lst/pcitable");
-
-foreach my $k (sort keys %$drivers) {
- $v = $drivers->{$k};
- $k =~ /^(....)(....)/;
- push @pcitable, { vendor => $1, device => $2, driver => $v->[0], name => $v->[1], vd => "$1$2" };
-}
-
-my @res;
-print "Missing in `probe.c':\n";
-foreach my $p (@pcitable) {
- next if $p->{driver} ne 'yenta_socket';
- member($p->{vd}, map { $_->{vd} } @probes) or
- push @res, " { 0x$p->{vendor}, 0x$p->{device}, \"..\", \"$p->{name}\" },\n";
-}
-print sort @res;
-@res = ();
-print "\n";
-
-print "Missing in pcitable:\n";
-foreach my $p (@probes) {
- my @r = grep { $_->{vd} eq $p->{vd} } @pcitable;
- @r > 1 and die "duplicate entry in pcitable <$p->{vd}>\n";
- if (@r && $r[0]->{driver} ne 'yenta_socket') {
- push @res, "0x$p->{vendor}\t0x$p->{device}\t\"yenta_socket\"\t\"$r[0]->{name}\"\n";
- $r[0]->{driver} ne 'unknown' and print STDERR "WARNING, driver for <$p->{vd}> was <$r[0]->{driver}>\n";
- }
-}
-print sort @res;
-@res = ();
-print "\n";
diff --git a/mdk-stage1/pcmcia_/pcmcia.h b/mdk-stage1/pcmcia_/pcmcia.h
deleted file mode 100644
index 1967b3497..000000000
--- a/mdk-stage1/pcmcia_/pcmcia.h
+++ /dev/null
@@ -1,21 +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.
- *
- */
-
-#ifndef _PCMCIA_CARDMGR_INTERFACE_H_
-#define _PCMCIA_CARDMGR_INTERFACE_H_
-
-char * pcmcia_probe(void);
-int cardmgr_call(void);
-
-#endif
diff --git a/mdk-stage1/pcmcia_/probe.c b/mdk-stage1/pcmcia_/probe.c
deleted file mode 100644
index 9877ad404..000000000
--- a/mdk-stage1/pcmcia_/probe.c
+++ /dev/null
@@ -1,513 +0,0 @@
-/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
- *
- * Copyright 2000-2001 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.
- *
- *
- * Code comes from /anonymous@projects.sourceforge.net:/pub/pcmcia-cs/pcmcia-cs-3.1.29.tar.bz2
- */
-
-/*======================================================================
-
- PCMCIA controller probe
-
- probe.c 1.55 2001/08/24 12:19:20
-
- The contents of this file are subject to the Mozilla Public
- License Version 1.1 (the "License"); you may not use this file
- except in compliance with the License. You may obtain a copy of
- the License at http://www.mozilla.org/MPL/
-
- Software distributed under the License is distributed on an "AS
- IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
- implied. See the License for the specific language governing
- rights and limitations under the License.
-
- The initial developer of the original code is David A. Hinds
- <dahinds@users.sourceforge.net>. Portions created by David A. Hinds
- are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
-
- Alternatively, the contents of this file may be used under the
- terms of the GNU General Public License version 2 (the "GPL"), in
- which case the provisions of the GPL are applicable instead of the
- above. If you wish to allow the use of your version of this file
- only under the terms of the GPL and not to allow others to use
- your version of this file under the MPL, indicate your decision
- by deleting the provisions above and replace them with the notice
- and other provisions required by the GPL. If you do not delete
- the provisions above, a recipient may use your version of this
- file under either the MPL or the GPL.
-
-======================================================================*/
-
-#include <sys/types.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#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 *tag;
- char *name;
-} pci_id_t;
-
-pci_id_t pci_id[] = {
- { 0x1013, 0x1100, "Cirrus Logic CL 6729", "Cirrus PD6729" },
- { 0x1013, 0x1110, "Cirrus Logic PD 6832", "Cirrus PD6832" },
- { 0x10b3, 0xb106, "SMC 34C90", "SMC 34C90" },
- { 0x1180, 0x0465, "Ricoh RL5C465", "Ricoh RL5C465" },
- { 0x1180, 0x0466, "Ricoh RL5C466", "Ricoh RL5C466" },
- { 0x1180, 0x0475, "Ricoh RL5C475", "Ricoh RL5C475" },
- { 0x1180, 0x0476, "Ricoh RL5C476", "Ricoh RL5C476" },
- { 0x1180, 0x0477, "Ricoh RL5c477", "Ricoh RL5c477" }, //mdk-stage1// added from pcitable
- { 0x1180, 0x0478, "Ricoh RL5C478", "Ricoh RL5C478" },
- { 0x104c, 0xac12, "Texas Instruments PCI1130", "TI 1130" },
- { 0x104c, 0xac13, "Texas Instruments PCI1031", "TI 1031" },
- { 0x104c, 0xac15, "Texas Instruments PCI1131", "TI 1131" },
- { 0x104c, 0xac1a, "Texas Instruments PCI1210", "TI 1210" },
- { 0x104c, 0xac1e, "Texas Instruments PCI1211", "TI 1211" },
- { 0x104c, 0xac17, "Texas Instruments PCI1220", "TI 1220" },
- { 0x104c, 0xac19, "Texas Instruments PCI1221", "TI 1221" },
- { 0x104c, 0xac1c, "Texas Instruments PCI1225", "TI 1225" },
- { 0x104c, 0xac16, "Texas Instruments PCI1250", "TI 1250A" },
- { 0x104c, 0xac1d, "Texas Instruments PCI1251A", "TI 1251A" },
- { 0x104c, 0xac1f, "Texas Instruments PCI1251B", "TI 1251B" },
- { 0x104c, 0xac50, "Texas Instruments PCI1410", "TI 1410" },
- { 0x104c, 0xac51, "Texas Instruments PCI1420", "TI 1420" },
- { 0x104c, 0xac1b, "Texas Instruments PCI1450", "TI 1450" },
- { 0x104c, 0xac52, "Texas Instruments PCI1451", "TI 1451" },
- { 0x104c, 0xac41, "Texas Instruments PCI4410", "TI 4410" },
- { 0x104c, 0xac40, "Texas Instruments PCI4450", "TI 4450" },
- { 0x104c, 0xac42, "Texas Instruments PCI4451", "TI 4451" },
- { 0x1217, 0x6729, "O2 Micro 6729", "O2Micro OZ6729" },
- { 0x1217, 0x673a, "O2 Micro 6730", "O2Micro OZ6730" },
- { 0x1217, 0x6832, "O2 Micro 6832/6833", "O2Micro OZ6832/OZ6833" },
- { 0x1217, 0x6836, "O2 Micro 6836/6860", "O2Micro OZ6836/OZ6860" },
- { 0x1217, 0x6872, "O2 Micro 6812", "O2Micro OZ6812" },
- { 0x1217, 0x6925, "O2 Micro 6922", "O2Micro OZ6922 CardBus Controller" },
- { 0x1217, 0x6933, "O2 Micro 6933", "O2Micro OZ6933 Cardbus Controller" },
- { 0x1217, 0x6972, "O2 Micro 6912", "O2Micro OZ6912 CardBus Controller" },
- { 0x1179, 0x0603, "Toshiba ToPIC95-A", "Toshiba ToPIC95-A" },
- { 0x1179, 0x060a, "Toshiba ToPIC95-B", "Toshiba ToPIC95-B" },
- { 0x1179, 0x060f, "Toshiba ToPIC97", "Toshiba ToPIC97" },
- { 0x1179, 0x0617, "Toshiba ToPIC100", "Toshiba ToPIC100" },
- { 0x119b, 0x1221, "Omega Micro 82C092G", "Omega Micro 82C092G" },
- { 0x8086, 0x1221, "Intel 82092AA", "Intel 82092AA_0" },
- { 0x8086, 0x1222, "Intel 82092AA", "Intel 82092AA_1" } //mdk-stage1// added from pcitable
-};
-#define PCI_COUNT (sizeof(pci_id)/sizeof(pci_id_t))
-
-char * driver = NULL;
-
-static int pci_probe(void)
-{
- char s[256], *name = NULL;
- 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);
- for (i = 0; i < PCI_COUNT; i++)
- if ((vendor == pci_id[i].vendor) &&
- (device == pci_id[i].device)) break;
- if (i < PCI_COUNT) {
- name = pci_id[i].name;
- if (pci_id[i].vendor == 0x1013 && pci_id[i].device == 0x1100)
- driver = "i82365";
- else
- driver = "yenta_socket";
- break;
- }
- }
- }
-//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.", name);
- 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"
-#include "cirrus.h"
-#include "vg468.h"
-
-static ioaddr_t i365_base = 0x03e0;
-
-static u_char i365_get(u_short sock, u_short reg)
-{
- u_char val = I365_REG(sock, reg);
- outb(val, i365_base); val = inb(i365_base+1);
- return val;
-}
-
-static void i365_set(u_short sock, u_short reg, u_char data)
-{
- u_char val = I365_REG(sock, reg);
- outb(val, i365_base); outb(data, i365_base+1);
-}
-
-static void i365_bset(u_short sock, u_short reg, u_char mask)
-{
- u_char d = i365_get(sock, reg);
- d |= mask;
- i365_set(sock, reg, d);
-}
-
-static void i365_bclr(u_short sock, u_short reg, u_char mask)
-{
- u_char d = i365_get(sock, reg);
- d &= ~mask;
- i365_set(sock, reg, d);
-}
-
-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)) {
- log_perror("PCMCIA: ioperm");
- return -1;
- }
- 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";
- break;
- case 0x83:
- name = "i82365sl B step";
- break;
- case 0x84:
- name = "VLSI 82C146";
- break;
- case 0x88: case 0x89: case 0x8a:
- name = "IBM Clone";
- break;
- case 0x8b: case 0x8c:
- break;
- default:
- done = 1;
- }
- if (done) break;
- }
-
-//mdk-stage1// if (verbose) printf("\n ");
- if (sock == 0) {
-//mdk-stage1// if (!module)
- log_message("\tnot found.");
- return -ENODEV;
- }
-
- if ((sock == 2) && (strcmp(name, "VLSI 82C146") == 0))
- name = "i82365sl DF";
-
- /* Check for Vadem chips */
- outb(0x0e, i365_base);
- outb(0x37, i365_base);
- i365_bset(0, VG468_MISC, VG468_MISC_VADEMREV);
- val = i365_get(0, I365_IDENT);
- if (val & I365_IDENT_VADEM) {
- if ((val & 7) < 4)
- name = "Vadem VG-468";
- else
- name = "Vadem VG-469";
- i365_bclr(0, VG468_MISC, VG468_MISC_VADEMREV);
- }
-
- /* Check for Cirrus CL-PD67xx chips */
- i365_set(0, PD67_CHIP_INFO, 0);
- val = i365_get(0, PD67_CHIP_INFO);
- if ((val & PD67_INFO_CHIP_ID) == PD67_INFO_CHIP_ID) {
- val = i365_get(0, PD67_CHIP_INFO);
- if ((val & PD67_INFO_CHIP_ID) == 0) {
- if (val & PD67_INFO_SLOTS)
- name = "Cirrus CL-PD672x";
- else {
- name = "Cirrus CL-PD6710";
- sock = 1;
- }
- i365_set(0, PD67_EXT_INDEX, 0xe5);
- if (i365_get(0, PD67_EXT_INDEX) != 0xe5)
- name = "VIA VT83C469";
- }
- }
-
-//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);
- return val;
-}
-
-static void tcic_setb(ioaddr_t base, u_char reg, u_char data)
-{
- outb(data, base+reg);
-}
-
-static u_short tcic_getw(ioaddr_t base, u_char reg)
-{
- u_short val = inw(base+reg);
- return val;
-}
-
-static void tcic_setw(ioaddr_t base, u_char reg, u_short data)
-{
- outw(data, base+reg);
-}
-
-static u_short tcic_aux_getw(ioaddr_t base, u_short reg)
-{
- u_char mode = (tcic_getb(base, TCIC_MODE) & TCIC_MODE_PGMMASK) | reg;
- tcic_setb(base, TCIC_MODE, mode);
- return tcic_getw(base, TCIC_AUX);
-}
-
-static void tcic_aux_setw(ioaddr_t base, u_short reg, u_short data)
-{
- u_char mode = (tcic_getb(base, TCIC_MODE) & TCIC_MODE_PGMMASK) | reg;
- tcic_setb(base, TCIC_MODE, mode);
- tcic_setw(base, TCIC_AUX, data);
-}
-
-static int get_tcic_id(ioaddr_t base)
-{
- u_short id;
- tcic_aux_setw(base, TCIC_AUX_TEST, TCIC_TEST_DIAG);
- id = tcic_aux_getw(base, TCIC_AUX_ILOCK);
- id = (id & TCIC_ILOCKTEST_ID_MASK) >> TCIC_ILOCKTEST_ID_SH;
- tcic_aux_setw(base, TCIC_AUX_TEST, 0);
- return id;
-}
-
-int tcic_probe_at(ioaddr_t base)
-{
- int i;
- u_short old;
-
- /* Anything there?? */
- for (i = 0; i < 0x10; i += 2)
- 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 */
- tcic_setw(base, TCIC_SCTRL, TCIC_SCTRL_RESET);
- tcic_setw(base, TCIC_SCTRL, 0);
-
- /* Can we set the addr register? */
- old = tcic_getw(base, TCIC_ADDR);
- tcic_setw(base, TCIC_ADDR, 0);
- if (tcic_getw(base, TCIC_ADDR) != 0) {
- tcic_setw(base, TCIC_ADDR, old);
- return -2;
- }
-
- tcic_setw(base, TCIC_ADDR, 0xc3a5);
- if (tcic_getw(base, TCIC_ADDR) != 0xc3a5)
- return -3;
-
- return 2;
-}
-
-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)) {
- log_perror("PCMCIA: ioperm");
- return -1;
- }
- ioperm(0x80, 1, 1);
- 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:
- log_message("DB86082"); break;
- case TCIC_ID_DB86082A:
- log_message("DB86082A"); break;
- case TCIC_ID_DB86084:
- log_message("DB86084"); break;
- case TCIC_ID_DB86084A:
- log_message("DB86084A"); break;
- case TCIC_ID_DB86072:
- log_message("DB86072"); break;
- case TCIC_ID_DB86184:
- log_message("DB86184"); break;
- case TCIC_ID_DB86082B:
- log_message("DB86082B"); break;
- default:
- 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;
- else if (!i365_probe())
- return "i82365";
- else if (!tcic_probe())
- return "tcic";
- else
- return NULL;
-}
diff --git a/mdk-stage1/pcmcia_/tcic.h b/mdk-stage1/pcmcia_/tcic.h
deleted file mode 100644
index cad193885..000000000
--- a/mdk-stage1/pcmcia_/tcic.h
+++ /dev/null
@@ -1,266 +0,0 @@
-/*
- * tcic.h 1.15 2001/08/24 12:15:34
- *
- * The contents of this file are subject to the Mozilla Public License
- * Version 1.1 (the "License"); you may not use this file except in
- * compliance with the License. You may obtain a copy of the License
- * at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS"
- * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
- * the License for the specific language governing rights and
- * limitations under the License.
- *
- * The initial developer of the original code is David A. Hinds
- * <dahinds@users.sourceforge.net>. Portions created by David A. Hinds
- * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
- *
- * Alternatively, the contents of this file may be used under the
- * terms of the GNU General Public License version 2 (the "GPL"), in
- * which case the provisions of the GPL are applicable instead of the
- * above. If you wish to allow the use of your version of this file
- * only under the terms of the GPL and not to allow others to use
- * your version of this file under the MPL, indicate your decision by
- * deleting the provisions above and replace them with the notice and
- * other provisions required by the GPL. If you do not delete the
- * provisions above, a recipient may use your version of this file
- * under either the MPL or the GPL.
- */
-
-#ifndef _LINUX_TCIC_H
-#define _LINUX_TCIC_H
-
-#define TCIC_BASE 0x240
-
-/* offsets of registers from TCIC_BASE */
-#define TCIC_DATA 0x00
-#define TCIC_ADDR 0x02
-#define TCIC_SCTRL 0x06
-#define TCIC_SSTAT 0x07
-#define TCIC_MODE 0x08
-#define TCIC_PWR 0x09
-#define TCIC_EDC 0x0A
-#define TCIC_ICSR 0x0C
-#define TCIC_IENA 0x0D
-#define TCIC_AUX 0x0E
-
-#define TCIC_SS_SHFT 12
-#define TCIC_SS_MASK 0x7000
-
-/* Flags for TCIC_ADDR */
-#define TCIC_ADR2_REG 0x8000
-#define TCIC_ADR2_INDREG 0x0800
-
-#define TCIC_ADDR_REG 0x80000000
-#define TCIC_ADDR_SS_SHFT (TCIC_SS_SHFT+16)
-#define TCIC_ADDR_SS_MASK (TCIC_SS_MASK<<16)
-#define TCIC_ADDR_INDREG 0x08000000
-#define TCIC_ADDR_IO 0x04000000
-#define TCIC_ADDR_MASK 0x03ffffff
-
-/* Flags for TCIC_SCTRL */
-#define TCIC_SCTRL_ENA 0x01
-#define TCIC_SCTRL_INCMODE 0x18
-#define TCIC_SCTRL_INCMODE_HOLD 0x00
-#define TCIC_SCTRL_INCMODE_WORD 0x08
-#define TCIC_SCTRL_INCMODE_REG 0x10
-#define TCIC_SCTRL_INCMODE_AUTO 0x18
-#define TCIC_SCTRL_EDCSUM 0x20
-#define TCIC_SCTRL_RESET 0x80
-
-/* Flags for TCIC_SSTAT */
-#define TCIC_SSTAT_6US 0x01
-#define TCIC_SSTAT_10US 0x02
-#define TCIC_SSTAT_PROGTIME 0x04
-#define TCIC_SSTAT_LBAT1 0x08
-#define TCIC_SSTAT_LBAT2 0x10
-#define TCIC_SSTAT_RDY 0x20 /* Inverted */
-#define TCIC_SSTAT_WP 0x40
-#define TCIC_SSTAT_CD 0x80 /* Card detect */
-
-/* Flags for TCIC_MODE */
-#define TCIC_MODE_PGMMASK 0x1f
-#define TCIC_MODE_NORMAL 0x00
-#define TCIC_MODE_PGMWR 0x01
-#define TCIC_MODE_PGMRD 0x02
-#define TCIC_MODE_PGMCE 0x04
-#define TCIC_MODE_PGMDBW 0x08
-#define TCIC_MODE_PGMWORD 0x10
-#define TCIC_MODE_AUXSEL_MASK 0xe0
-
-/* Registers accessed through TCIC_AUX, by setting TCIC_MODE */
-#define TCIC_AUX_TCTL (0<<5)
-#define TCIC_AUX_PCTL (1<<5)
-#define TCIC_AUX_WCTL (2<<5)
-#define TCIC_AUX_EXTERN (3<<5)
-#define TCIC_AUX_PDATA (4<<5)
-#define TCIC_AUX_SYSCFG (5<<5)
-#define TCIC_AUX_ILOCK (6<<5)
-#define TCIC_AUX_TEST (7<<5)
-
-/* Flags for TCIC_PWR */
-#define TCIC_PWR_VCC(sock) (0x01<<(sock))
-#define TCIC_PWR_VCC_MASK 0x03
-#define TCIC_PWR_VPP(sock) (0x08<<(sock))
-#define TCIC_PWR_VPP_MASK 0x18
-#define TCIC_PWR_CLIMENA 0x40
-#define TCIC_PWR_CLIMSTAT 0x80
-
-/* Flags for TCIC_ICSR */
-#define TCIC_ICSR_CLEAR 0x01
-#define TCIC_ICSR_SET 0x02
-#define TCIC_ICSR_JAM (TCIC_ICSR_CLEAR|TCIC_ICSR_SET)
-#define TCIC_ICSR_STOPCPU 0x04
-#define TCIC_ICSR_ILOCK 0x08
-#define TCIC_ICSR_PROGTIME 0x10
-#define TCIC_ICSR_ERR 0x20
-#define TCIC_ICSR_CDCHG 0x40
-#define TCIC_ICSR_IOCHK 0x80
-
-/* Flags for TCIC_IENA */
-#define TCIC_IENA_CFG_MASK 0x03
-#define TCIC_IENA_CFG_OFF 0x00 /* disabled */
-#define TCIC_IENA_CFG_OD 0x01 /* active low, open drain */
-#define TCIC_IENA_CFG_LOW 0x02 /* active low, totem pole */
-#define TCIC_IENA_CFG_HIGH 0x03 /* active high, totem pole */
-#define TCIC_IENA_ILOCK 0x08
-#define TCIC_IENA_PROGTIME 0x10
-#define TCIC_IENA_ERR 0x20 /* overcurrent or iochk */
-#define TCIC_IENA_CDCHG 0x40
-
-/* Flags for TCIC_AUX_WCTL */
-#define TCIC_WAIT_COUNT_MASK 0x001f
-#define TCIC_WAIT_ASYNC 0x0020
-#define TCIC_WAIT_SENSE 0x0040
-#define TCIC_WAIT_SRC 0x0080
-#define TCIC_WCTL_WR 0x0100
-#define TCIC_WCTL_RD 0x0200
-#define TCIC_WCTL_CE 0x0400
-#define TCIC_WCTL_LLBAT1 0x0800
-#define TCIC_WCTL_LLBAT2 0x1000
-#define TCIC_WCTL_LRDY 0x2000
-#define TCIC_WCTL_LWP 0x4000
-#define TCIC_WCTL_LCD 0x8000
-
-/* Flags for TCIC_AUX_SYSCFG */
-#define TCIC_SYSCFG_IRQ_MASK 0x000f
-#define TCIC_SYSCFG_MCSFULL 0x0010
-#define TCIC_SYSCFG_IO1723 0x0020
-#define TCIC_SYSCFG_MCSXB 0x0040
-#define TCIC_SYSCFG_ICSXB 0x0080
-#define TCIC_SYSCFG_NOPDN 0x0100
-#define TCIC_SYSCFG_MPSEL_SHFT 9
-#define TCIC_SYSCFG_MPSEL_MASK 0x0e00
-#define TCIC_SYSCFG_MPSENSE 0x2000
-#define TCIC_SYSCFG_AUTOBUSY 0x4000
-#define TCIC_SYSCFG_ACC 0x8000
-
-#define TCIC_ILOCK_OUT 0x01
-#define TCIC_ILOCK_SENSE 0x02
-#define TCIC_ILOCK_CRESET 0x04
-#define TCIC_ILOCK_CRESENA 0x08
-#define TCIC_ILOCK_CWAIT 0x10
-#define TCIC_ILOCK_CWAITSNS 0x20
-#define TCIC_ILOCK_HOLD_MASK 0xc0
-#define TCIC_ILOCK_HOLD_CCLK 0xc0
-
-#define TCIC_ILOCKTEST_ID_SH 8
-#define TCIC_ILOCKTEST_ID_MASK 0x7f00
-#define TCIC_ILOCKTEST_MCIC_1 0x8000
-
-#define TCIC_ID_DB86082 0x02
-#define TCIC_ID_DB86082A 0x03
-#define TCIC_ID_DB86084 0x04
-#define TCIC_ID_DB86084A 0x08
-#define TCIC_ID_DB86072 0x15
-#define TCIC_ID_DB86184 0x14
-#define TCIC_ID_DB86082B 0x17
-
-#define TCIC_TEST_DIAG 0x8000
-
-/*
- * Indirectly addressed registers
- */
-
-#define TCIC_SCF1(sock) ((sock)<<3)
-#define TCIC_SCF2(sock) (((sock)<<3)+2)
-
-/* Flags for SCF1 */
-#define TCIC_SCF1_IRQ_MASK 0x000f
-#define TCIC_SCF1_IRQ_OFF 0x0000
-#define TCIC_SCF1_IRQOC 0x0010
-#define TCIC_SCF1_PCVT 0x0020
-#define TCIC_SCF1_IRDY 0x0040
-#define TCIC_SCF1_ATA 0x0080
-#define TCIC_SCF1_DMA_SHIFT 8
-#define TCIC_SCF1_DMA_MASK 0x0700
-#define TCIC_SCF1_DMA_OFF 0
-#define TCIC_SCF1_DREQ2 2
-#define TCIC_SCF1_IOSTS 0x0800
-#define TCIC_SCF1_SPKR 0x1000
-#define TCIC_SCF1_FINPACK 0x2000
-#define TCIC_SCF1_DELWR 0x4000
-#define TCIC_SCF1_HD7IDE 0x8000
-
-/* Flags for SCF2 */
-#define TCIC_SCF2_RI 0x0001
-#define TCIC_SCF2_IDBR 0x0002
-#define TCIC_SCF2_MDBR 0x0004
-#define TCIC_SCF2_MLBAT1 0x0008
-#define TCIC_SCF2_MLBAT2 0x0010
-#define TCIC_SCF2_MRDY 0x0020
-#define TCIC_SCF2_MWP 0x0040
-#define TCIC_SCF2_MCD 0x0080
-#define TCIC_SCF2_MALL 0x00f8
-
-/* Indirect addresses for memory window registers */
-#define TCIC_MWIN(sock,map) (0x100+(((map)+((sock)<<2))<<3))
-#define TCIC_MBASE_X 2
-#define TCIC_MMAP_X 4
-#define TCIC_MCTL_X 6
-
-#define TCIC_MBASE_4K_BIT 0x4000
-#define TCIC_MBASE_HA_SHFT 12
-#define TCIC_MBASE_HA_MASK 0x0fff
-
-#define TCIC_MMAP_REG 0x8000
-#define TCIC_MMAP_CA_SHFT 12
-#define TCIC_MMAP_CA_MASK 0x3fff
-
-#define TCIC_MCTL_WSCNT_MASK 0x001f
-#define TCIC_MCTL_WCLK 0x0020
-#define TCIC_MCTL_WCLK_CCLK 0x0000
-#define TCIC_MCTL_WCLK_BCLK 0x0020
-#define TCIC_MCTL_QUIET 0x0040
-#define TCIC_MCTL_WP 0x0080
-#define TCIC_MCTL_ACC 0x0100
-#define TCIC_MCTL_KE 0x0200
-#define TCIC_MCTL_EDC 0x0400
-#define TCIC_MCTL_B8 0x0800
-#define TCIC_MCTL_SS_SHFT TCIC_SS_SHFT
-#define TCIC_MCTL_SS_MASK TCIC_SS_MASK
-#define TCIC_MCTL_ENA 0x8000
-
-/* Indirect addresses for I/O window registers */
-#define TCIC_IWIN(sock,map) (0x200+(((map)+((sock)<<1))<<2))
-#define TCIC_IBASE_X 0
-#define TCIC_ICTL_X 2
-
-#define TCIC_ICTL_WSCNT_MASK TCIC_MCTL_WSCNT_MASK
-#define TCIC_ICTL_QUIET TCIC_MCTL_QUIET
-#define TCIC_ICTL_1K 0x0080
-#define TCIC_ICTL_PASS16 0x0100
-#define TCIC_ICTL_ACC TCIC_MCTL_ACC
-#define TCIC_ICTL_TINY 0x0200
-#define TCIC_ICTL_B16 0x0400
-#define TCIC_ICTL_B8 TCIC_MCTL_B8
-#define TCIC_ICTL_BW_MASK (TCIC_ICTL_B16|TCIC_ICTL_B8)
-#define TCIC_ICTL_BW_DYN 0
-#define TCIC_ICTL_BW_8 TCIC_ICTL_B8
-#define TCIC_ICTL_BW_16 TCIC_ICTL_B16
-#define TCIC_ICTL_BW_ATA (TCIC_ICTL_B16|TCIC_ICTL_B8)
-#define TCIC_ICTL_SS_SHFT TCIC_SS_SHFT
-#define TCIC_ICTL_SS_MASK TCIC_SS_MASK
-#define TCIC_ICTL_ENA TCIC_MCTL_ENA
-
-#endif /* _LINUX_TCIC_H */
diff --git a/mdk-stage1/pcmcia_/version.h b/mdk-stage1/pcmcia_/version.h
deleted file mode 100644
index 3be8f28bc..000000000
--- a/mdk-stage1/pcmcia_/version.h
+++ /dev/null
@@ -1,4 +0,0 @@
-/* version.h 1.101 2001/08/09 12:29:14 (David Hinds) */
-
-#define CS_RELEASE "3.1.29"
-#define CS_RELEASE_CODE 0x311d
diff --git a/mdk-stage1/pcmcia_/vg468.h b/mdk-stage1/pcmcia_/vg468.h
deleted file mode 100644
index 93dc00b37..000000000
--- a/mdk-stage1/pcmcia_/vg468.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * vg468.h 1.14 2001/08/24 12:15:34
- *
- * The contents of this file are subject to the Mozilla Public License
- * Version 1.1 (the "License"); you may not use this file except in
- * compliance with the License. You may obtain a copy of the License
- * at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS"
- * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
- * the License for the specific language governing rights and
- * limitations under the License.
- *
- * The initial developer of the original code is David A. Hinds
- * <dahinds@users.sourceforge.net>. Portions created by David A. Hinds
- * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
- *
- * Alternatively, the contents of this file may be used under the
- * terms of the GNU General Public License version 2 (the "GPL"), in
- * which case the provisions of the GPL are applicable instead of the
- * above. If you wish to allow the use of your version of this file
- * only under the terms of the GPL and not to allow others to use
- * your version of this file under the MPL, indicate your decision by
- * deleting the provisions above and replace them with the notice and
- * other provisions required by the GPL. If you do not delete the
- * provisions above, a recipient may use your version of this file
- * under either the MPL or the GPL.
- */
-
-#ifndef _LINUX_VG468_H
-#define _LINUX_VG468_H
-
-/* Special bit in I365_IDENT used for Vadem chip detection */
-#define I365_IDENT_VADEM 0x08
-
-/* Special definitions in I365_POWER */
-#define VG468_VPP2_MASK 0x0c
-#define VG468_VPP2_5V 0x04
-#define VG468_VPP2_12V 0x08
-
-/* Unique Vadem registers */
-#define VG469_VSENSE 0x1f /* Card voltage sense */
-#define VG469_VSELECT 0x2f /* Card voltage select */
-#define VG468_CTL 0x38 /* Control register */
-#define VG468_TIMER 0x39 /* Timer control */
-#define VG468_MISC 0x3a /* Miscellaneous */
-#define VG468_GPIO_CFG 0x3b /* GPIO configuration */
-#define VG469_EXT_MODE 0x3c /* Extended mode register */
-#define VG468_SELECT 0x3d /* Programmable chip select */
-#define VG468_SELECT_CFG 0x3e /* Chip select configuration */
-#define VG468_ATA 0x3f /* ATA control */
-
-/* Flags for VG469_VSENSE */
-#define VG469_VSENSE_A_VS1 0x01
-#define VG469_VSENSE_A_VS2 0x02
-#define VG469_VSENSE_B_VS1 0x04
-#define VG469_VSENSE_B_VS2 0x08
-
-/* Flags for VG469_VSELECT */
-#define VG469_VSEL_VCC 0x03
-#define VG469_VSEL_5V 0x00
-#define VG469_VSEL_3V 0x03
-#define VG469_VSEL_MAX 0x0c
-#define VG469_VSEL_EXT_STAT 0x10
-#define VG469_VSEL_EXT_BUS 0x20
-#define VG469_VSEL_MIXED 0x40
-#define VG469_VSEL_ISA 0x80
-
-/* Flags for VG468_CTL */
-#define VG468_CTL_SLOW 0x01 /* 600ns memory timing */
-#define VG468_CTL_ASYNC 0x02 /* Asynchronous bus clocking */
-#define VG468_CTL_TSSI 0x08 /* Tri-state some outputs */
-#define VG468_CTL_DELAY 0x10 /* Card detect debounce */
-#define VG468_CTL_INPACK 0x20 /* Obey INPACK signal? */
-#define VG468_CTL_POLARITY 0x40 /* VCCEN polarity */
-#define VG468_CTL_COMPAT 0x80 /* Compatibility stuff */
-
-#define VG469_CTL_WS_COMPAT 0x04 /* Wait state compatibility */
-#define VG469_CTL_STRETCH 0x10 /* LED stretch */
-
-/* Flags for VG468_TIMER */
-#define VG468_TIMER_ZEROPWR 0x10 /* Zero power control */
-#define VG468_TIMER_SIGEN 0x20 /* Power up */
-#define VG468_TIMER_STATUS 0x40 /* Activity timer status */
-#define VG468_TIMER_RES 0x80 /* Timer resolution */
-#define VG468_TIMER_MASK 0x0f /* Activity timer timeout */
-
-/* Flags for VG468_MISC */
-#define VG468_MISC_GPIO 0x04 /* General-purpose IO */
-#define VG468_MISC_DMAWSB 0x08 /* DMA wait state control */
-#define VG469_MISC_LEDENA 0x10 /* LED enable */
-#define VG468_MISC_VADEMREV 0x40 /* Vadem revision control */
-#define VG468_MISC_UNLOCK 0x80 /* Unique register lock */
-
-/* Flags for VG469_EXT_MODE_A */
-#define VG469_MODE_VPPST 0x03 /* Vpp steering control */
-#define VG469_MODE_INT_SENSE 0x04 /* Internal voltage sense */
-#define VG469_MODE_CABLE 0x08
-#define VG469_MODE_COMPAT 0x10 /* i82365sl B or DF step */
-#define VG469_MODE_TEST 0x20
-#define VG469_MODE_RIO 0x40 /* Steer RIO to INTR? */
-
-/* Flags for VG469_EXT_MODE_B */
-#define VG469_MODE_B_3V 0x01 /* 3.3v for socket B */
-
-/* Data structure for tracking vendor-specific state */
-typedef struct vg46x_state_t {
- u_char ctl; /* VG468_CTL */
- u_char ema; /* VG468_EXT_MODE_A */
-} vg46x_state_t;
-
-#endif /* _LINUX_VG468_H */
diff --git a/mdk-stage1/pcmcia_/yacc_config.c b/mdk-stage1/pcmcia_/yacc_config.c
deleted file mode 100644
index 79ec16eb5..000000000
--- a/mdk-stage1/pcmcia_/yacc_config.c
+++ /dev/null
@@ -1,1015 +0,0 @@
-#define YYBYACC 1
-#define YYMAJOR 1
-#define YYMINOR 9
-#define yyclearin (yychar=(-1))
-#define yyerrok (yyerrflag=0)
-#define YYRECOVERING (yyerrflag!=0)
-#define YYPREFIX "yy"
-#line 2 "yacc_config.y"
-/*
- * yacc_config.y 1.53 2001/08/24 12:21:34
- *
- * The contents of this file are subject to the Mozilla Public License
- * Version 1.1 (the "License"); you may not use this file except in
- * compliance with the License. You may obtain a copy of the License
- * at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS"
- * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
- * the License for the specific language governing rights and
- * limitations under the License.
- *
- * The initial developer of the original code is David A. Hinds
- * <dahinds@users.sourceforge.net>. Portions created by David A. Hinds
- * are Copyright (C) 1999 David A. Hinds. All Rights Reserved.
- *
- * Alternatively, the contents of this file may be used under the
- * terms of the GNU General Public License version 2 (the "GPL"), in
- * which case the provisions of the GPL are applicable instead of the
- * above. If you wish to allow the use of your version of this file
- * only under the terms of the GPL and not to allow others to use
- * your version of this file under the MPL, indicate your decision by
- * deleting the provisions above and replace them with the notice and
- * other provisions required by the GPL. If you do not delete the
- * provisions above, a recipient may use your version of this file
- * under either the MPL or the GPL.
- */
-
-#include <stdlib.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <string.h>
-#include <syslog.h>
-#include <sys/types.h>
-
-#include <pcmcia_/cs_types.h>
-#include <pcmcia_/cs.h>
-#include <pcmcia_/cistpl.h>
-#include <pcmcia_/ds.h>
-
-#include "cardmgr.h"
-
-/* If bison: generate nicer error messages */
-#define YYERROR_VERBOSE 1
-
-/* from lex_config, for nice error messages */
-extern char *current_file;
-extern int current_lineno;
-
-void yyerror(char *msg, ...);
-
-static int add_binding(card_info_t *card, char *name, int fn);
-static int add_module(device_info_t *card, char *name);
-
-#line 65 "yacc_config.y"
-typedef union {
- char *str;
- u_long num;
- struct device_info_t *device;
- struct card_info_t *card;
- struct mtd_ident_t *mtd;
- struct adjust_list_t *adjust;
-} YYSTYPE;
-#line 77 "y.tab.c"
-#define DEVICE 257
-#define CARD 258
-#define ANONYMOUS 259
-#define TUPLE 260
-#define MANFID 261
-#define VERSION 262
-#define FUNCTION 263
-#define PCI 264
-#define BIND 265
-#define CIS 266
-#define TO 267
-#define NEEDS_MTD 268
-#define MODULE 269
-#define OPTS 270
-#define CLASS 271
-#define REGION 272
-#define JEDEC 273
-#define DTYPE 274
-#define DEFAULT 275
-#define MTD 276
-#define INCLUDE 277
-#define EXCLUDE 278
-#define RESERVE 279
-#define IRQ_NO 280
-#define PORT 281
-#define MEMORY 282
-#define STRING 283
-#define NUMBER 284
-#define YYERRCODE 256
-short yylhs[] = { -1,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
- 1, 1, 2, 2, 2, 3, 3, 3, 3, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 8, 9,
- 10, 11, 12, 12, 13, 15, 14, 14, 14, 14,
- 4, 21, 5, 5, 5, 6, 16, 16, 16, 16,
- 18, 17, 19, 20, 20, 22,
-};
-short yylen[] = { 2,
- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 3, 2, 4, 4, 2, 1, 1, 1, 2,
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 7,
- 5, 5, 3, 3, 3, 3, 3, 5, 3, 5,
- 2, 4, 3, 3, 3, 3, 2, 1, 1, 1,
- 3, 4, 2, 3, 3, 4,
-};
-short yydefred[] = { 1,
- 0, 8, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 17, 0, 19, 0, 21, 22, 23, 24,
- 0, 26, 0, 28, 0, 49, 48, 50, 0, 6,
- 7, 16, 20, 0, 47, 0, 0, 0, 0, 9,
- 10, 11, 0, 41, 0, 0, 0, 0, 29, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 53, 0, 0, 0, 0, 13, 0, 0, 12, 43,
- 46, 44, 45, 0, 0, 33, 35, 0, 0, 36,
- 34, 0, 0, 51, 54, 55, 42, 56, 0, 0,
- 0, 0, 0, 0, 0, 52, 14, 15, 0, 31,
- 32, 38, 40, 0, 30,
-};
-short yydgoto[] = { 1,
- 11, 40, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 31,
-};
-short yysindex[] = { 0,
- -250, 0, -279, -278, -274, -265, -259, -242, -242, -242,
- -10, -248, 0, -44, 0, -249, 0, 0, 0, 0,
- -9, 0, -3, 0, -243, 0, 0, 0, -233, 0,
- 0, 0, 0, -228, 0, -227, -240, -238, -237, 0,
- 0, 0, -242, 0, -235, -232, -231, -230, 0, -234,
- -229, -226, -225, -224, -222, -221, -220, -219, -218, -217,
- 0, -215, -213, -212, -211, 0, 9, 11, 0, 0,
- 0, 0, 0, 14, 21, 0, 0, 30, -192, 0,
- 0, -191, -207, 0, 0, 0, 0, 0, -206, -205,
- -204, -203, -202, -201, -200, 0, 0, 0, 41, 0,
- 0, 0, 0, -197, 0,
-};
-short yyrindex[] = { 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 107, 149, 0, 90, 0, 124, 0, 0, 0, 0,
- 49, 0, 73, 0, 0, 0, 0, 0, 141, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
- 0, 25, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,
-};
-short yygindex[] = { 0,
- 0, -7, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,
-};
-#define YYTABLESIZE 428
-short yytable[] = { 48,
- 37, 41, 42, 32, 33, 2, 3, 4, 34, 49,
- 50, 51, 52, 53, 54, 55, 56, 35, 5, 44,
- 45, 6, 46, 36, 39, 7, 8, 9, 10, 59,
- 60, 61, 62, 43, 57, 69, 63, 37, 38, 39,
- 58, 64, 65, 66, 37, 67, 68, 70, 25, 74,
- 71, 72, 73, 89, 75, 90, 76, 91, 77, 78,
- 79, 80, 81, 82, 92, 83, 84, 85, 39, 86,
- 87, 88, 27, 93, 94, 95, 96, 97, 98, 99,
- 100, 101, 102, 103, 104, 105, 0, 0, 0, 18,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 5, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4, 0, 0, 0, 0, 0, 0, 0, 3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 47, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 0, 0, 37,
- 0, 0, 37, 0, 0, 0, 37, 37, 37, 37,
- 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
- 39, 0, 0, 39, 0, 0, 39, 0, 0, 0,
- 39, 39, 39, 39, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 25, 25, 0, 0, 25, 0, 0,
- 25, 0, 0, 0, 25, 25, 25, 25, 27, 27,
- 27, 27, 27, 27, 27, 27, 27, 27, 27, 0,
- 0, 27, 0, 0, 27, 18, 18, 18, 27, 27,
- 27, 27, 0, 0, 0, 0, 0, 18, 18, 0,
- 18, 18, 2, 2, 2, 18, 18, 18, 18, 0,
- 0, 0, 0, 0, 0, 2, 0, 0, 2, 5,
- 5, 5, 2, 2, 2, 2, 0, 0, 0, 0,
- 0, 0, 5, 0, 0, 5, 4, 4, 4, 5,
- 5, 5, 5, 0, 3, 3, 3, 0, 0, 4,
- 0, 0, 4, 0, 0, 0, 4, 4, 4, 4,
- 3, 0, 0, 0, 3, 3, 3, 3,
-};
-short yycheck[] = { 44,
- 0, 9, 10, 283, 283, 256, 257, 258, 283, 259,
- 260, 261, 262, 263, 264, 265, 266, 283, 269, 268,
- 269, 272, 271, 283, 0, 276, 277, 278, 279, 273,
- 274, 275, 276, 44, 44, 43, 270, 280, 281, 282,
- 44, 270, 270, 284, 44, 284, 284, 283, 0, 284,
- 283, 283, 283, 45, 284, 45, 283, 44, 284, 284,
- 283, 283, 283, 283, 44, 284, 284, 283, 44, 283,
- 283, 283, 0, 44, 267, 267, 284, 284, 284, 284,
- 284, 284, 284, 284, 44, 283, -1, -1, -1, 0,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 0, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 0, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 0, -1, -1, -1, -1, -1, -1, -1, 0, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 270, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 256, 257, 258, 259,
- 260, 261, 262, 263, 264, 265, 266, -1, -1, 269,
- -1, -1, 272, -1, -1, -1, 276, 277, 278, 279,
- 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
- 266, -1, -1, 269, -1, -1, 272, -1, -1, -1,
- 276, 277, 278, 279, 256, 257, 258, 259, 260, 261,
- 262, 263, 264, 265, 266, -1, -1, 269, -1, -1,
- 272, -1, -1, -1, 276, 277, 278, 279, 256, 257,
- 258, 259, 260, 261, 262, 263, 264, 265, 266, -1,
- -1, 269, -1, -1, 272, 256, 257, 258, 276, 277,
- 278, 279, -1, -1, -1, -1, -1, 268, 269, -1,
- 271, 272, 256, 257, 258, 276, 277, 278, 279, -1,
- -1, -1, -1, -1, -1, 269, -1, -1, 272, 256,
- 257, 258, 276, 277, 278, 279, -1, -1, -1, -1,
- -1, -1, 269, -1, -1, 272, 256, 257, 258, 276,
- 277, 278, 279, -1, 256, 257, 258, -1, -1, 269,
- -1, -1, 272, -1, -1, -1, 276, 277, 278, 279,
- 272, -1, -1, -1, 276, 277, 278, 279,
-};
-#define YYFINAL 1
-#ifndef YYDEBUG
-#define YYDEBUG 0
-#endif
-#define YYMAXTOKEN 284
-#if YYDEBUG
-char *yyname[] = {
-"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,"','","'-'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"DEVICE","CARD",
-"ANONYMOUS","TUPLE","MANFID","VERSION","FUNCTION","PCI","BIND","CIS","TO",
-"NEEDS_MTD","MODULE","OPTS","CLASS","REGION","JEDEC","DTYPE","DEFAULT","MTD",
-"INCLUDE","EXCLUDE","RESERVE","IRQ_NO","PORT","MEMORY","STRING","NUMBER",
-};
-char *yyrule[] = {
-"$accept : list",
-"list :",
-"list : list adjust",
-"list : list device",
-"list : list mtd",
-"list : list card",
-"list : list opts",
-"list : list mtd_opts",
-"list : list error",
-"adjust : INCLUDE resource",
-"adjust : EXCLUDE resource",
-"adjust : RESERVE resource",
-"adjust : adjust ',' resource",
-"resource : IRQ_NO NUMBER",
-"resource : PORT NUMBER '-' NUMBER",
-"resource : MEMORY NUMBER '-' NUMBER",
-"device : DEVICE STRING",
-"device : needs_mtd",
-"device : module",
-"device : class",
-"card : CARD STRING",
-"card : anonymous",
-"card : tuple",
-"card : manfid",
-"card : pci",
-"card : version",
-"card : function",
-"card : bind",
-"card : cis",
-"anonymous : card ANONYMOUS",
-"tuple : card TUPLE NUMBER ',' NUMBER ',' STRING",
-"manfid : card MANFID NUMBER ',' NUMBER",
-"pci : card PCI NUMBER ',' NUMBER",
-"version : card VERSION STRING",
-"version : version ',' STRING",
-"function : card FUNCTION NUMBER",
-"cis : card CIS STRING",
-"bind : card BIND STRING",
-"bind : card BIND STRING TO NUMBER",
-"bind : bind ',' STRING",
-"bind : bind ',' STRING TO NUMBER",
-"needs_mtd : device NEEDS_MTD",
-"opts : MODULE STRING OPTS STRING",
-"module : device MODULE STRING",
-"module : module OPTS STRING",
-"module : module ',' STRING",
-"class : device CLASS STRING",
-"region : REGION STRING",
-"region : dtype",
-"region : jedec",
-"region : default",
-"dtype : region DTYPE NUMBER",
-"jedec : region JEDEC NUMBER NUMBER",
-"default : region DEFAULT",
-"mtd : region MTD STRING",
-"mtd : mtd OPTS STRING",
-"mtd_opts : MTD STRING OPTS STRING",
-};
-#endif
-#ifdef YYSTACKSIZE
-#undef YYMAXDEPTH
-#define YYMAXDEPTH YYSTACKSIZE
-#else
-#ifdef YYMAXDEPTH
-#define YYSTACKSIZE YYMAXDEPTH
-#else
-#define YYSTACKSIZE 500
-#define YYMAXDEPTH 500
-#endif
-#endif
-int yydebug;
-int yynerrs;
-int yyerrflag;
-int yychar;
-short *yyssp;
-YYSTYPE *yyvsp;
-YYSTYPE yyval;
-YYSTYPE yylval;
-short yyss[YYSTACKSIZE];
-YYSTYPE yyvs[YYSTACKSIZE];
-#define yystacksize YYSTACKSIZE
-#line 468 "yacc_config.y"
-void yyerror(char *msg, ...)
-{
- va_list ap;
- char str[256];
-
- va_start(ap, msg);
- sprintf(str, "config error, file '%s' line %d: ",
- current_file, current_lineno);
- vsprintf(str+strlen(str), msg, ap);
-#if YYDEBUG
- fprintf(stderr, "%s\n", str);
-#else
- syslog(LOG_ERR, "%s", str);
-#endif
- va_end(ap);
-}
-
-static int add_binding(card_info_t *card, char *name, int fn)
-{
- device_info_t *dev = root_device;
- if (card->bindings == MAX_BINDINGS) {
- yyerror("too many bindings\n");
- return -1;
- }
- for (; dev; dev = dev->next)
- if (strcmp((char *)dev->dev_info, name) == 0) break;
- if (dev == NULL) {
- yyerror("unknown device: %s", name);
- return -1;
- }
- card->device[card->bindings] = dev;
- card->dev_fn[card->bindings] = fn;
- card->bindings++;
- free(name);
- return 0;
-}
-
-static int add_module(device_info_t *dev, char *name)
-{
- if (dev->modules == MAX_MODULES) {
- yyerror("too many modules");
- return -1;
- }
- dev->module[dev->modules] = name;
- dev->opts[dev->modules] = NULL;
- dev->modules++;
- return 0;
-}
-
-#if YYDEBUG
-adjust_list_t *root_adjust = NULL;
-device_info_t *root_device = NULL;
-card_info_t *root_card = NULL, *blank_card = NULL, *root_func = NULL;
-mtd_ident_t *root_mtd = NULL, *default_mtd = NULL;
-
-void main(int argc, char *argv[])
-{
- yydebug = 1;
- if (argc > 1)
- parse_configfile(argv[1]);
-}
-#endif
-#line 426 "y.tab.c"
-#define YYABORT goto yyabort
-#define YYREJECT goto yyabort
-#define YYACCEPT goto yyaccept
-#define YYERROR goto yyerrlab
-int yylex(void);
-int
-yyparse()
-{
- register int yym, yyn, yystate;
-#if YYDEBUG
- register char *yys;
- extern char *getenv();
-
- if (yys = getenv("YYDEBUG"))
- {
- yyn = *yys;
- if (yyn >= '0' && yyn <= '9')
- yydebug = yyn - '0';
- }
-#endif
-
- yynerrs = 0;
- yyerrflag = 0;
- yychar = (-1);
-
- yyssp = yyss;
- yyvsp = yyvs;
- *yyssp = yystate = 0;
-
-yyloop:
- if ((yyn = yydefred[yystate])) goto yyreduce;
- if (yychar < 0)
- {
- if ((yychar = yylex()) < 0) yychar = 0;
-#if YYDEBUG
- if (yydebug)
- {
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- printf("%sdebug: state %d, reading %d (%s)\n",
- YYPREFIX, yystate, yychar, yys);
- }
-#endif
- }
- if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
- {
-#if YYDEBUG
- if (yydebug)
- printf("%sdebug: state %d, shifting to state %d\n",
- YYPREFIX, yystate, yytable[yyn]);
-#endif
- if (yyssp >= yyss + yystacksize - 1)
- {
- goto yyoverflow;
- }
- *++yyssp = yystate = yytable[yyn];
- *++yyvsp = yylval;
- yychar = (-1);
- if (yyerrflag > 0) --yyerrflag;
- goto yyloop;
- }
- if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
- {
- yyn = yytable[yyn];
- goto yyreduce;
- }
- if (yyerrflag) goto yyinrecovery;
- yyerror("syntax error");
-#ifdef lint
- goto yyerrlab;
-#endif
-yyerrlab:
- ++yynerrs;
-yyinrecovery:
- if (yyerrflag < 3)
- {
- yyerrflag = 3;
- for (;;)
- {
- if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
- {
-#if YYDEBUG
- if (yydebug)
- printf("%sdebug: state %d, error recovery shifting\
- to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
-#endif
- if (yyssp >= yyss + yystacksize - 1)
- {
- goto yyoverflow;
- }
- *++yyssp = yystate = yytable[yyn];
- *++yyvsp = yylval;
- goto yyloop;
- }
- else
- {
-#if YYDEBUG
- if (yydebug)
- printf("%sdebug: error recovery discarding state %d\n",
- YYPREFIX, *yyssp);
-#endif
- if (yyssp <= yyss) goto yyabort;
- --yyssp;
- --yyvsp;
- }
- }
- }
- else
- {
- if (yychar == 0) goto yyabort;
-#if YYDEBUG
- if (yydebug)
- {
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
- YYPREFIX, yystate, yychar, yys);
- }
-#endif
- yychar = (-1);
- goto yyloop;
- }
-yyreduce:
-#if YYDEBUG
- if (yydebug)
- printf("%sdebug: state %d, reducing by rule %d (%s)\n",
- YYPREFIX, yystate, yyn, yyrule[yyn]);
-#endif
- yym = yylen[yyn];
- yyval = yyvsp[1-yym];
- switch (yyn)
- {
-case 2:
-#line 84 "yacc_config.y"
-{
- adjust_list_t **tail = &root_adjust;
- while (*tail != NULL) tail = &(*tail)->next;
- *tail = yyvsp[0].adjust;
- }
-break;
-case 3:
-#line 90 "yacc_config.y"
-{
- yyvsp[0].device->next = root_device;
- root_device = yyvsp[0].device;
- }
-break;
-case 4:
-#line 95 "yacc_config.y"
-{
- if (yyvsp[0].mtd->mtd_type == 0) {
- yyerror("no ID method for this card");
- YYERROR;
- }
- if (yyvsp[0].mtd->module == NULL) {
- yyerror("no MTD module specified");
- YYERROR;
- }
- yyvsp[0].mtd->next = root_mtd;
- root_mtd = yyvsp[0].mtd;
- }
-break;
-case 5:
-#line 108 "yacc_config.y"
-{
- if (yyvsp[0].card->ident_type == 0) {
- yyerror("no ID method for this card");
- YYERROR;
- }
- if (yyvsp[0].card->bindings == 0) {
- yyerror("no function bindings");
- YYERROR;
- }
- if (yyvsp[0].card->ident_type == FUNC_IDENT) {
- yyvsp[0].card->next = root_func;
- root_func = yyvsp[0].card;
- } else {
- yyvsp[0].card->next = root_card;
- root_card = yyvsp[0].card;
- }
- }
-break;
-case 9:
-#line 131 "yacc_config.y"
-{
- yyvsp[0].adjust->adj.Action = ADD_MANAGED_RESOURCE;
- yyval.adjust = yyvsp[0].adjust;
- }
-break;
-case 10:
-#line 136 "yacc_config.y"
-{
- yyvsp[0].adjust->adj.Action = REMOVE_MANAGED_RESOURCE;
- yyval.adjust = yyvsp[0].adjust;
- }
-break;
-case 11:
-#line 141 "yacc_config.y"
-{
- yyvsp[0].adjust->adj.Action = ADD_MANAGED_RESOURCE;
- yyvsp[0].adjust->adj.Attributes |= RES_RESERVED;
- yyval.adjust = yyvsp[0].adjust;
- }
-break;
-case 12:
-#line 147 "yacc_config.y"
-{
- yyvsp[0].adjust->adj.Action = yyvsp[-2].adjust->adj.Action;
- yyvsp[0].adjust->adj.Attributes = yyvsp[-2].adjust->adj.Attributes;
- yyvsp[0].adjust->next = yyvsp[-2].adjust;
- yyval.adjust = yyvsp[0].adjust;
- }
-break;
-case 13:
-#line 156 "yacc_config.y"
-{
- yyval.adjust = calloc(sizeof(adjust_list_t), 1);
- yyval.adjust->adj.Resource = RES_IRQ;
- yyval.adjust->adj.resource.irq.IRQ = yyvsp[0].num;
- }
-break;
-case 14:
-#line 162 "yacc_config.y"
-{
- if ((yyvsp[0].num < yyvsp[-2].num) || (yyvsp[0].num > 0xffff)) {
- yyerror("invalid port range");
- YYERROR;
- }
- yyval.adjust = calloc(sizeof(adjust_list_t), 1);
- yyval.adjust->adj.Resource = RES_IO_RANGE;
- yyval.adjust->adj.resource.io.BasePort = yyvsp[-2].num;
- yyval.adjust->adj.resource.io.NumPorts = yyvsp[0].num - yyvsp[-2].num + 1;
- }
-break;
-case 15:
-#line 173 "yacc_config.y"
-{
- if (yyvsp[0].num < yyvsp[-2].num) {
- yyerror("invalid address range");
- YYERROR;
- }
- yyval.adjust = calloc(sizeof(adjust_list_t), 1);
- yyval.adjust->adj.Resource = RES_MEMORY_RANGE;
- yyval.adjust->adj.resource.memory.Base = yyvsp[-2].num;
- yyval.adjust->adj.resource.memory.Size = yyvsp[0].num - yyvsp[-2].num + 1;
- }
-break;
-case 16:
-#line 186 "yacc_config.y"
-{
- yyval.device = calloc(sizeof(device_info_t), 1);
- yyval.device->refs = 1;
- strcpy(yyval.device->dev_info, yyvsp[0].str);
- free(yyvsp[0].str);
- }
-break;
-case 20:
-#line 198 "yacc_config.y"
-{
- yyval.card = calloc(sizeof(card_info_t), 1);
- yyval.card->refs = 1;
- yyval.card->name = yyvsp[0].str;
- }
-break;
-case 29:
-#line 214 "yacc_config.y"
-{
- if (yyvsp[-1].card->ident_type != 0) {
- yyerror("ID method already defined");
- YYERROR;
- }
- if (blank_card) {
- yyerror("Anonymous card already defined");
- YYERROR;
- }
- yyvsp[-1].card->ident_type = BLANK_IDENT;
- blank_card = yyvsp[-1].card;
- }
-break;
-case 30:
-#line 229 "yacc_config.y"
-{
- if (yyvsp[-6].card->ident_type != 0) {
- yyerror("ID method already defined");
- YYERROR;
- }
- yyvsp[-6].card->ident_type = TUPLE_IDENT;
- yyvsp[-6].card->id.tuple.code = yyvsp[-4].num;
- yyvsp[-6].card->id.tuple.ofs = yyvsp[-2].num;
- yyvsp[-6].card->id.tuple.info = yyvsp[0].str;
- }
-break;
-case 31:
-#line 242 "yacc_config.y"
-{
- if (yyvsp[-4].card->ident_type & EXCL_IDENT) {
- yyerror("ID method already defined");
- YYERROR;
- }
- yyvsp[-4].card->ident_type = MANFID_IDENT;
- yyvsp[-4].card->manfid.manf = yyvsp[-2].num;
- yyvsp[-4].card->manfid.card = yyvsp[0].num;
- }
-break;
-case 32:
-#line 253 "yacc_config.y"
-{
- if (yyvsp[-4].card->ident_type != 0) {
- yyerror("ID method already defined");
- YYERROR;
- }
- yyvsp[-4].card->ident_type = PCI_IDENT;
- yyvsp[-4].card->manfid.manf = yyvsp[-2].num;
- yyvsp[-4].card->manfid.card = yyvsp[0].num;
- }
-break;
-case 33:
-#line 264 "yacc_config.y"
-{
- if (yyvsp[-2].card->ident_type & EXCL_IDENT) {
- yyerror("ID method already defined\n");
- YYERROR;
- }
- yyvsp[-2].card->ident_type = VERS_1_IDENT;
- yyvsp[-2].card->id.vers.ns = 1;
- yyvsp[-2].card->id.vers.pi[0] = yyvsp[0].str;
- }
-break;
-case 34:
-#line 274 "yacc_config.y"
-{
- if (yyvsp[-2].card->id.vers.ns == 4) {
- yyerror("too many version strings");
- YYERROR;
- }
- yyvsp[-2].card->id.vers.pi[yyvsp[-2].card->id.vers.ns] = yyvsp[0].str;
- yyvsp[-2].card->id.vers.ns++;
- }
-break;
-case 35:
-#line 285 "yacc_config.y"
-{
- if (yyvsp[-2].card->ident_type != 0) {
- yyerror("ID method already defined\n");
- YYERROR;
- }
- yyvsp[-2].card->ident_type = FUNC_IDENT;
- yyvsp[-2].card->id.func.funcid = yyvsp[0].num;
- }
-break;
-case 36:
-#line 296 "yacc_config.y"
-{ yyvsp[-2].card->cis_file = strdup(yyvsp[0].str); }
-break;
-case 37:
-#line 300 "yacc_config.y"
-{
- if (add_binding(yyvsp[-2].card, yyvsp[0].str, 0) != 0)
- YYERROR;
- }
-break;
-case 38:
-#line 305 "yacc_config.y"
-{
- if (add_binding(yyvsp[-4].card, yyvsp[-2].str, yyvsp[0].num) != 0)
- YYERROR;
- }
-break;
-case 39:
-#line 310 "yacc_config.y"
-{
- if (add_binding(yyvsp[-2].card, yyvsp[0].str, 0) != 0)
- YYERROR;
- }
-break;
-case 40:
-#line 315 "yacc_config.y"
-{
- if (add_binding(yyvsp[-4].card, yyvsp[-2].str, yyvsp[0].num) != 0)
- YYERROR;
- }
-break;
-case 41:
-#line 322 "yacc_config.y"
-{
- yyvsp[-1].device->needs_mtd = 1;
- }
-break;
-case 42:
-#line 328 "yacc_config.y"
-{
- device_info_t *d;
- int i, found = 0;
- for (d = root_device; d; d = d->next) {
- for (i = 0; i < d->modules; i++)
- if (strcmp(yyvsp[-2].str, d->module[i]) == 0) break;
- if (i < d->modules) {
- if (d->opts[i])
- free(d->opts[i]);
- d->opts[i] = strdup(yyvsp[0].str);
- found = 1;
- }
- }
- free(yyvsp[-2].str); free(yyvsp[0].str);
- if (!found) {
- yyerror("module name not found!");
- YYERROR;
- }
- }
-break;
-case 43:
-#line 350 "yacc_config.y"
-{
- if (add_module(yyvsp[-2].device, yyvsp[0].str) != 0)
- YYERROR;
- }
-break;
-case 44:
-#line 355 "yacc_config.y"
-{
- if (yyvsp[-2].device->opts[yyvsp[-2].device->modules-1] == NULL) {
- yyvsp[-2].device->opts[yyvsp[-2].device->modules-1] = yyvsp[0].str;
- } else {
- yyerror("too many options");
- YYERROR;
- }
- }
-break;
-case 45:
-#line 364 "yacc_config.y"
-{
- if (add_module(yyvsp[-2].device, yyvsp[0].str) != 0)
- YYERROR;
- }
-break;
-case 46:
-#line 371 "yacc_config.y"
-{
- if (yyvsp[-2].device->class != NULL) {
- yyerror("extra class string");
- YYERROR;
- }
- yyvsp[-2].device->class = yyvsp[0].str;
- }
-break;
-case 47:
-#line 381 "yacc_config.y"
-{
- yyval.mtd = calloc(sizeof(mtd_ident_t), 1);
- yyval.mtd->refs = 1;
- yyval.mtd->name = yyvsp[0].str;
- }
-break;
-case 51:
-#line 392 "yacc_config.y"
-{
- if (yyvsp[-2].mtd->mtd_type != 0) {
- yyerror("ID method already defined");
- YYERROR;
- }
- yyvsp[-2].mtd->mtd_type = DTYPE_MTD;
- yyvsp[-2].mtd->dtype = yyvsp[0].num;
- }
-break;
-case 52:
-#line 403 "yacc_config.y"
-{
- if (yyvsp[-3].mtd->mtd_type != 0) {
- yyerror("ID method already defined");
- YYERROR;
- }
- yyvsp[-3].mtd->mtd_type = JEDEC_MTD;
- yyvsp[-3].mtd->jedec_mfr = yyvsp[-1].num;
- yyvsp[-3].mtd->jedec_info = yyvsp[0].num;
- }
-break;
-case 53:
-#line 415 "yacc_config.y"
-{
- if (yyvsp[-1].mtd->mtd_type != 0) {
- yyerror("ID method already defined");
- YYERROR;
- }
- if (default_mtd) {
- yyerror("Default MTD already defined");
- YYERROR;
- }
- yyvsp[-1].mtd->mtd_type = DEFAULT_MTD;
- default_mtd = yyvsp[-1].mtd;
- }
-break;
-case 54:
-#line 430 "yacc_config.y"
-{
- if (yyvsp[-2].mtd->module != NULL) {
- yyerror("extra MTD entry");
- YYERROR;
- }
- yyvsp[-2].mtd->module = yyvsp[0].str;
- }
-break;
-case 55:
-#line 438 "yacc_config.y"
-{
- if (yyvsp[-2].mtd->opts == NULL) {
- yyvsp[-2].mtd->opts = yyvsp[0].str;
- } else {
- yyerror("too many options");
- YYERROR;
- }
- }
-break;
-case 56:
-#line 449 "yacc_config.y"
-{
- mtd_ident_t *m;
- int found = 0;
- for (m = root_mtd; m; m = m->next)
- if (strcmp(yyvsp[-2].str, m->module) == 0) break;
- if (m) {
- if (m->opts) free(m->opts);
- m->opts = strdup(yyvsp[0].str);
- found = 1;
- }
- free(yyvsp[-2].str); free(yyvsp[0].str);
- if (!found) {
- yyerror("MTD name not found!");
- YYERROR;
- }
- }
-break;
-#line 966 "y.tab.c"
- }
- yyssp -= yym;
- yystate = *yyssp;
- yyvsp -= yym;
- yym = yylhs[yyn];
- if (yystate == 0 && yym == 0)
- {
-#if YYDEBUG
- if (yydebug)
- printf("%sdebug: after reduction, shifting from state 0 to\
- state %d\n", YYPREFIX, YYFINAL);
-#endif
- yystate = YYFINAL;
- *++yyssp = YYFINAL;
- *++yyvsp = yyval;
- if (yychar < 0)
- {
- if ((yychar = yylex()) < 0) yychar = 0;
-#if YYDEBUG
- if (yydebug)
- {
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- printf("%sdebug: state %d, reading %d (%s)\n",
- YYPREFIX, YYFINAL, yychar, yys);
- }
-#endif
- }
- if (yychar == 0) goto yyaccept;
- goto yyloop;
- }
- if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
- yystate = yytable[yyn];
- else
- yystate = yydgoto[yym];
-#if YYDEBUG
- if (yydebug)
- printf("%sdebug: after reduction, shifting from state %d \
-to state %d\n", YYPREFIX, *yyssp, yystate);
-#endif
- if (yyssp >= yyss + yystacksize - 1)
- {
- goto yyoverflow;
- }
- *++yyssp = yystate;
- *++yyvsp = yyval;
- goto yyloop;
-yyoverflow:
- yyerror("yacc stack overflow");
-yyabort:
- return (1);
-yyaccept:
- return (0);
-}
diff --git a/mdk-stage1/pcmcia_/yacc_config.h b/mdk-stage1/pcmcia_/yacc_config.h
deleted file mode 100644
index b4902c8e6..000000000
--- a/mdk-stage1/pcmcia_/yacc_config.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#define DEVICE 257
-#define CARD 258
-#define ANONYMOUS 259
-#define TUPLE 260
-#define MANFID 261
-#define VERSION 262
-#define FUNCTION 263
-#define PCI 264
-#define BIND 265
-#define CIS 266
-#define TO 267
-#define NEEDS_MTD 268
-#define MODULE 269
-#define OPTS 270
-#define CLASS 271
-#define REGION 272
-#define JEDEC 273
-#define DTYPE 274
-#define DEFAULT 275
-#define MTD 276
-#define INCLUDE 277
-#define EXCLUDE 278
-#define RESERVE 279
-#define IRQ_NO 280
-#define PORT 281
-#define MEMORY 282
-#define STRING 283
-#define NUMBER 284
-typedef union {
- char *str;
- u_long num;
- struct device_info_t *device;
- struct card_info_t *card;
- struct mtd_ident_t *mtd;
- struct adjust_list_t *adjust;
-} YYSTYPE;
-extern YYSTYPE yylval;
diff --git a/mdk-stage1/ppp/.cvsignore b/mdk-stage1/ppp/.cvsignore
deleted file mode 100644
index c258b925d..000000000
--- a/mdk-stage1/ppp/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-pppd-bin
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 c35020eab..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)
-#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/.cvsignore b/mdk-stage1/ppp/pppd/.cvsignore
deleted file mode 100644
index 476ef2253..000000000
--- a/mdk-stage1/ppp/pppd/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-pppd
-pppd-DIET
diff --git a/mdk-stage1/ppp/pppd/Makefile b/mdk-stage1/ppp/pppd/Makefile
deleted file mode 100644
index ad2bdae90..000000000
--- a/mdk-stage1/ppp/pppd/Makefile
+++ /dev/null
@@ -1,59 +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
-
-ifeq (DIETLIBC, $(L))
-TARGETS += pppd-DIET
-endif
-
-BINTARGET = ../pppd-bin
-
-
-all: $(TARGETS)
-
-clean:
- rm -f *.o *.a $(BINTARGET) pppd pppd-DIET
-
-FLAGS = -Wall -Werror -Os -fomit-frame-pointer -DDO_BSD_COMPRESS=0 -D_linux_=1 -DHAVE_MMAP -DNO_DRAND48
-
-INCS = -I../include -I.
-
-
-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
-OBJS-DIET = $(subst .o,-DIET.o,$(OBJS))
-
-
-pppd: $(OBJS)
- gcc -static -o $@ $^ -lcrypt
- $(STRIPCMD) $@
- cp -f $@ $(BINTARGET)
-
-pppd-DIET: $(OBJS-DIET)
- gcc $(DIETLIBC_LDFLAGS_STAGE1) -o $@ $^ $(DIETLIBC_LIBC)
- $(STRIPCMD) $@
- cp -f $@ $(BINTARGET)
-
-$(OBJS): %.o: %.c
- gcc $(FLAGS) $(INCS) $(GLIBC_INCLUDES) -c $< -o $@
-
-$(OBJS-DIET): %-DIET.o: %.c
- gcc $(FLAGS) $(INCS) $(DIETLIBC_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 54ff7d7d8..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 60d366eb3..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 d341bb3de..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 __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;
-}
-
-/********************************************************************
- *
- * 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 9c987cfcd..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 *);
-#ifndef __powerpc__
- 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/probing.c b/mdk-stage1/probing.c
deleted file mode 100644
index 04afc9ce0..000000000
--- a/mdk-stage1/probing.c
+++ /dev/null
@@ -1,656 +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.
- *
- */
-
-/*
- * Portions from Erik Troan (ewt@redhat.com)
- *
- * Copyright 1996 Red Hat Software
- *
- */
-
-
-/*
- * This contains stuff related to probing:
- * (1) any (actually only SCSI, NET, CPQ, USB Controllers) devices (autoprobe for PCI and USB)
- * (2) IDE media
- * (3) SCSI media
- * (4) ETH devices
- */
-
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <sys/socket.h>
-#include <net/if.h>
-#include <sys/ioctl.h>
-#include <sys/mount.h>
-#include "stage1.h"
-
-#include "log.h"
-#include "frontend.h"
-#include "modules.h"
-#include "pci-resource/pci-ids.h"
-#ifdef ENABLE_USB
-#include "usb-resource/usb-ids.h"
-#endif
-
-#include "probing.h"
-
-
-struct media_info {
- char * name;
- char * model;
- enum media_type type;
-};
-
-
-static void warning_insmod_failed(enum insmod_return r)
-{
- if (IS_AUTOMATIC && r == INSMOD_FAILED_FILE_NOT_FOUND)
- return;
- if (r != INSMOD_OK) {
- if (r == INSMOD_FAILED_FILE_NOT_FOUND)
- stg1_error_message("This floppy doesn't contain the driver.");
- else
- stg1_error_message("Warning, installation of driver failed. (please include msg from <Alt-F3> for bugreports)");
- }
-}
-
-#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++;
-}
-
-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");
-}
-#endif
-
-void probe_that_type(enum driver_type type)
-{
- if (IS_EXPERT) {
- ask_insmod(type);
- return;
- }
-
-
- /* ---- PCI probe ---------------------------------------------- */
- {
- FILE * f;
- int len = 0;
- char buf[200];
- struct pci_module_map * pcidb = NULL;
-
- switch (type) {
-#ifndef DISABLE_PCIADAPTERS
-#ifndef DISABLE_MEDIAS
- case SCSI_ADAPTERS:
- pcidb = medias_pci_ids;
- len = medias_num_ids;
- break;
-#endif
-#ifndef DISABLE_NETWORK
- case NETWORK_DEVICES:
- pcidb = network_pci_ids;
- len = network_num_ids;
- break;
-#endif
-#endif
-#ifdef ENABLE_USB
- case USB_CONTROLLERS:
- pcidb = usb_pci_ids;
- len = usb_num_ids;
- break;
-#endif
- default:
- goto end_pci_probe;
- }
-
- if (!(f = fopen("/proc/bus/pci/devices", "rb"))) {
- log_message("PCI: could not open proc file");
- goto end_pci_probe;
- }
-
- while (1) {
- int i, garb, vendor, device;
-
- if (!fgets(buf, sizeof(buf), f)) break;
-
- sscanf(buf, "%x %x", &garb, &vendor);
- device = vendor & 0xFFFF; /* because scanf from dietlibc does not support %4f */
- vendor = (vendor >> 16) & 0xFFFF;
-
- for (i = 0; i < len; i++) {
- if (pcidb[i].vendor == vendor && pcidb[i].device == device) {
- log_message("PCI: device %04x %04x is \"%s\" (%s)", vendor, device, pcidb[i].name, pcidb[i].module);
-#ifndef DISABLE_MEDIAS
- if (type == SCSI_ADAPTERS) {
- int wait_msg = 0;
- enum insmod_return failed;
- if (IS_AUTOMATIC) {
- wait_message("Loading driver for SCSI adapter:\n \n%s", pcidb[i].name);
- wait_msg = 1;
- } else
- stg1_info_message("About to load driver for SCSI adapter:\n \n%s", pcidb[i].name);
- failed = my_insmod(pcidb[i].module, SCSI_ADAPTERS, NULL);
- if (wait_msg)
- remove_wait_message();
- warning_insmod_failed(failed);
-
- }
-#endif
-#ifndef DISABLE_NETWORK
- if (type == NETWORK_DEVICES) {
- stg1_info_message("About to load driver for network device:\n \n%s", pcidb[i].name);
- prepare_intf_descr(pcidb[i].name);
- warning_insmod_failed(my_insmod(pcidb[i].module, NETWORK_DEVICES, NULL));
- 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)
- my_insmod(pcidb[i].module, USB_CONTROLLERS, NULL);
-#endif
- }
- }
- }
- fclose(f);
- end_pci_probe:;
- }
-
-
-#ifdef ENABLE_USB
- /* ---- USB probe ---------------------------------------------- */
- {
- static int already_probed_usb_controllers = 0;
- static int already_mounted_usbdev = 0;
-
- FILE * f;
- int len = 0;
- char buf[200];
- struct usb_module_map * usbdb = NULL;
-
- if (!already_probed_usb_controllers) {
- already_probed_usb_controllers = 1;
- probe_that_type(USB_CONTROLLERS);
- }
-
- if (!already_mounted_usbdev) {
- already_mounted_usbdev = 1;
- my_insmod("usb-storage", SCSI_ADAPTERS, NULL);
- if (mount("/proc/bus/usb", "/proc/bus/usb", "usbdevfs", 0, NULL)) {
- log_message("USB: couldn't mount /proc/bus/usb");
- goto end_usb_probe;
- }
- wait_message("Waiting for USB stuff to show up.");
- sleep(4); /* sucking background work */
- remove_wait_message();
- }
-
- if (!(f = fopen("/proc/bus/usb/devices", "rb"))) {
- log_message("USB: could not open proc file");
- goto end_usb_probe;
- }
-
- switch (type) {
- case NETWORK_DEVICES:
- usbdb = usb_usb_ids;
- len = usb_usb_num_ids;
- break;
- default:
- goto end_usb_probe;
- }
-
- while (1) {
- int i, vendor, id;
-
- if (!fgets(buf, sizeof(buf), f)) break;
-
- if (strstr(buf, "Keyboard")) {
- my_insmod("usbkbd", ANY_DRIVER_TYPE, NULL);
- my_insmod("keybdev", ANY_DRIVER_TYPE, NULL);
- }
-
- if (sscanf(buf, "P: Vendor=%x ProdID=%x", &vendor, &id) != 2)
- continue;
-
- for (i = 0; i < len; i++) {
- if (usbdb[i].vendor == vendor && usbdb[i].id == id) {
- log_message("USB: device %04x %04x is \"%s\" (%s)", vendor, id, usbdb[i].name, usbdb[i].module);
-#ifndef DISABLE_NETWORK
- if (type == NETWORK_DEVICES) {
- stg1_info_message("About to load driver for usb network device:\n \n%s", usbdb[i].name);
- prepare_intf_descr(usbdb[i].name);
- warning_insmod_failed(my_insmod(usbdb[i].module, NETWORK_DEVICES, NULL));
- if (intf_descr_for_discover) /* for modules providing more than one net intf */
- net_discovered_interface(NULL);
- }
-#endif
-
- }
- }
- }
- fclose(f);
- end_usb_probe:;
- }
-#endif
-}
-
-
-#ifndef DISABLE_MEDIAS
-static struct media_info * medias = NULL;
-
-static void find_media(void)
-{
- char b[50];
- char buf[5000];
- struct media_info tmp[50];
- int count;
- int fd;
-
- if (!medias)
- probe_that_type(SCSI_ADAPTERS);
- else
- free(medias); /* that does not free the strings, by the way */
-
- /* ----------------------------------------------- */
- log_message("looking for ide media");
-
- count = 0;
- strcpy(b, "/proc/ide/hd");
- for (b[12] = 'a'; b[12] <= 'h'; 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++;
- }
-
-
- /* ----------------------------------------------- */
- log_message("looking for scsi media");
-
- fd = open("/proc/scsi/scsi", O_RDONLY);
- if (fd != -1) {
- 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 (*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 DAC960");
- {
- FILE * f;
- if ((f = fopen("/tmp/syslog", "rb"))) {
- while (fgets(buf, sizeof(buf), f)) {
- char * start;
- if ((start = strstr(buf, "/dev/rd/"))) {
- char * end = strchr(start, ':');
- if (!end)
- log_message("Inconsistency in syslog, line:\n%s", buf);
- else {
- *end = '\0';
- tmp[count].name = strdup(start+5);
- tmp[count].type = DISK;
- start = end + 2;
- end = strchr(start, ',');
- if (end) {
- *end = '\0';
- tmp[count].model = strdup(start);
- } else
- tmp[count].model = "(unknown)";
- log_message("DAC960: found %s (%s)", tmp[count].name, tmp[count].model);
- count++;
- }
- }
- }
- fclose(f);
- }
- }
-
- /* ----------------------------------------------- */
- tmp[count].name = NULL;
- count++;
-
- medias = memdup(tmp, sizeof(struct media_info) * count);
-}
-
-
-/* Finds by media */
-void get_medias(enum media_type media, char *** names, char *** models)
-{
- struct media_info * m;
- char * tmp_names[50];
- char * tmp_models[50];
- int count;
-
- find_media();
-
- m = medias;
-
- count = 0;
- while (m && m->name) {
- if (m->type == media) {
- tmp_names[count] = strdup(m->name);
- tmp_models[count++] = strdup(m->model);
- }
- m++;
- }
- tmp_names[count] = NULL;
- tmp_models[count++] = NULL;
-
- *names = memdup(tmp_names, sizeof(char *) * count);
- *models = memdup(tmp_models, sizeof(char *) * count);
-}
-#endif /* DISABLE_MEDIAS */
-
-
-#ifndef DISABLE_NETWORK
-int net_device_available(char * device) {
- struct ifreq req;
- int s;
-
- s = socket(AF_INET, SOCK_DGRAM, 0);
- if (s < 0) {
- log_perror(device);
- return 0;
- }
- strcpy(req.ifr_name, device);
- if (ioctl(s, SIOCGIFFLAGS, &req)) {
- /* if we can't get the flags, the networking device isn't available */
- close(s);
- return 0;
- }
- close(s);
- return 1;
-}
-
-
-char ** get_net_devices(void)
-{
- char * devices[] = {
- "eth0", "eth1", "eth2", "eth3", "eth4", "eth5",
- "tr0",
- "plip0", "plip1", "plip2",
- "fddi0",
-#ifdef ENABLE_USB
- "usb0", "usb1", "usb2", "usb3",
-#endif
- NULL
- };
- char ** ptr = devices;
- char * tmp[50];
- int i = 0;
- static int already_probed = 0;
-
- if (!already_probed) {
- already_probed = 1; /* cut off loop brought by: probe_that_type => my_insmod => get_net_devices */
- probe_that_type(NETWORK_DEVICES);
- }
-
- while (ptr && *ptr) {
- if (net_device_available(*ptr))
- tmp[i++] = strdup(*ptr);
- ptr++;
- }
- tmp[i++] = NULL;
-
- return memdup(tmp, sizeof(char *) * i);
-}
-#endif /* DISABLE_NETWORK */
diff --git a/mdk-stage1/probing.h b/mdk-stage1/probing.h
deleted file mode 100644
index d2bf1e567..000000000
--- a/mdk-stage1/probing.h
+++ /dev/null
@@ -1,36 +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.
- *
- */
-
-/*
- * Portions from Erik Troan (ewt@redhat.com)
- *
- * Copyright 1996 Red Hat Software
- *
- */
-
-#ifndef _PROBING_H_
-#define _PROBING_H_
-
-enum media_type { CDROM, DISK, FLOPPY, TAPE, UNKNOWN_MEDIA };
-
-enum driver_type { SCSI_ADAPTERS, NETWORK_DEVICES, USB_CONTROLLERS, ANY_DRIVER_TYPE };
-
-void get_medias(enum media_type media, char *** names, char *** models);
-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);
-
-
-#endif
diff --git a/mdk-stage1/rescue-gui.c b/mdk-stage1/rescue-gui.c
deleted file mode 100644
index dd4b9a0df..000000000
--- a/mdk-stage1/rescue-gui.c
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
- *
- * Copyright 2001 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 <stdlib.h>
-#define _USE_BSD
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <sys/wait.h>
-#include <unistd.h>
-#include <string.h>
-#include <stdio.h>
-#include <sys/mount.h>
-#include <fcntl.h>
-#include <sys/ioctl.h>
-#include <linux/unistd.h>
-#include <sys/select.h>
-
-#include "config-stage1.h"
-#include "frontend.h"
-#include "tools.h"
-
-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",
- "HOME=/",
- "TERM=linux",
- "TERMINFO=/etc/terminfo",
- NULL
-};
-
-void pause(void) { unsigned char t; fflush(stdout); read(0, &t, 1); }
-
-
-/* ------ UUURGH this is duplicated from `init.c', don't edit here........ */
-static inline _syscall3(int, reboot, int, magic, int, magic2, int, flag);
-#define LOOP_CLR_FD 0x4C01
-void del_loop(char *device)
-{
- int fd;
- if ((fd = open(device, O_RDONLY, 0)) < 0) {
- printf("del_loop open failed\n");
- return;
- }
-
- if (ioctl(fd, LOOP_CLR_FD, 0) < 0) {
- printf("del_loop ioctl failed");
- return;
- }
-
- close(fd);
-}
-struct filesystem { char * dev; char * name; char * fs; int mounted; };
-void unmount_filesystems(void)
-{
- int fd, size;
- char buf[65535]; /* this should be big enough */
- char *p;
- struct filesystem fs[500];
- int numfs = 0;
- int i, nb;
-
- printf("unmounting filesystems...\n");
-
- fd = open("/proc/mounts", O_RDONLY, 0);
- if (fd < 1) {
- printf("ERROR: failed to open /proc/mounts");
- sleep(2);
- return;
- }
-
- size = read(fd, buf, sizeof(buf) - 1);
- buf[size] = '\0';
-
- close(fd);
-
- p = buf;
- while (*p) {
- fs[numfs].mounted = 1;
- fs[numfs].dev = p;
- while (*p != ' ') p++;
- *p++ = '\0';
- fs[numfs].name = p;
- while (*p != ' ') p++;
- *p++ = '\0';
- fs[numfs].fs = p;
- while (*p != ' ') p++;
- *p++ = '\0';
- while (*p != '\n') p++;
- p++;
- if (strcmp(fs[numfs].name, "/") != 0) numfs++; /* skip if root, no need to take initrd root in account */
- }
-
- /* Pixel's ultra-optimized sorting algorithm:
- multiple passes trying to umount everything until nothing moves
- anymore (a.k.a holy shotgun method) */
- do {
- nb = 0;
- for (i = 0; i < numfs; i++) {
- /*printf("trying with %s\n", fs[i].name);*/
- if (fs[i].mounted && umount(fs[i].name) == 0) {
- if (strncmp(fs[i].dev + sizeof("/dev/") - 1, "loop",
- sizeof("loop") - 1) == 0)
- del_loop(fs[i].dev);
-
- printf("\t%s\n", fs[i].name);
- fs[i].mounted = 0;
- nb++;
- }
- }
- } while (nb);
-
- 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 (nb) {
- printf("failed to umount some filesystems\n");
- while (1);
- }
-}
-/* ------ UUURGH -- end */
-
-
-int main(int argc, char **argv)
-{
- enum return_type results;
-
- char install_bootloader[] = "Re-install Boot Loader";
-#ifdef __i386__
- char restore_ms_boot[] = "Restore Windows Boot Loader";
-#endif
- char mount_parts[] = "Mount your partitions under /mnt";
- char go_to_console[] = "Go to console";
- char reboot_[] = "Reboot";
- char doc[] = "Doc: what's addressed by this Rescue?";
-
- char * actions[] = { install_bootloader,
-#ifdef __i386__
- restore_ms_boot,
-#endif
- mount_parts, go_to_console, reboot_, doc, NULL };
- char * choice;
-
- init_frontend("Welcome to " DISTRIB_NAME " Rescue (" VERSION ") " __DATE__ " " __TIME__);
-
- do {
- int pid;
- char * binary = NULL;
-
- choice = "";
- results = ask_from_list("Please choose the desired action.", actions, &choice);
-
- if (ptr_begins_static_str(choice, install_bootloader)) {
- binary = "/usr/bin/install_bootloader";
- }
-#ifdef __i386__
- if (ptr_begins_static_str(choice, restore_ms_boot)) {
- binary = "/usr/bin/restore_ms_boot";
- }
-#endif
- if (ptr_begins_static_str(choice, mount_parts)) {
- binary = "/usr/bin/guessmounts";
- }
- if (ptr_begins_static_str(choice, reboot_)) {
- finish_frontend();
- unmount_filesystems();
- printf("rebooting system\n");
- sleep(2);
- reboot(0xfee1dead, 672274793, 0x01234567);
- }
- if (ptr_begins_static_str(choice, doc)) {
- binary = "/usr/bin/rescue-doc";
- }
-
- if (binary) {
- int wait_status;
- suspend_to_console();
- if (!(pid = fork())) {
-
- char * child_argv[2];
- child_argv[0] = binary;
- child_argv[1] = NULL;
-
- execve(child_argv[0], child_argv, env);
- printf("Can't execute binary (%s)\n<press Enter>\n", binary);
- pause();
-
- return 33;
- }
- while (wait4(-1, &wait_status, 0, NULL) != pid) {};
- printf("<press Enter to return to Rescue GUI>");
- pause();
- resume_from_suspend();
- if (!WIFEXITED(wait_status) || WEXITSTATUS(wait_status) != 0) {
- error_message("Program exited abnormally (return code %d).", WEXITSTATUS(wait_status));
- if (WIFSIGNALED(wait_status))
- error_message("(received signal %d)", WTERMSIG(wait_status));
- }
- }
-
- } while (results == RETURN_OK && !ptr_begins_static_str(choice, go_to_console));
-
- finish_frontend();
- printf("Bye.\n");
-
- return 0;
-}
diff --git a/mdk-stage1/rp-pppoe/.cvsignore b/mdk-stage1/rp-pppoe/.cvsignore
deleted file mode 100644
index 1f345b56b..000000000
--- a/mdk-stage1/rp-pppoe/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-pppoe-bin
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/.cvsignore b/mdk-stage1/rp-pppoe/src/.cvsignore
deleted file mode 100644
index a59197332..000000000
--- a/mdk-stage1/rp-pppoe/src/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-pppoe
-pppoe-DIET
diff --git a/mdk-stage1/rp-pppoe/src/Makefile b/mdk-stage1/rp-pppoe/src/Makefile
deleted file mode 100644
index f96b5714e..000000000
--- a/mdk-stage1/rp-pppoe/src/Makefile
+++ /dev/null
@@ -1,58 +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
-
-ifeq (DIETLIBC, $(L))
-TARGETS += pppoe-DIET
-endif
-
-BINTARGET = ../pppoe-bin
-
-
-all: $(TARGETS)
-
-clean:
- rm -f *.o *.a $(BINTARGET) pppoe pppoe-DIET
-
-FLAGS = -Wall -Werror -Os -fomit-frame-pointer '-DPPPOE_PATH="/sbin/pppoe"' '-DPPPD_PATH="/sbin/pppd"' '-DVERSION="3.0-stg1"'
-
-
-
-OBJS = pppoe.o if.o debug.o common.o ppp.o discovery.o
-OBJS-DIET = $(subst .o,-DIET.o,$(OBJS))
-
-
-pppoe: $(OBJS)
- gcc -static -o $@ $^
- $(STRIPCMD) $@
- cp -f $@ $(BINTARGET)
-
-pppoe-DIET: $(OBJS-DIET)
- gcc $(DIETLIBC_LDFLAGS_STAGE1) -o $@ $^ $(DIETLIBC_LIBC)
- $(STRIPCMD) $@
- cp -f $@ $(BINTARGET)
-
-$(OBJS): %.o: %.c
- gcc $(FLAGS) $(GLIBC_INCLUDES) $(INCS) -c $< -o $@
-
-$(OBJS-DIET): %-DIET.o: %.c
- gcc $(FLAGS) $(DIETLIBC_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 b27302104..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(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 8ffe37248..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 <linux/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 4cd1dc6bb..000000000
--- a/mdk-stage1/slang/Makefile
+++ /dev/null
@@ -1,56 +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
-
-ifeq (DIETLIBC, $(L))
-TARGETS += $(LIBNAME)-DIET.a
-endif
-
-all: $(TARGETS)
-
-clean:
- rm -f *.o *.a
-
-OBJS-DIET = $(subst .o,-DIET.o,$(OBJS))
-
-$(LIBNAME).a: $(OBJS)
- ar -cru $@ $^
- ranlib $@
-
-$(LIBNAME)-DIET.a: $(OBJS-DIET)
- ar -cru $@ $^
- ranlib $@
-
-$(OBJS): %.o: %.c
- gcc $(CFLAGS) $(DEFS) $(INCS) $(GLIBC_INCLUDES) -c $< -o $@
-
-$(OBJS-DIET): %-DIET.o: %.c
- gcc $(CFLAGS) $(DEFS) $(INCS) $(DIETLIBC_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 d08967a24..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-data/stage1-with-busybox.tar.bz2 b/mdk-stage1/stage1-data/stage1-with-busybox.tar.bz2
deleted file mode 100644
index 337b13666..000000000
--- a/mdk-stage1/stage1-data/stage1-with-busybox.tar.bz2
+++ /dev/null
Binary files differ
diff --git a/mdk-stage1/stage1-data/stage1-with-sash.tar.bz2 b/mdk-stage1/stage1-data/stage1-with-sash.tar.bz2
deleted file mode 100644
index 56279ae90..000000000
--- a/mdk-stage1/stage1-data/stage1-with-sash.tar.bz2
+++ /dev/null
Binary files differ
diff --git a/mdk-stage1/stage1-data/stage1.tar.bz2 b/mdk-stage1/stage1-data/stage1.tar.bz2
deleted file mode 100644
index 98e62b362..000000000
--- a/mdk-stage1/stage1-data/stage1.tar.bz2
+++ /dev/null
Binary files differ
diff --git a/mdk-stage1/stage1.c b/mdk-stage1/stage1.c
deleted file mode 100644
index 44ed25155..000000000
--- a/mdk-stage1/stage1.c
+++ /dev/null
@@ -1,468 +0,0 @@
-/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
- *
- * Copyright 2000-2001 MandrakeSoft
- *
- * View the homepage: http://people.mandrakesoft.com/~gc/html/stage1.html
- *
- *
- * 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.
- *
- */
-
-/*
- * Portions from Erik Troan (ewt@redhat.com)
- *
- * Copyright 1996 Red Hat Software
- *
- */
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <sys/ioctl.h>
-#include <sys/mount.h>
-#include <string.h>
-#include <errno.h>
-#include <ctype.h>
-#include <stdarg.h>
-#include <signal.h>
-
-#include "stage1.h"
-
-#include "log.h"
-#include "probing.h"
-#include "frontend.h"
-#include "modules.h"
-#include "tools.h"
-#include "automatic.h"
-#include "mount.h"
-#include "insmod.h"
-
-#ifdef ENABLE_PCMCIA
-#include "pcmcia_/pcmcia.h"
-#endif
-
-#ifndef DISABLE_CDROM
-#include "cdrom.h"
-#endif
-
-#ifndef DISABLE_NETWORK
-#include "network.h"
-#endif
-
-#ifndef DISABLE_DISK
-#include "disk.h"
-#endif
-
-
-/************************************************************
- * globals */
-
-char * method_name;
-char * stage2_kickstart = NULL;
-
-
-void fatal_error(char *msg)
-{
- printf("FATAL ERROR IN STAGE1: %s\n\nI can't recover from this.\nYou may reboot your system.\n", msg);
- while (1);
-}
-
-
-/************************************************************
- * special frontend functs
- * (the principle is to not pollute frontend code with stage1-specific stuff) */
-
-void stg1_error_message(char *msg, ...)
-{
- va_list args;
- va_start(args, msg);
- log_message("unsetting automatic");
- unset_param(MODE_AUTOMATIC);
- verror_message(msg, args);
- va_end(args);
-}
-
-void stg1_info_message(char *msg, ...)
-{
- va_list args;
- va_start(args, msg);
- if (IS_AUTOMATIC) {
- vlog_message(msg, args);
- return;
- }
- vinfo_message(msg, args);
- va_end(args);
-}
-
-
-/************************************************************
- * spawns a shell on console #2 */
-static void spawn_shell(void)
-{
-#ifdef SPAWN_SHELL
- int fd;
- char * shell_name[] = { "/tmp/sh", NULL };
-
- log_message("spawning a shell");
-
- if (!IS_TESTING) {
- fd = open("/dev/tty2", O_RDWR);
- if (fd == -1) {
- log_message("cannot open /dev/tty2 -- no shell will be provided");
- return;
- }
- else if (access(shell_name[0], X_OK)) {
- log_message("cannot open shell - %s doesn't exist", shell_name[0]);
- return;
- }
-
- if (!fork()) {
- dup2(fd, 0);
- dup2(fd, 1);
- dup2(fd, 2);
-
- close(fd);
- setsid();
- if (ioctl(0, TIOCSCTTY, NULL))
- log_perror("could not set new controlling tty");
-
- execve(shell_name[0], shell_name, grab_env());
- log_message("execve of %s failed: %s", shell_name[0], strerror(errno));
- exit(-1);
- }
-
- close(fd);
- }
-#endif
-}
-
-
-char * interactive_fifo = "/tmp/stage1-fifo";
-static pid_t interactive_pid = 0;
-
-/* spawns my small interactive on console #6 */
-static void spawn_interactive(void)
-{
-#ifdef SPAWN_INTERACTIVE
- int fd;
- char * dev = "/dev/tty6";
-
- printf("spawning my interactive on %s\n", dev);
-
- if (!IS_TESTING) {
- fd = open(dev, O_RDWR);
- if (fd == -1) {
- printf("cannot open %s -- no interactive\n", dev);
- return;
- }
-
- if (mkfifo(interactive_fifo, O_RDWR)) {
- printf("cannot create fifo -- no interactive\n");
- return;
- }
-
- if (!(interactive_pid = fork())) {
- int fif_out;
-
- dup2(fd, 0);
- dup2(fd, 1);
- dup2(fd, 2);
-
- close(fd);
- setsid();
- if (ioctl(0, TIOCSCTTY, NULL))
- perror("could not set new controlling tty");
-
- fif_out = open(interactive_fifo, O_WRONLY);
- printf("Please enter your command (availables: [+,-] [rescue,expert]).\n");
-
- while (1) {
- char s[50];
- int i = 0;
- printf("? ");
- fflush(stdout);
- read(0, &(s[i++]), 1);
- fcntl(0, F_SETFL, O_NONBLOCK);
- while (read(0, &(s[i++]), 1) > 0 && i < sizeof(s));
- fcntl(0, F_SETFL, 0);
- write(fif_out, s, i-2);
- printf("Ok.\n");
- }
- }
-
- close(fd);
- }
-#endif
-}
-
-
-/************************************************************
- */
-
-static void expert_third_party_modules(void)
-{
- enum return_type results;
- char * floppy_mount_location = "/tmp/floppy";
- char ** modules;
- char final_name[500];
- char * choice;
- int rc;
- char * questions[] = { "Options", NULL };
- static char ** answers = NULL;
-
- results = ask_yes_no("If you want to insert third-party kernel modules, insert "
- "a Linux (ext2fs) formatted floppy containing the modules and confirm. Otherwise, select \"no\".");;
- if (results != RETURN_OK)
- return;
-
- my_insmod("floppy", ANY_DRIVER_TYPE, NULL);
-
- if (my_mount("/dev/fd0", floppy_mount_location, "ext2", 0) == -1) {
- stg1_error_message("I can't find a Linux ext2 floppy in first floppy drive.");
- return expert_third_party_modules();
- }
-
- modules = list_directory(floppy_mount_location);
-
- if (!modules || !*modules) {
- stg1_error_message("No modules found on floppy disk.");
- umount(floppy_mount_location);
- return expert_third_party_modules();
- }
-
- results = ask_from_list("Which driver would you like to insmod?", modules, &choice);
- if (results != RETURN_OK) {
- umount(floppy_mount_location);
- return;
- }
-
- sprintf(final_name, "%s/%s", floppy_mount_location, choice);
-
- results = ask_from_entries("Please enter the options:", questions, &answers, 24, NULL);
- if (results != RETURN_OK) {
- umount(floppy_mount_location);
- return expert_third_party_modules();
- }
-
- rc = insmod_call(final_name, answers[0]);
- umount(floppy_mount_location);
-
- if (rc) {
- log_message("\tfailed");
- stg1_error_message("Insmod failed.");
- }
-
- return expert_third_party_modules();
-}
-
-
-#ifdef ENABLE_PCMCIA
-static void handle_pcmcia(char ** pcmcia_adapter)
-{
- char buf[50];
- int fd = open("/proc/version", O_RDONLY);
- int size;
- if (fd == -1)
- fatal_error("could not open /proc/version");
- size = read(fd, buf, sizeof(buf));
- buf[size-1] = '\0'; // -1 to eat the \n
- close(fd);
- buf[17] = '\0'; // enough to extract `2.2'
- if (ptr_begins_static_str(buf+14, "2.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);
- my_insmod(*pcmcia_adapter, ANY_DRIVER_TYPE, NULL);
- my_insmod("ds", ANY_DRIVER_TYPE, NULL);
-
- /* call to cardmgr takes time, let's use the wait message */
- wait_message("Enabling PCMCIA extension cards...");
- log_message("cardmgr rc: %d", cardmgr_call());
- remove_wait_message();
-
- if (IS_EXPERT)
- expert_third_party_modules();
-}
-#endif
-
-
-/************************************************************
- */
-
-static enum return_type method_select_and_prepare(void)
-{
- enum return_type results;
- char * choice;
- char * means[10], * means_auto[10];
- int i;
-
-#ifndef DISABLE_DISK
- char * disk_install = "Hard disk"; char * disk_install_auto = "disk";
-#endif
-#ifndef DISABLE_CDROM
- char * cdrom_install = "CDROM drive"; char * cdrom_install_auto = "cdrom";
-#endif
-#ifndef DISABLE_NETWORK
- char * network_nfs_install = "NFS server"; char * network_nfs_install_auto = "nfs";
- char * network_ftp_install = "FTP server"; char * network_ftp_install_auto = "ftp";
- char * network_http_install = "HTTP server"; char * network_http_install_auto = "http";
-#endif
-
- i = 0;
-#ifndef DISABLE_NETWORK
- means[i] = network_nfs_install; means_auto[i++] = network_nfs_install_auto;
- means[i] = network_ftp_install; means_auto[i++] = network_ftp_install_auto;
- means[i] = network_http_install; means_auto[i++] = network_http_install_auto;
-#endif
-#ifndef DISABLE_CDROM
- means[i] = cdrom_install; means_auto[i++] = cdrom_install_auto;
-#endif
-#ifndef DISABLE_DISK
- means[i] = disk_install; means_auto[i++] = disk_install_auto;
-#endif
- means[i] = NULL;
-
- results = ask_from_list_auto("Please choose the installation method.", means, &choice, "method", means_auto);
-
- if (results != RETURN_OK)
- return method_select_and_prepare();
-
- results = RETURN_ERROR;
-
-#ifndef DISABLE_CDROM
- if (!strcmp(choice, cdrom_install))
- results = cdrom_prepare();
-#endif
-
-#ifndef DISABLE_DISK
- if (!strcmp(choice, disk_install))
- results = disk_prepare();
-#endif
-
-#ifndef DISABLE_NETWORK
- if (!strcmp(choice, network_nfs_install))
- results = nfs_prepare();
-
- if (!strcmp(choice, network_ftp_install))
- results = ftp_prepare();
-
- if (!strcmp(choice, network_http_install))
- results = http_prepare();
-#endif
-
- if (results != RETURN_OK)
- return method_select_and_prepare();
-
- return RETURN_OK;
-}
-
-
-int main(int argc __attribute__ ((unused)), char **argv __attribute__ ((unused)), char **env)
-{
- enum return_type ret;
- char ** argptr;
- char * stage2_args[30];
-#ifdef ENABLE_PCMCIA
- char * pcmcia_adapter = NULL;
-#endif
-
- if (getpid() > 50)
- set_param(MODE_TESTING);
-
- spawn_interactive();
-
- open_log();
- log_message("welcome to the " DISTRIB_NAME " install (mdk-stage1, version " VERSION " built " __DATE__ " " __TIME__")");
- process_cmdline();
- handle_env(env);
- spawn_shell();
- init_modules_insmoding();
- init_frontend("Welcome to " DISTRIB_NAME " (" VERSION ") " __DATE__ " " __TIME__);
-
- if (IS_EXPERT)
- expert_third_party_modules();
-
- if (IS_UPDATEMODULES)
- update_modules();
-
-#ifdef ENABLE_PCMCIA
- handle_pcmcia(&pcmcia_adapter);
-#endif
-
- 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.");
-
- if (IS_RESCUE && total_memory() < MEM_LIMIT_RESCUE) {
- stg1_error_message("You are starting the rescue with a low memory configuration. "
- "Our experience shows that your system may crash at any point "
- "or lock up for no apparent reason. Continue at "
- "your own risk. Alternatively, you may reboot your system now.");
- }
-
- ret = method_select_and_prepare();
-
- finish_frontend();
- close_log();
-
- if (ret != RETURN_OK)
- fatal_error("could not select an installation method");
-
- if (!IS_RAMDISK) {
- if (symlink(IMAGE_LOCATION LIVE_LOCATION, STAGE2_LOCATION) != 0) {
- printf("symlink from " IMAGE_LOCATION LIVE_LOCATION " to " STAGE2_LOCATION " failed");
- fatal_error(strerror(errno));
- }
- }
-
- if (interactive_pid != 0)
- kill(interactive_pid, 9);
-
- if (IS_RESCUE)
- return 66;
- if (IS_TESTING)
- return 0;
-
- argptr = stage2_args;
- *argptr++ = "/usr/bin/runinstall2";
- *argptr++ = "--method";
- *argptr++ = method_name;
-#ifdef ENABLE_PCMCIA
- if (pcmcia_adapter) {
- *argptr++ = "--pcmcia";
- *argptr++ = pcmcia_adapter;
- }
-#endif
- if (disable_modules)
- *argptr++ = "--blank";
- if (stage2_kickstart) {
- *argptr++ = "--kickstart";
- *argptr++ = stage2_kickstart;
- }
- *argptr++ = NULL;
-
- execve(stage2_args[0], stage2_args, grab_env());
-
- printf("error in exec of stage2 :-(\n");
- printf("trying to execute '/usr/bin/runinstall2' from the installation volume,\nthe following fatal error occurred\n");
- fatal_error(strerror(errno));
-
- return 0; /* shut up compiler (we can't get here anyway!) */
-}
diff --git a/mdk-stage1/stage1.h b/mdk-stage1/stage1.h
deleted file mode 100644
index f92c45c41..000000000
--- a/mdk-stage1/stage1.h
+++ /dev/null
@@ -1,59 +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.
- *
- */
-
-/*
- * Portions from Erik Troan (ewt@redhat.com)
- *
- * Copyright 1996 Red Hat Software
- *
- */
-
-#ifndef _STAGE1_H_
-#define _STAGE1_H_
-
-#include "config-stage1.h"
-#include "tools.h"
-
-
-/* Some global stuff */
-
-extern char * method_name;
-extern char * interactive_fifo;
-extern char * stage2_kickstart;
-
-#define MODE_TESTING (1 << 0)
-#define MODE_EXPERT (1 << 1)
-#define MODE_RESCUE (1 << 3)
-#define MODE_AUTOMATIC (1 << 4)
-#define MODE_SPECIAL_STAGE2 (1 << 8)
-#define MODE_RAMDISK (1 << 9)
-#define MODE_CHANGEDISK (1 << 10)
-#define MODE_UPDATEMODULES (1 << 11)
-
-#define IS_TESTING (get_param(MODE_TESTING))
-#define IS_EXPERT (get_param(MODE_EXPERT))
-#define IS_RESCUE (get_param(MODE_RESCUE))
-#define IS_AUTOMATIC (get_param(MODE_AUTOMATIC))
-#define IS_SPECIAL_STAGE2 (get_param(MODE_SPECIAL_STAGE2))
-#define IS_RAMDISK (get_param(MODE_RAMDISK))
-#define IS_CHANGEDISK (get_param(MODE_CHANGEDISK))
-#define IS_UPDATEMODULES (get_param(MODE_UPDATEMODULES))
-
-void fatal_error(char *msg) __attribute__ ((noreturn));
-
-
-void stg1_error_message(char *msg, ...) __attribute__ ((format (printf, 1, 2)));
-void stg1_info_message(char *msg, ...) __attribute__ ((format (printf, 1, 2)));
-
-#endif
diff --git a/mdk-stage1/stdio-frontend.c b/mdk-stage1/stdio-frontend.c
deleted file mode 100644
index 83e8fd76d..000000000
--- a/mdk-stage1/stdio-frontend.c
+++ /dev/null
@@ -1,366 +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.
- *
- */
-
-
-/*
- * Each different frontend must implement all functions defined in frontend.h
- */
-
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdarg.h>
-#include <fcntl.h>
-#include <sys/ioctl.h>
-#include <termios.h>
-
-#include "frontend.h"
-
-
-void init_frontend(char * welcome_msg)
-{
- printf(welcome_msg);
- printf("\n");
-}
-
-
-void finish_frontend(void)
-{
-}
-
-static void get_any_response(void)
-{
- unsigned char t;
- printf("\n\t(press <enter> to proceed)");
- fflush(stdout);
- read(0, &t, 1);
- fcntl(0, F_SETFL, O_NONBLOCK);
- while (read(0, &t, 1) > 0);
- fcntl(0, F_SETFL, 0);
-}
-
-static int get_int_response(void)
-{
- char s[50];
- int j = 0, i = 0; /* (0) tied to Cancel */
- fflush(stdout);
- read(0, &(s[i++]), 1);
- fcntl(0, F_SETFL, O_NONBLOCK);
- do {
- int v = s[i-1];
- if (v >= '0' && v <= '9')
- j = j*10 + (v - '0');
- } while (read(0, &(s[i++]), 1) > 0 && i < sizeof(s));
- fcntl(0, F_SETFL, 0);
- return j;
-}
-
-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;
-
- struct termios t;
-
- memset(s, '\0', sizeof(s));
-
- if (initial_string) {
- printf(initial_string);
- strcpy(s, initial_string);
- i = strlen(s);
- }
-
- /* from ncurses/tinfo/lib_raw.c:(cbreak) */
- tcgetattr(0, &t);
- t.c_lflag &= ~ICANON;
- t.c_lflag |= ISIG;
- t.c_lflag &= ~ECHO;
- t.c_iflag &= ~ICRNL;
- t.c_cc[VMIN] = 1;
- t.c_cc[VTIME] = 0;
- tcsetattr(0, TCSADRAIN, &t);
-
- fflush(stdout);
-
- fcntl(0, F_SETFL, O_NONBLOCK);
-
- while (1) {
- if (read(0, &b, 1) > 0) {
- if (b_index == 1) {
- if (b == 91) {
- buf[b_index] = b;
- b_index++;
- continue;
- }
- else
- b_index = 0;
- }
- if (b_index == 2) {
- if (b == 67) {
- if (s[i] != '\0') {
- printf("\033[C");
- i++;
- }
- }
- if (b == 68) {
- if (i > 0) {
- printf("\033[D");
- i--;
- }
- }
- b_index = 0;
- continue;
- }
-
- if (b == 13)
- break;
- if (b == 127) {
- if (i > 0) {
- printf("\033[D");
- printf(" ");
- printf("\033[D");
- if (s[i] == '\0')
- s[i-1] = '\0';
- else
- s[i-1] = ' ';
- i--;
- }
- } else if (b == 27) {
- buf[b_index] = b;
- b_index++;
- } else {
- printf("%c", b);
- s[i] = b;
- i++;
- }
- }
- }
-
- t.c_lflag |= ICANON;
- t.c_lflag |= ECHO;
- t.c_iflag |= ICRNL;
- tcsetattr(0, TCSADRAIN, &t);
-
- fcntl(0, F_SETFL, 0);
-
- printf("\n");
- return strdup(s);
-}
-
-static void blocking_msg(char *type, char *fmt, va_list ap)
-{
- printf(type);
- vprintf(fmt, ap);
- get_any_response();
-}
-
-void verror_message(char *msg, va_list ap)
-{
- blocking_msg("> Error! ", msg, ap);
-}
-
-void vinfo_message(char *msg, va_list ap)
-{
- blocking_msg("> Notice: ", msg, ap);
-}
-
-void vwait_message(char *msg, va_list ap)
-{
- printf("Please wait: ");
- vprintf(msg, ap);
- fflush(stdout);
-}
-
-void remove_wait_message(void)
-{
- printf("\n");
-}
-
-
-static int size_progress;
-static int actually_drawn;
-#define PROGRESS_SIZE 45
-void init_progression(char *msg, int size)
-{
- int i;
- size_progress = size;
- printf("%s ", msg);
- if (size) {
- actually_drawn = 0;
- for (i=0; i<PROGRESS_SIZE; i++)
- printf(".");
- printf("]\033[G%s [", msg); /* only works on ANSI-compatibles */
- fflush(stdout);
- } else
- printf("\n");
-}
-
-void update_progression(int current_size)
-{
- if (size_progress) {
- if (current_size > size_progress)
- current_size = size_progress;
- while ((int)((current_size*PROGRESS_SIZE)/size_progress) > actually_drawn) {
- printf("*");
- actually_drawn++;
- }
- } else
- printf("\033[GStatus: [%8d] bytes loaded...", current_size);
-
- fflush(stdout);
-}
-
-void end_progression(void)
-{
- if (size_progress) {
- update_progression(size_progress);
- printf("]\n");
- } else
- printf(" done.\n");
-}
-
-
-enum return_type ask_from_list_comments(char *msg, char ** elems, char ** elems_comments, char ** choice)
-{
- int justify_number = 1;
- void print_choice_number(int i) {
- char tmp[500];
- snprintf(tmp, sizeof(tmp), "[%%%dd]", justify_number);
- printf(tmp, i);
- }
- char ** sav_elems = elems;
- int i = 1;
- int j = 0;
-
- while (elems && *elems) {
- elems++;
- i++;
- }
- if (i >= 10)
- justify_number = 2;
-
- elems = sav_elems;
- i = 1;
-
- printf("> %s\n", msg);
- print_choice_number(0);
- printf(" Cancel");
-
- while (elems && *elems) {
- if (elems_comments && *elems_comments) {
- printf("\n");
- print_choice_number(i);
- printf(" %s (%s)", *elems, *elems_comments);
- j = 0;
- } else {
- if (j == 0)
- printf("\n");
- print_choice_number(i);
- printf(" %-14s ", *elems);
- j++;
- }
- if (j == 4)
- j = 0;
-
- if (elems_comments)
- elems_comments++;
- i++;
- elems++;
- }
-
- printf("\n? ");
-
- j = get_int_response();
-
- if (j == 0)
- return RETURN_BACK;
-
- if (j >= 1 && j <= i) {
- *choice = strdup(sav_elems[j-1]);
- return RETURN_OK;
- }
-
- return RETURN_ERROR;
-}
-
-
-enum return_type ask_from_list(char *msg, char ** elems, char ** choice)
-{
- return ask_from_list_comments(msg, elems, NULL, choice);
-}
-
-
-enum return_type ask_yes_no(char *msg)
-{
- int j;
-
- printf("> %s\n[0] Yes [1] No [2] Back\n? ", msg);
-
- j = get_int_response();
-
- if (j == 0)
- return RETURN_OK;
- else if (j == 2)
- return RETURN_BACK;
- else return RETURN_ERROR;
-}
-
-
-enum return_type ask_from_entries(char *msg, char ** questions, char *** answers, int entry_size, void (*callback_func)(char ** strings))
-{
- int j, i = 0;
- char ** already_answers = NULL;
-
- printf("> %s\n", msg);
-
- while (questions && *questions) {
- printf("(%c) %s\n", i + 'a', *questions);
- i++;
- questions++;
- }
-
- if (*answers == NULL)
- *answers = (char **) malloc(sizeof(char *) * i);
- else
- already_answers = *answers;
-
- while (1) {
- int r;
- for (j = 0 ; j < i ; j++) {
- printf("(%c) ? ", j + 'a');
- if (already_answers && *already_answers) {
- (*answers)[j] = get_string_response(*already_answers);
- already_answers++;
- } else
- (*answers)[j] = get_string_response(NULL);
-
- }
- printf("[0] Cancel [1] Accept [2] Re-enter answers\n? ");
- r = get_int_response();
- if (r == 0)
- return RETURN_BACK;
- if (r == 1)
- return RETURN_OK;
- }
-}
-
-
-void suspend_to_console(void) {}
-void resume_from_suspend(void) {}
diff --git a/mdk-stage1/tools.c b/mdk-stage1/tools.c
deleted file mode 100644
index e5d37f28b..000000000
--- a/mdk-stage1/tools.c
+++ /dev/null
@@ -1,434 +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.
- *
- */
-
-/*
- * Portions from Erik Troan (ewt@redhat.com)
- *
- * Copyright 1996 Red Hat Software
- *
- */
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <string.h>
-#include <ctype.h>
-#include <stdio.h>
-#include <dirent.h>
-#include <sys/types.h>
-#include <bzlib.h>
-#include <sys/mount.h>
-#include <sys/poll.h>
-#include "stage1.h"
-#include "log.h"
-#include "mount.h"
-#include "frontend.h"
-#include "automatic.h"
-
-#include "tools.h"
-
-
-static struct param_elem params[50];
-static int param_number = 0;
-
-void process_cmdline(void)
-{
- char buf[512];
- int fd, size, i;
-
- log_message("opening /proc/cmdline... ");
-
- if ((fd = open("/proc/cmdline", O_RDONLY)) == -1)
- fatal_error("could not open /proc/cmdline");
-
- size = read(fd, buf, sizeof(buf));
- buf[size-1] = '\0'; // -1 to eat the \n
- close(fd);
-
- log_message("\t%s", buf);
-
- i = 0;
- while (buf[i] != '\0') {
- char *name, *value = NULL;
- int j = i;
- while (buf[i] != ' ' && buf[i] != '=' && buf[i] != '\0')
- i++;
- if (i == j) {
- i++;
- continue;
- }
- name = memdup(&buf[j], i-j + 1);
- name[i-j] = '\0';
-
- if (buf[i] == '=') {
- int k = i+1;
- i++;
- while (buf[i] != ' ' && buf[i] != '\0')
- i++;
- value = memdup(&buf[k], i-k + 1);
- value[i-k] = '\0';
- }
-
- params[param_number].name = name;
- params[param_number].value = value;
- param_number++;
- if (!strcmp(name, "expert")) set_param(MODE_EXPERT);
- if (!strcmp(name, "changedisk")) set_param(MODE_CHANGEDISK);
- if (!strcmp(name, "updatemodules")) set_param(MODE_UPDATEMODULES);
- if (!strcmp(name, "rescue")) set_param(MODE_RESCUE);
- if (!strcmp(name, "special_stage2")) set_param(MODE_SPECIAL_STAGE2);
- if (!strcmp(name, "automatic")) {
- set_param(MODE_AUTOMATIC);
- grab_automatic_params(value);
- }
- if (buf[i] == '\0')
- break;
- i++;
- }
-
- log_message("\tgot %d args", param_number);
-}
-
-
-int stage1_mode = 0;
-
-int get_param(int i)
-{
-#ifdef SPAWN_INTERACTIVE
- static int fd = 0;
- char buf[5000];
- char * ptr;
- int nb;
-
- if (fd <= 0) {
- fd = open(interactive_fifo, O_RDONLY);
- if (fd == -1)
- return (stage1_mode & i);
- fcntl(fd, F_SETFL, O_NONBLOCK);
- }
-
- if (fd > 0) {
- if ((nb = read(fd, buf, sizeof(buf))) > 0) {
- buf[nb] = '\0';
- ptr = buf;
- while ((ptr = strstr(ptr, "+ "))) {
- if (!strncmp(ptr+2, "expert", 6)) set_param(MODE_EXPERT);
- if (!strncmp(ptr+2, "rescue", 6)) set_param(MODE_RESCUE);
- ptr++;
- }
- ptr = buf;
- while ((ptr = strstr(ptr, "- "))) {
- if (!strncmp(ptr+2, "expert", 6)) unset_param(MODE_EXPERT);
- if (!strncmp(ptr+2, "rescue", 6)) unset_param(MODE_RESCUE);
- ptr++;
- }
- }
- }
-#endif
-
- return (stage1_mode & i);
-}
-
-char * get_param_valued(char *param_name)
-{
- int i;
- for (i = 0; i < param_number ; i++)
- if (!strcmp(params[i].name, param_name))
- return params[i].value;
-
- return NULL;
-}
-
-void set_param_valued(char *param_name, char *param_value)
-{
- params[param_number].name = param_name;
- params[param_number].value = param_value;
- param_number++;
-}
-
-void set_param(int i)
-{
- stage1_mode |= i;
- if (i == MODE_RESCUE) {
- set_param_valued("special_stage2", "rescue");
- set_param(MODE_SPECIAL_STAGE2);
- }
-}
-
-void unset_param(int i)
-{
- stage1_mode &= ~i;
-}
-
-// warning, many things rely on the fact that:
-// - when failing it returns 0
-// - it stops on first non-digit char
-int charstar_to_int(char * s)
-{
- int number = 0;
- while (*s && isdigit(*s)) {
- number = (number * 10) + (*s - '0');
- s++;
- }
- return number;
-}
-
-int total_memory(void)
-{
- int value;
- struct stat statr;
- if (stat("/proc/kcore", &statr))
- return 0;
-
- /* drakx powered: use /proc/kcore and rounds every 4 Mbytes */
- value = 4 * ((int)((float)statr.st_size / 1024 / 1024 / 4 + 0.5));
- log_message("Total Memory: %d Mbytes", value);
-
- return value;
-}
-
-
-int ramdisk_possible(void)
-{
- if (total_memory() > (IS_RESCUE ? MEM_LIMIT_RESCUE : MEM_LIMIT_RAMDISK))
- return 1;
- else {
- log_message("warning, ramdisk is not possible due to low mem!");
- return 0;
- }
-}
-
-
-static void save_stuff_for_rescue(void)
-{
- void save_this_file(char * file) {
- char buf[5000];
- int fd_r, fd_w, i;
- char location[100];
-
- if ((fd_r = open(file, O_RDONLY)) < 0) {
- log_message("can't open %s for read", file);
- return;
- }
- strcpy(location, STAGE2_LOCATION);
- strcat(location, file);
- if ((fd_w = open(location, O_WRONLY)) < 0) {
- log_message("can't open %s for write", location);
- close(fd_r);
- return;
- }
- if ((i = read(fd_r, buf, sizeof(buf))) <= 0) {
- log_message("can't read from %s", file);
- close(fd_r); close(fd_w);
- return;
- }
- if (write(fd_w, buf, i) != i)
- log_message("can't write %d bytes to %s", i, location);
- close(fd_r); close(fd_w);
- log_message("saved file %s for rescue (%d bytes)", file, i);
- }
- save_this_file("/etc/resolv.conf");
-}
-
-
-enum return_type load_ramdisk_fd(int ramdisk_fd, int size)
-{
- BZFILE * st2;
- char * ramdisk = "/dev/ram3"; /* warning, verify that this file exists in the initrd, and that root=/dev/ram3 is actually passed to the kernel at boot time */
- int ram_fd;
- char buffer[32768];
- int z_errnum;
- char * wait_msg = "Loading program into memory...";
- int bytes_read = 0;
- int actually;
- int seems_ok = 0;
-
- st2 = BZ2_bzdopen(ramdisk_fd, "r");
-
- if (!st2) {
- log_message("Opening compressed ramdisk: %s", BZ2_bzerror(st2, &z_errnum));
- stg1_error_message("Could not open compressed ramdisk file.");
- return RETURN_ERROR;
- }
-
- ram_fd = open(ramdisk, O_WRONLY);
- if (ram_fd == -1) {
- log_perror(ramdisk);
- stg1_error_message("Could not open ramdisk device file.");
- return RETURN_ERROR;
- }
-
- init_progression(wait_msg, size);
-
- while ((actually = BZ2_bzread(st2, buffer, sizeof(buffer))) > 0) {
- seems_ok = 1;
- if (write(ram_fd, buffer, actually) != actually) {
- log_perror("writing ramdisk");
- remove_wait_message();
- return RETURN_ERROR;
- }
- update_progression((int)((bytes_read += actually) / RAMDISK_COMPRESSION_RATIO));
- }
-
- if (!seems_ok) {
- log_message("reading compressed ramdisk: %s", BZ2_bzerror(st2, &z_errnum));
- BZ2_bzclose(st2); /* opened by gzdopen, but also closes the associated fd */
- close(ram_fd);
- remove_wait_message();
- stg1_error_message("Could not uncompress second stage ramdisk. "
- "This is probably an hardware error while reading the data. "
- "(this may be caused by a hardware failure or a Linux kernel bug)");
- return RETURN_ERROR;
- }
-
- end_progression();
-
- BZ2_bzclose(st2); /* opened by gzdopen, but also closes the associated fd */
- close(ram_fd);
-
- if (my_mount(ramdisk, STAGE2_LOCATION, "ext2", 1))
- return RETURN_ERROR;
-
- set_param(MODE_RAMDISK);
-
- if (IS_RESCUE) {
- save_stuff_for_rescue();
- if (umount(STAGE2_LOCATION)) {
- log_perror(ramdisk);
- return RETURN_ERROR;
- }
- return RETURN_OK; /* fucksike, I lost several hours wondering why the kernel won't see the rescue if it is alreay mounted */
- }
-
- return RETURN_OK;
-}
-
-
-char * get_ramdisk_realname(void)
-{
- char img_name[500];
- char * stg2_name = get_param_valued("special_stage2");
- char * begin_img = RAMDISK_LOCATION;
- char * end_img = "_stage2.bz2";
-
- if (!stg2_name)
- stg2_name = "mdkinst";
-
- if (IS_RESCUE)
- stg2_name = "rescue";
-
- strcpy(img_name, begin_img);
- strcat(img_name, stg2_name);
- strcat(img_name, end_img);
-
- return strdup(img_name);
-}
-
-
-enum return_type load_ramdisk(void)
-{
- int st2_fd;
- struct stat statr;
- char img_name[500];
-
- strcpy(img_name, IMAGE_LOCATION);
- strcat(img_name, get_ramdisk_realname());
-
- log_message("trying to load %s as a ramdisk", img_name);
-
- st2_fd = open(img_name, O_RDONLY); /* to be able to see the progression */
-
- if (st2_fd == -1) {
- log_message("open ramdisk file (%s) failed", img_name);
- stg1_error_message("Could not open compressed ramdisk file (%s).", img_name);
- return RETURN_ERROR;
- }
-
- if (stat(img_name, &statr))
- return RETURN_ERROR;
- else
- return load_ramdisk_fd(st2_fd, statr.st_size);
-}
-
-/* pixel's */
-void * memdup(void *src, size_t size)
-{
- void * r;
- r = malloc(size);
- memcpy(r, src, size);
- return r;
-}
-
-
-static char ** my_env = NULL;
-static int env_size = 0;
-
-void handle_env(char ** env)
-{
- char ** ptr = env;
- while (ptr && *ptr) {
- ptr++;
- env_size++;
- }
- my_env = malloc(sizeof(char *) * 100);
- memcpy(my_env, env, sizeof(char *) * (env_size+1));
-}
-
-char ** grab_env(void) {
- return my_env;
-}
-
-void add_to_env(char * name, char * value)
-{
- char tmp[500];
- sprintf(tmp, "%s=%s", name, value);
- my_env[env_size] = strdup(tmp);
- env_size++;
- my_env[env_size] = NULL;
-}
-
-
-char ** list_directory(char * direct)
-{
- char * tmp[50000]; /* in /dev there can be many many files.. */
- int i = 0;
- struct dirent *ep;
- DIR *dp = opendir(direct);
- while (dp && (ep = readdir(dp))) {
- if (strcmp(ep->d_name, ".") && strcmp(ep->d_name, "..")) {
- tmp[i] = strdup(ep->d_name);
- i++;
- }
- }
- if (dp)
- closedir(dp);
- tmp[i] = NULL;
- return memdup(tmp, sizeof(char*) * (i+1));
-}
-
-
-int string_array_length(char ** a)
-{
- int i = 0;
- if (!a)
- return -1;
- while (a && *a) {
- a++;
- i++;
- }
- return i;
-}
diff --git a/mdk-stage1/tools.h b/mdk-stage1/tools.h
deleted file mode 100644
index 5d38b0364..000000000
--- a/mdk-stage1/tools.h
+++ /dev/null
@@ -1,53 +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.
- *
- */
-
-/*
- * Portions from Erik Troan (ewt@redhat.com)
- *
- * Copyright 1996 Red Hat Software
- *
- */
-
-#ifndef _TOOLS_H_
-#define _TOOLS_H_
-
-#include <stdlib.h>
-
-void process_cmdline(void);
-int get_param(int i);
-void set_param(int i);
-void unset_param(int i);
-int charstar_to_int(char * s);
-int total_memory(void);
-int ramdisk_possible(void);
-char * get_ramdisk_realname(void);
-enum return_type load_ramdisk(void);
-enum return_type load_ramdisk_fd(int ramdisk_fd, int size);
-void * memdup(void *src, size_t size);
-void add_to_env(char * name, char * value);
-void handle_env(char ** env);
-char ** grab_env(void);
-char ** list_directory(char * direct);
-int string_array_length(char ** a);
-
-struct param_elem
-{
- char * name;
- char * value;
-};
-
-#define ptr_begins_static_str(pointer,static_str) (!strncmp(pointer,static_str,sizeof(static_str)-1))
-#define streq !strcmp
-
-#endif
diff --git a/mdk-stage1/url.c b/mdk-stage1/url.c
deleted file mode 100644
index ada5696cd..000000000
--- a/mdk-stage1/url.c
+++ /dev/null
@@ -1,501 +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.
- *
- */
-
-/*
- * Portions from Erik Troan <ewt@redhat.com> and Matt Wilson <msw@redhat.com>
- *
- * Copyright 1999 Red Hat, Inc.
- *
- */
-
-#include <alloca.h>
-#include <sys/socket.h>
-#include <sys/types.h>
-#include <netinet/in_systm.h>
-
-#include <ctype.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <netdb.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/socket.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <unistd.h>
-#include <sys/poll.h>
-
-#include <netinet/in.h>
-#include <netinet/ip.h>
-#include <arpa/inet.h>
-
-#include "dns.h"
-#include "log.h"
-#include "tools.h"
-
-#include "url.h"
-
-
-#define TIMEOUT_SECS 60
-#define BUFFER_SIZE 4096
-
-
-static int ftp_check_response(int sock, char ** str)
-{
- static char buf[BUFFER_SIZE + 1];
- int bufLength = 0;
- struct pollfd polls;
- char * chptr, * start;
- int bytesRead, rc = 0;
- int doesContinue = 1;
- char errorCode[4];
-
- errorCode[0] = '\0';
-
- do {
- polls.fd = sock;
- polls.events = POLLIN;
- if (poll(&polls, 1, TIMEOUT_SECS*1000) != 1)
- return FTPERR_BAD_SERVER_RESPONSE;
-
- bytesRead = read(sock, buf + bufLength, sizeof(buf) - bufLength - 1);
-
- bufLength += bytesRead;
-
- buf[bufLength] = '\0';
-
- /* divide the response into lines, checking each one to see if
- we are finished or need to continue */
-
- start = chptr = buf;
-
- do {
- while (*chptr != '\n' && *chptr) chptr++;
-
- if (*chptr == '\n') {
- *chptr = '\0';
- if (*(chptr - 1) == '\r') *(chptr - 1) = '\0';
- if (str) *str = start;
-
- if (errorCode[0]) {
- if (!strncmp(start, errorCode, 3) && start[3] == ' ')
- doesContinue = 0;
- } else {
- strncpy(errorCode, start, 3);
- errorCode[3] = '\0';
- if (start[3] != '-') {
- doesContinue = 0;
- }
- }
-
- start = chptr + 1;
- chptr++;
- } else {
- chptr++;
- }
- } while (*chptr);
-
- if (doesContinue && chptr > start) {
- memcpy(buf, start, chptr - start - 1);
- bufLength = chptr - start - 1;
- } else {
- bufLength = 0;
- }
- } while (doesContinue);
-
- if (*errorCode == '4' || *errorCode == '5') {
- if (!strncmp(errorCode, "550", 3)) {
- return FTPERR_FILE_NOT_FOUND;
- }
-
- return FTPERR_BAD_SERVER_RESPONSE;
- }
-
- if (rc) return rc;
-
- return 0;
-}
-
-static int ftp_command(int sock, char * command, char * param)
-{
- char buf[500];
- int rc;
-
- strcpy(buf, command);
- if (param) {
- strcat(buf, " ");
- strcat(buf, param);
- }
-
- strcat(buf, "\r\n");
-
- if (write(sock, buf, strlen(buf)) != (ssize_t)strlen(buf)) {
- return FTPERR_SERVER_IO_ERROR;
- }
-
- if ((rc = ftp_check_response(sock, NULL)))
- return rc;
-
- return 0;
-}
-
-static int get_host_address(char * host, struct in_addr * address)
-{
- if (isdigit(host[0])) {
- if (!inet_aton(host, address)) {
- return FTPERR_BAD_HOST_ADDR;
- }
- } else {
- if (mygethostbyname(host, address))
- return FTPERR_BAD_HOSTNAME;
- }
-
- return 0;
-}
-
-int ftp_open_connection(char * host, char * name, char * password, char * proxy)
-{
- int sock;
- struct in_addr serverAddress;
- struct sockaddr_in destPort;
- char * buf;
- int rc;
- int port = 21;
-
- if (!strcmp(name, "")) {
- name = "anonymous";
- password = "-drakx@";
- }
-
- if (strcmp(proxy, "")) {
- buf = alloca(strlen(name) + strlen(host) + 5);
- sprintf(buf, "%s@%s", name, host);
- name = buf;
- host = proxy;
- }
-
- if ((rc = get_host_address(host, &serverAddress))) return rc;
-
- sock = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
- if (sock < 0) {
- return FTPERR_FAILED_CONNECT;
- }
-
- destPort.sin_family = AF_INET;
- destPort.sin_port = htons(port);
- destPort.sin_addr = serverAddress;
-
- if (connect(sock, (struct sockaddr *) &destPort, sizeof(destPort))) {
- close(sock);
- return FTPERR_FAILED_CONNECT;
- }
-
- /* ftpCheckResponse() assumes the socket is nonblocking */
- if (fcntl(sock, F_SETFL, O_NONBLOCK)) {
- close(sock);
- return FTPERR_FAILED_CONNECT;
- }
-
- if ((rc = ftp_check_response(sock, NULL))) {
- return rc;
- }
-
- if ((rc = ftp_command(sock, "USER", name))) {
- close(sock);
- return rc;
- }
-
- if ((rc = ftp_command(sock, "PASS", password))) {
- close(sock);
- return rc;
- }
-
- if ((rc = ftp_command(sock, "TYPE", "I"))) {
- close(sock);
- return rc;
- }
-
- return sock;
-}
-
-
-int ftp_data_command(int sock, char * command, char * param)
-{
- int dataSocket;
- struct sockaddr_in dataAddress;
- int i, j;
- char * passReply;
- char * chptr;
- char retrCommand[500];
- int rc;
-
- if (write(sock, "PASV\r\n", 6) != 6) {
- return FTPERR_SERVER_IO_ERROR;
- }
- if ((rc = ftp_check_response(sock, &passReply)))
- return FTPERR_PASSIVE_ERROR;
-
- chptr = passReply;
- while (*chptr && *chptr != '(') chptr++;
- if (*chptr != '(') return FTPERR_PASSIVE_ERROR;
- chptr++;
- passReply = chptr;
- while (*chptr && *chptr != ')') chptr++;
- if (*chptr != ')') return FTPERR_PASSIVE_ERROR;
- *chptr-- = '\0';
-
- while (*chptr && *chptr != ',') chptr--;
- if (*chptr != ',') return FTPERR_PASSIVE_ERROR;
- chptr--;
- while (*chptr && *chptr != ',') chptr--;
- if (*chptr != ',') return FTPERR_PASSIVE_ERROR;
- *chptr++ = '\0';
-
- /* now passReply points to the IP portion, and chptr points to the
- port number portion */
-
- dataAddress.sin_family = AF_INET;
- if (sscanf(chptr, "%d,%d", &i, &j) != 2) {
- return FTPERR_PASSIVE_ERROR;
- }
- dataAddress.sin_port = htons((i << 8) + j);
-
- chptr = passReply;
- while (*chptr++) {
- if (*chptr == ',') *chptr = '.';
- }
-
- if (!inet_aton(passReply, &dataAddress.sin_addr))
- return FTPERR_PASSIVE_ERROR;
-
- dataSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
- if (dataSocket < 0) {
- return FTPERR_FAILED_CONNECT;
- }
-
- if (!param)
- sprintf(retrCommand, "%s\r\n", command);
- else
- sprintf(retrCommand, "%s %s\r\n", command, param);
-
- i = strlen(retrCommand);
-
- if (write(sock, retrCommand, i) != i) {
- return FTPERR_SERVER_IO_ERROR;
- }
-
- if (connect(dataSocket, (struct sockaddr *) &dataAddress,
- sizeof(dataAddress))) {
- close(dataSocket);
- return FTPERR_FAILED_DATA_CONNECT;
- }
-
- if ((rc = ftp_check_response(sock, NULL))) {
- close(dataSocket);
- return rc;
- }
-
- return dataSocket;
-}
-
-
-static int ftp_get_filesize(int sock, char * remotename)
-{
- int size = 0;
- char buf[2000];
- char file[500];
- char * ptr;
- int fd, rc, tot;
- int i;
-
- strcpy(buf, remotename);
- ptr = strrchr(buf, '/');
- if (!*ptr)
- return -1;
- *ptr = '\0';
-
- strcpy(file, ptr+1);
-
- if ((rc = ftp_command(sock, "CWD", buf))) {
- return -1;
- }
-
- fd = ftp_data_command(sock, "LIST", NULL);
- if (fd <= 0) {
- close(sock);
- return -1;
- }
-
- ptr = buf;
- while ((tot = read(fd, ptr, sizeof(buf) - (ptr - buf))) != 0)
- ptr += tot;
- *ptr = '\0';
- close(fd);
-
- if (!(ptr = strstr(buf, file))) {
- log_message("FTP/get_filesize: Bad mood, directory does not contain searched file (%s)", file);
- if (ftp_end_data_command(sock))
- close(sock);
- return -1;
- }
-
- for (i=0; i<4; i++) {
- while (*ptr && *ptr != ' ')
- ptr--;
- while (*ptr && *ptr == ' ')
- ptr--;
- }
- while (*ptr && *ptr != ' ')
- ptr--;
-
- if (ptr)
- size = charstar_to_int(ptr+1);
- else
- size = 0;
-
- if (ftp_end_data_command(sock)) {
- close(sock);
- return -1;
- }
-
- return size;
-}
-
-
-int ftp_start_download(int sock, char * remotename, int * size)
-{
- if ((*size = ftp_get_filesize(sock, remotename)) == -1) {
- log_message("FTP: could not get filesize (trying to continue)");
- *size = 0;
- }
- return ftp_data_command(sock, "RETR", remotename);
-}
-
-
-int ftp_end_data_command(int sock)
-{
- if (ftp_check_response(sock, NULL))
- return FTPERR_BAD_SERVER_RESPONSE;
-
- return 0;
-}
-
-
-int http_download_file(char * hostname, char * remotename, int * size)
-{
- char * buf;
- char headers[4096];
- char * nextChar = headers;
- int checkedCode;
- struct in_addr serverAddress;
- struct pollfd polls;
- int sock;
- int rc;
- struct sockaddr_in destPort;
- char * header_content_length = "Content-Length: ";
-
- if ((rc = get_host_address(hostname, &serverAddress))) return rc;
-
- sock = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
- if (sock < 0) {
- return FTPERR_FAILED_CONNECT;
- }
-
- destPort.sin_family = AF_INET;
- destPort.sin_port = htons(80);
- destPort.sin_addr = serverAddress;
-
- if (connect(sock, (struct sockaddr *) &destPort, sizeof(destPort))) {
- close(sock);
- return FTPERR_FAILED_CONNECT;
- }
-
- buf = alloca(strlen(remotename) + 20);
- sprintf(buf, "GET %s HTTP/0.9\r\n\r\n", remotename);
- write(sock, buf, strlen(buf));
-
- /* This is fun; read the response a character at a time until we:
-
- 1) Get our first \r\n; which lets us check the return code
- 2) Get a \r\n\r\n, which means we're done */
-
- *nextChar = '\0';
- checkedCode = 0;
- while (!strstr(headers, "\r\n\r\n")) {
- polls.fd = sock;
- polls.events = POLLIN;
- rc = poll(&polls, 1, TIMEOUT_SECS*1000);
-
- if (rc == 0) {
- close(sock);
- return FTPERR_SERVER_TIMEOUT;
- } else if (rc < 0) {
- close(sock);
- return FTPERR_SERVER_IO_ERROR;
- }
-
- if (read(sock, nextChar, 1) != 1) {
- close(sock);
- return FTPERR_SERVER_IO_ERROR;
- }
-
- nextChar++;
- *nextChar = '\0';
-
- if (nextChar - headers == sizeof(headers)) {
- close(sock);
- return FTPERR_SERVER_IO_ERROR;
- }
-
- if (!checkedCode && strstr(headers, "\r\n")) {
- char * start, * end;
-
- checkedCode = 1;
- start = headers;
- while (!isspace(*start) && *start) start++;
- if (!*start) {
- close(sock);
- return FTPERR_SERVER_IO_ERROR;
- }
- start++;
-
- end = start;
- while (!isspace(*end) && *end) end++;
- if (!*end) {
- close(sock);
- return FTPERR_SERVER_IO_ERROR;
- }
-
- *end = '\0';
- if (!strcmp(start, "404")) {
- close(sock);
- return FTPERR_FILE_NOT_FOUND;
- } else if (strcmp(start, "200")) {
- close(sock);
- return FTPERR_BAD_SERVER_RESPONSE;
- }
-
- *end = ' ';
- }
- }
-
- if ((buf = strstr(headers, header_content_length)))
- *size = charstar_to_int(buf + strlen(header_content_length));
- else
- *size = 0;
-
- return sock;
-}
diff --git a/mdk-stage1/url.h b/mdk-stage1/url.h
deleted file mode 100644
index 5a59bd814..000000000
--- a/mdk-stage1/url.h
+++ /dev/null
@@ -1,44 +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.
- *
- */
-
-/*
- * Portions from Erik Troan <ewt@redhat.com> and Matt Wilson <msw@redhat.com>
- *
- * Copyright 1999 Red Hat, Inc.
- *
- */
-
-#ifndef _URL_H_
-#define _URL_H_
-
-int ftp_open_connection(char * host, char * name, char * password, char * proxy);
-int ftp_start_download(int sock, char * remotename, int * size);
-int ftp_end_data_command(int sock);
-
-int http_download_file(char * hostname, char * remotename, int * size);
-
-
-#define FTPERR_BAD_SERVER_RESPONSE -1
-#define FTPERR_SERVER_IO_ERROR -2
-#define FTPERR_SERVER_TIMEOUT -3
-#define FTPERR_BAD_HOST_ADDR -4
-#define FTPERR_BAD_HOSTNAME -5
-#define FTPERR_FAILED_CONNECT -6
-#define FTPERR_FILE_IO_ERROR -7
-#define FTPERR_PASSIVE_ERROR -8
-#define FTPERR_FAILED_DATA_CONNECT -9
-#define FTPERR_FILE_NOT_FOUND -10
-#define FTPERR_UNKNOWN -100
-
-#endif
diff --git a/mdk-stage1/usb-resource/.cvsignore b/mdk-stage1/usb-resource/.cvsignore
deleted file mode 100644
index a7d0cfa9a..000000000
--- a/mdk-stage1/usb-resource/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-usb-ids.h
diff --git a/mdk-stage1/usb-resource/Makefile b/mdk-stage1/usb-resource/Makefile
deleted file mode 100644
index eb80ce6da..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 update-usb-ids.pl
- perl update-usb-ids.pl > $@ || rm -f $@
-
-clean:
- rm -f usb-ids.h
diff --git a/mdk-stage1/usb-resource/update-usb-ids.pl b/mdk-stage1/usb-resource/update-usb-ids.pl
deleted file mode 100755
index 2a54a678b..000000000
--- a/mdk-stage1/usb-resource/update-usb-ids.pl
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-use MDK::Common;
-
-require '/usr/bin/merge2pcitable.pl';
-my $pci = read_pcitable("/usr/share/ldetect-lst/pcitable");
-my $usb = read_pcitable("/usr/share/ldetect-lst/usbtable");
-
-print '
-
-
-struct usb_module_map {
- unsigned short vendor; /* vendor */
- unsigned short id; /* device */
- const char *name; /* human readable name */
- const char *module; /* module to load */
-};
-
-';
-
-print "struct pci_module_map usb_pci_ids[] = {
-
-";
-
-while (my ($k, $v) = each %$pci) {
- $v->[0] =~ /^usb-|^ehci-hcd/ or next;
- $k =~ /^(....)(....)/;
- printf qq|\t{ 0x%s, 0x%s, "", "%s" },\n|,
- $1, $2, $v->[0];
-}
-
-print "};
-int usb_num_ids=sizeof(usb_pci_ids)/sizeof(struct pci_module_map);
-";
-
-print "struct usb_module_map usb_usb_ids[] = {
-";
-
-my @modules = chomp_(`perl ../../kernel/modules.pl pci_modules4stage1:"network/usb disk/usb"`);
-
- foreach my $k (sort keys %$usb) {
- my $v = $usb->{$k};
- member($v->[0], @modules) or next;
- $k =~ /^(....)(....)/;
- printf qq|\t{ 0x%s, 0x%s, "%s", "%s" },\n|,
- $1, $2, $v->[1], $v->[0];
- }
-
- print "};
-int usb_usb_num_ids=sizeof(usb_usb_ids)/sizeof(struct usb_module_map);
-";
diff --git a/perl-install/ChangeLog b/perl-install/ChangeLog
deleted file mode 100644
index 1039e3e16..000000000
--- a/perl-install/ChangeLog
+++ /dev/null
@@ -1,26315 +0,0 @@
-2002/07/22 Damien Chaumette <dchaumette@mandrakesoft.com>
-
- * network/tools.pm: hide password in adsl configuration
-
-2002/07/22 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: try avoiding infinite loop.
-
-2002/07/22 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/id.po, share/po/sk.po, share/po/ru.po, share/po/gl.po,
- share/po/pt_BR.po, share/po/br.po, share/po/th.po, share/po/sl.po,
- share/po/no.po, share/po/et.po, share/po/ja.po, share/po/hr.po,
- share/po/tr.po, share/po/mt.po, share/po/ga.po, share/po/be.po,
- share/po/uk.po, share/po/ko.po, share/po/DrakX.pot, share/po/sv.po,
- share/po/sr.po, share/po/pl.po, share/po/fi.po, share/po/lt.po,
- share/po/sp.po, share/po/cy.po, share/po/ca.po, share/po/da.po,
- share/po/ar.po, share/po/bs.po, share/po/ro.po, share/po/wa.po,
- share/po/is.po, share/po/af.po, share/po/az.po, share/po/zh_TW.po,
- share/po/zh_CN.po, share/po/pt.po, share/po/vi.po, share/po/fr.po,
- share/po/it.po, share/po/nl.po, share/po/eu.po, share/po/es.po,
- share/po/de.po, share/po/eo.po, share/po/el.po, share/po/bg.po,
- share/po/lv.po, share/po/hu.po: updated pot file
-
- * share/po/cs.po: updated Czech file
- updated pot file
-
-2002/07/22 Pixel <pixel@mandrakesoft.com>
-
- * c/Makefile, Newt/Makefile, resize_fat/Makefile: ensure things build as
- they should when perl is upgraded on compilation box
- (using a nice scheme: make || make)
-
- * any.pm, mouse.pm, install2.pm, detect_devices.pm: when $::noauto,
- hardwire no probing in detect_devices::probeall to ensure no probing is
- never done
-
- * help.pm, share/po/.cvsignore, share/po/Makefile, share/po/help-de.pot,
- share/po/help-fr.pot, share/po/help-eu.pot, share/po/help-es.pot,
- share/po/help-it.pot:
- - update help.pm based on the xml manual
- - this fixes entities sticked together with no space in between
- - this also implies a few bad line-wrapping changes,
- but it needs to be done to have a clean state
- (we don't have one since 8.2beta where i updated things by hand)
- - put help-*.pot in CVS so that the files based on the xml manual can
- be updated
- independently from DrakX.pot & .po's
-
- * share/po/help_xml2pm.pl:
- - use new PerlIO instead of iconv
- - transliterate by hand &ndash and &eacute
- - move "use utf8" at top
- - fix the spaces between entities
- (eg: &company-microsoft; &os-windows; must not be MicrosoftWindows)
-
-2002/07/21 Pixel <pixel@mandrakesoft.com>
-
- * drakxtools.spec: new snapshot
-
- * Xconfigurator.pm: fix multi-head auto-choosing in auto install
-
- * install_any.pm: workaround "traverse_tag" pb in Resolve.pm
- resolve_requested (is it ok??)
-
-2002/07/21 Pixel <pixel@mandrakesoft.com>
-
- * drakxtools.spec: new snapshot
-
- * install_any.pm: workaround "traverse_tag" pb in Resolve.pm
- resolve_requested (is it ok??)
-
-2002/07/21 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator.pm: Load "extmod" is a must! (for things like shape and
- dga)
-
- * Xconfig.pm: fix typo
-
-2002/07/21 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator.pm: Load "extmod" is a must! (for things like shape and
- dga)
-
- * Xconfig.pm: fix typo
-
- * share/locales-skeleton.tar.bz2: usr/share/locale skeleton is now build
- in gen_locales.pl
-
- * share/gen_locales.pl, share/gen_locales.sh: build per languages symlinks
- using the new::during_install__lang2charset
- -> this enables doing the same during install when using ramdisk
- => no need to have a locale.cz2 anymore
- (this is now possible since the number of special cases is lower than
- before)
-
- * lang.pm:
- - remove utf_xxx charsets, adding a flag UTF-8 instead
- - add during_install__lang2charset
- - when using ramdisk, no locale.cz2 anymore:
- there are 3 main charsets containing everything for all locales, except
- LC_CTYPE
- by default, there is UTF-8.
- when asked for GB2312 or BIG5, removing the other main charsets
- - cleanup comments (use #- instead of #)
- - various cleanup
-
- * tools/make_mdkinst_stage2: no more locale.cz2, just keeping the main
- charset /usr/share/locale/UTF-8
-
-2002/07/21 Pixel <pixel@mandrakesoft.com>
-
- * share/locales-skeleton.tar.bz2: usr/share/locale skeleton is now build
- in gen_locales.pl
-
- * share/gen_locales.pl, share/gen_locales.sh: build per languages symlinks
- using the new::during_install__lang2charset
- -> this enables doing the same during install when using ramdisk
- => no need to have a locale.cz2 anymore
- (this is now possible since the number of special cases is lower than
- before)
-
- * lang.pm:
- - remove utf_xxx charsets, adding a flag UTF-8 instead
- - add during_install__lang2charset
- - when using ramdisk, no locale.cz2 anymore:
- there are 3 main charsets containing everything for all locales, except
- LC_CTYPE
- by default, there is UTF-8.
- when asked for GB2312 or BIG5, removing the other main charsets
- - cleanup comments (use #- instead of #)
- - various cleanup
-
- * tools/make_mdkinst_stage2: no more locale.cz2, just keeping the main
- charset /usr/share/locale/UTF-8
-
-2002/07/20 Daouda Lo <daouda@mandrakesoft.com>
-
- * standalone/drakbug:
- - complete app list
-
-2002/07/20 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator_consts.pm: shorter and nicer XF86Config's
-
- * mouse.pm: devfssymlinkf doesn't have any return value, so don't check it
-
- * Xconfig.pm (getinfoFromXF86Config): move here setting prefer_xf3 based
- on current choice on system
- shorter and nicer XF86Config's
-
- * install_gtk.pm:
- - rename updateCardAccordingName into add_to_card__using_Cards
- - rename cardConfigurationAuto into probe_cards
- - cleanup the simple XF86Config used during install
-
- * install_steps.pm: call config_dvd with $have_devfsd
-
- * install_steps_gtk.pm:
- - rename updateCardAccordingName into add_to_card__using_Cards
- - rename cardConfigurationAuto into probe_cards
-
- * any.pm: try very hard to make rdvd work:
- - if not using devfs, it worked so keeping things unchanged
- - if using devfs, using the new dynamic rawdevice.script script to
- bind a
- rawdevice on demand
- pb: can't have both a devfs and a non-devfs config,
- the /etc/sysconfig/rawdevices solution gives errors with devfs
- (since the dvd is not REGISTERed yet)
- please perl_checker
- fix typo
- (devfssymlinkf): use devfs names for devfs/conf.d/xxx.conf, but not for
- the
- symlink in /dev (which is used when devfs is not)
- devfssymlinkf doesn't have any return value, so don't check it
-
- * Xconfigurator.pm:
- - $in and $do_pkgs are no more global
- => it's now easier to keep track of interactive vs non-interactive
- functions
- - rename updateCardAccordingName into add_to_card__using_Cards
- - rename cardConfigurationAuto into probe_cards
- - and a few other function renamings
- shorter and nicer XF86Config's
-
-2002/07/19 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator.pm:
- - reorganize monitor tree
- - merge XF3 & XF4 server/module choosing
- - replace {eide} by {EISA_ID} (=> {monitor} cleanup)
- - ensure a few "Cancel" are more better handled
- - ensure the default monitor in the monitor tree is the last chosen
- one
-
- * Xconfigurator_consts.pm:
- - fix good_default_monitor (must not be 1600x1200!)
- - add r128 & radeon in XF4 drivers list
-
- * interactive_gtk.pm: reduce "Use of uninitialized value" in a heavy used
- place
- (useful when debugging)
-
- * Xconfig.pm: read monitor's VendorName & ModelName
-
-2002/07/19 Damien Chaumette <dchaumette@mandrakesoft.com>
-
- * network/adsl.pm:
- - check if speedtouch_mgmt exist before installing it
-
-2002/07/19 Franēois Pons <fpons@mandrakesoft.com>
-
- * any.pm: revert changes so that DrakX work again.
-
- * install_any.pm: select default_packages directly during setPackages.
-
- * install_steps_interactive.pm: make sure unselectMostPackages is called
- (so that changes in default_packages
- are taken into account... but is may be any changes here ?).
-
-2002/07/19 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator_consts.pm:
- - fix good_default_monitor (must not be 1600x1200!)
- - add r128 & radeon in XF4 drivers list
- fix default_monitors to adapt new MonitorsDB
-
- * mouse.pm (devfssymlinkf): use devfs_device instead of device when
- available
-
- * partition_table.pm: handling devfs names for cdrom/hds on ide/scsi
- (needs testing)
-
- * any.pm (devfssymlinkf): try devices::to_devfs when devfs_device is not
- provided
- (devfssymlinkf): use devfs_device instead of device when available
-
- * detect_devices.pm: help perl_checker
- handling devfs names for cdrom/hds on ide/scsi (needs testing)
-
- * devices.pm: add functions to_devfs and from_devfs. These only work for
- devices entries
- which can go devfs -> normal and normal -> devfs
-
- * interactive_gtk.pm: reduce "Use of uninitialized value" in a heavy used
- place
- (useful when debugging)
-
- * Xconfig.pm: read monitor's VendorName & ModelName
- (readCardsDB): add handling BAD_FB_RESTORE & BAD_FB_RESTORE_XF3
-
- * Xconfigurator.pm:
- - reorganize monitor tree
- - merge XF3 & XF4 server/module choosing
- - replace {eide} by {EISA_ID} (=> {monitor} cleanup)
- - ensure a few "Cancel" are more better handled
- - ensure the default monitor in the monitor tree is the last chosen
- one
- partly cleanup monitor re-configuration (work in progress)
-
-2002/07/19 Christian Belisle <cbelisle@mandrakesoft.com>
-
- * any.pm:
- - remove any msec related functions
- - remove 'use security::msec'
-
-2002/07/19 Damien Chaumette <dchaumette@mandrakesoft.com>
-
- * network/adsl.pm:
- - check if speedtouch_mgmt exist before installing it
-
-2002/07/19 Franēois Pons <fpons@mandrakesoft.com>
-
- * any.pm: revert changes so that DrakX work again.
-
- * install_any.pm: select default_packages directly during setPackages.
- fix typo on what_provides (for pitchounette :-)).
- added what_provides.
-
- * standalone.pm: fix typo on last commit.
- added what_provides.
-
- * install_steps_interactive.pm: make sure unselectMostPackages is called
- (so that changes in default_packages
- are taken into account... but is may be any changes here ?).
-
-2002/07/19 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/pt.po: updated Portuguese file
-
-2002/07/19 Pixel <pixel@mandrakesoft.com>
-
- * standalone/XFdrake: rename $i in $X (to have the same as
- Xconfigurator.pm)
-
- * interactive.pm: nicer error message when {val} is not set for ask_from &
- list
-
- * Xconfigurator.pm: partly cleanup monitor re-configuration (work in
- progress)
- - don't write XF86Config when no {card}{server}
- - don't write XF86Config-4 when no {card}{driver}
- - workaround mixing values from existing config and
- cardConfigurationAuto()
- - fix asking VideoRam
- - fix device0 in XF86Config
- - use "device1", "device2"... for "Device" Identifier
- - restore having a nice VendorName + BoardName
- (since Identifier is not very useful)
- - get {card}{Chipset} from existing XF86Config
- - use $::prefix
- - drop obsolete stuff: Ramdac, Dacspeed, Clockchip
- - drop {card}{flags}, the few flags are moved directly to {card}
- - force_xf4 is now a global in Xconfigurator
- - create new functions for better modularity: multi_head_config,
- xfree_and_glx_choices, xfree_and_glx_choose
- - for ppc, allow choosing DRI or not
- - need flag {card}{use_DRI_GLX} and {card}{use_UTAH_GLX} deciding
- wether
- to use DRI_GLX or UTAH_GLX. That way, {card}{DRI_GLX}, {card}{UTAH_GLX}
- are only flags allowing or not DRI/UTAH.
- - {card}{use_xf4} is dropped. New function using_xf4 has this
- functionality. The flags are now:
- - using XF4 if {driver} && !{prefer_xf3} otherwise using XF3
- - error if $force_xf4 && !{driver} || !{driver} && !{server}
- - internal error if $force_xf4 && {prefer_xf3} || {prefer_xf3} &&
- !{server}
- - {card}{description} contains what used to be {card}{identifier}
- - rename {card}{type} to {card}{card_name}
- - drop {monitor}{type}
-
- * install_steps.pm: don't pass the prefix parameter, not needed/wanted
- anymore
-
- * Xconfigurator_consts.pm: fix default_monitors to adapt new MonitorsDB
-
- * Xconfig.pm (readCardsDB): add handling BAD_FB_RESTORE &
- BAD_FB_RESTORE_XF3
- - use "device1", "device2"... for "Device" Identifier
- - restore having a nice VendorName + BoardName
- (since Identifier is not very useful)
- - get {card}{Chipset} from existing XF86Config
- - use $::prefix
- - drop obsolete stuff: Ramdac, Dacspeed, Clockchip
- - drop {card}{flags}, the few flags are moved directly to {card}
- - force_xf4 is now a global in Xconfigurator
- - create new functions for better modularity: multi_head_config,
- xfree_and_glx_choices, xfree_and_glx_choose
- - for ppc, allow choosing DRI or not
- - need flag {card}{use_DRI_GLX} and {card}{use_UTAH_GLX} deciding
- wether
- to use DRI_GLX or UTAH_GLX. That way, {card}{DRI_GLX}, {card}{UTAH_GLX}
- are only flags allowing or not DRI/UTAH.
- - {card}{use_xf4} is dropped. New function using_xf4 has this
- functionality. The flags are now:
- - using XF4 if {driver} && !{prefer_xf3} otherwise using XF3
- - error if $force_xf4 && !{driver} || !{driver} && !{server}
- - internal error if $force_xf4 && {prefer_xf3} || {prefer_xf3} &&
- !{server}
- - {card}{description} contains what used to be {card}{identifier}
- - rename {card}{type} to {card}{card_name}
- - drop {monitor}{type}
-
-2002/07/19 Christian Belisle <cbelisle@mandrakesoft.com>
-
- * any.pm:
- - remove any msec related functions
- - remove 'use security::msec'
-
-2002/07/19 Damien Chaumette <dchaumette@mandrakesoft.com>
-
- * standalone/drakconnect:
- - any::setup_thiskind_backend changed in any::load_category_no_message
-
-2002/07/19 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/pt.po: updated Portuguese file
-
-2002/07/19 Pixel <pixel@mandrakesoft.com>
-
- * standalone/XFdrake: rename $i in $X (to have the same as
- Xconfigurator.pm)
-
- * Xconfigurator.pm:
- - don't write XF86Config when no {card}{server}
- - don't write XF86Config-4 when no {card}{driver}
- - workaround mixing values from existing config and
- cardConfigurationAuto()
- - fix asking VideoRam
- - fix device0 in XF86Config
- - use "device1", "device2"... for "Device" Identifier
- - restore having a nice VendorName + BoardName
- (since Identifier is not very useful)
- - get {card}{Chipset} from existing XF86Config
- - use $::prefix
- - drop obsolete stuff: Ramdac, Dacspeed, Clockchip
- - drop {card}{flags}, the few flags are moved directly to {card}
- - force_xf4 is now a global in Xconfigurator
- - create new functions for better modularity: multi_head_config,
- xfree_and_glx_choices, xfree_and_glx_choose
- - for ppc, allow choosing DRI or not
- - need flag {card}{use_DRI_GLX} and {card}{use_UTAH_GLX} deciding
- wether
- to use DRI_GLX or UTAH_GLX. That way, {card}{DRI_GLX}, {card}{UTAH_GLX}
- are only flags allowing or not DRI/UTAH.
- - {card}{use_xf4} is dropped. New function using_xf4 has this
- functionality. The flags are now:
- - using XF4 if {driver} && !{prefer_xf3} otherwise using XF3
- - error if $force_xf4 && !{driver} || !{driver} && !{server}
- - internal error if $force_xf4 && {prefer_xf3} || {prefer_xf3} &&
- !{server}
- - {card}{description} contains what used to be {card}{identifier}
- - rename {card}{type} to {card}{card_name}
- - drop {monitor}{type}
-
- * interactive.pm: nicer error message when {val} is not set for ask_from &
- list
-
- * Xconfig.pm:
- - use "device1", "device2"... for "Device" Identifier
- - restore having a nice VendorName + BoardName
- (since Identifier is not very useful)
- - get {card}{Chipset} from existing XF86Config
- - use $::prefix
- - drop obsolete stuff: Ramdac, Dacspeed, Clockchip
- - drop {card}{flags}, the few flags are moved directly to {card}
- - force_xf4 is now a global in Xconfigurator
- - create new functions for better modularity: multi_head_config,
- xfree_and_glx_choices, xfree_and_glx_choose
- - for ppc, allow choosing DRI or not
- - need flag {card}{use_DRI_GLX} and {card}{use_UTAH_GLX} deciding
- wether
- to use DRI_GLX or UTAH_GLX. That way, {card}{DRI_GLX}, {card}{UTAH_GLX}
- are only flags allowing or not DRI/UTAH.
- - {card}{use_xf4} is dropped. New function using_xf4 has this
- functionality. The flags are now:
- - using XF4 if {driver} && !{prefer_xf3} otherwise using XF3
- - error if $force_xf4 && !{driver} || !{driver} && !{server}
- - internal error if $force_xf4 && {prefer_xf3} || {prefer_xf3} &&
- !{server}
- - {card}{description} contains what used to be {card}{identifier}
- - rename {card}{type} to {card}{card_name}
- - drop {monitor}{type}
-
- * install_steps.pm: don't pass the prefix parameter, not needed/wanted
- anymore
-
-2002/07/18 Christian Belisle <cbelisle@mandrakesoft.com>
-
- * standalone/draksec: create the main() function in security.pm
-
- * security.pm: Re-Addition: will contain the security related (but not
- related to any apps)
- funtioncs and the draksec interface.
- removing
-
- * security/msec.pm:
- - add prefix var in file names
- - remove useless expert_mode var
- - add get_options(): will be used to get various options from msec
- move the msec related functions from any.pm to msec.pm. create
- sec_options
-
-2002/07/18 Damien Chaumette <dchaumette@mandrakesoft.com>
-
- * network/netconnect.pm: . draknet renamed in drakconnect
-
-2002/07/18 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_any.pm: fixes allowNVIDIA_rpms against perl-URPM.
- really fixes it.
- fixes error if package is not found (regression fixed).
-
- * pkgs.pm: removed all the commented out code obsoleted.
- fix speed improvement for computeGroupSize by computing closure directly
- (in
- order to have an approximative size, not the real one).
- add back change CD support.
-
- * standalone/XFdrake: fixes with new urpm library of urpmi.
-
-2002/07/18 Pixel <pixel@mandrakesoft.com>
-
- * install2.pm:
- - set $::prefix
- - drop $o->{root} (was "/tmp/root-perl-install" when testing but
- completly unused)
-
- * standalone/XFdrake, install_steps_interactive.pm: don't pass the prefix
- parameter, not needed/wanted anymore
-
- * Xconfigurator.pm, Xconfigurator_consts.pm, Xconfig.pm:
- - %standard_monitors are now in Cards+, dropping them
- - multi head support generalized, now based on Cards+ MULTI_HEAD
- - fix some ModeLines being written twice in XF86Config
- - remove setting DefaultFbBpp to 32
- (since it is the default in all my tests)
-
- * common.pm, install_any.pm: use $::prefix instead of $::o->{prefix}
-
-2002/07/18 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * install_any.pm, install_steps_interactive.pm: add support/option for
- Windows(tm) authentication via winbind
-
-2002/07/18 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * drakxtools.spec: 7mdk changes
- 6mdk final changes
-
- * harddrake/bttv.pm: useless standalone dependancy for pixel fscking
- checker
-
- * Makefile: faster startup: remove use (diagnostics|vars|strict) in srpm
- target as
- in local target (dams fsck)
-
- * harddrake/TODO: update
-
- * harddrake/data.pm: s/draknet/drakconnect/
- - bump version number
- - move scsi & ata controllers, tv-audio, dvd, burners, ... in their
- own "non configurable" sections
-
-2002/07/18 warly
-
- * share/logo-mandrake.png: install logo for 9.0 beta 1
-
-2002/07/18 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: fix speed improvement for computeGroupSize by computing closure
- directly (in
- order to have an approximative size, not the real one).
- add back change CD support.
-
-2002/07/18 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator.pm, Xconfigurator_consts.pm, Xconfig.pm:
- - %standard_monitors are now in Cards+, dropping them
- - multi head support generalized, now based on Cards+ MULTI_HEAD
- - fix some ModeLines being written twice in XF86Config
- - remove setting DefaultFbBpp to 32
- (since it is the default in all my tests)
-
-2002/07/17 alus
-
- * share/po/pl.po: some more fixes
- some little changes
-
-2002/07/17 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps_gtk.pm: added missing use pkgs.
-
-2002/07/17 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * pkgs.pm: spell right harddrake (two 'd') in @preferred
-
- * tools/cvslog2changelog.pl: add daouda chaumette cbelisle
-
-2002/07/17 Pixel <pixel@mandrakesoft.com>
-
- * install_gtk.pm: normalize Modeline to ModeLine
-
- * common.pm: add function "internal_error" (a specialized "die")
-
- * drakxtools.spec: the new XFdrake needs latest ldetect-lst
-
- * Makefile (test_pms): exclude urpm from uses
-
- * printer.pm, printerdrake.pm: use {XXX} instead of {'XXX'} (as detected
- by new perl_checker)
- remove "$_ =~ " (as detected by new perl_checker)
-
- * any.pm: move the "if !$::testing" for not modifying inittab in function
- runlevel()
- (was in install_steps.pm)
-
- * commands.pm: remove "$_ =~ " (as detected by new perl_checker)
-
- * Xconfigurator.pm, Xconfigurator_consts.pm, install_steps.pm,
- standalone/XFdrake, Xconfig.pm: Big Xconfigurator.pm cleanup/rework
- - use $X instead of $o (to avoid name conflict with DrakX's $o)
- - {flag}{noclockprobe} unused, dropping it
- - rename {memory} into "VideoRam"
- - rename {ramdac} into {Ramdac}
- - rename {chipset} into {Chipset}
- - rename {clockchip} into {Clockchip}
- - rename {keyboard}{xkb_model} into {keyboard}{XkbModel}
- - rename {keyboard}{xkb_keymap} into {keyboard}{XkbLayout}
- - drop {mouse}{chordmiddle} (obsolete)
- - drop {mouse}{cleardtrrts} (obsolete, was not written to XF4 config)
- - &testConfig is unused, removing it
- - as a concequence, {clocklines} is never set, dropping it
- - when UNSUPPORTED remove {driver}, instead of setting
- {flag}{unsupported}
- - Cards+ now only provide {Chipset} for cards needing it
- => {flag}{needChipset} not needed anymore
- - moved setting needVideoRam in Cards+ (via NEEDVIDEORAM)
- (hoping it will work: since the regexp was broken, it was never done.
- (it was applied on the module field of pcitable, instead of the
- description))
- - dropped modelines_text_Trident_TG_96xx case (it has never been used)
- - rename %xkb_options into %XkbOptions
- - rename {DRI_glx} into {DRI_GLX}, the value now comes from Cards+
- instead of regexp'ing {identifier}
- - rename {Utah_glx} into {UTAH_GLX}, the value now comes from Cards+
- instead of regexp'ing {identifier}
- - rename {Utah_glx_EXPERIMENTAL} into {UTAH_GLX_EXPERIMENTAL}, the
- value now comes from Cards+
- instead of regexp'ing {identifier}
- - very_bad_card and bad_card are now the same, the value now comes
- from
- Cards+ (BAD_FB_RESTORE & BAD_FB_RESTORE_XF3)
- - drop unused @accelservers
- - remove $modelines_text_apple, use $modelines_text_ext instead
- - don't use a <Section "Modes"> together with <UseModes "Mac Modes">,
- put
- directly modelines in Section "Monitor"
- (why should ppc behave differently than others!?)
- - replace (conflicting) ModeLines "1280x1024 @ 74 Hz" and
- "1280x1024 @ 76 Hz" with "1280x1024 @ 75 Hz" (from ddcxinfos)
- - drop ModeLine "640x480 @ 72 Hz"
- (it conflicts, and anyway, it has no real use nowadays :)
- - drop comments about HorizSync, VertRefresh and ModeLine's from
- XF86Config
- - drop many unneeded stuff from XF86Config:
- AutoRepeat, Xqueue, Xleds, NoTrapSignals, XkbTypes, XkbKeycodes,
- XkbCompat, XkbRules, LeftAlt/RightAlt/ScrollLock/RightCtl
- - drop section comments from XF86Config
- - drop XF86_Mono configuration
- (it doesn't work anyway, seems like it needs a special ModeLine?)
- - drop 320x200 with XF86_SVGA (who can use this!?)
- - do not write Screen section "accel" if the server configured is not
- an
- accel one
- - drop the "Generic VGA" Device section for XF4
- (this device is unused)
- - drop {monitor}{vendor}, {monitor}{model}, {card}{vendor},
- {card}{model},
- {card}{board} (only description strings, not useful for running the
- server)
- - use x_res instead of wres for things like 1024 in 1024x768
-
-2002/07/17 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps_gtk.pm: added missing use pkgs.
-
-2002/07/17 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * pkgs.pm: spell right harddrake (two 'd') in @preferred
-
-2002/07/17 Pixel <pixel@mandrakesoft.com>
-
- * install_gtk.pm: normalize Modeline to ModeLine
-
- * common.pm: add function "internal_error" (a specialized "die")
-
- * drakxtools.spec: the new XFdrake needs latest ldetect-lst
-
- * Makefile (test_pms): exclude urpm from uses
-
- * printer.pm, printerdrake.pm: use {XXX} instead of {'XXX'} (as detected
- by new perl_checker)
- remove "$_ =~ " (as detected by new perl_checker)
-
- * any.pm: move the "if !$::testing" for not modifying inittab in function
- runlevel()
- (was in install_steps.pm)
-
- * commands.pm: remove "$_ =~ " (as detected by new perl_checker)
-
- * Xconfigurator.pm, Xconfigurator_consts.pm, install_steps.pm,
- standalone/XFdrake, Xconfig.pm: Big Xconfigurator.pm cleanup/rework
- - use $X instead of $o (to avoid name conflict with DrakX's $o)
- - {flag}{noclockprobe} unused, dropping it
- - rename {memory} into "VideoRam"
- - rename {ramdac} into {Ramdac}
- - rename {chipset} into {Chipset}
- - rename {clockchip} into {Clockchip}
- - rename {keyboard}{xkb_model} into {keyboard}{XkbModel}
- - rename {keyboard}{xkb_keymap} into {keyboard}{XkbLayout}
- - drop {mouse}{chordmiddle} (obsolete)
- - drop {mouse}{cleardtrrts} (obsolete, was not written to XF4 config)
- - &testConfig is unused, removing it
- - as a concequence, {clocklines} is never set, dropping it
- - when UNSUPPORTED remove {driver}, instead of setting
- {flag}{unsupported}
- - Cards+ now only provide {Chipset} for cards needing it
- => {flag}{needChipset} not needed anymore
- - moved setting needVideoRam in Cards+ (via NEEDVIDEORAM)
- (hoping it will work: since the regexp was broken, it was never done.
- (it was applied on the module field of pcitable, instead of the
- description))
- - dropped modelines_text_Trident_TG_96xx case (it has never been used)
- - rename %xkb_options into %XkbOptions
- - rename {DRI_glx} into {DRI_GLX}, the value now comes from Cards+
- instead of regexp'ing {identifier}
- - rename {Utah_glx} into {UTAH_GLX}, the value now comes from Cards+
- instead of regexp'ing {identifier}
- - rename {Utah_glx_EXPERIMENTAL} into {UTAH_GLX_EXPERIMENTAL}, the
- value now comes from Cards+
- instead of regexp'ing {identifier}
- - very_bad_card and bad_card are now the same, the value now comes
- from
- Cards+ (BAD_FB_RESTORE & BAD_FB_RESTORE_XF3)
- - drop unused @accelservers
- - remove $modelines_text_apple, use $modelines_text_ext instead
- - don't use a <Section "Modes"> together with <UseModes "Mac Modes">,
- put
- directly modelines in Section "Monitor"
- (why should ppc behave differently than others!?)
- - replace (conflicting) ModeLines "1280x1024 @ 74 Hz" and
- "1280x1024 @ 76 Hz" with "1280x1024 @ 75 Hz" (from ddcxinfos)
- - drop ModeLine "640x480 @ 72 Hz"
- (it conflicts, and anyway, it has no real use nowadays :)
- - drop comments about HorizSync, VertRefresh and ModeLine's from
- XF86Config
- - drop many unneeded stuff from XF86Config:
- AutoRepeat, Xqueue, Xleds, NoTrapSignals, XkbTypes, XkbKeycodes,
- XkbCompat, XkbRules, LeftAlt/RightAlt/ScrollLock/RightCtl
- - drop section comments from XF86Config
- - drop XF86_Mono configuration
- (it doesn't work anyway, seems like it needs a special ModeLine?)
- - drop 320x200 with XF86_SVGA (who can use this!?)
- - do not write Screen section "accel" if the server configured is not
- an
- accel one
- - drop the "Generic VGA" Device section for XF4
- (this device is unused)
- - drop {monitor}{vendor}, {monitor}{model}, {card}{vendor},
- {card}{model},
- {card}{board} (only description strings, not useful for running the
- server)
- - use x_res instead of wres for things like 1024 in 1024x768
-
-2002/07/16 alus
-
- * share/po/pl.po: unused string removed
-
-2002/07/16 cbelisle
-
- * standalone/draksec: re-write the part setting the security admin
-
- * security.pm: draksec - initial commit. preparing for the advanced
- section.
-
- * any.pm: draksec:
- - rewrite the function to set the security admin
- - remove ugly buttons, 'advanced' button will come later
-
-2002/07/16 dchaumette
-
- * standalone/drakbug, standalone/interactive_http/authorised_progs,
- standalone/drakxconf: o finish moving draknet to drakconnect in
- standalone
-
-2002/07/16 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: update with newer perl-URPM.
- added log (finding packages to upgrade or computing installed flag)
-
- * install_steps.pm: removed useless package selection cleaning.
-
- * install_steps_gtk.pm: code cleanup.
-
- * install_steps_interactive.pm: improve a little.
- fixed missing upgrade.
- added wait message when finding packages to upgrade.
-
- * install2.pm: fixed reference to step 'selectPackagesToUpgrade'.
-
- * install_any.pm: fixed die when choosePackages step is redone.
-
- * crypto.pm: allow upgrade (if any) by using version at 8.2.
-
-2002/07/16 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * any.pm: small english fix thx to vdanen
-
- * share/po/id.po, share/po/sk.po, share/po/ru.po, share/po/gl.po,
- share/po/pt_BR.po, share/po/br.po, share/po/th.po, share/po/sl.po,
- share/po/no.po, share/po/et.po, share/po/ja.po, share/po/hr.po,
- share/po/tr.po, share/po/mt.po, share/po/ga.po, share/po/be.po,
- share/po/uk.po, share/po/ko.po, share/po/DrakX.pot, share/po/sv.po,
- share/po/sr.po, share/po/pl.po, share/po/fi.po, share/po/lt.po,
- share/po/sp.po, share/po/cy.po, share/po/ca.po, share/po/da.po,
- share/po/ar.po, share/po/bs.po, share/po/ro.po, share/po/wa.po,
- share/po/is.po, share/po/af.po, share/po/az.po, share/po/zh_TW.po,
- share/po/zh_CN.po, share/po/pt.po, share/po/vi.po, share/po/fr.po,
- share/po/nl.po, share/po/it.po, share/po/eu.po, share/po/es.po,
- share/po/de.po, share/po/eo.po, share/po/lv.po, share/po/el.po,
- share/po/cs.po, share/po/bg.po, share/po/hu.po: reflect typo fix in
- any.pm in the po's so that the translation are not broken
-
- * mdk-stage1/stage1.c: extend a bit fatal error when trying to execute
- /usr/bin/runinstall2 and it's not possible
-
-2002/07/16 Pixel <pixel@mandrakesoft.com>
-
- * standalone/drakTermServ: fix "$" in translated string
-
- * Makefile: don't display etags command (too long, not nice)
-
-2002/07/15 daouda
-
- * standalone/drakbug:
- - isStandalone is set in standalone.pm, removed
-
- * standalone/draksec:
- - isStandalone is set in standalone.pm, removed.
- - set isStandalone to 1 to center wait messages
-
-2002/07/15 Franēois Pons <fpons@mandrakesoft.com>
-
- * install2.pm: synced.
-
- * install_any.pm: synced with other module updated.
-
- * c/stuff.xs.pm: cleaned no more used method.
-
- * pkgs.pm: made upgrade almost work again (need testing and
- remove/deselect still doesn't
- work properly).
-
- * install_steps.pm: code re-organisation (a little).
-
- * install_steps_gtk.pm: fixed flag usage (still check selected package to
- upgrade but already selected
- are correctly shown).
-
-2002/07/15 Pixel <pixel@mandrakesoft.com>
-
- * ChangeLog: revert titi's error
-
-2002/07/11 Pixel <pixel@mandrakesoft.com>
-
- * rescue/list.i386: switch to vendor_perl
-
-2002/07/10 daouda
-
- * standalone/drakbug:
- - code update
- - use local http server for test.
-
-2002/07/10 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps.pm, install_steps_gtk.pm, crypto.pm, share/list, pkgs.pm,
- install_any.pm, install2.pm, install_steps_interactive.pm: use perl-URPM
- instead of rpmtools.
-
- * tools/Makefile: use vendor_perl instead of site_perl (check of
- rpmtools.pm and packdrake.pm presence).
-
-2002/07/10 Pixel <pixel@mandrakesoft.com>
-
- * tools/Makefile: nicer use of vendor_perl instead of site_perl (check of
- rpmtools.pm and
- packdrake.pm presence) ... i had forgot to commit :-(
-
- * ftp.pm: don't let Timeout kill us
-
- * modparm.pm: rollback titi's modif
-
- * detect_devices.pm: cleanup
-
- * share/list: add integer.pm (needed by Time::Local (needed by Net::FTP))
-
-2002/07/10 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * drakxtools.spec: list and describe all gui tools from drakxtools
- enhance cohenrency: step 1
- - ide and scsi devices use channel rather than bus to store their
- physical connection, which is more logic (at least for eide)
- - all devices have their connection bus in bus field, not in bus for
- {pci,usb,...} and interface_type for {scsi,eide,other_block_devices}
-
- - detect_devices:getIDE() : add eide_hds hash in order to be able to
- split info field between model and vendor
-
- - harddrake::ui : code reduction allowed by the above changes
- fix parrallel build
- fix perl depandancy on new perl
-
- * diskdrake/interactive.pm, detect_devices.pm, install_steps.pm,
- harddrake/ui.pm: enhance cohenrency: step 1
- - ide and scsi devices use channel rather than bus to store their
- physical connection, which is more logic (at least for eide)
- - all devices have their connection bus in bus field, not in bus for
- {pci,usb,...} and interface_type for {scsi,eide,other_block_devices}
-
- - detect_devices:getIDE() : add eide_hds hash in order to be able to
- split info field between model and vendor
-
- - harddrake::ui : code reduction allowed by the above changes
-
- * modparm.pm: typo fix
- no need to test two times if modinfo is executable in normal (ie not
- in drakx) case ...
-
- * Makefile, Makefile.drakxtools: remove all
- (use\s+(diagnostics|vars|strict)' instances
-
-2002/07/09 Pixel <pixel@mandrakesoft.com>
-
- * Makefile: have MDK::Common's in TAGS
-
- * detect_devices.pm: rewrite getSCSI, now handling scanners
-
- * share/list: adapt to new perl 5.8.0
-
- * common.pm, modparm.pm: move join_lines to common
-
-2002/07/09 Pixel <pixel@mandrakesoft.com>
-
- * Makefile: have MDK::Common's in TAGS
-
- * detect_devices.pm: rewrite getSCSI, now handling scanners
-
- * share/list: adapt to new perl 5.8.0
-
- * common.pm, modparm.pm: move join_lines to common
-
-2002/07/09 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * harddrake/TODO: fix boot freeze on hw change: initscript was running us
- with stdout
- redirected to /dev/null; just use a small sh wrapper to fix it
- update
-
- * standalone/service_harddrake.sh:
- - redirect stderr
- - remove old commented stuff
- fix boot freeze on hw change: initscript was running us with stdout
- redirected to /dev/null; just use a small sh wrapper to fix it
-
- * Makefile.drakxtools: fix boot freeze on hw change: initscript was
- running us with stdout
- redirected to /dev/null; just use a small sh wrapper to fix it
-
- * standalone/service_harddrake:
- - configurator got displayed
- - move timeout around configurator asking (still not 100% ok)
- time out after 200 seconds
- fix boot freeze on hw change: initscript was running us with stdout
- redirected to /dev/null; just use a small sh wrapper to fix it
-
- * drakxtools.spec: fix url
- add harddrake service wrapper
- really final changes
- final batch of changes for -3mdk ?
- fix boot freeze on hw change: initscript was running us with stdout
- redirected to /dev/null; just use a small sh wrapper to fix it
-
- * Makefile.config: add harddrake service wrapper to installed files
-
- * harddrake/ui.pm:
- - add channel: primary/slave for eide deivces
- - get rid of ->{set,get}_user_data
- ensure we don't mix scsi and pci devices
-
- * harddrake/bttv.pm: log only if options set
- typo fix
- only log explanations in standalone mode
-
- * share/po/Makefile: fake make so that its builtin rule to create file
- from file.sh doesn't
- nuke service_harddrake with it wrapper
-
-2002/07/08 daouda
-
- * standalone/drakbug:
- - detect package automatically when app is chosen
-
-2002/07/08 Pixel <pixel@mandrakesoft.com>
-
- * Makefile: create the list_modules symlink
- make test_pms should now work (was pb with list_modules.pm)
-
- * install_steps.pm, any.pm: mtools config so that "mdir a:" accesses the
- usb floppy if one is there
-
- * diskdrake/hd_gtk.pm: do not display "Clear all" (and the other per kind
- buttons) for the raid tab
-
- * install_steps_interactive.pm: in case the licence is refused, ask for
- confirmation
-
- * diskdrake/interactive.pm: make Clear_all work on a LVM VG
- make Clear_all remove partitions from raids
-
-2002/07/08 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * harddrake/TODO: remove fixed stuff
-
- * Makefile.drakxtools: s/PHONY/.PHONY/
- - simplifications
- - harddrake support is complete
-
- * drakxtools.spec: update
- fix post: add start argument
- service changes batch for 2mdk
- rpmlint fixes
- parrallel build
- 1.1.8-2mdk
- - enhance descriptions
- - various spec clean
- split-up between harddrake and harddrake-ui
- complete changelog
- - obsoletes/provides libdetect-lst, libdetect-lst-devel, detect,
- detect-lst
- - don't restart harddrake on install
- - some stuff moved into Makefile.drakxtools
- - fix harddrake menu entry
- - fix build
-
- * harddrake/data.pm: cache @devices so that hw probe is only done once
-
- * standalone/harddrake2: no need to 'use strict' in "binary"
-
- * standalone/service_harddrake:
- - only work on start
- - add "please wait" message
- - really don't cry when no previous config
- skip configuration on firt run
- skip hw classes without configurator (which'll have a configurator
- after porting updfstab)
-
- * harddrake/ui.pm:
- - rehide "run config tool" button when it has been displayed in
- another hw class
- don't display "run config tool" button if no configurator availlable
- - center the main window
- - remove drakx decorations
- mice:
- - s/nbuttons/Number of buttons/
- - delete qw(MOUSETYPE XMOUSETYPE unsafe)
- don't delete info field in normal path
- - eide devices: split up info field into vendor and model fields
- - complete help
- hummm ... eide: 0->master, 1->slave :-(
- - remove save_report menu entry, this is done by service_harddrake
- - move $in declaration near where it's used
- eide hard disks : print master/slave for bus_location
-
-2002/07/08 daouda
-
- * Makefile.config:
- - add drakbug
-
- * drakxtools.spec:
- - add dir recursively
-
- * standalone/drakbug:
- - detect package automatically when app is chosen
- - standalone app
-
-2002/07/08 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/mount.c: small readability & size enhancement
-
-2002/07/08 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm: in case the licence is refused, ask for
- confirmation
- help perl_checker
-
- * diskdrake/hd_gtk.pm: do not display "Clear all" (and the other per kind
- buttons) for the raid tab
-
- * diskdrake/interactive.pm: make Clear_all work on a LVM VG
- make Clear_all remove partitions from raids
-
- * Makefile: create the list_modules symlink
- make test_pms should now work (was pb with list_modules.pm)
-
-2002/07/08 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * harddrake/ui.pm:
- - remove save_report menu entry, this is done by service_harddrake
- - move $in declaration near where it's used
- eide hard disks : print master/slave for bus_location
- - remove dead stuff
- - comment some stuff
- minor simplication
- various cleanups:
- - move all harddrake modules to harddrake namespace
- - replace two use by require so that it's not done at compil time
- but at runtime
- - there was a missing $ in harddrake::ui.pm
-
- * harddrake/TODO: update todo list
-
- * install_steps_interactive.pm, standalone/draknet, harddrake/bttv.pm,
- standalone/harddrake2, standalone/service_harddrake, harddrake/data.pm:
- various cleanups:
- - move all harddrake modules to harddrake namespace
- - replace two use by require so that it's not done at compil time
- but at runtime
- - there was a missing $ in harddrake::ui.pm
-
- * drakxtools.spec:
- - some stuff moved into Makefile.drakxtools
- - fix harddrake menu entry
- - fix build
- fixes for missing files
- enhanced description
-
- * modules.pm:
- - s/snd-card/snd/
- - make some code clearer
-
- * Makefile.drakxtools:
- - simplifications
- - harddrake support is complete
-
- * scanner.pm: this doesn't need either "#!/usr/bin/perl" nor "use lib
- qw(/usr/lib/libDrakX);"
-
- * standalone/drakxtv:
- - fix options handling
- - use "perl -w"
- - s/bttv/harddrake::bttv/ due to recent changes
-
-2002/07/07 daouda
-
- * drakxtools.spec:
- - directory should exist before mv'ing things (mkdir
- %%buildroot%%_initrddir)
-
-2002/07/07 Pixel <pixel@mandrakesoft.com>
-
- * detect_devices.pm: smarter raidAutoStartRaidtab
- great new raidAutoStartRaidtab allowing to handle existing software
- raids
- even when RAID_AUTORUN is not supported by kernel (which is the case for
- us
- since md.o is a not builtin the kernel)
-
- * fsedit.pm: great new raidAutoStartRaidtab allowing to handle existing
- software raids
- even when RAID_AUTORUN is not supported by kernel (which is the case for
- us
- since md.o is a not builtin the kernel)
-
- * devices.pm: use c::total_sectors() instead of BLKGETSIZE
-
- * diskdrake/interactive.pm, raid.pm: ensure the raid is disactivated and
- marked dirty on any actions that destroy the raid
-
-2002/07/07 daouda
-
- * Makefile:
- - remove share/wizard.rc in DISTFILE
-
- * drakxtools.spec:
- - directory should exist before mv'ing things (mkdir
- %%buildroot%%_initrddir)
- - mv typo in %install section (titi sux)
-
-2002/07/07 Pixel <pixel@mandrakesoft.com>
-
- * detect_devices.pm: smarter raidAutoStartRaidtab
- great new raidAutoStartRaidtab allowing to handle existing software
- raids
- even when RAID_AUTORUN is not supported by kernel (which is the case for
- us
- since md.o is a not builtin the kernel)
- remove detect_devices::check (including the annoying log about no
- modules for the pci entry)
-
- * modules.pm: new "append_to_etc_modules" function
- remove detect_devices::check (including the annoying log about no
- modules for the pci entry)
-
- * fsedit.pm: great new raidAutoStartRaidtab allowing to handle existing
- software raids
- even when RAID_AUTORUN is not supported by kernel (which is the case for
- us
- since md.o is a not builtin the kernel)
-
- * any.pm: small regexp cleanup
-
- * fs.pm, partition_table.pm: for greater symmetry with smb, drop isNfs in
- favour of isThisFs('nfs', ...)
-
- * interactive_newt.pm: make the buttons work in all cases
- - workaround segfaults
- - ensure the perl values are set when calling the clicked_may_quit
- callback
-
- * devices.pm: use c::total_sectors() instead of BLKGETSIZE
-
- * diskdrake/interactive.pm, raid.pm: ensure the raid is disactivated and
- marked dirty on any actions that destroy the raid
-
-2002/07/06 Pixel <pixel@mandrakesoft.com>
-
- * any.pm (ask_users): the user name length must be <= 32
-
- * diskdrake/interactive.pm (as suggested by Alexander Skwar)
- - in interactive::check_type, check if the package (like jfsprogs) is
- installed
- - use interactive::check_type where usefull
- - cleanup
-
- * Makefile.config: standalone/drakbug doesn't exist! (why did deush add
- it???)
- it is standalone/harddrake2, not standalone/harddrake (poor deush must
- be loosing his brain :p)
-
- * diskdrake/hd_gtk.pm: s/check_type/diskdrake::interactive::check_type/
- - move diskdrake.rc from /etc/gtk to /usr/share/libDrakX
- - remove unused wizard.rc
- (as suggested by Alexander Skwar)
- - in interactive::check_type, check if the package (like jfsprogs) is
- installed
- - use interactive::check_type where usefull
- - cleanup
-
- * fsedit.pm: /root and /mnt must "remain within the root filesystem" (ie
- can't be used as mountpoints), dixit redhat
- (package_needed_for_partition_type): return the package needed for a
- partition type
- (check_type): cleanup
-
- * install_any.pm (setDefaultPackages): use
- fsedit::package_needed_for_partition_type to get things like jfsprogs
-
- * fs.pm: supermount now handles fs=auto, using it :)
-
- * Makefile.drakxtools, my_gtk.pm, share/wizard.rc, drakxtools.spec:
- - move diskdrake.rc from /etc/gtk to /usr/share/libDrakX
- - remove unused wizard.rc
-
-2002/07/06 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * Makefile.config: add the harddrake service which was missing
-
- * printer.pm: try to simplify
-
- * harddrake/ui.pm: simplify: use reverse
- - help system:
- - add an help entry in help menu;
- - begin to describe information fields
-
- - reformat license in about window
-
- - information frame (mostly fixing incoherency between various hw
- classes fields)
-
- - s/media type/media class/
-
- - s/info/Hardware id/
-
- - s/device/device file/
-
- - split description into manufacturer/description
-
- - eide devices:
-
- - rename bus as bus_location
-
- - set interface_type as bus
-
- - scsi devices:
-
- - set bus to SCSI
-
- - set bus_location to bus:id fields
-
- - don't print pci subids when non set
-
- - remove fields that were already used above (vendor id subvendor
- subid pci_bus pci_device pci_function)
-
- - no need to return window after program exit
-
- - print usage if needed
-
- - embed hardware tree in a "detected hardware" frame
-
- - cleanups:
-
- - rename widget2 as frame
-
- - remove dead commented code
-
- * drakxtools.spec: add harddrake2 service
-
- * standalone/icons/harddrake2/webcam.png,
- standalone/icons/harddrake2/harddrake.png,
- standalone/icons/harddrake2/keyboard.png,
- standalone/icons/harddrake2/ide_hd.png,
- standalone/icons/harddrake2/cable.png,
- standalone/icons/harddrake2/video.png,
- standalone/icons/harddrake2/tape.png,
- standalone/icons/harddrake2/joystick.png,
- standalone/icons/harddrake2/harddisk.png,
- standalone/icons/harddrake2/usb.png,
- standalone/icons/harddrake2/memory.png,
- standalone/icons/harddrake2/hw_network.png,
- standalone/icons/harddrake2/scsi_hd.png,
- standalone/icons/harddrake2/unknown.png,
- standalone/icons/harddrake2/floppy.png,
- standalone/icons/harddrake2/hw_printer.png,
- standalone/icons/harddrake2/scanner.png,
- standalone/icons/harddrake2/cd.png,
- standalone/icons/harddrake2/isdn.png,
- standalone/icons/harddrake2/tv.png,
- standalone/icons/harddrake2/sound.png,
- standalone/icons/harddrake2/scsi.png,
- standalone/icons/harddrake2/cpu.png,
- standalone/icons/harddrake2/hw_mouse.png,
- standalone/icons/harddrake2/modem.png,
- standalone/icons/harddrake2/K7.png: add harddrake2 icons
-
-2002/07/06 Pixel <pixel@mandrakesoft.com>
-
- * any.pm (ask_users): the user name length must be <= 32
-
- * commands.pm: adapt to new modprobe.pm
-
- * diskdrake/hd_gtk.pm:
- - move diskdrake.rc from /etc/gtk to /usr/share/libDrakX
- - remove unused wizard.rc
- (as suggested by Alexander Skwar)
- - in interactive::check_type, check if the package (like jfsprogs) is
- installed
- - use interactive::check_type where usefull
- - cleanup
-
- * diskdrake/interactive.pm (as suggested by Alexander Skwar)
- - in interactive::check_type, check if the package (like jfsprogs) is
- installed
- - use interactive::check_type where usefull
- - cleanup
- (Resize): resize2fs handles ext3 :)
-
- * install_any.pm (setDefaultPackages): use
- fsedit::package_needed_for_partition_type to get things like jfsprogs
- when merge_fstabs, handle in a different way mtab and fstab (or
- manualFstab)
- => this allows to force the type&options in manualFstab
-
- * fsedit.pm (package_needed_for_partition_type): return the package needed
- for a partition type
- (check_type): cleanup
-
- * docs/comparisons: various remarks about mandrake
-
- * partition_table_lvm_PV.pm: Allows people having PVs on unpartitioned
- disks to install
- (but no way to create such beasts)
-
- * Makefile.config: standalone/drakbug doesn't exist! (why did deush add
- it???)
- it is standalone/harddrake2, not standalone/harddrake (poor deush must
- be loosing his brain :p)
- add harddrake pm's
-
- * partition_table.pm: Allows people having PVs on unpartitioned disks to
- install
- (but no way to create such beasts)
- cleanup
-
- * fs.pm: supermount now handles fs=auto, using it :)
- when merge_fstabs, handle in a different way mtab and fstab (or
- manualFstab)
- => this allows to force the type&options in manualFstab
-
- * Makefile.drakxtools, my_gtk.pm, share/wizard.rc, drakxtools.spec:
- - move diskdrake.rc from /etc/gtk to /usr/share/libDrakX
- - remove unused wizard.rc
-
-2002/07/06 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * standalone/lsnetdrake: simplify
-
- * Makefile: add harddrake to DISTFILES
-
- * printer.pm: try to simplify
-
- * harddrake/TODO: add bits regarding eide and scsi
-
- * standalone/harddrake2: add missing 'use lib' due to harddrak::ui changes
-
- * harddrake/ui.pm: simplify: use reverse
- - help system:
- - add an help entry in help menu;
- - begin to describe information fields
-
- - reformat license in about window
-
- - information frame (mostly fixing incoherency between various hw
- classes fields)
-
- - s/media type/media class/
-
- - s/info/Hardware id/
-
- - s/device/device file/
-
- - split description into manufacturer/description
-
- - eide devices:
-
- - rename bus as bus_location
-
- - set interface_type as bus
-
- - scsi devices:
-
- - set bus to SCSI
-
- - set bus_location to bus:id fields
-
- - don't print pci subids when non set
-
- - remove fields that were already used above (vendor id subvendor
- subid pci_bus pci_device pci_function)
-
- - no need to return window after program exit
-
- - print usage if needed
-
- - embed hardware tree in a "detected hardware" frame
-
- - cleanups:
-
- - rename widget2 as frame
-
- - remove dead commented code
-
- * harddrake/data.pm: add a configurator for sound
-
- * standalone/icons/harddrake2/cable.png,
- standalone/icons/harddrake2/tape.png,
- standalone/icons/harddrake2/usb.png,
- standalone/icons/harddrake2/hw_network.png,
- standalone/icons/harddrake2/unknown.png,
- standalone/icons/harddrake2/hw_printer.png,
- standalone/icons/harddrake2/scanner.png,
- standalone/icons/harddrake2/isdn.png,
- standalone/icons/harddrake2/cd.png,
- standalone/icons/harddrake2/scsi.png,
- standalone/icons/harddrake2/hw_mouse.png,
- standalone/icons/harddrake2/K7.png,
- standalone/icons/harddrake2/webcam.png,
- standalone/icons/harddrake2/harddrake.png,
- standalone/icons/harddrake2/keyboard.png,
- standalone/icons/harddrake2/ide_hd.png,
- standalone/icons/harddrake2/harddisk.png,
- standalone/icons/harddrake2/joystick.png,
- standalone/icons/harddrake2/video.png,
- standalone/icons/harddrake2/memory.png,
- standalone/icons/harddrake2/scsi_hd.png,
- standalone/icons/harddrake2/floppy.png,
- standalone/icons/harddrake2/sound.png,
- standalone/icons/harddrake2/tv.png, standalone/icons/harddrake2/cpu.png,
- standalone/icons/harddrake2/modem.png: add harddrake2 icons
-
-2002/07/05 daouda
-
- * Makefile.config:
- - add harddrake drakbug drakTermServ to STANDALONEPMS_
-
- * drakxtools.spec:
- - snapshot
- - new entries:
- o harddrake2 : new hardware detection && configuration tool
- o drakbugreport: bug reporting tool a la Kde (not working!)
- o drakTermServ : configuration tool for diskless stations.
-
-2002/07/05 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm (prepare_write_fstab): for supermount, have "none" as the device
- (cleaner, and
- more coherent with the "supermount" script (tx to FredC))
-
-2002/07/05 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * install_steps_interactive.pm: minimize startup: only load
- harddrake::bttv if the user click on "tv
- card" field in the hw summary window
- use harddrake::bttv to let people configure their tv card if it's
- misdetected
-
- * harddrake/ui.pm: remove uneeded "#!/...", standalone, lib, ... (this is
- a module)
- POSIX is no more used too.
-
- * harddrake/bttv.pm: remove device test: there're only two harddrake::bttv
- users,
- install_steps_interactive.pm and drakxtv which both have already
- tested that a bttv managed tv card is there.
- - add more tv cards
- - enable users to select number of buffers for mmap()
- - better description for pll setting
-
- - add tooltips help for some entries
- tv cards list:
-
- - split multi-cards entries
-
- - reverse the hash (needed since now bttv card types are not
- anymore unique)
-
- - complete the list from various sources
-
- - use a tree to display the list, it's clearer now since it's
- splitted by vendors
-
- - longer message
- - remove uneeded stuff for modules ("#!/..", "use lib..", "use
- standalone", ...)
-
- - simplify bttv options managment:
-
- - use if_, thanks MDK::Common
-
- - s/mapn/map by using a hash at first
-
- - s/mapn{if}/map{if_}
-
- - don't read/write modules.conf here, drakx take care of that for us
-
- thus, the test program became:
-
- #!/usr/bin/perl
-
- use strict;
- use lib qw(/usr/lib/libDrakX);
-
- use standalone;
- use bttv;
- use interactive;
- use modules;
-
- modules::read_conf;
- bttv::config('interactive'->vnew());
- modules::write_conf;
- spec29: bttv configuration part of drakxtv.
- it can be used by:
-
- #!/usr/bin/perl
-
- use strict;
- use lib qw(/usr/lib/libDrakX);
-
- use standalone;
- use harddrake::bttv;
- use interactive;
-
- bttv::config('interactive'->vnew());
-
- * drakxtools.spec: fix typo
- fix dirs1/dirs2 mismatch
- - M-q descriptions
- - simplify file lists building
- - we can use several -f on one "%%files" line
-
- * standalone/drakxtv: if we're root and there's a tv card managed by bttv,
- offer to
- configure bttv trough harddrake::bttv
-
- * tools/cvslog2changelog.pl: typo fix
-
- * harddrake/data.pm: remove uneeded "#!/.." and "use lib"
-
-2002/07/05 Franēois Pons <fpons@mandrakesoft.com>
-
- * Makefile:
- - handle /lib/i686 case
- - replace Mandrake/RPMS with Mandrake/RPMS*
-
-2002/07/05 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/pcmcia/cardmgr.c, mdk-stage1/pcmcia/lex_config.c,
- mdk-stage1/pcmcia/vg468.h, mdk-stage1/pcmcia/cardmgr.h,
- mdk-stage1/pcmcia/bulkmem.h, mdk-stage1/pcmcia/i82365.h,
- mdk-stage1/pcmcia/cirrus.h, mdk-stage1/pcmcia/config.h,
- mdk-stage1/pcmcia/driver_ops.h, mdk-stage1/pcmcia/version.h,
- mdk-stage1/pcmcia/cistpl.h, mdk-stage1/pcmcia/cs.h,
- mdk-stage1/pcmcia/Makefile, mdk-stage1/pcmcia/ds.h,
- mdk-stage1/pcmcia/pcmcia.h, mdk-stage1/pcmcia/cs_types.h,
- mdk-stage1/pcmcia/yacc_config.c, mdk-stage1/pcmcia/tcic.h,
- mdk-stage1/pcmcia/yacc_config.h, mdk-stage1/pcmcia/pcmcia_probe.c:
- pcmcia is now pcmcia_ (it was to begin with a clean branch of unmodified
- sources)
-
-2002/07/05 Pixel <pixel@mandrakesoft.com>
-
- * mdk-stage1/pci-resource/update-pci-ids.pl: make it work with "use
- strict"
- do not look at the mar files anymore, only use kernel/modules.pl (and so
- list_modules.pm)
-
- * diskdrake/interactive.pm: handle comments in fstab
-
- * fs.pm (merge_info_from_fstab): try to keep options from merged fstab IF
- the entry is for the same mountpoint AND the same device
- handle comments in fstab
-
- * share/rpmsrate: add gnupg in "4 SYSTEM", so that rpm do not *Require*
- gnupg, only suggest it very strongly :)
-
- * mdk-stage1/usb-resource/update-usb-ids.pl:
- - do not use mar files for the list of modules, use list_modules.pm
- via kernel/modules.pl instead
- - use read_pcitable to parse usbtable
-
-2002/07/05 Thierry Vignaud <tvignaud@mandrakesoft.com
-
- * harddrake/ui.pm: remove uneeded "#!/...", standalone, lib, ... (this is
- a module)
- POSIX is no more used too.
-
- * drakxtools.spec: fix typo
- fix dirs1/dirs2 mismatch
- - M-q descriptions
- - simplify file lists building
- - we can use several -f on one "%%files" line
- - add preliminary harddrake support
-
- - clean %post
-
- - bump version number
-
- * harddrake/bttv.pm:
- - remove uneeded stuff for modules ("#!/..", "use lib..", "use
- standalone", ...)
- - simplify bttv options managment:
-
- - use if_, thanks MDK::Common
-
- - s/mapn/map by using a hash at first
-
- - s/mapn{if}/map{if_}
-
- - don't read/write modules.conf here, drakx take care of that for us
-
- thus, the test program became:
-
- #!/usr/bin/perl
-
- use strict;
- use lib qw(/usr/lib/libDrakX);
-
- use standalone;
- use bttv;
- use interactive;
- use modules;
-
- modules::read_conf;
- bttv::config('interactive'->vnew());
- modules::write_conf;
- spec29: bttv configuration part of drakxtv.
- it can be used by:
-
- #!/usr/bin/perl
-
- use strict;
- use lib qw(/usr/lib/libDrakX);
-
- use standalone;
- use harddrake::bttv;
- use interactive;
-
- bttv::config('interactive'->vnew());
-
- * Makefile: don't use sed when not needed
-
- * install_steps_interactive.pm: minimize startup: only load
- harddrake::bttv if the user click on "tv
- card" field in the hw summary window
- use harddrake::bttv to let people configure their tv card if it's
- misdetected
-
- * harddrake/data.pm: remove uneeded "#!/.." and "use lib"
-
-2002/07/04 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm, install_steps_auto_install.pm,
- install2.pm, network/ethernet.pm, network/isdn.pm, commands.pm,
- printerdrake.pm, mouse.pm, network/netconnect.pm, install_any.pm,
- install_steps.pm, detect_devices.pm, bootloader.pm: adapt to new
- modules.pm
-
- * c/stuff.xs.pm: adapt to new ldetect
-
- * modules.pm: reworked, cleaned:
- - the list of modules is moved to kernel/list_modules.pm (and a few
- functions too)
- - new "add_probeall" function (similar to "add_alias")
- -> used for scsi_hostadapter and usb-interface
- - "load_multi" removed in favour of "load" which is now more powerful
- - load_thiskind renamed load_category
- - get_that_type renamed probe_category
- - %modules::drivers dropped (handled for list_modules)
- still more cleanup to come
-
- * rescue/make_rescue_img: adapt to the move all.modules ->
- kernel/all.modules and all.kernels -> kernel/all.kernels
-
- * modparm.pm: rework, cleanup, simplify and make it work
-
- * install2: create symlink list_modules.pm in current directory for
- testing purpose
-
- * Makefile: when building the tar for drakxtools, handle specially
- list_modules.pm
- adapt to the move all.modules -> kernel/all.modules and all.kernels ->
- kernel/all.kernels
-
- * mdk-stage1/pci-resource/update-pci-ids.pl: new directory "kernel"
- containing:
- - all.modules all.kernels update_kernel
- - part of perl-install/modules.pm now in kernel/list_modules.pm and
- kernel/modules.pl
- - update_kernel cleaned (it doesn't mention module names anymore, it
- is now in kernel/modules.pl)
- - cleanup Makefile
- - mdk-stage1 doesn't depend on perl-install anymore
- (more precisely mdk-stage1/pci-resource/update-pci-ids.pl)
-
- * any.pm: reworked & cleaned the kernel modules part
- - adapt to new modules.pm
- - adapt to new modparm.pm
- - renamed setup_thiskind to load_category
- - renamed setup_thiskind_backend to load_category_no_message
-
- * share/po/Makefile: make the "clean" rule less verbose
-
-2002/07/04 daouda
-
- * standalone/draknet:
- - don't display clear password
-
-2002/07/04 fcrozat
-
- * share/rpmsrate: Fix GNOME2 packages
- Install urw-fonts when installing XFree
-
-2002/07/04 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/tr.po: updated Turkish file
-
- * share/po/fr.po: updated French file
-
- * lang.pm: Changed some languages to defautl to utf-8
- removed X11_NOT_LOCALIZED (now Gnome2 fully supports right-to-left
- languages)
-
-2002/07/04 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm, install_steps_auto_install.pm,
- install2.pm, network/ethernet.pm, network/isdn.pm, commands.pm,
- printerdrake.pm, mouse.pm, network/netconnect.pm, install_any.pm,
- install_steps.pm, detect_devices.pm, bootloader.pm: adapt to new
- modules.pm
-
- * c/stuff.xs.pm: adapt to new ldetect
-
- * modules.pm: reworked, cleaned:
- - the list of modules is moved to kernel/list_modules.pm (and a few
- functions too)
- - new "add_probeall" function (similar to "add_alias")
- -> used for scsi_hostadapter and usb-interface
- - "load_multi" removed in favour of "load" which is now more powerful
- - load_thiskind renamed load_category
- - get_that_type renamed probe_category
- - %modules::drivers dropped (handled for list_modules)
- still more cleanup to come
-
- * getpkgs_deps, do_resize_fat: removed since unused
-
- * Makefile, rescue/make_rescue_img: adapt to the move all.modules ->
- kernel/all.modules and all.kernels -> kernel/all.kernels
-
- * modparm.pm: rework, cleanup, simplify and make it work
-
- * install2: create symlink list_modules.pm in current directory for
- testing purpose
-
- * mdk-stage1/pci-resource/update-pci-ids.pl: new directory "kernel"
- containing:
- - all.modules all.kernels update_kernel
- - part of perl-install/modules.pm now in kernel/list_modules.pm and
- kernel/modules.pl
- - update_kernel cleaned (it doesn't mention module names anymore, it
- is now in kernel/modules.pl)
- - cleanup Makefile
- - mdk-stage1 doesn't depend on perl-install anymore
- (more precisely mdk-stage1/pci-resource/update-pci-ids.pl)
-
- * tools/specific_arch: simplified using MDK::Common
-
- * any.pm: reworked & cleaned the kernel modules part
- - adapt to new modules.pm
- - adapt to new modparm.pm
- - renamed setup_thiskind to load_category
- - renamed setup_thiskind_backend to load_category_no_message
-
- * share/po/Makefile: make the "clean" rule less verbose
-
-2002/07/04 Thierry Vignaud <tvignaud@mandrakesoft.com
-
- * harddrake/TODO: add harddrake2 todo list
-
- * harddrake/data.pm: get rid of 'use vars'
- remove wait_message hack for printerdraker, better use class_discard
- harddrake2: "the return of the vengeance son"
- - harddrake/data.pm: the data structure
- - harddrake/ui.pm: the ui code
-
- - standalone/service_harddrake: the init.d service (which need a few
- polishing (timeout, ...)
-
- - standalone/harddrake2: the ui caller which need to be dadou/ln -fied
-
- * harddrake/ui.pm: don't stack signals on config buttons
- - remove no more used @pid_launched
- - better GUI reactivity: don't wait for config tool to complete, just
- "fork and forget" [(c) us air force] and refuse to run another
- config tool until the first one to complete
- print "Running $configurator ..." in status bar while running a config
- tool
- - POSIX is needed for POSIX::wait
- - move strict and standalone require at top
-
- - c is unused
-
- - comment exceptions in devices loop (ie skip classes without any
- devices or any detector
-
- - optimize away $pid
- fix move from harddrake.pm to harddrake/data.pm:
-
- - menu does appear
-
- - information fields are translated from raw to english again
- harddrake2: "the return of the vengeance son"
-
- - harddrake/data.pm: the data structure
-
- - harddrake/ui.pm: the ui code
-
- - standalone/service_harddrake: the init.d service (which need a few
- polishing (timeout, ...)
-
- - standalone/harddrake2: the ui caller which need to be dadou/ln -fied
-
- * detect_devices.pm: add tapes() for harddrake2
-
- * standalone/harddrake2, standalone/service_harddrake: harddrake2: "the
- return of the vengeance son"
- - harddrake/data.pm: the data structure
- - harddrake/ui.pm: the ui code
-
- - standalone/service_harddrake: the init.d service (which need a few
- polishing (timeout, ...)
-
- - standalone/harddrake2: the ui caller which need to be dadou/ln -fied
-
-2002/07/03 Franēois Pons <fpons@mandrakesoft.com>
-
- * mdk-stage1/probing.c: fixed static definition when non static
- declaration (gcc limitation).
- added conditional code around network detection.
-
-2002/07/03 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/mar/mar-extract-only.c, mdk-stage1/minilibc.c,
- mdk-stage1/newt/newt.c, mdk-stage1/bzlib/bzlib.c,
- mdk-stage1/newt/listbox.c, mdk-stage1/newt-frontend.c,
- mdk-stage1/disk.c, mdk-stage1/modules.c, mdk-stage1/stage1.c,
- mdk-stage1/newt/checkboxtree.c, mdk-stage1/mar/mar-frontend.c,
- mdk-stage1/Makefile.common, mdk-stage1/url.c, mdk-stage1/newt/textbox.c,
- mdk-stage1/newt/grid.c, mdk-stage1/dhcp.c, mdk-stage1/init.c,
- mdk-stage1/automatic.c, mdk-stage1/newt/entry.c: compile with -W
-
-2002/07/02 daouda
-
- * my_gtk.pm:
- - fill a combo by default :
- gtkcombo_setpopdown_strings($combo_widget,@strings)
-
-2002/07/02 gbeauchesne
-
- * c/smp.c:
- - TODO: Update ia64 check with /proc/pal/cpuX ?
- - TODO: Update x86_64 check when SMP machines are actually available
- - Conditionalize compilation of main() with TEST macro
-
-2002/07/02 Pixel <pixel@mandrakesoft.com>
-
- * network/smb.pm: try harder to find the full list of servers available,
- using "smbclient -L" to
- check the workgroup masters
-
-2002/07/01 Pixel <pixel@mandrakesoft.com>
-
- * diskdrake/smbnfs_gtk.pm (raw_hd_mount_point): nicer default mount point
-
-2002/06/28 Pixel <pixel@mandrakesoft.com>
-
- * diskdrake/smbnfs_gtk.pm, network/smb.pm, network/smbnfs.pm:
- - add authentification in diskdrake --smb (esp. for windows NT)
- - use "credentials=" to put the passwords
- (ideas and investigations from Stew Benedict,
- integrated by Pixel, but need testing)
- Known bug: if you want to change the password when there are 2 entries
- in fstab
- using the same username=/password=, writing the credentials is done in
- random order,
- => you've got one chance in 2 that the password is changed :-(
-
- * fs.pm:
- - add authentification in diskdrake --smb (esp. for windows NT)
- - use "credentials=" to put the passwords
- (ideas and investigations from Stew Benedict,
- integrated by Pixel, but need testing)
- Known bug: if you want to change the password when there are 2 entries
- in fstab
- using the same username=/password=, writing the credentials is done in
- random order,
- => you've got one chance in 2 that the password is changed :-(
- handle spaces in mount points and devices (using \040)
-
-2002/06/27 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * standalone/drakTermServ, standalone/icons/drakTS.620x57.png: Add
- drakTermServ application and icon.
-
-2002/06/26 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm, install_steps_interactive.pm, install2.pm: ensure
- licence step is asked in any case (ie. even when selectLanguage is
- automatic)
-
- * any.pm: "my" variables where needed
-
-2002/06/25 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/tr.po, share/po/ar.po: Updated po files
-
-2002/06/19 Frederic Lepied <flepied@mandrakesoft.com>
-
- * Makefile: corrected rules to make distributable rpms.
-
-2002/06/19 Franēois Pons <fpons@mandrakesoft.com>
-
- * patch/patch-oem-hp.pl: added patch-oem.pl file used to generate HP
- Mandrake Linux 8.2.
-
-2002/06/19 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * modules.pm: remove a few drivers so that hd.img and network.img are
- possible with latest BOOT kernel
-
-2002/06/19 Pixel <pixel@mandrakesoft.com>
-
- * standalone/fileshareset: use "wide links = no" for exporting via samba
- (thanks to Jan Schäfer)
-
- * fs.pm: mounting of ntfs after install really mount the partition (thanks
- to Buchan Milne)
-
-2002/06/18 daouda
-
- * my_gtk.pm:
- - add gtkset_text, gtkprepend_text, gtkappend_text for entry widgets
-
-2002/06/18 Frederic Lepied <flepied@mandrakesoft.com>
-
- * Makefile.drakxtools: manage security subdir.
-
- * Makefile: added targets to build test and distribution rpms and srpms
- (localrpm,
- localsrpm, rpm, srpm).
- added security to the installed directories
-
- * pam.net_monitor, diskdrake/diskdrake.html, drakxtools.spec,
- apps.net_monitor: ripped from the srpm
-
-2002/06/18 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/hu.po: updated Hungarian file
-
-2002/06/17 cbelisle
-
- * standalone/draksec: added server, user and network advanced options
-
- * any.pm: draksec: customize entries for each options (lists, checkboxes
- and text boxes)
- Added user,server and network advanced options
-
- * security/msec.pm:
- - Customize entries for each options (checkboxes, text boxes and
- lists)
- added network, server and user advanced options
-
-2002/06/15 alus
-
- * share/po/pl.po: updates
-
-2002/06/13 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * lang.pm: Catalan doesn't have French fallback anymore
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/DrakX.pot, share/po/es.po, share/po/fr.po, share/po/bg.po,
- share/po/ga.po, share/po/sr.po, share/po/de.po, share/po/et.po,
- share/po/tr.po, share/po/eu.po, share/po/az.po, share/po/ru.po,
- share/po/pt_BR.po, share/po/hr.po, share/po/ko.po, share/po/cy.po,
- share/po/nl.po, share/po/ja.po, share/po/wa.po, share/po/sv.po,
- share/po/is.po, share/po/hu.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/no.po, share/po/fi.po, share/po/th.po,
- share/po/el.po, share/po/sk.po, share/po/lt.po, share/po/ar.po,
- share/po/sl.po, share/po/mt.po, share/po/vi.po, share/po/br.po,
- share/po/ca.po, share/po/gl.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/ro.po, share/po/bs.po, share/po/da.po,
- share/po/zh_TW.po, share/po/cs.po, share/po/af.po: updated pot file
-
-2002/06/11 Pixel <pixel@mandrakesoft.com>
-
- * fsedit.pm: added /tmp in @suggestions_mntpoints (as suggested by
- Philippe Coulon)
-
-2002/06/10 cbelisle
-
- * standalone/draksec: Add an entry for the security user email
-
- * security/msec.pm: Initial commit
-
- * any.pm: Add security user email entry in draksec
-
-2002/06/10 daouda
-
- * network/tools.pm:
- - choose country according to timezone.
-
-2002/06/10 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * tools/syncrpms: english fix
-
-2002/06/10 Pixel <pixel@mandrakesoft.com>
-
- * c/stuff.xs.pm: s/class/class_/ for ldetect 0.4
-
-2002/06/07 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * timezone.pm: remove duplicate entry in ntp_servers
-
- * interactive_gtk.pm, my_gtk.pm: split ask_browse_tree_info from
- interactive_gtk
- to my_gtk between widgets creation and real
- stuff so that we can now call it with widgets
- places differently
-
-2002/06/06 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/tr.po: updated po file
-
-2002/06/05 Pixel <pixel@mandrakesoft.com>
-
- * bootloader.pm: adapt to new lilo
-
-2002/06/05 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm: use -ff for mkreiserfs, do not use -q for mkreiserfs
-
- * bootloader.pm: adapt to new lilo
-
-2002/06/05 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm: use -ff for mkreiserfs, do not use -q for mkreiserfs
-
-2002/06/03 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/stage1.c, install_steps_interactive.pm, any.pm,
- install_steps_gtk.pm, mdk-stage1/network.c, mdk-stage1/disk.c: english
- fixes thx to vincent meyer
-
-2002/06/03 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm: have the /root/drakx/auto_install.cfg.pl replay style
- instead of weird style
- with clearall unset & auto_allocate set
-
-2002/05/29 alus
-
- * share/po/pl.po: little fixes
-
-2002/05/28 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * interactive_gtk.pm: remove typo fix when it's not a fix :-)
- small typo
- remove typo (hopefully really a typo ;p)
-
- * any.pm: be a bit more polite
-
-2002/05/27 Franēois Pons <fpons@mandrakesoft.com>
-
- * install2.pm: make sure patch is always read after defcfg to take
- precedance.
-
-2002/05/27 Pixel <pixel@mandrakesoft.com>
-
- * modules.pm: have usb-interface1 for ehci-hcd
-
-2002/05/24 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * Xconfigurator.pm: dams fixes a bug in the install :-)
-
-2002/05/21 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/rpmsrate: xtraceroute needs 3d
-
-2002/05/15 alus
-
- * share/po/Changelog: info about polish translation
-
-2002/05/14 alus
-
- * share/po/pl.po: polish finished
- updated polish translation
- polish updated to near finished. Fuzzy removed and checked
-
-2002/05/14 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * docs/HACKING: libncurses* also for the sucking neuneux
-
-2002/05/14 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/pl.po, share/po/id.po: updated po file
-
-2002/05/13 alus
-
- * share/po/pl.po: mostly finished polish translation.!!
-
-2002/05/13 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * docs/HACKING: libbzip2* and more explanations about failing compilation
-
- * mdk-stage1/Makefile, mdk-stage1/ppp/pppd/ipcp.c, mdk-stage1/probing.c:
- adapt to gcc-3.1
-
-2002/05/02 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * lang.pm: Put back xcin as default XIM for zh_TW.Big5
-
- * share/po/eu.po: small corrections
-
-2002/04/29 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/usb-resource/update-usb-ids.pl: support USB2 controllers as
- well
-
-2002/04/29 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/wa.po, share/po/hu.po: updated po files
-
-2002/04/26 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: fixed some machine with two present i830 CGC but only
- one in reality.
-
- * detect_devices.pm: updated usbMice to take care of device declared as
- Mouse:USB in usbtable (was
- not the case !)
-
-2002/04/25 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/DrakX.pot, share/po/es.po, share/po/fr.po, share/po/bg.po,
- share/po/ga.po, share/po/sr.po, share/po/de.po, share/po/et.po,
- share/po/tr.po, share/po/eu.po, share/po/az.po, share/po/ru.po,
- share/po/pt_BR.po, share/po/hr.po, share/po/ko.po, share/po/cy.po,
- share/po/nl.po, share/po/ja.po, share/po/wa.po, share/po/sv.po,
- share/po/is.po, share/po/hu.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/no.po, share/po/fi.po, share/po/th.po,
- share/po/el.po, share/po/sk.po, share/po/lt.po, share/po/ar.po,
- share/po/sl.po, share/po/mt.po, share/po/vi.po, share/po/br.po,
- share/po/ca.po, share/po/gl.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/ro.po, share/po/bs.po, share/po/da.po,
- share/po/zh_TW.po, share/po/cs.po, share/po/af.po: updated pot file
-
-2002/04/23 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * bootlook.pm: a few english fixes
-
- * any.pm: fixes
- english fixes from v meyer
- a few english fixes thx to vincent meyer
-
-2002/04/19 alus
-
- * share/po/pl.po: It's only about 100 entries to the end
-
-2002/04/19 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/nl.po: updated Dutch file
-
- * share/po/hu.po: updated po file
-
-2002/04/18 alus
-
- * share/po/pl.po: 3 more long messages
- one entry
- stil working....
-
-2002/04/17 alus
-
- * share/po/pl.po: Mostly finished polish translation
- translations, fixes etc...
-
-2002/04/17 Franēois Pons <fpons@mandrakesoft.com>
-
- * tools/oem-prepare: final candidate.
-
- * rescue/tree/etc/oem: final candidate.
- add gcc-cpp to oem install.
-
-2002/04/16 alus
-
- * share/po/pl.po: still working
- Few fixes
- Updated translation. Many strings is not yet translated...
-
-2002/04/16 Franēois Pons <fpons@mandrakesoft.com>
-
- * rescue/tree/etc/oem: sync with oem-prepare
- fixed stupid error.
- forget packdrake module invocation.
- fixed to support non standard rpm filename.
-
- * tools/oem-prepare: add gcc-cpp to always installed.
- disable unselection of some package (gmc, all gcc3.0 stuff).
-
-2002/04/16 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/rpmsrate: only main version of automake
-
-2002/04/16 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/nl.po: updated po file
-
-2002/04/16 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm: handle "Cancel" on NIS / LDAP server
- dialog box
-
-2002/04/15 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/rpmsrate: ipchains now conflicts with iptables
-
-2002/04/15 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/eu.po: Another small fix
- Small corrections
-
-2002/04/13 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/ro.po: merged with drakfloppy strings
-
-2002/04/11 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/mt.po: updated Maltese file
-
-2002/04/10 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/eu.po: small typo correction
-
-2002/04/10 warly
-
- * share/rpmsrate: autofs -> 2
-
-2002/04/09 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * standalone/drakgw: time to remove ipchains/2.2 stuff since now ipchains
- and iptables
- packages conflict
-
-2002/04/09 Pixel <pixel@mandrakesoft.com>
-
- * partition_table_dos.pm, partition_table_gpt.pm,
- partition_table_empty.pm, partition_table_bsd.pm,
- partition_table_sun.pm, partition_table_mac.pm: nicer debug "bag magic"
- error message (thanks to Brian J. Murrell)
-
-2002/04/08 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/po/fr.po: fixed a bunch of things
-
- * install_steps_interactive.pm, install_interactive.pm, network/isdn.pm,
- partition_table.pm, install_steps_gtk.pm, Xconfigurator.pm,
- printerdrake.pm, network/tools.pm, diskdrake/interactive.pm,
- network/netconnect.pm, fsedit.pm, diskdrake/removable_gtk.pm,
- network/network.pm, printer.pm, interactive_stdio.pm: fix a few english
- strings
-
-2002/04/08 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/DrakX.pot, share/po/es.po, share/po/fr.po, share/po/bg.po,
- share/po/ga.po, share/po/sr.po, share/po/de.po, share/po/et.po,
- share/po/tr.po, share/po/eu.po, share/po/az.po, share/po/ru.po,
- share/po/pt_BR.po, share/po/hr.po, share/po/ko.po, share/po/cy.po,
- share/po/nl.po, share/po/ja.po, share/po/wa.po, share/po/sv.po,
- share/po/is.po, share/po/hu.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/no.po, share/po/fi.po, share/po/th.po,
- share/po/el.po, share/po/sk.po, share/po/lt.po, share/po/ar.po,
- share/po/sl.po, share/po/mt.po, share/po/vi.po, share/po/br.po,
- share/po/ca.po, share/po/gl.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/ro.po, share/po/bs.po, share/po/da.po,
- share/po/zh_TW.po, share/po/cs.po, share/po/af.po: merged with
- drakfloppy strings
-
-2002/04/07 Yves Duret <yduret@mandrakesoft.com>
-
- * standalone/drakfloppy: moving from his own rpm to drakxtools
-
- * Makefile.config: add drakfloppy to STANDALONEPMS_
-
-2002/04/04 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * c/Makefile.PL: rpmlib 4.0.4 now also needs libpopt
-
-2002/04/04 sdupont
-
- * standalone/drakbackup: please yduret, do not commit these changes on cvs
- before to test it.
- you can say "bugs fixes" only if you have corrected some errors but not
- if you create it!
- the backup on cd was disabled because the backend is not available for
- moment.
-
- * standalone/drakfont: remove uninteresting yduret changes,
- would it be possible to know what are your "bugs fixies" ?
- to yduret: I'm the creator of this program so please do not remove my
- changes.
-
-2002/06/05 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm: use -ff for mkreiserfs, do not use -q for mkreiserfs
-
-2002/06/03 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/stage1.c, install_steps_interactive.pm, any.pm,
- install_steps_gtk.pm, mdk-stage1/network.c, mdk-stage1/disk.c: english
- fixes thx to vincent meyer
-
-2002/06/03 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm: have the /root/drakx/auto_install.cfg.pl replay style
- instead of weird style
- with clearall unset & auto_allocate set
-
-2002/05/29 alus
-
- * share/po/pl.po: little fixes
-
-2002/05/28 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * interactive_gtk.pm: remove typo fix when it's not a fix :-)
- small typo
- remove typo (hopefully really a typo ;p)
-
- * any.pm: be a bit more polite
-
-2002/05/27 Franēois Pons <fpons@mandrakesoft.com>
-
- * install2.pm: make sure patch is always read after defcfg to take
- precedance.
-
-2002/05/27 Pixel <pixel@mandrakesoft.com>
-
- * modules.pm: have usb-interface1 for ehci-hcd
-
-2002/05/24 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * Xconfigurator.pm: dams fixes a bug in the install :-)
-
-2002/05/21 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/rpmsrate: xtraceroute needs 3d
-
-2002/05/15 alus
-
- * share/po/Changelog: info about polish translation
-
-2002/05/14 alus
-
- * share/po/pl.po: polish finished
- updated polish translation
- polish updated to near finished. Fuzzy removed and checked
-
-2002/05/14 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * docs/HACKING: libncurses* also for the sucking neuneux
-
-2002/05/14 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/pl.po, share/po/id.po: updated po file
-
-2002/05/13 alus
-
- * share/po/pl.po: mostly finished polish translation.!!
-
-2002/05/13 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * docs/HACKING: libbzip2* and more explanations about failing compilation
-
- * mdk-stage1/Makefile, mdk-stage1/probing.c: adapt to gcc-3.1
-
-2002/05/02 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * lang.pm: Put back xcin as default XIM for zh_TW.Big5
-
- * share/po/eu.po: small corrections
-
-2002/04/29 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/wa.po, share/po/hu.po: updated po files
-
-2002/04/26 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: fixed some machine with two present i830 CGC but only
- one in reality.
-
- * detect_devices.pm: updated usbMice to take care of device declared as
- Mouse:USB in usbtable (was
- not the case !)
-
-2002/04/25 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/DrakX.pot, share/po/es.po, share/po/fr.po, share/po/bg.po,
- share/po/ga.po, share/po/sr.po, share/po/de.po, share/po/et.po,
- share/po/tr.po, share/po/eu.po, share/po/az.po, share/po/ru.po,
- share/po/pt_BR.po, share/po/hr.po, share/po/ko.po, share/po/cy.po,
- share/po/nl.po, share/po/ja.po, share/po/wa.po, share/po/sv.po,
- share/po/is.po, share/po/hu.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/no.po, share/po/fi.po, share/po/th.po,
- share/po/el.po, share/po/sk.po, share/po/lt.po, share/po/ar.po,
- share/po/sl.po, share/po/mt.po, share/po/vi.po, share/po/br.po,
- share/po/ca.po, share/po/gl.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/ro.po, share/po/bs.po, share/po/da.po,
- share/po/zh_TW.po, share/po/cs.po, share/po/af.po: updated pot file
-
-2002/04/23 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * bootlook.pm: a few english fixes
-
- * any.pm: fixes
- english fixes from v meyer
- a few english fixes thx to vincent meyer
-
-2002/04/19 alus
-
- * share/po/pl.po: It's only about 100 entries to the end
-
-2002/04/19 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/nl.po: updated Dutch file
-
- * share/po/hu.po: updated po file
-
-2002/04/18 alus
-
- * share/po/pl.po: 3 more long messages
- one entry
- stil working....
-
-2002/04/17 alus
-
- * share/po/pl.po: Mostly finished polish translation
- translations, fixes etc...
-
-2002/04/16 alus
-
- * share/po/pl.po: still working
- Few fixes
- Updated translation. Many strings is not yet translated...
-
-2002/04/16 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/rpmsrate: only main version of automake
-
-2002/04/16 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/nl.po: updated po file
-
-2002/04/16 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm: handle "Cancel" on NIS / LDAP server
- dialog box
-
-2002/04/15 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/rpmsrate: ipchains now conflicts with iptables
-
-2002/04/15 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/eu.po: Another small fix
- Small corrections
-
-2002/04/13 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/ro.po: merged with drakfloppy strings
-
-2002/04/11 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/mt.po: updated Maltese file
-
-2002/04/10 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/eu.po: small typo correction
-
-2002/04/10 warly
-
- * share/rpmsrate: autofs -> 2
-
-2002/04/09 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * standalone/drakgw: time to remove ipchains/2.2 stuff since now ipchains
- and iptables
- packages conflict
-
-2002/04/09 Pixel <pixel@mandrakesoft.com>
-
- * partition_table_dos.pm, partition_table_gpt.pm,
- partition_table_empty.pm, partition_table_bsd.pm,
- partition_table_sun.pm, partition_table_mac.pm: nicer debug "bag magic"
- error message (thanks to Brian J. Murrell)
-
-2002/04/08 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/po/fr.po: fixed a bunch of things
-
- * install_steps_interactive.pm, install_interactive.pm, network/isdn.pm,
- partition_table.pm, install_steps_gtk.pm, Xconfigurator.pm,
- printerdrake.pm, network/tools.pm, diskdrake/interactive.pm,
- network/netconnect.pm, fsedit.pm, diskdrake/removable_gtk.pm,
- network/network.pm, printer.pm, interactive_stdio.pm: fix a few english
- strings
-
-2002/04/08 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/DrakX.pot, share/po/es.po, share/po/fr.po, share/po/bg.po,
- share/po/ga.po, share/po/sr.po, share/po/de.po, share/po/et.po,
- share/po/tr.po, share/po/eu.po, share/po/az.po, share/po/ru.po,
- share/po/pt_BR.po, share/po/hr.po, share/po/ko.po, share/po/cy.po,
- share/po/nl.po, share/po/ja.po, share/po/wa.po, share/po/sv.po,
- share/po/is.po, share/po/hu.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/no.po, share/po/fi.po, share/po/th.po,
- share/po/el.po, share/po/sk.po, share/po/lt.po, share/po/ar.po,
- share/po/sl.po, share/po/mt.po, share/po/vi.po, share/po/br.po,
- share/po/ca.po, share/po/gl.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/ro.po, share/po/bs.po, share/po/da.po,
- share/po/zh_TW.po, share/po/cs.po, share/po/af.po: merged with
- drakfloppy strings
-
-2002/04/07 Yves Duret <yduret@mandrakesoft.com>
-
- * standalone/drakfloppy: moving from his own rpm to drakxtools
-
- * Makefile.config: add drakfloppy to STANDALONEPMS_
-
-2002/04/04 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * c/Makefile.PL: rpmlib 4.0.4 now also needs libpopt
-
-2002/04/04 sdupont
-
- * standalone/drakbackup: please yduret, do not commit these changes on cvs
- before to test it.
- you can say "bugs fixes" only if you have corrected some errors but not
- if you create it!
- the backup on cd was disabled because the backend is not available for
- moment.
-
- * standalone/drakfont: remove uninteresting yduret changes,
- would it be possible to know what are your "bugs fixies" ?
- to yduret: I'm the creator of this program so please do not remove my
- changes.
-
-2002/04/04 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * c/Makefile.PL: rpmlib 4.0.4 now also needs libpopt
-
-2002/04/04 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * c/Makefile.PL: rpmlib 4.0.4 now also needs libpopt
-
-2002/04/03 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm: setting /etc/sysconfig/msec for chkconfig which
- doesn't use $ENV{SECURE_LEVEL} anymore
-
-2002/04/03 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm: setting /etc/sysconfig/msec for chkconfig which
- doesn't use $ENV{SECURE_LEVEL} anymore
-
-2002/04/02 Pixel <pixel@mandrakesoft.com>
-
- * bootloader.pm: do not have "root=" with no root (needed for memtest)
- (thanks to Borsenkow Andrej)
-
- * share/rpmsrate: add tmpwatch (since it is not mandatory any more)
-
-2002/03/30 Yves Duret <yduret@mandrakesoft.com>
-
- * standalone/drakbackup, standalone/drakfont: bugs fixes, code clean up,
- more mdkish..
-
-2002/03/26 Till Kamppeter <till@mandrakesoft.com>
-
- * printer.pm, printerdrake.pm: Fixed several problems related to HP
- multi-function devices:
- - Parallel multi-function devices worked only on the first (onboard)
- parallel
- port.
- - HP LaserJet 2200 needs HPOJ for printing via USB.
- - For the HP OfficeJet D series the scanning instructions were not
- shown.
- - HPOJ does not work with HP PhotoSmart 10xx, 11xx, and 12xx.
-
-2002/03/22 dam's <damien@mandrakesoft.com>
-
- * my_gtk.pm: cleaned gtkpowerpack
-
-2002/03/21 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * install_any.pm: use /root rather than /tmp for some temp files (security
- suxx)
-
-2002/03/20 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * rescue/list: rpm 4.0.4
-
- * mdk-stage1/network.c: don't save DHCP_HOSTNAME if the value is void
-
-2002/03/20 sdupont
-
- * standalone/drakfont: fixing problems
- exchanging: ttmkfdir by /usr/X11R6/bin/mkttfdir
- which generate correct fonts.dir
-
- * standalone/drakbackup: remove backup on cd
-
-2002/03/20 Thierry Vignaud <tvignaud@mandrakesoft.com
-
- * standalone/drakxtv: use log for what is not related to explanations
-
-2002/03/19 Franēois Pons <fpons@mandrakesoft.com>
-
- * tools/updatehdlist: take care of commercial medium (not syncable).
-
-2002/03/19 Thierry Vignaud <tvignaud@mandrakesoft.com
-
- * standalone/drakxtv:
- - default tv norm is pal rather than ntsc (because of alphabetical
- sort) since it's the most used tv norm
- - figure out tv norm & country (aka frequency table) from locales
-
- - add a hash based on lang in order to do this
-
- - add --no-guess if one doesn't want drakxtv to automagically guess tv
- norm and geographic area through locales (lang.pm)
-
- - log with standalone::explanations:
-
- - guessed values from locales: language, tv norm and country
-
- - runned command to scan for tv channels
-
- - ~/.xawtv creation
-
-
- - s/bcast/broadcast/ in displayed messages
-
- - add -h and --help support
-
-2002/03/18 dam's <damien@mandrakesoft.com>
-
- * install_gtk.pm, mouse.pm, my_gtk.pm: corrected create_xpm API
-
-2002/03/18 Franēois Pons <fpons@mandrakesoft.com>
-
- * tools/oem-prepare: fixed to support rpm filename incoherent to standard
- naming for commercial
- packages (commercial are *really* shit (almost, for the hope) all the
- time ?)
-
-2002/03/16 dam's <damien@mandrakesoft.com>
-
- * network/ethernet.pm: we now consider dhcp provide GATEWAY and internet
- connection.
-
-2002/03/16 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/ko.po, share/po/ar.po: updated po file
-
-2002/03/16 Pixel <pixel@mandrakesoft.com>
-
- * network/ethernet.pm: small cleanup on untested code (need testing:)
-
-2002/03/16 dam's <damien@mandrakesoft.com>
-
- * network/ethernet.pm: we now consider dhcp provide GATEWAY and internet
- connection.
-
-2002/03/16 Pixel <pixel@mandrakesoft.com>
-
- * network/ethernet.pm: small cleanup on untested code (need testing:)
-
-2002/03/15 fabman
-
- * share/po/es.po: updated bad lilo/grub/yaboot translation
- updated spanish translations
-
-2002/03/15 Franēois Pons <fpons@mandrakesoft.com>
-
- * bootloader.pm: force mkinitrd *really* for bootsplash.
- force initrd regeneration for oem on some case (maybe the cause of
- bootsplash
- perturbation, as maintainer don't even known why it is running correctly
- :-)
-
- * pkgs.pm: do not try to get synthesis if hdlist is available as an handle
- on file (typical
- for updates).
-
- * share/rpmsrate: remove doublon on NVIDIA_nforce.
- update to 6mdk for NVIDIA_nforce*
-
-2002/03/15 Pixel <pixel@mandrakesoft.com>
-
- * share/po/fr.po: yet again add some dropped entities from drakx-help.xml
- add the dropped &linux-mandrake; &mandrake-linux; and a few &os-linux;
-
- * install_steps_interactive.pm:
- - remove obsolete code
- - the result is to use directly $availableC instead $size2install
- which was min($availableC, $max_size)
-
-2002/03/15 dam's <damien@mandrakesoft.com>
-
- * share/po/ja.po: reverted ' \n' from pablo because I managed to correct
- the way we wrap for the advertising
-
- * install_steps_gtk.pm: submitting widget instead of style (style/font
- initialization bug from gtk
-
- * my_gtk.pm: corrected get_text_coord : widget instead of style, and
- handling of ugly language (/ja|zh/)
-
-2002/03/15 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: do not try to get synthesis if hdlist is available as an handle
- on file (typical
- for updates).
-
- * rescue/tree/etc/oem: update lang according to lang.pm of 8.2 (remove
- @euro appended for 8.1).
-
-2002/03/15 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * keyboard.pm: added xx_YY -> keyboard lines in addition of xx -> keyboard
- ones
-
-2002/03/15 Pixel <pixel@mandrakesoft.com>
-
- * share/po/fr.po: yet again add some dropped entities from drakx-help.xml
- add the dropped &linux-mandrake; &mandrake-linux; and a few &os-linux;
- s/Linux Mandrake/Mandrake Linux/ (from the drakx-help.xml not merged)
-
- * keyboard.pm (unpack_keyboards): return undef on error
-
-2002/03/15 dam's <damien@mandrakesoft.com>
-
- * share/po/ja.po: reverted ' \n' from pablo because I managed to correct
- the way we wrap for the advertising
-
- * install_steps_gtk.pm: submitting widget instead of style (style/font
- initialization bug from gtk
-
- * my_gtk.pm: corrected get_text_coord : widget instead of style, and
- handling of ugly language (/ja|zh/)
-
-2002/03/15 Franēois Pons <fpons@mandrakesoft.com>
-
- * rescue/tree/etc/oem: update lang according to lang.pm of 8.2 (remove
- @euro appended for 8.1).
-
-2002/03/15 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * keyboard.pm: added xx_YY -> keyboard lines in addition of xx -> keyboard
- ones
-
-2002/03/15 Pixel <pixel@mandrakesoft.com>
-
- * share/po/fr.po: s/Linux Mandrake/Mandrake Linux/ (from the
- drakx-help.xml not merged)
-
- * keyboard.pm (unpack_keyboards): return undef on error
-
-2002/03/15 dam's <damien@mandrakesoft.com>
-
- * share/po/ja.po: reverted ' \n' from pablo because I managed to correct
- the way we wrap for the advertising
-
- * install_steps_gtk.pm: submitting widget instead of style (style/font
- initialization bug from gtk
-
- * my_gtk.pm: corrected get_text_coord : widget instead of style, and
- handling of ugly language (/ja|zh/)
-
-2002/03/15 Franēois Pons <fpons@mandrakesoft.com>
-
- * rescue/tree/etc/oem: update lang according to lang.pm of 8.2 (remove
- @euro appended for 8.1).
-
-2002/03/15 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * keyboard.pm: added xx_YY -> keyboard lines in addition of xx -> keyboard
- ones
-
-2002/03/15 Pixel <pixel@mandrakesoft.com>
-
- * share/po/fr.po: s/Linux Mandrake/Mandrake Linux/ (from the
- drakx-help.xml not merged)
-
- * keyboard.pm (unpack_keyboards): return undef on error
-
-2002/03/14 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/ja.po: updated po file
-
-2002/03/14 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * standalone/drakxtv: english
-
-2002/03/14 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/hr.po, share/po/da.po, share/po/no.po: updated po files
-
- * share/po/eu.po: updated po file
-
- * lang.pm: changed LANGUAGE for basque
-
- * share/po/ja.po: added \n in advertising
-
-2002/03/14 Pixel <pixel@mandrakesoft.com>
-
- * share/rpmsrate: CHARSET"iso-8859-1" and CHARSET"iso-8859-15" is no good
- for english which has CHARSET"C", adding it
-
- * share/rpmsrate.server: obsolete
-
-2002/03/14 Thierry Vignaud <tvignaud@mandrakesoft.com
-
- * standalone/drakxtv:
- - add SECAM to france description to ease user comprehension
- - remove unused variables
- - revert gc & dam's (also known as the usual suckers) garbage
- who'ven't the hardware to test:
-
- - explain in source why we don't try to install xawtv (see below)
-
- - just display a message if xawtv isn't installed
- since drakx should have installed it
-
- - let it be runned as root again (how many times i'm
- supposed to restore this behaviour)
-
- - retest with a tv card
-
- - use %ENV rather than relying on shell ~ expansion
-
- - if tv card wasn't detected, ask the user to spam us
-
- - factorize $in->exit() out of scan4tvchannels()
-
- - add to TODO list the possibility to install xawtv if needed
-
- - check scantv return value and display an error message
-
- - also if the wrapper was runned on console, display a nice
- message saying one can now run xawtv under X11
-
-2002/03/14 warly
-
- * share/rpmsrate: add commercial apps
-
-2002/03/14 Yves Duret <yduret@mandrakesoft.com>
-
- * standalone/logdrake: fix some bug
- fix * bug in field matching/ not matching
-
-2002/03/13 dam's <damien@mandrakesoft.com>
-
- * share/logo-mandrake.png: new gfx
-
-2002/03/13 Franēois Pons <fpons@mandrakesoft.com>
-
- * tools/oem-prepare: sync with oem (removed mach32 server).
- sync with oem.
- remove bzflag.
- synced with oem script.
-
- * rescue/tree/etc/oem: remove Mach32 XF3.3.6 server too.
- remove Mach8 and Mono driver for oem only.
- remove bzflag.
- fixed closure selection on sub groups (like 3D),
- moved some big package out of oem,
- minor fixes.
-
-2002/03/13 dam's <damien@mandrakesoft.com>
-
- * share/logo-mandrake.png: new gfx
-
-2002/03/13 Franēois Pons <fpons@mandrakesoft.com>
-
- * tools/oem-prepare: sync with oem (removed mach32 server).
- sync with oem.
- remove bzflag.
- synced with oem script.
-
- * rescue/tree/etc/oem: remove Mach32 XF3.3.6 server too.
- remove Mach8 and Mono driver for oem only.
- remove bzflag.
- fixed closure selection on sub groups (like 3D),
- moved some big package out of oem,
- minor fixes.
-
-2002/03/13 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/cs.po, share/po/eu.po: updated po files
-
-2002/03/13 warly
-
- * share/rpmsrate: add aspell-fr and en for gabber require
-
-2002/03/13 Franēois Pons <fpons@mandrakesoft.com>
-
- * rescue/tree/etc/oem: fixed closure selection on sub groups (like 3D),
- moved some big package out of oem,
- minor fixes.
-
- * tools/oem-prepare: synced with oem script.
-
-2002/03/13 gbeauchesne
-
- * share/rpmsrate:
- - Add openoffice with weight = 2
-
-2002/03/13 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/sv.po, share/po/vi.po, share/po/cs.po, share/po/hu.po,
- share/po/eu.po: updated po files
-
- * lang.pm: small console font changes
- set default console fotns for latin1/0 to lat1-16 and lat0-16;
- the font lat0-sun16 is missing some chars of iso-8859-1/15 !
-
-2002/03/13 Pixel <pixel@mandrakesoft.com>
-
- * pkgs.pm: add gcc and gcc-c++ in @preferred
-
-2002/03/13 warly
-
- * share/rpmsrate: add aspell-fr and en for gabber require
-
-2002/03/12 dam's <damien@mandrakesoft.com>
-
- * network/network.pm: onboot option only in expert mode
- corrected domainname bug; added onboot option
-
-2002/03/12 dam's <damien@mandrakesoft.com>
-
- * standalone/drakbackup, standalone/drakfont: minor bug correction
-
- * standalone/net_monitor: greater timeout
-
- * network/tools.pm, network/netconnect.pm: changed timeout for testing
- internet connection
-
-2002/03/12 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: remove synthesis if not found (filesize is 0)
-
- * Xconfigurator.pm: avoid Utah GLX only if > 800MB, not if <= 800MB (!)
-
- * install_any.pm: added fix to support update hdlist renaming (ie hdlist
- of update are always hdlist.cz).
- remove old synthesis file, to make sure gzip can build a new one.
-
- * share/rpmsrate: added nforce support (hack by adding kernel version
- inside)
-
-2002/03/12 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/da.po: updated Danish file
-
- * share/po/ga.po: fixed email address
-
- * share/po/zh_TW.po: updated po file
-
-2002/03/12 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm, bootloader.pm: don't have "quiet" boot in the server
- meta_class
-
- * pkgs.pm: "fam" is not a naughtyServers
- remove the old "boa" comment
- adapt naughtyServers for 8.2
-
-2002/03/11 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/po/fr.po: a few missing translations
-
-2002/03/11 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/pt.po, share/po/ga.po, share/po/de.po, share/po/az.po,
- share/po/pt_BR.po, share/po/nl.po, share/po/ja.po, share/po/id.po,
- share/po/ar.po, share/po/mt.po, share/po/eo.po, share/po/da.po: updated
- po files
-
- * share/po/eu.po, share/po/it.po: updated po files
- merged with new strings from manuals
-
- * share/po/DrakX.pot, share/po/fr.po: merged with new strings from manuals
-
- * share/po/be.po, share/po/bg.po, share/po/et.po, share/po/hr.po,
- share/po/ko.po, share/po/is.po, share/po/pl.po, share/po/no.po,
- share/po/fi.po, share/po/el.po, share/po/lt.po, share/po/br.po,
- share/po/ca.po, share/po/gl.po, share/po/lv.po, share/po/bs.po,
- share/po/cs.po, share/po/af.po: updated po files (finished merging with
- manual strings)
- updated po files
-
- * share/po/hu.po: updated po files
- updated po files
-
- * share/po/cy.po: updated po file
- updated po files
-
- * share/po/es.po: updated Spanish
-
- * share/po/sp.po, share/po/zh_CN.po, share/po/sr.po, share/po/tr.po,
- share/po/ru.po, share/po/wa.po, share/po/sv.po, share/po/th.po,
- share/po/sk.po, share/po/sl.po, share/po/vi.po, share/po/uk.po,
- share/po/ro.po, share/po/zh_TW.po: updated po files (finished merging
- with manual strings)
-
-2002/03/11 dam's <damien@mandrakesoft.com>
-
- * Makefile.config: added drakproxy
-
- * standalone/drakxtv: added embedded mode
-
-2002/03/11 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps_gtk.pm: for updates, make tree as flat instead in order to
- see all packages.
-
-2002/03/11 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/rpmsrate: webmin: 3
-
- * standalone/drakxtv:
- - install xawtv when necessary instead of
- telling people to use urpmi (titi sucks)
- - prints out a message when no tv card
- has been detected
-
- * share/po/fr.po: small ortograf
-
-2002/03/11 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/fr.po, share/po/it.po, share/po/eu.po: merged with new strings
- from manuals
-
- * share/po/DrakX.pot: merged with new strings from manuals
- updated GErman file
-
- * share/po/de.po: updated GErman file
-
- * share/po/es.po: updated Spanish
-
-2002/03/11 Pixel <pixel@mandrakesoft.com>
-
- * mouse.pm (fullname2mouse): workaround when "1 Button" is not found
-
- * install_steps.pm, install2.pm:
- - default security level now set in miscellaneousBefore
- - default security level is 3 in meta_class server
-
- * install_any.pm:
- - fix the setting of compssUsersChoices in auto_install when it is
- empty
- - set the default compssUsersChoices adapted to the server meta_class
-
- * share/rpmsrate: remove phpgroupware from OFFICE (since it appeas twice,
- the rate is 4, and it requires apache, and ...)
-
- * Makefile: upload the various compssUsers* (esp. compssUsers.server)
-
- * install_steps_gtk.pm:
- - remove the hack for not displaying Utilities in classic meta_class
- - new compssUsers groups for the server meta_class
-
- * share/compssUsers: remove "Utilities" here instead of removing it
- hackily in install_steps_gtk
-
- * share/compssUsers.server: fix the path=Utilities for the Utilities
- section
-
-2002/03/11 Till Kamppeter <till@mandrakesoft.com>
-
- * printerdrake.pm: Small text fix.
- Security fix: Give a warning that SMB passwords can easily be revealed
- by normal users when printing on a Windows-hosted printer is set up.
-
- * detect_devices.pm: Reverted parts of the last change, they broke in
- non-DevFS environments (e. g. during installation).
-
-2002/03/11 warly
-
- * share/rpmsrate: add bwbserver_linux in rpmsate for BeeWeb server
-
- * share/compssUsers.server: remove ICEWM choice
-
-2002/03/11 Yves Duret <yduret@mandrakesoft.com>
-
- * tools/cvslog2changelog.pl: added yduret entry in user.
-
-2002/03/11 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: add Rage Mobility as bad card for XF4 (was already bad
- card for XF3) (gégé report).
-
-2002/03/11 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * help.pm: updated help file
-
- * share/po/de.po, share/po/DrakX.pot: updated GErman file
-
-2002/03/11 Pixel <pixel@mandrakesoft.com>
-
- * diskdrake/interactive.pm (Mount_point): when files exist in the chosen
- mount point, propose migration
-
- * install_steps_interactive.pm: search /commercial/i instead of
- /Application/ before showing the commercial license
-
- * standalone/drakboot, bootloader.pm: fix Stew sucks
-
- * install2.pm, install_steps.pm:
- - default security level now set in miscellaneousBefore
- - default security level is 3 in meta_class server
-
- * install_steps_gtk.pm:
- - remove the hack for not displaying Utilities in classic meta_class
- - new compssUsers groups for the server meta_class
- search /commercial/i instead of /Application/ before showing the
- commercial license
-
- * install_any.pm:
- - fix the setting of compssUsersChoices in auto_install when it is
- empty
- - set the default compssUsersChoices adapted to the server meta_class
-
- * Makefile: upload the various compssUsers* (esp. compssUsers.server)
-
- * share/compssUsers: remove "Utilities" here instead of removing it
- hackily in install_steps_gtk
-
- * share/compssUsers.server: fix the path=Utilities for the Utilities
- section
-
-2002/03/11 yduret
-
- * standalone/scannerdrake: re-re-re-re-re-re-uncomment the pkgs check
- line.
-
-2002/03/10 chipaux
-
- * share/po/fr.po: Corrected few typo mistakes.
-
-2002/03/10 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * install_steps.pm: gcize damienization
-
- * share/rpmsrate: put userdrake together with drakconf so that
- userdrake is not missing (till)
-
-2002/03/10 siegel
-
- * share/po/help_xml2pm.pl: added tag filename
-
- * any.pm: added missing i18n _()
-
- * share/po/de.po: update
- and still fixes ...
- updates
- update
-
-2002/03/10 Till Kamppeter <till@mandrakesoft.com>
-
- * printer.pm: Protect the Star Office/OpenOffice.org configuration against
- manual changing of the "update-alternatives" assignment of the "lpr"
- command.
-
- * detect_devices.pm: Made USB printer auto-detection more stable and
- reliable.
-
-2002/03/10 yduret
-
- * standalone/scannerdrake: added ASK DEVICE support
-
- * scanner.pm: added ASK support for more interactiveness during
- configuration
-
-2002/03/09 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/dhcp.c: comply better to ClientID stuff
-
-2002/03/09 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/sv.po: updated po file
-
-2002/03/09 yduret
-
- * standalone/scannerdrake: added sum up at the end
- uncomment line that checks if sane rpm is installed or not (thx gc).
- i sux,
-
-2002/03/08 dam's <damien@mandrakesoft.com>
-
- * standalone/drakproxy: drakproxy rewritten
- working drakproxy
-
- * install_steps.pm: corrected network up/down when network install
-
- * standalone/drakfont: ergonomy changed to fit in mcc
- corrected network up/down when network install
-
- * network/network.pm: proxy settings corrected
-
-2002/03/08 fabman
-
- * share/po/es.po: updated spanish translation
-
-2002/03/08 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_any.pm: fixed allowNVIDIA_rpms to take care of new kernel naming
- conventions.
-
- * standalone/XFdrake: fixed NVIDIA support to use newer kernel naming
- conventions.
-
- * Xconfigurator.pm: fixed possible additional XFree packages not installed
- if server is already
- installed.
-
-2002/03/08 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/po/fr.po: missing translations + a few changes
-
- * mdk-stage1/probing.c: have 4 seconds of delay for usb stuff
- to show up rather than seconds
-
-2002/03/08 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/cs.po, share/po/it.po: updated po files
-
- * share/po/es.po: corrected typo
-
- * share/po/da.po: updated Danish file
-
- * lang.pm, share/locales-skeleton.tar.bz2: Added symlinks in
- locales-skeleton so non primary chinese encodings
- can work
-
- * share/po/ar.po: updated po file
-
- * share/po/cy.po: removed the "translation" of licence, it was random
- text.
-
-2002/03/07 dam's <damien@mandrakesoft.com>
-
- * share/po/fr.po, modparm.pm: corrected
-
-2002/03/07 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/newt-frontend.c: english fix thx to till & phil
-
-2002/03/07 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/fr.po: updated po file
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/DrakX.pot, share/po/es.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/cy.po, share/po/nl.po,
- share/po/ja.po, share/po/wa.po, share/po/sv.po, share/po/is.po,
- share/po/hu.po, share/po/it.po, share/po/id.po, share/po/pl.po,
- share/po/fi.po, share/po/no.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/ar.po, share/po/sl.po,
- share/po/vi.po, share/po/br.po, share/po/ca.po, share/po/gl.po,
- share/po/lv.po, share/po/uk.po, share/po/eo.po, share/po/ro.po,
- share/po/bs.po, share/po/da.po, share/po/zh_TW.po, share/po/cs.po,
- share/po/af.po: updated pot file
-
-2002/03/07 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm: removing quota choices for reiserfs
-
-2002/03/07 dam's <damien@mandrakesoft.com>
-
- * standalone/net_monitor: make gc happy
-
- * modparm.pm, share/po/fr.po: corrected
-
- * standalone/draknet: corrected network/internet restart when already
- connected
-
- * network/netconnect.pm: corrected bad previous behaviour
-
- * standalone/drakfont: corrected bad system command
-
- * share/advertising/02-internet_icon.png,
- share/advertising/05-contcenter_icon.png,
- share/advertising/10-MDKexpert_icon.png, share/advertising/06-user.pl,
- share/advertising/08-games.pl, share/advertising/02-internet.pl,
- share/advertising/03-graphic_icon.png, share/advertising/07-server.pl,
- share/advertising/12-MDKstore_icon.png,
- share/advertising/06-user_icon.png,
- share/advertising/07-server_icon.png, share/advertising/09-MDKcampus.pl,
- share/advertising/10-MDKexpert.pl, share/advertising/05-contcenter.pl,
- share/advertising/04-develop.pl,
- share/advertising/09-MDKcampus_icon.png,
- share/advertising/12-MDKstore.pl, share/advertising/03-graphic.pl,
- share/advertising/04-develop_icon.png,
- share/advertising/08-games_icon.png: changed icon sizes
-
-2002/03/07 fcrozat
-
- * share/rpmsrate: Evolution is not dependent on GNOME selection (not
- require gnome-core)
-
-2002/03/07 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps.pm: avoid destroying some files in /etc.
-
- * install_steps_interactive.pm: fixed package tree with a given medium.
-
- * any.pm: fix autologin sometimes activated without user intervention.
-
-2002/03/07 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * install_any.pm: generate_automatic_stage1_params: also save
- the interface number in case the machine will
- have several interfaces; clean code a bit
-
- * mdk-stage1/network.c: better error msg regarding pcmcia net
- adapters supported either with pcmcia.img
- or network.img (amaury sucks)
-
- * install_steps_auto_install.pm: in replay mode, since
- $o->{interactiveSteps}
- exists, we can't simply ||= @graphical_steps,
- we need to push to ensure that the
- @graphical_steps is always honoured
-
- * standalone/drakgw:
- - call net_monitor to disable internet
- connection before network-restart
- - user return value when status'ing the
- initscripts rather than grepping their
- text output
-
- * modules.pm: try to avoid segfaulting probeall stuff
- add ns83820 gigabit (goes to other.img)
-
- * rescue/rescue-doc: english fixes thx to phil
-
-2002/03/07 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * standalone/drakfont: Added a missing _( ) around a text
-
- * share/po/vi.po, share/po/cy.po, share/po/hu.po, share/po/id.po: updated
- po files
-
- * share/po/ko.po, share/po/ca.po, share/po/tr.po: commented out the
- translations using argument switching (not yet handled by DrakX)
-
- * bootlook.pm, standalone/drakboot: i18n changes
-
- * keyboard.pm: corrected the locale->keyboard list building
- make keyboard selection choose first the 5 first chars of lang;
- then the 2 first chars;
-
- * share/po/eu.po: commented out the translations using argument switching
- (not yet handled by DrakX)
- updated po file
-
-2002/03/07 Pixel <pixel@mandrakesoft.com>
-
- * any.pm: fix fileshare custom config
- fix *some* stew errors
-
- * bootloader.pm: "--timeout=" must be after terminal
- add --timeout=... for "terminal serial ..." line in grub's menu.lst
- fix *some* stew errors
-
- * install_any.pm: don't have the adsl & modem passwords in report.bug
-
- * detect_devices.pm (zips__faking_ide_scsi): fix returned value in
- standalone
- (getSCSI): don't call isFloppyOrHD for ZIPs (lowers the number of kernel
- error when there is no floppy)
-
- * fs.pm: removing quota choices for reiserfs
-
-2002/03/07 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * any.pm, bootlook.pm, standalone/drakboot, bootloader.pm: drakboot
- functionality for PPC
-
-2002/03/07 Till Kamppeter <till@mandrakesoft.com>
-
- * printerdrake.pm: Fixed bug of network not being started by Printerdrake
- during installation.
-
-2002/03/07 warly
-
- * share/compssUsers.server, share/compssUsers, share/rpmsrate: update
- server, merge with normal rpmsrate
-
-2002/03/06 dam's <damien@mandrakesoft.com>
-
- * standalone/drakautoinst: corrected HASH and ARRAY label
-
-2002/03/06 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/ja.po, share/po/no.po, share/po/cy.po: updated po file
-
-2002/03/06 Pixel <pixel@mandrakesoft.com>
-
- * standalone/fileshareset (nfs_exports::update_server): ensure portmap is
- running
-
-2002/03/06 dam's <damien@mandrakesoft.com>
-
- * my_gtk.pm: corrected font stuff
-
- * standalone/drakautoinst: corrected HASH and ARRAY label
-
-2002/03/06 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: no 3D with Utah GLX (XF 3.3) if more than 800 MB.
-
- * pkgs.pm: fixed error when using multiple removable media and user
- aborted installation
- (for some other error) and hdlists cannot be retrieved.
- add save of synthesis too when partitions are reformated, so that urpmi
- is happy after.
- fixed when hdlist gives no new package (new name) but only obsoleted
- package or
- updated package, ie security updates may appreciate.
-
- * install_any.pm: update for newer pkgs module (fix for abort during
- installation).
-
- * rescue/tree/etc/oem: allow oem script to be executable from standard cd
- set (powerpack or other).
-
-2002/03/06 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/ja.po: updated po file
- updated pot file
-
- * share/po/fr.po, share/po/cy.po, share/po/id.po, share/po/zh_TW.po:
- updated pot file
- updated some po files
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/DrakX.pot, share/po/es.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/nl.po, share/po/wa.po,
- share/po/sv.po, share/po/is.po, share/po/hu.po, share/po/it.po,
- share/po/pl.po, share/po/fi.po, share/po/no.po, share/po/th.po,
- share/po/el.po, share/po/sk.po, share/po/lt.po, share/po/ar.po,
- share/po/sl.po, share/po/vi.po, share/po/br.po, share/po/ca.po,
- share/po/gl.po, share/po/lv.po, share/po/uk.po, share/po/eo.po,
- share/po/ro.po, share/po/bs.po, share/po/da.po, share/po/cs.po,
- share/po/af.po: updated pot file
-
-2002/03/06 Pixel <pixel@mandrakesoft.com>
-
- * pkgs.pm: add @preferred libxpm4
-
- * lang.pm: fix typo in %xim (for chineese)
- - create the kde share/config's directory, so that kde config files
- are created in any case
- - in user_only localedrake, ensure the /etc/sysconfig/i18n is taken
- into account when ~/.i18n doesn't exist (thanks to F.Crozat)
-
- * install_any.pm: ensure the fstab is kept on upgrade
- (g_auto_install): use "interactiveSteps" field instead of pushing in
- @install_steps_auto_install::graphical_steps
-
- * standalone/localedrake: when called by kcontrol with --apply, don't
- modify kde config files, kcontrol takes care of it more nicely
-
- * diskdrake/interactive.pm: translate the actions
- choose to activate crypto. type password. unselect encryption. Select
- encryption again, you were not asked for password. Fixed
- use formatError
-
- * bootloader.pm (add_append): don't add to entries of type 'other'
-
- * devices.pm (find_free_loop): fix
-
- * install_steps_interactive.pm, install_steps.pm: ensure the fstab is kept
- on upgrade
-
- * fsedit.pm: do not allow encrypted /var
-
-2002/03/06 Thierry Vignaud <tvignaud@mandrakesoft.com
-
- * standalone/drakxtv: print an error message if xawtv isn't installed
- fix conflict between i18n and complete signal handler (ie return key
- and not value)
-
-2002/03/06 warly
-
- * share/rpmsrate: remove abiword
-
-2002/03/05 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/pcmcia_/probe.c: an old sucking PCI card needs oldskool
- i82365 :-((, ugly patch
-
-2002/03/05 warly
-
- * share/rpmsrate: add Fred Bastok modif
- remove too many duplicate in i18n packages that are now automatically
- added
-
-2002/03/05 Chmouel Boudjnah <chmouel@mandrakesoft.com>
-
- * modules.pm: Add USB2 controller
-
-2002/03/05 dam's <damien@mandrakesoft.com>
-
- * network/netconnect.pm: corrected expert option in install mode
- added expert mode
-
- * my_gtk.pm: greater interstice
-
- * modparm.pm: cosmetic
- gzipped modules handled
-
-2002/03/05 fcrozat
-
- * share/rpmsrate: Install xlockmore when installing gnome, since
- xscreensaver can't lock
- root desktop..
-
-2002/03/05 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: deactivate v4l module if DRI is enabled and r128
- driver used.
-
- * install_steps.pm: added auto restore of some files (/etc/profile) needed
- by upgrade (from .rpmnew).
- added log for hasNetwork (so that we can understand why installUpdates
- do nothing).
-
- * crypto.pm: avoid trying to find hdlist-updates.cz in existing medium
- (instead of ftp one).
-
- * fs.pm: fixed hd install to allow using specific directory.
-
- * install_any.pm: fix duplicate synthesis.hdlist.xxx file present in
- /var/lib/urpmi, and
- furthermore uncompressed :-(
- fixed possible bug when generating synthesis file for urpmi
- installation.
-
-2002/03/05 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/dhcp.c, mdk-stage1/dhcp.h, mdk-stage1/network.c: save
- dhcp_hostname for stage2
-
- * install_any.pm: fix bug in generating automatic stage1
- params for http
-
- * modules.pm: aironet core sucking thing
-
-2002/03/05 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/sr.po, share/po/sp.po: updated po files
-
-2002/03/05 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm: if mem=nopentium is given on cmdline, have it after
- install
-
- * modules.pm (extract_modules): created (was done in load_raw)
-
-2002/03/05 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * Xconfigurator.pm: use UseFBDev for r128 - PPC
-
-2002/03/05 Till Kamppeter <till@mandrakesoft.com>
-
- * printerdrake.pm: Added support for HP's newest MF devices: HP OfficeJet
- D series, HP LaserJet 33xx MFP.
- Fixed bug of printerdrake sometimes assuming the user has an MF device
- when he has typed the device file name in the expert mode.
-
-2002/03/05 yduret
-
- * bootlook.pm: fix nobody bug
-
- * standalone/logdrake: mail alert: use eval {} to catch wizcancel
-
-2002/03/04 dam's <damien@mandrakesoft.com>
-
- * modparm.pm: corected weirdness, I suck
-
-2002/03/04 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: fix scroll total to match reality.
- fixed interpretation of size of package when doing an install (this can
- be
- severe, need testing).
-
-2002/03/03 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/cy.po, share/po/id.po: updated po file
-
-2002/03/03 Pixel <pixel@mandrakesoft.com>
-
- * my_gtk.pm (gtkicons_labels_widget): since style is not set either, use
- the widget and ask it the style->font. This *works*
- (gtkicons_labels_widget): pass the style instead of directly passing the
- font
-
-2002/03/03 Till Kamppeter <till@mandrakesoft.com>
-
- * printer.pm: Let Star Office/OpenOffice.org configuration corrcet a bug
- in the PostScript produced by these programs so that the Euro symbol is
- printed correctly.
-
-2002/03/02 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/tr.po: updated po file
-
-2002/03/02 Pixel <pixel@mandrakesoft.com>
-
- * partition_table.pm: better name for windobe new 0x42 special id (their
- own LVM marker)
-
- * detect_devices.pm: better jaz detection (thanks to Randy Welch)
-
-2002/03/02 Till Kamppeter <till@mandrakesoft.com>
-
- * printer.pm, printerdrake.pm: Replaced "Open Office" by "OpenOffice.org".
-
-2002/03/02 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/sv.po, share/po/da.po, share/po/vi.po, share/po/hu.po: updated
- po files
-
- * share/po/tr.po: updated po file
-
-2002/03/02 Pixel <pixel@mandrakesoft.com>
-
- * share/list: add lvreduce & lvextend
-
- * detect_devices.pm: fix ide zip name when there are already some other
- SCSI drives
- ZIPs and Jazz's are not floppies
-
- * diskdrake/interactive.pm (Resize): ensure we call lv_resize from lvm and
- adjust_* for normal partitions, even for destructive resizes
-
-2002/03/02 Till Kamppeter <till@mandrakesoft.com>
-
- * printer.pm, printerdrake.pm: Replaced "Open Office" by "OpenOffice.org".
-
-2002/03/01 Pixel <pixel@mandrakesoft.com>
-
- * share/po/fr.po: fix gc's bulshit
-
-2002/03/01 dam's <damien@mandrakesoft.com>
-
- * services.pm: corrected translation used for shell command
-
- * my_gtk.pm: style & font correction
-
-2002/03/01 Franēois Pons <fpons@mandrakesoft.com>
-
- * share/rpmsrate: updated INSTALL category with NOCOPY new flag added.
-
- * rescue/tree/etc/oem: added ext3 support.
-
- * share/rpmsrate.server: synced with rpmsrate INSTALL category.
-
- * install_any.pm: reset correct setup_postinstall_rpms calling.
- removed some card where 3D is not installed by default:
- Riva128, Radeon 8500 and Rage Mobility card.
- removed staling debug code.
- fixed bad copied package (if one is not found).
-
- * tools/oem-prepare: added handling of newer rpmsrate format with INSTALL
- category.
-
- * pkgs.pm: added pixel comments for handling INSTALL category and NOCOPY
- handling.
- only copy package in INSTALL category with a rate of at least 2.
-
-2002/03/01 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/po/fr.po: a few missing trads
- please translators, keep two newlines when
- there are two newlines in original string,
- it's on purpose
-
-2002/03/01 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/DrakX.pot, share/po/es.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/cy.po, share/po/nl.po,
- share/po/ja.po, share/po/wa.po, share/po/sv.po, share/po/is.po,
- share/po/hu.po, share/po/it.po, share/po/id.po, share/po/pl.po,
- share/po/fi.po, share/po/no.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/ar.po, share/po/sl.po,
- share/po/vi.po, share/po/br.po, share/po/ca.po, share/po/gl.po,
- share/po/lv.po, share/po/uk.po, share/po/eo.po, share/po/ro.po,
- share/po/bs.po, share/po/da.po, share/po/zh_TW.po, share/po/cs.po,
- share/po/af.po: updated po files
-
- * share/po/fr.po: fixed two typos
- small corrections (non breakable spaces)
-
-2002/03/01 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator.pm: handle leaving X for both Xdrakres and XFdrake (=>
- Xdrakres completly obsolete)
-
- * standalone/localedrake: restrict localedrake to installed lang
-
- * lang.pm: restrict localedrake to installed lang
- add 'C' in %charset2kde_font (so that english has normal fonts)
-
- * bootloader.pm:
- - do not indent "disk=... bios=..."
- - $lilo->{first_hd_device} can be used to tell which drive is the
- first one
- for the BIOS. Useful when the bootloader is installed on a partition and
- not
- on the MBR.
- read "disk=/dev/xxx bios=0x8x" and save it
-
- * any.pm: restrict localedrake to installed lang
- ask which hard drive is the booting one when there is mixed kind of
- drives
- (scsi+ide, ide2+ide) and the bootloader is not installed on MBR
-
-2002/03/01 Till Kamppeter <till@mandrakesoft.com>
-
- * printer.pm: Reduced the paths to search for Star/Open Office, on systems
- without these applications installed the search needed a significant
- time.
-
-2002/03/01 Franēois Pons <fpons@mandrakesoft.com>
-
- * share/rpmsrate: updated INSTALL category with NOCOPY new flag added.
-
- * share/rpmsrate.server: synced with rpmsrate INSTALL category.
-
- * install_any.pm: removed staling debug code.
- fixed bad copied package (if one is not found).
-
- * pkgs.pm: added pixel comments for handling INSTALL category and NOCOPY
- handling.
- only copy package in INSTALL category with a rate of at least 2.
-
-2002/03/01 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/dhcp.c: add hostname/domain in dhcp negociation,
- thx to david@eastcott.net
-
- * share/po/fr.po: please translators, keep two newlines when
- there are two newlines in original string,
- it's on purpose
-
-2002/03/01 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/nl.po, share/po/zh_TW.po, share/po/hu.po: updated po files
-
-2002/03/01 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator.pm: handle leaving X for both Xdrakres and XFdrake (=>
- Xdrakres completly obsolete)
-
- * detect_devices.pm: add is_a_recent_computer()
-
- * any.pm: call dcop as user
-
- * lang.pm: add 'C' in %charset2kde_font (so that english has normal fonts)
- switch en_GB, *_CH, da, es@tradicional and wa to iso-8859-15
-
- * bootloader.pm: read "disk=/dev/xxx bios=0x8x" and save it
-
- * mouse.pm: special case for non detected usb interface on a box with no
- mouse.
- we *must* find out if there really is no usb, otherwise the box may
- not be accessible via the keyboard (if the keyboard is USB)
- the only way to know this is to make a full pci probe
-
-2002/02/28 dam's <damien@mandrakesoft.com>
-
- * standalone/drakbackup: bugfixs
- corrected translation for crontab
-
- * modparm.pm: corrected modinfo path for isa modules during install
-
-2002/02/28 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: try to fix if no chosen width has been found.
- removed Radeon 8500 from DRI capable cards.
-
- * rescue/tree/etc/oem: added curl as a bonus for oem install (it will be
- used by urpmi)
- added a2ps as a bonus (it fetch tetex where oem limited disk usage do
- not agree
- a lot).
- fixed bad copy of install packages.
-
- * tools/oem-prepare: added curl as a bonus for oem install (it will be
- used by urpmi)
- added a2ps as a bonus (it fetch tetex where oem limited disk usage do
- not agree
- a lot).
- fixed bad copy of INSTALL packages.
-
-2002/02/28 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * install2.pm: more precise msg when can't access kernel modules because
- we still have many dumb people on cooker asking what's going on
-
- * install_steps_interactive.pm: small english fix
-
-2002/02/28 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/de.po, share/po/no.po: updated po files
- updated pot file
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/DrakX.pot, share/po/es.po, share/po/fr.po, share/po/bg.po,
- share/po/ga.po, share/po/sr.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/cy.po, share/po/nl.po,
- share/po/ja.po, share/po/wa.po, share/po/is.po, share/po/hu.po,
- share/po/it.po, share/po/id.po, share/po/pl.po, share/po/fi.po,
- share/po/th.po, share/po/el.po, share/po/sk.po, share/po/lt.po,
- share/po/ar.po, share/po/sl.po, share/po/vi.po, share/po/br.po,
- share/po/ca.po, share/po/gl.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/ro.po, share/po/bs.po, share/po/da.po,
- share/po/zh_TW.po, share/po/cs.po, share/po/af.po: updated pot file
-
- * share/po/sv.po: updated Swedish file
- updated pot file
-
-2002/02/28 Pixel <pixel@mandrakesoft.com>
-
- * rescue/make_rescue_img: resolve conflicts for short keytable names (eg:
- "no" could be either "no-dvorak" or "no-latin1")
-
- * keyboard.pm (loadkeys_files): ensure each file appear only once
-
-2002/02/28 siegel
-
- * share/po/de.po: and another part of updates
- updates
-
-2002/02/28 Thierry Vignaud <tvignaud@mandrakesoft.com
-
- * share/po/fr.po: last translation but not least.
- further updates
- update french translation
-
-2002/02/28 dam's <damien@mandrakesoft.com>
-
- * share/themes-marble3d.rc: rechanged bg for camille
-
- * standalone/drakbackup: corrected translation for crontab
-
-2002/02/28 Franēois Pons <fpons@mandrakesoft.com>
-
- * rescue/tree/etc/oem: fixed bad copy of install packages.
-
- * tools/oem-prepare: fixed bad copy of INSTALL packages.
-
- * Xconfigurator.pm: removed Radeon 8500 from DRI capable cards.
-
-2002/02/28 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * rescue/aliases, rescue/list: include /sbin/fsck.ext3 since our users are
- so dumb
-
-2002/02/28 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/zh_TW.po: updated Chinese file
-
-2002/02/28 Pixel <pixel@mandrakesoft.com>
-
- * rescue/make_rescue_img: resolve conflicts for short keytable names (eg:
- "no" could be either "no-dvorak" or "no-latin1")
-
- * keyboard.pm (loadkeys_files): ensure each file appear only once
-
- * bootloader.pm: add "nowarn" in lilo.conf
-
- * install_steps.pm, fs.pm: use the "soft" option by default for /mnt/nfs
- and for "diskdrake --nfs"
-
-2002/02/28 sdupont
-
- * standalone/drakfont: including 'su' mode on drakfont.
-
-2002/02/28 siegel
-
- * share/po/de.po: updated missing strings
-
-2002/02/28 Till Kamppeter <till@mandrakesoft.com>
-
- * printerdrake.pm: Re-activated function to specify a CUPS server in
- another network and to switch to manual CUPS configuration.
- - Fixes/Improvements on Star Office/Open Office support:
- o When one switches the spooler, the entries of the printers under the
- old spooler are removed from Star Office/Open Office
- o Printers on remote CUPS servers (which are known through
- broadcasting)
- can be added to Star Office/Open Office
-
- * share/rpmsrate.server, share/rpmsrate: Added "curl" to install section,
- it is needed by printerdrake.
-
- * printer.pm:
- - Fixes/Improvements on Star Office/Open Office support:
- o When one switches the spooler, the entries of the printers under the
- old spooler are removed from Star Office/Open Office
- o Printers on remote CUPS servers (which are known through
- broadcasting)
- can be added to Star Office/Open Office
-
-2002/02/27 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/eu.po: updated Basque file
-
-2002/02/27 Till Kamppeter <till@mandrakesoft.com>
-
- * printerdrake.pm:
- - Improved fully automatic adding of printer queue:
- o Ask for a queue name if more than one printer is detected
- o Let user confirm the model automatically chosen from the database
- o Set correct paper size according to the language/country
- - When one chooses a "CUPS + GIMP-Print" driver now all important
- options
- are displayed directly (without needing "Advanced" button).
- - Made less warning appearing on the console from where "printerdrake"
- was
- called.
-
-2002/02/27 fabman
-
- * share/po/es.po: converted to UTF-8
-
-2002/02/27 Franēois Pons <fpons@mandrakesoft.com>
-
- * crypto.pm: fix missing version listed when doing update.
-
-2002/02/27 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/po/fr.po: a few translations
-
- * mdk-stage1/rescue-gui.c, rescue/restore_ms_boot, rescue/list.i386,
- rescue/make_rescue_img: add "restore Windows Boot Loader" to rescue
-
- * install_steps_interactive.pm: formatAlaTex for congratz msg
- xfs + bootdisk = warning_msg
-
- * share/rpmsrate: flightgear is now fully lowercase
- glaxium
-
- * mdk-stage1/pcmcia_/probe.c: add Keld Jųrn Simonsen <keld@dkuug.dk>'s O2
- Micro
- CardBus controller, and two other PCI entries which
- have close descriptions
-
- * mdk-stage1/pcmcia_/merge_from_pcitable: misc
- also report when pcitable is "too old"
- write a short perl program to easily merge new
- cardbus controllers from pcitable into probe.c
-
-2002/02/27 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/eu.po: updated po file
-
-2002/02/27 Pixel <pixel@mandrakesoft.com>
-
- * share/rpmsrate: simplify pyDict
-
- * install_steps_interactive.pm: ensure a keyboard is only once available,
- either in advanced or normal, but
- not in both (tx2fredl)
-
- * share/po/da.po:
- - it is UTF-8
- - fix line splitting
-
- * lang.pm: workaround iso-8859-1 charset based languages not displayed
- correctly at install
- - %lang2country is the authority, so if the country given by
- %lang2country doesn't exist in KDE, return C
- - fix be,sp,sr
- - s/def/default/ (typo)
- - add some utf kde fonts
-
-2002/02/27 Thierry Vignaud <tvignaud@mandrakesoft.com
-
- * share/po/fr.po: update french translation
-
- * standalone/drakxtv:
- - simplify an ACTION||fallback;fallback into ACTION;fallback
- - print a message saying that xawtv can be used now at the end of the
- channels auto-probing in case of direct use from cl and not from
- XawTV wrapper (from qa test) aka let the world be better :-)
-
- * share/po/br.po: minor update
- update brezhoneg translation
-
-2002/02/26 dam's <damien@mandrakesoft.com>
-
- * modparm.pm: corrected bad sprintf
-
-2002/02/26 fabman
-
- * share/po/es.po: updated spanish translations
-
-2002/02/26 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/Makefile: version 8.2
-
-2002/02/26 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/fr.po, share/po/sv.po, share/po/hu.po: updated po files
-
-2002/02/26 Pixel <pixel@mandrakesoft.com>
-
- * diskdrake/smbnfs_gtk.pm, diskdrake/removable.pm,
- diskdrake/interactive.pm: propose some mount points for
- removable/nfs/smb
-
- * install_steps_interactive.pm: if no sound card are detected AND the user
- selected things needing a sound card, propose a special case for ISA
- cards
-
- * share/rpmsrate: add sndconfig in INSTALL (installed when user say Yes
- when asked for a ISA
- sound card)
-
- * my_gtk.pm (@icon_paths): ease testing
-
-2002/02/26 siegel
-
- * share/po/de.po: updates
-
-2002/02/26 dam's <damien@mandrakesoft.com>
-
- * standalone/drakfont: corrected ttf/TTF and xfs restart
-
- * share/logo-mandrake.png: new logo
-
-2002/02/26 fabman
-
- * share/po/es.po: updated spanish translations
-
-2002/02/26 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: fix translation of test program.
-
-2002/02/26 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/dietlibc/libstdio/fclose.c: don't segfault when fclose(NULL)
-
- * share/po/fr.po:
- - explain where to put nbsp spaces, explain
- what's nbsp spaces, explain how to compose them
- - add a few missing nbsp spaces
- - translate a few more things
-
-2002/02/26 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/DrakX.pot, share/po/es.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/cy.po, share/po/nl.po,
- share/po/ja.po, share/po/wa.po, share/po/sv.po, share/po/is.po,
- share/po/hu.po, share/po/it.po, share/po/id.po, share/po/pl.po,
- share/po/fi.po, share/po/no.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/ar.po, share/po/sl.po,
- share/po/vi.po, share/po/br.po, share/po/ca.po, share/po/gl.po,
- share/po/lv.po, share/po/uk.po, share/po/eo.po, share/po/ro.po,
- share/po/bs.po, share/po/da.po, share/po/zh_TW.po, share/po/cs.po,
- share/po/af.po: updated pot file
-
- * any.pm: fixed English typo
-
-2002/02/26 Pixel <pixel@mandrakesoft.com>
-
- * diskdrake/smbnfs_gtk.pm, diskdrake/removable.pm,
- diskdrake/interactive.pm: propose some mount points for
- removable/nfs/smb
-
- * Xconfigurator.pm: make perl_checker happy
- have "Ok More Show all" instead of "Ok Cancel Show all"
- set the locale properly instead of setting the translated messages in
- the script
-
- * any.pm:
- - zips() now return devices ending with "4", raw_zips() is the old
- zips()
- - rdvd handling
- - add .conf for /etc/devfs/conf.d/ files
- (devfssymlinkf): use /etc/devfs/conf.d/name.conf instead of putting the
- symlink in lib/dev-state
-
- * share/rpmsrate: add sndconfig in INSTALL (installed when user say Yes
- when asked for a ISA
- sound card)
- add xine in VIDEO 4
-
- * install_steps.pm:
- - zips() now return devices ending with "4", raw_zips() is the old
- zips()
- - rdvd handling
- - add .conf for /etc/devfs/conf.d/ files
- don't add mem=nopentium anymore. kernel people says it's not needed and
- bad
- for performance. It also means any bug must be addressed to them
- create /dev/dvd for DVDs
-
- * my_gtk.pm (@icon_paths): ease testing
-
- * lang.pm: create bindtextdomain which does only part of the load_mo job
-
- * install_steps_interactive.pm: if no sound card are detected AND the user
- selected things needing a sound card, propose a special case for ISA
- cards
-
- * detect_devices.pm:
- - zips() now return devices ending with "4", raw_zips() is the old
- zips()
- - rdvd handling
- - add .conf for /etc/devfs/conf.d/ files
- cleanup
-
- * fs.pm:
- - zips() now return devices ending with "4", raw_zips() is the old
- zips()
- - rdvd handling
- - add .conf for /etc/devfs/conf.d/ files
-
-2002/02/26 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * Xconfigurator_consts.pm: Ti Powerbook uses non-std 1152x768, rather than
- 1152x864
-
-2002/02/26 Thierry Vignaud <tvignaud@mandrakesoft.com
-
- * standalone/drakxtv: use "xvt -T" rather than "xvt --title": now not only
- we support rxvt
- and xterm but konsole too.
- the only one missing is gnome-terminal which has -t but not -T
- update comments
- - remove useless "no_edit => 1"
- - use interactive_gtk to determine if we're runned under X11 (ie
- authorized acces to X11 server, X11 context, ...)
- - add a note to remember that we should add a method to detect if we
- run under X11 if/when we implement interactive_qt
- - simplify code :
- * remove is_tv and simplify its code to be a one-liner (replace a
- foreach by a scalar context)
- * use format to prevent reverse lookup on scantv run thus
- enabling to reverse the initial hash table
- - all cases (newt, gtk, wt/wo xvt, ...) have been re tested on real
- hw.
-
-2002/02/26 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/hu.po: updated po file
-
-2002/02/26 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm: remove passwords and realnames from report.bug
-
-2002/02/26 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/hu.po: updated po file
-
-2002/02/26 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm: remove passwords and realnames from report.bug
-
-2002/02/25 dam's <damien@mandrakesoft.com>
-
- * any.pm, modparm.pm: corrected modules parameters functions
-
- * standalone/drakfont: debug
-
-2002/02/25 Franēois Pons <fpons@mandrakesoft.com>
-
- * mdk-stage1/init-data/msgboot-graphicallogo.img.bz2: fixes for cursor or
- nasty pixel displayed using syslinux-1.67-3mdk
-
-2002/02/25 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/po/fr.po: don't put accents for bootloader, we can just use 7bit
- chars
- (titi sucks bigtime)
- add a few nbsp spaces
-
- * rescue/list: add mt-st DAT stuff for joeghi (ghibo)
-
-2002/02/25 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/da.po: updated Danish file
-
-2002/02/25 Pixel <pixel@mandrakesoft.com>
-
- * bootloader.pm: ignore-table is a global flag, so put it there (when
- needed)
-
- * standalone/drakboot: add --testing
-
- * modules.pm, install_steps.pm, fs.pm, detect_devices.pm: use ide-scsi for
- ide zips
-
- * install_steps_interactive.pm: sort the list of keyboards
-
-2002/02/25 Thierry Vignaud <tvignaud@mandrakesoft.com
-
- * share/po/fr.po: fix a typo (thanks gc)
-
-2002/02/24 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/ru.po, share/po/sp.po, share/po/ca.po, share/po/th.po,
- share/po/uk.po, share/po/es.po, share/po/eo.po, share/po/ro.po,
- share/po/sv.po, share/po/sr.po, share/po/da.po, share/po/el.po,
- share/po/et.po, share/po/cs.po, share/po/tr.po, share/po/az.po,
- share/po/eu.po: updated some po files
-
-2002/02/24 Pixel <pixel@mandrakesoft.com>
-
- * share/keyboards.tar.bz2: fix permission
-
-2002/02/23 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/cy.po, share/po/Makefile: updated Welsh file
-
- * share/po/zh_CN.po, share/po/DrakX.pot, share/po/eu.po, share/po/vi.po,
- share/po/wa.po, share/po/zh_TW.po: udated Vietnamese file
-
- * install_steps_interactive.pm: removed useless _( ) around a string
- displayed in English only
-
- * share/po/be.po, share/po/bg.po, share/po/sk.po, share/po/ar.po,
- share/po/sl.po, share/po/br.po, share/po/bs.po, share/po/sv.po,
- share/po/af.po: updated some po files
-
-2002/02/23 Pixel <pixel@mandrakesoft.com>
-
- * interactive_newt.pm:
- - use simplify_string to ensure multi-line and too long strings are
- not used
- (hacky, but no other solution)
- - set $::setstep like interactive_gtk is doing (??)
-
- * partition_table_empty.pm: handle MBR containing the same character (0 or
- "l")
-
- * diskdrake/interactive.pm: not_edit'able filesystem type (allow esp. a
- nicer newt version)
-
- * devices.pm (devices::make): following a good advice from Andrej
- Borsenkow, return the
- file even if the device file doesn't exist the caller will fail or not.
- The
- advantage is better compatibility than raising an exception
- devices::make doesn't mknod with devfs
-
- * detect_devices.pm: no need to catch the exception from devices::make
- anymore
- devices::make doesn't mknod with devfs
-
- * fs.pm: nicer error message when mount fails
-
- * share/rpmsrate: adding gphoto2
-
- * install_steps_interactive.pm: when passwords do not match, focus on
- first password entry, not the second (thanks to garrick)
-
- * Xconfigurator_consts.pm: remove Option "sw_cursor" for "SiS 6326" since
- it's already handled in Xconfigurator.pm
-
- * my_gtk.pm: fix @icon_paths to include /usr/share/libDrakX/pixmaps
- (thanks to garrick)
-
- * modules.pm: remove "-f" option for insmod
-
-2002/02/23 siegel
-
- * share/po/de.po: fixed silly error
- updates
-
-2002/02/23 Till Kamppeter <till@mandrakesoft.com>
-
- * printer.pm, printerdrake.pm: Added automatic configuration of printers
- in Star Office and Open Office.
-
-2002/02/22 dam's <damien@mandrakesoft.com>
-
- * share/advertising/02-internet.pl, share/advertising/07-server.pl,
- share/advertising/11-consul.pl, share/advertising/09-MDKcampus.pl,
- share/advertising/01-gnu.pl, share/advertising/13-Nvert.pl,
- share/advertising/06-user.pl, share/advertising/10-MDKexpert.pl,
- share/advertising/04-develop.pl, share/advertising/05-contcenter.pl,
- share/advertising/12-MDKstore.pl, share/advertising/03-graphic.pl,
- share/advertising/08-games.pl: corrected advertising text
-
- * share/po/fr.po: corrected bad translation
-
- * my_gtk.pm: corrected icon paths
-
-2002/02/22 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * standalone/drakgw: exit the pur_gtk version after launching the wizard
- version
-
- * any.pm: better rephrasing
- change name and description of security levels
-
- * share/rpmsrate: powermanga: 2 -> 3
-
-2002/02/22 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/da.po, share/po/DrakX.pot: updated Danish file
-
- * lang.pm: start of support of kde fonts
- fixed some keyboard names
-
- * keyboard.pm: fixed some keyboard names
- added the two ?win_toggle choices
- some info useful for keyboard handling
-
- * share/keyboards.tar.bz2: fixed some keyboard names
-
- * share/po/hu.po: updated hungarian file
-
-2002/02/22 Pixel <pixel@mandrakesoft.com>
-
- * pkgs.pm: even smarted process to kill selection
-
- * lang.pm: fix 2 entries in charset2kde_font
- - remove non needed entries in lang2country
- - fix syntax errors
- - rename kdefont in charset2kde_font
- - much cleanup
- use invalid instead of unknown for errors when checking
- put back the less deep langs
- have the tree less deep (esp. nicer when not displaying UTF-8 entries)
- not translating in console installs (esp. newt) when the font is missing
- restrict the langs displayed to non utf8 during install
- fix warning message
- disable perl warnings when checking
- make perl_checker happy
-
- * devices.pm: add atibm (thanks to Robin Pollard)
-
- * bootloader.pm: put ignore-table to disable lilo's partition table
- checking
- (esp. the checking of the CHS geometry vs linear geometry)
-
- * Xconfigurator_consts.pm: fix syntax typo
-
- * Makefile:
- - exclude urpm from perl_checker
- - add checking keyboard.pm
-
- * install_steps_interactive.pm, install2.pm, install_steps.pm: not
- translating in console installs (esp. newt) when the font is missing
-
- * keyboard.pm: use invalid instead of unknown for errors when checking
- change the message
- disable perl warnings when checking
- - add checks for the various data structures
- - fix another typo for usb2drakxkbd
- fix typo
-
- * share/rpmsrate: add procmail in SYSTEM 4
- add samba-doc samba-winbind samba-swat
-
- * Xconfigurator.pm: workaround set_active failing
-
- * any.pm: use the setupBootloader help instead of setupBootloaderGeneral
- restrict the langs displayed to non utf8 during install
-
-2002/02/22 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * standalone/drakxtv: update TODO list;
- explain what is HRC
-
- * share/po/fr.po: further translations
- update french translation
-
-2002/02/21 dam's <damien@mandrakesoft.com>
-
- * my_gtk.pm: corrected icon list
-
-2002/02/21 fabman
-
- * share/po/es.po: updated spanish po file
-
-2002/02/21 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/rpmsrate: spacecup no more exists
- armagetron is nice, no use to install gltron as well
- autoconf2.5 and automake1.5
-
- * interactive.pm: when not in X and needs su, use consolehelper now
- use consolehelper when no "kdeinit: kwin" process
- is running
-
-2002/02/21 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/DrakX.pot, share/po/es.po, share/po/fr.po, share/po/bg.po,
- share/po/ga.po, share/po/sr.po, share/po/de.po, share/po/et.po,
- share/po/tr.po, share/po/eu.po, share/po/az.po, share/po/ru.po,
- share/po/pt_BR.po, share/po/hr.po, share/po/ko.po, share/po/cy.po,
- share/po/nl.po, share/po/ja.po, share/po/wa.po, share/po/sv.po,
- share/po/is.po, share/po/Makefile, share/po/hu.po, share/po/it.po,
- share/po/id.po, share/po/pl.po, share/po/no.po, share/po/fi.po,
- share/po/th.po, share/po/el.po, share/po/sk.po, share/po/lt.po,
- share/po/ar.po, share/po/sl.po, share/po/vi.po, share/po/br.po,
- share/po/ca.po, share/po/gl.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/ro.po, share/po/bs.po, share/po/da.po,
- share/po/zh_TW.po, share/po/cs.po, share/po/af.po: updated pot file
-
-2002/02/21 Pixel <pixel@mandrakesoft.com>
-
- * lvm.pm, install_any.pm: ensure lvm tools don't need to be all installed
- at the same time
-
- * lang.pm, tools/make_mdkinst_stage2: LC_COLLATE and LC_CTYPE are
- getFile'd (cuz they are big, causing the .cz2 to be *big*)
-
- * share/rpmsrate: add kinput2-wnn4
-
-2002/02/21 siegel
-
- * share/po/de.po: update
-
-2002/02/21 Till Kamppeter <till@mandrakesoft.com>
-
- * printerdrake.pm: Removed "Manual configuration" button when "Local
- Printer" dialog is started from the queue modification menu (Recommended
- mode).
- Improved matching of printer names resulting from auto-detection with
- names in the database.
-
-2002/02/21 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * share/po/fr.po: final batch of typos fixes (next time, please run a
- check speller)
- fix more typos
- update french translation;
- fix typos
-
- * diskdrake/interactive.pm: shorter displayed message
-
-2002/02/21 dam's <damien@mandrakesoft.com>
-
- * standalone/draknet: changed button label
-
- * standalone/icons/gmon.png, standalone/icons/categ.png,
- standalone/icons/verti.png, standalone/icons/drakbackup.540x57.png,
- standalone/icons/net_c.png, standalone/icons/ic82-system-40.png,
- standalone/icons/wiz_drakgw.png, standalone/icons/ic-drakfont-48.png,
- standalone/icons/ic82-back-up-16.png,
- standalone/icons/wiz_scannerdrake.png,
- standalone/icons/ic82-discdurwhat-40.png,
- standalone/icons/ic82-tape-40.png, standalone/icons/ic82-network-40.png,
- standalone/icons/smbnfs_default.png, standalone/icons/smbnfs_server.png,
- standalone/icons/hori.png, standalone/icons/wiz_draknet.png,
- standalone/icons/smbnfs_mounted.png, standalone/icons/wiz_firewall.png,
- standalone/icons/wiz_default_up.png,
- standalone/icons/ic82-back-up-32.png, standalone/icons/ic82-CD-40.png,
- standalone/icons/ic82-systemeplus-40.png,
- standalone/icons/ic82-back-up-48.png,
- standalone/icons/ic82-dossier-32.png, standalone/icons/net_d.png,
- standalone/icons/ic82-moreoption-40.png,
- standalone/icons/smbnfs_has_mntpoint.png, standalone/icons/tradi.png,
- standalone/icons/wiz_printerdrake.png,
- standalone/icons/wiz_default_left.png,
- standalone/icons/eth_card_mini2.png, standalone/icons/net_u.png,
- standalone/icons/ic82-users-40.png, standalone/icons/mdk_logo.png,
- standalone/icons/ic82-others-40.png, standalone/icons/ic82-when-40.png,
- standalone/icons/draknet_step.png, standalone/icons/drakfont.620x57.png,
- standalone/icons/ic82-where-40.png: added new gfx only standalone
-
- * pixmaps/categ.png, pixmaps/verti.png, pixmaps/ic82-moreoption-40.png,
- pixmaps/ic82-system-40.png, pixmaps/net_c.png,
- pixmaps/ic-drakfont-48.png, pixmaps/ic82-CD-40.png,
- pixmaps/ic82-when-40.png, pixmaps/ic82-back-up-32.png,
- pixmaps/draknet_step.png, pixmaps/ic82-dossier-32.png,
- pixmaps/ic82-back-up-48.png, pixmaps/smbnfs_server.png,
- pixmaps/ic82-discdurwhat-40.png, pixmaps/smbnfs_default.png,
- pixmaps/gmon.png, pixmaps/drakbackup.540x57.png,
- pixmaps/smbnfs_mounted.png, pixmaps/wiz_printerdrake.png,
- pixmaps/wiz_default_left.png, pixmaps/wiz_default_up.png,
- pixmaps/drakfont.620x57.png, pixmaps/ic82-tape-40.png,
- pixmaps/wiz_draknet.png, pixmaps/net_d.png,
- pixmaps/ic82-systemeplus-40.png, pixmaps/wiz_drakgw.png,
- pixmaps/mdk_logo.png, pixmaps/ic82-users-40.png,
- pixmaps/ic82-back-up-16.png, pixmaps/hori.png, pixmaps/tradi.png,
- pixmaps/smbnfs_has_mntpoint.png, pixmaps/eth_card_mini2.png,
- pixmaps/wiz_firewall.png, pixmaps/net_u.png, pixmaps/ic82-where-40.png,
- pixmaps/ic82-others-40.png, pixmaps/ic82-network-40.png,
- pixmaps/wiz_scannerdrake.png: removed gfx not used during install
-
-2002/02/21 Franēois Pons <fpons@mandrakesoft.com>
-
- * crypto.pm: fixed another not seen 8.1 reference in label.
- fixed 8.1 release hard coded.
-
-2002/02/21 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/fi.po: updated pot file
- updated Finnish file
-
- * help.pm: updated help file
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/DrakX.pot, share/po/es.po, share/po/fr.po, share/po/bg.po,
- share/po/ga.po, share/po/sr.po, share/po/de.po, share/po/et.po,
- share/po/tr.po, share/po/eu.po, share/po/az.po, share/po/ru.po,
- share/po/pt_BR.po, share/po/hr.po, share/po/ko.po, share/po/cy.po,
- share/po/nl.po, share/po/ja.po, share/po/wa.po, share/po/sv.po,
- share/po/is.po, share/po/Makefile, share/po/hu.po, share/po/it.po,
- share/po/id.po, share/po/pl.po, share/po/no.po, share/po/th.po,
- share/po/el.po, share/po/sk.po, share/po/lt.po, share/po/ar.po,
- share/po/sl.po, share/po/vi.po, share/po/br.po, share/po/ca.po,
- share/po/gl.po, share/po/lv.po, share/po/uk.po, share/po/eo.po,
- share/po/ro.po, share/po/bs.po, share/po/da.po, share/po/zh_TW.po,
- share/po/cs.po, share/po/af.po: updated pot file
-
-2002/02/21 Pixel <pixel@mandrakesoft.com>
-
- * share/themes/blueHeart-button4.png, share/themes-DarkMarble.rc,
- install_gtk.pm, share/themes/DarkMarble-button3_out.png,
- share/themes.rc, share/themes/blueHeart-brown_bg1.png,
- share/themes/DarkMarble-button3_in.png, share/themes-blueHeart.rc,
- share/themes/DarkMarble-check_on.png,
- share/themes/blueHeart-button1.png,
- share/themes/DarkMarble-check_off.png,
- share/themes/blueHeart-button2.png, share/themes/DarkMarble-gloom2.png,
- share/themes/DarkMarble-button3_in_prelight.png,
- share/themes/DarkMarble-button3_out_prelight.png: remove DarkMarble and
- blueHeart themes
-
- * bootloader.pm: have devfs=nomount for failsafe
-
- * Makefile.config, share/po/Makefile: make a difference between PMS and
- ALLPMS. For install, only use PMS
-
- * lvm.pm: ensure lvm tools don't need to be all installed at the same time
-
- * Makefile: template.in stuff removed
- make a difference between PMS and ALLPMS. For install, only use PMS
-
- * pkgs.pm: smarter choosing of processes to kill
-
- * tools/i386/netboot/make_boot_network: cleanup
-
- * modules.pm: add aic7xxx_old
-
- * install_any.pm: ensure lvm tools don't need to be all installed at the
- same time
- (remove_bigseldom_used): remove xf86Wacom.so & mkfs.xfs
- DarkMarble theme is removed
- (kdeicons_postinstall): remove this obsolete code
- no special case for installing imwheel
-
- * lang.pm, tools/make_mdkinst_stage2: LC_COLLATE and LC_CTYPE are
- getFile'd (cuz they are big, causing the .cz2 to be *big*)
-
- * network/smbnfs.pm, network/nfs.pm: nicer conditional displaying of nfs
- comment
-
-2002/02/21 siegel
-
- * share/po/de.po: update
- snapshot
-
-2002/02/21 Till Kamppeter <till@mandrakesoft.com>
-
- * printerdrake.pm: Added "type => 'list'" to the printer modification
- menu, it appeared as a drop-down list during the installation.
-
-2002/02/21 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * standalone/drakxtv: more translatable strings;
- hide scantv output on console;
- check that we're under X11 before running scantv in an xterm
-
-2002/02/20 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/doc/UPDATEMODULES: add an example on modules with options
- first line comment no more necessary
- s/row/column/, silly me
-
- * standalone.pm: explanations stuff: no reason to use "updated" at a place
- when we
- use "modified" at the rest of the locations..
-
-2002/02/20 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/es.po: updated Spanish file
- updated Spanish file
-
-2002/02/20 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm (ejectCdrom): display "files still open:" for all
- processes when umounting fail
-
- * pkgs.pm: much simpler & stronger killing of still running processes
-
- * mouse.pm: USB|Generic is 3 button mice, add a USB 2 Button entry
-
-2002/02/20 dam's <damien@mandrakesoft.com>
-
- * share/themes-marble3d.rc: updated theme
-
- * network/adsl.pm: mgmt install corrected
-
-2002/02/20 daouda
-
- * share/rpmsrate:
- - same weight for rfbdrake in NETWORKING_REMOTE_ACCESS
- NETWORKING_REMOTE_ACCESS_SERVER
-
-2002/02/20 fcrozat
-
- * share/rpmsrate: Remove mozilla-psm from list, it is merged in mozilla
-
-2002/02/20 Franēois Pons <fpons@mandrakesoft.com>
-
- * rescue/tree/etc/oem, tools/oem-prepare: synced with newer rpmsrate of
- DrakX and newer method to select INSTALL packages.
-
- * standalone/XFdrake: fixed NVIDIA package in urpmi db by directly using
- urpm library instead of
- parsing (now removed) depslist.ordered file.
-
- * Xconfigurator.pm: fixed default value if selecting a card (use previous
- one or existing one).
- added XFree 4 driver choice if Other|Unlisted is chosen.
- fixed cancel on card selection so that previous choice is not lost.
-
- * Xconfigurator_consts.pm: added @allbutfbdrivers and @alldrivers for
- listing XFree 4 drivers.
-
-2002/02/20 gbeauchesne
-
- * share/rpmsrate:
- - Add gcc3.0-c++ and libstdc++3.0-devel
- - Prefer gcc3.0-java over gcc-java
- - Remove BasiliskII-sheepnet since it does no longer exist
- - Add/prefer BasiliskII-jit over BasiliskII
-
-2002/02/20 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/fr.po: updated FRench file
-
- * share/po/es.po: updated Spanish file
- updated Spanish file
- updated pot file
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/DrakX.pot, share/po/bg.po, share/po/ga.po, share/po/sr.po,
- share/po/de.po, share/po/et.po, share/po/eu.po, share/po/az.po,
- share/po/ru.po, share/po/pt_BR.po, share/po/hr.po, share/po/ko.po,
- share/po/cy.po, share/po/nl.po, share/po/ja.po, share/po/wa.po,
- share/po/sv.po, share/po/is.po, share/po/hu.po, share/po/it.po,
- share/po/id.po, share/po/pl.po, share/po/fi.po, share/po/no.po,
- share/po/th.po, share/po/el.po, share/po/sk.po, share/po/lt.po,
- share/po/ar.po, share/po/sl.po, share/po/vi.po, share/po/br.po,
- share/po/ca.po, share/po/gl.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/ro.po, share/po/bs.po, share/po/da.po,
- share/po/zh_TW.po, share/po/cs.po, share/po/af.po: updated pot file
-
-2002/02/20 Pixel <pixel@mandrakesoft.com>
-
- * share/po/fr.po: fix s/SILO/LILO/
-
- * fsedit.pm: have "with /usr" translated
-
- * install_steps_interactive.pm (loadSavePackagesOnFloppy): add a "Cancel"
- button
-
- * steps.pm: move installUpdates after configureX (workaround for bad
- timeouts during installing updates)
-
- * install_steps.pm, any.pm, standalone/draksec: factorize and update the
- reading of previous security level
-
-2002/02/20 siegel
-
- * share/po/de.po: update
-
-2002/02/20 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * share/po/fr.po: update french translations
-
-2002/02/20 dam's <damien@mandrakesoft.com>
-
- * share/advertising/13-Nvert.pl: changed toll free
-
- * my_gtk.pm: added mcc kill if wait message
-
- * standalone/logdrake: cosmetic change, mcc compliance
-
-2002/02/20 daouda
-
- * share/rpmsrate:
- - same weight for rfbdrake in NETWORKING_REMOTE_ACCESS
- NETWORKING_REMOTE_ACCESS_SERVER
-
-2002/02/20 fcrozat
-
- * share/rpmsrate: Remove mozilla-psm from list, it is merged in mozilla
-
-2002/02/20 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm, install_any.pm: fixed INSTALL category in rpmsrate for copying
- file when changing cd (was an
- limitation in read_rpmsrate when a package having a category and INSTALL
- caused
- INSTALL to be dropped).
-
-2002/02/20 gbeauchesne
-
- * share/rpmsrate:
- - Add gcc3.0-c++ and libstdc++3.0-devel
- - Prefer gcc3.0-java over gcc-java
- - Remove BasiliskII-sheepnet since it does no longer exist
- - Add/prefer BasiliskII-jit over BasiliskII
-
-2002/02/20 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/advertising/07-server.pl, share/advertising/01-gnu.pl: Improved
- English strings
-
- * share/po/hu.po, share/po/es.po, share/po/ar.po: updated Hungarian and
- Spanish files
-
-2002/02/20 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm: remove fsck_option (obsolete)
-
- * share/po/fr.po: fix s/SILO/LILO/
-
- * fsedit.pm: have "with /usr" translated
-
- * install_steps_interactive.pm (loadSavePackagesOnFloppy): add a "Cancel"
- button
-
- * steps.pm: move installUpdates after configureX (workaround for bad
- timeouts during installing updates)
-
- * install_steps.pm, any.pm, standalone/draksec: factorize and update the
- reading of previous security level
-
-2002/02/20 siegel
-
- * share/po/de.po: snapshot
-
-2002/02/19 dam's <damien@mandrakesoft.com>
-
- * share/advertising/Makefile: new Makefile to install ads
-
-2002/02/19 fcrozat
-
- * share/rpmsrate:
- -Install gnome-vfs-extras when installing nautilus (to get samba
- browsing)
- -don't install nautilus-mozilla, it is pulled by nautilus
-
-2002/02/19 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * any.pm: english fix
-
-2002/02/19 Pixel <pixel@mandrakesoft.com>
-
- * share/advertising/Makefile: advertising installation cleanup
-
- * diskdrake/smbnfs_gtk.pm: ugly hack to fix die
-
-2002/02/19 siegel
-
- * share/po/de.po: updates for beta 3
-
-2002/02/19 Till Kamppeter <till@mandrakesoft.com>
-
- * printerdrake.pm: Changed button texts of "Do you want to auto-detect?"
- dialog.
-
-2002/02/19 dam's <damien@mandrakesoft.com>
-
- * share/advertising/Makefile: new Makefile to install ads
-
-2002/02/19 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * any.pm: report_bug: find syslog in /var/log if it's not in /tmp, add
- $prefix in front of /var/* when missing
- since we give "lilo.conf" in drakbug_report, let's also
- give "menu.lst"
-
-2002/02/19 Pixel <pixel@mandrakesoft.com>
-
- * share/advertising/Makefile: advertising installation cleanup
-
-2002/02/19 siegel
-
- * share/po/de.po: updates for beta 3
-
-2002/02/19 Till Kamppeter <till@mandrakesoft.com>
-
- * printerdrake.pm: Changed button texts of "Do you want to auto-detect?"
- dialog.
-
-2002/02/19 dam's <damien@mandrakesoft.com>
-
- * network/netconnect.pm: setting help
-
- * share/advertising/10-MDKexpert.png, share/advertising/07-server.png,
- share/advertising/05-contcenter.png, share/advertising/03-graphic.png,
- share/advertising/12-MDKstore_icon.png,
- share/advertising/06-user_icon.png,
- share/advertising/04-develop_icon.png,
- share/advertising/12-MDKstore.png, share/advertising/00-thanks.png,
- share/advertising/06-user.png, share/advertising/02-internet_icon.png,
- share/advertising/04-develop.png,
- share/advertising/05-contcenter_icon.png,
- share/advertising/10-MDKexpert_icon.png, share/advertising/13-Nvert.png,
- share/advertising/11-consul.png, share/advertising/03-graphic_icon.png,
- share/advertising/02-internet.png, share/advertising/07-server_icon.png,
- share/advertising/01-gnu.png, share/advertising/08-games.png,
- share/advertising/09-MDKcampus.png,
- share/advertising/09-MDKcampus_icon.png,
- share/advertising/08-games_icon.png: re-adding with -kb
- removing for re-adding with -kb
- added advertising for translation
-
- * share/advertising/essi.p: blah
- added advertising for translation
-
- * my_gtk.pm: new icon handler
-
- * Makefile.config: addde share/advertising/*.pl for translation
-
- * share/advertising/Makefile: new Makefile to install ads
-
- * share/advertising/00-thanks.pl, share/advertising/06-user.pl,
- share/advertising/08-games.pl, share/advertising/list,
- share/advertising/09-MDKcampus.pl, share/advertising/01-gnu.pl,
- share/advertising/11-consul.pl, share/advertising/13-Nvert.pl,
- share/advertising/02-internet.pl, share/advertising/07-server.pl,
- share/advertising/10-MDKexpert.pl, share/advertising/04-develop.pl,
- share/advertising/05-contcenter.pl, share/advertising/12-MDKstore.pl,
- share/advertising/03-graphic.pl: added advertising for translation
-
-2002/02/19 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * any.pm: report_bug: find syslog in /var/log if it's not in /tmp, add
- $prefix in front of /var/* when missing
- since we give "lilo.conf" in drakbug_report, let's also
- give "menu.lst"
-
-2002/02/19 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/vi.po, share/po/hu.po: updated Vietnamese and Hungarian files
-
-2002/02/19 Pixel <pixel@mandrakesoft.com>
-
- * share/advertising/Makefile: advertising installation cleanup
-
- * install2.pm: anchor the -IP match at the end of the string
- move loading /tmp/network from stage1 before doing the auto_install
- stuff to
- allow the -IP feature on auto_install file name
-
- * share/rpmsrate: add grub in 4 SYSTEM
-
-2002/02/19 Till Kamppeter <till@mandrakesoft.com>
-
- * standalone/printerdrake, printer.pm: Assured that the default page size
- is "Letter" for US/Canada and "A4" for the rest of the world.
- The "Description" field of a printer queue is filled in with printer
- manufacturer and model by default.
- Removed unused varaiables in /usr/sbin/printerdrake.
-
- * printerdrake.pm: Changed button texts of "Do you want to auto-detect?"
- dialog.
- Assured that the default page size is "Letter" for US/Canada and "A4"
- for the rest of the world.
- The "Description" field of a printer queue is filled in with printer
- manufacturer and model by default.
- Removed unused varaiables in /usr/sbin/printerdrake.
-
- * install_steps_interactive.pm: Replaced "a4" and "letter" by "A4" and
- "Letter" so that Foomatic recognizes
- the paper sizes.
- Also use "Letter" paper for "en_CA" and "fr_CA" locales.
-
-2002/02/18 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/network.c: when no net device found, print a msg to tell
- that now most pcmcia network adapters are supported
- with network.img
-
-2002/02/18 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * help.pm: updated help file
-
- * share/po/sp.po, share/po/zh_CN.po, share/po/DrakX.pot, share/po/th.po,
- share/po/es.po, share/po/fr.po, share/po/sr.po, share/po/de.po,
- share/po/sk.po, share/po/tr.po, share/po/eu.po, share/po/sl.po,
- share/po/vi.po, share/po/uk.po, share/po/wa.po, share/po/sv.po,
- share/po/zh_TW.po, share/po/it.po: updated pot file
-
-2002/02/18 Pixel <pixel@mandrakesoft.com>
-
- * lang.pm, standalone/localedrake:
- - handle --kde_lang with optionally --kde_country
- - handle --apply
-
- * install_steps_gtk.pm: s/hbox/vbox for "Select Install Class"
-
-2002/02/18 dam's <damien@mandrakesoft.com>
-
- * share/logo-mandrake.png: new gfx
-
-2002/02/18 fcrozat
-
- * share/rpmsrate: Install Guppi when installing gnumeric
-
-2002/02/18 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/po/fr.po: titi sucks again
-
-2002/02/18 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/sk.po: updated Slovak ile
- updated pot file
-
- * help.pm: updated help file
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/DrakX.pot, share/po/es.po, share/po/fr.po, share/po/bg.po,
- share/po/ga.po, share/po/sr.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/cy.po, share/po/nl.po,
- share/po/ja.po, share/po/wa.po, share/po/sv.po, share/po/is.po,
- share/po/hu.po, share/po/it.po, share/po/id.po, share/po/pl.po,
- share/po/fi.po, share/po/no.po, share/po/th.po, share/po/el.po,
- share/po/lt.po, share/po/ar.po, share/po/sl.po, share/po/vi.po,
- share/po/br.po, share/po/ca.po, share/po/gl.po, share/po/lv.po,
- share/po/uk.po, share/po/eo.po, share/po/ro.po, share/po/bs.po,
- share/po/da.po, share/po/zh_TW.po, share/po/cs.po, share/po/af.po:
- updated pot file
-
-2002/02/18 Pixel <pixel@mandrakesoft.com>
-
- * detect_devices.pm:
- - remove media_type cdrom-burner, use {capacity} instead
- - use /proc/sys/dev/cdrom/info to fill in the {capacity}
-
- * diskdrake/smbnfs_gtk.pm:
- - add Cancel
- - move "click here" in "Search servers" on the right side
- - remove Export
- - fix bug
-
- * share/rpmsrate: raise xsane in SCANNER (Yves Duret)
- raise mkisofs & cdrecord in BURNER
-
- * Xconfigurator.pm: workaround not having the right to connect to our new
- created test server.
- info about the pb (sorry for the french):
- quand on lance le serveur
- - via xdm/kdm/startx, ca utilise xauth, xhost est fermé
- - via X/xinit, xhost est ouvert sur localhost, xauth n'est pas utilisé
- *sauf* si X/xinit est lancé ą partir d'un X *et* .Xauthority est non
- vide.
- dans ce cas, xhost est fermé, et aucun xauth n'est ajouté
- une conséquence, c'est que XFdrake ne peut pas accéder au X de
- test si XFdrake est lancé sous X ou "xauth list" est non vide
- exception: quand on lance le xdm/kdm en root, xhost n'est pas
- fermé,
- pas contre il est fermé en root & startx.
-
- * any.pm (fileshare_config): rework the custom message and launch
- userdrake
- (report_bug): add lilo.conf
-
- * standalone/localedrake:
- - handle --kde_lang with optionally --kde_country
- - handle --apply
- change the message & ask wether to logout or not
-
- * lang.pm:
- - handle --kde_lang with optionally --kde_country
- - handle --apply
- (lang2kde_lang): add missing valid_kde_langs
- fuzzy language finding between available langs when it doesn't match
- (useful for upgrades where fr_FR was fr_FR@euro)
-
- * diskdrake/interactive.pm: remove cdrom-burner from media_type set
-
- * install_steps_gtk.pm: s/hbox/vbox for "Select Install Class"
-
- * fs.pm (mount_options_unpack): add usrquota and grpquota for
- ext2/ext3/reiserfs/xfs
- - remove media_type cdrom-burner, use {capacity} instead
- - use /proc/sys/dev/cdrom/info to fill in the {capacity}
-
- * share/compssUsers: add EDITORS in Development/Development
- add EDITORS in Development/Development
-
-2002/02/18 yduret
-
- * bootlook.pm: remove aurora part (commented for the moment)
-
- * standalone/scannerdrake: HP OfficeJet support
- scsi/parport preliminary support
-
- * scanner.pm: update
- scsi parport preliminary support
- no more show unsupported scanner
- common output for ScannerDB update from sane *.desc files and from
- usbtable
-
-2002/02/17 Pixel <pixel@mandrakesoft.com>
-
- * diskdrake/interactive.pm: warn_if_renumbered now also done at install
-
-2002/02/17 Pixel <pixel@mandrakesoft.com>
-
- * share/rpmsrate: have icewm-light in any case (to be used as a failsafe
- window manager)
- add hotplug, usbutils and usbview with the new flag USB
-
- * install_any.pm: hotplug now handled via rpmsrate and the USB flag
- add some log to know why umounting /tmp/image fail
-
- * diskdrake/interactive.pm: warn_if_renumbered now also done at install
- force scalar context for warp_text
-
- * share/po/id.xsl, share/po/help_xml2pm.pl: use xsltproc as a filter to
- remove entities
-
- * share/po/Makefile (clean): remove .memdump
-
- * any.pm (autologin): do not allow empty user name since no autologin can
- already be achieved by choosing "No"
-
- * install2.pm: do not use run_program::xxx, use directly "system" so that
- stdout is kept unchanged during "postInstall" execution
-
- * network/smb.pm: fix typo (s/nfs/smbfs/)
-
-2002/02/17 siegel
-
- * help.pm: new version for 8.2
-
- * share/po/de.po: new german version
-
- * share/po/help_xml2pm.pl: added check for missing xsltproc
- fix perl warnings after adding -w
-
- * share/po/.cvsignore: added .memdump
-
- * share/po/Makefile: allow me to work with a symlink to doc in this
- directory
-
-2002/02/16 Pixel <pixel@mandrakesoft.com>
-
- * lvm.pm:
- - LVs "device" field were containing "/dev/vg/number" whereas it must
- be "vg/name"
- - added lv_resize
-
- * diskdrake/interactive.pm: add Resize'ing mounted XFS on LVM
-
- * crypto.pm (mirrors): add a timeout via "alarm" (needs testing)
-
-2002/02/16 Pixel <pixel@mandrakesoft.com>
-
- * Xconfig.pm:
- - prefer XKB available from existing XF86Config over
- /etc/sysconfig/keyboard KEYTABLE
- - fix translating from /etc/sysconfig/keyboard KEYTABLE to XKB
-
- * diskdrake/interactive.pm: add Resize'ing mounted XFS on LVM
-
- * interactive_newt.pm: do not trash error messages if testing
-
- * lang.pm (country2lang): created
- (write): ensure it doesn't fail when kdeglobals is not writable (eg: the
- directory doesn't exist)
- (list): return the languages in a "specific" order (favours non utf8
- over utf8)
-
- * crypto.pm (mirrors): add a timeout via "alarm" (needs testing)
-
- * install_steps_interactive.pm (setupSCSI): when "clicked", ask "Do you
- have any SCSI interfaces" instead
- of assuming there is a SCSI interface and asking the driver name
-
- * lvm.pm:
- - LVs "device" field were containing "/dev/vg/number" whereas it must
- be "vg/name"
- - added lv_resize
- - call pvcreate with "-y -ff"
- - created LVs are notFormatted
-
- * interactive.pm:
- - fix non X + testing + su
- - since "interactive" takes care of "format" for type "combo", remove
- "format" (so that interactive_newt which switch to type "list" don't
- apply
- "format" once again)
-
- * standalone/localedrake: handle --kde_country=<country>
-
-2002/02/16 Pixel <pixel@mandrakesoft.com>
-
- * lang.pm (country2lang): created
- (write): ensure it doesn't fail when kdeglobals is not writable (eg: the
- directory doesn't exist)
- (list): return the languages in a "specific" order (favours non utf8
- over utf8)
- fix call to update_gnomekderc
-
- * standalone/localedrake: handle --kde_country=<country>
-
-2002/02/16 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/da.po: updated Danish file
-
- * share/po/sk.po, share/po/cs.po, share/po/es.po: updated Czech, Spanish
- and Slovak files
-
-2002/02/16 Pixel <pixel@mandrakesoft.com>
-
- * lang.pm: fix call to update_gnomekderc
- remove unused & unneeded special %lang2kde_lang
- - add lang::check
- - fix utf-ko -> utf_ko
- - fix utf-14 -> utf_14
- - modify share/config/kdeglobals
- - add charset2kde_charset, lang2country, lang2kde_lang
-
-2002/02/15 dam's <damien@mandrakesoft.com>
-
- * standalone/drakfont: embedded mode correction
-
- * my_gtk.pm: highlight in gtk icon widget
-
- * share/themes/mdk-check_on.png, share/themes/mdk-toggle_off.png,
- share/themes/mdk-toggle_on.png, share/themes/mdk-check_off.png: new gfx
-
- * share/step-red.xpm, share/step-orange.xpm, share/step-orange-click.xpm,
- share/step-green-click.xpm, share/step-green.xpm, share/step-red-on.xpm,
- share/step-orange-on.xpm, share/step-green-on.xpm,
- share/step-red-click.xpm: new gfx
- new gfx
-
-2002/02/15 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/vi.po, share/po/fi.po, share/po/DrakX.pot, share/po/fr.po,
- share/po/wa.po, share/po/da.po, share/po/cs.po, share/po/hu.po,
- share/po/eu.po: updated Basque file; fixed a msgid change
-
- * share/po/sv.po: updated Swedish file
- updated Basque file; fixed a msgid change
-
-2002/02/15 Pixel <pixel@mandrakesoft.com>
-
- * run_program.pm: remove assigning STDIN to /dev/null since:
- - programs should not use STDIN
- - the "postInstall" script for auto_install's is more happy still
- having the STDIN.
-
- * diskdrake/smbnfs_gtk.pm, pixmaps/smbnfs_has_mntpoint.png,
- pixmaps/smbnfs_default.png, pixmaps/smbnfs_mounted.png,
- pixmaps/smbnfs_server.png: add icons showing if a mount-point is
- associated or if the share is mounted
-
- * pkgs.pm: fix typo
-
- * diskdrake/interactive.pm: use the new warp_text
-
- * install_steps.pm: use lang::charset2kde_charset
-
- * standalone/localedrake: lang::write doesn't need the filename anymore
-
- * any.pm: use 'combo' instead of 'type' for bootloader choice and security
- choice
- (requested by fredb&dadou)
-
- * interactive_gtk.pm: force scalar for Gtk::Label->new with warp_text
-
- * interactive.pm: favour "combo" over "list" in any case
-
- * Makefile (check): add lang::check checking
-
-2002/02/15 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * share/po/fr.po: update translation
-
-2002/02/14 Pixel <pixel@mandrakesoft.com>
-
- * standalone/lsnetdrake: adapt to the neater network::smb and network::nfs
-
- * network/smb.pm, network/smbnfs.pm, network/nfs.pm: cleaner & OOed code,
- with more code sharing
-
- * interactive_gtk.pm, diskdrake/interactive.pm: use the new warp_text
- feature
-
- * my_gtk.pm (ctree_set_icon): new function
-
- * diskdrake/smbnfs_gtk.pm: some cleanup, icons showing wether a
- mount-point is associated are coming
-
- * standalone/diskdrake: fix expert and testing options handling
-
-2002/02/14 dam's <damien@mandrakesoft.com>
-
- * standalone/drakfont: embedded mode
- drakfont embedde mode
-
- * share/step-red-on.xpm, share/step-red.xpm, share/step-orange.xpm,
- share/step-orange-on.xpm, share/step-orange-click.xpm,
- share/step-green-click.xpm, share/step-red-click.xpm,
- share/step-green-on.xpm: new gfx
-
-2002/02/14 erwan
-
- * tools/i386/netboot/ni5010/pxegrub, tools/i386/netboot/epic100/stage1,
- tools/i386/netboot/epic100/stage2, tools/i386/netboot/3c90x/pxegrub,
- tools/i386/netboot/rtl8139/pxegrub, tools/i386/netboot/ni5210/nbgrub,
- tools/i386/netboot/otulip/stage1, tools/i386/netboot/otulip/stage2,
- tools/i386/netboot/exos205/nbgrub, tools/i386/netboot/eepro/stage1,
- tools/i386/netboot/eepro/stage2, tools/i386/netboot/3c529/nbgrub,
- tools/i386/netboot/smc9000/pxegrub, tools/i386/netboot/ne2100/stage1,
- tools/i386/netboot/ne2100/stage2, tools/i386/netboot/exos205/pxegrub,
- tools/i386/netboot/sis900/nbgrub, tools/i386/netboot/ne/stage1,
- tools/i386/netboot/ne/stage2, tools/i386/netboot/tulip/nbgrub,
- tools/i386/netboot/sk_g16/nbgrub, tools/i386/netboot/eepro100/pxegrub,
- tools/i386/netboot/tiara/nbgrub, tools/i386/netboot/rtl8139/stage1,
- tools/i386/netboot/rtl8139/stage2, tools/i386/netboot/tiara/pxegrub,
- tools/i386/netboot/lance/nbgrub, tools/i386/netboot/depca/nbgrub,
- tools/i386/netboot/ni6510/stage1, tools/i386/netboot/3c90x/nbgrub,
- tools/i386/netboot/ni6510/stage2, tools/i386/netboot/smc9000/stage1,
- tools/i386/netboot/smc9000/stage2, tools/i386/netboot/3c509/pxegrub,
- tools/i386/netboot/3c509/stage1, tools/i386/netboot/3c509/stage2,
- tools/i386/netboot/sis900/pxegrub, tools/i386/netboot/ne2100/pxegrub,
- tools/i386/netboot/3c595/nbgrub, tools/i386/netboot/eepro/pxegrub,
- tools/i386/netboot/wd/nbgrub, tools/i386/netboot/ns8390/nbgrub,
- tools/i386/netboot/ni5210/stage1, tools/i386/netboot/ni5010/nbgrub,
- tools/i386/netboot/ni5210/stage2, tools/i386/netboot/exos205/stage1,
- tools/i386/netboot/exos205/stage2, tools/i386/netboot/eepro100/nbgrub,
- tools/i386/netboot/3c529/stage1, tools/i386/netboot/3c529/stage2,
- tools/i386/netboot/sis900/stage1, tools/i386/netboot/tulip/stage1,
- tools/i386/netboot/sis900/stage2, tools/i386/netboot/tulip/stage2,
- tools/i386/netboot/sk_g16/stage1, tools/i386/netboot/w89c840/nbgrub,
- tools/i386/netboot/sk_g16/stage2, tools/i386/netboot/tiara/stage1,
- tools/i386/netboot/tiara/stage2, tools/i386/netboot/depca/stage1,
- tools/i386/netboot/lance/stage1, tools/i386/netboot/3c90x/stage1,
- tools/i386/netboot/depca/stage2, tools/i386/netboot/lance/stage2,
- tools/i386/netboot/3c90x/stage2, tools/i386/netboot/otulip/pxegrub,
- tools/i386/netboot/tulip/pxegrub, tools/i386/netboot/epic100/nbgrub,
- tools/i386/netboot/3c595/stage1, tools/i386/netboot/ni5210/pxegrub,
- tools/i386/netboot/3c595/stage2, tools/i386/netboot/w89c840/pxegrub,
- tools/i386/netboot/wd/stage1, tools/i386/netboot/wd/pxegrub,
- tools/i386/netboot/wd/stage2, tools/i386/netboot/otulip/nbgrub,
- tools/i386/netboot/ns8390/stage1, tools/i386/netboot/eepro/nbgrub,
- tools/i386/netboot/ni5010/stage1, tools/i386/netboot/ns8390/stage2,
- tools/i386/netboot/ni5010/stage2, tools/i386/netboot/ne2100/nbgrub,
- tools/i386/netboot/ni6510/pxegrub, tools/i386/netboot/eepro100/stage1,
- tools/i386/netboot/eepro100/stage2, tools/i386/netboot/ne/nbgrub,
- tools/i386/netboot/depca/pxegrub, tools/i386/netboot/ne/pxegrub,
- tools/i386/netboot/w89c840/stage1, tools/i386/netboot/rtl8139/nbgrub,
- tools/i386/netboot/w89c840/stage2, tools/i386/netboot/sk_g16/pxegrub,
- tools/i386/netboot/lance/pxegrub, tools/i386/netboot/ni6510/nbgrub,
- tools/i386/netboot/smc9000/nbgrub, tools/i386/netboot/3c529/pxegrub,
- tools/i386/netboot/3c595/pxegrub, tools/i386/netboot/ns8390/pxegrub,
- tools/i386/netboot/epic100/pxegrub, tools/i386/netboot/3c509/nbgrub: New
- version of grub (0.91) with allstage and pxegrub
-
- * tools/i386/netboot/3c507/pxegrub, tools/i386/netboot/3c507/stage1,
- tools/i386/netboot/3c507/stage2, tools/i386/netboot/3c503/nbgrub,
- tools/i386/netboot/3c503/pxegrub, tools/i386/netboot/3c507/nbgrub,
- tools/i386/netboot/3c503/stage1, tools/i386/netboot/3c503/stage2:
- Fixning some file missing in netboot
-
-2002/02/14 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: fixed obsoletes management according to urpmi code.
-
-2002/02/14 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/ga.po, share/po/cy.po, share/po/is.po, share/po/ar.po,
- share/po/sl.po, share/po/ro.po: Instead of temporary removingfiles from
- CVS put a rule in Makefile to
- don't use them (thanks Thierry)
- updated some po files; removed the ones too lowly translated for the 8.2
-
- * share/po/pt_BR.po: updted Brazilian file
- updated some po files; removed the ones too lowly translated for the 8.2
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/sr.po,
- share/po/de.po, share/po/et.po, share/po/tr.po, share/po/az.po,
- share/po/ru.po, share/po/hr.po, share/po/ko.po, share/po/nl.po,
- share/po/ja.po, share/po/sv.po, share/po/hu.po, share/po/it.po,
- share/po/id.po, share/po/pl.po, share/po/fi.po, share/po/no.po,
- share/po/th.po, share/po/el.po, share/po/sk.po, share/po/lt.po,
- share/po/br.po, share/po/ca.po, share/po/gl.po, share/po/lv.po,
- share/po/uk.po, share/po/eo.po, share/po/bs.po, share/po/zh_TW.po,
- share/po/cs.po, share/po/af.po: updated some po files; removed the ones
- too lowly translated for the 8.2
-
- * share/po/vi.po: updated Vietnamese file
- updated some po files; removed the ones too lowly translated for the 8.2
-
- * share/po/Makefile: Instead of temporary removingfiles from CVS put a
- rule in Makefile to
- don't use them (thanks Thierry)
-
-2002/02/14 Pixel <pixel@mandrakesoft.com>
-
- * standalone/lsnetdrake: adapt to the neater network::smb and network::nfs
-
- * network/smbnfs.pm, network/smb.pm, network/nfs.pm: cleaner & OOed code,
- with more code sharing
-
- * interactive.pm: if testing, don't use kdesu
-
- * install_steps.pm: gzip report.bug
-
- * interactive_gtk.pm, diskdrake/interactive.pm: use the new warp_text
- feature
-
- * standalone/diskdrake: fix expert and testing options handling
-
- * my_gtk.pm (ctree_set_icon): new function
-
- * c/stuff.xs.pm: undef'ing some macros used by 2 independent sources et
- still needed :-(
- #include iconv.h is needed even when C_RPM is undefined
-
- * diskdrake/smbnfs_gtk.pm: some cleanup, icons showing wether a
- mount-point is associated are coming
-
-2002/02/14 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * share/po/br.po: update
- convert to utf-8
-
- * standalone/drakxtv: uses xawtv internal strings instead of frequencies
- tables ids as values
- in %freqtables in order to enhance drakxtv robustness when
- translators'll
- arrive. thus we'll pass right strings to scantv instead of translated
- ones
- explain how we manage the "all frequencies" case
- display sorted tv norms
-
-2002/02/13 erwan
-
- * tools/i386/netboot/device.map, tools/i386/netboot/makeImages: Adding
- missing file on netboot
-
- * tools/i386/netboot/make_boot_network, tools/i386/netboot/grub: updating
- grub in netboot
-
-2002/02/13 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_any.pm: avoid generating headers for copying file in
- postinstall-rpm directory.
- make sure not to crash if a package that should have been in CD1 is
- somewhere
- else.
- fixed stupid typo.
- removed all @needToCopy... variables and now use INSTALL category in
- rpmsrate.
-
- * share/rpmsrate: updated INSTALL category with the merge of DrakX
- obsoleted list (it will use
- INSTALL now :-)
-
- * pkgs.pm: added extension to setSelectedFromCompssList.
-
- * share/rpmsrate.server: synced INSTALL category with standard rpmsrate.
-
-2002/02/13 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/hu.po: updated Danish and Hungarian files
-
- * share/po/da.po: updated Danish file
- updated Danish and Hungarian files
-
-2002/02/13 Pixel <pixel@mandrakesoft.com>
-
- * network/nfs.pm: $server->{ip} is no more mandatory
-
- * network/smb.pm: don't show shares ending with "$"
- $server->{ip} is no more mandatory
-
- * any.pm (setupBootloader): switch from "list" to "combo"
-
- * fs.pm (fstab_to_string): unsetting mount points in standalone will now
- work
- - handle WORM type in /proc/scsi/scsi
- - added media_type cdrom-burner
- - adapting to new media_type
- - nicer fd&hd testing
-
- * diskdrake/smbnfs_gtk.pm: have the fstab entries shown by default
-
- * detect_devices.pm, diskdrake/interactive.pm:
- - handle WORM type in /proc/scsi/scsi
- - added media_type cdrom-burner
- - adapting to new media_type
- - nicer fd&hd testing
-
-2002/02/13 Till Kamppeter <till@mandrakesoft.com>
-
- * printerdrake.pm: When one visited the help page of a remote CUPS printer
- afterwards the full
- printer modification menu was shown, not only the one for remote CUPS
- printers. This is fixed now.
-
-2002/02/12 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/wa.po, share/po/DrakX.pot: updated Czech and Walloon files
-
- * share/po/cs.po: updated Czech file
- updated Czech and Walloon files
-
-2002/02/12 Pixel <pixel@mandrakesoft.com>
-
- * devices.pm: i prefer /(.*?)(\d+)$/ to /(.*\D)(\d+)$/
-
-2002/02/12 Till Kamppeter <till@mandrakesoft.com>
-
- * detect_devices.pm: In the USB auto-detection checked whether and where
- the device node was
- created.
-
-2002/02/12 dam's <damien@mandrakesoft.com>
-
- * share/step-red.xpm, share/step-orange.xpm, share/step-orange-click.xpm,
- share/themes/mdk-check_on.png, share/step-green-click.xpm,
- share/step-green.xpm, share/step-red-click.xpm,
- share/themes/mdk-check_off.png: new gfx
-
- * standalone/drakbackup, network/network.pm: bug correction
-
-2002/02/12 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/hu.po: updated Hungarian file
- updated pot file
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/DrakX.pot, share/po/es.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/eu.po,
- share/po/az.po, share/po/ru.po, share/po/pt_BR.po, share/po/hr.po,
- share/po/ko.po, share/po/cy.po, share/po/nl.po, share/po/ja.po,
- share/po/wa.po, share/po/sv.po, share/po/is.po, share/po/it.po,
- share/po/id.po, share/po/pl.po, share/po/fi.po, share/po/no.po,
- share/po/th.po, share/po/el.po, share/po/sk.po, share/po/lt.po,
- share/po/ar.po, share/po/sl.po, share/po/vi.po, share/po/ca.po,
- share/po/gl.po, share/po/lv.po, share/po/uk.po, share/po/eo.po,
- share/po/ro.po, share/po/bs.po, share/po/da.po, share/po/zh_TW.po,
- share/po/cs.po, share/po/af.po: updated pot file
-
-2002/02/12 Pixel <pixel@mandrakesoft.com>
-
- * devices.pm: i prefer /(.*?)(\d+)$/ to /(.*\D)(\d+)$/
-
- * docs/README.pxe: cleanup the .cfg
-
- * share/rpmsrate:
- - move bootsplash from SYSTEM to X
- - lower Aurora
-
-2002/02/12 Till Kamppeter <till@mandrakesoft.com>
-
- * printerdrake.pm: Fixed:
- - Endless loop when entering printerdrake during installation in
- recommended
- mode without local printer
- - Printerdrake was not closed when one was in the "Add Printer"
- sequence
- during installation and one clicked another installation item (entries
- on left hand side)
- - When configuring printing only after installation Printerdrake tried
- to
- check the installed queues without Foomatic being installed (bug was
- already in 8.1, but noone discovered it).
- - CUPS died when one tried to add a (local) printer in recommended
- mode
- after installation.
- - Improved text for the dialog telling that no local printer was
- detected.
- - The list of auto-detected printers appeared as drop-down menu and
- not as
- a list.
-
- * detect_devices.pm: In the USB auto-detection checked whether and where
- the device node was
- created.
- Fixes on device auto-detection:
- - Made USB printer auto-detection routine in "detect_devices.pm"
- creating
- the appropriate device nodes (needed for USB printers being recognized
- during installation).
- - Fixed "devices.pm" to be able to handle device files with numbers
- geater
- than 9 (ex: /dev/usb/lp10).
-
- * standalone/printerdrake:
- - Assure that Foomatic is installed before checking existing printer
- queues.
-
- * devices.pm: Fixes on device auto-detection:
- - Made USB printer auto-detection routine in "detect_devices.pm"
- creating
- the appropriate device nodes (needed for USB printers being recognized
- during installation).
- - Fixed "devices.pm" to be able to handle device files with numbers
- geater
- than 9 (ex: /dev/usb/lp10).
-
- * printer.pm: Added forgotten '$prefix'es.
- Fixed:
- - Endless loop when entering printerdrake during installation in
- recommended
- mode without local printer
- - Printerdrake was not closed when one was in the "Add Printer"
- sequence
- during installation and one clicked another installation item (entries
- on left hand side)
- - When configuring printing only after installation Printerdrake tried
- to
- check the installed queues without Foomatic being installed (bug was
- already in 8.1, but noone discovered it).
- - CUPS died when one tried to add a (local) printer in recommended
- mode
- after installation.
- - Improved text for the dialog telling that no local printer was
- detected.
- - The list of auto-detected printers appeared as drop-down menu and
- not as
- a list.
-
-2002/02/11 dam's <damien@mandrakesoft.com>
-
- * share/list: added modinfo
-
- * network/netconnect.pm: added cancel for first step
-
-2002/02/11 Franēois Pons <fpons@mandrakesoft.com>
-
- * any.pm: fixed syntax error...
-
- * Xconfigurator.pm: avoid testing fbdev driver.
-
- * install_steps.pm: added Aurora or bootsplash for getting a need on frame
- buffer.
- added fbdev for GeForce Integrated.
-
-2002/02/11 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/da.po, share/po/vi.po, share/po/hu.po: updated Danish,
- Hungarian and Vietnamese files
-
-2002/02/11 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm: booh, fpons was faster than me on "bootsplash wanting
- fb". Keeping my solution ;p
-
- * c/stuff.xs.pm: "standard_charset" and "iconv" are needed even when C_RPM
- is undefined
-
- * any.pm: allow to edit the initrd field (thx to randy.k.wilson)
-
- * install_any.pm (@needToCopy): add "ntp"
-
-2002/02/11 warly
-
- * share/rpmsrate: remove dev from INSTALL, the sun is rising, and there
- are no more needs to have ppp in the INSTALL section, as the darkness is
- going away...
-
-2002/02/10 Pixel <pixel@mandrakesoft.com>
-
- * any.pm: in case there is both ata66 (hde) and ata33 hard drives, go to
- expert
- questions directly (it would need a semi_auto asking on which drive the
- bios
- boots...)
-
-2002/02/10 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/nl.po: updated Dutch file
-
-2002/02/09 daouda
-
- * share/rpmsrate:
- - add rfbdrake to NETWORKING_REMOTE_ACCESS and
- NETWORKING_REMOTE_ACCESS_SERVER
-
-2002/02/09 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * help.pm: updated help.pm file
-
- * share/po/fi.po, share/po/DrakX.pot, share/po/help_xml2pm.pl,
- share/po/es.po, share/po/fr.po, share/po/sv.po, share/po/da.po,
- share/po/de.po, share/po/hu.po, share/po/it.po, share/po/eu.po: merged
- with the manual help
-
-2002/02/09 warly
-
- * share/rpmsrate: add ppp in INSTALL
- add dev in INSTALL
-
-2002/02/08 dam's <damien@mandrakesoft.com>
-
- * pixmaps/wiz_drakgw.png, pixmaps/wiz_default_up.png,
- pixmaps/wiz_firewall.png, pixmaps/wiz_draknet.png: new gfx
-
- * network/network.pm: corrected wireless modules
-
-2002/02/08 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * lang.pm, share/locales-skeleton.tar.bz2: Added choice of charset for
- various languages
-
-2002/02/08 Pixel <pixel@mandrakesoft.com>
-
- * docs/SHORTCUTS: add F1 & F2
-
-2002/02/08 Till Kamppeter <till@mandrakesoft.com>
-
- * printerdrake.pm: Added instructions for scanning on HP's MF devices to
- the printer help page.
- HP PhotoSmart printers do not scan, so do not show how to scan with
- them.
- Do not let dialogs of network configuration correction appear embedded
- in the "Add printer" wizard.
- Completed wizard mode for adding a printer in both recommended and
- expert mode.
-
- * printer.pm: Enabled transferring queues of HP multi-function devices
- between spoolers.
- CUPS 1.1.13 dies on SIGHUP, do normal restart instead.
- Completed wizard mode for adding a printer in both recommended and
- expert mode.
-
-2002/02/08 warly
-
- * share/rpmsrate: add bootsplash in system 4
-
-2002/02/07 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/DrakX.pot, share/po/es.po, share/po/fr.po, share/po/bg.po,
- share/po/ga.po, share/po/sr.po, share/po/de.po, share/po/et.po,
- share/po/tr.po, share/po/eu.po, share/po/az.po, share/po/ru.po,
- share/po/pt_BR.po, share/po/hr.po, share/po/ko.po, share/po/cy.po,
- share/po/nl.po, share/po/ja.po, share/po/wa.po, share/po/sv.po,
- share/po/is.po, share/po/hu.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/fi.po, share/po/no.po, share/po/th.po,
- share/po/el.po, share/po/sk.po, share/po/lt.po, share/po/ar.po,
- share/po/sl.po, share/po/vi.po, share/po/br.po, share/po/ca.po,
- share/po/gl.po, share/po/lv.po, share/po/uk.po, share/po/eo.po,
- share/po/ro.po, share/po/bs.po, share/po/da.po, share/po/zh_TW.po,
- share/po/cs.po, share/po/af.po: updated pot file
-
-2002/02/07 Pixel <pixel@mandrakesoft.com>
-
- * interactive_gtk.pm: fix error causing a bad window sizing when there is
- a horiz scroll
-
-2002/02/07 dam's <damien@mandrakesoft.com>
-
- * my_gtk.pm: fixed shadow when testing X
-
-2002/02/07 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/help_xml2pm.pl: fixed email address
-
-2002/02/07 Pixel <pixel@mandrakesoft.com>
-
- * diskdrake/smbnfs_gtk.pm:
- - don't pop the "do you want to install samba?"
- - rwindow is not a window when embedded, so set_default_size only if
- possible
-
- * my_gtk.pm: make perl_checker happy
- ensure no more than one child is in the Plug
-
- * interactive.pm: fix (causing XFdrake to use a combo instead of a list)
-
- * interactive_gtk.pm: fix error causing a bad window sizing when there is
- a horiz scroll
- (exit): ensure USR1 is sent to mcc
-
- * Xconfigurator.pm: allow to edit the hsyncrange and vsyncrange when
- choosing monitor "Custom"
-
- * install2.pm, install_steps.pm: create and use miscellaneousAfter (so
- that SECURE_LEVEL is set *after* asking)
-
- * diskdrake/interactive.pm (Options): wrap the help text
-
- * standalone/diskdrake: handle --embedded xxx xxx
-
-2002/02/07 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * standalone/drakxtv, Makefile.config: add drakxtv (scantv gui)
-
- * standalone/localedrake: fix pixel stuff: don't restart wm on cancel
-
-2002/02/07 dam's <damien@mandrakesoft.com>
-
- * share/logo-mandrake.png: beta 2
-
- * printerdrake.pm: corrected wizard pb
-
- * my_gtk.pm: wizard fixes
-
-2002/02/07 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm (mount): precise the type when mounting in standalone (for smb,
- nfs would not need it)
-
- * diskdrake/smbnfs_gtk.pm:
- - don't pop the "do you want to install samba?"
- - rwindow is not a window when embedded, so set_default_size only if
- possible
-
- * interactive.pm: fix (causing XFdrake to use a combo instead of a list)
-
- * my_gtk.pm: ensure no more than one child is in the Plug
-
- * standalone/diskdrake: handle --embedded xxx xxx
-
- * interactive_gtk.pm (exit): ensure USR1 is sent to mcc
-
-2002/02/06 dam's <damien@mandrakesoft.com>
-
- * my_gtk.pm: removed ugly pink and ugly left bar for wizard mode
-
-2002/02/06 Franēois Pons <fpons@mandrakesoft.com>
-
- * rescue/tree/etc/oem, tools/oem-prepare: better handling of group linked
- to hardware or options.
-
-2002/02/06 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/rpmsrate: have frozen-bubble in GAMES at level 4
-
-2002/02/06 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/fr.po, share/po/fi.po, share/po/DrakX.pot: updated French file
-
-2002/02/06 Till Kamppeter <till@mandrakesoft.com>
-
- * printer.pm: Automatic configuration of the scanning part of HP's
- multi-function devices.
-
- * printerdrake.pm: Added some stuff for the Wizard mode.
- Automatic configuration of the scanning part of HP's multi-function
- devices.
- Updated automatic package installation in printerdrake, no "kups" and
- "qtcups" any more, but "gpr", "a2ps", and "hpoj", updated also
- "rpmsrate" and "rpmsrate.server" appropriately.
-
- * share/rpmsrate.server, share/rpmsrate: Added scanning packages to
- INSTALL section, for HP MF device installation by printerdrake.
- Updated automatic package installation in printerdrake, no "kups" and
- "qtcups" any more, but "gpr", "a2ps", and "hpoj", updated also
- "rpmsrate" and "rpmsrate.server" appropriately.
-
-2002/02/05 Till Kamppeter <till@mandrakesoft.com>
-
- * printer.pm, printerdrake.pm: Added automatic configuration of HPOJ for
- HP's multi-function devices.
-
-2002/02/05 dam's <damien@mandrakesoft.com>
-
- * standalone/logdrake: wizard updated
- correction for mcc.
-
-2002/02/05 Franēois Pons <fpons@mandrakesoft.com>
-
- * share/rpmsrate.server: synced with normal rpmsrate for Basque
- management.
-
- * install2.pm: auto_allocate for oem mode is not needed as oem script
- create all necessary partition.
-
- * install_any.pm: add support for Basque (no KDE).
-
- * mdk-stage1/init-data/msgboot-graphicallogo.img.bz2: newer syslinux 1.67.
-
- * share/rpmsrate: add support for Basque (no netscape in such case)
-
- * rescue/tree/etc/oem: select preferred kernel as kernel-\d.
-
- * install_steps.pm: fixed logic, when someone want /root/drakx,
- it has to check /root/drakx and not /root only.
-
-2002/02/05 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * rescue/tree/sbin/modprobe: don't do insmod -f, it's not really necessary
- and it taints the kernel (pabo)
-
- * rescue/tree/etc/profile: use LD_LIBRARY_PATH in rescue so that PATH'ing
- in /mnt
- can really be used
-
-2002/02/05 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/es.po, share/po/bg.po, share/po/ga.po, share/po/sr.po,
- share/po/de.po, share/po/et.po, share/po/tr.po, share/po/eu.po,
- share/po/az.po, share/po/ru.po, share/po/pt_BR.po, share/po/hr.po,
- share/po/ko.po, share/po/cy.po, share/po/nl.po, share/po/ja.po,
- share/po/wa.po, share/po/sv.po, share/po/is.po, share/po/hu.po,
- share/po/it.po, share/po/id.po, share/po/pl.po, share/po/no.po,
- share/po/th.po, share/po/el.po, share/po/sk.po, share/po/lt.po,
- share/po/ar.po, share/po/sl.po, share/po/vi.po, share/po/br.po,
- share/po/ca.po, share/po/gl.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/ro.po, share/po/bs.po, share/po/da.po,
- share/po/zh_TW.po, share/po/cs.po, share/po/af.po: updated pot file
-
-2002/02/05 Pixel <pixel@mandrakesoft.com>
-
- * bootloader.pm: fix "help lilo when there is hdd with no hdc drive"
-
- * Xconfigurator.pm: testFinalConfig now always returns true if test is
- skipped because of a bad_card (back to the old behaviour, this was no
- good (the aim is to enable changing the monitor when test is skipped))
-
- * share/po/fr.po: fix "Details" translated in "Détails de la partition"
- but is used at different
- place where the meaning has nothing to do with "partitions"
-
-2002/02/05 Till Kamppeter <till@mandrakesoft.com>
-
- * printer.pm, printerdrake.pm: Added automatic configuration of HPOJ for
- HP's multi-function devices.
-
-2002/02/05 warly
-
- * share/compssUsers.server: remove non server group from rpmsrate.server
- add utilities group in compssUser.server
- (webmin,ssh-server,wizards,monitoring)
-
- * share/rpmsrate.server: begin rpmsrate.server cleaning
-
-2002/02/05 Pixel <pixel@mandrakesoft.com>
-
- * bootloader.pm: fix "help lilo when there is hdd with no hdc drive"
-
- * Xconfigurator.pm: testFinalConfig now always returns true if test is
- skipped because of a bad_card (back to the old behaviour, this was no
- good (the aim is to enable changing the monitor when test is skipped))
-
-2002/02/05 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm: log the "chkconfig --del gpm" when there is a serial
- mouse
-
-2002/02/04 dam's <damien@mandrakesoft.com>
-
- * standalone/logdrake: corrected typo. Yvounet, check your code!!
- embedded, explain
-
- * my_gtk.pm: bug correction
-
- * standalone/drakfont, services.pm, network/netconnect.pm: applied cooker
- guy english review
-
-2002/02/04 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: added v4l module all the time (along with dbe already
- present).
-
-2002/02/04 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * install_steps.pm: have numlock activated when isLaptop rather than
- $o->{pcmcia}
-
-2002/02/04 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/sp.po, share/po/zh_CN.po, share/po/no.po, share/po/fi.po,
- share/po/DrakX.pot, share/po/th.po, share/po/es.po, share/po/fr.po,
- share/po/sr.po, share/po/el.po, share/po/et.po, share/po/sk.po,
- share/po/tr.po, share/po/eu.po, share/po/sl.po, share/po/vi.po,
- share/po/uk.po, share/po/eo.po, share/po/nl.po, share/po/wa.po,
- share/po/sv.po, share/po/zh_TW.po: updated some po files
-
-2002/02/04 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm: fix creating /etc/security/msec/server
-
- * share/po/fr.po: fix "More" translation
-
-2002/02/04 Till Kamppeter <till@mandrakesoft.com>
-
- * printer.pm, printerdrake.pm: Made HP multi-function devices configured
- with HPOJ being displayed correctly by printerdrake.
-
- * detect_devices.pm: Replace "Hewlett-Packard" by "HP" when HP device is
- detected on a parallel port.
-
-2002/02/04 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * share/po/fr.po: update french translations
-
-2002/02/03 Pixel <pixel@mandrakesoft.com>
-
- * any.pm: force a few more "list"s instead of "combo" boxes
- since "format" is now handled for combo boxes, combo boxes are used in
- much too many places. Fix this by forcing type "list" for some cases,
- and using type "list" when a ask_from has only one entry
-
- * interactive.pm: since "format" is now handled for combo boxes, combo
- boxes are used in much too many places. Fix this by forcing type "list"
- for some cases, and using type "list" when a ask_from has only one entry
-
- * bootloader.pm:
- - fix some vga text modes 80x30
- - chmod 600 lilo.conf when a password is given
- - fix general "append"
- (thanks to David Eastcott)
- "password" works without "restricted", not the other way round (reported
- by David Eastcott)
- fix typo
-
-2002/02/03 warly
-
- * share/rpmsrate.server: synchronize with current cooker rpmsrate
-
-2002/02/03 Pixel <pixel@mandrakesoft.com>
-
- * any.pm: force a few more "list"s instead of "combo" boxes
- since "format" is now handled for combo boxes, combo boxes are used in
- much too many places. Fix this by forcing type "list" for some cases,
- and using type "list" when a ask_from has only one entry
-
- * interactive.pm: since "format" is now handled for combo boxes, combo
- boxes are used in much too many places. Fix this by forcing type "list"
- for some cases, and using type "list" when a ask_from has only one entry
-
- * bootloader.pm: fix typo
- help lilo when there is hdd with no hdc drive (needs testing!)
-
-2002/02/03 warly
-
- * share/rpmsrate.server, share/compssUsers.server: add rpmsrate.server and
- compssUsers.server
-
-2002/02/03 Pixel <pixel@mandrakesoft.com>
-
- * bootloader.pm: help lilo when there is hdd with no hdc drive (needs
- testing!)
-
-2002/02/03 warly
-
- * share/rpmsrate.server, share/compssUsers.server: add rpmsrate.server and
- compssUsers.server
-
-2002/02/02 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator.pm: XFree is now 4.2
-
- * standalone/fileshareset: fix dropping samba sections which don't have
- any "path="
-
-2002/02/01 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/sv.po, share/po/DrakX.pot: updated Swedish file
-
- * share/po/fr.po: merged again French file to recover some lost strings;
- and added non breakable spaces at all the needed places as required
- by French typography
-
-2002/02/01 Pixel <pixel@mandrakesoft.com>
-
- * my_gtk.pm: please perl_checker
-
- * install_interactive.pm: use from_Mb for choosing the size of the windows
- partition
-
- * install_steps.pm: create symlink /etc/security/msec/server in security >
- 3
-
-2002/02/01 Till Kamppeter <till@mandrakesoft.com>
-
- * printerdrake.pm: First steps of the implementation for the "Add printer"
- wizard.
-
- * detect_devices.pm: Made auto-detection working for HP DeskJet 840C on
- USB
- General improvements for reliability of USB printer auto-detection
-
-2002/02/01 yduret
-
- * pixmaps/wiz_scannerdrake.png: readding it with -kb option (i am still
- jeune and boulet)
- rm for readding with -kb option (i am jeune and boulet)
-
- * standalone/logdrake: ergo fix thx dadou report
- fix --explain=foo bug that prevent to show anything
-
- * bootlook.pm: ergo fix thx dadou report...
-
-2002/02/01 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * services.pm, standalone/drakbackup, printerdrake.pm,
- standalone/logdrake: changed some strings to make translation easier
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/DrakX.pot, share/po/es.po, share/po/fr.po, share/po/bg.po,
- share/po/ga.po, share/po/sr.po, share/po/de.po, share/po/et.po,
- share/po/tr.po, share/po/eu.po, share/po/az.po, share/po/ru.po,
- share/po/pt_BR.po, share/po/hr.po, share/po/ko.po, share/po/cy.po,
- share/po/nl.po, share/po/ja.po, share/po/wa.po, share/po/sv.po,
- share/po/is.po, share/po/hu.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/no.po, share/po/fi.po, share/po/th.po,
- share/po/el.po, share/po/sk.po, share/po/lt.po, share/po/ar.po,
- share/po/sl.po, share/po/vi.po, share/po/br.po, share/po/ca.po,
- share/po/gl.po, share/po/lv.po, share/po/uk.po, share/po/eo.po,
- share/po/ro.po, share/po/bs.po, share/po/da.po, share/po/zh_TW.po,
- share/po/cs.po, share/po/af.po: updated pot file
-
-2002/02/01 Pixel <pixel@mandrakesoft.com>
-
- * my_gtk.pm: please perl_checker
-
- * install_interactive.pm: use from_Mb for choosing the size of the windows
- partition
-
- * Xconfigurator.pm: testFinalConfig now returns false if test is skipped
- because of a bad_card or
- verybad_card and $skip_badcard is not set
-
-2002/01/31 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * lang.pm, share/keyboards.tar.bz2, keyboard.pm: Added Tamil language and
- keyboard choices (KDE is translated to Tamil)
-
-2002/01/31 yduret
-
- * pixmaps/wiz_scannerdrake.png: on rajoute la zolie image
-
-2002/01/30 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * Xconfigurator.pm: Added setting of model=jp106 for Japanese keyboard
-
- * keyboard.pm, share/keyboards.tar.bz2: Added Bulgarian "phonetic"
- keyboard
-
- * lang.pm: Enabled "ms" language in the language selection list (there are
- Gnome and KDE
- translations for it)
-
- * share/po/be.po, share/po/zh_CN.po, share/po/no.po, share/po/fi.po,
- share/po/es.po, share/po/bg.po, share/po/de.po, share/po/et.po,
- share/po/el.po, share/po/ru.po, share/po/br.po, share/po/uk.po,
- share/po/eo.po, share/po/bs.po, share/po/nl.po, share/po/ro.po,
- share/po/da.po, share/po/zh_TW.po, share/po/cs.po, share/po/hu.po:
- updated some po files
-
-2002/01/30 Pixel <pixel@mandrakesoft.com>
-
- * share/rpmsrate: add gnome-core in GNOME (used to be required?)
-
- * Xconfigurator_consts.pm, Xconfigurator.pm: move "what is the
- running_window_manager" and "ask_window_manager_to_logout" to any.pm
-
- * any.pm (ask_window_manager_to_logout, running_window_manager): created
- from Xconfigurator and cleaned
- (selectLanguage): if $langs is empty, don't ask for "other languages"
-
- * pixmaps/wiz_printerdrake.png: re-adding with -kb
- removing for re-adding with -kb
-
- * standalone/localedrake: now works in normal user: it modifies the
- ~/.i18n (todo: handle kde crazy variables?)
-
- * lang.pm: handle read'ing and write'ing to a specified file (useful
- example: ~/.i18n)
-
-2002/01/30 sdupont
-
- * standalone/drakbackup: complex merging....
- change /var/drakbackup to /var/lib/drakbackup
- crontab update
- mail report update
- sendmail update
- require rpm mode
- code optimisation
- remove about gi
- new help function
-
-2002/01/29 Till Kamppeter <till@mandrakesoft.com>
-
- * pixmaps/wiz_printerdrake.png: Added logo for the "Add Printer" wizard of
- printerdrake.
-
- * printer.pm, printerdrake.pm: Prepared printerdrake for the "Add printer"
- wizard.
- Improvements for the selection of a local printer, especially when no or
- one printer was detected.
-
-2002/01/29 dam's <damien@mandrakesoft.com>
-
- * my_gtk.pm: icons placements are better
-
-2002/01/29 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * standalone/drakbug_report, standalone/drakautoinst, install2.pm,
- install_any.pm, install_steps.pm, log.pm, docs/README, pkgs.pm: move
- /root/* files (ddebug.log, install.log, report.bug,
- auto_inst.cfg.pl, replay_install.img) to /root/drakx/,
- and also save stage1.log there
-
- * partition_table_raw.pm: add new pixel-made grub signature
-
- * crypto.pm: update land2tzs accordingly to new url2land
- Add url2land entries for nl, it, at
-
- * any.pm: move /root/* files (ddebug.log, install.log, report.bug,
- auto_inst.cfg.pl, replay_install.img) to /root/drakx/,
- and also save stage1.log there
- rephrase a little bit highest level
- to not refer to "level 4" anymore
- use formatAlaTeX for describing security levels
-
- * install_steps_interactive.pm: fix thanks to chipaux msg about mkbootdisk
-
-2002/01/29 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/fr.po, share/po/sv.po, share/po/hr.po, share/po/de.po,
- share/po/DrakX.pot, help.pm, share/po/it.po, share/po/eu.po,
- share/po/es.po: updated pot file with help messages from manual
-
-2002/01/29 Pixel <pixel@mandrakesoft.com>
-
- * interactive.pm: handle "format" for combo's
-
- * bootloader.pm: use the new format for combo's to clean code handling
- {vga} field
-
- * diskdrake/hd_gtk.pm: look diskdrake.rc in another directory
-
- * any.pm: use the new format for combo's to clean code handling {vga}
- field
- handle the case where samba and/or nfs-utils are not installed
-
- * install_steps.pm: move the various bootloader::add_append's in
- setupBootloaderBefore
-
- * diskdrake/smbnfs_gtk.pm: handle the case where samba and/or nfs-utils
- are not installed
-
- * install_steps_interactive.pm: visually unselect X and docs when minimal
- install
- "With X" choice is now working
- handle "Cancel" on language selection
-
-2002/01/29 Till Kamppeter <till@mandrakesoft.com>
-
- * pixmaps/wiz_printerdrake.png: Added logo for the "Add Printer" wizard of
- printerdrake.
-
- * printer.pm, printerdrake.pm: Prepared printerdrake for the "Add printer"
- wizard.
- Improvements for the selection of a local printer, especially when no or
- one printer was detected.
-
-2002/01/29 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * interactive.pm: fix pixel's minimal example using interactive.
-
-2002/01/29 yduret
-
- * docs/interactive/ask_from_list, docs/interactive/wait_message,
- docs/interactive/ask_from_treelist, docs/interactive/ask_from_listf,
- docs/interactive/ask_from: added some snipet coe for example
-
- * standalone/logdrake: logdrake is now under gi/perl-install/standalone
-
-2002/01/29 Pixel <pixel@mandrakesoft.com>
-
- * diskdrake/hd_gtk.pm: look diskdrake.rc in another directory
-
- * install_steps.pm: move the various bootloader::add_append's in
- setupBootloaderBefore
-
-2002/01/28 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/po/fr.po: do the few new translations
-
- * standalone.pm: try to reflect hierarchy for */*.pm
-
-2002/01/28 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/zh_CN.po, share/po/no.po, share/po/fi.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/de.po,
- share/po/sk.po, crypto.pm, share/po/tr.po, share/po/eu.po,
- printerdrake.pm, standalone/draknet, share/po/vi.po, share/po/ko.po,
- share/po/uk.po, share/po/nl.po, share/po/bs.po, share/po/ja.po,
- standalone/drakbackup, share/po/wa.po, share/po/sv.po, share/po/da.po,
- share/po/zh_TW.po, share/po/cs.po, share/po/hu.po, share/po/af.po,
- share/po/id.po: Corrected various English typos
-
-2002/01/28 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm: fix typo
-
- * partition_table.pm: warn if partitions have been renumbered due to a
- partition being added or removed
-
- * diskdrake/interactive.pm: don't warn_if_renumbered during install
- warn if partitions have been renumbered due to a partition being added
- or removed
-
-2002/01/28 siegel
-
- * share/po/de.po: new german version
-
-2002/01/28 Till Kamppeter <till@mandrakesoft.com>
-
- * printerdrake.pm: Replaced "sleep" commands by a subroutine which waits
- exactly until CUPS is ready.
- CUPS >= 1.1.12 needs to "know" all devices, let CUPS restart if a device
- is not "known" to it.
-
- * printer.pm: Removed debug helper line.
- Replaced "sleep" commands by a subroutine which waits exactly until CUPS
- is ready.
- CUPS >= 1.1.12 needs to "know" all devices, let CUPS restart if a device
- is not "known" to it.
-
-2002/01/28 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * share/po/br.po: update brezhoneg translations
-
- * share/po/fr.po: more french translations
-
-2002/01/28 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/zh_CN.po, share/po/no.po, share/po/fi.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/de.po,
- share/po/sk.po, crypto.pm, share/po/tr.po, share/po/eu.po,
- printerdrake.pm, standalone/draknet, share/po/vi.po, share/po/ko.po,
- share/po/uk.po, share/po/nl.po, share/po/bs.po, share/po/ja.po,
- standalone/drakbackup, share/po/wa.po, share/po/sv.po, share/po/da.po,
- share/po/zh_TW.po, share/po/cs.po, share/po/hu.po, share/po/af.po,
- share/po/id.po: Corrected various English typos
-
-2002/01/28 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm: fix typo
-
- * diskdrake/interactive.pm, partition_table.pm: warn if partitions have
- been renumbered due to a partition being added or removed
-
-2002/01/28 dam's <damien@mandrakesoft.com>
-
- * network/tools.pm, network/netconnect.pm: debug network testing
-
-2002/01/28 Franēois Pons <fpons@mandrakesoft.com>
-
- * mdk-stage1/init-data/msgboot-graphicallogo.img.bz2: updated color of
- scroll bar and reduced its size.
-
- * bootloader.pm: fixed get_append if key=mem.
- timeout passed to 10 instead of 5.
-
-2002/01/28 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/rpmsrate: update games rates
-
-2002/01/28 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/DrakX.pot, share/po/es.po, share/po/fr.po, share/po/bg.po,
- share/po/ga.po, share/po/sr.po, share/po/de.po, share/po/et.po,
- share/po/tr.po, share/po/eu.po, share/po/az.po, share/po/ru.po,
- share/po/pt_BR.po, share/po/hr.po, share/po/ko.po, share/po/cy.po,
- share/po/nl.po, share/po/ja.po, share/po/wa.po, share/po/sv.po,
- share/po/is.po, share/po/hu.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/fi.po, share/po/no.po, share/po/th.po,
- share/po/el.po, share/po/sk.po, share/po/lt.po, share/po/ar.po,
- share/po/sl.po, share/po/vi.po, share/po/br.po, share/po/ca.po,
- share/po/gl.po, share/po/lv.po, share/po/uk.po, share/po/eo.po,
- share/po/ro.po, share/po/bs.po, share/po/da.po, share/po/zh_TW.po,
- share/po/cs.po, share/po/af.po: updated pot file
-
-2002/01/28 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm (remove_advertising): ensure removing /tmp/drakx-images
- can't fail
-
- * any.pm: simpler&nicer solution for writing kppprc in utf8
- have kppprc strings in utf8
-
- * detect_devices.pm: remove test code
-
- * install_steps.pm, bootloader.pm: cleanup perImageAppend code (hopefully
- handling nicely the mem=nopentium case)
-
- * diskdrake/smbnfs_gtk.pm: don't use wait_message's when waiting (waiting
- is usually very short), use a waiting cursor instead.
- (the wait_message's were causing bad interactivity stuff)
-
-2002/01/27 Pixel <pixel@mandrakesoft.com>
-
- * interactive.pm: add a minimal example
-
- * services.pm:
- - move the require on my_gtk to ask_standalone_gtk
- - cleanup
-
- * Makefile.config:
- - adapt to new diskdrake modules
- - add logdrake to STANDALONEPMS_
-
- * my_gtk.pm: strange protection against ensure_focus generating a "focus"
- event causing a
- dead-loop (reminder: ensure_focus helps ensuring a widget is focused)
-
- * Makefile.drakxtools, standalone.pm, Makefile, diskdrake_interactive.pm,
- install_interactive.pm, diskdrake.pm:
- - adapt to new diskdrake modules
- - some cleanup in drakxtools build
-
- * diskdrake/removable.pm: remove debugging code
- new diskdrake modules (diskdrake_interactive is now
- diskdrake::interactive, diskdrake is now diskdrake::hd_gtk, others
- created from diskdrake.pm)
-
- * diskdrake/interactive.pm, diskdrake/hd_gtk.pm,
- diskdrake/removable_gtk.pm: new diskdrake modules (diskdrake_interactive
- is now diskdrake::interactive, diskdrake is now diskdrake::hd_gtk,
- others created from diskdrake.pm)
-
- * diskdrake/smbnfs_gtk.pm: fix updating the actions
- new diskdrake modules (diskdrake_interactive is now
- diskdrake::interactive, diskdrake is now diskdrake::hd_gtk, others
- created from diskdrake.pm)
-
- * network/nfs.pm: find_exports: add a timeout
-
- * fs.pm: new function fstab_to_string
-
- * standalone/diskdrake: handle --removable *and* --removable=<dev>
- handle --removable=<dev>
- - new options --hd, --nfs, --smb, --removable
- - adapt to new diskdrake modules
- - save $all_hds->{current_fstab} to know if /etc/fstab must be saved
-
-2002/01/25 fabman
-
- * share/po/es.po: updated spanish translation
-
-2002/01/25 Pixel <pixel@mandrakesoft.com>
-
- * share/rpmsrate: add devfsd
-
- * install_any.pm: remove_advertising: use rm_rf since we don't have the
- real list of files (the .pl's are not in @advertising_images)
-
- * mdk-stage1/pci-resource/update-pci-ids.pl: remove 'ncr53c8xx'
-
-2002/01/25 Till Kamppeter <till@mandrakesoft.com>
-
- * printer.pm, printerdrake.pm: Less important options only shown when
- "Advanced" button clicked.
- Handling of cursor position in the main window improved.
- Handling of empty printer queue list in main window improved.
- Removed line breaks from longer texts, so that text flows into window
- nicely
- Minor text improvements.
-
-2002/01/25 dam's <damien@mandrakesoft.com>
-
- * install_any.pm: advertising engine updated
-
- * share/logo-mandrake.png: beta logo
-
- * install_steps_gtk.pm: corrected decy
- advertising engine updated
-
-2002/01/25 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/po/fr.po: please find a better fix
-
-2002/01/25 Pixel <pixel@mandrakesoft.com>
-
- * bootloader.pm: prefer default linux-{smp,enterprise,secure} over simple
- linux
- fix spelling
-
- * Makefile: call clean-rpmsrate
-
- * mdk-stage1/pci-resource/update-pci-ids.pl: remove 'ncr53c8xx'
-
-2002/01/25 dam's <damien@mandrakesoft.com>
-
- * install_steps_gtk.pm, install_any.pm: advertising engine updated
-
- * share/po/fr.po: typo
-
- * share/logo-mandrake.png: beta logo
-
-2002/01/25 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/po/fr.po: please find a better fix
-
-2002/01/25 Pixel <pixel@mandrakesoft.com>
-
- * mdk-stage1/Makefile: ensure errors propagate
-
- * bootloader.pm: prefer default linux-{smp,enterprise,secure} over simple
- linux
- fix spelling
-
- * Makefile: call clean-rpmsrate
-
- * mdk-stage1/pci-resource/Makefile: silly shell
- ensure errors propagate
-
-2002/01/25 dam's <damien@mandrakesoft.com>
-
- * share/po/fr.po: typo
- corrected too long label Mise ą niveau deas paquetages seule. please
- find a better FIX
-
-2002/01/25 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps_gtk.pm: cosmetic changes.
-
- * pkgs.pm: fixed try opening to trigger changeCD callback.
-
-2002/01/24 Pixel <pixel@mandrakesoft.com>
-
- * share/rpmsrate:
- - add msec in any install
- - use BIGMEM flag for kernel-enterprise
- - use SMP flag for kernel-smp
- (those 2 goes together with Warly's clean-rpmsrate)
- add flag DOCS which should work together with !excludedocs
-
- * any.pm: ensure grub is installed if grub is chosen
-
- * install_any.pm:
- - add DOCS (based on !excludedocs)
- - set BIGMEM and SMP flags
- (since kernel-smp and kernel-enterprise sub-numbers are better handled
- by
- rpmsrate together with Warly's clean-rpmsrate)
-
- * install_steps_interactive.pm, install2.pm: minimal install now handles
- excludedocs
-
- * install_steps.pm: log excludedocs
- minimal install now handles excludedocs
- put devfs=mount only if devfsd is installed
-
- * diskdrake_interactive.pm: truncate lvm name to 63 characters since
- longer vg names are not allowed
-
-2002/01/24 Till Kamppeter <till@mandrakesoft.com>
-
- * detect_devices.pm, printer.pm, printerdrake.pm: Fixed bug of empty menu
- entry appearing after adding a new printer.
- Modified "Local Printer" dialog to be more newbie-friendly.
-
-2002/01/23 dam's <damien@mandrakesoft.com>
-
- * network/adsl.pm: updated speedtouch code to use pppoa3
-
- * my_gtk.pm: removed font loading
-
-2002/01/23 Franēois Pons <fpons@mandrakesoft.com>
-
- * bootloader.pm: fixed to allow multiple mem=xxx parameter (especially
- mem=nopentium).
-
- * install_steps.pm: restored mem=nopentium.
- removed mem=nopentium.
-
-2002/01/23 Pixel <pixel@mandrakesoft.com>
-
- * standalone/fileshareset: name mangling max length set to 12
- use name mangling for samba labels
-
-2002/01/23 Till Kamppeter <till@mandrakesoft.com>
-
- * printer.pm, printerdrake.pm: New user interface in main window
- More printer info in printer modification window
- Better support for remote CUPS printers
-
-2002/01/22 dam's <damien@mandrakesoft.com>
-
- * my_gtk.pm: improved widget_icons
-
- * install_steps.pm: added net_cnx_pg output when configuring network in
- auto install
-
-2002/01/22 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: added support to save already existing synthesis file.
-
- * install_any.pm: changed code to build synthesis file, check if they have
- not already been copied
- from mirror, or build them using parsehdlist.
-
-2002/01/22 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/po/fr.po: Translate a few things more
-
-2002/01/22 Pixel <pixel@mandrakesoft.com>
-
- * diskdrake_interactive.pm: cleanup error messages (and fix diskdrake's)
- defaults to ext3 instead of ext2
-
- * interactive.pm: add "quit_if_double_click" and "tree_expanded" flags
- (request from till)
- add feature "allow_empty_list" for "list" entries (disables the special
- cases for 0 and 1 element lists)
-
- * install_any.pm, diskdrake.pm: cleanup error messages (and fix
- diskdrake's)
-
- * install_interactive.pm, raid.pm: defaults to ext3 instead of ext2
-
- * partition_table.pm: remove unused auto_win_extended stuff
- handle extended partitions with no partitions inside (esp. for the first
- hda5 & windows XP)
-
- * bootloader.pm:
- - fix default not being formatted like labels for lilo
- - check the label is not already used *case-sensitively*
- - check a kernel_or_dev is given
-
- * any.pm:
- - remove the default entry when that entry is removed
- - use allow_empty_list for displaying the entries
- - fix default not being formatted like labels for lilo
- - check the label is not already used *case-sensitively*
- - check a kernel_or_dev is given
-
- * fsedit.pm: yet again better error reporting
- defaults to ext3 instead of ext2
-
- * standalone/drakboot, bootlook.pm: fix yves's code duplication of
- lilo_choice (use $::lilo_choice in bootlook)
-
- * interactive_gtk.pm: add "quit_if_double_click" and "tree_expanded" flags
- (request from till)
-
- * install_steps_interactive.pm: cleanup error messages (and fix
- diskdrake's)
- better messages for the minimal installs
-
- * standalone/diskdrake: yet again better error reporting
- cleanup error messages (and fix diskdrake's)
-
- * share/rpmsrate: move mandrake-mime from SYSTEM to X
- lower sndconfig
-
-2002/01/22 fcrozat
-
- * share/rpmsrate: Really install gnome control center when installing
- GNOME
-
-2002/01/22 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps.pm: added mem=nopentium for any Athlon or Duron processor.
-
-2002/01/22 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * Makefile: exclude standalone from testing
-
- * share/po/fr.po: resolve small conflict
-
-2002/01/22 Pixel <pixel@mandrakesoft.com>
-
- * modules.pm: add the new "mii" module to 'net_raw'
-
- * install_steps_interactive.pm: better messages for the minimal installs
- fix a few cancel's (reported by slegros)
- don't ask security level in non-expert
-
- * install_steps_gtk.pm, install_interactive.pm: fix a few cancel's
- (reported by slegros)
-
- * share/rpmsrate: move mandrake-mime from SYSTEM to X
- lower sndconfig
-
-2002/01/21 Pixel <pixel@mandrakesoft.com>
-
- * interactive_gtk.pm, my_gtk.pm: hopefully better dialog box sizing
-
- * install_steps_interactive.pm, install2.pm: can't call
- any::config_libsafe so early during install, move it where msec is
- called
-
- * any.pm: quiet perl's warning
-
-2002/01/21 dam's <damien@mandrakesoft.com>
-
- * install_steps.pm: fixed network conf in auto install
- corrected network down
-
- * my_gtk.pm: removed debug print
- icons widget improvment : icon placment, highlighting
-
-2002/01/21 Pixel <pixel@mandrakesoft.com>
-
- * diskdrake.pm: increase the size of the "Choose action" box
-
- * diskdrake_interactive.pm: remove the "Active" partition feature
-
- * interactive_gtk.pm, my_gtk.pm: hopefully better dialog box sizing
-
- * install2.pm: can't call any::config_libsafe so early during install,
- move it where msec is called
-
- * install_steps_interactive.pm: can't call any::config_libsafe so early
- during install, move it where msec is called
- cleanup, update, enhance security level choice
-
- * standalone/draksec: cleanup, update, enhance security level choice
-
- * install_steps.pm: remove deprecated msec groups adding
- cleanup
-
- * tools/i386/netboot/stage2.3c90x, tools/i386/netboot/grub: newer grub
-
- * any.pm: quiet perl's warning
- cleanup, update, enhance security level choice
- when creating users, add handling of xgrp/rpm/adm/wheel groups in high
- security
- fix advice about "usermod -G"
-
- * tools/i386/netboot/menu.lst.example: add gateway parameter
-
-2002/01/21 dam's <damien@mandrakesoft.com>
-
- * share/logo-mandrake.png: new ugly icon
-
- * install_steps.pm: corrected network down
-
-2002/01/21 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/DrakX.pot, share/po/es.po, share/po/fr.po, share/po/bg.po,
- share/po/ga.po, share/po/sr.po, share/po/de.po, share/po/et.po,
- share/po/tr.po, share/po/eu.po, share/po/az.po, share/po/ru.po,
- share/po/pt_BR.po, share/po/hr.po, share/po/ko.po, share/po/cy.po,
- share/po/nl.po, share/po/ja.po, share/po/wa.po, share/po/sv.po,
- share/po/is.po, share/po/hu.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/fi.po, share/po/no.po, share/po/th.po,
- share/po/el.po, share/po/sk.po, share/po/lt.po, share/po/ar.po,
- share/po/sl.po, share/po/vi.po, share/po/br.po, share/po/ca.po,
- share/po/gl.po, share/po/lv.po, share/po/uk.po, share/po/eo.po,
- share/po/ro.po, share/po/bs.po, share/po/da.po, share/po/zh_TW.po,
- share/po/cs.po, share/po/af.po: updated pot file
-
-2002/01/21 Pixel <pixel@mandrakesoft.com>
-
- * share/fonts.tar.bz2: add helvR12_iso15
-
- * install_steps_interactive.pm: """ When I choose a / partition smaller
- than 200 MB, the installation
- gives me an error message complaining that my system does not
- have enough free space for the installation, although basesystem
- install
- require less than 100 MB. """
- up to around 250MB, minimal install is chosen.
- questions are: base system only, or no X, or normal.
-
-2002/01/21 siegel
-
- * share/po/de.po: updates
-
- * standalone/drakbackup: fixed i18n bugs
-
-2002/01/20 Pixel <pixel@mandrakesoft.com>
-
- * install2.pm: call msec with run_commands=0 to fix the network reloading
- (causing various problems, esp. "Net::FTP: Timeout" at X config step)
-
-2002/01/20 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * standalone/drakbackup: sorry, _("$_") is not allowed
-
-2002/01/20 Pixel <pixel@mandrakesoft.com>
-
- * share/po/fr.po: fix "`msgid' and `msgstr' entries do not both end with
- '\n'"
-
- * install2.pm: call msec with run_commands=0 to fix the network reloading
- (causing various problems, esp. "Net::FTP: Timeout" at X config step)
-
-2002/01/20 yduret
-
- * timezone.pm: added Italy (time.ien.it) in
-
-2002/01/19 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * standalone/drakbackup: Rework English syntax in drakbackup - hopefully
- I've got the intent correct ;^)
-
-2002/01/19 Till Kamppeter <till@mandrakesoft.com>
-
- * detect_devices.pm: Replaced USB printer auto-detection by a more
- reliable method.
-
-2002/01/18 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps_interactive.pm: changed Update -> Upgrade for installation
- class.
-
-2002/01/18 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * standalone/draknet:
- - move 'use standalone' up to comply to 'explanations'
- - fix an english typo, s/connexion/connection/
-
- * standalone/drakgw:
- - move 'use standalone' up to comply to 'explanations'
- - write higher-level 'explanations'
- - small fix, s/`ls ..`/glob(..)/
-
- * standalone/scannerdrake:
- - move 'use standalone' up to comply to 'explanations'
- - fix a small english problem
-
- * share/po/fr.po: reduce a lot of fuzzy and untranslations
- large stuff from printerdrake, drakbackup and drakfont still to do :-)
-
- * c/stuff.xs.pm, standalone/printerdrake, standalone/net_monitor,
- standalone/drakautoinst, standalone/keyboarddrake,
- standalone/localedrake, standalone/livedrake, standalone/drakboot,
- standalone/draksec, standalone/tinyfirewall, standalone/mousedrake,
- standalone/drakxservices, standalone.pm, standalone/drakproxy,
- standalone/XFdrake, standalone/diskdrake, standalone/adduserdrake,
- standalone/drakxconf, log.pm, standalone/logdrake,
- standalone/drakbackup, standalone/drakfont:
- - write the 'common' part of the 'explanations' stuff,
- with nice help from Pixel for the tough Perl part
- - move 'use standalone' up in all standalone apps,
- to comply to 'explanations'
-
-2002/01/18 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/gen_locales.sh, share/locales-skeleton.tar.bz2,
- share/fonts.tar.bz2: changes to get in line with new XFree86
-
-2002/01/18 Pixel <pixel@mandrakesoft.com>
-
- * share/gen_locales.sh, share/locales-skeleton.tar.bz2: find the X11
- locale on the box so that XI18N_OBJS's and common are included
-
-2002/01/18 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_any.pm: add update flag for urpmi medium.
-
- * install_steps_interactive.pm: even if user cancel update of package on
- tree, allow urpmi to install the medium.
- avoid downNetwork as no difference are made between ethernet or ppp.
- fixed typo.
- allow cancel when installUpdates.
-
- * crypto.pm: add update medium for crypto for urpmi (flag update).
- fixed typo.
- allow selection/deselection of update medium (for cancel of
- installation).
-
- * install_steps_gtk.pm: allow choosePackageTree to display a cancel if a
- specific medium has been given.
-
-2002/01/18 Pixel <pixel@mandrakesoft.com>
-
- * share/gen_locales.sh, share/locales-skeleton.tar.bz2: find the X11
- locale on the box so that XI18N_OBJS's and common are included
-
-2002/01/18 sdupont
-
- * standalone/drakfont: update warning messages (qa).
-
- * standalone/drakbackup: fix traduction problems and more ...
-
-2002/01/17 Pixel <pixel@mandrakesoft.com>
-
- * fsedit.pm, diskdrake_interactive.pm: better error message when auto
- allocate doesn't do anything
-
-2002/01/17 dam's <damien@mandrakesoft.com>
-
- * network/tools.pm, network/netconnect.pm: draknet : success message only
- if success
-
- * my_gtk.pm: added timeout for redrawing icon widget
-
-2002/01/17 fcrozat
-
- * share/rpmsrate: kdebase-nsplugins will be installed by default when
- selecting KDE
-
-2002/01/17 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: avoid upgrading a package by selection on files unless it has
- been obsoleted.
-
-2002/01/17 Pixel <pixel@mandrakesoft.com>
-
- * diskdrake.pm: check the mountpoint is valid for encrypting (disallow "/"
- and "/usr")
-
- * fsedit.pm, diskdrake_interactive.pm: better error message when auto
- allocate doesn't do anything
- check the mountpoint is valid for encrypting (disallow "/" and "/usr")
-
- * fs.pm: do not create /swap
-
- * services.pm: move service apcupsd from Printing to System
-
- * bootloader.pm: fix many disks bios remapping (esp. booting on scsi when
- ide is present)
-
-2002/01/17 sdupont
-
- * standalone/drakbackup: stable version for qa pkg.
- (without unstables options)
-
-2002/01/16 Pixel <pixel@mandrakesoft.com>
-
- * any.pm: fix cancel on scsi module loading
-
-2002/01/16 sdupont
-
- * standalone/drakbackup: update send mail.
- (pixel mode. ;))
-
-2002/01/16 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * install_steps_interactive.pm: installUpdates: use formatAlaTeX
-
-2002/01/16 Pixel <pixel@mandrakesoft.com>
-
- * any.pm: fix cancel on scsi module loading
-
- * install_steps_interactive.pm: don't drop default_packages in "Base
- system only"
-
- * standalone/fileshareset: add locking to ensure things are in a proper
- state
-
-2002/01/15 dam's <damien@mandrakesoft.com>
-
- * install_steps_gtk.pm: advertising engine amelioration
-
- * my_gtk.pm: automatic icon placement in icon_labels_widget
-
-2002/01/15 Pixel <pixel@mandrakesoft.com>
-
- * diskdrake_interactive.pm: remove the test trick
- encrypted filesystem handling:
- - using losetup
- - add "Options" for partitions in diskdrake (expert mode)
-
- * c/stuff.xs.pm, fs.pm, share/list, fsedit.pm, devices.pm, install_any.pm,
- diskdrake.pm: encrypted filesystem handling:
- - using losetup
- - add "Options" for partitions in diskdrake (expert mode)
-
-2002/01/15 dam's <damien@mandrakesoft.com>
-
- * network/isdn_consts.pm: updated
-
-2002/01/15 Pixel <pixel@mandrakesoft.com>
-
- * diskdrake_interactive.pm: remove the test trick
- encrypted filesystem handling:
- - using losetup
- - add "Options" for partitions in diskdrake (expert mode)
-
- * c/stuff.xs.pm, fs.pm, share/list, fsedit.pm, devices.pm, install_any.pm,
- diskdrake.pm: encrypted filesystem handling:
- - using losetup
- - add "Options" for partitions in diskdrake (expert mode)
-
- * any.pm: have ddcxinfos take the best result of every run
-
-2002/01/15 sdupont
-
- * standalone/drakfont: fix progress bar problem.
- some gi updates:
- - windows font importation.
- - advanced font importation.
- - licence interface.
- - ...
-
- * standalone/drakbackup: new ./drakbackup --show-conf
- fix daemon problem (media to use).
- update informations on drakbackup report mail.
- __ 3290 lines.
- man pages fr created.
- some code cleaning on backend mode. (all_user_list && return_path)
- new functions on backend mode:
- - show-conf
- - debug
- - help
- - version.
-
-2002/01/14 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * modules.pm:
- - eata is SCSI adapter, not 'disk' adapter
- - have eata module in boot floppies
-
- * mdk-stage1/pci-resource/update-pci-ids.pl: we need also "big" modules in
- pci ids
-
- * share/rpmsrate: have lbreakout weigthed 4 instead of 2
-
- * mdk-stage1/modules.c: suggest other.img in file-not-found-in-archive
- (sugg David Faure
- and Pixel)
-
-2002/01/14 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm: fix typo (making auto installs working again)
-
-2002/01/13 Pixel <pixel@mandrakesoft.com>
-
- * share/rpmsrate: s/lbreakout/lbreakout2/
-
- * install_steps_interactive.pm: cleanup
-
-2002/01/13 sdupont
-
- * standalone/drakbackup: some updates ...
- in "more option" steps user could choose to receive a report by mail for
- each backups.
- ftp backup work.
- fix time problems.
- remove doc from file.
- security fix for configuration file.
-
-2002/01/11 dam's <damien@mandrakesoft.com>
-
- * install_steps_gtk.pm: advertising engine works !
- champagne.
- still some display bugs, but they will be corrected later.
- need new ads and adequat description file
- new advertising engine
-
- * install_any.pm: modifications for new avertising engine
-
- * my_gtk.pm: new icons placement
-
-2002/01/11 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/sp.po, share/po/zh_CN.po, share/po/fi.po, share/po/DrakX.pot,
- share/po/th.po, share/po/es.po, share/po/fr.po, share/po/sr.po,
- share/po/de.po, share/po/el.po, share/po/et.po, share/po/sk.po,
- share/po/tr.po, share/po/ar.po, share/po/az.po, share/po/eu.po,
- share/po/sl.po, share/po/vi.po, share/po/eo.po, share/po/wa.po,
- share/po/sv.po, share/po/zh_TW.po, share/po/Makefile, share/po/af.po,
- share/po/it.po: updated Spanish file; merged help-* files
-
-2002/01/11 sdupont
-
- * standalone/drakbackup: update header pixmaps.
- correction of message problem.
-
- * pixmaps/drakfont.620x57.png, pixmaps/BDO-drakebackup1.png,
- pixmaps/drakbackup.540x57.png: update pixmaps for drakbakup & drakfont.
-
- * standalone/drakfont: update header pixmaps.
-
-2002/01/10 dam's <damien@mandrakesoft.com>
-
- * install_steps_gtk.pm: domainname corection
-
- * network/network.pm: domainname corection
- corrected network domainname pb
-
- * install2.pm: corrected read_resolv => read_conf
-
-2002/01/10 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps_interactive.pm: english taste inspired by daminette.
-
-2002/01/10 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * rescue/lsparts: better looking output of type of partition (%x => %0x)
-
-2002/01/09 dam's <damien@mandrakesoft.com>
-
- * network/adsl.pm, standalone/net_monitor, standalone/draknet,
- network/network.pm, network/modem.pm, network/netconnect.pm: big merge
- from update 8.1 with cvs
- First part. Part 2 following
-
- * my_gtk.pm: added bold option in text creation. Some corrections
-
- * install_steps_interactive.pm: corrected fpons typo
-
-2002/01/09 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_any.pm: fixed too many package selected for No X or With X
- option of minimal installation.
-
- * install_steps_interactive.pm: avoid asking for minimal install for
- upgrade.
-
- * crypto.pm: fix incomplete prefix for update mirror when adding an entry
- for urpmi.
-
- * pkgs.pm: use rpm version comparison function.
-
- * c/stuff.xs.pm: added rpmvercmp.
-
-2002/01/09 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_any.pm: fixed too many package selected for No X or With X
- option of minimal installation.
-
- * install_steps_interactive.pm: avoid asking for minimal install for
- upgrade.
-
- * crypto.pm: fix incomplete prefix for update mirror when adding an entry
- for urpmi.
-
- * pkgs.pm: use rpm version comparison function.
-
- * c/stuff.xs.pm: added rpmvercmp.
-
-2002/01/09 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_any.pm: fixed too many package selected for No X or With X
- option of minimal installation.
-
- * install_steps_interactive.pm: avoid asking for minimal install for
- upgrade.
- fixed stupid.
-
- * crypto.pm: fix incomplete prefix for update mirror when adding an entry
- for urpmi.
-
- * pkgs.pm: use rpm version comparison function.
-
- * c/stuff.xs.pm: added rpmvercmp.
-
-2002/01/08 dam's <damien@mandrakesoft.com>
-
- * install2.pm: cosmetik
-
-2002/01/08 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps_gtk.pm: added eval around pixmap drawing for advertising.
-
-2002/01/08 Pixel <pixel@mandrakesoft.com>
-
- * standalone/drakbackup: another round of bad use of _() fixes.
- fixed bad use of _().
-
-2002/01/08 sdupont
-
- * standalone/drakbackup: drakbackup work ...
- incremental backup and restore work.
-
-2002/01/08 Franēois Pons <fpons@mandrakesoft.com>
-
- * Makefile: again fixed dam's sucking, please dam's check what you write
- before commiting.
-
- * standalone/drakautoinst: removed stupid invocation of _("$_"), is it
- correct code to change it to $_ only ?
-
-2002/01/08 Franēois Pons <fpons@mandrakesoft.com>
-
- * Makefile: again fixed dam's sucking, please dam's check what you write
- before commiting.
-
- * standalone/drakautoinst: removed stupid invocation of _("$_"), is it
- correct code to change it to $_ only ?
-
-2002/01/08 Franēois Pons <fpons@mandrakesoft.com>
-
- * Makefile: again fixed dam's sucking, please dam's check what you write
- before commiting.
-
-2002/01/07 Franēois Pons <fpons@mandrakesoft.com>
-
- * steps.pm: changed installUpdates after summary (to get corrected
- timezone).
-
- * install_any.pm: separated setDefaultPackages from setPackages because it
- is used by allowing
- only base system to be installed (allow remade a better package
- selection).
-
- * crypto.pm: added bestMirror method to retrieve a good mirror (according
- to timezone) and
- add salt with random number to avoid using always the same.
-
- * install2.pm: added option to only upgrade packages.
-
- * install_steps_interactive.pm: added minimal type of install support.
-
- * share/list: fixed to match newer menu package.
-
-2002/01/07 Franēois Pons <fpons@mandrakesoft.com>
-
- * steps.pm: changed installUpdates after summary (to get corrected
- timezone).
-
- * install_any.pm: separated setDefaultPackages from setPackages because it
- is used by allowing
- only base system to be installed (allow remade a better package
- selection).
-
- * crypto.pm: added bestMirror method to retrieve a good mirror (according
- to timezone) and
- add salt with random number to avoid using always the same.
-
- * install2.pm: added option to only upgrade packages.
-
- * install_steps_interactive.pm: added minimal type of install support.
-
- * share/list: fixed to match newer menu package.
-
-2002/01/07 dam's <damien@mandrakesoft.com>
-
- * Makefile: socmetic
- typo
- added debug mode for the whole install
-
- * my_gtk.pm: removed print
- new pack_start functions, powerpack sub added (code from adrien)
- incorporated adrien's code to generalize pack functions
- minor bug fixes
-
- * install_steps.pm, network/netconnect.pm: corrected network connection
- during install
-
- * install2: added debug mode for the whole install
-
-2002/01/07 Franēois Pons <fpons@mandrakesoft.com>
-
- * steps.pm: changed installUpdates after summary (to get corrected
- timezone).
-
- * install_any.pm: separated setDefaultPackages from setPackages because it
- is used by allowing
- only base system to be installed (allow remade a better package
- selection).
-
- * crypto.pm: added bestMirror method to retrieve a good mirror (according
- to timezone) and
- add salt with random number to avoid using always the same.
-
- * install2.pm: added option to only upgrade packages.
-
- * install_steps_interactive.pm: added minimal type of install support.
-
- * share/list: fixed to match newer menu package.
-
- * Makefile: fixed overwriting of install2 filtering, keep diagnostic and
- strict for debug mode.
-
-2002/01/07 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/network.c: also log server name for HTTP install
-
-2002/01/04 dam's <damien@mandrakesoft.com>
-
- * network/adsl.pm, install_steps.pm, network/tools.pm, my_gtk.pm,
- network/netconnect.pm: corrected minor bugs in network (among others bug
- "modifying read only values")
- recode upNetwork and downNetwork (it might work, at least if you are
- lucky);
-
-2002/01/04 dam's <damien@mandrakesoft.com>
-
- * my_gtk.pm: corrected minor bugs in network (among others bug "modifying
- read only values")
- recode upNetwork and downNetwork (it might work, at least if you are
- lucky);
- corrected font display : no useless font->height, but ascent + descent
- updated
-
- * network/isdn_consts.pm: changed asus isdn hisax identify
-
- * network/adsl.pm, install_steps.pm, network/tools.pm,
- network/netconnect.pm: corrected minor bugs in network (among others bug
- "modifying read only values")
- recode upNetwork and downNetwork (it might work, at least if you are
- lucky);
-
-2002/01/04 Franēois Pons <fpons@mandrakesoft.com>
-
- * http.pm, install2.pm, steps.pm, install_any.pm: added update
- installation support to install (big modifs need testing).
-
- * pkgs.pm: allow to use same identifier for security medium (1u).
- re-install urpmi.
- allow some error to be catched.
- added update installation support to install (big modifs need testing).
-
- * crypto.pm: removed test code.
- allow to use same identifier for security medium (1u).
- re-install urpmi.
- allow some error to be catched.
- added update installation support to install (big modifs need testing).
-
- * install_steps_interactive.pm: removed obsoleted comment.
- allow to use same identifier for security medium (1u).
- re-install urpmi.
- allow some error to be catched.
- added update installation support to install (big modifs need testing).
-
- * install_steps_gtk.pm: fixed empty flat package selection when giving a
- limit to medium.
- added update installation support to install (big modifs need testing).
-
- * install_steps.pm: allow to use same identifier for security medium (1u).
- re-install urpmi.
- allow some error to be catched.
- fix for auto updates.
- added update installation support to install (big modifs need testing).
-
-2002/01/04 Pixel <pixel@mandrakesoft.com>
-
- * detect_devices.pm: enable easy patch-adding of pcitable and usbtable
- entries
-
-2002/01/03 dam's <damien@mandrakesoft.com>
-
- * standalone/drakbackup: user can be equal to 500
-
-2002/01/03 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_any.pm: updated code to create synthesis file (including
- provides on files).
-
-2002/01/03 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/ar.po: updated Arabic file
-
-2002/01/03 Pixel <pixel@mandrakesoft.com>
-
- * install2.pm, Xconfig.pm: save the output of ddcxinfos before
- modprobe'ing i810fb, and use that output for Xconfig (when i810fb is
- modprobe'd, ddc probe doesn't work anymore)
-
- * install_steps_interactive.pm, install_steps_gtk.pm: fix english messages
-
- * share/rpmsrate: as asked by Vincent Danen, lower uucp and raise sudo
-
- * pkgs.pm: prefer gcc-cpp
-
- * interactive_gtk.pm, interactive.pm: toggle Advanced/Basic button
-
- * any.pm: fix english messages
- save the output of ddcxinfos before modprobe'ing i810fb, and use that
- output for Xconfig (when i810fb is modprobe'd, ddc probe doesn't work
- anymore)
-
-2002/01/02 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * lang.pm: changed @euro locales to plain names; now old currencies ones
- are obsolete
-
-2001/12/31 sdupont
-
- * standalone/drakfont: new fixed size and add a head pixmap (to update).
-
- * standalone/drakbackup: lots of update ...
- - cron work.
- - backup incremental & normal work.
- - corrupted backup data files supported.
- - error messages updated.
- - aff list of backup data files pbs.
- - test all backup files before to restore it.
-
-2001/12/30 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm: format home directories with "-m 0" for ext2&ext3, so that the
- root reserved part is 0% (and not 5%)
-
-2001/12/30 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm: format home directories with "-m 0" for ext2&ext3, so that the
- root reserved part is 0% (and not 5%)
-
-2001/12/28 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (selectMouse): when selecting a usb mouse,
- call setup_thiskind with
- at_least_one=1 (so that pci_class probe is used and so unknown
- serial_usb
- recognised (cf ldetect))
-
- * modules.pm (load_thiskind): allow $probe_type to be given, allowing
- forced pci probe (unsafe)
-
- * any.pm (setup_thiskind_backend): when at_least_one==1, try load_thiskind
- forcing
- pci_class probe when no modules is found.
-
-2001/12/28 sdupont
-
- * standalone/drakbackup: update select data on backup cd
-
-2001/12/27 sdupont
-
- * standalone/drakbackup: fix of user selection during restore step.
- remove return_file_date.
- change algo for incremental backup.
-
-2001/12/26 sdupont
-
- * standalone/drakbackup: some gi corrections & update.
- incremental restore.
-
-2001/12/22 Pixel <pixel@mandrakesoft.com>
-
- * bootloader.pm: s/use pkgs/require pkgs/ since pkgs::versionCompare is
- only used during install
-
- * my_gtk.pm: export gtkcolor (used in install_steps_gtk)
- make perl_checker happy
-
-2001/12/22 sdupont
-
- * pixmaps/backup_bot.png, pixmaps/cdrom.png, pixmaps/backup_time.png,
- pixmaps/backup_bot2.png, pixmaps/backup_left.png, pixmaps/net.png,
- pixmaps/backup_hd.png, pixmaps/backup_title.png,
- pixmaps/backup_left2.png, pixmaps/filedialog.png, pixmaps/hd.png,
- pixmaps/backup_options.png, pixmaps/backup_net.png: remove old
- drakbackup pixmaps files.
-
- * pixmaps/ic82-back-up-16.png, pixmaps/ic82-discdurwhat-40.png,
- pixmaps/ic82-tape-40.png, pixmaps/ic82-moreoption-40.png,
- pixmaps/ic82-where-40.png, pixmaps/ic82-system-40.png,
- pixmaps/ic82-others-40.png, pixmaps/ic82-systemeplus-40.png,
- pixmaps/ic82-network-40.png, pixmaps/ic82-CD-40.png,
- pixmaps/ic82-when-40.png, pixmaps/ic82-back-up-32.png,
- pixmaps/ic82-users-40.png, pixmaps/ic82-dossier-32.png,
- pixmaps/ic82-back-up-48.png: drakbackup designer icons.
-
- * standalone/drakbackup: add pixmaps on backup step.
- new designer pixmaps on drakbackup.
-
-2001/12/21 sdupont
-
- * standalone/drakbackup: some update in file name parsing...
- etc ...
-
- * pixmaps/BDO-drakebackup1.png: drakbackup
-
-2001/12/20 dam's <damien@mandrakesoft.com>
-
- * install_steps_gtk.pm: API changed, so call changed
-
- * share/logo-mandrake.png: new ayo logo
-
-2001/12/20 sdupont
-
- * standalone/drakbackup: update the todo header
- the REQUIRE header
- & code cleaning
- - tar -cvf tarfilename --after-date="sept 1, 2000" /home
- l.380 incremental: date -> if already exist do find -m ... | tar ...
- non incremental: date + delete old before the backup
- - correct detection of backups during restore.
- - gi for other media during restore. hd-> ok
- - backend for build backup update and support
- incremental backups.
- - real incremental backup
- update resore & help.
-
-2001/12/19 dam's <damien@mandrakesoft.com>
-
- * my_gtk.pm: update graphical backend
-
-2001/12/19 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * modules.pm: add dl2k.o (nic module) per request of nplanel
-
-2001/12/19 sdupont
-
- * standalone/drakbackup:
- - gi for other media during restore. hd-> ok
- - backend for build backup update and support
- incremental backups.
- - real incremental backup
- add other media source during restore.
- - update help & license.
- - code cleaning.
- - ask during whqt sys step if user want to backup critical
- files, like /etc/passwd /etc/group /etc/fstab
- - use preserve permissions during tar
- - begin of total backup step.( all partitions wanted, windows
- partitions for example!)
- - remove replace mode (backup_*_version is enought)
-
-2001/12/18 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps_gtk.pm: fixed dam's sucking (syntax error only, code is
- untested).
-
-2001/12/18 Pixel <pixel@mandrakesoft.com>
-
- * any.pm: fix typos
-
-2001/12/18 sdupont
-
- * standalone/drakfont: include new pixmap on main menu.
-
- * standalone/drakbackup: sort lists in all lists selection.
- correct use of incremental backup
- parse of restore & system state.
- fix restore user selection problems
- fix build backup data selection problems
- ect ...
- drakbackup -> drakxtools.rpm
-
- * pixmaps/ic-drakfont-48.png: drakfont pixmap...
-
-2001/12/18 yduret
-
- * standalone/logdrake: fix console mode : exit now
-
-2001/12/18 Pixel <pixel@mandrakesoft.com>
-
- * any.pm: fix typos
-
-2001/12/17 dam's <damien@mandrakesoft.com>
-
- * install_steps_gtk.pm: power graphical backend update : text is now
- centered
-
- * my_gtk.pm: power graphical backend update : text is now centered
- updated new graphical backend
-
-2001/12/17 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * interactive_gtk.pm, standalone/drakgw: drakgw for gold
-
- * tools/pcmcia_config.patch: remove permanently (using
- patch_pcmcia_config.pl now)
-
-2001/12/17 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm, any.pm, install2.pm, bootloader.pm: clean_tmp now means using
- tmpfs
-
-2001/12/17 sdupont
-
- * standalone/drakbackup:
- ________________________________________________________________
- DONE:
- incremental backups have depends whith replace options.
- gtklist not maximized.
- restore mode.
- view date during restore
- view size of file, date & hours during backup on CD
- ________________________________________________________________
-
-2001/12/17 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm, any.pm, install2.pm, bootloader.pm: clean_tmp now means using
- tmpfs
-
-2001/12/14 Franēois Pons <fpons@mandrakesoft.com>
-
- * mdk-stage1/init-data/msgboot-graphicallogo.img.bz2: new picture for 8.2.
-
-2001/12/14 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/pci-resource/update-pci-ids.pl: change again way of selection
- PCI entries :
- what's in mar files --> what's given by modules (e.g. just
- as update_kernel does)
-
-2001/12/12 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * install2.pm: use "askdisplay" to ask a question at begining of install
- for what
- display you want to use during install
-
- * Makefile, tools/patch_pcmcia_config.pl: externalize patch_pcmcia_config
- (from make_boot_img)
- because we need it in perl-install/Makefile also
-
- * mdk-stage1/rescue-gui.c, rescue/make_rescue_img, rescue/rescue-doc,
- rescue/Makefile: have a bunch of Rescue documentation directly
- available from the Rescue-menu following suggestions
- by Denis among others
-
-2001/12/12 Pixel <pixel@mandrakesoft.com>
-
- * install2.pm: enable easy screenshot'ing
- - ensure /usr is formatted if / is
- - remove /var/lib/rpm if /var is kept
-
- * common.pm, docs/README: enable easy screenshot'ing
-
-2001/12/12 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * rescue/make_rescue_img: larger rescue image on PPC to accomodate huge
- xfs module
-
- * bootloader.pm: mods to address new yaboot's lack of symlink ability, xfs
- initrd load
-
-2001/12/11 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/stage1.c, mdk-stage1/dhcp.c, mdk-stage1/stage1.h: support
- "filename" in DHCP answers and give this
- to stage2 as --kickstart parameter
-
-2001/12/11 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * Xconfigurator_consts.pm, keyboard.pm: finish journalled fs usage - PPC,
- add "\n" keyboard.pm, new modelines
-
-2001/12/10 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_any.pm: added network package not present in @needToCopy
- (package that may be installed
- by DrakX to avoid re-asking of CD1).
-
- * bootloader.pm: added safe guard against looping symlink.
-
-2001/12/10 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm, any.pm, bootloader.pm:
- - fix bootloader::add_append
- - add handling of serial console
-
- * http.pm, install_any.pm: enable http:// in auto_install file location
-
-2001/12/05 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm: no need to give kernelVersion to bootloader::suggest
-
- * install_any.pm (kernelVersion): looks at /boot/vmlinuz
-
- * bootloader.pm (suggest, add_kernel): much cleanup
-
- * diskdrake.pm: fix call to fileshare_config
-
-2001/12/05 dam's <damien@mandrakesoft.com>
-
- * share/logo-mandrake.png: updateed logo
-
-2001/12/05 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/Makefile, mdk-stage1/pcmcia_/cardmgr.c:
- - fix problems with sockets not initialized (disabling
- hotplug support -> cardmgr handles sockets)
- - fix problems with PCMCIA net adapters now using PCI
- modules, by adding PCMCIA base code in `network.img'
-
-2001/12/05 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm: no need to give kernelVersion to bootloader::suggest
-
- * pkgs.pm (selectPackage): hard coded preference to simple kernel
-
- * install_any.pm (kernelVersion): looks at /boot/vmlinuz
-
- * diskdrake.pm: fix call to fileshare_config
-
- * steps.pm: createBootdisk now after setupBootloader (together with dumber
- install_any::kernelVersion)
-
- * network/tools.pm: fix missing ";" (thanks to Robert Fox)
-
- * bootloader.pm (suggest, add_kernel): much cleanup
-
- * fs.pm: fix type "smb" vs "smbfs", and handle options in fs::mount
-
-2001/12/05 sdupont
-
- * pixmaps/backup_bot2.png: update pixmaps
-
- * standalone/drakbackup: todo : scp ssl sftp rsync connections perl || c ?
- done : bzip2 backup
- merge
-
-2001/12/04 dam's <damien@mandrakesoft.com>
-
- * standalone/drakbackup: corrected pixmap path
- corrected pixmap path
-
- * Makefile.config: added drakbackup drakfont
-
-2001/12/04 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * any.pm, mdk-stage1/log.c, docs/README: save stage1.log and have it in
- report.bug
-
- * mdk-stage1/automatic.c, mdk-stage1/doc/TECH-INFOS: support shorter
- versions of automatic keywords to beat problems with very long kernel
- commandlines
-
- * install_interactive.pm: try to not get something poorly wrapped
-
- * c/stuff.xs.pm: floppy_info: add missing close(fd)
-
-2001/12/04 Pixel <pixel@mandrakesoft.com>
-
- * network/smb.pm: cleaner smbclient call
-
- * install_steps.pm: re-enable supermount by default
-
-2001/12/04 sdupont
-
- * pixmaps/backup_bot.png, pixmaps/backup_left.png: correct colors
- problems.
-
- * standalone/drakbackup: bzip2 ok for compression to see: decomp without
- pbs whith tar.gz and tar.bz2
- todo: update mode -> decomp + update tar file + recomp
-
-2001/12/04 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * install_interactive.pm: try to not get something poorly wrapped
-
-2001/12/04 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm: re-enable supermount by default
-
- * network/smb.pm: cleaner smbclient call
-
-2001/12/04 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_any.pm: fix bad parsing of package to copy (when one doen't
- exist anymore) in
- postinstall_rpms directory.
-
-2001/12/04 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * install_interactive.pm: try to not get something poorly wrapped
-
-2001/12/04 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm: re-enable supermount by default
-
- * network/smb.pm: cleaner smbclient call
-
-2001/12/04 dam's <damien@mandrakesoft.com>
-
- * network/network.pm: additional package for wlan
-
- * network/tools.pm: corrected pipe reading
-
-2001/12/04 Franēois Pons <fpons@mandrakesoft.com>
-
- * any.pm: make sure lilo is installed on automatic mode.
-
- * install_any.pm: fix bad parsing of package to copy (when one doen't
- exist anymore) in
- postinstall_rpms directory.
-
-2001/12/04 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * install_interactive.pm: try to not get something poorly wrapped
-
- * mdk-stage1/modules.c: fpons is a sucking chief
-
- * modules.pm, mdk-stage1/usb-resource/update-usb-ids.pl,
- mdk-stage1/Makefile, mdk-stage1/.cvsignore, mdk-stage1/probing.c:
- support install from USB CDROMS (using usb-storage)
-
-2001/12/04 Pixel <pixel@mandrakesoft.com>
-
- * network/smb.pm: cleaner smbclient call
-
-2001/12/04 sdupont
-
- * standalone/drakbackup: last update... for cooker
- drakbackup deamon -> ok
- drakbackup cvs -> to do (only for /etc)
- drakbackup wizard -> only last step
- drakbackup cd -> device detection and ask for only iso file.
- drakbackup net -> do rsync
- drakbackup begin -> todo : update initial message
- update help and about.
-
-2001/12/04 dam's <damien@mandrakesoft.com>
-
- * network/network.pm: additional package for wlan
-
-2001/12/04 Franēois Pons <fpons@mandrakesoft.com>
-
- * any.pm: make sure lilo is installed on automatic mode.
-
- * mdk-stage1/modules.c: fixed gégé sucking.
-
-2001/12/04 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/modules.c: fpons is a sucking chief
-
-2001/12/04 Franēois Pons <fpons@mandrakesoft.com>
-
- * mdk-stage1/modules.c: fixed gégé sucking.
-
-2001/12/04 sdupont
-
- * standalone/drakbackup: update...
-
-2001/12/03 dam's <damien@mandrakesoft.com>
-
- * Xconfigurator.pm: removed use gtk
-
-2001/12/03 Franēois Pons <fpons@mandrakesoft.com>
-
- * tools/updatehdlist: initial revision, simple way to update a local set
- of medium from /RPMS.
-
-2001/12/03 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/modules.c: typo of last commit (unused variable -> could not
- compile)
-
-2001/12/03 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/DrakX.pot, share/po/hu.po, share/po/es.po: updated Hungarian
- and Spanish files
-
-2001/12/03 sdupont
-
- * standalone/drakbackup: update
- option step.
- write other file content.
- restore gi.
-
-2001/12/02 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/DrakX.pot, share/po/es.po, share/po/fr.po, share/po/bg.po,
- share/po/ga.po, share/po/sr.po, share/po/de.po, share/po/et.po,
- share/po/tr.po, share/po/eu.po, share/po/az.po, share/po/ru.po,
- share/po/pt_BR.po, share/po/hr.po, share/po/ko.po, share/po/cy.po,
- share/po/nl.po, share/po/ja.po, share/po/wa.po, share/po/sv.po,
- share/po/is.po, share/po/hu.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/fi.po, share/po/no.po, share/po/th.po,
- share/po/el.po, share/po/sk.po, share/po/lt.po, share/po/ar.po,
- share/po/sl.po, share/po/vi.po, share/po/br.po, share/po/ca.po,
- share/po/gl.po, share/po/lv.po, share/po/uk.po, share/po/eo.po,
- share/po/ro.po, share/po/bs.po, share/po/da.po, share/po/zh_TW.po,
- share/po/cs.po, share/po/af.po: updated pot file
-
-2001/12/01 sdupont
-
- * standalone/drakbackup: do not include browser cache.
-
-2001/11/30 Franēois Pons <fpons@mandrakesoft.com>
-
- * docs/spec-DrakX-8.0.html: added spec (forgotten for quite a long)
-
-2001/11/30 gbeauchesne
-
- * partition_table_gpt.pm:
- - cleanups from mainline
-
- * modules.pm: Suckiness fixes from mainline (gc):
- - Do parse /proc/modules in reverse order
- - Fix "convert old scsi_hostadapter's to new probeall" scheme
-
- * bootloader.pm:
- - Don't forget to link the initrd to the real image in /boot/efi/ too
- - Remove DEBUG printouts in install_efi_boot_menu
-
-2001/11/30 Pixel <pixel@mandrakesoft.com>
-
- * network/smb.pm, any.pm, Makefile.drakxtools, standalone/diskdrake,
- Makefile.config, diskdrake.pm: fileshare should be ok, handle diskdrake
- --fileshare, fix smb import
-
-2001/11/30 sdupont
-
- * pixmaps/backup_left2.png: drakbackup pixmap
-
- * standalone/drakbackup: backend mode-> ok for hd
- we can use drakbackup !.
- todo :
- backend mode:
- - net
- - cd
-
- advanced mode:
- - device detection (cd writer)
-
- wizard:
- - end of this step.
-
- gi:
- - option step in adnanced step to choice
- for example tar.gz or tar.gz2 ...
- update
- restore step 1 & 2.
- adv step -> ok
- todo: wizard ...
- little update!
-
- variables correction in advanced step.
- wizard user question, sys question & daemon
-
-2001/11/29 Chmouel Boudjnah <chmouel@mandrakesoft.com>
-
- * share/rpmsrate: Remove linux_logo
-
-2001/11/29 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * modules.pm: add wvlan_cs
-
- * mdk-stage1/modules.c: remove unneeded handling of "alias
- scsi_hostadapter"
-
- * mdk-stage1/stage1.c: add another expert_third_party_modules at the end
- of enabling-pcmcia-stuff
-
-2001/11/29 Pixel <pixel@mandrakesoft.com>
-
- * diskdrake.pm: remove the export tree for nfs/smb feature, remove some
- test code
- tentative version with export/import nfs/smb tree (committed to have it
- in CVS as the export tree is already deprecated)
-
- * standalone/fileshareset:
- - allow root to export everything
- - remove empty mntpoint (from smb)
-
-2001/11/29 sdupont
-
- * standalone/drakbackup: just update....
- advanced: users correction during save.
- user pass, user login, path to save local or on host
- combo for network protocol.
- wizrad: already to do!
- CDRW burn: todo: devices detection (see to_fond_cd).
- code cleaning.
-
- * standalone/drakfont: cleanning code.
-
-2001/11/28 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * modules.pm:
- - fix pixel sucks of not parsing /proc/modules in
- reverse order
- - be more in sync regarding names of pcmcia drivers
-
- * any.pm: add modules.conf in report.bug
-
-2001/11/28 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/zh_CN.po, share/po/zh_TW.po: updated Chinese file
-
-2001/11/28 Pixel <pixel@mandrakesoft.com>
-
- * modules.pm (read_conf): fix "convert old scsi_hostadapter's to new
- probeall"
-
- * standalone/drakbackup: make check_what_user works
-
- * standalone/fileshareset: better description
- gr_mem in getgrent is space separated, not comma separated
- add samba handling. Should be finished now :)
-
-2001/11/28 sdupont
-
- * pixmaps/backup_bot2.png, pixmaps/quit.png: drakbackup pixmaps.
-
- * standalone/drakbackup: no important changement!
- clean code
- update!
- for gc & Warly: some fixes, correction of advanced, wizard and after
- advanced steps.
- the user have a better gestion during advanced step, the protocols ftp,
- sftp, scp, rsync
- are now include in advanced step..... etc ;-)
- todo: when checkbuttonbox are clicked for user choice set it to 0 or 1
- juste after.
- clean code.
- new after advanced step, correction of checkbuttons problems & new
- pixmaps.
-
-2001/11/27 dam's <damien@mandrakesoft.com>
-
- * share/logo-mandrake.png: updated, cooker style
-
-2001/11/27 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: avoid problem of array reference badly evaluated.
-
-2001/11/27 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * tools/mailchangelog.pl: beurk
- changelog is at linux-mandrake not mandrakesoft
-
- * install_steps.pm: i810 -> no FB at boot
-
-2001/11/27 Pixel <pixel@mandrakesoft.com>
-
- * partition_table_gpt.pm (generate_guid): cleanup
-
- * any.pm (setupBootloader): s/last/return/
-
-2001/11/27 sdupont
-
- * standalone/drakbackup: advanced step...
- update.
- advanced mode ... and ...
- read and use user list correctly, advanced step user list.
-
- * pixmaps/hd.png, pixmaps/net.png, pixmaps/cdrom.png: pixmaps for
- drakbackup.
-
-2001/11/26 Chmouel Boudjnah <chmouel@mandrakesoft.com>
-
- * tools/i386/netboot/stage2.rtl8139: add rtl8139 netboot file that works
-
- * tools/i386/netboot/stage1.rtl8139: add rtl8139 netboot file that works
- stage1/stage2 of rtl8139 didn't work
-
-2001/11/26 dam's <damien@mandrakesoft.com>
-
- * common.pm, my_gtk.pm: new features for new mcc
-
-2001/11/26 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * install_any.pm: getAndSaveAutoInstallFloppy: don't die when output'ing
- of
- auto_inst.cfg is not possible
-
-2001/11/26 Pixel <pixel@mandrakesoft.com>
-
- * install2.pm: add $o->{excludedocs} feature
-
- * Makefile.drakxtools: remove unneeded files (*.bs and .exists)
-
- * interactive_gtk.pm: cleanup
-
-2001/11/26 sdupont
-
- * standalone/drakbackup: new gi, advanced step.
- update.
- gawk cmds.
- better use for read and save conf. file now on
- /etc/draxtools/drakbackup/drakbackup.cfg
-
- * pixmaps/backup_hd.png, pixmaps/backup_options.png,
- pixmaps/backup_net.png, pixmaps/backup_time.png: png files for
- DrakBackup.
-
-2001/11/25 Pixel <pixel@mandrakesoft.com>
-
- * standalone/fileshareset: first version. for the moment, only nfs.
-
-2001/11/25 sdupont
-
- * standalone/drakbackup: update of read_conf_file and default mode.
-
-2001/11/24 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/da.po, share/po/es.po: updated Spanish and Danish files
-
-2001/11/24 sdupont
-
- * standalone/drakfont: about...
-
- * standalone/drakbackup: update
- update gi ,build of system, user, other, options interfaces.
- advanced step.
-
-2001/11/23 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * install_any.pm: package for pcmcia is now called "pcmcia-cs"
-
- * any.pm, detect_devices.pm: pcmcia: /var/run/stab is nor
- /var/lib/pcmcia/stab
- yes it probably doesn't bring anything valuable but it's
- how life is :-)
-
-2001/11/23 sdupont
-
- * standalone/drakbackup: radio buttons & information message.
- change gi interface, include help, about and pixmaps (backup_*.png on
- standalone/pixmaps directory)
-
-2001/11/22 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: removed loading of agpgart module for i810 card.
-
-2001/11/22 sdupont
-
- * standalone/drakfont: about button & GPL license.
-
- * standalone/drakbackup: update gi.
- TODO: separate all the boxes.
- include wizard and advanced in pixmaps.
- update
- notebook gi.
-
-2001/11/21 Franēois Pons <fpons@mandrakesoft.com>
-
- * mdk-stage1/init-data/msgboot-graphicallogo.img.bz2,
- mdk-stage1/init-data/msgboot-blank.img.bz2,
- mdk-stage1/init-data/msgboot.img.bz2: fixed typo in help.msg
-
- * Xconfigurator.pm: hack for SiS 640 for laptop.
-
- * install_any.pm: fixed install_urpmi to build a correct urpmi db.
-
-2001/11/21 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * modules.pm: i810fb
- migrate pcmcia in drakx to use in-kernel version (only
- for 2.4, though --> pcmcia in 2.2 no longer supported)
-
- * install_steps_interactive.pm, Makefile, c/Makefile.PL: migrate pcmcia in
- drakx to use in-kernel version (only
- for 2.4, though --> pcmcia in 2.2 no longer supported)
-
- * install2.pm: i810fb
-
- * mdk-stage1/stage1.c, mdk-stage1/pcmcia_/lex_config.c,
- mdk-stage1/pcmcia_/cardmgr.c, mdk-stage1/pcmcia_/yacc_config.c,
- mdk-stage1/pcmcia_/Makefile, mdk-stage1/Makefile,
- mdk-stage1/pcmcia_/pcmcia.h, mdk-stage1/pcmcia_/ds.h,
- mdk-stage1/pcmcia_/probe.c: migrate to pcmcia support from kernel,
- patching untouched imported
- sources from pcmcia-cs-3.1.29, to ease further updates of vendor
- code (start from a clean pcmcia_ subdir)
-
-2001/11/21 Pixel <pixel@mandrakesoft.com>
-
- * fsedit.pm (suggestions_mntpoint): if there's no server suggestion, use
- the simple
- one, so that 'simple' is the only one required when someone modifies
- %fsedit::suggestions
-
-2001/11/20 gbeauchesne
-
- * partition_table.pm:
- - Add isEfi() to isOtherAvailableFS() test so that install doesn't
- suggest
- to format /boot/efi by default. That way, we could preserve (shame on
- us)
- EFI boot partition generated by Windows XP 64 bits...
-
-2001/11/20 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/pcmcia_/lex_config.c, mdk-stage1/pcmcia_/cardmgr.c,
- mdk-stage1/pcmcia_/bulkmem.h, mdk-stage1/pcmcia_/cardmgr.h,
- mdk-stage1/pcmcia_/vg468.h, mdk-stage1/pcmcia_/driver_ops.h,
- mdk-stage1/pcmcia_/i82365.h, mdk-stage1/pcmcia_/cirrus.h,
- mdk-stage1/pcmcia_/version.h, mdk-stage1/pcmcia_/cistpl.h,
- mdk-stage1/pcmcia_/yacc_config.c, mdk-stage1/pcmcia_/cs_types.h,
- mdk-stage1/pcmcia_/cs.h, mdk-stage1/pcmcia_/yacc_config.h,
- mdk-stage1/pcmcia_/ds.h, mdk-stage1/pcmcia_/tcic.h,
- mdk-stage1/pcmcia_/probe.c: Initial revision
- version 3.1.29
-
-2001/11/19 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * interactive_stdio.pm: for po i can't use $ for string interpolation
-
-2001/11/19 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * services.pm, standalone/scannerdrake: Corrected English errors
-
- * share/po/hu.po, share/po/cs.po: updated pot file
- updated Czech and Hungarian files
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/DrakX.pot, share/po/es.po, share/po/fr.po, share/po/bg.po,
- share/po/ga.po, share/po/sr.po, share/po/de.po, share/po/et.po,
- share/po/tr.po, share/po/eu.po, share/po/az.po, share/po/ru.po,
- share/po/pt_BR.po, share/po/hr.po, share/po/ko.po, share/po/cy.po,
- share/po/nl.po, share/po/ja.po, share/po/wa.po, share/po/sv.po,
- share/po/is.po, share/po/it.po, share/po/id.po, share/po/pl.po,
- share/po/no.po, share/po/fi.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/ar.po, share/po/sl.po,
- share/po/vi.po, share/po/br.po, share/po/ca.po, share/po/gl.po,
- share/po/lv.po, share/po/uk.po, share/po/eo.po, share/po/ro.po,
- share/po/bs.po, share/po/da.po, share/po/zh_TW.po, share/po/af.po:
- updated pot file
-
-2001/11/19 Pixel <pixel@mandrakesoft.com>
-
- * any.pm (setupBootloader): fix typo
- (setupBootloader): fix typo
-
-2001/11/19 Till Kamppeter <till@mandrakesoft.com>
-
- * printerdrake.pm: Last correction was wrong, reverted it.
-
-2001/11/19 yduret
-
- * standalone/scannerdrake: added dynamic support
-
-2001/11/16 Pixel <pixel@mandrakesoft.com>
-
- * any.pm: syntax cleanup
- - a little cleanup
- - in case there is both scsi and ide hard drives, go to expert
- questions
- directly (it would need a semi_auto asking on which drive the bios
- boots...)
-
-2001/11/14 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * help.pm: updated help file
-
- * keyboard.pm: Added Swedish dvorak keyboard
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/DrakX.pot, share/po/es.po, share/po/fr.po, share/po/bg.po,
- share/po/ga.po, share/po/sr.po, share/po/de.po, share/po/et.po,
- share/po/tr.po, share/po/eu.po, share/po/az.po, share/po/ru.po,
- share/po/pt_BR.po, share/po/hr.po, share/po/ko.po, share/po/cy.po,
- share/po/help_xml2pm.pl, share/po/nl.po, share/po/ja.po, share/po/wa.po,
- share/po/sv.po, share/po/is.po, share/po/hu.po, share/po/it.po,
- share/po/id.po, share/po/pl.po, share/po/no.po, share/po/fi.po,
- share/po/th.po, share/po/el.po, share/po/sk.po, share/po/lt.po,
- share/po/ar.po, share/po/sl.po, share/po/vi.po, share/po/br.po,
- share/po/ca.po, share/po/gl.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/ro.po, share/po/bs.po, share/po/da.po,
- share/po/zh_TW.po, share/po/cs.po, share/po/af.po: updated pot file
-
-2001/11/12 sdupont
-
- * standalone/drakbackup: new backup tool.
- backend_mode with options.
- begin interactive mode.
-
-2001/10/29 dam's <damien@mandrakesoft.com>
-
- * standalone/drakfont: code correction
-
-2001/10/29 gbeauchesne
-
- * rescue/list.ia64:
- - Add xfs_repair and efibootmgr
-
-2001/10/29 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * fs.pm, loopback.pm, fsedit.pm, bootloader.pm: revert back to /initrd
-
- * modules.pm: here too
- CDCEther looks good, I add it
-
-2001/10/29 Pixel <pixel@mandrakesoft.com>
-
- * tools/pcmcia_config.patch: adapt for new pcmcia-cs
-
-2001/10/29 sdupont
-
- * standalone/drakfont: Copyright (C)
- correction of warning & code cleaning.
- the end.... i think...
- updated
- uninstall interface & progress bar
- uninstall interface : lists & progress bar
- new progress bar update
- todo: second list
-
-2001/10/28 dam's <damien@mandrakesoft.com>
-
- * standalone/drakfont: cleaning
-
-2001/10/27 daouda
-
- * devices.pm, my_gtk.pm, Xconfig.pm: return value at end of module
-
- * share/rpmsrate:
- - increase icewm weight.
-
-2001/10/26 dam's <damien@mandrakesoft.com>
-
- * standalone/drakautoinst, standalone/drakfont: progress bar hack
-
-2001/10/26 Pixel <pixel@mandrakesoft.com>
-
- * mdk-stage1/pcmcia_config.patch: was duplicated in gi/tools
-
- * partition_table_gpt.pm, partition_table_raw.pm: no adjust start and end
- on GPT
-
-2001/10/26 sdupont
-
- * standalone/drakfont: updated.
- search correct progress bar mode implementation.
- updated
- fix some bugs & interface progress implementation.
- TODO:
- progress before backend.
- search if directory already exist before custom install.
-
-2001/10/25 dam's <damien@mandrakesoft.com>
-
- * standalone/drakautoinst: simple variables handled, code compression.
- The new and shiny drakautoinst is coming. P|-|34R
- The new drakautoinst is coming. P|-|34R
-
- * pixmaps/mdk_logo.png: additional logo
-
- * standalone/drakfont: code correction
-
-2001/10/25 sdupont
-
- * standalone/drakfont: merge differents versions.
- file sector, list of fonts for advanced install...
- applications choice, license widget, help widget.
-
-2001/10/24 dam's <damien@mandrakesoft.com>
-
- * standalone/drakfont: updated
- updated
- updated, lot of bugs.
- updated
-
- * my_gtk.pm: added set_editable
-
-2001/10/24 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * rescue/lsparts, mdk-stage1/rescue-gui.c, mdk-stage1/frontend.h,
- mdk-stage1/.cvsignore, rescue/install_bootloader,
- rescue/tree/etc/rc.sysinit, rescue/Makefile,
- mdk-stage1/stdio-frontend.c, rescue/guessmounts, mdk-stage1/Makefile,
- rescue/tree/etc/issue, rescue/make_rescue_img,
- mdk-stage1/newt-frontend.c:
- - add a GUI to the rescue
- - provide guessmounts with better efficiency and output, go to
- console, and reboot
- - provide install_bootloader which runs lilo from /mnt if it seems
- safe
- - add lsparts to rescue, which prints partitions with detected types
-
-2001/10/24 Pixel <pixel@mandrakesoft.com>
-
- * fsedit.pm: replace /initrd with /lib/initrd
- (hds): in case of GPT, allow ext2 to be replaced by any kind of
- partitions (esp. EFI)
-
- * partition_table.pm, partition_table_gpt.pm, partition_table_bsd.pm,
- partition_table_raw.pm: add methods first_usable_sector and
- last_usable_sector
-
- * fs.pm, loopback.pm, bootloader.pm: replace /initrd with /lib/initrd
-
-2001/10/24 sdupont
-
- * standalone/drakfont: scroll
- `
- import_status & progress.
- gi update.
-
-2001/10/23 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * services.pm: tagged as translatable some left out strigns
-
-2001/10/23 sdupont
-
- * standalone/drakfont: gi update
- doc and progress bar.
- gui: install from directory
- gui supported.
-
-2001/10/23 yduret
-
- * share/po/fr.po: fixed fohtes grammar
-
-2001/10/22 dam's <damien@mandrakesoft.com>
-
- * network/tools.pm: speedtouch config : added usa vpi vci
-
-2001/10/22 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/modules.c: oops forgot to umount after "updatemodules"...
-
-2001/10/22 Pixel <pixel@mandrakesoft.com>
-
- * rescue/tree/etc/profile: fix PATH (have /mnt/bin /mnt/usr/bin ...)
-
-2001/10/21 Till Kamppeter <till@mandrakesoft.com>
-
- * printerdrake.pm: Fixed connection device setting for "oki4w" driver.
-
-2001/10/19 gbeauchesne
-
- * partition_table_gpt.pm:
- - Use /dev/random through devices::make() instead of /dev/urandom
- - Localize file descriptor
- - Capitalize error message if no /dev/random found
-
- * partition_table.pm:
- - s/Win98 FAT32/FAT32/
- - s/Partition that contains an EFI file system/EFI (FAT-12/16/32)/
- - Add "FAT32" to @important_types for IA-64 & /boot/efi
-
-2001/10/19 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/stdio-frontend.c: small fix
-
-2001/10/19 Pixel <pixel@mandrakesoft.com>
-
- * install_interactive.pm: OOize can_raw_add
-
- * partition_table.pm: handle empty $hd->{primary}{raw} (happens with no
- partitions on ia64)
- - raw_add, can_raw_add moved to partition_table_raw
- - using raw_removed
-
- * partition_table_dos.pm: better handling of CHS overflow (mainly for non
- cylinder-boundary aligned part (like ia64))
-
- * partition_table_raw.pm (adjustEnd): in case the end is totalsectors,
- don't adjust since totalsectors / cylinder_size may not be an integer
- (zero_MBR): defaults to GPT on ia64
- (raw_add, can_raw_add, raw_removed): created, can now be overloaded in
- partition_table_*.pm's
- (get_geometry): keep the total_sectors as given by c::total_sectors,
- don't try to recompute it based on nb_cylinders (for hds where
- total_sectors is not a multiple of nb_cylinders)
-
- * common.pm: cleanup
-
- * partition_table_gpt.pm: fix ending is last sector, not next one
- add TODO for partition entry guid
- - writing partition table now works
- - creating a new partition table now works (except GUIDs generation)
-
-2001/10/18 dam's <damien@mandrakesoft.com>
-
- * network/tools.pm: corrected GET_FL and co
-
-2001/10/18 Franēois Pons <fpons@mandrakesoft.com>
-
- * standalone/XFdrake: fix ia64 glitches with /usr/X11R6/lib/X11/Cards (now
- use rgb.txt instead).
-
-2001/10/18 Pixel <pixel@mandrakesoft.com>
-
- * partition_table_gpt.pm:
- - add checksum verif on partition entries
- - detect the type of partition since the partition table types seem
- quite poor
- read part of GPT partition table working
-
- * fsedit.pm:
- - add checksum verif on partition entries
- - detect the type of partition since the partition table types seem
- quite poor
-
- * partition_table.pm: read part of GPT partition table working
- shorter GPT name
-
- * detect_devices.pm: safer modprobe ide-floppy
-
-2001/10/18 sdupont
-
- * standalone/drakfont: change Fontmap ghostscript file.
- drakfont support now .gsf fonts
- end of backend......
- update
-
-2001/10/17 dam's <damien@mandrakesoft.com>
-
- * standalone/draksec: typo
-
-2001/10/17 sdupont
-
- * standalone/drakfont: implementation of type1 fonts removing.
- ghostscript, xfs and staroffice tested and supported.
-
-2001/10/16 dam's <damien@mandrakesoft.com>
-
- * standalone/draksec: correct bad level display
-
- * standalone/interactive_http/Makefile: makes rpmlint happy
-
-2001/10/16 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/pci-resource/update-pci-ids.pl: print checks
-
- * rescue/tree/etc/rc.sysinit: better phrasing
-
-2001/10/16 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * rescue/devices.pl, mdk-stage1/pci-resource/update-pci-ids.pl,
- rescue/list.ppc: typo in update kernel by /me
- fine-tune sanity_check for ppc
- move /dev/nvram from list.ppc to devices.pl
-
-2001/10/15 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/da.po: updated Danish file
-
-2001/10/15 yduret
-
- * scanner.pm: wonderful perl forgotten
-
-2001/10/12 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/pci-resource/update-pci-ids.pl: have "other.img" drivers also
- supported
-
-2001/10/12 sdupont
-
- * standalone/drakfont: support all installations, and support xfs,
- ghostcript, staroffice.
- todo aplli: openoffice, gimp, abiword, netscape & other browsers...
- todo or to see: --strong ttmkfdir -c ???
- emd of backend..
-
-2001/10/11 dam's <damien@mandrakesoft.com>
-
- * standalone/draknet: multiple card configuration bug corrected.
- allelluia.
-
- * network/tools.pm: aded use c
-
- * standalone/drakfont: code review
-
-2001/10/11 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * interactive_stdio.pm, install_steps_stdio.pm: stdio mode works again
-
-2001/10/11 Pixel <pixel@mandrakesoft.com>
-
- * install2.pm: ensure postInstallNonRooted is done *before* ejecting cdrom
-
-2001/10/11 sdupont
-
- * docs/drakfont/drakfont.log, docs/drakfont/drakfont.pdf,
- docs/drakfont/drakfont.dvi: clean directory..
-
- * docs/drakfont/drakfont.aux, docs/drakfont/dia_srcs/drakfont.dia,
- docs/drakfont/dia_srcs/drakfont_uninstall.dia,
- docs/drakfont/dia_srcs/drakfont_install.dia: delete all bads files...
-
- * standalone/drakfont: improved....
- improved && implement remove fonts for xfs
- improved
- improved
- optimisation
- correction of option install --replace
- dialog of install options
- correction of install option.
-
- * docs/drakfont/drakfont.jpg, docs/drakfont/drakfont_install.jpg,
- docs/drakfont/drakfont_uninstall.jpg, docs/drakfont/mandrake.ps: jpg &
- ps with -kb option
- clean...2
-
-2001/10/10 dam's <damien@mandrakesoft.com>
-
- * standalone/drakfont: typo
- improved options handling
-
- * standalone/net_monitor: ergo and features improvments, pipe handling
- correction
-
- * network/tools.pm: updated
-
-2001/10/10 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * lang.pm, share/locales-skeleton.tar.bz2: enabled Maltese language
-
-2001/10/10 Pixel <pixel@mandrakesoft.com>
-
- * interactive.pm: normalize the default type entry ("entry")
-
- * interactive_gtk.pm: fix typo (on clicked_may_quit)
-
-2001/10/10 sdupont
-
- * standalone/drakfont: option replace for "install from" &
- windows_import...
- update install dir
- better for --install
- new version of drakfont. in perl langage.
-
- * docs/drakfont/drakfont.jpg, docs/drakfont/drakfont.aux,
- docs/drakfont/drakfont.log, docs/drakfont/drakfont.pdf,
- docs/drakfont/drakfont.tex, docs/drakfont/Makefile,
- docs/drakfont/drakfont_install.jpg, docs/drakfont/drakfont.dvi,
- docs/drakfont/drakfont_uninstall.jpg, docs/drakfont/mandrake.ps: docs
- drakfont
-
-2001/10/10 yduret
-
- * standalone/scannerdrake: first apparition on earth..
-
- * Makefile.config: added scannerdrake
-
-2001/10/09 dam's <damien@mandrakesoft.com>
-
- * network/tools.pm: removed trash
- connection test is now in background, corrects the interface freeze
- problem
-
- * pixmaps/net_u.png: new pixmap for draknet/net_monitor
-
- * standalone/net_monitor, standalone/draknet: connection test is now in
- background, corrects the interface freeze problem
-
-2001/10/09 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/hu.po: updated Hungarian file
-
-2001/10/09 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm: fix detecting read-only drives (like memory-sticks)
-
- * partition_table.pm: make perl_checker happy
-
- * partition_table_raw.pm: fix detecting read-only drives (like
- memory-sticks)
- make perl_checker happy
-
- * modules.pm, detect_devices.pm, install2.pm: ensure floppies() takes care
- of usb-storage if possible, so that patch on usb floppy works
-
-2001/10/09 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * Xconfigurator_consts.pm, keyboard.pm, Xconfigurator.pm: move to Linux
- keycodes on PPC, add additional Apple modelines
-
- * install_steps_interactive.pm: re-enable PPC bootloader setup
-
-2001/10/08 dam's <damien@mandrakesoft.com>
-
- * c/stuff.xs.pm: added FL_GET and FL_SET
-
-2001/10/08 Franēois Pons <fpons@mandrakesoft.com>
-
- * modules.pm: keep isp and gdth module for hd.img (as well as all.rdz) as
- they have been
- removed from the skip list for stage1.
-
- * rescue/tree/etc/oem: added silly modification to avoid using more than 7
- partition for DAC960 (/home
- and /var are not created in the current state).
-
-2001/10/08 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/pci-resource/update-pci-ids.pl: ia64
-
- * mdk-stage1/Makefile: 8.1 -> cooker
-
-2001/10/08 Pixel <pixel@mandrakesoft.com>
-
- * modules.pm, partition_table.pm: yet a few other ataraid cases
-
-2001/10/06 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * partition_table_raw.pm, partition_table.pm: updates to accomodate IBM
- PPC systems with DOS partition table
-
-2001/10/05 Franēois Pons <fpons@mandrakesoft.com>
-
- * rescue/tree/etc/oem: added (missing) creation of
- /hd/boot/grub/device.map (needed for
- CompactSmartArray).
-
-2001/10/05 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/rpmsrate: kdegames : 2 -> 4
-
-2001/10/04 Franēois Pons <fpons@mandrakesoft.com>
-
- * rescue/tree/etc/oem: fix (work around) parted problem when it refuse to
- use all disk space for
- partition.
- added another psacct log file in touch.
- fixed typo on scalar reference for psacct bug.
- updated with 8.1 OEM ProSuite.
-
- * tools/oem-prepare: updated with 8.1 OEM ProSuite.
-
-2001/10/04 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/hu.po: updated Hungarian file
-
-2001/10/04 Pixel <pixel@mandrakesoft.com>
-
- * partition_table_dos.pm: is little-endian, so use "V" instead of "I"
-
-2001/10/03 Franēois Pons <fpons@mandrakesoft.com>
-
- * tools/oem-prepare: synced with oem script.
- removed 3D games not installed by default.
-
- * rescue/tree/etc/oem: fixed typo in produced patch.
- added extension to pro suite CD (added kernel-enterprise to possibly
- installable
- and install kernel22).
- removed 3D games not installed by default.
- added missing xmms-arts.
- allow halting.
-
-2001/10/03 Pixel <pixel@mandrakesoft.com>
-
- * fsedit.pm: yet another ataraid support patch
-
-2001/10/02 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: fix previous hack.
- added hack to do "/sbin/depmod -a" for NVIDIA driver.
-
-2001/10/02 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/probing.c: new pci-ids.h
-
- * mdk-stage1/usb-resource/update-usb-ids.pl: better look
-
- * share/po/fr.po: small fix
-
- * standalone/drakgw: don't call pkgs_install when no package needs to be
- installed
-
-2001/10/02 Pixel <pixel@mandrakesoft.com>
-
- * detect_devices.pm: bloody ataraid detection
-
- * devices.pm: ataraid devices support
-
-2001/10/01 Franēois Pons <fpons@mandrakesoft.com>
-
- * share/rpmsrate: fixed bad format for BOOKS used in DEVELOPMENT.
-
- * rescue/tree/etc/oem: added CHARSET support, removed kernel22 and
- kernel-enterprise from list of
- package installable in oem mode, added possibility to set language on
- /etc/oem
- script invocation.
-
- * install_steps_interactive.pm: avoid chooseCD on oem install.
-
- * install_steps_gtk.pm: avoid asking for changing CD on oem install.
-
- * install_any.pm: use $boot_medium for default medium in oem install,
- avoid using kernel22 or
- kernel-enterprise in oem install (space available is too tight on CD oem
- version).
-
- * tools/oem-prepare: synced with oem script.
-
-2001/10/01 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/pci-resource/update-pci-ids.pl: reword it so that it reflects
- what's in the marfiles
-
-2001/10/01 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/bg.po: updated Bulgarian file
-
-2001/09/29 Chmouel Boudjnah <chmouel@mandrakesoft.com>
-
- * docs/README: New adress where to find the kernel BOOT
-
-2001/09/29 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/da.po: updated Danish file
-
-2001/09/27 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * rescue/drvinst: don't install usb keyboard drivers more than once
- try to fix usb keyboards
-
-2001/09/27 kjx
-
- * share/po/zh_CN.po: translating
-
-2001/09/26 gbeauchesne
-
- * install_any.pm:
- - Suggest /boot/efi on IA-64 for the first VFAT partition found,
- instead
- of /mnt/windows
-
- * bootloader.pm:
- - bootloader.pm (suggest): don't search for dos (or windows) boot
- partition
- on IA-64 since ELILO can only boot Linux.
- - bootloader.pm (write_lilo_conf): don't cry if we don't have
- /boot/boot.b
- or boot/message on IA-64.
-
- * rescue/list.ia64:
- - Add file list for "rescue" disk
-
- * share/list.ia64, partition_table.pm:
- - partition_table.pm: Add XFS suggestion for IA-64
- - share/list.ia64: misc updates and additions wrt. XFS, ReiserFS
-
-2001/09/25 baudens
-
- * share/po/fr.po: s/Linux Mandrake/Mandrake Linux/
- Remove totally crazy translation.
- Translators, please use your brain!
-
-2001/09/25 gbeauchesne
-
- * partition_table.pm:
- - Add ReiserFS and Ext3fs entries for IA-64
-
-2001/09/25 Pixel <pixel@mandrakesoft.com>
-
- * pkgs.pm (naughtyServers): cleanup comments
-
-2001/09/25 warly
-
- * share/rpmsrate: put gtk-themes _and_ sawfish-themes to 4 so that it is
- installed for newbie and drakfirsttime does not fail.
- put gtk-themes to 4 so that it is installed for newbie and drakfirsttime
- does not fail.
-
-2001/09/25 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps_interactive.pm: allow non ejectable medium to allow all
- hdlists on the bootable medium.
- make current boot medium already selected if multiple hdlist are on this
- boot medium.
-
-2001/09/25 warly
-
- * share/rpmsrate: put gtk-themes _and_ sawfish-themes to 4 so that it is
- installed for newbie and drakfirsttime does not fail.
- put gtk-themes to 4 so that it is installed for newbie and drakfirsttime
- does not fail.
-
-2001/09/24 dam's <damien@mandrakesoft.com>
-
- * share/po/fr.po: corrected translation
-
-2001/09/24 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/stage1.c, mdk-stage1/mount.c, mdk-stage1/mount.h,
- mdk-stage1/disk.c: hd.img now detects partition types... backport from
- DrakX :-)
-
-2001/09/24 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/nl.po: updated Dutch file
-
-2001/09/24 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm (mount_part): fix for iso loopback mounted
-
- * share/po/fr.po: fix
-
-2001/09/24 dam's <damien@mandrakesoft.com>
-
- * network/adsl.pm, network/isdn.pm: type assignation bug fix
- corrected type assignation
-
- * share/po/fr.po: corrected bad translation
-
- * standalone/draknet: corrected type assignation
-
-2001/09/24 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * bootloader.pm: fix add_append (there was a ) at the end of the parameter
- value)
-
-2001/09/24 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/ko.po, share/po/tr.po, share/po/es.po: updated Spanish, Korean
- and Turkish files
-
-2001/09/24 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm (mount_part): fix for iso loopback mounted
-
- * share/po/fr.po: fix
-
-2001/09/24 warly
-
- * share/rpmsrate: lower arkeia
-
-2001/09/24 dam's <damien@mandrakesoft.com>
-
- * modules.pm: corrected isdn firmware
-
- * network/adsl.pm, network/isdn.pm: type assignation bug fix
- corrected type assignation
-
- * share/po/fr.po: corrected bad translation
-
- * standalone/draknet: corrected type assignation
-
-2001/09/24 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * bootloader.pm: fix add_append (there was a ) at the end of the parameter
- value)
-
-2001/09/24 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/ko.po, share/po/tr.po, share/po/es.po: updated Spanish, Korean
- and Turkish files
-
-2001/09/24 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm: fix small error merging existing fstab
-
- * share/po/fr.po: fix
-
- * diskdrake.pm: do not propose to mount/umount removable medias (disabled
- for now)
-
- * diskdrake_interactive.pm: hide the supermount checkbox in standalone
-
-2001/09/24 warly
-
- * share/rpmsrate: lower arkeia
-
-2001/09/24 dam's <damien@mandrakesoft.com>
-
- * network/netconnect.pm, network/ethernet.pm: bug fix
-
- * modules.pm: corrected isdn firmware
-
- * network/isdn.pm, network/adsl.pm: type assignation bug fix
- corrected type assignation
-
- * standalone/draknet: corrected type assignation
-
- * install_any.pm, rescue/tree/etc/oem: added isdn-light to be copied on hd
- during install
-
-2001/09/24 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: deactivated Riva128 3D hw acceleration and too many
- problems reported with it.
-
- * share/rpmsrate: allow rpm build for non expert who choose development.
-
- * install_steps.pm: disable wins in /etc/nsswitch.conf (after installed
- packages).
-
-2001/09/24 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/ko.po, share/po/tr.po, share/po/es.po: updated Spanish, Korean
- and Turkish files
-
-2001/09/24 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm: fix small error merging existing fstab
- add "iocharset=" for cdrom
-
- * install_steps.pm:
- - disable supermount by default
- - cleanup nsswitch.conf wins removing
-
- * diskdrake.pm: do not propose to mount/umount removable medias (disabled
- for now)
-
- * diskdrake_interactive.pm: hide the supermount checkbox in standalone
-
-2001/09/24 siegel
-
- * share/po/de.po: new german version
-
-2001/09/24 warly
-
- * share/rpmsrate: lower arkeia
-
-2001/09/24 dam's <damien@mandrakesoft.com>
-
- * network/netconnect.pm, network/ethernet.pm: bug fix
-
-2001/09/24 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: deactivated Riva128 3D hw acceleration and too many
- problems reported with it.
-
- * share/rpmsrate: allow rpm build for non expert who choose development.
- removed any reference to XFree86-glide-module or Glide_XXX packages.
-
- * pkgs.pm: sort mediums by number, in allMediums() else they will be in
- hash keys orders in
- install_steps_interactive::chooseCD().
-
- * install_steps.pm: disable wins in /etc/nsswitch.conf (after installed
- packages).
-
-2001/09/24 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm: add "iocharset=" for cdrom
-
- * install_steps.pm:
- - disable supermount by default
- - cleanup nsswitch.conf wins removing
-
-2001/09/24 Franēois Pons <fpons@mandrakesoft.com>
-
- * share/rpmsrate: removed any reference to XFree86-glide-module or
- Glide_XXX packages.
-
- * pkgs.pm: sort mediums by number, in allMediums() else they will be in
- hash keys orders in
- install_steps_interactive::chooseCD().
-
-2001/09/24 Till Kamppeter <till@mandrakesoft.com>
-
- * printer.pm: File permission settings during install were not done.
- Fixed.
-
-2001/09/23 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/po/fr.po: misc typo correction
-
- * install_steps.pm: voodoo cards don't like performing 3d accel in fb mode
-
-2001/09/23 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_gtk.pm: add "Graphical Environment" in meta_class server
-
- * share/rpmsrate: simplify (for the moment)
- do not force X flag, have it selected for any "Graphical Environment"
-
- * share/compssUsers, install_any.pm: do not force X flag, have it selected
- for any "Graphical Environment"
-
-2001/09/23 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * install_steps.pm: voodoo cards don't like performing 3d accel in fb mode
-
-2001/09/23 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/cs.po, share/po/hu.po: updated Czech and Hungarian file
-
- * share/po/zh_TW.po: updated Chinese file
-
-2001/09/23 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_gtk.pm: add "Graphical Environment" in meta_class server
-
- * fsedit.pm: add magic SWAPSPACE2
-
- * bootloader.pm: allow bootloader on fat partitions
-
- * share/compssUsers, share/rpmsrate, install_any.pm: do not force X flag,
- have it selected for any "Graphical Environment"
-
-2001/09/22 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/Makefile: version is 8.1
-
-2001/09/22 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/bs.po: updated Bosnian file
-
-2001/09/22 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm, install2.pm:
- - cleanup noatime option setting
- - cleanup exec option setting (must noexec => 0 instead of exec => 1)
-
- * bootloader.pm (suggest): fix kernel 2.2 secure adding in menu
-
-2001/09/22 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/bg.po: updated Bulgarian file
-
-2001/09/22 Pixel <pixel@mandrakesoft.com>
-
- * bootloader.pm (suggest): fix kernel 2.2 secure adding in menu
-
-2001/09/22 Till Kamppeter <till@mandrakesoft.com>
-
- * printerdrake.pm: Added support for automatic /dev/... file permissions
- setting by devfsd.
- Improved matching of auto-detection results with database entries.
- Given hint to the user to select the correct model when matching fails.
-
- * printer.pm: Added support for automatic /dev/... file permissions
- setting by devfsd.
-
-2001/09/21 Franēois Pons <fpons@mandrakesoft.com>
-
- * detect_devices.pm: avoid detecting plip for live upgrade.
-
-2001/09/21 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * keyboard.pm: use "us" XKB file for Korean keyboard, otherwise some
- functionality is lost
- small fix for "vn" keyboard (enable toggle key)
-
- * share/po/ko.po: updated Korean file
- updated pot file
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/DrakX.pot, share/po/es.po, share/po/fr.po, share/po/bg.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/nl.po, share/po/ja.po, share/po/wa.po,
- share/po/sv.po, share/po/hu.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/fi.po, share/po/no.po, share/po/th.po,
- share/po/el.po, share/po/sk.po, share/po/lt.po, share/po/vi.po,
- share/po/gl.po, share/po/ca.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/bs.po, share/po/da.po, share/po/cs.po,
- share/po/af.po: updated pot file
-
- * printerdrake.pm: small fix
-
-2001/09/21 Till Kamppeter <till@mandrakesoft.com>
-
- * printer.pm, printerdrake.pm: When one changes the driver of a freshly
- added printer, the cursor was not pointed to the old driver, fixed.
- Fixed paper size not set according to chosen language during
- installation.
-
-2001/09/21 dam's <damien@mandrakesoft.com>
-
- * network/adsl.pm: typo
-
-2001/09/21 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps_gtk.pm: reworked medium management.
- moved com_license to parent package (as code that show the license is
- now
- available even for non gtk install).
-
- * Xconfigurator.pm: S3 ViRGE is a bad card for testing on live upgrade.
-
- * pkgs.pm, install_any.pm: reworked medium management.
-
- * detect_devices.pm: avoid detecting plip for live upgrade.
-
- * install_steps_interactive.pm: avoid keeping testing code.
- reworked medium management.
- added code to support changeable cdrom, set a unique copy of license for
- installing commercial application as package variable (exported).
-
-2001/09/21 gbeauchesne
-
- * share/po/no.po: remove trailing '\n'
-
-2001/09/21 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/hu.po, share/po/no.po: updated pot file
- updated pot file
- updated Norwegian and Hungarian files
- updated pot file
-
- * help.pm: updated help file
-
- * share/po/help_xml2pm.pl: updated pot file
-
- * printerdrake.pm: small fix
- changed text strings to be more translator friendly
- (NEVER EVER cut a phrase)
-
- * share/po/zh_CN.po, share/po/ru.po, share/po/vi.po: updated pot file
- updated pot file
- corrected extra \n
- updated pot file
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/sr.po,
- share/po/de.po, share/po/et.po, share/po/tr.po, share/po/eu.po,
- share/po/az.po, share/po/pt_BR.po, share/po/hr.po, share/po/ko.po,
- share/po/nl.po, share/po/ja.po, share/po/wa.po, share/po/sv.po,
- share/po/it.po, share/po/id.po, share/po/pl.po, share/po/fi.po,
- share/po/th.po, share/po/el.po, share/po/sk.po, share/po/lt.po,
- share/po/gl.po, share/po/ca.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/bs.po, share/po/da.po, share/po/cs.po,
- share/po/af.po: updated pot file
- updated pot file
- updated pot file
-
- * keyboard.pm: adapted keyboard priority numbers (it is useless to give a
- multichoice with a
- value higher than 90)
-
- * share/po/zh_TW.po: updated pot file
- updated pot file
-
-2001/09/21 Pixel <pixel@mandrakesoft.com>
-
- * bootloader.pm: write password in lilo.conf even if it's also done by
- msec, otherwise lilo will fail with restricted only
-
- * install_steps.pm: Ensure $o->{superuser}{name} is temporary
-
- * share/rpmsrate, install_any.pm: add HIGH_SECURITY flag, use it for
- libsafe and kernel22-secure
-
-2001/09/21 Till Kamppeter <till@mandrakesoft.com>
-
- * printer.pm: Added a forgotten "_( ... )".
-
-2001/09/21 warly
-
- * share/rpmsrate: add gnomemeeting and openmcu
-
-2001/09/20 Pixel <pixel@mandrakesoft.com>
-
- * install_interactive.pm (partition_with_diskdrake): ensure the $::expert
- flag modifications in
- diskdrake do not escape from diskdrake
-
- * install_steps_interactive.pm (choosePartitionsToFormat): do not propose
- check bad blocks for xfs and jfs
-
-2001/09/20 dam's <damien@mandrakesoft.com>
-
- * network/netconnect.pm: don't reapply the conf, if already applied.
- usefull for dhcp, because the network should be restarted after
- configured
-
- * network/adsl.pm: test if microcode is there
-
- * bootlook.pm: removed blocking die
-
-2001/09/20 fcrozat
-
- * share/rpmsrate: Add gnome-user-docs to GNOME install
- Install Mdk eazel engine for gnome
-
-2001/09/20 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: take care not probing in /dev/ for finding package to upgrade,
- this cause
- problem in live_upgrade.
-
- * Xconfigurator.pm: added VideoRam for ET 6x00 card.
-
- * network/netconnect.pm: tried to fix damien sucking.
-
-2001/09/20 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/po/fr.po: misc
-
-2001/09/20 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/tr.po: updated Turkish file
-
- * share/po/cs.po: updated Czech file
-
- * share/po/nl.po, share/po/da.po, share/po/zh_TW.po: updated Danish,
- Chinese and Dutch files
-
-2001/09/20 Pixel <pixel@mandrakesoft.com>
-
- * install_interactive.pm (partition_with_diskdrake): ensure the $::expert
- flag modifications in
- diskdrake do not escape from diskdrake
-
- * share/rpmsrate: raise i18n fonts
-
- * fsedit.pm (hds): do a get_major_minor where needed
-
- * lang.pm: replace xcin by chinput as per Alex request
-
- * install_steps_interactive.pm (choosePartitionsToFormat): do not propose
- check bad blocks for xfs and jfs
-
-2001/09/20 Till Kamppeter <till@mandrakesoft.com>
-
- * printerdrake.pm: Fixed flow of the program for the "recommended" mode of
- the installation.
-
-2001/09/20 dam's <damien@mandrakesoft.com>
-
- * network/netconnect.pm: don't reapply the conf, if already applied.
- usefull for dhcp, because the network should be restarted after
- configured
-
- * mouse.pm: text positionning
-
- * standalone/net_monitor: less gethostbyname
-
-2001/09/20 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: take care not probing in /dev/ for finding package to upgrade,
- this cause
- problem in live_upgrade.
-
- * network/netconnect.pm: tried to fix damien sucking.
-
-2001/09/20 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/nl.po, share/po/da.po, share/po/zh_TW.po: updated Danish,
- Chinese and Dutch files
-
-2001/09/20 Pixel <pixel@mandrakesoft.com>
-
- * share/rpmsrate: raise i18n fonts
- s/telnet-server/telnet-server-krb5/
-
- * fsedit.pm (hds): do a get_major_minor where needed
-
- * fs.pm (add2all_hds): allow both "smbfs" and "smb" as fs type
-
- * lang.pm: replace xcin by chinput as per Alex request
-
- * printerdrake.pm: back out the modif from till as asked by till
-
-2001/09/20 Till Kamppeter <till@mandrakesoft.com>
-
- * printerdrake.pm: Make it possible to configure more than 1 printer in a
- "recommended" mode installation.
-
-2001/09/19 dam's <damien@mandrakesoft.com>
-
- * network/adsl.pm, network/netconnect.pm, network/ethernet.pm: network
- restart at better place
-
-2001/09/19 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/rpmsrate: chromium and tuxracer don't work well with Riva
-
-2001/09/19 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/it.po: updated pot file
- updated help xml
-
- * help.pm: updated help file
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/bg.po, share/po/sr.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/nl.po, share/po/ja.po,
- share/po/sv.po, share/po/hu.po, share/po/id.po, share/po/pl.po,
- share/po/fi.po, share/po/no.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/vi.po, share/po/gl.po,
- share/po/ca.po, share/po/lv.po, share/po/uk.po, share/po/eo.po,
- share/po/bs.po, share/po/da.po, share/po/zh_TW.po, share/po/cs.po,
- share/po/af.po: updated pot file
-
- * share/po/DrakX.pot, share/po/es.po, share/po/fr.po, share/po/de.po:
- updated help xml
-
- * share/po/wa.po: updated pot file
- updated pot file
-
-2001/09/19 dam's <damien@mandrakesoft.com>
-
- * network/adsl.pm, network/netconnect.pm, network/ethernet.pm: network
- restart at better place
-
-2001/09/19 fcrozat
-
- * share/rpmsrate: Add mdk-eazel-engine
-
- * share/po/fr.po: Fix french mistakes
-
-2001/09/19 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: added code to check if package are really installed.
-
- * Xconfigurator.pm: Rage 128 doesn't like XF3 at all.
- make only bad card Riva128 for testing XF4.
- Riva128 is now a bad card.
-
-2001/09/19 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/init.c: raklet quoting
-
- * share/rpmsrate: chromium and tuxracer don't work well with Riva
-
-2001/09/19 Pixel <pixel@mandrakesoft.com>
-
- * loopback.pm (create): don't use seek to create big files otherwise you
- get hole and
- swapon doesn't like it
-
- * any.pm (ask_users): default icon "man"
-
- * lang.pm: compatibility with older $o->{lang} names (for auto_installs)
-
- * install2.pm: initial support for server install
- compatibility with older $o->{lang} names (for auto_installs)
-
- * install_steps_gtk.pm: initial support for server install
-
- * printerdrake.pm: help perl_checker
-
- * pkgs.pm, share/rpmsrate, install_any.pm:
- - gmc instead of nautilus for non-latin1 installs
- - introduce CHARSET flag and use it
-
-2001/09/19 Till Kamppeter <till@mandrakesoft.com>
-
- * printer.pm: Network is now only required (and checked) for remote
- printers.
- Several buglets fixed in remote CUPS server dialog.
-
- * printerdrake.pm: Removed a forgotten debug help line from the code.
- Fixed typo in dialog text of high/paranoid security.
- Network is now only required (and checked) for remote printers.
- Several buglets fixed in remote CUPS server dialog.
-
-2001/09/18 dam's <damien@mandrakesoft.com>
-
- * network/netconnect.pm: don't ask to connect if lan or dhcp
-
-2001/09/18 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * install2.pm: don't create bootdisk by default
-
- * share/po/fr.po: misc
-
-2001/09/18 Pixel <pixel@mandrakesoft.com>
-
- * any.pm (write_passwd_user): fix setting "pw" field (for auto_installs)
-
- * install_steps_gtk.pm, pkgs.pm: tentative to correct install time for big
- installs
-
-2001/09/18 dam's <damien@mandrakesoft.com>
-
- * network/adsl.pm, my_gtk.pm: corrected Speedtouch -> speedtouch
-
- * network/netconnect.pm: don't ask to connect if lan or dhcp
-
- * standalone/drakgw: debug
-
-2001/09/18 Franēois Pons <fpons@mandrakesoft.com>
-
- * rescue/tree/etc/oem: added X group with SYSTEM.
- finally work arounded rpm bug by flepied.
-
- * detect_devices.pm: added back full pci probe for stage2 command lspci.
- removed full pci probe for stringlist (used for generating report_bug).
-
- * install_steps_interactive.pm: now finally really fixed printer label in
- summary dialog.
- fixed printer description in summary (again).
- fixed no printer displayed (at least, print Remote CUPS server).
-
- * commands.pm: make lspci a full pci probe instead of safe pci probe.
-
-2001/09/18 gbeauchesne
-
- * Xconfigurator.pm:
- - Force XFree 4 on IA-64. No XFree 3.3.X there...
-
- * tools/ia64/elilo.efi:
- - elilo 3.1
-
-2001/09/18 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * install2.pm: don't create bootdisk by default
-
- * standalone/drakautoinst: have "manual" and "replay" translated
-
- * share/po/fr.po: misc
-
-2001/09/18 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/nl.po, share/po/hu.po: updated Dutch and Hungarian files
-
-2001/09/18 Pixel <pixel@mandrakesoft.com>
-
- * lang.pm, share/gen_locales.sh, share/locales-skeleton.tar.bz2:
- - remove ISO-8859-5, KOI8-R and KOI8-U
- - cleanup packdrake extracting locales
- - cleanup/fixes lang.pm
-
- * install_steps.pm: fix setting kdmrc for latin1
-
- * any.pm (write_passwd_user): fix setting "pw" field (for auto_installs)
-
- * install_steps_gtk.pm, pkgs.pm: tentative to correct install time for big
- installs
-
-2001/09/17 Franēois Pons <fpons@mandrakesoft.com>
-
- * rescue/list: updated for rpm 4.0.3.
-
- * rescue/tree/etc/oem: updated for 8.1, contains workaround for bug of
- "rpm --root" but need more testing.
-
- * standalone/XFdrake: removed comment.
- added support to configure NVIDIA driver if everything is correctly
- installed.
-
-2001/09/17 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm, fsedit.pm:
- - '--' to separate options for supermount + small workaround (ro and
- exec before --)
- - fix nfs in manualFstab (for auto_installs, reported by David
- Eastcott)
-
-2001/09/17 Till Kamppeter <till@mandrakesoft.com>
-
- * printer.pm: Fixed bug of /etc/foomatic/defaultspooler not been written
- in expert install.
-
-2001/09/17 dam's <damien@mandrakesoft.com>
-
- * network/network.pm: no expert mode needed to choose gateway
-
-2001/09/17 Franēois Pons <fpons@mandrakesoft.com>
-
- * rescue/list: updated for rpm 4.0.3.
-
- * rescue/tree/etc/oem: updated for 8.1, contains workaround for bug of
- "rpm --root" but need more testing.
-
- * printerdrake.pm: add eval around installing lexmark-driver
- (proprietary).
-
- * Xconfigurator.pm: deactivating bad card test (too).
-
- * standalone/XFdrake: removed comment.
- added support to configure NVIDIA driver if everything is correctly
- installed.
-
-2001/09/17 odin
-
- * share/po/fr.po: updated fr.po
-
-2001/09/17 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * keyboard.pm: Added choice of "English|Ireland (euro)" so people wanting
- English language but also euro symbol can choose it.
- fixed Belgian keyboard
-
- * share/po/fr.po, share/po/wa.po, share/po/es.po: updated Spanish and
- Wallon files; corrected error syntax in French file
-
- * lang.pm: Added choice of "English|Ireland (euro)" so people wanting
- English language but also euro symbol can choose it.
-
-2001/09/17 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm:
- - '--' to separate options for supermount + small workaround (ro and
- exec before --)
- - fix nfs in manualFstab (for auto_installs, reported by David
- Eastcott)
- (mount): do not hand update /etc/mtab for nfs mounts, already done by
- mount(8)
- (set_default_options): disable iocharset= and codepage= for supermount
-
- * partition_table.pm (adjust_main_extended): do not use linux extended
-
- * detect_devices.pm (pci_probe): log full pci probes
-
- * standalone/drakbug_report: fix
-
- * fsedit.pm:
- - '--' to separate options for supermount + small workaround (ro and
- exec before --)
- - fix nfs in manualFstab (for auto_installs, reported by David
- Eastcott)
-
-2001/09/17 Till Kamppeter <till@mandrakesoft.com>
-
- * printer.pm: Fixed bug of /etc/foomatic/defaultspooler not been written
- in expert install.
- Do not die when "chkconfig" fails (needed for "security_check").
- Added "-q" option to foomatic-configure (should not get interactive).
- Added handling of high and paranoid security levels.
-
- * printerdrake.pm: /etc/foomatic/defaultspooler was not written in expert
- mode installation.
- Added handling of high and paranoid security levels.
-
-2001/09/17 Franēois Pons <fpons@mandrakesoft.com>
-
- * printerdrake.pm: add eval around installing lexmark-driver
- (proprietary).
-
-2001/09/17 Pixel <pixel@mandrakesoft.com>
-
- * detect_devices.pm (pci_probe): log full pci probes
-
- * fs.pm (set_default_options): disable iocharset= and codepage= for
- supermount
-
-2001/09/17 Franēois Pons <fpons@mandrakesoft.com>
-
- * printerdrake.pm: add eval around installing lexmark-driver
- (proprietary).
-
-2001/09/17 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * help.pm: updated help file
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/DrakX.pot, share/po/es.po, share/po/fr.po, share/po/sr.po,
- share/po/de.po, share/po/et.po, share/po/tr.po, share/po/eu.po,
- share/po/az.po, share/po/ru.po, share/po/pt_BR.po, share/po/hr.po,
- share/po/ko.po, share/po/nl.po, share/po/ja.po, share/po/wa.po,
- share/po/sv.po, share/po/hu.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/fi.po, share/po/no.po, share/po/th.po,
- share/po/el.po, share/po/sk.po, share/po/lt.po, share/po/vi.po,
- share/po/gl.po, share/po/ca.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/bs.po, share/po/da.po, share/po/zh_TW.po,
- share/po/cs.po, share/po/af.po: updated pot file
-
-2001/09/17 Pixel <pixel@mandrakesoft.com>
-
- * detect_devices.pm (pci_probe): log full pci probes
-
-2001/09/16 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm (getAndSaveAutoInstallFloppy): skip it on ia64
-
- * pkgs.pm (read_rpmsrate): fix bug
-
-2001/09/16 Till Kamppeter <till@mandrakesoft.com>
-
- * printer.pm: Fixed bug which prevented from printing the option list
- during install.
- Fixed bug which prevents printerdrake from running without PDQ
- installed.
-
-2001/09/16 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm (getAndSaveAutoInstallFloppy): skip it on ia64
- more up to my need ALL flag in compssUsersChoice
- remove auto-install special case (initialisation of compssUsersChoice)
-
- * share/rpmsrate:
- - cleanup packages appearing twice in rpmsrate
- - handle a few case of packages appearing twice
- - special case for packages appearing in INSTALL section (flag
- dropped)
- - new special flag ALL for compssUsersChoice
-
- * pkgs.pm: more up to my need ALL flag in compssUsersChoice
- - cleanup packages appearing twice in rpmsrate
- - handle a few case of packages appearing twice
- - special case for packages appearing in INSTALL section (flag
- dropped)
- - new special flag ALL for compssUsersChoice
-
- * rescue/make_rescue_img: use new mkdir_p, rm_rf and cp_af from
- MDK::Common
-
-2001/09/16 siegel
-
- * share/po/help_xml2pm.pl: added "systemitem"
-
-2001/09/16 Till Kamppeter <till@mandrakesoft.com>
-
- * printer.pm: Fixed bug which prevents printerdrake from running without
- PDQ installed.
-
-2001/09/16 dam's <damien@mandrakesoft.com>
-
- * mouse.pm, my_gtk.pm: bugfix + cosmetic changes
-
-2001/09/16 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * help.pm: updated help.pm file
-
- * share/po/hu.po: updated Hungarian file
- updated pot file
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/DrakX.pot, share/po/es.po, share/po/fr.po, share/po/bg.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/nl.po, share/po/ja.po,
- share/po/wa.po, share/po/sv.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/fi.po, share/po/no.po, share/po/th.po,
- share/po/el.po, share/po/sk.po, share/po/lt.po, share/po/vi.po,
- share/po/gl.po, share/po/ca.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/bs.po, share/po/da.po, share/po/zh_TW.po,
- share/po/cs.po, share/po/af.po: updated pot file
-
-2001/09/16 Pixel <pixel@mandrakesoft.com>
-
- * diskdrake.pm: "please click on ..." for removable, nfs, smb.
-
- * fsedit.pm: enhance lvm handling (mostly standalone)
- - cleanup & enhance raid mdstat reading (now works with or without
- devfs mounted)
- - chunk size is buggy?
-
- * install_any.pm (getAndSaveAutoInstallFloppy): skip it on ia64
- more up to my need ALL flag in compssUsersChoice
- remove auto-install special case (initialisation of compssUsersChoice)
- use new mkdir_p, rm_rf and cp_af from MDK::Common
-
- * share/rpmsrate:
- - cleanup packages appearing twice in rpmsrate
- - handle a few case of packages appearing twice
- - special case for packages appearing in INSTALL section (flag
- dropped)
- - new special flag ALL for compssUsersChoice
-
- * verify_c: add special case for c::to_utf8
-
- * pkgs.pm: more up to my need ALL flag in compssUsersChoice
- - cleanup packages appearing twice in rpmsrate
- - handle a few case of packages appearing twice
- - special case for packages appearing in INSTALL section (flag
- dropped)
- - new special flag ALL for compssUsersChoice
- use new mkdir_p, rm_rf and cp_af from MDK::Common
-
- * services.pm, install2.pm, lang.pm, commands.pm, loopback.pm,
- tinyfirewall.pm, raid.pm, keyboard.pm, printerdrake.pm, fs.pm, mouse.pm,
- network/netconnect.pm, timezone.pm, network/adsl.pm, install_steps.pm,
- any.pm, printer.pm, rescue/make_rescue_img, bootloader.pm: use new
- mkdir_p, rm_rf and cp_af from MDK::Common
-
- * diskdrake_interactive.pm, lvm.pm: enhance lvm handling (mostly
- standalone)
-
- * devices.pm (make): ensure it never returns a non-absolute name
- (it happened with make("foo") when cwd=/dev and /dev/foo existed)
-
-2001/09/16 siegel
-
- * share/po/help_xml2pm.pl: added "systemitem"
- added commet explainig that help.pm is automatically generated.
-
- * .cvsignore: added .*.sw? for vim users
-
-2001/09/16 Till Kamppeter <till@mandrakesoft.com>
-
- * printer.pm, printerdrake.pm: Added possibility to list command line
- options for the printers and to give the users help for printing
- Fixed bug of sometimes appearing the wron dialog after printing test
- pages
-
-2001/09/15 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm: fix options appearing twice in fstab
-
- * install_steps.pm, any.pm, c/stuff.pm: i18n kdmrc
-
- * lang.pm (load_mo): ensure the locale is set (was broken in non-gtk
- installs)
-
- * install_steps_auto_install.pm (enteringStep): do not translate in
- ja|ko|zh
-
-2001/09/15 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm: fix options appearing twice in fstab
-
- * install_steps.pm, any.pm, c/stuff.pm: i18n kdmrc
-
- * lang.pm (load_mo): ensure the locale is set (was broken in non-gtk
- installs)
-
- * install_steps_auto_install.pm (enteringStep): do not translate in
- ja|ko|zh
-
-2001/09/15 civileme
-
- * help.pm: Added a dialog in English for users selecting a printing system
- since no other
- OS seems to offer such a choice during install.
-
-2001/09/15 dam's <damien@mandrakesoft.com>
-
- * standalone/draknet: better connection testing
-
- * network/tools.pm: more timeout
-
- * network/adsl.pm: avoid asking 2 times to restart the ethernet card
-
- * mouse.pm: readded darea realization
-
-2001/09/15 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/rpmsrate: make gtk-themes installed when Gnome is choosen
-
- * share/po/es.po: updated Spanish file
-
- * share/po/wa.po, share/po/hu.po: updated Hungarian file
-
-2001/09/15 Pixel <pixel@mandrakesoft.com>
-
- * Makefile.config, tools/Makefile: add aewm-drakx
-
- * install_steps_gtk.pm: makes cancel on mouse selection works even better
- - add and use aewm-drakx
- - add some "skip" title on help/logo/steps windows so that aewm-drakx
- know they don't need keyboard focus
- - add some more title to ease debugging (when aewm-drakx is in debug
- mode)
-
- * install_gtk.pm, tools/aewm-drakx/Makefile, tools/aewm-drakx/misc.c,
- tools/aewm-drakx/README:
- - add and use aewm-drakx
- - add some "skip" title on help/logo/steps windows so that aewm-drakx
- know they don't need keyboard focus
- - add some more title to ease debugging (when aewm-drakx is in debug
- mode)
-
- * any.pm: i18n kdmrc
- fix user icons choice
- - add and use aewm-drakx
- - add some "skip" title on help/logo/steps windows so that aewm-drakx
- know they don't need keyboard focus
- - add some more title to ease debugging (when aewm-drakx is in debug
- mode)
-
- * install2.pm: don't warn if modules are missing when testing
-
- * bootloader.pm: find error in /tmp/.error only if exception is "xxx
- failed"
- (write_lilo_conf): ensure linear and lba32 are not both set
-
- * share/po/fake_c.pl: fix a tricky hack
-
- * my_gtk.pm: do the set_events before the show otherwise gtk go crazy (no
- more keyboard focus)
-
- * c/stuff.pm: i18n kdmrc
-
- * lang.pm (load_mo): ensure the locale is set (was broken in non-gtk
- installs)
-
- * install_steps_interactive.pm: fix typo
- find error in /tmp/.error only if exception is "xxx failed"
- makes cancel on mouse selection works even better
- fix cancel on mouse choice
-
- * install_steps.pm: i18n kdmrc
- enable supermount again
-
- * network/adsl.pm: correct dams typo
-
- * fs.pm (write_fstab): fix supermount moving from options to fstype
-
- * steps.pm: find error in /tmp/.error only if exception is "xxx failed"
-
- * tools/aewm-drakx/aewm.h, tools/aewm-drakx/client.c,
- tools/aewm-drakx/events.c, tools/aewm-drakx/aewm-drakx.c: set_focus on
- new map_request event (fix summary step)
- - add and use aewm-drakx
- - add some "skip" title on help/logo/steps windows so that aewm-drakx
- know they don't need keyboard focus
- - add some more title to ease debugging (when aewm-drakx is in debug
- mode)
-
- * install_steps_auto_install.pm (enteringStep): do not translate in
- ja|ko|zh
-
-2001/09/15 siegel
-
- * share/po/de.po: fixed another typo
- new string
-
- * printerdrake.pm: added missing _()
-
- * standalone/draksec: use " instead of ' to get i18n
-
- * standalone/draknet: fixed missing _()
-
-2001/09/15 Till Kamppeter <till@mandrakesoft.com>
-
- * printerdrake.pm: Added the PDQ panic button.
- Removed a superfluous "set_help" line.
- Save default spooler at program start, fixed typos in comments.
- Command line commands as "lpr", "lpq", ... are mapped to the correct
- spooler now.
- Fixed bug of a waiting message appearing together with a dialog
- Cleaned up variables to correctly switch between CUPS/Foomatic/Raw type
- for a printer
-
- * printer.pm: Added the PDQ panic button.
- Command line commands as "lpr", "lpq", ... are mapped to the correct
- spooler now.
-
- * standalone/printerdrake: Fixed bug of spooler choice via command line
- options being ignored.
-
-2001/09/15 warly
-
- * share/rpmsrate: add drakfirsttime
-
-2001/09/14 dam's <damien@mandrakesoft.com>
-
- * printer.pm, printerdrake.pm: make test_pms happy
-
- * install_any.pm: pptp-adsl instead of pptp-adsl-fr
-
- * Xconfigurator.pm: no shadow when X test
-
- * standalone.pm: bugfix
-
- * my_gtk.pm: no icon if wizard
- no shadow when X test
- shadow color
-
- * bootlook.pm: bugfix
- iautologin correction
-
- * mouse.pm: trying to remove draw
-
- * network/adsl.pm: debug
- pptp-adsl instead of pptp-adsl-fr
- bugfix
- updated speedtouch handling.
-
-2001/09/14 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps.pm: removed S3 ViRGE card from card with problem with
- frame buffer as it works fine.
-
- * Xconfigurator.pm: fixed filtering of depth for newt version.
- depth 24 is used for DRI for Rage 128 and Radeon instead of Depth 32 (as
- depth
- 32 simply doesn't work, even if DRI guide says it works :-) 24 bit works
- fine
- for Rage 128.
- apply restriction on depth available when changing resolution, removed
- S3 ViRGE
- from experimental 3D accelerated card list as it really does not work,
- allow on
- second pass to change card configuration to choose server (experimental
- server
- are still only available to expert), added support for UseCCEFor2D for
- Rage 128
- card if a TV card is installed (set to true, else set to false), added
- support
- for Rage Mobility M... card that are Rage 128 Mobile chipset, improved
- error
- message display to catch only appropriate error message of XFree 4.1.0
- only,
- added support for 32 bits for DRI using Matrox card, improved info
- message with
- real version of XFree used (anybody) and identifier from PCI probe
- (expert).
-
-2001/09/14 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/insmod-busybox/Makefile: clean also cleans the DIET target
-
- * mdk-stage1/Makefile, mdk-stage1/Makefile.mkinitrd_helper: back to using
- a reduced form of mkinitrd_helper for mkinitrd (only
- to provide a dietlibc-enabled static insmod)
-
-2001/09/14 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/wa.po: updated Walloon file
-
- * share/po/ko.po: updated Korean file
-
- * share/po/da.po: updated Danish file
- updated Danish file
-
- * share/po/bs.po, share/po/sv.po: updated Bosnian and Swedish files
-
-2001/09/14 Pixel <pixel@mandrakesoft.com>
-
- * partition_table_raw.pm, install_any.pm: when testing for bad drives, if
- opening for writing fails, remove the drive from the hard drive list
- (useful for Smartmedia readers)
-
- * pkgs.pm: update correctSize and invCorrectSize (now linear)
-
- * share/po/fr.po: fix odin bug (please run msgfmt before committing!)
-
- * share/rpmsrate: do not install Aurora in russian
-
-2001/09/14 siegel
-
- * share/po/de.po: updates
-
- * standalone/drakautoinst: Check exisence of "/root/replay_install.img"
- before anything else ...
-
-2001/09/14 Till Kamppeter <till@mandrakesoft.com>
-
- * printerdrake.pm: Added "set_help" lines for installer help texts.
- Raw queue entry added, so cursor not always on "Alps MD-1000" when no
- printer
- detected.
- Resolved conflict.
- Now it is checked whether the network is configured and running.
- draknet is called when the network is not configured.
- It is checked whether the spooler is automatically started at boot.
- The oki4daemon is started when needed.
- Lexmarks inkjet drivers are fully integrated.
- The permissions of the device files are set so that normal users can
- print with PDQ.
-
- * standalone/printerdrake: Fixed spooler selection by command line.
-
- * printer.pm: Raw queue entry added, so cursor not always on "Alps
- MD-1000" when no printer
- detected.
- Made network checking working on non-english systems.
- Now it is checked whether the network is configured and running.
- draknet is called when the network is not configured.
- It is checked whether the spooler is automatically started at boot.
- The oki4daemon is started when needed.
- Lexmarks inkjet drivers are fully integrated.
- The permissions of the device files are set so that normal users can
- print with PDQ.
-
-2001/09/14 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/bg.po, share/po/tr.po: updated Turkish and Bulgarian files
- updated pot file
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/DrakX.pot, share/po/es.po, share/po/fr.po, share/po/sr.po,
- share/po/de.po, share/po/et.po, share/po/eu.po, share/po/az.po,
- share/po/ru.po, share/po/pt_BR.po, share/po/hr.po, share/po/ko.po,
- share/po/nl.po, share/po/ja.po, share/po/wa.po, share/po/sv.po,
- share/po/hu.po, share/po/it.po, share/po/id.po, share/po/pl.po,
- share/po/fi.po, share/po/no.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/vi.po, share/po/gl.po,
- share/po/ca.po, share/po/lv.po, share/po/uk.po, share/po/eo.po,
- share/po/bs.po, share/po/da.po, share/po/zh_TW.po, share/po/cs.po,
- share/po/af.po: updated pot file
-
-2001/09/13 Frederic Lepied <flepied@mandrakesoft.com>
-
- * share/rpmsrate: added mt-st to ARCHIVING
-
-2001/09/13 odin
-
- * share/po/fr.po: updated up to 6648
-
-2001/09/13 Pixel <pixel@mandrakesoft.com>
-
- * diskdrake_interactive.pm: new migration feature for creation of
- partitions on existing mount points
-
- * diskdrake.pm:
- - add back shortcuts
- - red colored buttons in nfs/smb/removable
-
-2001/09/13 dam's <damien@mandrakesoft.com>
-
- * pixmaps/wiz_default_up.png, pixmaps/wiz_draknet.png: updated
-
- * my_gtk.pm: updated
- addde /usr/share/icons in path for pixmaps search
- shadow reduced to 5 pixels
-
- * standalone/draknet, network/isdn.pm: isdn timeout works now.
-
-2001/09/13 Frederic Lepied <flepied@mandrakesoft.com>
-
- * share/rpmsrate: added mt-st to ARCHIVING
-
-2001/09/13 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator_consts.pm: removed ugly Modeline 1024x768 which causes
- trouble to XFree86 4.1.0.
-
- * Xconfigurator.pm: fix for missing Xinerama for Matrox cards.
- fix for Matrox G550 support, now add DRI support.
- disable any question to user about XF3 if he choose a dual head
- configuration.
- disable DRI if Xinerama has been chosen.
- updated Rage Mobility regexp for bad_card, added bad_card for XF4 as
- Tseng ET6\d00.
-
- * install_any.pm: updates 3D category according Matrox G550 and Radeon
- card.
-
- * install_steps.pm: synced with Xconfigurator bad_card class of video card
- to avoid using frame
- buffer, added ET6\d00 style card which seems to have problem.
-
-2001/09/13 odin
-
- * share/po/fr.po: updated up to 6648
- updated fr.po
-
-2001/09/13 Pixel <pixel@mandrakesoft.com>
-
- * share/rpmsrate: add krozat
-
- * any.pm (inspect): use a safer dir when standalone
-
- * install_steps.pm: extend disable KDE GreetString to
- ja|ko|zh|ru|th|vi|be|bg
- do not translate kdm GreetString in ja|ko|zh (what about ru?)
- in kdmrc GreetString, magic string HOSTNAME replaced by %n
-
- * diskdrake_interactive.pm: new migration feature for creation of
- partitions on existing mount points
-
- * diskdrake.pm:
- - add back shortcuts
- - red colored buttons in nfs/smb/removable
-
- * partition_table.pm: BLKPG_ADD_PARTITION support (aka adding partition on
- the fly without rebooting on a device with some already mounted
- partitions)
-
- * install_steps_interactive.pm (selectKeyboard): don't prompt in newbie
- mode if >=90, not >90
-
-2001/09/13 dam's <damien@mandrakesoft.com>
-
- * my_gtk.pm: shadow reduced to 5 pixels
-
- * standalone/draknet, network/isdn.pm: isdn timeout works now.
-
-2001/09/13 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: fix for missing Xinerama for Matrox cards.
- fix for Matrox G550 support, now add DRI support.
- disable any question to user about XF3 if he choose a dual head
- configuration.
- disable DRI if Xinerama has been chosen.
- updated Rage Mobility regexp for bad_card, added bad_card for XF4 as
- Tseng ET6\d00.
- avoid creating /etc/X11/XF86Config* file if --g_auto_install.
-
- * services.pm: updated repartition of services into category, network
- category are commented so
- that service will to "Other" one.
-
- * Xconfigurator_consts.pm: removed ugly Modeline 1024x768 which causes
- trouble to XFree86 4.1.0.
-
- * install_any.pm: updates 3D category according Matrox G550 and Radeon
- card.
-
- * install_steps.pm: synced with Xconfigurator bad_card class of video card
- to avoid using frame
- buffer, added ET6\d00 style card which seems to have problem.
-
-2001/09/13 Pixel <pixel@mandrakesoft.com>
-
- * keyboard.pm: filtered the list from lang2keyboard to display only valid
- keyboards
-
- * c/stuff.xs.pm: add partition adding on the fly trick
-
- * partition_table.pm: BLKPG_ADD_PARTITION support (aka adding partition on
- the fly without rebooting on a device with some already mounted
- partitions)
-
- * install_steps.pm: do not translate kdm GreetString in ja|ko|zh (what
- about ru?)
- in kdmrc GreetString, magic string HOSTNAME replaced by %n
-
-2001/09/13 dam's <damien@mandrakesoft.com>
-
- * standalone/draknet, network/isdn.pm: isdn timeout works now.
-
-2001/09/13 Franēois Pons <fpons@mandrakesoft.com>
-
- * lang.pm: fixed bad $localedir in load_mo().
-
- * g_auto_install: updated so that this scripts is running again.
-
- * install2.pm: do not output error message for bad kernel if using
- --g_auto_install.
-
- * install_steps_interactive.pm: fixed Printer name reporting for a
- specific printer.
-
- * install_any.pm: updates 3D category according Matrox G550 and Radeon
- card.
-
- * services.pm: updated repartition of services into category, network
- category are commented so
- that service will to "Other" one.
-
- * live_install2: updated #! as ../perl is not used.
-
- * my_gtk.pm: synced with --g_auto_install mode.
-
- * install_steps.pm: synced with Xconfigurator bad_card class of video card
- to avoid using frame
- buffer, added ET6\d00 style card which seems to have problem.
-
- * Xconfigurator.pm: fix for Matrox G550 support, now add DRI support.
- disable any question to user about XF3 if he choose a dual head
- configuration.
- disable DRI if Xinerama has been chosen.
- updated Rage Mobility regexp for bad_card, added bad_card for XF4 as
- Tseng ET6\d00.
- avoid creating /etc/X11/XF86Config* file if --g_auto_install.
- synced with --g_auto_install mode.
- disable testing with all SiS card except SiS 630 under XF4.
-
-2001/09/13 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/sp.po, share/po/pl.po, share/po/pt.po, share/po/no.po,
- share/po/th.po, share/po/sr.po, share/po/sk.po, share/po/lt.po,
- share/po/ru.po, share/po/pt_BR.po, share/po/ko.po, share/po/lv.po,
- share/po/uk.po, share/po/nl.po, share/po/ja.po, share/po/sv.po,
- share/po/id.po: updated pot file
-
-2001/09/13 Pixel <pixel@mandrakesoft.com>
-
- * keyboard.pm: filtered the list from lang2keyboard to display only valid
- keyboards
-
- * c/stuff.xs.pm: add partition adding on the fly trick
-
- * partition_table.pm: BLKPG_ADD_PARTITION support (aka adding partition on
- the fly without rebooting on a device with some already mounted
- partitions)
-
- * install2.pm (selectKeyboard): remove code causing
- install_steps::selectKeyboard to be skipped
-
- * install_steps.pm: do not translate kdm GreetString in ja|ko|zh (what
- about ru?)
- in kdmrc GreetString, magic string HOSTNAME replaced by %n
-
-2001/09/12 dam's <damien@mandrakesoft.com>
-
- * my_gtk.pm: typo
- new color for shadow
- corrected shadow handling
- no shadow if liveupdate
-
- * share/help.png: new help
-
- * mouse.pm: removed debug code
-
- * network/tools.pm, network/netconnect.pm, network/ethernet.pm,
- network/isdn.pm, network/adsl.pm, network/modem.pm: new default
- connection handling
-
- * standalone.pm: added wait message while installing package
-
-2001/09/12 daouda
-
- * standalone/drakbug_report: add Mandrake release section
-
-2001/09/12 fcrozat
-
- * share/rpmsrate: Fix gnome install
-
-2001/09/12 Franēois Pons <fpons@mandrakesoft.com>
-
- * install2.pm: removed obsolete --nocpi flag for install2.
- avoid probing usb device (for mouse) if --noauto is given.
-
- * install_steps.pm: disabled frame buffer for most of the SiS display card
- except SiS 630.
-
- * Xconfigurator.pm: added MGA G550 as always having two head.
-
- * live_install2: fix when switching perl version.
-
- * live_install: use system perl instead.
-
-2001/09/12 gbeauchesne
-
- * share/list.ia64, share/list, share/list.i386:
- - list (/sbin/mkfs.jfs, /sbin/mkfs.xfs): Move to...
- - list.i386: ... Here.
- - list.ia64: Updates.
-
-2001/09/12 odin
-
- * share/po/fr.po: updated fr.po
-
-2001/09/12 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/zh_CN.po, share/po/fi.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/de.po,
- share/po/et.po, share/po/el.po, share/po/tr.po, share/po/eu.po,
- share/po/az.po, share/po/hr.po, share/po/vi.po, share/po/ca.po,
- share/po/gl.po, share/po/eo.po, share/po/help_xml2pm.pl, share/po/wa.po,
- share/po/da.po, share/po/zh_TW.po, share/po/cs.po, share/po/hu.po,
- share/po/it.po, share/po/af.po: updated pot file
-
- * help.pm: new version with [ and ]
-
- * lang.pm: commented out utf-8 russian locale, for now
-
-2001/09/12 Pixel <pixel@mandrakesoft.com>
-
- * standalone/lsnetdrake: fix typo
- added wonderful lsnetdrake
-
- * modules.pm, install2.pm: display error when the kernel mismatch the
- modules
-
- * docs/README: explain how to get the boot kernels
-
- * install_steps_gtk.pm (choosePackagesTree): translate the categories
-
- * standalone/drakbug_report: cleanup
-
- * bootloader.pm (suggest): no "quiet" boot for smp and enterprise kernels
- (suggest): no "quiet" boot for smp and enterprise kernels
- allow grub even for more than 800MB
-
- * Makefile.drakxtools, Makefile.config: added wonderful lsnetdrake
-
-2001/09/12 siegel
-
- * share/po/de.po: new & shiny verion
-
- * share/po/help_xml2pm.pl: fixed silly error
- added keycap patch
-
-2001/09/12 dam's <damien@mandrakesoft.com>
-
- * my_gtk.pm: corrected shadow handling
- no shadow if liveupdate
- table undef corrected
- removed shadows if standalone
-
- * standalone/drakgw, standalone/draknet: corrected wizard mode in newt
- mode
-
- * mouse.pm: removed debug code
-
- * network/netconnect.pm: corrected splash in non X mode
-
-2001/09/12 daouda
-
- * standalone/drakbug_report: add Mandrake release section
-
-2001/09/12 Franēois Pons <fpons@mandrakesoft.com>
-
- * live_install2: fix when switching perl version.
-
- * live_install: use system perl instead.
-
-2001/09/12 kjx
-
- * share/po/zh_CN.po: revison
-
-2001/09/12 Pixel <pixel@mandrakesoft.com>
-
- * docs/README: explain how to get the boot kernels
-
- * install_steps_gtk.pm (choosePackagesTree): translate the categories
-
- * standalone/drakbug_report: cleanup
-
- * bootloader.pm: allow grub even for more than 800MB
-
-2001/09/11 dam's <damien@mandrakesoft.com>
-
- * network/netconnect.pm: removed useless print
- don't detect ethx if no autodetection.
- implement smarter checkboxes
-
- * mouse.pm: test updated
- mouse test worked
-
- * network/ethernet.pm: don't detect ethx if no autodetection.
- implement smarter checkboxes
-
- * pixmaps/arrow_down.xpm: pixmap corrected
- new arrows
-
- * pixmaps/arrow_up.xpm: new arrows
-
- * share/rpmsrate: added ibod
- added isdn-light
-
- * interactive_gtk.pm, my_gtk.pm: fear the shaped windows...
-
-2001/09/11 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * help.pm: small fix
-
- * share/po/fr.po, share/po/de.po, share/po/DrakX.pot, share/po/hu.po,
- share/po/it.po: updated Hungarian file;
- updated pot file
-
-2001/09/11 Pixel <pixel@mandrakesoft.com>
-
- * Makefile (tar-drakxtools): remove the building of "help" for drakxtools
-
- * bootloader.pm: for lilo, do not have table=/dev/xxx if the device is not
- a primary
- partition (otherwise lilo dies)
-
-2001/09/10 dam's <damien@mandrakesoft.com>
-
- * network/modem.pm, network/ethernet.pm: detect_devices
-
- * standalone/net_monitor, network/network.pm: removed timeout:1 in
- resolv.conf, modified timeout scanning in draknet/net_monitor
-
- * install_gtk.pm, install_steps_gtk.pm: mouse test moved
-
- * mouse.pm: test_mouse moved
-
- * my_gtk.pm: added border
- window decorations
- no set_events if embedded
-
- * standalone/draknet: removed timeout:1 in resolv.conf, modified timeout
- scanning in draknet/net_monitor
- debug
-
- * standalone/mousedrake: don't fork the code
-
- * network/adsl.pm: debug
- debug
-
-2001/09/10 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_any.pm: updated g_auto_install() for newer printerdrake
- interface.
-
- * modules.pm, detect_devices.pm: moved modules::get_pcmcia_devices into
- detect_devices::pcmcia_probe.
-
- * mdk-stage1/init-data/msgboot-blank.img.bz2: initial release for
- blank.img floppy image.
-
- * install_steps_interactive.pm, mouse.pm: added hid type usb mouse
- support.
-
- * Xconfigurator_consts.pm: added some more ModeLine (1024x768 @ 97.6 Hz,
- 1024x480 but not automatically used).
-
-2001/09/10 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/rpmsrate: plop
- some adjustements in Games section
-
-2001/09/10 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/DrakX.pot, share/po/de.po: updated German file; added choice of
- various quotes in help_xml2pm.pl
- Updated pot file;
- removed translations that are too low on percentage.
-
- * share/po/zh_TW.po: updated Chinese file
-
- * share/po/ko.po: updated Korean file
- Updated pot file;
- removed translations that are too low on percentage.
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/et.po, share/po/tr.po, share/po/eu.po,
- share/po/az.po, share/po/ru.po, share/po/pt_BR.po, share/po/hr.po,
- share/po/cy.po, share/po/nl.po, share/po/ja.po, share/po/wa.po,
- share/po/sv.po, share/po/is.po, share/po/hu.po, share/po/it.po,
- share/po/id.po, share/po/pl.po, share/po/no.po, share/po/fi.po,
- share/po/th.po, share/po/el.po, share/po/sk.po, share/po/lt.po,
- share/po/ar.po, share/po/sl.po, share/po/vi.po, share/po/br.po,
- share/po/ca.po, share/po/gl.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/ro.po, share/po/bs.po, share/po/da.po,
- share/po/cs.po, share/po/af.po: Updated pot file;
- removed translations that are too low on percentage.
-
- * share/po/help_xml2pm.pl: updated German file; added choice of various
- quotes in help_xml2pm.pl
-
-2001/09/10 Pixel <pixel@mandrakesoft.com>
-
- * interactive_gtk.pm, my_gtk.pm:
- - make diskdrake work in embedded mode
- - $my_gtk::pop_it used where it should
-
- * detect_devices.pm: fix ide-scsi appearing 2 times when standalone
- because both in /proc/ide
- and /proc/scsi/scsi
-
- * share/po/help_xml2pm.pl: s/my/our/ for $i18ned_... vars
- - skip directories missing drakx-help.xml
- - convert to the right charset (taken from $lang.po)
- - rename help-*.po by help-*.pot
- - fix typo in script removing $lang.po translations to favour
- help-*.pot
-
- * diskdrake.pm:
- - make diskdrake work in embedded mode
- - $my_gtk::pop_it used where it should
- fix Umount and Mount when i18ned for nfs/smb
- don't display Wizard if wizard done before DrakX
-
- * share/po/Makefile, share/po/.cvsignore:
- - rename help-*.po by help-*.pot
- - fix typo in script removing $lang.po translations to favour
- help-*.pot
-
-2001/09/10 siegel
-
- * share/po/de.po: updates
-
-2001/09/10 Till Kamppeter <till@mandrakesoft.com>
-
- * printer.pm: Copying of PPD file when moving a CUPS (non-Foomatic) queue
- modified to not get
- interactive when overwriting a file.
- Comment put into non-Foomatic CUPS PPD files in /etc/cups/ppd/ to be
- able to
- identify which PPD from /usr/share/cups/model was used (for
- auto-install).
-
-2001/09/10 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/DrakX.pot, share/po/es.po, share/po/fr.po, share/po/bg.po,
- share/po/ga.po, share/po/sr.po, share/po/de.po, share/po/et.po,
- share/po/tr.po, share/po/eu.po, share/po/az.po, share/po/ru.po,
- share/po/pt_BR.po, share/po/hr.po, share/po/ko.po, share/po/cy.po,
- share/po/nl.po, share/po/ja.po, share/po/wa.po, share/po/sv.po,
- share/po/is.po, share/po/hu.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/fi.po, share/po/no.po, share/po/th.po,
- share/po/el.po, share/po/sk.po, share/po/lt.po, share/po/ar.po,
- share/po/sl.po, share/po/vi.po, share/po/br.po, share/po/ca.po,
- share/po/gl.po, share/po/lv.po, share/po/uk.po, share/po/eo.po,
- share/po/ro.po, share/po/bs.po, share/po/da.po, share/po/cs.po,
- share/po/af.po: Updated pot file;
- removed translations that are too low on percentage.
-
-2001/09/10 Pixel <pixel@mandrakesoft.com>
-
- * share/po/Makefile, share/po/.cvsignore, share/po/help_xml2pm.pl:
- - rename help-*.po by help-*.pot
- - fix typo in script removing $lang.po translations to favour
- help-*.pot
-
-2001/09/09 Pixel <pixel@mandrakesoft.com>
-
- * modules.pm: probeall handling
-
-2001/09/09 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * install_any.pm: getAndSaveInstallFloppy: fix multiple cdrom issue
-
-2001/09/09 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/tr.po: updated Turkish file
-
- * share/po/sv.po: updated Swedish file
-
-2001/09/09 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm (ejectCdrom): fix D state on exit
-
- * diskdrake_interactive.pm, install_interactive.pm, diskdrake.pm:
- - "Wizard" and "More" are back
- - allow "Use for loopback" when there is already a loopback
- - set the options on newly created partitions
- - recompute_loopbacks called after modification of loopbacks, no more
- before reading
- - restrict the lenght of the lines in partition description
- - make loopback work
-
- * interactive_gtk.pm, interactive.pm, any.pm, interactive_newt.pm:
- clicked_may_quit used in place of clicked+exception to work-around
- perl-GTK bug (?)
-
- * share/po/i18n_compssUsers: ensure we're not adding a string already
- there (otherwise msgmerge yells)
-
- * share/po/help_xml2pm.pl, share/po/.cvsignore: xml help
- handling/enhancing for multi-langs
-
- * modules.pm: probeall handling
- (write_conf): switch to "probeall scsi_hostadapter ..."
-
- * share/po/Makefile: xml help handling/enhancing for multi-langs
- xml help handling/enhancing for multi-langs
-
- * partition_table.pm (get_normal_parts_and_holes): remove only small
- holes, not small partitions
-
- * fs.pm (set_default_options): remove iocharset=... for nfs (why was it
- there?)
-
-2001/09/08 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/po/fr.po: fix some ortograf
-
- * share/rpmsrate: lvm not installed for everyone ?!
-
-2001/09/08 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_auto_install.pm: force exitInstall to be non automatic
-
- * install_steps.pm, fs.pm, install_steps_interactive.pm, fsedit.pm,
- diskdrake_interactive.pm, install2.pm, diskdrake.pm: make loopback
- installs work again
-
-2001/09/09 Pixel <pixel@mandrakesoft.com>
-
- * modules.pm (write_conf): switch to "probeall scsi_hostadapter ..."
-
-2001/09/08 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/po/fr.po: fix some ortograf
-
- * share/rpmsrate: lvm not installed for everyone ?!
-
- * modules.pm: fix write_conf regarding /etc/modules so that (1) it doesn't
- flush it when
- it didn't decide to put any modules in it (to leave user's modules) (2)
- it
- doesn't remove the last line (3) it uses stronger regexp'es for
- substitution to not remove modules that have names made of other modules
- names subsets
-
-2001/09/08 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/zh_TW.po: updated Chinese file
-
-2001/09/08 Pixel <pixel@mandrakesoft.com>
-
- * lang.pm: fix font in iso-15
-
- * modules.pm (write_conf): put "probeall scsi-hosts scsi_hostadapter ..."
-
- * interactive.pm: ugly workaround perl bug ([ID 20010908.008] memory leak
- with nested subs)
-
- * share/diskdrake.rc: change name
-
- * install_steps_auto_install.pm: force exitInstall to be non automatic
-
- * install_steps.pm, fs.pm, install_steps_interactive.pm, fsedit.pm,
- diskdrake_interactive.pm, install2.pm, diskdrake.pm: make loopback
- installs work again
-
- * timezone.pm: Asia/Taipei for Traditional Chinese
-
- * detect_devices.pm: remove debug code
-
-2001/09/07 daouda
-
- * share/rpmsrate: add mdkonline (X 4)
-
-2001/09/07 fcrozat
-
- * share/rpmsrate: Add grio500
-
-2001/09/07 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: fix card managed only by XF4 (may have some wrong
- result).
- fix all Matrox card used with XF4 which really does not like X in frame
- buffer
- (unable to restore frame buffer of DrakX).
-
-2001/09/07 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * rescue/tree/etc/oem, rescue/guessmounts, rescue/list.i386,
- rescue/tree/etc/rc.sysinit: ext3, xfs, jfs
-
- * bootloader.pm: use -v for mkinitrd
-
- * share/po/fr.po: "reseaux" and plurals
- misc
-
- * share/rpmsrate: some work on games
-
-2001/09/07 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/ja.po, share/po/vi.po: updated Vietnamese and Japanese files
-
-2001/09/07 Pixel <pixel@mandrakesoft.com>
-
- * Makefile: cleanup po
-
- * install_steps.pm: s|kdmrc|kdm/kdmrc|
-
- * lang.pm: fix load_mo call
-
- * share/po/help_xml2pm.pl, share/po/Makefile, help.pm: new help
-
- * diskdrake_interactive.pm: disable_forced_fsck called for ext3 formatting
- disable_forced_fsck called for ext3 formatting
- (Type): disable fsck when migrated ext2->ext3
-
- * fs.pm: disable_forced_fsck called for ext3 formatting
-
-2001/09/07 siegel
-
- * share/po/de.po: updates
-
-2001/09/07 Till Kamppeter <till@mandrakesoft.com>
-
- * standalone/printerdrake, printer.pm, printerdrake.pm: Data structure
- fitted for auto-install to work
- Optimized program to be much faster
- Many more waiting messages
- Many bugfixes
-
-2001/09/07 daouda
-
- * share/rpmsrate: add mdkonline (X 4)
-
-2001/09/07 fcrozat
-
- * share/rpmsrate: Add grio500
-
-2001/09/07 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: fix card managed only by XF4 (may have some wrong
- result).
- fix all Matrox card used with XF4 which really does not like X in frame
- buffer
- (unable to restore frame buffer of DrakX).
-
-2001/09/07 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * any.pm: Changed simple quote to double quote for a translatable string
- (otherwise
- it isn't seen)
-
- * share/po/es.po: updated Spanish file
- updated pot file
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/DrakX.pot, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/cy.po, share/po/nl.po,
- share/po/ja.po, share/po/wa.po, share/po/is.po, share/po/hu.po,
- share/po/it.po, share/po/id.po, share/po/pl.po, share/po/no.po,
- share/po/fi.po, share/po/th.po, share/po/el.po, share/po/sk.po,
- share/po/lt.po, share/po/ar.po, share/po/sl.po, share/po/vi.po,
- share/po/br.po, share/po/ca.po, share/po/gl.po, share/po/lv.po,
- share/po/uk.po, share/po/eo.po, share/po/ro.po, share/po/bs.po,
- share/po/da.po, share/po/zh_TW.po, share/po/cs.po, share/po/af.po:
- updated pot file
-
- * share/po/sv.po: updated Swedish file
- updated pot file
-
-2001/09/07 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm: s|kdmrc|kdm/kdmrc|
- remove the "konsole and gnome-terminal are lamers in exotic languages,
- link them to something better"
-
- * bootloader.pm (write_lilo_conf): fix typo
-
- * share/po/help_xml2pm.pl, share/po/Makefile, help.pm: new help
-
- * diskdrake_interactive.pm: disable_forced_fsck called for ext3 formatting
- disable_forced_fsck called for ext3 formatting
- (Type): disable fsck when migrated ext2->ext3
-
- * install_any.pm, keyboard.pm: cleanup
-
- * partition_table.pm, share/list: add xfs
-
- * fs.pm: disable_forced_fsck called for ext3 formatting
-
- * share/rpmsrate: add jfsprogs
-
-2001/09/07 siegel
-
- * share/po/de.po: updates
- updates/fixes
-
-2001/09/06 dam's <damien@mandrakesoft.com>
-
- * network/adsl.pm, network/tools.pm: corrected speedtouch
-
- * install_gtk.pm: removed comments
-
-2001/09/06 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: cleanup for bad card and prefer XF3, so now using
- XFree 4.1.0 is not bad, and
- all NVIDIA card are no more considered bad.
-
- * pkgs.pm: fixed retry of package 3 times everytime even if first install
- succeeded, now
- after first successfull install, go to next package to install.
-
- * install_steps.pm: removed some cards for allowing frame buffer.
-
-2001/09/06 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * standalone/drakgw: works now ;p
-
-2001/09/06 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * lang.pm: 'zh' in LANGUAGE for Chinese is needed by DrakX
- corrected lang.pm to have coherence in locale usage (it was the source
- of much of the problems); changed keyboard.pm to ignore charset encoding
- in locale name for locale -> keyboard guessing.
- removed unused gconv modules, converted az.po to utf-8 (as it was the
- only
- remaining az.po on Earth still in a non standard encoding)
-
- * share/list, share/gen_locales.sh, share/locales-skeleton.tar.bz2,
- keyboard.pm, share/po/az.po: corrected lang.pm to have coherence in
- locale usage (it was the source
- of much of the problems); changed keyboard.pm to ignore charset encoding
- in locale name for locale -> keyboard guessing.
- removed unused gconv modules, converted az.po to utf-8 (as it was the
- only
- remaining az.po on Earth still in a non standard encoding)
-
-2001/09/06 Pixel <pixel@mandrakesoft.com>
-
- * install2.pm: fix keyboard config + some cleanup
- cleanup (use /proc/self instead of /proc/$$)
-
- * install_steps.pm, install_steps_interactive.pm, keyboard.pm: fix
- keyboard config + some cleanup
-
-2001/09/06 dam's <damien@mandrakesoft.com>
-
- * network/adsl.pm, network/tools.pm: corrected speedtouch
-
- * install_gtk.pm: removed comments
-
-2001/09/06 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: cleanup for bad card and prefer XF3, so now using
- XFree 4.1.0 is not bad, and
- all NVIDIA card are no more considered bad.
- avoid using @resolutions_laptop, now use only @resolutions, this means
- 1400x1050
- is available to other, use XFree86 4.1.0 builtin timings for 1400x1050
- (so
- 1400x1050 is no more printed as modeline for XFree 4.1.0 configuration
- file).
-
- * install_steps.pm: removed some cards for allowing frame buffer.
- fix log when configuring printer queue.
-
- * Xconfigurator_consts.pm: added 1400, 1920 and 2048 for %min_hsync4wres.
- cleaned up a bit and using XFree86 4.1.0 builtin timings for 1400x1050
- and
- 1920x1440, 2048x1536 has no modeline (but its min hsync is really high).
-
- * pkgs.pm: fixed retry of package 3 times everytime even if first install
- succeeded, now
- after first successfull install, go to next package to install.
-
- * install_any.pm: update printer data for g_auto_install.
-
-2001/09/06 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * standalone/drakgw: works now ;p
-
-2001/09/06 Pixel <pixel@mandrakesoft.com>
-
- * install2.pm: fix keyboard config + some cleanup
- cleanup (use /proc/self instead of /proc/$$)
-
- * install_steps.pm, install_steps_interactive.pm, keyboard.pm: fix
- keyboard config + some cleanup
-
- * fs.pm (merge_fstabs): correction allowing manual_fstab to not give the
- type
-
-2001/09/06 dam's <damien@mandrakesoft.com>
-
- * network/adsl.pm, network/tools.pm: corrected speedtouch
-
- * install_gtk.pm: removed comments
- new mouse test
-
-2001/09/06 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: revert previous patch, this is not usable with current rpm as
- it complains if
- one the file has a modified MD5SUM against the header describing it in
- the
- hdlist, so this is most of the time useless.
- guess filename if the file is not found (for an rpm file during
- installation),
- so try with release incremented in such case (good for Cooker user or
- local
- tester using network installation).
-
- * install_steps.pm: fix log when configuring printer queue.
-
- * Xconfigurator.pm: avoid using @resolutions_laptop, now use only
- @resolutions, this means 1400x1050
- is available to other, use XFree86 4.1.0 builtin timings for 1400x1050
- (so
- 1400x1050 is no more printed as modeline for XFree 4.1.0 configuration
- file).
-
- * Xconfigurator_consts.pm: added 1400, 1920 and 2048 for %min_hsync4wres.
- cleaned up a bit and using XFree86 4.1.0 builtin timings for 1400x1050
- and
- 1920x1440, 2048x1536 has no modeline (but its min hsync is really high).
-
- * install_any.pm: update printer data for g_auto_install.
-
- * printerdrake.pm: revert previous commit.
- added a missing ifup lo, on some case (auto_install) it fails.
-
- * printer.pm: start ifup lo before starting service cups.
-
-2001/09/06 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/da.po: updated Danish file
-
- * share/po/ga.po, share/po/no.po: updated Irish and Norwegian files
-
-2001/09/06 Pixel <pixel@mandrakesoft.com>
-
- * share/diskdrake.rc, fsedit.pm, diskdrake.pm: add journalised in legend,
- fix the use
-
- * diskdrake_interactive.pm (Add2LVM): do not allow spaces in lvm names
-
- * fs.pm (merge_fstabs): correction allowing manual_fstab to not give the
- type
-
- * timezone.pm (ntp_server): fix (step-tickers was empty)
-
-2001/09/05 dam's <damien@mandrakesoft.com>
-
- * standalone/net_monitor, standalone/draknet: corrected opeions
-
- * standalone/mousedrake: typo
- updated
-
- * network/tools.pm: corrected initcript
-
- * pixmaps/mouse_middle.xpm, pixmaps/mouse_right.xpm,
- pixmaps/mouse_left.xpm: new pixmaps
-
-2001/09/05 Pixel <pixel@mandrakesoft.com>
-
- * standalone/diskdrake: fix function called
-
-2001/09/05 Till Kamppeter <till@mandrakesoft.com>
-
- * printer.pm, printerdrake.pm: Set default printer (all spoolers), manual
- config (CUPS), bugfixes, clean-ups.
-
-2001/09/05 dam's <damien@mandrakesoft.com>
-
- * pixmaps/wiz_default_left.png, pixmaps/wiz_default_up.png,
- pixmaps/wiz_drakgw.png: new icons
-
- * share/themes-mdk.rc: updated theme
-
- * standalone/draknet: interface display corrected
-
- * share/themes/mdk-button4.png, share/themes/mdk-button1.png: new buttons
-
- * install_gtk.pm: 2 sec without sensitives buttons
-
- * network/netconnect.pm: only if standalone
-
- * pixmaps/network.png, pixmaps/bootloader.png, pixmaps/printer.png,
- pixmaps/security.png, pixmaps/rootpasswd.png, pixmaps/harddrive.png,
- pixmaps/keyboard.png, pixmaps/X.png, pixmaps/mouse.png,
- pixmaps/bootdisk.png: new pixmaps
-
-2001/09/05 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: fixed display of XFdrake test image (fcrozat).
-
- * install_steps.pm: fixed typo preventing removable devices to be seen in
- /etc/fstab.
- fixed configurePrinter (used for auto_install).
-
- * install_steps_interactive.pm: avoid asking when using existing partition
- for magic partition with a real
- mntpoint (typically /tmp/hdimage) if we are not using a ramdisk (so
- partition is
- not unmountable).
-
- * bootloader.pm: removed yvounet sucking, handle Mandrake lilo or unknown
- lilo.
-
- * fs.pm: fix bad creation of /mnt/hd for an hd installation without
- ramdisk.
- support setting /tmp/hdimage in /etc/fstab even if memory is low (not
- using ramdisk).
-
- * install_any.pm: filtering $o->{printer} for g_auto_install().
- allow installing urpmi on hd install even if low memory (so not using
- ramdisk).
-
- * diskdrake_interactive.pm: Do not use for loopback of magic partition
- (/tmp/hdimage).
-
-2001/09/05 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * tools/i386/busybox: hopefully fix the _ problems with busybox 0.60.1
-
-2001/09/05 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/bs.po: updated Bosnian file
-
- * share/po/uk.po: updated Ukrainian file
-
-2001/09/05 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator.pm: use EISA_ID in more cases to have the name
- non-case dependent EISA comparison
- also try EISA ID to auto-detect the monitor (sometimes the EISA ID is
- there, but not the [hv]syncrange
-
- * Xconfig.pm: fix typos
- non-case dependent EISA comparison
- also try EISA ID to auto-detect the monitor (sometimes the EISA ID is
- there, but not the [hv]syncrange
-
- * modules.pm: favor tmscsim over AM53C974
-
- * tools/ddcprobe/ddcxinfos.c: fix for cards giving bad info
- also try EISA ID to auto-detect the monitor (sometimes the EISA ID is
- there, but not the [hv]syncrange
-
- * standalone/diskdrake: fix function called
-
-2001/09/04 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/mount.c: reflect scd -> sr here too, /me sucks :-(
-
-2001/09/04 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/fr.po, share/po/bg.po, share/po/ga.po, share/po/sr.po,
- share/po/de.po, share/po/et.po, share/po/tr.po, share/po/eu.po,
- share/po/az.po, share/po/ru.po, share/po/pt_BR.po, share/po/hr.po,
- share/po/cy.po, share/po/nl.po, share/po/wa.po, share/po/is.po,
- share/po/hu.po, share/po/it.po, share/po/id.po, share/po/pl.po,
- share/po/fi.po, share/po/no.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/ar.po, share/po/sl.po,
- share/po/vi.po, share/po/br.po, share/po/ca.po, share/po/gl.po,
- share/po/lv.po, share/po/eo.po, share/po/bs.po, share/po/ro.po,
- share/po/da.po, share/po/zh_TW.po, share/po/cs.po, share/po/af.po:
- Updated Danish file; updated pot file
-
-2001/09/04 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm: fix typo
-
-2001/09/04 Till Kamppeter <till@mandrakesoft.com>
-
- * printer.pm, printerdrake.pm: Fitted to the new Foomatic version.
- Fixed bug of spooler change only working when language is English.
-
-2001/09/04 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps.pm: fix bad vga= which go for some install.
-
-2001/09/04 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * network/netconnect.pm: small english change
-
- * mdk-stage1/probing.c: Compaq mescouilles has changed proc stuff
-
- * share/rpmsrate: tetex-doc
-
- * mdk-stage1/mount.c: reflect scd -> sr here too, /me sucks :-(
-
-2001/09/04 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/fr.po, share/po/bg.po, share/po/ga.po, share/po/sr.po,
- share/po/de.po, share/po/et.po, share/po/tr.po, share/po/eu.po,
- share/po/az.po, share/po/ru.po, share/po/pt_BR.po, share/po/hr.po,
- share/po/cy.po, share/po/nl.po, share/po/wa.po, share/po/is.po,
- share/po/hu.po, share/po/it.po, share/po/id.po, share/po/pl.po,
- share/po/fi.po, share/po/no.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/ar.po, share/po/sl.po,
- share/po/vi.po, share/po/br.po, share/po/ca.po, share/po/gl.po,
- share/po/lv.po, share/po/eo.po, share/po/ro.po, share/po/bs.po,
- share/po/da.po, share/po/zh_TW.po, share/po/cs.po, share/po/af.po:
- Updated Danish file; updated pot file
-
- * share/po/ja.po: updated Japanese file
-
-2001/09/04 Pixel <pixel@mandrakesoft.com>
-
- * modules.pm (add_alias): use "above" instead of "post-install"
-
- * partition_table.pm: re-add JFS
-
- * fsedit.pm, common.pm, bootloader.pm:
- - don't expand symlinks in grub's menu.lst
- - better use of /proc/partitions verification
-
- * detect_devices.pm (getCompaqSmartArray): add yet another location for
- cpqarray location
-
- * fs.pm: fix typo
- mount ext3 as ext2 during install for speed up
-
-2001/09/04 fcrozat
-
- * share/rpmsrate: Add plugins for KDE and Mozilla
-
-2001/09/04 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps.pm: fix bad vga= which go for some install.
-
- * pkgs.pm: cleanup to avoid invalid file error.
-
-2001/09/04 Pixel <pixel@mandrakesoft.com>
-
- * modules.pm (add_alias): use "above" instead of "post-install"
-
- * fs.pm: mount ext3 as ext2 during install for speed up
-
- * partition_table.pm: re-add JFS
-
- * fsedit.pm, common.pm, bootloader.pm:
- - don't expand symlinks in grub's menu.lst
- - better use of /proc/partitions verification
-
- * detect_devices.pm (getCompaqSmartArray): add yet another location for
- cpqarray location
-
-2001/09/04 yduret
-
- * my_gtk.pm: emebedded mode fix
-
- * interactive_gtk.pm, diskdrake.pm: embedded mode fix
-
-2001/09/03 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/po/fr.po: unfuzzy-ise a few things, translate a few things
-
-2001/09/03 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/ko.po: updated Korean file
-
-2001/09/03 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm: fix for lvm (non-)creation of devices
-
-2001/09/03 yduret
-
- * my_gtk.pm, diskdrake.pm: fix Embedded mode
-
-2001/09/03 dam's <damien@mandrakesoft.com>
-
- * network/network.pm: added timeout in resolv.conf
-
-2001/09/03 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_any.pm: updated to use new urpmi.cfg format for install_urpmi,
- make sure the directory
- is not given for ftp and http install ($dir).
-
- * Xconfigurator_consts.pm: added 1920x1440 and 2048x1536.
-
- * Xconfig.pm: make sure a staling Mouse2 is not present unless it really
- physically exists.
-
-2001/09/03 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * modules.pm: add axnet_cs to pcmcia category
-
- * mdk-stage1/probing.c: change `scd' with `sr'
-
-2001/09/03 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/es.po: updated Spanish file
-
- * share/po/ko.po: updated Korean file
-
-2001/09/03 Pixel <pixel@mandrakesoft.com>
-
- * timezone.pm (ntp_server): also set /etc/ntp/step-tickers
-
- * fsedit.pm, devices.pm: fix mtab reading and pseudo-device use
-
- * interactive_gtk.pm: better sizing for combo boxes
-
- * install_steps_interactive.pm (choosePartitionsToFormat): do not propose
- to propose already formatted
- fat partitions
-
- * share/list: those files disappeared ??
-
- * fs.pm: fix for lvm (non-)creation of devices
- (set_default_options): created
- fix mtab reading and pseudo-device use
-
- * diskdrake.pm (smb_create, nfs_create): make the "New" button work
- (raw_hd_mount_point): fix checking the same mount point
- (try_): fix error displaying
-
- * partition_table.pm: fix switching to 0x85 extended when
- remove_empty_extended is called
-
-2001/09/03 yduret
-
- * standalone/net_monitor: sync with new logdrake command line options
-
-2001/09/02 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/bs.po: updated bosnian file
- Added Bosnian file
-
-2001/09/01 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: avoid deleting package from %packages in install() when closing
- fd associated,
- if the open is called again (?), it will cause an invalid file (seems to
- happens
- on some invalid file).
-
-2001/08/31 dam's <damien@mandrakesoft.com>
-
- * standalone/draksec: corrected yesno interpretation
- libsafe modification
-
- * network/netconnect.pm: corrected profil recording for modem
-
- * standalone/net_monitor: correted typo
-
- * network/ethernet.pm: corrected zero return when cable configuring
-
- * any.pm: corrected autologin : no uc anymore
-
- * network/modem.pm: added domainname2 setting
-
- * share/logo-mandrake.png: new logo
-
-2001/08/31 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: added missing AlwaysCore line for second mouse for
- XF3.
-
- * mouse.pm: added missing AlwaysCore line for second mouse in XF3.
-
- * standalone.pm: add option --allow-medium-change to force asking question
- even if --auto is
- given on command line of urpmi, for installing package so that a dialog
- appears.
-
-2001/08/31 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/rpmsrate: mures is a fine game, have it at weight "4" under GAMES
- section
- have "numlock" in INSTALL because it's the only package which goes to
- CD#2
- when you unselect all groups, so having it here will allow not changing
- CD
- with this kind of small install
-
-2001/08/31 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/DrakX.pot, share/po/uk.po, share/po/es.po: updated Ukrainian
- and Spanish files
-
- * share/po/sv.po: updated Swedish file
- updated Ukrainian and Spanish files
-
-2001/08/31 siegel
-
- * share/help_sav.png: not used any more
-
- * share/po/de.po: updates
-
- * share/logo-mandrake2.png, share/logo-mandrake_trans.png,
- share/logo-mandrake_sav.png, share/logo-mandrake-Desktop.png: old
- versions => not in use any more
-
-2001/08/31 yduret
-
- * bootlook.pm: updated code
-
-2001/08/30 dam's <damien@mandrakesoft.com>
-
- * network/tools.pm: nicer display
-
- * standalone/draknet: added use common.pm (can be usefull, eh?)
-
- * network/network.pm: silently /sbin/ip
- track_network_id only if laptop
-
-2001/08/30 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/da.po: Updated Danishfile
- updated pot file (I had lost the group descriptions, sorry, they are
- back now)
- moved chinese files to charset independent names
-
- * share/po/be.po, share/po/sp.po, share/po/zh_CN.po, share/po/pt.po,
- share/po/DrakX.pot, share/po/es.po, share/po/fr.po, share/po/bg.po,
- share/po/ga.po, share/po/sr.po, share/po/de.po, share/po/et.po,
- share/po/tr.po, share/po/eu.po, share/po/az.po, share/po/ru.po,
- share/po/pt_BR.po, share/po/hr.po, share/po/ko.po, share/po/cy.po,
- share/po/nl.po, share/po/ja.po, share/po/wa.po, share/po/sv.po,
- share/po/is.po, share/po/hu.po, share/po/zh_TW.Big5.po, share/po/it.po,
- share/po/id.po, share/po/pl.po, share/po/fi.po, share/po/no.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/ar.po, share/po/sl.po,
- share/po/vi.po, share/po/br.po, share/po/ca.po, share/po/gl.po,
- share/po/lv.po, share/po/uk.po, share/po/eo.po, share/po/ro.po,
- share/po/zh_TW.po, share/po/cs.po, share/po/af.po: updated pot file (I
- had lost the group descriptions, sorry, they are back now)
- moved chinese files to charset independent names
-
-2001/08/30 Pixel <pixel@mandrakesoft.com>
-
- * lang.pm (read): it works now
-
- * help.pm: fixed (was utf8)
-
- * install_steps_gtk.pm (new): call interactive_gtk::new
-
- * install_steps.pm, Xconfigurator.pm: disable gpm (in case of serial
- mouse) before service choice
-
- * pkgs.pm (naughtyServers): update for 8.1
-
-2001/08/30 dam's <damien@mandrakesoft.com>
-
- * interactive.pm: corrected icon display
-
- * my_gtk.pm: new wizard
-
- * interactive_gtk.pm: corrected wizard mode display height/width
-
- * standalone/draknet: added draknet client installation
-
- * network/network.pm: track_network_id only if laptop
- dhcp package installation
-
- * pixmaps/wiz_default_left.png: new logo
-
-2001/08/30 Franēois Pons <fpons@mandrakesoft.com>
-
- * mouse.pm: make sure to update all symlink according to any mouse (max 2)
- probed.
- fix previous fixes on mouse::write_conf
-
- * standalone/mousedrake: fix previous fix (typo).
- keep mouse specific paramater if user does not change its mouse.
- make sure --auto is not interactive on some part.
- use default value for port device if a serial mouse.
-
- * printer.pm: fixed foomatic failed (no lo up since ifup lo don't run)
-
- * Makefile: ugly to make sure standalone/pixmaps is not here when building
- tar-drakxtools.
-
- * Xconfig.pm: when reading existing configuration for mouse, update
- type|name for second mouse too.
- make sure default to set 3 for nbuttons for getinfoFromXF86Config for
- second
- mouse if this mouse has 3 buttons.
-
- * Xconfigurator.pm: for single heads mode, no screen id should be set in
- file (or XFree is going
- mad, but he is right, no ?)
-
- * install_any.pm: if a medium is refused, get rid of it definitively until
- it is accepted again.
-
-2001/08/30 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * install_steps_interactive.pm: have a wait_message during installation of
- bootloader
-
- * mdk-stage1/pcmcia/pcmcia_probe.c: import new PCI ID's for more PCMCIA
- Controllers, from probe.c-1.54 of pcmcia-cs-3.1.28
-
-2001/08/30 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/ja.po, share/po/vi.po, share/po/es.po: updated Japanese,
- Spanish and Vietnamese files
-
-2001/08/30 Pixel <pixel@mandrakesoft.com>
-
- * diskdrake_interactive.pm: allow LVM on RAID
-
- * help.pm: fixed (was utf8)
-
- * any.pm: cleanup
-
- * pkgs.pm (naughtyServers): update for 8.1
-
- * lang.pm (read): it works now
-
- * fs.pm (set_default_options): "ro" for cdroms, "user" for vfat only if
- removable
- media
-
- * share/po/Makefile: fix utf8 translation of xml file
-
- * interactive_gtk.pm: fix&cleanup window size
-
- * tools/Makefile: cleanup unneeded stuff
-
-2001/08/30 siegel
-
- * share/po/de.po: new german version
-
-2001/08/30 warly
-
- * share/rpmsrate: add koffice-i18n diald vlan-utils
-
-2001/08/29 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * standalone/drakgw, standalone/drakautoinst: quit_global
-
- * share/po/fr.po: minor fix
-
-2001/08/29 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm: fix language selection
-
- * c.pm: better error message when function c::foo() is missing
-
- * rescue/dirs, rescue/make_rescue_img: make it work (do not have the dev
- in /)
-
-2001/08/29 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: fixed if undef encountered in depslist when installing package
- (traversing
- depslist as $depOrder).
-
-2001/08/29 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * standalone/drakgw, standalone/drakautoinst: quit_global
-
- * share/po/fr.po: minor fix
-
-2001/08/29 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm: fix language selection
-
- * c.pm: better error message when function c::foo() is missing
-
- * install_steps_gtk.pm (installPackages): have Ok button by default for
- asking for changing CD
-
- * bootloader.pm (mkbootdisk): cleanup
-
- * rescue/dirs, rescue/make_rescue_img: make it work (do not have the dev
- in /)
-
- * devices.pm: remove fd0H1440 and fd1H1440
-
- * modules.pm: remove "msdos"
-
-2001/08/29 Franēois Pons <fpons@mandrakesoft.com>
-
- * mouse.pm: improved write_conf to enable multi-mice if only once mice is
- already defined.
-
- * standalone/mousedrake: try to merge already existing mouse configuration
- with what has been probed,
- change if mouse is really changed as probe is incomplete.
-
- * Xconfig.pm: improve getinfoFromXF86Config for mouse parameters.
-
- * pkgs.pm: fixed if undef encountered in depslist when installing package
- (traversing
- depslist as $depOrder).
-
-2001/08/29 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * standalone/drakgw, standalone/drakautoinst: quit_global
-
- * share/po/fr.po: minor fix
-
-2001/08/29 Pixel <pixel@mandrakesoft.com>
-
- * c.pm: better error message when function c::foo() is missing
-
- * keyboard.pm (loadkeys_files): fixed
-
- * install_steps_interactive.pm, standalone/localedrake, lang.pm, any.pm,
- Makefile.config: add localedrake (not tested)
-
- * rescue/make_rescue_img: make it work (do not have the dev in /)
- cleanup, speedup, use mknod for devices
-
- * install_steps_gtk.pm (installPackages): have Ok button by default for
- asking for changing CD
-
- * rescue/devices.pl, rescue/list: cleanup, speedup, use mknod for devices
-
- * bootloader.pm (mkbootdisk): cleanup
-
- * rescue/dirs: make it work (do not have the dev in /)
-
- * devices.pm: remove fd0H1440 and fd1H1440
-
- * modules.pm: remove "msdos"
-
-2001/08/29 dam's <damien@mandrakesoft.com>
-
- * network/adsl.pm, network/tools.pm, share/rpmsrate: speedtouch
- configuration
-
-2001/08/29 Franēois Pons <fpons@mandrakesoft.com>
-
- * mouse.pm: improved write_conf to enable multi-mice if only once mice is
- already defined.
-
- * install_steps.pm: add support for mandatory frame buffer support (SiS
- 630) need them for XF3 to
- work properly, XF4 does work with it nicely.
-
- * Xconfigurator.pm: make sure Port entry for wacom is placed first.
-
- * standalone/mousedrake: try to merge already existing mouse configuration
- with what has been probed,
- change if mouse is really changed as probe is incomplete.
-
- * Xconfig.pm: improve getinfoFromXF86Config for mouse parameters.
-
-2001/08/29 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/rpmsrate: games
-
-2001/08/29 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/da.po, share/po/DrakX.pot, share/po/es.po: updated Danish file
-
-2001/08/29 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm, install_any.pm, fsedit.pm, diskdrake.pm: try to better handle
- symlinks device and devfs devices
-
- * install_steps_interactive.pm, standalone/localedrake, lang.pm, any.pm,
- Makefile.config: add localedrake (not tested)
-
- * install_steps.pm: no need to have devfs=nomount anymore in root raid
- do not modify fstab options in upgrade
-
- * keyboard.pm (loadkeys_files): fixed
- fix DISABLE_WINDOWS_KEY state handling (for upgrade), cleanup
-
- * diskdrake_interactive.pm: try to better handle symlinks device and devfs
- devices
- (main): fix
- (Create): fix typo causing primaryOrExtended to be ignored
-
- * rescue/devices.pl, rescue/make_rescue_img, rescue/list: cleanup,
- speedup, use mknod for devices
-
- * c/stuff.xs.pm, detect_devices.pm: better floppy detection/info
-
-2001/08/28 dam's <damien@mandrakesoft.com>
-
- * interactive.pm, install2.pm: corrected icon handling
-
- * services.pm: added cupslpd in printing section
-
-2001/08/28 Franēois Pons <fpons@mandrakesoft.com>
-
- * Makefile.config: really fix typo...
- fixed typo.
-
-2001/08/28 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/cs.po: updated Czech file
-
-2001/08/28 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm: remove the temporary file /tmp/autoinst.img
-
- * install_steps.pm, install_steps_interactive.pm: propose to format / and
- /usr even if isFormatted. More generally do not trust isFormatted to
- show which partitions to format
-
-2001/08/28 siegel
-
- * ChangeLog, keyboard.pm:
- - keyboard.pm: write DISABLE_WINDOWS_KEY=no in /etc/sysconfig/keyboard
- if no laptop is detected (= give users the chance to know about the
- existence of this variable).
-
-2001/08/28 yduret
-
- * standalone/diskdrake: embedded mode nicer
-
-2001/08/28 dam's <damien@mandrakesoft.com>
-
- * interactive.pm, install2.pm: corrected icon handling
-
-2001/08/28 Franēois Pons <fpons@mandrakesoft.com>
-
- * share/list: added /sbin/e2fsck
-
- * share/aliases: added fsck.ext2 -> e2fsck (now in list file)
- removed e2fsck.shared as e2fsprogs now provide a shared version instead
- of a
- static one.
-
- * Makefile.config: really fix typo...
- fixed typo.
- removed reference to e2fsck.shared (now use e2fsck from package which is
- shared
- since 1.23-2mdk).
-
-2001/08/28 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm: remove the temporary file /tmp/autoinst.img
-
-2001/08/28 siegel
-
- * ChangeLog, keyboard.pm:
- - keyboard.pm: write DISABLE_WINDOWS_KEY=no in /etc/sysconfig/keyboard
- if no laptop is detected (= give users the chance to know about the
- existence of this variable).
-
-2001/08/28 yduret
-
- * standalone/diskdrake: embedded mode nicer
-
-2001/08/28 Stefan Siegel <siegel@mandrakesoft.com>
-
- * keyboard.pm: write DISABLE_WINDOWS_KEY=no in /etc/sysconfig/keyboard
- if no laptop is detected (= give users the chance to know about
- the existence of this variable).
-
-2001/08/28 dam's <damien@mandrakesoft.com>
-
- * mouse.pm: typo
-
-2001/08/28 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm: default the licence agreement to "Refuse"
-
- * standalone/drakboot: security fix and various
- move to all_hds stuff
-
- * c/stuff.xs.pm, bootloader.pm: security fix and various
-
-2001/08/28 warly
-
- * share/rpmsrate: move libsafe to SERVER_OTHER 2
- added prelude, libsafe...
-
-2001/08/28 yduret
-
- * standalone/drakxconf: readded dsikdrake
- added new items, remove some old ones
-
-2001/08/27 dam's <damien@mandrakesoft.com>
-
- * network/network.pm: corrected hwaddr setting and draknet first window
- display
- corrected typo
-
- * network/netconnect.pm: corrected hwaddr setting and draknet first window
- display
-
-2001/08/27 dam's <damien@mandrakesoft.com>
-
- * network/network.pm: corrected hwaddr setting and draknet first window
- display
- corrected typo
-
- * network/netconnect.pm: corrected hwaddr setting and draknet first window
- display
-
-2001/08/27 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/sk.po, share/po/eu.po: updated Basque and slovak files
-
-2001/08/27 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_gtk.pm: nicer help display
-
- * share/keyboards.tar.bz2: fix the rights
-
- * c/stuff.xs.pm (setlocale): do not set LC_NUMERIC
-
-2001/08/27 dam's <damien@mandrakesoft.com>
-
- * network/netconnect.pm: corrected bad window size
-
- * network/network.pm: make it compile
- corrected hwaddr stuff
- added HWADDR
-
- * network/tools.pm: corrected internet initscript
-
- * any.pm, mouse.pm: make it compile
- add_devfslink
-
-2001/08/27 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * lang.pm, keyboard.pm: Added "zh_HK" to Chinese in LANGUAGE list.
- Added Latvian keyboard
-
- * share/keyboards.tar.bz2: Checked and updated xmodmap files for DrakX
-
- * share/po/sk.po, share/po/eu.po: updated Basque and slovak files
-
-2001/08/27 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_gtk.pm: nicer help display
-
- * diskdrake.pm: use empty hash instead of the raid/loopback array
-
- * c/stuff.xs.pm (setlocale): do not set LC_NUMERIC
-
-2001/08/27 dam's <damien@mandrakesoft.com>
-
- * network/netconnect.pm: corrected bad window size
-
- * network/network.pm: added HWADDR
-
- * network/tools.pm: corrected internet initscript
-
-2001/08/27 Franēois Pons <fpons@mandrakesoft.com>
-
- * any.pm, standalone/draknet, network/modem.pm: added Borsenkow Andrej
- patch to support CHAP again.
-
-2001/08/27 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * lang.pm, keyboard.pm: Added "zh_HK" to Chinese in LANGUAGE list.
- Added Latvian keyboard
-
-2001/08/27 Pixel <pixel@mandrakesoft.com>
-
- * diskdrake.pm: use empty hash instead of the raid/loopback array
-
-2001/08/26 warly
-
- * share/rpmsrate: add some important packages
-
-2001/08/26 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * standalone/drakautoinst: require -> use
-
- * install_any.pm: save the .img file so that multi-cd install won't ask to
- re-enter first cd
-
-2001/08/26 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/de.po, share/po/et.po, share/po/tr.po, share/po/eu.po,
- share/po/az.po, share/po/ru.po, share/po/pt_BR.po, share/po/hr.po,
- share/po/ko.po, share/po/nl.po, share/po/ja.po, share/po/wa.po,
- share/po/sv.po, share/po/is.po, share/po/hu.po, share/po/zh_TW.Big5.po,
- share/po/it.po, share/po/id.po, share/po/pl.po, share/po/fi.po,
- share/po/no.po, share/po/zh_CN.GB2312.po, share/po/th.po,
- share/po/el.po, share/po/sk.po, share/po/lt.po, share/po/sl.po,
- share/po/vi.po, share/po/br.po, share/po/ca.po, share/po/gl.po,
- share/po/lv.po, share/po/uk.po, share/po/eo.po, share/po/ro.po,
- share/po/da.po, share/po/cs.po, share/po/af.po: updated pot file
-
-2001/08/26 Pixel <pixel@mandrakesoft.com>
-
- * share/po/Makefile, share/po/.cvsignore: fetch directly the latest
- drakx-help.xml
-
-2001/08/25 Pixel <pixel@mandrakesoft.com>
-
- * standalone/drakbug_report: add "rpm -qa"
-
- * bootlook.pm: fix deprecated call standalone::pkgs_install
-
- * diskdrake.pm: don't the grab flag propagate everywhere
-
-2001/08/25 dam's <damien@mandrakesoft.com>
-
- * install2.pm, steps.pm: icon correction
-
-2001/08/25 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm (mount): accept mounting iso9660 filesystem as it should be
- (write_fstab): enable mounting more than one swap :)
-
- * bootlook.pm: fix deprecated call standalone::pkgs_install
-
- * install_steps.pm: added the missing security parameter to
- set_default_options
-
- * diskdrake.pm: don't the grab flag propagate everywhere
-
-2001/08/24 dam's <damien@mandrakesoft.com>
-
- * pixmaps/mouse_3b_mini.xpm, pixmaps/mouse_3b+.xpm, pixmaps/mouse_3b.xpm,
- pixmaps/mouse_3b+_mini.xpm: mini pixmaps, and lower color res for normal
- pix
-
- * standalone/mousedrake: updated mouse test
-
-2001/08/24 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/dietlibc/libstdio/fdglue.c: fix this dietlibc... hope the
- uncompressing of ramdisk will rulz now
-
- * mdk-stage1/network.c: allow unsetting of automatic mode if not enough
- parameter provided in network steps
-
- * mdk-stage1/probing.c:
- - descr of proc files
- - fix small typo (segfault or not segfault? that's the question)
- enable install from Compaq Smart Array
-
- * mdk-stage1/dietlibc/Makefile, mdk-stage1/bzlib/Makefile: use CC rather
- than gcc statically
-
- * mdk-stage1/tools.c, mdk-stage1/mount.c: enable install from Compaq Smart
- Array
-
-2001/08/24 Pixel <pixel@mandrakesoft.com>
-
- * tools/pcmcia_config.patch: update the patch
-
- * Makefile (test_pms): make perl_checker skip help.pm
- ensure no .orig are generated when the pcmcia patch is applied
-
- * tools/make_mdkinst_stage2: give a little more free space (esp. for
- russian lang)
-
- * lang.pm, share/gen_locales.sh: no need for UTF-8/LC_CTYPE
-
- * share/po/help_xml2pm.pl, share/po/Makefile, help.pm: auto-generates
- help.pm from xml doc done by doc team
-
-2001/08/24 dam's <damien@mandrakesoft.com>
-
- * network/adsl.pm: bugfix, speedtouch help
-
- * standalone/mousedrake: updated mouse test
-
-2001/08/24 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps.pm: fixed possible bug (not sorted partition when calling
- mount_part).
-
- * install_any.pm: fixed hdInstallPath for an hd installation without
- usingRamdisk (not installing
- urpmi in such case).
- updated packages to copy for printerdrake, removed almost obsoletes
- XFree86
- 3.3.6 servers (8514, AGX, Mach32, Mach8, Mono, P9000, W32, I128, VGA16,
- 3DLabs)
- which means user will have to change CD back to CD#1 if he a such a
- card.
- removed obsolete code for cond_remount and cond_umount and update
- hdInstallPath
- for hd installation.
-
- * diskdrake_interactive.pm: fixed typo common::usingRamdisk() instead of
- common::useRamdisk().
- take care mount point action is available for the hd installation
- partition only
- if a ramdisk is used (as it can be unmounted).
- use more global isMagicPart instead of isInstallHdPart.
- added real_mntpoint documentation and take care of hd install partition
- for
- available actions.
-
- * fs.pm: take care of using ram disk to remap mntpoint of hd installation
- partition.
- fixed partition never seen as mounted, added special case for
- real_mntpoint to
- remount magic partition on the right place.
-
-2001/08/24 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/dietlibc/libstdio/fdglue.c: fix this dietlibc... hope the
- uncompressing of ramdisk will rulz now
-
- * mdk-stage1/automatic.c: revert my auto->interactive patch
-
- * mdk-stage1/network.c: allow unsetting of automatic mode if not enough
- parameter provided in network steps
-
- * mdk-stage1/dietlibc/Makefile, mdk-stage1/bzlib/Makefile: use CC rather
- than gcc statically
-
- * mdk-stage1/tools.c, mdk-stage1/mount.c, mdk-stage1/probing.c: enable
- install from Compaq Smart Array
-
-2001/08/24 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/locales-skeleton.tar.bz2, share/fonts.tar.bz2, keyboard.pm:
- enabling euro and utf-8 for some languages; added unicode font
-
-2001/08/24 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm: remove the cond_umount_hdimage and
- cond_remount_hdimage
-
- * tools/pcmcia_config.patch: update the patch
-
- * lang.pm: no need for UTF-8/LC_CTYPE
- (load_mo): if not usingRamdisk, don't try getFile
-
- * diskdrake_interactive.pm: remove the cond_umount_hdimage and
- cond_remount_hdimage
- (Done): do not write fstab nor ask about it in install
-
- * fs.pm (mount): allow to mount 'proc' and 'usbdevfs'
-
- * Makefile: ensure no .orig are generated when the pcmcia patch is applied
-
- * partition_table.pm (write): do not die when real_mntpoint fs fail to
- unmount/remount, just log
- (write): unmount+remount real_mntpoint before doing the kernel_read
-
- * share/gen_locales.sh: no need for UTF-8/LC_CTYPE
-
- * pkgs.pm: fix "invalid file"
-
-2001/08/24 dam's <damien@mandrakesoft.com>
-
- * network/netconnect.pm: speedtouch configuration
-
- * my_gtk.pm: gtk_create_xpm handles no absolute xpm path
-
- * pixmaps/mouse_3b+.xpm, pixmaps/mouse_middle.xpm, pixmaps/mouse_3b.xpm:
- added new mouse pixmap for mousedrake
-
- * network/adsl.pm: bugfix, speedtouch help
- added aliases for speedtouch stuff
- speedtouch configuration
- removed adsl detectioin, once again.
-
- * standalone/mousedrake: no absolute pixmap reference
- new mousedrake. experimental
-
- * network/tools.pm: speedtouch configuration
- export write_initscript, correct initscript.
-
-2001/08/24 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps.pm: fixed possible bug (not sorted partition when calling
- mount_part).
-
- * diskdrake_interactive.pm: take care mount point action is available for
- the hd installation partition only
- if a ramdisk is used (as it can be unmounted).
- use more global isMagicPart instead of isInstallHdPart.
- added real_mntpoint documentation and take care of hd install partition
- for
- available actions.
-
- * install_any.pm: fixed hdInstallPath for an hd installation without
- usingRamdisk (not installing
- urpmi in such case).
- updated packages to copy for printerdrake, removed almost obsoletes
- XFree86
- 3.3.6 servers (8514, AGX, Mach32, Mach8, Mono, P9000, W32, I128, VGA16,
- 3DLabs)
- which means user will have to change CD back to CD#1 if he a such a
- card.
- removed obsolete code for cond_remount and cond_umount and update
- hdInstallPath
- for hd installation.
-
- * mdk-stage1/init-data/msgboot-graphicallogo.img.bz2,
- mdk-stage1/init-data/msgboot.img.bz2: updated with latest 8.1 pictures
- and updated documentation.
-
- * fs.pm: take care of using ram disk to remap mntpoint of hd installation
- partition.
- fixed partition never seen as mounted, added special case for
- real_mntpoint to
- remount magic partition on the right place.
-
-2001/08/24 Pixel <pixel@mandrakesoft.com>
-
- * partition_table.pm (write): do not die when real_mntpoint fs fail to
- unmount/remount, just log
- (write): unmount+remount real_mntpoint before doing the kernel_read
-
- * install_steps.pm: remove the cond_umount_hdimage and
- cond_remount_hdimage
-
- * diskdrake_interactive.pm: remove the cond_umount_hdimage and
- cond_remount_hdimage
- (Done): do not write fstab nor ask about it in install
-
- * lang.pm (load_mo): if not usingRamdisk, don't try getFile
-
- * fs.pm (mount): allow to mount 'proc' and 'usbdevfs'
-
-2001/08/24 siegel
-
- * share/po/de.po: New & shiny german version
-
-2001/08/23 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/no.po: updated Norwegian file
-
- * share/po/el.po: updated Greek file
-
-2001/08/23 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/no.po: updated Norwegian file
-
-2001/08/23 dam's <damien@mandrakesoft.com>
-
- * network/netconnect.pm: at_boot connection,resolvconf in profiles
-
- * standalone/draksec: addedlibsafe option
-
- * network/adsl.pm: restart network after having tested adsl. experimental
-
-2001/08/23 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps_gtk.pm: removed unusefull greping when building package
- tree.
-
-2001/08/23 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/rpmsrate: work on GAMES section
-
-2001/08/23 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/lv.po: updated Latvian file
-
-2001/08/23 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm (cond_umount_hdimage): do not unmount /tmp/hdimage if not
- using ramdisk
- (disable_user_view): damned kdmrc moved
-
- * diskdrake_interactive.pm: cancel at startup will now exit
- ask wether to save fstab
- (part_possible_actions): have "Mount point" first to please fpons
-
- * fs.pm: keep the freq&passno of /etc/fstab
-
- * tools/i386/netboot/menu.lst.example,
- tools/i386/netboot/make_boot_network,
- tools/i386/netboot/automatic.para.default: as we now have
- menu.lst.example, i remove automatic.para for more flexibility
-
- * lang.pm: fix locale support when usingRamdisk
-
-2001/08/22 anoncvs
-
- * share/po/zh_CN.GB2312.po: * Wed Aug 22 2001 DU Xiaoming
- <dxiaoming@mandrakesoft.com>
- Updated chinese (simplied) translation.
-
-2001/08/22 Pixel <pixel@mandrakesoft.com>
-
- * share/gen_locales.sh, share/locales-skeleton.tar.bz2: fix ru KOI8-R
-
- * network/nfs.pm: pleac perl_checker
-
- * interactive_gtk.pm: more intelligent setting back the selected value in
- the clist and ctree
- (done already for entry)
- - fix entries editing causing the cursor to go to the end of line
- - select the text
-
- * c/stuff.xs.pm, install_steps.pm, pkgs.pm: do init_db inside pkg_inside
- otherwise LOG is closed and rpmlib tries to write in it and ...
-
-2001/08/22 anoncvs
-
- * share/po/zh_CN.GB2312.po: * Wed Aug 22 2001 DU Xiaoming
- <dxiaoming@mandrakesoft.com>
- Updated chinese (simplied) translation.
-
-2001/08/22 fabman
-
- * share/po/es.po: updated spanish .po files for DrakX and drakbootdisk
-
-2001/08/22 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/automatic.c: don't stay automatic for ask_from_entries when
- entries are not given
-
- * mdk-stage1/tools.c, mdk-stage1/stage1.c, mdk-stage1/cdrom.c,
- mdk-stage1/mount.c, mdk-stage1/lomount.c, mdk-stage1/mount.h,
- mdk-stage1/network.c, mdk-stage1/modules.c, mdk-stage1/disk.c: mount all
- but ramdisk Read Only
-
-2001/08/22 Pixel <pixel@mandrakesoft.com>
-
- * share/gen_locales.sh, share/locales-skeleton.tar.bz2: fix ru KOI8-R
-
- * bootlook.pm: fix typo
-
- * network/nfs.pm: pleac perl_checker
-
- * install_steps.pm: do init_db inside pkg_inside otherwise LOG is closed
- and rpmlib tries to write in it and ...
- do not call configurePrinter if no printer is wanted
-
- * interactive_gtk.pm: more intelligent setting back the selected value in
- the clist and ctree
- (done already for entry)
- - fix entries editing causing the cursor to go to the end of line
- - select the text
-
- * c/stuff.xs.pm, pkgs.pm: do init_db inside pkg_inside otherwise LOG is
- closed and rpmlib tries to write in it and ...
-
-2001/08/22 Franēois Pons <fpons@mandrakesoft.com>
-
- * printerdrake.pm: fixed int and float checking which should accept
- negative number (added explicit
- positive too), cleaned code for some perl idioms.
-
- * install_steps.pm: updated configurePrinter to use foomatic printer
- configuration.
-
-2001/08/22 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/automatic.c: don't stay automatic for ask_from_entries when
- entries are not given
-
- * mdk-stage1/tools.c, mdk-stage1/stage1.c, mdk-stage1/cdrom.c,
- mdk-stage1/mount.c, mdk-stage1/lomount.c, mdk-stage1/mount.h,
- mdk-stage1/network.c, mdk-stage1/modules.c, mdk-stage1/disk.c: mount all
- but ramdisk Read Only
-
-2001/08/22 kjx
-
- * share/po/zh_CN.GB2312.po: review
- review
-
-2001/08/22 Pixel <pixel@mandrakesoft.com>
-
- * bootlook.pm: fix typo
-
- * install_steps_auto_install.pm: don't have formatPartitions interactive
- by default
-
- * install_steps.pm: do not call configurePrinter if no printer is wanted
-
-2001/08/22 siegel
-
- * share/po/de.po: new german version
-
-2001/08/21 dam's <damien@mandrakesoft.com>
-
- * Makefile: added rpcinfo to the tar
- corrected bad Makefile : rpcinfo-flushed.c comes from tools.
-
- * standalone/draknet: ergonomy correction
-
- * network/tools.pm: corrected qq bug
- corrected bug
-
- * standalone/net_monitor: log updatede
- removed memoty leak
- time connection label
-
-2001/08/21 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps_interactive.pm: moved installation code of foomatic (only)
- if a printer may be chosen.
-
- * install_any.pm: fixed hd installation for urpmi.
-
- * printerdrake.pm: slight rewrite of some perl idioms.
-
-2001/08/21 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/wa.po: updated Walloon file
- updated pot file
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/cy.po, share/po/nl.po,
- share/po/ja.po, share/po/sv.po, share/po/is.po, share/po/hu.po,
- share/po/zh_TW.Big5.po, share/po/it.po, share/po/id.po, share/po/pl.po,
- share/po/fi.po, share/po/no.po, share/po/zh_CN.GB2312.po,
- share/po/th.po, share/po/el.po, share/po/sk.po, share/po/lt.po,
- share/po/ar.po, share/po/sl.po, share/po/vi.po, share/po/br.po,
- share/po/ca.po, share/po/gl.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/ro.po, share/po/da.po, share/po/cs.po,
- share/po/af.po: updated pot file
-
-2001/08/21 Pixel <pixel@mandrakesoft.com>
-
- * share/rpmsrate: add telnet-client-krb5 and ftp-client-krb5
-
- * install_steps.pm: try to fix umount/remounting /tmp/hdimage in hd
- install
-
- * Makefile, share/po/Makefile: check presence of '$' in DrakX.pot
-
- * fs.pm (read_fstab): don't expand symlink if the link goes in a directory
-
- * install_any.pm: cleanup
-
- * install_steps_interactive.pm: fix '$' in i18n message
-
-2001/08/21 siegel
-
- * share/po/de.po: new german version
-
-2001/08/21 dam's <damien@mandrakesoft.com>
-
- * standalone/net_monitor: removed memoty leak
- time connection label
-
- * network/tools.pm, network/modem.pm, network/netconnect.pm,
- network/ethernet.pm, network/isdn.pm: generik internet initscript, planq
- the children again
-
- * network/adsl.pm: speedtouch config
- generik internet initscript, planq the children again
-
-2001/08/21 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_any.pm: fixed hd installation for urpmi.
-
-2001/08/21 kjx
-
- * share/po/zh_CN.GB2312.po: review
-
-2001/08/21 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/cy.po, share/po/nl.po,
- share/po/ja.po, share/po/wa.po, share/po/sv.po, share/po/is.po,
- share/po/hu.po, share/po/zh_TW.Big5.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/fi.po, share/po/no.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/ar.po, share/po/sl.po,
- share/po/vi.po, share/po/br.po, share/po/ca.po, share/po/gl.po,
- share/po/lv.po, share/po/uk.po, share/po/eo.po, share/po/ro.po,
- share/po/da.po, share/po/cs.po, share/po/af.po: updated pot file
-
-2001/08/21 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator.pm: fix spelling error
-
- * install_any.pm: cleanup
- install hotplug if usb (i kept usbd just in case)
-
- * diskdrake_interactive.pm (Create): force no sorting on filesystems,
- editable mount points
-
- * install_steps.pm: try to fix umount/remounting /tmp/hdimage in hd
- install
-
- * Makefile, share/po/Makefile: check presence of '$' in DrakX.pot
-
- * install_steps_interactive.pm: fix '$' in i18n message
-
- * fs.pm (read_fstab): don't expand symlink if the link goes in a directory
- umask=0 only if security level < 3
-
-2001/08/20 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/compssUsers: Have NETWORKING_DNS in "Internet station" (was
- nowhere)
-
-2001/08/20 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm: basic nfs handling in drakx
- fix bug 4257
-
- * detect_devices.pm (raidAutoStart): fix for when kmod is there
-
- * fsedit.pm: try a stronger matching technique for parsing /proc/mdstat
- with devfs
-
- * diskdrake_interactive.pm, install_any.pm, install_steps.pm: try harder
- to umount /tmp/hdimage only when needed
-
- * Makefile.drakxtools, Makefile, tools/rpcinfo-flushed.c, network/nfs.pm,
- tools/.cvsignore, tools/Makefile, diskdrake.pm: basic nfs handling in
- drakx
-
-2001/08/20 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/compssUsers: Have NETWORKING_DNS in "Internet station" (was
- nowhere)
-
-2001/08/20 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator_consts.pm: add weird options for NeoMagic NM2160 (request
- of Alex Hulse <axh0@aber.ac.uk> on cooker)
-
- * detect_devices.pm (raidAutoStart): fix for when kmod is there
-
- * diskdrake.pm: remove test code
-
- * fs.pm: fix bug 4257
-
- * fsedit.pm: try a stronger matching technique for parsing /proc/mdstat
- with devfs
-
- * install_steps.pm, diskdrake_interactive.pm, install_any.pm: try harder
- to umount /tmp/hdimage only when needed
-
- * interactive_gtk.pm (wait_message_nextW): fix previous text == new text
- causing no
- expose_event causing dead loop
-
-2001/08/19 Pixel <pixel@mandrakesoft.com>
-
- * diskdrake_interactive.pm: save fstab on exit
-
- * fsedit.pm: various typos fix
-
- * install_steps.pm: rename isCdNotEjectable in usingRamdisk, ensure no
- files are removed unless we're in ramdisk
- make the devfs= mount or nomount choice based on raid-based root work
-
- * standalone/diskdrake: rename isCdNotEjectable in usingRamdisk, ensure no
- files are removed unless we're in ramdisk
- fix diskdrake requiring gtk
- add some test code
-
- * fs.pm: rename isCdNotEjectable in usingRamdisk, ensure no files are
- removed unless we're in ramdisk
- various typos fix
-
- * install_steps_interactive.pm, common.pm, install2.pm, install_any.pm,
- lang.pm, pkgs.pm: rename isCdNotEjectable in usingRamdisk, ensure no
- files are removed unless we're in ramdisk
-
-2001/08/19 Pixel <pixel@mandrakesoft.com>
-
- * diskdrake.pm: major fs.pm rework + adaptation to it
- don't show nfs/smb/removable in install
- basic smb handling
-
- * network/smb.pm: basic smb handling
-
- * install_steps.pm: rename isCdNotEjectable in usingRamdisk, ensure no
- files are removed unless we're in ramdisk
- make the devfs= mount or nomount choice based on raid-based root work
- disable supermount for the moment
- major fs.pm rework + adaptation to it
-
- * install_steps_interactive.pm, lang.pm: rename isCdNotEjectable in
- usingRamdisk, ensure no files are removed unless we're in ramdisk
- simplify
-
- * standalone/diskdrake: rename isCdNotEjectable in usingRamdisk, ensure no
- files are removed unless we're in ramdisk
- fix diskdrake requiring gtk
- add some test code
- major fs.pm rework + adaptation to it
-
- * install_any.pm: rename isCdNotEjectable in usingRamdisk, ensure no files
- are removed unless we're in ramdisk
- major fs.pm rework + adaptation to it
-
- * partition_table.pm: remove JFS from @important_types (too broken for the
- moment)
- remove isSupermount (was unused)
-
- * common.pm, install2.pm, pkgs.pm: rename isCdNotEjectable in
- usingRamdisk, ensure no files are removed unless we're in ramdisk
-
- * interactive_gtk.pm (create_ctree): fix focusing (the assumption number
- of leaves = number of lines is dumb)
-
- * fsedit.pm: various typos fix
- major fs.pm rework + adaptation to it
-
- * bootlook.pm, standalone/drakboot: major fs.pm rework + adaptation to it
-
- * fs.pm: rename isCdNotEjectable in usingRamdisk, ensure no files are
- removed unless we're in ramdisk
- various typos fix
- major fs.pm rework + adaptation to it
- cleanup
- basic smb handling
-
- * diskdrake_interactive.pm: save fstab on exit
- major fs.pm rework + adaptation to it
-
-2001/08/18 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm: basic nfs/smb handling in diskdrake
- fixes and function prototype removing
-
- * diskdrake.pm: basic nfs/smb handling in diskdrake
- nicer mount options code (for autofs and supermount)
-
- * install_steps.pm: oops, i inverted devfs=nomount and devfs=mount
-
- * interactive_gtk.pm: fix bug in box's height use
-
- * partition_table.pm, any.pm: fixes and function prototype removing
-
- * interactive.pm: readd the sorting based on size when no sorting is
- precised
-
- * my_gtk.pm (n_line_size): bigger spacing for 'various'
-
- * standalone/diskdrake, diskdrake_interactive.pm, fsedit.pm: basic nfs/smb
- handling in diskdrake
-
-2001/08/18 Pixel <pixel@mandrakesoft.com>
-
- * my_gtk.pm (n_line_size): bigger spacing for 'various'
- enhance look, fix ask_fileW
-
- * fs.pm: basic nfs/smb handling in diskdrake
- fixes and function prototype removing
- (write_fstab): add notail for reiserfs partitions in any case
- cleanup mounting options parsing
-
- * diskdrake.pm: basic nfs/smb handling in diskdrake
- nicer mount options code (for autofs and supermount)
- big renaming of ask_from_entries_refH in ask_from and
- ask_from_entries_refH_powered in ask_from_
- cleanup mounting options parsing
-
- * raid.pm: update the raid size as it should be
-
- * diskdrake_interactive.pm: basic nfs/smb handling in diskdrake
- less verbose resize_reiserfs
- update the raid size as it should be
- big renaming of ask_from_entries_refH in ask_from and
- ask_from_entries_refH_powered in ask_from_
-
- * fsedit.pm: basic nfs/smb handling in diskdrake
- update the raid size as it should be
-
- * network/tools.pm: fix typo
- big renaming of ask_from_entries_refH in ask_from and
- ask_from_entries_refH_powered in ask_from_
-
- * partition_table.pm: fixes and function prototype removing
-
- * install_steps_interactive.pm, standalone/drakautoinst, proxy.pm,
- install_interactive.pm, network/ethernet.pm, interactive_http.pm,
- printerdrake.pm, Xconfigurator.pm, network/netconnect.pm,
- network/network.pm, interactive_newt.pm, network/modem.pm: big renaming
- of ask_from_entries_refH in ask_from and ask_from_entries_refH_powered
- in ask_from_
-
- * standalone/diskdrake: basic nfs/smb handling in diskdrake
-
- * any.pm: fixes and function prototype removing
- big renaming of ask_from_entries_refH in ask_from and
- ask_from_entries_refH_powered in ask_from_
-
- * interactive_gtk.pm: fix bug in box's height use
- better radiobox keyboard handling
- big renaming of ask_from_entries_refH in ask_from and
- ask_from_entries_refH_powered in ask_from_
- enhance look, fix ask_fileW
-
- * interactive.pm: readd the sorting based on size when no sorting is
- precised
- big renaming of ask_from_entries_refH in ask_from and
- ask_from_entries_refH_powered in ask_from_
-
- * install_steps.pm: oops, i inverted devfs=nomount and devfs=mount
- do not use devfs with root software raid
-
-2001/08/18 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm: fix pass $all_hds->{hds} instead of
- $all_hds
-
-2001/08/18 siegel
-
- * share/po/de.po: new german version
-
- * standalone/drakgw, bootlook.pm, network/ethernet.pm, install_any.pm,
- network/network.pm, raid.pm: fixed i18n
-
- * printerdrake.pm: i18n fixes
-
-2001/08/17 Pixel <pixel@mandrakesoft.com>
-
- * install_interactive.pm: use diskdrake_interactive instead of diskdrake
-
- * standalone/interactive_http/interactive_http.cgi: fix typo
- restrict the progs callable to a few one.
-
- * standalone/interactive_http/index.html.pl,
- standalone/interactive_http/index.html: autogenerate index.html
-
- * fs.pm, diskdrake_interactive.pm, diskdrake.pm: add mount options choice
- (with IA-like stripping of unused options)
-
- * c/stuff.xs.pm: is_ext3 is needed in standalone
- Xtest not needed in standalone
-
- * c/Makefile.PL: is_ext3 is needed in standalone
-
- * standalone/interactive_http/miniserv.init,
- standalone/interactive_http/Makefile: restrict the progs callable to a
- few one.
-
- * Makefile.drakxtools: fix po not build, add interactive_http in DIRS
-
- * modules.pm: move back sunhme in sparc only
-
-2001/08/17 dam's <damien@mandrakesoft.com>
-
- * interactive_gtk.pm: no scrollbar if list <= 10 and the list is alone
-
- * interactive.pm, install2.pm: removed no_incon
-
- * standalone/net_monitor: added no internet connection configured label on
- button
-
- * network/netconnect.pm, network/ethernet.pm: corrected connection script
- creation
-
-2001/08/17 Pixel <pixel@mandrakesoft.com>
-
- * install_interactive.pm: use diskdrake_interactive instead of diskdrake
- a hell lot of cleanup/rewrite:
- * diskdrake_interactive created, diskdrake is now interactive aware
- * added some documentation about the structure used for partitioning
- * all_hds now contain the various hds, lvm, raid
- * cleanup the isLVM, isRAID and alike functions
- * field {type} in detect_devices is now {media_type}
- * detect_devices::floppies is now floppies_dev
- * removed old function prototypes
-
- * fs.pm, diskdrake.pm: add mount options choice (with IA-like stripping of
- unused options)
- a hell lot of cleanup/rewrite:
- * diskdrake_interactive created, diskdrake is now interactive aware
- * added some documentation about the structure used for partitioning
- * all_hds now contain the various hds, lvm, raid
- * cleanup the isLVM, isRAID and alike functions
- * field {type} in detect_devices is now {media_type}
- * detect_devices::floppies is now floppies_dev
- * removed old function prototypes
-
- * install_steps_interactive.pm, install_steps_auto_install.pm,
- install2.pm, partition_table.pm, loopback.pm, raid.pm, bootlook.pm,
- standalone/diskdrake, install_any.pm, install_steps.pm, fsedit.pm,
- any.pm, detect_devices.pm, partition_table_raw.pm, bootloader.pm: a hell
- lot of cleanup/rewrite:
- * diskdrake_interactive created, diskdrake is now interactive aware
- * added some documentation about the structure used for partitioning
- * all_hds now contain the various hds, lvm, raid
- * cleanup the isLVM, isRAID and alike functions
- * field {type} in detect_devices is now {media_type}
- * detect_devices::floppies is now floppies_dev
- * removed old function prototypes
-
- * diskdrake_interactive.pm: add mount options choice (with IA-like
- stripping of unused options)
- (part_possible_actions): have possible actions sorted the way we want
- (Type): fix ext2->ext3 detection
- a hell lot of cleanup/rewrite:
- * diskdrake_interactive created, diskdrake is now interactive aware
- * added some documentation about the structure used for partitioning
- * all_hds now contain the various hds, lvm, raid
- * cleanup the isLVM, isRAID and alike functions
- * field {type} in detect_devices is now {media_type}
- * detect_devices::floppies is now floppies_dev
- * removed old function prototypes
-
- * modules.pm: move back sunhme in sparc only
-
-2001/08/17 Till Kamppeter <till@mandrakesoft.com>
-
- * share/rpmsrate: Corrected listing of packages for printing in 'INSTALL'
- section.
-
-2001/08/17 warly
-
- * share/rpmsrate: add package needed by the install in INSTALL
- remove shapecfg and gpa
-
-2001/08/16 Till Kamppeter <till@mandrakesoft.com>
-
- * printerdrake.pm: Fixed bug of CUPS not being installed during
- installation
-
-2001/08/16 Pixel <pixel@mandrakesoft.com>
-
- * install2.pm, install_any.pm: add remove_unused to have more place for mo
- files
-
-2001/08/16 Till Kamppeter <till@mandrakesoft.com>
-
- * printerdrake.pm: Fixed bug of CUPS not being installed during
- installation
-
-2001/08/16 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm: add remove_unused to have more place for mo files
- (getAndSaveAutoInstallFloppy): fix a missing del_loop which caused the
- unmounting at end of install to fail
-
- * install2.pm: add remove_unused to have more place for mo files
-
-2001/08/16 Till Kamppeter <till@mandrakesoft.com>
-
- * printerdrake.pm: Fixed setup dialog for the "postpipe" connection type
-
-2001/08/16 warly
-
- * share/rpmsrate: add package needed by the install in INSTALL
-
-2001/08/16 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/fr.po: updated French file
-
- * share/po/sk.po: updated Slovak file
-
- * lang.pm: Added explicit setting of XFree86 internal XIM for Thai
-
-2001/08/16 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm (getAndSaveAutoInstallFloppy): fix a missing del_loop
- which caused the
- unmounting at end of install to fail
-
-2001/08/16 Till Kamppeter <till@mandrakesoft.com>
-
- * printerdrake.pm: Fixed setup dialog for the "postpipe" connection type
-
-2001/08/16 warly
-
- * share/rpmsrate: add package needed by the install in INSTALL
- add kernel in INSTALL
- s/DrakConf/drakconf/
-
-2001/08/15 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/ko.po, share/po/it.po, share/po/id.po: updated Indonesian,
- Italian and Korean files
-
- * share/po/sr.po, share/po/sp.po, share/po/tr.po: updated Turkish and
- Serbian files
-
-2001/08/15 Pixel <pixel@mandrakesoft.com>
-
- * standalone/diskdrake: oops reverting modifs commited by error
- fix XkbOptions handling
-
- * standalone/keyboarddrake: fix XkbOptions handling
-
-2001/08/15 Till Kamppeter <till@mandrakesoft.com>
-
- * printer.pm, printerdrake.pm: Let the "Options" button only appear when
- the queue is Foomatic or with PPD (CUPS)
-
-2001/08/15 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/ko.po, share/po/it.po: updated Indonesian, Italian and Korean
- files
-
- * share/po/es.po: updated spanish and Indonesian files
-
- * share/po/id.po: updated Indonesian, Italian and Korean files
- updated spanish and Indonesian files
-
-2001/08/14 dam's <damien@mandrakesoft.com>
-
- * standalone/net_monitor: added options
-
-2001/08/14 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * install_any.pm: oops, fix type of installing X or not
- - fix choice of packages when auto install
-
- * Makefile.config: add drakautoinst in drakxtools standalone binaries
-
- * install_steps_interactive.pm, install2.pm:
- - fix createBootdisk with auto
- - fix setupBootloader with auto
- - fix behaviour of draknet when auto-install
- - remove auto flag when error-in-step
-
- * install_steps.pm, network/netconnect.pm:
- - fix behaviour of draknet when auto-install
- - remove auto flag when error-in-step
-
- * Xconfigurator.pm: fix automatic configuration
-
-2001/08/14 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/sv.po: updated Swedish file
-
-2001/08/14 Pixel <pixel@mandrakesoft.com>
-
- * devices.pm: add number-only device-name handling (eg: "801" is "sda1")
-
- * interactive_gtk.pm, interactive.pm:
- - small fixes (esp. gtk sensitive handling)
- - add ask_file
- - add "gtk" preference field
-
- * my_gtk.pm: remove ask_file (was unused)
-
- * http.pm: cleanup to please perl_checker
-
- * Makefile (TAGS): add MDK/Common files
-
- * services.pm: cleanup (it was working, but wasn't nice)
-
-2001/08/14 dam's <damien@mandrakesoft.com>
-
- * standalone/draknet: corrected activation button
-
-2001/08/14 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * install_any.pm: oops, fix type of installing X or not
- - fix choice of packages when auto install
-
- * Makefile.config: add drakautoinst in drakxtools standalone binaries
-
- * install_steps_interactive.pm, install2.pm:
- - fix createBootdisk with auto
- - fix setupBootloader with auto
- - fix behaviour of draknet when auto-install
- - remove auto flag when error-in-step
-
- * install_steps.pm, network/netconnect.pm:
- - fix behaviour of draknet when auto-install
- - remove auto flag when error-in-step
-
- * Xconfigurator.pm: fix automatic configuration
-
-2001/08/14 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/sv.po: updated Swedish file
-
-2001/08/14 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator.pm: fix typo?
-
-2001/08/14 Till Kamppeter <till@mandrakesoft.com>
-
- * printerdrake.pm: Transfer queues non-interactively when switching
- between LPD and LPRng.
-
-2001/08/14 dam's <damien@mandrakesoft.com>
-
- * standalone/draknet: corrected activation button
-
-2001/08/14 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * install_steps.pm, install_steps_interactive.pm, install2.pm,
- network/netconnect.pm:
- - fix behaviour of draknet when auto-install
- - remove auto flag when error-in-step
-
- * Xconfigurator.pm: fix automatic configuration
-
- * install_any.pm:
- - fix choice of packages when auto install
-
-2001/08/14 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator.pm: fix typo?
-
-2001/08/14 Till Kamppeter <till@mandrakesoft.com>
-
- * printer.pm: Removed superfluous lines.
-
- * printerdrake.pm: Transfer queues non-interactively when switching
- between LPD and LPRng.
- Wait message for queue transfer, manufacturer name bugfix
-
-2001/08/13 Chmouel Boudjnah <chmouel@mandrakesoft.com>
-
- * tools/i386/netboot/stage2.eepro100: Add eepro100 grub stage.
- Removing old version of eepro100 (no stage1).
-
- * tools/i386/netboot/stage1.eepro100: Add eepro100 grub stage.
-
-2001/08/13 dam's <damien@mandrakesoft.com>
-
- * interactive.pm: corrected 'no icon'
-
- * network/adsl.pm, network/netconnect.pm: adsl autodetection activated
- (planq the children)
-
-2001/08/13 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * standalone/drakautoinst: ouch! use lib from /usr/lib/libDrakX, rather
- than from ..
- initial revision for drakautoinst
- - put %installSteps in a separate package (steps.pm) (for drakxtools)
- - use additional fields {auto} and {noauto}, by step, to ease
- interactive auto install and oem stuff
- - in install2.pm, perform each step either from the interactive class
- or from install_steps, according to the {auto} flag
- - id, tell each step to not try to be automatic if {noauto}
- - in the install, have auto install bootdisk created in install_any so
- we can always write a bootdisk (from install_steps) for further use from
- drakautoinst in standalone
- - interactive version of install_steps_auto_install is now inheriting
- from the interactive class, so we can click on a previous automatic step
- and have it interactively during an interactive auto install
-
- * install_steps.pm, install_steps_interactive.pm,
- install_steps_auto_install.pm, install2.pm, steps.pm, install_any.pm:
- initial revision for drakautoinst
- - put %installSteps in a separate package (steps.pm) (for drakxtools)
- - use additional fields {auto} and {noauto}, by step, to ease
- interactive auto install and oem stuff
- - in install2.pm, perform each step either from the interactive class
- or from install_steps, according to the {auto} flag
- - id, tell each step to not try to be automatic if {noauto}
- - in the install, have auto install bootdisk created in install_any so
- we can always write a bootdisk (from install_steps) for further use from
- drakautoinst in standalone
- - interactive version of install_steps_auto_install is now inheriting
- from the interactive class, so we can click on a previous automatic step
- and have it interactively during an interactive auto install
-
-2001/08/13 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_auto_install.pm, install2.pm, install_any.pm, steps.pm:
- auto_inst enhancements
-
- * install_steps_interactive.pm, standalone/XFdrake, install_steps.pm,
- Xconfigurator.pm: really use a class_discard for Xconfigurator::main
-
- * devices.pm: add /dev/hd[mt] handling
-
-2001/08/13 siegel
-
- * share/po/de.po: new german version
-
-2001/08/13 Till Kamppeter <till@mandrakesoft.com>
-
- * printerdrake.pm: Automatic transfer of queues when changing the spooler.
- Update printer queue list when exiting during install, so that the
- "Summary" entry is correct.
- When one sayd "No" on the test page, the modify dialog was not pointing
- to the current printer
-
- * printer.pm: Automatic transfer of queues when changing the spooler.
- The photo test page was not printed during installation.
-
- * interactive.pm: Tree lists are sorted again now.
-
-2001/08/13 yduret
-
- * standalone/drakxconf: removed diskdrake from the choice
-
-2001/08/12 dam's <damien@mandrakesoft.com>
-
- * standalone/draknet: longer timeout
-
-2001/08/12 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/po/fr.po: fix ortograf typo
-
-2001/08/12 Pixel <pixel@mandrakesoft.com>
-
- * share/po/Makefile: po->mo is no longer gonna be nasty with us
-
- * interactive_gtk.pm: clean the nice till fix
-
- * tools/cvslog2changelog.pl: add till
-
- * Makefile: ensure locales.tar.bz2 in perl-install/share is build
- po->mo is no longer gonna be nasty with us
-
-2001/08/12 Till Kamppeter <till@mandrakesoft.com>
-
- * interactive.pm: Lists get only sorted when the "sort" option is given.
-
- * printer.pm, printerdrake.pm: Check files before checking RPM database =>
- Acceleration, waiting windows
-
-2001/08/11 dam's <damien@mandrakesoft.com>
-
- * share/themes.rc, share/logo-mandrake.png, share/themes-mdk.rc,
- share/themes/mdk-bg.png: new theme for beta
-
- * share/theme-editor.pl: updated
- now works.
-
-2001/08/11 tkamppeter
-
- * printer.pm, printerdrake.pm: Restructuring continued and debugged
-
-2001/08/10 dam's <damien@mandrakesoft.com>
-
- * share/theme-editor.pl: added theme editor
-
- * network/tools.pm: corrected password file substitution
-
- * network/ethernet.pm: remove Data::Dumper
-
- * network/netconnect.pm: added spped and timeout handling for isdn
-
- * any.pm: corrected autologin question
-
- * network/isdn.pm: tomeout option deactivated.
-
- * standalone/draknet: corrected internet cnfiguration pop up, and some
- other studds
- ifup/down ethx, anew pixmap for list
-
- * my_gtk.pm: removed Datta::Dump use
-
- * pixmaps/eth_card_mini2.png: added
-
-2001/08/10 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * lang.pm: small font fix
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/ga.po, share/po/sr.po,
- share/po/de.po, share/po/et.po, share/po/tr.po, share/po/eu.po,
- share/po/az.po, share/po/ru.po, share/po/pt_BR.po, share/po/hr.po,
- share/po/ko.po, share/po/cy.po, share/po/nl.po, share/po/ja.po,
- share/po/wa.po, share/po/sv.po, share/po/is.po, share/po/hu.po,
- share/po/zh_TW.Big5.po, share/po/it.po, share/po/id.po, share/po/pl.po,
- share/po/fi.po, share/po/no.po, share/po/zh_CN.GB2312.po,
- share/po/th.po, share/po/el.po, share/po/sk.po, share/po/lt.po,
- share/po/ar.po, share/po/sl.po, share/po/vi.po, share/po/br.po,
- share/po/ca.po, share/po/gl.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/ro.po, share/po/da.po, share/po/cs.po,
- share/po/af.po: updated pot file
-
- * share/po/bg.po: updated Bulgarian file
- updated pot file
-
-2001/08/10 yduret
-
- * bootlook.pm: corrected vnew usage (thx gc)
-
-2001/08/09 dam's <damien@mandrakesoft.com>
-
- * standalone/draknet: added missing use
- added pixmap for eth. Some factorisation
-
- * network/tools.pm: added useless function type2interface for future use
-
- * my_gtk.pm: added gtkbuttonset, and corrected scrollbar height for
- standalone mode.
-
- * network/isdn.pm: labels corrections
-
-2001/08/09 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * standalone/tinyfirewall, standalone/printerdrake, standalone/mousedrake,
- standalone/drakxservices, standalone/net_monitor, standalone/draknet,
- standalone/drakproxy, standalone/XFdrake, standalone/keyboarddrake,
- standalone/drakxconf, standalone/adduserdrake, standalone/livedrake,
- standalone/drakboot, standalone/draksec: use vnew the right way
- everywhere
-
- * standalone/drakgw: use vnew the right way everywhere
- - if package installs fail, redo one by one to know which one failed
- - try to not end up with a failing configuration file, if program is
- brutally stopped
- - if unrecognized config file, don't fail, rather ignore it and
- proceed
- - run dhcpd_update feature (if present) after setup of dhcp server
-
- * share/rpmsrate: put traceroute in network client also, for claudio
-
-2001/08/09 Pixel <pixel@mandrakesoft.com>
-
- * standalone.pm, install_any.pm: rename interactive_pkgs in
- pkgs_interactive
-
-2001/08/09 siegel
-
- * standalone/interactive_http/miniserv.logrotate,
- standalone/interactive_http/Makefile: Added logrotate for
- "/var/log/drakxtools_http.log"
-
-2001/08/09 tkamppeter
-
- * printer.pm, printerdrake.pm: New structure for queue modification,
- general structure clean-up
-
-2001/08/09 yduret
-
- * bootlook.pm: readded in->do_pkg->install (i sux)
- rewrite in a more drakx fashion
-
- * my_gtk.pm: added gtkset_sensitive in wrapper..
-
-2001/08/08 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/cy.po, share/po/nl.po,
- share/po/ja.po, share/po/wa.po, share/po/sv.po, share/po/is.po,
- share/po/hu.po, share/po/zh_TW.Big5.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/fi.po, share/po/no.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/ar.po, share/po/sl.po,
- share/po/vi.po, share/po/br.po, share/po/ca.po, share/po/gl.po,
- share/po/lv.po, share/po/uk.po, share/po/eo.po, share/po/ro.po,
- share/po/da.po, share/po/cs.po, share/po/af.po: updated pot file
-
-2001/08/08 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm: typo
- makes interactive_pkgs stuff work
- add interactive_pkgs stuff
-
- * Makefile: skip module CGI in test_pms (perl_checker)
-
- * fsedit.pm (check_mntpoint): remove /root from directories that "should
- remain within the root filesystem"
-
- * proxy.pm, network/ethernet.pm, network/isdn.pm, tinyfirewall.pm,
- printerdrake.pm, standalone/drakgw, standalone/draknet,
- network/tools.pm, bootlook.pm, standalone.pm, standalone/drakproxy,
- standalone/XFdrake, network/netconnect.pm, standalone/adduserdrake,
- network/adsl.pm, network/network.pm, printer.pm, network/modem.pm: add
- interactive_pkgs stuff
-
- * install_steps_interactive.pm: installing foomatic before doing anything
- about printer
- add interactive_pkgs stuff
-
- * Xconfigurator.pm, any.pm: makes interactive_pkgs stuff work
- add interactive_pkgs stuff
-
- * install_any.pm (remove, remove_nodeps): fix typo
- makes interactive_pkgs stuff work
- add interactive_pkgs stuff
-
-2001/08/08 tkamppeter
-
- * install_steps_interactive.pm: Installation fitted to new printerdrake
-
- * printer.pm: Different choosable test pages available now
- Corrected init script calls in the (start|stop|restart)_service
- functions
-
- * printerdrake.pm: Different choosable test pages available now
- Removed superfluous line in install_spooler function
-
-2001/08/08 Pixel <pixel@mandrakesoft.com>
-
- * pkgs.pm (naughtyServers): add drakxtools-http
-
-2001/08/07 dam's <damien@mandrakesoft.com>
-
- * standalone/net_monitor: nex features
-
- * network/netconnect.pm: removed debugging message
-
- * network/isdn.pm: corrected pkgs use -> require
-
- * my_gtk.pm: added gtkset_relief
-
- * pixmaps/network.png, pixmaps/draknet_step.png: added
-
-2001/08/07 Pixel <pixel@mandrakesoft.com>
-
- * pixmaps/network.png, pixmaps/draknet_step.png: re-adding with -kb
- removing for re-adding with -kb
-
-2001/08/07 tkamppeter
-
- * printer.pm, printerdrake.pm: Automatic installation of all needed
- packages
-
-2001/08/07 dam's <damien@mandrakesoft.com>
-
- * standalone/draknet: corrected label
-
- * network/netconnect.pm: removed debugging message
-
- * standalone/net_monitor: nex features
- added color choice
- lot of improvments
-
- * network/isdn.pm: corrected pkgs use -> require
-
- * my_gtk.pm: added gtkset_relief
-
- * pixmaps/network.png, pixmaps/draknet_step.png: added
-
-2001/08/07 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/tools.c: say that it's a data read error, when we can't load
- the ramdisk
-
- * mdk-stage1/Makefile.common, mdk-stage1/bzlib/bzlib.h: don't use system
- wide bzlib.h but our own provided one
-
-2001/08/07 Pixel <pixel@mandrakesoft.com>
-
- * rescue/tree/etc/issue: fix distrib number
-
- * interactive.pm: adding http feature, mainly for standalone tools
-
- * standalone/miniserv.pem, standalone/miniserv.pl: Initial revision
- import
-
- * standalone/interactive_http/miniserv.pl: add interactive_http
- Initial revision
-
- * resize_fat/main.pm: fix
-
- * partition_table.pm: nicer names for journalised fs
-
- * Makefile.drakxtools, standalone/interactive_http/miniserv.init,
- standalone/interactive_http/index.html,
- standalone/interactive_http/interactive_http.cgi,
- standalone/interactive_http/miniserv.conf,
- standalone/interactive_http/miniserv.pam,
- standalone/interactive_http/miniserv.users, Makefile,
- standalone/interactive_http/Makefile: add interactive_http
-
- * interactive_http.pm, standalone/interactive_http.cgi: add
- interactive_http
- adding http feature, mainly for standalone tools
-
- * share/diskdrake.rc: have every journalised in darkred
-
- * c/stuff.xs.pm: add S_IFIFO
-
- * standalone/interactive_http/miniserv.pem: Initial revision
-
-2001/08/06 dam's <damien@mandrakesoft.com>
-
- * my_gtk.pm: debugging, profile coding, isdn 128 debugging
- corrected gtkradio : shift instead of pop
-
- * interactive_gtk.pm, install_steps_gtk.pm: corrected gtkradio : shift
- instead of pop
-
- * network/netconnect.pm, network/ethernet.pm, network/isdn.pm: debugging,
- profile coding, isdn 128 debugging
-
-2001/08/06 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * tools/i386/busybox: try a busybox with better globbing under the SHELL
-
-2001/08/06 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/de.po: Updates to German file by Peer Dunker <peer46@gmx.net>
-
- * share/po/vi.po: updated Vietnamese file
-
-2001/08/06 Pixel <pixel@mandrakesoft.com>
-
- * c/stuff.xs.pm: kernel_arch removed
-
- * fsedit.pm (@suggestions_mntpoints): remove /root (tx2gc)
-
- * interactive_gtk.pm, interactive_newt.pm: cleanup, functions already
- defined in interactive
-
-2001/08/06 yduret
-
- * tinyfirewall.pm: use MDK::Common;
- use network::netconnect;
-
- * standalone/drakgw: use MDK::Common;
- use network::netconnect; and update functions call from netconnect
-
-2001/08/05 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/eo.po: updated Esperanto file
-
-2001/08/05 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_auto_install.pm: switch to gtk install when
- interactiveSteps is defined
-
-2001/08/05 tkamppeter
-
- * printer.pm, printerdrake.pm: Automatic installation and start of the
- desired printer spooler
-
-2001/08/04 Pixel <pixel@mandrakesoft.com>
-
- * share/list: add tune2fs enabling switching from ext2 to ext3
-
- * fs.pm, fsedit.pm, partition_table.pm: add ext3 support
-
- * diskdrake.pm: add ext3 support
- (Type): handle lossless switch from ext2 to ext3
-
- * pkgs.pm: make perl_checker happy
-
- * c/stuff.xs.pm, c/Makefile.PL: add is_ext3
-
- * common.pm: moved arch() and alike to MDK::Common::System
-
-2001/08/04 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm (choosePackages): simplify, fix
- setSelectedFromCompssList not called in
- expert even the first_time (especially nasty for auto_installs)
-
- * fs.pm, partition_table.pm, fsedit.pm: add ext3 support
-
- * diskdrake.pm: add ext3 support
- (Type): handle lossless switch from ext2 to ext3
-
- * install_steps_gtk.pm: add the feather feature, but do not enable it
-
- * interactive_gtk.pm (ask_browse_tree_info_refW): s/wait_msg/wait_message/
- (wait_msg doesn't
- exist anywhere, it must be a fpons typo)
-
- * pkgs.pm: make perl_checker happy
-
- * c/stuff.xs.pm, c/Makefile.PL: add is_ext3
-
- * bootloader.pm: as when lilo is selected, we don't try to install grub,
- just create the
- config file in case it may be useful
-
- * common.pm: moved arch() and alike to MDK::Common::System
-
- * partition_table_raw.pm: add yaboot detection
-
- * install_any.pm, share/rpmsrate: create a new flags "X" selected by
- default, contain what X related packages
- which were in "SYSTEM"
-
-2001/08/04 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm (choosePackages): simplify, fix
- setSelectedFromCompssList not called in
- expert even the first_time (especially nasty for auto_installs)
-
- * install_steps_gtk.pm: add the feather feature, but do not enable it
-
- * bootloader.pm: as when lilo is selected, we don't try to install grub,
- just create the
- config file in case it may be useful
-
- * interactive_gtk.pm (ask_browse_tree_info_refW): s/wait_msg/wait_message/
- (wait_msg doesn't
- exist anywhere, it must be a fpons typo)
-
- * share/rpmsrate, install_any.pm: create a new flags "X" selected by
- default, contain what X related packages
- which were in "SYSTEM"
-
-2001/08/03 dam's <damien@mandrakesoft.com>
-
- * standalone/net_monitor, network/tools.pm, network/netconnect.pm,
- network/isdn.pm: debugging, 128Kb/s ISDN
-
- * Makefile.drakxtools, Makefile: added network pms
-
-2001/08/03 Pixel <pixel@mandrakesoft.com>
-
- * partition_table.pm: typo fix
- replace isJfs/isXfs/... with isThisFs("jfs"
-
- * install_any.pm: replace isJfs/isXfs/... with isThisFs("jfs"
- update_userkderc is now called update_gnomekderc
-
- * Makefile: better po skipping
-
- * commands.pm (sync): (re-?)add
-
- * fs.pm, install_steps_interactive.pm, diskdrake.pm, bootloader.pm:
- replace isJfs/isXfs/... with isThisFs("jfs"
-
- * fsedit.pm (check_mntpoint): /root should remain within the root
- filesystem
-
- * install_steps.pm (choosePartitionsToFormat): toFormatUnsure=1 for /usr
- update_userkderc is now called update_gnomekderc
-
-2001/08/02 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/adsl.c:
- - fix problem of clashing user/pass between adsl and ftp/http in case
- of automatic installs
- - update doc on automatic install parameters (doc/TECH-INFOS)
-
- * mdk-stage1/doc/TECH-INFOS:
- - small update
- - fix problem of clashing user/pass between adsl and ftp/http in case
- of automatic installs
- - update doc on automatic install parameters (doc/TECH-INFOS)
-
-2001/08/02 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/no.po: updated Norwegian file
-
-2001/08/02 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm, services.pm, install_interactive.pm,
- network/netconnect.pm, install_any.pm, Xconfigurator.pm: instead of
- testing if ref($in) or ref($o) contains /gtk/, test if interactive_gtk
- is in ISA of the object
-
- * partition_table.pm, fsedit.pm, diskdrake.pm: JFS support
-
-2001/08/02 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/adsl.c:
- - fix problem of clashing user/pass between adsl and ftp/http in case
- of automatic installs
- - update doc on automatic install parameters (doc/TECH-INFOS)
-
- * mdk-stage1/doc/TECH-INFOS:
- - small update
- - fix problem of clashing user/pass between adsl and ftp/http in case
- of automatic installs
- - update doc on automatic install parameters (doc/TECH-INFOS)
-
-2001/08/02 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/no.po: updated Norwegian file
-
-2001/08/02 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm: instead of testing if ref($in) or ref($o) contains
- /gtk/, test if interactive_gtk is in ISA of the object
- add jfs support
-
- * install_steps_interactive.pm, services.pm, install_interactive.pm,
- network/netconnect.pm, Xconfigurator.pm: instead of testing if ref($in)
- or ref($o) contains /gtk/, test if interactive_gtk is in ISA of the
- object
-
- * partition_table.pm: JFS support
- add jfs support
-
- * fsedit.pm, diskdrake.pm: JFS support
-
- * tools/ntp_servers.pl, timezone.pm: update ntp servers list
-
- * fs.pm, share/list: add jfs support
-
-2001/08/02 Pixel <pixel@mandrakesoft.com>
-
- * tools/ntp_servers.pl, timezone.pm: update ntp servers list
-
- * fs.pm, share/list, partition_table.pm, install_any.pm: add jfs support
-
-2001/08/01 dam's <damien@mandrakesoft.com>
-
- * my_gtk.pm: write_on_text writes in blue instead of black
-
- * network/isdn.pm: typo
- added de-installation before installateion
-
- * network/netconnect.pm: translation correction
-
-2001/08/01 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm, fsedit.pm: handle auto_allocate_raids for
- auto_installs
-
- * raid.pm (new): now works with a list of partitions
-
-2001/08/01 tkamppeter
-
- * printer.pm: Fixed bug in recognizing the printer ID in the Foomatic
- overview.
-
-2001/08/01 dam's <damien@mandrakesoft.com>
-
- * my_gtk.pm: write_on_text writes in blue instead of black
-
- * network/isdn.pm: typo
- added de-installation before installateion
-
- * network/netconnect.pm: translation correction
-
-2001/08/01 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm, fsedit.pm: handle auto_allocate_raids for
- auto_installs
-
- * raid.pm (new): now works with a list of partitions
-
-2001/07/31 dam's <damien@mandrakesoft.com>
-
- * network/netconnect.pm: added splash screen between different
- configurations. Added splash wizard mode
- added intro step for each configuration type.
-
- * network/tools.pm: corrected ask_connect_now
-
- * my_gtk.pm: added write_on pixmap : a function to write text on pixma,
- using fonts.
-
- * network/ethernet.pm: added intro step for each configuration type.
-
-2001/07/31 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * install_steps_interactive.pm: after copying the auto install floppy,
- sync in case you shall remove the
- floppy right after the LED switches off yet the kernel decides to not
- flush
- everything
-
- * modules.pm, mdk-stage1/modules_descr.h: have "catc" driver for usbnet
- installs
-
- * bootloader.pm: load msdos and vfat before mkbootdisk (now using syslinux
- so..)
-
-2001/07/31 Pixel <pixel@mandrakesoft.com>
-
- * common.pm (translate): empty string translation is an empty string
-
- * install_gtk.pm (test_mouse): s/my (.*) = 0 if 0/my $1 if 0/
-
- * share/rpmsrate: add cpio
- lower gurpmi (5->4)
-
- * share/gen_locales.sh, share/locales-skeleton.tar.bz2: chineese locale
- support
- better handling of locales
-
- * Makefile.drakxtools (install): s/cp -rf/cp -rfL/ (-L = --dereference,
- aka always follow symbolic links)
-
- * install_steps_gtk.pm (installPackages): make $show_advertising a global
- state (for Vincent Meyer)
-
- * share/Makefile, Makefile: better handling of locales
-
- * install_steps_auto_install.pm: remove bad prototype
-
-2001/07/30 dam's <damien@mandrakesoft.com>
-
- * network/ethernet.pm: added cable internet connection selection
- added internet connection selection in case of multiple configurations
-
- * network/netconnect.pm: corrected ask_connect_now behaviour
- corrected ask_connect_now
- debug
- added internet connection selection in case of multiple configurations
-
- * network/adsl.pm, network/tools.pm, network/modem.pm, network/isdn.pm:
- corrected ask_connect_now
- added internet connection selection in case of multiple configurations
-
-2001/07/30 Pixel <pixel@mandrakesoft.com>
-
- * pkgs.pm (getDeps): ensure "depslist.ordered has not same package as
- hdlist files"
- occurs when the hdlists are in fact not available
-
- * share/locales.tar.bz2.ppc, share/locales.tar.bz2,
- share/locales.tar.bz2.sparc, share/.cvsignore, share/gen_locales.sh,
- share/locales-skeleton.tar.bz2: automatic handling of locales.tar.bz2
- based on installed glibc
-
- * printer.pm, printerdrake.pm: use MDK::Common
- i wonder why it was included and Till used an older version without
- merging?
-
- * resize_fat/main.pm: switch to MDK::Common (i wonder why it was not done
- yet)
-
- * share/rpmsrate: raise rxvt (4->5)
- lower rpmdrake & harddrake (5->4)
- remove rootfiles (unneeded)
-
- * Makefile: use -excludeMDK::Common::Globals for perl_checker
- automatic handling of locales.tar.bz2 based on installed glibc
-
-2001/07/30 tkamppeter
-
- * printer.pm, printerdrake.pm: In beginners mode one chooses only the
- printer, not the driver (default driver)
-
-2001/07/30 dam's <damien@mandrakesoft.com>
-
- * network/netconnect.pm: debug
- added internet connection selection in case of multiple configurations
-
- * network/adsl.pm, network/tools.pm, network/modem.pm, network/isdn.pm:
- added internet connection selection in case of multiple configurations
-
- * network/ethernet.pm: added cable internet connection selection
- added internet connection selection in case of multiple configurations
-
-2001/07/30 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/tools.c, mdk-stage1/stage1.c, mdk-stage1/config-stage1.h:
- have a memory limit also for Rescue (different one)
-
-2001/07/30 Pixel <pixel@mandrakesoft.com>
-
- * printer.pm, printerdrake.pm: use MDK::Common
- i wonder why it was included and Till used an older version without
- merging?
-
- * resize_fat/main.pm: switch to MDK::Common (i wonder why it was not done
- yet)
-
- * share/rpmsrate: raise rxvt (4->5)
- lower rpmdrake & harddrake (5->4)
- remove rootfiles (unneeded)
-
- * pkgs.pm (getDeps): ensure "depslist.ordered has not same package as
- hdlist files"
- occurs when the hdlists are in fact not available
-
- * Makefile: use -excludeMDK::Common::Globals for perl_checker
- automatic handling of locales.tar.bz2 based on installed glibc
-
- * share/locales.tar.bz2.ppc, share/locales.tar.bz2,
- share/locales.tar.bz2.sparc, share/.cvsignore, share/gen_locales.sh,
- share/locales-skeleton.tar.bz2: automatic handling of locales.tar.bz2
- based on installed glibc
-
-2001/07/28 tkamppeter
-
- * printer.pm, printerdrake.pm: Support for PPD files of PostScript
- printers (when CUPS is used)
-
-2001/07/27 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps_gtk.pm: fixed undeselectable group when 'Other' sub-tree
- is seen as a package.
-
- * interactive_gtk.pm: allow ask_browse_tree_info_refW to return 0 on
- cancel (previously always 1).
- added a before leaving code to clean added reference (else it seems to
- bahave
- strangely on changing steps).
- fixed wrong reference to added icons to ask_browse_tree_info_refW.
-
- * services.pm: allow cancel on services which do not change anything.
-
- * install_steps_interactive.pm: changed warn dialog to okcancel dialog
- when asking user to insert Boot floppy
- used or Update Modules floppy (die may cause to rerun install else).
-
-2001/07/27 gbeauchesne
-
- * install_steps_gtk.pm:
- - install_steps_gtk.pm (launchX) : create /var/log, if not existent,
- for
- XFree86.log
-
-2001/07/27 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/modules.c: allow to escape from Update Modules if you don't
- want to insert an ext2 floppy
- Disk -> Floppy for Update Modules disk
-
-2001/07/27 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * share/locales.tar.bz2.ppc, keyboard.pm, help.pm, partition_table.pm,
- Xconfigurator.pm: last of sync with PPC beta mods
-
-2001/07/27 tkamppeter
-
- * standalone/printerdrake, printer.pm, printerdrake.pm: Printerdrake
- changed to use Foomatic, driver options, spooler change
-
-2001/07/26 dam's <damien@mandrakesoft.com>
-
- * network/isdn.pm: added firmware loading/configuration
- not loading the module at detection.
-
- * standalone/draknet: MDK::common correction
-
- * modules.pm: added default option id="HiSax" to isdn module
-
-2001/07/26 fcrozat
-
- * share/po/fr.po: Fix spelling of 'molette'
-
-2001/07/26 Franēois Pons <fpons@mandrakesoft.com>
-
- * install2.pm: added blank and updatemodules options to DrakX.
-
- * bootloader.pm: added prioritary kernel entry 'default' as the kernel
- typically copied from a
- modified blank.img file with a kernel (no initrd.img necessary to
- build).
- This kernel takes precedance over any other kernel.
-
- * install_steps_interactive.pm: really fixes Diskette with Floppy.
- fix typo as Diskette to Floppy.
- add support for new modules load as described by GG.
-
- * install_steps.pm: fixed some silly typo and tiny bugs.
- fixed typo as Diskette to Floppy.
- add support for modified blank.img floppy and Update Modules floppy.
- In first case copy kernel to /boot/vmlinuz-default to be taken into
- account by
- bootloader suggestion method.
- In second case, check installed kernel and update any modules listed in
- the
- Update Modules floppy.
-
-2001/07/26 gbeauchesne
-
- * bootloader.pm:
- - Don't set "lba32" on ia64
-
-2001/07/26 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/stage1.c, mdk-stage1/modules.h, mdk-stage1/modules.c: pass
- "--blank" to DrakX when module loading is disabled
- - add "changedisk" feature
- - add "updatemodules" feature
-
- * mdk-stage1/tools.c, mdk-stage1/doc/UPDATEMODULES, mdk-stage1/stage1.h:
- - add "changedisk" feature
- - add "updatemodules" feature
-
- * mdk-stage1/probing.c: silently load usb controllers
-
-2001/07/25 dam's <damien@mandrakesoft.com>
-
- * standalone/draknet: fixed new network organization
-
- * standalone/net_monitor: updated. Profile handling.
-
- * network/isdn_consts.pm: updated ISDN detection. Added firmware handling
- and drivers other than hisax
-
-2001/07/25 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: fixed no test (or die test) to void package read on depslist
- (allowed to keep
- package indexing good on multi-arch).
- cleaned code to examine depslist.ordered and packages list.
-
- * rescue/make_rescue_img: fixed to use perl-MDK-Common.
-
- * tools/syncrpms: fixed still missing rpmtools:: before a version_compare
- ...
-
-2001/07/25 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/modules_descr.h: small typo
-
- * mdk-stage1/init.c, mdk-stage1/newt-frontend.c: Use Yahve quoting
-
-2001/07/25 Pixel <pixel@mandrakesoft.com>
-
- * share/po/Makefile (install): build mo's
-
- * commands: move to MDK::Common, bool->to_bool
-
- * common.pm: do not export sync, keep it in common (esp. so that it
- doesn't conflict with my_gtk::sync
- (removeXiBSuffix): add TB (tera)
-
- * share/po/i18n_compssUsers, rescue/make_rescue_img: use MDK::Common
-
- * share/verify_modules.pl: new common syntax
-
- * Makefile:
- - temporary hack to have at least good UTF-8 based locales (otherwise
- rpmlib segfaults)
- - touch share/po/*.po, so that they are not rebuilded (pablo takes
- care of them)
-
- * share/list: add MDK::Common::Globals
-
- * partition_table_sun.pm, install2.pm, partition_table.pm, commands.pm,
- install_steps.pm, partition_table_raw.pm, partition_table_mac.pm: do not
- export sync, keep it in common (esp. so that it doesn't conflict with
- my_gtk::sync
-
-2001/07/25 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * mdk-stage1/modules_descr.h: add decriptions for integrated Apple
- Network/SCSI hardware
-
-2001/07/24 dam's <damien@mandrakesoft.com>
-
- * network/isdn_consts.pm, network/netconnect.pm, network/ethernet.pm:
- corrected speed fax + PCI, updated configuration
-
-2001/07/24 daouda
-
- * bootlook.pm: better runlevel handling -> persistent level choice
-
-2001/07/24 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/cy.po, share/po/nl.po,
- share/po/ja.po, share/po/wa.po, share/po/sv.po, share/po/is.po,
- share/po/hu.po, share/po/zh_TW.Big5.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/fi.po, share/po/no.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/ar.po, share/po/sl.po,
- share/po/vi.po, share/po/br.po, share/po/ca.po, share/po/gl.po,
- share/po/lv.po, share/po/uk.po, share/po/eo.po, share/po/ro.po,
- share/po/da.po, share/po/cs.po, share/po/af.po: updated pot file
-
-2001/07/24 Pixel <pixel@mandrakesoft.com>
-
- * commands.pm: move to MDK::Common, bool->to_bool
- fix syntax
- removed/renamed unused/seldom-used functions
- generalize the use of chomp_ as the functional alternative to chomp (and
- works on lists)
-
- * swap.pm: temporary hack to have at least good UTF-8 based locales
- (otherwise rpmlib segfaults)
- move to MDK::Common, bool->to_bool
-
- * unused/scsi.pm, standalone/draknet: generalize the use of chomp_ as the
- functional alternative to chomp (and works on lists)
-
- * globals.pm, perl2fcalls:
- - globals is now MDK::Common::Globals
- - perl2fcalls is now /usr/bin/perl_checker
-
- * install_steps_gtk.pm: move to MDK::Common, bool->to_bool
- move to MDK::Common, bool->to_bool
- removed/renamed unused/seldom-used functions
-
- * common.pm: move to MDK::Common, bool->to_bool
- cleanup (remove unused stuff and dangerous prototypes)
- removed/renamed unused/seldom-used functions
- generalize the use of chomp_ as the functional alternative to chomp (and
- works on lists)
-
- * network/tools.pm, network/adsl.pm, network/netconnect.pm,
- network/ethernet.pm, network/isdn.pm, network/modem.pm:
- - globals is now MDK::Common::Globals
- - perl2fcalls is now /usr/bin/perl_checker
- move to MDK::Common, bool->to_bool
-
- * partition_table_dos.pm, partition_table_empty.pm, my_gtk.pm, modparm.pm,
- standalone/keyboarddrake, install2.pm, raid.pm, crypto.pm,
- partition_table_mac.pm, standalone/mousedrake, devices.pm,
- install_steps.pm, resize_fat/main.pm, help.pm, install_interactive.pm,
- install_steps_stdio.pm, loopback.pm, resize_fat/any.pm,
- standalone/drakboot, pkgs.pm, keyboard.pm, Xconfigurator.pm, fs.pm,
- interactive_gtk.pm, standalone/drakxservices, fsedit.pm,
- network/network.pm, interactive_stdio.pm, diskdrake.pm, modules.pm,
- resize_fat/directory.pm, standalone/net_monitor,
- install_steps_auto_install.pm, partition_table_sun.pm, proxy.pm,
- lang.pm, partition_table_bsd.pm, tinyfirewall.pm, standalone/draksec,
- standalone/drakxconf, resize_fat/info_sector.pm,
- standalone/adduserdrake, sbus_probing/main.pm, printer.pm,
- partition_table_raw.pm, install_steps_interactive.pm, install_gtk.pm,
- Xconfigurator_consts.pm, resize_fat/boot_sector.pm, partition_table.pm,
- standalone/livedrake, standalone/drakgw, mouse.pm, lvm.pm,
- interactive.pm, share/list, interactive_newt.pm, install_steps_newt.pm,
- bootloader.pm: move to MDK::Common, bool->to_bool
-
- * services.pm, printerdrake.pm: move to MDK::Common, bool->to_bool
- removed/renamed unused/seldom-used functions
-
- * standalone/diskdrake, install_any.pm, any.pm, Xconfig.pm, timezone.pm,
- detect_devices.pm, bootlook.pm: move to MDK::Common, bool->to_bool
- generalize the use of chomp_ as the functional alternative to chomp (and
- works on lists)
-
- * Makefile: temporary hack to have at least good UTF-8 based locales
- (otherwise rpmlib segfaults)
- move to MDK::Common, bool->to_bool
- move to MDK::Common, bool->to_bool
-
-2001/07/23 dam's <damien@mandrakesoft.com>
-
- * modules.pm, network/tools.pm, network/isdn_consts.pm,
- network/netconnect.pm, network/isdn.pm: isdn now works with isdn-light.
- Only 64kb/s and still some debuf stuff to be fixed.
-
-2001/07/23 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/hr.po, share/po/sk.po: updated Slovak and Croatian files
-
-2001/07/23 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm: cleanup
-
- * c/stuff.xs.pm, Makefile.drakxtools, standalone.pm, common.pm, Makefile,
- tools/make_mdkinst_stage2, lang.pm, share/po/Makefile,
- share/po/.cvsignore: do not use the po's directly. Use mo's through
- gettext
-
-2001/07/22 dam's <damien@mandrakesoft.com>
-
- * network/netconnect.pm, network/isdn.pm: updated isdn config, moved
- isdn_data from netconnect_const to isdn_const
- big work on isdn. Not finished
-
- * modules.pm, standalone/net_monitor, network/tools.pm, detect_devices.pm:
- big work on isdn. Not finished
-
- * network/netconnect_consts.pm, network/isdn_consts.pm: updated isdn
- config, moved isdn_data from netconnect_const to isdn_const
-
-2001/07/20 Franēois Pons <fpons@mandrakesoft.com>
-
- * docs/README.pxe: initial release, dhcpd and tftpd only.
-
-2001/07/20 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/el.po: updated Greek file
-
-2001/07/20 Pixel <pixel@mandrakesoft.com>
-
- * share/po/Makefile: externalize the pm 2 pm_.c in fake_c.pl
-
- * lang.pm: fix
- (load_po): enhance readability
-
- * share/po/fake_c.pl: cleanup
- externalize the pm 2 pm_.c in fake_c.pl
-
- * common.pm (translate): basic plural forms handling (not finished)
-
- * help.pm: fix missing ``"''
-
- * bootloader.pm: fix
- (install_lilo): order fat partitions first
-
-2001/07/19 dam's <damien@mandrakesoft.com>
-
- * share/themes.rc, share/logo-mandrake.png, share/themes-mdk.rc,
- share/help.png: new color
-
- * network/netconnect.pm: correct bug. thanx to the little stagiaire.
-
-2001/07/19 Franēois Pons <fpons@mandrakesoft.com>
-
- * mdk-stage1/init-data/msgboot-graphicallogo.img.bz2: updated with new
- graphic logo for 8.1
-
-2001/07/19 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/hr.po, share/po/fi.po, share/po/DrakX.pot, share/po/es.po,
- share/po/eo.po, share/po/fr.po, share/po/wa.po, share/po/da.po,
- share/po/de.po, share/po/el.po, share/po/et.po, share/po/hu.po,
- share/po/eu.po: updated Croatian file
-
-2001/07/19 Franēois Pons <fpons@mandrakesoft.com>
-
- * mdk-stage1/init-data/msgboot-graphicallogo.img.bz2: updated with new
- graphic logo for 8.1
-
- * Xconfigurator.pm: fixed problable freeze on pci probe.
-
-2001/07/19 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/hr.po, share/po/fi.po, share/po/DrakX.pot, share/po/es.po,
- share/po/eo.po, share/po/fr.po, share/po/wa.po, share/po/da.po,
- share/po/de.po, share/po/el.po, share/po/et.po, share/po/hu.po,
- share/po/eu.po: updated Croatian file
-
-2001/07/19 Pixel <pixel@mandrakesoft.com>
-
- * globals.pm: no strict 'refs' instead of 'vars'
-
- * services.pm: rename ask_install_gtk in ask_install, ask_install is now
- ask_install_simple (obsolete)
-
- * install_steps_auto_install.pm: fix exit install in graphical
- auto_install's
-
-2001/07/19 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_auto_install.pm, install_steps_newt.pm, install2.pm: based
- on Michael Brown <mbrown@fensystems.co.uk> patch:
- - enables graphical steps in auto_installs for more than gtk
- - various cleanup
-
- * globals.pm: no strict 'refs' instead of 'vars'
-
- * services.pm: rename ask_install_gtk in ask_install, ask_install is now
- ask_install_simple (obsolete)
-
-2001/07/18 mbadaire
-
- * modules.pm, install_any.pm, bootloader.pm: IA64 adaptation
-
-2001/07/18 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * modules.pm, install_steps.pm, install_steps_interactive.pm,
- tools/serial_probe/serial.c, detect_devices.pm, partition_table_mac.pm,
- diskdrake.pm: roll back some changes from PPC beta - OldWorld vs
- NewWorld bootloader
- modem detection on ttyS0, new sound module in 2.4.4
-
-2001/07/17 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps.pm: disabled Frame buffer for all S3 cards (hangs with XF4
- and S3 ViRGE on reboot
- with Aurora).
-
- * Xconfigurator.pm: cleaned and added S3 Inc in the list to disable test
- for these card.
-
-2001/07/16 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/rpmsrate: removed references to XFree86-ISO8859-{2,9} packages (no
- more used)
-
- * keyboard.pm: small keyboard changes
-
-2001/07/13 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * share/po/fr.po: update
-
-2001/07/12 Franēois Pons <fpons@mandrakesoft.com>
-
- * fs.pm: fixed wrong examination of fsck return code (exit code 1 says
- fsck succeeded in
- fixing partition and now is ok).
-
- * run_program.pm: changed exit code of failed exec in rooted to 128
- instead of 1 (may clash with
- exit code of fsck else).
-
- * any.pm: fixed bug for writing in /etc/sysconfig/desktop file.
-
-2001/07/12 Franēois Pons <fpons@mandrakesoft.com>
-
- * interactive.pm: added ask_browse_tree_info and ask_browse_tree_info_refW
- (default).
-
- * services.pm: reworked to use new service layout for install.
-
- * install_steps_gtk.pm: use common code for tree with info dialog
- (individual package selection).
-
- * fs.pm: fixed wrong examination of fsck return code (exit code 1 says
- fsck succeeded in
- fixing partition and now is ok).
-
- * interactive_gtk.pm: merging common code for individual package selection
- and service to create
- ask_browse_tree_info_refW, added featrures for group icon always
- up-to-date
- (take some memory but not too much, not used if flat model).
-
- * run_program.pm: changed exit code of failed exec in rooted to 128
- instead of 1 (may clash with
- exit code of fsck else).
-
- * any.pm: fixed bug for writing in /etc/sysconfig/desktop file.
-
-2001/07/10 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * mdk-stage1/init.c, mdk-stage1/Makefile.common: minor mods for PPC build,
- define TIOCSCTTY, Makefile mods
-
-2001/07/09 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: added multiple tries if a transaction of only one package
- fails.
-
- * install_any.pm: added LDAP support for authentication.
-
- * install_steps_interactive.pm: added LDAP support for password
- authentication, updated root password window look.
-
- * bootloader.pm: fixed compilation error.
- removed compilation error, the resolution is not quite good and may be
- reworked :-)
-
- * help.pm: updated root password help.
-
-2001/07/09 mbadaire
-
- * bootloader.pm: modify lilo.conf to elilo.conf if arch ia64
-
- * common.pm: Add IA64 support
-
-2001/07/08 Pixel <pixel@mandrakesoft.com>
-
- * bootloader.pm (suggest): replace "is ia64" with "is not ia64" so that
- boot partition is
- set correctly again
-
-2001/07/08 Pixel <pixel@mandrakesoft.com>
-
- * bootloader.pm (suggest): replace "is ia64" with "is not ia64" so that
- boot partition is
- set correctly again
-
-2001/07/06 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: fixed selected_leaves. change algorithm as previous one can
- still causes dead
- lock and may not reproduce correct list. take care of choice that need
- to be
- examined before else another package may be chosen if choice is not
- satisfied
- when selecting packages.
-
- * install_any.pm: change all 8 space into a tabulation, this is simple and
- may change visual
- aspect but it gives correct output and filesize by 40%.
-
-2001/07/06 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: fixed selected_leaves. change algorithm as previous one can
- still causes dead
- lock and may not reproduce correct list. take care of choice that need
- to be
- examined before else another package may be chosen if choice is not
- satisfied
- when selecting packages.
-
- * install_any.pm: change all 8 space into a tabulation, this is simple and
- may change visual
- aspect but it gives correct output and filesize by 40%.
-
-2001/07/06 Pixel <pixel@mandrakesoft.com>
-
- * tools/ntp_servers.pl: some workarounds
-
-2001/07/06 Pixel <pixel@mandrakesoft.com>
-
- * tools/ntp_servers.pl: some workarounds
-
-2001/07/05 Franēois Pons <fpons@mandrakesoft.com>
-
- * keyboard.pm: added DISABLE_WINDOWS_KEY in /etc/sysconfig/keyboard if a
- laptop is detected.
-
-2001/07/05 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/modules_descr.h: add usb net descriptions
-
-2001/07/05 Pixel <pixel@mandrakesoft.com>
-
- * fsedit.pm (file2part): created
-
- * any.pm: ia64 bootloader configuration adaptations
-
- * bootloader.pm: typo fix
- ia64 bootloader configuration adaptations
-
-2001/07/04 dam's <damien@mandrakesoft.com>
-
- * globals.pm: added error handling
-
- * network/netconnect.pm, network/ethernet.pm: modularized. It compiles,
- runs, and works for some stuff.
- modularization continuated
- updated CVS:
- ----------------------------------------------------------------------
- uses the fantastic global module.
- corrected
-
- * standalone/draknet: corrected
-
- * network/tools.pm, network/adsl.pm: modularized. It compiles, runs, and
- works for some stuff.
- updated CVS:
- ----------------------------------------------------------------------
- uses the fantastic global module.
- corrected
-
- * network/network.pm: modularized. It compiles, runs, and works for some
- stuff.
- modularization continuated
-
- * network/isdn.pm, network/modem.pm: modularized. It compiles, runs, and
- works for some stuff.
- updated CVS:
- ----------------------------------------------------------------------
- uses the fantastic global module.
-
- * docs/net_object_class.fig: updated doc
-
-2001/07/04 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: added missing last Card read from Cards+ file.
- allow S3 card to have VideoRam uncommented, fix 86c368 video driver that
- seems
- needing VideoRam too.
- fixed need of video ram if 86c368 and S3 ViRGE.
-
- * install_any.pm: another too wide string truncated to 80 chars.
- make auto_inst.cfg file no longer than 80 chars wide.
-
- * install_steps_interactive.pm: added back timezone settings (thanks
- FredC).
-
-2001/07/04 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/adsl.c: nonsense to exit if interface is not "eth.*"
-
- * mdk-stage1/newt-frontend.c: very nice things happen when you hardcode
- arrays to a too small value
-
- * docs/HACKING: update -d in order to get all the directories...
-
-2001/07/04 mbadaire
-
- * tools/ia64/elilo.efi, tools/specific_arch, share/list.ia64,
- tools/ia64/e2fsck.shared: Ia64 Adaptation
-
- * install_gtk.pm, share/list.i386, common.pm, share/list.ppc, share/list,
- share/list.alpha, install_steps_gtk.pm, share/list.sparc: Ia64
- adaptation
-
-2001/07/04 Pixel <pixel@mandrakesoft.com>
-
- * pkgs.pm (selected_leaves): fix dead-loop
- (selected_leaves): make it work with loops (eg: mandrake_desk loops with
- control-center resulting on none of them being a leaf)
-
- * perl2fcalls: check exclude_uses before reporting bad use of "use"
- exclude module globals from use's to look at
-
- * globals.pm (import): yet another fix
- fix a pb when init is called before another import
- typo correction
- enhanced: shared values are grouped together based on a name
- module to share constant values between modules
-
- * fsedit.pm: add /boot/efi in suggestions for ia64
-
- * install_interactive.pm, install_steps.pm: fix typo
- verify a /boot/efi partition exists
-
- * Makefile, install_any.pm, share/list.ppc, share/list.alpha, share/list,
- share/list.sparc: remove busybox as default shell. Only use it as the
- interactive shell on tty2
-
-2001/07/03 dam's <damien@mandrakesoft.com>
-
- * network/adsl.pm, network/netconnect_consts.pm, network/tools.pm,
- network/modem.pm, network/netconnect.pm, network/isdn.pm: network
- subsystem now compiles. Enjoy
-
- * docs/net_object_class.fig: documentation about net modules structure
-
-2001/07/03 Franēois Pons <fpons@mandrakesoft.com>
-
- * network/netconnect.pm: fix another dam's sucks
- fix dam's sucks
-
- * network/netconnect_consts.pm, Makefile.config: fix dam's sucks
-
- * standalone/XFdrake: expert is allowed to choose frame buffer.
-
- * install_steps_interactive.pm: added loadSavePackagesOnFloppy to manage
- package selection file used by
- auto_install too from packages tree directly on floppies.
-
- * share/floppy.png: updated size to 16x22 to be more aligned.
- for loading/saving packages selection.
-
- * install_any.pm: modified g_default_packages to be used from package tree
- save on floppy.
-
- * install_steps_gtk.pm: added Load/Save on floppy.
- added improve choice of package, well not very usefull but asked by
- higher
- people :-)
-
-2001/07/03 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/rp-pppoe/gui/html/props-basic.png,
- mdk-stage1/rp-pppoe/gui/html/props-options.png,
- mdk-stage1/rp-pppoe/gui/html/props-advanced.png,
- mdk-stage1/rp-pppoe/gui/html/mainwin-busy.png,
- mdk-stage1/rp-pppoe/gui/html/mainwin-nonroot.png,
- mdk-stage1/rp-pppoe/gui/html/mainwin.png,
- mdk-stage1/rp-pppoe/gui/html/props-nic.png: plop
-
- * modules.pm, mdk-stage1/probing.h, mdk-stage1/.cvsignore,
- mdk-stage1/usb-resource/Makefile,
- mdk-stage1/usb-resource/update-usb-ids.pl, mdk-stage1/Makefile,
- mdk-stage1/usb-resource/.cvsignore, mdk-stage1/probing.c: add support
- for install from USB Network Adapters
-
-2001/07/03 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/sp.po, share/po/fi.po, share/po/DrakX.pot,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/es.po,
- share/po/fr.po, share/po/sr.po, share/po/de.po, share/po/el.po,
- share/po/et.po, share/po/sk.po, share/po/tr.po, share/po/eu.po,
- share/po/ru.po, share/po/sl.po, share/po/vi.po, share/po/uk.po,
- share/po/eo.po, share/po/ro.po, share/po/wa.po, share/po/da.po,
- share/po/sv.po, share/po/zh_TW.Big5.po: updated Danish file
-
-2001/07/03 Pixel <pixel@mandrakesoft.com>
-
- * timezone.pm (configureTimezone): propose a list of NTP servers
- (ntp_server): fix
- add ntp handling
-
- * fs.pm (mount): fix fsck.ext2'ing
- (mount): add fsck.ext2 before ext2-mounting
-
- * share/themes/DarkMarble-gloom2.png: re-adding with -kb
- re-adding with -kb
-
- * pixmaps/user.png: re-adding with -kb
- removing for re-adding with -kb
- re-adding with -kb
- removing for re-adding with -kb
-
- * share/themes/blueHeart-button4.png, share/reload.png,
- share/themes/focus.png, share/themes/DarkMarble-button3_in.png,
- share/logo-mandrake.png, share/themes/marble3d-check1.png,
- share/themes/blueHeart-button_def.png, share/rpm-semiselected.png,
- share/logo-mandrake-Desktop.png, share/themes/marble3d-check2.png,
- share/rpm-installed.png, share/themes/marble3d-button1.png,
- share/logo-mandrake_sav.png, share/themes/mdk-button1.png,
- share/themes/DarkMarble-check_off.png, pixmaps/harddrive.png,
- share/themes/marble3d-button_def.png, share/themes/marble3d-button2.png,
- share/help_sav.png, share/themes/DarkMarble-button3_out_prelight.png,
- pixmaps/services.png, pixmaps/bootdisk.png, share/rpm-selected.png,
- share/themes/marble3d-button4.png, pixmaps/bootloader.png,
- share/themes/DarkMarble-button3_out.png, share/logo-mandrake_trans.png,
- share/themes/mdk-button4.png, pixmaps/printer.png, share/rpm-base.png,
- share/logo-mandrake2.png, share/themes/blueHeart-brown_bg1.png,
- share/themes/marble3d-bg1.png, pixmaps/security.png, share/ftin.png,
- pixmaps/rootpasswd.png, share/help.png,
- share/themes/DarkMarble-check_on.png,
- share/themes/blueHeart-button1.png, pixmaps/keyboard.png,
- pixmaps/default.png, share/themes/blueHeart-button2.png, pixmaps/X.png,
- share/themes/DarkMarble-button3_in_prelight.png, share/ftout.png,
- pixmaps/mouse.png, share/rpm-unselected.png: re-adding with -kb
- removing for re-adding with -kb
-
- * install_any.pm, install_steps.pm: add ntp handling
-
- * tools/addchangelog.pl: reverted the last erroneous modif
- re-adding with -kb
-
- * tools/ntp_servers.pl: get a formatted list of NTP servers from an
- authorised source
-
- * install_steps_interactive.pm (doPartitionDisks): better error message
- when no root partition is found
- (configureTimezone): propose a list of NTP servers
- add ntp handling
-
- * docs/comparisons: re-adding with -kb
-
-2001/07/02 dam's <damien@mandrakesoft.com>
-
- * install_steps_interactive.pm: new network sources reorganizationCVS:
- ----------------------------------------------------------------------
-
- * share/list: added modinfo
-
- * modparm.pm: syntax correction
-
- * network/netconnect_consts.pm, network.pm, standalone/draknet,
- network/tools.pm, netconnect.pm, network/netconnect.pm,
- network/ethernet.pm, network/isdn.pm, network/adsl.pm,
- network/network.pm, network/modem.pm, netconnect_consts.pm: new network
- sources reorganization
-
-2001/07/02 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/cy.po, share/po/nl.po,
- share/po/ja.po, share/po/wa.po, share/po/sv.po, share/po/is.po,
- share/po/hu.po, share/po/zh_TW.Big5.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/fi.po, share/po/no.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/ar.po, share/po/sl.po,
- share/po/vi.po, share/po/br.po, share/po/ca.po, share/po/gl.po,
- share/po/lv.po, share/po/uk.po, share/po/eo.po, share/po/ro.po,
- share/po/da.po, share/po/cs.po, share/po/af.po: update po files
-
-2001/07/02 Pixel <pixel@mandrakesoft.com>
-
- * crypto.pm: remove buggy prototype
-
- * share/po/Makefile: yet even better i18n strings extraction
- - fix to add some missing messages
- - add more verif
-
- * c/stuff.xs.pm: use size_t instead of int where it should
-
- * Xconfigurator.pm (write_XF86Config): fix fpons sucks (multi wacoms in
- XF3)
-
- * share/po/b_dump_strings.pm: high level i18n messages getting. only
- partial stuff. Used only for verification
-
- * perl2fcalls: add handling of using pkg::func when func is provided by
- pkg2 use'd by pkg
-
-2001/06/25 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/id.po: updated Indonesian file
-
-2001/06/25 Pixel <pixel@mandrakesoft.com>
-
- * c/stuff.xs.pm: switch from llseek to lseek64
-
-2001/06/23 siegel
-
- * share/po/de.po: new german version
-
-2001/06/22 Franēois Pons <fpons@mandrakesoft.com>
-
- * bootloader.pm: take care of enterprise kernel if installed.
-
- * install_any.pm: automagically install kernel-enterprise if memory is
- greater than 800MB.
-
-2001/06/22 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/po/fr.po: unfuzzyise
-
-2001/06/22 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, tinyfirewall.pm,
- share/po/tr.po, share/po/eu.po, share/po/az.po, share/po/ru.po,
- share/po/pt_BR.po, share/po/hr.po, share/po/ko.po, share/po/cy.po,
- share/po/nl.po, share/po/ja.po, share/po/wa.po, share/po/sv.po,
- share/po/is.po, share/po/hu.po, help.pm, share/po/zh_TW.Big5.po,
- share/po/it.po, share/po/id.po, install_steps_interactive.pm,
- share/po/pl.po, share/po/no.po, share/po/fi.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- install_steps_gtk.pm, share/po/sk.po, share/po/lt.po, share/po/ar.po,
- share/po/sl.po, bootlook.pm, share/po/vi.po, share/po/br.po,
- share/po/ca.po, share/po/gl.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/ro.po, share/po/da.po, share/po/cs.po,
- install_steps_newt.pm, share/po/af.po: s/Linux-Mandrake/Mandrake Linux/
-
-2001/06/21 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: added minimal support for rpmtools >= 3.0
-
-2001/06/21 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * install_any.pm: generate_automatic_stage1_params: listize
- use busybox for the shell of stage2
-
- * mdk-stage1/Makefile: defaults to not spawn shell
-
- * mdk-stage1/hack: kloug
-
- * Makefile, tools/i386/busybox, share/list.ppc, share/list,
- share/list.alpha, share/aliases: use busybox for the shell of stage2
-
-2001/06/21 Pixel <pixel@mandrakesoft.com>
-
- * docs/README, rescue/tree/etc/issue: s/Linux-Mandrake/Mandrake Linux/
- s/linux-mandrake/mandrakesoft/
- (hand made, no i18n messages done)
- s/Linux-Mandrake/Mandrake Linux/
- s/linux-mandrake/mandrakesoft/
- (hand made, no i18n messages done)
-
- * genmodparm: remove duplicate, look in gi/tools
-
- * standalone/printerdrake, install2, docs/HACKING, tools/genmodparm,
- mdk-stage1/config-stage1.h, ChangeLog, resize_fat/README,
- standalone/diskdrake, standalone/XFdrake, rescue/tree/etc/rc.sysinit,
- mdk-stage1/init.c, tools/mailchangelog.pl, detect_devices.pm,
- mdk-stage1/doc/README, resize_fat/main.pm, tools/cvslog2changelog.pl,
- bootloader.pm: s/Linux-Mandrake/Mandrake Linux/
- s/linux-mandrake/mandrakesoft/
- (hand made, no i18n messages done)
-
- * mdk-stage1/make_boot_img: remove GG sux
- s/Linux-Mandrake/Mandrake Linux/
- s/linux-mandrake/mandrakesoft/
- (hand made, no i18n messages done)
-
-2001/06/11 dam's <damien@mandrakesoft.com>
-
- * proxy.pm: updated
- typoCVS:
- ----------------------------------------------------------------------
- proxy
-
- * my_gtk.pm: added gtkset_layout
-
- * standalone/drakproxy: corrected CVS:
- ----------------------------------------------------------------------
- updated
- perlised
-
- * interactive.pm: no icon if wizard
-
-2001/06/11 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator_consts.pm: added some bigger memory range.
-
- * Xconfigurator.pm: fix missing newline on /etc/X11/glx.conf when
- modifying mga_dma = 0
- really fix the Matrox G200 PCI card acceleration using XF3, by disabling
- DMA on
- /etc/X11/glx.conf
- added magic probe of resolution found, if the probed resolution seems
- strange
- according to memory available, it try to let the user select the right
- resolution and depth.
-
- * install_steps.pm, printer.pm: applied patches given for printer
- configuration bug reported by David Eastcott.
-
-2001/06/11 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * modules.pm: have PPP drivers in net_raw rather than in net
- add PPP modules for 'net' drivers
-
- * rescue/tree/etc/rc.sysinit: minor changes
-
- * rescue/tree/etc/inittab, rescue/tree/sbin/fakeshutdown: umount as much
- as possible before rebooting the rescue
-
- * mdk-stage1/ppp/pppd/magic.c, mdk-stage1/ppp/pppd/md5.c,
- mdk-stage1/ppp/pppd/utils.c, mdk-stage1/ppp/pppd/pathnames.h,
- mdk-stage1/ppp/pppd/options.c, mdk-stage1/ppp/pppd/main.c,
- mdk-stage1/ppp/pppd/multilink.c, mdk-stage1/ppp/pppd/auth.c: have adsl
- pppoe installation available
- Initial revision
- import initial ppp sources
-
- * mdk-stage1/dhcp.c: change location of error message when no reply
- received
-
- * mdk-stage1/rp-pppoe/man/pppoe-relay.8,
- mdk-stage1/rp-pppoe/configs/firewall-masq,
- mdk-stage1/rp-pppoe/gui/html/props-nic.png,
- mdk-stage1/rp-pppoe/src/pppoe-sniff.c,
- mdk-stage1/rp-pppoe/configs/firewall-standalone,
- mdk-stage1/rp-pppoe/gui/html/tkpppoe.html,
- mdk-stage1/rp-pppoe/doc/KERNEL-MODE-PPPOE, mdk-stage1/rp-pppoe/go-gui,
- mdk-stage1/rp-pppoe/gui/tkpppoe.in, mdk-stage1/rp-pppoe/man/adsl-stop.8,
- mdk-stage1/rp-pppoe/scripts/adsl-start.in,
- mdk-stage1/rp-pppoe/man/pppoe-sniff.8, mdk-stage1/rp-pppoe/go,
- mdk-stage1/rp-pppoe/man/pppoe.8,
- mdk-stage1/rp-pppoe/gui/html/mainwin-nonroot.png,
- mdk-stage1/rp-pppoe/gui/tkpppoe.1, mdk-stage1/rp-pppoe/src/Makefile.in,
- mdk-stage1/rp-pppoe/src/pppoe.c, mdk-stage1/rp-pppoe/src/pppoe-server.c,
- mdk-stage1/rp-pppoe/src/pppoe.h, mdk-stage1/rp-pppoe/gui/wrapper.c,
- mdk-stage1/rp-pppoe/man/pppoe-server.8,
- mdk-stage1/rp-pppoe/configs/pppoe.conf,
- mdk-stage1/rp-pppoe/gui/html/props-advanced.png,
- mdk-stage1/rp-pppoe/src/common.c, mdk-stage1/rp-pppoe/src/install-sh,
- mdk-stage1/rp-pppoe/doc/LICENSE, mdk-stage1/rp-pppoe/src/configure,
- mdk-stage1/rp-pppoe/src/config.h.in, mdk-stage1/rp-pppoe/src/relay.c,
- mdk-stage1/rp-pppoe/src/discovery.c, mdk-stage1/rp-pppoe/src/if.c,
- mdk-stage1/rp-pppoe/doc/CHANGES, mdk-stage1/rp-pppoe/src/relay.h,
- mdk-stage1/rp-pppoe/scripts/adsl-init.in,
- mdk-stage1/rp-pppoe/rp-pppoe.spec,
- mdk-stage1/rp-pppoe/scripts/adsl-connect.in,
- mdk-stage1/rp-pppoe/man/pppoe.conf.5,
- mdk-stage1/rp-pppoe/scripts/adsl-init-turbolinux.in,
- mdk-stage1/rp-pppoe/man/adsl-start.8,
- mdk-stage1/rp-pppoe/gui/html/mainwin.png,
- mdk-stage1/rp-pppoe/rp-pppoe-gui.spec,
- mdk-stage1/rp-pppoe/gui/html/props-basic.png,
- mdk-stage1/rp-pppoe/man/adsl-status.8,
- mdk-stage1/rp-pppoe/configs/pppoe-server-options,
- mdk-stage1/rp-pppoe/man/adsl-connect.8,
- mdk-stage1/rp-pppoe/scripts/adsl-setup.in,
- mdk-stage1/rp-pppoe/scripts/adsl-stop.in,
- mdk-stage1/rp-pppoe/gui/Makefile.in, mdk-stage1/rp-pppoe/src/debug.c,
- mdk-stage1/rp-pppoe/doc/PROBLEMS, mdk-stage1/rp-pppoe/src/ppp.c,
- mdk-stage1/rp-pppoe/README,
- mdk-stage1/rp-pppoe/gui/html/mainwin-busy.png,
- mdk-stage1/rp-pppoe/gui/pppoe-wrapper.1,
- mdk-stage1/rp-pppoe/scripts/adsl-status,
- mdk-stage1/rp-pppoe/man/adsl-setup.8,
- mdk-stage1/rp-pppoe/gui/html/props-options.png,
- mdk-stage1/rp-pppoe/src/configure.in,
- mdk-stage1/rp-pppoe/configs/pap-secrets, mdk-stage1/rp-pppoe/src/md5.c,
- mdk-stage1/rp-pppoe/scripts/adsl-init-suse.in,
- mdk-stage1/rp-pppoe/src/md5.h, mdk-stage1/rp-pppoe/src/plugin.c,
- mdk-stage1/rp-pppoe/doc/HOW-TO-CONNECT: Initial revision
- import initial sources from rp-pppoe v3.0
-
- * mdk-stage1/Makefile: change handling of .depend in Makefile
- have adsl pppoe installation available
-
- * mdk-stage1/newt-frontend.c: axalon sucks, we can have NEWT_FLAG_PASSWORD
- that will show us '**' for passwords
-
- * mdk-stage1/ppp/pppd/.cvsignore, mdk-stage1/ppp/.cvsignore,
- mdk-stage1/ppp/pppd/Makefile, mdk-stage1/rp-pppoe/src/.cvsignore,
- mdk-stage1/rp-pppoe/src/config.h, mdk-stage1/adsl.c,
- mdk-stage1/rp-pppoe/.cvsignore, mdk-stage1/rp-pppoe/src/Makefile,
- mdk-stage1/make_boot_img: have adsl pppoe installation available
-
- * detect_devices.pm, install_any.pm, raid.pm, fsedit.pm: include patch to
- autodetect raid arrays (still needs a kernel that implements the
- ioctl..)
-
- * tools/Makefile: perl 5.6.1 now
-
- * mdk-stage1/stage1.c, mdk-stage1/tools.c: do not set root=/dev/ram3 from
- my code anymore, expect the bootloader to set the parameter correctly
-
- * mdk-stage1/ppp/scripts/ip-up.local.add, mdk-stage1/ppp/scripts/README,
- mdk-stage1/ppp/solaris/Makefile.sol2,
- mdk-stage1/ppp/svr4/ppp_comp.Master, mdk-stage1/ppp/sample/ip-down,
- mdk-stage1/ppp/solaris/Makefile.sol2-64,
- mdk-stage1/ppp/include/net/ppp_defs.h,
- mdk-stage1/ppp/pppstats/Makefile.sunos4,
- mdk-stage1/ppp/chat/Makefile.sol2, mdk-stage1/ppp/pppd/sys-linux.c,
- mdk-stage1/ppp/pppd/ipxcp.c, mdk-stage1/ppp/pppd/ipxcp.h,
- mdk-stage1/ppp/pppdump/deflate.c, mdk-stage1/ppp/pppd/Makefile.linux,
- mdk-stage1/ppp/pppd/upap.c, mdk-stage1/ppp/modules/deflate.c,
- mdk-stage1/ppp/README.sunos4, mdk-stage1/ppp/pppdump/Makefile.sol2,
- mdk-stage1/ppp/configure, mdk-stage1/ppp/pppd/upap.h,
- mdk-stage1/ppp/svr4/ppp_mod.c, mdk-stage1/ppp/pppstats/Makefile.sol2,
- mdk-stage1/ppp/pppd/ipv6cp.c, mdk-stage1/ppp/scripts/options-ssh-loc,
- mdk-stage1/ppp/pppd/plugins/Makefile.sol2, mdk-stage1/ppp/pppd/ipv6cp.h,
- mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.vt.c,
- mdk-stage1/ppp/solaris/ppp_ahdlc_mod.c,
- mdk-stage1/ppp/sunos4/if_ppp_vdcmd.c,
- mdk-stage1/ppp/solaris/ppp_ahdlc.c, mdk-stage1/ppp/pppd/magic.h,
- mdk-stage1/ppp/svr4/ppp_comp_mod.c,
- mdk-stage1/ppp/include/linux/if_ppp.h, mdk-stage1/ppp/pppd/eui64.c,
- mdk-stage1/ppp/scripts/secure-card, mdk-stage1/ppp/scripts/redialer,
- mdk-stage1/ppp/modules/bsd-comp.c, mdk-stage1/ppp/pppd/eui64.h,
- mdk-stage1/ppp/sunos4/ppp_vdcmd.c, mdk-stage1/ppp/modules/ppp_mod.h,
- mdk-stage1/ppp/pppd/md5.h, mdk-stage1/ppp/pppd/chap_ms.c,
- mdk-stage1/ppp/pppd/chap_ms.h, mdk-stage1/ppp/etc.ppp/pap-secrets,
- mdk-stage1/ppp/solaris/Makefile.top, mdk-stage1/ppp/chat/chat.8,
- mdk-stage1/ppp/svr4/Makefile.sol2-64, mdk-stage1/ppp/svr4/Makefile.sol2,
- mdk-stage1/ppp/include/net/ppp-comp.h, mdk-stage1/ppp/sunos4/Makefile,
- mdk-stage1/ppp/PLUGINS, mdk-stage1/ppp/pppdump/Makefile.sunos4,
- mdk-stage1/ppp/sample/ip-up, mdk-stage1/ppp/sample/options.ttyXX,
- mdk-stage1/ppp/scripts/options-rsh-rem, mdk-stage1/ppp/pppd/fsm.c,
- mdk-stage1/ppp/chat/chat.c, mdk-stage1/ppp/scripts/ppp-on-rsh,
- mdk-stage1/ppp/pppd/fsm.h, mdk-stage1/ppp/pppd/tdb.c,
- mdk-stage1/ppp/pppd/patchlevel.h, mdk-stage1/ppp/pppstats/pppstats.8,
- mdk-stage1/ppp/svr4/ppp.conf, mdk-stage1/ppp/pppd/tdb.h,
- mdk-stage1/ppp/pppd/demand.c, mdk-stage1/ppp/include/net/if_ppp.h,
- mdk-stage1/ppp/solaris/Makedefs, mdk-stage1/ppp/modules/if_ppp.c,
- mdk-stage1/ppp/include/net/slcompress.h, mdk-stage1/ppp/sunos4/Makedefs,
- mdk-stage1/ppp/pppd/sys-linux.c.wtmp,
- mdk-stage1/ppp/include/linux/if_pppvar.h,
- mdk-stage1/ppp/solaris/ppp_comp.c, mdk-stage1/ppp/chat/Makefile.linux,
- mdk-stage1/ppp/README.cbcp, mdk-stage1/ppp/pppd/ppp.pam,
- mdk-stage1/ppp/solaris/ppp_comp_mod.c, mdk-stage1/ppp/Changes-2.3,
- mdk-stage1/ppp/sample/options, mdk-stage1/ppp/pppstats/pppstats.c,
- mdk-stage1/ppp/sunos4/ppp_comp_vdcmd.c,
- mdk-stage1/ppp/pppdump/Makefile.linux.pppdump-Makefile,
- mdk-stage1/ppp/README.MSCHAP80, mdk-stage1/ppp/pppdump/pppdump.8,
- mdk-stage1/ppp/sunos4/Makefile.top, mdk-stage1/ppp/include/net/pppio.h,
- mdk-stage1/ppp/pppd/ipcp.c, mdk-stage1/ppp/FAQ,
- mdk-stage1/ppp/pppd/ipcp.h, mdk-stage1/ppp/pppd/sys-sunos4.c,
- mdk-stage1/ppp/modules/ppp_comp.c, mdk-stage1/ppp/README.sol2,
- mdk-stage1/ppp/modules/vjcompress.c, mdk-stage1/ppp/scripts/ppp-on-ssh,
- mdk-stage1/ppp/svr4/ppp_ahdlc_mod.c, mdk-stage1/ppp/sunos4/ppp.INSTALL,
- mdk-stage1/ppp/modules/ppp.c, mdk-stage1/ppp/pppdump/pppdump.c,
- mdk-stage1/ppp/pppd/plugins/passprompt.c,
- mdk-stage1/ppp/pppdump/Makefile.linux, mdk-stage1/ppp/pppd/lcp.c,
- mdk-stage1/ppp/pppd/lcp.h, mdk-stage1/ppp/scripts/chat-callback,
- mdk-stage1/ppp/chat/Makefile.sunos4, mdk-stage1/ppp/SETUP,
- mdk-stage1/ppp/pppd/Makefile.sol2,
- mdk-stage1/ppp/pppd/plugins/minconn.c,
- mdk-stage1/ppp/etc.ppp/options.options,
- mdk-stage1/ppp/pppdump/Makefile.linux.makeopt,
- mdk-stage1/ppp/svr4/ppp.Node, mdk-stage1/ppp/scripts/options-ssh-rem,
- mdk-stage1/ppp/solaris/ppp.c, mdk-stage1/ppp/svr4/ppp.System,
- mdk-stage1/ppp/etc.ppp/chap-secrets,
- mdk-stage1/ppp/pppstats/Makefile.linux,
- mdk-stage1/ppp/sample/pap-secrets,
- mdk-stage1/ppp/pppd/Makefile.linux.make, mdk-stage1/ppp/pppd/pppd.8,
- mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.8,
- mdk-stage1/ppp/pppd/Makefile.sunos4, mdk-stage1/ppp/scripts/ppp-on,
- mdk-stage1/ppp/include/linux/ppp_defs.h,
- mdk-stage1/ppp/scripts/chatchat/chatchat.c,
- mdk-stage1/ppp/scripts/chatchat/README,
- mdk-stage1/ppp/modules/ppp_ahdlc.c, mdk-stage1/ppp/svr4/ppp.Master,
- mdk-stage1/ppp/svr4/Makedefs,
- mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.gtk.c,
- mdk-stage1/ppp/svr4/ppp_ahdl.System, mdk-stage1/ppp/pppd/pppd.h,
- mdk-stage1/ppp/scripts/ppp-off, mdk-stage1/ppp/solaris/Makedefs.sol2,
- mdk-stage1/ppp/common/zlib.c, mdk-stage1/ppp/scripts/options-rsh-loc,
- mdk-stage1/ppp/common/zlib.h, mdk-stage1/ppp/solaris/ppp_mod.c,
- mdk-stage1/ppp/contrib/pppgetpass/Makefile.linux,
- mdk-stage1/ppp/solaris/ppp_mod.h, mdk-stage1/ppp/scripts/ppp-on-dialer,
- mdk-stage1/ppp/pppd/sys-solaris.c, mdk-stage1/ppp/README.linux,
- mdk-stage1/ppp/sample/auth-down, mdk-stage1/ppp/svr4/ppp_ahdl.Master,
- mdk-stage1/ppp/pppdump/zlib.c, mdk-stage1/ppp/include/pcap-int.h,
- mdk-stage1/ppp/pppdump/zlib.h, mdk-stage1/ppp/pppd/ccp.c,
- mdk-stage1/ppp/chat/Makefile.linux.makeopt, mdk-stage1/ppp/pppd/ccp.h,
- mdk-stage1/ppp/pppd/Makefile.linux.makeopt,
- mdk-stage1/ppp/include/net/vjcompress.h, mdk-stage1/ppp/pppd/cbcp.c,
- mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.sh,
- mdk-stage1/ppp/pppd/cbcp.h, mdk-stage1/ppp/scripts/ip-down.local.add,
- mdk-stage1/ppp/pppd/tty.c, mdk-stage1/ppp/include/linux/ppp-comp.h,
- mdk-stage1/ppp/sample/auth-up, mdk-stage1/ppp/sunos4/ppp_ahdlc_vdcmd.c,
- mdk-stage1/ppp/pppd/pppd.h.wtmp, mdk-stage1/ppp/solaris/ppp.conf,
- mdk-stage1/ppp/pppd/chap.c, mdk-stage1/ppp/pppd/chap.h,
- mdk-stage1/ppp/scripts/callback, mdk-stage1/ppp/linux/Makefile.top,
- mdk-stage1/ppp/svr4/ppp_comp.System, mdk-stage1/ppp/pppd/md4.c,
- mdk-stage1/ppp/svr4/Makedefs.sol2, mdk-stage1/ppp/pppdump/bsd-comp.c,
- mdk-stage1/ppp/README, mdk-stage1/ppp/pppd/md4.h,
- mdk-stage1/ppp/etc.ppp/options, mdk-stage1/ppp/svr4/Makefile.top,
- mdk-stage1/ppp/svr4/Makefile.svr4,
- mdk-stage1/ppp/pppd/plugins/Makefile.linux,
- mdk-stage1/ppp/pppdump/ppp-comp.h: Initial revision
- import initial ppp sources
-
-2001/06/11 odin
-
- * standalone/drakproxy: first import of drakproxy
-
-2001/06/11 Pixel <pixel@mandrakesoft.com>
-
- * install2.pm (main): don't check /usr/bin/urpmi, better check
- /usr/sbin/urpmi.update
-
- * commands.pm (grep_): add a missing semi-colon
-
- * share/compssUsers: remove NIS which is handled by DrakX (titi sucks)
-
-2001/06/10 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * rescue/guessmounts, rescue/make_rescue_img, rescue/tree/etc/rc.sysinit,
- rescue/Makefile:
- - add 'guessmounts' that mimics RH's detecting of partitions when
- rescue starts
-
-2001/06/10 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/az.po: updated Azeri file
-
- * share/po/ru.po, share/po/DrakX.pot: updated Russian file
-
-2001/06/10 Pixel <pixel@mandrakesoft.com>
-
- * rescue/guessmounts: pixelization (tested!)
-
- * install_any.pm (g_auto_install): more comments in auto_inst.cfg file
-
-2001/06/09 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * rescue/list.i386: rescuept is in /sbin now
-
- * share/list: rescuept in /sbin now
-
-2001/06/05 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/network.c: don't wait on upping lo interface
-
- * mdk-stage1/modules.c: fix minor bug detecting when modules are present
-
- * mdk-stage1/dietlibc/include/stdlib.h, mdk-stage1/dietlibc/lib/random.c:
- i need working random suite for ppp with dietlibc
-
- * mdk-stage1/stage1.c: exit when exec fails after fork, i don't want two
- stage1 processes!
-
-2001/06/05 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/pl.po: updated Polish file
-
-2001/06/05 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm (mount): notail in any case
-
- * tools/i386/netboot/menu.lst.example, tools/i386/netboot/menu.lst,
- tools/i386/netboot/.cvsignore: menu.lst is now a local file created from
- the example
-
- * share/list, rescue/list.i386, rescue/list: switch to perl 5.6.1
-
- * Makefile: fix
-
-2001/06/02 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/cy.po, share/po/nl.po,
- share/po/ja.po, share/po/wa.po, share/po/sv.po, share/po/is.po,
- share/po/hu.po, share/po/zh_TW.Big5.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/fi.po, share/po/no.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/ar.po, share/po/sl.po,
- share/po/vi.po, share/po/br.po, share/po/ca.po, share/po/gl.po,
- share/po/lv.po, share/po/uk.po, share/po/eo.po, share/po/ro.po,
- share/po/da.po, share/po/cs.po, share/po/af.po: updated Russian file
-
-2001/06/01 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/Makefile: use -FULL postfix for common .c files targetting
- stage1-full
-
- * mdk-stage1/stage1.c: minor fix
-
- * mdk-stage1/newt/textbox.c: don't modify newt code to fix dietlibc bugs,
- i want to link against glibc too
-
- * mdk-stage1/dietlibc/include/stdlib.h, mdk-stage1/dietlibc/lib/strncat.c:
-
- - have strncat behave the same way as in glibc
- - declare that we're using the DIETLIBC in include/stdlib.h, so I can
- change my mind in "dns.c" to handle broken glibc which is not capable of
- doing name resolution with a static binary
-
- * mdk-stage1/dns.c, mdk-stage1/dns.h, mdk-stage1/adsl.c,
- mdk-stage1/adsl.h, mdk-stage1/nfsmount.c, mdk-stage1/network.c,
- mdk-stage1/url.c, mdk-stage1/network.h:
- - first draft of adsl support
- - get back some code for supporting broken glibc unable to resolve
- when linked statically
-
- * mdk-stage1/dietlibc/dietfeatures.h, mdk-stage1/dietlibc/lib/tcflush.c,
- mdk-stage1/dietlibc/lib/cfgetospeed.c, mdk-stage1/dietlibc/lib/speed.c,
- mdk-stage1/dietlibc/lib/tcsetattr.c,
- mdk-stage1/dietlibc/include/termios.h,
- mdk-stage1/dietlibc/include/netdb.h,
- mdk-stage1/dietlibc/libshell/glob.c: slight modifs to get ppp and pppoe
- stuff compile better
-
-2001/05/31 daouda
-
- * bootlook.pm: add runlevel chooser feature
-
-2001/05/31 Pixel <pixel@mandrakesoft.com>
-
- * rescue/make_rescue_img: check presence of files from list and list.ARCH
-
- * Makefile (get_needed_files): exit with error message if files from
- share/list (and
- share/list.ARCH) are missing
-
- * install2.pm: hide step formatPartitions when upgrading
-
-2001/05/30 mbadaire
-
- * mdk-stage1/stage1.c, mdk-stage1/slang/slmalloc.c,
- mdk-stage1/slang/Makefile, mdk-stage1/Makefile.common,
- mdk-stage1/insmod-modutils/obj/Makefile,
- mdk-stage1/insmod-modutils/Makefile, mdk-stage1/bzlib/Makefile,
- mdk-stage1/init-libc-headers.h, mdk-stage1/newt/Makefile,
- mdk-stage1/Makefile, mdk-stage1/insmod-modutils/util/Makefile,
- mdk-stage1/mar/Makefile, mdk-stage1/newt/windows.c:
- - allow build on ia64
- - have CFLAGS centralized in Makefile.common (should help ports such
- as alpha)
- - better looking sub makefiles
-
-2001/05/30 Pixel <pixel@mandrakesoft.com>
-
- * Makefile.drakxtools (install): ensure pm's in subdirs don't have
- /use(diagnostics|vars|strict)/
-
-2001/05/29 Franēois Pons <fpons@mandrakesoft.com>
-
- * printerdrake.pm: added fix from Michael Brown to handle pipe in queue
- name for lpr.
-
-2001/05/29 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * share/compssUsers: add NIS client to network clients
-
-2001/05/29 Franēois Pons <fpons@mandrakesoft.com>
-
- * printerdrake.pm: added fix from Michael Brown to handle pipe in queue
- name for lpr.
-
-2001/05/28 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/newt-frontend.c: use Axalon patch to hide passwords (highly
- rewritten..)
-
-2001/05/25 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * rescue/list.ppc, bootloader.pm: add hfs support to rescue - PPC, fix
- bootstrap creation, formatting sequence
-
- * install_steps_interactive.pm: fix bootstrap information screen back to
- orig with missing ":" - PPC
- add hfs support to rescue - PPC, fix bootstrap creation, formatting
- sequence
-
-2001/05/25 siegel
-
- * share/po/de.po: updated time
- moved to UTF-8
-
-2001/05/24 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/tr.po: updated Turkish file
-
-2001/05/24 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm (g_auto_install): autoExitInstall set if not replay (was
- the opposite)
-
-2001/05/23 Pixel <pixel@mandrakesoft.com>
-
- * rescue/list: add scd0...
-
-2001/05/22 siegel
-
- * share/po/de.po: updates
-
-2001/05/21 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * tools/ppc/mkhybrid-1.12b5.4-x86, tools/ppc/mkINSTALLCD: enable creation
- of PPC boot CD on x86 platform
-
-2001/05/18 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/network.c:
- - better detect when IP is not good
- - error_msg when netmask seems invalid
- - don't log too much `guessing netmask'
-
- * mdk-stage1/probing.c: be sure to print pci vendor and id with 4 digits
- each
-
-2001/05/17 Franēois Pons <fpons@mandrakesoft.com>
-
- * rescue/tree/etc/oem: fixed parted that ask for confirmation if partition
- table is not right (MAXDATA
- for example), this cause parted to ignore warning.
- added blank space between partition windows and linux to help resolving
- above case.
- fixed hole in partitionning (need testing), use fdisk to get disk
- geometry and
- create partition that matches cylinder boundaries (no more
- approximation).
- make sure to create all partitions including /home.
-
-2001/05/17 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/modules.c: add log for modules aliasing of SCSI drivers
- don't write nonsense code to separate frontend from stage1,
- but rather, try to do some clever things
-
- * mdk-stage1/probing.c: unify user notification of network and scsi
- devices that make load of drivers
- don't write nonsense code to separate frontend from stage1,
- but rather, try to do some clever things
-
- * mdk-stage1/stage1.c, mdk-stage1/frontend.h, mdk-stage1/stage1.h,
- mdk-stage1/tools.c, mdk-stage1/stdio-frontend.c, mdk-stage1/cdrom.c,
- mdk-stage1/Makefile, mdk-stage1/dhcp.c, mdk-stage1/newt-frontend.c,
- mdk-stage1/disk.c, mdk-stage1/network.c: don't write nonsense code to
- separate frontend from stage1,
- but rather, try to do some clever things
-
- * mdk-stage1/frontend-common.c: plop
-
-2001/05/16 dam's <damien@mandrakesoft.com>
-
- * pixmaps/bootloader.png, pixmaps/user.png, pixmaps/security.png,
- pixmaps/rootpasswd.png, pixmaps/harddrive.png, pixmaps/keyboard.png,
- pixmaps/default.png, pixmaps/X.png, pixmaps/mouse.png,
- pixmaps/bootdisk.png, pixmaps/services.png: added icons
-
- * standalone/printerdrake, standalone/keyboarddrake, standalone/drakboot,
- standalone/draksec, standalone/drakxservices, standalone/drakgw,
- standalone/XFdrake, standalone/adduserdrake: added icon management
-
- * my_gtk.pm, interactive.pm: icons management
-
- * install2.pm: added icons management
-
- * standalone/draknet: added icon managment
-
- * pixmaps/printer.png: added icon
-
-2001/05/16 Franēois Pons <fpons@mandrakesoft.com>
-
- * rescue/tree/etc/oem: added support for /var creation, and more specific
- package selection for server.
- Include option support by VERSION file.
-
-2001/05/16 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/stage1.c, mdk-stage1/HACKING, mdk-stage1/frontend.h,
- mdk-stage1/TECH-INFOS, mdk-stage1/WHY-DIETLIBC, mdk-stage1/stage1.h,
- mdk-stage1/stdio-frontend.c, mdk-stage1/Makefile, mdk-stage1/README,
- mdk-stage1/newt-frontend.c: have a 100% independence between UI stuff
- and code from stage1
-
-2001/05/16 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/wa.po, share/po/de.po, share/po/DrakX.pot, share/po/tr.po:
- updated Turkish file
-
-2001/05/16 Pixel <pixel@mandrakesoft.com>
-
- * share/po/Makefile: fix yet again DrakX.pot making
-
- * partition_table.pm: re-add reiserfs as it should
- add xfs
-
-2001/05/15 Franēois Pons <fpons@mandrakesoft.com>
-
- * rescue/tree/etc/oem: added missing Aurora, added icewm-light that may be
- usefull.
-
-2001/05/15 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/Makefile: libresolv deprecated in GLIBC
- have stage1-full with pcmcia also compile with dietlibc, cool!
-
- * mdk-stage1/network.c: fix guess netmask
- configure_net_device is only used internally
-
- * mdk-stage1/modules.c, mdk-stage1/modules.h: better modules handling
- interface (use of enum rather than guessing single numbers..)
-
- * mdk-stage1/newt-frontend.c: allow wait_message calls to be multi-lines
-
- * mdk-stage1/pcmcia/cardmgr.c: have stage1-full with pcmcia also compile
- with dietlibc, cool!
- - build glibc and dietlibc targets
- - bzero string buffer before sscanf call (dietlibc implementation)
- - verify returns of ioperm so that I can use it in test mode
-
- * mdk-stage1/dietlibc/include/sys/file.h,
- mdk-stage1/dietlibc/include/sys/io.h,
- mdk-stage1/dietlibc/syscalls.s/ioperm.S: have stage1-full with pcmcia
- also compile with dietlibc, cool!
-
- * mdk-stage1/stage1.c: a bit of size reduction plus some language change
- blurk
-
- * mdk-stage1/WHY-DIETLIBC: advocate dietlibc
-
- * mdk-stage1/dietlibc/lib/vsscanf.c: import vsscanf fix from author
-
- * mdk-stage1/disk.c: bzero string buffer before sscanf call, security for
- dietlibc implementation
-
- * mdk-stage1/network.h: configure_net_device is only used internally
-
- * mdk-stage1/pcmcia/Makefile, mdk-stage1/pcmcia/pcmcia_probe.c:
- - build glibc and dietlibc targets
- - bzero string buffer before sscanf call (dietlibc implementation)
- - verify returns of ioperm so that I can use it in test mode
-
- * standalone/drakgw: full path for iptables
-
- * mdk-stage1/probing.c: allow wait_message calls to be multi-lines
- nicer layout for PCI detection messages
- better modules handling interface (use of enum rather than guessing
- single numbers..)
-
-2001/05/15 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/tr.po, share/po/ar.po: Updated Turkish file
-
- * share/keyboards.tar.bz2: Added north-african keyboard
-
- * keyboard.pm: added arabic azerty keyboard
-
-2001/05/15 Pixel <pixel@mandrakesoft.com>
-
- * share/po/Makefile: fix messages to i18n extracting
-
-2001/05/14 Chmouel Boudjnah <chmouel@mandrakesoft.com>
-
- * fs.pm: s|mkxfs|mkfs.xfs|;
-
-2001/05/14 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/nfsmount.c: use new gethostby* interface
-
- * mdk-stage1/stage1-data/stage1-with-busybox.tar.bz2: add stage1-data
- which provides the busybox
-
- * mdk-stage1/network.c: Have the wait_message() with the sleep()
- - complies to gethostby functions
- - add sleep(2) so that net intf is really up before operation
- - more logs
- - FTP: don't try to close control connection with data socket, erhm
- :-(
- - debug netmask guessing, with stdio-frontend
-
- * mdk-stage1/Makefile: i can compile slang and newt with dietlibc now
- every targets build with dietlibc
-
- * mdk-stage1/make_boot_img: use busybox for my debugging purpose
-
- * mdk-stage1/tools.c: no need to poll() for data at beginning of
- load_ramdisk_fd, it was a fix of another problem (bug with file stdio
- operations with sockets in dietlibc)
-
- * mdk-stage1/dietlibc/Makefile: build this new dietlibc
- import new version of dietlibc
-
- * mdk-stage1/dns.c, mdk-stage1/dns.h: now use gethostby* functions
- provided by dietlibc
-
- * mdk-stage1/url.c: use poll() rather than select(), smaller code size
-
- * mdk-stage1/stage1.c: we don't use this sucking sash no more
- we now use `busybox' compiled with the marvellous dietlibc, which
- provides no less than 73 usefull binaries
-
- * mdk-stage1/dietlibc/alpha/semop.S, mdk-stage1/dietlibc/lib/sendmsg.c,
- mdk-stage1/dietlibc/alpha/shmget.S, mdk-stage1/dietlibc/lib/clearerr.c,
- mdk-stage1/dietlibc/include/sys/ipc.h,
- mdk-stage1/dietlibc/alpha/sendmsg.S,
- mdk-stage1/dietlibc/lib/tcgetpgrp.c, mdk-stage1/dietlibc/lib/fwrite.c,
- mdk-stage1/dietlibc/sparc/__testandset.S,
- mdk-stage1/dietlibc/syscalls.s/open.S,
- mdk-stage1/dietlibc/alpha/semget.S, mdk-stage1/dietlibc/dietstdarg.h,
- mdk-stage1/dietlibc/syscalls.s/sched_get_priority_max.S,
- mdk-stage1/dietlibc/lib/nop.c, mdk-stage1/dietlibc/start.h,
- mdk-stage1/dietlibc/include/sys/syscall.h,
- mdk-stage1/dietlibc/alpha/accept.S, mdk-stage1/dietlibc/lib/sigjmp.c,
- mdk-stage1/dietlibc/syscalls.s/ptrace.s,
- mdk-stage1/dietlibc/lib/isprint.c,
- mdk-stage1/dietlibc/syscalls.s/dietstat.S,
- mdk-stage1/dietlibc/alpha/shutdown.S, mdk-stage1/dietlibc/lib/sendto.c,
- mdk-stage1/dietlibc/sparc/shmat.c, mdk-stage1/dietlibc/include/time.h,
- mdk-stage1/dietlibc/lib/stat_convert.c, mdk-stage1/dietlibc/lib/send.c,
- mdk-stage1/dietlibc/lib/isxdigit.c, mdk-stage1/dietlibc/alpha/waitpid.S,
- mdk-stage1/dietlibc/lib/atexit.c, mdk-stage1/dietlibc/lib/readdir.c,
- mdk-stage1/dietlibc/include/sys/sem.h,
- mdk-stage1/dietlibc/syscalls.s/query_module.S,
- mdk-stage1/dietlibc/lib/strchr.c,
- mdk-stage1/dietlibc/syscalls.s/dietfstat64.S,
- mdk-stage1/dietlibc/syscalls.s/lstat64.S,
- mdk-stage1/dietlibc/i386/setjmp.S, mdk-stage1/dietlibc/lib/alloc.c,
- mdk-stage1/dietlibc/lib/perror.c,
- mdk-stage1/dietlibc/include/sys/socket.h,
- mdk-stage1/dietlibc/lib/creat64.c, mdk-stage1/dietlibc/lib/closedir.c,
- mdk-stage1/dietlibc/sparc/pipe.S, mdk-stage1/dietlibc/lib/msgrcv.c,
- mdk-stage1/dietlibc/include/utmp.h,
- mdk-stage1/dietlibc/syscalls.s/sendfile.S,
- mdk-stage1/dietlibc/syscalls.s/nice.S,
- mdk-stage1/dietlibc/syscalls.s/sigprocmask.S,
- mdk-stage1/dietlibc/syscalls.s/select.S,
- mdk-stage1/dietlibc/include/sys/mtio.h,
- mdk-stage1/dietlibc/i386/strchr.S, mdk-stage1/dietlibc/alpha/divl.S,
- mdk-stage1/dietlibc/syscalls.s/sched_rr_get_interval.S,
- mdk-stage1/dietlibc/lib/__telldir.c,
- mdk-stage1/dietlibc/i386/__testandset.S,
- mdk-stage1/dietlibc/lib/remove.c,
- mdk-stage1/dietlibc/syscalls.s/sched_get_priority_min.S,
- mdk-stage1/dietlibc/lib/fputc.c, mdk-stage1/dietlibc/lib/msgctl.c,
- mdk-stage1/dietlibc/alpha/clone.S, mdk-stage1/dietlibc/lib/connect.c,
- mdk-stage1/dietlibc/include/sys/un.h,
- mdk-stage1/dietlibc/alpha/connect.S,
- mdk-stage1/dietlibc/include/termios.h,
- mdk-stage1/dietlibc/lib/sigfillset.c,
- mdk-stage1/dietlibc/lib/sigismember.c,
- mdk-stage1/dietlibc/syscalls.s/dietstat64.S,
- mdk-stage1/dietlibc/i386/start.S, mdk-stage1/dietlibc/lib/shmget.c,
- mdk-stage1/dietlibc/lib/strtok.c, mdk-stage1/dietlibc/lib/fclose.c,
- mdk-stage1/dietlibc/lib/tcsetpgrp.c,
- mdk-stage1/dietlibc/sparc/Makefile.add,
- mdk-stage1/dietlibc/include/sys/shm.h, mdk-stage1/dietlibc/alpha/send.S,
- mdk-stage1/dietlibc/i386/__longjmp.S, mdk-stage1/dietlibc/lib/recvmsg.c,
- mdk-stage1/dietlibc/include/inttypes.h,
- mdk-stage1/dietlibc/syscalls.s/sched_getscheduler.S,
- mdk-stage1/dietlibc/lib/semget.c, mdk-stage1/dietlibc/lib/open64.c,
- mdk-stage1/dietlibc/alpha/recvmsg.S,
- mdk-stage1/dietlibc/syscalls.s/fork.S,
- mdk-stage1/dietlibc/lib/strcasecmp.c, mdk-stage1/dietlibc/lib/htonl.c,
- mdk-stage1/dietlibc/lib/accept.c, mdk-stage1/dietlibc/alpha/shmat.S,
- mdk-stage1/dietlibc/include/features.h,
- mdk-stage1/dietlibc/include/syslog.h, mdk-stage1/dietlibc/lib/isascii.c,
- mdk-stage1/dietlibc/syscalls.s/writev.S,
- mdk-stage1/dietlibc/lib/fputs.c,
- mdk-stage1/dietlibc/alpha/sigprocmask.S,
- mdk-stage1/dietlibc/lib/ntohs.c, mdk-stage1/dietlibc/include/sys/uio.h,
- mdk-stage1/dietlibc/syscalls.s/nanosleep.S,
- mdk-stage1/dietlibc/syscalls.s/creat.S,
- mdk-stage1/dietlibc/include/sys/sysinfo.h,
- mdk-stage1/dietlibc/lib/atof.c, mdk-stage1/dietlibc/alpha/msgsnd.S,
- mdk-stage1/dietlibc/lib/vsprintf.c, mdk-stage1/dietlibc/lib/toupper.c,
- mdk-stage1/dietlibc/lib/strlcpy.3, mdk-stage1/dietlibc/lib/sigaddset.c,
- mdk-stage1/dietlibc/i386/select.S, mdk-stage1/dietlibc/i386/unified.S,
- mdk-stage1/dietlibc/include/dirent.h,
- mdk-stage1/dietlibc/include/getopt.h, mdk-stage1/dietlibc/lib/seekdir.c,
- mdk-stage1/dietlibc/include/net/route.h,
- mdk-stage1/dietlibc/syscalls.s/exit.S,
- mdk-stage1/dietlibc/include/pthread.h,
- mdk-stage1/dietlibc/lib/sprintf.c, mdk-stage1/dietlibc/alpha/msgget.S,
- mdk-stage1/dietlibc/include/limits.h, mdk-stage1/dietlibc/lib/qsort.c,
- mdk-stage1/dietlibc/lib/execvp.c,
- mdk-stage1/dietlibc/syscalls.s/__reboot.S,
- mdk-stage1/dietlibc/lib/stdin.c,
- mdk-stage1/dietlibc/syscalls.s/getitimer.S,
- mdk-stage1/dietlibc/include/grp.h, mdk-stage1/dietlibc/lib/usleep.c,
- mdk-stage1/dietlibc/lib/lstat.c, mdk-stage1/dietlibc/sparc/setjmp.S,
- mdk-stage1/dietlibc/sparc/fork.S,
- mdk-stage1/dietlibc/syscalls.s/__pread.S,
- mdk-stage1/dietlibc/include/sys/poll.h,
- mdk-stage1/dietlibc/syscalls.s/personality.S,
- mdk-stage1/dietlibc/lib/lseek64.c, mdk-stage1/dietlibc/include/setjmp.h,
- mdk-stage1/dietlibc/lib/recv.c, mdk-stage1/dietlibc/include/string.h,
- mdk-stage1/dietlibc/include/sys/time.h, mdk-stage1/dietlibc/lib/fstat.c,
- mdk-stage1/dietlibc/lib/memcmp.c, mdk-stage1/dietlibc/lib/isupper.c,
- mdk-stage1/dietlibc/include/sys/param.h,
- mdk-stage1/dietlibc/syscalls.s/__getpagesize.S,
- mdk-stage1/dietlibc/lib/exec_lib.c, mdk-stage1/dietlibc/alpha/shmdt.S,
- mdk-stage1/dietlibc/include/dlfcn.h, mdk-stage1/dietlibc/lib/isdigit.c,
- mdk-stage1/dietlibc/lib/fdopen.c, mdk-stage1/dietlibc/lib/exec_lib.h,
- mdk-stage1/dietlibc/lib/__lxstat.c, mdk-stage1/dietlibc/alpha/remq.S,
- mdk-stage1/dietlibc/include/sys/kd.h,
- mdk-stage1/dietlibc/syscalls.s/read.S, mdk-stage1/dietlibc/lib/fopen.c,
- mdk-stage1/dietlibc/syscalls.s/sched_yield.S,
- mdk-stage1/dietlibc/include/sys/mman.h,
- mdk-stage1/dietlibc/lib/__readdir.c,
- mdk-stage1/dietlibc/lib/cfgetospeed.c,
- mdk-stage1/dietlibc/lib/__dtostr.c, mdk-stage1/dietlibc/lib/execv.c,
- mdk-stage1/dietlibc/alpha/reml.S,
- mdk-stage1/dietlibc/syscalls.s/fcntl.S,
- mdk-stage1/dietlibc/include/errno.h, mdk-stage1/dietlibc/lib/ferror.c,
- mdk-stage1/dietlibc/syscalls.s/ipc.S,
- mdk-stage1/dietlibc/syscalls.s/mlockall.S,
- mdk-stage1/dietlibc/lib/fgetc.c, mdk-stage1/dietlibc/lib/strtoull.c,
- mdk-stage1/dietlibc/include/sys/msg.h,
- mdk-stage1/dietlibc/syscalls.s/sigsuspend.S,
- mdk-stage1/dietlibc/lib/isgraph.c, mdk-stage1/dietlibc/lib/vsscanf.c,
- mdk-stage1/dietlibc/lib/ftell.c, mdk-stage1/dietlibc/include/unistd.h,
- mdk-stage1/dietlibc/lib/msgsnd.c, mdk-stage1/dietlibc/lib/semop.c,
- mdk-stage1/dietlibc/include/net/if_arp.h,
- mdk-stage1/dietlibc/lib/execlp.c,
- mdk-stage1/dietlibc/syscalls.s/stat64.S,
- mdk-stage1/dietlibc/dietfeatures.h, mdk-stage1/dietlibc/dietstdio.h,
- mdk-stage1/dietlibc/lib/feof.c, mdk-stage1/dietlibc/lib/opendir.c,
- mdk-stage1/dietlibc/syscalls.s/fstat64.S,
- mdk-stage1/dietlibc/syscalls.s/sched_setparam.S,
- mdk-stage1/dietlibc/include/sys/reboot.h,
- mdk-stage1/dietlibc/lib/sigdelset.c, mdk-stage1/dietlibc/lib/execl.c,
- mdk-stage1/dietlibc/include/sys/sendfile.h,
- mdk-stage1/dietlibc/include/sys/syslog.h,
- mdk-stage1/dietlibc/syscalls.s/iopl.S, mdk-stage1/dietlibc/lib/msgget.c,
- mdk-stage1/dietlibc/syscalls.s/sched_getparam.S,
- mdk-stage1/dietlibc/lib/vsnprintf.c,
- mdk-stage1/dietlibc/include/signal.h,
- mdk-stage1/dietlibc/syscalls.s/pause.S,
- mdk-stage1/dietlibc/include/arpa/inet.h,
- mdk-stage1/dietlibc/include/sys/wait.h,
- mdk-stage1/dietlibc/alpha/time.S, mdk-stage1/dietlibc/lib/ttyname.c,
- mdk-stage1/dietlibc/lib/__lstat64.c, mdk-stage1/dietlibc/lib/__stat64.c,
- mdk-stage1/dietlibc/alpha/recv.S, mdk-stage1/dietlibc/lib/fgets.c,
- mdk-stage1/dietlibc/lib/strncat.c, mdk-stage1/dietlibc/lib/__lltostr.c,
- mdk-stage1/dietlibc/lib/__ltostr.c,
- mdk-stage1/dietlibc/sparc/__longjmp.S, mdk-stage1/dietlibc/lib/puts.c,
- mdk-stage1/dietlibc/lib/rand.c, mdk-stage1/dietlibc/syscalls.s/fsync.S,
- mdk-stage1/dietlibc/include/fnmatch.h, mdk-stage1/dietlibc/lib/fflush.c,
- mdk-stage1/dietlibc/lib/htons.c,
- mdk-stage1/dietlibc/syscalls.s/sigaltstack.S,
- mdk-stage1/dietlibc/include/sys/resource.h,
- mdk-stage1/dietlibc/lib/__stat64_cvt.c,
- mdk-stage1/dietlibc/lib/localtime.c,
- mdk-stage1/dietlibc/alpha/seteuid.c,
- mdk-stage1/dietlibc/syscalls.s/stime.S,
- mdk-stage1/dietlibc/include/resolv.h, mdk-stage1/dietlibc/lib/__xstat.c,
- mdk-stage1/dietlibc/ppc/Makefile.add,
- mdk-stage1/dietlibc/sparc/unified.S, mdk-stage1/dietlibc/lib/bsearch.c,
- mdk-stage1/dietlibc/include/net/if.h,
- mdk-stage1/dietlibc/include/shadow.h,
- mdk-stage1/dietlibc/lib/__rewinddir.c,
- mdk-stage1/dietlibc/include/daemon.h, mdk-stage1/dietlibc/lib/mkfifo.c,
- mdk-stage1/dietlibc/include/paths.h, mdk-stage1/dietlibc/include/pwd.h,
- mdk-stage1/dietlibc/lib/strrchr.c, mdk-stage1/dietlibc/lib/__seekdir.c,
- mdk-stage1/dietlibc/syscalls.h, mdk-stage1/dietlibc/alpha/shmctl.S,
- mdk-stage1/dietlibc/lib/fdglue.c, mdk-stage1/dietlibc/lib/fseek.c,
- mdk-stage1/dietlibc/include/regex.h,
- mdk-stage1/dietlibc/include/sys/ptrace.h,
- mdk-stage1/dietlibc/lib/tcdrain.c,
- mdk-stage1/dietlibc/syscalls.s/lstat.S,
- mdk-stage1/dietlibc/alpha/semctl.S, mdk-stage1/dietlibc/lib/recvfrom.c,
- mdk-stage1/dietlibc/lib/random.c,
- mdk-stage1/dietlibc/syscalls.s/times.S,
- mdk-stage1/dietlibc/lib/getpgrp.c, mdk-stage1/dietlibc/lib/cfmakeraw.c,
- mdk-stage1/dietlibc/lib/stat.c, mdk-stage1/dietlibc/syscalls.s/write.S,
- mdk-stage1/dietlibc/syscalls.s/dietlstat64.S,
- mdk-stage1/dietlibc/ppc/__testandset.S,
- mdk-stage1/dietlibc/include/mntent.h,
- mdk-stage1/dietlibc/include/sys/file.h,
- mdk-stage1/dietlibc/syscalls.s/fstat.S,
- mdk-stage1/dietlibc/syscalls.s/llseek.S,
- mdk-stage1/dietlibc/lib/strsep.c,
- mdk-stage1/dietlibc/include/sys/stat.h,
- mdk-stage1/dietlibc/syscalls.s/munlockall.S,
- mdk-stage1/dietlibc/syscalls.s/setpriority.S,
- mdk-stage1/dietlibc/include/assert.h,
- mdk-stage1/dietlibc/include/strings.h,
- mdk-stage1/dietlibc/include/alloca.h, mdk-stage1/dietlibc/lib/gmtime.c,
- mdk-stage1/dietlibc/lib/shmat.c, mdk-stage1/dietlibc/lib/__isnan.c,
- mdk-stage1/dietlibc/ppc/__longjmp.S,
- mdk-stage1/dietlibc/lib/__closedir.c,
- mdk-stage1/dietlibc/include/sys/signal.h,
- mdk-stage1/dietlibc/lib/rewinddir.c, mdk-stage1/dietlibc/lib/stdout.c,
- mdk-stage1/dietlibc/lib/vfprintf.c, mdk-stage1/dietlibc/.cvsignore,
- mdk-stage1/dietlibc/lib/telldir.c, mdk-stage1/dietlibc/include/glob.h,
- mdk-stage1/dietlibc/lib/tm_conv.c,
- mdk-stage1/dietlibc/syscalls.s/reboot.S,
- mdk-stage1/dietlibc/syscalls.s/sched_setscheduler.S,
- mdk-stage1/dietlibc/syscalls.s/umount2.S,
- mdk-stage1/dietlibc/syscalls.s/readv.S,
- mdk-stage1/dietlibc/lib/__fxstat.c,
- mdk-stage1/dietlibc/include/sys/select.h,
- mdk-stage1/dietlibc/syscalls.s/syslog.S,
- mdk-stage1/dietlibc/syscalls.s/sysinfo.S,
- mdk-stage1/dietlibc/lib/fprintf.c,
- mdk-stage1/dietlibc/include/sys/cdefs.h, mdk-stage1/dietlibc/README,
- mdk-stage1/dietlibc/lib/fread.c, mdk-stage1/dietlibc/lib/getpwnam.c,
- mdk-stage1/dietlibc/syscalls.s/getcwd.S,
- mdk-stage1/dietlibc/lib/getservent.c, mdk-stage1/dietlibc/lib/tolower.c,
- mdk-stage1/dietlibc/diet.c, mdk-stage1/dietlibc/alpha/recvfrom.S,
- mdk-stage1/dietlibc/include/elf.h, mdk-stage1/dietlibc/alpha/sendto.S,
- mdk-stage1/dietlibc/lib/fileno.c, mdk-stage1/dietlibc/i386/clone.S,
- mdk-stage1/dietlibc/lib/__opendir.c,
- mdk-stage1/dietlibc/include/sched.h, mdk-stage1/dietlibc/alpha/__time.c,
- mdk-stage1/dietlibc/lib/ispunct.c, mdk-stage1/dietlibc/lib/printf.c,
- mdk-stage1/dietlibc/lib/strtod.c, mdk-stage1/dietlibc/lib/strncasecmp.c,
- mdk-stage1/dietlibc/lib/__getcwd.c,
- mdk-stage1/dietlibc/include/netinet/in.h,
- mdk-stage1/dietlibc/lib/shmctl.c,
- mdk-stage1/dietlibc/syscalls.s/dietlstat.S,
- mdk-stage1/dietlibc/include/arpa/nameser.h,
- mdk-stage1/dietlibc/lib/assert_fail.c, mdk-stage1/dietlibc/lib/semctl.c,
- mdk-stage1/dietlibc/lib/shmdt.c, mdk-stage1/dietlibc/lib/shutdown.c,
- mdk-stage1/dietlibc/lib/setpgrp.c, mdk-stage1/dietlibc/alpha/msgrcv.S,
- mdk-stage1/dietlibc/lib/stderr.c,
- mdk-stage1/dietlibc/syscalls.s/close.S,
- mdk-stage1/dietlibc/syscalls.s/dietfstat.S,
- mdk-stage1/dietlibc/include/locale.h,
- mdk-stage1/dietlibc/syscalls.s/getpriority.S,
- mdk-stage1/dietlibc/lib/__fstat64.c, mdk-stage1/dietlibc/lib/isalpha.c,
- mdk-stage1/dietlibc/lib/reboot.c, mdk-stage1/dietlibc/lib/isspace.c,
- mdk-stage1/dietlibc/include/sys/mount.h,
- mdk-stage1/dietlibc/lib/creat.c, mdk-stage1/dietlibc/syscalls.s/lseek.S,
- mdk-stage1/dietlibc/sparc/clone.S, mdk-stage1/dietlibc/dietwarning.h,
- mdk-stage1/dietlibc/lib/islower.c,
- mdk-stage1/dietlibc/alpha/Makefile.add, mdk-stage1/dietlibc/lib/abort.c,
- mdk-stage1/dietlibc/alpha/msgctl.S, mdk-stage1/dietlibc/lib/isalnum.c,
- mdk-stage1/dietlibc/include/ctype.h,
- mdk-stage1/dietlibc/include/netdb.h,
- mdk-stage1/dietlibc/include/memory.h, mdk-stage1/dietlibc/lib/iscntrl.c,
- mdk-stage1/dietlibc/i386/Makefile.add, mdk-stage1/dietlibc/lib/getopt.c,
- mdk-stage1/dietlibc/syscalls.s/waitpid.S,
- mdk-stage1/dietlibc/lib/strtoul.c,
- mdk-stage1/dietlibc/syscalls.s/stat.S,
- mdk-stage1/dietlibc/syscalls.s/sysctl.S: import new version of dietlibc
-
- * mdk-stage1/insmod-busybox/busybox.h: fix conflicts with dietlibc headers
-
- * mdk-stage1/dietlibc/include/stdio.h,
- mdk-stage1/dietlibc/include/stdlib.h,
- mdk-stage1/dietlibc/include/math.h,
- mdk-stage1/dietlibc/include/sys/times.h: have slang and newt compile
- with dietlibc
- import new version of dietlibc
-
- * mdk-stage1/Makefile.common: new dietlibc binaries location
-
- * mdk-stage1/newt-frontend.c: i can compile slang and newt with dietlibc
- now
-
- * mdk-stage1/dietlibc/lib/abs.c: have slang and newt compile with dietlibc
-
- * mdk-stage1/dhcp.c: Have the wait_message() with the sleep()
- - add a sleep(2) after ioctl ifupping so that further operation can
- work normally
- - more logs
-
-2001/05/14 kjx
-
- * share/po/zh_CN.GB2312.po: process untranslated
-
-2001/05/14 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm, fsedit.pm, partition_table.pm, install_any.pm: basic xfs handling
-
-2001/05/11 Franēois Pons <fpons@mandrakesoft.com>
-
- * tools/oem-prepare: fixed missing package which may be selected on
- hardware during real install.
-
- * rescue/tree/etc/oem: added support to change boot entries when invoking
- oem script.
- fixed missing SCSI support and driver module loading.
- fixed missing speficic packages not installed on HW detected.
-
-2001/05/08 dam's <damien@mandrakesoft.com>
-
- * my_gtk.pm: VBox -> HBox in Embedded mode
-
- * standalone/mousedrake: code cleaned and debugged
- added mouse test. Ugly
-
-2001/05/08 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/stdio-frontend.c: fix minor stuff
- re-include correct layout for [] choices, in a smaller way than before
-
- * mdk-stage1/tools.c: minor fix
- needs to poll() for available data before loading ramdisk because ftp
- transfers would fail in some situations
-
- * mdk-stage1/init.c: new maxim
-
- * mdk-stage1/config-stage1.h: adjust COMPRESSION_RATIO so that last star
- is printed when last blocks of file are read
-
- * mdk-stage1/dhcp.c: use poll() rather than select() to win some bytesCVS:
- ----------------------------------------------------------------------
-
-2001/05/08 siegel
-
- * share/po/de.po: fixed plenty ugly typos
-
-2001/05/07 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/pt_BR.po: updated Brazilian file
-
-2001/05/07 yduret
-
- * docs/README.devel: fix one typo
-
- * any.pm, bootloader.pm: updated install_lilo() according to new lilo
- package
- (/boot/lilo-{menu,graphic,text})
-
-2001/05/06 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: corrected bad output and bad adsl script
-
-2001/05/06 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * install2.pm: workaround for msec hang on PPC
-
-2001/05/04 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/rpmsrate: KDE+SOUND -> 4 xmms-arts
-
-2001/05/04 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * mdk-stage1/mar/mar-extract-only.c: text size micro-opt
-
-2001/05/04 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/rpmsrate: KDE+SOUND -> 4 xmms-arts
-
-2001/05/04 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * c/smp.c, keyboard.pm, Xconfigurator.pm: force XF4 in expert too for PPC,
- don't run xmodmap, PPC SMP routine placeholder
-
-2001/05/04 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * mdk-stage1/mar/mar-extract-only.c: text size micro-opt
-
-2001/04/30 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/stdio-frontend.c: nicer layout for progressbar and
- statusreport, when update_progression
- Provide some description of the drivers
-
- * docs/HACKING: fix
- pserver -> ext
-
- * mdk-stage1/tools.c, mdk-stage1/Makefile, mdk-stage1/tools.h,
- mdk-stage1/newt-frontend.c, mdk-stage1/modules_descr.h,
- mdk-stage1/modules.c: Provide some description of the drivers
-
-2001/04/30 Pixel <pixel@mandrakesoft.com>
-
- * docs/README: s/gi.tar.bz2/DrakX-*.src.rpm/
-
- * docs/advocacy: fuck'em all
-
-2001/04/26 Franēois Pons <fpons@mandrakesoft.com>
-
- * docs/README.devel, docs/README: added some more comments for DrakX code
- source and usage.
-
-2001/04/25 Franēois Pons <fpons@mandrakesoft.com>
-
- * tools/oem-prepare: fixed use of VERSION file to find language.
- prepare a oem disk to be used by moving all files that will not be
- installed by oem (oem-master disk preparation).
-
- * rescue/tree/etc/closurepkgs, rescue/tree/etc/part_and_bootloader: fixed
- usage of free space on disk, added NVIDIA packages to install.
-
- * rescue/tree/etc/oem-server: added missing VERSION file.
- fixed usage of free space on disk, added NVIDIA packages to install.
-
- * rescue/tree/etc/oem: added missing autologin package.
- added option to enable oem mode.
- added missing VERSION file.
- fixed usage of free space on disk, added NVIDIA packages to install.
-
-2001/04/24 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/Makefile: version is labelled "cooker"
-
-2001/04/19 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * tools/serial_probe/serial.c, tools/serial_probe/serial_probe.c:
- integrate fg's fixes for includes
-
-2001/04/19 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * rescue/list.sparc, rescue/list.i386, rescue/list.ppc, rescue/list.alpha,
- rescue/list: move /sbin/sfdisk to list.arch, update both list.ppc
-
-2001/04/18 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/network.c: fix bug that trashes the network config of stage1
- during stage2, when no DNS is provided
-
-2001/04/18 dam's <damien@mandrakesoft.com>
-
- * standalone/net_monitor: last corrections
-
- * standalone/draknet, netconnect.pm: last corrections
- corrected internet connection test, and parameters editing
-
- * install_steps_gtk.pm: corrected cursor on details
-
-2001/04/18 Frederic Lepied <flepied@mandrakesoft.com>
-
- * share/rpmsrate: * put am-utils and autofs in NETWORKING_FILE
- * drakprofile in level 1
- * swapped tkinter and python-devel
- * vnc-server in NETWORKING_REMOTE_ACCESS_SERVER
- * vnc-SVGALIB in level 2
-
-2001/04/17 dam's <damien@mandrakesoft.com>
-
- * standalone/mousedrake: fixed embedded
-
- * bootlook.pm: chmoded autologin
-
-2001/04/17 Franēois Pons <fpons@mandrakesoft.com>
-
- * any.pm: restored grub as everything seems fine.
-
- * rescue/tree/etc/oem-server: fixed swap size instead of inst size for
- swap gap.
- make sure kernel will be selected.
-
- * rescue/tree/etc/oem: fixed swap size instead of inst size for swap gap.
- make sure kernel is selected.
-
- * install_steps_interactive.pm: fixed missing mouse update in summary.
-
-2001/04/17 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/rpmsrate: fix 75dpi-fonts bug with MAKEDEV
-
-2001/04/17 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * standalone/draknet: fixed typo
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/sr.po,
- share/po/de.po, share/po/et.po, share/po/tr.po, share/po/eu.po,
- share/po/az.po, share/po/ru.po, share/po/pt_BR.po, share/po/hr.po,
- share/po/ko.po, share/po/nl.po, share/po/ja.po, share/po/wa.po,
- share/po/sv.po, share/po/hu.po, share/po/zh_TW.Big5.po, share/po/it.po,
- share/po/id.po, share/po/pl.po, share/po/fi.po, share/po/no.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/vi.po, share/po/br.po,
- share/po/gl.po, share/po/ca.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/ro.po, share/po/da.po, share/po/cs.po,
- share/po/af.po: Updated Basque file
-
-2001/04/17 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (setRootPassword): better ensure
- 'broadcast' insteaf of overriding
- (setRootPassword): set NIS to broadcast when NIS asked. Empty NIS still
- means no NIS
-
- * any.pm (setupBootloader): remove a warning
-
-2001/04/17 warly
-
- * share/rpmsrate: put MAKEDEV at end of line
-
-2001/04/17 dam's <damien@mandrakesoft.com>
-
- * standalone/mousedrake: fixed embedded
-
- * bootlook.pm: chmoded autologin
-
-2001/04/17 Franēois Pons <fpons@mandrakesoft.com>
-
- * any.pm: restored grub as everything seems fine.
-
- * rescue/tree/etc/oem: fixed swap size instead of inst size for swap gap.
- make sure kernel is selected.
- fixed parted problem.
-
- * rescue/tree/etc/oem-server: fixed swap size instead of inst size for
- swap gap.
- make sure kernel will be selected.
-
- * install_steps_interactive.pm: fixed missing mouse update in summary.
-
-2001/04/17 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/sr.po,
- share/po/de.po, share/po/et.po, share/po/tr.po, share/po/eu.po,
- share/po/az.po, share/po/ru.po, share/po/pt_BR.po, share/po/hr.po,
- share/po/ko.po, share/po/nl.po, share/po/ja.po, share/po/wa.po,
- share/po/sv.po, share/po/hu.po, share/po/zh_TW.Big5.po, share/po/it.po,
- share/po/id.po, share/po/pl.po, share/po/fi.po, share/po/no.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/vi.po, share/po/br.po,
- share/po/gl.po, share/po/ca.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/ro.po, share/po/da.po, share/po/cs.po,
- share/po/af.po: Updated Basque file
-
-2001/04/17 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (setRootPassword): better ensure
- 'broadcast' insteaf of overriding
- (setRootPassword): set NIS to broadcast when NIS asked. Empty NIS still
- means no NIS
-
- * any.pm (setupBootloader): remove a warning
-
-2001/04/17 dam's <damien@mandrakesoft.com>
-
- * bootlook.pm: chmoded autologin
-
-2001/04/17 Franēois Pons <fpons@mandrakesoft.com>
-
- * rescue/tree/etc/oem: fixed swap size instead of inst size for swap gap.
- make sure kernel is selected.
- fixed parted problem.
-
- * rescue/tree/etc/oem-server: fixed swap size instead of inst size for
- swap gap.
- make sure kernel will be selected.
-
-2001/04/17 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (setRootPassword): better ensure
- 'broadcast' insteaf of overriding
- (setRootPassword): set NIS to broadcast when NIS asked. Empty NIS still
- means no NIS
-
- * any.pm (setupBootloader): remove a warning
-
-2001/04/17 dam's <damien@mandrakesoft.com>
-
- * bootlook.pm: chmoded autologin
-
-2001/04/17 Franēois Pons <fpons@mandrakesoft.com>
-
- * rescue/tree/etc/oem: fixed swap size instead of inst size for swap gap.
- make sure kernel is selected.
- fixed parted problem.
-
- * rescue/tree/etc/oem-server: fixed swap size instead of inst size for
- swap gap.
- make sure kernel will be selected.
-
-2001/04/17 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (setRootPassword): set NIS to broadcast
- when NIS asked. Empty NIS still means no NIS
-
- * any.pm (setupBootloader): remove a warning
-
-2001/04/16 dam's <damien@mandrakesoft.com>
-
- * any.pm: removed Grub if Embedded
-
-2001/04/16 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: minor bug.
-
- * any.pm: removed Grub if Embedded
-
-2001/04/16 dam's <damien@mandrakesoft.com>
-
- * standalone/net_monitor: updated
- updated
-
- * network.pm: dhcpd -> dhcpcd
-
- * Xconfigurator.pm: added nice monitor.png
-
- * netconnect.pm: minor bug.
- dhcpd -> dhcpcd
-
- * standalone/draknet: updated
-
- * pixmaps/hori.png, pixmaps/colors.png, pixmaps/wiz_default_left.png,
- pixmaps/tradi.png, pixmaps/categ.png, pixmaps/wiz_default_up.png,
- pixmaps/verti.png, pixmaps/wiz_firewall.png, pixmaps/monitor.png,
- pixmaps/monitor-1280.png, pixmaps/monitor-1024.png, pixmaps/net_c.png,
- pixmaps/wiz_draknet.png, pixmaps/gmon.png, pixmaps/monitor-800.png,
- pixmaps/net_d.png, pixmaps/eth_card_mini.png, pixmaps/wiz_drakgw.png,
- pixmaps/monitor-640.png, pixmaps/colors8.png, pixmaps/colors16.png: plop
- removed for readd in kb
-
- * my_gtk.pm: corrected typo
- added grey fix for contreol-center
-
-2001/04/16 Franēois Pons <fpons@mandrakesoft.com>
-
- * rescue/tree/etc/oem: added missing rio500 in closure.
- finally fixed menu by generating /etc/rpm/macros file.
- added missing LF.
- now fixed menu problems.
- try another fix for RPM_INSTALL_LANG as first fr_FR:fr instead of
- fr:fr_FR.
- really disable server.
- maybe fixed RPM_INSTALL_LANG (from "fr" to "fr:fr_FR" for french).
- fixed to avoid nasty message in wrong places.
- moved warning message around.
- fixed wrong LOCALES"...".
- fixed lang weirdness, fixed minimal size of / partition to be more
- confortable,
- fixed default language for starting DrakX after.
-
- * Xconfig.pm: fixed standalone error for wacom weirdness.
- fixed HASH() in /etc/X11/XF86Config*.
-
- * fs.pm: restored not neccessary to load reiserfs for formating.
- loading reiserfs module before formatting.
-
-2001/04/16 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * pixmaps/monitor-800.png, pixmaps/monitor-1024.png,
- pixmaps/monitor-640.png, pixmaps/monitor-1280.png: add nice shots for
- XFdrake
-
- * mdk-stage1/TECH-INFOS: update doc
-
- * share/po/fr.po: fix minor thing
-
-2001/04/16 Pixel <pixel@mandrakesoft.com>
-
- * share/compssUsers: remove BURNER from Utilities
-
-2001/04/16 warly
-
- * share/rpmsrate: lower portsentry
-
-2001/04/16 dam's <damien@mandrakesoft.com>
-
- * Xconfigurator.pm: added nice monitor.png
-
- * standalone/net_monitor: updated
-
- * pixmaps/hori.png, pixmaps/colors.png, pixmaps/wiz_default_left.png,
- pixmaps/tradi.png, pixmaps/categ.png, pixmaps/wiz_default_up.png,
- pixmaps/verti.png, pixmaps/wiz_firewall.png, pixmaps/monitor.png,
- pixmaps/monitor-1280.png, pixmaps/monitor-1024.png, pixmaps/net_c.png,
- pixmaps/wiz_draknet.png, pixmaps/gmon.png, pixmaps/monitor-800.png,
- pixmaps/net_d.png, pixmaps/eth_card_mini.png, pixmaps/wiz_drakgw.png,
- pixmaps/monitor-640.png, pixmaps/colors8.png, pixmaps/colors16.png: plop
- removed for readd in kb
-
- * my_gtk.pm: corrected typo
- added grey fix for contreol-center
-
-2001/04/16 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfig.pm: fixed standalone error for wacom weirdness.
- fixed HASH() in /etc/X11/XF86Config*.
-
- * rescue/tree/etc/oem: maybe fixed RPM_INSTALL_LANG (from "fr" to
- "fr:fr_FR" for french).
- fixed to avoid nasty message in wrong places.
- moved warning message around.
- fixed wrong LOCALES"...".
- fixed lang weirdness, fixed minimal size of / partition to be more
- confortable,
- fixed default language for starting DrakX after.
-
-2001/04/16 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * pixmaps/monitor-800.png, pixmaps/monitor-1024.png,
- pixmaps/monitor-640.png, pixmaps/monitor-1280.png: add nice shots for
- XFdrake
-
-2001/04/16 Pixel <pixel@mandrakesoft.com>
-
- * share/compssUsers: remove BURNER from Utilities
-
-2001/04/16 warly
-
- * share/rpmsrate: lower portsentry
-
-2001/04/16 dam's <damien@mandrakesoft.com>
-
- * standalone/draknet: bugfix
- added update thread
- corrected bad install package.
- updated expert mode
-
- * network.pm, install_steps.pm: corrected bad install package.
-
- * Xconfigurator.pm: added nice monitor.png
-
- * tinyfirewall.pm: corrected package installation
-
- * standalone/net_monitor: updated
-
- * pixmaps/hori.png, pixmaps/colors.png, pixmaps/wiz_default_left.png,
- pixmaps/tradi.png, pixmaps/categ.png, pixmaps/wiz_default_up.png,
- pixmaps/verti.png, pixmaps/wiz_firewall.png, pixmaps/monitor.png,
- pixmaps/monitor-1280.png, pixmaps/monitor-1024.png, pixmaps/net_c.png,
- pixmaps/wiz_draknet.png, pixmaps/gmon.png, pixmaps/monitor-800.png,
- pixmaps/net_d.png, pixmaps/eth_card_mini.png, pixmaps/wiz_drakgw.png,
- pixmaps/monitor-640.png, pixmaps/colors8.png, pixmaps/colors16.png: plop
- removed for readd in kb
-
- * my_gtk.pm: corrected typo
- added grey fix for contreol-center
-
- * netconnect.pm: debug
- corrected bad install package.
-
-2001/04/16 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfig.pm: fixed standalone error for wacom weirdness.
- fixed HASH() in /etc/X11/XF86Config*.
-
- * rescue/tree/etc/oem: maybe fixed RPM_INSTALL_LANG (from "fr" to
- "fr:fr_FR" for french).
- fixed to avoid nasty message in wrong places.
- moved warning message around.
- fixed wrong LOCALES"...".
- fixed lang weirdness, fixed minimal size of / partition to be more
- confortable,
- fixed default language for starting DrakX after.
-
-2001/04/16 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * pixmaps/monitor-800.png, pixmaps/monitor-1024.png,
- pixmaps/monitor-640.png, pixmaps/monitor-1280.png: add nice shots for
- XFdrake
-
-2001/04/16 Pixel <pixel@mandrakesoft.com>
-
- * share/compssUsers: remove BURNER from Utilities
-
- * install_any.pm (g_auto_install): do not take 'mkbootdisk'
-
-2001/04/16 warly
-
- * share/rpmsrate: lower portsentry
-
-2001/04/15 fabman
-
- * share/po/es.po: updates
-
-2001/04/15 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/po/fr.po: fix minor typo
-
-2001/04/15 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/gl.po: updated Galician file
-
-2001/04/15 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_gtk.pm (reallyChooseGroups): translate path (eg:
- Workstation, Server) to make gg happy
-
-2001/04/15 fabman
-
- * share/po/es.po: updates
-
-2001/04/15 fcrozat
-
- * share/rpmsrate: Add mozilla-mail and mozilla-irc to correct categories
-
-2001/04/15 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/po/fr.po: fix minor typo
-
-2001/04/15 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/sv.po, share/po/ko.po: Updated Swedish and Korean files
-
-2001/04/15 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_gtk.pm (reallyChooseGroups): translate path (eg:
- Workstation, Server) to make gg happy
-
- * printerdrake.pm (main): restore the "Ok" button for the queues
- manipulation
-
- * any.pm (write_passwd_user): fix use of local
-
- * interactive.pm (ask_from_entries_refH_powered_normalize): add an eval
- around "require log" to keep perl from going totally mad (getting things
- like v18.843.482 required--this is only v5.6.0)
-
-2001/04/15 yduret
-
- * bootlook.pm: bug fix: if cancel pressed in lilo/grub choice => return to
- mcc normally
- fix layout & size
-
-2001/04/14 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: corrected isdn detect display
-
- * standalone/net_monitor, standalone/draknet: wait 10 sec, instead of 7
-
-2001/04/14 Franēois Pons <fpons@mandrakesoft.com>
-
- * rescue/tree/etc/oem: changed priority level from 2 to 4 for rate
- selection of packages.
-
- * pkgs.pm: fixed absurd mismatch of use of <=> and cmp on versionCompare.
-
-2001/04/14 Pixel <pixel@mandrakesoft.com>
-
- * pkgs.pm (naughtyServers): add apache
-
- * install_gtk.pm (createXconf): ensure the mouse device is created (mainly
- for auto_inst)
-
- * install_steps_interactive.pm (exitInstall): fix bad i18n of Replay
- button (thx2submarine)
-
-2001/04/14 warly
-
- * share/rpmsrate: lower viavoicemenu to 1 to avoid error message for
- powerpack boxes without ViaVoice
-
-2001/04/14 Franēois Pons <fpons@mandrakesoft.com>
-
- * rescue/tree/etc/oem: changed priority level from 2 to 4 for rate
- selection of packages.
-
- * pkgs.pm: fixed absurd mismatch of use of <=> and cmp on versionCompare.
-
-2001/04/14 Pixel <pixel@mandrakesoft.com>
-
- * lang.pm (load_po): s/!isStandalone/isInstall/ (mainly for XFdrake's
- test)
-
- * Xconfigurator.pm (use vars): fix stew sux
- (testFinalConfig): nicer stderr handling
-
- * interactive_gtk.pm, interactive_newt.pm (exit): fix the exit code
-
-2001/04/14 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_any.pm: fixed to gzip synthesis file.
- safe guard generation of synthesis file.
- fixed umask on urpmi list file and generate synthesis file for each
- hdlist.
-
- * pkgs.pm: fixed absurd mismatch of use of <=> and cmp on versionCompare.
-
-2001/04/14 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (configureX): fix link /etc/gtk (to
- /mnt/etc/gtk) instead of /etc/gtkrc
-
- * any.pm (autologin): spurious messages of chksession -> dave nul
-
- * interactive_newt.pm (exit): fix the exit code
- (wait_message_endW): don't log "none stacked wait-messages" (as a lot of
- them exist...)
- (waitbox): remove spurious '0' in wait_messages
-
- * lang.pm (load_po): s/!isStandalone/isInstall/ (mainly for XFdrake's
- test)
-
- * Xconfigurator.pm (use vars): fix stew sux
- (testFinalConfig): nicer stderr handling
-
- * interactive_gtk.pm (exit): fix the exit code
-
-2001/04/14 warly
-
- * share/compssUsers, share/list, share/rpmsrate: add icons in compssUser
- and list
-
-2001/04/14 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_any.pm: fixed to gzip synthesis file.
- safe guard generation of synthesis file.
- fixed umask on urpmi list file and generate synthesis file for each
- hdlist.
-
-2001/04/14 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (configureX): fix link /etc/gtk (to
- /mnt/etc/gtk) instead of /etc/gtkrc
-
- * any.pm (autologin): spurious messages of chksession -> dave nul
-
- * interactive_newt.pm (exit): fix the exit code
- (wait_message_endW): don't log "none stacked wait-messages" (as a lot of
- them exist...)
- (waitbox): remove spurious '0' in wait_messages
-
- * lang.pm (load_po): s/!isStandalone/isInstall/ (mainly for XFdrake's
- test)
-
- * Xconfigurator.pm (use vars): fix stew sux
- (testFinalConfig): nicer stderr handling
-
- * interactive_gtk.pm (exit): fix the exit code
-
-2001/04/14 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * Xconfigurator_consts.pm, mouse.pm, Xconfigurator.pm: updates to X, mouse
- setup for PPC
-
-2001/04/14 warly
-
- * share/compssUsers, share/list, share/rpmsrate: add icons in compssUser
- and list
-
-2001/04/13 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: net_cnx_up/down xritten in neuneu
-
- * Xconfigurator.pm: corrected
- updated
- updated message
-
- * standalone/draknet: message corrected
-
-2001/04/13 fabman
-
- * share/po/es.po: synchro with EN
-
-2001/04/13 Franēois Pons <fpons@mandrakesoft.com>
-
- * rescue/tree/etc/oem: avoid locking cdrom for oem (compssUsers file still
- opened).
-
-2001/04/13 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/no.po: Updated Norwegian file
- Updated po files
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/sr.po,
- share/po/de.po, share/po/et.po, share/po/tr.po, share/po/eu.po,
- share/po/az.po, share/po/ru.po, share/po/pt_BR.po, share/po/hr.po,
- share/po/ko.po, share/po/nl.po, share/po/ja.po, share/po/wa.po,
- share/po/sv.po, share/po/hu.po, share/po/zh_TW.Big5.po, share/po/it.po,
- share/po/id.po, share/po/pl.po, share/po/fi.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/vi.po, share/po/br.po,
- share/po/gl.po, share/po/ca.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/ro.po, share/po/da.po, share/po/cs.po,
- share/po/af.po: Updated po files
-
-2001/04/13 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator.pm (main): reverse message
-
- * install_steps_gtk.pm (installPackages): hide Details button sooner
- (installPackages): do not show button "Details" when no advertising
-
- * Xconfigurator_consts.pm: do not set XkbVariant "winkeys" for
- ru(winkeys), it is redondant
-
- * interactive_gtk.pm (ask_from_entries_refW): set_default_size width 250
-
- * any.pm (ask_users): do not have an empty icon. better not ask for icon
- if no icon
-
-2001/04/13 siegel
-
- * share/po/de.po: updates
-
-2001/04/13 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: net_cnx_up/down xritten in neuneu
-
- * Xconfigurator.pm: corrected
- updated
- updated message
-
- * standalone/draknet: message corrected
-
-2001/04/13 fabman
-
- * share/po/es.po: synchro with EN
-
-2001/04/13 Franēois Pons <fpons@mandrakesoft.com>
-
- * rescue/tree/etc/oem: avoid locking cdrom for oem (compssUsers file still
- opened).
-
- * install_steps_gtk.pm: avoid illegal modulus zero if no advertizing is
- available.
- fixed very old typo not encountered before;
-
-2001/04/13 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator.pm (main): reverse message
-
- * install_steps_gtk.pm (installPackages): hide Details button sooner
- (installPackages): do not show button "Details" when no advertising
-
- * Xconfigurator_consts.pm: do not set XkbVariant "winkeys" for
- ru(winkeys), it is redondant
-
- * interactive_gtk.pm (ask_from_entries_refW): set_default_size width 250
-
- * any.pm (ask_users): do not have an empty icon. better not ask for icon
- if no icon
-
-2001/04/13 warly
-
- * share/compssUsers: add ssh server in Network Computer Server
-
-2001/04/13 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: net_cnx_up/down xritten in neuneu
-
- * Xconfigurator.pm: corrected
- updated
- updated message
-
- * standalone/draknet: message corrected
-
-2001/04/13 fabman
-
- * share/po/es.po: synchro with EN
-
-2001/04/13 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps_gtk.pm: avoid illegal modulus zero if no advertizing is
- available.
- fixed very old typo not encountered before;
-
-2001/04/13 Pixel <pixel@mandrakesoft.com>
-
- * common.pm (backtrace): created
-
- * install_steps_interactive.pm (addUser): remove the setting of
- $o->{autologin}, now done in any::autologin
-
- * install_steps_gtk.pm (installPackages): hide Details button sooner
- (installPackages): do not show button "Details" when no advertising
-
- * install2.pm (miscellaneous): add setting KEYBOARD=yes in
- /etc/sysconfig/usb as asked by Lord Chmou
-
- * interactive.pm (ask_from_entries_refH_powered_normalize): log the empty
- list instead of dying (for 8.0 only, should be switched back to die)
- (ask_from_listf): display the backtrace when empty list
-
- * any.pm (ask_users): add the empty icon
- (autologin): fix
-
-2001/04/13 warly
-
- * share/compssUsers: add ssh server in Network Computer Server
-
-2001/04/13 dam's <damien@mandrakesoft.com>
-
- * Xconfigurator.pm: updated
- updated message
-
- * netconnect.pm: net_cnx_up/down xritten in neuneu
-
- * standalone/draknet: message corrected
-
-2001/04/13 fabman
-
- * share/po/es.po: synchro with EN
-
-2001/04/13 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps_gtk.pm: avoid illegal modulus zero if no advertizing is
- available.
- fixed very old typo not encountered before;
-
-2001/04/13 Pixel <pixel@mandrakesoft.com>
-
- * common.pm (backtrace): created
-
- * install_steps_interactive.pm (addUser): remove the setting of
- $o->{autologin}, now done in any::autologin
-
- * install2.pm (miscellaneous): add setting KEYBOARD=yes in
- /etc/sysconfig/usb as asked by Lord Chmou
-
- * install_steps_gtk.pm (installPackages): do not show button "Details"
- when no advertising
-
- * interactive.pm (ask_from_entries_refH_powered_normalize): log the empty
- list instead of dying (for 8.0 only, should be switched back to die)
- (ask_from_listf): display the backtrace when empty list
-
- * any.pm (ask_users): add the empty icon
- (autologin): fix
-
-2001/04/13 warly
-
- * share/compssUsers: add ssh server in Network Computer Server
-
-2001/04/13 dam's <damien@mandrakesoft.com>
-
- * Xconfigurator.pm: updated
- updated message
-
- * netconnect.pm: net_cnx_up/down xritten in neuneu
-
- * standalone/draknet: message corrected
-
-2001/04/13 fabman
-
- * share/po/es.po: synchro with EN
-
-2001/04/13 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps_gtk.pm: avoid illegal modulus zero if no advertizing is
- available.
- fixed very old typo not encountered before;
-
-2001/04/13 Pixel <pixel@mandrakesoft.com>
-
- * common.pm (backtrace): created
-
- * install_steps_interactive.pm (addUser): remove the setting of
- $o->{autologin}, now done in any::autologin
-
- * install2.pm (miscellaneous): add setting KEYBOARD=yes in
- /etc/sysconfig/usb as asked by Lord Chmou
-
- * install_steps_gtk.pm (installPackages): do not show button "Details"
- when no advertising
-
- * interactive.pm (ask_from_entries_refH_powered_normalize): log the empty
- list instead of dying (for 8.0 only, should be switched back to die)
- (ask_from_listf): display the backtrace when empty list
-
- * any.pm (ask_users): add the empty icon
- (autologin): fix
-
-2001/04/13 warly
-
- * share/compssUsers: add ssh server in Network Computer Server
-
-2001/04/13 dam's <damien@mandrakesoft.com>
-
- * Xconfigurator.pm: updated
- updated message
-
- * standalone/draknet: message corrected
- updated
-
- * netconnect.pm: net_cnx_up/down xritten in neuneu
-
- * bootlook.pm: embedded = 0 -> local
-
-2001/04/13 fabman
-
- * share/po/es.po: synchro with EN
-
-2001/04/13 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps_gtk.pm: avoid illegal modulus zero if no advertizing is
- available.
- fixed very old typo not encountered before;
-
-2001/04/13 Pixel <pixel@mandrakesoft.com>
-
- * common.pm (backtrace): created
-
- * install_steps_interactive.pm (addUser): remove the setting of
- $o->{autologin}, now done in any::autologin
-
- * install2.pm (miscellaneous): add setting KEYBOARD=yes in
- /etc/sysconfig/usb as asked by Lord Chmou
-
- * install_steps_gtk.pm (installPackages): do not show button "Details"
- when no advertising
-
- * interactive.pm (ask_from_entries_refH_powered_normalize): log the empty
- list instead of dying (for 8.0 only, should be switched back to die)
- (ask_from_listf): display the backtrace when empty list
-
- * any.pm (ask_users): add the empty icon
- (autologin): fix
-
-2001/04/13 warly
-
- * share/compssUsers: add ssh server in Network Computer Server
- add DATABASES to Database
- add icons for server
-
-2001/04/13 dam's <damien@mandrakesoft.com>
-
- * network.pm: updated wireless configuration
-
- * netconnect.pm: corrected loop in isdn + other things
-
- * bootlook.pm: embedded = 0 -> local
-
- * standalone/draknet: updated
- added delete event
-
-2001/04/13 Franēois Pons <fpons@mandrakesoft.com>
-
- * netconnect.pm: fixed syntax error :-)
-
- * install_steps.pm, install_steps_gtk.pm: added conditional update-menus
- if package are installed.
-
- * install_steps_interactive.pm: added conditional update-menus if package
- are installed.
- make sure update-menus is called after installing cups related packages.
-
-2001/04/13 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/hr.po, share/po/fr.po, share/po/sv.po, share/po/hu.po: Updated
- Croatian and Swedish files
-
- * share/po/sl.po, share/po/cy.po, share/po/ca.po, share/po/ga.po,
- share/po/is.po, share/po/cs.po: Removed po files with too low leve lof
- translating ( < 60% )
- so they are not included on final CD
-
-2001/04/13 Pixel <pixel@mandrakesoft.com>
-
- * common.pm (backtrace): created
-
- * install_steps_interactive.pm (addUser): remove the setting of
- $o->{autologin}, now done in any::autologin
-
- * bootlook.pm: don't use Locale::GetText, use DrakX's i18n
-
- * install2.pm (miscellaneous): add setting KEYBOARD=yes in
- /etc/sysconfig/usb as asked by Lord Chmou
-
- * interactive.pm (ask_from_entries_refH_powered_normalize): log the empty
- list instead of dying (for 8.0 only, should be switched back to die)
- (ask_from_listf): display the backtrace when empty list
-
- * my_gtk.pm (new): make dams happy
-
- * any.pm (ask_users): add the empty icon
- (autologin): fix
-
-2001/04/13 warly
-
- * share/compssUsers: add DATABASES to Database
- add icons for server
-
-2001/04/12 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/dhcp.c: remove unnecessary redhat history code
-
-2001/04/12 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_any.pm: fixed wrong kernel version extraction (typically for
- upgrade).
-
- * install_steps_interactive.pm: removed Cancel of Summary.
- fixed ask printer configuration.
-
- * detect_devices.pm: fix Hewlett-Packard to HP in case.
-
- * standalone/printerdrake: never ask to configure a printer in standalone.
-
- * printerdrake.pm: automatically add a queue if nothing exists.
- fixed ask to configure a printer.
-
- * interactive.pm: removed strict die on empty list.
-
- * live_install2: added some gtk and gdk_imlib missing variables.
-
- * live_install: removed gtk variable for data, moved to second script.
-
- * modules.pm, commands.pm, lang.pm, pkgs.pm, keyboard.pm: fixed log of
- packdrake.
-
-2001/04/12 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/dhcp.c: remove unneeded #define
-
- * standalone/drakgw: add some rule so later on tinyfirewall will not
- prevent everything from working
-
- * share/po/fr.po: minor fix
- write some ppc translations
-
-2001/04/12 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/it.po: Updated Italian file
-
-2001/04/12 Pixel <pixel@mandrakesoft.com>
-
- * printer.pm: use run_program and remove "require run_program"s
-
- * my_gtk.pm (main): only accept X (gdk) events key_press, key_release and
- exposure (so
- that not to receive motion_notify which would generate focus_out in
- non-interesting cases)
-
- * interactive.pm (ask_from_entries_refH_powered_normalize): fix the test
- for empty lists
- (ask_from_entries_refH_powered_normalize):
- - when not_edit and empty list, die.
- - when not_edit and single element list, don't display that entry.
-
- * lang.pm (pack_langs): set RPM_INSTALL_LANG for package "menu"
-
- * modules.pm (configure_pcmcia): better handling for not running cardmgr
- many times
- (configure_pcmcia): always run cardmgr so that it is run even if stage1
- did create a /var/run/stab. This is just a try :-/
-
-2001/04/12 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: if neuneu but explicited clicked, don't skip
- corrected pcmcia driver
-
-2001/04/12 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps_interactive.pm: removed Cancel of Summary.
- fixed ask printer configuration.
-
- * common.pm: improved bestMatchSentence2.
-
- * detect_devices.pm: fix Hewlett-Packard to HP in case.
-
- * standalone/printerdrake: never ask to configure a printer in standalone.
-
- * printerdrake.pm: automatically add a queue if nothing exists.
- fixed ask to configure a printer.
-
- * interactive.pm: removed strict die on empty list.
-
- * modules.pm, commands.pm, lang.pm, keyboard.pm, pkgs.pm: fixed log of
- packdrake.
-
-2001/04/12 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * standalone/drakgw: add some rule so later on tinyfirewall will not
- prevent everything from working
-
- * share/po/fr.po: write some ppc translations
- un-dadouize a problem
-
-2001/04/12 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/it.po: Updated Italian file
-
-2001/04/12 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_gtk.pm (installPackages): fix no advertising with less
- than 20MB of packages
-
- * interactive.pm (ask_from_entries_refH_powered_normalize):
- - when not_edit and empty list, die.
- - when not_edit and single element list, don't display that entry.
-
- * install_steps_interactive.pm (configureX): fix for X test at install
- with exotic fonts
-
- * lang.pm (pack_langs): set RPM_INSTALL_LANG for package "menu"
-
- * modules.pm (configure_pcmcia): better handling for not running cardmgr
- many times
- (configure_pcmcia): always run cardmgr so that it is run even if stage1
- did create a /var/run/stab. This is just a try :-/
-
-2001/04/12 dam's <damien@mandrakesoft.com>
-
- * bootlook.pm: corrected typo
- added use bootloader
-
- * standalone/net_monitor: typo
-
- * netconnect.pm: if neuneu but explicited clicked, don't skip
- corrected pcmcia driver
- corrected typo
-
- * lang.pm: pixel sux
-
- * network.pm, standalone/draknet: corrected network connection
-
- * my_gtk.pm: corrected set_modal
-
-2001/04/12 fabman
-
- * share/po/es.po: updated spanish .po files
-
-2001/04/12 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps_interactive.pm: removed Cancel of Summary.
- fixed ask printer configuration.
-
- * common.pm: improved bestMatchSentence2.
-
- * detect_devices.pm: fix Hewlett-Packard to HP in case.
-
- * standalone/printerdrake: never ask to configure a printer in standalone.
-
- * printerdrake.pm: automatically add a queue if nothing exists.
- fixed ask to configure a printer.
-
- * modules.pm, commands.pm, lang.pm, keyboard.pm, pkgs.pm: fixed log of
- packdrake.
-
-2001/04/12 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/po/fr.po: un-dadouize a problem
- sync
-
-2001/04/12 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/sp.po, share/po/fi.po, share/po/DrakX.pot,
- share/po/zh_CN.GB2312.po, share/po/es.po, share/po/fr.po,
- share/po/sr.po, share/po/de.po, share/po/el.po, share/po/et.po,
- share/po/sk.po, share/po/eu.po, share/po/sl.po, share/po/vi.po,
- share/po/ko.po, share/po/eo.po, share/po/ja.po, share/po/wa.po,
- share/po/sv.po, share/po/da.po, share/po/is.po, share/po/zh_TW.Big5.po,
- share/po/id.po: Updated Chinese file
-
- * share/po/it.po: Updated Italian file
- Updated Chinese file
-
-2001/04/12 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_gtk.pm (installPackages): fix no advertising with less
- than 20MB of packages
-
- * interactive.pm (ask_from_entries_refH_powered_normalize):
- - when not_edit and empty list, die.
- - when not_edit and single element list, don't display that entry.
-
- * install_steps_interactive.pm (configureX): fix for X test at install
- with exotic fonts
-
- * lang.pm (pack_langs): set RPM_INSTALL_LANG for package "menu"
-
- * modules.pm (configure_pcmcia): better handling for not running cardmgr
- many times
- (configure_pcmcia): always run cardmgr so that it is run even if stage1
- did create a /var/run/stab. This is just a try :-/
-
-2001/04/12 siegel
-
- * share/po/de.po: new german version
-
-2001/04/12 yduret
-
- * bootlook.pm: added some stuff
-
-2001/04/11 dam's <damien@mandrakesoft.com>
-
- * my_gtk.pm: no setmodal 0 if wizard
-
-2001/04/12 dam's <damien@mandrakesoft.com>
-
- * bootlook.pm: corrected typo
- added use bootloader
-
- * netconnect.pm: corrected typo
-
-2001/04/12 fabman
-
- * share/po/es.po: updated spanish .po files
-
-2001/04/12 siegel
-
- * share/po/de.po: new german version
-
-2001/04/11 dam's <damien@mandrakesoft.com>
-
- * share/themes-mdk.rc: tooltips
-
- * netconnect.pm: updated
-
- * my_gtk.pm: no setmodal 0 if wizard
-
-2001/04/11 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_gtk.pm (reallyChooseGroups): relook
-
- * install_steps_interactive.pm (chooseGroups): warn if chosen size is too
- big
-
- * share/compssUsers: adapt for new profile choosing layout
-
-2001/04/11 yduret
-
- * bootlook.pm: bug fix in autologin
-
-2001/04/11 dam's <damien@mandrakesoft.com>
-
- * share/themes-mdk.rc: tooltips
-
- * bootlook.pm: updated
- corrected
-
- * tinyfirewall.pm: installation of package : not at the same place
-
- * netconnect.pm: updated
- added driver for pcmcia, corrected eth conf for pppoe
-
-2001/04/11 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_any.pm: added missing LD_LOADER for calling rpm.
-
- * printerdrake.pm: fixed probe on kernel 2.4.
- make printer devices more accurate.
- removed limitation to only one port probed
-
- * pkgs.pm: added missing use of LD_LOADER for starting parsehdlist on
- upgrade.
-
- * detect_devices.pm: avoid need of shell for live upgrade on serial_probe
- (removed 2>/dev/null which
- is not necessary).
- fixed printer probe (usb and parallel).
-
- * mouse.pm: fix wacom usb tablet
-
- * standalone/printerdrake: added missing take into account of
- /etc/modules.conf
-
- * lang.pm: added missing LD_LOADER reference and remove old code
- commented.
-
-2001/04/11 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/po/fr.po: unfuzzyize
- sync with new msg in services.pm and compssUsers
- sync with pablo update
- fixes of translations
- write the shitload of untranslated and fuzzy msg
-
- * standalone/tinyfirewall: i18n title
-
- * services.pm: have many more services tooltipped from here so we can get
- translations afterwards
-
- * share/compssUsers: fix typos of rpmsrate groups
-
- * standalone/drakgw: kosmetik
- do i18n for title also
-
-2001/04/11 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/rpmsrate: Added reference to netscape-chinese_big5 file
-
- * share/po/DrakX.pot, share/po/wa.po: Updated Walloon file
- Updated po files
- Updated Slovak, Walloon and Polish files
-
- * share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/de.po,
- share/po/ko.po, share/po/ja.po, share/po/is.po, share/po/zh_TW.Big5.po,
- share/po/it.po, share/po/id.po, share/po/pl.po, share/po/fi.po,
- share/po/zh_CN.GB2312.po, share/po/sk.po, share/po/vi.po,
- share/po/ca.po, share/po/cs.po: Updated po files
- Updated Slovak, Walloon and Polish files
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/ga.po,
- share/po/sr.po, share/po/et.po, share/po/tr.po, share/po/eu.po,
- share/po/az.po, share/po/ru.po, share/po/pt_BR.po, share/po/hr.po,
- share/po/cy.po, share/po/nl.po, share/po/sv.po, share/po/hu.po,
- share/po/no.po, share/po/th.po, share/po/el.po, share/po/lt.po,
- share/po/sl.po, share/po/br.po, share/po/gl.po, share/po/lv.po,
- share/po/uk.po, share/po/eo.po, share/po/ro.po, share/po/da.po,
- share/po/af.po: Updated po files
-
-2001/04/11 Pixel <pixel@mandrakesoft.com>
-
- * run_program.pm (rooted): don't call install_any::check_prog if rooted
-
- * standalone/drakboot: make it work (why was bootloader::install
- commented?)
-
- * share/compssUsers: adapt for new profile choosing layout
-
- * Makefile: take cardmgr-*
-
- * install_steps_interactive.pm (chooseGroups): warn if chosen size is too
- big
- translate the ``path'' in profile selection
-
- * share/po/i18n_compssUsers: relooking
-
- * any.pm (setupBootloader): translate the bootloaders to use
- (setupBootloader): nicer look&feel
-
- * install_any.pm (fsck_option): add a closing ``"'' so that strings to
- i18n extraction works
- (fsck_option): add a closing ``"'' so that strings to i18n extraction
- works
- (check_prog): make it work
-
- * install_steps_gtk.pm (reallyChooseGroups): relook
- (installPackages): pressing "Details" gives you more detailed info
- (reallyChooseGroups): start relooking
- (installPackages): don't display advertising if less 20MB of packages
- translate the ``path'' in profile selection
-
-2001/04/11 warly
-
- * share/compssUsers: Add descr for servers
-
-2001/04/11 Franēois Pons <fpons@mandrakesoft.com>
-
- * printerdrake.pm: make printer devices more accurate.
- removed limitation to only one port probed
-
- * mouse.pm: fix wacom usb tablet
-
- * standalone/printerdrake: added missing take into account of
- /etc/modules.conf
-
- * detect_devices.pm: fixed printer probe (usb and parallel).
-
-2001/04/11 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * services.pm: have many more services tooltipped from here so we can get
- translations afterwards
-
- * share/po/fr.po: write the shitload of untranslated and fuzzy msg
-
- * share/compssUsers: fix typos of rpmsrate groups
-
-2001/04/11 Pixel <pixel@mandrakesoft.com>
-
- * run_program.pm (rooted): don't call install_any::check_prog if rooted
-
- * diskdrake.pm (More): fix exception relaunching
-
- * install_any.pm (check_prog): make it work
-
- * any.pm (setupBootloader): nicer look&feel
-
- * standalone/drakboot: make it work (why was bootloader::install
- commented?)
-
- * Makefile: take cardmgr-*
-
-2001/04/11 fabman
-
- * share/po/es.po: updated spanish .po file
-
-2001/04/11 Franēois Pons <fpons@mandrakesoft.com>
-
- * printerdrake.pm: make printer devices more accurate.
- removed limitation to only one port probed
-
- * mouse.pm: fix wacom usb tablet
-
- * standalone/printerdrake: added missing take into account of
- /etc/modules.conf
-
- * detect_devices.pm: fixed printer probe (usb and parallel).
-
-2001/04/11 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/po/fr.po: write the shitload of untranslated and fuzzy msg
-
-2001/04/11 Pixel <pixel@mandrakesoft.com>
-
- * tools/make_mdkinst_stage2: to lighten mdkinst_stage2:
- - completly remove po's (will be getFile'd)
- - remove LVM progs, resize_reiserfs, big fonts (will be getFile'd)
-
- * standalone/drakboot: make it work (why was bootloader::install
- commented?)
-
- * share/aliases: add rmmod -> insmod_
-
- * lang.pm (get_x_fontset): special cases for some big (size) fonts
-
- * Makefile: take cardmgr-*
-
- * install_any.pm (check_prog): make it work
- (check_prog): if a prog isn't available, try to fetch it via getFile
- (remove_bigseldom_used): created, purpose: remove unneeded stuff on
- stage2
- to allow a getAndSaveFile.
- (getAndSaveFile): if only one arg is given, assume the name is the same
-
- * standalone/XFdrake: fix bug for running xfs
-
- * any.pm (setupBootloader): nicer look&feel
-
- * diskdrake.pm (More): fix exception relaunching
- check resize_reiserfs is there or get it
-
- * run_program.pm (rooted): don't call install_any::check_prog if rooted
- in install, call install_any::check_prog to allow shadow progs which are
- fetched when needed via getFile
-
- * share/list: remove rmmod (is now a symlink)
-
-2001/04/11 siegel
-
- * share/po/de.po: updated german version
-
-2001/04/10 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/ca.po: Updated Catalan file
-
-2001/04/10 Pixel <pixel@mandrakesoft.com>
-
- * Makefile:
- - fix wiz_*.png removing
- - fix copying cardmgr* which included cardmgr.o
-
-2001/04/11 Pixel <pixel@mandrakesoft.com>
-
- * tools/make_mdkinst_stage2: to lighten mdkinst_stage2:
- - completly remove po's (will be getFile'd)
- - remove LVM progs, resize_reiserfs, big fonts (will be getFile'd)
-
- * standalone/XFdrake: fix bug for running xfs
-
- * diskdrake.pm: check resize_reiserfs is there or get it
-
- * share/aliases: add rmmod -> insmod_
-
- * install_any.pm (check_prog): if a prog isn't available, try to fetch it
- via getFile
- (remove_bigseldom_used): created, purpose: remove unneeded stuff on
- stage2
- to allow a getAndSaveFile.
- (getAndSaveFile): if only one arg is given, assume the name is the same
-
- * share/list: remove rmmod (is now a symlink)
-
- * run_program.pm: in install, call install_any::check_prog to allow shadow
- progs which are
- fetched when needed via getFile
-
- * lang.pm (get_x_fontset): special cases for some big (size) fonts
-
-2001/04/10 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: corrected bad network restart
-
- * my_gtk.pm: corrected bad font
-
- * network.pm: get rid of ifcfg-
- minor correction
-
-2001/04/10 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps_interactive.pm: fixed selection of CDs.
-
- * devices.pm: added input/event class of devices (necessary for usb wacom
- at install)
-
-2001/04/10 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/mkinitrd_helper/mkinitrd_helper.c,
- mdk-stage1/mkinitrd_helper/Makefile:
- - honour quiet mode at boot time
- - fake modprobe to shut up kmod
-
- * bootlook.pm: do not use french in i18n'ed msg yvounet!!
-
- * standalone/drakgw: add INTERFACE param in sysconfig parameter for smooth
- interoperation with bastille-firewall
-
-2001/04/10 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/cs.po: Updated Czech file
- Updated po files
-
- * share/po/ko.po, share/po/ja.po, share/po/id.po, share/po/vi.po: Updated
- Indonesian, Japanese, Korean and Vietnamese files
- Updated po files
-
- * share/po/DrakX.pot, share/po/wa.po, share/po/fi.po: Added a missing
- translatable string
- Updated po files
-
- * share/po/ca.po: Updated Catalan file
- Updated po files
-
- * share/locales.tar.bz2: Added missing file for Vietnamese
-
- * share/po/bg.po: Updated Bulgarian file
- Updated po files
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/es.po,
- share/po/fr.po, share/po/ga.po, share/po/sr.po, share/po/de.po,
- share/po/et.po, share/po/tr.po, share/po/eu.po, share/po/az.po,
- share/po/ru.po, share/po/pt_BR.po, share/po/hr.po, share/po/cy.po,
- share/po/nl.po, share/po/sv.po, share/po/is.po, share/po/hu.po,
- share/po/zh_TW.Big5.po, share/po/it.po, share/po/pl.po, share/po/no.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/sl.po, share/po/br.po,
- share/po/gl.po, share/po/lv.po, share/po/uk.po, share/po/eo.po,
- share/po/ro.po, share/po/da.po, share/po/af.po: Updated po files
-
-2001/04/10 Pixel <pixel@mandrakesoft.com>
-
- * interactive_gtk.pm: use gtkset_tip (so that no tip is set when tip eq
- '')
- (create_boxradio): handle double_click
- (ask_from_entries_refW): use radio boxes instead of list/clist if small
- number
- of choices
- (create_ctree): handle single click on node opens the node
-
- * my_gtk.pm: create and use gtkset_tip
- (_create_window): XSetInputFocus done only on expose_event of the
- topmost window
- (new): ensure only one modal
-
- * Xconfigurator.pm (main): have an "Ok" button to leave
-
- * install_steps_gtk.pm: use gtkset_tip
- (choosePackagesTree): fix "Show automatically selected packages"
- create and use gtkset_tip
-
- * Makefile:
- - fix wiz_*.png removing
- - fix copying cardmgr* which included cardmgr.o
-
-2001/04/10 warly
-
- * share/rpmsrate: add viavoicemenu_{us,gr,fe}
-
-2001/04/10 yduret
-
- * bootlook.pm: grub/lilo mode
-
-2001/04/10 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: corrected bad network restart
-
- * my_gtk.pm: corrected bad font
-
- * network.pm: get rid of ifcfg-
- minor correction
-
-2001/04/09 dam's <damien@mandrakesoft.com>
-
- * tinyfirewall.pm: typo
-
-2001/04/09 Pixel <pixel@mandrakesoft.com>
-
- * diskdrake.pm (Create): check for 40MB instead of 32MB for min reiserfs
- size as the check is done before rounding.
-
- * bootloader.pm (install_grub): altconfigfile only if /boot is not
- reiserfs :-/
-
- * tools/make_mdkinst_stage2: fix the stage2 too big (was keeping too many
- modules.cz)
-
- * install_any.pm (setPackages): also have SOUND set in compssUsersChoice
- based on pciusbtable
-
- * share/compssUsers, share/rpmsrate:
- - SOUND is now a flag
- - AUDIO is the group
-
-2001/04/09 siegel
-
- * tinyfirewall.pm: i18n fixes
-
-2001/04/09 Franēois Pons <fpons@mandrakesoft.com>
-
- * rescue/tree/etc/oem: fixes of grub installation using hd.img
- fix the fix for loopback mounting of hd.img.
-
- * Xconfigurator.pm: fixed always 8bpp for autoDefaultDepth.
-
- * pkgs.pm: changed transaction error management this way: if a transaction
- fails, DrakX
- tries to make as many transaction as there are package that have failed
- to be
- installed (this means one transaction of only one package). This help
- installing
- most package that are correct (as a transaction that failed cause all
- remaining
- package to be not installed).
-
-2001/04/09 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/Makefile: 8.0rc -> 8.0
-
- * rescue/tree/etc/oem: fix english thanks to Kevin
-
- * standalone/drakgw: do not die when an initscript returns non-0
- (initscripts too buggy)
-
-2001/04/09 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/cy.po, share/po/nl.po,
- share/po/ja.po, share/po/wa.po, share/po/sv.po, share/po/is.po,
- share/po/hu.po, share/po/zh_TW.Big5.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/fi.po, share/po/no.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/sl.po, share/po/vi.po,
- share/po/br.po, share/po/gl.po, share/po/ca.po, share/po/lv.po,
- share/po/uk.po, share/po/eo.po, share/po/ro.po, share/po/da.po,
- share/po/cs.po, share/po/af.po: Updated Danish file
-
- * any.pm: changed ISO_8859-1 TO ISO-8859-1
-
-2001/04/09 Pixel <pixel@mandrakesoft.com>
-
- * c/stuff.xs.pm, install_steps.pm, any.pm: create to_utf8 from po strings,
- use it for kdm message
-
- * diskdrake.pm (Create): check for 40MB instead of 32MB for min reiserfs
- size as the check is done before rounding.
-
- * bootloader.pm (install_grub): altconfigfile only if /boot is not
- reiserfs :-/
-
- * tools/make_mdkinst_stage2: fix the stage2 too big (was keeping too many
- modules.cz)
-
- * install2.pm (main): sets umask (seems like default one is no more 022,
- kernel change?)
-
- * Xconfigurator_consts.pm, Xconfig.pm, Xconfigurator.pm: handle XkbModel
- (especially for abnt2 (br))
-
- * install_any.pm (setPackages): also have SOUND set in compssUsersChoice
- based on pciusbtable
-
- * share/compssUsers, share/rpmsrate:
- - SOUND is now a flag
- - AUDIO is the group
-
- * lang.pm (load_po): sets $lang::charset to the charset used in the po
-
-2001/04/09 siegel
-
- * share/po/de.po: fixes
-
- * Xconfigurator.pm: fixed i18n bug
-
-2001/04/09 yduret
-
- * standalone/tinyfirewall: button policy (thx gc)
-
- * standalone/drakgw: deyvounification : remove some un-useful comments in
- code
-
-2001/04/09 dam's <damien@mandrakesoft.com>
-
- * tinyfirewall.pm: corrected
-
- * standalone.pm: install function now returns the return value of the
- system.
-
- * netconnect.pm: corrected buggy cable
- removed buggy modem screen repetition
-
-2001/04/09 Franēois Pons <fpons@mandrakesoft.com>
-
- * standalone/mousedrake: fixed mousedrake (with interactive.pm fixes
- applied).
- fixed cancel support.
- added conditional restart of gpm on mouse configuration change.
-
- * fs.pm: removed notail option for reiserfs.
-
- * standalone/keyboarddrake: fixed exit on cancel (should cause trouble in
- DrakConf only).
-
- * install_any.pm: added missing package to copy.
-
- * rescue/tree/etc/oem: fixes of grub installation using hd.img
- fix the fix for loopback mounting of hd.img.
- fixed hd.img access right.
- make kernel22 installed for every oem install...
- moved some package to closure instead of installed.
- added some missing packages.
- added nolock option for nfsmount.
- added missing package to copy.
-
-2001/04/09 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/init.c: fix Traktopel Maxim thanks to Kevin Lawton
-
- * mdk-stage1/Makefile: 8.0beta -> 8.0rc
-
- * standalone/drakgw: fix for when there is an already existing rc.firewall
- complies with old format of drakgw so that upgrades will work
-
- * rescue/tree/etc/oem: fix english thanks to Kevin
-
-2001/04/09 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * any.pm: changed ISO_8859-1 TO ISO-8859-1
-
-2001/04/09 Pixel <pixel@mandrakesoft.com>
-
- * c/stuff.xs.pm, install_steps.pm, any.pm: create to_utf8 from po strings,
- use it for kdm message
-
- * interactive.pm (ask_from_treelistf): make it behaves correctly when
- "cancel" is clicked
-
- * Xconfigurator_consts.pm, Xconfig.pm, Xconfigurator.pm: handle XkbModel
- (especially for abnt2 (br))
-
- * install2.pm (main): sets umask (seems like default one is no more 022,
- kernel change?)
- (main): log the umask
-
- * devices.pm (entry): add hd[ijkl]*
-
- * bootloader.pm (install_lilo): better handling of map-drive (there's not
- always only 2 disks!)
-
- * lang.pm (load_po): sets $lang::charset to the charset used in the po
-
-2001/04/09 siegel
-
- * share/po/de.po: fixes
-
-2001/04/09 yduret
-
- * standalone/drakboot: added lilo/grub
-
- * bootlook.pm: added lilo/grub mode
-
-2001/04/09 dam's <damien@mandrakesoft.com>
-
- * modules.pm: removed use install_any
-
- * tinyfirewall.pm: corrected
-
- * netconnect.pm: corrected buggy cable
- removed buggy modem screen repetition
- corrected bad bug when creating new profile
-
- * standalone.pm: install function now returns the return value of the
- system.
-
- * Makefile: removed install_any
-
-2001/04/09 Franēois Pons <fpons@mandrakesoft.com>
-
- * standalone/mousedrake: fixed mousedrake (with interactive.pm fixes
- applied).
- fixed cancel support.
- added conditional restart of gpm on mouse configuration change.
-
- * rescue/tree/etc/oem: fixed hd.img access right.
- make kernel22 installed for every oem install...
- moved some package to closure instead of installed.
- added some missing packages.
- added nolock option for nfsmount.
- added missing package to copy.
-
- * fs.pm: removed notail option for reiserfs.
-
- * standalone/keyboarddrake: fixed exit on cancel (should cause trouble in
- DrakConf only).
-
- * printer.pm: added Till patch for printer (raw queue and PostScript
- queue).
-
- * install_any.pm: added missing package to copy.
-
-2001/04/09 kjx
-
- * share/po/zh_CN.GB2312.po: translate before 8.0 release
-
-2001/04/09 Pixel <pixel@mandrakesoft.com>
-
- * install2.pm (main): log the umask
-
- * interactive.pm (ask_from_treelistf): make it behaves correctly when
- "cancel" is clicked
-
- * devices.pm (entry): add hd[ijkl]*
-
- * bootloader.pm (install_lilo): better handling of map-drive (there's not
- always only 2 disks!)
-
-2001/04/09 yduret
-
- * bootlook.pm: fix, added lilo/grub frame
- fixed till bug
-
-2001/04/08 dam's <damien@mandrakesoft.com>
-
- * rescue/tree/etc/oem, rescue/tree/etc/closurepkgs, install_any.pm: get
- rid of kisdn
-
- * tinyfirewall.pm: updated
- added package installation
-
- * netconnect.pm: get rid of kisdn
- updated
- no more askwarn in wizard mode
- updated
-
- * standalone/tinyfirewall, standalone/drakgw, my_gtk.pm,
- netconnect_consts.pm: updated
-
- * standalone/net_monitor: removed Data::Dumper
- typo
-
- * standalone/draknet: updated
- typo
- corrected bad isdn field
-
-2001/04/08 daouda
-
- * share/rpmsrate: increase quanta weight .
-
-2001/04/08 fabman
-
- * share/po/es.po: updated spanish .po files
-
-2001/04/08 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * modules.pm: correct my mistakes on removing some modules from stage1 and
- stage2 (-> remove only from stage1)
-
-2001/04/08 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/compssUsers.desktop, standalone/draknet: Fixed some english typos
-
- * standalone/net_monitor, netconnect.pm: Some English changes
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/cy.po, share/po/nl.po,
- share/po/ja.po, share/po/wa.po, share/po/sv.po, share/po/is.po,
- share/po/hu.po, share/po/zh_TW.Big5.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/fi.po, share/po/no.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/sl.po, share/po/vi.po,
- share/po/br.po, share/po/ca.po, share/po/gl.po, share/po/lv.po,
- share/po/uk.po, share/po/eo.po, share/po/ro.po, share/po/da.po,
- share/po/cs.po, share/po/af.po: Fixed some english typos
- Updated pot file and various po files
-
-2001/04/08 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm (write): remove debugging info :-(
-
- * bootloader.pm (suggest): add option "quiet" to the kernel in fb
- (requested by chmou)
-
- * install_steps.pm (afterInstallPackages): remove setting of kde charset
- in kdeglobals (kde is a grown-up now)
-
-2001/04/08 siegel
-
- * share/po/de.po: new german version
- updates
-
-2001/04/07 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: typo
- typo
- net_monitor incorporation
-
- * standalone/net_monitor, Makefile.config: net_monitor incorporation
-
-2001/04/07 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/hr.po: updated Croatian files
-
- * share/po/wa.po, share/po/sr.po, share/po/sp.po, share/po/DrakX.pot,
- share/po/ko.po, share/po/it.po: Updated Korean, Italian, Serbian and
- Walloon files
-
-2001/04/07 warly
-
- * share/compssUsers: PCL-CVS release v2_9_9
- Repository : :ext:warly@cvs.mandrakesoft.com:/home/cvs/cooker
- Working directory: /home/warly/local/share/mdk/gi/perl-install/share/
- In directory .:
- Modified compssUsers
- In directory po:
- patched Up-To-Date po/DrakX.pot
- patched Up-To-Date po/ca.po
- patched Up-To-Date po/de.po
- patched Up-To-Date po/hr.po
- patched Up-To-Date po/id.po
- patched Up-To-Date po/it.po
- patched Up-To-Date po/ja.po
- patched Up-To-Date po/ko.po
- patched Up-To-Date po/sp.po
- patched Up-To-Date po/sr.po
- patched Up-To-Date po/vi.po
- patched Up-To-Date po/wa.po
-
- --------------------- End ---------------------
- -- last cmd: cvs -f update -d -P --
-
- * share/rpmsrate: PCL-CVS release v2_9_9
- Repository : :ext:warly@cvs.mandrakesoft.com:/home/cvs/cooker
- Working directory: /home/warly/local/share/mdk/gi/perl-install/share/
- In directory .:
- Modified rpmsrate
-
- --------------------- End ---------------------
- -- last cmd: cvs -f update -d -P --
-
-2001/04/06 Franēois Pons <fpons@mandrakesoft.com>
-
- * rescue/tree/etc/oem: fixed absence of /boot in install CD for oem stuff.
-
-2001/04/06 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * modules.pm: use jeff's suggestions to remove some old stuff
- Sun Happy Meal only for Sparc
-
- * mdk-stage1/stdio-frontend.c, mdk-stage1/probing.c, mdk-stage1/modules.c:
-
- - do not print warning when we are in AUTOMATIC and insmod failed
- because of file-not-found in mar file (raid cards, etc)
- - print "please include msg from Alt-F3" for this warning message to
- ease further support
- - print pci entry of cards found in te logs
-
- * mdk-stage1/mkinitrd_helper/mkinitrd_helper.c,
- mdk-stage1/mkinitrd_helper/Makefile: steal raid_autorun from rh
-
-2001/04/06 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/ca.po, share/po/id.po: Updated Catalan and Indonesian files
-
- * share/po/ja.po, share/po/vi.po: Updated Japanese and Vietnamese files
-
-2001/04/06 siegel
-
- * share/po/de.po: updates
-
-2001/04/06 yduret
-
- * standalone/drakgw: swap cancel/configure button
-
-2001/04/06 dam's <damien@mandrakesoft.com>
-
- * standalone/draknet2: dead code
-
- * standalone/net_monitor: updated
-
- * netconnect.pm: be quiet
-
-2001/04/06 Franēois Pons <fpons@mandrakesoft.com>
-
- * rescue/tree/etc/oem: fixed absence of /boot in install CD for oem stuff.
- fixed if label does not exists and grub refuse to read.
-
- * install_steps_interactive.pm: fixed typo for cups checking of
- installation.
- fixed "No printer" after configuring cups for remove server.
- added log for CD medium chosen par user.
-
- * pkgs.pm: added killing on child process of transaction that have been
- detached (typically
- with pid > transaction_pid and parent is 1).
-
-2001/04/06 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * standalone/drakgw:
- - correct yvounetification in i18n stuff
- - remove some remaining debugging printings
- - add a bit more of explanations when starting drakgw in wizard mode
-
- * modules.pm: re integrate some TR net cards
-
- * mdk-stage1/stdio-frontend.c, mdk-stage1/probing.c, mdk-stage1/modules.c:
-
- - do not print warning when we are in AUTOMATIC and insmod failed
- because of file-not-found in mar file (raid cards, etc)
- - print "please include msg from Alt-F3" for this warning message to
- ease further support
- - print pci entry of cards found in te logs
-
-2001/04/06 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/cy.po, share/po/nl.po,
- share/po/ja.po, share/po/wa.po, share/po/sv.po, share/po/is.po,
- share/po/hu.po, share/po/zh_TW.Big5.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/fi.po, share/po/no.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/sl.po, share/po/vi.po,
- share/po/br.po, share/po/ca.po, share/po/gl.po, share/po/lv.po,
- share/po/uk.po, share/po/eo.po, share/po/ro.po, share/po/da.po,
- share/po/cs.po, share/po/af.po: Updated Thai file
- Updated pot file
-
-2001/04/06 yduret
-
- * standalone/drakgw: swap cancel/configure button
-
-2001/04/06 dam's <damien@mandrakesoft.com>
-
- * my_gtk.pm: addde tk like routines
-
- * netconnect.pm: be quiet
- correctedInternetAccessTye and ADSLType
-
- * Makefile: iCorrected missing file install_any.pm. pixel sux.
-
- * standalone/draknet2: dead code
-
- * standalone/net_monitor: updated
- updated
- updated
- updated
- updated
- added
-
- * pixmaps/net_d.png, pixmaps/net_c.png: added
-
- * share/logo-mandrake.png: new icon
-
-2001/04/06 Franēois Pons <fpons@mandrakesoft.com>
-
- * rescue/tree/etc/oem: fixed if label does not exists and grub refuse to
- read.
-
- * install_steps_interactive.pm: fixed typo for cups checking of
- installation.
- fixed "No printer" after configuring cups for remove server.
- added log for CD medium chosen par user.
-
- * pkgs.pm: added killing on child process of transaction that have been
- detached (typically
- with pid > transaction_pid and parent is 1).
-
-2001/04/06 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/cy.po, share/po/nl.po,
- share/po/ja.po, share/po/wa.po, share/po/sv.po, share/po/is.po,
- share/po/hu.po, share/po/zh_TW.Big5.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/fi.po, share/po/no.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/sl.po, share/po/vi.po,
- share/po/br.po, share/po/ca.po, share/po/gl.po, share/po/lv.po,
- share/po/uk.po, share/po/eo.po, share/po/ro.po, share/po/da.po,
- share/po/cs.po, share/po/af.po: Updated Thai file
- Updated pot file
-
-2001/04/06 Pixel <pixel@mandrakesoft.com>
-
- * tools/make_mdkinst_stage2: instead of removing modules.cz-2.2*, remove
- every modules.cz except the
- biggest one
-
- * install_steps.pm, fs.pm, install2.pm: create install_any::write_fstab
- and use it
-
- * install_any.pm: add write_fstab
- create install_any::write_fstab and use it
-
-2001/04/06 yduret
-
- * bootlook.pm: minor fix
-
- * standalone/drakgw: recoded a embedded && gtk mode
-
-2001/04/05 Pixel <pixel@mandrakesoft.com>
-
- * lang.pm (fs_options): created (gets codepage and iocharset)
-
- * common.pm (if_): better logging of the error
-
-2001/04/06 Pixel <pixel@mandrakesoft.com>
-
- * tools/make_mdkinst_stage2: instead of removing modules.cz-2.2*, remove
- every modules.cz except the
- biggest one
-
- * install_steps.pm, fs.pm, install2.pm: create install_any::write_fstab
- and use it
-
- * install_any.pm: add write_fstab
- create install_any::write_fstab and use it
-
-2001/04/05 Pixel <pixel@mandrakesoft.com>
-
- * standalone/drakboot:
- - fix getting result of fsedit::hds
- - cleanup
-
- * lang.pm (fs_options): created (gets codepage and iocharset)
-
- * common.pm (if_): better logging of the error
- (getVarsFromSh): fix for AA="" inspired by chmou the Great (but the
- Great
- what?)
-
- * bootloader.pm (install_grub): small fix
- (install_lilo): fix lilo's dumbness (when lilo warns about not the first
- drive, it usually fails)
-
- * diskdrake.pm (More): created, asks for supermount, rescue pt, reload.
-
- * install_steps_interactive.pm (addUser): default autologin to first user
- in beginner
-
-2001/04/05 Pixel <pixel@mandrakesoft.com>
-
- * any.pm (autologin): fix
- ask for autologin
-
- * install_steps_interactive.pm: ask for autologin
- (generateAutoInstFloppy): do not use $o->{pcmcia} to know if pcmcia.img
- was used. Better have a look at /proc/cmdline
-
- * bootloader.pm (install_lilo): fix lilo's dumbness (when lilo warns about
- not the first drive, it usually fails)
-
- * pkgs.pm, share/rpmsrate:
- - s/PCI/HW/
- - add rio500
-
- * install_any.pm (kernelVersion): fix enormous stupid typo
-
- * common.pm (getVarsFromSh): fix for AA="" inspired by chmou the Great
- (but the Great
- what?)
-
- * install_steps.pm (exitInstall): oups, report_bug is no more in
- commands::
-
- * diskdrake.pm (More): created, asks for supermount, rescue pt, reload.
-
-2001/04/05 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_gtk.pm (choosePackagesTree): invert the meaning of 'Show
- automatically selected
- packages' to go along with the new description
-
- * Xconfigurator.pm (write_XF86Config): try to have $_ interpreted
- (otherwise you get things like ``InputDevice "Stylus$_" "AlwaysCore"'')
-
- * install_any.pm (kernelVersion): fix enormous stupid typo
- - move report_bug in install_any
- - g_auto_install generates the auto_inst.cfg string without output'ing
- it
-
- * install_steps.pm (exitInstall): oups, report_bug is no more in
- commands::
- (configureXBefore): fix the xkb verification (was broken for things like
- ``de(nodeadkeys)'')
- - move report_bug in install_any
- - g_auto_install generates the auto_inst.cfg string without output'ing
- it
-
- * any.pm: ask for autologin
-
- * fs.pm (format_reiserfs): quietly format reiserfs
-
- * commands.pm:
- - move report_bug in install_any
- - g_auto_install generates the auto_inst.cfg string without output'ing
- it
-
- * install_steps_interactive.pm: ask for autologin
- (generateAutoInstFloppy): do not use $o->{pcmcia} to know if pcmcia.img
- was used. Better have a look at /proc/cmdline
- - move report_bug in install_any
- - g_auto_install generates the auto_inst.cfg string without output'ing
- it
-
- * share/rpmsrate:
- - add ldetect
- - the default Aurora chose is the categorizing one
-
-2001/04/05 siegel
-
- * share/po/de.po: fixed typo
-
-2001/04/05 yduret
-
- * bootlook.pm: fix pablo mess
- install autolgin just if we want to autolog :)
-
-2001/04/05 dam's <damien@mandrakesoft.com>
-
- * ChangeLog, bootloader.pm: readded passwd. Must verify that it's secure
- vs msec.
-
- * my_gtk.pm: added gtksize
-
-2001/04/05 fcrozat
-
- * share/rpmsrate: No longer propose nautilus-mozilla (required by
- nautilus)
- propose nautilus-trilobite (for Eazel services)
-
-2001/04/05 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_gtk.pm (choosePackagesTree): invert the meaning of 'Show
- automatically selected
- packages' to go along with the new description
-
- * commands.pm, install_steps_interactive.pm, install_any.pm:
- - move report_bug in install_any
- - g_auto_install generates the auto_inst.cfg string without output'ing
- it
-
- * fs.pm (format_reiserfs): quietly format reiserfs
-
- * Xconfigurator.pm (write_XF86Config): try to have $_ interpreted
- (otherwise you get things like ``InputDevice "Stylus$_" "AlwaysCore"'')
-
- * share/rpmsrate:
- - add ldetect
- - the default Aurora chose is the categorizing one
-
- * install_steps.pm (configureXBefore): fix the xkb verification (was
- broken for things like ``de(nodeadkeys)'')
- - move report_bug in install_any
- - g_auto_install generates the auto_inst.cfg string without output'ing
- it
-
-2001/04/05 siegel
-
- * share/po/de.po: fixed typo
-
-2001/04/05 yduret
-
- * bootlook.pm: fix pablo mess
- install autolgin just if we want to autolog :)
-
-2001/04/04 Frederic Lepied <flepied@mandrakesoft.com>
-
- * share/rpmsrate: added SCANNER and PHOTO groups
-
-2001/04/04 Franēois Pons <fpons@mandrakesoft.com>
-
- * printerdrake.pm: make sure to insmod parport_probe alone as it is not
- available in 2.4 kernel and
- this this not a problem (silent error).
- added complete callback to check queue name under cups does contains
- only letters, numerics or underscore.
-
- * install_steps_interactive.pm: fixed printer description in summary.
-
- * install2.pm: added selectPackagesToUpgrade the first time choosePackages
- is called.
-
- * Xconfigurator.pm: removed limitation to 24 bits for SiS card, make sure
- to remove 32 bits depth
- for such card.
-
- * detect_devices.pm: fixed parport probe for printer under 2.4 kernel.
-
- * diskdrake.pm: fixed adding 1 to size for resize2fs, causing a corruption
- some times.
-
- * printer.pm: added die on error of lpadmin.
-
- * install_any.pm: fixed multiple wait message (looking+finding packages)
-
-2001/04/04 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/sk.po, share/po/az.po: Updated Azeri and Slovak files
-
-2001/04/04 Pixel <pixel@mandrakesoft.com>
-
- * modules.pm (tv): add ultracam & usbvideo
- (@skip_modules_on_stage1): kaweth and pegasus doesn't work on stage1, so
- skip them
- (@skip_modules_on_stage1): kaweth and pegasus doesn't work on stage1, so
- skip them
-
- * install_any.pm (kernelVersion): cleanup
-
-2001/04/04 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * install_any.pm: kernelVersion mods for PPC
-
-2001/04/04 daouda
-
- * share/rpmsrate: add gatos for ati tv card .
-
-2001/04/04 Frederic Lepied <flepied@mandrakesoft.com>
-
- * share/rpmsrate: added SCANNER and PHOTO groups
-
-2001/04/04 Franēois Pons <fpons@mandrakesoft.com>
-
- * live_install: unset locale environment for safety
-
- * detect_devices.pm: added missing LD_LOADER reference for /bin/dmesg
- (needed for live upgrade so
- that error message are not printed)
-
- * diskdrake.pm: fixed adding 1 to size for resize2fs, causing a corruption
- some times.
-
- * install_steps_gtk.pm: fixed to use SHARE_PATH instead of /usr/share
-
- * any.pm, netconnect.pm: use SHARE_PATH instead of /usr/share
-
- * install2.pm: added selectPackagesToUpgrade the first time choosePackages
- is called.
-
- * install_any.pm: fixed multiple wait message (looking+finding packages)
-
-2001/04/04 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm (setPackages): better handling for tv, photo and scanner
-
- * modules.pm (@skip_modules_on_stage1): kaweth and pegasus doesn't work on
- stage1, so skip them
- - add photo, tv and scanner
- - add pegasus and kaweth modules
-
-2001/04/04 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: typo
-
-2001/04/04 daouda
-
- * share/rpmsrate: add gatos for ati tv card .
- reput klyx but in lower weight (2)
- removed klyx from rpmsrate (bad idea according to pixel )
- add klyx in install "Office KDE"
-
-2001/04/04 Franēois Pons <fpons@mandrakesoft.com>
-
- * live_install: unset locale environment for safety
-
- * detect_devices.pm: added missing LD_LOADER reference for /bin/dmesg
- (needed for live upgrade so
- that error message are not printed)
-
- * install_steps_gtk.pm: fixed to use SHARE_PATH instead of /usr/share
-
- * any.pm, netconnect.pm: use SHARE_PATH instead of /usr/share
-
- * install2.pm: added selectPackagesToUpgrade the first time choosePackages
- is called.
-
- * install_steps.pm: disable frame buffer for Matrox cards.
-
- * install_any.pm: fixed multiple wait message (looking+finding packages)
-
-2001/04/04 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm (setPackages): better handling for tv, photo and scanner
-
- * modules.pm (@skip_modules_on_stage1): kaweth and pegasus doesn't work on
- stage1, so skip them
- - add photo, tv and scanner
- - add pegasus and kaweth modules
-
- * share/compssUsers: remove TV (it is a hardware flag)
-
-2001/04/03 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_any.pm: keep mount point configuration trhough multi-passes of
- diskdrake and others.
-
- * Xconfigurator.pm: prefer XF3 for SiS card.
-
-2001/04/03 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/sr.po, share/po/sp.po, share/po/ko.po: Updated Korean file
-
-2001/04/03 Pixel <pixel@mandrakesoft.com>
-
- * diskdrake.pm: do not use isSpecial which should only be used on
- partitions
- (main): do not have loopback pseudo hd in hds out of diskdrake
-
- * modules.pm (load_raw): add the require install_any
-
- * share/rpmsrate: restore Aurora (i really don't understand what i've done
- with flag AURORA a month ago) to a simple behaviour
-
- * install_steps_interactive.pm (choosePackages): do not make a special
- case for upgrades (was: select the
- min size, which was on contradiction with profile selection)
-
- * fs.pm (real_format_part): give "-v 1" to mkreiserfs if kernel is 2.2
-
- * standalone/mousedrake: fix horrible error (using an undefined $o)
-
- * share/list: add back mkreiserfs
-
- * standalone/XFdrake: don't start xfs if skiptest
-
- * fsedit.pm (get_fstab): restore loopback::loopbacks because hds contains
- only true
- hard drives (not pseudo one like raid, loopback and lvm)
-
- * bootloader.pm (suggest): trap strange error. Should not really fix the
- pb
-
- * install_steps.pm (setupBootloaderBefore): nicer Aurora presence
- detetection
-
- * lang.pm (charset): fix for chineese which have charset in the name
-
- * Makefile: no more special case for mkreiserfs (can be done via -v 1)
-
- * install_steps_gtk.pm (choosePackagesTree): better name than "Automatic
- dependencies"
-
- * install_any.pm (setPackages): don't preselect profiles in upgrade
- (setPackages): handle Flag:<theflag>
- (setPackages): install kernel22 if install kernel is a 2.2
-
- * lvm.pm (get_lvs): remove the setting of flag isFormatted which was wrong
- (didn't
- propose to format it)
- protect the loading of module lvm-mod
-
-2001/04/03 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * install_steps_interactive.pm, mouse.pm: PPC keyboard/mouse button
- emulation
-
-2001/04/03 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: a lot of bugfixs
- corrected bad flag test
- corrected bad priority
-
- * standalone/draknet: typo
- bug fixes
- removed debugging messages and Data::Dumper
- corrected bad flag test
-
-2001/04/03 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/vi.po, share/po/DrakX.pot: Updated Vietnamese file
-
-2001/04/03 Pixel <pixel@mandrakesoft.com>
-
- * modules.pm (load_raw): add the require install_any
-
- * share/rpmsrate: restore Aurora (i really don't understand what i've done
- with flag AURORA a month ago) to a simple behaviour
-
- * lang.pm (charset): fix for chineese which have charset in the name
-
- * install_steps.pm (setupBootloaderBefore): nicer Aurora presence
- detetection
-
- * Makefile: no more special case for mkreiserfs (can be done via -v 1)
-
- * install_steps_interactive.pm (choosePackages): do not make a special
- case for upgrades (was: select the
- min size, which was on contradiction with profile selection)
-
- * fs.pm (real_format_part): give "-v 1" to mkreiserfs if kernel is 2.2
-
- * install_steps_gtk.pm (choosePackagesTree): better name than "Automatic
- dependencies"
-
- * install_any.pm (setPackages): don't preselect profiles in upgrade
- (setPackages): handle Flag:<theflag>
- (setPackages): install kernel22 if install kernel is a 2.2
-
- * share/list: add back mkreiserfs
-
- * standalone/XFdrake: don't start xfs if skiptest
-
- * lvm.pm (get_lvs): remove the setting of flag isFormatted which was wrong
- (didn't
- propose to format it)
- protect the loading of module lvm-mod
-
-2001/04/02 dam's <damien@mandrakesoft.com>
-
- * modules.pm: corrected petite's mistake
-
- * netconnect.pm: protecting against non existent files
-
-2001/04/02 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/make_boot_img, mdk-stage1/.cvsignore: fix
- comply to all.kernels policy
-
- * tools/make_mdkinst_stage2: fix remove of alternate cz modules
-
-2001/04/02 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/cs.po: Updated Czech file
-
- * lang.pm: codepage option to mount requires only numeric values, eg "437"
- and not "cp437"
- Changed accordingly in the lists
-
- * share/rpmsrate: Install latin2 Postscript fonts for latin2 locales,
- install fonts-ttf-thai for Thai locale
-
-2001/04/02 Pixel <pixel@mandrakesoft.com>
-
- * c/Makefile: small cleanup for pcmcia_probe.c
-
- * tools/Makefile (install): s/-r/-rf/
-
- * install_any.pm (setPackages): s/reiserfs-utils/reiserfsprogs/
- (setPackages): install imwheel if nbuttons > 3
-
- * c/Makefile.PL: small cleanup for pcmcia_probe.c
- don't use pcmcia_probe.o from stage1, better compile it here, otherwise
- perl-install require mdk-stage1 to do compiled => circular dependency
-
- * Makefile: ignore dams or at least dams errors
-
- * c/.cvsignore: add pcmcia_probe.c
-
-2001/04/02 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * rescue/make_rescue_img: fix pixelization (aka take advantage of
- all.kernels/.main)
-
-2001/04/02 Pixel <pixel@mandrakesoft.com>
-
- * tools/Makefile (install): s/-r/-rf/
-
-2001/03/30 Pixel <pixel@mandrakesoft.com>
-
- * tools/Makefile (install): fix the globbing for packdrake.pm and
- rpmtools.pm
-
-2001/03/29 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * rescue/drvinst: test for "Card:" and not install, some videoboards are
- not reported as DISPLAY_VGA :-(
-
- * tools/make_mdkinst_stage2, docs/HACKING, rescue/make_rescue_img,
- mdk-stage1/pci-resource/update-pci-ids.pl, docs/README: support more
- than one boot kernel :-)
-
- * rescue/list.i386: add reiserfsck
-
-2001/03/29 dam's <damien@mandrakesoft.com>
-
- * tinyfirewall.pm: bad message at the end if kernel2.4
-
- * netconnect.pm: added missing Device in Ethx when saving/loading
-
- * standalone/draknet: translation
-
-2001/03/28 dam's <damien@mandrakesoft.com>
-
- * standalone/tinyfirewall: typo
-
- * interactive_gtk.pm: corrected pixel shit if embedded
-
- * standalone/draksec: embedded mode
-
- * standalone/draknet: corrected gtkpng in gtkwpm
- added translation
-
- * bootlook.pm: cute button box
-
- * tinyfirewall.pm: workaround to make it work if kernel 2.4
-
-2001/03/28 fcrozat
-
- * share/rpmsrate: gmc is back in standard GNOME install, for people with
- existing home
-
-2001/03/28 Franēois Pons <fpons@mandrakesoft.com>
-
- * standalone/mousedrake, mouse.pm, standalone/XFdrake: fixed for
- standalone XFdrake and mousedrake (multi-mouse and
- correct probe (USB)).
-
- * Xconfig.pm: re-fix mouse fix.
- fixed wrong mouse probe.
- fixed for standalone XFdrake and mousedrake (multi-mouse and
- correct probe (USB)).
-
- * Xconfigurator.pm: restore multi mouse support for XF3.
-
-2001/03/28 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/hr.po, share/po/ca.po, share/po/tr.po: Updated Catalan, Danish,
- Finnish, Croatian and Turkish files
-
- * share/po/sk.po, share/po/ko.po: Updated Finnish, Korean and Slovak files
-
- * share/po/az.po: Updated Azeri and Danish files
-
- * share/po/fi.po: Updated Catalan, Danish, Finnish, Croatian and Turkish
- files
- Updated Finnish, Korean and Slovak files
-
- * share/po/da.po: Updated Catalan, Danish, Finnish, Croatian and Turkish
- files
- Updated Azeri and Danish files
-
-2001/03/28 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm: add fstab in the log
-
- * interactive_gtk.pm: better default_size setting
-
- * commands.pm: fix typo
- add fstab in the log
-
- * install_gtk.pm (test_mouse): ensure the test mouse is not too big
-
-2001/03/28 warly
-
- * share/rpmsrate: add some commercial apps
-
-2001/03/27 dam's <damien@mandrakesoft.com>
-
- * bootlook.pm: added kill USR2 before main
-
- * share/help.png: changed help button
-
- * share/help.xpm: changed help
-
- * tinyfirewall.pm: workaround to make it xork.
-
-2001/03/27 Franēois Pons <fpons@mandrakesoft.com>
-
- * mdk-stage1/init-data/msgboot-graphicallogo.img.bz2: update boot image.
-
- * Xconfigurator.pm: fixed mouse support for XF3, only one mouse supported
- currently.
-
-2001/03/27 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/nfsmount.c: force 8192 bytes for nfs transfers
-
-2001/03/27 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/i18n_compssUsers, share/po/vi.po, share/po/fi.po,
- share/po/br.po, share/po/DrakX.pot, share/po/ko.po, share/po/ja.po,
- share/po/wa.po, share/po/de.po, share/po/id.po: Updated Vietnamese,
- Indonesian, Japanese, Korean and Walloon files
- changed i18n_compssUsers to make "path" i18n'able
-
-2001/03/27 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm: warnAboutNaughtyServers
- (setPackages): default profiles selection to GNOME, KDE, CONFIG
-
- * install_steps_interactive.pm: warnAboutNaughtyServers
- (summary): fix displaying of printer configured
-
- * pkgs.pm: warnAboutNaughtyServers
-
- * install_steps_gtk.pm (installPackages): catch the no png file exception
- (in case warly is dumb again)
-
- * my_gtk.pm: try to fix displaying in draksec
- (create_box_with_title): save the box_size in field "box_size"
-
- * install2.pm, any.pm: remove use of Bastille. get back to the good state
- we had :)
-
- * interactive_gtk.pm: try to fix displaying in draksec
-
- * share/rpmsrate: move back Bastille-Curses-module to CONFIG
- - cleanup LOCALES"zh_*": when there is LOCALES"zh_*", there is
- LOCALES"zh"
- - raise WindowMaker
- - add xfce
- - am-utils is a server
- - raise some stuff in CONFIG to have stuff there
- - remove drakxtools from CONFIG (DrakConf requires drakxtools)
- - DrakConf from 5 to 4
-
- * lang.pm (langsLANGUAGE): give the list of languages
-
-2001/03/27 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * install_steps_interactive.pm: change verbage on bootloader warning
-
-2001/03/27 siegel
-
- * share/po/de.po: minor typo-fixes
-
-2001/03/27 dam's <damien@mandrakesoft.com>
-
- * share/help.png: changed help button
-
- * share/help.xpm: changed help
-
-2001/03/27 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps.pm, pkgs.pm: fixed too early erasing of old rpmlib db. now
- postponed at end of install
- and only if rpm-4.0 or above has been installed.
-
- * mdk-stage1/init-data/msgboot-graphicallogo.img.bz2: update boot image.
-
- * Xconfigurator_consts.pm, mouse.pm, Xconfigurator.pm, Xconfig.pm: added
- support for two mice (laptop). The second mice is generally PS/2 as
- probe can says it is present.
-
-2001/03/27 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/nfsmount.c: force 8192 bytes for nfs transfers
-
-2001/03/27 Pixel <pixel@mandrakesoft.com>
-
- * any.pm, install2.pm: remove use of Bastille. get back to the good state
- we had :)
-
- * install_any.pm: warnAboutNaughtyServers
- (setPackages): default profiles selection to GNOME, KDE, CONFIG
-
- * share/rpmsrate: move back Bastille-Curses-module to CONFIG
- - cleanup LOCALES"zh_*": when there is LOCALES"zh_*", there is
- LOCALES"zh"
- - raise WindowMaker
- - add xfce
- - am-utils is a server
- - raise some stuff in CONFIG to have stuff there
- - remove drakxtools from CONFIG (DrakConf requires drakxtools)
- - DrakConf from 5 to 4
-
- * install_steps_interactive.pm: warnAboutNaughtyServers
- (summary): fix displaying of printer configured
-
- * lang.pm (langsLANGUAGE): give the list of languages
-
- * pkgs.pm: warnAboutNaughtyServers
-
- * install_steps_gtk.pm (installPackages): catch the no png file exception
- (in case warly is dumb again)
-
-2001/03/27 siegel
-
- * share/po/i18n_compssUsers: i18n group names
-
- * share/po/de.po: minor typo-fixes
- new german version
-
-2001/03/26 daouda
-
- * share/rpmsrate: add mandrake_desk and rootfiles to SYSTEM (rpmsrate)
-
-2001/03/26 fcrozat
-
- * share/rpmsrate: Install xscreensaver when installing GNOME
-
-2001/03/26 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * standalone/drakgw: first attempt at pixelization of code (till's cups
- patches)
-
-2001/03/26 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/hr.po, share/po/wa.po: Updated Croatian, vietnamese and Walloon
- files
-
- * share/po/vi.po: Updated Croatian, vietnamese and Walloon files
- Updated Portuguese, Swedish and Thai files
-
- * share/po/pt.po, share/po/th.po, share/po/es.po, share/po/de.po,
- share/po/sv.po: Updated Portuguese, Swedish and Thai files
-
-2001/03/25 Pixel <pixel@mandrakesoft.com>
-
- * http.pm (getFile): verify the return value of the server. If not 200
- (aka Ok),
- return undef
-
- * install_steps_interactive.pm (configurePrinter): add Mesa-common for xpp
- and libqtcups2 for kups in
- pkg_install_if_requires_satisfied
-
-2001/03/25 siegel
-
- * share/po/de.po: new german version
-
-2001/03/25 fabman
-
- * share/po/es.po: updated spanish .po file
-
-2001/03/25 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/ko.po: Updated Korean file
-
- * share/po/sv.po: Updated Swedish file
-
-2001/03/25 Pixel <pixel@mandrakesoft.com>
-
- * http.pm (getFile): verify the return value of the server. If not 200
- (aka Ok),
- return undef
-
- * install_steps_interactive.pm (configurePrinter): add Mesa-common for xpp
- and libqtcups2 for kups in
- pkg_install_if_requires_satisfied
-
- * any.pm (ask_users): fix dead-loop
-
- * bootloader.pm (suggest): add entry for nt
-
-2001/03/25 siegel
-
- * share/po/de.po: new german version
-
-2001/03/24 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/vi.po: Updated Vietnamese file
-
-2001/03/24 Pixel <pixel@mandrakesoft.com>
-
- * mdk-stage1/pci-resource/update-pci-ids.pl: remove the "use common" which
- is unneeded (and "member" of merge2pcitable
- was clashing)
-
- * any.pm (ask_users): when "Done" is pressed, do "Accept User" if a user
- is given.
-
- * install_steps.pm (addUser): disable_user_view (in kdm/gdm) if no users
-
- * install_any.pm (disable_user_view): created, takes care of gdm too
- (taken from msec)
-
- * mouse.pm (detect): fix francois... uh, no too hard. easier to fix
- francois's bugs ;pp
-
- * timezone.pm (%l2t): fix for fuzzyChoice
-
- * share/keyboards.tar.bz2:
- - readding with -kb
- - fixing permissions on xmodmap.kr
- remove before adding again with -kb
-
- * modules.pm: have natsemi in network.img
-
-2001/03/24 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/cy.po, share/po/nl.po,
- share/po/ja.po, share/po/wa.po, share/po/sv.po, share/po/is.po,
- share/po/hu.po, share/po/zh_TW.Big5.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/fi.po, share/po/no.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/sl.po, share/po/vi.po,
- share/po/br.po, share/po/ca.po, share/po/gl.po, share/po/lv.po,
- share/po/uk.po, share/po/eo.po, share/po/ro.po, share/po/da.po,
- share/po/cs.po, share/po/af.po: Updated Azeri file
-
-2001/03/24 Pixel <pixel@mandrakesoft.com>
-
- * mouse.pm (detect): fix francois... uh, no too hard. easier to fix
- francois's bugs ;pp
-
- * timezone.pm (%l2t): fix for fuzzyChoice
-
- * modules.pm:
- - add missing modules (now in sync with pcitable)
- - add 'media' class
- - cleanup
-
-2001/03/24 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/cy.po, share/po/nl.po,
- share/po/ja.po, share/po/wa.po, share/po/sv.po, share/po/is.po,
- share/po/hu.po, share/po/zh_TW.Big5.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/fi.po, share/po/no.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/sl.po, share/po/vi.po,
- share/po/br.po, share/po/ca.po, share/po/gl.po, share/po/lv.po,
- share/po/uk.po, share/po/eo.po, share/po/ro.po, share/po/da.po,
- share/po/cs.po, share/po/af.po: Updated Azeri file
-
-2001/03/24 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm (copy_advertising): fix escaping $f causing perl to
- segfault :-(
- (copy_advertising): handle i18n'ed advertising
-
- * pkgs.pm: cleanup
-
- * modules.pm:
- - add missing modules (now in sync with pcitable)
- - add 'media' class
- - cleanup
-
-2001/03/24 dam's <damien@mandrakesoft.com>
-
- * tinyfirewall.pm: corrected bad exited. reincorporated some ugly code,
- need fixing
-
-2001/03/24 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm (copy_advertising): handle i18n'ed advertising
-
- * modules.pm (read_stage1_conf): cleanup parport stuff obsolote in kernel
- 2.4
-
-2001/03/23 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: fixed screen id for Device to be present whenever the
- same BusID is used.
- added multiple tablet support (wacom), moved usb probe for mouse and
- tablet
- at the beginning.
-
- * printerdrake.pm: Do not ask to configure a printer if standalone,
- previously only for embended.
-
- * Xconfig.pm: fixed typo for wacom.
- added multiple tablet support (wacom), moved usb probe for mouse and
- tablet
- at the beginning.
-
- * mouse.pm, detect_devices.pm, install_steps_gtk.pm, install2.pm: added
- multiple tablet support (wacom), moved usb probe for mouse and tablet
- at the beginning.
-
-2001/03/23 Pixel <pixel@mandrakesoft.com>
-
- * interactive.pm (ask_from_listf_no_check): fix the fix fix fix
- (ask_from_listf_no_check): fix the fix fix
-
- * common.pm (formatError): created
-
- * network.pm (configureNetworkIntf): gray "IP address" and "Netmask" in
- DHCP/BOOTP
-
- * diskdrake.pm (try): format the error (no more "at line ...")
- (Add2LVM): "new" was not i18n'ed
-
- * install_steps_interactive.pm (exitInstall): no "cancel" button
-
- * partition_table.pm: add Empty to bad_types
-
- * fsedit.pm (change_type): When changing a partition type from ext2fs to
- Linux RAID
- (or LVM), the mount point should be removed.
-
-2001/03/23 siegel
-
- * share/po/de.po: new german version
-
-2001/03/23 dam's <damien@mandrakesoft.com>
-
- * tinyfirewall.pm: corrected bad translation
- correctedd typo
- updated
- code cleaning
- tinyfirewall now works.
-
- * Makefile.config: added tinyfirewall
-
- * any.pm, mouse.pm: added /dev/modem in modem list selection
-
- * standalone/drakxconf: added tinyfirewall entry
-
- * standalone/tinyfirewall: added update code
- updated wrapper to launch tinyfirewall in embedded mode
-
- * netconnect.pm: added /dev/modem in modem list selection
- netconnect doesn't write the file 1
-
-2001/03/23 fcrozat
-
- * share/rpmsrate: nautilus-mozilla and xalf are installed by default in
- GNOME
- gmc is not installed by default in GNOME
- gabber gaim are moved to instant messaging
- gcombust in moved to GNOME CD burner
- gtm is installed by GNOME/File transfer
- mozilla is installed by default as www browser
- galeon is installed by default as www browser for GNOME
-
-2001/03/23 Franēois Pons <fpons@mandrakesoft.com>
-
- * tools/syncrpms: added size-stamp test to copy identical file in version,
- release.
-
- * Xconfig.pm: fixed typo for wacom.
- added multiple tablet support (wacom), moved usb probe for mouse and
- tablet
- at the beginning.
-
- * Xconfigurator.pm: added multiple tablet support (wacom), moved usb probe
- for mouse and tablet
- at the beginning.
- fixed wrong usage of Screen keyword in Device section, should be present
- and
- reseted for any multi head card with only one BusID.
-
- * mouse.pm, detect_devices.pm, install_steps_gtk.pm, install2.pm: added
- multiple tablet support (wacom), moved usb probe for mouse and tablet
- at the beginning.
-
-2001/03/23 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/es.po, share/po/de.po, share/po/fi.po: Added Vietnamese file
- Updated Finnish file
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/fr.po, share/po/bg.po, share/po/ga.po, share/po/sr.po,
- share/po/et.po, share/po/tr.po, share/po/eu.po, share/po/az.po,
- share/po/ru.po, share/po/pt_BR.po, share/po/hr.po, share/po/ko.po,
- share/po/cy.po, share/po/nl.po, share/po/ja.po, share/po/wa.po,
- share/po/is.po, share/po/hu.po, share/po/zh_TW.Big5.po, share/po/it.po,
- share/po/id.po, share/po/pl.po, share/po/no.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/sl.po, share/po/vi.po,
- share/po/br.po, share/po/ca.po, share/po/gl.po, share/po/lv.po,
- share/po/uk.po, share/po/eo.po, share/po/ro.po, share/po/da.po,
- share/po/cs.po, share/po/af.po: Added Vietnamese file
-
-2001/03/23 Pixel <pixel@mandrakesoft.com>
-
- * any.pm: ifix the dams stuff
-
- * install_steps_interactive.pm (exitInstall): no "cancel" button
-
- * share/po/i18n_compssUsers: fix for better compliance with po format
-
- * netconnect.pm: ifix the dams stuff
- cleanup and enable gzip'ed isdn.db
-
- * Makefile: gzip ldetect-lst files
-
- * modules.pm: add i810_audio (still need a script to add missing one and
- keep in sync)
-
- * bootloader.pm (suggest_floppy): don't add an entry for non-fd0 drives
-
- * interactive.pm (ask_from_listf_no_check): fix the fix fix fix
- (ask_from_listf_no_check): fix the fix fix
- (ask_from_listf_no_check): fix the bad fix
-
- * common.pm (formatError): created
- (openFileMaybeCompressed, catMaybeCompressed): added
- (getVarsFromSh): take care of comments
-
- * network.pm (configureNetworkIntf): gray "IP address" and "Netmask" in
- DHCP/BOOTP
-
- * partition_table.pm: add Empty to bad_types
-
- * mouse.pm (detect): never probe psaux (workaround for kernel/xfree bug)
-
- * fsedit.pm (change_type): When changing a partition type from ext2fs to
- Linux RAID
- (or LVM), the mount point should be removed.
-
- * detect_devices.pm (isUSBFDUDrive, usbfdus): removed, doesn't scale
- (isFloppyOrHD): floppy type is 'fd', not 'floppy'
- (stringlist): nicer (a la new lspcidrake)
-
- * Xconfigurator.pm: enable use of gzip'ed Cards+, CardsNames and
- MonitorsDB
-
- * diskdrake.pm (try): format the error (no more "at line ...")
- (Add2LVM): "new" was not i18n'ed
-
-2001/03/23 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * mouse.pm, bootloader.pm: mods to create/move image, to /export for PPC,
- use vmlinux for PPC
- prepend of_dev to initrd stanza in yaboot.conf
- add 1-button mouse for PPC
-
-2001/03/23 siegel
-
- * share/po/de.po: new german version
-
-2001/03/22 Chmouel Boudjnah <chmouel@mandrakesoft.com>
-
- * tools/i386/netboot/stage1.rtl8139, tools/i386/netboot/stage2.rtl8139:
- Add 8139 grub stage.
-
-2001/03/22 dam's <damien@mandrakesoft.com>
-
- * bootlook.pm: corrected mapn
-
- * standalone/draknet: removed use Data::Dumper
-
- * netconnect.pm: removed mail informat oin
- comment update
-
- * tinyfirewall.pm: removed use Data::Dumper
- working on tinyfirewall
-
-2001/03/22 fabman
-
- * share/po/es.po: changed "swap" for "intercambio" in the spanish .po
- files
- updated DrakX, menudrake and urpmi es.po files
-
-2001/03/22 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: fixed wrong access to undefined value promoted to
- empty array reference.
-
-2001/03/22 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/probing.c, mdk-stage1/tools.h:
- - fix detection of more than 3 scsi attached devices
- - cleaner code for cmp of ptr against static strings
-
-2001/03/22 Pixel <pixel@mandrakesoft.com>
-
- * standalone/mousedrake: remove test ugliness of dams
-
- * c/Makefile.PL: no pcmcia_probe in drakxtools
-
- * modules.pm (load_thiskind): indent as it should be
-
- * install_steps_interactive.pm (generateAutoInstFloppy): fix the message
- which was uptodate only for
- sparc :-(
-
- * Xconfigurator.pm: no need for "use Data::Dumper;"
-
-2001/03/22 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * modules.pm: no imm,ppa PPC, scan mesh,mac53c94 scsi only, pmac should
- have been mace
-
-2001/03/22 yduret
-
- * bootlook.pm: mapn works tx dams
- nmap
- added mapn fun to reduce code.. testing it
- added install of rpm
- xpm png files
-
- * pixmaps/hori.png, pixmaps/gmon.png, pixmaps/tradi.png, pixmaps/hori.xpm,
- pixmaps/verti.png, pixmaps/gmon.xpm, pixmaps/tradi.xpm,
- pixmaps/verti.xpm: convert xpm to png
-
-2001/03/21 dam's <damien@mandrakesoft.com>
-
- * standalone/tinyfirewall, tinyfirewall.pm: new tinyfirewall conf tool
-
- * netconnect.pm: corrected /etc/sysconfig/network-scripts/net_up.* bug
-
-2001/03/21 Franēois Pons <fpons@mandrakesoft.com>
-
- * detect_devices.pm: added pci id reference.
-
- * c/stuff.xs.pm: added support for pci id extraction.
-
- * Xconfigurator.pm: fixed wrong XFree4 version reference.
- fixed null string in monitor identifier.
- added multi-head support in XFdrake.
-
-2001/03/21 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * standalone/drakgw: honour embedded mode
-
- * share/compssUsers: move NETWORKING_FILE (contains stuff for nfs
- mounting..) from Internet
- Station to Network Computer
-
-2001/03/21 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/pt.po, share/po/DrakX.pot, share/po/es.po,
- share/po/fr.po, share/po/bg.po, share/po/ga.po, share/po/de.po,
- share/po/et.po, share/po/tr.po, share/po/eu.po, share/po/ru.po,
- share/po/pt_BR.po, share/po/hr.po, share/po/ko.po, share/po/cy.po,
- share/po/nl.po, share/po/ja.po, share/po/wa.po, share/po/sv.po,
- share/po/is.po, share/po/hu.po, share/po/zh_TW.Big5.po, share/po/it.po,
- share/po/id.po, share/po/pl.po, share/po/fi.po, share/po/no.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- share/po/lt.po, share/po/sl.po, share/po/br.po, share/po/ca.po,
- share/po/gl.po, share/po/lv.po, share/po/uk.po, share/po/eo.po,
- share/po/ro.po, share/po/da.po, share/po/cs.po, share/po/af.po: Updated
- Croatian and Serbian files
-
- * share/po/sp.po, share/po/sr.po: Updated Serbian files
- Updated Croatian and Serbian files
-
- * share/po/az.po: Updated Azeri file
- Updated Croatian and Serbian files
-
- * share/po/sk.po: Updated Azeri and Slovak files
- Updated Croatian and Serbian files
-
- * lang.pm: Added fields to charsets table holding info for mount
- (iocharset and
- codepage mount options)
-
-2001/03/21 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm (g_default_packages): nice warning if mount in vfat fails
-
- * share/rpmsrate: move webmin to CONFIG
- remove ipchains and iptables, raise gfcc
-
- * docs/README: add cvs howto
-
- * install_steps_interactive.pm (summary): fix
-
- * detect_devices.pm: old code
-
- * bootloader.pm (install_lilo): ensure labels don't contain spaces, lilo
- doesn't like them
- (add_kernel): cleanup
- (suggest): make it work with kernel22-secure and no kernel22
-
- * modules.pm (when_load): move the alias sound to when_load, don't check
- ppc as it
- could be used for non-ppc
- (load_thiskind): fix pb causing imm,ppa,usb-storage to be tested for
- every
- load_thiskind, not only scsi one
-
- * c/stuff.xs.pm (from_utf8): as pablo said...
-
-2001/03/21 siegel
-
- * share/po/de.po: new german version
- new german version
-
-2001/03/20 Pixel <pixel@mandrakesoft.com>
-
- * modules.pm (@drivers_by_category): if_ization
- (load_thiskind): cleanup
-
-2001/03/21 Pixel <pixel@mandrakesoft.com>
-
- * bootloader.pm (add_kernel): cleanup
- (suggest): make it work with kernel22-secure and no kernel22
-
- * share/rpmsrate: remove ipchains and iptables, raise gfcc
-
-2001/03/20 dam's <damien@mandrakesoft.com>
-
- * interactive.pm: no wizard if warning
-
-2001/03/20 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm: fix pcmcia functions only on x86
- - create install_any::unselectMostPackages
- - use it instead of pkgs::unselectAllPackages (otherwise
- default_packages ends up non-selected)
-
- * modules.pm (@drivers_by_category): if_ization
- (load_thiskind): cleanup
-
- * any.pm, install2.pm, share/rpmsrate: use bastille backend
-
- * c/stuff.xs.pm, c/Makefile.PL: fix pcmcia functions only on x86
-
- * install_steps.pm, install_any.pm:
- - create install_any::unselectMostPackages
- - use it instead of pkgs::unselectAllPackages (otherwise
- default_packages ends up non-selected)
-
-2001/03/20 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * modules.pm, install_steps_interactive.pm, any.pm: make_boot_img: add
- routine for - PPC
- any.pm: double "Append" entry in expert mode for yaboot.conf - PPC
- install_steps_interactive: setup dmasound - PPC
- modules.pm: load Mac hardware modules - PPC
-
-2001/03/20 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: corrected bug in reading resolv.conf, and changed chmod
- for net_cnx_*
-
- * interactive.pm: no wizard if warning
-
- * standalone/draknet: added update after {dis}connecting
-
-2001/03/20 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * diskdrake.pm: fix formatting of raid
-
-2001/03/20 Pixel <pixel@mandrakesoft.com>
-
- * share/rpmsrate: use bastille backend
- - add nautilus
-
- * install_steps_interactive.pm: fix pcmcia functions only on x86
- - create install_any::unselectMostPackages
- - use it instead of pkgs::unselectAllPackages (otherwise
- default_packages ends up non-selected)
- (setupSCSI): don't pcmcia_probe if testing
- - tellAboutProprietaryModules moved to setupSCSI
- - miscellaneous step re-enabled, called Security
- - pcmcia_probe moved to setupSCSI, skipped in noauto
-
- * any.pm: use bastille backend
-
- * install2.pm: use bastille backend
- - tellAboutProprietaryModules moved to setupSCSI
- - miscellaneous step re-enabled, called Security
- - pcmcia_probe moved to setupSCSI, skipped in noauto
- have pcmcia_probe in stage2 (for non pcmcia.img, stage1 doesn't give the
- parameter any more)
-
- * netconnect.pm (modem_detect_backend): cleanup
-
- * c/stuff.xs.pm, c/Makefile.PL: fix pcmcia functions only on x86
- have pcmcia_probe in stage2 (for non pcmcia.img, stage1 doesn't give the
- parameter any more)
-
- * Makefile: install cardmgr
-
- * install_any.pm:
- - create install_any::unselectMostPackages
- - use it instead of pkgs::unselectAllPackages (otherwise
- default_packages ends up non-selected)
- (setPackages): install usbd in case of usb
-
- * install_steps.pm:
- - create install_any::unselectMostPackages
- - use it instead of pkgs::unselectAllPackages (otherwise
- default_packages ends up non-selected)
-
-2001/03/20 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * any.pm, netconnect.pm, detect_devices.pm: any.pm: enable module load PPC
- detect_devices.pm: forgot to remove commented code after test
- netconnect.pm: load macserial module for PPC
-
-2001/03/20 dam's <damien@mandrakesoft.com>
-
- * standalone/draknet, netconnect.pm: improved connection windows, and
- loading / saving of /etc/sysconfig/network-scripot/netčcnx*
-
-2001/03/20 Pixel <pixel@mandrakesoft.com>
-
- * share/rpmsrate:
- - add nautilus
-
- * install_any.pm (setPackages): install usbd in case of usb
-
- * Makefile: install cardmgr
-
-2001/03/19 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * fsedit.pm: fix loopback appearing twice in format partition
-
- * diskdrake.pm: fix "loopback" name of loopback tab in diskdrake
-
-2001/03/19 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/ko.po: updated korean file
- Updated po files
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/cy.po, share/po/nl.po, share/po/ja.po,
- share/po/wa.po, share/po/sv.po, share/po/is.po, share/po/hu.po,
- share/po/zh_TW.Big5.po, share/po/it.po, share/po/id.po, share/po/pl.po,
- share/po/fi.po, share/po/no.po, share/po/zh_CN.GB2312.po,
- share/po/th.po, share/po/el.po, share/po/sk.po, share/po/lt.po,
- share/po/sl.po, share/po/br.po, share/po/ca.po, share/po/gl.po,
- share/po/lv.po, share/po/uk.po, share/po/eo.po, share/po/ro.po,
- share/po/da.po, share/po/cs.po, share/po/af.po: Updated po files
-
-2001/03/19 Pixel <pixel@mandrakesoft.com>
-
- * pkgs.pm (computeGroupSize): fix hacks, better hacks
- (saveCompssUsers): fix
-
- * install_steps_interactive.pm (chooseGroups):
- - make the computed size work
- - unselectAll when a profile is unselected
-
- * interactive_gtk.pm (ask_from_entries_refW): better sizing in case of
- scrolls
-
-2001/03/19 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * mdk-stage1/stage1.c: stage1.c: fix for rescue image PPC
-
-2001/03/19 dam's <damien@mandrakesoft.com>
-
- * standalone/draknet: corrected graphical layout for newbies
-
- * netconnect.pm: added net_cnx_{up, down} save
-
-2001/03/19 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/ko.po: updated korean file
- Updated po files
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/cy.po, share/po/nl.po, share/po/ja.po,
- share/po/wa.po, share/po/sv.po, share/po/is.po, share/po/hu.po,
- share/po/zh_TW.Big5.po, share/po/it.po, share/po/id.po, share/po/pl.po,
- share/po/fi.po, share/po/no.po, share/po/zh_CN.GB2312.po,
- share/po/th.po, share/po/el.po, share/po/sk.po, share/po/lt.po,
- share/po/sl.po, share/po/br.po, share/po/ca.po, share/po/gl.po,
- share/po/lv.po, share/po/uk.po, share/po/eo.po, share/po/ro.po,
- share/po/da.po, share/po/cs.po, share/po/af.po: Updated po files
-
-2001/03/19 Pixel <pixel@mandrakesoft.com>
-
- * pkgs.pm (computeGroupSize): fix hacks, better hacks
- (saveCompssUsers): fix
-
- * share/rpmsrate:
- - add rxvt-CJK
- - exchange xterm and rxvt
- - move bc from SCIENCES to SYSTEM
-
- * interactive_newt.pm (ask_from_entries_refW):
- - ensure the width is less than $width - 7 (in french and 80x25, the
- treelist was too big)
- - if term is very big, use 10 lines instead of 5
- - if no button is asked, but one in any case otherwise it's buggy
-
- * install_steps_interactive.pm (chooseGroups):
- - make the computed size work
- - unselectAll when a profile is unselected
-
- * interactive.pm (ask_from_listf_no_check): fix fix
- (ask_from_listf_no_check): fix the filtering of exceptions
-
-2001/03/19 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * mdk-stage1/stage1.c: stage1.c: fix for rescue image PPC
-
-2001/03/18 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/lomount.h, mdk-stage1/lomount.c, mdk-stage1/disk.c: fix for
- hd-install when you provide a not valid ISO (cd #2 for example)
-
- * mdk-stage1/frontend.h, mdk-stage1/minilibc.h, mdk-stage1/stage1.h,
- mdk-stage1/log.h: use some help with __attribute__
-
-2001/03/17 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * rescue/tree/etc/rc.sysinit: load sr_mod and sd_mod at startup
-
- * mdk-stage1/Makefile.mkinitrd_helper, mdk-stage1/.cvsignore: sync
-
- * mdk-stage1/stdio-frontend.c: handle left and right arrow keys, in
- editing ask_from_entries in stdio mode
-
- * mdk-stage1/pci-resource/Makefile: do not use marfiles for deps
-
-2001/03/17 Pixel <pixel@mandrakesoft.com>
-
- * lang.pm (write_langs): in case of empty %_install_langs, don't write it
-
- * install_steps.pm (pkg_install_if_requires_satisfied): better logging
-
- * share/rpmsrate: add gpm & evolution
-
-2001/03/17 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/insmod-busybox/utility.c: fix insmod calling realloc(0,0) to
- work with dietlibc
-
- * mdk-stage1/insmod-busybox/Makefile: also build standalone insmod-DIET
- for testing purposes..
-
- * mdk-stage1/mkinitrd_helper/Makefile: bump version to 1.0.1 for new
- mkinitrd package release
-
- * mdk-stage1/stdio-frontend.c: handle left and right arrow keys, in
- editing ask_from_entries in stdio mode
-
-2001/03/17 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/sv.po: updated Swedish file
-
- * share/keyboards.tar.bz2: Added a Korean keyboard, fixed bug in Japanese
- keyboard
-
- * keyboard.pm: Added choice of Korean keyboard
-
-2001/03/17 Pixel <pixel@mandrakesoft.com>
-
- * lang.pm (write_langs): in case of empty %_install_langs, don't write it
-
- * install_steps.pm (pkg_install_if_requires_satisfied): better logging
-
- * share/rpmsrate: add gpm & evolution
-
-2001/03/16 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/pci-resource/Makefile: refine deps
-
- * mdk-stage1/mkinitrd_helper/mkinitrd_helper.c, mdk-stage1/Makefile,
- mdk-stage1/mkinitrd_helper/Makefile: write down mkinitrd_helper
-
- * mdk-stage1/insmod-busybox/insmod.c: force load
-
-2001/03/16 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm (setPackages): set flag "TV" when bttv hardware is there
-
- * share/compssUsers, share/rpmsrate: move out TV from VIDEO
-
- * diskdrake.pm (Type): fix the code verifying size >32 for reiserfs
-
- * modules.pm (write_conf): better logging
-
- * c/stuff.xs.pm: add from_utf8
-
- * c/stuff.pm (headerGetEntry): use from_utf8 on group, summary and
- description
-
-2001/03/16 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * tools/ppc/magic, tools/ppc/mkhybrid-1.12b5.4, tools/ppc/convert,
- tools/ppc/yaboot, tools/ppc/mapping: gi/tools/ppc/convert, magic,
- mapping, mkhybrid-1.12b5.4, yaboot - re-add - my bad
- gi/tools/ppc/convert, magic, mapping, mkhybrid-1.12b5.4, yaboot -
- remove/re-add - did not use -kb switch - thx Pixel
-
-2001/03/15 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: SiS card are no more prefered for XF3.
- added standalone support to prefer XF3 or XF4 to
- keep current used server version.
-
- * standalone/XFdrake: remove duplicate begin label.
- take care of existing configuration.
-
-2001/03/15 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * modules.pm: skip dc395x_trm on stage1
- dc395x_trm is back in 2.4
-
- * share/compssUsers: try to enhance
-
-2001/03/15 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/az.po: updated Azeri file
-
-2001/03/15 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator_consts.pm, Xconfigurator.pm: andre@node1583e.a2000.nl says
- this is not needed anymore :)
-
-2001/03/15 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * tools/ppc/magic, tools/ppc/convert, tools/ppc/iboot,
- tools/ppc/mkINSTALLCD, tools/ppc/mkhybrid-1.12b5.4, tools/ppc/yaboot,
- tools/ppc/mapping: gi/tools/ppc/convert, magic, mapping, mkINSTALLCD,
- mkhybrid-1.12b5.4, yaboot: create PPC CD
-
- * install_steps_interactive.pm, detect_devices.pm, bootloader.pm:
- bootloader.pm, detect_devices.pm, install_steps_interactive.pm: changed
- temporary file read/write per Pixel
-
- * Xconfigurator.pm: force 1024x768 on Powerbook
-
- * tools/ppc/README: README: README for creating PPC boot CD
-
-2001/03/14 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: changed label + profile before types..
-
-2001/03/14 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po,
- share/po/i18n_compssUsers, share/po/DrakX.pot, share/po/es.po,
- share/po/fr.po, share/po/bg.po, share/po/ga.po, share/po/sr.po,
- share/po/de.po, share/po/et.po, share/po/tr.po, share/po/eu.po,
- share/po/az.po, share/po/ru.po, share/po/pt_BR.po, share/po/hr.po,
- share/po/ko.po, share/po/cy.po, share/po/nl.po, share/po/ja.po,
- share/po/wa.po, share/po/sv.po, share/po/is.po, share/po/hu.po,
- share/po/zh_TW.Big5.po, share/po/it.po, share/po/id.po, share/po/pl.po,
- share/po/fi.po, share/po/no.po, share/po/zh_CN.GB2312.po,
- share/po/th.po, share/po/el.po, share/po/Changelog, share/po/sk.po,
- share/po/lt.po, share/po/sl.po, share/po/br.po, share/po/ca.po,
- share/po/gl.po, share/po/lv.po, share/po/uk.po, share/po/eo.po,
- share/po/ro.po, share/po/da.po, share/po/cs.po, share/po/af.po:
- corrected the script and updated po files
-
-2001/03/14 Pixel <pixel@mandrakesoft.com>
-
- * share/compssUsers: keep only one Development entry
-
- * install_steps_gtk.pm, pkgs.pm: fix the compssUsers interpretation
-
- * bootlook.pm: fix for perl2fcalls
-
- * install_steps_interactive.pm (chooseGroups): disable the size display as
- it is wrong (for the beta2)
-
-2001/03/14 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * install_steps_interactive.pm, install_steps_gtk.pm,
- partition_table_mac.pm, bootloader.pm: fix bootstrap partition
- creation/tracking
- allow Xpmac to launch in 2 modes based on cmdline
-
-2001/03/14 siegel
-
- * share/po/de.po: new german version
-
-2001/03/14 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: changed label + profile before types..
-
-2001/03/14 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: fixed unselect management of choice, propagate unselection
- correctly to all
- packages requiring unselected package.
-
- * install_any.pm: use LD_LOADER when invoking parshedlist.
-
-2001/03/14 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/no.po, share/po/nl.po: updated Norwegian file
-
- * share/locales.tar.bz2, share/gconv.tar.bz2, share/list,
- share/fonts.tar.bz2: new fonts and locale files
-
- * share/po/ko.po: Fixed email of Korean translator
- updated Korean file
-
- * install_steps_interactive.pm, install_gtk.pm, lang.pm, keyboard.pm:
- completed language list
- completed language->keyboard guessing list
- aesthetic changes to an English message (removed \n and let gtk+
- do the formatting, it is nicer)
-
- * share/po/az.po: Updated Azeri file
-
-2001/03/14 Pixel <pixel@mandrakesoft.com>
-
- * pkgs.pm: fix the compssUsers interpretation
- (readCompssUsers): change the key of compssUsers, added "label"
- (computeGroupSize): fix bug
- (computeGroupSize): fix logging
-
- * share/gconv.tar.bz2: moved to share/list
-
- * bootlook.pm: fix for perl2fcalls
-
- * share/rpmsrate: CLIENT & SERVER is prohibited
-
- * timezone.pm:
- - add many timezones
- - defaults to GMT
- - verifier added
-
- * install_steps_gtk.pm: fix the compssUsers interpretation
- (choosePackagesTree): fix
-
- * common.pm (bestMatchSentence, bestMatchSentence2): in wantarray, return
- the number
- of matched words/characters
-
- * share/compssUsers: keep only one Development entry
- CLIENT & SERVER is prohibited
-
- * install_steps_interactive.pm (chooseGroups): disable the size display as
- it is wrong (for the beta2)
- (chooseGroups): add path for seperating groups, use "label" for the
- group text
-
- * Makefile: remove gconv
-
-2001/03/13 siegel
-
- * share/po/de.po: Fixed typos.
-
-2001/03/13 siegel
-
- * share/po/de.po: Fixed typos.
-
-2001/03/13 dam's <damien@mandrakesoft.com>
-
- * share/help.png: changed
-
-2001/03/13 Pixel <pixel@mandrakesoft.com>
-
- * install2.pm, install_steps_gtk.pm: compss is deprecated. use compssUsers
- for the tree
-
- * standalone/drakgw: pixelization
-
- * share/rpmsrate: HDF can't be at the beginning of the line or it will be
- taken as a flag
- moved icewm to SYSTEM with !KDE !GNOME
-
- * pkgs.pm: compss is deprecated. use compssUsers for the tree
- (readCompssUsers): get the "path"
-
- * install_steps.pm: compss is deprecated. use compssUsers for the tree
- renamef created and used
-
- * detect_devices.pm (burners): don't use cdroms() which return scdX for
- ide burners, and
- isBurner don't use the same technique. so use get() and grep for type
- "cdrom"
-
- * install_any.pm: compss is deprecated. use compssUsers for the tree
- (setPackages): set {compssUsersChoice}{PCMCIA} if hasPCMCIA
- renamef created and used
-
- * install_steps_interactive.pm: compss is deprecated. use compssUsers for
- the tree
- (chooseGroups): fix to get back the icons
- (chooseGroups): size computed should work
-
- * common.pm: renamef created and used
-
-2001/03/13 siegel
-
- * share/po/de.po: new german translation
-
-2001/03/13 warly
-
- * share/compssUsers: fix {W,w}orkstation
- remove ^Server and ^Development
-
-2001/03/13 Pixel <pixel@mandrakesoft.com>
-
- * standalone/drakgw: pixelization
-
- * install_steps_interactive.pm (chooseGroups): size computed should work
-
- * share/rpmsrate: moved icewm to SYSTEM with !KDE !GNOME
-
- * install_steps.pm, common.pm, install_any.pm: renamef created and used
-
-2001/03/12 dam's <damien@mandrakesoft.com>
-
- * Makefile: removed wizard pixmap from install
-
- * pixmaps/wiz_internet.png, pixmaps/wiz_internet_left.png: updated
- added pixmap for wizard
-
- * my_gtk.pm: new wizard layout, with pixmaps.
- added ugly workaround for ugly Hseparator
-
- * share/step-red.png, share/step-orange.png, share/step-orange-click.png,
- share/step-green-click.png, share/step-green.png, share/step-red-on.png,
- share/step-orange-on.png, share/step-green-on.png,
- share/step-green_s.png, share/step-red-click.png: removing bad png
- files...
-
- * share/help.png: new help button. blah
-
- * install_any.pm: typo
-
- * pixmaps/wiz_default_left.png, pixmaps/wiz_default_up.png: updated
-
- * netconnect.pm: corrected askokcancel -> askyesorno
-
- * interactive.pm: corrected bad okcanel in wizard mode
-
- * install_steps_interactive.pm: added $::isInstall
-
- * share/logo-mandrake_trans.png: new logo for other themes
-
- * services.pm: removed use Data::Dumper
- corrected bug in display
-
-2001/03/12 Franēois Pons <fpons@mandrakesoft.com>
-
- * modules.pm, lang.pm, commands.pm, detect_devices.pm, pkgs.pm,
- live_install2: fixed live update between GLIBC 2.1 and GLIBC 2.2. should
- work for other
- combination but not tested. fixed locale usage and gtk environment
- interaction (added LOCPATH, GCONV_PATH and GTK_EXE_PREFIX).
- created LD_LOADER environment variable to keep track of right ELF loader
- to be used for the GLIBC used by the live update. added internal PATH
- to LD_LIBRARY_PATH as ELF loader only check this one and not PATH.
-
-2001/03/12 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * standalone/drakgw:
- - make it work as a wizard
- - make it work with iptables (kernel-2.4)
-
- * modules.pm: reflect Jeff Garzik's answers to my questions on kernel@
-
-2001/03/12 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/DrakX.pot, share/po/zh_CN.GB2312.po,
- share/po/th.po, share/po/bg.po, share/po/de.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/br.po, share/po/ca.po,
- share/po/cy.po, share/po/uk.po, share/po/wa.po, share/po/da.po,
- share/po/cs.po, share/po/zh_TW.Big5.po, share/po/af.po: Updated Basque
- file
-
-2001/03/12 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm (afterInstallPackages): save the compssUsers flattened
- for rpmdrake
-
- * install_steps_interactive.pm (summary): remove 'clicked' (labels are
- used)
- put everything in %compssUsers, use field flags for the flags :)
-
- * pkgs.pm (computeGroupSize): log what is found
- (saveCompssUsers): make it work
- (readCompssUsers): clean-up
- (saveCompssUsers): created
- put everything in %compssUsers, use field flags for the flags :)
- (computeGroupSize): created
-
- * share/rpmsrate: lower Zope (anyway Zope is not in main)
-
- * fsedit.pm (hds): search for existing lvm in @hds *and* @lvms
-
- * commands.pm (loadkeys): created
-
- * install_any.pm (setPackages): don't readCompssUsers with $o->{packages}
- (setPackages): kernel-secure doesn't exist anymore, use kernel22-secure.
- don't use kernel-secure as a kernel-smp.
- put everything in %compssUsers, use field flags for the flags :)
- (setPackages): set compssUsersChoice "3D" if 3D enabled graphic card
-
- * interactive_gtk.pm (ask_from_entries_refW): add $set for "label" entries
- add "label" type
-
- * share/compssUsers: change the path format
-
- * detect_devices.pm (get_mac_model): fix for perl2fcalls
-
- * interactive.pm: add "label" type
-
-2001/03/12 warly
-
- * share/compssUsers: add some NETWORKING_* that were empty
- dispach some DEVELOPMENT and SERVER to more appropriate groups
- added path
-
- * share/rpmsrate: add some NETWORKING_* that were empty
- dispach some DEVELOPMENT and SERVER to more appropriate groups
-
-2001/03/11 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * ftp.pm: do not retry on 550 file unavailable
-
-2001/03/12 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm (setPackages): set compssUsersChoice "3D" if 3D enabled
- graphic card
-
-2001/03/11 dam's <damien@mandrakesoft.com>
-
- * services.pm: no more restart button
-
-2001/03/11 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * ftp.pm: do not retry on 550 file unavailable
-
-2001/03/11 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (summary): fix clicked empty handler
-
- * share/rpmsrate:
- - lower tftp-server
- - a lot of modifs (thanks to Prana)
-
-2001/03/10 dam's <damien@mandrakesoft.com>
-
- * standalone/drakxservices: embedded mode
-
- * my_gtk.pm: added gtkset_border_width
- typo again
- typo
- added gtkmove
- added gtkset_modal and gtkappenditems
-
- * services.pm: fixed big bug.
- imajor improvement.
- improved.
-
-2001/03/10 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/cy.po, share/po/nl.po,
- share/po/ja.po, share/po/wa.po, share/po/sv.po, share/po/is.po,
- share/po/hu.po, share/po/zh_TW.Big5.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/fi.po, share/po/no.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/sl.po, share/po/br.po,
- share/po/ca.po, share/po/gl.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/ro.po, share/po/da.po, share/po/cs.po,
- share/po/af.po: updated Korean file
-
-2001/03/09 dam's <damien@mandrakesoft.com>
-
- * standalone/drakxconf: added harddrake
-
- * my_gtk.pm: applied gtkradio
- created create_boxradio
- in wizard mode : list -> radio buttons
- added gtkradio
-
- * bootlook.pm: workaround for the graphical layout.
-
- * install_steps_gtk.pm: applied gtkradio
- created create_boxradio
- in wizard mode : list -> radio buttons
-
- * printerdrake.pm: if embedded -> no first question
-
- * interactive_gtk.pm: added tooltips to create_boxradio
- applied gtkradio
- created create_boxradio
- in wizard mode : list -> radio buttons
-
-2001/03/09 Pixel <pixel@mandrakesoft.com>
-
- * share/rpmsrate: a hell lot of modifications, mostly cleanup of
- DEVELOPEMENT
-
-2001/03/09 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * Xconfigurator_consts.pm: keyboard mapping for PPC
-
- * detect_devices.pm: routine to detect MacIntosh model code
-
-2001/03/09 dam's <damien@mandrakesoft.com>
-
- * my_gtk.pm: added gtkradio
-
- * standalone/draknet: changed graphical layout, expert mode
-
-2001/03/09 Pixel <pixel@mandrakesoft.com>
-
- * pkgs.pm (read_rpmsrate): handle the special case of packages requiring
- locales-*,
- adding the flag LOCALES"*" for them
-
- * install_steps_interactive.pm (choosePackages): moved the log to
- install2::choosePackages (to have it in
- auto_installs too)
-
- * install_any.pm (setPackages): set compssUsersChoice LOCALES"*"
-
- * install2.pm (choosePackages): log groups choosen
-
- * share/rpmsrate: a hell lot of modifications, mostly cleanup of
- DEVELOPEMENT
- - chineese packages
- - move Aurora's to AURORA (DrakX take care of Aurora)
-
- * install_steps_gtk.pm (remove_advertising): created
-
-2001/03/08 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/init.c: workaround kernel-2.4 bug with /dev/log
-
-2001/03/08 Pixel <pixel@mandrakesoft.com>
-
- * verify_c: fix the regexp
-
- * detect_devices.pm (floppies): load module "floppy" before probing
-
-2001/03/08 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: applied if__
-
-2001/03/08 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/init.c: workaround kernel-2.4 bug with /dev/log
-
-2001/03/08 Pixel <pixel@mandrakesoft.com>
-
- * verify_c: fix the regexp
-
- * share/rpmsrate: add i18n'ed packages
-
- * detect_devices.pm (floppies): load module "floppy" before probing
-
-2001/03/08 dam's <damien@mandrakesoft.com>
-
- * common.pm: added if__
-
- * netconnect.pm: applied if__
-
-2001/03/08 Franēois Pons <fpons@mandrakesoft.com>
-
- * diskdrake.pm: avoid using e2fsck, else it abort by checking partition
- size (which differs).
- fix resize ext2 by using resize2fs.
-
- * pkgs.pm: changed choice of package for selection.
-
- * share/list: added resize2fs and dumpe2fs, removed ext2resize which is
- replaced.
-
-2001/03/08 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/dhcp.c: do not segfault in dhcp stuff, when af_packet is not
- honoured by kernel
-
-2001/03/08 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/no.po: updated Norwegian file
-
-2001/03/08 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm: advertising modifs
- (setPackages): use burners instead of IDEburners
-
- * bootloader.pm: cleanup
-
- * interactive.pm (ask_from_listf_no_check): catch wizcancel and return
- undef
-
- * fs.pm (write_fstab): change again for 'none' checking the mount point
- (write_fstab): special case for device ``none'' (which can be mounted
- twice or more :)
-
- * my_gtk.pm (_create_window): on delete_event, destroy the window and
- raise wizcancel
-
- * share/po/fr.po: fix bad translation
-
- * share/rpmsrate: add i18n'ed packages
- raise kdebase
-
- * install2.pm, install_steps.pm, install_steps_gtk.pm: advertising modifs
-
- * detect_devices.pm: cleanup
- (isBurner): use syslog to detect scsi burners
-
-2001/03/08 Stew Benedict <sbenedict@mandrakesoft.com>
-
- * install_steps_gtk.pm: encourage Xpmac to run in at least 16bpp
-
- * partition_table_mac.pm: fixed variable referencing - thx Pixel
-
-2001/03/08 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: corrected bad pci number -> string
-
-2001/03/08 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/bg.po, share/po/sr.po, share/po/sp.po, share/po/ca.po: updated
- Bulgarian, Catalan and Serbian files
-
-2001/03/08 Pixel <pixel@mandrakesoft.com>
-
- * bootloader.pm (dev2grub): better error reporting
-
- * tools/cvslog2changelog.pl (%users): add stew
-
- * install_steps.pm (setupBootloaderBefore): aurora stupid renaming fix
-
- * share/rpmsrate: raise kdebase
- xcdroast is the best cd burner ui, raise it above others
- lower some EDITORS
- raise vim-X11
- lower xrn, raise pan
-
- * install_any.pm (setPackages): use burners instead of IDEburners
- (setPackages): at least set BURNER for ide burners
-
- * any.pm: cleanup
-
- * install_steps_interactive.pm, install2.pm: re-add miscellaneous step,
- but always hidden (aka automatic)
-
- * detect_devices.pm (isBurner): use syslog to detect scsi burners
-
- * fs.pm (write_fstab): special case for device ``none'' (which can be
- mounted
- twice or more :)
-
- * tools/i386/netboot/stage2.3c90x, tools/i386/netboot/grub: new versions
- (without mem=)
-
-2001/03/08 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: corrected bad pci number -> string
-
-2001/03/08 Pixel <pixel@mandrakesoft.com>
-
- * tools/i386/netboot/stage2.3c90x, tools/i386/netboot/grub: new versions
- (without mem=)
-
-2001/03/07 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: corrected default focus after detection
- don't test adsl if net install
-
-2001/03/07 Pixel <pixel@mandrakesoft.com>
-
- * modules.pm (add_alias): remove the alias block-major-11 as it's
- overriding the
- default alias to sr_mod, and is uneeded with scsi_hostadapter being
- added
- to /etc/modules.conf
-
- * share/rpmsrate: lower heartbeat
-
-2001/03/07 sbenedict
-
- * help.pm: * perl-install/help.pm - typo in yaboot help
-
- * any.pm: * perl-install/any.pm - fixed two $l vs. @l references -
- bootloader menu, need image/boot in rec mode PPC
- CVl:
- ----------------------------------------------------------------------
-
- * devices.pm: * perl-install/devices.pm - add adbmouse
-
-2001/03/07 dam's <damien@mandrakesoft.com>
-
- * standalone/draknet: not use common anymore, uses gtkpng, cosmetic chages
-
-2001/03/07 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_any.pm, bootloader.pm: fixed support for other kernel for
- bootloader entries.
- automatically add 2.2 entries for kernel22 (manage hack-kernel too).
-
- * Xconfigurator.pm: remove 32 bit depth for S3 Trio3D card.
-
- * pkgs.pm: added support for killing all child process of a transaction,
- necessary to be
- able to umount cdrom and eject it correctly.
-
-2001/03/07 Pixel <pixel@mandrakesoft.com>
-
- * share/fonts.tar.bz2: use gb16fs instead of gb16st
-
- * modules.pm (add_alias): remove the alias block-major-11 as it's
- overriding the
- default alias to sr_mod, and is uneeded with scsi_hostadapter being
- added
- to /etc/modules.conf
-
- * share/rpmsrate: lower heartbeat
- lower Mesa's rate
-
- * install2.pm (main): save $@ in $err so that it's not modified before
- being used
-
- * share/locales.tar.bz2: remove ending '/' in symlinks not pleasing
- packdrake
-
- * standalone/drakboot: make it please perl2fcalls
-
-2001/03/07 sbenedict
-
- * bootloader.pm, Xconfigurator.pm: * perl-install/Xconfigurator.pm - force
- XF4 for PPC in recommended mode
- * perl-install/bootloader.pm - rework get_of_dev to work in live install
-
- * install_steps_interactive.pm, any.pm, partition_table_mac.pm: *
- perl-install/any.pm - change in partition_table_mac'xxx syntax
- * perl-install/install_steps_interactive.pm - change in
- partition_table_mac'xxx syntax
-
- * perl-install/partition_table_mac.pm - change in
- partition_table_mac'xxx syntax
-
-2001/03/07 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/fr.po: Fixed French typos reported by tester
-
-2001/03/07 Pixel <pixel@mandrakesoft.com>
-
- * share/fonts.tar.bz2: use gb16fs instead of gb16st
-
- * fsedit.pm: fix typo
-
- * install2.pm (main): save $@ in $err so that it's not modified before
- being used
-
- * share/rpmsrate: lower Mesa's rate
-
- * standalone/drakboot: make it please perl2fcalls
-
-2001/03/06 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: corrected bad %intf while savung
- don't ask configuration if expert
- now detecting adsl
-
- * standalone/draknet: remmoved 'quiting appli' screen
-
-2001/03/06 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * install_any.pm: fix save of automatic stage1 info for static network
-
- * mdk-stage1/init.c: do not display from syslog msg's from RPM telling
- that it
- installed/removed some pkg's
-
- * mdk-stage1/Makefile: fix includes for init
-
-2001/03/06 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/cy.po, share/po/nl.po,
- share/po/ja.po, share/po/wa.po, share/po/sv.po, share/po/is.po,
- share/po/hu.po, help.pm, share/po/zh_TW.Big5.po, share/po/it.po,
- share/po/id.po, share/po/pl.po, share/po/fi.po, share/po/no.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/sl.po, standalone/draknet,
- share/po/br.po, share/po/ca.po, share/po/gl.po, share/po/lv.po,
- share/po/uk.po, share/po/eo.po, share/po/ro.po, share/po/da.po,
- share/po/cs.po, share/po/af.po: corrected some typos, Updated Japanese
- file
-
-2001/03/06 Pixel <pixel@mandrakesoft.com>
-
- * perl2fcalls:
- - small fix for bootlook.pm
- - don't display reused
-
- * detect_devices.pm (stringlist): if no text description, display ids
-
- * install_steps_interactive.pm (generateAutoInstFloppy): comment old code
- (summary): fixes
- (setupSCSI): cleanup
- (summary): display sound/tv/isdn cards found
-
- * fsedit.pm (check_mntpoint): don't allow LVM on / or /boot
- (@suggestions_mntpoints): add /boot
-
- * install_any.pm: hack to make perl2fcalls happy
- (getHds): fix for no hd detected in newbie installs
- (setPackages): s/snd-slot/sound-slot/
-
- * install_steps_auto_install.pm (@graphical_steps): add
- beforeInstallPackages so that advertisings are there
-
- * install2.pm (setupSCSI): remove autoSCSI, cleanup
-
- * http.pm, ftp.pm: don't use install_any
-
- * modules.pm: add cciss
-
- * partition_table.pm (add): create 3 primaries before creating an extended
- if DAC960 (/dev/rd/*)
- (add): max number of parts for rd, ida and cciss
-
-2001/03/06 yduret
-
- * bootlook.pm: pixelisation
-
-2001/03/06 dam's <damien@mandrakesoft.com>
-
- * install2.pm: corrected bad file search
- corrected intf setting
-
- * standalone/draknet: added enable/disable networking button.
-
- * standalone/drakxconf: updated to be launched frome DrakConf if no
- DISPLAY
-
- * netconnect.pm: now detecting adsl
- typo
- better load_conf
-
- * Xconfigurator.pm: cleaned png displaying
-
- * common.pm: setinhash -> set_in_hash
- added setinhash
-
- * fs.pm: typo
- use set_in_hash
-
-2001/03/06 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/cdrom.c: enable probing of all the CDROM drives in automatic
- mode
-
- * mdk-stage1/Makefile: fix includes for init
-
-2001/03/06 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/cy.po, share/po/nl.po,
- share/po/ja.po, share/po/wa.po, share/po/sv.po, share/po/is.po,
- share/po/hu.po, share/po/zh_TW.Big5.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/fi.po, share/po/no.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/sl.po, share/po/br.po,
- share/po/ca.po, share/po/gl.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/ro.po, share/po/da.po, share/po/cs.po,
- share/po/af.po: corrected some typos, Updated Japanese file
- updated Lithuanian file
-
- * help.pm, standalone/draknet: corrected some typos, Updated Japanese file
-
-2001/03/06 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm, any.pm, Xconfigurator.pm: move inittab modifying to
- any::runlevel
-
- * partition_table.pm (add): max number of parts for rd, ida and cciss
-
- * fs.pm, netconnect.pm, common.pm: set_in_hash is now put_in_hash
-
- * diskdrake.pm (Create): pixelization
-
- * fsedit.pm (hds): pixelization
-
- * install_steps_auto_install.pm (@graphical_steps): add
- beforeInstallPackages so that advertisings are there
-
- * modules.pm: add cciss
-
- * install2.pm (main): remove unloading vfat (not needed anymore with
- mdk-stage1)
-
-2001/03/05 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: $mouse->{device} is set if it doesn't exists.
-
- * Makefile: added pixmaps copying
-
-2001/03/05 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * netconnect.pm, bootlook.pm, help.pm: fixed English typos
-
-2001/03/05 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (generateAutoInstFloppy): use
- generate_automatic_stage1_params
-
- * c/stuff.xs.pm, my_gtk.pm: XSetInputFocus now done in perl-GTK
-
- * install_any.pm (generate_automatic_stage1_params): replace
- generate_ks_cfg
-
-2001/03/05 dam's <damien@mandrakesoft.com>
-
- * Makefile: added pixmaps copying
-
- * standalone/draknet: required gtk only if needed, added redirection to
- newt if needed
-
- * netconnect.pm: $mouse->{device} is set if it doesn't exists.
- corrected short circuit if network install
- corrected bad end message,
- added copying of resolv.conf & modules.conf
-
- * install2.pm: moved askrootpasswd and adduser before network conf
-
- * network.pm: removed old NS0 fetching. /etc/resolv.conf is read in
- install2.pm now
- removed setdefaultroute and sethostname
-
-2001/03/05 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/cy.po, share/po/nl.po,
- share/po/ja.po, share/po/wa.po, share/po/sv.po, share/po/is.po,
- share/po/hu.po, share/po/zh_TW.Big5.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/fi.po, share/po/no.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/sl.po, share/po/br.po,
- share/po/ca.po, share/po/gl.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/ro.po, share/po/da.po, share/po/cs.po,
- share/po/af.po: Updated Latvian, Belarussian and Spanish files
-
-2001/03/05 Pixel <pixel@mandrakesoft.com>
-
- * lvm.pm (lv_create): fix typo
-
- * bootloader.pm: add use devices
- (install_grub): ensure the translated messages are not too big the hard
- way
-
- * install_any.pm (generate_automatic_stage1_params): replace
- generate_ks_cfg
- (install_urpmi): have "use hdlist ..." in any case
-
- * my_gtk.pm: XSetInputFocus now done in perl-GTK
- (_create_window): don't care about c::XSetInputFocus not existing
-
- * any.pm (setupBootloader): pixelization
- (setupBootloader): fix call to get_append
-
- * interactive.pm (vnew): cleanup
-
- * common.pm (salt): cleanup
-
- * install_steps_interactive.pm (generateAutoInstFloppy): use
- generate_automatic_stage1_params
-
- * c/stuff.xs.pm: XSetInputFocus now done in perl-GTK
-
- * c/Makefile.PL: compile fix
-
- * diskdrake.pm (create_buttons4partitions_): fix for displaying LVM
-
- * Xconfigurator.pm (xtest): use external xtest if standalone
-
- * install2.pm (main): remove unloading vfat (not needed anymore with
- mdk-stage1)
-
-2001/03/04 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/cy.po, share/po/nl.po,
- share/po/ja.po, share/po/wa.po, share/po/sv.po, share/po/is.po,
- share/po/hu.po, share/po/zh_TW.Big5.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/fi.po, share/po/no.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/sl.po, share/po/br.po,
- share/po/ca.po, share/po/gl.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/ro.po, share/po/da.po, share/po/cs.po,
- diskdrake.pm, share/po/af.po: updated po files
-
-2001/03/04 Pixel <pixel@mandrakesoft.com>
-
- * diskdrake.pm (Add2LVM): fix bug (causing empty list), make cancel work
-
- * share/rpmsrate:
- - remove autologin
- - move X11R6-contrib to DEVELOPEMENT and lower rate
-
-2001/03/04 stew <sbenedict@mandrakesoft.com>
-
- * any.pm - changes to enable yaboot configuration for PPC
-
- * diskdrake.pm, fs.pm, partition_table.pm isBootstrap -> isAppleBootstrap
-
- * install_steps_interactive.pm - auto-add Apple Bootstrap - PPC
-
-2001/03/03 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm, fsedit.pm, lvm.pm, standalone/diskdrake,
- install_interactive.pm, install2.pm: small fixes for LVM
-
- * diskdrake.pm: don't default the LVM name to 'pp' ;pp
- small fixes for LVM
-
-2001/03/03 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm: small fixes for LVM
- (doPartitionDisksAfter): small adaptation for LVMs
- use run_or_die
-
- * fsedit.pm: small fixes for LVM
- (hds): detect LVMs and return them
- (add): handling of LVMs
- (@partitions_signatures): add new magic of reiserfs
-
- * bootloader.pm: use run_or_die
-
- * run_program.pm (run_or_die, rooted_or_die): created
-
- * install_steps_interactive.pm: cleanup
-
- * install_any.pm (getHds): handle LVMs. $o->{lvms} contain them
- (setPackages): ask for installation of package lvm when needed
- (suggest_mount_points, find_root_parts): take $fstab as arg instead of
- $hds
-
- * install2.pm: small fixes for LVM
- (formatPartitions): call vgscan if needed when / is mounted
-
- * devices.pm (make): better caller in error
-
- * share/list: add progs for LVM handling
-
- * install_interactive.pm: small fixes for LVM
-
- * diskdrake.pm: small fixes for LVM
- - addition of drive to notebook cleaned
- - various clean-up
- - handling of LVMs
-
- * standalone/diskdrake: small fixes for LVM
- small adaptation
-
- * lvm.pm: small fixes for LVM
- creation
-
- * partition_table.pm: add isLVMBased
-
-2001/03/02 stew <sbenedict@mandrakesoft.com>
-
- * commands.pm - fdisk locks up machine on report_bug - replace with pdisk PPC
-
- * install_steps.pm - no bootfloppy, added yaboot.conf - PPC
-
- * install_interactive.pm - pdisk vs. fdisk - PPC
-
- * bootloader.pm - added code to create yaboot.conf, run ybin - vmlinux vs. vmlinuz
-
-2001/03/02 stew <sbenedict@mandrakesoft.com>
-
- * c/smp.c -stanza for PPC
-
- * detect_devices.pm - added code for MO devices
-
- * help.pm - help information for yaboot - PPC
-
- * partition_table.pm - PPC mods
-
- * partition_table_mac.pm - PPC mods
-
- * modules.pm - PPC mods - parallel port not used
-
- * diskdrake.pm - PPC mods - display like pdisk
-
- * install2.pm - PPC mod - no bootdisk
-
- * fs.pm - bootstrap partition - PPC
-
-2001/02/27 dam's <damien@mandrakesoft.com>
-
- * standalone/draknet: pop up a dialog to quit X when accepting
- configuration
-
-2001/02/27 Pixel <pixel@mandrakesoft.com>
-
- * partition_table_raw.pm (@MBR_signatures): add yet another grub signature
-
- * devices.pm (entry): add fd0H1440 and fd1H1440
-
- * bootloader.pm (mkbootdisk): fix for mkbootdisk using fd0H1440. Must be
- created
-
-2001/02/26 dam's <damien@mandrakesoft.com>
-
- * Makefile.drakxtools, pixmaps/hori.xpm, pixmaps/tradi.xpm,
- pixmaps/eth_card_mini.xpm, pixmaps/verti.xpm: new pixmap policy
-
- * Makefile: typo
- new pixmap policy
-
- * bootlook.pm: typo
- new pixmap policy
- need to be merged with bootloader
-
- * standalone/draknet: reincluded Gtk + init Gtk
- thiskind -> thiskind_backend
- new pixmap policy
-
- * standalone/drakboot: short-circuit to bootlook for the moment.
-
-2001/02/26 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po,
- share/po/i18n_compssUsers, share/po/DrakX.pot, share/po/es.po,
- share/po/fr.po, share/po/bg.po, share/po/ga.po, share/po/sr.po,
- share/po/de.po, share/po/et.po, share/po/tr.po, share/po/eu.po,
- share/po/az.po, share/po/ru.po, share/po/pt_BR.po, share/po/hr.po,
- share/po/ko.po, share/po/cy.po, share/po/nl.po, share/po/ja.po,
- share/po/wa.po, share/po/sv.po, share/po/is.po, share/po/hu.po,
- share/po/zh_TW.Big5.po, share/po/it.po, share/po/id.po, share/po/pl.po,
- share/po/fi.po, share/po/no.po, share/po/zh_CN.GB2312.po,
- share/po/th.po, share/po/el.po, share/po/sk.po, share/po/lt.po,
- share/po/sl.po, share/po/br.po, share/po/ca.po, share/po/gl.po,
- share/po/lv.po, share/po/uk.po, share/po/eo.po, share/po/ro.po,
- share/po/da.po, share/po/cs.po, share/po/af.po: Fixed i18n_compssUsers
- script to produce a correct pot file
- Updated Estonian and Walloon files
-
- * bootlook.pm: changed I_() to _() so xgettext cna find the translatable
- strings
-
-2001/02/26 Pixel <pixel@mandrakesoft.com>
-
- * standalone/drakgw: pixelization
-
- * install_steps.pm: remove unneeded "use install_interactive"
-
- * install_steps_gtk.pm (copy_advertising): fix changing for
- advertising_images
-
-2001/02/26 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: should correct bad resolv.conf when swithcinf in
- standalone embedded mode. Not Certified
- fixed standalone edition
- corrected wizard mode.
-
- * Makefile.drakxtools, Makefile, pixmaps/eth_card_mini.xpm: new pixmap
- policy
-
- * standalone/draknet: new pixmap policy
- fixed standalone edition
-
- * bootlook.pm: need to be merged with bootloader
-
- * interactive_gtk.pm: if wizard, show the button
-
- * standalone/drakboot: short-circuit to bootlook for the moment.
-
-2001/02/26 Pixel <pixel@mandrakesoft.com>
-
- * common.pm (if_): fix for use in scalar context
-
- * install_steps_interactive.pm (summary): translate mouse description
-
- * install_steps.pm: remove unneeded "use install_interactive"
-
- * install_steps_gtk.pm (copy_advertising): fix changing for
- advertising_images
-
-2001/02/26 warly
-
- * share/compssUsers, share/rpmsrate: remove some packages
-
-2001/02/26 dam's <damien@mandrakesoft.com>
-
- * interactive_gtk.pm: if wizard, show the button
-
- * netconnect.pm: corrected wizard mode.
-
-2001/02/26 Pixel <pixel@mandrakesoft.com>
-
- * common.pm (if_): fix for use in scalar context
-
- * install_steps_interactive.pm (summary): translate mouse description
-
-2001/02/25 dam's <damien@mandrakesoft.com>
-
- * share/logo-mandrake-Firewall.xpm, share/logo-mandrake.xpm: changed logo.
-
- * netconnect.pm: profile handling.
- profile handling
- corrected wizard.
-
- * standalone/draknet: profile handling.
- profile handling
-
- * install_steps_interactive.pm: updated
-
-2001/02/25 Pixel <pixel@mandrakesoft.com>
-
- * install2.pm (main): move the load_deps before all the loadO's
-
- * install_any.pm (g_auto_install): have formatMountPartitions graphical if
- $graphical
-
- * install_steps_interactive.pm (generateAutoInstFloppy): use "timeout 1"
- for replay
-
- * interactive_gtk.pm (ask_from_entries_refW): ensure "advanced" lists
- center the chosen value
-
-2001/02/24 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm, install2.pm: move writing to config files from
- install2::selectKeyboard to install_steps
-
- * share/list, Makefile, tools/i386/mkreiserfs: for now, have mkreiserfs in
- the CVS since the current cooker version is too recent
-
- * commands.pm (more): handle 'q' to quit
-
-2001/02/24 Pixel <pixel@mandrakesoft.com>
-
- * c/Makefile (stuff): fix the fix's fix :'-(
-
- * detect_devices.pm (pci_probe): fix to clean the log
-
- * install_steps_interactive.pm (setRootPassword): NIS server must be
- editable
-
-2001/02/23 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm (g_auto_install): handle $replay flag. It means a 'not
- fully automated install'.
-
- * install_steps_auto_install.pm (@graphical_steps): specify which step
- should be interactive
-
- * c/Makefile (stuff.xs): exporting C_RPM and C_DRAKX is needed
-
- * install_steps.pm (afterInstallPackages): no kdm UserView in NIS
- (configurePrinter): if_'ization
-
- * install_steps_interactive.pm (exitInstall): ask wether Replay or
- Automated
- (generateAutoInstFloppy): handle $replay flag. It means a 'not fully
- automated install'.
- (summary): nicer mouse name
-
-2001/02/23 dam's <damien@mandrakesoft.com>
-
- * network.pm, standalone/draknet, netconnect.pm, my_gtk.pm: new wizard
- layout, no use gtk in draknet, minor bugfixes
-
-2001/02/23 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: added accessor the rpmsrate data of packages.
- avoid rebuilding the database for oem, rpm db is assumed to be fine.
-
- * rescue/make_rescue_img: removed kernel_reread program.
-
- * rescue/tree/etc/oem: removed server from selection.
- added mutli CD support to OEM (NFS/DVD transparent)
- fixed selection of package now select much more than before.
- fixed root partition size set to the minimum.
-
-2001/02/23 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/rpmsrate: move xterm to SYSTEM
-
-2001/02/23 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator.pm: move the 'use my_gtk' in 'require my_gtk' and only if
- needed
-
- * install_steps_auto_install.pm (@graphical_steps): specify which step
- should be interactive
-
- * c/stuff.xs.pm: hack for macroporcessing in term.h
- use C_DRAKX
-
- * install_steps.pm (afterInstallPackages): no kdm UserView in NIS
- (configurePrinter): if_'ization
-
- * share/rpmsrate: add packages installed on demand by DrakX. they are
- specifically flagged
- or flagged 'INSTALL'
-
- * perl2fcalls: handling of ``package''->import(``what to import'')
-
- * interactive.pm (vnew): use /usr/X11R6/bin/xtest instead of c::Xtest
-
- * Makefile (tar-drakxtools): C_RPM and C_DRAKX set to 0
-
- * install_any.pm (g_auto_install): handle $replay flag. It means a 'not
- fully automated install'.
-
- * c/Makefile.PL: use C_DRAKX
-
- * pkgs.pm (setSelectedFromCompssList): fix the fix
-
- * c/Makefile (stuff.xs): exporting C_RPM and C_DRAKX is needed
- add setting C_DRAKX to 1 by default
-
- * install_steps_interactive.pm (exitInstall): ask wether Replay or
- Automated
- (generateAutoInstFloppy): handle $replay flag. It means a 'not fully
- automated install'.
- (summary): nicer mouse name
-
-2001/02/23 Pixel <pixel@mandrakesoft.com>
-
- * interactive_gtk.pm (ask_from_entries_refW): double clicking on list
- means 'Ok'
-
- * pkgs.pm (setSelectedFromCompssList): fix sillyness
-
-2001/02/22 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: corected infinite loop
-
-2001/02/22 Franēois Pons <fpons@mandrakesoft.com>
-
- * rescue/tree/etc/oem: minor cleanup to edit partition size more easily.
- brand new version written in perl, support repartitionning on the fly of
- the
- hard disk and resize of already present FAT partition.
-
- * rescue/list.i386, rescue/list, rescue/Makefile: make rescue build a bit
- more cleaner (added dependancy).
- added missing file for rescue to enable new oem install.
-
-2001/02/22 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/insmod-modutils/include/elf_hppa64.h,
- mdk-stage1/insmod-modutils/util/alias.h,
- mdk-stage1/insmod-modutils/util/xstrcat.c,
- mdk-stage1/insmod-modutils/util/gzfiles.c,
- mdk-stage1/insmod-modutils/include/elf_arm.h,
- mdk-stage1/insmod-modutils/util/sys_qm.c,
- mdk-stage1/insmod-modutils/util/modstat.c,
- mdk-stage1/insmod-modutils/obj/obj_sparc.c,
- mdk-stage1/insmod-modutils/include/elf_m68k.h,
- mdk-stage1/insmod-modutils/Makefile,
- mdk-stage1/insmod-modutils/util/xstrdup.c,
- mdk-stage1/insmod-modutils/obj/obj_arm.c,
- mdk-stage1/insmod-modutils/obj/obj_m68k.c,
- mdk-stage1/insmod-modutils/obj/obj_hppa64.c,
- mdk-stage1/insmod-modutils/include/elf_sparc64.h,
- mdk-stage1/insmod-modutils/util/sys_dm.c,
- mdk-stage1/insmod-modutils/include/elf_s390.h,
- mdk-stage1/insmod-modutils/obj/obj_s390.c,
- mdk-stage1/insmod-modutils/util/xmalloc.c,
- mdk-stage1/insmod-modutils/util/xsystem.c, mdk-stage1/insmod.h,
- mdk-stage1/insmod-modutils/util/xftw.c,
- mdk-stage1/insmod-modutils/include/elf_i386.h,
- mdk-stage1/insmod-modutils/util/sys_gks.c,
- mdk-stage1/insmod-modutils/util/snap_shot.c,
- mdk-stage1/insmod-modutils/obj/obj_i386.c, mdk-stage1/modules.c,
- mdk-stage1/stage1.c, mdk-stage1/insmod-modutils/include/obj.h,
- mdk-stage1/insmod-modutils/include/elf_ppc.h,
- mdk-stage1/insmod-modutils/obj/obj_reloc.c,
- mdk-stage1/insmod-modutils/include/elf_sparc.h,
- mdk-stage1/insmod-modutils/util/sys_nim.c,
- mdk-stage1/insmod-modutils/obj/obj_ppc.c, mdk-stage1/Makefile,
- mdk-stage1/insmod-modutils/include/elf_hppa.h,
- mdk-stage1/insmod-busybox/insmod.c,
- mdk-stage1/insmod-modutils/util/meta_expand.c,
- mdk-stage1/insmod-modutils/util/arch64.c,
- mdk-stage1/insmod-modutils/obj/obj_load.c,
- mdk-stage1/insmod-modutils/obj/obj_hppa.c,
- mdk-stage1/insmod-busybox/insmod.h,
- mdk-stage1/insmod-modutils/include/elf_ia64.h,
- mdk-stage1/insmod-modutils/obj/obj_ia64.c,
- mdk-stage1/insmod-modutils/obj/obj_sparc64.c,
- mdk-stage1/insmod-modutils/include/elf_mips.h,
- mdk-stage1/insmod-modutils/include/module.h,
- mdk-stage1/insmod-modutils/obj/obj_mips.c,
- mdk-stage1/insmod-modutils/util/sys_cm.c,
- mdk-stage1/insmod-modutils/obj/obj_alpha.c,
- mdk-stage1/insmod-modutils/include/kerneld.h,
- mdk-stage1/insmod-modutils/util/xrealloc.c,
- mdk-stage1/insmod-modutils/obj/Makefile,
- mdk-stage1/insmod-modutils/insmod-frontend.c,
- mdk-stage1/insmod-modutils/obj/obj_common.c,
- mdk-stage1/insmod-modutils/include/modstat.h,
- mdk-stage1/insmod-modutils/util/Makefile,
- mdk-stage1/insmod-modutils/include/config.h,
- mdk-stage1/insmod-modutils/util/logger.c,
- mdk-stage1/insmod-modutils/obj/obj_kallsyms.c,
- mdk-stage1/Makefile.common, mdk-stage1/insmod-modutils/include/util.h,
- mdk-stage1/insmod-modutils/util/config.c,
- mdk-stage1/insmod-modutils/include/version.h,
- mdk-stage1/insmod-modutils/include/kallsyms.h,
- mdk-stage1/insmod-modutils/include/elf_alpha.h,
- mdk-stage1/insmod-modutils/util/sys_oim.c,
- mdk-stage1/insmod-modutils/insmod.c: use modutils for non Intel arch's
-
-2001/02/22 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm (write_fstab): clean-up, $fstab takes precedence over @to_add, but
- not
- over existing /etc/fstab. Fix some stupid stuff
-
- * modules.pm, commands.pm: call /usr/bin/insmod_ with full path
-
- * install2.pm (main): don't set a special $remote_path PATH for
- postInstallNonRooted
- (otherwise install's modprobe is not used, and you can't "modprobe
- vfat",
- even if "/usr/bin/modprobe vfat" doesn't work because insmod_ is not
- found.
-
- * my_gtk.pm (create_box_with_title): disallow focusing on text if it is
- non-scrolled
-
-2001/02/22 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/dietlibc/include/stdlib.h, mdk-stage1/minilibc.c,
- mdk-stage1/init-libc-headers.h,
- mdk-stage1/dietlibc/include/sys/select.h, mdk-stage1/Makefile,
- mdk-stage1/init.c, mdk-stage1/minilibc.h,
- mdk-stage1/dietlibc/include/unistd.h,
- mdk-stage1/dietlibc/include/sys/socket.h,
- mdk-stage1/dietlibc/include/signal.h: have "init" compiled against
- dietlibc (rather than glibc) on non-Intel arch's
-
-2001/02/22 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_auto_install.pm: $graphical is now a module variable. Can
- be changed from everywhere
-
- * fs.pm (write_fstab): clean-up, $fstab takes precedence over @to_add, but
- not
- over existing /etc/fstab. Fix some stupid stuff
-
- * modules.pm, commands.pm: call /usr/bin/insmod_ with full path
-
- * install2.pm (main): don't set a special $remote_path PATH for
- postInstallNonRooted
- (otherwise install's modprobe is not used, and you can't "modprobe
- vfat",
- even if "/usr/bin/modprobe vfat" doesn't work because insmod_ is not
- found.
-
- * my_gtk.pm (create_box_with_title): disallow focusing on text if it is
- non-scrolled
-
- * interactive.pm (ask_from_entries_refH_powered_normalize): fix setting
- type to 'list' in
- case of format. should be only set if type is unset
- (ask_from_entries_refH_powered_normalize): if list+format then type is
- 'list', combo not accepted (hacky?)
-
- * interactive_gtk.pm (ask_from_entries_refW): if no button wanted, don't
- call create_okcancel
-
-2001/02/22 Pixel <pixel@mandrakesoft.com>
-
- * interactive.pm (ask_from_entries_refH_powered_normalize): if list+format
- then type is
- 'list', combo not accepted (hacky?)
-
- * install_steps_auto_install.pm: $graphical is now a module variable. Can
- be changed from everywhere
-
- * interactive_gtk.pm (ask_from_entries_refW): if no button wanted, don't
- call create_okcancel
-
-2001/02/21 dam's <damien@mandrakesoft.com>
-
- * network.pm, netconnect.pm: netconnect recode, wizard compatible.
- network.pm modified for wizard. Still need work for ask_yesorno,
- ask_okcancel. +debugging of course
-
- * standalone/draknet: updated (don't remember what)
-
-2001/02/21 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/tools.c, mdk-stage1/Makefile,
- mdk-stage1/dietlibc/lib/vprintf.c, mdk-stage1/dietlibc/lib/vfprintf.c,
- mdk-stage1/minilibc.h, mdk-stage1/minilibc.c,
- mdk-stage1/init-libc-headers.h:
- - fix "init" on ppc (do not use minilibc on non-i386 arch's)
- - fix segfault of dietlibc-linked apps (broken va_stuff in dietlibc)
- - cleanup of "init"
-
- * mdk-stage1/init.c:
- - fix "init" on ppc (do not use minilibc on non-i386 arch's)
- - fix segfault of dietlibc-linked apps (broken va_stuff in dietlibc)
- - cleanup of "init"
- fix up syslog logging stuff
-
-2001/02/21 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm (generateAutoInstFloppy): removed
-
- * install_any.pm (g_auto_install): use selected_leaves for
- default_packages to reduce the
- list of packages (aka cleanup auto_inst.cfg)
- (g_default_packages): created
-
- * install_steps_interactive.pm (exitInstall): add generateAutoInstFloppy
- and g_default_packages calls in
- advanced
-
- * netconnect.pm, partition_table.pm, fsedit.pm: cleanup Data::Dumper use
-
- * pkgs.pm (selected_leaves): created
-
- * install2.pm (main): do postInstallNonRooted before postInstall (so that
- 'modprobe
- vfat' can be done in postInstallNonRooted and used in postInstall)
- - move the loadO of patch/defcfg after loading modules.dep
- - generateAutoInstFloppy is no more a step
- - removed use Data::Dumper
-
-2001/02/21 Chmouel Boudjnah <chmouel@mandrakesoft.com>
-
- * share/rpmsrate: Add iputils to SYSTEM.
-
-2001/02/21 dam's <damien@mandrakesoft.com>
-
- * docs/wizard.doc: putain de doc de merde pout petite qui est trop débile
-
- * interactive.pm, my_gtk.pm: corrected wizard mode.
-
-2001/02/21 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/TECH-INFOS: sync doc with disk automatic installs
-
- * mdk-stage1/disk.c: add support for automatic (ex-kickstart) in disk
- installs
-
-2001/02/21 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/da.po: updated Danish file
-
-2001/02/21 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm (generateAutoInstFloppy): removed
-
- * install_any.pm (g_auto_install): use selected_leaves for
- default_packages to reduce the
- list of packages (aka cleanup auto_inst.cfg)
- (g_default_packages): created
-
- * install_steps_interactive.pm (exitInstall): add generateAutoInstFloppy
- and g_default_packages calls in
- advanced
-
- * netconnect.pm, partition_table.pm, fsedit.pm: cleanup Data::Dumper use
-
- * pkgs.pm (selected_leaves): created
-
- * install2.pm (main): do postInstallNonRooted before postInstall (so that
- 'modprobe
- vfat' can be done in postInstallNonRooted and used in postInstall)
- - move the loadO of patch/defcfg after loading modules.dep
- - generateAutoInstFloppy is no more a step
- - removed use Data::Dumper
-
-2001/02/20 Pixel <pixel@mandrakesoft.com>
-
- * printerdrake.pm: fix typo
-
- * install_steps.pm, install_steps_gtk.pm, install_any.pm: better
- advertising support
-
-2001/02/20 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/url.h, mdk-stage1/url.c, mdk-stage1/network.c: for HTTP
- installs, make use of Content-Length when available, to display
- progressbar
-
-2001/02/20 Pixel <pixel@mandrakesoft.com>
-
- * Makefile: various
- - pcmcia_config.patch now in tools (no more in install which is
- removed)
- - copy xpm's (until step icons work with png's)
- - transform group icons in pngs
-
- * modules.pm, class_discard.pm, my_gtk.pm, Xconfigurator.pm: various
-
- * tools/pcmcia_config.patch: pcmcia_config.patch now here
-
- * printerdrake.pm: fix typo
-
- * install_any.pm, install_steps.pm, install_steps_gtk.pm: better
- advertising support
-
-2001/02/20 warly
-
- * share/compssUsers, share/rpmsrate, share/compssList: update rpmsrate
-
-2001/02/20 Franēois Pons <fpons@mandrakesoft.com>
-
- * c/stuff.xs.pm, live_install, pkgs.pm, live_install2: added RPMRC_FILE
- env variable to choose rpmrc file for rpmlib used
- by DrakX, neccessary for live update from a 7.2 or older.
- Check that if something goes wrong with rebuilddb, avoid removing
- old rpm-3 db files.
- Make sure live_install can start from top directory too.
-
-2001/02/20 Pixel <pixel@mandrakesoft.com>
-
- * Makefile: various
- - pcmcia_config.patch now in tools (no more in install which is
- removed)
- - copy xpm's (until step icons work with png's)
- - transform group icons in pngs
-
- * modules.pm, class_discard.pm: various
-
- * tools/pcmcia_config.patch: pcmcia_config.patch now here
-
- * my_gtk.pm, Xconfigurator.pm: various
- major move. now ask_from_list returns false when canceled (it doesn't
- die 'ask_from_list canceled' anymore)
-
- * interactive_gtk.pm, standalone/mousedrake, install_steps_interactive.pm,
- netconnect.pm, standalone/keyboarddrake, install2.pm, interactive.pm,
- any.pm, printerdrake.pm, diskdrake.pm: major move. now ask_from_list
- returns false when canceled (it doesn't die 'ask_from_list canceled'
- anymore)
-
-2001/02/19 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/stage1.c: try to print errno's stuff when symlink to
- /tmp/stage2 failed
-
- * mdk-stage1/dhcp.c: ARP_MAX_RETRIES: s/5/4
-
-2001/02/19 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/cy.po, share/po/nl.po,
- share/po/ja.po, share/po/wa.po, share/po/sv.po, share/po/is.po,
- share/po/hu.po, share/po/zh_TW.Big5.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/fi.po, share/po/no.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/sl.po, share/po/br.po,
- share/po/ca.po, share/po/gl.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/ro.po, share/po/da.po, share/po/cs.po,
- share/po/af.po: updated Estonian file
-
-2001/02/19 Pixel <pixel@mandrakesoft.com>
-
- * interactive.pm (ask_from_listf_no_check): die 'ask_from_list cancel' on
- cancel
-
- * my_gtk.pm (create_packtable): don't use attach_raw anymore (was a
- sillyme)
-
-2001/02/18 dam's <damien@mandrakesoft.com>
-
- * standalone/draknet: typo
- make fbastok happy about button placement.
- little improvements.
-
-2001/02/16 dam's <damien@mandrakesoft.com>
-
- * install_gtk.pm: corrected xpm mask
-
- * network.pm: wireless eth support corrected.
-
- * share/step-red.xpm, share/step-orange.xpm, share/step-orange-click.xpm,
- share/step-green-click.xpm, share/step-green.xpm, share/step-red-on.xpm,
- share/step-orange-on.xpm, share/step-green-on.xpm,
- share/step-red-click.xpm: re added these xpm files against display mask
- pb.
-
-2001/02/16 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/init.c: better ansi colors
-
- * mdk-stage1/dhcp.c: comply with glibc-2.2.2 more strict headers
-
- * mdk-stage1/stdio-frontend.c: display more nicely when there is a long
- list to choose from (1, 2 or 4 columns)
-
-2001/02/15 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/TECH-INFOS, mdk-stage1/README: update doc
-
-2001/02/15 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/az.po: updated Azeri file
-
-2001/02/15 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_gtk.pm (installPackages): fix i_images
-
- * fsedit.pm (suggestions_mntpoint): fix
-
-2001/02/15 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_gtk.pm (installPackages): fix i_images
- (installPackages): traktolpilization and advertising
-
- * Makefile (get_needed_files): copy png files instead of xpm's
-
- * fsedit.pm (suggestions_mntpoint): fix
-
- * my_gtk.pm (gtkcreate_png): add error message, syntax cleanup
-
- * share/list: add GdkImlib stuff
-
- * perl2fcalls: add Gtk::Gdk::ImlibImage
-
- * install2.pm (main): set SHARE_PATH to /export/Mandrake/mdkinst/usr/share
- if it exists
-
-2001/02/15 dam's <damien@mandrakesoft.com>
-
- * my_gtk.pm, any.pm, install_gtk.pm, install_steps_interactive.pm,
- install_steps_gtk.pm, interactive_gtk.pm: added png support. Need to
- test the faces2xpm stuff.
-
- * share/step-orange-click.xpm, share/rpm-selected.xpm,
- share/step-green-click.xpm, share/step-green.xpm, share/rpm-base.xpm,
- share/ftin.xpm, share/step-orange-on.xpm, share/ftout.xpm,
- share/step-red-click.xpm, share/step-green-on.xpm,
- share/rpm-unselected.xpm, share/step-red.xpm, share/step-orange.xpm,
- share/reload.xpm, share/rpm-semiselected.xpm,
- share/logo-mandrake-Desktop.xpm, share/rpm-installed.xpm,
- share/step-red-on.xpm: removed, png are used instead.
-
- * standalone/draknet: updated internet and added eth conf
-
- * share/help.xpm, share/logo-mandrake.xpm: removed, png are used instead.
- added png images
-
- * share/step-red.png, share/step-orange.png, share/reload.png,
- share/logo-mandrake.png, share/rpm-semiselected.png,
- share/logo-mandrake-Desktop.png, share/rpm-installed.png,
- share/logo-mandrake_sav.png, share/step-red-on.png, share/help_sav.png,
- share/rpm-selected.png, share/step-orange-click.png,
- share/step-green-click.png, share/step-green.png, share/rpm-base.png,
- share/logo-mandrake2.png, share/ftin.png, share/help.png,
- share/step-orange-on.png, share/step-green-on.png, share/ftout.png,
- share/step-red-click.png, share/step-green_s.png, share/themes-mdk.rc,
- share/rpm-unselected.png: added png images
-
-2001/02/15 Pixel <pixel@mandrakesoft.com>
-
- * Makefile (get_needed_files): copy png files instead of xpm's
-
- * install2.pm (main): set SHARE_PATH to /export/Mandrake/mdkinst/usr/share
- if it exists
- (selectKeyboard): give clicked as parameter
-
- * my_gtk.pm (gtkcreate_png): add error message, syntax cleanup
-
- * fsedit.pm (suggestions_mntpoint): fix typo
-
- * share/list: add GdkImlib stuff
-
- * perl2fcalls: add Gtk::Gdk::ImlibImage
-
- * install_steps_interactive.pm (summary): better message for i18n
-
- * install_steps_gtk.pm (installPackages): traktolpilization and
- advertising
-
-2001/02/14 dam's <damien@mandrakesoft.com>
-
- * network.pm, standalone/draknet: wireless updated
-
- * share/help.xpm, share/themes-mdk.rc, share/logo-mandrake.xpm: valentin
- theme :)
-
-2001/02/14 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm (afterInstallPackages): add user in group usb
-
-2001/02/14 dam's <damien@mandrakesoft.com>
-
- * share/themes-mdk.rc: valentin theme :)
- added drawing theme section
-
- * network.pm: wireless updated
- updated wireless eth support
-
- * standalone/draknet: wireless updated
-
- * share/help.xpm, share/logo-mandrake.xpm: valentin theme :)
-
-2001/02/13 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: network con initiated in draknet.
- netconnect improvement.
- typo
-
- * network.pm: typo
- corrected domainname setting
-
- * standalone/draknet: network con initiated in draknet.
- netconnect improvement.
-
-2001/02/13 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/frontend.h, mdk-stage1/network.h,
- mdk-stage1/stdio-frontend.c, mdk-stage1/dhcp.c, mdk-stage1/automatic.c,
- mdk-stage1/newt-frontend.c, mdk-stage1/automatic.h, mdk-stage1/disk.c,
- mdk-stage1/network.c: write down Magic Callback (tm) for static ip stuff
-
- * mdk-stage1/modules.c: ask for modules parameters everytime in expert
- mode, to avoid wrong autodetections in certain cases
- - better log of nfs mount errors
- - don't insmod modules already present (important for bzip2 slowness)
-
- * mdk-stage1/cdrom.c: better error msg thx to mcdtg
-
- * mdk-stage1/mount.c, mdk-stage1/nfsmount.c:
- - better log of nfs mount errors
- - don't insmod modules already present (important for bzip2 slowness)
-
- * mdk-stage1/stage1.c, mdk-stage1/init.c: use exit code 66 for rescue
- better console messages at startup
-
-2001/02/13 dam's <damien@mandrakesoft.com>
-
- * standalone/draknet: profile handling updated
-
- * network.pm: typo
- corrected domainname setting
-
- * netconnect.pm: finished load_conf
-
-2001/02/13 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * rescue/make_rescue_img, rescue/list: include libs for hostname resolving
-
- * mdk-stage1/stage1.c, mdk-stage1/init.c: better console messages at
- startup
-
- * mdk-stage1/tools.c:
- - save /etc/resolv.conf for rescue
-
-2001/02/13 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (selectKeyboard): can be automatic only in
- non-expert
-
- * any.pm: md5 now done via crypt
-
- * install_steps.pm (exitInstall): catch exception of output report.bug
- (for gc)
-
-2001/02/13 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (selectKeyboard): can be automatic only in
- non-expert
-
- * tools/cvslog2changelog.pl: fix for gc & fpons
- fix for fredl broken CVS
-
- * any.pm: md5 now done via crypt
-
- * install_steps.pm (exitInstall): catch exception of output report.bug
- (for gc)
-
-2001/02/13 dam's <damien@mandrakesoft.com>
-
- * network.pm: experimental wireless eth support. Not tested
-
-2001/02/13 Pixel <pixel@mandrakesoft.com>
-
- * tools/cvslog2changelog.pl: fix for gc & fpons
- fix for fredl broken CVS
-
- * c/stuff.xs.pm, c/Makefile.PL, c/md5.h, c/md5_crypt.c, c/md5.c: md5 can
- be done via crypt of glibc, so remove all this
-
-2001/02/13 dam's <damien@mandrakesoft.com>
-
- * any.pm: merging difference
-
- * netconnect.pm: corrected profile handling
-
- * network.pm: experimental wireless eth support. Not tested
-
-2001/02/12 Pixel <pixel@mandrakesoft.com>
-
- * tools/addchangelog.pl: log more than mdk-stage1 and perl-install (added
- docs, rescue, tools)
-
-2001/02/12 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/probing.c: do not close un unbound socket!!
-
- * c/stuff.xs.pm: close socket everytime in hasNetDevice
-
- * mdk-stage1/Makefile: tag it 8.0beta instead of 8.0, to avoid future
- potential confusions
-
- * modules.pm: re include some network modules
-
-2001/02/12 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * rescue/list: fix vi trouble
- - add lspci, lspcidrake, vim-minimal
- - better /etc/issue
- - better PS1
- - write embryonic tool (installation of detected drivers according to
- pci cards)
-
- * rescue/aliases, rescue/tree/etc/issue: fix vi trouble
-
- * rescue/list.i386, rescue/make_rescue_img, rescue/drvinst:
- - add lspci, lspcidrake, vim-minimal
- - better /etc/issue
- - better PS1
- - write embryonic tool (installation of detected drivers according to
- pci cards)
-
-2001/02/12 Pixel <pixel@mandrakesoft.com>
-
- * rescue/drvinst: pixelization
-
- * docs/README: fix doc about Mandrake/base/compss
-
- * install_steps_gtk.pm (choosePackagesTree): non first choice packages are
- in "Other".
-
- * install_interactive.pm, any.pm, fsedit.pm, diskdrake.pm: auto_allocate
- partitions choice modified. diskdrake in expert asks what kind
- of auto_allocation is wanted, others choose 'simple' in
- %fsedit::suggestions
-
- * install2.pm: auto_allocate partitions choice modified. diskdrake in
- expert asks what kind
- of auto_allocation is wanted, others choose 'simple' in
- %fsedit::suggestions
- (main): gc has done it again! /tmp/conf.modules is now
- /etc/modules.conf,
- so load both to keep compatibility.
-
- * my_gtk.pm: cleanup (remove ask_from_list and _ask_from_list)
-
- * interactive_gtk.pm (ask_from_entries_refW): use
- $common->{advanced_label}
- (create_ctree): add keyboard shortcuts
- (create_clist): moveto only if row_is_visible
-
- * interactive.pm (ask_from_entries_refH_powered_normalize): advanced_label
- defaults to
- _("Advanced")
-
- * tools/addchangelog.pl: log more than mdk-stage1 and perl-install (added
- docs, rescue, tools)
-
- * install_steps_interactive.pm (configurePrinter): cleanup,
- pkg_install_if_requires_satisfied('xpp',
- 'kups') only if a printer is configured (for the case when _("Would you
- like to configure a printer?") is answered no)
-
- * rescue/tree/etc/rc.sysinit: add floppy module for 2.4
-
-2001/02/10 Pixel <pixel@mandrakesoft.com>
-
- * standalone/draknet, standalone/XFdrake: corrected pkgs_install given
-
- * install_any.pm: add preConfigureTimezone
- add step summary. remove steps configureTimezone and configurePrinter
-
- * install_interactive.pm: cleanup
-
- * standalone/keyboarddrake, share/keymaps_generate, keyboard.pm:
- - lang2keyboards handle keyboard percentages
- - xmodmaps now named keyboards
-
- * install_steps_interactive.pm: add step summary. remove steps
- configureTimezone and configurePrinter, modify selectKeyboard
-
- * install2.pm, timezone.pm, install_steps.pm: add step summary. remove
- steps configureTimezone and configurePrinter
-
- * netconnect.pm: corrected back $install call
-
-2001/02/10 Pixel <pixel@mandrakesoft.com>
-
- * standalone/keyboarddrake, share/keymaps_generate, keyboard.pm:
- - lang2keyboards handle keyboard percentages
- - xmodmaps now named keyboards
-
- * install_steps_interactive.pm: add step summary. remove steps
- configureTimezone and configurePrinter, modify selectKeyboard
-
- * standalone/draknet, standalone/XFdrake: corrected pkgs_install given
-
- * install_any.pm: add preConfigureTimezone
- add step summary. remove steps configureTimezone and configurePrinter
-
- * install2.pm, timezone.pm, install_steps.pm: add step summary. remove
- steps configureTimezone and configurePrinter
-
- * install_interactive.pm: cleanup
-
- * netconnect.pm: corrected back $install call
-
-2001/02/09 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm, install_steps_interactive.pm, install2.pm,
- timezone.pm: configureTimezone doesn't take parameter
- /etc/sysconfig/clock
-
-2001/02/09 Pixel <pixel@mandrakesoft.com>
-
- * interactive_gtk.pm, interactive.pm, interactive_newt.pm: add button
- handling, quite weird behaviour though cuz of newt sillyness
-
- * install2.pm: configureTimezone doesn't take parameter
- /etc/sysconfig/clock
- (main): have compatibility with old stage1 (rhimage -> image)
- (formatPartitions):
- s|etc/sysconfig/consoletrans|etc/sysconfig/console/consoletrans|
- as it should now be (see lang.pm 1.143)
-
- * install_steps.pm, install_steps_interactive.pm, timezone.pm:
- configureTimezone doesn't take parameter /etc/sysconfig/clock
-
-2001/02/09 siegel
-
- * share/po/de.po: new german version
-
-2001/02/08 dam's <damien@mandrakesoft.com>
-
- * standalone/drakgw: implemented or updated embedded mode
- added embedded and (ugly) wizard mode.
-
- * standalone/printerdrake, standalone/mousedrake, standalone/diskdrake,
- standalone/keyboarddrake: implemented or updated embedded mode
-
- * standalone/draknet: implemented or updated embedded mode
- added embedded mode
-
- * standalone/XFdrake: implemented or updated embedded mode
- corrected compilation bug.
-
- * standalone/drakboot: implemented or updated embedded mode
- updated embedded mode. Should work, not tested in real world
-
- * netconnect.pm: removed testing wizard instruction
-
-2001/02/08 Franēois Pons <fpons@mandrakesoft.com>
-
- * ftp.pm: fixed wrong URLPREFIX formation if no user given.
-
- * standalone/XFdrake: fix the previous changelog wich was wrong (bad
- spelling),
- added a char in comment to allow a new release (thanks to pixel :-)
- make sure SHARE_PATH is set.
- fixed SHARE_PATH to make sure it is setted.
-
- * Xconfigurator.pm: added DRI experimental support (sis, radeon). Prefer
- XF3 for SiS card.
-
- * pkgs.pm: fixed problem for updating hdlist after going back to partition
- step.
-
-2001/02/08 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/tools.c, mdk-stage1/config-stage1.h, mdk-stage1/network.c:
- better memory detection (from wonderful drakx)
-
-2001/02/08 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/cy.po, share/po/nl.po,
- share/po/ja.po, share/po/wa.po, share/po/sv.po, share/po/is.po,
- share/po/hu.po, share/po/zh_TW.Big5.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/fi.po, share/po/no.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/sl.po, share/po/br.po,
- share/po/ca.po, share/po/gl.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/ro.po, share/po/da.po, share/po/cs.po,
- share/po/af.po: updated Norwegian file
-
-2001/02/08 Pixel <pixel@mandrakesoft.com>
-
- * common.pm (availableRamMB): cleanup
-
- * standalone.pm, standalone/XFdrake: make sure SHARE_PATH is set now in
- standalone
-
-2001/02/07 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_any.pm: fixed unknown package ARRAY... and locales selection
- according to langs.
-
- * modules.pm: fixed module name without text for SCSI configuration
- dialog, add log.
-
-2001/02/07 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/stage1.c, mdk-stage1/probing.h, mdk-stage1/stage1.h,
- mdk-stage1/tools.c, mdk-stage1/automatic.c, mdk-stage1/init.c,
- mdk-stage1/probing.c, mdk-stage1/automatic.h, mdk-stage1/modules.c,
- mdk-stage1/network.c:
- - use description of network cards when you have to select between
- interfaces; has accuracy even in the case of multiple interface for a
- given kernel module
- - write down a small "shell" to change parameters on the fly (needs
- compile option SPAWN_INTERACTIVE)
-
-2001/02/07 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (choosePackages): better fix for getting
- max install size.
- (choosePackages): call setSelectedFromCompssList with empty
- compssUsersChoice meaning max
-
- * common.pm (formatXiB): more precise for cases like 1_234_000 -> 1.2GB
-
-2001/02/07 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_any.pm: fixed unknown package ARRAY... and locales selection
- according to langs.
-
-2001/02/07 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (choosePackages): better fix for getting
- max install size.
- (choosePackages): call setSelectedFromCompssList with empty
- compssUsersChoice meaning max
-
- * common.pm (formatXiB): more precise for cases like 1_234_000 -> 1.2GB
-
-2001/02/07 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/Makefile: tag VERSION as 8.0 since stage2 graphics now show
- 8.0
-
- * mdk-stage1/network.c: don't reverse hostname lookup if dhcp already gave
- hostname+domain
-
-2001/02/07 Pixel <pixel@mandrakesoft.com>
-
- * share/logo-mandrake.xpm: xpm files should be xpm, not pngs :-(
-
- * detect_devices.pm (hasPCMCIA): created (check for /proc/pcmcia)
-
- * install_steps_interactive.pm (miscellaneous): remove asking about
- numlock and hd optimizations,
- deprecates it (aka don't do anything)
-
- * Xconfigurator.pm (main): don't need isLaptop anymore, use
- detect_devices::hasPCMCIA
-
- * bootloader.pm (suggest): read CLEAN_TMP from sysconfig/system, default
- value of memsize
- if given
- (install): save CLEAN_TMP in sysconfig/system
- (get_append, add_append): get or set an append value
- (has_profiles, set_profiles): get or add an entry office for profiles,
- also add prof=Home in
- the default entry
-
- * any.pm (setupBootloader): take care of profiles and memsize
- (facesnames): only display icons capitalized. This goes along the new
- mandrake_desk where capitalized named faces are the new one. [a-z].*
- icons
- being only kept for compatibility. (in case no capitalized icons
- available
- display everything (compatibility with old mandrake_desk)
-
- * standalone/draknet, standalone/XFdrake: don't pass isLaptop
-
- * install_steps.pm (setupBootloaderBefore, miscellaneousBefore): remove
- taking care of
- profiles and memsize. Now in any & bootloader
- (miscellaneousBefore): CLEAN_TMP is now in $o->{bootloader}, not in
- $o->{miscellaneous} anymore
-
- * install_gtk.pm (create_help_window, create_logo_window): use gtkxpm
-
- * netconnect.pm: remove the $isLaptop unused from a hell lot of functions
-
- * install2.pm (@installSteps): remove miscellaneous
- (main): don't remove pcmcia modules anymore (not there anymore), remove
- /sbin/stage1
-
-2001/02/07 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/Makefile: tag VERSION as 8.0 since stage2 graphics now show
- 8.0
-
- * mdk-stage1/network.c: don't reverse hostname lookup if dhcp already gave
- hostname+domain
-
-2001/02/07 Pixel <pixel@mandrakesoft.com>
-
- * share/logo-mandrake.xpm: xpm files should be xpm, not pngs :-(
-
- * detect_devices.pm (hasPCMCIA): created (check for /proc/pcmcia)
-
- * install_steps_interactive.pm (miscellaneous): remove asking about
- numlock and hd optimizations,
- deprecates it (aka don't do anything)
-
- * Xconfigurator.pm (main): don't need isLaptop anymore, use
- detect_devices::hasPCMCIA
-
- * bootloader.pm (suggest): read CLEAN_TMP from sysconfig/system, default
- value of memsize
- if given
- (install): save CLEAN_TMP in sysconfig/system
- (get_append, add_append): get or set an append value
- (has_profiles, set_profiles): get or add an entry office for profiles,
- also add prof=Home in
- the default entry
-
- * any.pm (setupBootloader): take care of profiles and memsize
- (facesnames): only display icons capitalized. This goes along the new
- mandrake_desk where capitalized named faces are the new one. [a-z].*
- icons
- being only kept for compatibility. (in case no capitalized icons
- available
- display everything (compatibility with old mandrake_desk)
-
- * standalone/draknet, standalone/XFdrake: don't pass isLaptop
-
- * install_steps.pm (setupBootloaderBefore, miscellaneousBefore): remove
- taking care of
- profiles and memsize. Now in any & bootloader
- (miscellaneousBefore): CLEAN_TMP is now in $o->{bootloader}, not in
- $o->{miscellaneous} anymore
-
- * install_gtk.pm (create_help_window, create_logo_window): use gtkxpm
-
- * netconnect.pm: remove the $isLaptop unused from a hell lot of functions
-
- * install2.pm (@installSteps): remove miscellaneous
- (main): don't remove pcmcia modules anymore (not there anymore), remove
- /sbin/stage1
-
-2001/02/07 Chmouel Boudjnah <chmouel@mandrakesoft.com>
-
- * share/rpmsrate: Add usbd to SYSTEM.
-
-2001/02/07 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: updated wizard mode, intro and other stuff
-
- * interactive_gtk.pm, interactive.pm, my_gtk.pm: updated wizard mode
-
- * share/logo-mandrake.xpm: new logo
-
-2001/02/07 Franēois Pons <fpons@mandrakesoft.com>
-
- * http.pm, ftp.pm, pkgs.pm: now fully fixed ftp connection (and http too)
- caused by forked DrakX
- with latent ftp connection.
-
-2001/02/07 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/Makefile: tag VERSION as 8.0 since stage2 graphics now show
- 8.0
-
- * mdk-stage1/network.c: don't reverse hostname lookup if dhcp already gave
- hostname+domain
-
-2001/02/07 Pixel <pixel@mandrakesoft.com>
-
- * share/logo-mandrake.xpm: xpm files should be xpm, not pngs :-(
-
- * detect_devices.pm (hasPCMCIA): created (check for /proc/pcmcia)
-
- * install_steps_interactive.pm (miscellaneous): remove asking about
- numlock and hd optimizations,
- deprecates it (aka don't do anything)
-
- * Xconfigurator.pm (main): don't need isLaptop anymore, use
- detect_devices::hasPCMCIA
-
- * bootloader.pm (suggest): read CLEAN_TMP from sysconfig/system, default
- value of memsize
- if given
- (install): save CLEAN_TMP in sysconfig/system
- (get_append, add_append): get or set an append value
- (has_profiles, set_profiles): get or add an entry office for profiles,
- also add prof=Home in
- the default entry
-
- * any.pm (setupBootloader): take care of profiles and memsize
- (facesnames): only display icons capitalized. This goes along the new
- mandrake_desk where capitalized named faces are the new one. [a-z].*
- icons
- being only kept for compatibility. (in case no capitalized icons
- available
- display everything (compatibility with old mandrake_desk)
-
- * standalone/draknet, standalone/XFdrake: don't pass isLaptop
-
- * install_steps.pm (setupBootloaderBefore, miscellaneousBefore): remove
- taking care of
- profiles and memsize. Now in any & bootloader
- (miscellaneousBefore): CLEAN_TMP is now in $o->{bootloader}, not in
- $o->{miscellaneous} anymore
-
- * install_gtk.pm (create_help_window, create_logo_window): use gtkxpm
-
- * netconnect.pm: remove the $isLaptop unused from a hell lot of functions
-
- * install2.pm (@installSteps): remove miscellaneous
- (main): don't remove pcmcia modules anymore (not there anymore), remove
- /sbin/stage1
-
-2001/02/07 siegel
-
- * share/po/de.po: new german version
-
-2001/02/06 Franēois Pons <fpons@mandrakesoft.com>
-
- * ftp.pm: reworked ftp behaviour a bit for cooperative connection (avoid
- opening
- and closing connection too fast for each transaction). There seems
- to be some problem for retrieving twice a package, this cause huge pause
- between each transaction, the best is to avoid them so ?
-
-2001/02/06 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/tools.c, mdk-stage1/stdio-frontend.c, mdk-stage1/stage1.c,
- mdk-stage1/init.c, mdk-stage1/newt-frontend.c, mdk-stage1/network.c,
- mdk-stage1/modules.c, mdk-stage1/disk.c:
- - slighty change the message when exiting successfully from install,
- to not mess with abnormal termination
- - get back dialog for hostname and domain in case of unable to guess
- domain
- - try to resolve DNS if self-ip can't resolve, to guess domain
- - remember entries so that when there is a problem you don't have to
- re-enter everything (ncurses sucking stuff in case of stdio-frontend..)
- - use larger buffer for list_directory since in /dev there can be
- *many* files
-
-2001/02/05 dam's <damien@mandrakesoft.com>
-
- * Makefile.drakxtools, Makefile: added wizard.rc handling in Makfiles.
-
- * standalone/draknet: added infos recovering.
-
- * netconnect.pm: added load_conf() to recover saved infos from conffile.
-
-2001/02/05 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_any.pm: removed abusive white char.
- updated to use urpmi new format (change fakemedium to better label)
- fixed frame buffer usage if not enabled (installation of Aurora)
- clean up and remove unused code.
-
- * ftp.pm: rebuild URLPREFIX as stage1 does not provide it anymore.
-
- * pkgs.pm: updated to use urpmi new format (change fakemedium to better
- label)
-
- * Xconfigurator.pm: Removed Device3Dfx as it is no more.
-
- * install_steps.pm: fixed frame buffer usage if not enabled (installation
- of Aurora)
- clean up and remove unused code.
-
-2001/02/05 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/list: updated list of gconv modules
-
-2001/02/05 Pixel <pixel@mandrakesoft.com>
-
- * commands.pm (head_tail): fix usage
-
- * interactive_gtk.pm (create_ctree): node_moveto done only if
- node_is_visible is not full
-
-2001/02/04 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/mar/mar-frontend.c: fix bug when creating marfiles with
- file-not-found in args
-
-2001/02/04 Pixel <pixel@mandrakesoft.com>
-
- * interactive_newt.pm: fix adaptation to the terminal size, should now
- work in 80x25
-
- * Xconfigurator.pm (monitorConfiguration): better handling of auto_install
-
- * install_steps_interactive.pm (choosePackages): don't call
- chooseSizeToInstall even with experts
-
- * install_steps_gtk.pm (charsetChanged): re-create steps window
-
-2001/02/03 dam's <damien@mandrakesoft.com>
-
- * modules.pm, standalone/draknet, netconnect.pm: corrected module.conf
- update, net conf saving, and no wizard by default.
-
-2001/02/03 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/da.po: updated Danish file
-
-2001/02/03 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator.pm (monitorConfiguration): ease use of {X}{type} in
- auto_installs
-
- * install_steps_gtk.pm (charsetChanged): created, takes care of setting to
- the right charset the windows
-
- * install_steps_interactive.pm (selectLanguage): call charsetChanged
-
- * share/rpmsrate: fix ``LOCALES "zh_CN"'' with ``LOCALES"zh_CN"''
- move ftp to SYSTEM so that it is installed
-
- * Makefile: install cardmgr
-
- * modules.pm (configure_pcmcia): cleanup
-
-2001/02/03 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator.pm (monitorConfiguration): ease use of {X}{type} in
- auto_installs
-
- * install_steps_gtk.pm (charsetChanged): created, takes care of setting to
- the right charset the windows
-
- * install_steps_interactive.pm (selectLanguage): call charsetChanged
-
- * share/rpmsrate: fix ``LOCALES "zh_CN"'' with ``LOCALES"zh_CN"''
- move ftp to SYSTEM so that it is installed
-
- * Makefile: install cardmgr
-
- * modules.pm (configure_pcmcia): cleanup
-
-2001/02/02 dam's <damien@mandrakesoft.com>
-
- * share/wizard.rc: added rc file for wizard mode
-
-2001/02/02 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator.pm (monitorConfiguration): better default for DDC probe
- fails and
- auto_install and not provided any info about the monitor
-
- * my_gtk.pm (gtkcreate_xpm): error handling with error message
-
- * share/rpmsrate: all GNOME and KDE moved out of GRAPHICAL_DESKTOP
-
- * install_steps.pm (configureXBefore): set XKB_IN_USE=no if !$has_xkb in
- /etc/sysconfig/i18n
-
- * mdk-stage1/disk.c (try_with_device): bloody guillaume changed
- /tmp/hdimage to /tmp/disk without even
- telling, changing it back as i don't see any good reason for the move.
-
- * install_any.pm (setPackages): in auto_installs, default to all groups
- chosen, unless
- compssUsersChoice exist. Won't change anything unless compssListLevel is
- used of course
-
- * Xconfigurator_consts.pm: add low_default_monitor for default of
- auto_installs
-
- * interactive_gtk.pm (ask_from_entries_refW): use gtkxpm
-
- * Makefile, partition_table.pm, pkgs.pm, partition_table_raw.pm,
- diskdrake.pm: using the new formatXiB
-
- * detect_devices.pm (getCompaqSmartArray): adapted getCompaqSmartArray to
- the fact that kernel
- 2.4 uses /proc/driver/array instead of /proc/array. Also adapted the
- regexp now that ida/c0d0p? is no more at the beginning of the line.
- (get): cleanup, remove hasIDE hasSCSI...
-
- * common.pm (formatXiB): created, format a number in human readable format
-
-2001/02/02 Pixel <pixel@mandrakesoft.com>
-
- * mdk-stage1/disk.c (try_with_device): bloody guillaume changed
- /tmp/hdimage to /tmp/disk without even
- telling, changing it back as i don't see any good reason for the move.
-
-2001/02/02 dam's <damien@mandrakesoft.com>
-
- * interactive_gtk.pm, standalone/draknet, netconnect.pm, my_gtk.pm,
- standalone/diskdrake: recoded wizard mode
- corrected some stuff.
- trying not to break draknet for cooker snapshot
-
-2001/02/02 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator.pm (monitorConfiguration): better default for DDC probe
- fails and
- auto_install and not provided any info about the monitor
-
- * install_any.pm (setPackages): in auto_installs, default to all groups
- chosen, unless
- compssUsersChoice exist. Won't change anything unless compssListLevel is
- used of course
-
- * share/locales.tar.bz2: yet another LC_NUMERIC, seems like the previous i
- chose was glibc-2.1 :-(
- this one en_US and seems all right!
-
- * Xconfigurator_consts.pm: add low_default_monitor for default of
- auto_installs
-
- * Makefile, partition_table.pm, pkgs.pm, partition_table_raw.pm,
- diskdrake.pm: using the new formatXiB
-
- * install_steps.pm (configureXBefore): set XKB_IN_USE=no if !$has_xkb in
- /etc/sysconfig/i18n
-
- * common.pm (formatXiB): created, format a number in human readable format
-
- * mdk-stage1/disk.c (try_with_device): bloody guillaume changed
- /tmp/hdimage to /tmp/disk without even
- telling, changing it back as i don't see any good reason for the move.
-
-2001/02/01 dam's <damien@mandrakesoft.com>
-
- * standalone/draknet: new draknet snapshot. Still unuseable
-
- * interactive_gtk.pm, netconnect.pm, my_gtk.pm: updated embedded mode in
- install.
-
-2001/01/31 dam's <damien@mandrakesoft.com>
-
- * standalone/draknet: corected translation and conflict.
-
-2001/01/31 Franēois Pons <fpons@mandrakesoft.com>
-
- * modules.pm: added missing die if modprobe failed on live upgrade.
-
- * pkgs.pm: added rpmrebuilddb directory cleaning before, remove old rpm
- file
- if everything has been successfull.
-
- * install_steps.pm: changed to clean selection for non expert as used for
- group selection
- because it is not cleaned, need better solution TODO.
-
-2001/01/31 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/cy.po, share/po/nl.po,
- share/po/ja.po, share/po/wa.po, share/po/sv.po, share/po/is.po,
- share/po/hu.po, share/po/zh_TW.Big5.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/fi.po, share/po/no.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/sl.po, share/po/br.po,
- share/po/ca.po, share/po/gl.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/ro.po, share/po/da.po, share/po/cs.po,
- share/po/af.po: updated pot file
-
- * standalone/draknet: Fixed English typos (in English you DON'T PUT SPACES
- BEFORE COLON (:);
- and it is "Profile" and not "Profil")
- CV:
- ----------------------------------------------------------------------
-
-2001/01/31 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (choosePackagesTree): created, simple
- ask_many_from_list to choose
- individual packages
- (choosePackages): log for debug
- (choosePackages): don't ask to install in beginner. Max is chosen
- (setRootPassword): help not based on installClass being server or not
- (selectInstallClass): remove installClass choice (was
- normal/devel/server)
- (chooseGroups): fix for individual package selection flag
-
- * netconnect.pm (get_net_device): more cleanup syntax
- (get_net_device): cleanup syntax
-
- * install_steps.pm (selectLanguage): warning for debug
- (miscellaneousBefore): don't use installClass to decide to use
- supermount
- or not. Choice is done on $::corporate. Can't say "no supermount in
- server
- installs" anymore
- (selectInstallClass): emptied
- (setupSCSI): don't configure PCMCIA if there is no PCMCIA
-
- * install_any.pm (g_auto_install): installClass removed
- (setPackages): do not preselect compssUsers entries
-
- * install2.pm (main): don't set installClass=normal meta_class desktop
- (deprecated)
- (miscellaneous): TYPE= removed (was installClass)
- (selectInstallClass): don't set $o->{partitions}. diskdrake will have to
- ask in a set of possibilities
- ($o): replace fclass by fbeginner and fexpert
- ($o): default security level to 2 since it can't be based on
- installClass (deprecated)
-
- * install_steps_gtk.pm: restore window size for time being
-
- * pkgs.pm (psUpdateHdlistsDeps): also copy rpmsrate
-
- * Xconfigurator.pm (main): better error message for auto_install failing
-
- * interactive.pm (ask_many_from_list): fix sorting
-
- * any.pm (set_autologin): log to ensure AUTOLOGIN is not badly set by
- drakx. Still
- need finding the guilty
-
-2001/01/31 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * keyboard.pm: more kbd corrections
- fixed soem keybopard values
-
-2001/01/31 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (choosePackagesTree): created, simple
- ask_many_from_list to choose
- individual packages
- (choosePackages): log for debug
- (choosePackages): don't ask to install in beginner. Max is chosen
- (setRootPassword): help not based on installClass being server or not
- (selectInstallClass): remove installClass choice (was
- normal/devel/server)
- (chooseGroups): fix for individual package selection flag
-
- * install_steps.pm (selectLanguage): warning for debug
- (miscellaneousBefore): don't use installClass to decide to use
- supermount
- or not. Choice is done on $::corporate. Can't say "no supermount in
- server
- installs" anymore
- (selectInstallClass): emptied
- (setupSCSI): don't configure PCMCIA if there is no PCMCIA
-
- * install_any.pm (g_auto_install): installClass removed
- (setPackages): do not preselect compssUsers entries
-
- * install2.pm (main): don't set installClass=normal meta_class desktop
- (deprecated)
- (miscellaneous): TYPE= removed (was installClass)
- (selectInstallClass): don't set $o->{partitions}. diskdrake will have to
- ask in a set of possibilities
- ($o): replace fclass by fbeginner and fexpert
- ($o): default security level to 2 since it can't be based on
- installClass (deprecated)
-
- * install_steps_gtk.pm: restore window size for time being
-
- * pkgs.pm (psUpdateHdlistsDeps): also copy rpmsrate
-
- * Xconfigurator.pm (main): better error message for auto_install failing
-
- * interactive.pm (ask_many_from_list): fix sorting
-
- * any.pm (set_autologin): log to ensure AUTOLOGIN is not badly set by
- drakx. Still
- need finding the guilty
-
-2001/01/30 dam's <damien@mandrakesoft.com>
-
- * standalone/draknet: new draknet. unstable
-
- * netconnect.pm: updated
- debugged network card configuration after pixelisation.
-
-2001/01/30 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/stdio-frontend.c, mdk-stage1/newt-frontend.c: prevent from
- trying to set progressbar to more than 100% (rescue is more compressed
- than drakx)
-
- * share/rpmsrate: add ldetect to config stuff I want to have on all
- installs (lspcidrake)
-
-2001/01/30 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm, netconnect.pm, install_interactive.pm:
- adapt format functions given to ask_from_listf. $_ is no more set
-
- * mouse.pm (detect): replace commands::modprobe by modules::load as it
- should (or??)
-
- * perl2etags: adapt to new etags (emacs 21) format
-
- * raid.pm (make): replace commands::modprobe by modules::load as it should
- (or??)
-
- * perl2fcalls (@exclude_calls): add Eth as dam's use it quite a lot in his
- regexps
-
- * share/locales.tar.bz2: misc/LC_NUMERIC tells to use "," as number
- separator instead of ".".
- The sheer result is:
- "0.6" * 10 gives 0
- "0,6" * 10 gives 6
-
- So i have overwritten misc/LC_NUMERIC with
- /usr/share/locale/en/LC_NUMERIC and
- it works nicely now :)
-
-2001/01/29 dam's <damien@mandrakesoft.com>
-
- * standalone/drakboot: corrected typo
-
-2001/01/29 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * modules.pm:
- - deprecate "hdreiser.img" since we have room for "reiserfs.o" in
- "hd.img"
- - following deprecation of "other.img", reintegrate big modules in
- relevant boot disks
-
-2001/01/29 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * lang.pm, share/po/et.po: updated Estonian file
-
-2001/01/29 Pixel <pixel@mandrakesoft.com>
-
- * detect_devices.pm (getCompaqSmartArray): /proc/array/ida0 can contain
- more than one ida/c0d0p*
-
-2001/01/28 dam's <damien@mandrakesoft.com>
-
- * share/help.xpm, network.pm, ChangeLog, netconnect.pm: updated
-
-2001/01/28 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (choosePartitionsToFormat): fixed horrible
- bug causing reiserfs partitions
- not to be displayed/asked for formatting. The default value being used.
-
- * any.pm (get_autologin): adapt to new format of sysconfig/desktop
-
-2001/01/28 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (choosePartitionsToFormat): fixed horrible
- bug causing reiserfs partitions
- not to be displayed/asked for formatting. The default value being used.
-
- * any.pm (get_autologin): adapt to new format of sysconfig/desktop
-
-2001/01/28 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (choosePartitionsToFormat): fixed horrible
- bug causing reiserfs partitions
- not to be displayed/asked for formatting. The default value being used.
-
- * any.pm (get_autologin): adapt to new format of sysconfig/desktop
-
-2001/01/28 siegel
-
- * share/po/de.po: new german version
-
-2001/01/26 dam's <damien@mandrakesoft.com>
-
- * interactive_gtk.pm: updated embedded mode
-
- * standalone/drakboot: added embedded mode
-
-2001/01/26 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/dietlibc/include/stdio.h: adjust include files to compile
- bzlib
-
- * mdk-stage1/stage1.c: restore passing of pcmcia info to stage2
-
- * mdk-stage1/bzlib/compress.c, mdk-stage1/bzlib/bzlib.c,
- mdk-stage1/bzlib/randtable.c, mdk-stage1/bzlib/huffman.c,
- mdk-stage1/modules.c, mdk-stage1/bzlib/crctable.c,
- mdk-stage1/bzlib/decompress.c, mdk-stage1/bzlib/Makefile,
- mdk-stage1/bzlib/bzlib_private.h, mdk-stage1/tools.c,
- mdk-stage1/Makefile, mdk-stage1/bzlib/blocksort.c:
- - use bzlib instead of zlib to reduce overall size
- - take home my own bzlib code to (1) reduce code size with good
- compile options (2) make it compile and link against dietlibc
-
- * mdk-stage1/mar/mar-extract-only.c, mdk-stage1/mar/mar-extract-only.h,
- mdk-stage1/mar/mar-frontend.c, mdk-stage1/mar/mar.h,
- mdk-stage1/mar/Makefile: mar now uses bzlib, no more zlib
-
- * mdk-stage1/pci-resource/update-pci-ids.pl: comply to new "mar -l" format
-
-2001/01/26 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_gtk.pm (installPackages): prepare for advertising...
-
- * interactive_newt.pm (ask_from_entries_refW): major rework for new
- format, still need work
- (ask_from_entries_refW): use NEWT_FLAG_PASSWORD (aka 1<<11) instead of
- NEWT_FLAG_HIDDEN
- (myTextbox): wrap the text if needed
- (myTextbox): use a vertical scrollbar if needed
-
- * Newt/Newt.xs (newtFormAddGrid): new name for
- newtGridAddComponentsToForm, swap
- parameters for much better understanding
- (newtListboxGetCurrent): returns a SV (together with
- newtListboxAddEntry)
- (newtListboxAddEntry): data is now a SV
-
-2001/01/26 siegel
-
- * share/po/de.po: .
-
-2001/01/26 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_gtk.pm (installPackages): prepare for advertising...
-
- * interactive_newt.pm (ask_from_entries_refW): major rework for new
- format, still need work
- (ask_from_entries_refW): use NEWT_FLAG_PASSWORD (aka 1<<11) instead of
- NEWT_FLAG_HIDDEN
- (myTextbox): wrap the text if needed
- (myTextbox): use a vertical scrollbar if needed
-
- * Newt/Newt.xs (newtFormAddGrid): new name for
- newtGridAddComponentsToForm, swap
- parameters for much better understanding
- (newtListboxGetCurrent): returns a SV (together with
- newtListboxAddEntry)
- (newtListboxAddEntry): data is now a SV
-
-2001/01/26 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_gtk.pm (installPackages): prepare for advertising...
-
- * interactive_newt.pm (ask_from_entries_refW): major rework for new
- format, still need work
- (ask_from_entries_refW): use NEWT_FLAG_PASSWORD (aka 1<<11) instead of
- NEWT_FLAG_HIDDEN
- (myTextbox): wrap the text if needed
- (myTextbox): use a vertical scrollbar if needed
-
- * Newt/Newt.xs (newtFormAddGrid): new name for
- newtGridAddComponentsToForm, swap
- parameters for much better understanding
- (newtListboxGetCurrent): returns a SV (together with
- newtListboxAddEntry)
- (newtListboxAddEntry): data is now a SV
-
-2001/01/25 dam's <damien@mandrakesoft.com>
-
- * install2.pm: disable steps 'packages choice', 'configure X', and
- 'configure' 'printer'
-
- * install_steps_interactive.pm: don't oblige user addition
-
- * network.pm: display ethernet module
-
- * netconnect.pm: network informations filled into
- $prefix/var/lib/naat/configuration
-
-2001/01/25 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/stage1-data/stage1.tar.bz2: restore symlink /sbin/sh ->
- /usr/bin/sh for stage2
-
- * mdk-stage1/probing.h: better tightness of probing stuff
-
- * mdk-stage1/probing.c: better tightness of probing stuff
- print warning message when insmod of PCI-detected device fails
-
- * mdk-stage1/stage1.c:
- - mdk-stage1: now linux-2.4 uses floppy.o to access floppy drives
- - remove fat/vfat modules from some boot floppies now that we don't
- need it anymore
-
- * mdk-stage1/pci-resource/update-pci-ids.pl: re-integrate autoprobe of
- tulip network cards, kernel-2.4 has strange way to classify some of its
- net modules..
-
-2001/01/25 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/it.po: Waw, italian translator is very fast :)
- updated Indonesian and Italian fiels
-
- * share/po/id.po: updated Indonesian and Italian fiels
-
- * share/locales.tar.bz2: added iso9 locale definitions
-
- * lang.pm: fixed LANGUAGE for mk locale
-
-2001/01/25 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm (spawnShell): fix error message
-
-2001/01/24 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/stage1-data/stage1.tar.bz2:
- - clean up deprecated symlinks (insmod, rmmod, cardmgr)
- - remove unecessary device files
-
- * mdk-stage1/pcmcia/cardmgr.c, mdk-stage1/pcmcia/lex_config.c,
- mdk-stage1/pcmcia/vg468.h, mdk-stage1/pcmcia/cardmgr.h,
- mdk-stage1/pcmcia/bulkmem.h, mdk-stage1/pcmcia/i82365.h,
- mdk-stage1/pcmcia/cirrus.h, mdk-stage1/pcmcia/driver_ops.h,
- mdk-stage1/pcmcia/config.h, mdk-stage1/pcmcia/version.h,
- mdk-stage1/pcmcia/cistpl.h, mdk-stage1/stage1.c,
- mdk-stage1/pcmcia_config.patch, mdk-stage1/pcmcia/cs.h,
- mdk-stage1/pcmcia/Makefile, mdk-stage1/pcmcia/ds.h,
- mdk-stage1/pcmcia/pcmcia.h, mdk-stage1/pcmcia/cs_types.h,
- mdk-stage1/pcmcia/yacc_config.c, mdk-stage1/Makefile,
- mdk-stage1/pcmcia/tcic.h, mdk-stage1/pcmcia/yacc_config.h,
- mdk-stage1/pcmcia/pcmcia_probe.c: stage1: add pcmcia
-
-2001/01/24 Pixel <pixel@mandrakesoft.com>
-
- * partition_table.pm (%types): s|Compaq|Compaq/HP| per request of fpitoun
-
- * install_steps.pm (afterInstallPackages): cleanup
-
- * interactive.pm: better documentation of ask_from_entries_refH features
- (entry)
-
-2001/01/24 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/stage1-data/stage1.tar.bz2:
- - clean up deprecated symlinks (insmod, rmmod, cardmgr)
- - remove unecessary device files
-
- * mdk-stage1/pcmcia/cardmgr.c, mdk-stage1/pcmcia/lex_config.c,
- mdk-stage1/pcmcia/vg468.h, mdk-stage1/pcmcia/cardmgr.h,
- mdk-stage1/pcmcia/bulkmem.h, mdk-stage1/pcmcia/i82365.h,
- mdk-stage1/pcmcia/cirrus.h, mdk-stage1/pcmcia/driver_ops.h,
- mdk-stage1/pcmcia/config.h, mdk-stage1/pcmcia/version.h,
- mdk-stage1/pcmcia/cistpl.h, mdk-stage1/stage1.c,
- mdk-stage1/pcmcia_config.patch, mdk-stage1/pcmcia/cs.h,
- mdk-stage1/pcmcia/Makefile, mdk-stage1/pcmcia/ds.h,
- mdk-stage1/pcmcia/pcmcia.h, mdk-stage1/pcmcia/cs_types.h,
- mdk-stage1/pcmcia/yacc_config.c, mdk-stage1/Makefile,
- mdk-stage1/pcmcia/tcic.h, mdk-stage1/pcmcia/yacc_config.h,
- mdk-stage1/pcmcia/pcmcia_probe.c: stage1: add pcmcia
-
-2001/01/24 Pixel <pixel@mandrakesoft.com>
-
- * partition_table.pm (%types): s|Compaq|Compaq/HP| per request of fpitoun
-
- * install_steps.pm (afterInstallPackages): cleanup
-
- * interactive.pm: better documentation of ask_from_entries_refH features
- (entry)
-
-2001/01/23 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/cy.po, share/po/nl.po,
- share/po/ja.po, share/po/wa.po, share/po/sv.po, share/po/is.po,
- share/po/hu.po, share/po/zh_TW.Big5.po, share/po/it.po, share/po/pl.po,
- share/po/fi.po, share/po/no.po, share/po/zh_CN.GB2312.po,
- share/po/th.po, share/po/el.po, share/po/sk.po, share/po/lt.po,
- share/po/sl.po, share/po/br.po, share/po/ca.po, share/po/gl.po,
- share/po/lv.po, share/po/uk.po, share/po/eo.po, share/po/ro.po,
- share/po/da.po, share/po/cs.po, share/po/af.po: updated Greek file
-
-2001/01/22 dam's <damien@mandrakesoft.com>
-
- * install_steps_interactive.pm, netconnect.pm: corrected slide bar, and
- added network conf save in /root/networking.tmp
-
-2001/01/22 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/network.c: add automatic support in choice of NET device, in
- case of multiple NET devices
- consistent dot-terminated error messages, consistent no-dot log messages
- re-put Netmask input per default (void entry -> automatic guess)
-
- * mdk-stage1/stage1.c, mdk-stage1/dhcp.c, mdk-stage1/modules.c: consistent
- dot-terminated error messages, consistent no-dot log messages
-
-2001/01/22 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/id.po: updated Indonesian file
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/es.po,
- share/po/fr.po, share/po/bg.po, share/po/ga.po, share/po/sr.po,
- share/po/de.po, share/po/et.po, share/po/tr.po, share/po/eu.po,
- share/po/az.po, share/po/ru.po, share/po/pt_BR.po, share/po/ko.po,
- share/po/cy.po, share/po/nl.po, share/po/ja.po, share/po/sv.po,
- share/po/is.po, share/po/hu.po, share/po/zh_TW.Big5.po, share/po/it.po,
- share/po/pl.po, netconnect.pm, share/po/no.po, share/po/fi.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/sl.po, share/po/br.po,
- share/po/ca.po, share/po/gl.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/ro.po, share/po/da.po, share/po/cs.po,
- share/po/af.po: updated po files
-
- * share/po/wa.po: updated po files
- updated pot file
-
- * install2.pm, lang.pm: fixed the places where console fonts and related
- files are put under
- /etc/sysconfig to the places really used by console-tools
-
- * share/po/DrakX.pot: updated pot file
-
- * share/po/hr.po: updated po files
- updated Croatian file
-
-2001/01/22 Pixel <pixel@mandrakesoft.com>
-
- * pkgs.pm (read_rpmsrate): if $packages is undef, ignore it. That way,
- read_rpmsrate
- can be called standalone.
-
- * network.pm, install_steps_interactive.pm, netconnect.pm, my_gtk.pm,
- install_interactive.pm, install2.pm, partition_table.pm, install_any.pm,
- any.pm, printerdrake.pm, Xconfigurator.pm, diskdrake.pm: $::beginner is
- deprecated, replaced by !$::expert
-
-2001/01/21 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/url.c, mdk-stage1/network.c: allow providing void password in
- network/ftp installs
-
-2001/01/21 Pixel <pixel@mandrakesoft.com>
-
- * interactive_gtk.pm (create_ctree): fix case with formatted list
-
-2001/01/21 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/stage1.c, mdk-stage1/nfsmount.c: fix remaining perror's
-
- * mdk-stage1/url.c, mdk-stage1/network.c: allow providing void password in
- network/ftp installs
-
-2001/01/21 Pixel <pixel@mandrakesoft.com>
-
- * interactive_gtk.pm (create_ctree): fix case with formatted list
-
-2001/01/21 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/stage1.c, mdk-stage1/nfsmount.c: fix remaining perror's
-
-2001/01/21 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/pt_BR.po, share/po/da.po: updated Danish and Brazilian files
-
-2001/01/21 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/nfsmount.c: fix remaining perror's
-
- * mdk-stage1/stage1.c: fix remaining perror's
- - better msg in fatal errors
- - do not include code to spawn a shell for releases
-
-2001/01/21 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/pt_BR.po, share/po/da.po: updated Danish and Brazilian files
-
-2001/01/21 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (selectMouse): use ask_from_treelist_
-
- * interactive.pm (ask_from_treelist_): created, split with the separator,
- call translate on
- words, then re-join.
-
-2001/01/19 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_any.pm: fixes for CD not changeable.
-
- * install_steps_interactive.pm: fixed unselect group and inoperant
- individual package selection.
- removed expert mode and install class.
-
-2001/01/18 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps.pm: fixed obligation of relative large install, now
- minimum is lesser.
-
- * install_steps_gtk.pm: make sure no ratio above 1 can occur, still need
- to see why as it happens
- on install-abort-choices-install or
- install-abort-choices-fs-format(none)-choices-install
-
- * live_install: update live install to match /tmp/image instead of
- /tmp/rhimage.
-
-2001/01/17 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps.pm, install_any.pm: fixes with /tmp/rhimage and
- /tmp/image.
-
- * pkgs.pm: update to use new header file format in hdlist (added arch) but
- depslist has not it...
-
- * install2.pm: fixes with /tmp/rhimage and /tmp/image
-
-2001/01/16 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/bg.po: updated bulgarian file
-
-2001/01/12 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/url.c: use strrchr instead of doing it by hand
-
- * mdk-stage1/insmod-busybox/busybox.h,
- mdk-stage1/insmod-busybox/utility.c, mdk-stage1/insmod-busybox/insmod.c:
-
- - replace remaining perror's with log_perror's
- - little code cleanup
-
- * mdk-stage1/stage1-data/stage1.tar.bz2,
- mdk-stage1/stage1-data/stage1-with-sash.tar.bz2: add /dev/fd0
-
- * mdk-stage1/stage1.c, mdk-stage1/modules.h, mdk-stage1/tools.c,
- mdk-stage1/tools.h, mdk-stage1/disk.c, mdk-stage1/modules.c:
- - add load of third party modules in Expert mode (PS rulz)
-
-2001/01/12 siegel
-
- * share/po/de.po: updates
-
-2001/01/12 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps_interactive.pm: fixed addUser for invocation of
- any::ask_users.
- fixed bad invocation of installation of X server.
-
-2001/01/12 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/cdrom.c: add more memory carefulness with CDROM install
- - add wait_message for initializing of CDROM's (it can be long when
- it's SCSI)
- - print CDROM drive names (model) in dialogs
-
- * mdk-stage1/mount.c, mdk-stage1/lomount.c, mdk-stage1/disk.c:
- - fix behaviour with bad ISO images (DISK installs)
- - better dialogs for DISK installs
-
-2001/01/12 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * lang.pm: make lang list in format for tree-selector
-
-2001/01/11 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/disk.c: fix failing umount for DISK installs in some failing
- loopback situations
- act nicely when no partitions are found on some disk
-
- * mdk-stage1/modules.h: polish generic blank.img situation (no modules
- and/or modules.dep available)
-
- * mdk-stage1/lomount.c: fix failing umount for DISK installs in some
- failing loopback situations
- better log messages
- continue anyway when insmod'ing of modules fail (for blank.img)
-
- * mdk-stage1/probing.c: close some fd's
-
- * mdk-stage1/stage1.c, mdk-stage1/modules.c: polish generic blank.img
- situation (no modules and/or modules.dep available)
- continue anyway when insmod'ing of modules fail (for blank.img)
-
-2001/01/11 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/Makefile, mdk-stage1/disk.c:
- - add DISK install from ISO image file
- - add FTP
- - add HTTP
- - use single place for mountpoints and static directories
-
- * mdk-stage1/hack, mdk-stage1/lomount.c, mdk-stage1/lomount.h:
- - add DISK install from ISO image file
-
- * mdk-stage1/stage1.c, mdk-stage1/config-stage1.h, mdk-stage1/stage1.h,
- mdk-stage1/tools.c, mdk-stage1/stdio-frontend.c, mdk-stage1/cdrom.c,
- mdk-stage1/tools.h, mdk-stage1/newt-frontend.c, mdk-stage1/network.c:
- - add FTP
- - add HTTP
- - use single place for mountpoints and static directories
-
- * mdk-stage1/insmod-busybox/Config.h: tweak config
-
-2001/01/11 Pixel <pixel@mandrakesoft.com>
-
- * standalone/adduserdrake: adduserdrake may handles autologin
-
- * install_steps.pm (addUser): set autologin
-
- * install2.pm (addUser): moved setAuthentication to install_steps::addUser
-
- * install_steps_interactive.pm (addUser): fix
-
-2001/01/11 dam's <damien@mandrakesoft.com>
-
- * install_steps.pm, install_steps_interactive.pm, ChangeLog,
- netconnect.pm: updated
-
-2001/01/11 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/pci-resource/update-pci-ids.pl: remove nasty messages when
- mar or marfiles not available to perform consistency check
-
-2001/01/11 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm (configureX): call directly $o->pkg_install, no need to
- add 'XFree86-' at the beginning
- (addUser): use any::write_passwd_user
- (setRootPassword): use any::write_passwd_user
- (configureX): fix bad $install given to Xconfigurator::main
-
- * any.pm (write_passwd_user): add or update an entry in /etc/passwd
- (ask_users): created, interactively ask users to add (used in
- adduserdrake and install)
- (allocUsers, addUsers): changed the prototype
- (setupBootloader): grep out fat partitions for the "Boot device"
- propositions (people are too stupid)
-
- * my_gtk.pm (main): third argument is a function to call before leaving in
- case of
- "cancel" clicked.
-
- * interactive_gtk.pm (create_ctree): fix default value selecting failing
- (in case of "format")
- (ask_from_entries_refW): apply "format" on label when icon is missing
- for iconlist
- (ask_from_entries_refW): handle "canceled" callback. Permits to overrule
- the cancel.
-
- * install_any.pm (g_auto_install): deep copy of $o->{users} because we're
- modifying it
-
- * install_steps_interactive.pm (addUser): use any::ask_users
-
- * standalone/adduserdrake: use any::ask_users
-
- * Xconfig.pm (getinfoFromDDC): removed devices::make("/dev/zero") (now in
- install2::main)
-
- * install2.pm (main): move devices::make("/dev/zero") needed by ddcxinfos
- here
-
- * interactive.pm (ask_from_entries_refH_powered_normalize): "canceled"
- callback defaults
- to "sub { 0 }"
-
-2001/01/11 Pixel <pixel@mandrakesoft.com>
-
- * interactive_gtk.pm (ask_from_entries_refW): apply "format" on label when
- icon is missing for iconlist
- (ask_from_entries_refW): handle "canceled" callback. Permits to overrule
- the cancel.
-
- * install_steps.pm (configureX): call directly $o->pkg_install, no need to
- add 'XFree86-' at
- the beginning
- (addUser): use any::write_passwd_user
- (setRootPassword): use any::write_passwd_user
- (configureX): fix bad $install given to Xconfigurator::main
-
- * any.pm (write_passwd_user): add or update an entry in /etc/passwd
- (ask_users): created, interactively ask users to add (used in
- adduserdrake
- and install)
- (allocUsers, addUsers): changed the prototype
- (setupBootloader): grep out fat partitions for the "Boot device"
- propositions (people are too stupid)
-
- * my_gtk.pm (main): third argument is a function to call before leaving in
- case of
- "cancel" clicked.
-
- * install_any.pm (g_auto_install): deep copy of $o->{users} because we're
- modifying it
-
- * install_steps_interactive.pm (addUser): use any::ask_users
-
- * standalone/adduserdrake: use any::ask_users
-
- * Xconfig.pm (getinfoFromDDC): removed devices::make("/dev/zero") (now in
- install2::main)
-
- * install2.pm (main): move devices::make("/dev/zero") needed by ddcxinfos
- here
-
- * interactive.pm (ask_from_entries_refH_powered_normalize): "canceled"
- callback defaults
- to "sub { 0 }"
-
-2001/01/11 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator.pm (autologin): moved to package any
-
- * interactive_gtk.pm (ask_from_entries_refW): apply "format" on label when
- icon is missing for iconlist
- (ask_from_entries_refW): handle "canceled" callback. Permits to overrule
- the cancel.
-
- * install_steps.pm (configureX): call directly $o->pkg_install, no need to
- add 'XFree86-' at
- the beginning
- (addUser): use any::write_passwd_user
- (setRootPassword): use any::write_passwd_user
- (configureX): fix bad $install given to Xconfigurator::main
-
- * any.pm (write_passwd_user): add or update an entry in /etc/passwd
- (ask_users): created, interactively ask users to add (used in
- adduserdrake
- and install)
- (allocUsers, addUsers): changed the prototype
- (setupBootloader): grep out fat partitions for the "Boot device"
- propositions (people are too stupid)
-
- * my_gtk.pm (main): third argument is a function to call before leaving in
- case of
- "cancel" clicked.
-
- * install_any.pm (g_auto_install): deep copy of $o->{users} because we're
- modifying it
-
- * Makefile.config (STANDALONEPMS): remove netdrake (which is deprecated)
-
- * install_steps_interactive.pm (addUser): use any::ask_users
-
- * standalone/adduserdrake: use any::ask_users
-
- * Xconfig.pm (getinfoFromDDC): removed devices::make("/dev/zero") (now in
- install2::main)
-
- * install2.pm (main): move devices::make("/dev/zero") needed by ddcxinfos
- here
-
- * interactive.pm (ask_from_entries_refH_powered_normalize): "canceled"
- callback defaults
- to "sub { 0 }"
-
-2001/01/10 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * mdk-stage1/dietlibc/dietfeatures.h: tweak dietlibc config to get minimal
- size
-
- * mdk-stage1/dietlibc/lib/vsscanf.c, mdk-stage1/dietlibc/lib/ttyname.c:
- remove warnings from compile
-
-2001/01/10 Pixel <pixel@mandrakesoft.com>
-
- * interactive_gtk.pm (ask_from_entries_refW): add handling of 'changed'
- callback on clist/list/ctree
-
- * install_steps.pm (addUser): use any::pack_passwd
- (setRootPassword): use any::unpack_passwd and any::pack_passwd
-
- * Xconfigurator.pm (cardConfiguration): adapt for $install which is
- generic
- (autologin): use $install which is now generic
-
- * install_steps_interactive.pm (selectLanguage): many_languages choice
- moved there as advanced
-
- * my_gtk.pm (create_packtable): yet another try to have something nice :)
- !! uses Gtk::Table::attach_raw which is available in
- perl-GTK-0.7004-6mdk !!
- (create_box_with_title): with the size given to set_usize for the scroll
- containing the text widget in case of long text. and don't let the
- scroll
- grow.
- (gtktext_insert): remove adding an ending "\n" (no more needed?)
-
- * any.pm (setAutologin): cleanup
- (pack_passwd, unpack_passwd): created
-
-2001/01/10 dam's <damien@mandrakesoft.com>
-
- * install_steps_interactive.pm: corrected last message . firewall
-
-2001/01/10 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * modules.pm: fix modules.pm for modules to be skept in stage1 (ppa, imm,
- parport*, plip)
-
-2001/01/10 Pixel <pixel@mandrakesoft.com>
-
- * interactive_gtk.pm (ask_from_entries_refW): add handling of 'changed'
- callback on clist/list/ctree
-
- * install_steps.pm (addUser): use any::pack_passwd
- (setRootPassword): use any::unpack_passwd and any::pack_passwd
-
- * my_gtk.pm (create_packtable): yet another try to have something nice :)
- !! uses Gtk::Table::attach_raw which is available in
- perl-GTK-0.7004-6mdk !!
- (create_box_with_title): with the size given to set_usize for the scroll
- containing the text widget in case of long text. and don't let the
- scroll
- grow.
- (gtktext_insert): remove adding an ending "\n" (no more needed?)
-
- * any.pm (setAutologin): cleanup
- (pack_passwd, unpack_passwd): created
-
- * Xconfigurator.pm (cardConfiguration): adapt for $install which is
- generic
- (autologin): use $install which is now generic
-
- * install_steps_interactive.pm (selectLanguage): many_languages choice
- moved there as advanced
-
- * standalone/printerdrake, standalone/keyboarddrake, standalone/draknet2,
- standalone/livedrake, standalone/drakboot, standalone/draksec,
- standalone/netdrake, standalone/mousedrake, standalone/drakgw,
- standalone/drakxservices, standalone.pm, standalone/draknet,
- standalone/XFdrake, standalone/diskdrake, standalone/adduserdrake,
- standalone/drakxconf: use standalone and standalone::pkgs_install
-
-2001/01/09 Pixel <pixel@mandrakesoft.com>
-
- * any.pm (drakx_version): nicer (4gc)
-
- * install2.pm (main): log::l the drakx_version
-
- * my_gtk.pm (create_packtable): no_expand option added
-
- * interactive.pm (ask_from_entries_refH_powered_normalize): field
- "disabled" added,
- "advanced_messages" added
-
- * lang.pm (langs): created (transform the $o->{langs} hash ref in a list)
- (pack_langs): use lang::langs
-
- * install_steps.pm (selectLanguage): $o->{langs} is now a ref so
- initialize as such
-
- * Makefile (get_needed_files): generate /usr/share/VERSION which contains
- the version
- of ChangeLog (which is updated at each upload)
-
- * install_steps_interactive.pm (choosePartitionsToFormat): handle "check
- for bad blocks" as advanced
- (setRootPassword): remove choosing non-md5 or non-shadow passwords.
-
- * install_any.pm (setPackages): use lang::langs instead of using
- $o->{langs} as a array ref (it is not so anymore)
- (spawnShell): print the drakx_version
-
-2001/01/08 Pixel <pixel@mandrakesoft.com>
-
- * interactive.pm: fixes
- (ask_from_treelistf, ask_from_treelist): now use ask_from_entries_refH
- (ask_from_entries_refH_powered): remove "1;" (was there for debugging)
-
- * interactive_gtk.pm: fixes
- (ask_from_treelistW): removed
- (create_ctree): created, used for ``type => treelist'' entries
-
- * my_gtk.pm: fixes
-
- * ChangeLog: New snapshot uploaded
-
-2001/01/07 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/sr.po, share/po/sp.po, share/po/no.po, share/po/cs.po: updated
- Czech, Norwegian and Serbian files
-
-2001/01/07 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm: update code for new ask_from_entries_refH
- which doesn't handle optional ok/cancel names in arg 1.
- must be handled via ask_from_entries_refH_powered
- (selectLanguage, selectKeyboard): use ask_from_entries_refH instead of
- ask_from_listf_, it enables the use of advanced
-
- * any.pm, printerdrake.pm: update code for new ask_from_entries_refH which
- doesn't handle optional ok/cancel names in arg 1.
- must be handled via ask_from_entries_refH_powered
-
- * interactive.pm: update code for new ask_from_entries_refH which doesn't
- handle optional ok/cancel names in arg 1.
- must be handled via ask_from_entries_refH_powered
- (ask_from_listf_no_check): replaces ask_from_list_no_check
- (ask_from_entries_refH_powered): sorts the list if needed or wanted
-
- * partition_table_raw.pm (test_for_bad_drives): created
- - ugly stuff needed mainly for Western Digital IDE drives
- - try writing what we've just read, yells if it fails
- - testing on last sector of head #0 (unused in 99% cases)
-
- * ftp.pm (getFile): make it work (it used to dead-loop when getFile'ing an
- non-existent
- file, stressing the ftp server :-/ )
- for the moment, just release cdrom.img, hd.img and hdreiser.img
- others should should come...
-
- * install_steps.pm: for the moment, just release cdrom.img, hd.img and
- hdreiser.img
- others should should come...
-
- * interactive_gtk.pm (ask_from_listW): removed
- (create_list): calls "format" on list elems before prompting them
- (create_clist): created
- (ask_from_entries_refW): calls create_clist in case of list with no help
-
- * install_steps_gtk.pm (installPackages): autoflush stdout before beeping
- (installPackages): don't take into account the time when prompting the
- user
-
- * common.pm (may_apply): added
-
- * install_any.pm (getHds): test_for_bad_drives called on hard drives
- (getHds): ensure $o->{hds} is not set until the hard drives are checked
-
-2001/01/06 Pixel <pixel@mandrakesoft.com>
-
- * keyboard.pm (setup): don't xmodmap if DISPLAY is unset
-
- * ChangeLog: New snapshot uploaded
- New snapshot uploaded
-
-2001/01/06 Pixel <pixel@mandrakesoft.com>
-
- * keyboard.pm (setup): don't xmodmap if DISPLAY is unset
-
- * ChangeLog: New snapshot uploaded
-
-2001/01/06 Pixel <pixel@mandrakesoft.com>
-
- * keyboard.pm (setup): don't xmodmap if DISPLAY is unset
-
- * standalone/rpmdrake: deprecated (and has been for a long time now)
-
- * network.pm, install_steps_interactive.pm, netconnect.pm,
- install_interactive.pm, standalone/adduserdrake, any.pm,
- Makefile.config, printerdrake.pm, Xconfigurator.pm, diskdrake.pm:
- ask_from_entries_refH parameter format has changed so change all
- accesses to it.
-
-2001/01/05 Franēois Pons <fpons@mandrakesoft.com>
-
- * lang.pm, keyboard.pm: forget _exit in child process after a fork of
- DrakX
- removed need of packdrake binary
-
- * Xconfigurator.pm: use of SHARE_PATH for MonitorsDB, Cards+, CardsNames
-
- * live_install2: cleanup to keep libperl.so but the right one
-
- * live_install: no more copy of files on live system, now use environment
- variable by DrakX cleanup
-
- * perl2fcalls: added packdrake call (via new but incomplete) and package
-
- * install_any.pm, commands.pm, pkgs.pm: removed need of packdrake binary
-
- * netconnect.pm: fixed syntax error
-
- * modules.pm: eval insmoding ide-cd (just in case)
- removed need of packdrake binary
-
-2001/01/05 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/ja.po, share/po/ca.po, share/po/az.po: updated Azeri, Catalan
- and Japanese files
-
-2001/01/05 Pixel <pixel@mandrakesoft.com>
-
- * mouse.pm: help cperl-mode
-
- * interactive_gtk.pm, network.pm, install_steps_interactive.pm, my_gtk.pm,
- interactive.pm, printerdrake.pm, Xconfigurator.pm, diskdrake.pm: move to
- new ask_from's:
- - ask_from_entries_ref is deprecated, use ask_from_entries_refH
- - ask_from_list now calls ask_from_entries_refH_powered
- still not done:
- - ask_from_treelist should use ask_from_entries_refH_powered,
- and lists with no help should use CList (List is bad)
- - keyboard and mouse binding is still rough
- - enhance the look
-
- * keyboard.pm: add the percentage of each keyboard types (as a comment for
- now)
-
-2001/01/04 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: cleaned... everything should be buggy.
-
-2001/01/04 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: fixed some old $p->{file} by new $p->[$FILE]
- code cleanup and fixes for lilo not upgrade
-
-2001/01/04 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * install_any.pm: fixed the functions doing the lists of languages
-
- * lang.pm: fixed the functions doing the lists of languages
- The list of languages now has complete locale names insted of just
- language
- code (that is needed to differentiate zh_CN and zh_TW among others)
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/az.po, share/po/ru.po, share/po/pt_BR.po, share/po/hr.po,
- share/po/ko.po, share/po/cy.po, share/po/nl.po, share/po/ja.po,
- share/po/wa.po, share/po/sv.po, share/po/is.po, share/po/hu.po,
- share/po/zh_TW.Big5.po, share/po/it.po, share/po/id.po, share/po/pl.po,
- share/po/fi.po, share/po/no.po, share/po/zh_CN.GB2312.po,
- share/po/th.po, share/po/el.po, share/po/sk.po, share/po/lt.po,
- share/po/sl.po, share/po/br.po, share/po/ca.po, share/po/gl.po,
- share/po/lv.po, share/po/uk.po, share/po/eo.po, share/po/ro.po,
- share/po/da.po, share/po/cs.po, share/po/af.po: updated Brazilian file
-
- * share/po/eu.po: updated Basque file
- updated Brazilian file
-
-2001/01/04 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator.pm: some pixelization using the new if_
-
- * install_steps_interactive.pm (setRootPassword): fix pixelization
- keep $o->{langs} unpacked to simplify things
- if_ pixelization
-
- * common.pm (%EXPORT_TAGS): add if_ in "common" exported tags
- (if_): created. Use it to replace things like
- ($::expert ? $val : ()) by if_($::expert, $val)
-
- * keyboard.pm: nl keyboard is not used, so defaults to us_intl
-
- * lang.pm, install_steps.pm, pkgs.pm, install_any.pm: keep $o->{langs}
- unpacked to simplify things
-
- * netconnect.pm: quite a few clean-up (and buggying)
-
-2001/01/03 dam's <damien@mandrakesoft.com>
-
- * install_steps_interactive.pm: admin user removed before beeing added
-
- * netconnect.pm: corrected typo
- LAN is configured with default value if firewall
-
-2001/01/03 Franēois Pons <fpons@mandrakesoft.com>
-
- * diskdrake.pm: fixed invocation of change_type by clicking on legend
- unless expert
-
- * install2.pm: fixed usage with testing
-
- * install_steps.pm: fixed some other services to start in case something
- gets wrong,
- this fixes some deadlock on upgrade from 7.0.
- fixed usage with testing
-
- * partition_table.pm: fixed overlapping partitions between one extended
- and one regular primary.
- should be accepted (log printed instead of error) as diskdrake allow
- their
- creation in expert.
-
-2001/01/03 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * modules.pm: add checks of dependencies on marfiles
- fix a couple of broken dependencies in modules.pm
-
-2001/01/03 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * lang.pm, share/locales.tar.bz2: locales in glibc 2.2 format
-
-2001/01/03 Pixel <pixel@mandrakesoft.com>
-
- * install2.pm (main): move the setting of PATH and spawnShell *after*
- setting $prefix
-
-2000/12/31 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/rpmsrate: added a few locales dependences
-
-2000/12/29 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm (addUser): typo fix
-
- * ChangeLog: New snapshot uploaded
-
- * ftp.pm (getFile): recall getFile after rewindGetFile
-
-2000/12/29 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm (addUser): typo fix
-
- * ftp.pm (getFile): recall getFile after rewindGetFile
-
-2000/12/28 Pixel <pixel@mandrakesoft.com>
-
- * Makefile: now /usr/lib/X11 is a relative symlink to please mirrors and
- jako
-
-2000/12/26 Chmouel Boudjnah <chmouel@mandrakesoft.com>
-
- * keyboard.pm: Add the very ghost option REMOVE_MOD_META_L.
-
-2000/12/26 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/cy.po, share/po/nl.po,
- share/po/ja.po, share/po/wa.po, share/po/sv.po, share/po/is.po,
- share/po/hu.po, share/po/zh_TW.Big5.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/fi.po, share/po/no.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/sl.po, share/po/br.po,
- share/po/ca.po, share/po/gl.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/ro.po, share/po/da.po, share/po/cs.po,
- share/po/af.po: updated Lithuanian file
-
-2000/12/22 dam's <damien@mandrakesoft.com>
-
- * install_steps.pm, install_steps_interactive.pm: corrected admin user
- setting for firewall install.
-
-2000/12/22 Franēois Pons <fpons@mandrakesoft.com>
-
- * modules.pm: fixed load_multi on live.
- added back all removed module with the new great mdk-stage1 of gégé.
-
-2000/12/22 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * modules.pm: make them work with kernel-2.4 by disabling non existent
- modules
-
-2000/12/22 Pixel <pixel@mandrakesoft.com>
-
- * interactive_gtk.pm, install2.pm: commit symlink /tmp/image /tmp/rhimage
-
-2000/12/21 Pixel <pixel@mandrakesoft.com>
-
- * ChangeLog: New snapshot uploaded
-
-2000/12/21 dam's <damien@mandrakesoft.com>
-
- * install2.pm: firewall : automatic class set when firewall (beginner=0)
-
- * install_steps_interactive.pm: if firewall, admin password obliged
-
- * install_steps.pm: added setAdminpassword (a little bit redundant, sorry)
-
- * any.pm: corrected module stuff.. Thanx to pixel
-
-2000/12/20 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_gtk.pm (selectMouse): unsure the device exists
-
- * unused/christmas-karaoke.patch: handle isa cards
-
-2000/12/19 Pixel <pixel@mandrakesoft.com>
-
- * ChangeLog: New snapshot uploaded
- New snapshot uploaded
-
-2000/12/19 dam's <damien@mandrakesoft.com>
-
- * standalone/pixmaps/logo1.xpm, standalone/pixmaps/px3.xpm,
- standalone/pixmaps/draknet4.xpm, standalone/pixmaps/draknet1.xpm,
- standalone/pixmaps/modem.xpm, standalone/pixmaps/logo2.xpm,
- standalone/pixmaps/util6.gif, standalone/pixmaps/unknown.xpm,
- standalone/pixmaps/drakgw.xpm, standalone/pixmaps/px4.xpm,
- standalone/pixmaps/draknet5.xpm, standalone/pixmaps/px1.xpm,
- standalone/pixmaps/draknet2.xpm, standalone/pixmaps/logo3.xpm,
- standalone/pixmaps/util7.gif, standalone/pixmaps/port.xpm,
- standalone/pixmaps/draknet.xpm, standalone/pixmaps/ethernet.xpm,
- standalone/pixmaps/isdn.xpm, standalone/pixmaps/px2.xpm,
- standalone/pixmaps/draknet3.xpm: added control-center.
-
-2000/12/19 Pixel <pixel@mandrakesoft.com>
-
- * modules.pm: when loading /snd-card-/ module, load snd-pcm-oss
-
- * unused/christmas-karaoke.patch: Happy Christmas :)
-
- * install_any.pm: spawnShell: set DISPLAY, just in case :)
-
- * install2.pm: set PATH before doing spawnShell
-
- * Makefile: /usr/lib/X11 now exists on non-sparc (was only for sparc)
-
- * ChangeLog: New snapshot uploaded
-
-2000/12/18 dam's <damien@mandrakesoft.com>
-
- * interactive_gtk.pm: added embedded support for control-center
- corrected embedded support.
- new control center and related
-
- * netconnect.pm: corrected typo
- corrected typo
-
- * standalone/drakxservices, standalone/control-center, ChangeLog,
- standalone/XFdrake, standalone/draknet2, standalone/adduserdrake,
- standalone/drakboot: new control center and related
-
- * install_gtk.pm: added firewall support
-
- * install2.pm: included firewall handling
- changed firewall comportement
-
- * install_steps_interactive.pm: changed firewall comportement
-
- * modules.pm: corrected bad mergeinconf
-
-2000/12/18 Pixel <pixel@mandrakesoft.com>
-
- * Makefile, share/keymaps_generate: tar and bzip2 is cfj/xfj and no more
- cfI/xfI
- remove isdndb.net
-
-2000/12/19 dam's <damien@mandrakesoft.com>
-
- * standalone/pixmaps/logo1.xpm, standalone/pixmaps/px3.xpm,
- standalone/pixmaps/draknet4.xpm, standalone/pixmaps/draknet1.xpm,
- standalone/pixmaps/modem.xpm, standalone/pixmaps/logo2.xpm,
- standalone/pixmaps/util6.gif, standalone/pixmaps/unknown.xpm,
- standalone/pixmaps/drakgw.xpm, standalone/pixmaps/px4.xpm,
- standalone/pixmaps/draknet5.xpm, standalone/pixmaps/px1.xpm,
- standalone/pixmaps/draknet2.xpm, standalone/pixmaps/logo3.xpm,
- standalone/pixmaps/util7.gif, standalone/pixmaps/port.xpm,
- standalone/pixmaps/draknet.xpm, standalone/pixmaps/ethernet.xpm,
- standalone/pixmaps/isdn.xpm, standalone/pixmaps/px2.xpm,
- standalone/pixmaps/draknet3.xpm: added control-center.
-
-2000/12/19 Pixel <pixel@mandrakesoft.com>
-
- * modules.pm: when loading /snd-card-/ module, load snd-pcm-oss
-
- * unused/christmas-karaoke.patch: Happy Christmas :)
-
- * install_any.pm: spawnShell: set DISPLAY, just in case :)
-
- * install2.pm: set PATH before doing spawnShell
-
- * Makefile: /usr/lib/X11 now exists on non-sparc (was only for sparc)
-
-2000/12/18 dam's <damien@mandrakesoft.com>
-
- * interactive_gtk.pm: added embedded support for control-center
- corrected embedded support.
- new control center and related
-
- * netconnect.pm: corrected typo
- corrected typo
-
- * standalone/drakxservices, standalone/control-center, ChangeLog,
- standalone/XFdrake, standalone/draknet2, standalone/adduserdrake,
- standalone/drakboot: new control center and related
-
- * install_gtk.pm: added firewall support
-
- * install2.pm: included firewall handling
- changed firewall comportement
-
- * install_steps_interactive.pm: changed firewall comportement
-
- * modules.pm: corrected bad mergeinconf
-
-2000/12/18 Pixel <pixel@mandrakesoft.com>
-
- * Makefile, share/keymaps_generate: tar and bzip2 is cfj/xfj and no more
- cfI/xfI
- remove isdndb.net
-
-2000/12/16 Pixel <pixel@mandrakesoft.com>
-
- * standalone/mousedrake, standalone/drakgw: use ldetect-lst
-
- * Makefile.drakxtools: fix daminetsex
- use ldetect-lst
- pci_probing now done by libldetect
- config files moved in package ldetect-lst
-
- * share/list: use ldetect-lst
- pci_probing now done by libldetect
- config files moved in package ldetect-lst
-
- * any.pm: fix daminetsex
-
- * modules.pm, live_install, install2.pm, standalone/lspcidrake, pkgs.pm,
- mouse.pm: use ldetect-lst for usb => now auto detects mice types :)
-
- * c/stuff.xs.pm, detect_devices.pm: use ldetect-lst for usb => now auto
- detects mice types :)
- use ldetect-lst
- pci_probing now done by libldetect
- config files moved in package ldetect-lst
-
- * Makefile.config: fix daminetsex
- use ldetect-lst
-
- * Makefile: use ldetect-lst for usb => now auto detects mice types :)
- use ldetect-lst
-
- * netconnect.pm, share/CardsNames, c/Makefile.PL, Xconfigurator_new.pm,
- Xconfigurator.pm, share/Cards+, share/MonitorsDB, share/isdndb.net,
- share/Cards2CardsNames: pci_probing now done by libldetect
- config files moved in package ldetect-lst
-
-2000/12/15 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator.pm: Cards+ and CardsNames are moved to ldetect-lst
-
- * install_steps.pm: clean all unneeded stuff
-
-2000/12/14 dam's <damien@mandrakesoft.com>
-
- * any_new.pm, netconnect_new.pm: preparing for big jump.
-
- * netconnect.pm: Big jump. The *_new.pm are replaced by *.pm
- Everything should work, but you better test :)
-
- * standalone/control-center: big improvement and cosmetic changes
- a lot of improvement. Is able to launch multiples soft passing in
- arguments.
- new file. Its location should change soon.
-
- * any.pm: Big jump. The *_new.pm are replaced by *.pm
- Everything should work, but you better test :)
- corrected typo.
-
-2000/12/14 Pixel <pixel@mandrakesoft.com>
-
- * share/compssList: obsoleted by rpmsrate
-
- * share/rpmsrate: obsoletes compssList
-
- * share/compssUsers, install_steps.pm, install_steps_interactive.pm,
- Makefile, install_steps_gtk.pm, install2.pm, pkgs.pm, install_any.pm:
- move from compssList to rpmsrate
-
- * Newt/Newt.xs: cleanup (use of alloca to pass parameters)
-
-2000/12/13 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/it.po: updated Italian file
-
-2000/12/12 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: typo + if firewall, don't display 'disable network'
-
- * standalone/draknet2: new version... still working on it
-
- * ChangeLog: commit
-
- * share/themes-mdk-Firewall.rc: added firewall theme
-
- * modules.pm: my fault, corrected renaud's patch incorporation
-
- * share/logo-mandrake-Firewall.xpm: new logo
-
-2000/12/12 Franēois Pons <fpons@mandrakesoft.com>
-
- * share/list: added packdrake.pm as packdrake has been splited.
-
- * pkgs.pm: fixed versionCompare to always return number. added checking of
- version to
- select obsoletes on upgrade.
-
-2000/12/11 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_any.pm: Radeon uses 3D now.
-
- * lang.pm: fixed write_langs for upgrade.
- i18n sucking fixes.
-
- * Xconfigurator.pm: Radeon uses 3D hw accel theoritically now.
-
-2000/12/09 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * lang.pm: Added configuration of Vietnamese input server
-
-2000/12/09 Pixel <pixel@mandrakesoft.com>
-
- * standalone/adduserdrake: remove debugging code
-
- * install2.pm (selectInstallClass): give $clicked to selectInstallClass
-
- * interactive_newt.pm (ask_from_entries_refW): reset all hidden entries to
- null in case of error
- on hidden entry cuz newt doesn't display null entries, disturbing
-
- * install_steps_interactive.pm (formatMountPartitions): the format
- partition dialog created at first use,
- so that it doesn't appear if no partitions are formatted.
- (selectInstallClass): ensure expert choice is kept if it was prechosen
- (selectInstallClass): if expert pre-chosen, ensure expert is kept
-
- * interactive_gtk.pm, install_steps.pm: small renicing
-
-2000/12/08 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: fixed bug in list of packages provided by another one.
-
-2000/12/08 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/pt_BR.po, share/po/no.po, share/po/DrakX.pot, share/po/es.po,
- share/po/fr.po, share/po/wa.po, share/po/da.po, share/po/de.po,
- share/po/az.po, share/po/tr.po: updated Brazilian file
-
-2000/12/08 Pixel <pixel@mandrakesoft.com>
-
- * install2.pm (main): warn if VERSION file doesn't exist
- (formatPartitions): call rotate_logs after mounting the partitions
-
- * mouse.pm (write_conf): fix to make make test_pms happy
-
- * install_steps.pm (exitInstall): save the report.bug in /root/report.bug
-
- * any.pm (rotate_logs): created, rotates ddebug.log and install.log in
- /root
-
- * ftp.pm (new): retry in case of ftp connection/login
-
- * commands.pm: report_bug: created, returns a string
-
-2000/12/07 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: corrected ADSL connection choice.
- corrected typo
-
-2000/12/06 dam's <damien@mandrakesoft.com>
-
- * install2.pm: erare humanum es
- firewall begins to infect the install :).
- new meta_class.
-
- * share/logo-mandrake-Firewall.xpm: aded logo for firewall
-
- * install_gtk.pm: corrected errors
- left pixmap centered if firewall
- improved the firewall theme.
- errare humanum es
- firewall infects the install.
- The logo is changed if firewall.
-
-2000/12/06 Pixel <pixel@mandrakesoft.com>
-
- * standalone/keyboarddrake: add possibility to use keyboarddrake
- non-interactive (aka give the keyboard as
- first parameter)
-
- * lang.pm, install_steps.pm, install_steps_interactive.pm, install2.pm,
- install_any.pm: adapt to the fact that RPM_INSTALL_LANG is obsoloted.
- Now rpm uses %_install_langs in /etc/rpm/macros
-
-2000/12/05 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: final fixes to versionCompare to make sure no deadlock can
- occurs.
-
- * Xconfigurator.pm: restored Matrox G200/G400 hw 3d accel configuration.
-
-2000/12/05 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/pt_BR.po, share/po/pl.po, share/po/da.po, share/po/fi.po,
- share/po/es.po: updated several pofiles
-
-2000/12/04 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps_interactive.pm: use isCdNotEjectable.
-
- * common.pm: added function isCdNotEjectable.
-
- * share/Cards+: SiS620 card are said to be unsupported by XF4.
-
- * pkgs.pm: load only one hdlist in memory if CD is not ejectable (low
- memory).
- fixed compareVersion for deadlock. removed silly CODE print on deporder
- problems.
-
- * Xconfigurator.pm: add Options sw_cursor for SiS 6326 in XF3 mode.
-
-2000/12/03 dam's <damien@mandrakesoft.com>
-
- * mouse.pm: incorporated cmodifications in the firewall branch
-
- * netconnect.pm: netconnect_new > netconnect.pm
-
- * netconnect_consts.pm: incorporated in the firewall branch.
-
- * standalone/draknet2: incoporated in the firewall branch
-
- * any_new.pm: any_new > any, so we remove it now.
-
- * netconnect_new.pm: netconnect_new > netconnect, so we remove it now.
- incorporated in the firewall branch
-
- * modules.pm: incorporated modifications to the firewall branch. Hope they
- won't break anything...
-
-2000/12/02 dam's <damien@mandrakesoft.com>
-
- * share/po/az.po: correction in firewall incorporated
-
- * ChangeLog: first attempt ro build the firewall install
-
- * standalone/mousedrake: incorporated in the firewall branch
-
- * share/po/ru.po, share/po/no.po, share/po/sk.po: correction incorporated
- in the firewall branch
-
-2000/11/28 dam's <damien@mandrakesoft.com>
-
- * modules.pm: included reno's patches. Now should work without kudzu.
- branch to build the firewall install.
-
- * standalone/pixmaps/port.xpm, standalone/pixmaps/.xvpics/px4.xpm,
- standalone/pixmaps/ethernet.xpm, standalone/pixmaps/.xvpics/px1.xpm,
- standalone/pixmaps/px2.xpm, standalone/pixmaps/unknown.xpm,
- standalone/pixmaps/.xvpics/px3.xpm, standalone/pixmaps/px4.xpm,
- standalone/pixmaps/px1.xpm, standalone/pixmaps/.xvpics/px2.xpm,
- standalone/pixmaps/px3.xpm, standalone/pixmaps/modem.xpm,
- standalone/pixmaps/isdn.xpm: Initial revision
- branch to build the firewall install.
-
- * partition_table_dos.pm, share/po/bg.po, share/po/sr.po,
- share/template.in/cdrom.kdelnk.in,
- share/template.in/cdrom.fsdev.kdelnk.in, share/po/hr.po, c/silo.c,
- Makefile, share/consolefonts/lat0-sun16,
- share/themes/DarkMarble-check_off.png,
- share/themes/marble3d-button_def.png, share/locales.tar.bz2.sparc,
- do_resize_fat, share/po/wa.po, share/po/is.po,
- share/themes/DarkMarble-button3_out_prelight.png, resize_fat/main.pm,
- class_discard.pm, .cvsignore, share/step-orange.xpm, share/reload.xpm,
- install_interactive.pm, c/README, Xconfig.pm, share/themes.rc,
- share/themes/marble3d-bg1.png, perl2fcalls, share/themes-blackwhite.rc,
- share/themes-blueHeart.rc, pkgs.pm, keyboard.pm,
- share/rpm-installed.xpm, share/po/gl.po, share/po/lv.po,
- standalone/icons/ftout.xpm, Makefile.drakxtools, http.pm,
- share/step-green-click.xpm, partition_table_sun.pm,
- share/themes/focus.png, share/keymaps_generate, lang.pm, verify_c,
- share/po/.cvsignore, share/ftin.xpm, standalone/draksec,
- resize_fat/info_sector.pm, share/compssUsers, share/step-orange-on.xpm,
- Makefile.config, share/list.sparc, share/po/hu.po, run_program.pm,
- share/themes/marble3d-button4.png, share/rpm-unselected.xpm,
- share/list.i386, netconnect.pm, share/themes/DarkMarble-button3_out.png,
- c/md5_crypt.c, share/themes/mdk-toggle_on.png, partition_table.pm,
- standalone/livedrake, share/diskdrake.rc,
- share/themes/DarkMarble-check_on.png, standalone/draknet,
- share/po/br.po, Newt/typemap, share/themes/blueHeart-button2.png,
- share/po/ro.po, share/list, share/po/cs.po, share/po/be.po,
- share/po/sp.po, share/step-orange-click.xpm, modparm.pm,
- share/step-green.xpm, share/rpm-base.xpm,
- share/themes/marble3d-check1.png, crypto.pm, share/po/eu.po,
- share/themes/marble3d-button1.png, c/stuff.pm, install_steps.pm,
- share/Cards2CardsNames, Newt/Makefile.PL,
- share/themes/mdk-Desktop-bg.png, netconnect_consts.pm, share/po/id.po,
- share/themes/mdk-check_on.png, share/po/fi.po, share/po/sk.po,
- standalone/icons/findf.xpm, share/po/lt.po,
- share/themes/mdk-check_off.png, fs.pm, c/.cvsignore,
- share/themes/mdk-toggle_off.png, share/po/ca.po, timezone.pm,
- detect_devices.pm, share/consolefonts/ruscii_8x16, diskdrake.pm,
- standalone/icons/reload.xpm, share/rpm-selected.xpm, resize_fat/io.pm,
- Newt/Newt.xs, Newt/.cvsignore, install2, share/po/pt_BR.po,
- share/themes-marble3d.rc, resize_fat/fat.pm, sbus_probing/main.pm,
- share/template.in/floppy.fsdev.kdelnk.in, printer.pm, share/po/it.po,
- resize_fat/.cvsignore, install_steps_interactive.pm,
- share/themes/mdk-button4.png, live_install, standalone/draknet2,
- any_new.pm, share/list.alpha, share/rpm-semiselected.xpm, c.pm,
- share/logo-mandrake-Desktop.xpm, printerdrake.pm, network.pm,
- share/step-red-on.xpm, share/themes-mdk.rc, share/po/validate.pl,
- swap.pm, share/themes/blueHeart-button4.png, standalone/keyboarddrake,
- g_auto_install, share/po/es.po, standalone/lspcidrake, share/po/de.po,
- partition_table_mac.pm, standalone/mousedrake, devices.pm,
- share/po/ru.po, resize_fat/c_rewritten.xs, share/po/cy.po,
- share/themes/mdk-button1.png, netconnect_new.pm, install_any.pm,
- share/po/nl.po, share/aliases, share/keyboards.tar.bz2, share/po/sv.po,
- Newt/Av_CharPtrPtr.c, c/stuff.xs.pm, share/themes-DarkMarble.rc,
- share/step-red.xpm, Newt/Av_CharPtrPtr.h, c/smp.c,
- share/po/zh_CN.GB2312.po, commands.pm, standalone/icons/find.xpm,
- perl2etags, share/po/Changelog, standalone/drakboot,
- resize_fat/dir_entry.pm, share/fonts.tar.bz2, share/install.rc,
- share/themes/blueHeart-button1.png, share/Cards+, share/po/uk.po,
- share/MonitorsDB, share/template.in/Dos_.kdelnk.in,
- standalone/printerdrake, services.pm, share/kmap2bkmap,
- share/themes/blueHeart-button_def.png, share/po/az.po, share/po/tr.po,
- common.pm, getpkgs_deps, standalone/drakxconf, share/ftout.xpm,
- install_gtk.pm, Xconfigurator_consts.pm, share/consolefonts/lat2-sun16,
- share/po/no.po, resize_fat/boot_sector.pm, share/CardsNames,
- c/Makefile.PL, share/themes-mdk-Desktop.rc,
- share/themes/blueHeart-brown_bg1.png, share/logo-mandrake.xpm,
- share/consolefonts/Cyr_a8x16, standalone/netdrake, standalone/drakgw,
- share/po/sl.po, standalone/rpmdrake, share/makedev.sh,
- share/themes/DarkMarble-button3_in_prelight.png, share/themes-blue.rc,
- install_steps_newt.pm, resize_fat/Makefile.PL, partition_table_empty.pm,
- my_gtk.pm, share/po/i18n_compssUsers, install2.pm, share/compssList,
- share/po/fr.po, share/themes/DarkMarble-button3_in.png,
- standalone/icons/ftin.xpm, share/modparm.lst, raid.pm,
- standalone/diskdrake, share/po/ko.po,
- share/template.in/zip.fsdev.kdelnk.in, share/compssUsers.desktop,
- share/po/ja.po, any.pm, share/isdndb.net,
- share/template.in/floppy.kdelnk.in, share/step-green-on.xpm,
- share/step-red-click.xpm, share/po/Makefile, help.pm,
- share/po/zh_TW.Big5.po, c/sbus.c, genmodparm, share/po/pl.po,
- share/themes-savane.rc, install_steps_stdio.pm, share/po/th.po,
- loopback.pm, resize_fat/any.pm, share/po/el.po, install_steps_gtk.pm,
- Newt/Newt.pm, Xconfigurator.pm, interactive_gtk.pm,
- standalone/drakxservices, resize_fat/Makefile, fsedit.pm,
- interactive_stdio.pm, live_install2, resize_fat/directory.pm,
- share/po/pt.po, install_steps_auto_install.pm, share/po/DrakX.pot,
- share/themes/mdk-bg.png, share/list.ppc, share/po/ga.po, share/po/et.po,
- share/keymaps.tar.bz2, partition_table_bsd.pm, c/md5.c, share/help.xpm,
- share/themes/marble3d-check2.png, ftp.pm, c/md5.h,
- standalone/adduserdrake, share/themes/marble3d-button2.png,
- partition_table_raw.pm, share/template.in/zip.kdelnk.in,
- share/locales.tar.bz2, standalone/icons/fileopen.xpm,
- share/template.in/kppprc.in, ChangeLog, resize_fat/README, mouse.pm,
- commands, standalone/XFdrake, share/gconv.tar.bz2, share/po/eo.po,
- interactive.pm, log.pm, share/themes/DarkMarble-gloom2.png,
- interactive_newt.pm, share/po/da.po, resize_fat/c_rewritten.pm,
- bootloader.pm, share/po/af.po: branch to build the firewall install.
-
-2000/11/28 Franēois Pons <fpons@mandrakesoft.com>
-
- * install2.pm: change upgrade section for keyboard.
-
- * install_steps_gtk.pm: extended chooseSizeToInstall.
-
- * install_steps.pm: updated comment.
-
- * pkgs.pm: fixed misuse of map with values returing list which are indexed
- afterward.
-
- * install_any.pm: removed some more logs.
-
- * keyboard.pm: keep track of unknown keyboard (for upgrade)
-
- * install_steps_interactive.pm: modified def_mark to 59 (gl hw
- acceleration level) and upgrade use this level
- for newbies so.
- make sure a recommended upgrade get the minimum and a little more (80).
- choose default size according to a default mark (currently 49).
-
-2000/11/27 dam's <damien@mandrakesoft.com>
-
- * netconnect_consts.pm: added isdn Gazel card 10b5 1151
-
-2000/11/27 Pixel <pixel@mandrakesoft.com>
-
- * partition_table.pm (@bad_types): list of the different type of extended
- partitions
- (important_types): remove @bad_types from important_types
-
-2000/11/25 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/ru.po: updated Russian file
-
-2000/11/24 dam's <damien@mandrakesoft.com>
-
- * mouse.pm: doc + split
-
- * netconnect_new.pm: added depmod after having writed modules.conf
-
- * standalone/mousedrake: splited
-
-2000/11/24 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: avoid .la files for selection.
-
- * install_steps.pm: added missing portmap.
-
-2000/11/23 dam's <damien@mandrakesoft.com>
-
- * standalone/draknet2: progressbar.
-
-2000/11/23 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps_interactive.pm, install_steps_gtk.pm: updated with
- structural change of pkgs.
-
- * install_any.pm: removed some ugly logs.
- updated with structural change of pkgs.
-
- * install_steps.pm: added tempory fix for initscripts %post.
- updated with structural change of pkgs.
-
- * pkgs.pm: synced versionCompare() with rpmtools-2.1-4mdk.
- removed ugly log on transaction.
- added special case to avoid counting kernels space when upgrading
- as these package are not upgraded (just installed).
- Memory usage optimization, change structure of storing
- package informations. lot of fork to make sure of
- freeing memory by perl (no free on used hashes or arrays
- usable by other than perl), now upgrade takes as much as
- install which takes at least 0.5Mb less than before.
-
-2000/11/23 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/compssList: put all tina stuff to weight 0
-
-2000/11/21 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfig.pm: added more subtil upgrade from /etc/X11/XF86Config* files,
- keep
- wacom entries.
-
- * Xconfigurator.pm: upgrade for XF86Config, take care of resolution and
- depth wanted.
-
- * install_steps.pm: always try to get default from /etc/X11/XF86Config
- removing logs.
-
- * pkgs.pm: cosmetic changes for upgrade, removing some logs.
-
- * install_steps_interactive.pm: removed code to ask if take care of
- /etc/X11/XF86Config* files.
- added wait message during rebuild of rpm database as it takes some time.
-
- * Xconfigurator_new.pm: WARNING
-
-2000/11/21 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/az.po: updated Azeri file
-
-2000/11/20 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: clean up as today filelist is no more.
- use parsehdlist from rpmtools-2.1-3mdk or above instead of
- perl code from DrakX forking to simulate a filelist server.
- this increase performance by 100 to 150% on selection of
- packages to upgrade.
-
- * share/list: added parsehdlist.
-
- * c/stuff.xs.pm: removed logs.
-
-2000/11/20 Pixel <pixel@mandrakesoft.com>
-
- * share/Cards+: add radeon
-
- * install_steps_auto_install.pm (exitInstall): fix message
-
- * install_steps.pm (afterInstallPackages): moved the
- writeandclean_ldsoconf here
-
- * fsedit.pm: add /var/ftp and /var/www in the list of propose mount-points
-
-2000/11/17 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * install_any.pm: add openuniverse to the list of gl apps
-
-2000/11/16 dam's <damien@mandrakesoft.com>
-
- * netconnect_new.pm: corrected isdn_get_{list, info}
-
-2000/11/16 Franēois Pons <fpons@mandrakesoft.com>
-
- * share/list: include /usr/lib/rpm/macros else rpmlib gets crazy :-)
-
- * modules.pm: tempory version for current glibc, a lot of module have been
- removed due to
- problem of stage1 increase in size when compiled with glibc-2.2 and
- current
- modutils.
-
- * c/Makefile.PL: updated with rpmlib 4.
-
- * c/stuff.xs.pm: completed something that seems to work almost correctly
- at the first look
- with rpmlib 4.
-
-2000/11/16 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/compssList: add netscape-german, thx to florin
- isdn4k-utils gets same weight as isdn4net, thx to Florin
-
-2000/11/16 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/no.po: updated Norwegian file
-
- * share/po/sk.po: updated Slovak file
-
-2000/11/15 dam's <damien@mandrakesoft.com>
-
- * netconnect_new.pm: added isdn_get_list and isdn_get_info
- calls modules::write_conf to fill the modules.conf.
-
- * Xconfigurator_new.pm: added to fork frontends backends. Not operationnal
- at all for now.
-
- * modules.pm: when loading a new module, add an alias for it, even in
- standalone mode.
-
-2000/11/15 Franēois Pons <fpons@mandrakesoft.com>
-
- * c/stuff.xs.pm: updated for rpm 4.
-
- * pkgs.pm: rpmdepOrder again (for new TAGp)
-
-2000/11/15 Pixel <pixel@mandrakesoft.com>
-
- * c/Makefile.PL: add librpmio
-
- * c/stuff.xs.pm: workaround for kernel-headers not in sync with glibc
- (dev_t)
-
-2000/11/14 dam's <damien@mandrakesoft.com>
-
- * netconnect_new.pm: better structure for the ethx-driver.
- added call to add_alias and write_conf
-
- * standalone/draknet2: updated
-
-2000/11/14 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: removed foreach (<... which are eating memory
- fork install on upgrade for searching trhough filelist, this saves
- about 20Mb of memory before rpmlib transaction are started so its is
- more than 2 times faster for upgrading a system, sorry it was
- effectively
- a machine two overloaded that makes the upgrade slower.
- make rpmlib not to check size as DrakX should do it.
- added special cases for selection of packages according to files, avoid
- all kde-i18n packages if their locales-$lang is not selected, avoid
- a -devel package if only one files is updated (typical for fixes on
- package by moving files around).
-
- deactivated rpmdepOrder as it should be done directly in
- depslist.ordered
- file.
-
- fixed obsoletes which never run correctly, even if almost no package are
- selected explicitely this way.
-
- added log during selection of packages to upgrade to keep a track of
- what DrakX is doing.
-
- * modules.pm, network.pm, netconnect.pm, common.pm, modparm.pm,
- Xconfig.pm, commands.pm, lang.pm, fsedit.pm, detect_devices.pm,
- printer.pm, Xconfigurator.pm: removed foreach (<... which are eating
- memory
-
-2000/11/14 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/da.po: updated Danish file
-
-2000/11/13 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * standalone/drakgw: Integrate Till's patches for better work with Cups.
-
-2000/11/12 Pixel <pixel@mandrakesoft.com>
-
- * standalone/mousedrake: fix for bug #1350
- (mousedrake dies with: Undefined subroutine &mouse::serial_ports_names)
-
- * pkgs.pm (psUpdateHdlistsDeps): fixed an ugly typo (uses .cz2 for .cz and
- .cz22 for
- .cz2) that makes for than one CD install breaks :-(
-
-2000/11/11 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/az.po, share/po/ru.po, share/po/pt_BR.po,
- share/po/hr.po, share/po/ko.po, share/po/cy.po, share/po/nl.po,
- share/po/ja.po, share/po/wa.po, share/po/sv.po, share/po/is.po,
- share/po/hu.po, share/po/zh_TW.Big5.po, share/po/it.po, share/po/id.po,
- share/po/pl.po, share/po/fi.po, share/po/no.po,
- share/po/zh_CN.GB2312.po, share/po/th.po, share/po/el.po,
- share/po/sk.po, share/po/lt.po, share/po/sl.po, share/po/br.po,
- share/po/ca.po, share/po/gl.po, share/po/lv.po, share/po/uk.po,
- share/po/eo.po, share/po/ro.po, share/po/da.po, share/po/cs.po,
- share/po/af.po: updated pot file
-
-2000/11/10 dam's <damien@mandrakesoft.com>
-
- * standalone/draknet2: draknet2 : new version of draknet, post-install
- only, uses only libDrakX backend, beautyfull
-
- * netconnect_new.pm: completed adsl_conf_backend
- corrected conf_network_card_backend : return interface and module
- separately
- splitted pppconfig.
-
-2000/11/10 Franēois Pons <fpons@mandrakesoft.com>
-
- * share/po/fr.po: typo fixing
-
- * printerdrake.pm: fixed wrong case for managing IP for remove CUPS server
- updated typo for remote CUPS server configuration dialog
-
-2000/11/10 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/sk.po, share/po/lv.po: updated Latvian and Slovak files
-
- * share/po/wa.po, share/po/da.po: updated Danish and Walloon files
-
-2000/11/10 Pixel <pixel@mandrakesoft.com>
-
- * c/stuff.xs.pm: initIMPS2 move where it should be (in non-C_RPM dependent
- section)
-
-2000/11/09 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: added handling for 2 ethernet cards with the same module
-
-2000/11/09 Franēois Pons <fpons@mandrakesoft.com>
-
- * share/po/fr.po: add some missing translation (mainly printer for CUPS
- remote config)
-
- * printer.pm: make sure to restart cups when cupsd.conf is modified.
-
- * printerdrake.pm: fixed modification of BrowsePoll on a existing file.
-
-2000/11/08 dam's <damien@mandrakesoft.com>
-
- * netconnect_new.pm: updated
-
-2000/11/08 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: make sure class discarding do not destroy result
-
- * pkgs.pm: added new function for selected or installed accessor on pkg
- make sure package already installed for oem are marked as selected, as
- some
- code refer to this state to perform some actions (install_urpmi)
-
- * install_steps.pm: fixed for urpmi again;
-
- * printerdrake.pm: add management of BrowsePoll <ip>:<port> in
- /etc/cups/cupsd.conf
-
- * printer.pm: add minimal management of /etc/cups/cupsd.conf
-
-2000/11/08 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/MonitorsDB: Fixed Samsung SyncMaster 3Ne (bug #1136)
-
-2000/11/08 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/es.po: updated Spanish file
-
-2000/11/07 dam's <damien@mandrakesoft.com>
-
- * mouse.pm: now there are 8 ttyS* available for configuration. Used for
- internal modem configuration that uses ttyS* > 3
-
- * netconnect_new.pm: ttyS0 -> ttyS7 available for configuration
- some doc
-
-2000/11/07 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: fixed text for card prefered in XFree 3.3 (RIVA128).
-
- * install_steps_interactive.pm: use of install_any::boot_medium to avoid
- listing medium used for boot
-
- * install_any.pm: use of $boot_medium where the boot medium is used
- (default 1)
-
-2000/11/07 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/Cards+: fix tseng server for ET4000 W32i, W32p thanks to
- <sileryti@mail.com>
-
-2000/11/07 Pixel <pixel@mandrakesoft.com>
-
- * install2.pm (main): in oem, configureX automatic
- (main): $::oem is now global :-( (needed in install_steps.pm)
-
- * install_steps.pm (afterInstallPackages): give medium 'cdrom' to
- install_urpmi in case of $::oem
-
-2000/11/06 dam's <damien@mandrakesoft.com>
-
- * netconnect_new.pm: backend/frontend fork complete
-
- * any_new.pm: load_thiskind changed to load_thiskind_backend, the wait
- function is passed by argument
-
- * network.pm: configureNetwork2 commented.
-
-2000/11/06 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: created function for examining already installed package on
- install (oem).
-
- * install2.pm: add a flag to allow by default formating /
-
- * install_steps.pm: conditionnal format of / and use already installed
- packages if any on install.
-
-2000/11/06 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/MonitorsDB: added Hitachi CM753 contributed by Adam Julius
- <ajulius@yahoo.com>
-
-2000/11/06 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/DrakX.pot, share/po/ru.po, share/po/uk.po: updated pot file
- GRUB/LILO/SILO messages *must* be in ascii only. Changed cyrillic to
- ascii transliteration for them
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/es.po,
- share/po/fr.po, share/po/bg.po, share/po/ga.po, share/po/sr.po,
- share/po/de.po, share/po/et.po, share/po/tr.po, share/po/eu.po,
- share/po/az.po, share/po/pt_BR.po, share/po/hr.po, share/po/ko.po,
- share/po/cy.po, share/po/nl.po, share/po/ja.po, share/po/wa.po,
- share/po/sv.po, share/po/is.po, share/po/hu.po, share/po/zh_TW.Big5.po,
- share/po/it.po, share/po/id.po, share/po/pl.po, share/po/fi.po,
- share/po/no.po, share/po/zh_CN.GB2312.po, share/po/th.po,
- share/po/el.po, share/po/sk.po, share/po/lt.po, share/po/sl.po,
- share/po/br.po, share/po/ca.po, share/po/gl.po, share/po/lv.po,
- share/po/eo.po, share/po/ro.po, share/po/da.po, share/po/cs.po,
- share/po/af.po: updated pot file
-
- * keyboard.pm, ChangeLog: added the 3 kbd layouts for CZ and SK kbds
-
-2000/11/06 Pixel <pixel@mandrakesoft.com>
-
- * install2.pm (formatPartitions): formatMountPartitions done even in
- upgrade
- (main): set $o->{partitioning}{use_existing_root} in oem
-
- * install_steps.pm (doPartitionDisksAfter): remove the mount_all which is
- plain dumb
- (doPartitionDisksAfter): fs::mount_all moved here
- (doPartitionDisks): use $o->{partitioning}{use_existing_root}
-
- * install_any.pm (use_root_part): fs::mount_all really removed
- (use_root_part): fs::mount_all removed
-
- * install_steps_interactive.pm (choosePartitionsToFormat): don't propose
- already mounted partitions
- (installCrypto): nicer layout
-
-2000/11/05 dam's <damien@mandrakesoft.com>
-
- * mouse.pm: changed 'IntelliMouse label' to 'Generic PS2 Wheel Mouse'
-
-2000/11/05 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/MonitorsDB: added LG StudioWorks520Si contributed by Yves Maniette
- <yves@maniette.com>
-
-2000/11/01 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/eo.po: updated Esperanto file
-
-2000/10/31 dam's <damien@mandrakesoft.com>
-
- * netconnect_new.pm: continuing forking frontend - backend. adsl ist
- nearly finished
-
- * any_new.pm: added this file to fork frontends and backends in any.pm
-
-2000/10/30 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/compssList: heartbeat pixel wonderful un chien vaut mieux que deux
- tu damsera
-
-2000/10/30 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/wa.po: updated Walloon file
-
- * share/keyboards.tar.bz2: updated keyboards
-
-2000/10/30 Pixel <pixel@mandrakesoft.com>
-
- * lang.pm (load_po): backslash @ in po strings, otherwise the eval fails
-
-2000/10/28 dam's <damien@mandrakesoft.com>
-
- * netconnect_new.pm: new version of draknet. Splited frontends - backends
-
-2000/10/28 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/tr.po: updated Turkish file
-
-2000/10/27 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_any.pm: remove the noising rpm output command line when loging
- installed rpm
- size (only usefull for live_update and just for conveniance).
-
- * pkgs.pm: Make sure $meta_class is defined in readCompsUsers (for HTTP
- hack)
- before reading a compssUsers file.
-
- * live_install: add VERSION in list of file that have to be symlinked.
-
- * common.pm: list_skels returns list of existing directory and writeable.
-
- * live_install2: Make sure to remove font path in /tmp/drakx before
- exiting.
-
-2000/10/26 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/DrakX.pot, share/po/tr.po, share/po/it.po: updated Italian and
- Turkish files
-
-2000/10/24 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/compssList: fortune-mod gets 10/0/10 on request from egil
-
-2000/10/24 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/pl.po: updated Polish file
-
-2000/10/23 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/ca.po: updated Catalan file
-
-2000/10/23 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm, ChangeLog, diskdrake.pm: added some carriage returns
- to please jl :)
-
- * detect_devices.pm (floppies, probeall): add require "modules" as it
- should be
-
- * install_interactive.pm (partitionWizardSolutions): add "require
- resize_fat::main" as it should be
-
-2000/10/22 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/compssList: linuxconf-gui got -1/-1/-1 while gnome-linuxconf has
- 74/0/74
-
-2000/10/21 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/uk.po, share/po/tr.po, share/po/az.po: updated Azeri, Turkish
- and Ukrainian files
-
-2000/10/20 fabman
-
- * share/po/es.po: updated
-
-2000/10/20 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/compssList: ntp to -1/-1/-1
-
-2000/10/19 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/compssList: put all packages requiring kde1-compat to 0 except
- kisdn-free
- aumix now gets a high weight (79) because it's required to save the
- mixer
- settings at shutdown
-
-2000/10/19 Pixel <pixel@mandrakesoft.com>
-
- * share/locales.tar.bz2: fix symlink zh_CN.GB2312 (was zh_CN.G23212)
-
-2000/10/19 tlb
-
- * share/po/da.po: 100%, Troels Liebe Bentsen.
-
-2000/10/18 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/az.po: Added AZeri file
-
- * share/po/no.po: updated Norwegian file
-
-2000/10/17 dam's <damien@mandrakesoft.com>
-
- * interactive_gtk.pm, netconnect.pm, netconnect_consts.pm: removed unused
- code in ineractive_gtk
- added some isdn card in pcitable
- corrected typos, and made ISA isdn work
-
-2000/10/17 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/lv.po: updated Latvian file
-
-2000/10/16 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/be.po, share/po/sp.po, share/po/pt.po, share/po/DrakX.pot,
- share/po/es.po, share/po/fr.po, share/po/bg.po, share/po/ga.po,
- share/po/sr.po, share/po/de.po, share/po/et.po, share/po/tr.po,
- share/po/eu.po, share/po/ru.po, share/po/pt_BR.po, share/po/hr.po,
- share/po/ko.po, share/po/cy.po, share/po/nl.po, share/po/ja.po,
- share/po/wa.po, share/po/sv.po, share/po/is.po, share/po/hu.po,
- share/po/zh_TW.Big5.po, share/po/it.po, share/po/id.po, share/po/pl.po,
- share/po/fi.po, share/po/no.po, share/po/zh_CN.GB2312.po,
- share/po/th.po, share/po/el.po, share/po/sk.po, share/po/lt.po,
- share/po/sl.po, share/po/br.po, share/po/ca.po, share/po/gl.po,
- share/po/lv.po, share/po/uk.po, share/po/eo.po, share/po/ro.po,
- share/po/da.po, share/po/cs.po, share/po/af.po: updated pot file
-
- * standalone/keyboarddrake, keyboard.pm, ChangeLog: corrected BackSpace
- setting
-
-2000/10/16 Pixel <pixel@mandrakesoft.com>
-
- * detect_devices.pm (cdroms): fix the setting of scdX for ide burners
-
- * share/compssList: sympa is -1 except for server
-
- * keyboard.pm (write): small pixelization (neater now)
-
- * install_steps.pm (installPackages): don't run ldconfig in g_auto_install
-
-2000/10/15 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/nl.po: updated Dutch file
-
-2000/10/14 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * lang.pm, keyboard.pm: small fix for Swedish locale
-
- * share/po/DrakX.pot, share/po/es.po, share/po/bg.po, share/po/fr.po,
- share/po/wa.po, share/po/de.po: updated Bulgarian file
-
-2000/10/13 Franēois Pons <fpons@mandrakesoft.com>
-
- * partition_table_empty.pm: empty partition table as assumed only if the
- MBR is really composed of only null chars.
-
-2000/10/13 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/compssList: added viavoicemenu
-
-2000/10/12 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm (ask_mntpoint_s): dqs
-
-2000/10/11 Pixel <pixel@mandrakesoft.com>
-
- * .cvsignore: ignore flog files
-
- * install2.pm (main): test
-
- * ChangeLog: qsdqsd
-
- * install_steps_interactive.pm: * (selectKeyboard): set default
- $o->{langs} to $o->{lang}
-
-2000/10/10 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * standalone/drakgw, ChangeLog: make only one call to urpmi in order to
- install all the needed rpm's
-
-2000/10/10 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/po/no.po, share/po/es.po: updated Norwegian file
-
- * share/po/pl.po: updated Polish file
-
- * share/po/zh_CN.GB2312.po, share/po/zh_TW.Big5.po: updated Chinese file
-
-2000/10/10 tlb
-
- * share/po/da.po: 99%.
-
-2000-10-10 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * standalone/drakgw: make only one call to urpmi in order
- to install all the needed rpm's
-
-2000-10-10 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-10-10 Pixel <pixel@mandrakesoft.com>
-
- * install2.pm: increase $::VERSION
-
-2000-10-09 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-10-09 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/po/fr.po: update after Dam's new messages in netconnect
-
-2000-10-09 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-10-09 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm (kdeicons_postinstall): remove the handling of
- doc desktop icons. see dadou
-
-2000-10-09 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/compssUsers: new list (with icons)
-
- * share/list: add icons for compssUsers
-
-2000-10-09 dam's <damien@mandrakesoft.com>
-
- * standalone/draknet: added wait message
-
-2000-10-09 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-10-09 Pixel <pixel@mandrakesoft.com>
-
- * share/themes-*.rc: change the fg[INSENSITIVE] entry
-
-2000-10-09 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_any.pm: added tuxracer in OpenGL games to install if an
- accelerated card has been found.
-
-2000-10-09 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm (main): asking connection after writing start/stop scripts.
- (adsl_conf): if during install, don't use chkconfig, make the
- links directly for the adsl init script.
-
-2000-10-09 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-10-09 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm (afterInstallPackages): UserView in kdmrc is
- now true by default. So put false if security >= 3 instead of
- removing it.
-
-2000-10-09 Franēois Pons <fpons@mandrakesoft.com>
-
- * any.pm: default speed of modem set to 115200.
-
- * fs.pm: fixed format of RAID partition.
-
- * install_interactive.pm: take into account RAID partitions for
- searching / partition.
-
-2000-10-09 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-10-09 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm (selectKeyboard): don't assume $o->{langs} is set
- (selectLanguage): don't set $o->{langs} (so that you can go back
- and it works)
-
- * common.pm (round_up, round_down): ensure number is an integer
-
- * install_steps_interactive.pm (chooseGroups): take into account
- the min_level to compute the size
-
-2000-10-08 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (choosePackages): move the
- computing of max_size before calling chooseGroups (not the one for
- desktop meta_class)
- (chooseGroups): compute the size of Miscellaneous
-
-2000-10-07 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-10-07 Pixel <pixel@mandrakesoft.com>
-
- * share/compssList: don't install locales-* even in 'all' install
- (those files are usefull if RPM_INSTALL_LANG doesn't include that
- lang)
-
-2000-10-07 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-10-07 Pixel <pixel@mandrakesoft.com>
-
- * pkgs.pm (install): log the gonna be installed packages (-> be
- able to track not installed packages that should have been
- installed)
-
-2000-10-06 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-10-06 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm (pppConfig): the domain used for kppp is copied in resolv.conf
- (intro): connection detection improved : now use "ifconfig | grep interface"
- (pppConfig): corrected cnx_up/down
-
-2000-10-06 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-10-06 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm (afterInstallPackages): don't fail if
- kdeglobals file is not there
-
- * share/compssUsers.desktop: fix icons
-
- * detect_devices.pm (cdroms): fix for scsi cdrom drives
-
- * pci_probing/pcitable: put cs46xx instead of snd-card-cs461x
- (dixit jeff)
-
- * diskdrake.pm (Resize): comment ext2&reiserfs resizing for the
- moment
-
-2000-10-06 Frederic Lepied <flepied@mandrakesoft.com>
-
- * Xconfigurator.pm (write_XF86Config): added mode of wacom devices
-
-2000-10-06 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm (ask_connect_now): connection is now tested.
-
-2000-10-06 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps_interactive.pm, install_steps_gtk.pm: updated
- license.
-
- * Xconfigurator.pm: removed Matrox G200/G400 3D acceleration by
- DRI, use only Mesa with Utah GLX, fixed autologin for avoiding
- drakres and no wm available, moved Riva128 card from experimental
- to stable, fixed presentations of text.
-
- * pci_probing/pcitable: fixed Cirrus Logic sound card.
-
-2000-10-06 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-10-06 Franēois Pons <fpons@mandrakesoft.com>
-
- * install2.pm: fixed bad call to hasUsb...
-
- * share/Cards+: fixed wrong use of SiS card with 4.0.1, only keep
- 530, 620 and 6326 with XFree 4.0.1.
-
-2000-10-06 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-10-06 Pixel <pixel@mandrakesoft.com>
-
- * share/list: remove /usr/X11R6/lib/X11/Cards, not needed anymore
-
- * install_steps.pm (afterInstallPackages): put the Charset in
- kdeglobals, otherwise kde uses charset iso8859-1 :(
-
- * lang.pm (charset): created
-
- * common.pm (update_userkderc): fix it, change the argument
- passing
-
-2000-10-05 Pixel <pixel@mandrakesoft.com>
-
- * share/compssList: raise kde-i18n-*, should be installed whenever
- kdebase is installed
-
- * pci_probing/pcitable: integrate patch from viet (concerns
- sym53c8xx cards)
-
- * share/compssUsers: use "documentation" as the database icon
-
- * install_steps_interactive.pm (chooseGroups): fix to accept icons
- not in the format "*_section.xpm"
-
- * install2.pm (miscellaneous): put yes/no in sysconfig/usb entries
-
-2000-10-05 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm (adsl_conf): updated pppoe conf.
- (main): added $netc->{minus_one} to avoid to count dhcp configured
- eth when asking to share the connection.
- (adsl-pppoe): improvement. Should work now.
- (miscellaneous): corrected chmod 755 to 744 for connections scripts
-
- * netconnect.pm (main): network is stopped then started, instead
- of restarted.
-
-2000-10-05 Franēois Pons <fpons@mandrakesoft.com>
-
- * live_install: added icons (this fixes the yellow on white
- tooltips problem).
-
- * install_any.pm: added ghostscript-utils in the list of packages
- to copy when changing CD.
-
- * printerdrake.pm: install ghostscript-utils if a lexmark printer
- is selected on cups.
-
-2000-10-05 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-10-05 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm (loadO): look for auto_inst.cfg in /, not in
- /Mandrake/base
-
-2000-10-05 Franēois Pons <fpons@mandrakesoft.com>
-
- * netconnect.pm: fixed syntax error.
-
- * share/po/i18n_compssUsers: simplified version and fixed
- dependancies to pkgs.pm (for building drakxtools).
-
-2000-10-04 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_gtk.pm: removed 80 pixel on height for live upgrade.
-
- * install_steps.pm: do not set keyboard when live upgrade after
- setting the language.
-
- * install_steps_gtk.pm: fixed the trying to start a X server on
- live.
-
-2000-10-04 Pixel <pixel@mandrakesoft.com>
-
- * share/po/i18n_compssUsers: fake module ``c'' so that no need to
- build DrakX to use i18n_compssUsers
-
- * install_steps_interactive.pm (selectLanguage): update license
-
- * install_steps_gtk.pm (installPackages): add second license for
- shitty soft (commercial one)
-
-2000-10-04 dam's <damien@mandrakesoft.com>
-
- * draknet (netconnect.pm and network.pm): various translations
- corrected, network is restarted, buttons connect/disconnect
- debugged.
-
-2000-10-04 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-10-04 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator.pm (main): kill prefdm instead of autologin
-
- * install_any.pm (find_root_parts): don't use
- suggest_mount_points, it couldn't do what we wanted
- (guess_mount_point): created, contains the common stuff between
- suggest_mount_points and find_root_parts
-
-2000-10-04 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * standalone/drakgw: fix some failing/untranslated i18n messages
-
- * share/po/fr.po: write translations according to drakgw
-
-2000-10-04 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: removed bad card for 3D Rage Pro.
-
- * install_any.pm: removed Aurora for SiS card, add more case for
- detecting right cdrom for live upgrade, fixed wrong list of
- packages for laptops.
-
- * c/stuff.xs.pm: added time interval of 200ms between update of
- progression bar of install, make sure the last step is seen.
-
-2000-10-04 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-10-04 Pixel <pixel@mandrakesoft.com>
-
- * modules.pm (when_load): stricter regexp for $type is scsi or not
- (so that scsi_mod with is scsi_raw doesn't get an alias
- scsi_hostadapter)
-
- * detect_devices.pm (isLS120Drive): extend the regexp to include
- "Caleb Technology - 144MB FDD UHD Floppy"
-
- * detect_devices.pm (burners, IDEburners): reworked, renamed, now
- works!
- * c/stuff.xs.pm (isBurner): created
-
- * modules.pm (load_ide): make sure ide-cd is loaded!
-
- * install_steps_interactive.pm (chooseGroups): the label and help
- are now translated (at least will be), so use the translations
-
-2000-10-03 Pixel <pixel@mandrakesoft.com>
-
- * share/po/Makefile (DrakX.pot): added the to-be-translated from
- compssUsers
- * share/po/i18n_compssUsers: read the compssUsers's and output the
- to-be-translated in po format
-
- * log.pm (l): log to STDERR instead of STDOUT
-
- * install_any.pm (loadO): use first floppy drive available (won't
- help much though, as stage1 doesn't follow this...)
-
-2000-10-03 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-10-03 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator.pm (autologin): don't propose autologin in
- security > 3
-
- * common.pm (availableRamMB): HACK HACK if i810 and memsize,
- returns 127
-
- * bootloader.pm (suggest): don't use grub if more than 800MB
-
-2000-10-04 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/po/validate.pl: create this tool
-
- * share/po/fr.po: fix many typos
-
- * share/po/fr.po: make compssUsers translation
-
-2000-10-03 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator_consts.pm: changed resolution allocation.
-
- * fs.pm: removed no more used log.
-
- * install2.pm: add exit button if live upgrade.
-
- * install_any.pm: increased minimal available size to 65Mb.
-
- * install_steps.pm, standalone/printerdrake: fixed cups to CUPS
- for mode.
-
- * printerdrake.pm: fixed not_edit for lpr mode of printerdrake.
-
- * share/Cards+: fixed Savage2000 entry.
-
-2000-10-03 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-10-03 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: updated bad card with Rage Mobility card.
-
- * live_install: added test of root user, abort if not root.
-
-2000-10-03 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/po/fr.po: fixed bug #518 and fixed other misc errors
-
-2000-10-03 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-10-02 Franēois Pons <fpons@mandrakesoft.com>
-
- * diskdrake.pm (Resize): fix to make ext2resizing work a little
- better
-
- * install_steps.pm: fixed installation of urpmi configuration.
-
- * detect_devices.pm: updated comment about UltraDMA66/100
- management.
-
- * modules.pm: updated comment about UltraDMA66/100 management.
-
- * diskdrake.pm: adding a cylinder for the minimum of the resize
- and if there is nothing to do for resize, simply return.
-
- * install_any.pm: added missing require pkgs.
-
-2000-10-02 Pixel <pixel@mandrakesoft.com>
-
- * many files: remove many lnx4win special cases which are not
- needed anymore
-
- * any.pm (addUsers): grpuser output goes to Mr Dave
-
- * bootloader.pm (install_lilo): change the default color of menu
-
- * install_steps_interactive.pm (choosePackages): add 300MB choice
- in desktop
-
- * mouse.pm (fullnames): fix i18n fix
-
- * install_steps.pm (miscellaneous): don't add ide2=0x... for
- ultra66 (otherwise chmouel is not happy, so is hdc being hde)
-
- * Xconfigurator.pm (main): add handling of icewm logout
-
- * c/stuff.xs.pm: changed the stepping of "Progressing installing package"
-
-2000-10-02 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm (main): infos are written only when needed.
- * netconnect.pm (intro): connection checking now works.
-
-2000-10-02 Chmouel Boudjnah <chmouel@mandrakesoft.com>
-
- * pci_probing/pcitable: s|snd-card-via686a|via82cxxx_audio|; like
- jeff request.
-
-2000-09-30 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-09-30 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm: a LOT of bugs fixed. draknet is now completely
- brok^H^H^H^Hfrozen.
-
-2000-09-29 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-09-29 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm (adsl_conf): dhcp should better work.
-
- * network.pm (configureNetwork): remove connection script if a
- gateway is given.
-
- * common.pm (setVarsInShMode): created. chmod the file with
- permissions passed in argument.
-
-2000-09-29 Franēois Pons <fpons@mandrakesoft.com>
-
- * modules.pm (load): fixed when standalone, use modprobe.
-
- * pkgs.pm: added preference for wu-ftpd.
-
- * detect_devices.pm: added code to proble USB printer.
-
- * printer.pm: fixed missing PRINTER=yes on CUPS configuration for
- USB printer.
-
- * install_steps.pm: removed possibilty to add an user in urpmi
- group (jloup).
-
- * install_steps_interactive.pm: log if CD not ejectable.
-
-2000-09-29 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/compssList: sync with latest packages
-
- * install_steps_interactive.pm (selectLanguage($)): s/42/43/ in
- MandrakeSoft physical address
-
-2000-09-29 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-09-29 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm (intro): detection of internet
- configuration/connexion state.
-
- * network.pm (write_resolv_conf): better "ppp temp nameserver" in resolv.conf
-
-2000-09-28 Pixel <pixel@mandrakesoft.com>
-
- * modules.pm (load_thiskind): add read_already_loaded cuz of
- pcmcia
-
-2000-09-28 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/compssList: add nasty DrakSync and DrakProfile with 50 0 50
-
-2000-09-28 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-09-28 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (choosePackages): the minimum is 25
- in beginner, not 10
-
- * pkgs.pm (readCompssUsers): fix reading description
-
- * install_steps.pm (afterInstallPackages): remove the code to
- handle RPM-GPG-KEYS
-
-2000-09-28 dam's <damien@mandrakesoft.com>
-
- * interactive_gtk.pm (ask_from_list_with_helpW): no more theme
- parsing, no more draknet.rc
-
- * netconnect.pm (read_net_conf): no adsl tree anymore.
-
- * netconnect.pm: drakgw called if enough card are installed.
-
- * netconnect.pm: minor bugs correction.
-
-2000-09-28 Franēois Pons <fpons@mandrakesoft.com>
-
- * Makefile.config: added livedrake for drakxtools.
- * diskdrake.pm: use corrected partition size when resizing a dos
- partition (like the others).
- * install_any.pm: no more pnm2ppa packages and others in package
- to copy when changing CD.
- * live_install: exec live_install2 instead.
- * live_install2: contains post live upgrade stuff now.
- * printerdrake.pm: protect set_help() usage by if $::isInstall,
- removed reference to package pnm2ppa and others.
- * standalone/livedrake: initial release for drakxtools.
-
-2000-09-28 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-09-28 Pixel <pixel@mandrakesoft.com>
-
- * install_interactive.pm (partitionWizardSolutions): fix the limit
- cases for lnx4win
-
- * share/po/Makefile ($(PMSCFILES)): fix the DrakX.pot generation
-
-2000-09-27 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (choosePackages): set $size2install
- to $availableC in desktop install, as it should be
-
- * install2.pm (choosePackages): remove the code for removing kdesu
- in high security...
-
- * install_steps_interactive.pm (createBootdisk): format more
- nicely the text
-
- * install_steps_gtk.pm (installPackages): add 10 seconds to have a
- better estimation
-
- * install_steps_interactive.pm (chooseGroups): now returns a boolean
- (choosePackages): use chooseGroups return value to redo
- choosePackages
-
- * install_steps_gtk.pm (selectMouse): if mouse type is none, then
- don't test!
-
- * Xconfigurator.pm (monitorConfiguration): rename Unlisted to Custom
-
- * various: replace all Rescue by Update
-
- * pkgs.pm (readCompssUsers): read description for groups
-
- * install_steps_interactive.pm (chooseGroups): add description for
- groups
-
-2000-09-27 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/compssUsers.desktop: added description
-
- * share/compssUsers: added description
-
- * share/compssUsers.desktop: added icon support, reordered,
- renamed
-
- * share/compssUsers: reordered, renamed
-
-2000-09-27 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-09-27 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (selectLanguage): intregrate
- license again
-
- * pkgs.pm (readCompssUsers): reads compssUsers.meta_class
-
- * diskdrake.pm (Create): replace ``ne "i386"'' by ``!~ /i.86/''
- (as should be)
-
- * install_steps_gtk.pm (selectInstallClass1): if @$l (list of
- install classes) contains only one element, call
- install_steps_interactive::selectInstallClass1
-
- * install_steps_interactive.pm (choosePartitionsToFormat): fix for
- "no partitions selected to format"
-
- * my_gtk.pm (_create_window): alt-e now *toggles* expert/newbie
-
-2000-09-27 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * share/compssList: more for gnupg, -11 for sucking things,
- changed compss-groups to be less than 70.
-
- * share/compssUsers: modified compssUsers with Warly, added
- compssUsers.desktop, simplified for KD (now uses Graphical
- Desktop/KDE instead of listing all relevant packages)
-
-2000-09-27 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm (get_info_adsl_providers, read_adsl_providers):
- Created. adsl provider tree.
- (set_net_conf): better informations storing.
-
- * my_gtk.pm (new): windows are always centered if standalone.
-
-2000-09-27 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: added option "sw_cursor" for S3 Trio3D. fixed
- 3D hw acceleration for i815 (VideoRam). prefer XF3 for all
- NeoMagic cards.
- * install_gtk.pm: re-enabled themes on live upgrade but without
- modifying background image.
- * install_steps_gtk.pm: fixed missing help.
- * live_install: lot of fixes to enable DrakX font, keep upgraded
- system clean (libperl.so which allows graphical login).
- * pkgs.pm: added function allowedToUpgrade to filter kernel
- package.
-
-2000-09-27 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-09-27 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (configureX): if `clicked' don't go
- to auto mode
-
- * Xconfigurator.pm (monitorConfiguration): fix the translated
- 'Generic' which is not so (and must not be so) anymore
-
-2000-09-26 Pixel <pixel@mandrakesoft.com>
-
- * pkgs.pm: remove all Unskip code
-
- * my_gtk.pm (_create_window): add shortcut alt-e to switch to
- expert
-
- * Xconfigurator.pm (resolutionsConfiguration): fix for setting
- legal resolution
-
- * install_steps_interactive.pm (selectLanguage): use formatAlaTeX
- on the license
-
-2000-09-26 Franēois Pons <fpons@mandrakesoft.com>
-
- * fs.pm: added mounting of swap partition when mounting them
- all (this can help :-)
- * pkgs.pm: fixed correction size code to make (really) a true
- bijection between corrected and rpm size.
-
-2000-09-26 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-09-26 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (selectLanguage): integrate the
- license (temporary one)
-
- * modules.pm (write_conf): fix the /etc/modules generation
-
- * interactive_gtk.pm (ask_many_from_listW): if more than 5 entries
- in icon format, use scrollbar. In non-icon format, use scrollbar
- for more than 11 entries.
-
- * commands.pm (bug): add ddcxinfos
-
- * pci_probing/pcitable: replace tulip by de4x5 for 2104x cards
-
-2000-09-26 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: added more 3D Rage Pro card for 3D
- acceleration with Utah-GLX (Rage Mobility, Rage XC/XL),
- modified identification for checking acceleration.
- * install_any.pm: added automatic installation (up 60) for
- OpenGL games if a graphic card MAY BE accelerated.
- * live_install: fixed perl idioms in pure shell script and added
- packdrake symlink if not already installed.
- * share/compssList: changed level to -1 for all needing 3D hw
- acceleration packages.
-
-2000-09-26 dam's <damien@mandrakesoft.com>
-
- * network.pm (write_resolv_conf): write temp dns line to be used
- with new initscripts package. Use to set dns live.
-
-2000-09-26 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-09-26 Pixel <pixel@mandrakesoft.com>
-
- * mouse.pm (read): catch exception if fullname2mouse fails (eg:
- old FULLNAME format)
-
-2000-09-25 Pixel <pixel@mandrakesoft.com>
-
- * share/MonitorsDB: merge with latest redhat MonitorsDB
-
- * pci_probing/pcitable: major merge with latest redhat pcitable
-
- * share/Cards+: added "Intel 815", renamed "Rage 128 (generic)" to
- "Rage 128", added "Rage 128 Mobility"
-
- * install_any.pm (getAvailableSpace): keep 10% of free space on
- big partitions
-
- * Xconfigurator.pm (readMonitorsDB): don't translate Generic
- (otherwise, only a part is translated, see MonitorsDB for the
- non-translated part)
-
- * interactive.pm (ask_many_from_list): fix sorting
-
- * install_gtk.pm (test_mouse): smaller box to fit in 640x480
-
- * install_steps.pm (afterInstallPackages, beforeInstallPackages):
- RPM-GPG-KEYS is copied before installing packages
-
- * pkgs.pm (readCompssUsers): handle icons in compssUsers
-
- * common.pm (truncate_list): ensure the list is not too big
-
- * install_steps_gtk.pm (choosePackagesTree): restrict the list to
- 20 elements if it is too big (use truncate_list)
-
-2000-09-25 Franēois Pons <fpons@mandrakesoft.com>
-
- * bootloader.pm: add Video mode for entry.
- * fs.pm: updated for live upgrade.
- * install2.pm: dropped unuseful steps filtering.
- * install_any.pm: fixed wrong Device3Dfx package name and clean
- postinstall rpms directory on upgrade before filling it.
- * install_gtk.pm: removed window restrictions of live upgrade.
- * install_steps.pm: fixed initrd symlink following in case of
- upgrade.
- * install_steps_gtk.pm, install_steps_interactive.pm: keep always
- upgrade on live upgrade.
- * modules.pm: may fixed pcmcia lost driver (typically on network).
- * pkgs.pm: fixed (uggly?) usage of floating perl data on perl
- script :-)
- * printer.pm: back to "Generic PostScript" for default printer (jloup).
- * printerdrake.pm: make sure an expert can choose among available
- devices.
-
-2000-09-25 dam's <damien@mandrakesoft.com>
-
- * network.pm (write_resolv_conf): write '# ppp temp entry adsl' in
- /etc/resolv.conf if needed.
-
- * netconnect.pm : adsl connection does'nt need any dns anymore.
-
- * netconnect.pm (read_net_conf): created. draknet now stores and
- reload the config.
-
- * netconnect.pm (main): if the user is french and uses french
- keyboard, don't ask his country.
-
-2000-09-25 Pixel <pixel@mandrakesoft.com>
-
- * modules.pm: added 8139too
-
- * share/Cards+: GeForce2 DDR is handled by driver "nv"
-
- * Xconfigurator.pm (main): in killall X for Xdrakres, also killall
- kdm/xdm/gdm/autologin :)
-
-2000-09-25 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-09-25 dam's <damien@mandrakesoft.com>
-
- * network.pm (configureNetwork): Warn user if he already
- configured the interface.
-
-2000-09-24 Pixel <pixel@mandrakesoft.com>
-
- * modules.pm (mergein_conf): created. call read_conf, fills
- %modules::conf and set $modules::scsi
-
-2000-09-24 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * standalone/drakgw (fatal_quit($)): add log of reason of fatal_quit
-
-2000-09-24 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-09-24 Pixel <pixel@mandrakesoft.com>
-
- * commands.pm (bug): use first floppy drive instead of fd0 hard
- coded (nice for LS120's)
-
- * install_steps_gtk.pm (selectMouse): if device changed, do the
- test
- * standalone/mousedrake: fix for serial mice
- * install_steps_interactive.pm (selectMouse): fix for serial mice
-
-2000-09-23 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm (conf_network_card): now displays the modules of
- detected ethernet cards.
-
-2000-09-22 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm (main): calls drakegw.
- * netconnect.pm (get_net_device): fixed
-
-2000-09-22 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * standalone/drakgw:
- - added logs
- - added verbose mode
- - fixed wrong stopping of named in other languages than english
-
- * netconnect.pm (get_net_device): try to fix it..
-
-2000-09-22 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (selectKeyboard,
- choosePartitionsToFormat, chooseCD, installCrypto): use new ask_many_from_list
- ():
-
- * interactive.pm (ask_many_from_list): now only ask_many_from_list
- exists, obsoleting ask_many_from_list_ref and
- ask_many_from_list_with_help. More flexible and nicer
- * interactive_newt.pm (ask_many_from_listW): adapted to new
- calling type
- * interactive_gtk.pm (ask_many_from_listW): adapted to new calling
- type, handle 'shadow' and 'icon2f'
-
-2000-09-22 Pixel <pixel@mandrakesoft.com>
-
- * install2.pm (main): if /lnx4win/i in VERSION, set $o->{lnx4win}
-
- * Xconfigurator.pm (cardConfiguration): fix setting 4MB of meg for
- i810
- (testFinalConfig): i810 is a verybad_card, aka can't test anything
- on it :-(
- (main): fork to background and stay there while waiting for the WM
- to exit
- (testFinalConfig): update the backgroung image path
-
- * interactive_gtk.pm (exit): flush X before leaving (otherwise the
- mousecursor is not restored)
-
- * run_program.pm (rooted): don't redirect the stdout and stderr to
- ddebug.log if not $::isInstall
-
- * log.pm (l): log on stdout/stderr if !isInstall and !isStandalone
-
- * modules.pm (load_raw): redirect stderr to tty5
-
- * install2.pm (main): set variable $::isInstall
-
-2000-09-22 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-09-22 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * standalone/drakgw: now includes information from netconnect to
- ignore the interface used for Internet connection
-
-2000-09-22 dam's <damien@mandrakesoft.com>
-
- * install_steps_gtk.pm (selectInstallClass1): pixel's typo.
-
- * netconnect.pm (get_net_device): added get_net_device to know
- which interface has been used to configure the internet connection.
- (conf_network_card): ask to restart network if dhcp too.
- (main): enable dialing when modem.
-
- * network.pm (configureNetworkIntf): changed label to warn people
- about already configured eth cards.
-
-2000-09-22 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_gtk.pm: added Desktop themes.
- * share/themes-mdk-Desktop.rc, share/themes/mdk-Desktop-bg.png:
- initial release.
- * install2.pm: moved back to all steps for live upgrade.
- * install_gtk.pm: select right logo if desktop.
- * install_steps_interactive, install_steps_gtk.pm: avoid asking if
- upgrade for a live upgrade.
-
-2000-09-22 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm: add some call to log_sizes to log the
- installed size
-
- * install_steps_gtk.pm (installPackages): beep before changeMedium
-
-2000-09-21 Pixel <pixel@mandrakesoft.com>
-
- * interactive.pm (ask_from_listf): try to call the f translation
- function on the default value with the index
-
- * install_steps.pm (afterInstallPackages): make the gpg code work,
- changed the call to
- "gpg --fast-import --homedir /etc/rpm /root/tmp/RPM-GPG-KEYS"
-
- * detect_devices.pm: cleanup and removed unused code
-
-2000-09-21 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * detect_devices.pm (getNet()): really remove plip in standalone
-
-2000-09-21 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps.pm, netconnect.pm: changed NETWORKING reference
- from false to no.
- * printer.pm: changed timeout from 30 to 60.
- * printerdrake.pm: added wait message when waiting for cups to
- start.
- * pci_probing/pcitable: added erwan VIA Rhine board.
- * network.pm: added DHCP_HOSTNAME reference.
-
-2000-09-21 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-09-21 Pixel <pixel@mandrakesoft.com>
-
- * standalone/keyboarddrake: fix for XF4
-
- * Xconfigurator.pm (write_XF86Config): comment the omit
- xfree86-dga
-
- * install_steps.pm (afterInstallPackages): configure GPG public
- keyring with mandrake key
-
- * standalone/mousedrake: updated/fixed for new mouse handling
-
- * install2.pm (main): update for handling oem installs
-
- * many files: relGetFile cleanup, updated calls to getFile and
- getAndSaveFile accordingly
-
- * Xconfigurator.pm (testFinalConfig): new XFdrake-image-test.jpg
-
- * detect_devices.pm (@netdevices): plip removed in standalone,
- otherwise plip is always there (because of kmod)
-
- * install_steps_interactive.pm (choosePartitionsToFormat): replace
- the die "cancel" by die "already displayed", so that no error is
- displayed.
-
- * pci_probing/pcitable: replace some rtl8139 by 8139too, added
- cards DELTA8139 and ADDTRON8139 (for jeff)
-
- * Xconfigurator.pm (show_info): also show the colordepth and
- resolution. don't show server if none, show XF4 driver if there's
- one.
- (main): change the "Forget the changes" to "Keep the changes?"
- with displaying the current configuration.
-
-2000-09-21 Franēois Pons <fpons@mandrakesoft.com>
-
- * printer.pm: changed "PostScript" ppd default description to "Raw
- queue (no filtering)", asked by Till.
- * Xconfigurator.pm: add log of what user select for 3D hw
- acceleration.
- * share/compssList: changed XFree86-glide-module to -2 because the
- level is the same for XFree86-Glide* which may have multiple
- different version installed due to dependancies of the first one.
-
-2000-09-21 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm (conf_network_card): added check when dhcp. Cable connection
- should now work.
-
-2000-09-21 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-09-21 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (exitInstall): call $o->exit if
- "Some steps are not completed"
-
-2000-09-20 Pixel <pixel@mandrakesoft.com>
-
- * bootloader.pm (install_loadlin_config_sys,
- install_loadlin_desktop): extracted from install_loadlin, do not
- call them anymore (remove it?)
- (suggest): put grub in lnx4win install
-
- * common.pm (availableRamMB): fixed (round to a multiple of 4)
-
-2000-09-20 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm (get_info_isdn_providers & read_isdn_providers):
- read file in /usr/share and $prefix/usr/share
- (isdn_write_config): corrected file to be sh compliant.
- (isdn_write_config): added default route settings for isdn.
-
-2000-09-20 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-09-20 Pixel <pixel@mandrakesoft.com>
-
- * pci_probing/pcitable: replace es1371 by snd-card-ens1371
-
-2000-09-20 dam's <damien@mandrakesoft.com>
-
- * Xconfigurator.pm (autologin): for urpmi, added `--best-output' and suspend/resume
-
-2000-09-20 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * standalone/printerdrake: for urpmi, added `--best-output' and suspend/resume
-
- * standalone/XFdrake: for urpmi, added `--best-output' and suspend/resume
-
-2000-09-20 dam's <damien@mandrakesoft.com>
-
- * standalone/draknet: used new package install function.
-
-2000-09-20 Pixel <pixel@mandrakesoft.com>
-
- * detect_devices.pm (isFloppyOrHD): detects wether a device is a
- floppy or not based on its size (for scsi floppy)
-
- * Xconfigurator.pm (testFinalConfig): check if "server" OR
- "driver" field is set (otherwise XF4 only card won't pass)
-
- * bootloader.pm (suggest): fix for ``installing the last cooker
- from kenobi:/I on an smp machine i don't get anymore an entry for
- linux-up'' (c chmouel)
-
-2000-09-20 dam's <damien@mandrakesoft.com>
-
- * netconnect.pm (read_isdn_providers): corrected typo ($_ -> $_[0])
-
-2000-09-20 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-09-19 Pixel <pixel@mandrakesoft.com>
-
- * modules.pm (get_pcmcia_devices): fix (especially, now ethernet
- should be detected)
-
- * lang.pm (get_langs): created, gives rpm install langs
- * install_any.pm (setPackages): give langs::get_langs() to
- readCompssList
- * pkgs.pm (readCompssList): don't use RPM_INSTALL_LANG, use given
- $langs instead. This fixes the RPM_INSTALL_LANG=all install.
-
-2000-09-19 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * netconnect.pm: make dhcp-client, pump and such not translatable.
- Those are program names and should therefore not be translated,
- that only confuses translators
-
-2000-09-19 dam's <damien@mandrakesoft.com>
-
- * Xconfigurator.pm (autologin): corrected @users definition and
- passwd cat.
-
-2000-09-19 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-09-19 Pixel <pixel@mandrakesoft.com>
-
- * many files: changed some access to get_root to get_root_
-
- * install_steps_interactive.pm (choosePackages): added code for
- desktop meta_class install type
-
- * install_steps_gtk.pm (selectMouse): cleanup, give parameter
- emulate3buttons to setMouseLive
- * c/stuff.xs.pm (setMouseLive): add argument emulate3buttons
-
-2000-09-19 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * interactive*.pm: changed `suspend' and `resume' to behave as expected,
- added `enter_console' and `leave_console'
-
-2000-09-19 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-09-19 Pixel <pixel@mandrakesoft.com>
-
- * install2.pm (miscellaneous): replaced LITTLE_FRIED_OIGNONS by
- META_CLASS
-
- * Xconfigurator.pm (cardConfiguration): when ddcxinfos gives false
- result (not enough VideoRam), also remove the found resolutions
- * Xconfigurator.pm (main): remove the automatic searching of
- resolutions
- * Xconfigurator.pm (resolutionsConfiguration): cleanup, remove the
- automatic searching of resolutions.
-
- * mouse.pm (fullnames): changed the `_' in `[' before Other
- (nicer, uh?)
-
- * install2.pm (selectMouse): changed clicked to !first_time
-
-2000-09-19 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-09-19 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator.pm (testFinalConfig): remove the bloody prototype
-
-2000-09-19 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-09-18 Dam's <damien@mandrakesoft.com>
-
- * Xconfigurator (autologin): do it eve, if newbie. Autologin is
- now in separated function.
-
-2000-09-18 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator.pm (testFinalConfig): don't skip the test in auto
- if called via "Test again"
- * Xconfigurator.pm (resolutionsConfiguration): ensure all depth
- are bounded
-
- * bootloader.pm (suggest): don't put "linux-nonfb" if "linux" is
- classic and no-fb
-
- * fsedit.pm (check_mntpoint): add a check for /etc /lib... which
- must not be mount points. Also check that /home, /tmp and /usr are
- on trueFS
-
- * interactive.pm (ask_from_entries_ref): add bounding of "val" in
- case of type "range". die if min > max.
-
-2000-09-18 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-09-18 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (choosePartitionsToFormat): nicer
- partition/device display
-
- * partition_table_raw.pm (zero_MBR): add on the fly require of the
- good partition_table_$type
-
- * detect_devices.pm (cdroms): fix (yet again) the scd$nb device
- assignment to ide burners
-
- * install_steps.pm (afterInstallPackages): comment out a part of
- the icons mess messing
-
- * Xconfigurator.pm (cardConfiguration): move Unlisted to
- Other/Unlisted
- * share/CardsNames: updated (for Voodoo5)
-
- * install_steps_gtk.pm (selectMouse): fix the test to know wether
- the guy has changed the mouse type (to know wether to test the
- mouse or not)
-
- * install_steps_interactive.pm (selectLanguage): add the license
-
- * install_steps_interactive.pm (choosePackages): have the
- "Recommended" size be the default
- (in the choice Minimum/Recommanded/Complete)
-
- * diskdrake.pm (Type): fix a typo
-
- * install_steps.pm (doPartitionDisksAfter): mark partition as
- mounted
-
-2000-09-17 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-09-17 Pixel <pixel@mandrakesoft.com>
-
- * install/pcmcia_config.patch: cleaned
-
- * diskdrake.pm (Create, Type): have type field not_editable
-
- * tools/make_mdkinst_stage2: use TMPDIR if available
-
-2000-09-16 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (choosePartitionsToFormat): move
- the setting of toFormat before asking for bad blocks, seems to fix
- things?? weird :-/
-
- * network.pm (miscellaneousNetwork): fix the setting of focus on
- error (tx2Thomas Poindessous :)
-
- * install_steps_interactive.pm (configurePrinter): changed
- "Cancel" to "None" (for Thomas Poindessous :)
-
- * printer.pm (poll_ppd_base): max polling time raised from 10s to
- 30s (for Till)
-
- * install_steps.pm (ask_mntpoint_s): don't force partition type to
- be ext2 (at least if it's a known fs) (for Warly)
-
-2000-09-15 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-09-15 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_gtk.pm (set_help): save the help message displayed
- in $o->{current_help}
- * install_gtk.pm (create_big_help): display $o->{current_help}
-
- * mouse.pm: reworked quite a lot. Now sorts/categorize nicely the mice.
- * install_steps_interactive.pm (selectMouse): adapted for reworked mouse.pm
- * install2.pm (selectMouse): adapted for mouse::read now returning
- an hash ref
-
- * detect_devices.pm (hasMousePS2): remove hasMouseMacUSB, do it in
- one function (now takes the device in the parameter)
-
- * interactive.pm (ask_from_treelistf): added (just like
- ask_from_listf, but with a tree)
-
- * Xconfigurator.pm: the reference is now nbuttons to
- know wether to put Emulate3Buttons or ZAxisMapping.
- * Xconfigurator.pm (cardConfiguration): install Glide_V3-DRI on
- Banshee too.
-
- * Xconfig.pm: guess nbuttons based on Emulate3Buttons and
- ZAxisMapping.
-
- * common.pm (availableRamMB): replace availableRam, now use the
- size of /proc/kcore (what else to find the real ramsize?)
-
- * common.pm (cat__): created
-
- * install2.pm (main): add field meta_class in $o. Can be
- 'desktop', in case option desktop is given, or if /desktop/i is
- found in /VERSION
-
- * install_steps.pm (miscellaneous): for lnx4win, always have
- 'mem=' (so that the initrd is visible by both windows
-
- * install2.pm (main): add option "desktop"
-
- * install_any.pm (generate_ks_cfg): fix for new(?) $o->{intf} format
-
- * install_interactive.pm (partitionWizardSolutions):
- use only TrueFS for existing_part
- (partitionWizard): have only "loopback" for lnx4win
-
- * pci_probing/pcitable: associate Voodoo5 with Voodoo5
-
- * share/Cards+: add Voodoo5
-
- * bootloader.pm (suggest): add entry linux-nonfb (called linux-up
- for smp)
-
-2000-09-14 DrakX <install@mandrakesoft.com>
-
- * snapshot uploaded
-
-2000-09-12 Franēois Pons <fpons@mandrakesoft.com>
-
- * detect_devices.pm, mouse.pm: moved probing serial port before to
- detect a wacom tablet (even if a PS/2 or USB mouse is found).
- * help.pm: corrected reference to previous version of LM (jloup).
- * install2.pm: removed duplicate code for getting network
- configuration, using network module.
- * netconnect.pm: intf is now a hash and no more an array.
- * network.pm: changed nature of intf to hash from array, reworked
- write_resolv_conf function to keep old code in comment but only
- when not used anymore (to make it easier by hand modification).
- * printer.pm: SOCKET accessible to expert only (jloup).
- * printerdrake.pm: local port only available for expert if a
- printer has been detected (jloup).
-
-2000-09-11 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: reorganized choices of 3D optimizations, added
- experimental support for expert users.
- * install_steps_interactive.pm: removed question to keep XF3.
-
-2000-09-05 Franēois Pons <fpons@mandrakesoft.com>
-
- * printerdrake.pm: removed all previous URI specific mode and
- added socket and expert URI general mode.
- * printer.pm: fixed bugs, start lo interface before cups.
-
-2000-09-04 Franēois Pons <fpons@mandrakesoft.com>
-
- * printerdrake.pm: added pnm2ppa and lm110 support in cups
- configuration. probe for printer device (parallel) and try to
- install usb for printer.
- * printer.pm: removed local printer configuration for cups (keep
- only local configuration using URI).
-
-2000-09-01 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: fixes to configure XF86Config-4 when XFree-3.3
- is installed, make 16bits by default on 3D hardware acceleration,
- fixed selection of hardware for hardware acceleration.
- * install_steps.pm: add cups for printer configuration, used for
- auto_install. added new function to add packages only if requires
- are already satisfied.
- * standalone/printerdrake: updated.
-
-2000-08-31 dam's <damien@mandrakesoft.com>
-
- * moved many things to network.pm and any.pm
- * everything should be broken now.
-
-2000-08-31 Franēois Pons <fpons@mandrakesoft.com>
-
- * install2.pm: removed printer default config (now obsoleted).
- * install_steps_interactive.pm: add cups support.
- * printerdrake.pm: add cups support.
- * printer.pm: add cups support.
-
-2000-08-31 Frederic Lepied <flepied@mandrakesoft.com>
-
- * install_any.pm (setPackages): install the right glide module
- according to the Voodoo card detected.
-
- * Xconfigurator.pm (write_XF86Config): ZAxisMapping for XF 4.
- (autoDefaultDepth): default depth to 16 for Voodoo cards except
- for Voodo5 ones.
-
-2000-08-29 dam's <damien@mandrakesoft.com>
-
- * moved pppConfig in netconnect.pm and any.pm
- * moved miscellaneousNetwork in any
- * modem configuration is now useable in standalone mode.
-
-2000-08-29 David BAUDENS <baudens@mandrakesoft.com>
-
- * install_steps_interactive.pm: change Small/Normal/Full ->
- Minimum/Recommanded/Complete (aka make FredB happy)
-
-2000-08-28 dam's <damien@mandrakesoft.com>
-
- * draknet (netconnect): renamed drakfuck -> draknet. standard ADSL
- and french alcatel ADSL implemented.
- * Xconfigurator.pm (autologin) : use of the new autologin system.
-
-2000-08-24 Franēois Pons <fpons@mandrakesoft.com>
-
- * ../update_kernel*: changed reference from extract_archive to
- packadrake.
- * Makefile*: added live_install and live_install2.
- * Xconfigurator.pm: updated Mach64 acceleration to only 3D Rage
- Pro AGP card type, commented SiS and S3ViRGE support by GLX.
- * commands.pm, keyboard.pm, lang.pm, pkgs.pm, list, tools/*:
- updated to use packdrake now.
- * install2.pm, install_steps.pm, install_steps_gtk, Makefile*:
- manage live upgrade.
- * modules.pm: use standard modprobe command for load in live
- upgrade.
- * netconnect.pm: added minimal modification for being compilable.
- * rescue/list: added packdrake and sfdisk.
- * live_install, live_install2: live upgrade of package.
-
-2000-08-22 dam's <damien@mandrakesoft.com>
-
- * drakfuck (netconnect):finished isdn PCI/ISA card implemetation
- * added isdndb.net: providers database
-
-2000-08-20 dam's <damien@mandrakesoft.com>
-
- * moved Netconnect.pm to netconnect.pm
- * moved DrakFuck to drakfuck
-
-2000-08-18 Pixel <pixel@mandrakesoft.com>
-
- * share/Cards+: for i810, force VideoRam
-
-2000-08-18 dam's <damien@mandrakesoft.com>
-
- * modules.pm: added isdn type in @drivers_by_category. corrected
- load_thiskind (thx pixel) : it's not unsafe anymore
- * Netconnect.pm: just display PCI isdn card recognized.
-
-2000-08-17 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm: many cleanup. moved some functions to common,
- any or install_interactive (newly created)
-
-2000-08-16 dam's <damien@mandrakesoft.com>
-
- * install_steps_interactive.pm(configureNetwork): added call to
- isdn configuration
- * added standalone/DrakFuck: standalone entry point to configure
- internet connexion.
- * added Netconnect.pm: internet connexion functions.
-
-2000-08-11 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (selectInstallClass): yet a bigger
- warning so that people don't choose expert installs. Also set the
- focus on "Custom" by default.
-
- * install_steps_interactive.pm (doPartitionDisks): created, calls
- the wizard.
- * install_steps.pm (doPartitionDisksBefore,
- doPartitionDisksAfter): created (was mainly in
- install2::doPartitionDisks)
- * install2.pm (doPartitionDisks): much cleanup
- * install_any.pm (partitionWizard): working state (still rough)
-
-2000-08-08 Pixel <pixel@mandrakesoft.com>
-
- * standalone/rpmdrake (AddMedia): fix the ftp addmedia, fix the
- cdrom addmedia
-
-2000-08-07 Pixel <pixel@mandrakesoft.com>
-
- * diskdrake.pm (Resize):
- * install_steps_gtk.pm (doPartitionDisks): remove the
- before_leaving ensuring the filehandle is closed
- * resize_fat/main.pm (DESTROY): use a better solution for ensuring
- the filehandle is closed
-
-2000-08-07 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: added SiS6326 in the list of chipset that
- needVideoRam, reported on ml.
- * install_steps.pm: fixed auto install of printer.
-
-2000-08-06 Pixel <pixel@mandrakesoft.com>
-
- * interactive.pm (ask_from_listf): created this GREAT function
- that should have been created a long time ago.
- * any.pm, install_any.pm, install_steps_gtk.pm,
- install_steps_interactive.pm: a lot of rewrite to use the new
- ask_from_listf, a lot of nice cleanup!
-
- * fs.pm (df): created, returns the free space of the part. Save it
- in $part->{free}
-
- * install_steps_gtk.pm (doPartitionDisks): ensure the closing of
- the device in case of error
- * resize_fat/main.pm (new): ensure the closing of the device in
- case of error
-
- * install_any.pm (partitionWizard): the great partitioning wizard
- is created. Not finished yet (nor called from anywhere)
-
- * install_steps.pm (doPartitionDisksLnx4win): created function out
- of doPartitionDisks
-
- * install_steps_gtk.pm (installPackages): removed the displaying
- of size to install (people are bothered cuz not the same size)
-
-2000-08-06 dam's <damien@mandrakesoft.com>
-
- * install_steps_gtk.pm (create_steps_window): use drawing area
- instead of button. Implemented all steps events.
-
-2000-08-05 Pixel <pixel@mandrakesoft.com>
-
- * mouse.pm (detect): test a hack for usb mouse via hub
- (sparhawk@enteract.com)
-
- * fsedit.pm (undo): force isDirty and needKernelReread only if hd
- hasBeenDirty, otherwise believe the flag saved
- * partition_table.pm (write): flag hd as hasBeenDirty
-
- * install2.pm: a few renaming of methods so that the step names
- correspond to install2 function and install_steps* methods (eg:
- configureX & setupXfree unified to configureX)
-
-2000-08-04 dam's <damien@mandrakesoft.com>
-
- * any.pm (setAutoLogin): added this method to write xdm-config
- * Xconfigurator.pm: clenead autologin code and use of above method
-
-2000-08-04 Pixel <pixel@mandrakesoft.com>
-
- * pkgs.pm (setSelectedFromCompssList): save $nb to able to restore
- it in case of max_size reached. only purpose is the log!
-
- * install_steps_interactive.pm (choosePackages): in newbie, ask
- between Small/Medium/Full install
- * install_steps_interactive.pm (choosePackages): in expert, have
- the min_mark be 0 instead of 1
-
- * common.pm (find_index): added this nice function
-
- * install_any.pm (getAvailableSpace_mounted): use common::df
- * loopback.pm (getFree): use common::df
- * commands.pm (df): use common::df
- * common.pm (df): added
-
- * diskdrake.pm (Resize)): add resizing of reiserfs
- * share/list.i386: add resize_reiserfs
-
-
-2000-08-02 dam's <damien@mandrakesoft.com>
-
- * Xconfigurator.pm : autologin is functionall. When wmsession.d is
- more up to date, I'll add the list of wm to launch at boot. It
- writes in /etc/X11/xdm/xdm-config.
-
-2000-08-01 Pixel <pixel@mandrakesoft.com>
-
- * install2.pm (miscellaneous): modify as chmouel want (aka, ""
- instead of "no" for MOUSE and KEYBOARD in sysconfig/usb)
-
- * services.pm: separation between interaction and action.
- * install_steps.pm (servicesConfig): the job is now done here
- * install_steps_interactive.pm (servicesConfig): only the asking
- part
-
-2000-08-01 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: fixed the below fixe, now ok.
- * Xconfigurator.pm: fixed a bug for using default card flags
- setting, add support for GeForce DDR for both 3.3 and 4.0.
- * pci_probing/pcitable: fixed NV15 (GeForce2) card entry, now use
- XFree 3.3 as unsupported in XFree 4.0.
- * share/Cards+: added "NVIDIA GeForce2 DDR (generic)".
-
-2000-07-31 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: fixed provided package with choice in deps used with a
- base package, complicated but kernel-fb or similar can be
- unselected now.
-
-2000-07-27 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps_interactive.pm: changed expert message to ask
- using XFree 3.3 instead of XFree 4.0 used by default (server).
- * Xconfigurator.pm: make sure only one server is installed,
- default to XFree 4.0 if supported unless XFree 3.3 accept
- 3D acceleration and not XFree 4.0, ask user in such case.
- * pci_probing/pcitable: added Intel 815 pci ids.
-
-2000-07-26 dam's <damien@mandrakesoft.com>
-
- * install_steps_gtk.pm: applied new LN stars, logo title and help
- logo. improved steps appearences.
- * modified share/step-*.xpm
- * added share/help.xpm
- * updated ../HACKING to ling help logo.
-
-2000-07-21 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: enable 3D acceleration configuration with
- XFree86, use /usr/X11R6/lib/modules/glx-3.so for X version 3
- Utah-GLX accelerated module.
-
-2000-07-20 dam's <damien@mandrakesoft.com>
-
- * Xconfigurator.pm: use {miscellaneous}{autologuser} instead of
- {miscellaneous}{autologuser} + {miscellaneous}{autologing}.
- * move some README content to ../HACKING
-
-2000-07-19 dam's <damien@mandrakesoft.com>
-
- * Xconfigurator.pm: added autologin boxes.
- result is in {miscellaneous}{autologin} and in
- {miscellaneous}{autologuser}
-
-2000-07-19 Franēois Pons <fpons@mandrakesoft.com>
-
- * any.pm: added default root to existing root device when adding
- an entry in bootloader.
- * bootloader.pm: avoid duplicating entry (floppy and old-floppy)
- when they are identical.
- manage hackkernel by suggest an entry by default if installed.
- * install_steps.pm: reworked symlink closure for bootloader
- to keep previous configuration.
-
-2000-07-11 Franēois Pons <fpons@mandrakesoft.com>
-
- * bootloader.pm: merged lilo.pm and silo.pm inside bootloader.pm,
- this include a configure_entry from silo.pm to build a initrd if
- used.
- * share/compssList: added kde2 packages.
- * share/compssUsers: added kde2 group, renamed kde to kde1 group
- specific.
-
-2000-07-07 Franēois Pons <fpons@mandrakesoft.com>
-
- * install2.pm (choosePackages): always execute setPackage to copy
- hdlist* and depslist files (support mixed partitionDisks and
- choosePackages).
- * install_any.pm (setPackages): avoid clearing upgrade flag.
- * install_steps.pm (choosePackages): use $first_time to avoid
- reselection of packages according to compssList.
- * install_steps_interactive (choosePackages): use $first_time and
- $individual to avoid reselection of packages according if user go
- back to step choosePackages.
- * pkgs.pm: added psUpdateHdlistsDeps to restore hdlist* and
- depslist files in /var/lib/urpmi.
- * diskdrake.pm: fixed uneditable combo for Mount point action.
-
-2000-06-23 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: better approach for Sun* server in newbie.
- * fs.pm: added romfs support for mount.
- * fsedit.pm: changed auto allocation for partitions for sparc*.
- * install2.pm: restored bootdisk creation and auto install boot
- disk creation for sparc*.
- * install_any.pm: changed vfat to romfs when mounting kickstart
- floppy on sparc*.
- * install_steps.pm: avoid proposing formating sunos partition.
- * install_steps_interactive.pm: boot disk for sparc* and support for
- installation of SILO on /boot partition (sparc*).
- * install_steps_newt.pm: removed cylinder 0 bug warning.
- * interactive.pm: fixed typo for not_edit set to 1 by default.
- * partition_table.pm: fixed get_holes on sparc* where a whole disk
- partition caused problems.
- * partition_table_sun.pm: removed cylinder 0 bug as found in mke2fs.
- * silo.pm: handle /boot partition, install silo.conf in /boot and
- make a symlink from /etc.
- * share/list.sparc: added losetup and genromfs for boot disk creation.
-
-2000-06-21 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * lang.pm: changed the way console font data is written; not all
- of the [0], [1], [2] values must defined, so three cases must be used.
- Also added a variable $CHARSET for /etc/sysconfig/i18n; it can then
- be used by console-tools to load the proper compose table
-
-2000-06-20 Franēois Pons <fpons@mandrakesoft.com>
-
- * c/sbus.c: added some functions for silo.c integration.
- * c/silo.c: initial release including write in prom, and translation
- of disk name from openprom to linux, rh version modified.
- * silo.pm: added write in prom, support of sunos boot from silo.
- * partition_table.pm: added support for ufs partition like windows one.
- * install_steps_interactive.pm: added other entries in silo.
- * install_steps.pm: support sunos partition.
- * install_any.pm: automatically mount sunos partition with diskdrake.
- * fsedit.pm: added /mnt/sunos suggested mount point.
- * fs.pm: added ufs support for mount.
-
-2000-06-19 Franēois Pons <fpons@mandrakesoft.com>
-
- * crypto.pm: modified for getting sparc crypto file for sparc*.
- * modules.pm: make sure to load sd_mod when needed.
- * pci_probing/main.pm: always use loaw_endian in pci structs.
- * pci_probing/translate-pcitable.pl: added arch specific module name
- translation.
-
-2000-06-16 Pixel <pixel@mandrakesoft.com>
-
- * modules.pm (write_conf): rename conf.modules to modules.conf if
- needed. Outputs to modules.conf
-
- * detect_devices.pm (cdroms): fix using scd0 for ide-burners when
- already a scsi cdrom drive
-
-2000-06-13 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * pkgs.pm: added 'acon' requirement for all right-to-left languages
-
-2000-06-07 Franēois Pons <fpons@mandrakesoft.com>
-
- * diskdrake.pm: added SunOS partition as blue for diskdrake.
- * install_steps_interactive.pm: make sure of no division by zero may
- happen.
- * install_steps_newt.pm: added WARNING for fdisk on sparc*.
- * modules.pm: make sure of loading sd_mod module after any scsi module.
- * sbus_probing/main.pm: insmod openprom before trying sbus probing.
- * pkgs.pm: corrected by use of parabolic solution for size approximation.
- * silo.pm: try with "silo -p 2 -t" if "silo -t" has failed due to bad probe.
-
-2000-06-05 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * install_steps.pm,lang.pm: added load_console_font, to load the
- proper console fonts (text mode install is not very useful otherwise)
-
-2000-06-03 Pixel <pixel@mandrakesoft.com>
-
- * diskdrake.pm (Create): don't accept less than 32MB part for reiserfs
- * diskdrake.pm (Type): don't accept less than 32MB part for reiserfs
-
-2000-06-01 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/fonts.tar.bz2: replaced the Korean 16pt fonts by a 12pt font;
- it fits better with the other fonts. Added a 'README' file with
- some comments and the required copyright notice
-
-2000-05-29 Franēois Pons <fpons@mandrakesoft.com>
-
- * Xconfigurator.pm: added support for SBUS card autodetection.
- * commands.pm: added lssbus to list SBUS devices detected.
- * detect_devices.pm: removed alpha restriction on USB.
- * install_steps_interactive.pm: added SBUS support.
- * c/sbus.c: initial revision, core SBUS support (inspired from kudzu).
- * c/stuff.xs.pm: added wrapper for sbus.c interface.
- * sbus_probing/main.pm: initial revision (inspired from kudzu).
-
-2000-05-27 Adam Lebsack <adam@mandrakesoft.com>
-
- * share/list.ppc: various PPC modifications, for HFS
- * partition_table_mac.pm: bug fixes
- * partition_table.pm: various HFS fixes, isHiddenMacPart()
- * diskdrake.pm: added HFS to top buttons when run on PPC
- * keyboard.pm: fixed name of mac-fr2-ext keymap
- * install_steps_gtk.pm: added Xpmac server support for PPC.
- * install_steps_interactive.pm: disallow hardware configuration on PPC for
- now. All drivers should be in the kernel. setup_this_kind().
- * fsedit.pm: fixed verify_hds for PPC, /proc/partitions will never match
- our partition table read. Added PPC grep condition for PPC in get_visible_fstab.
- * fs.pm: fix argument for HFS formatting.
- * Makefile: special installation of PPC files.
-
-2000-05-25 Chmouel Boudjnah <chmouel@mandrakesoft.com>
-
- * standalone/drakboot: Don't display Configure-/LILO/GRUB/ on
- alpha|sparc.
-
-2000-05-25 Franēois Pons <fpons@mandrakesoft.com>
-
- * silo.pm: added configure_entry to try creating an initrd for an image
- entry in bootloader. fixed wrong usage of run_programm::rooted with 2>.
- * commands.pm: fixed insmod command to take modules64.cz* on sparc*
- * install2.pm: removed create boot disk and create auto install disk on
- sparc*. force writing of /etc/conf.modules for step setupBootloader.
- * install_steps.pm: fixed upgrade for sparc* and disable supermount for sparc*.
- * install_steps_interactive.pm: added missing $prefix for glob_. call
- configure_entry in setupSILO. fixed cancel or None entry on setupBootloader.
- * modules.pm: updated alias for sparc*.
- * any.pm: fixed proprable wrong test for setupBootloader in beginner at
- the very beginning.
- * printer.pm: fixed typo.
- * Xconfigurator.pm: avoid testing if using a Sun* server, added depth and
- resolution for these server too.
-
-2000-05-24 Franēois Pons <fpons@mandrakesoft.com>
-
- * partition_tabel.pm: fixed wrong detection of DOS partition on sparc*.
- * partition_table_sun.pm: fixed a bug when reading partition table
- with unused partition in the middle of the table.
-
-2000-05-23 Franēois Pons <fpons@mandrakesoft.com>
-
- * common.pm: update arch to take into account sparc and sparc64. added
- better_arch and compat_arch function.
- * silo.pm: fixed adding new kernel automatically.
- * install2.pm: removed create boot disk stuff for sparc*.
- * install_steps.pm: added initrd generation for alpha. added ldconfig
- at end of installation. removed /usr/bin/dumpkeys existence test on
- sparc*, should be added in the future.
- * install_steps_interactive.pm: removed supermount for sparc*.
- * install_steps_gtk.pm: added /dev/kbd device creation and permedia2
- support for sparc*. removed screen limit of 1024x768.
- * detect_devices.pm: fixed problem on machine with really no IDE interface.
- * modules.pm: added support for 32 and 64 bit architectures on sparc*.
- * install_any.pm: fixed getAvailableSpace_mounted if /usr is not a separate
- partition.
- * pkgs.pm: added support for multi-arch rpm file (need for sparc*),
- fixed correctSize and invCorrectSize to take back a linear approximation
- above 9Gb approximatively. removed ftp rewind as broken currently.
- * keyboard.pm: fixed bad list of available keyboard (broke sparc*), fixed
- globing (removed) against existing '*'.
- * partition_table.pm: removed support for non SUN partition table, as it
- may freeze the kernel or may be blanked?
- * Xconfigurator.pm: take Sun24 server by default on sparc*, add support
- for permedia2 card (3DLabs server).
- * share/list.sparc: added perl-5.6.0 for sparc*, fixed for sparc*.
- * Makefile: added support for modules and modules64 for sparc*.
- * c/stuff.xs.pm: added kernel_arch function for getting the current true
- architecture provided by the kernel (uname -m).
-
-2000-05-09 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm (kdeicons_postinstall): the URL link to doc must
- be $lang/index.html, not only $lang.
-
- * standalone/mousedrake: add handling of XF86Config-4
-
- * any.pm (setupBootloader): fix bug (was adding 2 glob_'s)
-
-2000-05-08 Pixel <pixel@mandrakesoft.com>
-
- * install2.pm (main): move the touch of some files here to please linuxconf
-
- * install2.pm (miscellaneous): s/KBD/KEYBOARD/
-
- * lilo.pm (install_grub): don't keep symlinks for reiserfs
- * lilo.pm (suggest): allow grub everytime now (not only if !reiserfs)
-
- * install_any.pm (getHds): default mount point for windobe in
- lowercased for StartOffice(!)
-
-2000-05-08 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/keyboards.tar.bz2: Fixed Brazilian keyboard (.br); added
- Iranian (.ir), Arabic (.ar) and new Lithuanian (.lt_new) keyboards
- * keyboard.pm: Added new Lithuanian keyboard and changed the
- string for brazilian ABNT-2 to state more clearly its ABNT nature
- (it is not a standard PC keyboard; it uses some different keycodes)
-
-2000-05-07 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm (choosePackages): return availableCorrected
- instead of available
-
- * pkgs.pm (correctSize): add 18MB for full multi-cd (many hdlist's)
-
- * modules.pm (text2driver): same as text2lang below
- * keyboard.pm (text2keyboard): same as text2lang below
- * lang.pm (text2lang): replace the while (... each) by a foreach
- (keys) (because each is dangerous if loop is exited)
-
- * install_steps_interactive.pm (selectKeyboard): better handling
- of multiple langs question.
-
- * ftp.pm (new): Timeout set to 60 (seconds), was default (120)
-
- * install_steps_interactive.pm (setup_thiskind): remove ide-*
- from modules displayed as loaded.
-
-2000-05-06 Pixel <pixel@mandrakesoft.com>
-
- * fsedit.pm (check_mntpoint): verify that standard mntpoints (/
- /usr) are not on not trueFS
-
- * any.pm (setupBootloader): add $prefix for the 2 glob_'s
-
-2000-05-07 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * share/keyboards.tar.bz2: added Ukrainian keyboard xmodmap.ua
-
-2000-05-06 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * printerdrake.pm: fixed English error
-
-2000-05-05 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator.pm (monitorConfiguration): remove the special case
- for fbdev.
-
- * install_steps_interactive.pm (setup_thiskind): replace return by
- next in case load_module fails.
-
- * install_steps_gtk.pm (selectInstallClass1): translate Install/Upgrade
-
- * Xconfigurator.pm (cardConfiguration): force xf4 for rage 128's
- * Xconfigurator.pm (testFinalConfig): force $bad_card for xf4
-
- * pkgs.pm (correctSize): updated for 7.1
-
- * install_any.pm (getAvailableSpace): move the removing of
- $minAvailableSize here.
-
-2000-05-04 Pixel <pixel@mandrakesoft.com>
-
- * install2.pm (configurePrinter): give clicked to printerConfig
-
- * interactive.pm (ask_from_entries_ref): set default val if not_edit
-
- * interactive_newt.pm (ask_from_entries_refW): remove setting of
- default val. Now done in interactive::ask_from_entries_ref
-
- * interactive_gtk.pm (ask_from_entries_refW): handle empty value
-
- * modules.pm (read_already_loaded): ensure that already loaded
- modules are put in %loaded.
- * modules.pm (load_ide): add loading if ide-probe-mod (for new kernel)
-
- * lilo.pm (install_lilo): truncate label's to 15 chars
-
- * install_any.pm (generate_ks_cfg): fix missing space
- * install_any.pm (generate_ks_cfg): fix bug for nfs comand
-
- * install2.pm: get rid of autoformat
- * install_steps.pm (choosePartitionsToFormat): get rid of autoformat
-
-2000-05-03 Pixel <pixel@mandrakesoft.com>
-
- * any.pm (setupBootloader): replace ask_many_from_list by
- ask_from_list for bootloader choice
-
- * services.pm (drakxservices): stop immediately service if removed
-
- * install_steps.pm (configureNetwork): replaced dhcpxd by dhcpcd
- * install_steps.pm (afterInstallPackages): touch some files to
- please linuxconf
-
-2000-05-03 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps.pm: updated min size, fixed kppprc generation.
- * install_any.pm: make sure postinstall-rpm is here before
- erasing (avoid error on reboot only).
-
-2000-05-02 Pixel <pixel@mandrakesoft.com>
-
- * raid.pm (format_part): don't call raid::make if part is already
- formatted (as raidstop fails)
-
- * Xconfigurator_consts.pm: Rage128 and 3dfx are not available any
- more
-
- * install_steps_interactive.pm (setup_thiskind): make insmod'ing
- fail a simple warning.
-
- * Xconfigurator.pm (readMonitorsDB): adapt to new MonitorsDB
- * share/MonitorsDB: take new one from RedHat
-
- * standalone/drakboot: added kfloppy
-
- * g_auto_install: add $dir/lib to LD_LIBRARY_PATH (it was silly
- not to have it)
-
-2000-05-01 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (setRootPassword): remove
- NIS_server, use NIS instead
- * install_any.pm (setAuthentication): remove NIS_server, use NIS instead
-
- * standalone/rpmdrake (AddMedia): hdlist.cz2 instead of hdlist
-
-2000-04-28 Pixel <pixel@mandrakesoft.com>
-
- * install_steps.pm (afterInstallPackages): fix yet another bug for
- ttf from windobe handling
-
- * install_steps_interactive.pm (selectInstallClass): hide beginner
- mode in corporate. Display special help.
-
-2000-04-29 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * my_gtk.pm: added call to Gtk->init; that makes 16 bit locales
- text to be properly aligned (reported by Craig Chang
- <craig_chang@taipei.siscomm.com.tw>)
- * common.pm: now that po handling is correct, I changed the order
- of reading variables so that it follows the standards ($LANGUAGE first)
- * share/fonts.tar.bz2, lang.pm: added an 8pt font for cp1251
-
-2000-04-28 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps*.pm: added support for selection of package during
- upgrade the same way it is done for installation. added check of
- minimal size, abort else (at least let the user know about :-)
- fixed crypto if no network interface available.
- * install2.pm: fixed problem during upgrade that lost network
- configuration.
-
-2000-04-28 Pixel <pixel@mandrakesoft.com>
-
- * modules.pm (load_raw): don't call commands::insmod, do it in
- place. Merge with load_multi
-
- * install_steps.pm (afterInstallPackages): fix windobe ttfonts
- symlinking
-
- * Xconfigurator.pm (cardConfiguration): load module agpgart for
- i810
-
- * install_any.pm (getHds): changed the mount point setting for
- windows partitions as device_windobe is not unique
-
-2000-04-27 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_gtk.pm (create_steps_window): changed to adapt to
- new hidden format
-
- * install2.pm (@installSteps): changed the way hidden is handled.
- Now it is a true perl expression (great power now)
-
- * install_steps_gtk.pm (selectInstallClass1): update steps window
- before asking normal/devel/server. Nicer!
-
- * install_steps_interactive.pm (configureNetwork): when "Cancel"
- pressed at network interface configuration do not skip all
- configuration.
-
-2000-04-26 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps.pm (pppConfig): modified a lot, removed template
- file for ifcfg and chat file.
-
-2000-04-26 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_gtk.pm (choosePackagesTree): use a fix width for
- the tree column (so that the checkbox are always visible without
- scrolling)
-
- * standalone/drakboot: drakfloppy and gfloppy are X only, no need
- to propose them in console
-
- * install_any.pm (relGetFile): added auto_inst to files to get
- from Mandrake/base
-
- * install2.pm (main): changed auto_inst behaviour
-
- * standalone/adduserdrake: fix a bug (s/$o/$in/g)
-
- * interactive_newt.pm (ask_from_entries_refW): now handling
- complete/changed/focus_out callbacks (at least more than before)
-
- * Newt/Newt.xs: added rough callback handling
-
-2000-04-25 Franēois Pons <fpons@mandrakesoft.com>
-
- * printerdrake.pm: added support for PPA more easily, allow
- printers entry using ppa driver event if pnm2ppa not installed,
- install it if neccessary after.
- * network.pm, install_steps.pm, install_steps_interactive.pm:
- added support for stoping a network interface, usefull for ppp0 to
- avoid using it too long.
- * install_steps.pm: fixed missing local on pap_secrets file.
-
-2000-04-25 Pixel <pixel@mandrakesoft.com>
-
- * lilo.pm (install): moved the generation of the keytable here. It
- is used by both lilo & grub (lilo is not always installed as was
- assumed)
-
- * common.pm (formatAlaTeX): remove bounding spaces
-
- * pkgs.pm (setSelectedFromCompssList): remove the hack for min
- mark 25 in beginner
- * install_steps_interactive.pm (choosePackages): set $min_mark to
- 25 in beginner
-
-2000-04-24 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (setupXfree): add a yesorno
- question for choosing between XF4 and XF3 in expert
-
- * install_steps_gtk.pm (choosePackagesTree): enlarge the tree window
-
- * install_any.pm (update_userkderc): make sure uid and gid are kept
-
- * diskdrake.pm (Create): add Extended_0x85 as a choice for expert
-
- * partition_table.pm (add_extended): handle a 3rd arg,
- $extended_type to tell which kind of extended partition is wanted
- * partition_table.pm (adjust_main_extended): in non-expert,
- automatically set extended to linux-extended if there's only
- linux-type partitions.
-
-2000-04-22 Pablo Saratxaga <pablo@madrakesoft.com>
-
- * install_steps_interactive.pm: s/Mb/MB/ as 'b' is symbol for bit
- and not for byte. RAM is expressed in megabytes -> MB
-
-2000-04-19 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps_interactive.pm: fixed crazy mutli CD manipulation.
- * printer.pm: fixed wrong prototype of print_pages.
- * install2.pm: set version to 7.1 for crypto stuff.
- * crypto.pm: commented ackbar crypto site.
-
-2000-04-17 Pixel <pixel@mandrakesoft.com>
-
- * lilo.pm (suggest): in failsafe, runlevel ASKRUNLEVEL (handled by
- linuxconf)
-
-2000-04-14 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (choosePartitionsToFormat): don't
- ask about checking bad blocks for reiserfs, cuz not handled
-
- * fs.pm (mount): reiserfs handling
- * fs.pm (format_reiserfs): added
- * fs.pm (write_fstab): add option "notail" for reiserfs if
- the partition holds the kernel (/boot or /)
-
- * partition_table.pm (isTrueFS): added, replaces most occurences
- of isExt2
-
-2000-04-12 Franēois Pons <fpons@mandrakesoft.com>
-
- * install2.pm: force installation step if package have been
- selected on step choose packages.
- * install_any.pm: protected against die in perl (setstep or
- theme_changed).
-
-2000-04-11 Franēois Pons <fpons@mandrakesoft.com>
-
- * resize_fat: added some limits verification.
- * interactive_gtk.pm: corrected swap of arg with help adding.
-
-2000-04-10 Franēois Pons <fpons@mandrakesoft.com>
-
- * interactive_gtk.pm, my_gtk.pm: added tooltips for ask_from_list,
- which is used by printerdrake only. drops key bindings.
-
-2000-04-07 Franēois Pons <fpons@mandrakesoft.com>
-
- * tools/serial_probe: obsoleting pnp_serial which is now replaced
- by this one, taken from kudzu, really faster and probe all serial
- devices at one time. modified to probe correctly modem :-)
- * mouse.pm: updated to use serial_probe interface of
- detect_devices.pm.
- * detect_devices.pm: modified to use serial_probe, cache probed
- devices to avoid reprobing.
-
-2000-04-06 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps_interactive.pm, install_steps.pm: added support
- for peerdns options of ppp, so removed dns address unless expert.
-
-2000-04-05 Franēois Pons <fpons@mandrakesoft.com>
-
- * crypto.pm, install_steps_interactive.pm, install2.pm,
- install_steps.pm: added crypto stuff to support hdlist-crypto.cz2
- and depslist-crypto. dependancies are not supported but with a
- simpler format of depslist file where closure are not done and
- only package name are used for dependancies.
- * pkgs.pm: added better support for multi CD manipulation,
- including selection and refus.
-
-2000-04-04 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm: modified selection packages from compssList by
- incremental selection, much more quickly.
- added selected medium for selecting a package.
- * install_any.pm: refused media hash transfered to selected value
- of media table.
- @needToCopy list should only have package of default medium.
-
-2000-04-03 Pixel <pixel@mandrakesoft.com>
-
- * fs.pm (format_ext2): add options "-b 1024 -O none" for alpha
-
-2000-03-31 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps_gtk.pm: made changeMedium sub modification
- permanent.
- * pkgs.pm: modified upgrade to avoid use of header.
-
-2000-03-31 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * keyboard.pm: some more choices for PPC keyboards
-
-2000-03-30 Franēois Pons <fpons@mandrakesoft.com>
-
- * install2pm: added eval around loading af_packet and postinstall
- copy of RPMS.
- * devices.pm: added /dev/kdb for SPARC.
- * install_any.pm: modified multi CD management, postinstall copy
- of RPMS.
- * install_steps_gtk.pm: added support for Xsun server for SPARC.
- * install_steps_interactive.pm: added multi CD dialog box for
- selecting CD available. Serialized ethernet configuration and ppp
- configuration.
- * pkgs.pm: added check for infinite recursion for bad depslist.
- * printer.pm: better test for reparse of printerdb.
- * Xconfigurator.pm: added support for Xsun server for SPARC.
-
-2000-03-30 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_gtk.pm (choosePackagesTree): enhance tree selection
-
-2000-03-29 Pixel <pixel@mandrakesoft.com>
-
- * interactive_gtk.pm (wait_messageW): add some padding (nicer)
-
- * install_steps_interactive.pm (generateAutoInstFloppy): created,
- creates a floppy for auto installs.
-
- * install_any.pm (generate_ks_cfg): created, generates stage1
- ks.cfg file
-
- * share/po/DrakX.pot: added special comment for grub entry
-
-2000-03-28 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (selectKeyboard): sort langs for
- many-lang install
-
- * mouse.pm (write): add WHEEL telling if a wheel mouse is there
-
-2000-03-28 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * keyboard.pm: added entries for all three Armenian keyboards
-
-2000-03-26 Pixel <pixel@mandrakesoft.com>
-
- * install_any.pm (install_urpmi): full support for multi-hdlist's
-
- * pkgs.pm (extractHeaders): look for hdlist in /tmp instead of
- $prefix/var/lib/urpmi
- * pkgs.pm (psUsingHdlists): put hdlist's in /var/lib/urpmi with a
- fake name. Access via /tmp/$hdlist is given for non-fake name
-
- * detect_devices.pm (hasHPT): return undef if no htp (silly me :-/)
-
-2000-03-25 Pixel <pixel@mandrakesoft.com>
-
- * lilo.pm: updated to the new format of entries. It was an hash.
- Now the key is field kernel_or_dev, and entries is an array.
-
- (get): added, it returns the entry using a kernel
- (needed because entries is no more a hash)
-
- * install_steps_interactive.pm (setupLILO): adapted to the new format
-
- * Xconfigurator.pm (write_XF86Config): basic XF86Config-4 handling
-
- * fsedit.pm (suggest_part): if suggested part contains a field
- "hd", ensure the partition is created on this hard drive
-
- * install2.pm (main): before leaving installation, remove
- /var/lib/urpmi if urpmi not installed
-
- * diskdrake.pm (Resize): ext2resize to size $part->{size} instead
- of $size
-
-2000-03-24 Pixel <pixel@mandrakesoft.com>
-
- * detect_devices.pm (hasHPT): added. Now nice handling of hpt366
- (ultra66) without rebooting and making special floppy :)
-
- * lilo.pm (install_grub): much better grub configuration (better
- than lilo's :pp)
-
- * install_steps.pm (setupBootloaderBefore): remove entry floppy
- for security > 3
-
-2000-03-23 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_gtk.pm (selectMouse): added, takes care of telling
- the X server if the user changed the mouse type. Only done if
- a serial mouse is chosen.
-
- * install_steps_newt.pm (doPartitionDisks): add a call to
-
- * mouse.pm (write): added "device=" in etc/sysconfig/mouse for
- devfs (it looses the symlink /dev/mouse)
-
-2000-03-22 Pixel <pixel@mandrakesoft.com>
-
- * pci_probing/pcitable: replace Server:Rage128 by proper XFree entry
-
-2000-03-20 Franēois Pons <fpons@mandrakesoft.com>
-
- * detect_devices.pm, fs.pm, install_any.pm: added supports for
- LS-120 floppy drive and icons on desktop of KDE (untested).
- * printer.pm, printerdrake.pm: added supports for PPA interface in
- new rhs-printfilters, always enable "Print text as postscript"
- option for such printers.
-
-2000-03-20 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * keyboard.pm: changed XKB name for Swedish keyboard
- changed XKB names for Russian and German keyboards
- added a choice for "Croatian" keyboard
- * share/compss{,List}: added various new locales-*, ispell-*
- and netscape-* files. changed ppa to pnm2ppa.
-
-2000-03-17 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps.pm: added setup for all configured queue.
- * install_steps_interactive.pm: modified for retrieving packages
- or current configuration.
- * printer.pm: correction, tested retrieve of printer
- configuration without printtool comments in printcap file: added
- update of entry according to gsdriver used (untested again).
- * printerdrake.pm: better handling of cancel, manage of multiple
- queue definition together (as lp|My printer).
-
-2000-03-16 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_steps_interactive.pm: moved in printerdrake.pm the test
- of printer usage.
- * printerdrake.pm: heavy modification to handle multiple queue,
- corrected some bugs too, added much more features as printtool.
- * printer.pm: added more features for filter, allow printer to be
- retrieved without help of printtool id in printcap file (untested).
-
-2000-03-14 Pixel <pixel@mandrakesoft.com>
-
- * diskdrake.pm (Loopback): handling of the file loopback: test
- existence of the file and take its size.
-
-2000-03-14 Franēois Pons <fpons@mandrakesoft.com>
-
- * install_any.pm: corrected for duplicate file on other CD.
-
-2000-03-13 Pixel <pixel@mandrakesoft.com>
-
- * detect_devices.pm (floppies): don't return hash but the device name
-
-2000-03-13 Franēois Pons <fpons@mandrakesoft.com>
-
- * pkgs.pm, install_any.pm: small correction for multiple media
- installation.
- * tools/syncrpms: added for handling synchronisation of multiple source
- rpm directories (and multiple target), include cleaning.
- * tools/closurepkgs: tools to get rpm that may be installed by DrakX
- after normal packages installation (printer, network, X11...), may
- be used to duplicate on other CD some important stuff of the first
- one.
-
-2000-03-12 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_interactive.pm (choosePackages): compute the
- max_size very simply (sum of all package sizes), otherwise too costly
-
- * pkgs.pm (install): call cleanHeaders at the end
- * pkgs.pm (cleanHeaders): created
-
- * install2.pm (miscellaneous): /etc/msec/init.sh is now
- /usr/sbin/msec (yoann thanks for not telling :pp)
-
- * pkgs.pm (install): remove the $prefix of mountpoints for not
- enough room to install error message
-
-2000-03-11 Pixel <pixel@mandrakesoft.com>
-
- * my_gtk.pm (_create_window): add callback on focus to
- ensure_focus. The result is no more 3 focus states with 2 buttons.
-
- * interactive_gtk.pm (ask_from_treelistW): better keyboard handling
-
- * raid.pm (make): check the result of mkraid. Suggest raidtools
- are missing in standalone diskdrake
-
- * devices.pm (set_loop): created, searches for an available
- loopback and sets the file to it
-
- * lilo.pm (dev2grub): fixed a missing slash
-
- * interactive_gtk.pm (wait_message_nextW): do not update if same
- message, otherwise silly gtk won't do anything and we'll wait
- forever :(
-
-2000-03-10 Franēois Pons <fpons@mandrakesoft.com>
-
- * *.pm: heavy modification to take into account multiple media
- installation.
-
-2000-03-10 Pixel <pixel@mandrakesoft.com>
-
- * install2.pm (@install_classes): cleanup, no more i18n (is now in
- install_steps_interactive), remove old entries
-
-2000-03-09 Pixel <pixel@mandrakesoft.com>
-
- * modules.pm (write_conf): don't add alias block-major-11 in every case
- * modules.pm (add_alias): special case oss (post-installs modprobe snd-pcm-oss)
-
- * fs.pm (format_*): move the @options before the device
-
- * loopback.pm: created, added a lot of stuff for loopback in
- diskdrake.pm, fs.pm...
-
-2000-03-08 Pixel <pixel@mandrakesoft.com>
-
- * partition_table.pm: %type2fs replaced ox402 by 0x402
-
- * detect_devices.pm (cdroms): fix "scd" (should be "scd0")
-
- * install_any.pm (install_urpmi): update for new hdlist.cz2
-
-2000-03-07 Pixel <pixel@mandrakesoft.com>
-
- * interactive_gtk.pm (ask_from_treelistW): s/focus_row/set_focus_row/
-
- * install_steps_interactive.pm (addUser): force add a normal user
- for security 4
-
-2000-03-05 Pixel <pixel@mandrakesoft.com>
-
- * my_gtk.pm (_ask_from_list): replace focus_row with set_focus_row
- (tis the Gtk-Perl 0.7002 was of doing)
-
-2000-03-04 Pixel <pixel@mandrakesoft.com>
-
- * modules.pm (write_conf): add ide-floppy to the modprobes of
- post-install supermount
-
-2000-03-03 Pixel <pixel@mandrakesoft.com>
-
- * commands.pm (ps): add RSS to ps command
-
-2000-03-02 Adam Lebsack <adam@mandrakesoft.com>
-
- * mouse.pm: added mac mouse detection to mouse::detect.
- * detect_devices.pm: added a routine to probe /dev/usbmouse on macs.
-
-2000-03-01 Franēois Pons <fpons@mandrakesoft.com>
-
- * *.pm: heavy modification to take into account smaller
- transaction during installation.
- still a lot of test to perform, no provides updated currently and
- building of hdlist.cz2 and depslist.ordered need old files...
- nothing done for hdlist.gz during post installation, but
- hdlist.cz2 is already copied in /var/lib/urpmi [and is used during
- installation of packages as extract_archive need a true file].
-
-2000-03-01 Pixel <pixel@mandrakesoft.com>
-
- * lilo.pm (install_grub): creation
-
- * network.pm (write_interface_conf): ONBOOT = !pcmcia
-
- * install_steps_gtk.pm (new): more intelligent SIGCHLD handler
-
-2000-02-29 Pixel <pixel@mandrakesoft.com>
-
- * modules.pm: moved common network stuff from "net" to "network"
- (modules like nfs lockd...)
-
- * fs.pm (write_fstab): moved the sort to the right place
-
- * services.pm (drakxservices): chkconfig --list is i18n'ed :(
- set LANGUAGE=C before
-
- * partition_table_raw.pm (get_geometry): geom{cylinders} must not
- be a decimal value :)
-
- * install_steps_gtk.pm (create_logo_window): set_name logo for
- logo window
- * share/install.rc: force disabling of background image theme
-
- * install_steps_gtk.pm (enteringStep): add step information for
- console 1
-
- * any.pm (addKdmIcon): new function
- * install_steps.pm (addUser): handle field icon
- * install_steps_interactive.pm (addUser): add choice of kdm icon
- * standalone/adduserdrake: add choice of kdm icon
-
- * diskdrake.pm (ask_all_data...): change for easier i18n
-
- * install_steps.pm (miscellaneous): add CLEAN_TMP handling
- (need cleaning?)
- * install_steps_interactive.pm (miscellaneous): add CLEAN_TMP
- option in expert
- * install2.pm (miscellaneous): add CLEAN_TMP option for
- /etc/sysconfig/system
-
- * install_steps_interactive.pm (miscellaneous): forbidden
- useSupermount if high security.
-
- * mouse.pm (detect): fix bug (ttyS instead of ttyS0)
-
-2000-02-28 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_gtk.pm (createXconf): do not use "Generic VGA" for
- svga and accel. SVGA also wants 16 bpp. added ugly modeline for
- 800x600.
-
- * partition_table_raw.pm (get_geometry): when the
- HDIO_GET_IDENTITY fails, defaults to what GETGEO gave
-
- * install2.pm (main): use modules::load_multi to increase boot
- start time
-
- * modules.pm (load_multi): added this function for loading many
- modules at once.
-
- * install_steps_gtk.pm (new): increase time before timeout
-
- * detect_devices.pm (cdroms): change the device associated with
- ide-burners (hdX -> scdX). Problem is how to know the X in scdX :(
-
- * modules.pm (write_conf): sort scsi_hostadapter's
-
-2000-02-27 Pixel <pixel@mandrakesoft.com>
-
- * install2.pm (main): load ide-probe and the like in 'prereq' type
- so no aliases are added to conf.modules
-
-2000-02-25 Pixel <pixel@mandrakesoft.com>
-
- * devices.pm (make): small code cleanup
-
- * partition_table_raw.pm (adjustEnd): more explicit error message
-
- * fsedit.pm (allocatePartitions): fix a bug (size was getting too
- big after each allocation) making adjustEnd cry
-
-2000-02-24 Pixel <pixel@mandrakesoft.com>
-
- * interactive_gtk.pm (new): added the "new" method to initialize
- windowheight for isStandalone
-
- * install_steps_gtk.pm (new): returns undef in case no X server
- works
-
- * install2.pm (main): moved the ejectCdrom from install_steps::END
- to here
- * install2.pm (main): fix the $SIG{SEGV} handler
- * install2.pm (main): added a "try again" in text install if the
- "new" fails
-
- * install_steps_interactive.pm (createBootdisk): fix an error for
- non fdX choice of floppy drive
-
- * install_steps_interactive.pm (setup_thiskind): remove the
- "defined @l"
-
-2000-02-23 Pixel <pixel@mandrakesoft.com>
-
- * install2.pm (%suggestedPartitions): remove any /boot entries
- * install2.pm (selectInstallClass): removed the special code to
- /boot entries from suggestedPartitions for on non-intel (and it
- was buggy :)
- * fsedit.pm (@suggestions): remove the /boot entry
- * fsedit.pm (check_mntpoint): remove the 1024 cylinder check
- * fsedit.pm (suggest_part): remove the 1024 cylinder special case
-
- * install_steps_interactive.pm (setupLILO): replace linear option
- by lba32
-
- * lilo.pm (suggest): add lba32 by default
-
- * install_steps_interactive.pm (load_thiskind): moved the HPT
- stuff to install_any::ultra66 and call it.
- Add sound card configuration (3 lines :)
-
- * my_gtk.pm and interactive_gtk: resize the list and tree based on
- root window size
-
- * install_steps_gtk: $width and $height goes $::rootwidth and
- $::rootheight, also other dimensions goes global (main::)
-
- * commands.pm (strings): replace the typo \{$n,} by {$n,}
-
-2000-02-23 Franēois Pons <fpons@mandrakesoft.com>
-
- * build_archive, extract_archive: changed format of TOC to speed
- up extraction of archive, now 5 to 6 times faster to read TOC :-)
-
-2000-02-22 Pixel <pixel@mandrakesoft.com>
-
- * Xconfigurator.pm: load "Cards" database only to translate NAME
- to fields. Added file CardsNames created from Cards using
- share/Cards2CardsNames. Kind of list of normalized NAMEs
-
- * MonitorsDB: replace the ` ' separator for vendor by `|'
-
- * install_steps_interactive.pm (timeConfig): use ask_from_treelist
-
- * interactive_gtk.pm (ask_from_treelist): creation of
- ask_from_treelist. Usage is just the same as ask_from_list with
- one more argument (the separator eg: |, /)
-
-2000-02-21 Franēois Pons <fpons@mandrakesoft.com>
-
- * diskdrake.pm: fixed deadlock while trying to create partition
- when available space is equal or less than 2 cylinders. fixed
- Create action on corrupted partition by removing stalling window.
- Blocked partition table writing if there are error by forcing user
- to correct partition table.
- * partition_table.pm: fixed typo in verifyParts with cdie, added
- verifyParts on Resize action.
-
-2000-02-21 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_gtk.pm (create_big_help): display the help in full
- screen
-
- * my_gtk.pm (_create_window): add big help on F1
-
- * common.pm (add2hash): now returns the first parameter
-
- * mouse.pm (detect): really defaults to serial mouse
-
- * interactive.pm: add ask_many_from_list_with_help and
- ask_many_from_list_with_help_ref
-
- * services.pm: creation, it handles what was in
- standalone/drakxservices
-
-2000-02-18 Pixel <pixel@mandrakesoft.com>
-
- * install_steps_gtk.pm (createXconf): added /dev/ (X wants
- "/dev/psaux" and not "psaux")
-
- * diskdrake.pm (Create): show start sector even for non-expert on
- non-i386
-
-2000-02-16 Pixel <pixel@mandrakesoft.com>
-
- * mouse.pm (detect): add defaults to serial mouse
-
- * install_steps_gtk.pm (createXconf): remove the defaults to
- serial mouse
-
-2000-02-15 Pixel <pixel@mandrakesoft.com>
-
- * diskdrake.pm: "After %s partition %s," inlined otherwise does
- not please pablo and translators...
-
-2000-02-14 Pixel <pixel@mandrakesoft.com>
-
- * diskdrake.pm (Create): hide start sector choice for non-expert
-
-2000-02-11 Pixel <pixel@mandrakesoft.com>
-
- * partition_table_raw.pm (get_geometry): do not use the cylinder
- number given by HDIO_GETGEO cuz limited to 16bits. Compute using
- the total_sectors using HDIO_GET_IDENTITY
-
- * c/stuff.xs.pm: added total_sectors (gives the number of sector
- of a drive)
-
- * modules.pm (load): ignore error in loading prereq's
-
- * modules.pm (@drivers_by_category): rcpci instead of rcpci45,
- z85230 added
-
- * commands.pm (mount): add modules::load_deps otherwise the
- fs::mount won't succeed insmoding vfat if needed
-
-2000-02-11 Franēois Pons <fpons@mandrakesoft.com>
-
- * fixed diskdrake to handle limit case when creating and resizing
- partition table, address size limit and start sector limit.
-
-2000-02-11 Pixel <pixel@mandrakesoft.com>
-
- * install2.pm (main): add a callback on SEGV
- -> message printed
- -> that way, ENDs are called (otherwise skipped)
-
- * install_steps_interactive.pm (setup_thiskind): handles the undef
- value returned by load_thiskind
-
- * install_steps_interactive.pm (exitInstall): do not call
- install_steps::exitInstall
-
- * install_steps (exitInstall): removed
- * install_steps (END): added (it does ejectCdrom)
-
- * install_steps_interactive.pm (load_thiskind): returns undef if
- error loading a module
-
- * fs.pm (format_part): changed the prototype from $;$@ to $;@
- otherwise, @options always have a value (mostly undef) and mkdosfs
- fails (with "mkdosfs", "/dev/hdXX", undef, "-F", 32)
-
- * install_steps_interactive.pm (setup_thiskind):
- add a $auto_probe_pci that overrules $o->{auto_probe_pci}
- (that way no pci probe the second time)
-
-2000-02-10 Franēois Pons <fpons@mandrakesoft.com>
-
- * heavy modification of build_archive and extract_archive to manage
- a TOC directly in archive file, handle bzip2 or gzip compression,
- extract_archive can extract multiple files a time, with minimal
- invocation of uncompress program and follow symlink and expand
- directory contents.
- * use build_archive/extract_archive for locales.
- * fixed a min/max in install_steps_gtk for Resize/Create partition.
- * fixed adjustEnd with dos partition table, take care of magic 63
- sectors at beginning of partitions, a more solid method should be
- used for that.
-
-2000-02-10 Pixel <pixel@mandrakesoft.com>
-
- * modules.pm (load_thiskind): skip modules "unknown" and "ignore"
-
-2000-02-09 Pixel <pixel@mandrakesoft.com>
-
- * partition_table.pm (add): cdie if maximum number of partitions
- handled by linux is reached
-
- * Xconfigurator.pm (chooseResolutionsGtk): display the graphic
- card or server found
-
- * install_any.pm (relGetFile): for mdkinst files, take care not to
- have a double '/' (see debbugs #591)
-
- * install_steps_interactive.pm (configureNetwork):
- purpose: add ability to configure both modem and lan
- clean up the behaviour
-
- * fs.pm (write_fstab):
- purpose: sort the fstab per mount point (cuz /usr must be before /usr/local)
- also: rewrite of the part writing the fstab.
diff --git a/perl-install/Makefile b/perl-install/Makefile
deleted file mode 100644
index 668ba38c2..000000000
--- a/perl-install/Makefile
+++ /dev/null
@@ -1,241 +0,0 @@
-PACKAGE=drakxtools
-PKGVERSION:=$(shell rpm -q --qf '%{VERSION}\n' --specfile $(PACKAGE).spec|head -1)
-RELEASE:=$(shell rpm -q --qf '%{RELEASE}\n' --specfile $(PACKAGE).spec|head -1)
-TAG := $(shell echo "V$(PKGVERSION)_$(RELEASE)" | tr -- '-.' '__')
-
-include Makefile.config
-
-POFILES = $(shell ls share/po/*.po)
-MOFILES = $(POFILES:%.po=%.mo)
-DISTFILES = Makefile Makefile.config Newt apps.net_monitor diskdrake c ddcprobe drakxtools.spec pam.net_monitor serial_probe share/po sbus_probing resize_fat share/diskdrake.rc $(STANDALONEPMS) standalone/icons pixmaps network interactive partition_table standalone/interactive_http rpcinfo-flushed.c *.pm security harddrake
-OTHERS = $(OTHERDIRS) $(OTHERFILES)
-OTHERDIRS = tools/ddcprobe tools/serial_probe
-OTHERFILES = tools/rpcinfo-flushed.c
-
-.PHONY: all $(DIRS) install clean stage2 full_stage2 verify_c
-
-all: list_modules.pm TAGS $(DIRS)
-
-list_modules.pm:
- ln -sf ../kernel/list_modules.pm
-
-TAGS: $(ALLPMS)
- @etags -o - $^ /usr/lib/perl5/*/*/MDK/Common/*.pm | ./perl2etags > $@
-
-clean:
- for i in $(DIRS) share/po; do $(MAKE) -C $$i clean; done;:
- rm -rf auto ../drakxtools.tar.bz2
- find . -name "*~" -o -name ".#*" -o -name "TAGS" -o -name "*.old" | xargs rm -f
-
-check:
- $(MAKE) -C share/po check
- perl -I. -Mlang -e 'lang::check'
- perl -I. -Mkeyboard -e 'keyboard::check'
-
-localcopy: clean
- rm -rf standalone/pixmaps
- $(MAKE) -C ../tools clean || :
- cd .. ; rm -rf $(PACKAGE)-$(PKGVERSION) ; cp -af perl-install $(PACKAGE)-$(PKGVERSION) ; cp -af $(OTHERS) $(PACKAGE)-$(PKGVERSION)
- cd
- find ../$(PACKAGE)-$(PKGVERSION) -name '*.pm' | xargs perl -pi -e 's/\s*use\s+(diagnostics|vars|strict).*//g'
- find ../$(PACKAGE)-$(PKGVERSION)/standalone -type f | xargs perl -pi -e 's/\s*use\s+(diagnostics|vars|strict).*//g'
-
-
-$(DIRS):
- install -d auto
- $(MAKE) -C $@
-
-test_pms: verify_c
- for i in install2 install_steps_*.pm standalone/keyboarddrake standalone/XFdrake standalone/drakboot; do perl_checker -I. -no_cw -excludec -excludehelp -excludeurpm -excluderesize_fat::c_rewritten -excludeMDK::Common::Globals -excludeCGI -excludestandalone -excludeURPM -excludeURPM::Package -excludeURPM::DB -excludeURPM::Resolve $$i; done
- for i in install2 install_steps_*.pm; do perl -cw -I. $$i; done
-
-verify_c:
- ./verify_c $(ALLPMS)
-
-%.mo: %.po
- msgfmt -o $@ $<
-
-install_pms: $(DIRS)
- for i in `perl -ne 's/sub (\w+?)_? {.*/$$1/ and print' commands.pm` sync; do ln -sf commands $(DEST)/usr/bin/$$i; done
-
- install -d $(DESTREP4PMS)
- for i in $(PMS); do \
- dest=$(DESTREP4PMS)/`dirname $$i`; \
- install -d $$dest; \
- perl -ne 'print' $$i > $(DESTREP4PMS)/$$i; \
- perl -pe 's/#[-+].*//; $$_ = "\n" if (/^=head/ .. /^=cut/) || /use (diagnostics|vars|strict)/' $$i > $(DESTREP4PMS)/$$i; \
- done
- if [ "x$(PERL_INSTALL_DEBUG)" == "x" ]; then \
- perl -pi -e 's|#!/usr/bin/perl -d.*\n|#!/usr/bin/perl\n|' $(DESTREP4PMS)/install2; \
- else \
- perl -pe 's|#!/usr/bin/perl.*\n|#!/usr/bin/perl -d \n|' install2 > $(DESTREP4PMS)/install2; \
- fi \
-
- rm -f $(DESTREP4PMS)/{bootlook,tinyfirewall}.pm
-
- cp share/*.rc $(DESTREP4PMS)
- chmod a+x $(DESTREP4PMS)/install2
- chmod a+x $(DESTREP4PMS)/commands
- chmod a+x $(DESTREP4PMS)/g_auto_install
- chmod a+x $(DESTREP4PMS)/live_install*
-
-get_needed_files: $(DIRS) $(MOFILES)
- $(MAKE) -C share
-
-# export PERL_INSTALL_TEST=1 ; strace -f -e trace=file -o '| grep -v "(No such file or directory)" | sed -e "s/[^\"]*\"//" -e "s/\".*//" | grep "^/" | grep -v -e "^/tmp" -e "^/home" -e "^/proc" -e "^/var" -e "^/dev" -e "^/etc" -e "^/usr/lib/rpm" > /tmp/list ' $(PERL) -d install2 < /dev/null
- eval `perl -V:version`; \
- cat share/list `../tools/specific_arch share/list` | \
- perl -pe "s/ARCH/$(ARCH)/g" | perl -pe "s/PERL_VERSION/$$version/g" > /tmp/list
-
- @missing=`perl -lne 'print if !-e $$_' /tmp/list`; [ -z "$$missing" ] || { echo "missing files vvvvvvvvvvvvvvvvvvvvvvvvvv" ; echo "$$missing" ; echo "missing files ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" ; exit 1; }
-
- find auto -follow -name "*.so" >> /tmp/list
-
- for i in $(LOCALFILES) `cat /tmp/list` ; do \
- ldd $$i 2>/dev/null | grep "=>" | perl -pe 's/.*=> //; s/ .*//; s,^/lib/.*?/,/lib/,' | sort | uniq >> /tmp/list; \
- done
-
- perl -Mlang -I. -e 'print "$$_\n" foreach lang::console_font_files()' >> /tmp/list
-
- install -d $(DEST)/etc
- install -d $(DEST)/etc/sysconfig/network-scripts
- install -d $(DEST)/lib
- install -d $(DEST)/bin
- install -d $(DEST)/usr/bin
- install -d $(DEST)/usr/lib
- install -d $(DEST)/usr/share
- install -d $(DEST)/usr/share/gtk
- install -d $(DEST)/usr/share/xmodmap
- install -d $(DEST)/usr/X11R6/lib/X11
- install -d $(ROOTDEST)/Mandrake/base
- install -s $(LOCALFILES) $(DEST)/usr/bin
-# cp -f $(LOCALFILES2) $(DEST)/usr/bin
- ln -s ../X11R6/lib/X11 $(DEST)/usr/lib/X11
-ifeq (sparc,$(ARCH))
- cp -a /usr/X11R6/lib/X11/xkb $(DEST)/usr/X11R6/lib/X11
- rm -f $(DEST)/usr/X11R6/lib/X11/xkb/compiled
- ln -s /tmp $(DEST)/usr/X11R6/lib/X11/xkb/compiled
- ln -s /usr/X11R6/lib/X11/xkb/xkbcomp $(DEST)/usr/bin/xkbcomp
-endif
-ifeq (i386,$(ARCH))
- install -s /sbin/cardmgr $(DEST)/usr/bin
-endif
-
- for i in `cat /tmp/list`; do \
- if (echo $$i | grep -q "lib/[^/]*\.so"); then \
- install -s $$i $(DEST)/lib; \
- else \
- d=$$i; \
- (echo $$d | grep -q "^[^/]") && d="$(REP4PMS)/$$d"; \
- d=`echo $(DEST)/$$d | sed 's/\/usr\/local\//\/usr\//'`; \
- install -d `dirname $$d` && \
- if (echo $$i | grep -q "\.pm"); then \
- perl -pe '$$_ =~ /^__END__/ and exit(0);' $$i > $$d; \
- elif (echo $$i | grep -q "\.so"); then \
- install -s $$i $$d; \
- else \
- cp -f $$i $$d; \
- fi; \
- fi; \
- done
- mv -f $(DEST)/lib/libimlib-png.so $(DEST)/usr/lib
-
-# # transform xpm's in png's
- for i in $(DEST)/usr/share/icons/*.xpm; do convert $$i $${i%xpm}png; rm $$i; done
-
- mv -f $(DEST)/bin/* $(DEST)/sbin/* $(DEST)/usr/bin
- cd $(DEST)/usr/bin ; mv insmod insmod_
- rmdir $(DEST)/bin $(DEST)/sbin
-
- perl -ane 'symlink "$$F[1]", "$(DEST)/usr/bin/$$F[0]"' share/aliases
-
-ifeq (i386,$(ARCH))
- cp ../tools/i386/busybox $(DEST)/usr/bin
-endif
- ln -sf ash $(DEST)/usr/bin/sh
-
- for i in fonts keyboards locales keymaps; do tar xfj `../tools/specific_arch share/$$i.tar.bz2` -C $(DEST); done
-
- grep ChangeLog CVS/Entries > $(DEST)/usr/share/VERSION
-
- gzip -9f $(DEST)/usr/share/ldetect-lst/*
-
- cd share ; cp -a consolefonts $(DEST)/usr/share
- -cd share ; cp -f *.png *.xpm $(DEST)/usr/share
- -cd pixmaps ; cp -f *.png *.xpm $(DEST)/usr/share ; rm -f $(DEST)/usr/share/wiz_*
- cd share ; cp -a themes $(DEST)/usr/share/gtk
- cd share ; cp compssUsers compssUsers.* rpmsrate $(ROOTDEST)/Mandrake/base
-
- clean-rpmsrate $(ROOTDEST)/Mandrake/base/rpmsrate $(ROOTDEST)/Mandrake/RPMS*
-
- for i in ../kernel/modules.description ../kernel/all.modules/modules.cz*; do cp -f $$i $(DEST)/lib/; done
-
- $(MAKE) -C share/po install NAME=libDrakX LOCALEDIR=$(DEST)/usr/share/locale_special
-
-# echo -e '#!/bin/sh\n\nexec "/usr/bin/sh"' > $(DEST)/usr/bin/runinstall2
-# chmod a+x $(DEST)/usr/bin/runinstall2
-
-ifeq (i386,$(ARCH))
- cp -a /etc/pcmcia $(DEST)/etc
- ../tools/patch_pcmcia_config.pl $(DEST)/etc/pcmcia/config ../kernel/all.modules/`cat ../kernel/all.kernels/.main`/modules.dep
-endif
-
- find $(DEST) -name CVS | xargs rm -rf
-
-full_stage2:
- if [ `id -u` = 0 ]; then rm -rf $(DEST); else $(SUDO) rm -rf $(DEST); fi
- mkdir -p $(DEST)
- $(MAKE) get_needed_files
- $(MAKE) stage2
-
-stage2:
- $(MAKE) install_pms
- $(ROOTDEST)/misc/make_mdkinst_stage2 $(DEST) $(ROOTDEST)/Mandrake/base/mdkinst_stage2
-
-# rules to build a test rpm
-
-localrpm: localdist buildrpm
-
-localsrpm: localdist buildsrpm
-
-fastsrpm: cvstag localsrpm
-
-localdist: cleandist localcopy tar
-
-cleandist:
- rm -rf ../$(PACKAGE)-$(PKGVERSION) ../$(PACKAGE)-$(PKGVERSION).tar.bz2
-
-tar:
- cd ../$(PACKAGE)-$(PKGVERSION) && perl -pi -e 's/^C_RPM.*/C_RPM=0/; s/^C_DRAKX.*/C_DRAKX=0/' c/Makefile
- cd ../$(PACKAGE)-$(PKGVERSION) && perl -pi -e 's/^all: help/all:/' share/po/Makefile
- cd ../$(PACKAGE)-$(PKGVERSION) && rm -rf install* pkgs.pm help.pm ftp.pm http.pm crypto.pm t.pm debug.log `find -name CVS`
- cd ../$(PACKAGE)-$(PKGVERSION) && mv -f Makefile.drakxtools Makefile
- cd ../$(PACKAGE)-$(PKGVERSION) && rm -f list_modules.pm && cp -f ../kernel/list_modules.pm .
- 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 ../$(PACKAGE)-$(PKGVERSION).tar.bz2
-
-# rules to build a distributable rpm
-
-rpm: cvstag dist buildrpm
-
-srpm: cvstag dist buildsrpm
-
-dist: cleandist export tar
-
-export:
- cd ..; cvs export -d $(PACKAGE)-$(PKGVERSION) -r $(TAG) $(PACKAGE)
- cd ../$(PACKAGE)-$(PKGVERSION) && rm -rf $(OTHERDIRS) && set -x && for f in $(OTHERDIRS); do cvs -d `cat ../CVS/Root` export -r $(TAG) -d `basename $$f` gi/$$f; done
- cd ..; set -x && for f in $(OTHERFILES); do cvs -d `cat ../CVS/Root` export -r $(TAG) -d $(PACKAGE)-$(PKGVERSION) gi/$$f; done
- find ../$(PACKAGE)-$(PKGVERSION) -name '*.pm' | xargs perl -pi -e 's/\s*use\s+(diagnostics|vars|strict)//g'
- find ../$(PACKAGE)-$(PKGVERSION)/standalone -type f | xargs perl -pi -e 's/\s*use\s+(diagnostics|vars|strict)//g'
-
-
-cvstag:
- cvs tag $(CVSTAGOPT) $(TAG)
- cd ..; cvs tag $(CVSTAGOPT) $(TAG) $(OTHERS)
diff --git a/perl-install/Makefile.config b/perl-install/Makefile.config
deleted file mode 100644
index dabc34066..000000000
--- a/perl-install/Makefile.config
+++ /dev/null
@@ -1,23 +0,0 @@
-# -*- Makefile -*-
-ARCH := $(patsubst i%86,i386,$(shell uname -m))
-ARCH := $(patsubst sparc%,sparc,$(ARCH))
-
-VERSION = 2.2.10-BOOT
-SUDO = sudo
-SO_FILES = c/blib/arch/auto/c/c.so
-PMS = *.pm Newt/*.pm c/stuff.pm resize_fat/*.pm sbus_probing/*.pm network/*.pm interactive/*.pm partition_table/*.pm diskdrake/*.pm harddrake/*.pm commands install2 g_auto_install live_install live_install2 share/advertising/*.pl
-STANDALONEPMS_ = diskdrake XFdrake mousedrake printerdrake logdrake keyboarddrake drakconnect drakbackup drakfont drakproxy localedrake net_monitor drakbug_report tinyfirewall drakxconf drakxservices draksec drakboot adduserdrake drakgw drakautoinst livedrake lsnetdrake scannerdrake fileshareset drakxtv drakfloppy harddrake2 drakTermServ service_harddrake service_harddrake.sh drakbug
-STANDALONEPMS = $(STANDALONEPMS_:%=standalone/%)
-ALLPMS = $(PMS) $(STANDALONEPMS)
-REP4PMS = /usr/bin/perl-install
-ROOTDEST = /export
-DEST = $(ROOTDEST)/Mandrake/mdkinst
-STAGE2 = $(ROOTDEST)/Mandrake/base/mdkinst_stage2
-BASE = $(ROOTDEST)/Mandrake/base
-DESTREP4PMS = $(DEST)$(REP4PMS)
-PERL = perl
-LOCALFILES = $(patsubst %, ../tools/%,ddcprobe/ddcxinfos aewm-drakx/aewm-drakx serial_probe/serial_probe xhost+)
-DIRS = c Newt resize_fat #po
-CFLAGS = -Wall
-override CFLAGS += -pipe
-
diff --git a/perl-install/Makefile.drakxtools b/perl-install/Makefile.drakxtools
deleted file mode 100644
index 6b6dadfc9..000000000
--- a/perl-install/Makefile.drakxtools
+++ /dev/null
@@ -1,61 +0,0 @@
-# -*- Makefile -*-
-include Makefile.config
-
-INLIBDEST_DIRS = Newt c resize_fat sbus_probing
-HAVEINST_DIRS = share/po standalone/interactive_http
-DIRS = $(INLIBDEST_DIRS) $(HAVEINST_DIRS) ddcprobe serial_probe harddrake
-NAME = libDrakX
-PREFIX =
-LIBDIR = $(PREFIX)/usr/lib
-DATADIR = $(PREFIX)/usr/share
-BINDEST = $(PREFIX)/usr/bin
-SBINDEST = $(PREFIX)/usr/sbin
-ETCDEST = $(PREFIX)/etc/gtk
-BINX11DEST = $(PREFIX)/usr/X11R6/bin
-LIBX11DEST = $(PREFIX)/usr/X11R6/lib/X11
-LIBDEST = $(LIBDIR)/$(NAME)
-PIXDIR = $(DATADIR)/$(NAME)/pixmaps
-INITDIR = $(PREFIX)/etc/rc.d/init.d
-.PHONY: $(DIRS)
-
-all: rpcinfo-flushed $(DIRS)
-
-$(DIRS):
- install -d auto
- rm -f share/po/DrakX.pot # force rebuild of po's
- [ ! -e $@/Makefile ] || $(MAKE) -C $@
-
-install:
- mkdir -p $(BINDEST) $(ETCDEST) $(SBINDEST) $(DATADIR)/{harddrake,pixmaps} $(LIBDEST)/{network,security,harddrake,interactive,partition_table} $(BINX11DEST) $(LIBX11DEST) $(PIXDIR) $(INITDIR)
- install -d $(INLIBDEST_DIRS:%=$(LIBDEST)/%)
- install $(STANDALONEPMS) $(SBINDEST)
- install -s rpcinfo-flushed ddcprobe/ddcxinfos serial_probe/serial_probe $(SBINDEST)
- ln -s ../../$(patsubst $(PREFIX)/usr%,%,$(SBINDEST))/XFdrake $(BINX11DEST)/Xdrakres
- ln -s fileshareset $(SBINDEST)/filesharelist
- mv -f $(SBINDEST)/lsnetdrake $(BINDEST)/lsnetdrake
-
- install -m 644 *.pm $(LIBDEST)
- for i in network harddrake security interactive partition_table; do install -m 644 $$i/*.pm $(LIBDEST)/$$i/;done
- install -m 644 pixmaps/* $(PIXDIR)
- install -m 644 share/diskdrake.rc $(DATADIR)/$(NAME)
-
- install -d $(PREFIX)/etc/security
- echo 'RESTRICT=yes' > $(PREFIX)/etc/security/fileshare.conf
-
- install -m 644 $(patsubst %,Newt/%.pm,Newt) $(LIBDEST)/Newt
- install -m 644 $(patsubst %,c/%.pm,stuff) $(LIBDEST)/c
- install -m 644 $(patsubst %,sbus_probing/%.pm,main) $(LIBDEST)/sbus_probing
- install -m 644 $(patsubst %,resize_fat/%.pm,main any boot_sector c_rewritten dir_entry directory fat info_sector io) $(LIBDEST)/resize_fat
-
- install -d $(LIBDEST)/diskdrake
- install -m 644 diskdrake/*.pm $(LIBDEST)/diskdrake
-
- for i in $(HAVEINST_DIRS); do \
- $(MAKE) -C $$i install PREFIX=$(PREFIX) DATADIR=$(DATADIR) NAME=$(NAME) ; \
- done
-
- find auto -follow -name .exists -o -name "*.bs" | xargs rm -f
- cp -rfL auto standalone/icons $(LIBDEST)
- mv $(LIBDEST)/icons/harddrake2/ $(DATADIR)/pixmaps/
- mv $(SBINDEST)/service_harddrake.sh $(INITDIR)/harddrake
- mv $(SBINDEST)/service_harddrake $(DATADIR)/harddrake/
diff --git a/perl-install/Newt/.cvsignore b/perl-install/Newt/.cvsignore
deleted file mode 100644
index c296b7faf..000000000
--- a/perl-install/Newt/.cvsignore
+++ /dev/null
@@ -1,6 +0,0 @@
-Newt.bs
-Newt.c
-pm_to_blib
-blib
-Makefile
-Makefile_c
diff --git a/perl-install/Newt/Av_CharPtrPtr.c b/perl-install/Newt/Av_CharPtrPtr.c
deleted file mode 100644
index f28fa6315..000000000
--- a/perl-install/Newt/Av_CharPtrPtr.c
+++ /dev/null
@@ -1,99 +0,0 @@
-#ifdef __cplusplus
-extern "C" {
-#endif
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-#include "Av_CharPtrPtr.h" /* XS_*_charPtrPtr() */
-#ifdef __cplusplus
-}
-#endif
-
-
-/* Used by the INPUT typemap for char**.
- * Will convert a Perl AV* (containing strings) to a C char**.
- */
-char **
-XS_unpack_charPtrPtr( rv )
-SV *rv;
-{
- AV *av;
- SV **ssv;
- char **s;
- int avlen;
- int x;
-
- if( SvROK( rv ) && (SvTYPE(SvRV(rv)) == SVt_PVAV) )
- av = (AV*)SvRV(rv);
- else {
- warn("XS_unpack_charPtrPtr: rv was not an AV ref");
- return( (char**)NULL );
- }
-
- /* is it empty? */
- avlen = av_len(av);
- if( avlen < 0 ){
- warn("XS_unpack_charPtrPtr: array was empty");
- return( (char**)NULL );
- }
-
- /* av_len+2 == number of strings, plus 1 for an end-of-array sentinel.
- */
- s = (char **)safemalloc( sizeof(char*) * (avlen + 2) );
- if( s == NULL ){
- warn("XS_unpack_charPtrPtr: unable to malloc char**");
- return( (char**)NULL );
- }
- for( x = 0; x <= avlen; ++x ){
- ssv = av_fetch( av, x, 0 );
- if( ssv != NULL ){
- if( SvPOK( *ssv ) ){
- s[x] = (char *)safemalloc( SvCUR(*ssv) + 1 );
- if( s[x] == NULL )
- warn("XS_unpack_charPtrPtr: unable to malloc char*");
- else
- strcpy( s[x], SvPV( *ssv, PL_na ) );
- }
- else
- warn("XS_unpack_charPtrPtr: array elem %d was not a string.", x );
- }
- else
- s[x] = (char*)NULL;
- }
- s[x] = (char*)NULL; /* sentinel */
- return( s );
-}
-
-/* Used by the OUTPUT typemap for char**.
- * Will convert a C char** to a Perl AV*.
- */
-void
-XS_pack_charPtrPtr( st, s )
-SV *st;
-char **s;
-{
- AV *av = newAV();
- SV *sv;
- char **c;
-
- for( c = s; *c != NULL; ++c ){
- sv = newSVpv( *c, 0 );
- av_push( av, sv );
- }
- sv = newSVrv( st, NULL ); /* upgrade stack SV to an RV */
- SvREFCNT_dec( sv ); /* discard */
- SvRV( st ) = (SV*)av; /* make stack RV point at our AV */
-}
-
-
-/* cleanup the temporary char** from XS_unpack_charPtrPtr */
-void
-XS_release_charPtrPtr(s)
-char **s;
-{
- char **c;
- for( c = s; *c != NULL; ++c )
- safefree( *c );
- safefree( s );
-}
-
diff --git a/perl-install/Newt/Av_CharPtrPtr.h b/perl-install/Newt/Av_CharPtrPtr.h
deleted file mode 100644
index 765f1a731..000000000
--- a/perl-install/Newt/Av_CharPtrPtr.h
+++ /dev/null
@@ -1,4 +0,0 @@
-char ** XS_unpack_charPtrPtr _(( SV *rv ));
-void XS_pack_charPtrPtr _(( SV *st, char **s ));
-void XS_release_charPtrPtr _(( char **s ));
-
diff --git a/perl-install/Newt/Makefile b/perl-install/Newt/Makefile
deleted file mode 100644
index 613ca8a1c..000000000
--- a/perl-install/Newt/Makefile
+++ /dev/null
@@ -1,10 +0,0 @@
-.PHONY: clean
-
-Newt: %: %.xs
- test -e Makefile_c || perl Makefile.PL
- $(MAKE) -f Makefile_c LD_RUN_PATH= || $(MAKE) -f Makefile_c LD_RUN_PATH=
- rm -f ../auto/Newt ; ln -s ../Newt/blib/arch/auto/Newt ../auto
-
-clean:
- test ! -e Makefile_c || $(MAKE) -f Makefile_c clean
- rm -f *~ *.o
diff --git a/perl-install/Newt/Makefile.PL b/perl-install/Newt/Makefile.PL
deleted file mode 100644
index 6378a8f31..000000000
--- a/perl-install/Newt/Makefile.PL
+++ /dev/null
@@ -1,13 +0,0 @@
-use ExtUtils::MakeMaker;
-# See lib/ExtUtils/MakeMaker.pm for details of how to influence
-# the contents of the Makefile that is written.
-
-WriteMakefile(
- 'NAME' => 'Newt',
- 'OBJECT' => 'Av_CharPtrPtr.o Newt.o',
- 'MAKEFILE' => 'Makefile_c',
- 'OPTIMIZE' => '-Os',
- 'VERSION_FROM' => 'Newt.pm', # finds $VERSION
- 'LIBS' => ['-lnewt -lslang'],
- 'DEFINE' => '', # e.g., '-DHAVE_SOMETHING'
-);
diff --git a/perl-install/Newt/Newt.pm b/perl-install/Newt/Newt.pm
deleted file mode 100644
index fdf9c0232..000000000
--- a/perl-install/Newt/Newt.pm
+++ /dev/null
@@ -1,16 +0,0 @@
-package Newt; # $Id$
-
-use strict;
-use vars qw($VERSION @ISA);
-use DynaLoader;
-
-use vars qw($VERSION @ISA);
-@ISA = qw(DynaLoader);
-$VERSION = '0.01';
-bootstrap Newt $VERSION;
-
-package Newt::Component; # $Id$
-package Newt::Grid; # $Id$
-
-
-1;
diff --git a/perl-install/Newt/Newt.xs b/perl-install/Newt/Newt.xs
deleted file mode 100644
index fba7c5455..000000000
--- a/perl-install/Newt/Newt.xs
+++ /dev/null
@@ -1,478 +0,0 @@
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-#include <newt.h>
-
-static void suspend() {
- newtSuspend();
- raise(SIGTSTP);
- newtResume();
-}
-
-static void componentCallback(newtComponent co, void *data) {
- dSP;
- PUSHMARK(SP);
- perl_call_sv((SV *) data, G_DISCARD);
-}
-
-
-typedef newtComponent Newt__Component;
-typedef newtGrid Newt__Grid;
-
-
-MODULE = Newt PACKAGE = Newt PREFIX = newt
-
-void
-DESTROY()
- CODE:
- {
- newtFinished();
- }
-
-int
-newtInit()
-
-int
-newtFinished()
-
-void
-newtCls()
-
-void
-newtSuspend()
-
-void
-newtResume()
-
-int
-newtCenteredWindow(width,height,title)
- int width;
- int height;
- const char * title;
-
-void
-newtPopWindow()
-
-void
-newtRefresh()
-
-void
-newtPushHelpLine(text)
- const char * text;
-
-void
-newtDrawRootText(row,col,text)
- int row;
- int col;
- const char * text;
-
-void
-newtGetScreenSize()
- PPCODE:
-{
- int cols, rows;
- newtGetScreenSize(&cols, &rows);
- PUSHs(sv_2mortal(newSViv(cols)));
- PUSHs(sv_2mortal(newSViv(rows)));
-}
-
-void
-newtSetSuspendCallback()
- CODE:
- {
- newtSetSuspendCallback(suspend, NULL);
- }
-
-
-void
-newtWinMessage(title,buttonText,text)
- char * title;
- char * buttonText;
- char * text;
-
-int
-newtWinChoice(title,button1,button2,text)
- char * title;
- char * button1;
- char * button2;
- char * text;
-
-int
-newtWinTernary(title,button1,button2,button3,message)
- char * title;
- char * button1;
- char * button2;
- char * button3;
- char * message;
-
-void
-newtWinMenu(title,text,suggestedWidth,flexDown,flexUp,maxListHeight,list,def,buttons, ...)
- char * title;
- char * text;
- int suggestedWidth;
- int flexDown;
- int flexUp;
- int maxListHeight;
- char **list;
- int def;
- char *buttons;
- PPCODE:
- {
- int button;
-#define nb 8
-#define a(i) SvPV(ST(i + nb),PL_na)
- button = newtWinMenu(title, text, suggestedWidth, flexDown, flexUp, maxListHeight, list, &def,
- items > nb + 0 ? a( 0) : NULL,
- items > nb + 1 ? a( 1) : NULL,
- items > nb + 2 ? a( 2) : NULL,
- items > nb + 3 ? a( 3) : NULL,
- items > nb + 4 ? a( 4) : NULL,
- items > nb + 5 ? a( 5) : NULL,
- items > nb + 6 ? a( 6) : NULL,
- items > nb + 7 ? a( 7) : NULL,
- items > nb + 8 ? a( 8) : NULL,
- items > nb + 9 ? a( 9) : NULL,
- items > nb + 10 ? a(10) : NULL,
- NULL);
-#undef a
- EXTEND(SP, 2);
- PUSHs(sv_2mortal(newSViv(button)));
- PUSHs(sv_2mortal(newSViv(def)));
- }
-
-MODULE = Newt PACKAGE = Newt::Component PREFIX = newt
-
-void
-addCallback(co, callback)
- Newt::Component co;
- SV *callback;
- CODE:
- newtComponentAddCallback(co, componentCallback, callback);
-
-Newt::Component
-newtCompactButton(left,top,text)
- int left;
- int top;
- const char * text;
-
-Newt::Component
-newtButton(left,top,text)
- int left;
- int top;
- const char * text;
-
-Newt::Component
-newtCheckbox(left,top,text,defValue,seq)
- int left;
- int top;
- const char * text;
- char *defValue;
- const char * seq;
- CODE:
- RETVAL = newtCheckbox(left, top, text, defValue[0], seq, NULL);
- OUTPUT:
- RETVAL
-
-int
-newtCheckboxGetValue(co)
- Newt::Component co;
-
-void
-newtCheckboxSetValue(co, value)
- Newt::Component co;
- char *value;
- CODE:
- newtCheckboxSetValue(co, value[0]);
-
-Newt::Component
-newtLabel(left,top,text)
- int left;
- int top;
- const char * text;
-
-void
-newtLabelSetText(co,text)
- Newt::Component co;
- const char * text;
-
-Newt::Component
-newtVerticalScrollbar(left,top,height,normalColorset,thumbColorset)
- int left;
- int top;
- int height;
- int normalColorset;
- int thumbColorset;
-
-void
-newtScrollbarSet(co,where,total)
- Newt::Component co;
- int where;
- int total;
-
-Newt::Component
-newtListbox(left,top,height,flags)
- int left;
- int top;
- int height;
- int flags;
-
-SV *
-newtListboxGetCurrent(co)
- Newt::Component co;
-CODE:
- RETVAL = SvREFCNT_inc(newtListboxGetCurrent(co));
-OUTPUT:
- RETVAL
-
-
-void
-newtListboxSetCurrent(co,indice)
- Newt::Component co;
- int indice;
-
-void
-newtListboxSetWidth(co,width)
- Newt::Component co;
- int width;
-
-int
-newtListboxAddEntry(co,text,data)
- Newt::Component co;
- const char * text;
- SV * data;
-CODE:
- RETVAL = newtListboxAddEntry(co, text, data);
-OUTPUT:
- RETVAL
-
-Newt::Component
-newtTextboxReflowed(left,top,text,width,flexDown,flexUp,flags)
- int left;
- int top;
- char * text;
- int width;
- int flexDown;
- int flexUp;
- int flags;
-
-Newt::Component
-newtTextbox(left,top,width,height,flags)
- int left;
- int top;
- int width;
- int height;
- int flags;
-
-void
-newtTextboxSetText(co,text)
- Newt::Component co;
- const char * text;
-
-void
-newtTextboxSetHeight(co,height)
- Newt::Component co;
- int height;
-
-int
-newtTextboxGetNumLines(co)
- Newt::Component co;
-
-char *
-newtReflowText(text,width,flexDown,flexUp,actualWidth,actualHeight)
- char * text;
- int width;
- int flexDown;
- int flexUp;
- int * actualWidth;
- int * actualHeight;
-
-Newt::Component
-newtForm(vertBar,help,flags)
- Newt::Component vertBar;
- const char * help;
- int flags;
-
-void
-newtFormSetSize(co)
- Newt::Component co;
-
-Newt::Component
-newtFormGetCurrent(co)
- Newt::Component co;
-
-void
-newtFormSetBackground(co,color)
- Newt::Component co;
- int color;
-
-void
-newtFormSetCurrent(co,subco)
- Newt::Component co;
- Newt::Component subco;
-
-void
-newtFormAddComponent(form,co)
- Newt::Component form;
- Newt::Component co;
-
-void
-newtFormAddGrid(form,grid,recurse)
- Newt::Component form;
- Newt::Grid grid;
- int recurse;
- CODE:
- newtGridAddComponentsToForm(grid,form,recurse);
-
-void
-newtFormSetHeight(co,height)
- Newt::Component co;
- int height;
-
-void
-newtFormSetWidth(co,width)
- Newt::Component co;
- int width;
-
-Newt::Component
-newtRunForm(form)
- Newt::Component form;
-
-void
-newtDrawForm(form)
- Newt::Component form;
-
-Newt::Component
-newtEntry(left,top,initialValue,width,flag)
- int left;
- int top;
- const char * initialValue;
- int width;
- int flag;
- CODE:
- {
- char *result;
- RETVAL = newtEntry(left,top,initialValue,width,&result,flag);
- }
- OUTPUT:
- RETVAL
-
-void
-newtEntrySet(co,value,cursorAtEnd)
- Newt::Component co;
- const char * value;
- int cursorAtEnd;
-
-char *
-newtEntryGetValue(co)
- Newt::Component co;
-
-void
-newtFormDestroy(form)
- Newt::Component form;
-
-MODULE = Newt PACKAGE = Newt::Grid PREFIX = newt
-
-Newt::Grid
-newtCreateGrid(cols,rows)
- int cols;
- int rows;
-
-Newt::Grid
-HCloseStacked(first, ...)
- Newt::Component first;
- CODE:
- {
- int i;
- newtComponent *p = alloca(sizeof(newtComponent) * (2 * items + 1));
- for (i = 0; i < items; i++) {
- p[2 * i] = 1;
- p[2 * i + 1] = (newtComponent)SvIV((SV*)SvRV( ST(i) ));
- }
- p[2 * items] = NULL;
- RETVAL = ((newtGrid (*)()) newtGridHCloseStacked)();
- }
-OUTPUT:
-RETVAL
-
-
-Newt::Grid
-newtGridBasicWindow(text,middle,buttons)
- Newt::Component text;
- Newt::Grid middle;
- Newt::Grid buttons;
-
-
-Newt::Grid
-newtGridSimpleWindow(text,middle,buttons)
- Newt::Component text;
- Newt::Component middle;
- Newt::Grid buttons;
-
-void
-newtGridSetField(grid,col,row,type,val,padLeft,padTop,padRight,padBottom,anchor,flags)
- Newt::Grid grid;
- int col;
- int row;
- enum newtGridElement type;
- void * val;
- int padLeft;
- int padTop;
- int padRight;
- int padBottom;
- int anchor;
- int flags;
-
-
-void
-newtGridFree(grid,recurse)
- Newt::Grid grid;
- int recurse;
-
-void
-newtGridPlace(grid,left,top)
- Newt::Grid grid;
- int left;
- int top;
-
-void
-newtGridGetSize(grid)
- Newt::Grid grid;
- PPCODE:
-{
- int width;
- int height;
- newtGridGetSize(grid, &width, &height);
- PUSHs(sv_2mortal(newSViv(width)));
- PUSHs(sv_2mortal(newSViv(height)));
-}
-
-void
-newtGridWrappedWindow(grid,title)
- Newt::Grid grid;
- char * title;
-
-Newt::Grid
-newtButtonBar(button1, ...)
- char * button1;
- PPCODE:
- {
- static newtComponent p[11];
- int i;
- EXTEND(SP, items + 1);
-#define a(i) (char *)SvPV(ST(i),PL_na)
- PUSHs(sv_setref_pv(sv_newmortal(), "Newt::Grid",
- newtButtonBar(items > 0 ? a( 0) : NULL, items > 0 ? &p[ 0] : NULL,
- items > 1 ? a( 1) : NULL, items > 1 ? &p[ 1] : NULL,
- items > 2 ? a( 2) : NULL, items > 2 ? &p[ 2] : NULL,
- items > 3 ? a( 3) : NULL, items > 3 ? &p[ 3] : NULL,
- items > 4 ? a( 4) : NULL, items > 4 ? &p[ 4] : NULL,
- items > 5 ? a( 5) : NULL, items > 5 ? &p[ 5] : NULL,
- items > 6 ? a( 6) : NULL, items > 6 ? &p[ 6] : NULL,
- items > 7 ? a( 7) : NULL, items > 7 ? &p[ 7] : NULL,
- items > 8 ? a( 8) : NULL, items > 8 ? &p[ 8] : NULL,
- items > 9 ? a( 9) : NULL, items > 9 ? &p[ 9] : NULL,
- items > 10 ? a(10) : NULL, items > 10 ? &p[10] : NULL,
- NULL)));
-#undef a
- for (i = 0; i < items; i++) PUSHs(sv_setref_pv(sv_newmortal(), "Newt::Component", p[i]));
- }
diff --git a/perl-install/Newt/typemap b/perl-install/Newt/typemap
deleted file mode 100644
index 5aaa2f668..000000000
--- a/perl-install/Newt/typemap
+++ /dev/null
@@ -1,25 +0,0 @@
-TYPEMAP
-
-const char * T_PV
-const void * T_PV
-int * T_PV
-void ** T_PACKED
-
-enum newtFlagsSense T_IV
-enum newtGridElement T_IV
-SV ** T_SV
-
-Newt::Component NewtComponent
-Newt::Grid NewtGrid
-
-INPUT
-NewtComponent
- $var = ($type) SvIV((SV*)SvRV($arg))
-NewtGrid
- $var = ($type) SvIV((SV*)SvRV($arg))
-
-OUTPUT
-NewtComponent
- sv_setref_pv($arg, "Newt::Component", (void*) $var);
-NewtGrid
- sv_setref_pv($arg, "Newt::Grid", (void*) $var);
diff --git a/perl-install/any.pm b/perl-install/any.pm
deleted file mode 100644
index 44d23a204..000000000
--- a/perl-install/any.pm
+++ /dev/null
@@ -1,1186 +0,0 @@
-package any; # $Id$
-
-use diagnostics;
-use strict;
-
-#-######################################################################################
-#- misc imports
-#-######################################################################################
-use common;
-use detect_devices;
-use partition_table qw(:types);
-use fsedit;
-use fs;
-use lang;
-use run_program;
-use devices;
-use modules;
-use log;
-use c;
-
-sub drakx_version {
- sprintf "DrakX v%s built %s", $::testing ? ('TEST', scalar gmtime()) : (split('/', cat_("$ENV{SHARE_PATH}/VERSION")))[2,3];
-}
-
-sub facesdir {
- my ($prefix) = @_;
- "$prefix/usr/share/mdk/faces/";
-}
-sub face2png {
- my ($face, $prefix) = @_;
- facesdir($prefix) . $face . ".png";
-}
-sub facesnames {
- my ($prefix) = @_;
- my $dir = facesdir($prefix);
- my @l = grep { /^[A-Z]/ } all($dir);
- map { if_(/(.*)\.png/, $1) } (@l ? @l : all($dir));
-}
-
-sub addKdmIcon {
- my ($prefix, $user, $icon) = @_;
- my $dest = "$prefix/usr/share/faces/$user.png";
- eval { cp_af(facesdir($prefix) . $icon . ".png", $dest) } if $icon;
-}
-
-sub allocUsers {
- my ($prefix, $users) = @_;
- my @m = my @l = facesnames($prefix);
- foreach (grep { !$_->{icon} || $_->{icon} eq "automagic" } @$users) {
- $_->{auto_icon} = splice(@m, rand(@m), 1); #- known biased (see cookbook for better)
- log::l("auto_icon is $_->{auto_icon}");
- @m = @l unless @m;
- }
-}
-
-sub addUsers {
- my ($prefix, $users) = @_;
- my $msec = "$prefix/etc/security/msec";
-
- allocUsers($prefix, $users);
- foreach my $u (@$users) {
- run_program::rooted($prefix, "usermod", "-G", join(",", @{$u->{groups}}), $u->{name}) if !is_empty_array_ref($u->{groups});
- addKdmIcon($prefix, $u->{name}, delete $u->{auto_icon} || $u->{icon});
- }
-}
-
-sub crypt {
- my ($password, $md5) = @_;
- crypt($password, $md5 ? '$1$' . salt(8) : salt(2));
-}
-sub enableShadow {
- my ($prefix) = @_;
- run_program::rooted($prefix, "pwconv") or log::l("pwconv failed");
- run_program::rooted($prefix, "grpconv") or log::l("grpconv failed");
-}
-sub enableMD5Shadow { #- NO MORE USED
- my ($prefix, $shadow, $md5) = @_;
- substInFile {
- if (/^password.*pam_pwdb.so/) {
- s/\s*shadow//; s/\s*md5//;
- s/$/ shadow/ if $shadow;
- s/$/ md5/ if $md5;
- }
- } grep { -r $_ } map { "$prefix/etc/pam.d/$_" } qw(login rlogin passwd);
-}
-
-sub grub_installed {
- my ($in) = @_;
- my $f = "/usr/sbin/grub";
- $in->do_pkgs->install('grub') if !-e $f;
- -e $f;
-}
-
-sub setupBootloader {
- my ($in, $b, $all_hds, $fstab, $security, $prefix, $more) = @_;
- my $hds = $all_hds->{hds};
-
- $more++ if $b->{bootUnsafe};
- my $automatic = !$::expert && $more < 1;
- my $semi_auto = !$::expert && arch() !~ /ia64/;
- my $ask_per_entries = $::expert || $more > 1;
- my $prev_boot = $b->{boot};
- my $mixed_kind_of_disks =
- (grep { $_->{device} =~ /^sd/ } @$hds) && (grep { $_->{device} =~ /^hd/ } @$hds) ||
- (grep { $_->{device} =~ /^hd[fghi]/ } @$hds) && (grep { $_->{device} =~ /^hd[abcd]/ } @$hds);
-
- if ($mixed_kind_of_disks) {
- $automatic = $semi_auto = 0;
- #- full expert questions when there is 2 kind of disks
- #- it would need a semi_auto asking on which drive the bios boots...
- }
- $automatic = 0 if arch() =~ /ppc/; #- no auto for PPC yet
-
- if ($automatic) {
- #- automatic
- } elsif ($semi_auto) {
- my @l = (__("First sector of drive (MBR)"), __("First sector of boot partition"));
-
- $in->set_help('setupBootloaderBeginner') unless $::isStandalone;
- if (arch() =~ /sparc/) {
- $b->{use_partition} = $in->ask_from_list_(_("SILO Installation"),
- _("Where do you want to install the bootloader?"),
- \@l, $l[$b->{use_partition}]) or return 0;
- } elsif (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 {
- my $boot = $hds->[0]{device};
- my $onmbr = "/dev/$boot" eq $b->{boot};
- $b->{boot} = "/dev/" . ($in->ask_from_list_(_("LILO/grub Installation"),
- _("Where do you want to install the bootloader?"),
- \@l, $l[!$onmbr]) eq $l[0]
- ? $boot : fsedit::get_root($fstab, 'boot')->{device});
- }
- } else {
- $in->set_help(arch() =~ /sparc/ ? "setupSILOGeneral" : arch() =~ /ppc/ ? 'setupYabootGeneral' :"setupBootloader") unless $::isStandalone; #- TO MERGE ?
-
- my @silo_install_lang = (_("First sector of drive (MBR)"), _("First sector of boot partition"));
- my $silo_install_lang = $silo_install_lang[$b->{use_partition}];
-
- my %bootloaders = (if_(exists $b->{methods}{silo},
- __("SILO") => sub { $b->{methods}{silo} = 1 }),
- if_(exists $b->{methods}{lilo},
- __("LILO with text menu") => sub { $b->{methods}{lilo} = "lilo-menu" },
- __("LILO with graphical menu") => sub { $b->{methods}{lilo} = "lilo-graphic" }),
- if_(exists $b->{methods}{grub},
- #- put lilo if grub is chosen, so that /etc/lilo.conf is generated
- __("Grub") => sub { $b->{methods}{grub} = 1;
- exists $b->{methods}{lilo}
- and $b->{methods}{lilo} = "lilo-menu" }),
- if_(exists $b->{methods}{loadlin},
- __("Boot from DOS/Windows (loadlin)") => sub { $b->{methods}{loadlin} = 1 }),
- if_(exists $b->{methods}{yaboot},
- __("Yaboot") => sub { $b->{methods}{yaboot} = 1 }),
- );
- my $bootloader = arch() =~ /sparc/ ? __("SILO") : arch() =~ /ppc/ ? __("Yaboot") : __("LILO with graphical menu");
- my $profiles = bootloader::has_profiles($b);
- my $memsize = bootloader::get_append($b, 'mem');
- my $prev_clean_tmp = my $clean_tmp = grep { $_->{mntpoint} eq '/tmp' } @{$all_hds->{special} ||= []};
-
- $b->{vga} ||= 'normal';
- if (arch() !~ /ppc/) {
- $in->ask_from('', _("Bootloader main options"), [
-{ label => _("Bootloader to use"), val => \$bootloader, list => [ keys(%bootloaders) ], format => \&translate },
- arch() =~ /sparc/ ? (
-{ label => _("Bootloader installation"), val => \$silo_install_lang, list => \@silo_install_lang },
-) : if_(arch() !~ /ia64/,
-{ label => _("Boot device"), val => \$b->{boot}, list => [ map { "/dev/$_" } (map { $_->{device} } (@$hds, grep { !isFat($_) } @$fstab)), detect_devices::floppies_dev() ], not_edit => !$::expert },
-{ label => _("LBA (doesn't work on old BIOSes)"), val => \$b->{lba32}, type => "bool", text => "lba", advanced => 1 },
-{ label => _("Compact"), val => \$b->{compact}, type => "bool", text => _("compact"), advanced => 1 },
-{ label => _("Video mode"), val => \$b->{vga}, list => [ keys %bootloader::vga_modes ], not_edit => !$::expert, format => sub { $bootloader::vga_modes{$_[0]} }, advanced => 1 },
-),
-{ label => _("Delay before booting default image"), val => \$b->{timeout} },
- if_($security >= 4,
-{ label => _("Password"), val => \$b->{password}, hidden => 1 },
-{ label => _("Password (again)"), val => \$b->{password2}, hidden => 1 },
-{ label => _("Restrict command line options"), val => \$b->{restricted}, type => "bool", text => _("restrict") },
- ),
-{ label => _("Clean /tmp at each boot"), val => \$clean_tmp, type => 'bool', advanced => 1 },
-{ label => _("Precise RAM size if needed (found %d MB)", availableRamMB()), val => \$memsize, advanced => 1 },
- if_(detect_devices::isLaptop,
-{ label => _("Enable multi profiles"), val => \$profiles, type => 'bool', advanced => 1 },
- ),
-],
- complete => sub {
- !$memsize || $memsize =~ /K$/ || $memsize =~ s/^(\d+)M?$/$1M/i or $in->ask_warn('', _("Give the ram size in MB")), return 1;
-#- $security > 4 && length($b->{password}) < 6 and $in->ask_warn('', _("At this level of security, a password (and a good one) in lilo is requested")), return 1;
- $b->{restricted} && !$b->{password} and $in->ask_warn('', _("Option ``Restrict command line options'' is of no use without a password")), return 1;
- $b->{password} eq $b->{password2} or !$b->{restricted} or $in->ask_warn('', [ _("The passwords do not match"), _("Please try again") ]), return 1;
- 0;
- }
- ) or return 0;
- } else {
- $b->{boot} = $partition_table::mac::bootstrap_part;
- $in->ask_from('', _("Bootloader main options"), [
- { label => _("Bootloader to use"), val => \$bootloader, list => [ keys(%bootloaders) ], format => \&translate },
- { label => _("Init Message"), val => \$b->{'init-message'} },
- { label => _("Boot device"), val => \$b->{boot}, list => [ map { "/dev/$_" } (map { $_->{device} } (grep { isAppleBootstrap($_) } @$fstab))], not_edit => !$::expert },
- { label => _("Open Firmware Delay"), val => \$b->{delay} },
- { label => _("Kernel Boot Timeout"), val => \$b->{timeout} },
- { label => _("Enable CD Boot?"), val => \$b->{enablecdboot}, type => "bool" },
- { label => _("Enable OF Boot?"), val => \$b->{enableofboot}, type => "bool" },
- { label => _("Default OS?"), val=> \$b->{defaultos}, list => [ 'linux', 'macos', 'macosx', 'darwin' ] },
- ]) or return 0;
- }
-
- $b->{methods}{$_} = 0 foreach keys %{$b->{methods}};
- $bootloaders{$bootloader} and $bootloaders{$bootloader}->();
-
- grub_installed($in) or return 1 if $b->{methods}{grub};
-
- #- at least one method
- grep_each { $::b } %{$b->{methods}} or return 0;
-
- $b->{use_partition} = $silo_install_lang eq _("First sector of drive (MBR)") ? 0 : 1;
-
- bootloader::set_profiles($b, $profiles);
- bootloader::add_append($b, "mem", $memsize);
-
- if ($prev_clean_tmp != $clean_tmp) {
- if ($clean_tmp) {
- push @{$all_hds->{special}}, { device => 'none', mntpoint => '/tmp', type => 'tmpfs' };
- } else {
- @{$all_hds->{special}} = grep { $_->{mntpoint} eq '/tmp' } @{$all_hds->{special}};
- }
- }
- }
-
- #- remove bios mapping if the user changed the boot device
- delete $b->{bios} if $b->{boot} ne $prev_boot;
-
- if ($mixed_kind_of_disks &&
-# $b->{boot} !~ /$hds->[0]{device}/ && #- not the first disk
- $b->{boot} =~ /\d$/ && #- on a partition
- is_empty_hash_ref($b->{bios}) && #- some bios mapping already there
- arch() !~ /ppc/) {
- my $hd = $in->ask_from_listf('', _("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).
-
-On which drive are you booting?"), \&partition_table::description, $hds) or goto &setupBootloader;
- $b->{first_hd_device} = "/dev/$hd->{device}";
- }
-
- $ask_per_entries or return 1;
-
- while (1) {
- $in->set_help(arch() =~ /sparc/ ? 'setupSILOAddEntry' : arch() =~ /ppc/ ? 'setupYabootAddEntry' : 'setupBootloaderAddEntry') unless $::isStandalone;
- my ($c, $e);
- $in->ask_from_(
- {
- messages =>
-_("Here are the entries on your boot menu so far.
-You can add some more or change the existing ones."),
- ok => '',
-},
- [ { val => \$e, type => 'combo', format => sub {
- my ($e) = @_;
- ref $e ?
- "$e->{label} ($e->{kernel_or_dev})" . ($b->{default} eq $e->{label} && " *") :
- translate($e);
- }, list => [ @{$b->{entries}} ], allow_empty_list => 1 },
- (map { my $s = $_; { val => translate($_), clicked_may_quit => sub { $c = $s; 1 } } } (if_(@{$b->{entries}} > 0, __("Modify")), __("Add"), __("Done"))),
- ]
- );
- !$c || $c eq "Done" and last;
-
- if ($c eq "Add") {
- my @labels = map { $_->{label} } @{$b->{entries}};
- my $prefix;
- if ($in->ask_from_list_('', _("Which type of entry do you want to add?"),
- [ __("Linux"), arch() =~ /sparc/ ? __("Other OS (SunOS...)") : arch() =~ /ppc/ ?
- __("Other OS (MacOS...)") : __("Other OS (windows...)") ]
- ) eq "Linux") {
- $e = { type => 'image',
- root => '/dev/' . fsedit::get_root($fstab)->{device}, #- assume a good default.
- };
- $prefix = "linux";
- } else {
- $e = { type => 'other' };
- $prefix = arch() =~ /sparc/ ? "sunos" : arch() =~ /ppc/ ? "macos" : "windows";;
- }
- $e->{label} = $prefix;
- for (my $nb = 0; member($e->{label}, @labels); $nb++) { $e->{label} = "$prefix-$nb" }
- }
- my %old_e = %$e;
- my $default = my $old_default = $e->{label} eq $b->{default};
-
- my @l;
- if ($e->{type} eq "image") {
- @l = (
-{ label => _("Image"), val => \$e->{kernel_or_dev}, list => [ map { s/$prefix//; $_ } glob_("$prefix/boot/vmlinuz*") ], not_edit => 0 },
-{ label => _("Root"), val => \$e->{root}, list => [ map { "/dev/$_->{device}" } @$fstab ], not_edit => !$::expert },
-{ label => _("Append"), val => \$e->{append} },
- if_(arch !~ /ppc|ia64/,
-{ label => _("Video mode"), val => \$e->{vga}, list => [ keys %bootloader::vga_modes ], format => sub { $bootloader::vga_modes{$_[0]} }, not_edit => !$::expert },
-),
-{ label => _("Initrd"), val => \$e->{initrd}, list => [ map { s/$prefix//; $_ } glob_("$prefix/boot/initrd*") ], not_edit => 0 },
-{ label => _("Read-write"), val => \$e->{'read-write'}, type => 'bool' }
- );
- @l = @l[0..2] unless $::expert;
- } else {
- @l = (
-{ label => _("Root"), val => \$e->{kernel_or_dev}, list => [ map { "/dev/$_->{device}" } @$fstab ], not_edit => !$::expert },
-if_(arch() !~ /sparc|ppc|ia64/,
-{ label => _("Table"), val => \$e->{table}, list => [ '', map { "/dev/$_->{device}" } @$hds ], not_edit => !$::expert },
-{ label => _("Unsafe"), val => \$e->{unsafe}, type => 'bool' }
-),
- );
- @l = $l[0] unless $::expert;
- }
-if (arch() !~ /ppc/) {
- @l = (
-{ label => _("Label"), val => \$e->{label} },
-@l,
-{ label => _("Default"), val => \$default, type => 'bool' },
- );
-} else {
- @l = ({ label => _("Label"), val => \$e->{label}, list=> ['macos', 'macosx', 'darwin'] },
- @l );
- if ($e->{type} eq "image") {
- @l = ({ label => _("Label"), val => \$e->{label} },
- $::expert ? @l[1..4] : (@l[1..2], { label => _("Append"), val => \$e->{append} }) ,
- if_($::expert, { label => _("Initrd-size"), val => \$e->{initrdsize}, list => [ '', '4096', '8192', '16384', '24576' ] }),
- if_($::expert, $l[5]),
- { label => _("NoVideo"), val => \$e->{novideo}, type => 'bool' },
- { label => _("Default"), val => \$default, type => 'bool' }
- );
- }
-}
-
- if ($in->ask_from_(
- {
- if_($c ne "Add", cancel => _("Remove entry")),
- callbacks => {
- complete => sub {
- $e->{label} or $in->ask_warn('', _("Empty label not allowed")), return 1;
- $e->{kernel_or_dev} or $in->ask_warn('', $e->{type} eq 'image' ? _("You must specify a kernel image") : _("You must specify a root partition")), return 1;
- member(lc $e->{label}, map { lc $_->{label} } grep { $_ != $e } @{$b->{entries}}) and $in->ask_warn('', _("This label is already used")), return 1;
- 0;
- } } }, \@l)) {
- $b->{default} = $old_default || $default ? $default && $e->{label} : $b->{default};
- require bootloader;
- bootloader::configure_entry($prefix, $e); #- hack to make sure initrd file are built.
-
- push @{$b->{entries}}, $e if $c eq "Add";
- } else {
- delete $b->{default} if $b->{default} eq $e->{label};
- @{$b->{entries}} = grep { $_ != $e } @{$b->{entries}};
- }
- }
- 1;
-}
-
-my @etc_pass_fields = qw(name pw uid gid realname home shell);
-sub unpack_passwd {
- my ($l) = @_;
- my %l; @l{@etc_pass_fields} = split ':', chomp_($l);
- \%l;
-}
-sub pack_passwd {
- my ($l) = @_;
- join(':', @$l{@etc_pass_fields}) . "\n";
-}
-
-sub get_autologin {
- my ($prefix, $o) = @_;
- my %l = getVarsFromSh("$prefix/etc/sysconfig/autologin");
- $o->{autologin} ||= $l{USER};
- %l = getVarsFromSh("$prefix/etc/sysconfig/desktop");
- $o->{desktop} ||= $l{DESKTOP};
-}
-
-sub set_autologin {
- my ($prefix, $user, $desktop) = @_;
-
- if ($user) {
- my %l = getVarsFromSh("$prefix/etc/sysconfig/desktop");
- $l{DESKTOP} = $desktop;
- setVarsInSh("$prefix/etc/sysconfig/desktop", \%l);
- log::l("cat $prefix/etc/sysconfig/desktop ($desktop):\n", cat_("$prefix/etc/sysconfig/desktop"));
- }
- setVarsInSh("$prefix/etc/sysconfig/autologin",
- { USER => $user, AUTOLOGIN => bool2yesno($user), EXEC => "/usr/X11R6/bin/startx" });
- log::l("cat $prefix/etc/sysconfig/autologin ($user):\n", cat_("$prefix/etc/sysconfig/autologin"));
-}
-
-sub rotate_log {
- my ($f) = @_;
- if (-e $f) {
- my $i = 1;
- for (; -e "$f$i" || -e "$f$i.gz"; $i++) {}
- rename $f, "$f$i";
- }
-}
-sub rotate_logs {
- my ($prefix) = @_;
- rotate_log("$prefix/root/drakx/$_") foreach qw(ddebug.log install.log);
-}
-
-sub writeandclean_ldsoconf {
- my ($prefix) = @_;
- my $file = "$prefix/etc/ld.so.conf";
- output $file,
- grep { !m|^(/usr)?/lib$| } #- no need to have /lib and /usr/lib in ld.so.conf
- uniq cat_($file), "/usr/X11R6/lib\n";
-}
-
-sub shells {
- my ($prefix) = @_;
- grep { -x "$prefix$_" } chomp_(cat_("$prefix/etc/shells"));
-}
-
-sub inspect {
- my ($part, $prefix, $rw) = @_;
-
- isMountableRW($part) or return;
-
- my $dir = $::isInstall ? "/tmp/inspect_tmp_dir" : "/root/.inspect_tmp_dir";
-
- if ($part->{isMounted}) {
- $dir = ($prefix || '') . $part->{mntpoint};
- } elsif ($part->{notFormatted} && !$part->{isFormatted}) {
- $dir = '';
- } else {
- mkdir $dir, 0700;
- eval { fs::mount($part->{device}, $dir, type2fs($part), !$rw) };
- $@ and return;
- }
- my $h = before_leaving {
- if (!$part->{isMounted} && $dir) {
- fs::umount($dir);
- unlink($dir)
- }
- };
- $h->{dir} = $dir;
- $h;
-}
-
-#-----modem conf
-sub pppConfig {
- my ($in, $modem, $prefix) = @_;
- $modem or return;
-
- devfssymlinkf($modem, 'modem', $prefix) if $modem->{device} ne "/dev/modem";
- $in->do_pkgs->install('ppp') if !$::testing;
-
- my %toreplace;
- $toreplace{$_} = $modem->{$_} foreach qw(connection phone login passwd auth domain dns1 dns2);
- $toreplace{kpppauth} = ${{ 'Script-based' => 0, 'PAP' => 1, 'Terminal-based' => 2, }}{$modem->{auth}};
- $toreplace{kpppauth} = ${{ 'Script-based' => 0, 'PAP' => 1, 'Terminal-based' => 2, 'CHAP' => 3 }}{$modem->{auth}};
- $toreplace{phone} =~ s/\D//g;
- $toreplace{dnsserver} = join ',', map { $modem->{$_} } "dns1", "dns2";
- $toreplace{dnsserver} .= $toreplace{dnsserver} && ',';
-
- #- using peerdns or dns1,dns2 avoid writing a /etc/resolv.conf file.
- $toreplace{peerdns} = "yes";
-
- $toreplace{connection} ||= 'DialupConnection';
- $toreplace{domain} ||= 'localdomain';
- $toreplace{intf} ||= 'ppp0';
- $toreplace{papname} = ($modem->{auth} eq 'PAP' || $modem->{auth} eq 'CHAP') && $toreplace{login};
-
- #- build ifcfg-ppp0.
- my $ifcfg = "$prefix/etc/sysconfig/network-scripts/ifcfg-ppp0";
- local *IFCFG; open IFCFG, ">$ifcfg" or die "Can't open $ifcfg";
- print IFCFG <<END;
-DEVICE="$toreplace{intf}"
-ONBOOT="no"
-USERCTL="no"
-MODEMPORT="/dev/modem"
-LINESPEED="115200"
-PERSIST="yes"
-DEFABORT="yes"
-DEBUG="yes"
-INITSTRING="ATZ"
-DEFROUTE="yes"
-HARDFLOWCTL="yes"
-ESCAPECHARS="no"
-PPPOPTIONS=""
-PAPNAME="$toreplace{papname}"
-REMIP=""
-NETMASK=""
-IPADDR=""
-MRU=""
-MTU=""
-DISCONNECTTIMEOUT="5"
-RETRYTIMEOUT="60"
-BOOTPROTO="none"
-PEERDNS="$toreplace{peerdns}"
-END
- foreach (1..2) {
- if ($toreplace{"dns$_"}) {
- print IFCFG <<END;
-DNS$_=$toreplace{"dns$_"}
-END
- }
- }
- close IFCFG;
-
- #- build chat-ppp0.
- my $chat = "$prefix/etc/sysconfig/network-scripts/chat-ppp0";
- local *CHAT; open CHAT, ">$chat" or die "Can't open $chat";
- print CHAT <<END;
-'ABORT' 'BUSY'
-'ABORT' 'ERROR'
-'ABORT' 'NO CARRIER'
-'ABORT' 'NO DIALTONE'
-'ABORT' 'Invalid Login'
-'ABORT' 'Login incorrect'
-'' 'ATZ'
-END
- if ($modem->{special_command}) {
- print CHAT <<END;
-'OK' '$modem->{special_command}'
-END
- }
- print CHAT <<END;
-'OK' 'ATDT$toreplace{phone}'
-'CONNECT' ''
-END
- if ($modem->{auth} eq 'Terminal-based' || $modem->{auth} eq 'Script-based') {
- print CHAT <<END;
-'ogin:--ogin:' '$toreplace{login}'
-'ord:' '$toreplace{passwd}'
-END
- }
- print CHAT <<END;
-'TIMEOUT' '5'
-'~--' ''
-END
- close CHAT;
- chmod 0600, $chat;
-
- if ($modem->{auth} eq 'PAP' || $modem->{auth} eq 'CHAP') {
- #- need to create a secrets file for the connection.
- my $secrets = "$prefix/etc/ppp/" . lc($modem->{auth}) . "-secrets";
- my @l = cat_($secrets);
- my $replaced = 0;
- do { $replaced ||= 1
- if s/^\s*"?$toreplace{login}"?\s+ppp0\s+(\S+)/"$toreplace{login}" ppp0 "$toreplace{passwd}"/; } foreach @l;
- if ($replaced) {
- local *F;
- open F, ">$secrets" or die "Can't open $secrets: $!";
- print F @l;
- } else {
- local *F;
- open F, ">>$secrets" or die "Can't open $secrets: $!";
- print F "$toreplace{login} ppp0 \"$toreplace{passwd}\"\n";
- }
- #- restore access right to secrets file, just in case.
- chmod 0600, $secrets;
- }
-
- #- install kppprc file according to used configuration.
- mkdir_p("$prefix/usr/share/config");
-
- {
- local *KPPPRC;
- open KPPPRC, ">$prefix/usr/share/config/kppprc" or die "Can't open $prefix/usr/share/config/kppprc: $!";
- #chmod 0600, "$prefix/usr/share/config/kppprc";
- print KPPPRC c::to_utf8(<<END);
-# KDE Config File
-[Account0]
-ExDNSDisabled=0
-AutoName=0
-ScriptArguments=
-AccountingEnabled=0
-DialString=ATDT
-Phonenumber=$toreplace{phone}
-IPAddr=0.0.0.0
-Domain=$toreplace{domain}
-Name=$toreplace{connection}
-VolumeAccountingEnabled=0
-pppdArguments=
-Password=$toreplace{passwd}
-BeforeDisconnect=
-Command=
-ScriptCommands=
-Authentication=$toreplace{kpppauth}
-DNS=$toreplace{dnsserver}
-SubnetMask=0.0.0.0
-AccountingFile=
-DefaultRoute=1
-Username=$toreplace{login}
-Gateway=0.0.0.0
-StorePassword=1
-DisconnectCommand=
-[Modem]
-BusyWait=0
-Enter=CR
-FlowControl=CRTSCTS
-Volume=0
-Timeout=60
-UseCDLine=0
-UseLockFile=1
-Device=/dev/modem
-Speed=115200
-[Graph]
-InBytes=0,0,255
-Text=0,0,0
-Background=255,255,255
-Enabled=true
-OutBytes=255,0,0
-[General]
-QuitOnDisconnect=0
-ShowLogWindow=0
-DisconnectOnXServerExit=1
-DefaultAccount=$toreplace{connection}
-iconifyOnConnect=1
-Hint_QuickHelp=0
-AutomaticRedial=0
-PPPDebug=0
-NumberOfAccounts=1
-ShowClock=1
-DockIntoPanel=0
-pppdTimeout=30
-END
- }
- miscellaneousNetwork($prefix);
-}
-
-sub miscellaneousNetwork {
- my ($prefix) = @_;
- setVarsInSh ("$prefix/etc/profile.d/proxy.sh", $::o->{miscellaneous}, qw(http_proxy ftp_proxy));
- setVarsInCsh("$prefix/etc/profile.d/proxy.csh", $::o->{miscellaneous}, qw(http_proxy ftp_proxy));
-}
-
-sub load_category_no_message {
- my ($category, $at_least_one) = @_;
- my @l;
- @l = modules::load_category($category, undef);
- @l = modules::load_category($category, undef, 'force') if !@l && $at_least_one;
- @l;
-}
-
-sub load_category {
- my ($in, $category, $auto, $at_least_one) = @_;
-
- my @l;
- {
- my $w;
- my $wait_message = sub { $w = wait_load_module($in, $category, @_) };
- @l = modules::load_category($category, $wait_message);
- @l = modules::load_category($category, $wait_message, 'force') if !@l && $at_least_one;
- }
- if (my @err = grep { $_ } map { $_->{error} } @l) {
- $in->ask_warn('', join("\n", @err));
- }
- return @l if $auto && (@l || !$at_least_one);
-
- @l = map { $_->{description} } @l;
-
- if ($at_least_one && !@l) {
- @l = load_category__prompt($in, $category) or return;
- }
-
- load_category__prompt_for_more($in, $category, @l);
-}
-
-sub load_category__prompt_for_more {
- my ($in, $category, @l) = @_;
-
- (my $msg_type = $category) =~ s/\|.*//;
-
- while (1) {
- my $msg = @l ?
- [ _("Found %s %s interfaces", join(", ", @l), $msg_type),
- _("Do you have another one?") ] :
- _("Do you have any %s interfaces?", $msg_type);
-
- my $opt = [ __("Yes"), __("No") ];
- push @$opt, __("See hardware info") if $::expert;
- my $r = $in->ask_from_list_('', $msg, $opt, "No") or die 'already displayed';
- if ($r eq "No") { return @l }
- if ($r eq "Yes") {
- push @l, load_category__prompt($in, $category) || next;
- } else {
- $in->ask_warn('', [ detect_devices::stringlist() ]);
- }
- }
-}
-
-sub wait_load_module {
- my ($in, $category, $text, $module) = @_;
-#-PO: the first %s is the card type (scsi, network, sound,...)
-#-PO: the second is the vendor+model name
- $in->wait_message('',
- [ _("Installing driver for %s card %s", $category, $text),
- if_($::expert, _("(module %s)", $module))
- ]);
-}
-
-sub load_module__ask_options {
- my ($in, $module_descr, $parameters) = @_;
-
- if (@$parameters) {
- $in->ask_from('',
- _("You may now provide its options to module %s.\nNote that any address should be entered with the prefix 0x like '0x123'", $module_descr),
- [ map {; { label => $_->[0], help => $_->[1], val => \$_->[2] } } @$parameters ],
- ) or return;
- map { if_($_->[2], "$_->[0]=$_->[2]") } @$parameters;
- } else {
- split ' ', $in->ask_from_entry('',
-_("You may now provide options to module %s.
-Options are in format ``name=value name2=value2 ...''.
-For instance, ``io=0x300 irq=7''", $module_descr), _("Module options:"),
- );
- }
-}
-
-sub load_category__prompt {
- my ($in, $category) = @_;
-
- (my $msg_type = $category) =~ s/\|.*//;
- my %available_modules = map_each { $::a => $::b ? "$::a ($::b)" : $::a } modules::category2modules_and_description($category);
- my $module = $in->ask_from_listf('',
-#-PO: the %s is the driver type (scsi, network, sound,...)
- _("Which %s driver should I try?", $msg_type),
- sub { $available_modules{$_[0]} },
- [ keys %available_modules ]) or return;
- my $module_descr = $available_modules{$module};
-
- my @options;
- require modparm;
- my @parameters = modparm::parameters($module);
- if (@parameters && $in->ask_from_list_('',
-_("In some cases, the %s driver needs to have extra information to work
-properly, although it normally works fine without. Would you like to specify
-extra options for it or allow the driver to probe your machine for the
-information it needs? Occasionally, probing will hang a computer, but it should
-not cause any damage.", $module_descr), [ __("Autoprobe"), __("Specify options") ], 'Autoprobe') ne 'Autoprobe') {
- @options = load_module__ask_options($in, $module_descr, \@parameters);
- }
- while (1) {
- eval {
- my $w = wait_load_module($in, $category, $module_descr, $module);
- log::l("user asked for loading module $module (type $category, desc $module_descr)");
- modules::load([ $module, @options ]);
- };
- return $module_descr if !$@;
-
- $in->ask_yesorno('',
-_("Loading module %s failed.
-Do you want to try again with other parameters?", $module_descr), 1) or return;
-
- @options = load_module__ask_options($in, $module_descr, \@parameters);
- }
-}
-
-sub ask_users {
- my ($prefix, $in, $users, $security) = @_;
-
- my $u if 0; $u ||= {};
-
- my @shells = map { chomp; $_ } cat_("$prefix/etc/shells");
- my @icons = facesnames($prefix);
-
- my %high_security_groups = (
- xgrp => _("access to X programs"),
- rpm => _("access to rpm tools"),
- wheel => _("allow \"su\""),
- adm => _("access to administrative files"),
- );
- while (1) {
- $u->{password2} ||= $u->{password} ||= '';
- $u->{shell} ||= '/bin/bash';
- my $names = @$users ? _("(already added %s)", join(", ", map { $_->{realname} || $_->{name} } @$users)) : '';
-
- my %groups;
- my $verif = sub {
- $u->{password} eq $u->{password2} or $in->ask_warn('', [ _("The passwords do not match"), _("Please try again") ]), return (1,2);
- $security > 3 && length($u->{password}) < 6 and $in->ask_warn('', _("This password is too simple")), return (1,2);
- $u->{name} or $in->ask_warn('', _("Please give a user name")), return (1,0);
- $u->{name} =~ /^[a-z0-9_-]+$/ or $in->ask_warn('', _("The user name must contain only lower cased letters, numbers, `-' and `_'")), return (1,0);
- length($u->{name}) <= 32 or $in->ask_warn('', _("The user name is too long")), return (1,0);
- member($u->{name}, map { $_->{name} } @$users) and $in->ask_warn('', _("This user name is already added")), return (1,0);
- return 0;
- };
- my $ret = $in->ask_from_(
- { title => _("Add user"),
- messages => _("Enter a user\n%s", $names),
- ok => _("Accept user"),
- cancel => $security < 4 || @$users ? _("Done") : '',
- callbacks => {
- focus_out => sub {
- if ($_[0] eq 0) {
- $u->{name} ||= lc first($u->{realname} =~ /([\w-]+)/);
- }
- },
- complete => $verif,
- canceled => sub { $u->{name} ? &$verif : 0; },
- } }, [
- { label => _("Real name"), val => \$u->{realname} },
- { label => _("User name"), val => \$u->{name} },
- { label => _("Password"),val => \$u->{password}, hidden => 1 },
- { label => _("Password (again)"), val => \$u->{password2}, hidden => 1 },
- { label => _("Shell"), val => \$u->{shell}, list => [ shells($prefix) ], not_edit => !$::expert, advanced => 1 },
- if_($security <= 3 && @icons,
- { label => _("Icon"), val => \ ($u->{icon} ||= 'man'), list => \@icons, icon2f => sub { face2png($_[0], $prefix) }, format => \&translate },
- ),
- if_($security > 3,
- map {;
- { label => $_, val => \$groups{$_}, text => $high_security_groups{$_}, type => 'bool' }
- } keys %high_security_groups,
- ),
- ],
- );
- $u->{groups} = [ grep { $groups{$_} } keys %groups ];
-
- push @$users, $u if $u->{name};
- $u = {};
- $ret or return;
- }
-}
-
-sub autologin {
- my ($prefix, $o, $in) = @_;
-
- my $cmd = $prefix ? "chroot $prefix" : "";
- my @wm = (split (' ', `$cmd /usr/sbin/chksession -l 2>/dev/null`));
- my @users = map { $_->{name} } @{$o->{users} || []};
-
- if (@wm > 1 && @users && !$o->{authentication}{NIS} && $o->{security} <= 2) {
- add2hash_($o, { autologin => $users[0] });
-
- $in->ask_from_(
- { title => _("Autologin"),
- messages => _("I can set up your computer to automatically log on one user.
-Do you want to use this feature?"),
- ok => _("Yes"),
- cancel => _("No") },
- [ { label => _("Choose the default user:"), val => \$o->{autologin}, list => \@users },
- { label => _("Choose the window manager to run:"), val => \$o->{desktop}, list => \@wm } ]
- )
- or delete $o->{autologin};
- } else {
- delete $o->{autologin};
- }
-}
-
-sub selectLanguage {
- my ($in, $lang, $langs_) = @_;
- my $langs = $langs_ || {};
- my @langs = lang::list(exclude_non_necessary_utf8 => $::isInstall,
- exclude_non_installed_langs => !$::isInstall,
- );
- $in->ask_from_(
- { messages => _("Please choose a language to use."),
- title => 'language choice',
- advanced_messages => formatAlaTeX(_("Mandrake Linux 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.")),
- callbacks => {
- focus_out => sub { $langs->{$lang} = 1 },
- },
- },
- [ { val => \$lang, separator => '|',
- format => \&lang::lang2text, list => \@langs },
- if_($langs_, (map {;
- { val => \$langs->{$_->[0]}, type => 'bool', disabled => sub { $langs->{all} },
- text => $_->[1], advanced => 1,
- }
- } sort { $a->[1] cmp $b->[1] } map { [ $_, lang::lang2text($_) ] } lang::list()),
- { val => \$langs->{all}, type => 'bool', text => _("All"), advanced => 1 }),
- ]) or return;
- $lang;
-}
-
-sub write_passwd_user {
- my ($prefix, $u, $isMD5) = @_;
-
- $u->{pw} = &crypt($u->{password}, $isMD5) if $u->{password};
- $u->{shell} ||= '/bin/bash';
-
- substInFile {
- my $l = unpack_passwd($_);
- if ($l->{name} eq $u->{name}) {
- add2hash_($u, $l);
- $_ = pack_passwd($u);
- $u = {};
- }
- if (eof && $u->{name}) {
- $_ .= pack_passwd($u);
- }
- } "$prefix/etc/passwd";
-}
-
-sub set_login_serial_console {
- my ($prefix, $port, $speed) = @_;
-
- my $line = "s$port:12345:respawn:/sbin/getty ttyS$port DT$speed ansi\n";
- substInFile { s/^s$port:.*//; $_ = "$line" if eof } "$prefix/etc/inittab";
-}
-
-
-sub runlevel {
- my ($prefix, $runlevel) = @_;
- my $f = "$prefix/etc/inittab";
- -r $f or log::l("missing inittab!!!"), return;
- if ($runlevel) {
- substInFile { s/^id:\d:initdefault:\s*$/id:$runlevel:initdefault:\n/ } $f if !$::testing;
- } else {
- cat_($f) =~ /^id:(\d):initdefault:\s*$/ && $1;
- }
-}
-
-sub report_bug {
- my ($prefix, @other) = @_;
-
- sub header { "
-********************************************************************************
-* $_[0]
-********************************************************************************";
- }
-
- join '', map { chomp; "$_\n" }
- header("lspci"), detect_devices::stringlist(),
- header("pci_devices"), cat_("/proc/bus/pci/devices"),
- header("fdisk"), arch() =~ /ppc/ ? `$ENV{LD_LOADER} pdisk -l` : `$ENV{LD_LOADER} fdisk -l`,
- header("scsi"), cat_("/proc/scsi/scsi"),
- 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("partitions"), cat_("/proc/partitions"),
- header("cpuinfo"), cat_("/proc/cpuinfo"),
- header("syslog"), cat_("/tmp/syslog") || cat_("$prefix/var/log/syslog"),
- header("ddcxinfos"), ddcxinfos(),
- 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("fstab"), cat_("$prefix/etc/fstab"),
- header("modules.conf"), cat_("$prefix/etc/modules.conf"),
- header("lilo.conf"), cat_("$prefix/etc/lilo.conf"),
- header("menu.lst"), cat_("$prefix/boot/grub/menu.lst"),
- header("/etc/modules"), cat_("$prefix/etc/modules"),
- map_index { even($::i) ? header($_) : $_ } @other;
-}
-
-sub devfssymlinkf {
- my ($o_if, $of, $prefix) = @_;
- my $if = $o_if->{device};
-
- my $devfs_if = $o_if->{devfs_device};
- $devfs_if ||= devices::to_devfs($o_if->{device});
- $devfs_if ||= $o_if->{device};
-
- symlinkf($if, "$prefix/dev/$of");
-
- output_p("$prefix/etc/devfs/conf.d/$of.conf",
-"REGISTER ^$devfs_if\$ CFUNCTION GLOBAL symlink $devfs_if $of
-UNREGISTER ^$devfs_if\$ CFUNCTION GLOBAL unlink $of
-");
-}
-sub devfs_rawdevice {
- my ($o_if, $of, $prefix) = @_;
-
- my $devfs_if = $o_if->{devfs_device};
- $devfs_if ||= devices::to_devfs($o_if->{device});
- $devfs_if ||= $o_if->{device};
-
- output_p("$prefix/etc/devfs/conf.d/$of.conf",
-"REGISTER ^$devfs_if\$ EXECUTE /etc/dynamic/scripts/rawdevice.script add /dev/$devfs_if /dev/$of
-UNREGISTER ^$devfs_if\$ EXECUTE /etc/dynamic/scripts/rawdevice.script del /dev/$of
-");
-}
-
-
-sub fileshare_config {
- my ($in, $type) = @_; #- $type is 'nfs', 'smb' or ''
-
- my $file = '/etc/security/fileshare.conf';
- my %conf = getVarsFromSh($file);
-
- my @l = (__("No sharing"), __("Allow all users"), __("Custom"));
- my $restrict = exists $conf{RESTRICT} ? text2bool($conf{RESTRICT}) : 1;
-
- if ($restrict) {
- #- verify we can export in $type
- my %type2file = (nfs => [ '/etc/init.d/nfs', 'nfs-utils' ], smb => [ '/etc/init.d/smb', 'samba' ]);
- my @wanted = $type ? $type : keys %type2file;
- my @have = grep { -e $type2file{$_}[0] } @wanted;
- if (!@have) {
- if (@wanted == 1) {
- $in->ask_okcancel('', _("The package %s needs to be installed. Do you want to install it?", $type2file{$wanted[0]}[1]), 1) or return;
- } else {
- my %choices;
- my $wanted = $in->ask_many_from_list('', _("You can export using NFS or Samba. Please select which you'd like to use."),
- { list => \@wanted }) or return;
- @wanted = @$wanted or return;
- }
- $in->do_pkgs->install(map { $type2file{$_}[1] } @wanted);
- @have = grep { -e $type2file{$_}[0] } @wanted;
- }
- if (!@have) {
- $in->ask_warn('', _("Mandatory package %s is missing", $wanted[0]));
- return;
- }
- }
-
- my $r = $in->ask_from_list_('fileshare',
-_("Would you like to allow users to share some of their directories?
-Allowing this will permit users to simply click on \"Share\" in konqueror and nautilus.
-
-\"Custom\" permit a per-user granularity.
-"),
- \@l, $l[$restrict ? 0 : 1]) or return;
- $restrict = $r ne $l[1];
- $conf{RESTRICT} = bool2yesno($restrict);
-
- setVarsInSh($file, \%conf);
- if ($r eq $l[2]) {
- # custom
- if ($in->ask_from_no_check(
- {
- -e '/usr/bin/userdrake' ? (ok => _("Launch userdrake"), cancel => _("Cancel")) : (cancel => ''),
- messages =>
-_("The per-user sharing uses the group \"fileshare\".
-You can use userdrake to add a user in this group.")
- }, [])) {
- if (!fork) { exec "userdrake" or c::_exit(0) }
- }
- }
-}
-
-sub ddcxinfos {
- my @l = `$ENV{LD_LOADER} ddcxinfos`;
- if ($::isInstall && -e "/tmp/ddcxinfos") {
- my @l_old = cat_("/tmp/ddcxinfos");
- if (@l < @l_old) {
- log::l("new ddcxinfos is worse, keeping the previous one");
- @l = @l_old;
- } elsif (@l > @l_old) {
- log::l("new ddcxinfos is better, dropping the previous one");
- }
- }
- output("/tmp/ddcxinfos", @l) if $::isInstall;
- @l;
-}
-
-sub config_libsafe {
- my ($prefix, $libsafe) = @_;
- my %t = getVarsFromSh("$prefix/etc/sysconfig/system");
- if (@_ > 1) {
- $t{LIBSAFE} = bool2yesno($libsafe);
- setVarsInSh("$prefix/etc/sysconfig/system", \%t);
- }
- text2bool($t{LIBSAFE});
-}
-
-sub config_security_user {
- my ($prefix, $sec_user) = @_;
- my %t = getVarsFromSh("$prefix/etc/security/msec/security.conf");
- if (@_ > 1) {
- $t{MAIL_USER} = $sec_user;
- setVarsInSh("$prefix/etc/security/msec/security.conf", \%t);
- }
- $t{MAIL_USER};
-}
-
-sub choose_security_level {
- my ($in, $security, $libsafe, $email) = @_;
- my $expert_file = "/etc/security/msec/expert_mode";
-
- my %l = (
- 0 => _("Welcome To Crackers"),
- 1 => _("Poor"),
- 2 => _("Standard"),
- 3 => _("High"),
- 4 => _("Higher"),
- 5 => _("Paranoid"),
- );
- my %help = (
- 0 => _("This level is to be used with care. It makes your system more easy to use,
-but very sensitive: it must not be used for a machine connected to others
-or to the Internet. There is no password access."),
- 1 => _("Password are now enabled, but use as a networked computer is still not recommended."),
- 2 => _("This is the standard security recommended for a computer that will be used to connect to the Internet as a client."),
- 3 => _("There are already some restrictions, and more automatic checks are run every night."),
- 4 => _("With this security level, the use of this system as a server becomes possible.
-The security is now high enough to use the system as a server which can accept
-connections from many clients. Note: if your machine is only a client on the Internet, you should choose a lower level."),
- 5 => _("This is similar to the previous level, but the system is entirely closed and security features are at their maximum."),
- );
- delete @l{0,1};
- delete $l{5} if !$::expert;
-
- $in->ask_from(
- ("DrakSec Basic Options"),
- ("Please choose the desired security level") . "\n\n" .
- join('', map { "$l{$_}: " . formatAlaTeX($help{$_}) . "\n\n" } keys %l),
- [
- { label => _("Security level"), val => $security, list => [ sort keys %l ], format => sub { $l{$_} } },
- if_($in->do_pkgs->is_installed('libsafe') && arch() =~ /^i.86/,
- { label => _("Use libsafe for servers"), val => $libsafe, type => 'bool', text =>
- _("A library which defends against buffer overflow and format string attacks.") } ),
- { label => _("Security Administrator (login or email)"), val => $email, },
- ],
- );
- }
-
-sub running_window_manager {
- my @window_managers = (
- 'kdeinit: kwin',
- qw(gnome-session icewm wmaker afterstep fvwm fvwm2 fvwm95 mwm twm enlightenment xfce blackbox sawfish olvwm),
- );
- foreach (@window_managers) {
- return $_ if `/sbin/pidof "$_"` > 0;
- }
- '';
-}
-
-sub ask_window_manager_to_logout {
- my ($wm) = @_;
-
- my %h = (
- 'kdeinit: kwin' => "su $ENV{USER} -c 'dcop kdesktop default logout'",
- 'gnome-session' => "save-session --kill",
- 'icewm' => "killall -QUIT icewm",
- 'wmaker' => "killall -USR1 wmaker",
- );
- system($h{$wm} || return);
- 1;
-}
-
-sub get_secure_level {
- my ($prefix) = @_;
-
- cat_("/etc/profile") =~ /export SECURE_LEVEL=(\d+)/ && $1 || #- 8.0 msec
- cat_("/etc/profile.d/msec.sh") =~ /export SECURE_LEVEL=(\d+)/ && $1 || #- 8.1 msec
- ${{ getVarsFromSh("$prefix/etc/sysconfig/msec") }}{SECURE_LEVEL} || #- 8.2 msec
- $ENV{SECURE_LEVEL};
-}
-
-sub alloc_raw_device {
- my ($prefix, $device) = @_;
- my $used = 0;
- my $raw_dev;
- substInFile {
- $used = max($used, $1) if m|^\s*/dev/raw/raw(\d+)|;
- if (eof) {
- $raw_dev = "raw/raw" . ($used + 1);
- $_ .= "/dev/$raw_dev /dev/$device\n";
- }
- } "$prefix/etc/sysconfig/rawdevices";
- $raw_dev;
-}
-
-sub config_dvd {
- my ($prefix, $have_devfsd) = @_;
-
- #- can't have both a devfs and a non-devfs config
- #- the /etc/sysconfig/rawdevices solution gives errors with devfs
-
- my @dvds = grep { detect_devices::isDvdDrive($_) } detect_devices::cdroms__faking_ide_scsi() or return;
-
- log::l("configuring DVD");
- #- create /dev/dvd symlink
- each_index {
- devfssymlinkf($_, 'dvd' . ($::i ? $::i + 1 : ''), $prefix);
- devfs_rawdevice($_, 'rdvd' . ($::i ? $::i + 1 : ''), $prefix) if $have_devfsd;
- } @dvds;
-
- if (!$have_devfsd) {
- my $raw_dev = alloc_raw_device($prefix, 'dvd');
- symlink($raw_dev, "$prefix/dev/rdvd");
- }
-}
-
-sub config_mtools {
- my ($prefix) = @_;
- my $file = "$prefix/etc/mtools.conf";
- -e $file or return;
-
- my ($f1, $f2) = detect_devices::floppies_dev();
- substInFile {
- s|drive a: file="(.*?)"|drive a: file="/dev/$f1"|;
- s|drive b: file="(.*?)"|drive b: file="/dev/$f2"| if $f2;
- } $file;
-}
-
-1;
diff --git a/perl-install/apps.net_monitor b/perl-install/apps.net_monitor
deleted file mode 100644
index d4dea7f88..000000000
--- a/perl-install/apps.net_monitor
+++ /dev/null
@@ -1,4 +0,0 @@
-USER=root
-PROGRAM=/usr/sbin/net_monitor.real
-SESSION=true
-FALLBACK=false
diff --git a/perl-install/bootloader.pm b/perl-install/bootloader.pm
deleted file mode 100644
index a0b18f69a..000000000
--- a/perl-install/bootloader.pm
+++ /dev/null
@@ -1,1073 +0,0 @@
-package bootloader; # $Id$
-
-use diagnostics;
-use strict;
-use vars qw(%vga_modes);
-
-#-######################################################################################
-#- misc imports
-#-######################################################################################
-use common;
-use partition_table qw(:types);
-use log;
-use any;
-use fsedit;
-use devices;
-use loopback;
-use detect_devices;
-use partition_table::raw;
-use run_program;
-use modules;
-
-
-%vga_modes = (
-'ask' => "Ask at boot",
-'normal' => "Normal",
-'0x0f01' => "80x50",
-'0x0f02' => "80x43",
-'0x0f03' => "80x28",
-'0x0f05' => "80x30",
-'0x0f06' => "80x34",
-'0x0f07' => "80x60",
-'0x0122' => "100x30",
- 785 => "640x480 in 16 bits (FrameBuffer only)",
- 788 => "800x600 in 16 bits (FrameBuffer only)",
- 791 => "1024x768 in 16 bits (FrameBuffer only)",
- 794 => "1280x1024 in 16 bits (FrameBuffer only)",
-);
-
-#-#####################################################################################
-#- Functions
-#-#####################################################################################
-
-sub get {
- my ($kernel, $bootloader) = @_;
- $_->{kernel_or_dev} && $_->{kernel_or_dev} eq $kernel and return $_ foreach @{$bootloader->{entries}};
- undef;
-}
-sub get_label {
- my ($label, $bootloader) = @_;
- $_->{label} && $_->{label} eq $label and return $_ foreach @{$bootloader->{entries}};
- undef;
-}
-
-sub mkinitrd($$$) {
- my ($prefix, $kernelVersion, $initrdImage) = @_;
-
- $::oem or $::testing || -e "$prefix/$initrdImage" and return;
-
- my $loop_boot = loopback::prepare_boot($prefix);
-
- modules::load('loop');
- run_program::rooted($prefix, "mkinitrd", "-v", "-f", $initrdImage, "--ifneeded", $kernelVersion) or unlink("$prefix/$initrdImage");
-
- loopback::save_boot($loop_boot);
-
- -e "$prefix/$initrdImage" or die "mkinitrd failed";
-}
-
-sub mkbootdisk($$$;$) {
- my ($prefix, $kernelVersion, $dev, $append) = @_;
-
- modules::load(if_(arch() =~ /sparc/, 'romfs'), 'loop');
- my @l = qw(mkbootdisk --noprompt);
- push @l, "--appendargs", $append if $append;
- eval { modules::load('vfat') };
- run_program::rooted_or_die($prefix, @l, "--device", "/dev/$dev", $kernelVersion);
-}
-
-sub read($$) {
- my ($prefix, $file) = @_;
- my $global = 1;
- my ($e, $v, $f);
- my %b;
- foreach (cat_("$prefix$file")) {
- ($_, $v) = /^\s*(.*?)\s*(?:=\s*(.*?))?\s*$/;
-
- if (/^(image|other)$/) {
- if (arch() =~ /ppc/) {
- $v =~ s/hd:\d+,//g;
- }
- push @{$b{entries}}, $e = { type => $_, kernel_or_dev => $v };
- $global = 0;
- } elsif ($global) {
- if ($_ eq 'disk' && $v =~ /(\S+)\s+bios\s*=\s*(\S+)/) {
- $b{bios}{$1} = $2;
- } elsif ($_ eq 'bios') {
- $b{bios}{$b{disk}} = $v;
- } elsif ($_ eq 'init-message') {
- $v =~ s/\\n//g;
- $v =~ s/"//g;
- $b{'init-message'} = $v;
- } else {
- $b{$_} = $v || 1;
- }
- } else {
- if ((/map-drive/ .. /to/) && /to/) {
- $e->{mapdrive}{$e->{'map-drive'}} = $v;
- } else {
- if (arch() =~ /ppc/) {
- $v =~ s/hd:\d+,//g;
- $v =~ s/"//g;
- }
- $e->{$_} = $v || 1;
- }
- }
- }
- if (arch() !~ /ppc/) {
- delete $b{timeout} unless $b{prompt};
- $_->{append} =~ s/^\s*"?(.*?)"?\s*$/$1/ foreach \%b, @{$b{entries}};
- $b{timeout} = $b{timeout} / 10 if $b{timeout};
- $b{message} = cat_("$prefix$b{message}") if $b{message};
- }
- \%b;
-}
-
-sub suggest_onmbr {
- my ($hds) = @_;
-
- my $type = partition_table::raw::typeOfMBR($hds->[0]{device});
- !$type || member($type, qw(dos dummy lilo grub empty)), !$type;
-}
-
-sub compare_entries ($$) {
- my ($a, $b) = @_;
- my %entries;
-
- @entries{keys %$a, keys %$b} = ();
- $a->{$_} eq $b->{$_} and delete $entries{$_} foreach keys %entries;
- scalar keys %entries;
-}
-
-sub add_entry($$) {
- my ($entries, $v) = @_;
- my (%usedold, $freeold);
-
- do { $usedold{$1 || 0} = 1 if $_->{label} =~ /^old([^_]*)_/ } foreach @$entries;
- foreach (0..scalar keys %usedold) { exists $usedold{$_} or $freeold = $_ || '', last }
-
- foreach (@$entries) {
- if ($_->{label} eq $v->{label}) {
- compare_entries($_, $v) or return; #- avoid inserting it twice as another entry already exists !
- $_->{label} = "old${freeold}_$_->{label}";
- }
- }
- push @$entries, $v;
-}
-
-sub add_kernel {
- my ($prefix, $lilo, $version, $ext, $root, $v) = @_;
-
- #- new versions of yaboot don't handle symlinks
- my $ppcext = $ext;
- if (arch() =~ /ppc/) {
- $ext = "-$version";
- }
-
- log::l("adding vmlinuz$ext as vmlinuz-$version");
- -e "$prefix/boot/vmlinuz-$version" or log::l("unable to find kernel image $prefix/boot/vmlinuz-$version"), return;
- my $image = "/boot/vmlinuz" . ($ext ne "-$version" &&
- symlinkf("vmlinuz-$version", "$prefix/boot/vmlinuz$ext") ? $ext : "-$version");
- my $initrd = eval {
- mkinitrd($prefix, $version, "/boot/initrd-$version.img");
- "/boot/initrd" . ($ext ne "-$version" &&
- symlinkf("initrd-$version.img", "$prefix/boot/initrd$ext.img") ? $ext : "-$version") . ".img";
- };
- my $label = $ext =~ /-(default)/ ? $1 : "linux$ext";
-
- #- more yaboot concessions - PPC
- if (arch() =~ /ppc/) {
- $label = $ppcext =~ /-(default)/ ? $1 : "linux$ppcext";
- }
-
- add2hash($v,
- {
- type => 'image',
- root => "/dev/$root",
- label => $label,
- kernel_or_dev => $image,
- initrd => $initrd,
- append => $lilo->{perImageAppend},
- });
- add_entry($lilo->{entries}, $v);
- $v;
-}
-
-sub unpack_append {
- my ($s) = @_;
- my @l = split(' ', $s);
- [ grep { !/=/ } @l ], [ map { if_(/(.*?)=(.*)/, [$1, $2]) } @l ];
-}
-sub pack_append {
- my ($simple, $dict) = @_;
- join(' ', @$simple, map { "$_->[0]=$_->[1]" } @$dict);
-}
-
-sub append__mem_is_memsize { $_[0] =~ /^\d+[kM]?$/i }
-
-sub get_append {
- my ($b, $key) = @_;
- my (undef, $dict) = unpack_append($b->{perImageAppend});
- my @l = map { $_->[1] } grep { $_->[0] eq $key } @$dict;
-
- #- suppose we want the memsize
- @l = grep { append__mem_is_memsize($_) } @l if $key eq 'mem';
-
- log::l("more than one $key in $b->{perImageAppend}") if @l > 1;
- $l[0];
-}
-sub add_append {
- my ($b, $key, $val) = @_;
-
- foreach (\$b->{perImageAppend}, map { \$_->{append} } grep { $_->{type} eq 'image' } @{$b->{entries}}) {
- my ($simple, $dict) = unpack_append($$_);
- @$dict = grep { $_->[0] ne $key || $key eq 'mem' && append__mem_is_memsize($_->[1]) != append__mem_is_memsize($val) } @$dict;
- push @$dict, [ $key, $val ] if $val;
- $$_ = pack_append($simple, $dict);
- log::l("add_append: $$_");
- }
-}
-sub may_append {
- my ($b, $key, $val) = @_;
- add_append($b, $key, $val) if !get_append($b, $key);
-}
-
-sub configure_entry($$) {
- my ($prefix, $entry) = @_;
- if ($entry->{type} eq 'image') {
- my $specific_version;
- $entry->{kernel_or_dev} =~ /vmlinu.-(.*)/ and $specific_version = $1;
- readlink("$prefix/$entry->{kernel_or_dev}") =~ /vmlinu.-(.*)/ and $specific_version = $1;
-
- if ($specific_version) {
- $entry->{initrd} or $entry->{initrd} = "/boot/initrd-$specific_version.img";
- if (! -e "$prefix/$entry->{initrd}" || $::oem) {
- eval { mkinitrd($prefix, $specific_version, "$entry->{initrd}") };
- undef $entry->{initrd} if $@;
- }
- }
- }
- $entry;
-}
-
-sub dev2prompath { #- SPARC only
- my ($dev) = @_;
- my ($wd, $num) = $dev =~ /^(.*\D)(\d*)$/;
- require c;
- $dev = c::disk2PromPath($wd) and $dev = $dev =~ /^sd\(/ ? "$dev$num" : "$dev;$num";
- $dev;
-}
-
-sub get_kernels_and_labels {
- my ($prefix) = @_;
- my $dir = "$prefix/boot";
- my @l = grep { /^vmlinuz-/ } all($dir);
- my @kernels = grep { ! -l "$dir/$_" } @l;
-
- my @preferred = ('', 'secure', 'enterprise', 'smp');
- my %weights = map_index { $_ => $::i } @preferred;
-
- require pkgs;
- @kernels =
- sort { c::rpmvercmp($b->[1], $a->[1]) || $weights{$a->[2]} <=> $weights{$b->[2]} }
- map {
- if (my ($version, $ext) = /vmlinuz-((?:[\-.\d]*(?:mdk)?)*)(.*)/) {
- [ "$version$ext", $version, $ext ];
- } else {
- log::l("non recognised kernel name $_");
- ();
- }
- } @kernels;
-
- my %majors;
- foreach (@kernels) {
- push @{$majors{$1}}, $_ if $_->[1] =~ /^(2\.\d+)/
- }
- while (my ($major, $l) = each %majors) {
- $l->[0][1] = $major if @$l == 1;
- }
-
- my %labels;
- foreach (@kernels) {
- my ($complete_version, $version, $ext) = @$_;
- my $label = '';
- if (exists $labels{$label}) {
- $label = "-$ext";
- if (!$ext || $labels{$label}) {
- $label = "-$version$ext";
- }
- }
- $labels{$label} = $complete_version;
- }
- %labels;
-}
-
-sub suggest {
- my ($prefix, $lilo, $hds, $fstab, $vga_fb, $quiet) = @_;
- my $root_part = fsedit::get_root($fstab);
- my $root = isLoopback($root_part) ? "loop7" : $root_part->{device};
- my $boot = fsedit::get_root($fstab, 'boot')->{device};
- my $partition = first($boot =~ /\D*(\d*)/);
- #- PPC xfs module requires enlarged initrd
- my $xfsroot = isThisFs("xfs", $root_part);
-
- require c; c::initSilo() if arch() =~ /sparc/;
-
- my ($onmbr, $unsafe) = $lilo->{crushMbr} ? (1, 0) : suggest_onmbr($hds);
- add2hash_($lilo, arch() =~ /sparc/ ?
- {
- entries => [],
- timeout => 10,
- use_partition => 0, #- we should almost always have a whole disk partition.
- root => "/dev/$root",
- partition => $partition || 1,
- boot => $root eq $boot && "/boot", #- this helps for getting default partition for silo.
- } : arch() =~ /ppc/ ?
- {
- defaultos => "linux",
- entries => [],
- 'init-message' => "Welcome to Mandrake Linux!",
- delay => 30, #- OpenFirmware delay
- timeout => 50,
- enableofboot => 1,
- enablecdboot => 1,
- useboot => $boot,
- xfsroot => $xfsroot,
- } :
- {
- bootUnsafe => $unsafe,
- entries => [],
- timeout => $onmbr && 10,
- nowarn => 1,
- if_(arch() !~ /ia64/,
- lba32 => 1,
- boot => "/dev/" . ($onmbr ? $hds->[0]{device} : fsedit::get_root($fstab, 'boot')->{device}),
- map => "/boot/map",
- ),
- });
-
- if (!$lilo->{message} || $lilo->{message} eq "1") {
- $lilo->{message} = join('', cat_("$prefix/boot/message"));
- if (!$lilo->{message}) {
- my $msg_en =
-#-PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-__("Welcome to %s the operating system chooser!
-
-Choose an operating system in the list above or
-wait %d seconds for default boot.
-
-");
- my $msg = translate($msg_en);
- #- use the english version if more than 20% of 8bits chars
- $msg = $msg_en if int(grep { $_ & 0x80 } unpack "c*", $msg) / length($msg) > 0.2;
- $lilo->{message} = sprintf $msg, arch() =~ /sparc/ ? "SILO" : "LILO", $lilo->{timeout};
- }
- }
-
- add2hash_($lilo, { memsize => $1 }) if cat_("/proc/cmdline") =~ /\bmem=(\d+[KkMm]?)(?:\s.*)?$/;
- if (my ($s, $port, $speed) = cat_("/proc/cmdline") =~ /console=(ttyS(\d),(\d+)\S*)/) {
- log::l("serial console $s $port $speed");
- add_append($lilo, 'console' => $s);
- any::set_login_serial_console($prefix, $port, $speed);
- }
-
- my %labels = get_kernels_and_labels($prefix);
- $labels{''} or die "no kernel installed";
-
- while (my ($ext, $version) = each %labels) {
- my $entry = add_kernel($prefix, $lilo, $version, $ext, $root,
- {
- if_($vga_fb && $ext eq '', vga => $vga_fb), #- using framebuffer
- });
- $entry->{append} .= " quiet" if $vga_fb && $version !~ /smp|enterprise/ && $quiet;
-
- if ($vga_fb && $ext eq '') {
- add_kernel($prefix, $lilo, $version, $ext, $root, { label => 'linux-nonfb' });
- }
- }
- my $failsafe = add_kernel($prefix, $lilo, $labels{''}, '', $root, { label => 'failsafe' });
- $failsafe->{append} =~ s/devfs=mount/devfs=nomount/;
- $failsafe->{append} .= " failsafe";
-
- if (arch() =~ /sparc/) {
- #- search for SunOS, it could be a really better approach to take into account
- #- partition type for mounting point.
- my $sunos = 0;
- foreach (@$hds) {
- foreach (@{$_->{primary}{normal}}) {
- my $path = $_->{device} =~ m|^/| && $_->{device} !~ m|^/dev/| ? $_->{device} : dev2prompath($_->{device});
- add_entry($lilo->{entries},
- {
- type => 'other',
- kernel_or_dev => $path,
- label => "sunos" . ($sunos++ ? $sunos : ''),
- }) if $path && isSunOS($_) && type2name($_->{type}) =~ /root/i;
- }
- }
- } elsif (arch() =~ /ppc/) {
- #- if we identified a MacOS partition earlier - add it
- if (defined $partition_table::mac::macos_part) {
- add_entry($lilo->{entries},
- {
- label => "macos",
- kernel_or_dev => $partition_table::mac::macos_part
- });
- }
- } elsif (arch() !~ /ia64/) {
- #- search for dos (or windows) boot partition. Don't look in extended partitions!
- my %nbs;
- foreach (@$hds) {
- foreach (@{$_->{primary}{normal}}) {
- my $label = isNT($_) ? 'NT' : isDos($_) ? 'dos' : 'windows';
- add_entry($lilo->{entries},
- {
- type => 'other',
- kernel_or_dev => "/dev/$_->{device}",
- label => $label . ($nbs{$label}++ ? $nbs{$label} : ''),
- if_($_->{device} =~ /[1-4]$/,
- table => "/dev/$_->{rootDevice}"
- ),
- unsafe => 1
- }) if isNT($_) || isFat($_) && isFat({ type => fsedit::typeOfPart($_->{device}) });
- }
- }
- }
- foreach ('secure', 'enterprise', 'smp') {
- if (get_label("linux-$_", $lilo)) {
- $lilo->{default} ||= "linux-$_";
- last;
- }
- }
- $lilo->{default} ||= "linux";
-
- my %l = (
- yaboot => to_bool(arch() =~ /ppc/),
- silo => to_bool(arch() =~ /sparc/),
- lilo => to_bool(arch() !~ /sparc|ppc/) && !isLoopback(fsedit::get_root($fstab)),
- grub => to_bool(arch() !~ /sparc|ppc/ && !isRAID(fsedit::get_root($fstab))),
- loadlin => to_bool(arch() !~ /sparc|ppc/) && -e "/initrd/loopfs/lnx4win",
- );
- unless ($lilo->{methods}) {
- $lilo->{methods} ||= { map { $_ => 1 } grep { $l{$_} } keys %l };
- if ($lilo->{methods}{lilo} && -e "$prefix/boot/message-graphic") {
- $lilo->{methods}{lilo} = "lilo-graphic";
- exists $lilo->{methods}{grub} and $lilo->{methods}{grub} = undef;
- }
- }
-}
-
-sub suggest_floppy {
- my ($bootloader) = @_;
-
- my $floppy = detect_devices::floppy() or return;
- $floppy eq 'fd0' or log::l("suggest_floppy: not adding $floppy"), return;
-
- add_entry($bootloader->{entries},
- {
- type => 'other',
- kernel_or_dev => '/dev/fd0',
- label => 'floppy',
- unsafe => 1
- });
-}
-
-sub keytable($$) {
- my ($prefix, $f) = @_;
- local $_ = $f;
- if ($_ && !/\.klt$/) {
- $f = "/boot/$_.klt";
- run_program::rooted($prefix, "keytab-lilo.pl", ">", $f, $_) or undef $f;
- }
- $f && -r "$prefix/$f" && $f;
-}
-
-sub has_profiles { to_bool(get_label("office", $b)) }
-sub set_profiles {
- my ($b, $want_profiles) = @_;
-
- my $office = get_label("office", $b);
- if ($want_profiles xor $office) {
- my $e = get_label("linux", $b);
- if ($want_profiles) {
- push @{$b->{entries}}, { %$e, label => "office", append => "$e->{append} prof=Office" };
- $e->{append} .= " prof=Home";
- } else {
- # remove profiles
- $e->{append} =~ s/\s*prof=\w+//;
- @{$b->{entries}} = grep { $_ != $office } @{$b->{entries}};
- }
- }
-
-}
-
-sub get_of_dev($$) {
- my ($prefix, $unix_dev) = @_;
- #- don't care much for this - need to run ofpath rooted, and I need the result
- #- In test mode, just run on "/", otherwise you can't get to the /proc files
- if ($::testing) {
- $prefix = "";
- }
- run_program::rooted_or_die($prefix, "/usr/local/sbin/ofpath $unix_dev", ">", "/tmp/ofpath");
- open(FILE, "$prefix/tmp/ofpath") || die "Can't open $prefix/tmp/ofpath";
- my $of_dev = "";
- local $_ = "";
- while (<FILE>){
- $of_dev = $_;
- }
- chop($of_dev);
- my @del_file = ($prefix . "/tmp/ofpath");
- unlink (@del_file);
- log::l("OF Device: $of_dev");
- $of_dev;
-}
-
-sub install_yaboot($$$) {
- my ($prefix, $lilo, $fstab, $hds) = @_;
- $lilo->{prompt} = $lilo->{timeout};
-
- if ($lilo->{message}) {
- local *F;
- open F, ">$prefix/boot/message" and print F $lilo->{message} or $lilo->{message} = 0;
- }
- {
- local *F;
- local $\ = "\n";
- my $f = "$prefix/etc/yaboot.conf";
- open F, ">$f" or die "cannot create yaboot config file: $f";
- log::l("writing yaboot config to $f");
-
- print F "#yaboot.conf - generated by DrakX";
- print F "init-message=\"\\n$lilo->{'init-message'}\\n\"" if $lilo->{'init-message'};
-
- if ($lilo->{boot}) {
- print F "boot=$lilo->{boot}";
- my $of_dev = get_of_dev($prefix, $lilo->{boot});
- print F "ofboot=$of_dev";
- } else {
- die "no bootstrap partition defined."
- }
-
- $lilo->{$_} and print F "$_=$lilo->{$_}" foreach qw(delay timeout);
- print F "install=/usr/local/lib/yaboot/yaboot";
- print F "magicboot=/usr/local/lib/yaboot/ofboot";
- $lilo->{$_} and print F $_ foreach qw(enablecdboot enableofboot);
- $lilo->{$_} and print F "$_=$lilo->{$_}" foreach qw(defaultos default);
- #- print F "nonvram";
- my $boot = "/dev/" . $lilo->{useboot} if $lilo->{useboot};
-
- foreach (@{$lilo->{entries}}) {
-
- if ($_->{type} eq "image") {
- my $of_dev = '';
- if (($boot !~ /$_->{root}/) && $boot) {
- $of_dev = get_of_dev($prefix, $boot);
- print F "$_->{type}=$of_dev," . substr($_->{kernel_or_dev}, 5);
- } else {
- $of_dev = get_of_dev($prefix, $_->{root});
- print F "$_->{type}=$of_dev,$_->{kernel_or_dev}";
- }
- print F "\tlabel=", substr($_->{label}, 0, 15); #- lilo doesn't handle more than 15 char long labels
- print F "\troot=$_->{root}";
- if (($boot !~ /$_->{root}/) && $boot) {
- print F "\tinitrd=$of_dev," . substr($_->{initrd}, 5) if $_->{initrd};
- } else {
- print F "\tinitrd=$of_dev,$_->{initrd}" if $_->{initrd};
- }
- #- xfs module on PPC requires larger initrd - say 6MB?
- print F "\tinitrd-size=6144" if $lilo->{xfsroot};
- print F "\tappend=\" $_->{append}\"" if $_->{append};
- print F "\tread-write" if $_->{'read-write'};
- print F "\tread-only" if !$_->{'read-write'};
- } else {
- my $of_dev = get_of_dev($prefix, $_->{kernel_or_dev});
- print F "$_->{label}=$of_dev";
- }
- }
- }
- log::l("Installing boot loader...");
- my $f = "$prefix/tmp/of_boot_dev";
- my $of_dev = get_of_dev($prefix, $lilo->{boot});
- output($f, "$of_dev\n");
- $::testing and return;
- if (defined $install_steps_interactive::new_bootstrap) {
- run_program::run("hformat", "$lilo->{boot}") or die "hformat failed";
- }
- run_program::rooted_or_die($prefix, "/sbin/ybin", "2>", "/tmp/.error");
- unlink "$prefix/tmp/.error";
-}
-
-sub install_silo($$$) {
- my ($prefix, $silo, $fstab) = @_;
- my $boot = fsedit::get_root($fstab, 'boot')->{device};
- my ($wd, $num) = $boot =~ /^(.*\D)(\d*)$/;
-
- #- setup boot promvars for.
- require c;
- if ($boot =~ /^md/) {
- #- get all mbr devices according to /boot are listed,
- #- then join all zero based partition translated to prom with ';'.
- #- keep bootdev with the first of above.
- log::l("/boot is present on raid partition which is not currently supported for promvars");
- } else {
- if (!$silo->{use_partition}) {
- foreach (@$fstab) {
- if (!$_->{start} && $_->{device} =~ /$wd/) {
- $boot = $_->{device};
- log::l("found a zero based partition in $wd as $boot");
- last;
- }
- }
- }
- $silo->{bootalias} = c::disk2PromPath($boot);
- $silo->{bootdev} = $silo->{bootalias};
- log::l("preparing promvars for device=$boot");
- }
- c::hasAliases() or log::l("clearing promvars alias as non supported"), $silo->{bootalias} = '';
-
- if ($silo->{message}) {
- local *F;
- open F, ">$prefix/boot/message" and print F $silo->{message} or $silo->{message} = 0;
- }
- {
- local *F;
- local $\ = "\n";
- my $f = "$prefix/boot/silo.conf"; #- always write the silo.conf file in /boot ...
- symlinkf "../boot/silo.conf", "$prefix/etc/silo.conf"; #- ... and make a symlink from /etc.
- open F, ">$f" or die "cannot create silo config file: $f";
- log::l("writing silo config to $f");
-
- $silo->{$_} and print F "$_=$silo->{$_}" foreach qw(partition root default append);
- $silo->{$_} and print F $_ foreach qw(restricted);
- print F "password=", $silo->{password} if $silo->{restricted} && $silo->{password}; #- also done by msec
- print F "timeout=", round(10 * $silo->{timeout}) if $silo->{timeout};
- print F "message=$silo->{boot}/message" if $silo->{message};
-
- foreach (@{$silo->{entries}}) {#my ($v, $e) = each %{$silo->{entries}}) {
- my $type = "$_->{type}=$_->{kernel_or_dev}"; $type =~ s|/boot|$silo->{boot}|;
- print F $type;
- print F "\tlabel=$_->{label}";
-
- if ($_->{type} eq "image") {
- my $initrd = $_->{initrd}; $initrd =~ s|/boot|$silo->{boot}|;
- print F "\tpartition=$_->{partition}" if $_->{partition};
- print F "\troot=$_->{root}" if $_->{root};
- print F "\tinitrd=$initrd" if $_->{initrd};
- print F "\tappend=\"$1\"" if $_->{append} =~ /^\s*"?(.*?)"?\s*$/;
- print F "\tread-write" if $_->{'read-write'};
- print F "\tread-only" if !$_->{'read-write'};
- }
- }
- }
- log::l("Installing boot loader...");
- $::testing and return;
- run_program::rooted($prefix, "silo", "2>", "/tmp/.error", $silo->{use_partition} ? ("-t") : ()) or
- run_program::rooted_or_die($prefix, "silo", "2>", "/tmp/.error", "-p", "2", $silo->{use_partition} ? ("-t") : ());
- unlink "$prefix/tmp/.error";
-
- #- try writing in the prom.
- log::l("setting promvars alias=$silo->{bootalias} bootdev=$silo->{bootdev}");
- require c;
- c::setPromVars($silo->{bootalias}, $silo->{bootdev});
-}
-
-sub make_label_lilo_compatible {
- my ($label) = @_;
- $label = substr($label, 0, 15); #- lilo doesn't handle more than 15 char long labels
- $label =~ s/\s/_/g; #- lilo doesn't like spaces
- $label;
-}
-
-sub write_lilo_conf {
- my ($prefix, $lilo, $fstab, $hds) = @_;
- $lilo->{prompt} = $lilo->{timeout};
-
- delete $lilo->{linear} if $lilo->{lba32};
-
- my $file2fullname = sub {
- my ($file) = @_;
- if (arch() =~ /ia64/) {
- (my $part, $file) = fsedit::file2part($prefix, $fstab, $file);
- my %hds = map_index { $_ => "hd$::i" } map { $_->{device} }
- sort { isFat($b) <=> isFat($a) || $a->{device} cmp $b->{device} } fsedit::get_fstab(@$hds);
- %hds->{$part->{device}} . ":" . $file;
- } else {
- $file
- }
- };
-
- my %bios2dev = map_index { $::i => $_ } dev2bios($hds, $lilo->{first_hd_device} || $lilo->{boot});
- my %dev2bios = reverse %bios2dev;
-
- if (is_empty_hash_ref($lilo->{bios} ||= {})) {
- my $dev = $hds->[0]{device};
- if ($dev2bios{$dev}) {
- log::l("Since we're booting on $bios2dev{0}, make it bios=0x80, whereas $dev is now " . (0x80 + $dev2bios{$dev}));
- $lilo->{bios}{"/dev/$bios2dev{0}"} = '0x80';
- $lilo->{bios}{"/dev/$dev"} = sprintf("0x%x", 0x80 + $dev2bios{$dev});
- }
- foreach (0 .. 3) {
- my ($letter) = $bios2dev{$_} =~ /hd([^ac])/; #- at least hda and hdc are handled correctly :-/
- next if $lilo->{bios}{"/dev/$bios2dev{$_}"} || !$letter;
- next if
- $_ > 0 #- always print if first disk is hdb, hdd, hde...
- && $bios2dev{$_ - 1} eq "hd" . chr(ord($letter) - 1);
- #- no need to help lilo with hdb (resp. hdd, hdf...)
- log::l("Helping lilo: $bios2dev{$_} must be " . (0x80 + $_));
- $lilo->{bios}{"/dev/$bios2dev{$_}"} = sprintf("0x%x", 0x80 + $_);
- }
- }
-
- {
- local *F;
- local $\ = "\n";
- my $f = arch() =~ /ia64/ ? "$prefix/boot/efi/elilo.conf" : "$prefix/etc/lilo.conf";
-
- open F, ">$f" or die "cannot create lilo config file: $f";
- log::l("writing lilo config to $f");
-
- chmod 0600, $f if $lilo->{password};
-
- #- normalize: RESTRICTED is only valid if PASSWORD is set
- delete $lilo->{restricted} if !$lilo->{password};
-
- local $lilo->{default} = make_label_lilo_compatible($lilo->{default});
- $lilo->{$_} and print F "$_=$lilo->{$_}" foreach qw(boot map install vga default keytable);
- $lilo->{$_} and print F $_ foreach qw(linear lba32 compact prompt nowarn restricted);
- print F "append=\"$lilo->{append}\"" if $lilo->{append};
- print F "password=", $lilo->{password} if $lilo->{password}; #- also done by msec
- print F "timeout=", round(10 * $lilo->{timeout}) if $lilo->{timeout};
- print F "serial=", $1 if get_append($lilo, 'console') =~ /ttyS(.*)/;
-
- print F "message=/boot/message" if (arch() !~ /ia64/);
- print F "menu-scheme=wb:bw:wb:bw" if (arch() !~ /ia64/);
-
- print F "ignore-table" if grep { $_->{unsafe} && $_->{table} } @{$lilo->{entries}};
-
- while (my ($dev, $bios) = each %{$lilo->{bios}}) {
- print F "disk=$dev bios=$bios";
- }
-
- foreach (@{$lilo->{entries}}) {
- print F "$_->{type}=", $file2fullname->($_->{kernel_or_dev});
- print F "\tlabel=", make_label_lilo_compatible($_->{label});
-
- if ($_->{type} eq "image") {
- print F "\troot=$_->{root}" if $_->{root};
- print F "\tinitrd=", $file2fullname->($_->{initrd}) if $_->{initrd};
- print F "\tappend=\"$_->{append}\"" if $_->{append};
- print F "\tvga=$_->{vga}" if $_->{vga};
- print F "\tread-write" if $_->{'read-write'};
- print F "\tread-only" if !$_->{'read-write'};
- } else {
- print F "\ttable=$_->{table}" if $_->{table};
- print F "\tunsafe" if $_->{unsafe} && !$_->{table};
-
- if (my ($dev) = $_->{table} =~ m|/dev/(.*)|) {
- if ($dev2bios{$dev}) {
- #- boot off the nth drive, so reverse the BIOS maps
- my $nb = sprintf("0x%x", 0x80 + $dev2bios{$dev});
- $_->{mapdrive} ||= { '0x80' => $nb, $nb => '0x80' };
- }
- }
- while (my ($from, $to) = each %{$_->{mapdrive} || {}}) {
- print F "\tmap-drive=$from";
- print F "\t to=$to";
- }
- }
- }
- }
-}
-
-sub install_lilo {
- my ($prefix, $lilo, $fstab, $hds) = @_;
-
- $lilo->{install} = 'text' if $lilo->{methods}{lilo} eq 'lilo-text';
- output("$prefix/boot/message-text", $lilo->{message}) if $lilo->{message};
- symlinkf "message-" . ($lilo->{methods}{lilo} eq 'lilo-graphic' ? 'graphic' : 'text'), "$prefix/boot/message";
-
- write_lilo_conf($prefix, $lilo, $fstab, $hds);
-
- log::l("Installing boot loader...");
- $::testing and return;
- run_program::rooted_or_die($prefix, "lilo", "2>", "/tmp/.error") if (arch() !~ /ia64/);
- unlink "$prefix/tmp/.error";
-}
-
-sub dev2bios {
- my ($hds, $where) = @_;
- $where =~ s|/dev/||;
- my @dev = map { $_->{device} } @$hds;
- member($where, @dev) or ($where) = @dev; #- if not on mbr,
-
- s/h(d[e-g])/x$1/ foreach $where, @dev; #- emulates ultra66 as xd_
-
- my $start = substr($where, 0, 2);
-
- my $translate = sub {
- $_ eq $where ? "aaa" : #- if exact match, value it first
- /^$start(.*)/ ? "ad$1" : #- if same class (ide/scsi/ultra66), value it before other classes
- $_;
- };
- @dev = map { $_->[0] }
- sort { $a->[1] cmp $b->[1] }
- map { [ $_, &$translate ] } @dev;
-
- s/x(d.)/h$1/ foreach @dev; #- switch back;
-
- @dev;
-}
-
-sub dev2grub {
- my ($dev, $dev2bios) = @_;
- $dev =~ m|^(/dev/)?(...)(.*)$| or die "dev2grub (bad device $dev), caller is " . join(":", caller());
- my $grub = $dev2bios->{$2} or die "dev2grub ($2)";
- "($grub" . ($3 && "," . ($3 - 1)) . ")";
-}
-
-sub write_grub_config {
- my ($prefix, $lilo, $fstab, $hds) = @_;
- my %dev2bios = (
- (map_index { $_ => "fd$::i" } detect_devices::floppies_dev()),
- (map_index { $_ => "hd$::i" } dev2bios($hds, $lilo->{first_hd_device} || $lilo->{boot})),
- );
-
- {
- my %bios2dev = reverse %dev2bios;
- output "$prefix/boot/grub/device.map",
- join '', map { "($_) /dev/$bios2dev{$_}\n" } sort keys %bios2dev;
- }
- my $bootIsReiser = isThisFs("reiserfs", fsedit::get_root($fstab, 'boot'));
- my $file2grub = sub {
- my ($part, $file) = fsedit::file2part($prefix, $fstab, $_[0], 'keep_simple_symlinks');
- dev2grub($part->{device}, \%dev2bios) . $file;
- };
- {
- local *F;
- local $\ = "\n";
- my $f = "$prefix/boot/grub/menu.lst";
- open F, ">$f" or die "cannot create grub config file: $f";
- log::l("writing grub config to $f");
-
- $lilo->{$_} and print F "$_ $lilo->{$_}" foreach qw(timeout);
-
- print F "color black/cyan yellow/cyan";
- print F "i18n ", $file2grub->("/boot/grub/messages");
- print F "keytable ", $file2grub->($lilo->{keytable}) if $lilo->{keytable};
- print F "serial --unit=$1 --speed=$2\nterminal --timeout=" . ($lilo->{timeout} || 0) . " console serial" if get_append($lilo, 'console') =~ /ttyS(\d),(\d+)/;
-
- #- since we use notail in reiserfs, altconfigfile is broken :-(
- unless ($bootIsReiser) {
- print F "altconfigfile ", $file2grub->(my $once = "/boot/grub/menu.once");
- output "$prefix$once", " " x 100;
- }
-
- map_index {
- print F "default $::i" if $_->{label} eq $lilo->{default};
- } @{$lilo->{entries}};
-
- foreach (@{$lilo->{entries}}) {
- print F "\ntitle $_->{label}";
-
- if ($_->{type} eq "image") {
- my $vga = $_->{vga} || $lilo->{vga};
- printf F "kernel %s root=%s %s%s%s\n",
- $file2grub->($_->{kernel_or_dev}),
- $_->{root} =~ /loop7/ ? "707" : $_->{root}, #- special to workaround bug in kernel (see #ifdef CONFIG_BLK_DEV_LOOP)
- $_->{append},
- $_->{'read-write'} && " rw",
- $vga && $vga ne "normal" && " vga=$vga";
- print F "initrd ", $file2grub->($_->{initrd}) if $_->{initrd};
- } else {
- print F "root ", dev2grub($_->{kernel_or_dev}, \%dev2bios);
- if ($_->{kernel_or_dev} !~ /fd/) {
- #- boot off the second drive, so reverse the BIOS maps
- $_->{mapdrive} ||= { '0x80' => '0x81', '0x81' => '0x80' }
- if $_->{table} && ($lilo->{first_hd_device} || $lilo->{boot}) !~ /$_->{table}/;
-
- map_each { print F "map ($::b) ($::a)" } %{$_->{mapdrive} || {}};
-
- print F "makeactive";
- }
- print F "chainloader +1";
- }
- }
- }
- my $hd = fsedit::get_root($fstab, 'boot')->{rootDevice};
-
- my $dev = dev2grub($lilo->{first_hd_device} || $lilo->{boot}, \%dev2bios);
- my ($s1, $s2, $m) = map { $file2grub->("/boot/grub/$_") } qw(stage1 stage2 menu.lst);
- my $f = "/boot/grub/install.sh";
- output "$prefix$f",
-"grub --device-map=/boot/grub/device.map --batch <<EOF
-install $s1 d $dev $s2 p $m
-quit
-EOF
-";
-
- output "$prefix/boot/grub/messages", map { substr(translate($_) . "\n", 0, 78) } ( #- ensure the translated messages are not too big the hard way
-#-PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#-PO: and keep them smaller than 79 chars long
-__("Welcome to GRUB the operating system chooser!"),
-#-PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#-PO: and keep them smaller than 79 chars long
-__("Use the %c and %c keys for selecting which entry is highlighted."),
-#-PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#-PO: and keep them smaller than 79 chars long
-__("Press enter to boot the selected OS, \'e\' to edit the"),
-#-PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#-PO: and keep them smaller than 79 chars long
-__("commands before booting, or \'c\' for a command-line."),
-#-PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#-PO: and keep them smaller than 79 chars long
-__("The highlighted entry will be booted automatically in %d seconds."),
-);
-
- my $e = "$prefix/boot/.enough_space";
- output $e, 1; -s $e or die _("not enough room in /boot");
- unlink $e;
- $f;
-}
-
-sub install_grub {
- my ($prefix, $lilo, $fstab, $hds) = @_;
-
- my $f = write_grub_config($prefix, $lilo, $fstab, $hds);
-
- log::l("Installing boot loader...");
- $::testing and return;
- symlink "$prefix/boot", "/boot";
- run_program::run_or_die("sh", $f);
- unlink "$prefix/tmp/.error.grub", "/boot";
-}
-
-sub lnx4win_file {
- my $lilo = shift;
- map { local $_ = $_; s,/,\\,g; "$lilo->{boot_drive}:\\lnx4win$_" } @_;
-}
-
-sub loadlin_cmd {
- my ($prefix, $lilo) = @_;
- my $e = get_label("linux", $lilo) || first(grep { $_->{type} eq "image" } @{$lilo->{entries}});
-
- cp_af("$prefix$e->{kernel_or_dev}", "$prefix/boot/vmlinuz") unless -e "$prefix/boot/vmlinuz";
- cp_af("$prefix$e->{initrd}", "$prefix/boot/initrd.img") unless -e "$prefix/boot/initrd.img";
-
- $e->{label}, sprintf"%s %s initrd=%s root=%s $e->{append}",
- lnx4win_file($lilo, "/loadlin.exe", "/boot/vmlinuz", "/boot/initrd.img"),
- $e->{root} =~ /loop7/ ? "0707" : $e->{root}; #- special to workaround bug in kernel (see #ifdef CONFIG_BLK_DEV_LOOP)
-}
-
-sub install_loadlin {
- my ($prefix, $lilo, $fstab) = @_;
-
- my $boot;
- ($boot) = grep { $lilo->{boot} eq "/dev/$_->{device}" } @$fstab;
- ($boot) = grep { loopback::carryRootLoopback($_) } @$fstab unless $boot && $boot->{device_windobe};
- ($boot) = grep { isFat($_) } @$fstab unless $boot && $boot->{device_windobe};
- log::l("loadlin device is $boot->{device} (windobe $boot->{device_windobe})");
- $lilo->{boot_drive} = $boot->{device_windobe};
-
- my ($winpart) = grep { $_->{device_windobe} eq 'C' } @$fstab;
- log::l("winpart is $winpart->{device}");
- my $winhandle = any::inspect($winpart, $prefix, 'rw');
- my $windrive = $winhandle->{dir};
- log::l("windrive is $windrive");
-
- my ($label, $cmd) = loadlin_cmd($prefix, $lilo);
-
- #install_loadlin_config_sys($lilo, $windrive, $label, $cmd);
- #install_loadlin_desktop($lilo, $windrive);
-
- output "/initrd/loopfs/lnx4win/linux.bat", unix2dos(
-'@echo off
-echo Mandrake Linux
-smartdrv /C
-' . "$cmd\n");
-
-}
-
-sub install_loadlin_config_sys {
- my ($lilo, $windrive, $label, $cmd) = @_;
-
- my $config_sys = "$windrive/config.sys";
- local $_ = cat_($config_sys);
- output "$windrive/config.mdk", $_ if $_;
-
- my $timeout = $lilo->{timeout} || 1;
-
- $_ = "
-[Menu]
-menuitem=Windows
-menudefault=Windows,$timeout
-
-[Windows]
-" . $_ if !/^\Q[Menu]/m;
-
- #- remove existing entry
- s/^menuitem=$label\s*//mi;
- s/\n\[$label\].*?(\n\[|$)/$1/si;
-
- #- add entry
- s/(.*\nmenuitem=[^\n]*)/$1\nmenuitem=$label/s;
-
- $_ .= "
-[$label]
-shell=$cmd
-";
- output $config_sys, unix2dos($_);
-}
-
-sub install_loadlin_desktop {
- my ($lilo, $windrive) = @_;
- my $windir = lc(cat_("$windrive/msdos.sys") =~ /^WinDir=.:\\(\S+)/m ? $1 : "windows");
-
-#-PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#-PO: so you may need to put them in English or in a different language if MS-windows doesn't exist in your language
- foreach (__("Desktop"),
-#-PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
- __("Start Menu")) {
- my $d = "$windrive/$windir/" . translate($_);
- -d $d or $d = "$windrive/$windir/$_";
- -d $d or log::l("can't find windows $d directory"), next;
- output "$d/Linux4Win.url", unix2dos(sprintf
-q([InternetShortcut]
-URL=file:\lnx4win\lnx4win.exe
-WorkingDirectory=%s
-IconFile=%s
-IconIndex=0
-), lnx4win_file($lilo, "/", "/lnx4win.ico"));
- }
-}
-
-
-sub install {
- my ($prefix, $lilo, $fstab, $hds) = @_;
-
- if (my ($p) = grep { $lilo->{boot} =~ /\Q$_->{device}/ } @$fstab) {
- die _("You can't install the bootloader on a %s partition\n", partition_table::type2fs($p))
- if isThisFs('xfs', $p);
- }
- $lilo->{keytable} = keytable($prefix, $lilo->{keytable});
-
- if (exists $lilo->{methods}{grub}) {
- #- when lilo is selected, we don't try to install grub.
- #- just create the config file in case it may be useful
- eval { write_grub_config($prefix, $lilo, $fstab, $hds) };
- }
-
- my %l = grep_each { $::b } %{$lilo->{methods}};
- my @rcs = map {
- c::is_secure_file('/tmp/.error') or die "can't ensure a safe /tmp/.error";
- my $f = $bootloader::{"install_$_"} or die "unknown bootloader method $_";
- eval { $f->(@_) };
- $@;
- } reverse sort keys %l; #- reverse sort for having grub installed after lilo if both are there.
-
- return if grep { !$_ } @rcs; #- at least one worked?
- die first(map { $_ } @rcs);
-}
-
-#-######################################################################################
-#- Wonderful perl :(
-#-######################################################################################
-1; #
diff --git a/perl-install/bootlook.pm b/perl-install/bootlook.pm
deleted file mode 100644
index 8747db249..000000000
--- a/perl-install/bootlook.pm
+++ /dev/null
@@ -1,321 +0,0 @@
-#!/usr/bin/perl -w
-
-# Control-center
-
-# Copyright (C) 2001 MandrakeSoft
-# Yves Duret <yduret at mandrakesoft.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.
-#
-# 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 MDK::Common;
-use Gtk;
-use Config;
-init Gtk;
-use POSIX;
-use lib qw(/usr/lib/libDrakX);
-use interactive;
-use standalone;
-use any;
-use bootloader;
-use fs;
-use my_gtk qw(:helpers :wrappers :ask);
-
-$::isEmbedded = ($::XID, $::CCPID) = "@ARGV" =~/--embedded (\S*) (\S*)/;
-if ($::isEmbedded) {
- print "EMBED\n";
- print "XID : $::XID\n";
- print "CCPID : $::CCPID\n";
-}
-
-my $in = 'interactive'->vnew('su', 'default');
-local $_ = join '', @ARGV;
-
-/-h/ and die _("no help implemented yet.\n");
-/-version/ and die 'version: $Id$'."\n";
-
-my @winm;
-my @usernames;
-parse_etc_passwd();
-
-my $x_mode = isXlaunched();
-my $a_mode = (-e "/etc/aurora/Monitor") ? 1 : 0;
-my $l_mode = isAutologin();
-my %auto_mode = get_autologin("");
-my $inmain = 0;
-my $lilogrub = chomp_(`detectloader -q`);
-
-my $window = $::isEmbedded ? new Gtk::Plug ($::XID) : new Gtk::Window ("toplevel");
-$window->signal_connect(delete_event => sub { $::isEmbedded ? kill(USR1, $::CCPID) : Gtk->exit(0) });
-$window->set_title(_("Boot Style Configuration") );
-$window->border_width(2);
-#$window->realize;
-
-# drakX mode
-my ($t_pixmap, $t_mask) = gtkcreate_png("tradi.png");
-my ($h_pixmap, $h_mask) = gtkcreate_png("hori.png");
-my ($v_pixmap, $v_mask) = gtkcreate_png("verti.png");
-my ($g_pixmap, $g_mask) = gtkcreate_png("gmon.png");
-my ($c_pixmap, $c_mask) = gtkcreate_png("categ.png");
-
-# a pixmap widget to contain the pixmap
-my $pixmap = new Gtk::Pixmap($h_pixmap, $h_mask);
-
-### menus definition
-# the menus are not shown
-# but they provides shiny shortcut like C-q
-my @menu_items = ( { path => _("/_File"), type => '<Branch>' },
- { path => _("/File/_Quit"), accelerator => _("<control>Q"), callback => sub { $::isEmbedded ? kill(USR1, $::CCPID) : Gtk->exit(0) } },
- );
-my $menubar = get_main_menu( $window );
-######### menus end
-
-my $user_combo = new Gtk::Combo;
-$user_combo->set_popdown_strings(@usernames);
-$user_combo->entry->set_text($auto_mode{autologin}) if ($auto_mode{autologin});
-my $desktop_combo =new Gtk::Combo;
-$desktop_combo->set_popdown_strings(get_wm());
-$desktop_combo->entry->set_text($auto_mode{desktop}) if ($auto_mode{desktop});
-my $a_c_button = new Gtk::RadioButton (_("NewStyle Categorizing Monitor"));
-my $a_h_button = new Gtk::RadioButton _("NewStyle Monitor"), $a_c_button;
-my $a_v_button = new Gtk::RadioButton _("Traditional Monitor"), $a_c_button;
-my $a_g_button = new Gtk::RadioButton _("Traditional Gtk+ Monitor"),$a_c_button ;
-my $a_button = new Gtk::CheckButton(_("Launch Aurora at boot time"));
-my $a_box = new Gtk::VBox(0, 0);
-my $x_box = new Gtk::VBox(0, 0);
-my $disp_mode = arch() =~ /ppc/ ? _("Yaboot mode") : _("Lilo/grub mode");
-gtkadd($window,
- gtkpack__ (my $global_vbox = new Gtk::VBox(0,0),
- gtkadd (new Gtk::Frame ("$disp_mode"),
-# gtkpack__(new Gtk::VBox(0,0),
- (gtkpack_(gtkset_border_width(new Gtk::HBox(0, 0),5),
- 1,_("You are currently using %s as your boot manager.
-Click on Configure to launch the setup wizard.", $lilogrub),
- 0,gtksignal_connect(new Gtk::Button (_("Configure")), clicked => $::lilo_choice),
- )),
-# "" #we need some place under the button -- replaced by gtkset_border_width( for the moment
-# )
-
- ),
- # aurora
-# gtkadd (new Gtk::Frame (_("Boot mode")),
-# gtkpack__ (new Gtk::HBox(0,0),
-# gtkpack__ (new Gtk::VBox(0, 5),
-# gtksignal_connect ($a_button, clicked => sub {
-# if ($inmain) {
-# $a_box->set_sensitive(!$a_mode);
-# $a_mode = !$a_mode;
-# if ($a_mode) {
-# $pixmap->set($c_pixmap, $c_mask) if $a_c_button->get_active();
-# $pixmap->set($h_pixmap, $h_mask) if $a_h_button->get_active();
-# $pixmap->set($v_pixmap, $v_mask) if $a_v_button->get_active();
-# $pixmap->set($g_pixmap, $g_mask) if $a_g_button->get_active();
-# } else {
-# $pixmap->set($t_pixmap, $t_mask);
-# }
-# }
-# }),
-# gtkpack__ ( gtkset_sensitive ($a_box, $a_mode),
-# gtksignal_connect ($a_c_button,clicked => sub{$pixmap->set($c_pixmap, $c_mask)}),
-# gtksignal_connect ($a_h_button,clicked => sub{$pixmap->set($h_pixmap, $h_mask)}),
-# gtksignal_connect ($a_v_button,clicked => sub{$pixmap->set($v_pixmap, $v_mask)}),
-# gtksignal_connect ($a_g_button,clicked => sub{$pixmap->set($g_pixmap, $g_mask)})
-# )
-# ),
-# gtkpack__ (new Gtk::HBox(0,0), $pixmap)
-# )
-# ),
- # X
- gtkadd (new Gtk::Frame (_("System mode")),
- gtkpack__ (new Gtk::VBox(0, 5),
- gtksignal_connect(gtkset_active(new Gtk::CheckButton (_("Launch the graphical environment when your system starts")), $x_mode ), clicked => sub {
- $x_box->set_sensitive(!$x_mode);
- $x_mode = !$x_mode;
- }),
- gtkpack__ (gtkset_sensitive ($x_box, $x_mode),
- gtkset_active($x_no_button = new Gtk::RadioButton (_("No, I don't want autologin")), !$l_mode),
- gtkpack__ (new Gtk::HBox(0, 10),
- gtkset_active($x_yes_button = new Gtk::RadioButton((_("Yes, I want autologin with this (user, desktop)")), $x_no_button), $l_mode),
- gtkpack__ (new Gtk::VBox(0, 10),
- $user_combo,
- $desktop_combo
- )
- )
- )
- )
- ),
- gtkadd (gtkset_layout(new Gtk::HButtonBox,-end),
- gtksignal_connect(new Gtk::Button (_("OK")), clicked=>sub{updateInit();updateAutologin();updateAurora();$::isEmbedded ? kill(USR1,$::CCPID) : Gtk->exit(0)}),
- gtksignal_connect(new Gtk::Button (_("Cancel")), clicked => sub {$::isEmbedded ? kill(USR1, $::CCPID) : Gtk->exit(0)})
- )
- )
- );
-
-$a_button->set_active($a_mode); # up == false == "0"
-if ($a_mode) {
- my $a = readlink "/etc/aurora/Monitor";
- $a =~ s#/lib/aurora/Monitors/##;
- if ($a eq "NewStyle-Categorizing-WsLib") {$a_c_button->set_active(1); $pixmap->set($c_pixmap, $c_mask);}
- if ($a eq "NewStyle-WsLib") {$a_h_button->set_active(1); $pixmap->set($h_pixmap, $h_mask);}
- if ($a eq "Traditional-WsLib") {$a_v_button->set_active(1); $pixmap->set($v_pixmap, $v_mask);}
- if ($a eq "Traditional-Gtk+") {$a_g_button->set_active(1); $pixmap->set($g_pixmap, $g_mask);}
-} else {
- $pixmap->set($t_pixmap, $t_mask);
-}
-
-$window->show_all();
-Gtk->main_iteration while Gtk->events_pending;
-$::isEmbedded and kill USR2, $::CCPID;
-$inmain=1;
-Gtk->main;
-Gtk->exit(0);
-
-#-------------------------------------------------------------
-# get user names to put in combo
-#-------------------------------------------------------------
-
-sub parse_etc_passwd
-{
- my ($uname, $uid);
- setpwent();
- do {
- @user_info = getpwent();
- ($uname, $uid) = @user_info[0,2];
- push (@usernames, $uname) if ($uid > 500) and !($uname eq "nobody");
- } while (@user_info);
-}
-
-sub get_wm
-{
- @winm = (split (' ', `/usr/sbin/chksession -l`));
-}
-
-#-------------------------------------------------------------
-# menu callback functions
-#-------------------------------------------------------------
-
-sub print_hello {
- print( "mcdtg !\n" );
-}
-
-sub get_main_menu {
- my ( $window ) = @_;
-
- my $accel_group = new Gtk::AccelGroup();
- my $item_factory = new Gtk::ItemFactory( 'Gtk::MenuBar', '<main>', $accel_group );
- $item_factory->create_items( @menu_items );
- $window->add_accel_group( $accel_group );
- return ( $item_factory->get_widget( '<main>' ) );
-}
-
-#-------------------------------------------------------------
-# launch X functions
-#-------------------------------------------------------------
-
-sub isXlaunched {
- my $line;
- open INITTAB, "/etc/inittab" or die _("can not open /etc/inittab for reading: %s", $!);
- while (<INITTAB>) {
- if (/id:([1-6]):initdefault:/) { $line = $_; last; }
- }
- close INITTAB;
- $line =~ s/id:([1-6]):initdefault:/$1/;
- return ($line-3);
-}
-
-sub updateInit {
- my $runlevel = ($x_mode) ? 5 : 3;
- substInFile { s/^id:\d:initdefault:\s*$/id:$runlevel:initdefault:\n/ } "/etc/inittab";
-}
-
-#-------------------------------------------------------------
-# aurora functions
-#-------------------------------------------------------------
-
-
-
-sub updateAurora {
- if ($a_mode) {
- if ($a_c_button->get_active()) {
- symlinkf("/lib/aurora/Monitors/NewStyle-Categorizing-WsLib", "/etc/aurora/Monitor");
- $in->do_pkgs->install(q(Aurora-Monitor-NewStyle-Categorizing-WsLib)) if !(-e "/lib/aurora/Monitors/NewStyle-Categorizing-WsLib");
- }
- if ($a_h_button->get_active()) {
- symlinkf("/lib/aurora/Monitors/NewStyle-WsLib", "/etc/aurora/Monitor");
- $in->do_pkgs->install(q(Aurora-Monitor-NewStyle-WsLib)) if !(-e "/lib/aurora/Monitors/NewStyle-WsLib");
- }
- if ($a_v_button->get_active()) {
- symlinkf("/lib/aurora/Monitors/Traditional-WsLib", "/etc/aurora/Monitor");
- $in->do_pkgs->install(q(Aurora-Monitor-Traditional-WsLib)) if !(-e "/lib/aurora/Monitors/Traditional-WsLib");
- }
- if ($a_g_button->get_active()) {
- symlinkf("/lib/aurora/Monitors/Traditional-Gtk+", "/etc/aurora/Monitor");
- $in->do_pkgs->install(q(Aurora-Monitor-Traditional-Gtk+)) if !(-e "/lib/aurora/Monitors/Traditional-Gtk+");
- }
- } else {
- unlink "/etc/aurora/Monitor";
- }
-
-}
-
-#-------------------------------------------------------------
-# launch autologin functions
-#-------------------------------------------------------------
-
-sub isAutologin {
- my $line;
- open AUTOLOGIN, "/etc/sysconfig/autologin";
- while (<AUTOLOGIN>) {
- if (/AUTOLOGIN=(yes|no)/) { $line = $_; last; }
- }
- close AUTOLOGIN;
- $line =~ s/AUTOLOGIN=(yes|no)/$1/;
- chomp ($line);
- $line = ($line eq "yes");
- my %au = get_autologin('');
- return ($line && defined $au{autologin});
-}
-
-sub get_autologin {
- my ($prefix) = @_;
- my %o;
- my %l = getVarsFromSh("$prefix/etc/sysconfig/autologin");
-
- $o{autologin} = $l{USER};
- %l = getVarsFromSh("$prefix/etc/sysconfig/desktop");
- $o{desktop} = $l{DESKTOP};
- %o;
-}
-
-sub updateAutologin {
- my ($usern,$deskt)=($user_combo->entry->get_text(), $desktop_combo->entry->get_text());
- if ($x_yes_button->get_active()) {
- $in->do_pkgs->install('autologin') if $x_mode;
- set_autologin('',$usern,$deskt);
- } else {
- set_autologin('',undef) if ($x_no_button->get_active());
- }
-}
-
-sub set_autologin {
- my ($prefix, $user, $desktop) = @_;
- output "$prefix/etc/sysconfig/desktop", uc($desktop), "\n" if $user;
- setVarsInSh("$prefix/etc/sysconfig/autologin",
- { USER => $user, AUTOLOGIN => bool2yesno($user), EXEC => "/usr/X11R6/bin/startx" });
- chmod 0600, "$prefix/etc/sysconfig/autologin";
-# log::l("cat $prefix/etc/sysconfig/autologin: ", cat_("$prefix/etc/sysconfig/autologin"));
-}
-
-
diff --git a/perl-install/c.pm b/perl-install/c.pm
deleted file mode 100644
index aa03b9b1e..000000000
--- a/perl-install/c.pm
+++ /dev/null
@@ -1,19 +0,0 @@
-package c; # $Id$
-
-use vars qw($AUTOLOAD);
-
-use c::stuff;
-use MDK::Common;
-
-sub AUTOLOAD {
- $AUTOLOAD =~ /::(.*)/;
- my @l = eval { &{$c::stuff::{$1}} };
- if (my $err = $@) {
- $err =~ /Undefined subroutine &main::/ ?
- die("can't find function $AUTOLOAD\n" . backtrace()) :
- die($err);
- }
- wantarray ? @l : $l[0];
-}
-
-1;
diff --git a/perl-install/c/.cvsignore b/perl-install/c/.cvsignore
deleted file mode 100644
index 665b57e54..000000000
--- a/perl-install/c/.cvsignore
+++ /dev/null
@@ -1,9 +0,0 @@
-Makefile
-Makefile_c
-stuff.c
-stuff.bs
-pm_to_blib
-Makefile_c.old
-blib
-stuff.xs
-pcmcia_probe.c
diff --git a/perl-install/c/Makefile b/perl-install/c/Makefile
deleted file mode 100644
index a494da760..000000000
--- a/perl-install/c/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-.PHONY: clean
-
-C_RPM = 1
-C_DRAKX = 1
-
-stuff: %: %.xs
- test -e Makefile_c || C_RPM=$(C_RPM) C_DRAKX=$(C_DRAKX) perl Makefile.PL
- $(MAKE) -f Makefile_c LD_RUN_PATH= || $(MAKE) -f Makefile_c LD_RUN_PATH=
- rm -f ../auto/c ; ln -s ../c/blib/arch/auto ../auto/c
-
-clean:
- test ! -e Makefile_c || $(MAKE) -f Makefile_c clean
- rm -f *~ *.o stuff.xs pcmcia_probe.c
-
-stuff.xs: %: %.pm
- rm -f $@
- C_RPM=$(C_RPM) C_DRAKX=$(C_DRAKX) perl $< > $@
- chmod a-w $@
diff --git a/perl-install/c/Makefile.PL b/perl-install/c/Makefile.PL
deleted file mode 100644
index 9a27c3592..000000000
--- a/perl-install/c/Makefile.PL
+++ /dev/null
@@ -1,23 +0,0 @@
-use ExtUtils::MakeMaker;
-use Config;
-# See lib/ExtUtils/MakeMaker.pm for details of how to influence
-# the contents of the Makefile that is written.
-
-my $libs = '-lldetect -lext2fs';
-$libs .= ' -L/usr/X11R6/lib -lX11 -lgdk -lXxf86misc' if $ENV{C_DRAKX};
-$libs .= ' -lrpm -lrpmdb -lrpmio -lpopt -lz' if $ENV{C_RPM};
-
-my $pcmcia_dir = $ENV{C_DRAKX} && $Config{archname} =~ /i.86/ ? '../../mdk-stage1/pcmcia_' : '';
-
-symlink "$pcmcia_dir/probe.c", "probe.c" if $pcmcia_dir;
-
-WriteMakefile(
- 'NAME' => 'stuff',
- 'OPTIMIZE' => '-Os',
- 'MAKEFILE' => 'Makefile_c',
- 'OBJECT' => "stuff.o smp.o sbus.o silo.o" . ($pcmcia_dir && " probe.o"),
- 'VERSION_FROM' => 'stuff.pm', # finds $VERSION
- 'LIBS' => [$libs], # e.g., '-lm'
- 'DEFINE' => '', # e.g., '-DHAVE_SOMETHING'
- 'INC' => "-I/usr/include/rpm `gtk-config --cflags` `glib-config --cflags`" . ($pcmcia_dir && " -I$pcmcia_dir -I$pcmcia_dir/.."),
-);
diff --git a/perl-install/c/README b/perl-install/c/README
deleted file mode 100644
index b5ad1224f..000000000
--- a/perl-install/c/README
+++ /dev/null
@@ -1,3 +0,0 @@
-md5.c, md5_crypt.c and md5.h are taken from pam (dir modules/pam_pwdb)
-
-smp.c is taken from RedHat's install
diff --git a/perl-install/c/sbus.c b/perl-install/c/sbus.c
deleted file mode 100644
index 85d44fa79..000000000
--- a/perl-install/c/sbus.c
+++ /dev/null
@@ -1,156 +0,0 @@
-/* This file is inspired from source code of kudzu from Red Hat, Inc.
- * It has been modified to keep only "what is needed" in C, the prom_walk
- * has been rewritten in perl for convenience :-)
- *
- * Copyright notice from original version.
- * sbus.c: Probe for Sun SBUS and UPA framebuffers using OpenPROM,
- * SBUS SCSI and Ethernet cards and SBUS or EBUS audio chips.
- *
- * Copyright (C) 1998, 1999 Jakub Jelinek (jj@ultra.linux.cz)
- * (C) 1999 Red Hat, Inc.
- *
- * 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.
- *
- *
- */
-
-#ifdef __sparc__
-
-#include <fcntl.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/ioctl.h>
-#include <asm/openpromio.h>
-
-static char *promdev = "/dev/openprom";
-static int promfd = -1;
-static int prom_current_node;
-#define MAX_PROP 128
-#define MAX_VAL (4096-128-4)
-static char buf[4096];
-#define DECL_OP(size) struct openpromio *op = (struct openpromio *)buf; op->oprom_size = (size)
-
-int prom_open()
-{
- int prom_root_node;
-
- if (promfd == -1) {
- promfd = open(promdev, O_RDONLY);
- if (promfd == -1)
- return 0;
- }
- prom_root_node = prom_getsibling(0);
- if (!prom_root_node) {
- close(promfd);
- promfd = -1;
- return 0;
- }
- return prom_root_node;
-}
-
-void prom_close()
-{
- if (promfd != -1) {
- close(promfd);
- promfd = -1;
- }
-}
-
-int prom_getsibling(int node)
-{
- DECL_OP(sizeof(int));
-
- if (node == -1) return 0;
- *(int *)op->oprom_array = node;
- if (ioctl (promfd, OPROMNEXT, op) < 0)
- return 0;
- prom_current_node = *(int *)op->oprom_array;
- return *(int *)op->oprom_array;
-}
-
-int prom_getchild(int node)
-{
- DECL_OP(sizeof(int));
-
- if (!node || node == -1) return 0;
- *(int *)op->oprom_array = node;
- if (ioctl (promfd, OPROMCHILD, op) < 0)
- return 0;
- prom_current_node = *(int *)op->oprom_array;
- return *(int *)op->oprom_array;
-}
-
-char *prom_getopt(char *var, int *lenp)
-{
- DECL_OP(MAX_VAL);
-
- strcpy (op->oprom_array, var);
- if (ioctl (promfd, OPROMGETOPT, op) < 0)
- return 0;
- if (lenp) *lenp = op->oprom_size;
- return op->oprom_array;
-}
-
-void prom_setopt(char *var, char *value) {
- DECL_OP(MAX_VAL);
-
- strcpy (op->oprom_array, var);
- strcpy (op->oprom_array + strlen (var) + 1, value);
- ioctl (promfd, OPROMSETOPT, op);
-}
-
-char *prom_getproperty(char *prop, int *lenp)
-{
- DECL_OP(MAX_VAL);
-
- strcpy (op->oprom_array, prop);
- if (ioctl (promfd, OPROMGETPROP, op) < 0)
- return 0;
- if (lenp) *lenp = op->oprom_size;
- return op->oprom_array;
-}
-
-int prom_getbool(char *prop)
-{
- DECL_OP(0);
-
- *(int *)op->oprom_array = 0;
- for (;;) {
- op->oprom_size = MAX_PROP;
- if (ioctl(promfd, OPROMNXTPROP, op) < 0)
- return 0;
- if (!op->oprom_size)
- return 0;
- if (!strcmp (op->oprom_array, prop))
- return 1;
- }
-}
-
-int prom_pci2node(int bus, int devfn) {
- DECL_OP(2*sizeof(int));
-
- ((int *)op->oprom_array)[0] = bus;
- ((int *)op->oprom_array)[1] = devfn;
- if (ioctl (promfd, OPROMPCI2NODE, op) < 0)
- return 0;
- prom_current_node = *(int *)op->oprom_array;
- return *(int *)op->oprom_array;
-}
-
-#else
-int prom_open() { return 0; }
-void prom_close() {}
-int prom_getsibling(int node) { return 0; }
-int prom_getchild(int node) { return 0; }
-char *prom_getopt(char *var, int *lenp) { return 0; /* NULL */ }
-void prom_setopt(char *var, char *value) {}
-char *prom_getproperty(char *prop, int *lenp) { return 0; /* NULL */ }
-int prom_getbool(char *prop) { return 0; }
-int prom_pci2node(int bus, int devfn) { return 0; }
-#endif /* __sparc__ */
diff --git a/perl-install/c/silo.c b/perl-install/c/silo.c
deleted file mode 100644
index 2fd621f4e..000000000
--- a/perl-install/c/silo.c
+++ /dev/null
@@ -1,817 +0,0 @@
-/* silo.c: Conversions between SCSI and IDE disk names
- * and OpenPROM fully qualified paths.
- *
- * Modified for DrakX light integration.
- * Copyright (C) 1999, 2000 Jakub Jelinek <jakub@redhat.com>
- *
- * 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.
- */
-
-#ifdef __sparc__
-
-#define _GNU_SOURCE
-#include <fcntl.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/ioctl.h>
-#include <asm/openpromio.h>
-#include <ctype.h>
-#include <dirent.h>
-#include <errno.h>
-#include <sys/stat.h>
-#include <sys/utsname.h>
-
-#ifndef OPROMSETCUR
-#define OPROMSETCUR 0x20004FF0
-#define OPROMPCI2NODE 0x20004FF1
-#define OPROMPATH2NODE 0x20004FF2
-#endif
-
-static int hasaliases;
-static char *promdev = "/dev/openprom";
-static int promfd;
-static char sd_targets[10] = "31204567";
-static int p1275 = 0;
-static int prom_root_node, prom_current_node;
-static int promvers;
-static void (*prom_walk_callback)(int node);
-static char prom_path[1024];
-#define MAX_PROP 128
-#define MAX_VAL (4096-128-4)
-static char buf[4096];
-static char regstr[40];
-#define DECL_OP(size) struct openpromio *op = (struct openpromio *)buf; op->oprom_size = (size)
-
-static int
-prom_setcur(int node) {
- DECL_OP(sizeof(int));
-
- if (node == -1) return 0;
- *(int *)op->oprom_array = node;
- if (ioctl (promfd, OPROMSETCUR, op) < 0)
- return 0;
- prom_current_node = *(int *)op->oprom_array;
- return *(int *)op->oprom_array;
-}
-
-static int
-prom_getsibling(int node) {
- DECL_OP(sizeof(int));
-
- if (node == -1) return 0;
- *(int *)op->oprom_array = node;
- if (ioctl (promfd, OPROMNEXT, op) < 0)
- return 0;
- prom_current_node = *(int *)op->oprom_array;
- return *(int *)op->oprom_array;
-}
-
-static int
-prom_getchild(int node) {
- DECL_OP(sizeof(int));
-
- if (!node || node == -1) return 0;
- *(int *)op->oprom_array = node;
- if (ioctl (promfd, OPROMCHILD, op) < 0)
- return 0;
- prom_current_node = *(int *)op->oprom_array;
- return *(int *)op->oprom_array;
-}
-
-static char *
-prom_getproperty(char *prop, int *lenp) {
- DECL_OP(MAX_VAL);
-
- strcpy (op->oprom_array, prop);
- if (ioctl (promfd, OPROMGETPROP, op) < 0)
- return 0;
- if (lenp) *lenp = op->oprom_size;
- return op->oprom_array;
-}
-
-static char *
-prom_getopt(char *var, int *lenp) {
- DECL_OP(MAX_VAL);
-
- strcpy (op->oprom_array, var);
- if (ioctl (promfd, OPROMGETOPT, op) < 0)
- return 0;
- if (lenp) *lenp = op->oprom_size;
- return op->oprom_array;
-}
-
-static void
-prom_setopt(char *var, char *value) {
- DECL_OP(MAX_VAL);
-
- strcpy (op->oprom_array, var);
- strcpy (op->oprom_array + strlen (var) + 1, value);
- ioctl (promfd, OPROMSETOPT, op);
-}
-
-static int
-prom_getbool(char *prop) {
- DECL_OP(0);
-
- *(int *)op->oprom_array = 0;
- for (;;) {
- op->oprom_size = MAX_PROP;
- if (ioctl(promfd, OPROMNXTPROP, op) < 0)
- return 0;
- if (!op->oprom_size)
- return 0;
- if (!strcmp (op->oprom_array, prop))
- return 1;
- }
-}
-
-static int
-prom_pci2node(int bus, int devfn) {
- DECL_OP(2*sizeof(int));
-
- ((int *)op->oprom_array)[0] = bus;
- ((int *)op->oprom_array)[1] = devfn;
- if (ioctl (promfd, OPROMPCI2NODE, op) < 0)
- return 0;
- prom_current_node = *(int *)op->oprom_array;
- return *(int *)op->oprom_array;
-}
-
-static int
-prom_path2node(char *path) {
- DECL_OP(MAX_VAL);
-
- strcpy (op->oprom_array, path);
- if (ioctl (promfd, OPROMPATH2NODE, op) < 0)
- return 0;
- prom_current_node = *(int *)op->oprom_array;
- return *(int *)op->oprom_array;
-}
-
-#define PW_TYPE_SBUS 1
-#define PW_TYPE_PCI 2
-#define PW_TYPE_EBUS 3
-
-static void
-prom_walk(char *path, int parent, int node, int type) {
- int nextnode;
- int len, ntype = type;
- char *prop;
-
- prop = prom_getproperty("name", &len);
- if (prop && len > 0) {
- if ((!strcmp(prop, "sbus") || !strcmp(prop, "sbi")) && !type)
- ntype = PW_TYPE_SBUS;
- else if (!strcmp(prop, "ebus") && type == PW_TYPE_PCI)
- ntype = PW_TYPE_EBUS;
- else if (!strcmp(prop, "pci") && !type)
- ntype = PW_TYPE_PCI;
- }
- *path = '/';
- strcpy (path + 1, prop);
- prop = prom_getproperty("reg", &len);
- if (prop && len >= 4) {
- unsigned int *reg = (unsigned int *)prop;
- int cnt = 0;
- if (!p1275 || (type == PW_TYPE_SBUS))
- sprintf (regstr, "@%x,%x", reg[0], reg[1]);
- else if (type == PW_TYPE_PCI) {
- if ((reg[0] >> 8) & 7)
- sprintf (regstr, "@%x,%x", (reg[0] >> 11) & 0x1f, (reg[0] >> 8) & 7);
- else
- sprintf (regstr, "@%x", (reg[0] >> 11) & 0x1f);
- } else if (len == 4)
- sprintf (regstr, "@%x", reg[0]);
- else {
- unsigned int regs[2];
-
- /* Things get more complicated on UPA. If upa-portid exists,
- then address is @upa-portid,second-int-in-reg, otherwise
- it is @first-int-in-reg/16,second-int-in-reg (well, probably
- upa-portid always exists, but just to be safe). */
- memcpy (regs, reg, sizeof(regs));
- prop = prom_getproperty("upa-portid", &len);
- if (prop && len == 4) {
- reg = (unsigned int *)prop;
- sprintf (regstr, "@%x,%x", reg[0], regs[1]);
- } else
- sprintf (regstr, "@%x,%x", regs[0] >> 4, regs[1]);
- }
- for (nextnode = prom_getchild(parent); nextnode; nextnode = prom_getsibling(nextnode)) {
- prop = prom_getproperty("name", &len);
- if (prop && len > 0 && !strcmp (path + 1, prop))
- cnt++;
- }
- if (cnt > 1)
- strcat (path, regstr);
- }
-
- prom_walk_callback(node);
-
- nextnode = prom_getchild(node);
- if (nextnode)
- prom_walk(strchr (path, 0), node, nextnode, ntype);
- nextnode = prom_getsibling(node);
- if (nextnode)
- prom_walk(path, parent, nextnode, type);
-}
-
-static int
-prom_init(int mode) {
- struct utsname u;
-
- promfd = open(promdev, mode);
- if (promfd == -1)
- return -1;
- prom_root_node = prom_getsibling(0);
- if (!prom_root_node)
- return -1;
-
- if (!uname (&u) && !strcmp (u.machine, "sparc64"))
- p1275 = 1;
- return 0;
-}
-
-#define SDSK_TYPE_IDE 1
-#define SDSK_TYPE_SD 2
-#define SDSK_TYPE_PLN 3
-#define SDSK_TYPE_FC 4
-
-static struct sdsk_disk {
- unsigned int prom_node;
- unsigned int type, host, hi, mid, lo;
- unsigned char *prom_name;
-} *hd = NULL, *sd = NULL;
-static int hdlen, sdlen;
-
-static void
-scan_walk_callback(int node) {
- int nextnode;
- char *prop;
- int len, disk;
- static int v0ctrl = 0;
-
- for (disk = 0; disk < hdlen + sdlen; disk++) {
- if (hd[disk].prom_node == node) {
- switch (hd[disk].type) {
- case SDSK_TYPE_IDE:
- for (nextnode = prom_getchild(node); nextnode; nextnode = prom_getsibling(nextnode)) {
- prop = prom_getproperty("name", &len);
- if (prop && len > 0 && (!strcmp (prop, "ata") || !strcmp (prop, "disk")))
- break;
- }
- if (!nextnode)
- continue;
- if (prop[0] == 'a')
- sprintf (prop, "/ata@%x,0/cmdk@%x,0", hd[disk].hi, hd[disk].lo);
- else
- sprintf (prop, "/disk@%x,0", hd[disk].hi * 2 + hd[disk].lo);
- break;
- case SDSK_TYPE_SD:
- for (nextnode = prom_getchild(node); nextnode; nextnode = prom_getsibling(nextnode)) {
- prop = prom_getproperty("compatible", &len);
- if (prop && len > 0 && !strcmp (prop, "sd"))
- break;
- prop = prom_getproperty("name", &len);
- if (prop && len > 0 && (!strcmp (prop, "sd") || !strcmp (prop, "disk")))
- break;
- }
- if (!nextnode || hd[disk].hi)
- continue;
- if (promvers) {
- char name[1024];
- prop = prom_getproperty("name", &len);
- if (prop && len > 0)
- strcpy (name, prop);
- else
- strcpy (name, "sd");
- if (!prop)
- prop = ((struct openpromio *)buf)->oprom_array;
- sprintf (prop, "/%s@%x,%x", name, hd[disk].mid, hd[disk].lo);
- } else {
- int i;
- for (i = 0; sd_targets[i]; i++)
- if (sd_targets[i] == '0' + hd[disk].mid)
- break;
- if (!sd_targets[i])
- i = hd[disk].mid;
- sprintf (prop, "sd(%d,%d,", v0ctrl, i);
- }
- break;
- case SDSK_TYPE_PLN:
- prop = ((struct openpromio *)buf)->oprom_array;
- sprintf (prop, "/SUNW,pln@%x,%x/SUNW,ssd@%x,%x",
- hd[disk].lo & 0xf0000000, hd[disk].lo & 0xffffff,
- hd[disk].hi, hd[disk].mid);
- break;
- case SDSK_TYPE_FC:
- prop = ((struct openpromio *)buf)->oprom_array;
- sprintf (prop, "/sf@0,0/ssd@w%08x%08x,%x", hd[disk].hi, hd[disk].mid, hd[disk].lo);
- break;
- default:
- continue;
- }
- hd[disk].prom_name = malloc (strlen (prom_path) + strlen(prop) + 3);
- if (!hd[disk].prom_name)
- continue;
- if (promvers)
- strcpy (hd[disk].prom_name, prom_path);
- else
- hd[disk].prom_name[0] = '\0';
- strcat (hd[disk].prom_name, prop);
- }
- }
- v0ctrl++;
-}
-
-static int
-scan_ide(void) {
- DIR * dir;
- char path[80];
- char buffer[512];
- int fd, i, disk;
- struct dirent * ent;
- int pci_bus, pci_devfn;
-
- if (access("/proc/ide", R_OK)) return 0;
-
- if (!(dir = opendir("/proc/ide"))) {
- return 1;
- }
-
- while ((ent = readdir(dir))) {
- if (ent->d_name[0] == 'h' && ent->d_name[1] == 'd' &&
- ent->d_name[2] >= 'a' && ent->d_name[2] <= 'z' &&
- ent->d_name[3] == '\0') {
- disk = ent->d_name[2] - 'a';
- if (disk >= hdlen) {
- hd = (struct sdsk_disk *)realloc(hd, ((disk&~3)+4)*sizeof(struct sdsk_disk));
- memset (hd + hdlen, 0, ((disk&~3)+4-hdlen)*sizeof(struct sdsk_disk));
- hdlen = (disk&~3)+4;
- }
- for (i = (disk & ~3); i <= (disk | 3); i++) {
- if (hd[i].type)
- break;
- }
- if (i > (disk | 3)) {
- sprintf(path, "/proc/ide/%s", ent->d_name);
- if (readlink(path, buffer, 512) < 5)
- continue;
- if (strncmp(buffer, "ide", 3) ||
- !isdigit(buffer[3]) ||
- buffer[4] != '/')
- continue;
- buffer[4] = 0;
- sprintf(path, "/proc/ide/%s/config", buffer);
- if ((fd = open(path, O_RDONLY)) < 0)
- continue;
- i = read(fd, buffer, 50);
- close(fd);
- if (i < 50) continue;
- if (sscanf (buffer, "pci bus %x device %x ",
- &pci_bus, &pci_devfn) != 2)
- continue;
- hd[disk].prom_node = prom_pci2node (pci_bus, pci_devfn);
- } else
- hd[disk].prom_node = hd[i].prom_node;
- hd[disk].type = SDSK_TYPE_IDE;
- hd[disk].hi = (disk & 2) >> 1;
- hd[disk].lo = (disk & 1);
- }
- }
-
- closedir(dir);
-
- return 0;
-}
-
-static int
-scan_scsi(void) {
- FILE *f;
- DIR * dir, *dirhba;
- struct dirent * ent, *enthba;
- struct stat st;
- char * p, * q;
- char buf[512];
- char path[128];
- int disk = 0;
- int host, channel, id, lun;
- int prom_node, pci_bus, pci_devfn;
-
- if (access("/proc/scsi/scsi", R_OK)) {
- return 0;
- }
-
- f = fopen("/proc/scsi/scsi", "r");
- if (f == NULL) return 1;
-
- if (fgets(buf, sizeof(buf), f) == NULL) {
- fclose(f);
- return 1;
- }
- if (!strcmp(buf, "Attached devices: none\n")) {
- fclose(f);
- return 0;
- }
-
- while (fgets(buf, sizeof(buf), f) != NULL) {
- if (sscanf(buf, "Host: scsi%d Channel: %d Id: %d Lun: %d\n",
- &host, &channel, &id, &lun) != 4)
- break;
- if (fgets(buf, sizeof(buf), f) == NULL)
- break;
- if (strncmp(buf, " Vendor:", 9))
- break;
- if (fgets(buf, sizeof(buf), f) == NULL)
- break;
- if (strncmp(buf, " Type: ", 10))
- break;
- if (!strncmp(buf+10, "Direct-Access", 13)) {
- if (disk >= sdlen) {
- hd = (struct sdsk_disk *)
- realloc(hd, (hdlen+(disk&~3)+4)*sizeof(struct sdsk_disk));
- sd = hd + hdlen;
- memset (sd + sdlen, 0,
- ((disk&~3)+4-sdlen)*sizeof(struct sdsk_disk));
- sdlen = (disk&~3)+4;
- }
- sd[disk].type = SDSK_TYPE_SD;
- sd[disk].host = host;
- sd[disk].hi = channel;
- sd[disk].mid = id;
- sd[disk].lo = lun;
- disk++;
- }
- }
- fclose (f);
-
- if (!(dir = opendir("/proc/scsi"))) {
- if (!hdlen && hd) {
- free(hd);
- hd = NULL;
- }
- sd = NULL;
- sdlen = 0;
- return 1;
- }
-
- while ((ent = readdir(dir))) {
- if (!strcmp (ent->d_name, "scsi") || ent->d_name[0] == '.')
- continue;
- sprintf (path, "/proc/scsi/%s", ent->d_name);
- if (stat (path, &st) < 0 || !S_ISDIR (st.st_mode))
- continue;
- if (!(dirhba = opendir(path)))
- continue;
-
- while ((enthba = readdir(dirhba))) {
- if (enthba->d_name[0] == '.')
- continue;
- host = atoi(enthba->d_name);
- sprintf (path, "/proc/scsi/%s/%s", ent->d_name, enthba->d_name);
- f = fopen (path, "r");
- if (f == NULL) continue;
-
- if (!strcmp (ent->d_name, "esp") ||
- !strcmp (ent->d_name, "qlogicpti") ||
- !strcmp (ent->d_name, "fcal"))
- p = "PROM node";
- else if (!strcmp (ent->d_name, "pluto"))
- p = "serial ";
- else
- p = "PCI bus";
- while (fgets (buf, sizeof(buf), f) != NULL) {
- q = strstr (buf, p);
- if (q == NULL) continue;
- prom_node = 0;
- switch (p[1]) {
- case 'R':
- if (sscanf (q, "PROM node %x", &prom_node) == 1)
- q = NULL;
- break;
- case 'e':
- if (sscanf (q, "serial 000000%x %*dx%*d on soc%*d port %x PROM node %x",
- &id, &lun, &prom_node) == 3 &&
- lun >= 10 && lun <= 11) {
- q = NULL;
- }
- break;
- case 'C':
- if (sscanf (q, "PCI bus %x device %x", &pci_bus, &pci_devfn) == 2) {
- q = NULL;
- prom_node = prom_pci2node (pci_bus, pci_devfn);
- }
- break;
- }
- if (q == NULL) {
- for (disk = 0; disk < sdlen; disk++)
- if (sd[disk].host == host && sd[disk].type) {
- sd[disk].prom_node = prom_node;
- if (p[1] == 'e') {
- sd[disk].type = SDSK_TYPE_PLN;
- sd[disk].lo = (lun << 28) | id;
- } else if (!strcmp (ent->d_name, "fcal"))
- sd[disk].type = SDSK_TYPE_FC;
- }
- }
- }
- if (!strcmp (ent->d_name, "fcal")) {
- while (fgets (buf, sizeof(buf), f) != NULL) {
- unsigned long long ll;
- if (sscanf (buf, " [AL-PA: %*x, Id: %d, Port WWN: %Lx, Node WWN: ", &id, &ll) == 2) {
- for (disk = 0; disk < sdlen; disk++)
- if (sd[disk].host == host && sd[disk].mid == id) {
- sd[disk].hi = ll >> 32;
- sd[disk].mid = ll;
- }
- }
- }
- }
- fclose(f);
- }
- closedir(dirhba);
- }
- closedir(dir);
- return 0;
-}
-
-static int get_prom_ver(void)
-{
- FILE *f = fopen ("/proc/cpuinfo","r");
- int ver = 0;
- char buffer[1024];
- char *p;
-
- if (f) {
- while (fgets (buffer, 1024, f)) {
- if (!strncmp (buffer, "promlib", 7)) {
- p = strstr (buffer, "Version ");
- if (p) {
- p += 8;
- if (*p == '0' || (*p >= '2' && *p <= '3')) {
- ver = *p - '0';
- }
- }
- break;
- }
- }
- fclose(f);
- }
- if (!ver) {
- int len;
- p = prom_getopt("sd-targets", &len);
- if (p && len > 0 && len <= 8)
- strcpy(sd_targets, p);
- }
- return ver;
-}
-
-static void check_aliases(void) {
- int nextnode, len;
- char *prop;
- hasaliases = 0;
- for (nextnode = prom_getchild(prom_root_node); nextnode; nextnode = prom_getsibling(nextnode)) {
- prop = prom_getproperty("name", &len);
- if (prop && len > 0 && !strcmp (prop, "aliases"))
- hasaliases = 1;
- }
-}
-
-char *prom_root_name = NULL;
-
-static void get_root_name(void) {
- int len;
- char *prop;
-
- prom_getsibling(0);
- prop = prom_getproperty("name", &len);
- if (prop && len > 0)
- prom_root_name = strdup(prop);
-}
-
-int init_sbusdisk(void) {
- if (prom_init(O_RDONLY))
- return -1;
- promvers = get_prom_ver();
- check_aliases();
- get_root_name();
- scan_ide();
- scan_scsi();
- prom_walk_callback = scan_walk_callback;
- prom_walk(prom_path, prom_root_node, prom_getchild (prom_root_node), 0);
- close(promfd);
- return 0;
-}
-
-void set_prom_vars(char *linuxAlias, char *bootDevice) {
- int len;
- int aliasDone = 0;
- if (prom_init(O_RDWR))
- return;
- if (linuxAlias && hasaliases) {
- char *use_nvramrc;
- char nvramrc[2048];
- char *p, *q, *r, *s;
- int enabled = -1;
- int count;
-
- use_nvramrc = prom_getopt ("use-nvramrc?", &len);
- if (len > 0) {
- if (!strcasecmp (use_nvramrc, "false"))
- enabled = 0;
- else if (!strcasecmp (use_nvramrc, "true"))
- enabled = 1;
- }
- if (enabled != -1) {
- p = prom_getopt ("nvramrc", &len);
- if (p) {
- memcpy (nvramrc, p, len);
- nvramrc [len] = 0;
- q = nvramrc;
- for (;;) {
- /* If there is already `devalias linux /some/ugly/prom/path'
- make sure we fully understand that and remove it. */
- if (!strncmp (q, "devalias", 8) && (q[8] == ' ' || q[8] == '\t')) {
- for (r = q + 9; *r == ' ' || *r == '\t'; r++);
- if (!strncmp (r, "linux", 5)) {
- for (s = r + 5; *s && *s != ' ' && *s != '\t'; s++);
- if (!*s) break;
- if (s == r + 5 ||
- (r[5] == '#' && r[6] >= '0' && r[6] <= '9' &&
- (s == r + 7 ||
- (r[7] >= '0' && r[7] <= '9' && s == r + 8)))) {
- for (r = s + 1; *r == ' ' || *r == '\t'; r++);
- for (; *r && *r != ' ' && *r != '\t' && *r != '\n'; r++);
- for (; *r == ' ' || *r == '\t'; r++);
- if (*r == '\n') {
- r++;
- memmove (q, r, strlen(r) + 1);
- continue;
- }
- }
- }
- }
- q = strchr (q, '\n');
- if (!q) break;
- q++;
- }
- len = strlen (nvramrc);
- if (len && nvramrc [len-1] != '\n')
- nvramrc [len++] = '\n';
- p = nvramrc + len;
- p = stpcpy (p, "devalias linux ");
- r = linuxAlias;
- q = strchr (r, ';');
- count = 1;
- while (q) {
- memcpy (p, r, q - r);
- p += q - r;
- sprintf (p, "\ndevalias linux#%d ", count++);
- p = strchr (p, 0);
- r = q + 1;
- q = strchr (r, ';');
- }
- p = stpcpy (p, r);
- *p++ = '\n';
- *p = 0;
- prom_setopt ("nvramrc", nvramrc);
- if (!enabled)
- prom_setopt ("use-nvramrc?", "true");
- aliasDone = 1;
- }
- }
- }
- if (bootDevice) {
- char *p;
- if (aliasDone)
- bootDevice = "linux";
- p = prom_getopt ("boot-device", &len);
- if (p) {
- prom_setopt ("boot-device", bootDevice);
- prom_setopt ("boot-file", "");
- } else {
- p = prom_getopt ("boot-from", &len);
- if (p)
- prom_setopt ("boot-from", bootDevice);
- }
- }
- close(promfd);
-}
-
-#ifdef STANDALONE_SILO
-
-int main(void) {
- int i;
-
- init_sbusdisk();
- set_prom_vars ("/sbus@1f,0/espdma/esp/sd@1,0:c;/sbus@1f,0/espdma/esp/sd@1,0:g;/sbus@1f,0/espdma/esp/sd@1,0:h", "linux");
- printf ("prom root name `%s'\n", prom_root_name);
- for (i = 0; i < hdlen; i++) {
- if (hd[i].type)
- printf ("hd%c %x %d %d %d\n", i + 'a', hd[i].prom_node,
- hd[i].hi, hd[i].mid, hd[i].lo);
- if (hd[i].prom_name) printf ("%s\n", hd[i].prom_name);
- }
- for (i = 0; i < sdlen; i++) {
- if (sd[i].type) {
- if (i < 26)
- printf ("sd%c %x %d %d %d\n", i + 'a', sd[i].prom_node,
- sd[i].hi, sd[i].mid, sd[i].lo);
- else
- printf ("sd%c%c %x %d %d %d\n", (i / 26) + 'a' - 1, (i % 26) + 'a', sd[i].prom_node,
- sd[i].hi, sd[i].mid, sd[i].lo);
- }
- if (sd[i].prom_name) printf ("%s\n", sd[i].prom_name);
- }
- exit(0);
-}
-
-#else
-
-void
-initSilo ()
-{
- return init_sbusdisk();
-}
-
-char *
-disk2PromPath (unsigned char *disk)
-{
- static unsigned char prompath[1024];
- int diskno = -1, part;
-
- if (disk[0] == 'h' && disk[1] == 'd' && disk[2] >= 'a' && disk[2] <= 'z') {
- diskno = disk[2] - 'a';
- disk += 3;
- } else if (disk[0] == 's' && disk[1] == 'd' && disk[2] >= 'a' && disk[2] <= 'z') {
- if (disk[3] >= 'a' && disk[3] <= 'z') {
- diskno = (disk[2] - 'a' + 1) * 26 + (disk[3] - 'a');
- disk += 4;
- } else {
- diskno = disk[2] - 'a';
- disk += 3;
- }
- if (diskno >= 128)
- diskno = -1;
- else
- diskno += hdlen;
- }
- if (diskno == -1)
- part = -1;
- else if (!disk[0])
- part = 3;
- else {
- part = atoi (disk);
- if (part <= 0 || part > 8) part = -1;
- }
- if (diskno < 0 || part == -1 ||
- diskno >= hdlen + sdlen || !hd[diskno].prom_name) {
- return NULL;
- }
- if (!promvers)
- sprintf (prompath, "%s%d)", hd[diskno].prom_name, part ? part - 1 : 2);
- else {
- if (part)
- sprintf (prompath, "%s:%c", hd[diskno].prom_name, part + 'a' - 1);
- else
- strcpy (prompath, hd[diskno].prom_name);
- }
- return prompath;
-}
-
-int
-hasAliases (void)
-{
- return hasaliases;
-}
-
-char *
-promRootName (void)
-{
- return prom_root_name ? prom_root_name : "";
-}
-
-void
-setPromVars (char *linuxAlias, char *bootDevice)
-{
- if (linuxAlias && !*linuxAlias) linuxAlias = NULL;
- if (bootDevice && !*bootDevice) bootDevice = NULL;
- set_prom_vars (linuxAlias, bootDevice);
-}
-
-#endif
-
-#else
-void initSilo() {}
-char *disk2PromPath(unsigned char *disk) { return 0; /* NULL */ }
-int hasAliases(void) { return 0; }
-char *promRootName(void) { return 0; /* NULL */ }
-void setPromVars(char *linuxAlias, char *bootDevice) {}
-#endif /* __sparc__ */
diff --git a/perl-install/c/smp-test.c b/perl-install/c/smp-test.c
deleted file mode 100644
index f644449b8..000000000
--- a/perl-install/c/smp-test.c
+++ /dev/null
@@ -1,6 +0,0 @@
-main() {
- if (detectSMP())
- printf("has smp\n");
- else
- printf("no smp\n");
-}
diff --git a/perl-install/c/smp.c b/perl-install/c/smp.c
deleted file mode 100644
index baf786cc6..000000000
--- a/perl-install/c/smp.c
+++ /dev/null
@@ -1,509 +0,0 @@
-/*
-[_Anarchy_(alan@lightning.swansea.uk.linux.org)] you should do one check
- though - if the board seems to be SMP and the CPU in /proc/cpuinfo is non
- intel dont install an SMP kernel - thats a dual pentium board with a cyrix
- or similar single cpu in it
-*/
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/mman.h>
-#include <string.h>
-#include <errno.h>
-
-#ifdef __alpha__
-int alphaDetectSMP(void)
-{
- int issmp = 0;
- FILE *f;
-
- f = fopen("/proc/cpuinfo", "r");
- if (f) {
- char buff[1024];
-
- while (fgets (buff, 1024, f) != NULL) {
- if (!strncmp (buff, "cpus detected\t\t: ", 17)) {
- if (strtoul (buff + 17, NULL, 0) > 1)
- issmp = 1;
- break;
- }
- }
- fclose(f);
- } else
- return -1;
-
- return issmp;
-}
-#endif /* __alpha__ */
-
-#ifdef __sparc__
-int sparcDetectSMP(void)
-{
- int issmp = 0;
- FILE *f;
-
- f = fopen("/proc/cpuinfo", "r");
- if (f) {
- char buff[1024];
-
- while (fgets (buff, 1024, f) != NULL) {
- if (!strncmp (buff, "ncpus probed\t: ", 15)) {
- if (strtoul (buff + 15, NULL, 0) > 1)
- issmp = 1;
- break;
- }
- }
- fclose(f);
- } else
- return -1;
-
- return issmp;
-}
-#endif /* __sparc__ */
-
-/* just a placeholder for now - don't have an SMP machine
- need something in place to build - s.benedict */
-
-#ifdef __powerpc__
-int ppcDetectSMP(void)
-{
- int issmp = 0;
- FILE *f;
-
- f = fopen("/proc/cpuinfo", "r");
- if (f) {
- char buff[1024];
-
- while (fgets (buff, 1024, f) != NULL) {
- if (!strncmp (buff, "ncpus active\t: ", 15)) {
- if (strtoul (buff + 15, NULL, 0) > 1)
- issmp = 1;
- break;
- }
- }
- fclose(f);
- } else
- return -1;
-
- return issmp;
-}
-#endif /* __powerpc__ */
-
-#ifdef __i386__
-/*
- * Copyright (c) 1996, by Steve Passe
- * 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. The name of the developer may NOT be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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$
- */
-
-/*
- * mptable.c
- */
-
-#define VMAJOR 2
-#define VMINOR 0
-#define VDELTA 12
-
-/*
- * this will cause the raw mp table to be dumped to /tmp/mpdump
- *
-#define RAW_DUMP
- */
-
-#define MP_SIG 0x5f504d5f /* _MP_ */
-#define EXTENDED_PROCESSING_READY
-#define OEM_PROCESSING_READY_NOT
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <sys/types.h>
-
-#define LINUX 1
-#if LINUX
-typedef unsigned int vm_offset_t;
-#else
-#include <machine/types.h>
-#endif
-
-/* EBDA is @ 40:0e in real-mode terms */
-#define EBDA_POINTER 0x040e /* location of EBDA pointer */
-
-/* CMOS 'top of mem' is @ 40:13 in real-mode terms */
-#define TOPOFMEM_POINTER 0x0413 /* BIOS: base memory size */
-
-#define DEFAULT_TOPOFMEM 0xa0000
-
-#define BIOS_BASE 0xf0000
-#define BIOS_BASE2 0xe0000
-#define BIOS_SIZE 0x10000
-#define ONE_KBYTE 1024
-
-#define GROPE_AREA1 0x80000
-#define GROPE_AREA2 0x90000
-#define GROPE_SIZE 0x10000
-
-/* MP Floating Pointer Structure */
-typedef struct MPFPS {
- char signature[ 4 ];
- void* pap;
- u_char length;
- u_char spec_rev;
- u_char checksum;
- u_char mpfb1;
- u_char mpfb2;
- u_char mpfb3;
- u_char mpfb4;
- u_char mpfb5;
-} mpfps_t;
-
-/* MP Configuration Table Header */
-typedef struct MPCTH {
- char signature[ 4 ];
- u_short base_table_length;
- u_char spec_rev;
- u_char checksum;
- u_char oem_id[ 8 ];
- u_char product_id[ 12 ];
- void* oem_table_pointer;
- u_short oem_table_size;
- u_short entry_count;
- void* apic_address;
- u_short extended_table_length;
- u_char extended_table_checksum;
- u_char reserved;
-} mpcth_t;
-
-typedef struct PROCENTRY {
- u_char type;
- u_char apicID;
- u_char apicVersion;
- u_char cpuFlags;
- u_long cpuSignature;
- u_long featureFlags;
- u_long reserved1;
- u_long reserved2;
-} ProcEntry;
-
-#define PROCENTRY_FLAG_EN 0x01
-
-static void seekEntry( vm_offset_t addr );
-static void apic_probe( vm_offset_t* paddr, int* where );
-static void readEntry( void* entry, int size );
-
-/* global data */
-static int pfd; /* physical /dev/mem fd */
-static int verbose = 0;
-static int grope = 0;
-
-static int
-readType()
-{
- u_char type;
-
- if ( read( pfd, &type, sizeof( u_char ) ) != sizeof( u_char ) ) {
- perror( "type read" );
- fprintf( stderr, "\npfd: %d", pfd );
- fflush( stderr );
- exit( 1 );
- }
-
- if ( lseek( pfd, -1, SEEK_CUR ) < 0 ) {
- perror( "type seek" );
- exit( 1 );
- }
-
- return (int)type;
-}
-
-static int intelDetectSMP(void)
-{
- vm_offset_t paddr;
- int where;
- mpfps_t mpfps;
- int rc = 0;
- int ncpus = 0;
-
- /* open physical memory for access to MP structures */
- if ( (pfd = open( "/dev/mem", O_RDONLY )) < 0 ) {
- return 0;
- }
-
- /* probe for MP structures */
- apic_probe( &paddr, &where );
- if ( where <= 0 )
- return 0;
-
- seekEntry( paddr );
- readEntry( &mpfps, sizeof( mpfps_t ) );
-
- if (mpfps.mpfb1)
- /* old style */
- rc = 1;
- else {
- /* go to the config table */
- mpcth_t cth;
- int count, i;
-
- paddr = (vm_offset_t) mpfps.pap;
- seekEntry( paddr );
- readEntry( &cth, sizeof( cth ) );
- /* if we don't have any entries, the kernel sure
- won't be able to set up mp. Needs at least one entry
- for smp kernel */
- if (cth.entry_count <= 1) {
- close (pfd);
- return 0;
- }
- count = cth.entry_count;
- for (i = 0; i < count; i++) {
- if ( readType() == 0 ) {
- ProcEntry entry;
- readEntry( &entry, sizeof( entry ) );
- if (entry.cpuFlags & PROCENTRY_FLAG_EN)
- ncpus++;
- }
- }
- if (ncpus > 1)
- rc = 1;
- }
-
- close (pfd);
- return rc;
-}
-
-/*
- * set PHYSICAL address of MP floating pointer structure
- */
-#define NEXT(X) ((X) += 4)
-static void
-apic_probe( vm_offset_t* paddr, int* where )
-{
- /*
- * c rewrite of apic_probe() by Jack F. Vogel
- */
-
- int x;
- u_short segment;
- vm_offset_t target;
- u_int buffer[ BIOS_SIZE / sizeof( int ) ];
-
- if ( verbose )
- printf( "\n" );
-
- /* search Extended Bios Data Area, if present */
- if ( verbose )
- printf( " looking for EBDA pointer @ 0x%04x, ", EBDA_POINTER );
- seekEntry( (vm_offset_t)EBDA_POINTER );
- readEntry( &segment, 2 );
- if ( segment ) { /* search EBDA */
- target = (vm_offset_t)segment << 4;
- if ( verbose )
- printf( "found, searching EBDA @ 0x%08x\n", target );
- seekEntry( target );
- readEntry( buffer, ONE_KBYTE );
-
- for ( x = 0; x < ONE_KBYTE / sizeof ( unsigned int ); NEXT(x) ) {
- if ( buffer[ x ] == MP_SIG ) {
- *where = 1;
- *paddr = (x * sizeof( unsigned int )) + target;
- return;
- }
- }
- }
- else {
- if ( verbose )
- printf( "NOT found\n" );
- }
-
- /* read CMOS for real top of mem */
- seekEntry( (vm_offset_t)TOPOFMEM_POINTER );
- readEntry( &segment, 2 );
- --segment; /* less ONE_KBYTE */
- target = segment * 1024;
- if ( verbose )
- printf( " searching CMOS 'top of mem' @ 0x%08x (%dK)\n",
- target, segment );
- seekEntry( target );
- readEntry( buffer, ONE_KBYTE );
-
- for ( x = 0; x < ONE_KBYTE / sizeof ( unsigned int ); NEXT(x) ) {
- if ( buffer[ x ] == MP_SIG ) {
- *where = 2;
- *paddr = (x * sizeof( unsigned int )) + target;
- return;
- }
- }
-
- /* we don't necessarily believe CMOS, check base of the last 1K of 640K */
- if ( target != (DEFAULT_TOPOFMEM - 1024)) {
- target = (DEFAULT_TOPOFMEM - 1024);
- if ( verbose )
- printf( " searching default 'top of mem' @ 0x%08x (%dK)\n",
- target, (target / 1024) );
- seekEntry( target );
- readEntry( buffer, ONE_KBYTE );
-
- for ( x = 0; x < ONE_KBYTE / sizeof ( unsigned int ); NEXT(x) ) {
- if ( buffer[ x ] == MP_SIG ) {
- *where = 3;
- *paddr = (x * sizeof( unsigned int )) + target;
- return;
- }
- }
- }
-
- /* search the BIOS */
- if ( verbose )
- printf( " searching BIOS @ 0x%08x\n", BIOS_BASE );
- seekEntry( BIOS_BASE );
- readEntry( buffer, BIOS_SIZE );
-
- for ( x = 0; x < BIOS_SIZE / sizeof( unsigned int ); NEXT(x) ) {
- if ( buffer[ x ] == MP_SIG ) {
- *where = 4;
- *paddr = (x * sizeof( unsigned int )) + BIOS_BASE;
- return;
- }
- }
-
- /* search the extended BIOS */
- if ( verbose )
- printf( " searching extended BIOS @ 0x%08x\n", BIOS_BASE2 );
- seekEntry( BIOS_BASE2 );
- readEntry( buffer, BIOS_SIZE );
-
- for ( x = 0; x < BIOS_SIZE / sizeof( unsigned int ); NEXT(x) ) {
- if ( buffer[ x ] == MP_SIG ) {
- *where = 5;
- *paddr = (x * sizeof( unsigned int )) + BIOS_BASE2;
- return;
- }
- }
-
- if ( grope ) {
- /* search additional memory */
- target = GROPE_AREA1;
- if ( verbose )
- printf( " groping memory @ 0x%08x\n", target );
- seekEntry( target );
- readEntry( buffer, GROPE_SIZE );
-
- for ( x = 0; x < GROPE_SIZE / sizeof( unsigned int ); NEXT(x) ) {
- if ( buffer[ x ] == MP_SIG ) {
- *where = 6;
- *paddr = (x * sizeof( unsigned int )) + GROPE_AREA1;
- return;
- }
- }
-
- target = GROPE_AREA2;
- if ( verbose )
- printf( " groping memory @ 0x%08x\n", target );
- seekEntry( target );
- readEntry( buffer, GROPE_SIZE );
-
- for ( x = 0; x < GROPE_SIZE / sizeof( unsigned int ); NEXT(x) ) {
- if ( buffer[ x ] == MP_SIG ) {
- *where = 7;
- *paddr = (x * sizeof( unsigned int )) + GROPE_AREA2;
- return;
- }
- }
- }
-
- *where = 0;
- *paddr = (vm_offset_t)0;
-}
-
-
-/*
- *
- */
-static void
-seekEntry( vm_offset_t addr )
-{
- if ( lseek( pfd, (off_t)addr, SEEK_SET ) < 0 ) {
- return;
- perror( "/dev/mem seek" );
- exit( 1 );
- }
-}
-
-
-/*
- *
- */
-static void
-readEntry( void* entry, int size )
-{
- if ( read( pfd, entry, size ) != size ) {
- return;
- perror( "readEntry" );
- exit( 1 );
- }
-}
-
-
-#endif /* __i386__ */
-
-int detectSMP(void)
-{
- static int isSMP = -1;
-
- if (isSMP != -1)
- return isSMP;
-
-#ifdef __i386__
- return isSMP = intelDetectSMP();
-#elif __sparc__
- return isSMP = sparcDetectSMP();
-#elif __alpha__
- return isSMP = alphaDetectSMP();
-#elif __powerpc__
- return isSMP = ppcDetectSMP();
-#elif __ia64__
- /* TODO: Update to check against /proc/pal/cpuX */
- return isSMP = 1;
-#elif __x86_64__
- /* TODO: Update when SMP machines are there */
- return isSMP = 0;
-#else
- #error unknown architecture
-#endif
-}
-
-#if TEST
-int main() {
- if (detectSMP())
- printf("has smp\n");
- else
- printf("no smp\n");
-}
-#endif
diff --git a/perl-install/c/smp.h b/perl-install/c/smp.h
deleted file mode 100644
index 3255cc489..000000000
--- a/perl-install/c/smp.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef SMP_H
-#define SMP_H
-
-int detectSMP(void);
-
-#endif /* SMP_H */
diff --git a/perl-install/c/stuff.pm b/perl-install/c/stuff.pm
deleted file mode 100644
index 918abee6c..000000000
--- a/perl-install/c/stuff.pm
+++ /dev/null
@@ -1,34 +0,0 @@
-package c::stuff; # $Id$
-
-use strict;
-use vars qw($VERSION @ISA);
-
-require DynaLoader;
-
-@ISA = qw(DynaLoader);
-$VERSION = '0.01';
-
-bootstrap c::stuff $VERSION;
-
-sub from_utf8 { iconv($_[0], "utf-8", standard_charset()) }
-sub to_utf8 { iconv($_[0], standard_charset(), "utf-8") }
-
-sub headerGetEntry {
- my ($h, $q) = @_;
- $h or log::l("empty header in headerGetEntry"), return;
- $q eq 'name' and return headerGetEntry_string($h, RPMTAG_NAME());
- $q eq 'group' and return from_utf8(headerGetEntry_string($h, RPMTAG_GROUP()));
- $q eq 'version' and return headerGetEntry_string($h, RPMTAG_VERSION());
- $q eq 'release' and return headerGetEntry_string($h, RPMTAG_RELEASE());
- $q eq 'epoch' and return headerGetEntry_int($h, RPMTAG_EPOCH());
- $q eq 'summary' and return from_utf8(headerGetEntry_string($h, RPMTAG_SUMMARY()));
- $q eq 'description' and return from_utf8(headerGetEntry_string($h, RPMTAG_DESCRIPTION()));
- $q eq 'arch' and return headerGetEntry_string($h, RPMTAG_ARCH());
- $q eq 'size' and return headerGetEntry_int($h, RPMTAG_SIZE());
- $q eq 'obsoletes' and return headerGetEntry_string_list($h, RPMTAG_OBSOLETES());
- $q eq 'requires' and return headerGetEntry_string_list($h, RPMTAG_REQUIRENAME());
- $q eq 'fileflags' and return headerGetEntry_int_list($h, RPMTAG_FILEFLAGS());
- $q eq 'filenames' and return headerGetEntry_filenames($h);
-}
-
-1;
diff --git a/perl-install/c/stuff.xs.pm b/perl-install/c/stuff.xs.pm
deleted file mode 100644
index 2253c419e..000000000
--- a/perl-install/c/stuff.xs.pm
+++ /dev/null
@@ -1,579 +0,0 @@
-use Config;
-
-print '
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-/* workaround for glibc and kernel header files not in sync */
-#define dev_t dev_t
-
-#include <ctype.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <syslog.h>
-#include <fcntl.h>
-#include <resolv.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <sys/ioctl.h>
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <sys/stat.h>
-#include <sys/utsname.h>
-#include <sys/mount.h>
-#include <linux/keyboard.h>
-#include <linux/kd.h>
-#include <linux/hdreg.h>
-#include <linux/vt.h>
-#include <linux/fd.h>
-#include <linux/cdrom.h>
-#include <linux/loop.h>
-#include <linux/blkpg.h>
-#include <net/if.h>
-#include <net/route.h>
-
-/* for is_ext3 */
-#include <ext2fs/ext2_fs.h>
-#include <ext2fs/ext2fs.h>
-
-#include <libldetect.h>
-#include <X11/Xlib.h>
-#include <X11/extensions/xf86misc.h>
-
-#include <langinfo.h>
-#include <string.h>
-#include <iconv.h>
-
-#include <libintl.h>
-#include <term.h>
-#undef max_colors
-
-#define SECTORSIZE 512
-
-char *prom_getopt();
-void prom_setopt();
-char *prom_getproperty();
-char *disk2PromPath();
-char *promRootName();
-
-';
-
-$ENV{C_DRAKX} && $Config{archname} =~ /i.86/ and print '
-char *pcmcia_probe(void);
-';
-
-$ENV{C_RPM} and print '
-#undef Fflush
-#undef Mkdir
-#undef Stat
-#include <rpm/rpmlib.h>
-#include <rpm/rpmio.h>
-
-void rpmError_callback_empty(void) {}
-
-int rpmError_callback_data;
-void rpmError_callback(void) {
- if (rpmErrorCode() != RPMERR_UNLINK && rpmErrorCode() != RPMERR_RMDIR) {
- write(rpmError_callback_data, rpmErrorString(), strlen(rpmErrorString()));
- }
-}
-
-';
-
-$ENV{C_DRAKX} and print '
-
-#include <gdk/gdkx.h>
-
-void initIMPS2() {
- unsigned char imps2_s1[] = { 243, 200, 243, 100, 243, 80, };
- unsigned char imps2_s2[] = { 246, 230, 244, 243, 100, 232, 3, };
-
- int fd = open("/dev/cdrom", O_WRONLY);
- if (fd < 0) return;
-
- write (fd, imps2_s1, sizeof (imps2_s1));
- usleep (30000);
- write (fd, imps2_s2, sizeof (imps2_s2));
- usleep (30000);
- tcflush (fd, TCIFLUSH);
- tcdrain(fd);
-}
-
-void log_message(const char * s, ...) {}
-
-';
-
-print '
-
-MODULE = c::stuff PACKAGE = c::stuff
-
-';
-
-$ENV{C_DRAKX} && $Config{archname} =~ /i.86/ and print '
-char *
-pcmcia_probe()
-';
-
-$ENV{C_DRAKX} and print '
-
-int
-Xtest(display)
- char *display
- CODE:
- int pid;
- if ((pid = fork()) == 0) {
- Display *d = XOpenDisplay(display);
- if (d) {
- XSetCloseDownMode(d, RetainPermanent);
- XCloseDisplay(d);
- }
- _exit(d != NULL);
- }
- waitpid(pid, &RETVAL, 0);
- OUTPUT:
- RETVAL
-
-void
-setMouseLive(display, type, emulate3buttons)
- char *display
- int type
- int emulate3buttons
- CODE:
- {
- XF86MiscMouseSettings mseinfo;
- Display *d = XOpenDisplay(display);
- if (d) {
- if (XF86MiscGetMouseSettings(d, &mseinfo) == True) {
- mseinfo.type = type;
- mseinfo.flags |= MF_REOPEN;
- mseinfo.emulate3buttons = emulate3buttons;
- XF86MiscSetMouseSettings(d, &mseinfo);
- XFlush(d);
- if (type == MTYPE_IMPS2) initIMPS2();
- }
- }
- }
-';
-
-print '
-
-int
-add_partition(hd, start_sector, size_sector, part_number)
- int hd
- unsigned long start_sector
- unsigned long size_sector
- int part_number
- CODE:
- {
- long long start = start_sector * 512;
- long long size = size_sector * 512;
- struct blkpg_partition p = { start, size, part_number, "", "" };
- struct blkpg_ioctl_arg s = { BLKPG_ADD_PARTITION, 0, sizeof(struct blkpg_partition), (void *) &p };
- RETVAL = ioctl(hd, BLKPG, &s) == 0;
- }
- OUTPUT:
- RETVAL
-
-int
-is_secure_file(filename)
- char * filename
- CODE:
- {
- int fd;
- unlink(filename); /* in case it exists and we manage to remove it */
- RETVAL = (fd = open(filename, O_RDWR | O_CREAT | O_EXCL, 0600)) != -1;
- if (RETVAL) close(fd);
- }
- OUTPUT:
- RETVAL
-
-int
-is_ext3(device_name)
- char * device_name
- CODE:
- {
- ext2_filsys fs;
- int retval = ext2fs_open (device_name, 0, 0, 0, unix_io_manager, &fs);
- if (retval) {
- RETVAL = 0;
- } else {
- RETVAL = fs->super->s_feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL;
- ext2fs_close(fs);
- }
- }
- OUTPUT:
- RETVAL
-
-void
-setlocale()
- CODE:
- setlocale(LC_ALL, "");
- setlocale(LC_NUMERIC, "C"); /* otherwise eval "1.5" returns 1 in fr_FR for example */
-
-char *
-bindtextdomain(domainname, dirname)
- char * domainname
- char * dirname
-
-char *
-dgettext(domainname, msgid)
- char * domainname
- char * msgid
-
-int
-KTYP(x)
- int x
- CODE:
- RETVAL = KTYP(x);
- OUTPUT:
- RETVAL
-
-int
-lseek_sector(fd, sector, offset)
- int fd
- long sector
- long offset
- CODE:
- RETVAL = lseek64(fd, (off64_t) sector * SECTORSIZE + offset, SEEK_SET) >= 0;
- OUTPUT:
- RETVAL
-
-int
-isBurner(fd)
- int fd
- CODE:
- RETVAL = ioctl(fd, CDROM_GET_CAPABILITY) & CDC_CD_RW;
- OUTPUT:
- RETVAL
-
-int
-isDvdDrive(fd)
- int fd
- CODE:
- RETVAL = ioctl(fd, CDROM_GET_CAPABILITY) & CDC_DVD;
- OUTPUT:
- RETVAL
-
-char *
-floppy_info(name)
- char * name
- CODE:
- int fd = open(name, O_RDONLY | O_NONBLOCK);
- RETVAL = NULL;
- if (fd != -1) {
- char drivtyp[17];
- ioctl(fd, FDGETDRVTYP, (void *)drivtyp);
- RETVAL = drivtyp;
- close(fd);
- }
- OUTPUT:
- RETVAL
-
-unsigned int
-total_sectors(fd)
- int fd
- CODE:
- {
- long s;
- RETVAL = ioctl(fd, BLKGETSIZE, &s) == 0 ? s : 0;
- }
- OUTPUT:
- RETVAL
-
-void
-unlimit_core()
- CODE:
- {
- struct rlimit rlim = { RLIM_INFINITY, RLIM_INFINITY };
- setrlimit(RLIMIT_CORE, &rlim);
- }
-
-int
-getlimit_core()
- CODE:
- {
- struct rlimit rlim;
- getrlimit(RLIMIT_CORE, &rlim);
- RETVAL = rlim.rlim_cur;
- }
- OUTPUT:
- RETVAL
-
-void
-openlog(ident)
- char *ident
- CODE:
- openlog(ident, 0, 0);
-
-void
-closelog()
-
-void
-syslog(priority, mesg)
- int priority
- char *mesg
- CODE:
- syslog(priority, mesg);
-
-void
-setsid()
-
-void
-_exit(status)
- int status
-
-int
-detectSMP()
-
-void
-pci_probe(probe_type)
- int probe_type
- PPCODE:
- struct pciusb_entries entries = pci_probe(probe_type);
- 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%s\t%s\t%s",
- e.vendor, e.device, e.subvendor, e.subdevice, e.pci_bus, e.pci_device, e.pci_function,
- pci_class2text(e.class_), e.module ? e.module : "unknown", e.text);
- PUSHs(sv_2mortal(newSVpv(buf, 0)));
- }
- pciusb_free(&entries);
-
-void
-usb_probe()
- PPCODE:
- struct pciusb_entries entries = usb_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%s\t%s\t%s",
- e.vendor, e.device, usb_class2text(e.class_), e.module ? e.module : "unknown", e.text);
- PUSHs(sv_2mortal(newSVpv(buf, 0)));
- }
- pciusb_free(&entries);
-
-unsigned int
-getpagesize()
-
-int
-hasNetDevice(device)
- char * device
- CODE:
- struct ifreq req;
- int s = socket(AF_INET, SOCK_DGRAM, 0);
- if (s == -1) { RETVAL = 0; return; }
-
- strcpy(req.ifr_name, device);
-
- RETVAL = ioctl(s, SIOCGIFFLAGS, &req) == 0;
- close(s);
- OUTPUT:
- RETVAL
-
-int
-addDefaultRoute(gateway)
- char *gateway
- CODE:
- struct rtentry route;
- struct sockaddr_in addr;
- int s = socket(AF_INET, SOCK_DGRAM, 0);
- if (s == -1) { RETVAL = 0; return; }
-
- memset(&route, 0, sizeof(route));
-
- addr.sin_family = AF_INET;
- addr.sin_port = 0;
- inet_aton(gateway, &addr.sin_addr);
- memcpy(&route.rt_gateway, &addr, sizeof(addr));
-
- addr.sin_addr.s_addr = INADDR_ANY;
- memcpy(&route.rt_dst, &addr, sizeof(addr));
- memcpy(&route.rt_genmask, &addr, sizeof(addr));
-
- route.rt_flags = RTF_UP | RTF_GATEWAY;
- route.rt_metric = 0;
-
- RETVAL = !ioctl(s, SIOCADDRT, &route);
- OUTPUT:
- RETVAL
-
-char *
-kernel_version()
- CODE:
- struct utsname u;
- if (uname(&u) == 0) RETVAL = u.release; else RETVAL = NULL;
- OUTPUT:
- RETVAL
-
-int
-prom_open()
-
-void
-prom_close()
-
-int
-prom_getsibling(node)
- int node
-
-int
-prom_getchild(node)
- int node
-
-void
-prom_getopt(key)
- char *key
- PPCODE:
- int lenp = 0;
- char *value = NULL;
- value = prom_getopt(key, &lenp);
- EXTEND(sp, 1);
- if (value != NULL) {
- PUSHs(sv_2mortal(newSVpv(value, 0)));
- } else {
- PUSHs(&PL_sv_undef);
- }
-
-void
-prom_setopt(key, value)
- char *key
- char *value
-
-void
-prom_getproperty(key)
- char *key
- PPCODE:
- int lenp = 0;
- char *value = NULL;
- value = prom_getproperty(key, &lenp);
- EXTEND(sp, 1);
- if (value != NULL) {
- PUSHs(sv_2mortal(newSVpv(value, lenp)));
- } else {
- PUSHs(&PL_sv_undef);
- }
-
-void
-prom_getstring(key)
- char *key
- PPCODE:
- int lenp = 0;
- char *value = NULL;
- value = prom_getproperty(key, &lenp);
- EXTEND(sp, 1);
- if (value != NULL) {
- PUSHs(sv_2mortal(newSVpv(value, 0)));
- } else {
- PUSHs(&PL_sv_undef);
- }
-
-int
-prom_getbool(key)
- char *key
-
-void
-initSilo()
-
-char *
-disk2PromPath(disk)
- unsigned char *disk
-
-int
-hasAliases()
-
-char *
-promRootName()
-
-void
-setPromVars(linuxAlias, bootDevice)
- char *linuxAlias
- char *bootDevice
-
-char *
-iconv(s, from_charset, to_charset)
- char *s
- char *from_charset
- char *to_charset
- CODE:
- iconv_t cd = iconv_open(to_charset, from_charset);
- RETVAL = s;
- if (cd != (iconv_t) (-1)) {
- size_t s_len = strlen(RETVAL);
- char *buf = alloca(3 * s_len + 10); /* 10 for safety, it should not be needed */
- {
- char *ptr = buf;
- size_t ptr_len = 3 * s_len + 10;
- if ((iconv(cd, &s, &s_len, &ptr, &ptr_len)) != (size_t) (-1)) {
- *ptr = 0;
- RETVAL = buf;
- }
- }
- iconv_close(cd);
- }
- OUTPUT:
- RETVAL
-
-char *
-standard_charset()
- CODE:
- RETVAL = nl_langinfo(CODESET);
- OUTPUT:
- RETVAL
-
-';
-
-$ENV{C_RPM} and print '
-char *
-rpmErrorString()
-
-void
-rpmSetVeryVerbose()
- CODE:
- rpmSetVerbosity(RPMMESS_DEBUG);
-
-void
-rpmErrorSetCallback(fd)
- int fd
- CODE:
- rpmError_callback_data = fd;
- rpmErrorSetCallback(rpmError_callback);
-
-int
-rpmvercmp(char *a, char *b);
-';
-
-@macros = (
- [ qw(int S_IFCHR S_IFBLK S_IFIFO KDSKBENT KT_SPEC NR_KEYS MAX_NR_KEYMAPS BLKRRPART TIOCSCTTY
- HDIO_GETGEO BLKGETSIZE LOOP_GET_STATUS
- MS_MGC_VAL MS_RDONLY O_NONBLOCK F_SETFL F_GETFL O_CREAT SECTORSIZE WNOHANG
- VT_ACTIVATE VT_WAITACTIVE VT_GETSTATE CDROM_LOCKDOOR CDROMEJECT
- LOG_WARNING LOG_INFO LOG_LOCAL1
- ) ],
-);
-
-$\= "\n";
-print;
-
-foreach (@macros) {
- my ($type, @l) = @$_;
- foreach (@l) {
- print<< "END"
-$type
-$_()
- CODE:
- RETVAL = $_;
-
- OUTPUT:
- RETVAL
-
-END
-
- }
-}
diff --git a/perl-install/class_discard.pm b/perl-install/class_discard.pm
deleted file mode 100644
index 7ecd1375b..000000000
--- a/perl-install/class_discard.pm
+++ /dev/null
@@ -1,11 +0,0 @@
-package class_discard; # $Id$
-
-use log;
-
-sub new { bless {}, "class_discard" }
-
-sub AUTOLOAD {
- log::l("class_discard: $AUTOLOAD called at ", caller);
-}
-
-1;
diff --git a/perl-install/commands b/perl-install/commands
deleted file mode 100755
index baa02f232..000000000
--- a/perl-install/commands
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/perl
-
-use diagnostics;
-use strict;
-
-use lib qw(/usr/bin/perl-install .);
-use common;
-use commands;
-
-my $progname = basename($0);
-
-# hack as some functions are defined by perl... so chmod -> chmod_
-&{$commands::{$progname} || $commands::{$progname . "_"} || \&err}(@ARGV), exit 0;
-
-sub err { die "$0: unknown program (unimplemented)\n"; }
diff --git a/perl-install/commands.pm b/perl-install/commands.pm
deleted file mode 100644
index 1c19a87db..000000000
--- a/perl-install/commands.pm
+++ /dev/null
@@ -1,587 +0,0 @@
-#-########################################################################
-#- This file implement many common shell commands:
-#- true, false, cat, which, dirname, basename, rmdir, lsmod, grep, tr,
-#- mount, umount, mkdir, mknod, ln, rm, chmod, chown, mkswap, swapon,
-#- swapoff, ls, cp, ps, dd, head, tail, strings, hexdump, more, insmod,
-#- modprobe, route, df, kill, lspci, lssbus, dmesg, sort, du,
-#-########################################################################
-package commands; # $Id$
-
-use diagnostics;
-use strict;
-use vars qw($printable_chars);
-
-#-######################################################################################
-#- misc imports
-#-######################################################################################
-use MDK::Common::System;
-use common;
-
-#-#####################################################################################
-#- Globals
-#-#####################################################################################
-my $BUFFER_SIZE = 1024;
-
-#-######################################################################################
-#- Functions
-#-######################################################################################
-sub getopts {
- my $o = shift;
- my @r = map { '' } (@_ = split //, $_[0]);
- while (1) {
- local $_ = $o->[0];
- $_ && /^-/ or return @r;
- for (my $i = 0; $i < @_; $i++) { /$_[$i]/ and $r[$i] = $_[$i]; }
- shift @$o;
- }
- @r;
-}
-
-sub true { exit 0 }
-sub false { exit 1 }
-sub cat { @ARGV = @_; print while <> }
-sub which { ARG: foreach (@_) { foreach my $c (split /:/, $ENV{PATH}) { -x "$c/$_" and print("$c/$_\n"), next ARG; }}}
-sub dirname_ { print dirname(@_), "\n" }
-sub basename_ { print basename(@_), "\n" }
-sub rmdir_ { foreach (@_) { rmdir $_ or die "rmdir: can't remove $_\n" } }
-sub lsmod { print "Module Size Used by\n"; cat("/proc/modules"); }
-
-sub grep_ {
- my ($h, $v, $i) = getopts(\@_, qw(hvi));
- @_ == 0 || $h and die "usage: grep <regexp> [files...]\n";
- my $r = shift;
- $r = qr/$r/i if $i;
- @ARGV = @_; (/$r/ ? $v || print : $v && print) while <>;
-}
-
-sub tr_ {
- my ($s, $c, $d) = getopts(\@_, qw(s c d));
- @_ >= 1 + (!$d || $s) or die "usage: tr [-c] [-s [-d]] <set1> <set2> [files...]\n or tr [-c] -d <set1> [files...]\n";
- my $set1 = shift;
- my $set2; !$d || $s and $set2 = shift;
- @ARGV = @_;
- eval "(tr/$set1/$set2/$s$d$c, print) while <>";
-}
-
-sub mount {
- @_ or return cat("/proc/mounts");
- my ($t, $r) = getopts(\@_, qw(tr));
- my $fs = $t && shift;
-
- @_ == 2 or die "usage: mount [-r] [-t <fs>] <device> <dir>\n",
- " (use -r for readonly)\n",
- " (if /dev/ is left off the device name, a temporary node will be created)\n";
-
- my ($dev, $where) = @_;
- $fs ||= $where =~ /:/ ? "nfs" :
- $dev =~ /fd/ ? "vfat" : "ext2";
-
- require fs;
- require modules;
- modules::load_dependencies("/modules/modules.dep");
- fs::mount($dev, $where, $fs, $r);
-}
-
-sub umount {
- @_ == 1 or die "umount expects a single argument\n";
-
- require fs;
- fs::umount($_[0]);
-}
-
-sub mkdir_ {
- my ($rec) = getopts(\@_, qw(p));
- mkdir_p($_) foreach @_;
-}
-
-
-sub mknod {
- if (@_ == 1) {
- require devices;
- eval { devices::make($_[0]) }; $@ and die "mknod: failed to create $_[0]\n";
- } elsif (@_ == 4) {
- require c;
- my $mode = $ {{"b" => c::S_IFBLK(), "c" => c::S_IFCHR()}}{$_[1]} or die "unknown node type $_[1]\n";
- syscall_('mknod', my $a = $_[0], $mode | 0600, makedev($_[2], $_[3])) or die "mknod failed: $!\n";
- } else { die "usage: mknod <path> [b|c] <major> <minor> or mknod <path>\n"; }
-}
-
-sub ln {
- my ($force, $soft) = getopts(\@_, qw(fs));
- @_ >= 1 or die "usage: ln [-s] [-f] <source> [<dest>]\n";
-
- my ($source, $dest) = @_;
- $dest ||= basename($source);
-
- $force and unlink $dest;
-
- ($soft ? symlink($source, $dest) : link($source, $dest)) or die "ln failed: $!\n";
-}
-
-sub rm {
- my ($rec, undef) = getopts(\@_, qw(rf));
-
- my $rm; $rm = sub {
- foreach (@_) {
- if (!-l $_ && -d $_) {
- $rec or die "$_ is a directory\n";
- &$rm(glob_($_));
- rmdir $_ or die "can't remove directory $_: $!\n";
- } else { unlink $_ or die "rm of $_ failed: $!\n" }
- }
- };
- &$rm(@_);
-}
-
-sub chmod_ {
- @_ >= 2 or die "usage: chmod <mode> <files>\n";
-
- my $mode = shift;
- $mode =~ /^[0-7]+$/ or die "illegal mode $mode\n";
-
- foreach (@_) { chmod oct($mode), $_ or die "chmod failed $_: $!\n" }
-}
-
-sub chown_ {
- my ($rec, undef) = getopts(\@_, qw(r));
- local $_ = shift or die "usage: chown [-r] name[.group] <files>\n";
-
- my ($name, $group) = (split('\.'), $_);
-
- my ($uid, $gid) = (getpwnam($name) || $name, getgrnam($group) || $group);
-
- my $chown; $chown = sub {
- foreach (@_) {
- chown $uid, $gid, $_ or die "chown of file $_ failed: $!\n";
- -d $_ && $rec and &$chown(glob_($_));
- }
- };
- &$chown(@_);
-}
-
-sub mkswap {
- @_ == 1 or die "mkswap <device>\n";
- require swap;
- swap::enable($_[0], 0);
-}
-
-sub swapon {
- @_ == 1 or die "swapon <file>\n";
- require swap;
- swap::swapon($_[0]);
-}
-sub swapoff {
- @_ == 1 or die "swapoff <file>\n";
- require swap;
- swap::swapoff($_[0]);
-}
-
-sub uncpio {
- @_ and die "uncpio reads from stdin\n";
-
-# cpioInstallArchive(gzdopen(0, "r"), NULL, 0, NULL, NULL, &fail);
-}
-
-
-sub rights {
- my $r = '-' x 9;
- my @rights = (qw(x w r x w r x w r), ['t', 0], ['s', 3], ['s', 6]);
- for (my $i = 0; $i < @rights; $i++) {
- if (vec(pack("S", $_[0]), $i, 1)) {
- my ($val, $place) = $i >= 9 ? @{$rights[$i]} : ($rights[$i], $i);
- my $old = \substr($r, 8 - $place, 1);
- $$old = ($$old eq '-' && $i >= 9) ? uc $val : $val;
- }
- }
- my @types = split //, "_pc_d_b_-_l_s";
- $types[$_[0] >> 12 & 0xf] . $r;
-}
-
-sub displaySize {
- my $m = $_[0] >> 12;
- $m == 4 || $m == 8 || $m == 10;
-}
-
-sub ls {
- my ($l , $h) = getopts(\@_, qw(lh));
- $h and die "usage: ls [-l] <files...>\n";
-
- @_ or @_ = '.';
- @_ == 1 && -d $_[0] and @_ = glob_($_[0]);
- foreach (sort @_) {
- if ($l) {
- my @s = lstat or warn("can't stat file $_\n"), next;
- formline(
-"@<<<<<<<<< @<<<<<<< @<<<<<<< @>>>>>>>> @>>>>>>>>>>>>>>> @*\n",
- rights($s[2]), getpwuid $s[4] || $s[4], getgrgid $s[5] || $s[5],
- displaySize($s[2]) ? $s[7] : join(", ", unmakedev($s[6])),
- scalar localtime $s[9], -l $_ ? "$_ -> " . readlink $_ : $_);
- print $^A; $^A = '';
- } else { print "$_\n"; }
- }
-}
-sub cp {
- my ($force) = getopts(\@_, qw(f));
- @_ >= 2 or die "usage: cp [-f] <sources> <dest>\n(this cp does -Rl by default)\n";
-
- my $cp; $cp = sub {
- my $dest = pop @_;
-
- @_ or return;
- @_ == 1 || -d $dest or die "cp: copying multiple files, but last argument ($dest) is not a directory\n";
-
- foreach my $src (@_) {
- my $dest = $dest;
- -d $dest and $dest .= "/" . basename($src);
-
- if (-e $dest) {
- $force ? unlink $dest : die "file $dest already exist\n";
- }
-
- if (-d $src) {
- -d $dest or mkdir $dest, (stat($src))[2] or die "mkdir: can't create directory $dest: $!\n";
- &$cp(glob_($src), $dest);
- } elsif (-l $src) {
- unless (symlink((readlink($src) || die "readlink failed: $!"), $dest)) {
- my $msg = "symlink: can't create symlink $dest: $!\n";
- $force ? warn $msg : die $msg;
- }
- } else {
- local (*F, *G);
- open F, $src or die "can't open $src for reading: $!\n";
- open G, "> $dest" or $force or die "can't create $dest : $!\n";
- local $_;
- while (<F>) { print G $_ }
- chmod((stat($src))[2], $dest);
- }
- }
- };
- &$cp(@_);
-}
-
-sub ps {
- @_ and die "usage: ps\n";
- my ($pid, $rss, $cpu, $cmd);
- my ($uptime) = split ' ', first(cat_("/proc/uptime"));
- my $hertz = 100;
-
- require c;
- my $page = c::getpagesize() / 1024;
-
- open PS, ">&STDOUT";
- format PS_TOP =
- PID RSS %CPU CMD
-.
- format PS =
-@>>>> @>>>> @>>> @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-$pid, $rss, $cpu, $cmd
-.
- foreach $pid (sort {$a <=> $b} grep { /\d+/ } all('/proc')) {
- my @l = split(' ', cat_("/proc/$pid/stat"));
- $cpu = sprintf "%2.1f", max(0, min(99, ($l[13] + $l[14]) * 100 / $hertz / ($uptime - $l[21] / $hertz)));
- $rss = (split ' ', cat_("/proc/$pid/stat"))[23] * $page;
- (($cmd) = cat_("/proc/$pid/cmdline")) =~ s/\0/ /g;
- $cmd ||= (split ' ', (cat_("/proc/$pid/stat"))[0])[1];
- write PS;
- }
-}
-
-
-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);
- 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't open file $h{if}\n";
- ref $h{of} eq 'GLOB' ? *OF = $h{of} : sysopen(OF, $h{of}, 0x41) || die "error: can't 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't read block $nb\n" : last;
- syswrite(OF, $tmp) or die "error: can't write block $nb\n";
- $read < $h{bs} and $read = 1, last;
- }
- print STDERR "\r$nb+$read records in\n";
- print STDERR "$nb+$read records out\n";
-}
-
-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;
- local *F; @_ ? open(F, $_[0]) || die "error: can't open file $_[0]\n" : (*F = *STDIN);
-
- local $_;
- if ($0 eq 'head') {
- while (<F>) { $n-- or return; print }
- } else {
- @_ = (); while (<F>) { push @_, $_; @_ > $n and shift; }
- print @_;
- }
-}
-sub head { $0 = 'head'; &head_tail }
-sub tail { $0 = 'tail'; &head_tail }
-
-sub strings {
- my ($h, $o, $n) = getopts(\@_, qw(hon));
- $h and die "usage: strings [-o] [-n min-length] [<files>]\n";
- $n = $n ? shift : 4;
- $/ = "\0"; @ARGV = @_; my $l = 0; while (<>) {
- while (/[$printable_chars]{$n,}/og) {
- printf "%07d ", ($l + length $') if $o;
- print "$&\n" ;
- }
- $l += length;
- } continue { $l = 0 if eof }
-}
-
-sub hexdump {
- my $i = 0; $/ = \16; @ARGV = @_; while (<>) {
- printf "%08lX ", $i; $i += 16;
- print join(" ", (map { sprintf "%02X", $_ } unpack("C*", $_)),
- (s/[^$printable_chars]/./og, $_)[1]), "\n";
- }
-}
-
-sub more {
- @ARGV = @_;
- require devices;
- my $tty = devices::make('tty');
- local *IN; open IN, "<$tty" or die "can't open $tty\n";
- my $n = 0; while (<>) {
- if (++$n == 25) {
- my $v = <IN>;
- $v =~ /^q/ and exit 0;
- $n = 0;
- }
- print
- }
-}
-
-sub pack_ {
- my $t;
- foreach (@_) {
- if (-d $_) {
- pack_(glob_($_));
- } else {
- print -s $_, "\n";
- print $_, "\n";
-
- local *F;
- open F, $_ or die "can't read file $_: $!\n";
- while (read F, $t, $BUFFER_SIZE) { print $t; }
- }
- }
-}
-
-sub unpack_ {
- my $t;
- @_ == 1 or die "give me one and only one file to unpack\n";
- local *F;
- open F, $_[0] or die "can't open file $_: $!\n";
- while (1) {
- my $size = chomp_(scalar <F>);
- defined $size or last;
- $size =~ /^\d+$/ or die "bad format (can't find file size)\n";
- my $filename = chomp_(scalar <F>) or die "expecting filename\n";
-
- print "$filename\n";
- my $dir = dirname($filename);
- -d $dir or mkdir_p($dir);
-
- local *G;
- open G, "> $filename" or die "can't write file $filename: $!\n";
- while ($size) {
- $size -= read(F, $t, min($size, $BUFFER_SIZE)) || die "data for file $filename is missing\n";
- print G $t or die "error writing to file $filename: $!\n";
- }
- }
-}
-
-sub insmod {
- my ($h) = getopts(\@_, qw(h));
- $h || @_ == 0 and die "usage: insmod <module> [options]\n";
- my $f = local $_ = shift;
-
- require run_program;
-
- #- try to install the module if it exist else extract it from archive.
- #- needed for cardmgr.
- unless (-r $f) {
- $_ = $1 if m@.*/([^/]*)\.o@;
- unless (-r ($f = "/lib/modules/$_.o")) {
- $f = "/tmp/$_.o";
- my $cz = "/lib/modules" . (arch() eq 'sparc64' && "64") . ".cz"; -e $cz or $cz .= "2";
- if (-e $cz) {
- eval {
- require packdrake;
- my $packer = new packdrake($cz, quiet => 1);
- $packer->extract_archive("/tmp", "$_.o");
- };
- } elsif (-e "/lib/modules.cpio.bz2") {
- run_program::run("cd /tmp ; $ENV{LD_LOADER} bzip2 -cd /lib/modules.cpio.bz2 | $ENV{LD_LOADER} cpio -i $_.o");
- } else {
- die "unable to find an archive for modules";
- }
- }
- }
- -r $f or die "can't find module $_";
- run_program::run(["/usr/bin/insmod_", "insmod"], "-f", $f, @_) or die("insmod $_ failed");
- unlink $f;
-}
-
-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([ $name, @_ ]);
-}
-
-sub route {
- @_ == 0 or die "usage: route\nsorry, no modification handled\n";
- my ($titles, @l) = cat_("/proc/net/route");
- my @titles = split ' ', $titles;
- my %l;
- open ROUTE, ">&STDOUT";
- format ROUTE_TOP =
-Destination Gateway Mask Iface
-.
- format ROUTE =
-@<<<<<<<<<<<< @<<<<<<<<<<<< @<<<<<<<<<<<< @<<<<<<<
-$l{Destination}, $l{Gateway}, $l{Mask}, $l{Iface}
-.
- foreach (@l) {
- /^\s*$/ and next;
- @l{@titles} = split;
- $_ = join ".", reverse map { hex } unpack "a2a2a2a2", $_ foreach @l{qw(Destination Gateway Mask)};
- $l{Destination} = 'default' if $l{Destination} eq "0.0.0.0";
- $l{Gateway} = '*' if $l{Gateway} eq "0.0.0.0";
- write ROUTE;
- }
-}
-
-sub df {
- my ($h) = getopts(\@_, qw(h));
- my ($dev, $size, $free, $used, $use, $mntpoint);
- open DF, ">&STDOUT";
- format DF_TOP =
-Filesystem Size Used Avail Use Mounted on
-.
- format DF =
-@<<<<<<<<<<<<<<<< @>>>>>>> @>>>>>>> @>>>>>>> @>>>>>% @<<<<<<<<<<<<<<<<<<<<<<<<<
-$dev, $size, $used, $free, $use, $mntpoint
-.
- my %h;
- foreach (cat_("/proc/mounts"), cat_("/etc/mtab")) {
- ($dev, $mntpoint) = split;
- $h{$dev} = $mntpoint;
- }
- foreach $dev (sort keys %h) {
- ($size, $free) = MDK::Common::System::df($mntpoint = $h{$dev});
- $size or next;
-
- $use = int (100 * ($size - $free) / $size);
- $used = $size - $free;
- if ($h) {
- $used = int ($used / 1024) . "M";
- $size = int ($size / 1024) . "M";
- $free = int ($free / 1024) . "M";
- }
- write DF if $size;
- }
-}
-
-sub kill {
- my $signal = 15;
- @_ or die "usage: kill [-<signal>] pids\n";
- $signal = (shift, $1)[1] if $_[0] =~ /^-(.*)/;
- kill $signal, @_ or die "kill failed: $!\n";
-}
-
-sub lspci {
- require detect_devices;
- print join "\n", detect_devices::stringlist(1), '';
-}
-*lssbus = *lspci;
-
-sub dmesg { print cat_("/tmp/syslog"); }
-
-sub sort {
- my ($n, $h) = getopts(\@_, qw(nh));
- $h and die "usage: sort [-n] [<file>]\n";
- local *F; @_ ? open(F, $_[0]) || die "error: can't open file $_[0]\n" : (*F = *STDIN);
- if ($n) {
- print sort { $a <=> $b } <F>;
- } else {
- print sort <F>;
- }
-}
-
-sub du {
- my ($s, $h) = getopts(\@_, qw(sh));
- $h || !$s and die "usage: du -s [<directories>]\n";
-
- my $f; $f = sub {
- my ($e) = @_;
- my $s = (lstat($e))[12];
- $s += sum(map { &$f($_) } glob_("$e/*")) if !-l $e && -d $e;
- $s;
- };
- print &$f($_) >> 1, "\t$_\n" foreach @_ ? @_ : glob_("*");
-}
-
-sub install_cpio($$;@) {
- my ($dir, $name, @more) = @_;
-
- return "$dir/$name" if -e "$dir/$name";
-
- my $cpio = "$dir.cpio.bz2";
- -e $cpio or return;
-
- eval { rm("-r", $dir) };
- mkdir $dir, 0755;
- require run_program;
-
- my $more = join " ", map { $_ && "$_ $_/*" } @more;
- run_program::run("cd $dir ; $ENV{LD_LOADER} bzip2 -cd $cpio | $ENV{LD_LOADER} cpio -id $name $name/* $more");
-
- "$dir/$name";
-}
-
-sub bug {
- my ($h) = getopts(\@_, "h");
- $h and die "usage: bug\nput file report.bug on fat formatted floppy\n";
-
- require detect_devices;
- mount devices::make(detect_devices::floppy()), "/fd0";
-
- require install_any;
- output("/fd0/report.bug", install_any::report_bug("/mnt")); #- no other way :-(
- umount "/fd0";
- common::sync();
-}
-
-sub loadkeys {
- my ($h) = getopts(\@_, "h");
- $h || @_ != 1 and die "usage: loadkeys <keyboard>\n";
-
- require keyboard;
- keyboard::setup($_[0]);
-}
-
-sub sync { common::sync() }
-
-#-######################################################################################
-#- Wonderful perl :(
-#-######################################################################################
-1; #
-
diff --git a/perl-install/common.pm b/perl-install/common.pm
deleted file mode 100644
index c2e853694..000000000
--- a/perl-install/common.pm
+++ /dev/null
@@ -1,190 +0,0 @@
-package common; # $Id$
-
-use MDK::Common;
-use MDK::Common::System;
-use diagnostics;
-use strict;
-use vars qw(@ISA @EXPORT $SECTORSIZE);
-
-@ISA = qw(Exporter);
-# no need to export ``_''
-@EXPORT = qw($SECTORSIZE __ translate untranslate formatXiB removeXiBSuffix formatTime setVirtual makedev unmakedev salt internal_error);
-
-# perl_checker: RE-EXPORT-ALL
-push @EXPORT, @MDK::Common::EXPORT;
-
-
-#-#####################################################################################
-#- Globals
-#-#####################################################################################
-$SECTORSIZE = 512;
-
-#-#####################################################################################
-#- Functions
-#-#####################################################################################
-
-
-sub _ {
- my $s = shift @_; my $t = translate($s);
- sprintf $t, @_;
-}
-sub __ { $_[0] }
-
-sub salt {
- my ($nb) = @_;
- require devices;
- local *F;
- open F, devices::make("random") or die "missing random";
- my $s; read F, $s, $nb;
- local $_ = pack "b8" x $nb, unpack "b6" x $nb, $s;
- tr [\0-\x3f] [0-9a-zA-Z./];
- $_;
-}
-
-sub makedev { ($_[0] << 8) | $_[1] }
-sub unmakedev { $_[0] >> 8, $_[0] & 0xff }
-
-sub translate {
- my ($s) = @_;
- $s ? c::dgettext('libDrakX', $s) : '';
-}
-
-sub untranslate {
- my $s = shift || return;
- foreach (@_) { translate($_) eq $s and return $_ }
- die "untranslate failed";
-}
-
-BEGIN { undef *availableRamMB }
-sub availableRamMB() {
- my $s = MDK::Common::System::availableRamMB();
- #- HACK HACK: if i810 and memsize
- require detect_devices;
- return $s - 1 if $s == 128 && grep { $_->{driver} =~ /i810/ } detect_devices::probeall();
- $s;
-}
-
-sub setVirtual {
- my $vt = '';
- local *C;
- sysopen C, "/dev/console", 2 or die "failed to open /dev/console: $!";
- ioctl(C, c::VT_GETSTATE(), $vt) or die "ioctl VT_GETSTATE failed";
- ioctl(C, c::VT_ACTIVATE(), $_[0]) or die "ioctl VT_ACTIVATE failed";
- ioctl(C, c::VT_WAITACTIVE(), $_[0]) or die "ioctl VT_WAITACTIVE failed";
- unpack "S", $vt;
-}
-
-
-sub removeXiBSuffix {
- local $_ = shift;
-
- /(\d+)\s*kB?$/i and return $1 * 1024;
- /(\d+)\s*MB?$/i and return $1 * 1024 * 1024;
- /(\d+)\s*GB?$/i and return $1 * 1024 * 1024 * 1024;
- /(\d+)\s*TB?$/i and return $1 * 1024 * 1024 * 1024 * 1024;
- $_;
-}
-sub formatXiB {
- my ($newnb, $newbase) = (@_, 1);
- my ($nb, $base);
- my $decr = sub {
- ($nb, $base) = ($newnb, $newbase);
- $base >= 1024 ? ($newbase = $base / 1024) : ($newnb = $nb / 1024);
- };
- foreach ('', _("KB"), _("MB"), _("GB")) {
- $decr->();
- if ($newnb < 1 && $newnb * $newbase < 1) {
- my $v = $nb * $base;
- my $s = $v < 10 && int(10 * $v - 10 * int($v));
- return int($v) . ($s ? ".$s" : '') . $_;
- }
- }
- int($newnb * $newbase) . _("TB");
-}
-
-sub formatTime {
- my ($s, $m, $h) = gmtime($_[0]);
- if ($h) {
- sprintf "%02d:%02d", $h, $m;
- } elsif ($m > 1) {
- _("%d minutes", $m);
- } elsif ($m == 1) {
- _("1 minute");
- } else {
- _("%d seconds", $s);
- }
-}
-
-sub usingRamdisk { scalar(grep { /ram3/ } cat_("/proc/mounts")) }
-
-sub expand_symlinks_but_simple {
- my ($f) = @_;
- my $link = readlink($f);
- my $f2 = expand_symlinks($f);
- if ($link && $link !~ m|/|) {
- # put back the last simple symlink
- $f2 =~ s|\Q$link\E$|basename($f)|e;
- }
- $f2
-}
-
-sub sync { &MDK::Common::System::sync }
-
-# Group the list by n. Returns a reference of lists of length n
-sub group_n_lm {
- my $n = shift;
- my @l;
- push @l, [ splice(@_, 0, $n) ] while (@_);
- @l
-}
-
-sub screenshot_dir__and_move {
- my ($dir1, $dir2) = ("$::prefix/root", '/tmp/stage2');
- if (-e $dir1) {
- if (-e "$dir2/DrakX-screenshots") {
- cp_af("$dir2/DrakX-screenshots", $dir1);
- rm_rf("$dir2/DrakX-screenshots");
- }
- $dir1;
- } else {
- $dir2;
- }
-}
-
-sub take_screenshot {
- my ($in) = @_;
- my $dir = screenshot_dir__and_move() . '/DrakX-screenshots';
- my $warn;
- if (!-e $dir) {
- mkdir $dir or $in->ask_warn('', _("Can't make screenshots before partitioning")), return;
- $warn = 1;
- }
- my $nb = 1;
- $nb++ while -e "$dir/$nb.png";
- system("fb2png /dev/fb0 $dir/$nb.png 0");
-
- $in->ask_warn('', _("Screenshots will be available after install in %s", "/root/DrakX-screenshots")) if $warn;
-}
-
-sub join_lines {
- my @l;
- my $s;
- foreach (@_) {
- if (/^\s/) {
- $s .= $_;
- } else {
- push @l, $s if $s;
- $s = $_;
- }
- }
- @l, if_($s, $s);
-}
-
-sub internal_error {
- die "INTERNAL ERROR: $_[0]\n" . backtrace();
-}
-
-#-######################################################################################
-#- Wonderful perl :(
-#-######################################################################################
-1; #
diff --git a/perl-install/crypto.pm b/perl-install/crypto.pm
deleted file mode 100644
index fb15db673..000000000
--- a/perl-install/crypto.pm
+++ /dev/null
@@ -1,166 +0,0 @@
-package crypto; # $Id$
-
-use diagnostics;
-use strict;
-
-use MDK::Common::System;
-use common;
-use log;
-use ftp;
-
-my %url2land = (
- fr => _("France"),
- cr => _("Costa Rica"),
- be => _("Belgium"),
- cz => _("Czech Republic"),
- de => _("Germany"),
- gr => _("Greece"),
- no => _("Norway"),
- se => _("Sweden"),
- nl => _("Netherlands"),
- it => _("Italy"),
- at => _("Austria"),
- );
-
-my %land2tzs = (
- _("France") => [ 'Europe/Paris', 'Europe/Brussels', 'Europe/Berlin' ],
- _("Belgium") => [ 'Europe/Brussels', 'Europe/Paris', 'Europe/Berlin' ],
- _("Czech Republic") => [ 'Europe/Prague', 'Europe/Berlin' ],
- _("Germany") => [ 'Europe/Berlin', 'Europe/Prague' ],
- _("Greece") => [ 'Europe/Athens', 'Europe/Prague' ],
- _("Norway") => [ 'Europe/Oslo', 'Europe/Stockholm' ],
- _("Sweden") => [ 'Europe/Stockholm', 'Europe/Oslo' ],
- _("United States") => [ 'America/New_York', 'Canada/Atlantic', 'Asia/Tokyo', 'Australia/Sydney', 'Europe/Paris' ],
- _("Netherlands") => [ 'Europe/Amsterdam', 'Europe/Brussels', 'Europe/Berlin' ],
- _("Italy") => [ 'Europe/Rome', 'Europe/Brussels', 'Europe/Paris' ],
- _("Austria") => [ 'Europe/Vienna', 'Europe/Brussels', 'Europe/Berlin' ],
- );
-
-my %static_mirrors = (
-# "ackbar" => [ "Ackbar", "/updates", "a", "a" ],
- );
-
-my %mirrors = ();
-
-my %deps = (
- 'libcrypto.so.0' => 'openssl',
- 'libssl.so.0' => 'openssl',
- 'mod_sxnet.so' => 'mod_ssl-sxnet',
-);
-
-sub require2package { $deps{$_[0]} || $_[0] }
-sub mirror2text { $mirrors{$_[0]} && ($mirrors{$_[0]}[0] . '|' . $_[0]) }
-
-sub mirrors {
- unless (keys %mirrors) {
- #- contact the following URL to retrieve list of mirror.
- #- http://www.linux-mandrake.com/mirrorsfull.list
- require http;
- my $f = http::getFile("http://www.linux-mandrake.com/mirrorsfull.list");
-
- local $SIG{ALRM} = sub { die "timeout" };
- alarm 60;
- foreach (<$f>) {
- my ($arch, $url, $dir) = m|updates([^:]*):ftp://([^/]*)(/\S*)| or next;
- MDK::Common::System::compat_arch($arch) or
- log::l("ignoring updates from $url because of incompatible arch: $arch"), next;
- my $land = _("United States");
- foreach (keys %url2land) {
- my $qu = quotemeta $_;
- $url =~ /\.$qu(?:\..*)?$/ and $land = $url2land{$_};
- }
- $mirrors{$url} = [ $land, $dir ];
- }
- http::getFile('/XXX'); #- close connection.
- alarm 0;
-
- #- now add static mirror (in case of something wrong happened above).
- add2hash(\%mirrors, \%static_mirrors);
- }
- keys %mirrors;
-}
-
-sub bestMirror {
- my ($string) = @_;
- my %mirror2value;
-
- foreach my $url (mirrors()) {
- my $value = 0;
- my $cvalue = mirrors();
-
- $mirror2value{$url} ||= 1 + $cvalue;
- foreach (@{$land2tzs{$mirrors{$url}[0]} || []}) {
- $_ eq $string and $mirror2value{$url} > $value and $mirror2value{$url} = $value;
- (split '/')[0] eq (split '/', $string)[0] and $mirror2value{$url} > $cvalue and $mirror2value{$url} = $cvalue;
- ++$value;
- }
- }
- my ($min_value) = sort { $a <=> $b } values %mirror2value;
-
- my @possible = grep { $mirror2value{$_} == $min_value } keys %mirror2value;
- push @possible, grep { $mirror2value{$_} == $min_value } keys %mirror2value;
- push @possible, grep { $mirror2value{$_} == 1 + $min_value } keys %mirror2value;
-
- $possible[rand @possible];
-}
-
-#- hack to retrieve Mandrake Linux version...
-sub version {
- require pkgs;
- my $pkg = pkgs::packageByName($::o->{packages}, 'mandrake-release');
- return '8.2'; #- very dangerous but for testing waiting for post 8.2 distrib TODO
- $pkg && $pkg->version || '8.2'; #- safe but dangerous ;-)
-}
-
-sub dir { $mirrors{$_[0]}[1] . '/' . version() }
-sub ftp($) { ftp::new($_[0], dir($_[0])) }
-
-sub getFile {
- my ($file, $host) = @_;
- $host ||= $crypto::host;
- my $dir = dir($host) . ($file =~ /\.rpm$/ && "/RPMS");
- log::l("getting crypto file $file on directory $dir with login $mirrors{$host}[2]");
- my ($ftp, $retr) = ftp::new($host, $dir,
- $mirrors{$host}[2] ? $mirrors{$host}[2] : (),
- $mirrors{$host}[3] ? $mirrors{$host}[3] : ()
- );
- $$retr->close if $$retr;
- $$retr = $ftp->retr($file) or ftp::rewindGetFile();
- $$retr ||= $ftp->retr($file);
-}
-
-sub getPackages {
- my ($prefix, $packages, $mirror) = @_;
-
- $crypto::host = $mirror;
-
- #- check first if there is something to get...
- my $fhdlist = getFile("base/hdlist.cz", $mirror);
- unless ($fhdlist) {
- log::l("no updates available, bailing out");
- return;
- }
-
- #- extract hdlist of crypto, then depslist.
- require pkgs;
- my $update_medium = pkgs::psUsingHdlist($prefix, 'ftp', $packages, "hdlist-updates.cz", "1u", "RPMS",
- "Updates for Mandrake Linux " . version(), 1, $fhdlist) and
- log::l("read updates hdlist");
- #- keep in mind where is the URL prefix used according to mirror (for install_any::install_urpmi).
- $update_medium->{prefix} = "ftp://$mirror" . dir($mirror);
- #- (re-)enable the medium to allow install of package,
- #- make it an update medium (for install_any::install_urpmi).
- $update_medium->{selected} = 1;
- $update_medium->{update} = 1;
-
- return $update_medium;
-}
-
-sub get {
- my ($mirror, $dir, @files) = @_;
- foreach (@files) {
- log::l("crypto: downloading $_");
- ftp($mirror)->get($_, "$dir/$_")
- }
- int @files;
-}
diff --git a/perl-install/detect_devices.pm b/perl-install/detect_devices.pm
deleted file mode 100644
index f53f4d750..000000000
--- a/perl-install/detect_devices.pm
+++ /dev/null
@@ -1,663 +0,0 @@
-package detect_devices; # $Id$
-
-use diagnostics;
-use strict;
-use vars qw($pcitable_addons $usbtable_addons);
-
-#-######################################################################################
-#- misc imports
-#-######################################################################################
-use log;
-use common;
-use devices;
-use run_program;
-use c;
-
-#-#####################################################################################
-#- Globals
-#-#####################################################################################
-my @netdevices = map { my $l = $_; map { "$l$_" } (0..3) } qw(eth tr fddi plip);
-my %serialprobe = ();
-
-#-######################################################################################
-#- Functions
-#-######################################################################################
-sub dev_is_devfs { -e "/dev/.devfsd" }
-
-
-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
- #- BIOS boot harddrive will be
- #- 1. The first IDE device if IDE exists. Or
- #- 2. The first SCSI device if SCSI exists. Or
- #- 3. The first RAID device if RAID exists.
-
- getIDE(), getSCSI(), getDAC960(), getCompaqSmartArray(), getATARAID();
-}
-sub hds { grep { $_->{media_type} eq 'hd' && ($::isStandalone || !isRemovableDrive($_)) } get() }
-sub tapes { grep { $_->{media_type} eq 'tape' && ($::isStandalone || !isRemovableDrive($_)) } get() }
-sub cdroms { grep { $_->{media_type} eq 'cdrom' } get() }
-sub burners { grep { isBurner($_) } cdroms() }
-sub dvdroms { grep { isDvdDrive($_) } cdroms() }
-sub raw_zips { grep { member($_->{media_type}, 'fd', 'hd') && isZipDrive($_) } get() }
-#-sub jazzs { grep { member($_->{media_type}, 'fd', 'hd') && isJazzDrive($_) } get() }
-sub ls120s { grep { member($_->{media_type}, 'fd', 'hd') && isLS120Drive($_) } get() }
-sub zips {
- map {
- $_->{device} .= 4;
- $_->{devfs_device} = $_->{devfs_prefix} . '/part4';
- $_;
- } raw_zips();
-}
-
-sub cdroms__faking_ide_scsi {
- my @l = cdroms();
- return @l if $::isStandalone;
- if (my @l_ide = grep { $_->{bus} eq 'ide' && isBurner($_) } @l) {
- require modules;
- modules::add_alias('scsi_hostadapter', 'ide-scsi');
- my $nb = 1 + max(-1, map { $_->{device} =~ /scd(\d+)/ } @l);
- foreach my $e (@l_ide) {
- log::l("IDEBurner: $e->{device}");
- $e->{device} = "scd" . $nb++;
- }
- }
- @l;
-}
-sub zips__faking_ide_scsi {
- my @l = raw_zips();
- if (my @l_ide = grep { $_->{bus} eq 'ide' && $::isInstall } @l) {
- require modules;
- modules::add_alias('scsi_hostadapter', 'ide-scsi');
- my $nb = 1 + max(-1, map { if_($_->{device} =~ /sd(\w+)/, ord($1) - ord('a')) } getSCSI());
- foreach my $e (@l_ide) {
- my $faked = "sd" . chr(ord('a') + $nb++);
- log::l("IDE Zip: $e->{device} => $faked");
- $e->{device} = $faked;
- }
- }
- map { $_->{device} .= 4; $_ } @l;
-}
-
-sub floppies() {
- require modules;
- eval { modules::load("floppy") };
- my @fds = map {
- my $info = (!dev_is_devfs() || -e "/dev/fd$_") && c::floppy_info(devices::make("fd$_"));
- if_($info && $info ne '(null)', { device => "fd$_", devfs_device => "floppy/$_", media_type => 'fd', info => $info })
- } qw(0 1);
- my @ide = ls120s() and eval { modules::load("ide-floppy") };
-
- eval { modules::load("usb-storage") } if usbStorage();
- my @scsi = grep { $_->{media_type} eq 'fd' && !isZipDrive($_) && !isJazzDrive($_) } getSCSI();
- @ide, @scsi, @fds;
-}
-sub floppies_dev() { map { $_->{device} } floppies() }
-sub floppy { first(floppies_dev()) }
-#- example ls120, model = "LS-120 SLIM 02 UHD Floppy"
-
-sub get_sys_cdrom_info {
- my (@drives) = @_;
-
- my @drives_order;
- foreach (cat_("/proc/sys/dev/cdrom/info")) {
- my ($t, $l) = split ':';
- my @l = split ' ', $l;
- if ($t eq 'drive name') {
- @drives_order = map {
- s/^sr/scd/;
- my $dev = $_;
- first(grep { $_->{device} eq $dev } @drives);
- } @l;
- } else {
- my $capacity;
- if ($t eq 'Can write CD-R') {
- $capacity = 'burner';
- } elsif ($t eq 'Can read DVD') {
- $capacity = 'DVD';
- }
- if ($capacity) {
- each_index {
- ($drives_order[$::i] || {})->{capacity} .= "$capacity " if $_;
- } @l;
- }
- }
- }
-}
-
-sub get_devfs_devices {
- my (@l) = @_;
-
- my %h = (cdrom => 'cd', hd => 'disc');
-
- foreach (@l) {
- my $t = $h{$_->{media_type}} or next;
- $_->{devfs_device} = $_->{devfs_prefix} . '/' . $t;
- }
-}
-
-sub isBurner {
- my ($e) = @_;
- $e->{capacity} =~ /burner/ and return 1;
-
- #- do not work for SCSI
- my $f = tryOpen($e->{device}); #- SCSI burner are not detected this way.
- $f && c::isBurner(fileno($f));
-}
-sub isDvdDrive {
- my ($e) = @_;
- $e->{capacity} =~ /DVD/ || $e->{info} =~ /DVD/ and return 1;
-
- #- do not work for SCSI
- my $f = tryOpen($e->{device});
- $f && c::isDvdDrive(fileno($f));
-}
-sub isZipDrive { $_[0]->{info} =~ /ZIP\s+\d+/ } #- accept ZIP 100, untested for bigger ZIP drive.
-sub isJazzDrive { $_[0]->{info} =~ /\bJAZZ?\b/i } #- accept "iomega jaz 1GB"
-sub isLS120Drive { $_[0]->{info} =~ /LS-?120|144MB/ }
-sub isRemovableDrive { &isZipDrive || &isLS120Drive || $_[0]->{media_type} eq 'fd' } #-or &isJazzDrive }
-
-sub isFloppyOrHD {
- my ($dev) = @_;
- require partition_table::raw;
- my $geom = partition_table::raw::get_geometry(devices::make($dev));
- $geom->{totalsectors} < 10 << 11 ? 'fd' : 'hd';
-}
-
-sub getSCSI() {
- my $err = sub { log::l("ERROR: unexpected line in /proc/scsi/scsi: $_[0]"); };
-
- my ($first, @l) = common::join_lines(cat_("/proc/scsi/scsi"));
- $first =~ /^Attached devices:/ or $err->($first);
-
- @l = map_index {
- my ($host, $channel, $id, $lun) = m/^Host: scsi(\d+) Channel: (\d+) Id: (\d+) Lun: (\d+)/ or $err->($_);
- my ($vendor, $model) = /^\s*Vendor:\s*(.*?)\s+Model:\s*(.*?)\s+Rev:/m or $err->($_);
- my ($type) = /^\s*Type:\s*(.*)/m or $err->($_);
- { info => "$vendor $model", channel => $channel, id => $id, lun => $lun,
- device => "sg$::i", devfs_prefix => sprintf('scsi/host%d/bus%d/target%d/lun%d', $host, $channel, $id, $lun),
- raw_type => $type, bus => 'SCSI' };
- } @l;
-
- each_index {
- my $dev = "sd" . chr($::i + ord('a'));
- put_in_hash $_, { device => $dev, media_type => isZipDrive($_) ? 'hd' : isFloppyOrHD($dev) };
- } grep { $_->{raw_type} =~ /Direct-Access/ } @l;
-
- each_index {
- put_in_hash $_, { device => "st$::i", media_type => 'tape' };
- } grep { $_->{raw_type} =~ /Sequential-Access/ } @l;
-
- each_index {
- put_in_hash $_, { device => "scd$::i", media_type => 'cdrom' };
- } grep { $_->{raw_type} =~ /CD-ROM|WORM/ } @l;
-
- each_index {
- put_in_hash $_, { media_type => 'scanner' };
- } grep { $_->{raw_type} =~ /Scanner/ } @l;
-
- get_devfs_devices(@l);
- get_sys_cdrom_info(@l);
- @l;
-}
-
-my %eide_hds = (
- "ASUS" => "Asus",
- "CD-ROM CDU" => "Sony",
- "CD-ROM Drive/F5D" => "ASUSTeK",
- "Compaq" => "Compaq",
- "CONNER" => "Conner Peripherals",
- "IBM" => "IBM",
- "FUJITSU" => "Fujitsu",
- "HITACHI" => "Hitachi",
- "Lite-On" => "Lite-On Technology Corp.",
- "LTN" => "Lite-On Technology Corp.",
- "IOMEGA" => "Iomega",
- "MAXTOR" => "Maxtor",
- "Maxtor" => "Maxtor",
- "Micropolis" => "Micropolis",
- "PLEXTOR" => "Plextor",
- "QUANTUM" => "Quantum",
- "SAMSUNG" => "Samsung",
- "Seagate " => "Seagate Technology",
- "ST3" => "Seagate Technology",
- "TEAC" => "Teac",
- "TOSHIBA" => "Toshiba",
- "TEAC" => "Teac",
- "TOSHIBA" => "Toshiba",
- "WDC" => "Western Digital Corp.",
-);
-
-
-sub getIDE() {
- my @idi;
-
- #- what about a system with absolutely no IDE on it, like some sparc machine.
- -e "/proc/ide" or return ();
-
- #- 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 =~ /^$_\b\s*(.*)/, $eide_hds{$_}, $1);
- } keys %eide_hds;
-
- my ($channel, $id) = ($num / 2, $num % 2);
- my $devfs_prefix = sprintf('ide/host0/bus%d/target%d/lun0', $channel, $id);
-
- push @idi, { media_type => $type, device => basename($d),
- devfs_prefix => $devfs_prefix,
- info => $info, channel => $channel, id => $id, bus => 'ide',
- Vendor => $vendor, Model => $model };
- }
- get_devfs_devices(@idi);
- get_sys_cdrom_info(@idi);
- @idi;
-}
-
-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 ($name) = m|/(.*)|;
- for (my $i = 0; -r ($f = "${prefix}$i"); $i++) {
- foreach (cat_($f)) {
- if (m|^\s*($name/.*?):|) {
- push @idi, { device => $1, info => "Compaq RAID logical disk", media_type => 'hd', bus => 'ida' };
- }
- }
- }
- }
- @idi;
-}
-
-sub getDAC960() {
- my %idi;
-
- #- We are looking for lines of this format:DAC960#0:
- #- /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, 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, bus => 'ataraid' };
- log::l("ATARAID: $device");
- }
- values %l;
-}
-
-sub getNet() {
- grep { !(($::isStandalone || $::live) && /plip/) && c::hasNetDevice($_) } @netdevices;
-}
-
-#sub getISDN() {
-# mapgrep(sub {member (($_[0] =~ /\s*(\w*):/), @netdevices), $1 }, split(/\n/, cat_("/proc/net/dev")));
-#}
-
-$pcitable_addons = <<'EOF';
-# add here lines conforming the pcitable format (0xXXXX\t0xXXXX\t"\w+"\t".*")
-EOF
-
-$usbtable_addons = <<'EOF';
-# add here lines conforming the usbtable format (0xXXXX\t0xXXXX\t"\w+"\t".*")
-EOF
-
-sub add_addons {
- my ($addons, @l) = @_;
-
- foreach (split "\n", $addons) {
- /^\s/ and die "bad detect_devices::probeall_addons line \"$_\"";
- s/^#.*//;
- s/"(.*?)"/$1/g;
- next if /^$/;
- my ($vendor, $id, $driver, $description) = split("\t", $_, 4) or die "bad detect_devices::probeall_addons line \"$_\"";
- foreach (@l) {
- $_->{vendor} == hex $vendor && $_->{id} == hex $id or next;
- put_in_hash($_, { driver => $driver, description => $description });
- }
- }
- @l;
-}
-
-sub pci_probe {
- my ($probe_type) = @_;
- log::l("full pci_probe") if $probe_type;
- add_addons($pcitable_addons, map {
- my %l;
- @l{qw(vendor id subvendor subid pci_bus pci_device pci_function media_type driver description)} = split "\t";
- $l{$_} = hex $l{$_} foreach qw(vendor id subvendor subid);
- $l{bus} = 'PCI';
- \%l
- } c::pci_probe($probe_type || 0));
-}
-
-sub usb_probe {
- -e "/proc/bus/usb/devices" or return ();
-
- add_addons($usbtable_addons, map {
- my %l;
- @l{qw(vendor id media_type driver description)} = split "\t";
- $l{$_} = hex $l{$_} foreach qw(vendor id);
- $l{bus} = 'USB';
- \%l
- } c::usb_probe());
-}
-
-sub pcmcia_probe {
- -e '/var/run/stab' || -e '/var/lib/pcmcia/stab' or return ();
-
- my (@devs, $desc);
- foreach (cat_('/var/run/stab'), cat_('/var/lib/pcmcia/stab')) {
- if (/^Socket\s+\d+:\s+(.*)/) {
- $desc = $1;
- } else {
- my (undef, $type, $module, undef, $device) = split;
- push @devs, { description => $desc, driver => $module, type => $type, device => $device };
- }
- }
- @devs;
-}
-
-# pci_probe with $probe_type is unsafe for pci! (bug in kernel&hardware)
-# pcmcia_probe provides field "device", used in network.pm
-# => probeall with $probe_type is unsafe
-sub probeall {
- my ($probe_type) = @_;
-
- return if $::noauto;
-
- require sbus_probing::main;
- pci_probe($probe_type), usb_probe(), pcmcia_probe(), sbus_probing::main::probe();
-}
-sub matching_desc {
- my ($regexp) = @_;
- grep { $_->{description} =~ /$regexp/i } probeall();
-}
-sub stringlist {
- map {
- sprintf("%-16s: %s%s%s",
- $_->{driver} ? $_->{driver} : 'unknown',
- $_->{description} eq '(null)' ? sprintf("Vendor=0x%04x Device=0x%04x", $_->{vendor}, $_->{id}) : $_->{description},
- $_->{media_type} ? sprintf(" [%s]", $_->{media_type}) : '',
- $_->{subid} && $_->{subid} != 0xffff ? sprintf(" SubVendor=0x%04x SubDevice=0x%04x", $_->{subvendor}, $_->{subid}) : '',
- );
- } probeall(@_);
-}
-
-sub tryOpen($) {
- local *F;
- sysopen F, devices::make($_[0]), c::O_NONBLOCK() and *F;
-}
-
-sub tryWrite($) {
- local *F;
- sysopen F, devices::make($_[0]), 1 | c::O_NONBLOCK() and *F;
-}
-
-sub syslog {
- -r "/tmp/syslog" and return map { /<\d+>(.*)/ } cat_("/tmp/syslog");
- `$ENV{LD_LOADER} /bin/dmesg`;
-}
-
-sub get_mac_model() {
- my $mac_model = cat_("/proc/device-tree/model") || die "Can't open /proc/device-tree/model";
- log::l("Mac model: $mac_model");
- $mac_model;
-}
-
-sub get_mac_generation() {
- my $generation = cat_("/proc/cpuinfo") || die "Can't open /proc/cpuinfo";
- my @genarray = split(/\n/, $generation);
- my $count = 0;
- while ($count <= @genarray) {
- if ($genarray[$count] =~ /pmac-generation/) {
- @genarray = split(/:/, $genarray[$count]);
- return $genarray[1];
- }
- $count++;
- }
- return "Unknown Generation";
-}
-
-sub hasSMP { c::detectSMP() }
-sub hasPCMCIA { $::o->{pcmcia} } #- because /proc/pcmcia seems not to be present on 2.4 at least (or use /var/run/stab)
-
-#- 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.
-sub isLaptop {
- hasPCMCIA() || (matching_desc('C&T.*655[45]\d') || matching_desc('C&T.*68554') ||
- matching_desc('Neomagic.*Magic(Media|Graph)') ||
- matching_desc('ViRGE.MX') || matching_desc('S3.*Savage.*[IM]X') ||
- matching_desc('ATI.*(Mobility|LT)'));
-}
-
-sub hasUltra66 {
- die "hasUltra66 deprecated";
- #- keep it BUT DO NOT USE IT as now included in kernel.
- cat_("/proc/cmdline") =~ /(ide2=(\S+)(\s+ide3=(\S+))?)/ and return $1;
-
- my @l = map { $_->{verbatim} } matching_desc('HPT|Ultra66') or return;
-
- my $ide = sprintf "ide2=0x%x,0x%x ide3=0x%x,0x%x",
- @l == 2 ?
- (map_index { hex($_) + (odd($::i) ? 1 : -1) } map { (split ' ')[3..4] } @l) :
- (map_index { hex($_) + (odd($::i) ? 1 : -1) } map { (split ' ')[3..6] } @l);
-
- log::l("HPT|Ultra66: found $ide");
- $ide;
-}
-
-sub whatParport() {
- my @res = ();
- foreach (0..3) {
- my $elem = {};
- local *F;
- open F, "/proc/parport/$_/autoprobe" or open F, "/proc/sys/dev/parport/parport$_/autoprobe" or next;
- {
- local $_;
- while (<F>) {
- if (/(.*):(.*);/) {
- $elem->{$1} = $2;
- $elem->{$1} =~ s/Hewlett[-\s_]Packard/HP/;
- $elem->{$1} =~ s/HEWLETT[-\s_]PACKARD/HP/;
- }
- }
- }
- push @res, { port => "/dev/lp$_", val => $elem};
- }
- @res;
-}
-
-sub usbMice { grep { $_->{media_type} =~ /\|Mouse/ && $_->{driver} !~ /Tablet:wacom/ ||
- $_->{driver} =~ /Mouse:USB/ } usb_probe() }
-sub usbWacom { grep { $_->{driver} =~ /Tablet:wacom/ } usb_probe() }
-sub usbKeyboards { grep { $_->{media_type} =~ /\|Keyboard/ } usb_probe() }
-sub usbStorage { grep { $_->{media_type} =~ /Mass Storage\|/ } usb_probe() }
-
-sub whatUsbport() {
- # The printer manufacturer and model names obtained with the usb_probe()
- # function were very messy, once there was a lot of noise around the
- # manufacturers name ("Inc.", "SA", "International", ...) and second,
- # all Epson inkjets answered with the name "Epson Stylus Color 760" which
- # lead many newbies to install their Epson Stylus Photo XXX as an Epson
- # Stylus Color 760 ...
- #
- # This routine based on an ioctl request gives very clean and correct
- # manufacturer and model names, so that they are easily matched to the
- # printer entries in the Foomatic database
- my $i;
- my @res = ();
- foreach $i (0..15) {
- my $port = "/dev/usb/lp$i";
- my $realport = devices::make("$port");
- next if (!$realport);
- next if (! -r $realport);
- open PORT, "$realport" or do next;
- my $idstr = "";
- # Calculation of IOCTL function 0x84005001 (to get device ID
- # string):
- # len = 1024
- # IOCNR_GET_DEVICE_ID = 1
- # LPIOC_GET_DEVICE_ID(len) =
- # _IOC(_IOC_READ, 'P', IOCNR_GET_DEVICE_ID, len)
- # _IOC(), _IOC_READ as defined in /usr/include/asm/ioctl.h
- # Use "eval" so that program does not stop when IOCTL fails
- eval{ my $output = "\0" x 1024;
- ioctl(PORT, 0x84005001, $output);
- $idstr = $output; } or do {
- close PORT;
- next;
- };
- close PORT;
- # Remove non-printable characters
- $idstr =~ tr/[\x00-\x1f]/\./;
- # Extract the printer data from the ID string
- my ($manufacturer, $model, $description) = ("", "", "");
- if (($idstr =~ /MFG:([^;]+);/) ||
- ($idstr =~ /MANUFACTURER:([^;]+);/)) {
- $manufacturer = $1;
- $manufacturer =~ s/Hewlett[-\s_]Packard/HP/;
- $manufacturer =~ s/HEWLETT[-\s_]PACKARD/HP/;
- }
- if (($idstr =~ /MDL:([^;]+);/) ||
- ($idstr =~ /MODEL:([^;]+);/)) {
- $model = $1;
- }
- if (($idstr =~ /DES:([^;]+);/) ||
- ($idstr =~ /DESCRIPTION:([^;]+);/)) {
- $description = $1;
- $description =~ s/Hewlett[-\s_]Packard/HP/;
- $description =~ s/HEWLETT[-\s_]PACKARD/HP/;
- }
- # Was there a manufacturer and a model in the string?
- if (($manufacturer eq "") || ($model eq "")) {
- next;
- }
- # No description field? Make one out of manufacturer and model.
- if ($description eq "") {
- $description = "$manufacturer $model";
- }
- # Store this auto-detection result in the data structure
- push @res, { port => $port, val =>
- { CLASS => 'PRINTER',
- MODEL => $model,
- MANUFACTURER => $manufacturer,
- DESCRIPTION => $description,
- }};
- }
- @res;
-}
-
-#-CLASS:PRINTER;
-#-MODEL:HP LaserJet 1100;
-#-MANUFACTURER:Hewlett-Packard;
-#-DESCRIPTION:HP LaserJet 1100 Printer;
-#-COMMAND SET:MLC,PCL,PJL;
-sub whatPrinter() {
- my @res = (whatParport(), whatUsbport());
- grep { $_->{val}{CLASS} eq "PRINTER"} @res;
-}
-
-sub whatPrinterPort() {
- grep { tryWrite($_)} qw(/dev/lp0 /dev/lp1 /dev/lp2 /dev/usb/lp0 /dev/usb/lp1 /dev/usb/lp2 /dev/usb/lp3 /dev/usb/lp4 /dev/usb/lp5 /dev/usb/lp6 /dev/usb/lp7 /dev/usb/lp8 /dev/usb/lp9);
-}
-
-sub probeSerialDevices {
- #- make sure the device are created before probing.
- foreach (0..3) { devices::make("/dev/ttyS$_") }
-
- #- for device already probed, we can safely (assuming device are
- #- not moved during install :-)
- #- include /dev/mouse device if using an X server.
- -d "/var/lock" or mkdir "/var/lock", 0755;
- -l "/dev/mouse" and $serialprobe{"/dev/" . readlink "/dev/mouse"} = undef;
- foreach (keys %serialprobe) { m|^/dev/(.*)| and touch "/var/lock/LCK..$1" }
-
- print STDERR "Please wait while probing serial ports...\n";
- #- start probing all serial ports... really faster than before ...
- #- ... but still take some time :-)
- local *F; open F, "$ENV{LD_LOADER} serial_probe |";
- local $_;
- my %current = (); while (<F>) {
- $serialprobe{$current{DEVICE}} = { %current } and %current = () if /^\s*$/ && $current{DEVICE};
- $current{$1} = $2 if /^([^=]+)=(.*?)\s*$/;
- }
- close F;
-
- foreach (values %serialprobe) {
- $_->{DESCRIPTION} =~ /modem/i and $_->{CLASS} = 'MODEM'; #- hack to make sure a modem is detected.
- $_->{DESCRIPTION} =~ /olitec/i and $_->{CLASS} = 'MODEM'; #- hack to make sure such modem gets detected.
- log::l("probed $_->{DESCRIPTION} of class $_->{CLASS} on device $_->{DEVICE}");
- }
-}
-
-sub probeSerial($) { $serialprobe{$_[0]} }
-
-sub hasModem($) {
- $serialprobe{$_[0]} and $serialprobe{$_[0]}{CLASS} eq 'MODEM' and $serialprobe{$_[0]}{DESCRIPTION};
-}
-
-sub hasMousePS2 {
- my $t; sysread(tryOpen($_[0]) || return, $t, 256) != 1 || $t ne "\xFE";
-}
-
-sub raidAutoStartIoctl {
- local *F;
- sysopen F, devices::make("md0"), 2 or return;
- ioctl F, 2324, 0;
-}
-
-sub raidAutoStartRaidtab {
- my (@parts) = @_;
- require raid;
- #- faking a raidtab, it seems to be working :-)))
- #- (choosing any inactive md)
- raid::inactivate_all();
- foreach (@parts) {
- my ($nb) = grep { !raid::is_active("md$_") } 0..7;
- output("/etc/raidtab", "raiddev /dev/md$nb\n device " . devices::make($_->{device}) . "\n");
- run_program::run('raidstart', devices::make("md$nb"));
- }
-}
-
-sub raidAutoStart {
- my (@parts) = @_;
-
- log::l("raidAutoStart");
- eval { modules::load('md') };
- my %personalities = ( '1' => 'linear', '2' => 'raid0', '3' => 'raid1', '4' => 'raid5' );
- raidAutoStartIoctl() or raidAutoStartRaidtab(@parts);
- if (my @needed_perso = map {
- if_(/^kmod: failed.*md-personality-(.)/ ||
- /^md: personality (.) is not loaded/, $personalities{$1}) } syslog()) {
- eval { modules::load(@needed_perso) };
- raidAutoStartIoctl() or raidAutoStartRaidtab(@parts);
- }
-}
-
-sub is_a_recent_computer {
- my ($frequence) = map { /cpu MHz\s*:\s*(.*)/ } cat_("/proc/cpuinfo");
- $frequence > 600;
-}
-
-#-######################################################################################
-#- Wonderful perl :(
-#-######################################################################################
-1; #
-
diff --git a/perl-install/devices.pm b/perl-install/devices.pm
deleted file mode 100644
index 8c45a41f7..000000000
--- a/perl-install/devices.pm
+++ /dev/null
@@ -1,220 +0,0 @@
-package devices; # $Id$
-
-use diagnostics;
-use strict;
-
-use common;
-use run_program;
-use log;
-use c;
-
-sub size($) {
- local *F;
- sysopen F, $_[0], 0 or log::l("open $_[0]: $!"), return 0;
-
- my $valid_offset = sub { sysseek(F, $_[0], 0) && sysread(F, my $a, 1) };
-
- #- first try getting the size nicely
- if (my $size = c::total_sectors(fileno F)) {
- return $size * $common::SECTORSIZE;
- }
-
- #- sad it didn't work, well searching the size using the dichotomy algorithm!
- my $low = 0;
- my ($high, $mid);
-
- #- first find n where 2^n < size <= 2^n+1
- for ($high = 1; $high > 0 && &$valid_offset($high); $high *= 2) { $low = $high; }
-
- while ($low < $high - 1) {
- $mid = int ($low + $high) / 2;
- &$valid_offset($mid) ? $low : $high = $mid;
- }
- $low + 1;
-}
-
-sub del_loop {
- my ($dev) = @_;
- run_program::run("losetup", "-d", $dev);
-}
-sub find_free_loop {
- foreach (0..7) {
- my $dev = make("loop$_");
- local *F;
- sysopen F, $dev, 2 or next;
- !ioctl(F, c::LOOP_GET_STATUS(), my $tmp) && $! == 6 or next; #- 6 == ENXIO
- close F;
- return $dev;
- }
- die "no free loop found";
-}
-sub set_loop {
- my ($file, $encrypt_key, $encryption) = @_;
- my $dev = find_free_loop();
-
- if ($encrypt_key && $encryption) {
- my $cmd = "losetup -p 0 -e $encryption $dev $file";
- log::l("calling $cmd");
- local *F;
- open F, "|$cmd";
- print F $encrypt_key;
- close F or die "losetup failed";
- } else {
- run_program::run("losetup", $dev, $file) or return;
- }
- $dev;
-}
-
-sub entry {
- my ($type, $major, $minor);
- local ($_) = @_;
-
- 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 die "unknown device $_" };
- $minor += $2 || 0;
- } elsif (/^ram(.*)/) {
- $type = c::S_IFBLK();
- $major = 1;
- $minor = $1 eq '' ? 1 : $1;
- } elsif (m|^rd/c(\d+)d(\d+)(p(\d+))?|) {
- # dac 960 "rd/cXdXXpX"
- $type = c::S_IFBLK();
- $major = 48 + $1;
- $minor = 8 * $2 + $4;
- } elsif (m,(ida|cciss)/c(\d+)d(\d+)(?:p(\d+))?,) {
- # Compaq Smart Array "ida/c0d0{p1}"
- $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 (/(.*?)(\d+)$/) {
- ($type, $major, $minor) =
- @{ ${{"fd" => [ c::S_IFBLK(), 2, 0 ],
- "hidbp-mse-" => [ c::S_IFCHR(), 10, 32 ],
- "lp" => [ c::S_IFCHR(), 6, 0 ],
- "usb/lp" => [ c::S_IFCHR(), 180, 0 ],
- "input/event" => [ c::S_IFCHR(), 13, 64 ],
- "loop" => [ c::S_IFBLK(), 7, 0 ],
- "md" => [ c::S_IFBLK(), 9, 0 ],
- "nst" => [ c::S_IFCHR(), 9, 128],
- "scd" => [ c::S_IFBLK(), 11, 0 ],
- "ttyS" => [ c::S_IFCHR(), 4, 64 ],
- }}{$1}};
- $minor += $2;
- }
- 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 ],
- "sbpcd" => [ c::S_IFBLK(), 25, 0 ],
- "sjcd" => [ c::S_IFBLK(), 18, 0 ],
- "tty" => [ c::S_IFCHR(), 5, 0 ],
- "usbmouse"=> [ c::S_IFCHR(), 13, 63], #- aka /dev/input/mice
- "adbmouse"=> [ c::S_IFCHR(), 10, 10], #- PPC
- "zero" => [ c::S_IFCHR(), 1, 5 ],
- }}{$_} or die "unknown device $_ (caller is " . join(":", caller()) . ")" };
- }
- ($type, $major, $minor);
-}
-
-
-sub make($) {
- local $_ = my $file = $_[0];
-
- if (m,^(.*/(?:dev|tmp))/(.*),) {
- $_ = $2;
- } else {
- $file =~ m|^/| && -e $file or $file = "/tmp/$_";
- $file =~ m|^/| && -e $file or $file = "/dev/$_";
- }
- -e $file and return $file; #- assume nobody takes fun at creating files named as device
-
- my ($type, $major, $minor) = eval { entry($_) };
- $@ and die "unknown device $_ (caller is " . join(":", caller()) . ")";
-
- if ($file =~ m|/dev/| && -e '/dev/.devfsd') {
- #- argh, creating devices is no good with devfs...
- #- return the file even if the device file doesn't exist
- #- the caller will fail or not, better compatibility than raising an exception here
- return $file;
- }
-
- #- make a directory for this inode if needed.
- mkdir dirname($file), 0755;
-
- syscall_('mknod', $file, $type | 0600, makedev($major, $minor)) or die "mknod failed (dev $_): $!";
-
- $file;
-}
-
-
-#- only isomorphic entries are allowed,
-#- i.e. entries which can go devfs -> normal and normal -> devfs
-my %to_devfs = (
- psaux => 'misc/psaux',
- usbmouse => 'input/mouse0',
-);
-my %to_devfs_prefix = (
- ttyS => 'tts/',
-);
-
-sub to_devfs {
- my ($dev) = @_;
- if (my $r = $to_devfs{$dev}) {
- return $r;
- } elsif ($dev =~ /(.*?)(\d+)$/) {
- my $r = $to_devfs_prefix{$1};
- return "$r$2" if $r;
- }
- undef;
-}
-
-sub from_devfs {
- my ($dev) = @_;
- my %from_devfs = reverse %to_devfs;
- if (my $r = $from_devfs{$dev}) {
- return $r;
- } elsif ($dev =~ /(.*?)(\d+)$/) {
- my %from_devfs_prefix = reverse %to_devfs_prefix;
- my $r = $from_devfs_prefix{$1};
- return "$r$2" if $r;
- }
- undef;
-}
-
-1;
diff --git a/perl-install/diskdrake/diskdrake.html b/perl-install/diskdrake/diskdrake.html
deleted file mode 100644
index 7e85c3cde..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
deleted file mode 100644
index 35342c6e3..000000000
--- a/perl-install/diskdrake/hd_gtk.pm
+++ /dev/null
@@ -1,382 +0,0 @@
-package diskdrake::hd_gtk; # $Id$
-
-use diagnostics;
-use strict;
-
-use common;
-use resize_fat::main;
-use my_gtk qw(:helpers :wrappers :ask);
-use partition_table qw(:types);
-use partition_table::raw;
-use detect_devices;
-use diskdrake::interactive;
-use run_program;
-use loopback;
-use devices;
-use raid;
-use any;
-use log;
-use fsedit;
-use fs;
-
-my ($width, $height, $minwidth) = (400, 50, 5);
-my ($all_hds, $in, $current_kind, $current_entry, $update_all);
-my ($w, @notebook, $done_button);
-
-=begin
-
-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
-
- #
- widget main_box
- widget display_box
- widget action_box
- widget info_box
-} current_kind
-
-part current_entry
-
-notebook current_kind[]
-
-=cut
-
-sub main {
- ($in, $all_hds, my $nowizard) = @_;
-
- @notebook = ();
-
- local $in->{grab} = 1;
-
- $w = my_gtk->new('DiskDrake');
- my $rc = "/usr/share/libDrakX/diskdrake.rc";
- -r $rc or $rc = dirname(__FILE__) . "/../diskdrake.rc";
- -r $rc or $rc = dirname(__FILE__) . "/../share/diskdrake.rc";
- Gtk::Rc->parse($rc);
-
- # TODO
-# is_empty_array_ref($all_hds->{raids}) or raid::stopAll;
-# updateLoopback();
-
- gtkadd($w->{window},
- gtkpack_(new Gtk::VBox(0,7),
- 0, (my $filesystems_button_box = filesystems_button_box()),
- 1, (my $notebook_widget = new Gtk::Notebook),
- 0, (my $per_kind_action_box = new Gtk::HBox(0,0)),
- 0, (my $general_action_box = new Gtk::HBox(0,0)),
- ),
- );
- my $lock;
- $update_all = sub {
- $lock and return;
- $lock = 1;
- partition_table::assign_device_numbers($_) foreach fsedit::all_hds($all_hds);
- create_automatic_notebooks($notebook_widget);
- general_action_box($general_action_box, $nowizard);
- per_kind_action_box($per_kind_action_box, $current_kind);
- current_kind_changed($in, $current_kind);
- current_entry_changed($current_kind, $current_entry);
- $lock = 0;
- };
- create_automatic_notebooks($notebook_widget);
-
- $notebook_widget->signal_connect('switch_page' => sub {
- $current_kind = $notebook[$_[2]];
- $current_entry = '';
- $update_all->();
- });
- $w->sync;
- $done_button->grab_focus;
- $my_gtk::pop_it = 1;
- $in->ask_okcancel(_("Read carefully!"), _("Please make a backup of your data first"), 1) or return
- if $::isStandalone;
- $in->ask_warn('',
-_("If you plan to use aboot, be carefull to leave a free space (2048 sectors is enough)
-at the beginning of the disk")) if (arch() eq 'alpha') and !$::isEmbedded;
-
- $w->main;
-}
-
-sub try {
- my ($name, @args) = @_;
- my $f = $diskdrake::interactive::{$name} or die "unknown function $name";
- try_($name, \&{$f}, @args);
-}
-sub try_ {
- my ($name, $f, @args) = @_;
-
- fsedit::undo_prepare($all_hds) if $name ne 'Undo';
-
- my $v = eval { $f->($in, @args, $all_hds) };
- if (my $err = $@) {
- $err =~ /setstep/ and die '';
- $in->ask_warn(_("Error"), formatError($err));
- }
-
- $current_entry = '' if !diskdrake::interactive::is_part_existing($current_entry, $all_hds);
- $update_all->();
-
- if ($v && member($name, 'Done', 'Wizard')) {
- $::isEmbedded ? kill( 'USR1', $::CCPID) : Gtk->main_quit;
- }
-}
-
-################################################################################
-# generic: helpers
-################################################################################
-sub add_kind2notebook {
- my ($notebook_widget, $kind) = @_;
- die if $kind->{main_box};
-
- $kind->{display_box} = gtkset_usize(new Gtk::HBox(0,0), $width, $height);
- $kind->{action_box} = gtkset_usize(new Gtk::VBox(0,0), 150, 180);
- $kind->{info_box} = new Gtk::VBox(0,0);
- $kind->{main_box} =
- gtkpack_(new Gtk::VBox(0,7),
- 0, $kind->{display_box},
- 1, gtkpack_(new Gtk::HBox(0,7),
- 0, $kind->{action_box},
- 1, $kind->{info_box}));
- my_gtk::add2notebook($notebook_widget, $kind->{name}, $kind->{main_box});
- push @notebook, $kind;
- $kind;
-}
-
-sub general_action_box {
- my ($box, $nowizard) = @_;
- $_->widget->destroy foreach $box->children;
- my @actions = (if_($::isInstall && !$nowizard, __("Wizard")),
- diskdrake::interactive::general_possible_actions($in, $all_hds),
- __("Done"));
- foreach my $s (@actions) {
- my $button = new Gtk::Button(translate($s));
- $done_button = $button if $s eq 'Done';
- gtkadd($box, gtksignal_connect($button, clicked => sub { try($s) }));
- }
-}
-sub per_kind_action_box {
- my ($box, $kind) = @_;
- $_->widget->destroy foreach $box->children;
-
- $kind->{type} =~ /hd|lvm/ or return;
-
- foreach my $s (diskdrake::interactive::hd_possible_actions($in, kind2hd($kind), $all_hds)) {
- gtkadd($box,
- gtksignal_connect(new Gtk::Button(translate($s)),
- clicked => sub { try($s, kind2hd($kind)) }));
- }
-}
-sub per_entry_action_box {
- my ($box, $kind, $entry) = @_;
- $_->widget->destroy foreach $box->children;
-
- if ($entry) {
- my @buttons = map {
- my $s = $_;
- my $w = new Gtk::Button(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(new Gtk::Frame(_("Choose action")),
- createScrolledWindow(gtkpack__(new Gtk::VBox(0,0), @buttons)))) if @buttons;
- } else {
- my $txt = !$::isStandalone && fsedit::is_one_big_fat($all_hds->{hds}) ?
-_("You have one big FAT partition
-(generally used by MicroSoft Dos/Windows).
-I suggest you first resize that partition
-(click on it, then click on \"Resize\")") : _("Please click on a partition");
- gtkpack($box, gtktext_insert(new Gtk::Text, $txt));
- }
-}
-
-sub per_entry_info_box {
- my ($box, $kind, $entry) = @_;
- $_->widget->destroy foreach $box->children;
- my $info;
- if ($entry) {
- $info = diskdrake::interactive::format_part_info(kind2hd($kind), $entry);
- } elsif ($kind->{type} =~ /hd|lvm/) {
- $info = diskdrake::interactive::format_hd_info($kind->{val});
- }
- gtkpack($box, gtkadd(new Gtk::Frame(_("Details")), gtkset_justify(new Gtk::Label($info), 'left')));
-}
-
-sub current_kind_changed {
- my ($in, $kind) = @_;
-
- $_->widget->destroy foreach $kind->{display_box}->children;
-
- my $v = $kind->{val};
- my @parts =
- $kind->{type} eq 'raid' ? grep {$_} @$v :
- $kind->{type} eq 'loopback' ? @$v : fsedit::get_fstab_and_holes($v);
- my $totalsectors =
- $kind->{type} =~ /raid|loopback/ ? sum(map { $_->{size} } @parts) : $v->{totalsectors};
- create_buttons4partitions($kind, $totalsectors, @parts);
-}
-
-sub current_entry_changed {
- my ($kind, $entry) = @_;
- $current_entry = $entry;
- if ($kind) {
- per_entry_action_box($kind->{action_box}, $kind, $entry);
- per_entry_info_box($kind->{info_box}, $kind, $entry);
- }
-}
-
-sub create_automatic_notebooks {
- my ($notebook_widget) = @_;
- my @l = fsedit::all_hds($all_hds);
-
- $_->{marked} = 0 foreach @notebook;
- my $may_add = sub {
- my ($kind) = @_;
- my @l = grep { $kind->{val} == $_->{val} } @notebook;
- @l > 1 and log::l("weird: create_automatic_notebooks");
- $kind = $l[0] || add_kind2notebook($notebook_widget, $kind);
- $kind->{marked} = 1;
- };
- $may_add->(hd2kind($_)) foreach @{$all_hds->{hds}};
- $may_add->(lvm2kind($_)) foreach @{$all_hds->{lvms}};
- $may_add->(raid2kind()) if grep {$_} @{$all_hds->{raids}};
- $may_add->(loopback2kind()) if @{$all_hds->{loopbacks}};
-
- @notebook = grep_index {
- my $b = $_->{marked} or $notebook_widget->remove_page($::i);
- $b;
- } @notebook;
- @notebook or die '';
-}
-
-################################################################################
-# parts: helpers
-################################################################################
-sub create_buttons4partitions {
- my ($kind, $totalsectors, @parts) = @_;
-
- $width = max($width, 0.9 * second($w->{window}->window->get_size)) if $w->{window}->window;
-
- my $ratio = $totalsectors ? ($width - @parts * $minwidth) / $totalsectors : 1;
- while (1) {
- my $totalwidth = sum(map { $_->{size} * $ratio + $minwidth } @parts);
- $totalwidth <= $width and last;
- $ratio /= $totalwidth / $width * 1.1;
- }
-
- foreach my $entry (@parts) {
- my $w = new Gtk::Button($entry->{mntpoint} || '') or die '';
- $w->signal_connect(focus_in_event => sub { current_entry_changed($kind, $entry) });
- $w->signal_connect(button_press_event => sub { current_entry_changed($kind, $entry) });
- $w->signal_connect(key_press_event => sub {
- my ($w, $e) = @_;
- $e->{state} & 4 or return;
- my $c = chr $e->{keyval};
-
- foreach my $s (diskdrake::interactive::part_possible_actions($in, kind2hd($kind), $entry, $all_hds)) {
- ${{
- Create => 'c', Delete => 'd', Format => 'f',
- Loopback => 'l', Resize => 'r', Type => 't',
- Mount => 'M', Unmount => 'u', 'Mount point' => 'm',
- 'Add to LVM' => 'L', 'Remove from LVM' => 'L',
- 'Add to RAID' => 'R', 'Remove from RAID' => 'R',
- }}{$s} eq $c or next;
-
- try($s, kind2hd($kind), $entry);
- last;
- }
- });
- $w->set_name("PART_" . type2name($entry->{type}));
- $w->set_usize($entry->{size} * $ratio + $minwidth, 0);
- gtkpack__($kind->{display_box}, $w);
- $w->grab_focus if $current_entry && fsedit::is_same_part($current_entry, $entry);
- }
-}
-
-
-################################################################################
-# disks: helpers
-################################################################################
-sub current_hd {
- $current_kind->{type} eq 'hd' or die 'current_hd called but $current_kind is not an hd';
- $current_kind->{val};
-}
-sub current_part {
- current_hd();
- $current_entry;
-}
-
-sub kind2hd {
- my ($kind) = @_;
- $kind->{type} =~ /hd|lvm/ ? $kind->{val} : {}
-}
-
-sub hd2kind {
- my ($hd) = @_;
- { type => 'hd', name => $hd->{device}, val => $hd };
-}
-
-sub filesystems_button_box() {
- my @types = (__("Ext2"), __("Journalised FS"), __("Swap"), arch() =~ /sparc/ ? __("SunOS") : arch() eq "ppc" ? __("HFS") : __("FAT"),
- __("Other"), __("Empty"));
- my %name2type = (Ext2 => 0x83, 'Journalised FS' => 0x483, Swap => 0x82, Other => 1, FAT => 0xb, HFS => 0x402);
-
- gtkpack(new Gtk::HBox(0,0),
- _("Filesystem types:"),
- map { my $w = new Gtk::Button(translate($_));
- my $t = $name2type{$_};
- $w->signal_connect(clicked => sub { try_('', \&createOrChangeType, $t, current_hd(), current_part()) });
- $w->can_focus(0);
- $w->set_name($_);
- $w;
- } @types);
-}
-
-sub createOrChangeType {
- my ($in, $type, $hd, $part, $all_hds) = @_;
-
- $part ||= !fsedit::get_fstab($hd) &&
- { type => 0, start => 1, size => $hd->{totalsectors} - 1 };
- $part or return;
- if ($type == 1) {
- $in->ask_warn('', _("Use ``%s'' instead", $part->{type} ? _("Type") : _("Create")));
- } elsif (!$type) {
- $in->ask_warn('', _("Use ``%s'' instead", _("Delete"))) if $part->{type};
- } elsif ($part->{type}) {
- return unless $::expert;
- return if $type == $part->{type};
- isBusy($part) and $in->ask_warn('', _("Use ``Unmount'' first")), return;
- diskdrake::interactive::ask_alldatawillbelost($in, $part, __("After changing type of partition %s, all data on this partition will be lost")) or return;
- diskdrake::interactive::check_type($in, $type, $hd, $part) and fsedit::change_type($type, $hd, $part);
- } else {
- $part->{type} = $type;
- diskdrake::interactive::Create($in, $hd, $part, $all_hds);
- }
-}
-
-################################################################################
-# lvms: helpers
-################################################################################
-sub lvm2kind {
- my ($lvm) = @_;
- { type => 'lvm', name => $lvm->{LVMname}, val => $lvm };
-}
-
-################################################################################
-# raids: helpers
-################################################################################
-sub raid2kind {
- { type => 'raid', name => 'raid', val => $all_hds->{raids} };
-}
-
-################################################################################
-# loopbacks: helpers
-################################################################################
-sub loopback2kind {
- { type => 'loopback', name => 'loopback', val => $all_hds->{loopbacks} };
-}
-
-1;
diff --git a/perl-install/diskdrake/interactive.pm b/perl-install/diskdrake/interactive.pm
deleted file mode 100644
index 7a76ff2e8..000000000
--- a/perl-install/diskdrake/interactive.pm
+++ /dev/null
@@ -1,1171 +0,0 @@
-package diskdrake::interactive; # $Id$
-
-use diagnostics;
-use strict;
-
-use common;
-use partition_table qw(:types);
-use partition_table::raw;
-use detect_devices;
-use run_program;
-use loopback;
-use devices;
-use fsedit;
-use raid;
-use any;
-use log;
-use fs;
-
-
-=begin
-
-struct part {
- int active # one of { 0 | 0x80 } x86 only, primary only
- int start # in sectors
- int size # in sectors
- int type # 0x82, 0x83, 0x6 ...
- string device # 'hda5', 'sdc1' ...
- string rootDevice # 'sda', 'hdc' ...
- string real_mntpoint # directly on real /, '/tmp/hdimage' ...
- string mntpoint # '/', '/usr' ...
- string options # 'defaults', 'noauto'
- string device_windobe # 'C', 'D' ...
- string encrypt_key # [0-9A-Za-z./]{20,}
- string comment # comment to have in fstab
-
- bool isMounted
-
- bool isFormatted
- bool notFormatted
- # isFormatted means the device is formatted
- # !isFormatted && notFormatted means the device is not formatted
- # !isFormatted && !notFormatted means we don't know which state we're in
-
- int raid # for partitions of type isRawRAID and which isPartOfRAID, the raid device number
- string lvm # partition used as a PV for the VG with {lvm} as LVMname
- loopback loopback[] # loopback living on this partition
-
- # internal
- string real_device # '/dev/loop0', '/dev/loop1' ...
-
- # internal CHS (Cylinder/Head/Sector)
- int start_cyl, start_head, start_sec, end_cyl, end_head, end_sec,
-}
-
-struct part_allocate inherits part {
- int maxsize # in sectors (alike "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 {
- string chunk-size # usually '64k'
- string level # one of { 0, 1, 4, 5, 'linear' }
-
- part disks[]
-
- # invalid: active, start, rootDevice, device_windobe?, CHS
-}
-
-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 {
- # invalid: active, start, device_windobe, CHS
-}
-
-
-struct partition_table_elem {
- part normal[] #
- part extended # the main/next extended
- part raw[4] # primary partitions
-}
-
-struct geom {
- int heads
- int sectors
- int cylinders
- int totalcylinders # for SUN, forget it
- int start # always 0, forget it
-}
-
-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 isDirty # does it need to be written to the disk
- bool needKernelReread # must we tell the kernel to reread the partition table
- bool hasBeenDirty # for undo
- bool rebootNeeded # happens when a kernel reread failed
- bool partitionsRenumbered # happens when you
- # - remove an extended partition which is not the last one
- # - add an extended partition which is the first extended partition
- int bus, id
-
- 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 {
- int PE_size # block size (granularity, similar to cylinder size on x86)
- string LVMname # VG name
-
- part_lvm disks[]
-
- # invalid: bus, id, extended, geom
-}
-
-struct raw_hd inherits hd {
- string type # 0x82, 0x83, 'nfs', ...
- string mntpoint # '/', '/usr' ...
- string options # 'defaults', 'noauto'
-
- # invalid: isDirty, needKernelReread, hasBeenDirty, rebootNeeded, primary, extended
-}
-
-struct all_hds {
- hd hds[]
- hd_lvm lvms[]
- part_raid raids[] # indexed by number: raids[$n]{device} is "md$n"
- part_loopback loopbacks[]
- raw_hd raw_hds[]
- raw_hd nfss[]
- raw_hd smbs[]
- raw_hd special[]
-
- # internal: if fstab_to_string($all_hds) eq current_fstab then no need to save
- string current_fstab
-}
-
-
-=cut
-
-
-sub main {
- my ($in, $all_hds) = @_;
-
- if ($in->isa('interactive::gtk')) {
- require diskdrake::hd_gtk;
- goto &diskdrake::hd_gtk::main;
- }
-
- my ($current_part, $current_hd);
-
- while (1) {
- my $choose_txt = $current_part ? __("Choose another partition") : __("Choose a partition");
- my $parts_and_holes = [ fsedit::get_all_fstab_and_holes($all_hds) ];
- my $choose_part = sub {
- $current_part = $in->ask_from_listf('diskdrake', translate($choose_txt), sub { format_part_info_short(fsedit::part2hd($_[0], $all_hds), $_[0]) }, $parts_and_holes, $current_part) || return;
- $current_hd = fsedit::part2hd($current_part, $all_hds);
- };
-
- $choose_part->() if !$current_part;
- return if !$current_part;
-
- my %actions = my @actions = (
- 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 => _("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;
- $actions{$a}();
- $current_hd = $current_part = '' if !is_part_existing($current_part, $all_hds);
- } else {
- $choose_part->();
- }
- partition_table::assign_device_numbers($_) foreach fsedit::all_hds($all_hds);
- }
- Done($in, $all_hds) or goto &main;
-}
-
-
-
-
-################################################################################
-# general actions
-################################################################################
-sub general_possible_actions {
- __("Undo"), ($::expert ? __("Toggle to normal mode") : __("Toggle to expert mode"));
-}
-
-
-sub Undo {
- my ($in, $all_hds) = @_;
- fsedit::undo($all_hds);
-}
-
-sub Wizard {
- $::o->{wizard} = 1;
- goto &Done;
-}
-
-sub Done {
- my ($in, $all_hds) = @_;
- eval { raid::verify($all_hds->{raids}) };
- if (my $err = $@) {
- $::expert or die;
- $in->ask_okcancel('', [ formatError($err), _("Continue anyway?")]) or return;
- }
- foreach (@{$all_hds->{hds}}) {
- if (!write_partitions($in, $_)) {
- return if !$::isStandalone;
- $in->ask_yesorno(_("Quit without saving"), _("Quit without writing the partition table?"), 1) or return;
- }
- }
- if (!$::isInstall) {
- my $new = fs::fstab_to_string($all_hds);
- if ($new ne $all_hds->{current_fstab} && $in->ask_yesorno('', _("Do you want to save /etc/fstab modifications"), 1)) {
- $all_hds->{current_fstab} = $new;
- fs::write_fstab($all_hds);
- }
- }
- 1;
-}
-
-################################################################################
-# per-hd actions
-################################################################################
-sub hd_possible_actions {
- __("Clear all"), if_($::isInstall, __("Auto allocate")), __("More");
-}
-sub hd_possible_actions_interactive {
- hd_possible_actions(), __("Hard drive information");
-}
-
-sub Clear_all {
- my ($in, $hd, $all_hds) = @_;
-
- my @parts = partition_table::get_normal_parts($hd);
- foreach (@parts) {
- RemoveFromLVM($in, $hd, $_, $all_hds) if isPartOfLVM($_);
- RemoveFromRAID($in, $hd, $_, $all_hds) if isPartOfRAID($_);
- }
- if (isLVM($hd)) {
- lvm::lv_delete($hd, $_) foreach @parts
- } else {
- partition_table::raw::zero_MBR_and_dirty($hd);
- }
-}
-
-sub Auto_allocate {
- my ($in, $hd, $all_hds) = @_;
- my $suggestions = partitions_suggestions($in) or return;
-
- my %all_hds_ = %$all_hds;
- $all_hds_{hds} = [ sort { $a == $hd ? -1 : 1 } @{$all_hds->{hds}} ];
-
- eval { fsedit::auto_allocate(\%all_hds_, $suggestions) };
- if ($@) {
- $@ =~ /partition table already full/ or die;
-
- $in->ask_warn("", [
- _("All primary partitions are used"),
- _("I can't add any more partition"),
- _("To have more partitions, please delete one to be able to create an extended partition"),
- ]);
- }
-}
-
-sub More {
- my ($in, $hd) = @_;
-
- $in->ask_from('', '',
- [
- { val => _("Save partition table"), clicked_may_quit => sub { SaveInFile($in, $hd); 1 } },
- { val => _("Restore partition table"), clicked_may_quit => sub { ReadFromFile($in, $hd); 1 } },
- { val => _("Rescue partition table"), clicked_may_quit => sub { Rescuept($in, $hd); 1 } },
- if_($::isInstall,
- { val => _("Reload partition table"), clicked => sub {
- $::o->{all_hds} = fsedit::empty_all_hds();
- die "setstep doPartitionDisks\n" if $::setstep;
- } }),
- if_($::isInstall,
- { text => _("Removable media automounting"), val => \$::o->{useSupermount}, type => 'bool' },
- ),
- ],
- );
-}
-
-sub ReadFromFile {
- my ($in, $hd) = @_;
-
- my $file = $::isStandalone ? $in->ask_file(_("Select file")) : devices::make("fd0") or return;
-
- eval {
- catch_cdie { partition_table::load($hd, $file) }
- sub {
- $@ =~ /bad totalsectors/ or return;
- $in->ask_yesorno('',
-_("The backup partition table has not the same size
-Still continue?"), 0);
- };
- };
- if (my $err = $@) {
- $in->ask_warn(_("Error"), formatError($err));
- }
-}
-
-sub SaveInFile {
- my ($in, $hd) = @_;
-
- my $file = $::isStandalone ?
- $in->ask_file(_("Select file")) :
- $in->ask_okcancel(_("Warning"),
-_("Insert a floppy in drive
-All data on this floppy will be lost"), 1) && devices::make(detect_devices::floppy()) or return;
-
- eval { partition_table::save($hd, $file) };
- if (my $err = $@) {
- $in->ask_warn(_("Error"), formatError($err));
- }
-}
-
-sub Rescuept {
- my ($in, $hd) = @_;
- my $w = $in->wait_message('', _("Trying to rescue partition table"));
- fsedit::rescuept($hd);
-}
-
-sub Hd_info {
- my ($in, $hd) = @_;
- $in->ask_warn('', [ _("Detailed information"), format_hd_info($hd) ]);
-}
-
-################################################################################
-# per-part actions
-################################################################################
-
-sub part_possible_actions {
- my ($in, $hd, $part, $all_hds) = @_;
- $part or return;
-
- my %actions = my @l = (
- __("Mount point") => '($part->{real_mntpoint} && common::usingRamdisk()) || (!isBusy && !isSwap && !isNonMountable)',
- __("Type") => '!isBusy && $::expert',
- __("Options") => '$::expert',
- __("Resize") => '!isBusy && !isSpecial || isLVM($hd) && isMounted && isThisFs("xfs", $part)',
- __("Move") => '!isBusy && !isSpecial && $::expert && 0', # disable for the moment
- __("Format") => '!isBusy && ($::expert || $::isStandalone)',
- __("Mount") => '!isBusy && (hasMntpoint || isSwap) && maybeFormatted && ($::expert || $::isStandalone)',
- __("Add to RAID") => '!isBusy && isRawRAID && !isSpecial',
- __("Add to LVM") => '!isBusy && isRawLVM',
- __("Unmount") => '!$part->{real_mntpoint} && isMounted',
- __("Delete") => '!isBusy',
- __("Remove from RAID") => 'isPartOfRAID',
- __("Remove from LVM") => 'isPartOfLVM',
- __("Modify RAID") => 'isPartOfRAID && !isMounted($all_hds->{raids}[$part->{raid}])',
- __("Use for loopback") => '!$part->{real_mntpoint} && isMountableRW && !isSpecial && hasMntpoint && $::expert',
- );
- my ($actions_names) = list2kv(@l);
- my %macros = (
- hasMntpoint => '$part->{mntpoint}',
- isPrimary => 'isPrimary($part, $hd)',
- );
- if ($part->{type} == 0) {
- __("Create");
- } else {
- 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;
- } @$actions_names;
- }
-}
-
-sub Create {
- my ($in, $hd, $part, $all_hds) = @_;
- my ($def_start, $def_size, $max) = ($part->{start}, $part->{size}, $part->{start} + $part->{size});
-
- $part->{maxsize} = $part->{size}; $part->{size} = 0;
- if (!fsedit::suggest_part($part, $all_hds)) {
- $part->{size} = $part->{maxsize};
- $part->{type} ||= 0x483;
- }
-
- #- update adjustment for start and size, take into account the minimum partition size
- #- including one less sector for start due to a capacity to increase the adjustement by
- #- one.
- my ($primaryOrExtended, $migrate_files);
- my $type = type2name($part->{type});
- my $mb_size = $part->{size} >> 11;
- my $has_startsector = ($::expert || arch() !~ /i.86/) && !isLVM($hd);
-
- my $w = $in->ask_from(_("Create a new partition"), '',
- [
- if_($has_startsector,
- { label => _("Start sector: "), val => \$part->{start}, min => $def_start, max => ($max - min_partition_size($hd)), type => 'range' },
- ),
- { label => _("Size in MB: "), val => \$mb_size, min => min_partition_size($hd) >> 11, max => $def_size >> 11, type => 'range' },
- { label => _("Filesystem type: "), val => \$type, list => [ partition_table::important_types() ], sort => 0 },
- { label => _("Mount point: "), val => \$part->{mntpoint}, list => [ fsedit::suggestions_mntpoint($all_hds), '' ],
- disabled => sub { my $p = { type => name2type($type) }; isSwap($p) || isNonMountable($p) }, type => 'combo', not_edit => 0,
- },
- if_($::expert && $hd->hasExtended,
- { label => _("Preference: "), val => \$primaryOrExtended, list => [ '', "Extended", "Primary", if_($::expert, "Extended_0x85") ] },
- ),
- ], changed => sub {
- if ($part->{start} + ($mb_size << 11) > $max) {
- if ($_[0] == 0) {
- # Start sector changed => restricting Size
- $mb_size = ($max - $part->{start}) >> 11;
- } else {
- # Size changed => restricting Start sector
- $part->{start} = $max - ($mb_size << 11);
- }
- }
- }, 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
- $part->{type} = name2type($type);
- $part->{mntpoint} = '' if isNonMountable($part);
- $part->{mntpoint} = 'swap' if isSwap($part);
- fs::set_default_options($part);
-
- check($in, $hd, $part, $all_hds) or return 1;
- $migrate_files = need_migration($in, $part->{mntpoint}) or return 1;
-
- fsedit::add($hd, $part, $all_hds, { force => 1, primaryOrExtended => $primaryOrExtended });
- 0;
- },
- ) or return;
-
- warn_if_renumbered($in, $hd);
-
- if ($migrate_files eq 'migrate') {
- format_($in, $hd, $part, $all_hds) or return;
- migrate_files($in, $hd, $part);
- fs::mount_part($part);
- }
-}
-
-sub Delete {
- my ($in, $hd, $part, $all_hds) = @_;
- if (isRAID($part)) {
- raid::delete($all_hds->{raids}, $part);
- } elsif (isLVM($hd)) {
- lvm::lv_delete($hd, $part);
- } elsif (isLoopback($part)) {
- my $f = "$part->{loopback_device}{mntpoint}$part->{loopback_file}";
- if (-e $f && $in->ask_yesorno('', _("Remove the loopback file?"))) {
- unlink $f;
- }
- my $l = $part->{loopback_device}{loopback};
- @$l = grep { $_ != $part } @$l;
- 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);
- }
-}
-
-sub Type {
- my ($in, $hd, $part) = @_;
-
- my $warn = sub { ask_alldatawillbelost($in, $part, __("After changing type of partition %s, all data on this partition will be lost")) };
-
- #- for ext2, warn after choosing as ext2->ext3 can be achieved without loosing any data :)
- isExt2($part) or $warn->() or return;
-
- my $type_name = type2name($part->{type});
- $in->ask_from(_("Change partition type"),
- _("Which filesystem do you want?"),
- [ { label => _("Type"), val => \$type_name, list => [ partition_table::important_types() ], sort => 0, not_edit => !$::expert } ]) or return;
-
- my $type = $type_name && name2type($type_name);
-
- if (isExt2($part) && isThisFs('ext3', { type => $type })) {
- my $w = $in->wait_message('', _("Switching from ext2 to ext3"));
- if (run_program::run("tune2fs", "-j", devices::make($part->{device}))) {
- $part->{type} = $type;
- $part->{isFormatted} = 1; #- assume that if tune2fs works, partition is formatted
-
- #- disable the fsck (don't do it together with -j in case -j fails?)
- fs::disable_forced_fsck($part->{device});
- return;
- }
- }
- #- either we switch to non-ext3 or switching losslessly to ext3 failed
- !isExt2($part) or $warn->() or return;
-
- if (defined $type) {
- check_type($in, $type, $hd, $part) and fsedit::change_type($type, $hd, $part);
- }
-}
-
-sub Mount_point {
- my ($in, $hd, $part, $all_hds) = @_;
-
- my $migrate_files;
- my $mntpoint = $part->{mntpoint} || do {
- my $part_ = { %$part };
- if (fsedit::suggest_part($part_, $all_hds)) {
- fsedit::has_mntpoint('/', $all_hds) || $part_->{mntpoint} eq '/boot' ? $part_->{mntpoint} : '/';
- } else { '' }
- };
- $in->ask_from(
- '',
- isLoopback($part) ? _("Where do you want to mount loopback file %s?", $part->{loopback_file}) :
- _("Where do you want to mount device %s?", $part->{device}),
- [ { label => _("Mount point"), val => \$mntpoint,
- list => [ if_($mntpoint, $mntpoint), fsedit::suggestions_mntpoint($all_hds), '' ],
- not_edit => !$::expert } ],
- complete => sub {
- !isPartOfLoopback($part) || $mntpoint or $in->ask_warn('',
-_("Can't 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, $hd, $part, $all_hds) or return 1;
- $migrate_files = need_migration($in, $mntpoint) or return 1;
- 0;
- }
- ) or return;
- $part->{mntpoint} = $mntpoint;
-
- if ($migrate_files eq 'migrate') {
- format_($in, $hd, $part, $all_hds) or return;
- migrate_files($in, $hd, $part);
- fs::mount_part($part);
- }
-}
-sub Mount_point_raw_hd {
- my ($in, $part, $all_hds, $propositions) = @_;
-
- my $mntpoint = $part->{mntpoint};
- $in->ask_from(
- '',
- _("Where do you want to mount device %s?", $part->{device}),
- [ { label => _("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;
- 0;
- }
- ) or return;
- $part->{mntpoint} = $mntpoint;
-}
-
-sub Resize {
- my ($in, $hd, $part) = @_;
- my (%nice_resize, $block_count, $free_block, $block_size);
- my ($min, $max) = (min_partition_size($hd), partition_table::next_start($hd, $part) - $part->{start});
-
- if (maybeFormatted($part)) {
- # here we may have a non-formatted or a formatted partition
- # -> doing as if it was formatted
-
- if (isFat($part)) {
- write_partitions($in, $hd) or return;
- #- try to resize without losing data
- my $w = $in->wait_message(_("Resizing"), _("Computing FAT filesystem bounds"));
-
- $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 (isExt2($part) || isThisFs('ext3', $part)) {
- write_partitions($in, $hd) or return;
- $nice_resize{ext2} = devices::make($part->{device});
- my $r = `dumpe2fs $nice_resize{ext2} 2>/dev/null`;
- $r =~ /Block count:\s*(\d+)/ and $block_count = $1;
- $r =~ /Free blocks:\s*(\d+)/ and $free_block = $1;
- $r =~ /Block size:\s*(\d+)/ and $block_size = $1;
- log::l("dumpe2fs $nice_resize{ext2} gives: Block_count=$block_count, Free_blocks=$free_block, Block_size=$block_size");
- if ($block_count && $free_block && $block_size) {
- $min = max($min, ($block_count - $free_block) * $block_size / 512);
- $max = min($max, $block_count * $block_size / 512);
- } else {
- delete $nice_resize{ext2};
- }
- } elsif (isThisFs("reiserfs", $part)) {
- write_partitions($in, $hd) or return;
- if (defined (my $free = fs::df($part))) {
- $nice_resize{reiserfs} = 1;
- $min = max($min, $free);
- }
- } elsif (isThisFs('xfs', $part) && isLVM($hd) && $::isStandalone && isMounted($part)) {
- $min = $part->{size}; #- ensure the user can only increase
- $nice_resize{xfs} = 1;
- }
- #- 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);
- $min >= $max and return $in->ask_warn('', _("This partition is not resizeable"));
-
- #- 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, __("All data on this partition should be backed-up")) or return;
- } else {
- ask_alldatawillbelost($in, $part, __("After resizing partition %s, all data on this partition will be lost")) or return;
- }
- }
-
- my $mb_size = $part->{size} >> 11;
- $in->ask_from(_("Resize"), _("Choose the new size"), [
- { label => _("New size in MB: "), val => \$mb_size, min => $min >> 11, max => $max >> 11, type => 'range' },
- ]) or return;
-
-
- my $size = from_Mb($mb_size, $min, $max);
- $part->{size} == $size and return;
-
- my $oldsize = $part->{size};
- $hd->{isDirty} = $hd->{needKernelReread} = 1;
- $part->{size} = $size;
- $hd->adjustEnd($part);
-
- undef $@;
- my $b = before_leaving { $@ and $part->{size} = $oldsize };
- my $w = $in->wait_message(_("Resizing"), '');
-
- if (isLVM($hd)) {
- lvm::lv_resize($part, $oldsize) if $size > $oldsize;
- }
-
- if ($nice_resize{fat}) {
- local *log::l = sub { $w->set(join(' ', @_)) };
- $nice_resize{fat}->resize($part->{size});
- } elsif ($nice_resize{ext2}) {
- my $s = int(($part->{size} << 9) / $block_size);
- log::l("resize2fs $nice_resize{ext2} to size $s in block of $block_size bytes");
- system "resize2fs", "-pf", $nice_resize{ext2}, $s;
- } elsif ($nice_resize{reiserfs}) {
- log::l("reiser resize to $part->{size} sectors");
- install_any::check_prog ("resize_reiserfs") if $::isInstall;
- system "resize_reiserfs", "-f", "-q", "-s" . $part->{size}/2 . "K", devices::make($part->{device});
- } elsif ($nice_resize{xfs}) {
- system "xfs_growfs", $part->{mntpoint};
- }
-
- if (%nice_resize) {
- $part->{isFormatted} = 1;
- } else {
- $part->{notFormatted} = 1;
- $part->{isFormatted} = 0;
- partition_table::verifyParts($hd);
- }
-
- if (isLVM($hd)) {
- lvm::lv_resize($part, $oldsize) if $size < $oldsize;
- } else {
- partition_table::adjust_local_extended($hd, $part);
- partition_table::adjust_main_extended($hd);
- }
-}
-sub Move {
- my ($in, $hd, $part, $all_hds) = @_;
- my $hd2 = $in->ask_from_listf(_("Move"),
- _("Which disk do you want to move it to?"), \&partition_table::description, @{$all_hds->{hds}}) or return;
- my $start2 = $in->ask_from_entry(_("Sector"),
- _("Which sector do you want to move it to?"));
- defined $start2 or return;
-
- my $w = $in->wait_message(_("Moving"), _("Moving partition..."));
- fsedit::move($hd, $part, $hd2, $start2);
-}
-sub Format {
- my ($in, $hd, $part, $all_hds) = @_;
- format_($in, $hd, $part, $all_hds);
-}
-sub Mount {
- my ($in, $hd, $part) = @_;
- write_partitions($in, $hd) or return;
- fs::mount_part($part);
-}
-sub Add2RAID {
- my ($in, $hd, $part, $all_hds) = @_;
- my $raids = $all_hds->{raids};
-
- local $_ = @$raids == () ? "new" :
- $in->ask_from_list_('', _("Choose an existing RAID to add to"),
- [ (grep {$_} map_index { $_ && "md$::i" } @$raids), __("new") ]) or return;
-
- if (/new/) {
- my $nb1 = raid::new($raids, $part);
- defined modifyRAID($in, $raids, $nb1) or return raid::delete($raids, $nb1);
- } else {
- raid::add($raids, $part, $_);
- }
- raid::update(@$raids);
-}
-sub Add2LVM {
- my ($in, $hd, $part, $all_hds) = @_;
- my $lvms = $all_hds->{lvms};
- write_partitions($in, $_) or return foreach isRAID($part) ? @{$all_hds->{hds}} : $hd;
-
- my $lvm = $in->ask_from_listf_('', _("Choose an existing LVM to add to"),
- sub { ref $_[0] ? $_[0]{LVMname} : $_[0] },
- [ @$lvms, __("new") ]) or return;
- if (!ref $lvm) {
- # create new lvm
- my $name = $in->ask_from_entry('', _("LVM name?")) or return;
- $name =~ s/\W/_/g;
- $name = substr($name, 0, 63); # max length must be < NAME_LEN / 2 where NAME_LEN is 128
- $lvm = bless { disks => [], LVMname => $name }, 'lvm';
- push @$lvms, $lvm;
- }
- $part->{lvm} = $lvm->{LVMname};
- push @{$lvm->{disks}}, $part;
- delete $part->{mntpoint};
-
- require lvm;
- lvm::check($in) if $::isStandalone;
- lvm::vg_add($part);
- lvm::update_size($lvm);
-}
-sub Unmount {
- my ($in, $hd, $part) = @_;
- fs::umount_part($part);
-}
-sub RemoveFromRAID {
- my ($in, $hd, $part, $all_hds) = @_;
- raid::removeDisk($all_hds->{raids}, $part);
-}
-sub RemoveFromLVM {
- my ($in, $hd, $part, $all_hds) = @_;
- my $lvms = $all_hds->{lvms};
- isPartOfLVM($part) or die;
- my ($lvm) = grep { $_->{LVMname} eq $part->{lvm} } @$lvms;
- lvm::vg_destroy($lvm);
- @$lvms = grep { $_ != $lvm } @$lvms;
-}
-sub ModifyRAID {
- my ($in, $hd, $part, $all_hds) = @_;
- modifyRAID($in, $all_hds->{raids}, $part->{raid});
-}
-sub Loopback {
- my ($in, $hd, $real_part, $all_hds) = @_;
-
- write_partitions($in, $hd) or return;
-
- my $handle = any::inspect($real_part) or $in->ask_warn('', _("This partition can't be used for loopback")), return;
-
- my ($min, $max) = (1, loopback::getFree($handle->{dir}, $real_part));
- my $part = { maxsize => $max, size => 0, loopback_device => $real_part, notFormatted => 1 };
- if (!fsedit::suggest_part($part, $all_hds)) {
- $part->{size} = $part->{maxsize};
- $part->{type} ||= 0x483;
- }
- delete $part->{mntpoint}; # we don't want the suggested mntpoint
-
- my $type = type2name($part->{type});
- my $mb_size = $part->{size} >> 11;
- $in->ask_from(_("Loopback"), '', [
- { label => _("Loopback file name: "), val => \$part->{loopback_file} },
- { label => _("Size in MB: "), val => \$mb_size, min => $min >> 11, max => $max >> 11, type => 'range' },
- { label => _("Filesystem type: "), val => \$type, list => [ partition_table::important_types() ], not_edit => !$::expert, sort => 0 },
- ],
- complete => sub {
- $part->{loopback_file} or $in->ask_warn('', _("Give a file name")), return 1, 0;
- $part->{loopback_file} =~ s|^([^/])|/$1|;
- if (my $size = loopback::verifFile($handle->{dir}, $part->{loopback_file}, $real_part)) {
- $size == -1 and $in->ask_warn('', _("File already used by another loopback, choose another one")), return 1, 0;
- $in->ask_yesorno('', _("File already exists. Use it?")) or return 1, 0;
- delete $part->{notFormatted};
- $part->{size} = divide($size, 512);
- } else {
- $part->{size} = from_Mb($mb_size, $min, $max);
- }
- 0;
- }) or return;
- $part->{type} = name2type($type);
- push @{$real_part->{loopback}}, $part;
- fsedit::recompute_loopbacks($all_hds);
-}
-
-sub Options {
- my ($in, $hd, $part, $all_hds) = @_;
-
- my @simple_options = qw(user noauto supermount);
-
- my (undef, $user_implies) = fs::mount_options();
- my ($options, $unknown) = fs::mount_options_unpack($part);
- my %help = fs::mount_options_help(keys %$options);
-
- my $prev_user = $options->{user};
- $in->ask_from(_("Mount options"),
- '',
- [
- (map {;
- { label => $_, text => scalar warp_text(formatAlaTeX($help{$_})), val => \$options->{$_},
- advanced => !$part->{rootDevice} && !member($_, @simple_options), if_(!/=$/, type => 'bool'), }
- } keys %$options),
- { label => _("Various"), val => \$unknown, advanced => 1 },
- ],
- changed => sub {
- if ($prev_user != $options->{user}) {
- $prev_user = $options->{user};
- $options->{$_} = $options->{user} foreach @$user_implies;
- }
- 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 = choose_encrypt_key($in)) {
- $options->{'encryption='} = 'AES128';
- $part->{encrypt_key} = $encrypt_key;
- } else {
- $options->{encrypted} = 0;
- }
- }
- } else {
- delete $options->{'encryption='};
- delete $part->{encrypt_key};
- }
- },
- ) or return;
-
- fs::mount_options_pack($part, $options, $unknown);
-}
-
-
-{
- no strict;
- *{"Toggle to normal mode"} = sub { $::expert = 0 };
- *{"Toggle to 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;
- *{"Add to LVM"} = *Add2LVM;
- *{"Remove from LVM"} = *RemoveFromLVM;
- *{"Use for loopback"} = *Loopback;
- *{"Hard drive information"} = *Hd_info;
-}
-
-
-################################################################################
-# helpers
-################################################################################
-
-sub is_part_existing {
- my ($part, $all_hds) = @_;
- $part && grep { fsedit::is_same_part($part, $_) } fsedit::get_all_fstab_and_holes($all_hds);
-}
-
-sub modifyRAID {
- my ($in, $raids, $nb) = @_;
- my $md = "md$nb";
- $in->ask_from('', '',
- [
-{ label => _("device"), val => \$md, list => [ map { "md$_" } grep { $nb == $_ || !$raids->[$_] } 0..8 ] },
-{ label => _("level"), val => \$raids->[$nb]{level}, list => [ qw(0 1 4 5 linear) ] },
-{ label => _("chunk size"), val => \$raids->[$nb]{'chunk-size'} },
- ],
- ) or return;
- raid::updateSize($raids->[$nb]); # changing the raid level changes the size available
- raid::changeNb($raids, $nb, first($md =~ /(\d+)/));
-}
-
-
-sub ask_alldatamaybelost {
- my ($in, $part, $msg) = @_;
-
- maybeFormatted($part) or return 1;
-
- #- here we may have a non-formatted or a formatted partition
- #- -> doing as if it was formatted
- $in->ask_okcancel(_("Read carefully!"), [ _("Be careful: this operation is dangerous."), _($msg, $part->{device}) ], 1);
-}
-sub ask_alldatawillbelost {
- my ($in, $part, $msg) = @_;
-
- maybeFormatted($part) or return 1;
-
- #- here we may have a non-formatted or a formatted partition
- #- -> doing as if it was formatted
- $in->ask_okcancel(_("Read carefully!"), _($msg, $part->{device}), 1);
-}
-
-sub partitions_suggestions {
- my ($in) = @_;
- my $t = $::expert ?
- $in->ask_from_list_('', _("What type of partitioning?"), [ keys %fsedit::suggestions ]) :
- 'simple';
- $fsedit::suggestions{$t};
-}
-
-sub check_type {
- my ($in, $type, $hd, $part) = @_;
- eval { fsedit::check_type($type, $hd, $part) };
- if (my $err = $@) {
- $in->ask_warn('', $err);
- return;
- }
- if ($::isStandalone) {
- if (my $pkg = fsedit::package_needed_for_partition_type({ type => $type })) {
- my $fs = type2fs({ type => $type });
- if (!-x "/sbin/mkfs.$fs") {
- $in->ask_yesorno('', _("The package %s is needed. Install it?", $pkg), 1) or return;
- $in->do_pkgs->install($pkg);
- }
- -x "/sbin/mkfs.$fs" or $in->ask_warn('', "Mandatory package $pkg is missing"), return;
- }
- }
- 1;
-}
-sub check_mntpoint {
- my ($in, $mntpoint, $hd, $part, $all_hds) = @_;
- eval { fsedit::check_mntpoint($mntpoint, $hd, $part, $all_hds) };
- local $_ = $@;
- if (m|/boot ending on cylinder > 1024|) {
- $in->ask_warn('',
-_("Sorry I won't accept to create /boot so far onto the drive (on a cylinder > 1024).
-Either you use LILO and it won't work, or you don't use LILO and you don't need /boot"));
- } elsif (m|/ ending on cylinder > 1024|) {
- $in->ask_warn('',
-_("The partition you've selected to add as root (/) is physically located beyond
-the 1024th cylinder of the hard drive, and you have no /boot partition.
-If you plan to use the LILO boot manager, be careful to add a /boot partition"));
- undef $_;
- } elsif (m|raid / with no /boot|) {
- $in->ask_warn('',
-_("You've selected a software RAID partition as root (/).
-No bootloader is able to handle this without a /boot partition.
-So be careful to add a /boot partition"));
- undef $_;
- } elsif ($_) {
- $in->ask_warn('', formatError($_));
- }
- !$_;
-}
-sub check {
- my ($in, $hd, $part, $all_hds) = @_;
- check_type($in, $part->{type}, $hd, $part) &&
- check_mntpoint($in, $part->{mntpoint}, $hd, $part, $all_hds);
-}
-
-sub write_partitions {
- my ($in, $hd) = @_;
- $hd->{isDirty} or return 1;
- isLVM($hd) and return 1;
-
- $in->ask_okcancel(_("Read carefully!"), _("Partition table of drive %s is going to be written to disk!", $hd->{device}), 1) or return;
- if (!$::testing) {
- partition_table::write($hd);
- }
- $hd->{rebootNeeded} and die _("You'll need to reboot before the modification can take place");
- 1;
-}
-
-sub unmount {
- my ($hd, $part) = @_;
- fs::umount_part($part);
-}
-sub format_ {
- my ($in, $hd, $part, $all_hds) = @_;
- write_partitions($in, $_) or return foreach isRAID($part) ? @{$all_hds->{hds}} : $hd;
- ask_alldatawillbelost($in, $part, __("After formatting partition %s, all data on this partition will be lost")) or return;
- $part->{isFormatted} = 0; #- force format;
- my $w = $in->wait_message(_("Formatting"),
- isLoopback($part) ? _("Formatting loopback file %s", $part->{loopback_file}) :
- _("Formatting partition %s", $part->{device}));
- fs::format_part($all_hds->{raids}, $part);
- 1;
-}
-
-sub need_migration {
- my ($in, $mntpoint) = @_;
-
- my @l = grep { $_ ne "lost+found" } all($mntpoint);
- if (@l && $::isStandalone) {
- my $choice;
- my @choices = (__("Move files to the new partition"), __("Hide files"));
- $in->ask_from('', _("Directory %s already contains data\n(%s)", $mntpoint, formatList(5, @l)),
- [ { val => \$choice, list => \@choices, type => 'list' } ]) or return;
- $choice eq $choices[0] ? 'migrate' : 'hide';
- } else {
- 'hide';
- }
-}
-
-sub migrate_files {
- my ($in, $hd, $part, $all_hds) = @_;
-
- my $wait = $in->wait_message('', _("Moving files to the new partition"));
- my $handle = any::inspect($part, '', 'rw');
- my @l = glob_("$part->{mntpoint}/*");
- foreach (@l) {
- $wait->set(_("Copying %s", $_));
- system("cp", "-a", $_, $handle->{dir});
- }
- foreach (@l) {
- $wait->set(_("Removing %s", $_));
- system("rm", "-rf", $_);
- }
-}
-
-sub warn_if_renumbered {
- my ($in, $hd) = @_;
- my $l = delete $hd->{partitionsRenumbered};
- return if is_empty_array_ref($l);
-
- my @l = map { _("partition %s is now known as %s", @$_) } @$l;
- $in->ask_warn('', join("\n", 'Partitions have been renumbered: ', @l));
-}
-
-#- 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) = @_;
- $mb <= $min >> 11 and return $min;
- $mb >= $max >> 11 and return $max;
- $mb * 2048;
-}
-
-sub format_part_info {
- my ($hd, $part) = @_;
-
- my $info = '';
-
- $info .= _("Mount point: ") . "$part->{mntpoint}\n" if $part->{mntpoint};
- $info .= _("Device: ") . "$part->{device}\n" if $part->{device} && !isLoopback($part);
- $info .= _("DOS drive letter: %s (just a guess)\n", $part->{device_windobe}) if $part->{device_windobe};
- if (arch() eq "ppc") {
- my $new_value = $part->{pType};
- $new_value =~ s/[^A-Za-z0-9_]//g;
- $info .= _("Type: ") . $new_value . ($::expert ? sprintf " (0x%x)", $part->{type} : '') . "\n";
- if (defined $part->{pName}) {
- $new_value = $part->{pName};
- $new_value =~ s/[^A-Za-z0-9_]//g;
- $info .= _("Name: ") . $new_value . "\n";
- }
- } elsif ($part->{type}) {
- my $type = substr(type2name($part->{type}), 0, 40); # limit the length
- $info .= _("Type: ") . $type . ($::expert ? sprintf " (0x%x)", $part->{type} : '') . "\n";
- } else {
- $info .= _("Empty") . "\n";
- }
- $info .= _("Start: sector %s\n", $part->{start}) if $::expert && !isSpecial($part);
- $info .= _("Size: %s", formatXiB($part->{size}, 512));
- $info .= sprintf " (%s%%)", int 100 * $part->{size} / $hd->{totalsectors} if $hd->{totalsectors};
- $info .= _(", %s sectors", $part->{size}) if $::expert;
- $info .= "\n";
- $info .= _("Cylinder %d to %d\n", $part->{start} / $hd->cylinder_size(), ($part->{start} + $part->{size} - 1) / $hd->cylinder_size()) if ($::expert || !$part->{type}) && !isSpecial($part);
- $info .= _("Formatted\n") if $part->{isFormatted};
- $info .= _("Not formatted\n") if !$part->{isFormatted} && $part->{notFormatted};
- $info .= _("Mounted\n") if $part->{isMounted};
- $info .= _("RAID md%s\n", $part->{raid}) if isPartOfRAID($part);
- $info .= sprintf "LVM %s\n", $part->{lvm} if isPartOfLVM($part);
- $info .= _("Loopback file(s):\n %s\n", join(", ", map { $_->{loopback_file} } @{$part->{loopback}})) if isPartOfLoopback($part);
- $info .= _("Partition booted by default\n (for MS-DOS boot, not for lilo)\n") if $part->{active} && $::expert;
- if (isRAID($part)) {
- $info .= _("Level %s\n", $part->{level});
- $info .= _("Chunk size %s\n", $part->{'chunk-size'});
- $info .= _("RAID-disks %s\n", join ", ", map { $_->{device} } @{$part->{disks}});
- } elsif (isLoopback($part)) {
- $info .= _("Loopback file name: %s", $part->{loopback_file});
- }
- if (isApple($part)) {
- $info .= _("\nChances are, this partition is\na Driver partition, you should\nprobably leave it alone.\n");
- }
- if (isAppleBootstrap($part)) {
- $info .= _("\nThis special Bootstrap\npartition is for\ndual-booting your system.\n");
- }
- # restrict the length of the lines
- $info =~ s/(.{60}).*/$1.../mg;
- $info;
-}
-
-sub format_part_info_short {
- my ($hd, $part) = @_;
- $part->{type} ?
- partition_table::description($part) :
- format_part_info($hd, $part);
-}
-
-sub format_hd_info {
- my ($hd) = @_;
-
- my $info = '';
- $info .= _("Device: ") . "$hd->{device}\n";
- $info .= _("Size: %s\n", formatXiB($hd->{totalsectors}, 512)) if $hd->{totalsectors};
- $info .= _("Geometry: %s cylinders, %s heads, %s sectors\n", @{$hd->{geom}}{qw(cylinders heads sectors)}) if $::expert && $hd->{geom};
- $info .= _("Info: ") . ($hd->{info} || $hd->{media_type}) . "\n" if $::expert && ($hd->{info} || $hd->{media_type});
- $info .= _("LVM-disks %s\n", join ", ", map {$_->{device}} @{$hd->{disks}}) if isLVM($hd) && $hd->{disks};
- $info .= _("Partition table type: %s\n", $1) if $::expert && ref($hd) =~ /_([^_]+)$/;
- $info .= _("on channel %d id %d\n", $hd->{channel}, $hd->{id}) if $::expert && exists $hd->{channel};
- $info;
-}
-
-sub format_raw_hd_info {
- my ($raw_hd) = @_;
-
- my $info = '';
- $info .= _("Mount point: ") . "$raw_hd->{mntpoint}\n" if $raw_hd->{mntpoint};
- $info .= format_hd_info($raw_hd);
- if ($raw_hd->{type}) {
- my $type = substr(type2name($raw_hd->{type}), 0, 40); # limit the length
- $info .= _("Type: ") . $type . "\n";
- }
- $info .= _("Options: %s", $raw_hd->{options}) if $raw_hd->{options};
- $info;
-}
-
-#- get the minimal size of partition in sectors to help diskdrake on
-#- limit cases, include a cylinder + start of a eventually following
-#- logical partition.
-sub min_partition_size { $_[0]->cylinder_size() + 2*$_[0]->{geom}{sectors} }
-
-
-sub choose_encrypt_key {
- my ($in) = @_;
-
- my ($encrypt_key, $encrypt_key2);
- $in->ask_from_(
- {
- title => _("Filesystem encryption key"),
- messages => _("Choose your filesystem encryption key"),
- callbacks => {
- complete => sub {
- length $encrypt_key < 20 and $in->ask_warn('', _("This encryption key is too simple (must be at least %d characters long)", 20)), return (1,0);
- $encrypt_key eq $encrypt_key2 or $in->ask_warn('', [ _("The encryption keys do not match"), _("Please try again") ]), return (1,1);
- return 0
- } } }, [
-{ label => _("Encryption key"), val => \$encrypt_key, hidden => 1 },
-{ label => _("Encryption key (again)"), val => \$encrypt_key2, hidden => 1 },
- ]) && $encrypt_key;
-}
diff --git a/perl-install/diskdrake/removable.pm b/perl-install/diskdrake/removable.pm
deleted file mode 100644
index 58eb2b302..000000000
--- a/perl-install/diskdrake/removable.pm
+++ /dev/null
@@ -1,53 +0,0 @@
-package diskdrake::removable; # $Id$
-
-use diagnostics;
-use strict;
-use diskdrake::interactive;
-use common;
-use fsedit;
-use fs;
-
-sub main {
- my ($in, $all_hds, $raw_hd) = @_;
- my %actions = my @actions = actions();
- my $action;
- while ($action ne 'Done') {
- $action = $in->ask_from_list_('',
- diskdrake::interactive::format_raw_hd_info($raw_hd),
- [ map { $_->[0] } group_by2 @actions ], 'Done') or return;
- $actions{$action}->($in, $raw_hd, $all_hds);
- }
-}
-
-sub actions {
- (
- __("Mount point") => \&mount_point,
- __("Options") => \&options,
- __("Type") => \&type,
- __("Done") => \&done,
- );
-}
-
-sub done {
- my ($in, $raw_hd, $all_hds) = @_;
- diskdrake::interactive::Done($in, $all_hds);
-}
-sub options {
- my ($in, $raw_hd, $all_hds) = @_;
- diskdrake::interactive::Options($in, {}, $raw_hd, $all_hds);
-}
-sub mount_point {
- my ($in, $raw_hd, $all_hds) = @_;
- diskdrake::interactive::Mount_point_raw_hd($in, $raw_hd, $all_hds, [ "/mnt/$raw_hd->{device}" ] );
-}
-sub type {
- my ($in, $raw_hd) = @_;
- my @fs = ('auto', fs::auto_fs());
- my $type = $raw_hd->{type};
- $in->ask_from(_("Change type"),
- _("Which filesystem do you want?"),
- [ { label => _("Type"), val => \$type, list => [@fs], not_edit => !$::expert } ]) or return;
- $raw_hd->{type} = $type;
-}
-
-1;
diff --git a/perl-install/diskdrake/removable_gtk.pm b/perl-install/diskdrake/removable_gtk.pm
deleted file mode 100644
index da897b67a..000000000
--- a/perl-install/diskdrake/removable_gtk.pm
+++ /dev/null
@@ -1,31 +0,0 @@
-package diskdrake::removable_gtk; # $Id$
-
-use diagnostics;
-use strict;
-
-use my_gtk qw(:helpers :wrappers :ask);
-
-
-sub per_entry_action_box {
- my ($box, $kind, $entry) = @_;
- $_->widget->destroy foreach $box->children;
-
- if ($entry) {
- my @l = (
- _("Mount point") => \&raw_hd_mount_point,
- _("Options") => \&raw_hd_options,
- _("Type") => \&removable_type,
- );
- @buttons = map_each {
- my ($txt, $f) = @_;
- gtksignal_connect(new Gtk::Button($txt), clicked => sub { try_('', $f, $entry) });
- } group_by2 @l;
-
- gtkadd($box, gtkadd(new Gtk::Frame(_("Choose action")),
- createScrolledWindow(gtkpack__(new Gtk::VBox(0,0), @buttons)))) if @buttons;
-
- } else {
- my $txt = _("Please click on a medium");
- gtkpack($box, gtktext_insert(new Gtk::Text, $txt));
- }
-}
diff --git a/perl-install/diskdrake/smbnfs_gtk.pm b/perl-install/diskdrake/smbnfs_gtk.pm
deleted file mode 100644
index 545d925fd..000000000
--- a/perl-install/diskdrake/smbnfs_gtk.pm
+++ /dev/null
@@ -1,266 +0,0 @@
-package diskdrake::smbnfs_gtk; # $Id$
-
-use diagnostics;
-use strict;
-
-use any;
-use fs;
-use diskdrake::interactive;
-use common;
-use interactive;
-use network::smb;
-use network::nfs;
-use my_gtk qw(:helpers :wrappers :ask);
-
-my ($all_hds, $in, $tree, $current_entry, $current_leaf, %icons);
-
-sub main {
- ($in, $all_hds, my $type) = @_;
- my ($kind) = $type eq 'smb' ? smb2kind() : nfs2kind();
- {
- local $my_gtk::pop_it = 1;
- $kind->check($in) or return;
- }
-
- my $w = my_gtk->new('DiskDrake');
-
- add_smbnfs($w->{window}, $kind);
- $w->{rwindow}->set_default_size(400, 300) if $w->{rwindow}->can('set_default_size');
- $w->{window}->show_all;
- $w->main;
-}
-
-################################################################################
-# nfs/smb: helpers
-################################################################################
-sub try {
- my ($kind, $name, @args) = @_;
- my $f = $diskdrake::interactive::{$name} or die "unknown function $name";
- try_($kind, $name, \&{$f}, @args);
-}
-sub try_ {
- my ($kind, $name, $f, @args) = @_;
- eval { $f->($in, @args, $all_hds); };
- if (my $err = $@) {
- $in->ask_warn(_("Error"), formatError($err));
- }
- update($kind);
- Gtk->main_quit if member($name, 'Cancel', 'Done');
-}
-
-sub raw_hd_options {
- my ($in, $raw_hd) = @_;
- diskdrake::interactive::Options($in, {}, $raw_hd);
-}
-sub raw_hd_mount_point {
- my ($in, $raw_hd) = @_;
- my ($default) = $raw_hd->{device} =~ m|([^/]+)$|;
- $default =~ s/\s+/-/g;
- diskdrake::interactive::Mount_point_raw_hd($in, $raw_hd, $all_hds, [ "/mnt/$default" ]);
-}
-
-sub per_entry_info_box {
- my ($box, $kind, $entry) = @_;
- $_->isa('Gtk::Button') or $_->destroy foreach map { $_->widget } $box->children;
- my $info;
- if ($entry) {
- $info = diskdrake::interactive::format_raw_hd_info($entry);
- }
- gtkpack($box, gtkadd(new Gtk::Frame(_("Details")), gtkset_justify(new Gtk::Label($info), 'left')));
-}
-
-sub per_entry_action_box {
- my ($box, $kind, $entry) = @_;
- $_->widget->destroy foreach $box->children;
-
- my @buttons;
-
- push @buttons, map {
- my $s = $_;
- gtksignal_connect(new Gtk::Button(translate($s)), clicked => sub { try($kind, $s, {}, $entry) });
- } (if_($entry->{isMounted}, __("Unmount")),
- if_($entry->{mntpoint} && !$entry->{isMounted}, __("Mount"))) if $entry;
-
- my @l = (
- if_($entry, __("Mount point") => \&raw_hd_mount_point),
- if_($entry && $entry->{mntpoint}, __("Options") => \&raw_hd_options),
- __("Cancel") => sub {},
- __("Done") => \&done,
- );
- push @buttons, map {
- my ($txt, $f) = @$_;
- gtksignal_connect(new Gtk::Button(translate($txt)), clicked => sub { try_($kind, $txt, $f, $entry) });
- } group_by2(@l);
-
- gtkadd($box, gtkpack(new Gtk::HBox(0,0), @buttons));
-}
-
-sub done {
- my ($in) = @_;
- diskdrake::interactive::Done($in, $all_hds);
-}
-
-sub set_export_icon {
- my ($entry, $w) = @_;
- $entry ||= {};
- my $icon = $icons{$entry->{isMounted} ? 'mounted' : $entry->{mntpoint} ? 'has_mntpoint' : 'default'};
- my_gtk::ctree_set_icon($tree, $w, @$icon);
-}
-
-sub update {
- my ($kind) = @_;
- per_entry_action_box($kind->{action_box}, $kind, $current_entry);
- per_entry_info_box($kind->{info_box}, $kind, $current_entry);
- set_export_icon($current_entry, $current_leaf) if $current_entry;
-}
-
-sub find_fstab_entry {
- my ($kind, $e, $add_or_not) = @_;
-
- my $fs_entry = $kind->to_fstab_entry($e);
-
- if (my ($fs_entry_) = grep { $fs_entry->{device} eq $_->{device} } @{$kind->{val}}) {
- $fs_entry_;
- } elsif ($add_or_not) {
- push @{$kind->{val}}, $fs_entry;
- $fs_entry;
- } else {
- undef;
- }
-}
-
-sub import_ctree {
- my ($kind, $info_box) = @_;
- my (%servers_displayed, %wservers, %wexports, $inside);
-
- $tree = Gtk::CTree->new(1, 0);
- $tree->set_column_auto_resize(0, 1);
- $tree->set_selection_mode('browse');
- $tree->set_row_height($tree->style->font->ascent + $tree->style->font->descent + 1);
-
- foreach ('default', 'server', 'has_mntpoint', 'mounted') {
- $icons{$_} = [ gtkcreate_png("smbnfs_$_") ];
- }
-
- my $add_server = sub {
- my ($server) = @_;
- my $name = $server->{name} || $server->{ip};
- $servers_displayed{$name} ||= do {
- my $w = $tree->insert_node(undef, undef, [$name], 5, (undef) x 4, 0, 0);
- my_gtk::ctree_set_icon($tree, $w, @{$icons{server}});
- $wservers{$w->{_gtk}} = $server;
- $w;
- };
- };
-
- my $find_exports; $find_exports = sub {
- my ($server) = @_;
- my @l = eval { $kind->find_exports($server) };
- return @l if !$@;
-
- if ($server->{username}) {
- $in->ask_warn('', _("Can't login using username %s (bad password?)", $server->{username}));
- network::smb::remove_bad_credentials($server);
- } else {
- if (my @l = network::smb::authentifications_available($server)) {
- my $user = $in->ask_from_list_(_("Domain Authentication Required"),
- _("Which username"), [ @l, __("Another one") ]) or return;
- if ($user ne 'Another one') {
- network::smb::read_credentials($server, $user);
- goto $find_exports;
- }
- }
- }
-
- if ($in->ask_from(_("Domain Authentication Required"),
- _("Please enter your username, password and domain name to access this host."),
- [
- { label => _("Username"), val => \$server->{username} },
- { label => _("Password"), val => \$server->{password} },
- { label => _("Domain"), val => \$server->{domain} },
- ])) {
- goto $find_exports;
- } else {
- delete $server->{username};
- ();
- }
- };
-
- my $add_exports = sub {
- my ($node) = @_;
- $tree->expand($node);
- foreach ($find_exports->($wservers{$node->{_gtk}} || return)) { #- can't die here since insert_node provoque a tree_select_row before the %wservers is filled
- my $w = $tree->insert_node($node, undef, [$kind->to_string($_)], 5, (undef) x 4, 1, 0);
- set_export_icon(find_fstab_entry($kind, $_), $w);
- $wexports{$w->{_gtk}} = $_;
- }
- };
-
- {
- my $search = new Gtk::Button(_("Search servers"));
- gtkpack__($info_box,
- gtksignal_connect($search,
- clicked => sub {
- $add_server->($_) foreach sort { $a->{name} cmp $b->{name} } $kind->find_servers;
- $search->destroy;
- }));
- }
-
- foreach (uniq(map { ($kind->from_dev($_->{device}))[0] } @{$kind->{val}})) {
- my $node = $add_server->({ name => $_ });
- $add_exports->($node);
- }
-
- $tree->signal_connect(tree_select_row => sub {
- my $curr = $_[1];
- $inside and return;
- $inside = 1;
- if ($curr->row->is_leaf) {
- $current_leaf = $curr;
- $current_entry = find_fstab_entry($kind, $wexports{$curr->{_gtk}} || die(''), 'add');
- } else {
- if (!$curr->row->children) {
- gtkset_mousecursor_wait($tree->window);
- my_gtk::flush();
- $add_exports->($curr);
- gtkset_mousecursor_normal($tree->window);
- }
- $current_entry = undef;
- }
- update($kind);
- $inside = 0;
- });
- $tree;
-}
-
-sub add_smbnfs {
- my ($widget, $kind) = @_;
- die if $kind->{main_box};
-
- $kind->{info_box} = new Gtk::VBox(0,0);
- $kind->{display_box} = createScrolledWindow(import_ctree($kind, $kind->{info_box}));
- $kind->{action_box} = new Gtk::HBox(0,0);
- $kind->{main_box} =
- gtkpack_(new Gtk::VBox(0,7),
- 1, gtkpack(new Gtk::HBox(0,7),
- gtkset_usize($kind->{display_box}, 200, 0),
- $kind->{info_box}),
- 0, $kind->{action_box},
- );
-
- $widget->add($kind->{main_box});
- $current_entry = undef;
- update($kind);
- $kind;
-}
-
-sub nfs2kind {
- network::nfs->new({ type => 'nfs', name => 'NFS', val => $all_hds->{nfss}, no_auto => 1 });
-}
-
-sub smb2kind {
- network::smb->new({ type => 'smb', name => 'Samba', val => $all_hds->{smbs}, no_auto => 1 });
-}
-
-
-1;
diff --git a/perl-install/drakxtools.spec b/perl-install/drakxtools.spec
deleted file mode 100644
index 3ced14c20..000000000
--- a/perl-install/drakxtools.spec
+++ /dev/null
@@ -1,1252 +0,0 @@
-Summary: The drakxtools (XFdrake, diskdrake, keyboarddrake, mousedrake...)
-Name: drakxtools
-Version: 1.1.8
-Release: 9mdk
-Url: http://www.linux-mandrake.com/en/drakx.php3
-Source0: %name-%version.tar.bz2
-License: GPL
-Group: System/Configuration/Other
-Requires: %{name}-newt = %version-%release, perl-GTK >= 0.6123, perl-GTK-GdkImlib, XFree86-100dpi-fonts, XFree86-75dpi-fonts, /usr/X11R6/bin/xtest, detect-lst >= 0.9.72, font-tools, usermode >= 1.44-4mdk, perl-MDK-Common >= 1.0.3-3mdk, groff
-Conflicts: drakconf < 0.96-10mdk
-BuildRequires: e2fsprogs-devel
-BuildRequires: gcc
-BuildRequires: gettext
-BuildRequires: gtk+-devel
-BuildRequires: ldetect-devel
-BuildRequires: ncurses-devel
-BuildRequires: newt-devel
-BuildRequires: perl-devel
-BuildRoot: %_tmppath/%name-buildroot
-
-%package newt
-Summary: The drakxtools (XFdrake, diskdrake, keyboarddrake, mousedrake...)
-Group: System/Configuration/Other
-Requires: perl-base >= 1:5.8.0, urpmi, modutils >= 2.3.11, ldetect-lst >= 0.1.4-1mdk, usermode-consoleonly >= 1.44-4mdk
-Obsoletes: diskdrake setuptool
-Obsoletes: Xconfigurator mouseconfig kbdconfig printtool
-Provides: diskdrake setuptool Xconfigurator mouseconfig kbdconfig printtool
-
-%package http
-Summary: The drakxtools via http
-Group: System/Configuration/Other
-Requires: %{name}-newt = %version-%release, perl-Net_SSLeay, perl-Authen-PAM, perl-CGI
-
-%package -n harddrake
-Summary: Main Hardware Configuration/Information Tool
-Group: System/Configuration/Hardware
-Requires: %{name}-newt = %version-%release
-Obsoletes: kudzu, kudzu-devel, libdetect0, libdetect0-devel, libdetect-lst, libdetect-lst-devel, detect, detect-lst
-Provides: kudzu, kudzu-devel, libdetect0, libdetect0-devel, libdetect-lst, libdetect-lst-devel, detect, detect-lst
-
-%package -n harddrake-ui
-Summary: Main Hardware Configuration/Information Tool
-Group: System/Configuration/Hardware
-Requires: %name = %version-%release
-Obsoletes: kudzu, kudzu-devel, libdetect0, libdetect0-devel, libdetect-lst, libdetect-lst-devel, detect, detect-lst
-Provides: kudzu, kudzu-devel, libdetect0, libdetect0-devel, libdetect-lst, libdetect-lst-devel, detect, detect-lst
-
-%description
-Contains adduserdrake, ddcxinfos, diskdrake, drakautoinst, drakbackup,
-drakboot, drakbug, drakbug_report, drakconnect, drakfloppy, drakfont,
-drakgw, drakproxy, draksec, drakTermServ, drakxconf, drakxservices,
-drakxtv, lsnetdrake, lspcidrake, keyboarddrake, livedrake,
-localedrake, mousedrake, printerdrake, scannerdrake, tinyfirewall and
-XFdrake :
-
-adduserdrake: help you adding a user
-
-ddcxinfos: get infos from the graphic card and print XF86Config
-modlines
-
-diskdrake: DiskDrake makes hard disk partitioning easier. It is
-graphical, simple and powerful. Different skill levels are available
-(newbie, advanced user, expert). 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).
-
-drakautoinst: help you configure an automatic installation replay
-
-drakbackup: backup and restore your system.
-
-drakboot: configures your boot configuration (Lilo/GRUB, Aurora, X, autologin)
-
-drakbug: interactive bug report tool
-
-drakbug_report: help find bugs in DrakX
-
-drakconnet: LAN/Internet connection configuration. It handles
-ethernet, ISDN, DSL, cable, modem.
-
-drakfloppy: boot disk creator
-
-drakfont: import some fonts in the system.
-
-drakgw: internet connection sharing
-
-drakproxy: proxies configuration
-
-draksec: security configurator (security levels, ...)
-
-drakTermServ: mandrake terminal server configurator
-
-drakxconf: simple control center
-
-drakxservices: SysV service and dameaons configurator
-
-drakxtv: auto configure tv card for xawtv grabber
-
-keyboarddrake: configures your keyboard (both console and X)
-
-liveupdate: live update software.
-
-lspcidrake: displays your pci information, *and* the corresponding
-kernel module.
-
-localedrake: locale configurator (language, ...)
-
-mousedrake: configures and autodetects your mouse
-
-printerdrake: detects and configures your printer
-
-scannerdrake: scanner configurator
-
-tinyfirewall: simple firewall configurator
-
-XFdrake: menu-driven program which walks you through setting up your X
-server. It works on console and under X :)
-It autodetects both monitor and video card if possible.
-
-
-%description newt
-See package %name
-
-%description http
-This add the capability to be runned behind a web server to the drakx tools.
-See package %name
-
-%description -n harddrake
-The harddrake service is a hardware probing tool run at system boot
-time to determine what hardware has been added or removed from the
-system.
-It then offer to run needed config tool to update the OS
-configuration.
-
-
-%description -n harddrake-ui
-This is the main configuration tool for hardware that calls all the
-other configuration tools.
-It offers a nice GUI that show the hardware configuration splitted by
-hardware classes.
-
-
-%prep
-%setup -q
-
-%build
-%make rpcinfo-flushed ddcprobe serial_probe
-%make
-
-%install
-rm -rf $RPM_BUILD_ROOT
-
-%make PREFIX=$RPM_BUILD_ROOT install
-mkdir -p $RPM_BUILD_ROOT/{%_initrddir,etc/sysconfig/harddrake2}
-touch $RPM_BUILD_ROOT/etc/sysconfig/harddrake2/previous_hw
-
-mv $RPM_BUILD_ROOT%_sbindir/net_monitor \
- $RPM_BUILD_ROOT%_sbindir/net_monitor.real
-ln -sf %_bindir/consolehelper $RPM_BUILD_ROOT%_sbindir/net_monitor
-mkdir -p $RPM_BUILD_ROOT%_sysconfdir/{pam.d,security/console.apps}
-cp pam.net_monitor $RPM_BUILD_ROOT%_sysconfdir/pam.d/net_monitor
-cp apps.net_monitor $RPM_BUILD_ROOT%_sysconfdir/security/console.apps/net_monitor
-
-dirs1="usr/lib/libDrakX usr/share/libDrakX"
-(cd $RPM_BUILD_ROOT ; find $dirs1 usr/bin usr/sbin ! -type d -printf "/%%p\n")|egrep -v 'bin/.*harddrake' > %{name}.list
-(cd $RPM_BUILD_ROOT ; find $dirs1 -type d -printf "%%%%dir /%%p\n") >> %{name}.list
-
-perl -ni -e '/gtk|icons|pixmaps|XFdrake|bootlook|drakbackup|drakfont|logdrake|net_monitor/ ? print STDERR $_ : print' %{name}.list 2> %{name}-gtk.list
-perl -ni -e '/http/ ? print STDERR $_ : print' %{name}.list 2> %{name}-http.list
-
-#mdk menu entry
-mkdir -p $RPM_BUILD_ROOT/%_menudir
-cat > $RPM_BUILD_ROOT%_menudir/harddrake-ui <<EOF
-?package(harddrake-ui):\
- needs="X11"\
- section="Configuration/Hardware"\
- title="HardDrake"\
- longtitle="Hardware Central Configuration/information tool"\
- command="/usr/sbin/harddrake2"\
- icon="harddrake.png"
-EOF
-%find_lang libDrakX
-cat libDrakX.lang >> %name.list
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-%post
-[[ ! -e /usr/X11R6/bin/Xconfigurator ]] && %__ln_s -f ../sbin/XFdrake /usr/X11R6/bin/Xconfigurator
-[[ ! -e %_sbindir/kbdconfig ]] && %__ln_s -f keyboarddrake %_sbindir/kbdconfig
-[[ ! -e %_sbindir/setuptool ]] && %__ln_s -f drakxconf %_sbindir/setuptool
-[[ ! -e %_sbindir/mouseconfig ]] && %__ln_s -f mousedrake %_sbindir/mouseconfig
-[[ ! -e %_bindir/printtool ]] && %__ln_s -f ../sbin/printerdrake %_bindir/printtool
-:
-
-%postun
-for i in /usr/X11R6/bin/Xconfigurator %_sbindir/kbdconfig %_sbindir/mouseconfig %_bindir/printtool;do
- [[ -L $i ]] && %__rm -f $i
-done
-
-%post http
-%_post_service drakxtools_http
-
-%preun http
-%_preun_service drakxtools_http
-
-%post -n harddrake-ui
-%update_menus
-
-%postun -n harddrake-ui
-%clean_menus
-
-
-%files newt -f %name.list
-%defattr(-,root,root)
-%config(noreplace) /etc/security/fileshare.conf
-%doc diskdrake/diskdrake.html
-%attr(4755,root,root) %_sbindir/fileshareset
-
-%files -f %{name}-gtk.list
-%defattr(-,root,root)
-%config(noreplace) %_sysconfdir/pam.d/net_monitor
-%config(noreplace) %_sysconfdir/security/console.apps/net_monitor
-/usr/X11R6/bin/*
-
-%files -n harddrake
-%defattr(-,root,root)
-%config(noreplace) %_initrddir/harddrake
-%dir /etc/sysconfig/harddrake2/
-%config(noreplace) /etc/sysconfig/harddrake2/previous_hw
-%_datadir/harddrake/service_harddrake
-
-%files -n harddrake-ui
-%defattr(-,root,root)
-%_sbindir/harddrake2
-%_datadir/pixmaps/harddrake2
-%_menudir/harddrake-ui
-
-%files http -f %{name}-http.list
-%defattr(-,root,root)
-%dir %_sysconfdir/drakxtools_http
-%config(noreplace) %_sysconfdir/pam.d/miniserv
-%config(noreplace) %_sysconfdir/init.d/drakxtools_http
-%config(noreplace) %_sysconfdir/drakxtools_http/conf
-%config(noreplace) %_sysconfdir/drakxtools_http/authorised_progs
-%config(noreplace) %_sysconfdir/logrotate.d/drakxtools-http
-
-%changelog
-* Tue Jul 23 2002 Thierry Vignaud <tvignaud@mandrakesoft.com> 1.1.8-9mdk
-- reorganization cleanup:
- o move interactive_* into interactive::*
- o move partition_table_* into partition_table::*
-- XFdrake: more cleanups
-
-* Sun Jul 21 2002 Pixel <pixel@mandrakesoft.com> 1.1.8-8mdk
-- new snapshot (beware of XFdrake)
-
-* Thu Jul 18 2002 Thierry Vignaud <tvignaud@mandrakesoft.com> 1.1.8-7mdk
-- remove last draknet reference in harddrake::ui
-- disable diagnostics and strict mode
-
-* Thu Jul 18 2002 Thierry Vignaud <tvignaud@mandrakesoft.com> 1.1.8-6mdk
-- able to restart WindowMaker if needed
-- draknet is dead; vival el drakconnect
-- devices managment:
- o no need to write /etc/sysconfig/harddrake2/previous_hw in
- %%post since harddrake2 service doesn't configure anything if
- previous config was empty
- o fix usb mac mouse detection
- o move scsi/ata controllers, burners, dvd, ... from
- unknown/others into their own"non configurable" sections
- o fix problems with usb-interface
-- XFdrake: big cleanup
-- general cleanups
-- translation updates
-
-* Thu Jul 11 2002 Thierry Vignaud <tvignaud@mandrakesoft.com> 1.1.8-5mdk
-- drakx :
- o code enhancement: increase coherency around the whole drakx
- code regarding devices
- o decrease the debug verbosity
-- harddrake2 :
- o i18n:
- * move $version out of translatable strings
- o ui:
- * increase default main window size
- * put back the hw tree root
- * eide devices: split info between vendor and model strings
-- spec :
- o fix parrallel build
- o list and describe all gui tools from drakxtools
-
-* Wed Jul 10 2002 Thierry Vignaud <tvignaud@mandrakesoft.com> 1.1.8-4mdk
-- fix perl depandancy
-
-* Tue Jul 09 2002 Thierry Vignaud <tvignaud@mandrakesoft.com> 1.1.8-3mdk
-- harddrake2:
- o no need to 'use strict' in "binary" => remove warnings
- o fix boot freeze on hw change: initscript was running us with
- stdout redirected to /dev/null; just use a small sh wrapper to
- fix it
- o harddrake::bttv: only log in standalone mode
- o display channel of eide devices
-
-- spec:
- o reorder entries in description
- o list all entries in first line of description
- o fix post: add start argument
-
-* Mon Jul 08 2002 Thierry Vignaud <tvignaud@mandrakesoft.com> 1.1.8-2mdk
-- spec :
- o enhance descriptions
- o various spec clean
- o harddrake :
- * obsoletes/provides libdetect-lst, libdetect-lst-devel, detect,
- detect-lst, kudzu-devel
- * split package between harddrake and harddrake-ui to minimize
- the harddrake service dependancies
- * add missing /etc/sysconfig/harddrake2
-- harddrake2 :
- o cache detect_devices::probeall(1) so that hw probe is run once
- o hw configuration :
- * eide devices: split up info field into vendor and model fields
- o ui:
- * enhanced help
- * mice:
- - s/nbuttons/Number of buttons/
- - delete qw(MOUSETYPE XMOUSETYPE unsafe)
- * complete help
- * center the main window
- * remove drakx decorations
- * don't display "run config tool" button if no configurator
- availlable
- o logic:
- * skip configuration on firt run
- * don't restart harddrake on install
- * skip hw classes without configurator (which'll have a
- configurator after porting updfstab)
- o service :
- * only do the job at startup
- * add "please wait" message
- * really don't cry when no previous config
-
-* Mon Jul 08 2002 Thierry Vignaud <tvignaud@mandrakesoft.com> 1.1.8-1mdk
-- snapshot
-- new entries:
- o harddrake2 : new hardware detection && configuration tool
- o drakbugreport: bug reporting tool a la Kde (not working!)
- o drakTermServ : configuration tool for diskless stations.
-- updated programs :
- o drakxtv: if runned by root, offer to configure bttv for most tv cards
- o disdrake:
- * enhanced raid & lvm support,
- * check if programs (ie jfsprogs) are installed
- * cleanups
- o Xconfigurator: bug fix
-- general : better supermout support, use new libldetect, various bug fixes
-
-* Tue Jun 18 2002 Frederic Lepied <flepied@mandrakesoft.com> 1.1.7-99mdk
-- added new draksec from Christian and a new way to build the packages (make rpm)
-
-* Mon Apr 15 2002 Thierry Vignaud <tvignaud@mandrakesoft.com> 1.1.7-98mdk
-- snapshot
-- add drakxtv description
-- drakxtv : now auto guess the country and the freq table
-
-* Fri Mar 15 2002 dam's <damien@mandrakesoft.com> 1.1.7-97mdk
-- snapshot. final release 1
-
-* Tue Mar 12 2002 dam's <damien@mandrakesoft.com> 1.1.7-96mdk
-- added onboot options foreach network cards
-- resolv.conf and domain name bug fixed
-
-* Tue Mar 12 2002 dam's <damien@mandrakesoft.com> 1.1.7-95mdk
-- included drakproxy
-- corrected various timeout (net_monitor, internet connection tests)
-- snapshot
-
-* Mon Mar 11 2002 Pixel <pixel@mandrakesoft.com> 1.1.7-94mdk
-- various
-
-* Fri Mar 8 2002 dam's <damien@mandrakesoft.com> 1.1.7-93mdk
-- drakfont GUI corrected
-- new drakproxy
-
-* Fri Mar 08 2002 Franēois Pons <fpons@mandrakesoft.com> 1.1.7-92mdk
-- fixes for NVIDIA drivers support in XFdrake.
-
-* Thu Mar 7 2002 dam's <damien@mandrakesoft.com> 1.1.7-91mdk
-- lot of bugfixes
-- (dams)
- * standalone/net_monitor: make gc happy
- * modparm.pm, share/po/fr.po: corrected
- * standalone/draknet: corrected network/internet restart when already
- connected
- * standalone/drakfont: corrected bad system command
- * standalone/drakautoinst: corrected HASH and ARRAY label
-- (gc)
- * standalone/drakgw:
- - call net_monitor to disable internet connection before
- network-restart
- - user return value when status'ing the
- initscripts rather than grepping their text output
-- (pixel)
- * standalone/fileshareset (nfs_exports::update_server): ensure portmap
- is running
-
-* Wed Mar 6 2002 Pixel <pixel@mandrakesoft.com> 1.1.7-90mdk
-- corrected font in wizard (dams)
-- localedrake: (pixel)
- * fix dummy entries in .i18n for chineese
- * take sysconfig/i18n into account when no .i18n
- * when called by kcontrol with --apply, don't modify kde config files,
- kcontrol takes care of it more nicely
-- diskdrake: translate actions in text mode (pixel)
-- drakxtv fixed (titi)
-
-* Sun Mar 3 2002 Pixel <pixel@mandrakesoft.com> 1.1.7-89mdk
-- (gtkicons_labels_widget): pass the widget instead of directly passing the font
- (for drakconf)
-
-* Sun Mar 3 2002 Pixel <pixel@mandrakesoft.com> 1.1.7-88mdk
-- (gtkicons_labels_widget): pass the style instead of directly passing the font
- (for drakconf)
-
-* Fri Mar 1 2002 Pixel <pixel@mandrakesoft.com> 1.1.7-87mdk
-- new snapshot (including a modified localedrake)
-
-* Thu Feb 28 2002 dam's <damien@mandrakesoft.com> 1.1.7-86mdk
-- corrected modinfo path. isa modules options should now work.
-
-* Thu Feb 28 2002 dam's <damien@mandrakesoft.com> 1.1.7-85mdk
-- corrected spec so that net_monitor.real get included too.
-
-* Thu Feb 28 2002 dam's <damien@mandrakesoft.com> 1.1.7-84mdk
-- snapshot
-
-* Wed Feb 27 2002 dam's <damien@mandrakesoft.com> 1.1.7-83mdk
-- snapshot
-
-* Tue Feb 26 2002 Pixel <pixel@mandrakesoft.com> 1.1.7-82mdk
-- move XFdrake to drakxtools from drakxtools-newt
-(otherwise it doesn't work, since it needs perl-GTK & xtest)
-
-* Tue Feb 26 2002 dam's <damien@mandrakesoft.com> 1.1.7-81mdk
-- added groff require
-
-* Tue Feb 26 2002 dam's <damien@mandrakesoft.com> 1.1.7-80mdk
-- isa card modules correction. Should work in post install
-- drakfont correction
-
-* Sat Feb 23 2002 Pixel <pixel@mandrakesoft.com> 1.1.7-79mdk
-- require latest perl-MDK-Common
-- corrected icon paths (thanks to garrick)
-- don't create devices when /dev is devfs mounted (thanks to Andrej Borsenkow)
-
-* Fri Feb 22 2002 dam's <damien@mandrakesoft.com> 1.1.7-78mdk
-- corrected icon paths
-
-* Thu Feb 21 2002 Guillaume Cottenceau <gc@mandrakesoft.com> 1.1.7-77mdk
-- now we can live without kdesu ; and drakxtools-newt only requires
- usermode-consoleonly
-
-* Tue Feb 19 2002 Pixel <pixel@mandrakesoft.com> 1.1.7-76mdk
-- fix diskdrake --nfs & --smb
-
-* Tue Feb 19 2002 dam's <damien@mandrakesoft.com> 1.1.7-75mdk
-- required specific version of perl MDK Common
-
-* Tue Feb 19 2002 dam's <damien@mandrakesoft.com> 1.1.7-74mdk
-- various things not described by the last packager
-- new png/wpm search policy in my_gtk
-
-* Mon Feb 18 2002 Pixel <pixel@mandrakesoft.com> 1.1.7-73mdk
-- snapshot
-
-* Sat Feb 16 2002 Pixel <pixel@mandrakesoft.com> 1.1.7-72mdk
-- localedrake now handles KDE
-- diskdrake now handles XFS on LVM live resizing (growing only)
-
-* Fri Feb 15 2002 dam's <damien@mandrakesoft.com> 1.1.7-71mdk
-- snapshot
-
-* Thu Feb 14 2002 dam's <damien@mandrakesoft.com> 1.1.7-70mdk
-- snapshot
-
-* Mon Feb 11 2002 dam's <damien@mandrakesoft.com> 1.1.7-69mdk
-- fixed bad stuff.so in drakxtools
-
-* Fri Feb 8 2002 dam's <damien@mandrakesoft.com> 1.1.7-68mdk
-- new gfx
-- various fix
-- major printerdrake updates
-
-* Thu Feb 07 2002 Thierry Vignaud <tvignaud@mandrakesoft.com> 1.1.7-67mdk
-- add drakxtv
-
-* Thu Feb 7 2002 dam's <damien@mandrakesoft.com> 1.1.7-66mdk
-- new package, various wizard, mygtk, disdrake improvment.
-
-* Wed Feb 6 2002 dam's <damien@mandrakesoft.com> 1.1.7-65mdk
-- logdrake updates
-- wizard fix
-
-* Tue Jan 29 2002 dam's <damien@mandrakesoft.com> 1.1.7-64mdk
-- last mygtk, drakbackup...
-- disdrake fixed
-- snapshot
-
-* Sun Jan 27 2002 Pixel <pixel@mandrakesoft.com> 1.1.7-63mdk
-- cleanup drakxtools-newt (move all gtk stuff to drakxtools)
-- reworked and split diskdrake
-- add logdrake
-
-* Fri Jan 25 2002 dam's <damien@mandrakesoft.com> 1.1.7-62mdk
-- bug corrections, improvements
-- new advertising engine
-- new gtkicons_labels_widget
-
-* Tue Jan 22 2002 dam's <damien@mandrakesoft.com> 1.1.7-61mdk
-- new gtkicons_labels_widget for new mcc.
-
-* Fri Jan 18 2002 Guillaume Cottenceau <gc@mandrakesoft.com> 1.1.7-60mdk
-- first support for 'Explanations'
-
-* Fri Jan 18 2002 Sebastien Dupont <sdupont@mandrakesoft.com> 1.1.7-59mdk
-- Drakbackup without unstable options for qa.
-- DrakFont update warning message (qa).
-
-* Wed Jan 16 2002 Pixel <pixel@mandrakesoft.com> 1.1.7-58mdk
-- ensure lsnetdrake is included
-
-* Tue Jan 15 2002 Sebastien Dupont <sdupont@mandrakesoft.com> 1.1.7-57mdk
-- Drakbackup daemon, backend mode (-show-conf -daemon -debug -help -version) and report mail corrections.
-- DrakFont gi and progress bar problems.
-
-* Tue Jan 14 2002 Sebastien Dupont <sdupont@mandrakesoft.com> 1.1.7-56mdk
-- New drakbackup version, ftp backup work, new pixmaps.
-- DrakFont with new pixmaps.
-
-* Mon Jan 14 2002 Stefan van der Eijk <stefan@eijk.nu> 1.1.7-55mdk
-- BuildRequires
-
-* Fri Jan 11 2002 dam's <damien@mandrakesoft.com> 1.1.7-54mdk
-- snapshot
-
-* Wed Jan 9 2002 dam's <damien@mandrakesoft.com> 1.1.7-53mdk
-- snapshot
-- new code in my_gtk
-
-* Tue Jan 8 2002 Sebastien Dupont <sdupont@mandrakesoft.com> 1.1.7-52mdk
-- New drakbackup version, incremental backup and restore should work.
-
-* Sat Dec 22 2001 Sebastien Dupont <sdupont@mandrakesoft.com> 1.1.7-51mdk
-- fix conflicts in drakbackup cvs version.
-
-* Sat Dec 22 2001 Sebastien Dupont <sdupont@mandrakesoft.com> 1.1.7-50mdk
-- new drakbackup version.
-
-* Mon Dec 10 2001 Sebastien Dupont <sdupont@mandrakesoft.com> 1.1.7-49mdk
-- fix drakfont path problem.
-- new version of drakbakup
-
-* Wed Dec 5 2001 dam's <damien@mandrakesoft.com> 1.1.7-48mdk
-- corrected syntax error
-
-* Tue Dec 4 2001 dam's <damien@mandrakesoft.com> 1.1.7-47mdk
-- avoid network test freeze
-- added drackbackup
-- snapshot
-
-* Fri Nov 30 2001 Pixel <pixel@mandrakesoft.com> 1.1.7-46mdk
-- add diskdrake --fileshare
-
-* Thu Nov 29 2001 Pixel <pixel@mandrakesoft.com> 1.1.7-45mdk
-- new diskdrake including fileshareset/filesharelist stuff
-
-* Mon Nov 26 2001 Pixel <pixel@mandrakesoft.com> 1.1.7-44mdk
-- use the CVS, not my devel (instable) version
-
-* Fri Nov 23 2001 Pixel <pixel@mandrakesoft.com> 1.1.7-43mdk
-- any.pm fixed
-
-* Mon Nov 19 2001 Yves Duret <yduret@mandrakesoft.com> 1.1.7-42mdk
-- scannerdrake update to add dynamic support
-
-* Mon Nov 12 2001 Yves Duret <yduret@mandrakesoft.com> 1.1.7-41mdk
-- scannerdrake update with new fat ScannerDB
-
-* Mon Nov 5 2001 dam's <damien@mandrakesoft.com> 1.1.7-40mdk
-- corrected typo in drakautoinst
-
-* Fri Nov 2 2001 dam's <damien@mandrakesoft.com> 1.1.7-39mdk
-- release
-
-* Fri Oct 26 2001 dam's <damien@mandrakesoft.com> 1.1.7-38mdk
-- drakautoinst & drakfont updated
-
-* Thu Oct 25 2001 dam's <damien@mandrakesoft.com> 1.1.7-37mdk
-- big improvement on drakautoinst
-- draknet : connection script updated
-
-* Thu Oct 18 2001 dam's <damien@mandrakesoft.com> 1.1.7-36mdk
-- draknet/net_monitor corrected
-- corrected bad stuff.so
-
-* Tue Oct 16 2001 dam's <damien@mandrakesoft.com> 1.1.7-35mdk
-- make rplint happier
-
-* Wed Oct 10 2001 Yves Duret <yduret@mandrakesoft.com> 1.1.7-34mdk
-- snapshot with scanner stuff
-
-* Mon Sep 24 2001 dam's <damien@mandrakesoft.com> 1.1.7-33mdk
-- snapshot
-
-* Mon Sep 24 2001 dam's <damien@mandrakesoft.com> 1.1.7-32mdk
-- Last translations.
-
-* Mon Sep 24 2001 dam's <damien@mandrakesoft.com> 1.1.7-31mdk
-- snapshot. draknet bugfix.
-
-* Sun Sep 23 2001 dam's <damien@mandrakesoft.com> 1.1.7-30mdk
-- snapshot. Included last printer and draknet corrections.
-
-* Fri Sep 21 2001 dam's <damien@mandrakesoft.com> 1.1.7-29mdk
-- typo in adsl.pm, Xconfigurator fix.
-
-* Thu Sep 20 2001 dam's <damien@mandrakesoft.com> 1.1.7-28mdk
-- snapshot. draknet works now.
-
-* Wed Sep 19 2001 dam's <damien@mandrakesoft.com> 1.1.7-27mdk
-- snapshot
-
-* Mon Sep 17 2001 Pixel <pixel@mandrakesoft.com> 1.1.7-26mdk
-- snapshot
-
-* Mon Sep 17 2001 Pixel <pixel@mandrakesoft.com> 1.1.7-25mdk
-- snapshot
-
-* Sat Sep 15 2001 dam's <damien@mandrakesoft.com> 1.1.7-24mdk
-- snapshot with printer, draknet & install fixes
-
-* Fri Sep 14 2001 Franēois Pons <fpons@mandrakesoft.com> 1.1.7-23mdk
-- snapshot with latest XFdrake fixes.
-
-* Fri Sep 14 2001 dam's <damien@mandrakesoft.com> 1.1.7-22mdk
-- snapshot
-
-* Thu Sep 13 2001 Franēois Pons <fpons@mandrakesoft.com> 1.1.7-21mdk
-- fix Xinerama for Matrox cards (restore XFree86 4.1.0 without DRI).
-- removed Modeline 1024x768 in 97.6 Hz which troubles XF4 a lot.
-
-* Thu Sep 13 2001 Franēois Pons <fpons@mandrakesoft.com> 1.1.7-20mdk
-- snapshot with XFdrake fixes (G550 support, no DRI with Xinerama,
- no XFree86 3.3.6 proposed wiht dual head).
-
-* Wed Sep 12 2001 dam's <damien@mandrakesoft.com> 1.1.7-19mdk
-- snapshot
-
-* Wed Sep 12 2001 dam's <damien@mandrakesoft.com> 1.1.7-18mdk
-- snapshot.
-
-* Mon Sep 10 2001 Guillaume Cottenceau <gc@mandrakesoft.com> 1.1.7-17mdk
-- remove dependency on "perl" since pixel added Data::Dumper in perl-base
-
-* Mon Sep 10 2001 dam's <damien@mandrakesoft.com> 1.1.7-16mdk
-- new snapshot, bug corrections.
-
-* Thu Sep 6 2001 Guillaume Cottenceau <gc@mandrakesoft.com> 1.1.7-15mdk
-- drakgw should be working now
-
-* Tue Sep 04 2001 Yves Duret <yduret@mandrakesoft.com> 1.1.7-14mdk
-- snaphsot, better interaction with mcc (diskdrake printerdrake).
-
-* Tue Sep 4 2001 dam's <damien@mandrakesoft.com> 1.1.7-13mdk
-- snapshot.
-
-* Thu Aug 30 2001 dam's <damien@mandrakesoft.com> 1.1.7-12mdk
-- snapshot. locales corected, nicer wizards.
-
-* Thu Aug 30 2001 Franēois Pons <fpons@mandrakesoft.com> 1.1.7-11mdk
-- new snapshot, mousedrake fixes again.
-
-* Wed Aug 29 2001 Franēois Pons <fpons@mandrakesoft.com> 1.1.7-10mdk
-- new snapshot, mousedrake fixes.
-
-* Fri Aug 24 2001 dam's <damien@mandrakesoft.com> 1.1.7-9mdk
-- snapshot for 8.1 beta2.
-
-* Fri Aug 24 2001 dam's <damien@mandrakesoft.com> 1.1.7-8mdk
-- bugfix.
-- new snapshot. mousedrake experimental.
-
-* Thu Aug 23 2001 Yves Duret <yduret@mandrakesoft.com> 1.1.7-7mdk
-- fix drakboot bug
-- macros to fix some rpmlint warnings
-
-* Wed Aug 22 2001 Guillaume Cottenceau <gc@mandrakesoft.com> 1.1.7-6mdk
-- put a require on "perl" which is needed for Data::Dumper in drakautoinst
-
-* Wed Aug 22 2001 dam's <damien@mandrakesoft.com> 1.1.7-5mdk
-- snapshot. draknet improvments, bug fixes.
-
-* Mon Aug 20 2001 Pixel <pixel@mandrakesoft.com> 1.1.7-4mdk
-- new fstab munching code
-
-* Sat Aug 18 2001 Pixel <pixel@mandrakesoft.com> 1.1.7-3mdk
-- new diskdrake (with interactive version => newt)
-- drakxtools-http fix
-
-* Tue Aug 14 2001 dam's <damien@mandrakesoft.com> 1.1.7-2mdk
-- added doc (it's a shame...)
-
-* Tue Aug 14 2001 Guillaume Cottenceau <gc@mandrakesoft.com> 1.1.7-1mdk
-- add drakautoinst
-
-* Mon Aug 13 2001 dam's <damien@mandrakesoft.com> 1.1.6-3mdk
-- snapshot
-
-* Tue Aug 7 2001 dam's <damien@mandrakesoft.com> 1.1.6-2mdk
-- added draknet_splash pixmap
-
-* Tue Aug 7 2001 Pixel <pixel@mandrakesoft.com> 1.1.6-1mdk
-- add drakxtools_http
-
-* Fri Aug 3 2001 dam's <damien@mandrakesoft.com> 1.1.5-106mdk
-- added network/*.pm
-
-* Tue Jul 31 2001 Pixel <pixel@mandrakesoft.com> 1.1.5-105mdk
-- add require perl-MDK-Common
-- fix for cp -rf (fuck FreeBSD (c))
-
-* Tue Jul 31 2001 Pixel <pixel@mandrakesoft.com> 1.1.5-104mdk
-- fix my error: %%files with 2 times "-f <file>" doesn't work :-(
-
-* Mon Jul 30 2001 dam's <damien@mandrakesoft.com> 1.1.5-103mdk
-- updated with cooker install.
-- added require on XFree86-75dpi-fonts
-- merged with pixel specfile to handle mo.
-
-* Mon May 7 2001 Yves Duret <yduret@mandrakesoft.com> 1.1.5-102mdk
-- updated bootloader.pm according to new lilo package (lilo-{menu,graphic,text})
-
-* Wed Apr 25 2001 Franēois Pons <fpons@mandrakesoft.com> 1.1.5-101mdk
-- updated with oem update for DrakX.
-- minor bug correction on printerdrake.
-- added minor features to XFdrake.
-
-* Wed Apr 18 2001 dam's <damien@mandrakesoft.com> 1.1.5-100mdk
-- added require on usermode.
-- added source 2 and 3.
-- snapshot. netconnect corrections. final package
-
-* Tue Apr 17 2001 dam's <damien@mandrakesoft.com> 1.1.5-99mdk
-- snapshot. mousedrake corrected. RC6
-
-* Tue Apr 17 2001 dam's <damien@mandrakesoft.com> 1.1.5-98mdk
-- snapshot. autologin corrected. RC5
-
-* Tue Apr 17 2001 dam's <damien@mandrakesoft.com> 1.1.5-97mdk
-- snapshot. RC4
-
-* Tue Apr 17 2001 dam's <damien@mandrakesoft.com> 1.1.5-96mdk
-- snapshot. RC3
-
-* Mon Apr 16 2001 dam's <damien@mandrakesoft.com> 1.1.5-95mdk
-- snapshot. RC2
-
-* Mon Apr 16 2001 dam's <damien@mandrakesoft.com> 1.1.5-94mdk
-- snapshot. RC
-
-* Mon Apr 16 2001 dam's <damien@mandrakesoft.com> 1.1.5-93mdk
-- draknet and tinyfirewall fixes
-
-* Sun Apr 15 2001 Yves Duret <yduret@mandrakesoft.com> 1.1.5-92mdk
-- bootlook fix & layout
-
-* Fri Apr 13 2001 dam's <damien@mandrakesoft.com> 1.1.5-91mdk
-- snapshot
-
-* Fri Apr 13 2001 dam's <damien@mandrakesoft.com> 1.1.5-90mdk
-- snapshot
-
-* Thu Apr 12 2001 Pixel <pixel@mandrakesoft.com> 1.1.5-89mdk
-- snapshot
-
-* Thu Apr 12 2001 dam's <damien@mandrakesoft.com> 1.1.5-88mdk
-- snapshot. pcmcia network corrected
-
-* Thu Apr 12 2001 dam's <damien@mandrakesoft.com> 1.1.5-87mdk
-- snapshot. Better network configuration
-
-* Thu Apr 12 2001 dam's <damien@mandrakesoft.com> 1.1.5-86mdk
-- snapshot.
-
-* Wed Apr 11 2001 Franēois Pons <fpons@mandrakesoft.com> 1.1.5-85mdk
-- really fix printerdrake and snap.
-
-* Wed Apr 11 2001 Franēois Pons <fpons@mandrakesoft.com> 1.1.5-84mdk
-- fix printerdrake and snap.
-
-* Tue Apr 10 2001 dam's <damien@mandrakesoft.com> 1.1.5-83mdk
-- bug correction.
-
-* Mon Apr 9 2001 Yves Duret <yduret@mandrakesoft.com> 1.1.5-82mdk
-- snap as always
-
-* Mon Apr 9 2001 Yves Duret <yduret@mandraksoft.com> 1.1.5-81mdk
-- snaphshot again and again
-
-* Mon Apr 9 2001 dam's <damien@mandrakesoft.com> 1.1.5-80mdk
-- snapshot. bug fix
-
-* Sun Apr 8 2001 dam's <damien@mandrakesoft.com> 1.1.5-79mdk
-- snapshot. bug fix.
-
-* Sun Apr 8 2001 dam's <damien@mandrakesoft.com> 1.1.5-78mdk
-- added require on XFree86-100dpi-fonts
-- various debugging
-- new tinyfirewall
-
-* Sun Apr 8 2001 dam's <damien@mandrakesoft.com> 1.1.5-77mdk
-- snapshot
-- net_monitor added.
-
-* Fri Apr 6 2001 dam's <damien@mandrakesoft.com> 1.1.5-76mdk
-- corrected compilation error.
-
-* Fri Apr 6 2001 yves <yduret@mandrakesoft.com> 1.1.5-75mdk
-- snapshot : drakgw updated, boot config fix
-
-* Thu Apr 5 2001 dam's <damien@mandrakesoft.com> 1.1.5-74mdk
-- snapshot.
-
-* Mon Apr 2 2001 dam's <damien@mandrakesoft.com> 1.1.5-73mdk
-- snapshot.
-
-* Mon Apr 2 2001 dam's <damien@mandrakesoft.com> 1.1.5-72mdk
-- snapshot, typo fixs.
-
-* Fri Mar 30 2001 Yves Duret <yduret@mandrakesoft.com> 1.1.5-71mdk
-- snapshot & fixes
-
-* Fri Mar 30 2001 Yves Duret <yduret@mandrakesoft.com> 1.1.5-70mdk
-- snapshot : boot coonfig updated
-
-* Thu Mar 29 2001 dam's <damien@mandrakesoft.com> 1.1.5-69mdk
-- snapshot
-
-* Thu Mar 29 2001 dam's <damien@mandrakesoft.com> 1.1.5-68mdk
-- snapshot.
-
-* Thu Mar 29 2001 Pixel <pixel@mandrakesoft.com> 1.1.5-67mdk
-- new snapshot (XFdrake should be working)
-
-* Wed Mar 28 2001 dam's <damien@mandrakesoft.com> 1.1.5-66mdk
-- corrected tinyfirewall last step
-
-* Wed Mar 28 2001 Franēois Pons <fpons@mandrakesoft.com> 1.1.5-65mdk
-- fixed wrong generation of second mouse support
-
-* Wed Mar 28 2001 Franēois Pons <fpons@mandrakesoft.com> 1.1.5-64mdk
-- fixed multi-mouse support for XF3
-- fixed XFdrake (read old config file before so probe overwrite)
-
-* Wed Mar 28 2001 dam's <damien@mandrakesoft.com> 1.1.5-63mdk
-- added draksec embedded mode
-- corrected tinyfirewall for 2.4 kernels
-- corrected bad translations in draknet
-
-* Tue Mar 27 2001 dam's <damien@mandrakesoft.com> 1.1.5-62mdk
-- idem.
-
-* Sat Mar 24 2001 dam's <damien@mandrakesoft.com> 1.1.5-61mdk
-- corrected tinyfirewall
-
-* Fri Mar 23 2001 dam's <damien@mandrakesoft.com> 1.1.5-60mdk
-- snapshot
-- corrected require.
-
-* Fri Mar 23 2001 dam's <damien@mandrakesoft.com> 1.1.5-59mdk
-- added ldetect in require.
-- tinyfirewall included.
-
-* Thu Mar 22 2001 Yves Duret <yduret@mandrakesoft.com> 1.1.5-58mdk
-- updated drakboot, new snapshot
-
-* Thu Mar 22 2001 dam's <damien@mandrakesoft.com> 1.1.5-57mdk
-- draknet without mail conf, new snapshot.
-
-* Thu Mar 22 2001 Pixel <pixel@mandrakesoft.com> 1.1.5-56mdk
-- new version that will work with perl-base (at least XFdrake)
-
-* Thu Mar 22 2001 Pixel <pixel@mandrakesoft.com> 1.1.5-55mdk
-- require perl-base not perl, it should be enough
-
-* Thu Mar 22 2001 dam's <damien@mandrakesoft.com> 1.1.5-54mdk
-- first release with tinyfirewall. Not stable.
-- corrected gmon pb, I suck.
-
-* Tue Mar 20 2001 dam's <damien@mandrakesoft.com> 1.1.5-53mdk
-- corrected bad links.
-
-* Tue Mar 20 2001 dam's <damien@mandrakesoft.com> 1.1.5-52mdk
-- no crash anymore.
-
-* Tue Mar 20 2001 dam's <damien@mandrakesoft.com> 1.1.5-51mdk
-- updated draknet. new snapshot.
-
-* Wed Mar 14 2001 dam's <damien@mandrakesoft.com> 1.1.5-50mdk
-- some minor label improvements.
-
-* Tue Mar 13 2001 Yves Duret <yduret@mandrakesoft.com> 1.1.5-49mdk
-- updated bootlook
-- macros
-
-* Mon Mar 12 2001 dam's <damien@mandrakesoft.com> 1.1.5-48mdk
-- correted wizard pixmaps name
-
-* Mon Mar 12 2001 dam's <damien@mandrakesoft.com> 1.1.5-47mdk
-- new and shinny drakxservices
-
-* Tue Mar 6 2001 dam's <damien@mandrakesoft.com> 1.1.5-46mdk
-- XFdrake works + other improvements
-
-* Thu Mar 1 2001 dam's <damien@mandrakesoft.com> 1.1.5-45mdk
-- updated embedded mode.
-
-* Wed Feb 28 2001 dam's <damien@mandrakesoft.com> 1.1.5-44mdk
-- XFdrake : new look.
-- draknet : some corrections.
-- install : some improvements
-
-* Mon Feb 26 2001 dam's <damien@mandrakesoft.com> 1.1.5-43mdk
-- corrected draknet, and some other stuff
-
-* Mon Feb 26 2001 dam's <damien@mandrakesoft.com> 1.1.5-42mdk
-- new draknet, with wizard and profiles.
-- drakboot short-circuited.
-- new pixmaps policy.
-
-* Fri Feb 23 2001 Pixel <pixel@mandrakesoft.com> 1.1.5-41mdk
-- require perl-GTK-GdkImlib, fix XFdrake and draknet with no perl-GTK
-
-* Fri Feb 23 2001 Pixel <pixel@mandrakesoft.com> 1.1.5-40mdk
-- split in drakxtools and drakxtools-newt
-
-* Thu Feb 8 2001 dam's <damien@mandrakesoft.com> 1.1.5-39mdk
-- install() and SHAR_PATH bug fixed in standalone.pm
-
-* Thu Feb 8 2001 dam's <damien@mandrakesoft.com> 1.1.5-38mdk
-- bug fix.
-
-* Thu Feb 8 2001 dam's <damien@mandrakesoft.com> 1.1.5-37mdk
-- bug correction inclusion.
-
-* Wed Feb 7 2001 dam's <damien@mandrakesoft.com> 1.1.5-36mdk
-- snapshot. Included embedded mode (for control-center), and wizard mode.
-
-* Mon Dec 18 2000 Pixel <pixel@mandrakesoft.com> 1.1.5-35mdk
-- new version (lspcidrake not here anymore, requires ldetect-lst => don't
-include pcitable/... anymore)
-
-
-* Tue Nov 14 2000 Pixel <pixel@mandrakesoft.com> 1.1.5-34mdk
-- snapshot
-- get rid of the rpmlib dependency
-
-* Sat Oct 21 2000 dam's <damien@mandrakesoft.com> 1.1.5-33mdk
-- RC1_fixed tagged cvs version.
-- Video cards handling enhanced
-- isa isdn-cards and non detected isdn pci-cards spported.
-
-* Thu Oct 19 2000 dam's <damien@mandrakesoft.com> 1.1.5-32mdk
-- snapshot.
-
-* Mon Oct 9 2000 dam's <damien@mandrakesoft.com> 1.1.5-31mdk
-- snapshot.
-
-* Fri Oct 6 2000 dam's <damien@mandrakesoft.com> 1.1.5-30mdk
-- snapshot.
-
-* Fri Oct 6 2000 dam's <damien@mandrakesoft.com> 1.1.5-29.1mdk
-- snapshot. not fully stable.
-
-* Thu Oct 5 2000 dam's <damien@mandrakesoft.com> 1.1.5-29mdk
-- snapshot.
-
-* Thu Oct 05 2000 Franēois Pons <fpons@mandrakesoft.com> 1.1.5-28mdk
-- snapshot.
-
-* Tue Oct 03 2000 Franēois Pons <fpons@mandrakesoft.com> 1.1.5-27mdk
-- snapshot.
-
-* Sun Oct 1 2000 dam's <damien@mandrakesoft.com> 1.1.5-26mdk
-- snapshot.
-
-* Sat Sep 30 2000 dam's <damien@mandrakesoft.com> 1.1.5-25mdk
-- snapshot.
-
-* Sat Sep 30 2000 dam's <damien@mandrakesoft.com> 1.1.5-24mdk
-- snapshot. draknet frozen.
-
-* Fri Sep 29 2000 dam's <damien@mandrakesoft.com> 1.1.5-23mdk
-- snapshot.
-
-* Thu Sep 28 2000 dam's <damien@mandrakesoft.com> 1.1.5-22mdk
-- modified spec.
-- snapshot
-- liveupdate
-
-* Wed Sep 27 2000 Pixel <pixel@mandrakesoft.com> 1.1.5-21mdk
-- snapshot
-
-* Tue Sep 26 2000 dam's <damien@mandrakesoft.com> 1.1.5-20mdk
-- snapshot
-
-* Mon Sep 25 2000 dam's <damien@mandrakesoft.com> 1.1.5-19mdk
-- snapshot.
-
-* Fri Sep 22 2000 Guillaume Cottenceau <gc@mandrakesoft.com> 1.1.5-18mdk
-- new snapshot
-- remove BuildRequires kudzu-devel, I suck bigtime..
-
-* Thu Sep 21 2000 Guillaume Cottenceau <gc@mandrakesoft.com> 1.1.5-17mdk
-- new snapshot
-- BuildRequires kudzu-devel since ddcprobe/ddcxinfos.c uses /usr/include/vbe.h
-
-* Wed Sep 20 2000 dam's <damien@mandrakesoft.com> 1.1.5-16mdk
-- cvs snapshot. See changelog file
-
-* Wed Sep 20 2000 dam's <damien@mandrakesoft.com> 1.1.5-15mdk
-- cvs snapshot. See changelog file
-
-* Fri Sep 15 2000 dam's <damien@mandrakesoft.com> 1.1.5-14mdk
-- cvs snapshot.
-- draknet : better dsl configuration.
-
-* Thu Sep 14 2000 dam's <damien@mandrakesoft.com> 1.1.5-13mdk
-- cvs snapshot.
-- draknet : wizard mode. isdn_db.txt moved to /usr/share. No makedev.sh any more
-
-* Mon Sep 11 2000 Pixel <pixel@mandrakesoft.com> 1.1.5-12mdk
-- add handling for gnome and kde2 in Xdrakres
-
-* Thu Sep 7 2000 dam's <damien@mandrakesoft.com> 1.1.5-11mdk
-- corrected draknet launch error.
-
-* Thu Sep 7 2000 dam's <damien@mandrakesoft.com> 1.1.5-10mdk
-- ISDN connection should work. test it!
-
-* Tue Sep 5 2000 Pixel <pixel@mandrakesoft.com> 1.1.5-9mdk
-- setAutologin fixed in XFdrake
-
-* Tue Sep 5 2000 Pixel <pixel@mandrakesoft.com> 1.1.5-8mdk
-- adduserdrake fixed
-
-* Sat Sep 2 2000 Pixel <pixel@mandrakesoft.com> 1.1.5-7mdk
-- fix some typos in standalone/keyboarddrake
-- add require perl
-
-* Sat Sep 2 2000 Pixel <pixel@mandrakesoft.com> 1.1.5-6mdk
-- add %%lang tags
-
-* Tue Aug 29 2000 dam's <damien@mandrakesoft.com> 1.1.5-5mdk
-- draknet : isa cards better recognized.
-
-* Mon Aug 28 2000 dam's <damien@mandrakesoft.com> 1.1.5-4mdk
-- corrected draknet. Please test it!
-
-* Sun Aug 27 2000 dam's <damien@mandrakesoft.com> 1.1.5-3mdk
-- Added draknet in standalone
-
-* Fri Aug 18 2000 Guillaume Cottenceau <gc@mandrakesoft.com> 1.1.5-2mdk
-- add requires to modutils >= 2.3.11 because drakgw is reading
- /etc/modules.conf which has been introduced in 2.3.11
-
-* Fri Aug 18 2000 Guillaume Cottenceau <gc@mandrakesoft.com> 1.1.5-1mdk
-- added `drakgw' in standalone (Internet Connection Sharing tool)
-
-* Fri Aug 11 2000 Pixel <pixel@mandrakesoft.com> 1.1.4-3mdk
-- new snapshot
-
-* Thu Aug 10 2000 Pixel <pixel@mandrakesoft.com> 1.1.4-2mdk
-- add noreplace for diskdrake.rc
-
-* Thu Aug 10 2000 Pixel <pixel@mandrakesoft.com> 1.1.4-1mdk
-- new snapshot
-
-* Mon Aug 07 2000 Frederic Lepied <flepied@mandrakesoft.com> 1.1.3-2mdk
-- automatically added BuildRequires
-
-* Fri Jul 21 2000 Pixel <pixel@mandrakesoft.com> 1.1.3-1mdk
-- new version, BM
-
-* Wed Jul 05 2000 Thierry Vignaud <tvignaud@mandrakesoft.com> 1.1.2-2mdk
-- build against new libbz2
-
-* Mon Jun 26 2000 Pixel <pixel@mandrakesoft.com> 1.1.2-1mdk
-- new version
-
-* Tue Jun 13 2000 Pixel <pixel@mandrakesoft.com> 1.1.1-13mdk
-- hopefully fix XFdrake and DDR nvidia cards (silly xfree that is)
-
-* Mon Jun 5 2000 Pixel <pixel@mandrakesoft.com> 1.1.1-12mdk
-- fix sbus missing
-
-* Sat Jun 3 2000 Pixel <pixel@mandrakesoft.com> 1.1.1-10mdk
-- fix draksec calling init.sh instead of msec
-
-* Thu May 25 2000 Chmouel Boudjnah <chmouel@mandrakesoft.com> 1.1.1-9mdk
-- Don't display x86 stuff on drakboot when we are on others arch.
-
-* Thu May 25 2000 Franēois Pons <fpons@mandrakesoft.com> 1.1.1-8mdk
-- update with first version for sparc and sparc64.
-- fix for printer configuration for SAMBA and NCP (security issue).
-
-* Tue May 9 2000 Pixel <pixel@mandrakesoft.com> 1.1.1-7mdk
-- many small fixes (bis)
-
-* Tue May 2 2000 Pixel <pixel@mandrakesoft.com> 1.1.1-6mdk
-- many small fixes
-
-* Wed Apr 26 2000 Pixel <pixel@mandrakesoft.com> 1.1.1-5mdk
-- new version (fix in adduserdrake, enhance interactive_newt)
-
-* Wed Apr 19 2000 Pixel <pixel@mandrakesoft.com> 1.1.1-4mdk
-- llseek works, not lseek64 :( (need more testing)
-
-* Wed Apr 19 2000 Franēois Pons <fpons@mandrakesoft.com> 1.1.1-3mdk
-- updated with CVS of DrakX.
-
-* Fri Mar 31 2000 Pixel <pixel@mandrakesoft.com> 1.1.1-2mdk
-- obsoletes setuptool, link setuptool to drakxconf
-
-* Fri Mar 31 2000 Pixel <pixel@mandrakesoft.com> 1.1.1-1mdk
-- new version (added drakboot for lilo/grub, XFdrake -xf4 for XFree4)
-
-* Sat Mar 25 2000 Pixel <pixel@mandrakesoft.com> 1.1-1mdk
-- new group
-- new version
-
-* Wed Jan 12 2000 Franēois PONS <fpons@mandrakesoft.com>
-- complete update with DrakX, small fixe on printerdrake again.
-
-* Wed Jan 12 2000 Franēois PONS <fpons@mandrakesoft.com>
-- corrected missing generic postscript and text driver for
- printderdrake.
-
-* Wed Jan 12 2000 Franēois PONS <fpons@mandrakesoft.com>
-- corrected bad resolution setting in printerdrake.
-
-* Wed Jan 12 2000 Franēois PONS <fpons@mandrakesoft.com>
-- fixed print on STDOUT in printerdrake.
-- corrected printerdrake against not available drivers in gs.
-
-* Mon Jan 10 2000 Pixel <pixel@mandrakesoft.com>
-- new version (bis)
-- printerdrake install rhs-printfilters via urpmi if needed
-
-* Fri Jan 07 2000 Franēois PONS <fpons@mandrakesoft.com>
-- updated XFdrake and PrinterDrake.
-
-* Fri Jan 7 2000 Pixel <pixel@mandrakesoft.com>
-- fixed a bug causing no i18n for rpmdrake
-- add require urpmi
-
-* Thu Jan 6 2000 Pixel <pixel@mandrakesoft.com>
-- fix an error case in XFdrake
-
-* Tue Jan 4 2000 Pixel <pixel@mandrakesoft.com>
-- adduserdrake accept user names on command line
-- minor fixes
-
-* Fri Dec 31 1999 Pixel <pixel@mandrakesoft.com>
-- 32mdk
-
-* Wed Dec 29 1999 Pixel <pixel@mandrakesoft.com>
-- make rpmlint happier
-- minor fixes
-
-* Mon Dec 27 1999 Pixel <pixel@mandrakesoft.com>
-- better XFdrake and minor fixes
-
-* Fri Dec 24 1999 Pixel <pixel@mandrakesoft.com>
-- new version (better adduserdrake and more)
-- add /usr/bin/* (for lspcidrake)
-
-* Wed Dec 22 1999 Pixel <pixel@mandrakesoft.com>
-- do not try display :0 if DISPLAY is unset
-
-* Mon Dec 20 1999 Pixel <pixel@mandrakesoft.com>
-- fixed a bug in drakxservices
-- XFdrake now install XFree86 and XFree86-75dpi-fonts if needed
-- XFdrake now calls /etc/rc.d/init.d/xfs start if needed
-- minor fix
-
-* Sat Dec 18 1999 Pixel <pixel@mandrakesoft.com>
-- added kpackage's icons for rpmdrake
-
-* Thu Dec 16 1999 Pixel <pixel@mandrakesoft.com>
-- bzip2 .po's
-- mount /proc in XFdrake to avoid freeze when called by kudzu
-- added Xdrakres
-
-* Thu Dec 16 1999 Chmouel Boudjnah <chmouel@mandrakesoft.com>
-- Remove the netdrake ghost.
-
-* Thu Dec 16 1999 Pixel <pixel@mandrakesoft.com>
-- fix draksec
-- many changes in libDrakX
-
-* Sat Dec 11 1999 Pixel <pixel@mandrakesoft.com>
-- adduserdrake added and some more
-
-* Thu Dec 9 1999 Pixel <pixel@linux-mandrake.com>
-- added drakxconf, drakxservices
-- handle non root via kdesu if X
-- warning go to syslog
-
-* Wed Dec 8 1999 Chmouel Boudjnah <chmouel@mandrakesoft.com>
-- Add %post and %postun to link redhat tools to our tools.
-- Obsoletes: Xconfigurator mouseconfig kbdconfig printtool
-- A lots of changes/fix.
-
-* Thu Dec 2 1999 Pixel <pixel@linux-mandrake.com>
-- keyboarddrake added, and many changes
-- fixed typos
-
-* Fri Nov 26 1999 Pixel <pixel@linux-mandrake.com>
-- new version (printerdrake) (did i say lspcidrake was there too?)
-
-* Wed Nov 24 1999 Pixel <pixel@linux-mandrake.com>
-- new version
-- fixed *.o bundled in the %source
-
-* Sun Nov 21 1999 Pixel <pixel@mandrakesoft.com>
-- removed %config for diskdrake.rc (should i?)
-- removed xtest from the requires
-- added %config for diskdrake.rc (should i?)
-- strip .so and ddcxinfos (nice rpmlint :)
-
-* Sat Nov 20 1999 Pixel <pixel@mandrakesoft.com>
-- added MonitorsDB to %files (silly me:-!)
-
-* Thu Nov 18 1999 Pixel <pixel@mandrakesoft.com>
-- precised the required version for perl-GTK
-
-* Thu Nov 18 1999 Pixel <pixel@mandrakesoft.com>
-- First version
-
-
-# end of file
diff --git a/perl-install/fs.pm b/perl-install/fs.pm
deleted file mode 100644
index 10da0e72c..000000000
--- a/perl-install/fs.pm
+++ /dev/null
@@ -1,868 +0,0 @@
-package fs; # $Id$
-
-use diagnostics;
-use strict;
-
-use MDK::Common::System;
-use MDK::Common::Various;
-use common;
-use log;
-use devices;
-use partition_table qw(:types);
-use run_program;
-use swap;
-use detect_devices;
-use modules;
-use fsedit;
-use loopback;
-
-
-sub read_fstab {
- my ($prefix, $file, $all_options) = @_;
-
- my %comments;
- my $comment;
- my @l = grep {
- if (/^\s*#/) {
- $comment .= chomp_($_) . "\n";
- 0;
- } else {
- $comments{$_} = $comment if $comment;
- $comment = '';
- 1;
- }
- } cat_("$prefix$file");
-
- #- attach comments at the end of fstab to the previous line
- $comments{$l[-1]} = $comment if $comment;
-
- map {
- my ($dev, $mntpoint, $type, $options, $freq, $passno) = split;
- my $comment = $comments{$_};
-
- $options = 'defaults' if $options eq 'rw'; # clean-up for mtab read
-
- $type = fs2type($type);
- if ($type eq 'supermount') {
- # normalize this bloody supermount
- $options = join(",", 'supermount', grep {
- if (/fs=(.*)/) {
- $type = $1;
- 0;
- } elsif (/dev=(.*)/) {
- $dev = $1;
- 0;
- } elsif ($_ eq '--') {
- 0;
- } else {
- 1;
- }
- } split(',', $options));
- } elsif ($type eq 'smb') {
- # prefering type "smbfs" over "smb"
- $type = 'smbfs';
- }
- $mntpoint =~ s/\\040/ /g;
- $dev =~ s/\\040/ /g;
-
- my $h = {
- device => $dev, mntpoint => $mntpoint, type => $type,
- options => $options, comment => $comment,
- if_($all_options, freq => $freq, passno => $passno),
- };
-
- ($h->{major}, $h->{minor}) = unmakedev((stat "$prefix$dev")[6]);
-
- if ($dev =~ m,/(tmp|dev)/,) {
- my $symlink = readlink("$prefix$dev");
- $dev =~ s,/(tmp|dev)/,,;
-
- if ($symlink =~ m|^[^/]+$|) {
- $h->{device_alias} = $dev;
- $h->{device} = $symlink;
- } else {
- $h->{device} = $dev;
- }
- }
-
- if ($h->{options} =~ /credentials=/) {
- require network::smb;
- #- remove credentials=file with username=foo,password=bar,domain=zoo
- #- the other way is done in fstab_to_string
- my ($options, $unknown) = mount_options_unpack($h);
- my $file = delete $options->{'credentials='};
- my $credentials = network::smb::read_credentials_raw("$prefix$file");
- if ($credentials->{username}) {
- $options->{"$_="} = $credentials->{$_} foreach qw(username password domain);
- mount_options_pack($h, $options, $unknown);
- }
- }
-
- $h;
- } @l;
-}
-
-sub merge_fstabs {
- my ($loose, $fstab, @l) = @_;
-
- foreach my $p (@$fstab) {
- my ($p2) = grep { fsedit::is_same_hd($_, $p) } @l or next;
- @l = grep { !fsedit::is_same_hd($_, $p) } @l;
-
- $p->{mntpoint} = $p2->{mntpoint} if delete $p->{unsafeMntpoint};
-
- $p->{type} = $p2->{type} if $p2->{type} && !$loose;
- $p->{options} = $p2->{options} if $p2->{options} && !$loose;
- #- important to get isMounted property else DrakX may try to mount already mounted partitions :-(
- add2hash($p, $p2);
- $p->{device_alias} ||= $p2->{device_alias} || $p2->{device} if $p->{device} ne $p2->{device} && $p2->{device} !~ m|/|;
-
- $p->{type} && $p2->{type} && $p->{type} ne $p2->{type} && type2fs($p) ne type2fs($p2) &&
- $p->{type} ne 'auto' && $p2->{type} ne 'auto' and
- log::l("err, fstab and partition table do not agree for $p->{device} type: " .
- (type2fs($p) || type2name($p->{type})) . " vs ", (type2fs($p2) || type2name($p2->{type})));
- }
- @l;
-}
-
-sub add2all_hds {
- my ($all_hds, @l) = @_;
-
- @l = merge_fstabs('', [ fsedit::get_really_all_fstab($all_hds) ], @l);
-
- foreach (@l) {
- my $s =
- isThisFs('nfs', $_) ? 'nfss' :
- isThisFs('smbfs', $_) ? 'smbs' :
- 'special';
- push @{$all_hds->{$s}}, $_;
- }
-}
-
-sub get_major_minor {
- eval {
- my (undef, $major, $minor) = devices::entry($_->{device});
- ($_->{major}, $_->{minor}) = ($major, $minor);
- } foreach @_;
-}
-
-sub merge_info_from_mtab {
- my ($fstab) = @_;
-
- my @l1 = map { my $l = $_;
- my %l = (type => fs2type('swap'));
- $l{$_} = $l->{$_} foreach qw(device major minor);
- \%l;
- } read_fstab('', '/proc/swaps');
-
- my @l2 = map { read_fstab('', $_) } '/etc/mtab', '/proc/mounts';
-
- foreach (@l1, @l2) {
- log::l("found mounted partition on $_->{device} with $_->{mntpoint}");
- if ($::isInstall && $_->{mntpoint} eq '/tmp/hdimage') {
- log::l("found hdimage on $_->{device}");
- $_->{real_mntpoint} = delete $_->{mntpoint};
- $_->{mntpoint} = common::usingRamdisk() && "/mnt/hd"; #- remap for hd install.
- }
- $_->{isMounted} = $_->{isFormatted} = 1;
- delete $_->{options};
- }
- merge_fstabs('loose', $fstab, @l1, @l2);
-}
-
-# - when using "$loose", it does not merge in type&options from the fstab
-sub merge_info_from_fstab {
- my ($fstab, $prefix, $uniq, $loose) = @_;
-
- my @l = grep {
- if ($uniq) {
- my $part = fsedit::mntpoint2part($_->{mntpoint}, $fstab);
- !$part || fsedit::is_same_hd($part, $_); #- keep it only if it is the mountpoint AND the same device
- } else {
- 1;
- }
- } read_fstab($prefix, "/etc/fstab", 'all_options');
-
- merge_fstabs($loose, $fstab, @l);
-}
-
-sub prepare_write_fstab {
- my ($all_hds, $prefix, $keep_smb_credentials) = @_;
- $prefix ||= '';
-
- my @l1 = (fsedit::get_really_all_fstab($all_hds), @{$all_hds->{special}});
- my @l2 = read_fstab($prefix, "/etc/fstab", 'all_options');
-
- {
- #- remove entries from @l2 that are given by @l1
- #- this is needed to allow to unset a mount point
- my %new;
- $new{$_->{device}} = 1 foreach @l1;
- delete $new{none}; #- special case for device "none" which can be _mounted_ more than once
- @l2 = grep { !$new{$_->{device}} } @l2;
- }
-
- my %new;
- my @smb_credentials;
- my @l = map {
- my $device =
- $_->{device} eq 'none' || member($_->{type}, qw(nfs smbfs)) ?
- $_->{device} :
- isLoopback($_) ?
- ($_->{mntpoint} eq '/' ? "/initrd/loopfs" : "$_->{loopback_device}{mntpoint}") . $_->{loopback_file} :
- do {
- my $dir = $_->{device} =~ m|^/| ? '' : '/dev/';
- eval { devices::make("$prefix$dir$_->{device}") };
- "$dir$_->{device}";
- };
-
- my $real_mntpoint = $_->{mntpoint} || ${{ '/tmp/hdimage' => '/mnt/hd' }}{$_->{real_mntpoint}};
- mkdir("$prefix$real_mntpoint", 0755) if $real_mntpoint =~ m|^/|;
- my $mntpoint = loopback::carryRootLoopback($_) ? '/initrd/loopfs' : $real_mntpoint;
-
- my ($freq, $passno) =
- exists $_->{freq} ?
- ($_->{freq}, $_->{passno}) :
- isTrueFS($_) && $_->{options} !~ /encryption=/ ?
- (1, $_->{mntpoint} eq '/' ? 1 : loopback::carryRootLoopback($_) ? 0 : 2) :
- (0, 0);
-
- if (($device eq 'none' || !$new{$device}) && ($mntpoint eq 'swap' || !$new{$mntpoint})) {
- #- keep in mind the new line for fstab.
- $new{$device} = 1;
- $new{$mntpoint} = 1;
-
- my $options = $_->{options};
-
- if (isThisFs('smbfs', $_) && $options =~ /password=/ && !$keep_smb_credentials) {
- require network::smb;
- if (my ($opts, $smb_credentials) = network::smb::fstab_entry_to_credentials($_)) {
- $options = $opts;
- push @smb_credentials, $smb_credentials;
- }
- }
-
- my $type = type2fs($_);
-
- my $dev = $_->{device_alias} ? "/dev/$_->{device_alias}" : $device;
-
- $mntpoint =~ s/ /\\040/g;
- $dev =~ s/ /\\040/g;
-
- # handle bloody supermount special case
- if ($options =~ /supermount/) {
- my @l = grep { $_ ne 'supermount' } split(',', $options);
- my @l1 = grep { member($_, 'ro', 'exec') } @l;
- my @l2 = difference2(\@l, \@l1);
- $options = join(",", "dev=$dev", "fs=$type", @l1, if_(@l2, '--', @l2));
- ($dev, $type) = ('none', 'supermount');
- }
-
- [ $mntpoint, $_->{comment} . join(' ', $dev, $mntpoint, $type, $options || 'defaults', $freq, $passno) . "\n" ];
- } else {
- ()
- }
- } grep { $_->{device} && ($_->{mntpoint} || $_->{real_mntpoint}) && $_->{type} } (@l1, @l2);
-
- join('', map { $_->[1] } sort { $a->[0] cmp $b->[0] } @l), \@smb_credentials;
-}
-
-sub fstab_to_string {
- my ($all_hds, $prefix) = @_;
- my ($s, undef) = prepare_write_fstab($all_hds, $prefix, 'keep_smb_credentials');
- $s;
-}
-
-sub write_fstab {
- my ($all_hds, $prefix) = @_;
- log::l("writing $prefix/etc/fstab");
- my ($s, $smb_credentials) = prepare_write_fstab($all_hds, $prefix, '');
- output("$prefix/etc/fstab", $s);
- network::smb::save_credentials($_) foreach @$smb_credentials;
-}
-
-sub auto_fs() {
- grep { chop; $_ && !/nodev/ } cat_("/etc/filesystems");
-}
-
-sub mount_options {
- my %non_defaults = (
- sync => 'async', noatime => 'atime', noauto => 'auto', ro => 'rw',
- user => 'nouser', nodev => 'dev', noexec => 'exec', nosuid => 'suid',
- );
- my @user_implies = qw(noexec nodev nosuid);
- \%non_defaults, \@user_implies;
-}
-
-# simple function
-# use mount_options_unpack + mount_options_pack for advanced stuff
-sub add_options(\$@) {
- my ($option, @options) = @_;
- my %l; @l{split(',', $$option), @options} = (); delete $l{defaults};
- $$option = join(',', keys %l) || "defaults";
-}
-
-sub mount_options_unpack {
- my ($part) = @_;
- my $packed_options = $part->{options};
-
- my ($non_defaults, $user_implies) = mount_options();
-
- my @auto_fs = auto_fs();
- my %per_fs = (
- iso9660 => [ qw(unhide) ],
- vfat => [ qw(umask=0) ],
- nfs => [ qw(rsize=8192 wsize=8192) ],
- smbfs => [ qw(username= password=) ],
- reiserfs => [ 'notail' ],
- );
- push @{$per_fs{$_}}, 'usrquota', 'grpquota' foreach 'ext2', 'ext3', 'xfs';
-
- while (my ($fs, $l) = each %per_fs) {
- isThisFs($fs, $part) || $part->{type} eq 'auto' && member($fs, @auto_fs) or next;
- $non_defaults->{$_} = 1 foreach @$l;
- }
-
- $non_defaults->{encrypted} = 1 if !$part->{isFormatted} || isSwap($part);
-
- $non_defaults->{supermount} = 1 if member(type2fs($part), 'auto', @auto_fs);
-
- my $defaults = { reverse %$non_defaults };
- my %options = map { $_ => '' } keys %$non_defaults;
- my @unknown;
- foreach (split(",", $packed_options)) {
- if ($_ eq 'user') {
- $options{$_} = 1 foreach ('user', @$user_implies);
- } elsif (exists $non_defaults->{$_}) {
- $options{$_} = 1;
- } elsif ($defaults->{$_}) {
- $options{$defaults->{$_}} = 0;
- } elsif (/(.*?=)(.*)/) {
- $options{$1} = $2;
- } else {
- push @unknown, $_;
- }
- }
- # merge those, for cleaner help
- $options{'rsize=8192,wsize=8192'} = delete $options{'rsize=8192'} && delete $options{'wsize=8192'}
- if exists $options{'rsize=8192'};
-
- my $unknown = join(",", @unknown);
- \%options, $unknown;
-}
-
-sub mount_options_pack_ {
- my ($part, $options, $unknown) = @_;
-
- my ($non_defaults, $user_implies) = mount_options();
- my @l;
-
- if (delete $options->{user}) {
- push @l, 'user';
- foreach (@$user_implies) {
- if (!delete $options->{$_}) {
- # overriding
- $options->{$non_defaults->{$_}} = 1;
- }
- }
- }
- push @l, map_each { if_($::b, $::a =~ /=$/ ? "$::a$::b" : $::a) } %$options;
- push @l, $unknown;
-
- join(",", uniq(grep { $_ } @l));
-}
-sub mount_options_pack {
- my ($part, $options, $unknown) = @_;
- $part->{options} = mount_options_pack_($part, $options, $unknown);
- MDK::Common::Various::noreturn();
-}
-
-sub mount_options_help {
- my %help = map { $_ => '' } @_;
- my %short = map { if_(/(.*?)=/, "$1=" => $_) } keys %help;
-
- foreach (split(':', $ENV{LANGUAGE}), '') {
- my $manpage = "/usr/share/man/$_/man8/mount.8.bz2";
- -e $manpage or next;
-
- my ($tp, $option);
- foreach (`bzip2 -dc $manpage`) {
- my $prev_tp = $tp;
- $tp = /^\.(TP|RE)/;
- my ($s) = /^\.B (.*)/;
- if ($prev_tp && $s eq '\-o' .. /X^/) {
- if (my $v = $prev_tp && $s =~ /^[a-z]/i .. $tp) {
- if ($v == 1) {
- $s = $short{$s} || $s;
- $option = exists $help{$s} && !$help{$s} ? $s : '';
- } elsif ($v !~ 'E0') {
- s/\\//g;
- s/\s*"(.*?)"\s*/$1/g if s/^\.BR\s+//;
- s/^\.B\s+//;
- $help{$option} .= $_ if $option;
- }
- }
- }
- }
- }
- %help;
-}
-
-sub set_default_options {
- my ($part, $is_removable, $useSupermount, $security, $iocharset, $codepage) = @_;
-
- my ($options, $unknown) = mount_options_unpack($part);
-
- if ($is_removable) {
- $options->{supermount} = $useSupermount;
- $part->{type} = 'auto'; # if supermount, code below will handle choosing the right type
- }
-
- my $is_auto = isThisFs('auto', $part);
-
- if ($part->{media_type} eq 'cdrom') {
- $options->{ro} = 1;
- }
-
- if ($part->{media_type} eq 'fd') {
- # slow device so don't loose time, write now!
- $options->{sync} = 1;
- }
-
- if (isTrueFS($part)) {
- #- noatime on laptops (do not wake up the hd)
- #- Do not update inode access times on this
- #- file system (e.g, for faster access on the
- #- news spool to speed up news servers).
- $options->{noatime} = detect_devices::isLaptop();
- }
- if (isThisFs('nfs', $part)) {
- put_in_hash($options, {
- nosuid => 1, 'rsize=8192,wsize=8192' => 1, soft => 1,
- });
- }
- if (isFat($part) || $is_auto) {
-
- put_in_hash($options, {
- user => 1, noexec => 0,
- }) if !exists $part->{rootDevice}; # partition means no removable media
-
- put_in_hash($options, {
- 'umask=0' => $security < 3, 'iocharset=' => $iocharset, 'codepage=' => $codepage,
- });
- }
- if (isThisFs('ntfs', $part) || $is_auto) {
- put_in_hash($options, { 'iocharset=' => $iocharset });
- }
- if (isThisFs('iso9660', $part) || $is_auto) {
- put_in_hash($options, { user => 1, noexec => 0, 'iocharset=' => $iocharset });
- }
- if (isThisFs('reiserfs', $part)) {
- $options->{notail} = 1;
- }
- if (isLoopback($part) && !isSwap($part)) { #- no need for loop option for swap files
- $options->{loop} = 1;
- }
-
- # rationalize: no need for user
- if ($options->{autofs} || $options->{supermount}) {
- $options->{user} = 0;
- }
-
- # have noauto when we have user
- $options->{noauto} = 1 if $options->{user};
-
- if ($options->{user}) {
- # ensure security (user_implies - noexec as noexec is not a security matter)
- $options->{$_} = 1 foreach 'nodev', 'nosuid';
- }
-
- mount_options_pack($part, $options, $unknown);
-}
-
-sub set_all_default_options {
- my ($all_hds, $useSupermount, $security, $iocharset, $codepage) = @_;
-
- my @removables = @{$all_hds->{raw_hds}};
-
- foreach my $part (fsedit::get_really_all_fstab($all_hds)) {
- set_default_options($part, member($part, @removables), $useSupermount, $security, $iocharset, $codepage);
- }
-}
-
-sub set_removable_mntpoints {
- my ($all_hds) = @_;
-
- my %names;
- foreach (@{$all_hds->{raw_hds}}) {
- my $name = $_->{media_type};
- if (member($name, 'hd', 'fd')) {
- if (detect_devices::isZipDrive($_)) {
- $name = 'zip';
- } elsif ($name eq 'fd') {
- $name = 'floppy';
- } else {
- log::l("set_removable_mntpoints: don't know what to with hd $_->{device}");
- next;
- }
- }
- if ($name) {
- my $s = ++$names{$name};
- $_->{mntpoint} ||= "/mnt/$name" . ($s == 1 ? '' : $s);
- }
- }
-}
-
-sub get_raw_hds {
- my ($prefix, $all_hds) = @_;
-
- $all_hds->{raw_hds} =
- [
- detect_devices::floppies(),
- detect_devices::cdroms__faking_ide_scsi(),
- detect_devices::zips__faking_ide_scsi(),
- ];
- get_major_minor(@{$all_hds->{raw_hds}});
-
- my @fstab = read_fstab($prefix, "/etc/fstab", 'all_options');
- $all_hds->{nfss} = [ grep { isThisFs('nfs', $_) } @fstab ];
- $all_hds->{smbs} = [ grep { isThisFs('smbfs', $_) } @fstab ];
- $all_hds->{special} = [
- (grep { isThisFs('tmpfs', $_) } @fstab),
- { device => 'none', mntpoint => '/proc', type => 'proc' },
- { device => 'none', mntpoint => '/dev/pts', type => 'devpts', options => 'mode=0620' },
- ];
-}
-
-################################################################################
-# formatting functions
-################################################################################
-sub disable_forced_fsck {
- my ($dev) = @_;
- run_program::run("tune2fs", "-c0", "-i0", devices::make($dev));
-}
-
-sub format_ext2($@) {
- #- mke2fs -b (1024|2048|4096) -c -i(1024 > 262144) -N (1 > 100000000) -m (0-100%) -L volume-label
- #- tune2fs
- my ($dev, @options) = @_;
- $dev =~ m,(rd|ida|cciss)/, and push @options, qw(-b 4096 -R stride=16); #- For RAID only.
- push @options, qw(-b 1024 -O none) if arch() =~ /alpha/;
- run_program::run("mke2fs", @options, devices::make($dev)) or die _("%s formatting of %s failed", "ext2", $dev);
-}
-sub format_ext3 {
- my ($dev, @options) = @_;
- format_ext2($dev, "-j", @options);
- disable_forced_fsck($dev);
-}
-sub format_reiserfs {
- my ($dev, @options) = @_;
- #TODO add -h tea
- run_program::run("mkreiserfs", "-ff", @options, devices::make($dev)) or die _("%s formatting of %s failed", "reiserfs", $dev);
-}
-sub format_xfs {
- my ($dev, @options) = @_;
- run_program::run("mkfs.xfs", "-f", "-q", @options, devices::make($dev)) or die _("%s formatting of %s failed", "xfs", $dev);
-}
-sub format_jfs {
- my ($dev, @options) = @_;
- run_program::run("mkfs.jfs", "-f", @options, devices::make($dev)) or die _("%s formatting of %s failed", "jfs", $dev);
-}
-sub format_dos {
- my ($dev, @options) = @_;
- run_program::run("mkdosfs", @options, devices::make($dev)) or die _("%s formatting of %s failed", "dos", $dev);
-}
-sub format_hfs {
- my ($dev, @options) = @_;
- run_program::run("hformat", @options, devices::make($dev)) or die _("%s formatting of %s failed", "HFS", $dev);
-}
-sub real_format_part {
- my ($part) = @_;
-
- $part->{isFormatted} and return;
-
- my $dev = $part->{real_device} || $part->{device};
-
- my @options = $part->{toFormatCheck} ? "-c" : ();
- log::l("formatting device $dev (type ", type2name($part->{type}), ")");
-
- if (isExt2($part)) {
- push @options, "-F" if isLoopback($part);
- push @options, "-m", "0" if $part->{mntpoint} =~ m|^/home|;
- format_ext2($dev, @options);
- } elsif (isThisFs("ext3", $part)) {
- push @options, "-m", "0" if $part->{mntpoint} =~ m|^/home|;
- format_ext3($dev, @options);
- } elsif (isThisFs("reiserfs", $part)) {
- format_reiserfs($dev, @options, if_(c::kernel_version() =~ /^\Q2.2/, "-v", "1"));
- } elsif (isThisFs("xfs", $part)) {
- format_xfs($dev, @options);
- } elsif (isThisFs("jfs", $part)) {
- format_jfs($dev, @options);
- } elsif (isDos($part)) {
- format_dos($dev, @options);
- } elsif (isWin($part)) {
- format_dos($dev, @options, '-F', 32);
- } elsif (isThisFs('hfs', $part)) {
- format_hfs($dev, @options, '-l', "Untitled");
- } elsif (isAppleBootstrap($part)) {
- format_hfs($dev, @options, '-l', "bootstrap");
- } elsif (isSwap($part)) {
- my $check_blocks = grep { /^-c$/ } @options;
- swap::make($dev, $check_blocks);
- } else {
- die _("I don't know how to format %s in type %s", $_->{device}, type2name($_->{type}));
- }
- $part->{isFormatted} = 1;
-}
-sub format_part {
- my ($raids, $part, $prefix) = @_;
- if (isRAID($part)) {
- require raid;
- raid::format_part($raids, $part);
- } elsif (isLoopback($part)) {
- loopback::format_part($part, $prefix);
- } else {
- real_format_part($part);
- }
-}
-
-################################################################################
-# mounting functions
-################################################################################
-sub set_loop {
- my ($part) = @_;
- if (!$part->{real_device}) {
- eval { modules::load('loop') };
- $part->{real_device} = devices::set_loop(devices::make($part->{device}), $part->{encrypt_key}, $part->{options} =~ /encryption=(\w+)/);
- }
-}
-
-sub formatMount_part {
- my ($part, $raids, $fstab, $prefix, $callback) = @_;
-
- if (isLoopback($part)) {
- formatMount_part($part->{loopback_device}, $raids, $fstab, $prefix, $callback);
- }
- if (my $p = up_mount_point($part->{mntpoint}, $fstab)) {
- formatMount_part($p, $raids, $fstab, $prefix, $callback) unless loopback::carryRootLoopback($part);
- }
- if ($part->{encrypt_key}) {
- set_loop($part);
- }
- if ($part->{toFormat}) {
- $callback->($part) if $callback;
- format_part($raids, $part, $prefix);
- }
- mount_part($part, $prefix);
-}
-
-sub formatMount_all {
- my ($raids, $fstab, $prefix, $callback) = @_;
- formatMount_part($_, $raids, $fstab, $prefix, $callback)
- foreach sort { isLoopback($a) ? 1 : isSwap($a) ? -1 : 0 } grep { $_->{mntpoint} } @$fstab;
-
- #- ensure the link is there
- loopback::carryRootCreateSymlink($_, $prefix) foreach @$fstab;
-
- #- for fun :)
- #- that way, when install exits via ctrl-c, it gives hand to partition
- eval {
- local $SIG{__DIE__} = 'ignore';
- my ($type, $major, $minor) = devices::entry(fsedit::get_root($fstab)->{device});
- output "/proc/sys/kernel/real-root-dev", makedev($major, $minor);
- };
-}
-
-sub mount {
- my ($dev, $where, $fs, $rdonly, $options) = @_;
- log::l("mounting $dev on $where as type $fs, options $options");
-
- -d $where or mkdir_p($where);
-
- my @fs_modules = qw(vfat hfs romfs ufs reiserfs xfs jfs ext3);
-
- if (member($fs, 'smb', 'smbfs', 'nfs', 'ntfs') && $::isStandalone) {
- system('mount', '-t', $fs, $dev, $where, '-o', $options) == 0 or die _("mounting partition %s in directory %s failed", $dev, $where);
- return; #- do not update mtab, already done by mount(8)
- } elsif (member($fs, 'ext2', 'proc', 'usbdevfs', 'iso9660', @fs_modules)) {
- $dev = devices::make($dev) if $fs ne 'proc' && $fs ne 'usbdevfs';
- $where =~ s|/$||;
-
- my $flag = c::MS_MGC_VAL();
- $flag |= c::MS_RDONLY() if $rdonly;
- my $mount_opt = "";
-
- if ($fs eq 'vfat') {
- $mount_opt = 'check=relaxed';
- } elsif ($fs eq 'reiserfs') {
- #- could be better if we knew if there is a /boot or not
- #- without knowing it, / is forced to be mounted with notail
- # if $where =~ m|/(boot)?$|;
- $mount_opt = 'notail'; #- notail in any case
- } elsif ($fs eq 'ext2') {
- run_program::run("fsck.ext2", "-a", $dev);
- $? & 0x0100 and log::l("fsck corrected partition $dev");
- $? & 0xfeff and die _("fsck failed with exit code %d or signal %d", $? >> 8, $? & 255);
- }
- if (member($fs, @fs_modules)) {
- eval { modules::load($fs) };
- } elsif ($fs eq 'iso9660') {
- eval { modules::load('isofs') };
- }
- if ($fs eq 'ext3' && $::isInstall) {
- # ext3 mount to use the journal
- syscall_('mount', $dev, $where, $fs, $flag, $mount_opt) or die _("mounting partition %s in directory %s failed", $dev, $where) . " ($!)";
- syscall_('umount', $where);
- # really mount as ext2 during install for speed up
- $fs = 'ext2';
- }
- log::l("calling mount($dev, $where, $fs, $flag, $mount_opt)");
- syscall_('mount', $dev, $where, $fs, $flag, $mount_opt) or die _("mounting partition %s in directory %s failed", $dev, $where) . " ($!)";
- } else {
- log::l("skipping mounting $fs partition");
- return;
- }
- local *F;
- open F, ">>/etc/mtab" or return; #- fail silently, /etc must be read-only
- print F "$dev $where $fs defaults 0 0\n";
-}
-
-#- takes the mount point to umount (can also be the device)
-sub umount {
- my ($mntpoint) = @_;
- $mntpoint =~ s|/$||;
- log::l("calling umount($mntpoint)");
- syscall_('umount', $mntpoint) or die _("error unmounting %s: %s", $mntpoint, "$!");
-
- substInFile { $_ = '' if /(^|\s)$mntpoint\s/ } '/etc/mtab'; #- don't care about error, if we can't read, we won't manage to write... (and mess mtab)
-}
-
-sub mount_part {
- my ($part, $prefix, $rdonly) = @_;
-
- #- root carrier's link can't be mounted
- loopback::carryRootCreateSymlink($part, $prefix);
-
- log::l("isMounted=$part->{isMounted}, real_mntpoint=$part->{real_mntpoint}, mntpoint=$part->{mntpoint}");
- if ($part->{isMounted} && $part->{real_mntpoint} && $part->{mntpoint}) {
- log::l("remounting partition on $prefix$part->{mntpoint} instead of $part->{real_mntpoint}");
- if ($::isInstall) { #- ensure partition will not be busy.
- require install_any;
- install_any::getFile('XXX');
- }
- eval {
- umount($part->{real_mntpoint});
- rmdir $part->{real_mntpoint};
- symlinkf "$prefix$part->{mntpoint}", $part->{real_mntpoint};
- delete $part->{real_mntpoint};
- $part->{isMounted} = 0;
- };
- }
-
- return if $part->{isMounted};
-
- unless ($::testing) {
- if (isSwap($part)) {
- swap::swapon($part->{device});
- } else {
- $part->{mntpoint} or die "missing mount point for partition $part->{device}";
-
- my $mntpoint = ($prefix || '') . $part->{mntpoint};
- if (isLoopback($part) || $part->{encrypt_key}) {
- set_loop($part);
- } elsif (loopback::carryRootLoopback($part)) {
- $mntpoint = "/initrd/loopfs";
- }
- my $dev = $part->{real_device} || $part->{device};
- mount($dev, $mntpoint, type2fs($part), $rdonly, $part->{options});
- rmdir "$mntpoint/lost+found";
- }
- }
- $part->{isMounted} = $part->{isFormatted} = 1; #- assume that if mount works, partition is formatted
-}
-
-sub umount_part {
- my ($part, $prefix) = @_;
-
- $part->{isMounted} || $part->{real_mntpoint} or return;
-
- unless ($::testing) {
- if (isSwap($part)) {
- swap::swapoff($part->{device});
- } elsif (loopback::carryRootLoopback($part)) {
- umount("/initrd/loopfs");
- } else {
- umount(($prefix || '') . $part->{mntpoint} || devices::make($part->{device}));
- devices::del_loop(delete $part->{real_device}) if $part->{real_device};
- }
- }
- $part->{isMounted} = 0;
-}
-
-sub mount_all($;$$) {
- my ($fstab, $prefix) = @_;
-
- #- TODO fsck, create check_mount_all ?
- log::l("mounting all filesystems");
-
- #- order mount by alphabetical ordre, that way / < /home < /home/httpd...
- foreach (sort { $a->{mntpoint} cmp $b->{mntpoint} } grep { isSwap($_) || $_->{mntpoint} && isTrueFS($_) } @$fstab) {
- mount_part($_, $prefix);
- }
-}
-
-sub umount_all($;$) {
- my ($fstab, $prefix) = @_;
-
- log::l("unmounting all filesystems");
-
- foreach (sort { $b->{mntpoint} cmp $a->{mntpoint} } @$fstab) {
- $_->{mntpoint} and umount_part($_, $prefix);
- }
-}
-
-################################################################################
-# various functions
-################################################################################
-sub df {
- my ($part, $prefix) = @_;
- my $dir = "/tmp/tmp_fs_df";
-
- return $part->{free} if exists $part->{free};
-
- if ($part->{isMounted}) {
- $dir = ($prefix || '') . $part->{mntpoint};
- } elsif ($part->{notFormatted} && !$part->{isFormatted}) {
- return; #- won't even try!
- } else {
- mkdir $dir;
- eval { mount($part->{device}, $dir, type2fs($part), 'readonly') };
- if ($@) {
- $part->{notFormatted} = 1;
- $part->{isFormatted} = 0;
- unlink $dir;
- return;
- }
- }
- my (undef, $free) = MDK::Common::System::df($dir);
-
- if (!$part->{isMounted}) {
- umount($dir);
- unlink($dir)
- }
-
- $part->{free} = 2 * $free if defined $free;
- $part->{free};
-}
-
-sub up_mount_point {
- my ($mntpoint, $fstab) = @_;
- while (1) {
- $mntpoint = dirname($mntpoint);
- $mntpoint ne "." or return;
- $_->{mntpoint} eq $mntpoint and return $_ foreach @$fstab;
- }
-}
-
-1;
diff --git a/perl-install/fsedit.pm b/perl-install/fsedit.pm
deleted file mode 100644
index b1bb6ea6b..000000000
--- a/perl-install/fsedit.pm
+++ /dev/null
@@ -1,741 +0,0 @@
-package fsedit; # $Id$
-
-use diagnostics;
-use strict;
-use vars qw(%suggestions);
-
-#-######################################################################################
-#- misc imports
-#-######################################################################################
-use common;
-use partition_table qw(:types);
-use partition_table::raw;
-use detect_devices;
-use fsedit;
-use devices;
-use loopback;
-use log;
-use fs;
-
-%suggestions = (
- __("simple") => [
- { mntpoint => "/", size => 300 << 11, type =>0x483, ratio => 5, maxsize =>3500 << 11 },
- { mntpoint => "swap", size => 64 << 11, type => 0x82, ratio => 1, maxsize => 250 << 11 },
- { mntpoint => "/home", size => 300 << 11, type =>0x483, ratio => 3 },
- ], __("with /usr") => [
- { mntpoint => "/", size => 150 << 11, type =>0x483, ratio => 1, maxsize => 500 << 11 },
- { mntpoint => "swap", size => 64 << 11, type => 0x82, ratio => 1, maxsize => 250 << 11 },
- { mntpoint => "/usr", size => 300 << 11, type =>0x483, ratio => 4, maxsize =>3000 << 11 },
- { mntpoint => "/home", size => 100 << 11, type =>0x483, ratio => 5 },
- ], __("server") => [
- { mntpoint => "/", size => 150 << 11, type =>0x483, ratio => 1, maxsize => 250 << 11 },
- { mntpoint => "swap", size => 64 << 11, type => 0x82, ratio => 2, maxsize => 400 << 11 },
- { mntpoint => "/usr", size => 300 << 11, type =>0x483, ratio => 3, maxsize =>3000 << 11 },
- { mntpoint => "/var", size => 100 << 11, type =>0x483, ratio => 4 },
- { mntpoint => "/home", size => 100 << 11, type =>0x483, ratio => 5 },
- ],
-);
-foreach (values %suggestions) {
- if (arch() =~ /ia64/) {
- @$_ = ({ mntpoint => "/boot/efi", size => 50 << 11, type => 0xb, ratio => 1, maxsize => 150 << 11 }, @$_);
- }
-}
-
-my @suggestions_mntpoints = (
- "/var/ftp", "/var/www", "/boot", '/tmp',
- arch() =~ /sparc/ ? "/mnt/sunos" : arch() =~ /ppc/ ? "/mnt/macos" : "/mnt/windows",
- #- RedHat also has /usr/local and /opt
-);
-
-my @partitions_signatures = (
- [ 0x8e, 0, "HM\1\0" ],
- [ 0x83, 0x438, "\x53\xEF" ],
- [ 0x183, 0x10034, "ReIsErFs" ],
- [ 0x183, 0x10034, "ReIsEr2Fs" ],
- [ 0x283, 0, 'XFSB', 0x200, 'XAGF', 0x400, 'XAGI' ],
- [ 0x383, 0x8000, 'JFS1' ],
- [ 0x82, 4086, "SWAP-SPACE" ],
- [ 0x82, 4086, "SWAPSPACE2" ],
- [ 0x7, 0x1FE, "\x55\xAA", 0x3, "NTFS" ],
- [ 0xc, 0x1FE, "\x55\xAA", 0x52, "FAT32" ],
-arch() !~ /^sparc/ ? (
- [ 0x6, 0x1FE, "\x55\xAA", 0x36, "FAT" ],
-) : (),
-);
-
-sub typeOfPart {
- my $dev = devices::make($_[0]);
- my $t = typeFromMagic($dev, @partitions_signatures);
- if ($t == 0x83) {
- #- there is no magic to differentiate ext3 and ext2. Using libext2fs
- #- to check if it has a journal
- $t = 0x483 if c::is_ext3($dev);
- }
- $t;
-}
-
-#-######################################################################################
-#- Functions
-#-######################################################################################
-sub empty_all_hds {
- { hds => [], lvms => [], raids => [], loopbacks => [], raw_hds => [], nfss => [], smbs => [], special => [] };
-}
-sub recompute_loopbacks {
- my ($all_hds) = @_;
- my @fstab = get_all_fstab($all_hds);
- @{$all_hds->{loopbacks}} = map { isPartOfLoopback($_) ? @{$_->{loopback}} : () } @fstab;
-}
-
-sub raids {
- my ($hds) = @_;
-
- my @parts = get_fstab(@$hds);
- {
- my @l = grep { isRawRAID($_) } @parts or return [];
- detect_devices::raidAutoStart(@l);
- }
-
- fs::get_major_minor(@parts);
- my %devname2part = map { $_->{dev} => { %$_, device => $_->{dev} } } read_partitions();
-
- my @raids;
- my @mdstat = cat_("/proc/mdstat");
- for (my $i = 0; $i < @mdstat; $i++) {
-
- my ($nb, $level, $mdparts) =
- #- line format is:
- #- md%d : {in}?active{ (read-only)}? {linear|raid1|raid4|raid5}{ DEVNAME[%d]{(F)}?}*
- $mdstat[$i] =~ /^md(.).* ([^ \[\]]+) (\S+\[\d+\].*)/ or next;
-
- $level =~ s/raid//; #- { linear | raid0 | raid1 | raid5 } -> { linear | 0 | 1 | 5 }
-
- my $chunks = $mdstat[$i+1] =~ /(\S+) chunks/ ? $1 : "64k";
-
- my @raw_mdparts = map { /([^\[]+)/ } split ' ', $mdparts;
- my @mdparts =
- map {
- my $mdpart = $devname2part{$_} || { device => $_ };
- if (my ($part) = grep { is_same_hd($mdpart, $_) } @parts) {
- $part->{raid} = $nb;
- delete $part->{mntpoint};
- $part;
- } else {
- #- forget it when not found? that way it won't break much... beurk.
- ();
- }
- } @raw_mdparts;
-
- my $type = typeOfPart("md$nb");
- log::l("RAID: found md$nb (raid $level) chunks $chunks ", if_($type, "type $type "), "with parts ", join(", ", @raw_mdparts));
- $raids[$nb] = { 'chunk-size' => $chunks, type => $type || 0x83, disks => \@mdparts,
- device => "md$nb", notFormatted => !$type, level => $level };
- }
- require raid;
- raid::update(@raids);
- \@raids;
-}
-
-sub hds {
- my ($drives, $flags) = @_;
- my (@hds);
- my $rc;
-
- foreach (@$drives) {
- my $file = devices::make($_->{device});
-
- my $hd = partition_table::raw::get_geometry($file) or log::l("An error occurred while getting the geometry of block device $file: $!"), next;
- add2hash_($hd, $_);
- $hd->{file} = $file;
- $hd->{prefix} = $hd->{device};
- # for RAID arrays of format c0d0p1
- $hd->{prefix} .= "p" if $hd->{prefix} =~ m,(rd|ida|cciss|ataraid)/,;
-
- eval { partition_table::read($hd, $flags->{clearall} || member($_->{device}, @{$flags->{clear} || []})) };
- if ($@) {
- cdie "ask_before_blanking:$@";
- partition_table::raw::zero_MBR($hd);
- }
- member($_->{device}, @{$flags->{clear} || []}) and partition_table::remove($hd, $_)
- foreach partition_table::get_normal_parts($hd);
-
- # special case for Various type
- $_->{type} = typeOfPart($_->{device}) || 0x100 foreach grep { $_->{type} == 0x100 } partition_table::get_normal_parts($hd);
-
- #- special case for type overloading (eg: reiserfs is 0x183)
- foreach (grep { isExt2($_) } partition_table::get_normal_parts($hd)) {
- my $type = typeOfPart($_->{device});
- $_->{type} = $type if $type > 0x100 || $type && $hd->isa('partition_table::gpt');
- }
- push @hds, $hd;
- }
- #- detect raids before LVM allowing LVM on raid
- my $raids = raids(\@hds);
- my $all_hds = { %{ empty_all_hds() }, hds => \@hds, lvms => [], raids => $raids };
-
- my @lvms;
- if (my @pvs = grep { isRawLVM($_) } get_all_fstab($all_hds)) {
- #- otherwise vgscan won't find them
- devices::make($_->{device}) foreach @pvs;
- require lvm;
- foreach (@pvs) {
- my $name = lvm::get_vg($_) or next;
- my ($lvm) = grep { $_->{LVMname} eq $name } @lvms;
- if (!$lvm) {
- $lvm = bless { disks => [], LVMname => $name }, 'lvm';
- lvm::update_size($lvm);
- lvm::get_lvs($lvm);
- push @lvms, $lvm;
- }
- $_->{lvm} = $name;
- push @{$lvm->{disks}}, $_;
- }
- }
- $all_hds->{lvms} = \@lvms;
-
- fs::get_major_minor(get_all_fstab($all_hds));
-
- $all_hds;
-}
-
-
-sub read_partitions() {
- my (undef, undef, @all) = cat_("/proc/partitions");
- grep {
- $_->{size} != 1 && # skip main extended partition
- $_->{size} != 0x3fffffff # skip cdroms (otherwise stops cd-audios)
- } map {
- my %l;
- @l{qw(major minor size dev)} = split;
- \%l;
- } @all;
-}
-
-sub readProcPartitions {
- my ($hds) = @_;
-
- my @all = read_partitions();
- my @parts = grep { $_->{dev} =~ /\d$/ } @all;
- my @disks = grep { $_->{dev} !~ /\d$/ } @all;
-
- my $devfs_like = grep { $_->{dev} =~ m|/disc$| } @disks;
-
- my %devfs2normal = map {
- my (undef, $major, $minor) = devices::entry($_->{device});
- my ($disk) = grep { $_->{major} == $major && $_->{minor} == $minor } @disks;
- $disk->{dev} => $_->{device};
- } @$hds;
-
- foreach my $part (@parts) {
- my $dev;
- if ($devfs_like) {
- $dev = -e "/dev/$part->{dev}" ? $part->{dev} : sprintf("0x%x%02x", $part->{major}, $part->{minor});
- $part->{rootDevice} = $devfs2normal{dirname($part->{dev}) . '/disc'};
- } else {
- $dev = $part->{dev};
- foreach my $hd (@$hds) {
- $part->{rootDevice} = $hd->{device} if $part->{dev} =~ /^$hd->{device}./;
- }
- }
- $part->{device} = $dev;
- $part->{start} = 0; # unknown, but we don't care
- $part->{size} *= 2; # from KB to sectors
- $part->{type} = typeOfPart($dev);
-
- delete $part->{dev}; # cleanup
- }
- @parts;
-}
-
-sub all_hds {
- my ($all_hds) = @_;
- (@{$all_hds->{hds}}, @{$all_hds->{lvms}});
-}
-sub part2hd {
- my ($part, $all_hds) = @_;
- my ($hd) = grep { $part->{rootDevice} eq $_->{device} } all_hds($all_hds);
- $hd;
-}
-
-sub is_same_hd {
- my ($hd1, $hd2) = @_;
- if ($hd1->{major} && $hd2->{major}) {
- $hd1->{major} == $hd2->{major} && $hd1->{minor} == $hd2->{minor};
- } else {
- $hd1->{device} eq $hd2->{device};
- }
-}
-
-sub is_same_part {
- my ($part1, $part2) = @_;
- foreach ('start', 'size', 'type', 'rootDevice') {
- $part1->{$_} eq $part2->{$_} or return;
- }
- 1;
-}
-
-#- get all normal partition including special ones as found on sparc.
-sub get_fstab {
- map { partition_table::get_normal_parts($_) } @_;
-}
-
-#- get normal partition that should be visible for working on.
-sub get_visible_fstab {
- grep { $_ && !partition_table::isWholedisk($_) && !partition_table::isHiddenMacPart($_) }
- map { partition_table::get_normal_parts($_) } @_;
-}
-
-sub get_fstab_and_holes {
- map {
- if (isLVM($_)) {
- my @parts = partition_table::get_normal_parts($_);
- my $free = $_->{totalsectors} - sum map { $_->{size} } @parts;
- my $free_part = { start => 0, size => $free, type => 0, rootDevice => $_->{device} };
- @parts, if_($free >= $_->cylinder_size, $free_part);
- } else {
- partition_table::get_normal_parts_and_holes($_);
- }
- } @_;
-}
-sub get_holes {
- grep { $_->{type} == 0 } get_fstab_and_holes(@_);
-}
-
-sub get_all_fstab {
- my ($all_hds) = @_;
- my @parts = map { partition_table::get_normal_parts($_) } all_hds($all_hds);
- my @raids = grep {$_} @{$all_hds->{raids}};
- @parts, @raids, @{$all_hds->{loopbacks}};
-}
-sub get_really_all_fstab {
- my ($all_hds) = @_;
- my @parts = map { partition_table::get_normal_parts($_) } all_hds($all_hds);
- my @raids = grep {$_} @{$all_hds->{raids}};
- @parts, @raids, @{$all_hds->{loopbacks}}, @{$all_hds->{raw_hds}}, @{$all_hds->{nfss}}, @{$all_hds->{smbs}};
-}
-sub get_all_fstab_and_holes {
- my ($all_hds) = @_;
- my @raids = grep {$_} @{$all_hds->{raids}};
- get_fstab_and_holes(all_hds($all_hds)), @raids, @{$all_hds->{loopbacks}};
-}
-sub get_all_holes {
- my ($all_hds) = @_;
- grep { $_->{type} == 0 } get_all_fstab_and_holes($all_hds);
-}
-
-sub all_free_space {
- my ($all_hds) = @_;
- sum map { $_->{size} } get_all_holes($all_hds);
-}
-sub free_space {
- sum map { $_->{size} } get_holes(@_);
-}
-
-sub is_one_big_fat {
- my ($hds) = @_;
- @$hds == 1 or return;
-
- my @l = get_fstab(@$hds);
- @l == 1 && isFat($l[0]) && free_space(@$hds) < 10 << 11;
-}
-
-sub file2part {
- my ($prefix, $fstab, $file, $keep_simple_symlinks) = @_;
- my $part;
-
- $file = $keep_simple_symlinks ? common::expand_symlinks_but_simple("$prefix$file") : expand_symlinks("$prefix$file");
- unless ($file =~ s/^$prefix//) {
- my ($part) = grep { loopback::carryRootLoopback($_) } @$fstab or die;
- log::l("found $part->{mntpoint}");
- $file =~ s|/initrd/loopfs|$part->{mntpoint}|;
- }
- foreach (@$fstab) {
- my $m = $_->{mntpoint};
- $part = $_ if
- $file =~ /^\Q$m/ &&
- (!$part || length $part->{mntpoint} < length $m);
- }
- $part or die "file2part: not found $file";
- $file =~ s|$part->{mntpoint}/?|/|;
- ($part, $file);
-}
-
-
-sub computeSize {
- my ($part, $best, $all_hds, $suggestions) = @_;
- my $max = $part->{maxsize} || $part->{size};
- return min($max, $best->{size}) unless $best->{ratio};
-
- my $free_space = all_free_space($all_hds);
- my @l = my @L = grep {
- if (!has_mntpoint($_->{mntpoint}, $all_hds) && $free_space >= $_->{size}) {
- $free_space -= $_->{size};
- 1;
- } else { 0 } } @$suggestions;
-
- my $tot_ratios = 0;
- while (1) {
- my $old_free_space = $free_space;
- my $old_tot_ratios = $tot_ratios;
-
- $tot_ratios = sum(map { $_->{ratio} } @l);
- last if $tot_ratios == $old_tot_ratios;
-
- @l = grep {
- if ($_->{ratio} && $_->{maxsize} && $tot_ratios &&
- $_->{size} + $_->{ratio} / $tot_ratios * $old_free_space >= $_->{maxsize}) {
- return min($max, $best->{maxsize}) if $best->{mntpoint} eq $_->{mntpoint};
- $free_space -= $_->{maxsize} - $_->{size};
- 0;
- } else {
- $_->{ratio};
- }
- } @l;
- }
- my $size = int min($max, $best->{size} + $free_space * ($tot_ratios && $best->{ratio} / $tot_ratios));
- #- verify other entry can fill the hole
- if (grep { $_->{size} < $max - $size } @L) { $size } else { $max }
-}
-
-sub suggest_part {
- my ($part, $all_hds, $suggestions) = @_;
- $suggestions ||= $suggestions{server} || $suggestions{simple};
-
- my $has_swap = grep { isSwap($_) } get_all_fstab($all_hds);
-
- my ($best, $second) =
- grep { !$_->{maxsize} || $part->{size} <= $_->{maxsize} }
- grep { $_->{size} <= ($part->{maxsize} || $part->{size}) }
- grep { !has_mntpoint($_->{mntpoint}, $all_hds) || isSwap($_) && !$has_swap }
- grep { !$_->{hd} || $_->{hd} eq $part->{rootDevice} }
- grep { !$part->{type} || $part->{type} == $_->{type} || isTrueFS($part) && isTrueFS($_) }
- @$suggestions or return;
-
-#- if (arch() =~ /i.86/) {
-#- $best = $second if
-#- $best->{mntpoint} eq '/boot' &&
-#- $part->{start} + $best->{size} > 1024 * $hd->cylinder_size(); #- if the empty slot is beyond the 1024th cylinder, no use having /boot
-#- }
-
- defined $best or return; #- sorry no suggestion :(
-
- $part->{mntpoint} = $best->{mntpoint};
- $part->{type} = $best->{type} if !(isTrueFS($best) && isTrueFS($part));
- $part->{size} = computeSize($part, $best, $all_hds, $suggestions);
- $part->{options} = $best->{options} if $best->{options};
- 1;
-}
-
-sub suggestions_mntpoint {
- my ($all_hds) = @_;
- sort grep { !/swap/ && !has_mntpoint($_, $all_hds) }
- (@suggestions_mntpoints, map { $_->{mntpoint} } @{$suggestions{server} || $suggestions{simple}});
-}
-
-#-sub partitionDrives {
-#-
-#- my $cmd = "/sbin/fdisk";
-#- -x $cmd or $cmd = "/usr/bin/fdisk";
-#-
-#- my $drives = findDrivesPresent() or die "You don't have any hard drives available! You probably forgot to configure a SCSI controller.";
-#-
-#- foreach (@$drives) {
-#- my $text = "/dev/" . $_->{device};
-#- $text .= " - SCSI ID " . $_->{id} if $_->{device} =~ /^sd/;
-#- $text .= " - Model " . $_->{info};
-#- $text .= " array" if $_->{device} =~ /^c.d/;
-#-
-#- #- truncate at 50 columns for now
-#- $text = substr $text, 0, 50;
-#- }
-#- #-TODO TODO
-#-}
-
-
-sub mntpoint2part {
- my ($mntpoint, $fstab) = @_;
- first(grep { $mntpoint eq $_->{mntpoint} } @$fstab);
-}
-sub has_mntpoint {
- my ($mntpoint, $all_hds) = @_;
- mntpoint2part($mntpoint, [ get_really_all_fstab($all_hds) ]);
-}
-sub get_root_ {
- my ($fstab, $boot) = @_;
- $boot && mntpoint2part("/boot", $fstab) || mntpoint2part("/", $fstab);
-}
-sub get_root { &get_root_ || {} }
-
-#- do this before modifying $part->{type}
-sub check_type {
- my ($type, $hd, $part) = @_;
- isThisFs("jfs", { type => $type }) && $part->{size} < 16 << 11 and die _("You can't use JFS for partitions smaller than 16MB");
- isThisFs("reiserfs", { type => $type }) && $part->{size} < 32 << 11 and die _("You can't use ReiserFS for partitions smaller than 32MB");
-}
-
-sub package_needed_for_partition_type {
- my ($part) = @_;
- my %l = (
- reiserfs => 'reiserfsprogs',
- xfs => 'xfsprogs',
- jfs => 'jfsprogs',
- );
- $l{type2fs($part)};
-}
-
-#- do this before modifying $part->{mntpoint}
-#- $part->{mntpoint} should not be used here, use $mntpoint instead
-sub check_mntpoint {
- my ($mntpoint, $hd, $part, $all_hds) = @_;
-
- $mntpoint eq '' || isSwap($part) || isNonMountable($part) and return;
- $mntpoint =~ m|^/| or die _("Mount points must begin with a leading /");
- $mntpoint ne $part->{mntpoint} && has_mntpoint($mntpoint, $all_hds) and die _("There is already a partition with mount point %s\n", $mntpoint);
-
- die "raid / with no /boot"
- if $mntpoint eq "/" && isRAID($part) && !has_mntpoint("/boot", $all_hds);
- die _("You can't use a LVM Logical Volume for mount point %s", $mntpoint)
- if ($mntpoint eq '/' || $mntpoint eq '/boot') && isLVM($hd);
- die _("This directory should remain within the root filesystem")
- if member($mntpoint, qw(/bin /dev /etc /lib /sbin /root /mnt));
- die _("You need a true filesystem (ext2/ext3, reiserfs, xfs, or jfs) for this mount point\n")
- if !isTrueFS($part) && member($mntpoint, qw(/ /home /tmp /usr /var));
- die _("You can't use an encrypted file system for mount point %s", $mntpoint)
- if $part->{options} =~ /encrypted/ && member($mntpoint, qw(/ /usr /var));
-
- local $part->{mntpoint} = $mntpoint;
- loopback::check_circular_mounts($hd, $part, $all_hds);
-}
-
-sub check {
- my ($hd, $part, $all_hds) = @_;
- check_mntpoint($part->{mntpoint}, $hd, $part, $all_hds);
- check_type($part->{type}, $hd, $part);
-}
-
-sub add {
- my ($hd, $part, $all_hds, $options) = @_;
-
- isSwap($part) ?
- ($part->{mntpoint} = 'swap') :
- $options->{force} || check_mntpoint($part->{mntpoint}, $hd, $part, $all_hds);
-
- delete $part->{maxsize};
-
- if (isLVM($hd)) {
- lvm::lv_create($hd, $part);
- } else {
- partition_table::add($hd, $part, $options->{primaryOrExtended});
- }
-}
-
-sub allocatePartitions {
- my ($all_hds, $to_add) = @_;
-
- foreach my $part (get_all_holes($all_hds)) {
- my ($start, $size, $dev) = @$part{"start", "size", "rootDevice"};
- my $part;
- while (suggest_part($part = { start => $start, size => 0, maxsize => $size, rootDevice => $dev },
- $all_hds, $to_add)) {
- my ($hd) = fsedit::part2hd($part, $all_hds);
- add($hd, $part, $all_hds);
- $size -= $part->{size} + $part->{start} - $start;
- $start = $part->{start} + $part->{size};
- }
- }
-}
-
-sub auto_allocate {
- my ($all_hds, $suggestions) = @_;
- my $before = listlength(fsedit::get_all_fstab($all_hds));
-
- my $suggestions_ = $suggestions || $suggestions{simple};
- allocatePartitions($all_hds, $suggestions_);
- auto_allocate_raids($all_hds, $suggestions) if $suggestions;
-
- partition_table::assign_device_numbers($_) foreach @{$all_hds->{hds}};
-
- if ($before == listlength(fsedit::get_all_fstab($all_hds))) {
- # find out why auto_allocate failed
- if (my @l = grep { !has_mntpoint($_->{mntpoint}, $all_hds) } @$suggestions_) {
- die _("Not enough free space for auto-allocating");
- } else {
- die _("Nothing to do");
- }
- }
-}
-
-sub auto_allocate_raids {
- my ($all_hds, $suggestions) = @_;
-
- my @raids = grep { isRawRAID($_) } get_all_fstab($all_hds) or return;
- if (@raids) {
- require raid;
- my @mds = grep { $_->{hd} =~ /md/ } @$suggestions;
- foreach my $md (@mds) {
- my @raids_ = grep { !$md->{parts} || $md->{parts} =~ /\Q$_->{mntpoint}/ } @raids;
- @raids = difference2(\@raids, \@raids_);
- my $nb = raid::new($all_hds->{raids}, @raids_);
- my $part = $all_hds->{raids}[$nb];
-
- my %h = %$md;
- delete @h{'hd', 'parts'};
- put_in_hash($part, \%h); # mntpoint, level, chunk-size, type
- raid::updateSize($part);
- }
- }
-}
-
-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 $h; eval pop @{$_->{undo}} || next;
- @{$_}{@partition_table::fields2save} = @$h;
-
- $_->{isDirty} = $_->{needKernelReread} = 1 if $_->{hasBeenDirty};
- }
-
-}
-
-sub move {
- my ($hd, $part, $hd2, $sector2) = @_;
-
- die 'TODO'; # doesn't work for the moment
- my $part1 = { %$part };
- my $part2 = { %$part };
- $part2->{start} = $sector2;
- $part2->{size} += $hd2->cylinder_size() - 1;
- partition_table::remove($hd, $part);
- {
- local ($part2->{notFormatted}, $part2->{isFormatted}); #- do not allow partition::add to change this
- partition_table::add($hd2, $part2);
- }
-
- return if $part2->{notFormatted} && !$part2->{isFormatted} || $::testing;
-
- local (*F, *G);
- sysopen F, $hd->{file}, 0 or die '';
- sysopen G, $hd2->{file}, 2 or die _("Error opening %s for writing: %s", $hd2->{file}, "$!");
-
- my $base = $part1->{start};
- my $base2 = $part2->{start};
- my $step = 10;
- if ($hd eq $hd2) {
- $base == $base2 and return;
- $step = min($step, abs($base2 - $base));
-
- if ($base < $base2) {
- $base += $part1->{size} - $step;
- $base2 += $part1->{size} - $step;
- $step = -$step;
- }
- }
-
- my $f = sub {
- $base < 0 and $base2 += -$base, $base = 0;
- $base2 < 0 and $base += -$base2, $base2 = 0;
- c::lseek_sector(fileno(F), $base, 0) or die "seeking to sector $base failed on drive $hd->{device}";
- c::lseek_sector(fileno(G), $base2, 0) or die "seeking to sector $base2 failed on drive $hd2->{device}";
-
- my $buf;
- sysread F, $buf, $SECTORSIZE * abs($_[0]) or die '';
- syswrite G, $buf;
- };
-
- for (my $i = 0; $i < $part1->{size} / abs($step); $i++, $base += $step, $base2 += $step) {
- print "$base $base2\n";
- &$f($step);
- }
- if (my $v = ($part1->{size} % abs($step)) * sign($step)) {
- $base += $v;
- $base2 += $v;
- &$f($v);
- }
-}
-
-sub change_type {
- my ($type, $hd, $part) = @_;
- $type != $part->{type} or return;
- check_type($type, $hd, $part);
- $hd->{isDirty} = 1;
- $part->{mntpoint} = '' if isSwap($part) && $part->{mntpoint} eq "swap";
- $part->{mntpoint} = '' if isRawLVM({ type => $type }) || isRawRAID({ type => $type });
- $part->{type} = $type;
- $part->{notFormatted} = 1;
- $part->{isFormatted} = 0;
-}
-
-sub rescuept($) {
- my ($hd) = @_;
- my ($ext, @hd);
-
- my $dev = devices::make($hd->{device});
- local *F; open F, "rescuept $dev|";
- local $_;
- while (<F>) {
- my ($st, $si, $id) = /start=\s*(\d+),\s*size=\s*(\d+),\s*Id=\s*(\d+)/ or next;
- my $part = { start => $st, size => $si, type => hex($id) };
- if (isExtended($part)) {
- $ext = $part;
- } else {
- push @hd, $part;
- }
- }
- close F or die "rescuept failed";
-
- partition_table::raw::zero_MBR($hd);
- foreach (@hd) {
- my $b = partition_table::verifyInside($_, $ext);
- if ($b) {
- $_->{start}--;
- $_->{size}++;
- }
- local $_->{notFormatted};
-
- partition_table::add($hd, $_, ($b ? 'Extended' : 'Primary'), 1);
- }
-}
-
-sub verifyHds {
- my ($hds, $readonly, $ok) = @_;
-
- if (is_empty_array_ref($hds)) { #- no way
- die _("An error occurred - no valid devices were found on which to create new filesystems. Please check your hardware for the cause of this problem");
- }
-
- my @parts = readProcPartitions($hds);
- foreach my $hd (@$hds) {
- my @l1 = partition_table::get_normal_parts($hd);
- my @l2 = grep { $_->{rootDevice} eq $hd->{device} } @parts;
- if (int(@l1) != int(@l2) && arch() ne 'ppc') {
- log::l(sprintf
- "/proc/partitions doesn't agree with drakx %d != %d:\n%s\n", int(@l1), int(@l2),
- "/proc/partitions: " . join(", ", map { "$_->{device} ($_->{rootDevice})" } @parts));
- $ok = 0;
- }
- }
-
- if ($readonly && !$ok) {
- log::l("using /proc/partitions as diskdrake failed :(");
- foreach my $hd (@$hds) {
- partition_table::raw::zero_MBR($hd);
- $hd->{primary} = { normal => [ grep { $hd->{device} eq $_->{rootDevice} } @parts ] };
- }
- $ok = 1;
- }
- $readonly && get_fstab(@$hds) == 0 and die _("You don't have any partitions!");
- $ok;
-}
-
-#-######################################################################################
-#- Wonderful perl :(
-#-######################################################################################
-1; #
diff --git a/perl-install/ftp.pm b/perl-install/ftp.pm
deleted file mode 100644
index c84ce66a6..000000000
--- a/perl-install/ftp.pm
+++ /dev/null
@@ -1,86 +0,0 @@
-package ftp; # $Id$
-
-use Net::FTP;
-
-use network;
-use log;
-
-my %hosts;
-
-1;
-
-sub fromEnv() {
- #- now URLPREFIX is generated from what is given by mdk-stage1 which is only this 4 variables.
- $ENV{URLPREFIX} = "ftp://" . ($ENV{LOGIN} && ("$ENV{LOGIN}" . ($ENV{PASSWORD} && ":$ENV{PASSWORD}") . '@')) .
- "$ENV{HOST}/$ENV{PREFIX}";
- @ENV{qw(HOST PREFIX LOGIN PASSWORD)};
-}
-
-sub new {
- my ($host, $prefix, $login, $password) = @_;
- my @l = do { if ($hosts{"$host$prefix"}) {
- @{$hosts{"$host$prefix"}};
- } else {
- my %options = (Passive => 1, Timeout => 60, Port => 21);
- $options{Firewall} = $ENV{PROXY} if $ENV{PROXY};
- $options{Port} = $ENV{PROXYPORT} if $ENV{PROXYPORT};
- unless ($login) {
- $login = 'anonymous';
- $password = '-drakx@';
- }
-
- my $ftp;
- foreach (1..10) {
- $ftp = Net::FTP->new(network::resolv($host), %options) or die;
- $ftp && $ftp->login($login, $password) and last;
-
- log::l("ftp login failed, sleeping before trying again");
- sleep 5 * $_;
- }
- $ftp or die "unable to open ftp connection to $host";
- $ftp->binary;
- $ftp->cwd($prefix);
-
- my @l = ($ftp, \ (my $retr = undef));
- $hosts{"$host$prefix"} = \@l;
- @l;
- }};
- wantarray ? @l : $l[0];
-}
-
-sub getFile {
- my ($f, @para) = @_;
- $f eq 'XXX' and rewindGetFile(), return; #- special case to force closing connection.
- foreach (1..3) {
- my ($ftp, $retr) = new(@para ? @para : fromEnv);
- eval { $$retr->close if $$retr };
- $@ and rewindGetFile(); #- in case Timeout got us on "->close"
- $$retr = $ftp->retr($f) and return $$retr;
- ($ftp->code == 550) and log::l("FTP: 550 file unavailable"), return;
- rewindGetFile();
- log::l("ftp get failed, sleeping before trying again");
- sleep 1;
- }
-}
-
-#-sub closeFiles() {
-#- #- close any existing connections
-#- foreach (values %hosts) {
-#- my $retr = $_->[1] if ref $_;
-#- $$retr->close if $$retr;
-#- undef $$retr;
-#- }
-#-}
-
-sub rewindGetFile() {
- #- close any existing connection.
- foreach (values %hosts) {
- my ($ftp, $retr) = @{$_ || []};
- #- don't let Timeout kill us!
- eval { $$retr->close } if $$retr;
- eval { $ftp->close } if $ftp;
- }
-
- #- make sure to reconnect to server.
- %hosts = ();
-}
diff --git a/perl-install/g_auto_install b/perl-install/g_auto_install
deleted file mode 100755
index dd7655ee5..000000000
--- a/perl-install/g_auto_install
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/usr/bin/perl
-
-my $dir = `pwd`;
-chomp $dir;
-$dir .= "/../../..";
-
-#- avoid polluting environment with specific locales.
-delete $ENV{$_} foreach qw(LC_MONETARY LC_CTYPE LC_NUMERIC LC_MESSAGES LC_TIME LC_COLLATE LANGUAGE LANG RPM_INSTALL_LANG);
-
-if ($ENV{DISPLAY}) {
- system "xset", "+fp", "$dir/usr/X11R6/lib/X11/fonts/";
- system "xset", "fp", "rehash";
-}
-
-#- perl version of the install, we use directly the version we found,
-#- this means there SHOULD BE no module compiled for an older version of perl
-#- which will be used by DrakX.
-my ($version, $arch) = (glob "$dir/usr/lib/perl5/*/*/CORE/libperl.so")[0] =~ m|$dir/usr/lib/perl5/([^/]*)/([^/]*)/CORE/libperl.so|;
-
-#- keep it mind the ELF loader to use.
-$ENV{LD_LOADER} = "$dir/lib/ld-linux.so.2";
-
-$ENV{LOCPATH}="$dir/usr/share/locale";
-$ENV{GCONV_PATH}="$dir/usr/lib/gconv";
-$ENV{PERL5LIB} = join ":", map { "$dir/usr/lib/perl5/$_" } ("$version/$arch",
- "$version",
- "site_perl/$version/$arch",
- "site_perl/$version",
- "site_perl");
-$ENV{LD_LIBRARY_PATH} = "$dir/usr/bin:$dir/bin:$dir/sbin:$dir/usr/sbin:$dir/usr/X11R6/bin:$dir/lib:$dir/usr/lib:$dir/usr/lib/perl5/$version/$arch/CORE";
-$ENV{PATH} = join(":", map { "$dir/$_" } split ":", "/usr/bin:/bin:/sbin:/usr/sbin:/usr/X11R6/bin") . ":$ENV{PATH}";
-$ENV{SHARE_PATH} = "$dir/usr/share";
-$ENV{RPMRC_FILE} = "$dir/usr/lib/rpm/rpmrc";
-$ENV{GTK_DATA_PREFIX} = "$dir/usr";
-$ENV{GTK_EXE_PREFIX} = "$dir/usr";
-$ENV{GDK_IMLIB_PATH} = "$dir/usr/lib";
-
-system $ENV{LD_LOADER}, "../perl", "./install2", "--g_auto_install", @ARGV;
-
-#- at this point, unwind above else they will not run correctly (wrong ld-linux.so.2)
-delete $ENV{GTK_EXE_PREFIX};
-delete $ENV{RPMRC_FILE};
-delete $ENV{LOCPATH};
-delete $ENV{SHARE_PATH};
-delete $ENV{PATH};
-delete $ENV{LD_LIBRARY_PATH};
-delete $ENV{PERL5LIB};
-delete $ENV{LD_LOADER};
-
-if ($ENV{DISPLAY}) {
- system "xset", "-fp", "$dir/usr/X11R6/lib/X11/fonts/";
- system "xset", "fp", "rehash";
-}
diff --git a/perl-install/harddrake/TODO b/perl-install/harddrake/TODO
deleted file mode 100644
index e3ce84366..000000000
--- a/perl-install/harddrake/TODO
+++ /dev/null
@@ -1,172 +0,0 @@
--*- outline -*-
-
-* Harddrake TODO:
-** fixes
-*** IDE, SCSI: bus => bus_id, bus="IDE/SCSI" => move into DrakX
-*** SCSI: get vendor string
-*** timeout on dialogs in service
-*** mouse.pm: only probe serial if :
-**** serial mouse previously detected
-**** no non-serial mouse found
-
-** wishes
-*** 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)
-*** non needed stuff to run X must be posponed after X11 startup
-**** eg: scanner/audio/printer/floppy/cdrom/tape/tv/webcam/joystick/ ...
-**** different modes:
-***** neuneu => automatic config in service (ie for mouse/video card/...)
-***** expert => run config tools
-
-*** mode neuneu/expert => automatic/tools
-
-** voir dadou -> interface
-
-* FAIRE VALIDER -> dadou (interface), -> qa (scénarios de test)
-
-** missing
-*** check4modem
-*** config module (module options configuration button) => expert only
-*** embedded mode
-*** mode expert => oui/non (cf dadou)
-*** add updfstab
-*** make all drakx tools a simple one-liner that call right module so that
- harddrake2 and mcc can load these tools without more ram eater
-*** enable the user to force a module (isa, isapnp, ...)
-*** detect pcimcia:
-
- foreach (detect_devices::pcmcia_probe()) {
- printf "m: %-15s t: %-20s d: %-12s d: %s\n",
- $_->{driver}, $_->{type}, $_->{device}, $_->{description}
- }
-
-
-** ensure scannerdrake use is ok (=> yvounet)
-
-* Postponed
-** use fbgtk+2 when booting on fbcon for smoother GUI
-*** pixel, convert perl-GTK to gtk+2 :-)
-
-** for to send a message for unknown hardware to install@mandrakesoft.com
-*** use drakbugreport ?
-
- Subject: [UNKNOW HARDWARE] or a new other ml
- -> do you konw how to configure it under linux ?
- -> description
-
-
-
-* / no hope / useless :
-** Once we've swtiched to perl-5.8, consider doing:
- use Storable;
- retrieve %oldconfig
- store %config, $previous_conf;
-
-** 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?)
-
-** in Mandrake 9.0 :
-
- "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",
-
-
-* Suggestion
-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/data.pm b/perl-install/harddrake/data.pm
deleted file mode 100644
index 402ebc2d9..000000000
--- a/perl-install/harddrake/data.pm
+++ /dev/null
@@ -1,75 +0,0 @@
-package harddrake::data;
-
-use strict;
-use detect_devices;
-use MDK::Common;
-use class_discard;
-
-our (@ISA, @EXPORT_OK) = (qw(Exporter), (qw(version tree)));
-our ($version, $sbindir, $bindir) = ("1.1.6", "/usr/sbin", "/usr/bin");
-
-# Update me each time you handle one more devices class (aka configurator)
-sub unknown {
- grep { $_->{media_type} !~ /tape|SERIAL_(USB|SMBUS)|Printer|DISPLAY|MULTIMEDIA_(VIDEO|AUDIO|OTHER)|STORAGE_IDE|BRIDGE|NETWORK/ } detect_devices::probeall(1);
-}
-
-
-# tree format ("CLASS_ID", "type", "type_icon", configurator, detect_sub)
-# NEVER, NEVER alter CLASS_ID or you'll harddrake2 service to detect changes
-# in hw configuration ... :-(
-
-my @devices = detect_devices::probeall(1);
-
-our @tree =
- (
- ["FLOPPY","Floppy", "floppy.png", "",\&detect_devices::floppies],
- ["HARDDISK","Disk", "harddisk.png", "$sbindir/diskdrake", \&detect_devices::hds],
- ["CDROM","CDROM", "cd.png", "", sub { grep { !(detect_devices::isBurner($_) || detect_devices::isDvdDrive($_))} &detect_devices::cdroms}],
- ["BURNER","CD/DVD burners", "cd.png", "", \&detect_devices::burners],
- ["DVDROM","DVD-ROM", "cd.png", "", \&detect_devices::dvdroms],
- ["TAPE","Tape", "tape.png", "", \&detect_devices::tapes],
-# ["CDBURNER","Cd burners", "cd.png", "", \&detect_devices::burners],
-
- ["VIDEO","Videocard", "video.png", "$sbindir/XFdrake",
- sub {grep { $_->{driver} =~ /^(Card|Server):/ || $_->{media_type} =~ 'DISPLAY_VGA' } @devices }],
- ["TV","Tvcard", "tv.png", "/usr/bin/XawTV",
- sub {grep { $_->{media_type} =~ 'MULTIMEDIA_VIDEO' } @devices}],
- ["MULTIMEDIA_OTHER","Other MultiMedia devices", "tv.png", "",
- sub {grep { $_->{media_type} =~ 'MULTIMEDIA_OTHER' } @devices}],
- ["AUDIO","Soundcard", "sound.png", "$bindir/aumix",
- sub {grep { $_->{media_type} =~ 'MULTIMEDIA_AUDIO' } @devices}],
-# "MULTIMEDIA_AUDIO" => "/usr/bin/X11/sounddrake";
- ["WEBCAM","Webcam", "webcam.png", "", sub {}],
- ["ETHERNET","Ethernetcard", "hw_network.png", "$sbindir/drakconnet", sub {
- #- generic NIC detection for USB seems broken (class, subclass,
- #- protocol report are not accurate) so I'll need to verify against
- #- known drivers :-(
- my @usbnet = qw/CDCEther catc kaweth pegasus usbnet/;
- # should be taken from detect_devices.pm or modules.pm. it's identical
-
- grep { $_->{media_type} =~ /^NETWORK/ || member($_->{driver}, @usbnet) } @devices}],
-# ["","Tokenring cards", "Ethernetcard.png", "", \&detect_devices::getNet],
-# ["","FDDI cards", "Ethernetcard.png", "", \&detect_devices::getNet],
-# ["","Modem", "Modem.png", "", \&detect_devices::getNet],
-# ["","Isdn", "", "", \&detect_devices::getNet]
-
- ["BRIDGE","Bridge(s)", "memory.png", "", sub {grep { $_->{media_type} =~ 'BRIDGE' } @devices}],
-# ["","Cpu", "cpu.png", "", sub {}],
-# ["","Memory", "memory.png", "", sub {}],
- ["UNKNOWN","Unknown/Others", "unknown.png", "" , \&unknown],
-
- ["PRINTER","Printer", "hw_printer.png", "$sbindir/printerdrake",
- sub { require printerdrake; printerdrake::auto_detect(class_discard->new) } ],
- ["SCANNER","Scanner", "scanner.png", "$sbindir/scannerdrake",
- sub { require scanner; scanner::findScannerUsbport() }],
- ["MOUSE","Mouse", "hw_mouse.png", "$sbindir/mousedrake", sub { require mouse; &mouse::detect()}],
- ["JOYSTICK","Joystick", "joystick.png", "", sub {}],
-
- ["ATA_STORAGE","(E)IDE/ATA controllers", "ide_hd.png", "", sub {grep { $_->{media_type} =~ 'STORAGE_IDE' } @devices}],
- ["SCSI_CONTROLLER","SCSI controllers", "scsi.png", "", \&detect_devices::getSCSI],
- ["USB_CONTROLLER","USB controllers", "usb.png", "", sub {grep { $_->{media_type} =~ 'SERIAL_USB' } @devices}],
- ["SMB_CONTROLLER","SMBus controllers", "usb.png", "", sub {grep { $_->{media_type} =~ 'SERIAL_SMBUS' } @devices}],
- );
-
-
-1;
diff --git a/perl-install/harddrake/ui.pm b/perl-install/harddrake/ui.pm
deleted file mode 100644
index 7e64ba7fd..000000000
--- a/perl-install/harddrake/ui.pm
+++ /dev/null
Binary files differ
diff --git a/perl-install/help.pm b/perl-install/help.pm
deleted file mode 100644
index 5a2ee5b0a..000000000
--- a/perl-install/help.pm
+++ /dev/null
@@ -1,906 +0,0 @@
-package help;
-use common;
-
-# IMPORTANT: Don't edit this File - It is automatically generated
-# from the manuals !!!
-# Write a mail to <documentation@mandrakesoft.com> if
-# you want it changed.
-
-%steps = (
-empty => '',
-
-addUser =>
-__("GNU/Linux is a multiuser system, and this means that each user can have his
-own preferences, his own files and so on. You can read the ``User Guide''
-to learn more. But unlike \"root\", which is the administrator, the users
-you will add here will not be entitled to change anything except their own
-files and their own configuration. You will have to create at least one
-regular user for yourself. That account is where you should log in for
-routine use. Although it is very practical to log in as \"root\" everyday,
-it may also be very dangerous! The slightest mistake could mean that your
-system would not work any more. If you make a serious mistake as a regular
-user, you may only lose some information, but not the entire system.
-
-First, you have to enter your real name. This is not mandatory, of course -
-as you can actually enter whatever you want. DrakX will then take the first
-word you have entered in the box and will bring it over to the \"User
-name\". This is the name this particular user will use to log onto the
-system. You can change it. You then have to enter a password here. A
-non-privileged (regular) user's password is not as crucial as \"root\"' one
-from a security point of view, but that is no reason to neglect it: after
-all, your files are at risk.
-
-If you click on \"Accept user\", you can then add as many as you want. Add
-a user for each one of your friends: your father or your sister, for
-example. When you finish adding all the users you want, select \"Done\".
-
-Clicking the \"Advanced\" button allows you to change the default \"shell\"
-for that user (bash by default)."),
-
-ask_mntpoint_s =>
-__("Listed above are the existing Linux partitions detected on your hard drive.
-You can keep the choices made by the wizard, 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 be
-able to install enough software. If you want to store your data on a
-separate partition, you will also need to create a partition for \"/home\"
-(only possible if you have more than one Linux partition available).
-
-Each partition is listed as follows: \"Name\", \"Capacity\".
-
-\"Name\" is structured: \"hard drive type\", \"hard 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 drive number\" is always a letter after \"hd\" or \"sd\". For IDE
-hard drives:
-
- * \"a\" means \"master hard drive on the primary IDE controller\";
-
- * \"b\" means \"slave hard drive on the primary IDE controller\";
-
- * \"c\" means \"master hard drive on the secondary IDE controller\";
-
- * \"d\" means \"slave hard drive on the secondary IDE controller\".
-
-With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means
-\"second lowest SCSI ID\", etc."),
-
-chooseCd =>
-__("The Mandrake Linux installation is spread out over several CD-ROMs. DrakX
-knows if a selected package is located on another CD-ROM and will eject the
-current CD and ask you to insert a different one as required."),
-
-choosePackages =>
-__("It is now time to specify which programs you wish to install on your
-system. There are thousands of packages available for Mandrake Linux, and
-you are not supposed to know them all by heart.
-
-If you are performing a standard installation from a CD-ROM, you will first
-be asked to specify the CDs you currently have (in Expert mode only). Check
-the CD labels and highlight the boxes corresponding to the CDs you have
-available for installation. Click \"OK\" when you are ready to continue.
-
-Packages are sorted in groups corresponding to a particular use of your
-machine. The groups themselves are sorted into four sections:
-
- * \"Workstation\": if you plan to use your machine as a workstation,
-select one or more of the corresponding groups;
-
- * \"Development\": if your machine is to be used for programming, choose
-the desired group(s);
-
- * \"Server\": if your machine is intended to be a server, you will be able
-to select which of the most common services you wish to install on your
-machine;
-
- * \"Graphical Environment\": finally, this is where you will choose your
-preferred graphical environment. At least one must be selected if you want
-to have a graphical workstation!
-
-Moving the mouse cursor over a group name will display a short explanatory
-text about that group. If you deselect all groups when performing a regular
-installation (by opposition to an upgrade), a dialog will pop up proposing
-different options for a minimal installation:
-
- * \"With X\": install the fewer packages possible to have a working
-graphical desktop;
-
- * \"With basic documentation\": installs the base system plus basic
-utilities and their documentation. This installation is suitable for
-setting up a server;
-
- * \"Truly minimal install\": will install the strict minimum necessary to
-get a working Linux system, in command line only. This installation is
-about 65Mb large.
-
-You can check the \"Individual package selection\" box, which is useful if
-you are familiar with the packages being offered or if you want to have
-total control over what will be installed.
-
-If you started the installation in \"Upgrade\" mode, you can unselect all
-groups to avoid installing any new package. This is useful for repairing or
-updating an existing system."),
-
-choosePackagesTree =>
-__("Finally, depending on whether or not you selected individual packages, you
-will be presented a tree containing all packages classified by groups and
-subgroups. While browsing the tree, you can select entire groups,
-subgroups, or individual packages.
-
-Whenever you select a package on the tree, a description appears on the
-right. When your selection is finished, click the \"Install\" button which
-will then launch the installation process. Depending on the speed of your
-hardware and the number of packages that need to be installed, it may take
-a while to complete the process. An estimate of the time it will take to
-install everything is displayed on the screen, to help you gauge if there
-is sufficient time to enjoy a cup of coffee.
-
-!! If a server package has been selected, either intentionally or because
-it was part of a whole group, you will be asked to confirm that you really
-want those servers to be installed. Under Mandrake Linux, any installed
-servers are started by default at boot time. Even if they are safe and have
-no known issues at the time the distribution was shipped, it may happen
-that security holes are discovered after this version of Mandrake Linux was
-finalized. If you do not know what a particular service is supposed to do
-or why it is being installed, then click \"No\". Clicking \"Yes\" will
-install the listed services and they will be started automatically by
-default. !!
-
-The \"Automatic dependencies\" option simply disables the warning dialog
-which appears whenever the installer automatically selects a package. This
-occurs because it has determined that it needs to satisfy a dependency with
-another package in order to successfully complete the installation.
-
-The tiny floppy disk icon at the bottom of the list allows to load the
-package list chosen during a previous installation. Clicking on this icon
-will ask you to insert a floppy disk previously created at the end of
-another installation. See the second tip of last step on how to create such
-a floppy."),
-
-configureNetwork =>
-__("You are now proposed to set up your Internet/network connection. If you
-wish to connect your computer to the Internet or to a local network, click
-\"OK\". The autodetection of network devices and modem will be launched. If
-this detection fails, uncheck the \"Use auto detection\" box next time. You
-may also choose not to configure the network, or do it later; in that case,
-simply click the \"Cancel\" button.
-
-Available connections are: traditional modem, ISDN modem, ADSL connection,
-cable modem, and finally a simple LAN connection (Ethernet).
-
-Here, we will not detail each configuration. Simply make sure that you have
-all the parameters from your Internet Service Provider or system
-administrator.
-
-You can consult the ``User Guide'' chapter about Internet connections for
-details about the configuration, or simply wait until your system is
-installed and use the program described there to configure your connection.
-
-If you wish to configure the network later after installation, or if you
-are finished configuring your network connection, click \"Cancel\"."),
-
-configureServices =>
-__("You may now choose which services you wish to start at boot time.
-
-Here are presented all the services available with the current
-installation. Review them carefully and uncheck those which are not always
-needed at boot time.
-
-You can get a short explanatory text about a service by selecting a
-specific service. However, if you are not sure whether a service is useful
-or not, it is safer to leave the default behavior.
-
-!! At this stage, be very careful if you intend to use your machine as a
-server: you will probably not want to start any services which you do not
-need. Please remember that several services can be dangerous if they are
-enabled on a server. In general, select only the services you really need.
-!!"),
-
-configureTimezoneGMT =>
-__("GNU/Linux manages time in GMT (Greenwich Mean Time) and translates it in
-local time according to the time zone you selected. It is however possible
-to deactivate this by deselecting \"Hardware clock set to GMT\" so that the
-hardware clock is the same as the system clock. This is useful when the
-machine is hosting another operating system like Windows.
-
-The \"Automatic time synchronization\" option will automatically regulate
-the clock by connecting to a remote time server on the Internet. In the
-list that is presented, choose a server located near you. Of course you
-must have a working Internet connection for this feature to work. It will
-actually install on your machine a time server which can be optionally used
-by other machines on your local network."),
-
-configureX =>
-__("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 Mandrake Linux rely. In this section, DrakX
-will try to configure X automatically.
-
-It is extremely rare for it to fail, unless the hardware is very old (or
-very new). If it succeeds, it will start X automatically with the best
-resolution possible, depending on the size of the monitor. A window will
-then appear and ask you if you can see it.
-
-If you are doing an \"Expert\" installation, you will enter the X
-configuration wizard. See the corresponding section of the manual for more
-information about this wizard.
-
-If you can see the message during the test, and answer \"Yes\", then DrakX
-will proceed to the next step. If you cannot see the message, it simply
-means that the configuration was wrong and the test will automatically end
-after 10 seconds, restoring the screen."),
-
-configureXmain =>
-__("The first time you try the X configuration, you may not be very satisfied
-with its display (screen is too small, shifted left or right...). Hence,
-even if X starts up correctly, DrakX then asks you if the configuration
-suits you. It will also propose to change it by displaying a list of valid
-modes it could find, asking you to select one.
-
-As a last resort, if you still cannot get X to work, choose \"Change
-graphics card\", select \"Unlisted card\", and when prompted on which
-server, choose \"FBDev\". This is a failsafe option which works with any
-modern graphics card. Then choose \"Test again\" to be sure."),
-
-configureXxdm =>
-__("Finally, you will be asked whether you want to see the graphical interface
-at boot. Note this question will be asked even if you chose not to test the
-configuration. Obviously, you want to answer \"No\" if your machine is to
-act as a server, or if you were not successful in getting the display
-configured."),
-
-createBootdisk =>
-__("The Mandrake Linux CD-ROM has a built-in rescue mode. You can access it by
-booting from the CD-ROM, press the >>F1<< key at boot and type >>rescue<<
-at the prompt. But in case your computer cannot boot from the CD-ROM, you
-should come back to this step for help in at least two situations:
-
- * when installing the bootloader, DrakX will rewrite the boot sector (MBR)
-of your main disk (unless you are using another boot manager), to allow you
-to start up with either Windows or GNU/Linux (assuming you have Windows in
-your system). If you need to reinstall Windows, the Microsoft install
-process will rewrite the boot sector, and then you will not be able to
-start GNU/Linux!
-
- * if a problem arises and you cannot start up GNU/Linux from the hard
-disk, this floppy disk will be the only means of starting up GNU/Linux. It
-contains a fair number of system tools for restoring a system, which has
-crashed due to a power failure, an unfortunate typing error, a typo in a
-password, or any other reason.
-
-When you click on this step, you will be asked to enter a disk inside the
-drive. The floppy disk you will insert must be empty or contain data which
-you do not need. You will not have to format it since DrakX will rewrite
-the whole disk."),
-
-doPartitionDisks =>
-__("At this point, you need to choose where you want to install the Mandrake
-Linux operating system on your hard drive. If your hard drive is empty or
-if an existing operating system is using all the available space, you will
-need to partition it. Basically, partitioning a hard drive consists of
-logically dividing it to create space to install your new Mandrake Linux
-system.
-
-Because the partitioning process' effects are usually irreversible,
-partitioning can be intimidating and stressful if you are an inexperienced
-user. Fortunately, there is a wizard which simplifies this process. Before
-beginning, please consult the manual and take your time.
-
-If you are running the installation in Expert mode, you will enter
-DiskDrake, the Mandrake Linux partitioning tool, which allows you to
-fine-tune your partitions. See the DiskDrake section in the ``User Guide''.
-From the installation interface, you can use the wizards as described here
-by clicking the dialog's \"Wizard\" button.
-
-If partitions have already been defined, either from a previous
-installation or from another partitioning tool, simply select those to
-install your Linux system.
-
-If partitions are not defined, you will need to create them using the
-wizard. Depending on your hard drive configuration, several options are
-available:
-
- * \"Use free space\": this option will simply lead to an automatic
-partitioning of your blank drive(s). You will not be prompted further;
-
- * \"Use existing partition\": the wizard has detected one or more existing
-Linux partitions on your hard drive. If you want to use them, choose this
-option;
-
- * \"Use the free space on the Windows; partition\": if Microsoft Windows
-is installed on your hard drive and takes all the space available on it,
-you have to create free space for Linux data. To do so, you can delete your
-Microsoft Windows partition and data (see ``Erase entire disk'' or ``Expert
-mode'' solutions) or resize your Microsoft Windows partition. Resizing can
-be performed without the loss of any data, provided you previously
-defragment the Windows partition. Backing up your data won't hurt either..
-This solution is recommended if you want to use both Mandrake Linux and
-Microsoft Windows on the same computer.
-
- Before choosing this option, please understand that after this
-procedure, the size of your Microsoft Windows partition will be smaller
-than at the present time. You will have less free space under Microsoft
-Windows to store your data or to install new software;
-
- * \"Erase entire disk\": if you want to delete all data and all partitions
-present on your hard drive and replace them with your new Mandrake Linux
-system, choose this option. Be careful with this solution because you will
-not be able to revert your choice after you confirm;
-
- !! If you choose this option, all data on your disk will be lost. !!
-
- * \"Remove Windows\": this will simply erase everything on the drive and
-begin fresh, partitioning everything from scratch. All data on your disk
-will be lost;
-
- !! If you choose this option, all data on your disk will be lost. !!
-
- * \"Expert mode\": choose this option if you want to manually partition
-your hard drive. Be careful - it is a powerful but dangerous choice. You
-can very easily lose all your data. Hence, do not choose this unless you
-know what you are doing."),
-
-exitInstall =>
-__("There you are. Installation is now complete and your GNU/Linux system is
-ready to use. Just click \"OK\" to reboot the system. You can start
-GNU/Linux or Windows, whichever you prefer (if you are dual-booting), as
-soon as the computer has booted up again.
-
-The \"Advanced\" button (in Expert mode only) shows two more buttons to:
-
- * \"generate auto-install floppy\": to create an installation floppy disk
-which will automatically perform a whole installation without the help of
-an operator, similar to the installation you just configured.
-
- Note that two different options are available after clicking the button:
-
- * \"Replay\". This is a partially automated installation as the
-partitioning step (and only this one) remains interactive;
-
- * \"Automated\". Fully automated installation: the hard disk is
-completely rewritten, all data is lost.
-
- This feature is very handy when installing a great number of similar
-machines. See the Auto install section on our web site;
-
- * \"Save packages selection\"(*): saves the package selection as done
-previously. Then, when doing another installation, insert the floppy inside
-the drive and run the installation going to the help screen by pressing on
-the [F1] key, and by issuing >>linux defcfg=\"floppy\"<<.
-
-(*) You need a FAT-formatted floppy (to create one under GNU/Linux, type
-\"mformat a:\")"),
-
-formatPartitions =>
-__("Any partitions that have been newly defined must be formatted for use
-(formatting means creating a filesystem).
-
-At this time, you may wish to reformat some already existing partitions to
-erase any data they contain. If you wish to do that, please select those
-partitions as well.
-
-Please note that it is not necessary to reformat all pre-existing
-partitions. You must reformat the partitions containing the operating
-system (such as \"/\", \"/usr\" or \"/var\") but you do not have to
-reformat partitions containing data that you wish to keep (typically
-\"/home\").
-
-Please be careful when selecting partitions. After formatting, all data on
-the selected partitions will be deleted and you will not be able to recover
-any of it.
-
-Click on \"OK\" when you are ready to format partitions.
-
-Click on \"Cancel\" if you want to choose another partition for your new
-Mandrake Linux operating system installation.
-
-Click on \"Advanced\" if you wish to select partitions that will be checked
-for bad blocks on the disk."),
-
-installPackages =>
-__("Your new Mandrake Linux operating system is currently being installed.
-Depending on the number of packages you will be installing and the speed of
-your computer, this operation could take from a few minutes to a
-significant amount of time.
-
-Please be patient."),
-
-installUpdates =>
-__("At the time you are installing Mandrake Linux, it is likely that some
-packages have been updated since the initial release. Some bugs may have
-been fixed, and security issues solved. To allow you to benefit from these
-updates, you are now proposed to download them from the Internet. Choose
-\"Yes\" if you have a working Internet connection, or \"No\" if you prefer
-to install updated packages later.
-
-Choosing \"Yes\" displays a list of places from which updates can be
-retrieved. Choose the one nearest you. Then a package-selection tree
-appears: review the selection, and press \"Install\" to retrieve and
-install the selected package(s), or \"Cancel\" to abort."),
-
-license =>
-__("Before continuing, you should read carefully the terms of the license. It
-covers the whole Mandrake Linux distribution, and if you do not agree with
-all the terms in it, click on the \"Refuse\" button which will immediately
-terminate the installation. To continue with the installation, click on the
-\"Accept\" button."),
-
-miscellaneous =>
-__("At this point, it is time to choose the security level desired for the
-machine. As a rule of thumb, the more exposed the machine is, and the more
-the data stored in it is crucial, the higher the security level should be.
-However, a higher security level is generally obtained at the expense of
-easiness of use. Refer to the \"msec\" chapter of the ``Reference Manual''
-to get more information about the meaning of these levels.
-
-If you do not know what to choose, keep the default option."),
-
-partition_with_diskdrake =>
-__("At this point, you need to choose which partition(s) will be used for the
-installation of your Mandrake Linux system. If partitions have already been
-defined, either from a previous installation of GNU/Linux or from another
-partitioning tool, you can use existing partitions. Otherwise, hard drive
-partitions must be defined.
-
-To create partitions, you must first select a hard 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:
-
- * \"Clear all\": this option deletes all partitions on the selected hard
-drive;
-
- * \"Auto allocate\": this option enables to automatically create \"Ext2\"
-and swap partitions in free space of your hard drive;
-
- * \"More\": gives access to additional features:
-
- * \"Save partition table\": saves the partition table to a floppy.
-Useful for later partition-table recovery if necessary. It is strongly
-recommended to perform this step;
-
- * \"Restore partition table\": allows to restore a previously saved
-partition table from floppy disk;
-
- * \"Rescue partition table\": if your partition table is damaged, you
-can try to recover it using this option. Please be careful and remember
-that it can fail;
-
- * \"Reload partition table\": discards all changes and loads your
-initial partition table;
-
- * \"Removable media automounting\": unchecking this option will force
-users to manually mount and unmount removable medias such as floppies and
-CD-ROMs.
-
- * \"Wizard\": 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 knowledge of
-partitioning;
-
- * \"Undo\": use this option to cancel your changes;
-
- * \"Toggle to normal/expert mode\": allows additional actions on
-partitions (type, options, format) and gives more information;
-
- * \"Done\": when you are finished partitioning your hard drive, this will
-save your changes back to disk.
-
-Note: you can reach any option using the keyboard. Navigate through the
-partitions using [Tab] and [Up/Down] arrows.
-
-When a partition is selected, you can use:
-
- * Ctrl-c to create a new partition (when an empty partition is selected);
-
- * Ctrl-d to delete a partition;
-
- * Ctrl-m to set the mount point.
-
-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."),
-
-resizeFATChoose =>
-__("More than one Microsoft partition has been detected on your hard drive.
-Please choose the one you want to resize in order to install your new
-Mandrake Linux operating system.
-
-Each partition is listed as follows: \"Linux name\", \"Windows name\"
-\"Capacity\".
-
-\"Linux name\" is structured: \"hard drive type\", \"hard 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 drive number\" is always a letter after \"hd\" or \"sd\". With IDE
-hard drives:
-
- * \"a\" means \"master hard drive on the primary IDE controller\";
-
- * \"b\" means \"slave hard drive on the primary IDE controller\";
-
- * \"c\" means \"master hard drive on the secondary IDE controller\";
-
- * \"d\" means \"slave hard drive on the secondary IDE controller\".
-
-With SCSI hard 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
-disk or partition is called \"C:\")."),
-
-resizeFATWait =>
-__("Please be patient. This operation can take several minutes."),
-
-selectInstallClass =>
-__("DrakX now needs to know if you want to perform a default (\"Recommended\")
-installation or if you want to have greater control (\"Expert\"). You can
-also choose to do a new install or an upgrade of an existing Mandrake Linux
-system:
-
- * \"Install\": completely wipes out the old system. In fact, depending on
-what currently holds your machine, you will be able to keep some old (Linux
-or other) partitions unchanged;
-
- * \"Upgrade\": this installation class allows to simply update the
-packages currently installed on your Mandrake Linux system. It keeps the
-current partitions of your hard drives as well as user configurations. All
-other configuration steps remain available with respect to plain
-installation;
-
- * \"Upgrade Packages Only\": this brand new class allows to upgrade an
-existing Mandrake Linux system while keeping all system configurations
-unchanged. Adding new packages to the current installation is also
-possible.
-
-Upgrades should work fine for Mandrake Linux systems starting from \"8.1\"
-release.
-
-Depending on your knowledge of GNU/Linux, select one of the following
-choices:
-
- * Recommended: choose this if you have never installed a GNU/Linux
-operating system. The installation will be very easy and you will only be
-asked a few questions;
-
- * Expert: if you have a good knowledge of GNU/Linux, you can choose this
-installation class. The expert installation will allow you to perform a
-highly-customized installation. Answering some of the questions can be
-difficult if you do not have a good knowledge of GNU/Linux, so do not
-choose this unless you know what you are doing."),
-
-selectKeyboard =>
-__("Normally, DrakX selects the right keyboard for you (depending on the
-language you have chosen) and you won't even see this step. However, you
-might not have a keyboard that corresponds exactly to your language: for
-example, if you are an English speaking Swiss person, you may still want
-your keyboard to be a Swiss keyboard. Or if you speak English but are
-located in Quebec, you may find yourself in the same situation. In both
-cases, you will have to go back to this installation step and select an
-appropriate keyboard from the list.
-
-Click on the \"More\" button to be presented with the complete list of
-supported keyboards."),
-
-selectLanguage =>
-__("Please choose your preferred language for installation and system usage.
-
-Clicking on the \"Advanced\" button will allow you to select other
-languages to be installed on your workstation. Selecting other languages
-will install the language-specific files for system documentation and
-applications. For example, if you will host users from Spain on your
-machine, select English as the main language in the tree view and in the
-Advanced section click on the box corresponding to \"Spanish|Spain\".
-
-Note that multiple languages may be installed. Once you have selected any
-additional locales, click the \"OK\" button to continue."),
-
-selectMouse =>
-__("DrakX generally detects the number of buttons your mouse has. If not, it
-assumes you have a two-button mouse and will set it up for third-button
-emulation. DrakX will automatically know whether it is a PS/2, serial or
-USB mouse.
-
-If you wish to specify a different type of mouse select the appropriate
-type from the provided list.
-
-If you choose a mouse other than the default, a test screen will be
-displayed. Use the buttons and wheel to verify that the settings are
-correct. If the mouse is not working well, press the space bar or [Return]
-to \"Cancel\" and choose again."),
-
-selectSerialPort =>
-__("Please select the correct port. For example, the \"COM1\" port under
-Windows is named \"ttyS0\" under GNU/Linux."),
-
-setRootPassword =>
-__("This is the most crucial decision point for the security of your GNU/Linux
-system: you have to enter the \"root\" password. \"root\" is the system
-administrator and is the only one authorized to make updates, add users,
-change the overall system configuration, and so on. In short, \"root\" can
-do everything! That is why you must choose a password that is difficult to
-guess - DrakX will tell you if it is too easy. As you can see, you can
-choose not to enter a password, but we strongly advise you against this if
-only for one reason: do not think that because you booted GNU/Linux that
-your other operating systems are safe from mistakes. Since \"root\" can
-overcome all limitations and unintentionally erase all data on partitions
-by carelessly accessing the partitions themselves, it is important for it
-to be difficult to become \"root\".
-
-The password should be a mixture of alphanumeric characters and at least 8
-characters long. Never write down the \"root\" password - it makes it too
-easy to compromise a system.
-
-However, please do not make the password too long or complicated because
-you must be able to remember it without too much effort.
-
-The password will not be displayed on screen as you type it in. Hence, you
-will have to type the password twice to reduce the chance of a typing
-error. If you do happen to make the same typing error twice, this
-``incorrect'' password will have to be used the first time you connect.
-
-In Expert mode, you will be asked if you will be connecting to an
-authentication server, like NIS or LDAP.
-
-If your network uses the LDAP (or NIS) protocol for authentication, select
-\"LDAP\" (or \"NIS\") as authentication. If you do not know, ask your
-network administrator.
-
-If your computer is not connected to any administrated network, you will
-want to choose \"Local files\" for authentication."),
-
-setupBootloader =>
-__("LILO and grub are GNU/Linux bootloaders. This stage, normally, is totally
-automated. In fact, DrakX analyzes the disk boot sector and acts
-accordingly, depending on what it finds here:
-
- * if a Windows boot sector is found, it will replace it with a grub/LILO
-boot sector. Hence, you will be able to load either GNU/Linux or another
-OS;
-
- * if a grub or LILO boot sector is found, it will replace it with a new
-one.
-
-If in doubt, DrakX will display a dialog with various options.
-
- * \"Bootloader to use\": you have three choices:
-
- * \"GRUB\": if you prefer grub (text menu).
-
- * \"LILO with graphical menu\": if you prefer LILO with its graphical
-interface.
-
- * \"LILO with text menu\": if you prefer LILO with its text menu
-interface.
-
- * \"Boot device\": in most cases, you will not change the default
-(\"/dev/hda\"), but if you prefer, the bootloader can be installed on the
-second hard drive (\"/dev/hdb\"), or even on a floppy disk (\"/dev/fd0\");
-
- * \"Delay before booting the default image\": when rebooting the computer,
-this is the delay granted to the user to choose - in the bootloader menu,
-another boot entry than the default one.
-
-!! Beware that if you choose not to install a bootloader (by selecting
-\"Cancel\" here), you must ensure that you have a way to boot your Mandrake
-Linux system! Also, be sure you know what you do before changing any of the
-options. !!
-
-Clicking the \"Advanced\" button in this dialog will offer many advanced
-options, which are reserved to the expert user.
-
-After you have configured the general bootloader parameters, the list of
-boot options which will be available at boot time will be displayed.
-
-If there is another operating system installed on your machine, it will
-automatically be added to the boot menu. Here, you can choose to fine-tune
-the existing options. Select an entry and click \"Modify\" to modify or
-remove it; \"Add\" creates a new entry; and \"Done\" goes on to the next
-installation step."),
-
-setupBootloaderAddEntry =>
-__("LILO (the LInux LOader) and grub are bootloaders: they are able to boot
-either GNU/Linux or any other operating system present on your computer.
-Normally, these other operating systems are correctly detected and
-installed. If this is not the case, you can add an entry by hand in this
-screen. Be careful to choose the correct parameters.
-
-You may also not want to give access to these other operating systems to
-anyone. In which case, you can delete the corresponding entries. But then,
-you will need a boot disk in order to boot those other operating systems!"),
-
-setupBootloaderBeginner =>
-__("You must indicate where you wish to place the information required to boot
-to GNU/Linux.
-
-Unless you know exactly what you are doing, choose \"First sector of drive
-(MBR)\"."),
-
-setupDefaultSpooler =>
-__("Here, we select a printing system for your computer. Other OSs may offer
-you one, but Mandrake Linux offers three.
-
- * \"pdq\" - which means ``print, don't queue'', is the choice if you have
-a direct connection to your printer and you want to be able to panic out of
-printer jams, and you do not have networked printers. It will handle only
-very simple network cases and is somewhat slow for networks. Pick \"pdq\"
-if this is your maiden voyage to GNU/Linux. You can change your choices
-after installation by running PrinterDrake from the Mandrake Control Center
-and clicking the expert button.
-
- * \"CUPS\" - ``Common Unix Printing System'', is excellent at printing to
-your local printer and also halfway-around the planet. It is simple and can
-act as a server or a client for the ancient \"lpd\" printing system. Hence,
-it is compatible with the systems that went before. It can do many tricks,
-but the basic setup is almost as easy as \"pdq\". If you need this to
-emulate an \"lpd\" server, you must turn on the \"cups-lpd\" daemon. It has
-graphical front-ends for printing or choosing printer options.
-
- * \"lprNG\" - ``line printer daemon New Generation''. This system can do
-approximately the same things the others can do, but it will print to
-printers mounted on a Novell Network, because it supports the IPX protocol,
-and it can print directly to shell commands. If you have need of Novell or
-printing to commands without using a separate pipe construct, use lprNG.
-Otherwise, CUPS is preferable as it is simpler and better at working over
-networks."),
-
-setupSCSI =>
-__("DrakX now detects any IDE device present in your computer. It will also
-scan for one or more PCI SCSI card(s) on your system. If a SCSI card is
-found, DrakX will automatically install the appropriate driver.
-
-Because hardware detection does not always detect a piece of hardware,
-DrakX will ask you to confirm if a PCI SCSI card is present. Click \"Yes\"
-if you know that there is a SCSI card installed in your machine. You will
-be presented a list of SCSI cards to choose from. Click \"No\" if you have
-no SCSI hardware. If you are unsure, you can check the list of hardware
-detected in your machine by selecting \"See hardware info\" and clicking
-\"OK\". Examine the list of hardware and then click on the \"OK\" button to
-return to the SCSI interface question.
-
-If you have to manually specify your adapter, DrakX will ask if you want to
-specify options for it. You should allow DrakX to probe the hardware for
-the card-specific options which the hardware needs to initialize. This
-usually works well.
-
-If DrakX is not able to probe for the options which need to be passed, you
-will need to provide options to the driver manually. Please review the
-``User Guide'' (chapter 3, in the ``Collecting Information on Your
-Hardware'' section) for hints on retrieving the parameters required from
-hardware documentation, from the manufacturer's web site (if you have
-Internet access) or from Microsoft Windows (if you used this hardware with
-Windows on your system)."),
-
-setupYabootAddEntry =>
-__("You can add additional entries for yaboot, either for other operating
-systems, alternate kernels, or for an emergency boot image.
-
-For other OSs, the entry consists only of a label and the \"root\"
-partition.
-
-For Linux, there are a few possible options:
-
- * Label: this is simply the name you will have to type at the yaboot
-prompt to select this boot option;
-
- * Image: this would be the name of the kernel to boot. Typically, vmlinux
-or a variation of vmlinux with an extension;
-
- * Root: the \"root\" device or ``/'' for your Linux installation;
-
- * Append: on Apple hardware, the kernel append option is used quite often
-to assist in initializing video hardware, or to enable keyboard mouse
-button emulation for the often lacking 2nd and 3rd mouse buttons on a stock
-Apple mouse. The following are some examples:
-
- video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111
-hda=autotune
-
- video=atyfb:vmode:12,cmode:24 adb_buttons=103,111
-
- * Initrd: this option can be used either to load initial modules, before
-the boot device is available, or to load a ramdisk image for an emergency
-boot situation;
-
- * Initrd-size: the default ramdisk size is generally 4,096 bytes. If you
-need to allocate a large ramdisk, this option can be used;
-
- * Read-write: normally the \"root\" partition is initially brought up in
-read-only, to allow a file system check before the system becomes ``live''.
-Here, you can override this option;
-
- * NoVideo: should the Apple video hardware prove to be exceptionally
-problematic, you can select this option to boot in ``novideo'' mode, with
-native frame buffer support;
-
- * Default: selects this entry as being the default Linux selection,
-selectable by just pressing ENTER at the yaboot prompt. This entry will
-also be highlighted with a ``*'', if you press [Tab] to see the boot
-selections."),
-
-setupYabootGeneral =>
-__("Yaboot is a bootloader for NewWorld MacIntosh hardware. It is able to boot
-either GNU/Linux, MacOS or MacOSX if present on your computer. Normally,
-these other operating systems are correctly detected and installed. If this
-is not the case, you can add an entry by hand in this screen. Be careful to
-choose the correct parameters.
-
-Yaboot's main options are:
-
- * Init Message: a simple text message displayed before the boot prompt;
-
- * Boot Device: indicates where you want to place the information required
-to boot to GNU/Linux. Generally, you set up a bootstrap partition earlier
-to hold this information;
-
- * Open Firmware Delay: unlike LILO, there are two delays available with
-yaboot. The first delay is measured in seconds and at this point, you can
-choose between CD, OF boot, MacOS or Linux;
-
- * Kernel Boot Timeout: this timeout is similar to the LILO boot delay.
-After selecting Linux, you will have this delay in 0.1 second before your
-default kernel description is selected;
-
- * Enable CD Boot?: checking this option allows you to choose ``C'' for CD
-at the first boot prompt;
-
- * Enable OF Boot?: checking this option allows you to choose ``N'' for
-Open Firmware at the first boot prompt;
-
- * Default OS: you can select which OS will boot by default when the Open
-Firmware Delay expires."),
-
-summary =>
-__("Here are presented various parameters concerning your machine. Depending on
-your installed hardware, you may - or not, see the following entries:
-
- * \"Mouse\": check the current mouse configuration and click on the button
-to change it if necessary;
-
- * \"Keyboard\": check the current keyboard map configuration and click on
-the button to change that if necessary;
-
- * \"Timezone\": DrakX, by default, guesses your time zone from the
-language you have chosen. But here again, as for the choice of a keyboard,
-you may not be in the country for which the chosen language should
-correspond. Hence, you may need to click on the \"Timezone\" button in
-order to configure the clock according to the time zone you are in;
-
- * \"Printer\": clicking on the \"No Printer\" button will open the printer
-configuration wizard;
-
- * \"Sound card\": if a sound card is detected on your system, it is
-displayed here. No modification possible at installation time;
-
- * \"TV card\": if a TV card is detected on your system, it is displayed
-here. No modification possible at installation time;
-
- * \"ISDN card\": if an ISDN card is detected on your system, it is
-displayed here. You can click on the button to change the parameters
-associated with it."),
-
-takeOverHdChoose =>
-__("Choose the hard drive you want to erase in order to install your new
-Mandrake Linux partition. Be careful, all data present on it will be lost
-and will not be recoverable!"),
-
-takeOverHdConfirm =>
-__("Click on \"OK\" if you want to delete all data and partitions present on
-this hard drive. Be careful, after clicking on \"OK\", you will not be able
-to recover any data and partitions present on this hard drive, including
-any Windows data.
-
-Click on \"Cancel\" to cancel this operation without losing any data and
-partitions present on this hard drive."),
-);
diff --git a/perl-install/http.pm b/perl-install/http.pm
deleted file mode 100644
index 8d1e8d5de..000000000
--- a/perl-install/http.pm
+++ /dev/null
@@ -1,42 +0,0 @@
-package http; # $Id$
-
-use IO::Socket;
-use network;
-
-
-my $sock;
-
-sub getFile {
- local($^W) = 0;
-
- my ($url) = @_;
- $sock->close if $sock;
- $url =~ m|/XXX$| and return; #- force closing connection.
-
- my ($host, $port, $path) = $url =~ m,^http://([^/:]+)(?::(\d+))?(/\S*)?$,;
- $host = network::resolv($host);
-
- $sock = IO::Socket::INET->new(PeerAddr => $host,
- PeerPort => $port || 80,
- Proto => 'tcp',
- Timeout => 60) or die "can't connect $@";
- $sock->autoflush;
- print $sock join("\015\012" =>
- "GET $path HTTP/1.0",
- "Host: $host" . ($port && ":$port"),
- "User-Agent: DrakX/vivelinuxabaszindozs",
- "", "");
-
- #- skip until empty line
- my ($now, $last, $buf, $tmp) = 0;
- my $read = sub { sysread($sock, $buf, 1) || die; $tmp .= $buf };
- do {
- $last = $now;
- &$read; &$read if $buf =~ /\015/;
- $now = $buf =~ /\012/;
- } until ($now && $last);
-
- $tmp =~ /^.*\b200\b/ ? $sock : undef;
-}
-
-1;
diff --git a/perl-install/install2 b/perl-install/install2
deleted file mode 100755
index b26684f9f..000000000
--- a/perl-install/install2
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/perl
-#- PERL_INSTALL_DEBUG is used to launch stage2 in debug mode
-
-#- Mandrake Graphic Install $Id$
-#- Copyright (C) 1999/2000 MandrakeSoft (pixel@mandrakesoft.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.
-#-
-#- 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;
-
-BEGIN {
- #- for testing purpose
- (my $f = __FILE__) =~ s|install2$|list_modules.pm|;
- -e $f or symlink '../kernel/list_modules.pm', $f;
-}
-
-use lib qw(/usr/bin/perl-install .);
-use install2;
-
-$::testing = $ENV{PERL_INSTALL_TEST};
-$::isStandalone = 0;
-
-install2::main(@ARGV);
-
-c::_exit(0);
diff --git a/perl-install/install2.pm b/perl-install/install2.pm
deleted file mode 100644
index 8d159f9ec..000000000
--- a/perl-install/install2.pm
+++ /dev/null
@@ -1,637 +0,0 @@
-
-package install2; # $Id$
-
-use diagnostics;
-use strict;
-use vars qw($o $version);
-
-#-######################################################################################
-#- misc imports
-#-######################################################################################
-use steps;
-use common;
-use install_any qw(:all);
-use install_steps;
-use lang;
-use keyboard;
-use mouse;
-use fsedit;
-use devices;
-use partition_table qw(:types);
-use modules;
-use detect_devices;
-use run_program;
-use any;
-use log;
-use fs;
-#-$::corporate=1;
-
-
-#-#######################################################################################
-#-$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)
-#-#######################################################################################
-$o = $::o = {
-# bootloader => { linear => 0, lba32 => 1, message => 1, timeout => 5, restricted => 0 },
- mkbootdisk => 0, #- no mkbootdisk if 0 or undef, find a floppy with 1, or fd1
-#- packages => [ qw() ],
- partitioning => { clearall => 0, eraseBadPartitions => 0, auto_allocate => 0 }, #-, readonly => 0 },
- authentication => { md5 => 1, shadow => 1 },
- lang => 'en_US',
- isUpgrade => 0,
- toRemove => [],
- toSave => [],
-#- simple_themes => 1,
-
- timezone => {
-#- timezone => "Europe/Paris",
-#- UTC => 1,
- },
-#- superuser => { password => 'a', shell => '/bin/bash', realname => 'God' },
-#- user => { name => 'foo', password => 'bar', home => '/home/foo', shell => '/bin/bash', realname => 'really, it is foo' },
-
-#- keyboard => 'de',
-#- display => "192.168.1.19:1",
- steps => \%steps::installSteps,
- orderedSteps => \@steps::orderedInstallSteps,
-
-#- for the list of fields available for user and superuser, see @etc_pass_fields in install_steps.pm
-#- intf => { eth0 => { DEVICE => "eth0", IPADDR => '1.2.3.4', NETMASK => '255.255.255.128' } },
-
-#-step : the current one
-#-prefix
-#-mouse
-#-keyboard
-#-netc
-#-methods
-#-packages compss
-#-printer haveone entry(cf printer.pm)
-
-};
-
-
-sub installStepsCall {
- my ($o, $auto, $fun, @args) = @_;
- $fun = "install_steps::$fun" if $auto;
- $o->$fun(@args);
-}
-
-#-######################################################################################
-#- 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
-#-######################################################################################
-
-#------------------------------------------------------------------------------
-sub selectLanguage {
- my ($clicked, $ent_number, $auto) = @_;
-
- installStepsCall($o, $auto, 'selectLanguage', $ent_number == 1);
-
- $o->acceptLicence;
-}
-
-#------------------------------------------------------------------------------
-sub selectMouse {
- my ($clicked, $ent_number, $auto) = @_;
-
- require pkgs;
- my ($first_time) = $ent_number == 1;
-
- add2hash($o->{mouse} ||= {}, mouse::read($o->{prefix})) if $o->{isUpgrade} && $first_time;
-
- installStepsCall($o, $auto, 'selectMouse', !$first_time || $clicked);
-
- addToBeDone { mouse::write($o->{prefix}, $o->{mouse}) } 'installPackages';
-}
-
-#------------------------------------------------------------------------------
-sub setupSCSI {
- my ($clicked, $ent_number, $auto) = @_;
-
- if (!$::live && !$::g_auto_install && !$o->{blank} && !$::testing) {
- -s modules::cz_file() or die _("Can't 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)", modules::cz_file());
- }
-
- installStepsCall($o, $auto, 'setupSCSI', $clicked);
-}
-
-#------------------------------------------------------------------------------
-sub selectKeyboard {
- my ($clicked, $first_time, $auto) = ($_[0], $_[1] == 1, $_[2]);
-
- if ($o->{isUpgrade} && $first_time && $o->{keyboard_unsafe}) {
- my $keyboard = keyboard::read($o->{prefix});
- $keyboard and $o->{keyboard} = $keyboard;
- }
- installStepsCall($o, $auto, 'selectKeyboard', $clicked);
-}
-
-#------------------------------------------------------------------------------
-sub selectInstallClass {
- my ($clicked, $ent_number, $auto) = @_;
-
- installStepsCall($o, $auto, 'selectInstallClass', $clicked);
-
- if ($o->{steps}{choosePackages}{entered} >= 1 && !$o->{steps}{installPackages}{done}) {
- installStepsCall($o, $auto, 'setPackages', $o->{isUpgrade} && $ent_number == 1);
- }
- if ($o->{isUpgrade}) {
- @{$o->{orderedSteps}} = map { /setupSCSI/ ? ($_, "doPartitionDisks") : $_ }
- grep { !/doPartitionDisks/ } @{$o->{orderedSteps}};
- $o->{keepConfiguration} and @{$o->{orderedSteps}} = grep { !/selectMouse|selectKeyboard|miscellaneous|setRootPassword|addUser|configureNetwork|installUpdates|summary|configureServices|configureX/ } @{$o->{orderedSteps}};
- my $s; foreach (@{$o->{orderedSteps}}) {
- $s->{next} = $_ if $s;
- $s = $o->{steps}{$_};
- }
- }
-}
-
-#------------------------------------------------------------------------------
-sub doPartitionDisks {
- my ($clicked, $ent_number, $auto) = @_;
- $o->{steps}{formatPartitions}{done} = 0;
- installStepsCall($o, $auto, 'doPartitionDisksBefore');
- installStepsCall($o, $auto, 'doPartitionDisks');
- installStepsCall($o, $auto, 'doPartitionDisksAfter');
-}
-
-sub formatPartitions {
- my ($clicked, $ent_number, $auto) = @_;
-
- $o->{steps}{choosePackages}{done} = 0;
- installStepsCall($o, $auto, 'choosePartitionsToFormat', $o->{fstab}) if !$o->{isUpgrade};
- my $want_root_formated = fsedit::get_root($o->{fstab})->{toFormat};
- if ($want_root_formated) {
- foreach ('/usr') {
- my $part = fsedit::mntpoint2part($_, $o->{fstab}) or next;
- $part->{toFormat} or die _("You must also format %s", $_);
- }
- }
- installStepsCall($o, $auto, 'formatMountPartitions', $o->{fstab}) if !$::testing;
-
- 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("$o->{prefix}/var/lib/rpm") };
- }
-
- mkdir "$o->{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 "$o->{prefix}/$_", 0700 foreach qw(root root/tmp root/drakx);
-
- common::screenshot_dir__and_move();
-
- any::rotate_logs($o->{prefix});
-
- require raid;
- raid::prepare_prefixed($o->{all_hds}{raids}, $o->{prefix});
-}
-
-#------------------------------------------------------------------------------
-sub choosePackages {
- my ($clicked, $ent_number, $auto) = @_;
- require pkgs;
-
- #- always setPackages as it may have to copy hdlist files and synthesis files.
- installStepsCall($o, $auto, 'setPackages', $o->{isUpgrade} && $ent_number == 1);
- installStepsCall($o, $auto, 'choosePackages', $o->{packages}, $o->{compssUsers}, $ent_number == 1);
- log::l("compssUsersChoice's: ", join(" ", grep { $o->{compssUsersChoice}{$_} } keys %{$o->{compssUsersChoice}}));
-
- #- check pre-condition where base backage has to be selected.
- pkgs::packageByName($o->{packages}, 'basesystem')->flag_available or die "basesystem package not selected";
-
- #- check if there are package that need installation.
- $o->{steps}{installPackages}{done} = 0 if $o->{steps}{installPackages}{done} && pkgs::packagesToInstall($o->{packages}) > 0;
-}
-
-#------------------------------------------------------------------------------
-sub installPackages {
- my ($clicked, $ent_number, $auto) = @_;
-
- installStepsCall($o, $auto, 'readBootloaderConfigBeforeInstall') if $ent_number == 1;
-
- installStepsCall($o, $auto, 'beforeInstallPackages');
- installStepsCall($o, $auto, 'installPackages');
- installStepsCall($o, $auto, 'afterInstallPackages');
-}
-#------------------------------------------------------------------------------
-sub miscellaneous {
- my ($clicked, $ent_number, $auto) = @_;
-
- installStepsCall($o, $auto, 'miscellaneousBefore', $clicked);
- installStepsCall($o, $auto, 'miscellaneous', $clicked);
- installStepsCall($o, $auto, 'miscellaneousAfter', $clicked);
-}
-
-#------------------------------------------------------------------------------
-sub summary {
- my ($clicked, $ent_number, $auto) = @_;
- installStepsCall($o, $auto, 'summary', $ent_number == 1);
-}
-#------------------------------------------------------------------------------
-sub configureNetwork {
- my ($clicked, $ent_number, $auto) = @_;
- #- get current configuration of network device.
- require network;
- eval { network::read_all_conf($o->{prefix}, $o->{netc} ||= {}, $o->{intf} ||= {}) };
- installStepsCall($o, $auto, 'configureNetwork', $ent_number == 1, $clicked);
-}
-#------------------------------------------------------------------------------
-sub installCrypto {
- my ($clicked, $ent_number, $auto) = @_;
- installStepsCall($o, $auto, 'installCrypto');
-}
-#------------------------------------------------------------------------------
-sub installUpdates {
- my ($clicked, $ent_number, $auto) = @_;
- installStepsCall($o, $auto, 'installUpdates');
-}
-#------------------------------------------------------------------------------
-sub configureServices {
- my ($clicked, $ent_number, $auto) = @_;
- installStepsCall($o, $auto, 'configureServices', $clicked);
-}
-#------------------------------------------------------------------------------
-sub setRootPassword {
- my ($clicked, $ent_number, $auto) = @_;
- return if $o->{isUpgrade};
-
- installStepsCall($o, $auto, 'setRootPassword', $clicked);
- addToBeDone { install_any::setAuthentication($o) } 'installPackages';
-}
-#------------------------------------------------------------------------------
-sub addUser {
- my ($clicked, $ent_number, $auto) = @_;
- return if $o->{isUpgrade} && !$clicked;
-
- installStepsCall($o, $auto, 'addUser', $clicked);
-}
-
-#------------------------------------------------------------------------------
-sub createBootdisk {
- my ($clicked, $ent_number, $auto) = @_;
- modules::write_conf($o->{prefix});
- installStepsCall($o, $auto, 'createBootdisk', $ent_number == 1, $clicked);
-}
-
-#------------------------------------------------------------------------------
-sub setupBootloader {
- my ($clicked, $ent_number, $auto) = @_;
- return if $::g_auto_install;
-
- modules::write_conf($o->{prefix});
-
- installStepsCall($o, $auto, 'setupBootloaderBefore') if $ent_number == 1;
- installStepsCall($o, $auto, 'setupBootloader', $ent_number-1 + $clicked*2); #- gore :-(
-
- local $ENV{DRAKX_PASSWORD} = $o->{bootloader}{password};
- local $ENV{DURING_INSTALL} = 1;
- run_program::rooted($o->{prefix}, "/usr/sbin/msec", "-o", "run_commands=0", "-o", "log=stderr", $o->{security});
- any::config_libsafe($o->{prefix}, $o->{libsafe});
-}
-#------------------------------------------------------------------------------
-sub configureX {
- my ($clicked, $ent_number, $auto) = @_;
-
- #- done here and also at the end of install2.pm, just in case...
- install_any::write_fstab($o);
- modules::write_conf($o->{prefix});
-
- require pkgs;
- installStepsCall($o, $auto, 'configureX', $clicked) if pkgs::packageByName($o->{packages}, 'XFree86')->flag_installed && !$o->{X}{disabled} || $clicked || $::testing;
-}
-#------------------------------------------------------------------------------
-sub exitInstall {
- my ($clicked, $ent_number, $auto) = @_;
- installStepsCall($o, $auto, 'exitInstall', getNextStep() eq 'exitInstall');
-}
-
-
-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';
-
- log::l("trying to load i810fb module with xres <$xres> (vga was <$vga>)");
- eval {
- any::ddcxinfos(); # keep the result otherwise ddcxinfos doesn't return good results afterwards
- modules::load([ 'i810fb',
- "xres=$xres", 'hsync1=32', 'hsync2=48', 'vsync1=50', 'vsync2=70', #- this sucking i810fb does not accept floating point numbers in hsync!
- 'vram=2', 'bpp=16', 'accel=1', 'mtrr=1', 'hwcur=1', 'xcon=4' ]);
- };
-}
-
-
-#-######################################################################################
-#- MAIN
-#-######################################################################################
-sub main {
- $SIG{__DIE__} = sub { chomp(my $err = $_[0]); log::l("warning: $err") };
- $SIG{SEGV} = sub {
- my $msg = "segmentation fault: seems like memory is missing as the install crashes"; print "$msg\n"; log::l($msg);
- $o->ask_warn('', $msg);
- setVirtual(1);
- require install_steps_auto_install;
- install_steps_auto_install_non_interactive::errorInStep ();
- };
- $ENV{PERL_BADLANG} = 1;
- umask 022;
-
- $::isInstall = 1;
- $::expert = $::g_auto_install = 0;
-
-#- c::unlimit_core() unless $::testing;
-
- my ($cfg, $patch, @auto);
- my %cmdline; map {
- my ($n, $v) = split '=';
- $cmdline{$n} = $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;
-
- map_each {
- my ($n, $v) = @_;
- my $f = ${{
- oem => sub { $::oem = $v },
- lang => sub { $o->{lang} = $v },
- flang => sub { $o->{lang} = $v ; push @auto, 'selectLanguage' },
- method => sub { $o->{method} = $v },
- pcmcia => sub { $o->{pcmcia} = $v },
- vga16 => sub { $o->{vga16} = $v },
- vga => sub { $o->{vga} = $v },
- step => sub { $o->{steps}{first} = $v },
- expert => sub { $::expert = $v },
- fbeginner => sub { $::expert = 0; push @auto, 'selectInstallClass' },
- fexpert => sub { $::expert = 1; push @auto, 'selectInstallClass' },
- desktop => sub { $o->{meta_class} = 'desktop' },
- firewall => sub { $o->{meta_class} = 'firewall'; push @auto, 'selectInstallClass'},
- lnx4win => sub { $o->{lnx4win} = 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 },
- live => sub { $::live = 1 },
- noauto => sub { $::noauto = 1 },
- test => sub { $::testing = 1 },
- patch => sub { $patch = 1 },
- defcfg => sub { $cfg = $v },
- newt => sub { $o->{interactive} = "newt" },
- text => sub { $o->{interactive} = "newt" },
- stdio => sub { $o->{interactive} = "stdio"},
- corporate => sub { $::corporate = 1 },
- kickstart => sub { $::auto_install = $v },
- auto_install => sub { $::auto_install = $v },
- simple_themes => sub { $o->{simple_themes} = 1 },
- useless_thing_accepted => sub { $o->{useless_thing_accepted} = 1 },
- alawindows => sub { $o->{security} = 0; $o->{partitioning}{clearall} = 1; $o->{bootloader}{crushMbr} = 1 },
- fdisk => sub { $o->{partitioning}{fdisk} = 1 },
- g_auto_install => sub { $::testing = $::g_auto_install = 1; $o->{partitioning}{auto_allocate} = 1 },
- nomouseprobe => sub { $o->{nomouseprobe} = $v },
- blank => sub { $o->{blank} = 1},
- updatemodules => sub { $o->{updatemodules} = 1},
- }}{lc $n}; &$f if $f;
- } %cmdline;
-
- if ($::testing) {
- $ENV{SHARE_PATH} ||= "/export/Mandrake/mdkinst/usr/share";
- $ENV{SHARE_PATH} = "/usr/share" if !-e $ENV{SHARE_PATH};
- } else {
- $ENV{SHARE_PATH} ||= "/usr/share";
- }
-
- undef $::auto_install if $cfg;
- if ($::g_auto_install) {
- (my $root = `/bin/pwd`) =~ s|(/[^/]*){5}$||;
- symlinkf $root, "/tmp/image" or die "unable to create link /tmp/image";
- $o->{method} ||= "cdrom";
- $o->{mkbootdisk} = 0;
- }
- unless ($::testing || $::live) {
- symlink "rhimage", "/tmp/image"; #- for compatibility with old stage1
- unlink $_ foreach "/modules/modules.mar", "/sbin/stage1";
- }
-
- print STDERR "in second stage install\n";
- log::openLog(($::testing || $o->{localInstall}) && 'debug.log');
- log::l("second stage install running (", any::drakx_version(), ")");
-
- $o->{prefix} = $::prefix = $::testing ? "/tmp/test-perl-install" : $::live ? "" : "/mnt";
- $o->{isUpgrade} = 1 if $::live;
- mkdir $o->{prefix}, 0755;
- devices::make("/dev/zero"); #- needed by ddcxinfos
-
- #- make sure we don't pick up any gunk from the outside world
- my $remote_path = "$o->{prefix}/sbin:$o->{prefix}/bin:$o->{prefix}/usr/sbin:$o->{prefix}/usr/bin:$o->{prefix}/usr/X11R6/bin";
- $ENV{PATH} = "/usr/bin:/bin:/sbin:/usr/sbin:/usr/X11R6/bin:$remote_path" unless $::g_auto_install;
-
- eval { spawnShell() };
-
- $o->{prefix} = $::testing ? "/tmp/test-perl-install" : $::live ? "" : "/mnt";
- mkdir $o->{prefix}, 0755;
-
- modules::load_dependencies(($::testing ? ".." : "") . "/modules/modules.dep");
- modules::read_stage1_conf($_) foreach "/tmp/conf.modules", "/etc/modules.conf";
- modules::read_already_loaded();
-
- #- done before auto_install is called to allow the -IP feature on auto_install file name
- if (-e '/tmp/network') {
- require network;
- #- get stage1 network configuration if any.
- log::l('found /tmp/network');
- $o->{netc} ||= {};
- add2hash($o->{netc}, network::read_conf('/tmp/network'));
- if (my ($file) = glob_('/tmp/ifcfg-*')) {
- log::l("found network config file $file");
- my $l = network::read_interface_conf($file);
- $o->{intf} ||= { $l->{DEVICE} => $l };
- }
- if (-e '/etc/resolv.conf') {
- my $file ='/etc/resolv.conf';
- log::l("found network config file $file");
- add2hash($o->{netc}, network::read_resolv_conf($file));
- }
- }
-
- #- done after module dependencies are loaded for "vfat depends on fat"
- if ($::auto_install) {
- if ($::auto_install =~ /-IP(\.pl)?$/) {
- my $ip = join('', map { sprintf "%02X", $_ } split '\.', $o->{intf}{IPADDR});
- $::auto_install =~ s/-IP(\.pl)?$/-$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 {
- print "Error using auto_install\n$@\n";
- install_steps_auto_install_non_interactive::errorInStep ();
- }
- } else {
- log::l("auto install config file loaded successfully");
- }
- }
- $o->{interactive} ||= 'gtk' if !$::auto_install;
-
- if ($o->{interactive} eq "gtk" && availableMemory < 22 * 1024) {
- log::l("switching to newt install cuz not enough memory");
- $o->{interactive} = "newt";
- }
- require"install_steps_$o->{interactive}.pm" if $o->{interactive}; #- no space to skip perl2fcalls
-
- #- needed before accessing floppy (in case of usb floppy)
- modules::load_category('bus/usb');
-
- #- patch should be read after defcfg in order to take precedance.
- eval { $o = $::o = install_any::loadO($o, $cfg) } if $cfg;
- eval { $o = $::o = install_any::loadO($o, "patch") } if $patch;
-
- eval { modules::load("af_packet") };
-
- map_index {
- modules::add_alias("sound-slot-$::i", $_->{driver});
- } modules::probe_category('multimedia/sound');
-
- #- needed very early for install_steps_gtk
- eval { ($o->{mouse}, @{$o->{wacom} = []}) = mouse::detect() } unless $o->{nomouseprobe} || $o->{mouse};
-
- $o->{lang} = lang::set($o->{lang}) if $o->{lang} ne 'en_US'; #- mainly for defcfg
-
- start_i810fb();
-
- $o->{allowFB} = listlength(cat_("/proc/fb"));
-
- my $VERSION = cat__(install_any::getFile("VERSION")) or do { print "VERSION file missing\n"; sleep 5 };
- $o->{lnx4win} = 1 if $VERSION =~ /lnx4win/i;
- $o->{meta_class} = 'desktop' if $VERSION =~ /desktop/i;
- $o->{meta_class} = 'firewall' if $VERSION =~ /firewall/i;
- $o->{meta_class} = 'server' if $VERSION =~ /server/i;
- if ($::oem) {
- $o->{partitioning}{use_existing_root} = 1;
- $o->{compssListLevel} = 4;
- push @auto, 'selectInstallClass', 'doPartitionDisks', 'choosePackages', 'configureTimezone', 'exitInstall';
- }
-
- foreach (@auto) {
- 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 "newt" ?
- install_steps_newt->new($o) :
- $o->{interactive} eq "gtk" ?
- install_steps_gtk->new($o) :
- die "unknown install type";
- $o_ and last;
-
- $o->{interactive} = "newt";
- require install_steps_newt;
- }
- $::o = $o = $o_;
-
- install_any::remove_unused() if common::usingRamdisk();
-
- #-the main cycle
- my $clicked = 0;
- MAIN: for ($o->{step} = $o->{steps}{first};; $o->{step} = getNextStep()) {
- $o->{steps}{$o->{step}}{entered}++;
- $o->enteringStep($o->{step});
- if ($o->{steps}{$o->{step}}{icon}) { $o->{icon} = $o->{steps}{$o->{step}}{icon} } else { undef $o->{icon} }
- eval {
- &{$install2::{$o->{step}}}($clicked || $o->{steps}{$o->{step}}{noauto},
- $o->{steps}{$o->{step}}{entered},
- $clicked ? 0 : $o->{steps}{$o->{step}}{auto});
- };
- my $err = $@;
- $o->kill_action;
- $clicked = 0;
- if ($err) {
- local $_ = $err;
- $o->kill_action;
- if (/^setstep (.*)/) {
- $o->{step} = $1;
- $o->{steps}{$1}{done} = 0;
- $clicked = 1;
- redo MAIN;
- }
- /^theme_changed$/ and redo MAIN;
- unless (/^already displayed/) {
- eval { $o->errorInStep($_) };
- $o->{steps}{$o->{step}}{auto} = 0;
- $err = $@;
- $err and next;
- }
- $o->{step} = $o->{steps}{$o->{step}}{onError};
- next MAIN unless $o->{steps}{$o->{step}}{reachable}; #- sanity check: avoid a step not reachable on error.
- redo MAIN;
- }
- $o->{steps}{$o->{step}}{done} = 1;
- $o->leavingStep($o->{step});
-
- last if $o->{step} eq 'exitInstall';
- }
- install_any::clean_postinstall_rpms();
- install_any::log_sizes($o);
- install_any::remove_advertising($o);
- install_any::write_fstab($o);
- modules::write_conf($o->{prefix});
-
- #- mainly for auto_install's
- #- do not use run_program::xxx because it doesn't leave stdin/stdout unchanged
- system("bash", "-c", $o->{postInstallNonRooted}) if $o->{postInstallNonRooted};
- system("chroot", $o->{prefix}, "bash", "-c", $o->{postInstall}) if $o->{postInstall};
-
- install_any::ejectCdrom();
-
- #- to ensure linuxconf doesn't cry against those files being in the future
- foreach ('/etc/modules.conf', '/etc/crontab', '/etc/sysconfig/mouse', '/etc/sysconfig/network', '/etc/X11/fs/config') {
- my $now = time - 24 * 60 * 60;
- utime $now, $now, "$o->{prefix}/$_";
- }
- $::live or install_any::killCardServices();
-
- #- make sure failed upgrade will not hurt too much.
- install_steps::cleanIfFailedUpgrade($o);
-
- -e "$o->{prefix}/usr/sbin/urpmi.update" or eval { rm_rf("$o->{prefix}/var/lib/urpmi") };
-
- #- copy latest log files
- eval { cp_af("/tmp/$_", "$o->{prefix}/root/drakx") foreach qw(ddebug.log stage1.log) };
-
- #- ala pixel? :-) [fpons]
- common::sync(); common::sync();
-
- log::l("installation complete, leaving");
- log::l("files still open by install2: ", readlink($_)) foreach glob_("/proc/self/fd/*");
- print "\n" x 80;
-}
-
-#-######################################################################################
-#- Wonderful perl :(
-#-######################################################################################
-1;
diff --git a/perl-install/install_any.pm b/perl-install/install_any.pm
deleted file mode 100644
index ea78b14aa..000000000
--- a/perl-install/install_any.pm
+++ /dev/null
@@ -1,1211 +0,0 @@
-package install_any; # $Id$
-
-use diagnostics;
-use strict;
-
-use vars qw(@ISA %EXPORT_TAGS @EXPORT_OK $boot_medium @advertising_images);
-
-@ISA = qw(Exporter);
-%EXPORT_TAGS = (
- all => [ qw(getNextStep spawnShell addToBeDone) ],
-);
-@EXPORT_OK = map { @$_ } values %EXPORT_TAGS;
-
-#-######################################################################################
-#- misc imports
-#-######################################################################################
-use MDK::Common::System;
-use common;
-use run_program;
-use partition_table qw(:types);
-use partition_table::raw;
-use devices;
-use fsedit;
-use modules;
-use detect_devices;
-use lang;
-use any;
-use log;
-use fs;
-
-#- boot medium (the first medium to take into account).
-$boot_medium = 1;
-
-#-######################################################################################
-#- Media change variables&functions
-#-######################################################################################
-my $postinstall_rpms = '';
-my $current_medium = $boot_medium;
-my $asked_medium = $boot_medium;
-my $cdrom = undef;
-sub useMedium($) {
- #- before ejecting the first CD, there are some files to copy!
- #- does nothing if the function has already been called.
- $_[0] > 1 and $::o->{method} eq 'cdrom' and setup_postinstall_rpms($::prefix, $::o->{packages});
-
- $asked_medium eq $_[0] or log::l("selecting new medium '$_[0]'");
- $asked_medium = $_[0];
-}
-sub changeMedium($$) {
- my ($method, $medium) = @_;
- log::l("change to medium $medium for method $method (refused by default)");
- 0;
-}
-sub relGetFile($) {
- local $_ = $_[0];
- m|\.rpm$| ? "$::o->{packages}{mediums}{$asked_medium}{rpmsdir}/$_" : $_;
-}
-sub askChangeMedium($$) {
- my ($method, $medium) = @_;
- my $allow;
- do {
- eval { $allow = changeMedium($method, $medium) };
- } while ($@); #- really it is not allowed to die in changeMedium!!! or install will cores with rpmlib!!!
- log::l($allow ? "accepting medium $medium" : "refusing medium $medium");
- $allow;
-}
-sub errorOpeningFile($) {
- my ($file) = @_;
- $file eq 'XXX' and return; #- special case to force closing file after rpmlib transaction.
- $current_medium eq $asked_medium and log::l("errorOpeningFile $file"), return; #- nothing to do in such case.
- $::o->{packages}{mediums}{$asked_medium}{selected} or return; #- not selected means no need for worying about.
-
- my $max = 32; #- always refuse after $max tries.
- if ($::o->{method} eq "cdrom") {
- cat_("/proc/mounts") =~ m,(/(?:dev|tmp)/\S+)\s+(?:/mnt/cdrom|/tmp/image), and $cdrom = $1;
- return unless $cdrom;
- ejectCdrom($cdrom);
- while ($max > 0 && askChangeMedium($::o->{method}, $asked_medium)) {
- $current_medium = $asked_medium;
- eval { fs::mount($cdrom, "/tmp/image", "iso9660", 'readonly') };
- my $getFile = getFile($file);
- $getFile && @advertising_images and copy_advertising($::o);
- $getFile and return $getFile;
- $current_medium = 'unknown'; #- don't know what CD is inserted now.
- ejectCdrom($cdrom);
- --$max;
- }
- } else {
- while ($max > 0 && askChangeMedium($::o->{method}, $asked_medium)) {
- $current_medium = $asked_medium;
- my $getFile = getFile($file); $getFile and return $getFile;
- $current_medium = 'unknown'; #- don't know what CD image has been copied.
- --$max;
- }
- }
-
- #- keep in mind the asked medium has been refused on this way.
- #- this means it is no more selected.
- $::o->{packages}{mediums}{$asked_medium}{selected} = undef;
-
- #- on cancel, we can expect the current medium to be undefined too,
- #- this enable remounting if selecting a package back.
- $current_medium = 'unknown';
-
- return;
-}
-sub getFile {
- my ($f, $method) = @_;
- log::l("getFile $f:$method");
- my $rel = relGetFile($f);
- do {
- if ($f =~ m|^http://|) {
- require http;
- http::getFile($f);
- } elsif ($method =~ /crypto|update/i) {
- require crypto;
- crypto::getFile($f);
- } elsif ($::o->{method} eq "ftp") {
- require ftp;
- ftp::getFile($rel);
- } elsif ($::o->{method} eq "http") {
- require http;
- http::getFile("$ENV{URLPREFIX}/$rel");
- } else {
- #- try to open the file, but examine if it is present in the repository, this allow
- #- handling changing a media when some of the file on the first CD has been copied
- #- to other to avoid media change...
- my $f2 = "$postinstall_rpms/$f";
- $f2 = "/tmp/image/$rel" unless $postinstall_rpms && -e $f2;
- open GETFILE, $f2 and *GETFILE;
- }
- } || errorOpeningFile($f);
-}
-sub getAndSaveFile {
- my ($file, $local) = @_ == 1 ? ("Mandrake/mdkinst$_[0]", $_[0]) : @_;
- local *F; open F, ">$local" or return;
- local $/ = \ (16 * 1024);
- my $f = ref($file) ? $file : getFile($file) or return;
- local $_;
- while (<$f>) { syswrite F, $_ }
- 1;
-}
-
-
-#-######################################################################################
-#- Post installation RPMS from cdrom only, functions
-#-######################################################################################
-sub setup_postinstall_rpms($$) {
- my ($prefix, $packages) = @_;
-
- $postinstall_rpms and return;
- $postinstall_rpms = "$prefix/usr/postinstall-rpm";
-
- require pkgs;
-
- log::l("postinstall rpms directory set to $postinstall_rpms");
- clean_postinstall_rpms(); #- make sure in case of previous upgrade problem.
- mkdir_p($postinstall_rpms);
-
- my %toCopy;
- #- compute closure of package that may be copied, use INSTALL category
- #- in rpmsrate.
- $packages->{rpmdb} ||= pkgs::rpmDbOpen($prefix);
- foreach (@{$packages->{needToCopy} || []}) {
- my $p = pkgs::packageByName($packages, $_) or next;
- pkgs::selectPackage($packages, $p, 0, \%toCopy);
- }
- delete $packages->{rpmdb};
-
- my @toCopy = grep { $_ && !$_->flag_selected } map { $packages->{depslist}[$_] } keys %toCopy;
-
- #- extract headers of package, this is necessary for getting
- #- the complete filename of each package.
- #- copy the package files in the postinstall RPMS directory.
- #- last arg is default medium '' known as the CD#1.
- #- cp_af doesn't handle correctly a missing file.
- eval { cp_af((grep { -r $_ } map { "/tmp/image/" . relGetFile($_->filename) } @toCopy), $postinstall_rpms) };
-
- log::l("copying Auto Install Floppy");
- getAndSaveInstallFloppy($::o, "$postinstall_rpms/auto_install.img");
-}
-
-sub clean_postinstall_rpms() {
- $postinstall_rpms and -d $postinstall_rpms and rm_rf($postinstall_rpms);
-}
-
-
-#-######################################################################################
-#- Specific Hardware to take into account and associated rpms to install
-#-######################################################################################
-sub allowNVIDIA_rpms {
- my ($packages) = @_;
- require pkgs;
- if (pkgs::packageByName($packages, "NVIDIA_GLX")) {
- #- at this point, we can allow using NVIDIA 3D acceleration packages.
- my @rpms;
- foreach (@{$packages->{depslist}}) {
- my ($ext, $version, $release) = /kernel[^-]*(-smp|-enterprise|-secure)?(?:-(\d.*?)\.(\d+mdk))?$/ or next;
- my $p = pkgs::packageByName($packages, $_);
- $p->flag_available or next;
- $version or ($version, $release) = ($p->version, $p->release);
- my $name = "NVIDIA_kernel-$version-$release$ext";
- pkgs::packageByName($packages, $name) or return;
- push @rpms, $name;
- }
- @rpms > 0 or return;
- return [ @rpms, "NVIDIA_GLX" ];
- }
-}
-
-#-######################################################################################
-#- Functions
-#-######################################################################################
-sub kernelVersion {
- my ($o) = @_;
- my $kernel = readlink "$o->{prefix}/boot/vmlinuz" || first(all("$o->{prefix}/boot"));
- first($kernel =~ /vmlinuz-(.*)/);
-}
-
-
-sub getNextStep {
- my ($s) = $::o->{steps}{first};
- $s = $::o->{steps}{$s}{next} while $::o->{steps}{$s}{done} || !$::o->{steps}{$s}{reachable};
- $s;
-}
-
-sub spawnShell {
- return if $::o->{localInstall} || $::testing;
-
- -x "/bin/sh" or die "cannot open shell - /bin/sh doesn't exist";
-
- fork and return;
-
- $ENV{DISPLAY} ||= ":0"; #- why not :pp
-
- local *F;
- sysopen F, "/dev/tty2", 2 or die "cannot open /dev/tty2 -- no shell will be provided";
-
- open STDIN, "<&F" or die '';
- open STDOUT, ">&F" or die '';
- open STDERR, ">&F" or die '';
- close F;
-
- print any::drakx_version(), "\n";
-
- c::setsid();
-
- ioctl(STDIN, c::TIOCSCTTY(), 0) or warn "could not set new controlling tty: $!";
-
- my $busybox = "/usr/bin/busybox";
- exec {-e $busybox ? $busybox : "/bin/sh"} "/bin/sh" or log::l("exec of /bin/sh failed: $!");
-}
-
-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($o->{prefix}) ||
- getAvailableSpace_raw($o->{fstab}) * 512 / 1.07;
- $n - max(0.1 * $n, $minAvailableSize);
-}
-
-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 $nb << 11;
- }
- die "missing root partition";
-}
-
-sub preConfigureTimezone {
- my ($o) = @_;
- require timezone;
-
- #- can't be done in install cuz' timeconfig %post creates funny things
- add2hash($o->{timezone}, { timezone::read($o->{prefix}) }) if $o->{isUpgrade};
-
- $o->{timezone}{timezone} ||= timezone::bestTimezone(lang::lang2text($o->{lang}));
-
- my $utc = $::expert && !grep { isFat($_) || isNT($_) } @{$o->{fstab}};
- my $ntp = timezone::ntp_server($o->{prefix});
- add2hash_($o->{timezone}, { UTC => $utc, ntp => $ntp });
-}
-
-sub setPackages {
- my ($o, $rebuild_needed) = @_;
-
- require pkgs;
- if (!$o->{packages} || is_empty_array_ref($o->{packages}{depslist})) {
- $o->{packages} = pkgs::psUsingHdlists($o->{prefix}, $o->{method});
-
- #- open rpm db according to right mode needed.
- $o->{packages}{rpmdb} ||= pkgs::rpmDbOpen($o->{prefix}, $rebuild_needed);
-
- pkgs::getDeps($o->{prefix}, $o->{packages});
- pkgs::selectPackage($o->{packages},
- pkgs::packageByName($o->{packages}, 'basesystem') || die("missing basesystem package"), 1);
-
- #- must be done after selecting base packages (to save memory)
- pkgs::getProvides($o->{packages});
-
- #- must be done after getProvides
- pkgs::read_rpmsrate($o->{packages}, getFile("Mandrake/base/rpmsrate"));
- ($o->{compssUsers}, $o->{compssUsersSorted}) = pkgs::readCompssUsers($o->{meta_class});
-
- #- preselect default_packages and compssUsersChoices.
- setDefaultPackages($o);
- pkgs::selectPackage($o->{packages}, pkgs::packageByName($o->{packages}, $_) || next) foreach @{$o->{default_packages}};
- } else {
- #- this has to be done to make sure necessary files for urpmi are
- #- present.
- pkgs::psUpdateHdlistsDeps($o->{prefix}, $o->{method}, $o->{packages});
-
- #- open rpm db (always without rebuilding db, it should be false at this point).
- $o->{packages}{rpmdb} ||= pkgs::rpmDbOpen($o->{prefix});
- }
-}
-
-sub setDefaultPackages {
- my ($o, $clean) = @_;
-
- if ($clean) {
- delete $o->{$_} foreach qw(default_packages compssUsersChoice); #- clean modified variables.
- }
-
- push @{$o->{default_packages}}, "nfs-utils-clients" if $o->{method} eq "nfs";
- push @{$o->{default_packages}}, "numlock" if $o->{miscellaneous}{numlock};
- push @{$o->{default_packages}}, "kernel22" if !$::oem && c::kernel_version() =~ /^\Q2.2/;
- push @{$o->{default_packages}}, "raidtools" if !is_empty_array_ref($o->{all_hds}{raids});
- push @{$o->{default_packages}}, "lvm" if !is_empty_array_ref($o->{all_hds}{lvms});
- push @{$o->{default_packages}}, "alsa", "alsa-utils" if modules::get_alias("sound-slot-0") =~ /^snd-card-/;
- push @{$o->{default_packages}}, uniq(grep {$_} map { fsedit::package_needed_for_partition_type($_) } @{$o->{fstab}});
-
- #- if no cleaning needed, populate by default, clean is used for second or more call to this function.
- unless ($clean) {
- if ($::auto_install && ($o->{compssUsersChoice} || {})->{ALL}) {
- $o->{compssUsersChoice}{$_} = 1 foreach map { @{$o->{compssUsers}{$_}{flags}} } @{$o->{compssUsersSorted}};
- }
- if (!$o->{compssUsersChoice} && !$o->{isUpgrade}) {
- #- by default, choose:
- if ($o->{meta_class} eq 'server') {
- $o->{compssUsersChoice}{$_} = 1 foreach 'X', 'MONITORING', 'NETWORKING_REMOTE_ACCESS_SERVER';
- } else {
- $o->{compssUsersChoice}{$_} = 1 foreach 'GNOME', 'KDE', 'CONFIG', 'X';
- $o->{lang} eq 'eu_ES' and $o->{compssUsersChoice}{KDE} = 0;
- $o->{compssUsersChoice}{$_} = 1
- foreach map { @{$o->{compssUsers}{$_}{flags}} } 'Workstation|Office Workstation', 'Workstation|Internet station';
- }
- }
- }
- $o->{compssUsersChoice}{uc($_)} = 1 foreach grep { modules::probe_category("multimedia/$_") } modules::sub_categories('multimedia');
- $o->{compssUsersChoice}{uc($_)} = 1 foreach map { $_->{driver} =~ /Flag:(.*)/ } detect_devices::probeall();
- $o->{compssUsersChoice}{SYSTEM} = 1;
- $o->{compssUsersChoice}{DOCS} = !$o->{excludedocs};
- $o->{compssUsersChoice}{BURNER} = 1 if detect_devices::burners();
- $o->{compssUsersChoice}{DVD} = 1 if detect_devices::dvdroms();
- $o->{compssUsersChoice}{USB} = 1 if modules::get_probeall("usb-interface");
- $o->{compssUsersChoice}{PCMCIA} = 1 if detect_devices::hasPCMCIA();
- $o->{compssUsersChoice}{HIGH_SECURITY} = 1 if $o->{security} > 3;
- $o->{compssUsersChoice}{BIGMEM} = 1 if !$::oem && (availableRamMB() > 800) && (arch() !~ /ia64/);
- $o->{compssUsersChoice}{SMP} = 1 if detect_devices::hasSMP();
- $o->{compssUsersChoice}{'3D'} = 1 if
- detect_devices::matching_desc('Matrox.* G[245][05]0') ||
- detect_devices::matching_desc('Rage X[CL]') ||
- detect_devices::matching_desc('3D Rage (?:LT|Pro)') ||
- detect_devices::matching_desc('Voodoo [35]') ||
- detect_devices::matching_desc('Voodoo Banshee') ||
- detect_devices::matching_desc('8281[05].* CGC') ||
- detect_devices::matching_desc('Rage 128') ||
- detect_devices::matching_desc('Radeon ') && !detect_devices::matching_desc('Radeon 8500') ||
- detect_devices::matching_desc('[nN]Vidia.*T[nN]T2') || #- TNT2 cards
- detect_devices::matching_desc('[nN]Vidia.*NV[56]') ||
- detect_devices::matching_desc('[nN]Vidia.*Vanta') ||
- detect_devices::matching_desc('[nN]Vidia.*GeForce') || #- GeForce cards
- detect_devices::matching_desc('[nN]Vidia.*NV1[15]') ||
- detect_devices::matching_desc('[nN]Vidia.*Quadro');
-
-
- foreach (map { substr($_, 0, 2) } lang::langs($o->{langs})) {
- pkgs::packageByName($o->{packages}, "locales-$_") or next;
- push @{$o->{default_packages}}, "locales-$_";
- $o->{compssUsersChoice}{qq(LOCALES"$_")} = 1; #- mainly for zh in case of zh_TW.Big5
- }
- foreach (lang::langsLANGUAGE($o->{langs})) {
- $o->{compssUsersChoice}{qq(LOCALES"$_")} = 1;
- }
- $o->{compssUsersChoice}{'CHARSET"' . lang::lang2charset($o->{lang}) . '"'} = 1;
-}
-
-sub unselectMostPackages {
- my ($o) = @_;
- pkgs::unselectAllPackages($o->{packages});
- pkgs::selectPackage($o->{packages}, pkgs::packageByName($o->{packages}, $_) || next) foreach @{$o->{default_packages}};
-}
-
-sub warnAboutNaughtyServers {
- my ($o) = @_;
- my @naughtyServers = pkgs::naughtyServers($o->{packages}) or return 1;
- if (!$o->ask_yesorno('',
-formatAlaTeX(_("You have selected the following server(s): %s
-
-
-These servers are activated by default. They don't have any known security
-issues, but some new 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))), 1)) {
- pkgs::unselectPackage($o->{packages}, pkgs::packageByName($o->{packages}, $_)) foreach @naughtyServers;
- }
-}
-
-sub addToBeDone(&$) {
- my ($f, $step) = @_;
-
- return &$f() if $::o->{steps}{$step}{done};
-
- push @{$::o->{steps}{$step}{toBeDone}}, $f;
-}
-
-sub setAuthentication {
- my ($o) = @_;
- my ($shadow, $md5, $ldap, $nis, $winbind) = @{$o->{authentication} || {}}{qw(shadow md5 LDAP NIS winbind)};
- my $p = $o->{prefix};
- #- obsoleted always enabled (in /etc/pam.d/system-auth furthermore) #any::enableMD5Shadow($p, $shadow, $md5);
- any::enableShadow($p) if $shadow;
- if ($ldap) {
- $o->pkg_install(qw(chkauth openldap-clients nss_ldap pam_ldap));
- run_program::rooted($o->{prefix}, "/usr/sbin/chkauth", "ldap", "-D", $o->{netc}{LDAPDOMAIN}, "-s", $ldap);
- } elsif ($nis) {
- #$o->pkg_install(qw(chkauth ypbind yp-tools net-tools));
- #run_program::rooted($o->{prefix}, "/usr/sbin/chkauth", "yp", $domain, "-s", $nis);
- $o->pkg_install("ypbind");
- my $domain = $o->{netc}{NISDOMAIN};
- $domain || $nis ne "broadcast" or die _("Can't use broadcast with no NIS domain");
- my $t = $domain ? "domain $domain" . ($nis ne "broadcast" && " server")
- : "ypserver";
- substInFile {
- $_ = "#~$_" unless /^#/;
- $_ .= "$t $nis\n" if eof;
- } "$p/etc/yp.conf";
- require network;
- network::write_conf("$p/etc/sysconfig/network", $o->{netc});
- } elsif ($winbind) {
- my $domain = $o->{netc}{WINDOMAIN};
- $o->pkg_install(qw(samba-winbind samba-common));
- { #- setup pam
- my $f = "$o->{prefix}/etc/pam.d/system-auth";
- cp_af($f, "$f.orig");
- cp_af("$f-winbind", $f);
- }
- write_smb_conf($o, $domain);
- run_program::rooted($o->{prefix}, "chkconfig", "--level", "35", "winbind", "on");
- mkdir "$o->{prefix}/home/$domain", 0755;
-
- #- finally join the machine to the Windoze domain
- run_program::rooted($o->{prefix}, "/usr/bin/smbpasswd", "-j", $domain, "-r", $winbind);
- }
-}
-
-sub write_smb_conf {
- my ($domain) = @_;
-
- #- was going to just have a canned config in samba-winbind
- #- and replace the domain, but sylvestre/buchan didn't bless it yet
-
- my $f = "$::prefix/etc/samba/smb.conf";
- rename $f, "$f.orig";
- output($f, "
-[global]
- workgroup = $domain
- server string = Samba Server %v
- security = domain
- encrypt passwords = Yes
- password server = *
- log file = /var/log/samba/log.%m
- max log size = 50
- socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
- character set = ISO8859-15
- os level = 18
- local master = No
- dns proxy = No
- winbind uid = 10000-20000
- winbind gid = 10000-20000
- winbind separator = +
- template homedir = /home/%D/%U
- template shell = /bin/bash
- winbind use default domain = yes
-");
-}
-
-sub killCardServices {
- my $pid = chomp_(cat_("/tmp/cardmgr.pid"));
- $pid and kill(15, $pid); #- send SIGTERM
-}
-
-sub unlockCdrom(;$) {
- my ($cdrom) = @_;
- $cdrom or cat_("/proc/mounts") =~ m,(/(?:dev|tmp)/\S+)\s+(?:/mnt/cdrom|/tmp/image), and $cdrom = $1;
- eval { $cdrom and ioctl detect_devices::tryOpen($1), c::CDROM_LOCKDOOR(), 0 };
-}
-sub ejectCdrom(;$) {
- my ($cdrom) = @_;
- getFile("XXX"); #- close still opened filehandle
- $cdrom ||= $1 if cat_("/proc/mounts") =~ m,(/(?:dev|tmp)/\S+)\s+(?:/mnt/cdrom|/tmp/image),;
- if ($cdrom) {
- #- umount BEFORE opening the cdrom device otherwise the umount will
- #- D state if the cdrom is already removed
- eval { fs::umount("/tmp/image") };
- if ($@) { log::l("files still open: ", readlink($_)) foreach map { glob_("$_/fd/*") } glob_("/proc/*") }
- eval { ioctl detect_devices::tryOpen($cdrom), c::CDROMEJECT(), 1 };
- }
-}
-
-sub setupFB {
- my ($o, $vga) = @_;
-
- $vga ||= 785; #- assume at least 640x480x16.
-
- require bootloader;
- #- update bootloader entries with vga, all kernel are now framebuffer.
- foreach (qw(vmlinuz vmlinuz-secure vmlinuz-smp vmlinuz-hack)) {
- if (my $e = bootloader::get("/boot/$_", $o->{bootloader})) {
- $e->{vga} = $vga;
- }
- }
- bootloader::install($o->{prefix}, $o->{bootloader}, $o->{fstab}, $o->{all_hds}{hds});
- 1;
-}
-
-sub hdInstallPath() {
- my $tail = first(readlink("/tmp/image") =~ m|^/tmp/hdimage/(.*)|);
- my $head = first(readlink("/tmp/hdimage") =~ m|$::prefix(.*)|);
- $tail && ($head ? "$head/$tail" : "/mnt/hd/$tail");
-}
-
-sub install_urpmi {
- my ($prefix, $method, $mediums) = @_;
-
- #- rare case where urpmi cannot be installed (no hd install path).
- $method eq 'disk' && !hdInstallPath() and return;
-
- my @cfg = map {
- my $name = $_->{fakemedium};
-
- local *LIST;
- my $mask = umask 077;
- open LIST, ">$prefix/var/lib/urpmi/list.$name" or log::l("failed to write list.$name");
- umask $mask;
-
- my $dir = ($_->{prefix} || ${{ nfs => "file://mnt/nfs",
- disk => "file:/" . hdInstallPath(),
- ftp => $ENV{URLPREFIX},
- http => $ENV{URLPREFIX},
- cdrom => "removable://mnt/cdrom" }}{$method}) . "/$_->{rpmsdir}";
-
- local *FILES; open FILES, "$ENV{LD_LOADER} parsehdlist /tmp/$_->{hdlist} |";
- print LIST "$dir/$_\n" foreach chomp_(<FILES>);
- close FILES or log::l("parsehdlist failed"), return;
- close LIST;
-
- #- build synthesis file if there are still not existing (ie not copied from mirror).
- if (-s "$prefix/var/lib/urpmi/synthesis.hdlist.$name.cz" <= 32) {
- unlink "$prefix/var/lib/urpmi/synthesis.hdlist.$name.cz";
- run_program::rooted($prefix, "parsehdlist", ">", "/var/lib/urpmi/synthesis.hdlist.$name",
- "--synthesis", "/var/lib/urpmi/hdlist.$name.cz");
- run_program::rooted($prefix, "gzip", "-S", ".cz", "/var/lib/urpmi/synthesis.hdlist.$name");
- }
-
- my ($qname, $qdir) = ($name, $dir);
- $qname =~ s/(\s)/\\$1/g; $qdir =~ s/(\s)/\\$1/g;
-
- #- output new urpmi.cfg format here.
- "$qname " . ($dir !~ /^(ftp|http)/ && $qdir) . " {
- hdlist: hdlist.$name.cz
- with_hdlist: ../base/" . ($_->{update} ? "hdlist.cz" : $_->{hdlist}) . "
- list: list.$name" . ($dir =~ /removable:/ && "
- removable: /dev/cdrom") . ($_->{update} && "
- update") . "
-}
-
-";
- } sort { $a->{medium} <=> $b->{medium} } values %$mediums;
- eval { output "$prefix/etc/urpmi/urpmi.cfg", @cfg };
-}
-
-
-#-###############################################################################
-#- kde stuff
-#-###############################################################################
-sub kderc_largedisplay {
- my ($prefix) = @_;
-
- update_gnomekderc($_, 'KDE',
- Contrast => 7,
- kfmIconStyle => "Large",
- kpanelIconStyle => "Normal", #- to change to Large when icons looks better
- KDEIconStyle => "Large") foreach list_skels($prefix, '.kderc');
-
- substInFile {
- s/^(GridWidth)=85/$1=100/;
- s/^(GridHeight)=70/$1=75/;
- } $_ foreach list_skels($prefix, '.kde/share/config/kfmrc');
-}
-
-sub kdeicons_postinstall {
- my ($prefix) = @_;
-
- #- parse etc/fstab file to search for dos/win, floppy, zip, cdroms icons.
- #- handle both supermount and fsdev usage.
- my %l = (
- 'cdrom' => [ 'cdrom', 'Cd-Rom' ],
- 'zip' => [ 'zip', 'Zip' ],
- 'floppy-ls' => [ 'floppy', 'LS-120' ],
- 'floppy' => [ 'floppy', 'Floppy' ],
- );
- foreach (fs::read_fstab($prefix, "/etc/fstab")) {
-
- my ($name_, $nb) = $_->{mntpoint} =~ m|.*/(\S+?)(\d*)$/|;
- my ($name, $text) = @{$l{$name_} || []};
-
- my $f = ${{
- supermount => sub { $name .= '.fsdev' if $name },
- vfat => sub { $name = 'Dos_'; $text = $name_ },
- }}{$_->{type}};
- &$f if $f;
-
- template2userfile($prefix,
- "$ENV{SHARE_PATH}/$name.kdelnk.in",
- "Desktop/$text" . ($nb && " $nb"). ".kdelnk",
- 1, %$_) if $name;
- }
-
- # rename the .kdelnk to the name found in the .kdelnk as kde doesn't use it
- # for displaying
- foreach my $dir (grep { -d $_ } list_skels($prefix, 'Desktop')) {
- foreach (grep { /\.kdelnk$/ } all($dir)) {
- cat_("$dir/$_") =~ /^Name\[\Q$ENV{LANG}\E\]=(.{2,14})$/m
- and rename "$dir/$_", "$dir/$1.kdelnk";
- }
- }
-}
-
-sub kdemove_desktop_file {
- my ($prefix) = @_;
- my @toMove = qw(doc.kdelnk news.kdelnk updates.kdelnk home.kdelnk printer.kdelnk floppy.kdelnk cdrom.kdelnk FLOPPY.kdelnk CDROM.kdelnk);
-
- #- remove any existing save in Trash of each user and
- #- move appropriate file there after an upgrade.
- foreach my $dir (grep { -d $_ } list_skels($prefix, 'Desktop')) {
- renamef("$dir/$_", "$dir/Trash/$_")
- foreach grep { -e "$dir/$_" } @toMove, grep { /\.rpmorig$/ } all($dir)
- }
-}
-
-
-#-###############################################################################
-#- auto_install stuff
-#-###############################################################################
-sub auto_inst_file() { ($::g_auto_install ? "/tmp" : "$::prefix/root/drakx") . "/auto_inst.cfg.pl" }
-
-sub report_bug {
- my ($prefix) = @_;
- any::report_bug($prefix, 'auto_inst' => g_auto_install('', 1));
-}
-
-sub g_auto_install {
- my ($replay, $respect_privacy) = @_;
- my $o = {};
-
- require pkgs;
- $o->{default_packages} = pkgs::selected_leaves($::o->{packages});
-
- my @fields = qw(mntpoint type size);
- $o->{partitions} = [ map { my %l; @l{@fields} = @$_{@fields}; \%l } grep { $_->{mntpoint} } @{$::o->{fstab}} ];
-
- exists $::o->{$_} and $o->{$_} = $::o->{$_} foreach qw(lang authentication mouse wacom netc timezone superuser intf keyboard users partitioning isUpgrade manualFstab nomouseprobe crypto security netcnx useSupermount autoExitInstall mkbootdisk); #- TODO modules bootloader
-
- if (my $printer = $::o->{printer}) {
- $o->{printer}{$_} = $::o->{printer}{$_} foreach qw(SPOOLER DEFAULT BROWSEPOLLADDR BROWSEPOLLPORT MANUALCUPSCONFIG);
- $o->{printer}{configured} = {};
- foreach my $queue (keys %{$::o->{printer}{configured}}) {
- my $val = $::o->{printer}{configured}{$queue}{queuedata};
- exists $val->{$_} and $o->{printer}{configured}{$queue}{queuedata}{$_} = $val->{$_} foreach keys %{$val || {}};
- }
- }
-
- if (my $card = $::o->{X}{card}) {
- $o->{X}{$_} = $::o->{X}{$_} foreach qw(default_depth resolution_wanted);
- if ($o->{X}{default_depth} and my $depth = $card->{depth}{$o->{X}{default_depth}}) {
- $depth ||= [];
- $o->{X}{resolution_wanted} ||= join "x", @{$depth->[0]} unless is_empty_array_ref($depth->[0]);
- $o->{X}{monitor} = $::o->{X}{monitor} if $::o->{X}{monitor}{manual};
- }
- }
-
- local $o->{partitioning}{auto_allocate} = !$replay;
- $o->{autoExitInstall} = !$replay;
- $o->{interactiveSteps} = [ 'doPartitionDisks', 'formatPartitions'] if $replay;
-
- #- deep copy because we're modifying it below
- $o->{users} = [ @{$o->{users} || []} ];
-
- my @user_info_to_remove = (
- if_($respect_privacy, qw(name realname home pw)),
- qw(oldu oldg password password2),
- );
- $_ = { %{$_ || {}} }, delete @$_{@user_info_to_remove} foreach $o->{superuser}, @{$o->{users} || []};
-
- if ($respect_privacy && $o->{netcnx}) {
- if (my $type = $o->{netcnx}{type}) {
- my @netcnx_type_to_remove = qw(passwd passwd2 login phone_in phone_out);
- $_ = { %{$_ || {}} }, delete @$_{@netcnx_type_to_remove} foreach $o->{netcnx}{$type};
- }
- }
-
- require Data::Dumper;
- my $str = join('',
-"#!/usr/bin/perl -cw
-#
-# You should check the syntax of this file before using it in an auto-install.
-# You can do this with 'perl -cw auto_inst.cfg.pl' or by executing this file
-# (note the '#!/usr/bin/perl -cw' on the first line).
-", Data::Dumper->Dump([$o], ['$o']), "\0");
- $str =~ s/ {8}/\t/g; #- replace all 8 space char by only one tabulation, this reduces file size so much :-)
- $str;
-}
-
-sub getAndSaveInstallFloppy {
- my ($o, $where) = @_;
- if ($postinstall_rpms && -d $postinstall_rpms && -r "$postinstall_rpms/auto_install.img") {
- log::l("getAndSaveInstallFloppy: using file saved as $postinstall_rpms/auto_install.img");
- cp_af("$postinstall_rpms/auto_install.img", $where);
- } else {
- my $image = cat_("/proc/cmdline") =~ /pcmcia/ ? "pcmcia" :
- ${{ disk => 'hd', cdrom => 'cdrom', ftp => 'network', nfs => 'network', http => 'network' }}{$o->{method}};
- $image .= arch() =~ /sparc64/ && "64"; #- for sparc64 there are a specific set of image.
- getAndSaveFile("images/$image.img", $where) or log::l("failed to write Install Floppy ($image.img) to $where"), return;
- }
- 1;
-}
-
-sub getAndSaveAutoInstallFloppy {
- my ($o, $replay, $where) = @_;
-
- eval { modules::load('loop') };
-
- if (arch() =~ /sparc/) {
- my $imagefile = "$o->{prefix}/tmp/autoinst.img";
- my $mountdir = "$o->{prefix}/tmp/mount"; -d $mountdir or mkdir $mountdir, 0755;
- my $workdir = "$o->{prefix}/tmp/work"; -d $workdir or rmdir $workdir;
-
- getAndSaveInstallFloppy($o, $imagefile) or return;
- devices::make($_) foreach qw(/dev/loop6 /dev/ram);
-
- run_program::run("losetup", "/dev/loop6", $imagefile);
- fs::mount("/dev/loop6", $mountdir, "romfs", 'readonly');
- cp_af($mountdir, $workdir);
- fs::umount($mountdir);
- run_program::run("losetup", "-d", "/dev/loop6");
-
- substInFile { s/timeout.*//; s/^(\s*append\s*=\s*\".*)\"/$1 kickstart=floppy\"/ } "$workdir/silo.conf"; #" for po
-#-TODO output "$workdir/ks.cfg", generate_ks_cfg($o);
- output "$workdir/boot.msg", "\n7m",
-"!! If you press enter, an auto-install is going to start.
- ALL data on this computer is going to be lost,
- including any Windows partitions !!
-", "7m\n";
-
- local $o->{partitioning}{clearall} = 1;
- output("$workdir/auto_inst.cfg", g_auto_install());
-
- run_program::run("genromfs", "-d", $workdir, "-f", "/dev/ram", "-A", "2048,/..", "-a", "512", "-V", "DrakX autoinst");
- fs::mount("/dev/ram", $mountdir, 'romfs', 0);
- run_program::run("silo", "-r", $mountdir, "-F", "-i", "/fd.b", "-b", "/second.b", "-C", "/silo.conf");
- fs::umount($mountdir);
- require commands;
- commands::dd("if=/dev/ram", "of=$where", "bs=1440", "count=1024");
-
- rm_rf($workdir, $mountdir, $imagefile);
- } elsif (arch() =~ /ia64/) {
- #- nothing yet
- } else {
- my $imagefile = "$o->{prefix}/root/autoinst.img";
- my $mountdir = "$o->{prefix}/root/aif-mount"; -d $mountdir or mkdir $mountdir, 0755;
-
- my $param = 'kickstart=floppy ' . generate_automatic_stage1_params($o);
-
- getAndSaveInstallFloppy($o, $imagefile) or return;
-
- my $dev = devices::set_loop($imagefile) or log::l("couldn't set loopback device"), return;
- fs::mount($dev, $mountdir, 'vfat', 0);
-
- substInFile {
- s/timeout.*/$replay ? 'timeout 1' : ''/e;
- s/^(\s*append)/$1 $param/
- } "$mountdir/syslinux.cfg";
-
- unlink "$mountdir/help.msg";
- output "$mountdir/boot.msg", "\n0c",
-"!! If you press enter, an auto-install is going to start.
- All data on this computer is going to be lost,
- including any Windows partitions !!
-", "07\n" if !$replay;
-
- local $o->{partitioning}{clearall} = !$replay;
- eval { output("$mountdir/auto_inst.cfg", g_auto_install($replay)); };
- $@ and log::l("Warning: <$@>");
-
- fs::umount($mountdir);
- rmdir $mountdir;
- devices::del_loop($dev);
- require commands;
- commands::dd("if=$imagefile", "of=$where", "bs=1440", "count=1024");
- unlink $imagefile;
- }
- 1;
-}
-
-
-sub g_default_packages {
- my ($o, $quiet) = @_;
-
- my $floppy = detect_devices::floppy();
-
- while (1) {
- $o->ask_okcancel('', _("Insert a FAT formatted floppy in drive %s", $floppy), 1) or return;
-
- eval { fs::mount(devices::make($floppy), "/floppy", "vfat", 0) };
- last if !$@;
- $o->ask_warn('', _("This floppy is not FAT formatted"));
- }
-
- require Data::Dumper;
- my $str = Data::Dumper->Dump([ { default_packages => pkgs::selected_leaves($o->{packages}) } ], ['$o']);
- $str =~ s/ {8}/\t/g;
- output('/floppy/auto_inst.cfg',
- "# 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, "\0");
- fs::umount("/floppy");
-
- $quiet or $o->ask_warn('', _("To use this saved packages selection, boot installation with ``linux defcfg=floppy''"));
-}
-
-sub loadO {
- my ($O, $f) = @_; $f ||= auto_inst_file;
- my $o;
- if ($f =~ /^(floppy|patch)$/) {
- my $f = $f eq "floppy" ? 'auto_inst.cfg' : "patch";
- unless ($::testing) {
- fs::mount(devices::make(detect_devices::floppy()), "/mnt", (arch() =~ /sparc/ ? "romfs" : "vfat"), 'readonly');
- $f = "/mnt/$f";
- }
- -e $f or $f .= '.pl';
-
- my $b = before_leaving {
- fs::umount("/mnt") unless $::testing;
- modules::unload(qw(vfat fat));
- };
- $o = loadO($O, $f);
- } else {
- -e "$f.pl" and $f .= ".pl" unless -e $f;
-
- my $fh = -e $f ? do { local *F; open F, $f; *F } : getFile($f) or die _("Error reading file %s", $f);
- {
- local $/ = "\0";
- no strict;
- eval <$fh>;
- close $fh;
- $@ and die;
- }
- add2hash_($o ||= {}, $O);
- }
- bless $o, ref $O;
-}
-
-sub generate_automatic_stage1_params {
- my ($o) = @_;
-
- my @ks = "method:$o->{method}";
-
- if ($o->{method} eq 'http') {
- "$ENV{URLPREFIX}" =~ m|http://([^/:]+)/(.*)| or die;
- push @ks, "server:$1", "directory:$2";
- } elsif ($o->{method} eq 'ftp') {
- push @ks, "server:$ENV{HOST}", "directory:$ENV{PREFIX}", "user:$ENV{LOGIN}", "pass:$ENV{PASSWORD}";
- } elsif ($o->{method} eq 'nfs') {
- cat_("/proc/mounts") =~ m|(\S+):(\S+)\s+/tmp/image nfs| or die;
- push @ks, "server:$1", "directory:$2";
- }
-
- if (member($o->{method}, qw(http ftp nfs))) {
- my ($intf) = values %{$o->{intf}};
- push @ks, "interface:$intf->{DEVICE}";
- if ($intf->{BOOTPROTO} eq 'dhcp') {
- push @ks, "network:dhcp";
- } else {
- require network;
- push @ks, "network:static", "ip:$intf->{IPADDR}", "netmask:$intf->{NETMASK}", "gateway:$o->{netc}{GATEWAY}";
- my @dnss = network::dnsServers($o->{netc});
- push @ks, "dns:$dnss[0]" if @dnss;
- }
- }
-
- "automatic=".join(',', @ks);
-}
-
-sub guess_mount_point {
- my ($part, $prefix, $user) = @_;
-
- my %l = (
- '/' => 'etc/fstab',
- '/boot' => 'vmlinuz',
- '/tmp' => '.X11-unix',
- '/usr' => 'X11R6',
- '/var' => 'catman',
- );
-
- my $handle = any::inspect($part, $prefix) or return;
- my $d = $handle->{dir};
- my ($mnt) = grep { -e "$d/$l{$_}" } keys %l;
- $mnt ||= (stat("$d/.bashrc"))[4] ? '/root' : '/home/user' . ++$$user if -e "$d/.bashrc";
- $mnt ||= (grep { -d $_ && (stat($_))[4] >= 500 && -e "$_/.bashrc" } glob_("$d")) ? '/home' : '';
- ($mnt, $handle);
-}
-
-sub suggest_mount_points {
- my ($fstab, $prefix, $uniq) = @_;
-
- my $user;
- foreach my $part (grep { isTrueFS($_) } @$fstab) {
- $part->{mntpoint} && !$part->{unsafeMntpoint} and next; #- if already found via an fstab
-
- my ($mnt, $handle) = guess_mount_point($part, $prefix, \$user) or next;
-
- next if $uniq && fsedit::mntpoint2part($mnt, $fstab);
- $part->{mntpoint} = $mnt; delete $part->{unsafeMntpoint};
-
- #- try to find other mount points via fstab
- fs::merge_info_from_fstab($fstab, $handle->{dir}, $uniq, 'loose') if $mnt eq '/';
- }
- $_->{mntpoint} and log::l("suggest_mount_points: $_->{device} -> $_->{mntpoint}") foreach @$fstab;
-}
-
-#- mainly for finding the root partitions for upgrade
-sub find_root_parts {
- my ($fstab, $prefix) = @_;
- log::l("find_root_parts");
- my $user;
- grep {
- my ($mnt) = guess_mount_point($_, $prefix, \$user);
- $mnt eq '/';
- } @$fstab;
-}
-sub use_root_part {
- my ($all_hds, $part, $prefix) = @_;
- my $fstab = [ fsedit::get_really_all_fstab($all_hds) ];
- {
- my $handle = any::inspect($part, $prefix) or die;
- fs::merge_info_from_fstab($fstab, $handle->{dir}, 'uniq');
- }
- map { $_->{mntpoint} = 'swap' } grep { isSwap($_) } @$fstab; #- use all available swap.
-}
-
-sub getHds {
- my ($o, $f_err) = @_;
- my $ok = 1;
- my $try_scsi = !$::expert;
- my $flags = $o->{partitioning};
-
- my @drives = detect_devices::hds();
-# add2hash_($o->{partitioning}, { readonly => 1 }) if partition_table::raw::typeOfMBR($drives[0]{device}) eq 'system_commander';
-
- getHds:
- my $all_hds = catch_cdie { fsedit::hds(\@drives, $flags) }
- sub {
- $ok = 0;
- my $err = formatError($@);
- log::l("error reading partition table: $err");
- !$flags->{readonly} && $f_err and $f_err->($err);
- };
- my $hds = $all_hds->{hds};
-
- if (is_empty_array_ref($hds) && $try_scsi) {
- $try_scsi = 0;
- $o->setupSCSI; #- ask for an unautodetected scsi card
- goto getHds;
- }
- if (!$::testing) {
- @$hds = grep { eval { partition_table::raw::test_for_bad_drives($_) }; !$@ } @$hds;
- }
-
- $ok = fsedit::verifyHds($hds, $flags->{readonly}, $ok)
- if !($flags->{clearall} || $flags->{clear});
-
- #- try to figure out if the same number of hds is available, use them if ok.
- $ok && $hds && @$hds > 0 && @{$o->{all_hds}{hds} || []} == @$hds and return $ok;
-
- fs::get_raw_hds('', $all_hds);
- fs::add2all_hds($all_hds, @{$o->{manualFstab}});
-
- $o->{all_hds} = $all_hds;
- $o->{fstab} = [ fsedit::get_all_fstab($all_hds) ];
- fs::merge_info_from_mtab($o->{fstab});
-
- my @win = grep { isFat($_) && isFat({ type => fsedit::typeOfPart($_->{device}) }) } @{$o->{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";
- } 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
- }
- }
-
- my @sunos = grep { isSunOS($_) && type2name($_->{type}) =~ /root/i } @{$o->{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.
-
- $ok;
-}
-
-sub log_sizes {
- my ($o) = @_;
- my @df = MDK::Common::System::df($o->{prefix});
- log::l(sprintf "Installed: %s(df), %s(rpm)",
- formatXiB($df[0] - $df[1], 1024),
- formatXiB(sum(`$ENV{LD_LOADER} rpm --root $o->{prefix}/ -qa --queryformat "%{size}\n"`))) if -x "$o->{prefix}/bin/rpm";
-}
-
-sub copy_advertising {
- my ($o) = @_;
-
- return if $::rootwidth < 800;
-
- my $f;
- my $source_dir = "Mandrake/share/advertising";
- foreach ("." . $o->{lang}, "." . substr($o->{lang},0,2), '') {
- $f = getFile("$source_dir$_/list") or next;
- $source_dir = "$source_dir$_";
- }
- if (my @files = <$f>) {
- my $dir = "$o->{prefix}/tmp/drakx-images";
- mkdir $dir;
- unlink glob_("$dir/*");
- foreach (@files) {
- chomp;
- getAndSaveFile("$source_dir/$_", "$dir/$_");
- s/\.png/\.pl/;
- getAndSaveFile("$source_dir/$_", "$dir/$_");
- s/\.pl/_icon\.png/;
- getAndSaveFile("$source_dir/$_", "$dir/$_");
- s/_icon\.png/\.png/;
- }
- @advertising_images = map { "$dir/$_" } @files;
- }
-}
-
-sub remove_advertising {
- my ($o) = @_;
- eval { rm_rf("$o->{prefix}/tmp/drakx-images") };
- @advertising_images = ();
-}
-
-sub disable_user_view {
- my ($prefix) = @_;
- substInFile { s/^UserView=.*/UserView=true/ } "$prefix/usr/share/config/kdm/kdmrc";
- substInFile { s/^Browser=.*/Browser=0/ } "$prefix/etc/X11/gdm/gdm.conf";
-}
-
-sub write_fstab {
- my ($o) = @_;
- fs::write_fstab($o->{all_hds}, $o->{prefix}) if !$::live;
-}
-
-my @bigseldom_used_groups = (
-);
-
-sub check_prog {
- my ($f) = @_;
-
- my @l = $f !~ m|^/| ?
- map { "$_/$f" } split(":", $ENV{PATH}) :
- $f;
- return if grep { -x $_ } @l;
-
- common::usingRamdisk() or log::l("ERROR: check_prog can't find the program $f and we're not using ramdisk"), return;
-
- my ($f_) = map { m|^/| ? $_ : "/usr/bin/$_" } $f;
- remove_bigseldom_used();
- foreach (@bigseldom_used_groups) {
- my (@l) = map { m|^/| ? $_ : "/usr/bin/$_" } @$_;
- if (member($f_, @l)) {
- foreach (@l) {
- getAndSaveFile($_);
- chmod 0755, $_;
- }
- return;
- }
- }
- getAndSaveFile($f_);
- chmod 0755, $f_;
-}
-
-sub remove_unused {
- $::testing and return;
- if ($::o->isa('interactive::gtk')) {
- unlink glob_("/lib/lib$_*") foreach qw(slang newt);
- unlink "/usr/bin/perl-install/auto/Newt/Newt.so";
- } else {
- unlink glob_("/usr/X11R6/bin/XF*");
- }
-}
-
-sub remove_bigseldom_used {
- log::l("remove_bigseldom_used");
- $::testing and return;
- remove_unused();
- unlink "/usr/X11R6/lib/modules/xf86Wacom.so";
- unlink glob_("/usr/share/gtk/themes/$_*") foreach qw(marble3d);
- unlink(m|^/| ? $_ : "/usr/bin/$_") foreach
- ((map { @$_ } @bigseldom_used_groups),
- qw(pvcreate pvdisplay vgchange vgcreate vgdisplay vgextend vgremove vgscan lvcreate lvdisplay lvremove /lib/liblvm.so),
- qw(mkreiserfs resize_reiserfs mkfs.xfs),
- );
-}
-
-################################################################################
-package pkgs_interactive;
-use run_program;
-use common;
-use pkgs;
-
-sub install_steps::do_pkgs {
- my ($o) = @_;
- bless { o => $o }, 'pkgs_interactive';
-}
-
-sub install {
- my ($do, @l) = @_;
- $do->{o}->pkg_install(@l);
-}
-
-sub what_provides {
- my ($do, $name) = @_;
- map { $do->{o}{packages}{depslist}[$_]->name } keys %{$do->{o}{packages}{provides}{$name} || {}};
-}
-
-sub is_installed {
- my ($do, @l) = @_;
- foreach (@l) {
- my $p = pkgs::packageByName($do->{o}->{packages}, $_);
- $p && $p->flag_selected or return;
- }
- 1;
-}
-
-sub remove {
- my ($do, @l) = @_;
-
- @l = grep {
- my $p = pkgs::packageByName($do->{o}->{packages}, $_);
- pkgs::unselectPackage($do->{o}->{packages}, $p) if $p;
- $p;
- } @l;
- run_program::rooted($do->{o}->{prefix}, 'rpm', '-e', @l);
-}
-
-sub remove_nodeps {
- my ($do, @l) = @_;
-
- @l = grep {
- my $p = pkgs::packageByName($do->{o}->{packages}, $_);
- if ($p) {
- $p->set_flag_requested(0);
- $p->set_flag_required(0);
- }
- $p;
- } @l;
- run_program::rooted($do->{o}->{prefix}, 'rpm', '-e', '--nodeps', @l);
-}
-################################################################################
-
-package install_any;
-
-1;
diff --git a/perl-install/install_gtk.pm b/perl-install/install_gtk.pm
deleted file mode 100644
index 0c895eda1..000000000
--- a/perl-install/install_gtk.pm
+++ /dev/null
@@ -1,388 +0,0 @@
-package install_gtk; # $Id$
-
-use diagnostics;
-use strict;
-
-use my_gtk qw(:helpers :wrappers);
-use common;
-use lang;
-use devices;
-
-#-#####################################################################################
-#-INTERN CONSTANT
-#-#####################################################################################
-my @themes_vga16 = qw(blue blackwhite savane);
-my @themes_desktop = qw(mdk-Desktop marble3d);
-my @themes_firewall = qw(mdk-Firewall);
-my @themes = qw(mdk marble3d);
-
-my (@background1, @background2);
-
-
-#------------------------------------------------------------------------------
-sub load_rc {
- my ($name) = @_;
-
- if (my ($f) = grep { -r $_ } map { "$_/$name.rc" } ("share", $ENV{SHARE_PATH}, dirname(__FILE__))) {
- Gtk::Rc->parse($f);
- foreach (cat_($f)) {
- if (/style\s+"background"/ .. /^\s*$/) {
- @background1 = map { $_ * 256 * 257 } split ',', $1 if /NORMAL.*\{(.*)\}/;
- @background2 = map { $_ * 256 * 257 } split ',', $1 if /PRELIGHT.*\{(.*)\}/;
- }
- }
- }
-}
-
-sub default_theme {
- my ($o) = @_;
- @themes = @themes_desktop if $o->{meta_class} eq 'desktop';
- @themes = @themes_firewall if $o->{meta_class} eq 'firewall';
- @themes = @themes_vga16 if $o->{simple_themes} || $o->{vga16};
- install_theme($o, $o->{theme} || $themes[0]);
-}
-
-#------------------------------------------------------------------------------
-sub install_theme {
- my ($o, $theme) = @_;
-
- $o->{theme} = $theme || $o->{theme};
-
- load_rc($_) foreach "themes-$o->{theme}", "install", "themes";
-
- if (my ($font, $font2) = lang::get_x_fontset($o->{lang}, $::rootwidth < 800 ? 10 : 12)) {
- $font2 ||= $font;
- Gtk::Rc->parse_string(qq(
-style "default-font"
-{
- fontset = "$font,*"
-}
-style "small-font"
-{
- fontset = "$font2,*"
-}
-widget "*" style "default-font"
-widget "*Steps*" style "small-font"
-
-));
- }
-
- gtkset_background(@background1) unless $::live; #- || testing;
-
- create_logo_window($o);
- create_help_window($o);
-}
-
-#------------------------------------------------------------------------------
-sub create_big_help {
- my ($o) = @_;
- my $w = my_gtk->new('', grab => 1, force_position => [ $::stepswidth, $::logoheight ]);
- $w->{rwindow}->set_usize($::logowidth, $::rootheight - $::logoheight);
- gtkadd($w->{window},
- gtkpack_(new Gtk::VBox(0,0),
- 1, createScrolledWindow(gtktext_insert(new Gtk::Text, $o->{current_help})),
- 0, gtksignal_connect(my $ok = new Gtk::Button(_("Ok")), "clicked" => sub { Gtk->main_quit }),
- ));
- $ok->grab_focus;
- $w->main;
- gtkset_mousecursor_normal();
-}
-
-#------------------------------------------------------------------------------
-sub create_help_window {
- my ($o) = @_;
-
- my $w;
- if ($w = $o->{help_window}) {
- $_->destroy foreach $w->{window}->children;
- } else {
- $w = bless {}, 'my_gtk';
- $w->{rwindow} = $w->{window} = new Gtk::Window;
- $w->{rwindow}->set_uposition($::rootwidth - $::helpwidth, $::rootheight - $::helpheight);
- $w->{rwindow}->set_usize($::helpwidth, $::helpheight);
- $w->{rwindow}->set_title('skip');
- $w->sync;
- }
- my $pixmap = gtkpng("$ENV{SHARE_PATH}/help.png");
- gtkadd($w->{window},
- gtkpack_(new Gtk::HBox(0,-2),
- 0, gtkadd(gtksignal_connect(new Gtk::Button, clicked => sub { create_big_help($o) }), $pixmap),
- 1, createScrolledWindow($o->{help_window_text} = new Gtk::Text),
- ));
- $o->set_help($o->{step}) if $o->{step};
- $w->show;
- $o->{help_window} = $w;
-}
-
-#------------------------------------------------------------------------------
-sub create_steps_window {
- my ($o) = @_;
-
- my $PIX_H = my $PIX_W = 21;
-
- $o->{steps_window}->destroy if $o->{steps_window};
-
- my $w = bless {}, 'my_gtk';
- $w->{rwindow} = $w->{window} = new Gtk::Window;
- $w->{rwindow}->set_uposition(0, 0);
- $w->{rwindow}->set_usize($::stepswidth, $::stepsheight);
- $w->{rwindow}->set_name('Steps');
- $w->{rwindow}->set_events('button_press_mask');
- $w->{rwindow}->set_title('skip');
- #$w->show;
-
- gtkadd($w->{window},
- gtkpack_(new Gtk::VBox(0,0),
- (map {; 1, $_ } map {
- my $step_name = $_;
- my $step = $o->{steps}{$_};
- my $darea = new Gtk::DrawingArea;
- my $in_button;
- my $draw_pix = sub {
- my ($map, $mask) = gtkcreate_xpm($_[0]);
- $darea->window->draw_pixmap ($darea->style->bg_gc('normal'),
- $map, 0, 0,
- ($darea->allocation->[2]-$PIX_W)/2 + 3,
- ($darea->allocation->[3]-$PIX_H)/2,
- $PIX_W , $PIX_H );
- };
-
- my $f = sub {
- my ($type) = @_;
- my $color = $step->{done} ? 'green' : $step->{entered} ? 'orange' : 'red';
- "$ENV{SHARE_PATH}/step-$color$type.xpm";
- };
- $darea->set_usize($PIX_W+3,$PIX_H);
- $darea->set_events(['exposure_mask', 'enter_notify_mask', 'leave_notify_mask', 'button_press_mask', 'button_release_mask' ]);
- $darea->signal_connect(expose_event => sub { $draw_pix->($f->('')) });
- if ($step->{reachable}) {
- $darea->signal_connect(enter_notify_event => sub { $in_button=1; $draw_pix->($f->('-on')); });
- $darea->signal_connect(leave_notify_event => sub { undef $in_button; $draw_pix->($f->('')); });
- $darea->signal_connect(button_press_event => sub { $draw_pix->($f->('-click')); });
- $darea->signal_connect(button_release_event => sub { $in_button && die "setstep $step_name\n" });
- }
- gtkpack_(new Gtk::HBox(0,5), 0, $darea, 0, new Gtk::Label(translate($step->{text})));
- } grep {
- !eval $o->{steps}{$_}{hidden};
- } @{$o->{orderedSteps}}),
- 0, gtkpack(new Gtk::HBox(0,0), map {
- my $t = $_;
- my $w = new Gtk::Button('');
- $w->set_name($t);
- $w->set_usize(0, 7);
- gtksignal_connect($w, clicked => sub {
- $::setstep or return; #- just as setstep s
- install_theme($o, $t); die "theme_changed\n"
- });
- } @themes)));
- $w->show;
- $o->{steps_window} = $w;
-}
-
-#------------------------------------------------------------------------------
-sub create_logo_window {
- my ($o) = @_;
-
- gtkdestroy($o->{logo_window});
- my $w = bless {}, 'my_gtk';
- $w->{rwindow} = $w->{window} = new Gtk::Window;
- $w->{rwindow}->set_uposition($::stepswidth, 0);
- $w->{rwindow}->set_usize($::logowidth, $::logoheight);
- $w->{rwindow}->set_name("logo");
- $w->{rwindow}->set_title('skip');
- $w->show;
- my $file = $o->{meta_class} eq 'desktop' ? "logo-mandrake-Desktop.png" : "logo-mandrake.png";
- $o->{meta_class} eq 'firewall' and $file = "logo-mandrake-Firewall.png";
- -r $file or $file = "$ENV{SHARE_PATH}/$file";
- -r $file and gtkadd($w->{window}, gtkpng($file));
- $o->{logo_window} = $w;
-}
-
-#------------------------------------------------------------------------------
-sub init_sizes() {
- ($::rootheight, $::rootwidth) = my_gtk::gtkroot()->get_size;
- $::live and $::rootheight -= 80;
- #- ($::rootheight, $::rootwidth) = (min(768, $::rootheight), min(1024, $::rootwidth));
- ($::stepswidth, $::stepsheight) = (145, $::rootheight);
- ($::logowidth, $::logoheight) = ($::rootwidth - $::stepswidth, 40);
- ($::helpwidth, $::helpheight) = ($::rootwidth - $::stepswidth, 104);
- ($::windowwidth, $::windowheight) = ($::rootwidth - $::stepswidth, $::rootheight - $::helpheight - $::logoheight);
-}
-
-#------------------------------------------------------------------------------
-sub createXconf {
- my ($file, $mouse_type, $mouse_dev, $wacom_dev) = @_;
-
- devices::make("/dev/kbd") if arch() =~ /^sparc/; #- used by Xsun style server.
- symlinkf(devices::make($mouse_dev), "/dev/mouse");
-
- #- 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");
-
-if (arch() =~ /^ia64/) {
- require Xconfigurator;
- my ($card) = Xconfigurator::probe_cards();
- Xconfigurator::add_to_card__using_Cards($card, $card->{type}) if $card && $card->{type};
- output($file, <<END);
-
-Section "Files"
- FontPath "/usr/X11R6/lib/X11/fonts:unscaled"
-EndSection
-
-Section "InputDevice"
- Identifier "Keyboard"
- Driver "Keyboard"
- Option "XkbDisable"
- Option "XkbModel" "pc105"
- Option "XkbLayout" ""
-EndSection
-
-Section "InputDevice"
- Identifier "Mouse"
- Driver "mouse"
- Option "Protocol" "$mouse_type"
- Option "Device" "/dev/mouse"
-EndSection
-
-Section "Monitor"
- Identifier "monitor"
- HorizSync 31.5-35.5
- VertRefresh 50-70
-EndSection
-
-Section "Device"
- Identifier "device"
- Driver "$card->{driver}"
-EndSection
-
-Section "Screen"
- Identifier "screen"
- Device "device"
- Monitor "monitor"
- DefaultColorDepth 16
- Subsection "Display"
- Depth 16
- Modes "800x600" "640x480"
- EndSubsection
-EndSection
-
-Section "ServerLayout"
- Identifier "layout"
- Screen "screen"
- InputDevice "Mouse" "CorePointer"
- InputDevice "Keyboard" "CoreKeyboard"
-EndSection
-
-END
-
-
-}
-else
- {
-
- my $wacom;
- if ($wacom_dev) {
- my $dev = devices::make($wacom_dev);
- $wacom = <<END;
-Section "Module"
- Load "xf86Wacom.so"
-EndSection
-
-Section "XInput"
- SubSection "WacomStylus"
- Port "$dev"
- AlwaysCore
- EndSubSection
- SubSection "WacomCursor"
- Port "$dev"
- AlwaysCore
- EndSubSection
- SubSection "WacomEraser"
- Port "$dev"
- AlwaysCore
- EndSubSection
-EndSection
-END
- }
-
- output($file, <<END);
-Section "Files"
- FontPath "/usr/X11R6/lib/X11/fonts:unscaled"
-EndSection
-
-Section "Keyboard"
- Protocol "Standard"
- XkbDisable
-EndSection
-
-Section "Pointer"
- Protocol "$mouse_type"
- Device "/dev/mouse"
- ZAxisMapping 4 5
-EndSection
-
-$wacom
-
-Section "Monitor"
- Identifier "monitor"
- HorizSync 31.5-35.5
- VertRefresh 50-70
- ModeLine "640x480" 25.175 640 664 760 800 480 491 493 525
- ModeLine "640x480" 28.3 640 664 760 800 480 491 493 525
- ModeLine "800x600" 36 800 824 896 1024 600 601 603 625
-EndSection
-
-
-Section "Device"
- Identifier "Generic VGA"
- Chipset "generic"
-EndSection
-
-Section "Device"
- Identifier "svga"
-EndSection
-
-Section "Screen"
- Driver "vga16"
- Device "Generic VGA"
- Monitor "monitor"
- Subsection "Display"
- Modes "640x480"
- EndSubsection
-EndSection
-
-Section "Screen"
- Driver "fbdev"
- Device "Generic VGA"
- Monitor "monitor"
- Subsection "Display"
- Depth 16
- Modes "default"
- EndSubsection
-EndSection
-
-Section "Screen"
- Driver "svga"
- Device "svga"
- Monitor "monitor"
- Subsection "Display"
- Depth 16
- Modes "800x600" "640x480"
- EndSubsection
-EndSection
-
-Section "Screen"
- Driver "accel"
- Device "svga"
- Monitor "monitor"
- Subsection "Display"
- Depth 16
- Modes "800x600" "640x480"
- EndSubsection
-EndSection
-END
-}
-}
-
-1;
diff --git a/perl-install/install_interactive.pm b/perl-install/install_interactive.pm
deleted file mode 100644
index 53c92d2ed..000000000
--- a/perl-install/install_interactive.pm
+++ /dev/null
@@ -1,272 +0,0 @@
-package install_interactive; # $Id$
-
-use diagnostics;
-use strict;
-
-use vars;
-
-use common;
-use partition_table qw(:types);
-use partition_table::raw;
-use detect_devices;
-use install_steps;
-use devices;
-use fsedit;
-use log;
-use fs;
-
-
-sub tellAboutProprietaryModules {
- my ($o) = @_;
- my @l = grep {$_} map { $_->{driver} =~ /^Bad:(.*)/ && $1 } detect_devices::probeall();
- $o->ask_warn('',
-_("Some hardware on your computer needs ``proprietary'' drivers to work.
-You can find some information about them at: %s", join(", ", @l))) if @l;
-}
-
-#- 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) = @_;
- $mb <= $min >> 11 and return $min;
- $mb >= $max >> 11 and return $max;
- $mb * 2048;
-}
-
-sub partition_with_diskdrake {
- my ($o, $all_hds, $nowizard) = @_;
- my $ok;
-
- $o->set_help('partition_with_diskdrake');
- do {
- $ok = 1;
- require diskdrake::interactive;
- {
- local $::expert = $::expert;
- diskdrake::interactive::main($o, $all_hds, $nowizard);
- }
- if (delete $o->{wizard}) {
- partitionWizard($o, 'nodiskdrake') or redo;
- return 1;
- }
- my @fstab = fsedit::get_all_fstab($all_hds);
-
- unless (fsedit::get_root_(\@fstab)) {
- $ok = 0;
- $o->ask_okcancel('', _("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) or return;
- }
- if (!grep { isSwap($_) } @fstab) {
- $o->ask_warn('', _("You must have a swap partition")), $ok=0 if !$::expert;
- $ok &&= $::expert || $o->ask_okcancel('', _("You don't have a swap partition.\n\nContinue anyway?"));
- }
- if (arch() =~ /ia64/ && !fsedit::has_mntpoint("/boot/efi", $all_hds)) {
- $o->ask_warn('', _("You must have a FAT partition mounted in /boot/efi"));
- $ok = '';
- }
- } until $ok;
- 1;
-}
-
-sub partitionWizardSolutions {
- my ($o, $all_hds, $fstab, $readonly) = @_;
- my $hds = $all_hds->{hds};
- my @wizlog;
- my (@solutions, %solutions);
-
- my $min_linux = 400 << 11;
- my $max_linux = 3000 << 11;
- my $min_swap = 50 << 11;
- my $max_swap = 300 << 11;
- my $min_freewin = 100 << 11;
-
- # each solution is a [ score, text, function ], where the function retunrs true if succeeded
-
- my @good_hds = grep { $_->can_raw_add } @$hds;
- if (fsedit::free_space(@good_hds) > $min_linux and !$readonly) {
- $solutions{free_space} = [ 20, _("Use free space"), sub { fsedit::auto_allocate($all_hds); 1 } ]
- } else {
- push @wizlog, _("Not enough free space to allocate new partitions") . ": " .
- (@good_hds ?
- fsedit::free_space(@good_hds) . " < $min_linux" :
- "no harddrive on which partitions can be added") if !$readonly;
- }
-
- if (my @truefs = grep { isTrueFS($_) } @$fstab) {
- #- value twice the ext2 partitions
- $solutions{existing_part} = [ 6 + @truefs + @$fstab, _("Use existing partitions"), sub { $o->ask_mntpoint_s($fstab) } ]
- } else {
- push @wizlog, _("There is no existing partition to use");
- }
-
- my @fats = grep { isFat($_) } @$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, _("Use the Windows partition for loopback"),
- sub {
- my ($s_root, $s_swap);
- my $part = $o->ask_from_listf('', _("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;
- $o->ask_from('', _("Choose the sizes"), [
- { label => _("Root partition size in MB: "), val => \$s_root, min => $min_linux >> 11, max => min($part->{free} - $max_swap, $max_linux) >> 11, type => 'range' },
- { label => _("Swap partition size in MB: "), val => \$s_swap, min => $min_swap >> 11, max => $max_swap >> 11, type => 'range' },
- ]) or return;
- push @{$part->{loopback}},
- { type =>0x483, loopback_file => '/lnx4win/linuxsys.img', mntpoint => '/', size => $s_root << 11, loopback_device => $part, notFormatted => 1 },
- { type => 0x82, loopback_file => '/lnx4win/swapfile', mntpoint => 'swap', size => $s_swap << 11, loopback_device => $part, notFormatted => 1 };
- fsedit::recompute_loopbacks($all_hds);
- 1;
- } ];
- $solutions{resize_fat} =
- [ 6 - @fats, _("Use the free space on the Windows partition"),
- sub {
- $o->set_help('resizeFATChoose');
- my $part = $o->ask_from_listf('', _("Which partition do you want to resize?"), \&partition_table::description, \@ok_forloopback) or return;
- $o->set_help('resizeFATWait');
- my $w = $o->wait_message(_("Resizing"), _("Resizing Windows partition"));
- require resize_fat::main;
- my $resize_fat = eval { resize_fat::main->new($part->{device}, devices::make($part->{device})) };
- $@ and die _("The FAT resizer is unable to handle your partition,
-the following error occured: %s", $@);
- my $min_win = $resize_fat->min_size;
- $part->{size} > $min_linux + $min_swap + $min_freewin + $min_win or die _("Your Windows partition is too fragmented. Please reboot your computer under Windows, run the ``defrag'' utility, then restart the Mandrake Linux installation.");
- $o->ask_okcancel('', _("WARNING!
-
-DrakX will now resize your Windows partition. Be careful:
-this operation is dangerous. If you have not already done
-so, you should first exit the installation, run scandisk
-under Windows (and optionally run defrag), then restart the
-installation. You should also backup your data.
-When sure, press Ok.")) or return;
-
- my $mb_size = $part->{size} >> 11;
- $o->ask_from('', _("Which size do you want to keep for Windows on"), [
- { label => _("partition %s", partition_table::description($part)), val => \$mb_size, min => $min_win >> 11, max => ($part->{size} - $min_linux - $min_swap) >> 11, type => 'range' },
- ]) or return;
-
- my $size = from_Mb($mb_size, $min_win, $part->{size});
-
- local *log::l = sub { $w->set(join(' ', @_)) };
- eval { $resize_fat->resize($size) };
- $@ and die _("FAT resizing failed: %s", $@);
-
- $part->{size} = $size;
- $part->{isFormatted} = 1;
-
- my ($hd) = fsedit::part2hd($part, $all_hds);
- $hd->{isDirty} = $hd->{needKernelReread} = 1;
- $hd->adjustEnd($part);
- partition_table::adjust_local_extended($hd, $part);
- partition_table::adjust_main_extended($hd);
-
- fsedit::auto_allocate($all_hds);
- 1;
- } ] if !$readonly;
- } else {
- push @wizlog, _("There is no FAT partition to resize or 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 (@$fstab && !$readonly) {
- $solutions{wipe_drive} =
- [ 10, fsedit::is_one_big_fat($hds) ? _("Remove Windows(TM)") : _("Erase entire disk"),
- sub {
- $o->set_help('takeOverHdChoose');
- my $hd = $o->ask_from_listf('', _("You have more than one hard drive, which one do you install linux on?"),
- \&partition_table::description, $hds) or return;
- $o->set_help('takeOverHdConfirm');
- $o->ask_okcancel('', _("ALL existing partitions and their data will be lost on drive %s", partition_table::description($hd))) or return;
- partition_table::raw::zero_MBR($hd);
- fsedit::auto_allocate($all_hds);
- 1;
- } ];
- }
-
- if (!$readonly) {
- $solutions{diskdrake} = [ 0, _("Custom disk partitioning"), sub { partition_with_diskdrake($o, $all_hds, 'nowizard') } ];
- }
-
- $solutions{fdisk} =
- [ -10, _("Use fdisk"), sub {
- $o->enter_console;
- foreach (@$hds) {
- print "\n" x 10, _("You can now partition %s.
-When you are done, don't 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});
- }
- waitpid($pid, 0);
- }
- $o->leave_console;
- 0;
- } ] if $o->{partitioning}{fdisk};
-
- log::l("partitioning wizard log:\n", (map { ">>wizlog>>$_\n" } @wizlog));
- %solutions;
-}
-
-sub partitionWizard {
- my ($o, $nodiskdrake) = @_;
-
- $o->set_help('doPartitionDisks');
-
- my %solutions = partitionWizardSolutions($o, $o->{all_hds}, $o->{fstab}, $o->{partitioning}{readonly});
- if ($o->{lnx4win}) {
- if ($solutions{loopback}) {
- %solutions = (loopback => $solutions{loopback});
- } else {
- $o->ask_warn('', _("You don't have enough free space on your Windows partition")) if grep { isFat($_) } @{$o->{fstab}}
- }
- }
-
- delete $solutions{diskdrake} if $nodiskdrake;
-
- my @solutions = sort { $b->[0] <=> $a->[0] } values %solutions;
-
- my $level = $::expert ? -9999 : 0;
- my @sol = grep { $_->[0] >= $level } @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('', _("I can't find any room for installing")), die 'already displayed';
-
- my $ok; while (!$ok) {
- log::l('HERE: ', join(',', map { $_->[1] } @solutions));
- if (my $sol = $o->ask_from_listf('', _("The DrakX Partitioning wizard found the following solutions:"), sub { $_[0][1] }, \@solutions)) {
- log::l("partitionWizard calling solution $sol->[1]");
- eval { $ok = $sol->[2]->() };
- die if $@ =~ /setstep/;
- $ok &&= !$@;
- $@ and $o->ask_warn('', _("Partitioning failed: %s", $@));
- } else {
- $nodiskdrake ? return : die "setstep setupSCSI\n";
- }
- }
- 1;
-}
-
-sub upNetwork {
- my ($o, $pppAvoided) = @_;
- my $w = $o->wait_message('', _("Bringing up the network"));
- install_steps::upNetwork($o, $pppAvoided);
-}
-sub downNetwork {
- my ($o, $pppOnly) = @_;
- my $w = $o->wait_message('', _("Bringing down the network"));
- install_steps::downNetwork($o, $pppOnly);
-}
-
-
-
-1;
diff --git a/perl-install/install_steps.pm b/perl-install/install_steps.pm
deleted file mode 100644
index b4f1fb97d..000000000
--- a/perl-install/install_steps.pm
+++ /dev/null
@@ -1,1071 +0,0 @@
-package install_steps; # $Id$
-
-use diagnostics;
-use strict;
-use vars qw(@filesToSaveForUpgrade @filesNewerToUseAfterUpgrade @ISA);
-
-#-######################################################################################
-#- misc imports
-#-######################################################################################
-use common;
-use install_any qw(:all);
-use partition_table qw(:types);
-use detect_devices;
-use modules;
-use run_program;
-use lang;
-use keyboard;
-use fsedit;
-use loopback;
-use pkgs;
-use any;
-use log;
-use fs;
-
-@filesToSaveForUpgrade = qw(
-/etc/ld.so.conf /etc/fstab /etc/hosts /etc/conf.modules /etc/modules.conf
-);
-
-@filesNewerToUseAfterUpgrade = qw(
-/etc/profile
-);
-
-#-######################################################################################
-#- OO Stuff
-#-######################################################################################
-sub new($$) {
- my ($type, $o) = @_;
-
- bless $o, ref $type || $type;
- return $o;
-}
-
-#-######################################################################################
-#- In/Out Steps Functions
-#-######################################################################################
-sub enteringStep {
- my ($o, $step) = @_;
- log::l("starting step `$step'");
-}
-sub leavingStep {
- my ($o, $step) = @_;
- log::l("step `$step' finished");
-
- if (-d "$o->{prefix}/root/drakx") {
- eval { cp_af("/tmp/ddebug.log", "$o->{prefix}/root/drakx") };
- output(install_any::auto_inst_file(), install_any::g_auto_install(1));
- }
-
- for (my $s = $o->{steps}{first}; $s; $s = $o->{steps}{$s}{next}) {
- #- the reachability property must be recomputed each time to take
- #- into account failed step.
- next if $o->{steps}{$s}{done} && !$o->{steps}{$s}{redoable};
-
- my $reachable = 1;
- if (my $needs = $o->{steps}{$s}{needs}) {
- my @l = ref $needs ? @$needs : $needs;
- $reachable = min(map { $o->{steps}{$_}{done} || 0 } @l);
- }
- $o->{steps}{$s}{reachable} = 1 if $reachable;
- }
- $o->{steps}{$step}{reachable} = $o->{steps}{$step}{redoable};
-
- while (my $f = shift @{$o->{steps}{$step}{toBeDone} || []}) {
- eval { &$f() };
- $o->ask_warn(_("Error"), [
-_("An error occurred, but I don't know how to handle it nicely.
-Continue at your own risk."), $@ ]) if $@;
- }
-}
-
-sub errorInStep($$) { print "error :(\n"; c::_exit(1) }
-sub kill_action {}
-sub set_help { 1 }
-
-#-######################################################################################
-#- Steps Functions
-#-######################################################################################
-#------------------------------------------------------------------------------
-sub selectLanguage {
- my ($o) = @_;
- lang::set($o->{lang}, !$o->isa('interactive::gtk'));
- $o->{langs} ||= { $o->{lang} => 1 };
-
- log::l("selectLanguage: pack_langs ", lang::pack_langs($o->{langs}));
-
- if ($o->{keyboard_unsafe} || !$o->{keyboard}) {
- $o->{keyboard_unsafe} = 1;
- $o->{keyboard} = keyboard::lang2keyboard($o->{lang});
- keyboard::setup($o->{keyboard}) if !$::live;
- }
-
- addToBeDone {
- lang::write_langs($o->{prefix}, $o->{langs});
- } 'formatPartitions' unless $::g_auto_install;
- addToBeDone {
- lang::write($o->{prefix}, $o->{lang});
- } 'installPackages' unless $::g_auto_install;
-}
-#------------------------------------------------------------------------------
-sub selectKeyboard {
- my ($o) = @_;
- keyboard::setup($o->{keyboard});
-
- addToBeDone {
- keyboard::write($o->{prefix}, $o->{keyboard}, lang::lang2charset($o->{lang}));
- } 'installPackages' unless $::g_auto_install;
-}
-#------------------------------------------------------------------------------
-sub acceptLicence {}
-sub selectPath {}
-#------------------------------------------------------------------------------
-sub selectInstallClass {}
-#------------------------------------------------------------------------------
-sub setupSCSI {
- my ($o) = @_;
- modules::configure_pcmcia($o->{pcmcia}) if $o->{pcmcia};
- modules::load_ide();
- modules::load_category('disk/scsi|hardware_raid');
-}
-
-#------------------------------------------------------------------------------
-sub doPartitionDisksBefore {
- my ($o) = @_;
- eval {
- close *pkgs::LOG;
- eval { fs::umount("$o->{prefix}/proc") };
- eval { fs::umount_all($o->{fstab}, $o->{prefix}) };
- eval { sleep 1; fs::umount_all($o->{fstab}, $o->{prefix}) } if $@; #- HACK
- } if $o->{fstab} && !$::testing && !$::live;
-}
-
-#------------------------------------------------------------------------------
-sub doPartitionDisksAfter {
- my ($o) = @_;
-
- if (!$::testing) {
- my $hds = $o->{all_hds}{hds};
- partition_table::write($_) foreach @$hds;
- $_->{rebootNeeded} and $o->rebootNeeded foreach @$hds;
- }
-
- fs::set_removable_mntpoints($o->{all_hds});
- fs::set_all_default_options($o->{all_hds}, $o->{useSupermount}, $o->{security}, lang::fs_options($o->{lang}))
- if !$o->{isUpgrade};
-
- $o->{fstab} = [ fsedit::get_all_fstab($o->{all_hds}) ];
- fsedit::get_root_($o->{fstab}) or die "Oops, no root partition";
-
- if (arch() =~ /ppc/ && detect_devices::get_mac_generation =~ /NewWorld/) {
- die "Need bootstrap partition to boot system!" if !(defined $partition_table::mac::bootstrap_part);
- }
-
- if (arch() =~ /ia64/ && !fsedit::has_mntpoint("/boot/efi", $o->{all_hds})) {
- die _("You must have a FAT partition mounted in /boot/efi");
- }
-
- if ($o->{partitioning}{use_existing_root}) {
- #- ensure those partitions are mounted so that they are not proposed in choosePartitionsToFormat
- fs::mount_part($_, $o->{prefix}) foreach (sort { $a->{mntpoint} cmp $b->{mntpoint} }
- grep { $_->{mntpoint} && maybeFormatted($_) } @{$o->{fstab}});
- }
-
- cat_("/proc/mounts") =~ m|(\S+)\s+/tmp/image nfs| &&
- !grep { $_->{mntpoint} eq "/mnt/nfs" } @{$o->{all_hds}{nfss}} and
- push @{$o->{all_hds}{nfss}}, { type => 'nfs', mntpoint => "/mnt/nfs", device => $1, options => "noauto,ro,nosuid,soft,rsize=8192,wsize=8192" };
-}
-
-#------------------------------------------------------------------------------
-sub doPartitionDisks {
- my ($o) = @_;
-
- install_any::getHds($o);
-
- if ($o->{partitioning}{use_existing_root} || $o->{isUpgrade}) {
- # either one root is defined (and all is ok), or we take the first one we find
- my $p = fsedit::get_root_($o->{fstab}) || first(install_any::find_root_parts($o->{fstab}, $o->{prefix})) or die;
- install_any::use_root_part($o->{all_hds}, $p, $o->{prefix});
- }
- if ($o->{partitioning}{auto_allocate}) {
- fsedit::auto_allocate($o->{all_hds}, $o->{partitions});
- }
-}
-
-#------------------------------------------------------------------------------
-
-sub ask_mntpoint_s {
- my ($o, $fstab) = @_;
-
- #- TODO: set the mntpoints
-
- my %m; foreach (@$fstab) {
- my $m = $_->{mntpoint};
-
- next unless $m && $m ne 'swap'; #- there may be a lot of swap.
-
- $m{$m} and die _("Duplicate mount point %s", $m);
- $m{$m} = 1;
-
- #- in case the type does not correspond, force it to ext2
- $_->{type} = 0x83 if $m =~ m|^/| && !isFat($_) && !isTrueFS($_);
- }
- 1;
-}
-
-
-sub rebootNeeded($) {
- my ($o) = @_;
- log::l("Rebooting...");
- c::_exit(0);
-}
-
-sub choosePartitionsToFormat($$) {
- my ($o, $fstab) = @_;
-
- foreach (@$fstab) {
- $_->{mntpoint} = "swap" if isSwap($_);
- $_->{mntpoint} or next;
-
- add2hash_($_, { toFormat => $_->{notFormatted} });
- $_->{toFormatUnsure} = member($_->{mntpoint}, '/', '/usr');
-
- if (!$_->{toFormat}) {
- my $t = fsedit::typeOfPart($_->{device});
- $_->{toFormatUnsure} ||=
- #- if detected dos/win, it's not precise enough to just compare the types (too many of them)
- (!$t || isOtherAvailableFS({ type => $t }) ? !isOtherAvailableFS($_) : $t != $_->{type});
- }
- }
-}
-
-sub formatMountPartitions {
- my ($o) = @_;
- fs::formatMount_all($o->{all_hds}{raids}, $o->{fstab}, $o->{prefix});
-}
-
-#------------------------------------------------------------------------------
-sub setPackages {
- my ($o, $rebuild_needed) = @_;
-
- install_any::setPackages($o, $rebuild_needed);
- if ($rebuild_needed) {
- pkgs::selectPackagesToUpgrade($o->{packages}, $o->{prefix}, $o->{base}, $o->{toRemove}, $o->{toSave});
- } else {
- pkgs::selectPackagesAlreadyInstalled($o->{packages}, $o->{prefix});
- }
-}
-
-sub choosePackages {
- my ($o, $packages, $compssUsers, $first_time) = @_;
-
- #- now for upgrade, package that must be upgraded are
- #- selected first, after is used the same scheme as install.
-
- #- make sure we kept some space left for available else the system may
- #- not be able to start (xfs at least).
- my $available = install_any::getAvailableSpace($o);
- my $availableCorrected = pkgs::invCorrectSize($available / sqr(1024)) * sqr(1024);
- log::l(sprintf "available size %s (corrected %s)", formatXiB($available), formatXiB($availableCorrected));
-
- add2hash_($o, { compssListLevel => 5 }) if !$::auto_install;
-
- #- avoid destroying user selection of packages but only
- #- for expert, as they may have done individual selection before.
- if ($first_time || !$::expert) {
- exists $o->{compssListLevel}
- and pkgs::setSelectedFromCompssList($packages, $o->{compssUsersChoice}, $o->{compssListLevel}, $availableCorrected);
- }
- $availableCorrected;
-}
-
-sub beforeInstallPackages {
- my ($o) = @_;
-
- #- save these files in case of upgrade failure.
- if ($o->{isUpgrade}) {
- foreach (@filesToSaveForUpgrade) {
- unlink "$o->{prefix}/$_.mdkgisave";
- if (-e "$o->{prefix}/$_") {
- eval { cp_af("$o->{prefix}/$_", "$o->{prefix}/$_.mdkgisave") };
- }
- }
- foreach (@filesNewerToUseAfterUpgrade) {
- unlink "$o->{prefix}/$_.rpmnew";
- }
- }
-
- #- some packages need such files for proper installation.
- install_any::write_fstab($o);
-
- require network;
- network::add2hosts("$o->{prefix}/etc/hosts", "localhost.localdomain", "127.0.0.1");
-
- log::l("setting excludedocs to $o->{excludedocs}");
- substInFile { s/%_excludedocs.*//; $_ .= "%_excludedocs yes\n" if eof && $o->{excludedocs} } "$o->{prefix}/etc/rpm/macros";
-}
-
-sub pkg_install {
- my ($o, @l) = @_;
- log::l("selecting packages");
- require pkgs;
- if ($::testing) {
- log::l("selecting package \"$_\"") foreach @l;
- } else {
- $o->{packages}{rpmdb} ||= pkgs::rpmDbOpen($o->{prefix});
- pkgs::selectPackage($o->{packages}, pkgs::packageByName($o->{packages}, $_) || die "$_ rpm not found") foreach @l;
- }
- my @toInstall = pkgs::packagesToInstall($o->{packages});
- if (@toInstall) {
- log::l("installing packages");
- $o->installPackages;
- } else {
- log::l("all packages selected are already installed, nothing to do")
- }
-}
-
-sub pkg_install_if_requires_satisfied {
- my ($o, @l) = @_;
- require pkgs;
- $o->{packages}{rpmdb} ||= pkgs::rpmDbOpen($o->{prefix});
- foreach (@l) {
- my %newSelection;
- my $pkg = pkgs::packageByName($o->{packages}, $_) || die "$_ rpm not found";
- pkgs::selectPackage($o->{packages}, $pkg, 0, \%newSelection);
- if (scalar(keys %newSelection) == 1) {
- pkgs::selectPackage($o->{packages}, $pkg);
- } else {
- log::l("pkg_install_if_requires_satisfied: not selecting $_ because of ", join(", ", keys %newSelection));
- }
- }
- $o->installPackages;
-}
-
-sub installPackages($$) { #- complete REWORK, TODO and TOCHECK!
- my ($o) = @_;
- my $packages = $o->{packages};
-
- #- this method is always called, go here to close still opened rpm db.
- delete $packages->{rpmdb};
-
- if (@{$o->{toRemove} || []}) {
- #- hack to ensure proper upgrade of packages from other distribution,
- #- as release number are not mandrake based. this causes save of
- #- important files and restore them after.
- foreach (@{$o->{toSave} || []}) {
- if (-e "$o->{prefix}/$_") {
- eval { cp_af("$o->{prefix}/$_", "$o->{prefix}/$_.mdkgisave") };
- }
- }
- pkgs::remove($o->{prefix}, $o->{toRemove});
- foreach (@{$o->{toSave} || []}) {
- if (-e "$o->{prefix}/$_.mdkgisave") {
- renamef("$o->{prefix}/$_.mdkgisave", "$o->{prefix}/$_");
- }
- }
- $o->{toSave} = [];
-
- #- hack for compat-glibc to upgrade properly :-(
- if (pkgs::packageByName($packages, 'compat-glibc')->flag_selected &&
- !pkgs::packageByName($packages, 'compat-glibc')->flag_installed) {
- rename "$o->{prefix}/usr/i386-glibc20-linux", "$o->{prefix}/usr/i386-glibc20-linux.mdkgisave";
- }
- }
-
- #- small transaction will be built based on this selection and depslist.
- my @toInstall = pkgs::packagesToInstall($packages);
-
- my $time = time;
- $ENV{DURING_INSTALL} = 1;
- pkgs::install($o->{prefix}, $o->{isUpgrade}, \@toInstall, $packages);
- delete $ENV{DURING_INSTALL};
- run_program::rooted_or_die($o->{prefix}, 'ldconfig') unless $::g_auto_install;
- log::l("Install took: ", formatTimeRaw(time - $time));
- install_any::log_sizes($o);
- scalar(@toInstall); #- return number of packages installed.
-}
-
-sub afterInstallPackages($) {
- my ($o) = @_;
-
- return if $::g_auto_install;
-
- die _("Some important packages didn't get installed properly.
-Either your cdrom drive or your cdrom is defective.
-Check the cdrom on an installed computer using \"rpm -qpl Mandrake/RPMS/*.rpm\"
-") if grep { m|read failed: Input/output error| } cat_("$o->{prefix}/root/drakx/install.log");
-
- if (arch() !~ /^sparc/) { #- TODO restore it as may be needed for sparc
- -x "$o->{prefix}/usr/bin/dumpkeys" or $::testing or die
-"Some important packages didn't get installed properly.
-
-Please switch to console 2 (using ctrl-alt-f2)
-and look at the log file /tmp/ddebug.log
-
-Consoles 1,3,4,7 may also contain interesting information";
- }
-
- #- why not? cuz weather is nice today :-) [pixel]
- common::sync(); common::sync();
-
- my $have_devfsd = do {
- my $p = pkgs::packageByName($o->{packages}, 'devfsd');
- $p && $p->flag_installed
- };
- if ($have_devfsd) {
- require bootloader;
- bootloader::may_append($o->{bootloader}, devfs => 'mount');
- }
-
- #- generate /etc/lvmtab needed for rc.sysinit
- run_program::rooted($o->{prefix}, 'vgscan') if -e '/etc/lvmtab';
-
- #- configure PCMCIA services if needed.
- modules::write_pcmcia($o->{prefix}, $o->{pcmcia});
-
- #- for mandrake_firstime
- touch "$o->{prefix}/var/lock/TMP_1ST";
-
- any::config_dvd($o->{prefix}, $have_devfsd);
- any::config_mtools($o->{prefix});
-
- any::writeandclean_ldsoconf($o->{prefix});
-
- #- make sure wins is disabled in /etc/nsswitch.conf
- #- else if eth0 is not existing, glibc segfaults.
- substInFile { s/\s*wins// if /^\s*hosts\s*:/ } "$o->{prefix}/etc/nsswitch.conf";
-
- #- make sure some services have been enabled (or a catastrophic restart will occur).
- #- these are normally base package post install scripts or important services to start.
- run_program::rooted($o->{prefix}, "chkconfig", "--add", $_) foreach
- qw(random netfs network rawdevices sound kheader usb keytable syslog crond portmap);
-
- if ($o->{mouse}{device} =~ /ttyS/) {
- log::l("disabling gpm for serial mice (doesn't get along nicely with X)");
- run_program::rooted($o->{prefix}, "chkconfig", "--del", "gpm")
- }
-
- #- call update-menus at the end of package installation
- run_program::rooted($o->{prefix}, "update-menus");
-
- if ($o->{pcmcia}) {
- substInFile { s/.*(TaskBarShowAPMStatus).*/$1=1/ } "$o->{prefix}/usr/lib/X11/icewm/preferences";
- eval { cp_af("$o->{prefix}/usr/share/applnk/System/kapm.kdelnk",
- "$o->{prefix}/etc/skel/Desktop/Autostart/kapm.kdelnk") };
- }
-
- $o->install_urpmi;
-
- if ($o->{lang} =~ /^(zh_TW|th|vi|be|bg)/) {
- #- skip since we don't have the right font (it badly fails at least for zh_TW)
- } elsif (my $LANG = lang::lang2LANG($o->{lang})) {
- my $kdmrc = "$o->{prefix}/usr/share/config/kdm/kdmrc";
-
- my $kde_charset = lang::charset2kde_charset(lang::lang2charset($o->{lang}));
- my $welcome = c::to_utf8(_("Welcome to %s", '%n'));
- substInFile {
- s/^(GreetString)=.*/$1=$welcome/;
- s/^(Language)=.*/$1=$LANG/;
- if (!member($kde_charset, 'iso8859-1', 'iso8859-15')) {
- #- don't keep the default for those
- s/^(StdFont)=.*/$1=*,12,5,$kde_charset,50,0/;
- s/^(FailFont)=.*/$1=*,12,5,$kde_charset,75,0/;
- s/^(GreetFont)=.*/$1=*,24,5,$kde_charset,50,0/;
- }
- } "$o->{prefix}/usr/share/config/kdm/kdmrc";
-
- }
- install_any::disable_user_view($o->{prefix}) if $o->{security} >= 3 || $o->{authentication}{NIS};
- run_program::rooted($o->{prefix}, "kdeDesktopCleanup");
-
- foreach (list_skels($o->{prefix}, '.kde/share/config/kfmrc')) {
- my $found;
- substInFile {
- $found ||= /KFM Misc Defaults/;
- $_ .=
-"[KFM Misc Defaults]
-GridWidth=85
-GridHeight=70
-" if eof && !$found;
- } $_
- }
-
- #- move some file after an upgrade that may be seriously annoying.
- #- and rename saved files to .mdkgiorig.
- if ($o->{isUpgrade}) {
- my $pkg = pkgs::packageByName($o->{packages}, 'rpm');
- $pkg && ($pkg->flag_selected || $pkg->flag_installed) && $pkg->compare(">= 4.0") and pkgs::cleanOldRpmDb($o->{prefix});
-
- log::l("moving previous desktop files that have been updated to Trash of each user");
- install_any::kdemove_desktop_file($o->{prefix});
-
- foreach (@filesToSaveForUpgrade) {
- renamef("$o->{prefix}/$_.mdkgisave", "$o->{prefix}/$_.mdkgiorig")
- if -e "$o->{prefix}$_.mdkgisave";
- }
-
- foreach (@filesNewerToUseAfterUpgrade) {
- if (-e "$o->{prefix}/$_.rpmnew" && -e "$o->{prefix}/$_") {
- renamef("$o->{prefix}/$_", "$o->{prefix}/$_.mdkgiorig");
- renamef("$o->{prefix}/$_.rpmnew", "$o->{prefix}/$_");
- }
- }
- }
-
- if ($o->{blank} || $o->{updatemodules}) {
- my @l = detect_devices::floppies_dev();
-
- foreach (qw(blank updatemodules)) {
- $o->{$_} eq "1" and $o->{$_} = $l[0] || die _("No floppy drive available");
- }
-
- $o->{blank} and $o->copyKernelFromFloppy();
- $o->{updatemodules} and $o->updateModulesFromFloppy();
- }
-}
-
-sub copyKernelFromFloppy {
- my ($o) = @_;
- return if $::testing || !$o->{blank};
-
- fs::mount($o->{blank}, "/floppy", "vfat", 0);
- eval { cp_af("/floppy/vmlinuz", "$o->{prefix}/boot/vmlinuz-default") };
- if ($@) {
- log::l("copying of /floppy/vmlinuz from blank modified disk failed: $@");
- }
- fs::umount("/floppy");
-}
-
-sub install_urpmi {
- my ($o) = @_;
-
- my $pkg = pkgs::packageByName($o->{packages}, 'urpmi');
- if ($pkg && ($pkg->flag_selected || $pkg->flag_installed)) {
- install_any::install_urpmi($o->{prefix},
- $::oem ? 'cdrom' : $o->{method}, #- HACK
- $o->{packages}{mediums});
- pkgs::saveCompssUsers($o->{prefix}, $o->{packages}, $o->{compssUsers}, $o->{compssUsersSorted});
- }
-
-
-}
-
-sub updateModulesFromFloppy {
- my ($o) = @_;
- return if $::testing || !$o->{updatemodules};
-
- fs::mount($o->{updatemodules}, "/floppy", "ext2", 0);
- foreach (glob_("$o->{prefix}/lib/modules/*")) {
- my ($kernelVersion) = m,lib/modules/(\S*),;
- log::l("examining updated modules for kernel $kernelVersion");
- if (-d "/floppy/$kernelVersion") {
- my @src_files = glob_("/floppy/$kernelVersion/*");
- my @dest_files = split "\n", `chroot $o->{prefix} find /lib/modules`;
- foreach my $s (@src_files) {
- log::l("found updatable module $s");
- my ($sfile, $sext) = $s =~ /([^\/\.]*\.o)(?:\.gz|\.bz2)?$/;
- my $qsfile = quotemeta $sfile;
- my $qsext = quotemeta $sext;
- foreach my $target (@dest_files) {
- $target =~ /$qsfile/ or next;
- eval { cp_af($s, $target) };
- if ($@) {
- log::l("updating module $target by $s failed: $@");
- } else {
- log::l("updating module $target by $s");
- }
- if ($target !~ /$qsfile$qsext$/) {
- #- extension differ, first rename target file correctly,
- #- then uncompress source file, then compress it as expected.
- my ($basetarget, $text) = $target =~ /(.*?)(\.gz|\.bz2)$/;
- rename $target, "$basetarget$sext";
- $sext eq '.gz' and run_program::run("gzip", "-d", "$basetarget$sext");
- $sext eq '.bz2' and run_program::run("bzip2", "-d", "$basetarget$sext");
- $text eq '.gz' and run_program::run("gzip", $basetarget);
- $text eq '.bz2' and run_program::run("bzip2", $basetarget);
- }
- }
- }
- }
- }
- fs::umount("/floppy");
-}
-
-#------------------------------------------------------------------------------
-sub selectMouse($) {
- my ($o) = @_;
-}
-
-#------------------------------------------------------------------------------
-sub configureNetwork {
- my ($o) = @_;
- require network;
- network::configureNetwork2($o, $o->{prefix}, $o->{netc}, $o->{intf});
- if ($o->{method} =~ /ftp|http|nfs/) {
- $o->{netcnx}{type} = 'lan';
- foreach ("up", "down") {
- my $f = "$o->{prefix}/etc/sysconfig/network-scripts/net_cnx_$_";
- output $f, "\nif$_ eth0\n";
- chmod 0755, $f;
- }
- output "$o->{prefix}/etc/sysconfig/network-scripts/net_cnx_pg", "\n/usr/sbin/drakconnet\n";
- }
-}
-
-#------------------------------------------------------------------------------
-sub installCrypto {
- my ($o) = @_;
- my $u = $o->{crypto} or return; $u->{mirror} && $u->{packages} or return;
-
- upNetwork($o);
- require crypto;
- my @crypto_packages = crypto::getPackages($o->{prefix}, $o->{packages}, $u->{mirror});
- $o->pkg_install(@{$u->{packages}});
-}
-
-sub installUpdates {
- my ($o) = @_;
- my $u = $o->{updates} or return; $u->{updates} or return;
-
- upNetwork($o);
- require crypto;
- crypto::getPackages($o->{prefix}, $o->{packages}, $u->{mirror}) and
- $o->pkg_install(@{$u->{packages} || []});
-
- #- re-install urpmi with update security medium.
- $o->install_urpmi;
-}
-
-sub summary {
- my ($o) = @_;
- configureTimezone($o);
- configurePrinter($o) if $o->{printer};
-}
-
-#------------------------------------------------------------------------------
-sub configureTimezone {
- my ($o) = @_;
- install_any::preConfigureTimezone($o);
-
- $o->pkg_install('ntp') if $o->{timezone}{ntp};
-
- require timezone;
- timezone::write($o->{prefix}, $o->{timezone});
-}
-
-#------------------------------------------------------------------------------
-sub configureServices {
- my ($o) = @_;
- if ($o->{services}) {
- require services;
- services::doit($o, $o->{services}, $o->{prefix});
- }
-}
-#------------------------------------------------------------------------------
-sub configurePrinter {
- my($o) = @_;
- $o->do_pkgs->install('foomatic', 'printer-utils','printer-testpages',
- if_($o->do_pkgs->is_installed('gimp'), 'gimpprint'));
-
- require printer;
- eval { add2hash($o->{printer} ||= {}, printer::getinfo($o->{prefix})) }; #- get existing configuration.
-
- require printerdrake;
- printerdrake::install_spooler($o->{printer}, $o); #- not interactive...
-
- foreach (values %{$o->{printer}{configured} || {}}) {
- log::l("configuring printer queue " . $_->{queuedata}{queue} || $_->{QUEUE});
- #- when copy is so adulée (sorry french taste :-)
- #- and when there are some configuration in one place and in another place...
- $o->{printer}{currentqueue} = {};
- printer::copy_printer_params($_->{queuedata}, $o->{printer}{currentqueue});
- printer::copy_printer_params($_, $o->{printer});
- #- setup all configured queues, which is not the case interactively where
- #- only the working queue is setup on configuration.
- printer::configure_queue($o->{printer});
- }
-}
-
-#------------------------------------------------------------------------------
-sub setRootPassword {
- my ($o) = @_;
- my $p = $o->{prefix};
- my $u = $o->{superuser} ||= {};
- $o->{superuser}{name} = 'root';
- any::write_passwd_user($o->{prefix}, $o->{superuser}, $o->{authentication}{md5});
- delete $o->{superuser}{name};
-}
-
-#------------------------------------------------------------------------------
-
-sub addUser {
- my ($o) = @_;
- my $p = $o->{prefix};
- my $users = $o->{users} ||= [];
-
- my (%uids, %gids);
- foreach (glob_("$p/home")) { my ($u, $g) = (stat($_))[4,5]; $uids{$u} = 1; $gids{$g} = 1; }
-
- foreach (@$users) {
- $_->{home} ||= "/home/$_->{name}";
-
- my $u = $_->{uid} || ($_->{oldu} = (stat("$p$_->{home}"))[4]);
- my $g = $_->{gid} || ($_->{oldg} = (stat("$p$_->{home}"))[5]);
- #- search for available uid above 501 else initscripts may fail to change language for KDE.
- if (!$u || getpwuid($u)) { for ($u = 501; getpwuid($u) || $uids{$u}; $u++) {} }
- if (!$g ) { for ($g = 501; getgrgid($g) || $gids{$g}; $g++) {} }
-
- $_->{uid} = $u; $uids{$u} = 1;
- $_->{gid} = $g; $gids{$g} = 1;
-
- push @{$_->{groups} ||= []}, 'usb' if $o->{security} <= 3;
- }
-
- any::write_passwd_user($p, $_, $o->{authentication}{md5}) foreach @$users;
-
- local *F;
- open F, ">> $p/etc/group" or die "can't append to group file: $!";
- print F "$_->{name}:x:$_->{gid}:\n" foreach grep { ! getgrgid($_->{gid}) } @$users;
-
- foreach my $u (@$users) {
- if (! -d "$p$u->{home}") {
- my $mode = $o->{security} < 2 ? 0755 : 0750;
- eval { cp_af("$p/etc/skel", "$p$u->{home}") };
- if ($@) {
- log::l("copying of skel failed: $@"); mkdir("$p$u->{home}", $mode);
- } else {
- chmod $mode, "$p$u->{home}";
- }
- }
- require commands;
- eval { commands::chown_("-r", "$u->{uid}.$u->{gid}", "$p$u->{home}") }
- if $u->{uid} != $u->{oldu} || $u->{gid} != $u->{oldg};
- }
- any::addUsers($p, $users);
-
- $o->pkg_install("autologin") if $o->{autologin};
- any::set_autologin($p, $o->{autologin}, $o->{desktop});
-
- install_any::setAuthentication($o);
-
- install_any::disable_user_view($p) if @$users == ();
-}
-
-#------------------------------------------------------------------------------
-sub createBootdisk($) {
- my ($o) = @_;
- my $dev = $o->{mkbootdisk} or return;
-
- my @l = detect_devices::floppies_dev();
-
- $dev = shift @l || die _("No floppy drive available")
- if $dev eq "1"; #- special case meaning autochoose
-
- return if $::testing;
-
- require bootloader;
- bootloader::mkbootdisk($o->{prefix}, install_any::kernelVersion($o), $dev, $o->{bootloader}{perImageAppend});
- $o->{mkbootdisk} = $dev;
-}
-
-#------------------------------------------------------------------------------
-sub readBootloaderConfigBeforeInstall {
- my ($o) = @_;
- my ($image, $v);
-
- require bootloader;
- add2hash($o->{bootloader} ||= {}, bootloader::read($o->{prefix}, arch() =~ /sparc/ ? "/etc/silo.conf" : arch() =~ /ppc/ ? "/etc/yaboot.conf" : "/etc/lilo.conf"));
-
- #- since kernel or kernel-smp may not be upgraded, it should be checked
- #- if there is a need to update existing lilo.conf entries by following
- #- symlinks before kernel or other packages get installed.
- #- update everything that could be a filename (for following symlink).
- foreach my $e (@{$o->{bootloader}{entries}}) {
- while (my $v = readlink "$o->{prefix}/$e->{kernel_or_dev}") {
- $v = "/boot/$v" if $v !~ m|^/|; -e "$o->{prefix}$v" or last;
- log::l("renaming /boot/$e->{kernel_or_dev} entry by $v");
- $e->{kernel_or_dev} = $v;
- }
- while (my $v = readlink "$o->{prefix}/$e->{initrd}") {
- $v = "/boot/$v" if $v !~ m|^/|; -e "$o->{prefix}$v" or last;
- log::l("renaming /boot/$e->{initrd} entry by $v");
- $e->{initrd} = $v;
- }
- }
-}
-
-sub setupBootloaderBefore {
- my ($o) = @_;
-
- require bootloader;
- if (my @l = (grep { $_->{bus} eq 'ide' } detect_devices::burners(), detect_devices::raw_zips())) {
- bootloader::add_append($o->{bootloader}, $_->{device}, 'ide-scsi') foreach @l;
- }
- if ($o->{miscellaneous}{HDPARM}) {
- bootloader::add_append($o->{bootloader}, $_, 'autotune') foreach grep { /ide.*/ } all("/proc/ide");
- }
- if (grep { /mem=nopentium/ } cat_("/proc/cmdline")) {
- bootloader::add_append($o->{bootloader}, 'mem', 'nopentium');
- }
-
- if (arch() =~ /alpha/) {
- if (my $dev = fsedit::get_root($o->{fstab})) {
- $o->{bootloader}{boot} ||= "/dev/$dev->{rootDevice}";
- $o->{bootloader}{root} ||= "/dev/$dev->{device}";
- $o->{bootloader}{part_nb} ||= first($dev->{device} =~ /(\d+)/);
- }
- } else {
- #- check for valid fb mode to enable a default boot with frame buffer.
- my $vga = $o->{allowFB} && (!detect_devices::matching_desc('3D Rage LT') &&
- !detect_devices::matching_desc('Rage Mobility [PL]') &&
- !detect_devices::matching_desc('i740') &&
- !detect_devices::matching_desc('Matrox') &&
- !detect_devices::matching_desc('Tseng.*ET6\d00') &&
- !detect_devices::matching_desc('SiS.*SG86C2.5') &&
- !detect_devices::matching_desc('SiS.*559[78]') &&
- !detect_devices::matching_desc('SiS.*300') &&
- !detect_devices::matching_desc('SiS.*540') &&
- !detect_devices::matching_desc('SiS.*6C?326') &&
- !detect_devices::matching_desc('SiS.*6C?236') &&
- !detect_devices::matching_desc('Voodoo [35]|Voodoo Banshee') && #- 3d acceleration seems to bug in fb mode
- !detect_devices::matching_desc('8281[05].* CGC') #- i810 now have FB support during install but we disable it afterwards
- );
- my $force_vga = $o->{allowFB} && (detect_devices::matching_desc('SiS.*630') || #- SiS 630 need frame buffer.
- detect_devices::matching_desc('GeForce.*Integrated') #- needed for fbdev driver (hack).
- );
-
- #- propose the default fb mode for kernel fb, if aurora or bootsplash is installed.
- my $need_fb = grep {
- my $p = pkgs::packageByName($o->{packages}, $_);
- $p && $p->flag_installed;
- } 'Aurora', 'bootsplash';
- bootloader::suggest($o->{prefix}, $o->{bootloader}, $o->{all_hds}{hds}, $o->{fstab},
- ($force_vga || $vga && $need_fb) && $o->{vga}, $o->{meta_class} ne 'server');
- bootloader::suggest_floppy($o->{bootloader}) if $o->{security} <= 3 && arch() !~ /ppc/;
-
- $o->{bootloader}{keytable} ||= keyboard::keyboard2kmap($o->{keyboard});
- }
-}
-
-sub setupBootloader($) {
- my ($o) = @_;
- return if $::g_auto_install;
-
- if (arch() =~ /alpha/) {
- return if $::testing;
- my $b = $o->{bootloader};
- $b->{boot} or $o->ask_warn('', "Can't install aboot, not a bsd disklabel"), return;
-
- run_program::rooted($o->{prefix}, "swriteboot", $b->{boot}, "/boot/bootlx") or do {
- cdie "swriteboot failed";
- run_program::rooted($o->{prefix}, "swriteboot", "-f1", $b->{boot}, "/boot/bootlx");
- };
- run_program::rooted($o->{prefix}, "abootconf", $b->{boot}, $b->{part_nb});
-
- modules::load('loop');
- output "$o->{prefix}/etc/aboot.conf",
- map_index { -e "$o->{prefix}/boot/initrd-$_->[1]" ?
- "$::i:$b->{part_nb}$_->[0] root=$b->{root} initrd=/boot/initrd-$_->[1] $b->{perImageAppend}\n" :
- "$::i:$b->{part_nb}$_->[0] root=$b->{root} $b->{perImageAppend}\n" }
- map { run_program::rooted($o->{prefix}, "mkinitrd", "-f", "/boot/initrd-$_->[1]", "--ifneeded", $_->[1]) ;#or
- #unlink "$o->{prefix}/boot/initrd-$_->[1]";$_ } grep { $_->[0] && $_->[1] }
- $_ } grep { $_->[0] && $_->[1] }
- map { [ m|$o->{prefix}(/boot/vmlinux-(.*))| ] } glob_("$o->{prefix}/boot/vmlinux-*");
-# output "$o->{prefix}/etc/aboot.conf",
-# map_index { "$::i:$b->{part_nb}$_ root=$b->{root} $b->{perImageAppend}\n" }
-# map { /$o->{prefix}(.*)/ } eval { glob_("$o->{prefix}/boot/vmlinux*") };
- } else {
- require bootloader;
- bootloader::install($o->{prefix}, $o->{bootloader}, $o->{fstab}, $o->{all_hds}{hds});
- }
-}
-
-#------------------------------------------------------------------------------
-sub configureXBefore {
- my ($o) = @_;
- my $xkb = $o->{X}{keyboard}{XkbLayout} || keyboard::keyboard2xkb($o->{keyboard});
- $xkb = '' if !($xkb && $xkb =~ /([^(]*)/ && -e "$o->{prefix}/usr/X11R6/lib/X11/xkb/symbols/$1");
- if (!$xkb && (my $f = keyboard::xmodmap_file($o->{keyboard}))) {
- cp_af($f, "$o->{prefix}/etc/X11/xinit/Xmodmap");
- $xkb = '';
- }
- {
- my $f = "$o->{prefix}/etc/sysconfig/i18n";
- setVarsInSh($f, add2hash_({ XKB_IN_USE => $xkb ? '': 'no' }, { getVarsFromSh($f) }));
- }
- $o->{X}{keyboard}{XkbLayout} = $xkb;
- $o->{X}{mouse} = $o->{mouse};
- $o->{X}{wacom} = $o->{wacom};
-
- require Xconfig;
- Xconfig::getinfoFromDDC($o->{X});
- Xconfig::getinfoFromXF86Config($o->{X}, $o->{prefix}); #- take default from here at least.
-
- #- keep this here if the package has to be updated.
- $o->pkg_install("XFree86");
-}
-sub configureX {
- my ($o) = @_;
- $o->configureXBefore;
-
- require Xconfigurator;
- require class_discard;
- { local $::testing = 0; #- unset testing
- local $::auto = 1;
- $o->{X}{skiptest} = 1;
- Xconfigurator::main($o->{X}, class_discard->new, $o->do_pkgs,
- { allowFB => $o->{allowFB},
- allowNVIDIA_rpms => install_any::allowNVIDIA_rpms($o->{packages}),
- });
- }
- $o->configureXAfter;
-}
-sub configureXAfter {
- my ($o) = @_;
- if ($o->{X}{card}{server} eq 'FBDev') {
- install_any::setupFB($o, $o->{X}{card}{bios_vga_mode}) or do {
- log::l("disabling automatic start-up of X11 if any as setup framebuffer failed");
- any::runlevel($o->{prefix}, 3); #- disable automatic start-up of X11 on error.
- };
- }
- if ($o->{X}{default_depth} >= 16 && $o->{X}{card}{default_x_res} >= 1024) {
- log::l("setting large icon style for kde");
- install_any::kderc_largedisplay($o->{prefix});
- }
-}
-
-#------------------------------------------------------------------------------
-sub miscellaneousBefore {
- my ($o) = @_;
-
- my %s = getVarsFromSh("$o->{prefix}/etc/sysconfig/system");
- $o->{miscellaneous}{HDPARM} = $s{HDPARM} if exists $s{HDPARM};
- $o->{security} ||= any::get_secure_level($o->{prefix}) || ($o->{meta_class} eq 'server' ? 3 : 2);
-
- log::l("security $o->{security}");
-
- add2hash_($o->{miscellaneous} ||= {}, { numlock => !detect_devices::isLaptop() });
-}
-sub miscellaneous {
- my ($o) = @_;
- #- keep some given parameters
- #-TODO
-}
-sub miscellaneousAfter {
- my ($o) = @_;
- add2hash_ $o, { useSupermount => 1 && $o->{security} < 4 && arch() !~ /sparc/ && !$::corporate };
-
- $ENV{SECURE_LEVEL} = $o->{security}; #- deprecated with chkconfig 1.3.4-2mdk, uses /etc/sysconfig/msec
-
- addToBeDone {
- mkdir_p("$o->{prefix}/etc/security/msec");
- symlink "server.$o->{security}", "$o->{prefix}/etc/security/msec/server" if $o->{security} > 3;
- setVarsInSh("$o->{prefix}/etc/sysconfig/msec", { SECURE_LEVEL => $o->{security} });
- } 'formatPartitions';
-
- addToBeDone {
- setVarsInSh("$o->{prefix}/etc/sysconfig/system", {
- CLASS => $::expert && 'expert' || 'beginner',
- SECURITY => $o->{security},
- META_CLASS => $o->{meta_class} || 'PowerPack',
- });
- substInFile { s/KEYBOARD_AT_BOOT=.*/KEYBOARD_AT_BOOT=yes/ } "$o->{prefix}/etc/sysconfig/usb" if detect_devices::usbKeyboards();
-
- } 'installPackages';
-}
-
-#------------------------------------------------------------------------------
-sub exitInstall {
- my ($o) = @_;
- eval {
- my $report = '/root/drakx/report.bug';
- output "$o->{prefix}$report", install_any::report_bug($o->{prefix});
- run_program::rooted($o->{prefix}, 'gzip', $report);
- };
- install_any::getAndSaveAutoInstallFloppy($o, 1, "$o->{prefix}/root/drakx/replay_install.img" );
- eval { output "$o->{prefix}/root/drakx/README", "This directory contains several installation-related files,
-mostly log files (very useful if you ever report a bug!).
-
-Beware that some Mandrake tools rely on the contents of some
-of these files... so remove any file from here at your own
-risk!
-" };
- install_any::unlockCdrom;
- install_any::log_sizes($o);
-}
-
-#------------------------------------------------------------------------------
-sub hasNetwork {
- my ($o) = @_;
- $o->{netcnx}{type} && $o->{netc}{NETWORKING} ne 'no' and return 1;
- log::l("no network seems to be configured for internet ($o->{netcnx}{type},$o->{netc}{NETWORKING})");
- 0;
-}
-
-#------------------------------------------------------------------------------
-sub upNetwork {
- my ($o, $pppAvoided) = @_;
-
- #- do not destroy this file if prefix is '' or even '/' (could it happens ?).
- if (length($o->{prefix}) > 1) {
- symlinkf("$o->{prefix}/etc/$_", "/etc/$_") foreach (qw(resolv.conf protocols services));
- }
- member($o->{method}, qw(ftp http nfs)) and return 1;
- modules::write_conf($o->{prefix});
- if (hasNetwork($o)) {
- if ($o->{netcnx}{type} =~ /adsl|lan|cable/) {
- require network::netconnect;
- network::netconnect::start_internet($o);
- return 1;
- } elsif (!$pppAvoided) {
- eval { modules::load(qw(serial ppp bsd_comp ppp_deflate)) };
- run_program::rooted($o->{prefix}, "/etc/rc.d/init.d/syslog", "start");
- require network::netconnect;
- network::netconnect::start_internet($o);
- return 1;
- }
- }
- $::testing;
-}
-
-#------------------------------------------------------------------------------
-sub downNetwork {
- my ($o, $costlyOnly) = @_;
-
- $o->{method} eq "ftp" || $o->{method} eq "http" || $o->{method} eq "nfs" and return 1;
- modules::write_conf($o->{prefix});
- if (hasNetwork($o)) {
- if (!$costlyOnly) {
- require network::netconnect;
- network::netconnect::stop_internet($o);
- return 1;
- } elsif ($o->{netc}{type} !~ /adsl|lan|cable/) {
- require network::netconnect;
- network::netconnect::stop_internet($o);
- run_program::rooted($o->{prefix}, "/etc/rc.d/init.d/syslog", "stop");
- eval { modules::unload(qw(ppp_deflate bsd_comp ppp serial)) };
- return 1;
- }
- }
- $::testing;
-}
-
-#------------------------------------------------------------------------------
-sub cleanIfFailedUpgrade($) {
- my ($o) = @_;
-
- #- if an upgrade has failed, there should be .mdkgisave files around.
- if ($o->{isUpgrade}) {
- foreach (@filesToSaveForUpgrade) {
- if (-e "$o->{prefix}/$_" && -e "$o->{prefix}/$_.mdkgisave") {
- rename "$o->{prefix}/$_", "$o->{prefix}/$_.mdkginew"; #- keep new files around in case !
- rename "$o->{prefix}/$_.mdkgisave", "$o->{prefix}/$_";
- }
- }
- }
-}
-
-
-#-######################################################################################
-#- Wonderful perl :(
-#-######################################################################################
-1;
diff --git a/perl-install/install_steps_auto_install.pm b/perl-install/install_steps_auto_install.pm
deleted file mode 100644
index cd0282800..000000000
--- a/perl-install/install_steps_auto_install.pm
+++ /dev/null
@@ -1,111 +0,0 @@
-package install_steps_auto_install; # $Id$
-
-use diagnostics;
-use strict;
-use vars qw(@ISA $graphical @graphical_steps);
-
-@ISA = qw(install_steps);
-
-#-######################################################################################
-#- misc imports
-#-######################################################################################
-use common;
-use install_steps;
-
-sub new {
- my ($type, $o) = @_;
-
- # Handle legacy options
- $o->{interactive} ||= 'gtk' if $graphical || !is_empty_array_ref($o->{interactiveSteps});
- push @{$o->{interactiveSteps}}, qw(installPackages exitInstall), @graphical_steps;
-
- if ($o->{interactive}) {
- my $interactiveClass = "install_steps_$o->{interactive}";
- require"$interactiveClass.pm"; #- no space to skip perl2fcalls
-
- @ISA = ($interactiveClass, @ISA);
-
- for (my $f = $o->{steps}{first}; $f; $f = $o->{steps}{$f}{next}) {
- my $auto_name = member($f, @{$o->{interactiveSteps}}) ? 'noauto' : 'auto';
- $o->{steps}{$f}{$auto_name} = 1;
- }
-
- goto &{$::{$interactiveClass . "::"}{new}};
- } else {
- @ISA = ('install_steps_auto_install_non_interactive', @ISA);
- (bless {}, ref $type || $type)->install_steps::new($o);
- }
-}
-
-
-sub exitInstall {
- my ($o, $alldone) = @_;
- return if $o->{autoExitInstall};
-
- if ($o->{interactive}) {
- $o->SUPER::exitInstall($alldone);
- } else {
- install_steps::exitInstall($o);
- print "\a";
- print "Auto installation complete (the postInstall is not done yet though)\n";
- print "Press <Enter> to reboot\n";
- <STDIN>;
- }
-}
-
-
-#-######################################################################################
-#- install_steps_auto_install_non_interactive package
-#-######################################################################################
-package install_steps_auto_install_non_interactive;
-
-use install_steps;
-use lang;
-use modules;
-use common;
-use log;
-
-sub configureNetwork {
- my ($o) = @_;
- modules::load_category('network/main|usb');
- goto &install_steps::configureNetwork;
-}
-
-sub enteringStep {
- my ($o, $step) = @_;
- my ($s, $t) = (__("Entering step `%s'\n"), $o->{steps}{$step}{text});
- ($s, $t) = (translate($s), translate($t)) if $ENV{LANG} !~ /ja|ko|zh/;
- print sprintf($s, $t);
- $o->install_steps::enteringStep($step);
-}
-
-sub ask_warn {
- log::l(ref $_[1] ? join " ", @{$_[1]} : $_[1]);
-}
-
-sub wait_message {}
-
-sub errorInStep {
- print "error :(\n";
- print "switch to console f2 for a shell\n";
- print "Press <Enter> to reboot\n";
- <STDIN>;
- c::_exit(0);
-}
-
-
-#-######################################################################################
-#- Steps Functions
-#-######################################################################################
-sub selectLanguage {
- my ($o) = @_;
- $o->install_steps::selectLanguage;
- lang::load_console_font($o->{lang});
-}
-
-sub installPackages {
- my ($o, $packages) = @_;
- catch_cdie { $o->install_steps::installPackages($packages) } sub { print "$@\n"; 1 }
-}
-
-1;
diff --git a/perl-install/install_steps_gtk.pm b/perl-install/install_steps_gtk.pm
deleted file mode 100644
index c2ec797cd..000000000
--- a/perl-install/install_steps_gtk.pm
+++ /dev/null
@@ -1,646 +0,0 @@
-package install_steps_gtk; # $Id$
-
-use diagnostics;
-use strict;
-use vars qw(@ISA);
-
-@ISA = qw(install_steps_interactive interactive::gtk);
-
-#-######################################################################################
-#- misc imports
-#-######################################################################################
-use pkgs;
-use install_steps_interactive;
-use interactive::gtk;
-use common;
-use my_gtk qw(:helpers :wrappers);
-use Gtk;
-use devices;
-use modules;
-use install_gtk;
-use install_any;
-use mouse;
-use help;
-use log;
-
-#-######################################################################################
-#- In/Out Steps Functions
-#-######################################################################################
-sub new($$) {
- my ($type, $o) = @_;
-
- my $old = $SIG{__DIE__};
- $SIG{__DIE__} = sub { $_[0] !~ /my_gtk\.pm/ and goto $old };
-
- $ENV{DISPLAY} ||= $o->{display} || ":0";
- unless ($::testing) {
- if ($ENV{DISPLAY} eq ":0" && !$::live) {
- my $f = "/tmp/Xconf";
- install_gtk::createXconf($f, @{$o->{mouse}}{"XMOUSETYPE", "device"}, $o->{wacom}[0]);
- devices::make("/dev/kbd");
-
- local (*T1, *T2);
- open T1, ">/dev/tty5";
- open T2, ">/dev/tty6";
-
- my $launchX = sub {
- my $ok = 1;
- my $xpmac_opts = cat_("/proc/cmdline");
- unless (-d "/var/log" ) { mkdir("/var/log"); }
- local $SIG{CHLD} = sub { $ok = 0 if waitpid(-1, c::WNOHANG()) > 0 };
- unless (fork) {
- exec $_[0], (arch() =~ /^sparc/ || arch() eq "ppc" ? () : ("-kb")), "-dpms","-s" ,"240",
- ($_[0] =~ /Xpmac/ ? $xpmac_opts !~ /ofonly/ ? ("-mode", "17", "-depth", "32") : ("-mach64"):()),
- ($_[0] =~ /Xsun/ || $_[0] =~ /Xpmac/ ? ("-fp", "/usr/X11R6/lib/X11/fonts:unscaled") :
- ("-allowMouseOpenFail", "-xf86config", $f)) or exit 1;
- }
- foreach (1..60) {
- sleep 1;
- log::l("Server died"), return 0 if !$ok;
- if (c::Xtest($ENV{DISPLAY})) {
- fork || exec("aewm-drakx") || exec("true");
- return 1;
- }
- }
- log::l("Timeout!!");
- 0;
- };
- my @servers = qw(FBDev VGA16); #-)
- if (arch() eq "alpha") {
- require Xconfigurator;
- my ($card) = Xconfigurator::probe_cards();
- Xconfigurator::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/) {
- @servers= 'XFree86';
- } elsif (arch() eq "ppc") {
- @servers = qw(Xpmac);
- }
-
- foreach (@servers) {
- log::l("Trying with server $_");
- my $dir = "/usr/X11R6/bin";
- my $prog = /Xsun|Xpmac|XFree86/ ? $_ : "XF86_$_";
- unless (-x "$dir/$prog") {
- unlink $_ foreach glob_("$dir/X*");
- install_any::getAndSaveFile("Mandrake/mdkinst$dir/$prog", "$dir/$prog") or die "failed to get server $prog: $!";
- chmod 0755, "$dir/$prog";
- }
- if (/FB/) {
- !$o->{vga16} && $o->{allowFB} or next;
-
- $o->{allowFB} = &$launchX($prog) #- keep in mind FB is used.
- and goto OK;
- } else {
- $o->{vga16} = 1 if /VGA16/;
- &$launchX($prog) and goto OK;
- }
- }
- return undef;
- }
- }
- OK:
- install_gtk::init_sizes();
- install_gtk::default_theme($o);
- install_gtk::create_logo_window($o);
-
- $my_gtk::force_center = [ $::rootwidth - $::windowwidth, $::logoheight, $::windowwidth, $::windowheight ];
-
- $o = (bless {}, ref $type || $type)->SUPER::new($o);
- $o->interactive::gtk::new;
- $o;
-}
-
-sub enteringStep {
- my ($o, $step) = @_;
-
- printf "Entering step `%s'\n", $o->{steps}{$step}{text};
- $o->SUPER::enteringStep($step);
- install_gtk::create_steps_window($o);
- install_gtk::create_help_window($o);
-}
-sub leavingStep {
- my ($o, $step) = @_;
- $o->SUPER::leavingStep($step);
-}
-
-
-sub charsetChanged {
- my ($o) = @_;
- Gtk->set_locale;
- install_gtk::install_theme($o);
- install_gtk::create_steps_window($o);
-}
-
-#-######################################################################################
-#- Steps Functions
-#-######################################################################################
-sub selectLanguage {
- my ($o, $first_time) = @_;
- $o->SUPER::selectLanguage;
-
- $o->ask_warn('',
-_("Your system is low on resources. You may have some problem installing
-Mandrake Linux. If that occurs, you can try a text install instead. For this,
-press `F1' when booting on CDROM, then enter `text'.")) if $first_time && availableRamMB() < 60; # 60MB
-
-}
-
-#------------------------------------------------------------------------------
-sub selectInstallClass1 {
- my ($o, $verif, $l, $def, $l2, $def2) = @_;
- $::live || @$l == 1 and return $o->SUPER::selectInstallClass1($verif, $l, $def, $l2, $def2);
-
- my $w = my_gtk->new(_("Install Class"));
- my $focused;
- gtkadd($w->{window},
- gtkpack($w->create_box_with_title(_("Please choose one of the following classes of installation:")),
- (my @radios = gtkradio($def, @$l)),
- gtkadd(create_vbox(),
- map { my $v = $_;
- my $b = new Gtk::Button(translate($_));
- $focused = $b if $_ eq $def2;
- gtksignal_connect($b, "clicked" => sub { $w->{retval} = $v; Gtk->main_quit });
- } @$l2)
- ));
- $focused->grab_focus if $focused;
- $w->main;
-
- mapn { $verif->($_[1]) if $_[0]->active } \@radios, $l;
- install_gtk::create_steps_window($o);
-
- $w->{retval};
-}
-
-#------------------------------------------------------------------------------
-sub selectMouse {
- my ($o, $force) = @_;
- my %old = %{$o->{mouse}};
- $o->SUPER::selectMouse($force) or return;
- my $mouse = $o->{mouse};
- $mouse->{type} eq 'none' ||
- $old{type} eq $mouse->{type} &&
- $old{name} eq $mouse->{name} &&
- $old{device} eq $mouse->{device} && !$force and return;
-
- local $my_gtk::grab = 1; #- unsure a crazy mouse don't go wild clicking everywhere
-
- while (1) {
- log::l("telling X server to use another mouse");
- eval { modules::load('serial') } if $mouse->{device} =~ /ttyS/;
-
- if (!$::testing) {
- devices::make($mouse->{device});
- symlinkf($mouse->{device}, "/dev/mouse");
- c::setMouseLive($ENV{DISPLAY}, mouse::xmouse2xId($mouse->{XMOUSETYPE}), $mouse->{nbuttons} < 3);
- }
- mouse::test_mouse_install($mouse) and return;
- $o->SUPER::selectMouse(1);
- $mouse = $o->{mouse};
- }
-}
-
-sub reallyChooseGroups {
- my ($o, $size_to_display, $individual, $val) = @_;
-
- my $w = my_gtk->new('');
- my $tips = new Gtk::Tooltips;
- my $w_size = new Gtk::Label(&$size_to_display);
-
- my $entry = sub {
- my ($e) = @_;
- my $text = translate($o->{compssUsers}{$e}{label});
- my $help = translate($o->{compssUsers}{$e}{descr});
-
- my $file = do {
- my $f = "$ENV{SHARE_PATH}/icons/" . ($o->{compssUsers}{$e}{icons} || 'default');
- -e "$f.png" or $f .= "_section";
- -e "$f.png" or $f = "$ENV{SHARE_PATH}/icons/default_section";
- "$f.png";
- };
- my $check = Gtk::CheckButton->new($text);
- $check->set_active($val->{$e});
- $check->signal_connect(clicked => sub {
- $val->{$e} = $check->get_active;
- $w_size->set(&$size_to_display);
- });
- gtkset_tip($tips, $check, $help);
- gtkpack_(new Gtk::HBox(0,0), 0, gtkpng($file), 1, $check);
- #$check;
- };
- my $entries_in_path = sub {
- my ($path) = @_;
- translate($path), map { $entry->($_) } grep { $o->{compssUsers}{$_}{path} eq $path } @{$o->{compssUsersSorted}};
- };
- gtkadd($w->{window},
- gtkpack($w->create_box_with_title(_("Package Group Selection")),
- gtkpack_(new Gtk::VBox(0,0),
- 1, gtkpack_(new Gtk::HBox(0,0),
- $o->{meta_class} eq 'server' ? (
- 1, gtkpack(new Gtk::VBox(0,0),
- $entries_in_path->('Server'),
- ),
- 1, gtkpack(new Gtk::VBox(0,0),
- $entries_in_path->('Graphical Environment'),
- '',
- $entries_in_path->('Development'),
- '',
- $entries_in_path->('Utilities'),
- ),
- ) : (
- 1, gtkpack(new Gtk::VBox(0,0),
- $entries_in_path->('Workstation'),
- '',
- $entry->('Development|Development'),
- $entry->('Development|Documentation'),
- ),
- 0, gtkpack(new Gtk::VBox(0,0),
- $entries_in_path->('Server'),
- '',
- $entries_in_path->('Graphical Environment'),
- ),
- ),
- )),
- '',
- gtkadd(new Gtk::HBox(0,0),
- $w_size,
- if_($individual, do {
- my $check = Gtk::CheckButton->new(_("Individual package selection"));
- $check->set_active($$individual);
- $check->signal_connect(clicked => sub { $$individual = $check->get_active });
- $check;
- }),
- gtksignal_connect(new Gtk::Button(_("Ok")), clicked => sub { Gtk->main_quit }),
- ),
- ),
- );
- $w->{rwindow}->set_default_size($::windowwidth * 0.8, $::windowheight * 0.8);
- $w->main;
- 1;
-}
-
-
-sub choosePackagesTree {
- my ($o, $packages, $limit_to_medium) = @_;
-
- my $available = install_any::getAvailableSpace($o);
- my $availableCorrected = pkgs::invCorrectSize($available / sqr(1024)) * sqr(1024);
-
- my $common; $common = { get_status => sub {
- my $size = pkgs::selectedSize($packages);
- _("Total size: %d / %d MB", pkgs::correctSize($size / sqr(1024)), $available / sqr(1024));
- },
- node_state => sub {
- my $p = pkgs::packageByName($packages,$_[0]) or return;
- pkgs::packageMedium($packages, $p)->{selected} or return;
- $p->flag_base and return 'base';
- $p->flag_installed && !$p->flag_upgrade and return 'installed';
- $p->flag_selected and return 'selected';
- return 'unselected';
- },
- build_tree => sub {
- my ($add_node, $flat) = @_;
- if ($flat) {
- foreach (sort map { $_->name } grep { !$limit_to_medium || pkgs::packageMedium($packages, $_) }
- @{$packages->{depslist}}) {
- $add_node->($_, undef);
- }
- } else {
- foreach my $root (@{$o->{compssUsersSorted}}) {
- my (%fl, @firstchoice, @others);
- #$fl{$_} = $o->{compssUsersChoice}{$_} foreach @{$o->{compssUsers}{$root}{flags}}; #- FEATURE:improve choce of packages...
- $fl{$_} = 1 foreach @{$o->{compssUsers}{$root}{flags}};
- foreach my $p (@{$packages->{depslist}}) {
- !$limit_to_medium || pkgs::packageMedium($packages, $p) == $limit_to_medium or next;
- my @flags = $p->rflags;
- next if !($p->rate && grep { grep { !/^!/ && $fl{$_} } split('\|\|') } @flags);
- $p->rate >= 3 ?
- push(@firstchoice, $p->name) :
- push(@others, $p->name);
- }
- my $root2 = join('|', map { translate($_) } split('\|', $root));
- $add_node->($_, $root2 ) foreach sort @firstchoice;
- $add_node->($_, $root2 . '|' . _("Other")) foreach sort @others;
- }
- }
- },
- get_info => sub {
- my $p = pkgs::packageByName($packages, $_[0]) or return '';
- pkgs::extractHeaders($o->{prefix}, [$p], $packages->{mediums});
-
- my $imp = translate($pkgs::compssListDesc{$p->flag_base ? 5 : $p->rate});
-
- my $info = $@ ? _("Bad package") :
- (_("Name: %s\n", $p->name) .
- _("Version: %s\n", $p->version . '-' . $p->release) .
- _("Size: %d KB\n", $p->size / 1024) .
- ($imp && _("Importance: %s\n", $imp)) . "\n" .
- formatLines($p->description));
- return $info;
- },
- toggle_nodes => sub {
- my $set_state = shift @_;
- my @n = map { pkgs::packageByName($packages, $_) } @_;
- my %l;
- my $isSelection = !$n[0]->flag_selected;
- foreach (@n) {
- #pkgs::togglePackageSelection($packages, $_, my $l = {});
- #@l{grep {$l->{$_}} keys %$l} = ();
- pkgs::togglePackageSelection($packages, $_, \%l);
- }
- if (my @l = map { $packages->{depslist}[$_]->name } keys %l) {
- #- check for size before trying to select.
- my $size = pkgs::selectedSize($packages);
- foreach (@l) {
- my $p = pkgs::packageByName($packages, $_);
- $p->flag_selected or $size += $p->size;
- }
- if (pkgs::correctSize($size / sqr(1024)) > $available / sqr(1024)) {
- return $o->ask_warn('', _("You can't select this package as there is not enough space left to install it"));
- }
-
- @l > @n && $common->{state}{auto_deps} and
- $o->ask_okcancel('', [ $isSelection ?
- _("The following packages are going to be installed") :
- _("The following packages are going to be removed"),
- common::formatList(20, sort @l) ], 1) || return;
- if ($isSelection) {
- pkgs::selectPackage($packages, $_) foreach @n;
- } else {
- pkgs::unselectPackage($packages, $_) foreach @n;
- }
- foreach (@l) {
- my $p = pkgs::packageByName($packages, $_);
- $set_state->($_, $p->flag_selected ? 'selected' : 'unselected');
- }
- } else {
- $o->ask_warn('', _("You can't select/unselect this package"));
- }
- },
- grep_allowed_to_toggle => sub {
- grep { $_ ne _("Other") && !pkgs::packageByName($packages, $_)->flag_base } @_;
- },
- grep_unselected => sub {
- grep { !pkgs::packageByName($packages, $_)->flag_selected } @_;
- },
- check_interactive_to_toggle => sub {
- my $p = pkgs::packageByName($packages, $_[0]) or return;
- if ($p->flag_base) {
- $o->ask_warn('', _("This is a mandatory package, it can't be unselected"));
- } elsif ($p->flag_installed && !$p->flag_upgrade) {
- $o->ask_warn('', _("You can't unselect this package. It is already installed"));
- } elsif ($p->flag_selected && $p->flag_installed) {
- if ($::expert) {
- $o->ask_yesorno('', _("This package must be upgraded.\nAre you sure you want to deselect it?")) or return;
- return 1;
- } else {
- $o->ask_warn('', _("You can't unselect this package. It must be upgraded"));
- }
- } else { return 1; }
- return;
- },
- auto_deps => _("Show automatically selected packages"),
- ok => _("Install"),
- cancel => $limit_to_medium && _("Cancel"),
- icons => [ { icon => 'floppy',
- help => _("Load/Save on floppy"),
- wait_message => _("Updating package selection"),
- code => sub { $o->loadSavePackagesOnFloppy($packages); 1; },
- },
- if_(0,
- { icon => 'feather',
- help => _("Minimal install"),
- code => sub {
-
- install_any::unselectMostPackages($o);
- pkgs::setSelectedFromCompssList($packages, { SYSTEM => 1 }, 4, $availableCorrected);
- 1;
- } }),
- ],
- state => {
- auto_deps => 1,
- flat => $limit_to_medium,
- },
- };
-
- $o->set_help('choosePackagesTree');
- $o->ask_browse_tree_info('', _("Choose the packages you want to install"), $common);
-}
-
-#------------------------------------------------------------------------------
-sub beforeInstallPackages {
- my ($o) = @_;
- $o->SUPER::beforeInstallPackages;
- install_any::copy_advertising($o);
-}
-
-#------------------------------------------------------------------------------
-sub installPackages {
- my ($o, $packages) = @_;
-
- my ($current_total_size, $last_size, $nb, $total_size, $start_time, $last_dtime, $trans_progress_total);
-
- my $w = my_gtk->new(_("Installing"));
- $w->sync;
- my $text = new Gtk::Label;
- my ($advertising, $change_time, $i);
- my $show_advertising if 0;
- $show_advertising = to_bool(@install_any::advertising_images) if !defined $show_advertising;
- my ($msg, $msg_time_remaining, $msg_time_total) = map { new Gtk::Label($_) } '', (_("Estimating")) x 2;
- my ($progress, $progress_total) = map { new Gtk::ProgressBar } (1..2);
- $w->{rwindow}->set_policy(1, 1, 1);
- gtkadd($w->{window}, my $box = new Gtk::VBox(0,10));
- $box->pack_end(gtkshow(gtkpack(gtkset_usize(new Gtk::VBox(0,5), $::windowwidth * 0.8, 0),
- $msg, $progress,
- create_packtable({},
- [_("Time remaining "), $msg_time_remaining],
-# [_("Total time "), $msg_time_total],
- ),
- $text,
- $progress_total,
- gtkadd(create_hbox(),
- my $cancel = new Gtk::Button(_("Cancel")),
- my $details = new Gtk::Button(_("Details")),
- ),
- )), 0, 1, 0);
- $details->hide if !@install_any::advertising_images;
- $w->sync;
- $msg->set(_("Please wait, preparing installation..."));
- gtkset_mousecursor_normal($cancel->window);
- gtkset_mousecursor_normal($details->window);
- my $advertize = sub {
- @install_any::advertising_images or return;
- $show_advertising ? $_->hide : $_->show foreach $msg, $progress, $text;
- gtkdestroy($advertising) if $advertising;
- if ($show_advertising && $_[0]) {
- $change_time = time();
- my $f = $install_any::advertising_images[$i++ % @install_any::advertising_images];
- log::l("advertising $f");
- my $pl = $f; $pl =~ s/\.png$/\.pl/;
- my $icon_name = $f; $icon_name =~ s/\.png$/_icon\.png/;
- my ($draw_text, $width, $height, @data, $icon, $icon_dx, $icon_dy, $icon_px);
- -e $pl and $draw_text = 1;
- eval(cat_($pl)) if $draw_text;
- my ($pix, undef) = gtkcreate_png($f);
- if ($icon) {
- ($icon_px, undef) = gtkcreate_png($icon_name);
- }
- my $dbl_area;
- my $darea = new Gtk::DrawingArea;
- gtkpack($box, $advertising = !$draw_text ?
- gtkpng($f) :
- gtksignal_connect(gtkset_usize($darea, $width, $height), expose_event => sub {
- my ($dx, $dy) = ($darea->allocation->[2], $darea->allocation->[3]);
- if (!defined($dbl_area)) {
- $dbl_area = new Gtk::Gdk::Pixmap($darea->window, $dx, $dy);
- $dbl_area->draw_rectangle($darea->style->bg_gc('active'), 1, 0, 0, $dx, $dy);
- $dbl_area->draw_pixmap($darea->style->bg_gc('normal'),
- $pix, 0, 0, ($dx-$width)/2, 0, $width, $height);
- my $gc_text = new Gtk::Gdk::GC($darea->window);
- $gc_text->set_foreground(gtkcolor(65535, 65535, 65535));
- my $yicon = 0;
- my $decy = 0;
- my $first = 1;
- foreach (@data) {
- my ($text, $x, $y, $area_width, $area_height, $bold) = @$_;
- my ($width, $height, $lines, $widths, $heights, $ascents, $descents) =
- get_text_coord ($text, $darea, $area_width, $area_height, 1, 0, 1, 1);
- if ($first && $icon) {
- my $iconx = ($dx-$width)/2 + $x + ${$widths}[0] - $icon_dx;
- my $icony = $y + ${$heights}[0] - $icon_dy/2;
- $icony > 0 or $icony = 0;
- $dbl_area->draw_pixmap($darea->style->bg_gc('normal'), $icon_px, 0, 0,
- $iconx, $icony, $icon_dx, $icon_dy
- );
- $yicon = $icony + $icon_dy;
- }
- my $i = 0;
- $yicon > $y + ${$heights}[0] and $decy = $yicon - ($y + ${$heights}[$i]);
- foreach (@{$lines}) {
- $dbl_area->draw_string($darea->style->font, $gc_text,
- ($dx-$width)/2 + $x + ${$widths}[$i], ( $first ? 0 : $decy ) + $y + ${$heights}[$i], $_);
- $bold and $dbl_area->draw_string($darea->style->font, $gc_text,
- ($dx-$width)/2 + $x + ${$widths}[$i] + 1, ( $first ? 0 : $decy ) + $y + ${$heights}[$i], $_);
- $i++;
- }
- $first = 0;
- }
- }
- $darea->window->draw_pixmap($darea->style->bg_gc('normal'),
- $dbl_area, 0, 0, 0, 0, $dx, $dy);
- }));
- } else {
- $advertising = undef;
- }
- };
-
- $cancel->signal_connect(clicked => sub { $pkgs::cancel_install = 1 });
- $details->signal_connect(clicked => sub {
- invbool \$show_advertising;
- $advertize->(1);
- });
- $advertize->();
-
- my $oldInstallCallback = \&pkgs::installCallback;
- local *pkgs::installCallback = sub {
- my ($data, $type, $id, $subtype, $amount, $total) = @_;
- if ($type eq 'user' && $subtype eq 'install') {
- #- $amount and $total are used to return number of package and total size.
- $nb = $amount;
- $total_size = $total; $current_total_size = 0;
- $start_time = time();
- $msg->set(_("%d packages", $nb));
- $w->flush;
- } elsif ($type eq 'inst' && $subtype eq 'start') {
- $progress->update(0);
- my $p = $data->{depslist}[$id];
- $msg->set(_("Installing package %s", $p->name));
- $current_total_size += $last_size;
- $last_size = $p->size;
- $text->set((split /\n/, $p->summary)[0] || '');
- $advertize->(1) if $show_advertising && $total_size > 20_000_000 && time() - $change_time > 20;
- $w->flush;
- } elsif ($type eq 'inst' && $subtype eq 'progress') {
- $progress->update($total ? $amount / $total : 0);
-
- my $dtime = time() - $start_time;
- my $ratio =
- $total_size == 0 ? 0 :
- pkgs::size2time($current_total_size + $amount, $total_size) / pkgs::size2time($total_size, $total_size);
- $ratio >= 1 and $ratio = 1;
- my $total_time = $ratio ? $dtime / $ratio : time();
-
- $progress_total->update($ratio);
- if ($dtime != $last_dtime && $current_total_size > 80_000_000) {
- $msg_time_total->set(formatTime(10 * round($total_time / 10) + 10));
-#- $msg_time_total->set(formatTimeRaw($total_time) . " " . formatTimeRaw($dtime / $ratio2));
- $msg_time_remaining->set(formatTime(10 * round(max($total_time - $dtime, 0) / 10) + 10));
- $last_dtime = $dtime;
- }
- $w->flush;
- } else { goto $oldInstallCallback }
- };
- #- the modification is not local as the box should be living for other package installation.
- undef *install_any::changeMedium;
- *install_any::changeMedium = sub {
- my ($method, $medium) = @_;
-
- #- if not using a cdrom medium, always abort.
- if ($method eq 'cdrom' && !$::oem) {
- local $my_gtk::grab = 1;
- my $name = pkgs::mediumDescr($o->{packages}, $medium);
- local $| = 1; print "\a";
- my $time = time();
- my $r = $name !~ /commercial/i || ($o->{useless_thing_accepted2} ||= $o->ask_from_list_('', formatAlaTeX($install_steps_interactive::com_license), [ __("Accept"), __("Refuse") ], "Accept") eq "Accept");
- $r &&= $o->ask_okcancel('', _("Change your Cd-Rom!
-
-Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when done.
-If you don't have it, press Cancel to avoid installation from this Cd-Rom.", $name), 1);
- #- add the elapsed time (otherwise the predicted time will be rubbish)
- $start_time += time() - $time;
- return $r;
- }
- };
- my $install_result;
- catch_cdie { $install_result = $o->install_steps::installPackages($packages); }
- sub {
- if ($@ =~ /^error ordering package list: (.*)/) {
- $o->ask_yesorno('', [
-_("There was an error ordering packages:"), $1, _("Go on anyway?") ], 1) and return 1;
- ${$_[0]} = "already displayed";
- } elsif ($@ =~ /^error installing package list: (.*)/) {
- $o->ask_yesorno('', [
-_("There was an error installing packages:"), $1, _("Go on anyway?") ], 1) and return 1;
- ${$_[0]} = "already displayed";
- }
- 0;
- };
- if ($pkgs::cancel_install) {
- $pkgs::cancel_install = 0;
- die 'already displayed';
- }
- $w->destroy;
- $install_result;
-}
-
-sub set_help {
- my ($o, @l) = @_;
-
- my @l2 = map {
- join("\n\n", map { s/\n/ /mg; $_ } split("\n\n", translate($help::steps{$_})))
- } @l;
- $o->{current_help} = join("\n\n\n", @l2);
- gtktext_insert($o->{help_window_text}, $o->{current_help});
- 1;
-}
-
-#-######################################################################################
-#- Wonderful perl :(
-#-######################################################################################
-1; #
diff --git a/perl-install/install_steps_interactive.pm b/perl-install/install_steps_interactive.pm
deleted file mode 100644
index 1ab9bab30..000000000
--- a/perl-install/install_steps_interactive.pm
+++ /dev/null
@@ -1,1375 +0,0 @@
-package install_steps_interactive; # $Id$
-
-
-use diagnostics;
-use strict;
-use vars qw(@ISA $new_bootstrap $com_license);
-
-@ISA = qw(install_steps);
-
-$com_license = _("
-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.
-");
-
-#-######################################################################################
-#- misc imports
-#-######################################################################################
-use common;
-use partition_table qw(:types);
-use partition_table::raw;
-use install_steps;
-use install_interactive;
-use install_any;
-use detect_devices;
-use run_program;
-use devices;
-use fsedit;
-use loopback;
-use mouse;
-use modules;
-use lang;
-use keyboard;
-use any;
-use fs;
-use log;
-
-#-######################################################################################
-#- In/Out Steps Functions
-#-######################################################################################
-sub errorInStep($$) {
- my ($o, $err) = @_;
- $o->ask_warn(_("Error"), [ _("An error occurred"), formatError($err) ]);
-}
-
-sub kill_action {
- my ($o) = @_;
- $o->kill;
-}
-
-sub charsetChanged {}
-
-#-######################################################################################
-#- Steps Functions
-#-######################################################################################
-#------------------------------------------------------------------------------
-sub selectLanguage {
- my ($o) = @_;
-
- $o->{lang} = any::selectLanguage($o, $o->{lang}, $o->{langs} ||= {})
- || return $o->ask_yesorno('', _("Do you really want to leave the installation?")) ? $o->exit : &selectLanguage;
- install_steps::selectLanguage($o);
-
- $o->charsetChanged;
-
- if ($o->isa('interactive::gtk')) {
- $o->ask_warn('', formatAlaTeX(
-"If you see this message it is because you chose a language for
-which DrakX does not include a translation yet; however the fact
-that it is listed means there is some support for it anyway.
-
-That is, once GNU/Linux will be installed, you will be able to at
-least read and write in that language; and possibly more (various
-fonts, spell checkers, various programs translated etc. that
-varies from language to language).")) if $o->{lang} !~ /^en/ && !lang::load_mo();
- } else {
- #- don't use _( ) for this, as it is never translated
- $o->ask_warn('', "The characters of your language can't be displayed in console,
-so the messages will be displayed in english during installation") if $ENV{LANGUAGE} eq 'C';
- }
-}
-
-sub acceptLicence {
- my ($o) = @_;
- return if $o->{useless_thing_accepted};
-
- $o->set_help('license');
- $o->{useless_thing_accepted} = $o->ask_from_list_(_("License agreement"), formatAlaTeX(
-_("Introduction
-
-The operating system and the different components available in the Mandrake Linux 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 Mandrake Linux distribution.
-
-
-1. License Agreement
-
-Please read this document carefully. This document is a license agreement between you and
-MandrakeSoft S.A. which applies to the Software Products.
-By installing, duplicating or using 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.
-
-
-2. Limited Warranty
-
-The Software Products and attached documentation are provided \"as is\", with no warranty, to the
-extent permitted by law.
-MandrakeSoft 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 MandrakeSoft S.A. has been advised of the possibility or occurance of such
-damages.
-
-LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN SOME COUNTRIES
-
-To the extent permitted by law, MandrakeSoft 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 Mandrake Linux 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.
-
-
-3. The GPL 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 MandrakeSoft.
-The programs developed by MandrakeSoft S.A. are governed by the GPL License. Documentation written
-by MandrakeSoft S.A. is governed by a specific license. Please refer to the documentation for
-further details.
-
-
-4. Intellectual Property Rights
-
-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.
-MandrakeSoft 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.
-\"Mandrake\", \"Mandrake Linux\" and associated logos are trademarks of MandrakeSoft S.A.
-
-
-5. Governing Laws
-
-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 MandrakeSoft S.A.
-")), [ __("Accept"), __("Refuse") ], "Refuse") eq "Accept" and return;
-
- $o->ask_yesorno('', _("Are you sure you refuse the licence?"), 1) and $o->exit;
-
- &acceptLicence;
-}
-
-#------------------------------------------------------------------------------
-sub selectKeyboard {
- my ($o, $clicked) = @_;
-
- my $l = keyboard::lang2keyboards(lang::langs($o->{langs}));
-
- #- good guess, don't ask
- return install_steps::selectKeyboard($o)
- if !$::expert && !$clicked && $l->[0][1] >= 90 && listlength(lang::langs($o->{langs})) == 1;
-
- my @best = map { $_->[0] } @$l;
- push @best, 'us_intl' if !member('us_intl', @best);
-
- my $format = sub { translate(keyboard::keyboard2text($_[0])) };
- my $other;
- my $ext_keyboard = $o->{keyboard};
- $o->ask_from_(
- { title => _("Keyboard"),
- messages => _("Please choose your keyboard layout."),
- advanced_messages => _("Here is the full list of keyboards available"),
- advanced_label => _("More"),
- callbacks => { changed => sub { $other = $_[0]==1 } },
- },
- [ if_(@best > 1, { val => \$o->{keyboard}, type => 'list', format => $format, sort => 1,
- list => [ @best ] }),
- { val => \$ext_keyboard, type => 'list', format => $format,
- list => [ difference2([ keyboard::keyboards ], \@best) ], advanced => @best > 1 }
- ]);
- delete $o->{keyboard_unsafe};
-
- $o->{keyboard} = $ext_keyboard if $other;
- install_steps::selectKeyboard($o);
-}
-#------------------------------------------------------------------------------
-sub selectInstallClass1 {
- my ($o, $verif, $l, $def, $l2, $def2) = @_;
- $verif->($o->ask_from_list(_("Install Class"), _("Which installation class do you want?"), $l, $def) || die 'already displayed');
-
- $::live ? 'Update' : $o->ask_from_list_(_("Install/Update"), _("Is this an install or an update?"), $l2, $def2);
-}
-
-#------------------------------------------------------------------------------
-sub selectInstallClass {
- my ($o, $clicked) = @_;
-
- my %c = my @c = (
- if_(!$::corporate,
- _("Recommended") => "beginner",
- ),
- if_($o->{meta_class} ne 'desktop',
- _("Expert") => "expert",
- ),
- );
- %c = @c = (_("Expert") => "expert") if $::expert && !$clicked;
-
- $o->set_help('selectInstallClassCorpo') if $::corporate;
-
- my $verifInstallClass = sub { $::expert = $c{$_[0]} eq "expert" };
- my $installMode = $o->{isUpgrade} ? $o->{keepConfiguration} ? __("Upgrade packages only") : __("Upgrade") : __("Install");
-
- $installMode = $o->selectInstallClass1($verifInstallClass,
- first(list2kv(@c)), ${{reverse %c}}{$::expert ? "expert" : "beginner"},
- [ __("Install"), __("Upgrade"), __("Upgrade packages only") ], $installMode);
-
- $o->{isUpgrade} = $installMode =~ /Upgrade/;
- $o->{keepConfiguration} = $installMode =~ /packages only/;
-
- install_steps::selectInstallClass($o);
-}
-
-#------------------------------------------------------------------------------
-sub selectMouse {
- my ($o, $force) = @_;
-
- $force ||= $o->{mouse}{unsafe} || $::expert;
-
- my $prev = $o->{mouse}{type} . '|' . $o->{mouse}{name};
- $o->{mouse} = mouse::fullname2mouse(
- $o->ask_from_treelist_('', _("Please choose the type of your mouse."),
- '|', [ mouse::fullnames ], $prev) || return) if $force;
-
- if ($force && $o->{mouse}{type} eq 'serial') {
- $o->set_help('selectSerialPort');
- $o->{mouse}{device} =
- $o->ask_from_listf(_("Mouse Port"),
- _("Please choose on which serial port your mouse is connected to."),
- \&mouse::serial_port2text,
- [ mouse::serial_ports ]) or return;
- }
- if (arch() =~ /ppc/ && $o->{mouse}{nbuttons} == 1) {
- #- set a sane default F11/F12
- $o->{mouse}{button2_key} = 87;
- $o->{mouse}{button3_key} = 88;
- $o->ask_from('', _("Buttons emulation"),
- [
- { label => _("Button 2 Emulation"), val => \$o->{mouse}{button2_key}, list => [ mouse::ppc_one_button_keys() ], format => \&mouse::ppc_one_button_key2text },
- { label => _("Button 3 Emulation"), val => \$o->{mouse}{button3_key}, list => [ mouse::ppc_one_button_keys() ], format => \&mouse::ppc_one_button_key2text },
- ]) or return;
- }
-
- if ($o->{mouse}{device} eq "usbmouse") {
- any::load_category($o, 'bus/usb', !$::expert, 1, $o->{pcmcia});
- eval {
- devices::make("usbmouse");
- modules::load(qw(hid mousedev usbmouse));
- };
- }
-
- $o->SUPER::selectMouse;
- 1;
-}
-#------------------------------------------------------------------------------
-sub setupSCSI {
- my ($o, $clicked) = @_;
-
- if (!$::noauto && arch() =~ /i.86/) {
- if ($o->{pcmcia} ||= !$::testing && c::pcmcia_probe()) {
- my $w = $o->wait_message(_("PCMCIA"), _("Configuring PCMCIA cards..."));
- my $results = modules::configure_pcmcia($o->{pcmcia});
- $w = undef;
- $results and $o->ask_warn('', $results);
- }
- }
- {
- my $w = $o->wait_message(_("IDE"), _("Configuring IDE"));
- modules::load_category('disk/cdrom');
- }
- any::load_category($o, 'disk/scsi|hardware_raid', !$::expert && !$clicked, 0, $o->{pcmcia});
-
- install_interactive::tellAboutProprietaryModules($o) if !$clicked;
-}
-
-sub ask_mntpoint_s {
- my ($o, $fstab) = @_;
- $o->set_help('ask_mntpoint_s');
-
- my @fstab = grep { isTrueFS($_) } @$fstab;
- @fstab = grep { isSwap($_) } @$fstab if @fstab == 0;
- @fstab = @$fstab if @fstab == 0;
- die _("No partition available") if @fstab == 0;
-
- {
- my $w = $o->wait_message('', _("Scanning partitions to find mount points"));
- install_any::suggest_mount_points($fstab, $o->{prefix}, 'uniq');
- log::l("default mntpoint $_->{mntpoint} $_->{device}") foreach @fstab;
- }
- if (@fstab == 1) {
- $fstab[0]{mntpoint} = '/';
- } else {
- $o->ask_from('',
- _("Choose the mount points"),
- [ map { { label => partition_table::description($_),
- val => \$_->{mntpoint},
- not_edit => 0,
- list => [ '', fsedit::suggestions_mntpoint(fsedit::empty_all_hds()) ] }
- } grep { !$_->{real_mntpoint} || common::usingRamdisk() } @fstab ]) or return;
- }
- $o->SUPER::ask_mntpoint_s($fstab);
-}
-
-#------------------------------------------------------------------------------
-sub doPartitionDisks {
- my ($o) = @_;
-
- my $warned;
- install_any::getHds($o, sub {
- my ($err) = @_;
- $warned = 1;
- if ($o->ask_yesorno(_("Error"),
-_("I can't read your partition table, 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)
-
-Do you agree to loose all the partitions?
-", $err))) {
- 0;
- } else {
- $o->{partitioning}{readonly} = 1;
- 1;
- }
- }) or $warned or $o->ask_warn('',
-_("DiskDrake failed to read correctly the partition table.
-Continue at your own risk!"));
-
- if (arch() =~ /ppc/ && detect_devices::get_mac_generation =~ /NewWorld/) { #- need to make bootstrap part if NewWorld machine - thx Pixel ;^)
- if (defined $partition_table::mac::bootstrap_part) {
- #- don't do anything if we've got the bootstrap setup
- #- otherwise, go ahead and create one somewhere in the drive free space
- } else {
- if (defined $partition_table::mac::freepart_start && $partition_table::mac::freepart_size >= 1) {
- my ($hd) = $partition_table::mac::freepart_device;
- log::l("creating bootstrap partition on drive /dev/$hd->{device}, block $partition_table::mac::freepart_start");
- $partition_table::mac::bootstrap_part = $partition_table::mac::freepart_part;
- log::l("bootstrap now at $partition_table::mac::bootstrap_part");
- fsedit::add($hd, { start => $partition_table::mac::freepart_start, size => 1 << 11, type => 0x401, mntpoint => '' }, $o->{all_hds}, { force => 1, primaryOrExtended => 'Primary' });
- $new_bootstrap = 1;
- } else {
- $o->ask_warn('',_("No free space for 1MB bootstrap! Install will continue, but to boot your system, you'll need to create the bootstrap partition in DiskDrake"));
- }
- }
- }
-
- if ($o->{isUpgrade}) {
- # either one root is defined (and all is ok), or we take the first one we find
- my $p = fsedit::get_root_($o->{fstab});
- if (!$p) {
- my @l = install_any::find_root_parts($o->{fstab}, $o->{prefix}) or die _("No root partition found to perform an upgrade");
- $p = $o->ask_from_listf(_("Root Partition"),
- _("What is the root partition (/) of your system?"),
- \&partition_table::description, \@l) or die "setstep exitInstall\n";
- }
- install_any::use_root_part($o->{all_hds}, $p, $o->{prefix});
- } elsif ($::expert && $o->isa('interactive::gtk')) {
- install_interactive::partition_with_diskdrake($o, $o->{all_hds});
- } else {
- install_interactive::partitionWizard($o);
- }
-}
-
-#------------------------------------------------------------------------------
-sub rebootNeeded {
- my ($o) = @_;
- $o->ask_warn('', _("You need to reboot for the partition table modifications to take place"));
-
- install_steps::rebootNeeded($o);
-}
-
-#------------------------------------------------------------------------------
-sub choosePartitionsToFormat {
- my ($o, $fstab) = @_;
-
- $o->SUPER::choosePartitionsToFormat($fstab);
-
- my @l = grep { !$_->{isMounted} && $_->{mntpoint} &&
- (!isSwap($_) || $::expert) &&
- (!isFat($_) || $_->{notFormatted} || $::expert) &&
- (!isOtherAvailableFS($_) || $::expert || $_->{toFormat})
- } @$fstab;
- $_->{toFormat} = 1 foreach grep { isSwap($_) && !$::expert } @$fstab;
-
- return if @l == 0 || !$::expert && 0 == grep { ! $_->{toFormat} } @l;
-
- #- keep it temporary until the guy has accepted
- $_->{toFormatTmp} = $_->{toFormat} || $_->{toFormatUnsure} foreach @l;
-
- $o->ask_from_(
- { messages => _("Choose the partitions you want to format"),
- advanced_messages => _("Check bad blocks?"),
- },
- [ map {
- my $e = $_;
- ({
- text => partition_table::description($e), type => 'bool',
- val => \$e->{toFormatTmp}
- }, if_(!isLoopback($_) && !isThisFs("reiserfs", $_) && !isThisFs("xfs", $_) && !isThisFs("jfs", $_), {
- text => partition_table::description($e), type => 'bool', advanced => 1,
- disabled => sub { !$e->{toFormatTmp} },
- val => \$e->{toFormatCheck}
- })) } @l ]
- ) or die 'already displayed';
- #- ok now we can really set toFormat
- foreach (@l) {
- $_->{toFormat} = delete $_->{toFormatTmp};
- $_->{isFormatted} = 0;
- }
-}
-
-
-sub formatMountPartitions {
- my ($o, $fstab) = @_;
- my $w;
- fs::formatMount_all($o->{all_hds}{raids}, $o->{fstab}, $o->{prefix}, sub {
- my ($part) = @_;
- $w ||= $o->wait_message('', _("Formatting partitions"));
- $w->set(isLoopback($part) ?
- _("Creating and formatting file %s", $part->{loopback_file}) :
- _("Formatting partition %s", $part->{device}));
- });
- die _("Not enough swap space to fulfill installation, please add some") if availableMemory < 40 * 1024;
-}
-
-#------------------------------------------------------------------------------
-sub setPackages {
- my ($o, $rebuild_needed) = @_;
-
- my $w = $o->wait_message('', $rebuild_needed ? _("Looking for available packages and rebuilding rpm database...") :
- _("Looking for available packages..."));
- install_any::setPackages($o, $rebuild_needed);
-
- if ($rebuild_needed) {
- $w->set(_("Finding packages to upgrade..."));
- pkgs::selectPackagesToUpgrade($o->{packages}, $o->{prefix}, $o->{base}, $o->{toRemove}, $o->{toSave});
- } else {
- $w->set(_("Looking at packages already installed..."));
- pkgs::selectPackagesAlreadyInstalled($o->{packages}, $o->{prefix});
- }
-}
-#------------------------------------------------------------------------------
-sub choosePackages {
- my ($o, $packages, $compssUsers, $first_time) = @_;
-
- #- this is done at the very beginning to take into account
- #- selection of CD by user if using a cdrom.
- $o->chooseCD($packages) if $o->{method} eq 'cdrom' && !$::oem;
-
- my $availableC = install_steps::choosePackages(@_);
- my $individual = $::expert;
-
- require pkgs;
-
- my $min_size = pkgs::selectedSize($packages);
- $min_size < $availableC or die _("Your system does not have enough space left for installation or upgrade (%d > %d)", $min_size, $availableC);
-
- my $min_mark = $::expert ? 3 : 4;
-
- my $b = pkgs::saveSelected($packages);
- my $level = pkgs::setSelectedFromCompssList($packages, { map { $_ => 1 } map { @{$compssUsers->{$_}{flags}} } @{$o->{compssUsersSorted}} }, $min_mark, 0);
- my $max_size = pkgs::selectedSize($packages) + 1; #- avoid division by zero.
- log::l("max size (level $min_mark) is : " . formatXiB($max_size));
- pkgs::restoreSelected($b);
-
- $o->chooseGroups($packages, $compssUsers, $min_mark, \$individual, $max_size) if !$::corporate;
-
- ($o->{packages_}{ind}) =
- pkgs::setSelectedFromCompssList($packages, $o->{compssUsersChoice}, $min_mark, $availableC);
-
- $o->choosePackagesTree($packages) if $individual;
-
- install_any::warnAboutNaughtyServers($o);
-}
-
-sub choosePackagesTree {
- my ($o, $packages, $limit_to_medium) = @_;
-
- $o->ask_many_from_list('', _("Choose the packages you want to install"),
- {
- list => [ grep { !$limit_to_medium || pkgs::packageMedium($packages, $_) == $limit_to_medium }
- @{$packages->{depslist}} ],
- value => \&URPM::Package::flag_selected,
- label => \&URPM::Package::name,
- sort => 1,
- });
-}
-sub loadSavePackagesOnFloppy {
- my ($o, $packages) = @_;
- my $choice = $o->ask_from_listf('',
-_("Please choose load or save package selection on floppy.
-The format is the same as auto_install generated floppies."),
- sub { $_[0]{text} },
- [ { text => _("Load from floppy"), code => sub {
- while (1) {
- my $w = $o->wait_message(_("Package selection"), _("Loading from floppy"));
- log::l("load package selection from floppy");
- my $O = eval { install_any::loadO({}, 'floppy') };
- if ($@) {
- $w = undef; #- close wait message.
- $o->ask_okcancel('', _("Insert a floppy containing package selection"))
- or return;
- } else {
- install_any::unselectMostPackages($o);
- foreach (@{$O->{default_packages} || []}) {
- my $pkg = pkgs::packageByName($packages, $_);
- pkgs::selectPackage($packages, $pkg) if $pkg;
- }
- return 1;
- }
- }
- } },
- { text => _("Save on floppy"), code => sub {
- log::l("save package selection to floppy");
- install_any::g_default_packages($o, 'quiet');
- } },
- { text => _("Cancel") },
- ]);
- $choice->{code} and $choice->{code}();
-}
-sub chooseGroups {
- my ($o, $packages, $compssUsers, $min_level, $individual, $max_size) = @_;
-
- #- for all groups available, determine package which belongs to each one.
- #- this will enable getting the size of each groups more quickly due to
- #- limitation of current implementation.
- #- use an empty state for each one (no flag update should be propagated).
-
-#- OLD VERSION
- my $b = pkgs::saveSelected($packages);
- install_any::unselectMostPackages($o);
- pkgs::setSelectedFromCompssList($packages, {}, $min_level, $max_size);
- my $system_size = pkgs::selectedSize($packages);
- my ($sizes, $pkgs) = pkgs::computeGroupSize($packages, $min_level);
- pkgs::restoreSelected($b);
- log::l("system_size: $system_size");
-
- my @groups = @{$o->{compssUsersSorted}};
- my %stable_flags = grep_each { $::b } %{$o->{compssUsersChoice}};
- delete $stable_flags{$_} foreach map { @{$compssUsers->{$_}{flags}} } @groups;
-
- my $compute_size = sub {
- my %pkgs;
- my %flags = %stable_flags; @flags{@_} = ();
- my $total_size;
- A: while (my ($k, $size) = each %$sizes) {
- Or: foreach (split "\t", $k) {
- foreach (split "&&") {
- exists $flags{$_} or next Or;
- }
- $total_size += $size;
- $pkgs{$_} = 1 foreach @{$pkgs->{$k}};
- next A;
- }
- }
- log::l("computed size $total_size");
- log::l("chooseGroups: ", join(" ", sort keys %pkgs));
-
- int $total_size;
- };
- my %val = map {
- $_ => ! grep { ! $o->{compssUsersChoice}{$_} } @{$compssUsers->{$_}{flags}}
- } @groups;
-
-# @groups = grep { $size{$_} = round_down($size{$_} / sqr(1024), 10) } @groups; #- don't display the empty or small one (eg: because all packages are below $min_level)
- my ($all, $size, $unselect_all);
- my $available_size = install_any::getAvailableSpace($o) / sqr(1024);
- my $size_to_display = sub {
- my $lsize = $system_size + $compute_size->(map { @{$compssUsers->{$_}{flags}} } grep { $val{$_} } @groups);
-
- #- if a profile is deselected, deselect everything (easier than deselecting the profile packages)
- $unselect_all ||= $size > $lsize;
- $size = $lsize;
- _("Total size: %d / %d MB", pkgs::correctSize($size / sqr(1024)), $available_size);
- };
-
- while (1) {
- if ($available_size < 140) {
- # too small to choose anything. Defaulting to no group chosen
- $val{$_} = 0 foreach %val;
- last;
- }
-
- $o->reallyChooseGroups($size_to_display, $individual, \%val) or return;
- last if pkgs::correctSize($size / sqr(1024)) < $available_size;
-
- $o->ask_warn('', _("Selected size is larger than available space"));
- }
-
- $o->{compssUsersChoice}{$_} = 0 foreach map { @{$compssUsers->{$_}{flags}} } grep { !$val{$_} } keys %val;
- $o->{compssUsersChoice}{$_} = 1 foreach map { @{$compssUsers->{$_}{flags}} } grep { $val{$_} } keys %val;
-
- log::l("compssUsersChoice: " . (!$val{$_} && "not ") . "selected [$_] as [$o->{compssUsers}{$_}{label}]") foreach keys %val;
-
- $unselect_all and install_any::unselectMostPackages($o);
- #- if no group have been chosen, ask for using base system only, or no X, or normal.
- unless ($o->{isUpgrade} || grep { $val{$_} } keys %val) {
- my $docs = !$o->{excludedocs};
- my $minimal = !grep { $_ } values %{$o->{compssUsersChoice}};
-
- $o->ask_from(_("Type of install"),
- _("You haven't selected any group of packages.
-Please choose the minimal installation you want:"),
- [
- { val => \$o->{compssUsersChoice}{X}, type => 'bool', text => _("With X"), disabled => sub { $minimal } },
- if_($::expert || $minimal,
- { val => \$docs, type => 'bool', text => _("With basic documentation (recommended!)"), disabled => sub { $minimal } },
- { val => \$minimal, type => 'bool', text => _("Truly minimal install (especially no urpmi)") },
- ),
- ],
- changed => sub { $o->{compssUsersChoice}{X} = $docs = 0 if $minimal },
- ) or return &chooseGroups;
-
- $o->{excludedocs} = !$docs || $minimal;
-
- #- reselect according to user selection.
- if ($minimal) {
- $o->{compssUsersChoice}{$_} = 0 foreach keys %{$o->{compssUsersChoice}};
- } else {
- my $X = $o->{compssUsersChoice}{X}; #- don't let setDefaultPackages modify this one
- install_any::setDefaultPackages($o, 'clean');
- $o->{compssUsersChoice}{X} = $X;
- }
- install_any::unselectMostPackages($o);
- }
- 1;
-}
-
-sub reallyChooseGroups {
- my ($o, $size_to_display, $individual, $val) = @_;
-
- my $size_text = &$size_to_display;
-
- my ($path, $all);
- $o->ask_from('', _("Package Group Selection"), [
- { val => \$size_text, type => 'label' }, {},
- (map {;
- my $old = $path;
- $path = $o->{compssUsers}{$_}{path};
- if_($old ne $path, { val => translate($path) }),
- {
- val => \$val->{$_},
- type => 'bool',
- disabled => sub { $all },
- text => translate($o->{compssUsers}{$_}{label}),
- help => translate($o->{compssUsers}{$_}{descr}),
- }
- } @{$o->{compssUsersSorted}}),
- if_($o->{meta_class} eq 'desktop', { text => _("All"), val => \$all, type => 'bool' }),
- if_($individual, { text => _("Individual package selection"), val => $individual, advanced => 1, type => 'bool' }),
- ], changed => sub { $size_text = &$size_to_display }) or return;
-
- if ($all) {
- $val->{$_} = 1 foreach keys %$val;
- }
- 1;
-}
-
-sub chooseCD {
- my ($o, $packages) = @_;
- my @mediums = grep { $_ != $install_any::boot_medium } pkgs::allMediums($packages);
- my @mediumsDescr = ();
- my %mediumsDescr = ();
-
- if (!common::usingRamdisk()) {
- #- mono-cd in case of no ramdisk
- foreach (@mediums) {
- pkgs::mediumDescr($packages, $install_any::boot_medium) eq pkgs::mediumDescr($packages, $_) and next;
- undef $packages->{mediums}{$_}{selected};
- }
- log::l("low memory install, using single CD installation (as it is not ejectable)");
- return;
- }
-
- #- the boot medium is already selected.
- $mediumsDescr{pkgs::mediumDescr($packages, $install_any::boot_medium)} = 1;
-
- #- build mediumDescr according to mediums, this avoid asking multiple times
- #- all the medium grouped together on only one CD.
- foreach (@mediums) {
- my $descr = pkgs::mediumDescr($packages, $_);
- exists $mediumsDescr{$descr} or push @mediumsDescr, $descr;
- $mediumsDescr{$descr} ||= $packages->{mediums}{$_}{selected};
- }
-
- #- if no other medium available or a poor beginner, we are choosing for him!
- #- note first CD is always selected and should not be unselected!
- return if @mediumsDescr == () || !$::expert;
-
- $o->set_help('chooseCD');
- $o->ask_many_from_list('',
-_("If you have all the CDs in the list below, click Ok.
-If you have none of those CDs, click Cancel.
-If only some CDs are missing, unselect them, then click Ok."),
- {
- list => \@mediumsDescr,
- label => sub { _("Cd-Rom labeled \"%s\"", $_[0]) },
- val => sub { \$mediumsDescr{$_[0]} },
- }) or do {
- $mediumsDescr{$_} = 0 foreach @mediumsDescr; #- force unselection of other CDs.
- };
- $o->set_help('choosePackages');
-
- #- restore true selection of medium (which may have been grouped together)
- foreach (@mediums) {
- my $descr = pkgs::mediumDescr($packages, $_);
- $packages->{mediums}{$_}{selected} = $mediumsDescr{$descr};
- log::l("select status of medium $_ is $packages->{mediums}{$_}{selected}");
- }
-}
-
-#------------------------------------------------------------------------------
-sub installPackages {
- my ($o, $packages) = @_;
- my ($current, $total) = 0;
-
- my $w = $o->wait_message(_("Installing"), _("Preparing installation"));
-
- my $old = \&pkgs::installCallback;
- local *pkgs::installCallback = sub {
- my ($data, $type, $id, $subtype, $_amount, $_total) = @_;
- if ($type eq 'user' && $subtype eq 'install') {
- $total = $_amount;
- } elsif ($type eq 'inst' && $subtype eq 'start') {
- my $p = $data->{depslist}[$id];
- $w->set(_("Installing package %s\n%d%%", $p->name, $total && 100 * $current / $total));
- $current += $p->size;
- } else { goto $old }
- };
-
- #- the modification is not local as the box should be living for other package installation.
- #- BEWARE this is somewhat duplicated (but not exactly from gtk code).
- undef *install_any::changeMedium;
- *install_any::changeMedium = sub {
- my ($method, $medium) = @_;
-
- #- if not using a cdrom medium, always abort.
- $method eq 'cdrom' && !$::oem and do {
- my $name = pkgs::mediumDescr($o->{packages}, $medium);
- local $| = 1; print "\a";
- my $r = $name !~ /commercial/i || ($o->{useless_thing_accepted2} ||= $o->ask_from_list_('', formatAlaTeX($com_license), [ __("Accept"), __("Refuse") ], "Accept") eq "Accept");
- $r &&= $o->ask_okcancel('', _("Change your Cd-Rom!
-
-Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when done.
-If you don't have it, press Cancel to avoid installation from this Cd-Rom.", $name), 1);
- return $r;
- };
- };
- my $install_result;
- catch_cdie { $install_result = $o->install_steps::installPackages($packages); }
- sub {
- if ($@ =~ /^error ordering package list: (.*)/) {
- $o->ask_yesorno('', [
-_("There was an error ordering packages:"), $1, _("Go on anyway?") ], 1) and return 1;
- ${$_[0]} = "already displayed";
- } elsif ($@ =~ /^error installing package list: (.*)/) {
- $o->ask_yesorno('', [
-_("There was an error installing packages:"), $1, _("Go on anyway?") ], 1) and return 1;
- ${$_[0]} = "already displayed";
- }
- 0;
- };
- if ($pkgs::cancel_install) {
- $pkgs::cancel_install = 0;
- die "setstep choosePackages\n";
- }
- $install_result;
-}
-
-sub afterInstallPackages($) {
- my ($o) = @_;
- my $w = $o->wait_message('', _("Post-install configuration"));
- $o->SUPER::afterInstallPackages($o);
-}
-
-sub copyKernelFromFloppy {
- my ($o) = @_;
- $o->ask_okcancel('', _("Please insert the Boot floppy used in drive %s", $o->{blank}), 1) or return;
- $o->SUPER::copyKernelFromFloppy();
-}
-
-sub updateModulesFromFloppy {
- my ($o) = @_;
- $o->ask_okcancel('', _("Please insert the Update Modules floppy in drive %s", $o->{updatemodules}), 1) or return;
- $o->SUPER::updateModulesFromFloppy();
-}
-
-#------------------------------------------------------------------------------
-sub configureNetwork {
- my ($o, $first_time, $noauto) = @_;
- require network::netconnect;
- network::netconnect::main($o->{prefix}, $o->{netcnx} ||= {}, $o->{netc}, $o->{mouse}, $o, $o->{intf},
- $first_time, $o->{lang} eq "fr_FR" && $o->{keyboard} eq "fr", $noauto);
-}
-
-#-configureNetworkIntf moved to network
-
-#-configureNetworkNet moved to network
-#------------------------------------------------------------------------------
-#-pppConfig moved to any.pm
-#------------------------------------------------------------------------------
-sub installCrypto {
- my $license =
-_("You now have the opportunity to download encryption software.
-
-WARNING:
-
-Due to different general requirements applicable to these software and imposed
-by various jurisdictions, customer and/or end user of theses software should
-ensure that the laws of his/their jurisdiction allow him/them to download, stock
-and/or use these software.
-
-In addition customer and/or end user shall particularly be aware to not infringe
-the laws of his/their jurisdiction. Should customer and/or end user not
-respect the provision of these applicable laws, he/they will incure serious
-sanctions.
-
-In no event shall Mandrakesoft nor its manufacturers and/or suppliers be liable
-for special, indirect or incidental damages whatsoever (including, but not
-limited to loss of profits, business interruption, loss of commercial data and
-other pecuniary losses, and eventual liabilities and indemnification to be paid
-pursuant to a court decision) arising out of use, possession, or the sole
-downloading of these software, to which customer and/or end user could
-eventually have access after having sign up the present agreement.
-
-
-For any queries relating to these agreement, please contact
-Mandrakesoft, Inc.
-2400 N. Lincoln Avenue Suite 243
-Altadena California 91001
-USA");
- goto &installUpdates; #- remove old code, keep this one ok though by transfering to installUpdates.
-}
-
-sub installUpdates {
- my ($o) = @_;
- my $u = $o->{updates} ||= {};
-
- $o->hasNetwork or return;
-
- is_empty_hash_ref($u) and $o->ask_yesorno('',
-formatAlaTeX(
-_("You now have the opportunity to download updated packages. These packages
-have been released 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 ?"))) || return;
-
- #- bring all interface up for installing crypto packages.
- install_interactive::upNetwork($o);
-
- require crypto;
- eval {
- my @mirrors = do { my $w = $o->wait_message('',
- _("Contacting Mandrake Linux web site to get the list of available mirrors..."));
- crypto::mirrors() };
- #- if no mirror have been found, use current time zone and propose among available.
- $u->{mirror} ||= crypto::bestMirror($o->{timezone}{timezone});
- $u->{mirror} = $o->ask_from_treelistf('',
- _("Choose a mirror from which to get the packages"),
- '|',
- \&crypto::mirror2text,
- \@mirrors,
- $u->{mirror});
- };
- return if $@ || !$u->{mirror};
-
- my $update_medium = do {
- my $w = $o->wait_message('', _("Contacting the mirror to get the list of available packages..."));
- crypto::getPackages($o->{prefix}, $o->{packages}, $u->{mirror});
- };
-
- if ($update_medium) {
- if ($o->choosePackagesTree($o->{packages}, $update_medium)) {
- $o->pkg_install;
- } 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).
- delete $update_medium->{selected};
- }
- #- 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.
- $o->install_urpmi;
- }
-
- #- stop interface using ppp only. FIXME REALLY TOCHECK isdn (costly network) ?
- # FIXME damien install_interactive::downNetwork($o, 'pppOnly');
-}
-
-
-#------------------------------------------------------------------------------
-sub configureTimezone {
- my ($o, $clicked) = @_;
-
- require timezone;
- $o->{timezone}{timezone} = $o->ask_from_treelist('', _("Which is your timezone?"), '/', [ timezone::getTimeZones($::g_auto_install ? '' : $o->{prefix}) ], $o->{timezone}{timezone}) || return;
- $o->set_help('configureTimezoneGMT');
-
- my $ntp = to_bool($o->{timezone}{ntp});
- $o->ask_from('', '', [
- { text => _("Hardware clock set to GMT"), val => \$o->{timezone}{UTC}, type => 'bool' },
- { text => _("Automatic time synchronization (using NTP)"), val => \$ntp, type => 'bool' },
- ]) or goto &configureTimezone
- if $::expert || $clicked;
- if ($ntp) {
- my @servers = split("\n", $timezone::ntp_servers);
-
- $o->ask_from('', '',
- [ { label => _("NTP Server"), val => \$o->{timezone}{ntp}, list => \@servers, not_edit => 0 } ]
- ) or goto &configureTimezone;
- $o->{timezone}{ntp} =~ s/.*\((.+)\)/$1/;
- } else {
- $o->{timezone}{ntp} = '';
- }
- install_steps::configureTimezone($o);
-}
-
-#------------------------------------------------------------------------------
-sub configureServices {
- my ($o, $clicked) = @_;
- require services;
- $o->{services} = services::ask($o, $o->{prefix}) if $::expert || $clicked;
- install_steps::configureServices($o);
-}
-
-sub summary {
- my ($o, $first_time) = @_;
- require pkgs;
-
- if ($first_time) {
- #- auto-detection
- $o->configurePrinter(0) if !$::expert;
- install_any::preConfigureTimezone($o);
- }
- my $mouse_name;
- my $format_mouse = sub { $mouse_name = translate($o->{mouse}{type}) . ' ' . translate($o->{mouse}{name}) };
- &$format_mouse;
-
- #- format printer description in a better way
- my $format_printers = sub {
- my $printer = $o->{printer};
- if (is_empty_hash_ref($printer->{configured})) {
- pkgs::packageByName($o->{packages}, 'cups')->flag_installed and return _("Remote CUPS server");
- return _("No printer");
- }
- my $entry;
- foreach ($printer->{currentqueue},
- map { $_->{queuedata} } ($printer->{configured}{$printer->{DEFAULT}}, values %{$printer->{configured}})) {
- $_ && ($_->{make} || $_->{model}) and return "$_->{make} $_->{model}";
- }
- return _("Remote CUPS server"); #- fall back in case of something wrong.
- };
-
- my @sound_cards = (arch() =~ /ppc/ ? \&modules::load_category : \&modules::probe_category)->('multimedia/sound');
-
- #- if no sound card are detected AND the user selected things needing a sound card,
- #- propose a special case for ISA cards
- my $isa_sound_card =
- !@sound_cards && ($o->{compssUsersChoice}{GAMES} || $o->{compssUsersChoice}{AUDIO}) &&
- sub {
- if ($o->ask_yesorno('', _("Do you have an ISA sound card?"))) {
- $o->do_pkgs->install('sndconfig');
- $o->ask_warn('', _("Run \"sndconfig\" after installation to configure your sound card"));
- } else {
- $o->ask_warn('', _("No sound card detected. Try \"harddrake\" after installation"));
- }
- };
-
- $o->ask_from_({
- messages => _("Summary"),
- cancel => '',
- }, [
-{ label => _("Mouse"), val => \$mouse_name, clicked => sub { $o->selectMouse(1); mouse::write($o->{prefix}, $o->{mouse}); &$format_mouse } },
-{ label => _("Keyboard"), val => \$o->{keyboard}, clicked => sub { $o->selectKeyboard(1) }, format => sub { translate(keyboard::keyboard2text($_[0])) } },
-{ label => _("Timezone"), val => \$o->{timezone}{timezone}, clicked => sub { $o->configureTimezone(1) } },
-{ label => _("Printer"), val => \$o->{printer}, clicked => sub { $o->configurePrinter(1) }, format => $format_printers },
- (map {
-{ label => _("ISDN card"), val => $_->{description}, clicked => sub { $o->configureNetwork } }
- } grep { $_->{driver} eq 'hisax' } detect_devices::probeall()),
- (map {
-{ label => _("Sound card"), val => $_->{description} }
- } @sound_cards),
- if_($isa_sound_card, { label => _("Sound card"), clicked => $isa_sound_card }),
- (map {
-{ label => _("TV card"), val => $_->{description}, clicked => sub {
- require harddrake::bttv;
- harddrake::bttv::config($o);
-} } } grep { $_->{driver} eq 'bttv' } detect_devices::probeall()),
-]);
- install_steps::configureTimezone($o); #- do not forget it.
-}
-
-#------------------------------------------------------------------------------
-sub configurePrinter {
- my ($o, $clicked) = @_;
- $::corporate && !$clicked and return;
-
- require printer;
- require printerdrake;
-
- #- try to determine if a question should be asked to the user or
- #- if he is autorized to configure multiple queues.
- my $ask_multiple_printer = ($::expert || $clicked) && 2 || scalar(printerdrake::auto_detect($o));
- $ask_multiple_printer-- or return;
-
- #- install packages needed for printer::getinfo()
- $::testing or $o->do_pkgs->install('foomatic');
-
- #- take default configuration, this include choosing the right system
- #- currently used by the system.
- my $printer = $o->{printer} ||= {};
- eval { add2hash($printer, printer::getinfo($o->{prefix})) };
-
- $printer->{PAPERSIZE} = (($o->{lang} =~ /^en_US/) ||
- ($o->{lang} =~ /^en_CA/) ||
- ($o->{lang} =~ /^fr_CA/)) ? 'Letter' : 'A4';
- printerdrake::main($printer, $o, $ask_multiple_printer, sub { install_interactive::upNetwork($o, 'pppAvoided') });
-
-}
-
-#------------------------------------------------------------------------------
-sub setRootPassword {
- my ($o, $clicked) = @_;
- my $sup = $o->{superuser} ||= {};
- my $auth = ($o->{authentication}{LDAP} && __("LDAP") ||
- $o->{authentication}{NIS} && __("NIS") ||
- $o->{authentication}{winbind} && __("Windows PDC") ||
- __("Local files"));
- $sup->{password2} ||= $sup->{password} ||= "";
-
- return if $o->{security} < 1 && !$clicked;
-
- $::isInstall and $o->set_help("setRootPassword", if_($::expert, "setRootPasswordAuth"));
-
- $o->ask_from_(
- {
- title => _("Set root password"),
- messages => _("Set root password"),
- cancel => ($o->{security} <= 2 && !$::corporate ? _("No password") : ''),
- callbacks => {
- complete => sub {
- $sup->{password} eq $sup->{password2} or $o->ask_warn('', [ _("The passwords do not match"), _("Please try again") ]), return (1,0);
- length $sup->{password} < 2 * $o->{security}
- and $o->ask_warn('', _("This password is too short (it must be at least %d characters long)", 2 * $o->{security})), return (1,0);
- return 0
- } } }, [
-{ label => _("Password"), val => \$sup->{password}, hidden => 1 },
-{ label => _("Password (again)"), val => \$sup->{password2}, hidden => 1 },
- if_($::expert,
-{ label => _("Authentication"), val => \$auth, list => [ __("Local files"), __("LDAP"), __("NIS"), __("Windows PDC") ], format => \&translate },
- ),
- ]) or return;
-
- if ($auth eq __("LDAP")) {
- $o->{authentication}{LDAP} ||= "localhost"; #- any better solution ?
- $o->{netc}{LDAPDOMAIN} ||= join (',', map { "dc=$_" } split /\./, $o->{netc}{DOMAINNAME});
- $o->ask_from('',
- _("Authentication LDAP"),
- [ { label => _("LDAP Base dn"), val => \$o->{netc}{LDAPDOMAIN} },
- { label => _("LDAP Server"), val => \$o->{authentication}{LDAP} },
- ]) or goto &setRootPassword;
- } else { $o->{authentication}{LDAP} = '' }
- if ($auth eq __("NIS")) {
- $o->{authentication}{NIS} ||= 'broadcast';
- $o->ask_from('',
- _("Authentication NIS"),
- [ { label => _("NIS Domain"), val => \ ($o->{netc}{NISDOMAIN} ||= $o->{netc}{DOMAINNAME}) },
- { label => _("NIS Server"), val => \$o->{authentication}{NIS}, list => ["broadcast"], not_edit => 0 },
- ]) or goto &setRootPassword;
- } else { $o->{authentication}{NIS} = '' }
- if ($auth eq __("Windows PDC")) {
- #- maybe we should browse the network like diskdrake --smb and get the 'doze server names in a list
- #- but networking isn't setup yet necessarily
- $o->ask_from('',
- _("Authentication Windows PDC"),
- [ { label => _("Windows Domain"), val => \ ($o->{netc}{WINDOMAIN} ||= $o->{netc}{DOMAINNAME}) },
- { label => _("PDC Server Name"), val => \$o->{authentication}{winbind} },
- ]) or goto &setRootPassword;
- $o->ask_warn('', _("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"));
- } else { $o->{authentication}{winbind} = '' }
- install_steps::setRootPassword($o);
-}
-
-#------------------------------------------------------------------------------
-#-addUser
-#------------------------------------------------------------------------------
-sub addUser {
- my ($o, $clicked) = @_;
- $o->{users} ||= [];
-
- if ($o->{security} < 1) {
- push @{$o->{users}}, { password => 'mandrake', realname => 'default', icon => 'automagic' }
- if !member('mandrake', map { $_->{name} } @{$o->{users}});
- }
- if (($o->{security} >= 1 || $clicked)) {
- any::ask_users($o->{prefix}, $o, $o->{users}, $o->{security});
- }
- any::get_autologin($o->{prefix}, $o);
- any::autologin($o->{prefix}, $o, $o);
-
- install_steps::addUser($o);
-}
-
-#------------------------------------------------------------------------------
-sub createBootdisk {
- my ($o, $first_time, $noauto) = @_;
-
- return if !$noauto && $first_time && !$::expert;
-
- if (arch() =~ /sparc/) {
- #- as probing floppies is a bit more different on sparc, assume always /dev/fd0.
- $o->ask_okcancel('',
- _("A custom bootdisk provides a way of booting into your Linux system without
-depending on the normal bootloader. This is useful if you don't want to install
-SILO on your system, or another operating system removes SILO, or SILO doesn't
-work with your hardware configuration. A custom bootdisk can also be used with
-the Mandrake rescue image, making it much easier to recover from severe system
-failures.
-
-If you want to create a bootdisk for your system, insert a floppy in the first
-drive and press \"Ok\"."),
- $o->{mkbootdisk}) or return $o->{mkbootdisk} = '';
- my @l = detect_devices::floppies_dev();
- $o->{mkbootdisk} = $l[0] if !$o->{mkbootdisk} || $o->{mkbootdisk} eq "1";
- $o->{mkbootdisk} or return;
- } else {
- my @l = detect_devices::floppies_dev();
- my %l = (
- 'fd0' => _("First floppy drive"),
- 'fd1' => _("Second floppy drive"),
- 'Skip' => _("Skip"),
- );
-
- if ($first_time || @l == 1) {
- $o->ask_yesorno('', formatAlaTeX(
- _("A custom bootdisk provides a way of booting into your Linux system without
-depending on the normal bootloader. This is useful if you don't want to install
-LILO (or grub) on your system, or another operating system removes LILO, or LILO doesn't
-work with your hardware configuration. A custom bootdisk can also be used with
-the Mandrake rescue image, making it much easier to recover from severe system
-failures. Would you like to create a bootdisk for your system?
-%s", isThisFs('xfs', fsedit::get_root($o->{fstab})) ? _("
-
-(WARNING! You're using XFS for your root partition,
-creating a bootdisk on a 1.44 Mb floppy will probably fail,
-because XFS needs a very large driver).") : '')),
- $o->{mkbootdisk}) or return $o->{mkbootdisk} = '';
- $o->{mkbootdisk} = $l[0] if !$o->{mkbootdisk} || $o->{mkbootdisk} eq "1";
- } else {
- @l or die _("Sorry, no floppy drive available");
-
- $o->ask_from_(
- {
- messages => _("Choose the floppy drive you want to use to make the bootdisk"),
- }, [ { val => \$o->{mkbootdisk}, list => \@l, format => sub { $l{$_[0]} || $_[0] } } ]
- ) or return;
- }
- $o->ask_warn('', _("Insert a floppy in %s", $l{$o->{mkbootdisk}} || $o->{mkbootdisk}));
- }
-
- my $w = $o->wait_message('', _("Creating bootdisk..."));
- install_steps::createBootdisk($o);
-}
-
-#------------------------------------------------------------------------------
-sub setupBootloaderBefore {
- my ($o) = @_;
- my $w = $o->wait_message('', _("Preparing bootloader..."));
- $o->set_help('empty');
- $o->SUPER::setupBootloaderBefore($o);
-}
-
-#------------------------------------------------------------------------------
-sub setupBootloader {
- my ($o, $more) = @_;
- if (arch() =~ /ppc/) {
- my $machtype = detect_devices::get_mac_generation();
- if ($machtype !~ /NewWorld/) {
- $o->ask_warn('', _("You appear to have an OldWorld or Unknown\n machine, the yaboot bootloader will not work for you.\nThe install will continue, but you'll\n need to use BootX to boot your machine"));
- log::l("OldWorld or Unknown Machine - no yaboot setup");
- return;
- }
- }
- if (arch() =~ /^alpha/) {
- $o->ask_yesorno('', _("Do you want to use aboot?"), 1) or return;
- catch_cdie { $o->SUPER::setupBootloader } sub {
- $o->ask_yesorno('',
-_("Error installing aboot,
-try to force installation even if that destroys the first partition?"));
- };
- } else {
- any::setupBootloader($o, $o->{bootloader}, $o->{all_hds}, $o->{fstab}, $o->{security}, $o->{prefix}, $more) or return;
-
- {
- my $w = $o->wait_message('', _("Installing bootloader"));
- eval { $o->SUPER::setupBootloader };
- }
- if (my $err = $@) {
- $err =~ /failed$/ or die;
- $o->ask_warn('',
- [ _("Installation of bootloader failed. The following error occured:"),
- grep { !/^Warning:/ } cat_("$o->{prefix}/tmp/.error") ]);
- unlink "$o->{prefix}/tmp/.error";
- die "already displayed";
- } elsif (arch() =~ /ppc/) {
- my $of_boot = cat_("$o->{prefix}/tmp/of_boot_dev") || die "Can't open $o->{prefix}/tmp/of_boot_dev";
- chop($of_boot);
- unlink "$o->{prefix}/tmp/.error";
- $o->ask_warn('', _("You may need to change your Open Firmware boot-device to\n enable the bootloader. If you don't 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));
- }
- }
-}
-
-sub miscellaneous {
- my ($o, $clicked) = @_;
-
- if ($::expert) {
- any::choose_security_level($o, \$o->{security}, \$o->{libsafe}) or return;
- }
- install_steps::miscellaneous($o);
-}
-
-#------------------------------------------------------------------------------
-sub configureX {
- my ($o, $clicked) = @_;
- $o->configureXBefore;
-
- #- strange, xfs must not be started twice...
- #- trying to stop and restart it does nothing good too...
- my $xfs_started if 0;
- run_program::rooted($o->{prefix}, "/etc/rc.d/init.d/xfs", "start") unless $::live || $xfs_started;
- $xfs_started = 1;
-
- require Xconfigurator;
- { local $::testing = 0; #- unset testing
- local $::auto = !$::expert && !$clicked;
-
- symlink "$o->{prefix}/etc/gtk", "/etc/gtk";
- Xconfigurator::main($o->{X}, $o, $o->do_pkgs,
- { allowFB => $o->{allowFB},
- allowNVIDIA_rpms => install_any::allowNVIDIA_rpms($o->{packages}),
- });
- }
- $o->configureXAfter;
-}
-
-#------------------------------------------------------------------------------
-sub generateAutoInstFloppy {
- my ($o, $replay) = @_;
-
- my $floppy = detect_devices::floppy();
-
- $o->ask_okcancel('', _("Insert a blank floppy in drive %s", $floppy), 1) or return;
-
- my $dev = devices::make($floppy);
- {
- my $w = $o->wait_message('', _("Creating auto install floppy..."));
- install_any::getAndSaveAutoInstallFloppy($o, $replay, $dev) or return;
- }
- common::sync(); #- if you shall remove the floppy right after the LED switches off
-}
-
-#------------------------------------------------------------------------------
-sub exitInstall {
- my ($o, $alldone) = @_;
-
- return $o->{step} = '' unless $alldone || $o->ask_yesorno('',
-_("Some steps are not completed.
-
-Do you really want to quit now?"), 0);
-
- install_steps::exitInstall($o);
-
- $o->exit unless $alldone;
-
- $o->ask_from_no_check(
- {
- messages => formatAlaTeX(
-_("Congratulations, installation is complete.
-Remove the boot media and press return to reboot.
-
-
-For information on fixes which are available for this release of Mandrake Linux,
-consult the Errata available from:
-
-
-http://www.linux-mandrake.com/en/82errata.php3
-
-
-Information on configuring your system is available in the post
-install chapter of the Official Mandrake Linux User's Guide.")),
- cancel => '',
- },
- [
- if_($::expert,
- { val => \ (my $t1 = _("Generate auto install floppy")), clicked => sub {
- my $t = $o->ask_from_list_('',
-_("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.
-"), [ __("Replay"), __("Automated") ]);
- $t and $o->generateAutoInstFloppy($t eq 'Replay');
- }, advanced => 1 },
- { val => \ (my $t2 = _("Save packages selection")), clicked => sub { install_any::g_default_packages($o) }, advanced => 1 },
- ),
- ]
- ) if $alldone && !$::g_auto_install;
-}
-
-
-#-######################################################################################
-#- Misc Steps Functions
-#-######################################################################################
-
-#-######################################################################################
-#- Wonderful perl :(
-#-######################################################################################
-1;
diff --git a/perl-install/install_steps_newt.pm b/perl-install/install_steps_newt.pm
deleted file mode 100644
index 1204c0729..000000000
--- a/perl-install/install_steps_newt.pm
+++ /dev/null
@@ -1,61 +0,0 @@
-package install_steps_newt; # $Id$
-
-use diagnostics;
-use strict;
-use vars qw(@ISA);
-
-@ISA = qw(install_steps_interactive interactive::newt);
-
-#-######################################################################################
-#- misc imports
-#-######################################################################################
-use install_steps_interactive;
-use interactive::newt;
-use install_any;
-use devices;
-use lang;
-use common;
-
-my $banner = __();
-
-sub banner {
- my $banner = translate(__("Mandrake Linux Installation %s"));
- my $l = first(Newt::GetScreenSize) - length($banner) - length($_[0]) + 1;
- Newt::DrawRootText(0, 0, sprintf($banner, ' ' x $l . $_[0]));
- Newt::Refresh;
-}
-
-sub new($$) {
- my ($type, $o) = @_;
-
- interactive::newt->new;
-
- banner('');
- Newt::PushHelpLine(_(" <Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen "));
-
- (bless {}, ref $type || $type)->SUPER::new($o);
-}
-
-sub enteringStep {
- my ($o, $step) = @_;
- $o->SUPER::enteringStep($step);
- banner(translate($o->{steps}{$step}{text}));
-}
-
-sub exitInstall {
- &install_steps_interactive::exitInstall;
- interactive::newt::end;
-}
-
-#-######################################################################################
-#- Steps Functions
-#-######################################################################################
-sub selectLanguage {
- my ($o) = @_;
- $o->SUPER::selectLanguage;
- lang::load_console_font($o->{lang});
-}
-
-
-1;
-
diff --git a/perl-install/install_steps_stdio.pm b/perl-install/install_steps_stdio.pm
deleted file mode 100644
index 1c0ea9abc..000000000
--- a/perl-install/install_steps_stdio.pm
+++ /dev/null
@@ -1,40 +0,0 @@
-package install_steps_stdio; # $Id$
-
-use diagnostics;
-use strict;
-use vars qw(@ISA);
-
-@ISA = qw(install_steps_interactive interactive::stdio);
-
-use common;
-use interactive::stdio;
-use install_steps_interactive;
-use lang;
-
-sub new($$) {
- my ($type, $o) = @_;
-
- (bless {}, ref $type || $type)->SUPER::new($o);
-}
-
-sub enteringStep {
- my ($o, $step) = @_;
- print _("Entering step `%s'\n", translate($o->{steps}{$step}{text}));
- $o->SUPER::enteringStep($step);
-}
-sub leavingStep {
- my ($o, $step) = @_;
- $o->SUPER::leavingStep($step);
- print "--------\n";
-}
-
-#-######################################################################################
-#- Steps Functions
-#-######################################################################################
-sub selectLanguage {
- my ($o, $first_time) = @_;
- $o->SUPER::selectLanguage($first_time);
- lang::load_console_font($o->{lang});
-}
-
-1;
diff --git a/perl-install/interactive.pm b/perl-install/interactive.pm
deleted file mode 100644
index e217ecefb..000000000
--- a/perl-install/interactive.pm
+++ /dev/null
@@ -1,401 +0,0 @@
-package interactive; # $Id$
-
-use diagnostics;
-use strict;
-
-#-######################################################################################
-#- misc imports
-#-######################################################################################
-use MDK::Common::Func;
-use common;
-
-#- 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_entries takes:
-#- val => reference to the value
-#- label => description
-#- icon => icon to put before the description
-#- help => tooltip
-#- advanced => wether it is shown in by default or only in advanced mode
-#- disabled => function returning wether it should be disabled (grayed)
-#- 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)
-#- range (with min, max)
-#- 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)
-#- entry (the default) (with hidden)
-#
-#- 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.
-#-
-
-
-#-######################################################################################
-#- OO Stuff
-#-######################################################################################
-sub new($) {
- my ($type) = @_;
-
- bless {}, ref $type || $type;
-}
-
-sub vnew {
- my ($type, $su, $icon) = @_;
- $su = $su eq "su";
- if ($ENV{INTERACTIVE_HTTP}) {
- require interactive::http;
- return interactive::http->new;
- }
- require c;
- if ($su) {
- $ENV{PATH} = "/sbin:/usr/sbin:$ENV{PATH}";
- $su = '' if $::testing || $ENV{TESTING};
- }
- if ($ENV{DISPLAY} && system('/usr/X11R6/bin/xtest') == 0) {
- if ($su && $>) {
- if (`/sbin/pidof "kdeinit: kwin"` > 0) {
- exec("kdesu", "-c", "$0 @ARGV") or die _("kdesu missing");
- } else {
- exec {'consolehelper'} $0, @ARGV or die _("consolehelper missing");
- }
- }
- eval { require interactive::gtk };
- if (!$@) {
- my $o = interactive::gtk->new;
- if ($icon && $icon ne 'default' && !$::isWizard) { $o->{icon} = $icon } else { undef $o->{icon} }
- return $o;
- }
- } else {
- if ($su && $>) {
- exec {'consolehelper'} $0, @ARGV or die _("consolehelper missing");
- }
- }
-
- if ($su && $>) {
- die "you must be root to run this program";
- }
- require 'log.pm';
- undef *log::l;
- *log::l = sub {}; # otherwise, it will bother us :(
- require interactive::newt;
- interactive::newt->new;
-}
-
-sub enter_console {}
-sub leave_console {}
-sub suspend {}
-sub resume {}
-sub end {}
-sub exit { exit($_[0]) }
-
-#-######################################################################################
-#- Interactive functions
-#-######################################################################################
-sub ask_warn {
- my ($o, $title, $message) = @_;
- local $::isWizard=0;
- ask_from_listf_no_check($o, $title, $message, undef, [ _("Ok") ]);
-}
-
-sub ask_yesorno {
- my ($o, $title, $message, $def, $help) = @_;
- ask_from_list_($o, $title, $message, [ __("Yes"), __("No") ], $def ? "Yes" : "No", $help) eq "Yes";
-}
-
-sub ask_okcancel {
- my ($o, $title, $message, $def, $help) = @_;
-
- if ($::isWizard) {
- $::no_separator = 1;
- $o->ask_from_no_check({ title => $title, messages => $message, focus_cancel => !$def });
- } else {
- ask_from_list_($o, $title, $message, [ __("Ok"), __("Cancel") ], $def ? "Ok" : "Cancel", $help) eq "Ok";
- }
-}
-
-sub ask_file {
- my ($o, $title, $dir) = @_;
- $o->ask_fileW($title, $dir);
-}
-sub ask_fileW {
- my ($o, $title, $dir) = @_;
- $o->ask_from_entry($title, _("Choose a file"));
-}
-
-sub ask_from_list {
- my ($o, $title, $message, $l, $def, $help) = @_;
- ask_from_listf($o, $title, $message, undef, $l, $def, $help);
-}
-
-sub ask_from_list_ {
- my ($o, $title, $message, $l, $def, $help) = @_;
- ask_from_listf($o, $title, $message, sub { translate($_[0]) }, $l, $def, $help);
-}
-
-sub ask_from_listf_ {
- my ($o, $title, $message, $f, $l, $def, $help) = @_;
- ask_from_listf($o, $title, $message, sub { translate($f->(@_)) }, $l, $def, $help);
-}
-sub ask_from_listf {
- my ($o, $title, $message, $f, $l, $def, $help) = @_;
- @$l == 0 and die "ask_from_list: empty list\n" . common::backtrace();
- @$l == 1 and return $l->[0];
- goto &ask_from_listf_no_check;
-}
-
-sub ask_from_listf_no_check {
- my ($o, $title, $message, $f, $l, $def, $help) = @_;
-
- if (@$l <= 2 && !$::isWizard) {
- my $ret = eval {
- ask_from_no_check($o,
- { title => $title, messages => $message, ok => $l->[0] && may_apply($f, $l->[0]),
- if_($l->[1], cancel => may_apply($f, $l->[1]), focus_cancel => $def eq $l->[1]) }, []
- ) ? $l->[0] : $l->[1];
- };
- die if $@ && $@ !~ /^wizcancel/;
- $@ ? undef : $ret;
- } else {
- ask_from($o, $title, $message, [ { val => \$def, type => 'list', list => $l, help => $help, format => $f } ]) && $def;
- }
-}
-
-sub ask_from_treelist {
- my ($o, $title, $message, $separator, $l, $def) = @_;
- ask_from_treelistf($o, $title, $message, $separator, undef, $l, $def);
-}
-sub ask_from_treelist_ {
- my ($o, $title, $message, $separator, $l, $def) = @_;
- my $transl = sub { join '|', map { translate($_) } split(quotemeta($separator), $_[0]) };
- ask_from_treelistf($o, $title, $message, $separator, $transl, $l, $def);
-}
-sub ask_from_treelistf {
- my ($o, $title, $message, $separator, $f, $l, $def) = @_;
- ask_from($o, $title, $message, [ { val => \$def, separator => $separator, list => $l, format => $f, sort => 1 } ]) or return;
- $def;
-}
-
-sub ask_many_from_list {
- my ($o, $title, $message, @l) = @_;
- @l = grep { @{$_->{list}} } @l or return '';
- foreach my $h (@l) {
- $h->{e}{$_} = {
- text => may_apply($h->{label}, $_),
- val => $h->{val} ? $h->{val}->($_) : do {
- my $i =
- $h->{value} ? $h->{value}->($_) :
- $h->{values} ? member($_, @{$h->{values}}) : 0;
- \$i;
- },
- type => 'bool',
- help => may_apply($h->{help}, $_, ''),
- icon => may_apply($h->{icon2f}, $_, ''),
- } foreach @{$h->{list}};
- if ($h->{sort}) {
- $h->{list} = [ sort { $h->{e}{$a}{text} cmp $h->{e}{$b}{text} } @{$h->{list}} ];
- }
- }
- $o->ask_from($title, $message, [ map { my $h = $_; map { $h->{e}{$_} } @{$h->{list}} } @l ]) or return;
-
- @l = map {
- my $h = $_;
- [ grep { ${$h->{e}{$_}{val}} } @{$h->{list}} ];
- } @l;
- wantarray ? @l : $l[0];
-}
-
-sub ask_from_entry {
- my ($o, $title, $message, %callback) = @_;
- first(ask_from_entries($o, $title, $message, [''], %callback));
-}
-sub ask_from_entries {
- my ($o, $title, $message, $l, %callback) = @_;
-
- my @l = map { my $i = ''; { label => $_, val => \$i } } @$l;
-
- $o->ask_from($title, $message, \@l, %callback) ?
- map { ${$_->{val}} } @l :
- undef;
-}
-
-#- can get a hash of callback: focus_out changed and complete
-#- moreove if you pass a hash with a field list -> combo
-#- if you pass a hash with a field hidden -> emulate stty -echo
-sub ask_from {
- my ($o, $title, $message, $l, %callback) = @_;
- ask_from_($o, { title => $title, messages => $message, callbacks => \%callback }, $l);
-}
-
-
-sub ask_from_normalize {
- my ($o, $common, $l) = @_;
-
- foreach my $e (@$l) {
- if (my $li = $e->{list}) {
- ref $e->{val} eq 'SCALAR' or internal_error($e->{val} ? "field {val} must be a reference" : "field {val} is mandatory");
- if ($e->{sort} || @$li > 10 && !exists $e->{sort}) {
- my @l2 = map { may_apply($e->{format}, $_) } @$li;
- my @places = sort { $l2[$a] cmp $l2[$b] } 0 .. $#l2;
- $e->{list} = $li = [ map { $li->[$_] } @places ];
- }
- $e->{type} = 'iconlist' if $e->{icon2f};
- $e->{type} = 'treelist' if $e->{separator};
- add2hash_($e, { not_edit => 1 });
- $e->{type} ||= 'combo';
- ${$e->{val}} = $li->[0] if ($e->{type} ne 'combo' || $e->{not_edit}) && !member(${$e->{val}}, @$li);
- if ($e->{type} eq 'combo' && $e->{format}) {
- my @l = map { $e->{format}->($_) } @{$e->{list}};
- delete $e->{format};
- each_index {
- ${$e->{val}} = $l[$::i] if $_ eq ${$e->{val}};
- } @{$e->{list}};
- ($e->{list}, $e->{saved_list}) = (\@l, $e->{list});
- }
- } elsif ($e->{type} eq 'range') {
- $e->{min} <= $e->{max} or die "bad range min $e->{min} > max $e->{max} (called from " . join(':', caller()) . ")";
- ${$e->{val}} = max($e->{min}, min(${$e->{val}}, $e->{max}));
- } elsif ($e->{type} eq 'button' || $e->{clicked} || $e->{clicked_may_quit}) {
- $e->{type} = 'button';
- $e->{clicked_may_quit} ||= $e->{clicked} ? sub { $e->{clicked}(); 0 } : sub {};
- $e->{val} = \ (my $v = $e->{val}) if !ref($e->{val});
- } elsif ($e->{type} eq 'label' || !ref($e->{val})) {
- $e->{type} = 'label';
- $e->{val} = \ (my $v = $e->{val}) if !ref($e->{val});
- } else {
- $e->{type} ||= 'entry';
- }
- $e->{disabled} ||= sub { 0 };
- }
-
- #- don't display empty lists and one element lists
- @$l = grep {
- if ($_->{list} && $_->{not_edit} && !$_->{allow_empty_list}) {
- if (@{$_->{list}} == ()) {
- eval {
- require log;
- log::l("ask_from_normalize: empty list for $_->{label}\n" . common::backtrace());
- };
- }
- @{$_->{list}} > 1;
- } else {
- 1;
- }
- } @$l;
-
- $common->{advanced_label} ||= _("Advanced");
- $common->{advanced_label_close} ||= _("Basic");
- $common->{$_} = [ deref($common->{$_}) ] foreach qw(messages advanced_messages);
- add2hash_($common, { ok => _("Ok"), cancel => _("Cancel") }) if !exists $common->{ok} && !$::isWizard;
- add2hash_($common->{callbacks} ||= {}, { changed => sub {}, focus_out => sub {}, complete => sub { 0 }, canceled => sub { 0 } });
-}
-
-sub ask_from_ {
- my ($o, $common, $l) = @_;
- ask_from_normalize($o, $common, $l);
- @$l or return 1;
- ask_from_real($o, $common, $l);
-}
-sub ask_from_no_check {
- my ($o, $common, $l) = @_;
- ask_from_normalize($o, $common, $l);
- $o->ask_fromW($common, [ grep { !$_->{advanced} } @$l ], [ grep { $_->{advanced} } @$l ]);
-}
-sub ask_from_real {
- my ($o, $common, $l) = @_;
- my $v = $o->ask_fromW($common, [ grep { !$_->{advanced} } @$l ], [ grep { $_->{advanced} } @$l ]);
- %$common = ();
- foreach my $e (@$l) {
- my $l = delete $e->{saved_list} or next;
- each_index {
- ${$e->{val}} = $l->[$::i] if $_ eq ${$e->{val}};
- } @{$e->{list}};
- $e->{list} = $l;
- }
- $v;
-}
-
-
-sub ask_browse_tree_info {
- my ($o, $title, $message, $common) = @_;
- add2hash_($common, { ok => _("Ok"), cancel => _("Cancel") });
- add2hash_($common, { title => $title, message => $message });
- add2hash_($common, { grep_allowed_to_toggle => sub { @_ },
- grep_unselected => sub { grep { $common->{node_state}($_) eq 'unselected' } @_ },
- check_interactive_to_toggle => sub { 1 },
- toggle_nodes => sub {
- my ($set_state, @nodes) = @_;
- my $new_state = !$common->{grep_unselected}($nodes[0]) ? 'selected' : 'unselected';
- $set_state->($_, $new_state) foreach @nodes;
- },
- });
- $o->ask_browse_tree_info_refW($common);
-}
-sub ask_browse_tree_info_refW { #- default definition, do not use with too many items (memory consuming)
- my ($o, $common) = @_;
- my ($l, $v, $h) = ([], [], {});
- $common->{build_tree}(sub {
- my ($node) = $common->{grep_allowed_to_toggle}(@_);
- if (my $state = $node && $common->{node_state}($node)) {
- push @$l, $node;
- $state eq 'selected' and push @$v, $node;
- $h->{$node} = $state eq 'selected';
- }
- }, 'flat');
- add2hash_($common, { list => $l, #- TODO interactivity of toggle is missing
- values => $v,
- help => sub { $common->{get_info}($_[0]) },
- });
- my ($new_v) = $o->ask_many_from_list($common->{title}, $common->{message}, $common) or return;
- $common->{toggle_nodes}(sub {}, grep { ! delete $h->{$_} } @$new_v);
- $common->{toggle_nodes}(sub {}, grep { $h->{$_} } keys %$h);
- 1;
-}
-
-sub wait_message {
- my ($o, $title, $message, $temp) = @_;
-
- my $w = $o->wait_messageW($title, [ _("Please wait"), deref($message) ]);
- push @tempory::objects, $w if $temp;
- my $b = before_leaving { $o->wait_message_endW($w) };
-
- #- enable access through set
- MDK::Common::Func::add_f4before_leaving(sub { $o->wait_message_nextW([ deref($_[1]) ], $w) }, $b, 'set');
- $b;
-}
-
-sub kill {}
-
-#-######################################################################################
-#- Wonderful perl :(
-#-######################################################################################
-1;
diff --git a/perl-install/interactive/gtk.pm b/perl-install/interactive/gtk.pm
deleted file mode 100644
index 8c71711ef..000000000
--- a/perl-install/interactive/gtk.pm
+++ /dev/null
@@ -1,636 +0,0 @@
-package interactive::gtk; # $Id$
-
-use diagnostics;
-use strict;
-use vars qw(@ISA);
-
-@ISA = qw(interactive);
-
-use interactive;
-use common;
-use my_gtk qw(:helpers :wrappers);
-
-my $forgetTime = 1000; #- in milli-seconds
-
-sub new {
- ($::windowheight, $::windowwidth) = my_gtk::gtkroot()->get_size if !$::isInstall;
- goto &interactive::new;
-}
-sub enter_console { my ($o) = @_; $o->{suspended} = common::setVirtual(1) }
-sub leave_console { my ($o) = @_; common::setVirtual(delete $o->{suspended}) }
-
-sub exit {
- gtkset_mousecursor_normal(); #- for restoring a normal in any case on standalone
- my_gtk::flush();
- $::isEmbedded and kill 10, $::CCPID; #10 is USR1
- c::_exit($_[1]) #- workaround
-}
-
-sub ask_warn {
- local $my_gtk::pop_it = 1;
- &interactive::ask_warn;
-}
-
-sub ask_fileW {
- my ($o, $title, $dir) = @_;
- my $w = my_gtk->new($title);
- $dir .= '/' if $dir !~ m|/$|;
- my_gtk::_ask_file($w, $title, $dir);
- $w->main;
-}
-
-sub create_boxradio {
- my ($e, $may_go_to_next, $changed, $double_click) = @_;
- my @l = map { may_apply($e->{format}, $_) } @{$e->{list}};
-
- my $boxradio = gtkpack2__(new Gtk::VBox(0, 0),
- my @radios = gtkradio('', @l));
- $boxradio->show;
- my $tips = new Gtk::Tooltips;
- mapn {
- my ($txt, $w) = @_;
- $w->signal_connect(button_press_event => $double_click) if $double_click;
-
- $w->signal_connect(key_press_event => sub {
- my ($w, $event) = @_;
- $may_go_to_next->($w, $event, 'tab');
- 1;
- });
- $w->signal_connect(clicked => sub {
- ${$e->{val}} = $txt;
- &$changed;
- });
- if ($e->{help}) {
- gtkset_tip($tips, $w,
- ref($e->{help}) eq 'HASH' ? $e->{help}{$txt} :
- ref($e->{help}) eq 'CODE' ? $e->{help}($txt) : $e->{help});
- }
- } $e->{list}, \@radios;
-
- $boxradio, sub {
- my ($v) = @_;
- mapn { $_[0]->set_active($_[1] eq $v) } \@radios, $e->{list};
- }, $radios[0];
-}
-
-sub create_clist {
- my ($e, $may_go_to_next, $changed, $double_click) = @_;
- my $curr;
- my @l = map { may_apply($e->{format}, $_) } @{$e->{list}};
-
- my $list = new Gtk::CList(1);
- $list->set_selection_mode('browse');
- $list->set_column_auto_resize(0, 1);
-
- my $select = sub {
- $list->set_focus_row($_[0]);
- $list->select_row($_[0], 0);
- $list->moveto($_[0], 0, 0.5, 0) if $list->row_is_visible($_[0]) ne 'full';
- };
-
-# ref $title && !@okcancel ?
-# $list->signal_connect(button_release_event => $leave) :
-# $list->signal_connect(button_press_event => sub { &$leave if $_[1]{type} =~ /^2/ });
-
- my ($first_time, $starting_word, $start_reg) = (1, '', "^");
- my $timeout;
- $list->signal_connect(key_press_event => sub {
- my ($w, $event) = @_;
- my $c = chr($event->{keyval} & 0xff);
-
- Gtk->timeout_remove($timeout) if $timeout; $timeout = '';
-
- if ($event->{keyval} >= 0x100) {
- &$may_go_to_next if $c eq "\r" || $c eq "\x8d";
- $starting_word = '' if $event->{keyval} != 0xffe4; # control
- } else {
- if ($event->{state} & 4) {
- #- control pressed
- $c eq "s" or return 1;
- $start_reg and $start_reg = '', return 1;
- $curr++;
- } else {
- &$may_go_to_next if $c eq ' ';
-
- $curr++ if $starting_word eq '' || $starting_word eq $c;
- $starting_word .= $c unless $starting_word eq $c;
- }
- my $word = quotemeta $starting_word;
- my $j; for ($j = 0; $j < @l; $j++) {
- $l[($j + $curr) % @l] =~ /$start_reg$word/i and last;
- }
- $j == @l ?
- $starting_word = '' :
- $select->(($j + $curr) % @l);
-
- $timeout = Gtk->timeout_add($forgetTime, sub { $timeout = $starting_word = ''; 0 } );
- }
- 1;
- });
- $list->show;
-
- $list->append($_) foreach @l;
-
- $list->signal_connect(select_row => sub {
- my ($w, $row) = @_;
- ${$e->{val}} = $e->{list}[$curr = $row];
- &$changed;
- });
- $list->signal_connect(button_press_event => $double_click) if $double_click;
-
- $list, sub {
- my ($v) = @_;
- eval {
- my $nb = find_index { $_ eq $v } @{$e->{list}};
- $select->($nb) if $nb != $list->focus_row;
- };
- };
-}
-
-sub create_ctree {
- my ($e, $may_go_to_next, $changed, $double_click, $tree_expanded) = @_;
- my @l = map { may_apply($e->{format}, $_) } @{$e->{list}};
-
- $tree_expanded = to_bool($tree_expanded); #- to reduce "Use of uninitialized value", especially when debugging
-
- my $sep = quotemeta $e->{separator};
- my $tree = Gtk::CTree->new(1, 0);
-
- my (%wtree, %wleaves, $size, $selected_via_click);
- my $parent; $parent = sub {
- if (my $w = $wtree{"$_[0]$e->{separator}"}) { return $w }
- my $s = '';
- foreach (split $sep, $_[0]) {
- $wtree{"$s$_$e->{separator}"} ||=
- $tree->insert_node($s ? $parent->($s) : undef, undef, [$_], 5, (undef) x 4, 0, $tree_expanded);
- $size++ if !$s;
- $s .= "$_$e->{separator}";
- }
- $wtree{$s};
- };
- foreach (@l) {
- my ($root, $leaf) = /(.*)$sep(.+)/ ? ($1, $2) : ('', $_);
- $wleaves{$_} = $tree->insert_node($parent->($root), undef, [$leaf], 5, (undef) x 4, 1, 0);
- }
- undef %wtree;
-
- my $select = sub {
- my ($node) = @_;
- for (my $c = $node; $c; $c = $c->row->parent) {
- $tree->expand($c);
- }
- for (my $i = 0; $tree->node_nth($i); $i++) {
- if ($tree->node_nth($i) == $node) {
- $tree->set_focus_row($i);
- last;
- }
- }
- $tree->select($node);
- $tree->node_moveto($node, 0, 0.5, 0) if $tree->node_is_visible($node) ne 'full';
- };
-
- my $curr = $tree->node_nth(0); #- default value
- $tree->set_column_auto_resize(0, 1);
- $tree->set_selection_mode('browse');
- $tree->set_row_height($tree->style->font->ascent + $tree->style->font->descent + 1);
- $tree->signal_connect(tree_select_row => sub {
- $curr = $_[1];
- if ($curr->row->is_leaf) {
- my @ll; for (my $c = $curr; $c; $c = $c->row->parent) {
- unshift @ll, first $tree->node_get_pixtext($c, 0);
- }
- my $val = join $e->{separator}, @ll;
- mapn {
- ${$e->{val}} = $_[1] if $val eq $_[0]
- } \@l, $e->{list};
- &$changed;
- } else {
- $tree->expand($curr) if $selected_via_click;
- }
- });
- my ($first_time, $starting_word, $start_reg) = (1, '', "^");
- my $timeout;
-
- my $toggle = sub {
- $curr->row->is_leaf ?
- &$may_go_to_next :
- $tree->toggle_expansion($curr);
- };
- $tree->signal_connect(key_press_event => sub {
- my ($w, $event) = @_;
- $selected_via_click = 0;
- my $c = chr($event->{keyval} & 0xff);
- $curr or return;
- Gtk->timeout_remove($timeout) if $timeout; $timeout = '';
-
- if ($event->{keyval} >= 0x100) {
- &$toggle if $c eq "\r" || $c eq "\x8d";
- $starting_word = '' if $event->{keyval} != 0xffe4; # control
- } else {
- my $next;
- if ($event->{state} & 4) {
- #- control pressed
- $c eq "s" or return 1;
- $start_reg and $start_reg = '', return 1;
- $next = 1;
- } else {
- &$toggle if $c eq ' ';
-
- $next = 1 if $starting_word eq '' || $starting_word eq $c;
- $starting_word .= $c unless $starting_word eq $c;
- }
- my $word = quotemeta $starting_word;
- my ($after, $best);
-
- $tree->pre_recursive(undef, sub {
- my ($tree, $node) = @_;
- $next &&= !$after;
- $after ||= $node == $curr;
- my ($t) = $tree->node_get_pixtext($node, 0);
-
- if ($t =~ /$start_reg$word/i) {
- if ($after && !$next) {
- ($best, $after) = ($node, 0);
- } else {
- $best ||= $node;
- }
- }
- });
- if (defined $best) {
- $select->($best);
- } else {
- $starting_word = '';
- }
- $timeout = Gtk->timeout_add($forgetTime, sub { $timeout = $starting_word = ''; 0 });
- }
- 1;
- });
- $tree->signal_connect(button_press_event => sub {
- $selected_via_click = 1;
- &$double_click if $curr->row->is_leaf && $double_click;
- });
-
- $tree, sub {
- my $v = may_apply($e->{format}, $_[0]);
- $select->($wleaves{$v} || return) if $wleaves{$v} != $tree->selection;
- }, $size;
-}
-
-sub create_list {
- my ($e, $may_go_to_next, $changed, $double_click) = @_;
- my $l = $e->{list};
- my $list = new Gtk::List();
- $list->set_selection_mode('browse');
-
- my $select = sub {
- $list->select_item($_[0]);
- };
-
- my $tips = new Gtk::Tooltips;
- my $toselect;
- map_index {
- my $item = new Gtk::ListItem(may_apply($e->{format}, $_));
- $item->signal_connect(key_press_event => sub {
- my ($w, $event) = @_;
- my $c = chr($event->{keyval} & 0xff);
- $may_go_to_next->($event) if $event->{keyval} < 0x100 ? $c eq ' ' : $c eq "\r" || $c eq "\x8d";
- 1;
- });
- $list->append_items($item);
- $item->show;
- if ($e->{help}) {
- gtkset_tip($tips, $item,
- ref($e->{help}) eq 'HASH' ? $e->{help}{$_} :
- ref($e->{help}) eq 'CODE' ? $e->{help}($_) : $e->{help});
- }
- $item->grab_focus if ${$e->{val}} && $_ eq ${$e->{val}};
- } @$l;
-
- #- signal_connect'ed after append_items otherwise it is called and destroys the default value
- $list->signal_connect(select_child => sub {
- my ($w, $row) = @_;
- ${$e->{val}} = $l->[$list->child_position($row)];
- &$changed;
- });
- $list->signal_connect(button_press_event => $double_click) if $double_click;
-
- $list, sub {
- my ($v) = @_;
- eval {
- $select->(find_index { $_ eq $v } @$l);
- };
- };
-}
-
-sub ask_fromW {
- my ($o, $common, $l, $l2) = @_;
- my $ignore = 0; #-to handle recursivity
-
- my $mainw = my_gtk->new($common->{title}, %$o);
- $mainw->sync; # for XPM's creation
-
- #-the widgets
- my (@widgets, @widgets_always, @widgets_advanced, $advanced, $advanced_pack, $has_horiz_scroll, $has_scroll, $total_size, $max_width);
- my $tooltips = new Gtk::Tooltips;
-
- my $set_all = sub {
- $ignore = 1;
- $_->{set}->(${$_->{e}{val}}) foreach @widgets_always, @widgets_advanced;
- $_->{real_w}->set_sensitive(!$_->{e}{disabled}()) foreach @widgets_always, @widgets_advanced;
- $ignore = 0;
- };
- my $get_all = sub {
- ${$_->{e}{val}} = $_->{get}->() foreach @widgets_always, @widgets_advanced;
- };
- my $update = sub {
- my ($f) = @_;
- return if $ignore;
- $get_all->();
- $f->();
- $set_all->();
- };
- my $create_widget = sub {
- my ($e, $ind) = @_;
-
- my $may_go_to_next = sub {
- my ($w, $event, $kind) = @_;
- if ($kind eq 'tab') {
- if (($event->{keyval} & 0x7f) == 0x9) {
- $w->signal_emit_stop("key_press_event");
- if ($ind == $#widgets) {
- $mainw->{ok}->grab_focus;
- } else {
- $widgets[$ind+1]{focus_w}->grab_focus;
- }
- }
- } else {
- if (!$event || ($event->{keyval} & 0x7f) == 0xd) {
- $w->signal_emit_stop("key_press_event") if $event;
- if ($ind == $#widgets) {
- @widgets == 1 ? $mainw->{ok}->clicked : $mainw->{ok}->grab_focus;
- } else {
- $widgets[$ind+1]{focus_w}->grab_focus;
- }
- }
- }
- };
- my $changed = sub { $update->(sub { $common->{callbacks}{changed}($ind) }) };
-
- my ($w, $real_w, $focus_w, $set, $get, $expand, $size, $width);
- if ($e->{type} eq 'iconlist') {
- $w = new Gtk::Button;
- $set = sub {
- gtkdestroy($e->{icon});
- my $f = $e->{icon2f}->($_[0]);
- $e->{icon} = -e $f ?
- gtkpng($f) :
- new Gtk::Label(may_apply($e->{format}, $_[0]));
- $w->add($e->{icon});
- $e->{icon}->show;
- };
- $w->signal_connect(clicked => sub {
- $set->(${$e->{val}} = next_val_in_array(${$e->{val}}, $e->{list}));
- $changed->();
- });
- $real_w = gtkpack_(new Gtk::HBox(0,10), 1, new Gtk::HBox(0,0), 0, $w, 1, new Gtk::HBox(0,0), );
- } elsif ($e->{type} eq 'bool') {
- $w = Gtk::CheckButton->new($e->{text});
- $w->signal_connect(clicked => $changed);
- $set = sub { $w->set_active($_[0]) };
- $get = sub { $w->get_active };
- $width = length $e->{text};
- } elsif ($e->{type} eq 'label') {
- $w = Gtk::Label->new(${$e->{val}});
- $set = sub { $w->set($_[0]) };
- $width = length ${$e->{val}};
- } elsif ($e->{type} eq 'button') {
- $w = Gtk::Button->new('');
- $w->signal_connect(clicked => sub {
- $get_all->();
- if ($::isWizard) {
- $mainw->{rwindow}->set_sensitive(0);
- } else {
- $mainw->{rwindow}->hide;
- }
- if (my $v = $e->{clicked_may_quit}()) {
- $mainw->{retval} = $v;
- Gtk->main_quit;
- }
- if ($::isWizard) {
- $mainw->{rwindow}->set_sensitive(1);
- } else {
- $mainw->{rwindow}->show;
- }
- $set_all->();
- });
- $set = sub { $w->child->set(may_apply($e->{format}, $_[0])) };
- $width = length may_apply($e->{format}, ${$e->{val}});
- } elsif ($e->{type} eq 'range') {
- my $adj = create_adjustment(${$e->{val}}, $e->{min}, $e->{max});
- $adj->signal_connect(value_changed => $changed);
- $w = new Gtk::HScale($adj);
- $w->set_digits(0);
- $w->signal_connect(key_press_event => $may_go_to_next);
- $set = sub { $adj->set_value($_[0]) };
- $get = sub { $adj->get_value };
- $size = 2;
- } elsif ($e->{type} =~ /list/) {
-
- my $quit_if_double_click =
- #- i'm the only one, double click means accepting
- @$l == 1 || $e->{quit_if_double_click} ?
- sub { if ($_[1]{type} =~ /^2/) { $mainw->{retval} = 1; Gtk->main_quit } } : '';
-
- my @para = ($e, $may_go_to_next, $changed, $quit_if_double_click);
- my $use_boxradio = exists $e->{gtk}{use_boxradio} ? $e->{gtk}{use_boxradio} : @{$e->{list}} <= 8;
-
- if ($e->{help}) {
- #- used only when needed, as key bindings are dropped by List (CList does not seems to accepts Tooltips).
- ($w, $set, $focus_w) = $use_boxradio ? create_boxradio(@para) : create_list(@para);
- } elsif ($e->{type} eq 'treelist') {
- ($w, $set, $size) = create_ctree(@para, $e->{tree_expanded});
- } else {
- ($w, $set, $focus_w) = $use_boxradio ? create_boxradio(@para) : create_clist(@para);
- }
- if (@{$e->{list}} > (@$l == 1 ? 10 : 4)) {
- $has_scroll = 1;
- $expand = 1;
- $real_w = createScrolledWindow($w);
- $size = (@$l == 1 ? 10 : 4);
- } else {
- $size ||= @{$e->{list}};
- }
- $width = max(map { length } @{$e->{list}});
- } else {
- if ($e->{type} eq "combo") {
- $w = new Gtk::Combo;
- $w->set_use_arrows_always(1);
- $w->entry->set_editable(!$e->{not_edit});
- $w->set_popdown_strings(@{$e->{list}});
- $w->disable_activate;
- ($real_w, $w) = ($w, $w->entry);
- my @l = sort { $b <=> $a } map { length } @{$e->{list}};
- $has_horiz_scroll = 1;
- $width = $l[@l / 16]; # take the third octile (think quartile)
- } else {
- $w = new Gtk::Entry;
- $w->signal_connect(focus_in_event => sub { $w->select_region });
- $w->signal_connect(focus_out_event => sub { $w->select_region(0,0) });
- }
- $w->signal_connect(key_press_event => $may_go_to_next);
- $w->signal_connect(changed => $changed);
- $w->set_visibility(0) if $e->{hidden};
- $set = sub { $w->set_text($_[0]) if $_[0] ne $w->get_text };
- $get = sub { $w->get_text };
- }
- $w->signal_connect(focus_out_event => sub {
- $update->(sub { $common->{callbacks}{focus_out}($ind) });
- });
- $tooltips->set_tip($w, $e->{help}) if $e->{help} && !ref($e->{help});
-
- $max_width = max($max_width, $width);
- $total_size += $size || 1;
-
- { e => $e, w => $w, real_w => $real_w || $w, focus_w => $focus_w || $w, expand => $expand,
- get => $get || sub { ${$e->{val}} }, set => $set || sub {},
- icon_w => -e $e->{icon} ? gtkpng($e->{icon}) : '' };
- };
- @widgets_always = map_index { $create_widget->($_, $::i ) } @$l;
- my $always_total_size = $total_size;
- @widgets_advanced = map_index { $create_widget->($_, $::i + @$l) } @$l2;
- my $advanced_total_size = $total_size - $always_total_size;
-
-
- my $pack = create_box_with_title($mainw, @{$common->{messages}});
- my ($totalheight, $totalwidth) = ($mainw->{box_size}, 0);
-
- my $set_default_size = sub {
- if (!$::isEmbedded && !$::isWizard || $my_gtk::pop_it) {
- if ($has_scroll || $has_horiz_scroll) {
- $mainw->{rwindow}->set_default_size($totalwidth+6+$my_gtk::shape_width, $has_scroll ? $totalheight+6+3+$my_gtk::shape_width : 0);
- }
- }
- };
-
- my $set_advanced = sub {
- ($advanced) = @_;
- $set_default_size->() if $advanced;
- $advanced ? $advanced_pack->show : $advanced_pack->hide;
- @widgets = (@widgets_always, $advanced ? @widgets_advanced : ());
- $mainw->sync; #- for $set_all below (mainly for the set of clist)
- $set_all->(); #- must be done when showing advanced lists (to center selected value)
- };
- my $advanced_button = [ $common->{advanced_label},
- sub {
- my ($w) = @_;
- $set_advanced->(!$advanced);
- $w->child->set($advanced ? $common->{advanced_label_close} : $common->{advanced_label});
- } ];
-
- my $create_widgets = sub {
- my ($size, @widgets) = @_;
- my $w = create_packtable({}, map { [($_->{icon_w}, $_->{e}{label}, $_->{real_w})]} @widgets);
-
- $size && $total_size or return $w; #- do not bother computing stupid/bad things
- my $ratio = max($size / $total_size, 0.2);
-
- my ($possibleheight, $possiblewidth) = $::isEmbedded && !$my_gtk::pop_it ? (450, 380) : ($::windowheight * 0.8, $::windowwidth * 0.8);
- $possibleheight -= $mainw->{box_size};
-
- my $wantedwidth = max(250, $max_width * 5);
- my $width = min($possiblewidth, $wantedwidth);
-
- my $wantedheight = my_gtk::n_line_size($size, 'various', $mainw->{rwindow});
- my $height = min($possibleheight * $ratio, max(200, $wantedheight));
-
- $totalheight += $height;
- $totalwidth = max($width, $totalwidth);
-
- my $has = $wantedwidth > $width || $wantedheight > $height;
- $has_scroll ||= $has;
- $has ? createScrolledWindow($w) : $w;
- };
-
- gtkpack_($pack,
- 1, $create_widgets->($always_total_size, @widgets_always),
- if_($common->{ok} || $::isWizard,
- 0, $mainw->create_okcancel($common->{ok}, $common->{cancel}, '', if_(@$l2, $advanced_button))));
- my $has_scroll_always = $has_scroll;
- my @adv = map { warp_text($_) } @{$common->{advanced_messages}};
- $advanced_pack =
- gtkpack_(new Gtk::VBox(0,0),
- 0, '',
- (map {; 0, new Gtk::Label($_) } @adv),
- 0, new Gtk::HSeparator,
- 1, $create_widgets->($advanced_total_size, @widgets_advanced));
-
- $pack->pack_start($advanced_pack, 1, 1, 0);
- gtkadd($mainw->{window}, $pack);
- $set_default_size->() if $has_scroll_always;
- $set_advanced->(0);
- (@widgets ? $widgets[0]{focus_w} : $common->{focus_cancel} ? $mainw->{cancel} : $mainw->{ok})->grab_focus();
-
- my $check = sub {
- my ($f) = @_;
- sub {
- $get_all->();
- my ($error, $focus) = $f->();
-
- if ($error) {
- $set_all->();
- $widgets[$focus || 0]{focus_w}->grab_focus();
- }
- !$error;
- }
- };
- $mainw->main(map { $check->($common->{callbacks}{$_}) } 'complete', 'canceled');
-}
-
-
-sub ask_browse_tree_info_refW {
- my ($o, $common) = @_;
- add2hash($common, { wait_message => sub { $o->wait_message(@_) } });
- my_gtk::ask_browse_tree_info($common);
-}
-
-sub wait_messageW($$$) {
- my ($o, $title, $messages) = @_;
-
- local $my_gtk::pop_it = 1;
- my $w = my_gtk->new($title, %$o, grab => 1);
- gtkadd($w->{window}, my $hbox = new Gtk::HBox(0,0));
- $hbox->pack_start(my $box = new Gtk::VBox(0,0), 1, 1, 10);
- $box->pack_start($_, 1, 1, 4) foreach my @l = map { new Gtk::Label(scalar warp_text($_)) } @$messages;
-
- ($w->{wait_messageW} = $l[$#l])->signal_connect(expose_event => sub { $w->{displayed} = 1 });
- $w->{rwindow}->set_position('center') if ($::isStandalone && (!$::isEmbedded && !$::isWizard || $my_gtk::pop_it));
- $w->{window}->show_all;
- $w->sync until $w->{displayed};
- $w;
-}
-sub wait_message_nextW {
- my ($o, $messages, $w) = @_;
- my $msg = warp_text(join "\n", @$messages);
- return if $msg eq $w->{wait_messageW}->get; #- needed otherwise no expose_event :(
- $w->{displayed} = 0;
- $w->{wait_messageW}->set($msg);
- $w->flush until $w->{displayed};
-}
-sub wait_message_endW {
- my ($o, $w) = @_;
- $w->destroy;
-}
-
-sub kill {
- my ($o) = @_;
- $o->{before_killing} ||= 0;
-
- while (my $e = shift @tempory::objects) { $e->destroy }
- while (@interactive::objects > $o->{before_killing}) {
- my $w = pop @interactive::objects;
- $w->destroy;
- }
- $o->{before_killing} = @interactive::objects;
-}
-
-1;
diff --git a/perl-install/interactive/http.pm b/perl-install/interactive/http.pm
deleted file mode 100644
index 785446c46..000000000
--- a/perl-install/interactive/http.pm
+++ /dev/null
@@ -1,159 +0,0 @@
-package interactive::http; # $Id$
-
-use diagnostics;
-use strict;
-use vars qw(@ISA);
-
-@ISA = qw(interactive);
-
-use CGI;
-use interactive;
-use common;
-use log;
-
-my $script_name = $ENV{INTERACTIVE_HTTP};
-my $no_header;
-my $uid;
-my $pipe_r = "/tmp/interactive_http_r";
-my $pipe_w = "/tmp/interactive_http_w";
-
-sub open_stdout {
- open STDOUT, ">$pipe_w" or die;
- $| = 1;
- print CGI::header();
- $no_header = 1;
-}
-
-# cont_stdout must be called after open_stdout and before the first print
-sub cont_stdout {
- my ($title) = @_;
- print CGI::start_html(-title => $title) if $no_header;
- $no_header = 0;
-}
-
-sub new_uid {
- my ($s, $ms) = gettimeofday();
- $s * 256 + $ms % 256;
-}
-
-sub new() {
- open_stdout();
- bless {}, $_[0];
-}
-
-sub end() {
- -e $pipe_r or return; # don't run this twice
- my $q = CGI->new;
- cont_stdout("Exit");
- print "It's done, thanks for playing", $q->end_html;
- close STDOUT;
- unlink $pipe_r, $pipe_w;
-}
-sub exit() { end; exit($_[1]) }
-END { end() }
-
-sub ask_fromW {
- my ($o, $common, $l, $l2) = @_;
-
- redisplay:
- my $uid = new_uid();
- my $q = CGI->new;
- $q->param(state => 'next_step');
- $q->param(uid => $uid);
- cont_stdout($common->{title});
-
-# print $q->img({ -src => "/icons/$o->{icon}" }) if $o->{icon};
- print @{$common->{messages}};
- print $q->start_form(-name => 'form', -action => $script_name, -method => 'post');
-
- print "<table>\n";
-
- map_index {
- my $e = $_;
-
- print "<tr><td>$e->{label}</td><td>\n";
-
- $e->{type} = 'list' if $e->{type} =~ /(icon|tree)list/;
-
- #- combo doesn't exist, fallback to a sensible default
- $e->{type} = $e->{not_edit} ? 'list' : 'entry' if $e->{type} eq 'combo';
-
- if ($e->{type} eq 'bool') {
- print $q->checkbox(-name => "w$::i", -checked => ${$e->{val}} && 'on', -label => $e->{text} || " ");
- } elsif ($e->{type} eq 'button') {
- print "nobuttonyet";
- } elsif ($e->{type} =~ /list/) {
- my %t;
- $t{$_} = may_apply($e->{format}, $_) foreach @{$e->{list}};
-
- print $q->scrolling_list(-name => "w$::i",
- -values => $e->{list},
- -default => [ ${$e->{val}} ],
- -size => 5, -multiple => '', -labels => \%t);
- } else {
- print $e->{hidden} ?
- $q->password_field(-name => "w$::i", -default => ${$e->{val}}) :
- $q->textfield (-name => "w$::i", -default => ${$e->{val}});
- }
-
- print "</td></tr>\n";
- } @$l;
-
- print "</table>\n";
- print $q->p();
- print $q->submit(-name => 'ok_submit', -value => $common->{ok} || _("Ok"));
- print $q->submit(-name => 'cancel_submit', -value => $common->{cancel}) if $common->{cancel};
- print $q->hidden('state'), $q->hidden('uid');
- print $q->end_form, $q->end_html;
-
- close STDOUT; # page terminated
-
- while (1) {
- local *F;
- open F, "<$pipe_r" or die;
- $q = CGI->new(\*F);
- $q->param('force_exit_dead_prog') and $o->exit;
- last if $q->param('uid') == $uid;
-
- open_stdout(); # re-open for writing
- cont_stdout(_("Error"));
- print $q->h1(_("Error")), $q->p("Sorry, you can't go back");
- goto redisplay;
- }
- map_index {
- my $e = $_;
- my $v = $q->param("w$::i");
- if ($e->{type} eq 'bool') {
- $v = $v eq 'on';
- }
- ${$e->{val}} = $v;
- } @$l;
-
- open_stdout(); # re-open for writing
- $q->param('ok_submit');
-}
-
-sub p {
- print "\n" . CGI::br($_) foreach @_;
-}
-
-sub wait_messageW {
- my ($o, $title, $messages) = @_;
- cont_stdout();
- print "\n" . CGI::p();
- p(@$messages);
-}
-
-sub wait_message_nextW {
- my ($o, $messages, $w) = @_;
- p(@$messages);
-}
-sub wait_message_endW {
- my ($o, $w) = @_;
- p(_("Done"));
- print "\n" . CGI::p();
-}
-
-
-
-1;
diff --git a/perl-install/interactive/newt.pm b/perl-install/interactive/newt.pm
deleted file mode 100644
index da18c198a..000000000
--- a/perl-install/interactive/newt.pm
+++ /dev/null
@@ -1,254 +0,0 @@
-package interactivew::newt; # $Id$
-
-use diagnostics;
-use strict;
-use vars qw(@ISA);
-
-@ISA = qw(interactive);
-
-use interactive;
-use common;
-use log;
-use Newt::Newt; #- !! provides Newt and not Newt::Newt
-
-my ($width, $height) = (80, 25);
-my @wait_messages;
-
-sub new() {
- Newt::Init;
- Newt::Cls;
- Newt::SetSuspendCallback;
- ($width, $height) = Newt::GetScreenSize;
- open STDERR,">/dev/null" if $::isStandalone && !$::testing;
- bless {}, $_[0];
-}
-
-sub enter_console { Newt::Suspend }
-sub leave_console { Newt::Resume }
-sub suspend { Newt::Suspend }
-sub resume { Newt::Resume }
-sub end() { Newt::Finished }
-sub exit() { end; exit($_[1]) }
-END { end() }
-
-sub myTextbox {
- my $allow_scroll = shift;
-
- my $width = $width - 9;
- my @l = map { /(.{1,$width})/g } map { split "\n" } @_;
- my $h = min($height - 13, int @l);
- my $flag = 1 << 6;
- if ($h < @l) {
- if ($allow_scroll) {
- $flag |= 1 << 2; #- NEWT_FLAG_SCROLL
- } else {
- # remove the text, no other way!
- @l = @l[0 .. $h-1];
- }
- }
- my $mess = Newt::Component::Textbox(1, 0, my $w = max(map { length } @l) + 1, $h, $flag);
- $mess->TextboxSetText(join("\n", @_));
- $mess, $w + 1, $h;
-}
-
-sub separator {
- my $blank = Newt::Component::Form(\undef, '', 0);
- $blank->FormSetWidth ($_[0]);
- $blank->FormSetHeight($_[1]);
- $blank;
-}
-sub checkval { $_[0] && $_[0] ne ' ' ? '*' : ' ' }
-
-sub ask_fromW {
- my ($o, $common, $l, $l2) = @_;
- my $ignore; #-to handle recursivity
- my $old_focus = -2;
-
- #-the widgets
- my (@widgets, $total_size);
-
- my $set_all = sub {
- $ignore = 1;
- $_->{set}->(${$_->{e}{val}}) foreach @widgets;
-# $_->{w}->set_sensitive(!$_->{e}{disabled}()) foreach @widgets;
- $ignore = 0;
- };
- my $get_all = sub {
- ${$_->{e}{val}} = $_->{get}->() foreach @widgets;
- };
- my $create_widget = sub {
- my ($e, $ind) = @_;
-
- $e->{type} = 'list' if $e->{type} =~ /(icon|tree)list/;
-
- #- combo doesn't exist, fallback to a sensible default
- $e->{type} = $e->{not_edit} ? 'list' : 'entry' if $e->{type} eq 'combo';
-
- my $changed = sub {
- return if $ignore;
- return $old_focus++ if $old_focus == -2; #- handle special first case
- $get_all->();
-
- #- TODO: this is very rough :(
- $common->{callbacks}{$old_focus == $ind ? 'changed' : 'focus_out'}->($ind);
-
- $set_all->();
- $old_focus = $ind;
- };
-
- my ($w, $real_w, $set, $get, $expand, $size);
- if ($e->{type} eq 'bool') {
- $w = Newt::Component::Checkbox(-1, -1, $e->{text} || '', checkval(${$e->{val}}), " *");
- $set = sub { $w->CheckboxSetValue(checkval($_[0])) };
- $get = sub { $w->CheckboxGetValue == ord '*' };
- } elsif ($e->{type} eq 'button') {
- $w = Newt::Component::Button(-1, -1, simplify_string(may_apply($e->{format}, ${$e->{val}})));
- } elsif ($e->{type} =~ /list/) {
- my ($h, $wi) = (@$l == 1 && $height > 30 ? 10 : 5, 20);
- my $scroll = @{$e->{list}} > $h ? 1 << 2 : 0;
- $size = min(int @{$e->{list}}, $h);
-
- $w = Newt::Component::Listbox(-1, -1, $h, $scroll); #- NEWT_FLAG_SCROLL
- foreach (@{$e->{list}}) {
- my $t = simplify_string(may_apply($e->{format}, $_));
- $w->ListboxAddEntry($t, $_);
- $wi = max($wi, length $t);
- }
- $w->ListboxSetWidth(min($wi + 3, $width - 7)); # 3 added for the scrollbar (?)
- $get = sub { $w->ListboxGetCurrent };
- $set = sub {
- my ($val) = @_;
- map_index {
- $w->ListboxSetCurrent($::i) if $val eq $_;
- } @{$e->{list}};
- };
- } else {
- $w = Newt::Component::Entry(-1, -1, '', 20, ($e->{hidden} && 1 << 11) | 1 << 2);
- $get = sub { $w->EntryGetValue };
- $set = sub { $w->EntrySet($_[0], 1) };
- }
- $total_size += $size || 1;
-
- #- !! callbacks must be kept otherwise perl will free them !!
- #- (better handling of addCallback needed)
-
- { e => $e, w => $w, real_w => $real_w || $w, expand => $expand, callback => $changed,
- get => $get || sub { ${$e->{val}} }, set => $set || sub {} };
- };
- @widgets = map_index { $create_widget->($_, $::i) } @$l;
-
- $_->{w}->addCallback($_->{callback}) foreach @widgets;
-
- $set_all->();
-
- my $grid = Newt::Grid::CreateGrid(3, max(1, int @$l));
- map_index {
- $grid->GridSetField(0, $::i, 1, ${Newt::Component::Label(-1, -1, $_->{e}{label})}, 0, 0, 1, 0, 1, 0);
- $grid->GridSetField(1, $::i, 1, ${$_->{real_w}}, 0, 0, 0, 0, 1, 0);
- } @widgets;
-
- my $listg = do {
- my $height = 18;
- #- use a scrolled window if there is a lot of checkboxes (aka
- #- ask_many_from_list) or a lot of widgets in general (aka
- #- options of a native PostScript printer in printerdrake)
- #- !! works badly together with list's (lists are one widget, so a
- #- big list window will not switch to scrollbar mode) :-(
- if ((((grep { $_->{type} eq 'bool' } @$l) > 6) ||
- ((@$l) > 3)) && $total_size > $height) {
- $grid->GridPlace(1, 1); #- Uh?? otherwise the size allocated is bad
-
- my $scroll = Newt::Component::VerticalScrollbar(-1, -1, $height, 9, 10);
- my $subf = $scroll->Form('', 0);
- $subf->FormSetHeight($height);
- $subf->FormAddGrid($grid, 0);
- Newt::Grid::HCloseStacked($subf, separator(1, $height), $scroll);
- } else {
- $grid;
- }
- };
- my ($buttons, $ok, $cancel) = Newt::Grid::ButtonBar(simplify_string($common->{ok} || _("Ok")),
- if_($common->{cancel}, simplify_string($common->{cancel})));
-
- my $form = Newt::Component::Form(\undef, '', 0);
- my $window = Newt::Grid::GridBasicWindow(first(myTextbox(@widgets == 0, @{$common->{messages}})), $listg, $buttons);
- $window->GridWrappedWindow($common->{title} || '');
- $form->FormAddGrid($window, 1);
-
- my $check = sub {
- my ($f) = @_;
-
- $get_all->();
- my ($error, $focus) = $f->();
-
- if ($error) {
- $set_all->();
- }
- !$error;
- };
-
- my ($destroyed, $canceled);
- do {
- my $r = do {
- local $::setstep = 1;
- $form->RunForm;
- };
- $canceled = $cancel && $$r == $$cancel;
-
- if (my ($button) = grep { $$r == ${$_->{w}} } @widgets) {
- $get_all->();
- my $v = do {
- local $::setstep = 1;
- $button->{e}{clicked_may_quit}();
- };
- $form->FormDestroy;
- Newt::PopWindow;
- return $v || &ask_fromW;
- }
- } until ($check->($common->{callbacks}{$canceled ? 'canceled' : 'complete'}));
-
- $form->FormDestroy;
- Newt::PopWindow;
- !$canceled;
-}
-
-
-sub waitbox {
- my ($title, $messages) = @_;
- my ($t, $w, $h) = myTextbox(1, @$messages);
- my $f = Newt::Component::Form(\undef, '', 0);
- Newt::CenteredWindow($w, $h, $title);
- $f->FormAddComponent($t);
- $f->DrawForm;
- Newt::Refresh;
- $f->FormDestroy;
- push @wait_messages, $f;
- $f;
-}
-
-
-sub wait_messageW {
- my ($o, $title, $messages) = @_;
- { form => waitbox($title, $messages), title => $title };
-}
-
-sub wait_message_nextW {
- my ($o, $messages, $w) = @_;
- $o->wait_message_endW($w);
- $o->wait_messageW($w->{title}, $messages);
-}
-sub wait_message_endW {
- my ($o, $w) = @_;
- my $wait = pop @wait_messages;
-# log::l("interactive_newt does not handle none stacked wait-messages") if $w->{form} != $wait;
- Newt::PopWindow;
-}
-
-sub simplify_string {
- my ($s) = @_;
- $s =~ s/\n/ /g;
- $s = substr($s, 0, 40); #- truncate if too long
- $s;
-}
-
-1;
diff --git a/perl-install/interactive/stdio.pm b/perl-install/interactive/stdio.pm
deleted file mode 100644
index 126e1d897..000000000
--- a/perl-install/interactive/stdio.pm
+++ /dev/null
@@ -1,171 +0,0 @@
-package interactivew::stdio; # $Id$
-
-use diagnostics;
-use strict;
-use vars qw(@ISA);
-
-@ISA = qw(interactive);
-
-use interactive;
-use common;
-
-$| = 1;
-
-sub readln {
- my $l = <STDIN>;
- chomp $l;
- $l;
-}
-
-sub check_it {
- my ($i, $n) = @_;
- $i =~ /^\s*\d+\s*$/ && 1 <= $i && $i <= $n
-}
-
-sub good_choice {
- my ($def_s, $max) = @_;
- my $i;
- do {
- defined $i and print _("Bad choice, try again\n");
- print _("Your choice? (default %s) ", $def_s);
- $i = readln();
- } until (!$i || check_it($i, $max));
- $i;
-}
-
-sub ask_fromW {
- my ($o, $common, $l, $l2) = @_;
-
-ask_fromW_begin:
-
- my $already_entries = 0;
- my $predo_widget = sub {
- my ($e) = @_;
-
- $e->{type} = 'list' if $e->{type} =~ /(icon|tree)list/;
- #- combo doesn't exist, fallback to a sensible default
- $e->{type} = $e->{not_edit} ? 'list' : 'entry' if $e->{type} eq 'combo';
-
- if ($e->{type} eq 'entry') {
- my $t = "\t$e->{label} $e->{text}\n";
- if ($already_entries) {
- length($already_entries) > 1 and print _("Entries you'll have to fill:\n%s", $already_entries);
- $already_entries = 1;
- print $t;
- } else {
- $already_entries = $t;
- }
- }
- };
-
- my @labels = ();
- my $format_label = sub { my ($e) = @_; return "`${$e->{val}}' $e->{label} $e->{text}\n"; };
- my $do_widget = sub {
- my ($e, $ind) = @_;
-
- if ($e->{type} eq 'bool') {
- print "$e->{text} $e->{label}\n";
- print _("Your choice? (0/1, default `%s') ", ${$e->{val}} || '0');
- my $i = readln();
- if ($i ne '') {
- to_bool($i) != to_bool(${$e->{val}}) and $common->{callbacks}{changed}->($ind);
- ${$e->{val}} = $i;
- }
- } elsif ($e->{type} =~ /list/) {
- ($e->{text} || $e->{label}) and print "=> $e->{label} $e->{text}\n";
- my $n = 0; my $size = 0; my $def_n = 0;
- foreach (@{$e->{list}}) {
- $n++;
- my $t = "$n: " . may_apply($e->{format}, $_) . "\t";
- if ($size + length($t) >= 80) {
- print "\n";
- $size = 0;
- }
- print $t;
- $size += length($t);
- ${$e->{val}} eq $_ and $def_n = $n;
- }
- print "\n";
- my $i = good_choice(may_apply($e->{format}, ${$e->{val}}), $n);
- print "Setting to <", $i ? ${$e->{list}}[$i-1] : ${$e->{val}}, ">\n";
- $i and ${$e->{val}} = ${$e->{list}}[$i-1], $common->{callbacks}{changed}->($ind);
- } elsif ($e->{type} eq 'button') {
- print _("Button `%s': %s", $e->{label}, may_apply($e->{format}, ${$e->{val}})), " $e->{text}\n";
- print _("Do you want to click on this button?");
- my $i = readln();
- ($i && $i !~ /^n/i) and $e->{clicked_may_quit}(), $common->{callbacks}{changed}->($ind);
- } elsif ($e->{type} eq 'label') {
- my $t = $format_label->($e);
- push @labels, $t;
- print $t;
- } elsif ($e->{type} eq 'entry') {
- print "$e->{label} $e->{text}\n";
- print _("Your choice? (default `%s'%s) ", ${$e->{val}}, ${$e->{val}} ne '' ? _(" enter `void' for void entry") : '');
- my $i = readln();
- ${$e->{val}} = $i || ${$e->{val}};
- ${$e->{val}} = '' if ${$e->{val}} eq 'void';
- print "Setting to <${$e->{val}}>\n";
- $i and $common->{callbacks}{changed}->($ind);
- } else {
- print "UNSUPPORTED WIDGET TYPE (type <$e->{type}> label <$e->{label}> text <$e->{text}> val <${$e->{val}}>\n";
- }
- };
-
- print "* ";
- $common->{title} and print "$common->{title}\n";
- print map { "$_\n" } @{$common->{messages}};
-
- $predo_widget->($_) foreach (@$l);
- if (listlength(@$l) > 30) {
- my $ll = listlength(@$l);
- print _("=> There are many things to choose from (%s).\n", $ll);
-ask_fromW_handle_verylonglist:
- print _(
-"Please choose the first number of the 10-range you wish to edit,
-or just hit Enter to proceed.
-Your choice? ");
- my $i = readln();
- if (check_it($i, $ll)) {
- map_index { $do_widget->($_, $::i) } grep_index { $::i >= $i-1 && $::i < $i+9 } @$l;
- goto ask_fromW_handle_verylonglist;
- }
- } else {
- map_index { $do_widget->($_, $::i) } @$l;
- }
-
- my $lab;
- map_index { $labels[$::i] && (($lab = $format_label->($_)) ne $labels[$::i]) and print _("=> Notice, a label changed:\n%s", $lab); }
- grep { $_->{type} eq 'label' } @$l;
-
- my $i;
- if (listlength(@$l) != 1 || $common->{ok} ne _("Ok") || $common->{cancel} ne _("Cancel")) {
- print "[1] ", $common->{ok} || _("Ok");
- $common->{cancel} and print " [2] $common->{cancel}";
- @$l and print " [9] ", _("Re-submit");
- print "\n";
- do {
- defined $i and print _("Bad choice, try again\n");
- print _("Your choice? (default %s) ", $common->{focus_cancel} ? $common->{cancel} : $common->{ok});
- $i = readln() || ($common->{focus_cancel} ? "2" : "1");
- } until (check_it($i, 9));
- $i == 9 and goto ask_fromW_begin;
- } else {
- $i = 1;
- }
- my ($callback_error) = $common->{callbacks}{$i == 2 ? 'canceled' : 'complete'}->();
- $callback_error and goto ask_fromW_begin;
- return !($i == 2);
-}
-
-sub wait_messageW {
- my ($o, $title, $message) = @_;
- print join "\n", @$message;
-}
-sub wait_message_nextW {
- my $m = join "\n", @{$_[1]};
- print "\r$m", ' ' x (60 - length $m);
-}
-sub wait_message_endW { print "\nDone\n" }
-
-1;
-
diff --git a/perl-install/keyboard.pm b/perl-install/keyboard.pm
deleted file mode 100644
index fe2e0f3b0..000000000
--- a/perl-install/keyboard.pm
+++ /dev/null
@@ -1,542 +0,0 @@
-
-package keyboard; # $Id$
-
-use diagnostics;
-use strict;
-
-#-######################################################################################
-#- misc imports
-#-######################################################################################
-use common;
-use detect_devices;
-use run_program;
-use log;
-use c;
-
-
-#-######################################################################################
-#- Globals
-#-######################################################################################
-my $KMAP_MAGIC = 0x8B39C07F;
-
-#- a best guess of the keyboard layout, based on the choosen locale
-#- beware only the first 5 characters of the locale are used
-my %lang2keyboard =
-(
- 'af' => 'us_intl',
-#-'ar' => 'ar:80 ar_d:70 ar_azerty:60 ar_azerty_d:50',
- 'az' => 'az:80 tr:10 us_intl:5',
-'az_AZ'=> 'az:80 tr:10 us_intl:5',
- 'be' => 'by:80 ru:50 ru_yawerty:40',
-'be_BE'=> 'by:80 ru:50 ru_yawerty:40',
- 'bg' => 'bg_phonetic:60 bg:50',
-'bg_BG'=> 'bg_phonetic:60 bg:50',
- 'br' => 'fr:90',
- 'bs' => 'hr:60 yu:50 si:40',
- 'ca' => 'es:89 fr:15',
-'ca_Es'=> 'es:89 fr:15',
- 'cs' => 'cz_qwerty:70 cz:50',
- 'cy' => 'uk:90',
-'cy_GB'=> 'uk:90',
- 'da' => 'dk:90',
- 'de' => 'de_nodeadkeys:70 de:50',
-'de_AT'=> 'de_nodeadkeys:70 de:50',
-'de_BE'=> 'be:70 de_nodeadkeys:60 de:50',
-'de_CH'=> 'ch_de:70 ch_fr:25 de_nodeadkeys:20 de:15',
-'de_DE'=> 'de_nodeadkeys:70 de:50',
-'de_LU'=> 'de_nodeadkeys:70 de:50 fr:40 be:35',
- 'el' => 'gr:90',
-'el_GR'=> 'gr:90',
- 'en' => 'us:90 us_intl:50',
-'en_US'=> 'us:90 us_intl:50',
-'en_GB'=> 'uk:89 us:60 us_intl:50',
-'en_IE'=> 'uk:89 us:60 us_intl:50',
- 'eo' => 'us_intl:89 dvorak:20',
-'eo_XX'=> 'us_intl:89 dvorak:20',
- 'es' => 'es:85 la:80 us_intl:50',
-'es@tr'=> 'es:85 la:80 us_intl:50',
-'es_AR'=> 'la:80 us_intl:50 es:20',
-'es_ES'=> 'es:90',
-'es_MX'=> 'la:80 us_intl:50 es:20',
- 'et' => 'ee:90',
- 'eu' => 'es:89 fr:15',
-'eu_ES'=> 'es:89 fr:15',
- 'fa' => 'ir:90',
- 'fi' => 'fi:90',
- 'fr' => 'fr:90',
-'fr_BE'=> 'be:85 fr:5',
-'fr_CA'=> 'qc:85 fr:5',
-'fr_CH'=> 'ch_fr:70 ch_de:15 fr:10',
-'fr_FR'=> 'fr:90',
-'fr_LU'=> 'fr:70 de_nodeadkeys:50 de:40 be:35',
- 'ga' => 'uk:90',
-'ga_IE'=> 'uk:90',
- 'gd' => 'uk:90',
- 'gl' => 'es:90',
-'gl_ES'=> 'es:90',
- 'gv' => 'uk:90',
- 'he' => 'il:89 il_phonetic:10',
-'he_IL'=> 'il:89 il_phonetic:10',
- 'hr' => 'hr:80 si:50',
- 'hu' => 'hu:90',
- 'hy' => 'am:80 am_old:10 am_phonetic:5',
-'hy_AM'=> 'am:80 am_old:10 am_phonetic:5',
- 'id' => 'us:90 us_intl:20',
- 'is' => 'is:90',
- 'iu' => 'iu:90',
- 'it' => 'it:90',
-'it_CH'=> 'ch_fr:80 ch_de:60 it:50',
-'it_IT'=> 'it:90',
- 'ja' => 'jp:80 us:50 us_intl:20',
-'ja_JP'=> 'jp:80 us:50 us_intl:20',
- 'ka' => 'ge_la:80 ge_ru:50',
-'ka_GE'=> 'ge_la:80 ge_ru:50',
- 'kl' => 'dk:80 us_intl:30',
- 'ko' => 'kr:80 us:60',
-'ko_KR'=> 'kr:80 us:60',
- 'kw' => 'uk:90',
- 'lo' => 'us:60',
- 'lt' => 'lt:80 lt_new:70 lt_b:60 lt_p:50',
- 'lv' => 'lv:80 lt:40 lt_new:30 lt_b:20 lt_p:10 ee:5',
- 'mi' => 'us_intl:60 uk:20 us:10',
-'mk_MK'=> 'mk:80',
- 'mk' => 'mk:80',
- 'ms' => 'us:90 us_intl:20',
- 'nb' => 'no:85 dvorak_no:10',
-'nl_BE'=> 'be:80 nl:10 us_intl:5',
-'nl_NL'=> 'us_intl:80 nl:15 us:10 uk:5',
- 'nn' => 'no:85 dvorak_no:10',
- 'no' => 'no:85 dvorak_no:10',
- 'oc' => 'fr:90',
- 'ph' => 'us:90 us_intl:20',
- 'pl' => 'pl:80 pl2:60',
- 'pp' => 'br:80 la:20 pt:10 us_intl:30',
-'pt_BR'=> 'br:80 la:20 pt:10 us_intl:30',
-'pt_PT'=> 'pt:80',
- 'ro' => 'ro2:80 ro:40 us_intl:10',
- 'ru' => 'ru:85 ru_yawerty:80',
-'ru_RU'=> 'ru:85 ru_yawerty:80',
-'ru_UA'=> 'ua:50 ru:40 ru_yawerty:30',
- 'sk' => 'sk_qwerty:80 sk:70',
- 'sl' => 'si:80 hr:50',
- 'sp' => 'sr:80',
-'sp_YU'=> 'sr:80',
- 'sq' => 'al:80',
- 'sr' => 'yu:80',
-'sr_YU'=> 'yu:80',
- 'sv' => 'se:85 fi:30 dvorak_se:10',
-'sv_FI'=> 'fi:85 sv:20',
-'sv_SE'=> 'se:85 fi:20',
- 'ta' => 'tml:80',
-'ta_IN'=> 'tml:80',
- 'tg' => 'tj:80 ru_yawerty:40',
-'tg_TJ'=> 'tj:80 ru_yawerty:40',
- 'th' => 'th:90',
-'th_TH'=> 'th:90',
- 'tr' => 'tr_q:85 tr_q:30',
- 'tt' => 'ru:50 ru_yawerty:40',
- 'uk' => 'ua:85 ru:50 ru_yawerty:40',
-'uk_UA'=> 'ua:85 ru:50 ru_yawerty:40',
- 'uz' => 'us:80',
- 'vi' => 'vn:80 us:60 us_intl:50',
-'vi_VN'=> 'vn:80 us:60 us_intl:50',
- 'wa' => 'be:85 fr:5',
-'zh_CN'=> 'us:60',
-'zh_HK'=> 'us:60',
-'zh_TW'=> 'us:60',
-);
-
-# USB kbd table
-# The numeric values are the bCountryCode field (5th byte) of HID descriptor
-my %usb2drakxkbd =
-(
- 0x00 => undef, #- the keyboard don't tell its layout
-#-0x01 => 'ar',
- 0x02 => 'be',
-#-0x03 => 'ca', #- "Canadian bilingual" ??
- 0x04 => 'qc', #- Canadian French
- 0x05 => 'cz',
- 0x06 => 'dk',
- 0x07 => 'fi',
- 0x08 => 'fr',
- 0x09 => 'de',
- 0x0a => 'gr',
- 0x0b => 'il',
- 0x0c => 'hu',
- 0x0d => 'us_intl', #- "international ISO" ??
- 0x0e => 'it',
- 0x0f => 'jp',
- 0x10 => 'kr', #- Korean
- 0x11 => 'la',
- 0x12 => 'nl',
- 0x13 => 'no',
- 0x14 => 'ir',
- 0x15 => 'pl',
- 0x16 => 'pt',
- 0x17 => 'ru',
- 0x18 => 'sk',
- 0x19 => 'es',
- 0x1a => 'se',
- 0x1b => 'ch_de',
- 0x1c => 'ch_de',
- 0x1d => 'ch_de', #- USB spec says just "Swiss"
-#-0x1e => 'tw', # Taiwan
- 0x1f => 'tr_q',
- 0x20 => 'uk',
- 0x21 => 'us',
- 0x22 => 'yu',
- 0x23 => 'tr_f',
-#- higher codes not attribued as of 2002-02
-);
-
-#- key = extension for Xmodmap file, [0] = description of the keyboard,
-#- [1] = name for loadkeys, [2] = name for XKB, [3] = "1" if it is
-#- a multigroup layout (eg: one with latin/non-latin letters)
-my %keyboards = (
-arch() =~ /^sparc/ ? (
- "cz" => [ __("Czech (QWERTZ)"), "sunt5-cz-us", "cz", 0 ],
- "de" => [ __("German"), "sunt5-de-latin1", "de", 0 ],
- "dvorak" => [ __("Dvorak"), "sundvorak", "dvorak",0 ],
- "es" => [ __("Spanish"), "sunt5-es", "es", 0 ],
- "fi" => [ __("Finnish"), "sunt5-fi-latin1", "fi", 0 ],
- "fr" => [ __("French"), "sunt5-fr-latin1", "fr", 0 ],
- "no" => [ __("Norwegian"), "sunt4-no-latin1", "no", 0 ],
- "pl" => [ __("Polish"), "sun-pl-altgraph", "pl", 0 ],
- "ru" => [ __("Russian"), "sunt5-ru", "ru", 1 ],
-# TODO: check the console map
- "se" => [ __("Swedish"), "sunt5-fi-latin1", "se", 0 ],
- "uk" => [ __("UK keyboard"), "sunt5-uk", "gb", 0 ],
- "us" => [ __("US keyboard"), "sunkeymap", "us", 0 ],
-) : (
- "al" => [ __("Albanian"), "al", "al", 0 ],
- "am_old" => [ __("Armenian (old)"),"am_old", "am(old)", 1 ],
- "am" => [ __("Armenian (typewriter)"),"am-armscii8","am", 1 ],
- "am_phonetic" => [ __("Armenian (phonetic)"),"am_phonetic","am(phonetic)",1 ],
-#-"ar_azerty" => [ __("Arabic (AZERTY)"),"ar-8859_6","ar(azerty)",1 ],
-#-"ar_azerty_d" => [ __("Arabic (AZERTY, arabic digits)"),"ar-8859_6","ar(azerty_digits)",1 ],
-#-"ar" => [ __("Arabic (QWERTY)"),"ar-8859_6", "ar", 1 ],
-#-"ar_d" => [ __("Arabic (QWERTY, arabic digits)"),"ar-8859_6","ar(digits)",1 ],
- "az" => [ __("Azerbaidjani (latin)"),"az", "az", 0 ],
-#"a3" => [ __("Azerbaidjani (cyrillic)"), "az-koi8k","az(cyrillic)",1 ],
- "be" => [ __("Belgian"), "be2-latin1", "be", 0 ],
-"bg_phonetic" => [ __("Bulgarian (phonetic)"),"bg", "bg(phonetic)", 1 ],
- "bg" => [ __("Bulgarian (BDS)"), "bg", "bg", 1 ],
- "br" => [ __("Brazilian (ABNT-2)"),"br-abnt2", "br", 0 ],
- "by" => [ __("Belarusian"), "by-cp1251", "by", 1 ],
- "ch_de" => [ __("Swiss (German layout)"), "sg-latin1", "de_CH", 0 ],
- "ch_fr" => [ __("Swiss (French layout)"), "fr_CH-latin1", "fr_CH", 0 ],
- "cz" => [ __("Czech (QWERTZ)"), "cz-latin2", "cz", 0 ],
- "cz_qwerty" => [ __("Czech (QWERTY)"), "cz-lat2", "cz_qwerty", 0 ],
- "de" => [ __("German"), "de-latin1", "de", 0 ],
- "de_nodeadkeys" => [ __("German (no dead keys)"), "de-latin1-nodeadkeys", "de(nodeadkeys)", 0 ],
- "dk" => [ __("Danish"), "dk-latin1", "dk", 0 ],
- "dvorak" => [ __("Dvorak (US)"), "pc-dvorak-latin1", "dvorak", 0 ],
- "dvorak_no" => [ __("Dvorak (Norwegian)"), "no-dvorak", "dvorak(no)", 0 ],
- "dvorak_se" => [ __("Dvorak (Swedish)"), "se-dvorak", "dvorak(se)", 0 ],
- "ee" => [ __("Estonian"), "ee-latin9", "ee", 0 ],
- "es" => [ __("Spanish"), "es-latin1", "es", 0 ],
- "fi" => [ __("Finnish"), "fi-latin1", "fi", 0 ],
- "fr" => [ __("French"), "fr-latin1", "fr", 0 ],
- "ge_ru"=>[__("Georgian (\"Russian\" layout)"),"ge_ru-georgian_academy","ge_ru",1],
- "ge_la"=>[__("Georgian (\"Latin\" layout)"),"ge_la-georgian_academy","ge_la",1],
- "gr" => [ __("Greek"), "gr-8859_7", "el", 1 ],
- "hu" => [ __("Hungarian"), "hu-latin2", "hu", 0 ],
- "hr" => [ __("Croatian"), "croat", "hr", 0 ],
- "il" => [ __("Israeli"), "il-8859_8", "il", 1 ],
- "il_phonetic" => [ __("Israeli (Phonetic)"), "hebrew", "il_phonetic", 1 ],
- "ir" => [ __("Iranian"), "ir-isiri_3342", "ir", 1 ],
- "is" => [ __("Icelandic"), "is-latin1", "is", 0 ],
- "it" => [ __("Italian"), "it-latin1", "it", 0 ],
-#"iu" => [ __("Inuktitut"), "iu", "iu", 1 ],
- "jp" => [ __("Japanese 106 keys"), "jp106", "jp", 1 ],
-#There is no XKB korean file yet; but using xmodmap one disables
-# some functioanlity; "us" used for XKB until this is fixed
- "kr" => [ __("Korean keyboard"), "us", "us", 1 ],
- "la" => [ __("Latin American"), "la-latin1", "la", 0 ],
- "lt" => [ __("Lithuanian AZERTY (old)"), "lt-latin7", "lt_a", 0 ],
-#- TODO: write a console kbd map for lt_new
- "lt_new" => [ __("Lithuanian AZERTY (new)"), "lt-latin7", "lt_std", 0 ],
- "lt_b" => [ __("Lithuanian \"number row\" QWERTY"), "ltb-latin7", "lt", 0 ],
- "lt_p" => [ __("Lithuanian \"phonetic\" QWERTY"), "ltp-latin7", "lt_p", 0 ],
- "lv" => [ __("Latvian"), "lv-latin7", "lv", 0 ],
- "mk" => [ __("Macedonian"), "mk", "mk", 1 ],
- "nl" => [ __("Dutch"), "nl-latin1", "nl", 0 ],
- "no" => [ __("Norwegian"), "no-latin1", "no", 0 ],
- "pl" => [ __("Polish (qwerty layout)"), "pl", "pl", 0 ],
- "pl2" => [ __("Polish (qwertz layout)"), "pl-latin2", "pl2", 0 ],
- "pt" => [ __("Portuguese"), "pt-latin1", "pt", 0 ],
- "qc" => [ __("Canadian (Quebec)"), "qc-latin1", "ca_enhanced", 0 ],
-#- TODO: write a console kbd map for ro2
- "ro2" => [ __("Romanian (qwertz)"), "ro2", "ro2", 0 ],
- "ro" => [ __("Romanian (qwerty)"), "ro", "ro", 0 ],
- "ru" => [ __("Russian"), "ru4", "ru(winkeys)", 1 ],
- "ru_yawerty" => [ __("Russian (Yawerty)"), "ru-yawerty", "ru_yawerty", 1 ],
- "se" => [ __("Swedish"), "se-latin1", "se", 0 ],
- "si" => [ __("Slovenian"), "slovene", "si", 0 ],
- "sk" => [ __("Slovakian (QWERTZ)"), "sk-qwertz", "sk", 0 ],
- "sk_qwerty" => [ __("Slovakian (QWERTY)"), "sk-qwerty", "sk_qwerty", 0 ],
-# TODO: console map
- "sr" => [ __("Serbian (cyrillic)"), "sr", "sr", 0 ],
-# no console kbd that I'm aware of
- "tml" => [ __("Tamil"), "us", "tml", 1 ],
- "th" => [ __("Thai keyboard"), "th", "th", 1 ],
-# TODO: console map
- "tj" => [ __("Tajik keyboard"), "ru4", "tj", 1 ],
- "tr_f" => [ __("Turkish (traditional \"F\" model)"), "trf", "tr_f", 0 ],
- "tr_q" => [ __("Turkish (modern \"Q\" model)"), "tr_q-latin5", "tr", 0 ],
-#-"tw => [ __("Chineses bopomofo"), "tw", "tw", 1 ],
- "ua" => [ __("Ukrainian"), "ua", "ua", 1 ],
- "uk" => [ __("UK keyboard"), "uk", "gb", 0 ],
- "us" => [ __("US keyboard"), "us", "us", 0 ],
- "us_intl" => [ __("US keyboard (international)"), "us-latin1", "us_intl", 0 ],
- "vn" => [ __("Vietnamese \"numeric row\" QWERTY"),"vn-tcvn", "vn(toggle)", 0 ],
- "yu" => [ __("Yugoslavian (latin)"), "sr", "yu", 0 ],
-),
-);
-
-#- list of possible choices for the key combinations to toggle XKB groups
-#- (eg in X86Config file: XkbOptions "grp:toggle")
-my %kbdgrptoggle =
-(
- 'toggle' => _("Right Alt key"),
- 'shift_toggle' => _("Both Shift keys simultaneously"),
- 'ctrl_shift_toggle' => _("Control and Shift keys simultaneously"),
- 'caps_toggle' => _("CapsLock key"),
- 'ctrl_alt_toggle' => _("Ctrl and Alt keys simultaneously"),
- 'alt_shift_toggle' => _("Alt and Shift keys simultaneously"),
- 'menu_toggle' => _("\"Menu\" key"),
- 'lwin_toggle' => _("Left \"Windows\" key"),
- 'rwin_toggle' => _("Right \"Windows\" key"),
-);
-
-
-#-######################################################################################
-#- Functions
-#-######################################################################################
-sub keyboards { keys %keyboards }
-sub keyboard2text { $keyboards{$_[0]} && $keyboards{$_[0]}[0] }
-sub keyboard2kmap { $keyboards{$_[0]} && $keyboards{$_[0]}[1] }
-sub keyboard2xkb { $keyboards{$_[0]} && $keyboards{$_[0]}[2] }
-
-sub loadkeys_files {
- my ($err) = @_;
- my $archkbd = arch() =~ /^sparc/ ? "sun" : arch() =~ /i.86/ ? "i386" : arch() =~ /ppc/ ? "mac" : arch();
- my $p = "/usr/lib/kbd/keymaps/$archkbd";
- my $post = ".kmap.gz";
- my %trans = ("cz-latin2" => "cz-lat2");
- my %find_file;
- foreach my $dir (all($p)) {
- $find_file{$dir} = '';
- foreach (all("$p/$dir")) {
- $find_file{$_} and $err->("file $_ is both in $find_file{$_} and $dir") if $err;
- $find_file{$_} = "$p/$dir/$_";
- }
- }
- my (@l, %l);
- foreach (values %keyboards) {
- local $_ = $trans{$_->[1]} || $_->[1];
- my $l = $find_file{"$_$post"} || $find_file{first(/(..)/) . $post};
- if ($l) {
- push @l, $l;
- foreach (`zgrep include $l | grep "^include"`) {
- /include\s+"(.*)"/ or die "bad line $_";
- @l{grep { -e $_ } ("$p/$1.inc.gz")} = ();
- }
- } else {
- $err->("invalid loadkeys keytable $_") if $err;
- }
- }
- uniq(@l, keys %l, grep { -e $_ } map { "$p/$_.inc.gz" } qw(compose euro windowkeys linux-keys-bare));
-}
-
-sub unpack_keyboards {
- my ($k) = @_; $k or return;
- [ grep {
- my $b = $keyboards{$_->[0]};
- $b or log::l("bad keyboard $_->[0] in %keyboard::lang2keyboard");
- $b;
- } map { [ split ':' ] } split ' ', $k ];
-}
-sub lang2keyboards {
- my @li = sort { $b->[1] <=> $a->[1] } map { @$_ } map {
- #- first try with the 5 first chars of LANG; if it fails then try with
- #- with the 2 first chars of LANG before resorting to default.
- unpack_keyboards($lang2keyboard{substr($_, 0, 5)}) || unpack_keyboards($lang2keyboard{substr($_, 0, 2)}) || [ [ ($keyboards{$_} ? $_ : "us") => 100 ] ];
- } @_;
- \@li;
-}
-sub lang2keyboard {
- my ($l) = @_;
- my $kb = lang2keyboards($l)->[0][0];
- $keyboards{$kb} ? $kb : "us"; #- handle incorrect keyboard mapping to us.
-}
-sub usb2drakxkbd {
- my ($cc) = @_;
- my $kb = $usb2drakxkbd{$cc};
-#- TODO: detect when undef is returned because it is actualy not defined
-#- ($cc == 0) and when it is because of an unknown/not listed number;
-#- in that last case it would be nice to display a dialog telling the
-#- user to report the number to us.
- $kb;
-}
-
-sub load {
- my ($keymap) = @_;
- return if $::testing;
-
- my ($magic, @keymaps) = unpack "I i" . c::MAX_NR_KEYMAPS() . "a*", $keymap;
- $keymap = pop @keymaps;
-
- $magic != $KMAP_MAGIC and die "failed to read kmap magic";
-
- local *F;
- sysopen F, "/dev/console", 2 or die "failed to open /dev/console: $!";
-
- my $count = 0;
- foreach (0 .. c::MAX_NR_KEYMAPS() - 1) {
- $keymaps[$_] or next;
-
- my @keymap = unpack "s" . c::NR_KEYS() . "a*", $keymap;
- $keymap = pop @keymap;
-
- my $key = -1;
- foreach my $value (@keymap) {
- $key++;
- c::KTYP($value) != c::KT_SPEC() or next;
- ioctl(F, c::KDSKBENT(), pack("CCS", $_, $key, $value)) or die "keymap ioctl failed ($_ $key $value): $!";
- }
- $count++;
- }
- #- log::l("loaded $count keymap tables");
-}
-
-sub xmodmap_file {
- my ($keyboard) = @_;
- my $f = "$ENV{SHARE_PATH}/xmodmap/xmodmap.$keyboard";
- if (! -e $f) {
- eval {
- require packdrake;
- my $packer = new packdrake("$ENV{SHARE_PATH}/xmodmap.cz2", quiet => 1);
- $packer->extract_archive("/tmp", "xmodmap.$keyboard");
- };
- $f = "/tmp/xmodmap.$keyboard";
- }
- -e $f && $f;
-}
-
-sub setup {
- return if arch() =~ /^sparc/;
-
- #- Xpmac doesn't map keys quite right
- if (arch() =~ /ppc/ && !$::testing && $ENV{DISPLAY}) {
- log::l("Fixing Mac keyboard");
- run_program::run('xmodmap', "-e", "keycode 59 = BackSpace" );
- run_program::run('xmodmap', "-e", "keycode 131 = Shift_R" );
- run_program::run('xmodmap', "-e", "add shift = Shift_R" );
- return;
- }
-
- my ($keyboard) = @_;
- my $o = $keyboards{$keyboard} or return;
-
- log::l("loading keymap $o->[1]");
- if (-e (my $f = "$ENV{SHARE_PATH}/keymaps/$o->[1].bkmap")) {
- load(scalar cat_($f));
- } else {
- local *F;
- if (my $pid = open F, "-|") {
- local $/ = undef;
- eval { load(join('', <F>)) };
- waitpid $pid, 0;
- } else {
- eval {
- require packdrake;
- my $packer = new packdrake("$ENV{SHARE_PATH}/keymaps.cz2", quiet => 1);
- $packer->extract_archive(undef, "$o->[1].bkmap");
- };
- c::_exit(0);
- }
- }
- my $f = xmodmap_file($keyboard);
- eval { run_program::run('xmodmap', $f) } if $f && !$::testing && $ENV{DISPLAY};
-}
-
-sub write {
- my ($prefix, $keyboard, $charset, $isNotDelete) = @_;
-
- my $config = read_raw($prefix);
- put_in_hash($config, {
- KEYTABLE => keyboard2kmap($keyboard),
- KBCHARSET => $charset,
- });
- add2hash_($config, {
- DISABLE_WINDOWS_KEY => bool2yesno(detect_devices::isLaptop()),
- BACKSPACE => $isNotDelete ? "BackSpace" : "Delete",
- });
- setVarsInSh("$prefix/etc/sysconfig/keyboard", $config);
- run_program::rooted($prefix, "dumpkeys > /etc/sysconfig/console/default.kmap") or log::l("dumpkeys failed");
- if (arch() =~ /ppc/) {
- my $s = "dev.mac_hid.keyboard_sends_linux_keycodes = 1\n";
- substInFile {
- $_ = '' if /^\Qdev.mac_hid.keyboard_sends_linux_keycodes/;
- $_ .= $s if eof;
- } "$prefix/etc/sysctl.conf";
- }
-}
-
-sub read_raw {
- my ($prefix) = @_;
- my %config = getVarsFromSh("$prefix/etc/sysconfig/keyboard");
- \%config;
-}
-
-sub read {
- my ($prefix) = @_;
- my $keytable = read_raw($prefix)->{KEYTABLE};
- keyboard2kmap($_) eq $keytable and return $_ foreach keys %keyboards;
- $keyboards{$keytable} && $keytable; #- keep track of unknown keyboard.
-}
-
-sub check {
- require lang;
- $^W = 0;
-
- my $ok = 1;
- my $warn = sub {
- print STDERR "$_[0]\n";
- };
- my $err = sub {
- &$warn;
- $ok = 0;
- };
-
- if (my @l = grep { is_empty_array_ref(lang2keyboards($_)) } lang::list()) {
- $warn->("no keyboard for langs " . join(" ", @l));
- }
- foreach my $lang (lang::list()) {
- my $l = lang2keyboards($lang);
- foreach (@$l) {
- 0 <= $_->[1] && $_->[1] <= 100 or $err->("invalid value $_->[1] in $lang2keyboard{$lang} for $lang in \%lang2keyboard keyboard.pm");
- $keyboards{$_->[0]} or $err->("invalid keyboard $_->[0] in $lang2keyboard{$lang} for $lang in \%lang2keyboard keyboard.pm");
- }
- }
- !$_ || $keyboards{$_} or $err->("invalid keyboard $_ in \%usb2drakxkbd keyboard.pm") foreach values %usb2drakxkbd;
-
- my @xkb_groups = map { if_(/grp:(\S+)/, $1) } cat_('/usr/lib/X11/xkb/rules/xfree86.lst');
- $err->("invalid xkb group toggle '$_' in \%kbdgrptoggle") foreach difference2([ keys %kbdgrptoggle ], \@xkb_groups);
- $warn->("unused xkb group toggle '$_'") foreach difference2(\@xkb_groups, [ keys %kbdgrptoggle ]);
-
- my @xkb_layouts = (#- (map { (split)[0] } grep { /^! layout/ .. /^\s*$/ } cat_('/usr/lib/X11/xkb/rules/xfree86.lst')),
- all('/usr/lib/X11/xkb/symbols'),
- (map { (split)[2] } cat_('/usr/lib/X11/xkb/symbols.dir')));
- $err->("invalid xkb layout $_") foreach difference2([ map { keyboard2xkb($_) } keyboards() ], \@xkb_layouts);
-
- loadkeys_files($err);
-
- exit($ok ? 0 : 1);
-}
-
-#-######################################################################################
-#- Wonderful perl :(
-#-######################################################################################
-1;
diff --git a/perl-install/lang.pm b/perl-install/lang.pm
deleted file mode 100644
index ea9a39f20..000000000
--- a/perl-install/lang.pm
+++ /dev/null
@@ -1,871 +0,0 @@
-package lang; # $Id$
-
-use diagnostics;
-use strict;
-
-#-######################################################################################
-#- misc imports
-#-######################################################################################
-use common;
-use log;
-
-#-######################################################################################
-#- Globals
-#-######################################################################################
-#- key (to be used in $LC_ALL), [0] = english name, [1] = charset encoding,
-#- [2] = value for $LANG used by DrakX, [3] = value for LANGUAGE (a list of
-#- possible languages, carefully choosen), [4] = use utf8 or not (boolean)
-#-
-#- when adding a new language here, also add a line in keyboards list
-
-#-
-#- NOTE: we cheat for a lot of locales (in particular UTF-8, in DrakX they are
-#- the 8bit ones); it's easier like that now. Of course, on the installed
-#- system a real UTF-8 locale will be used
-#-
-
-my %languages = my @languages = (
-'en_US' => [ 'English|United States', 'C', 'en', 'en_US:en' ],
-'en_GB' => [ 'English|United Kingdom', 'iso-8859-15', 'en', 'en_GB:en' ],
-'en_IE' => [ 'English|Ireland', 'iso-8859-15','en', 'en_IE:en_GB:en' ],
-'en_US.UTF-8'=> [ 'English|UTF-8', 'iso-8859-15', 'en', 'en_US:en', 'UTF-8', ],
- 'af' => [ 'Afrikaans', 'iso-8859-1', 'af', 'af:en_ZA' ],
-'ar_EG.UTF-8'=> [ 'Arabic', 'iso-8859-6', 'ar', 'ar', 'UTF-8' ],
-#'az_AZ.ISO-8859-9E'=> [ 'Azeri (Latin)','iso-8859-9e','az', 'az:tr' ],
-'az_AZ.UTF-8'=> [ 'Azeri (Latin)', 'iso-8859-9e', 'az', 'az:tr', 'UTF-8' ],
- 'be' => [ 'Belarussian (CP1251)', 'cp1251', 'be', 'be:be_BY.CP1251:ru_RU.CP1251' ],
-'be_BY.UTF-8' => [ 'Belarussian (UTF-8)','cp1251', 'be', 'be:be_BY.CP1251:ru_RU.CP1251', 'UTF-8' ],
-#- provide aliases for some not very standard names used in po files...
- 'bg' => [ 'Bulgarian (CP1251)', 'cp1251', 'bg', 'bg:bg.CP1251:bg_BG.CP1251:bg_BG' ],
-'bg_BG.UTF-8'=> [ 'Bulgarian (UTF-8)', 'cp1251', 'bg', 'bg:bg.CP1251:bg_BG.CP1251:bg_BG', 'UTF-8' ],
- 'br' => [ 'Brezhoneg', 'iso-8859-15','br', 'br:fr_FR:fr' ],
- 'bs' => [ 'Bosnian', 'iso-8859-2', 'bs', 'bs:hr:sr' ],
-'ca_ES' => [ 'Catalan', 'iso-8859-15','ca', 'ca:es_ES:es' ],
- 'cs' => [ 'Czech', 'iso-8859-2', 'cs', 'cs' ],
-#- 'cy' => [ 'Cymraeg (Welsh)','iso-8859-14','cy', 'cy:en_GB:en' ],
-'cy_GB.UTF-8'=> [ 'Cymraeg (Welsh)', 'iso-8859-14', 'cy', 'cy:en_GB:en', 'UTF-8' ],
- 'da' => [ 'Danish', 'iso-8859-15', 'da', 'da' ],
-'de_AT' => [ 'German|Austria', 'iso-8859-15','de', 'de_AT:de' ],
-'de_BE' => [ 'German|Belgium', 'iso-8859-15','de', 'de_BE:de' ],
-'de_CH' => [ 'German|Switzerland', 'iso-8859-15', 'de', 'de_CH:de' ],
-'de_DE' => [ 'German|Germany', 'iso-8859-15','de', 'de_DE:de' ],
- 'el' => [ 'Greek', 'iso-8859-7', 'el', 'el' ],
-'el_GR.UTF-8'=> [ 'Greek (UTF-8)', 'iso-8859-7', 'el', 'el', 'UTF-8' ],
- 'eo' => [ 'Esperanto', 'iso-8859-3', 'eo', 'eo', 'UTF-8' ],
-'es_AR' => [ 'Spanish|Argentina', 'iso-8859-1', 'es', 'es_AR:es_UY:es:es_ES' ],
-'es_ES' => [ 'Spanish|Spain (modern sorting)', 'iso-8859-15', 'es', 'es_ES:es' ],
-'es@tradicional' => [ 'Spanish|Spain (traditional sorting)', 'iso-8859-15', 'es', 'es' ],
-'es_ES.UTF-8'=> [ 'Spanish|Spain (UTF-8)','iso-8859-15', 'es', 'es_ES:es', 'UTF-8' ],
-'es_MX' => [ 'Spanish|Mexico', 'iso-8859-1', 'es', 'es_MX:es:es_ES' ],
- 'et' => [ 'Estonian', 'iso-8859-15','et', 'et' ],
-'eu_ES' => [ 'Euskara (Basque)','iso-8859-15', 'eu', 'eu' ],
-'fa_IR.UTF-8'=> [ 'Farsi (Iranian)', 'unicode', 'fa', 'fa', 'UTF-8' ],
-'fi_FI' => [ 'Finnish (Suomi)', 'iso-8859-15','fi', 'fi' ],
-#-'fo' => [ 'Faroese', 'iso-8859-1', 'fo', 'fo' ],
-'fr_BE' => [ 'French|Belgium', 'iso-8859-15','fr', 'fr_BE:fr' ],
-'fr_CA' => [ 'French|Canada', 'iso-8859-15','fr', 'fr_CA:fr' ],
-'fr_CH' => [ 'French|Switzerland', 'iso-8859-15', 'fr', 'fr_CH:fr' ],
-'fr_FR' => [ 'French|France', 'iso-8859-15','fr', 'fr_FR:fr' ],
-'fr_FR.UTF-8'=> [ 'French|France (UTF-8)','iso-8859-15','fr', 'fr_FR:fr', 'UTF-8' ],
-'ga_IE' => [ 'Gaeilge (Irish)', 'iso-8859-15','ga', 'ga:en_IE:en' ],
-#-'gd' => [ 'Scottish gaelic', 'iso-8859-14','gd', 'gd:en_GB:en' ],
-'gl_ES' => [ 'Galego (Galician)','iso-8859-15','gl', 'gl:es_ES:pt_PT:pt_BR:es:pt' ],
-#-'gv' => [ 'Manx gaelic', 'iso-8859-14','gv', 'gv:en_GB:en' ],
-#- 'iw' was the old code for hebrew language
-'he_IL.UTF-8'=> [ 'Hebrew', 'iso-8859-8', 'he', 'he:iw_IL', 'UTF-8' ],
- 'hr' => [ 'Croatian', 'iso-8859-2', 'hr', 'hr' ],
- 'hu' => [ 'Hungarian', 'iso-8859-2', 'hu', 'hu' ],
-#'hy_AM.ARMSCII-8'=> [ 'Armenian|ARMSCII-8','armscii-8','hy','hy' ],
-'hy_AM.UTF-8'=> [ 'Armenian', 'armscii-8', 'hy', 'hy', 'UTF-8' ],
-#- 'in' was the old code for indonesian language; by putting LANGUAGE=id:in_ID
-#- we catch the few catalog files still using the wrong code
- 'id' => [ 'Indonesian', 'iso-8859-1', 'id', 'id:in_ID' ],
- 'is' => [ 'Icelandic', 'iso-8859-1', 'is', 'is' ],
-'it_CH' => [ 'Italian|Switzerland', 'iso-8859-15', 'it', 'it_IT:it' ],
-'it_IT' => [ 'Italian|Italy','iso-8859-15','it', 'it_IT:it' ],
-#-'iu' => [ 'Inuktitut', 'unicodeIU', 'iu', 'iu' ],
- 'ja' => [ 'Japanese', 'jisx0208', 'ja', 'ja_JP.ujis:ja' ],
-'ja_JP.UTF-8'=> [ 'Japanese (UTF-8)', 'jisx0208', 'ja', 'ja_JP.ujis:ja', 'UTF-8' ],
-'ka_GE.UTF-8'=> [ 'Georgian', 'utf_ka', 'ka', 'ka', 'UTF-8' ],
-#-'kl' => [ 'Greenlandic (inuit)', 'iso-8859-1', 'kl', 'kl' ],
- 'ko' => [ 'Korean', 'ksc5601', 'ko', 'ko' ],
-'ko_KR.UTF-8'=> [ 'Korean (UTF-8)', 'ksc5601', 'ko', 'ko', 'UTF-8' ],
-#-'kw' => [ 'Cornish gaelic', 'iso-8859-14','kw', 'kw:en_GB:en' ],
-#-'lo' => [ 'Laotian', 'mulelao-1', 'lo', 'lo' ],
- 'lt' => [ 'Lithuanian', 'iso-8859-13','lt', 'lt' ],
- 'lv' => [ 'Latvian', 'iso-8859-13','lv', 'lv' ],
- 'mi' => [ 'Maori', 'iso-8859-13','mi', 'mi' ],
-#- 'mk' => [ 'Macedonian (Cyrillic)','iso-8859-5', 'mk', 'mk' ],
-'mk_MK.UTF-8'=> [ 'Macedonian (Cyrillic)','cp1251', 'mk', 'mk', 'UTF-8' ],
- 'ms' => [ 'Malay', 'iso-8859-1', 'ms', 'ms' ],
-#- 'mt' => [ 'Maltese|ISO-8859-3', 'iso-8859-3', 'mt', 'mt' ],
-'mt_MT.UTF-8'=> [ 'Maltese', 'iso-8859-3', 'mt', 'mt', 'UTF-8' ],
-'nl_BE' => [ 'Dutch|Belgium', 'iso-8859-15', 'nl', 'nl_BE:nl' ],
-'nl_NL' => [ 'Dutch|Netherlands','iso-8859-15', 'nl', 'nl_NL:nl' ],
-#- 'nb' is the new locale name in glibc 2.2
- 'no' => [ 'Norwegian|Bokmaal', 'iso-8859-1', 'no', 'no:nb:nn:no@nynorsk:no_NY' ],
-#- no_NY is used by KDE (but not standard); 'nn' is the new locale in glibc 2.2
- 'nn' => [ 'Norwegian|Nynorsk', 'iso-8859-1', 'no', 'nn:no@nynorsk:no_NY:no:nb' ],
-#-'oc' => [ 'Occitan', 'iso-8859-1', 'oc', 'oc:fr_FR' ],
-#-'pd' => [ 'Plauttdietsch', 'iso-8859-1', 'pd', 'pd' ],
-#-'ph' => [ 'Pilipino', 'iso-8859-1', 'ph', 'ph:tl' ],
- 'pl' => [ 'Polish', 'iso-8859-2', 'pl', 'pl' ],
-#-'pp' => [ 'Papiamento', 'iso-8859-1', 'pp', 'pp' ],
-'pt_BR' => [ 'Portuguese|Brazil', 'iso-8859-1', 'pt_BR', 'pt_BR:pt_PT:pt' ],
-'pt_PT' => [ 'Portuguese|Portugal','iso-8859-15','pt', 'pt_PT:pt:pt_BR' ],
- 'ro' => [ 'Romanian', 'iso-8859-2', 'ro', 'ro' ],
-'ru_RU.KOI8-R' => [ 'Russian|KOI8-R', 'koi8-r', 'ru', 'ru_RU:ru' ],
-'ru_RU.CP1251' => [ 'Russian|CP1251', 'cp1251', 'ru', 'ru_RU:ru' ],
-'ru_RU.UTF-8' => [ 'Russian|UTF-8', 'cp1251', 'ru', 'ru_RU:ru', 'UTF-8' ],
- 'sk' => [ 'Slovak', 'iso-8859-2', 'sk', 'sk' ],
- 'sl' => [ 'Slovenian', 'iso-8859-2', 'sl', 'sl' ],
-#- 'sp' => [ 'Serbian|Cyrillic (ISO-8859-5)','iso-8859-5', 'sp', 'sp:sr' ],
-#'sp_YU.CP1251'=> [ 'Serbian|Cyrillic (CP1251)','cp1251', 'sp', 'sp:sr' ],
-'sp_YU.UTF-8'=> [ 'Serbian|Cyrillic','cp1251', 'sp', 'sp:sr', 'UTF-8' ],
- 'sr' => [ 'Serbian|Latin (ISO-8859-2)','iso-8859-2','sr', 'sr' ],
-'sr_YU.UTF-8'=> [ 'Serbian|Latin (UTF-8)', 'iso-8859-2', 'sr', 'sr', 'UTF-8' ],
- 'sv' => [ 'Swedish', 'iso-8859-1', 'sv', 'sv' ],
-#- there is no tamil font curently; so set DrakX encoding to utf_1
-#- note: most of the gnome translations for tamil are broken (using bad
-#- encoding)
-'ta_IN.UTF-8'=> [ 'Tamil', 'iso-8859-1', 'ta', 'ta', 'UTF-8' ],
-'tg_TJ.UTF-8'=> [ 'Tajik', 'utf_koi8-k', 'tg', 'tg', 'UTF-8' ],
- 'th' => [ 'Thai|TIS-620', 'tis620', 'th', 'th' ],
-'th_TH.UTF-8'=> [ 'Thai (UTF-8)', 'tis620', 'th', 'th', 'UTF-8' ],
- 'tr' => [ 'Turkish', 'iso-8859-9', 'tr', 'tr' ],
-#-'tt_RU.UTF-8'=> [ 'Tatar', 'koi8-k', 'tt', 'tt' ],
-#-'ur' => [ 'Urdu', 'cp1256', 'ur', 'ur' ],
-'uk_UA' => [ 'Ukrainian|KOI8-U', 'koi8-u', 'uk', 'uk_UA:uk' ],
-'uk_UA.CP1251'=> [ 'Ukrainian|CP1251', 'cp1251', 'uk', 'uk_UA:uk' ],
-'uk_UA.UTF-8'=> [ 'Ukrainian|UTF-8', 'cp1251', 'uk', 'uk_UA:uk', 'UTF-8' ],
- 'uz' => [ 'Uzbek', 'iso-8859-1', 'uz', 'uz' ],
-#'vi_VN.TCVN' => [ 'Vietnamese|TCVN', 'tcvn', 'vi', 'vi' ],
-#'vi_VN.VISCII' => [ 'Vietnamese|VISCII','viscii', 'vi', 'vi' ],
-'vi_VN.UTF-8' => [ 'Vietnamese', 'viscii', 'vi', 'vi', 'UTF-8' ],
- 'wa' => [ 'Walon', 'iso-8859-15', 'wa', 'wa:fr_BE:fr' ],
-#-'yi' => [ 'Yiddish', 'cp1255', 'yi', 'yi' ],
-#- NOTE: 'zh' must be in the LANGUAGE list, it is not used for translations
-#- themselves but is needed for our selection of locales-xx packages
-#- and the language dependent packages resolution
-#'zh_HK.Big5' => [ 'Chinese|Traditional|Hong Kong|Big5', 'Big5', 'zh_TW.Big5', 'zh_TW.Big5:zh_TW:zh_HK:zh' ],
-#'zh_HK.UTF-8' => [ 'Chinese|Traditional|Hong Kong|UTF-8','Big5','zh_HK', 'zh_HK:zh_TW.Big5:zh_TW:zh', 'UTF-8' ],
-'zh_TW.Big5' => [ 'Chinese|Traditional|Big5', 'Big5', 'zh_TW.Big5', 'zh_TW.Big5:zh_TW:zh_HK:zh' ],
-'zh_TW.UTF-8' => [ 'Chinese|Traditional|UTF-8', 'Big5', 'zh_TW', 'zh_TW.Big5:zh_TW.big5:zh_TW:zh_HK:zh', 'UTF-8' ],
-'zh_CN.GB2312' => [ 'Chinese|Simplified|GB2312', 'gb2312', 'zh_CN.GB2312', 'zh_CN.GB2312:zh_CN:zh' ],
-'zh_CN.UTF-8' => [ 'Chinese|Simplified|UTF-8', 'gb2312', 'zh_CN', 'zh_CN.GB2312:zh_CN:zh', 'UTF-8' ],
-#- does this one works?
-#'zh_CN.GB18030' => [ 'Chinese|Simplified|GB18030','gb2312','zh_CN', 'zh_CN.GB2312:zh_CN:zh' ],
-);
-@languages = map { $_->[0] } group_by2(@languages);
-
-my %xim = (
- 'zh_TW.Big5' => {
- ENC => 'big5',
- XIM => 'xcin',
- XIM_PROGRAM => 'xcin',
- XMODIFIERS => '"@im=xcin"',
- CONSOLE_NOT_LOCALIZED => 'yes',
- },
- 'zh_TW.Big5@chinput' => {
- ENC => 'big5',
- XIM => 'Chinput',
- XIM_PROGRAM => 'chinput',
- XMODIFIERS => '"@im=Chinput"',
- CONSOLE_NOT_LOCALIZED => 'yes',
- },
- 'zh_TW.UTF-8' => {
- ENC => 'utf8',
- XIM => 'Chinput',
- XIM_PROGRAM => 'chinput',
- XMODIFIERS => '"@im=Chinput"',
- CONSOLE_NOT_LOCALIZED => 'yes',
- },
- 'zh_CN.GB2312' => {
- ENC => 'gb',
- XIM => 'Chinput',
- XIM_PROGRAM => 'chinput',
- XMODIFIERS => '"@im=Chinput"',
- CONSOLE_NOT_LOCALIZED => 'yes',
- },
- 'zh_CN.UTF-8' => {
- ENC => 'utf8',
- XIM => 'Chinput',
- XIM_PROGRAM => 'chinput',
- XMODIFIERS => '"@im=Chinput"',
- CONSOLE_NOT_LOCALIZED => 'yes',
- },
- 'ko' => {
- ENC => 'kr',
- XIM => 'Ami',
- #- NOTE: there are several possible versions of ami, for the different
- #- desktops (kde, gnome, etc). So XIM_PROGRAM isn't defined; it will
- #- be the xinitrc script, XIM section, that will choose the right one
- #- XIM_PROGRAM => 'ami',
- XMODIFIERS => '"@im=Ami"',
- CONSOLE_NOT_LOCALIZED => 'yes',
- },
- 'ko_KR.UTF-8' => {
- ENC => 'utf8',
- XIM => 'Ami',
- #- NOTE: there are several possible versions of ami, for the different
- #- desktops (kde, gnome, etc). So XIM_PROGRAM isn't defined; it will
- #- be the xinitrc script, XIM section, that will choose the right one
- #- XIM_PROGRAM => 'ami',
- XMODIFIERS => '"@im=Ami"',
- CONSOLE_NOT_LOCALIZED => 'yes',
- },
- 'ja' => {
- ENC => 'eucj',
- XIM => 'kinput2',
- XIM_PROGRAM => 'kinput2',
- XMODIFIERS => '"@im=kinput2"',
- },
- 'ja_JP.UTF-8' => {
- ENC => 'utf8',
- XIM => 'kinput2',
- XIM_PROGRAM => 'kinput2',
- XMODIFIERS => '"@im=kinput2"',
- },
- #- XFree86 has an internal XIM for Thai that enables syntax checking etc.
- #- 'Passthroug' is no check at all, 'BasicCheck' accepts bad sequences
- #- and convert them to right ones, 'Strict' refuses bad sequences
- 'th' => {
- XIM_PROGRAM => '/bin/true', #- it's an internal module
- XMODIFIERS => '"@im=BasicCheck"',
- },
- #- xvnkb is not an XIM input method; but an input method of another
- #- kind, only XIM_PROGRAM needs to be defined
- #- ! xvnkb doesn't work in UTF-8 !
-#- 'vi_VN.VISCII' => {
-#- XIM_PROGRAM => 'xvnkb',
-#- },
-);
-
-sub std2 { "-*-*-medium-r-normal-*-$_[1]-*-*-*-*-*-$_[0]" }
-sub std_ { std2($_[0], 10), std2($_[0], 10) }
-sub std { std2($_[0], $_[1] || 10), std2($_[0], 8) }
-
-#- [0]: console font name
-#- [1]: sfm map for console font (if needed)
-#- [2]: acm file for console font (none if utf8)
-#- [3]: iocharset param for mount (utf8 if utf8)
-#- [4]: codepage parameter for mount (none if utf8)
-#- [5]: X11 fontset (for DrakX)
-my %charsets = (
- "armscii-8" => [ "arm8", "armscii8.uni", "trivial.trans",
- undef, undef, std_("armscii-8") ],
-#- chinese needs special console driver for text mode
- "Big5" => [ undef, undef, undef,
- "big5", "950", "-*-*-*-*-*-*-*-*-*-*-*-*-big5-0" ],
- "gb2312" => [ undef, undef, undef,
- "gb2312", "936", "-*-*-*-*-*-*-*-*-*-*-*-*-gb2312.1980-0" ],
- "C" => [ "lat1-16", undef, "iso15",
- "iso8859-1", "850", sub { std("iso8859-1", @_) } ],
- "iso-8859-1" => [ "lat1-16", undef, "iso1",
- "iso8859-1", "850", sub { std("iso8859-15", @_) } ],
- "iso-8859-2" => [ "lat2-sun16", undef, "iso02",
- "iso8859-2", "852", sub { std("iso8859-2", @_) } ],
- "iso-8859-3" => [ "iso03.f16", undef, "iso03",
- "iso8859-3", undef, std_("iso8859-3") ],
-#- "iso-8859-4" => [ "lat4u-16", undef, "iso04",
-#- "iso8859-4", "775", std_("iso8859-4") ],
-#- "iso-8859-5" => [ "UniCyr_8x16", undef, "iso05",
-#- "iso8859-5", "855", sub { std("microsoft-cp1251", @_) } ],
-#-#- arabic needs special console driver for text mode [acon]
-#-#- (and gtk support isn't done yet)
- "iso-8859-6" => [ "iso06.f16", "iso06", "trivial.trans",
- "iso8859-6", "864", std_("iso8859-6") ],
- "iso-8859-7" => [ "iso07.f16", undef, "iso07",
- "iso8859-7", "869", std_("iso8859-7") ],
-#-#- hebrew needs special console driver for text mode [acon]
-#-#- (and gtk support isn't done yet)
- "iso-8859-8" => [ "iso08.f16", "iso08", "trivial.trans",
-#- std_("iso8859-8") ],
- "iso8859-8", "862", std_("microsoft-cp1255") ],
- "iso-8859-9" => [ "iso09.f16", "iso09", "trivial.trans",
- "iso8859-9", "857", sub { std("iso8859-9", @_) } ],
- "iso-8859-13" => [ "tlat7", "iso13", "trivial.trans",
- "iso8859-13", "775", std_("iso8859-13") ],
- "iso-8859-14" => [ "iso14", undef, "iso14",
- "iso8859-14", "850", std_("iso8859-14") ],
- "iso-8859-15" => [ "lat0-16", undef, "iso15",
- "iso8859-15", "850", sub { std("iso8859-15", @_) } ],
- "iso-8859-9e" => [ "tiso09e", "iso09", "trivial.trans",
- undef, undef, std2("iso8859-9e",10) ],
-#- japanese needs special console driver for text mode [kon2]
- "jisx0208" => [ undef, undef, "trivial.trans",
- "euc-jp", "932", "-*-*-*-*-*-*-*-*-*-*-*-*-jisx*.*-0" ],
- "koi8-r" => [ "UniCyr_8x16", undef, "koi8-r",
- "koi8-r", "866", sub { std("microsoft-cp1251", @_) } ],
- "koi8-u" => [ "UniCyr_8x16", undef, "koi8-u",
- "koi8-u", "866", sub { std("microsoft-cp1251", @_) } ],
- "utf_ka" => [ "t_geors", "geors.uni", "geors_to_geops.trans",
- "utf8", undef, "-*-*-*-*-*-*-*-*-*-*-*-*-georgian-academy" ],
- "utf_koi8-k" => [ "koi8-k", "iso01", "trivial.trans",
- "utf8", undef, std("koi8-k") ],
- "cp1251" => [ "UniCyr_8x16", undef, "cp1251",
- "cp1251", "866", sub { std("microsoft-cp1251", @_) } ],
-#- Yiddish needs special console driver for text mode [acon]
-#- (and gtk support isn't done yet)
-#- "cp1255" => [ "iso08.f16", "iso08", "trivial.trans",
-#- "cp1255", "862", std_("microsoft-cp1255") ],
-#- Urdu needs special console driver for text mode [acon]
-#- (and gtk support isn't done yet)
-#- "cp1256" => [ undef, undef, "trivial.trans",
-#- undef, "864", std_("microsoft-cp1255") ],
-#- korean needs special console driver for text mode
- "ksc5601" => [ undef, undef, undef,
- "euc-kr", "949", "-*-*-*-*-*-*-*-*-*-*-*-*-ksc5601.1987-*" ],
-#- I have no console font for Thai...
- "tis620" => [ undef, undef, "trivial.trans",
- "tis-620", "874", std2("tis620.2533-1",12) ],
-#- "tcvn" => [ "tcvn8x16", "tcvn", "trivial.trans",
-#- undef, undef, std2("tcvn-5712", 13), std2("tcvn-5712", 10) ],
- "viscii" => [ "tcvn8x16", "viscii.uni", "viscii1.0_to_viscii1.1.trans",
- undef, undef, std2("tcvn-5712", 13), std2("tcvn-5712", 10) ],
-#- Farsi (iranian) needs special console driver for text mode [acon]
-#- (and gtk support isn't done yet)
-#- "isiri-3342" => [ undef, undef, "trivial.trans",
-#- undef, undef, "-*-*-*-*-*-*-*-*-*-*-*-*-isiri-3342" ],
-#- "tscii-0" => [ "tamil", undef, "trivial.trans",
-#- undef, undef, "-*-*-*-*-*-*-*-*-*-*-*-*-tscii-0" ],
- "unicode" => [ undef, undef, "trivial.trans",
- "utf8", undef, "-*-*-*-*-*-*-*-*-*-*-*-*-iso10646-1" ],
-);
-
-my %bigfonts = (
- Big5 => 'taipei16.pcf.gz',
- gb2312 => 'gb16fs.pcf.gz',
- jisx0208 => 'k14.pcf.gz',
- ksc5601 => 'baekmuk_gulim_h_14.pcf.gz',
- unicode => 'cu12.pcf.gz',
-);
-
-#- for special cases not handled magically
-my %charset2kde_charset = (
- gb2312 => 'gb2312.1980-0',
- jisx0208 => 'jisx0208.1983-0',
- ksc5601 => 'ksc5601.1987-0',
- Big5 => 'big5-0',
- cp1251 => 'microsoft-cp1251',
- utf8 => 'iso10646-1',
- tis620 => 'tis620-0',
-);
-
-#- for special cases not handled magically
-my %lang2country = (
- ar => 'eg',
- be => 'by',
- bs => 'bh',
- cs => 'cz',
- da => 'dk',
- el => 'gr',
- et => 'ee',
- ko => 'kr',
- mi => 'nz',
- ms => 'my',
- nn => 'no',
- sl => 'si',
- sp => 'sr',
- sv => 'se',
-);
-
-
-my @during_install__lang_having_their_LC_CTYPE = qw(hy ja ko th vi);
-
-#-######################################################################################
-#- Functions
-#-######################################################################################
-
-sub list {
- my (%options) = @_;
- my @l = @languages;
- if ($options{exclude_non_necessary_utf8}) {
- my %LANGs_non_utf8 = map { lang2LANG($_) => 1 } grep { !/UTF-8/ } @languages;
- @l = grep { !/UTF-8/ || !$LANGs_non_utf8{lang2LANG($_)} } @l;
- }
- if ($options{exclude_non_installed_langs}) {
- @l = grep { -e "/usr/share/locale/" . lang2LANG($_) . "/LC_CTYPE" } @l;
- }
- @l;
-}
-sub lang2text { exists $languages{$_[0]} && $languages{$_[0]}[0] }
-sub lang2charset { exists $languages{$_[0]} && $languages{$_[0]}[1] }
-sub lang2LANG { exists $languages{$_[0]} && $languages{$_[0]}[2] }
-sub lang2LANGUAGE { exists $languages{$_[0]} && $languages{$_[0]}[3] }
-sub lang2UTF8 { exists $languages{$_[0]} && $languages{$_[0]}[4] }
-sub getxim { $xim{$_[0]} }
-
-sub lang2console_font {
- my ($lang) = @_;
- my $c = $charsets{lang2charset($lang) || return} or return;
- my ($name, $sfm, $acm) = @$c;
- undef $acm if lang2UTF8($lang);
- ($name, $sfm, $acm);
-}
-
-sub lang2country {
- my ($lang, $prefix) = @_;
-
- my $dir = "$prefix/usr/share/locale/l10n";
- my @countries = grep { -d "$dir/$_" } all($dir);
- my %countries; @countries{@countries} = ();
-
- my $valid_country = sub {
- my ($country) = @_;
- #- fast & dirty solution to ensure bad entries do not happen
- exists $countries{$country} && $country;
- };
-
- my $country;
- if ($country ||= $lang2country{$lang}) {
- return $valid_country->($country) ? $country : 'C';
- }
- $country ||= $valid_country->(lc($1)) if $lang =~ /([A-Z]+)/;
- $country ||= $valid_country->(lc($1)) if lang2LANGUAGE($lang) =~ /([A-Z]+)/;
- $country ||= $valid_country->(substr($lang, 0, 2));
- $country ||= first(grep { $valid_country->($_) } map { substr($_, 0, 2) } split(':', lang2LANGUAGE($lang)));
- $country || 'C';
-}
-
-
-sub country2lang {
- my ($country, $default) = @_;
-
- my $uc_country = uc $country;
- my %country2lang = reverse %lang2country;
-
- my ($lang1, $lang2);
- $lang1 ||= $country2lang{$country};
- $lang1 ||= first(grep { /^$country/ } list());
- $lang1 ||= first(grep { /_$uc_country/ } list());
- $lang2 ||= first(grep { int grep { /^$country/ } split(':', lang2LANGUAGE($_)) } list());
- $lang2 ||= first(grep { int grep { /_$uc_country/ } split(':', lang2LANGUAGE($_)) } list());
- ($lang1 =~ /UTF-8/ && $lang2 !~ /UTF-8/ ? $lang2 || $lang1 : $lang1 || $lang2) || $default || 'en_US';
-}
-
-sub lang2kde_lang {
- my ($lang, $default) = @_;
-
- #- get it using
- #- echo C $(rpm -qp --qf "%{name}\n" /RPMS/kde-i18n-* | sed 's/kde-i18n-//')
- my @valid_kde_langs = qw(C af az bg ca cs da de el en_GB eo es et fi fr he hu is it ja ko lt lv mt nl no no_NY pl pt pt_BR ro ru sl sk sr sv ta th tr uk xh zh_CN.GB2312 zh_TW.Big5);
- my %valid_kde_langs; @valid_kde_langs{@valid_kde_langs} = ();
-
- my $valid_lang = sub {
- my ($lang) = @_;
- #- fast & dirty solution to ensure bad entries do not happen
- $lang eq 'en' ? 'C' :
- exists $valid_kde_langs{$lang} ? $lang :
- exists $valid_kde_langs{substr($lang, 0, 2)} ? substr($lang, 0, 2) : '';
- };
-
- my $r;
- $r ||= $valid_lang->(lang2LANG($lang));
- $r ||= first(grep { $valid_lang->($_) } split(':', lang2LANGUAGE($lang)));
- $r || $default || 'C';
-}
-
-sub kde_lang2lang {
- my ($klang, $default) = @_;
- first(grep { /^$klang/ } list()) || $default || 'en_US';
-}
-
-sub kde_lang_country2lang {
- my ($klang, $country, $default) = @_;
- my $uc_country = uc $country;
- #- country is used to precise the lang
- my @choices = grep { /^$klang/ } list();
- my @sorted =
- @choices == 2 && length $choices[0] !~ /[._]/ && $choices[1] =~ /UTF-8/ ? @choices :
- map { $_->[0] } sort { $b->[1] <=> $a->[1] } map { [ $_ => /_$uc_country/ ] } @choices;
-
- $sorted[0] || $default || 'en_US';
-}
-
-sub charset2kde_charset {
- my ($charset, $default) = @_;
- my $iocharset = ($charsets{$charset} || [])->[3];
-
- my @valid_kde_charsets = qw(big5-0 gb2312.1980-0 iso10646-1 iso8859-1 iso8859-4 iso8859-6 iso8859-8 iso8859-13 iso8859-14 iso8859-15 iso8859-2 iso8859-3 iso8859-5 iso8859-7 iso8859-9 koi8-r koi8-u ksc5601.1987-0 jisx0208.1983-0 microsoft-cp1251 tis620-0);
- my %valid_kde_charsets; @valid_kde_charsets{@valid_kde_charsets} = ();
-
- my $valid_charset = sub {
- my ($charset) = @_;
- #- fast & dirty solution to ensure bad entries do not happen
- exists $valid_kde_charsets{$charset} && $charset;
- };
-
- my $r;
- $r ||= $valid_charset->($charset2kde_charset{$charset});
- $r ||= $valid_charset->($charset2kde_charset{$iocharset});
- $r ||= $valid_charset->($iocharset);
- $r || $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)
-my %charset2kde_font = (
- 'C' => [ "adobe-helvetica,12", "courier,10", "adobe-helvetica,11" ],
- 'iso-8859-1' => [ "adobe-helvetica,12", "courier,10", "adobe-helvetica,11" ],
- 'iso-8859-2' => [ "adobe-helvetica,12", "courier,10", "adobe-helvetica,11" ],
- 'iso-8859-9' => [ "adobe-helvetica,12", "courier,10", "adobe-helvetica,11" ],
- 'iso-8859-15' => [ "adobe-helvetica,12", "courier,10", "adobe-helvetica,11" ],
- 'gb2312' => [ "default-ming,16" ],
- 'jisx0208' => [ "misc-fixed,14", "wadalab-gothic,13" ],
- 'ksc5601' => [ "daewoo-gothic,16" ],
- 'Big5' => [ "taipei-fixed,16" ],
- 'armscii-8' => [ "clearlyu,17" ],
- 'utf_ka' => [ "clearlyu,17" ],
- 'viscii' => [ "misc-fixed,13", "misc-fixed,13", "misc-fixed,10", ],
- 'default' => [ "misc-fixed,13", "misc-fixed,13", "misc-fixed,10", ],
-);
-
-sub charset2kde_font {
- my ($charset, $type) = @_;
- my $kdecharset = charset2kde_charset($charset);
-
- my $font = $charset2kde_font{$charset} || $charset2kde_font{default};
- my $r = $font->[$type] || $font->[0];
-
- #- the format is "font-name,size,5,kdecharset,0,0" I have no idea of the
- #- meaning of that "5"...
- "$r,5,$kdecharset,0,0";
-}
-
-sub set {
- my ($lang, $translate_for_console) = @_;
-
- if ($lang && !exists $languages{$lang}) {
- #- try to find the best lang
- my ($lang2) = grep { /^\Q$lang/ } list(); #- $lang is not precise enough, choose the first complete
- my ($lang3) = grep { $lang =~ /^\Q$_/ } list(); #- $lang is too precise, choose the first substring matching
- log::l("lang::set: fixing $lang with ", $lang2 || $lang3);
- $lang = $lang2 || $lang3;
- }
-
- if ($lang && exists $languages{$lang}) {
- my ($dir, $LANG) = ("$ENV{SHARE_PATH}/locale", lang2LANG($lang));
- if (! -e "$dir/$LANG" && common::usingRamdisk()) {
- @ENV{qw(LANG LC_ALL LANGUAGE LINGUAS)} = ();
-
- my @LCs = qw(LC_ADDRESS LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME);
-
- my $charset = during_install__lang2charset($lang) || $LANG;
-
- #- there are 3 main charsets containing everything for all locales, except LC_CTYPE
- #- by default, there is UTF-8.
- #- when asked for GB2312 or BIG5, removing the other main charsets
- my $main_charset = member($charset, 'GB2312', 'BIG5') ? $charset : 'UTF-8';
-
- #- removing everything
- #- except in main charset: only removing LC_CTYPE if it is there
- eval { rm_rf($_ eq $main_charset ? "$dir/$_/LC_CTYPE" : "$dir/$_") } foreach all($dir);
-
- if (! -e "$dir/$main_charset") {
- #- getting the main charset
- mkdir "$dir/$main_charset";
- mkdir "$dir/$main_charset/LC_MESSAGES";
- install_any::getAndSaveFile ("$dir/$main_charset/$_") foreach @LCs, 'LC_MESSAGES/SYS_LC_MESSAGES';
- }
- mkdir "$dir/$LANG";
-
- #- linking to the main charset
- symlink "../$main_charset/$_", "$dir/$LANG/$_" foreach @LCs, 'LC_MESSAGES';
-
- #- getting LC_CTYPE (putting it directly in $LANG)
- install_any::getAndSaveFile ("Mandrake/mdkinst$dir/$charset/LC_CTYPE", "$dir/$LANG/LC_CTYPE");
- }
-
-#- set all LC_* variables to a unique locale ("C"), and only redefine
-#- LC_CTYPE (for X11 choosing the fontset) and LANGUAGE (for the po files)
- $ENV{$_} = 'C' foreach qw(LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT LC_IDENTIFICATION);
-
-#- use lang2LANG() to define LC_CTYPE, so DrakX will use a same encoding
-#- for all variations of a same language, eg both 'ru_RU.KOI8-R' and
-#- 'ru_RU.UTF-8' will be handled the same (as 'ru') by DrakX.
-#- that way DrakX only needs a reduced set of locale and fonts support.
-#- of course on the installed system they will be different.
- $ENV{LC_CTYPE} = lang2LANG($lang);
- $ENV{LC_MESSAGES} = lang2LANG($lang);
- $ENV{LANG} = lang2LANG($lang);
-
- if ($translate_for_console && $lang =~ /^(ko|ja|zh|th)/) {
- log::l("not translating in console");
- $ENV{LANGUAGE} = 'C';
- } else {
- $ENV{LANGUAGE} = lang2LANGUAGE($lang);
- }
- load_mo();
- } else {
- #- stick with the default (English) */
- delete $ENV{LANG};
- delete $ENV{LC_ALL};
- delete $ENV{LANGUAGE};
- delete $ENV{LINGUAS};
- }
- $lang;
-}
-
-sub langs {
- my ($l) = @_;
- grep { $l->{$_} } keys %$l;
-}
-
-sub langsLANGUAGE {
- my ($l) = @_;
- my @l = $l->{all} ? list() : langs($l);
- uniq(map { split ':', lang2LANGUAGE($_) } @l);
-}
-
-sub pack_langs {
- my ($l) = @_;
- my $s = $l->{all} ? 'all' : join ':', uniq(map { lang2LANGUAGE($_) } langs($l));
- $ENV{RPM_INSTALL_LANG} = $s;
- $s;
-}
-
-sub unpack_langs {
- my ($s) = @_;
- my @l = uniq(map { split ':', lang2LANGUAGE($_) } split(':', $s));
- my @l2 = intersection(\@l, [ keys %languages ]);
- +{ map { $_ => 1 } @l2 };
-}
-
-sub read {
- my ($prefix, $user_only) = @_;
- my ($f1, $f2) = ("$prefix$ENV{HOME}/.i18n", "$prefix/etc/sysconfig/i18n");
- my %h = getVarsFromSh($user_only && -e $f1 ? $f1 : $f2);
- my $lang = $h{LC_MESSAGES} || 'en_US';
- $lang = bestMatchSentence($lang, list()) if !exists $languages{$lang};
- my $langs = $user_only ? () :
- cat_("$prefix/etc/rpm/macros") =~ /%_install_langs (.*)/ ? unpack_langs($1) : { $lang => 1 };
- $lang, $langs;
-}
-
-sub write_langs {
- my ($prefix, $langs) = @_;
- my $s = pack_langs($langs);
- symlink "$prefix/etc/rpm", "/etc/rpm" if $prefix;
- substInFile { s/%_install_langs.*//; $_ .= "%_install_langs $s\n" if eof && $s } "$prefix/etc/rpm/macros";
-}
-
-sub write {
- my ($prefix, $lang, $user_only, $dont_touch_kde_files) = @_;
-
- $lang or return;
-
- my $h = {};
- $h->{$_} = $lang foreach qw(LC_COLLATE LC_CTYPE LC_MESSAGES LC_NUMERIC LC_MONETARY LC_TIME);
- if ($lang && exists $languages{$lang}) {
-##- note: KDE is unable to use the keyboard if LC_* and LANG values differ...
-#- add2hash $h, { LANG => lang2LANG($lang), LANGUAGE => lang2LANGUAGE($lang) };
- add2hash $h, { LANG => $lang, LANGUAGE => lang2LANGUAGE($lang) };
-
- my ($name, $sfm, $acm) = lang2console_font($lang);
- if ($name && !$user_only) {
- my $p = "$prefix/usr/lib/kbd";
- if ($name) {
- eval {
- cp_af("$p/consolefonts/$name.psf.gz", "$prefix/etc/sysconfig/console/consolefonts");
- add2hash $h, { SYSFONT => $name };
- };
- $@ and log::l("missing console font $name");
- }
- if ($sfm) {
- eval {
- cp_af(glob_("$p/consoletrans/$sfm*"), "$prefix/etc/sysconfig/console/consoletrans");
- add2hash $h, { UNIMAP => $sfm };
- };
- $@ and log::l("missing console unimap file $sfm");
- }
- if ($acm) {
- eval {
- cp_af(glob_("$p/consoletrans/$acm*"), "$prefix/etc/sysconfig/console/consoletrans");
- add2hash $h, { SYSFONTACM => $acm };
- };
- $@ and log::l("missing console acm file $acm");
- }
-
- }
- add2hash $h, $xim{$lang};
- }
- setVarsInSh($prefix . ($user_only ? "$ENV{HOME}/.i18n" : '/etc/sysconfig/i18n'), $h);
-
- eval {
- my $charset = lang2charset($lang);
- my $confdir = $prefix . ($user_only ? "$ENV{HOME}/.kde" : '/usr') . '/share/config';
- my ($prev_kde_charset) = cat_("$confdir/kdeglobals") =~ /^Charset=(.*)/mi;
-
- mkdir_p($confdir);
-
- update_gnomekderc("$confdir/kdeglobals", Locale => (
- Charset => charset2kde_charset($charset),
- Country => lang2country($lang, $prefix),
- Language => lang2kde_lang($lang),
- ));
-
- if ($prev_kde_charset ne charset2kde_charset($charset)) {
- update_gnomekderc("$confdir/kdeglobals", WM => (
- activeFont => charset2kde_font($charset,0),
- ));
- update_gnomekderc("$confdir/kdeglobals", General => (
- fixed => charset2kde_font($charset, 1),
- font => charset2kde_font($charset, 0),
- menuFont => charset2kde_font($charset, 3),
- taskbarFont => charset2kde_font($charset, 4),
- toolBarFont => charset2kde_font($charset, 2),
- ));
- update_gnomekderc("$confdir/konquerorrc", FMSettings => (
- StandardFont => charset2kde_font($charset, 0),
- ));
- update_gnomekderc("$confdir/kdesktoprc", FMSettings => (
- StandardFont => charset2kde_font($charset, 0),
- ));
- }
- } if !$dont_touch_kde_files;
-}
-
-sub bindtextdomain() {
- my $localedir = "$ENV{SHARE_PATH}/locale";
- $localedir .= "_special" if $::isInstall;
-
- c::setlocale();
- c::bindtextdomain('libDrakX', $localedir);
-
- $localedir;
-}
-
-sub load_mo {
- my ($lang) = @_;
-
- my $localedir = bindtextdomain();
- my $suffix = 'LC_MESSAGES/libDrakX.mo';
-
- $lang ||= $ENV{LANGUAGE} || $ENV{LC_ALL} || $ENV{LC_MESSAGES} || $ENV{LANG};
-
- foreach (split ':', $lang) {
- my $f = "$localedir/$_/$suffix";
- -s $f and return $_;
-
- if ($::isInstall && common::usingRamdisk()) {
- #- cleanup
- eval { rm_rf($localedir) };
- eval { mkdir_p(dirname("$localedir/$_/$suffix")) };
- install_any::getAndSaveFile ("$localedir/$_/$suffix");
-
- -s $f and return $_;
- }
- }
- '';
-}
-
-
-#- used in Makefile during "make get_needed_files"
-sub console_font_files {
- map { -e $_ ? $_ : "$_.gz" }
- (map { "/usr/lib/kbd/consolefonts/$_.psf" } uniq grep {$_} map { $_->[0] } values %charsets),
- (map { -e $_ ? $_ : "$_.sfm" } map { "/usr/lib/kbd/consoletrans/$_" } uniq grep {$_} map { $_->[1] } values %charsets),
- (map { -e $_ ? $_ : "$_.acm" } map { "/usr/lib/kbd/consoletrans/$_" } uniq grep {$_} map { $_->[2] } values %charsets),
-}
-
-sub load_console_font {
- my ($lang) = @_;
- my ($name, $sfm, $acm) = lang2console_font($lang);
-
- require run_program;
- run_program::run(if_($ENV{LD_LOADER}, $ENV{LD_LOADER}),
- 'consolechars', '-v', '-f', $name || 'lat0-sun16',
- if_($sfm, '-u', $sfm), if_($acm, '-m', $acm));
-}
-
-sub get_x_fontset {
- my ($lang, $size) = @_;
-
- my $charset = lang2charset($lang) or return;
- my $c = $charsets{$charset} or return;
- if (my $f = $bigfonts{$charset}) {
- my $dir = "/usr/X11R6/lib/X11/fonts";
- if (! -e "$dir/$f" && $::isInstall && common::usingRamdisk()) {
- unlink "$dir/$_" foreach values %bigfonts;
- install_any::remove_bigseldom_used ();
- install_any::getAndSaveFile ("$dir/$f");
- }
- }
- my ($big, $small) = @$c[5..6];
- ($big, $small) = $big->($size) if ref $big;
- ($big, $small);
-}
-
-sub fs_options {
- my ($lang) = @_;
- if (lang2UTF8($lang)) {
- ('utf8', undef);
- } else {
- my $c = $charsets{lang2charset($lang) || return} or return;
- my ($iocharset, $codepage) = @$c[3..4];
- $iocharset, $codepage;
- }
-}
-
-sub charset {
- my ($lang, $prefix) = @_;
- my $l = lang2LANG($lang);
- foreach (cat_("$prefix/usr/X11R6/lib/X11/locale/locale.alias")) {
- /$l:\s+.*\.(\S+)/ and return $1;
- }
- $l =~ /.*\.(\S+)/ and return $1;
-}
-
-sub during_install__lang2charset {
- my ($lang) = @_;
- return if member(lang2LANG($lang), @during_install__lang_having_their_LC_CTYPE);
-
- my ($c) = lang2charset($lang) or die "bad lang $lang\n";
- $c = 'cp1251' if $c =~ /koi8-/;
- $c = 'iso-8859-15' if member($c, 'iso-8859-1', 'C');
- $c = 'UTF-8' if member($c, 'unicode', 'utf_ka');
- $c = 'UTF-8' if member($c, 'iso-8859-9e', 'iso-8859-8', 'iso-8859-6'); #- BAD, need fixing
- uc($c);
-}
-
-sub check {
- $^W = 0;
- my $ok = 1;
- my $warn = sub {
- print STDERR "$_[0]\n";
- };
- my $err = sub {
- &$warn;
- $ok = 0;
- };
-
- my @wanted_charsets = uniq map { lang2charset($_) } list();
- $err->("invalid charset $_ ($_ does not exist in \%charsets)") foreach difference2(\@wanted_charsets, [ keys %charsets ]);
- $err->("invalid charset $_ in \%charset2kde_font ($_ does not exist in \%charsets)") foreach difference2([ keys %charset2kde_font ], [ 'default', keys %charsets ]);
- $warn->("unused charset $_ (given in \%charsets, but not used in \%languages)") foreach difference2([ keys %charsets ], \@wanted_charsets);
-
- $warn->("unused entry $_ in \%xim") foreach difference2([ keys %xim ], [ list() ]);
-
- #- consolefonts are checked during build via console_font_files()
-
- if (my @l = difference2([ 'default', keys %charsets ], [ keys %charset2kde_font ])) {
- $warn->("no kde font for charset " . join(" ", @l));
- }
-
- if (my @l = grep { lang2country($_) eq 'C' } list()) {
- $warn->("no country for langs " . join(" ", @l));
- }
- if (my @l = grep { lang2kde_lang($_, 'err') eq 'err' } list()) {
- $warn->("no KDE lang for langs " . join(" ", @l));
- }
- if (my @l = grep { charset2kde_charset($_, 'err') eq 'err' } keys %charsets) {
- $warn->("no KDE charset for charsets " . join(" ", @l));
- }
- exit($ok ? 0 : 1);
-}
-
-#-######################################################################################
-#- Wonderful perl :(
-#-######################################################################################
-1;
diff --git a/perl-install/list.sparc b/perl-install/list.sparc
deleted file mode 100644
index 448e0b63e..000000000
--- a/perl-install/list.sparc
+++ /dev/null
@@ -1,74 +0,0 @@
-/bin/ash
-/bin/cpio
-/lib/libnss_nis.so.2
-/lib/libnss_files.so.2
-/lib/libnss_dns.so.2
-/lib/libresolv.so.2
-/etc/protocols
-/sbin/fdisk
-/sbin/ifport
-/sbin/insmod
-/sbin/mkraid
-/sbin/rmmod
-/sbin/mkdosfs
-/sbin/mke2fs
-/sbin/raidstart
-/usr/bin/bzip2
-/usr/bin/perl
-/usr/lib/libimlib-png.so
-/usr/lib/gtk/themes/engines/libpixmap.so
-/usr/lib/gtk/themes/engines/libpixmap.la
-/usr/lib/libimlib-png.so
-/usr/lib/perl5/5.00503/AutoLoader.pm
-/usr/lib/perl5/5.00503/Carp.pm
-/usr/lib/perl5/5.00503/Data/Dumper.pm
-/usr/lib/perl5/5.00503/Exporter.pm
-/usr/lib/perl5/5.00503/FileHandle.pm
-/usr/lib/perl5/5.00503/SelectSaver.pm
-/usr/lib/perl5/5.00503/SelfLoader.pm
-/usr/lib/perl5/5.00503/Symbol.pm
-/usr/lib/perl5/5.00503/Time/Local.pm
-/usr/lib/perl5/5.00503/dumpvar.pl
-/usr/lib/perl5/5.00503/sparc-linux/Config.pm
-/usr/lib/perl5/5.00503/sparc-linux/DynaLoader.pm
-/usr/lib/perl5/5.00503/sparc-linux/Fcntl.pm
-/usr/lib/perl5/5.00503/sparc-linux/auto/Fcntl/Fcntl.bs
-/usr/lib/perl5/5.00503/sparc-linux/auto/Fcntl/Fcntl.so
-/usr/lib/perl5/5.00503/sparc-linux/IO/File.pm
-/usr/lib/perl5/5.00503/sparc-linux/IO/Handle.pm
-/usr/lib/perl5/5.00503/sparc-linux/IO/Seekable.pm
-/usr/lib/perl5/5.00503/sparc-linux/IO/Socket.pm
-/usr/lib/perl5/5.00503/sparc-linux/Socket.pm
-/usr/lib/perl5/5.00503/sparc-linux/_h2ph_pre.ph
-/usr/lib/perl5/5.00503/sparc-linux/asm/unistd.ph
-/usr/lib/perl5/5.00503/sparc-linux/asm-sparc/unistd.ph
-/usr/lib/perl5/5.00503/sparc-linux/asm-sparc64/unistd.ph
-/usr/lib/perl5/5.00503/sparc-linux/auto/Data/Dumper/Dumper.bs
-/usr/lib/perl5/5.00503/sparc-linux/auto/Data/Dumper/Dumper.so
-/usr/lib/perl5/5.00503/sparc-linux/auto/IO/IO.so
-/usr/lib/perl5/5.00503/sparc-linux/auto/Socket/Socket.bs
-/usr/lib/perl5/5.00503/sparc-linux/auto/Socket/Socket.so
-/usr/lib/perl5/5.00503/sparc-linux/bits/syscall.ph
-/usr/lib/perl5/5.00503/sparc-linux/sys/syscall.ph
-/usr/lib/perl5/5.00503/sparc-linux/syscall.ph
-/usr/lib/perl5/5.00503/lib.pm
-/usr/lib/perl5/5.00503/overload.pm
-/usr/lib/perl5/5.00503/strict.pm
-/usr/lib/perl5/5.00503/vars.pm
-/usr/lib/perl5/site_perl/5.005/sparc-linux/Gtk.pm
-/usr/lib/perl5/site_perl/5.005/sparc-linux/Gtk/Types.pm
-/usr/lib/perl5/site_perl/5.005/sparc-linux/Net/Cmd.pm
-/usr/lib/perl5/site_perl/5.005/sparc-linux/Net/Config.pm
-/usr/lib/perl5/site_perl/5.005/sparc-linux/Net/FTP.pm
-/usr/lib/perl5/site_perl/5.005/sparc-linux/Net/FTP/A.pm
-/usr/lib/perl5/site_perl/5.005/sparc-linux/Net/FTP/I.pm
-/usr/lib/perl5/site_perl/5.005/sparc-linux/Net/FTP/dataconn.pm
-/usr/lib/perl5/site_perl/5.005/sparc-linux/Net/Netrc.pm
-/usr/lib/perl5/site_perl/5.005/sparc-linux/auto/Gtk/Gtk.bs
-/usr/lib/perl5/site_perl/5.005/sparc-linux/auto/Gtk/Gtk.so
-/usr/lib/rpm/rpmrc
-/usr/X11R6/bin/XF86_FBDev
-/usr/X11R6/bin/XF86_Mach64
-/usr/X11R6/bin/Xsun
-/usr/X11R6/bin/xmodmap
-/usr/X11R6/lib/modules/xf86Wacom.so
diff --git a/perl-install/live_install b/perl-install/live_install
deleted file mode 100755
index 937661a7d..000000000
--- a/perl-install/live_install
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/sh
-
-if [ "$UID" -ne 0 ]; then
- echo >&2 "you need to be root to start live install"
- exit 3
-fi
-
-if [ -x ./Mandrake/mdkinst/usr/bin/perl-install/live_install2 ]; then
- dir=`pwd`/Mandrake/mdkinst
-elif [ -x ../../../../../Mandrake/mdkinst/usr/bin/perl-install/live_install2 ]; then
- dir=`pwd`/../../..
-else
- echo >&2 "unable to get a working live system to start, check your working directory"
- exit 2
-fi
-
-/bin/rm -rf /tmp/image
-/bin/mkdir -m 0700 /tmp/image || exit 1
-/bin/rm -rf /tmp/drakx
-/bin/mkdir -m 0700 /tmp/drakx || exit 2
-
-for i in Mandrake RPMS misc boot images VERSION
-do
- /bin/ln -sf "$dir/../../$i" "/tmp/image/$i"
-done
-
-/bin/cp -a "$dir/../../Mandrake/mdkinst" "/tmp/drakx"
-
-if [ -x "/tmp/drakx/mdkinst/usr/bin/perl-install/live_install2" ]; then
- # get correct fonts for DrakX.
- if [ -n "$DISPLAY" ]; then
- xset +fp /tmp/drakx/mdkinst/usr/X11R6/lib/X11/fonts/
- xset fp rehash
- fi
-
- # avoid pollution for environment
- unset LC_MONETARY LC_CTYPE LC_NUMERIC LC_MESSAGES LC_TIME LC_COLLATE LANGUAGE LANG RPM_INSTALL_LANG
-
- # start DrakX, do not keep shell script in background else the CD is locked by it!!!
- cd /tmp/drakx/mdkinst/usr/bin/perl-install
- exec /usr/bin/perl ./live_install2
-fi
-
-echo >&2 "unable to get a working live system to start, check your working directory"
-exit 2
diff --git a/perl-install/live_install2 b/perl-install/live_install2
deleted file mode 100755
index 58c5e9e83..000000000
--- a/perl-install/live_install2
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/usr/bin/perl
-
-my $dir = `pwd`;
-chomp $dir;
-$dir .= "/../../..";
-
-#- perl version of the install, we use directly the version we found,
-#- this means there SHOULD BE no module compiled for an older version of perl
-#- which will be used by DrakX.
-my ($version, $arch) = (glob "$dir/usr/lib/perl5/*/*/CORE/libperl.so")[0] =~ m|$dir/usr/lib/perl5/([^/]*)/([^/]*)/CORE/libperl.so|;
-
-#- keep it mind the ELF loader to use.
-$ENV{LD_LOADER} = "$dir/lib/ld-linux.so.2";
-
-$ENV{LOCPATH}="$dir/usr/share/locale";
-$ENV{GCONV_PATH}="$dir/usr/lib/gconv";
-$ENV{PERL5LIB} = join ":", map { "$dir/usr/lib/perl5/$_" } ("$version/$arch",
- "$version",
- "site_perl/$version/$arch",
- "site_perl/$version",
- "site_perl");
-$ENV{LD_LIBRARY_PATH} = "$dir/usr/bin:$dir/bin:$dir/sbin:$dir/usr/sbin:$dir/usr/X11R6/bin:$dir/lib:$dir/usr/lib:$dir/usr/lib/perl5/$version/$arch/CORE";
-$ENV{PATH} = join(":", map { "$dir/$_" } split ":", "/usr/bin:/bin:/sbin:/usr/sbin:/usr/X11R6/bin") . ":$ENV{PATH}";
-$ENV{SHARE_PATH} = "$dir/usr/share";
-$ENV{RPMRC_FILE} = "$dir/usr/lib/rpm/rpmrc";
-$ENV{GTK_DATA_PREFIX} = "$dir/usr";
-$ENV{GTK_EXE_PREFIX} = "$dir/usr";
-$ENV{GDK_IMLIB_PATH} = "$dir/usr/lib";
-
-system $ENV{LD_LOADER}, "../perl", "-i", "-pe", "s,^(.*macrofiles[^/]*)(.*),\$1$dir/usr/lib/rpm/macros:\$2,", $ENV{RPMRC_FILE};
-system $ENV{LD_LOADER}, "../perl", "./install2", "--live", @ARGV;
-
-#- at this point, unwind above else they will not run correctly (wrong ld-linux.so.2)
-delete $ENV{GTK_EXE_PREFIX};
-delete $ENV{RPMRC_FILE};
-delete $ENV{LOCPATH};
-delete $ENV{SHARE_PATH};
-delete $ENV{PATH};
-delete $ENV{LD_LIBRARY_PATH};
-delete $ENV{PERL5LIB};
-delete $ENV{LD_LOADER};
-
-$ENV{DISPLAY} and system "xset", "-fp", "/tmp/drakx/mdkinst/usr/X11R6/lib/X11/fonts/";
-foreach (qw(misc PEX Speedo Type1 mdk 75dpi 100dpi cyrillic)) {
- -d "/usr/X11R6/lib/X11/fonts/$_" or next;
- -e "/usr/X11R6/lib/X11/fonts/$_/fonts.dir" and next;
- chdir "/usr/X11R6/lib/X11/fonts/$_";
- system "mkfontdir";
-}
-$ENV{DISPLAY} and system "xset", "fp", "rehash";
-
-system "/bin/rm", "-rf", "/tmp/drakx";
-system "/bin/rm", "-rf", "/tmp/rhimage";
-
-exec "/bin/sync";
diff --git a/perl-install/log.pm b/perl-install/log.pm
deleted file mode 100644
index 649ed30a0..000000000
--- a/perl-install/log.pm
+++ /dev/null
@@ -1,58 +0,0 @@
-package log; # $Id$
-
-use diagnostics;
-use strict;
-use c;
-
-
-#-#####################################################################################
-#- Globals
-#-#####################################################################################
-my $logOpen = 0;
-my $logDebugMessages = 0;
-
-
-#-######################################################################################
-#- Functions
-#-######################################################################################
-sub F() { *LOG }
-
-sub l {
- $logOpen or openLog();
- if ($::isStandalone) {
- c::syslog(c::LOG_WARNING(), join("", @_));
- } elsif ($::isInstall) {
- print LOG "* ", @_, "\n";
- print LOG2 "* ", @_, "\n";
- } else {
- print STDERR @_, "\n";
- }
-}
-sub ld { $logDebugMessages and &l }
-sub w { &l }
-
-sub openLog(;$) {
- if ($::isInstall) {
- if ($_[0]) { #- useLocal
- open LOG, "> $_[0]";# or die "no log possible :(";
- } else {
- open LOG, "> /dev/tty3";# or die "no log possible :(";
- }
- open LOG2, ">> /tmp/ddebug.log";# or die "no log possible :(";
- select((select(LOG), $| = 1)[0]);
- select((select(LOG2), $| = 1)[0]);
- }
- exists $ENV{DEBUG} and $logDebugMessages = 1;
- $logOpen = 1;
-}
-
-sub closeLog() {
- if ($::isStandalone) {
- c::closelog();
- } else { close LOG; close LOG2; }
-}
-
-#-######################################################################################
-#- Wonderful perl :(
-#-######################################################################################
-1;
diff --git a/perl-install/loopback.pm b/perl-install/loopback.pm
deleted file mode 100644
index 24c519ecb..000000000
--- a/perl-install/loopback.pm
+++ /dev/null
@@ -1,129 +0,0 @@
-package loopback; # $Id$
-
-use diagnostics;
-use strict;
-
-#-######################################################################################
-#- misc imports
-#-######################################################################################
-use MDK::Common::System;
-use common;
-use partition_table qw(:types);
-use fs;
-use fsedit;
-use log;
-
-
-sub carryRootLoopback {
- my ($part) = @_;
- $_->{mntpoint} eq '/' and return 1 foreach @{$part->{loopback} || []};
- 0;
-}
-
-sub check_circular_mounts {
- my ($hd, $part, $all_hds) = @_;
-
- my $fstab = [ fsedit::get_all_fstab($all_hds), $part ]; # no pb if $part is already in $all_hds
-
- my $base_mntpoint = $part->{mntpoint};
- my $check; $check = sub {
- my ($part, @seen) = @_;
- push @seen, $part->{mntpoint} || return;
- @seen > 1 && $part->{mntpoint} eq $base_mntpoint and die _("Circular mounts %s\n", join(", ", @seen));
- if (my $part = fs::up_mount_point($part->{mntpoint}, $fstab)) {
- #- '/' carrier is a special case, it will be mounted first
- $check->($part, @seen) if !carryRootLoopback($part);
- }
- if (isLoopback($part)) {
- $check->($part->{loopback_device}, @seen);
- }
- };
- $check->($part) if !($base_mntpoint eq '/' && isLoopback($part)); #- '/' is a special case, no loop check
-}
-
-sub carryRootCreateSymlink {
- my ($part, $prefix) = @_;
-
- carryRootLoopback($part) or return;
-
- my $mntpoint = "$prefix$part->{mntpoint}";
- unless (-e $mntpoint) {
- eval { mkdir_p(dirname($mntpoint)) };
- #- do non-relative link for install, should be changed to relative link before rebooting
- symlink "/initrd/loopfs", $mntpoint;
-
- mkdir_p("/initrd/loopfs/lnx4win/boot");
- symlink "/initrd/loopfs/lnx4win/boot", "$prefix/boot";
- }
- #- indicate kernel to keep initrd
- mkdir "$prefix/initrd", 0755;
-}
-
-
-sub format_part {
- my ($part, $prefix) = @_;
- fs::mount_part($part->{loopback_device}, $prefix);
- create($part, $prefix);
- fs::real_format_part($part);
-}
-
-sub create {
- my ($part, $prefix) = @_;
- my $f = $part->{device} = "$prefix$part->{loopback_device}{mntpoint}$part->{loopback_file}";
- return if -e $f;
-
- eval { mkdir_p(dirname($f)) };
-
- log::l("creating loopback file $f ($part->{size} sectors)");
-
- local *F;
- my $block_size = 128;
- my $s = "\0" x (512 * $block_size);
- sysopen F, $f, 2 | c::O_CREAT() or die "failed to create loopback file";
- for (my $i = 0; $i < $part->{size}; $i += $block_size) {
- syswrite F, $s or die "failed to create loopback file";
- }
-}
-
-sub getFree {
- my ($dir, $part) = @_;
- my $freespace = $dir ?
- 2 * (MDK::Common::System::df($dir))[1] : #- df in KiB
- $part->{size};
-
- $freespace - sum map { $_->{size} } @{$part->{loopback} || []};
-}
-
-#- returns the size of the loopback file if it already exists
-#- returns -1 is the loopback file can't be used
-sub verifFile {
- my ($dir, $file, $part) = @_;
- -e "$dir$file" and return -s "$dir$file";
-
- $_->{loopback_file} eq $file and return -1 foreach @{$part->{loopback} || []};
-
- undef;
-}
-
-sub prepare_boot {
- my ($prefix) = @_;
- my $r = readlink "$prefix/boot";
- unlink "$prefix/boot";
- mkdir "$prefix/boot", 0755;
- [$r, $prefix];
-}
-
-sub save_boot {
- my ($loop_boot, $prefix) = @{$_[0]};
-
- $loop_boot or return;
-
- my @files = glob_("$prefix/boot/*");
- cp_af(@files, $loop_boot) if @files;
- rm_rf("$prefix/boot");
- symlink $loop_boot, "$prefix/boot";
-}
-
-
-1;
-
diff --git a/perl-install/lvm.pm b/perl-install/lvm.pm
deleted file mode 100644
index 327e07fe2..000000000
--- a/perl-install/lvm.pm
+++ /dev/null
@@ -1,124 +0,0 @@
-package lvm; # $Id$
-
-use diagnostics;
-use strict;
-
-#-######################################################################################
-#- misc imports
-#-######################################################################################
-use common;
-use modules;
-use fsedit;
-use devices;
-use run_program;
-
-#- for partition_table_xxx emulation
-sub hasExtended { 0 }
-sub adjustStart {}
-sub adjustEnd {}
-sub write {}
-sub cylinder_size {
- my ($hd) = @_;
- $hd->{PE_size};
-}
-
-init();
-
-sub init {
- eval { modules::load('lvm-mod') };
- run_program::run('vgscan') if !-e '/etc/lvmtab';
- run_program::run('vgchange', '-a', 'y');
-}
-
-sub check {
- my ($in) = @_;
-
- my $f = '/sbin/pvcreate';
- -e $f or $in->do_pkgs->install('lvm');
- -e $f or $in->ask_warn('', "Mandatory package lvm is missing"), return;
- init();
- 1;
-}
-
-sub get_vg {
- my ($part) = @_;
- my $dev = expand_symlinks(devices::make($part->{device}));
- install_any::check_prog ("pvdisplay") if $::isInstall;
- (split(':', `pvdisplay -c $dev`))[1];
-}
-
-sub update_size {
- my ($lvm) = @_;
- install_any::check_prog ("vgdisplay") if $::isInstall;
- my @l = split(':', `vgdisplay -c -D $lvm->{LVMname}`);
- $lvm->{totalsectors} = ($lvm->{PE_size} = $l[12]) * $l[13];
-}
-
-sub get_lvs {
- my ($lvm) = @_;
- install_any::check_prog ("vgdisplay") if $::isInstall;
- my @l = `vgdisplay -v -D $lvm->{LVMname}`;
- install_any::check_prog ("lvdisplay") if $::isInstall;
- $lvm->{primary}{normal} =
- [
- map {
- my $type = -e "/dev/$_" && fsedit::typeOfPart("/dev/$_");
- { device => $_,
- type => $type || 0x83,
- size => (split(':', `lvdisplay -D -c /dev/$_`))[6] }
- } map { m|^LV Name\s+/dev/(\S+)| ? $1 : () } @l
- ];
-}
-
-sub vg_add {
- my ($part) = @_;
- if (my $old_name = get_vg($part)) {
- run_program::run('vgchange', '-a', 'n', $old_name);
- run_program::run('vgremove', $old_name);
- }
- my $dev = expand_symlinks(devices::make($part->{device}));
- run_program::run_or_die('pvcreate', '-y', '-ff', $dev);
- my $prog = run_program::run('vgdisplay', $part->{lvm}) ? 'vgextend' : 'vgcreate';
- run_program::run_or_die($prog, $part->{lvm}, $dev);
-}
-
-sub vg_destroy {
- my ($lvm) = @_;
-
- is_empty_array_ref($lvm->{primary}{normal}) or die _("Remove the logical volumes first\n");
- run_program::run('vgchange', '-a', 'n', $lvm->{LVMname});
- run_program::run_or_die('vgremove', $lvm->{LVMname});
- foreach (@{$lvm->{disks}}) {
- delete $_->{lvm};
- $_->{isFormatted} = 0;
- $_->{notFormatted} = 1;
- }
-}
-
-sub lv_delete {
- my ($lvm, $lv) = @_;
-
- run_program::run_or_die('lvremove', '-f', "/dev/$lv->{device}");
-
- my $list = $lvm->{primary}{normal};
- @$list = grep { $_ != $lv } @$list;
-}
-
-sub lv_create {
- my ($lvm, $lv) = @_;
- my $list = $lvm->{primary}{normal};
- my $nb = 1 + max(map { basename($_->{device}) } @$list);
- $lv->{device} = "$lvm->{LVMname}/$nb";
- run_program::run_or_die('lvcreate', '--size', int($lv->{size} / 2) . 'k', '-n', $nb, $lvm->{LVMname});
- $lv->{notFormatted} = 1;
- $lv->{isFormatted} = 0;
- push @$list, $lv;
-}
-
-sub lv_resize {
- my ($lv, $oldsize) = @_;
- run_program::run_or_die($oldsize > $lv->{size} ? ('lvreduce', '-f') : 'lvextend',
- '--size', int($lv->{size} / 2) . 'k', "/dev/$lv->{device}");
-}
-
-1;
diff --git a/perl-install/modparm.pm b/perl-install/modparm.pm
deleted file mode 100644
index ee5fd46ab..000000000
--- a/perl-install/modparm.pm
+++ /dev/null
@@ -1,63 +0,0 @@
-package modparm; # $Id$
-
-use diagnostics;
-use strict;
-
-#-######################################################################################
-#- misc imports
-#-######################################################################################
-use common;
-use modules;
-
-
-sub parameters {
- my ($module) = @_;
-
- my $modinfo = '/sbin/modinfo';
- -x $modinfo or $modinfo = '/usr/bin/modinfo';
- -x $modinfo or die _('modinfo is not available');
-
- if (!$::isStandalone && !$::testing) {
- modules::extract_modules('/tmp', $module);
- $module = "/tmp/$module.o";
- }
-
- my @parameters;
- foreach (common::join_lines(`$modinfo -p $module`)) {
- chomp;
- next if /^warning:/;
- (my $name, $_) = /(\S+)\s+(.*)/s or warn "modparm::get_options_name($module): unknown line\n";
-
- my $c_types = 'int|string|short|byte|char|long';
- my ($is_a_number, $description, $min, $max) = (0, '', 1, 1);
- if (/^($c_types) array \(min = (\d+), max = (\d+)\),?\s*(.*)/s) {
- $_ = $4;
- #- seems like "char" are buggy entries
- ($is_a_number, $min, $max) = ($1 ne 'string', $2, $3) if $1 ne 'char';
- } elsif (/^($c_types),?\s*(.*)/s) {
- $_ = $2;
- #- here "char" really are size-limited strings, modinfo doesn't display the size limit (but since we don't care about it, it doesn't matter :)
- $is_a_number = $1 ne 'string' if $1 ne 'char';
- } else {
- #- for things like "no format character" or "unknown format character"
- }
- if (/^description "(.*)",?\s*/s) {
- ($description, $_) = ($1, $2);
- }
- #- print "STILL HAVE ($_)\n" if $_;
-
- my $format =
- $min == 1 && $max == 1 ?
- ($is_a_number ? _("a number") : '') :
- $min == $max ?
- ($is_a_number ? _("%d comma separated numbers", $min) : _("%d comma separated strings", $min)) :
- $min == 1 ?
- ($is_a_number ? _("comma separated numbers") : _("comma separated strings")) :
- ''; #- to weird and buggy, do not display it
-
- push @parameters, [ $format ? "$name ($format)" : $name, $description ];
- }
- @parameters;
-}
-
-1;
diff --git a/perl-install/modules.pm b/perl-install/modules.pm
deleted file mode 100644
index 4f843b778..000000000
--- a/perl-install/modules.pm
+++ /dev/null
@@ -1,393 +0,0 @@
-package modules; # $Id$
-
-use strict;
-
-use common;
-use detect_devices;
-use run_program;
-use log;
-use list_modules;
-
-my %conf;
-
-sub category2modules_and_description {
- my ($categories) = @_;
- my $f = '/lib/modules/' . c::kernel_version() . '/modules.description';
- -e $f or $f = '/lib/modules.description';
- my %modules_descriptions = map { /(\S+)\s+(.*)/ } cat_($f);
- map { $_ => $modules_descriptions{$_} } category2modules($categories);
-}
-
-#-###############################################################################
-#- module loading
-#-###############################################################################
-# handles dependencies
-# eg: load('vfat', 'reiserfs', [ ne2k => 'io=0xXXX', 'dma=5' ])
-sub load {
- #- keeping the order of modules
- my %options;
- my @l = map {
- my ($name, @options) = ref $_ ? @$_ : $_;
- $options{$name} = \@options;
- dependencies_closure($name);
- } @_;
-
- @l = difference2([ uniq(@l) ], [ loaded_modules() ]) or return;
-
- my $network_module = do {
- my ($network_modules, $other) = partition { module2category($_) =~ m,network/(main|usb), } @l;
- if (@$network_modules > 1) {
- # do it one by one
- load($_) foreach @$network_modules;
- load(@$other);
- return;
- }
- $network_modules->[0];
- };
- my @network_devices = $network_module ? detect_devices::getNet() : ();
-
- if ($::testing) {
- log::l("i would load module $_ (@{$options{$_}})") foreach @l;
- } elsif ($::isStandalone || $::live) {
- run_program::run('/sbin/modprobe', $_, @{$options{$_}})
- or die "insmod'ing module $_ failed" foreach @l;
- } else {
- load_raw(map { [ $_ => $options{$_} ] } @l);
- }
- sleep 2 if grep { /^(usb-storage|mousedev|printer)$/ } @l;
-
- if ($network_module) {
- add_alias($_, $network_module) foreach difference2([ detect_devices::getNet() ], \@network_devices);
- }
- when_load($_, @{$options{$_}}) foreach @l;
-}
-
-sub unload {
- if ($::testing) {
- log::l("rmmod $_") foreach @_;
- } else {
- run_program::run("rmmod", $_) foreach @_;
- }
-}
-
-sub load_category {
- my ($category, $wait_message, $probe_type) = @_;
-
- #- probe_category returns the PCMCIA cards. It doesn't know they are already
- #- loaded, so:
- read_already_loaded();
-
- my @try_modules = (
- if_($category =~ /scsi/,
- if_(arch() !~ /ppc/, 'imm', 'ppa'),
- if_(detect_devices::usbStorage(), 'usb-storage'),
- ),
- if_(arch() =~ /ppc/,
- if_($category =~ /scsi/, 'mesh', 'mac53c94'),
- if_($category =~ /net/, 'bmac', 'gmac', 'mace'),
- if_($category =~ /sound/, 'dmasound_awacs'),
- ),
- );
- grep {
- $wait_message->($_->{description}, $_->{driver}) if $wait_message;
- eval { load([ $_->{driver}, $_->{options} ]) };
- $_->{error} = $@;
-
- !($@ && $_->{try});
- } probe_category($category, $probe_type),
- map {; { driver => $_, description => $_, try => 1 } } @try_modules;
-}
-
-sub probe_category {
- my ($category, $probe_type) = @_;
-
- my @modules = category2modules($category);
-
- grep {
- if ($category eq 'isdn') {
- my $b = $_->{driver} =~ /ISDN:([^,]*),?([^,]*),?(.*)/;
- if ($b) {
- $_->{driver} = $1;
- $_->{options} = $2;
- $_->{firmware} = $3;
- $_->{firmware} =~ s/firmware=//;
- $_->{driver} eq "hisax" and $_->{options} .= " id=HiSax";
- }
- $b;
- } else {
- member($_->{driver}, @modules);
- }
- } detect_devices::probeall($probe_type);
-}
-
-sub load_ide {
- eval { load("ide-cd"); }
-}
-
-
-#-###############################################################################
-#- modules.conf functions
-#-###############################################################################
-sub get_alias {
- my ($alias) = @_;
- $conf{$alias}{alias};
-}
-sub get_probeall {
- my ($alias) = @_;
- $conf{$alias}{probeall};
-}
-sub get_options {
- my ($name) = @_;
- $conf{$name}{options};
-}
-sub set_options {
- my ($name, $new_option) = @_;
- $conf{$name}{options} = $new_option;
-}
-sub add_alias {
- my ($alias, $module) = @_;
- $module =~ /ignore/ and return;
- /\Q$alias/ && $conf{$_}{alias} && $conf{$_}{alias} eq $module and return $_ foreach keys %conf;
- log::l("adding alias $alias to $module");
- $conf{$alias}{alias} ||= $module;
- $conf{$module}{above} = 'snd-pcm-oss' if $module =~ /^snd-/;
- $alias;
-}
-sub add_probeall {
- my ($alias, $module) = @_;
-
- my $l = $conf{$alias}{probeall} ||= [];
- push @$l, $module;
- log::l("setting probeall scsi_hostadapter to @$l");
-}
-
-sub remove_alias($) {
- my ($name) = @_;
- foreach (keys %conf) {
- $conf{$_}{alias} && $conf{$_}{alias} eq $name or next;
- delete $conf{$_}{alias};
- return 1;
- }
- 0;
-}
-
-sub read_conf {
- my ($file) = @_;
- my %c;
-
- foreach (cat_($file)) {
- next if /^\s*#/;
- my ($type, $alias, $val) = split(/\s+/, chomp_($_), 3) or next;
-
- $val = [ split ' ', $val ] if $type eq 'probeall';
-
- $c{$alias}{$type} = $val;
- }
- #- cheating here: not handling aliases of aliases
- while (my ($k, $v) = each %c) {
- if (my $a = $v->{alias}) {
- local $c{$a}{alias};
- delete $v->{probeall};
- add2hash($c{$a}, $v);
- }
- }
- #- convert old aliases to new probeall
- foreach my $name ('scsi_hostadapter', 'usb-interface') {
- my @old_aliases =
- map { $_->[0] } sort { $a->[1] <=> $b->[1] }
- map { if_(/^$name(\d*)/ && $c{$_}{alias}, [ $_, $1 || 0 ]) } keys %c;
- foreach my $alias (@old_aliases) {
- push @{$c{$name}{probeall} ||= []}, delete $c{$alias}{alias};
- }
- }
-
- \%c;
-}
-
-sub mergein_conf {
- my ($file) = @_;
- my $modconfref = read_conf($file);
- while (my ($key, $value) = each %$modconfref) {
- $conf{$key}{alias} = $value->{alias} if !exists $conf{$key}{alias};
- push @{$conf{$key}{probeall} ||= []}, deref($value->{probeall});
- }
-}
-
-sub write_conf {
- my ($prefix) = @_;
-
- my $file = "$prefix/etc/modules.conf";
- rename "$prefix/etc/conf.modules", $file; #- make the switch to new name if needed
-
- #- Substitute new aliases in modules.conf (if config has changed)
- substInFile {
- my ($type,$alias,$module) = split(/\s+/, chomp_($_), 3);
- if ($type eq 'post-install' && $alias eq 'supermount') {
- #- remove the post-install supermount stuff.
- $_ = '';
- } elsif ($type eq 'alias' && $alias =~ /scsi_hostadapter|usb-interface/) {
- #- remove old aliases which are replaced by probeall
- $_ = '';
- } elsif (
- $conf{$alias}{$type} &&
- $conf{$alias}{$type} ne $module) {
- my $v = join(' ', uniq(deref($conf{$alias}{$type})));
- $_ = "$type $alias $v\n";
- }
- } $file;
-
- my $written = read_conf($file);
-
- local *F;
- open F, ">> $file" or die("cannot write module config file $file: $!\n");
- while (my ($mod, $h) = each %conf) {
- while (my ($type, $v) = each %$h) {
- my $v2 = join(' ', uniq(deref($v)));
- print F "$type $mod $v2\n"
- if $v2 && !$written->{$mod}{$type};
- }
- }
- my @l = ();
- push @l, 'scsi_hostadapter' if !is_empty_array_ref($conf{scsi_hostadapter}{probeall});
- push @l, 'bttv' if grep { $_->{driver} eq 'bttv' } detect_devices::probeall();
- append_to_etc_modules($prefix, @l);
-}
-
-sub append_to_etc_modules {
- my ($prefix, @l) = @_;
- my $l = join '|', map { '^\s*'.$_.'\s*$' } @l;
- log::l("to put in modules ", join(", ", @l));
-
- substInFile {
- $_ = '' if $l && /$l/;
- $_ .= join '', map { "$_\n" } @l if eof;
- } "$prefix/etc/modules";
-}
-
-sub read_stage1_conf {
- mergein_conf($_[0]);
-}
-
-#-###############################################################################
-#- pcmcia various
-#-###############################################################################
-sub configure_pcmcia {
- my ($pcic) = @_;
-
- #- try to setup pcmcia if cardmgr is not running.
- my $running if 0;
- return if $running;
- $running = 1;
-
- if (c::kernel_version() =~ /^2\.2/) {
- my $msg = _("PCMCIA support no longer exist for 2.2 kernels. Please use a 2.4 kernel.");
- log::l($msg);
- return $msg;
- }
-
- log::l("i try to configure pcmcia services");
-
- symlink "/tmp/stage2/$_", $_ foreach "/etc/pcmcia";
-
- eval {
- load("pcmcia_core");
- load($pcic);
- load("ds");
- };
-
- #- run cardmgr in foreground while it is configuring the card.
- run_program::run("cardmgr", "-f", "-m" ,"/modules");
- sleep(3);
-
- #- make sure to be aware of loaded module by cardmgr.
- read_already_loaded();
-}
-
-sub write_pcmcia {
- my ($prefix, $pcmcia) = @_;
-
- #- should be set after installing the package above otherwise the file will be renamed.
- setVarsInSh("$prefix/etc/sysconfig/pcmcia", {
- PCMCIA => bool2yesno($pcmcia),
- PCIC => $pcmcia,
- PCIC_OPTS => "",
- CORE_OPTS => "",
- });
-}
-
-
-#-###############################################################################
-#- internal functions
-#-###############################################################################
-sub loaded_modules {
- map { /(\S+)/ } cat_("/proc/modules");
-}
-sub read_already_loaded {
- when_load($_) foreach reverse loaded_modules();
-}
-
-sub when_load {
- my ($name, @options) = @_;
- my $category = module2category($name);
-
- if ($category =~ m,disk/(scsi|hardware_raid|usb),) {
- add_probeall('scsi_hostadapter', $name);
- eval { load('sd_mod') };
- }
- add_alias('sound-slot-0', $name) if $category =~ /sound/;
- load('snd-pcm-oss') if $name =~ /^snd-/;
- add_probeall('usb-interface', $name) if $name =~ /usb-[uo]hci/ || $name eq 'ehci-hcd';
- $conf{$name}{options} = join " ", @options if @options;
-}
-
-sub cz_file {
- "/lib/modules" . (arch() eq 'sparc64' && "64") . ".cz-" . c::kernel_version();
-}
-
-sub extract_modules {
- my ($dir, @modules) = @_;
- my $cz = cz_file();
- if (!-e $cz) {
- unlink $_ foreach glob_("/lib/modules*.cz*");
- require install_any;
- install_any::getAndSaveFile("Mandrake/mdkinst$cz", $cz) or die "failed to get modules $cz: $!";
- }
- eval {
- require packdrake;
- my $packer = new packdrake($cz, quiet => 1);
- $packer->extract_archive($dir, map { "$_.o" } @modules);
- };
-}
-
-sub load_raw {
- my @l = @_;
-
- extract_modules('/tmp', map { $_->[0] } @l);
- my @failed = grep {
- my $m = "/tmp/$_->[0].o";
- if (-e $m && run_program::run(["/usr/bin/insmod_", "insmod"], '2>', '/dev/tty5', $m, @{$_->[1]})) {
- unlink $m;
- '';
- } else {
- log::l("missing module $_->[0]") if !-e $m;
- -e $m;
- }
- } @l;
-
- die "insmod'ing module " . join(", ", map { $_->[0] } @failed) . " failed" if @failed;
-
- foreach (@l) {
- if ($_->[0] =~ /usb-[uo]hci/) {
- eval {
- require fs; fs::mount('/proc/bus/usb', '/proc/bus/usb', 'usbdevfs');
- #- ensure keyboard is working, the kernel must do the job the BIOS was doing
- sleep 2;
- load("usbkbd", "keybdev") if detect_devices::usbKeyboards();
- }
- }
- }
-}
-
-
-
-1;
diff --git a/perl-install/mouse.pm b/perl-install/mouse.pm
deleted file mode 100644
index 36ab50960..000000000
--- a/perl-install/mouse.pm
+++ /dev/null
@@ -1,565 +0,0 @@
-package mouse; # $Id$
-
-#use diagnostics;
-#use strict;
-
-#-######################################################################################
-#- misc imports
-#-######################################################################################
-use common;
-use modules;
-use detect_devices;
-use run_program;
-use devices;
-use modules;
-use any;
-use log;
-
-my @mouses_fields = qw(nbuttons MOUSETYPE XMOUSETYPE name);
-
-my %mice =
- arch() =~ /^sparc/ ?
-(
- 'sunmouse' =>
- [ [ 'sunmouse' ],
- [ [ 3, 'sun', 'sun', __("Sun - Mouse") ]
- ]]
-) :
-(
- 'PS/2' =>
- [ [ 'psaux' ],
- [ [ 2, 'ps/2', 'PS/2', __("Standard") ],
- [ 5, 'ps/2', 'MouseManPlusPS/2', __("Logitech MouseMan+") ],
- [ 5, 'imps2', 'IMPS/2', __("Generic PS2 Wheel Mouse") ],
- [ 5, 'ps/2', 'GlidePointPS/2', __("GlidePoint") ],
- '',
- [ 5, 'ps/2', 'ThinkingMousePS/2', __("Kensington Thinking Mouse") ],
- [ 5, 'netmouse', 'NetMousePS/2', __("Genius NetMouse") ],
- [ 5, 'netmouse', 'NetScrollPS/2', __("Genius NetScroll") ],
- ]],
-
- 'USB' =>
- [ [ 'usbmouse' ],
- [ if_(arch() eq 'ppc', [ 1, 'ps/2', 'PS/2', __("1 button") ]),
- [ 2, 'ps/2', 'PS/2', __("Generic 2 Button Mouse") ],
- [ 3, 'ps/2', 'PS/2', __("Generic") ],
- [ 5, 'ps/2', 'IMPS/2', __("Wheel") ],
- ]],
-
- __("serial") =>
- [ [ map { "ttyS$_" } 0..3 ],
- [ [ 2, 'Microsoft', 'Microsoft', __("Generic 2 Button Mouse") ],
- [ 3, 'Microsoft', 'Microsoft', __("Generic 3 Button Mouse") ],
- [ 5, 'ms3', 'IntelliMouse', __("Microsoft IntelliMouse") ],
- [ 3, 'MouseMan', 'MouseMan', __("Logitech MouseMan") ],
- [ 2, 'MouseSystems', 'MouseSystems', __("Mouse Systems") ],
- '',
- [ 3, 'logim', 'MouseMan', __("Logitech CC Series") ],
- [ 5, 'pnp', 'IntelliMouse', __("Logitech MouseMan+/FirstMouse+") ],
- [ 5, 'ms3', 'IntelliMouse', __("Genius NetMouse") ],
- [ 2, 'MMSeries', 'MMSeries', __("MM Series") ],
- [ 2, 'MMHitTab', 'MMHittab', __("MM HitTablet") ],
- [ 3, 'Logitech', 'Logitech', __("Logitech Mouse (serial, old C7 type)") ],
- [ 3, 'Microsoft', 'ThinkingMouse', __("Kensington Thinking Mouse") ],
- ]],
-
- __("busmouse") =>
- [ [ arch() eq 'ppc' ? 'adbmouse' : ('atibm', 'inportbm', 'logibm') ],
- [ if_(arch() eq 'ppc', [ 1, 'Busmouse', 'BusMouse', __("1 button") ]),
- [ 2, 'Busmouse', 'BusMouse', __("2 buttons") ],
- [ 3, 'Busmouse', 'BusMouse', __("3 buttons") ],
- ]],
-
- __("none") =>
- [ [ 'none' ],
- [ [ 0, 'none', 'Microsoft', __("No mouse") ],
- ]],
-);
-
-
-sub xmouse2xId {
- #- xmousetypes must be sorted as found in /usr/include/X11/extensions/xf86misc.h
- #- so that first mean "0", etc
- my @xmousetypes = (
- "Microsoft",
- "MouseSystems",
- "MMSeries",
- "Logitech",
- "BusMouse", #MouseMan,
- "Logitech",
- "PS/2",
- "MMHittab",
- "GlidePoint",
- "IntelliMouse",
- "ThinkingMouse",
- "IMPS/2",
- "ThinkingMousePS/2",
- "MouseManPlusPS/2",
- "GlidePointPS/2",
- "NetMousePS/2",
- "NetScrollPS/2",
- "SysMouse",
- "Auto",
- "AceCad",
- "WSMouse",
- "USB",
- );
- my ($id) = @_;
- $id = 'BusMouse' if $id eq 'MouseMan';
- my $i; map_index { $_ eq $id and $i = $::i } @xmousetypes; $i;
-}
-
-my %mouse_btn_keymap = (
- 0 => "NONE",
- 67 => "F9",
- 68 => "F10",
- 87 => "F11",
- 88 => "F12",
- 85 => "F13",
- 89 => "F14",
- 90 => "F15",
- 56 => "L-Option/Alt",
- 125 => "L-Command",
- 98 => "Num: /",
- 55 => "Num: *",
- 117 => "Num: =",
-);
-sub ppc_one_button_keys { keys %mouse_btn_keymap }
-sub ppc_one_button_key2text { $mouse_btn_keymap{$_[0]} }
-
-sub raw2mouse {
- my ($type, $raw) = @_;
- $raw or return;
-
- my %l; @l{@mouses_fields} = @$raw;
- +{ %l, type => $type };
-}
-
-sub update_type_name {
- my ($mouse) = @_;
- while (my ($k, $v) = each %mice) {
- $mouse->{device} =~ /usb/ && $k ne 'USB' and next; #- avoid mixing USB and PS/2 mice.
- foreach (@{$v->[1]}) {
- if ($_->[0] == $mouse->{nbuttons} && $_->[2] eq $mouse->{XMOUSETYPE}) {
- add2hash($mouse, { MOUSETYPE => $_->[1],
- type => $k,
- name => $_->[3],
- });
- return $mouse;
- }
- }
- }
-}
-
-sub fullnames {
- map_each {
- my $type = $::a;
- grep {$_} map {
- if ($_) {
- my $l = raw2mouse($type, $_);
- "$type|$l->{name}";
- } else {
- $type .= "|[" . _("Other") . "]";
- '';
- }
- } @{$::b->[1]}
- } %mice;
-}
-
-sub fullname2mouse {
- my ($fname, %opts) = @_;
- my ($type, @l) = split '\|', $fname;
- my ($name) = pop @l;
- search:
- $opts{device} ||= $mice{$type}[0][0];
- foreach (@{$mice{$type}[1]}) {
- my $l = raw2mouse($type, $_);
- $name eq $l->{name} and return { %$l, %opts };
- }
- if ($name eq '1 Button' || $name eq '1 button') {
- $name = "Generic 2 Button Mouse";
- goto search;
- }
- die "$fname not found ($type, $name)";
-}
-
-sub serial_ports() { map { "ttyS$_" } 0..7 }
-sub serial_port2text {
- $_[0] =~ /ttyS(\d+)/ ? "$_[0] / COM" . ($1 + 1) : $_[0];
-}
-
-sub read {
- my ($prefix) = @_;
- my %mouse = getVarsFromSh "$prefix/etc/sysconfig/mouse";
- eval { add2hash_(\%mouse, fullname2mouse($mouse{FULLNAME})) };
- $mouse{device} = readlink "$prefix/dev/mouse" or log::l("reading $prefix/dev/mouse symlink failed");
- $mouse{nbuttons} = $mouse{XEMU3} eq "yes" ? 2 : $mouse{WHEEL} eq "yes" ? 5 : 3;
- \%mouse;
-}
-
-sub write {
- my ($prefix, $mouse) = @_;
- local $mouse->{FULLNAME} = qq("$mouse->{type}|$mouse->{name}"); #-"
- local $mouse->{XEMU3} = bool2yesno($mouse->{nbuttons} < 3);
- local $mouse->{WHEEL} = bool2yesno($mouse->{nbuttons} > 3);
- setVarsInSh("$prefix/etc/sysconfig/mouse", $mouse, qw(MOUSETYPE XMOUSETYPE FULLNAME XEMU3 WHEEL device));
- any::devfssymlinkf($mouse, 'mouse', $prefix);
- any::devfssymlinkf($mouse->{auxmouse}, 'mouse1', $prefix) if $mouse->{auxmouse};
-
- if (arch() =~ /ppc/) {
- my $s = join('',
- "dev.mac_hid.mouse_button_emulation = " . to_bool($mouse->{button2_key} || $mouse->{button3_key}) . "\n",
- if_($mouse->{button2_key}, "dev.mac_hid.mouse_button2_keycode = $mouse->{button2_key}\n"),
- if_($mouse->{button3_key}, "dev.mac_hid.mouse_button3_keycode = $mouse->{button3_key}\n"),
- );
- substInFile {
- $_ = '' if /^\Qdev.mac_hid.mouse_button/;
- $_ .= $s if eof;
- } "$prefix/etc/sysctl.conf";
- #- hack - dev RPM symlinks to mouse0 - lands on mouse1 with new input layer on PPC input/mice will get both ADB and USB
- symlinkf "/dev/input/mice", "$prefix/dev/usbmouse" if ($mouse->{device} eq "usbmouse");
- }
-}
-
-sub mouseconfig {
- my ($t, $mouse, @wacom);
-
- #- Whouah! probing all devices from ttyS0 to ttyS3 once a time!
- detect_devices::probeSerialDevices();
-
- #- check new probing methods keep everything used here intact!
- foreach (0..3) {
- $t = detect_devices::probeSerial("/dev/ttyS$_");
- if ($t->{CLASS} eq 'MOUSE') {
- $t->{MFG} ||= $t->{MANUFACTURER};
-
- $mouse = fullname2mouse("serial|Microsoft IntelliMouse") if $t->{MFG} eq 'MSH' && $t->{MODEL} eq '0001';
- $mouse = fullname2mouse("serial|Logitech MouseMan") if $t->{MFG} eq 'LGI' && $t->{MODEL} =~ /^80/;
- $mouse = fullname2mouse("serial|Genius NetMouse") if $t->{MFG} eq 'KYE' && $t->{MODEL} eq '0003';
-
- $mouse ||= fullname2mouse("serial|Generic 2 Button Mouse"); #- generic by default.
- $mouse->{device} = "ttyS$_";
- last;
- } elsif ($t->{CLASS} eq "PEN" || $t->{MANUFACTURER} eq "WAC") {
- push @wacom, "ttyS$_";
- }
- }
- $mouse, @wacom;
-}
-
-sub detect() {
- if (arch() =~ /^sparc/) {
- return fullname2mouse("sunmouse|Sun - Mouse");
- }
- if (arch() eq "ppc") {
- return fullname2mouse(detect_devices::hasMousePS2("usbmouse") ?
- "USB|1 button" :
- # No need to search for an ADB mouse. If I did, the PPC kernel would
- # find one whether or not I had one installed! So.. default to it.
- "busmouse|1 button");
- }
-
- my @wacom;
- my $fast_mouse_probe = sub {
- my $auxmouse = detect_devices::hasMousePS2("psaux") && fullname2mouse("PS/2|Standard", unsafe => 1);
-
- if (modules::get_probeall("usb-interface")) {
- if (my (@l) = detect_devices::usbMice()) {
- log::l("found usb mouse $_->{driver} $_->{description} ($_->{type})") foreach @l;
- eval { modules::load(qw(hid mousedev usbmouse)) };
- if (!$@ && detect_devices::tryOpen("usbmouse")) {
- my $mouse = fullname2mouse($l[0]{driver} =~ /Mouse:(.*)/ ? $1 : "USB|Generic");
- $auxmouse and $mouse->{auxmouse} = $auxmouse; #- for laptop, we kept the PS/2 as secondary (symbolic).
- return $mouse;
- }
- eval { modules::unload(qw(usbmouse mousedev hid)) };
- }
- }
- $auxmouse;
- };
-
- if (modules::get_probeall("usb-interface")) {
- my $keep_mouse;
- if (my (@l) = detect_devices::usbWacom()) {
- log::l("found usb wacom $_->{driver} $_->{description} ($_->{type})") foreach @l;
- eval { modules::load("wacom", "evdev"); };
- unless ($@) {
- foreach (0..$#l) {
- detect_devices::tryOpen("input/event$_") and $keep_mouse = 1, push @wacom, "input/event$_";
- }
- }
- $keep_mouse or eval { modules::unload("evdev", "wacom"); };
- }
- }
-
- #- at this level, not all possible mice are detected so avoid invoking serial_probe
- #- which takes a while for its probe.
- if ($::isStandalone) {
- my $mouse = $fast_mouse_probe->();
- $mouse and return ($mouse, @wacom);
- }
-
- #- probe serial device to make sure a wacom has been detected.
- eval { modules::load("serial") };
- my ($r, @serial_wacom) = mouseconfig(); push @wacom, @serial_wacom;
-
- if (!$::isStandalone) {
- my $mouse = $fast_mouse_probe->();
- $r && $mouse and $r->{auxmouse} = $mouse; #- we kept the auxilliary mouse as PS/2.
- $r and return ($r, @wacom);
- $mouse and return ($mouse, @wacom);
- } else {
- $r and return ($r, @wacom);
- }
-
- #- in case only a wacom has been found, assume an inexistant mouse (necessary).
- @wacom and return { CLASS => 'MOUSE',
- nbuttons => 2,
- device => "nothing",
- MOUSETYPE => "Microsoft",
- XMOUSETYPE => "Microsoft"}, @wacom;
-
- if (!modules::get_probeall("usb-interface") && detect_devices::is_a_recent_computer() && $::isInstall) {
- #- special case for non detected usb interface on a box with no mouse.
- #- we *must* find out if there really is no usb, otherwise the box may
- #- not be accessible via the keyboard (if the keyboard is USB)
- #- the only way to know this is to make a full pci probe
- modules::load_category('bus/usb', '', 'unsafe');
- if (my $mouse = $fast_mouse_probe->()) {
- return $mouse;
- }
- }
-
- #- defaults to generic serial mouse on ttyS0.
- #- Oops? using return let return a hash ref, if not using it, it return a list directly :-)
- return fullname2mouse("serial|Generic 2 Button Mouse", unsafe => 1);
-}
-
-#- write_conf : write the mouse infos into the Xconfig files.
-#- input :
-#- $mouse : the hashtable containing the informations
-#- $mouse input
-#- $mouse->{nbuttons} : number of buttons : integer
-#- $mouse->{device} : device of the mouse : string : ex 'psaux'
-#- $mouse->{XMOUSETYPE} : type of the mouse for gpm : string : ex 'PS/2'
-#- $mouse->{type} : type (generic ?) of the mouse : string : ex 'PS/2'
-#- $mouse->{name} : name of the mouse : string : ex 'Standard'
-#- $mouse->{MOUSETYPE} : type of the mouse : string : ex "ps/2"
-#- $mouse->{XEMU3} : emulate 3rd button : string : 'yes' or 'no'
-sub write_conf {
- my ($mouse) = @_;
-
- &write('', $mouse);
- modules::write_conf('') if $mouse->{device} eq "usbmouse" && !$::testing;
-
- my $f = "/etc/X11/XF86Config";
- my $g = "/etc/X11/XF86Config-4";
-
- my $update_mouse = sub {
- my ($mouse) = @_;
-
- my ($zaxis, $zaxis_aux) = map { [
- $_->{nbuttons} > 3 ? [ "ZAxisMapping", "4 5" ] : (),
- $_->{nbuttons} > 5 ? [ "ZAxisMapping", "6 7" ] : (),
- $_->{nbuttons} < 3 ? ([ "Emulate3Buttons" ], [ "Emulate3Timeout", "50" ]) : ()
- ] } grep { $_ } ($mouse, $mouse->{auxmouse});
-
- my ($str_zaxis, $str_zaxis_aux) = map { join('', map { qq(\n $_->[0]) . ($_->[1] && qq( $_->[1])) } @$_)
- } grep { $_ } ($zaxis, $zaxis_aux);
- my $found_auxmouse = 0;
- substInFile {
- if (/^Section\s+"Pointer"/ .. /^EndSection/) {
- $_ = '' if /(ZAxisMapping|Emulate3)/; #- remove existing line
- s|^(\s*Protocol\s+).*|$1"$mouse->{XMOUSETYPE}"|;
- s|^(\s*Device\s+).*|$1"/dev/$mouse->{device}"$str_zaxis|;
- }
- if ($mouse->{auxmouse}) {
- if (/DeviceName\s+"Mouse2"/ .. /^EndSection/) {
- $found_auxmouse = 1;
- $_ = '' if /(ZAxisMapping|Emulate3|AlwaysCore)/; #- remove existing line
- s|^(\s*Protocol\s+).*|$1"$mouse->{auxmouse}{XMOUSETYPE}"|;
- s|^(\s*Device\s+).*|$1"/dev/$mouse->{auxmouse}{device}"\n AlwaysCore$str_zaxis_aux|;
- }
- }
- } $f if -e $f && !$::testing;
- substInFile {
- if (my $l = /^Section\s+"Pointer"/ .. /^EndSection/) {
- $l =~ /E/ and $_ .= qq(
-
-Section "XInput"
- SubSection "Mouse"
- DeviceName "Mouse2"
- Protocol "$mouse->{auxmouse}{XMOUSETYPE}"
- Device "/dev/$mouse->{auxmouse}{device}"
- AlwaysCore$str_zaxis_aux
- EndSubSection
-EndSection
-);
- }
- } $f if !$found_auxmouse && $mouse->{auxmouse} && -e $f && !$::testing;
-
- ($str_zaxis, $str_zaxis_aux) = map { join('', map { qq(\n Option "$_->[0]") . ($_->[1] && qq( "$_->[1]")) } @$_)
- } grep { $_ } ($zaxis, $zaxis_aux);
- $found_auxmouse = 0;
- substInFile {
- if (/Identifier\s+"Mouse1"/ .. /^EndSection/) {
- $_ = '' if /(ZAxisMapping|Emulate3)/; #- remove existing line
- s|^(\s*Option\s+"Protocol"\s+).*|$1"$mouse->{XMOUSETYPE}"|; #"
- s|^(\s*Option\s+"Device"\s+).*|$1"/dev/mouse"$str_zaxis|;
- }
- if ($mouse->{auxmouse}) {
- if (/Identifier\s+"Mouse2"/ .. /^EndSection/) {
- $found_auxmouse = 1;
- $_ = '' if /(ZAxisMapping|Emulate3)/; #- remove existing line
- s|^(\s*Option\s+"Protocol"\s+).*|$1"$mouse->{auxmouse}{XMOUSETYPE}"|; #"
- s|^(\s*Option\s+"Device"\s+).*|$1"/dev/$mouse->{auxmouse}{device}"$str_zaxis_aux|; #"
- }
- }
- } $g if -e $g && !$::testing;
- substInFile {
- if (my $l = /Identifier\s+"Mouse1"/ .. /^EndSection/) {
- $l =~ /E/ and $_ .= qq(
-
-Section "InputDevice"
- Identifier "Mouse2"
- Option "Protocol" "$mouse->{auxmouse}{XMOUSETYPE}"
- Option "Device" "/dev/$mouse->{auxmouse}{XMOUSETYPE}"$str_zaxis_aux
-EndSection
-);
- }
- } $g if !$found_auxmouse && $mouse->{auxmouse} && -e $g && !$::testing;
- };
- $update_mouse->($mouse);
-}
-
-sub test_mouse_install {
- my ($mouse) = @_;
- require my_gtk;
- my_gtk->import(qw(:wrappers :helpers));
- my $w = my_gtk->new;
- my ($width, $height, $offset) = (210, round_up(min(350, $::windowheight - 150), 6), 25);
- my $darea = new Gtk::DrawingArea;
- $darea->set_events([ 'button_press_mask', 'button_release_mask' ]); #$darea must be unrealized.
- gtkadd($w->{window},
- gtkpack(my $vbox_grab = new Gtk::VBox(0,0),
- gtksize(gtkset_usize($darea, $width+1, $height+1), $width+1, $height+1),
- my $okcancel = gtkset_sensitive(create_okcancel($w, '', '', "edge"), 1)
- ),
- );
- $okcancel->set_uposition(7, $height-43);
- Gtk->timeout_add(2000, sub { gtkset_sensitive($okcancel, 1); $okcancel->draw(undef); });
- test_mouse($mouse, $w, $darea, $width, $height);
- $w->{window}->set_usize(undef, $height+10);
- $w->sync; # HACK
- Gtk::Gdk->pointer_grab($darea->window, 1,
- [ 'pointer_motion_mask'],
- $darea->window, undef ,0);
- $w->main;
-}
-
-sub test_mouse_standalone {
- my ($mouse, $hbox) = @_;
- require my_gtk;
- my_gtk->import(qw(:wrappers));
- my ($width, $height, $offset) = (210, round_up(min(350, $::windowheight - 150), 6), 25);
- my $darea = new Gtk::DrawingArea;
- $darea->set_events([ 'button_press_mask', 'button_release_mask' ]); #$darea must be unrealized.
- gtkpack($hbox,
- gtkpack(gtkset_border_width(new Gtk::VBox(0,10), 10),
- gtksize(gtkset_usize($darea, $width+1, $height+1), $width, $height)
- )
- );
- test_mouse($mouse, $hbox, $darea, $width, $height);
-}
-
-sub test_mouse {
- my ($mouse, $w, $darea, $width, $height) = @_;
-
- $darea->realize();
- my $wait = 0;
- my ($m3_image, $m3_mask) = gtkcreate_xpm('mouse_3b.xpm');
- my ($m3_imagep, $m3_maskp) = gtkcreate_xpm('mouse_3b+.xpm');
- my ($m3_left, $m3_left_mask) = gtkcreate_xpm('mouse_left.xpm');
- my ($m3_right, $m3_right_mask) = gtkcreate_xpm('mouse_right.xpm');
- my ($m3_middle, $m3_middle_mask) = gtkcreate_xpm('mouse_middle.xpm');
- my ($aru, $aru_mask) = gtkcreate_xpm('arrow_up.xpm');
- my ($ard, $ard_mask) = gtkcreate_xpm('arrow_down.xpm');
- my $image = $m3_image;
- $mouse->{nbuttons} > 3 and $image = $m3_imagep;
- my $draw_text = sub {
- my ($t, $y) = @_;
- my $font = $darea->style->font;
- my $w = $font->string_width($t);
- $darea->window->draw_string($font, $darea->style->black_gc, ($darea->allocation->[2]-$width)/2 + ($width - $w) / 2, ($darea->allocation->[3]-$height)/2 + $y, $t);
- };
- my $drawarea; $drawarea = sub { $darea->window->draw_pixmap ($darea->style->bg_gc('normal'),
- $image, 0, 0,
- ($darea->allocation->[2]-$width)/2, ($darea->allocation->[3]-$height)/2,
- 210, 350);
- $draw_text->(_("Please test the mouse"), $height - 120);
- $draw_text->(_("To activate the mouse,"), $height - 105) if $mouse->{XMOUSETYPE} eq 'IMPS/2';
- $draw_text->(_("MOVE YOUR WHEEL!"), $height - 90) if $mouse->{XMOUSETYPE} eq 'IMPS/2';
- return if $::isStandalone;
- $darea->window->draw_rectangle($darea->style->bg_gc('normal'), 1, 0, $height-65, $width, $height);
- };
-
- my $paintButton = sub {
- my ($nb, $pressed) = @_;
- my $x = 60 + $nb*33;
- $drawarea->();
- if ($nb == 0) {
- $darea->window->draw_pixmap ($darea->style->bg_gc('normal'),
- $m3_left, 0, 0,
- ($darea->allocation->[2]-$width)/2+31, ($darea->allocation->[3]-$height)/2 + 52,
- 59, 91);
- } elsif ($nb == 2) {
- $darea->window->draw_pixmap ($darea->style->bg_gc('normal'),
- $m3_right, 0, 0,
- ($darea->allocation->[2]-$width)/2+117, ($darea->allocation->[3]-$height)/2 + 52,
- 61, 91);
- } elsif ($nb == 1) {
- if ($mouse->{nbuttons} > 3) {
- $darea->window->draw_pixmap ($darea->style->bg_gc('normal'),
- $m3_middle, 0, 0,
- ($darea->allocation->[2]-$width)/2+98, ($darea->allocation->[3]-$height)/2 + 67,
- 13, 62);
- } else {
- $darea->window->draw_arc ( $darea->style->black_gc,
- 1, ($darea->allocation->[2]-$width)/2 + $x, ($darea->allocation->[3]-$height)/2 + 90, 20, 25,
- 0, 360*64);
- }
- } elsif ($nb == 3) {
- $wait=1;
- $darea->window->draw_pixmap ($darea->style->bg_gc('normal'),
- $aru, 0, 0,
- ($darea->allocation->[2]-$width)/2+102, ($darea->allocation->[3]-$height)/2 + 57,
- 6, 8);
- $darea->window->draw_pixmap ($darea->style->bg_gc('normal'),
- $m3_middle, 0, 0,
- ($darea->allocation->[2]-$width)/2+98, ($darea->allocation->[3]-$height)/2 + 67,
- 13, 62);
- Gtk->timeout_add(200, sub { $wait = 0 });
- } elsif ($nb == 4) {
- $wait=1;
- $darea->window->draw_pixmap ($darea->style->bg_gc('normal'),
- $ard, 0, 0,
- ($darea->allocation->[2]-$width)/2+102, ($darea->allocation->[3]-$height)/2 + 131,
- 6, 8);
- $darea->window->draw_pixmap ($darea->style->bg_gc('normal'),
- $m3_middle, 0, 0,
- ($darea->allocation->[2]-$width)/2+98, ($darea->allocation->[3]-$height)/2 + 67,
- 13, 62);
- Gtk->timeout_add(200, sub { $wait = 0 });
- }
- };
- $darea->signal_connect(button_press_event => sub {
- my $b = $_[1]{button};
- $paintButton->($b - 1);
- });
- $darea->signal_connect(button_release_event => sub {
- while ($wait) { my_gtk::flush() }
- $drawarea->()
- });
- $darea->signal_connect(expose_event => sub { $drawarea->() });
- $darea->size($width, $height);
-}
diff --git a/perl-install/my_gtk.pm b/perl-install/my_gtk.pm
deleted file mode 100644
index 21f43f05a..000000000
--- a/perl-install/my_gtk.pm
+++ /dev/null
@@ -1,1323 +0,0 @@
-package my_gtk; # $Id$
-
-use diagnostics;
-use strict;
-use vars qw(@ISA %EXPORT_TAGS @EXPORT_OK $border);
-
-@ISA = qw(Exporter);
-%EXPORT_TAGS = (
- helpers => [ qw(create_okcancel createScrolledWindow create_menu create_notebook create_packtable create_hbox create_vbox create_adjustment create_box_with_title create_treeitem) ],
- wrappers => [ qw(gtksignal_connect gtkradio gtkpack gtkpack_ gtkpack__ gtkpack2 gtkpack3 gtkpack2_ gtkpack2__ gtkpowerpack gtkset_editable gtksetstyle gtkset_text gtkcombo_setpopdown_strings gtkset_tip gtkappenditems gtkappend gtkset_shadow_type gtkset_layout gtkset_relief gtkadd gtkput gtktext_insert gtkset_usize gtksize gtkset_justify gtkset_active gtkset_sensitive gtkset_modal gtkset_border_width gtkmove gtkresize gtkshow gtkhide gtkdestroy gtkcolor gtkset_mousecursor gtkset_mousecursor_normal gtkset_mousecursor_wait gtkset_background gtkset_default_fontset gtkctree_children gtkxpm gtkpng create_pix_text get_text_coord fill_tiled gtkicons_labels_widget write_on_pixmap gtkcreate_xpm gtkcreate_png gtkbuttonset) ],
- ask => [ qw(ask_warn ask_okcancel ask_yesorno ask_from_entry) ],
-);
-$EXPORT_TAGS{all} = [ map { @$_ } values %EXPORT_TAGS ];
-@EXPORT_OK = map { @$_ } values %EXPORT_TAGS;
-
-use Gtk;
-use Gtk::Gdk::ImlibImage;
-use c;
-use log;
-use common;
-
-my $forgetTime = 1000; #- in milli-seconds
-$border = 5;
-
-#-###############################################################################
-#- OO stuff
-#-###############################################################################
-sub new {
- my ($type, $title, %opts) = @_;
-
- Gtk->init;
- Gtk::Gdk::ImlibImage->init;
- Gtk->set_locale;
- my $o = bless { %opts }, $type;
- $o->_create_window($title);
- while (my $e = shift @tempory::objects) { $e->destroy }
- foreach (@interactive::objects) {
- $_->{rwindow}->set_modal(0) if $_->{rwindow}->can('set_modal');
- }
- push @interactive::objects, $o if !$opts{no_interactive_objects};
- $o->{rwindow}->set_position('center_always') if $::isStandalone;
- $o->{rwindow}->set_modal(1) if $my_gtk::grab || $o->{grab};
-
- if ($::isWizard && !$my_gtk::pop_it) {
- $o->{window} = new Gtk::VBox(0,0);
- $o->{window}->set_border_width($::Wizard_splash ? 0 : 10);
- $o->{rwindow} = $o->{window};
- if (!defined($::WizardWindow)) {
- $::WizardWindow = new Gtk::Window;
- $::WizardWindow->set_position('center_always');
- $::WizardWindow->signal_connect(delete_event => sub { die 'wizcancel'});
- $::WizardTable = new Gtk::Table(2, 2, 0);
- $::WizardWindow->add($::WizardTable);
- my $draw1 = new Gtk::DrawingArea;
- $draw1->set_usize(540,100);
- my $draw2 = new Gtk::DrawingArea;
- $draw2->set_usize(100,300);
- my ($im_up, $mask_up) = gtkcreate_png($::Wizard_pix_up || "wiz_default_up.png");
- my ($y1, $x1) = $im_up->get_size;
- my ($im_left, $mask_left) = gtkcreate_png($::Wizard_pix_left || "wiz_default_left.png");
- my ($y2, $x2) = $im_left->get_size;
- my $style = $draw1->style->copy();
- $style->font(Gtk::Gdk::Font->fontset_load("-adobe-utopia-regular-r-*-*-25-*-*-*-p-*-iso8859-*"));
- my $w = $style->font->string_width($::Wizard_title);
- $draw1->signal_connect(expose_event => sub {
- my $i;
- for ($i=0;$i<(540/$y1);$i++) {
- $draw1->window->draw_pixmap ($draw1->style->bg_gc('normal'),
- $im_up, 0, 0, 0, $y1*$i,
- $x1 , $y1 );
- $draw1->window->draw_string(
- $style->font,
- $draw1->style->white_gc,
- 140+(380-$w)/2, 62,
- ($::Wizard_title) );
- }
- });
- $draw2->signal_connect(expose_event => sub {
- my $i;
- for ($i=0;$i<(300/$y2);$i++) {
- $draw2->window->draw_pixmap ($draw2->style->bg_gc('normal'),
- $im_left, 0, 0, 0, $y2*$i,
- $x2 , $y2 );
- }
- });
- $::WizardTable->attach($draw1, 0, 2, 0, 1, 'fill', 'fill', 0, 0);
- #- $::WizardTable->attach($draw2, 0, 1, 1, 2, 'fill', 'fill', 0, 0);
- $::WizardTable->set_usize(540,400);
- $::WizardWindow->show_all;
- flush();
- }
- $::WizardTable->attach($o->{window}, 0, 2, 1, 2, [-fill, -expand], [-fill, -expand], 0, 0);
- }
-
- if ($::isEmbedded && !$my_gtk::pop_it && !eval { $::Plug->child }) {
- $o->{window} = new Gtk::HBox(0,0);
- $o->{rwindow} = $o->{window};
- $::Plug ||= new Gtk::Plug ($::XID);
- $::Plug->show;
- flush();
- $::Plug->add($o->{window});
- }
- $::CCPID and kill "USR2", $::CCPID;
- $o;
-}
-sub main {
- my ($o, $completed, $canceled) = @_;
- gtkset_mousecursor_normal();
- my $timeout = Gtk->timeout_add(1000, sub { gtkset_mousecursor_normal(); 1 });
- my $b = before_leaving { Gtk->timeout_remove($timeout) };
- $o->{rwindow}->window->set_events(['key_press_mask', 'key_release_mask', 'exposure_mask']) if $o->{rwindow}->window;
- $o->show;
-
- do {
- local $::setstep = 1;
- Gtk->main;
- } while ($o->{retval} ? $completed && !$completed->() : $canceled && !$canceled->());
- $o->destroy;
- $o->{retval}
-}
-sub show($) {
- my ($o) = @_;
- $o->{window}->show;
- $o->{rwindow}->show;
-}
-sub destroy($) {
- my ($o) = @_;
- $o->{rwindow}->destroy;
- gtkset_mousecursor_wait();
- flush();
-}
-sub DESTROY { goto &destroy }
-sub sync {
- my ($o) = @_;
- show($o);
- flush();
-}
-sub flush {
- Gtk->main_iteration while Gtk->events_pending;
-}
-
-sub gtkshow($) { $_[0]->show; $_[0] }
-sub gtkhide($) { $_[0]->hide; $_[0] }
-sub gtkdestroy($) { $_[0] and $_[0]->destroy }
-sub gtkset_usize($$$) { $_[0]->set_usize($_[1],$_[2]); $_[0] }
-sub gtksize($$$) { $_[0]->size($_[1],$_[2]); $_[0] }
-sub gtkset_justify($$) { $_[0]->set_justify($_[1]); $_[0] }
-sub gtkset_active($$) { $_[0]->set_active($_[1]); $_[0] }
-sub gtkset_modal { $_[0]->set_modal($_[1]); $_[0] }
-sub gtkset_sensitive { $_[0]->set_sensitive($_[1]); $_[0] }
-sub gtkset_border_width{ $_[0]->set_border_width($_[1]); $_[0] }
-sub gtkmove { $_[0]->window->move($_[1], $_[2]); $_[0] }
-sub gtkresize { $_[0]->window->resize($_[1], $_[2]); $_[0] }
-
-sub gtksignal_connect($@) {
- my $w = shift;
- $w->signal_connect(@_);
- $w
-}
-
-sub gtkradio {
- my $def = shift;
- my $radio;
- map { $radio = new Gtk::RadioButton($_, $radio ? $radio : ());
- $radio->set_active($_ eq $def); $radio } @_;
-}
-
-sub gtkpack_($@) { gtkpowerpack('arg', 1, @_) }
-sub gtkpack($@) { gtkpowerpack(1, 1, @_) }
-sub gtkpack__($@) { gtkpowerpack(0, 1, @_) }
-sub gtkpack2_($@) { gtkpowerpack('arg', 0, @_) }
-sub gtkpack2($@) { gtkpowerpack(1, 0, @_) }
-sub gtkpack2__($@) { gtkpowerpack(0, 0, @_) }
-sub gtkpack3 { gtkpowerpack($a?1:0, 0, @_) }
-
-sub gtkpowerpack {
- #- Get Default Attributes (if any). 2 syntaxes allowed :
- #- gtkpowerpack( {expand => 1, fill => 0}, $box...) : the attributes are picked from a specified hash ref
- #- gtkpowerpack(1,0,1, $box, ...) : the attributes are picked from the non-ref list, in the order (expand, fill, padding, pack_end).
- my $RefDefaultAttrs;
- if (ref($_[0]) eq 'HASH') { $RefDefaultAttrs = shift }
- elsif (!ref($_[0])) {
- $RefDefaultAttrs = {};
- foreach ("expand", "fill", "padding", "pack_end") {
- !ref($_[0]) ? $RefDefaultAttrs->{$_} = shift : last
- }
- }
- my $box = shift;
-
- while (@_) {
- #- Get attributes (if specified). 4 syntaxes allowed (default values are undef ie. false...) :
- #- gtkpowerpack({defaultattrs}, $box, $widget1, $widget2, ...) : the attrs are picked from the default ones (if they exist)
- #- gtkpowerpack($box, {fill=>1, expand=>0, ...}, $widget1, ...) : the attributes are picked from a specified hash ref
- #- gtkpowerpack($box, [1,0,1], $widget1, ...) : the attributes are picked from the array ref : (expand, fill, padding, pack_end).
- #- gtkpowerpack({attr=>'arg'}, $box, 1, $widget1, 0, $widget2, etc...) : the 'arg' value will tell gtkpowerpack to always read the
- #- attr value directly in the arg list (avoiding confusion between value 0 and Gtk::Label("0"). That can simplify some writings but
- #- this arg(s) MUST then be present...
- my %attr;
- my $RefAttrs;
- ref($_[0]) eq 'HASH' || ref($_[0]) eq 'ARRAY' and $RefAttrs = shift;
- foreach ("expand", "fill", "padding", "pack_end") {
- if ($RefDefaultAttrs->{$_} eq 'arg') {
- ref ($_[0]) and die "error in packing definition\n";
- $attr{$_} = shift;
- ref($RefAttrs) eq 'ARRAY' and shift @$RefAttrs;
- } elsif (ref($RefAttrs) eq 'HASH' && defined($RefAttrs->{$_})) {
- $attr{$_} = $RefAttrs->{$_};
- } elsif (ref($RefAttrs) eq 'ARRAY') {
- $attr{$_} = shift @$RefAttrs;
- } elsif (defined($RefDefaultAttrs->{$_})) {
- $attr{$_} = int $RefDefaultAttrs->{$_};
- } else {
- $attr{$_} = 0;
- }
- }
- #- Get and pack the widget (create it if necessary when it is a label...)
- my $widget = ref($_[0]) ? shift : new Gtk::Label(shift);
- if ($attr{pack_end}) { $box->pack_end($widget, $attr{expand}, $attr{fill}, $attr{padding})}
- else { $box->pack_start($widget, $attr{expand}, $attr{fill}, $attr{padding}) }
- $widget->show;
- }
- $box
-}
-
-sub gtkset_editable {
- my ($w, $e) = @_;
- $w->set_editable($e);
- $w;
-}
-
-sub gtksetstyle {
- my ($w, $s) = @_;
- $w->set_style($s);
- $w;
-}
-
-sub gtkset_text {
- my ($w, $s) = @_;
- $w->set_text($s);
- $w;
-}
-
-sub gtkcombo_setpopdown_strings ($@) {
- my $w = shift;
- $w->set_popdown_strings(@_);
- $w;
-}
-
-sub gtkappend_text {
- my ($w, $s) = @_;
- $w->append_text($s);
- $w;
-}
-
-sub gtkprepend_text {
- my ($w, $s) = @_;
- $w->prepend_text($s);
- $w;
-}
-
-sub gtkset_tip {
- my ($tips, $w, $tip) = @_;
- $tips->set_tip($w, $tip) if $tip;
- $w;
-}
-
-sub gtkappenditems {
- my $w = shift;
- map {gtkshow($_) } @_;
- $w->append_items(@_);
- $w
-}
-
-sub gtkappend($@) {
- my $w = shift;
- foreach (@_) {
- my $l = $_;
- ref $l or $l = new Gtk::Label($l);
- $w->append($l);
- $l->show;
- }
- $w
-}
-
-sub gtkset_shadow_type {
- $_[0]->set_shadow_type($_[1]);
- $_[0];
-}
-
-sub gtkset_layout {
- $_[0]->set_layout($_[1]);
- $_[0];
-}
-
-sub gtkset_relief {
- $_[0]->set_relief($_[1]);
- $_[0];
-}
-
-sub gtkadd($@) {
- my $w = shift;
- foreach (@_) {
- my $l = $_;
- ref $l or $l = new Gtk::Label($l);
- $w->add($l);
- $l->show;
- }
- $w
-}
-sub gtkput {
- my ($w, $w2, $x, $y) = @_;
- $w->put($w2, $x, $y);
- $w2->show;
- $w
-}
-
-sub gtktext_insert {
- my ($w, $t) = @_;
- $w->freeze;
- $w->backward_delete($w->get_length);
- $w->insert(undef, undef, undef, $t);
- #- DEPRECATED? needs \n otherwise in case of one line text the beginning is not shown (even with the vadj->set_value)
- $w->set_word_wrap(1);
-#- $w->vadj->set_value(0);
- $w->thaw;
- $w;
-}
-
-sub gtkroot {
- Gtk->init;
- Gtk->set_locale;
- Gtk::Gdk::Window->new_foreign(Gtk::Gdk->ROOT_WINDOW);
-}
-
-sub gtkcolor {
- my ($r, $g, $b) = @_;
-
- my $color = bless { red => $r, green => $g, blue => $b }, 'Gtk::Gdk::Color';
- gtkroot()->get_colormap->color_alloc($color);
-}
-
-sub gtkset_mousecursor {
- my ($type, $w) = @_;
- ($w || gtkroot())->set_cursor(Gtk::Gdk::Cursor->new($type));
-}
-sub gtkset_mousecursor_normal { gtkset_mousecursor(68, @_) }
-sub gtkset_mousecursor_wait { gtkset_mousecursor(150, @_) }
-
-sub gtkset_background {
- my ($r, $g, $b) = @_;
-
- my $root = gtkroot();
- my $gc = Gtk::Gdk::GC->new($root);
-
- my $color = gtkcolor($r, $g, $b);
- $gc->set_foreground($color);
- $root->set_background($color);
-
- my ($h, $w) = $root->get_size;
- $root->draw_rectangle($gc, 1, 0, 0, $w, $h);
-}
-
-sub gtkset_default_fontset {
- my ($fontset) = @_;
-
- my $style = Gtk::Widget->get_default_style;
- my $f = Gtk::Gdk::Font->fontset_load($fontset) or die '';
- $style->font($f);
- Gtk::Widget->set_default_style($style);
-}
-
-sub gtkctree_children {
- my ($node) = @_;
- my @l;
- $node or return;
- for (my $p = $node->row->children; $p; $p = $p->row->sibling) {
- push @l, $p;
- }
- @l;
-}
-
-my @icon_paths = ($ENV{SHARE_PATH}, "$ENV{SHARE_PATH}/icons", "$ENV{SHARE_PATH}/libDrakX/pixmaps", "/usr/lib/libDrakX/icons", "pixmaps", 'standalone/icons');
-
-sub add_icon_path { @icon_paths = uniq(@icon_paths, @_) }
-
-sub gtkcreate_xpm {
- my ($f) = @_;
- my $rw = gtkroot();
- $f =~ m|.xpm$| or $f="$f.xpm";
- if ( $f !~ /\//) { -e "$_/$f" and $f="$_/$f", last foreach @icon_paths }
- my @l = Gtk::Gdk::Pixmap->create_from_xpm($rw, new Gtk::Style->bg('normal'), $f) or die "gtkcreate_xpm: missing pixmap file $f";
- @l;
-}
-
-sub gtkcreate_png {
- my ($f) = shift;
- $f =~ m|.png$| or $f="$f.png";
- if ( $f !~ /\//) { -e "$_/$f" and $f="$_/$f", last foreach @icon_paths }
- my $im = Gtk::Gdk::ImlibImage->load_image($f) or die "gtkcreate_png: missing png file $f";
- $im->render($im->rgb_width, $im->rgb_height);
- ($im->move_image(), $im->move_mask);
-}
-
-sub gtkbuttonset {
- my ($button, $str) = @_;
- $button->child->destroy;
- $button->add(gtkshow(new Gtk::Label $str));
- $button;
-}
-
-sub xpm_d { my $w = shift; Gtk::Gdk::Pixmap->create_from_xpm_d($w->window, undef, @_) }
-sub gtkxpm { new Gtk::Pixmap(gtkcreate_xpm(@_)) }
-sub gtkpng { new Gtk::Pixmap(gtkcreate_png(@_)) }
-
-sub create_pix_text {
- #ref widget, txt, color_txt, [font], [width], [height], flag1, flag2, [background, backsize x y], centeredx, centeredy, bold
- my ($w, $text, $color_text, $font, $max_width, $max_height, $can_be_greater, $can_be_smaller, $background, $x_back, $y_back, $centeredx, $centeredy, $bold) = @_;
- my $color_background;
- my $backpix;
- if ($color_text =~ /#(\d+)#(\d+)#(\d+)/) { $color_text = gtkcolor(map{$_*65535/255}($1, $2, $3)) }
- if (ref($background) eq 'Gtk::Gdk::Color') { $color_background = $background }
- elsif ($background =~ /#(\d+)#(\d+)#(\d+)/) { $color_background = gtkcolor(map{$_*65535/255}($1, $2, $3)) }
- elsif (ref($background) eq 'Gtk::Gdk::Pixmap' && $x_back && $y_back) { $backpix = 1 }
- my $fake_darea = new Gtk::DrawingArea;
- my $style= $fake_darea->style->copy();
- if (ref($font) eq 'Gtk::Gdk::Font') {
- $style->font($font);
- } else {
- $font and $style->font(Gtk::Gdk::Font->fontset_load($font));
- }
- $fake_darea->set_style($style);
- my ($width, $height, $lines, $widths, $heights) = get_text_coord (
- $text, $fake_darea, $max_width, $max_height, $can_be_greater, $can_be_smaller, $centeredx, $centeredy);
- my $pix = new Gtk::Gdk::Pixmap($w->window, $width, $height);
-
- if ($backpix) {
- fill_tiled($w, $pix, $background, $x_back, $y_back, $width, $height);
- } else {
- $color_background ||= gtkcolor(65535, 65535, 65535);
- my $gc_background = new Gtk::Gdk::GC($w->window);
- $gc_background->set_foreground($color_background);
- $pix->draw_rectangle($gc_background, 1, 0, 0, $width, $height);
- }
- $color_text ||= gtkcolor(0, 0, 0);
- my $gc_text = new Gtk::Gdk::GC($w->window);
- $gc_text->set_foreground($color_text);
- my $i = 0;
- foreach (@{$lines}) {
- $pix->draw_string($style->font, $gc_text, ${$widths}[$i], ${$heights}[$i], $_);
- $bold and $pix->draw_string($style->font, $gc_text, ${$widths}[$i] + 1, ${$heights}[$i], $_);
- $i++;
- }
- ($pix, $width, $height);
-}
-
-sub get_text_coord {
-
- my ($text, $widget4style, $max_width, $max_height, $can_be_greater, $can_be_smaller, $centeredx, $centeredy, $wrap_char) = @_;
-
- $wrap_char ||= ' ';
- my $idx = 0;
- my $real_width = 0;
- my $real_height = 0;
- my @lines;
- my @widths;
- my @heights;
- my $height_elem = $widget4style->style->font->ascent + $widget4style->style->font->descent;
- $heights[0] = 0;
- my $max_width2 = $max_width;
- my $height = $heights[0] = $height_elem;
- my $width = 0;
- my $flag = 1;
- my @t = split($wrap_char, $text);
- my @t2;
- if ($::isInstall && $::o->{lang} =~ /ja|zh/) {
- @t = map { $_ . $wrap_char } @t;
- $wrap_char = '';
- foreach (@t) {
- my @c = split('');
- my $i = 0;
- my $el = '';
- while (1) {
- $i >= @c and last;
- $el .= $c[$i];
- if (ord($c[$i]) >= 128) { $el .= $c[$i+1]; $i++; push @t2, $el; $el = ''}
- $i++;
- }
- $el ne '' and push @t2, $el;
- }
- } else {
- @t2 = @t;
- }
- foreach (@t2) {
- my $l = $widget4style->style->font->string_width($_ . (!$flag ? $wrap_char : ''));
- if ($width + $l > $max_width2 && !$flag) {
- $flag = 1;
- $height += $height_elem + 1;
- $heights[$idx+1] = $height;
- $widths[$idx] = $centeredx && !$can_be_smaller ? (max($max_width2-$width, 0))/2 : 0;
- $width = 0;
- $idx++;
- }
- $lines[$idx] = $flag ? "$_" : $lines[$idx] . $wrap_char . "$_";
- $width += $l;
- $flag = 0;
- $l <= $max_width2 or $max_width2 = $l;
- $width <= $real_width or $real_width = $width;
- }
- $height += $height_elem;
- $widths[$idx] = $centeredx && !$can_be_smaller ? (max($max_width2-$width, 0))/2 : 0;
-
- $height < $real_height or $real_height = $height;
- $width = $max_width;
- $height = $max_height;
- $real_width < $max_width && $can_be_smaller and $width = $real_width;
- $real_width > $max_width && $can_be_greater and $width = $real_width;
- $real_height < $max_height && $can_be_smaller and $height = $real_height;
- $real_height > $max_height && $can_be_greater and $height = $real_height;
- if ($centeredy) {
- my $dh = ($height-$real_height)/2 + ($height_elem)/2;
- @heights = map { $_ + $dh } @heights;
- }
- ($width, $height, \@lines, \@widths, \@heights)
-}
-
-sub fill_tiled {
- my ($w, $pix, $bitmap, $x_back, $y_back, $width, $height) = @_;
- my ($x2, $y2) = (0, 0);
- while (1) {
- $x2 = 0;
- while (1) {
- $pix->draw_pixmap($w->style->bg_gc('normal'),
- $bitmap, 0, 0, $x2, $y2, $x_back, $y_back);
- $x2 += $x_back;
- $x2 >= $width and last;
- }
- $y2 += $y_back;
- $y2 >= $height and last;
- }
-}
-
-sub gtkicons_labels_widget {
- my ($args, $w, $color_text, $widget_for_font, $background, $x_back, $y_back, $x_round,
- $y_round, $x_back2, $y_back2, $icon_width, $icon_height, $exec_func, $exec_hash) = @_;
-
- my @tab;
- my $i = 0;
- my $cursor_hand = new Gtk::Gdk::Cursor 60;
- my $cursor_normal = new Gtk::Gdk::Cursor 68;
- foreach (@$args) {
- my $label = $_->[0];
- my $dbl_area;
- my $darea = new Gtk::DrawingArea;
- my ($icon, undef) = gtkcreate_png($_->[1]);
- my ($icon_h, undef) = gtkcreate_png("$_->[1]_highlight");
- $darea->{state} = 0;
- $darea->signal_connect(expose_event => sub {
- my ($dx, $dy) = ($darea->allocation->[2], $darea->allocation->[3]);
- if (!defined($dbl_area) || $darea->{state} != $dbl_area->{state}) {
- my $state = $darea->{state};
- my ($pix, $width, $height) = create_pix_text($darea, $label, $color_text, $widget_for_font->style->font, $x_round, 1,
- 1, 0, $background, $x_back2, $y_back2, 1, 0, $state);
- ($dx, $dy) = (max($width, $x_round), $y_round + $height);
- $darea->set_usize($dx, $dy);
- $dbl_area = new Gtk::Gdk::Pixmap($darea->window, max($width, $x_round), $y_round + $height);
- $dbl_area->{state} = $darea->{state};
- fill_tiled($darea, $dbl_area, $background, $x_back2, $y_back2, $dx, $dy);
- $dbl_area->draw_pixmap($darea->style->bg_gc('normal'),
- $darea->{state} ? $icon_h : $icon, 0, 0, ($dx - $icon_width)/2, 0, $icon_width, $icon_height);
- $dbl_area->draw_pixmap($darea->style->bg_gc('normal'),
- $pix, 0, 0, ($dx - $width)/2, $y_round, $width, $height);
-# $dbl_area->draw_rectangle($darea->style->black_gc, 0,
-# 0, 0, max($width, $x_round) - 1 , $y_round + $height - 1);
- }
- $darea->window->draw_pixmap($darea->style->bg_gc('normal'),
- $dbl_area, 0, 0, 0, 0, $dx, $dy);
-# $darea->window->draw_rectangle($darea->style->black_gc, 0,
-# 0, 0, $dx, $dy);
- ($darea->{dx}, $darea->{dy}) = ($dx, $dy);
- });
- $darea->set_events(['exposure_mask', 'enter_notify_mask', 'leave_notify_mask', 'button_press_mask', 'button_release_mask' ]);
- $darea->signal_connect( enter_notify_event => sub {
- if ($darea->{state} == 0) {
- $darea->{state} = 1;
- $darea->draw(undef);
- }
- });
- $darea->signal_connect( leave_notify_event => sub {
- if ($darea->{state} == 1) {
- $darea->{state} = 0;
- $darea->draw(undef);
- }
- });
- my $label_exec = $_->[0];
- $darea->signal_connect( button_release_event => sub {
- $darea->{state} = 0;
- $darea->draw(undef);
- $exec_func->($exec_hash->{$label_exec});
-# $exec_hash->{$label_exec}{function}->($exec_hash->{$label_exec}{arg});
- });
- $darea->signal_connect( realize => sub { $darea->window->set_cursor($cursor_hand) });
- $tab[$i] = $darea;
- $i++;
- }
- my $fixed = new Gtk::Fixed;
- foreach (@tab) { $fixed->put($_, 75, 65) }
- my $redraw_function = sub {
- $fixed->move(@$_) foreach compute_icons($fixed->allocation->[2], $fixed->allocation->[3], 40, 15, 20, @tab);
- };
- $fixed->signal_connect(expose_event => $redraw_function );
- $fixed->signal_connect(realize => sub {
- $fixed->window->set_back_pixmap($background, 0);
- $redraw_function->();
- });
- $fixed->{redraw_function} = $redraw_function;
- $fixed->show_all();
- my $w_ret = createScrolledWindow($fixed, ['automatic', 'automatic']);
-
- #- Ugly hacks, don't touch! ########
- my $timeout2 = Gtk->timeout_add(100, sub { $fixed->set_usize($w_ret->allocation->[2] - 22, 0); 0; });
- $w_ret->vscrollbar->set_usize(19, undef);
- gtkset_border_width($w_ret, -2); #- ok, this is very very ugly...
-}
-
-sub ctree_set_icon {
- my ($tree, $node, $icon_pixmap, $icon_mask) = @_;
-
- my ($text, $spacing, undef, undef, undef, undef, $isleaf, $expanded) = $tree->get_node_info($node);
- $tree->set_node_info($node, $text, $spacing, $icon_pixmap, $icon_mask, $icon_pixmap, $icon_mask, $isleaf, $expanded);
-}
-
-sub compute_icons {
- my ($fx, $fy, $decx, $decy, $interstice, @tab) = @_;
- my $nb = $#tab;
- my $nb_sav = $nb;
- my $index = 0;
- my @dx2;
- my @dx;
- my @dy;
- my $line_up = 0;
- bcl_init:
- @dx2 = undef;
- bcl:
- @dx = map{ $_->{dx} } @tab[$index..$index+$nb];
- $dy[$index] = max(map{ $_->{dy} } @tab[$index..$index+$nb]);
- foreach (0..$#dx) {
- if ($dx[$_] > $dx2[$_]) { $dx2[$_] = $dx[$_] } else { $dx[$_] = $dx2[$_] }
- }
- my $line_size = 0;
- $line_size = $decx + sum(@dx2) + $nb * $interstice;
- if ($line_size > $fx) {
- $index = 0; $nb--; goto bcl_init;
- }
- $nb and $line_up = ($fx-$line_size)/($nb+2);
- $index += $nb+1;
- $index <= $#tab and goto bcl;
- my @ret;
- my $n = 0;
- my $y = $decy;
- my $x = $decx/2 + $line_up;
- foreach (0..$nb_sav) {
- $ret[$_] = [$tab[$_], $x, $y];
- $x += $dx2[$n] + $interstice + $line_up;
- $n++;
- if ($n > $nb) {
- $n = 0;
- $x = $decx/2 + $line_up;
- $y += int($dy[$_-$nb]/5)*5 + 15;
- }
- }
- @ret;
-}
-
-sub write_on_pixmap {
- my ($pixmap, $x_pos, $y_pos, @text)=@_;
- my ($gdkpixmap, $gdkmask) = $pixmap->get();
- my ($width, $height) = (440, 250);
- my $gc = Gtk::Gdk::GC->new(gtkroot());
- $gc->set_foreground(gtkcolor(8448, 17664, 40191)); #- in hex : 33, 69, 157
-
- my $darea= new Gtk::DrawingArea();
- $darea->size($width, $height);
- $darea->set_usize($width, $height);
- my $draw = sub {
- my $style = new Gtk::Style;
- #- i18n : you can change the font.
- $style->font(Gtk::Gdk::Font->fontset_load(_("-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*")));
- my $y_pos2= $y_pos;
- foreach (@text) {
- $darea->window->draw_string($style->font, $gc, $x_pos, $y_pos2, $_);
- $y_pos2 += 20;
- }
- };
- $darea->signal_connect(expose_event => sub { $darea->window->draw_rectangle($darea->style->white_gc, 1, 0, 0, $width, $height);
- $darea->window->draw_pixmap
- ($darea->style->white_gc,
- $gdkpixmap, 0, 0,
- ($darea->allocation->[2]-$width)/2, ($darea->allocation->[3]-$height)/2,
- $width, $height);
- &$draw();
- });
- $darea;
-}
-
-sub n_line_size {
- my ($nbline, $type, $widget) = @_;
- my $font = $widget->style->font;
- my $spacing = ${{ text => 0, various => 17 }}{$type};
- $nbline * ($font->ascent + $font->descent + $spacing) + 8;
-}
-
-#-###############################################################################
-#- createXXX functions
-
-#- these functions return a widget
-#-###############################################################################
-
-sub create_okcancel {
- my ($w, $ok, $cancel, $spread, @other) = @_;
- my $one = ($ok xor $cancel);
- $spread ||= $::isWizard ? "end" : "spread";
- $ok ||= $::isWizard ? ($::Wizard_finished ? _("Finish") : _("Next ->")) : _("Ok");
- $cancel ||= $::isWizard ? _("<- Previous") : _("Cancel");
- my $b1 = gtksignal_connect($w->{ok} = new Gtk::Button($ok), clicked => $w->{ok_clicked} || sub { $w->{retval} = 1; Gtk->main_quit });
- my $b2 = !$one && gtksignal_connect($w->{cancel} = new Gtk::Button($cancel), clicked => $w->{cancel_clicked} || sub { log::l("default cancel_clicked"); undef $w->{retval}; Gtk->main_quit });
- $::isWizard and gtksignal_connect($w->{wizcancel} = new Gtk::Button(_("Cancel")), clicked => sub { die 'wizcancel' });
- my @l = grep { $_ } $::isWizard ? ($w->{wizcancel}, $::Wizard_no_previous ? () : $b2, $b1): ($b1, $b2);
- push @l, map { gtksignal_connect(new Gtk::Button($_->[0]), clicked => $_->[1]) } @other;
-
- $_->can_default($::isWizard) foreach @l;
- gtkadd(create_hbox($spread), @l);
-}
-
-sub create_box_with_title($@) {
- my $o = shift;
-
- my $nbline = sum(map { round(length($_) / 60 + 1/2) } map { split "\n" } @_);
- $o->{box} = new Gtk::VBox(0,0);
- $o->{box_size} = n_line_size($nbline, 'text', $o->{box});
- if (@_ <= 2 && $nbline > 4) {
- $o->{icon} && !$::isWizard and
- eval { gtkpack__($o->{box}, gtkset_border_width(gtkpack_(new Gtk::HBox(0,0), 1, gtkpng($o->{icon})),5)) };
- my $wanted = $o->{box_size};
- $o->{box_size} = min(200, $o->{box_size});
- my $has_scroll = $o->{box_size} < $wanted;
-
- my $wtext = new Gtk::Text;
- $wtext->can_focus($has_scroll);
- chomp(my $text = join("\n", @_));
- my $scroll = createScrolledWindow(gtktext_insert($wtext, $text));
- $scroll->set_usize(400, $o->{box_size});
- gtkpack__($o->{box}, $scroll);
- } else {
- my $a = !$::no_separator;
- undef $::no_separator;
- if ($o->{icon} && !$::isWizard) {
- gtkpack__($o->{box},
- gtkpack_(new Gtk::HBox(0,0),
- 0, gtkset_usize(new Gtk::VBox(0,0), 15, 0),
- 0, eval { gtkpng($o->{icon}) },
- 0, gtkset_usize(new Gtk::VBox(0,0), 15, 0),
- 1, gtkpack_($o->{box_title} = new Gtk::VBox(0,0),
- 1, new Gtk::HBox(0,0),
- (map {
- my $w = ref $_ ? $_ : new Gtk::Label($_);
- $::isWizard and $w->set_justify("left");
- $w->set_name("Title");
- (0, $w);
- } map { ref $_ ? $_ : warp_text($_) } @_),
- 1, new Gtk::HBox(0,0),
- )
- ),
- if_($a, new Gtk::HSeparator)
- )
- } else {
- gtkpack__($o->{box},
- (map {
- my $w = ref $_ ? $_ : new Gtk::Label($_);
- $::isWizard and $w->set_justify("left");
- $w->set_name("Title");
- $w;
- } map { ref $_ ? $_ : warp_text($_) } @_),
- if_($a, new Gtk::HSeparator)
- )
- }
- }
-}
-
-sub createScrolledWindow {
- my ($W, $policy) = @_;
- my $w = new Gtk::ScrolledWindow(undef, undef);
- $policy ||= [ 'automatic', 'automatic'];
- $w->set_policy(@{$policy});
- member(ref $W, qw(Gtk::CList Gtk::CTree Gtk::Text)) ?
- $w->add($W) :
- $w->add_with_viewport($W);
- $W->can("set_focus_vadjustment") and $W->set_focus_vadjustment($w->get_vadjustment);
- $W->show;
- $w
-}
-
-sub create_menu($@) {
- my $title = shift;
- my $w = new Gtk::MenuItem($title);
- $w->set_submenu(gtkshow(gtkappend(new Gtk::Menu, @_)));
- $w
-}
-
-sub add2notebook {
- my ($n, $title, $book) = @_;
-
- my ($w1, $w2) = map { new Gtk::Label($_) } $title, $title;
- $book->{widget_title} = $w1;
- $n->append_page_menu($book, $w1, $w2);
- $book->show;
- $w1->show;
- $w2->show;
-}
-
-sub create_notebook(@) {
- my $n = new Gtk::Notebook;
- add2notebook($n, splice(@_, 0, 2)) while @_;
- $n
-}
-
-sub create_adjustment($$$) {
- my ($val, $min, $max) = @_;
- new Gtk::Adjustment($val, $min, $max + 1, 1, ($max - $min + 1) / 10, 1);
-}
-
-sub create_packtable($@) {
- my ($options, @l) = @_;
- my $w = new Gtk::Table(0, 0, $options->{homogeneous} || 0);
- map_index {
- my ($i, $l) = ($_[0], $_);
- map_index {
- my ($j) = @_;
- if ($_) {
- ref $_ or $_ = new Gtk::Label($_);
- $j != $#$l ?
- $w->attach($_, $j, $j + 1, $i, $i + 1, 'fill', 'fill', 5, 0) :
- $w->attach($_, $j, $j + 1, $i, $i + 1, 1|4, ref($_) eq 'Gtk::ScrolledWindow' ? 1|4 : 0, 0, 0);
- $_->show;
- }
- } @$l;
- } @l;
- $w->set_col_spacings($options->{col_spacings} || 0);
- $w->set_row_spacings($options->{row_spacings} || 0);
- $w
-}
-
-sub create_hbox {
- my $w = gtkset_border_width(new Gtk::HButtonBox, 3);
- $w->set_layout($_[0] || "spread");
- $w;
-}
-sub create_vbox {
- my $w = new Gtk::VButtonBox;
- $w->set_layout(-spread);
- $w;
-}
-
-
-sub _create_window($$) {
- my ($o, $title) = @_;
- my $w = new Gtk::Window;
- my $gc = Gtk::Gdk::GC->new(gtkroot());
- !$::isStandalone && !$::live && !$::g_auto_install and $my_gtk::shape_width = 3;
-#- $gc->set_foreground(gtkcolor(8448, 17664, 40191)); #- in hex : 33, 69, 157
- $gc->set_foreground(gtkcolor(5120, 10752, 22784)); #- in hex : 20, 42, 89
-#- $gc->set_foreground(gtkcolor(16896, 16896, 16896)); #- in hex : 66, 66, 66
- my $inner = gtkadd(my $f_ = gtkset_shadow_type(new Gtk::Frame(undef), 'out'),
- my $f = gtkset_border_width(gtkset_shadow_type(new Gtk::Frame(undef), 'none'), 3)
- );
- my $table;
- if ($::isStandalone || $::live || $::g_auto_install || $::noShadow) { gtkadd($w, $inner) } else {
- my $sqw = $my_gtk::shape_width;
- gtkadd($w, $table = new Gtk::Table(2, 2, 0));
- $table->attach( $inner, 0, 1, 0, 1, 1|4, 1|4, 0, 0);
- $table->attach( gtksignal_connect(gtkset_usize(new Gtk::DrawingArea, $sqw, 1), expose_event => sub {
- $_[0]->window->draw_rectangle($_[0]->style->bg_gc('normal'), 1, 0, 0, $sqw, $sqw);
- $_[0]->window->draw_rectangle($gc, 1, 0, $sqw, $sqw, $_[0]->allocation->[3]);
- }),
- 1, 2, 0, 1, 'fill', 'fill', 0, 0);
- $table->attach( gtksignal_connect(gtkset_usize(new Gtk::DrawingArea, 1, $sqw), expose_event => sub {
- $_[0]->window->draw_rectangle($_[0]->style->bg_gc('normal'), 1, 0, 0, $sqw, $sqw);
- $_[0]->window->draw_rectangle($gc, 1, $sqw, 0, $_[0]->allocation->[2], $sqw);
- }),
- 0, 1, 1, 2, 'fill', 'fill', 0, 0);
- $table->attach( gtksignal_connect(gtkset_usize(new Gtk::DrawingArea, $sqw, $sqw), expose_event => sub {
- $_[0]->window->draw_rectangle($gc, 1, 0, 0, $sqw, $sqw);
- }),
- 1, 2, 1, 2, 'fill', 'fill', 0, 0);
- $table->show_all;
- }
- $w->set_name("Title");
- $w->set_title($title);
-
- $w->signal_connect(expose_event => sub { eval { $interactive::objects[-1]{rwindow} == $w and $w->window->XSetInputFocus } }) if $my_gtk::force_focus || $o->{force_focus};
- $w->signal_connect(delete_event => sub { $w->destroy; die 'wizcancel' });
- $w->set_uposition(@{$my_gtk::force_position || $o->{force_position}}) if $my_gtk::force_position || $o->{force_position};
-
- my $focusing;
- $w->signal_connect(focus => sub {
- return 1 if $focusing;
- $focusing = 1;
- Gtk->idle_add(sub { $w->ensure_focus($_[0]); $focusing = 0; 0 }, $_[1]);
- }) if $w->can('ensure_focus');
-
- if ($::o->{mouse}{unsafe}) {
- $w->set_events("pointer_motion_mask");
- my $signal;
- $signal = $w->signal_connect(motion_notify_event => sub {
- delete $::o->{mouse}{unsafe};
- log::l("unsetting unsafe mouse");
- $w->signal_disconnect($signal);
- });
- }
- $w->signal_connect(key_press_event => sub {
- my $d = ${{ 0xffbe => 'help',
- 0xffbf => 'screenshot',
- 0xffc9 => 'next',
- 0xffc8 => 'previous' }}{$_[1]{keyval}};
-
- if ($d eq "help") {
- require install_gtk;
- install_gtk::create_big_help($::o);
- } elsif ($::isInstall && $d eq 'screenshot') {
- common::take_screenshot($o);
- } elsif (chr($_[1]{keyval}) eq 'e' && $_[1]{state} & 8) {
- log::l("Switching to " . ($::expert ? "beginner" : "expert"));
- $::expert = !$::expert;
- } elsif ($d) {
- #- previous field is created here :(
- my $s; foreach (reverse @{$::o->{orderedSteps}}) {
- $s->{previous} = $_ if $s;
- $s = $::o->{steps}{$_};
- }
- $s = $::o->{step};
- do { $s = $::o->{steps}{$s}{$d} } until !$s || $::o->{steps}{$s}{reachable};
- $::setstep && $s and die "setstep $s\n";
- }
- });# if $::isInstall;
-
- $w->signal_connect(size_allocate => sub {
- my ($wi, $he) = @{$_[1]}[2,3];
- my ($X, $Y, $Wi, $He) = @{$my_gtk::force_center || $o->{force_center}};
- $w->set_uposition(max(0, $X + ($Wi - $wi) / 2), max(0, $Y + ($He - $he) / 2));
-
- if (!$::isStandalone && !$::live && !$::g_auto_install && !$::noShadow) {
- my $sqw = $my_gtk::shape_width; #square width
- my $wia = int(($wi+7)/8);
- my $s = "\xFF" x ($wia*$he);
- my $wib = $wia*8;
- my $dif = $wib-$wi;
- foreach my $y (0..$sqw-1) { vec($s, $wib-1-$dif-$_+$wib*$y, 1) = 0x0 foreach (0..$sqw-1) }
- foreach my $y (0..$sqw-1) { vec($s, (($he-1)*$wib)-$wib*$y+$_, 1) = 0x0 foreach (0..$sqw-1) }
- $w->realize;
- my $b = Gtk::Gdk::Bitmap->create_from_data($w->window, $s, $wib, $he);
- $w->window->shape_combine_mask($b, 0, 0);
- }
- }) if ($my_gtk::force_center || $o->{force_center}) && !($my_gtk::force_position || $o->{force_position}) ;
-
- $o->{window} = $f;
- $o->{rwindow} = $w;
- $table and $table->draw(undef);
-}
-
-my ($next_child, $left, $right, $up, $down);
-{
- my $next_child = sub {
- my ($c, $dir) = @_;
-
- my @childs = $c->parent->children;
-
- my $i; for ($i = 0; $i < @childs; $i++) {
- last if $childs[$i] == $c || $childs[$i]->subtree == $c;
- }
- $i += $dir;
- 0 <= $i && $i < @childs ? $childs[$i] : undef;
- };
- $left = sub { &$next_child($_[0]->parent, 0); };
- $right = sub {
- my ($c) = @_;
- if ($c->subtree) {
- $c->expand;
- ($c->subtree->children)[0];
- } else {
- $c;
- }
- };
- $down = sub {
- my ($c) = @_;
- return &$right($c) if ref $c eq "Gtk::TreeItem" && $c->subtree && $c->expanded;
-
- if (my $n = &$next_child($c, 1)) {
- $n;
- } else {
- return if ref $c->parent ne 'Gtk::Tree';
- &$down($c->parent);
- }
- };
- $up = sub {
- my ($c) = @_;
- if (my $n = &$next_child($c, -1)) {
- $n = ($n->subtree->children)[-1] while ref $n eq "Gtk::TreeItem" && $n->subtree && $n->expanded;
- $n;
- } else {
- return if ref $c->parent ne 'Gtk::Tree';
- &$left($c);
- }
- };
-}
-
-sub create_treeitem($) {
- my ($name) = @_;
-
- my $w = new Gtk::TreeItem($name);
- $w->signal_connect(key_press_event => sub {
- my (undef, $e) = @_;
- local $_ = chr ($e->{keyval});
-
- if ($e->{keyval} > 0x100) {
- my $n;
- $n = &$left($w) if /[Q\xb4\x96]/;
- $n = &$right($w) if /[S\xb6\x98]/;
- $n = &$up($w) if /[R\xb8\x97]/;
- $n = &$down($w) if /[T\xb2\x99]/;
- if ($n) {
- $n->focus('up');
- $w->signal_emit_stop("key_press_event");
- }
- $w->expand if /[+\xab]/;
- $w->collapse if /[-\xad]/;
- do {
- $w->expanded ? $w->collapse : $w->expand;
- $w->signal_emit_stop("key_press_event");
- } if /[\r\x8d]/;
- }
- 1;
- });
- $w;
-}
-
-
-
-#-###############################################################################
-#- ask_XXX
-
-#- just give a title and some args, and it will return the value given by the user
-#-###############################################################################
-
-sub ask_warn { my $w = my_gtk->new(shift @_); $w->_ask_warn(@_); main($w); }
-sub ask_yesorno { my $w = my_gtk->new(shift @_); $w->_ask_okcancel(@_, _("Yes"), _("No")); main($w); }
-sub ask_okcancel { my $w = my_gtk->new(shift @_); $w->_ask_okcancel(@_, _("Is this correct?"), _("Ok"), _("Cancel")); main($w); }
-sub ask_from_entry { my $w = my_gtk->new(shift @_); $w->_ask_from_entry(@_); main($w); }
-
-sub _ask_from_entry($$@) {
- my ($o, @msgs) = @_;
- my $entry = new Gtk::Entry;
- my $f = sub { $o->{retval} = $entry->get_text; Gtk->main_quit };
- $o->{ok_clicked} = $f;
- $o->{cancel_clicked} = sub { undef $o->{retval}; Gtk->main_quit };
-
- gtkadd($o->{window},
- gtkpack($o->create_box_with_title(@msgs),
- gtksignal_connect($entry, 'activate' => $f),
- ($o->{hide_buttons} ? () : create_okcancel($o))),
- );
- $entry->grab_focus;
-}
-
-sub _ask_warn($@) {
- my ($o, @msgs) = @_;
- gtkadd($o->{window},
- gtkpack($o->create_box_with_title(@msgs),
- gtksignal_connect(my $w = new Gtk::Button(_("Ok")), "clicked" => sub { Gtk->main_quit }),
- ),
- );
- $w->grab_focus;
-}
-
-sub _ask_okcancel($@) {
- my ($o, @msgs) = @_;
- my ($ok, $cancel) = splice @msgs, -2;
-
- gtkadd($o->{window},
- gtkpack(create_box_with_title($o, @msgs),
- create_okcancel($o, $ok, $cancel),
- )
- );
- $o->{ok}->grab_focus;
-}
-
-
-sub _ask_file {
- my ($o, $title, $path) = @_;
- my $f = $o->{rwindow} = new Gtk::FileSelection $title;
- $f->set_filename($path);
- $f->ok_button->signal_connect(clicked => sub { $o->{retval} = $f->get_filename ; Gtk->main_quit });
- $f->cancel_button->signal_connect(clicked => sub { Gtk->main_quit });
- $f->hide_fileop_buttons;
-}
-
-sub ask_browse_tree_info {
- my ($common) = @_;
-
- my $w = my_gtk->new($common->{title});
- my $tree = Gtk::CTree->new(3, 0);
- $tree->set_selection_mode('browse');
- $tree->set_column_auto_resize($_, 1) foreach 1..2;
- $tree->set_column_width(0, 200);
-
- gtkadd($w->{window},
- gtkpack_(new Gtk::VBox(0,5),
- 0, $common->{message},
- 1, gtkpack(new Gtk::HBox(0,0),
- createScrolledWindow($tree),
- gtkadd(gtkset_usize(new Gtk::Frame(_("Info")), $::windowwidth - 490, 0),
- createScrolledWindow(my $info = new Gtk::Text),
- )),
- 0, my $l = new Gtk::HBox(0,15),
- 0, gtkpack(new Gtk::HBox(0,10),
- my $go = gtksignal_connect(new Gtk::Button($common->{ok}), "clicked" => sub { $w->{retval} = 1; Gtk->main_quit }),
- $common->{cancel} ? (gtksignal_connect(new Gtk::Button($common->{cancel}), "clicked" => sub { $w->{retval} = 0; Gtk->main_quit })) : (),
- )
- ));
- gtkpack__($l, my $toolbar = new Gtk::Toolbar('horizontal', 'icons'));
-
- if ($common->{auto_deps}) {
- gtkpack__($l, gtksignal_connect(gtkset_active(new Gtk::CheckButton($common->{auto_deps}), $common->{state}{auto_deps}),
- clicked => sub { invbool \$common->{state}{auto_deps} }));
- }
- $l->pack_end(my $status = new Gtk::Label, 0, 1, 20);
-
- $w->{window}->set_usize(map { $_ - 2 * $my_gtk::border - 4 } $::windowwidth, $::windowheight);
- $go->grab_focus;
- $w->{rwindow}->show_all;
-
- my @toolbar = (ftout => [ _("Expand Tree") , sub { $tree->expand_recursive(undef) } ],
- ftin => [ _("Collapse Tree") , sub { $tree->collapse_recursive(undef) } ],
- reload => [ _("Toggle between flat and group sorted"), sub { invbool(\$common->{state}{flat}); $common->{rebuild_tree}->() } ]);
- foreach my $ic (@{$common->{icons} || []}) {
- push @toolbar, ( $ic->{icon} => [ $ic->{help}, sub {
- if ($ic->{code}) {
- my $w = $ic->{wait_message} && $common->{wait_message}->('', $ic->{wait_message});
- $ic->{code}();
- $common->{rebuild_tree}->();
- }
- } ]);
- }
- my %toolbar = @toolbar;
- $toolbar->set_button_relief("none");
- foreach (grep_index { $::i % 2 == 0 } @toolbar) {
- gtksignal_connect($toolbar->append_item(undef, $toolbar{$_}[0], undef, gtkpng("$ENV{SHARE_PATH}/$_.png")),
- clicked => $toolbar{$_}[1]);
- }
- $toolbar->set_style("icons");
-
- my $widgets = { w => $w, tree => $tree, info => $info, status => $status};
- ask_browse_tree_info_given_widgets($common, $widgets);
-}
-
-sub ask_browse_tree_info_given_widgets {
- my ($common, $w) = @_;
- my ($curr, $parent, $prev_label, $idle);
- my (%wtree, %ptree, %pix);
- my $update_size = sub {
- my $new_label = $common->{get_status}();
- $prev_label ne $new_label and $w->{status}->set($prev_label = $new_label);
- };
-
- my $set_node_state_flat = sub {
- my ($node, $state) = @_;
- unless ($pix{$state}) {
- foreach ("$ENV{SHARE_PATH}/$state.png", "$ENV{SHARE_PATH}/rpm-$state.png") {
- if (-e $_) {
- $pix{$state} = [ gtkcreate_png($_) ];
- last;
- }
- }
- $pix{$state} or die "unable to find a pixmap for state $state";
- }
- $w->{tree}->node_set_pixmap($node, 1, $pix{$state}[0], $pix{$state}[1]);
- };
- my $set_node_state_tree; $set_node_state_tree = sub {
- my ($node, $state) = @_;
- unless ($pix{$state}) {
- foreach ("$ENV{SHARE_PATH}/$state.png", "$ENV{SHARE_PATH}/rpm-$state.png") {
- if (-e $_) {
- $pix{$state} = [ gtkcreate_png($_) ];
- last;
- }
- }
- $pix{$state} or die "unable to find a pixmap for state $state";
- }
- if ($node->{state} ne $state) {
- if ($node->row->is_leaf) {
- my $parent = $node->row->parent;
- my $stats = $parent->{state_stats} ||= {}; --$stats->{$node->{state}}; ++$stats->{$state};
- my @list = grep { $stats->{$_} > 0 } keys %$stats;
- my $new_state = @list == 1 ? $list[0] : 'semiselected';
- $parent->{state} ne $new_state and $set_node_state_tree->($parent, $new_state);
- }
- $w->{tree}->node_set_pixmap($node, 1, $pix{$state}[0], $pix{$state}[1]);
- $node->{state} = $state; #- hack to to get this features efficiently.
- }
- };
- my $set_node_state = $common->{state}{flat} ? $set_node_state_flat : $set_node_state_tree;
-
- my $set_leaf_state = sub {
- my ($leaf, $state) = @_;
- $set_node_state->($_, $state) foreach @{$ptree{$leaf}};
- };
- my $add_parent; $add_parent = sub {
- my ($root, $state) = @_;
- $root or return undef;
- if (my $w = $wtree{$root}) { return $w }
- my $s; foreach (split '\|', $root) {
- my $s2 = $s ? "$s|$_" : $_;
- $wtree{$s2} ||= do {
- my $n = $w->{tree}->insert_node($s ? $add_parent->($s, $state) : undef, undef, [$_, '', ''], 5, (undef) x 4, 0, 0);
- $n;
- };
- $s = $s2;
- }
- $set_node_state->($wtree{$s}, $state); #- use this state by default as tree is building.
- $wtree{$s};
- };
- my $add_node = sub {
- my ($leaf, $root) = @_;
- my $state = $common->{node_state}($leaf) or return;
- my $node = $w->{tree}->insert_node($add_parent->($root, $state), undef, [$leaf, '', ''], 5, (undef) x 4, 1, 0);
- $set_node_state->($node, $state);
- push @{$ptree{$leaf}}, $node;
- };
- $common->{rebuild_tree} = sub {
- foreach (values %ptree) {
- delete $_->{state} foreach @$_;
- }
- foreach (values %wtree) {
- delete $_->{state};
- delete $_->{state_stats};
- }
- %ptree = %wtree = ();
-
- $w->{tree}->freeze;
- while (1) { $w->{tree}->remove_node($w->{tree}->node_nth(0) || last) }
-
- $set_node_state = $common->{state}{flat} ? $set_node_state_flat : $set_node_state_tree;
- $common->{build_tree}($add_node, $common->{state}{flat}, $common->{tree_mode});
-
- $w->{tree}->thaw;
- &$update_size;
- };
- $common->{rebuild_tree}->();
-
- my $display_info = sub { gtktext_insert($w->{info}, $common->{get_info}($curr)); 0 };
- my $children = sub { map { ($w->{tree}->node_get_pixtext($_, 0))[0] } gtkctree_children($_[0]) };
- my $toggle = sub {
- if (ref $curr && ! $_[0]) {
- $w->{tree}->toggle_expansion($curr);
- } else {
- if (ref $curr) {
- my @l = $common->{grep_allowed_to_toggle}($children->($curr)) or return;
- my @unsel = $common->{grep_unselected}(@l);
- my @p = @unsel ?
- @unsel : # not all is selected, select all
- @l;
- $common->{toggle_nodes}($set_leaf_state, @p);
- &$update_size;
- $parent = $curr;
- } else {
- $common->{check_interactive_to_toggle}($curr) and $common->{toggle_nodes}($set_leaf_state, $curr);
- &$update_size;
- }
- }
- };
-
- $w->{tree}->signal_connect(key_press_event => sub {
- my ($w, $e) = @_;
- my $c = chr($e->{keyval} & 0xff);
- $toggle->(0) if $e->{keyval} >= 0x100 ? $c eq "\r" || $c eq "\x8d" : $c eq ' ';
- 1;
- });
- $w->{tree}->signal_connect(tree_select_row => sub {
- Gtk->timeout_remove($idle) if $idle;
-
- if ($_[1]->row->is_leaf) {
- ($curr) = $w->{tree}->node_get_pixtext($_[1], 0);
- $parent = $_[1]->row->parent;
- $idle = Gtk->timeout_add(100, $display_info);
- } else {
- $curr = $_[1];
- }
- $toggle->(1) if $_[2] == 1;
- });
- &$update_size;
- my $b = before_leaving { #- ensure cleaning here.
- foreach (values %ptree) {
- delete $_->{state} foreach @$_;
- }
- foreach (values %wtree) {
- delete $_->{state};
- delete $_->{state_stats};
- }
- };
- $w->{w}->main;
-}
-
-1;
-
-#-###############################################################################
-#- rubbish
-#-###############################################################################
-
-#-sub label_align($$) {
-#- my $w = shift;
-#- local $_ = shift;
-#- $w->set_alignment(!/W/i, !/N/i);
-#- $w
-#-}
-
diff --git a/perl-install/network.pm b/perl-install/network.pm
deleted file mode 100644
index 9979e439e..000000000
--- a/perl-install/network.pm
+++ /dev/null
@@ -1,5 +0,0 @@
-package network; # $Id$
-
-use network::network;
-
-1;
diff --git a/perl-install/network/adsl.pm b/perl-install/network/adsl.pm
deleted file mode 100644
index bf5a63475..000000000
--- a/perl-install/network/adsl.pm
+++ /dev/null
@@ -1,172 +0,0 @@
-package network::adsl;
-
-use common;
-use run_program;
-use network::tools;
-use network::ethernet;
-use modules;
-
-use vars qw(@ISA @EXPORT);
-use MDK::Common::Globals "network", qw($in $prefix);
-
-@ISA = qw(Exporter);
-@EXPORT = qw(adsl_ask_info adsl_detect adsl_conf adsl_conf_backend);
-
-sub configure {
- my ($netcnx, $netc, $intf, $first_time) = @_;
- $::isInstall and $in->set_help('configureNetworkADSL');
- conf_adsl_step1:
- my $type = $in->ask_from_list_(_("Connect to the Internet"),
- _("The most common way to connect with adsl is pppoe.
-Some connections use pptp, a few ones use dhcp.
-If you don't know, choose 'use pppoe'"), [__("use pppoe"), __("use pptp"), __("use dhcp"), __("Alcatel speedtouch usb")]) or return;
- $type =~ s/use //;
- if ($type eq 'pppoe') {
- $in->do_pkgs->install("rp-$type");
- $netcnx->{type} = "adsl_$type";
- $netcnx->{"adsl_$type"} = {};
- adsl_conf($netcnx->{"adsl_$type"}, $netc, $intf, $type) or goto conf_adsl_step1;
- #-network::configureNetwork($prefix, $netc, $in, $intf, $first_time);
-# if ($::isStandalone and $netc->{NET_DEVICE}) {
-# $in->ask_yesorno(_("Network interface"),
-# _("I'm about to restart the network device %s. Do you agree?", $netc->{NET_DEVICE}), 1)
-# and system("$prefix/sbin/ifdown $netc->{NET_DEVICE}; $prefix/sbin/ifup $netc->{NET_DEVICE}");
-# }
- }
- if ($type eq 'dhcp') {
- $in->do_pkgs->install(qw(dhcpcd));
- go_ethernet($netc, $intf, 'dhcp', '', '', $first_time) or goto conf_adsl_step1;
- }
- if ($type eq 'pptp') {
- $in->do_pkgs->install(qw(pptp-adsl));
- $netcnx->{type} = "adsl_$type";
- $netcnx->{"adsl_$type"} = {};
- adsl_conf($netcnx->{"adsl_$type"}, $netc, $intf, $type) or goto conf_adsl_step1;
- }
- if ($type =~ /speedtouch/) {
- $type = 'speedtouch';
- $in->do_pkgs->install(qw(speedtouch));
- $netcnx->{type} = "adsl_$type";
- $netcnx->{"adsl_$type"} = {};
- $netcnx->{"adsl_$type"}{vpivci} = '';
- adsl_conf($netcnx->{"adsl_$type"}, $netc, $intf, $type) or goto conf_adsl_step1;
- }
- $type =~ /speedtouch/ or $netconnect::need_restart_network = 1;
- 1;
-}
-
-sub adsl_ask_info {
- my ($adsl, $netc, $intf) = @_;
- add2hash($netc, { dnsServer2 => '', dnsServer3 => '', DOMAINNAME2 => '' });
- add2hash($adsl, { login => '', passwd => '', passwd2 => '' });
- ask_info2($adsl, $netc);
-}
-
-#- adsl_detect : detect adsl modem on a given interface
-#- input :
-#- $interface : interface where the modem is supposed to be connected : should be "ethx"
-#- output:
-#- true/false : success|failed
-sub adsl_detect {
- return 0;
- my ($interface) = @_;
- run_program::rooted($prefix, "ifconfig $interface 10.0.0.10 netmask 255.255.255.0");
- my $ret=run_program::rooted($prefix, "/bin/ping -c 1 10.0.0.138 2> /dev/null");
- run_program::rooted($prefix, "ifconfig $interface 0.0.0.0 netmask 255.255.255.0");
- run_program::rooted($prefix, "/etc/init.d/network restart");
- $ret;
-}
-
-sub adsl_conf {
- my ($adsl, $netc, $intf, $adsl_type) = @_;
-
- adsl_conf_step_1:
- adsl_ask_info ($adsl, $netc, $intf) or return;
- adsl_conf_step_2:
- $adsl_type eq 'speedtouch' or conf_network_card($netc, $intf, 'static' , '10.0.0.10' ) or goto adsl_conf_step_1;
- adsl_conf_backend($adsl, $netc, $adsl_type);
- 1;
-}
-
-sub adsl_conf_backend {
- my ($adsl, $netc, $adsl_type, $netcnx) = @_;
- defined $netcnx and $netc->{adsltype} = $netcnx->{type};
- $netc->{adsltype} ||= "adsl_$adsl_type";
- mkdir_p("$prefix/etc/ppp");
- output("$prefix/etc/ppp/options",
-'lock
-noipdefault
-persist
-noauth
-usepeerdns
-defaultroute
-') if $adsl_type =~ /pptp|pppoe|speedtouch/;
-
- write_secret_backend($adsl->{login}, $adsl->{passwd});
-
- if ($adsl_type eq 'pppoe') {
- substInFile {
- s/ETH=.*\n/ETH=$netc->{NET_DEVICE}\n/;
- s/USER=.*\n/USER=$adsl->{login}\n/;
- } "$prefix/etc/ppp/pppoe.conf";
- }
-
- if ($adsl_type eq 'speedtouch') {
- $netc->{vpivci} =~ /(\d+)_(\d+)/;
- output("$prefix/etc/ppp/peers/adsl",
-qq{noauth
-noipdefault
-pty "/usr/bin/pppoa3 -vpi $1 -vci $2"
-sync
-kdebug 1
-noaccomp
-nopcomp
-noccp
-novj
-holdoff 4
-maxfail 25
-persist
-usepeerdns
-defaultroute
-user "$adsl->{login}"
-});
- modules::add_alias($_->[0], $_->[1]) foreach (['char-major-108', 'ppp_generic'],
- ['tty-ldisc-3', 'ppp_async'],
- ['tty-ldisc-13', 'n_hdlc'],
- ['tty-ldisc-14', 'ppp_synctty'],
- ['ppp-compress-21', 'bsd_comp'],
- ['ppp-compress-24', 'ppp_deflate'],
- ['ppp-compress-26', 'ppp_deflate']);
- $::isStandalone and modules::write_conf($prefix);
- $in->do_pkgs->what_provides("speedtouch_mgmt") and $in->do_pkgs->install('speedtouch_mgmt');
- -e "$prefix/usr/share/speedtouch/mgmt.o" or $in->ask_warn('', _('You need the alcatel microcode.
-Download it at
-http://www.alcatel.com/consumer/dsl/dvrreg_lx.htm
-and copy the mgmt.o in /usr/share/speedtouch'));
- }
-
- if ($adsl_type eq 'pptp') {
- write_cnx_script($netc, "adsl",
-"/sbin/route del default
-/usr/bin/pptp 10.0.0.138 name $adsl->{login}
-",
-'/usr/bin/killall pptp pppd
-', $netc->{adsltype}) } elsif ($adsl_type eq 'pppoe') {
- write_cnx_script($netc, "adsl",
-"/sbin/route del default
-LC_ALL=C LANG=C LANGUAGE=C LC_MESSAGES=C /usr/sbin/adsl-start $netc->{NET_DEVICE} $adsl->{login}
-",
-'/usr/sbin/adsl-stop
-/usr/bin/killall pppoe pppd
-', $netc->{adsltype}) } elsif ($adsl_type eq 'speedtouch') {
- write_cnx_script($netc, 'adsl',
-'/sbin/route del default
-/usr/share/speedtouch/speedtouch.sh start
-',
-'/usr/share/speedtouch/speedtouch.sh stop
-', $netc->{adsltype}) }
-
- $netc->{NET_INTERFACE}='ppp0';
-}
-
-1;
diff --git a/perl-install/network/ethernet.pm b/perl-install/network/ethernet.pm
deleted file mode 100644
index e25cb7e68..000000000
--- a/perl-install/network/ethernet.pm
+++ /dev/null
@@ -1,216 +0,0 @@
-package network::ethernet;
-
-use network::network;
-use modules;
-use any;
-use detect_devices;
-use common;
-use run_program;
-use network::tools;
-use vars qw(@ISA @EXPORT);
-use MDK::Common::Globals "network", qw($in $prefix);
-
-@ISA = qw(Exporter);
-@EXPORT = qw(configureNetwork conf_network_card conf_network_card_backend go_ethernet);
-
-sub configure_cable {
- my ($netcnx, $netc, $intf, $first_time) = @_;
- $::isInstall and $in->set_help('configureNetworkCable');
- $netcnx->{type}='cable';
- # $netcnx->{cable}={};
- # $in->ask_from_entries_ref(_("Cable connection"),
- # _("Please enter your host name if you know it.
- # Some DHCP servers require the hostname to work.
- # Your host name should be a fully-qualified host name,
- # such as ``mybox.mylab.myco.com''."),
- # [_("Host name:")], [ \$netcnx->{cable}{hostname} ]);
- if ($::expert) {
- my @m=(
- { description => "dhcpcd",
- c => 1},
- { description => "dhcpxd",
- c => 3},
- { description => "dhcp-client",
- c => 4},
- );
- if (my $f = $in->ask_from_listf(_("Connect to the Internet"),
- _("Which dhcp client do you want to use?
-Default is dhcpcd"),
- sub { $_[0]{description} },
- \@m )) {
- $f->{c}==1 and $netcnx->{dhcp_client}="dhcpcd" and $in->do_pkgs->install(qw(dhcpcd));
- $f->{c}==3 and $netcnx->{dhcp_client}="dhcpxd" and $in->do_pkgs->install(qw(dhcpxd));
- $f->{c}==4 and $netcnx->{dhcp_client}="dhcp-client" and $in->do_pkgs->install(qw(dhcp-client));
- }
- } else {
- $in->do_pkgs->install(qw(dhcpcd));
- }
- go_ethernet($netc, $intf, 'dhcp', '', '', $first_time);
- write_cnx_script($netc, "cable",
-qq(
-/sbin/ifup $netc->{NET_DEVICE}
-),
-qq(
-/sbin/ifdown $netc->{NET_DEVICE}
-), $netcnx->{type});
- 1;
-}
-
-sub configure_lan {
- my ($netcnx, $netc, $intf, $first_time) = @_;
- $::isInstall and $in->set_help('configureNetworkIP');
- configureNetwork($netc, $intf, $first_time) or return;
- configureNetwork2($in, $prefix, $netc, $intf);
- $netc->{NETWORKING} = "yes";
- if ($netc->{GATEWAY} || grep { $_->{BOOTPROTO} eq 'dhcp' } values %$intf) {
- $netcnx->{type}='lan';
- $netcnx->{NET_DEVICE} = $netc->{NET_DEVICE} = '';
- $netcnx->{NET_INTERFACE} = 'lan'; #$netc->{NET_INTERFACE};
- write_cnx_script($netc, "local network",
-qq(
-/etc/rc.d/init.d/network restart
-),
-qq(
-/etc/rc.d/init.d/network stop
-/sbin/ifup lo
-), $netcnx->{type});
- }
- $::isStandalone and modules::write_conf($prefix);
- 1;
-}
-
-sub conf_network_card {
- my ($netc, $intf, $type, $ipadr, $netadr) = @_;
- #-type =static or dhcp
- any::load_category($in, 'network/main|usb', !$::expert, 1);
- my @all_cards=conf_network_card_backend($netc, $intf, $type, undef, $ipadr, $netadr);
- my $interface;
- @all_cards == () and $in->ask_warn('', _("No ethernet network adapter has been detected on your system.
-I cannot set up this connection type.")) and return;
- @all_cards == 1 and $interface = $all_cards[0]->[0] and goto l1;
- again :
- $interface = $in->ask_from_list(_("Choose the network interface"),
- _("Please choose which network adapter you want to use to connect to Internet"),
- [ map { $_->[0] . ($_->[1] ? " ( using module $_->[1] )" : "") } @all_cards ]
- ) or return;
- defined $interface or goto again;
- l1:
- $::isStandalone and modules::write_conf($prefix);
-
- my $device=conf_network_card_backend($netc, $intf, $type, $interface, $ipadr, $netadr, $interface);
-# if ( $::isStandalone and !($type eq "dhcp")) {
-# $in->ask_yesorno(_("Network interface"),
-# _("I'm about to restart the network device:\n") . $device . _("\nDo you agree?"), 1) and configureNetwork2($in, $prefix, $netc, $intf) and system("$prefix/sbin/ifdown $device;$prefix/sbin/ifup $device");
-# }
- 1;
-}
-
-#- conf_network_card_backend : configure the network cards and return the list of them, or configure one specified interface : WARNING, you have to setup the ethernet cards, by calling load_category($in, 'network/main|usb', !$::expert, 1) or load_category_backend before calling this function. Basically, you call this function in 2 times.
-#- input
-#- $prefix
-#- $netc
-#- $intf
-#- $type : type of interface, must be given if $interface is : string : "static" or "dhcp"
-#- $interface : facultative, if given, set this interface and return it in a proper form. If not, return @all_cards
-#- $ipadr : facultative, ip address of the interface : string
-#- $netadr : facultative, netaddress of the interface : string
-#- when $interface is given, informations are written in $intf and $netc. If not, @all_cards is returned.
-#- $intf output: $device is the result of
-#- $intf->{$device}->{DEVICE} : which device is concerned : $device is the result of $interface =~ /(eth[0-9]+)/; my $device = $1;;
-#- $intf->{$device}->{BOOTPROTO} : $type
-#- $intf->{$device}->{NETMASK} : '255.255.255.0'
-#- $intf->{$device}->{NETWORK} : $netadr
-#- $intf->{$device}->{ONBOOT} : "yes"
-#- $netc output:
-#- $netc->{nb_cards} : nb of ethernet cards
-#- $netc->{NET_DEVICE} : this is used to indicate that this eth card is used to connect to internet : $device
-#- output:
-#- $all_cards : a list of a list ( [eth1, module1], ... , [ethn, modulen]). Pass the ethx as $interface in further call.
-#- $device : only returned in case $interface was given it's $interface, but filtered by /eth[0-9+]/ : string : /eth[0-9+]/
-sub conf_network_card_backend {
- my ($netc, $intf, $type, $interface, $ipadr, $netadr) = @_;
- #-type =static or dhcp
- if (!$interface) {
- my @all_cards = detect_devices::getNet();
- $netc->{nb_cards} = @all_cards;
-
- my @devs = detect_devices::pcmcia_probe();
- modules::mergein_conf("$prefix/etc/modules.conf");
- my $saved_driver;
- return map {
- my $interface = $_;
- my $a = modules::get_alias($interface);
- my $b;
- foreach (@devs) {
- $_->{device} eq $interface and $b = $_->{driver};
- }
- $a ||= $b;
- if ($a) { $saved_driver = $a }
- [$interface, $saved_driver];
- } @all_cards;
- }
- my ($device) = $interface =~ /(eth[0-9]+)/ or die("the interface is not an ethx");
- $netc->{NET_DEVICE} = $device; #- one consider that there is only ONE Internet connection device..
-
- @{$intf->{$device}}{qw(DEVICE BOOTPROTO NETMASK NETWORK ONBOOT)} =
- ($device, $type, '255.255.255.0', $netadr, 'yes');
-
- $intf->{$device}->{IPADDR} = $ipadr if $ipadr;
- $device;
-}
-
-sub go_ethernet {
- my ($netc, $intf, $type, $ipadr, $netadr, $first_time) = @_;
- conf_network_card($netc, $intf, $type, $ipadr, $netadr) or return;
- $netc->{NET_INTERFACE}=$netc->{NET_DEVICE};
- configureNetwork($netc, $intf, $first_time) or return;
-# if ( $::isStandalone and $netc->{NET_DEVICE}) {
-# $in->ask_yesorno(_("Network interface"),
-# _("I'm about to restart the network device %s. Do you agree?", $netc->{NET_DEVICE}), 1) and system("$prefix/sbin/ifdown $netc->{NET_DEVICE}; $prefix/sbin/ifup $netc->{NET_DEVICE}");
-# }
- 1;
-}
-
-sub configureNetwork {
- my ($netc, $intf, $first_time) = @_;
- local $_;
- any::load_category($in, 'network/main|usb', !$::expert, 1);
- my @l = detect_devices::getNet() or die _("no network card found");
- my @all_cards = conf_network_card_backend ($netc, $intf, undef, undef, undef, undef);
-
- configureNetwork_step_1:
- my $n_card=0;
- $netc ||= {};
- my $last; foreach (@l) {
- my $intf2 = findIntf($intf ||= {}, $_);
- add2hash($intf2, $last);
- add2hash($intf2, { NETMASK => '255.255.255.0' });
- configureNetworkIntf($netc, $in, $intf2, $netc->{NET_DEVICE}, 0, $all_cards[$n_card]->[1]) or return;
-
- $last = $intf2;
- $n_card++;
- }
- #- {
- #- my $wait = $o->wait_message(_("Hostname"), _("Determining host name and domain..."));
- #- network::guessHostname($o->{prefix}, $o->{netc}, $o->{intf});
- #- }
- $last or return;
- if ($last->{BOOTPROTO} =~ /^(dhcp|bootp)$/) {
- $netc->{minus_one} = 1;
- my $dhcp_hostname = $netc->{HOSTNAME};
- $::isInstall and $in->set_help('configureNetworkHostDHCP');
- $in->ask_from(_("Configuring network"),
-_("Please enter your host name if you know it.
-Some DHCP servers require the hostname to work.
-Your host name should be a fully-qualified host name,
-such as ``mybox.mylab.myco.com''."),
- [ { label => _("Host name"), val => \$netc->{HOSTNAME} }]) or goto configureNetwork_step_1;
- $netc->{HOSTNAME} ne $dhcp_hostname and $netc->{DHCP_HOSTNAME} = $netc->{HOSTNAME};
- } else {
- configureNetworkNet($in, $netc, $last ||= {}, @l) or goto configureNetwork_step_1;
- }
- miscellaneousNetwork($in);
- 1;
-}
-
-1;
diff --git a/perl-install/network/isdn.pm b/perl-install/network/isdn.pm
deleted file mode 100644
index 1ab029b87..000000000
--- a/perl-install/network/isdn.pm
+++ /dev/null
@@ -1,276 +0,0 @@
-package network::isdn;
-
-use network::isdn_consts;
-use common;
-use any;
-use modules;
-use run_program;
-use log;
-use network::tools;
-use vars qw(@ISA @EXPORT);
-use MDK::Common::Globals "network", qw($in $prefix);
-use MDK::Common::File;
-@ISA = qw(Exporter);
-@EXPORT = qw(isdn_write_config isdn_write_config_backend get_info_providers_backend isdn_ask_info isdn_ask_protocol isdn_ask isdn_detect isdn_detect_backend isdn_get_list isdn_get_info);
-
-sub configure {
- my ($netcnx, $netc) = @_;
- isdn_step_1:
- defined $netc->{autodetect}{isdn}{id} and goto intern_pci;
- $::isInstall and $in->set_help('configureNetworkISDN');
- my $e = $in->ask_from_list_(_("Network Configuration Wizard"),
- _("What kind is your ISDN connection?"), [ __("Internal ISDN card"), __("External ISDN modem")]
- ) or return;
- if ($e =~ /card/) {
- intern_pci:
- $netc->{isdntype}='isdn_internal';
- $netcnx->{isdn_internal}={};
- $netcnx->{isdn_internal}{$_} = $netc->{autodetect}{isdn}{$_} foreach ('description', 'vendor', 'id', 'driver', 'card_type', 'type');
- isdn_detect($netcnx->{isdn_internal}, $netc) or return;
- } else {
- $netc->{isdntype}='isdn_external';
- $netcnx->{isdn_external}={};
- $netcnx->{isdn_external}{device}=$netc->{autodetect}{modem};
- $netcnx->{isdn_external}{special_command}='AT&F&O2B40';
- require network::modem;
- network::modem::pppConfig($netcnx->{isdn_external}, $mouse, $netc) or goto isdn_step_1;
- }
- 1;
-}
-
-sub isdn_write_config {
- my ($isdn, $netc) = @_;
- isdn_write_config_step_1:
- my $e = $in->ask_from_list_(_("Network Configuration Wizard"),
- _("Which ISDN configuration do you prefer?
-
-* The Old configuration uses isdn4net. It contains powerfull
- tools, but is tricky to configure, and not standard.
-
-* The New configuration is easier to understand, more
- standard, but with less tools.
-
-We recommand the light configuration.
-"), [ __("New configuration (isdn-light)"), __("Old configuration (isdn4net)")]
- ) or return;
- my ($rmpackage, $instpackage) = $e =~ /light/ ? ('isdn4net', 'isdn-light') : ('isdn-light', 'isdn4net');
- if (!$::isStandalone) {
- require pkgs;
- my $p = pkgs::packageByName($in->{packages}, $rmpackage);
- $p && $p->flag_selected and pkgs::unselectPackage($in->{packages}, $p);
- }
- run_program::rooted($prefix, "rpm", "-e", "$rmpackage");
- $in->do_pkgs->install($instpackage, if_($isdn->{speed} =~ /128/, 'ibod'), 'isdn4k-utils');
- my $light = $e =~ /light/ ? 1 : 0;
- isdn_write_config_backend($isdn, $light, $netc);
- 1;
-}
-
-sub isdn_write_config_backend {
- my ($isdn, $light, $netc, $netcnx) = @_;
- defined $netcnx and $netc->{isdntype} = $netcnx->{type};
- if ($light) {
- modules::mergein_conf("$prefix/etc/modules.conf");
- if ($isdn->{id}) {
- isdn_detect_backend($isdn);
- } else {
- my $a="";
- defined $isdn->{$_} and $a .= "$_=" . $isdn->{$_} . " " foreach qw(type protocol mem io io0 io1 irq);
- $isdn->{driver} eq "hisax" and $a.="id=HiSax";
- modules::set_options($isdn->{driver}, $a);
- }
- modules::add_alias("ippp0", $isdn->{driver});
- $::isStandalone and modules::write_conf($prefix);
- foreach my $f ('ioptions1B', 'ioptions2B') {
- substInFile { s/^name .*\n//; $_ .= "name $isdn->{login}\n" if eof } "$prefix/etc/ppp/$f";
- chmod 0600, $f;
- }
- foreach my $f ('isdn1B.conf', 'isdn2B.conf') {
- my $a=1;
- substInFile {
- s/EAZ =.*/EAZ = $isdn->{phone_in}/;
- s/PHONE_OUT =.*/PHONE_OUT = $isdn->{phone_out}/;
- if (/NAME = ippp0/ .. /PPPBIND = 0/) {
- s/HUPTIMEOUT =.*/HUPTIMEOUT = $isdn->{huptimeout}/;
- }
- } "$prefix/etc/isdn/$f";
- chmod 0600, $f;
- }
- my $bundle = $isdn->{speed} =~ /64/ ? "1B" : "2B";
- symlinkf("isdn" . $bundle . ".conf", "$prefix/etc/isdn/isdnctrl.conf");
- symlinkf("ioptions" . $bundle, "$prefix/etc/ppp/ioptions");
- } else {
- my $f = "$prefix/etc/isdn/profile/link/myisp";
- output ($f,
- qq(
-I4L_USERNAME="$isdn->{login}"
-I4L_SYSNAME=""
-I4L_LOCALMSN="$isdn->{phone_in}"
-I4L_REMOTE_OUT="$isdn->{phone_out}"
-I4L_DIALMODE="$isdn->{dialing_mode}"
-) . if_($isdn->{speed} =~ /128/, 'SLAVE="ippp1"
-'));
- chmod 0600, $f;
-
- output "$prefix/etc/isdn/profile/card/mycard",
- qq(
-I4L_MODULE="$isdn->{driver}"
-I4L_TYPE="$isdn->{type}"
-I4L_IRQ="$isdn->{irq}"
-I4L_MEMBASE="$isdn->{mem}"
-I4L_PORT="$isdn->{io}"
-I4L_IO0="$isdn->{io0}"
-I4L_IO1="$isdn->{io1}"
-I4L_ID="HiSax"
-I4L_FIRMWARE="$isdn->{firmware}"
-);
-
- output "$prefix/etc/ppp/ioptions",
- "lock
-usepeerdns
-defaultroute
-";
- system "$prefix/etc/rc.d/init.d/isdn4linux restart";
- }
-
- substInFile { s/^FIRMWARE.*\n//; $_ .= qq(FIRMWARE="$isdn->{firmware}"\n) if eof } "$prefix/etc/sysconfig/network-scripts/ifcfg-ippp0";
-
- write_secret_backend($isdn->{login}, $isdn->{passwd});
-
- write_cnx_script($netc, "isdn",
-"/sbin/route del default
-/sbin/ifup ippp0
-/sbin/isdnctrl dial ippp0
-" . if_($isdn->{speed} =~ /128/, "service ibod restart
-"),
-"/sbin/isdnctrl hangup ippp0
-/sbin/ifdown ippp0
-" . if_($isdn->{speed} =~ /128/, "service ibod stop
-"), $netc->{isdntype});
- 1;
-}
-
-sub get_info_providers_backend {
- my ($isdn, $netc, $name, $file) = @_;
- $name eq 'Unlisted - edit manually' and return;
- foreach (catMaybeCompressed($file)) {
- chop;
- my ($name_, $phone, $real, $dns1, $dns2) = split '=>';
- if ($name eq $name_) {
- @{$isdn}{qw(user_name phone_out DOMAINNAME2 dnsServer3 dnsServer2)} =
- ((split(/\|/, $name_))[2], $phone, $real, $dns1, $dns2);
- }
- }
-}
-
-sub isdn_ask_info {
- my ($isdn, $netc) = @_;
- my $f = "$ENV{SHARE_PATH}/ldetect-lst/isdn.db";
- $f = "$prefix$f" if !-e $f;
- my $str= $in->ask_from_treelist( _("ISDN Configuration"), _("Select your provider.\nIf it isn't listed, choose Unlisted."),
- '|', ['Unlisted - edit manually',
- read_providers_backend($f)], 'Unlisted - edit manually')
- or return;
- get_info_providers_backend($isdn, $netc, $str || 'Unlisted - edit manually', $f);
- $isdn->{huptimeout} = 180;
- $isdn->{$_} ||= '' foreach qw(phone_in phone_out dialing_mode login passwd passwd2 idl speed);
- add2hash($netc, { dnsServer2 => '', dnsServer3 => '', DOMAINNAME2 => '' });
- ask_info2($isdn, $netc);
-}
-
-sub isdn_ask_protocol {
- my @toto=(
- { description => $::expert ? _("Europe protocol (EDSS1)") : _("Europe protocol"),
- protokol => 2},
- { description => $::expert ? _("Protocol for the rest of the world\nNo D-Channel (leased lines)") : _("Protocol for the rest of the world"),
- protokol => 3}
- );
- my $e = $in->ask_from_listf(_("ISDN Configuration"),
- _("Which protocol do you want to use?"),
- sub { $_[0]{description} },
- \@toto ) or return 0;
- $e->{protokol};
-}
-
-sub isdn_ask {
- my ($isdn, $netc, $label) = @_;
- isdn_ask_step_1:
- my $e = $in->ask_from_list_(_("ISDN Configuration"),
- $label . "\n" . _("What kind of card do you have?"),
- [ __("ISA / PCMCIA"), __("PCI"), __("I don't know") ]
- ) or return;
- if ($e =~ /PCI/) {
- $isdn->{card_type} = 'pci';
- } else {
- $in->ask_from_list_(_("ISDN Configuration"),
- _("
-If you have an ISA card, the values on the next screen should be right.\n
-If you have a PCMCIA card, you have to know the \"irq\" and \"io\" of your card.
-"),
- [ __("Continue"), __("Abort") ]) eq 'Continue' or goto isdn_ask_step_1;
- $isdn->{card_type} = 'isa';
- }
-
- isdn_ask_step_2:
- $e = $in->ask_from_listf(_("ISDN Configuration"),
- _("Which is your ISDN card?"),
- sub { $_[0]{description} },
- [ grep {$_->{card} eq $isdn->{card_type}; } @isdndata ] ) or goto isdn_ask_step_1;
- $e->{$_} and $isdn->{$_} = $e->{$_} foreach qw(driver type mem io io0 io1 irq firmware);
-
- isdn_ask_step_3:
- $isdn->{protocol} = isdn_ask_protocol() or goto isdn_ask_step_2;
- isdn_ask_step_4:
- isdn_ask_info($isdn, $netc) or goto isdn_ask_step_3;
- isdn_write_config($isdn, $netc) or goto isdn_ask_step_4;
- 1;
-}
-
-sub isdn_detect {
- my ($isdn, $netc) = @_;
- if ($isdn->{id}) {
- log::l("found isdn card : $isdn->{description}; vendor : $isdn->{vendor};id : $isdn->{id}; driver : $isdn->{driver}\n");
- $isdn->{description} =~ s/\|/ -- /;
- if ($isdn->{type} eq '') {
- isdn_ask($isdn, $netc, _("I have detected an ISDN PCI card, but I don't know its type. Please select a PCI card on the next screen.")) or return;
- } else {
- isdn_detect_step_1:
- $isdn->{protocol}=isdn_ask_protocol() or return;
- isdn_detect_step_2:
- isdn_ask_info($isdn, $netc) or goto isdn_detect_step_1;
- isdn_write_config($isdn, $netc) or goto isdn_detect_step_2;
- }
- } else {
- isdn_ask($isdn, $netc, _("No ISDN PCI card found. Please select one on the next screen.")) or return;
- }
- $netc->{$_}='ippp0' foreach 'NET_DEVICE', 'NET_INTERFACE';
- 1;
-}
-
-sub isdn_detect_backend {
- my ($isdn) = @_;
- if (my ($c) = (modules::probe_category('network/isdn'))) {
- $isdn->{$_} = $c->{$_} foreach qw(description vendor id driver options firmware);
- $isdn->{$_} = sprintf("%0x", $isdn->{$_}) foreach ('vendor', 'id');
- $isdn->{card_type} = 'pci';
- ($isdn->{type}) = $isdn->{options} =~ /type=(\d+)/;
-# $c->{options} !~ /id=HiSax/ && $isdn->{driver} eq "hisax" and $c->{options} .= " id=HiSax";
- if ($c->{options} !~ /protocol=/ && $isdn->{protocol} =~ /\d/) {
- modules::set_options($c->{driver}, $c->{options} . " protocol=" . $isdn->{protocol});
- }
- $c->{options} =~ /protocol=(\d)/ and $isdn->{protocol} = $1;
- }
-}
-
-sub isdn_get_list {
- map { $_->{description} } @isdndata;
-}
-
-sub isdn_get_info {
- my ($desc) = @_;
- foreach (@isdndata) {
- return $_ if ($_->{description} eq $desc);
- }
-}
-
-1;
diff --git a/perl-install/network/isdn_consts.pm b/perl-install/network/isdn_consts.pm
deleted file mode 100644
index 357da529a..000000000
--- a/perl-install/network/isdn_consts.pm
+++ /dev/null
@@ -1,326 +0,0 @@
-package network::isdn; # $Id$
-
-@isdndata =
- (
- {description => "Teles 16.0 (ISA)", #1 irq, mem, io
- driver => 'hisax',
- type => '1',
- irq => '5',
- mem => '0xd000',
- io => '0xd80',
- card => 'isa',
- },
- {description => "Teles 8.0 (ISA)", #2 irq, mem
- driver => 'hisax',
- type => '2',
- irq => '9',
- mem => '0xd800',
- card => 'isa',
- },
- {description => "Teles 16.3 (ISA non PnP)", #3 irq, io
- driver => 'hisax',
- type => '3',
- irq => '9',
- io => '0xd80',
- card => 'isa',
- },
- {description => "Teles 16.3c (ISA PnP)", #14 irq, io
- driver => 'hisax',
- type => '14',
- irq => '9',
- io => '0xd80',
- card => 'isa',
- },
- {description => "Creatix/Teles (ISA PnP)", #4 irq, io0 (ISAC), io1 (HSCX)
- driver => 'hisax',
- type => '4',
- irq => '5',
- io0 => '0x0000',
- io1 => '0x0000',
- card => 'isa',
- },
- {description => "Teles generic (PCI)", #21 no parameter
- driver => 'hisax',
- type => '21',
- card => 'pci',
- },
- {description => "Teles 16.3 (PCMCIA)", #8 irq, io
- driver => 'hisax',
- type => '8',
- irq => '',
- io => '0x',
- card => 'isa',
- },
- {description => "Teles S0Box", #25 irq, io (of the used lpt port)
- driver => 'hisax',
- type => '25',
- irq => '7',
- io => '0x378',
- card => 'isa',
- },
- {description => "ELSA PCC/PCF cards (ISA)", #6 io or nothing for autodetect (the io is required only if you have n>1 ELSA card )
- driver => 'hisax',
- type => '6',
- io => "",
- card => 'isa',
- },
- {description => "ELSA Quickstep 1000 (ISA)", #7 irq, io (from isapnp setup)
- driver => 'hisax',
- type => '7',
- irq => '5',
- io => '0x300',
- card => 'isa',
- },
- {description => "ELSA Quickstep 1000 (PCI)", #18 no parameter
- driver => 'hisax',
- type => '18',
- card => 'pci',
- },
- {description => "ELSA Quickstep 3000 (PCI)", #18 no parameter
- driver => 'hisax',
- type => '18',
- card => 'pci',
- },
- {description => "ELSA generic (PCMCIA)", #10 irq, io (set with card manager)
- driver => 'hisax',
- type => '10',
- irq => '',
- io => '0x',
- card => 'isa',
- },
- {description => "ELSA MicroLink (PCMCIA)", #10 irq, io (set with card manager)
- driver => 'elsa_cs',
- card => 'isa',
- },
- {description => "ITK ix1-micro Rev.2 (ISA)", #9 irq, io
- driver => 'hisax',
- type => '9',
- irq => '9',
- io => '0xd80',
- card => 'isa',
- },
- {description => "Eicon.Diehl Diva (ISA PnP)", #11 irq, io
- driver => 'hisax',
- type => '11',
- irq => '9',
- io => '0x180',
- card => 'isa',
- },
- {description => "Eicon.Diehl Diva 20 (PCI)", #11 no parameter
- driver => 'hisax',
- type => '11',
- card => 'pci',
- },
- {description => "Eicon.Diehl Diva 20PRO (PCI)", #11 no parameter
- driver => 'hisax',
- type => '11',
- card => 'pci',
- },
- {description => "Eicon.Diehl Diva 20_U (PCI)", #11 no parameter
- driver => 'hisax',
- type => '11',
- card => 'pci',
- },
- {description => "Eicon.Diehl Diva 20PRO_U (PCI)", #11 no parameter
- driver => 'hisax',
- type => '11',
- card => 'pci',
- },
- {description => "ASUS COM ISDNLink (ISA)", #12 irq, io (from isapnp setup)
- driver => 'hisax',
- type => '12',
- irq => '5',
- io => '0x200',
- card => 'isa',
- },
- {description => "ASUS COM ISDNLink (PCI)",
- driver => 'hisax',
- type => '35',
- card => 'pci',
- },
- {description => "DynaLink (PCI)",
- driver => 'hisax',
- type => '12',
- card => 'pci',
- },
- {description => "DynaLink IS64PH, ASUSCOM (PCI)", #36
- driver => 'hisax',
- type => '36',
- card => 'pci',
- },
- {description => "HFC-2BS0 based cards (ISA)", #13 irq, io
- driver => 'hisax',
- type => '13',
- irq => '9',
- io => '0xd80',
- card => 'isa',
- },
- {description => "HFC 2BDS0 (PCI)", #35 none
- driver => 'hisax',
- type => '35',
- card => 'pci',
- },
- {description => "HFC 2BDS0 S+, SP (PCMCIA)", #37 irq,io (pcmcia must be set with cardmgr)
- driver => 'hisax',
- type => '37',
- card => 'isa',
- },
- {description => "Sedlbauer Speed Card (ISA)", #15 irq, io
- driver => 'hisax',
- type => '15',
- irq => '9',
- io=> '0xd80',
- card => 'isa',
- },
- {description => "Sedlbauer PC/104 (ISA)", #15 irq, io
- driver => 'hisax',
- type => '15',
- irq => '9',
- io => '0xd80',
- card => 'isa',
- },
- {description => "Sedlbauer Speed Card (PCI)", #15 no parameter
- driver => 'hisax',
- type => '15',
- card => 'pci',
- },
- {description => "Sedlbauer Speed Star (PCMCIA)", #22 irq, io (set with card manager)
- driver => 'sedlbauer_cs',
- card => 'isa',
- },
- {description => "Sedlbauer Speed Fax+ (ISA Pnp)", #28 irq, io (from isapnp setup)
- driver => 'hisax',
- type => '28',
- irq => '9',
- io => '0xd80',
- card => 'isa',
- firmware => '/usr/lib/isdn/ISAR.BIN',
- },
- {description => "Sedlbauer Speed Fax+ (PCI)", #28 no parameter
- driver => 'hisax',
- type => '28',
- card => 'pci',
- firmware => '/usr/lib/isdn/ISAR.BIN',
- },
- {description => "USR Sportster internal (ISA)", #16 irq, io
- driver => 'hisax',
- type => '16',
- irq => '9',
- io=> '0xd80',
- card => 'isa',
- },
- {description => "MIC card (ISA)", #17 irq, io
- driver => 'hisax',
- type => '17',
- irq => '9',
- io => '0xd80',
- card => 'isa',
- },
- {description => "Compaq ISDN S0 card (ISA)", #19 irq, io0, io1, io (from isapnp setup io=IO2)
- driver => 'hisax',
- type => '19',
- irq => '5',
- io => '0x0000',
- io0 => '0x0000',
- io1 => '0x0000',
- card => 'isa',
- },
- {description => "NETjet card (PCI)", #20 no parameter
- driver => 'hisax',
- type => '20',
- card => 'pci',
- },
- {description => "Dr. Neuhaus Niccy (ISA PnP)", #24 irq, io0, io1 (from isapnp setup)
- driver => 'hisax',
- type => '24',
- irq => '5',
- io0 => '0x0000',
- io1 => '0x0000',
- card => 'isa',
- },
- {description => "Dr. Neuhaus Niccy (PCI)", ##24 no parameter
- driver => 'hisax',
- type => '24',
- card => 'pci',
- },
- {description => "AVM A1 (Fritz) (ISA non PnP)", #5 irq, io
- driver => 'hisax',
- type => '5',
- irq => '10',
- io => '0x300',
- card => 'isa',
- },
- {description => "AVM (ISA Pnp)", #27 irq, io (from isapnp setup)
- driver => 'hisax',
- type => '27',
- irq => '5',
- io => '0x300',
- card => 'isa',
- },
- {description => "AVM A1 (Fritz) (PCMCIA)", #26 irq, io (set with card manager)
- driver => 'hisax',
- type => '26',
- irq => '',
- card => 'isa',
- },
- {description => "AVM PCI (Fritz!) (PCI)", #27 no parameter
- driver => 'hisax',
- type => '27',
- card => 'pci',
- },
- {description => "AVM B1 (PCI)",
- driver => 'b1pci',
- card => 'pci',
- },
- {description => "Siemens I-Surf 1.0 (ISA Pnp)", #29 irq, io, memory (from isapnp setup)
- driver => 'hisax',
- type => '29',
- irq => '9',
- io => '0xd80',
- mem => '0xd000',
- card => 'isa',
- },
- {description => "ACER P10 (ISA Pnp)", #30 irq, io (from isapnp setup)
- driver => 'hisax',
- type => '30',
- irq => '5',
- io => '0x300',
- card => 'isa',
- },
- {description => "HST Saphir (ISA Pnp)", #31 irq, io
- driver => 'hisax',
- type => '31',
- irq => '5',
- io => '0x300',
- card => 'isa',
- },
- {description => "Telekom A4T (PCI)", #32 none
- driver => 'hisax',
- type => '32',
- card => 'pci',
- },
- {description => "Scitel Quadro (PCI)", #33 subcontroller (4*S0, subctrl 1...4)
- driver => 'hisax',
- type => '33',
- card => 'pci',
- },
- {description => "Gazel ISDN cards (ISA)", #34 irq,io
- driver => 'hisax',
- type => '34',
- irq => '5',
- io => '0x300',
- card => 'isa',
- },
- {description => "Gazel ISDN cards (PCI)", #34 none
- driver => 'hisax',
- type => '34',
- card => 'pci',
- },
- {description => "W6692 and Winbond based cards (PCI)", #36 none
- driver => 'hisax',
- type => '36',
- card => 'pci',
- },
- );
-
-1;
diff --git a/perl-install/network/modem.pm b/perl-install/network/modem.pm
deleted file mode 100644
index 046ebbf8d..000000000
--- a/perl-install/network/modem.pm
+++ /dev/null
@@ -1,91 +0,0 @@
-package network::modem;
-
-use common;
-use any;
-use modules;
-use detect_devices;
-use mouse;
-use network::tools;
-use vars qw(@ISA @EXPORT);
-use MDK::Common::Globals "network", qw($in $prefix);
-
-@ISA = qw(Exporter);
-@EXPORT = qw(pppConfig modem_detect_backend);
-
-sub configure{
- my ($netcnx, $mouse, $netc) = @_;
- $netcnx->{type}='modem';
- $netcnx->{$netcnx->{type}}={};
- $netcnx->{modem}{device}=$netc->{autodetect}{modem};
- modem_step_1:
- pppConfig($netcnx->{$netcnx->{type}}, $mouse, $netc) or return;
- write_cnx_script($netc, "modem",
-q(
-/sbin/route del default
-ifup ppp0
-),
-q(ifdown ppp0
-killall pppd
-), $netcnx->{type});
- 1;
-}
-
-sub pppConfig {
- my ($modem, $mouse, $netc) = @_;
-
- $mouse ||={};
- $mouse->{device} ||= readlink "$prefix/dev/mouse";
- $::isInstall and $in->set_help('selectSerialPort');
- $modem->{device} ||= $in->ask_from_listf('', _("Please choose which serial port your modem is connected to."),
- \&mouse::serial_port2text,
- [ grep { $_ ne $mouse->{device} } (mouse::serial_ports, if_(-e '/dev/modem', '/dev/modem')) ]) || return;
-
- $::isStandalone || $in->set_help('configureNetworkISP');
- $in->ask_from('', _("Dialup options"), [
-{ label => _("Connection name"), val => \$modem->{connection} },
-{ label => _("Phone number"), val => \$modem->{phone} },
-{ label => _("Login ID"), val => \$modem->{login} },
-{ label => _("Password"), val => \$modem->{passwd}, hidden => 1 },
-{ label => _("Authentication"), val => \$modem->{auth}, list => [ __("PAP"), __("Terminal-based"), __("Script-based"), __("CHAP") ] },
-{ label => _("Domain name"), val => \$modem->{domain} },
-{ label => _("First DNS Server (optional)"), val => \$modem->{dns1} },
-{ label => _("Second DNS Server (optional)"), val => \$modem->{dns2} },
- ]) or return;
- $netc->{DOMAINNAME2} = $modem->{domain};
- any::pppConfig($in, $modem, $prefix);
- $netc->{$_}='ppp0' foreach 'NET_DEVICE', 'NET_INTERFACE';
- 1;
-}
-#-AT&F&O2B40
-#- DialString=ATDT0231389595((
-
-#- modem_detect_backend : detects modem on serial ports and fills the infos in $modem : detects only one card
-#- input
-#- $modem
-#- $mouse : facultative, hash containing device to exclude not to test mouse port : ( device => /ttyS[0-9]/ )
-#- output:
-#- $modem->{device} : device where the modem were detected
-sub modem_detect_backend {
- my ($modem, $mouse) = @_;
- $mouse ||={};
- $mouse->{device} ||= readlink "/dev/mouse";
- my $serdev = arch() =~ /ppc/ ? "macserial" : "serial";
- eval { modules::load("$serdev") };
-
- detect_devices::probeSerialDevices();
- foreach ('modem', map { "ttyS$_" } (0..7)) {
- next if $mouse->{device} =~ /$_/;
- next unless -e "/dev/$_";
- detect_devices::hasModem("/dev/$_") and $modem->{device} = "$_", last;
- }
-
- #- add an alias for macserial on PPC
- modules::add_alias('serial', $serdev) if (arch() =~ /ppc/ && $modem->{device});
- my @devs = detect_devices::pcmcia_probe();
- foreach (@devs) {
- $_->{type} =~ /serial/ and $modem->{device} = $_->{device};
- }
-
-}
-
-1;
diff --git a/perl-install/network/netconnect.pm b/perl-install/network/netconnect.pm
deleted file mode 100644
index 2edf23245..000000000
--- a/perl-install/network/netconnect.pm
+++ /dev/null
@@ -1,629 +0,0 @@
-
-package network::netconnect;
-
-use diagnostics;
-use strict;
-use vars qw($isdn_init @isdndata @EXPORT);
-
-use common;
-use log;
-use detect_devices;
-use run_program;
-use modules;
-use any;
-use mouse;
-use network;
-
-use network::tools;
-use MDK::Common::Globals "network", qw($in $prefix $connect_file $disconnect_file $connect_prog);
-
-@EXPORT = qw(start_internet stop_internet);
-
-#- intro is called only in standalone.
-sub intro {
- my ($prefix, $netcnx, $in) = @_;
- my ($netc, $mouse, $intf) = ({}, {}, {});
- my $text;
- my $connected;
- my $connect_file = "/etc/sysconfig/network-scripts/net_cnx_up";
- my $disconnect_file = "/etc/sysconfig/network-scripts/net_cnx_down";
- my $connect_prog = "/etc/sysconfig/network-scripts/net_cnx_pg";
- read_net_conf($prefix, $netcnx, $netc);
- if (!$::isWizard) {
- if (connected()) {
- $text=_("You are currently connected to internet.") . (-e $disconnect_file ? _("\nYou can disconnect or reconfigure your connection.") : _("\nYou can reconfigure your connection."));
- $connected=1;
- } else {
- $text=_("You are not currently connected to Internet.") . (-e $connect_file ? _("\nYou can connect to Internet or reconfigure your connection.") : _("\nYou can reconfigure your connection."));
- $connected=0;
- }
- my @l=(
- !$connected && -e $connect_file ? { description => _("Connect"),
- c => 1} : (),
- $connected && -e $disconnect_file ? { description => _("Disconnect"),
- c => 2} : (),
- { description => _("Configure the connection"),
- c => 3},
- { description => _("Cancel"),
- c => 4},
- );
- my $e = $in->ask_from_listf(_("Internet connection & configuration"),
- _($text),
- sub { $_[0]{description} },
- \@l );
- run_program::rooted($prefix, $connect_prog) if ($e->{c}==1);
- run_program::rooted($prefix, $disconnect_file) if ($e->{c}==2);
- main($prefix, $netcnx, $netc, $mouse, $in, $intf, 0, 0) if ($e->{c}==3);
- $in->exit(0) if ($e->{c}==4);
- } else {
- main($prefix, $netcnx, $netc, $mouse, $in, $intf, 0, 0);
- }
-}
-
-sub detect {
- my ($auto_detect, $net_install) = @_;
- my $isdn={};
- require network::isdn;
- network::isdn->import;
- isdn_detect_backend($isdn);
- $auto_detect->{isdn}{$_}=$isdn->{$_} foreach qw(description vendor id driver card_type type);
- $auto_detect->{isdn}{description} =~ s/.*\|//;
-
- modules::load_category('network/main|usb');
- require network::ethernet;
- network::ethernet->import;
- my @all_cards = conf_network_card_backend (undef, undef, undef, undef, undef, undef);
- require network::adsl;
- network::adsl->import;
- map {
- ( !$net_install and adsl_detect($_->[0]) ) ? $auto_detect->{adsl}=$_->[0] : $auto_detect->{lan}{$_->[0]}=$_->[1]; } @all_cards;
- my $modem={};
- require network::modem;
- network::modem->import;
- modem_detect_backend($modem);#, $mouse);
- $modem->{device} and $auto_detect->{modem}=$modem->{device};
-}
-
-sub pre_func {
- my ($text) = @_;
- $in->isa('interactive_gtk') or return;
- $::Wizard_no_previous=1;
- if ($::isStandalone) {
- $::Wizard_splash=1;
- require my_gtk;
- my_gtk->import(qw(:wrappers));
- my $W = my_gtk->new(_("Network Configuration Wizard"));
- gtkadd($W->{window},
- gtkpack_(new Gtk::VBox(0, 0),
- 1, write_on_pixmap(gtkpng ("drakconnect_step"),
- 20,200,
- _("We are now going to configure the %s connection.",_($text)),
- ),
- 0, $W->create_okcancel(_("OK"))
- )
- );
- $W->main;
- $::Wizard_splash=0;
- } else {
- #- for i18n : %s is the type of connection of the list: (modem, isdn, adsl, cable, local network);
- $in->ask_okcancel(_("Network Configuration Wizard"), _("\n\n\nWe are now going to configure the %s connection.\n\n\nPress OK to continue.",_($_[0])), 1);
- }
- undef $::Wizard_no_previous;
-}
-
-sub init_globals {
- my ($in, $prefix) = @_;
- MDK::Common::Globals::init(
- in => $in,
- prefix => $prefix,
- connect_file => "/etc/sysconfig/network-scripts/net_cnx_up",
- disconnect_file => "/etc/sysconfig/network-scripts/net_cnx_down",
- connect_prog => "/etc/sysconfig/network-scripts/net_cnx_pg" );
-}
-
-sub main {
- my ($prefix, $netcnx, $netc, $mouse, $in, $intf, $first_time, $direct_fr, $noauto) = @_;
- init_globals ($in, $prefix);
- $netc->{minus_one}=0; #When one configure an eth in dhcp without gateway
- $::isInstall and $in->set_help('configureNetwork');
- $::isStandalone and read_net_conf($prefix, $netcnx, $netc); # REDONDANCE with intro. FIXME
- $netc->{NET_DEVICE}=$netcnx->{NET_DEVICE} if $netcnx->{NET_DEVICE}; # REDONDANCE with read_conf. FIXME
- $netc->{NET_INTERFACE}=$netcnx->{NET_INTERFACE} if $netcnx->{NET_INTERFACE}; # REDONDANCE with read_conf. FIXME
- network::read_all_conf($prefix, $netc ||= {}, $intf ||= {});
-
- modules::mergein_conf("$prefix/etc/modules.conf");
-
- my $direct_net_install;
- if ($first_time && $::isInstall && ($in->{method} eq "ftp" || $in->{method} eq "http" || $in->{method} eq "nfs")) {
- (!($::expert || $noauto) or $in->ask_okcancel(_("Network Configuration"),
- _("Because you are doing a network installation, your network is already configured.
-Click on Ok to keep your configuration, or cancel to reconfigure your Internet & Network connection.
-"), 1)) and do {
- $netcnx->{type}='lan';
- output "$prefix$connect_file",
- qq(
-ifup eth0
-);
- output "$prefix$disconnect_file",
- qq(
-ifdown eth0
-);
- chmod 0755, "$prefix$disconnect_file";
- chmod 0755, "$prefix$connect_file";
- $direct_net_install = 1;
- goto step_5;
-};
- }
-
- $netc->{autodetection}=1;
- $netc->{autodetect}={};
-
- step_1:
- $::Wizard_no_previous=1;
- my @profiles=get_profiles();
- $in->ask_from(_("Network Configuration Wizard"),
- _("Welcome to The Network Configuration Wizard.
-
-We are about to configure your internet/network connection.
-If you don't want to use the auto detection, deselect the checkbox.
-"),
- [
- if_(@profiles > 1, { label => _("Choose the profile to configure"), val => \$netcnx->{PROFILE}, list => \@profiles }),
- { label => _("Use auto detection"), val => \$netc->{autodetection}, type => 'bool' },
- if_($::isStandalone, { label => _("Expert Mode"), val => \$::expert, type => 'bool' }),
- ]
- ) or goto step_5;
- undef $::Wizard_no_previous;
- set_profile($netcnx);
- if ($netc->{autodetection}) {
- my $w = $in->wait_message(_("Network Configuration Wizard"), _("Detecting devices..."));
- detect($netc->{autodetect}, $::isInstall && ($in->{method} eq "ftp" || $in->{method} eq "http" || $in->{method} eq "nfs"));
- }
-
- step_2:
-
- my $set_default;
- my %conf;
- $conf{$_} = $netc->{autodetect}{$_} ? 1 : 0 foreach 'modem', 'adsl', 'cable', 'lan';
- $conf{isdn} = $netc->{autodetect}{isdn}{description} ? 1: 0;
- my @l = (
- [_("Normal modem connection"), $netc->{autodetect}{modem}, __("detected on port %s"), \$conf{modem}],
- [_("ISDN connection"), $netc->{autodetect}{isdn}{description}, __("detected %s"), \$conf{isdn}],
- [_("ADSL connection"), $netc->{autodetect}{adsl}, __("detected on interface %s"), \$conf{adsl}],
- [_("Cable connection"), $netc->{autodetect}{cable}, __("cable connection detected"), \$conf{cable}],
- [_("LAN connection"), $netc->{autodetect}{lan}, __("ethernet card(s) detected"), \$conf{lan}]
- );
- my $i=0;
- map { defined $set_default or do { $_->[1] and $set_default=$i; }; $i++; } @l;
- @l = (
-[_("Normal modem connection") . if_($netc->{autodetect}{modem}, " - " . _("detected on port %s", $netc->{autodetect}{modem})), \$conf{modem}],
-[_("ISDN connection") . if_($netc->{autodetect}{isdn}{description}, " - " . _("detected %s", $netc->{autodetect}{isdn}{description})), \$conf{isdn}],
-[_("ADSL connection") . if_($netc->{autodetect}{adsl}, " - " . _("detected on interface %s", $netc->{autodetect}{adsl})), \$conf{adsl}],
-[_("Cable connection") . if_($netc->{autodetect}{cable}, " - " . _("cable connection detected")), \$conf{cable}],
-[_("LAN connection") . if_($netc->{autodetect}{lan}, " - " . _("ethernet card(s) detected")), \$conf{lan}]
-);
- $::isInstall and $in->set_help('configureNetwork');
- my $e = $in->ask_from(_("Network Configuration Wizard"), _("Choose the connection you want to configure"),
- [ map { { label => $_->[0], val => $_->[1], type => 'bool' } } @l ],
- changed => sub {
- return if !$netc->{autodetection};
- my $c = 0;
-#- $conf{adsl} and $c++;
- $conf{cable} and $c++;
- my $a = keys(%{$netc->{autodetect}{lan}});
- 0 < $a && $a <= $c and $conf{lan} = undef;
- }
- ) or goto step_1;
-
-# load_conf ($netcnx, $netc, $intf);
- $conf{modem} and do { pre_func("modem"); require network::modem; network::modem::configure($netcnx, $mouse, $netc) or goto step_2 };
- $conf{isdn} and do { pre_func("isdn"); require network::isdn; network::isdn::configure($netcnx, $netc) or goto step_2 };
- $conf{adsl} and do { pre_func("adsl"); require network::adsl; network::adsl::configure($netcnx, $netc, $intf, $first_time) or goto step_2};
- $conf{cable} and do { pre_func("cable"); require network::ethernet; network::ethernet::configure_cable($netcnx, $netc, $intf, $first_time) or goto step_2; $netconnect::need_restart_network = 1; };
- $conf{lan} and do { pre_func("local network"); require network::ethernet; network::ethernet::configure_lan($netcnx, $netc, $intf, $first_time) or goto step_2; $netconnect::need_restart_network = 1; };
-
- step_2_1:
- my $nb = keys %{$netc->{internet_cnx}};
- if ($nb < 1) {
- } elsif ($nb > 1) {
- $in->ask_from(_("Network Configuration Wizard"),
- _("You have configured multiple ways to connect to the Internet.\nChoose the one you want to use.\n\n" . if_(!$::isStandalone, "You may want to configure some profiles after the installation, in the Mandrake Control Center")),
- [ { label => _("Internet connection"), val => \$netc->{internet_cnx_choice}, list => [ keys %{$netc->{internet_cnx}} ]} ]
- ) or goto step_2;
- } elsif ($nb == 1) {
- $netc->{internet_cnx_choice} = (keys %{$netc->{internet_cnx}})[0];
- }
- member($netc->{internet_cnx_choice}, ('adsl', 'isdn')) and
- $netc->{at_boot} = $in->ask_yesorno(_("Network Configuration Wizard"), _("Do you want to start the connection at boot?"));
- if ($netc->{internet_cnx_choice} ) {
- write_cnx_script($netc);
- $netcnx->{type} = $netc->{internet_cnx}{$netc->{internet_cnx_choice}}{type};
- } else {
- unlink "$prefix/etc/sysconfig/network-scripts/net_cnx_up";
- unlink "$prefix/etc/sysconfig/network-scripts/net_cnx_down";
- undef $netc->{NET_DEVICE};
- }
-
- my $success = 1;
- network::configureNetwork2($in, $prefix, $netc, $intf);
- my $network_configured = 1;
-
- if ($netconnect::need_restart_network && $::isStandalone and ($::expert or $in->ask_yesorno(_("Network configuration"),
- _("The network needs to be restarted"), 1))) {
-#- run_program::rooted($prefix, "/etc/rc.d/init.d/network stop");
- if (!run_program::rooted($prefix, "/etc/rc.d/init.d/network restart")) {
- $success = 0;
- $in->ask_okcancel(_("Network Configuration"), _("A problem occured while restarting the network: \n\n%s", `/etc/rc.d/init.d/network restart`), 0);
- }
- }
-
- write_initscript();
- $::isStandalone && member($netc->{internet_cnx_choice}, ('modem', 'adsl', 'isdn')) and
- $success = ask_connect_now($netc->{internet_cnx_choice});
-
- step_3:
-
- my $m = $success ? _("Congratulations, the network and Internet configuration is finished.
-The configuration will now be applied to your system.
-
-") . if_($::isStandalone && $in->isa('interactive_gtk'),
-_("After this is done, we recommend that you restart your X environment to avoid any hostname-related problems."))
- : _("Problems occured during configuration.
-Test your connection via net_monitor or mcc. If your connection doesn't work, you might want to relaunch the configuration.");
- if ($::isWizard) {
- $::Wizard_no_previous=1;
- $::Wizard_finished=1;
- $in->ask_okcancel(_("Network Configuration"), $m, 1);
- undef $::Wizard_no_previous;
- undef $::Wizard_finished;
- } else { $::isStandalone and $in->ask_warn('', $m ); }
-
- step_5:
-
- $network_configured or network::configureNetwork2($in, $prefix, $netc, $intf);
-
- if ($netcnx->{type} =~ /modem/ || $netcnx->{type} =~ /isdn_external/) {
- output "$prefix$connect_prog",
- qq(
-#!/bin/bash
-if [ -n "\$DISPLAY" ]; then
-if [ -e /usr/bin/kppp ]; then
-/sbin/route del default
-/usr/bin/kppp &
-else
-/usr/sbin/net_monitor --connect
-fi
-else
-$connect_file
-fi
-);
- } elsif ($netcnx->{type}) {
- output "$prefix$connect_prog",
- qq(
-#!/bin/bash
-if [ -n "\$DISPLAY" ]; then
-/usr/sbin/net_monitor --connect
-else
-$connect_file
-fi
-);
- } else {
- output "$prefix$connect_prog",
- qq(
-#!/bin/bash
-/usr/sbin/drakconnect
-);
- }
- if ($direct_net_install) {
- output "$prefix$connect_prog",
- qq(
-#!/bin/bash
-if [ -n "\$DISPLAY" ]; then
-/usr/sbin/net_monitor --connect
-else
-$connect_file
-fi
-);
- }
- chmod 0755, "$prefix$connect_prog";
- $netcnx->{$_}=$netc->{$_} foreach qw(NET_DEVICE NET_INTERFACE);
-
- $netcnx->{NET_INTERFACE} and set_net_conf($netcnx, $netc);
- $netcnx->{type} =~ /adsl/ or system("/sbin/chkconfig --del adsl 2> /dev/null");
- save_conf($netcnx, $netc, $intf);
-
-#- if ($netc->{NET_DEVICE} and $netc->{NETWORKING} ne 'no' and $::isStandalone and $::expert) {
-#- exists $netc->{nb_cards} or do {
-#- any::load_category($in, 'network/main|usb', !$::expert, 1);
-#- $netc->{nb_cards} = listlength(detect_devices::getNet());
-#- };
-#- ($netc->{nb_cards} - $netc->{minus_one} - (get_net_device($prefix) =~ /eth.+/ ? 1 : 0) > 0) and $in->ask_okcancel(_("Network Configuration"),
-#-_("Now that your Internet connection is configured,
-#-your computer can be configured to share its Internet connection.
-#-Note: you need a dedicated Network Adapter to set up a Local Area Network (LAN).
-#-
-#-Would you like to setup the Internet Connection Sharing?
-#-"), 1) and system("/usr/sbin/drakgw --direct");
-#- }
-}
-
-sub save_conf {
- my ($netcnx, $netc, $intf)=@_;
- my $adsl;
- my $modem;
- my $isdn;
- $netcnx->{type} =~ /adsl/ and $adsl=$netcnx->{$netcnx->{type}};
- $netcnx->{type} eq 'isdn_external' || $netcnx->{type} eq 'modem' and $modem=$netcnx->{$netcnx->{type}};
- $netcnx->{type} eq 'isdn_internal' and $isdn=$netcnx->{$netcnx->{type}};
- modules::load_category('network/main|usb');
- require network::ethernet;
- network::ethernet->import;
- my @all_cards = conf_network_card_backend ($netc, $intf, undef, undef, undef, undef);
-
- $intf = { %$intf };
-
- output("$prefix/etc/sysconfig/network-scripts/drakconnect_conf",
- "SystemName=" . do { $netc->{HOSTNAME} =~ /([^\.]*)\./; $1 } . "
-DomainName=" . do { $netc->{HOSTNAME} =~ /\.(.*)/; $1 } . "
-InternetAccessType=" . do { if ($netcnx->{type}) { $netcnx->{type}; } else { $netc->{GATEWAY} ? "lan" : ""; } } . "
-InternetInterface=" . ($netc->{GATEWAY} && (!$netcnx->{type} || $netcnx->{type} eq 'lan') ? $netc->{NET_DEVICE} : $netcnx->{NET_INTERFACE}) . "
-InternetGateway=$netc->{GATEWAY}
-DNSPrimaryIP=$netc->{dnsServer}
-DNSSecondaryIP=$netc->{dnsServer2}
-DNSThirdIP=$netc->{dnsServer3}
-AdminInterface=
-
-" . join ('', map {
-"Eth${_}Known=" . ($intf->{"eth$_"}->{DEVICE} eq "eth$_" ? 'true' : 'false') . "
-Eth${_}IP=" . $intf->{"eth$_"}{IPADDR} . "
-Eth${_}Mask=" . $intf->{"eth$_"}{NETMASK} . "
-Eth${_}Mac=
-Eth${_}BootProto=" . $intf->{"eth$_"}{BOOTPROTO} . "
-Eth${_}OnBoot=" . $intf->{"eth$_"}{ONBOOT} . "
-Eth${_}Hostname=$netc->{HOSTNAME}
-Eth${_}HostAlias=" . do { $netc->{HOSTNAME} =~ /([^\.]*)\./; $1 } . "
-Eth${_}Driver=$all_cards[$_]->[1]
-Eth${_}Irq=
-Eth${_}Port=
-Eth${_}DHCPClient=" . ($intf->{"eth$_"}{BOOTPROTO} eq 'dhcp' ? $netcnx->{dhcp_client} : '') . "
-Eth${_}DHCPServerName=" . ($intf->{"eth$_"}{BOOTPROTO} eq 'dhcp' ? $netc->{HOSTNAME} : '') . "\n"
- } (0..9)) .
-"
-
-ISDNDriver=$isdn->{driver}
-ISDNDeviceType=$isdn->{type}
-ISDNIrq=$isdn->{irq}
-ISDNMem=$isdn->{mem}
-ISDNIo=$isdn->{io}
-ISDNIo0=$isdn->{io0}
-ISDNIo1=$isdn->{io1}
-ISDNProtocol=$isdn->{protocol}
-ISDNCardDescription=$isdn->{description}
-ISDNCardVendor=$isdn->{vendor}
-ISDNId=$isdn->{id}
-ISDNProvider=$netc->{DOMAINNAME2}
-ISDNProviderPhone=$isdn->{phone_out}
-ISDNProviderDomain=" . do { $netc->{DOMAINNAME2} =~ /\.(.*)/; $1} . "
-ISDNProviderDNS1=$netc->{dnsServer2}
-ISDNProviderDNS2=$netc->{dnsServer3}
-ISDNDialing=$isdn->{dialing_mode}
-ISDNSpeed=$isdn->{speed}
-ISDNTimeout=$isdn->{huptimeout}
-ISDNHomePhone=$isdn->{phone_in}
-ISDNLogin=$isdn->{login}
-ISDNPassword=$isdn->{passwd}
-ISDNConfirmPassword=$isdn->{passwd2}
-
-PPPInterfacesList=
-PPPDevice=$modem->{device}
-PPPDeviceSpeed=
-PPPConnectionName=$modem->{connection}
-PPPProviderPhone=$modem->{phone}
-PPPProviderDomain=$modem->{domain}
-PPPProviderDNS1=$modem->{dns1}
-PPPProviderDNS2=$modem->{dns2}
-PPPLogin=$modem->{login}
-PPPPassword=$modem->{passwd}
-PPPConfirmPassword=$modem->{passwd}
-PPPAuthentication=$modem->{auth}
-PPPSpecialCommand=" . ($netcnx->{type} eq 'isdn_external' ? $netcnx->{isdn_external}{special_command} : '' ) . "
-
-ADSLInterfacesList=
-ADSLModem=" . q( # Obsolete information. Please don't use it.) . "
-ADSLType=" . ($netcnx->{type} =~ /adsl/ ? $netcnx->{type} : '') . "
-ADSLProviderDomain=$netc->{DOMAINNAME2}
-ADSLProviderDNS1=$netc->{dnsServer2}
-ADSLProviderDNS2=$netc->{dnsServer3}
-ADSLLogin=$adsl->{login}
-ADSLPassword=$adsl->{passwd}
-DOMAINNAME2=$netc->{DOMAINNAME2}"
- );
- chmod 0600, "$prefix/etc/sysconfig/network-scripts/drakconnect_conf";
- my $a = $netcnx->{PROFILE} ? $netcnx->{PROFILE} : "default";
- cp_af("$prefix/etc/sysconfig/network-scripts/drakconnect_conf", "$prefix/etc/sysconfig/network-scripts/drakconnect_conf." . $a);
- chmod 0600, "$prefix/etc/sysconfig/network-scripts/drakconnect_conf";
- chmod 0600, "$prefix/etc/sysconfig/network-scripts/drakconnect_conf." . $a;
- foreach ( ["$prefix$connect_file", "up"],
- ["$prefix$disconnect_file", "down"],
- ["$prefix$connect_prog", "prog"],
- ["$prefix/etc/ppp/ioptions1B", "iop1B"],
- ["$prefix/etc/ppp/ioptions2B", "iop2B"],
- ["$prefix/etc/isdn/isdn1B.conf", "isdn1B"],
- ["$prefix/etc/isdn/isdn2B.conf", "isdn2B"],
- ["$prefix/etc/resolv.conf", "resolv"],
- ["$prefix/etc/ppp/peers/adsl", "speedtouch"],
- ) {
- my $file = "$prefix/etc/sysconfig/network-scripts/net_" . $_->[1] . "." . $a;
- -e ($_->[0]) and cp_af($_->[0], $file) and chmod 0755, $file;
- }
-}
-
-sub set_profile {
- my ($netcnx, $profile) = @_;
- $profile ||= $netcnx->{PROFILE};
- $profile or return;
- my $f = "$prefix/etc/sysconfig/network-scripts/drakconnect_conf";
- -e ($f . "." . $profile) or return;
- $netcnx->{PROFILE}=$profile;
- cp_af($f . "." . $profile, $f);
- foreach ( ["$prefix$connect_file", "up"],
- ["$prefix$disconnect_file", "down"],
- ["$prefix$connect_prog", "prog"],
- ["$prefix/etc/ppp/ioptions1B", "iop1B"],
- ["$prefix/etc/ppp/ioptions2B", "iop2B"],
- ["$prefix/etc/isdn/isdn1B.conf", "isdn1B"],
- ["$prefix/etc/isdn/isdn2B.conf", "isdn2B"],
- ["$prefix/etc/resolv.conf", "resolv"],
- ["$prefix/etc/ppp/peers/adsl", "speedtouch"],
- ) {
- my $c = "$prefix/etc/sysconfig/network-scripts/net_" . $_->[1] . "." . $profile;
- -e ($c) and cp_af($c, $_->[0]);
- }
-}
-
-sub del_profile {
- my ($netcnx, $profile) = @_;
- $profile or return;
- $profile eq "default" and return;
- rm_rf("$prefix/etc/sysconfig/network-scripts/drakconnect_conf." . $profile);
- rm_rf(glob_("$prefix/etc/sysconfig/network-scripts/net_{up,down,prog,iop1B,iop2B,isdn1B,isdn2B,resolv,speedtouch}." . $profile));
-}
-
-sub add_profile {
- my ($netcnx, $profile) = @_;
- $profile or return;
- $profile eq "default" and return;
- my $cmd1 = "$prefix/etc/sysconfig/network-scripts/drakconnect_conf." . ($netcnx->{PROFILE} ? $netcnx->{PROFILE} : "default");
- my $cmd2 = "$prefix/etc/sysconfig/network-scripts/drakconnect_conf." . $profile;
- cp_af($cmd1, $cmd2);
-}
-
-sub get_profiles {
- my @a;
- my $i=0;
- foreach (glob("/etc/sysconfig/network-scripts/drakconnect_conf.*")) {
- s/.*\.//;
- $a[$i] = $_;
- $i++;
- }
- @a;
-}
-
-sub load_conf {
- my ($netcnx, $netc, $intf)=@_;
- my $adsl_pptp={};
- my $adsl_pppoe={};
- my $modem={};
- my $isdn_external={};
- my $isdn={};
- my $system_name;
- my $domain_name;
-
- if (-e "$prefix/etc/sysconfig/network-scripts/drakconnect_conf") {
- foreach (cat_("$prefix/etc/sysconfig/network-scripts/drakconnect_conf")) {
- /^DNSPrimaryIP=(.*)$/ and $netc->{dnsServer} = $1;
- /^DNSSecondaryIP=(.*)$/ and $netc->{dnsServer2} = $1;
- /^DNSThirdIP=(.*)$/ and $netc->{dnsServer3} = $1;
- /^InternetAccessType=(.*)$/ and $netcnx->{type} = $1;
- /^InternetInterface=(.*)$/ and $netcnx->{NET_INTERFACE} = $1;
- /^InternetGateway=(.*)$/ and $netc->{GATEWAY} = $1;
- /^SystemName=(.*)$/ and $system_name = $1;
- /^DomainName=(.*)$/ and $domain_name = $1;
- /^Eth([0-9])Known=true$/ and $intf->{"eth$1"}->{DEVICE} = "eth$1";
- /^Eth([0-9])IP=(.*)$/ && $intf->{"eth$1"}->{DEVICE} and $intf->{"eth$1"}{IPADDR} = $2;
- /^Eth([0-9])Mask=(.*)\n/ && $intf->{"eth$1"}->{DEVICE} and $intf->{"eth$1"}{NETMASK} = $2;
- /^Eth([0-9])BootProto=(.*)\n/ && $intf->{"eth$1"}->{DEVICE} and $intf->{"eth$1"}{BOOTPROTO} = $2;
- /^Eth([0-9])OnBoot=(.*)\n/ && $intf->{"eth$1"}->{DEVICE} and $intf->{"eth$1"}{ONBOOT} = $2;
- /^Eth([0-9])Hostname=(.*)\n/ && $intf->{"eth$1"}->{DEVICE} and $netc->{HOSTNAME} = $2;
- /^Eth([0-9])Driver=(.*)\n/ && $intf->{"eth$1"}->{DEVICE} and $intf->{"eth$1"}{driver} = $2;
- /^ISDNDriver=(.*)$/ and $isdn->{driver} = $1;
- /^ISDNDeviceType=(.*)$/ and $isdn->{type} = $1;
- /^ISDNIrq=(.*)/ and $isdn->{irq} = $1;
- /^ISDNMem=(.*)$/ and $isdn->{mem} = $1;
- /^ISDNIo=(.*)$/ and $isdn->{io} = $1;
- /^ISDNIo0=(.*)$/ and $isdn->{io0} = $1;
- /^ISDNIo1=(.*)$/ and $isdn->{io1} = $1;
- /^ISDNProtocol=(.*)$/ and $isdn->{protocol} = $1;
- /^ISDNCardDescription=(.*)$/ and $isdn->{description} = $1;
- /^ISDNCardVendor=(.*)$/ and $isdn->{vendor} = $1;
- /^ISDNId=(.*)$/ and $isdn->{id} = $1;
- /^ISDNProviderPhone=(.*)$/ and $isdn->{phone_out} = $1;
- /^ISDNDialing=(.*)$/ and $isdn->{dialing_mode} = $1;
- /^ISDNISDNSpeed=(.*)$/ and $isdn->{speed} = $1;
- /^ISDNTimeout=(.*)$/ and $isdn->{huptimeout} = $1;
- /^ISDNHomePhone=(.*)$/ and $isdn->{phone_in} = $1;
- /^ISDNLogin=(.*)$/ and $isdn->{login} = $1;
- /^ISDNPassword=(.*)$/ and $isdn->{passwd} = $1;
- /^ISDNConfirmPassword=(.*)$/ and $isdn->{passwd2} = $1;
-
- /^PPPDevice=(.*)$/ and $modem->{device} = $1;
- /^PPPConnectionName=(.*)$/ and $modem->{connection} = $1;
- /^PPPProviderPhone=(.*)$/ and $modem->{phone} = $1;
- /^PPPProviderDomain=(.*)$/ and $modem->{domain} = $1;
- /^PPPProviderDNS1=(.*)$/ and $modem->{dns1} = $1;
- /^PPPProviderDNS2=(.*)$/ and $modem->{dns2} = $1;
- /^PPPLogin=(.*)$/ and $modem->{login} = $1;
- /^PPPPassword=(.*)$/ and $modem->{passwd} = $1;
- /^PPPAuthentication=(.*)$/ and $modem->{auth} = $1;
- if (/^PPPSpecialCommand=(.*)$/) {
- $netcnx->{type} eq 'isdn_external' and $netcnx->{$netcnx->{type}}{special_command} = $1;
- }
- /^ADSLLogin=(.*)$/ and $adsl_pppoe->{login} = $1;
- /^ADSLPassword=(.*)$/ and $adsl_pppoe->{passwd} = $1;
- /^DOMAINNAME2=(.*)$/ and $netc->{DOMAINNAME2} = $1;
- }
- }
- $system_name && $domain_name and $netc->{HOSTNAME}=join ('.', $system_name, $domain_name);
- $adsl_pptp->{$_}=$adsl_pppoe->{$_} foreach ('login', 'passwd', 'passwd2');
- $isdn_external->{$_}=$modem->{$_} foreach ('device', 'connection', 'phone', 'domain', 'dns1', 'dns2', 'login', 'passwd', 'auth');
- $netcnx->{adsl_pptp}=$adsl_pptp;
- $netcnx->{adsl_pppoe}=$adsl_pppoe;
- $netcnx->{modem}=$modem;
- $netcnx->{modem}=$isdn_external;
- $netcnx->{isdn_internal}=$isdn;
- -e "$prefix/etc/sysconfig/network" and put_in_hash($netc,network::read_conf("$prefix/etc/sysconfig/network"));
- foreach (glob_("$prefix/etc/sysconfig/ifcfg-*")) {
- my $l = network::read_interface_conf($_);
- $intf->{$l->{DEVICE}} = $l;
- }
- my $file = "$prefix/etc/resolv.conf";
- if (-e $file) {
- put_in_hash($netc, network::read_resolv_conf($file));
- }
-}
-
-sub get_net_device {
- ${{ getVarsFromSh("/etc/sysconfig/drakconnect") }}{NET_DEVICE};
-}
-
-sub read_net_conf {
- my ($prefix, $netcnx, $netc)=@_;
- add2hash($netcnx, { getVarsFromSh("$prefix/etc/sysconfig/drakconnect") });
- $netc->{$_} = $netcnx->{$_} foreach 'NET_DEVICE', 'NET_INTERFACE';
- $netcnx->{$netcnx->{type}}||={};
- add2hash($netcnx->{$netcnx->{type}}, { getVarsFromSh("$prefix/etc/sysconfig/drakconnect." . $netcnx->{type}) });
-}
-
-sub set_net_conf {
- my ($netcnx, $netc)=@_;
- setVarsInShMode("$prefix/etc/sysconfig/drakconnect", 0600, $netcnx, "NET_DEVICE", "NET_INTERFACE", "type", "PROFILE" );
- setVarsInShMode("$prefix/etc/sysconfig/drakconnect." . $netcnx->{type}, 0600, $netcnx->{$netcnx->{type}}); #- doesn't work, don't know why
- setVarsInShMode("$prefix/etc/sysconfig/drakconnect.netc", 0600, $netc); #- doesn't work, don't know why
-}
-
-sub start_internet {
- my ($o) = @_;
- init_globals ($o, $o->{prefix});
- run_program::rooted($prefix, $connect_file);
-}
-
-sub stop_internet {
- my ($o) = @_;
- init_globals ($o, $o->{prefix});
- run_program::rooted($prefix, $disconnect_file);
-}
-
-#---------------------------------------------
-# WONDERFULL pad
-#---------------------------------------------
-1;
diff --git a/perl-install/network/network.pm b/perl-install/network/network.pm
deleted file mode 100644
index 60d8ffd41..000000000
--- a/perl-install/network/network.pm
+++ /dev/null
@@ -1,460 +0,0 @@
-package network::network; # $Id$wir
-
-use diagnostics;
-use strict;
-
-#-######################################################################################
-#- misc imports
-#-######################################################################################
-use Socket;
-
-use common;
-use detect_devices;
-use run_program;
-use any;
-use log;
-use vars qw(@ISA @EXPORT);
-
-@ISA = qw(Exporter);
-@EXPORT = qw(resolv configureNetworkIntf netmask dns is_ip masked_ip findIntf addDefaultRoute all write_interface_conf read_all_conf dnsServers guessHostname configureNetworkNet read_resolv_conf getVarsFromSh read_interface_conf add2hosts gateway configureNetwork2 write_conf sethostname miscellaneousNetwork down_it read_conf write_resolv_conf up_it);
-
-#-######################################################################################
-#- Functions
-#-######################################################################################
-sub read_conf {
- my ($file) = @_;
- my %netc = getVarsFromSh($file);
- \%netc;
-}
-
-sub read_resolv_conf {
- my ($file) = @_;
- my @l = qw(dnsServer dnsServer2 dnsServer3);
- my %netc;
-
- local *F; open F, $file or die "cannot open $file: $!";
- local $_;
- while (<F>) {
- /^\s*nameserver\s+(\S+)/ and $netc{shift @l} = $1;
- }
- \%netc;
-}
-
-sub read_interface_conf {
- my ($file) = @_;
- my %intf = getVarsFromSh($file) or die "cannot open file $file: $!";
-
- $intf{BOOTPROTO} ||= 'static';
- $intf{isPtp} = $intf{NETWORK} eq '255.255.255.255';
- $intf{isUp} = 1;
- \%intf;
-}
-
-sub up_it {
- my ($prefix, $intfs) = @_;
- $_->{isUp} and return foreach values %$intfs;
- my $f = "/etc/resolv.conf"; symlink "$prefix/$f", $f;
- run_program::rooted($prefix, "/etc/rc.d/init.d/network", "start");
- $_->{isUp} = 1 foreach values %$intfs;
-}
-
-sub down_it {
- my ($prefix, $intfs) = @_;
- run_program::rooted($prefix, "/etc/rc.d/init.d/network", "stop");
- $_->{isUp} = 1 foreach values %$intfs;
-}
-
-sub write_conf {
- my ($file, $netc) = @_;
-
- if ($netc->{HOSTNAME}) {
- $netc->{HOSTNAME} =~ /\.(.*)$/;
- $1 and $netc->{DOMAINNAME} = $1;
- }
- ($netc->{DOMAINNAME}) ||= 'localdomain';
- add2hash($netc, {
- NETWORKING => "yes",
- FORWARD_IPV4 => "false",
- HOSTNAME => "localhost.$netc->{DOMAINNAME}",
- });
-
- setVarsInSh($file, $netc, qw(NETWORKING FORWARD_IPV4 DHCP_HOSTNAME HOSTNAME DOMAINNAME GATEWAY GATEWAYDEV NISDOMAIN));
-}
-
-sub write_resolv_conf {
- my ($file, $netc) = @_;
-
- #- get the list of used dns.
- my %used_dns; @used_dns{$netc->{dnsServer}, $netc->{dnsServer2}, $netc->{dnsServer3}} = (1, 2, 3);
-
- unless ($netc->{DOMAINNAME} || $netc->{DOMAINNAME2} || keys %used_dns > 0) {
- unlink($file);
- log::l("neither domain name nor dns server are configured");
- return 0;
- }
-
- my (%search, %dns, @unknown);
- local *F; open F, $file;
- local $_;
-#- my $options;
- while (<F>) {
-#- if (/^[\s]*(options\s+[^#]*).*$/) { $options = $1; $options =~ s/timeout:\d+/timeout:1/; next }
- /^[#\s]*search\s+(.*?)\s*$/ and $search{$1} = $., next;
- /^[#\s]*nameserver\s+(.*?)\s*$/ and $dns{$1} = $., next;
- /^.*# ppp temp entry\s*$/ and next;
- /^[#\s]*(\S.*?)\s*$/ and push @unknown, $1;
- }
-#- $options ||= "options timeout:1";
-
- close F; open F, ">$file" or die "cannot write $file: $!";
- print F "# search $_\n" foreach grep { $_ ne "$netc->{DOMAINNAME} $netc->{DOMAINNAME2}" } sort { $search{$a} <=> $search{$b} } keys %search;
- print F "search $netc->{DOMAINNAME} $netc->{DOMAINNAME2}\n" if ($netc->{DOMAINNAME} || $netc->{DOMAINNAME2});
-#- print F "$options\n\n";
- print F "# nameserver $_\n" foreach grep { ! exists $used_dns{$_} } sort { $dns{$a} <=> $dns{$b} } keys %dns;
- print F "nameserver $_\n" foreach sort { $used_dns{$a} <=> $used_dns{$b} } grep { $_ } keys %used_dns;
- print F "\n";
- print F "# $_\n" foreach @unknown;
- print F "\n";
- print F "# ppp temp entry\n";
-
- #-res_init(); # reinit the resolver so DNS changes take affect
- 1;
-}
-
-sub write_interface_conf {
- my ($file, $intf, $prefix) = @_;
-
- my @ip = split '\.', $intf->{IPADDR};
- my @mask = split '\.', $intf->{NETMASK};
- my $hwaddr;
- $::o->{miscellaneous}{track_network_id} and $hwaddr = -e "$prefix/sbin/ip" && `LC_ALL= LANG= $prefix/sbin/ip -o link show $intf->{DEVICE} 2>/dev/null`;
- if ($hwaddr) { chomp $hwaddr; $hwaddr =~ s/.*link\/ether\s([0-9a-z:]+)\s.*/$1/; }
- $hwaddr and $intf->{HWADDR} = undef;
- add2hash($intf, {
- BROADCAST => join('.', mapn { int $_[0] | ~int $_[1] & 255 } \@ip, \@mask),
- NETWORK => join('.', mapn { int $_[0] & $_[1] } \@ip, \@mask),
- ONBOOT => bool2yesno(!member($intf->{DEVICE}, map { $_->{device} } detect_devices::probeall())),
- if_($::o->{miscellaneous}{track_network_id}, HWADDR => $hwaddr)
- });
- setVarsInSh($file, $intf, qw(DEVICE BOOTPROTO IPADDR NETMASK NETWORK BROADCAST ONBOOT HWADDR), ($intf->{wireless_eth}) ? qw(WIRELESS_MODE WIRELESS_ESSID WIRELESS_NWID WIRELESS_FREQ WIRELESS_SENS WIRELESS_RATE WIRELESS_ENC_KEY WIRELESS_RTS WIRELESS_FRAG WIRELESS_IWCONFIG WIRELESS_IWSPY WIRELESS_IWPRIV) : ());
-}
-
-sub add2hosts {
- my ($file, $hostname, @ips) = @_;
- my %l;
- $l{$_} = $hostname foreach @ips;
-
- local *F;
- if (-e $file) {
- open F, $file or die "cannot open $file: $!";
- /\s*(\S+)(.*)/ and $l{$1} ||= $2 foreach <F>;
- }
- log::l("writing host information to $file");
- open F, ">$file" or die "cannot write $file: $!";
- while (my ($ip, $v) = each %l) {
- $ip or next;
- print F "$ip";
- if ($v =~ /^\s/) {
- print F $v;
- } else {
- print F "\t\t$v";
- print F " $1" if $v =~ /(.*?)\./;
- }
- print F "\n";
- }
-}
-
-# The interface/gateway needs to be configured before this will work!
-sub guessHostname {
- my ($prefix, $netc, $intf) = @_;
-
- $intf->{isUp} && dnsServers($netc) or return 0;
- $netc->{HOSTNAME} && $netc->{DOMAINNAME} and return 1;
-
- write_resolv_conf("$prefix/etc/resolv.conf", $netc);
-
- my $name = gethostbyaddr(Socket::inet_aton($intf->{IPADDR}), AF_INET) or log::l("reverse name lookup failed"), return 0;
-
- log::l("reverse name lookup worked");
-
- add2hash($netc, { HOSTNAME => $name });
- 1;
-}
-
-sub addDefaultRoute {
- my ($netc) = @_;
- c::addDefaultRoute($netc->{GATEWAY}) if $netc->{GATEWAY};
-}
-
-sub sethostname {
- my ($netc) = @_;
- syscall_('sethostname', $netc->{HOSTNAME}, length $netc->{HOSTNAME}) or log::l("sethostname failed: $!");
-}
-
-sub resolv($) {
- my ($name) = @_;
- is_ip($name) and return $name;
- my $a = join(".", unpack "C4", (gethostbyname $name)[4]);
- #-log::l("resolved $name in $a");
- $a;
-}
-
-sub dnsServers {
- my ($netc) = @_;
- my %used_dns; @used_dns{$netc->{dnsServer}, $netc->{dnsServer2}, $netc->{dnsServer3}} = (1, 2, 3);
- sort { $used_dns{$a} <=> $used_dns{$b} } grep { $_ } keys %used_dns;
-}
-
-sub findIntf {
- my ($intf, $device) = @_;
- $intf->{$device}->{DEVICE} = $device;
- $intf->{$device};
-}
-#PAD \s* a la fin
-my $ip_regexp = qr/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;
-sub is_ip {
- my ($ip) = @_;
- return 0 unless $ip =~ $ip_regexp;
- my @fields = ($1, $2, $3, $4);
- foreach (@fields) {
- return 0 if $_ < 0 || $_ > 255;
- }
- return 1;
-}
-
-sub netmask {
- my ($ip) = @_;
- return "255.255.255.0" unless is_ip($ip);
- $ip =~ $ip_regexp;
- if ($1 >= 1 && $1 < 127) {
- return "255.0.0.0"; #-1.0.0.0 to 127.0.0.0
- } elsif ($1 >= 128 && $1 <= 191 ){
- return "255.255.0.0"; #-128.0.0.0 to 191.255.0.0
- } elsif ($1 >= 192 && $1 <= 223) {
- return "255.255.255.0";
- } else {
- return "255.255.255.255"; #-experimental classes
- }
-}
-
-sub masked_ip {
- my ($ip) = @_;
- return "" unless is_ip($ip);
- my @mask = netmask($ip) =~ $ip_regexp;
- my @ip = $ip =~ $ip_regexp;
- for (my $i = 0; $i < @ip; $i++) {
- $ip[$i] &= int $mask[$i];
- }
- join(".", @ip);
-}
-
-sub dns {
- my ($ip) = @_;
- my $mask = masked_ip($ip);
- my @masked = masked_ip($ip) =~ $ip_regexp;
- $masked[3] = 2;
- join (".", @masked);
-
-}
-sub gateway {
- my ($ip) = @_;
- my @masked = masked_ip($ip) =~ $ip_regexp;
- $masked[3] = 1;
- join (".", @masked);
-
-}
-
-sub configureNetworkIntf {
- my ($netc, $in, $intf, $net_device, $skip, $module) = @_;
- my $text;
- my @wireless_modules = qw(aironet_cs aironet4500_cs hermes airo orinico_cs orinico airo_cs netwave_cs ray_cs wavelan_cs wvlan_cs airport);
- my $flag = 0;
- foreach (@wireless_modules) {
- $module =~ /$_/ and $flag =1;
- }
- if ($flag) {
- $intf->{wireless_eth} = 1;
- $netc->{wireless_eth} = 1;
- $intf->{WIRELESS_MODE} = "Managed";
- $intf->{WIRELESS_ESSID} = "any";
-#- $intf->{WIRELESS_NWID} = "";
-#- $intf->{WIRELESS_FREQ} = "";
-#- $intf->{WIRELESS_SENS} = "";
-#- $intf->{WIRELESS_RATE} = "";
-#- $intf->{WIRELESS_ENC_KEY} = "";
-#- $intf->{WIRELESS_RTS} = "";
-#- $intf->{WIRELESS_FRAG} = "";
-#- $intf->{WIRELESS_IWCONFIG} = "";
-#- $intf->{WIRELESS_IWSPY} = "";
-#- $intf->{WIRELESS_IWPRIV} = "";
- }
- if ($net_device eq $intf->{DEVICE}) {
- $skip and return 1;
- $text = _("WARNING: this device has been previously configured to connect to the Internet.
-Simply accept to keep this device configured.
-Modifying the fields below will override this configuration.");
- }
- else {
- $text = _("Please enter the IP configuration for this machine.
-Each item should be entered as an IP address in dotted-decimal
-notation (for example, 1.2.3.4).");
- }
- my $pump = $intf->{BOOTPROTO} =~ /^(dhcp|bootp)$/;
- delete $intf->{NETWORK};
- delete $intf->{BROADCAST};
- my $onboot = 1;
- my @fields = qw(IPADDR NETMASK);
- $::isStandalone or $in->set_help('configureNetworkIP');
- $in->ask_from(_("Configuring network device %s", $intf->{DEVICE}),
- (_("Configuring network device %s", $intf->{DEVICE}) . ( $module ? _(" (driver %s)", $module) : '' ) ."\n\n") .
- $text,
- [ { label => _("IP address"), val => \$intf->{IPADDR}, disabled => sub { $pump } },
- { label => _("Netmask"), val => \$intf->{NETMASK}, disabled => sub { $pump } },
- { label => _("Automatic IP"), val => \$pump, type => "bool", text => _("(bootp/dhcp)") },
- if_($::expert, { label => _("Start at boot"), val => \$onboot, type => "bool" }),
- if_($intf->{wireless_eth},
- { label => "WIRELESS_MODE", val => \$intf->{WIRELESS_MODE}, list => [ "Ad-hoc", "Managed", "Master", "Repeater", "Secondary", "Auto"] },
- { label => "WIRELESS_ESSID", val => \$intf->{WIRELESS_ESSID} },
- { label => "WIRELESS_NWID", val => \$intf->{WIRELESS_NWID} },
- { label => "WIRELESS_FREQ", val => \$intf->{WIRELESS_FREQ} },
- { label => "WIRELESS_SENS", val => \$intf->{WIRELESS_SENS} },
- { label => "WIRELESS_RATE", val => \$intf->{WIRELESS_RATE} },
- { label => "WIRELESS_ENC_KEY", val => \$intf->{WIRELESS_ENC_KEY} },
- { label => "WIRELESS_RTS", val => \$intf->{WIRELESS_RTS} },
- { label => "WIRELESS_FRAG", val => \$intf->{WIRELESS_FRAG} },
- { label => "WIRELESS_IWCONFIG", val => \$intf->{WIRELESS_IWCONFIG} },
- { label => "WIRELESS_IWSPY", val => \$intf->{WIRELESS_IWSPY} },
- { label => "WIRELESS_IWPRIV", val => \$intf->{WIRELESS_IWPRIV} }
- ),
- ],
- complete => sub {
- $intf->{BOOTPROTO} = $pump ? "dhcp" : "static";
- return 0 if $pump;
- for (my $i = 0; $i < @fields; $i++) {
- unless (is_ip($intf->{$fields[$i]})) {
- $in->ask_warn('', _("IP address should be in format 1.2.3.4"));
- return (1,$i);
- }
- return 0;
- }
- if ($intf->{WIRELESS_FREQ} !~ /[0-9.]*[kGM]/) {
- $in->ask_warn('', _('Freq should have the suffix k, M or G (for example, "2.46G" for 2.46 GHz frequency), or add enough \'0\'.'));
- return (1,6);
- }
- if ($intf->{WIRELESS_RATE} !~ /[0-9.]*[kGM]/) {
- $in->ask_warn('', _('Rate should have the suffix k, M or G (for example, "11M" for 11M), or add enough \'0\'.'));
- return (1,8);
- }
- },
- focus_out => sub {
- $intf->{NETMASK} ||= netmask($intf->{IPADDR}) unless $_[0]
- }
- );
- $intf->{ONBOOT} = bool2yesno($onboot);
-}
-
-sub configureNetworkNet {
- my ($in, $netc, $intf, @devices) = @_;
-
- $netc->{dnsServer} ||= dns($intf->{IPADDR});
- my $gateway_ex = gateway($intf->{IPADDR});
-#- $netc->{GATEWAY} ||= gateway($intf->{IPADDR});
-
- $::isInstall and $in->set_help('configureNetworkHost');
- $in->ask_from(_("Configuring network"),
-_("Please enter your host name.
-Your host name should be a fully-qualified host name,
-such as ``mybox.mylab.myco.com''.
-You may also enter the IP address of the gateway if you have one"),
- [ { label => _("Host name"), val => \$netc->{HOSTNAME} },
- { label => _("DNS server"), val => \$netc->{dnsServer} },
- { label => _("Gateway (e.g. %s)", $gateway_ex), val => \$netc->{GATEWAY} },
- if_(@devices > 1,
- { label => _("Gateway device"), val => \$netc->{GATEWAYDEV}, list => \@devices },
- ),
- ],
- );
-}
-
-sub miscellaneousNetwork {
- my ($in, $clicked, $no_track_net) = @_;
- my $u = $::o->{miscellaneous} ||= {};
- $::isInstall and $in->set_help('configureNetworkProxy');
- $u->{track_network_id} = detect_devices::isLaptop();
- $::expert || $clicked and $in->ask_from('',
- _("Proxies configuration"),
- [ { label => _("HTTP proxy"), val => \$u->{http_proxy} },
- { label => _("FTP proxy"), val => \$u->{ftp_proxy} },
- if_(!$no_track_net, { label => _("Track network card id (useful for laptops)"), val => \$u->{track_network_id}, type => "bool" }),
- ],
- complete => sub {
- $u->{http_proxy} =~ m,^($|http://), or $in->ask_warn('', _("Proxy should be http://...")), return 1,0;
- $u->{ftp_proxy} =~ m,^($|ftp://), or $in->ask_warn('', _("Proxy should be ftp://...")), return 1,1;
- 0;
- }
- ) || return;
-}
-
-sub read_all_conf {
- my ($prefix, $netc, $intf) = @_;
- $netc ||= {}; $intf ||= {};
- add2hash($netc, read_conf("$prefix/etc/sysconfig/network")) if -r "$prefix/etc/sysconfig/network";
- add2hash($netc, read_resolv_conf("$prefix/etc/resolv.conf")) if -r "$prefix/etc/resolv.conf";
- foreach (all("$prefix/etc/sysconfig/network-scripts")) {
- if (/ifcfg-(\w+)/ && $1 ne 'lo' && $1 !~ /ppp/) {
- my $intf = findIntf($intf, $1);
- add2hash($intf, { getVarsFromSh("$prefix/etc/sysconfig/network-scripts/$_") });
- }
- }
-}
-
-#- configureNetwork2 : configure the network interfaces.
-#- input
-#- $prefix
-#- $netc
-#- $intf
-#- $netc input
-#- NETWORKING : networking flag : string : "yes" by default
-#- FORWARD_IPV4 : forward IP flag : string : "false" by default
-#- HOSTNAME : hostname : string : "localhost.localdomain" by default
-#- DOMAINNAME : domainname : string : $netc->{HOSTNAME} =~ /\.(.*)/ by default
-#- DOMAINNAME2 : well it's another domainname : have to look further why we used 2
-#- The following are facultatives
-#- DHCP_HOSTNAME : If you have a dhcp and want to set the hostname
-#- GATEWAY : gateway
-#- GATEWAYDEV : gateway interface
-#- NISDOMAIN : nis domain
-#- $netc->{dnsServer} : dns server 1
-#- $netc->{dnsServer2} : dns server 2
-#- $netc->{dnsServer3} : dns server 3 : note that we uses the dns1 for the LAN, and the 2 others for the internet conx
-#- $intf input: for each $device (for example ethx)
-#- $intf->{$device}{IPADDR} : IP address
-#- $intf->{$device}{NETMASK} : netmask
-#- $intf->{$device}{DEVICE} : DEVICE = $device
-#- $intf->{$device}{BOOTPROTO} : boot prototype : "bootp" or "dhcp" or "pump" or ...
-sub configureNetwork2 {
- my ($in, $prefix, $netc, $intf) = @_;
- my $etc = "$prefix/etc";
-
- $netc->{wireless_eth} and $in->do_pkgs->install(qw(wireless-tools));
- write_conf("$etc/sysconfig/network", $netc);
- write_resolv_conf("$etc/resolv.conf", $netc);
- write_interface_conf("$etc/sysconfig/network-scripts/ifcfg-$_->{DEVICE}", $_, $prefix) foreach grep { $_->{DEVICE} } values %$intf;
- add2hosts("$etc/hosts", $netc->{HOSTNAME}, map { $_->{IPADDR} } values %$intf);
-
- if (grep { $_->{BOOTPROTO} =~ /^(dhcp)$/ } values %$intf) {
- $in->do_pkgs->install($netc->{dhcp_client} ? $netc->{dhcp_client} : 'dhcpcd');
- }
- if (grep { $_->{BOOTPROTO} =~ /^(pump|bootp)$/ } values %$intf) {
- $in->do_pkgs->install('pump');
- }
- #-res_init(); #- reinit the resolver so DNS changes take affect
-
- any::miscellaneousNetwork($prefix);
-}
-
-
-#-######################################################################################
-#- Wonderful perl :(
-#-######################################################################################
-1;
diff --git a/perl-install/network/nfs.pm b/perl-install/network/nfs.pm
deleted file mode 100644
index 58b2dab28..000000000
--- a/perl-install/network/nfs.pm
+++ /dev/null
@@ -1,66 +0,0 @@
-package network::nfs; # $Id$
-
-use strict;
-use diagnostics;
-
-use common;
-use network::network;
-use network::smbnfs;
-use log;
-
-our @ISA = 'network::smbnfs';
-
-sub to_fstab_entry {
- my ($class, $e) = @_;
- $class->to_fstab_entry_raw($e, 'nfs');
-}
-sub comment_to_string {
- my ($class, $comment) = @_;
- member($comment, qw(* 0.0.0.0/0.0.0.0 (everyone))) ? '' : $comment;
-}
-sub from_dev {
- my ($class, $dev) = @_;
- $dev =~ m|(.*?):(.*)|;
-}
-sub to_dev_raw {
- my ($class, $server, $name) = @_;
- $server . ':' . $name;
-}
-
-sub check {
- my ($class, $in) = @_;
- $class->raw_check($in, 'nfs-utils-clients', '/usr/sbin/showmount');
-}
-
-sub find_servers {
- local *F;
- my $pid = open F, "rpcinfo-flushed -b mountd 2 |";
- $SIG{ALRM} = sub { kill(15, $pid) };
- alarm 1;
-
- my $domain = chomp_(`domainname`);
- my @servers;
- while (<F>) {
- chomp;
- my ($ip, $name) = /(\S+)\s+(\S+)/ or log::l("bad line in rpcinfo output"), next;
- $name =~ s/\Q.$domain//;
- $name =~ s/\.$//;
- push @servers, { ip => $ip, if_($name ne '(unknown)', name => $name) };
- }
- @servers;
-}
-
-sub find_exports {
- my ($class, $server) = @_;
-
- local *F;
- my $s = $server->{ip} || $server->{name};
- my $pid = open F, "showmount -e $s |";
- $SIG{ALRM} = sub { kill(15, $pid) };
- alarm 5;
-
- my (undef, @l) = <F>;
- map { /(\S+)\s*(\S+)/; { name => $1, comment => $2, server => $server } } @l;
-}
-
-1;
diff --git a/perl-install/network/smb.pm b/perl-install/network/smb.pm
deleted file mode 100644
index d212f5122..000000000
--- a/perl-install/network/smb.pm
+++ /dev/null
@@ -1,150 +0,0 @@
-package network::smb; # $Id$
-
-use strict;
-use diagnostics;
-
-use common;
-use fs;
-use network::network;
-use network::smbnfs;
-
-
-our @ISA = 'network::smbnfs';
-
-sub to_fstab_entry {
- my ($class, $e) = @_;
- my $part = $class->to_fstab_entry_raw($e, 'smbfs');
- if ($e->{server}{username}) {
- my ($options, $unknown) = fs::mount_options_unpack($part);
- $options->{"$_="} = $e->{server}{$_} foreach qw(username password domain);
- fs::mount_options_pack($part, $options, $unknown);
- }
- $part;
-}
-sub from_dev {
- my ($class, $dev) = @_;
- $dev =~ m|//(.*?)/(.*)|;
-}
-sub to_dev_raw {
- my ($class, $server, $name) = @_;
- '//' . $server . '/' . $name;
-}
-
-sub check {
- my ($class, $in) = @_;
- $class->raw_check($in, 'samba-client', '/usr/bin/nmblookup');
-}
-
-sub smbclient {
- my ($server) = @_;
- my $name = $server->{name} || $server->{ip};
- my $ip = $server->{ip} ? "-I $server->{ip}" : '';
- my $group = $server->{group} ? " -W $server->{group}" : '';
-
- my $U = $server->{username} ? "$server->{domain}/$server->{username}%$server->{password}" : '%';
- `smbclient -U $U -L $name $ip$group`;
-}
-
-sub find_servers {
- my (undef, @l) = `nmblookup "*"`;
- s/\s.*\n// foreach @l;
- my @servers = grep { network::network::is_ip($_) } @l;
- my %servers;
- $servers{$_}{ip} = $_ foreach @servers;
- my ($ip, $browse);
- foreach (`nmblookup -A @servers`) {
- my $nb = /^Looking up status of (\S+)/ .. /^$/ or next;
- if ($nb == 1) {
- $ip = $1;
- } elsif (/<00>/) {
- $servers{$ip}{/<GROUP>/ ? 'group' : 'name'} ||= lc first(/(\S+)/);
- } elsif (/__MSBROWSE__/) {
- $browse ||= $servers{$ip};
- }
- }
- if ($browse) {
- my %l;
- foreach (smbclient($browse)) {
- my $nb = /^\s*Workgroup/ .. /^$/;
- $nb > 2 or next;
- my ($group, $name) = split(' ', lc($_));
-
- # already done
- next if grep { $group eq $_->{group} } values %servers;
-
- $l{$name} = $group;
- }
- if (my @l = keys %l) {
- foreach (`nmblookup @l`) {
- $servers{$1} = { name => $2, group => $l{$2} } if /(\S+)\s+([^<]+)<00>/;
- }
- }
- }
- values %servers;
-}
-
-sub find_exports {
- my ($class, $server) = @_;
- my @l;
-
- foreach (smbclient($server)) {
- chomp;
- s/^\t//;
- /NT_STATUS_/ and die $_;
- my ($name, $type, $comment) = unpack "A15 A10 A*", $_;
- if ($name eq '---------' && $type eq '----' && $comment eq '-------' .. /^$/) {
- push @l, { name => $name, type => $type, comment => $comment, server => $server }
- if $type eq 'Disk' && $name !~ /\$$/ && $name !~ /NETLOGON|SYSVOL/;
- }
- }
- @l;
-}
-
-sub authentifications_available {
- my ($server) = @_;
- map { if_(/^auth.\Q$server->{name}.\E(.*)/, $1) } all("/etc/samba");
-}
-
-sub to_credentials {
- my ($server_name, $username) = @_;
- $username or die 'to_credentials';
- "/etc/samba/auth.$server_name.$username";
-}
-
-sub fstab_entry_to_credentials {
- my ($part) = @_;
-
- my ($server_name) = network::smb->from_dev($part->{device}) or return;
-
- my ($options, $unknown) = fs::mount_options_unpack($part);
- $options->{'username='} && $options->{'password='} or return;
- my %h = map { $_ => delete $options->{"$_="} } qw(username domain password);
- $h{file} = $options->{'credentials='} = to_credentials($server_name, $h{username});
- fs::mount_options_pack_($part, $options, $unknown), \%h;
-}
-
-sub remove_bad_credentials {
- my ($server) = @_;
- unlink to_credentials($server->{name}, $server->{username});
-}
-
-sub save_credentials {
- my ($credentials) = @_;
- my $file = $credentials->{file};
- output($file, map { "$_ = $credentials->{$_}\n" } qw(username domain password));
- chmod(0640, $file);
-}
-
-
-sub read_credentials_raw {
- my ($file) = @_;
- my %h = map { /(.*?)\s*=\s*(.*)/ } cat_($file);
- \%h;
-}
-
-sub read_credentials {
- my ($server, $username) = @_;
- put_in_hash($server, read_credentials_raw(to_credentials($server->{name}, $username)));
-}
-
-1;
diff --git a/perl-install/network/smbnfs.pm b/perl-install/network/smbnfs.pm
deleted file mode 100644
index 6b55f6fd0..000000000
--- a/perl-install/network/smbnfs.pm
+++ /dev/null
@@ -1,58 +0,0 @@
-package network::smbnfs; # $Id$
-
-use strict;
-use diagnostics;
-
-use fs;
-
-
-sub new {
- my ($class, $v) = @_;
- bless($v || {}, $class);
-}
-
-sub server_to_string {
- my ($class, $server) = @_;
- $server->{name} || $server->{ip};
-}
-sub comment_to_string {
- my ($class, $comment) = @_;
- $comment;
-}
-sub to_dev {
- my ($class, $e) = @_;
- $class->to_dev_raw($class->server_to_string($e->{server}), $e->{name} || $e->{ip});
-}
-sub to_string {
- my ($class, $e) = @_;
- my $comment = $class->comment_to_string($e->{comment});
- ($e->{name} || $e->{ip}) . ($comment ? " ($comment)" : '');
-}
-
-sub to_fullstring {
- my ($class, $e) = @_;
- my $comment = $class->comment_to_string($e->{comment});
- $class->to_dev($e) . ($comment ? " ($comment)" : '');
-}
-sub to_fstab_entry_raw {
- my ($class, $e, $type) = @_;
- my $fs_entry = { device => $class->to_dev($e), type => $type };
- fs::set_default_options($fs_entry);
- $fs_entry;
-}
-
-sub raw_check {
- my ($class, $in, $pkg, $file) = @_;
- if (! -e $file) {
- $in->ask_okcancel('', _("The package %s needs to be installed. Do you want to install it?", $pkg), 1) or return;
- $in->do_pkgs->install($pkg);
- }
- if (! -e $file) {
- $in->ask_warn('', _("Mandatory package %s is missing", $pkg));
- return;
- }
- 1;
-}
-
-1;
-
diff --git a/perl-install/network/tools.pm b/perl-install/network/tools.pm
deleted file mode 100644
index f155f359d..000000000
--- a/perl-install/network/tools.pm
+++ /dev/null
@@ -1,227 +0,0 @@
-package network::tools;
-
-use common;
-use run_program;
-use c;
-use vars qw(@ISA @EXPORT);
-use MDK::Common::Globals "network", qw($in $prefix $disconnect_file $connect_prog $connect_file);
-use MDK::Common::System qw(getVarsFromSh);
-
-@ISA = qw(Exporter);
-@EXPORT = qw(write_cnx_script write_secret_backend write_initscript ask_connect_now connect_backend disconnect_backend read_providers_backend ask_info2 type2interface connected connected_bg connected2 disconnected);
-@EXPORT_OK = qw($in);
-
-sub write_cnx_script {
- my ($netc, $type, $up, $down, $type2) = @_;
- if ($type) {
- $netc->{internet_cnx}{$type}{$_->[0]}=$_->[1] foreach ([$connect_file, $up], [$disconnect_file, $down]);
- $netc->{internet_cnx}{$type}{type} = $type2;
- } else {
- foreach ($connect_file, $disconnect_file) {
- output ("$prefix$_",
-'#!/bin/bash
-' . if_(!$netc->{at_boot}, 'if [ "x$1" == "x--boot_time" ]; then exit; fi
-') . $netc->{internet_cnx}{$netc->{internet_cnx_choice}}{$_});
- chmod 0755, "$prefix" . $_;
- }
- }
-}
-
-sub write_secret_backend {
- my ($a, $b) = @_;
- foreach my $i ("pap-secrets", "chap-secrets") {
- substInFile { s/^'$a'.*\n//; $_ .= "\n'$a' * '$b' * \n" if eof } "$prefix/etc/ppp/$i";
- }
-}
-
-sub ask_connect_now {
- my ($type) = @_;
- $::Wizard_no_previous=1;
- #- FIXME : code the exception to be generated by ask_yesorno, to be able to remove the $::Wizard_no_previous=1;
- if ($in->ask_yesorno(_("Internet configuration"),
- _("Do you want to try to connect to the Internet now?")
- )) {
- my $up;
- {
- my $w = $in->wait_message('', _("Testing your connection..."), 1);
- connect_backend();
- my $s = 30;
- $type =~ /modem/ and $s=50;
- $type =~ /adsl/ and $s=35;
- $type =~ /isdn/ and $s=20;
- sleep $s;
- my $netc = {};
- $up=connected();
- }
- my $m = $up ? (_("The system is now connected to Internet.") .
- if_($::isInstall, _("For security reason, it will be disconnected now.")) ) :
- _("The system doesn't seem to be connected to internet.
-Try to reconfigure your connection.");
- if ($::isWizard) {
- $::Wizard_no_previous=1;
- $::Wizard_finished=1;
- $in->ask_okcancel(_("Network Configuration"), $m, 1);
- undef $::Wizard_no_previous;
- undef $::Wizard_finished;
- } else { $in->ask_warn('', $m ); }
- $::isInstall and disconnect_backend();
- }
- undef $::Wizard_no_previous;
- $up;
-}
-
-sub connect_backend { run_program::rooted($prefix, "$connect_prog &") }
-
-sub disconnect_backend { run_program::rooted($prefix, "$disconnect_file &") }
-
-sub read_providers_backend { my ($file) = @_; map { /(.*?)=>/ } catMaybeCompressed($file) }
-
-sub ask_info2 {
- my ($cnx, $netc) = @_;
- $::isInstall and $in->set_help('configureNetworkDNS');
- $in->ask_from(_("Connection Configuration"),
- _("Please fill or check the field below"),
- [
- if__($cnx->{irq}, { label => _("Card IRQ"), val => \$cnx->{irq} }) ,
- if__($cnx->{mem}, { label => _("Card mem (DMA)"), val => \$cnx->{mem} }),
- if__($cnx->{io}, { label => _("Card IO"), val => \$cnx->{io} }),
- if__($cnx->{io0}, { label => _("Card IO_0"), val => \$cnx->{io0} }),
- if__($cnx->{io1}, { label => _("Card IO_1"), val => \$cnx->{io1} }),
- if__($cnx->{phone_in}, { label => _("Your personal phone number"), val => \$cnx->{phone_in} }),
- if__($netc->{DOMAINNAME2}, { label => _("Provider name (ex provider.net)"), val => \$netc->{DOMAINNAME2} }),
- if__($cnx->{phone_out}, { label => _("Provider phone number"), val => \$cnx->{phone_out} }),
- if__($netc->{dnsServer2}, { label => _("Provider dns 1 (optional)"), val => \$netc->{dnsServer2} }),
- if__($netc->{dnsServer3}, { label => _("Provider dns 2 (optional)"), val => \$netc->{dnsServer3} }),
- if__($cnx->{vpivci}, { label => _("Choose your country"), val => \$netc->{vpivci}, list => detect_timezone() }),
- if__($cnx->{dialing_mode}, { label => _("Dialing mode"), val => \$cnx->{dialing_mode},list=>["auto","manual"]}),
- if__($cnx->{speed}, { label => _("Connection speed"), val => \$cnx->{speed}, list => ["64 Kb/s", "128 Kb/s"]}),
- if__($cnx->{huptimeout}, { label => _("Connection timeout (in sec)"), val => \$cnx->{huptimeout} }),
- if__($cnx->{login}, { label => _("Account Login (user name)"), val => \$cnx->{login} }),
- if__($cnx->{passwd}, { label => _("Account Password"), val => \$cnx->{passwd}, hidden => 1 }),
- ]
- ) or return;
- if ($netc->{vpivci}) {
- foreach (['Netherlands', '8_48'], ['France', '8_35'], ['Belgium', '8_35'], ['Italy', '8_35'], ['UK', '0_38'], ['USA', '8_35']) {
- $netc->{vpivci} eq $_->[0] and $netc->{vpivci} = $_->[1];
- }
- }
- 1;
-}
-
-sub detect_timezone {
- my %tmz2country = (
- 'Europe/Paris' => _("France"),
- 'Europe/Amsterdam' => _("Netherlands"),
- 'Europe/Rome' => _("Italy"),
- 'Europe/Brussels' => _("Belgium"),
- 'America/New_York' => _("United States"),
- 'Europe/London' => _("United Kingdom")
- );
- my %tm_parse = MDK::Common::System::getVarsFromSh('/etc/sysconfig/clock');
- foreach (keys %tmz2country) {
- if ($_ eq $tm_parse{ZONE}) {
- unshift @country, $tmz2country{$_};
- } else { push @country, $tmz2country{$_} };
- }
- \@country;
-}
-
-sub type2interface {
- my ($i) = @_;
- $i=~/$_->[0]/ and return $_->[1] foreach (
- [ modem => 'ppp'],
- [ isdn_internal => 'ippp'],
- [ isdn_external => 'ppp'],
- [ adsl => 'ppp'],
- [ cable => 'eth'],
- [ lan => 'eth']);
-}
-
-sub connected { gethostbyname("mandrakesoft.com") ? 1 : 0 }
-
-my $kid_pipe;
-sub connected_bg {
- local $|=1;
- my ($ref) = @_;
- if (defined $kid_pipe) {
- local *F;
- *F = *$kid_pipe;
- fcntl(F, c::F_SETFL(), c::O_NONBLOCK()) or die "can't fcntl F_SETFL: $!";
- my $a;
- if (defined($a = <F>)) {
- close($kid_pipe) || warn "kid exited $?";
- undef $kid_pipe;
- $$ref = $a;
- }
- } else { $kid_pipe = connected2(); }
- 1;
-}
-
-sub connected2 {
- my $pid = open(KID_TO_READ, "-|");
- if ($pid) { # parent
- return \*KID_TO_READ;
- } else { # child
- my $a = gethostbyname("mandrakesoft.com") ? 1 : 0;
- print $a;
- c::_exit(0);
- }
-}
-
-sub disconnected { }
-
-
-sub write_initscript {
- output ("$prefix/etc/rc.d/init.d/internet",
- q{
-#!/bin/bash
-#
-# internet Bring up/down internet connection
-#
-# chkconfig: 2345 11 89
-# description: Activates/Deactivates the internet interfaces
-#
-# dam's (damien@mandrakesoft.com)
-
-# Source function library.
-. /etc/rc.d/init.d/functions
-
- case "$1" in
- start)
- if [ -e } . $connect_file . q{ ]; then
- action "Checking internet connections to start at boot" "} . "$connect_file --boot_time" . q{"
- else
- action "No connection to start" "true"
- fi
- touch /var/lock/subsys/internet
- ;;
- stop)
- if [ -e } . $disconnect_file . q{ ]; then
- action "Stopping internet connection if needed: " "} . "$disconnect_file --boot_time" . q{"
- else
- action "No connection to stop" "true"
- fi
- rm -f /var/lock/subsys/internet
- ;;
- restart)
- $0 stop
- echo "Waiting 10 sec before restarting the internet connection."
- sleep 10
- $0 start
- ;;
- status)
- ;;
- *)
- echo "Usage: internet {start|stop|status|restart}"
- exit 1
-esac
-exit 0
- });
- chmod 0755, "$prefix/etc/rc.d/init.d/internet";
- $::isStandalone ? system("/sbin/chkconfig --add internet") : do {
- symlinkf ("../init.d/internet", "$prefix/etc/rc.d/rc$_") foreach
- '0.d/K11internet', '1.d/K11internet', '2.d/K11internet', '3.d/S89internet', '5.d/S89internet', '6.d/K11internet';
- };
-}
-
-1;
diff --git a/perl-install/pam.net_monitor b/perl-install/pam.net_monitor
deleted file mode 100644
index bc9a8d611..000000000
--- a/perl-install/pam.net_monitor
+++ /dev/null
@@ -1,6 +0,0 @@
-#%PAM-1.0
-auth sufficient /lib/security/pam_rootok.so
-auth required /lib/security/pam_stack.so service=system-auth
-account required /lib/security/pam_permit.so
-session optional /lib/security/pam_xauth.so
-
diff --git a/perl-install/partition_table.pm b/perl-install/partition_table.pm
deleted file mode 100644
index 7452a70cb..000000000
--- a/perl-install/partition_table.pm
+++ /dev/null
@@ -1,799 +0,0 @@
-package partition_table; # $Id$
-
-use diagnostics;
-use strict;
-use vars qw(@ISA %EXPORT_TAGS @EXPORT_OK @important_types @important_types2 @fields2save @bad_types);
-
-@ISA = qw(Exporter);
-%EXPORT_TAGS = (
- types => [ qw(type2name type2fs name2type fs2type isExtended isExt2 isThisFs isTrueFS isSwap isDos isWin isFat isSunOS isOtherAvailableFS isPrimary isRawLVM isRawRAID isRAID isLVM isNT isMountableRW isNonMountable isPartOfLVM isPartOfRAID isPartOfLoopback isApplePartMap isLoopback isMounted isBusy isSpecial maybeFormatted isApple isAppleBootstrap) ],
-);
-@EXPORT_OK = map { @$_ } values %EXPORT_TAGS;
-
-
-use common;
-use partition_table::raw;
-use detect_devices;
-use log;
-
-@important_types = ('Linux native', 'Linux swap',
- if_(arch() =~ /i.86/, 'Journalised FS: ext3', 'Journalised FS: ReiserFS', 'Journalised FS: JFS', 'Journalised FS: XFS', 'DOS FAT16', 'FAT32'),
- if_(arch() =~ /ia64/, 'Journalised FS: ext3', 'Journalised FS: ReiserFS', 'Journalised FS: XFS', 'FAT32'),
- if_(arch() =~ /ppc/, 'Journalised FS: ext3', 'Journalised FS: ReiserFS', 'Journalised FS: JFS', 'Journalised FS: XFS', 'Apple HFS Partition', 'Apple Bootstrap'));
-@important_types2 = ('Linux RAID', 'Linux Logical Volume Manager partition');
-
-@fields2save = qw(primary extended totalsectors isDirty needKernelReread);
-
-@bad_types = ('Empty', 'DOS 3.3+ Extended Partition', 'Win95: Extended partition, LBA-mapped', 'Linux extended partition');
-
-my %types = (
- 0x0 => 'Empty',
-if_(arch() =~ /^ppc/,
- 0x183 => 'Journalised FS: ReiserFS',
- 0x283 => 'Journalised FS: XFS',
- 0x383 => 'Journalised FS: JFS',
- 0x483 => 'Journalised FS: ext3',
- 0x401 => 'Apple Partition',
- 0x401 => 'Apple Bootstrap',
- 0x402 => 'Apple HFS Partition',
-), if_(arch() =~ /^i.86/,
- 0x183 => 'Journalised FS: ReiserFS',
- 0x283 => 'Journalised FS: XFS',
- 0x383 => 'Journalised FS: JFS',
- 0x483 => 'Journalised FS: ext3',
-), if_(arch() =~ /^ia64/,
- 0x100 => 'Various',
- 0x183 => 'Journalised FS: ReiserFS',
- 0x283 => 'Journalised FS: XFS',
- 0x483 => 'Journalised FS: ext3',
-), if_(arch() =~ /^sparc/,
- 0x1 => 'SunOS boot',
- 0x2 => 'SunOS root',
- 0x3 => 'SunOS swap',
- 0x4 => 'SunOS usr',
- 0x5 => 'Whole disk',
- 0x6 => 'SunOS stand',
- 0x7 => 'SunOS var',
- 0x8 => 'SunOS home',
-), if_(arch() =~ /^i.86/,
- 0x1 => 'DOS 12-bit FAT',
- 0x2 => 'XENIX root',
- 0x3 => 'XENIX /usr',
- 0x4 => 'DOS 16-bit FAT (up to 32M)',
- 0x5 => 'DOS 3.3+ Extended Partition',
- 0x6 => 'DOS FAT16',
- 0x7 => 'NTFS (or HPFS)',
- 0x8 => 'OS/2 (v1.0-1.3 only) / AIX boot partition / SplitDrive / Commodore DOS / DELL partition spanning multiple drives / QNX 1.x and 2.x ("qny")',
-),
- 0x9 => 'AIX data partition / Coherent filesystem / QNX 1.x and 2.x ("qnz")',
- 0xa => 'OS/2 Boot Manager / Coherent swap partition / OPUS',
- 0xb => 'FAT32',
- 0xc => 'Win98 FAT32, LBA-mapped',
- 0xe => 'Win95: DOS 16-bit FAT, LBA-mapped',
- 0xf => 'Win95: Extended partition, LBA-mapped',
- 0x10 => 'OPUS (?)',
- 0x11 => 'Hidden DOS 12-bit FAT',
- 0x12 => 'Compaq/HP config partition',
- 0x14 => 'Hidden DOS 16-bit FAT <32M',
- 0x16 => 'Hidden DOS 16-bit FAT >=32M',
- 0x17 => 'Hidden IFS (e.g., HPFS)',
- 0x18 => 'AST Windows swapfile',
- 0x1b => 'Hidden WIN95 OSR2 32-bit FAT',
- 0x1c => 'Hidden WIN95 OSR2 32-bit FAT, LBA-mapped',
- 0x1e => 'Hidden FAT95',
- 0x22 => 'Used for Oxygen Extended Partition Table by ekstazya@sprint.ca.',
- 0x24 => 'NEC DOS 3.x',
- 0x38 => 'THEOS ver 3.2 2gb partition',
- 0x39 => 'THEOS ver 4 spanned partition',
- 0x3a => 'THEOS ver 4 4gb partition',
- 0x3b => 'THEOS ver 4 extended partition',
- 0x3c => 'PartitionMagic recovery partition',
- 0x40 => 'Venix 80286',
- 0x41 => 'Linux/MINIX (sharing disk with DRDOS) / Personal RISC Boot / PPC PReP (Power PC Reference Platform) Boot',
- 0x42 => 'Windows Dynamic Partition',
- 0x43 => 'Linux native (sharing disk with DRDOS)',
- 0x45 => 'EUMEL/Elan',
- 0x46 => 'EUMEL/Elan 0x46',
- 0x47 => 'EUMEL/Elan 0x47',
- 0x48 => 'EUMEL/Elan 0x48',
- 0x4d => 'QNX4.x',
- 0x4e => 'QNX4.x 2nd part',
- 0x4f => 'QNX4.x 3rd part / Oberon partition',
- 0x50 => 'OnTrack Disk Manager (older versions) RO',
- 0x51 => 'OnTrack Disk Manager RW (DM6 Aux1) / Novell',
- 0x52 => 'CP/M / Microport SysV/AT',
- 0x53 => 'Disk Manager 6.0 Aux3',
- 0x54 => 'Disk Manager 6.0 Dynamic Drive Overlay',
- 0x55 => 'EZ-Drive',
- 0x56 => 'Golden Bow VFeature Partitioned Volume. / DM converted to EZ-BIOS',
- 0x57 => 'DrivePro',
- 0x5c => 'Priam EDisk',
- 0x61 => 'SpeedStor',
- 0x63 => 'Unix System V (SCO, ISC Unix, UnixWare, ...), Mach, GNU Hurd',
- 0x64 => 'PC-ARMOUR protected partition / Novell Netware 2.xx',
- 0x65 => 'Novell Netware 3.xx or 4.xx',
- 0x67 => 'Novell',
- 0x68 => 'Novell 0x68',
- 0x69 => 'Novell 0x69',
- 0x70 => 'DiskSecure Multi-Boot',
- 0x75 => 'IBM PC/IX',
- 0x80 => 'MINIX until 1.4a',
- 0x81 => 'MINIX since 1.4b, early Linux / Mitac disk manager',
- 0x82 => 'Linux swap',
- 0x83 => 'Linux native',
- 0x84 => 'OS/2 hidden C: drive / Hibernation partition',
- 0x85 => 'Linux extended partition',
- 0x86 => 'Old Linux RAID partition superblock / NTFS volume set',
- 0x87 => 'NTFS volume set',
- 0x8a => 'Linux Kernel Partition (used by AiR-BOOT)',
- 0x8e => 'Linux Logical Volume Manager partition',
- 0x93 => 'Amoeba',
- 0x94 => 'Amoeba bad block table',
- 0x99 => 'DCE376 logical drive',
- 0xa0 => 'IBM Thinkpad hibernation partition / Phoenix NoteBIOS Power Management "Save-to-Disk" partition',
- 0xa5 => 'BSD/386, 386BSD, NetBSD, FreeBSD',
- 0xa6 => 'OpenBSD',
- 0xa7 => 'NEXTSTEP',
- 0xa9 => 'NetBSD',
- 0xaa => 'Olivetti Fat 12 1.44Mb Service Partition',
- 0xb7 => 'BSDI filesystem',
- 0xb8 => 'BSDI swap partition',
- 0xbe => 'Solaris boot partition',
- 0xc0 => 'CTOS / REAL/32 secure small partition',
- 0xc1 => 'DRDOS/secured (FAT-12)',
- 0xc4 => 'DRDOS/secured (FAT-16, < 32M)',
- 0xc6 => 'DRDOS/secured (FAT-16, >= 32M) / Windows NT corrupted FAT16 volume/stripe set',
- 0xc7 => 'Windows NT corrupted NTFS volume/stripe set / Syrinx boot',
- 0xcb => 'reserved for DRDOS/secured (FAT32)',
- 0xcc => 'reserved for DRDOS/secured (FAT32, LBA)',
- 0xcd => 'CTOS Memdump?',
- 0xce => 'reserved for DRDOS/secured (FAT16, LBA)',
- 0xd0 => 'REAL/32 secure big partition',
- 0xd1 => 'Old Multiuser DOS secured FAT12',
- 0xd4 => 'Old Multiuser DOS secured FAT16 <32M',
- 0xd5 => 'Old Multiuser DOS secured extended partition',
- 0xd6 => 'Old Multiuser DOS secured FAT16 >=32M',
- 0xd8 => 'CP/M-86',
- 0xdb => 'Digital Research CP/M, Concurrent CP/M, Concurrent DOS / CTOS (Convergent Technologies OS -Unisys) / KDG Telemetry SCPU boot',
- 0xdd => 'Hidden CTOS Memdump?',
- 0xe1 => 'DOS access or SpeedStor 12-bit FAT extended partition',
- 0xe3 => 'DOS R/O or SpeedStor',
- 0xe4 => 'SpeedStor 16-bit FAT extended partition < 1024 cyl.',
- 0xeb => 'BeOS',
- 0xee => 'EFI GPT',
- 0xef => 'EFI (FAT-12/16/32)',
- 0xf1 => 'SpeedStor 0xf1',
- 0xf2 => 'DOS 3.3+ secondary partition',
- 0xf4 => 'SpeedStor large partition / Prologue single-volume partition',
- 0xf5 => 'Prologue multi-volume partition',
- 0xfd => 'Linux RAID',
- 0xfe => 'SpeedStor > 1024 cyl. or LANstep / IBM PS/2 IML (Initial Microcode Load) partition, located at the end of the disk. / Windows NT Disk Administrator hidden partition / Linux Logical Volume Manager partition (old)',
- 0xff => 'Xenix Bad Block Table',
-);
-
-my %type2fs = (
-arch() =~ /^ppc/ ? (
- 0x07 => 'hpfs',
-) : (
- 0x07 => 'ntfs',
-),
-arch() !~ /sparc/ ? (
- 0x01 => 'vfat',
- 0x04 => 'vfat',
- 0x05 => 'ignore',
- 0x06 => 'vfat',
-) : (
- 0x01 => 'ufs',
- 0x02 => 'ufs',
- 0x04 => 'ufs',
- 0x06 => 'ufs',
- 0x07 => 'ufs',
- 0x08 => 'ufs',
-),
- 0x0b => 'vfat',
- 0x0c => 'vfat',
- 0x0e => 'vfat',
- 0x1b => 'vfat',
- 0x1c => 'vfat',
- 0x1e => 'vfat',
- 0x82 => 'swap',
- 0x83 => 'ext2',
- 0x183=> 'reiserfs',
- 0x283=> 'xfs',
- 0x383=> 'jfs',
- 0x483=> 'ext3',
- 0x401 => 'apple',
- 0x402 => 'hfs',
-);
-
-my %types_rev = reverse %types;
-my %fs2type = reverse %type2fs;
-
-
-1;
-
-sub important_types {
- my @l = (@important_types, if_($::expert, @important_types2, sort values %types));
- difference2(\@l, \@bad_types);
-}
-
-sub type2fs { $type2fs{$_[0]{type}} || $_[0]{type} }
-sub fs2type { $fs2type{$_[0]} || $_[0] }
-sub type2name { $types{$_[0]} || $_[0] }
-sub name2type {
- local ($_) = @_;
- /0x(.*)/ ? hex $1 : $types_rev{$_} || $_;
-}
-
-sub isWholedisk { arch() =~ /^sparc/ && $_[0]{type} == 5 }
-sub isExtended { arch() !~ /^sparc/ && ($_[0]{type} == 5 || $_[0]{type} == 0xf || $_[0]{type} == 0x85) }
-sub isRawLVM { $_[0]{type} == 0x8e }
-sub isRawRAID { $_[0]{type} == 0xfd }
-sub isSwap { type2fs($_[0]) eq 'swap' }
-sub isExt2 { type2fs($_[0]) eq 'ext2' }
-sub isDos { arch() !~ /^sparc/ && $ {{ 1=>1, 4=>1, 6=>1 }}{$_[0]{type}} }
-sub isWin { $ {{ 0xb=>1, 0xc=>1, 0xe=>1, 0x1b=>1, 0x1c=>1, 0x1e=>1 }}{$_[0]{type}} }
-sub isFat { isDos($_[0]) || isWin($_[0]) }
-sub isSunOS { arch() =~ /sparc/ && $ {{ 0x1=>1, 0x2=>1, 0x4=>1, 0x6=>1, 0x7=>1, 0x8=>1 }}{$_[0]{type}} }
-sub isNT { arch() !~ /^sparc/ && $_[0]{type} == 0x7 }
-sub isApple { type2fs($_[0]) eq 'apple' && defined $_[0]{isDriver} }
-sub isAppleBootstrap { type2fs($_[0]) eq 'apple' && defined $_[0]{isBoot} }
-sub isHiddenMacPart { defined $_[0]{isMap} }
-
-sub isThisFs { type2fs($_[1]) eq $_[0] }
-sub isTrueFS { member(type2fs($_[0]), qw(ext2 reiserfs xfs jfs ext3)) }
-
-sub isOtherAvailableFS { isFat($_[0]) || isSunOS($_[0]) || isThisFs('hfs', $_[0]) } #- other OS that linux can access its filesystem
-sub isMountableRW { isTrueFS($_[0]) || isOtherAvailableFS($_[0]) }
-sub isNonMountable { isRawRAID($_[0]) || isRawLVM($_[0]) }
-
-sub isPartOfLVM { defined $_[0]{lvm} }
-sub isPartOfRAID { defined $_[0]{raid} }
-sub isPartOfLoopback { defined $_[0]{loopback} }
-sub isRAID { $_[0]{device} =~ /^md/ }
-sub isLVM { $_[0]{LVMname} }
-sub isLoopback { defined $_[0]{loopback_file} }
-sub isMounted { $_[0]{isMounted} }
-sub isBusy { isMounted($_[0]) || isPartOfRAID($_[0]) || isPartOfLVM($_[0]) || isPartOfLoopback($_[0]) }
-sub isSpecial { isRAID($_[0]) || isLVM($_[0]) || isLoopback($_[0]) }
-sub maybeFormatted { $_[0]{isFormatted} || !$_[0]{notFormatted} }
-
-
-#- works for both hard drives and partitions ;p
-sub description {
- my ($hd) = @_;
- my $win = $hd->{device_windobe};
-
- sprintf "%s%s (%s%s%s%s)",
- $hd->{device},
- $win && " [$win:]",
- formatXiB($hd->{totalsectors} || $hd->{size}, 512),
- $hd->{info} && ", $hd->{info}",
- $hd->{mntpoint} && ", " . $hd->{mntpoint},
- $hd->{type} && ", " . type2name($hd->{type});
-}
-
-sub isPrimary {
- my ($part, $hd) = @_;
- foreach (@{$hd->{primary}{raw}}) { $part eq $_ and return 1; }
- 0;
-}
-
-sub adjustStartAndEnd {
- my ($hd, $part) = @_;
-
- $hd->adjustStart($part);
- $hd->adjustEnd($part);
-}
-
-sub verifyNotOverlap {
- my ($a, $b) = @_;
- $a->{start} + $a->{size} <= $b->{start} || $b->{start} + $b->{size} <= $a->{start};
-}
-sub verifyInside {
- my ($a, $b) = @_;
- $b->{start} <= $a->{start} && $a->{start} + $a->{size} <= $b->{start} + $b->{size};
-}
-
-sub verifyParts_ {
- foreach my $i (@_) {
- foreach (@_) {
- next if !$i || !$_ || $i == $_ || isWholedisk($i) || isExtended($i); #- avoid testing twice for simplicity :-)
- if (isWholedisk($_)) {
- verifyInside($i, $_) or
- cdie sprintf("partition sector #$i->{start} (%s) is not inside whole disk (%s)!",
- formatXiB($i->{size}, 512), formatXiB($_->{size}, 512));
- } elsif (isExtended($_)) {
- verifyNotOverlap($i, $_) or
- log::l(sprintf("warning partition sector #$i->{start} (%s) is overlapping with extended partition!",
- formatXiB($i->{size}, 512))); #- only warning for this one is acceptable
- } else {
- verifyNotOverlap($i, $_) or
- cdie sprintf("partitions sector #$i->{start} (%s) and sector #$_->{start} (%s) are overlapping!",
- formatXiB($i->{size}, 512), formatXiB($_->{size}, 512));
- }
- }
- }
-}
-sub verifyParts {
- my ($hd) = @_;
- verifyParts_(get_normal_parts($hd));
-}
-sub verifyPrimary {
- my ($pt) = @_;
- $_->{start} > 0 || arch() =~ /^sparc/ || die "partition must NOT start at sector 0" foreach @{$pt->{normal}};
- verifyParts_(@{$pt->{normal}}, $pt->{extended});
-}
-
-sub assign_device_numbers {
- my ($hd) = @_;
-
- my $i = 1;
- my $start = 1;
-
- #- on PPC we need to assign device numbers to the holes too - big FUN!
- #- not if it's an IBM machine using a DOS partition table though
- if (arch() =~ /ppc/ && detect_devices::get_mac_model() !~ /^IBM/) {
- #- first sort the normal parts
- $hd->{primary}{normal} = [sort { $a->{start} <=> $b->{start} } @{$hd->{primary}{normal}} ];
-
- #- now loop through them, assigning partition numbers - reserve one for the holes
- foreach (@{$hd->{primary}{normal}}) {
- if ($_->{start} > $start) {
- log::l("PPC: found a hole on $hd->{prefix} before $_->{start}, skipping device...");
- $i++;
- }
- $_->{device} = $hd->{prefix} . $i;
- $_->{devfs_device} = $hd->{devfs_prefix} . '/part' . $i;
- $start = $_->{start} + $_->{size};
- $i++;
- }
- } else {
- foreach (@{$hd->{primary}{raw}}) {
- $_->{device} = $hd->{prefix} . $i;
- $_->{devfs_device} = $hd->{devfs_prefix} . '/part' . $i;
- $i++;
- }
- foreach (map { $_->{normal} } @{$hd->{extended} || []}) {
- my $dev = $hd->{prefix} . $i;
- push @{$hd->{partitionsRenumbered}}, [ $_->{device}, $dev ] if $_->{device} && $dev ne $_->{device};
- $_->{device} = $dev;
- $_->{devfs_device} = $hd->{devfs_prefix} . '/part' . $i;
- $i++;
- }
- }
-
- #- try to figure what the windobe drive letter could be!
- #
- #- first verify there's at least one primary dos partition, otherwise it
- #- means it is a secondary disk and all will be false :(
- my ($c, @others) = grep { isFat($_) } @{$hd->{primary}{normal}};
-
- $i = ord 'C';
- $c->{device_windobe} = chr($i++) if $c;
- $_->{device_windobe} = chr($i++) foreach grep { isFat($_) } map { $_->{normal} } @{$hd->{extended}};
- $_->{device_windobe} = chr($i++) foreach @others;
-}
-
-sub remove_empty_extended {
- my ($hd) = @_;
- my $last = $hd->{primary}{extended} or return;
- @{$hd->{extended}} = grep {
- if ($_->{normal}) {
- $last = $_;
- } else {
- %{$last->{extended}} = $_->{extended} ? %{$_->{extended}} : ();
- }
- $_->{normal};
- } @{$hd->{extended}};
- adjust_main_extended($hd);
-}
-
-sub adjust_main_extended {
- my ($hd) = @_;
-
- if (!is_empty_array_ref $hd->{extended}) {
- my ($l, @l) = @{$hd->{extended}};
-
- # the first is a special case, must recompute its real size
- my $start = round_down($l->{normal}{start} - 1, $hd->{geom}{sectors});
- my $end = $l->{normal}{start} + $l->{normal}{size};
- my $only_linux = 1; my $has_win_lba = 0;
- foreach (map $_->{normal}, $l, @l) {
- $start = min($start, $_->{start});
- $end = max($end, $_->{start} + $_->{size});
- $only_linux &&= isTrueFS($_) || isSwap($_);
- $has_win_lba ||= $_->{type} == 0xc || $_->{type} == 0xe;
- }
- $l->{start} = $hd->{primary}{extended}{start} = $start;
- $l->{size} = $hd->{primary}{extended}{size} = $end - $start;
- }
- unless (@{$hd->{extended} || []} || !$hd->{primary}{extended}) {
- %{$hd->{primary}{extended}} = (); #- modify the raw entry
- delete $hd->{primary}{extended};
- }
- verifyParts($hd); #- verify everything is all right
-}
-
-sub adjust_local_extended {
- my ($hd, $part) = @_;
-
- foreach (@{$hd->{extended} || []}) {
- $_->{normal} == $part or next;
- $_->{size} = $part->{size} + $part->{start} - $_->{start};
- last;
- }
-}
-
-sub get_normal_parts {
- my ($hd) = @_;
-
- @{$hd->{primary}{normal} || []}, map { $_->{normal} } @{$hd->{extended} || []}
-}
-
-sub get_normal_parts_and_holes {
- my ($hd) = @_;
- my ($start, $last) = ($hd->first_usable_sector, $hd->last_usable_sector);
-
- ref($hd) or print("get_normal_parts_and_holes: bad hd" . backtrace(), "\n");
-
- my @l = map {
- my $current = $start;
- $start = $_->{start} + $_->{size};
- my $hole = { start => $current, size => $_->{start} - $current, type => 0, rootDevice => $hd->{device} };
- $hole, $_;
- } sort { $a->{start} <=> $b->{start} } grep { !isWholedisk($_) } get_normal_parts($hd);
-
- push @l, { start => $start, size => $last - $start, type => 0, rootDevice => $hd->{device} };
- grep { $_->{type} || $_->{size} >= $hd->cylinder_size } @l;
-}
-
-sub read_one($$) {
- my ($hd, $sector) = @_;
- my ($pt, $info);
-
- #- it can be safely considered that the first sector is used to probe the partition table
- #- but other sectors (typically for extended partition ones) have to match this type!
- if (!$sector) {
- my @parttype = (
- if_(arch() =~ /^ia64/, 'gpt'),
- arch() =~ /^sparc/ ? ('sun', 'bsd') : ('dos', 'bsd', 'sun', 'mac'),
- );
- foreach ('empty', @parttype, 'lvm_PV', 'unknown') {
- /unknown/ and die "unknown partition table format on disk " . $hd->{file};
- eval {
- require("partition_table/$_.pm");
- bless $hd, "partition_table::$_";
- ($pt, $info) = $hd->read($sector);
- log::l("found a $_ partition table on $hd->{file} at sector $sector");
- };
- $@ or last;
- }
- } else {
- #- keep current blessed object for that, this means it is neccessary to read sector 0 before.
- ($pt, $info) = $hd->read($sector);
- }
-
- my @extended = $hd->hasExtended ? grep { isExtended($_) } @$pt : ();
- my @normal = grep { $_->{size} && $_->{type} && !isExtended($_) } @$pt;
-
- @extended > 1 and die "more than one extended partition";
-
- $_->{rootDevice} = $hd->{device} foreach @normal, @extended;
- { raw => $pt, extended => $extended[0], normal => \@normal, info => $info };
-}
-
-sub read($;$) {
- my ($hd, $clearall) = @_;
- if ($clearall) {
- partition_table::raw::zero_MBR_and_dirty($hd);
- return 1;
- }
- my $pt = read_one($hd, 0) or return 0;
- $hd->{primary} = $pt;
- undef $hd->{extended};
- verifyPrimary($pt);
- eval {
- my $need_removing_empty_extended;
- $pt->{extended} and read_extended($hd, $pt->{extended}, \$need_removing_empty_extended) || return 0;
-
- if ($need_removing_empty_extended) {
- #- special case when hda5 is empty, it must be skipped
- #- (windows XP generates such partition tables)
- remove_empty_extended($hd); #- includes adjust_main_extended
- }
-
- };
- die "extended partition: $@" if $@;
-
- assign_device_numbers($hd);
- remove_empty_extended($hd);
- 1;
-}
-
-sub read_extended {
- my ($hd, $extended, $need_removing_empty_extended) = @_;
-
- my $pt = read_one($hd, $extended->{start}) or return 0;
- $pt = { %$extended, %$pt };
-
- push @{$hd->{extended}}, $pt;
- @{$hd->{extended}} > 100 and die "oops, seems like we're looping here :( (or you have more than 100 extended partitions!)";
-
- if (@{$pt->{normal}} == 0) {
- $$need_removing_empty_extended = 1;
- delete $pt->{normal};
- print "need_removing_empty_extended\n";
- } elsif (@{$pt->{normal}} > 1) {
- die "more than one normal partition in extended partition";
- } else {
- $pt->{normal} = $pt->{normal}[0];
- #- in case of extended partitions, the start sector is local to the partition or to the first extended_part!
- $pt->{normal}{start} += $pt->{start};
-
- #- the following verification can broke an existing partition table that is
- #- correctly read by fdisk or cfdisk. maybe the extended partition can be
- #- recomputed to get correct size.
- if (!verifyInside($pt->{normal}, $extended)) {
- $extended->{size} = $pt->{normal}{start} + $pt->{normal}{size};
- verifyInside($pt->{normal}, $extended) or die "partition $pt->{normal}{device} is not inside its extended partition";
- }
- }
-
- if ($pt->{extended}) {
- $pt->{extended}{start} += $hd->{primary}{extended}{start};
- return read_extended($hd, $pt->{extended}, $need_removing_empty_extended);
- } else {
- 1;
- }
-}
-
-# write the partition table
-sub write {
- my ($hd) = @_;
- $hd->{isDirty} or return;
-
- #- set first primary partition active if no primary partitions are marked as active.
- if (my @l = @{$hd->{primary}{raw}}) {
- foreach (@l) {
- $_->{local_start} = $_->{start};
- $_->{active} ||= 0;
- }
- $l[0]{active} = 0x80 if !grep { $_->{active} } @l;
- }
-
- #- last chance for verification, this make sure if an error is detected,
- #- it will never be writed back on partition table.
- verifyParts($hd);
-
- $hd->write(0, $hd->{primary}{raw}, $hd->{primary}{info}) or die "writing of partition table failed";
-
- #- should be fixed but a extended exist with no real extended partition, that blanks mbr!
- if (arch() !~ /^sparc/) {
- foreach (@{$hd->{extended}}) {
- # in case of extended partitions, the start sector must be local to the partition
- $_->{normal}{local_start} = $_->{normal}{start} - $_->{start};
- $_->{extended} and $_->{extended}{local_start} = $_->{extended}{start} - $hd->{primary}{extended}{start};
-
- $hd->write($_->{start}, $_->{raw}) or die "writing of partition table failed";
- }
- }
- $hd->{isDirty} = 0;
- $hd->{hasBeenDirty} = 1; #- used in undo (to know if undo should believe isDirty or not)
-
- if ($hd->{needKernelReread} && ref($hd->{needKernelReread}) eq 'ARRAY' && $::isStandalone) {
- #- we've only been adding partitions. Try special add_partition (using BLKPG_ADD_PARTITION)
- local *F;
- partition_table::raw::openit($hd, *F) or goto force_reread;
-
- foreach (@{$hd->{needKernelReread}}) {
- c::add_partition(fileno F, $_->{start}, $_->{size}, $_->{device} =~ /(\d+)$/)
- or goto force_reread;
- }
- } elsif ($hd->{needKernelReread}) {
- force_reread:
- #- now sync disk and re-read the partition table
- common::sync();
-
- my @magic_parts = grep { $_->{isMounted} && $_->{real_mntpoint} } get_normal_parts($hd);
- foreach (@magic_parts) {
- syscall_('umount', $_->{real_mntpoint}) or log::l(_("error unmounting %s: %s", $_->{real_mntpoint}, "$!"));
- }
- $hd->kernel_read;
- foreach (@magic_parts) {
- syscall_('mount', , $_->{real_mntpoint}, type2fs($_), c::MS_MGC_VAL()) or log::l(_("mount failed: ") . "$!");
- }
- }
- $hd->{needKernelReread} = 0;
-}
-
-sub active {
- my ($hd, $part) = @_;
-
- $_->{active} = 0 foreach @{$hd->{primary}{normal}};
- $part->{active} = 0x80;
- $hd->{isDirty} = 1;
-}
-
-
-# remove a normal partition from hard drive hd
-sub remove {
- my ($hd, $part) = @_;
- my $i;
-
- #- first search it in the primary partitions
- $i = 0; foreach (@{$hd->{primary}{normal}}) {
- if ($_ eq $part) {
- splice(@{$hd->{primary}{normal}}, $i, 1);
- %$_ = (); #- blank it
-
- $hd->raw_removed($hd->{primary}{raw});
- return $hd->{isDirty} = $hd->{needKernelReread} = 1;
- }
- $i++;
- }
-
- my ($first, $second, $third) = map { $_->{normal} } @{$hd->{extended} || []};
- if ($third && $first eq $part) {
- die "Can't handle removing hda5 when hda6 is not the second partition" if $second->{start} > $third->{start};
- }
-
- #- otherwise search it in extended partitions
- foreach (@{$hd->{extended} || []}) {
- $_->{normal} eq $part or next;
-
- delete $_->{normal}; #- remove it
- remove_empty_extended($hd);
- assign_device_numbers($hd);
-
- return $hd->{isDirty} = $hd->{needKernelReread} = 1;
- }
- 0;
-}
-
-# create of partition at starting at `start', of size `size' and of type `type' (nice comment, uh?)
-sub add_primary {
- my ($hd, $part) = @_;
-
- {
- local $hd->{primary}{normal}; #- save it to fake an addition of $part, that way add_primary do not modify $hd if it fails
- push @{$hd->{primary}{normal}}, $part;
- adjust_main_extended($hd); #- verify
- $hd->raw_add($hd->{primary}{raw}, $part);
- }
- push @{$hd->{primary}{normal}}, $part; #- really do it
-}
-
-sub add_extended {
- arch() =~ /^sparc|ppc/ and die _("Extended partition not supported on this platform");
-
- my ($hd, $part, $extended_type) = @_;
- $extended_type =~ s/Extended_?//;
-
- my $e = $hd->{primary}{extended};
-
- if ($e && !verifyInside($part, $e)) {
- #-die "sorry, can't add outside the main extended partition" unless $::unsafe;
- my $end = $e->{start} + $e->{size};
- my $start = min($e->{start}, $part->{start});
- $end = max($end, $part->{start} + $part->{size}) - $start;
-
- { #- faking a resizing of the main extended partition to test for problems
- local $e->{start} = $start;
- local $e->{size} = $end - $start;
- eval { verifyPrimary($hd->{primary}) };
- $@ and die
-_("You have a hole in your partition table but I can't use it.
-The only solution is to move your primary partitions to have the hole next to the extended partitions.");
- }
- }
-
- if ($e && $part->{start} < $e->{start}) {
- my $l = first (@{$hd->{extended}});
-
- #- the first is a special case, must recompute its real size
- $l->{start} = round_down($l->{normal}{start} - 1, $hd->cylinder_size());
- $l->{size} = $l->{normal}{start} + $l->{normal}{size} - $l->{start};
- my $ext = { %$l };
- unshift @{$hd->{extended}}, { type => 5, raw => [ $part, $ext, {}, {} ], normal => $part, extended => $ext };
- #- size will be autocalculated :)
- } else {
- my ($ext, $ext_size) = is_empty_array_ref($hd->{extended}) ?
- ($hd->{primary}, -1) : #- -1 size will be computed by adjust_main_extended
- (top(@{$hd->{extended}}), $part->{size});
- my %ext = ( type => $extended_type || 5, start => $part->{start}, size => $ext_size );
-
- $hd->raw_add($ext->{raw}, \%ext);
- $ext->{extended} = \%ext;
- push @{$hd->{extended}}, { %ext, raw => [ $part, {}, {}, {} ], normal => $part };
- }
- $part->{start}++; $part->{size}--; #- let it start after the extended partition sector
- adjustStartAndEnd($hd, $part);
-
- adjust_main_extended($hd);
-}
-
-sub add {
- my ($hd, $part, $primaryOrExtended, $forceNoAdjust) = @_;
-
- get_normal_parts($hd) >= ($hd->{device} =~ /^rd/ ? 7 : $hd->{device} =~ /^(sd|ida|cciss|ataraid)/ ? 15 : 63) and cdie "maximum number of partitions handled by linux reached";
-
- $part->{notFormatted} = 1;
- $part->{isFormatted} = 0;
- $part->{rootDevice} = $hd->{device};
- $part->{start} ||= 1 if arch() !~ /^sparc/; #- starting at sector 0 is not allowed
- adjustStartAndEnd($hd, $part) unless $forceNoAdjust;
-
- my $e = $hd->{primary}{extended};
- my $nb_primaries = $hd->{device} =~ /^rd/ ? 3 : 1;
-
- if (arch() =~ /^sparc|ppc/ ||
- $primaryOrExtended eq 'Primary' ||
- $primaryOrExtended !~ /Extended/ && @{$hd->{primary}{normal} || []} < $nb_primaries) {
- eval { add_primary($hd, $part) };
- goto success if !$@;
- }
- eval { add_extended($hd, $part, $primaryOrExtended) } if $hd->hasExtended; #- try adding extended
- if ($@ || !$hd->hasExtended) {
- eval { add_primary($hd, $part) };
- die $@ if $@; #- send the add extended error which should be better
- }
- success:
- assign_device_numbers($hd);
- $hd->{isDirty} = 1;
- push @{$hd->{needKernelReread} ||= []}, $part if !$hd->{needKernelReread} || ref($hd->{needKernelReread}) eq 'ARRAY'
-}
-
-# search for the next partition
-sub next {
- my ($hd, $part) = @_;
-
- first(
- sort { $a->{start} <=> $b->{start} }
- grep { $_->{start} >= $part->{start} + $part->{size} }
- get_normal_parts($hd)
- );
-}
-sub next_start {
- my ($hd, $part) = @_;
- my $next = &next($hd, $part);
- $next ? $next->{start} : $hd->{totalsectors};
-}
-
-sub load {
- my ($hd, $file, $force) = @_;
-
- local *F;
- open F, $file or die _("Error reading file %s", $file);
-
- my $h;
- {
- local $/ = "\0";
- eval <F>;
- }
- $@ and die _("Restoring from file %s failed: %s", $file, $@);
-
- ref $h eq 'ARRAY' or die _("Bad backup file");
-
- my %h; @h{@fields2save} = @$h;
-
- $h{totalsectors} == $hd->{totalsectors} or $force or cdie "bad totalsectors";
-
- #- unsure we don't modify totalsectors
- local $hd->{totalsectors};
-
- @{$hd}{@fields2save} = @$h;
-
- delete @$_{qw(isMounted isFormatted notFormatted toFormat toFormatUnsure)} foreach get_normal_parts($hd);
- $hd->{isDirty} = $hd->{needKernelReread} = 1;
-}
-
-sub save {
- my ($hd, $file) = @_;
- my @h = @{$hd}{@fields2save};
- local *F;
- require Data::Dumper;
- open F, ">$file"
- and print F Data::Dumper->Dump([\@h], ['$h']), "\0"
- or die _("Error writing to file %s", $file);
-}
diff --git a/perl-install/partition_table/bsd.pm b/perl-install/partition_table/bsd.pm
deleted file mode 100644
index 431d17f1f..000000000
--- a/perl-install/partition_table/bsd.pm
+++ /dev/null
@@ -1,147 +0,0 @@
-package partition_table::bsd; # $Id$
-
-use diagnostics;
-use strict;
-use vars qw(@ISA);
-
-@ISA = qw(partition_table::raw);
-
-use common;
-use partition_table::raw;
-use partition_table;
-use c;
-
-#- very bad and rough handling :(
-my %typeToDos = (
- 8 => 0x83,
- 1 => 0x82,
-);
-my %typeFromDos = reverse %typeToDos;
-
-my ($main_format, $main_fields) = list2kv(
- I => 'magic',
- S => 'type',
- S => 'subtype',
- a16 => 'typename',
- a16 => 'packname',
- I => 'secsize',
- I => 'nsectors',
- I => 'ntracks',
- I => 'ncylinders',
- I => 'secpercyl',
- I => 'secprtunit',
- S => 'sparespertrack',
- S => 'sparespercyl',
- I => 'acylinders',
- S => 'rpm',
- S => 'interleave',
- S => 'trackskew',
- S => 'cylskew',
- I => 'headswitch',
- I => 'trkseek',
- I => 'flags',
- a20 => 'drivedata',
- a20 => 'spare',
- I => 'magic2',
- S => 'checksum',
- S => 'npartitions',
- I => 'bbsize',
- I => 'sbsize',
- a128=> 'partitions',
- a236=> 'blank',
-);
-$main_format = join '', @$main_format;
-
-my @fields = qw(size start fsize type frag cpg);
-my $format = "I I I C C S";
-my $magic = 0x82564557;
-my $nb_primary = 8;
-my $offset = 0x40;
-
-sub read($$) {
- my ($hd, $sector) = @_;
- my $tmp;
-
- local *F; partition_table::raw::openit($hd, *F) or die "failed to open device";
- c::lseek_sector(fileno(F), $sector, $offset) or die "reading of partition in sector $sector failed";
-
- sysread F, $tmp, psizeof($main_format) or die "error while reading partition table in sector $sector";
- my %info; @info{@$main_fields} = unpack $main_format, $tmp;
-
- #- TODO verify checksum
-
- my $size = psizeof($format);
- my @pt = map {
- my %h; @h{@fields} = unpack $format, $_;
- $h{type} = $typeToDos{$h{type}} || $h{type};
- \%h;
- } $info{partitions} =~ /(.{$size})/g;
-
- #- check magic number
- $info{magic} == $magic or die "bad magic number on disk $hd->{device}";
- $info{magic2} == $magic or die "bad magic number on disk $hd->{device}";
-
- [ @pt ], \%info;
-}
-
-# write the partition table (and extended ones)
-# for each entry, it uses fields: start, size, type, active
-sub write($$$;$) {
- my ($hd, $sector, $pt, $info) = @_;
-
- #- handle testing for writing partition table on file only!
- local *F;
- if ($::testing) {
- my $file = "/tmp/partition_table_$hd->{device}";
- open F, ">$file" or die "error opening test file $file";
- } else {
- partition_table::raw::openit($hd, *F, 2) or die "error opening device $hd->{device} for writing";
- c::lseek_sector(fileno(F), $sector, $offset) or return 0;
- }
-
- #- TODO compute checksum
-
- $info->{npartitions} = $nb_primary; #- is it ok?
-
- @$pt == $nb_primary or die "partition table does not have $nb_primary entries";
- $info->{partitions} = join '', map {
- local $_->{type} = $typeFromDos{$_->{type}} || $_->{type};
- pack $format, @$_{@fields};
- } @$pt;
-
- syswrite F, pack($main_format, @$info{@$main_fields}), psizeof($main_format) or return 0;
- 1;
-}
-
-sub info {
- my ($hd) = @_;
- my $dtype_scsi = 4; #- taken from fdisk, removed unused one,
- my $dtype_ST506 = 6; #- see fdisk for more
-
- {
- magic => $magic,
- magic2 => $magic,
- dtype => $hd->{device} =~ /^sd/ ? $dtype_scsi : $dtype_ST506,
- secsize => $common::SECTORSIZE,
- ncylinders => $hd->{geom}{cylinders},
- secpercyl => $hd->cylinder_size(),
- secprtunit => $hd->{geom}{totalsectors},
- rpm => 3600,
- interleave => 1,
- trackskew => 0,
- cylskew => 0,
- headswitch => 0,
- trkseek => 0,
- bbsize => 8192, #- size of boot area, with label
- sbsize => 8192, #- max size of fs superblock
- };
-}
-
-sub clear_raw {
- my ($hd) = @_;
- { raw => [ ({}) x $nb_primary ], info => info($hd) };
-}
-
-sub first_usable_sector { 2048 }
-
-1;
diff --git a/perl-install/partition_table/dos.pm b/perl-install/partition_table/dos.pm
deleted file mode 100644
index a6ad4be76..000000000
--- a/perl-install/partition_table/dos.pm
+++ /dev/null
@@ -1,99 +0,0 @@
-package partition_table::dos; # $Id$
-
-use diagnostics;
-use strict;
-use vars qw(@ISA);
-
-@ISA = qw(partition_table::raw);
-
-use common;
-use partition_table::raw;
-use partition_table;
-use c;
-
-my @fields = qw(active start_head start_sec start_cyl type end_head end_sec end_cyl start size);
-my $format = "C8 V2";
-my $magic = "\x55\xAA";
-my $nb_primary = 4;
-
-my $offset = $common::SECTORSIZE - length($magic) - $nb_primary * common::psizeof($format);
-
-sub hasExtended { 1 }
-
-sub compute_CHS($$) {
- my ($hd, $e) = @_;
- my @l = qw(cyl head sec);
- @$e{map { "start_$_" } @l} = $e->{start} || $e->{type} ? CHS2rawCHS($hd, sector2CHS($hd, $e->{start})) : (0,0,0);
- @$e{map { "end_$_" } @l} = $e->{start} || $e->{type} ? CHS2rawCHS($hd, sector2CHS($hd, $e->{start} + $e->{size} - 1)) : (0,0,0);
- 1;
-}
-
-sub CHS2rawCHS {
- my ($hd, $c, $h, $s) = @_;
- if ($c > 1023) {
- #- no way to have a #cylinder >= 1024
- $c = 1023;
- $h = $hd->{geom}{heads} - 1;
- $s = $hd->{geom}{sectors};
- }
- ($c & 0xff, $h, $s | ($c >> 2 & 0xc0));
-}
-
-# returns (cylinder, head, sector)
-sub sector2CHS {
- my ($hd, $start) = @_;
- my ($s, $h);
- ($start, $s) = divide($start, $hd->{geom}{sectors});
- ($start, $h) = divide($start, $hd->{geom}{heads});
- ($start, $h, $s + 1);
-}
-
-sub read {
- my ($hd, $sector) = @_;
- my $tmp;
-
- local *F; partition_table::raw::openit($hd, *F) or die "failed to open device";
- c::lseek_sector(fileno(F), $sector, $offset) or die "reading of partition in sector $sector failed";
-
- my @pt = map {
- sysread F, $tmp, psizeof($format) or die "error while reading partition table in sector $sector";
- my %h; @h{@fields} = unpack $format, $tmp;
- \%h;
- } (1..$nb_primary);
-
- #- check magic number
- sysread F, $tmp, length $magic or die "error reading magic number on disk $hd->{device}";
- $tmp eq $magic or die "bad magic number on disk $hd->{device}";
-
- [ @pt ];
-}
-
-# write the partition table (and extended ones)
-# for each entry, it uses fields: start, size, type, active
-sub write($$$;$) {
- my ($hd, $sector, $pt) = @_;
-
- #- handle testing for writing partition table on file only!
- local *F;
- if ($::testing) {
- my $file = "/tmp/partition_table_$hd->{device}";
- open F, ">$file" or die "error opening test file $file";
- } else {
- partition_table::raw::openit($hd, *F, 2) or die "error opening device $hd->{device} for writing";
- c::lseek_sector(fileno(F), $sector, $offset) or return 0;
- }
-
- @$pt == $nb_primary or die "partition table does not have $nb_primary entries";
- foreach (@$pt) {
- compute_CHS($hd, $_);
- local $_->{start} = $_->{local_start} || 0;
- $_->{active} ||= 0; $_->{type} ||= 0; $_->{size} ||= 0; #- for no warning
- syswrite F, pack($format, @$_{@fields}), psizeof($format) or return 0;
- }
- syswrite F, $magic, length $magic or return 0;
- 1;
-}
-
-sub clear_raw { { raw => [ ({}) x $nb_primary ] } }
-
-1;
diff --git a/perl-install/partition_table/empty.pm b/perl-install/partition_table/empty.pm
deleted file mode 100644
index e90991684..000000000
--- a/perl-install/partition_table/empty.pm
+++ /dev/null
@@ -1,36 +0,0 @@
-package partition_table::empty; # $Id$
-
-#- this is a mainly dummy partition table. If we find it's empty, we just call -
-#- zero_MBR which will take care of bless'ing us to the partition table type best
-#- suited
-
-
-use diagnostics;
-use strict;
-use vars qw(@ISA);
-
-@ISA = qw(partition_table::raw);
-
-use common;
-use partition_table::raw;
-use partition_table;
-use c;
-
-
-sub read($$) {
- my ($hd, $sector) = @_;
- my $tmp;
-
- local *F; partition_table::raw::openit($hd, *F) or die "failed to open device";
- c::lseek_sector(fileno(F), $sector, 0) or die "reading of partition in sector $sector failed";
-
- #- check magic number
- sysread F, $tmp, 512 or die "error reading magic number on disk $hd->{device}";
- $tmp eq substr($tmp, 0, 1) x 512 or die "bad magic number on disk $hd->{device}";
-
- partition_table::raw::zero_MBR($hd);
-
- $hd->{primary}{raw};
-}
-
-1;
diff --git a/perl-install/partition_table/gpt.pm b/perl-install/partition_table/gpt.pm
deleted file mode 100644
index 01de8f8a7..000000000
--- a/perl-install/partition_table/gpt.pm
+++ /dev/null
@@ -1,266 +0,0 @@
-package partition_table::gpt; # $Id$
-
-use diagnostics;
-use strict;
-use vars qw(@ISA);
-
-@ISA = qw(partition_table::raw);
-
-use common;
-use partition_table::raw;
-use partition_table::dos;
-use partition_table;
-use c;
-
-my %gpt_types = (
- 0x00 => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
- 0x82 => "\x6d\xfd\x57\x06\xab\xa4\xc4\x43\x84\xe5\x09\x33\xc8\x4b\x4f\x4f",
- 0x83 => "\xA2\xA0\xD0\xEB\xE5\xB9\x33\x44\x87\xC0\x68\xB6\xB7\x26\x99\xC7",
- 0x8e => "\x79\xd3\xd6\xe6\x07\xf5\xc2\x44\xa2\x3c\x23\x8f\x2a\x3d\xf9\x28",
- 0xfd => "\x0f\x88\x9d\xa1\xfc\x05\x3b\x4d\xa0\x06\x74\x3f\x0f\x84\x91\x1e",
- 0xef => "\x28\x73\x2A\xC1\x1F\xF8\xd2\x11\xBA\x4B\x00\xA0\xC9\x3E\xC9\x3B",
- # legacy_partition_table => "\x41\xEE\x4D\x02\xE7\x33\xd3\x11\x9D\x69\x00\x08\xC7\x81\xF3\x9F"
- # PARTITION_MSFT_RESERVED_GUID "\x16\xE3\xC9\xE3\x5C\x0B\xB8\x4D\x81\x7D\xF9\x2D\xF0\x02\x15\xAE"
- #PARTITION_RESERVED_GUID "\x39\x33\xa6\x8d\x07\x00\xc0\x60\xc4\x36\x08\x3a\xc8\x23\x09\x08"
-);
-
-my $current_revision = 0x00010200;
-my ($main_format, $main_fields) = list2kv(
- a8 => 'magic',
- V => 'revision',
- V => 'headerSize',
- V => 'headerCRC32',
- a4 => 'blank1',
- Q => 'myLBA',
- Q => 'alternateLBA',
- Q => 'firstUsableLBA',
- Q => 'lastUsableLBA',
- a16 => 'guid',
- Q => 'partitionEntriesLBA',
- V => 'nbPartitions',
- V => 'partitionEntrySize',
- V => 'partitionEntriesCRC32',
-);
-
-my ($partitionEntry_format, $partitionEntry_fields) = list2kv(
- a16 => 'gpt_type',
- a16 => 'guid',
- Q => 'start',
- Q => 'ending',
- a8 => 'efi_attributes',
- a72 => 'name',
-);
-
-my ($guid_format, $guid_fields) = list2kv(
- N => 'time_low',
- n => 'time_mid',
- n => 'time_hi_and_version',
- n => 'clock_seq',
- a6 => 'node',
-);
-
-$_ = join('', @$_) foreach $main_format, $partitionEntry_format, $guid_format;
-
-my $magic = "EFI PART";
-
-sub generate_guid {
- my $tmp;
- local *F;
- open F, devices::make("random") or die "Could not open /dev/random for GUID generation";
- read F, $tmp, psizeof($guid_format);
-
- my %guid; @guid{@$guid_fields} = unpack $guid_format, $tmp;
- $guid{clock_seq} = ($guid{clock_seq} & 0x3fff) | 0x8000;
- $guid{time_hi_and_version} = ($guid{time_hi_and_version} & 0x0fff) | 0x4000;
- pack($guid_format, @guid{@$guid_fields});
-}
-
-sub crc32 {
- my ($buffer) = @_;
-
- my $crc = 0xFFFFFFFF;
- foreach (unpack "C*", $buffer) {
- my $subcrc = ($crc ^ $_) & 0xFF;
- for (my $j = 8; $j > 0; $j--){
- my $b = $subcrc & 1;
- $subcrc = ($subcrc >> 1) & 0x7FFFFFFF;
- $subcrc = $subcrc ^ 0xEDB88320 if $b;
- }
- $crc = ($crc >> 8) ^ $subcrc;
- }
- $crc ^ 0xFFFFFFFF;
-}
-
-sub compute_headerCRC32 {
- my ($info) = @_;
- local $info->{headerCRC32} = 0;
- crc32(pack($main_format, @$info{@$main_fields}));
-}
-
-sub read_header {
- my ($sector, $F) = @_;
- my $tmp;
-
- c::lseek_sector(fileno($F), $sector, 0) or die "reading of partition in sector $sector failed";
-
- sysread $F, $tmp, psizeof($main_format) or die "error while reading partition table in sector $sector";
- my %info; @info{@$main_fields} = unpack $main_format, $tmp;
-
- $info{magic} eq $magic or die "bad magic number on disk $hd->{device}";
- $info{myLBA} == $sector or die "myLBA is not the same";
- $info{headerSize} == psizeof($main_format) or die "bad partition table header size";
- $info{partitionEntrySize} == psizeof($partitionEntry_format) or die "bad partitionEntrySize";
- $info{revision} <= $current_revision or log::l("oops, this is a new GPT revision ($info{revision} > $current_revision)");
-
- $info{headerCRC32} == compute_headerCRC32(\%info) or die "bad partition table checksum";
- \%info
-}
-
-sub read_partitionEntries {
- my ($info, $F) = @_;
- my $tmp;
-
- c::lseek_sector(fileno($F), $info->{partitionEntriesLBA}, 0) or die "can't seek to sector partitionEntriesLBA";
- sysread $F, $tmp, psizeof($partitionEntry_format) * $info->{nbPartitions} or die "error while reading partition table in sector $info->{partitionEntriesLBA}";
- $info->{partitionEntriesCRC32} == crc32($tmp) or die "bad partition entries checksum";
-
- c::lseek_sector(fileno($F), $info->{partitionEntriesLBA}, 0) or die "can't seek to sector partitionEntriesLBA";
- my %gpt_types_rev = reverse %gpt_types;
- my @pt =
- map {
- sysread $F, $tmp, psizeof($partitionEntry_format) or die "error while reading partition table in sector $info->{partitionEntriesLBA}";
- my %h; @h{@$partitionEntry_fields} = unpack $partitionEntry_format, $tmp;
- $h{size} = $h{ending} - $h{start} + 1;
- $h{type} = $gpt_types_rev{$h{gpt_type}};
- $h{type} = 0x100 if !defined $h{type};
- \%h;
- } (1 .. $info->{nbPartitions});
- \@pt;
-}
-
-sub read {
- my ($hd, $sector) = @_;
- my $tmp;
-
- my $l = partition_table::dos::read($hd, $sector);
- my @l = grep { $_->{size} && $_->{type} && !partition_table::isExtended($_) } @$l;
- @l == 1 or die "bad PMBR";
- $l[0]{type} == 0xee or die "bad PMBR";
- my $myLBA = $l[0]{start};
-
- local *F; partition_table::raw::openit($hd, *F) or die "failed to open device";
- my $info1 = eval { read_header($myLBA, *F) };
- my $info2 = eval { read_header($info1->{alternateLBA} || $l[0]{start} + $l[0]{size} - 1, *F) }; #- what about using $hd->{totalsectors} ???
- my $info = $info1 || { %$info2, myLBA => $info2->{alternateLBA}, alternateLBA => $info2->{myLBA}, partitionEntriesLBA => $info2->{alternateLBA} + 1 } or die;
- my $pt = $info1 && $info2 ?
- eval { $info1 && read_partitionEntries($info1, *F) } || read_partitionEntries($info2, *F) :
- read_partitionEntries($info, *F);
- $hd->raw_removed($pt);
-
- $pt, $info;
-}
-
-# write the partition table (and extended ones)
-# for each entry, it uses fields: start, size, type, active
-sub write {
- my ($hd, $sector, $pt, $info) = @_;
-
- foreach (@$pt) {
- $_->{ending} = $_->{start} + $_->{size} - 1;
- $_->{guid} ||= generate_guid;
- $_->{gpt_type} = $gpt_types{$_->{type}} || $_->{gpt_type} || $gpt_types{0x83};
- }
- my $partitionEntries = join('', map {
- pack($partitionEntry_format, @$_{@$partitionEntry_fields})
- } (@$pt, ({}) x ($info->{nbPartitions} - @$pt)));
-
- $info->{partitionEntriesCRC32} = crc32($partitionEntries);
- $info->{headerCRC32} = compute_headerCRC32($info);
-
- my $info2 = { %$info,
- myLBA => $info->{alternateLBA}, alternateLBA => $info->{myLBA},
- partitionEntriesLBA => $info->{alternateLBA} - psizeof($partitionEntry_format) * $info->{nbPartitions} / 512,
- };
- $info2->{headerCRC32} = compute_headerCRC32($info2);
-
- {
- # write the PMBR
- my $pmbr = partition_table::dos::clear_raw();
- $pmbr->{raw}[0] = { type => 0xee, local_start => $info->{myLBA}, size => $info->{alternateLBA} - $info->{myLBA} + 1 };
- partition_table::dos::write($hd, $sector, $pmbr->{raw});
- }
-
- local *F;
- partition_table::raw::openit($hd, *F, 2) or die "error opening device $hd->{device} for writing";
-
- c::lseek_sector(fileno(F), $info->{myLBA}, 0) or return 0;
- #- pad with 0's
- syswrite F, pack($main_format, @$info{@$main_fields}) . "\0" x 512, 512 or return 0;
-
- c::lseek_sector(fileno(F), $info->{alternateLBA}, 0) or return 0;
- #- pad with 0's
- syswrite F, pack($main_format, @$info2{@$main_fields}) . "\0" x 512, 512 or return 0;
-
- c::lseek_sector(fileno(F), $info->{partitionEntriesLBA}, 0) or return 0;
- syswrite F, $partitionEntries or return 0;
-
- c::lseek_sector(fileno(F), $info2->{partitionEntriesLBA}, 0) or return 0;
- syswrite F, $partitionEntries or return 0;
-
- common::sync();
- 1;
-}
-
-sub raw_removed {
- my ($hd, $raw) = @_;
- @$raw = grep { $_->{size} && $_->{type} } @$raw;
-}
-sub can_raw_add {
- my ($hd) = @_;
- @{$hd->{primary}{raw}} < $hd->{primary}{info}{nbPartitions};
-}
-sub raw_add {
- my ($hd, $raw, $part) = @_;
- $hd->can_raw_add or die "raw_add: partition table already full";
- push @$raw, $part;
-}
-
-sub adjustStart {}
-sub adjustEnd {}
-
-sub first_usable_sector {
- my ($hd) = @_;
- $hd->{primary}{info}{firstUsableLBA};
-}
-sub last_usable_sector {
- my ($hd) = @_;
- $hd->{primary}{info}{lastUsableLBA} + 1;
-}
-
-sub info {
- my ($hd) = @_;
- my $nb_sect = 32;
-
- #- build a default suitable partition table,
- #- checksum will be built when writing on disk.
- {
- magic => $magic,
- revision => $current_revision,
- headerSize => psizeof($main_format),
- myLBA => 1,
- alternateLBA => $hd->{totalsectors} - 1,
- firstUsableLBA => $nb_sect + 2,
- lastUsableLBA => $hd->{totalsectors} - $nb_sect - 2,
- guid => generate_guid,
- partitionEntriesLBA => 2,
- nbPartitions => $nb_sect * 512 / psizeof($partitionEntry_format),
- partitionEntrySize => psizeof($partitionEntry_format),
- };
-}
-
-sub clear_raw {
- my ($hd) = @_;
- { raw => [], info => info($hd) };
-}
-
-1;
diff --git a/perl-install/partition_table/lvm_PV.pm b/perl-install/partition_table/lvm_PV.pm
deleted file mode 100644
index 4a55d3810..000000000
--- a/perl-install/partition_table/lvm_PV.pm
+++ /dev/null
@@ -1,43 +0,0 @@
-package partition_table::lvm; # $Id$
-
-use diagnostics;
-use strict;
-
-our @ISA = qw(partition_table::raw);
-
-use partition_table::raw;
-use c;
-
-my $magic = "HM\1\0";
-my $offset = 0;
-
-
-#- Allows people having PVs on unpartitioned disks to install
-#- (but no way to create such beasts)
-#-
-#- another way to handle them would be to ignore those disks,
-#- but this would make those hds unshown in diskdrake,
-#- disallowing to zero_MBR, clearing this PV
-
-
-sub read {
- my ($hd, $sector) = @_;
-
- local *F; partition_table::raw::openit($hd, *F) or die "failed to open device";
- c::lseek_sector(fileno(F), $sector, $offset) or die "reading of partition in sector $sector failed";
-
- sysread F, my $tmp, length $magic or die "error reading magic number on disk $hd->{file}";
- $tmp eq $magic or die "bad magic number on disk $hd->{file}";
-
- [ ];
-}
-
-sub write {
- die "ERROR: should not be writing raw disk lvm PV!!";
-}
-
-sub clear_raw {
- die "ERROR: should not be creating new raw disk lvm PV!!";
-}
-
-1;
diff --git a/perl-install/partition_table/mac.pm b/perl-install/partition_table/mac.pm
deleted file mode 100644
index 89fb9ceaf..000000000
--- a/perl-install/partition_table/mac.pm
+++ /dev/null
@@ -1,398 +0,0 @@
-package partition_table::mac; # $Id$
-
-use diagnostics;
-#use strict; - fixed other PPC code to comply, but program bails on empty partition table - sbenedict
-use vars qw(@ISA $freepart_device $bootstrap_part $freepart_start $freepart_size $freepart_part $macos_part);
-
-@ISA = qw(partition_table::raw);
-
-use common;
-use partition_table::raw;
-use partition_table;
-use c;
-
-my %typeToDos = (
- "Apple_partition_map" => 0x401,
- "Apple_Bootstrap" => 0x401,
- "Apple_Driver43" => 0x401,
- "Apple_Driver_IOKit" => 0x401,
- "Apple_Patches" => 0x401,
- "Apple_HFS" => 0x402,
- "Apple_UNIX_SVR2" => 0x83,
- "Apple_UNIX_SVR2" => 0x183,
- "Apple_UNIX_SVR2" => 0x283,
- "Apple_UNIX_SVR2" => 0x383,
- "Apple_UNIX_SVR2" => 0x483,
- "Apple_Free" => 0x0,
-);
-my %typeFromDos = reverse %typeToDos;
-
-
-my ($bz_format, $bz_fields) = list2kv(
- n => 'bzSig',
- n => 'bzBlkSize',
- N => 'bzBlkCnt',
- n => 'bzDevType',
- n => 'bzDevID',
- N => 'bzReserved',
- n => 'bzDrvrCnt',
-);
-$bz_format = join '', @$bz_format;
-
-
-my ($dd_format, $dd_fields) = list2kv(
- N => 'ddBlock',
- n => 'ddSize',
- n => 'ddType',
-);
-$dd_format = join '', @$dd_format;
-
-
-my ($p_format, $p_fields) = list2kv(
- n => 'pSig',
- n => 'pSigPad',
- N => 'pMapEntry',
- N => 'pPBlockStart',
- N => 'pPBlocks',
-
- a32 => 'pName',
- a32 => 'pType',
-
- N => 'pLBlockStart',
- N => 'pLBlocks',
- N => 'pFlags',
- N => 'pBootBlock',
- N => 'pBootBytes',
-
- N => 'pAddrs1',
- N => 'pAddrs2',
- N => 'pAddrs3',
- N => 'pAddrs4',
- N => 'pChecksum',
-
- a16 => 'pProcID',
- a128 => 'pBootArgs',
- a248 => 'pReserved',
-);
-$p_format = join '', @$p_format;
-
-my $magic = 0x4552;
-my $pmagic = 0x504D;
-
-sub first_usable_sector { 1 }
-
-sub adjustStart($$) {
- my ($hd, $part) = @_;
- my $end = $part->{start} + $part->{size};
- my $partmap_end = $hd->{primary}{raw}[0]{size};
-
- if ($part->{start} <= $partmap_end) {
- $part->{start} = $partmap_end + 1;
- $part->{size} = $end - $part->{start};
- }
-}
-
-sub adjustEnd($$) {
- my ($hd, $part) = @_;
-}
-
-sub read($$) {
- my ($hd, $sector) = @_;
- my $tmp;
-
- local *F; partition_table::raw::openit($hd, *F) or die "failed to open device";
- c::lseek_sector(fileno(F), $sector, 0) or die "reading of partition in sector $sector failed";
-
- sysread F, $tmp, psizeof($bz_format) or die "error while reading bz \(Block Zero\) in sector $sector";
- my %info; @info{@$bz_fields} = unpack $bz_format, $tmp;
- my $i;
-
- foreach $i (0 .. $info{bzDrvrCnt}-1) {
- sysread F, $tmp, psizeof($dd_format) or die "error while reading driver data in sector $sector";
- my %dd; @dd{@$dd_fields} = unpack $dd_format, $tmp;
- push @{$info{ddMap}}, \%dd;
- }
-
- #- check magic number
- $info{bzSig} == $magic or die "bad magic number on disk $hd->{device}";
-
- my $numparts;
- c::lseek_sector(fileno(F), $sector, 516) or die "reading of partition in sector $sector failed";
- sysread F, $tmp, 4 or die "error while reading partition info in sector $sector";
- $numparts = unpack "N", $tmp;
-
- my $partmapsize;
- c::lseek_sector(fileno(F), $sector, 524) or die "reading of partition in sector $sector failed";
- sysread F, $tmp, 4 or die "error while reading partition info in sector $sector";
- $partmapsize = ((unpack "N", $tmp) * $info{bzBlkSize}) / psizeof($p_format);
-
- c::lseek_sector(fileno(F), $sector, 512) or die "reading of partition in sector $sector failed";
-
- my @pt;
- for ($i=0;$i<$partmapsize;$i++) {
- my $part;
- sysread F, $part, psizeof($p_format) or die "error while reading partition info in sector $sector";
-
- push @pt, map {
- my %h; @h{@$p_fields} = unpack $p_format, $part;
- if ($i < $numparts && $h{pSig} eq $pmagic) {
-
- $h{size} = ($h{pPBlocks} * $info{bzBlkSize}) / 512;
- $h{start} = ($h{pPBlockStart} * $info{bzBlkSize}) / 512;
-
- if ($h{pType} =~ /^Apple_UNIX_SVR2/i) {
- $h{pName} =~ /swap/i ? ($h{type} = 0x82) : ($h{type} = 0x83);
- } elsif ($h{pType} =~ /^Apple_Free/i) {
- #- need to locate a 1MB partition to setup a bootstrap on
- if (defined $freepart_start && $freepart_size >= 1) {
- #- already found a suitable partition
- } else {
- $freepart_start = $h{start};
- $freepart_size = $h{size}/2048;
- $freepart_device = $hd;
- $freepart_part = "/dev/" . $hd->{device} . ($i+1);
- log::l("free apple partition found on drive /dev/$freepart_device->{device}, block $freepart_start, size $freepart_size");
- }
- $h{type} = 0x0;
- $h{pName} = 'Extra';
- } elsif ($h{pType} =~ /^Apple_HFS/i) {
- $h{type} = 0x402;
- if (defined $macos_part) {
- #- swag at identifying MacOS - 1st HFS partition
- } else {
- $macos_part = "/dev/" . $hd->{device} . ($i+1);
- log::l("found MacOS at partition $macos_part");
- }
- } elsif ($h{pType} =~ /^Apple_Partition_Map/i) {
- $h{type} = 0x401;
- $h{isMap} = 1;
- } elsif ($h{pType} =~ /^Apple_Bootstrap/i) {
- $h{type} = 0x401;
- $h{isBoot} = 1;
- if (defined $bootstrap_part) {
- #found a bootstrap already - use it, but log the find
- log::l("found another apple bootstrap at partition /dev/$hd->{device}" . ($i+1));
- } else {
- $bootstrap_part = "/dev/" . $hd->{device} . ($i+1);
- log::l("found apple bootstrap at partition $bootstrap_part");
- }
- } else {
- $h{type} = 0x401;
- $h{isDriver} = 1;
- };
-
- # Let's see if this partition is a driver.
- foreach (@{$info{ddMap}}) {
- $_->{ddBlock} == $h{pPBlockStart} and $h{isDriver} = 1;
- }
-
- }
- \%h;
- } [ $part ];
- };
-
- [ @pt ], \%info;
-}
-
-sub write($$$;$) {
- my ($hd, $sector, $pt, $info) = @_;
-
- #- handle testing for writing partition table on file only!
- local *F;
- if ($::testing) {
- my $file = "/tmp/partition_table_$hd->{device}";
- open F, ">$file" or die "error opening test file $file";
- } else {
- partition_table::raw::openit($hd, *F, 2) or die "error opening device $hd->{device} for writing";
- c::lseek_sector(fileno(F), $sector, 0) or return 0;
- }
-
- # Find the partition map.
- my @partstowrite;
- my $part = $pt->[0];
- (defined $part->{isMap}) or die "the first partition is not the partition map";
- push @partstowrite, $part;
-
- # Now go thru the partitions, sort and fill gaps.
- my $last;
- while ($part) {
- $last = $part;
- $part = &partition_table::next($hd, $part);
- $part or last;
-
- if ($last->{start} + $last->{size} < $part->{start}) {
- #There is a gap between partitions. Fill it and move on.
- push @partstowrite, {
- type => 0x0,
- start => $last->{start} + $last->{size},
- size => $part->{start} - ($last->{start} + $last->{size}),
- };
- }
- push @partstowrite, $part;
- };
-
- # now, fill a gap at the end if there is one.
- if ($last->{start} + $last->{size} < $hd->{totalsectors}) {
- push @partstowrite, {
- type => 0x0,
- start => $last->{start} + $last->{size},
- size => $hd->{totalsectors} - ($last->{start} + $last->{size}),
- };
- }
-
- # Since we didn't create any new drivers, let's try and match up our driver records with out partitons and see if any are missing.
- $info->{bzDrvrCnt} = 0;
- my @ddstowrite;
- my $dd;
- foreach $dd (@{$info->{ddMap}}) {
- foreach (@partstowrite) {
- if ($dd->{ddBlock} == $_->{pPBlockStart}) {
- push @ddstowrite, $dd;
- $info->{bzDrvrCnt}++;
- last;
- }
- }
- }
-
- # Now let's write our first block.
- syswrite F, pack($bz_format, @$info{@$bz_fields}), psizeof($bz_format) or return 0;
-
- # ...and now the driver information.
- foreach (@ddstowrite) {
- syswrite F, pack($dd_format, @$_{@$dd_fields}), psizeof($dd_format) or return 0;
- }
- # zero the rest of the data in the first block.
- foreach ( 1 .. (494 - ((@ddstowrite) * 8))) {
- syswrite F, "\0", 1 or return 0;
- }
- #c::lseek_sector(fileno(F), $sector, 512) or return 0;
- # Now, we iterate thru the partstowrite and write them.
- foreach (@partstowrite) {
- if (!defined $_->{pSig}) {
- # The values we need to write to disk are not defined. Let's make them up.
- $_->{pSig} = $pmagic;
- $_->{pSigPad} = 0;
- $_->{pPBlockStart} = ($_->{start} * 512) / $info->{bzBlkSize};
- $_->{pPBlocks} = ($_->{size} * 512) / $info->{bzBlkSize};
- $_->{pLBlockStart} = 0;
- $_->{pLBlocks} = $_->{pPBlocks};
- $_->{pBootBlock} = 0;
- $_->{pBootBytes} = 0;
- $_->{pAddrs1} = 0;
- $_->{pAddrs2} = 0;
- $_->{pAddrs3} = 0;
- $_->{pAddrs4} = 0;
- $_->{pChecksum} = 0;
- $_->{pProcID} = "\0";
- $_->{pBootArgs} = "\0";
- $_->{pReserved} = "\0";
-
- if ($_->{type} == 0x402) {
- $_->{pType} = "Apple_HFS";
- $_->{pName} = "MacOS";
- $_->{pFlags} = 0x4000037F;
- } elsif ($_->{type} == 0x401 && $_->{start} == 1) {
- $_->{pType} = "Apple_Partition_Map";
- $_->{pName} = "Apple";
- $_->{pFlags} = 0x33;
- } elsif ($_->{type} == 0x401) {
- $_->{pType} = "Apple_Bootstrap";
- $_->{pName} = "bootstrap";
- $_->{pFlags} = 0x33;
- $_->{isBoot} = 1;
- log::l("writing a bootstrap at /dev/$_->{device}");
- $install_steps_interactive::new_bootstrap = 1 if !(defined $partition_table::mac::bootstrap_part);
- $bootstrap_part = "/dev/" . $_->{device};
- } elsif ($_->{type} == 0x82) {
- $_->{pType} = "Apple_UNIX_SVR2";
- $_->{pName} = "swap";
- $_->{pFlags} = 0x33;
- } elsif ($_->{type} == 0x83) {
- $_->{pType} = "Apple_UNIX_SVR2";
- $_->{pName} = "Linux Native";
- $_->{pFlags} = 0x33;
- } elsif ($_->{type} == 0x183) {
- $_->{pType} = "Apple_UNIX_SVR2";
- $_->{pName} = "Linux ReiserFS";
- $_->{pFlags} = 0x33;
- } elsif ($_->{type} == 0x283) {
- $_->{pType} = "Apple_UNIX_SVR2";
- $_->{pName} = "Linux XFS";
- $_->{pFlags} = 0x33;
- } elsif ($_->{type} == 0x383) {
- $_->{pType} = "Apple_UNIX_SVR2";
- $_->{pName} = "Linux JFS";
- $_->{pFlags} = 0x33;
- } elsif ($_->{type} == 0x483) {
- $_->{pType} = "Apple_UNIX_SVR2";
- $_->{pName} = "Linux ext3";
- $_->{pFlags} = 0x33;
- } elsif ($_->{type} == 0x0) {
- $_->{pType} = "Apple_Free";
- $_->{pName} = "Extra";
- $_->{pFlags} = 0x31;
- }
- };
- $_->{pMapEntry} = @partstowrite;
- syswrite F, pack($p_format, @$_{@$p_fields}), psizeof($p_format) or return 0;
- }
-
- common::sync();
-
- 1;
-}
-
-sub info {
- my ($hd) = @_;
-
- # - Build the first block of the drive.
-
- my $info = {
- bzSig => $magic,
- bzBlkSize => 512,
- bzBlkCnt => $hd->{totalsectors},
- bzDevType => 0,
- bzDevID => 0,
- bzReserved => 0,
- bzDrvrCnt => 0,
- };
-
- $info;
-}
-
-sub clear_raw {
- my ($hd) = @_;
- my @oldraw = @{$hd->{primary}{raw}};
- my $pt = { raw => [ ({}) x 63 ], info => info($hd) };
-
- #- handle special case for partition 1 which is the partition map.
- $pt->{raw}[0] = {
- type => 0x401,
- start => 1,
- size => 63,
- isMap => 1,
- };
-# $pt->{raw}[1] = {
-# type => 0x0,
-# start => 64,
-# size => $hd->{totalsectors} - 64,
-# isMap => 0,
-# };
- push @{$pt->{normal}}, $pt->{raw}[0];
-# push @{$pt->{normal}}, $pt->{raw}[1];
-
- #- Recover any Apple Drivers, if any.
- my $i = 1;
- foreach (@oldraw) {
- if (defined $_->{isDriver}) {
- $pt->{raw}[$i] = $_;
- push @{$pt->{normal}}, $pt->{raw}[$i];
- $i++;
- }
- };
- @{$pt->{info}{ddMap}} = @{$hd->{primary}{info}{ddMap}};
-
- $pt;
-}
-
-1;
diff --git a/perl-install/partition_table/raw.pm b/perl-install/partition_table/raw.pm
deleted file mode 100644
index 3be68fe56..000000000
--- a/perl-install/partition_table/raw.pm
+++ /dev/null
@@ -1,192 +0,0 @@
-package partition_table::raw; # $Id$
-
-use diagnostics;
-use strict;
-
-use common;
-use devices;
-use detect_devices;
-use log;
-use c;
-
-my @MBR_signatures = (
-if_(arch() =~ /ppc/,
- map { [ 'yaboot', 0, "PM", 0x200 * $_ + 0x10, "bootstrap\0" ] } 0 .. 61
-),
- [ 'empty', 0, "\0\0\0\0" ],
- [ 'grub', 0, "\xEBG", 0x17d, "stage1 \0" ],
- [ 'grub', 0, "\xEBH", 0x17e, "stage1 \0" ],
- [ 'grub', 0, "\xEBH", 0x18a, "stage1 \0" ],
- [ 'grub', 0, "\xEBH", 0x181, "GRUB \0" ],
- [ 'lilo', 0x2, "LILO" ],
- [ 'lilo', 0x6, "LILO" ],
- [ 'grub', 0x6, "GRUB" ],
- [ 'osbs', 0x2, "OSBS" ], #- http://www.prz.tu-berlin.de/~wolf/os-bs.html
- [ 'pqmagic', 0xef, "PQV" ],
- [ 'BootStar', 0x130, "BootStar:" ],
- [ 'DocsBoot', 0x148, 'DocsBoot' ],
- [ 'system_commander', 0x1ad, "SYSCMNDRSYS" ],
- [ 'Be Os', 0x24, 'Boot Manager' ],
- [ 'TimO', 0, 'IBM Thinkpad hibernation partition' ],
- [ 'dos', 0xa0, "\x25\x03\x4E\x02\xCD\x13" ],
- [ 'dos', 0xa0, "\x00\xB4\x08\xCD\x13\x72" ], #- nt2k's
- [ 'dos', 0x60, "\xBB\x00\x7C\xB8\x01\x02\x57\xCD\x13\x5F\x73\x0C\x33\xC0\xCD\x13" ], #- nt's
- [ 'dos', 0x70, "\x0C\x33\xC0\xCD\x13\x4F\x75\xED\xBE\xA3" ],
- [ 'freebsd', 0xC0, "\x00\x30\xE4\xCD\x16\xCD\x19\xBB\x07\x00\xB4" ],
- [ 'freebsd', 0x160, "\x6A\x10\x89\xE6\x48\x80\xCC\x40\xCD\x13" ],
- [ 'dummy', 0xAC, "\x0E\xB3\x07\x56\xCD\x10\x5E\xEB" ], #- caldera?
- [ 'ranish', 0x100, "\x6A\x10\xB4\x42\x8B\xF4\xCD\x13\x8B\xE5\x73" ],
- [ 'os2', 0x1c2, "\xA" ],
-);
-
-sub typeOfMBR($) { typeFromMagic(devices::make($_[0]), @MBR_signatures) }
-sub typeOfMBR_($) { typeFromMagic($_[0], @MBR_signatures) }
-
-sub hasExtended { 0 }
-
-sub cylinder_size($) {
- my ($hd) = @_;
- $hd->{geom}{sectors} * $hd->{geom}{heads};
-}
-sub first_usable_sector { 1 }
-sub last_usable_sector {
- my ($hd) = @_;
- $hd->{totalsectors};
-}
-
-#- default method for starting a partition, only head size or twice
-#- is allowed for starting a partition after a cylinder boundarie.
-sub adjustStart($$) {
- my ($hd, $part) = @_;
- my $end = $part->{start} + $part->{size};
-
- $part->{start} = round_up($part->{start},
- $part->{start} % cylinder_size($hd) < 2 * $hd->{geom}{sectors} ?
- $hd->{geom}{sectors} : cylinder_size($hd));
- $part->{size} = $end - $part->{start};
- $part->{size} > 0 or die "adjustStart get a too small partition to handle correctly";
-}
-#- adjusting end to match a cylinder boundary, two methods are used and must
-#- match at the end, else something is wrong and nothing will be done on
-#- partition table.
-#- $end2 is computed by removing 2 (or only 1 if only 2 heads on drive) groups
-#- of sectors, this is necessary to handle extended partition where logical
-#- partition start after 1 (or 2 accepted) groups of sectors (typically 63).
-#- $end is floating (is not on cylinder boudary) so we have to choice a good
-#- candidate, $end1 or $end2 should always be good except $end1 for small
-#- partition size.
-sub adjustEnd($$) {
- my ($hd, $part) = @_;
- my $end = $part->{start} + $part->{size};
- $end > $hd->{geom}{cylinders} * cylinder_size($hd) && $end <= $hd->{totalsectors} and return;
- my $end1 = round_down($end, cylinder_size($hd));
- my $end2 = round_up($end - ($hd->{geom}{heads} > 2 ? 2 : 1) * $hd->{geom}{sectors}, cylinder_size($hd));
- $end2 <= $hd->{geom}{cylinders} * cylinder_size($hd) or die "adjustEnd go beyond end of device geometry ($end2 > $hd->{totalsectors})";
- $part->{size} = ($end1 - $part->{start} > cylinder_size($hd) ? $end1 : $end2) - $part->{start};
- $part->{size} > 0 or die "adjustEnd get a too small partition to handle correctly";
-}
-
-sub get_geometry($) {
- my ($dev) = @_;
- my $g = "";
-
- local *F; sysopen F, $dev, 0 or return;
- ioctl(F, c::HDIO_GETGEO(), $g) or return;
- my %geom; @geom{qw(heads sectors cylinders start)} = unpack "CCSL", $g;
- $geom{totalcylinders} = $geom{cylinders};
-
- my $total;
- #- $geom{cylinders} is no good (only a ushort, that means less than 2^16 => at best 512MB)
- if ($total = c::total_sectors(fileno F)) {
- $geom{cylinders} = int $total / $geom{heads} / $geom{sectors};
- } else {
- $total = $geom{heads} * $geom{sectors} * $geom{cylinders}
- }
-
- { geom => \%geom, totalsectors => $total };
-}
-
-sub openit($$;$) { sysopen $_[1], $_[0]{file}, $_[2] || 0; }
-
-# cause kernel to re-read partition table
-sub kernel_read($) {
- my ($hd) = @_;
- common::sync();
- local *F; openit($hd, *F) or return 0;
- common::sync(); sleep(1);
- $hd->{rebootNeeded} = !ioctl(F, c::BLKRRPART(), 0);
- common::sync();
- close F;
- common::sync(); sleep(1);
-}
-
-sub raw_removed {
- my ($hd, $raw) = @_;
-}
-sub can_raw_add {
- my ($hd) = @_;
- $_->{size} || $_->{type} or return 1 foreach @{$hd->{primary}{raw}};
- 0;
-}
-sub raw_add {
- my ($hd, $raw, $part) = @_;
-
- foreach (@$raw) {
- $_->{size} || $_->{type} and next;
- $_ = $part;
- return;
- }
- die "raw_add: partition table already full";
-}
-
-sub zero_MBR {
- my ($hd) = @_;
- #- force the standard partition type for the architecture
- my $type = arch() =~ /ia64/ ? 'gpt' : arch() eq "alpha" ? "bsd" : arch() =~ /^sparc/ ? "sun" : arch() eq "ppc" ? "mac" : "dos";
- #- override standard mac type on PPC for IBM machines to dos
- $type = "dos" if (arch() =~ /ppc/ && detect_devices::get_mac_model() =~ /^IBM/);
- require("partition_table/$type.pm");
- bless $hd, "partition_table::$type";
- $hd->{primary} = $hd->clear_raw();
- delete $hd->{extended};
-}
-
-sub zero_MBR_and_dirty {
- my ($hd) = @_;
- zero_MBR($hd);
- $hd->{isDirty} = $hd->{needKernelReread} = 1;
-
-}
-
-#- ugly stuff needed mainly for Western Digital IDE drives
-#- try writing what we've just read, yells if it fails
-#- testing on last sector of head #0 (unused in 99% cases)
-#-
-#- return false if the device can't be written to (especially for Smartmedia)
-sub test_for_bad_drives {
- my ($hd) = @_;
-
- log::l("test_for_bad_drives($hd->{file})");
- my $sector = $hd->{geom}{sectors} - 1;
-
-
- local *F; openit($hd, *F, 2) or die "can't open device";
-
- my $seek = sub {
- c::lseek_sector(fileno(F), $sector, 0) or die "seeking to sector $sector failed";
- };
- my $tmp;
-
- &$seek; sysread F, $tmp, $SECTORSIZE or die "test_for_bad_drives: can't even read ($!)";
- &$seek; syswrite F, $tmp or die "test_for_bad_drives: can't even write ($!)";
-
- my $tmp2;
- &$seek; sysread F, $tmp2, $SECTORSIZE or die "test_for_bad_drives: can't even read again ($!)";
- $tmp eq $tmp2 or die
-_("Something bad is happening on your drive.
-A test to check the integrity of data has failed.
-It means writing anything on the disk will end up with random trash");
- 1;
-}
-
-1;
diff --git a/perl-install/partition_table/sun.pm b/perl-install/partition_table/sun.pm
deleted file mode 100644
index 6944130dc..000000000
--- a/perl-install/partition_table/sun.pm
+++ /dev/null
@@ -1,201 +0,0 @@
-package partition_table::sun; # $Id$
-
-use diagnostics;
-use strict;
-use vars qw(@ISA);
-
-@ISA = qw(partition_table::raw);
-
-use common;
-use partition_table::raw;
-use partition_table;
-use c;
-
-my ($main_format, $main_fields) = list2kv(
- a128 => 'info',
- a14 => 'spare0',
- a32 => 'infos',
- a246 => 'spare1',
- n => 'rspeed',
- n => 'pcylcount',
- n => 'sparecyl',
- a4 => 'spare2',
- n => 'ilfact',
- n => 'ncyl',
- n => 'nacyl',
- n => 'ntrks',
- n => 'nsect',
- a4 => 'spare3',
- a64 => 'partitions',
- n => 'magic',
- n => 'csum',
-);
-$main_format = join '', @$main_format;
-
-my ($fields1, $fields2) = ([ qw(type flags) ], [ qw(start_cylinder size) ]);
-my ($format1, $format2) = ("xCxC", "N2");
-my ($size1, $size2) = map { psizeof($_) } ($format1, $format2);
-my $magic = 0xDABE;
-my $nb_primary = 8;
-my $offset = 0;
-
-sub adjustStart($$) {
- my ($hd, $part) = @_;
- my $end = $part->{start} + $part->{size};
-
- #- since partition must always start on cylinders boundaries on sparc,
- #- note that if start sector is on the first cylinder, it is adjusted
- #- to 0 and it is valid, cylinder 0 bug is from bad define for sparc
- #- compilation of mke2fs combined with a blind kernel...
- $part->{start} = round_down($part->{start}, $hd->cylinder_size());
- $part->{size} = $end - $part->{start};
- $part->{size} = $hd->cylinder_size() if $part->{size} <= 0;
-}
-sub adjustEnd($$) {
- my ($hd, $part) = @_;
- my $end = $part->{start} + $part->{size};
- my $end2 = round_up($end, $hd->cylinder_size());
- $end2 = $hd->{geom}{cylinders} * $hd->cylinder_size() if $end2 > $hd->{geom}{cylinders} * $hd->cylinder_size();
- $part->{size} = $end2 - $part->{start};
-}
-
-#- compute crc checksum used for Sun Label partition, expect
-#- $tmp to be the 512 bytes buffer to be read/written to MBR.
-sub compute_crc($) {
- my ($tmp) = @_;
- my @l2b = unpack "n256", $tmp;
- my $crc = 0;
-
- map { $crc ^= $_ } @l2b;
-
- $crc;
-}
-
-sub read($$) {
- my ($hd, $sector) = @_;
- my $tmp;
-
- local *F; partition_table::raw::openit($hd, *F) or die "failed to open device";
- c::lseek_sector(fileno(F), $sector, $offset) or die "reading of partition in sector $sector failed";
-
- sysread F, $tmp, psizeof($main_format) or die "error while reading partition table in sector $sector";
- my %info; @info{@$main_fields} = unpack $main_format, $tmp;
-
- #- check magic number
- $info{magic} == $magic or die "bad magic number on disk $hd->{device}";
-
- #- check crc, csum contains the crc so result should be 0.
- compute_crc($tmp) == 0 or die "bad checksum";
-
- @{$hd->{geom}}{qw(cylinders heads sectors)} = @info{qw(ncyl ntrks nsect)};
-
- my @pt;
- my @infos_up = unpack $format1 x $nb_primary, $info{infos};
- my @partitions_up = unpack $format2 x $nb_primary, $info{partitions};
- for (0..$nb_primary-1) {
- my $h = { type => $infos_up[2 * $_], flag => $infos_up[1 + 2 * $_],
- start_cylinder => $partitions_up[2 * $_], size => $partitions_up[1 + 2 * $_] };
- $h->{start} = $sector + $h->{start_cylinder} * $hd->cylinder_size();
- $h->{type} && $h->{size} or $h->{$_} = 0 foreach keys %$h;
- push @pt, $h;
- }
-
-#- this code is completely broken by null char inside strings, it gets completely crazy :-)
-# my @pt = mapn {
-# my %h;
-# @h{@$fields1} = unpack $format1, $_[0];
-# @h{@$fields2} = unpack $format2, $_[1];
-# $h{start} = $sector + $h{start_cylinder} * $hd->cylinder_size();
-# $h{type} && $h{size} or $h{$_} = 0 foreach keys %h;
-# \%h;
-# } [ grep { $_ } split /(.{$size1})/o, $info{infos} ], [ grep { $_ } split /(.{$size2})/o, $info{partitions} ];
-
- [ @pt ], \%info;
-}
-
-# write the partition table (and extended ones)
-# for each entry, it uses fields: start, size, type, active
-sub write($$$;$) {
- my ($hd, $sector, $pt, $info) = @_;
-# my ($csize, $wdsize) = (0, 0);
-
- #- handle testing for writing partition table on file only!
- local *F;
- if ($::testing) {
- my $file = "/tmp/partition_table_$hd->{device}";
- open F, ">$file" or die "error opening test file $file";
- } else {
- partition_table::raw::openit($hd, *F, 2) or die "error opening device $hd->{device} for writing";
- c::lseek_sector(fileno(F), $sector, $offset) or return 0;
- }
-
- ($info->{infos}, $info->{partitions}) = map { join '', @$_ } list2kv map {
- $_->{start} % $hd->cylinder_size() == 0 or die "partition not at beginning of cylinder";
-# $csize += $_->{size} if $_->{type} != 5;
-# $wdsize += $_->{size} if $_->{type} == 5;
- $_->{flags} |= 0x10 if $_->{mntpoint} eq '/';
- $_->{flags} |= 0x01 if partition_table::isSwap($_);
- local $_->{start_cylinder} = $_->{start} / $hd->cylinder_size() - $sector;
- pack($format1, @$_{@$fields1}), pack($format2, @$_{@$fields2});
- } @$pt;
-# $csize == $wdsize or die "partitions are not using whole disk space";
-
- #- compute the checksum by building the buffer to write and call compute_crc.
- #- set csum to 0 so compute_crc will give the right csum value.
- $info->{csum} = 0;
- $info->{csum} = compute_crc(pack($main_format, @$info{@$main_fields}));
-
- syswrite F, pack($main_format, @$info{@$main_fields}), psizeof($main_format) or return 0;
-
- common::sync();
-
- 1;
-}
-
-sub info {
- my ($hd) = @_;
-
- #- take care of reduction of the number of cylinders, avoid loop of reduction!
- unless ($hd->{geom}{totalcylinders} > $hd->{geom}{cylinders}) {
- $hd->{geom}{totalcylinders} = $hd->{geom}{cylinders};
- $hd->{geom}{cylinders} -= 2;
-
- #- rebuild some constants according to number of cylinders.
- $hd->{totalsectors} = $hd->{geom}{heads} * $hd->{geom}{sectors} * $hd->{geom}{cylinders};
- }
-
- #- build a default suitable partition table,
- #- checksum will be built when writing on disk.
- #- note third partition is ALWAYS of type Whole disk.
- my $info = {
- info => "DiskDrake partition table",
- rspeed => 5400,
- pcylcount => $hd->{geom}{totalcylinders},
- sparecyl => 0,
- ilfact => 1,
- ncyl => $hd->{geom}{cylinders},
- nacyl => $hd->{geom}{totalcylinders} - $hd->{geom}{cylinders},
- ntrks => $hd->{geom}{heads},
- nsect => $hd->{geom}{sectors},
- magic => $magic,
- };
-
- $info;
-}
-
-sub clear_raw {
- my ($hd) = @_;
- my $pt = { raw => [ ({}) x $nb_primary ], info => info($hd) };
-
- #- handle special case for partition 2 which is whole disk.
- $pt->{raw}[2] = {
- type => 5, #- the whole disk type.
- flags => 0,
- start_cylinder => 0,
- size => $hd->{geom}{cylinders} * $hd->cylinder_size(),
- };
-
- $pt;
-}
-
-1;
diff --git a/perl-install/patch/patch-oem-hp.pl b/perl-install/patch/patch-oem-hp.pl
deleted file mode 100644
index 0a5b0b51e..000000000
--- a/perl-install/patch/patch-oem-hp.pl
+++ /dev/null
@@ -1,323 +0,0 @@
-use modules;
-package modules;
-my $old_load_raw = \&load_raw;
-undef *load_raw;
-*load_raw = sub {
- &$old_load_raw;
-
- my @l = map { my ($i, @i) = @$_; [ $i, \@i ] } grep { $_->[0] !~ /ignore/ } @_;
- foreach (@l) {
- if ($_->[0] eq 'ehci-hcd') {
- add_alias('usb-interface1', $_->[0]);
- }
- }
-
- if (get_alias("usb-interface") || get_alias("usb-interface1")) {
- unless (-e "/proc/bus/usb/devices") {
- require fs; fs::mount('/proc/bus/usb', '/proc/bus/usb', 'usbdevfs');
- #- ensure keyboard is working, the kernel must do the job the BIOS was doing
- sleep 4;
- load_multi("usbkbd", "keybdev") if detect_devices::usbKeyboards();
- }
- }
-};
-
-my $old_load = \&load;
-undef *load;
-*load = sub {
- &$old_load;
-
- #- hack to get back usb-interface (even if already loaded by stage1)
- #- NOTE load_multi is not used for that so not overloaded to fix that too.
- if ($_[0] =~ /usb-[uo]hci/ && !get_alias("usb-interface")) {
- add_alias('usb-interface', $_[0]);
- } elsif ($_[0] eq 'ehci-hcd' && !get_alias("usb-interface1")) {
- add_alias('usb-interface1', $_[0]);
- }
-
- if (get_alias("usb-interface") || get_alias("usb-interface1")) {
- unless (-e "/proc/bus/usb/devices") {
- require fs; fs::mount('/proc/bus/usb', '/proc/bus/usb', 'usbdevfs');
- #- ensure keyboard is working, the kernel must do the job the BIOS was doing
- sleep 4;
- load_multi("usbkbd", "keybdev") if detect_devices::usbKeyboards();
- }
- }
-};
-
-#- ensure it is loaded using this patch.
-$::noauto or modules::load_thiskind("usb");
-sleep 2;
-
-use install_steps;
-package install_steps;
-
-my $old_beforeInstallPackages = \&beforeInstallPackages;
-undef *beforeInstallPackages;
-*beforeInstallPackages = sub {
- &$old_beforeInstallPackages;
-
- my ($o) = @_;
- mkdir "$o->{prefix}$_" foreach qw(/boot /usr /usr/share /usr/share/mdk);
- install_any::getAndSaveFile("Mandrake/base/oem-message-graphic", "$o->{prefix}/boot/oem-message-graphic");
- install_any::getAndSaveFile("Mandrake/base/oem-background.png", "$o->{prefix}/usr/share/mdk/oem-background.png");
-};
-
-my $old_afterInstallPackages = \&afterInstallPackages;
-undef *afterInstallPackages;
-*afterInstallPackages = sub {
- &$old_afterInstallPackages;
-
- my ($o) = @_;
-
- #- lilo image.
- rename "$o->{prefix}/boot/lilo-graphic/message", "$o->{prefix}/boot/lilo-graphic/message.orig";
- system "chroot", $o->{prefix}, "cp", "-f", "/boot/oem-message-graphic", "/boot/lilo-graphic/message";
-
- #- KDE desktop background.
- if (-e "$o->{prefix}/usr/share/config/kdesktoprc") {
- update_gnomekderc("$o->{prefix}/usr/share/config/kdesktoprc", "Desktop0",
- MultiWallpaperMode => "NoMulti",
- Wallpaper => "/usr/share/mdk/oem-background.png",
- WallpaperMode => "Scaled",
- );
- }
- #- GNOME desktop background.
- if (-e "$o->{prefix}/etc/gnome/config/Background") {
- update_gnomekderc("$o->{prefix}/etc/gnome/config/Background", "Default",
- wallpaper => "/usr/share/mdk/oem-background.png",
- wallpaperAlign => "3",
- );
- }
-
- #- make sure no error can be forwarded, test staroffice installed and OpenOffice.org,
- #- remove the first if the second is installed.
- eval {
- if (!$o->{isUpgrade} && -e "$o->{prefix}/usr/lib/openoffice/program/soffice.bin" && grep { -e "$o->{prefix}/usr/lib/office60_$_/program/soffice.bin" } qw(de en es fr it)) {
- require run_program;
- log::l("removing OpenOffice.org as staroffice is installed");
- run_program::rooted($o->{prefix}, "rpm", "-e", "OpenOffice.org");
- }
- };
-};
-
-use install_any;
-package install_any;
-
-undef *copy_advertising;
-*copy_advertising = sub {
- my ($o) = @_;
-
- return if $::rootwidth < 800;
-
- my $f;
- my $source_dir = "Mandrake/share/advertising";
- foreach ("." . $o->{lang}, "." . substr($o->{lang},0,2), '') {
- $f = getFile("$source_dir$_/list") or next;
- $source_dir = "$source_dir$_";
- }
- if (my @files = <$f>) {
- my $dir = "$o->{prefix}/tmp/drakx-images";
- mkdir $dir;
- unlink glob_("$dir/*");
- foreach (@files) {
- chomp;
- getAndSaveFile("$source_dir/$_", "$dir/$_");
- s/\.png/\.pl/;
- getAndSaveFile("$source_dir/$_", "$dir/$_");
- s/\.pl/_icon\.png/;
- getAndSaveFile("$source_dir/$_", "$dir/$_");
- s/_icon\.png/\.png/;
- }
- @advertising_images = map { $_ && -e "$dir/$_" ? ("$dir/$_") : () } @files;
- }
-};
-
-#undef *allowNVIDIA_rpms;
-#*allowNVIDIA_rpms = sub {
-# my ($packages) = @_;
-# require pkgs;
-# if (pkgs::packageByName($packages, "NVIDIA_GLX")) {
-# #- at this point, we can allow using NVIDIA 3D acceleration packages.
-# my @rpms;
-# foreach (keys %{$packages->{names}}) {
-# my ($ext, $version, $release) = /kernel[^-]*(-smp|-enterprise|-secure)?(?:-(\d.*?)\.(\d+\.\d+mdk))?$/ or next;
-# my $p = pkgs::packageByName($packages, $_);
-# pkgs::packageSelectedOrInstalled($p) or next;
-# $version or ($version, $release) = (pkgs::packageVersion($p), pkgs::packageRelease($p));
-# my $name = "NVIDIA_kernel-$version-$release$ext";
-# pkgs::packageByName($packages, $name) or return;
-# push @rpms, $name;
-# }
-# @rpms > 0 or return;
-# return [ @rpms, "NVIDIA_GLX" ];
-# }
-#};
-
-use detect_devices;
-package detect_devices;
-
-undef *usbMice;
-*usbMice = sub { grep { ($_->{media_type} =~ /\|Mouse/ || $_->{driver} =~ /Mouse:USB/) &&
- $_->{driver} !~ /Tablet:wacom/} usb_probe() };
-
-use Xconfigurator;
-package Xconfigurator;
-
-undef *cardConfigurationAuto;
-*cardConfigurationAuto = sub {
- my @cards;
- if (my @c = grep { $_->{driver} =~ /(Card|Server):/ } detect_devices::probeall()) {
- @c >= 2 && $c[0]{description} eq $c[1]{description} && $c[0]{description} =~ /82830 CGC/ and shift @c;
- foreach my $i (0..$#c) {
- local $_ = $c[$i]->{driver};
- my $card = { identifier => ($c[$i]{description} . (@c > 1 && " $i")) };
- $card->{type} = $1 if /Card:(.*)/;
- $card->{server} = $1 if /Server:(.*)/;
- $card->{driver} = $1 if /Driver:(.*)/;
- $card->{flags}{needVideoRam} = /86c368|S3 Inc|Tseng.*ET6\d00/;
- $card->{busid} = "PCI:$c[$i]{pci_bus}:$c[$i]{pci_device}:$c[$i]{pci_function}";
- push @{$card->{lines}}, @{$lines{$card->{identifier}} || []};
- push @cards, $card;
- }
- }
- #- take a default on sparc if nothing has been found.
- if (arch() =~ /^sparc/ && !@cards) {
- log::l("Using probe with /proc/fb as nothing has been found!");
- local $_ = cat_("/proc/fb");
- if (/Mach64/) { push @cards, { server => "Mach64" } }
- elsif (/Permedia2/) { push @cards, { server => "3DLabs" } }
- else { push @cards, { server => "Sun24" } }
- }
- #- special case for dual head card using only one busid.
- @cards = map { my $dup = $_->{identifier} =~ /MGA G[45]50/ ? 2 : 1;
- if ($dup > 1) {
- my @result;
- my $orig = $_;
- foreach (1..$dup) {
- my $card = {};
- add2hash($card, $orig);
- push @result, $card;
- }
- @result;
- } else {
- ($_);
- }
- } @cards;
- #- make sure no type are already used, duplicate both screen
- #- and rename type (because used as id).
- if (@cards > 1) {
- my $card = 1;
- foreach (@cards) {
- updateCardAccordingName($_, $_->{type}) if $_->{type};
- $_->{type} = "$_->{type} $card";
- $card++;
- }
- }
- #- in case of only one cards, remove all busid reference, this will avoid
- #- need of change of it if the card is moved.
- #- on many PPC machines, card is on-board, busid is important, leave?
- @cards == 1 and delete $cards[0]{busid} if arch() !~ /ppc/;
- @cards;
-};
-
-use mouse;
-package mouse;
-undef *detect;
-*detect = sub {
- if (arch() =~ /^sparc/) {
- return fullname2mouse("sunmouse|Sun - Mouse");
- }
- if (arch() eq "ppc") {
- return fullname2mouse(detect_devices::hasMousePS2("usbmouse") ?
- "USB|1 button" :
- #- No need to search for an ADB mouse. If I did, the PPC kernel would
- #- find one whether or not I had one installed! So.. default to it.
- "busmouse|1 button");
- }
-
- my @wacom;
- my $fast_mouse_probe = sub {
- my $auxmouse = detect_devices::hasMousePS2("psaux") && fullname2mouse("PS/2|Standard", unsafe => 1);
-
- if (modules::get_alias("usb-interface")) {
- if (my (@l) = detect_devices::usbMice()) {
- log::l("found usb mouse $_->{driver} $_->{description} ($_->{type})") foreach @l;
- eval { modules::load($_) foreach qw(hid mousedev usbmouse) };
- if (!$@ && detect_devices::tryOpen("usbmouse")) {
- my $mouse = fullname2mouse($l[0]{driver} =~ /Mouse:(.*)/ ? $1 : "USB|Generic");
- $auxmouse and $mouse->{auxmouse} = $auxmouse; #- for laptop, we kept the PS/2 as secondary (symbolic).
- return $mouse;
- }
- eval { modules::unload($_) foreach qw(usbmouse mousedev hid) };
- }
- }
- $auxmouse;
- };
-
- if (modules::get_alias("usb-interface")) {
- my $keep_mouse;
- if (my (@l) = detect_devices::usbWacom()) {
- log::l("found usb wacom $_->{driver} $_->{description} ($_->{type})") foreach @l;
- eval { modules::load("wacom"); modules::load("evdev"); };
- unless ($@) {
- foreach (0..$#l) {
- detect_devices::tryOpen("input/event$_") and $keep_mouse = 1, push @wacom, "input/event$_";
- }
- }
- $keep_mouse or eval { modules::unload("evdev"); modules::unload("wacom"); };
- }
- }
-
- #- at this level, not all possible mice are detected so avoid invoking serial_probe
- #- which takes a while for its probe.
- if ($::isStandalone) {
- my $mouse = $fast_mouse_probe->();
- $mouse and return ($mouse, @wacom);
- }
-
- #- probe serial device to make sure a wacom has been detected.
- eval { modules::load("serial") };
- my ($r, @serial_wacom) = mouseconfig(); push @wacom, @serial_wacom;
-
- if (!$::isStandalone) {
- my $mouse = $fast_mouse_probe->();
- $r && $mouse and $r->{auxmouse} = $mouse; #- we kept the auxilliary mouse as PS/2.
- $r and return ($r, @wacom);
- $mouse and return ($mouse, @wacom);
- } else {
- $r and return ($r, @wacom);
- }
-
- #- in case only a wacom has been found, assume an inexistant mouse (necessary).
- @wacom and return { CLASS => 'MOUSE',
- nbuttons => 2,
- device => "nothing",
- MOUSETYPE => "Microsoft",
- XMOUSETYPE => "Microsoft"}, @wacom;
-
- if (!modules::get_alias("usb-interface") && detect_devices::is_a_recent_computer() && $::isInstall && !$::noauto) {
- #- special case for non detected usb interface on a box with no mouse.
- #- we *must* find out if there really is no usb, otherwise the box may
- #- not be accessible via the keyboard (if the keyboard is USB)
- #- the only way to know this is to make a full pci probe
- modules::load_thiskind("usb", '', 'unsafe');
- if (my $mouse = $fast_mouse_probe->()) {
- return $mouse;
- }
- }
-
- if (modules::get_alias("usb-interface")) {
- eval { modules::load($_) foreach qw(hid mousedev usbmouse) };
- sleep 1;
- if (!$@ && detect_devices::tryOpen("usbmouse")) {
- #- defaults to generic USB mouse on usbmouse.
- log::l("defaulting to usb generic mouse");
- return fullname2mouse("USB|Generic", unsafe => 1);
- }
- }
-
- #- defaults to generic serial mouse on ttyS0.
- #- Oops? using return let return a hash ref, if not using it, it return a list directly :-)
- return fullname2mouse("serial|Generic 2 Button Mouse", unsafe => 1);
-};
diff --git a/perl-install/perl2etags b/perl-install/perl2etags
deleted file mode 100755
index 6eed722c0..000000000
--- a/perl-install/perl2etags
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/perl -p
-
-if (/^ / ... !/^ /) {
- ($package) = /(.*).pm,/;
- $package =~ s|/|::|g;
-}
-
-s/(\x7F)(sub\s+)?(\w+)(\([^)]*\))?/$1${package}::$3/;
diff --git a/perl-install/pixmaps/X.png b/perl-install/pixmaps/X.png
deleted file mode 100644
index c355a6c67..000000000
--- a/perl-install/pixmaps/X.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/pixmaps/arrow_down.xpm b/perl-install/pixmaps/arrow_down.xpm
deleted file mode 100644
index 30cca10b1..000000000
--- a/perl-install/pixmaps/arrow_down.xpm
+++ /dev/null
@@ -1,14 +0,0 @@
-/* XPM */
-static char * arrow_down_xpm[] = {
-"6 8 3 1",
-" c None",
-". c #BABEDA",
-"+ c #000000",
-"..++..",
-"..++..",
-"..++..",
-"..++..",
-"++++++",
-"++++++",
-".++++.",
-"..++.."};
diff --git a/perl-install/pixmaps/arrow_up.xpm b/perl-install/pixmaps/arrow_up.xpm
deleted file mode 100644
index fc3c53131..000000000
--- a/perl-install/pixmaps/arrow_up.xpm
+++ /dev/null
@@ -1,14 +0,0 @@
-/* XPM */
-static char * arrow_up_xpm[] = {
-"6 8 3 1",
-" c None",
-". c #999ABD",
-"+ c #000000",
-"..++..",
-".++++.",
-"++++++",
-"++++++",
-"..++..",
-"..++..",
-"..++..",
-"..++.."};
diff --git a/perl-install/pixmaps/bootdisk.png b/perl-install/pixmaps/bootdisk.png
deleted file mode 100644
index 0d29e613d..000000000
--- a/perl-install/pixmaps/bootdisk.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/pixmaps/bootloader.png b/perl-install/pixmaps/bootloader.png
deleted file mode 100644
index 03c2010f7..000000000
--- a/perl-install/pixmaps/bootloader.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/pixmaps/colors.png b/perl-install/pixmaps/colors.png
deleted file mode 100644
index 8de1929b4..000000000
--- a/perl-install/pixmaps/colors.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/pixmaps/colors16.png b/perl-install/pixmaps/colors16.png
deleted file mode 100644
index 76de54753..000000000
--- a/perl-install/pixmaps/colors16.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/pixmaps/colors8.png b/perl-install/pixmaps/colors8.png
deleted file mode 100644
index 904517e2f..000000000
--- a/perl-install/pixmaps/colors8.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/pixmaps/default.png b/perl-install/pixmaps/default.png
deleted file mode 100644
index bcbca644d..000000000
--- a/perl-install/pixmaps/default.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/pixmaps/eth_card_mini.png b/perl-install/pixmaps/eth_card_mini.png
deleted file mode 100644
index 0af32dbaf..000000000
--- a/perl-install/pixmaps/eth_card_mini.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/pixmaps/exit.png b/perl-install/pixmaps/exit.png
deleted file mode 100644
index 7e4e1e1d5..000000000
--- a/perl-install/pixmaps/exit.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/pixmaps/harddrive.png b/perl-install/pixmaps/harddrive.png
deleted file mode 100644
index d0b4adf71..000000000
--- a/perl-install/pixmaps/harddrive.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/pixmaps/keyboard.png b/perl-install/pixmaps/keyboard.png
deleted file mode 100644
index e5ce33e37..000000000
--- a/perl-install/pixmaps/keyboard.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/pixmaps/language.png b/perl-install/pixmaps/language.png
deleted file mode 100644
index 0ad06711f..000000000
--- a/perl-install/pixmaps/language.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/pixmaps/monitor-1024.png b/perl-install/pixmaps/monitor-1024.png
deleted file mode 100644
index 6ed801825..000000000
--- a/perl-install/pixmaps/monitor-1024.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/pixmaps/monitor-1280.png b/perl-install/pixmaps/monitor-1280.png
deleted file mode 100644
index b338ecb28..000000000
--- a/perl-install/pixmaps/monitor-1280.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/pixmaps/monitor-640.png b/perl-install/pixmaps/monitor-640.png
deleted file mode 100644
index e0738b936..000000000
--- a/perl-install/pixmaps/monitor-640.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/pixmaps/monitor-800.png b/perl-install/pixmaps/monitor-800.png
deleted file mode 100644
index 04f4b861c..000000000
--- a/perl-install/pixmaps/monitor-800.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/pixmaps/monitor.png b/perl-install/pixmaps/monitor.png
deleted file mode 100644
index bacf844ba..000000000
--- a/perl-install/pixmaps/monitor.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/pixmaps/mouse.png b/perl-install/pixmaps/mouse.png
deleted file mode 100644
index dfd58624a..000000000
--- a/perl-install/pixmaps/mouse.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/pixmaps/mouse_3b+.xpm b/perl-install/pixmaps/mouse_3b+.xpm
deleted file mode 100644
index b424fc722..000000000
--- a/perl-install/pixmaps/mouse_3b+.xpm
+++ /dev/null
@@ -1,386 +0,0 @@
-/* XPM */
-static char * mouse_3b+_xpm[] = {
-"210 350 33 1",
-" c None",
-". c #020202",
-"+ c #142753",
-"@ c #FE9A02",
-"# c #BD8B25",
-"$ c #9E9EC1",
-"% c #525E81",
-"& c #F2AD19",
-"* c #A3A4C3",
-"= c #7B673F",
-"- c #6F7892",
-"; c #4B5576",
-"> c #FEB212",
-", c #77819E",
-"' c #FEBA20",
-") c #414A66",
-"! c #F2B226",
-"~ c #AF8F4B",
-"{ c #E6AA32",
-"] c #F2B22A",
-"^ c #384365",
-"/ c #0A1128",
-"( c #33395F",
-"_ c #8089A6",
-": c #AEB2CF",
-"< c #898BA4",
-"[ c #0F1C3D",
-"} c #BABEDA",
-"| c #6D6E91",
-"1 c #A9ADCA",
-"2 c #283861",
-"3 c #999ABD",
-"4 c #606C8C",
-" |4;-333[/[ ",
-" 44;,333[[/ ",
-" 44)_33-[/[ ",
-" 4%;_33-[[/ ",
-" 4%)3334[/[ ",
-" %4)$33;[/ ",
-" 4%;$33;[/ ",
-" %%%333)[[ ",
-" %%%3332[/ ",
-" %%%3332[/ ",
-" %%%$332[/ ",
-" |%;-33<2[[ ",
-" 4%;|333[// ",
-" %%)4333[[[ ",
-" 4;;|33<[/[ ",
-" 4;;4333[[/ ",
-" 4%;|333[[[ ",
-" %%;_33<[[/ ",
-" %%)_333[[[ ",
-" %%)_333[[/ ",
-" ;;),33<[[[ ",
-" ;;)_333[[/ ",
-" ;;^,333[[[ ",
-" %))433<[[/ ",
-" 4;)4333[[[ ",
-" 4;;-333[[/ ",
-" %;)433<+[[ ",
-" %;)43332[/ ",
-" ;)^|33<([[ ",
-" ;)%3332[/ ",
-" ;^;3332[[ ",
-" ;;;333^[[ ",
-" 4%)$33%[[ ",
-" ,4^33$%+[++ ",
-" $34^333,2++22 ",
-" 13_%-33333)2222 ",
-" 33_4_333333<;22++ ",
-" ,,4_3$33333$3%2+++ ",
-" %%433333333333%[[[ ",
-" ;)^333333333333+/[ ",
-" ))2$33333333333([[ ",
-" ;;^$33<33333333)[[ ",
-" ))^$33333333333%[/[ ",
-" ;)^,333333<3333-[[[ ",
-" ;;),333<3333333_+/[ ",
-" ;))_333333333333+[[ ",
-" ;))|33333333<3332[[ ",
-" %)^|333333333333;/[ ",
-" %%)4333333333333%[[[ ",
-" _4;|333333333333-[[[ ",
-" ,%;-|;%%%))%%%%4+[+ ",
-" 1:1*<%(++++[++[+[+[+[2(%-,_, ",
-" :1111$$<|)2[+[+++))+++[++2^%|,,,,,, ",
-" ::::1$3<,||-,<3:}}}}}:}}}}:33,4-%44--,-,-- ",
-" :::*$3_-,<1}}}}}}}}}}}}}}:}}:}:}}}}1_-%%4||4-4 ",
-" :::1$3_,_$}}}}}}}:1**$$33333333$$$*1::}}}}1,;;44|4| ",
-" :::1*<,4),}}::1*333333333$3$3333$3333333$}}:},22);%%444% ",
-" ::::*<4,{;2+}}3333333333$<$<33333333<33333331}}2+[%=2);%%44 ",
-" :::$<-<&>!#++,}*333333333$3$3333333<3$333333331_+[(>>#=2^;;%%% ",
-" :::*3-,{'>>>>2+;}:3333333333$<3333333$$<333333333;++=>'>&{=2^);;;% ",
-" ::13--{>>>>>>>=[+}}333333<3333$333<3333$3$3333333$2[+#>>>>>&#;(^);;; ",
-" ::1*<-~>>>>>>>>&#++$}$333333333333333333$<$<3333333<+++>'>>>>'>>#22^))); ",
-" ::13,='''>>&&@&>>#+[-}}333333333333333333$333333333$-+[)>>>>>>>>>>&=22)))) ",
-" ::11<-~'>&&@@@@@>>>>++%:}33333333333333333333333<3333$4[+=>>>>>>>>>>>'#22^)))^ ",
-" }:1*,-&''&@@@@@@@>>'>)+(}}1$333333<333333333333333<3331^++#>>'>>>>>>>>>>{;+^^^^^ ",
-" :1*34~''&@@@@@@@@&>>>&=++}}}333333333<33333333333$33333}+++#>>>>>'>>>>>>>>'=+2^^^( ",
-" ::1<-#'&@@@@@@@@@@>>>>>=[+3}}1333333333333<3333333333333}+++''>>>>>>'>>>>>>>'#2+2^2^ ",
-" :1*_4{'&@@@@@@@@@@'>>>>>#+[3}}:3333<$3$%[[++[+23333$<3$313+[(>>>'>>>>>>>>>>>>'>{^22^22 ",
-" ::3,=!'@@@@@@@@@@@&>>>>>>#++,}}}*33333(^2+[[[[[+((,33$3331<++)>>>>>'>>>>'>>'>>>>>&)22222 ",
-" 11$,,!>@@@@@@@@@@@&>>>>>>>&+[|}}}:33333[/..../././[-3333$3}|+[=>>>>>>>'>>>>>>>>>>>>&=+22222 ",
-" :13--'>@@@@@@@@@@@@>>>>'>>>>++%}}:}33333+.///./././[-3<3333}|[+=>>>>>>>>>>>'>>>>>>>>>>=+2222+ ",
-" :*3-,>&@@@@@@@@@@@&>>'>>>>>>>2+)}}}}13333^(2[[[[[[+(^_$$3$3$}%+[#>>>'>>>>'>>>>>>>>>>>>&&=+2+2++ ",
-" 1*3-~>@@@@@@@@@@@@@>>>>>>>>>>>)[)}}}}}3333++[+[+[++++[,33<$31}^+[#>>>>>>>>>>>>>'>>>>>>>>>&=+2+2+ ",
-" 113-->>@@@@@@@@@@@@>>>>>>>>>>>>)+2:}}:}1333+..........[-33$331})++#>>>>>'>>>>'>>>>>>>>>>>>&>=+++++ ",
-" 1*$-='@@@@@@@@@@@@@>>>>>>'>>>&>>=+[}}}}}:$33[//////////[,3<$331}2+[&>>'>>>>'>>>>>>>'>>>>>>>>>>=+2+++ ",
-" 11*_,'&@@@@@@@@@@@@>>>>'>>>>>>>>>=++}:}}}}*33%%^[////[2%%_3$3331:[++>>>>>>>>>>>>>'>>>>>>>>>>>>>&=++2++ ",
-" :*3,=!>@@@@@@@@@@@@&>>>>>>>>'>>>>>=+[}}}}:}:33++[++++[+[++,333$3:}+++>>>>>'>>>>'>>>>>>>'>>>>>>>>>>)+++++ ",
-" 1**_-!&@@@@@@@@@@@@>>>>>>>'>>>>>>>>#++<}:}}}}*3+..........[-3$<33}:+[(>>'>>>>'>>>>>>>'>>>>>>>>>>>>>>^2++++ ",
-" 1**_4{>@@@@@@@@@@@@&>>>>'>>>>>>>>>>>#[+3}}}}}::3+//////////[,33$33}$++)>>>>>>>>>>>>'>>>>>>>>>>>>>>>>>&++2[++ ",
-" 1*<4{>@@@@@@@@@@@@&>>>>>>>>'>>'>>>>>#++3}:}}}}}$%%^[////[2%%<3$<33}3[[)>>>'>>>>>'>>>>>>'>>>>>>>>>>>>>>@2++[++ ",
-" 1*<-~&@@@@@@@@@@@@@>>>>'>>>>>>>>>'>>>#+[3}}}:}}}1^^2[[[[[[+^^,33333}3++)>>>>>'>>>>>>>>>>>>'>>'>>>>>>>>>!#+++[+ ",
-" 1*3,-'@@@@@@@@@@@@>>>>>>>>>>>'>>>>>>>>][+_:}}}}:}}+../...../.[,333$$:3+[;>>>>>>>>>>'>>'>>>>>>>>>>>>>>>>>>>=+++++ ",
-" 1*3,-&>@@@@@@@@@@@@>>>>'>>>'>>>>'>>>>>>'[+|}:}}}}}:+[///[/[///+,3333$}<++='>>'>>>'>>>>>>>'>>>>>>>'>>>>>>>>>>^+++[+ ",
-" **<4{>@@@@@@@@@@@&>>>>>>>>>>>>>>>>'>>>>>++|}}}}:}}}4%^[////[+;%<33331}<++=>>>>>>>>>>'>>>>>>'>>'>>>>>>>>>>>>>@++++[+ ",
-" 13<-~'@@@@@@@@@@@@>>>>'>>>'>>>>>>>>>>'>>>++4}:}}}}:}++++[+++++++-33333}4++='>>>>'>>>>>>'>>>>>>>>>>>>'>>>>>>>>>#++++[ ",
-" **3-,'@@@@@@@@@@@&>>'>>>>>>>>'>>'>>>>>>'>][+|}}}:}}}:+..........[-33333}-[+=>>'>>&>>>>>>>>>>>>>>>'>>>>>>>>>>>>>>=+++++ ",
-" **_=!>@@@@@@@@@@@>>>>>>>>>>>>>>>>>>>'>>>>'++4}}}}}}}}[//////////[,333$3}4++='>>>>>>'>>>>>'>>'>>'>>>>>>>'>>>'>>>>>^++[++ ",
-" *3_%{>@@@@@@@@@@>'>>>>>'>>>>>>>>>>'>>>>>>>&^+|:}}}:}}}|4)[/////2%%<333$$}|++=>>>>>>>>>>'>>>>>>>>>>>'>>>>>>>>&>>>>>#++++[ ",
-" **<,,'&@@@@@@@@@@>>>>'>>>>'>>>>'>>>>>>>>>>>>)+;}}:}}}:}+++++++++++[,3333$}4++#'>>'>>>>'>>>>>'>>>>>>>>>'>>>>>>&&>>>>>=+++[[ ",
-" *3,4&>@@@@@@@@@&>>'>>>>>>>>>'>>>'>>>>>>>>>>>)+^}}}}}}}}+..........[-3333$}|++#>>>>>'>>>>>'>>>>'>>>>>>>>>>>>>>>>@>>>>>(+++++ ",
-" *$_4#'@@@@@@@@@@>>>>>>>>>'>>>>>>>>>'>>>>>>>>>)+^}}}:}}}:+//////////[,3333*}4[+#'>>>>>>>>>>>>>>>>>'>>'>>>>'>>>>>>>&>>>>@[+[+[ ",
-" **<-~>&@@@@@@@@>>>>>'>>'>>>>>>>>>>>>>'>>'>>>>>)+):}}}:}}}))2[[[[[[+^^-3333$}|++#>>>>>'>>>>>'>>>>>>>>>>>'>>>>>>>>>&&>>>!>=+++[+ ",
-" $3_4&>@@@@@@@@@>>>>>>>>>>>>>>'>>'>>>>>>>>>>>>>)+)}}}}}}:}+[[[[[[[[[[[,33333}4++#'>>>>>>'>>>>>'>>'>>>>>>>>>>'>>>>>>>@>>>>>^[++[ ",
-" *3<4~'@@@@@@@@&>>>>>>>>>'>>>>>>>>>>>>>>>>'>>>>>)+):}}:}}}:+..........[-3333$}|++#>'>>>>>>>>>>>>>>>>>'>>>>'>>>'>>>>>>&@>>>>#++[++ ",
-" $3<,='>@@@@@@@@&>>>>>>>'>>>'>>>>'>>>'>>>'>>>'>>>)+)}}}}}}}}+[[[[[[[[[[[,33333};++#>>>'>>>>'>>>>>'>>>>>>'>>>>>>>>'>>>>>@@>>>>=+[[[+ ",
-" $$_4{>@@@@@@@&>>>>>>'>>>>>>>>'>>>>>>>'>>>>>>>>>>)+):}}}:}}}44^[/////2%%,33333})[+#>>>>>'>>>>>'>>>>'>>>>>>>>>>>>>>>>>>>>@&>>>&+++[+ ",
-" $3_-~!&@@@@@@@&>>>>'>>>>>>>>>>>>>>>'>>>>>>>>>>>>>)+)}:}}}:}:+[[[/[[[[[[+-3333<})++#'>>>>>>>>'>>>>>>>>'>>>>'>>'>>>>>>>>>>@@>>>>#[++[+ ",
-" 33,4!>@@@@@@@>>>>>>>>>>>'>>>>>>>'>>>>>>>>'>>>>>>>)+)}}:}}}}}+..........[-3333$})++#>>>>>>'>>>>'>>>>>>>>>>>>>>>>>>>>>>>>>>@@&>&&2+++[ ",
-" $3_4~'&@@@@@@>>>>>>>>>>'>>>'>>'>>>>>>>>>'>>>'>>>>>)+)}}}}:}}}[[[[[[[[[[[[,3<333}^++#'>>'>>>>>>>>>'>>>>>'>>>>'>>>'>>'>>>>>>@@@>>>#+[+[+ ",
-" 33,-'>@@@@@@>>>>>>>>>>>>>>>>>>>>>>>>>'>>>>>>>>>>>>)+):}}}}}:}|4^[/////2%%<3$33$})[+#>>>>>>>>>>>>>>>>'>>>>'>>>>>>>>>>>>>>>>@@@@>>>)+[+[ ",
-" $3_4#'&@@@@@>>>>>>'>>'>>>>>>>>>>>'>>'>>>>>>>>>>>>>>)+)}}:}}}}}+[[[[[[[[[[+,33333})++#'>>>>'>>'>>>>>'>>>>>>>>>>>'>>>>>>>>>>>>@@@&>>{[++[+ ",
-" 3_,=>>@@@@@>>>>>>>>>>>>>>>>'>>'>>>>>>>>>>>'>>>>>>>>)+^}}}:}}}}+..........[-33333})[+#>>>>>>>>>>>'>>>>>'>>>>>'>>>'>>>'>>>>>>>@@@@&>>=[++[[ ",
-" $<_4{>&@@@@>>>'>>'>>>>>>>'>>>>>>>>>'>>>>'>>>>'>>>>>>)+^}}}}}:}:+[[[[[[[[[[[-333$1}4++#'>>'>>>>>>>>>>>>>>>'>>>>>>>>>'>>>'>>>>>@@@@@>>{[+[+[ ",
-" 3<-->>@@@@&>>>>>>>>'>>'>>>>>>>>'>>>>>'>>>>>>>>>>>>>>)+)}}}}}}}}44^[/////24|3333$:}4[+#>>>>'>>'>>>'>>>>>>>>'>>>>>>>>>>>>>>>>>>&@@@@&>>=++[[+ ",
-" 33,4&>&@@@@>>>>>>>>>>>>>>>>>>'>>>>'>>>>>>>>'>>>>'>>>>)[)}:}:}}}}+[[[[[[[[[[[31333}}|++#'>>>>>>>>'>>>'>>'>>>>>'>>>>'>>>>>>>>>>>>@@@@@&>&+++[[ ",
-" 3<-->>@@@&'>'>>'>>>>>>>'>>'>>>>>>>>>>>>>'>>>>'>>>>>>>++%}}}}}:}}+..........[<}::}}}4++#>>>>'>>>>>>>>>>>>>>>>>>>'>>>>>'>>>'>>>>>@@@@@@&>=+[+[+ ",
-" 3<_%&>&@@@>>>>>>>>'>>'>>>>>>>>>>>'>>>>>>>>>>>>>>>>>>>>++4}}}}}}}:++[+++[+[+++3}}}}}}4++#>>>>>>'>>>>>>>'>>>>>'>>>>>>>>>>>'>>>'>>>@@@@@@@'&+++[[ ",
-" 3<-,'>@@@>>>>'>>>>>>>>>>>>>'>>'>>>>>>'>>>>'>>>'>>>>>>>++|}:}}:}}}4|^[////[244*}}}}}}|+[=>>>>>>>>>>>'>>>>>'>>>>>>>>>>>>>>>>>>>>>>@@@@@@@&>=++[+[ ",
-" $<_4&>>@@>>>>>>>'>>>>>>>>'>>>>>>>>>>>>>>'>>>>>>>>'>>>>>++4}}}}}}:}+[///[////[[3:}:}}}4++='>>>>>>>'>>>>>>>>>>>>>'>>'>>>'>>>>>>>>>>&@@@@@@&>&++[[[ ",
-" 3_-->>@@>>'>>>>>>>>'>>'>>>>>'>>>>>>'>>>>>>>'>>>>>>>>>>&++|:}}:}}}}+..........[3}}}}}:3++=>>'>>'>>>>>>>>'>>>>'>>>>>>'>>>>>'>>>>>>>@@@@@@@@&>=+++[ ",
-" <<_%&>'@&>>>>'>>>>'>>>>>>>>>>>>'>>'>>>'>>>>>>>'>>>>>>>>{[+4}}}}}:}}[++[+++[+++[3:}:}}}3++='>>>>>>>>>'>>>>>'>>>>>>'>>>>>>>>>>'>>>>>&@@@@@@@@>{[++[[ ",
-" 3<,='>>@>>>>>>>'>>>>>>>>'>>>>>>>>>>>>>>>'>>>>>>'>>'>>>&~++$}}:}}}:}3<%[.././^<3:}}}}}:3[[=>>'>>>>'>>>'>>>>>>>>'>>>>>>>'>>>>>>>>>>>@@@@@@@@@&&=[++[ ",
-" <3,4{!>&&>>>>>>>>>>>>>'>>>>'>>>>>'>>>>>>>>>'>>>>>>>>>>>>#[+<}}}}}}}}+[[[[[[[[[[+_}}}}}}3+[)>>>>'>>>>>>>>'>>>>>>>>>>>>>>>>'>>>>'>>>>@@@@@@@@@@&{[+[[[ ",
-" <_,|>>&&>>>'>>>>>>>'>>>>>>>>>>'>>>>>>'>>>>>>>>>>'>>>>>>>#++3}}:}}}}:+..........[3}:}}}:}++)>>>>>>>>>>>>>>>>'>>>>>>'>>>>>>>>'>>>>>>'@@@@@@@@@@@>;++[+ ",
-" 3<_4~>>&>>>>>>'>>'>>>>>>>'>>>>>>>>>>'>>>'>>>>>'>>>>'>>>>>=++3}}}}:}}}+[+[++[+[+++<}}}}}}}[+)>>>>>>'>>'>>>>>>>>'>>>>>>'>>>>>>>>>>>>>&@@@@@@@@@@@>#++[[[ ",
-" <_-4'>&&>'>>>>>>>>>>>>'>>>>>'>>>>'>>>>>>>>>'>>>>>>>>>>>>'=[+}}:}}}}:}44)[/////2441}}:}}}}+[+>>>'>>>>>>'>>'>>>>>>>>>>>>>>'>>>>>'>>>>&@@@@@@@@@@@&>^++[+ ",
-" <_4#>>&>>>>>'>>>>>>'>>>>>>'>>>'>>>>>>>>>>>>>>>>>>>>>'>>>>=+[}}}}}}}}}+////[////[[3}}}}:}}^[+>>>>>>>'>>>>>>>'>>>>'>>>>>'>>>'>>>>>>>>@@@@@@@@@@@@@>#[+[[+ ",
-" <<,%#>&>>>'>>>'>>'>>>>>>'>>>>>>>>>>>'>>'>>>>>>>'>>'>>>>>>>;++}}:}:}}}}+..........[3:}}}}}})++>>>>'>>>>>'>>>>>>'>>>>>'>>>>>>>>>>'>>>&@@@@@@@@@@@@@>#[+[[[ ",
-" <_-^=>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'>>>>>>'>>'>>>>>>>>>>>>>)[^}}}}}}:}:++[++[+++[+[3:}}:}}})[+#>>>>>>>>>>>'>>>>>>>>'>>>>>>>>>>>>>>>>>@@@@@@@@@@@@@>#[++[[ ",
-" __%2=>>>>>>>>>>>>'>>'>>>'>>>'>>'>>>>'>>>>>>>>>>>>>>>>'>>>>(+)}}}:}}}}}44)[////[244*}}}}:}}4++#'>>>>>>>>>>>>>>>>'>>>>'>>>'>>'>>>>>>>@@@@@@@@@@@@@@@=+[++[[ ",
-" 3_-;+(>>>>>>>>>>'>>>>>>'>>>'>>>>>>>>>>>'>>>>>>>'>>'>>>>>>>>++)}:}}}:}}}+//////////+<}}}}}}}4++='>>>>'>>>>>>'>>>>>>>>>>>'>>>>>>>>'>>>@@@@@@@@@@@@@@>(++[+[[ ",
-" <,4;++#>>'>>>'>>>>'>>>>>>>>>>'>>>>>>>>>>>'>>'>>>>>>>>>'>>>{++4}}}}}}}}:+..........[3:}}}:}}<++=>'>>>>'>>'>>>'>>>>>>>>>>>>>>>>'>>>>>@@@@@@@@@@@@@@@{+++++[[+ ",
-" <_,%$++=>>>>'>>>>>>>>'>>>>>>>>>>'>>>>>'>>>>>>>>>>'>>>'>>>>>#++|}}:}}}:}}+[+++[++++++3}}:}}}}3++=>>>>>>>>>>>>>>>'>>>'>>>>>>>'>>>>>>>&@@@@@@@@@@@@@@@=+[+2_+/[ ",
-" <,4-})[[{>>>>>>>>>>>>>>>'>>>>>>>>>>'>>>>>>>>>>'>>>'>>>>>>>&#++<}}}:}}}}}44^[/////244$}}}}:}}$+[)>'>>>>'>>>>>>>>>'>>>'>>>>>>>>>>>>>&@@@@@@@@@@@@@@&&++++-}++[ ",
-" _,%*}3+[)>>>>>>'>>>>>>>>>>'>>>>>>'>>>>>>>>'>>>>>>>>>>>>>>>>=[+3}}}}}}}}}+//////////[3}}}}}}}}+[(>>>'>>>>'>>'>>>>>>>>>>'>>'>>>'>>>>@@@@@@@@@@@@@@@&)+[+21};+[[ ",
-" <_-4}}})+[#>>'>>>>'>>>>>>>>>'>>'>>>>>>>>'>>>>>>>>>>>>>'>>>>>;++1}}}}:}:}}+..........[3:}}}}:}}2++>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>@@@@@@@@@@@@@@@&#++++_}}3+[[ ",
-" _,4_}}}*++[#>>>>>>>>'>>'>>>>>>>>>>>>>'>>>>>>>'>>'>>>'>>>'>>>;[+}}}:}}}}}:+++[++++++[+3}:}}}}}:)[+{>>>>>>>>'>>>'>>>'>>>>>'>>>'>>>>@@@@@@@@@@@@@@@&@+[+[%}}}}(+[ ",
-" <<-%:}}}}<+++{>>>>>>>>>>>>>>>'>>>>>'>>>>>>>'>>>>>>'>>>>>>>>>>++^}:}}}}:}}}:}4/.....)}:}}}}}:}}}4+[#>>'>>'>>>>>>>'>>>>>'>>>>>>>>>>@@@@@@@@@@@@@@&>#++++^1}}:}-[[[ ",
-" <_--}}}}}}-+[+#>>>>'>>>>>>'>>>>'>>>>>>>>>'>>>>>>>>>>>>>>>>>>&++%}}}}}}}}}}}}|++[+++)}}}:}}}}}:}-++=>>>>>>>>>>'>>>>>>>>>>>>>'>>>&@@@@@@@@@@@@@@@>{+++[^1}1$:}1[[[ ",
-" _,%3:}}:}}}4+++='>>>'>>'>>>>>>>>>>>'>>'>>>>'>>>>>>>>>>'>>>>>#++4:}}:}}}:}}}}}:}}}:}}}}}}}}:}}}}3++=>>'>>>>'>>>>>'>>>>>>>'>>>>&&@@@@@@@@@@@@@@>>=++[+^:}1331}};[+[ ",
-" <,-%}}}}}}}}:,+++)&>>>>>>>>>>>>>>'>>>>>>>>>>>>'>>>>'>>>>>'>>>=++_}}}}}:}}}:}}}}}}}}}:}}:}}}}}}}}$++)>>>>'>>>>>>>>>>'>>'>>>>>>&@@@@@@@@@@@@@@>>&;+[++;1}*3$33:},+[[ ",
-" <,--}:}}:}}}}}3+[++=>>>>'>>>>>'>>>>>'>>>>>>>>>>>'>>>'>>>>>>''=++$}}:}}}}}}}}}}:}}:}}}}}}:}}:}:}}}+[+>>>>>>>>>>>>>>>>>>>>>>>>@@@@@@@@@@@@@@&>>=+++++4}:333333:}1[[[ ",
-" ,,%1}}}}}}:}}}}:;+++(#&>>>>>'>>>>>>>>>'>>>>>'>>>>>>>>>'>>>>>>^++}:}}}:}}:}:}:}}}}}}:}}}}}}}}}}}:})++{>>>>>'>>'>>>>>>'>>>>&@@@@@@@@@@@@@@&&>#(++[+2<}1$33333$*}};[[[ ",
-" <,-%}}:}}}}}}}}}}},2[+[2#&'>>>>>'>>>>>>>>>'>>>>>>>>>>>>>>>>>>&++(}}}}}}}}}}}}}}}}:}}}}:}}:}}}:}}}}4+[#>>'>>>>>>'>>'>>>>>>@@@@@@@@@@@@@&>>&#(+++++|}}$33333333$}}_+[+ ",
-" _,4,}}}}:}:}}:}:}}}142[+[+={>>>>>>'>>>>>'>>>>>>'>>'>>>>>'>>>>{+[%}}:}}}:}}}}}}}:}}}:}}}}}}}:}}}}:},+[='>>>>>'>>>>>>>>>&@@@@@@@@@@@@&>>>{=([[[++%*}1$3333333333:}:+[[ ",
-" ,,%$}}}}}}}}}}}}:}}}}1-+++[[)={>>>>>>'>>>>>>'>>>>>>>>'>>>>>>&#++-}}}:}}}}}:}:}}}}}}}}}}}:}}}}:}}}}$++)>>>'>>>>>>>>>>@@@@@@@@@&@>>>>>{#)[[++++;*}:3333333333333*}}%[[[ ",
-" <_-%}}:}}}}}:}}}}}}}}}}}:_2++[++^={>>>>>>>>>>>>>>'>>>>>>>>'>>>=[+*:}}}}:}}}}}}}}}}:}}:}}}}}}}}}}:}}}2[+'>>>>>>>>>&@@@@@@@@>&>>&>>>{=;[[[+++2|:}:$3333333333<3333:}_[+[ ",
-" _,4,}}}:}:}}}}:}}}}}}}}}}}}$%+++++[+;#{>>>>>>>'>>>'>>>>'>>>>>&^[2}}}}}}}}}:}}:}:}}}}}}}}:}}:}}}}}}:})+[{>>>>>&&@&@@&@&>'>>>>>>@#;2++[++++;_}}:$3$33333<3333$333$:}:+[[ ",
-" ,,%*}}}}}}}}}}}}:}:}}:}:}:}}}}<%+++[[[[+)=#{>>>>>>>>>'>>>>>>>@++%}}:}}:}}}}}}}}}}:}}:}}}}}}}}:}}}}}}-+[=>>>&&&&>>>>>>>>>>&#=;+[[+[++++%,:}}*$333333333333333333$*}})[[[ ",
-" <,-%}}}}}}}:}}:}}}}}}}}}}}}}}}}}}}*|)++++++[[+)==#@'>>>>>>>>>&~++_}}}:}}:}}:}}}:}}}}}}}}:}}:}}}}:}}}}$++^>>>&>&>>>>&&#==)++[+[++[+[^%3:}}}1333333333333333333333$3}},+[[ ",
-" _,4,}}}:}:}}}}}}:}}}:}}}}}}:}}}}:}}}}}$4;++++[++++++()==###&>>([+}}}}}}:}:}}}:}}}:}}:}}}}}}:}}:}}}:}:}([+{&!###==;^[+++++[+++++)|<:}}}}**3$333333333<333<333333333:}*[[[ ",
-" ,-%3}}}}}}}}}:}}}:}}}}:}:}}}}:}}}}}}}}:}}}1<|)^[+++[+[[+[+++[++++;4444_$$_$_3*}:}}}}}:}}:}}13_$3<3_|4|^++[++++[[[[[+[+[+[2)|,3}}}}}}:*33$3333333333333333333333333*}})[[ ",
-" _,-%}}:}}}}:}}}}}}}}}}}}}}}}}}}}:}}}}:}}}}}}}}}}}$34%)^[++[++++++++++++++++++[+++++[+++[+++[+++++++++++[+[++[++++++2))|_3:}}}}}}}:1$33$3333333333<333333333333333333}}-+[[ ",
-" ,,4-}}}}:}}}}}:}}}:}:}}}:}:}}:}}}}:}}}}}}:}}}}}}:}}}}}}:}33<44;)^^+[+[+[+[+[+++[+[+++[+++[+++[++[+[++[+++(^^%|433$}}}}}}:}:}}}:1$$3$33$3333$<33333333333333333<33333:}$+[[ ",
-" _,%3}}}}}}}}:}}}:}}}}}:}}}}}}}}:}}}}}}}:}}}}}}}}}11:}}}}}:}}}}}}}}}}}}:333<33<,444444444|444|_33<33<1:}}}}}}}}}}}}:}}}}}}::13333333333333333333333333333<333333333331}}2[[ ",
-" --;::}}:}:}}}}}}}}}:}}}}}:}}:}}}}}:}:}}}}}:}}:}}}}}1$$$$*::}}:}}}}}}:}}}}}}:}}}}}}}}}}}}}}}}}}}}}}}}}}}:}}}}}}:}:}}}:::3$$3333$33333333333333333333333333333333333333}}%+[[ ",
-" <,4-}}}}}}}}}}}:}}}}}}}}}}}}}}}:}}}}}}}}}}}}}}}}:}}}}}1*$33<$$*$1*:::}}:}}}}}}}}}}}}}}}}}}}}}}:}}}:}}}}}}}}:}:}:113*333333333333333333333333333333333333333<3333333333:}<[[[ ",
-" ,-4_}}}:}}:}:}}}}:}}}}:}}:}}:}}}:}}}}:}:}}:}}:}}}:}}:}}}}1$$3$33333333$$$3*1**1111:1}:}}}:}:}}}}:1:1:*11**$*333$333$333333333333333333333<3333333333<3333333333<333333:}}+[[ ",
-" ,-%:}}}}}}}}}}}}}}}:}}}}}}}}}}}}}}:}}}}}}}}}}}}}}}}}}}:}}}}:*3333333333$333333$$$_333333$3$$<$33333333333$33333333333333333333333333<333333333<333<33333333333333333333}};[[ ",
-" ,,4%}}}:}}:}}}:}}:}}}}}:}}:}}}:}}}}}}:}}:}}:}}:}}}}:}}}}}}:}}}:*$333333$3333333$$$$33333$<3$$$<33333333333333333333333333333333333<333333333333333$33333333333333<333333}}-[[[ ",
-" ,,4,}:}}}}}}:}}}}}}:}}}}}}}}:}}}:}}}}}}}}}}}}}}}:}}}}}}}:}}}:}}}}1$33333<$33333_$$$33333333$333333333333333333333333333333333333333333333333333<3333333333333333333333331}*+[[ ",
-" ,-%3}}}}}:}}}}}}:}}}}}:}}:}}}}}}}:}}:}}:}}:}}:}}}}:}}:}}}}}}}}}}:}}1*333$333333$$_333$<33$<3$<33333333333333333333<333333<333<33333333333<33333333333333<333333333333333*}}+[[ ",
-" --;}}}}:}}}:}}:}}}:}}}}}}}}}:}}}}}}}}}}}}}}}}}}}}}}}}}}}}}:}}}:}}}}}:}*3333333333333333$$3$33$33333333<33<3333333333<$<333333333333333<3333<333333<333<$3333333333<333333:}%[[[ ",
-" ,,44}}}}}}}}}}}}}}}}:}}:}}:}}}}:}}:}}:}}:}}:}}:}:}}:}}}}:}}}:}}}}:}}}}:}}*33333333333333<3$<333<333333333333<3333333333$3333333<333333333333333333333333333<33333333333333}}_[[[ ",
-" ,-4_}:}}}}:}}:}}}:}}}}}}}}}}:}}}}}}}}}}}}}}}}}}}}}}}}:}}}}}}}}}}}}}:}}}}}}::$33333333333$$3$3333333<3333333$33333333333333333333333333333333333<333333333333333333333333331}:+[[ ",
-" ,-%$}}}:}}}}}}:}}}}}}}:}}:}}}}}}}:}}:}}:}}:}}:}}}}:}}}}}:}}}}:}}}}}}}}}:}}}}}1*33333333333333333333333333333333333333$<3333333333<33333333333333333333333333<33333<3333333*}}2[[ ",
-" _,4;}}}}}}:}}}}}}}}:}}}}}}}}:}}:}}}}}}}}}}}}}}}}:}}}}:}}}}}:}}}:}:}}}}:}}}}}}}}}:$333333333333333333333333333<3333<$33$33333333333333333333333333333333333333333333333333333}}%[[[ ",
-" ,-44}}}:}}}:}}}}:}}}}}:}}:}}}}}}}:}}:}}:}}:}}:}}}}:}}}}}:}}}}}}}}}}:}}}}}}:}:}:}}}:*3333333333333<3333333333333333$<33<333333<33333333<33333333333333333<3333333333333333333*},[[[ ",
-" ,-4_}}}}}}}}}:}}}}:}}}}}}}}:}}}}}}}}}:}}}}}}}}}}}}}}:}}}}}:}}:}}:}}}}}}}:}}}}}}}:}}}}*333333<3333333333333333333333333$3333333333333<$333333<3333333<333333333<333333333333$1}1+[[ ",
-" --%*:}}:}}}}}}}:}}}}}:}:}}}}:}:}}:}}}}}}}:}}:}:}}:}}}}}:}}}}}}}}}}}:}:}}}}}}}:}}}}:}}}:*3<3333333333333<333333333333333$<3333333333333333333333333333333333333333333<33333333}}2[[ ",
-" ,4%}}}}}}:}:}}}}}:}}}}}}:}}}}}}}}}}:}}}:}}}}}}}}}}}:}}}}}:}}:}}:}}}}}}}}}:}}}}}}}}}}}}}}}*33333333333<$3333333<3333333333333333<333333333333333333333333333333333333333333333:}%[[ ",
-" _-4|}}}:}}}}}}}:}}}:}}}}}}}}}}:}}:}}}:}}}}:}}}:}}:}}}}}:}}}}}}}}}:}}}:}:}}}}}:}}:}}}:}}:}}}:*3<33333333333<33333333<333333$<333333333333333333<33<3333333333333<333333<3333333:}_+[[ ",
-" ,|4_}}}}}:}}}:}}}}}}}:}:}}:}}}}}}}}}}}}}}}}}:}}}}}}:}}}}}:}}:}}}}}}:}}}}}:}}}}}}}}:}}}}}}:}}}}*333<3333333333333333333333333333333333333<3333333333333333333333333333333333333*}3[[[ ",
-" --%3}}:}}}:}}}}}:}}}}}}}}}}:}}:}}}:}}}:}}}}}}}}}:}}}}}:}}}}}}:}}}}}}}}:}}}}}:}}:}}}}}}:}}}}}}}}:*33333333333333333333333333<333333333~333333333333333<333<333333333333333333333}}+[[ ",
-" -4;}}}}}}}}}}}}}}}:}:}}}:}}}}}}}:}}}:}}}:}:}}}:}}}:}}}}}:}}}}}}:}:}}}}}}:}}}}}}}}:}}:}}}}}:}}}}}}}*333333333333333333333333333~33333333333~3333333<33333333333333<33333<3333333:}%[[ ",
-" ,-44}}:}:}}:}:}}:}}}}}}}}}}}}}:}}}}}}}}}}}}}:}}}}}}}}}:}}}}:}}}}}}}}:}}}}}}}:}}:}}}}}}}:}:}}}}:}}:}}:$33<333<33333333333<3333333333<33333333333333333333333333333333333333333333:}|[[[ ",
-" --4,}}}}}}}}}}}}}}:}}}:}}}}:}}}}:}}:}}}:}}}}}}}}}:}}:}}}:}}}}:}:}}}}}}:}:}}}}}}}}:}}}}}}}}}}}}}}}}}}}}:*$333333333<3333333333333333333333333<3333333333333<333333333333333333333*}3[[[ ",
-" ,4%3}}}}:}}}:}}:}}}:}}}}:}}}}}}}}}}}:}}}:}}}:}:}}}}}}}}}}}}}}}}}}:}}}}}}}}}:}}:}}}}}:}}}}:}}:}}:}}:}}}}}*3333<333333<33333333333333333<33333333333333<333333<3333333333333333333$}:+[[ ",
-" -4;:}}:}}}:}}}}}}}}}}:}}}}:}}:}:}}}}}}}}}}:}}}}}:}}}}:}}}:}}:}}}}}}:}:}}}:}}}}}}:}}}}}:}}}}}}}}}}}}}:}}}}}$$333333333333333333<33333333333333333333333333333333333<33333333<33333}}^[[ ",
-" ,-4%}}}}}}}}}:}}:}}}}}}}:}}}}}}}}:}}}:}}}:}}}}:}}}}:}}}:}}}}}}}:}}}}}}}:}}}}}}:}}}}}:}}}}:}}:}}:}:}}}:}}}}}}}*3333333333333333333<3333333333333<33333333333333333333333<3333333333:}%[[ ",
-" ,|4-}}}}}:}}}}}}}}:}:}}}}}:}}:}}}}}:}}}:}}}}}}}}:}}}}}}}}:}}}}}}}:}:}}}}}}}}:}}}:}}}}}:}}}}}}}}}}}}}}}}}:}}}}}:$$333333333<33333333333333333333333333333333333<3333333333333333333*}-[[[ ",
-" --4_}}:}}}}}}}}:}}}}}}}:}}}}}}}}}}}}}}}}}}:}}:}}}}}:}}:}}}}:}}:}}}}}}}}:}:}}}}}}}}}:}}}:}}}:}}:}}:}}}:}}}}:}}}}}*33333333333333333333333333333333333333333333333333333333333333333*}*+/[ ",
-" -4%3}}}}:}}:}}}}}:}}}:}}}:}}:}}:}}}}:}}}:}}}}}}:}}}}}}}}:}}}}}}}:}}}:}}}}}}:}}:}}:}}}}}}}}}}}}}}}}}:}}}}:}}}}:}}}}$$33<333333<333333333<333<33333<3333333<3333333333333<33333333333:}+[[ ",
-" -4%}}:}}}}}}}}:}}}:}}}}}}}}}}}}}}:}}}:}}}}}}:}}}}}:}}:}}}}:}}:}}}:}}}}}}:}}}}}}}}}}:}}}:}:}}}:}:}}}}}}}}}:}}}}}}}}}1$333333333333333<3333333333333333<3333333333<3333333333<3333333:}^[[ ",
-" -|44}}}}:}}:}}}}}}}}}}}}:}}:}}:}}}}}}}}}}}}:}}}:}}}}}}}}}}}}}}}}}}}}}}:}}}}:}}:}}}}}}}:}}}}}:}}}}}}}}:}}}}}}}:}}:}}}}::$33333333333333333333333~33333333333333<333333333333333333333*}4[[ ",
-" ,44|}}}}}}}}:}}:}}}:}:}}}}}}}}}}}:}:}}:}:}}}}}}}}}:}}:}}:}}:}}:}}}}:}}}}}}}}}}}}}:}}}}}}}}}}}}}}:}:}}}:}}:}}}}}}}}:}}}}:$~3333333<333333$<3333333~3333333333333333333333333333333333*}_[[[ ",
-" -4%_}:}}}:}}}}}}}:}}}}}:}}:}}:}}}}}}}}}}}}}}}:}}:}}}}}}}}}}}}}}}:}}}}:}}:}}}:}}:}}}:}:}}}:}}}:}}}}}}}}}}}}}:}}:}}:}}}}}}}:$33333333333333333<3333333<3333333333333<333333333<33333333}3[[[ ",
-" --;$}}:}}}}}}}:}}}}}:}}}}}}}}}:}}}}}}:}}:}:}}}}}}}}}:}}:}}:}}:}}}}:}}}}}}:}}}}}}}}}}}}}}}}}}}:}}}}}}:}}:}}}}}}}}}}}}}:}}}}}*333333333<333333333333333333333333333333<3333333333<33333:}[[[ ",
-" |4;}}}}}}}:}}}}}}}}}}}:}}:}}}}}}:}:}}}}}}}}}:}}}}}:}}}}}}}}}}}}:}}}}:}}}}}}:}}}}:}}}:}:}}:}:}}}:}:}}}}}}}}:}}}:}}}:}}}}:}}}:}$3333333333333333333333333~33<333333333333333333333333331}^[[ ",
-" ,-44}}}::}}}}}:}}:}:}}}}}}}}:}}}}}}}}}:}}}:}}}:}:}}}}}}:}}:}}:}}}}}}}}:}}:}}}}:}}}:}}}}}}}}}}}}}}}:}}:}}:}}}:}}}:}}}:}}}:}}}}}}$3~333333333333333333333333333<333333333<33333333333333::;[[ ",
-" -4%-}}:}}}:}}}}}}}}}}:}}:}}}}}:}:}}}:}}}:}}}}}}}}}}}}:}}}}}}}}}:}}:}}}}}}}}:}}}}}}}}:}}}}}}}}}:}}}}}}}}}}}}}}}}}}}}}}}}}}}}:}:}}:*333333~33333<33<333333333333333333333333333<33333333$}-[[[ ",
-" --%,}}1:}}}}}:}}:}}}}}}}}:}}}}}}}:}}}}}}}}}:}}}}:}:}}}}}}:}}:}}}}}}:}}}}:}}}}}:}}:}}}}}:}:}}:}}}}}}:}}:}}:}}}:}}:}}:}}:}}}}}}}}}}}$33333333333333333<3333333333333<333333<33$333333333$}<+/[ ",
-" |4%3}:1}}:}}}}}}}}:}:}}}}}}:}:}}}}}}}}:}}}}}}:}}}}}}:}}:}}}}}}:}}}}}}:}}}}}}:}}}}}}:}}}}}}}}}}}:}}:}}}}}}}}:}}}}}}}}}}}}:}}}}}:}}}}:$333333333333333333<33333333333333333333333333<3333}1+[[ ",
-" -4%1}}*}}}}}:}}:}}}}}:}}}}}}}}}}}:}:}}}:}}:}}}}}}:}}}}}}}}}:}}}}:}}}}}}:}:}}}}}}:}}}:}}}}:}}:}}}}}}}}}}:}}}}}:}}}:}}:}}}}}:}}}}}}:}}}*<33333333333333333333333333333333333333<33333333$1:+/[ ",
-" |4;}}11}:}}}}}}}}:}}}}}:}:}}}}:}}}}}}}}}}}}}:}}:}}}:}}}}}:}}}}}}}}:}}}}}}}}}}}:}}}}}}}:}}}}}}}:}}}:}}:}}}}}:}}}}:}}}}}:}}}}}}:}:}}}}}}:$333333333333333333<33<3333333<$33333333333333331}^[[ ",
-" -444}}11}}}}:}}:}}}}}}}}}}}}:}}}}}}}:}}}}}:}}}}}}}}}}:}:}}}}}:}}:}}}}:}}}}:}:}}}}:}:}}}}:}}}:}}}:}}}}}}}:}}}}:}}}}}:}}}}}:}:}}}}}}}}:}}}}$333333333333333333333333333333<333333333333333$}%/[ ",
-" ,44-}}$:}}:}}}}}}:}}:}}:}}}}}}:}}:}}}}:}:}}}:}}}}}:}}}}}}:}}}}}}}}:}}}}:}}}}}}}}}}}}}}}}}}:}}}}}}}}:}}}}}}}}}}}:}}}}}:}}}}}}}:}}}:}}}}:}}}133333<33333333333333333333333333333333<3333333}-[[[ ",
-" |4%_}}3}}}}}}}:}}}}}}}}}:}}:}}}}}}}}}}}}}}}}}:}:}}}}}}:}}}}}:}}:}}}}:}}}}:}}}:}}}}}:}:}}}}}}}:}}:}}}:}}:}}:}}}}}}:}}}}}:}}}}}}}}}}:}}}}:}}}:$333333333333333333<333<333333333333333333333}<[[[ ",
-" -4%$}:3}:}}}:}}}:}}:}}}}}}}}}:}}:}}:}:}}}:}}}}}}}}}}}}}}:}}}}}}}}}}}}}}}}}}:}}}:}}}}}}:}}}:}}}}}}}}}}}}}}}}}:}}}}}}:}}}}}:}}}:}:}}}}:}}}}:}}}$$3333<33333~33333333333333<3333333333<33333::[[[ ",
-" 44;1}:3}}:}}}}}}}}}}}:}}}}:}}}}}}}}}}}}}}}:}}}}}:}:}}:}}}:}}:}}}:}}:}:}}:}}}}}}}}:}}}}}:}}}:}}:}}}:}}:}}:}}}:}}:}}}}}}}}}}:}}}}}:}}}}}}}}}}}}}:3333333333333333333333333333<33333333333331}+/[ ",
-" 44;}}**}}}}}}}:}}:}}}}}:}}}}:}}:}}:}}}:}}}}}:}:}}}}}}}}}}}}}}}:}}}}}}}}}}}:}}:}}}}}}:}}}}}}}}}}}:}}}}}}}}}}}}}}}}:}}:}:}}}}}:}}}}}}:}}:}}:}}:}}:*33~33333333~3333333333333333333333333333*}^[[ ",
-" ,444}}31}}:}:}}}}}}}}:}}}}:}}}}}}}}}:}}}}}}}}}}}}}}:}}:}}}}}:}}}}:}}}:}}:}}}}}}}:}}:}}}}}}:}}}:}}}}:}}:}}:}}:}}:}}}}}}}}:}}}}}}}}:}}}}}}}}}}}}}}}}$3333333<33333333333333333333<3333333333*})[/ ",
-" -444}}31}}}}}}:}}:}}}}}:}}}}:}}:}}}}}}:}}:}:}}}}:}}}}}}}:}:}}}}}}}}:}}}}}}:}}:}}}}}}}}:}:}}}:}}}}}}}}}}}}}}}}}}}}:}}}}}}}}}:}}:}}}}:}}}:}}:}}}}}}}}:33<333333333~33333333<33333333333333333}4[[ ",
-" |4%,}:31}}}:}}}}}}}}:}}}}}}}}}}}:}}}}}}}}}}}}:}}}}}}}:}}}}}}}:}}:}}}}}}:}}}}}}}}:}}}}}}}}}}}}}:}}:}}:}}:}}:}}:}}}}}:}:}}:}}}}}}:}}}}:}}}}}}:}:}:}}}:}$333333<33333<33333333333333333<333333}_[[[ ",
-" |4%<}13:}:}}}:}}:}}}}}:}}:}}}:}}}}:}:}}:}}}}}}}:}}:}}}}:}}}:}}}}}}}}}:}}}:}}:}}}}}:}}:}}}:}}}}}}}}}}}}}}}}}}}}}}:}}}}}}}}}}:}}}}}:}}}}}:}}}}}}}}}}}}}}$33333333333333<$3333333333<333333333:<[[[ ",
-" 44%3}$3}}}}}}}}}}}}:}}}}}}:}}}}}}}}}}}}}}:}}:}}}}}}}:}}}}}}}}:}}:}:}}}}}}}}}}}:}}}}}}}:}}}:}}}:}}:}}:}}:}}:}}:}}}}}}}:}}:}}}}:}}}}}}}}}}}}}}}}}:}}:}}}}*333333333333333333333333333333<3333:1[/[ ",
-" 44):}33:}}}:}}:}}:}}}:}}}}}}}}}:}}}:}}}}}}}}}}:}}}}}}}:}}:}}}}}}}}}}}}}:}}:}}}}}:}}:}}}}}}}:}}}}}}}}}}}}}}}}}}}}:}}:}}}}}}}:}}}:}}:}}:}}:}:}:}}}}}}}:}}}133333<33333333333<3333333333333333*}[[[ ",
-" 44;}}33}}}}}}}}}}}}}}}}:}}:}:}}}:}}}}:}}:}}:}}}}:}}:}}}}}}}}}}}:}}:}:}}}}}}}}:}}}}}}}}}}:}}}}}:}}:}}:}}:}}:}}:}}}}}}}}:}}}}}}}}}}}}}}}}}}}}}}}}}}:}}}}}}}:333333333333333333333333333333333*}^[/ ",
-" 4%4}:3$}}:}}:}}:}}}:}}}}}}}}}}}}}}:}}}}}}}}}}:}}}}}}:}}:}}:}:}}}}}}}}}:}}:}}}}}}:}}}}:}}}}}}:}}}}}}}}}}}}}}}}}}:}}:}}}}}}}}:}}:}:}}:}}:}}}}:}}:}}}}}:}}:}}}$333333~33<333333<3333333333<333$}^[[ ",
-" |444}:3$}}}:}}}}}:}}}}}:}}:}}:}}:}}}}:}}:}}:}}}}}:}}}}}}}}}}}}}}:}}}:}}}}}}}:}:}}}}}:}}:}}:}}}}:}}}:}}:}}}:}}:}}}}}}}}:}}:}}}}}}}}}}}}}}}:}}}}}}}}:}}}}}}}}}}$3333333333333333333<3333333333$}4[[ ",
-" |4%,}13*}}}}}:}}}}}:}}}}}}}}}}}}}}}}}}}}}}}}}}}:}}}:}}:}}:}}}}:}}}:}}}:}}}}}}}}}}}:}}}}}}}}}}}}}}:}}}}}}:}}}}}}}:}}:}}}}:}}}:}}}:}}}:}}}}}}:}}:}}}}}:}}}:}}}}}*333333333333333333333333333333}4[[ ",
-" |4%,}$3$:}}}}}}}}}}}}}:}}:}}:}}:}:}}:}}:}}:}:}}}}}}}}}}}}}}:}}}}}}}}}}}}:}}:}}}}:}}}}}}:}}:}}:}}}}}}:}}}}}:}}:}}}}}}:}}}}}}}}:}}}}}}}:}}:}}}}}}}:}}}}:}}}}}:}}}*33333333333<3333$<33333333333}</[[ ",
-" 44;$}331}}:}:}}:}:}}:}}}}}}}}}}}}}}}}}}}}}}}}}}}}:}}:}}:}}}}}}}}:}}}:}}}}}}}}:}}}}}:}}}}}}}}}}}}:}}}}}}:}}}}}}}}:}}}}}}}:}}}}}}:}}:}}}}}}}:}}}}}}}:}}}}:}}}}}:}}:3333<33333333333333333333333:_[[[ ",
-" 44;$}331}}}}}}}}}}}}}}:}}:}}:}}}:}}:}}:}}:}}:}:}}}}}}}}}:}}:}:}}}:}}}}}:}}:}}}:}}}}}:}}:}}}}:}}}}:}}:}}}}:}}:}}}}}:}}:}}}}:}:}}}}}}}}}}:}}}}:}}:}}}}}}}}}}:}}}}}::3333333333333333<3333333333::[[[ ",
-" 4%;}:331}}}}}:}}}}:}}}}}}}}}}}:}}}}}}}}}}}}}}}}}:}}:}}}}}}}}}}}}}}}:}}}}}}}}}}}}:}}}}:}}}:}}}}:}}}}}}}}}}}}}}}}}:}}}}}}}:}}}}}}:}}}:}}}}}}:}}}}}}:}}:}}:}}}}:}}}}}:$33<3333333333333333<333331:[[[ ",
-" 44)}:33*:}:}}}}:}}}}}}}}:}}:}}}}:}}:}}:}}:}}}:}}}}}}:}}}}}:}}}:}}}}}:}}:}}:}}}}}}:}}}}}}}}:}}}}}}:}}:}}:}}:}}:}}}}}}:}}}}}}}:}}}:}}}:}}:}}}}}:}}}}}}}}}}}}}}}}}:}}}}$333333<333333333333333331:2[/ ",
-" 4%4}1331}}}}:}}}}:}}:}}}}}}}}}}}}}}}}}}}}}}:}}}:}}}}}}:}:}}}:}}}:}}}}}}}}}}:}:}}}}}}:}:}}}}}}:}}:}}}}}}}}}}}}}}}}:}}}}:}}}:}}}}}}}}}}}}}}}:}}}}:}}:}}:}}:}}:}}}}}:}}}33333333333333<333333333*}([[ ",
-" |4%4}*331}:}}}}}}}}}}}}}:}}:}}:}}}}:}}:}}:}}}}}}}:}}}}}}}}}}}}}}}}}}}}}:}:}}}}}}}}:}}}}}}}:}}}}}}}:}}}:}}:}}:}}:}}}}}}}}:}}}}}:}}}:}}:}}:}}}}}}}}}}}}}}}}}}}}}}:}}}}:}}$3333333333333333<33333$}^[[ ",
-" |4%-}*331}}}:}}:}:}}:}}}}}}}}}}}:}}}}}}}}}}}}:}}}}}:}:}}}}:}}}:}:}}:}:}}}}}}}}}:}}}}}}:}}}}}}:}}}}}}:}}}}}}}}}}}}:}:}}}}}}}:}}}}:}}}}}}}}}:}}:}}:}}:}}:}}:}}:}}}}}:}}}:}$3333<$<33333<333333333}%[[ ",
-" |%%,}*331}}}}}}}}}}}}}}:}}:}}:}}}}:}}:}}:}:}}}}}}}}}}}}:}}}:}}}}}}}}}}}}}:}:}:}}}}}:}}}:}}:}}}:}}}}}}}:}}:}}:}}}}}}}}:}}}}}}:}}}}}}}:}}:}}}}}}}}}}}}}}}}}}}}}}}:}}}}}}}}}$333$3333333$333333333}4[/ ",
-" |%%,}$33*}:}}:}}}}:}}:}}}}}}}}}}}}}}}}}}}}}}:}}:}:}}}}}}}}}}}}}}}:}}}}}}}}}}}}}:}}}}}}}}}}}}}}}}:}}}}}}}}}}}}}:}}}}}}}}:}:}}}}}}:}}}}}}}}:}}:}}:}}:}}:}}:}}:}}}}}}:}}}}}}}$$$333333<$3333<33333},[/[ ",
-" 44;$:3331}}}}}}:}}}}}}}:}}:}}:}:}}:}}:}}}:}}}}}}}}:}:}}:}}:}:}:}}}}:}:}:}}}}}}}}}:}}:}}:}}}}:}}}}:}}:}}:}}:}}}}}:}:}:}}}}}}}}:}}}}}:}}:}}}}}}}}}}}}}}}}}}}}}}}:}}}}:}:}:}}}$3333333333333333333}<[[[ ",
-" 4;;$}3331}}:}}}}}:}}}}}}}}}}}}}}}}}:}}}:}}}:}}:}}}}}}}}}}}}}}}}}}}}}}}}}}:}:}}:}}}}}}}:}}:}}}}}:}}}}}}}}}}}}:}}}}}}}}}}}}:}:}}}}:}}}}}}}:}}:}}:}}:}}:}}:}}:}}}}}:}}}}}}}}:}}$$33333333333333333:<[[[ ",
-" 44)*1333*}}}}}:}}}}:}}}}}:}}:}}:}}}}}}}}}}}}}}}}}}}}:}}:}}}}}}:}:}}}}:}}}}}}}}}:}}}:}}}}}}}:}}}}}}:}}:}}:}}}}:}}}:}}}}:}}}}}}:}}}}}}}:}}}}}}}}}}}}}}}}}}}}}}}:}}}}}}}}:}}}}}}*<3333<33333333333:1[/[ ",
-" 4%;}:333*}:}}}}}:}}}}:}:}}}}}}}}}:}}:}}}}:}}:}}:}}:}}}}}}:}:}}}}}}:}}}:}}}}:}}}}}:}}}}}:}}}}}}:}}}}}}}}}}}:}}}}:}}}:}}}}}:}}}}}:}}:}}}}:}}:}}:}}:}}:}}:}}:}}}}}:}}:}:}}}}}}:}}$33333333333<3333::+[/ ",
-" %%)}:3331}}}}:}}}}}}}}}}}}}:}}:}}}}}}}:}}}}}}}}}}}}}}}:}}}}}}}}:}}}}}}}}:}}}}}}}}}}}:}}}}:}}}}}:}:}}:}}:}}}}}}}}}}}}}}:}}}}:}}}}}}}}:}}}}}}}}}}}}}}}}}}}}}}}:}}}}}}}}}}:}}}}}}}$$33333333333333:}[[[ ",
-" 4%;}1333*}}:}}}:}}:}}}}}:}}}}}}}:}}:}}}}:}}:}}:}}:}}:}}}:}}}:}}}}:}}:}}}}}:}:}:}}:}}}}}}}}}:}}}}}}}}}}}}}}:}}:}}}:}}:}}}}}}}}:}}:}}}}}:}}:}}}:}}:}}:}}:}}:}}}}:}}:}}}}}}}}:}}}}}*$$<$<3<3333333:}+[[ ",
-" %%4}*3331}}}}}}}}}}:}:}}}}}}}:}}}}}}}}}}}}}}}}}}}}}}}}}}}:}}}}}}}}:}}}}}}}}}}}}}}}}}}:}:}}}}:}}}}:}}:}}:}}}}}}:}}}}}}}}:}:}}}}}}}}}:}}}}}}:}}}}}}}}}}}}}}}}}}}}}}}}:}}:}}}:}}:}}}$$$3$$$33333331}^[/ ",
-" %%4}1333*}}}:}}}:}}}}}}:}}:}}}}:}}:}}:}:}}:}}:}}:}}}}:}}}}}:}}:}}}}}}:}:}}}}}}:}:}:}}}}}}:}}}}:}}}}}}}}}}}}:}}}}}:}}}:}}}}}:}}:}}:}}}}:}}}}}}:}}:}}:}}:}}:}}:}}}}:}}}}}}}}}}}}}}:}$333333<33333*:^[[ ",
-" |4%4}*3333:}}}:}}}}}}:}}}}}}}:}}}}}}}}}}}}}}}}}}}}}:}}}}}}}}}}}}:}}:}}}}}}:}:}}}}}}}:}}}}}}}}}}:}}}:}}:}}:}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}:}}:}}}}}}}}}}}}}}}}}}:}}}}}:}}:}}:}}:}}}:}:3333333333331}^[/ ",
-" 4%%-}$333*}}}}}}}}}}}}}:}}}}}}}:}}:}}:}}}:}}:}}:}}}}}:}}:}:}}:}}}}}}}}}}}}}}}}}}}}}}}}:}}}:}}}}}}:}}}}}}}}}}:}:}:}:}:}}:}:}}:}}}:}}:}}}}}}}}}}:}}:}}:}}:}}:}}}}}}}:}}}}}}}}}}}}}}}}}}3333<$33333*}4[[ ",
-" |%%,}$333*:}}:}:}:}}:}}}}:}}:}}}}}}}}}:}}}}}}}}}}}:}}}}}}}}}}}}}:}}:}:}:}}:}}}:}:}}:}}}:}}}}:}}}}}}}}:}}:}}}}}}}}}}}}}}}}}}}}:}}}}}}}:}}:}}:}}}}}}}}}}}}}}}}}:}:}}}}}}}}:}:}}:}}}}}:}:333$<3333$*:4[/ ",
-" 4%;,}$333$}}}}}}}}}}}}:}}}}}}}:}}:}}}}}}:}}:}}:}}}}}:}}:}}}:}}}}}}}}}}}}}}}}:}}}}}}}}}}}}}:}}}:}}:}}}}}}}}:}}}}}}}}}}}:}}:}}}}}}:}}}}}}}}}}}}:}}:}}:}}:}}:}}}}}}}}}:}:}}}}}}}}}:}:}}}::$$33333331}4[/ ",
-" |%%,}$3333:}}}}}:}}:}}}}}}}:}}}}}}:}}}}}}}}}}}}}}:}}}}}}:}}}}:}}}:}}}}}}:}}}}}}:}}}:}}:}}}}}}}}}}}}:}}:}}}}}:}}:}:}:}}}}}}}}}:}}}}}:}}:}}:}}}}}}}}}}}}}}}}}}:}}}}}}}}}}:}}}:}}}}}}}}}}}:333333331:4[[ ",
-" 4;;<}$3333}}:}:}}}}}}:}}:}}}}:}}}}}}:}:}}:}}:}}:}}}:}}}}}}}}}}}:}}}:}:}}}}:}}:}}}}}}}}}}}:}}:}}:}}}}}}}}}:}}}}}}}}}}}:}}:}}:}}}}:}}}}}}}}}}:}}:}}:}}:}}:}}:}}}:}:}:}}}}}}:}}}}:}}:}}}}}}*$333333:}-[/ ",
-" 4%;$}$3333:}}}}}}}:}}}}}}}:}}}:}}}}}}}}}}}}}}}}}}}}}}:}}}:}}:}}}}}}}}}}}}}}}}}}:}}:}}:}}}}}}}}}:}}:}}:}}}}}:}}:}}}:}}}}}}}}}}:}}}:}}}:}}:}}}}}}}}}}}}}}}}}}:}}}}}}}}:}}}}}}}}}}}}}}}:}}}}*$<3333*}_[[[ ",
-" %%)3}33333:}}}}}:}}}:}}}}}}}}}}}:}:}}:}}:}}:}}}}:}}}}}}:}}}}}}:}}:}}}:}:}}}:}}}}}}}}}}}:}}:}}}}}}}}}}}}:}}}}}}}}}}}}:}:}}:}}}}}}}}}:}}}}}}:}}:}}:}}:}}:}}}}}}:}}}}}}}}:}}:}}:}}:}}:}}:}}}}133333:}<[[[ ",
-" 4;;$:333331:}:}}}}}}}:}:}}:}}}}}}}}}}}}}}}}}}:}}}:}}:}}}}}}:}}}}}}:}}}}}:}}}:}}:}}}:}}}}}}}}:}}}:}}:}}}}}}:}}}:}:}}}}}}}}}}}}}}:}}}}}}:}}}}}}}}}}}}}}}}}}:}}}}:}}:}}}}}}}}}}}}}}}}}}}}}}}}}$33331}<[/[ ",
-" 4;)$}3$333*}}}}}}}:}}}}}}}}}:}:}}:}}:}}:}}:}}}}}}}}}}}:}}:}}}:}}}}}}}:}}}}}}}}}}}:}}}}}:}}}:}}}}}}}}}:}:}}}}:}}}}}}}}:}}}:}}:}}}}:}}}}}}:}}:}}:}}:}}:}}:}}}}}}}}}}}:}}:}}:}}:}}:}}:}}}:}}}}}*333:}_[[[ ",
-" %%;$:333$3$}}:}:}}}}}}:}}:}}}}}}}}}}}}}}}}}}}}:}}}}:}}}}}}}}}}}:}}:}}}}}}:}}:}:}}}}:}}}:}}}}:}:}}:}}}}}}}}}}}}}}}}:}}}:}}}}}}:}}}}:}}:}}}}}}}}}}}}}}}}}}}}:}:}}:}}}:}}}}}}}}}:}}}}}:}}}}:}}}}:$*}}<[[/ ",
-" %%^}:$3333*}}}}}}}}}}}}}}}}:}}}:}}:}}:}}:}}:}}}}:}}}}:}}}}}:}}}}}}}}:}:}}}}}}}}}}}}}}}}}}}:}}}}}}}}:}}:}:}:}}:}:}}}}}}}}}:}}}}}:}}}}}}}:}}:}}:}}:}}}:}}}:}}}}}}}}}}}}:}}}:}}}}}:}}}}}}}}}}:}}:}}}}3[[[ ",
-" 4%)}:$<3333}:}}}:}:}}:}}:}}}:}}}}}}}}}}}}}}}}}}}}}:}}}:}:}}}:}}}}}}}}}}}}}}:}}}}:}}:}}:}}}}}}}}}:}}}}}}}}}}}}}}}}:}:}}:}}}}}}}}}}}}}:}}}}}}}}}}}}:}}}:}}}}}}:}:}}}}}}}:}}}}}:}}}}:}}}:}:}}}}}}}}}}:[/[ ",
-" %;^}}333333}}}:}}}}}}}}}}}}}}}:}}:}}:}}:}}:}}:}}}}}}}}}}}}}}}:}:}:}}}}:}:}}}}:}}}}}}}}}}}:}}:}:}}}}}}}}}}}:}}}}:}}}}}}}}:}}:}:}}:}}}}}}:}}:}}}}:}}}}}}}:}}:}}}}}:}}:}}}}}:}}}}}}}}}:}}}}}:}:}}:}}}:+[[ ",
-" %%)}}3333331}}}}}}:}}:}}}:}}}}}}}}}}}}}}}}}}}}}:}}}:}}}}}:}}}}}}}}}}:}}}}:}}}}:}}:}}}:}}}}}}}}}}}:}}:}:}}}}:}}}}}}}}:}}}}}}}}}}}}:}}:}}}}}}}:}}}}}}:}}}}}}}}}}}}}}}:}}}}}}}}:}:}}}}}}}}}}}}}}}}:}}:[[/ ",
-" %%)}}$$33331}}}:}}}}}}}:}}}:}:}}:}}:}}:}}:}}:}}}}:}}}:}:}}}:}}}}}:}}}}}}}}}:}}}}}}}:}}}}:}}:}}}:}}}}}}}}:}}}}:}}:}}}}}:}}:}}}:}}}}}}}}:}}}:}}}}}:}}}}}}}:}}:}:}:}}}}}:}}}:}}}}}}:}}:}:}}}}}:}}}}}}:[[[ ",
-" ;%^}:333333*:}}}}}}}:}}}}}}}}}}}}}}}}}}}}}}}}}:}}}}}}}}}}:}}}}:}}}}}}}:}}}}}}}}:}}}}:}}}}}}}}}}}}}}}:}}}}}:}}}}}:}}:}}}}}}:}}}}:}}:}}}}:}}}}}:}}}}}:}:}}}}}}}}}}}:}}}:}}}}}}:}}}}}}}}}:}:}}}}}}:}}:[[/ ",
-" %;^}}$33333*}}:}}:}}}}:}}:}}}}:}:}:}}:}}:}}}}}}}:}}:}}}}}}}}}}}}:}:}}}}}:}:}}}:}}}}}}}}:}}}:}:}}:}:}}}}}}}}}}}}}}}}}}}:}}}}}}}}}}}}}:}}}}}:}}}}}:}}}}}}:}:}}}}}}}}}}}}}:}}}}}}:}:}}}}}}}}:}}:}}}}}:[[[ ",
-" %;)}}*333$33}}}}}}}:}}}}}}}:}}}}}}}}}}}}}}:}}:}}}}}}}:}}}}:}:}}}}}}:}}:}}}}}}}}}:}}:}}}}:}}}}}}}}}}}}:}:}}:}}:}}:}}:}}}}}}}}:}}}:}}}}}}}}}}}}:}}}}}:}}}}}}:}:}}:}}:}}}}}}}:}:}}}}}:}}}}}}}}}}}}:}}:[[/ ",
-" %;)}}$33<$33:}}:}}}}}:}}:}}}}}}}}}}:}}:}}}}}}}}:}}}}}}}:}}}}}}:}}}}}}}}}:}}:}}}}}}}}}}:}}}}:}}}:}}}:}}}}}}}}}}}:}}}}}:}}:}:}}}:}}}:}}:}:}}:}}}}}:}}}}}}}}}}}}}}}}:}}}:}}:}}}}}}}}}}:}:}}}:}}}:}}}}:[[[ ",
-" ;;^}:3$3$33$*}}}:}}}}}}}}}}}:}:}:}}}}}}}}:}}:}}}}:}}:}}}:}}}}}}}:}}}:}}}}}}}}}:}}:}}}}}:}}}}}}}}}}}}}}}}}:}:}}}}}}:}}}}}}}}}}}}}}}}}}}}}}}}}}:}}}}}:}:}:}}}}}:}}}}}}}}}}}}}}:}}:}}}}}}}}}}:}}}}}}}:[[/ ",
-" ;%^}}133333$*}}}}}:}:}}:}}:}}}}}}}:}}:}}}}}}}}:}}}}}}}}}}:}:}}}}}}:}}}:}}:}}}:}}}}}:}}}}}:}}:}}:}}:}}:}:}}}}}:}}}}}}}:}}:}}:}}:}}:}}}}:}}}:}}}}:}}}}}}}}}:}}}}}:}}:}}:}}}:}}}}}}:}}}}}:}}}}}}}}:}}:[[[ ",
-" ;;)}}*3333333}}}}}}}}}}}}}}}}}}:}}}}}}}}:}}:}}}}}}}:}}:}}}}}}}:}}}}}}}}}}}}}}}}:}}}:}}}}}:}}}}}}}}}}}}}}}}}}}}}:}}:}}}}}}}}}}}}}}}}:}}}:}}}}}}}}}:}}}}}}}}}:}}}}}}}}}}}:}}}}}:}}}}}:}}}:}}:}:}}}}}:[[/ ",
-" %)^}}13333333:}:}:}}}:}}:}}}:}}}}:}}:}}}}}}}}:}}:}}}}}}}}}}}:}}}:}}:}}:}}:}}}:}}}}}}}}:}}}}}:}}}:}}:}}}}:}}:}}}}}}}}:}}:}}:}}}:}}}}}}}}}}:}}:}}:}}}:}:}}}:}}}}:}}}:}}}}}}:}}}}}}:}}}}}}}:}}}}}:}}}:+[/ ",
-" ;;^}:1333333$:}}}}:}}}}}}:}}}}}}}}}}}}}:}}:}}}}}}}:}}:}:}:}}}}}}}}}}}}}}}}:}}}}}:}}}}}:}}}}}}:}}}}}}}:}}}}}}}:}}:}}}}}}}}}}:}}}}:}}:}}:}}}}}}}}}:}}}}}:}}}}}}}}:}}}:}}:}}}:}}:}}}}}}:}}}}}}:}}}:}}*[/[ ",
-" ;)^1}:3333333*}}}}}}:}}}}}}:}}:}:}}:}}}}}}}}:}}}}}}}}}}}}}}}:}}}:}}:}:}:}}}}}}:}}}}:}}}}:}}}}}}:}}}:}}}:}}}:}}}}}}:}}:}}:}}}}}:}}}}}}}}}:}}:}}}}}}}}}}}}}}:}}}:}}}}}}}}}}}}}}}}:}:}}}}:}}}}}}}}}}}<+/[ ",
-" ;;^3}:<3333333:}}}}}}}:}}}}}}}}}}}}}}}:}}:}}}}:}}:}}:}}}}}:}}}:}}}}}}}}}}}:}}}}}:}}}}}}}}}:}}}}}:}}}}}}}:}}}}}}:}}}}}}}}}}}:}}}}}:}}}:}}}}}}}:}}}:}:}}}:}}}:}}}}:}}}:}}:}}}}:}}}}}}}:}}}:}}:}}}:}}_[[/ ",
-" ;))$}}33<3333$}:}:}}}}}}:}:}}:}}}:}}:}}}}}}:}}}}}}}}}}:}}}}}}}}}:}}}}}:}}}}}:}}}}}}:}}:}}}}}:}}}}}}}:}}}}}:}}:}}}}:}}}:}}:}}}}}}}}}:}}}}:}}}}}}}}}}}}:}}}}}}}}}}}}:}}}}}:}}}}}}}}}}}}}}}}}}}}:}}}}<[[/ ",
-" );^$:}333333$$1}}}:}}:}}}}}}}}:}}}}}}}}}:}}}}}}}:}}:}}}}:}}}:}}}}}}:}}}}:}}}}}}:}}}}}}}}:}}}}:}}}:}}}:}}}}}}}}:}}}}:}}}}}}}}:}}:}}}}}:}}}:}}:}:}}:}}}}}}}:}}:}:}}}}}}:}}}}:}}:}:}:}}:}}:}}:}}}}:}}-[/[ ",
-" ;)^,}}333333333}}}}}}}}:}}}:}}}}:}}}}:}}}}:}}:}}}}}}}}}}}}:}}}:}}:}}}:}}}}}}:}}}}:}}:}}}}}:}}}}}}}}}}}}}:}}:}}}}}:}}}}}}}:}}}}}}}:}}}}}}}}}}}}}}}}}}}:}}}}}}}}}}:}}}}}}}:}}}}}}}}}}}}}}}}}}}}}}}}:4[/ ",
-" %^^-:}$3333333$:}:}}:}}}:}}}}}}}}}:}}}}}}}}}}}}:}}:}:}:}}}}}}}}}}}}}}}}}}:}}}:}}}}}}}:}:}}}}}:}}:}:}}:}}}}}}}}}}}}}}:}:}}}}}}:}}}}:}}}:}}:}}:}}}}}:}}}}:}}}:}}}}}}:}}:}}}}}:}}}}}:}}:}}:}}}:}}}:}}4[[ ",
-" ;)^4}}*333333331}}}}}}}}}}}}}:}}}}}}:}}:}:}}}}}}}}}}}}}}:}}:}}:}}}:}}:}}}}}}:}}}}:}}}}}}}}}:}}}}}}}}}}}:}}:}}:}}}:}}}}}}:}}:}}}}:}}}:}}}}}}}}}:}}}}}}}}}}:}}}:}}}}}}}}}}}}}}}:}}}}}}}:}}}:}}}:}}}:(// ",
-" ;^^%}}*33333$<3*}:}}:}}}:}:}}}:}}:}}}}}}}}:}:}}:}}:}}}}}}}}}}}}}:}}}}}}:}}}}}}:}}}:}}}}:}}}}}:}}}}:}}}}}}}}}}}}}}}}}}}}}}}}}}:}}}}}}}:}}}:}:}}:}}:}}:}:}}}}}}}:}}}:}}:}:}:}:}}}}}:}}}}}}}}}}}}}}}:^[[ ",
-" ^^^}}:3333<3333}}}}}}:}}}}}}}}}}}}:}}:}}}}}}}}}}}}}:}}}:}}:}}}}}}:}}}}}}:}}}}}}}}}}:}}}}:}}}}}}:}}}:}}}:}:}}:}}:}}:}:}}:}}:}}}}}:}}}}}}}}}}}}}}}}}}}}}}}:}}:}}}}}}}}}}}}}}}}:}}}}:}}}:}}}:}}}}:}:+// ",
-" ^^^}}:3333$333$1}}:}}}}}}:}}:}}:}}}}}}}}}}}:}}}:}}}}:}}}}}}}}:}}}}:}}:}}}}:}}:}}:}}}}}}}}}}}:}}}}}}}:}}}}}}}}}}}}}}}}}}}}}}}}:}}}}}}}:}:}}}}}:}:}}:}}}}}}}}}}}:}}:}:}}}}}}}}}}}}}}:}}}:}}}}:}}}}*[[[ ",
-" )^2*}:33333$3333}}}}}}}:}}}}}}}}}:}}:}}}:}}}}:}}:}}}}}:}}:}:}}}:}}}}}}}}:}}}}}}}}}}:}:}}}:}}}}}:}}}}}}:}}:}}:}}:}}}:}}:}}}}}}}}:}}:}}}}}}:}}}}}}}}}}:}}}:}}}:}}}}}}}:}:}:}}:}:}:}}}}}}}}:}}}}}}}_[// ",
-" )^^<}}$333333333:}:}:}}}}}}:}}:}}}}}}:}}}}}}}}}}}}:}}}}}}}}}}}}}}}}:}}}}}}:}}:}}:}}}}}:}}}}}}}}}:}:}}}}}}}}}}}}}:}}}}}}}}:}}:}}}}}}:}}}}}}}:}}}:}}}}:}}}:}}}}}}:}}}}}}}}}:}}}}}}}}:}}:}}}}}}:}:}-[/[ ",
-" )2^-}}$333333333*}}}}}}}}:}}}}}}:}}}}}}:}}:}:}}}}}}:}}:}}}}}:}}:}}}}}:}}}}}}}}}}}}}}:}}}:}:}:}}}}}}}:}}:}}:}}:}}}}}:}}:}}}}}}}}:}}}}}:}}:}}}}:}}}:}}}}}}}}:}}}}}}:}}}}}}}}}}}}}}}}}}}}}:}}:}}}}:%[/ ",
-" ;2^%:}*333333333$:}}:}:}}}}}}:}}}}:}}}}}}}}}}}}:}}}}}}}}}:}}}}}}}}:}}}}:}}:}}:}}:}}}}}}}}}}}}}}}}:}}}}}}}}}}}}}}:}}}}}}}}:}}:}}}}:}}}:}}}}:}}}}}}}}}:}:}}}}:}}:}}}}:}:}}}:}}:}:}}:}}:}}}}}}}}}}:^// ",
-" )22^}}:33333333331}}}}}}}}}:}}}}}}}}:}:}}:}}}:}}}}}:}}:}}}}:}:}}:}}}}:}}}}}}}}}}}}:}}}}}}:}}:}:}}}}}:}:}}:}}}:}}}}:}}:}}}}}}}}}}}}}}}}}}:}}}}:}}}}}}}}}}}}}}}}}}:}}}}}}}}}}}}}}}}}}}}}:}}}}}:}}1[[/ ",
-" ^22:}}3333333333$}:}}:}:}}}}}:}}:}}}}}}}}:}}}}}:}:}}}}:}}}}}}}}}}}}}}}}:}}:}}:}}}}:}}:}}}}}}}}}}:}}}}}}}}:}}}}}}}}}}}}}:}}:}}:}}:}}}:}}}}}}}}}:}:}}}}:}}:}}}}}}}}}}:}}:}}}}:}}}:}}:}}}:}:}}}}}3[// ",
-" ^223}}33333333333:}}}}}}}}}:}}}}}}:}}}:}}}}}}}}}}}}}}}}}:}}}:}}}}:}}}:}}}}}}}}}:}}}}}}}}}:}}}}:}}}}}:}}}}}}:}}:}}:}}:}}}}}}}}}}}}}:}}}}:}}:}}}}}}}}:}}}}}}:}:}}}:}}}}}}}:}}}:}}}}}}}}}}}}}:}}:,[[/ ",
-" (22-}:*3<33333333*:}}}:}:}}}}}}:}}}:}}}}}}:}:}}}}}}:}}}}}:}}}}:}}}:}}}}:}}}:}}}}}}}:}}:}}}:}}}}}}:}}}:}}:}}}}}:}}}}}}}}:}}:}}:}:}}}}}}}}}}}:}:}}:}}}}}:}}}}}}}:}}}}:}:}}}}}}}}}:}}}:}}}:}}}}}})[/ ",
-" ^22;}}13333333333$:}:}}}}}}}:}}}}}}}}}}:}}}}}}:}:}}}:}}}}}}:}}}}}}}}}}}}}:}}}:}}:}}}}}}}}}}}:}}:}}}}}}}}}}}:}}}}}:}}:}}}}}}}}}}}}}}:}}:}:}}}}}}}}}}:}}}}:}}}:}}}}}}}}}}}}}:}}:}}}:}}}}}}}:}}::2// ",
-" 222}}}333<3333333$}}}}:}:}}}}}:}}}}:}}}}}:}}}}}}}}}}}}:}}}}}}:}}}:}}:}}}}}}}}}}}}:}}}:}:}}}}}}}}}:}}:}}:}}}}}:}}}}}}}}}}:}}:}}}:}}}}}}}}}}}}}}}:}}}:}}}}}}}}}}}:}}}}}:}:}}}}}}}}}}:}}:}}}}}}3[[/ ",
-" 22+$}:333$<3333333:}}}}}}}}}:}}}:}}}}:}}}}:}}}}:}}:}:}}}:}}}}}}:}}}}}}}:}}:}}:}}}}}:}}}}}}}}:}}}}}}}}}}}}}:}}}}:}}:}}:}}}}}}}:}}}:}:}}}}:}:}:}}}}:}}}}}:}}:}:}}}:}:}}}}}}:}}}:}}}}}}}}}:}}}}-//[ ",
-" 222-}}*333$3333333$:}}}:}:}}}}}}}}:}}}}:}}}}:}}}:}}}}}}}}}}:}}}}}:}}:}}}}}}}}}}:}}}}}}}:}:}}}}:}}:}}:}}:}}}}}}}}}}}}}}}:}}:}}}}}}}}}:}}}}}}}}}}}}}}}:}}}}}}}}}}}}}}}}}}}}}:}}}:}}:}}:}}}:}}:;[/ ",
-" (+2;}}:333<$33333331}:}}}}}}}}:}}}}}}}}}}}}}}}}}}}}}}:}:}}}}:}}}}}}}}}}:}}:}}}}}}:}}}:}}}}}:}}}}}}}}}}}}}:}}:}}:}}:}}}}}}}}}}:}:}}}}}}:}}}}}}:}}:}}}}}}:}}}:}:}}}}:}}:}}}}}}}}}}}}}}}}}}}}}12// ",
-" 2++:}:33$$<33333333}}}}}:}:}}}}}:}:}:}}:}:}}:}}}}:}}}}}}:}}}}}:}}:}}}}:}}}}}:}}}}:}}}}}}}}}:}}}:}}:}}:}}}}}}}}}}}}}:}}:}}:}}}}}:}}}}}}}:}:}}}}}}}:}}}}}:}}}}}}:}}}}}}}:}}:}}}:}}:}}:}}}:}}<[// ",
-" 22+<}}$3$33333333331}}:}}}}}:}}}}}}}}}}}}}}}}:}}}}}}}:}}}}}:}}}}}}}:}}}}}:}}}}}}}}}}:}:}}}}}}:}}}}}}}}}:}}:}}:}}}:}}}}}}}}}}}}}}}:}}:}}}}}}}:}}:}}}:}}}}}}}}}}}:}}:}}}}}}}}:}}}}}}}}}:}}}}%[/[ ",
-" 2++%}}*3333333333333:}}}}:}}}:}}}}}}:}}}}}:}}}}:}}:}}}}:}}}}:}}:}}}}}}:}}}:}}}:}}}}}}}}}:}}}}}}}:}}}:}}}}}}}}}:}}}:}}}:}}:}}}:}}}}}}}}}}}:}}}}}}}}}}}:}}:}:}:}}}}}}}}}:}:}}}}}}:}}:}}}}}}:2[/ ",
-" (+22:}:33333333333333}}}}}}}}}}:}:}}}}:}}}}}}}}}}}}}:}}}}}}}}}}}}}:}}}}}}}}}:}}}:}:}}}:}}}:}}:}}}}:}}}}:}}:}}}}}}}}}:}}}}}}:}}}}:}}}:}}:}}}}:}}:}}}:}}}}}}}}}}}}:}}:}}}}}}}}}:}}}}}}}}:}}$[// ",
-" +++<}}33333<3333333$1:}}:}}}}}}}}}}:}}:}}:}:}}:}:}}}}}}:}:}}}:}}}}:}}:}}:}}}}}}}}}:}}}}}}}}}}}}}}}}:}}}}}}}}}}:}}}}}}}}:}}}}}}}:}}}}}}}}:}}}}}:}}}}}}}:}}}}}}:}}}}}}:}}:}:}}}}}}:}:}}}:}4[/[ ",
-" (+2%}}*3333$<33333333:}}}}:}:}}:}}}}}}}}}}}}}}}}}}}:}:}}}}}:}}}:}}}}}}}}}}}:}}}}}}}}}:}}:}}:}}:}}:}}}}:}}:}}:}}}:}}}:}}}}}:}}:}}}:}:}}}}}}}:}}}}}}}:}}}}:}:}}}}}:}}}}}}}}}}}}}:}}}}}}}}:2// ",
-" 2[+2:}:333333$<333333*}:}}}}}}}}}:}}}}:}}}}:}}}}:}}}}}}}}}}}}}}}}}:}}:}}:}}}}:}:}}}}}}}}}}}}}}}}}}}:}}}}}}}}}}}}}:}}}}}:}}}}}}}}}}}}:}}}:}}}:}}}:}}}}:}}}}}}}:}}}}}}}}:}}:}:}}}}}}:}}}}3[// ",
-" +++_}}333333$$33333331}}:}}}:}}}}}}:}}}:}}}:}}}}}}:}}}:}}}:}}}:}}}}}}}}}}}:}}}}}:}:}}}:}}:}:}}:}}}}}}:}}:}}:}}}}}}}:}}}}:}:}}}:}}}}}}}}}}}}}}:}}}}:}}}}}:}}}}}}}:}:}}}}}}}}}}}}:}}}:}};[/[ ",
-" 2++;}}*3333$<3$<333333:}}:}}}:}}:}}}}}}}}}}}}:}:}}}}}}:}}}:}}}:}}}:}}:}}}:}}}}}}}}}:}}}}}}}}}}}}}}:}}}}}}}}}}:}}:}}}:}}}}}}}}}}:}}:}}:}}}:}}}}}}}}}}}:}}}}:}}:}}}}}}:}}:}}:}:}}}}}}}}:+[/ ",
-" (+++*}:$333333$33333333}}}}}}}}}}}}}:}}:}}}}}}}}}:}:}}}}}}}}}}}}:}}}}}}}}}}:}:}}}}}}}:}}:}}}:}}:}}}}:}}:}}}:}}}}}}}}}}:}}}:}}}}}}}}}}}}:}}}}:}}:}}:}}}}}:}}}}}:}}}}}}}}}}}}}}}}}}:}}},[// ",
-" +++|}}*<333333333333333}:}}}:}}:}:}}}}}}}:}}}:}}}}}}}}:}}}:}}}}}}}:}}}:}}}}}}:}}:}}}}}}}:}}}}}}}}}}}}}}:}}}}}:}}}:}}}}:}}}}:}}:}}}:}}}}:}}}}}}:}}}}}:}}}}:}}}}}}:}}:}}:}}}}:}:}}}}}:)[// ",
-" ([+2}}:$3<$3333<3333333*}}:}}}}}}}}:}}:}}}}:}}}}}}:}}}}}:}}}:}}:}}}}:}}}:}}}}}}}}}:}}}}}}}}:}}:}}:}}}:}}}}}:}}}:}}}}}}}}}:}}}}}}:}}}}}}}}}:}}}}}}:}}}}}}}}:}}}:}}}}}}}}}:}}}}}}:}}}3[/[ ",
-" +[+_}}$$$<33333333333331}}}}}}}}}}}}}}:}}}}}}:}}}}}:}}}}}}}}}}}}}}}}}}}}:}:}}}:}}}}}:}}:}}}}}}}}}:}}}}}:}}}}}}}}}}}:}}}}}}}:}}}}}}:}}:}}}}}}}:}}}}:}}:}}}}}}}}}}}:}}:}}}}}}:}}}}}:%[// ",
-" 2++(}}*$$3333333333333331}:}:}:}}}:}}}}}:}}}}}}:}}}}}}:}}:}}:}}:}:}}}:}}}}}}}}}}}:}}}}}}}:}}}:}}}}}}}}}}}}}:}}:}:}}}}:}}}:}}}:}}:}}}:}}}:}}:}}}}}}}}}}:}}}:}}:}:}}}}}}:}}:}}}:}}}1[[/ ",
-" ++[+$}}3333333333<3333333:}}}}}:}}}}:}}}}}:}:}}}}}}:}}}}}}}}}}}}}}:}}}}}}}}:}}:}}}:}}:}}}}:}}}}}}}:}}:}}:}}}}}}}}:}}}}:}}}}}}}}}}:}}}}}}}}}}}}}:}}:}}}}:}}}}}}}}}}}:}}}}}}}}}}}}:-[// ",
-" 2[+%:}*3333333333333333331}}}}}}}}}}}:}}}}}}}:}}:}}}}:}}:}}:}}}}}}}}:}}:}}}}}}}:}}}:}}}}}}}:}}:}}}}}}}:}}}:}}}}}}}:}}}}}:}:}}}}}}}}}:}}:}}}:}}}}}}}:}}}}}:}}:}}}:}}}:}}}}:}:}}}1+[// ",
-" 2+[+*}}3333333333333333333*}}}}:}:}}}}}}}}:}}}}}}}:}}}}}}}}}:}}:}}}}}}}}:}}:}}}}}}}}}:}}:}}}}}}:}}:}}}}:}}}}:}}:}}}}}}}}}}}}}:}}}:}}}}}}}}}:}}}:}}}}}}:}}}}}}}}}}}}}}}:}}}}}:}:,[/[ ",
-" +[+%:}*3333<333333<33333331}}}}}}}:}}:}}}}}:}}}}}}}}:}}:}}}}}}}}:}}}:}}}}}}}}}:}}}}}}}}}}}:}}}}}}}}:}}}}:}}}}}}}}:}:}:}}}:}}}}:}}}}:}}:}}}}}:}}}:}}}}}}}:}:}}:}}:}:}}}}}}}}}}:+[// ",
-" 2+++*}:33333333333333333333*}}:}}}}}}}}:}}}}}:}}:}}}}}}}:}}}}:}}}}}}}}:}:}}:}}}:}:}}:}}:}}}}:}}}:}}}}}}}}}}:}}:}}}}}}}}}}}:}}}}}:}}}:}}}}:}}}}}}}}}:}}}}}}}}}}}}}}}}}:}:}}}}}-[// ",
-" +[+;}}*333333333333333333331}}}:}:}}:}}}:}}}}}}}}}:}}}}}}:}}}}:}:}:}}}}}}}}}}}}}}}}}}}}}}}}}}:}}}}:}}:}}}}}}}}}}}}}}:}:}}}}}}}}}}}}}}}:}}}}}:}}:}}}:}:}}}}:}}:}}}}:}}}}}:}::+[// ",
-" ([++*}:333<33333333333333333$}}}}}}}}}}}}}}:}}:}}}}:}:}}}}:}}}}}}}}}}}:}}:}}:}}}:}}:}}:}}:}}}}}:}}}}}}}:}}:}}:}:}:}}}}}}}}:}}:}}}:}}}}}:}}:}}}}}}}}}}}}:}}}}}}}:}}}}}:}}}}}-[// ",
-" +[+%}}*3333333333<33333333333}}}:}}}:}:}}}}}}}}}:}}}}}:}}}}}:}}}}}}:}}}}}}}}}:}}}}}}}}}}}}:}}}}}}:}}}}}}}}}}}}}}}}}}}:}}}}}:}}}:}}}:}}}}}}}:}}:}}}}}}}}}:}}}}}}}}}}}}}:}}:+[// ",
-" ([+[3:}33333<333333333333333331}}:}}}}}:}}:}}:}}}}}}}}}}}:}}}}}:}}}}}}:}}}}}}}}}:}}:}}:}}}}:}}:}}}}:}}:}}:}}}}}}}:}}}}}:}}}}}}}}}}}}}}}:}}}}}}}}}:}:}:}}}}:}}:}}:}}:}}}}:4[// ",
-" +[+)}::333333333333<33333333331}}}}}}}}}}}}}}}}}:}}:}}}}}}}:}}}}}}}:}}}:}:}}}:}}}}}}}}}:}}}}}}}}}}}}}}}}}}:}:}:}}}}:}}}}:}}:}}}:}}}:}}}}:}}:}}:}}}}}}}:}}}}}}}}}}}}}}}}*+//[ ",
-" ++[+,}}$3333<333333333333333333*::}:}}}:}}:}}:}}}}}}:}}:}}}}}:}}:}}}}}}}}}}}}}}}}:}}:}}}}}}}}:}:}}:}}:}:}}}}}}}}:}}}}}}}}}}:}}}}:}}}}}}}}}}}}}}}}}}:}}}}:}}:}}:}}:}:}}:%[/[ ",
-" +[+21}:$333333333333<3333333333$1}}}}}}}}}}}}}:}}}}}}}}}:}}}}}:}}}:}}}:}}}:}}:}}}}}}}:}}:}}}}}}}}}}}}}}}}:}}}}}}}}:}:}}}:}}}}:}}}:}:}:}}:}}}}}:}}}}}}}}}}}}}}}}}}}}}}<[// ",
-" +[[|}}*33333<333333333<333333333$:}:}}:}}:}}}}:}:}}:}}}}}:}}}}}}}:}}}}:}}}}}}:}}}:}}}}}:}}:}}}}:}}:}}:}}}:}:}}}}}}}}:}}}}}}}}}}}}}}}}}}}}}:}}}}}:}}:}}:}}:}}:}}}}:}:([/[ ",
-" 2[[+3}}$333333333333333333333333331}}}}}}}}}:}}}}}}}}:}}:}}}}}:}}}}:}}}}:}}:}}}:}}}}:}}}}}}}:}}}}}}}}}}}}}}}}:}:}}}}}}}:}}:}}}}:}}}}:}}:}}}}}:}}}}}}}}}}}}}}}}:}}}}-[// ",
-" +[+(:}13333333333333333333333333333*:}}:}}}}}}}}}:}}}}}}}}:}}}}}}}}:}}}}}}}}}}}:}}}}}}}:}}}}}}:}:}}}}}:}}}}}}}}:}}}:}}}}}}}:}}}}:}}}}}}:}}:}}}:}}:}}:}}:}}:}}}}:}$+/// ",
-" 2[[+-}}*33333333333333333<3333333333*:}}}}:}}:}:}}}}}:}}:}}}}:}}:}}}}}:}}}}:}}}}}:}}:}}}}:}}:}}}}}:}:}}}:}:}}}}}}}}}}:}}}:}}}}}}}:}}}}}}}}}}}}}}}}}}}}}}}}}}:}}}:^[/[ ",
-" +[[+3}}$333<3333333333333333333333333$:}}}}}}}}}}:}}}}}}}}}}}}}}}}:}}}}:}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}:}}}:}:}}}}:}}}}}:}:}}}}:}:}}}}:}}:}}:}}:}}:}}:}}}}}:,[// ",
-" +[+(}}}3333333333<33333333333333333333$1}:}}}}:}}}}}}}:}:}:}}}}:}}}}:}}}}:}}:}}:}}:}}:}}:}}:}}}:}}}:}}}}}}}:}}}}}}:}}}}}}}}}}}}}}}}}:}}}}}}}}}}}}}}}}}}}}}}}}*+[// ",
-" ([[[|:}133333<33333333333<33333333333333$1}:}}}}}:}:}}}}}}}}:}}}}}}}}}:}}}}}}}}}}}}}}}}}}}}}:}}}}}}}:}}:}}}}}}}}}}}}:}}:}:}}}:}:}}}}}:}}:}}:}}:}}:}}:}}:}:}::^[// ",
-" +[[[3:}*333333333<333333333333333333333333*:}}:}}}}}}}}}}:}}}}:}:}}}}}}:}}:}}:}}:}}:}}:}}}}}}:}}:}}}}}}}}}}:}}:}}}}}}}}}}}}}}}}:}}}}}}}}}}}:}}}}}}}}}}}}}}}4[// ",
-" +[[(:}}$33333333333333333<33<3333333333$3$3$1:}}}:}:}:}}}}}}}}}}:}}:}}}}}}}}}}}}}}}}}}:}}:}}}}}}}}:}}:}:}}}}}:}}:}}}:}}}:}:}}}}}:}}}}}:}}}}}}}:}}:}}:}}}:3+//[ ",
-" ++[[)}:}333333333333<333333333333333333<$33333$*}}}}}}}}}:}:}}}}}}}}}:}}:}}:}}:}}:}}}}}}}}}}}}}}:}}}}}}}}}:}}}}}}}:}}}:}}}}}}}}}}}:}}}}:}}}:}}}}}}}}}}:}$2/// ",
-" ([[[|}:}<333333333333333333333<3333333333333$$33$*::}:}}}}}:}}:}}:}}}}}}}}}}}}}}}}:}}:}:}}:}:}}}}}:}}}:}}}}}}:}}}}}}}}}}}}:}:}}:}}}}}}}:}}}}}}}:}}:}}}:;//[ ",
-" +[+[<}}:333333333333333333333333333333333333333333$$*1}}}}}}}}}}}}:}}:}}:}}:}}}}}}}}}}}}}}}}}:}}}}}:}}}}}:}}}}:}}}:}}:}}}}}}}}}}:}:}}}}}:}}:}}}}}}}}}|[/// ",
-" +[[+3}}1333333333333333333333333333333333333333333333$$*::}:}}:}}}}}}}}}}}}}:}}:}}:}}:}:}}}}}}}:}}}}}:}}}:}}}}}}}}}}}:}:}}}:}}}}}}}}:}}}}}}}}:}}}:}_[/// ",
-" [+[(::}*3333333333333333333333333333333333333333333333$33$$**:}}:}}:}}:}}}}}}}}}}}}}}}}}:}}:}}}}}}}}}}}:}}}}:}}:}}}}}}}:}}}}}:}}:}}}}:}}:}}}}}:}}$+[// ",
-" ([[[(}}}*33333333333333333333<3333<3333333333333333333333$$$3333$$***:*:}:}}:}}:}}:}}:}}}}}}}}:}}:}}:}}}}:}}}}}}}:}}}}}}}}:}}}}}}}}}}}}}}}}:}}}}32/// ",
-" +[[+;:}}*33<333<3333<333333333333333<333333333333333333333$3333333$$$$33333$**::}}}}}}}}:}}:}}}}}}}}}}}}}}}:}}}}}}:}}}:}}}}}}:}}:}:}}:}}:}}}}}:^[/[ ",
-" +[[[;}}}13333333333333<333333333333333333333333~333333333333333333333~333$$$$$$$$$:}1}}}}}}}}:}}:}}:}}:}}}}:}:}:}}:}}}}}}:}}}}}}}}}}}}}}}}}:1;//// ",
-" +[[+|}}}13333333333333333333<33333333<33333333333333333333333333333333333333333$$$$$*}}:}}}}}}}}}}}}}}}}:}}}}}}}}}}}}:}}}}}:}}}}}:}}:}}}:}:%[/[/ ",
-" +[[[,:}}:333<3333333333<33333333333333333333333~333~33333~333333333333333333333$$3$$$*:}:}}:}}:}}:}}:}}}}}}}}:}}}}:}}:}}}}}:}:}}}}}}:}}}:-[/// ",
-" [[[[,}:}:$3333<33333333333333<33~3333333<33<333333333333333~33333333333333333333333333*:}:}}}}}}}}}}}}}}:}}}}}:}}}}}}}:}}}}}}}:}}}}}}}:|[//[ ",
-" +[[[,}}:}$333333<333333333333333333<3333333333333<33333333333333<33~333~3333333333333$$$*}}:}:}}:}}:}}}}}:}}}}:}}}}}}}}}}}:}}}:}}}:}:-[/[/ ",
-" [[[+|}}}}*$3333333~333333333333333333333333333333333<33333333333333333333333333333333$<$*}}}}}}}}}}}:}}}}}:}}}}:}:}}:}:}}}}}}}}:}}:-[[// ",
-" [[[+|:}}}*33333333333~33333333333333333333<3333333333333333333333<3333<333333333333$$$$$$*}}:}}:}}}}}:}}}}}}}}}}}}}}}}}}}:}}}}}}:-[/// ",
-" [[[[%}}}}:$3333333<3333333<33333333333333333333333333<333333333333333333<3333333333<3$3$3$}}}}}}:}}}}}:}}:}}:}}:}}:}}:}}}}:}}::4[/// ",
-" +[[[;:}:}}*33<3333333333333333~3333333<3333333333333333333333333333333333333333333$$$333$3}:}}}}}}:}}}}}}}}}}}}}}}}}}}:}}}:}:;[/// ",
-" [[/[(*}}}::33333333333333333333333333333333333<3333333<333333333333333333~333333333<$$333$}}}:}:}}}}:}}:}}}:}:}}:}}}}}}}}:1)[/[/ ",
-" +[[[(3}}}}}*3333333333333333333333333333<33333333333333333333333333~3333333<33333$<$<$333$:}}}}}:}}}}}}}:}}}}}}}}:}}}:}}*2[/// ",
-" [[[[+<:}:}}:33333<3333<333333<33333333333333333333333333<33333333333<33333333333333333333$}}}}}}}:}:}}}}}}}}:}}}}}:}}:<+[//[ ",
-" +[[[[|:}}}:}$33333333333333333333333333333333<333~333333333333<3333333<3333333333333333331:}:}}}}}}:}}}}:}}}}}:}}}}:-+//// ",
-" +/[/[)*}}}}}:$33333333<333333~3333333~3333333333333<33333<3333333333333333333333333333333}}}}:}}}}}}:}}}}}:}}}}:}1%[/[/ ",
-" [[[[+<:}}}}}13333333333333<333<333333~333333333333333333333333333333333333<333333333333*:}}}}:}}}}}}}}:}}}}:}}3([/// ",
-" [[[[[|:}}}}}:*3333333~33333333333333<3333<3333333333333333333333333<33333333333<3333333:}}}}}}:}}:}}}}}:}}}1,+//[/ ",
-" [/[[[(3:}}}}}}*3333333333333333333333333333<333333~3333333333333333333333333333333333$1}}:}}}}}}}}:}}}}}:*;[//// ",
-" [//[[|:}}}:}}}$333333333333<333333333333333~3333333<33333333333333333333<33333333333$}}}:}:}:}}}}:}:}:_+[/[/ ",
-" +/[[/(~:}}}}}}}*$3333333333333333<3333333333<33333333<333<333333<3333333333<3333333$}}}}}}}}}}}}}:}*%[[/// ",
-" [/[/[;*}}:}:}}}:$$333333333333333333333333333333333333333333333333333333333333333$}}:}}}}}:}}}}:,[[//[ ",
-" [[/[[+=:}}}}}}}}:*3333333~333333333<3333333<333333333333333333333333333333333333$}}}}}:}}}}::3([[/// ",
-" [[/[[(|:}}}}:}}}::$$333<3333~33333333333333333333~333<333333<333333333333333331}}:}}}}:}}*)[[/// ",
-" [[//[[(|::}}}}}}}}::$3333333~33333<3333333333<333333333333333<333333333<33333}:}}}}}}:*%[[//// ",
-" [/[/[[(|}::}}}:}}}}}1$33333333333333333~3333333333333333333333<33333333333*}}}:}:}$4[[//// ",
-" [/[/[/(|*:}}}}}}}}}}}:*$333333333~333333333<33333<33333333333333333333$*}}}}}}3;+/[/// ",
-" [/[/[[[=3}}}:}}:}}:}}}:1$$333333333333333333333333333333333333333333*}}:}1<)[[///[ ",
-" [/[/[/[(|::}}}}}}}}}}}}}:1*$33333<333333~3333333333333333<333<33$:}:}$|2[[///[ ",
-" [//[/[[+;<:}}}}}}}}:}}}}}}::**$$33333333<3333<33333333333333*:}}:,)+[///// ",
-" /[////[[)<1:}:}}}}}}:}}}}}}}}::*$$33333~3333333333333$*:}:1,;[//////[ ",
-" [[////[/[)|3:}:}}}}}}}}}:}}}}}}}}}}:::**1*$$**:*:::::$|)[[//[//[ ",
-" /[////[/[[(=<*:::}:}}}:}}}}}}:}}}}}}}}}}}}}:::<|)+[[/////[/ ",
-" [/////[[/[/((=|<31:::}:}}}}}:}:}:::1$<|=((/[////////[ ",
-" [////////[//[/[((((%|;=%|;=(((([[[[/[///[///[ ",
-" [////////[//[/[//[/////[///////////// ",
-" [[////////////[////////[/ ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "};
diff --git a/perl-install/pixmaps/mouse_3b+_mini.xpm b/perl-install/pixmaps/mouse_3b+_mini.xpm
deleted file mode 100644
index c4b4960b3..000000000
--- a/perl-install/pixmaps/mouse_3b+_mini.xpm
+++ /dev/null
@@ -1,211 +0,0 @@
-/* XPM */
-static char * mouse_3b+_mini_xpm[] = {
-"105 175 33 1",
-" c None",
-". c #0C1530",
-"+ c #FE9A02",
-"@ c #212F55",
-"# c #7C6535",
-"$ c #E8A518",
-"% c #B68725",
-"& c #DAA22A",
-"* c #95742E",
-"= c #E6A929",
-"- c #757C98",
-"; c #F7B01E",
-"> c #B2924F",
-", c #FDA106",
-"' c #61543C",
-") c #ACAECB",
-"! c #7E84A0",
-"~ c #AFB2CD",
-"{ c #878DAC",
-"] c #13234A",
-"^ c #E2A62E",
-"/ c #8D6F32",
-"( c #5B6485",
-"_ c #3A4461",
-": c #BABEDA",
-"< c #9A9ABD",
-"[ c #FEB212",
-"} c #D6A236",
-"| c #465173",
-"1 c #A6A8C6",
-"2 c #9EA0C0",
-"3 c #697293",
-"4 c #313C5E",
-" (3<|. ",
-" ((<|. ",
-" (-<4. ",
-" (-<4. ",
-" (3<@. ",
-" (!<]. ",
-" (|!<.. ",
-" (|!<]. ",
-" ((!{]. ",
-" (|<<.. ",
-" ||{<]. ",
-" (_!<.. ",
-" (|!<]. ",
-" (|!<]. ",
-" _!<@. ",
-" |3<@. ",
-" 33<4] ",
-" 2--<-@4 ",
-" {!!<<<!_] ",
-" (|<<<<<!]] ",
-" |_2<<<<<@. ",
-" |_{<<<<<_. ",
-" ||{<<<<<|] ",
-" |_!<<<<<3. ",
-" -(-<<<<<!]. ",
-" )13|_444__]_-! ",
-" ~)1{!((33-333((33--- ",
-" ~~1{{<~::~)11)111~:)<-(33 ",
-" ~~2{/|:12<<<<<<<<<<<<<:{]||(( ",
-" ~1{>;=@{2<<<<<<<<<<<<<<<|4[&'||| ",
-" ~){>;[[[|3)<<<<<<<<<<<<<<<]#[[[}|||| ",
-" ~1!^[;,;[#_:<<<<<<{<<<{<<<{]%[[[[;*4__ ",
-" ~<>;,+++[[%]:1<<<<<<<<<<<<<3]&[[[[[[&___ ",
-" ){>,,++++[[>]1~<<<<((((<<<<2(@[[[[[[[[='44 ",
-" 1!&,+++++[[[$]<:2<<@....]{<<1|4[[[[[[[[[;#@4@ ",
-" 1!^,+++++[[[[[@!:)<<@....]{<<)_'[[[[[[[[[;[#@@@ ",
-" 1!$++++++[[[[[[4-::<<].....{<<~@'[[[[[[[[[[[[#@@ ",
-" 1!&++++++[[[[[[[_3::1<4....4{<<:]/[[[[[[[[[[[[[#@@ ",
-" 1!&,+++++,[[[[[[['(:::<].....{<<:]/[[[[[[[[[[[[[;'@] ",
-" 1!}++++++;[[[[[[[['|:~:14....4{<<1]%[[[[[[[[[[[[[[[_@] ",
-" 1<>$+++++,[[[[[[[[[#|:::~@....]{<<1]%[[[[[[[[[[[[[[[$4]] ",
-" 1<!,+++++[[[[[[[[[[;/|::::4]..]4{<21]>[[[[[[[[[[[[[[[[>]]] ",
-" 2-;+++++,[[[[[[[[[[[/_::::......{<<{]}[[[[[[[[[[[[[[[[[*]] ",
-" 2!}+++++[[[[[[[[[[[[;/_:~::_....4{<2<]%[[[[[[[[[[[[[[[[[;']] ",
-" 1<*;++++,[[[[[[[[[[[[[%@::::].....{<<{]$[[[[[[[[[[[[[[[[[[&@]] ",
-" <-;++++;[[[[[[[[[[[[[[*4:::~@....@{<2<]=[[[[[[[[[[[[[[[[,[[*]] ",
-" 2!>,+++,[[[[[[[[[[[[[[[%@::::......{<<<]$[[[[[[[[[[[[[[[[[,[[_]] ",
-" <<![+++,[[[[[[[[[[[[[[[[*4:~::_...]4{<<!]=[[[[[[[[[[[[[[[[[[,[&]]] ",
-" <-$,++,[[[[[[[[[[[[[[[[[%@::::].....{<<!]&[[[[[[[[[[[[[[[[[[,,[#]] ",
-" <{%;++,[[[[[[[[[[[[[[[[[;*4:::~_....4{<<!]=[[[[[[[[[[[[[[[[[[,+[$@]] ",
-" <3=,+,[[[[[[[[[[[[[[[[[[[%@::~:......!<<!]=[[[[[[[[[[[[[[[[[[[+,[*]] ",
-" <!>;+,[[[[[[[[[[[[[[[[[[[[*@::::_...]_{<1{]=[[[[[[[[[[[[[[[[[[[,+,;@]] ",
-" <3[,+[[[[[[[[[[[[[[[[[[[[[*_::::......21:{]=[[[[[[[[[[[[[[[[[[[,++[*]] ",
-" <!>;+[[[[[[[[[[[[[[[[[[[[[[/_:~::_]..]_)::<]}[[[[[[[[[[[[[[[[[[[;+++[4]] ",
-" <3[,,[[[[[[[[[[[[[[[[[[[[[[/_::::......1::2]>[[[[[[[[[[[[[[[[[[[[+++,*]] ",
-" {!>[[[[[[[[[[[[[[[[[[[[[[[[[(|:~::|]..]|)::1]}[[[[[[[[[[[[[[[[[[[,++++[@]] ",
-" {-;[[[[[[[[[[[[[[[[[[[[[[[[['(::::......1::~]*[[[[[[[[[[[[[[[[[[[;++++,/]] ",
-" {{*[[[[[[[[[[[[[[[[[[[[[[[[[[_(::~:_]..]_)~::]%[[[[[[[[[[[[[[[[[[[,+++++,]]] ",
-" {3&[[[[[[[[[[[[[[[[[[[[[[[[[[_3::::......1:::@/[[[[[[[[[[[[[[[[[[[++++++;']] ",
-" {|%[[[[[[[[[[[[[[[[[[[[[[[[[[@-::~:4]..]_):::4#[[[[[[[[[[[[[[[[[[;++++++,_]] ",
-" {-_/[[[[[[[[[[[[[[[[[[[[[[[[[[]{::::......2:::||[[[[[[[[[[[[[[[[[[,++++++,@]]] ",
-" {33@[[[[[[[[[[[[[[[[[[[[[[[[[&]<:::~_]..]_1:::(|[[[[[[[[[[[[[[[[[,+++++++*]4(. ",
-" !{~@#[[[[[[[[[[[[[[[[[[[[[[[[%]~::::......1:::3][[[[[[[[[[[[[[[[[+++++++$@]{<]] ",
-" !3):{@>[[[[[[[[[[[[[[[[[[[[[[[*@:~:::(]..]3):~:{@[[[[[[[[[[[[[[[[+++++++,_]|::4] ",
-" !-::~3]*[[[[[[[[[[[[[[[[[[[[[[#_:::~::-(33:::::2]>[[[[[[[[[[[[[[++++++,$_](~2~3. ",
-" {-<~:::!@(;[[[[[[[[[[[[[[[[[[[[||::::::::~:::::::]>[[[[[[[[[[[[+++++++;%@]()2<)1]] ",
-" !3~:::::24@/;[[[[[[[[[[[[[[[[[[@-:~::~:::::~:~:~:4'[[[[[[[[[[[+++++,[%_]4{1<<<2:_] ",
-" !-:::::~::!4@(}[[[[[[[[[[[[[[[$]{::::::::::::::::(|[[[[[[[[,++,,,[$/4]@312<<<<<~-] ",
-" {-<~:~::::~::{|@@#>=[[[[[[[[[[[%]~:::::~::~:~:::::-][[[[[[[,[[;;%/_]]|!~1<<<<<<<11]] ",
-" !(~::::::::::::~!|@@4(*>=[[[[[['|:~:~:::~:::::::~:1]}[[[[[$%*#4@]]|-1~2<<<<{<<<<2:4] ",
-" --:::::~:::~:::::::2-(4@]@4|'#/@({<111)::::::~2)1<{@_/#'_@]]]4'-2~:22<<<<<<<<<<<<~3. ",
-" !-{::~::~:::~::~:::::::::){!((|_@@]]]]]]]]]]]]]]]]]]]@4||(-{1~::~22<<<<<<<<<<<<<<<11]] ",
-" -3~:::::::::::::::~::~::~~~)~~::::~:1112{<{<{<{)11~:::~::::~)12<<<<<<<<<<<{<<<{<<<2:@. ",
-" !3:::::::~::~::~:::::::::::~1<<<2111)~~~:~::::::~:~~~~111<<2<<<<<<<<<<<<<<<<<<<<<<<:(] ",
-" -{:~:~::~:::::::::~::~::::::::12<<<<<<<2<<<<<2<<<<<<<<<<<<<<<<<<<<<<<<{<<<<<<<<<<<<1{] ",
-" -32::::::::~:::~:::::::~:::::::::~2<<<<2{<<<<2{2{<<<<<<<<<<<<<<<<<<{<<<<<<<<<<<<<{<<1~]] ",
-" -(:::::~:::::~::::~::::::~:~:~:::::~1<<<<<<<<{2<2<<<<<<<<<<<{<<<<<<<<<<<<<<{<<{<<<<<<~_. ",
-" --::~::~::::::~:::::~::::::::::~:::::~1<2{<<2<2{<<<<<<<{<<<<<<{<<<<<<<<<<<<<<<<<<<<<<~3] ",
-" !3{:::::::~:::::::~::::~::~::::::::::::::122<<<<<<<<<<<<<<<<<<<<<<<<<<<<<{<<<<<<<<<<<21{]. ",
-" -32::::::::~::~:::::~::::::::~::::~:~::::::)<<<<<<<<<{<<<<<<<<<<<<<<<{<<<<<<<<<<<{<<<<2:]] ",
-" -3:::~::~::::::::~:::::~::::::~:~:::::~::~::~)<<<{<<<<<<<{<<<<<<<<<<<<<<<<<<<<<<<<<<<<<~_. ",
-" -3::::::::::~::::~::~::::~:~::::::::~::::::::::)<<<<<<<<<<<<<{<<{<<<<<<<<<<<{<<<<<<<<<<~(] ",
-" 3{:~:::~::~:::~:::::::::::::~::~::::::~::::::::::1<<<<<<<<<<<<<<<<<<<{<<<<<<<<<{<<<{<<<1{] ",
-" -32:::~::::::::::::~:::~::~::::::::~:::::~:~:~::::::1<<<<<{<<<<<<<{<<<<<<<<<<<<<<<<<<<<<2~]. ",
-" -(::::::~::~:::~::::::::::::::~:~:::~:::::::::~:~:~:~~1<<<<<<<<<<<<<<<<<{<<<<<<<<<<<<<<<<~4. ",
-" 33::~::::::~:::~::~::~:~:::~::::::::::~::::::::::::::::~2<<<<<<<<<<{<<<<<<<<<<<<<<<<<<<<<~|] ",
-" 3!::::~:::::::::::::::::::::::::~:~:::::~:~:~::::::::~:::1<<<<<<<<<<<<<<<<<{<<<<<<<<<<<<<1-. ",
-" -3{:::::::~:::~:::~::::::~::~:~::::::::~:::::::~:~:~:::~:::~2<<{<<<<<<<<<<<<<<<{<<{<<{<<<<2<] ",
-" -(1:~:::~:::~:::~:::~:~::::::::~::::~::::::::::::::::::::~:::)2<<<<<{<<<{<<<<<<<<<<<<<<<<<<).] ",
-" 3(:::~:::::::::::::::::::~::~::::~:::::~::~:~::::::~::::::::::~1<<<<<<<<<<<<<<<<<<<<<<{<<<<:@. ",
-" 33:~::::~:::~:::~:~:::~:::::::::::~:::::::::::~:~::::~:~:::~::::)<<<<<<<<<{<<<<<<<<<<<<<<<<1|] ",
-" 3-:):::::~:::~:::::::::::~:::~::::::~:::~:::~::::~::::::~::::::::~1<<{<<<<<<<<<<<<<<<<<<{<<13. ",
-" 3{~~::~::::::::::::~::::::::::~:~::::~::::::::::::::~:::::~::::::::)2<<<<<<<<<{<<<<<<<<<<<<2!. ",
-" -(2~~::::::~::~::~::::~:~::~::::::::::::::~::~::::~::::::::::~:~::::::<<<{<<<<<<<<{<<<<<<<<<<2]. ",
-" 3(~1::~::~::::::::~::::::::::~::::~:~:~:::::::~:::::~::~::~::::::~:::::1<<<<{<<<<<<<<<<<<<<<<~]. ",
-" 3(:2:::::::~::~:::::~:~::~:~::::~:::::::~:~::::~::::::::::::~:~::::~::::~<<<<<<<<<<{<<<{<<<<<)@. ",
-" 33:2::~:::::::::~::::::::::::::::::::::::::::::::~:::~::~::::::::::::~::::2<<<<<<<<<<<<<<<{<<)|. ",
-" 33~1:::~::~::~:::::::::~::::~:~:~::~::~:::~:~:~:::~::::::~::::~:~:~::::::::1<{<<<<<<<<<<<<<<<2(] ",
-" ({11::::::::::::~:~:::::::~:::::::::::::::::::::::::~::::::~:::::::::~:~::~:)<<<<<{<<<<<<<<<<23. ",
-" ({1)~::~::~::~:::::::~::~::::::::~::~::~::~::::~:::::~::::::::~::::~:::::::::~<<<<<<<<{<<<<<<2!] ",
-" 3(22~::::::::::::::~::::::::~::~:::::::::::::~::::~:::::~:~::::::~:::::::~:::::~<<<<<<<<<<<<<<<<. ",
-" (()<~~::~::~::~::~:::::~:~:::::::::~::~:~::::::::::::~:::::~:~::::::~::~:::~:::::<<<<<<<{<<{<<<1]. ",
-" 3|:<~::::::::::::::~:~::::~::~:~::::::::::~:~:~::~:::::~:::::::~::::::::::::::::::2<<<<<<<<<<<<)]. ",
-" 3(~<~:~::~::~::~:::::::::::::::::~::~:::::::::::::::~::::::::~:::~:::~:::~:::~:~:::2<<<<<<<<<<<)@. ",
-" 33~<~:::::::::~::::::::::::~::::::::::~:~:~:~:::~:::::~::~::::::::~::::~::~::::::::~1<<<<<{<<{2)_. ",
-" (3)<~:::~::~::::~:~:~:~:~::::::~::~:~::::::::~:::::~:::::::~:~:~::::::::::::::::~::::2<<<<<<<<<1|. ",
-" (-1<~:~::::::::::::::::::~::~:::::::::~::::::::~:::::~::~:::::::~::~::::~:~:~:~:::~:::1<<<<<<<<1(. ",
-" (!2<~:::~::~:~::~:::~:::::::::::~:::~::::::~::::::~:::::::~::::::::::~::::::::::~:::~::2<<<<<<<1(] ",
-" ({2<~::::::::::::~:::~:~::~:~:~::::::::~:::::~::~:::~:::::::~:~::~::::::::~:::::::::::::2<<<<<<13. ",
-" ({2<):~::~:::~::::::::::::::::::~:::::::~:~:::::::::::~::~:::::::::~:~:~:::::~:::~:::~:::2<{<<<2!. ",
-" 3(22<)::::::~:::::::~::::~::::::::~:~:~::::::~:::::~:::::::~::::~::::::::~::~::~::::~::::::2<<<<2{] ",
-" (|2<<1:::~::::::~:~::::~:::~:~::::::::::::~:::~:~:::~::~::::::~::::::::::::::::::~::::~::~::2<<<1{. ",
-" 3|)<<1:~:::~::::::::::::::::::~:~::::::::::::::::::::::::~:~::::~:~:~::~::~::~::::::::::::::~2<<21. ",
-" (|)<<2::::::~:~:::~::~:~::::::::::~:~:~:~::~::::~:::::~:::::::~::::::::::::::::::::~::~::~:::~<<12]. ",
-" (|)<<2::~:::::::::::::::~:~:~::::::::::::~::::~:::~:~:::~:::::::~::~:~::~::~::~:~:::::::::::::~2)2]. ",
-" (|~<<<::~::~:::~:::~:::::::::::~::::::~::::~::::::::::::::~:~::::::::::::::::::::::~::~:::~::::::~.] ",
-" (|:<<<:::::::~:::~::::~::::::::::~:~:::~::::::::~::::~:::::::~:::~:~::~:~:::~::~::::::::~:::~::~::.. ",
-" ||:<<<):::~::::::::::::::~:~:~:~:::::::::::~:~::::~:::~::~:::::~:::::::::~::::::::~::~:::::::::::~]. ",
-" (|:2<<1::~::~:~::~:~:::::::::::::~:::::~:~:::::::::::::::::~:::::::~:::::::~::~::::::::~::~::~:::~]. ",
-" ||:<<<2::::::::::::::~:~:::~:::~::::~::::::::~:~::~::~::~::::~::~::::~::~::::::::~::~:::::::::::::.. ",
-" ||:2<<2:~::::~::::::::::~::::::::~:::::~::~:::::::::::::::~::::::~::::::::~::~::::::::~::~::~::~::]. ",
-" ||:2<<2~::~::::~:~:~:~:::::::::::::::~::::::::~::~::~::~:::::~::::::~::~::::::::~::~:::::::::::::)]. ",
-" |_)1<<{~::::~:::::::::::~:~:~::::~:~::::~::::::::::::::::~:::::~::~::::::~::~::::::::~::~::~::~::2.. ",
-" ||11<2<1:~:::~:::~::::~::::::::~::::::::::~::~::~::~::~:::::~:::::::::~::::::::~::~::::::::::::::2]. ",
-" (_<)<<<<:::::::~:::~::::::~:~:::::::~:~:::::::::::::::::~:::::~::::~::::~::~::::::::~::~::~::~:::{. ",
-" |_{)<<<<~~::~::::::::::::::::::~:~:::::::~::~::~::~::~:::::~::::~:::::::::::::~::~::::::::::::~::-. ",
-" _!~<<{<1:::::~::~::~:~:~:::~:::::~::~:~:::::::::::::::~:::::~::::~::~:~::~::::::::~::~::~:::::::(. ",
-" _3:<<<<<~:~:::::::::::::::::::::::::::::::~::~::~::~:::::~::::~:::::::::::::~::~::::::::::~:::~:|. ",
-" _|:2<<<<~:::~:~::~:::::~:~:::~:~::~:::~::::::::::::::~::::::::::~::~:::~::~::::::~::~:::::::~::~@. ",
-" 44:1<<<<<::::::::::~:~:::::~:::::::::::::~::~::~::~:::::~:~::~::::::~:::::::::~:::::::~::~:::::~.. ",
-" 442)<<<<<):::~:~::::::::::::::::~:~:~:::::::::::::::~::::::::::~::::::~::::~::::~::~:::::::::::{. ",
-" @!~<<<<<2~:::::~::~::::~::~:~:::::::~::~::~::~::~:::~:::~::~:::~:::::::~::::::::::::~::~::~:::(. ",
-" 4(:<<<<<<~:::::::::~:::::::::::::~::::::::::::::::::::~::::::::::~:~:::::~::~:~:::::::::::::~:_. ",
-" @4~1<{<<<2~:~::~:::::~:~:::::~::::::~::~::~::~::~:::::::~::~::::::::::~:::::::::~::~::~::~:::)]. ",
-" @@<~<2<<<<)::::::~::::::~::~::::::::::::::::::::::~:~::::::::~:~::~:::::~::~:::::::::::::::::-. ",
-" @(:<<<<<<<~::~::::~::::::::::~:~:~:::~::~::~::~::::::::::~::::::::::~::::::~::~::~::~::~::~:|. ",
-" @4:2<<{<<<2::::~:::::~::~:::::::::::::::::::::::~:::~:~::::~:::~::~:::~::::::::::::::::::::~]. ",
-" ]@{)<2<<<<<)~::::::~:::::::~:~::~:~::~:~::~::~:::~::::::::::~::::::::::~:::::~::~::~::~::~:-. ",
-" ](:<<<<<<<<~::~:~::::~::~:::::::::::::::::::::::::~:::~:~::::~::::~:::::~:~:::::::::::::::4. ",
-" ]])){<2{<<<2~:::::~::::::::::~:::~::::~::~::~::::::~:::::::::::~::::::::::::::~::~::~::~:<.. ",
-" @]3:<<<<<<<<<:::::::::~:::::::~::::~::::::::::~:~::::~:::~::~::::~::~:~::::~:::::::::::::|. ",
-" ]@:2<<2{<<<<<~:::~:~::::~:~:::~::::::::~::~::::::::::::::::::::::::::::~:::::::~::~::~:1]. ",
-" @]3:<{2<<<<<<<~:::::::~::::::::::~::~:::::::~:::~::~::~::~::~:~::~:::::::~::~:::::::::~(. ",
-" ]@~1<<<2{<<<<2~:::~:::::::~::~:::::::~::~:::::::::::::::::::::::::~::~::::::::~::~:::1.. ",
-" @]3:<<<<<<<<{2<1:::~::~::::::::~::::::::::~::~::~::~::~::~::::~::::::::~::~::::::::~:|. ",
-" ]]11<<<<<<<<<<<1:::::::~:~::::::~::~::~:::::::::::::::::::~:::::~::~::::::::~::~:::<.. ",
-" ](~2<{2<<<<<<<<<~:~:::::~::~:::::::::::~::~::~::~::~::~::::~::::::::~::~::::::::::_. ",
-" ]]{~<<<<<<<<<<{<<1~:::::::::::~::~::~:::::::::::::::::::::::::~::~::::::~::~::~::-.. ",
-" ]4~1<<{<<<<<<<<<<<1~::~:~::::::::::::~::~::~::~::~::~::~:~::::::::~::::::::::::2]. ",
-" ]](:2<<<{<<<<<<<<<<<1~:::~::~::~::~:::::::::::::::::::::::::~::~:::::~:::~::~:~|. ",
-" ]]{~2<<<<<<<<<<<<<<<<2)::::::::::::~::~::~::~::~::~::~:::~::::::~:::::~::::::3.. ",
-" ]]1~<<<<<<<<<<<<<<<<<<<2)~::~::~:::::::::::::::::::::~::::::~:::::~::::~:::<]. ",
-" ]4~)<{<<<<<<<<<<<<<<<<<<<<1~~:::~::~::~::~::~::~::::::::~::::~::::::::::~)@. ",
-" ]]|:1<<<<{<{<<<<<<<<<<<<<<<<<221)1~~~:::::::::::~::::~::::~::::~::~:::~::4. ",
-" ]](:1<<<<<<<{<{<<<<<<<<<<<<<<<<<<2<<<<221~~::::::~:::::::::::::::::~::~|.. ",
-" ]]3:1<<<<<<<<<<{<<<<<<<<<<<<<<<<<<<<<<<<2<1)::::::~:~::~:~::~::~::::~3.. ",
-" ]]3:)<<<<<<<<<<<<{<<<<<{<<<<<<<<<<<<<<<<<<<21:~::::::::::::::::::::3.. ",
-" ]]3:~2<<<<<<<<<<<<{<<<2{<<<<<<<<<<<<<<<<<<<<1:::::~:::~::~::~:~::(.. ",
-" ]](:~1<<<<<<<<<<<<<<<<<<<{<<{<<{<<<<<<<<<<<<<):~:::~::::::::::~(.. ",
-" .]|~:)<<<<<<<<<<<{<<<<<<<<<<<<<<<<<<<<<<<{<<<~:::::::~::~:::~|.. ",
-" ].42:~2<<<<<<<<<<<<<<<<<<<<<<<<{<<{<<<<<<<<<<~:::::::::::~14.. ",
-" ]]@!::~2{<<<<<<<<<{<<<<<<<<<<<<<<<<<<<<<<<<<2::~:~::~:::{]. ",
-" .]()::)2<{<<<<<<<<<<{<<<<{<<<<<<<{<<<<<<<<<~::::::::)3.. ",
-" ..@{:::)2<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<)::::~::{4.. ",
-" ..|2:::~1<<<<<{<<<<<<<<<<<{<<<<<<<{<<<<<):~:::)(.. ",
-" ].](1~::~12<<<<<<<<<<<<<<<<<<{<<<<<<<<<~:::~3].. ",
-" ..](2::::~)1<<<{<<<{<<<<<<<<<<<<<{<<1::)3@.. ",
-" ...|{~:::~:))2<<<<<<<<<<<<<<<<<<<1:2(].. ",
-" ...@({:::::::~)12<<<{<<<<{<<1)134... ",
-" ....]|3<~~:::::::::~~)~~1!(4.... ",
-" .....]@|((-!{{{!33|_]..... ",
-" .................. ",
-" ",
-" ",
-" "};
diff --git a/perl-install/pixmaps/mouse_3b.xpm b/perl-install/pixmaps/mouse_3b.xpm
deleted file mode 100644
index 4c8a3bd9a..000000000
--- a/perl-install/pixmaps/mouse_3b.xpm
+++ /dev/null
@@ -1,386 +0,0 @@
-/* XPM */
-static char * mouse_3b_xpm[] = {
-"210 350 33 1",
-" c None",
-". c #0A1630",
-"+ c #FE9A02",
-"@ c #253359",
-"# c #C99121",
-"$ c #F3AE18",
-"% c #D6A02C",
-"& c #96762E",
-"* c #3E4862",
-"= c #B68626",
-"- c #FDB820",
-"; c #FE9E02",
-"> c #E6AA32",
-", c #A67E2A",
-"' c #F2B22A",
-") c #7B84A1",
-"! c #7C673B",
-"~ c #5C6888",
-"{ c #B79346",
-"] c #0E1A3A",
-"^ c #F2B22E",
-"/ c #BABEDA",
-"( c #848CAA",
-"_ c #4A5778",
-": c #FEA206",
-"< c #A7A9C8",
-"[ c #757C94",
-"} c #9A9ABE",
-"| c #9FA1C0",
-"1 c #11244D",
-"2 c #AFB0CD",
-"3 c #697392",
-"4 c #FEB212",
-" ~_3}}}]]. ",
-" ~_)}}}].. ",
-" ~_)}}3]. ",
-" __(}}3]. ",
-" ~~*|}}3]] ",
-" ~__}}}_]. ",
-" ~~*|}}_]. ",
-" __~}}}*]. ",
-" ~__|}}@]. ",
-" ~~_}}}*]. ",
-" ~_~}}(@]. ",
-" __3}}}@]. ",
-" __3}}}]]. ",
-" __~}}}1]. ",
-" __3}}(]]. ",
-" __~}}}1]] ",
-" __3}}(]]. ",
-" ~_[}}}1.] ",
-" __)}}(1.. ",
-" __)}}}]]] ",
-" _*)}}}].. ",
-" _*)}}}1]] ",
-" _*)}}(]]. ",
-" _*~}}}1.] ",
-" __~}}(1.. ",
-" __3}}}]]] ",
-" _*~}}}]]] ",
-" __~}}}@]. ",
-" **3}}}@]] ",
-" **_}}}*]. ",
-" **_}}}@]] ",
-" ___}}}*1] ",
-" ~_*}}}_1] ",
-" )3*}}}_111 ",
-" (3*}}})@1@@ ",
-" |(~[}}}}}*@@@ ",
-" }(~)}}}}}}}_*@@ ",
-" [)~)|}}}}}}}}_@11 ",
-" ~_~|}}}}}}}}}}~]1 ",
-" __*}}}}}}}}}}}}1]] ",
-" ***}}}}}}}(}}}}@1] ",
-" _**}}}}}}}}}}}}*]] ",
-" ***}}}(}}}}}}}}_1] ",
-" **[}}}}}}}}}}}[]] ",
-" **)}}}}}}}}}}}(]]] ",
-" _*)}}}}}}}}}}}}1]] ",
-" _*3}}}(}}}}}}}}@1] ",
-" **~}}}}}}(}}}}}_]] ",
-" __~}}}}}}}}}}}}~]] ",
-" 3_~}}}}}}}}}}}}31] ",
-" )~_[3____**__~~~111 ",
-" <)~@111111111111111*_[) ",
-" 2<<||(3*@11111@**11111@@*_3[)))) ",
-" 2<<||()3[[)(}///////////2}}[33~~333[[[ ",
-" 2<<}(3)(</////////////////2//////<([~~~3333 ",
-" 2<<}([(|///////2<<|||}}(}}}}}}}}|<22////|)__~~33 ",
-" 22|()~*)///22||}}}}}}}}}}}}(}}}}}}}}}}|2///)@@*__~~~ ",
-" 22|([[%_1@//}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}<//@11!!@*__~~ ",
-" 22|(3&'--#11[/|}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}2}11@4->!@*___~ ",
-" 22([)>-444-@1_/2}}}}}}}}}}}}}}}}}}(}}}}}}}}}}}}_11!4444%!@*____ ",
-" 22}[[%--4-444!11//}}(}}}}(}}}}}}}}}}}}}(}}}}}}}}}@11#44-444#*@*____ ",
-" 2|(3{--444444$,11(/2}}}}}}}}}}}}}}}}}}}}|(}}}}}}}(111444444-4-=@@**_* ",
-" 22}[['-444$::444%11[/2}}}}}}}}(}}(}}}}}}}}}}}}(}}}}[11*444444444-$!@@**_ ",
-" 2|(3{-444:++++444411_//|}}(}}}}}}}}}(}}}}}}}}}}}}}}}311!444444444444{@@**** ",
-" 2|)[$-4$+++++++4444*1*//2}}}}}}}}}}}}}}}}}}}}}}}}}}}<*11=4444-44-4444-$_@@*** ",
-" 22([,-44;+++++++44444!11///}}}}}}}}}}}}}}}}(}}}}}}(}}}/@11%4-4444444444444&@@*@* ",
-" 2<(3{-4;++++++++;44444!11<2/2}}}}}}}}}}}}(}}}}}}(}}}}}}/1114444-444444-444-4{@@@*@ ",
-" 2|(3>-$+++++++++;4-4444=11}///}(}}}}}}}}}}}}}}}}}}}}}}}<}11@44444-44-444444444%*@@*@@ ",
-" 2|)3'4;++++++++++$444-44#11[///<}}}}(}}(}}}}}}}}}}}}}}}}2}11*44-4444444444444444$*@@*@@ ",
-" <})&'4;++++++++++$4444444>113///2}}}}}}}}}}}}}}}}}}}}}}}}/311!44444-44-44-444444444_@@@@@ ",
-" <|[[-$+++++++++++:44444444411~2///}}}}}}}}}}}}(}}}}}}}(}}}/~11!444-444444444444444444!1@*@@ ",
-" <}[&-$+++++++++++:444-444-44@1*////2}}}}}}}(}}}}}(}}}}}}}}|/_11&-444444-44-44-44-44444'!1@@@1 ",
-" <}3[-:++++++++++++444444-4444*1*//2//}}}(}}}}}}}}}}}}(}}}}}</*11#4444-4444444444444-4444-!1@@@1 ",
-" <}[&-:+++++++++++:4444-4444444*1@////2<}}}}}}}}}}}}}}}}}}}}}</*11#4-4444-44-44-44-4444444$'!1@@11 ",
-" <|[[-$++++++++++++4444444444444!11//////}}}}}}}(}}}}}}}}}}}}}2/@11$444-4444444444444-44-44444_1@@11 ",
-" <})&-:++++++++++++44-444-44444-4&1]////2/|}}}}}}}}}}}}}}}}}}}}2/111444444444-44-44-444444444444!1@@11 ",
-" <|)3'$++++++++++++$4444-444-44444!11/2////2}}}(}}}}}}}}}}}}}}}}2/11144-444-4444444444-44444444444*1@@1 ",
-" |(~'4++++++++++++4444444444444444=11}//////|}}}}}}}}(}}(}}(}}}}//11@444-4444-44-44-4444-444444444$*1@11 ",
-" |(3%4++++++++++++$4444-444-44-4444#11}2/////2}}}}}(}}}}}}}}}}}}}/|11*-4444-444444444444444-44-44444$@1@11 ",
-" <(~%-++++++++++++444-444-444444444-=11}///2///}}}}}}}}}}}}}}}}}}}/}11*444444444-44-44-44-444444444444#@1111 ",
-" |}[=-;+++++++++++:444444444-4444444-#11(/////2/2}}}}}}}}}}}}}}}}}}2}11*44-4444-444444444444-4444-444444,1@111 ",
-" |}[[-:+++++++++++$4444-44-44444-44444>11(/2//////}}}}}}}}}}(}}}}}}|/}11_4444-444444-44-44-4444-444444444-!1111 ",
-" |)3'4+++++++++++:4444444444-44444-4444113///2///2<}}}}(}}}}}}}(}}}|/}11&444444-44-444444444-4444444444444-*1@]1 ",
-" |(3%-+++++++++++$444-4444-44444-444444^11~////////2}}}}}}}}}}}}}}}}}/(1]&444-444444444-44-444444-4444-44444:@1111 ",
-" |}~{4:++++++++++:444444-4444-44444444444113////2////<}}}}}}}}}}}}}}}|/311!44444-44-44-444444-44-444-4444-4444=1@111 ",
-" ||[[-:++++++++++44444-44444444-44-4444-4^11~/2///////2}}}}}}}(}}}}}}}|2311&44-444444444444-44444444444444444-44!1111 ",
-" })~44++++++++++;4444444-44-44444444-44444113//////////<}}(}}}}}}}(}}}|/311!-444-44-44-44-444-44-44-44-444444444-*1111 ",
-" |(~%-;+++++++++$44-44-444444-4444-44444444*1~///2/2////2}}}}}}}}}}}}}}|/311&444444444444444444444444444-444444444%111]1 ",
-" |}[,-:+++++++++;-4444444-444444-44444444444*1_/2//////2//<}}}}}}}}}}}}}|/~11=444-44-44-44-44-444-44-444444444$44444&1111 ",
-" })~'4+++++++++$444444-444-44-4444-44-444-44*1*/////2/////2}}}}(}}}}}}}}|/311#-444444444444444-444444-444-44444:44444*11]1 ",
-" }(~%';++++++++;4444-44444444444-444444444444*1*////////////<}}}}}}}}}}}}|/3]1#44-44-44-44-444444-444444-44444444;4444%11111 ",
-" }}[)4$++++++++:44444444-44-44-44444-44-444444*1*/2/////2////2}}}}}(}}}}}}|2311#444444444444-44-444-44-4444-444444::4444&111] ",
-" })~44++++++++;-444-44444444444444-44444444444*1*///2/////////<}}}}}}}(}}}|/311#444-444-444444444444444444444444444;$444-*1111 ",
-" |(3{-:+++++++:444444-44-444-444-44444-44-44444*1*///////2/2///2}}}}}}}}}}}}/311#-444-4444-44444-444-444-444-4444444:+4444#111]1 ",
-" }[344+++++++;4444-4444444-444-444444444444-444*1*/2//2/////////<}}}}}}}}}}}2_11#44444444444-44444-444-444-444-4444-4;;444-!111] ",
-" })~>-;++++++:4444444444-4444444444-44-44-444444*1*/////////2////2}}}(}}}}}}}/*11#4-444-44-44444-4444444444444444-44444+;444>@1111 ",
-" }(3,-4++++++;-444-444-4444-44-444-44444444444444*1*/2////////2////2}}}}}}}}}}/*11#444-444444-4444444-444-444-4444444444;+:444&111] ",
-" })3'4++++++:44-444-4444-444444-444444-44-44-4444*1*////2/2/////////|}}}}}}}}}/*11#4444444-4444-44-444-444-4444-44-44444:++444-@1111 ",
-" }(3{44++++++444444444-4444-444444-44-444444444444*1*//2////////2///2/}}(}}}}}}/*11#44-44-444-444444444444444-444444444444+++444#111] ",
-" ([3-4+++++;4444-44-44444444-44-4444444-44-44-4444*1*////////2///2////<}}}}}(}}/*11#444444444444-44-444-44-44444-44-44444-:++;444*1111 ",
-" }(~%4$+++++4444444444-44-44444444-4444444444444-44*1*///2/2//////////2/}}}}}}}|/*11#444-444-444444444-44444444-444444-44444+++$44;111]1 ",
-" ([344+++++44444444-44444444444-4444-44-44-44-44444*1*2////////////2////2}}}}}}}/*11#-444-444-44-44-4444-444-444444-44444444++++4-$!111] ",
-" })~$4$++++4444-44-444-44-44-44444444444444444444444*1_2///2//2/2/////////<}}}}}</~11#444444444444444444444-444-44-444-444444:++++44%1111] ",
-" (3&44++++$44444444444444444444-44-44-444-44-44-4444*1*/2////////////2/////|}}}}2/311#-444-4444-44-44-44-44444444444444-4444-:++++:44!11]1 ",
-" })~>-:+++:4444-4444-444-44-44-444444444-444444444-44*1*///2//2///2/////2////<}}|//~11#444444-4444444444444-44-444-44-4444-4444+++++44$@11]1 ",
-" ([[-4;++$44-4444-444-444444444444-44-444444-44-4444411~///////2///2///////2//22///311#-44-4444-44-44-44-444444-444444444444444+++++;44!111] ",
-" })~>44++;44444-44444444-44-4444-4444444-44-4444444444113/2//2////////2///2///////2/311,44444-4444444444444-444444-44-44-4444444;+++++:4$@111] ",
-" ([&-4++:444444444-44-4444444-4444-44-4444444-44-444--113///////2//////2////2///////311!44-4444444-44-44-444-44-4444444444444444:++++++44&11]1 ",
-" })~>-4+;444-4444-444444-44-4444-4444444-4444444444-4441132////////2/2/////////2////2311&4444-44-44444444444444444-44-44-44-44444:++++++;4>@11]] ",
-" ([&-4:+444444-444444-4444444-4444444-4444-44-44-444444113///2//2////////2///////2///}11!4444444444-44-444-4444-444444444444-4444:+++++++:4!1111 ",
-" ()~>'4+$444-4444-44-444-4444444-44-444444444444444444-#11[/2/////2////2////2/////////(11&444-44-44444444-444-4444-44-44-444444444:++++++++4%111] ",
-" (3[-4::444444-44444444444-44-444444444-44-444-44-44444#11}/////////2////////2/2///2//}11!444444444-44-444444444444444444-444-444-:+++++++;:4!111] ",
-" ((~#-4:444-44444-4444-444444444-44-44-444444-444444-444#11(///2/////////2////////2///2}11*4444-444444444-44-44-44-44-444444-444-44:+++++++++4%1111 ",
-" ([3-4$44444-444444-444-44-44-444444444444-444444-444444{11}////2/2///2///2/////////////11*4-444-44-44-444444444444444-44-44444444-++++++++++:4_11]] ",
-" ((~=-4:4444444-4444444444444444-44-44-44-444-44-44444444!11}/2//////2///////2/2/////2///11*4444444444444-44-44-44-444444444-44-4444+++++++++++4#111] ",
-" ([~-4444-444444-444-44-44-44-444444444444444444444-4444-!11///////////2//////////2////2/1114-44-44-44-4444444444444-4444-444444444$+++++++++++:4*111] ",
-" (3=44:4444-444444-444444444444-44-44-44-44-44444-444-444!11////2////////2//////2////////*11444444444444-44-44-4444444-4444-4444444:+++++++++++:4,111] ",
-" ()_{44444444-44-444444-44-44-44444444444444444-444444444-*11/2/////2///////2/2//////2///2*11444-44-44-4444444444-44-4444444444-4444+++++++++++++4#11]1 ",
-" (3*&4444-44444444-44-444444444-44-44-44-44-44444-44-44444*1*/////2///2////////////2///2//*11#4444444444-44-44-4444444-44-444-444444+++++++++++++4,1111] ",
-" ()~@!44444-4444-444444444-44-44444444444444444-44444444444@1*//2/////////2//////2/////////311#4444-44-4444444444-44-444444-4444-444++++++++++++++$!111]1 ",
-" ([_1@-444444-4444-4444-4444444-44-44-44-44-44444-4444-444411_///////2//////2/2///////2////311,44-444444-44-4444444444-4444444444444++++++++++++++:*1111]] ",
-" )~_@1%-44-444444444-4444-44-44444444444444444-4444-444444$11~//2/2/////2/////////2/////2//(11&444444-4444444-44-44-4444-444-44-444+++++++++++++++%1111111 ",
-" ([_}11!44444-44-444444-4444444-44-44-44-44-444444444444-44#113////////2///2////2////2//////}11!4444-444-44-4444444444-4444-444444-:++++++++++++++$&111@)1] ",
-" )33/*]1%44444444-44-4444444-444444444444444-44-44-44-444-4=11(/////2////////2////////////2/<1]*4-44444444444-44-44-4444-4444-44444++++++++++++++;;@111[/11] ",
-" ()~</}11*44-44-4444444-44-4444-44-44-44-4444444444444444444!11}/2////////2///////2/////2/////11@444-44-444444444444444444444444-44+++++++++++++++4_]11@//_1] ",
-" )3~///*11&444444444-44444444444444444444-44-44-44-44-44444$!112//2////2///////2///2/2/////2//@11444444444-44-44-44-44-444-44-4444+++++++++++++++4=1111(//|11] ",
-" )~(///<@11%4444-44444-44-44-444-44-4444444444444444444-4444*11/////2//////2//////////////////*11>4444-44444444444444444-44444444;++++++++++++++4#@111~///2*]] ",
-" ))_/////(111%-44444-444444444-44444444-4444-44-44-44-44444-4@1*/////////2//////2///////2///2//~11#4-44444-44-44-44-44-444444-444++++++++++++++:4#@111@2/2//311 ",
-" )33//2///[11@=44-4444-44-444444-44-44444-444444444444444444411_2/2///2//////2////2//2/////////[11&444-44444444444444444-44-444$++++++++++++++$4%@]11*2/2}2/<1]] ",
-" )~}///2///~111&4444444444-44-44444444-4444444-44-44-44-4444#113///2//////2/////////////2///2//}11!444444-44-44-44-44-44444444;+++++++++++++:44&]111*2/2}}<//*1] ",
-" )[_/////////)111*>444-444444444-44-44444-44-4444444444444444,11(///////2/////2//2/////2///////2<11*44-44444444444444444-4444$++++++++++++++$4:_1111_2/|}}}|//)1] ",
-" )3[/////2//2/}@111&444-44-44-44444444-4444444-44-44-44-444-4!11}////2/////2////////2/////2//////@1@44444-44-44-44-44-444444:++++++++++++;444&@11113/2|}}}}}2/211] ",
-" ))_<//2///////22_111@,444444444-44-44444-44-4444444444444-44-*11//2////////////2////////////2////*11>444444444444444444-44;++++++++++++;444#@1]11@}22}}}}}}}<//*1] ",
-" )3~//////2///////(@111@,4-44-44444444-4444444444-44-44-444444@1*//////2//2//2////2//2//2/////2/2/~11=-44-444-444-44-444$:+++++++++++;4444,@1111@3/2|}}}}}}}}}//(1] ",
-" )3[////////2//////23@111@!%444-44-44444-44-44-44444444444444%]1_///2///2//////2//////////2///////[11&44444-444-444444$+++++++++++:$444%!@11111_</2|}}}}}}(}}}2//11] ",
-" )[_<///2/////////////23@1111*&>444444-44444444444-44-44-44444,11)2/////////2/////////2////////////|1]*44-44444444444;+++++++;;:444-4:,*111111_</2}}}}}}}}}}}}}<//_]] ",
-" )3~//2///2///2//2//////2)@11111*&%44444-44-44-44444444444-444!11<///2////2//2//2/2/////2///2//2////@1@4444-44-44$;+++++;::$44-444#&*111111@3//2|}}}}}}}}}}}}}}}//(1] ",
-" )~[///////2//////2//2/////|_11111]@!,%4444444444-44-44-44444$*1@//////2///////////2/////2///////2//*11%44444$:;+;:::$44444444%,!@1111111~(//2|}}}}}}}(}}}}}}}}}2//11] ",
-" ))~<////2//////2///////2//////(_@1111]1@*&=%4-444444444444444%11_//2/////////2///////2///////2//////311&444$:444444444444$#!_@]111111@_)2//<|}}}}}}}}}}}}}}}(}}}<//*1] ",
-" [3_//2//////2/////2/////2////////|3*11111111@*!&#>4-44-44-444,11(////2//2/2//////2////////2//////2//|1]*44444444444%#&!*@111]11111*~}////2}}}}}}}}(}}}}}}}}}}}}}}//)1] ",
-" )3)//////////////////2////2//////////}3_11111111111@*!!,##$44*1@/2///////////2////2///2///////2//////@11%44##,!!**111111111111*3(2////2|}}}}}}}}}}}}}}}}}}}}}}}}}2/21]] ",
-" [_|///2//2////2///2//////////2/2/2//2////2(3**111111111111111111_~3~~(}(}(}(|//2///2//////|(}(}(}(3~3*11111111111111111]@*3)|//////2|}}}}}}}}}}}}}}}}}}(}}}}}}}}}<//*1] ",
-" )3_/////////2////////////2/////////////2//////2/}}3~**111111111111111111111111111111111111111111111111111111111111@*_~)}2////////<||}}}}}}}}}}}}}}}}(}}}}}}}}}(}}}}/2[1] ",
-" )33////2///////2///2//2////2////////////////////////////(}(33_***111111111111111111111111111111111111111***~~3}}<2///////////2<|}}}}}}}}}}}}}(}}}}}}}}}}}}(}}}}}}}}2/<]1] ",
-" [~}//2///2///////2///////////2/2//2/2///2//2////<<22/2///////////////2}}}}}}}3333333~3~3~333(}}}(}}|//////////2///////2/22<|}}}}}}}}}}}}}}}}}}}(}}}}}}}}}}}}}}}}}}}2//@]] ",
-" )3_////////2/2//////2////2////////////2///////2////2|}|<<22/2///////////2/2/2///////////////////////////////////2///22<<|}}}}}}}}}}}}}}}(}}}}}}}}}}}}}}}}}}}}}}}}}}}}//~1] ",
-" )33/////2//////2//////2////2/////2///////2//////2////2<}}}}}}||<<22///////////2/2//2//////2///2///2//2////2//2222||}}}}}}}}}}}}}}}}}}}}}}}(}}}}}}}}(}}}(}}}}(}}}}}}}}2/(1] ",
-" 3~)//2////////////////////////2///////2////2///////2////<}}}}}}}}}}(}(|||<<<<222222////2///////222222<<<|||}}|}}}}}}}}}}}}}}}}}}}}}(}}}}}}}}}}}}}}}}}}}}}}}}}}}}(}}}}2//@1] ",
-" )[_2///////2//2///2//2///2///2/////2//////////2///2////2///2<}}}}}}}}}}}}}}}}}|}}}}}}}}}}}}}(}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}(}}}}}}}}}}}}}(}}}}}}}}}}}}}}}}}}}}}}}|//*]] ",
-" [3~////2///////2//////2///2/////2////////2//////////2////2///2<}}}}}}}}}}}}}}}}}}}}}(}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}(}}}}}}}}}}}}}}}}}}(}}(}}}}}}(}}}}}}}}}}}}//[1] ",
-" [~)//2///2/////////2////////////////2/2////2///2///////////2////<|}}}}}}}}}}}(}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}(}}}}(}}}}}}}}}}}(}}}}}}}}}}}(}}}}2/|1]] ",
-" [~(////////2////2/////2///2//2///2//////////2////////2////////////2|}}}}(}}}}}}}}}}}}}}(}}}}(}}}}}}}}}}}}}}}}}}}}(}}}(}}(}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}(}}}}}}}}}}<//@1] ",
-" [3_/////2/////2/////////////////2///////2////////2//////2////////////2<}}}}}}}}}}(}}}}}}}}}}}}}}}}}}}(}}}}}(}}}(}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}(}}//_1] ",
-" [33//2////////////2////2///2//////2//2///2////2////2/////2//2/2/////////2}}}}}}}}}}}(}}}}}}}}}}}}(}}}}}}}}}}}}}}}}}}}}}}}}}}(}}}}(}}}}}}}}}(}}}}}}}}(}}}}(}}}}(}}}}}}}}}}2/(]] ",
-" 3~)//////2//2///////2////////2/////////////2/////////2//////////2/////////2|}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}(}}}}}}}}}}}}(}}}}}}}(}}}}}}}}}}}}}}}}}}}}}}}}}}2/21]] ",
-" [_<///2////////2////////2////////////2////////2/2////////2////////2/2/2//2//2|}}}}}}}(}}(}}}(}}}}}}}}}}}(}}}}}}}}}}}(}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}(}}}}}}}|//@1] ",
-" [3_///////2///2///2///2////2///2/2//2///2//////////2///2////2//2///////////////2|}}}}}}}}}}}}}}}(}}}(}}}}}}(}}}}}(}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}(}}}}}}}}(}}}}}}}}}}}}//~1] ",
-" 333////2////////////////////2////////////2//2///////2////////////2/////2/////////2<}}}}}}}}}}}}}}}}}}}}}}}}}}}(}}}}}}}}}}}}}}}}(}}}}(}}}}}}}}}}(}}}}}}}}}}(}}}}}}}}}}(}}}}}2/)]] ",
-" [~(//2/////2////2///2///2/////////2///2///////2//2///////2///2///////////2/2///////2<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}(}}}}}(}}}}}}}}}}}}(}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}</21]] ",
-" 3_|/////2////2///////2//////2//2//////////2///////////2//////////2//2///////2/////////<}(}}(}}}}}}}}}}}(}}}}}}}}}}}}}}}}}}}}}}}}(}}}}}}}}}}}}}}}}}}}}(}}}}}}}}}}}}}}}}}(}}}|//@1] ",
-" [3~///////////////2///////2//////////2///////2//2///2//////2///2////////2////////////////<}}}}}}(}}}}}}}}}(}}}}}}(}}}}}}}}}}}}}}}}}}}}(}}}}}(}}}}}}}}}}}}}}(}}}}(}}}}}}}}}}}}//~]] ",
-" [~3///2//2/2///2///////2/////2////2/////2///////////////2////2////2//2////////2/2//2/2/////<}}}}}}}}(}}}}}}}}}}}}}}}}}(}}}}}}}}}}}}}}}}}}}}}}}}}(}}}}}}}}}}}}(}}}}}}}}}}}}}}}2/)1] ",
-" 3~(//////////2/////2///////////2//////////2///2///2///2//////////////////2/2///////////2////2<}}}}}}}}}}}}}}}(}}}}}}}}}}}}}(}}}}}}(}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}(}}}}}}}(}</|1]] ",
-" 3_|2/2/2////////2///2////2/////////2/2/////2///2////////2//2/2/2//2///2/////2///2////////2/////|}}}}}}}}}}}}}}}}}}}}}}}}}}}}}(}}}}}}}}}}}(}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|//@]] ",
-" [3_///////2////2///////2////2/2///2/////2///////////2//////////////////////////////2//2/////////22|}}}}(}}}}}}}}}}}}}}}}(}}}}}}}}}}}}}(}}}}}}}(}}}}(}}}(}}}}}}}}}}}}}}}}}(}}}}}2/_1] ",
-" 33~/////////2////2//////////////////////////2////2/////////2////2///2//2/2////2/////////////2//////2}}}}}}}}}}}}}}}(}}}}}}}}}}}(}}}}}}}}}}}}}}}}}}}}}}}}}}}}}(}}}(}}}}}}}}}}}}}2/3]] ",
-" 3~)//2/2///////////2///2//2////2////2////2/////2/////2/2///////////////////2////2///2///2/2///2//////2|}}}}}}}}(}}}}}}}}}}}}}}}}}}}(}}}}}}}(}}}}}}}}}}}}}}}}}}}}}}}(}}}}}}}}}}}</}1] ",
-" 3_}//////2/2/2/2/////2//////2////2////2/////2//////2//////2//2///2//2////////////2/////////////////////<}}(}}}}}}}}}}}}}}(}}}}}}}}}}}}(}}}}}}}(}}}}(}}}}(}}}}}}}}}}}}}}}}}}}}}}|//1]] ",
-" [3_/////////////////2////2////////////////////////2///2//2///////////////2//2/2///////2//////2///2/////2//<}}}}}}}}}}(}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}(}}}}}}}}}}}}}}}}}}2/*]] ",
-" 3~~/2/2/2////////2///////////2//2/2//2/2//2////2//////////////2///2///2////////////2//////2/////////2//////2<(}}}}}}}}(}}}}}}}(}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}(}}}}}}(}}}}22~1] ",
-" 3~3///////2/2/2/////2/2//2/////////2////////2/////2///2///2///////////////2//2//2//////2//////2//2///////////2|}}}(}}}}}}}}(}}}}}}}}}}}}}(}}}}}}(}}}}(}}}}}}}}}}}(}}}}}}(}}}}}}}}</[]] ",
-" 3~(///////////////2////////2//2/////////2//////////////////////2///2///2////////////2//////2/////////2/2/2/////<}}}}}}}}}}}}}}}}}{}}}}}}}}}}}}}}}}}}}}}}(}}}}}}}}}}}}}}}}}}}}}}}}|/|1] ",
-" 3_|////2//////2//////2/////////2///2/2////2/2/2/2/2/2/2/2/2/2///////2////////2///2//////2/////2////2////////2////<}}}}}}}}{}}}}(}}}(}}}}}}}(}}}}}}}}}}}}}}}}}(}}}}}}}}}}}}}}}}}}}}//1]] ",
-" 33_//2/////2//////2/////2/2//2//////////2////////////////////////2//////2/2///////////2/////2///2/////////2/////2//2}}}}}}}}}}}}}}}}}}}}}}}}}(}}}}}(}}}}}}}}}}}}}}}}}(}}}}}}}(}}}}}2/*]] ",
-" 33~/////2////2/2/////////////////2///////////2////////////////2////////////2/2/2///2//////2//////2/////2/////2///////<}}}}}}}(}}}}}}}}}(}}}}}}}}}}}}}}}}}(}}}}}}}(}}}}}}(}}}}}}}}}}</~1] ",
-" 3~3//2//////////////2/2////2//2////2/2//2/2////2///////////2/////2/2/2//////////2//////2////2/////////////2//////2////2<(}}}}}}}}}(}}}}}}}}}}}}}}}}}(}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}</(]] ",
-" 3~(//////2//////2///////2///////////////////////2/2/2/2/2///////////////////////////2/////////2//2//2/////////2/////////2|}}}}}}}}}}}{}}}}}}}}}(}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}(}}}}}/}1] ",
-" ~_}///2////2//2////////////2//2/2/////////2/2///////////////2/2//////2/2//2//2///2/////2//////////////2////2/////2/2/2///2<}}}}}}}}}}}}}}}}}}}}}}}}}}(}}}}}(}}}}}}}}}(}}}}}}}}}}}}}}2/]]] ",
-" 33_//////////////2/2/2///////////////2/2//////////////////2/////////////////////2/////////2//2///2///////2//////////////////2|}}}}}}(}}(}}}}}}{}}}}}}}}}}}(}}}}}}(}}}}}}}(}}}}}}}}}}}2/*]] ",
-" 3~~/2/2//2//2//////////2/2///////2/2/////////2//2/2/2//2///////2/2/2/////2/2/////////2////////2/////2////////2/2///////2//////|}}}}}}}}}}}}(}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}(}}}}}</_1] ",
-" 3~3//22///////2////////////2/2//////////2//////////////////2////////2////////2//2/2////2///2////2////2//2/////////2/2////2/2///2|}}}}}}}}}}}}}}(}}}}}}}(}}}}}}}}}}}(}}}}}}}}}}}}}}}}}|/3]] ",
-" ~~)//<///2///////2//2/////////////////2///2/////////2///2//////////////2////////////////2////////2////////2/////////////////2///2<}}}}}}}}}}}}}}}(}}}}}}}}}}(}}}}}}}}}(}}}}}}}}}}}}}}}/(1] ",
-" 3_|//<//////2//////////2/2////2/2/2/////////2/2/////////////2/2/2///2//////2//2//2/2/2////////2///////2/////2/2///////2///////////2|}}}(}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}(}}}}}}(}}}}}/21]] ",
-" ~_<//|////////2//2//2///////2////////////////////2////2/2/2////////////2////////////////2//2///////2///////////2/2/2////2////2/////2<}}}}(}}}}}}}{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}2/1]] ",
-" 33_//2</2/2////////////////////////2/2/2/2/2////////2/////////////2///////2//2///////////////////2//////2/2////////////////2////2/////2|}}}}}}}}}}}}(}}}(}}}}}(}}}}}}}}(}}}}}}}}}}}}}}}</*]] ",
-" ~~~//<2/////2//2//////2///2////2//////////////2/2///////////2//2/////2//////////2/2/2////2////2//////2/////2//////////2////////////2////<}}(}}}(}}}}}}}}}(}}}}}}}}(}}}}}}}}}(}}}}}}}}}}|/~]] ",
-" 3~)//|2//////////2/2////////2////2///////////////2///2////2///////2///2/2/////////////2////2////2/2///////////2//2/2////2////2///2///2///2}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}(}}(}}|/3]] ",
-" ~~(//}///2////////////2/2////////////2/2/2/2///////2///2////2//2///////////2/2/////////////////////////2///2//////////////2///2///////2////|}}}}}}}}}}}}}}}(}}}}}}}}}}}}}}}}}}}}}}}}}}}}/(1] ",
-" ~_|/2}/////2/2/2//////////2///2///2/////////2/////////////////////////////////2/2/2////2////2/2///2//////////////////2///////////////////2//<}}}(}}}}}}}}}}}}}}}}}}}}(}}(}}}}}}}}}}}}}}}221] ",
-" ~_</<|/////////////2//////////////////////////2/2////2//2/2//2//2/2/2///2///////////2////2/////2////2//2///2//2/2//2///2//2////2/2///2///2//22}}}}(}}}}}}}}}}}}(}}}}}}}}}}}}(}}}}}}}}}}}22]]] ",
-" 33_//||/2////////2////2/2///2///2///2//////////////2//////////////////2///2////////2//////////////////////2//////////////////2//////////2///////|}}}}}}}}}}}(}}}}}}}}}}}}}}}}}}}}}}}}(}}}2/*]] ",
-" ~~~//|<///2///////////////////2////////2/2//2///////2///2///2//2/////////////2//2//////2////2////2//2///////////2/////2////////////2/////////2///<}}}}{(}}}}}}}}}}}}}}}}}}}}}}}}(}}}}}}}}}/_]] ",
-" 3~3//}<////2/2/2//2//////2//////2/2///////////2///////2//////////2////////2////////2/////2////2///////2/////2/////2/////2/2////2/2///////2/////2//2}}}}}}}}}}}}}(}}}}(}}(}}}}}}}}}}}}}}}}}/~]] ",
-" ~~)/2}2/////////////2//2///2/////////2////2/////2/2///////2///2////2/2/2/////2///////2/////////////2///2/2/////////2////////2//////2//2/////////2//2}}}}}}(}}}}}}}}}}}}}}}}(}}}}}}}}}}}}}}/[]] ",
-" ~_(/<}2/////////2//////////////////////2////2///////2///2////2///2/////////////2/2/////2///2///2/2///////////2//2////2////////////////////2//////////|}}}}}}}}(}}}}}}}}}}}}}}}}}}(}}}}(}}}2(1] ",
-" ~_|/|}/2/2/2////////2///////2/2//2/2/////////2//2////////2//////////////2/2/////////2///2///2//////2//////2/////////////2////2/2//2//2/2/////2////2//2<}}}}}}}}}(}}}}}}}}}}}(}}}}}}}}}}}}}22]] ",
-" ~3_//}}///////2///2////2/2////////////2//2//////////2//////////2//2//2////////2////////////////////////2//////2////2///////2//////////////2/////2///////2}}}}}}}}}}}}}}(}}}}}}}}}}}}}}}}}}}</1]] ",
-" ~~_//}(///////2////////////2///2//////////2//2//2////2/2////2//////////2///2/////2/2/2///2///2///2//2//////2////2/////2//2//////////2////////2////////2//2}}}}}}}}}}}}}}}}}}}}}(}}}}}}}}}}}<2*]] ",
-" ~~~/2}|/2//2////2//2/2///////////2/2///2//////////////////2////2/2//2//////////////////////////2/////2//2///////////2////////2/2/2////2//2//////2//2//////2|}}}}}}(}}}}}}}}}}}}}}}}(}}}}}}}|/*]] ",
-" ~~~/2}|/////////////////2///2///////2//////2//2///2////2////////////////////2/2///////2///2//////2//////////2////2///////2////////////////2///2////////2///2|}}}}}}}}}}}}}(}}}}}}}}}}(}}}}}|/~]] ",
-" ~~)/<}|//2//2//2////2//2///2///2///////2//2/////2///////////2////2//2/2/2//////2/2//2///////2//////2//2///2///2///////2////2///////2///2////////////2////////<}}}}}}}}}(}}}}}}}}}}}}}}}}}}}}/~]] ",
-" ~_)/|}|//////////2//////////////2//2///////2//////2//2///2////2///////////2////////////2////////////////////////2//2///////////2////2//////2///2/2///////////2<}}}(}}}}}}}}(}}(}}}}}}}(}}}}}/(]] ",
-" ~_|/|}<//2//2//2///2///2/2//2////////2//2/////2////////2/////////2//2/////////////2//2///2///2/2///2//2/2//////////////2////2///2/////////////////////2//2/////2}}}}}}}}}}}}}}}}}}}}}}}}}(}}2(1] ",
-" ~_}/}}</////////////2/////////2//2////////////////2///////2//2/////////2//2//2////////////2/////2///////////2////2//2////2///////////2//2///2/////2/2///////////2}}}}}}}}}}}}}}(}}}}}}}}}}}}22]] ",
-" ~~_//(}<//2//2//2///////2//2//2/////2//2////2////2////2//////////2//2//////////2//////2//////////////2////2////2//////////////2////2//////2////2////////2//2/2////2}}}}}}}}}}}}}}}}}}}}}}}}}}</]]] ",
-" ~~*/2}}<//////////2//2//////////2////////////2//////////2////2///////2//2//2/////2/2/////////2////2////2////2/////2////2///2////2////2///////////////2/////////2////}}}}}(}}}}}}}}}}}}}}}}}}}<2@]] ",
-" ~~~/2}}<//2///2/////////2//////////2///2//2///////2///////2///////2//////////////////2/2//2////2////////2///////////2///2//////////////2////2///2//2////////////////2|}}}}}}}}(}}}(}}}}}}}}}}</*]] ",
-" ~~~/<}}<///////2////2/////2//2//////2//////////2/////2/////////2//////////////2///////////////////2/2////2//2//2/////////////2///2////////2///2//////2//2/2//2///2////|}}}}}}}}}}}}}}}}}(}}}}|2*]] ",
-" ~_3/|}}</2//2/////2//////2/////2////////2///2/////2////2//2//2/////2/2/2/2/2///2/2////2////2////////////////////2//2/////2/////2///2//2////////////////////////2/////2/|}}}}}}}}}}}}}}}}}}}}}|/~]] ",
-" ~~)/|}}</////////////2////2/////2////2////////2/////////////////2//////////////////2////2///2//2//////2///2/2/////////2////2//////////////////2//2/////////2//////2/////|}(}}}}(}}}}(}}}}}}}}}/~]] ",
-" ~_)/}}}<//2///2////2/////////2///////////2///////2//2////2////2/////2/////////////////2//////////2/2//////////2//2//2////////2////2////2/2//2//////2/2/2/////////////////|}}}}}}}}}}}}}}}(}}}}/[]] ",
-" ~_|/}}}<///////2//////2///////////2//2////2//2///////2////2//////////2//2//2/2//2////////////2/////////2////2///////////2///////2///2///////////////////////2//2///2//2///|}}}}}}}}}}}}}}}}}}}/(]] ",
-" ~_}/}}(<///2/////2///////2////2/////////////////2///////////2///2////////////////2/2//2//2/////2////2////2/////2//////2///2///////////////2///2/2///////2///////2//////////|}}}}(}}}}}}}}}}}}}/(1. ",
-" __|2}|}<////2//////2//////2////2//2///2///2///////2////2//////////2//2//2////2////////////2//////2//////////2///2//2/////////2///////2/2/////////2//2////2//2///////2///2///|}}}}}}(}}}}}(}}}}22]] ",
-" ~~_//}}}<///////2/////2//////////////2///////2///2////2////2//2/////////2////////////2///////2////////2//////////////2///2//////2/2/////////2//////////2///////////2////////2/|}}}}}}}}}}}}}}(}221]] ",
-" ~_*/2(}}<2///2//////////2///2///2///////2///////////////////////2///2//////2////2/2/////2//////2///2///2/2///2//2/2/////////2////////////2////2///2///////////2/2/////2//2/////|}}}}}}}}}}}}}}}2/]]. ",
-" ~~_/<|}}<////////2//2/////2///////2///////2//2////2////2////2/////2//////2//2////////2/////2///////////////2////////2///2/////2////2/2//////////////2////2/2////////////////////|}}}(}}}}}}}}}}2/@]] ",
-" ~_~/<}}}</2///2//////2///////2////////2///////2////2////2////2////////2///////////2/////2//////2///2/////////////////2////2/////2////////2//2////////2///////////2/////2//2//2///}}}}}}}}}}}}}}22*]. ",
-" ~~~/<}}(</////////2/////2//////2//2/////2////////2/////////////2///2////2///2/2//////2///////2///////2///2///2/2//2//////////2////////2///////2/2///////2////2////2/2////////////2|}}}}}}}}}}}}</*.] ",
-" ~_~/<}|}|//2//2///////////2/////////2//////2///////2//2///2/////////2//////////////////2//2/////2/////2///////////////2///2//////2/2//////2//////2///2///2///////////////2////2////}}(}}}(}}}}}<2*]. ",
-" ~_)/|}}}|///////2///2///////2////2///////2////2/////////2////2//2//////2//2////2/2/2//////////////2///////2/////2///2///2///////////////2//////////////////2//2///////2////2/////2/2|}}}}}}}}}}</~]] ",
-" ~_)/|}|(|/2//////////2//2/////2///////2/////////2//2////////////////2///////////////////2/2//2/////////2/////2//////////////2/2//////2/////2/2////2/////////////2//2//////////2/////2}}}}}}}}}}</~]. ",
-" __)/|}}}|////2///2////////2///////2/////2/2//2////////2///2///2///2////2///2/2//////2//////////2///2///////2/////2///2///2//////2/2////////////2////2//2//2///////////2//2///////////2}}}}}(}}}</~1. ",
-" __[/|}}}(/////2//////2/////////2////2//////////2///2//////2//////////////////////2////2///2/////2///2///2/////2///2///2///////////////2////////////////////2//2///2/////////2/////2///<}}}}}}}}</~]] ",
-" ~_(/|}}}}//2//////2/////2///2//////////2///2///////////2///////2///2//2/2/////2////////2////2/////////2/////////////////2//2/2/////2///2/2//2////2///2//////////2///2///2/////2////////<}}}}}}}</[]] ",
-" __}/|(}}}2////2///2//////2//////2/2/////2///2//2/2//2//////2///2////////////2////2/2////////////2/////////2///2////2//////////2/2//////////////2///2///2////2/////////////////////2//2//<}}}}}}</(]. ",
-" ~_}/}}}}}2///////////2//////2///////2////////////////////2/////////2///2/2/////////////2//2///////2/////2///////2////2//2/2///////2//2////2///////////////2////////2/2///2/2///2/////////<}}}}}2/(1] ",
-" _*|/}|(}}22////2/////////////2///2////2/////2///2//2//2////////2////2/////////2////2/////////2///////2/////2///////////////////2///////2////2//2//////2//////2//2///////////2/////2////2//|}}}}2/(]. ",
-" __}/}}}}}<///2////2///2/2//////2////2///2/////////////////2//2//////////2//2/////////2/2//2////2///2/////////2///2////2////2////2//2////2////////2/2////2/////////////2///////2/////2//////|}}}2/(1. ",
-" __(/}}}}}|////////////////2/2////////////2///2//2//2///2////////2////2////////2/2///////////////2////2//2/////2////2////2///2///////2//////2//2///////////2//2///2/2////2//2///2////////2///2}<//(]] ",
-" ~_//(}}}}|////2/2//2////2//////2/////////////////////2/////2///////2///2//////////2////2/2//2/////////////2//////////////////////2////2//2//////////2//////////2/////2///////////2///2////2//////}]] ",
-" ~__//}}}|(}2//////////2///////////2//2/2///2/2////2/////2/////2///////////2/2////////2////////////2///2////////2/2///2///2///2/2//////////////2/2/2////2//2//2/////2////2///2//////2//////////2///21] ",
-" __*//}(|}}}////2///2/////2/2///2///////////////2////////////2////2///2//2/////2/2////////2//2//2////////2///2//////////2////////////2///2///2///////2/////////2///////////2////2///////2////2/////2]]] ",
-" __*//}}}}|(22///2////2/////////////2////2//////////2/2//2////////2////////////////2///2///////////2//////2////////2//////2//////2////2////////////2////2//2/////2///2///////2///////2////2////2///21]. ",
-" ___//|}}}}}2///////2//////2//2//2/////2///2///2//2///////////2////////2//2///////////////2//////////2/////////2/////2//////2//////2//////2////2//////2//////2/////2///2/2///////2/////////////////21]. ",
-" __*//<(}}}}|///2///////2/////////////////////////////2////2////////2////////2//2///2////////2//2/////2/////2///2/////////////2////////2////2///2//2/////2////////////////////2///2////2///2////2///].] ",
-" __*//|}}}}}|///////2//////2////2/2//2///2//2///2///2////2////2//2//////2/2//////////2/2/2/2//2///2/////2/////////2///2//2//////2//////////////////////////2///2////2//////2////////2////2////////2/]]. ",
-" __*//|}}}}}}/2//2/////2/////2////////////////////////2//////////////2///////2//2/2//////////////////////2//2//////2///////2////////2///2///2//////2//2/////2////2//////2/////2////////////2/2/////21.] ",
-" __*//|}(|}(|2/////2//////////////2///2////2//2//2///////2///2///2///////2//////////////////2//2//2//2////////2////////2/////2///2////2///2///2/2///////2/////2//////2//////////2////2/////////2///21.. ",
-" __*//|}}}}}}22//////2//2//2///2////////2////////////2////2///////2//2////2//////////////2/////////////////////2////2/////////2///////////////////////////////////2/////2//2//////2////2////////2///]]] ",
-" __*//<}}}}(|<///2////////////////2////////2////2/2////2//////2/////////2///2/2//2/2/2///////2/2//2///2//2/2/////2//////2//2//////2/2///2///2////2//2/2///2////2/////////////2///////////2///2////2/].. ",
-" __*//<}}}}|(|////////2/////2/2//////2/2////2/////////////2////2/////2/////////////////2///2///////2/////////////////2/////////2//////////////2/////////////2//////2/2///2////2///2/2/////2////////2]]] ",
-" __*//<}}}}}}}2///2/////2////////2/////////////////2///2/////////2///////2/////2///////////////2/////2//////2//2///2/////2////////////2///2///////2////2////////2//////////2////2/////2/////////2//21.. ",
-" _**//2(}}}}}|</////2////2/////////2/////2///2//2///////2///2/////2///2////2//////2/2///2/////////2////2/2////////////2/////2///2//2///////////2////2////2///2////////2///////////////////2//2/////<]]. ",
-" **</2|}}}(|(<//2/////////2//2//////2/////////////2//////2////2//////////2//////////2///2//2//2/////////////2///2////////2////////////2///2///////////////2/////2//////2/////2///2////2///////////(]] ",
-" _*}/2}}}}}}}|///////2//////////2/////2///2//2///////2////////////2///2/////2/2//////////////////2//2////2///2////2///2/////2///2//2///////2////2////2///////2////2///////2////////2/////2///2////(]. ",
-" **|//}}}}}}(|2//2/////2//2//2/////////////////2//2//////2//2///2////////2/////2/////////2//2////////2//////////////2/////////2////////2/////2////2////2////////////2///2/////2////////////////2//(1. ",
-" _*}//(}}}}|(|<////2//////////2////2/2//2//2//////////2/////////////2////2////////2/2/2///////////2//////2///2////////2//2//////2///2////////////////////2///2/2/////2/////2///2///2//2///2///////[]. ",
-" **3//||(|}}}}|/////////2///////2//////////////2///2/////2///2///2////2//////////////////////2/2////2/2////////2/2/////////2//////2/////2//2///2///2/2/////2/////2//////////////////////2///2/////~]. ",
-" **3//||}}}}}|(2//2//2/////2//////////2////2////2////2/////////////////////2/2/2//////2/2//2/////////////2////////////2//////////////2//////2///2/////////////////////2////2///2///2///////////2/2~]. ",
-" **~//|}}}}(|(|2////////2//////2//2/////2//////////////2/2///2///2//2///2///////2/2/////////////2/2////2///2//////2/////2///2//2/////////2////////////2//2///2////2/////2////////2///2////2//////2*.. ",
-" **_//<(}}|}||(|//2/////////2//////2/////////2/////2//////////2//////2///2///////////////2///2//////2////////2/2/////////2////////2///2/////2///2//2///////////2///2/////////2/////////2////2////2*]. ",
-" *@_//2|}}}}}(||2///2///2///////2//////2//2////2////////2///////////////////2//////2/2///////////////2//2/////////2//2///////2//////2//////////////////2///2/////////2///2/////////2//////////2//21.. ",
-" **@///(|(}}}|(}<////2////2//2//////2/////////////2//2///2/2///2//2///2//2////2////////2//2///2//2/////////2///2//////////2////2///////2////2///2///2///2//////2///////2////2/2/2////////2///////<].. ",
-" *@<//}}}}}}}|}|///////////////2//////2//2///2/////////////////////////////////2/////////////////////2/2////2///2/2///2/////////2///////2////////2/////////2////2///////2/////////2//2////2/////(]. ",
-" **(//|}}}}|(}|(2//////2///2/////2/////////////2////2//2///2//2///2//2//2//2///////2//2//2/2/2//2/2//////2//////////2//////2///////2////////2//////2////2////////2/2/2///2//////2////////////2//3]. ",
-" *@)//|}}}}}}}}|<//2/////2///2/////2//2//2///////2//////////////2////////////2/2////////////////////////////2/////////2//2///2///2///2///2////2/////////////2//////////////2/2/////2///2///2///2_]. ",
-" *@_//<}}}|(}|(}(///2/2/////////2///////////2/2/////2///2//2//////////2//2///////2/////////////////2//2//2///2/2/2/2//////////2///////2////////////2/2///2/////2//////2/////////2///2///2////2//*]. ",
-" @@*//2}(|(|}}}||<//////2//2//2///////2//2////////2///2///////2///2////////2////////2//2////2/2///////////////////////2//2/////////2/////2//2///2//////2////2///2/2/////2////2/////////////////2].. ",
-" *@@2//|}|}}|(|(|(///////////////2/2///////////////////////2///////2///2//////2///2//////2///////2/2//2//2/////////2///////2///2/////////////2////////////2/////////2/////2/////2/2/2////2///2/}]. ",
-" @*}//}}}}}}}}}|}2//2///2//2//////////2//2//2/2/////2//2//////2/////2///2//2//2////2//////////////////////2//2/2/////2//////2///2///2///2//////2//2/2//////2/////////2///////////////2////////3]. ",
-" @@3//<(}}}|(|(|(|///2//////2/2///2/////////////2/////////2////2/////////////////////2///2//2/2///////////////////2////2/2////////2//2/////2//////////2/2/////2/2/////////2/2///////////2////2_]. ",
-" @@_//<|}}}}}}|}|(//////////////2///2///2///////////2//2//////////2///2//2/////2///////////////////2/2/2////////////////////2/2/////////2////2//2//////////2//////2///2///////2/2/2///////2//2@.. ",
-" @@@///(}}}}}|(}}|(////2//2///////////////2//2///2//////////2//////2///////2//////2//2/2/2////2//2///////2/2///2//2/2/////2//////2///2////////////2/2///2///////////////2////////////2///////|].. ",
-" @@|//|}}}}(|}|}(|2/////////2///2//2//////////2/////2//2/////2////////2/////2//////////////////////////////2/////////2///////2///////2//2/2/2//////////////2///2/2/2//////2/////2/////2///2/3]. ",
-" @@3//<(}}}}|(}||(|2///2/////2//////2//2//2/////////////2/////2////2/////2/////2/2////////2//2////2//2////////2////////2////////2/2///////////2/////2////2/////////////2//////////2////2///2_]. ",
-" @@_//<|}}}}}}}}}|}2/2////2/////2/////////////2//2//2//////2///////////2////2//////2///2///////2///////2////////2/2//////2////////////2/////////2/////2/////2///////2/////2/2///////2//////2@.. ",
-" 1@@2//}|(}}|(}|(|(|//////////////2//2////2//////////2/2////////2//2////2/////////////////2///////2//////2/2////////2//////2/2/////2///////2//////////////////////2////////////2/2/////2///}]. ",
-" @@(//|}}}}}}}}|}|(<//2///2//2////////2//////2/////////////2/////////////2//2///2//2///////2///////2/////////////////2////////2///////2////2/2/2/2/2//2/2///2/2/////2/2////2////////////2/~.. ",
-" 1@_//<}}}|(}|(|(||(///2//////2//2/2//////2////2/2///2//2////2///2///2///////2////////2///////2//////2/////2/2//2//////2//////////2/2///2/////////////////2/////////////2/////////2//////2@.. ",
-" 1@@//2|(|(|}}}}|}(||//////////////////2////////////////////2//////2////2//2/////2/2///2/2/2/////2/////2//////////2/////2/2/2//2////////////////////2//////////2//2/////////2/2/2///2////}].. ",
-" 1@(//|}|}}}}|(||(|(<///2//2//////2///////2//2/////2///2/////2//////////////2////////////////2//////////2///2//////2//////////////////////////2///////2////2////////2////2///////////2//~]. ",
-" 1@_//<}}}}(|}}}}||(|2///////2//2///2///2//////2/////2/////////2///2//2////2///2/////////////////2/2//////////2/////////////2//2//2/2/2/2/2/////2///////2/////////////2////////2///////2@]. ",
-" 11@///(}}}}}}|(|(||(|///2///////////////////////2////////2/////2///////2/////////2/2/////2///2//////2//2///////2//2/2//////////////////////2//////2///////2/2/2/2//////////2/////2////|].. ",
-" 1@)//|}}}}(}}}}|}|}(<//////2////2//2///2/2///2///2///2////2///////2//////2//2/2/////2///////////////////2/2//////////2/2//////2/////////////2/////2/2////////////2///2/2////2//2//2//_]. ",
-" 11_//<|(|}}}}|(|(}||(<//2////2//2/////////////////2////////////2/////2////////////////2//2///2//2/////////////2//////////2/2///////2/2/2//////2/////////////////////////////////////2@.. ",
-" 111<//}|}}}}}}}}|}(|||/////////////2/////2///////////2//2///2//////2/////2///2//2/2///////2///////2/2/2////2//////2////////////2////////2/2//////////2/2//2//2/2/2/2////2///2/////2/).. ",
-" 11~//<(}|(}}}}}}|}}(|(////2////2/////2///2//2/2//2////////////2/////2////2///////////2//////2/////////////////2////2/2////2/2///2////////////2/2//2///////////////////////////2///2*.. ",
-" 11*//<|}}}}}(|(|}(||(||/////2/////2////////////////2////2////////2//////////2////2////////////2///////2/2//////////////////////////////////////////////2//2////////2/2/2/2/2//////}].. ",
-" 111(//|}}}}}}|(}||(|}|(<2//////2///2/////2////2/////2////2//2/////////2//////2///2///2/2/2/////////////////2//2/2////2/2////////2//2/2//2/2////2////2///////////2/////////////2///~]. ",
-" 11*//<(|}}}}}}}}}|(|}|(////2////////2////////////////////////2////2////2//////////2///////2///2/2/2///////////////////////2/2/////////////2/////2/////////2/2/////////////2////2<1.. ",
-" 111|//}}}}}}}}|(}||(||((<//////2//////2///2/2//2/2//2///2//////2////////2//2//2/////////////2/////////2/2/2////2/2/////2///////2////2////////////////2/2///////2////////////////3]. ",
-" 11_//<}}}}(|}}}}(|}}|||(2//2////2////////////////////2////2//////2//2///////////2//2//2//////////2///////////////////////////////////2////2//2//2///////////////2/2/2//2/2//2/2@.. ",
-" 111|//}}}}}}}}||(|(|(}||(</////////2///2///2///2/////////////2////////////2//2//////////2////2/////2///////2////2/2/2//2/2/2//2/2//////2/////////2/////2/2/2/////////////////2[... ",
-" 11_//<}}}}(}}}}}|}}|}(||(2//2//2////////////2///2////2////2//////2///2////////2//2//2////2////2/////2//2//////////////////////////2///////2///////2/////////2///////2///2///2@.. ",
-" 111|//}}}}}}}}}|(}}}|(}||(<///////2//2//2////////2////2///////2////////2///2////////2/////2///////////////2/2//////2//////2////2///////2/////2/////2//////////2/2///////////3... ",
-" 11_//|}}}}(|}(}|}(|}|}(||(2//2//////////////2//////////2///2////2///2////////2//2////2//////2/2/2///2/////////////////////////////2//////2////2/////2//2/2///////2///2///2/@.. ",
-" 111|//}}}}}}|}}}}|(}}||(||(|/////2///2///2///2//2/2///////////////////2//2//////2////2//2/////////////2////2/2/2////2/2////2//2/////2/2////2////2/////////////////////2///3... ",
-" 11_//<}}}(|(|}}}}}}}(||(||(<2///////////////////////2///2///2//2///////////2//////////////2////2//2///2////////2///////2///////2////////2////2///2//2////2///2///2/////22@.. ",
-" 111(//|}}}}}|(}}}}}|(}|(||(|(<//2//2///2/////2///////2////////////2////2/////////2//2//2///2/////////////2///////2//////2//2/////2///2///2////////////2/////////////////~... ",
-" 11*//<}}}}}}|}}(|}}|}}|}}||}|<//////////2/////2/2//////2///2//2////2//////2//2//////////////2//2//2///2///2///////2/////////2/////2///////2/2///2//2////2/2/2/2//2/2//<1.. ",
-" 111)//|}|(|(}}}}}}}}|(|(|(|(}(}/2///2//////2////////////2//////////////2///////2///2//2//2/////////2////////2/2////2/2//2///2//2/////2///////2///////////////////////2_]. ",
-" 11@<//}}}}}}}}}(}}}}}}}}|}|||(|<//////2/////2//2//2/////////2//2///2//////2///////////////2///2//////2///2/////2//////////////////2////2///////2//2/2/////////2///2/(1.. ",
-" 111~2/<}}}}}}}}}}}}}}|(|(|(}|(|(}/2////2////////////2////2//////2/////2////2///2///2//2///2///2//2////2///2//////2///2//2///2//2////////////2////////2/////2///////2*.. ",
-" 111|//|}}(|}}}}}(}}}}}}}}|}}|||(|</////////2///2/////2//////////////////////////2//////////////////2///////2//////2//////2////////2////2///////2//////2//////////23].. ",
-" 11@2/2}}}}}}}}|}|(}}}}|(|(|(}}|(|(<////2///2///2////////2//2///2//2///2////2////////2//2///2///2//////2///2//2//////2////////2////2///2///2////2//2//////2/2/2//<1.. ",
-" 111[//<}}(|(|(|(||}}}}}}}}}|}}(|}|}|</////////////2//2//////////////2////2///////2///////////2//////2//////////2//////2///2//////////////////////////2/////////2*.. ",
-" 111|//|}}}}}}}|(|(|(}}}}|(}}}|(|(}|(|<//2//2//2/////////2///2//2//////////2//2/////2///2///////2/////2////2//////2////////////2///2///2//2//2///2/////////////)].. ",
-" 11@///}}}}}}}}}}}}|}}}}}}}}}}}}}}}|}}|2///////////2//2///////////2//2////////////////2///2//////2//////2//////2/////2///2//2/////////////////2///2/2/2//2/22<1.. ",
-" 111~//2}}}}}}}}}|(}|(}}}}|(}}}}|(|(}}|(|22//2//2////////2//2/////////2///2///2//2//////////2//////////////2/////2////2/////////2///2////2//////////////////2*].. ",
-" 111(//<}}}}}}}}}}}}}}}}}}}}}(|}}}|}}}}}(|<2///////2/////////2////2////////2//////2////2//////2//2//2///2///////////////2///2////2////2////2//2///////////23].. ",
-" 11@<//|}}(}}}}}}}}}|(}}}}|}}}}|(|(}}}|}}|(|<22////2///2/////2///////2////////////2///////2//////////////2//2////2//////2/////////////////////2//2/2/2///(1.. ",
-" 111_///|}}}}}}(|}(|(|}}}}}}}}}}}}}}}(|(|(|}}||</////////2////////2/////2///2//2//////2////////2///2//////////2////2///////2//2///2///2////2////////////|@]. ",
-" ]11~2//}}}}}}}}}}|}}|(|(}|(}}}}}}}}}}}}|(|(}}((|<<2/////2////2/////////2////////2////2///2////2////2///2//////////2///2//////////2////2/////2//////2/2_].. ",
-" ]11(//2}}}}}}}}}}}(|}}}}}|}}}}}(|}}}}}}|}}}}|}}}}||<2/////2////2//2///////2//////////////////////2//////2///2////////////2//2////////////2////2////23].. ",
-" 111(///(}}}}}}}}}}}}}}|(|(}}}|}}}}}}}}}}}}}}}|(|(}}}(|<</////////////2/////2////2////2//2///2/////2/////////2///2////2///////////2///2////////////(].. ",
-" 11*<//<}}}(}}}}}}}}}(}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|}(|(}||<22///2//////////2////2/////////////////2///2/////////2///////2//2//2////////2//2///2|1.. ",
-" ]11@///<}}|(}}}}}}}|}}}}|(|(|(}}}}(|(|(}|(}}}}}}}}}}|}|}}}}}}}(}||<<222/2///////////2///2//2//2/////////2///2/////////2//////////2///2///////2/<@].. ",
-" ]11_///<}}}}}}(}}}}}}}}}}}}}}}}}}|}}}}}}|(|}}}}}(|}(|(|}}}}}}|}}}}}}}(|}}}||<22//////2/////////2///2/////////2///2///////2////////2////2////22*... ",
-" ]11_///2}}}}}|(}}}}}}}}}}}}|(}}(}}}}|(}}}}}}}}}}}}}}|(}|(}}}}}}|(}}|}}}}}}}}|(}|<2///////2/////////2////2////////2//2////2//2/////////2////2_... ",
-" ]113///2}}}}}}}}}}(}}}}}}}}}|}}}}}}}}}}}(|(|}}}}}}}}}}}}}}}}}}}|}(|(|(|}(|(|}}}}}}|2//2////2//2//////2/////2/////////////////2////2//////2_].. ",
-" ]113///2}}}}}}}}}}}}}}|(}}}}}}}}}}}}}}}}}}}|(}}}}}}}}}}}}(|(|(}}}}}}}}|}|}}}}}}}}}}}<2////////2///////2////2///2///2///2////////////2//23].. ",
-" ]11[///2|}(}}}}}}}}(}}}}}}(}}}}(}}}}}}}}}(|}}}}(}}}(|(|}|}}}}|}}}}}}}(|}(|(|(|}}(|}}}|2/////////2///////////2///////////2//2//2//////231.. ",
-" ]113////<}}(}}}}}}}}}}}}}}}}}}}|(}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}(|22///2////2////2////////2//2/////////////2///3].. ",
-" ]11[////|}}}}}(}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}(}}}}}}}(}}}}}}}}}}}}}(|(|}}}}}|}}<//////////2////2////2//////2////2///2///2231.. ",
-" .11[2///2}}}}}}}}(}}}}}}}}}}}}}}}}(}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|}}|(|(|(}|(}}(</2//2/////////2////////////2///////2///3].. ",
-" ]]1_////2|}}}}}}}}}(}}}(}}}}}}(}}}}}(}}}}(}}}(}}}}}}}(}}}}}}(}}}(}}}}}}}}}}}}}}}}}}|}}}}<//////2//2///////2//2/////////2/////<~].. ",
-" ]11_2////<}}}}}}}}}}}}}}}(}}}}}}}}|}(}}}}}}}}|(}}}}}}}(}}}}}}}}}}}}}}(}}}}}}}}}}|(}}}}|(}/2///////////2/////2//2///2///////2_].. ",
-" ]]1@2////<}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}(}}}}}}}}}}}}}(|}}}}}}}}|/////2//2//2////2//////2////2//2<*].. ",
-" ]11@}2////<}(}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}(}}}}}}}}}}(}}}}}}}}}}}}(}}}}}}|(}}}}}}}}}(/2///////////////2////////////<@].. ",
-" ]]11(/////2|}}}(}}}}}}}}}(}}}(}}}}}(}}}}(}}}}}}}}}}}}}}}}}}}}}}}}}}(|}}}}}}}}}}}(|}}}(|}|///2//2//2/2//////2////2//2/(11.. ",
-" ]]11~/2////<}}|(}}}(}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}(}}}}}}}(}}}}}}}}}}}(}}}}}}}}}}}}}}}}}|///////////2//////2///////31... ",
-" ]]1*</////2<}}}}}}}}}}}}}}}}(}}}}}}}}}}}}}}(}}}}}}}}}}(|}}}}(}}}}}}}}}}}}}}}}(|(|}}}}(|///2/////2///2////////2/<_1... ",
-" ]]11(/2////2}}}}}}}}}(}}}}}}}}}}(}}}}(}}}}}}}}}}(}}}}}}}}}}}}}}}}}}}}(}}}}}}}}}}}}}|}(|//2//2////////2//2///2|@... ",
-" .]11~///////<|}}(}}}}}}}}}}}}(|}}}}}}}}}}}}(}}}}}}}}}}}(}}}}}(}}}}}}}}}(}}}}}}(|}}}}}}//////////2//2/////2/311.. ",
-" ].]1@}2//////2|}}}}}}(}}}}}}}}}}}}}}(}}}}}}}}}}}}}}}}}}}}}}}}}(}}}}}}|}}}}}}}|(}}}}}(<//2///2///////2///<_1... ",
-" ]]11~2///////<}}}}}}}}}}}}}}}(}}}}}}}}}}}}}}}(}}}}}}}}}(|}}}}}}}}}}(}}}}(|}}}}}}}}}</////////2/////22)@].. ",
-" ].]1@(/2//////2|}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}(}}}}}}}}}}}}(}}}}}}}}}}}}}|(}}}|(|//2//2/////2///<_]... ",
-" ]]]1_<2///////2<}}(}}}}}}}}}}}}}(}}}(}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|////////////22)1]... ",
-" ]]]11~/2////////2|}(}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}(}}}}}}}}}}}}}}(}}(}}|(}|(|////2///2///(@]... ",
-" ]]]1@3/2////////2<|}}}(}}}}}}}}}}}}(}}}}}}}}}(}}}}}}}}}}}(}}}(}}}}}}}|}}}}}}}2/2////2//2|_1]].. ",
-" ]]]1@[2//2///////<<|}}}}(}}|(}}}}}}}}(}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|(}}}}}}/////////|~1]... ",
-" ].]]1@3/2//////////<<}}|}}}}}}}}}}(|}}}}}}}}}}}}}(}}}}}}}}}}}}}}(}}}}}}}}</2///2/|_11... ",
-" .]]]1@[<2//2//2/////2<|}}}}}}}}}}}}}(}}}}}(}}}}}}}}}(}}}}(}}}}}}}}}}}}|///2//(~1]... ",
-" ..]]11_|////////////2/<<|}}}}}}}}}}}}}(|}}}}}}}}}}}}}}}}}}}}}}(|(|(2////2(_11... ",
-" .]]1]1*32/2/////////////2<|}}}}}}}}}}}}}|(}}}}}}}}}}}}}}}}}}}}}|///2|3@].... ",
-" ...]11_)22/2//////2/////22<<|}}}}}}}}}}}}(}}}}(}}}}(}}}}}}<2/22)*@1]].. ",
-" ...]]11_)/2/2////////////////2<<|}}}}}}}}}}}}}}}}}}}|<<//2[_11..... ",
-" ..]]]]1*3(2/2/2/////////2////////222<<<<<<<<222///2|3*1]].... ",
-" ....]111@~(<2/2///2////////2///////////////2)~_1]]..... ",
-" ....]]]1]1@_3)(2222/2/////////2222<)[_*@]]].].... ",
-" ....]]]]1]111@@**_~_~~_~_*@*11]]]]....... ",
-" .........]]]]]]]]]]]]]]]......... ",
-" .................... ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "};
diff --git a/perl-install/pixmaps/mouse_3b_mini.xpm b/perl-install/pixmaps/mouse_3b_mini.xpm
deleted file mode 100644
index d7ecefe60..000000000
--- a/perl-install/pixmaps/mouse_3b_mini.xpm
+++ /dev/null
@@ -1,211 +0,0 @@
-/* XPM */
-static char * mouse_3b_mini_xpm[] = {
-"105 175 33 1",
-" c None",
-". c #0C1834",
-"+ c #FE9A02",
-"@ c #303C5D",
-"# c #AB8128",
-"$ c #E7A418",
-"% c #DAA22A",
-"& c #95742E",
-"* c #E6A929",
-"= c #747C98",
-"- c #62543B",
-"; c #F7B01E",
-"> c #FEA005",
-", c #B7944C",
-"' c #ACAECB",
-") c #816834",
-"! c #7C85A3",
-"~ c #AFB2CF",
-"{ c #A28C5E",
-"] c #5F6A8B",
-"^ c #E2A62E",
-"/ c #14254C",
-"( c #424E6E",
-"_ c #FEB212",
-": c #BABEDA",
-"< c #6B7491",
-"[ c #848BA9",
-"} c #9A9ABE",
-"| c #D6A236",
-"1 c #A6A8C7",
-"2 c #9FA0C0",
-"3 c #515D7F",
-"4 c #CB9420",
-" ]]}3. ",
-" 3]}(. ",
-" ]<}@. ",
-" 3=}@. ",
-" 3=}/ ",
-" 3!}/ ",
-" 3!}. ",
-" (!}. ",
-" 3[}. ",
-" ([}. ",
-" (}}. ",
-" (!}. ",
-" (!}. ",
-" (!}/ ",
-" (=}/ ",
-" (=}@ ",
-" ]<}@. ",
-" ==}<@@ ",
-" !!}}}!@/ ",
-" 3}}}}}[/ ",
-" (}}}}}}/ ",
-" @}}}}}}(. ",
-" ([}}}}}3. ",
-" (!}}}}}<. ",
-" 3!}}}}}!/ ",
-" ](@@@@@@/( ",
-" '2}[]3<]==<]3]]=== ",
-" 2}[2'::~'~1111'':1}=]]] ",
-" ~2[=(:22}}}}}}}}}}}}2:[/3(]3 ",
-" 2[,_$/}1}}}}}}}}}}}}}}2(@_%-(33 ",
-" '[,;___(]'}}}}}}}}}}}}}}}/)___4((( ",
-" 2[^_;>__)@:}}}}}}}}}[}}}}!/#_____&@(( ",
-" ~}{_>+++__#/:1}}}}}}}}}}}}}</$______4@@@ ",
-" '[,;>+++>__4/~~}}}}}}}}}}}}2]/________;-@@ ",
-" 1!%>+++++___*/}:2}}[}}}}}}}}13@_________;)@@ ",
-" 2!*>+++++_____/[:'}}}}}}}}}}}1@-_________;;)/@ ",
-" 1!$++++++______@=::}}}}}}}[}}}~@-____________)// ",
-" 2!%++++++_______(]::'}}}}}}}}}}:/&_____________)@/ ",
-" 1!%>+++++>_______-3:~:}}}}}}}}}}:/)______________-// ",
-" [,>+++++_________-3:::2}[}}}}}}}1/#_______________(// ",
-" }{>+++++>_________)3:::~2}}}}}}[21/#_______________$@// ",
-" }=_+++++;__________)(~:::2}}}}}}}}1/4________________4// ",
-" 2!$+++++>___________)(:~::~}}}}}}}2}/4_________________&// ",
-" [4>++++_____________&(:::::2}[}}}}2[/4__________________(// ",
-" }{;++++>_____________#@~::~:~2}}}}}2}/%__________________$// ",
-" }=*++++_______________&@::::::2}}}}}}}/*________________>__&// ",
-" !4>+++>_______________#@~:::::~}}}}}}[/$_________________>__(/. ",
-" [!_+++>________________&@:~:~:::2}}[}2!/*__________________>_%// ",
-" =*>++>_________________#@:::::::~}}}}}!/%__________________>>_)/. ",
-" [{_++>__________________&@~:::~:::'}}}}!/*__________________;+;;// ",
-" }<;++>___________________#@::~::::::2}}}!/*___________________++_&// ",
-" !,;+>____________________&@::::~:::~:}}1[/*___________________>+>;@/ ",
-" [=_+>_____________________&@~:::::::::~1~}/$___________________>>+;&// ",
-" !,;>______________________)(::::~:::~::::}/|___________________;+++_@/ ",
-" [=_>;______________________)(:~:::::::::::}/4____________________+++>#./ ",
-" [{_>_______________________-(::::~::~:::~:1/,___________________>++++;@. ",
-" <__________________________]3::~::::::::::~/#____________________++++>&// ",
-" !#__________________________(]:::::::~:~::::/#___________________>+++++;/. ",
-" <|;_________________________@]::::~:::::~:::@)___________________>+++++>-/. ",
-" [(4__________________________@!:~:::~:~::::::@)__________________;++++++>-// ",
-" =@)__________________________.[:::::::::::~::((__________________>++++++>/// ",
-" !<<@_________________________%/}:::~::::~:::::](_________________>+++++++#/@3. ",
-" ![~/)________________________,/':~:::::::~::::</_________________+++++++$//[2/ ",
-" <~:[/,_______________________&/::::~:~::::::::[/________________+++++++>(/3::@. ",
-" !<:::</#______________________)@::::::::~::~:::1/,______________++++++>$@/3~2:</ ",
-" =}::::!/3_____________________(3:~::::~:::::::::/{____________++++++>_#//]'}}1'. ",
-" ]~:::::2(/)___________________@<:::~:::::~:~:~::@)___________>++++>_#(/@[12}}}:(. ",
-" !=::~:::::!@@]|_______________%/}:~::::~:::::::::3(________>++>>>_$&@//=~2}}}}}~=/ ",
-" =}:::::~::::!(/@],*___________#/~:::::::::::~::::</________>__;4)@//([~2}}}}}}}1'/ ",
-" ]~::~::~::::::'=3/@@3&,*______-(::~:~::~:~:::::::'/,_____$4&)@///(=''2}}}}}}}}}2:@. ",
-" ==::::::::~::::::::2=3(///@(-)&/3}}1111::::::~121}[@(&)-@////@3=2::1}}}}}}}}}}}}}~=/ ",
-" =[::::::::::~:::~:::::::~[!<3(@@/////////////////////@(3]=[2::~'1}}}}}}}}}}}[}}}}11. ",
-" ]~:~:~::~::~:::~::::~:::~''~~:::::~1112[}[[}[}111~::::~:::~'122}}}}}}}}}}}}}}}}}}2:@. ",
-" =<::::::::::::::::~::::::::~1}}2221'~~~:~:::::::~:~~~''112}}}}}}}}}}}}}}}}}}}}}}}}}~]. ",
-" =[:::::~::~:::~:::::~::~::::::12}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}[}}}}}}[}}}}'[/ ",
-" ]1~:~:::::~::::~::::::::::::::::~2}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}1~/ ",
-" ]::::::~:::::~::::~::~:~:~:~:~::::~1}}}}}}}}}}[2}}}}[}}}}}}}}}}}}[}}}}}}}}}}}}}}}}}}:(. ",
-" ==::::::::::::::~::::::::::::::::::::~1}}}}}}}}}}}}}}}}}}}}}}}[}}}}}}[}}}}[}}}}}}}}}}'<. ",
-" <[:~::::::~:::~::::~::::~::::::~:~:::::~12[}}}}}}}}}}}}[}}}}}}}}}}}}}}}}}}}}}}}[}}}}}1}. ",
-" <1:::~:~::::::::~::::~::::~:~:::::::::::::'}}}}}[}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}2:/ ",
-" ]::::::::~:~:::::::::::::::::~::::~::::::::~'2}}}}}}}}}}}[}}}}}[}}}}}[}}}}[}}}}}}}}}}}:(. ",
-" <=::::~:::::::~:::~::::~:::::::::::::~:~:::::::'}}}}}[}}}}}}}}}}}}}}}}}}}}}}}}}}}}[}}}}']. ",
-" <[:~::::~:::::::::::~:::~:~:~::~:~::::::~::::~::~'}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}1[/ ",
-" ]1::~:::~::~:~:::::::::::::::::::::~::::::~::::::~:1}}}}}}}}[}}}}}[}}}}}}[}}}}}}}}}[}}}2~. ",
-" ]::::::::::::::~:~::~:~::::::~:~::::::~::::~::::::::~2}}}}}}}}}[}}}}}[}}}}}}[}}}}}}}}}}}:@ ",
-" <]:::::::~:::~:::::::::::~::~::::::::~:::~::::~::::::::'}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}'3. ",
-" <!~::::::::~::::::~:::::::::::::~:~::::::::::::~:~::::::~1}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}1=. ",
-" <[::~:~:::::::::~:::::~:::~:~::::::::~::::~:::::::~:~:::::~2}{}}}}[}}}}}}}[}}}}[}}}}}}}}}2}. ",
-" ]1:::::::::::~::::~::::~::::::~:::~:::~::::~:~::::::::~:::::~2}}}}}}}}[}}}}}}}}}}}}}}[}}}}~/ ",
-" ]:::~:~:~:~:::::::::~:::::::~:::~:::::::~::::::~:::~::::::::~:2}}}}}}}}}}}}}}}}}}}}}}}}}}}~@ ",
-" ]:~::::::::~::~:~::::~:~::::::::::::~::::~:::::::::::~::~:~::::~}}}}}}}}}}[}}}}[}}}}}}}}}}'(. ",
-" ]!:~:::::::::::::::~::::::~::~:::~:~:::~:::::~::~::~::::::::::::::2}}}}}}}}}}}}}}}}}}}}}}}}1]. ",
-" ][~~:~:~:~:::~::::::::::::::::~::::::::::::::::::::::~::~::::~:::::'}}}}}}}}}}}}}}}}}}[}}}}2[. ",
-" ]2':::::::::::::~:::~:::~:~::::::::~:::::~:~::~:::~::::::::::::~::::~}}}[}}}[}}}}[}}}}}}}}}}2. ",
-" ]~1:::::~:~:::~::~:::~::::::~::~::::~:~:::::::::~:::~::~::~::~:::~::::'}}}}}}}}}}}}}}}}}}}}}~/ ",
-" 3:2~:~::::::~::::::::::::::::::::::::::::::~:~:::::::::::::::::::::::::~}}}}}}}}}}}}}}}}}}}}'@ ",
-" <:1::::::::::::~:~:~:~::~:~::~:~::~:::~:~:::::::::~::~::~:::::~::~::~::::2}}}[}}}}[}}}}[}}}}1(. ",
-" ]<'1::~:~::~:~:::::::::::::::::::::::::::::::~::~:::::::::~:~::::::::::~:::2}}}}}}}}}}}}}}}}}13. ",
-" ][11::::::::::::::::::~::~::~:::~:::~:::::::::::::~::~:::::::::~::~::::::~::'}}}[}}}}}}}}}}}}2<. ",
-" ][1':::::~::::~::::~::::::::::::::~::~:~:~:~:~:~::::::~:~::::::::::::~:::::::~}}}}}}[}}}}}}}}}[. ",
-" ]22'::~::::~:::~::::~:~:::~::~:::::::::::::::::::~::::::::~:~::::~:~::::~::~::~2}}}}}}}}}[}}}}}. ",
-" 3'}~~:::~::::::::~::::::::::::::~:~::::~:~::~::::::~::::~:::::~:::::~::::::::::~}}}}}}}}}}}}}}'. ",
-" 3:}~::::::::~:::::::::~:~::~:~::::::~:::::::::~::::::~::::~:::::::::::~::~::~::::2}}}[}}}}}}}}~/ ",
-" ]~}~::~::~:::~:~::~::::::::::::::::::::::~:~:::~::~:::::~:::~::~::::::::::::::::::2}}}}}}}}}}}~/ ",
-" ]~}~::::~:::::::::::~::::~:::~:::~::::::::::::::::::~:::::::::::~::~::::~::::~::~::1}}}}}}}[}}~( ",
-" ]<1}~~:::::~::::~::~::::~:::::::~::~:~:~::::~:::::~:::::~:::::~:::::::~::::~:::::::~:2}}}}}}}}}1(. ",
-" ]=1}~::~:::::~::::::::~::::~:::::::::::::~::::~:~:::~::::~:~::::::~:::::::::::~:::::::2}}}}}}}}13. ",
-" 3!1}~::::::~::::~::~::::::::~:~:~::~:::~:::~:::::::::::~:::::::~:::~:::~:::~::::~:::~::2}}}}}}}1]. ",
-" ][1}~:~:~:::::::::::~::~:~::::::::::~::::::::::::~:~:::::~::~:::::::~:::~:::::::::~:::::2}}}}}}2=. ",
-" 3[}}'::::::~:~::~:::::::::::::::~::::::~::~:~:~:::::~::~::::::~:~::::::::::::~:::::::~:~:2}}}}}1=. ",
-" 312}':::~:::::::::~::~::::~:~:::::~:::::::::::::::::::::::~:::::::::~:~::~:~:::~:::~::::::}}}}}2}. ",
-" 3}}}'~:::::::~:::::::::~::::::::::::~::~:~::::~:~:::::~:::::::~::~::::::::::::::~::::::~:~:}}}}1[. ",
-" 31}}1::~::~:::~:~::~::::::::~:~:~:::::::::::~:::::~:~::~:~:~::::::~::~:~::~::~:::::::~:::::~}}}22. ",
-" (~}}2:::::::::::::::::::~:~:::::::::~::::~:::::~:::::::::::::::~::::::::::::::::~:~:::::::::~}}11. ",
-" 3'}}2::~::~:~::::~::~:~:::::::~::~::::~::::::::::~::::~:::~:~:::~:::::~::~::::~::::::::~:::::~2'1. ",
-" 3~}}}::::::::::~::::::::::::~:::::::~:::~::~::~::::~:::::::::::::::~:::::::~::::::~:~::::~::::::~. ",
-" (:}}}~:~:::::~::::~:::~::~:::::~:::::::::::::::::::::~:~:::~:~::~::::::~::::::::~:::::~::::~::~::. ",
-" (:}}}~:::~:~:::~::::~::::::::::::~::~::~::~::~:~::~::::::::::::::::~:~::~::~:~:::::~::::~::::::::. ",
-" (:}}}':::::::::::::::::~::~:~:::::::::::::::::::::::~::~:~::~:~:~:::::::::::::::::::::::::~:::::~/ ",
-" (:}}}2:~:::~:::~:~::~:::::::::~::~::~::~::~:::~::~::::::::::::::::~::~::::~::~::~:::~::~::::~:~::. ",
-" (:1}}}::::::~::::::::~::~:::::::::::::::::::~::::::~:::~::~::::::::::::~::::::::::~::::::~::::::~. ",
-" (:2}}}~:~::::::~::~:::::::~:~:~::~::~:~::~::::::~:::~:::::::~:~::~::~::::~::~::~::::::~::::::~:::. ",
-" ('1}}}~:::~:::::::::~:~:::::::::::::::::::::::~:::::::~::::::::::::::::::::::::::~::~:::~::::::~1. ",
-" (11}}}2:~:::~:~::~::::::::::::~::~::~:~::~:~:::::~:::::::~:::~::~::~:~::~::~::~::::::::::~::~:::2. ",
-" (}~}}}}::::::::::::::~:~:~:::::::::::::::::::::::::~:~:::::~::::::::::::::::::::~::::~::::::::::[. ",
-" @[~}}}}~~::~:::~::~::::::::~::~::~::::~::::~:~::~:::::::~::::~::~:::~::~::~::~::::~::::::~::~:::=. ",
-" (!~}}}}1:::::~:::::::::~:::::::::::~::::~:::::::::~:::~:::::::::::~::::::::::::~::::~::~::::::~:]. ",
-" @]:2[}}}::~::::~::~:~::::::~::~::~::~:::::::~::~:::~::::::~::::~::::::~::~::~::::::::::::::~::::(. ",
-" @3:}}}}}1:::~::::~:::::~:::::::::::::::~::~::::::::::~::~:::~:::::::~:::::::::~::~:~:::::~:::::~@ ",
-" @:1}}}}2:::::~::::::~:::~:~::~::~::~:::::::~:::~::::::::::::::~:~::::::~::~::::::::~:~:::::~::~. ",
-" @2~}}}}}~~::::::~::::::::::::::::::::~:::::::~:::~:~::::~:~::::::::::~::::::~::~:::::::::::::~[. ",
-" /!:}[}}}2:~::~::::~:~:~:::~::~:::~:::::~:::::::::::::~:::::::~::~:~::::::~:::::::::::~:~::~:::]. ",
-" @3:}}}}}}~:::::~::::::::::::::::::::~::::~:~::~::::::::::::~:::::::::::~:::~::~::~::::::::::::@. ",
-" @:1}}}}}2:~::::~::::::~::~::~:~:~:::::::::::::~:~::~:~:~::::::~::~:~:::::::::::::~:::~::~:~:~. ",
-" /}~}}}}}}1:::::::~:~::::::::::::::~::~:::~::::::::::::::::::~::::::::::~:::~::~::::~::::::::!. ",
-" /]~}}}}}}2~~::~:::::::~::~::~::~::::::~::::~:::~::~::::~:~::::~:::~:~:::~::::::::::::~::::~:(. ",
-" @:1}[}}}}2:::::~::~:::::::::::::::~:::::::::~::::::~:::::::::::~:::::::::~::::~:::::::~:::'/ ",
-" /[~}}}}}}}~~:::::::::~::~::~:~:~::::::~::~::::::~::::~:::~:::::::::~::~::::~::::~:::::::::=. ",
-" /3:}}}}}}}}~::~::::::::::::::::::~::~:::::::::~::::::::~:::~:~:::~::::::~::::~::::~:~::~:~@. ",
-" /~1}}[}}}}}~::::~:~:~::~:::~:::::::::~::~:~:::::~::~:::::::::~::::::~:::::::::::::::::::2. ",
-" /<:}}}}}}}}2~:~:::::::::::::~::~:::::::::::::::::::::~::~:::::::::~:::~::~:~::~:::~::~::3. ",
-" /~1}2[}}}}}}:::::::~::~:~:::::::~::~::~::~:~::~::~::::::~:::~:~:::::::::::::::~:::::::1. ",
-" /=~}}}}}}}}}}~::::::::::::~:~::::::::::::::::::::::~::::::~::::::::~::~::::~::::~::~::3. ",
-" /@~1}}}}}}}}}}~:~::~::~:::::::::~::~::~:::~::~::~:::~:::::::::~:~:::::::~::::::::::::1. ",
-" /<:}}[}}}}}}}}~:::::::~::~::~::::::::::~:::::::::::::~:~:::~:::::~::~::::~::~:~::~::3. ",
-" /1'}}}}[}}}}}}1~:~::::::::::::::~::~::::~::~::~::::::::~:::::~::::::::::::::::::::}. ",
-" /3:}}}}}}}}}}}}2~::::~:~::~::~::::::::::::::::::~:~::::::::::::~::~::~:~::~:::~::~@. ",
-" /[~}}}}}[}}}}}}}1~~:::::::::::~::~::~::::~::~:::::~:::::~::~::::::::::::::~:::::!. ",
-" /@~1}}}}}}}}}}}}}21:~:::~:::::::::::::~:::::::~:::::~:~::::::~::~::~:::~::::~::1/. ",
-" /3:}}}}}}}[}}}}}}}}'~::::~::~::~::~::::~::~::::::::::::::~:::::::::~:::::::::~(. ",
-" /[:}}}}}}}}}}}}}}}}}2':~:::::::::::~:::::::~::~::~:::~::::~::~:::::::::~::::<. ",
-" //1~}}}}}}}}}}}}}}}}}}}1':~::~::~:::::::~:::::::::~:::::::::::~:::~:~::::~:}.. ",
-" /@~'}}}}}[}}}}}}}}}}}}}}}21~~::::~::~::::~::~::::::~::~:~::::::~:::::::::'@. ",
-" /(:1}}}}}}}}}}}}}}}}}}}}}}}}}211~~~:::::::::~:::::::::::~::~::::::~:~::~@. ",
-" /3:1}}}}}[}}}}}}}}}}}}}}}}}}}}}}}}}}}22'~::::~:~::~:::::::::::~::::::~3. ",
-" /]:'}}}}}}[}}[}}}}}}}}}}}}}}}}}}}}}}}}}}}1~:::::::~:::~:::~::::::::~]. ",
-" /<:'}}}}}}}}}}}[}}[}}}}}}}}}}}}}}[}}}}}}}}2~:~:::::~:::~:::~:~:~::]. ",
-" /<:~}}}}}}}}}}}}}}}}}}[}}}}}}}}}}}}}}}}}}}}2:::~::::::::::::::::]. ",
-" .3::1}}}}}}}}}}}}}}}}}}}}[}}}}}}}}}}}}}}}}}}~::::~::~:~:::::~:3. ",
-" /(~:'}}}}}}}}}}}}}}}}}}}}}}}}}}}}}[}}}}}}}}}~~::::::::~:~::~(. ",
-" .@2:~1}[}}}}}[}}}}}}}}}}}}}}}}}}}}}}[}}}}}}}:~::~::::::::1@. ",
-" ./!::~2}[}}}}}[}}}}}}}}}[}}}}}}}}}}}}}}}}}}2::::~::~:::[/. ",
-" ./3~::~2}}}}}}}}}}}}}}}}}}}[}}}}}}}}}[}}}}}~::::::::~].. ",
-" //[:::'2}}}}}}}[}}}}}}}}}}}}}}}}}}}}}}}}}~~::~:~:}@. ",
-" ./(1:::~1}}}}}}}}}}}}}}}}}}}[}}}}}}}}}}}~:::::'3.. ",
-" ./31:::~1}}}}}}}}}[}}}}}}}}}}}}}}}}}}}~~::~=/. ",
-" ./32::::~12}}[}}}}}}}}}}}}}}[}}}}}}1::~</.. ",
-" ./([::::~:~'2}}}}[}}}}}}}}}}[}}}':2]/.. ",
-" ../3}::::::~~'122}}}}}}}}}2211<@.. ",
-" ../(<}~::::::~:~~'~~~~1!]@... ",
-" ....@(3<=[[[[[<]3@/.... ",
-" ............. ",
-" ",
-" ",
-" "};
diff --git a/perl-install/pixmaps/mouse_left.xpm b/perl-install/pixmaps/mouse_left.xpm
deleted file mode 100644
index 13fce0362..000000000
--- a/perl-install/pixmaps/mouse_left.xpm
+++ /dev/null
@@ -1,142 +0,0 @@
-/* XPM */
-static char * mouse_left_xpm[] = {
-"59 91 48 1",
-" c None",
-". c #AFB0CD",
-"+ c #A7A9C8",
-"@ c #9FA1C0",
-"# c #9A9ABE",
-"$ c #848CAA",
-"% c #697392",
-"& c #7B84A1",
-"* c #122450",
-"= c #757C94",
-"- c #BABEDA",
-"; c #4D283C",
-"> c #B52E19",
-", c #5C2937",
-"' c #C42F14",
-") c #FF3300",
-"! c #D3300F",
-"~ c #302646",
-"{ c #4A5778",
-"] c #7A2B2D",
-"^ c #21254B",
-"/ c #892C28",
-"( c #E1310A",
-"_ c #FF4000",
-": c #FF6000",
-"< c #FF7300",
-"[ c #FF7900",
-"} c #972C23",
-"| c #FF5900",
-"1 c #FF8000",
-"2 c #FF9900",
-"3 c #FF4D00",
-"4 c #3E2741",
-"5 c #FF8C00",
-"6 c #FF9300",
-"7 c #3E4862",
-"8 c #6B2A32",
-"9 c #F03205",
-"0 c #FF5300",
-"a c #FF3900",
-"b c #FF4600",
-"c c #FF8600",
-"d c #FF6600",
-"e c #5C6888",
-"f c #FF6C00",
-"g c #A62D1E",
-"h c #11244D",
-"i c #253359",
-" .+",
-" .++@@",
-" .++#$%&",
-" .***$=$@--",
-" .******&---.",
-" .****;>,**--##",
-" .****;'))!**=-@#",
-" ****;')))))~*{-.#",
-" .***~')))))))]**--#",
-" .**^/)))))))))>**$-.",
-" .***;()))_:<[_))(**=-.",
-" .**^})))|122223)))^*{--",
-" ***4!))|5222226))));*7--",
-" .***89)052222222|))))]**--",
-" .***})_1222222221)))))/**+.",
-" .**^')|6222222226a)))))'**#-",
-" .**~!a<2222222226b))))))'**=-",
-" +**49bc2222222222|))))))))**%-",
-" +**49b62222222222d)))))))))**e.",
-" +**49|22222222222<))))))))));*7-",
-" +**49|22222222222<)))))))))));*7-",
-" +**49|22222222222ca))))))))))),**-",
-" +**49|22222222222ca))))))))))))/**-",
-" +**49|22222222222ca)))))))))))))/**-",
-" +**^(b22222222222ca))))))))))))))}**-",
-" **^!b622222222226b)))))))))))))))'**#",
-" ***>a522222222226b))))))))))))))))'**#",
-" +**})122222222226b)))))))))))))))))'**#",
-" @**8)f22222222226b))))))))))))))))))(**$",
-" @**49|22222222226b))))))))))))))))))))**$",
-" **^!_62222222226b)))))))))))))))))))))**%",
-" @**>)c2222222226b))))))))))))))))))))))**e",
-" @**])d22222222220)))))))))))))))))))))))**%",
-" @**4932222222222|))))))))))))))))))))))))**e",
-" ***!a5222222222|)))))))))))))))))))))))))4*%",
-" @**/)f222222222|))))))))))))))))))))))))));*e",
-" @**;)3222222222|)))))))))))))))))))))))))));*{",
-" **^()c22222222|))))))))))))))))))))))))))));*7",
-" #**/)d22222222|)))))))))))))))))))))))))))));*7",
-" #**4)_62222222|))))))))))))))))))))))))))))));*7",
-" #**!)[2222222:)))))))))))))))))))))))))))))));*7",
-" @**])32222222<))))))))))))))))))))))))))))))));*7",
-" **^9)5222222<)))))))))))))))))))))))))))))))));*7",
-" #**g)|222222<))))))))))))))))))))))))))))))))));*7",
-" #**;)a622222<)))))))))))))))))))))))))))))))))));*7",
-" #**')d22222[))))))))))))))))))))))))))))))))))));*7",
-" #**8)a62222ca))))))))))))))))))))))))))))))))))));*7",
-" $*^()f2222ca)))))))))))))))))))))))))))))))))))));*7",
-" #**/)_22225a))))))))))))))))))))))))))))))))))))));*7",
-" **^9)<2226b)))))))))))))))))))))))))))))))))))))));*7",
-" #**/)_2226b))))))))))))))))))))))))))))))))))))))));*{",
-" **~))<2220)))))))))))))))))))))))))))))))))))))))));*7",
-" #**g)a222|))))))))))))))))))))))))))))))))))))))))));*7",
-" **~))d22f)))))))))))))))))))))))))))))))))))))))))))4*e",
-" #**g)a62[))))))))))))))))))))))))))))))))))))))))))))**%",
-" **~)):2ca))))))))))))))))))))))))))))))))))))))))))))**%",
-" #**g))56b)))))))))))))))))))))))))))))))))))))))))))))**%",
-" $*^))|20))))))))))))))))))))))))))))))))))))))))))))))**%",
-" $**/))1f))))))))))))))))))))))))))))))))))))))))))))))9**=",
-" $*^9)bc)))))))))))))))))))))))))))))))))))))))))))))))'**#",
-"$**/))<b)))))))))))))))))))))))))))))))))))))))))))))))'**$",
-"$**()a:))))))))))))))))))))))))))))))))))))))))))))))))'**#",
-"**8))|_))))))))))))))))))))))))))))))))))))))))))))))))}**#",
-"**!)):)))))))))))))))))))))))))))))))))))))))))))))))))/**-",
-"*4))0_)))))))))))))))))))))))))))))))))))))))))))))))))/**-",
-"*;))3)))))))))))))))))))))))))))))))))))))))))))))))))),*h-",
-"*4)))))))))))))))))))))))))))))))))))))))))))))))))))));*7-",
-"**)))))))))))))))))))))))))))))))))))))))))))))))))))))4*7-",
-"**>))))))))))))))))))))))))))))))))))))))))))))))))))))**{-",
-"**8))))))))))))))))))))))))))))))))))))))))))))))))))))**e-",
-"h*^9))))))))))))))))))))))))))))))))))))))))))))))))))'**%-",
-"7**/))))))))))))))))))))))))))))))))))))))))))))))))))'**$-",
-"#h**!)))))))))))))))))))))))))))))))))))))))))))))))))/**#-",
-"-7**49))))))))))))))))))))))))))))))))))))))))))))))))]**.-",
-"-+i**8))))))))))))))))))))))))))))))))))))))))))))))));*h--",
-"--$h**8)))))))))))))))))))))))))))))))))))))))))))))))~*7--",
-"---=h**89)))))))))))))))))))))))))))))))))))))))))))))**{.-",
-".---eh**4()))))))))))))))))))))))))))))))))))))))))))'**%--",
-"-----&h**^}))))))))))))))))))))))))))))))))))))))))))g**$--",
-"-.--.-#i***;!))))))))))))))))))))))))))))))))))))))))/**#--",
-"------..{****8())))))))))))))))))))))))))))))))))))));*h--.",
-"-.-------$i****8!))))))))))))))))))))))))))))))))))))^*7---",
-"---.------.%i****4g9))))))))))))))))))))))))))))))))(**{---",
-"------------.%i****^8>))))))))))))))))))))))))))))))>**&.--",
-".---.--.------.&i*****^,g())))))))))))))))))))))))))]**+---",
-"-.------.--.-----@{h******~8g())))))))))))))))))))))4*i----",
-"-----.-------.------${i*******~,/'())))))))))))))))9**{--.-",
-"--.-----.-----.--------@%7h********^;8/'!))))))))))g**$----",
-"-----------.----.----------#%{h***********^;,//>'');**-.---",
-"----.---.----------.-.-.--.----.$%77h****************h{e%ee",
-"-.------------.-------------.------.-##%e77h*********hhhhhh"};
diff --git a/perl-install/pixmaps/mouse_middle.xpm b/perl-install/pixmaps/mouse_middle.xpm
deleted file mode 100644
index 1724c9190..000000000
--- a/perl-install/pixmaps/mouse_middle.xpm
+++ /dev/null
@@ -1,89 +0,0 @@
-/* XPM */
-static char * mouse_middle_xpm[] = {
-"13 62 24 1",
-" c None",
-". c #999ABD",
-"+ c #9E9EC1",
-"@ c #FF3310",
-"# c #77819E",
-"$ c #FF330C",
-"% c #FF330B",
-"& c #FF3300",
-"* c #FF3308",
-"= c #FF3307",
-"- c #142753",
-"; c #384365",
-"> c #6F7892",
-", c #0F1C3D",
-"' c #FF3304",
-") c #FF3303",
-"! c #606C8C",
-"~ c #525E81",
-"{ c #6D6E91",
-"] c #898BA4",
-"^ c #A3A4C3",
-"/ c #AEB2CF",
-"( c #A9ADCA",
-"_ c #BABEDA",
-".+@@@@@@@@@..",
-"##$$$$$$$$%##",
-"&&&&&&&&&&&&&",
-"&&&&&&&&&&&&&",
-"&&********=&&",
-"#-$$$$$$$$%##",
-"&&&&&&&&&&&&&",
-"&&&&&&&&&&&&&",
-"&&********=&&",
-"#-$$$$$$$$%##",
-"&&&&&&&&&&&&&",
-"&&&&&&&&&&&&&",
-"&&$$$$$$$$%&&",
-"#;$$$$$$$$%;#",
-"&&&&&&&&&&&&&",
-"&&&&&&&&&&&&&",
-"&&********=&&",
-"##********=.>",
-"&&&&&&&&&&&&&",
-"&&&&&&&&&&&&&",
-"&&$$$$$$$$%&&",
-"-#********=,#",
-"&&&&&&&&&&&&&",
-"&&&&&&&&&&&&&",
-"##$$$$$$$$%&&",
-"&&'''''''').#",
-"&&&&&&&&&&&&&",
-"&&&&&&&&&&&&&",
-"!!@@@@@@@@@~#",
-"&&'''''''')&&",
-"&&&&&&&&&&&&&",
-"&&'''''''')&&",
-"{!@@@@@@@@@~]",
-"&&'''''''')&&",
-"&&&&&&&&&&&&&",
-"&&&&&&&&&&&&&",
-"!!@@@@@@@@@{.",
-"&&&&&&&&&&&&&",
-"&&&&&&&&&&&&&",
-"&&'''''''')&&",
-"!{@@@@@@@@@!^",
-"&&&&&&&&&&&&&",
-"&&&&&&&&&&&&&",
-"&&'''''''')&&",
-".]@@@@@@@@@./",
-"&&&&&&&&&&&&&",
-"&&&&&&&&&&&&&",
-"&&'''''''')&&",
-"!!@@@@@@@@@!(",
-"&&&&&&&&&&&&&",
-"&&&&&&&&&&&&&",
-"&&'''''''')&&",
-"!!$$$$$$$$%!^",
-"&&&&&&&&&&&&&",
-"&&&&&&&&&&&&&",
-"&&********=&&",
-"!!@@@@@@@@@!+",
-"&&&&&&&&&&&&&",
-"&&&&&&&&&&&&&",
-"&&********=&&",
-"/_@@@@@@@@@/_",
-"__@@@@@@@@@__"};
diff --git a/perl-install/pixmaps/mouse_right.xpm b/perl-install/pixmaps/mouse_right.xpm
deleted file mode 100644
index 97c6824cb..000000000
--- a/perl-install/pixmaps/mouse_right.xpm
+++ /dev/null
@@ -1,143 +0,0 @@
-/* XPM */
-static char * mouse_right_xpm[] = {
-"61 91 49 1",
-" c None",
-". c #7B84A1",
-"+ c #697392",
-"@ c #757C94",
-"# c #848CAA",
-"$ c #5C6888",
-"% c #BABEDA",
-"& c #9FA1C0",
-"* c #4A5778",
-"= c #122450",
-"- c #AFB0CD",
-"; c #9A9ABE",
-"> c #A7A9C8",
-", c #253359",
-"' c #4D283C",
-") c #C42F14",
-"! c #B52E19",
-"~ c #FF3300",
-"{ c #E1310A",
-"] c #6B2A32",
-"^ c #21254B",
-"/ c #5C2937",
-"( c #3E2741",
-"_ c #972C23",
-": c #3E4862",
-"< c #F03205",
-"[ c #A62D1E",
-"} c #7A2B2D",
-"| c #892C28",
-"1 c #D3300F",
-"2 c #11244D",
-"3 c #0E1A3A",
-"4 c #FF5300",
-"5 c #FF4000",
-"6 c #FF6600",
-"7 c #FF3900",
-"8 c #302646",
-"9 c #FF7300",
-"0 c #FF8000",
-"a c #FF9300",
-"b c #FF4600",
-"c c #FF8600",
-"d c #FF7900",
-"e c #FF9900",
-"f c #FF6000",
-"g c #FF4D00",
-"h c #FF8C00",
-"i c #FF6C00",
-"j c #FF5900",
-"... ",
-"+++@@@ ",
-"#@$$$++++ ",
-"%%%&.*===++ ",
-"-%%%.======$$ ",
-";>%%,=')'====$$ ",
-";;-;==!~~{]====*$ ",
-";;;*=^~~~~~{/====** ",
-";;;==]~~~~~~~)(===*** ",
-";;#==_~~~~~~~~~_^===*: ",
-";;@==)~~~~~~~~~~</===:* ",
-";;+==~~~~~~~~~~~~~[^==::: ",
-";>:=(~~~~~~~~~~~~~~{(===:: ",
-";%==/~~~~~~~~~~~~~~~~}===,: ",
-";%==|~~~~~~~~~~~~~~~~~[^==:, ",
-">;==_~~~~~~~~~~~~~~~~~~1^==:,, ",
-"-;==)~~~~~~~~~~~~~~~~~~~{(==:,, ",
-"%+==1~~~~~~~~~~~~~~~~~~~~<(==,,, ",
-"%$==~~~~~~~~~~~~~~~~~~~~~~<]==:,, ",
-"%*==~~~~~~~~~~~~~~~~~~~~~~~~]==,,2 ",
-"%:='~~~~~~~~~~~~~~~~~~~~~~~~~]==,,2 ",
-"%:='~~~~~~~~~~~~~~~~~~~~~~~~~~]==,22 ",
-"%==/~~~~~~~~~~~~~~~~~~~~~~~~~~~'==,22 ",
-"%==|~~~~~~~~~~~~~~~~~~~~~~~~~~~<(==,22 ",
-"%==|~~~~~~~~~~~~~~~~~~~~~~~~~~~~<(==,2 ",
-"%==|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1^==22 ",
-"&==)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1===22 ",
-";==)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[===22 ",
-";==)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}==222 ",
-";==)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'==22 ",
-";==<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<^==32 ",
-"#==~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~)===22 ",
-"+==~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|==222 ",
-"+==~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'==22 ",
-"+==~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{^==22 ",
-"+==~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~45~~~~[==232 ",
-"$==~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~67~~~~/==22 ",
-"+=8~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~79~~~~<^==32 ",
-"+='~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~46~~~~[==222 ",
-"+='~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~04~~~~'==23 ",
-"+='~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~5ab~~~{^==22 ",
-"+='~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~6c7~~~|==232 ",
-"*='~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~7ad~~~~8==23 ",
-":='~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~6ef~~~)==222 ",
-":='~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~7eeg~~~/==23 ",
-":='~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~9ea7~~{===22 ",
-":='~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~bee0~~~|==23 ",
-":='~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ceef~~<^==22 ",
-":='~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~feeeb~~_==232 ",
-":='~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~5eeec7~~8==23 ",
-"$='~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~heeei~~[==223 ",
-"+==~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ieeeeg~~8==32 ",
-"$==~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~jeeeeh7~!==232 ",
-"+==~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~beeeeei~~'==23 ",
-"+==~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~eeeeeeg~)==223 ",
-"+==~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~aeeeeeh~~(==32 ",
-"+==~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~0eeeeee6~[==233 ",
-";==1~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~0eeeeeea5~8==22 ",
-"#==)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~0eeeeeee9~[==23 ",
-";==)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~0eeeeeeee5~8=223 ",
-";==)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~aeeeeeeee9~_==22 ",
-"%==|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~eeeeeeeeee5<^=233",
-"%==|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~geeeeeeeeee9~}==23",
-"%==|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~feeeeeeeeeea7{==22",
-"%:=/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~0eeeeeeeeeeej~/=22",
-"-:='~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~5eeeeeeeeeeee9~]=23",
-"%:=(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~6eeeeeeeeeeee0~'=22",
-"%+==~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~7aeeeeeeeeeeeee~^=22",
-"%+==~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~6eeeeeeeeeeeeec1==22",
-"%#==)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~5aeeeeeeeeeeeee6}==22",
-"%;==)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~0eeeeeeeeeeeeeh7^=22,",
-"%>==_~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~6eeeeeeeeeeeeeeb_==22@",
-"%%==|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~jeeeeeeeeeeeeeej{^==2,%",
-"%%,=/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~jeeeeeeeeeeeeeej~'==22#%",
-"%%:='~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~jeeeeeeeeeeeeea4~]==22$%%",
-"%%$==~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~6eeeeeeeeeeeeec5~]==22,-%-",
-"%%@=={~~~~~~~~~~~~~~~~~~~~~~~~~~~7deeeeeeeeeeeea6~~]==22:-%-;",
-"%%;==)~~~~~~~~~~~~~~~~~~~~~~~~~~gheeeeeeeeeeee95~<'==22:-%-;;",
-"%->==|~~~~~~~~~~~~~~~~~~~~~~~~79eeeeeeeeeeee95~~!^==22*-%&;;;",
-"%%%==]~~~~~~~~~~~~~~~~~~~~~~76aeeeeeeeeeea65~~{'===22+%-&;;;;",
-"%%%:=(~~~~~~~~~~~~~~~~~~~~76aeeeeeeeeeed4~~~{]====2,;--;;;;;;",
-"%-%$==~~~~~~~~~~~~~~~~~~56aeeeeeeeeedj7~~~{]====2,+%-&;;;;;;;",
-"%%%@==)~~~~~~~~~~~~~~~4deeeeeeeeci4~~~~~['====22*>%-&;;;;;;#;",
-"%%%&==_~~~~~~~~~~~~49aeeeeee0i47~~~~~!]^====22*>%-;;;;;;;;;;;",
-"%%%%==]~~~~~~~~7j9aeeee0ifg~~~~~~<[]^=====2,+%%-&;;;;;;;;;;;;",
-"%-%%:=8~~~~74ice006fg7~~~~~~~{!}(======22$#%%-&;;;;;;;#;;;;;;",
-"%%%%+==1~~bggb~~~~~~~~~~<)|/8=======2,*.-%%>&;;;;;;;;;;;;;;;#",
-"%-%%&==_~~~~~~~~~~1)|}'^========22:$;%%%%-;;;;;;;;#;;;;;;;;;;",
-"%%%%%,=(~1)!||/'8===========22:+#-%%%%-&;;;;;;;;;;;;;;;;;;;;;",
-";#+$+:================23,:+.&%%%%%%-&;;;;;;;;;;;;;;;;;;#;;;;;",
-"222222=========22,:*$.;-%%%%%%%%>&&;;;;;;;;;;;;;;;;#;;;;;;;;;"};
diff --git a/perl-install/pixmaps/network.png b/perl-install/pixmaps/network.png
deleted file mode 100644
index aee48fb09..000000000
--- a/perl-install/pixmaps/network.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/pixmaps/partition.png b/perl-install/pixmaps/partition.png
deleted file mode 100644
index 982fb7681..000000000
--- a/perl-install/pixmaps/partition.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/pixmaps/quit.png b/perl-install/pixmaps/quit.png
deleted file mode 100644
index 3aa7db5e0..000000000
--- a/perl-install/pixmaps/quit.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/pixmaps/rootpasswd.png b/perl-install/pixmaps/rootpasswd.png
deleted file mode 100644
index af153abb6..000000000
--- a/perl-install/pixmaps/rootpasswd.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/pixmaps/security.png b/perl-install/pixmaps/security.png
deleted file mode 100644
index af153abb6..000000000
--- a/perl-install/pixmaps/security.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/pixmaps/services.png b/perl-install/pixmaps/services.png
deleted file mode 100644
index 7cd8b06d6..000000000
--- a/perl-install/pixmaps/services.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/pixmaps/summary.png b/perl-install/pixmaps/summary.png
deleted file mode 100644
index 79a1e0f4f..000000000
--- a/perl-install/pixmaps/summary.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/pixmaps/user.png b/perl-install/pixmaps/user.png
deleted file mode 100644
index a9f7d0eb6..000000000
--- a/perl-install/pixmaps/user.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/pixmaps/warning.png b/perl-install/pixmaps/warning.png
deleted file mode 100644
index d6f2306db..000000000
--- a/perl-install/pixmaps/warning.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/pkgs.pm b/perl-install/pkgs.pm
deleted file mode 100644
index 3a86713f4..000000000
--- a/perl-install/pkgs.pm
+++ /dev/null
@@ -1,1206 +0,0 @@
-package pkgs; # $Id$
-
-use diagnostics;
-use strict;
-use vars qw(*LOG %preferred $limitMinTrans %compssListDesc);
-
-use MDK::Common::System;
-use URPM;
-use URPM::Resolve;
-use common;
-use install_any;
-use run_program;
-use detect_devices;
-use log;
-use fs;
-use loopback;
-use c;
-
-
-
-my @preferred = qw(perl-GTK postfix gcc gcc-cpp gcc-c++ proftpd ghostscript-X vim-minimal kernel db1 db2 ispell-en Bastille-Curses-module nautilus libxpm4 zlib1 libncurses5 harddrake);
-@preferred{@preferred} = ();
-
-#- lower bound on the left ( aka 90 means [90-100[ )
-%compssListDesc = (
- 5 => __("must have"),
- 4 => __("important"),
- 3 => __("very nice"),
- 2 => __("nice"),
- 1 => __("maybe"),
-);
-
-#- constant for small transaction.
-$limitMinTrans = 8;
-
-
-#- package to ignore, typically in Application CD. OBSOLETED ?
-my %ignoreBadPkg = (
- 'civctp-demo' => 1,
- 'eus-demo' => 1,
- 'myth2-demo' => 1,
- 'heretic2-demo' => 1,
- 'heroes3-demo' => 1,
- 'rt2-demo' => 1,
- );
-
-sub packageMedium { my ($packages, $p) = @_; $p or die "invalid package from\n" . backtrace();
- foreach (values %{$packages->{mediums}}) {
- $p->id >= $_->{start} && $p->id <= $_->{end} and return $_;
- }
- return }
-
-sub cleanHeaders {
- my ($prefix) = @_;
- rm_rf("$prefix/tmp/headers") if -e "$prefix/tmp/headers";
-}
-
-#- get all headers from an hdlist file.
-sub extractHeaders {
- my ($prefix, $pkgs, $media) = @_;
- my %medium2pkgs;
-
- cleanHeaders($prefix);
-
- foreach (@$pkgs) {
- foreach my $medium (values %$media) {
- $_->id >= $medium->{start} && $_->id <= $medium->{end} or next;
- push @{$medium2pkgs{$medium->{medium}} ||= []}, $_;
- }
- }
-
- foreach (keys %medium2pkgs) {
- my $medium = $media->{$_};
-
- eval {
- require packdrake;
- my $packer = new packdrake("/tmp/$medium->{hdlist}", quiet => 1);
- $packer->extract_archive("$prefix/tmp/headers", map { $_->header_filename } @{$medium2pkgs{$_}});
- };
- }
-
- foreach (@$pkgs) {
- my $f = "$prefix/tmp/headers/". $_->header_filename;
- $_->update_header($f) or log::l("unable to open header file $f"), next;
- }
-}
-
-#- TODO BEFORE TODO
-#- size and correction size functions for packages.
-my $B = 1.20873;
-my $C = 4.98663; #- doesn't take hdlist's into account as getAvailableSpace will do it.
-sub correctSize { $B * $_[0] + $C }
-sub invCorrectSize { ($_[0] - $C) / $B }
-
-sub selectedSize {
- my ($packages) = @_;
- my $size = 0;
- foreach (@{$packages->{depslist}}) {
- $_->flag_selected and $size += $_->size;
- }
- $size;
-}
-sub correctedSelectedSize { correctSize(selectedSize($_[0]) / sqr(1024)) }
-
-sub size2time {
- my ($x, $max) = @_;
- my $A = 7e-07;
- my $limit = min($max * 3 / 4, 9e8);
- if ($x < $limit) {
- $A * $x;
- } else {
- $x -= $limit;
- my $B = 6e-16;
- my $C = 15e-07;
- $B * $x ** 2 + $C * $x + $A * $limit;
- }
-}
-
-
-#- searching and grouping methods.
-#- package is a reference to list that contains
-#- a hash to search by name and
-#- a list to search by id.
-sub packageByName {
- my ($packages, $name) = @_;
- #- search package with given name and compatible with current architecture.
- #- take the best one found (most up-to-date).
- my @packages;
- foreach (keys %{$packages->{provides}{$name} || {}}) {
- my $pkg = $packages->{depslist}[$_];
- $pkg->is_arch_compat or next;
- $pkg->name eq $name or next;
- push @packages, $pkg;
- }
- my $best;
- foreach (@packages) {
- if ($best && $best != $_) {
- $_->compare_pkg($best) > 0 and $best = $_;
- } else {
- $best = $_;
- }
- }
- $best or log::l("unknown package `$name'") && undef;
-}
-sub packageById {
- my ($packages, $id) = @_;
- my $pkg = $packages->{depslist}[$id]; #- do not log as id unsupported are still in depslist.
- $pkg->is_arch_compat && $pkg;
-}
-sub packagesOfMedium {
- my ($packages, $medium) = @_;
- $medium->{start} <= $medium->{end} ? @{$packages->{depslist}}[$medium->{start} .. $medium->{end}] : ();
-}
-sub packagesToInstall {
- my ($packages) = @_;
- my @packages;
- foreach (values %{$packages->{mediums}}) {
- $_->{selected} or next;
- log::l("examining packagesToInstall of medium $_->{descr}");
- push @packages, grep { $_->flag_selected } packagesOfMedium($packages, $_);
- }
- log::l("found " .scalar(@packages). " packages to install");
- @packages;
-}
-
-sub allMediums {
- my ($packages) = @_;
- sort { $a <=> $b } keys %{$packages->{mediums}};
-}
-sub mediumDescr {
- my ($packages, $medium) = @_;
- $packages->{mediums}{$medium}{descr};
-}
-
-sub packageRequest {
- my ($packages, $pkg) = @_;
-
- #- check if the same or better version is installed,
- #- do not select in such case.
- $pkg && ($pkg->flag_upgrade || !$pkg->flag_installed) or return;
-
- #- check for medium selection, if the medium has not been
- #- selected, the package cannot be selected.
- foreach (values %{$packages->{mediums}}) {
- !$_->{selected} && $pkg->id >= $_->{start} && $pkg->id <= $_->{end} and return;
- }
-
- return { $pkg->id => 1 };
-}
-
-sub packageCallbackChoices {
- my ($urpm, $db, $state, $choices) = @_;
- my $prefer;
- foreach (@$choices) {
- exists $preferred{$_->name} and $prefer = $_;
- $_->name =~ /kernel-\d/ and $prefer ||= $_;
- }
- $prefer || $choices->[0]; #- first one (for instance).
-}
-
-#- selection, unselection of package.
-sub selectPackage {
- my ($packages, $pkg, $base, $otherOnly) = @_;
-
- #- select package and dependancies, otherOnly may be a reference
- #- to a hash to indicate package that will strictly be selected
- #- when value is true, may be selected when value is false (this
- #- is only used for unselection, not selection)
- my $state = $packages->{state} ||= {};
- $state->{selected} = {};
- $state->{requested} = packageRequest($packages, $pkg) or return;
- $packages->resolve_requested($packages->{rpmdb}, $state, no_flag_update => $otherOnly, keep_state => $otherOnly,
- callback_choices => \&packageCallbackChoices);
-
- if ($base || $otherOnly) {
- foreach (keys %{$state->{selected}}) {
- my $p = $packages->{depslist}[$_] or next;
- #- if base is activated, propagate base flag to all selection.
- $base and $p->set_flag_base;
- $otherOnly and $otherOnly->{$_} = $state->{selected}{$_};
- }
- }
- 1;
-}
-
-sub unselectPackage($$;$) {
- my ($packages, $pkg, $otherOnly) = @_;
-
- #- base package are not unselectable,
- #- and already unselected package are no more unselectable.
- $pkg->flag_base and return;
- $pkg->flag_selected or return;
-
- #- try to unwind selection (requested or required) by keeping
- #- rpmdb is right place.
- #TODO
- if ($otherOnly) {
- $otherOnly->{$pkg->id} = undef;
- } else {
- $pkg->set_flag_requested(0);
- $pkg->set_flag_required(0);
-
- #- clear state.
- my $state = $packages->{state} ||= {};
- $state->{selected} = { $pkg->id };
- $state->{requested} = {};
- $packages->resolve_requested($packages->{rpmdb}, $state, keep_state => 1);
- }
- 1;
-}
-sub togglePackageSelection($$;$) {
- my ($packages, $pkg, $otherOnly) = @_;
- $pkg->flag_selected ? unselectPackage($packages, $pkg, $otherOnly) : selectPackage($packages, $pkg, 0, $otherOnly);
-}
-sub setPackageSelection($$$) {
- my ($packages, $pkg, $value) = @_;
- $value ? selectPackage($packages, $pkg) : unselectPackage($packages, $pkg);
-}
-
-sub unselectAllPackages($) {
- my ($packages) = @_;
- my %selected;
- foreach (@{$packages->{depslist}}) {
- unless ($_->flag_base || $_->flag_installed && $_->flag_selected) {
- #- deselect all packages except base or packages that need to be upgraded.
- $_->set_flag_requested(0);
- $_->set_flag_required(0);
- $selected{$_->id} = undef;
- }
- }
- if (%selected && %{$packages->{state} || {}}) {
- my $state = $packages->{state} ||= {};
- $state->{selected} = \%selected;
- $state->{requested} = {};
- $packages->resolve_requested($packages->{rpmdb}, $state, keep_state => 1);
- }
-}
-sub unselectAllPackagesIncludingUpgradable($) {
- my ($packages, $removeUpgradeFlag) = @_;
- my %selected;
- foreach (@{$packages->{depslist}}) {
- unless ($_->flag_base) {
- $_->set_flag_requested(0);
- $_->set_flag_required(0);
- $selected{$_->id} = undef;
- }
- }
- if (%selected && %{$packages->{state} || {}}) {
- my $state = $packages->{state} ||= {};
- $state->{selected} = \%selected;
- $state->{requested} = {};
- $packages->resolve_requested($packages->{rpmdb}, $state, keep_state => 1);
- }
-}
-
-sub psUpdateHdlistsDeps {
- my ($prefix, $method, $packages) = @_;
- my ($good_hdlists_deps, $mediums) = (0, 0);
-
- #- check if current configuration is still up-to-date and do not need to be updated.
- foreach (values %{$packages->{mediums}}) {
- my $hdlistf = "$prefix/var/lib/urpmi/hdlist.$_->{fakemedium}.cz" . ($_->{hdlist} =~ /\.cz2/ && "2");
- my $synthesisf = "$prefix/var/lib/urpmi/synthesis.hdlist.$_->{fakemedium}.cz" . ($_->{hdlist} =~ /\.cz2/ && "2");
- -s $hdlistf == $_->{hdlist_size} && -s $synthesisf == $_->{synthesis_hdlist_size} and ++$good_hdlists_deps;
- ++$mediums;
- }
- $good_hdlists_deps > 0 && $good_hdlists_deps == $mediums and return; #- nothing to do.
-
- #- at this point, this means partition has problably be reformatted and hdlists should be retrieved.
- install_any::useMedium($install_any::boot_medium);
-
- my $listf = install_any::getFile('Mandrake/base/hdlists') or die "no hdlists found";
-
- #- WARNING: this function should be kept in sync with functions
- #- psUsingHdlists and psUsingHdlist.
- #- it purpose it to update hdlist files on system to install.
-
- #- parse hdlist.list file.
- my $medium = 1;
- foreach (<$listf>) {
- chomp;
- s/\s*#.*$//;
- /^\s*$/ and next;
- m/^\s*(hdlist\S*\.cz2?)\s+(\S+)\s*(.*)$/ or die "invalid hdlist description \"$_\" in hdlists file";
- my ($hdlist, $rpmsdir, $descr) = ($1, $2, $3);
-
- #- copy hdlist file directly to $prefix/var/lib/urpmi, this will be used
- #- for getting header of package during installation or after by urpmi.
- my $fakemedium = "$descr ($method$medium)";
- my $newf = "$prefix/var/lib/urpmi/hdlist.$fakemedium.cz" . ($hdlist =~ /\.cz2/ && "2");
- -e $newf and do { unlink $newf or die "cannot remove $newf: $!"; };
- install_any::getAndSaveFile("Mandrake/base/$hdlist", $newf) or die "no $hdlist found";
- symlinkf $newf, "/tmp/$hdlist";
- install_any::getAndSaveFile("Mandrake/base/synthesis.$hdlist",
- "$prefix/var/lib/urpmi/synthesis.hdlist.$fakemedium.cz" . ($hdlist =~ /\.cz2/ && "2"));
- ++$medium;
- }
-
- #- this is necessary for urpmi.
- install_any::getAndSaveFile("Mandrake/base/$_", "$prefix/var/lib/urpmi/$_") foreach qw(rpmsrate);
-}
-
-sub psUsingHdlists {
- my ($prefix, $method) = @_;
- my $listf = install_any::getFile('Mandrake/base/hdlists') or die "no hdlists found";
- my $packages = new URPM;
-
- #- add additional fields used by DrakX.
- @{$packages}{qw(count mediums)} = (0, {});
-
- #- parse hdlists file.
- my $medium = 1;
- foreach (<$listf>) {
- chomp;
- s/\s*#.*$//;
- /^\s*$/ and next;
- m/^\s*(hdlist\S*\.cz2?)\s+(\S+)\s*(.*)$/ or die "invalid hdlist description \"$_\" in hdlists file";
-
- #- make sure the first medium is always selected!
- #- by default select all image.
- psUsingHdlist($prefix, $method, $packages, $1, $medium, $2, $3, 1);
-
- ++$medium;
- }
-
- log::l("psUsingHdlists read " . scalar @{$packages->{depslist}} .
- " headers on " . scalar keys(%{$packages->{mediums}}) . " hdlists");
-
- $packages;
-}
-
-sub psUsingHdlist {
- my ($prefix, $method, $packages, $hdlist, $medium, $rpmsdir, $descr, $selected, $fhdlist) = @_;
- my $fakemedium = "$descr ($method$medium)";
- my ($relocated, $ignored) = (0, 0);
- log::l("trying to read $hdlist for medium $medium");
-
- #- if the medium already exist, use it.
- $packages->{mediums}{$medium} and return $packages->{mediums}{$medium};
-
- my $m = $packages->{mediums}{$medium} = { hdlist => $hdlist,
- method => $method,
- medium => $medium,
- rpmsdir => $rpmsdir, #- where is RPMS directory.
- descr => $descr,
- fakemedium => $fakemedium,
-# min => $packages->{count},
-# max => -1, #- will be updated after reading current hdlist.
- selected => $selected, #- default value is only CD1, it is really the minimal.
- };
-
- #- copy hdlist file directly to $prefix/var/lib/urpmi, this will be used
- #- for getting header of package during installation or after by urpmi.
- my $newf = "$prefix/var/lib/urpmi/hdlist.$fakemedium.cz" . ($hdlist =~ /\.cz2/ && "2");
- -e $newf and do { unlink $newf or die "cannot remove $newf: $!"; };
- install_any::getAndSaveFile($fhdlist || "Mandrake/base/$hdlist", $newf) or die "no $hdlist found";
- $m->{hdlist_size} = -s $newf; #- keep track of size for post-check.
- symlinkf $newf, "/tmp/$hdlist";
-
- #- if $fhdlist is defined, this is preferable not to try to find the associated synthesis.
- my $newsf = "$prefix/var/lib/urpmi/synthesis.hdlist.$fakemedium.cz" . ($hdlist =~ /\.cz2/ && "2");
- unless ($fhdlist) {
- #- copy existing synthesis file too.
- install_any::getAndSaveFile("Mandrake/base/synthesis.$hdlist", $newsf);
- $m->{synthesis_hdlist_size} = -s $newsf; #- keep track of size for post-check.
- -s $newsf > 0 or unlink $newsf;
- }
-
- #- avoid using more than one medium if Cd is not ejectable.
- #- but keep all medium here so that urpmi has the whole set.
- $method eq 'cdrom' && $medium > 1 && !common::usingRamdisk() and return;
-
- #- parse synthesis (if available) of directly hdlist (with packing).
- if (-s $newsf) {
- ($m->{start}, $m->{end}) = $packages->parse_synthesis($newsf);
- } elsif (-s $newf) {
- ($m->{start}, $m->{end}) = $packages->parse_hdlist($newf, 1);
- } else {
- die "fatal: no hdlist nor synthesis to read for $fakemedium";
- }
- $m->{start} > $m->{end} and die "fatal: nothing read in hdlist or synthesis for $fakemedium";
- log::l("read " . ($m->{end} - $m->{start} + 1) . " packages in $hdlist");
- $m;
-}
-
-#OBSOLETED TODO
-sub getOtherDeps($$) {
- return; #TODO
-}
-
-#OBSOLETED TODO
-sub getDeps {
- return; #TODO
-}
-
-#OBSOLETED TODO
-sub getProvides($) {
- return; #TODO
-}
-
-sub read_rpmsrate {
- my ($packages, $f) = @_;
- my $line_nb = 0;
- my $fatal_error;
- my (@l);
- while (<$f>) {
- $line_nb++;
- /\t/ and die "tabulations not allowed at line $line_nb\n";
- s/#.*//; # comments
-
- my ($indent, $data) = /(\s*)(.*)/;
- next if !$data; # skip empty lines
-
- @l = grep { $_->[0] < length $indent } @l;
-
- my @m = @l ? @{$l[$#l][1]} : ();
- my ($t, $flag, @l2);
- while ($data =~
- /^((
- [1-5]
- |
- (?: (?: !\s*)? [0-9A-Z_]+(?:".*?")?)
- (?: \s*\|\|\s* (?: !\s*)? [0-9A-Z_]+(?:".*?")?)*
- )
- (?:\s+|$)
- )(.*)/x) { #@")) {
- ($t, $flag, $data) = ($1,$2,$3);
- while ($flag =~ s,^\s*(("[^"]*"|[^"\s]*)*)\s+,$1,) {}
- my $ok = 0;
- $flag = join('||', grep {
- if (my ($inv, $p) = /^(!)?HW"(.*)"/) {
- ($inv xor detect_devices::matching_desc($p)) and $ok = 1;
- 0;
- } else {
- 1;
- }
- } split '\|\|', $flag);
- push @m, $ok ? 'TRUE' : $flag || 'FALSE';
- push @l2, [ length $indent, [ @m ] ];
- $indent .= $t;
- }
- if ($data) {
- # has packages on same line
- my ($rate) = grep { /^\d$/ } @m or die sprintf qq(missing rate for "%s" at line %d (flags are %s)\n), $data, $line_nb, join('&&', @m);
- foreach (split ' ', $data) {
- if ($packages) {
- my $p = packageByName($packages, $_) or next;
- my @m2 = map { if_(/locales-(.*)/, qq(LOCALES"$1")) } $p->requires_nosense;
- my @m3 = ((grep { !/^\d$/ } @m), @m2);
- if (member('INSTALL', @m3)) {
- member('NOCOPY', @m3) or push @{$packages->{needToCopy} ||= []}, $_;
- next; #- don't need to put INSTALL flag for a package.
- }
- if ($p->rate) {
- my @m4 = $p->rflags;
- if (@m3 > 1 || @m4 > 1) {
- log::l("can't handle complicate flags for packages appearing twice ($_)");
- $fatal_error++;
- }
- log::l("package $_ appearing twice with different rates ($rate != ".$p->rate.")") if $rate != $p->rate;
- $p->set_rate($rate);
- $p->set_rflags("$m3[0]||$m4[0]");
- } else {
- $p->set_rate($rate);
- $p->set_rflags(@m3);
- }
- } else {
- print "$_ = ", join(" && ", @m), "\n";
- }
- }
- push @l, @l2;
- } else {
- push @l, [ $l2[0][0], $l2[$#l2][1] ];
- }
- }
- $fatal_error and die "$fatal_error fatal errors in rpmsrate";
-}
-
-sub readCompssUsers {
- my ($meta_class) = @_;
- my (%compssUsers, @sorted, $l);
-
- my $file = 'Mandrake/base/compssUsers';
- my $f = $meta_class && install_any::getFile("$file.$meta_class") || install_any::getFile($file) or die "can't find $file";
- local $_;
- while (<$f>) {
- /^\s*$/ || /^#/ and next;
- s/#.*//;
-
- if (/^(\S.*)/) {
- my $verbatim = $_;
- my ($icon, $descr, $path);
- /^(.*?)\s*\[path=(.*?)\](.*)/ and $_ = "$1$3", $path = $2;
- /^(.*?)\s*\[icon=(.*?)\](.*)/ and $_ = "$1$3", $icon = $2;
- /^(.*?)\s*\[descr=(.*?)\](.*)/ and $_ = "$1$3", $descr = $2;
- $compssUsers{"$path|$_"} = { label => $_, verbatim => $verbatim, path => $path, icons => $icon, descr => $descr, flags => $l=[] };
- push @sorted, "$path|$_";
- } elsif (/^\s+(.*?)\s*$/) {
- push @$l, $1;
- }
- }
- \%compssUsers, \@sorted;
-}
-sub saveCompssUsers {
- my ($prefix, $packages, $compssUsers, $sorted) = @_;
- my $flat;
- foreach (@$sorted) {
- my @fl = @{$compssUsers->{$_}{flags}};
- my %fl; $fl{$_} = 1 foreach @fl;
- $flat .= $compssUsers->{$_}{verbatim};
- foreach my $p (@{$packages->{depslist}}) {
- my @flags = $p->rflags;
- if ($p->rate && grep { grep { !/^!/ && $fl{$_} } split('\|\|') } @flags) {
- $flat .= sprintf "\t%d %s\n", $p->rate, $p->name;
- }
- }
- }
- output "$prefix/var/lib/urpmi/compssUsers.flat", $flat;
-}
-
-sub setSelectedFromCompssList {
- my ($packages, $compssUsersChoice, $min_level, $max_size) = @_;
- $compssUsersChoice->{TRUE} = 1; #- ensure TRUE is set
- my $nb = selectedSize($packages);
- foreach my $p (sort { $b->rate <=> $a->rate } @{$packages->{depslist}}) {
- my @flags = $p->rflags;
- next if
- !$p->rate || $p->rate < $min_level ||
- grep { !grep { /^!(.*)/ ? !$compssUsersChoice->{$1} : $compssUsersChoice->{$_} } split('\|\|') } @flags;
-
- #- determine the packages that will be selected when
- #- selecting $p. the packages are not selected.
- my $state = $packages->{state} ||= {};
- $state->{selected} = {};
- $state->{requested} = packageRequest($packages, $p) || {};
-
- $packages->resolve_requested($packages->{rpmdb}, $state, no_flag_update => 1,
- callback_choices => \&packageCallbackChoices);
-
- #- this enable an incremental total size.
- my $old_nb = $nb;
- foreach (keys %{$state->{selected}}) {
- my $p = $packages->{depslist}[$_] or next;
- $nb += $p->size;
- }
- if ($max_size && $nb > $max_size) {
- $nb = $old_nb;
- $min_level = $p->rate;
- $state->{requested} = {}; #- ensure no newer package will be selected.
- $packages->resolve_requested($packages->{rpmdb}, $state, keep_state => 1); #- FIXME INCOMPLETE TODO
- last;
- }
-
- #- do the effective selection (was not done due to no_flag_update option used.
- foreach (keys %{$state->{selected}}) {
- my $pkg = $packages->{depslist}[$_];
- $state->{selected}{$_} ? $pkg->set_flag_requested : $pkg->set_flag_required;
- }
- }
- log::l("setSelectedFromCompssList: reached size ", formatXiB($nb), ", up to indice $min_level (less than ", formatXiB($max_size), ")");
- log::l("setSelectedFromCompssList: ", join(" ", sort map { $_->name } grep { $_->flag_selected } @{$packages->{depslist}}));
- $min_level;
-}
-
-#- usefull to know the size it would take for a given min_level/max_size
-#- just saves the selected packages, call setSelectedFromCompssList and restores the selected packages
-sub saveSelected {
- my ($packages) = @_;
- my $state = delete $packages->{state};
- my @l = @{$packages->{depslist}};
- my @flags = map { ($_->flag_requested && 1) + ($_->flag_required && 2) + ($_->flag_upgrade && 4) } @l;
- [ $packages, $state, \@l, \@flags ];
-}
-sub restoreSelected {
- my ($packages, $state, $l, $flags) = @{$_[0]};
- $packages->{state} = $state;
- mapn { my ($pkg, $flag) = @_;
- $pkg->set_flag_requested($flag & 1);
- $pkg->set_flag_required($flag & 2);
- $pkg->set_flag_upgrade($flag & 4);
- } $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 or_ify {
- my ($first, @other) = @_;
- my @l = split('\|\|', $first);
- foreach (@other) {
- @l = map {
- my $n = $_;
- map { "$_&&$n" } @l;
- } split('\|\|');
- }
- #- HACK, remove LOCALES & CHARSET, too costly
- grep { !/LOCALES|CHARSET/ } @l;
- }
- sub or_clean {
- my (@l) = map { [ sort split('&&') ] } @_ or return '';
- 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);
-
- foreach my $p (@{$packages->{depslist}}) {
- my @flags = $p->rflags;
- next if !$p->rate || $p->rate < $min_level;
-
- my $flags = join("\t", @flags = or_ify(@flags));
- $group{$p->name} = ($memo{$flags} ||= or_clean(@flags));
-
- #- determine the packages that will be selected when selecting $p.
- #- make a fast selection (but potentially erroneous).
- my %newSelection;
- unless ($p->flag_available) {
- my @l2 = ($p->id);
- my $id;
-
- while (defined($id = shift @l2)) {
- exists $newSelection{$id} and next;
- $newSelection{$id} = undef;
-
- my $pkg = $packages->{depslist}[$id];
- foreach ($pkg->requires_nosense) {
- my ($candidate_id, $prefer_id);
- foreach (keys %{$packages->{provides}{$_} || {}}) {
- my $ppkg = $packages->{depslist}[$_] or next;
- if ($ppkg->flag_available) {
- $candidate_id = undef;
- last;
- } else {
- exists $preferred{$ppkg->name} and $prefer_id = $_;
- $ppkg->name =~ /kernel-\d/ and $prefer_id ||= $_;
- $candidate_id = $_;
- }
- }
- push @l2, $prefer_id || $candidate_id;
- }
- }
- }
-
- foreach (keys %newSelection) {
- my $p = $packages->{depslist}[$_] or next;
- my $s = $group{$p->name} || do {
- join("\t", or_ify($p->rflags));
- };
- next if length($s) > 80; # HACK, truncated too complicated expressions, too costly
- my $m = "$flags\t$s";
- $group{$p->name} = ($memo{$m} ||= or_clean(@flags, split("\t", $s)));
- }
- }
- my (%sizes, %pkgs);
- while (my ($k, $v) = each %group) {
- my $pkg = packageByName($packages, $k) or next;
- push @{$pkgs{$v}}, $k;
- $sizes{$v} += $pkg->size;
- }
- log::l(sprintf "%s %dMB %s", $_, $sizes{$_} / sqr(1024), join(',', @{$pkgs{$_}})) foreach keys %sizes;
- \%sizes, \%pkgs;
-}
-
-
-sub openInstallLog {
- my ($prefix) = @_;
-
- my $f = "$prefix/root/drakx/install.log";
- open(LOG, ">> $f") ? log::l("opened $f") : log::l("Failed to open $f. No install log will be kept.");
- *LOG or *LOG = log::F() or *LOG = *STDERR;
- CORE::select((CORE::select(LOG), $| = 1)[0]);
- c::rpmErrorSetCallback(fileno LOG);
-#- c::rpmSetVeryVerbose();
-}
-
-sub closeInstallLog {
- log::l("closing install.log file");
- close LOG;
-}
-
-sub rpmDbOpen {
- my ($prefix, $rebuild_needed) = @_;
-
- if ($rebuild_needed) {
- 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);
-
- URPM::DB::rebuild($prefix) or log::l("rebuilding of rpm database failed: ". c::rpmErrorString()), c::_exit(2);
-
- c::_exit(0);
- }
- }
-
- my $db;
- if ($db = URPM::DB::open($prefix)) {
- log::l("opened rpm database for examining existing packages");
- } else {
- log::l("unable to open rpm database, using empty rpm db emulation");
- $db = new URPM;
- }
-
- $db;
-}
-
-sub cleanOldRpmDb {
- my ($prefix) = @_;
- my $failed;
-
- foreach (qw(Basenames Conflictname Group Name Packages Providename Requirename Triggername)) {
- -s "$prefix/var/lib/rpm/$_" or $failed = 'failed';
- }
- #- rebuilding has been successfull, so remove old rpm database if any.
- #- once we have checked the rpm4 db file are present and not null, in case
- #- of doubt, avoid removing them...
- unless ($failed) {
- log::l("rebuilding rpm database completed successfully");
- foreach (qw(conflictsindex.rpm fileindex.rpm groupindex.rpm nameindex.rpm packages.rpm
- providesindex.rpm requiredby.rpm triggerindex.rpm)) {
- -e "$prefix/var/lib/rpm/$_" or next;
- log::l("removing old rpm file $_");
- rm_rf("$prefix/var/lib/rpm/$_");
- }
- }
-}
-
-sub selectPackagesAlreadyInstalled {
- my ($packages, $prefix) = @_;
-
- log::l("computing installed flags only");
- $packages->compute_installed_flags($packages->{rpmdb});
-}
-
-sub selectPackagesToUpgrade {
- my ($packages, $prefix, $base, $toRemove, $toSave) = @_;
-
- log::l("selecting packages to upgrade");
-
- my $state = $packages->{state} ||= {};
- $state->{selected} = {};
- $state->{requested} = {};
-
- $packages->resolve_packages_to_upgrade($packages->{rpmdb}, $state, requested => undef);
- $packages->resolve_requested($packages->{rpmdb}, $state, callback_choices => \&packageCallbackChoices);
-}
-
-sub allowedToUpgrade { $_[0] !~ /^(kernel|kernel22|kernel2.2|kernel-secure|kernel-smp|kernel-linus|kernel-linus2.2|hackkernel|kernel-enterprise)$/ }
-
-sub installTransactionClosure {
- my ($packages, $id2pkg) = @_;
- my ($id, %closure, @l, $medium, $min_id, $max_id);
-
- @l = sort { $a <=> $b } keys %$id2pkg;
-
- #- search first usable medium (sorted by medium ordering).
- foreach (sort { $a->{start} <=> $b->{start} } values %{$packages->{mediums}}) {
- unless ($_->{selected}) {
- #- this medium is not selected, but we have to make sure no package are left
- #- in $id2pkg.
- foreach ($_->{start} .. $_->{end}) {
- delete $id2pkg->{$_};
- }
- #- anyway, examine the next one.
- next;
- }
- 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 $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.
- ($min_id, $max_id) = ($medium->{start}, $medium->{end});
-
- #- it is sure at least one package will be installed according to medium chosen.
- install_any::useMedium($medium->{medium});
- if ($medium->{method} eq 'cdrom') {
- my $pkg = $packages->{depslist}[$l[0]];
-
- #- force changeCD callback to be called from main process.
- install_any::getFile($pkg->filename, $medium->{descr});
- #- close opened handle above.
- install_any::getFile('XXX');
- }
-
- while (defined($id = shift @l)) {
- my @l2 = ($id);
-
- while (defined($id = shift @l2)) {
- exists $closure{$id} and next;
- $id >= $min_id && $id <= $max_id or next;
- $closure{$id} = undef;
-
- my $pkg = $packages->{depslist}[$id];
- foreach ($pkg->requires_nosense) {
- foreach (keys %{$packages->{provides}{$_} || {}}) {
- if ($id2pkg->{$_}) {
- push @l2, $_;
- last;
- }
- }
- }
- }
-
- keys %closure >= $limitMinTrans and last;
- }
-
- map { delete $id2pkg->{$_} } grep { $id2pkg->{$_} } keys %closure;
-}
-
-sub installCallback {
-# my $msg = shift;
-# log::l($msg .": ". join(',', @_));
-}
-
-sub install($$$;$$) {
- my ($prefix, $isUpgrade, $toInstall, $packages) = @_;
- my %packages;
-
- return if $::g_auto_install || !scalar(@$toInstall);
-
- #- for root loopback'ed /boot
- my $loop_boot = loopback::prepare_boot($prefix);
-
- #- first stage to extract some important informations
- #- about the packages selected. this is used to select
- #- one or many transaction.
- my ($total, $nb);
- foreach my $pkg (@$toInstall) {
- $packages{$pkg->id} = $pkg;
- $nb++;
- $total += to_int($pkg->size); #- do not correct for upgrade!
- }
-
- log::l("pkgs::install $prefix");
- log::l("pkgs::install the following: ", join(" ", map { $_->name } values %packages));
- eval { fs::mount("/proc", "$prefix/proc", "proc", 0) } unless -e "$prefix/proc/cpuinfo";
-
- openInstallLog($prefix);
-
- #- 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,...).
- installCallback($packages, 'user', undef, 'install', $nb, $total);
-
- do {
- my @transToInstall = installTransactionClosure($packages, \%packages);
- $nb = values %packages;
-
- #- added to exit typically after last media unselected.
- if ($nb == 0 && scalar(@transToInstall) == 0) {
- cleanHeaders($prefix);
-
- loopback::save_boot($loop_boot);
- return;
- }
-
- #- extract headers for parent as they are used by callback.
- extractHeaders($prefix, \@transToInstall, $packages->{mediums});
-
- my ($retry_pkg, $retry_count);
- while ($retry_pkg || @transToInstall) {
- local (*INPUT, *OUTPUT); pipe INPUT, OUTPUT;
- if (my $pid = fork()) {
- close OUTPUT;
- my $error_msg = '';
- local $_;
- while (<INPUT>) {
- if (/^die:(.*)/) {
- $error_msg = $1;
- last;
- } else {
- chomp;
- my @params = split ":";
- if ($params[0] eq 'close') {
- my $pkg = $packages->{depslist}[$params[1]];
- $pkg->set_flag_installed(1);
- $pkg->set_flag_upgrade(0);
- } else {
- installCallback($packages, @params);
- }
- }
- }
- $error_msg and $error_msg .= join('', <INPUT>);
- waitpid $pid, 0;
- close INPUT;
- $error_msg and die $error_msg;
- } else {
- #- child process will run each transaction.
- $SIG{SEGV} = sub { log::l("segmentation fault on transactions"); c::_exit(0) };
- my @prev_pids = grep { /^\d+$/ } all("/proc");
- my $db;
- eval {
- close INPUT;
- select((select(OUTPUT), $| = 1)[0]);
- my $db = URPM::DB::open($prefix, 1) or die "error opening RPM database: ", c::rpmErrorString();
- my $trans = $db->create_transaction($prefix);
- if ($retry_pkg) {
- log::l("opened rpm database for retry transaction of 1 package only");
- $trans->add($retry_pkg, $isUpgrade && allowedToUpgrade($retry_pkg->name));
- } else {
- log::l("opened rpm database for transaction of ". scalar @transToInstall .
- " new packages, still $nb after that to do");
- $trans->add($_, $isUpgrade && allowedToUpgrade($_->name))
- foreach @transToInstall;
- }
-
- $trans->order or die "error ordering package list: " . c::rpmErrorString();
- $trans->set_script_fd(fileno LOG);
-
- log::l("rpm transactions start");
- my @probs = $trans->run($packages, force => 1, nosize => 1, callback_open => sub {
- my ($data, $type, $id) = @_;
- my $pkg = defined $id && $data->{depslist}[$id];
- my $f = $pkg && $pkg->filename;
- print LOG "$f\n";
- #my $fd = install_any::getFile($f, $media->{$p->[$MEDIUM]}{descr});
- my $fd = install_any::getFile($f);
- $fd ? fileno $fd : -1;
- }, callback_close => sub {
- my ($data, $type, $id) = @_;
- my $pkg = defined $id && $data->{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 and print OUTPUT "close:$id\n";
- }, callback_inst => sub {
- my ($data, $type, $id, $subtype, $amount, $total) = @_;
- print OUTPUT "$type:$id:$subtype:$amount:$total\n";
- });
- log::l("transactions done, now trying to close still opened fd");
- install_any::getFile('XXX'); #- close still opened fd.
-
- @probs and die "installation of rpms failed:\n ", join("\n ", @probs);
- }; $@ and print OUTPUT "die:$@\n";
- close OUTPUT;
-
- #- now search for child process which may be locking the cdrom, making it unable to be ejected.
- my @allpids = grep { /^\d+$/ } all("/proc");
- my %ppids;
- foreach (@allpids) {
- cat_("/proc/$_/status") =~ /^PPid:\s+(\d+)/m;
- push @{$ppids{$1 || 1}}, $_;
- }
- my @killpid = difference2(\@allpids, [ @prev_pids,
- difference2([ $$, hashtree2list(getppid, \%ppids) ],
- [ hashtree2list($$, \%ppids) ]) ]);
-
- if (@killpid) {
- foreach (@killpid) {
- my $s = "$_: " . join(' ', split("\0", cat_("/proc/$_/cmdline")));
- log::l("ERROR: DrakX should not have to clean the packages shit. Killing $s");
- }
- kill 15, @killpid;
- sleep 2;
- kill 9, @killpid;
- }
-
- c::_exit(0);
- }
-
- #- if we are using a retry mode, this means we have to split the transaction with only
- #- one package for each real transaction.
- unless ($retry_pkg) {
- my @badPackages;
- foreach (@transToInstall) {
- if (!$_->flag_installed && packageMedium($packages, $_)->{selected} && !exists($ignoreBadPkg{$_->name})) {
- push @badPackages, $_;
- log::l("bad package ".$_->fullname);
- } else {
- $_->free_header;
- }
- }
- @transToInstall = @badPackages;
- #- if we are in retry mode, we have to fetch only one package at a time.
- $retry_pkg = shift @transToInstall;
- $retry_count = 3;
- } else {
- if (!$retry_pkg->flag_installed && packageMedium($packages, $retry_pkg)->{selected} && !exists($ignoreBadPkg{$retry_pkg->name})) {
- if ($retry_count) {
- log::l("retrying installing package ".$retry_pkg->fullname." alone in a transaction");
- --$retry_count;
- } else {
- log::l("bad package ". $retry_pkg->fullname ." unable to be installed");
- $retry_pkg->set_flag_requested(0);
- $retry_pkg->set_flag_required(0);
- cdie ("error installing package list: ". $retry_pkg->fullname);
- }
- }
- if ($retry_pkg->flag_installed || !$retry_pkg->flag_selected) {
- $retry_pkg->free_header;
- $retry_pkg = shift @transToInstall;
- $retry_count = 3;
- }
- }
- }
- cleanHeaders($prefix);
- } while ($nb > 0 && !$pkgs::cancel_install);
-
- closeInstallLog();
-
- cleanHeaders($prefix);
-
- loopback::save_boot($loop_boot);
-}
-
-sub remove($$) {
- my ($prefix, $toRemove) = @_;
-
- return if $::g_auto_install || !@{$toRemove || []};
-
- my $db = URPM::DB::open($prefix, 1) or die "error opening RPM database: ", c::rpmErrorString();
- my $trans = $db->create_transaction($prefix);
-
- foreach my $p (@$toRemove) {
- #- stuff remove all packages that matches $p, not a problem since $p has name-version-release format.
- $trans->remove($p) if allowedToUpgrade($p);
- }
-
- eval { fs::mount("/proc", "$prefix/proc", "proc", 0) } unless -e "$prefix/proc/cpuinfo";
-
- my $callbackOpen = sub { log::l("trying to open file from $_[0] which should not happen"); };
- my $callbackClose = sub { log::l("trying to close file from $_[0] which should not happen"); };
-
- #- we are not checking depends since it should come when
- #- upgrading a system. although we may remove some functionalities ?
-
- #- 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,...).
- installCallback($db, 'user', undef, 'remove', scalar @$toRemove);
-
- if (my @probs = $trans->run(undef, force => 1)) {
- die "removing of old rpms failed:\n ", join("\n ", @probs);
- }
-
- #- keep in mind removing of these packages by cleaning $toRemove.
- @{$toRemove || []} = ();
-}
-
-sub selected_leaves {
- my ($packages) = @_;
- my @leaves;
-
- foreach (@{$packages->{depslist}}) {
- $_->flag_requested && !$_->flag_base and push @leaves, $_->name;
- }
- \@leaves;
-}
-
-
-sub naughtyServers {
- my ($packages) = @_;
-
- my @old_81 = qw(
-freeswan
-);
- my @old_82 = qw(
-vnc-server
-postgresql-server
-mon
-);
-
- my @new_80 = qw(
-jabber
-FreeWnn
-MySQL
-am-utils
-apache
-boa
-cfengine
-cups
-drakxtools-http
-finger-server
-imap
-leafnode
-lpr
-ntp
-openssh-server
-pidentd
-postfix
-proftpd
-rwall
-rwho
-squid
-webmin
-wu-ftpd
-ypbind
-); # nfs-utils-clients portmap
- # X server
-
- my @new_81 = qw(
-apache-mod_perl
-ftp-server-krb5
-mcserv
-samba
-telnet-server-krb5
-ypserv
-);
-
- my @new_82 = qw(
-LPRng
-bind
-httpd-naat
-ibod
-inn
-netatalk
-nfs-utils
-rusers-server
-samba-swat
-tftp-server
-ucd-snmp
-);
-
- my @naughtyServers = (@new_80, @new_81, @new_82);
-
- grep {
- my $p = packageByName($packages, $_);
- $p && $p->flag_selected;
- } @naughtyServers;
-}
-
-sub hashtree2list {
- my ($e, $h) = @_;
- my @l;
- my @todo = $e;
- while (@todo) {
- my $e = shift @todo;
- push @l, $e;
- push @todo, @{$h->{$e}};
- }
- @l;
-}
-
-1;
diff --git a/perl-install/printer.pm b/perl-install/printer.pm
deleted file mode 100644
index 60ac7036c..000000000
--- a/perl-install/printer.pm
+++ /dev/null
@@ -1,2266 +0,0 @@
-package printer;
-
-# $Id$
-
-#use diagnostics;
-#use strict;
-
-
-use common;
-use run_program;
-
-#-if we are in an DrakX config
-my $prefix = "";
-
-#-location of the printer database in an installed system
-my $PRINTER_DB_FILE = "/usr/share/foomatic/db/compiled/overview.xml";
-#-configuration directory of Foomatic
-my $FOOMATICCONFDIR = "/etc/foomatic";
-#-location of the file containing the default spooler's name
-my $FOOMATIC_DEFAULT_SPOOLER = "$FOOMATICCONFDIR/defaultspooler";
-
-%spooler = (
- _("CUPS - Common Unix Printing System") => "cups",
- _("LPRng - LPR New Generation") => "lprng",
- _("LPD - Line Printer Daemon") => "lpd",
- _("PDQ - Print, Don't Queue") => "pdq"
-# _("PDQ - Marcia, click here!") => "pdq"
-);
-%spooler_inv = reverse %spooler;
-
-%shortspooler = (
- _("CUPS") => "cups",
- _("LPRng") => "lprng",
- _("LPD") => "lpd",
- _("PDQ") => "pdq"
-);
-%shortspooler_inv = reverse %shortspooler;
-
-%lprcommand = (
- "cups" => "lpr-cups",
- "lprng" => "lpr-lpd",
- "lpd" => "lpr-lpd",
- "pdq" => "lpr-pdq"
-);
-
-%printer_type = (
- _("Local printer") => "LOCAL",
- _("Remote printer") => "REMOTE",
- _("Printer on remote CUPS server") => "CUPS",
- _("Printer on remote lpd server") => "LPD",
- _("Network printer (TCP/Socket)") => "SOCKET",
- _("Printer on SMB/Windows 95/98/NT server") => "SMB",
- _("Printer on NetWare server") => "NCP",
- _("Enter a printer device URI") => "URI",
- _("Pipe job into a command") => "POSTPIPE"
-);
-%printer_type_inv = reverse %printer_type;
-
-#------------------------------------------------------------------------------
-
-sub set_prefix($) { $prefix = $_[0]; }
-
-sub default_printer_type($) { "LOCAL" }
-
-sub spooler {
- # LPD is taken from the menu for the moment because the classic LPD is
- # highly unsecure. Depending on how the GNU lpr development is going on
- # LPD support can be reactivated by uncommenting the line which is
- # commented out now.
-
- #return @spooler_inv{qw(cups lpd lprng pdq)};
- return @spooler_inv{qw(cups lprng pdq)};
-}
-
-sub printer_type($) {
- my ($printer) = @_;
- for ($printer->{SPOOLER}) {
- /cups/ && return @printer_type_inv{qw(LOCAL),
- qw(LPD SOCKET SMB),
- $::expert ? qw(URI) : ()};
- /lpd/ && return @printer_type_inv{qw(LOCAL LPD SOCKET SMB NCP),
- $::expert ? qw(POSTPIPE URI) : ()};
- /lprng/ && return @printer_type_inv{qw(LOCAL LPD SOCKET SMB NCP),
- $::expert ? qw(POSTPIPE URI) : ()};
- /pdq/ && return @printer_type_inv{qw(LOCAL LPD SOCKET),
- $::expert ? qw(URI) : ()};
- }
-}
-
-sub get_default_spooler () {
- if (-f "$prefix$FOOMATIC_DEFAULT_SPOOLER") {
- open DEFSPOOL, "< $prefix$FOOMATIC_DEFAULT_SPOOLER";
- my $spool = <DEFSPOOL>;
- chomp $spool;
- close DEFSPOOL;
- return $spool if ($spool =~ /cups|lpd|lprng|pdq/);
- }
-}
-
-sub set_default_spooler ($) {
- my ($printer) = @_;
- # Make Foomatic config directory if it does not exist yet
- mkdir "$prefix$FOOMATICCONFDIR" if (!(-d "$prefix$FOOMATICCONFDIR"));
- # Mark the default driver in a file
- open DEFSPOOL, "> $prefix$FOOMATIC_DEFAULT_SPOOLER" ||
- die "Cannot create $prefix$FOOMATIC_DEFAULT_SPOOLER!";
- print DEFSPOOL $printer->{SPOOLER};
- close DEFSPOOL;
-}
-
-sub set_permissions {
- my ($file, $perms, $owner, $group) = @_;
- # We only need to set the permissions during installation to be able to
- # print test pages. After installation the devfsd daemon does the business
- # automatically.
- if (!$::isInstall) {return 1;}
- if ($owner && $group) {
- run_program::rooted($prefix, "/bin/chown", "$owner.$group", $file)
- || die "Could not start chown!";
- } elsif ($owner) {
- run_program::rooted($prefix, "/bin/chown", $owner, $file)
- || die "Could not start chown!";
- } elsif ($group) {
- run_program::rooted($prefix, "/bin/chgrp", $group, $file)
- || die "Could not start chgrp!";
- }
- run_program::rooted($prefix, "/bin/chmod", $perms, $file)
- || die "Could not start chmod!";
-}
-
-sub restart_service ($) {
- my ($service) = @_;
- # Exit silently if the service is not installed
- return 1 if (!(-x "$prefix/etc/rc.d/init.d/$service"));
- run_program::rooted($prefix, "/etc/rc.d/init.d/$service", "restart");
- if (($? >> 8) != 0) {
- return 0;
- } else {
- # CUPS needs some time to come up.
- wait_for_cups() if ($service eq "cups");
- return 1;
- }
-}
-
-sub start_service ($) {
- my ($service) = @_;
- # Exit silently if the service is not installed
- return 1 if (!(-x "$prefix/etc/rc.d/init.d/$service"));
- run_program::rooted($prefix, "/etc/rc.d/init.d/$service", "start");
- if (($? >> 8) != 0) {
- return 0;
- } else {
- # CUPS needs some time to come up.
- wait_for_cups() if ($service eq "cups");
- return 1;
- }
-}
-
-sub start_not_running_service ($) {
- my ($service) = @_;
- # Exit silently if the service is not installed
- return 1 if (!(-x "$prefix/etc/rc.d/init.d/$service"));
- run_program::rooted($prefix, "/etc/rc.d/init.d/$service", "status");
- # The exit status is not zero when the service is not running
- if (($? >> 8) != 0) {
- run_program::rooted($prefix, "/etc/rc.d/init.d/$service", "start");
- if (($? >> 8) != 0) {
- return 0;
- } else {
- # CUPS needs some time to come up.
- wait_for_cups() if ($service eq "cups");
- return 1;
- }
- } else {
- return 1;
- }
-}
-
-sub stop_service ($) {
- my ($service) = @_;
- # Exit silently if the service is not installed
- return 1 if (!(-x "$prefix/etc/rc.d/init.d/$service"));
- run_program::rooted($prefix, "/etc/rc.d/init.d/$service", "stop");
- if (($? >> 8) != 0) {return 0;} else {return 1;}
-}
-
-sub service_starts_on_boot ($) {
- my ($service) = @_;
- local *F;
- open F, ($::testing ? "$prefix" : "chroot $prefix/ ") .
- "/bin/sh -c \"export LC_ALL=C; /sbin/chkconfig --list $service 2>&1\" |" ||
- return 0;
- while (my $line = <F>) {
- chomp $line;
- if ($line =~ /:on/) {
- close F;
- return 1;
- }
- }
- close F;
- return 0;
-}
-
-sub start_service_on_boot ($) {
- my ($service) = @_;
- run_program::rooted($prefix, "/sbin/chkconfig", "--add", $service)
- || return 0;
- return 1;
-}
-
-sub SIGHUP_daemon {
- my ($service) = @_;
- if ($service eq "cupsd") {$service = "cups"};
- # PDQ has no daemon, exit.
- if ($service eq "pdq") {return 1};
- # CUPS needs auto-configuration
- run_program::rooted($prefix, "/usr/sbin/correctcupsconfig") if ($service eq "cups");
- # Name of the daemon
- my %daemons = (
- "lpr" => "lpd",
- "lpd" => "lpd",
- "lprng" => "lpd",
- "cups" => "cupsd",
- "devfs" => "devfsd",
- );
- my $daemon = $deamons{$service};
- $daemon = $service if (! defined $daemon);
-# if ($service eq "cups") {
-# # The current CUPS (1.1.13) dies on SIGHUP, do the normal restart.
-# restart_service($service);
-# # CUPS needs some time to come up.
-# wait_for_cups();
-# } else {
-
- # Send the SIGHUP
- run_program::rooted($prefix, "/usr/bin/killall", "-HUP", $daemon);
- if ($service eq "cups") {
- # CUPS needs some time to come up.
- wait_for_cups();
- }
-
- return 1;
-}
-
-sub wait_for_cups {
- # CUPS needs some time to come up. Wait up to 30 seconds, checking
- # whether CUPS is ready.
- my $cupsready = 0;
- my $i;
- for ($i = 0; $i < 30; $i++) {
- run_program::rooted($prefix, "/usr/bin/lpstat", "-r");
- if (($? >> 8) != 0) {
- # CUPS is not ready, continue
- sleep 1;
- } else {
- # CUPS is ready, quit
- $cupsready = 1;
- last;
- }
- }
- return $cupsready;
-}
-
-sub assure_device_is_available_for_cups {
- # Checks whether CUPS already "knows" a certain port, it does not
- # know it usually when the appropriate kernel module is loaded
- # after CUPS was started or when the printer is turned on after
- # CUPS was started. CUPS 1.1.12 and newer refuses to set up queues
- # on devices which it does not know, it points these queues to
- # file:/dev/null instead. Restart CUPS if necessary to assure that
- # CUPS knows the device.
- my ($device) = @_;
- local *F;
- open F, ($::testing ? "$prefix" : "chroot $prefix/ ") .
- "/bin/sh -c \"export LC_ALL=C; /usr/sbin/lpinfo -v\" |" ||
- die "Could not run \"lpinfo\"!";
- while (my $line = <F>) {
- if ($line =~ /$device/) { # Found a line containing the device name,
- # so CUPS knows it.
- close F;
- return 1;
- }
- }
- close F;
- return SIGHUP_daemon("cups");
-}
-
-sub network_running {
- # If the network is not running return 0, otherwise 1.
- local *F;
- open F, ($::testing ? "$prefix" : "chroot $prefix/ ") .
- "/bin/sh -c \"export LC_ALL=C; /sbin/ifconfig\" |" ||
- die "Could not run \"ifconfig\"!";
- while (my $line = <F>) {
- if (($line !~ /^lo\s+/) && # The loopback device can have been
- # started by the spooler's startup script
- ($line =~ /^(\S+)\s+/)) { # In this line starts an entry for a
- # running network
- close F;
- return 1;
- }
- }
- close F;
- return 0;
-}
-
-sub get_security_level {
- # Get security level by reading /etc/profile (only after install).
- # This is a preliminary solution until msec puts the security level
- # definition into the correct file.
- $file = "/etc/profile";
- if (-f $file) {
- local *F;
- open F, "< $file" || return 0;
- while (my $line = <F>) {
- if ($line =~ /^\s*SECURE_LEVEL=([0-5])\s*$/) {
- close F;
- return $1;
- }
- }
- close F;
- }
- return 0;
-}
-
-
-sub spooler_in_security_level {
- # Was the current spooler already added to the current security level?
- my ($spooler, $level) = @_;
- my $sp;
- $sp = (($spooler eq "lpr") || ($spooler eq "lprng")) ? "lpd" : $spooler;
- $file = "$prefix/etc/security/msec/server.$level";
- if (-f $file) {
- local *F;
- open F, "< $file" || return 0;
- while (my $line = <F>) {
- if ($line =~ /^\s*$sp\s*$/) {
- close F;
- return 1;
- }
- }
- close F;
- }
- return 0;
-}
-
-sub add_spooler_to_security_level {
- my ($spooler, $level) = @_;
- my $sp;
- $sp = (($spooler eq "lpr") || ($spooler eq "lprng")) ? "lpd" : $spooler;
- $file = "$prefix/etc/security/msec/server.$level";
- if (-f $file) {
- local *F;
- open F, ">> $file" || return 0;
- print F "$sp\n";
- close F;
- }
- return 1;
-}
-
-sub files_exist {
- my @files = @_;
- for my $file (@files) {
- return 0 if (! -f "$prefix$file"),
- }
- return 1;
-}
-
-sub set_alternative {
- my ($command, $executable) = @_;
- local *F;
- # Read the list of executables for the given command to find the number
- # of the desired executable
- open F, ($::testing ? "$prefix" : "chroot $prefix/ ") .
- "/bin/sh -c \"export LC_ALL=C; /bin/echo | update-alternatives --config $command \" |" ||
- die "Could not run \"update-alternatives\"!";
- my $choice = 0;
- while (my $line = <F>) {
- chomp $line;
- if ($line =~ m/^[\* ][\+ ]\s*([0-9]+)\s+(\S+)\s*$/) { # list entry?
- if ($2 eq $executable) {
- $choice = $1;
- last;
- }
- }
- }
- close F;
- # If the executable was found, assign the command to it
- if ($choice > 0) {
- system(($::testing ? "$prefix" : "chroot $prefix/ ") .
- "/bin/sh -c \"/bin/echo $choice | update-alternatives --config $command > /dev/null 2>&1\"");
- }
- return 1;
-}
-
-sub pdq_panic_button {
- my $setting = $_[0];
- if (-f "/usr/sbin/pdqpanicbutton") {
- run_program::rooted($prefix, "/usr/sbin/pdqpanicbutton", "--$setting")
- || die "Could not $setting PDQ panic buttons!";
- }
-}
-
-sub copy_printer_params($$) {
- my ($from, $to) = @_;
- map { $to->{$_} = $from->{$_} } grep { $_ ne 'configured' } keys %$from;
- #- avoid cycles-----------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-}
-
-sub getinfo($) {
- my ($prefix) = @_;
- my $printer = {};
- my @QUEUES;
-
- set_prefix($prefix);
-
- # Initialize $printer data structure
- resetinfo($printer);
-
- return $printer;
-}
-
-#------------------------------------------------------------------------------
-sub resetinfo($) {
- my ($printer) = @_;
- $printer->{QUEUE} = "";
- $printer->{OLD_QUEUE} = "";
- $printer->{OLD_CHOICE} = "";
- $printer->{ARGS} = "";
- $printer->{DBENTRY} = "";
- $printer->{DEFAULT} = "";
- $printer->{currentqueue} = {};
- # -check which printing system was used previously and load the information
- # -about its queues
- read_configured_queues($printer);
-}
-
-sub read_configured_queues($) {
- my ($printer) = @_;
- my @QUEUES;
- # Get the default spooler choice from the config file
- $printer->{SPOOLER} ||= get_default_spooler();
- if (!$printer->{SPOOLER}) {
- #- Find the first spooler where there are queues
- my $spooler;
- for $spooler (qw(cups pdq lprng lpd)) {
- #- poll queue info
- local *F;
- open F, ($::testing ? "$prefix" : "chroot $prefix/ ") .
- "foomatic-configure -P -q -s $spooler |" ||
- die "Could not run foomatic-configure";
- eval (join('',(<F>)));
- close F;
- #- Have we found queues?
- if ($#QUEUES != -1) {
- $printer->{SPOOLER} = $spooler;
- last;
- }
- }
- } else {
- #- Poll the queues of the current default spooler
- local *F;
- open F, ($::testing ? "$prefix" : "chroot $prefix/ ") .
- "foomatic-configure -P -q -s $printer->{SPOOLER} |" ||
- die "Could not run foomatic-configure";
- eval (join('',(<F>)));
- close F;
- }
- $printer->{configured} = {};
- my $i;
- my $N = $#QUEUES + 1;
- for ($i = 0; $i < $N; $i++) {
- $printer->{configured}{$QUEUES[$i]->{queuedata}{queue}} =
- $QUEUES[$i];
- if ((!$QUEUES[$i]->{make}) || (!$QUEUES[$i]->{model})) {
- if ($printer->{SPOOLER} eq "cups") {
- $printer->{OLD_QUEUE} = $QUEUES[$i]->{queuedata}{queue};
- my $descr = get_descr_from_ppd($printer);
- $descr =~ m/^([^\|]*)\|([^\|]*)\|.*$/;
- $printer->{configured}{$QUEUES[$i]->{queuedata}{queue}}{queuedata}{make} ||= $1;
- $printer->{configured}{$QUEUES[$i]->{queuedata}{queue}}{queuedata}{model} ||= $2;
- # Read out which PPD file was originally used to set up this
- # queue
- local *F;
- if (open F, "< $prefix/etc/cups/ppd/$QUEUES[$i]->{queuedata}{queue}.ppd") {
- while (my $line = <F>) {
- if ($line =~ /^\*%MDKMODELCHOICE:(.+)$/) {
- $printer->{configured}{$QUEUES[$i]->{queuedata}{queue}}{queuedata}{ppd} = $1;
- }
- }
- close F;
- }
- # Mark that we have a CUPS queue but do not know the name
- # the PPD file in /usr/share/cups/model
- if (!$printer->{configured}{$QUEUES[$i]->{queuedata}{queue}}{queuedata}{ppd}) {
- $printer->{configured}{$QUEUES[$i]->{queuedata}{queue}}{queuedata}{ppd} = '1';
- }
- $printer->{configured}{$QUEUES[$i]->{queuedata}{queue}}{queuedata}{driver} = 'CUPS/PPD';
- $printer->{OLD_QUEUE} = "";
- # Read out the printer's options
- $printer->{configured}{$QUEUES[$i]->{queuedata}{queue}}{args} = read_cups_options($QUEUES[$i]->{queuedata}{queue});
- }
- $printer->{configured}{$QUEUES[$i]->{queuedata}{queue}}{queuedata}{make} ||= "";
- $printer->{configured}{$QUEUES[$i]->{queuedata}{queue}}{queuedata}{model} ||= _("Unknown model");
- } else {
- $printer->{configured}{$QUEUES[$i]->{queuedata}{queue}}{queuedata}{make} = $QUEUES[$i]->{make};
- $printer->{configured}{$QUEUES[$i]->{queuedata}{queue}}{queuedata}{model} = $QUEUES[$i]->{model};
- }
- # Fill in "options" field
- if (my $args = $printer->{configured}{$QUEUES[$i]->{queuedata}{queue}}{args}) {
- my $arg;
- my @options;
- for $arg (@{$args}) {
- push(@options, "-o");
- my $optstr = $arg->{name} . "=" . $arg->{default};
- push(@options, $optstr);
- }
- @{$printer->{configured}{$QUEUES[$i]->{queuedata}{queue}}{queuedata}{options}} = @options;
- }
- # Construct an entry line for tree view in main window of
- # printerdrake
- make_menuentry($printer, $QUEUES[$i]->{queuedata}{queue});
- }
-}
-
-sub make_menuentry {
- my ($printer, $queue) = @_;
- my $spooler = $shortspooler_inv{$printer->{SPOOLER}};
- my $connect = $printer->{configured}{$queue}{queuedata}{connect};
- my $localremote;
- if (($connect =~ m!^file:!) || ($connect =~ m!^ptal:/mlc:!)) {
- $localremote = _("Local Printers");
- } else {
- $localremote = _("Remote Printers");
- }
- my $make = $printer->{configured}{$queue}{queuedata}{make};
- my $model = $printer->{configured}{$queue}{queuedata}{model};
- my $connection;
- if ($connect =~ m!^file:/dev/lp(\d+)$!) {
- my $number = $1;
- $connection = _(" on parallel port \#%s", $number);
- } elsif ($connect =~ m!^file:/dev/usb/lp(\d+)$!) {
- my $number = $1;
- $connection = _(", USB printer \#%s", $number);
- } elsif ($connect =~ m!^ptal:/(.+)$!) {
- my $ptaldevice = $1;
- if ($ptaldevice =~ /^mlc:par:(\d+)$/) {
- my $number = $1;
- $connection = _(", multi-function device on parallel port \#%s",
- $number);
- } elsif ($ptaldevice =~ /^mlc:usb:/) {
- $connection = _(", multi-function device on USB");
- } elsif ($ptaldevice =~ /^hpjd:/) {
- $connection = _(", multi-function device on HP JetDirect");
- } else {
- $connection = _(", multi-function device");
- }
- } elsif ($connect =~ m!^file:(.+)$!) {
- $connection = _(", printing to %s", $1);
- } elsif ($connect =~ m!^lpd://([^/]+)/([^/]+)/?$!) {
- $connection = _("on LPD server \"%s\", printer \"%s\"", $2, $1);
- } elsif ($connect =~ m!^socket://([^/:]+):([^/:]+)/?$!) {
- $connection = _(", TCP/IP host \"%s\", port %s", $1, $2);
- } elsif (($connect =~ m!^smb://([^/\@]+)/([^/\@]+)/?$!) ||
- ($connect =~ m!^smb://.*/([^/\@]+)/([^/\@]+)/?$!) ||
- ($connect =~ m!^smb://.*\@([^/\@]+)/([^/\@]+)/?$!)) {
- $connection = _("on Windows server \"%s\", share \"%s\"", $1, $2);
- } elsif (($connect =~ m!^ncp://([^/\@]+)/([^/\@]+)/?$!) ||
- ($connect =~ m!^ncp://.*/([^/\@]+)/([^/\@]+)/?$!) ||
- ($connect =~ m!^ncp://.*\@([^/\@]+)/([^/\@]+)/?$!)) {
- $connection = _("on Novell server \"%s\", printer \"%s\"", $1, $2);
- } elsif ($connect =~ m!^postpipe:(.+)$!) {
- $connection = _(", using command %s", $1);
- } else {
- $connection = ($::expert ? ", URI: $connect" : "");
- }
- my $sep = "!";
- $printer->{configured}{$queue}{queuedata}{menuentry} =
- ($::expert ? "$spooler$sep" : "") .
- "$localremote$sep$queue: $make $model$connection";
-}
-
-sub read_printer_db(;$) {
-
- my $spooler = $_[0];
-
- my $dbpath = $prefix . $PRINTER_DB_FILE;
-
- local $_; #- use of while (<...
-
- local *DBPATH; #- don't have to do close ... and don't modify globals at least
- # Generate the Foomatic printer/driver overview, read it from the
- # appropriate file when it is already generated
- if (!(-f $dbpath)) {
- open DBPATH, ($::testing ? "$prefix" : "chroot $prefix/ ") .
- "foomatic-configure -O -q |" ||
- die "Could not run foomatic-configure";
- } else {
- open DBPATH, $dbpath or die "An error occurred on $dbpath : $!";
- }
-
- my $entry = {};
- my $inentry = 0;
- my $indrivers = 0;
- my $inautodetect = 0;
- while (<DBPATH>) {
- chomp;
- if ($inentry) {
- # We are inside a printer entry
- if ($indrivers) {
- # We are inside the drivers block of a printers entry
- if (m!^\s*</drivers>\s*$!) {
- # End of drivers block
- $indrivers = 0;
- } elsif (m!^\s*<driver>(.+)</driver>\s*$!) {
- push (@{$entry->{drivers}}, $1);
- }
- } elsif ($inautodetect) {
- # We are inside the autodetect block of a printers entry
- # All entries inside this block will be ignored
- if (m!^.*</autodetect>\s*$!) {
- # End of autodetect block
- $inautodetect = 0;
- }
- } else {
- if (m!^\s*</printer>\s*$!) {
- # entry completed
- $inentry = 0;
- # Expert mode:
- # Make one database entry per driver with the entry name
- # manufacturer|model|driver
- if ($::expert) {
- my $driver;
- for $driver (@{$entry->{drivers}}) {
- my $driverstr;
- if ($driver eq "Postscript") {
- $driverstr = "PostScript";
- } else {
- $driverstr = "GhostScript + $driver";
- }
- if ($driver eq $entry->{defaultdriver}) {
- $driverstr .= " (recommended)";
- }
- $entry->{ENTRY} = "$entry->{make}|$entry->{model}|$driverstr";
- $entry->{driver} = $driver;
- # Duplicate contents of $entry because it is multiply entered to the database
- map { $thedb{$entry->{ENTRY}}->{$_} = $entry->{$_} } keys %$entry;
- }
- } else {
- # Recommended mode
- # Make one entry per printer, with the recommended
- # driver (manufacturerer|model)
- $entry->{ENTRY} = "$entry->{make}|$entry->{model}";
- if ($entry->{defaultdriver}) {
- $entry->{driver} = $entry->{defaultdriver};
- map { $thedb{$entry->{ENTRY}}->{$_} = $entry->{$_} } keys %$entry;
- }
- }
- $entry = {};
- } elsif (m!^\s*<id>\s*([^\s<>]+)\s*</id>\s*$!) {
- # Foomatic printer ID
- $entry->{printer} = $1;
- } elsif (m!^\s*<make>(.+)</make>\s*$!) {
- # Printer manufacturer
- $entry->{make} = uc($1);
- } elsif (m!^\s*<model>(.+)</model>\s*$!) {
- # Printer model
- $entry->{model} = $1;
- } elsif (m!<driver>(.+)</driver>!) {
- # Printer default driver
- $entry->{defaultdriver} = $1;
- } elsif (m!^\s*<drivers>\s*$!) {
- # Drivers block
- $indrivers = 1;
- @{$entry->{drivers}} = ();
- } elsif (m!^\s*<autodetect>\s*$!) {
- # Autodetect block
- $inautodetect = 1;
- }
- }
- } else {
- if (m!^\s*<printer>\s*$!) {
- # new entry
- $inentry = 1;
- }
- }
- }
- close DBPATH;
-
- # Add raw queue
- if ($spooler ne "pdq") {
- $entry->{ENTRY} = _("Raw printer (No driver)");
- $entry->{driver} = "raw";
- $entry->{make} = "";
- $entry->{model} = _("Unknown model");
- map { $thedb{$entry->{ENTRY}}->{$_} = $entry->{$_} } keys %$entry;
- }
-
- #- Load CUPS driver database if CUPS is used as spooler
- if (($spooler) && ($spooler eq "cups") && ($::expert)) {
-
- #&$install('cups-drivers') unless $::testing;
- #my $w;
- #if ($in) {
- # $w = $in->wait_message(_("CUPS starting"),
- # _("Reading CUPS drivers database..."));
- #}
- poll_ppd_base();
- }
-
- @entries_db_short = sort keys %printer::thedb;
- #%descr_to_db = map { $printer::thedb{$_}{DESCR}, $_ } @entries_db_short;
- #%descr_to_help = map { $printer::thedb{$_}{DESCR}, $printer::thedb{$_}{ABOUT} } @entries_db_short;
- #@entry_db_description = keys %descr_to_db;
- #db_to_descr = reverse %descr_to_db;
-
-}
-
-sub read_foomatic_options ($) {
- my ($printer) = @_;
- # Generate the option data for the chosen printer/driver combo
- my $COMBODATA;
- local *F;
- open F, ($::testing ? "$prefix" : "chroot $prefix/ ") .
- "foomatic-configure -P -q -p $printer->{currentqueue}{printer}" .
- " -d $printer->{currentqueue}{driver}" .
- ($printer->{OLD_QUEUE} ?
- " -s $printer->{SPOOLER} -n $printer->{OLD_QUEUE}" : "") .
- ($printer->{SPECIAL_OPTIONS} ?
- " $printer->{SPECIAL_OPTIONS}" : "")
- . " |" ||
- die "Could not run foomatic-configure";
- eval (join('',(<F>)));
- close F;
- # Return the arguments field
- return $COMBODATA->{args};
-}
-
-sub read_cups_options ($) {
- my ($queue_or_file) = @_;
- # Generate the option data from a CUPS PPD file/a CUPS queue
- # Use the same Perl data structure as Foomatic uses to be able to
- # reuse the dialog
- local *F;
- if ($queue_or_file =~ /.ppd.gz$/) { # compressed PPD file
- open F, ($::testing ? "$prefix" : "chroot $prefix/ ") .
- "gunzip -cd $queue_or_file | lphelp - |" || return 0;
- } else { # PPD file not compressed or queue
- open F, ($::testing ? "$prefix" : "chroot $prefix/ ") .
- "lphelp $queue_or_file |" || return 0;
- }
- my $i;
- my $j;
- my @args = ();
- my $line;
- my $inoption = 0;
- my $inchoices = 0;
-# my $innumerical = 0;
- while ($line = <F>) {
- chomp $line;
- if ($inoption) {
- if ($inchoices) {
- if ($line =~ /^\s*(\S+)\s+(\S.*)$/) {
- push(@{$args[$i]{vals}}, {});
- $j = $#{$args[$i]{vals}};
- $args[$i]{vals}[$j]{value} = $1;
- my $comment = $2;
- # Did we find the default setting?
- if ($comment =~ /default\)\s*$/) {
- $args[$i]{default} = $args[$i]{vals}[$j]{value};
- $comment =~ s/,\s*default\)\s*$//;
- } else {
- $comment =~ s/\)\s*$//;
- }
- # Remove opening paranthese
- $comment =~ s/^\(//;
- # Remove page size info
- $comment =~ s/,\s*size:\s*[0-9\.]+x[0-9\.]+in$//;
- $args[$i]{vals}[$j]{comment} = $comment;
- } elsif (($line =~ /^\s*$/) && ($#{$args[$i]{vals}} > -1)) {
- $inchoices = 0;
- $inoption = 0;
- }
-# } elsif ($innumerical == 1) {
-# if ($line =~ /^\s*The default value is ([0-9\.]+)\s*$/) {
-# $args[$i]{default} = $1;
-# $innumerical = 0;
-# $inoption = 0;
-# }
- } else {
- if ($line =~ /^\s*<choice>/) {
- $inchoices = 1;
-# } elsif ($line =~ /^\s*<value> must be a(.*) number in the range ([0-9\.]+)\.\.([0-9\.]+)\s*$/) {
-# delete($args[$i]{vals});
-# $args[$i]{min} = $2;
-# $args[$i]{max} = $3;
-# my $type = $1;
-# if ($type =~ /integer/) {
-# $args[$i]{type} = 'int';
-# } else {
-# $args[$i]{type} = 'float';
-# }
-# $innumerical = 1;
- }
- }
- } else {
- if ($line =~ /^\s*([^\s:][^:]*):\s+-o\s+([^\s=]+)=<choice>\s*$/) {
-# if ($line =~ /^\s*([^\s:][^:]*):\s+-o\s+([^\s=]+)=<.*>\s*$/) {
- $inoption = 1;
- push(@args, {});
- $i = $#args;
- $args[$i]{comment} = $1;
- $args[$i]{name} = $2;
- $args[$i]{type} = 'enum';
- @{$args[$i]{vals}} = ();
- }
- }
- }
- close F;
- # Return the arguments field
- return \@args;
-}
-
-#------------------------------------------------------------------------------
-
-sub read_cups_printer_list {
- my ($printer) = $_[0];
- # This function reads in a list of all printers which the local CUPS
- # daemon currently knows, including remote ones.
- local *F;
- open F, ($::testing ? "$prefix" : "chroot $prefix/ ") .
- "lpstat -v |" || return ();
- my @printerlist = ();
- my $line;
- while ($line = <F>) {
- if ($line =~ m/^\s*device\s+for\s+([^:\s]+):\s*(\S+)\s*$/) {
- my $queuename = $1;
- my $comment = "";
- if (($2 =~ m!^ipp://([^/:]+)[:/]!) &&
- (!$printer->{configured}{$queuename})) {
- $comment = _("(on %s)", $1);
- } else {
- $comment = _("(on this machine)");
- }
- push (@printerlist, "$queuename $comment");
- }
- }
- close F;
- return @printerlist;
-}
-
-sub get_cups_remote_queues {
- my ($printer) = $_[0];
- # This function reads in a list of all remote printers which the local
- # CUPS daemon knows due to broadcasting of remote servers or
- # "BrowsePoll" entries in the local /etc/cups/cupsd.conf/
- local *F;
- open F, ($::testing ? "$prefix" : "chroot $prefix/ ") .
- "lpstat -v |" || return ();
- my @printerlist = ();
- my $line;
- while ($line = <F>) {
- if ($line =~ m/^\s*device\s+for\s+([^:\s]+):\s*(\S+)\s*$/) {
- my $queuename = $1;
- my $comment = "";
- if (($2 =~ m!^ipp://([^/:]+)[:/]!) &&
- (!$printer->{configured}{$queuename})) {
- $comment = _("On CUPS server \"%s\"", $1);
- my $sep = "!";
- push (@printerlist,
- ($::expert ? _("CUPS") . $sep : "") .
- _("Remote Printers") . "$sep$queuename: $comment"
- . ($queuename eq $printer->{DEFAULT} ?
- _(" (Default)") : ("")));
- }
- }
- }
- close F;
- return @printerlist;
-}
-
-sub set_cups_autoconf {
- my $autoconf = $_[0];
-
- # Read config file
- local *F;
- my $file = "$prefix/etc/sysconfig/printing";
- if (!(-f $file)) {
- @file_content = ();
- } else {
- open F, "< $file" or die "Cannot open $file!";
- @file_content = <F>;
- close F;
- }
-
- # Remove all valid "CUPS_CONFIG" lines
- (/^\s*CUPS_CONFIG/ and $_="") foreach @file_content;
-
- # Insert the new "Printcap" line
- if ($autoconf) {
- push @file_content, "CUPS_CONFIG=automatic\n";
- } else {
- push @file_content, "CUPS_CONFIG=manual\n";
- }
-
- # Write back modified file
- open F, "> $file" or die "Cannot open $file!";
- print F @file_content;
- close F;
-
- # Restart CUPS
- restart_service("cups");
-
- return 1;
-}
-
-sub get_cups_autoconf {
- local *F;
- open F, ("< $prefix/etc/sysconfig/printing") || return 1;
- my $line;
- while ($line = <F>) {
- if ($line =~ m!^[^\#]*CUPS_CONFIG=manual!) {
- return 0;
- }
- }
- return 1;
-}
-
-sub set_default_printer {
- my ($printer) = $_[0];
- run_program::rooted($prefix, "foomatic-configure",
- "-D", "-q", "-s", $printer->{SPOOLER},
- "-n", $printer->{DEFAULT}) || return 0;
- return 1;
-}
-
-sub get_default_printer {
- my $printer = $_[0];
- local *F;
- open F, ($::testing ? "$prefix" : "chroot $prefix/ ") .
- "foomatic-configure -Q -q -s $printer->{SPOOLER} |" || return undef;
- my $line;
- while ($line = <F>) {
- if ($line =~ m!^\s*<defaultqueue>(.*)</defaultqueue>\s*$!) {
- return $1;
- }
- }
- return undef;
-}
-
-sub read_cupsd_conf {
- my @cupsd_conf;
- local *F;
-
- open F, "$prefix/etc/cups/cupsd.conf";
- @cupsd_conf = <F>;
- close F;
-
- @cupsd_conf;
-}
-sub write_cupsd_conf {
- my (@cupsd_conf) = @_;
- local *F;
-
- open F, ">$prefix/etc/cups/cupsd.conf";
- print F @cupsd_conf;
- close F;
-
- #- restart cups after updating configuration.
- restart_service("cups");
-}
-
-sub read_printers_conf {
- my ($printer) = @_;
- my $current = undef;
-
- #- read /etc/cups/printers.conf file.
- #- according to this code, we are now using the following keys for each queues.
- #- DeviceURI > lpd://printer6/lp
- #- Info > Info Text
- #- Location > Location Text
- #- State > Idle|Stopped
- #- Accepting > Yes|No
- local *PRINTERS; open PRINTERS, "$prefix/etc/cups/printers.conf" or return;
- local $_;
- while (<PRINTERS>) {
- chomp;
- /^\s*#/ and next;
- if (/^\s*<(?:DefaultPrinter|Printer)\s+([^>]*)>/) { $current = { mode => 'cups', QUEUE => $1, } }
- elsif (/\s*<\/Printer>/) { $current->{QUEUE} && $current->{DeviceURI} or next; #- minimal check of synthax.
- add2hash($printer->{configured}{$current->{QUEUE}} ||= {}, $current); $current = undef }
- elsif (/\s*(\S*)\s+(.*)/) { $current->{$1} = $2 }
- }
- close PRINTERS;
-
- #- assume this printing system.
- $printer->{SPOOLER} ||= 'cups';
-}
-
-sub get_direct_uri {
- #- get the local printer to access via a Device URI.
- my @direct_uri;
- local *F; open F, ($::testing ? "$prefix" : "chroot $prefix/ ") . "/usr/sbin/lpinfo -v |";
- local $_;
- while (<F>) {
- /^(direct|usb|serial)\s+(\S*)/ and push @direct_uri, $2;
- }
- close F;
- @direct_uri;
-}
-
-sub get_descr_from_ppd {
- my ($printer) = @_;
- my %ppd;
-
- #- if there is no ppd, this means this is a raw queue.
- local *F; open F, "$prefix/etc/cups/ppd/$printer->{OLD_QUEUE}.ppd" or return "|" . _("Unknown model");
- # "OTHERS|Generic PostScript printer|PostScript (en)";
- local $_;
- while (<F>) {
- /^\*([^\s:]*)\s*:\s*\"([^\"]*)\"/ and do { $ppd{$1} = $2; next };
- /^\*([^\s:]*)\s*:\s*([^\s\"]*)/ and do { $ppd{$1} = $2; next };
- }
- close F;
-
- my $descr = ($ppd{NickName} || $ppd{ShortNickName} || $ppd{ModelName});
- # Apply the beautifying rules of poll_ppd_base
- if ($descr =~ /Foomatic \+ Postscript/) {
- $descr =~ s/Foomatic \+ Postscript/PostScript/;
- } elsif ($descr =~ /Foomatic/) {
- $descr =~ s/Foomatic/GhostScript/;
- } elsif ($descr =~ /CUPS\+GIMP-print/) {
- $descr =~ s/CUPS\+GIMP-print/CUPS \+ GIMP-Print/;
- } elsif ($descr =~ /Series CUPS/) {
- $descr =~ s/Series CUPS/Series, CUPS/;
- } elsif (!(uc($descr) =~ /POSTSCRIPT/)) {
- $descr .= ", PostScript";
- }
-
- # Split the $descr into model and driver
- my $model;
- my $driver;
- if ($descr =~ /^([^,]+), (.*)$/) {
- $model = $1;
- $driver = $2;
- } else {
- # Some PPDs do not have the ", <driver>" part.
- $model = $descr;
- $driver = "PostScript";
- }
- my $make = $ppd{Manufacturer};
- my $lang = $ppd{LanguageVersion};
-
- # Remove manufacturer's name from the beginning of the model name
- if (($make) && ($model =~ /^$make[\s\-]+([^\s\-].*)$/)) {
- $model = $1;
- }
-
- # Put out the resulting description string
- uc($make) . '|' . $model . '|' . $driver .
- ($lang && (" (" . lc(substr($lang, 0, 2)) . ")"));
-}
-
-sub poll_ppd_base {
- #- before trying to poll the ppd database available to cups, we have to make sure
- #- the file /etc/cups/ppds.dat is no more modified.
- #- if cups continue to modify it (because it reads the ppd files available), the
- #- poll_ppd_base program simply cores :-)
- run_program::rooted($prefix, "ifconfig lo 127.0.0.1"); #- else cups will not be happy! and ifup lo don't run ?
- start_not_running_service("cups");
- my $driversthere = scalar(keys %thedb);
- foreach (1..60) {
- local *PPDS; open PPDS, ($::testing ? "$prefix" : "chroot $prefix/ ") . "/usr/bin/poll_ppd_base -a |";
- local $_;
- while (<PPDS>) {
- chomp;
- my ($ppd, $mf, $descr, $lang) = split /\|/;
- if ($ppd eq "raw") {next;}
- my ($model, $driver);
- if ($descr) {
- if ($descr =~ /^([^,]+), (.*)$/) {
- $model = $1;
- $driver = $2;
- } else {
- # Some PPDs do not have the ", <driver>" part.
- $model = $descr;
- $driver = "PostScript";
- }
- }
- # Rename Canon "BJC XXXX" models into "BJC-XXXX" so that the models
- # do not appear twice
- if ($mf eq "CANON") {
- $model =~ s/BJC\s+/BJC-/;
- }
- $ppd && $mf && $descr and do {
- my $key = "$mf|$model|$driver" . ($lang && " ($lang)");
- $thedb{$key}{ppd} = $ppd;
- $thedb{$key}{driver} = $driver;
- $thedb{$key}{make} = $mf;
- $thedb{$key}{model} = $model;
- }
- }
- close PPDS;
- scalar(keys %thedb) - $driversthere > 5 and last;
- #- we have to try again running the program, wait here a little before.
- sleep 1;
- }
-
- #scalar(keys %descr_to_ppd) > 5 or die "unable to connect to cups server";
-
-}
-
-
-
-#-******************************************************************************
-#- write functions
-#-******************************************************************************
-
-sub configure_queue($) {
- my ($printer) = @_;
- local *F;
-
- if ($printer->{currentqueue}{foomatic}) {
- #- Create the queue with "foomatic-configure", in case of queue
- #- renaming copy the old queue
- run_program::rooted($prefix, "foomatic-configure", "-q",
- "-s", $printer->{currentqueue}{spooler},
- "-n", $printer->{currentqueue}{queue},
- (($printer->{currentqueue}{queue} ne
- $printer->{OLD_QUEUE}) &&
- ($printer->{configured}{$printer->{OLD_QUEUE}}) ?
- ("-C", $printer->{OLD_QUEUE}) : ()),
- "-c", $printer->{currentqueue}{connect},
- "-p", $printer->{currentqueue}{printer},
- "-d", $printer->{currentqueue}{driver},
- "-N", $printer->{currentqueue}{desc},
- "-L", $printer->{currentqueue}{loc},
- @{$printer->{currentqueue}{options}}
- ) or die "foomatic-configure failed";
- } elsif ($printer->{currentqueue}{ppd}) {
- #- If the chosen driver is a PPD file from /usr/share/cups/model,
- #- we use lpadmin to set up the queue
- run_program::rooted($prefix, "lpadmin",
- "-p", $printer->{currentqueue}{queue},
-# $printer->{State} eq 'Idle' &&
-# $printer->{Accepting} eq 'Yes' ? ("-E") : (),
- "-E",
- "-v", $printer->{currentqueue}{connect},
- ($printer->{currentqueue}{ppd} ne '1') ?
- ("-m", $printer->{currentqueue}{ppd}) : (),
- $printer->{currentqueue}{desc} ?
- ("-D", $printer->{currentqueue}{desc}) : (),
- $printer->{currentqueue}{loc} ?
- ("-L", $printer->{currentqueue}{loc}) : (),
- @{$printer->{currentqueue}{options}}
- ) or die "lpadmin failed";
- # Add a comment line containing the path of the used PPD file to the
- # end of the PPD file
- if ($printer->{currentqueue}{ppd} ne '1') {
- open F, ">> $prefix/etc/cups/ppd/$printer->{currentqueue}{queue}.ppd";
- print F "*%MDKMODELCHOICE:$printer->{currentqueue}{ppd}\n";
- close F;
- }
- # Copy the old queue's PPD file to the new queue when it is renamed,
- # to conserve the option settings
- if (($printer->{currentqueue}{queue} ne
- $printer->{OLD_QUEUE}) &&
- ($printer->{configured}{$printer->{OLD_QUEUE}})) {
- system("echo yes | cp -f " .
- "$prefix/etc/cups/ppd/$printer->{OLD_QUEUE}.ppd " .
- "$prefix/etc/cups/ppd/$printer->{currentqueue}{queue}.ppd");
- }
- } else {
- # Raw queue
- run_program::rooted($prefix, "foomatic-configure", "-q",
- "-s", $printer->{currentqueue}{spooler},
- "-n", $printer->{currentqueue}{queue},
- "-c", $printer->{currentqueue}{connect},
- "-d", $printer->{currentqueue}{driver},
- "-N", $printer->{currentqueue}{desc},
- "-L", $printer->{currentqueue}{loc}
- ) or die "foomatic-configure failed";
- }
-
- # Make sure that queue is active
- if ($printer->{SPOOLER} ne "pdq") {
- run_program::rooted($prefix, "foomatic-printjob",
- "-s", $printer->{currentqueue}{spooler},
- "-C", "up", $printer->{currentqueue}{queue});
- }
-
- # Check whether a USB printer is configured and activate USB printing if so
- my $useUSB = 0;
- foreach (values %{$printer->{configured}}) {
- $useUSB ||= $_->{queuedata}{connect} =~ /usb/ ||
- $_->{DeviceURI} =~ /usb/;
- }
- $useUSB ||= ($printer->{currentqueue}{queue}{queuedata}{connect}
- =~ /usb/);
- if ($useUSB) {
- my $f = "$prefix/etc/sysconfig/usb";
- my %usb = getVarsFromSh($f);
- $usb{PRINTER} = "yes";
- setVarsInSh($f, \%usb);
- }
-
- # Open permissions for device file when PDQ is chosen as spooler
- # so normal users can print.
- if ($printer->{SPOOLER} eq 'pdq') {
- if ($printer->{currentqueue}{connect} =~ m!^\s*file:(\S*)\s*$!) {
- set_permissions($1,"666");
- }
- }
-
- # Make a new printer entry in the $printer structure
- $printer->{configured}{$printer->{currentqueue}{queue}}{queuedata} =
- {};
- copy_printer_params($printer->{currentqueue},
- $printer->{configured}{$printer->{currentqueue}{queue}}{queuedata});
- # Construct an entry line for tree view in main window of
- # printerdrake
- make_menuentry($printer, $printer->{currentqueue}{queue});
-
- # Store the default option settings
- $printer->{configured}{$printer->{currentqueue}{queue}}{args} = {};
- if ($printer->{currentqueue}{foomatic}) {
- my $tmp = $printer->{OLD_QUEUE};
- $printer->{OLD_QUEUE} = $printer->{currentqueue}{queue};
- $printer->{configured}{$printer->{currentqueue}{queue}}{args} =
- read_foomatic_options($printer);
- $printer->{OLD_QUEUE} = $tmp;
- } elsif ($printer->{currentqueue}{ppd}) {
- $printer->{configured}{$printer->{currentqueue}{queue}}{args} =
- read_cups_options($printer->{currentqueue}{queue});
- }
- # Clean up
- delete($printer->{ARGS});
- $printer->{OLD_CHOICE} = "";
- $printer->{ARGS} = {};
- $printer->{DBENTRY} = "";
- $printer->{currentqueue} = {};
-}
-
-sub remove_queue($$) {
- my ($printer) = $_[0];
- my ($queue) = $_[1];
- run_program::rooted($prefix, "foomatic-configure", "-R", "-q",
- "-s", $printer->{SPOOLER},
- "-n", $queue);
- # Delete old stuff from data structure
- delete $printer->{configured}{$queue};
- delete($printer->{currentqueue});
- delete($printer->{ARGS});
- $printer->{OLD_CHOICE} = "";
- $printer->{ARGS} = {};
- $printer->{DBENTRY} = "";
- $printer->{currentqueue} = {};
- removeprinterfromapplications($printer, $queue);
-}
-
-sub restart_queue($) {
- my ($printer) = @_;
- my $queue = $printer->{QUEUE};
-
- # Restart the daemon(s)
- for ($printer->{SPOOLER}) {
- /cups/ && do {
- #- restart cups.
- restart_service("cups");
- last };
- /lpr|lprng/ && do {
- #- restart lpd.
- foreach (("/var/spool/lpd/$queue/lock", "/var/spool/lpd/lpd.lock")) {
- my $pidlpd = (cat_("$prefix$_"))[0];
- kill 'TERM', $pidlpd if $pidlpd;
- unlink "$prefix$_";
- }
- restart_service("lpd"); sleep 1;
- last };
- }
- # Kill the jobs
- run_program::rooted($prefix, "foomatic-printjob", "-R",
- "-s", $printer->{SPOOLER},
- "-P", $queue, "-");
-
-}
-
-sub print_pages($@) {
- my ($printer, @pages) = @_;
- my $queue = $printer->{QUEUE};
- my $lpr = "/usr/bin/foomatic-printjob";
- my $lpq = "$lpr -Q";
-
- # Print the pages
- foreach (@pages) {
- my $page = $_;
- # Only text and PostScript can be printed directly with all spoolers,
- # images must be treated seperately
- if ($page =~ /\.jpg$/) {
- system(($::testing ? "$prefix" : "chroot $prefix/ ") .
- "/usr/bin/convert $page -page 427x654+100+65 PS:- | " .
- ($::testing ? "$prefix" : "chroot $prefix/ ") .
- "$lpr -s $printer->{SPOOLER} -P $queue");
- } else {
- run_program::rooted($prefix, $lpr, "-s", $printer->{SPOOLER},
- "-P", $queue, $page);
- }
- }
- sleep 5; #- allow lpr to send pages.
- # Check whether the job is queued
- local *F;
- open F, ($::testing ? "$prefix" : "chroot $prefix/ ") . "$lpq -s $printer->{SPOOLER} -P $queue |";
- my @lpq_output =
- grep { !/^no entries/ && !(/^Rank\s+Owner/ .. /^\s*$/) } <F>;
- close F;
- @lpq_output;
-}
-
-sub lphelp_output {
- my ($printer) = @_;
- my $queue = $printer->{QUEUE};
- my $lphelp = "/usr/bin/lphelp";
-
- local *F;
- open F, ($::testing ? "$prefix" : "chroot $prefix/ ") . "$lphelp $queue |";
- $helptext = join("", <F>);
- close F;
- if (!$helptext || ($helptext eq "")) {
- $helptext = "Option list not available!\n";
- }
- return $helptext;
-}
-
-sub pdqhelp_output {
- my ($printer) = @_;
- my $queue = $printer->{QUEUE};
- my $pdq = "/usr/bin/pdq";
-
- local *F;
- open F, ($::testing ? "$prefix" : "chroot $prefix/ ") . "$pdq -h -P $queue 2>&1 |";
- $helptext = join("", <F>);
- close F;
- return $helptext;
-}
-
-sub print_optionlist {
- my ($printer) = @_;
- my $queue = $printer->{QUEUE};
- my $lpr = "/usr/bin/foomatic-printjob";
-
- # Print the option list pages
- if ($printer->{configured}{$queue}{queuedata}{foomatic}) {
- run_program::rooted($prefix, $lpr, "-s", $printer->{SPOOLER},
- "-P", $queue, "-o", "docs",
- "/etc/bashrc");
- } elsif ($printer->{configured}{$queue}{queuedata}{ppd}) {
- system(($::testing ? "$prefix" : "chroot $prefix/ ") .
- "/usr/bin/lphelp $queue | " .
- ($::testing ? "$prefix" : "chroot $prefix/ ") .
- "$lpr -s $printer->{SPOOLER} -P $queue");
- }
-}
-
-# ---------------------------------------------------------------
-#
-# Spooler config stuff
-#
-# ---------------------------------------------------------------
-
-sub get_copiable_queues {
- my ($oldspooler, $newspooler) = @_;
- local $_; #- use of while (<...
-
- local *QUEUEOUTPUT; #- don't have to do close ... and don't modify globals
- #- at least
- my @queuelist; #- here we will list all Foomatic-generated queues
- # Get queue list with foomatic-configure
- open QUEUEOUTPUT, ($::testing ? "$prefix" : "chroot $prefix/ ") .
- "foomatic-configure -Q -q -s $oldspooler |" ||
- die "Could not run foomatic-configure";
-
- my $entry = {};
- my $inentry = 0;
- while (<QUEUEOUTPUT>) {
- chomp;
- if ($inentry) {
- # We are inside a queue entry
- if (m!^\s*</queue>\s*$!) {
- # entry completed
- $inentry = 0;
- if (($entry->{foomatic}) &&
- ($entry->{spooler} eq $oldspooler)) {
- # Is the connection type supported by the new
- # spooler?
- if ((($newspooler eq "cups") &&
- (($entry->{connect} =~ /^file:/) ||
- ($entry->{connect} =~ /^ptal:/) ||
- ($entry->{connect} =~ /^lpd:/) ||
- ($entry->{connect} =~ /^socket:/) ||
- ($entry->{connect} =~ /^smb:/) ||
- ($entry->{connect} =~ /^ipp:/))) ||
- ((($newspooler eq "lpd") ||
- ($newspooler eq "lprng")) &&
- (($entry->{connect} =~ /^file:/) ||
- ($entry->{connect} =~ /^ptal:/) ||
- ($entry->{connect} =~ /^lpd:/) ||
- ($entry->{connect} =~ /^socket:/) ||
- ($entry->{connect} =~ /^smb:/) ||
- ($entry->{connect} =~ /^ncp:/) ||
- ($entry->{connect} =~ /^postpipe:/))) ||
- (($newspooler eq "pdq") &&
- (($entry->{connect} =~ /^file:/) ||
- ($entry->{connect} =~ /^ptal:/) ||
- ($entry->{connect} =~ /^lpd:/) ||
- ($entry->{connect} =~ /^socket:/)))) {
- push(@queuelist, $entry->{name});
- }
- }
- $entry = {};
- } elsif (m!^\s*<name>(.+)</name>\s*$!) {
- # queue name
- $entry->{name} = $1;
- } elsif (m!^\s*<connect>(.+)</connect>\s*$!) {
- # connection type (URI)
- $entry->{connect} = $1;
- }
- } else {
- if (m!^\s*<queue\s+foomatic\s*=\s*\"?(\d+)\"?\s*spooler\s*=\s*\"?(\w+)\"?\s*>\s*$!) {
- # new entry
- $inentry = 1;
- $entry->{foomatic} = $1;
- $entry->{spooler} = $2;
- }
- }
- }
- close QUEUEOUTPUT;
-
- return @queuelist;
-}
-
-sub copy_foomatic_queue {
- my ($printer, $oldqueue, $oldspooler, $newqueue) = @_;
- run_program::rooted($prefix, "foomatic-configure", "-q",
- "-s", $printer->{SPOOLER},
- "-n", $newqueue,
- "-C", $oldspooler, $oldqueue);
-}
-
-# ------------------------------------------------------------------
-#
-# Configuration of HP multi-function devices
-#
-# ------------------------------------------------------------------
-
-sub configure_hpoj {
- my ($device, @autodetected) = @_;
- # Get the model ID as auto-detected
- $device =~ m!^/dev/\S*lp(\d+)$!;
- my $model = $1;
- my $device_ok = 1;
- foreach (@autodetected) {
- $device eq $_->{port} or next;
- $model = $_->{val}{MODEL};
- # Check if the device is really an HP multi-function device
- stop_service("hpoj");
- my $bus;
- my $address_arg = "";
- if ($device =~ /usb/) {
- $bus = "usb";
- } else {
- $bus = "par";
- $address_arg = parport_addr($device);
- }
- run_program::rooted($prefix,
- "ptal-mlcd", "$bus:probe", "-device",
- "$device", split(' ',$address_arg));
- $device_ok = 0;
- local *F;
- if (open F, ($::testing ? "$prefix" : "chroot $prefix/ ") . "/usr/bin/ptal-devid mlc:$bus:probe |") {
- my $devid = join("", <F>);
- close F;
- if ($devid) {$device_ok = 1};
- }
- if (open F, ($::testing ? "$prefix" : "chroot $prefix/ ") . "ps auxwww | grep \"ptal-mlcd $bus:probe\" | grep -v grep | ") {
- my $line = <F>;
- if ($line =~ /^\s*\S+\s+(\d+)\s+/) {
- my $pid = $1;
- kill (15, $pid);
- }
- close F;
- }
- start_service("hpoj");
- last;
- }
- # No, it is not an HP multi-function device.
- return "" if (!$device_ok);
- #$device = "/dev/usb/lp1"; $model = "DeskJet 990C";
- # Read the HPOJ config file and check whether this device is already
- # configured
- my $deviceconfigured = 0;
- my $ptaldevice;
- my $hpoj_config = "/etc/ptal-start.conf";
- local *HPOJCONFIG;
- if (open HPOJCONFIG, ("< $prefix$hpoj_config")) {
- while ($line = <HPOJCONFIG>) {
- chomp $line;
- # Comment or blank line
- next if (($line =~ /^\s*\#/) || ($line =~ /^\s*$/));
- # Only lines beginning with "ptal-mlcd" are interesting.
- next if ($line !~ /^\s*ptal-mlcd\s+(\S+)\s+/);
- $ptaldevice = "mlc:$1";
- if ($ptaldevice =~ /^mlc:par:(\d+)$/) {
- # Parallel device
- next if ($device =~ /usb/);
- if ($line =~ m!-device\s+$device!) {
- # Our new device is parallel and already configured
- # by the current line
- $deviceconfigured = 1;
- last;
- }
- } elsif ($ptaldevice =~ /^mlc:usb:(.+)$/) {
- # USB device
- next if ($device !~ /usb/);
- if ($line =~ /-devidmatch\s+(\"[^\"]*\")/) {
- $configuredmodel = $1;
- $configuredmodel =~ s/\"//g;
- $configuredmodel =~ s/^mdl://;
- $configuredmodel =~ s/^model://;
- $configuredmodel =~ s/;$//;
- if ($configuredmodel eq $model) {
- # Our new device is USB and already configured
- # by the current line
- $deviceconfigured = 1;
- last;
- }
- } elsif ($line =~ m!-device\s+(/dev/usb/lp\d+)!) {
- if ($1 eq $device) {
- # Our new device is USB and already configured
- # by the current line
- $deviceconfigured = 1;
- last;
- }
- }
- }
- }
- close HPOJCONFIG;
- }
-
- # It's all done for us, the device is already configured
- return $ptaldevice if $deviceconfigured;
-
- # Configure the device
- my $entry;
- if ($device =~ /usb/) {
- # USB device
- my $ptaldevicemodel = $model;
- $ptaldevicemodel =~ s/\s+/_/g;
- if ($model =~ /^\d+$/) {
- $entry = "\nptal-mlcd usb:$ptaldevicemodel -device $device \$PTAL_MLCD_CMDLINE_APPEND\nptal-printd mlc:usb:$ptaldevicemodel \$PTAL_PRINTD_CMDLINE_APPEND\n";
- } else {
- $entry = "\nptal-mlcd usb:$ptaldevicemodel -device /dev/usb/lp* -devidmatch \"$model;\" \$PTAL_MLCD_CMDLINE_APPEND\nptal-printd mlc:usb:$ptaldevicemodel \$PTAL_PRINTD_CMDLINE_APPEND\n";
- }
- $ptaldevice = "mlc:usb:$ptaldevicemodel";
- } else {
- # parallel device
- # auto-detect the parallel port addresses
- $device =~ m!^/dev/lp(\d+)$!;
- my $portnumber = $1;
- my $address_arg = parport_addr($device);
- $entry = "\nptal-mlcd par:$portnumber -device $device$address_arg \$PTAL_MLCD_CMDLINE_APPEND\nptal-printd mlc:par:$portnumber \$PTAL_PRINTD_CMDLINE_APPEND\n";
- $ptaldevice = "mlc:par:$portnumber";
- }
-
- # Add new entry to HPOJ's config file
- open(HPOJCONFIG,">> $prefix$hpoj_config") ||
- die "Could not open $hpoj_config for writing!\n";
- print HPOJCONFIG $entry;
- close HPOJCONFIG;
- # Restart HPOJ
- restart_service("hpoj");
- # Return HPOJ device name to form the URI
- return $ptaldevice;
-}
-
-sub parport_addr{
- # auto-detect the parallel port addresses
- my ($device) = @_;
- $device =~ m!^/dev/lp(\d+)$!;
- my $portnumber = $1;
- my $parport_addresses =
- `cat /proc/sys/dev/parport/parport$portnumber/base-addr`;
- my $address_arg;
- if ($parport_addresses =~ /^\s*(\d+)\s+(\d+)\s*$/) {
- $address_arg = sprintf(" -base 0x%x -basehigh 0x%x", $1, $2);
- } elsif ($parport_addresses =~ /^\s*(\d+)\s*$/) {
- $address_arg = sprintf(" -base 0x%x", $1);
- } else {
- $address_arg = "";
- }
- return $address_arg;
-}
-
-sub config_sane {
- my ($ptaldevice) = @_;
-
- # Create config file for HP backend
- output("$prefix/etc/sane.d/hp.conf",
- "$ptaldevice\noption connect-ptal\n");
-
- # Add HP backend to /etc/sane.d/dll.conf if needed
- return if member("hp", chomp_(cat_("$prefix/etc/sane.d/dll.conf")));
- local *F;
- open F, ">> $prefix/etc/sane.d/dll.conf" or
- die "can't write SANE config in /etc/sane.d/dll.conf: $!";
- print F "hp\n";
- close F;
-}
-
-# ------------------------------------------------------------------
-#
-# Configuration of printers in Applications
-#
-# ------------------------------------------------------------------
-
-sub configureapplications {
- my ($printer) = @_;
- configurestaroffice($printer);
- configureopenoffice($printer);
-}
-
-sub addcupsremotetoapplications {
- my ($printer, $queue) = @_;
- return (addcupsremotetostaroffice($printer, $queue) &&
- addcupsremotetoopenoffice($printer, $queue));
-}
-
-sub removeprinterfromapplications {
- my ($printer, $queue) = @_;
- return (removeprinterfromstaroffice($printer, $queue) &&
- removeprinterfromopenoffice($printer, $queue));
-}
-
-sub removelocalprintersfromapplications {
- my ($printer) = @_;
- removelocalprintersfromstaroffice($printer);
- removelocalprintersfromopenoffice($printer);
-}
-
-sub configurestaroffice {
- my ($printer) = @_;
- # Do we have Star Office installed?
- my $configfilename = findsofficeconfigfile();
- return 1 if !$configfilename;
- $configfilename =~ m!^(.*)/share/xp3/Xpdefaults$!;
- my $configprefix = $1;
- # Load Star Office printer config file
- my $configfilecontent = readsofficeconfigfile($configfilename);
- # Update remote CUPS queues
- if (0 && ($printer->{SPOOLER} eq "cups") &&
- (-x "$prefix/usr/bin/curl")) {
- my @printerlist = getcupsremotequeues();
- for my $listentry (@printerlist) {
- next if !($listentry =~ /^([^\|]+)\|([^\|]+)$/);
- my $queue = $1;
- my $server = $2;
- eval(run_program::rooted
- ($prefix, "curl", "-o", "/etc/foomatic/$queue.ppd",
- "http://$server:631/printers/$queue.ppd"));
- if (-r "$prefix/etc/foomatic/$queue.ppd") {
- $configfilecontent =
- makestarofficeprinterentry($printer, $queue,
- $configprefix,
- $configfilecontent);
- }
- }
- }
- # Update local printer queues
- for my $queue (keys(%{$printer->{configured}})) {
- # Check if we have a PPD file
- if (! -r "$prefix/etc/foomatic/$queue.ppd") {
- if (-r "$prefix/etc/cups/ppd/$queue.ppd") {
- # If we have a PPD file in the CUPS config dir, link to it
- run_program::rooted($prefix,
- "ln", "-sf",
- "/etc/cups/ppd/$queue.ppd",
- "/etc/foomatic/$queue.ppd");
- } elsif (-r "$prefix/usr/share/postscript/ppd/$queue.ppd") {
- # Check PPD directory of GPR, too
- run_program::rooted($prefix,
- "ln", "-sf",
- "/usr/share/postscript/ppd/$queue.ppd",
- "/etc/foomatic/$queue.ppd");
- } else {
- # No PPD file at all? We cannot set up this printer
- next;
- }
- }
- $configfilecontent =
- makestarofficeprinterentry($printer, $queue, $configprefix,
- $configfilecontent);
- }
- # Patch PostScript output to print Euro symbol correctly also for
- # the "Generic Printer"
- $configfilecontent = removeentry
- ("ports", "default_queue=", $configfilecontent);
- $configfilecontent = addentry
- ("ports",
- "default_queue=/usr/bin/perl -p -e \"s=16#80 /euro=16#80 /Euro=\" | /usr/bin/$lprcommand{$printer->{SPOOLER}}",
- $configfilecontent);
- # Write back Star Office configuration file
- return writesofficeconfigfile($configfilename, $configfilecontent);
-}
-
-sub configureopenoffice {
- my ($printer) = @_;
- # Do we have OpenOffice.org installed?
- my $configfilename = findopenofficeconfigfile();
- return 1 if !$configfilename;
- $configfilename =~ m!^(.*)/share/psprint/psprint.conf$!;
- my $configprefix = $1;
- # Load OpenOffice.org printer config file
- my $configfilecontent = readsofficeconfigfile($configfilename);
- # Update remote CUPS queues
- if (0 && ($printer->{SPOOLER} eq "cups") &&
- (-x "$prefix/usr/bin/curl")) {
- my @printerlist = getcupsremotequeues();
- for my $listentry (@printerlist) {
- next if !($listentry =~ /^([^\|]+)\|([^\|]+)$/);
- my $queue = $1;
- my $server = $2;
- eval(run_program::rooted
- ($prefix, "curl", "-o", "/etc/foomatic/$queue.ppd",
- "http://$server:631/printers/$queue.ppd"));
- if (-r "$prefix/etc/foomatic/$queue.ppd") {
- $configfilecontent =
- makeopenofficeprinterentry($printer, $queue,
- $configprefix,
- $configfilecontent);
- }
- }
- }
- # Update local printer queues
- for my $queue (keys(%{$printer->{configured}})) {
- # Check if we have a PPD file
- if (! -r "$prefix/etc/foomatic/$queue.ppd") {
- if (-r "$prefix/etc/cups/ppd/$queue.ppd") {
- # If we have a PPD file in the CUPS config dir, link to it
- run_program::rooted($prefix,
- "ln", "-sf",
- "/etc/cups/ppd/$queue.ppd",
- "/etc/foomatic/$queue.ppd");
- } elsif (-r "$prefix/usr/share/postscript/ppd/$queue.ppd") {
- # Check PPD directory of GPR, too
- run_program::rooted($prefix,
- "ln", "-sf",
- "/usr/share/postscript/ppd/$queue.ppd",
- "/etc/foomatic/$queue.ppd");
- } else {
- # No PPD file at all? We cannot set up this printer
- next;
- }
- }
- $configfilecontent =
- makeopenofficeprinterentry($printer, $queue, $configprefix,
- $configfilecontent);
- }
- # Patch PostScript output to print Euro symbol correctly also for
- # the "Generic Printer"
- $configfilecontent = removeentry
- ("Generic Printer", "Command=", $configfilecontent);
- $configfilecontent = addentry
- ("Generic Printer",
- "Command=/usr/bin/perl -p -e \"s=/euro /unused=/Euro /unused=\" | /usr/bin/$lprcommand{$printer->{SPOOLER}}",
- $configfilecontent);
- # Write back OpenOffice.org configuration file
- return writesofficeconfigfile($configfilename, $configfilecontent);
-}
-
-sub addcupsremotetostaroffice {
- my ($printer, $queue) = @_;
- # Do we have Star Office installed?
- my $configfilename = findsofficeconfigfile();
- return 1 if !$configfilename;
- $configfilename =~ m!^(.*)/share/xp3/Xpdefaults$!;
- my $configprefix = $1;
- # Load Star Office printer config file
- my $configfilecontent = readsofficeconfigfile($configfilename);
- # Update remote CUPS queues
- if (($printer->{SPOOLER} eq "cups") &&
- (-x "$prefix/usr/bin/curl")) {
- my @printerlist = getcupsremotequeues();
- for my $listentry (@printerlist) {
- next if !($listentry =~ /^([^\|]+)\|([^\|]+)$/);
- my $q = $1;
- next if ($q ne $queue);
- my $server = $2;
- # Remove server name from queue name
- $q =~ s/^([^@]*)@.*$/$1/;
- eval(run_program::rooted
- ($prefix, "/usr/bin/curl", "-o",
- "/etc/foomatic/$queue.ppd",
- "http://$server:631/printers/$q.ppd"));
- # Does the file exist and is it not an error message?
- if ((-r "$prefix/etc/foomatic/$queue.ppd") &&
- (cat_("$prefix/etc/foomatic/$queue.ppd") =~
- /^\*PPD-Adobe/)) {
- $configfilecontent =
- makestarofficeprinterentry($printer, $queue,
- $configprefix,
- $configfilecontent);
- } else {
- return 0;
- }
- last;
- }
- }
- # Write back Star Office configuration file
- return writesofficeconfigfile($configfilename, $configfilecontent);
-}
-
-sub addcupsremotetoopenoffice {
- my ($printer, $queue) = @_;
- # Do we have OpenOffice.org installed?
- my $configfilename = findopenofficeconfigfile();
- return 1 if !$configfilename;
- $configfilename =~ m!^(.*)/share/psprint/psprint.conf$!;
- my $configprefix = $1;
- # Load OpenOffice.org printer config file
- my $configfilecontent = readsofficeconfigfile($configfilename);
- # Update remote CUPS queues
- if (($printer->{SPOOLER} eq "cups") &&
- (-x "$prefix/usr/bin/curl")) {
- my @printerlist = getcupsremotequeues();
- for my $listentry (@printerlist) {
- next if !($listentry =~ /^([^\|]+)\|([^\|]+)$/);
- my $q = $1;
- next if ($q ne $queue);
- my $server = $2;
- # Remove server name from queue name
- $q =~ s/^([^@]*)@.*$/$1/;
- eval(run_program::rooted
- ($prefix, "/usr/bin/curl", "-o",
- "/etc/foomatic/$queue.ppd",
- "http://$server:631/printers/$q.ppd"));
- # Does the file exist and is it not an error message?
- if ((-r "$prefix/etc/foomatic/$queue.ppd") &&
- (cat_("$prefix/etc/foomatic/$queue.ppd") =~
- /^\*PPD-Adobe/)) {
- $configfilecontent =
- makeopenofficeprinterentry($printer, $queue,
- $configprefix,
- $configfilecontent);
- } else {
- return 0;
- }
- }
- }
- # Write back OpenOffice.org configuration file
- return writesofficeconfigfile($configfilename, $configfilecontent);
-}
-
-sub removeprinterfromstaroffice {
- my ($printer, $queue) = @_;
- # Do we have Star Office installed?
- my $configfilename = findsofficeconfigfile();
- return 1 if !$configfilename;
- $configfilename =~ m!^(.*)/share/xp3/Xpdefaults$!;
- my $configprefix = $1;
- # Load Star Office printer config file
- my $configfilecontent = readsofficeconfigfile($configfilename);
- # Remove the printer entry
- $configfilecontent =
- removestarofficeprinterentry($printer, $queue, $configprefix,
- $configfilecontent);
- # Write back Star Office configuration file
- return writesofficeconfigfile($configfilename, $configfilecontent);
-}
-
-sub removeprinterfromopenoffice {
- my ($printer, $queue) = @_;
- # Do we have OpenOffice.org installed?
- my $configfilename = findopenofficeconfigfile();
- return 1 if !$configfilename;
- $configfilename =~ m!^(.*)/share/psprint/psprint.conf$!;
- my $configprefix = $1;
- # Load OpenOffice.org printer config file
- my $configfilecontent = readsofficeconfigfile($configfilename);
- # Remove the printer entry
- $configfilecontent =
- removeopenofficeprinterentry($printer, $queue, $configprefix,
- $configfilecontent);
- # Write back OpenOffice.org configuration file
- return writesofficeconfigfile($configfilename, $configfilecontent);
-}
-
-sub removelocalprintersfromstaroffice {
- my ($printer) = @_;
- # Do we have Star Office installed?
- my $configfilename = findsofficeconfigfile();
- return 1 if !$configfilename;
- $configfilename =~ m!^(.*)/share/xp3/Xpdefaults$!;
- my $configprefix = $1;
- # Load Star Office printer config file
- my $configfilecontent = readsofficeconfigfile($configfilename);
- # Remove the printer entries
- for my $queue (keys(%{$printer->{configured}})) {
- $configfilecontent =
- removestarofficeprinterentry($printer, $queue, $configprefix,
- $configfilecontent);
- }
- # Write back Star Office configuration file
- return writesofficeconfigfile($configfilename, $configfilecontent);
-}
-
-sub removelocalprintersfromopenoffice {
- my ($printer) = @_;
- # Do we have OpenOffice.org installed?
- my $configfilename = findopenofficeconfigfile();
- return 1 if !$configfilename;
- $configfilename =~ m!^(.*)/share/psprint/psprint.conf$!;
- my $configprefix = $1;
- # Load OpenOffice.org printer config file
- my $configfilecontent = readsofficeconfigfile($configfilename);
- # Remove the printer entries
- for my $queue (keys(%{$printer->{configured}})) {
- $configfilecontent =
- removeopenofficeprinterentry($printer, $queue, $configprefix,
- $configfilecontent);
- }
- # Write back OpenOffice.org configuration file
- return writesofficeconfigfile($configfilename, $configfilecontent);
-}
-
-sub makestarofficeprinterentry {
- my ($printer, $queue, $configprefix, $configfile) = @_;
- # Set default printer
- if ($queue eq $printer->{DEFAULT}) {
- $configfile = removeentry("windows", "device=", $configfile);
- $configfile = addentry("windows",
- "device=$queue,$queue PostScript,$queue",
- $configfile);
- }
- # Make an entry in the "[devices]" section
- $configfile = removeentry("devices", "$queue=", $configfile);
- $configfile = addentry("devices",
- "$queue=$queue PostScript,$queue",
- $configfile);
- # Make an entry in the "[ports]" section
- # The "perl" command patches the PostScript output to print the Euro
- # symbol correctly.
- $configfile = removeentry("ports", "$queue=", $configfile);
- $configfile = addentry("ports",
- "$queue=/usr/bin/perl -p -e \"s=16#80 /euro=16#80 /Euro=\" | /usr/bin/$lprcommand{$printer->{SPOOLER}} -P $queue",
- $configfile);
- # Make printer's section
- $configfile = addsection("$queue,PostScript,$queue", $configfile);
- # Load PPD file
- my $ppd = cat_("$prefix/etc/foomatic/$queue.ppd");
- # Set the PostScript level
- my $pslevel;
- if ($ppd =~ /^\s*\*LanguageLevel:\s*\"?([^\s\"]+)\"?\s*$/m) {
- $pslevel = $1;
- $pslevel = "2" if $pslevel eq "3";
- } else {
- $pslevel = "2";
- }
- $configfile = removeentry("$queue.PostScript.$queue",
- "Level=", $configfile);
- $configfile = addentry("$queue.PostScript.$queue",
- "Level=$pslevel", $configfile);
- # Set Color/BW
- my $color;
- if ($ppd =~ /^\s*\*ColorDevice:\s*\"?([Tt]rue)\"?\s*$/m) {
- $color = "1";
- } else {
- $color = "0";
- }
- $configfile = removeentry("$queue.PostScript.$queue",
- "BitmapColor=", $configfile);
- $configfile = addentry("$queue.PostScript.$queue",
- "BitmapColor=$color", $configfile);
- # Set the default paper size
- if ($ppd =~ /^\s*\*DefaultPageSize:\s*(\S+)\s*$/m) {
- my $papersize=$1;
- $configfile = removeentry("$queue.PostScript.$queue",
- "PageSize=", $configfile);
- $configfile = removeentry("$queue.PostScript.$queue",
- "PPD_PageSize=", $configfile);
- $configfile = addentry("$queue.PostScript.$queue",
- "PageSize=$papersize", $configfile);
- $configfile = addentry("$queue.PostScript.$queue",
- "PPD_PageSize=$papersize", $configfile);
- }
- # Link the PPD file
- run_program::rooted($prefix,
- "ln", "-sf", "/etc/foomatic/$queue.ppd",
- "$configprefix/share/xp3/ppds/$queue.PS");
- return $configfile;
-}
-
-sub makeopenofficeprinterentry {
- my ($printer, $queue, $configprefix, $configfile) = @_;
- # Make printer's section
- $configfile = addsection($queue, $configfile);
- # Load PPD file
- my $ppd = cat_("$prefix/etc/foomatic/$queue.ppd");
- # "PPD_PageSize" line
- if ($ppd =~ /^\s*\*DefaultPageSize:\s*(\S+)\s*$/m) {
- my $papersize=$1;
- $configfile = removeentry($queue,
- "PPD_PageSize=", $configfile);
- $configfile = addentry($queue,
- "PPD_PageSize=$papersize", $configfile);
- }
- # "Command" line
- # The "perl" command patches the PostScript output to print the Euro
- # symbol correctly.
- $configfile = removeentry($queue, "Command=", $configfile);
- $configfile = addentry($queue,
- "Command=/usr/bin/perl -p -e \"s=/euro /unused=/Euro /unused=\" | /usr/bin/$lprcommand{$printer->{SPOOLER}} -P $queue",
- $configfile);
- # "Comment" line
- $configfile = removeentry($queue, "Comment=", $configfile);
- if (($printer->{configured}{$queue}) &&
- ($printer->{configured}{$queue}{queuedata}{desc})) {
- $configfile = addentry
- ($queue,
- "Comment=$printer->{configured}{$queue}{queuedata}{desc}",
- $configfile);
- } else {
- $configfile = addentry($queue,
- "Comment=",
- $configfile);
- }
- # "Location" line
- $configfile = removeentry($queue, "Location=", $configfile);
- if (($printer->{configured}{$queue}) &&
- ($printer->{configured}{$queue}{queuedata}{loc})) {
- $configfile = addentry
- ($queue,
- "Location=$printer->{configured}{$queue}{queuedata}{loc}",
- $configfile);
- } else {
- $configfile = addentry($queue,
- "Location=",
- $configfile);
- }
- # "DefaultPrinter" line
- $configfile = removeentry($queue, "DefaultPrinter=", $configfile);
- my $default = "0";
- if ($queue eq $printer->{DEFAULT}) {
- $default = "1";
- }
- $configfile = addentry($queue,
- "DefaultPrinter=$default",
- $configfile);
- # "Printer" line
- $configfile = removeentry($queue, "Printer=", $configfile);
- $configfile = addentry($queue,
- "Printer=$queue/$queue",
- $configfile);
- # Link the PPD file
- run_program::rooted($prefix,
- "ln", "-sf", "/etc/foomatic/$queue.ppd",
- "$configprefix/share/psprint/driver/$queue.PS");
- return $configfile;
-}
-
-sub removestarofficeprinterentry {
- my ($printer, $queue, $configprefix, $configfile) = @_;
- # Remove default printer entry
- $configfile = removeentry("windows", "device=$queue,", $configfile);
- # Remove entry in the "[devices]" section
- $configfile = removeentry("devices", "$queue=", $configfile);
- # Remove entry in the "[ports]" section
- $configfile = removeentry("ports", "$queue=", $configfile);
- # Remove "[$queue,PostScript,$queue]" section
- $configfile = removesection("$queue,PostScript,$queue", $configfile);
- # Remove Link of PPD file
- run_program::rooted($prefix,
- "rm", "-f",
- "$configprefix/share/xp3/ppds/$queue.PS");
- return $configfile;
-}
-
-sub removeopenofficeprinterentry {
- my ($printer, $queue, $configprefix, $configfile) = @_;
- # Remove printer's section
- $configfile = removesection("$queue", $configfile);
- # Remove Link of PPD file
- run_program::rooted($prefix,
- "rm", "-f",
- "$configprefix/share/psprint/driver/$queue.PS");
- return $configfile;
-}
-
-sub findsofficeconfigfile {
- my @configfilenames =
- ("/usr/lib/*/share/xp3/Xpdefaults",
- "/usr/local/lib/*/share/xp3/Xpdefaults",
- "/usr/local/*/share/xp3/Xpdefaults",
- "/opt/*/share/xp3/Xpdefaults");
- my $configfilename = "";
- for $configfilename (@configfilenames) {
- local *F;
- if (open F, "ls -r $prefix$configfilename 2> /dev/null |") {
- my $filename = <F>;
- close F;
- if ($filename) {return $filename};
- }
- }
- return "";
-}
-
-sub findopenofficeconfigfile {
- my @configfilenames =
- ("/usr/lib/*/share/psprint/psprint.conf",
- "/usr/local/lib/*/share/psprint/psprint.conf",
- "/usr/local/*/share/psprint/psprint.conf",
- "/opt/*/share/psprint/psprint.conf");
- my $configfilename = "";
- for $configfilename (@configfilenames) {
- local *F;
- if (open F, "ls -r $prefix$configfilename 2> /dev/null |") {
- my $filename = <F>;
- close F;
- if ($filename) {return $filename};
- }
- }
- return "";
-}
-
-sub readsofficeconfigfile {
- my ($file) = @_;
- local *F;
- open F, "< $prefix$file" || return "";
- my $filecontent = join("", <F>);
- close F;
- return $filecontent;
-}
-
-sub writesofficeconfigfile {
- my ($file, $filecontent) = @_;
- local *F;
- open F, "> $prefix$file" || return 0;
- print F $filecontent;
- close F;
- return 1;
-}
-
-sub getcupsremotequeues {
- # The following code reads in a list of all remote printers which the
- # local CUPS daemon knows due to broadcasting of remote servers or
- # "BrowsePoll" entries in the local /etc/cups/cupsd.conf
- local *F;
- open F, ($::testing ? "$prefix" : "chroot $prefix/ ") .
- "lpstat -v |" || return ();
- my @printerlist = ();
- my $line;
- while ($line = <F>) {
- if ($line =~ m/^\s*device\s+for\s+([^:\s]+):\s*(\S+)\s*$/) {
- my $queuename = $1;
- if (($2 =~ m!^ipp://([^/:]+)[:/]!) &&
- (!$printer->{configured}{$queuename})) {
- my $server = $1;
- push (@printerlist, "$queuename|$server");
- }
- }
- }
- close F;
- return @printerlist;
-}
-
-sub addentry {
- my ($section, $entry, $filecontent) = @_;
- my $sectionfound = 0;
- my $entryinserted = 0;
- my @lines = split("\n", $filecontent);
- local $_;
- for (@lines) {
- if (!$sectionfound) {
- if (/^\s*\[\s*$section\s*\]\s*$/) {
- $sectionfound = 1;
- }
- } else {
- if (!/^\s*$/ && !/^\s*;/) {
- $_ = "$entry\n$_";
- $entryinserted = 1;
- last;
- }
- }
- }
- if ($sectionfound && !$entryinserted) {
- push(@lines, $entry);
- }
- return join ("\n", @lines);
-}
-
-sub addsection {
- my ($section, $filecontent) = @_;
- my $entryinserted = 0;
- my @lines = split("\n", $filecontent);
- local $_;
- for (@lines) {
- if (/^\s*\[\s*$section\s*\]\s*$/) {
- # section already there, nothing to be done
- return $filecontent;
- }
- }
- return $filecontent . "\n[$section]";
-}
-
-sub removeentry {
- my ($section, $entry, $filecontent) = @_;
- my $sectionfound = 0;
- my $done = 0;
- my @lines = split("\n", $filecontent);
- local $_;
- for (@lines) {
- $_ = "$_\n";
- next if ($done);
- if (!$sectionfound) {
- if (/^\s*\[\s*$section\s*\]\s*$/) {
- $sectionfound = 1;
- }
- } else {
- if (/^\s*\[.*\]\s*$/) { # Next section
- $done = 1;
- } elsif (/^\s*$entry/) {
- $_ = "";
- $done = 1;
- }
- }
- }
- return join ("", @lines);
-}
-
-sub removesection {
- my ($section, $filecontent) = @_;
- my $sectionfound = 0;
- my $done = 0;
- my @lines = split("\n", $filecontent);
- local $_;
- for (@lines) {
- $_ = "$_\n";
- next if ($done);
- if (!$sectionfound) {
- if (/^\s*\[\s*$section\s*\]\s*$/) {
- $_ = "";
- $sectionfound = 1;
- }
- } else {
- if (/^\s*\[.*\]\s*$/) { # Next section
- $done = 1;
- } else {
- $_ = "";
- }
- }
- }
- return join ("", @lines);
-}
-
-#-######################################################################################
-#- Wonderful perl :(
-#-######################################################################################
-1;
diff --git a/perl-install/printerdrake.pm b/perl-install/printerdrake.pm
deleted file mode 100644
index 86541ffe1..000000000
--- a/perl-install/printerdrake.pm
+++ /dev/null
@@ -1,2938 +0,0 @@
-package printerdrake;
-# $Id$
-use diagnostics;
-use strict;
-
-
-use common;
-use detect_devices;
-use modules;
-use network;
-use log;
-use printer;
-
-1;
-
-sub choose_printer_type {
- my ($printer, $in) = @_;
- $in->set_help('configurePrinterConnected') if $::isInstall;
- my $queue = $printer->{OLD_QUEUE};
- $printer->{str_type} = $printer::printer_type_inv{$printer->{TYPE}};
- $printer->{str_type} =
- $in->ask_from_list_(_("Select Printer Connection"),
- _("How is the printer connected?") .
- ($printer->{SPOOLER} eq "cups" ?
- _("
-Printers on remote CUPS servers you do not have to configure here; these printers will be automatically detected.") : ()),
- [ printer::printer_type($printer) ],
- $printer->{str_type},
- ) or return 0;
- $printer->{TYPE} = $printer::printer_type{$printer->{str_type}};
- 1;
-}
-
-sub config_cups {
- my ($printer, $in, $upNetwork) = @_;
-
- local $::isWizard = 0;
- # Check whether the network functionality is configured and
- # running
- if (!check_network($printer, $in, $upNetwork)) {return 0};
-
- $in->set_help('configureRemoteCUPSServer') if $::isInstall;
- my $queue = $printer->{OLD_QUEUE};
- #- hack to handle cups remote server printing,
- #- first read /etc/cups/cupsd.conf for variable BrowsePoll address:port
- my ($server, $port, $default, $autoconf);
- # Return value: 0 when nothing was changed ("Apply" never pressed), 1
- # when "Apply" was at least pressed once.
- my $retvalue = 0;
- # Read CUPS config file
- my @cupsd_conf = printer::read_cupsd_conf();
- foreach (@cupsd_conf) {
- /^\s*BrowsePoll\s+(\S+)/ and $server = $1, last;
- }
- $server =~ /([^:]*):(.*)/ and ($server, $port) = ($1, $2);
- #- Did we have automatic or manual configuration mode for CUPS
- $autoconf = printer::get_cups_autoconf();
- #- Remember the server/port/autoconf settings to check whether the user
- #- has changed them.
- my $oldserver = $server;
- my $oldport = $port;
- my $oldautoconf = $autoconf;
-
- #- then ask user for this combination and rewrite /etc/cups/cupsd.conf
- #- according to new settings. There are no other point where such
- #- information is written in this file.
-
- if ($in->ask_from_
- ({ title => ($::expert ? _("CUPS configuration") :
- _("Specify CUPS server")),
- messages => _("To get access to printers on remote CUPS servers in your local network you do not have to configure anything; the CUPS servers inform your machine automatically about their printers. All printers currently known to your machine are listed in the \"Remote printers\" section in the main window of Printerdrake. When your CUPS server is not in your local network, you have to enter the CUPS server IP address and optionally the port number to get the printer information from the server, otherwise leave these fields blank.") .
- ($::expert ? "\n" . _("
-Normally, CUPS is automatically configured according to your network environment, so that you can access the printers on the CUPS servers in your local network. If this does not work correctly, turn off \"Automatic CUPS configuration\" and edit your file /etc/cups/cupsd.conf manually. Do not forget to restart CUPS afterwards (command: \"service cups restart\").") : ()),
- callbacks => { complete => sub {
- unless (!$server || network::is_ip($server)) {
- $in->ask_warn('', _("The IP address should look like 192.168.1.20"));
- return (1,0);
- }
- if ($port !~ /^\d*$/) {
- $in->ask_warn('', _("The port number should be an integer!"));
- return (1,1);
- }
- return 0;
- } }
- },
- [
- { label => _("CUPS server IP"), val => \$server },
- { label => _("Port"), val => \$port },
- ($::expert ?
- { text => _("Automatic CUPS configuration"), type => 'bool',
- val => \$autoconf } : ()),
- ]
- )) {
- # We have clicked "OK"
- $retvalue = 1;
- # Set BrowsePoll line
- if (($server ne $oldserver) || ($port ne $oldport)) {
- $server && $port and $server = "$server:$port";
- if ($server) {
- @cupsd_conf =
- map { $server and
- s/^\s*BrowsePoll\s+(\S+)/BrowsePoll $server/ and
- $server = '';
- $_ } @cupsd_conf;
- $server and push @cupsd_conf, "\nBrowsePoll $server\n";
- } else {
- @cupsd_conf =
- map { s/^\s*BrowsePoll\s+(\S+)/\#BrowsePoll $1/;
- $_ } @cupsd_conf;
- }
- printer::write_cupsd_conf(@cupsd_conf);
- }
- # Set auto-configuration state
- if ($autoconf != $oldautoconf) {
- printer::set_cups_autoconf($autoconf);
- }
- # Save user settings for auto-install
- $printer->{BROWSEPOLLADDR} = $server;
- $printer->{BROWSEPOLLPORT} = $port;
- $printer->{MANUALCUPSCONFIG} = 1 - $autoconf;
- }
- return $retvalue;
-}
-
-sub setup_printer_connection {
- my ($printer, $in, $upNetwork) = @_;
- # Choose the appropriate connection config dialog
- my $done = 1;
- for ($printer->{TYPE}) {
- /LOCAL/ and setup_local ($printer, $in) and last;
- /LPD/ and setup_lpd ($printer, $in, $upNetwork) and last;
- /SOCKET/ and setup_socket ($printer, $in, $upNetwork) and last;
- /SMB/ and setup_smb ($printer, $in, $upNetwork) and last;
- /NCP/ and setup_ncp ($printer, $in, $upNetwork) and last;
- /URI/ and setup_uri ($printer, $in, $upNetwork) and last;
- /POSTPIPE/ and setup_postpipe ($printer, $in) and last;
- $done = 0; last;
- }
- return $done;
-}
-
-sub auto_detect {
- my ($in) = @_;
- {
- my $w = $in->wait_message(_("Test ports"), _("Detecting devices..."));
- modules::get_probeall("usb-interface") and eval { modules::load("printer") };
- eval { modules::unload(qw(lp parport_pc parport_probe parport)) }; #- on kernel 2.4 parport has to be unloaded to probe again
- eval { modules::load(qw(parport_pc lp parport_probe)); }; #- take care as not available on 2.4 kernel (silent error).
- }
- my $b = before_leaving { eval { modules::unload("parport_probe") } };
- detect_devices::whatPrinter();
-}
-
-sub wizard_welcome {
- my ($printer, $in) = @_;
- my $ret;
- my $autodetect = 1;
- $autodetect = 0 if ($printer->{NOAUTODETECT});
- if ($in) {
- eval {
- if ($::expert) {
- $ret = $in->ask_okcancel
- (_("Add a new printer"),
- _("
-Welcome to the Printer Setup Wizard
-
-This wizard allows you to install local or remote printers to be used from this machine and also from other machines in the network.
-
-It asks you for all necessary information to set up the printer and gives you access to all available printer drivers, driver options, and printer connection types."));
- } else {
- $ret = $in->ask_from_
- ({title => _("Local Printer"),
- messages => _("
-Welcome to the Printer Setup Wizard
-
-This wizard will help you to install your printer(s) connected to this computer.
-
-Please plug in your printer(s) on this computer and turn it/them on. Click on \"Next\" when you are ready, and on \"Cancel\" when you do not want to set up your printer(s) now.
-
-Note that some computers can crash during the printer auto-detection, turn off \"Auto-detect printers\" to do a printer installation without auto-detection. Use the \"Expert Mode\" of printerdrake when you want to set up printing on a remote printer if printerdrake does not list it automatically.")},
- [
- { text => _("Auto-detect printers"), type => 'bool',
- val => \$autodetect},
- ]);
- if (!$autodetect) {
- $printer->{NOAUTODETECT} = 1;
- } else {
- undef $printer->{NOAUTODETECT};
- }
- }
- };
- return ($@ =~ /wizcancel/) ? 0 : $ret;
- }
-}
-
-sub wizard_congratulations {
- my ($in) = @_;
- if ($in) {
- $in->ask_okcancel(_("Local Printer"),
- _("
-Congratulations, your printer is now installed and configured!
-
-You can print using the \"Print\" command of your application (usually in the \"File\" menu).
-
-If you want to add, remove, or rename a printer, or if you want to change the default option settings (paper input tray, printout quality, ...), select \"Printer\" in the \"Hardware\" section of the Mandrake Control Center."))
- }
-}
-
-sub setup_local {
- my ($printer, $in) = @_;
- my (@port, @str, $device);
- my $queue = $printer->{OLD_QUEUE};
- my $do_auto_detect;
- if ((!$::expert) && ($::isWizard)) {
- $do_auto_detect = !$printer->{NOAUTODETECT};
- } else {
- local $::isWizard = 0;
- my $res = $in->ask_from_list_
- (_("Auto-Detection of Printers"),
- _("Printerdrake is able to auto-detect your locally connected parallel and USB printers for you, but note that on some systems the auto-detection CAN FREEZE YOUR SYSTEM AND THIS CAN LEAD TO CORRUPTED FILE SYSTEMS! So do it ON YOUR OWN RISK!
-
-Do you really want to get your printers auto-detected?"),
- [_("Do auto-detection"),
- _("Set up printer manually")],
- _("Do auto-detection"));
- $do_auto_detect = ($res eq _("Do auto-detection"));
- }
- my @parport = ();
- my $menuentries = {};
- $in->set_help('setupLocal') if $::isInstall;
- if ($do_auto_detect) {
- # When HPOJ is running, it blocks the printer ports on which it is
- # configured, so we stop it here. If it is not installed or not
- # configured, this command has no effect.
- printer::stop_service("hpoj");
- @parport = auto_detect($in);
- # We have more than one printer, so we must ask the user for a queue
- # name in the fully automatic printer configuration.
- $printer->{MORETHANONE} = ($#parport > 0);
- for my $p (@parport) {
- if ($p->{val}{DESCRIPTION}) {
- my $menustr = $p->{val}{DESCRIPTION};
- if ($p->{port} =~ m!^/dev/lp(\d+)$!) {
- $menustr .= _(" on parallel port \#%s", $1);
- } elsif ($p->{port} =~ m!^/dev/usb/lp(\d+)$!) {
- $menustr .= _(", USB printer \#%s", $1);
- }
- if ($::expert) {
- $menustr .= " ($p->{port})";
- }
- $menuentries->{$menustr} = $p->{port};
- push @str, _("Detected %s", $menustr);
- } else {
- my $menustr;
- if ($p->{port} =~ m!^/dev/lp(\d+)$!) {
- $menustr = _("Printer on parallel port \#%s", $1);
- } elsif ($p->{port} =~ m!^/dev/usb/lp(\d+)$!) {
- $menustr = _("USB printer \#%s", $1);
- }
- if ($::expert) {
- $menustr .= " ($p->{port})";
- }
- $menuentries->{$menustr} = $p->{port};
- }
- }
- if ($::expert) {
- @port = detect_devices::whatPrinterPort();
- for my $q (@port) {
- if (@str) {
- my $alreadyfound = 0;
- for my $p (@parport) {
- if ($p->{port} eq $q) {
- $alreadyfound = 1;
- last;
- }
- }
- if ($alreadyfound) {
- next;
- }
- }
- my $menustr;
- if ($q =~ m!^/dev/lp(\d+)$!) {
- $menustr = _("Printer on parallel port \#%s", $1);
- } elsif ($q =~ m!^/dev/usb/lp(\d+)$!) {
- $menustr = _("USB printer \#%s", $1);
- }
- if ($::expert) {
- $menustr .= " ($q)";
- }
- $menuentries->{$menustr} = $q;
- }
- }
- # We are ready with auto-detection, so we restart HPOJ here. If it
- # is not installed or not configured, this command has no effect.
- printer::start_service("hpoj");
- } else {
- # Always ask for queue name in recommended mode when no auto-
- # detection was done
- $printer->{MORETHANONE} = ($#parport > 0);
- my $m;
- for ($m = 0; $m <= 2; $m++) {
- my $menustr = _("Printer on parallel port \#%s", $m);
- if ($::expert) {
- $menustr .= " (/dev/lp$m)";
- }
- $menuentries->{$menustr} = "/dev/lp$m";
- $menustr = _("USB printer \#%s", $m);
- if ($::expert) {
- $menustr .= " (/dev/usb/lp$m)";
- }
- $menuentries->{$menustr} = "/dev/usb/lp$m";
- }
- }
- my @menuentrieslist = sort { $menuentries->{$a} cmp $menuentries->{$b} }
- keys(%{$menuentries});
- my $menuchoice = "";
- my $oldmenuchoice = "";
- if (($printer->{configured}{$queue}) &&
- ($printer->{currentqueue}{connect} =~ m/^file:/)) {
- # Non-HP or HP print-only device (HPOJ not used)
- $device = $printer->{currentqueue}{connect};
- $device =~ s/^file://;
- for my $p (keys %{$menuentries}) {
- if ($device eq $menuentries->{$p}) {
- $menuchoice = $p;
- last;
- }
- }
- } elsif (($printer->{configured}{$queue}) &&
- ($printer->{currentqueue}{connect} =~ m!^ptal:/mlc:!)) {
- # HP multi-function device (controlled by HPOJ)
- my $ptaldevice = $printer->{currentqueue}{connect};
- $ptaldevice =~ s!^ptal:/mlc:!!;
- if ($ptaldevice =~ /^par:(\d+)$/) {
- $device = "/dev/lp$1";
- for my $p (keys %{$menuentries}) {
- if ($device eq $menuentries->{$p}) {
- $menuchoice = $p;
- last;
- }
- }
- } else {
- my $make = lc($printer->{currentqueue}{make});
- my $model = lc($printer->{currentqueue}{model});
- $device = "";
- for my $p (keys %{$menuentries}) {
- my $menumakemodel = lc($p);
- if (($menumakemodel =~ /$make/) &&
- ($menumakemodel =~ /$model/)) {
- $menuchoice = $p;
- $device = $menuentries->{$p};
- last;
- }
- }
- }
- } else {
- $device = "";
- }
- if (($menuchoice eq "") && (@menuentrieslist > -1)) {
- $menuchoice = $menuentrieslist[0];
- $oldmenuchoice = $menuchoice;
- if ($device eq "") {
- $device = $menuentries->{$menuchoice};
- }
- }
- if ($in) {
- $::expert or $in->set_help('configurePrinterDev') if $::isInstall;
- if ($#menuentrieslist < 0) { # No menu entry
- # auto-detection has failed, we must do all manually
- $do_auto_detect = 0;
- $printer->{MANUAL} = 1;
- if ($::expert) {
- $device = $in->ask_from_entry
- (_("Local Printer"),
- _("No local printer found! To manually install a printer enter a device name/file name in the input line (Parallel Ports: /dev/lp0, /dev/lp1, ..., equivalent to LPT1:, LPT2:, ..., 1st USB printer: /dev/usb/lp0, 2nd USB printer: /dev/usb/lp1, ...)."),
- {
- complete => sub {
- unless ($menuchoice ne "") {
- $in->ask_warn('', _("You must enter a device or file name!"));
- return (1,0);
- }
- return 0;
- }
- });
- if ($device eq "") {
- return 0;
- }
- } else {
- $in->ask_warn(_("Local Printer"),
- _("No local printer found!\n\n") .
- ($::isInstall ? _("Network printers can only be installed after the installation. Choose \"Hardware\" and then \"Printer\" in the Mandrake Control Center.") :
- _("To install network printers, click \"Cancel\", switch to the \"Expert Mode\", and click \"Add a new printer\" again.")));
- return 0;
- }
- } else {
- my $manualconf = 0;
- $manualconf = 1 if (($printer->{MANUAL}) || (!$do_auto_detect));
- if (!$in->ask_from_(
- {title => _("Local Printer"),
- messages => (($do_auto_detect ?
- ($::expert ?
- (($#menuentrieslist == 0) ?
-_("The following printer was auto-detected, if it is not the one you want to configure, enter a device name/file name in the input line") :
-_("Here is a list of all auto-detected printers. Please choose the printer you want to set up or enter a device name/file name in the input line")) :
- (($#menuentrieslist == 0) ?
-_("The following printer was auto-detected. The configuration of the printer will work fully automatically. If your printer was not correctly detected or if you prefer a customized printer configuration, turn on \"Manual configuration\".") :
-_("Here is a list of all auto-detected printers. Please choose the printer you want to set up. The configuration of the printer will work fully automatically. If your printer was not correctly detected or if you prefer a customized printer configuration, turn on \"Manual configuration\"."))) :
- ($::expert ?
-_("Please choose the port where your printer is connected to or enter a device name/file name in the input line") :
-_("Please choose the port where your printer is connected to."))) .
- ($::expert ?
-_(" (Parallel Ports: /dev/lp0, /dev/lp1, ..., equivalent to LPT1:, LPT2:, ..., 1st USB printer: /dev/usb/lp0, 2nd USB printer: /dev/usb/lp1, ...).") :
- ())),
- callbacks => {
- complete => sub {
- unless ($menuchoice ne "") {
- $in->ask_warn('', _("You must choose/enter a printer/device!"));
- return (1,0);
- }
- return 0;
- },
- changed => sub {
- if ($oldmenuchoice ne $menuchoice) {
- $device = $menuentries->{$menuchoice};
- $oldmenuchoice = $menuchoice;
- }
- return 0;
- }
- }},
- [
- ($::expert ?
- { val => \$device } : ()),
- { val => \$menuchoice, list => \@menuentrieslist,
- not_edit => !$::expert, format => \&translate,
- allow_empty_list => 1, type => 'list' },
- (((!$::expert) && ($do_auto_detect) && ($printer->{NEW})) ?
- { text => _("Manual configuration"), type => 'bool',
- val => \$manualconf } : ()),
- ]
- )) {
- return 0;
- }
- if ($device ne $menuentries->{$menuchoice}) {
- $menuchoice = "";
- $do_auto_detect = 0;
- }
- if ($manualconf) {
- $printer->{MANUAL} = 1;
- } else {
- undef $printer->{MANUAL};
- }
- }
- }
-
- #- Check whether the printer is an HP multi-function device and
- #- configure HPOJ if it is one
-
- my $ptaldevice = "";
- my $isHPOJ = 0;
- if (!$do_auto_detect) {
- local $::isWizard = 0;
- $isHPOJ = $in->ask_yesorno(_("Local Printer"),
- _("Is your printer a multi-function device from HP (OfficeJet, PSC, LaserJet 1100/1200/1220/3200/3300 with scanner), an HP PhotoSmart P100 or 1315 or an HP LaserJet 2200?"), 0);
- }
- if (($menuchoice =~ /HP\s+OfficeJet/i) ||
- ($menuchoice =~ /HP\s+PSC/i) ||
- ($menuchoice =~ /HP\s+PhotoSmart\s+P?\s*100\D/i) ||
- ($menuchoice =~ /HP\s+PhotoSmart\s+P?\s*1315/i) ||
- ($menuchoice =~ /HP\s+LaserJet\s+1100/i) ||
- ($menuchoice =~ /HP\s+LaserJet\s+1200/i) ||
- ($menuchoice =~ /HP\s+LaserJet\s+1220/i) ||
- ($menuchoice =~ /HP\s+LaserJet\s+2200/i) ||
- ($menuchoice =~ /HP\s+LaserJet\s+3200/i) ||
- ($menuchoice =~ /HP\s+LaserJet\s+33.0/i) ||
- ($isHPOJ)) {
- # Install HPOJ package
- if ((!$::testing) &&
- (!printer::files_exist((qw(/usr/sbin/ptal-mlcd
- /etc/ptal-start.conf))))) {
- my $w = $in->wait_message('', _("Installing HPOJ package..."));
- $in->do_pkgs->install('hpoj');
- }
- # Configure and start HPOJ
- my $w = $in->wait_message
- ('', _("Checking device and configuring HPOJ..."));
- $ptaldevice = printer::configure_hpoj($device, @parport);
-
- if ($ptaldevice) {
- # Configure scanning with SANE on the MF device
- if (($menuchoice =~ /HP\s+OfficeJet\s+[KVRGPD]/i) ||
- ($menuchoice =~ /HP\s+PSC\s+[579]/i)) {
- # Install SANE
- if ((!$::testing) &&
- (!printer::files_exist((qw(/usr/bin/scanimage
- /usr/bin/xscanimage
- /usr/bin/xsane
- /etc/sane.d/dll.conf),
- (printer::files_exist
- ('/usr/bin/gimp') ?
- '/usr/bin/xsane-gimp' :
- ()))))) {
- my $w = $in->wait_message
- ('', _("Installing SANE package..."));
- $in->do_pkgs->install('sane-backends', 'sane-frontends',
- 'xsane',
- if_($in->do_pkgs->is_installed
- ('gimp'),'xsane-gimp'));
- }
- # Configure the HP SANE backend
- printer::config_sane($ptaldevice);
- }
- # Inform user about how to scan with his MF device
- my $text = scanner_help($menuchoice, "ptal:/$ptaldevice");
- if ($text) {
- $in->ask_warn(_("Scanning on your HP multi-function device"),
- $text);
- }
- # make the DeviceURI from $ptaldevice.
- $printer->{currentqueue}{connect} = "ptal:/" . $ptaldevice;
- } else {
- # make the DeviceURI from $device.
- $printer->{currentqueue}{connect} = "file:" . $device;
- }
- } else {
- # make the DeviceURI from $device.
- $printer->{currentqueue}{connect} = "file:" . $device;
- }
-
- #- if CUPS is the spooler, make sure that CUPS knows the device
- if ($printer->{SPOOLER} eq "cups") {
- my $w = $in->wait_message
- ('', _("Making printer port available for CUPS..."));
- if ($ptaldevice eq "") {
- printer::assure_device_is_available_for_cups($device);
- } else {
- printer::assure_device_is_available_for_cups($ptaldevice);
- }
- }
-
- #- Read the printer driver database if necessary
- if ((keys %printer::thedb) == 0) {
- my $w = $in->wait_message('', _("Reading printer database..."));
- printer::read_printer_db($printer->{SPOOLER});
- }
-
- #- Search the database entry which matches the detected printer best
- my $descr = "";
- foreach (@parport) {
- $device eq $_->{port} or next;
- if (($_->{val}{MANUFACTURER}) && ($_->{val}{MODEL})) {
- $descr = "$_->{val}{MANUFACTURER} $_->{val}{MODEL}";
- } else {
- $descr = $_->{val}{DESCRIPTION};
- }
- # Clean up the description from noise which makes the best match
- # difficult
- $descr =~ s/\s+Inc\.//;
- $descr =~ s/\s+Corp\.//;
- $descr =~ s/\s+SA\.//;
- $descr =~ s/\s+S\.\s*A\.//;
- $descr =~ s/\s+Ltd\.//;
- $descr =~ s/\s+International//;
- $descr =~ s/\s+Int\.//;
- $descr =~ s/\s+[Ss]eries//;
- $descr =~ s/\s+\(?[Pp]rinter\)?$//;
- $printer->{DBENTRY} = "";
- for my $entry (keys(%printer::thedb)) {
- if ($entry =~ m!$descr!) {
- $printer->{DBENTRY} = $entry;
- last;
- }
- }
- if (!$printer->{DBENTRY}) {
- $printer->{DBENTRY} =
- bestMatchSentence ($descr, keys %printer::thedb);
- }
- # If the manufacturer was not guessed correctly, discard the
- # guess.
- $printer->{DBENTRY} =~ /^([^\|]+)\|/;
- my $guessedmake = lc($1);
- if (($descr !~ /$guessedmake/i) &&
- (($guessedmake ne "hp") ||
- ($descr !~ /Hewlett[\s-]+Packard/i)))
- {$printer->{DBENTRY} = ""};
- }
-
- #- Pre-fill the "Description" field with the printer's model name
- if ((!$printer->{currentqueue}{desc}) && ($descr)) {
- $printer->{currentqueue}{desc} = $descr;
- $printer->{currentqueue}{desc} =~ s/\|/ /g;
- }
-
- #- When we have chosen a printer here, the question whether the
- #- automatically chosen model from the database is correct, should
- #- have "This model is correct" as default answer
- delete($printer->{MANUALMODEL});
-
- 1;
-}
-
-sub setup_lpd {
- my ($printer, $in, $upNetwork) = @_;
-
- # Check whether the network functionality is configured and
- # running
- if (!check_network($printer, $in, $upNetwork)) {return 0};
-
- $in->set_help('setupLPD') if $::isInstall;
- my ($uri, $remotehost, $remotequeue);
- my $queue = $printer->{OLD_QUEUE};
- if (($printer->{configured}{$queue}) &&
- ($printer->{currentqueue}{connect} =~ m/^lpd:/)) {
- $uri = $printer->{currentqueue}{connect};
- $uri =~ m!^\s*lpd://([^/]+)/([^/]+)/?\s*$!;
- $remotehost = $1;
- $remotequeue = $2;
- } else {
- $remotehost = "";
- $remotequeue = "lp";
- }
-
- return if !$in->ask_from(_("Remote lpd Printer Options"),
-_("To use a remote lpd printer, you need to supply the hostname of the printer server and the printer name on that server."), [
-{ label => _("Remote host name"), val => \$remotehost },
-{ label => _("Remote printer name"), val => \$remotequeue } ],
-complete => sub {
- unless ($remotehost ne "") {
- $in->ask_warn('', _("Remote host name missing!"));
- return (1,0);
- }
- unless ($remotequeue ne "") {
- $in->ask_warn('', _("Remote printer name missing!"));
- return (1,1);
- }
- return 0;
-}
- );
- #- make the DeviceURI from user input.
- $printer->{currentqueue}{connect} =
- "lpd://$remotehost/$remotequeue";
-
- #- LPD does not support filtered queues to a remote LPD server by itself
- #- It needs an additional program as "rlpr"
- if (($printer->{SPOOLER} eq 'lpd') && (!$::testing) &&
- (!printer::files_exist((qw(/usr/bin/rlpr))))) {
- $in->do_pkgs->install('rlpr');
- }
-
- 1;
-}
-
-sub setup_smb {
- my ($printer, $in, $upNetwork) = @_;
-
- # Check whether the network functionality is configured and
- # running
- if (!check_network($printer, $in, $upNetwork)) {return 0};
-
- $in->set_help('setupSMB') if $::isInstall;
- my ($uri, $smbuser, $smbpassword, $workgroup, $smbserver, $smbserverip, $smbshare);
- my $queue = $printer->{OLD_QUEUE};
- if (($printer->{configured}{$queue}) &&
- ($printer->{currentqueue}{connect} =~ m/^smb:/)) {
- $uri = $printer->{currentqueue}{connect};
- $uri =~ m!^\s*smb://(.*)$!;
- my $parameters = $1;
- # Get the user's login and password from the URI
- if ($parameters =~ m!([^@]*)@([^@]+)!) {
- my $login = $1;
- $parameters = $2;
- if ($login =~ m!([^:]*):([^:]*)!) {
- $smbuser = $1;
- $smbpassword = $2;
- } else {
- $smbuser = $login;
- $smbpassword = "";
- }
- } else {
- $smbuser = "";
- $smbpassword = "";
- }
- # Get the workgroup, server, and share name
- if ($parameters =~ m!([^/]*)/([^/]+)/([^/]+)$!) {
- $workgroup = $1;
- $smbserver = $2;
- $smbshare = $3;
- } elsif ($parameters =~ m!([^/]+)/([^/]+)$!) {
- $workgroup = "";
- $smbserver = $1;
- $smbshare = $2;
- } else {
- die "The \"smb://\" URI must at least contain the server name and the share name!\n";
- }
- if (network::is_ip($smbserver)) {
- $smbserverip = $smbserver;
- $smbserver = "";
- }
- }
-
- return if !$in->ask_from(_("SMB (Windows 9x/NT) Printer Options"),
-_("To print to a SMB printer, you need to provide the SMB host name (Note! It may be different from its TCP/IP hostname!) and possibly the IP address of the print server, as well as the share name for the printer you wish to access and any applicable user name, password, and workgroup information."), [
-{ label => _("SMB server host"), val => \$smbserver },
-{ label => _("SMB server IP"), val => \$smbserverip },
-{ label => _("Share name"), val => \$smbshare },
-{ label => _("User name"), val => \$smbuser },
-{ label => _("Password"), val => \$smbpassword, hidden => 1 },
-{ label => _("Workgroup"), val => \$workgroup }, ],
-complete => sub {
- unless ((network::is_ip($smbserverip)) || ($smbserverip eq "")) {
- $in->ask_warn('', _("IP address should be in format 1.2.3.4"));
- return (1,1);
- }
- unless (($smbserver ne "") || ($smbserverip ne "")) {
- $in->ask_warn('', _("Either the server name or the server's IP must be given!"));
- return (1,0);
- }
- unless ($smbshare ne "") {
- $in->ask_warn('', _("Samba share name missing!"));
- return (1,2);
- }
- unless ($smbpassword eq "") {
- local $::isWizard = 0;
- my $yes = $in->ask_yesorno(_("SECURITY WARNING!"),
-_("You are about to set up printing to a Windows account with password. Due to a fault in the architecture of the Samba client software the password is put in clear text into the command line of the Samba client used to transmit the print job to the Windows server. So it is possible for every user on this machine to display the password on the screen by issuing commands as \"ps auxwww\".
-
-We recommend to make use of one of the following alternatives (in all cases you have to make sure that only machines from your local network have access to your Windows server, for example by means of a firewall):
-
-Use a password-less account on your Windows server, as the \"GUEST\" account or a special account dedicated for printing. Do not remove the password protection from a personal account or the administrator account.
-
-Set up your Windows server to make the printer available under the LPD protocol. Then set up printing from this machine with the \"%s\" connection type in Printerdrake.
-
-", _("Printer on remote lpd server")) .
-($::expert ?
-_("Set up your Windows server to make the printer available under the IPP protocol and set up printing from this machine with the \"%s\" connection type in Printerdrake.
-
-", _("Enter a printer device URI")) : "") .
-_("Connect your printer to a Linux server and let your Windows machine(s) connect to it as a client.
-
-Do you really want to continue setting up this printer as you are doing now?"), 0);
- return 0 if $yes;
- return (1,2);
- }
- return 0;
-}
- );
- #- make the DeviceURI from, try to probe for available variable to
- #- build a suitable URI.
- $printer->{currentqueue}{connect} =
- join '', ("smb://", ($smbuser && ($smbuser .
- ($smbpassword && ":$smbpassword") . "@")), ($workgroup && ("$workgroup/")),
- ($smbserver || $smbserverip), "/$smbshare");
-
- if ((!$::testing) &&
- (!printer::files_exist((qw(/usr/bin/smbclient))))) {
- $in->do_pkgs->install('samba-client');
- }
- $printer->{SPOOLER} eq 'cups' and printer::restart_queue($printer);
- 1;
-}
-
-sub setup_ncp {
- my ($printer, $in, $upNetwork) = @_;
-
- # Check whether the network functionality is configured and
- # running
- if (!check_network($printer, $in, $upNetwork)) {return 0};
-
- $in->set_help('setupNCP') if $::isInstall;
- my ($uri, $ncpuser, $ncppassword, $ncpserver, $ncpqueue);
- my $queue = $printer->{OLD_QUEUE};
- if (($printer->{configured}{$queue}) &&
- ($printer->{currentqueue}{connect} =~ m/^ncp:/)) {
- $uri = $printer->{currentqueue}{connect};
- my $parameters = $uri =~ m!^\s*ncp://(.*)$!;
- # Get the user's login and password from the URI
- if ($parameters =~ m!([^@]*)@([^@]+)!) {
- my $login = $1;
- $parameters = $2;
- if ($login =~ m!([^:]*):([^:]*)!) {
- $ncpuser = $1;
- $ncppassword = $2;
- } else {
- $ncpuser = $login;
- $ncppassword = "";
- }
- } else {
- $ncpuser = "";
- $ncppassword = "";
- }
- # Get the workgroup, server, and share name
- if ($parameters =~ m!([^/]+)/([^/]+)$!) {
- $ncpserver = $1;
- $ncpqueue = $2;
- } else {
- die "The \"ncp://\" URI must at least contain the server name and the share name!\n";
- }
- }
-
- return if !$in->ask_from(_("NetWare Printer Options"),
-_("To print on a NetWare printer, you need to provide the NetWare print server name (Note! it may be different from its TCP/IP hostname!) as well as the print queue name for the printer you wish to access and any applicable user name and password."), [
-{ label => _("Printer Server"), val => \$ncpserver },
-{ label => _("Print Queue Name"), val => \$ncpqueue },
-{ label => _("User name"), val => \$ncpuser },
-{ label => _("Password"), val => \$ncppassword, hidden => 1 } ],
-complete => sub {
- unless ($ncpserver ne "") {
- $in->ask_warn('', _("NCP server name missing!"));
- return (1,0);
- }
- unless ($ncpqueue ne "") {
- $in->ask_warn('', _("NCP queue name missing!"));
- return (1,1);
- }
- return 0;
-}
- );
- # Generate the Foomatic URI
- $printer->{currentqueue}{connect} =
- join '', ("ncp://", ($ncpuser && ($ncpuser .
- ($ncppassword && ":$ncppassword") . "@")),
- "$ncpserver/$ncpqueue");
-
- if ((!$::testing) &&
- (!printer::files_exist((qw(/usr/bin/nprint))))) {
- $in->do_pkgs->install('ncpfs');
- }
-
- 1;
-}
-
-sub setup_socket {
- my ($printer, $in, $upNetwork) = @_;
-
- # Check whether the network functionality is configured and
- # running
- if (!check_network($printer, $in, $upNetwork)) {return 0};
-
- $in->set_help('setupSocket') if $::isInstall;
- my ($hostname, $port, $uri, $remotehost,$remoteport);
- my $queue = $printer->{OLD_QUEUE};
- if (($printer->{configured}{$queue}) &&
- ($printer->{currentqueue}{connect} =~ m/^socket:/)) {
- $uri = $printer->{currentqueue}{connect};
- ($remotehost, $remoteport) = $uri =~ m!^\s*socket://([^/:]+):([0-9]+)/?\s*$!;
- } else {
- $remotehost = "";
- $remoteport = "9100";
- }
-
- return if !$in->ask_from(_("TCP/Socket Printer Options"),
-_("To print to a TCP or socket printer, you need to provide the host name of the printer and optionally the port number. On HP JetDirect servers the port number is usually 9100, on other servers it can vary. See the manual of your hardware."), [
-{ label => _("Printer host name"), val => \$remotehost },
-{ label => _("Port"), val => \$remoteport } ],
-complete => sub {
- unless ($remotehost ne "") {
- $in->ask_warn('', _("Printer host name missing!"));
- return (1,0);
- }
- unless ($remoteport =~ /^[0-9]+$/) {
- $in->ask_warn('', _("The port number should be an integer!"));
- return (1,1);
- }
- return 0;
-}
- );
-
- #- make the Foomatic URI
- $printer->{currentqueue}{connect} =
- join '', ("socket://$remotehost", $remoteport ? (":$remoteport") : ());
-
- #- LPD and LPRng need netcat ('nc') to access to socket printers
- if ((($printer->{SPOOLER} eq 'lpd') || ($printer->{SPOOLER} eq 'lprng'))&&
- (!$::testing) &&
- (!printer::files_exist((qw(/usr/bin/nc))))) {
- $in->do_pkgs->install('nc');
- }
-
- 1;
-}
-
-sub setup_uri {
- my ($printer, $in, $upNetwork) = @_;
-
- $in->set_help('setupURI') if $::isInstall;
- return if !$in->ask_from(_("Printer Device URI"),
-_("You can specify directly the URI to access the printer. The URI must fulfill either the CUPS or the Foomatic specifications. Note that not all URI types are supported by all the spoolers."), [
-{ label => _("Printer Device URI"),
-val => \$printer->{currentqueue}{connect},
-list => [ $printer->{currentqueue}{connect},
- "file:/",
- "http://",
- "ipp://",
- "lpd://",
- "smb://",
- "ncp://",
- "socket://",
- "postpipe:\"\"",
- ], not_edit => 0 }, ],
-complete => sub {
- unless ($printer->{currentqueue}{connect} =~ /[^:]+:.+/) {
- $in->ask_warn('', _("A valid URI must be entered!"));
- return (1,0);
- }
- return 0;
-}
- );
-
- # Non-local printer, check network and abort if no network available
- if (($printer->{currentqueue}{connect} !~ m!^file:/!) &&
- (!check_network($printer, $in, $upNetwork))) {return 0};
-
- # If the chosen protocol needs additional software, install it.
-
- # LPD does not support filtered queues to a remote LPD server by itself
- # It needs an additional program as "rlpr"
- if (($printer->{currentqueue}{connect} =~ /^lpd:/) &&
- ($printer->{SPOOLER} eq 'lpd') && (!$::testing) &&
- (!printer::files_exist((qw(/usr/bin/rlpr))))) {
- $in->do_pkgs->install('rlpr');
- }
- if (($printer->{currentqueue}{connect} =~ /^smb:/) &&
- (!$::testing) &&
- (!printer::files_exist((qw(/usr/bin/smbclient))))) {
- $in->do_pkgs->install('samba-client');
- }
- if (($printer->{currentqueue}{connect} =~ /^ncp:/) &&
- (!$::testing) &&
- (!printer::files_exist((qw(/usr/bin/nprint))))) {
- $in->do_pkgs->install('ncpfs');
- }
- #- LPD and LPRng need netcat ('nc') to access to socket printers
- if (($printer->{currentqueue}{connect} =~ /^socket:/) &&
- (($printer->{SPOOLER} eq 'lpd') || ($printer->{SPOOLER} eq 'lprng')) &&
- (!$::testing) &&
- (!printer::files_exist((qw(/usr/bin/nc))))) {
- $in->do_pkgs->install('nc');
- }
- 1;
-}
-
-sub setup_postpipe {
- my ($printer, $in) = @_;
-
- $in->set_help('setupPostpipe') if $::isInstall;
- my $uri;
- my $commandline;
- my $queue = $printer->{OLD_QUEUE};
- if (($printer->{configured}{$queue}) &&
- ($printer->{currentqueue}{connect} =~ m/^postpipe:/)) {
- $uri = $printer->{currentqueue}{connect};
- $uri =~ m!^\s*postpipe:\"(.*)\"$!;
- $commandline = $1;
- } else {
- $commandline = "";
- }
-
- return if !$in->ask_from(_("Pipe into command"),
-_("Here you can specify any arbitrary command line into which the job should be piped instead of being sent directly to a printer."), [
-{ label => _("Command line"),
-val => \$commandline }, ],
-complete => sub {
- unless ($commandline ne "") {
- $in->ask_warn('', _("A command line must be entered!"));
- return (1,0);
- }
- return 0;
-}
-);
-
- #- make the Foomatic URI
- $printer->{currentqueue}{connect} = "postpipe:$commandline";
-
- 1;
-}
-
-sub choose_printer_name {
- my ($printer, $in) = @_;
- # Name, description, location
- $in->set_help('setupPrinterName') if $::isInstall;
- my $default = $printer->{currentqueue}{queue};
- $in->ask_from_
- (
- { title => _("Enter Printer Name and Comments"),
- #cancel => !$printer->{configured}{$queue} ? '' : _("Remove queue"),
- callbacks => { complete => sub {
- unless ($printer->{currentqueue}{queue} =~ /^\w+$/) {
- $in->ask_warn('', _("Name of printer should contain only letters, numbers and the underscore"));
- return (1,0);
- }
- local $::isWizard = 0;
- if (($printer->{configured}{$printer->{currentqueue}{queue}})
- && ($printer->{currentqueue}{queue} ne $default) &&
- (!$in->ask_yesorno('', _("The printer \"%s\" already exists,\ndo you really want to overwrite its configuration?",
- $printer->{currentqueue}{queue}),
- 0))) {
- return (1,0); # Let the user correct the name
- }
- return 0;
- },
- },
- messages =>
-_("Every printer needs a name (for example \"printer\"). The Description and Location fields do not need to be filled in. They are comments for the users.") },
- [ { label => _("Name of printer"), val => \$printer->{currentqueue}{queue} },
- { label => _("Description"), val => \$printer->{currentqueue}{desc} },
- { label => _("Location"), val => \$printer->{currentqueue}{loc} },
- ]) or return 0;
-
- $printer->{QUEUE} = $printer->{currentqueue}{queue};
- 1;
-}
-
-sub get_db_entry {
- my ($printer, $in) = @_;
- #- Read the printer driver database if necessary
- if ((keys %printer::thedb) == 0) {
- my $w = $in->wait_message('', _("Reading printer database..."));
- printer::read_printer_db($printer->{SPOOLER});
- }
- my $w = $in->wait_message('', _("Preparing printer database..."));
- my $queue = $printer->{OLD_QUEUE};
- if ($printer->{configured}{$queue}) {
- # The queue was already configured
- if ($printer->{configured}{$queue}{queuedata}{foomatic}) {
- # The queue was configured with Foomatic
- my $driverstr;
- if ($printer->{configured}{$queue}{queuedata}{driver} eq "Postscript") {
- $driverstr = "PostScript";
- } else {
- $driverstr = "GhostScript + $printer->{configured}{$queue}{queuedata}{driver}";
- }
- my $make = uc($printer->{configured}{$queue}{queuedata}{make});
- my $model = $printer->{configured}{$queue}{queuedata}{model};
- if ($::expert) {
- $printer->{DBENTRY} = "$make|$model|$driverstr";
- # database key contains the "(recommended)" for the
- # recommended driver, so add it if necessary
- if (!($printer::thedb{$printer->{DBENTRY}}{printer})) {
- $printer->{DBENTRY} .= " (recommended)";
- }
- } else {
- $printer->{DBENTRY} = "$make|$model";
- }
- $printer->{OLD_CHOICE} = $printer->{DBENTRY};
- } elsif (($printer->{SPOOLER} eq "cups") && ($::expert) &&
- ($printer->{configured}{$queue}{queuedata}{ppd})) {
- # Do we have a native CUPS driver or a PostScript PPD file?
- $printer->{DBENTRY} = printer::get_descr_from_ppd($printer) || $printer->{DBENTRY};
- $printer->{OLD_CHOICE} = $printer->{DBENTRY};
- } else {
- # Point the list cursor at least to manufacturer and model of the
- # printer
- $printer->{DBENTRY} = "";
- my $make = uc($printer->{configured}{$queue}{queuedata}{make});
- my $model = $printer->{configured}{$queue}{queuedata}{model};
- my $key;
- for $key (keys %printer::thedb) {
- if ((($::expert) && ($key =~ /^$make\|$model\|.*\(recommended\)$/)) ||
- ((!$::expert) && ($key =~ /^$make\|$model$/))) {
- $printer->{DBENTRY} = $key;
- }
- }
- if ($printer->{DBENTRY} eq "") {
- # Exact match of make and model did not work, try to clean
- # up the model name
- $model =~ s/PS//;
- $model =~ s/PostScript//;
- $model =~ s/Series//;
- for $key (keys %printer::thedb) {
- if ((($::expert) && ($key =~ /^$make\|$model\|.*\(recommended\)$/)) ||
- ((!$::expert) && ($key =~ /^$make\|$model$/))) {
- $printer->{DBENTRY} = $key;
- }
- }
- }
- if (($printer->{DBENTRY} eq "") && ($make ne "")) {
- # Exact match with cleaned-up model did not work, try a best match
- my $matchstr = "$make|$model";
- $printer->{DBENTRY} = bestMatchSentence($matchstr, keys %printer::thedb);
- # If the manufacturer was not guessed correctly, discard the
- # guess.
- $printer->{DBENTRY} =~ /^([^\|]+)\|/;
- my $guessedmake = lc($1);
- if (($matchstr !~ /$guessedmake/i) &&
- (($guessedmake ne "hp") ||
- ($matchstr !~ /Hewlett[\s-]+Packard/i)))
- {$printer->{DBENTRY} = ""};
- }
- # Set the OLD_CHOICE to a non-existing value
- $printer->{OLD_CHOICE} = "XXX";
- }
- } else {
- if (($::expert) && ($printer->{DBENTRY} !~ /(recommended)/)) {
- my ($make, $model) = $printer->{DBENTRY} =~ /^([^\|]+)\|([^\|]+)\|/;
- for my $key (keys %printer::thedb) {
- if ($key =~ /^$make\|$model\|.*\(recommended\)$/) {
- $printer->{DBENTRY} = $key;
- }
- }
- }
- $printer->{OLD_CHOICE} = $printer->{DBENTRY};
- }
-}
-
-sub is_model_correct {
- my ($printer, $in) = @_;
- $in->set_help('chooseModel') if $::isInstall;
- my $dbentry = $printer->{DBENTRY};
- $dbentry =~ s/\|/ /g;
- my $res = $in->ask_from_list_
- (_("Your printer model"),
- _("Printerdrake has compared the model name resulting from the printer auto-detection with the models listed in its printer database to find the best match. This choice can be wrong, especially when your printer is not listed at all in the database. So check whether the choice is correct and click \"The model is correct\" if so and if not, click \"Select model manually\" so that you can choose your printer model manually on the next screen.
-
-For your printer Printerdrake has found:
-
-%s", $dbentry),
- [_("The model is correct"),
- _("Select model manually")],
- ($printer->{MANUALMODEL} ? _("Select model manually") :
- _("The model is correct")));
- return 0 if !$res;
- $printer->{MANUALMODEL} = ($res eq _("Select model manually"));
- 1;
-}
-
-sub choose_model {
- my ($printer, $in) = @_;
- $in->set_help('chooseModel') if $::isInstall;
- #- Read the printer driver database if necessary
- if ((keys %printer::thedb) == 0) {
- my $w = $in->wait_message('', _("Reading printer database..."));
- printer::read_printer_db($printer->{SPOOLER});
- }
- if (!$printer::thedb{$printer->{DBENTRY}}) {
- $printer->{DBENTRY} = _("Raw printer (No driver)");
- }
- # Choose the printer/driver from the list
- return ($printer->{DBENTRY} = $in->ask_from_treelist(_("Printer model selection"),
- _("Which printer model do you have?") .
- _("
-
-Please check whether Printerdrake did the auto-detection of your printer model correctly. Search the correct model in the list when the cursor is standing on a wrong model or on \"Raw printer\".") . " " .
-_("If your printer is not listed, choose a compatible (see printer manual) or a similar one."), '|',
- [ keys %printer::thedb ], $printer->{DBENTRY}));
-
-}
-
-sub get_printer_info {
- my ($printer, $in) = @_;
- #- Read the printer driver database if necessary
- #if ((keys %printer::thedb) == 0) {
- # my $w = $in->wait_message('', _("Reading printer database..."));
- # printer::read_printer_db($printer->{SPOOLER});
- #}
- my $queue = $printer->{OLD_QUEUE};
- my $oldchoice = $printer->{OLD_CHOICE};
- my $newdriver = 0;
- if ((!$printer->{configured}{$queue}) || # New queue or
- (($oldchoice) && ($printer->{DBENTRY}) && # make/model/driver changed
- (($oldchoice ne $printer->{DBENTRY}) ||
- ($printer->{currentqueue}{driver} ne
- $printer::thedb{$printer->{DBENTRY}}{driver})))) {
- delete($printer->{currentqueue}{printer});
- delete($printer->{currentqueue}{ppd});
- $printer->{currentqueue}{foomatic} = 0;
- # Read info from printer database
- foreach (qw(printer ppd driver make model)) { #- copy some parameter, shorter that way...
- $printer->{currentqueue}{$_} = $printer::thedb{$printer->{DBENTRY}}{$_};
- }
- $newdriver = 1;
- }
- # Use the "printer" and not the "foomatic" field to identify a Foomatic
- # queue because in a new queue "foomatic" is not set yet.
- if (($printer->{currentqueue}{printer}) || # We have a Foomatic queue
- ($printer->{currentqueue}{ppd})) { # We have a CUPS+PPD queue
- if ($printer->{currentqueue}{printer}) { # Foomatic queue?
- # In case of a new queue "foomatic" was not set yet
- $printer->{currentqueue}{foomatic} = 1;
- # Now get the options for this printer/driver combo
- if (($printer->{configured}{$queue}) && ($printer->{configured}{$queue}{queuedata}{foomatic})) {
- # The queue was already configured with Foomatic ...
- if (!$newdriver) {
- # ... and the user didn't change the printer/driver
- $printer->{ARGS} = $printer->{configured}{$queue}{args};
- } else {
- # ... and the user has chosen another printer/driver
- $printer->{ARGS} = printer::read_foomatic_options($printer);
- }
- } else {
- # The queue was not configured with Foomatic before
- # Set some special options
- $printer->{SPECIAL_OPTIONS} = '';
- # Default page size depending on the country/language
- # (US/Canada -> Letter, Others -> A4)
- my $pagesize;
- if ($printer->{PAPERSIZE}) {
- $printer->{SPECIAL_OPTIONS} .=
- " -o PageSize=$printer->{PAPERSIZE}";
- } elsif (($pagesize = $in->{lang}) ||
- ($pagesize = $ENV{LC_PAPER}) ||
- ($pagesize = $ENV{LANG}) ||
- ($pagesize = $ENV{LANGUAGE}) ||
- ($pagesize = $ENV{LC_ALL})) {
- if (($pagesize =~ /^en_CA/) ||
- ($pagesize =~ /^fr_CA/) ||
- ($pagesize =~ /^en_US/)) {
- $pagesize = "Letter";
- } else {
- $pagesize = "A4";
- }
- $printer->{SPECIAL_OPTIONS} .=
- " -o PageSize=$pagesize";
- }
- # oki4w driver -> OKI winprinter which needs the
- # oki4daemon to work
- if ($printer->{currentqueue}{driver} eq 'oki4w') {
- if ($printer->{currentqueue}{connect} ne
- 'file:/dev/lp0') {
- $in->ask_warn(_("OKI winprinter configuration"),
- _("You are configuring an OKI laser winprinter. These printers\nuse a very special communication protocol and therefore they work only when connected to the first parallel port. When your printer is connected to another port or to a print server box please connect the printer to the first parallel port before you print a test page. Otherwise the printer will not work. Your connection type setting will be ignored by the driver."));
- }
- $printer->{currentqueue}{connect} = 'file:/dev/null';
- # Start the oki4daemon
- printer::start_service_on_boot('oki4daemon');
- printer::start_service('oki4daemon');
- # Set permissions
- if ($printer->{SPOOLER} eq 'cups') {
- printer::set_permissions('/dev/oki4drv', '660', 'lp',
- 'sys');
- } elsif ($printer->{SPOOLER} eq 'pdq') {
- printer::set_permissions('/dev/oki4drv', '666');
- } else {
- printer::set_permissions('/dev/oki4drv', '660', 'lp',
- 'lp');
- }
- } elsif ($printer->{currentqueue}{driver} eq 'lexmarkinkjet') {
- # Set "Port" option
- if ($printer->{currentqueue}{connect} eq
- 'file:/dev/lp0') {
- $printer->{SPECIAL_OPTIONS} .=
- " -o Port=ParPort1";
- } elsif ($printer->{currentqueue}{connect} eq
- 'file:/dev/lp1') {
- $printer->{SPECIAL_OPTIONS} .=
- " -o Port=ParPort2";
- } elsif ($printer->{currentqueue}{connect} eq
- 'file:/dev/lp2') {
- $printer->{SPECIAL_OPTIONS} .=
- " -o Port=ParPort3";
- } elsif ($printer->{currentqueue}{connect} eq
- 'file:/dev/usb/lp0') {
- $printer->{SPECIAL_OPTIONS} .=
- " -o Port=USB1";
- } elsif ($printer->{currentqueue}{connect} eq
- 'file:/dev/usb/lp1') {
- $printer->{SPECIAL_OPTIONS} .=
- " -o Port=USB2";
- } elsif ($printer->{currentqueue}{connect} eq
- 'file:/dev/usb/lp2') {
- $printer->{SPECIAL_OPTIONS} .=
- " -o Port=USB3";
- } else {
- $in->ask_warn(_("Lexmark inkjet configuration"),
- _("The inkjet printer drivers provided by Lexmark only support local printers, no printers on remote machines or print server boxes. Please connect your printer to a local port or configure it on the machine where it is connected to."));
- return 0;
- }
- # Set device permissions
- $printer->{currentqueue}{connect} =~ /^\s*file:(\S*)\s*$/;
- if ($printer->{SPOOLER} eq 'cups') {
- printer::set_permissions($1, '660', 'lp', 'sys');
- } elsif ($printer->{SPOOLER} eq 'pdq') {
- printer::set_permissions($1, '666');
- } else {
- printer::set_permissions($1, '660', 'lp', 'lp');
- }
- # This is needed to have the device not blocked by the
- # spooler backend.
- $printer->{currentqueue}{connect} = 'file:/dev/null';
- #install packages
- my $drivertype = $printer->{currentqueue}{model};
- if ($drivertype eq 'Z22') {$drivertype = 'Z32';}
- if ($drivertype eq 'Z23') {$drivertype = 'Z33';}
- $drivertype = lc($drivertype);
- if (!printer::files_exist("/usr/local/lexmark/$drivertype/$drivertype")) {
- eval { $in->do_pkgs->install("lexmark-drivers-$drivertype") };
- }
- if (!printer::files_exist("/usr/local/lexmark/$drivertype/$drivertype")) {
- # Driver installation failed, probably we do not have
- # the commercial CDs
- $in->ask_warn(_("Lexmark inkjet configuration"),
- _("To be able to print with your Lexmark inkjet and this configuration, you need the inkjet printer drivers provided by Lexmark (http://www.lexmark.com/). Go to the US site and click on the \"Drivers\" button. Then choose your model and afterwards \"Linux\" as operating system. The drivers come as RPM packages or shell scripts with interactive graphical installation. You do not need to do this configuration by the graphical frontends. Cancel directly after the license agreement. Then print printhead alignment pages with \"lexmarkmaintain\" and adjust the head alignment settings with this program."));
- }
- }
- $printer->{ARGS} = printer::read_foomatic_options($printer);
- delete($printer->{SPECIAL_OPTIONS});
- }
- } elsif ($printer->{currentqueue}{ppd}) { # CUPS+PPD queue?
- # If we had a Foomatic queue before, unmark the flag and initialize
- # the "printer" and "driver" fields
- $printer->{currentqueue}{foomatic} = 0;
- $printer->{currentqueue}{printer} = undef;
- $printer->{currentqueue}{driver} = "CUPS/PPD";
- # Now get the options from this PPD file
- if ($printer->{configured}{$queue}) {
- # The queue was already configured
- if ((!$printer->{DBENTRY}) || (!$oldchoice) ||
- ($printer->{DBENTRY} eq $oldchoice)) {
- # ... and the user didn't change the printer/driver
- $printer->{ARGS} = printer::read_cups_options($queue);
- } else {
- # ... and the user has chosen another printer/driver
- $printer->{ARGS} = printer::read_cups_options("/usr/share/cups/model/$printer->{currentqueue}{ppd}");
- }
- } else {
- # The queue was not configured before
- $printer->{ARGS} = printer::read_cups_options("/usr/share/cups/model/$printer->{currentqueue}{ppd}");
- }
- }
- }
- 1;
-}
-
-sub setup_options {
- my ($printer, $in) = @_;
- my @simple_options =
- ("PageSize", # Media properties
- "MediaType",
- "Form",
- "InputSlot", # Trays
- "Tray",
- "OutBin",
- "OutputBin",
- "FaceUp",
- "FaceDown",
- "Collate",
- "Manual",
- "ManualFeed",
- "Manualfeed",
- "ManualFeeder",
- "Feeder",
- "Duplex", # Double-sided printing
- "Binding",
- "Tumble",
- "DoubleSided",
- "Resolution", # Resolution/Quality
- "GSResolution",
- "JCLResolution",
- "Quality",
- "PrintQuality",
- "PrintoutQuality",
- "QualityType",
- "ImageType",
- "stpImageType",
- "InkType", # Colour/Gray/BW, 4-ink/6-ink
- "stpInkType",
- "Mode",
- "OutputMode",
- "OutputType",
- "ColorMode",
- "ColorModel",
- "PrintingMode",
- "Monochrome",
- "BlackOnly",
- "Grayscale",
- "GrayScale",
- "Colour",
- "Color",
- "Gamma", # Lighter/Darker
- "GammaCorrection",
- "GammaGeneral",
- "MasterGamma",
- "StpGamma",
- "stpGamma",
- "EconoMode", # Ink/Toner saving
- "Economode",
- "TonerSaving",
- "JCLEconomode",
- "HPNup", # Other useful options
- "InstalledMemory", # Laser printer hardware config
- "Option1",
- "Option2",
- "Option3",
- "Option4",
- "Option5",
- "Option6",
- "Option7",
- "Option8",
- "Option9",
- "Option10",
- "Option11",
- "Option12",
- "Option13",
- "Option14",
- "Option15",
- "Option16",
- "Option17",
- "Option18",
- "Option19",
- "Option20",
- "Option21",
- "Option22",
- "Option23",
- "Option24",
- "Option25",
- "Option26",
- "Option27",
- "Option28",
- "Option29",
- "Option30"
- );
- $in->set_help('setupOptions') if $::isInstall;
- if (($printer->{currentqueue}{printer}) || # We have a Foomatic queue
- ($printer->{currentqueue}{ppd})) { # We have a CUPS+PPD queue
- # Set up the widgets for the option dialog
- my @widgets;
- my @userinputs;
- my @choicelists;
- my @shortchoicelists;
- my $i;
- for ($i = 0; $i <= $#{$printer->{ARGS}}; $i++) {
- my $optshortdefault = $printer->{ARGS}[$i]{default};
- if ($printer->{ARGS}[$i]{type} eq 'enum') {
- # enumerated option
- push(@choicelists, []);
- push(@shortchoicelists, []);
- my $choice;
- for $choice (@{$printer->{ARGS}[$i]{vals}}) {
- push(@{$choicelists[$i]}, $choice->{comment});
- push(@{$shortchoicelists[$i]}, $choice->{value});
- if ($choice->{value} eq $optshortdefault) {
- push(@userinputs, $choice->{comment});
- }
- }
- push(@widgets,
- { label => $printer->{ARGS}[$i]{comment},
- val => \$userinputs[$i],
- not_edit => 1,
- list => \@{$choicelists[$i]},
- advanced => !member($printer->{ARGS}[$i]{name},
- @simple_options) });
- } elsif ($printer->{ARGS}[$i]{type} eq 'bool') {
- # boolean option
- push(@choicelists, [$printer->{ARGS}[$i]{name},
- $printer->{ARGS}[$i]{name_false}]);
- push(@shortchoicelists, []);
- push(@userinputs, $choicelists[$i][1-$optshortdefault]);
- push(@widgets,
- { label => $printer->{ARGS}[$i]{comment},
- val => \$userinputs[$i],
- not_edit => 1,
- list => \@{$choicelists[$i]},
- advanced => !member($printer->{ARGS}[$i]{name},
- @simple_options) });
- } else {
- # numerical option
- push(@choicelists, []);
- push(@shortchoicelists, []);
- push(@userinputs, $optshortdefault);
- push(@widgets,
- { label => $printer->{ARGS}[$i]{comment} .
- " ($printer->{ARGS}[$i]{min}... " .
- "$printer->{ARGS}[$i]{max})",
- #type => 'range',
- #min => $printer->{ARGS}[$i]{min},
- #max => $printer->{ARGS}[$i]{max},
- val => \$userinputs[$i],
- advanced => !member($printer->{ARGS}[$i]{name},
- @simple_options) });
- }
- }
- # Show the options dialog. The call-back function does a
- # range check of the numerical options.
- my $windowtitle = "$printer->{currentqueue}{make} $printer->{currentqueue}{model}";
- if ($::expert) {
- my $driver = undef;
- if ($driver = $printer->{currentqueue}{driver}) {
- if ($printer->{currentqueue}{foomatic}) {
- if ($driver eq 'Postscript') {
- $driver = "PostScript";
- } else {
- $driver = "GhostScript + $driver";
- }
- } elsif ($printer->{currentqueue}{ppd}) {
- if ($printer->{DBENTRY}) {
- $printer->{DBENTRY} =~ /^[^\|]*\|[^\|]*\|(.*)$/;
- $driver = $1;
- } else {
- $driver = printer::get_descr_from_ppd($printer);
- if ($driver =~ /^[^\|]*\|[^\|]*$/) { # No driver info
- $driver = "CUPS/PPD";
- } else {
- $driver =~ /^[^\|]*\|[^\|]*\|(.*)$/;
- $driver = $1;
- }
- }
- }
- }
- if ($driver) {
- $windowtitle .= ", $driver";
- }
- }
- # Do not show the options setup dialog when installing a new printer
- # in recommended mode without "Manual configuration" turned on.
- if ((!$printer->{NEW}) or ($::expert) or ($printer->{MANUAL})) {
- return 0 if !$in->ask_from
- ($windowtitle,
- _("Printer default settings
-
-You should make sure that the page size and the ink type/printing mode (if available) and also the hardware configuration of laser printers (memory, duplex unit, extra trays) are set correctly. Note that with a very high printout quality/resolution printing can get substantially slower."),
- \@widgets,
- complete => sub {
- my $i;
- for ($i = 0; $i <= $#{$printer->{ARGS}}; $i++) {
- if (($printer->{ARGS}[$i]{type} eq 'int') || ($printer->{ARGS}[$i]{type} eq 'float')) {
- unless (($printer->{ARGS}[$i]{type} ne 'int') || ($userinputs[$i] =~ /^[\-\+]?[0-9]+$/)) {
- $in->ask_warn('', _("Option %s must be an integer number!", $printer->{ARGS}[$i]{comment}));
- return (1, $i);
- }
- unless (($printer->{ARGS}[$i]{type} ne 'float') || ($userinputs[$i] =~ /^[\-\+]?[0-9\.]+$/)) {
- $in->ask_warn('', _("Option %s must be a number!", $printer->{ARGS}[$i]{comment}));
- return (1, $i);
- }
- unless (($userinputs[$i] >= $printer->{ARGS}[$i]{min}) &&
- ($userinputs[$i] <= $printer->{ARGS}[$i]{max})) {
- $in->ask_warn('', _("Option %s out of range!", $printer->{ARGS}[$i]{comment}));
- return (1, $i);
- }
- }
- }
- return (0);
- } );
- }
- # Read out the user's choices and generate the appropriate command
- # line arguments
- @{$printer->{currentqueue}{options}} = ();
- for ($i = 0; $i <= $#{$printer->{ARGS}}; $i++) {
- push(@{$printer->{currentqueue}{options}}, "-o");
- if ($printer->{ARGS}[$i]{type} eq 'enum') {
- # enumerated option
- my $j;
- for ($j = 0; $j <= $#{$choicelists[$i]}; $j++) {
- if ($choicelists[$i][$j] eq $userinputs[$i]) {
- push(@{$printer->{currentqueue}{options}}, $printer->{ARGS}[$i]{name} . "=". $shortchoicelists[$i][$j]);
- }
- }
- } elsif ($printer->{ARGS}[$i]{type} eq 'bool') {
- # boolean option
- push(@{$printer->{currentqueue}{options}}, $printer->{ARGS}[$i]{name} . "=".
- (($choicelists[$i][0] eq $userinputs[$i]) ? "1" : "0"));
- } else {
- # numerical option
- push(@{$printer->{currentqueue}{options}}, $printer->{ARGS}[$i]{name} . "=" . $userinputs[$i]);
- }
- }
- }
- 1;
-}
-
-sub setasdefault {
- my ($printer, $in) = @_;
- $in->set_help('setupAsDefault') if $::isInstall;
- if (($printer->{DEFAULT} eq '') || # We have no default printer,
- # so set the current one as default
- ($in->ask_yesorno('', _("Do you want to set this printer (\"%s\")\nas the default printer?", $printer->{QUEUE}), 0))) { # Ask the user
- $printer->{DEFAULT} = $printer->{QUEUE};
- printer::set_default_printer($printer);
- }
-}
-
-sub print_testpages {
- my ($printer, $in, $upNetwork) = @_;
- $in->set_help('printTestPages') if $::isInstall;
- # print test pages
- my $standard = 1;
- my $altletter = 0;
- my $alta4 = 0;
- my $photo = 0;
- my $ascii = 0;
- my $res2 = 0;
- my $res1 = $in->ask_from_
- ({ title => _("Test pages"),
- messages => _("Please select the test pages you want to print.
-Note: the photo test page can take a rather long time to get printed and on laser printers with too low memory it can even not come out. In most cases it is enough to print the standard test page."),
- cancel => ((!$printer->{NEW}) ?
- _("Cancel") : ($::isWizard ? _("<- Previous") :
- _("No test pages"))),
- ok => ($::isWizard ? _("Next ->") : _("Print"))},
- [
- { text => _("Standard test page"), type => 'bool',
- val => \$standard },
- ($::expert ?
- { text => _("Alternative test page (Letter)"), type => 'bool',
- val => \$altletter } : ()),
- ($::expert ?
- { text => _("Alternative test page (A4)"), type => 'bool',
- val => \$alta4 } : ()),
- { text => _("Photo test page"), type => 'bool', val => \$photo },
- #{ text => _("Plain text test page"), type => 'bool',
- # val => \$ascii }
- ($::isWizard ?
- { text => _("Do not print any test page"), type => 'bool',
- val => \$res2 } : ())
- ]);
- $res2 = 1 if (!($standard || $altletter || $alta4 || $photo ||
- $ascii));
- if ($res1 && !$res2) {
- my @lpq_output;
- {
- my $w = $in->wait_message('', _("Printing test page(s)..."));
-
- $upNetwork and do { &$upNetwork(); undef $upNetwork; sleep(1) };
- my $stdtestpage = "/usr/share/printer-testpages/testprint.ps";
- my $altlttestpage = "/usr/share/printer-testpages/testpage.ps";
- my $alta4testpage = "/usr/share/printer-testpages/testpage-a4.ps";
- my $phototestpage = "/usr/share/printer-testpages/photo-testpage.jpg";
- my $asciitestpage = "/usr/share/printer-testpages/testpage.asc";
- my @testpages;
- # Install the filter to convert the photo test page to PS
- if (($photo) && (!$::testing) &&
- (!printer::files_exist((qw(/usr/bin/convert))))) {
- $in->do_pkgs->install('ImageMagick');
- }
- # set up list of pages to print
- $standard && push (@testpages, $stdtestpage);
- $altletter && push (@testpages, $altlttestpage);
- $alta4 && push (@testpages, $alta4testpage);
- $photo && push (@testpages, $phototestpage);
- $ascii && push (@testpages, $asciitestpage);
- # print the stuff
- @lpq_output = printer::print_pages($printer, @testpages);
- }
- my $dialogtext;
- if (@lpq_output) {
- $dialogtext = _("Test page(s) have been sent to the printer.
-It may take some time before the printer starts.
-Printing status:\n%s\n\n", @lpq_output);
- } else {
- $dialogtext = _("Test page(s) have been sent to the printer.
-It may take some time before the printer starts.\n");
- }
- if ($printer->{NEW} == 0) {
- $in->ask_warn('',$dialogtext);
- return 1;
- } else {
- $in->ask_yesorno('',$dialogtext . _("Did it work properly?"), 1)
- and return 1;
- }
- } else {
- return ($::isWizard ? $res1 : 1) ;
- }
- return 2;
-}
-
-sub printer_help {
- my ($printer, $in) = @_;
- my $spooler = $printer->{SPOOLER};
- my $queue = $printer->{QUEUE};
- my $default = $printer->{DEFAULT};
- my $raw = 0;
- my $cupsremote = 0;
- my $scanning = "";
- if ($printer->{configured}{$queue}) {
- if (($printer->{configured}{$queue}{queuedata}{model} eq
- _("Unknown model")) ||
- ($printer->{configured}{$queue}{queuedata}{model} eq
- _("Raw printer"))) {
- $raw = 1;
- }
- # Information about scanning with HP's multi-function devices
- $scanning = scanner_help
- ($printer->{configured}{$queue}{queuedata}{make} . " " .
- $printer->{configured}{$queue}{queuedata}{model},
- $printer->{configured}{$queue}{queuedata}{connect});
- if ($scanning) {
- $scanning = "\n\n$scanning\n\n";
- }
- } else {
- $cupsremote = 1;
- }
-
- my $dialogtext;
- if ($spooler eq "cups") {
- $dialogtext =
-_("To print a file from the command line (terminal window) you can either use the command \"%s <file>\" or a graphical printing tool: \"xpp <file>\" or \"kprinter <file>\". The graphical tools allow you to choose the printer and to modify the option settings easily.
-", ($queue ne $default ? "lpr -P $queue" : "lpr")) .
-_("These commands you can also use in the \"Printing command\" field of the printing dialogs of many applications, but here do not supply the file name because the file to print is provided by the application.
-") .
-(!$raw ?
-_("
-The \"%s\" command also allows to modify the option settings for a particular printing job. Simply add the desired settings to the command line, e. g. \"%s <file>\". ", "lpr", ($queue ne $default ? "lpr -P $queue -o option=setting -o switch" : "lpr -o option=setting -o switch")) .
-(!$cupsremote ?
- _("To know about the options available for the current printer read either the list shown below or click on the \"Print option list\" button.%s
-
-", $scanning) . printer::lphelp_output($printer) : $scanning .
- _("Here is a list of the available printing options for the current printer:
-
-") . printer::lphelp_output($printer)) : $scanning);
- } elsif ($spooler eq "lprng") {
- $dialogtext =
-_("To print a file from the command line (terminal window) use the command \"%s <file>\".
-", ($queue ne $default ? "lpr -P $queue" : "lpr")) .
-_("This command you can also use in the \"Printing command\" field of the printing dialogs of many applications. But here do not supply the file name because the file to print is provided by the application.
-") .
-(!$raw ?
-_("
-The \"%s\" command also allows to modify the option settings for a particular printing job. Simply add the desired settings to the command line, e. g. \"%s <file>\". ", "lpr", ($queue ne $default ? "lpr -P $queue -Z option=setting -Z switch" : "lpr -Z option=setting -Z switch")) .
-_("To get a list of the options available for the current printer click on the \"Print option list\" button." . $scanning) : $scanning);
- } elsif ($spooler eq "lpd") {
- $dialogtext =
-_("To print a file from the command line (terminal window) use the command \"%s <file>\".
-", ($queue ne $default ? "lpr -P $queue" : "lpr")) .
-_("This command you can also use in the \"Printing command\" field of the printing dialogs of many applications. But here do not supply the file name because the file to print is provided by the application.
-") .
-(!$raw ?
-_("
-The \"%s\" command also allows to modify the option settings for a particular printing job. Simply add the desired settings to the command line, e. g. \"%s <file>\". ", "lpr", ($queue ne $default ? "lpr -P $queue -o option=setting -o switch" : "lpr -o option=setting -o switch")) .
-_("To get a list of the options available for the current printer click on the \"Print option list\" button." . $scanning) : $scanning);
- } elsif ($spooler eq "pdq") {
- $dialogtext =
-_("To print a file from the command line (terminal window) use the command \"%s <file>\" or \"%s <file>\".
-", ($queue ne $default ? "pdq -P $queue" : "pdq"), ($queue ne $default ? "lpr -P $queue" : "lpr")) .
-_("This command you can also use in the \"Printing command\" field of the printing dialogs of many applications. But here do not supply the file name because the file to print is provided by the application.
-") .
-_("You can also use the graphical interface \"xpdq\" for setting options and handling printing jobs.
-If you are using KDE as desktop environment you have a \"panic button\", an icon on the desktop, labeled with \"STOP Printer!\", which stops all print jobs immediately when you click it. This is for example useful for paper jams.
-") .
-(!$raw ?
-_("
-The \"%s\" and \"%s\" commands also allow to modify the option settings for a particular printing job. Simply add the desired settings to the command line, e. g. \"%s <file>\".
-", "pdq", "lpr", ($queue ne $default ? "pdq -P $queue -aoption=setting -oswitch" : "pdq -aoption=setting -oswitch")) .
-_("To know about the options available for the current printer read either the list shown below or click on the \"Print option list\" button.%s
-
-", $scanning) . printer::pdqhelp_output($printer) : $scanning);
- }
- if (!$raw && !$cupsremote) {
- my $choice;
- while ($choice ne _("Close")) {
- $choice = $in->ask_from_list_
- (($scanning ?
- _("Printing/Scanning on \"%s\"", $queue) :
- _("Printing on the printer \"%s\"", $queue)),
- $dialogtext,
- [ _("Print option list"), _("Close") ],
- _("Close"));
- if ($choice ne _("Close")) {
- my $w = $in->wait_message('', _("Printing test page(s)..."));
- printer::print_optionlist($printer);
- }
- }
- } else {
- $in->ask_warn(($scanning ?
- _("Printing/Scanning on \"%s\"", $queue) :
- _("Printing on the printer \"%s\"", $queue)),
- $dialogtext);
- }
-}
-
-sub scanner_help {
- my ($makemodel, $deviceuri) = @_;
- if ($deviceuri =~ m!^ptal:/(.*)$!) {
- my $ptaldevice = $1;
- if (($makemodel =~ /HP\s+OfficeJet\s+[KVRGPD]/i) ||
- ($makemodel =~ /HP\s+PSC\s+[579]/i)) {
- # SANE-driven models
- return _("Your HP multi-function device was configured automatically to be able to scan. Now you can scan with \"scanimage\" (\"scanimage -d hp:%s\" to specify the scanner when you have more than one) from the command line or with the graphical interfaces \"xscanimage\" or \"xsane\". If you are using the GIMP, you can also scan by choosing the appropriate point in the \"File\"/\"Acquire\" menu. Call also \"man scanimage\" and \"man sane-hp\" on the command line to get more information.
-
-Do not use \"scannerdrake\" for this device!",
- $ptaldevice);
- } elsif (($makemodel !~ /HP\s+PhotoSmart/i) &&
- ($makemodel !~ /HP\s+LaserJet\s+2200/i)) {
- # "ptal-hp"-driven models
- return _("Your HP multi-function device was configured automatically to be able to scan. Now you can scan from the command line with \"ptal-hp %s scan ...\". Scanning via a graphical interface or from the GIMP is not supported yet for your device. More information you will find in the \"/usr/share/doc/hpoj-0.8/ptal-hp-scan.html\" file on your system. If you have an HP LaserJet 1100 or 1200 you can only scan when you have the scanner option installed.
-
-Do not use \"scannerdrake\" for this device!",
- $ptaldevice);
- } else {
- return "";
- }
- }
-}
-
-sub copy_queues_from {
- my ($printer, $in, $oldspooler) = @_;
-
- $in->set_help('copyQueues') if $::isInstall;
- my $newspooler = $printer->{SPOOLER};
- my @oldqueues;
- my @queueentries;
- my @queuesselected;
- my $newspoolerstr;
- my $oldspoolerstr;
- my $noninteractive = 0;
- {
- my $w = $in->wait_message('', _("Reading printer data..."));
- @oldqueues = printer::get_copiable_queues($oldspooler, $newspooler);
- @oldqueues = sort(@oldqueues);
- $newspoolerstr = $printer::shortspooler_inv{$newspooler};
- $oldspoolerstr = $printer::shortspooler_inv{$oldspooler};
- for (@oldqueues) {
- push (@queuesselected, 1);
- push (@queueentries, { text => $_, type => 'bool',
- val => \$queuesselected[$#queuesselected] });
- }
- # LPRng and LPD use the same config files, therefore one sees the
- # queues of LPD when one uses LPRng and vice versa, but these queues
- # do not work. So automatically transfer all queues when switching
- # between LPD and LPRng.
- if (($oldspooler =~ /^lp/) && ($newspooler =~ /^lp/)) {
- $noninteractive = 1;
- }
- }
- if ($noninteractive ||
- $in->ask_from_
- ({ title => _("Transfer printer configuration"),
- messages => _("You can copy the printer configuration which you have done for the spooler %s to %s, your current spooler. All the configuration data (printer name, description, location, connection type, and default option settings) is overtaken, but jobs will not be transferred.
-Not all queues can be transferred due to the following reasons:
-", $oldspoolerstr, $newspoolerstr) .
-($newspooler eq "cups" ? _("CUPS does not support printers on Novell servers or printers sending the data into a free-formed command.
-") :
- ($newspooler eq "pdq" ? _("PDQ only supports local printers, remote LPD printers, and Socket/TCP printers.
-") :
- _("LPD and LPRng do not support IPP printers.
-"))) .
-_("In addition, queues not created with this program or \"foomatic-configure\" cannot be transferred.") .
-($oldspooler eq "cups" ? _("
-Also printers configured with the PPD files provided by their manufacturers or with native CUPS drivers cannot be transferred.") : ()) . _("
-Mark the printers which you want to transfer and click
-\"Transfer\"."),
- cancel => _("Do not transfer printers"),
- ok => _("Transfer")
- },
- \@queueentries
- )) {
- my $queuecopied = 0;
- for (@oldqueues) {
- if (shift(@queuesselected)) {
- my $oldqueue = $_;
- my $newqueue = $_;
- if ((!$printer->{configured}{$newqueue}) ||
- ($noninteractive) ||
- ($in->ask_from_
- ({ title => _("Transfer printer configuration"),
- messages => _("A printer named \"%s\" already exists under %s.
-Click \"Transfer\" to overwrite it.
-You can also type a new name or skip this printer.",
- $newqueue, $newspoolerstr),
- ok => _("Transfer"),
- cancel => _("Skip"),
- callbacks => { complete => sub {
- unless ($newqueue =~ /^\w+$/) {
- $in->ask_warn('', _("Name of printer should contain only letters, numbers and the underscore"));
- return (1,0);
- }
- if (($printer->{configured}{$newqueue})
- && ($newqueue ne $oldqueue) &&
- (!$in->ask_yesorno('', _("The printer \"%s\" already exists,\ndo you really want to overwrite its configuration?",
- $newqueue),
- 0))) {
- return (1,0); # Let the user correct the name
- }
- return 0;
- }}
- },
- [{label => _("New printer name"),val => \$newqueue}]))) {
- {
- my $w = $in->wait_message('',
- _("Transferring %s...", $oldqueue));
- printer::copy_foomatic_queue($printer, $oldqueue,
- $oldspooler, $newqueue) and
- $queuecopied = 1;
- }
- if ($oldqueue eq $printer->{DEFAULT}) {
- # Make the former default printer the new default
- # printer if the user does not reject
- if (($noninteractive) ||
- ($in->ask_yesorno
- (_("Transfer printer configuration"),
- _("You have transferred your former default printer (\"%s\"), Should it be also the default printer under the new printing system %s?", $oldqueue, $newspoolerstr), 1))) {
- $printer->{DEFAULT} = $newqueue;
- printer::set_default_printer($printer);
- }
- }
- }
- }
- }
- if ($queuecopied) {
- my $w = $in->wait_message('', _("Refreshing printer data..."));
- printer::read_configured_queues($printer);
- }
- }
-}
-
-sub start_network {
- my ($in, $upNetwork) = @_;
- my $w = $in->wait_message(_("Configuration of a remote printer"),
- _("Starting network..."));
- if ($::isInstall) {
- return ($upNetwork and
- do { my $ret = &$upNetwork();
- undef $upNetwork;
- sleep(1);
- $ret});
- } else {
- return printer::start_service("network");
- }
-}
-
-sub check_network {
-
- # This routine is called whenever the user tries to configure a remote
- # printer. It checks the state of the network functionality to assure
- # that the network is up and running so that the remote printer is
- # reachable.
-
- my ($printer, $in, $upNetwork) = @_;
-
- # Any additional dialogs caused by this subroutine should appear as
- # extra windows and not embedded in the "Add printer" wizard.
- local $::isWizard = 0;
-
- $in->set_help('checkNetwork') if $::isInstall;
-
- # First check: Does /etc/sysconfig/network-scripts/drakconnet_conf exist
- # (otherwise the network is not configured yet and drakconnet has to be
- # started)
-
- if (!printer::files_exist("/etc/sysconfig/network-scripts/drakconnet_conf")) {
- my $go_on = 0;
- while (!$go_on) {
- my $choice = _("Configure the network now");
- if ($in->ask_from(_("Network functionality not configured"),
- _("You are going to configure a remote printer. This needs working network access, but your network is not configured yet. If you go on without network configuration, you will not be able to use the printer which you are configuring now. How do you want to proceed?"),
- [ { val => \$choice, type => 'list',
- list => [ _("Configure the network now"),
- _("Go on without configuring the network") ]} ] )) {
- if ($choice eq _("Configure the network now")){
- if ($::isInstall) {
- require network::netconnect;
- network::netconnect::main
- ($in->{prefix}, $in->{netcnx} ||= {},
- $in->{netc}, $in->{mouse}, $in,
- $in->{intf}, 0,
- $in->{lang} eq "fr_FR" &&
- $in->{keyboard} eq "fr", 0);
- } else {
- system("/usr/sbin/drakconnet");
- }
- if (printer::files_exist("/etc/sysconfig/network-scripts/drakconnet_conf")) {
- $go_on = 1;
- }
- } else {
- return 1;
- }
- } else {
- return 0;
- }
- }
- }
-
- # Second check: Is the network running?
-
- if (printer::network_running()) {return 1;}
-
- # The network is configured now, start it.
- if (!start_network($in, $upNetwork)) {
- $in->ask_warn(_("Configuration of a remote printer"),
-($::isInstall ?
-_("The network configuration done during the installation cannot be started now. Please check whether the network gets accessable after booting your system and correct the configuration using the Mandrake Control Center, section \"Network & Internet\"/\"Connection\", and afterwards set up the printer, also using the Mandrake Control Center, section \"Hardware\"/\"Printer\"") :
-_("The network access was not running and could not be started. Please check your configuration and your hardware. Then try to configure your remote printer again.")));
- return 0;
- }
-
- # Give a SIGHUP to the daemon and in case of CUPS do also the
- # automatic configuration of broadcasting/access permissions
- # The daemon is not really restarted but only SIGHUPped to not
- # interrupt print jobs.
-
- my $w = $in->wait_message(_("Configuration of a remote printer"),
- _("Restarting printing system..."));
-
- return printer::SIGHUP_daemon($printer->{SPOOLER});
-
-}
-
-sub security_check {
- # Check the security mode and when in "high" or "paranoid" mode ask the
- # user whether he really wants to configure printing.
- my ($printer, $in, $spooler) = @_;
-
- # Any additional dialogs caused by this subroutine should appear as
- # extra windows and not embedded in the "Add printer" wizard.
- local $::isWizard = 0;
-
- $in->set_help('securityCheck') if $::isInstall;
-
- # Get security level
- my $security = undef;
- if ($::isInstall) {
- $security = $in->{security};
- } else {
- $security = printer::get_security_level();
- }
-
- # Exit silently if the spooler is PDQ
- if ($spooler eq "pdq") {return 1;}
-
- # Exit silently in medium or lower security levels
- if ((!$security) || ($security < 4)) {return 1;}
-
- # Exit silently if the current spooler is already activated for the current
- # security level
- if (printer::spooler_in_security_level($spooler, $security)) {return 1;}
-
- # Tell user in which security mode he is and ask him whether he really
- # wants to activate the spooler in the given security mode. Stop the
- # operation of installing the spooler if he disagrees.
- my $securitystr = ($security == 4 ? _("high") : _("paranoid"));
- if ($in->ask_yesorno(_("Installing a printing system in the %s security level", $securitystr),
- _("You are about to install the printing system %s on a system running in the %s security level.
-
-This printing system runs a daemon (background process) which waits for print jobs and handles them. This daemon is also accessable by remote machines through the network and so it is a possible point for attacks. Therefore only a few selected daemons are started by default in this security level.
-
-Do you really want to configure printing on this machine?",
- $printer::shortspooler_inv{$spooler},
- $securitystr))) {
- printer::add_spooler_to_security_level($spooler, $security);
- my $service;
- if (($spooler eq "lpr") || ($spooler eq "lprng")) {
- $service = "lpd";
- } else {
- $service = $spooler;
- }
- printer::start_service_on_boot($service);
- return 1;
- } else {
- return 0;
- }
-}
-
-sub start_spooler_on_boot {
- # Checks whether the spooler will be started at boot time and if not,
- # ask the user whether he wants to start the spooler at boot time.
- my ($printer, $in, $service) = @_;
-
- # Any additional dialogs caused by this subroutine should appear as
- # extra windows and not embedded in the "Add printer" wizard.
- local $::isWizard = 0;
-
- $in->set_help('startSpoolerOnBoot') if $::isInstall;
- if (!printer::service_starts_on_boot($service)) {
- if ($in->ask_yesorno(_("Starting the printing system at boot time"),
- _("The printing system (%s) will not be started automatically when the machine is booted.
-
-It is possible that the automatic starting was turned off by changing to a higher security level, because the printing system is a potential point for attacks.
-
-Do you want to have the automatic starting of the printing system turned on again?",
- $printer::shortspooler_inv{$printer->{SPOOLER}}))) {
- printer::start_service_on_boot($service);
- }
- }
- 1;
-}
-
-sub install_spooler {
- # installs the default spooler and start its daemon
- my ($printer, $in, $upNetwork) = @_;
- if (!$::testing) {
- # If the user refuses to install the spooler in high or paranoid
- # security level, exit.
- if (!security_check($printer, $in, $printer->{SPOOLER})) {
- return 0;
- }
- if ($printer->{SPOOLER} eq "cups") {
- {
- my $w = $in->wait_message('', _("Checking installed software..."));
- if ((!$::testing) &&
- (!printer::files_exist((qw(/usr/lib/cups/cgi-bin/printers.cgi
- /sbin/ifconfig
- /usr/bin/xpp
- /usr/bin/curl),
- ($::expert ?
- "/usr/share/cups/model/postscript.ppd.gz" : ())
- )))) {
- $in->do_pkgs->install(('cups', 'net-tools', 'xpp',
- 'curl',
- ($::expert ? 'cups-drivers' : ())));
- }
- # Try to start the network when CUPS is the spooler, so that
- # remote CUPS printers get displayed (especially during
- # installation)
- $upNetwork and do {
- &$upNetwork();
- undef $upNetwork;
- sleep(1);
- };
- # Start daemon
- # Avoid unnecessary restarting of CUPS, this blocks the
- # startup of printerdrake for several seconds.
- printer::start_not_running_service("cups");
- # Set the CUPS tools as defaults for "lpr", "lpq", "lprm", ...
- printer::set_alternative("lpr","/usr/bin/lpr-cups");
- printer::set_alternative("lpq","/usr/bin/lpq-cups");
- printer::set_alternative("lprm","/usr/bin/lprm-cups");
- printer::set_alternative("lp","/usr/bin/lp-cups");
- printer::set_alternative("cancel","/usr/bin/cancel-cups");
- printer::set_alternative("lpstat","/usr/bin/lpstat-cups");
- printer::set_alternative("lpc","/usr/sbin/lpc-cups");
- # Remove PDQ panic buttons from the user's KDE Desktops
- printer::pdq_panic_button("remove");
- }
- # Should it be started at boot time?
- start_spooler_on_boot($printer, $in, "cups");
- } elsif ($printer->{SPOOLER} eq "lpd") {
- {
- my $w = $in->wait_message('', _("Checking installed software..."));
- # "lpr" conflicts with "LPRng", remove "LPRng"
- if ((!$::testing) &&
- (printer::files_exist((qw(/usr/lib/filters/lpf))))) {
- my $w = $in->wait_message('', _("Removing LPRng..."));
- $in->do_pkgs->remove_nodeps('LPRng');
- }
- if ((!$::testing) &&
- (!printer::files_exist((qw(/usr/sbin/lpf
- /usr/sbin/lpd
- /sbin/ifconfig
- /usr/bin/gpr
- /usr/bin/a2ps
- /usr/bin/convert))))) {
- $in->do_pkgs->install(('lpr', 'net-tools', 'gpr', 'a2ps', 'ImageMagick'));
- }
- # Start the network (especially during installation), so the
- # user can set up queues to remote printers.
- $upNetwork and do {
- &$upNetwork();
- undef $upNetwork;
- sleep(1);
- };
- # Start daemon
- printer::restart_service("lpd");
- # Set the LPD tools as defaults for "lpr", "lpq", "lprm", ...
- printer::set_alternative("lpr","/usr/bin/lpr-lpd");
- printer::set_alternative("lpq","/usr/bin/lpq-lpd");
- printer::set_alternative("lprm","/usr/bin/lprm-lpd");
- printer::set_alternative("lpc","/usr/sbin/lpc-lpd");
- # Remove PDQ panic buttons from the user's KDE Desktops
- printer::pdq_panic_button("remove");
- }
- # Should it be started at boot time?
- start_spooler_on_boot($printer, $in, "lpd");
- } elsif ($printer->{SPOOLER} eq "lprng") {
- {
- my $w = $in->wait_message('', _("Checking installed software..."));
- # "LPRng" conflicts with "lpr", remove "lpr"
- if ((!$::testing) &&
- (printer::files_exist((qw(/usr/sbin/lpf))))) {
- my $w = $in->wait_message('', _("Removing LPD..."));
- $in->do_pkgs->remove_nodeps('lpr');
- }
- if ((!$::testing) &&
- (!printer::files_exist((qw(/usr/lib/filters/lpf
- /usr/sbin/lpd
- /sbin/ifconfig
- /usr/bin/gpr
- /usr/bin/a2ps
- /usr/bin/convert))))) {
- $in->do_pkgs->install('LPRng', 'net-tools', 'gpr', 'a2ps', 'ImageMagick');
- }
- # Start the network (especially during installation), so the
- # user can set up queues to remote printers.
- $upNetwork and do {
- &$upNetwork();
- undef $upNetwork;
- sleep(1);
- };
- # Start daemon
- printer::restart_service("lpd");
- # Set the LPRng tools as defaults for "lpr", "lpq", "lprm", ...
- printer::set_alternative("lpr","/usr/bin/lpr-lpd");
- printer::set_alternative("lpq","/usr/bin/lpq-lpd");
- printer::set_alternative("lprm","/usr/bin/lprm-lpd");
- printer::set_alternative("lp","/usr/bin/lp-lpd");
- printer::set_alternative("cancel","/usr/bin/cancel-lpd");
- printer::set_alternative("lpstat","/usr/bin/lpstat-lpd");
- printer::set_alternative("lpc","/usr/sbin/lpc-lpd");
- # Remove PDQ panic buttons from the user's KDE Desktops
- printer::pdq_panic_button("remove");
- }
- # Should it be started at boot time?
- start_spooler_on_boot($printer, $in, "lpd");
- } elsif ($printer->{SPOOLER} eq "pdq") {
- {
- my $w = $in->wait_message('', _("Checking installed software..."));
- if ((!$::testing) &&
- (!printer::files_exist((qw(/usr/bin/pdq
- /usr/X11R6/bin/xpdq))))) {
- $in->do_pkgs->install('pdq');
- }
- # Start the network (especially during installation), so the
- # user can set up queues to remote printers.
- $upNetwork and do {
- &$upNetwork();
- undef $upNetwork;
- sleep(1);
- };
- # PDQ has no daemon, so nothing needs to be started
-
- # Set the PDQ tools as defaults for "lpr", "lpq", "lprm", ...
- printer::set_alternative("lpr","/usr/bin/lpr-pdq");
- printer::set_alternative("lpq","/usr/bin/lpq-foomatic");
- printer::set_alternative("lprm","/usr/bin/lprm-foomatic");
- # Add PDQ panic buttons to the user's KDE Desktops
- printer::pdq_panic_button("add");
- }
- }
- # Give a SIGHUP to the devfsd daemon to correct the permissions
- # for the /dev/... files according to the spooler
- printer::SIGHUP_daemon("devfs");
- }
- 1;
-}
-
-sub setup_default_spooler {
- my ($printer, $in, $upNetwork) = @_;
- $in->set_help('setupDefaultSpooler') if $::isInstall;
- $printer->{SPOOLER} ||= 'cups';
- my $oldspooler = $printer->{SPOOLER};
- my $str_spooler =
- $in->ask_from_list_(_("Select Printer Spooler"),
- _("Which printing system (spooler) do you want to use?"),
- [ printer::spooler() ],
- $printer::spooler_inv{$printer->{SPOOLER}},
- ) or return;
- $printer->{SPOOLER} = $printer::spooler{$str_spooler};
- # Install the spooler if not done yet
- if (!install_spooler($printer, $in, $upNetwork)) {
- $printer->{SPOOLER} = $oldspooler;
- return;
- }
- if ($printer->{SPOOLER} ne $oldspooler) {
- # Remove the local printers from Star Office/OpenOffice.org
- printer::removelocalprintersfromapplications($printer);
- # Get the queues of this spooler
- {
- my $w = $in->wait_message('', _("Reading printer data..."));
- printer::read_configured_queues($printer);
- }
- # Copy queues from former spooler
- copy_queues_from($printer, $in, $oldspooler);
- # Re-read the printer database (CUPS has additional drivers, PDQ
- # has no raw queue)
- %printer::thedb = ();
- #my $w = $in->wait_message('', _("Reading printer database..."));
- #printer::read_printer_db($printer->{SPOOLER});
- }
- # Save spooler choice
- printer::set_default_spooler($printer);
- return $printer->{SPOOLER};
-}
-
-sub configure_queue {
- my ($printer, $in) = @_;
- my $w = $in->wait_message('', _("Configuring printer \"%s\"...",
- $printer->{currentqueue}{queue}));
- $printer->{complete} = 1;
- printer::configure_queue($printer);
- $printer->{complete} = 0;
-}
-
-sub install_foomatic {
- my ($in) = @_;
- if ((!$::testing) &&
- (!printer::files_exist((qw(/usr/bin/foomatic-configure
- /usr/lib/perl5/vendor_perl/5.8.0/Foomatic/DB.pm)
- )))) {
- my $w = $in->wait_message('', _("Installing Foomatic..."));
- $in->do_pkgs->install('foomatic');
- }
-}
-
-sub wizard_close {
- my ($in, $mode) = @_;
- # Leave wizard mode with congratulations screen if $mode = 1
- $::Wizard_no_previous = 1;
- $::Wizard_no_cancel = 1;
- $::Wizard_finished = 1;
- wizard_congratulations($in) if ($mode == 1);
- undef $::isWizard;
- $::WizardWindow->destroy if defined $::WizardWindow;
- undef $::WizardWindow;
-};
-
-#- Program entry point for configuration of the printing system.
-sub main {
- my ($printer, $in, $ask_multiple_printer, $upNetwork) = @_;
-
- # Default printer name, we do not use "lp" so that one can switch the
- # default printer under LPD without needing to rename another printer.
- # Under LPD the alias "lp" will be given to the default printer.
- my $defaultprname = _("Printer");
-
- # printerdrake does not work without foomatic, and for more convenience
- # we install some more stuff
- {
- my $w = $in->wait_message('', _("Checking installed software..."));
- if ((!$::testing) &&
- (!printer::files_exist((qw(/usr/bin/foomatic-configure
- /usr/lib/perl5/vendor_perl/5.8.0/Foomatic/DB.pm
- /usr/bin/escputil
- /usr/share/printer-testpages/testprint.ps
- ),
- (printer::files_exist("/usr/bin/gimp") ?
- "/usr/lib/gimp/1.2/plug-ins/print" : ())
- )))) {
- $in->do_pkgs->install('foomatic','printer-utils','printer-testpages',
- if_($in->do_pkgs->is_installed('gimp'), 'gimpprint'));
- }
-
- # only experts should be asked for the spooler
- !$::expert and $printer->{SPOOLER} ||= 'cups';
-
- }
-
- # If we have chosen a spooler, install it and mark it as default spooler
- if (($printer->{SPOOLER}) && ($printer->{SPOOLER} ne '')) {
- if (!install_spooler($printer, $in, $upNetwork)) {return;}
- printer::set_default_spooler($printer);
- }
-
- # Control variables for the main loop
- my ($menuchoice, $cursorpos, $queue, $continue, $newqueue, $editqueue, $expertswitch, $menushown) = ('', '::', $defaultprname, 1, 0, 0, 0, 0);
- # Cursor position in queue modification window
- my $modify = _("Printer options");
- while ($continue) {
- $newqueue = 0;
- # When the queue list is not shown, cancelling the printer type
- # dialog should leave the program
- $continue = 0;
- # Get the default printer
- if (defined($printer->{SPOOLER}) && ($printer->{SPOOLER} ne '') &&
- ((!defined($printer->{DEFAULT})) || ($printer->{DEFAULT} eq ''))) {
- my $w = $in->wait_message('', _("Preparing PrinterDrake..."));
- $printer->{DEFAULT} = printer::get_default_printer($printer);
- if ($printer->{DEFAULT}) {
- # If a CUPS system has only remote printers and no default
- # printer defined, it defines the first printer whose
- # broadcast signal appeared after the start of the CUPS
- # daemon, so on every start another printer gets the default
- # printer. To avoid this, make sure that the default printer
- # is defined.
- printer::set_default_printer($printer);
- } else {
- $printer->{DEFAULT} = '';
- }
- }
-
- # Configure the current printer queues in applications
- {
- my $w = $in->wait_message('', _("Configuring applications..."));
- printer::configureapplications($printer);
- }
-
- if ($editqueue) {
- # The user was either in the printer modification dialog and did
- # not close it or he had set up a new queue and said that the test
- # page didn't come out correctly, so let the user edit the queue.
- $newqueue = 0;
- $continue = 1;
- $editqueue = 0;
- } else {
- # Reset modification window cursor when one leaves the window
- $modify = _("Printer options");
- if (!$ask_multiple_printer &&
- %{$printer->{configured} || {}} == ()) {
- $in->set_help('doYouWantToPrint') if $::isInstall;
- $newqueue = 1;
- $menuchoice = $printer->{want} ||
- $in->ask_yesorno(_("Printer"),
- _("Would you like to configure printing?"),
- 0) ? "\@addprinter" : "\@quit";
- if ($menuchoice ne "\@quit") {
- $printer->{SPOOLER} ||=
- setup_default_spooler ($printer, $in, $upNetwork) ||
- return;
- }
- } else {
- # Ask for a spooler when none is defined
- $printer->{SPOOLER} ||= setup_default_spooler ($printer, $in, $upNetwork) || return;
- # This entry and the check for this entry have to use
- # the same translation to work properly
- my $spoolerentry = _("Printing system: ");
- # Show a queue list window when there is at least one queue,
- # when we are in expert mode, or when we are not in the
- # installation.
- unless ((!%{$printer->{configured} || {}}) &&
- (!$::expert) && ($::isInstall)) {
- $in->set_help('mainMenu') if $::isInstall;
- # Cancelling the printer type dialog should leed to this
- # dialog
- $continue = 1;
- # This is for the "Recommended" installation. When one has
- # no printer queue printerdrake starts directly adding
- # a printer and in the end it asks whether one wants to
- # install another printer. If the user says "Yes", he
- # arrives in the main menu of printerdrake. From now
- # on the question is not asked any more but the menu
- # is shown directly after having done an operation.
- $menushown = 1;
- # Initialize the cursor position
- if (($cursorpos eq "::") &&
- ($printer->{DEFAULT}) &&
- ($printer->{DEFAULT} ne "")) {
- if ($printer->{configured}{$printer->{DEFAULT}}) {
- $cursorpos =
- $printer->{configured}{$printer->{DEFAULT}}{queuedata}{menuentry} . _(" (Default)");
- } elsif ($printer->{SPOOLER} eq "cups") {
- ($cursorpos) =
- grep { /!$printer->{DEFAULT}:[^!]*$/ }
- printer::get_cups_remote_queues($printer);
- }
- }
- # Generate the list of available printers
- my @printerlist =
- ( (sort((map {$printer->{configured}{$_}{queuedata}{menuentry}
- . ($_ eq $printer->{DEFAULT} ?
- _(" (Default)") : (""))}
- keys(%{$printer->{configured}
- || {}})),
- ($printer->{SPOOLER} eq "cups" ?
- printer::get_cups_remote_queues($printer)
- : ())))
- );
- my $noprinters = ($#printerlist < 0);
- # Position the cursor where it were before (in case
- # a button was pressed).
- $menuchoice = $cursorpos;
- # Show the main dialog
- $in->ask_from_(
- {title => _("Printerdrake"),
- messages =>
- ($noprinters ? "" :
- (($printer->{SPOOLER} eq "cups") ?
- _("The following printers are configured. Double-click on a printer to change its settings; to make it the default printer; to view information about it; or to make a printer on a remote CUPS server available for Star Office/OpenOffice.org.") :
- _("The following printers are configured. Double-click on a printer to change its settings; to make it the default printer; or to view information about it."))),
- cancel => (""),
- ok => (""),
- },
- # List the queues
- [ ($noprinters ? () :
- { val => \$menuchoice, format => \&translate,
- sort => 0, separator => "!",tree_expanded => 1,
- quit_if_double_click => 1,allow_empty_list =>1,
- list => \@printerlist }),
- { clicked_may_quit =>
- sub {
- # Save the cursor position
- $cursorpos = $menuchoice;
- $menuchoice = "\@addprinter";
- 1;
- },
- val => _("Add a new printer") },
- ( $printer->{SPOOLER} eq "cups" ?
- ({ clicked_may_quit =>
- sub {
- # Save the cursor position
- $cursorpos = $menuchoice;
- $menuchoice = "\@refresh";
- 1;
- },
- val => _("Refresh printer list (to display all available remote CUPS printers)") },
- { clicked_may_quit =>
- sub {
- # Save the cursor position
- $cursorpos = $menuchoice;
- $menuchoice = "\@cupsconfig";
- 1;
- },
- val => ($::expert ? _("CUPS configuration") :
- _("Specify CUPS server")) }) : ()),
- ( $::expert ?
- { clicked_may_quit =>
- sub {
- # Save the cursor position
- $cursorpos = $menuchoice;
- $menuchoice = "\@spooler";
- 1;
- },
- val => _("Change the printing system") } :
- ()),
- ( !$::isInstall ?
- { clicked_may_quit =>
- sub { $menuchoice = "\@usermode"; 1; },
- val => ($::expert ? _("Normal Mode") :
- _("Expert Mode")) } : ()),
- { clicked_may_quit =>
- sub { $menuchoice = "\@quit"; 1; },
- val => _("Quit") },
- ]
- );
- # Toggle expert mode and standard mode
- if ($menuchoice eq "\@usermode") {
- $::expert = !$::expert;
- # Read printer database for the new user mode
- %printer::thedb = ();
- #my $w = $in->wait_message('', _("Reading printer database..."));
- #printer::read_printer_db($printer->{SPOOLER});
- # Re-read printer queues to switch the tree
- # structure between expert/normal mode.
- my $w = $in->wait_message('', _("Reading printer data..."));
- printer::read_configured_queues($printer);
- $cursorpos = "::";
- next;
- }
- } else {
- #- as there are no printer already configured, Add one
- #- automatically.
- $menuchoice = "\@addprinter";
- }
- # Refresh printer list
- if ($menuchoice eq "\@refresh") {
- next;
- }
- # Configure CUPS
- if ($menuchoice eq "\@cupsconfig") {
- config_cups($printer, $in, $upNetwork);
- next;
- }
- # Determine a default name for a new printer queue
- if ($menuchoice eq "\@addprinter") {
- $newqueue = 1;
- my %queues;
- @queues{map { split '\|', $_ } keys %{$printer->{configured}}} = ();
- my $i = ''; while ($i < 150) { last unless exists $queues{"$defaultprname$i"}; ++$i; }
- $queue = "$defaultprname$i";
- }
- # Function to switch to another spooler
- if ($menuchoice eq "\@spooler") {
- $printer->{SPOOLER} = setup_default_spooler ($printer, $in, $upNetwork) || $printer->{SPOOLER};
- next;
- }
- # Rip the queue name out of the chosen menu entry
- if ($menuchoice =~ /!([^\s!:]+):[^!]*$/) {
- $queue = $1;
- # Save the cursor position
- $cursorpos = $menuchoice;
- }
- }
- # Save the default spooler
- printer::set_default_spooler($printer);
- #- Close printerdrake
- $menuchoice eq "\@quit" and last;
- }
- if ($newqueue) {
- $printer->{NEW} = 1;
- #- Set default values for a new queue
- $printer::printer_type_inv{$printer->{TYPE}} or
- $printer->{TYPE} = printer::default_printer_type($printer);
- $printer->{currentqueue} = { queue => $queue,
- foomatic => 0,
- desc => "",
- loc => "",
- make => "",
- model => "",
- printer => "",
- driver => "",
- connect => "",
- spooler => $printer->{SPOOLER},
- };
- #- Set OLD_QUEUE field so that the subroutines for the
- #- configuration work correctly.
- $printer->{OLD_QUEUE} = $printer->{QUEUE} = $queue;
- #- Do all the configuration steps for a new queue
- step_0:
- #if ((!$::expert) && (!$::isEmbedded) && (!$::isInstall) &&
- if ((!$::isEmbedded) && (!$::isInstall) &&
- #if ((!$::isInstall) &&
- ($in->isa('interactive::gtk'))) {
- $continue = 1;
- # Enter wizard mode
- $::Wizard_pix_up = "wiz_printerdrake.png";
- $::Wizard_title = _("Add a new printer");
- $::isWizard = 1;
- # Wizard welcome screen
- $::Wizard_no_previous = 1;
- undef $::Wizard_no_cancel; undef $::Wizard_finished;
- wizard_welcome($printer, $in) or do {
- wizard_close($in, 0);
- next;
- };
- undef $::Wizard_no_previous;
- eval {
- # eval to catch wizard cancel. The wizard stuff should
- # be in a separate function with steps. see dragw.
- # (dams)
- $printer->{TYPE} = "LOCAL";
- step_1:
- !$::expert or choose_printer_type($printer, $in) or
- goto step_0;
- step_2:
- setup_printer_connection($printer, $in, $upNetwork) or
- do {
- goto step_1 if $::expert;
- goto step_0;
- };
- step_3:
- if (($::expert) or ($printer->{MANUAL}) or
- ($printer->{MORETHANONE})) {
- choose_printer_name($printer, $in) or
- goto step_2;
- }
- get_db_entry($printer, $in);
- step_3_9:
- if ((!$::expert) and (!$printer->{MANUAL})) {
- is_model_correct($printer, $in) or do {
- goto step_3 if $printer->{MORETHANONE};
- goto step_2;
- }
- }
- step_4:
- # Remember DB entry for "Previous" button in wizard
- my $dbentry = $printer->{DBENTRY};
- if (($::expert) or ($printer->{MANUAL}) or
- ($printer->{MANUALMODEL})) {
- choose_model($printer, $in) or do {
- # Restore DB entry
- $printer->{DBENTRY} = $dbentry;
- goto step_3_9 if $printer->{MANUALMODEL};
- goto step_3;
- };
- }
- get_printer_info($printer, $in) or next;
- step_5:
- setup_options($printer, $in) or
- goto step_4;
- configure_queue($printer, $in);
- undef $printer->{MANUAL} if $printer->{MANUAL};
- $::Wizard_no_previous = 1;
- setasdefault($printer, $in);
- $cursorpos =
- $printer->{configured}{$printer->{QUEUE}}{queuedata}{menuentry} .
- ($printer->{QUEUE} eq $printer->{DEFAULT} ?
- _(" (Default)") : ());
- my $testpages = print_testpages($printer, $in, $printer->{TYPE} !~ /LOCAL/ && $upNetwork);
- if ($testpages == 1) {
- # User was content with test pages
- # Leave wizard mode with congratulations screen
- wizard_close($in, 1);
- $continue = ($::expert || !$::isInstall || $menushown ||
- $in->ask_yesorno('',_("Do you want to configure another printer?")));
- } elsif ($testpages == 2) {
- # User was not content with test pages
- # Leave wizard mode without congratulations
- # screen
- wizard_close($in, 0);
- $editqueue = 1;
- $queue = $printer->{QUEUE};
- }
- };
- wizard_close($in, 0) if ($@ =~ /wizcancel/);
- } else {
- $printer->{TYPE} = "LOCAL";
- !$::expert or choose_printer_type($printer, $in) or next;
- #- Cancelling the printer connection type window
- #- should not restart printerdrake in recommended mode,
- #- it is the first dialog of the sequence there and
- #- the "Add printer" sequence should be stopped when there
- #- are no local printers. In expert mode this is the second
- #- dialog of the sequence.
- $continue = 1 if ($::expert || !$::isInstall);
- setup_printer_connection($printer, $in, $upNetwork) or next;
- #- Cancelling one of the following dialogs should
- #- restart printerdrake
- $continue = 1;
- if (($::expert) or ($printer->{MANUAL}) or
- ($printer->{MORETHANONE})) {
- choose_printer_name($printer, $in) or next;
- }
- get_db_entry($printer, $in);
- if ((!$::expert) and (!$printer->{MANUAL})) {
- is_model_correct($printer, $in) or next;
- }
- if (($::expert) or ($printer->{MANUAL}) or
- ($printer->{MANUALMODEL})) {
- choose_model($printer, $in) or next;
- }
- get_printer_info($printer, $in) or next;
- setup_options($printer, $in) or next;
- configure_queue($printer, $in);
- undef $printer->{MANUAL} if $printer->{MANUAL};
- setasdefault($printer, $in);
- $cursorpos =
- $printer->{configured}{$printer->{QUEUE}}{queuedata}{menuentry} .
- ($printer->{QUEUE} eq $printer->{DEFAULT} ?
- _(" (Default)") : ());
- my $testpages = print_testpages($printer, $in, $printer->{TYPE} !~ /LOCAL/ && $upNetwork);
- if ($testpages == 1) {
- # User was content with test pages
- $continue = ($::expert || !$::isInstall || $menushown ||
- $in->ask_yesorno('',_("Do you want to configure another printer?")));
- } elsif ($testpages == 2) {
- # User was not content with test pages
- $editqueue = 1;
- $queue = $printer->{QUEUE};
- }
- };
- undef $printer->{MANUAL} if $printer->{MANUAL};
- undef $printer->{NOAUTODETECT} if $printer->{NOAUTODETECT};
- } else {
- $printer->{NEW} = 0;
- # Modify a queue, ask which part should be modified
- $in->set_help('modifyPrinterMenu') if $::isInstall;
- # Get some info to display
- my $infoline;
- if ($printer->{configured}{$queue}) {
- # Here we must regenerate the menu entry, because the
- # parameters can be changed.
- printer::make_menuentry($printer,$queue);
- $printer->{configured}{$queue}{queuedata}{menuentry} =~
- /!([^!]+)$/;
- $infoline = $1 .
- ($queue eq $printer->{DEFAULT} ? _(" (Default)") : ()) .
- ($printer->{configured}{$queue}{queuedata}{desc} ?
- ", Descr.: $printer->{configured}{$queue}{queuedata}{desc}" : ()) .
- ($printer->{configured}{$queue}{queuedata}{loc} ?
- ", Loc.: $printer->{configured}{$queue}{queuedata}{loc}" : ()) .
- ($::expert ?
- ", Driver: $printer->{configured}{$queue}{queuedata}{driver}" : ());
- } else {
- # The parameters of a remote CUPS queue cannot be changed,
- # so we can simply take the menu entry.
- $cursorpos =~ /!([^!]+)$/;
- $infoline = $1;
- }
- if ($in->ask_from_
- ({ title => _("Modify printer configuration"),
- messages =>
- _("Printer %s
-What do you want to modify on this printer?",
- $infoline),
- cancel => _("Close"),
- ok => _("Do it!")
- },
- [ { val => \$modify, format => \&translate,
- type => 'list',
- list => [ ($printer->{configured}{$queue} ?
- (_("Printer connection type"),
- _("Printer name, description, location"),
- ($::expert ?
- _("Printer manufacturer, model, driver") :
- _("Printer manufacturer, model")),
- (($printer->{configured}{$queue}{queuedata}{make} ne
- "") &&
- (($printer->{configured}{$queue}{queuedata}{model} ne
- _("Unknown model")) &&
- ($printer->{configured}{$queue}{queuedata}{model} ne
- _("Raw printer"))) ?
- _("Printer options") : ())) : ()),
- (($queue ne $printer->{DEFAULT}) ?
- _("Set this printer as the default") : ()),
- ($printer->{configured}{$queue} ? () :
- (_("Add this printer to Star Office/OpenOffice.org"),
- _("Remove this printer from Star Office/OpenOffice.org"))),
- _("Print test pages"),
- _("Know how to use this printer"),
- ($printer->{configured}{$queue} ?
- _("Remove printer") : ()) ] } ] ) ) {
- # Stay in the queue edit window until the user clicks "Close"
- # or deletes the queue
- $editqueue = 1;
- #- Copy the queue data and work on the copy
- $printer->{currentqueue} = {};
- my $driver;
- if ($printer->{configured}{$queue}) {
- printer::copy_printer_params($printer->{configured}{$queue}{queuedata}, $printer->{currentqueue});
- #- Keep in mind the printer driver which was used, so it
- #- can be determined whether the driver is only
- #- available in expert and so for setting the options
- #- for the driver in recommended mode a special
- #- treatment has to be applied.
- $driver = $printer->{currentqueue}{driver};
- }
- #- keep in mind old name of queue (in case of changing)
- $printer->{OLD_QUEUE} = $printer->{QUEUE} = $queue;
- #- Reset some variables
- $printer->{OLD_CHOICE} = undef;
- $printer->{DBENTRY} = undef;
- #- Which printer type did we have before (check beginning of
- #- URI)
- my $type;
- if ($printer->{configured}{$queue}) {
- for $type (qw(file lpd socket smb ncp postpipe)) {
- if ($printer->{currentqueue}{connect}
- =~ /^$type:/) {
- $printer->{TYPE} =
- ($type eq 'file' ? 'LOCAL' : uc($type));
- last;
- }
- }
- }
- # Do the chosen task
- if ($modify eq _("Printer connection type")) {
- choose_printer_type($printer, $in) &&
- setup_printer_connection($printer, $in, $upNetwork) &&
- configure_queue($printer, $in);
- } elsif ($modify eq _("Printer name, description, location")) {
- choose_printer_name($printer, $in) &&
- configure_queue($printer, $in);
- # Delete old queue when it was renamed
- if (lc($printer->{QUEUE}) ne lc($printer->{OLD_QUEUE})) {
- my $w = $in->wait_message('', _("Removing old printer \"%s\"...", $printer->{OLD_QUEUE}));
- printer::remove_queue($printer, $printer->{OLD_QUEUE});
- # If the default printer was renamed, correct the
- # the default printer setting of the spooler
- if ($queue eq $printer->{DEFAULT}) {
- $printer->{DEFAULT} = $printer->{QUEUE};
- printer::set_default_printer($printer);
- }
- $queue = $printer->{QUEUE};
- }
- } elsif (($modify eq _("Printer manufacturer, model, driver")) ||
- ($modify eq _("Printer manufacturer, model"))) {
- get_db_entry($printer, $in);
- choose_model($printer, $in) &&
- get_printer_info($printer, $in) &&
- setup_options($printer, $in) &&
- configure_queue($printer, $in);
- } elsif ($modify eq _("Printer options")) {
- get_printer_info($printer, $in) &&
- setup_options($printer, $in) &&
- configure_queue($printer, $in);
- } elsif ($modify eq _("Set this printer as the default")) {
- $printer->{DEFAULT} = $queue;
- printer::set_default_printer($printer);
- $in->ask_warn(_("Default printer"),
- _("The printer \"%s\" is set as the default printer now.", $queue));
- } elsif ($modify eq _("Add this printer to Star Office/OpenOffice.org")) {
- if (printer::addcupsremotetoapplications
- ($printer, $queue)) {
- $in->ask_warn(_("Adding printer to Star Office/OpenOffice.org"),
- _("The printer \"%s\" was successfully added to Star Office/OpenOffice.org.", $queue));
- } else {
- $in->ask_warn(_("Adding printer to Star Office/OpenOffice.org"),
- _("Failed to add the printer \"%s\" to Star Office/OpenOffice.org.", $queue));
- }
- } elsif ($modify eq _("Remove this printer from Star Office/OpenOffice.org")) {
- if (printer::removeprinterfromapplications
- ($printer, $queue)) {
- $in->ask_warn(_("Removing printer from Star Office/OpenOffice.org"),
- _("The printer \"%s\" was successfully removed from Star Office/OpenOffice.org.", $queue));
- } else {
- $in->ask_warn(_("Removing printer from Star Office/OpenOffice.org"),
- _("Failed to remove the printer \"%s\" from Star Office/OpenOffice.org.", $queue));
- }
- } elsif ($modify eq _("Print test pages")) {
- print_testpages($printer, $in, $upNetwork);
- } elsif ($modify eq _("Know how to use this printer")) {
- printer_help($printer, $in);
- } elsif ($modify eq _("Remove printer")) {
- if ($in->ask_yesorno('',
- _("Do you really want to remove the printer \"%s\"?", $queue), 1)) {
- {
- my $w = $in->wait_message('', _("Removing printer \"%s\"...", $queue));
- if (printer::remove_queue($printer, $queue)) {
- $editqueue = 0;
- # Define a new default printer if we have
- # removed the default one
- if ($queue eq $printer->{DEFAULT}) {
- my @k = sort(keys(%{$printer->{configured}}));
- if (@k) {
- $printer->{DEFAULT} = $k[0];
- printer::set_default_printer($printer);
- } else {
- $printer->{DEFAULT} = "";
- }
- }
- # Let the main menu cursor go to the default
- # position
- $cursorpos = "::";
- }
- }
- }
- }
- # Make sure that the cursor is still at the same position
- # in the main menu when one has modified something on the
- # current printer
- if (($printer->{QUEUE}) && ($printer->{QUEUE} ne "")) {
- if ($printer->{configured}{$printer->{QUEUE}}) {
- $cursorpos =
- $printer->{configured}{$printer->{QUEUE}}{queuedata}{menuentry} .
- ($printer->{QUEUE} eq $printer->{DEFAULT} ?
- _(" (Default)") : ());
- } else {
- my $s1 = _(" (Default)");
- my $s2 = $s1;
- $s2 =~ s/\(/\\\(/;
- $s2 =~ s/\)/\\\)/;
- if (($printer->{QUEUE} eq $printer->{DEFAULT}) &&
- ($cursorpos !~ /$s2/)) {
- $cursorpos .= $s1;
- }
- }
- }
- } else {
- $editqueue = 0;
- }
- $continue = ($editqueue || $::expert || !$::isInstall ||
- $menushown ||
- $in->ask_yesorno('',_("Do you want to configure another printer?")));
- }
-
- # Configure the current printer queue in applications when main menu
- # will not be shown (During installation in "Recommended" mode)
- if ($::isInstall && !$::expert && !$menushown && !$continue) {
- my $w = $in->wait_message('', _("Configuring applications..."));
- printer::configureapplications($printer);
- }
-
- # Delete some variables
- $printer->{OLD_QUEUE} = "";
- foreach (qw(QUEUE TYPE str_type DBENTRY ARGS OLD_CHOICE)) {
- $printer->{$_} = "";
- }
- $printer->{currentqueue} = {};
- $printer->{complete} = 0;
- }
- # Clean up the $printer data structure for auto-install log
- for my $queue (keys %{$printer->{configured}}) {
- for my $item (keys %{$printer->{configured}{$queue}}) {
- if ($item ne "queuedata") {
- delete($printer->{configured}{$queue}{$item});
- }
- }
- if ($printer->{configured}{$queue}{queuedata}{menuentry}) {
- delete($printer->{configured}{$queue}{queuedata}{menuentry});
- }
- }
- foreach (qw(Old_queue QUEUE TYPE str_type currentqueue DBENTRY ARGS complete OLD_CHOICE NEW MORETHANONE MANUALMODEL))
- { delete $printer->{$_} };
-}
-
diff --git a/perl-install/proxy.pm b/perl-install/proxy.pm
deleted file mode 100644
index 72fd35664..000000000
--- a/perl-install/proxy.pm
+++ /dev/null
@@ -1,110 +0,0 @@
-package proxy;
-
-use diagnostics;
-use strict;
-use run_program;
-use common;
-use log;
-use c;
-
-
-sub main {
- my ($prefix, $in) = @_;
- my $proxy_cfg = {};
- my $config_file = "$prefix/usr/lib/wgetrc";
-
- # grab current config
- foreach (cat_($config_file)) {
- /http_proxy = (http:.*):(\d+)/ and ($proxy_cfg->{http_url}, $proxy_cfg->{http_port}) = ($1, $2);
- /ftp_proxy = (ftp:.*):(\d+)/ and ($proxy_cfg->{ftp_url}, $proxy_cfg->{ftp_port}) = ($1, $2);
- /http_user = (.*)/ and ($proxy_cfg->{login}) = $1;
- if (/http_passwd = (.*)/) {
- ($proxy_cfg->{passwd}) = $1;
- ($proxy_cfg->{passwd2}) = $1;
- }
- }
- begin:
- $::isWizard = 1;
- $::Wizard_no_previous = 1;
- $in->ask_okcancel(_("Proxy configuration"),
- _("Welcome to the proxy configuration utility.\n\nHere, you'll be able to set up your http and ftp proxies\nwith or without login and password\n"
- ), 1);
-
- # http proxy
- step_http_proxy:
- undef $::Wizard_no_previous;
- $proxy_cfg->{http_url} ||= "http://www.proxy.com/";
- $in->ask_from(_("Proxy configuration"),
- _("Please fill in the http proxy informations\nLeave it blank if you don't want an http proxy"),
- [ { label => _("URL"), val => \$proxy_cfg->{http_url} },
- { label => _("port"), val => \$proxy_cfg->{http_port} }
- ],
- complete => sub {
- if ($proxy_cfg->{http_url} && $proxy_cfg->{http_url} !~ /^http:/) {
- $in->ask_warn('', _("Url should begin with 'http:'"));
- return (1,0);
- }
- if ($proxy_cfg->{http_port} && $proxy_cfg->{http_port} !~ /^\d+$/) {
- $in->ask_warn('', _("The port part should be numeric"));
- return (1,1);
- }
- 0;
- }
- ) or goto begin;
-
- # ftp proxy
- step_ftp_proxy:
- $proxy_cfg->{ftp_url} ||= "ftp://ftp.proxy.com/";
- $in->ask_from(_("Proxy configuration"),
- _("Please fill in the ftp proxy informations\nLeave it blank if you don't want an ftp proxy"),
- [ { label => _("URL"), val => \$proxy_cfg->{ftp_url} },
- { label => _("port"), val => \$proxy_cfg->{ftp_port} }
- ],
- complete => sub {
- if ($proxy_cfg->{ftp_url} && $proxy_cfg->{ftp_url} !~ /^ftp:/) {
- $in->ask_warn('', _("Url should begin with 'ftp:'"));
- return (1,0);
- }
- if ($proxy_cfg->{ftp_port} && $proxy_cfg->{ftp_port} !~ /^\d+$/) {
- $in->ask_warn('', _("The port part should be numeric"));
- return (1,1);
- }
- 0;
- }
- ) or goto step_http_proxy;
-
- # proxy login/passwd
- step_login:
- $in->ask_from(_("Proxy configuration"),
- _("Please enter proxy login and password, if any.\nLeave it blank if you don't want login/passwd"),
- [ { label => _("login"), val => \$proxy_cfg->{login} },
- {
- label => _("password"), val => \$proxy_cfg->{passwd}, hidden => 1 },
- {
- label => _("re-type password"), val => \$proxy_cfg->{passwd2}, hidden => 1 }
- ],
- complete => sub {
- if ($proxy_cfg->{passwd} ne $proxy_cfg->{passwd2}) {
- $in->ask_warn('', _("The passwords don't match. Try again!"));
- return(1,1);
- }
- 0;
- }
- ) or goto step_ftp_proxy;
- # save config
- substInFile {
- s/^(http|ftp)_proxy.*\n//;
- eof and $_ .= "http_proxy = $proxy_cfg->{http_url}:$proxy_cfg->{http_port}
-ftp_proxy = $proxy_cfg->{ftp_url}:$proxy_cfg->{ftp_port}\n";
- } $config_file;
- $proxy_cfg->{login} and substInFile {
- s/^http_(user|passwd).*\n//;
- eof and $_ .= "http_user = $proxy_cfg->{login}
-http_passwd = $proxy_cfg->{passwd}\n" } $config_file;
- log::l("[drakproxy] Installation complete, exiting\n");
-}
-
-#---------------------------------------------
-# WONDERFULL pad
-#---------------------------------------------
-1;
diff --git a/perl-install/raid.pm b/perl-install/raid.pm
deleted file mode 100644
index 86a27d866..000000000
--- a/perl-install/raid.pm
+++ /dev/null
@@ -1,180 +0,0 @@
-package raid; # $Id$
-
-use diagnostics;
-use strict;
-
-#-######################################################################################
-#- misc imports
-#-######################################################################################
-use common;
-use partition_table qw(:types);
-use run_program;
-use devices;
-use modules;
-use fs;
-
-sub nb {
- my ($nb) = @_;
- first((ref $nb ? $nb->{device} : $nb) =~ /(\d+)/);
-}
-
-sub new {
- my ($raids, @parts) = @_;
- my $nb = @$raids;
- $raids->[$nb] = { 'chunk-size' => "64k", type => 0x483, disks => [ @parts ], device => "md$nb", notFormatted => 1, level => 1 };
- foreach my $part (@parts) {
- $part->{raid} = $nb;
- delete $part->{mntpoint};
- }
- update($raids->[$nb]);
- $nb;
-}
-
-sub add {
- my ($raids, $part, $nb) = @_; $nb = nb($nb);
- $raids->[$nb]{isMounted} and die _("Can't add a partition to _formatted_ RAID md%d", $nb);
- inactivate_and_dirty($raids->[$nb]);
- $part->{notFormatted} = 1; $part->{isFormatted} = 0;
- $part->{raid} = $nb;
- delete $part->{mntpoint};
- push @{$raids->[$nb]{disks}}, $part;
- update($raids->[$nb]);
-}
-
-sub delete {
- my ($raids, $nb) = @_;
- $nb = nb($nb);
- inactivate_and_dirty($raids->[$nb]);
- delete $_->{raid} foreach @{$raids->[$nb]{disks}};
- undef $raids->[$nb];
-}
-
-sub changeNb {
- my ($raids, $oldnb, $newnb) = @_;
- if ($oldnb != $newnb) {
- inactivate_and_dirty($raids->[$_]) foreach $oldnb, $newnb;
-
- ($raids->[$newnb], $raids->[$oldnb]) = ($raids->[$oldnb], undef);
- $raids->[$newnb]{device} = "md$newnb";
- $_->{raid} = $newnb foreach @{$raids->[$newnb]{disks}};
- }
- $newnb;
-}
-
-sub removeDisk {
- my ($raids, $part) = @_;
- my $nb = nb($part->{raid});
- inactivate_and_dirty($raids->[$nb]);
- delete $part->{raid};
- my $disks = $raids->[$nb]{disks};
- @$disks = grep { $_ != $part } @$disks;
- if (@$disks) {
- update($raids->[$nb]);
- } else {
- undef $raids->[$nb];
- }
-}
-
-sub updateSize {
- my ($part) = @_;
- local $_ = $part->{level};
- my @l = map { $_->{size} } @{$part->{disks}};
-
- $part->{size} = do {
- if (/0|linear/) { sum @l }
- elsif (/1/ ) { min @l }
- elsif (/4|5/) { min(@l) * $#l }
- };
-}
-
-sub module {
- my ($part) = @_;
- my $mod = $part->{level};
-
- $mod = 5 if $mod eq "4";
- $mod = "raid$mod" if $mod =~ /^\d+$/;
- $mod;
-}
-
-
-sub update {
- updateSize($_) foreach @_;
-}
-
-sub write {
- my ($raids, $file) = @_;
- local *F;
- local $\ = "\n";
- open F, ">$file" or die _("Can't write file %s", $file);
-
- foreach (grep {$_} @$raids) {
- print F <<"EOF";
-raiddev /dev/$_->{device}
-raid-level $_->{level}
-chunk-size $_->{'chunk-size'}
-persistent-superblock 1
-EOF
- print F "nr-raid-disks ", int @{$_->{disks}};
- map_index {
- print F " device ", devices::make($_->{device});
- print F " raid-disk $::i";
- } @{$_->{disks}};
- }
-}
-
-sub make {
- my ($raids, $part) = @_;
-
- return if is_active($part->{device});
-
- inactivate_and_dirty($part);
-
- isRAID($_) and make($raids, $_) foreach @{$part->{disks}};
- my $dev = devices::make($part->{device});
- eval { modules::load(module($part)) };
- &write($raids, "/etc/raidtab");
- run_program::run("mkraid", "--really-force", $dev) or die
- $::isStandalone ? _("mkraid failed (maybe raidtools are missing?)") : _("mkraid failed");
-}
-
-sub format_part {
- my ($raids, $part) = @_;
- $part->{isFormatted} and return;
-
- make($raids, $part);
- fs::real_format_part($part);
- $_->{isFormatted} = 1 foreach @{$part->{disks}};
-}
-
-sub verify {
- my ($raids) = @_;
- $raids or return;
- foreach (grep {$_} @$raids) {
- @{$_->{disks}} >= ($_->{level} =~ /4|5/ ? 3 : 2) or die _("Not enough partitions for RAID level %d\n", $_->{level});
- }
-}
-
-sub prepare_prefixed {
- my ($raids, $prefix) = @_;
- $raids or return;
-
- eval { cp_af("/etc/raidtab", "$prefix/etc/raidtab") };
- foreach (grep {$_} @$raids) {
- devices::make("$prefix/dev/$_->{device}") foreach @{$_->{disks}};
- }
-}
-
-sub inactivate_and_dirty {
- my ($part) = @_;
- run_program::run("raidstop", devices::make($part->{device}));
- $part->{notFormatted} = 1; $part->{isFormatted} = 0;
-}
-
-sub is_active {
- my ($dev) = @_;
- grep { /^$dev / } cat_("/proc/mdstat");
-}
-
-sub inactivate_all() { run_program::run("raidstop", devices::make("md$_")) foreach 0..7 }
-
-1;
diff --git a/perl-install/resize_fat/.cvsignore b/perl-install/resize_fat/.cvsignore
deleted file mode 100644
index 3001c7424..000000000
--- a/perl-install/resize_fat/.cvsignore
+++ /dev/null
@@ -1,5 +0,0 @@
-blib
-pm_to_blib
-Makefile_c
-c_rewritten.c
-c_rewritten.bs
diff --git a/perl-install/resize_fat/Makefile b/perl-install/resize_fat/Makefile
deleted file mode 100644
index 9078b361a..000000000
--- a/perl-install/resize_fat/Makefile
+++ /dev/null
@@ -1,10 +0,0 @@
-.PHONY: clean
-
-c_rewritten: %: %.xs
- test -e Makefile_c || perl Makefile.PL
- $(MAKE) -f Makefile_c LD_RUN_PATH= || $(MAKE) -f Makefile_c LD_RUN_PATH=
- rm -f ../auto/resize_fat ; ln -s ../resize_fat/blib/arch/auto ../auto/resize_fat
-
-clean:
- test ! -e Makefile_c || $(MAKE) -f Makefile_c clean
- rm -f *~ *.o
diff --git a/perl-install/resize_fat/Makefile.PL b/perl-install/resize_fat/Makefile.PL
deleted file mode 100644
index 712f4e395..000000000
--- a/perl-install/resize_fat/Makefile.PL
+++ /dev/null
@@ -1,13 +0,0 @@
-use ExtUtils::MakeMaker;
-# See lib/ExtUtils/MakeMaker.pm for details of how to influence
-# the contents of the Makefile that is written.
-
-WriteMakefile(
- 'MAKEFILE' => 'Makefile_c',
- 'NAME' => 'c_rewritten',
- 'OPTIMIZE' => '-Os',
- 'VERSION_FROM' => 'c_rewritten.pm', # finds $VERSION
- 'LIBS' => '', # e.g., '-lm'
- 'DEFINE' => '', # e.g., '-DHAVE_SOMETHING'
- 'INC' => '', # e.g., '-I/usr/include/other'
-);
diff --git a/perl-install/resize_fat/README b/perl-install/resize_fat/README
deleted file mode 100644
index 12b64dea9..000000000
--- a/perl-install/resize_fat/README
+++ /dev/null
@@ -1,8 +0,0 @@
-TODO:
-
-resize_fat::fat::update($fs) should be called before doing undoable things
-(before the sync in construct_dir_tree)
-
-BUGS:
-no known bugs :)
-if you found one, please mail pixel@mandrakesoft.com !!
diff --git a/perl-install/resize_fat/any.pm b/perl-install/resize_fat/any.pm
deleted file mode 100644
index f811e7159..000000000
--- a/perl-install/resize_fat/any.pm
+++ /dev/null
@@ -1,123 +0,0 @@
-package resize_fat::any; # $Id$
-
-use diagnostics;
-use strict;
-use vars qw($FREE $FILE $DIRECTORY $UNMOVEABLE);
-
-use common;
-use resize_fat::fat;
-use resize_fat::directory;
-use resize_fat::dir_entry;
-use resize_fat::c_rewritten;
-
-
-$FREE = 0;
-$FILE = 1;
-$DIRECTORY = 2;
-$UNMOVEABLE = 8;
-
-
-1;
-
-
-#- returns the number of clusters for a given filesystem type
-sub min_cluster_count($) {
- my ($fs) = @_;
- (1 << $ {{ FAT16 => 12, FAT32 => 12 }}{$fs->{fs_type}}) - 12;
-}
-sub max_cluster_count($) {
- my ($fs) = @_;
- (1 << $ {{ FAT16 => 16, FAT32 => 28 }}{$fs->{fs_type}}) - 11;
-}
-
-
-
-#- patch to get the function last_used that return the last used cluster of a fs.
-sub last_used($) {
- my ($fs) = @_;
-
- #- count in negative so absolute value count back to 2.
- foreach (-($fs->{nb_clusters}+1)..-2) { return -$_ if resize_fat::c_rewritten::flag(-$_) }
- die "any: empty FAT table of $fs->{nb_clusters} clusters";
-}
-#- patch to get the function last_unmoveable that return the last unmoveable cluster of a fs.
-sub last_unmoveable($) {
- my ($fs) = @_;
-
- #- count in negative so absolute value count back to 2.
- foreach (-($fs->{nb_clusters}+1)..-2) { return -$_ if 0x8 & resize_fat::c_rewritten::flag(-$_) }
-
- #- Oh at this point there are no unmoveable blocks!
- 2;
-}
-
-#- calculates the minimum size of a partition, in physical sectors
-sub min_size($) {
- my ($fs) = @_;
- my $count = $fs->{clusters}{count};
-
- #- directories are both in `used' and `dirs', so are counted twice
- #- It's done on purpose since we're moving all directories. So at the worse
- #- moment, 2 directories are there, but that way nothing wrong can happen :)
- my $min_cluster_count = max(2 + $count->{used} + $count->{bad} + $count->{dirs}, min_cluster_count($fs));
- $min_cluster_count = max($min_cluster_count, last_unmoveable($fs));
-
- my $size = $min_cluster_count * divide($fs->{cluster_size}, $SECTORSIZE) +
- divide($fs->{cluster_offset}, $SECTORSIZE) +
- 64*1024*1024 / $SECTORSIZE; #- help with such more sectors (ie 64Mb).
-
- #- help zindozs again with 512Mb+ at least else partition is ignored.
- if ($resize_fat::isFAT32) {
- $size = max($size, 524*1024*1024 / $SECTORSIZE);
- }
- $size;
-
-}
-#- calculates the maximum size of a partition, in physical sectors
-sub max_size($) {
- my ($fs) = @_;
-
- my $max_cluster_count = min($fs->{nb_fat_entries} - 2, max_cluster_count($fs));
-
- $max_cluster_count * divide($fs->{cluster_size}, $SECTORSIZE) +
- divide($fs->{cluster_offset}, $SECTORSIZE);
-}
-#- calculates used size in order to avoid modifying anything.
-sub used_size($) {
- my ($fs) = @_;
-
- my $used_cluster_count = max(last_used($fs), min_cluster_count($fs));
-
- $used_cluster_count * divide($fs->{cluster_size}, $SECTORSIZE) +
- divide($fs->{cluster_offset}, $SECTORSIZE);
-}
-
-#- fills in fat_flag_map in c_rewritten.
-#- Each FAT entry is flagged as either FREE, FILE or DIRECTORY.
-sub flag_clusters {
- my ($fs) = @_;
- my ($cluster, $curr_dir_name, $entry, $type, $nb_dirs);
-
- my $f = sub {
- ($curr_dir_name, $entry) = @_;
- $cluster = resize_fat::dir_entry::get_cluster($entry);
-
- if (resize_fat::dir_entry::is_file($entry)) {
- $type = $FILE;
- $type |= $UNMOVEABLE if resize_fat::dir_entry::is_unmoveable($entry);
- } elsif (resize_fat::dir_entry::is_directory($entry)) {
- $type = $DIRECTORY;
- } else { return }
-
- my $nb = resize_fat::c_rewritten::checkFat($cluster, $type, "$curr_dir_name/$entry->{name}");
- print "resize_fat:flag_clusters: check fat returned $nb of type $type for $curr_dir_name/$entry->{name}\n";
- $nb_dirs += $nb if $type == $DIRECTORY;
- 0;
- };
-
- #- this must call allocate_fat_flag that zeroes the buffer allocated.
- resize_fat::c_rewritten::allocate_fat_flag($fs->{nb_clusters} + 2);
-
- resize_fat::directory::traverse_all($fs, $f);
- $fs->{clusters}{count}{dirs} = $nb_dirs;
-}
diff --git a/perl-install/resize_fat/boot_sector.pm b/perl-install/resize_fat/boot_sector.pm
deleted file mode 100644
index c87328637..000000000
--- a/perl-install/resize_fat/boot_sector.pm
+++ /dev/null
@@ -1,110 +0,0 @@
-package resize_fat::boot_sector; # $Id$
-
-use diagnostics;
-use strict;
-
-use common;
-use resize_fat::io;
-use resize_fat::any;
-use resize_fat::directory;
-
-
-#- Oops, this will be unresizable on big-endian machine. trapped by signature.
-my $format = "a3 a8 S C S C S S C S S S I I I S S I S S a458 S";
-my @fields = (
- 'boot_jump', #- boot strap short or near jump
- 'system_id', #- Name - can be used to special case partition manager volumes
- 'sector_size', #- bytes per logical sector
- 'cluster_size_in_sectors', #- sectors/cluster
- 'nb_reserved', #- reserved sectors
- 'nb_fats', #- number of FATs
- 'nb_root_dir_entries', #- number of root directory entries
- 'small_nb_sectors', #- number of sectors: big_nb_sectors supersedes
- 'media', #- media code
- 'fat16_fat_length', #- sectors/FAT for FAT12/16
- 'sectors_per_track',
- 'nb_heads',
- 'nb_hidden', #- (unused)
- 'big_nb_sectors', #- number of sectors (if small_nb_sectors == 0)
-
-#- FAT32-only entries
- 'fat32_fat_length', #- size of FAT in sectors
- 'fat32_flags', #- bit8: fat mirroring,
- #- low4: active fat
- 'fat32_version', #- minor * 256 + major
- 'fat32_root_dir_cluster',
- 'info_offset_in_sectors',
- 'fat32_backup_sector',
-
-#- Common again...
- 'boot_code', #- Boot code (or message)
- 'boot_sign', #- 0xAA55
-);
-
-1;
-
-
-#- trimfs_init_boot_sector() - reads in the boot sector - gets important info out
-#- of boot sector, and puts in main structure - performs sanity checks - returns 1
-#- on success, 0 on failureparameters: filesystem an empty structure to fill.
-sub read($) {
- my ($fs) = @_;
-
- my $boot = eval { resize_fat::io::read($fs, 0, $SECTORSIZE) }; $@ and die "reading boot sector failed on device $fs->{fs_name}";
- @{$fs}{@fields} = unpack $format, $boot;
-
- $fs->{nb_sectors} = $fs->{small_nb_sectors} || $fs->{big_nb_sectors};
- $fs->{cluster_size} = $fs->{cluster_size_in_sectors} * $fs->{sector_size};
-
- $fs->{boot_sign} == 0xAA55 or die "Invalid signature for a MS-based filesystem.\n";
- $fs->{nb_sectors} < 32 and die "Too few sectors for viable file system\n";
- $fs->{nb_fats} == 2 or cdie "Weird number of FATs: $fs->{nb_fats}, not 2.\n";
- $fs->{sector_size} == 512 or cdie "Strange sector_size != 512\n";
-
- if ($fs->{fat16_fat_length}) {
- #- asserting FAT16, will be verified later on
- $resize_fat::isFAT32 = 0;
- $fs->{fs_type} = 'FAT16';
- $fs->{fs_type_size} = 16;
- $fs->{fat_length} = $fs->{fat16_fat_length};
- $resize_fat::bad_cluster_value = 0xfff7; #- 2**16 - 1
- } else {
- $resize_fat::isFAT32 = 1;
- $fs->{fs_type} = 'FAT32';
- $fs->{fs_type_size} = 32;
- $fs->{fat_length} = $fs->{fat32_fat_length};
-
- $fs->{nb_root_dir_entries} = 0;
- $fs->{info_offset} = $fs->{info_offset_in_sectors} * $fs->{sector_size};
- $resize_fat::bad_cluster_value = 0x0ffffff7;
- }
-
- $fs->{fat_offset} = $fs->{nb_reserved} * $fs->{sector_size};
- $fs->{fat_size} = $fs->{fat_length} * $fs->{sector_size};
- $fs->{root_dir_offset} = $fs->{fat_offset} + $fs->{fat_size} * $fs->{nb_fats};
- $fs->{root_dir_size} = $fs->{nb_root_dir_entries} * resize_fat::directory::entry_size();
- $fs->{cluster_offset} = $fs->{root_dir_offset} + $fs->{root_dir_size} - 2 * $fs->{cluster_size};
-
- $fs->{nb_fat_entries} = divide($fs->{fat_size}, $fs->{fs_type_size} / 8);
-
- #- - 2 because clusters 0 & 1 doesn't exist
- $fs->{nb_clusters} = divide($fs->{nb_sectors} * $fs->{sector_size} - $fs->{cluster_offset}, $fs->{cluster_size}) - 2;
-
- $fs->{dir_entries_per_cluster} = divide($fs->{cluster_size}, psizeof($format));
-
-#- $fs->{nb_clusters} >= resize_fat::any::min_cluster_count($fs) or die "error: not enough sectors for a $fs->{fs_type}\n";
- $fs->{nb_clusters} < resize_fat::any::max_cluster_count($fs) or die "error: too many sectors for a $fs->{fs_type}\n";
-}
-
-sub write($) {
- my ($fs) = @_;
- my $boot = pack($format, @{$fs}{@fields});
-
- eval { resize_fat::io::write($fs, 0, $SECTORSIZE, $boot) }; $@ and die "writing the boot sector failed on device $fs->{fs_name}";
-
- if ($resize_fat::isFAT32) {
- #- write backup
- eval { resize_fat::io::write($fs, $fs->{fat32_backup_sector} * $SECTORSIZE, $SECTORSIZE, $boot) };
- $@ and die "writing the backup boot sector (#$fs->{fat32_backup_sector}) failed on device $fs->{fs_name}";
- }
-}
diff --git a/perl-install/resize_fat/c_rewritten.pm b/perl-install/resize_fat/c_rewritten.pm
deleted file mode 100644
index d74ecb5d3..000000000
--- a/perl-install/resize_fat/c_rewritten.pm
+++ /dev/null
@@ -1,14 +0,0 @@
-package resize_fat::c_rewritten; # $Id$
-
-use strict;
-use vars qw($VERSION @ISA);
-
-require DynaLoader;
-
-@ISA = qw(DynaLoader);
-$VERSION = '0.01';
-
-bootstrap resize_fat::c_rewritten $VERSION;
-
-1;
-
diff --git a/perl-install/resize_fat/c_rewritten.xs b/perl-install/resize_fat/c_rewritten.xs
deleted file mode 100644
index 92361097d..000000000
--- a/perl-install/resize_fat/c_rewritten.xs
+++ /dev/null
@@ -1,259 +0,0 @@
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-
-/* set by scan_fat, used by next */
-short *fat = NULL;
-char *fat_flag_map = NULL;
-unsigned int *fat_remap = NULL;
-int fat_remap_size;
-int type_size, nb_clusters, bad_cluster_value;
-
-void free_all() {
-#define FREE(p) if (p) free(p), p = NULL;
- FREE(fat);
- FREE(fat_flag_map);
- FREE(fat_remap);
-#undef FREE
-}
-
-unsigned int next(unsigned int cluster) {
- short *p = fat + type_size * cluster;
- if (!fat) {
- free_all();
- croak("fat::next: trying to use null pointer");
- }
- if (cluster >= nb_clusters + 2) {
- free_all();
- croak("fat::next: cluster %d outside filesystem", cluster);
- }
- return type_size == 1 ? *p : *((unsigned int *) p);
-}
-
-void set_next(unsigned int cluster, unsigned int val) {
- short *p = fat + type_size * cluster;
- if (!fat) {
- free_all();
- croak("fat::set_next: trying to use null pointer");
- }
- if (cluster >= nb_clusters + 2) {
- free_all();
- croak("fat::set_next: cluster %d outside filesystem", cluster);
- }
- type_size == 1 ? *p : *((unsigned int *) p) = val;
-}
-
-MODULE = resize_fat::c_rewritten PACKAGE = resize_fat::c_rewritten
-
-void
-read_fat(fd, offset, size, magic)
- int fd
- int offset
- int size
- unsigned char magic
- PPCODE:
-{
- fat = (short *) malloc(size);
- if (!fat) {
- free_all();
- croak("read_fat: not enough memory");
- }
- if (lseek(fd, offset, SEEK_SET) != offset ||
- read(fd, fat, size) != size) {
- free_all();
- croak("read_fat: reading FAT failed");
- }
- if (magic != *(unsigned char *) fat) {
- free_all();
- croak("read_fat: FAT has invalid signature");
- }
-}
-
-void
-write_fat(fd, size)
- int fd
- int size
- PPCODE:
-{
- if (write(fd, fat, size) != size) {
- free_all();
- croak("write_fat: write failed");
- }
-}
-
-void
-free_all()
- PPCODE:
- free_all();
-
-void
-scan_fat(nb_clusters_, type_size_)
- int nb_clusters_
- int type_size_
- PPCODE:
-{
- unsigned int v;
- int free = 0, bad = 0, used = 0;
- short *p;
-
- type_size = type_size_; nb_clusters = nb_clusters_;
- bad_cluster_value = type_size == 32 ? 0x0ffffff7 : 0xfff7;
-
- if (type_size % 16) {
- free_all();
- croak("scan_fat: unable to handle FAT%d", type_size);
- }
- type_size /= 16;
-
- for (p = fat + 2 * type_size; p < fat + type_size * (nb_clusters + 2); p += type_size) {
- v = type_size == 1 ? *p : *((unsigned int *) p);
-
- if (v == 0) free++;
- else if (v == bad_cluster_value) bad++;
- }
- used = nb_clusters - free - bad;
- EXTEND(SP, 3);
- PUSHs(sv_2mortal(newSViv(free)));
- PUSHs(sv_2mortal(newSViv(bad)));
- PUSHs(sv_2mortal(newSViv(used)));
-}
-
-unsigned int
-next(unused, cluster)
- void *unused
- unsigned int cluster
- CODE:
- RETVAL = next(cluster);
- OUTPUT:
- RETVAL
-
-void
-set_next(unused, cluster, val)
- void *unused
- unsigned int cluster
- unsigned int val
- CODE:
- set_next(cluster, val);
-
-void
-allocate_fat_flag(size)
- int size
- CODE:
- fat_flag_map = calloc(size, 1);
- if (!fat_flag_map) {
- free_all();
- croak("allocate_fat_flag: not enough memory");
- }
-
-int
-checkFat(cluster, type, name)
- unsigned int cluster
- int type
- char *name
- CODE:
- int nb = 0;
-
- if (!fat_flag_map) {
- free_all();
- croak("Bad FAT: trying to use null pointer");
- }
- for (; cluster < bad_cluster_value; cluster = next(cluster)) {
- if (cluster == 0) {
- free_all();
- croak("Bad FAT: unterminated chain for %s\n", name);
- }
- if (cluster >= nb_clusters + 2) {
- free_all();
- croak("Bad FAT: chain outside filesystem for %s\n", name);
- }
- if (fat_flag_map[cluster]) {
- free_all();
- croak("Bad FAT: cluster %d is cross-linked for %s\n", cluster, name);
- }
- fat_flag_map[cluster] = type;
- nb++;
- }
- RETVAL = nb;
- OUTPUT:
- RETVAL
-
-unsigned int
-flag(cluster)
- unsigned int cluster
- CODE:
- if (!fat_flag_map) {
- free_all();
- croak("Bad FAT: trying to use null pointer");
- }
- if (cluster >= nb_clusters + 2) {
- free_all();
- croak("Bad FAT: going outside filesystem");
- }
- RETVAL = fat_flag_map[cluster];
- OUTPUT:
- RETVAL
-
-void
-set_flag(cluster, flag)
- unsigned int cluster
- int flag
- CODE:
- if (!fat_flag_map) {
- free_all();
- croak("Bad FAT: trying to use null pointer");
- }
- if (cluster >= nb_clusters + 2) {
- free_all();
- croak("Bad FAT: going outside filesystem");
- }
- fat_flag_map[cluster] = flag;
-
-void
-allocate_fat_remap(size)
- int size
- CODE:
- fat_remap_size = size;
- fat_remap = (unsigned int *) calloc(size, sizeof(unsigned int *));
- if (!fat_remap) {
- free_all();
- croak("allocate_fat_remap: not enough memory");
- }
-
-unsigned int
-fat_remap(cluster)
- unsigned int cluster
- CODE:
- if (!fat_remap) {
- free_all();
- croak("fat_remap: trying to use null pointer");
- }
- if (cluster >= bad_cluster_value) {
- RETVAL = cluster; /* special cases */
- } else {
- if (cluster >= fat_remap_size) {
- free_all();
- croak("fat_remap: cluster %d >= %d in fat_remap", cluster, fat_remap_size);
- }
- RETVAL = fat_remap[cluster];
- }
- OUTPUT:
- RETVAL
-
-void
-set_fat_remap(cluster, val)
- unsigned int cluster
- unsigned int val
- CODE:
- if (!fat_remap) {
- free_all();
- croak("set_fat_remap: trying to use null pointer");
- }
- if (cluster >= fat_remap_size) {
- free_all();
- croak("set_fat_remap: cluster %d >= %d in set_fat_remap", cluster, fat_remap_size);
- }
- if (val < bad_cluster_value && val >= fat_remap_size) {
- free_all();
- croak("set_fat_remap: remapping cluster %d to cluster %d >= %d in set_fat_remap", cluster, val, fat_remap_size);
- }
- fat_remap[cluster] = val;
diff --git a/perl-install/resize_fat/dir_entry.pm b/perl-install/resize_fat/dir_entry.pm
deleted file mode 100644
index b39c72094..000000000
--- a/perl-install/resize_fat/dir_entry.pm
+++ /dev/null
@@ -1,77 +0,0 @@
-package resize_fat::dir_entry; # $Id$
-
-use diagnostics;
-use strict;
-
-
-my $DELETED_FLAG = 0xe5;
-
-my $READ_ONLY_ATTR = 0x01;
-my $HIDDEN_ATTR = 0x02;
-my $SYSTEM_ATTR = 0x04;
-my $VOLUME_LABEL_ATTR = 0x08;
-my $VFAT_ATTR = 0x0f;
-my $DIRECTORY_ATTR = 0x10;
-
-1;
-
-sub get_cluster($) {
- my ($entry) = @_;
- $entry->{first_cluster} + ($resize_fat::isFAT32 ? $entry->{first_cluster_high} * (1 << 16) : 0);
-}
-sub set_cluster($$) {
- my ($entry, $val) = @_;
- $entry->{first_cluster} = $val & (1 << 16) - 1;
- $entry->{first_cluster_high} = $val >> 16 if $resize_fat::isFAT32;
-}
-
-sub is_unmoveable($) {
- my ($entry) = @_;
- $entry->{attributes} & $HIDDEN_ATTR || $entry->{attributes} & $SYSTEM_ATTR;
-}
-
-sub is_directory($) {
- my ($entry) = @_;
- $entry->{attributes} & $DIRECTORY_ATTR && $entry->{name} !~ /^\.\.? / && !is_special_entry($entry);
-}
-
-sub is_volume($) {
- my ($entry) = @_;
- !is_special_entry($entry) && $entry->{attributes} & $VOLUME_LABEL_ATTR;
-}
-
-sub is_file($) {
- my ($entry) = @_;
- !is_special_entry($entry) && !is_directory($entry) && !is_volume($entry) && $entry->{length};
-}
-
-
-sub is_special_entry($) {
- my ($entry) = @_;
- my ($c) = unpack "C", $entry->{name};
-
- #- skip empty slots, deleted files, and 0xF6?? (taken from kernel)
- $c == 0 || $c == $DELETED_FLAG || $c == 0xF6 and return 1;
-
- $entry->{attributes} == $VFAT_ATTR and return 1;
- 0;
-}
-
-
-#- return true if entry has been modified
-#- curr_dir_name is added to contains current directory name, "" for root.
-sub remap {
- my ($curr_dir_name, $entry) = @_;
-
- is_special_entry($entry) and return;
-
- my $cluster = get_cluster($entry);
- my $new_cluster = resize_fat::c_rewritten::fat_remap($cluster);
-
- #-print "remapping cluster ", get_cluster($entry), " to $new_cluster";
-
- $new_cluster == $cluster and return; #- no need to modify
-
- set_cluster($entry, $new_cluster);
- 1;
-}
diff --git a/perl-install/resize_fat/directory.pm b/perl-install/resize_fat/directory.pm
deleted file mode 100644
index 1f2b1ede6..000000000
--- a/perl-install/resize_fat/directory.pm
+++ /dev/null
@@ -1,79 +0,0 @@
-package resize_fat::directory; # $Id$
-
-use diagnostics;
-use strict;
-
-use common;
-use resize_fat::dir_entry;
-use resize_fat::io;
-
-
-my $format = "a8 a3 C C C S7 I";
-my @fields = (
- 'name',
- 'extension',
- 'attributes',
- 'is_upper_case_name',
- 'creation_time_low', #- milliseconds
- 'creation_time_high',
- 'creation_date',
- 'access_date',
- 'first_cluster_high', #- for FAT32
- 'time',
- 'date',
- 'first_cluster',
- 'length',
-);
-my $psizeof_format = psizeof($format);
-
-1;
-
-sub entry_size { $psizeof_format }
-
-#- call `f' for each entry of the directory
-#- if f return true, then modification in the entry are taken back
-sub traverse($$$) {
- my ($directory, $curr_dir_name, $f) = @_;
-
- for (my $i = 0;; $i++) {
- my $raw = \substr($directory, $i * $psizeof_format, $psizeof_format);
-
- #- empty entry means end of directory
- $$raw =~ /^\0*$/ and return $directory;
-
- my $entry; @{$entry}{@fields} = unpack $format, $$raw;
-
- &$f($curr_dir_name, $entry)
- and $$raw = pack $format, @{$entry}{@fields};
- }
- $directory;
-}
-
-sub traverse_all($$) {
- my ($fs, $f) = @_;
-
- my $traverse_all; $traverse_all = sub {
- my ($curr_dir_name, $entry) = @_;
-
- &$f($curr_dir_name, $entry);
-
- resize_fat::dir_entry::is_directory($entry)
- and traverse(resize_fat::io::read_file($fs, resize_fat::dir_entry::get_cluster($entry)), "$curr_dir_name/$entry->{name}", $traverse_all);
-
- undef; #- no need to write back (cf traverse)
- };
-
- my $directory = $resize_fat::isFAT32 ?
- resize_fat::io::read_file($fs, $fs->{fat32_root_dir_cluster}) :
- resize_fat::io::read($fs, $fs->{root_dir_offset}, $fs->{root_dir_size});
- traverse($directory, "", $traverse_all);
- undef $traverse_all; #- circular reference is no good for perl's poor GC :(
-}
-
-
-#- function used by construct_dir_tree to translate the `cluster' fields in each
-#- directory entry
-sub remap($$) {
- my ($fs, $directory) = @_;
- traverse($directory, "", \&resize_fat::dir_entry::remap);
-}
diff --git a/perl-install/resize_fat/fat.pm b/perl-install/resize_fat/fat.pm
deleted file mode 100644
index 31643f0a3..000000000
--- a/perl-install/resize_fat/fat.pm
+++ /dev/null
@@ -1,138 +0,0 @@
-package resize_fat::fat; # $Id$
-
-use diagnostics;
-use strict;
-
-use resize_fat::any;
-use resize_fat::io;
-use resize_fat::c_rewritten;
-
-1;
-
-sub read($) {
- my ($fs) = @_;
-
- resize_fat::c_rewritten::read_fat(fileno $fs->{fd}, $fs->{fat_offset}, $fs->{fat_size}, $fs->{media});
-
- @{$fs->{clusters}{count}}{qw(free bad used)} =
- resize_fat::c_rewritten::scan_fat($fs->{nb_clusters}, $fs->{fs_type_size});
-}
-
-sub write($) {
- my ($fs) = @_;
-
- sysseek $fs->{fd}, $fs->{fat_offset}, 0 or die "write_fat: seek failed";
- foreach (1..$fs->{nb_fats}) {
- resize_fat::c_rewritten::write_fat(fileno $fs->{fd}, $fs->{fat_size});
- }
-}
-
-
-
-#- allocates where all the clusters will be moved to. Clusters before cut_point
-#- remain in the same position, however cluster that are part of a directory are
-#- moved regardless (this is a mechanism to prevent data loss) (cut_point is the
-#- first cluster that won't occur in the new fs)
-sub allocate_remap {
- my ($fs, $cut_point) = @_;
- my ($cluster, $new_cluster);
- my $remap = sub { resize_fat::c_rewritten::set_fat_remap($cluster, $new_cluster) };
- my $get_new = sub {
- $new_cluster = get_free($fs);
- 0 < $new_cluster && $new_cluster < $cut_point or die "no free clusters";
- set_eof($fs, $new_cluster); #- mark as used
- #-log::ld("resize_fat: [$cluster,", &next($fs, $cluster), "...]->$new_cluster...");
- };
-
- #- this must call allocate_fat_remap that zeroes the buffer allocated.
- resize_fat::c_rewritten::allocate_fat_remap($fs->{nb_clusters} + 2);
-
- $fs->{last_free_cluster} = 2;
- for ($cluster = 2; $cluster < $fs->{nb_clusters} + 2; $cluster++) {
- if ($cluster < $cut_point) {
- if (resize_fat::c_rewritten::flag($cluster) == $resize_fat::any::DIRECTORY) {
- &$get_new();
- } else {
- $new_cluster = $cluster;
- }
- &$remap();
- } elsif (!is_empty(&next($fs, $cluster))) {
- &$get_new();
- &$remap();
- }
- }
-}
-
-
-#- updates the fat for the resized filesystem
-sub update {
- my ($fs) = @_;
-
- for (my $cluster = 2; $cluster < $fs->{nb_clusters} + 2; $cluster++) {
- if (resize_fat::c_rewritten::flag($cluster)) {
- my $old_next = &next($fs, $cluster);
- my $new = resize_fat::c_rewritten::fat_remap($cluster);
- my $new_next = resize_fat::c_rewritten::fat_remap($old_next);
-
- set_available($fs, $cluster);
-
- is_eof($old_next) ?
- set_eof($fs, $new) :
- set_next ($fs, $new, $new_next);
- }
- }
-}
-
-
-sub endianness16($) { (($_[0] & 0xff) << 8) + ($_[0] >> 8); }
-sub endianness($$) {
- my ($val, $nb_bits) = @_;
- my $r = 0;
- for (; $nb_bits > 0; $nb_bits -= 8) {
- $r <<= 8;
- $r += $val & 0xff;
- $val >>= 8;
- }
- $nb_bits < 0 and die "error: endianness only handle numbers divisible by 8";
- $r;
-}
-
-*next = \&resize_fat::c_rewritten::next;
-*set_next = \&resize_fat::c_rewritten::set_next;
-
-
-
-sub get_free($) {
- my ($fs) = @_;
- foreach (my $i = 0; $i < $fs->{nb_clusters}; $i++) {
- my $cluster = ($i + $fs->{last_free_cluster} - 2) % $fs->{nb_clusters} + 2;
- is_available(&next($fs, $cluster)) and return $fs->{last_free_cluster} = $cluster;
- }
- die "no free clusters";
-}
-
-#- returns true if <cluster> represents an EOF marker
-sub is_eof($) {
- my ($cluster) = @_;
- $cluster >= $resize_fat::bad_cluster_value;
-}
-sub set_eof($$) {
- my ($fs, $cluster) = @_;
- set_next ($fs, $cluster, $resize_fat::bad_cluster_value + 1);
-}
-
-#- returns true if <cluster> is empty. Note that this includes bad clusters.
-sub is_empty($) {
- my ($cluster) = @_;
- $cluster == 0 || $cluster == $resize_fat::bad_cluster_value;
-}
-
-#- returns true if <cluster> is available.
-sub is_available($) {
- my ($cluster) = @_;
- $cluster == 0;
-}
-sub set_available($$) {
- my ($fs, $cluster) = @_;
- set_next ($fs, $cluster, 0);
-}
diff --git a/perl-install/resize_fat/info_sector.pm b/perl-install/resize_fat/info_sector.pm
deleted file mode 100644
index 35449cedc..000000000
--- a/perl-install/resize_fat/info_sector.pm
+++ /dev/null
@@ -1,37 +0,0 @@
-package resize_fat::info_sector; # $Id$
-
-use diagnostics;
-use strict;
-
-use common;
-use resize_fat::io;
-
-#- Oops, this will be unresizable on big-endian machine. trapped by signature.
-my $format = "a484 I I I a16";
-my @fields = (
- 'unused',
- 'signature', #- should be 0x61417272
- 'free_clusters', #- -1 for unknown
- 'next_cluster', #- most recently allocated cluster
- 'unused2',
-);
-
-1;
-
-
-sub read($) {
- my ($fs) = @_;
- my $info = resize_fat::io::read($fs, $fs->{info_offset}, psizeof($format));
- @{$fs->{info_sector}}{@fields} = unpack $format, $info;
- $fs->{info_sector}{signature} == 0x61417272 or die "Invalid information sector signature\n";
-}
-
-sub write($) {
- my ($fs) = @_;
- $fs->{info_sector}{free_clusters} = $fs->{clusters}->{count}->{free};
- $fs->{info_sector}{next_cluster} = 2;
-
- my $info = pack $format, @{$fs->{info_sector}}{@fields};
-
- resize_fat::io::write($fs, $fs->{info_offset}, psizeof($format), $info);
-}
diff --git a/perl-install/resize_fat/io.pm b/perl-install/resize_fat/io.pm
deleted file mode 100644
index 7643a0953..000000000
--- a/perl-install/resize_fat/io.pm
+++ /dev/null
@@ -1,71 +0,0 @@
-package resize_fat::io; # $Id$
-
-use diagnostics;
-use strict;
-
-use resize_fat::fat;
-use c;
-
-1;
-
-
-sub read($$$) {
- my ($fs, $pos, $size) = @_;
- print "reading $size bytes at $pos\n";
- my $buf = "\0" x $size;
- sysseek $fs->{fd}, $pos, 0 or die "seeking to byte #$pos failed on device $fs->{fs_name}";
- sysread $fs->{fd}, $buf, $size or die "reading at byte #$pos failed on device $fs->{fs_name}";
- $buf;
-}
-sub write($$$$) {
- my ($fs, $pos, $size, $buf) = @_;
- sysseek $fs->{fd}, $pos, 0 or die "seeking to byte #$pos failed on device $fs->{fs_name}";
- syswrite $fs->{fd}, $buf or die "writing at byte #$pos failed on device $fs->{fs_name}";
-}
-
-sub read_cluster($$) {
- my ($fs, $cluster) = @_;
- my $buf;
- my $pos = $fs->{cluster_offset} / 512 + $cluster * ($fs->{cluster_size} / 512);
-
- c::lseek_sector(fileno $fs->{fd}, $pos, 0) or die "seeking to sector #$pos failed on device $fs->{fs_name}";
- sysread $fs->{fd}, $buf, $fs->{cluster_size} or die "reading at sector #$pos failed on device $fs->{fs_name}";
- $buf;
-}
-sub write_cluster($$$) {
- my ($fs, $cluster, $buf) = @_;
- my $pos = $fs->{cluster_offset} / 512 + $cluster * ($fs->{cluster_size} / 512);
-
- c::lseek_sector(fileno $fs->{fd}, $pos, 0) or die "seeking to sector #$pos failed on device $fs->{fs_name}";
- syswrite $fs->{fd}, $buf or die "writing at sector #$pos failed on device $fs->{fs_name}";
-}
-
-sub read_file($$) {
- my ($fs, $cluster) = @_;
- my $buf = '';
-
- for (; !resize_fat::fat::is_eof($cluster); $cluster = resize_fat::fat::next ($fs, $cluster)) {
- $cluster == 0 and die "Bad FAT: unterminated chain\n";
- $buf .= read_cluster($fs, $cluster);
- }
- $buf;
-}
-
-sub check_mounted($) {
- my ($f) = @_;
-
- local *F;
- open F, "/proc/mounts" or die "error opening /proc/mounts\n";
- foreach (<F>) {
- /^$f\s/ and die "device is mounted";
- }
-}
-
-sub open($) {
- my ($fs) = @_;
-
- check_mounted($fs->{device});
-
- sysopen F, $fs->{fs_name}, 2 or sysopen F, $fs->{fs_name}, 0 or die "error opening device $fs->{fs_name} for writing\n";
- $fs->{fd} = *F;
-}
diff --git a/perl-install/resize_fat/main.pm b/perl-install/resize_fat/main.pm
deleted file mode 100644
index 81dfb6b3f..000000000
--- a/perl-install/resize_fat/main.pm
+++ /dev/null
@@ -1,186 +0,0 @@
-#!/usr/bin/perl
-
-# DiskDrake
-# Copyright (C) 1999 MandrakeSoft (pixel@mandrakesoft.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.
-#
-# 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.
-
-# This is mainly a perl rewrite of the work of Andrew Clausen (libresize)
-
-package resize_fat::main; # $Id$
-
-use diagnostics;
-use strict;
-
-use log;
-use common;
-use MDK::Common::System;
-use resize_fat::boot_sector;
-use resize_fat::info_sector;
-use resize_fat::directory;
-use resize_fat::io;
-use resize_fat::fat;
-use resize_fat::any;
-
-
-1;
-
-#- - reads in the boot sector/partition info., and tries to make some sense of it
-sub new($$$) {
- my ($type, $device, $fs_name) = @_;
- my $fs = { device => $device, fs_name => $fs_name } ;
-
- eval {
- resize_fat::io::open($fs);
- resize_fat::boot_sector::read($fs);
- $resize_fat::isFAT32 and eval { resize_fat::info_sector::read($fs) };
- resize_fat::fat::read($fs);
- resize_fat::any::flag_clusters($fs);
- };
- if ($@) {
- close $fs->{fd};
- die;
- }
- bless $fs, $type;
-}
-
-sub DESTROY {
- my ($fs) = @_;
- close $fs->{fd};
- resize_fat::c_rewritten::free_all();
-}
-
-#- copy all clusters >= <start_cluster> to a new place on the partition, less
-#- than <start_cluster>. Only copies files, not directories.
-#- (use of buffer needed because the seeks slow like hell the hard drive)
-sub copy_clusters {
- my ($fs, $cluster) = @_;
- my @buffer;
- my $flush = sub {
- while (@buffer) {
- my $cluster = shift @buffer;
- resize_fat::io::write_cluster($fs, $cluster, shift @buffer);
- }
- };
- for (; $cluster < $fs->{nb_clusters} + 2; $cluster++) {
- resize_fat::c_rewritten::flag($cluster) == $resize_fat::any::FILE or next;
- push @buffer,
- resize_fat::c_rewritten::fat_remap($cluster),
- resize_fat::io::read_cluster($fs, $cluster);
- @buffer > 50 and &$flush();
- }
- &$flush();
-}
-
-#- Constructs the new directory tree to match the new file locations.
-sub construct_dir_tree {
- my ($fs) = @_;
-
- if ($resize_fat::isFAT32) {
- #- fat32's root must remain in the first 64k clusters
- #- so don't set it as DIRECTORY, it will be specially handled
- resize_fat::c_rewritten::set_flag($fs->{fat32_root_dir_cluster}, $resize_fat::any::FREE);
- }
-
- for (my $cluster = 2; $cluster < $fs->{nb_clusters} + 2; $cluster++) {
- resize_fat::c_rewritten::flag($cluster) == $resize_fat::any::DIRECTORY or next;
-
- resize_fat::io::write_cluster($fs,
- resize_fat::c_rewritten::fat_remap($cluster),
- resize_fat::directory::remap($fs, resize_fat::io::read_cluster($fs, $cluster)));
- }
-
- MDK::Common::System::sync();
-
- #- until now, only free clusters have been written. it's a null operation if we stop here.
- #- it means no corruption :)
- #
- #- now we must be as fast as possible!
-
- #- remapping non movable root directory
- if ($resize_fat::isFAT32) {
- my $cluster = $fs->{fat32_root_dir_cluster};
-
- resize_fat::io::write_cluster($fs,
- resize_fat::c_rewritten::fat_remap($cluster),
- resize_fat::directory::remap($fs, resize_fat::io::read_cluster($fs, $cluster)));
- } else {
- resize_fat::io::write($fs, $fs->{root_dir_offset}, $fs->{root_dir_size},
- resize_fat::directory::remap($fs, resize_fat::io::read($fs, $fs->{root_dir_offset}, $fs->{root_dir_size})));
- }
-}
-
-sub min_size($) { &resize_fat::any::min_size }
-sub max_size($) { &resize_fat::any::max_size }
-sub used_size($) { &resize_fat::any::used_size }
-
-#- resize
-#- - size is in sectors
-#- - checks boundaries before starting
-#- - copies all data beyond new_cluster_count behind the frontier
-sub resize {
- my ($fs, $size) = @_;
-
- my ($min, $max) = (min_size($fs), max_size($fs));
-
- $size += $min if $size =~ /^\+/;
-
- $size >= $min or die "Minimum filesystem size is $min sectors";
- $size <= $max or die "Maximum filesystem size is $max sectors";
-
- log::l("resize_fat: Partition size will be ". ($size * $SECTORSIZE >> 20) ."Mb (well exactly ${size} sectors)");
-
- my $new_data_size = $size * $SECTORSIZE - $fs->{cluster_offset};
- my $new_nb_clusters = divide($new_data_size, $fs->{cluster_size});
- my $used_size = used_size($fs);
-
- log::l("resize_fat: Break point for moving files is ". ($used_size * $SECTORSIZE >> 20) ." Mb ($used_size sectors)");
- if ($size < $used_size) {
- log::l("resize_fat: Allocating new clusters");
- resize_fat::fat::allocate_remap($fs, $new_nb_clusters);
-
- log::l("resize_fat: Copying files");
- copy_clusters($fs, $new_nb_clusters);
-
- log::l("resize_fat: Copying directories");
- construct_dir_tree($fs);
-
- log::l("Writing new FAT...");
- resize_fat::fat::update($fs);
- resize_fat::fat::write($fs);
- } else {
- log::l("resize_fat: Nothing need to be moved");
- }
-
- $fs->{nb_sectors} = $size;
- $fs->{nb_clusters} = $new_nb_clusters;
- $fs->{clusters}{count}->{free} =
- $fs->{nb_clusters} - $fs->{clusters}{count}->{used} - $fs->{clusters}->{count}->{bad} - 2;
-
- $fs->{system_id} = 'was here!';
- $fs->{small_nb_sectors} = 0;
- $fs->{big_nb_sectors} = $size;
-
- log::l("resize_fat: Writing new boot sector...");
-
- resize_fat::boot_sector::write($fs);
-
- $resize_fat::isFAT32 and eval { resize_fat::info_sector::write($fs) }; #- doesn't matter if this fails - its pretty useless!
-
- MDK::Common::System::sync();
- close $fs->{fd};
- log::l("resize_fat: done");
-}
-
diff --git a/perl-install/run_program.pm b/perl-install/run_program.pm
deleted file mode 100644
index 2db504bec..000000000
--- a/perl-install/run_program.pm
+++ /dev/null
@@ -1,68 +0,0 @@
-package run_program; # $Id$
-
-use diagnostics;
-use strict;
-
-use log;
-
-1;
-
-sub run_or_die {
- my ($name, @args) = @_;
- run($name, @args) or die "$name failed\n";
-}
-sub rooted_or_die {
- my ($root, $name, @args) = @_;
- rooted($root, $name, @args) or die "$name failed\n";
-}
-sub run { rooted('', @_) }
-
-sub rooted {
- my ($root, $name, @args) = @_;
- my $str = ref $name ? $name->[0] : $name;
- log::l("running: $str @args" . ($root ? " with root $root" : ""));
-
- return 1 if $root && $<;
-
- $root ? $root .= '/' : ($root = '');
- install_any::check_prog (ref $name ? $name->[0] : $name) if !$root && $::isInstall;
-
- if (my $pid = fork) {
- waitpid $pid, 0;
- return $? == 0;
- }
- {
- my ($stdout, $stdoutm, $stderr, $stderrm);
- ($stdoutm, $stdout, @args) = @args if $args[0] =~ /^>>?$/;
- ($stderrm, $stderr, @args) = @args if $args[0] =~ /^2>>?$/;
-
- if ($stderr) {
- $stderrm =~ s/2//;
- open STDERR, "$stderrm $root$stderr" or die "run_program can't output in $root$stderr (mode `$stderrm')";
- } elsif ($::isInstall) {
- open STDERR, ">> /tmp/ddebug.log" or open STDOUT, ">> /dev/tty7" or die "run_program can't log, give me access to /tmp/ddebug.log";
- }
- if ($stdout) {
- open STDOUT, "$stdoutm $root$stdout" or die "run_program can't output in $root$stdout (mode `$stdoutm')";
- } elsif ($::isInstall) {
- open STDOUT, ">> /tmp/ddebug.log" or open STDOUT, ">> /dev/tty7" or die "run_program can't log, give me access to /tmp/ddebug.log";
- }
-
- $root and chroot $root;
- chdir "/";
-
- if (ref $name) {
- unless (exec { $name->[0] } $name->[1], @args) {
- log::l("exec of $name->[0] failed: $!");
- c::_exit(128);
- }
- } else {
- unless (exec $name, @args) {
- log::l("exec of $name failed: $!");
- c::_exit(128);
- }
-
- }
- }
-
-}
diff --git a/perl-install/sbus_probing/main.pm b/perl-install/sbus_probing/main.pm
deleted file mode 100644
index 4aed43459..000000000
--- a/perl-install/sbus_probing/main.pm
+++ /dev/null
@@ -1,138 +0,0 @@
-package sbus_probing::main; # $Id$
-
-use c;
-use log;
-use common;
-use modules;
-
-my %sbus_table_network = (
- hme => [ "Sun Happy Meal Ethernet", "sunhme" ],
- le => [ "Sun Lance Ethernet", "ignore:lance" ],
- qe => [ "Sun Quad Ethernet", "sunqe" ],
- mlanai => [ "MyriCOM MyriNET Gigabit Ethernet", "myri_sbus" ],
- myri => [ "MyriCOM MyriNET Gigabit Ethernet", "myri_sbus" ],
- );
-my %sbus_table_scsi = (
- soc => [ "Sun SPARCStorage Array", "fc4:soc:pluto" ],
- socal => [ "Sun Enterprise Network Array", "fc4:socal:fcal" ],
- esp => [ "Sun Enhanced SCSI Processor (ESP)", "ignore:esp" ],
- fas => [ "Sun Swift (ESP)", "ignore:esp" ],
- ptisp => [ "Performance Technologies ISP", "qlogicpti" ],
- isp => [ "QLogic ISP", "qlogicpti" ],
- );
-my %sbus_table_audio = (
- audio => [ "AMD7930", "amd7930" ],
- CS4231 => [ "CS4231 APC DMA (SBUS)", "cs4231" ],
- CS4231_PCI => [ "CS4231 EB2 DMA (PCI)", "cs4231" ],
- );
-my %sbus_table_video = (
- bwtwo => [ "Sun|Monochrome (bwtwo)", "Server:SunMono" ],
- cgthree => [ "Sun|Color3 (cgthree)", "Server:Sun" ],
- cgeight => [ "Sun|CG8/RasterOps", "Server:Sun" ],
- cgtwelve => [ "Sun|GS (cgtwelve)", "Server:Sun24" ],
- gt => [ "Sun|Graphics Tower", "Server:Sun24" ],
- mgx => [ "Sun|Quantum 3D MGXplus", "Server:Sun24" ],
- mgx_4M => [ "Sun|Quantum 3D MGXplus with 4M VRAM", "Server:Sun24" ],
- cgsix => [ "Sun|Unknown GX", "Server:Sun" ],
- cgsix_dbl => [ "Sun|Double Width GX", "Server:Sun" ],
- cgsix_sgl => [ "Sun|Single Width GX", "Server:Sun" ],
- cgsix_t1M => [ "Sun|Turbo GX with 1M VSIMM", "Server:Sun" ],
- cgsix_tp => [ "Sun|Turbo GX Plus", "Server:Sun" ],
- cgsix_t => [ "Sun|Turbo GX", "Server:Sun" ],
- cgfourteen => [ "Sun|SX", "Server:Sun24" ],
- cgfourteen_4M => [ "Sun|SX with 4M VSIMM", "Server:Sun24" ],
- cgfourteen_8M => [ "Sun|SX with 8M VSIMM", "Server:Sun24" ],
- leo => [ "Sun|ZX or Turbo ZX", "Server:Sun24" ],
- leo_t => [ "Sun|Turbo ZX", "Server:Sun24" ],
- tcx => [ "Sun|TCX (S24)", "Server:Sun24" ],
- tcx_8b => [ "Sun|TCX (8bit)", "Server:Sun" ],
- afb => [ "Sun|Elite3D", "Server:Sun24" ],
- afb_btx03 => [ "Sun|Elite3D-M6 Horizontal", "Server:Sun24" ],
- ffb => [ "Sun|FFB", "Server:Sun24" ],
- ffb_btx08 => [ "Sun|FFB 67Mhz Creator", "Server:Sun24" ],
- ffb_btx0b => [ "Sun|FFB 67Mhz Creator 3D", "Server:Sun24" ],
- ffb_btx1b => [ "Sun|FFB 75Mhz Creator 3D", "Server:Sun24" ],
- ffb_btx20 => [ "Sun|FFB2 Vertical Creator", "Server:Sun24" ],
- ffb_btx28 => [ "Sun|FFB2 Vertical Creator", "Server:Sun24" ],
- ffb_btx23 => [ "Sun|FFB2 Vertical Creator 3D", "Server:Sun24" ],
- ffb_btx2b => [ "Sun|FFB2 Vertical Creator 3D", "Server:Sun24" ],
- ffb_btx30 => [ "Sun|FFB2+ Vertical Creator", "Server:Sun24" ],
- ffb_btx33 => [ "Sun|FFB2+ Vertical Creator 3D", "Server:Sun24" ],
- ffb_btx40 => [ "Sun|FFB2 Horizontal Creator", "Server:Sun24" ],
- ffb_btx48 => [ "Sun|FFB2 Horizontal Creator", "Server:Sun24" ],
- ffb_btx43 => [ "Sun|FFB2 Horizontal Creator 3D", "Server:Sun24" ],
- ffb_btx4b => [ "Sun|FFB2 Horizontal Creator 3D", "Server:Sun24" ],
- );
-
-1;
-
-sub prom_getint($) { unpack "I", c::prom_getproperty($_[0]) }
-
-#- update $@sbus_probed according to SBUS detection.
-sub prom_walk($$$$) {
- my ($sbus_probed, $node, $sbus, $ebus) = @_;
- my ($prob_name, $prob_type) = (c::prom_getstring("name"), c::prom_getstring("device_type"));
- my ($nextnode, $nsbus, $nebus) = (undef, $sbus, $ebus);
-
- #- probe for network devices.
- if ($sbus && $prob_type eq 'network') {
- $prob_name =~ s/[A-Z,]*(.*)/$1/;
- $sbus_table_network{$prob_name} and push @$sbus_probed, [ "NETWORK", @{$sbus_table_network{$prob_name}} ];
- #- TODO for Sun Quad Ethernet (qe)
- }
-
- #- probe for scsi devices.
- if ($sbus && ($prob_type eq 'scsi' || $prob_name =~ /^(soc|socal)$/)) {
- $prob_name =~ s/[A-Z,]*(.*)/$1/;
- $sbus_table_scsi{$prob_name} and push @$sbus_probed, [ "SCSI", @{$sbus_table_scsi{$prob_name}} ];
- }
-
- #- probe for audio devices, there are no type to check here.
- if ($sbus_table_audio{$prob_name}) {
- $prob_name =~ /,/ and $prob_name =~ s/[A-Z,]*(.*)/$1/;
- my $ext = $prob_name eq 'CS4231' && $ebus && "_PCI";
- $sbus_table_audio{$prob_name . $ext} ?
- push @$sbus_probed, [ "AUDIO", @{$sbus_table_audio{$prob_name . $ext}} ] :
- push @$sbus_probed, [ "AUDIO", @{$sbus_table_audio{$prob_name}} ];
- }
-
- #- probe for video devices.
- if ($prob_type eq 'display' && ($sbus || $prob_name =~ /^(ffb|afb|cgfourteen)$/)) {
- $prob_name =~ s/[A-Z,]*(.*)/$1/;
- my $ext = ($prob_name eq 'mgx' && prom_getint('fb_size') == 0x400000 && '_4M' ||
- $prob_name eq 'cgsix' && do {
- my ($chiprev, $vmsize) = (prom_getint('chiprev'), prom_getint('vmsize'));
- my $result = '';
- $chiprev >= 1 && $chiprev <= 4 and $result = '_dbl';
- $chiprev >= 5 && $chiprev <= 9 and $result = '_sgl';
- $chiprev == 11 && $vmsize == 2 and $result = '_t1M';
- $chiprev == 11 && $vmsize == 4 and $result = '_tp';
- $chiprev == 11 && !$result and $result = '_t';
- $result;
- } ||
- $prob_name eq 'leo' && c::prom_getstring('model') =~ /501-2503/ && '_t' ||
- $prob_name eq 'tcx' && c::prom_getbool('tcx-8-bit') && '_8b' ||
- $prob_name eq 'afb' && sprintf "_btx%x", prom_getint('board_type') ||
- $prob_name eq 'ffb' && sprintf "_btx%x", prom_getint('board_type'));
-
- $sbus_table_video{$prob_name . $ext} ?
- push @$sbus_probed, [ "VIDEO", @{$sbus_table_video{$prob_name . $ext}} ] :
- push @$sbus_probed, [ "VIDEO", @{$sbus_table_video{$prob_name}} ];
- }
-
- #- parse prom tree.
- $prob_name eq 'sbus' || $prob_name eq 'sbi' and $nsbus = 1;
- $prob_name eq 'ebus' and $nebus = 1;
- $nextnode = c::prom_getchild($node) and prom_walk($sbus_probed, $nextnode, $nsbus, $nebus);
- $nextnode = c::prom_getsibling($node) and prom_walk($sbus_probed, $nextnode, $sbus, $ebus);
-}
-
-sub probe {
- eval { modules::load("openprom") } if arch() =~ /sparc/;
- my $root_node = c::prom_open();
- my @l;
-
- prom_walk(\@l, $root_node, 0, 0);
- c::prom_close();
- map { my %l; @l{qw(type description drivers)} = @$_ } @l;
-}
diff --git a/perl-install/scanner.pm b/perl-install/scanner.pm
deleted file mode 100755
index 0e67eb02e..000000000
--- a/perl-install/scanner.pm
+++ /dev/null
@@ -1,227 +0,0 @@
-package scanner;
-# scanner.pm $Id$
-# Yves Duret <yduret at mandrakesoft.com>
-# Copyright (C) 2001 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.
-#
-# pbs/TODO:
-# - no scsi support
-# - devfs use dev_is_devfs()
-# - with 2 scanners same manufacturer -> will overwrite previous conf -> only 1 conf !!
-# - lp: see printerdrake
-# - install: prefix --> done
-
-use standalone;
-use common;
-use detect_devices;
-
-
-my $_sanedir = "$prefix/etc/sane.d";
-my $_scannerDBdir = "$prefix$ENV{SHARE_PATH}/ldetect-lst";
-$scannerDB = readScannerDB("$_scannerDBdir/ScannerDB");
-
-sub confScanner {
- my ($model, $port) = @_;
- $port = detect_devices::dev_is_devfs() ? "$prefix/dev/usb/scanner0" : "$prefix/dev/scanner" if (!$port);
- my $a = $scannerDB->{$model}{server};
- #print "file:[$a]\t[$model]\t[$port]\n| ", (join "\n| ", @{$scannerDB->{$model}{lines}}),"\n";
- output("$_sanedir/$a.conf", (join "\n",@{$scannerDB->{$model}{lines}}));
- substInFile {s/\$DEVICE/$port/} "$_sanedir/$a.conf";
- add2dll($a);
-}
-
-sub add2dll {
- return if member($_[0], chomp_(cat_("$_sanedir/dll.conf")));
- local *F;
- open F, ">>$_sanedir/dll.conf" or die "can't write SANE config in $_sanedir/dll.conf: $!";
- print F $_[0];
- close F;
-}
-
-sub findScannerUsbport {
- my ($i, $elem, @res) = (0, {});
- foreach (grep { $_->{driver} =~ /scanner/ } detect_devices::usb_probe()) {
- #my ($manufacturer, $model) = split '\|', $_->{description};
- #$_->{description} =~ s/Hewlett[-\s_]Packard/HP/;
- push @res, { port => "/dev/usb/scanner$i", val => { #CLASS => 'SCANNER',
- #MODEL => $model,
- #MANUFACTURER => $manufacturer,
- DESCRIPTION => $_->{description},
- #id => $_->{id},
- #vendor => $_->{vendor},
- }};
- ++$i;
- }
- @res;
-}
-
-
-sub findScannerScsi {
-
-}
-
-sub readScannerDB {
- my ($file) = @_;
- my ($card, %cards);
-
- my $F = common::openFileMaybeCompressed($file);
-
- my ($lineno, $cmd, $val) = 0;
- my $fs = {
- LINE => sub { push @{$card->{lines}}, $val },
- NAME => sub {
- $cards{$card->{type}} = $card if ($card and !$card->{flags}{unsupported});
- $card = { type => $val };
- },
- SEE => sub {
- my $c = $cards{$val} or die "Error in database, invalid reference $val at line $lineno";
-
- push @{$card->{lines}}, @{$c->{lines} || []};
- add2hash($card->{flags}, $c->{flags});
- add2hash($card, $c);
- },
- ASK => sub { $card->{ask} = $val; },
- SERVER => sub { $card->{server} = $val; },
- DRIVER => sub { $card->{driver} = $val; },
- UNSUPPORTED => sub { $card->{flags}{unsupported} = 1 },
- COMMENT => sub {},
- };
-
- local $_;
- while (<$F>) { $lineno++;
- s/\s+$//;
- /^#/ and next;
- /^$/ and next;
- /^END/ and do { $cards{$card->{type}} = $card if $card; last };
- ($cmd, $val) = /(\S+)\s*(.*)/ or next; #log::l("bad line $lineno ($_)"), next;
- my $f = $fs->{$cmd};
- $f ? $f->() : log::l("unknown line $lineno ($_)");
- }
- \%cards;
-}
-
-sub updateScannerDBfromUsbtable {
- substInFile {s/END//} "ScannerDB";
- local *F;
- open F, ">>ScannerDB" or die "can't write ScannerDB config in ScannerDB: $!";
- print F "# generated from usbtable by scannerdrake\n";
- foreach (cat_("$ENV{SHARE_PATH}/ldetect-lst/usbtable")) {
- my ($vendor_id, $product_id, $mod, $name) = chomp_(split /\s/,$_,4);
- next unless ($mod eq "\"scanner\"");
- $name =~ s/\"(.*)\"$/$1/;
- if (member($name, keys %$scanner::scannerDB)) {
- print "#[$name] already in ScannerDB!\n";
- next;
- }
- print F "NAME $name\nDRIVER usb\nCOMMENT usb $vendor_id $product_id\nUNSUPPORTED\n\n";
- }
- print F "END\n";
- close F;
-}
-
-sub updateScannerDBfromSane {
- my ($_sanesrcdir) = @_;
- substInFile {s/END//} "ScannerDB";
-
- local *Y;
- open Y, ">>ScannerDB" or die "can't write ScannerDB config in ScannerDB: $!";
- print Y "# generated from Sane by scannerdrake\n";
- # for compat with our usbtable
- my $sane2DB = {
- "Acer" => "Acer Peripherals Inc.",
- "AGFA" => "AGFA-Gevaert NV",
- "Agfa" => "AGFA-Gevaert NV",
- "Epson" => "Seiko Epson Corp.",
- "Fujitsu Computer Products of America" => "Fujitsu",
- "HP" => sub {$_[0] =~ s/HP\s/Hewlett-Packard|/; $_[0] =~ s/HP4200/Hewlett-Packard|ScanJet 4200C/; $_[0];},
- "Hewlett-Packard" => sub {$_[0] =~ s/HP 3200 C/Hewlett-Packard|ScanJet 3200C/; $_[0];},
- "Kodak" => "Kodak Co.",
- "Mustek" => "Mustek Systems Inc.",
- "NEC" => "NEC Systems",
- "Nikon" => "Nikon Corp.",
- "Plustek" => "Plustek, Inc.",
- "Primax" => "Primax Electronics",
- "Siemens" => "Siemens Information and Communication Products",
- "Trust" => "Trust Technologies",
- "UMAX" => "Umax",
- "Vobis/Highscreen" => "Vobis",
- };
-
- opendir YREP, $_sanesrcdir or die "can't open $_sanesrcdir: $!";
- @files = grep /.*desc$/, readdir YREP;
- closedir YREP;
- foreach $i (@files) {
- my $F = common::openFileMaybeCompressed("$_sanesrcdir/$i");
- print Y "\n# from $i";
- my ($lineno, $cmd, $val) = 0;
- my ($name, $intf, $comment,$mfg);
- my $fs = {
- backend => sub {$backend = $val;},
- mfg => sub {$mfg = $val; $name=undef;},#bug when a new mfg comes. should called $fs->{$name}(); but ??
- model => sub {
- unless ($name) {$name = $val; next;}
- $name = (member($mfg, keys %$sane2DB))
- ? (ref $sane2DB->{$mfg}) ? $sane2DB->{$mfg}($name) : "$sane2DB->{$mfg}|$name" : "$mfg|$name";
- if (member($name, keys %$scanner::scannerDB)) {
- print "#[$name] already in ScannerDB!\n";
- } else {
- print Y "\nNAME $name\nSERVER $backend\nDRIVER $intf\n";
- print Y "COMMENT $comment\n" if ($comment);
- $comment = undef;
- }
- $name = $val;
- },
- interface => sub {$intf = $val;},
- comment => sub {$comment = $val;},
- };
- local $_;
- while (<$F>) { $lineno++;
- s/\s+$//;
- /^\;/ and next;
- ($cmd, $val) = /:(\S+)\s*\"([^\;]*)\"/ or next; #log::l("bad line $lineno ($_)"), next;
- my $f = $fs->{$cmd};
- $f ? $f->() : log::l("unknown line $lineno ($_)");
- }
- $fs->{model}(); # the last one
- }
- print Y "\nEND\n";
- close Y;
-}
-
-#-######################################################################################
-#- Wonderful perl :(
-#-######################################################################################
-1; #
-
-#-----------------------------------------------
-# $Log$
-# Revision 1.7 2002/07/08 08:34:51 tvignaud
-# this doesn't need either "#!/usr/bin/perl" nor "use lib qw(/usr/lib/libDrakX);"
-#
-# Revision 1.6 2002/03/10 15:26:00 yduret
-# added ASK support for more interactiveness during configuration
-#
-# Revision 1.5 2002/02/18 17:34:31 yduret
-# update
-#
-# Revision 1.4 2002/02/18 16:16:13 yduret
-# scsi parport preliminary support
-# no more show unsupported scanner
-# common output for ScannerDB update from sane *.desc files and from usbtable
-#
-# Revision 1.3 2001/11/12 15:18:02 yduret
-# update, sync with cvs
-#
diff --git a/perl-install/security.pm b/perl-install/security.pm
deleted file mode 100644
index 257fbe248..000000000
--- a/perl-install/security.pm
+++ /dev/null
@@ -1,39 +0,0 @@
-package security::security;
-
-use diagnostics
-use strict;
-
-use common;
-use security::msec;
-use log;
-
-sub config_libsafe {
- my ($prefix, $libsafe) = @_;
- my %t = getVarsFromSh("$prefix/etc/sysconfig/system");
- if (@_ > 1) {
- $t{LIBSAFE} = bool2yesno($libsafe);
- setVarsInSh("$prefix/etc/sysconfig/system", \%t);
- }
- text2bool($t{LIBSAFE});
-}
-
-sub main {
- my ($in, $security, $libsafe, $sec_user) = @_;
-
- if (security::msec::choose_security_level($in, \$security, \$libsafe, \$sec_user)) {
- log::l("[draksec] Setting libsafe activation variable to $libsafe");
- config_libsafe('', $libsafe);
-
- log::l("[draksec] Setting security administrator contact to $sec_user");
- security::msec::config_security_user('', $sec_user);
-
- my $w = $in->wait_message('', _("Setting security level"));
- $in->suspend;
- $ENV{LILO_PASSWORD} = ''; # make it non interactive
- log::l("[draksec] Setting security level to $security");
- system "/usr/sbin/msec", $security;
- $in->resume;
- }
-}
-
-1;
diff --git a/perl-install/security/msec.pm b/perl-install/security/msec.pm
deleted file mode 100644
index b72eff822..000000000
--- a/perl-install/security/msec.pm
+++ /dev/null
@@ -1,91 +0,0 @@
-package security::msec;
-
-use diagnostics;
-use strict;
-
-use common;
-use log;
-
-sub get_secure_level {
- my ($prefix) = @_;
-
- cat_("$prefix/etc/profile") =~ /export SECURE_LEVEL=(\d+)/ && $1 || #- 8.0 msec
- cat_("$prefix/etc/profile.d/msec.sh") =~ /export SECURE_LEVEL=(\d+)/ && $1 || #- 8.1 msec
- ${{ getVarsFromSh("$prefix/etc/sysconfig/msec") }}{SECURE_LEVEL} || #- 8.2 msec
- $ENV{SECURE_LEVEL};
-}
-
-sub config_security_user {
- my ($prefix, $sec_user) = @_;
- my %t = getVarsFromSh("$prefix/etc/security/msec/security.conf");
- if (@_ > 1) {
- $t{MAIL_USER} = $sec_user;
- setVarsInSh("$prefix/etc/security/msec/security.conf", \%t);
- }
- $t{MAIL_USER};
-}
-
-sub get_options {
- my ($prefix, $security) = @_;
- my %options = ();
-
- %options;
-}
-
-sub choose_security_level {
- my ($in, $security, $libsafe, $email) = @_;
-
- my %l = (
- 0 => _("Welcome To Crackers"),
- 1 => _("Poor"),
- 2 => _("Standard"),
- 3 => _("High"),
- 4 => _("Higher"),
- 5 => _("Paranoid"),
- );
-
- my %help = (
- 0 => _("This level is to be used with care. It makes your system more easy to use,
- but very sensitive: it must not be used for a machine connected to others
- or to the Internet. There is no password access."),
- 1 => _("Password are now enabled, but use as a networked computer is still not recommended."),
- 2 => _("This is the standard security recommended for a computer that will be used to connect to the Internet as a client."),
- 3 => _("There are already some restrictions, and more automatic checks are run every night."),
- 4 => _("With this security level, the use of this system as a server becomes possible.
- The security is now high enough to use the system as a server which can accept
- connections from many clients. Note: if your machine is only a client on the Internet, you should choose a lower level."),
- 5 => _("This is similar to the previous level, but the system is entirely closed and security features are at their maximum."),
- );
-
- delete @l{0,1};
- delete $l{5} if !$::expert;
-
- $in->ask_from(
- ("DrakSec Basic Options"),
- ("Please choose the desired security level") . "\n\n" .
- join('', map { "$l{$_}: " . formatAlaTeX($help{$_}) . "\n\n" } keys %l),
- [
- { label => _("Security level"), val => $security, list => [ sort keys %l ], format => sub { $l{$_} } },
- if_($in->do_pkgs->is_installed('libsafe') && arch() =~ /^i.86/,
- { label => _("Use libsafe for servers"), val => $libsafe, type => 'bool', text =>
- _("A library which defends against buffer overflow and format string attacks.") } ),
- { label => _("Security Administrator (login or email)"), val => $email },
- { label => _("Advanced Options"), type => 'button', clicked => sub { sec_options($in, $security) } }
- ],
- );
-}
-
-sub sec_options {
- my ($in, $security) = @_;
- my %options = get_options('', $security);
-
- $in->ask_from(
- ("DrakSec Advanced Options"),
- ("For explanations on the following options, click on the Help button"),
- [
- %options;
- ],
- );
-}
-
-1;
diff --git a/perl-install/services.pm b/perl-install/services.pm
deleted file mode 100644
index a4dbc8e3a..000000000
--- a/perl-install/services.pm
+++ /dev/null
@@ -1,288 +0,0 @@
-package services; # $Id$
-
-use diagnostics;
-use strict;
-
-#-######################################################################################
-#- misc imports
-#-######################################################################################
-use common;
-use run_program;
-
-sub description {
- my %services = (
-alsa => __("Launch the ALSA (Advanced Linux Sound Architecture) sound system"),
-anacron => __("Anacron a periodic command scheduler."),
-apmd => __("apmd is used for monitoring batery status and logging it via syslog.
-It can also be used for shutting down the machine when the battery is low."),
-atd => __("Runs commands scheduled by the at command at the time specified when
-at was run, and runs batch commands when the load average is low enough."),
-crond => __("cron is a standard UNIX program that runs user-specified programs
-at periodic scheduled times. vixie cron adds a number of features to the basic
-UNIX cron, including better security and more powerful configuration options."),
-gpm => __("GPM adds mouse support to text-based Linux applications such the
-Midnight Commander. It also allows mouse-based console cut-and-paste operations,
-and includes support for pop-up menus on the console."),
-harddrake => __("HardDrake runs a hardware probe, and optionally configures
-new/changed hardware."),
-httpd => __("Apache is a World Wide Web server. It is used to serve HTML files and CGI."),
-inet => __("The internet superserver daemon (commonly called inetd) starts a
-variety of other internet services as needed. It is responsible for starting
-many services, including telnet, ftp, rsh, and rlogin. Disabling inetd disables
-all of the services it is responsible for."),
-ipchains => __("Launch packet filtering for Linux kernel 2.2 series, to set
-up a firewall to protect your machine from network attacks."),
-keytable => __("This package loads the selected keyboard map as set in
-/etc/sysconfig/keyboard. This can be selected using the kbdconfig utility.
-You should leave this enabled for most machines."),
-kheader => __("Automatic regeneration of kernel header in /boot for
-/usr/include/linux/{autoconf,version}.h"),
-kudzu => __("Automatic detection and configuration of hardware at boot."),
-linuxconf => __("Linuxconf will sometimes arrange to perform various tasks
-at boot-time to maintain the system configuration."),
-lpd => __("lpd is the print daemon required for lpr to work properly. It is
-basically a server that arbitrates print jobs to printer(s)."),
-lvs => __("Linux Virtual Server, used to build a high-performance and highly
-available server."),
-named => __("named (BIND) is a Domain Name Server (DNS) that is used to resolve host names to IP addresses."),
-netfs => __("Mounts and unmounts all Network File System (NFS), SMB (Lan
-Manager/Windows), and NCP (NetWare) mount points."),
-network => __("Activates/Deactivates all network interfaces configured to start
-at boot time."),
-nfs => __("NFS is a popular protocol for file sharing across TCP/IP networks.
-This service provides NFS server functionality, which is configured via the
-/etc/exports file."),
-nfslock => __("NFS is a popular protocol for file sharing across TCP/IP
-networks. This service provides NFS file locking functionality."),
-numlock => __("Automatically switch on numlock key locker under console
-and XFree at boot."),
-oki4daemon => __("Support the OKI 4w and compatible winprinters."),
-pcmcia => __("PCMCIA support is usually to support things like ethernet and
-modems in laptops. It won't get started unless configured so it is safe to have
-it installed on machines that don't need it."),
-portmap => __("The portmapper manages RPC connections, which are used by
-protocols such as NFS and NIS. The portmap server must be running on machines
-which act as servers for protocols which make use of the RPC mechanism."),
-postfix => __("Postfix is a Mail Transport Agent, which is the program that moves mail from one machine to another."),
-random => __("Saves and restores system entropy pool for higher quality random
-number generation."),
-rawdevices => __("Assign raw devices to block devices (such as hard drive
-partitions), for the use of applications such as Oracle"),
-routed => __("The routed daemon allows for automatic IP router table updated via
-the RIP protocol. While RIP is widely used on small networks, more complex
-routing protocols are needed for complex networks."),
-rstatd => __("The rstat protocol allows users on a network to retrieve
-performance metrics for any machine on that network."),
-rusersd => __("The rusers protocol allows users on a network to identify who is
-logged in on other responding machines."),
-rwhod => __("The rwho protocol lets remote users get a list of all of the users
-logged into a machine running the rwho daemon (similiar to finger)."),
-sound => __("Launch the sound system on your machine"),
-syslog => __("Syslog is the facility by which many daemons use to log messages
-to various system log files. It is a good idea to always run syslog."),
-usb => __("Load the drivers for your usb devices."),
-xfs => __("Starts the X Font Server (this is mandatory for XFree to run)."),
- );
- my ($name, $prefix) = @_;
- my $s = $services{$name};
- if ($s) {
- $s = translate($s);
- } else {
- $s = -e "$prefix/etc/rc.d/init.d/$name" && cat_("$prefix/etc/rc.d/init.d/$name");
- $s ||= -e "$prefix/etc/init.d/$name" && cat_("$prefix/etc/init.d/$name");
- $s ||= -e "$prefix/etc/xinetd.d/$name" && cat_("$prefix/etc/xinetd.d/$name");
- $s =~ s/\\\s*\n#\s*//mg;
- if ($s =~ /^# description:\s+\S/sm) {
- ($s) = $s =~ /^# description:\s+(.*?)^(?:[^#]|# {0,2}\S)/sm;
- } else {
- ($s) = $s =~ /^#\s*(.*?)^[^#]/sm;
- }
- $s =~ s/#\s*//mg;
- }
- $s =~ s/\n/ /gm; $s =~ s/\s+$//;
- $s;
-}
-
-sub ask_install_simple {
- my ($in, $prefix) = @_;
- my ($l, $on_services) = services($prefix);
- $in->ask_many_from_list("drakxservices",
- _("Choose which services should be automatically started at boot time"),
- {
- list => $l,
- help => sub { description($_[0], $prefix) },
- values => $on_services,
- sort => 1,
- });
-}
-
-sub ask_install {
- my ($in, $prefix) = @_;
- my %root_services = (
- _("Printing") => [ qw(cups cupslpd lpr lpd oki4daemon hpoj cups-lpd ) ],
- _("Internet") => [ qw(httpd boa tux roxen ftp pftp tftp proftpd wu-ftpd pure-ftpdipsec proftpd-xinetd
- ipchains iptables ipvsadm isdn4linux ibod jabber jabber-icq adsl squid
- portsentry prelude nessusd junkbuster radvd cddbp ippl iptoip jail.init ) ],
- _("File sharing") => [ qw(nfs nfslock smb nettalk netfs mcserv autofs amd
- venus.init auth2.init codasrv.init update.init swat ) ],
- _("System") => [ qw(usb usbd pcmcia irda xinetd inetd kudzu harddrake apmd sound network xfs
- alsa functions halt kheader killall mandrake_everytime mandrake_firstime
- random rawdevices single keytable syslog crond medusa-init portmap acon
- anacron atd gpm psacct wine acpid numlock jserver sensors mosix bpowerd bpowerfail
- fcron powertweak.init ups syslog-ng cvs apcupsd) ],
- _("Remote Administration") => [ qw(sshd telnetd telnet rsh rlogin rexec webmin cfd heartbeat ldirectord
- iplog mon vncserver netsaint olympusd drakxtools_http ) ],
-# _("Network Client") => [ qw(ypbind nscd arpwatch fetchmail dnrd_rc diald rsync ) ],
-# _("Network Server") => [ qw(named bootparamd ntpd xntpd chronyd postfix sendmail
-# imap imaps ipop2 ipop3 pop3s routed yppasswdd ypserv ldap dhcpd dhcrelay
-# hylafax innd identd rstatd rusersd rwalld rwhod gated
-# kadmin kprop krb524 krb5kdc krb5server hldsld bayonne sockd dhsd gnu-pop3d
-# gdips pptpd.conf vrrpd crossfire bnetd pvmd ircd sympa finger ntalk talk) ],
- _("Database Server") => [ qw(mysql postgresql) ],
- );
- my %services_root;
- foreach my $root (keys %root_services) {
- $services_root{$_} = $root foreach @{$root_services{$root}};
- }
- my ($l, $on_services) = services($prefix);
- my %services;
- $services{$_} = 0 foreach @{$l || []};
- $services{$_} = 1 foreach @{$on_services || []};
-
- $in->ask_browse_tree_info('drakxservices', _("Choose which services should be automatically started at boot time"),
- {
- node_state => sub { $services{$_[0]} ? 'selected' : 'unselected' },
- build_tree => sub {
- my ($add_node, $flat) = @_;
- $add_node->($_, !$flat && ($services_root{$_} || _("Other")))
- foreach sort keys %services;
- },
- grep_unselected => sub { grep { !$services{$_} } @_ },
- toggle_nodes => sub {
- my ($set_state, @nodes) = @_;
- my $new_state = !$services{$nodes[0]};
- foreach (@nodes) {
- $set_state->($_, $new_state ? 'selected' : 'unselected');
- $services{$_} = $new_state;
- }
- },
- get_status => sub {
- _("Services: %d activated for %d registered",
- scalar(grep { $_ } values %services),
- scalar(values %services));
- },
- get_info => sub { formatLines(description($_[0], $prefix)) },
- }) or return ($l, $on_services); #- no change on cancel.
- ($l, [ grep { $services{$_} } @$l ]);
-}
-
-sub ask_standalone_gtk {
- my ($in, $prefix) = @_;
- my ($l, $on_services) = services($prefix);
-
- require my_gtk;
- my_gtk->import(qw(:helpers :wrappers));
-
- my $W = my_gtk->new(_("Services"));
- my ($x, $y, $w_popup);
- my $nopop = sub { $w_popup and $w_popup->destroy };
- my $display = sub { $nopop->(); $_[0] and gtkmove(gtkshow(gtkadd($w_popup=new Gtk::Window (-popup),
- gtksignal_connect(gtkadd(new Gtk::EventBox(),
- gtkadd(gtkset_shadow_type(new Gtk::Frame, 'etched_out'),
- gtkset_justify(new Gtk::Label($_[0]), 0))),
- button_press_event => sub { $nopop->() }
- ))), $x, $y) };
- my $update_service = sub {
- my $started = -e "/var/lock/subsys/$_[0]";
- my $action = $started ? "stop" : "start";
- $_[1]->set($started ? _("running") : _("stopped"));
- $started, $action;
- };
- my $strip = sub {
- my $infos_old = $_[0];
- my $infos;
- while ($infos_old =~ s/(.{40})//) {
- $1 =~ /(.*) ([^ ]*)/;
- $infos .= "$1\n$2";
- }
- $infos .= $infos_old;
- };
- my $b = new Gtk::EventBox();
- $b->set_events(["pointer_motion_mask"]);
- gtkadd($W->{window}, gtkadd($b, gtkpack_($W->create_box_with_title(_("Services and deamons")),
- 1, gtkset_usize(createScrolledWindow(create_packtable({ col_spacings => 10, row_spacings => 3 },
- map {
- my $service = $_;
- my $infos = $strip->(description($_, $prefix));
- $infos ||= _("No additional information\nabout this service, sorry.");
- my $l = new Gtk::Label();
- my ($started, $action) = $update_service->($service, gtkset_justify($l, 0));
- [ gtkpack__(new Gtk::HBox(0,0), $_),
- gtkpack__(new Gtk::HBox(0,0), $l),
- gtkpack__(new Gtk::HBox(0,0), gtksignal_connect(new Gtk::Button(_("Info")), clicked => sub { $display->($infos) })),
- gtkpack__(new Gtk::HBox(0,0), gtkset_active(gtksignal_connect(
- new Gtk::CheckButton(_("On boot")),
- clicked => sub { if ($_[0]->active) {
- "@$on_services" =~ /$service/ or push(@$on_services,$service)
- } else {
- @$on_services = grep(!/$service/, @$on_services)
- }}), "@$on_services" =~ /$service/ )),
- map { my $a = $_;
- gtkpack__(new Gtk::HBox(0,0), gtksignal_connect(new Gtk::Button(_($a)),
- clicked => sub { my $c = "service $service " . (lc($a) eq "start" ? "restart" : lc($a)) . " 2>&1"; local $_=`$c`; s/\033\[[^mG]*[mG]//g;
- ($started, $action) = $update_service->($service, $l);
- $display->($_);
- }
- )) } (__("Start"), __("Stop"))
- ]
- }
- @$l)), 500, 400),
- 0, gtkpack(gtkset_border_width(new Gtk::HBox(0,0),5), $W->create_okcancel)
- ))
- );
- $b->signal_connect( motion_notify_event => sub { my ($w, $e) = @_;
- my ($ox, $oy) = $w->window->get_deskrelative_origin;
- $x = $e->{'x'}+$ox; $y = $e->{'y'}+$oy; });
- $b->signal_connect( button_press_event => sub { $nopop->()});
- $::isEmbedded and Gtk->main_iteration while Gtk->events_pending;
- $::isEmbedded and kill (12, $::CCPID);
- $W->main or return;
- ($l, $on_services);
-}
-
-sub ask {
- my ($in, $prefix) = @_;
- !$::isInstall && $in->isa('interactive::gtk') ? &ask_standalone_gtk : &ask_install;
-}
-
-sub doit {
- my ($in, $on_services, $prefix) = @_;
- my ($l, $was_on_services) = services($prefix);
-
- foreach (@$l) {
- my $before = member($_, @$was_on_services);
- my $after = member($_, @$on_services);
- if ($before != $after) {
- my $script = "/etc/rc.d/init.d/$_";
- run_program::rooted($prefix, "chkconfig", $after ? "--add" : "--del", $_);
- if ($after && cat_("$prefix$script") =~ /^#\s+chkconfig:\s+-/m) {
- run_program::rooted($prefix, "chkconfig", "--level", "35", $_, "on");
- }
- if (!$after && $::isStandalone) {
- run_program::rooted($prefix, $script, "stop");
- }
- }
- }
-}
-
-#- returns:
-#--- the listref of installed services
-#--- the listref of "on" services
-sub services {
- my ($prefix) = @_;
- my $cmd = $prefix && !$::testing ? "chroot $prefix" : "";
- my @l = map { [ /([^\s:]+)/, /\bon\b/ ] } grep { !/:$/ } sort `LANGUAGE=C $cmd /sbin/chkconfig --list`;
- [ map { $_->[0] } @l ], [ map { $_->[0] } grep { $_->[1] } @l ];
-}
-
-1;
diff --git a/perl-install/share/.cvsignore b/perl-install/share/.cvsignore
deleted file mode 100644
index 4173dc671..000000000
--- a/perl-install/share/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-locales.tar.bz2
-locales-*-drakx.tar.bz2
diff --git a/perl-install/share/Makefile b/perl-install/share/Makefile
deleted file mode 100644
index 00e5afcc3..000000000
--- a/perl-install/share/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-all: locales.tar.bz2
-
-# /usr/lib/libc.a to depend on the current glibc
-locales.tar.bz2: locales-skeleton.tar.bz2 gen_locales.sh /usr/lib/libc.a
- ./gen_locales.sh
diff --git a/perl-install/share/advertising/Makefile b/perl-install/share/advertising/Makefile
deleted file mode 100644
index 30005e186..000000000
--- a/perl-install/share/advertising/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-include ../../Makefile.config
-
-install:
- rm -rf $(ROOTDEST)/Mandrake/share/advertising
- install -d $(ROOTDEST)/Mandrake/share/advertising
- install -m755 *.pl $(ROOTDEST)/Mandrake/share/advertising
- install -m644 *.png $(ROOTDEST)/Mandrake/share/advertising
- install -m644 list $(ROOTDEST)/Mandrake/share/advertising
diff --git a/perl-install/share/advertising/list b/perl-install/share/advertising/list
deleted file mode 100644
index fb5689909..000000000
--- a/perl-install/share/advertising/list
+++ /dev/null
@@ -1,14 +0,0 @@
-00-thanks.png
-01-gnu.png
-02-internet.png
-03-graphic.png
-04-develop.png
-05-contcenter.png
-06-user.png
-07-server.png
-08-games.png
-09-MDKcampus.png
-10-MDKexpert.png
-11-consul.png
-12-MDKstore.png
-13-Nvert.png
diff --git a/perl-install/share/aliases b/perl-install/share/aliases
deleted file mode 100644
index d3807605a..000000000
--- a/perl-install/share/aliases
+++ /dev/null
@@ -1,7 +0,0 @@
-raidstop raidstart
-gunzip gzip
-install2 perl-install/install2
-commands perl-install/commands
-runinstall2 install2
-fsck.ext2 e2fsck
-rmmod insmod_
diff --git a/perl-install/share/compssList b/perl-install/share/compssList
deleted file mode 100644
index 36b0f4a44..000000000
--- a/perl-install/share/compssList
+++ /dev/null
@@ -1,1665 +0,0 @@
- normal server developer
-
-AVLTree-devel 0 0 0
-AfterStep 22 0 53
-AfterStep-APPS 22 0 35
-Apache-ASP -99 0 -99
-ApacheJServ -99 0 -99
-Apple-StyleWriter-printer-driver__lpstyl 0 0 0
-Aurora 81 -1 -1
-BasiliskII 35 0 10
-BasiliskII-sheepnet 33 0 8
-BitchX 43 0 15
-C++2LaTeX 0 0 30
-Canon-CaPSL-printer-driver__cjet 0 0 0
-ClanLib 32 0 32
-ClanLib-devel 0 0 25
-ClanLib-docs 0 0 25
-ClanLib-gl 0 0 0
-ClanLib-magick 0 0 0
-ClanLib-mikmod 0 0 0
-ClanLib-png 0 0 0
-Device3Dfx -1 -1 -1
-DrakConf 84 84 84
-drakprofile 50 0 50
-draksync 50 0 50
-DrakeLogo 20 0 0
-ElectricFence 10 0 66
-Epplets 57 0 53
-Eterm 57 0 53
-Eterm-devel 0 0 0
-FaxMail 30 0 0
-FileRunner 45 0 25
-FreeWnn -20 -20 -20
-FreeWnn-devel -70 -60 -40
-GConf 0 0 0
-GConf-devel 0 0 40
-GXedit 40 0 55
-Glide_V2 -1 -1 -1
-Glide_V2-devel -1 -1 -1
-Glide_V3 -1 -1 -1
-Glide_V3-DRI -1 -1 -1
-Glide_V3-DRI-devel -1 -1 -1
-Glide_V3-devel -1 -1 -1
-Glide_V5 -1 -1 -1
-Glide_V5-devel -1 -1 -1
-HTML-Embperl 0 40 40
-Hermes 32 0 42
-Hermes-devel 0 0 35
-ImageMagick 56 5 60
-ImageMagick-devel 10 0 60
-ImageMagick-lib 0 0 0
-MAKEDEV 91 91 91
-MandrakeUpdate 82 0 80
-Mesa 30 0 70
-Mesa-common 30 0 70
-Mesa-common-devel 0 0 70
-Mesa-demos 10 0 15
-MySQL 2 55 15
-MySQL-bench 2 50 10
-MySQL-client 2 52 11
-MySQL-devel 0 0 15
-MySQL-shared 2 50 10
-ORBit 0 0 55
-ORBit-devel 10 0 55
-SDL 50 0 25
-SDL-devel 0 0 25
-SDL_image 0 0 25
-SDL_image-devel 0 0 25
-SDL_mixer 0 0 25
-SDL_mixer-devel 0 0 25
-SDL_net 0 0 25
-SDL_net-devel 0 0 25
-SDL_ttf 0 0 25
-SDL_ttf-devel 0 0 25
-SVGATextMode 0 0 0
-SmallEiffel 0 0 30
-SysVinit 15 52 45
-TiMidity++ 51 0 54
-WMRack 40 0 32
-WindowMaker 40 0 57
-WindowMaker-devel 0 0 30
-WsLib-devel 0 0 0
-X11R6-contrib 55 0 47
-XFree86 91 0 81
-XFree86-100dpi-fonts 56 0 30
-XFree86-3DLabs -30 -30 -30
-XFree86-75dpi-fonts 91 0 81
-XFree86-8514 -30 -30 -30
-XFree86-AGX -30 -30 -30
-XFree86-FBDev -30 -30 -30
-XFree86-I128 -30 -30 -30
-XFree86-ISO8859-2 -20 -30 -20
-XFree86-ISO8859-2-100dpi-fonts -20 -30 -20
-XFree86-ISO8859-2-75dpi-fonts -20 -30 -20
-XFree86-ISO8859-2-Type1-fonts -20 -30 -20
-XFree86-ISO8859-9 -20 -30 -20
-XFree86-ISO8859-9-100dpi-fonts -20 -30 -20
-XFree86-ISO8859-9-75dpi-fonts -20 -30 -20
-XFree86-Mach32 -30 -30 -30
-XFree86-Mach64 -30 -30 -30
-XFree86-Mach8 -30 -30 -30
-XFree86-Mono -30 -30 -30
-XFree86-P9000 -30 -30 -30
-XFree86-S3 -30 -30 -30
-XFree86-S3V -30 -30 -30
-XFree86-SVGA -30 -30 -30
-XFree86-VGA16 -30 -30 -30
-XFree86-W32 -30 -30 -30
-XFree86-Xnest 0 0 55
-XFree86-Xvfb 0 0 15
-XFree86-cyrillic-fonts -20 -30 -20
-XFree86-devel 12 0 55
-XFree86-doc -30 -30 -30
-XFree86-glide-module -2 -2 -2
-XFree86-libs 10 0 0
-XFree86-server -30 -30 -30
-XFree86-server-common -30 -30 -30
-XFree86-static-libs 0 0 20
-XFree86-xfs 0 0 0
-XaoS 40 0 25
-XaoS-aalib 0 0 0
-XaoS-svgalib 0 0 0
-Xaw3d 20 0 70
-Xaw3d-devel 10 0 60
-Zope 0 15 30
-Zope-components 0 15 30
-Zope-core 0 15 30
-Zope-pcgi 0 15 30
-Zope-services 0 15 30
-Zope-zpublisher 0 15 30
-Zope-zserver 0 15 30
-Zope-ztemplates 0 15 30
-aalib 25 0 15
-aalib-devel 0 0 25
-abisuite 59 0 45
-acon -10 -10 -10
-acpid 0 0 0
-adjtimex 22 35 87
-adns 30 30 30
-adns-devel 0 0 30
-aktion 66 0 15
-alsa 0 0 0
-alsa-lib 0 0 0
-alsa-lib-devel 0 0 20
-alsa-source 0 0 0
-alsa-utils 0 0 0
-alsaplayer 0 0 0
-am-utils 0 25 19
-ami -20 -20 -20
-ami-gnome -20 -20 -20
-anacron 85 70 85
-anonftp 0 86 13
-apache -99 80 -99
-apache-common -99 0 -99
-apache-devel -99 0 -99
-apache-manual -99 40 -99
-apache-mod_perl -99 85 -99
-apache-mod_perl-devel -99 0 -99
-apache-suexec -99 75 -99
-apcupsd -1 -1 -1
-apmd -1 -1 -1
-apmd-devel -1 -1 -1
-app-defaults-be -30 -30 -30
-app-defaults-cs -30 -30 -30
-app-defaults-ga -30 -30 -30
-app-defaults-ru -30 -30 -30
-app-defaults-th -30 -30 -30
-app-defaults-uk -30 -30 -30
-arpwatch 0 50 0
-ash 10 10 10
-aspell 49 15 22
-aspell-ca -30 -30 -30
-aspell-cs -30 -30 -30
-aspell-da -30 -30 -30
-aspell-de -30 -30 -30
-aspell-de_CH -30 -30 -30
-aspell-devel 0 0 10
-aspell-en -30 -30 -30
-aspell-en_CA -30 -30 -30
-aspell-en_GB -30 -30 -30
-aspell-eo -30 -30 -30
-aspell-es -30 -30 -30
-aspell-fr -30 -30 -30
-aspell-it -30 -30 -30
-aspell-nl -30 -30 -30
-aspell-no -30 -30 -30
-aspell-pl -30 -30 -30
-aspell-sv -30 -30 -30
-at 42 96 94
-aterm 17 0 13
-audiofile 25 0 26
-audiofile-devel 10 0 26
-aumix 79 0 79
-auth_ldap 5 75 20
-autoconf 15 0 84
-autofs 48 45 50
-autoirpm -60 -60 -60
-autologin 82 0 82
-automake 15 0 84
-awesfx 20 0 13
-basesystem 0 0 0
-bash 0 0 0
-bash-doc 35 50 71
-bash1 15 5 13
-bc 40 25 25
-bdflush 0 0 0
-bind 0 75 0
-bind-devel 0 0 0
-bind-utils 25 35 70
-binutils 47 0 87
-bison 10 0 80
-blackbox 30 0 45
-blt 10 0 75
-bluefish 60 0 60
-boa -99 -99 -99
-bonnie 5 45 25
-bonobo 20 0 20
-bonobo-devel 0 0 35
-bootparamd 20 78 0
-bug-buddy 0 0 20
-byacc 16 0 80
-bzflag -1 -1 -1
-bzip2 41 85 75
-caching-nameserver 0 70 0
-cbb 55 0 13
-cdecl 10 0 70
-cdialog 3 0 20
-cdp 40 0 27
-cdparanoia 45 0 45
-cdparanoia-devel 0 0 30
-cdrecord 45 0 45
-cdrecord-cdda2wav 44 0 45
-cdrecord-devel 10 0 0
-cervisia 0 0 0
-cfengine 0 30 0
-chkconfig 0 65 10
-chkfontpath 0 0 50
-chromium -1 -1 -1
-clanbomber 65 0 25
-cleanfeed 24 65 21
-clisp 0 0 15
-compat-glibc 0 0 40
-compat-libs 0 0 0
-comsat 0 30 2
-console-tools 97 97 97
-console-tools-devel 0 0 0
-control-center 69 0 10
-control-center-devel 0 0 0
-control-panel 2 0 2
-cooledit 0 0 30
-corewars 0 15 0
-cpio 90 89 90
-cproto 15 0 61
-cracklib 10 85 35
-cracklib-devel 0 0 15
-cracklib-dicts 10 82 35
-crontabs 95 95 95
-csmash -1 -1 -1
-ctags 10 0 80
-cttex -30 -30 -30
-cups -99 -99 -99
-cups-devel 0 0 20
-cups-drivers -99 -99 -99
-cvs 18 60 72
-cvsweb 0 0 30
-cxhextris 50 0 36
-detect 25 25 75
-detect-devel 0 0 60
-detect-lst 25 25 75
-dev 99 99 99
-dev86 0 0 40
-dev86-devel 0 0 40
-devfsd 0 0 0
-dhcp -99 80 -99
-dhcp-client 0 79 5
-dhcp-relay 0 10 0
-dhcpcd 0 0 0
-dhcpxd 0 0 0
-dia 30 0 30
-dialog 10 0 71
-diffstat 12 50 87
-diffutils 42 55 87
-dip 40 45 13
-docbook-dtd31-sgml 30 0 45
-docbook-style-dsssl 5 15 15
-docbook-style-dsssl-doc 4 14 14
-dosemu 45 0 49
-dosemu-freedos 45 0 49
-dosfstools 40 15 22
-doxygen 0 0 40
-dpsftp 45 0 0
-dpsftplib 45 0 0
-dpsftplib-devel 45 0 15
-drakfloppy 84 0 84
-drakfont 84 0 84
-drakxtools 86 80 87
-dump 10 75 87
-e2fsprogs 98 98 98
-e2fsprogs-devel 0 0 25
-eMusic 65 0 50
-ed 45 10 5
-ee 58 0 54
-efax 25 78 30
-egcs 5 0 50
-egcs-c++ 5 0 50
-egcs-cpp 5 0 50
-egcs-g77 5 0 50
-egcs-objc 5 0 50
-egcs-objc-devel 4 0 20
-eggdrop 25 0 25
-eject 92 33 91
-elm 22 5 13
-emacs 49 45 0
-emacs-X11 51 0 69
-emacs-el 0 0 15
-emacs-leim 20 0 50
-emacs-nox 20 0 14
-emacs-pcomplete 20 0 30
-emacs-tramp 20 20 30
-enlightenment 41 0 55
-enscript 20 25 71
-eog 30 0 20
-eperl 0 0 10
-eshell 20 0 30
-esound 0 0 0
-esound-devel 12 0 4
-etcskel 98 98 98
-ethemes 40 0 35
-exmh 40 0 36
-expect 23 0 71
-ext2ed 5 52 42
-ext2resize 5 52 42
-faces 20 75 15
-faces-devel 10 0 0
-faces-xface 20 0 15
-faq 63 49 53
-fbset 22 0 0
-fdutils 10 0 0
-fetchmail 45 99 31
-fetchmail-daemon 20 30 20
-fetchmailconf 45 0 40
-file 92 92 94
-filesystem 99 99 99
-fileutils 99 99 99
-findutils 97 97 97
-finger 40 35 27
-finger-server 0 30 0
-flex 13 0 72
-fltk 0 0 0
-fltk-devel 0 0 15
-fmirror 45 35 40
-fnlib 10 0 7
-fnlib-devel 10 0 0
-fonts-ttf-armenian -10 0 -10
-fonts-ttf-big5 -10 0 -10
-fonts-ttf-decoratives 72 0 68
-fonts-ttf-gb2312 -10 0 -10
-fonts-ttf-japanese -10 0 -10
-fonts-ttf-korean -10 0 -10
-fonts-ttf-west_european 77 0 74
-fonts-type1-baltic -15 -15 -15
-fortune-mod 10 0 10
-freeciv 54 0 53
-freetype 10 0 4
-freetype-devel 10 0 0
-fribidi 0 0 0
-fribidi-devel 0 0 0
-ftp 90 92 90
-fvwm 12 0 15
-fvwm2 17 0 17
-fvwm2-icons 17 0 17
-fwhois 25 45 36
-g-print 20 0 20
-g-wrap 0 0 40
-g-wrap-devel 0 0 20
-gaddr 45 0 40
-gaim 35 0 30
-gated 0 80 0
-gatos 55 0 49
-gawk 10 55 87
-gawk-doc 10 35 50
-gcc 50 40 90
-gcc-c++ 15 0 74
-gcc-chill 20 0 65
-gcc-colorgcc 0 0 0
-gcc-cpp 47 0 72
-gcc-fr 0 0 0
-gcc-g77 15 0 27
-gcc-java 16 0 65
-gcc-libgcj 15 0 30
-gcc-objc 16 0 35
-gcombust 40 0 0
-gd 12 0 71
-gd-devel 10 0 71
-gd-utils 45 0 64
-gdb 12 0 94
-gdbm 12 0 72
-gdbm-devel 10 0 72
-gdk-pixbuf 68 0 70
-gdk-pixbuf-devel 0 0 40
-gdm 67 0 55
-gedit 68 0 62
-gedit-devel 0 0 0
-genromfs 10 0 9
-gentoo 30 0 0
-gettext 10 15 71
-gettext-devel 0 0 35
-getty_ps 99 99 99
-gfcc 15 0 31
-gftp 67 0 62
-ggv 25 0 0
-ghc 0 0 35
-ghc-prof 0 0 2
-ghostscript 40 70 75
-ghostscript-utils 30 50 55
-ghostscript-fonts 22 55 75
-ghostscript-module-SVGALIB 10 0 63
-ghostscript-module-X 40 60 65
-gif2png 10 0 20
-giftrans 42 0 71
-gimp 69 0 67
-gimp-data-extras 55 0 58
-gimp-devel 10 0 40
-gimp-libgimp 10 0 50
-gimp-perl 30 0 30
-git 69 35 54
-gkrellm 15 30 15
-gkrellm-devel 0 0 20
-glade 17 0 57
-glademm 0 0 40
-glib 1 0 0
-glib-devel 10 0 87
-glibc 1 99 96
-glibc-devel 25 0 76
-glibc-profile 1 0 54
-gltron -1 -1 -1
-gmc 68 0 59
-gmp 17 0 71
-gmp-devel 10 0 71
-gnomba 24 0 24
-gnome-applets 68 0 55
-gnome-audio 60 0 55
-gnome-audio-extra 55 0 50
-gnome-chess 60 0 55
-gnome-core 68 0 55
-gnome-core-devel 10 0 55
-gnome-games 60 0 59
-gnome-games-devel 10 0 0
-gnome-guile 0 0 50
-gnome-guile-devel 10 0 50
-gnome-iconedit 60 0 55
-gnome-libs 68 0 55
-gnome-libs-devel 10 0 55
-gnome-linuxconf 74 0 74
-gnome-media 60 0 58
-gnome-network 60 0 58
-gnome-objc 0 0 40
-gnome-objc-devel 10 0 40
-gnome-pilot 55 0 45
-gnome-pilot-conduits 45 0 35
-gnome-pilot-devel 0 15 0
-gnome-pim 61 0 70
-gnome-pim-conduits 51 0 60
-gnome-pim-devel 10 0 70
-gnome-print 62 0 55
-gnome-print-devel 10 0 55
-gnome-tiles 60 0 55
-gnome-toaster 65 0 61
-gnome-users-guide 66 0 60
-gnome-utils 66 0 50
-gnome-vfs 0 0 0
-gnome-vfs-devel 0 0 30
-gnomeicu 61 0 58
-gnomemm 0 0 40
-gnomemm-devel 0 0 30
-gnorpm 74 0 71
-gnozip 50 0 60
-gnucash 35 0 15
-gnucash-devel 0 0 12
-gnuchess 40 0 31
-gnumeric 67 0 58
-gnuplot 65 0 53
-gnus 20 0 14
-gob 0 0 20
-gperf 12 0 72
-gphoto 60 0 58
-gpm 0 65 87
-gpm-devel 10 0 55
-gprolog 5 5 45
-gps 30 15 30
-gqcam 0 0 0
-gqview 55 0 49
-grep 0 92 94
-grip 60 0 35
-groff 0 0 62
-groff-for-man 0 0 0
-groff-gxditview 22 0 19
-groff-perl 0 0 0
-grpmi 0 0 0
-grub 99 99 99
-grub-doc 0 0 25
-gsl 10 0 0
-gsl-devel 0 0 0
-gsu 65 0 53
-gtk+ 0 0 70
-gtk+-devel 10 0 70
-gtk+licq 45 0 30
-gtk+mdk 0 0 15
-gtk+mdk-devel 0 0 15
-gtk-engines 0 0 70
-gtk-themes 50 0 20
-gtkdialogs 0 0 0
-gtkeyboard 20 0 0
-gtkglarea 10 0 15
-gtkglarea-devel 0 0 15
-gtkgo 15 0 5
-gtkgraph 65 0 35
-gtkhtml 0 0 0
-gtkhtml-devel 0 0 0
-gtkmm 20 0 55
-gtkmm-devel 20 0 55
-gtktalog 52 0 25
-gtkzip 60 0 58
-gtop 60 0 58
-gtulpas 10 0 10
-guile 11 0 75
-guile-devel 10 0 75
-gurpmi 82 0 86
-gv 55 0 49
-gzip 98 98 98
-hackkernel 0 0 0
-hackkernel-doc 0 0 0
-hackkernel-headers 0 0 0
-hackkernel-pcmcia-cs 0 0 0
-hackkernel-source 0 0 0
-happy 0 0 25
-harddrake 83 0 83
-haskell-GTK 0 0 10
-haskell-GTK-devel 0 0 10
-hdparm 98 98 98
-heartbeat -1 25 -1
-hexedit 91 91 91
-howto-html-de -30 -30 -30
-howto-html-el -30 -30 -30
-howto-html-en -30 -30 -30
-howto-html-es -30 -30 -30
-howto-html-fr -30 -30 -30
-howto-html-hr -30 -30 -30
-howto-html-id -30 -30 -30
-howto-html-it -30 -30 -30
-howto-html-ja -30 -30 -30
-howto-html-ko -30 -30 -30
-howto-html-pl -30 -30 -30
-howto-html-ro -30 -30 -30
-howto-html-sl -30 -30 -30
-howto-html-sv -30 -30 -30
-howto-html-zh -30 -30 -30
-howto-utils 0 0 0
-hugs98 0 0 15
-hylafax 0 0 0
-hylafax-client 0 0 0
-hylafax-server 0 0 0
-ibtk 20 0 13
-ical 40 0 27
-icepref 50 0 54
-icewm 65 0 78
-icewm-light 90 0 80
-imap 0 80 6
-imap-devel 0 0 6
-imlib 10 0 71
-imlib-cfgeditor 70 0 71
-imlib-devel 10 0 50
-imwheel 78 60 73
-indent 20 0 91
-indexhtml 0 87 76
-inews 6 12 15
-info 20 65 70
-info-install 0 0 10
-initscripts 99 99 99
-inn 0 55 0
-inn-devel 0 0 0
-intimed 0 55 10
-ipchains 15 98 13
-iplog 15 15 15
-iproute2 0 30 0
-ipvsadm 0 15 0
-ipxutils 20 85 9
-irda-utils -1 -1 -1
-irssi 59 0 57
-isapnptools 43 73 73
-isapnptools-devel 0 0 70
-isdn4k-utils -99 -99 -99
-isdn4net -99 -99 -99
-isicom 20 0 13
-ispell 49 15 22
-ispell-af -15 -15 -15
-ispell-br -15 -15 -15
-ispell-ca -15 -15 -15
-ispell-cs -15 -15 -15
-ispell-da -15 -15 -15
-ispell-de -15 -15 -15
-ispell-el -15 -15 -15
-ispell-en -15 -15 -15
-ispell-eo -15 -15 -15
-ispell-es -15 -15 -15
-ispell-fi -15 -15 -15
-ispell-fr -15 -15 -15
-ispell-ga -15 -15 -15
-ispell-gd -15 -15 -15
-ispell-gv -15 -15 -15
-ispell-id -15 -15 -15
-ispell-it -15 -15 -15
-ispell-nl -15 -15 -15
-ispell-no -15 -15 -15
-ispell-pl -15 -15 -15
-ispell-pt -15 -15 -15
-ispell-pt_BR -15 -15 -15
-ispell-ro -15 -15 -15
-ispell-ru -15 -15 -15
-ispell-sk -15 -15 -15
-ispell-sl -15 -15 -15
-ispell-sv -15 -15 -15
-itcl 10 0 60
-jadetex 15 0 45
-jed 16 18 14
-jed-common 0 18 0
-jed-xjed 40 0 22
-jikes 1 0 65
-joe 20 20 15
-kaffe 10 0 60
-kdbg 15 0 27
-kde1-compat 0 0 0
-kde1-compat-devel 0 0 0
-kdeaddutils 73 0 62
-kdeaddutils-devel 1 1 50
-kdeadmin 72 0 60
-kdebase 79 40 68
-kdebase-devel 1 1 60
-kdegames 71 0 59
-kdegraphics 77 40 66
-kdegraphics-devel 1 1 60
-kdelibs 0 0 0
-kdelibs-devel 1 1 60
-kdelibs-sound 60 0 55
-kdelibs-sound-devel 1 1 60
-kdemultimedia 77 0 66
-kdemultimedia-devel 1 1 60
-kdenetwork 72 0 60
-kdenetwork-devel 1 1 60
-kdepim 72 0 63
-kdesdk 0 0 35
-kdesupport 0 0 0
-kdesupport-devel 0 0 15
-kdetoys 70 0 65
-kdeutils 78 0 67
-kdiff 0 0 0
-kdiskcat 0 0 0
-kdoc 0 0 35
-kernel 99 99 99
-kernel-doc 5 50 65
-kernel-headers 1 45 94
-kernel-linus -1 -1 -1
-kernel-pcmcia-cs -1 -1 -1
-kernel-secure 0 0 0
-kernel-smp -1 -1 -1
-kernel-source 0 45 65
-kernel-utils 0 5 25
-kfilecoder 0 0 0
-kfirewall 0 0 0
-kfortune 0 0 0
-kfsstatus 0 0 0
-kfun21 0 0 0
-kimon 0 0 0
-kinput2-wnn4 -15 -15 -15
-kisocd 0 0 0
-kless 0 0 0
-klilo 0 0 0
-klyx 0 0 0
-kmag 0 0 0
-kmol 0 0 0
-kmp3 0 0 0
-kmp3te 0 0 0
-koffice 69 0 55
-koffice-devel 0 0 35
-kon2 -12 -60 -15
-kover 69 0 60
-kpacman 0 0 0
-kreglo 0 0 0
-krubik 0 0 0
-ksendfax 0 0 0
-kslide 0 0 0
-ktail 0 0 0
-ktelnet 0 0 0
-kterm -10 -90 -10
-kudzu 97 0 97
-kudzu-devel 0 0 43
-kups 60 0 50
-kups-devel 0 0 0
-kvideogen 0 0 0
-kvirc 69 0 56
-kvoice 0 0 0
-kvoicecontrol 0 0 0
-kwebget 0 0 0
-lame 15 40 35
-latex2html 25 0 50
-latte 0 0 45
-ld.so 98 98 98
-leafnode 0 50 0
-less 97 97 97
-lesstif 0 0 0
-lesstif-clients 0 0 0
-lesstif-devel 0 0 0
-lesstif-mwm 2 0 2
-lftp 50 78 83
-lha 40 25 72
-libPropList 10 0 80
-libPropList-devel 0 0 34
-libc 10 15 75
-libelf 10 15 80
-libghttp 10 0 55
-libghttp-devel 10 0 55
-libglade 10 0 55
-libglade-devel 10 0 40
-libgr 10 0 71
-libgr-devel 10 0 70
-libgr-progs 10 0 9
-libgtop 10 0 55
-libgtop-devel 10 0 55
-libjpeg 10 0 71
-libjpeg-devel 10 0 70
-libmikmod 10 0 55
-libmikmod-devel 10 0 55
-libnet 97 97 97
-libole2 0 0 0
-libole2-devel 0 0 0
-libpcap 10 80 72
-libpcap-devel 0 0 0
-libpng 10 0 71
-libpng-devel 10 0 71
-librep 10 0 50
-librep-devel 10 0 50
-libsafe 0 0 35
-libsigc++ 0 0 25
-libsigc++-devel 0 0 25
-libsigc++-examples 0 0 25
-libstdc++ 10 0 80
-libstdc++-compat 10 0 60
-libstdc++-devel 10 0 80
-libtabe -15 -90 -15
-libtabe-devel -15 -90 -15
-libtermcap 10 55 87
-libtermcap-devel 10 0 64
-libtiff 10 0 72
-libtiff-devel 10 0 72
-libtool 10 0 85
-libtool-devel 0 0 0
-libungif 10 0 72
-libungif-devel 10 0 72
-libungif-progs 10 0 2
-libunicode 10 0 80
-libunicode-devel 0 0 50
-libwmf 0 0 15
-libxml 10 0 71
-libxml-devel 10 0 71
-libxml2 10 0 71
-libxml2-devel 10 0 71
-licq 62 0 45
-licq-autoreply 45 0 30
-licq-console 45 0 30
-licq-devel 0 0 20
-licq-forwarder 45 0 30
-licq-rms 45 0 30
-licq-update-hosts 45 0 30
-lilo 99 99 99
-lilo-doc 0 0 30
-links 20 25 20
-linux_logo 92 72 92
-linuxconf 90 79 86
-linuxconf-gui -1 -1 -1
-linuxconf-lib 0 0 0
-linuxconf-util 0 0 0
-linuxconf 90 79 86
-linuxconf-devel 10 0 70
-lkmpg 2 0 65
-locales 96 76 96
-locales-af -1 -1 -1
-locales-ar -1 -1 -1
-locales-az -1 -1 -1
-locales-be -1 -1 -1
-locales-bg -1 -1 -1
-locales-br -1 -1 -1
-locales-ca -1 -1 -1
-locales-cs -1 -1 -1
-locales-cy -1 -1 -1
-locales-da -1 -1 -1
-locales-de -1 -1 -1
-locales-el -1 -1 -1
-locales-en -1 -1 -1
-locales-eo -1 -1 -1
-locales-es -1 -1 -1
-locales-et -1 -1 -1
-locales-eu -1 -1 -1
-locales-fa -1 -1 -1
-locales-fi -1 -1 -1
-locales-fo -1 -1 -1
-locales-ur -1 -1 -1
-locales-fr -1 -1 -1
-locales-ga -1 -1 -1
-locales-gd -1 -1 -1
-locales-gl -1 -1 -1
-locales-gv -1 -1 -1
-locales-he -1 -1 -1
-locales-hi -1 -1 -1
-locales-hr -1 -1 -1
-locales-hu -1 -1 -1
-locales-hy -1 -1 -1
-locales-id -1 -1 -1
-locales-is -1 -1 -1
-locales-it -1 -1 -1
-locales-ja -1 -1 -1
-locales-ka -1 -1 -1
-locales-kl -1 -1 -1
-locales-ko -1 -1 -1
-locales-kw -1 -1 -1
-locales-lo -1 -1 -1
-locales-lt -1 -1 -1
-locales-lv -1 -1 -1
-locales-mi -1 -1 -1
-locales-mk -1 -1 -1
-locales-ms -1 -1 -1
-locales-nl -1 -1 -1
-locales-no -1 -1 -1
-locales-oc -1 -1 -1
-locales-pd -1 -1 -1
-locales-ph -1 -1 -1
-locales-pl -1 -1 -1
-locales-pp -1 -1 -1
-locales-pt -1 -1 -1
-locales-ro -1 -1 -1
-locales-ru -1 -1 -1
-locales-sk -1 -1 -1
-locales-sl -1 -1 -1
-locales-sq -1 -1 -1
-locales-sr -1 -1 -1
-locales-sv -1 -1 -1
-locales-ta -1 -1 -1
-locales-tg -1 -1 -1
-locales-th -1 -1 -1
-locales-tr -1 -1 -1
-locales-tt -1 -1 -1
-locales-uk -1 -1 -1
-locales-vi -1 -1 -1
-locales-wa -1 -1 -1
-locales-yi -1 -1 -1
-locales-zh -1 -1 -1
-logrotate 0 25 15
-losetup 5 45 35
-lout 15 35 10
-lout-doc 31 32 10
-lpg 40 0 80
-lpr -99 -99 -99
-lrzsz 0 34 0
-lslk 20 49 54
-lsof 10 0 67
-ltrace 10 0 0
-lynx 42 78 84
-lyx 50 0 58
-m4 15 0 80
-macutils 22 5 19
-mailcap 5 5 4
-mailx 92 92 92
-make 50 50 94
-man 90 65 72
-man-pages 90 65 72
-man-pages-cs -10 -30 -25
-man-pages-de -10 -30 -25
-man-pages-es -10 -30 -25
-man-pages-fr -10 -30 -25
-man-pages-hu -10 -30 -25
-man-pages-id -10 -30 -25
-man-pages-it -10 -30 -25
-man-pages-ja -10 -30 -25
-man-pages-ko -10 -30 -25
-man-pages-pl -10 -30 -25
-man-pages-ru -10 -30 -25
-man-pages-zh -10 -30 -25
-mandrake-release 99 99 99
-mandrake_desk 88 0 88
-mandrake_doc-de -15 -90 -25
-mandrake_doc-en -15 -90 -25
-mandrake_doc-es -15 -90 -25
-mandrake_doc-fr -15 -90 -25
-mandrake_doc-it -15 -90 -25
-mandrake_doc-ru -15 -90 -25
-mars-nwe 0 35 0
-mathplot 30 0 20
-mawk 0 25 80
-mc 49 45 31
-mcserv 0 40 9
-mek 40 0 0
-memprof 2 5 65
-menu 90 0 80
-menudrake 79 75 75
-userdrake 50 0 40
-mercury 0 0 45
-metamail 40 80 50
-mgetty 24 20 9
-mgetty-contrib 28 20 15
-mgetty-sendfax 28 20 15
-mgetty-viewfax 28 20 15
-mgetty-voice 28 20 15
-mikmod 42 0 10
-mingetty 5 25 15
-minicom 27 0 4
-mirrordir 26 99 0
-mkbootdisk 35 55 60
-mkinitrd 99 99 99
-mkisofs 26 0 13
-mktemp 15 75 65
-mkxauth 2 99 1
-mm 0 0 15
-mm-devel 0 0 0
-mod_php -99 35 -99
-php-gd -99 15 -99
-php-imap -99 15 -99
-php-ldap -99 15 -99
-php-mysql -99 15 -99
-php-pgsql -99 15 -99
-php-oracle -99 15 -99
-php-dba_gdbm_db2 -99 15 -99
-php-readline -99 15 -99
-mod_ssl -99 75 -99
-mod_ssl-sxnet -99 30 -99
-modutils 99 99 99
-mon 0 40 0
-mount 97 97 97
-mouseconfig 0 0 0
-mozilla-fonts 0 0 0
-mp3info 50 20 50
-mpage 55 65 80
-mpeg_lib 0 0 0
-mpeg_lib-devel 0 0 30
-mpeg_lib-devel 0 0 0
-mpg123 42 0 42
-msec 98 98 98
-mt-st 40 0 49
-mtools 90 0 84
-mutt 10 0 10
-mxp 0 0 0
-nag 35 75 25
-nasm 20 20 65
-nasm-doc 0 20 65
-nasm-rdoff 0 20 65
-nc 0 0 0
-ncftp 55 0 49
-sftp 15 10 15
-ncompress 42 79 91
-ncpfs 0 0 0
-ncurses 0 0 80
-ncurses-extraterms 0 0 0
-ncurses-devel 10 0 75
-nedit 45 20 65
-net-tools 95 96 95
-netkit-base 82 99 82
-netscape-castellano -13 -30 -18
-netscape-catalan -13 -30 -18
-netscape-common 0 0 0
-netscape-communicator 78 60 73
-netscape-euskara -13 -30 -18
-netscape-francais -13 -30 -18
-netscape-german -13 -30 -18
-netscape-japanese -13 -30 -18
-netscape-navigator 0 0 0
-netscape-polish -13 -30 -18
-netscape-russian -13 -30 -18
-netscape-spanish -13 -30 -18
-netscape-walon -13 -30 -18
-newt 10 0 75
-newt-devel 10 0 75
-nfs-utils -99 80 13
-nfs-utils-clients 23 75 23
-nist 55 0 45
-nmap 5 40 40
-nmap-frontend 5 40 40
-nmh 0 0 0
-nscd 0 40 0
-nss_ldap 0 55 25
-ntp -1 -1 -1
-ntsysv 0 65 25
-numlock -11 -11 -11
-oaf 0 0 0
-oaf-devel 0 0 0
-ocaml 0 0 35
-octave 0 0 30
-oggvorbis 30 10 20
-oggvorbis-devel 0 0 15
-oggvorbis-examples 0 0 15
-open 20 45 80
-openjade 5 15 15
-openldap 0 50 35
-openldap-devel 0 0 25
-openssl 0 0 0
-openssl-devel 0 0 0
-oregano 0 0 0
-p2c 10 0 71
-p2c-devel 10 0 55
-pam 7 99 91
-pam-devel 0 0 0
-pam-doc 0 50 50
-pan 22 0 0
-pango 10 0 10
-pango-devel 0 0 10
-parted 35 35 35
-parted-devel 0 0 35
-passwd 99 99 99
-patch 14 0 72
-pciutils 16 55 55
-pciutils-devel 0 0 20
-pdksh 10 25 9
-penguin-command 35 0 10
-perl 20 19 90
-perl-Apache-Filter 0 0 0
-perl-Apache-SSI 0 0 0
-perl-Apache-Session 0 0 0
-perl-Compress-Zlib 0 0 0
-perl-Convert-BER 0 0 0
-perl-DBI 10 0 65
-perl-DBIx-Recordset 0 0 0
-perl-DB_File 10 0 50
-perl-Data-ShowTable 10 0 50
-perl-Date-Calc 0 0 0
-perl-DateManip 0 0 0
-perl-Devel-Symdump 0 0 0
-perl-Digest-MD5 10 0 70
-perl-ExtUtils_F77 0 0 0
-perl-File-Tail 0 0 0
-perl-GTK 10 0 72
-perl-GTK-GLArea 10 0 70
-perl-GTK-GdkImlib 10 0 70
-perl-GTK-Glade 10 0 70
-perl-GTK-Gnome 10 0 70
-perl-GTK-GtkHTML 0 0 0
-perl-HTML-Clean 0 0 0
-perl-HTML-Parser 10 0 55
-perl-HTML-SimpleParse 10 0 50
-perl-IO-stringy 5 0 65
-perl-MIME-Base64 5 0 45
-perl-MIME-tools 5 0 50
-perl-MLDBM 0 0 0
-perl-MP3-Info 5 0 40
-perl-Magick 0 0 0
-perl-MailTools 5 0 50
-perl-Mon 0 0 0
-perl-Msgcat 5 0 50
-perl-Mysql 5 0 40
-perl-Net-Telnet 0 0 0
-perl-Net_SSLeay 0 0 0
-perl-PDL 10 0 75
-perl-PDL-doc 0 0 0
-perl-Parse-RecDescent 10 0 75
-perl-Parse-Yapp 0 0 0
-perl-Period 0 0 0
-perl-RPM 0 0 0
-perl-Storable 0 0 0
-perl-Term-Readline-Gnu 10 10 88
-perl-Tie-Cache 0 0 0
-perl-Time-HiRes 0 0 0
-perl-TimeDate 0 0 0
-perl-Tk 0 15 0
-perl-Tk-devel 0 0 0
-perl-Tk-doc 0 0 0
-perl-URI 5 0 50
-perl-XML-Parser 0 0 0
-perl-XML-XSLT 0 0 0
-perl-base 0 0 0
-perl-devel 0 0 30
-perl-libnet 10 10 80
-perl-libwww-perl 10 10 80
-perl-libxml-enno 0 0 0
-perl-libxml-perl 0 0 0
-perl-Array-RefElem 0 0 0
-perl-Data-DumpXML 0 0 0
-perl-ExtUtils-PerlPP 0 0 0
-perl-File-NCopy 0 0 0
-perl-Image-Size 0 0 0
-perl-Mail-Sendmail 0 0 0
-perl-Net-XWhois 0 0 0
-perl-XML-RSS 0 0 0
-perlftlib 10 0 0
-php 0 35 5
-php-devel 0 0 5
-php-manual 0 0 5
-pidentd 15 69 87
-pilot-link 40 0 27
-perl-PDA-Pilot 0 0 0
-pilot-link-devel 11 0 25
-pine 40 0 27
-pinfo 20 20 20
-pingus 40 0 10
-piranha 0 10 0
-piranha-docs 0 10 0
-piranha-gui 0 10 0
-playmidi 43 0 19
-playmidi-X11 53 0 20
-plugger 40 0 40
-pmake 22 0 75
-pmake-customs 12 0 72
-popt 10 0 80
-popt-devel 0 0 45
-portmap 0 91 19
-postfix 20 88 51
-postgresql 0 56 23
-postgresql-devel 0 0 23
-postgresql-jdbc 0 0 15
-postgresql-odbc 0 0 23
-postgresql-perl 0 0 23
-postgresql-python 0 0 5
-postgresql-server 0 56 23
-postgresql-tcl 0 0 23
-postgresql-test 0 0 23
-postgresql-tk 0 0 5
-ppp 0 0 0
-pppoe-linuxconf 0 0 0
-pptp-adsl-fr -99 -99 -99
-pptp-client -99 -99 -99
-procinfo 24 15 96
-procmail 2 65 45
-procps 98 98 98
-procps-X11 50 0 32
-procps-devel 0 0 0
-proftpd -99 -99 -99
-psacct 20 70 87
-psmisc 25 62 56
-pspell 0 0 0
-pspell-devel 0 0 0
-psutils 5 42 15
-pth 0 0 25
-pth-devel 0 0 15
-publib-devel 0 0 0
-pump 0 0 0
-pump-devel 0 0 0
-pwdb 13 90 75
-pwdb-devel 0 0 50
-pygnome 12 0 50
-pygnome-applet 10 0 30
-pygnome-capplet 10 0 30
-pygnome-libglade 10 0 30
-pygtk 13 0 50
-pygtk-glarea 15 0 25
-pygtk-libglade 16 0 50
-pysol 27 0 27
-python 15 0 74
-python-devel 0 0 65
-python-docs 31 0 40
-python-imaging 31 0 40
-pythonlib 17 0 75
-qcad 5 0 5
-qiv 78 0 70
-qt 0 0 55
-qt-devel 10 0 55
-qt-qgl 10 0 50
-qt-qimgio 10 0 50
-qt2 0 0 45
-qt2-devel 0 0 45
-qt2-doc 0 0 30
-qtcups 0 0 0
-qtcups-devel 0 0 0
-queso 0 25 35
-quota 42 85 37
-raidtools 25 85 4
-rcs 12 0 71
-rdate 10 80 9
-rdist 10 75 9
-readline 11 0 70
-readline-devel 11 0 65
-recode 10 0 72
-recode-devel 0 0 50
-reiserfs-utils 60 60 60
-rep-gtk 0 0 20
-rep-gtk-gnome 0 0 20
-rep-gtk-libglade 0 0 20
-rgrep 55 55 75
-rhs-printfilters 1 1 0
-rmt 24 0 24
-rocksndiamonds 35 0 10
-rootfiles 99 99 99
-routed 0 90 19
-rp-pppoe -99 -99 -99
-rpm 99 99 99
-rpm-build 45 45 70
-rpm-devel 10 0 80
-rpm-python 0 0 50
-rpmdrake 84 0 81
-rpmlint 10 10 60
-rpmtools 0 0 25
-rpmtools-compat 0 0 0
-rpmtools-devel 0 0 25
-rsh 46 99 75
-rsh-server -99 55 25
-rsync 20 99 75
-ruby 0 0 25
-ruby-doc 0 0 25
-ruby-extensions 0 0 25
-ruby-gtk 0 0 25
-rusers 20 0 20
-rute -50 -75 -60
-rwall -1 0 -1
-rwho -1 0 -1
-rxvt 49 0 80
-rxvt-CLE -10 -90 -10
-sag 39 35 25
-samba 21 99 23
-samba-client 55 56 50
-samba-common 0 0 0
-sane 45 0 53
-sane-devel 10 0 2
-sash 5 5 5
-sawfish 59 0 57
-sawfish-themer 15 0 15
-sawfish-themes 50 0 50
-screen 26 43 79
-sed 97 97 97
-sendmail -99 -99 -99
-sendmail-cf 0 0 0
-sendmail-doc 0 0 0
-setserial 42 0 55
-setup 15 25 15
-sfm 25 0 25
-sgml-common 5 15 15
-sgml-tools 5 15 15
-sh-utils 97 97 97
-shadow-utils 98 98 98
-shapecfg 20 75 8
-sharutils 43 99 38
-sketch 45 0 0
-slang 12 0 75
-slang-devel 10 0 70
-slang-doc 0 0 70
-slocate 99 99 99
-slrn 10 0 10
-slrn-pull 35 0 45
-smpeg 50 0 25
-smpeg-devel 0 0 25
-sndconfig 70 40 70
-sox 41 32 80
-sox-devel 13 0 70
-space_sounds 52 0 55
-spacecup -1 -1 -1
-spec-helper 0 0 35
-spellutils 0 0 0
-spruce 0 0 0
-squid 0 45 16
-stat 5 55 45
-statserial 15 0 13
-strace 11 0 87
-sudo 0 30 0
-svgalib 10 0 63
-svgalib-devel 10 0 63
-swatch 22 65 4
-swi-prolog 5 5 45
-swig 0 0 20
-swig-devel 0 0 10
-symlinks 23 75 29
-sympa -1 40 -1
-sysklogd 97 97 97
-t1lib 1 0 29
-t1lib-devel 10 0 40
-taipeifonts -10 0 -10
-talk 44 0 39
-talk-server 0 0 0
-taper 42 0 27
-tar 97 97 97
-tcl 12 0 70
-tcllib 0 0 0
-tclx 12 0 70
-tcp_wrappers 0 99 0
-tcp_wrappers-devel 0 0 0
-tcpdump 10 79 2
-tcsh 1 25 15
-telnet 90 79 92
-openssh 65 75 65
-openssh-server -99 35 -99
-openssh-clients 65 75 65
-openssh-askpass 0 0 0
-openssh-askpass-gnome 0 0 0
-gnupg 90 90 90
-telnet-server -99 28 -99
-termcap 98 98 98
-tetex 25 0 50
-tetex-afm 25 0 40
-tetex-doc 25 0 40
-tetex-dvilj 40 0 40
-tetex-dvips 25 0 40
-tetex-latex 25 0 40
-tetex-latex-heb -65 -90 -90
-tetex-xdvi 25 0 50
-texinfo 22 0 50
-textutils 99 99 99
-teyjus 0 0 35
-tftp 0 40 2
-tftp-server 0 40 2
-thud 0 0 0
-time 40 65 87
-timeconfig 55 80 60
-timed 40 70 36
-timetool 54 0 57
-timidity-instruments 51 0 54
-tin 44 0 39
-tix 15 0 60
-tk 15 0 60
-tkbabel 15 0 15
-tkcvs 15 0 15
-tkinter 15 0 60
-tksysv 55 0 60
-tmake 10 0 25
-tmpwatch 35 75 60
-traceroute 40 79 29
-transfig 16 0 14
-tree 40 25 10
-trn 46 0 41
-trophy 35 0 10
-tunelp 24 15 28
-tuxracer -1 -1 -1
-ucd-snmp 0 70 45
-ucd-snmp-devel 0 25 45
-ucd-snmp-utils 0 37 45
-umb-scheme 10 0 65
-unarj 40 45 16
-units 22 0 10
-unixODBC 0 0 0
-unzip 70 75 91
-urlview 43 0 47
-urpmi 95 95 95
-urw-fonts 50 0 34
-usbview 5 0 10
-usermode 51 0 58
-usernet 42 55 37
-utempter 90 0 73
-utempter-devel 0 0 0
-util-linux 98 98 98
-uucp 0 80 2
-uxcook 0 0 0
-vigmeup 23 0 11
-vim-X11 52 0 26
-vim-common 0 19 0
-vim-enhanced 46 78 83
-vim-minimal 98 98 98
-vimguide 30 0 25
-vixie-cron 97 97 97
-vlock 40 99 80
-vnc 44 0 39
-vnc-SVGALIB 43 0 38
-vnc-doc 38 35 33
-vnc-java 38 0 34
-vnc-server 0 40 28
-webmin 20 40 20
-wget 65 75 53
-which 1 25 25
-wine 54 0 57
-wine-devel 0 0 0
-wmakerconf 47 0 57
-wmnet 24 0 21
-words 47 85 42
-wu-ftpd -99 85 -99
-wv 55 0 54
-wv-devel 0 0 0
-x3270 1 0 0
-xa+cv -10 -20 -10
-xalf 68 0 55
-xanim 58 0 54
-xbanner 15 0 12
-xboard 54 0 48
-xboing 53 0 47
-xcdroast 59 0 53
-xchat 58 0 52
-xcin -10 -10 -10
-xcpustate 53 0 47
-xdaliclock 57 0 51
-xdelta 16 0 5
-xdelta-devel 10 0 2
-xdosemu 34 0 37
-xearth 53 0 56
-xemacs 57 0 0
-xemacs-el 0 0 15
-xemacs-extras 50 0 36
-xemacs-info 54 0 42
-xemacs-mule 0 0 0
-xfce 0 0 0
-xfig 39 0 33
-xfishtank 51 0 45
-xgammon 40 0 31
-xinetd 0 0 0
-xinetd-devel 0 0 0
-xinitrc 0 0 0
-xinput 10 0 30
-xjewel 58 0 52
-xkobo 57 0 51
-xli 65 0 60
-xlispstat 2 0 45
-xloadimage 45 0 30
-xlockmore 58 0 52
-xmailbox 53 0 47
-xmame 25 0 25
-xmess 25 0 15
-xmms 64 0 57
-xmms-devel 0 0 15
-xmms-esd 46 0 41
-xmms-gnome 62 0 52
-xmms-kjofol-skins 50 0 50
-xmms-mesa -1 -1 -1
-xmms-mikmod 43 0 38
-xmms-more-vis-plugins 55 0 55
-xmms-oggvorbis 64 0 57
-xmms-skins 60 0 55
-xmms-smpeg 50 0 45
-xmorph 52 0 44
-xmovie 55 0 35
-xntp3 0 75 31
-xoscope 10 0 10
-xosview 51 0 45
-xpaint 53 0 47
-xpat2 43 0 38
-xpcd 40 0 30
-xpcd-gimp 30 0 25
-xpcd-svga 0 0 0
-xpdf 57 0 51
-xpilot 59 0 53
-xpm 52 0 64
-xpm-devel 10 0 56
-xpp 60 0 50
-xpuzzles 50 0 43
-xrally 5 0 5
-xrn 55 0 49
-xscreensaver 68 0 55
-xscreensaver-gl -1 -1 -1
-xsoldier 51 0 45
-xsysinfo 55 0 56
-xterm 87 0 80
-xtoolwait 50 0 35
-xtraceroute 50 0 40
-xtrojka 51 0 45
-xwc 65 0 40
-xwpe 0 0 20
-xwpe-X11 0 0 20
-xwpick 55 0 49
-xxgdb 53 0 47
-yodl 0 0 0
-yp-tools 0 40 0
-ypbind 0 40 0
-ypserv 0 0 0
-ytalk 21 75 18
-yudit 50 0 38
-zgv 15 0 13
-zip 70 65 87
-zlib 16 60 94
-zlib-devel 10 0 72
-zsh 20 50 72
-zsh-doc 0 35 60
-jpilot 40 0 30
-jpilot-Mail 12 0 10
-jpilot-syncmal 12 0 10
-jpilot-plugin-devel 0 0 0
-Maelstrom 50 0 35
-auctex 5 0 5
-bcast 15 0 10
-mpeg2_movie 10 0 8
-bg5ps -10 -10 -10
-eroaster 55 0 45
-everybuddy 52 0 52
-jabber 0 30 0
-libjabber 0 0 0
-libjabber-devel 0 0 0
-gabber 35 10 20
-gdk-pixbuf-gnomecanvas 0 0 0
-gdk-pixbuf-loaders 0 0 0
-gdk-pixbuf-xlib 0 0 0
-htdig 20 0 15
-libxode 0 0 0
-libxode-devel 0 0 0
-libgnet 0 0 0
-libgnet-devel 0 0 0
-libetherx 0 0 0
-libetherx-devel 0 0 0
-screem 55 0 60
-portsentry 0 15 0
-ttfprint -10 -10 -10
-kde-i18n-Afrikaans -12 -51 -23
-kde-i18n-Basque -12 -51 -23
-kde-i18n-Brazil -12 -51 -23
-kde-i18n-Breton -12 -51 -23
-kde-i18n-British -12 -51 -23
-kde-i18n-Bulgarian -12 -51 -23
-kde-i18n-Catalan -12 -51 -23
-kde-i18n-Chinese -12 -51 -23
-kde-i18n-Chinese-Big5 -12 -51 -23
-kde-i18n-Croatian -12 -51 -23
-kde-i18n-Czech -12 -51 -23
-kde-i18n-Danish -12 -51 -23
-kde-i18n-Dutch -12 -51 -23
-kde-i18n-Esperanto -12 -51 -23
-kde-i18n-Estonian -12 -51 -23
-kde-i18n-Finnish -12 -51 -23
-kde-i18n-French -12 -51 -23
-kde-i18n-Galacian -12 -51 -23
-kde-i18n-German -12 -51 -23
-kde-i18n-Greek -12 -51 -23
-kde-i18n-Hebrew -12 -51 -23
-kde-i18n-Hungarian -12 -51 -23
-kde-i18n-Icelandic -12 -51 -23
-kde-i18n-Italian -12 -51 -23
-kde-i18n-Japanese -12 -51 -23
-kde-i18n-Korean -12 -51 -23
-kde-i18n-Lithuanian -12 -51 -23
-kde-i18n-Macedonian -12 -51 -23
-kde-i18n-Maori -12 -51 -23
-kde-i18n-Norwegian -12 -51 -23
-kde-i18n-Norwegian -12 -51 -23
-kde-i18n-Polish -12 -51 -23
-kde-i18n-Portuguese -12 -51 -23
-kde-i18n-Romanian -12 -51 -23
-kde-i18n-Russian -12 -51 -23
-kde-i18n-Serbian -12 -51 -23
-kde-i18n-Slovak -12 -51 -23
-kde-i18n-Slovenian -12 -51 -23
-kde-i18n-Spanish -12 -51 -23
-kde-i18n-Swedish -12 -51 -23
-kde-i18n-Tamil -12 -51 -23
-kde-i18n-Thai -12 -51 -23
-kde-i18n-Turkish -12 -51 -23
-kde-i18n-Ukrainian -12 -51 -23
-kde-i18n-Walloon -12 -51 -23
-kde-i18n-Welsh -12 -51 -23
-kde-i18n-Norwegian-Nynorsk -12 -51 -23
-linuxconf-lang-cn -35 -60 -35
-linuxconf-lang-cs -35 -60 -35
-linuxconf-lang-de -35 -60 -35
-linuxconf-lang-es -35 -60 -35
-linuxconf-lang-fi -35 -60 -35
-linuxconf-lang-fr -35 -60 -35
-linuxconf-lang-it -35 -60 -35
-linuxconf-lang-ko -35 -60 -35
-linuxconf-lang-no -35 -60 -35
-linuxconf-lang-pt -35 -60 -35
-linuxconf-lang-ro -35 -60 -35
-linuxconf-lang-ru-SU -35 -60 -35
-linuxconf-lang-se -35 -60 -35
-linuxconf-lang-sk -35 -60 -35
-linuxconf-lang-zh -35 -60 -35
-7colors 15 0 0
-ltris 28 0 0
-lbreakout 35 0 0
-fonts-hebrew-elmar -30 -30 -30
-kwintv 0 0 0
-xawtv 0 0 0
-xawtv-misc 0 0 0
-xawtv-radio 0 0 0
-wxxt 0 0 0
-wxxt-devel 0 0 0
-surfraw 0 0 0
-R-base 0 0 0
-gpa 20 0 0
-gnome-telnet 0 0 0
-quanta 32 0 24
-nslint 0 12 0
-logcheck 0 12 0
-kisdn-free 33 0 30
-
-# commercial
-ac3d 20 0 20
-acroread 24 15 24
-acroread-nppdf 24 15 24
-IglooFTP-PRO 20 20 20
-interbase 0 15 15
-interbase-docs 0 15 15
-civctp-demo 22 0 20
-compupic 19 0 19
-commercial-menu 50 40 50
-eus-demo 23 0 20
-myth2-demo 24 0 25
-macromedia-flash 45 15 45
-RealPlayer 27 15 27
-RealPlayer-rpnp 27 15 27
-scol 23 0 23
-avp-database 20 20 20
-avp-linux 20 20 20
-arkeia-arkc 0 20 0
-arkeia-client 20 0 20
-arkeia-gui 24 0 20
-arkeia-server-shareware 0 30 0
-Artstream 20 0 0
-citrix-icaclient-en -70 -70 -70
-citrix-icaclient-fr -70 -70 -70
-citrix-icaclient-ge -70 -70 -70
-citrix-icaclient-sp -70 -70 -70
-printpro 0 0 0
-printpro-agfa 0 0 0
-printpro-alps 0 0 0
-printpro-apple 0 0 0
-printpro-autologic 0 0 0
-printpro-calcomp 0 0 0
-printpro-canon 0 0 0
-printpro-digital 0 0 0
-printpro-efi 0 0 0
-printpro-encad 0 0 0
-printpro-epson 0 0 0
-printpro-hp 0 0 0
-printpro-ibm 0 0 0
-printpro-lexmark 0 0 0
-printpro-lhag 0 0 0
-printpro-linotronic 0 0 0
-printpro-nec 0 0 0
-printpro-oki 0 0 0
-printpro-otheram 0 0 0
-printpro-othernz 0 0 0
-printpro-qms 0 0 0
-printpro-seiko 0 0 0
-printpro-sony 0 0 0
-printpro-tektronix 0 0 0
-printpro-ti 0 0 0
-printpro-varityper 0 0 0
-printpro-xerox 0 0 0
-emumail4.0 0 20 0
-EnlightenDSMFree 0 24 0
-EnlightenDSMFree-dsa 0 24 0
-EnlightenDSMFree-gui 0 24 0
-ForteCE-FCS 0 0 30
-ViaVoice_Outloud_rtk 0 0 45
-ViaVoice_Outloud_sdk 0 0 45
-ViaVoice_runtime 0 0 45
-ViaVoice_sdk 0 0 45
-jdk-sun 0 0 35
-jdk-sun-doc 0 0 35
-jre-sun 20 0 35
-heretic2-demo 24 0 24
-heroes3-demo 24 0 24
-rt2-demo 24 0 24
-MainActor 24 0 0
-mupad 20 0 20
-mtv 24 0 24
-mtv-fullscreen-extension 15 0 15
-NetPartitioner 0 24 0
-omnimark 0 0 35
-rebol-core 0 0 30
-staroffice-de -64 -90 -64
-staroffice-en -64 -90 -64
-staroffice-fr -64 -90 -64
-staroffice-it -64 -90 -64
-staroffice-nl -64 -90 -64
-staroffice-pt -64 -90 -64
-staroffice-es -64 -90 -64
-staroffice-sv -64 -90 -64
-tina-base 0 0 0
-tina-lesstif 0 0 0
-tina-oracle80 0 0 0
-tina-oracle8i 0 0 0
-tina-server 0 0 0
-VMware 20 0 35
-VariCAD 24 0 24
-ViaVoice_runtime 26 0 26
-<<<<<<< compssList
-viavoicemenu 26 0 26
-=======
-viavoicemenu 26 0 26
->>>>>>> 1.139
-kisdn 0 0 0
diff --git a/perl-install/share/compssUsers b/perl-install/share/compssUsers
deleted file mode 100644
index 7becfcfd4..000000000
--- a/perl-install/share/compssUsers
+++ /dev/null
@@ -1,92 +0,0 @@
- # --- Workstation
-
-Office Workstation [icon=office] [path=Workstation] [descr=Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, gnumeric), pdf viewers, etc]
- OFFICE
- PUBLISHING
- PIM
-
-Game station [icon=arcade] [path=Workstation] [descr=Amusement programs: arcade, boards, strategy, etc]
- GAMES
-
-Multimedia station [icon=multimedia] [path=Workstation] [descr=Sound and video playing/editing programs]
- AUDIO
- VIDEO
- GRAPHICS
-
-Internet station [icon=networking] [path=Workstation] [descr=Set of tools to read and send mail and news (pine, mutt, tin..) and to browse the Web]
- NETWORKING_WWW
- NETWORKING_MAIL
- NETWORKING_NEWS
- COMMUNICATIONS
- NETWORKING_CHAT
- NETWORKING_FILE_TRANSFER
- NETWORKING_IRC
- NETWORKING_INSTANT_MESSAGING
- NETWORKING_DNS
-
-Network Computer (client) [icon=terminals] [path=Workstation] [descr=Clients for different protocols including ssh]
- NETWORKING_REMOTE_ACCESS
- NETWORKING_FILE
-
-Configuration [icon=configuration] [path=Workstation] [descr=Tools to ease the configuration of your computer]
- CONFIG
- WEBMIN
-
-Scientific Workstation [icon=sciences] [path=Workstation] [descr=]
- SCIENCES
-
-Console Tools [icon=terminals] [path=Workstation] [descr=Editors, shells, file tools, terminals]
- EDITORS
- TERMINALS
- TEXT_TOOLS
- SHELLS
- FILE_TOOLS
-
- # --- Graphical Environment
-
-KDE Workstation [icon=kde] [path=Graphical Environment] [descr=The K Desktop Environment, the basic graphical environment with a collection of accompanying tools]
- KDE
- X
-
-Gnome Workstation [icon=gnome] [path=Graphical Environment] [descr=A graphical environment with user-friendly set of applications and desktop tools]
- GNOME
- X
-
-Other Graphical Desktops [icon=windowmanager] [path=Graphical Environment] [descr=Icewm, Window Maker, Enlightenment, Fvwm, etc]
- GRAPHICAL_DESKTOP
- X
-
-
- # --- Development
-
-Development [icon=editors] [path=Development] [descr=C and C++ development libraries, programs and include files]
- DEVELOPMENT
- EDITORS
-
-Documentation [icon=documentation] [path=Development] [descr=Books and Howto's on Linux and Free Software]
- BOOKS
-
- # --- Server
-
-Web/FTP [icon=file_transfer] [path=Server] [descr=Apache, Pro-ftpd]
- NETWORKING_WWW_SERVER
- NETWORKING_FILE_TRANSFER_SERVER
-
-Mail/Groupware/News [icon=mail] [path=Server] [descr=Postfix mail server, Inn news server]
- NETWORKING_MAIL_SERVER
- NETWORKING_NEWS_SERVER
-
-Database [icon=archiving] [path=Server] [descr=PostgreSQL or MySQL database server]
- DATABASES
- DATABASES_SERVER
-
-Firewall/Router [icon=networking] [path=Server] [descr=Internet gateway]
- NETWORKING_FIREWALLING_SERVER
-
-DNS/NIS [icon=hardware] [path=Server] [descr=Domain Name and Network Information Server]
- NIS_SERVER
- NETWORKING_DNS_SERVER
-
-Network Computer server [icon=networking] [path=Server] [descr=NFS server, SMB server, Proxy server, ssh server]
- NETWORKING_FILE_SERVER
- NETWORKING_REMOTE_ACCESS_SERVER
diff --git a/perl-install/share/compssUsers.desktop b/perl-install/share/compssUsers.desktop
deleted file mode 100644
index f836d6731..000000000
--- a/perl-install/share/compssUsers.desktop
+++ /dev/null
@@ -1,39 +0,0 @@
-Office [icon=office] [descr=Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, gnumeric), pdf viewers, etc]
- Office
-
-Internet [icon=networking] [descr=Set of tools for mail, news, web, file transfer, and chat]
- Networking
-
-Games [icon=amusement] [descr=Amusement programs: arcade, boards, strategy, etc]
- Games
-
-Multimedia - Graphics [icon=graphics] [descr=Graphics programs such as The Gimp]
- Graphics
-
-Multimedia - Sound [icon=multimedia] [descr=Audio-related tools: mp3 or midi players, mixers, etc]
- Sound
-
-Multimedia - Video [icon=video] [descr=Video players and editors]
- Video
-
-Multimedia - CD Burning [icon=cd_burning] [descr=Tools to create and burn CD's]
- Archiving/Cd burning
-
-More Graphical Desktops (Gnome, IceWM) [icon=windowmanager] [descr=Gnome, Icewm, Window Maker, Enlightenment, Fvwm, etc]
- Graphical desktop/GNOME
- Graphical desktop/Sawmill
- Graphical desktop/Icewm
- +XFree86-75dpi-fonts
- +fonts-ttf-west_european
-
-Personal Information Management [icon=remote_access] [descr=Tools for your Palm Pilot or your Visor]
- +jpilot
- +pilot-link
- +kde-pim
- +gnome-pim
- +gnome-pim-conduits
-
-Personal Finance [icon=sciences] [descr=Programs to manage your finance, such as gnucash]
- +gnucash
- +MoneyDance
-
diff --git a/perl-install/share/compssUsers.server b/perl-install/share/compssUsers.server
deleted file mode 100644
index ac384122e..000000000
--- a/perl-install/share/compssUsers.server
+++ /dev/null
@@ -1,67 +0,0 @@
- # --- Graphical Environment
-
-KDE Workstation [icon=kde] [path=Graphical Environment] [descr=The K Desktop Environment, the basic graphical environment with a collection of accompanying tools]
- KDE
- X
-
-Gnome Workstation [icon=gnome] [path=Graphical Environment] [descr=A graphical environment with user-friendly set of applications and desktop tools]
- GNOME
- X
-
-Other Graphical Desktops [icon=windowmanager] [path=Graphical Environment] [descr=XFce, Window Maker, IceWm]
- GRAPHICAL_DESKTOP
- X
-
- # --- Development
-
-Development [icon=editors] [path=Development] [descr=C and C++ development libraries, programs and include files]
- DEVELOPMENT
-
-Documentation [icon=documentation] [path=Development] [descr=Books and Howto's on Linux and Free Software]
- BOOKS
-
- # --- Server
-
-Web Server [icon=file_transfer] [path=Server] [descr=Apache]
- NETWORKING_WWW_SERVER
-
-Groupware [icon=mail] [path=Server] [descr=PHPgroupware]
- NETWORKING_GROUPWARE_SERVER
-
-Firewall/Router [icon=networking] [path=Server] [descr=Internet gateway]
- NETWORKING_FIREWALLING_SERVER
-
-Mail/News [icon=mail] [path=Server] [descr=Postfix mail server, Inn news server]
- NETWORKING_MAIL_SERVER
- NETWORKING_NEWS_SERVER
-
-Directory Server [icon=mail] [path=Server] [descr=LDAP server]
- NETWORKING_LDAP_SERVER
-
-FTP Server [icon=file_transfer] [path=Server] [descr=Wu-FTPd]
- NETWORKING_FILE_TRANSFER_SERVER
-
-DNS/NIS [icon=hardware] [path=Server] [descr=Domain Name and Network Information Server]
- NIS_SERVER
- NETWORKING_DNS_SERVER
-
-File & Printer Sharing Server [icon=archiving] [path=Server] [descr=NFS server, Samba server]
- NETWORKING_FILE_SERVER
-
-Database [icon=archiving] [path=Server] [descr=PostgreSQL or MySQL database server]
- DATABASES
- DATABASES_SERVER
-
- # --- Utilities
-
-SSH server [icon=networking] [path=Utilities] [descr=ssh server]
- NETWORKING_REMOTE_ACCESS_SERVER
-
-Webmin [icon=archiving] [path=Utilities] [descr=webmin remote configuration server]
- WEBMIN
-
-Network Utilities/Monitoring [icon=archiving] [path=Utilities] [descr=Monitoring tools, processes accounting, tcpdump, nmap, ...]
- MONITORING
-
-MandrakeSoft Wizards [icon=archiving] [path=Utilities] [descr=Wizards to configure servers]
- WIZARDS
diff --git a/perl-install/share/consolefonts/Cyr_a8x16 b/perl-install/share/consolefonts/Cyr_a8x16
deleted file mode 100644
index a09ac03d8..000000000
--- a/perl-install/share/consolefonts/Cyr_a8x16
+++ /dev/null
Binary files differ
diff --git a/perl-install/share/consolefonts/lat0-sun16 b/perl-install/share/consolefonts/lat0-sun16
deleted file mode 100644
index 19e3d432e..000000000
--- a/perl-install/share/consolefonts/lat0-sun16
+++ /dev/null
Binary files differ
diff --git a/perl-install/share/consolefonts/lat2-sun16 b/perl-install/share/consolefonts/lat2-sun16
deleted file mode 100644
index 509e5def2..000000000
--- a/perl-install/share/consolefonts/lat2-sun16
+++ /dev/null
Binary files differ
diff --git a/perl-install/share/consolefonts/ruscii_8x16 b/perl-install/share/consolefonts/ruscii_8x16
deleted file mode 100644
index b0513a9db..000000000
--- a/perl-install/share/consolefonts/ruscii_8x16
+++ /dev/null
Binary files differ
diff --git a/perl-install/share/diskdrake.rc b/perl-install/share/diskdrake.rc
deleted file mode 100644
index 317fc2684..000000000
--- a/perl-install/share/diskdrake.rc
+++ /dev/null
@@ -1,43 +0,0 @@
-style "font"
-{
- fontset = "-*-*-medium-r-normal-*-8-*-*-*-*-*-iso8859-1,*-r-*"
-}
-
-style "red" = "font"
-{
- bg[NORMAL] = { 1.0, 0, 0 }
- bg[PRELIGHT] = { 0.9, 0, 0 }
-}
-style "darkred" = "font"
-{
- bg[NORMAL] = { 0.7, 0, 0 }
- bg[PRELIGHT] = { 0.6, 0, 0 }
-}
-style "green" = "font"
-{
- bg[NORMAL] = { 0, 1.0, 0 }
- bg[PRELIGHT] = { 0, 0.9, 0 }
- fg[NORMAL] = { 0, 0, 0 }
-}
-style "blue" = "font"
-{
- bg[NORMAL] = { 0, 0, 1.0 }
- bg[PRELIGHT] = { 0, 0, 0.9 }
-}
-style "white" = "font"
-{
- bg[NORMAL] = { 1.0, 1.0, 1.0 }
- bg[PRELIGHT] = { 0.67, 0.67, 0.67 }
- fg[NORMAL] = { 0, 0, 0 }
-}
-
-widget "*Linux*" style "red"
-widget "*Ext2*" style "red"
-widget "*Journalised FS*" style "darkred"
-widget "*Linux swap*" style "green"
-widget "*Swap*" style "green"
-widget "*FAT*" style "blue"
-widget "*SunOS*" style "blue"
-widget "*NT NTFS*" style "blue"
-widget "*Empty*" style "white"
-widget "*Other*" style "font"
diff --git a/perl-install/share/floppy.png b/perl-install/share/floppy.png
deleted file mode 100644
index 2265e6ec6..000000000
--- a/perl-install/share/floppy.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/share/fonts.tar.bz2 b/perl-install/share/fonts.tar.bz2
deleted file mode 100644
index a663faa8f..000000000
--- a/perl-install/share/fonts.tar.bz2
+++ /dev/null
Binary files differ
diff --git a/perl-install/share/ftin.png b/perl-install/share/ftin.png
deleted file mode 100644
index 3cec3c194..000000000
--- a/perl-install/share/ftin.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/share/ftout.png b/perl-install/share/ftout.png
deleted file mode 100644
index d821716eb..000000000
--- a/perl-install/share/ftout.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/share/gen_locales.pl b/perl-install/share/gen_locales.pl
deleted file mode 100644
index ba0f4784e..000000000
--- a/perl-install/share/gen_locales.pl
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/usr/bin/perl
-
-use MDK::Common;
-use lang;
-
-foreach (lang::list()) {
- my $LANG = lang::lang2LANG($_);
-
- my $c = lang::during_install__lang2charset($_) or next;
- -e "usr/share/locale/$c" or warn("not handled language $_ ($LANG, $c)\n"), next;
- if (my $exist = readlink "usr/share/locale/$LANG") {
- $exist eq $c or die "symlink $LANG already exist and is $exist instead of $c\n";
- } else {
- symlink $c, "usr/share/locale/$LANG" or die "can't create symlink $LANG (for $_)";
- }
-}
diff --git a/perl-install/share/gen_locales.sh b/perl-install/share/gen_locales.sh
deleted file mode 100755
index afd6298c6..000000000
--- a/perl-install/share/gen_locales.sh
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/bin/sh
-
-rm -rf .tmp ; mkdir .tmp ; cd .tmp
-tar xfj ../locales-skeleton.tar.bz2
-
-# locale utf-8
-for i in LC_ADDRESS LC_COLLATE LC_CTYPE LC_IDENTIFICATION LC_MEASUREMENT LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_MESSAGES/SYS_LC_MESSAGES ; do
- install -D -m 644 /usr/share/locale/UTF-8/$i usr/share/locale/UTF-8/$i
-done
-
-# lc_ctype for common encoding
-for i in CP1251 ISO-8859-13 ISO-8859-14 ISO-8859-15 ISO-8859-2 ISO-8859-3 ISO-8859-7 ISO-8859-9 ; do
- f=usr/share/locale/$i/LC_CTYPE
- [ -e /$f ] || { echo missing /$f ; exit 1 ; }
- install -D -m 644 /$f $f
- (cd usr/share/locale/$i ; ln -s ../UTF-8/* . 2>/dev/null)
-done
-
-rm -rf .tmp2 ; mkdir .tmp2 ; cd .tmp2
-for i in hy ja ko th vi ; do
- ii=locales-`echo $i | sed 's/\(..\).*/\1/'`
- rpm2cpio /RPMS/$ii-*.rpm | cpio -id --quiet
- f=usr/share/locale/$i/LC_CTYPE
- [ -e $f ] || { echo missing $f in package $ii ; exit 1 ; }
- install -D -m 644 $f ../$f
- (cd ../usr/share/locale/$i ; ln -s ../UTF-8/* . 2>/dev/null)
- rm -rf *
-done
-cd .. ; rm -rf .tmp2
-
-# special case for chineese (why is it needed?)
-rm -rf .tmp2 ; mkdir .tmp2 ; cd .tmp2
-for i in zh_CN.GB2312 zh_TW.Big5 ; do
- ii=locales-`echo $i | sed 's/\(..\).*/\1/'`
- rpm2cpio /RPMS/$ii-*.rpm | cpio -id --quiet
- for f in LC_ADDRESS LC_COLLATE LC_CTYPE LC_IDENTIFICATION LC_MEASUREMENT LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_MESSAGES/SYS_LC_MESSAGES ; do
- f=usr/share/locale/$i/$f
- [ -e $f ] || { echo missing $f in package $ii ; exit 1 ; }
- install -D -m 644 $f ../$f
- done
- rm -rf *
-done
-cd .. ; rm -rf .tmp2
-
-(cd usr/share/locale ; mv zh_CN.GB2312 GB2312 ; mv zh_TW.Big5 BIG5)
-
-perl -I../.. ../gen_locales.pl || exit 1
-
-
-for i in common C armscii-8 en_US.UTF-8 iso8859-1 iso8859-13 iso8859-14 iso8859-15 iso8859-2 iso8859-3 iso8859-5 iso8859-7 iso8859-9 iso8859-9e ja ko koi8-r koi8-u microsoft-cp1251 microsoft-cp1255 microsoft-cp1256 th_TH vi_VN.tcvn zh_CN zh_TW.big5 ; do
- cp -a /usr/X11R6/lib/X11/locale/$i usr/X11R6/lib/X11/locale
-done
-
-tar cfj ../locales.tar.bz2 usr
-
-cd .. ; rm -rf .tmp
diff --git a/perl-install/share/help.png b/perl-install/share/help.png
deleted file mode 100644
index ddebe33ad..000000000
--- a/perl-install/share/help.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/share/install.rc b/perl-install/share/install.rc
deleted file mode 100644
index b86a22c29..000000000
--- a/perl-install/share/install.rc
+++ /dev/null
@@ -1,21 +0,0 @@
-style "default-font"
-{
- fontset = "-*-*-medium-r-normal-*-12-*-*-*-*-*-iso8859-15"
-}
-
-style "small-font"
-{
- fontset = "-*-*-medium-r-normal-*-8-*-*-*-*-*-iso8859-15"
-}
-
-style "logo" = "background"
-{
- # no background image
- engine "pixmap" { image { function = FLAT_BOX } }
-}
-
-widget "*" style "default-font"
-widget "Steps" style "steps"
-widget "*Steps*" style "small-font"
-widget "*logo*" style "logo"
-
diff --git a/perl-install/share/keyboards.tar.bz2 b/perl-install/share/keyboards.tar.bz2
deleted file mode 100644
index 62939096c..000000000
--- a/perl-install/share/keyboards.tar.bz2
+++ /dev/null
Binary files differ
diff --git a/perl-install/share/keymaps.tar.bz2 b/perl-install/share/keymaps.tar.bz2
deleted file mode 100644
index 8ca03c137..000000000
--- a/perl-install/share/keymaps.tar.bz2
+++ /dev/null
Binary files differ
diff --git a/perl-install/share/keymaps_generate b/perl-install/share/keymaps_generate
deleted file mode 100755
index 0265502c9..000000000
--- a/perl-install/share/keymaps_generate
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/perl
-
-use lib "..";
-use keyboard;
-
-my $dir = "keymaps/usr/share/keymaps";
-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) {
- warn "unknown kmap $kmap\n";
- unlink "$dir/$kmap.bkmap";
- }
-}
-
-system("tar cfj keymaps.tar.bz2 -C keymaps usr") == 0 or die;
-system("rm -rf keymaps");
diff --git a/perl-install/share/kmap2bkmap b/perl-install/share/kmap2bkmap
deleted file mode 100755
index 3aff35c3e..000000000
--- a/perl-install/share/kmap2bkmap
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/perl
-
-use lib "..";
-use c;
-
-my $KMAP_MAGIC = 0x8B39C07F;
-
-BEGIN { @ARGV == 1 or die "usage: kmap2bkmap <keymap>\n" }
-
-system("sudo loadkeys $ARGV[0]") == 0 or die;
-open F, "dumpkeys -n -f |";
-<F> =~ /^keymaps\s+(.*)/ or die;
-foreach (split ',', $1) {
- my @l = /(\d+)-(\d+)/;
- my ($i, $j) = @l ? @l : ($_,$_);
- $keymaps[$_] = 1 foreach $i .. $j;
-}
-
-print pack("I", $KMAP_MAGIC);
-print map { pack "i", $keymaps[$_] || 0 } 0 .. c::MAX_NR_KEYMAPS()-1;
-
-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";
-
-foreach (@L) {
- foreach my $i (0 .. c::NR_KEYS()-1) {
- print pack "s", defined $_->[$i] ? $_->[$i] : 0x200;
- }
-}
-
-exit 0;
diff --git a/perl-install/share/list b/perl-install/share/list
deleted file mode 100644
index 4f5ecc6c2..000000000
--- a/perl-install/share/list
+++ /dev/null
@@ -1,173 +0,0 @@
-/bin/ash
-/bin/consolechars
-/bin/cpio
-/bin/gzip
-/lib/libnss_nis.so.2
-/lib/libnss_files.so.2
-/lib/libnss_dns.so.2
-/lib/libresolv.so.2
-/etc/protocols
-/etc/imrc
-/etc/im_palette.pal
-/sbin/badblocks
-/sbin/e2fsck
-/sbin/tune2fs
-/sbin/fdisk
-/sbin/insmod
-/sbin/losetup
-/sbin/mke2fs
-/sbin/modinfo
-/sbin/resize2fs
-/sbin/dumpe2fs
-/sbin/modinfo
-/usr/X11R6/lib/modules/xf86Wacom.so
-/usr/bin/bzip2
-/usr/bin/fb2png
-/usr/bin/packdrake
-/usr/bin/parsehdlist
-/usr/bin/perl
-/usr/lib/gconv/BIG5.so
-/usr/lib/gconv/EUC-JP.so
-/usr/lib/gconv/libGB.so
-/usr/lib/gconv/libJIS.so
-/usr/lib/gconv/libKSC.so
-/usr/lib/gconv/EUC-KR.so
-/usr/lib/gconv/ISO8859-15.so
-/usr/lib/gconv/ISO8859-14.so
-/usr/lib/gconv/ISO8859-13.so
-/usr/lib/gconv/ISO8859-9E.so
-/usr/lib/gconv/ISO8859-9.so
-/usr/lib/gconv/ISO8859-7.so
-/usr/lib/gconv/ISO8859-5.so
-/usr/lib/gconv/ISO8859-3.so
-/usr/lib/gconv/ISO8859-2.so
-/usr/lib/gconv/ISO8859-1.so
-/usr/lib/gconv/KOI8-K.so
-/usr/lib/gconv/KOI8-U.so
-/usr/lib/gconv/KOI8-R.so
-/usr/lib/gconv/TIS-620.so
-/usr/lib/gconv/CP1251.so
-/usr/lib/gconv/GEORGIAN-PS.so
-/usr/lib/gconv/EUC-CN.so
-/usr/lib/gconv/gconv-modules
-/usr/lib/gtk/themes/engines/libpixmap.so
-/usr/lib/gtk/themes/engines/libpixmap.la
-/usr/lib/libimlib-png.so
-/usr/lib/perl5/PERL_VERSION/AutoLoader.pm
-/usr/lib/perl5/PERL_VERSION/Carp.pm
-/usr/lib/perl5/PERL_VERSION/Carp/Heavy.pm
-/usr/lib/perl5/PERL_VERSION/Exporter.pm
-/usr/lib/perl5/PERL_VERSION/Exporter/Heavy.pm
-/usr/lib/perl5/PERL_VERSION/FileHandle.pm
-/usr/lib/perl5/PERL_VERSION/SelectSaver.pm
-/usr/lib/perl5/PERL_VERSION/SelfLoader.pm
-/usr/lib/perl5/PERL_VERSION/Symbol.pm
-/usr/lib/perl5/PERL_VERSION/Time/Local.pm
-/usr/lib/perl5/PERL_VERSION/IO/Socket/INET.pm
-/usr/lib/perl5/PERL_VERSION/IO/Socket/UNIX.pm
-/usr/lib/perl5/PERL_VERSION/dumpvar.pl
-/usr/lib/perl5/PERL_VERSION/warnings.pm
-/usr/lib/perl5/PERL_VERSION/warnings/register.pm
-/usr/lib/perl5/PERL_VERSION/ARCH-linux/File/Glob.pm
-/usr/lib/perl5/PERL_VERSION/ARCH-linux/auto/File/Glob/Glob.so
-/usr/lib/perl5/PERL_VERSION/ARCH-linux/Config.pm
-/usr/lib/perl5/PERL_VERSION/ARCH-linux/Data/Dumper.pm
-/usr/lib/perl5/PERL_VERSION/ARCH-linux/DynaLoader.pm
-/usr/lib/perl5/PERL_VERSION/ARCH-linux/Errno.pm
-/usr/lib/perl5/PERL_VERSION/ARCH-linux/Fcntl.pm
-/usr/lib/perl5/PERL_VERSION/ARCH-linux/XSLoader.pm
-/usr/lib/perl5/PERL_VERSION/ARCH-linux/auto/Fcntl/Fcntl.so
-/usr/lib/perl5/PERL_VERSION/ARCH-linux/IO.pm
-/usr/lib/perl5/PERL_VERSION/ARCH-linux/IO/File.pm
-/usr/lib/perl5/PERL_VERSION/ARCH-linux/IO/Handle.pm
-/usr/lib/perl5/PERL_VERSION/ARCH-linux/IO/Seekable.pm
-/usr/lib/perl5/PERL_VERSION/ARCH-linux/IO/Select.pm
-/usr/lib/perl5/PERL_VERSION/ARCH-linux/IO/Socket.pm
-/usr/lib/perl5/PERL_VERSION/ARCH-linux/Socket.pm
-/usr/lib/perl5/PERL_VERSION/ARCH-linux/_h2ph_pre.ph
-/usr/lib/perl5/PERL_VERSION/ARCH-linux/asm/unistd.ph
-/usr/lib/perl5/PERL_VERSION/ARCH-linux/auto/Data/Dumper/Dumper.so
-/usr/lib/perl5/PERL_VERSION/ARCH-linux/auto/IO/IO.so
-/usr/lib/perl5/PERL_VERSION/ARCH-linux/auto/Socket/Socket.so
-/usr/lib/perl5/PERL_VERSION/ARCH-linux/bits/syscall.ph
-/usr/lib/perl5/PERL_VERSION/ARCH-linux/sys/syscall.ph
-/usr/lib/perl5/PERL_VERSION/ARCH-linux/syscall.ph
-/usr/lib/perl5/PERL_VERSION/ARCH-linux/auto/DynaLoader/dl_findfile.al
-/usr/lib/perl5/PERL_VERSION/ARCH-linux/lib.pm
-/usr/lib/perl5/PERL_VERSION/bytes.pm
-/usr/lib/perl5/PERL_VERSION/integer.pm
-/usr/lib/perl5/PERL_VERSION/overload.pm
-/usr/lib/perl5/PERL_VERSION/strict.pm
-/usr/lib/perl5/PERL_VERSION/vars.pm
-/usr/lib/perl5/PERL_VERSION/Net/Cmd.pm
-/usr/lib/perl5/PERL_VERSION/Net/Config.pm
-/usr/lib/perl5/PERL_VERSION/Net/FTP.pm
-/usr/lib/perl5/PERL_VERSION/Net/FTP/A.pm
-/usr/lib/perl5/PERL_VERSION/Net/FTP/I.pm
-/usr/lib/perl5/PERL_VERSION/Net/FTP/dataconn.pm
-/usr/lib/perl5/PERL_VERSION/Net/Netrc.pm
-/usr/lib/perl5/vendor_perl/PERL_VERSION/MDK/Common/DataStructure.pm
-/usr/lib/perl5/vendor_perl/PERL_VERSION/MDK/Common/File.pm
-/usr/lib/perl5/vendor_perl/PERL_VERSION/MDK/Common/Func.pm
-/usr/lib/perl5/vendor_perl/PERL_VERSION/MDK/Common/Globals.pm
-/usr/lib/perl5/vendor_perl/PERL_VERSION/MDK/Common/Math.pm
-/usr/lib/perl5/vendor_perl/PERL_VERSION/MDK/Common/String.pm
-/usr/lib/perl5/vendor_perl/PERL_VERSION/MDK/Common/System.pm
-/usr/lib/perl5/vendor_perl/PERL_VERSION/MDK/Common/Various.pm
-/usr/lib/perl5/vendor_perl/PERL_VERSION/MDK/Common.pm
-/usr/lib/perl5/vendor_perl/PERL_VERSION/ARCH-linux/URPM.pm
-/usr/lib/perl5/vendor_perl/PERL_VERSION/ARCH-linux/URPM/Resolve.pm
-/usr/lib/perl5/vendor_perl/PERL_VERSION/ARCH-linux/auto/URPM/URPM.so
-/usr/lib/perl5/vendor_perl/PERL_VERSION/ARCH-linux/packdrake.pm
-/usr/lib/perl5/vendor_perl/PERL_VERSION/ARCH-linux/Gtk.pm
-/usr/lib/perl5/vendor_perl/PERL_VERSION/ARCH-linux/Gtk/Types.pm
-/usr/lib/perl5/vendor_perl/PERL_VERSION/ARCH-linux/Gtk/Gdk/ImlibImage.pm
-/usr/lib/perl5/vendor_perl/PERL_VERSION/ARCH-linux/auto/Gtk/Gtk.so
-/usr/lib/perl5/vendor_perl/PERL_VERSION/ARCH-linux/auto/Gtk/Gdk/ImlibImage/ImlibImage.so
-/usr/lib/rpm/rpmrc
-/usr/lib/rpm/macros
-/sbin/rescuept
-/usr/share/icons/amusement_section.png
-/usr/share/icons/arcade_section.png
-/usr/share/icons/cd_burning_section.png
-/usr/share/icons/chat_section.png
-/usr/share/icons/default_section.png
-/usr/share/icons/documentation_section.png
-/usr/share/icons/gnome.xpm
-/usr/share/icons/graphics_section.png
-/usr/share/icons/kde.xpm
-/usr/share/icons/multimedia_section.png
-/usr/share/icons/development_section.png
-/usr/share/icons/networking_section.png
-/usr/share/icons/mail_section.png
-/usr/share/icons/archiving_section.png
-/usr/share/icons/hardware_section.png
-/usr/share/icons/file_transfer_section.png
-/usr/share/icons/office_section.png
-/usr/share/icons/remote_access_section.png
-/usr/share/icons/sciences_section.png
-/usr/share/icons/video_section.png
-/usr/share/icons/windowmanager_section.png
-/usr/share/icons/editors_section.png
-/usr/share/icons/terminals_section.png
-/usr/share/icons/configuration_section.png
-/usr/share/ldetect-lst/Cards+
-/usr/share/ldetect-lst/CardsNames
-/usr/share/ldetect-lst/MonitorsDB
-/usr/share/ldetect-lst/isdn.db
-/usr/share/ldetect-lst/pcitable
-/usr/share/ldetect-lst/usbtable
-
-/sbin/pvcreate
-/sbin/pvdisplay
-/sbin/vgchange
-/sbin/vgcreate
-/sbin/vgdisplay
-/sbin/vgextend
-/sbin/vgremove
-/sbin/vgscan
-/sbin/lvcreate
-/sbin/lvdisplay
-/sbin/lvextend
-/sbin/lvreduce
-/sbin/lvremove
diff --git a/perl-install/share/list.alpha b/perl-install/share/list.alpha
deleted file mode 100644
index 7ce1a1fee..000000000
--- a/perl-install/share/list.alpha
+++ /dev/null
@@ -1,13 +0,0 @@
-/sbin/mkraid
-/sbin/mkreiserfs
-/sbin/raidstart
-/sbin/ifport
-/sbin/mkdosfs
-/usr/X11R6/bin/XF86_FBDev
-/usr/X11R6/bin/XF86_VGA16
-/usr/X11R6/bin/XF86_3DLabs
-/usr/X11R6/bin/XF86_SVGA
-/usr/X11R6/bin/XF86_TGA
-/usr/X11R6/bin/XF86_S3
-/usr/X11R6/bin/XF86_Mach64
-/usr/X11R6/bin/xmodmap
diff --git a/perl-install/share/list.i386 b/perl-install/share/list.i386
deleted file mode 100644
index d7735f29c..000000000
--- a/perl-install/share/list.i386
+++ /dev/null
@@ -1,11 +0,0 @@
-/sbin/mkraid
-/sbin/mkreiserfs
-/sbin/mkfs.jfs
-/sbin/mkfs.xfs
-/sbin/raidstart
-/sbin/ifport
-/sbin/mkdosfs
-/sbin/resize_reiserfs
-/usr/X11R6/bin/XF86_FBDev
-/usr/X11R6/bin/XF86_VGA16
-/usr/X11R6/bin/xmodmap
diff --git a/perl-install/share/list.ia64 b/perl-install/share/list.ia64
deleted file mode 100644
index 9bbf999cb..000000000
--- a/perl-install/share/list.ia64
+++ /dev/null
@@ -1,119 +0,0 @@
-/sbin/mkraid
-/sbin/mkreiserfs
-/sbin/mkfs.xfs
-/sbin/raidstart
-/sbin/mkdosfs
-/sbin/resize_reiserfs
-/usr/bin/strace
-/var/log/XFree86.0.log
-/usr/X11R6/bin/XFree86
-/usr/X11R6/bin/xmodmap
-/usr/X11R6/lib/modules/
-/usr/X11R6/lib/modules/codeconv
-/usr/X11R6/lib/modules/codeconv/libARABIC.a
-/usr/X11R6/lib/modules/codeconv/libARMSCII8.a
-/usr/X11R6/lib/modules/codeconv/libBIG5.a
-/usr/X11R6/lib/modules/codeconv/libDOSENCODING.a
-/usr/X11R6/lib/modules/codeconv/libGB2312.a
-/usr/X11R6/lib/modules/codeconv/libGEORGIAN.a
-/usr/X11R6/lib/modules/codeconv/libISO8859_1.a
-/usr/X11R6/lib/modules/codeconv/libISO8859_10.a
-/usr/X11R6/lib/modules/codeconv/libISO8859_11.a
-/usr/X11R6/lib/modules/codeconv/libISO8859_14.a
-/usr/X11R6/lib/modules/codeconv/libISO8859_15.a
-/usr/X11R6/lib/modules/codeconv/libISO8859_2.a
-/usr/X11R6/lib/modules/codeconv/libISO8859_3.a
-/usr/X11R6/lib/modules/codeconv/libISO8859_4.a
-/usr/X11R6/lib/modules/codeconv/libISO8859_5.a
-/usr/X11R6/lib/modules/codeconv/libISO8859_6.a
-/usr/X11R6/lib/modules/codeconv/libISO8859_7.a
-/usr/X11R6/lib/modules/codeconv/libISO8859_8.a
-/usr/X11R6/lib/modules/codeconv/libISO8859_9.a
-/usr/X11R6/lib/modules/codeconv/libJISX0201.a
-/usr/X11R6/lib/modules/codeconv/libJISX0208.a
-/usr/X11R6/lib/modules/codeconv/libJISX0212.a
-/usr/X11R6/lib/modules/codeconv/libKOI8.a
-/usr/X11R6/lib/modules/codeconv/libKSC5601.a
-/usr/X11R6/lib/modules/codeconv/libKSCJOHAB.a
-/usr/X11R6/lib/modules/codeconv/libMULEENCODING.a
-/usr/X11R6/lib/modules/codeconv/libTCVN.a
-/usr/X11R6/lib/modules/codeconv/libVISCII.a
-/usr/X11R6/lib/modules/dri
-/usr/X11R6/lib/modules/dri/gamma_dri.so
-/usr/X11R6/lib/modules/dri/i810_dri.so
-/usr/X11R6/lib/modules/dri/mga_dri.so
-/usr/X11R6/lib/modules/dri/r128_dri.so
-/usr/X11R6/lib/modules/dri/sis_dri.so
-/usr/X11R6/lib/modules/drivers
-/usr/X11R6/lib/modules/drivers/ati_drv.o
-/usr/X11R6/lib/modules/drivers/atimisc_drv.o
-/usr/X11R6/lib/modules/drivers/fbdev_drv.o
-/usr/X11R6/lib/modules/drivers/glint_drv.o
-/usr/X11R6/lib/modules/drivers/i740_drv.o
-/usr/X11R6/lib/modules/drivers/linux
-/usr/X11R6/lib/modules/drivers/linux/v4l_drv.o
-/usr/X11R6/lib/modules/drivers/mga_drv.o
-/usr/X11R6/lib/modules/drivers/nv_drv.o
-/usr/X11R6/lib/modules/drivers/r128_drv.o
-/usr/X11R6/lib/modules/drivers/radeon_drv.o
-/usr/X11R6/lib/modules/drivers/rendition_drv.o
-/usr/X11R6/lib/modules/drivers/s3virge_drv.o
-/usr/X11R6/lib/modules/drivers/sis_drv.o
-/usr/X11R6/lib/modules/drivers/tdfx_drv.o
-/usr/X11R6/lib/modules/drivers/vga_drv.o
-/usr/X11R6/lib/modules/extensions
-/usr/X11R6/lib/modules/extensions/libGLcore.a
-/usr/X11R6/lib/modules/extensions/libdbe.a
-/usr/X11R6/lib/modules/extensions/libdri.a
-/usr/X11R6/lib/modules/extensions/libextmod.a
-/usr/X11R6/lib/modules/extensions/libglx.a
-/usr/X11R6/lib/modules/extensions/librecord.a
-/usr/X11R6/lib/modules/extensions/libxie.a
-/usr/X11R6/lib/modules/fonts
-/usr/X11R6/lib/modules/fonts/libbitmap.a
-/usr/X11R6/lib/modules/fonts/libfreetype.a
-/usr/X11R6/lib/modules/fonts/libspeedo.a
-/usr/X11R6/lib/modules/fonts/libtype1.a
-/usr/X11R6/lib/modules/fonts/libxtt.a
-/usr/X11R6/lib/modules/input
-/usr/X11R6/lib/modules/input/citron_drv.o
-/usr/X11R6/lib/modules/input/digitaledge_drv.o
-/usr/X11R6/lib/modules/input/dynapro_drv.o
-/usr/X11R6/lib/modules/input/elographics_drv.o
-/usr/X11R6/lib/modules/input/microtouch_drv.o
-/usr/X11R6/lib/modules/input/mouse_drv.o
-/usr/X11R6/lib/modules/input/mutouch_drv.o
-/usr/X11R6/lib/modules/input/spaceorb_drv.o
-/usr/X11R6/lib/modules/input/summa_drv.o
-/usr/X11R6/lib/modules/input/void_drv.o
-/usr/X11R6/lib/modules/input/wacom_drv.o
-/usr/X11R6/lib/modules/libafb.a
-/usr/X11R6/lib/modules/libcfb.a
-/usr/X11R6/lib/modules/libcfb16.a
-/usr/X11R6/lib/modules/libcfb24.a
-/usr/X11R6/lib/modules/libcfb32.a
-/usr/X11R6/lib/modules/libddc.a
-/usr/X11R6/lib/modules/libfb.a
-/usr/X11R6/lib/modules/libi2c.a
-/usr/X11R6/lib/modules/libint10.a
-/usr/X11R6/lib/modules/libmfb.a
-/usr/X11R6/lib/modules/libpcidata.a
-/usr/X11R6/lib/modules/librac.a
-/usr/X11R6/lib/modules/libramdac.a
-/usr/X11R6/lib/modules/libscanpci.a
-/usr/X11R6/lib/modules/libshadow.a
-/usr/X11R6/lib/modules/libshadowfb.a
-/usr/X11R6/lib/modules/libvbe.a
-/usr/X11R6/lib/modules/libvgahw.a
-/usr/X11R6/lib/modules/libxaa.a
-/usr/X11R6/lib/modules/libxf1bpp.a
-/usr/X11R6/lib/modules/libxf24_32bpp.a
-/usr/X11R6/lib/modules/libxf4bpp.a
-/usr/X11R6/lib/modules/libxf8_16bpp.a
-/usr/X11R6/lib/modules/libxf8_32bpp.a
-/usr/X11R6/lib/modules/linux
-/usr/X11R6/lib/modules/linux/libdrm.a
-/usr/X11R6/lib/modules/linux/libfbdevhw.a
-/usr/X11R6/lib/modules/v10002d.uc
-/usr/X11R6/lib/modules/v20002d.uc
-/usr/lib/perl5/PERL_VERSION/ARCH-linux/asm/break.ph
diff --git a/perl-install/share/list.ppc b/perl-install/share/list.ppc
deleted file mode 100644
index 332c97dc2..000000000
--- a/perl-install/share/list.ppc
+++ /dev/null
@@ -1,15 +0,0 @@
-/sbin/mkraid
-/sbin/mkreiserfs
-/sbin/raidstart
-/usr/bin/hformat
-/usr/bin/hmount
-/usr/bin/humount
-/usr/bin/hattrib
-/usr/bin/hcopy
-/usr/bin/hcd
-/sbin/pdisk
-/usr/X11R6/bin/Xpmac
-/usr/X11R6/bin/xmodmap
-/sbin/mkfs.xfs
-/sbin/mkfs.jfs
-
diff --git a/perl-install/share/list.sparc b/perl-install/share/list.sparc
deleted file mode 100644
index b597a10ce..000000000
--- a/perl-install/share/list.sparc
+++ /dev/null
@@ -1,84 +0,0 @@
-/bin/cpio
-/lib/libnss_nis.so.2
-/lib/libnss_files.so.2
-/lib/libnss_dns.so.2
-/lib/libresolv.so.2
-/etc/protocols
-/sbin/mkreiserfs
-/sbin/fdisk
-/sbin/ifport
-/sbin/insmod
-/sbin/mkraid
-/sbin/rmmod
-/sbin/mkdosfs
-/sbin/mke2fs
-/sbin/raidstart
-/sbin/losetup
-/usr/bin/genromfs
-/usr/bin/bzip2
-/usr/bin/perl
-/usr/lib/libimlib-png.so
-/usr/lib/gtk/themes/engines/libpixmap.so
-/usr/lib/gtk/themes/engines/libpixmap.la
-/usr/lib/libimlib-png.so
-/usr/lib/perl5/PERL_VERSION/AutoLoader.pm
-/usr/lib/perl5/PERL_VERSION/Carp.pm
-/usr/lib/perl5/PERL_VERSION/sparc-linux/Data/Dumper.pm
-/usr/lib/perl5/PERL_VERSION/Exporter.pm
-/usr/lib/perl5/PERL_VERSION/Carp/Heavy.pm
-/usr/lib/perl5/PERL_VERSION/Exporter/Heavy.pm
-/usr/lib/perl5/PERL_VERSION/FileHandle.pm
-/usr/lib/perl5/PERL_VERSION/SelectSaver.pm
-/usr/lib/perl5/PERL_VERSION/SelfLoader.pm
-/usr/lib/perl5/PERL_VERSION/Symbol.pm
-/usr/lib/perl5/PERL_VERSION/Time/Local.pm
-/usr/lib/perl5/PERL_VERSION/dumpvar.pl
-/usr/lib/perl5/PERL_VERSION/warnings.pm
-/usr/lib/perl5/PERL_VERSION/warnings/register.pm
-/usr/lib/perl5/PERL_VERSION/sparc-linux/File/Glob.pm
-/usr/lib/perl5/PERL_VERSION/sparc-linux/auto/File/Glob/Glob.bs
-/usr/lib/perl5/PERL_VERSION/sparc-linux/auto/File/Glob/Glob.so
-/usr/lib/perl5/PERL_VERSION/sparc-linux/Config.pm
-/usr/lib/perl5/PERL_VERSION/sparc-linux/XSLoader.pm
-/usr/lib/perl5/PERL_VERSION/sparc-linux/DynaLoader.pm
-/usr/lib/perl5/PERL_VERSION/sparc-linux/Fcntl.pm
-/usr/lib/perl5/PERL_VERSION/sparc-linux/auto/Fcntl/Fcntl.bs
-/usr/lib/perl5/PERL_VERSION/sparc-linux/auto/Fcntl/Fcntl.so
-/usr/lib/perl5/PERL_VERSION/sparc-linux/IO/File.pm
-/usr/lib/perl5/PERL_VERSION/sparc-linux/IO/Handle.pm
-/usr/lib/perl5/PERL_VERSION/sparc-linux/IO/Seekable.pm
-/usr/lib/perl5/PERL_VERSION/sparc-linux/IO/Socket.pm
-/usr/lib/perl5/PERL_VERSION/sparc-linux/Socket.pm
-/usr/lib/perl5/PERL_VERSION/sparc-linux/_h2ph_pre.ph
-/usr/lib/perl5/PERL_VERSION/sparc-linux/asm/unistd.ph
-/usr/lib/perl5/PERL_VERSION/sparc-linux/asm-sparc/unistd.ph
-/usr/lib/perl5/PERL_VERSION/sparc-linux/asm-sparc64/unistd.ph
-/usr/lib/perl5/PERL_VERSION/sparc-linux/auto/Data/Dumper/Dumper.bs
-/usr/lib/perl5/PERL_VERSION/sparc-linux/auto/Data/Dumper/Dumper.so
-/usr/lib/perl5/PERL_VERSION/sparc-linux/auto/IO/IO.so
-/usr/lib/perl5/PERL_VERSION/sparc-linux/auto/Socket/Socket.bs
-/usr/lib/perl5/PERL_VERSION/sparc-linux/auto/Socket/Socket.so
-/usr/lib/perl5/PERL_VERSION/sparc-linux/bits/syscall.ph
-/usr/lib/perl5/PERL_VERSION/sparc-linux/sys/syscall.ph
-/usr/lib/perl5/PERL_VERSION/sparc-linux/syscall.ph
-/usr/lib/perl5/PERL_VERSION/sparc-linux/auto/DynaLoader/dl_findfile.al
-/usr/lib/perl5/PERL_VERSION/lib.pm
-/usr/lib/perl5/PERL_VERSION/overload.pm
-/usr/lib/perl5/PERL_VERSION/strict.pm
-/usr/lib/perl5/PERL_VERSION/vars.pm
-/usr/lib/perl5/site_perl/PERL_VERSION/sparc-linux/Gtk.pm
-/usr/lib/perl5/site_perl/PERL_VERSION/sparc-linux/Gtk/Types.pm
-/usr/lib/perl5/site_perl/PERL_VERSION/sparc-linux/Net/Cmd.pm
-/usr/lib/perl5/site_perl/PERL_VERSION/sparc-linux/Net/Config.pm
-/usr/lib/perl5/site_perl/PERL_VERSION/sparc-linux/Net/FTP.pm
-/usr/lib/perl5/site_perl/PERL_VERSION/sparc-linux/Net/FTP/A.pm
-/usr/lib/perl5/site_perl/PERL_VERSION/sparc-linux/Net/FTP/I.pm
-/usr/lib/perl5/site_perl/PERL_VERSION/sparc-linux/Net/FTP/dataconn.pm
-/usr/lib/perl5/site_perl/PERL_VERSION/sparc-linux/Net/Netrc.pm
-/usr/lib/perl5/site_perl/PERL_VERSION/sparc-linux/auto/Gtk/Gtk.bs
-/usr/lib/perl5/site_perl/PERL_VERSION/sparc-linux/auto/Gtk/Gtk.so
-/usr/lib/rpm/rpmrc
-/usr/X11R6/bin/Xsun24
-/usr/X11R6/bin/XF86_Mach64
-/usr/X11R6/bin/XF86_3DLabs
-/usr/X11R6/bin/xmodmap
diff --git a/perl-install/share/locales-skeleton.tar.bz2 b/perl-install/share/locales-skeleton.tar.bz2
deleted file mode 100644
index 308398e58..000000000
--- a/perl-install/share/locales-skeleton.tar.bz2
+++ /dev/null
Binary files differ
diff --git a/perl-install/share/logo-mandrake.png b/perl-install/share/logo-mandrake.png
deleted file mode 100644
index c4ae631af..000000000
--- a/perl-install/share/logo-mandrake.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/share/makedev.sh b/perl-install/share/makedev.sh
deleted file mode 100755
index e9dccaff2..000000000
--- a/perl-install/share/makedev.sh
+++ /dev/null
@@ -1,89 +0,0 @@
-#!/bin/sh
-#
-# $Id$
-#
-# This script creates all ISDN devices under /dev .
-# Many/most distributions don't include these devices.
-
-echo -e "Creating device inodes ... \c"
-
-if [ $# = 1 ] ; then
- DEV=$1/dev
-else
- DEV=/dev
-fi
-
-MAJ=45
-MIN=0
-rm -f $DEV/isdnctrl* $DEV/ippp*
-while [ $MIN -lt 64 ] ; do
- mknod -m 600 $DEV/isdn$MIN c $MAJ $MIN
- mknod -m 660 $DEV/isdnctrl$MIN c $MAJ `expr $MIN + 64`
- mknod -m 600 $DEV/ippp$MIN c $MAJ `expr $MIN + 128`
- MIN=`expr $MIN + 1`
-done
-if grep '^pppusers:' /etc/group > /dev/null
-then # RH 5 standard
- chgrp pppusers $DEV/isdnctrl* $DEV/ippp*
-elif grep '^dialout:' /etc/group > /dev/null
-then # Debian/SuSE standard
- chgrp dialout $DEV/isdnctrl* $DEV/ippp*
-fi
-rm -f $DEV/isdninfo
-mknod -m 444 $DEV/isdninfo c $MAJ 255
-ln -sf $DEV/isdnctrl0 $DEV/isdnctrl
-
-MAJ=43
-MIN=0
-rm -f $DEV/ttyI*
-while [ $MIN -lt 64 ] ; do
- mknod -m 666 $DEV/ttyI$MIN c $MAJ $MIN
- MIN=`expr $MIN + 1`
-done
-
-MAJ=44
-MIN=0
-rm -f $DEV/cui*
-while [ $MIN -lt 64 ] ; do
- mknod -m 666 $DEV/cui$MIN c $MAJ $MIN
- MIN=`expr $MIN + 1`
-done
-
-if grep '^dialout:' /etc/group > /dev/null
-then # Debian/SuSE standard
- chgrp dialout $DEV/ttyI* $DEV/cui*
-fi
-
-MAJ=68
-MIN=0
-rm -f $DEV/capi20*
-mknod -m 666 $DEV/capi20 c $MAJ 0
-mknod -m 666 $DEV/capi20.00 c $MAJ 1
-mknod -m 666 $DEV/capi20.01 c $MAJ 2
-mknod -m 666 $DEV/capi20.02 c $MAJ 3
-mknod -m 666 $DEV/capi20.03 c $MAJ 4
-mknod -m 666 $DEV/capi20.04 c $MAJ 5
-mknod -m 666 $DEV/capi20.05 c $MAJ 6
-mknod -m 666 $DEV/capi20.06 c $MAJ 7
-mknod -m 666 $DEV/capi20.07 c $MAJ 8
-mknod -m 666 $DEV/capi20.08 c $MAJ 9
-mknod -m 666 $DEV/capi20.09 c $MAJ 10
-mknod -m 666 $DEV/capi20.10 c $MAJ 11
-mknod -m 666 $DEV/capi20.11 c $MAJ 12
-mknod -m 666 $DEV/capi20.12 c $MAJ 13
-mknod -m 666 $DEV/capi20.13 c $MAJ 14
-mknod -m 666 $DEV/capi20.14 c $MAJ 15
-mknod -m 666 $DEV/capi20.15 c $MAJ 16
-mknod -m 666 $DEV/capi20.16 c $MAJ 17
-mknod -m 666 $DEV/capi20.17 c $MAJ 18
-mknod -m 666 $DEV/capi20.18 c $MAJ 19
-mknod -m 666 $DEV/capi20.19 c $MAJ 20
-
-if grep '^dialout:' /etc/group > /dev/null
-then # Debian/SuSE standard
- chgrp dialout $DEV/capi20 $DEV/capi20.??
-fi
-rm -f $DEV/isdnctrl
-ln -s $DEV/isdnctrl1 $DEV/isdnctrl
-
-echo "done."
diff --git a/perl-install/share/po/Changelog b/perl-install/share/po/Changelog
deleted file mode 100644
index fcb677e9a..000000000
--- a/perl-install/share/po/Changelog
+++ /dev/null
@@ -1,249 +0,0 @@
-2002-05-14 Arkadiusz Lipiec <alipiec@elka.pw.edu.pl>
- * pl.po: finished translation and corrected many entries
-
-2001-03-14 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * i18n_compssUsers: improved the script to not include path=
- lines
-
-2000-10-03 Guillaume Cottenceau <gc@mandrakesoft.com>
-
- * fr.po: fixed bug #518 and fixed other misc errors
-
-2000-09-16 Pixel <pixel@mandrakesoft.com>
- * de.po: fix translation of "Size: %d KB\n" (was MB instead of KB)
-
-2000-04-28 Stefan Siegel <siegel@linux-mandrake.com>
- * de.po: Update German File
-
-2000-04-18 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * cy.po: There is now a Welsh file, Thanks Dafydd !
- * da.po: Updated Danish file
-
-2000-04-04 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * lv.po: Added Latvian file; now we are the very first to have
- Latvian language :)
-
-2000-03-26 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * sk.po: Slovakian translation is now mantained and updated
-
-2000-01-10 Pixel <pixel@mandrakesoft.com>
-
- * po/Changelog: remove the paragraph which was removed from
- help.pm in br.po cs.po el.po et.po gl.po ro.po ru.po tr.po
-
-2000-01-06 Franēois PONS <fpons@mandrakesoft.com>
- * it.po: updated by Maurizio.
-
-2000-01-06 David BAUDENS <baudens@mandrakesoft.com>
- * fr.po: updated
-
-2000-01-05 Pixel <pixel@mandrakesoft.com>
- * *.po: changed the crypto message (french address in usa, and
- removed a paragraph)
-
-2000-01-03 Pablo Saratxaga <pablo@mandrakesoft.com>
- * *.po: merged some strigns from gnorpm to help transaltiosn fo
- rpmdrake new strings
-
-2000-01-03 Pablo Saratxaga <pablo@mandrakesoft.com>
- * no.po: updated Norwegian file
- * id.po: updated Indonesian file
- * hr.po: updated Croatian file
- * da.po: updated Danish file
- * et.po: updated Estonian file
-
-2000-01-01 Pablo Saratxaga <pablo@mandrakesoft.com>
- Happy New Year to all !
- * es.po: completed Spanish file
- * zh_CN.po: created a GB2312 version by converting the Big5 one
- however a real mantainer for a GB2312 version is still wanted
- * ca.po: the first one to be updated after Y2K :)
-
-1999-12-30 Pablo Saratxaga <pablo@mandrakesoft.com>
- * zh_TW.Big5.po: uddated chinese file
- * it.po: updated the Italian file
- * es.po: completed spanish file
- * br.po: updated Britton file
- * ja.po: updated Japanese file
-
-1999-12-29 Pablo Saratxaga <pablo@mandrakesoft.com>
- * no.po: completed Norwegian file
- * eo.po: Completed esperanto file
- * sv.po: updated Swedish file
- * hu.po: compelted Hungarian file
-
-1999-12-27 Pablo Saratxaga <pablo@mandrakesoft.com>
- * ru.po: updated Russian file
- * id.po: completed Indonesian file
- * et.po: Estonian files fixes
- * no.po: completed file
- * et.po: completed file
- * lt.po: updated Lithuanian file
- * da.po: completed Danish file
- * ja.po: updated Japanese file
-
-1999-12-24 Pablo Saratxaga <pablo@mandrakesoft.com>
- * lt.po: updated Lithuanian file
- * *.po: new strings have been added...
-
-1999-12-23 Pablo Saratxaga <pablo@mandrakesoft.com>
- * eo.po: completed esperanto file
- * hr.po: updated Croatian file
- * zh_TW.Big5: updated chinese file
- * id.po: completed Indonesian file
- * et.po: completed Estonian file
- * sv.po: updated swedish file
- * da.po: completed Danish file
- * bg.po: updated Bulgarian file
- * sr.po: updated serbian file
- * no.po: completed norwegian file
-
-1999-12-22 Pablo Saratxaga <pablo@mandrakesoft.com>
- * de.po: update from Stefan Siegel <siegel@informatik.uni-kl.de>
- * bg.po: updated Bulgarian file
-
-1999-12-16 Pablo Saratxaga <pablo@mandrakesoft.com>
- * *.po: updated po files
- * ja.po: added japanese file
-
-1999-12-12 Pablo Saratxaga <pablo@mandrakesoft.com>
- * pt_BR.po: added portuguese file from Andrei <andreib@zaz.com.br>
-
-1999-12-10 Pablo Saratxaga <pablo@mandrakesoft.com>
- * et.po: completed 100% the Estonian file
-
-1999-12-09 Pablo Saratxaga <pablo@mandrakesoft.com>
- * th.po: Thai file from Kan Yuenyong <kan@kaiwal.com>
-
-1999-12-07 Pablo Saratxaga <pablo@mandrakesoft.com>
- * ro.po: did 'ispell -d romanian ro.po', I hope that improves the
- lack of 8 bit letters; but a real mantainer is needed.
-
-1999-12-02 Pablo Saratxaga <pablo@mandrakesoft.com>
- * es.po, ca.po, no.po, id.po: Completed Spanish, Catalan,
- Norwegian and Indonesian language files.
- * hu.po: Update of Hungarian file (60% done)
-
-1999-11-30 Pablo Saratxaga <pablo@mandrakesoft.com>
- * hu.po: added Hungarian language file
-
-1999-11-26 Pablo Saratxaga <pablo@mandrakesoft.com>
- * no.po: updated Norwegian file
- * ca.po: added beginnign of Catalan file from SoftCatalą
-
-1999-11-25 Pablo Saratxaga <pablo@mandrakesoft.com>
- * *.po: corrected a typo ( s/Size: %d/Size: %s/ )
- * de.po: updated German file
- * id.po: updated Indonesian file
-
-1999-11-24 Pablo Saratxaga <pablo@mandrakesoft.com>
- * bg.po: added Bulgarian file from Elena Radåva <ely@triada.bg>
-
-1999-11-19 Pablo Saratxaga <pablo@mandrakesoft.com>
- * uk.po: added Ukrainian file
- * pl.po: Polish is now 100% complete!
-
-1999-11-18 Pablo Saratxaga <pablo@mandrakesoft.com>
- * et.po: added estonian from Riho Kurg <riho@aso.ee>
- * pl.po: updated polish from Pawel Jablonski
-
-1999-11-16 Pablo Saratxaga <pablo@mandrakesoft.com>
- * update-po, lots of new strings :)
- * es.po: updated & completed
-
-1999-11-10 Pablo Saratxaga <pablo@mandrakesoft.com>
- * es.po: completed
- * pl.po: updated from Pavel Jablonski
-
-1999-11-08 Franēois PONS <fpons@mandrakesoft.com>
- * fr.po: updated.
-
-1999-11-05 Pablo Saratxaga <pablo@mandrakesoft.com>
- * pl.po: added Polish language file
- * ru.po: updated russian file
- * no.po: completed norwegian file
-
-1999-11-04 Pablo Saratxaga <pablo@mandrakesoft.com>
- * es.po: updated and completed spanish language file
- * wa.po: updated walon language file
-
-1999-10-30 Pablo Saratxaga <pablo@mandrakesoft.com>
- * es.po: updated spanish language file
-
-1999-10-22 Pablo Saratxaga <pablo@mandrakesoft.com>
- * it.po, es.po: uopdated spanish and italian language files
-
-1999-10-22 Pablo Saratxaga <pablo@mandrakesoft.com>
- * no.po: update of the Nowegian translation by Terje Bjerkelia
-
-1999-10-22 Pixel <pixel@linux-mandrake.com>
- * es.po: some corrections by Camille <camille@mandrakesoft.com>
-
-1999-10-21 Franēois PONS <fpons@mandrakesoft.com>
- * fr.po: modified printer or queue translation (line 1950 and 2778)
-
-1999-10-21 Pablo Saratxaga <pablo@mandrakesoft.com>
- * es.po: updated Spanish language file
-
-1999-10-20 Franēois PONS <fpons@mandrakesoft.com>
- * fr.po: corrected "Skip PCMCIA probing" message with new msgid
-
-1999-10-14 Pablo Saratxaga <pablo@mandrakesoft.com>
- * ru.po: new Russian translations from Aleksey Smirnov
- * no.po: update of the Nowegian translation by Terje Bjerkelia
-
-1999-10-13 Pablo Saratxaga <pablo@mandrakesoft.com>
- * *.po: checked that the name is correctly DrakX now, and updated them
- * tr.po: newer translations from Hakan Terziošlu <hakan@gelecek.com.tr>
-
-1999-10-11 Pablo Saratxaga <pablo@mandrakesoft.com>
- * no.po,es.po: updated Norwegian and Spanish language files
-
-1999-09-30 Pablo Saratxaga <pablo@mandrakesoft.com>
- * es.po: updated Spanish language file
-
-1999-09-26 Pablo Saratxaga <pablo@mandrakesoft.com>
- * no.po: updated norwegian file
-
-1999-09-25 Pablo Saratxaga <pablo@mandrakesoft.com>
- * it.po: updated italian file
-
-1999-09-19 Pablo Saratxaga <pablo@mandrakesoft.com>
- * no.po: update Norwegian language file
-
-1999-09-18 Pablo Saratxaga <pablo@mandrakesoft.com>
- * tr.po: Added Turkish language file from
- Hakan Terziošlu <hakan@gelecek.com.tr>
- * it.po: updated italian file
-
-1999-09-13 Pablo Saratxaga <pablo@mandrakesoft.com>
- * it.po: added italian language file from
- "Paolo Lorenzin" <pasusu@tin.it>
-
-1999-09-08 Pablo Saratxaga <pablo@mandrakesoft.com>
- * id.po, es.po: completed files
-
-1999-08-26 Pablo Saratxaga <pablo@mandrakesoft.com>
- * fr.po: updated fr.po from gregus@linux-mandrake.com (Grégoire Colbert)
- who is now in charge of the French translation
-
-1999-08-25 Pablo Saratxaga <pablo@mandrakesoft.com>
- * Makefile: corrected the msgmerge update (translations were
- being deleted !). make it so DrakX.pot has a header
- * *.po: get back all *.po files to the latest version including
- translated strings. add headers
- * id.po: update from indonesian team
-
-1999-08-22 Pablo Saratxaga <pablo@mandrakesoft.com>
- * no.po: added norwegian translations from
- Terje Bjerkelia <terje@bjerkelia.com>
-
-1999-08-18 Pablo Saratxaga <pablo@mandrakesoft.com>
- * Changelog: created a Changelog file
- * id.po: added indonesian translations from
- Mohammad DAMT <mdamt@cakraweb.com>
-
diff --git a/perl-install/share/po/DrakX.pot b/perl-install/share/po/DrakX.pot
deleted file mode 100644
index 19d7effd9..000000000
--- a/perl-install/share/po/DrakX.pot
+++ /dev/null
@@ -1,10577 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR Free Software Foundation, Inc.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2002-07-22 13:03+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-Transfer-Encoding: 8-bit\n"
-
-#: ../../Xconfig.pm_.c:29 ../../Xconfigurator.pm_.c:236
-#: ../../Xconfigurator.pm_.c:237
-#, c-format
-msgid "XFree %s"
-msgstr ""
-
-#: ../../Xconfig.pm_.c:29 ../../Xconfigurator.pm_.c:244
-#: ../../Xconfigurator.pm_.c:269
-#, c-format
-msgid "XFree %s with 3D hardware acceleration"
-msgstr ""
-
-#: ../../Xconfig.pm_.c:31
-#, c-format
-msgid "Keyboard layout: %s\n"
-msgstr ""
-
-#: ../../Xconfig.pm_.c:32
-#, c-format
-msgid "Mouse type: %s\n"
-msgstr ""
-
-#: ../../Xconfig.pm_.c:33
-#, c-format
-msgid "Mouse device: %s\n"
-msgstr ""
-
-#: ../../Xconfig.pm_.c:34
-#, c-format
-msgid "Monitor: %s\n"
-msgstr ""
-
-#: ../../Xconfig.pm_.c:35
-#, c-format
-msgid "Monitor HorizSync: %s\n"
-msgstr ""
-
-#: ../../Xconfig.pm_.c:36
-#, c-format
-msgid "Monitor VertRefresh: %s\n"
-msgstr ""
-
-#: ../../Xconfig.pm_.c:37
-#, c-format
-msgid "Graphics card: %s\n"
-msgstr ""
-
-#: ../../Xconfig.pm_.c:38
-#, c-format
-msgid "Graphics card identification: %s\n"
-msgstr ""
-
-#: ../../Xconfig.pm_.c:39
-#, c-format
-msgid "Graphics memory: %s kB\n"
-msgstr ""
-
-#: ../../Xconfig.pm_.c:41
-#, c-format
-msgid "Color depth: %s\n"
-msgstr ""
-
-#: ../../Xconfig.pm_.c:42
-#, c-format
-msgid "Resolution: %s\n"
-msgstr ""
-
-#: ../../Xconfig.pm_.c:44
-#, c-format
-msgid "XFree86 server: %s\n"
-msgstr ""
-
-#: ../../Xconfig.pm_.c:45
-#, c-format
-msgid "XFree86 driver: %s\n"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:204
-msgid "Configure all heads independently"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:205
-msgid "Use Xinerama extension"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:209
-#, c-format
-msgid "Configure only card \"%s\"%s"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:220
-msgid "Multi-head configuration"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:221
-msgid ""
-"Your system support multiple head configuration.\n"
-"What do you want to do?"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:247
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:249 ../../Xconfigurator.pm_.c:271
-#, c-format
-msgid "Your card can have 3D hardware acceleration support with XFree %s."
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:256 ../../Xconfigurator.pm_.c:277
-#, c-format
-msgid "XFree %s with EXPERIMENTAL 3D hardware acceleration"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:259
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:262 ../../Xconfigurator.pm_.c:279
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER."
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:285
-msgid "Xpmac (installation display driver)"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:335
-msgid "Which configuration of XFree do you want to have?"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:338
-msgid "XFree configuration"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:360
-msgid "Choose a X server"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:360
-msgid "X server"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:427
-msgid "Select the memory size of your graphics card"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:455
-msgid "Choose options for server"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:491
-msgid "Choose a monitor"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:491
-msgid "Monitor"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:492 ../../any.pm_.c:979
-msgid "Custom"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:492 ../../mouse.pm_.c:45
-msgid "Generic"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:492
-msgid "Vendor"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:499
-msgid ""
-"The two critical parameters are the vertical refresh rate, which is the "
-"rate\n"
-"at which the whole screen is refreshed, and most importantly the horizontal\n"
-"sync rate, which is the rate at which scanlines are displayed.\n"
-"\n"
-"It is VERY IMPORTANT that you do not specify a monitor type with a sync "
-"range\n"
-"that is beyond the capabilities of your monitor: you may damage your "
-"monitor.\n"
-" If in doubt, choose a conservative setting."
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:506
-msgid "Horizontal refresh rate"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:507
-msgid "Vertical refresh rate"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:544
-msgid "Monitor not configured"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:545
-msgid "Graphics card not configured yet"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:546
-msgid "Resolutions not chosen yet"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:577
-msgid "Do you want to test the configuration?"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:577
-msgid "Test of the configuration"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:616 ../../Xconfigurator.pm_.c:628
-msgid ""
-"\n"
-"try to change some parameters"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:616 ../../Xconfigurator.pm_.c:628
-msgid "An error occurred:"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:657
-#, c-format
-msgid "Leaving in %d seconds"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:668
-msgid "Is this the correct setting?"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:677
-msgid "An error occurred, try to change some parameters"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:748
-msgid "Resolution"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:801
-msgid "Choose the resolution and the color depth"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:803
-#, c-format
-msgid "Graphics card: %s"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:804
-#, c-format
-msgid "XFree86 server: %s"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:818 ../../diskdrake/interactive.pm_.c:260
-#: ../../install_steps_interactive.pm_.c:216
-msgid "More"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:818 ../../harddrake/ui.pm_.c:263
-#: ../../harddrake/ui.pm_.c:289 ../../install_gtk.pm_.c:84
-#: ../../install_steps_gtk.pm_.c:279 ../../interactive.pm_.c:127
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:318
-#: ../../interactive.pm_.c:350 ../../interactive_http.pm_.c:104
-#: ../../interactive_newt.pm_.c:170 ../../interactive_stdio.pm_.c:141
-#: ../../interactive_stdio.pm_.c:142 ../../my_gtk.pm_.c:722
-#: ../../my_gtk.pm_.c:1055 ../../my_gtk.pm_.c:1077
-#: ../../standalone/drakbackup_.c:3592 ../../standalone/drakbackup_.c:3753
-#: ../../standalone/drakbackup_.c:3785
-msgid "Ok"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:820 ../../network/netconnect.pm_.c:173
-#: ../../printerdrake.pm_.c:2469 ../../standalone/drakconnect_.c:275
-#: ../../standalone/drakconnect_.c:278 ../../standalone/drakfloppy_.c:146
-msgid "Expert Mode"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:821
-msgid "Show all"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:866
-msgid "Resolutions"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:1318
-msgid "Preparing X-Window configuration"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:1338
-msgid "What do you want to do?"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:1343
-msgid "Change Monitor"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:1344
-msgid "Change Graphics card"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:1346
-msgid "Change Server options"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:1347
-msgid "Change Resolution"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:1348
-msgid "Show information"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:1349
-msgid "Test again"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:1350 ../../printerdrake.pm_.c:2472
-#: ../../standalone/logdrake_.c:225
-msgid "Quit"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:1358
-#, c-format
-msgid ""
-"Keep the changes?\n"
-"The current configuration is:\n"
-"\n"
-"%s"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:1377
-msgid "Graphical interface at startup"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:1378
-msgid ""
-"I can setup your computer to automatically start the graphical interface "
-"(XFree) upon booting.\n"
-"Would you like XFree to start when you reboot?"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:1384
-#, c-format
-msgid "Please relog into %s to activate the changes"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:1399
-msgid "Please log out and then use Ctrl-Alt-BackSpace"
-msgstr ""
-
-#: ../../Xconfigurator_consts.pm_.c:6
-msgid "256 colors (8 bits)"
-msgstr ""
-
-#: ../../Xconfigurator_consts.pm_.c:7
-msgid "32 thousand colors (15 bits)"
-msgstr ""
-
-#: ../../Xconfigurator_consts.pm_.c:8
-msgid "65 thousand colors (16 bits)"
-msgstr ""
-
-#: ../../Xconfigurator_consts.pm_.c:9
-msgid "16 million colors (24 bits)"
-msgstr ""
-
-#: ../../Xconfigurator_consts.pm_.c:10
-msgid "4 billion colors (32 bits)"
-msgstr ""
-
-#: ../../Xconfigurator_consts.pm_.c:94
-msgid "256 kB"
-msgstr ""
-
-#: ../../Xconfigurator_consts.pm_.c:95
-msgid "512 kB"
-msgstr ""
-
-#: ../../Xconfigurator_consts.pm_.c:96
-msgid "1 MB"
-msgstr ""
-
-#: ../../Xconfigurator_consts.pm_.c:97
-msgid "2 MB"
-msgstr ""
-
-#: ../../Xconfigurator_consts.pm_.c:98
-msgid "4 MB"
-msgstr ""
-
-#: ../../Xconfigurator_consts.pm_.c:99
-msgid "8 MB"
-msgstr ""
-
-#: ../../Xconfigurator_consts.pm_.c:100
-msgid "16 MB"
-msgstr ""
-
-#: ../../Xconfigurator_consts.pm_.c:101
-msgid "32 MB"
-msgstr ""
-
-#: ../../Xconfigurator_consts.pm_.c:102
-msgid "64 MB or more"
-msgstr ""
-
-#: ../../any.pm_.c:117 ../../any.pm_.c:142
-msgid "First sector of boot partition"
-msgstr ""
-
-#: ../../any.pm_.c:117 ../../any.pm_.c:142 ../../any.pm_.c:219
-msgid "First sector of drive (MBR)"
-msgstr ""
-
-#: ../../any.pm_.c:121
-msgid "SILO Installation"
-msgstr ""
-
-#: ../../any.pm_.c:122 ../../any.pm_.c:135
-msgid "Where do you want to install the bootloader?"
-msgstr ""
-
-#: ../../any.pm_.c:134
-msgid "LILO/grub Installation"
-msgstr ""
-
-#: ../../any.pm_.c:146 ../../any.pm_.c:160
-msgid "SILO"
-msgstr ""
-
-#: ../../any.pm_.c:148
-msgid "LILO with text menu"
-msgstr ""
-
-#: ../../any.pm_.c:149 ../../any.pm_.c:160
-msgid "LILO with graphical menu"
-msgstr ""
-
-#: ../../any.pm_.c:152
-msgid "Grub"
-msgstr ""
-
-#: ../../any.pm_.c:156
-msgid "Boot from DOS/Windows (loadlin)"
-msgstr ""
-
-#: ../../any.pm_.c:158 ../../any.pm_.c:160
-msgid "Yaboot"
-msgstr ""
-
-#: ../../any.pm_.c:167 ../../any.pm_.c:199
-msgid "Bootloader main options"
-msgstr ""
-
-#: ../../any.pm_.c:168 ../../any.pm_.c:200
-msgid "Bootloader to use"
-msgstr ""
-
-#: ../../any.pm_.c:170
-msgid "Bootloader installation"
-msgstr ""
-
-#: ../../any.pm_.c:172 ../../any.pm_.c:202
-msgid "Boot device"
-msgstr ""
-
-#: ../../any.pm_.c:173
-msgid "LBA (doesn't work on old BIOSes)"
-msgstr ""
-
-#: ../../any.pm_.c:174
-msgid "Compact"
-msgstr ""
-
-#: ../../any.pm_.c:174
-msgid "compact"
-msgstr ""
-
-#: ../../any.pm_.c:175 ../../any.pm_.c:299
-msgid "Video mode"
-msgstr ""
-
-#: ../../any.pm_.c:177
-msgid "Delay before booting default image"
-msgstr ""
-
-#: ../../any.pm_.c:179 ../../any.pm_.c:799
-#: ../../diskdrake/smbnfs_gtk.pm_.c:179
-#: ../../install_steps_interactive.pm_.c:1102 ../../network/modem.pm_.c:48
-#: ../../printerdrake.pm_.c:706 ../../printerdrake.pm_.c:804
-#: ../../standalone/drakconnect_.c:625 ../../standalone/drakconnect_.c:650
-msgid "Password"
-msgstr ""
-
-#: ../../any.pm_.c:180 ../../any.pm_.c:800
-#: ../../install_steps_interactive.pm_.c:1103
-msgid "Password (again)"
-msgstr ""
-
-#: ../../any.pm_.c:181
-msgid "Restrict command line options"
-msgstr ""
-
-#: ../../any.pm_.c:181
-msgid "restrict"
-msgstr ""
-
-#: ../../any.pm_.c:183
-msgid "Clean /tmp at each boot"
-msgstr ""
-
-#: ../../any.pm_.c:184
-#, c-format
-msgid "Precise RAM size if needed (found %d MB)"
-msgstr ""
-
-#: ../../any.pm_.c:186
-msgid "Enable multi profiles"
-msgstr ""
-
-#: ../../any.pm_.c:190
-msgid "Give the ram size in MB"
-msgstr ""
-
-#: ../../any.pm_.c:192
-msgid ""
-"Option ``Restrict command line options'' is of no use without a password"
-msgstr ""
-
-#: ../../any.pm_.c:193 ../../any.pm_.c:775
-#: ../../diskdrake/interactive.pm_.c:1165
-#: ../../install_steps_interactive.pm_.c:1097
-msgid "Please try again"
-msgstr ""
-
-#: ../../any.pm_.c:193 ../../any.pm_.c:775
-#: ../../install_steps_interactive.pm_.c:1097
-msgid "The passwords do not match"
-msgstr ""
-
-#: ../../any.pm_.c:201
-msgid "Init Message"
-msgstr ""
-
-#: ../../any.pm_.c:203
-msgid "Open Firmware Delay"
-msgstr ""
-
-#: ../../any.pm_.c:204
-msgid "Kernel Boot Timeout"
-msgstr ""
-
-#: ../../any.pm_.c:205
-msgid "Enable CD Boot?"
-msgstr ""
-
-#: ../../any.pm_.c:206
-msgid "Enable OF Boot?"
-msgstr ""
-
-#: ../../any.pm_.c:207
-msgid "Default OS?"
-msgstr ""
-
-#: ../../any.pm_.c:241
-msgid ""
-"You decided to install the bootloader on a partition.\n"
-"This implies you already have a bootloader on the hard drive you boot (eg: "
-"System Commander).\n"
-"\n"
-"On which drive are you booting?"
-msgstr ""
-
-#: ../../any.pm_.c:256
-msgid ""
-"Here are the entries on your boot menu so far.\n"
-"You can add some more or change the existing ones."
-msgstr ""
-
-#: ../../any.pm_.c:266 ../../standalone/drakbackup_.c:892
-#: ../../standalone/drakbackup_.c:1071 ../../standalone/drakfont_.c:1012
-#: ../../standalone/drakfont_.c:1055
-msgid "Add"
-msgstr ""
-
-#: ../../any.pm_.c:266 ../../any.pm_.c:787 ../../diskdrake/hd_gtk.pm_.c:153
-#: ../../diskdrake/removable.pm_.c:27 ../../diskdrake/smbnfs_gtk.pm_.c:88
-#: ../../interactive_http.pm_.c:153
-msgid "Done"
-msgstr ""
-
-#: ../../any.pm_.c:266
-msgid "Modify"
-msgstr ""
-
-#: ../../any.pm_.c:274
-msgid "Which type of entry do you want to add?"
-msgstr ""
-
-#: ../../any.pm_.c:275 ../../standalone/drakbackup_.c:1140
-msgid "Linux"
-msgstr ""
-
-#: ../../any.pm_.c:275
-msgid "Other OS (SunOS...)"
-msgstr ""
-
-#: ../../any.pm_.c:276
-msgid "Other OS (MacOS...)"
-msgstr ""
-
-#: ../../any.pm_.c:276
-msgid "Other OS (windows...)"
-msgstr ""
-
-#: ../../any.pm_.c:295
-msgid "Image"
-msgstr ""
-
-#: ../../any.pm_.c:296 ../../any.pm_.c:307
-msgid "Root"
-msgstr ""
-
-#: ../../any.pm_.c:297 ../../any.pm_.c:326
-msgid "Append"
-msgstr ""
-
-#: ../../any.pm_.c:301
-msgid "Initrd"
-msgstr ""
-
-#: ../../any.pm_.c:302
-msgid "Read-write"
-msgstr ""
-
-#: ../../any.pm_.c:309
-msgid "Table"
-msgstr ""
-
-#: ../../any.pm_.c:310
-msgid "Unsafe"
-msgstr ""
-
-#: ../../any.pm_.c:317 ../../any.pm_.c:322 ../../any.pm_.c:325
-msgid "Label"
-msgstr ""
-
-#: ../../any.pm_.c:319 ../../any.pm_.c:330 ../../harddrake/bttv.pm_.c:184
-msgid "Default"
-msgstr ""
-
-#: ../../any.pm_.c:327
-msgid "Initrd-size"
-msgstr ""
-
-#: ../../any.pm_.c:329
-msgid "NoVideo"
-msgstr ""
-
-#: ../../any.pm_.c:337
-msgid "Remove entry"
-msgstr ""
-
-#: ../../any.pm_.c:340
-msgid "Empty label not allowed"
-msgstr ""
-
-#: ../../any.pm_.c:341
-msgid "You must specify a kernel image"
-msgstr ""
-
-#: ../../any.pm_.c:341
-msgid "You must specify a root partition"
-msgstr ""
-
-#: ../../any.pm_.c:342
-msgid "This label is already used"
-msgstr ""
-
-#: ../../any.pm_.c:671
-#, c-format
-msgid "Found %s %s interfaces"
-msgstr ""
-
-#: ../../any.pm_.c:672
-msgid "Do you have another one?"
-msgstr ""
-
-#: ../../any.pm_.c:673
-#, c-format
-msgid "Do you have any %s interfaces?"
-msgstr ""
-
-#: ../../any.pm_.c:675 ../../any.pm_.c:835 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1054
-msgid "No"
-msgstr ""
-
-#: ../../any.pm_.c:675 ../../any.pm_.c:834 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1054
-msgid "Yes"
-msgstr ""
-
-#: ../../any.pm_.c:676
-msgid "See hardware info"
-msgstr ""
-
-#. -PO: the first %s is the card type (scsi, network, sound,...)
-#. -PO: the second is the vendor+model name
-#: ../../any.pm_.c:692
-#, c-format
-msgid "Installing driver for %s card %s"
-msgstr ""
-
-#: ../../any.pm_.c:693
-#, c-format
-msgid "(module %s)"
-msgstr ""
-
-#: ../../any.pm_.c:702
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Note that any address should be entered with the prefix 0x like '0x123'"
-msgstr ""
-
-#: ../../any.pm_.c:708
-#, c-format
-msgid ""
-"You may now provide options to module %s.\n"
-"Options are in format ``name=value name2=value2 ...''.\n"
-"For instance, ``io=0x300 irq=7''"
-msgstr ""
-
-#: ../../any.pm_.c:710
-msgid "Module options:"
-msgstr ""
-
-#. -PO: the %s is the driver type (scsi, network, sound,...)
-#: ../../any.pm_.c:722
-#, c-format
-msgid "Which %s driver should I try?"
-msgstr ""
-
-#: ../../any.pm_.c:731
-#, c-format
-msgid ""
-"In some cases, the %s driver needs to have extra information to work\n"
-"properly, although it normally works fine without. Would you like to "
-"specify\n"
-"extra options for it or allow the driver to probe your machine for the\n"
-"information it needs? Occasionally, probing will hang a computer, but it "
-"should\n"
-"not cause any damage."
-msgstr ""
-
-#: ../../any.pm_.c:735
-msgid "Autoprobe"
-msgstr ""
-
-#: ../../any.pm_.c:735
-msgid "Specify options"
-msgstr ""
-
-#: ../../any.pm_.c:747
-#, c-format
-msgid ""
-"Loading module %s failed.\n"
-"Do you want to try again with other parameters?"
-msgstr ""
-
-#: ../../any.pm_.c:763
-msgid "access to X programs"
-msgstr ""
-
-#: ../../any.pm_.c:764
-msgid "access to rpm tools"
-msgstr ""
-
-#: ../../any.pm_.c:765
-msgid "allow \"su\""
-msgstr ""
-
-#: ../../any.pm_.c:766
-msgid "access to administrative files"
-msgstr ""
-
-#: ../../any.pm_.c:771
-#, c-format
-msgid "(already added %s)"
-msgstr ""
-
-#: ../../any.pm_.c:776
-msgid "This password is too simple"
-msgstr ""
-
-#: ../../any.pm_.c:777
-msgid "Please give a user name"
-msgstr ""
-
-#: ../../any.pm_.c:778
-msgid ""
-"The user name must contain only lower cased letters, numbers, `-' and `_'"
-msgstr ""
-
-#: ../../any.pm_.c:779
-msgid "The user name is too long"
-msgstr ""
-
-#: ../../any.pm_.c:780
-msgid "This user name is already added"
-msgstr ""
-
-#: ../../any.pm_.c:784
-msgid "Add user"
-msgstr ""
-
-#: ../../any.pm_.c:785
-#, c-format
-msgid ""
-"Enter a user\n"
-"%s"
-msgstr ""
-
-#: ../../any.pm_.c:786
-msgid "Accept user"
-msgstr ""
-
-#: ../../any.pm_.c:797
-msgid "Real name"
-msgstr ""
-
-#: ../../any.pm_.c:798 ../../printerdrake.pm_.c:705
-#: ../../printerdrake.pm_.c:803
-msgid "User name"
-msgstr ""
-
-#: ../../any.pm_.c:801
-msgid "Shell"
-msgstr ""
-
-#: ../../any.pm_.c:803
-msgid "Icon"
-msgstr ""
-
-#: ../../any.pm_.c:831
-msgid "Autologin"
-msgstr ""
-
-#: ../../any.pm_.c:832
-msgid ""
-"I can set up your computer to automatically log on one user.\n"
-"Do you want to use this feature?"
-msgstr ""
-
-#: ../../any.pm_.c:836
-msgid "Choose the default user:"
-msgstr ""
-
-#: ../../any.pm_.c:837
-msgid "Choose the window manager to run:"
-msgstr ""
-
-#: ../../any.pm_.c:852
-msgid "Please choose a language to use."
-msgstr ""
-
-#: ../../any.pm_.c:854
-msgid ""
-"Mandrake Linux can support multiple languages. Select\n"
-"the languages you would like to install. They will be available\n"
-"when your installation is complete and you restart your system."
-msgstr ""
-
-#: ../../any.pm_.c:868 ../../install_steps_interactive.pm_.c:701
-#: ../../standalone/drakxtv_.c:78
-msgid "All"
-msgstr ""
-
-#: ../../any.pm_.c:979
-msgid "Allow all users"
-msgstr ""
-
-#: ../../any.pm_.c:979
-msgid "No sharing"
-msgstr ""
-
-#: ../../any.pm_.c:989 ../../network/smbnfs.pm_.c:47
-#, c-format
-msgid "The package %s needs to be installed. Do you want to install it?"
-msgstr ""
-
-#: ../../any.pm_.c:992
-msgid ""
-"You can export using NFS or Samba. Please select which you'd like to use."
-msgstr ""
-
-#: ../../any.pm_.c:1000 ../../network/smbnfs.pm_.c:51
-#, c-format
-msgid "Mandatory package %s is missing"
-msgstr ""
-
-#: ../../any.pm_.c:1006
-msgid ""
-"Would you like to allow users to share some of their directories?\n"
-"Allowing this will permit users to simply click on \"Share\" in konqueror "
-"and nautilus.\n"
-"\n"
-"\"Custom\" permit a per-user granularity.\n"
-msgstr ""
-
-#: ../../any.pm_.c:1020 ../../bootlook.pm_.c:161
-#: ../../diskdrake/smbnfs_gtk.pm_.c:87 ../../install_steps_gtk.pm_.c:410
-#: ../../install_steps_gtk.pm_.c:468 ../../install_steps_interactive.pm_.c:569
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:318
-#: ../../interactive.pm_.c:350 ../../interactive_stdio.pm_.c:141
-#: ../../my_gtk.pm_.c:723 ../../my_gtk.pm_.c:726 ../../my_gtk.pm_.c:1055
-#: ../../network/netconnect.pm_.c:47 ../../printerdrake.pm_.c:1584
-#: ../../standalone/drakautoinst_.c:204 ../../standalone/drakbackup_.c:3515
-#: ../../standalone/drakbackup_.c:3566 ../../standalone/drakbackup_.c:3612
-#: ../../standalone/drakbackup_.c:3658 ../../standalone/drakbackup_.c:3704
-#: ../../standalone/drakbackup_.c:3805 ../../standalone/drakbackup_.c:3851
-#: ../../standalone/drakbackup_.c:3896 ../../standalone/drakconnect_.c:116
-#: ../../standalone/drakconnect_.c:148 ../../standalone/drakconnect_.c:290
-#: ../../standalone/drakconnect_.c:538 ../../standalone/drakconnect_.c:680
-#: ../../standalone/drakfloppy_.c:235 ../../standalone/drakfloppy_.c:384
-#: ../../standalone/drakfont_.c:971 ../../standalone/drakgw_.c:598
-#: ../../standalone/logdrake_.c:225 ../../standalone/logdrake_.c:527
-#: ../../standalone/tinyfirewall_.c:65
-msgid "Cancel"
-msgstr ""
-
-#: ../../any.pm_.c:1020
-msgid "Launch userdrake"
-msgstr ""
-
-#: ../../any.pm_.c:1022
-msgid ""
-"The per-user sharing uses the group \"fileshare\". \n"
-"You can use userdrake to add a user in this group."
-msgstr ""
-
-#: ../../any.pm_.c:1070
-msgid "Welcome To Crackers"
-msgstr ""
-
-#: ../../any.pm_.c:1071
-msgid "Poor"
-msgstr ""
-
-#: ../../any.pm_.c:1072 ../../mouse.pm_.c:31
-msgid "Standard"
-msgstr ""
-
-#: ../../any.pm_.c:1073
-msgid "High"
-msgstr ""
-
-#: ../../any.pm_.c:1074
-msgid "Higher"
-msgstr ""
-
-#: ../../any.pm_.c:1075
-msgid "Paranoid"
-msgstr ""
-
-#: ../../any.pm_.c:1078
-msgid ""
-"This level is to be used with care. It makes your system more easy to use,\n"
-"but very sensitive: it must not be used for a machine connected to others\n"
-"or to the Internet. There is no password access."
-msgstr ""
-
-#: ../../any.pm_.c:1081
-msgid ""
-"Password are now enabled, but use as a networked computer is still not "
-"recommended."
-msgstr ""
-
-#: ../../any.pm_.c:1082
-msgid ""
-"This is the standard security recommended for a computer that will be used "
-"to connect to the Internet as a client."
-msgstr ""
-
-#: ../../any.pm_.c:1083
-msgid ""
-"There are already some restrictions, and more automatic checks are run every "
-"night."
-msgstr ""
-
-#: ../../any.pm_.c:1084
-msgid ""
-"With this security level, the use of this system as a server becomes "
-"possible.\n"
-"The security is now high enough to use the system as a server which can "
-"accept\n"
-"connections from many clients. Note: if your machine is only a client on the "
-"Internet, you should choose a lower level."
-msgstr ""
-
-#: ../../any.pm_.c:1087
-msgid ""
-"This is similar to the previous level, but the system is entirely closed and "
-"security features are at their maximum."
-msgstr ""
-
-#: ../../any.pm_.c:1097
-msgid "Security level"
-msgstr ""
-
-#: ../../any.pm_.c:1099
-msgid "Use libsafe for servers"
-msgstr ""
-
-#: ../../any.pm_.c:1100
-msgid ""
-"A library which defends against buffer overflow and format string attacks."
-msgstr ""
-
-#: ../../any.pm_.c:1101
-msgid "Security Administrator (login or email)"
-msgstr ""
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#: ../../bootloader.pm_.c:354
-#, c-format
-msgid ""
-"Welcome to %s the operating system chooser!\n"
-"\n"
-"Choose an operating system in the list above or\n"
-"wait %d seconds for default boot.\n"
-"\n"
-msgstr ""
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:910
-msgid "Welcome to GRUB the operating system chooser!"
-msgstr ""
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:913
-#, c-format
-msgid "Use the %c and %c keys for selecting which entry is highlighted."
-msgstr ""
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:916
-msgid "Press enter to boot the selected OS, 'e' to edit the"
-msgstr ""
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:919
-msgid "commands before booting, or 'c' for a command-line."
-msgstr ""
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:922
-#, c-format
-msgid "The highlighted entry will be booted automatically in %d seconds."
-msgstr ""
-
-#: ../../bootloader.pm_.c:926
-msgid "not enough room in /boot"
-msgstr ""
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#. -PO: so you may need to put them in English or in a different language if MS-windows doesn't exist in your language
-#: ../../bootloader.pm_.c:1026
-msgid "Desktop"
-msgstr ""
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#: ../../bootloader.pm_.c:1028
-msgid "Start Menu"
-msgstr ""
-
-#: ../../bootloader.pm_.c:1047
-#, c-format
-msgid "You can't install the bootloader on a %s partition\n"
-msgstr ""
-
-#: ../../bootlook.pm_.c:46
-msgid "no help implemented yet.\n"
-msgstr ""
-
-#: ../../bootlook.pm_.c:62
-msgid "Boot Style Configuration"
-msgstr ""
-
-#: ../../bootlook.pm_.c:79 ../../harddrake/ui.pm_.c:11
-#: ../../harddrake/ui.pm_.c:12 ../../standalone/drakfloppy_.c:82
-#: ../../standalone/logdrake_.c:101
-msgid "/_File"
-msgstr ""
-
-#: ../../bootlook.pm_.c:80 ../../standalone/drakfloppy_.c:83
-#: ../../standalone/logdrake_.c:107
-msgid "/File/_Quit"
-msgstr ""
-
-#: ../../bootlook.pm_.c:80 ../../harddrake/ui.pm_.c:12
-#: ../../standalone/drakfloppy_.c:83 ../../standalone/logdrake_.c:107
-msgid "<control>Q"
-msgstr ""
-
-#: ../../bootlook.pm_.c:91
-msgid "NewStyle Categorizing Monitor"
-msgstr ""
-
-#: ../../bootlook.pm_.c:92
-msgid "NewStyle Monitor"
-msgstr ""
-
-#: ../../bootlook.pm_.c:93
-msgid "Traditional Monitor"
-msgstr ""
-
-#: ../../bootlook.pm_.c:94
-msgid "Traditional Gtk+ Monitor"
-msgstr ""
-
-#: ../../bootlook.pm_.c:95
-msgid "Launch Aurora at boot time"
-msgstr ""
-
-#: ../../bootlook.pm_.c:98
-msgid "Lilo/grub mode"
-msgstr ""
-
-#: ../../bootlook.pm_.c:98
-msgid "Yaboot mode"
-msgstr ""
-
-#: ../../bootlook.pm_.c:104
-#, c-format
-msgid ""
-"You are currently using %s as your boot manager.\n"
-"Click on Configure to launch the setup wizard."
-msgstr ""
-
-#: ../../bootlook.pm_.c:106 ../../standalone/drakbackup_.c:2273
-#: ../../standalone/drakbackup_.c:2295 ../../standalone/drakgw_.c:592
-#: ../../standalone/tinyfirewall_.c:59
-msgid "Configure"
-msgstr ""
-
-#: ../../bootlook.pm_.c:141
-msgid "System mode"
-msgstr ""
-
-#: ../../bootlook.pm_.c:143
-msgid "Launch the graphical environment when your system starts"
-msgstr ""
-
-#: ../../bootlook.pm_.c:148
-msgid "No, I don't want autologin"
-msgstr ""
-
-#: ../../bootlook.pm_.c:150
-msgid "Yes, I want autologin with this (user, desktop)"
-msgstr ""
-
-#: ../../bootlook.pm_.c:160 ../../network/netconnect.pm_.c:102
-#: ../../standalone/drakTermServ_.c:160 ../../standalone/drakTermServ_.c:287
-#: ../../standalone/drakTermServ_.c:389 ../../standalone/drakbackup_.c:3914
-#: ../../standalone/drakbackup_.c:5128 ../../standalone/drakconnect_.c:109
-#: ../../standalone/drakconnect_.c:141 ../../standalone/drakconnect_.c:297
-#: ../../standalone/drakconnect_.c:436 ../../standalone/drakconnect_.c:522
-#: ../../standalone/drakconnect_.c:565 ../../standalone/drakconnect_.c:668
-#: ../../standalone/drakfloppy_.c:377 ../../standalone/drakfont_.c:613
-#: ../../standalone/drakfont_.c:800 ../../standalone/drakfont_.c:877
-#: ../../standalone/drakfont_.c:964 ../../standalone/logdrake_.c:520
-msgid "OK"
-msgstr ""
-
-#: ../../bootlook.pm_.c:229
-#, c-format
-msgid "can not open /etc/inittab for reading: %s"
-msgstr ""
-
-#: ../../common.pm_.c:94
-msgid "GB"
-msgstr ""
-
-#: ../../common.pm_.c:94
-msgid "KB"
-msgstr ""
-
-#: ../../common.pm_.c:94
-msgid "MB"
-msgstr ""
-
-#: ../../common.pm_.c:102
-msgid "TB"
-msgstr ""
-
-#: ../../common.pm_.c:110
-#, c-format
-msgid "%d minutes"
-msgstr ""
-
-#: ../../common.pm_.c:112
-msgid "1 minute"
-msgstr ""
-
-#: ../../common.pm_.c:114
-#, c-format
-msgid "%d seconds"
-msgstr ""
-
-#: ../../common.pm_.c:159
-msgid "Can't make screenshots before partitioning"
-msgstr ""
-
-#: ../../common.pm_.c:166
-#, c-format
-msgid "Screenshots will be available after install in %s"
-msgstr ""
-
-#: ../../crypto.pm_.c:12 ../../crypto.pm_.c:26 ../../network/tools.pm_.c:113
-msgid "France"
-msgstr ""
-
-#: ../../crypto.pm_.c:13
-msgid "Costa Rica"
-msgstr ""
-
-#: ../../crypto.pm_.c:14 ../../crypto.pm_.c:27 ../../network/tools.pm_.c:116
-msgid "Belgium"
-msgstr ""
-
-#: ../../crypto.pm_.c:15 ../../crypto.pm_.c:28
-msgid "Czech Republic"
-msgstr ""
-
-#: ../../crypto.pm_.c:16 ../../crypto.pm_.c:29
-msgid "Germany"
-msgstr ""
-
-#: ../../crypto.pm_.c:17 ../../crypto.pm_.c:30
-msgid "Greece"
-msgstr ""
-
-#: ../../crypto.pm_.c:18 ../../crypto.pm_.c:31
-msgid "Norway"
-msgstr ""
-
-#: ../../crypto.pm_.c:19 ../../crypto.pm_.c:32
-msgid "Sweden"
-msgstr ""
-
-#: ../../crypto.pm_.c:20 ../../crypto.pm_.c:34 ../../network/tools.pm_.c:114
-msgid "Netherlands"
-msgstr ""
-
-#: ../../crypto.pm_.c:21 ../../crypto.pm_.c:35 ../../network/tools.pm_.c:115
-#: ../../standalone/drakxtv_.c:74
-msgid "Italy"
-msgstr ""
-
-#: ../../crypto.pm_.c:22 ../../crypto.pm_.c:36
-msgid "Austria"
-msgstr ""
-
-#: ../../crypto.pm_.c:33 ../../crypto.pm_.c:67 ../../network/tools.pm_.c:117
-msgid "United States"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:94
-msgid "Please make a backup of your data first"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:94 ../../diskdrake/interactive.pm_.c:909
-#: ../../diskdrake/interactive.pm_.c:918 ../../diskdrake/interactive.pm_.c:984
-msgid "Read carefully!"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:97
-msgid ""
-"If you plan to use aboot, be carefull to leave a free space (2048 sectors is "
-"enough)\n"
-"at the beginning of the disk"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:116 ../../diskdrake/interactive.pm_.c:335
-#: ../../diskdrake/interactive.pm_.c:350 ../../diskdrake/smbnfs_gtk.pm_.c:45
-#: ../../install_steps.pm_.c:75 ../../install_steps_interactive.pm_.c:67
-#: ../../install_steps_interactive.pm_.c:364 ../../interactive_http.pm_.c:119
-#: ../../interactive_http.pm_.c:120 ../../standalone/diskdrake_.c:84
-msgid "Error"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:151
-msgid "Wizard"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:184 ../../diskdrake/removable_gtk.pm_.c:24
-msgid "Choose action"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:188
-msgid ""
-"You have one big FAT partition\n"
-"(generally used by MicroSoft Dos/Windows).\n"
-"I suggest you first resize that partition\n"
-"(click on it, then click on \"Resize\")"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:191
-msgid "Please click on a partition"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:205 ../../diskdrake/smbnfs_gtk.pm_.c:69
-#: ../../install_steps_gtk.pm_.c:469
-msgid "Details"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:323
-msgid "Ext2"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:323
-msgid "FAT"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:323
-msgid "HFS"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:323
-msgid "Journalised FS"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:323
-msgid "SunOS"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:323
-msgid "Swap"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:324 ../../diskdrake/interactive.pm_.c:1080
-msgid "Empty"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:324 ../../install_steps_gtk.pm_.c:329
-#: ../../install_steps_gtk.pm_.c:387 ../../mouse.pm_.c:162
-#: ../../services.pm_.c:157 ../../standalone/drakbackup_.c:1226
-msgid "Other"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:328
-msgid "Filesystem types:"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:345 ../../diskdrake/interactive.pm_.c:396
-msgid "Create"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:345 ../../diskdrake/interactive.pm_.c:375
-#: ../../diskdrake/interactive.pm_.c:509 ../../diskdrake/removable.pm_.c:26
-#: ../../diskdrake/removable.pm_.c:49 ../../diskdrake/removable_gtk.pm_.c:17
-msgid "Type"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:345 ../../diskdrake/hd_gtk.pm_.c:347
-#, c-format
-msgid "Use ``%s'' instead"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:347 ../../diskdrake/interactive.pm_.c:384
-msgid "Delete"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:351
-msgid "Use ``Unmount'' first"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:352 ../../diskdrake/interactive.pm_.c:501
-#, c-format
-msgid ""
-"After changing type of partition %s, all data on this partition will be lost"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:172
-msgid "Choose a partition"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:172
-msgid "Choose another partition"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:197
-msgid "Exit"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:219
-msgid "Toggle to expert mode"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:219
-msgid "Toggle to normal mode"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:219
-msgid "Undo"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:238
-msgid "Continue anyway?"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:243
-msgid "Quit without saving"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:243
-msgid "Quit without writing the partition table?"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:248
-msgid "Do you want to save /etc/fstab modifications"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:260
-msgid "Auto allocate"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:260
-msgid "Clear all"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:263
-msgid "Hard drive information"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:293
-msgid "All primary partitions are used"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:294
-msgid "I can't add any more partition"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:295
-msgid ""
-"To have more partitions, please delete one to be able to create an extended "
-"partition"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:305
-msgid "Save partition table"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:306
-msgid "Restore partition table"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:307
-msgid "Rescue partition table"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:309
-msgid "Reload partition table"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:314
-msgid "Removable media automounting"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:323 ../../diskdrake/interactive.pm_.c:343
-msgid "Select file"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:330
-msgid ""
-"The backup partition table has not the same size\n"
-"Still continue?"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:344
-msgid "Warning"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:345
-msgid ""
-"Insert a floppy in drive\n"
-"All data on this floppy will be lost"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:356
-msgid "Trying to rescue partition table"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:362
-msgid "Detailed information"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:374 ../../diskdrake/interactive.pm_.c:546
-#: ../../diskdrake/interactive.pm_.c:573 ../../diskdrake/removable.pm_.c:24
-#: ../../diskdrake/removable_gtk.pm_.c:15 ../../diskdrake/smbnfs_gtk.pm_.c:85
-msgid "Mount point"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:376 ../../diskdrake/removable.pm_.c:25
-#: ../../diskdrake/removable_gtk.pm_.c:16 ../../diskdrake/smbnfs_gtk.pm_.c:86
-msgid "Options"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:377 ../../diskdrake/interactive.pm_.c:640
-msgid "Resize"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:378 ../../diskdrake/interactive.pm_.c:693
-msgid "Move"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:379
-msgid "Format"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:380 ../../diskdrake/smbnfs_gtk.pm_.c:82
-msgid "Mount"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:381
-msgid "Add to RAID"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:382
-msgid "Add to LVM"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:383 ../../diskdrake/smbnfs_gtk.pm_.c:81
-msgid "Unmount"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:385
-msgid "Remove from RAID"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:386
-msgid "Remove from LVM"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:387
-msgid "Modify RAID"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:388
-msgid "Use for loopback"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:427
-msgid "Create a new partition"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:430
-msgid "Start sector: "
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:432 ../../diskdrake/interactive.pm_.c:791
-msgid "Size in MB: "
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:433 ../../diskdrake/interactive.pm_.c:792
-msgid "Filesystem type: "
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:434
-#: ../../diskdrake/interactive.pm_.c:1064
-#: ../../diskdrake/interactive.pm_.c:1138
-msgid "Mount point: "
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:438
-msgid "Preference: "
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:482
-msgid "Remove the loopback file?"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:507
-msgid "Change partition type"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:508 ../../diskdrake/removable.pm_.c:48
-msgid "Which filesystem do you want?"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:514
-msgid "Switching from ext2 to ext3"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:544
-#, c-format
-msgid "Where do you want to mount loopback file %s?"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:545 ../../diskdrake/interactive.pm_.c:572
-#, c-format
-msgid "Where do you want to mount device %s?"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:551
-msgid ""
-"Can't unset mount point as this partition is used for loop back.\n"
-"Remove the loopback first"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:596
-msgid "Computing FAT filesystem bounds"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:596 ../../diskdrake/interactive.pm_.c:655
-#: ../../install_interactive.pm_.c:130
-msgid "Resizing"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:628
-msgid "This partition is not resizeable"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:633
-msgid "All data on this partition should be backed-up"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:635
-#, c-format
-msgid "After resizing partition %s, all data on this partition will be lost"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:640
-msgid "Choose the new size"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:641
-msgid "New size in MB: "
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:694
-msgid "Which disk do you want to move it to?"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:695
-msgid "Sector"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:696
-msgid "Which sector do you want to move it to?"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:699
-msgid "Moving"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:699
-msgid "Moving partition..."
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:716
-msgid "Choose an existing RAID to add to"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:717 ../../diskdrake/interactive.pm_.c:734
-msgid "new"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:732
-msgid "Choose an existing LVM to add to"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:737
-msgid "LVM name?"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:777
-msgid "This partition can't be used for loopback"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:789
-msgid "Loopback"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:790
-msgid "Loopback file name: "
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:795
-msgid "Give a file name"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:798
-msgid "File already used by another loopback, choose another one"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:799
-msgid "File already exists. Use it?"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:822
-msgid "Mount options"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:829
-msgid "Various"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:892 ../../standalone/drakfloppy_.c:104
-msgid "device"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:893
-msgid "level"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:894
-msgid "chunk size"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:909
-msgid "Be careful: this operation is dangerous."
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:924
-msgid "What type of partitioning?"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:940
-#, c-format
-msgid "The package %s is needed. Install it?"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:954
-msgid ""
-"Sorry I won't accept to create /boot so far onto the drive (on a cylinder > "
-"1024).\n"
-"Either you use LILO and it won't work, or you don't use LILO and you don't "
-"need /boot"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:958
-msgid ""
-"The partition you've selected to add as root (/) is physically located "
-"beyond\n"
-"the 1024th cylinder of the hard drive, and you have no /boot partition.\n"
-"If you plan to use the LILO boot manager, be careful to add a /boot partition"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:964
-msgid ""
-"You've selected a software RAID partition as root (/).\n"
-"No bootloader is able to handle this without a /boot partition.\n"
-"So be careful to add a /boot partition"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:984
-#, c-format
-msgid "Partition table of drive %s is going to be written to disk!"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:988
-msgid "You'll need to reboot before the modification can take place"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:999
-#, c-format
-msgid "After formatting partition %s, all data on this partition will be lost"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1001
-msgid "Formatting"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1002
-#, c-format
-msgid "Formatting loopback file %s"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1003
-#: ../../install_steps_interactive.pm_.c:473
-#, c-format
-msgid "Formatting partition %s"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1014
-msgid "Hide files"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1014
-msgid "Move files to the new partition"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1015
-#, c-format
-msgid ""
-"Directory %s already contains data\n"
-"(%s)"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1026
-msgid "Moving files to the new partition"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1030
-#, c-format
-msgid "Copying %s"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1034
-#, c-format
-msgid "Removing %s"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1044
-#, c-format
-msgid "partition %s is now known as %s"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1065
-#: ../../diskdrake/interactive.pm_.c:1124
-msgid "Device: "
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1066
-#, c-format
-msgid "DOS drive letter: %s (just a guess)\n"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1070
-#: ../../diskdrake/interactive.pm_.c:1078
-#: ../../diskdrake/interactive.pm_.c:1142
-msgid "Type: "
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1074
-msgid "Name: "
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1082
-#, c-format
-msgid "Start: sector %s\n"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1083
-#, c-format
-msgid "Size: %s"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1085
-#, c-format
-msgid ", %s sectors"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1087
-#, c-format
-msgid "Cylinder %d to %d\n"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1088
-msgid "Formatted\n"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1089
-msgid "Not formatted\n"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1090
-msgid "Mounted\n"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1091
-#, c-format
-msgid "RAID md%s\n"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1093
-#, c-format
-msgid ""
-"Loopback file(s):\n"
-" %s\n"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1094
-msgid ""
-"Partition booted by default\n"
-" (for MS-DOS boot, not for lilo)\n"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1096
-#, c-format
-msgid "Level %s\n"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1097
-#, c-format
-msgid "Chunk size %s\n"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1098
-#, c-format
-msgid "RAID-disks %s\n"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1100
-#, c-format
-msgid "Loopback file name: %s"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1103
-msgid ""
-"\n"
-"Chances are, this partition is\n"
-"a Driver partition, you should\n"
-"probably leave it alone.\n"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1106
-msgid ""
-"\n"
-"This special Bootstrap\n"
-"partition is for\n"
-"dual-booting your system.\n"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1125
-#, c-format
-msgid "Size: %s\n"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1126
-#, c-format
-msgid "Geometry: %s cylinders, %s heads, %s sectors\n"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1127
-msgid "Info: "
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1128
-#, c-format
-msgid "LVM-disks %s\n"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1129
-#, c-format
-msgid "Partition table type: %s\n"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1130
-#, c-format
-msgid "on channel %d id %d\n"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1144
-#, c-format
-msgid "Options: %s"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1160
-msgid "Filesystem encryption key"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1161
-msgid "Choose your filesystem encryption key"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1164
-#, c-format
-msgid "This encryption key is too simple (must be at least %d characters long)"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1165
-msgid "The encryption keys do not match"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1168
-msgid "Encryption key"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1169
-msgid "Encryption key (again)"
-msgstr ""
-
-#: ../../diskdrake/removable.pm_.c:47
-msgid "Change type"
-msgstr ""
-
-#: ../../diskdrake/removable_gtk.pm_.c:28
-msgid "Please click on a medium"
-msgstr ""
-
-#: ../../diskdrake/smbnfs_gtk.pm_.c:162
-#, c-format
-msgid "Can't login using username %s (bad password?)"
-msgstr ""
-
-#: ../../diskdrake/smbnfs_gtk.pm_.c:166 ../../diskdrake/smbnfs_gtk.pm_.c:175
-msgid "Domain Authentication Required"
-msgstr ""
-
-#: ../../diskdrake/smbnfs_gtk.pm_.c:167
-msgid "Another one"
-msgstr ""
-
-#: ../../diskdrake/smbnfs_gtk.pm_.c:167
-msgid "Which username"
-msgstr ""
-
-#: ../../diskdrake/smbnfs_gtk.pm_.c:176
-msgid ""
-"Please enter your username, password and domain name to access this host."
-msgstr ""
-
-#: ../../diskdrake/smbnfs_gtk.pm_.c:178
-msgid "Username"
-msgstr ""
-
-#: ../../diskdrake/smbnfs_gtk.pm_.c:180
-msgid "Domain"
-msgstr ""
-
-#: ../../diskdrake/smbnfs_gtk.pm_.c:200
-msgid "Search servers"
-msgstr ""
-
-#: ../../fs.pm_.c:551 ../../fs.pm_.c:561 ../../fs.pm_.c:565 ../../fs.pm_.c:569
-#: ../../fs.pm_.c:573 ../../fs.pm_.c:577
-#, c-format
-msgid "%s formatting of %s failed"
-msgstr ""
-
-#: ../../fs.pm_.c:614
-#, c-format
-msgid "I don't know how to format %s in type %s"
-msgstr ""
-
-#: ../../fs.pm_.c:686 ../../fs.pm_.c:715 ../../fs.pm_.c:721
-#, c-format
-msgid "mounting partition %s in directory %s failed"
-msgstr ""
-
-#: ../../fs.pm_.c:706
-#, c-format
-msgid "fsck failed with exit code %d or signal %d"
-msgstr ""
-
-#: ../../fs.pm_.c:736 ../../partition_table.pm_.c:600
-#, c-format
-msgid "error unmounting %s: %s"
-msgstr ""
-
-#: ../../fsedit.pm_.c:21
-msgid "simple"
-msgstr ""
-
-#: ../../fsedit.pm_.c:25
-msgid "with /usr"
-msgstr ""
-
-#: ../../fsedit.pm_.c:30
-msgid "server"
-msgstr ""
-
-#: ../../fsedit.pm_.c:471
-msgid "You can't use JFS for partitions smaller than 16MB"
-msgstr ""
-
-#: ../../fsedit.pm_.c:472
-msgid "You can't use ReiserFS for partitions smaller than 32MB"
-msgstr ""
-
-#: ../../fsedit.pm_.c:491
-msgid "Mount points must begin with a leading /"
-msgstr ""
-
-#: ../../fsedit.pm_.c:492
-#, c-format
-msgid "There is already a partition with mount point %s\n"
-msgstr ""
-
-#: ../../fsedit.pm_.c:496
-#, c-format
-msgid "You can't use a LVM Logical Volume for mount point %s"
-msgstr ""
-
-#: ../../fsedit.pm_.c:498
-msgid "This directory should remain within the root filesystem"
-msgstr ""
-
-#: ../../fsedit.pm_.c:500
-msgid ""
-"You need a true filesystem (ext2/ext3, reiserfs, xfs, or jfs) for this mount "
-"point\n"
-msgstr ""
-
-#: ../../fsedit.pm_.c:502
-#, c-format
-msgid "You can't use an encrypted file system for mount point %s"
-msgstr ""
-
-#: ../../fsedit.pm_.c:560
-msgid "Not enough free space for auto-allocating"
-msgstr ""
-
-#: ../../fsedit.pm_.c:562
-msgid "Nothing to do"
-msgstr ""
-
-#: ../../fsedit.pm_.c:626
-#, c-format
-msgid "Error opening %s for writing: %s"
-msgstr ""
-
-#: ../../fsedit.pm_.c:711
-msgid ""
-"An error occurred - no valid devices were found on which to create new "
-"filesystems. Please check your hardware for the cause of this problem"
-msgstr ""
-
-#: ../../fsedit.pm_.c:734
-msgid "You don't have any partitions!"
-msgstr ""
-
-#: ../../harddrake/bttv.pm_.c:15 ../../harddrake/bttv.pm_.c:63
-msgid "Auto-detect"
-msgstr ""
-
-#: ../../harddrake/bttv.pm_.c:64
-msgid "Unknown|Generic"
-msgstr ""
-
-#: ../../harddrake/bttv.pm_.c:96
-msgid "Unknown|CPH05X (bt878) [many vendors]"
-msgstr ""
-
-#: ../../harddrake/bttv.pm_.c:97
-msgid "Unknown|CPH06X (bt878) [many vendors]"
-msgstr ""
-
-#: ../../harddrake/bttv.pm_.c:193
-msgid ""
-"For most modern TV cards, the bttv module of the GNU/Linux kernel just auto-"
-"detect the rights parameters.\n"
-"If your card is misdetected, you can force the right tuner and card types "
-"here. Just select your tv card parameters if needed"
-msgstr ""
-
-#: ../../harddrake/bttv.pm_.c:196
-msgid "Card model :"
-msgstr ""
-
-#: ../../harddrake/bttv.pm_.c:197
-msgid "PLL setting :"
-msgstr ""
-
-#: ../../harddrake/bttv.pm_.c:198
-msgid "Number of capture buffers :"
-msgstr ""
-
-#: ../../harddrake/bttv.pm_.c:198
-msgid "number of capture buffers for mmap'ed capture"
-msgstr ""
-
-#: ../../harddrake/bttv.pm_.c:199
-msgid "Tuner type :"
-msgstr ""
-
-#: ../../harddrake/bttv.pm_.c:200
-msgid "Radio support :"
-msgstr ""
-
-#: ../../harddrake/bttv.pm_.c:200
-msgid "enable radio support"
-msgstr ""
-
-#: ../../harddrake/ui.pm_.c:12
-msgid "/_Quit"
-msgstr ""
-
-#: ../../harddrake/ui.pm_.c:13 ../../harddrake/ui.pm_.c:14
-#: ../../harddrake/ui.pm_.c:15 ../../standalone/logdrake_.c:110
-msgid "/_Help"
-msgstr ""
-
-#: ../../harddrake/ui.pm_.c:14
-msgid "/_Help..."
-msgstr ""
-
-#: ../../harddrake/ui.pm_.c:15
-msgid "/_About..."
-msgstr ""
-
-#: ../../harddrake/ui.pm_.c:18
-msgid "Bus"
-msgstr ""
-
-#: ../../harddrake/ui.pm_.c:19
-msgid "Module"
-msgstr ""
-
-#: ../../harddrake/ui.pm_.c:20
-msgid "Media class"
-msgstr ""
-
-#: ../../harddrake/ui.pm_.c:21 ../../printerdrake.pm_.c:1004
-msgid "Description"
-msgstr ""
-
-#: ../../harddrake/ui.pm_.c:22
-msgid "Bus identification"
-msgstr ""
-
-#: ../../harddrake/ui.pm_.c:23
-msgid "Location on the bus"
-msgstr ""
-
-#: ../../harddrake/ui.pm_.c:79
-msgid "Harddrake2 version "
-msgstr ""
-
-#: ../../harddrake/ui.pm_.c:109
-msgid "Detected hardware"
-msgstr ""
-
-#: ../../harddrake/ui.pm_.c:123
-msgid "Informations"
-msgstr ""
-
-#: ../../harddrake/ui.pm_.c:140
-msgid "Run config tool"
-msgstr ""
-
-#: ../../harddrake/ui.pm_.c:146
-msgid "Configure module"
-msgstr ""
-
-#: ../../harddrake/ui.pm_.c:158
-msgid "Detection in progress"
-msgstr ""
-
-#: ../../harddrake/ui.pm_.c:158 ../../interactive.pm_.c:387
-msgid "Please wait"
-msgstr ""
-
-#: ../../harddrake/ui.pm_.c:202
-msgid "primary"
-msgstr ""
-
-#: ../../harddrake/ui.pm_.c:202
-msgid "secondary"
-msgstr ""
-
-#: ../../harddrake/ui.pm_.c:239
-#, c-format
-msgid "Running \"%s\" ..."
-msgstr ""
-
-#: ../../harddrake/ui.pm_.c:259
-msgid "About Harddrake"
-msgstr ""
-
-#: ../../harddrake/ui.pm_.c:260
-msgid ""
-"This is HardDrake, a Mandrake hardware configuration tool.\n"
-"Version:"
-msgstr ""
-
-#: ../../harddrake/ui.pm_.c:261
-msgid "Author:"
-msgstr ""
-
-#: ../../harddrake/ui.pm_.c:268
-msgid "Harddrake help"
-msgstr ""
-
-#: ../../harddrake/ui.pm_.c:269
-msgid ""
-"Description of the fields:\n"
-"\n"
-"Bus: this is the physical bus on which the device is plugged (eg: PCI, "
-"USB, ...)\n"
-"\n"
-"Bus identification: \n"
-"- pci devices : this list the vendor, device, subvendor and subdevice PCI "
-"ids\n"
-"\n"
-"Description: this field describe the device\n"
-"\n"
-"Location on the bus: \n"
-"- pci devices: this gives the PCI slot, device and function of this card\n"
-"- eide devices: the device is either a slave or a master device\n"
-"- scsi devices: the scsi bus and the scsi device ids\n"
-"\n"
-"Media class: class of hardware device\n"
-"\n"
-"Module: the module of the GNU/Linux kernel that handle that device\n"
-"\n"
-"Vendor: the vendor name of the device\n"
-msgstr ""
-
-#: ../../help.pm_.c:13
-msgid ""
-"GNU/Linux is a multiuser system, and this means that each user can have his\n"
-"own preferences, his own files and so on. You can read the ``User Guide''\n"
-"to learn more. But unlike \"root\", which is the administrator, the users\n"
-"you will add here will not be entitled to change anything except their own\n"
-"files and their own configuration. You will have to create at least one\n"
-"regular user for yourself. That account is where you should log in for\n"
-"routine use. Although it is very practical to log in as \"root\" everyday,\n"
-"it may also be very dangerous! The slightest mistake could mean that your\n"
-"system would not work any more. If you make a serious mistake as a regular\n"
-"user, you may only lose some information, but not the entire system.\n"
-"\n"
-"First, you have to enter your real name. This is not mandatory, of course\n"
-"as you can actually enter whatever you want. DrakX will then take the first\n"
-"word you have entered in the box and will bring it over to the \"User\n"
-"name\". This is the name this particular user will use to log onto the\n"
-"system. You can change it. You then have to enter a password here. A\n"
-"non-privileged (regular) user's password is not as crucial as \"root\"' one\n"
-"from a security point of view, but that is no reason to neglect it: after\n"
-"all, your files are at risk.\n"
-"\n"
-"If you click on \"Accept user\", you can then add as many as you want. Add\n"
-"a user for each one of your friends: your father or your sister, for\n"
-"example. When you finish adding all the users you want, select \"Done\".\n"
-"\n"
-"Clicking the \"Advanced\" button allows you to change the default \"shell\"\n"
-"for that user (bash by default)."
-msgstr ""
-
-#: ../../help.pm_.c:41
-msgid ""
-"Listed above are the existing Linux partitions detected on your hard 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"
-"able to install enough software. If you want to store your data on a\n"
-"separate partition, you will also need to create a partition for \"/home\"\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 drive type\", \"hard 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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
-"\"second lowest SCSI ID\", etc."
-msgstr ""
-
-#: ../../help.pm_.c:72
-msgid ""
-"The Mandrake Linux 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."
-msgstr ""
-
-#: ../../help.pm_.c:77
-msgid ""
-"It is now time to specify which programs you wish to install on your\n"
-"system. There are thousands of packages available for Mandrake Linux, 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"
-"be asked to specify the CDs you currently have (in Expert mode only). Check\n"
-"the CD labels and highlight the boxes corresponding to the CDs you have\n"
-"available for installation. Click \"OK\" when you are ready to continue.\n"
-"\n"
-"Packages are sorted in groups corresponding to a particular use of your\n"
-"machine. The groups themselves are sorted into four sections:\n"
-"\n"
-" * \"Workstation\": if you plan to use your machine as a workstation, "
-"select\n"
-"one or more of the corresponding groups;\n"
-"\n"
-" * \"Development\": if your machine is to be used for programming, choose\n"
-"the desired group(s);\n"
-"\n"
-" * \"Server\": if your machine is intended to be a server, you will be able\n"
-"to select which of the most common services you wish to install on your\n"
-"machine;\n"
-"\n"
-" * \"Graphical Environment\": finally, this is where you will choose your\n"
-"preferred graphical environment. At least one must be selected if you want\n"
-"to have a graphical workstation!\n"
-"\n"
-"Moving the mouse cursor over a group name will display a short explanatory\n"
-"text about that group. If you deselect all groups when performing a regular\n"
-"installation (by opposition to an upgrade), a dialog will pop up proposing\n"
-"different options for a minimal installation:\n"
-"\n"
-" * \"With X\": install the fewer packages possible to have a working\n"
-"graphical desktop;\n"
-"\n"
-" * \"With basic documentation\": installs the base system plus basic\n"
-"utilities and their documentation. This installation is suitable for\n"
-"setting up a server;\n"
-"\n"
-" * \"Truly minimal install\": will install the strict minimum necessary to\n"
-"get a working Linux system, in command line only. This installation is\n"
-"about 65Mb large.\n"
-"\n"
-"You can check the \"Individual package selection\" box, which is useful if\n"
-"you are familiar with the packages being offered or if you want to have\n"
-"total control over what will be installed.\n"
-"\n"
-"If you started the installation in \"Upgrade\" mode, you can unselect all\n"
-"groups to avoid installing any new package. This is useful for repairing or\n"
-"updating an existing system."
-msgstr ""
-
-#: ../../help.pm_.c:128
-msgid ""
-"Finally, depending on whether or not you selected individual packages, you\n"
-"will be presented a tree containing all packages classified by groups and\n"
-"subgroups. While browsing the tree, you can select entire groups,\n"
-"subgroups, or individual packages.\n"
-"\n"
-"Whenever you select a package on the tree, a description appears on the\n"
-"right. When your selection is finished, click the \"Install\" button which\n"
-"will then launch the installation process. Depending on the speed of your\n"
-"hardware and the number of packages that need to be installed, it may take\n"
-"a while to complete the process. An estimate of the time it will take to\n"
-"install everything is displayed on the screen, to help you gauge if there\n"
-"is sufficient time to enjoy a cup of coffee.\n"
-"\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 Mandrake Linux, 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 Mandrake Linux 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"
-"default. !!\n"
-"\n"
-"The \"Automatic dependencies\" option simply disables the warning dialog\n"
-"which appears whenever the installer automatically selects a package. This\n"
-"occurs because it has determined that it needs to satisfy a dependency with\n"
-"another package in order to successfully complete the installation.\n"
-"\n"
-"The tiny floppy disk icon at the bottom of the list allows to load the\n"
-"package list chosen during a previous installation. Clicking on this icon\n"
-"will ask you to insert a floppy disk previously created at the end of\n"
-"another installation. See the second tip of last step on how to create such\n"
-"a floppy."
-msgstr ""
-
-#: ../../help.pm_.c:164
-msgid ""
-"You are now proposed to set up your Internet/network connection. If you\n"
-"wish to connect your computer to the Internet or to a local network, click\n"
-"\"OK\". The autodetection of network devices and modem will be launched. If\n"
-"this detection fails, uncheck the \"Use auto detection\" box next time. You\n"
-"may also choose not to configure the network, or do it later; in that case,\n"
-"simply click the \"Cancel\" button.\n"
-"\n"
-"Available connections are: traditional modem, ISDN modem, ADSL connection,\n"
-"cable modem, and finally a simple LAN connection (Ethernet).\n"
-"\n"
-"Here, we will not detail each configuration. Simply make sure that you have\n"
-"all the parameters from your Internet Service Provider or system\n"
-"administrator.\n"
-"\n"
-"You can consult the ``User Guide'' chapter about Internet connections for\n"
-"details about the configuration, or simply wait until your system is\n"
-"installed and use the program described there to configure your connection.\n"
-"\n"
-"If you wish to configure the network later after installation, or if you\n"
-"are finished configuring your network connection, click \"Cancel\"."
-msgstr ""
-
-#: ../../help.pm_.c:186
-msgid ""
-"You may now choose which services you wish to start at boot time.\n"
-"\n"
-"Here are presented all the services available with the current\n"
-"installation. Review them carefully and uncheck those which are not always\n"
-"needed at boot time.\n"
-"\n"
-"You can get a short explanatory text about a service by selecting a\n"
-"specific service. However, if you are not sure whether a service is useful\n"
-"or not, 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 will probably not want to start any services which you do not\n"
-"need. Please remember that several services can be dangerous if they are\n"
-"enabled on a server. In general, select only the services you really need.\n"
-"!!"
-msgstr ""
-
-#: ../../help.pm_.c:203
-msgid ""
-"GNU/Linux manages time in GMT (Greenwich Mean Time) and translates it in\n"
-"local time according to the time zone you selected. It is however possible\n"
-"to deactivate this by deselecting \"Hardware clock set to GMT\" so that the\n"
-"hardware clock is the same as the system clock. This is useful when the\n"
-"machine is hosting another operating system like Windows.\n"
-"\n"
-"The \"Automatic time synchronization\" option will automatically regulate\n"
-"the clock by connecting to a remote time server on the Internet. In the\n"
-"list that is presented, choose a server located near you. Of course you\n"
-"must have a working Internet connection for this feature to work. It will\n"
-"actually install on your machine a time server which can be optionally used\n"
-"by other machines on your local network."
-msgstr ""
-
-#: ../../help.pm_.c:217
-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 Mandrake Linux rely. In this section, DrakX\n"
-"will try to configure X automatically.\n"
-"\n"
-"It is extremely rare for it to fail, unless the hardware is very old (or\n"
-"very new). If it succeeds, it will start X automatically with the best\n"
-"resolution possible, depending on the size of the monitor. A window will\n"
-"then appear and ask you if you can see it.\n"
-"\n"
-"If you are doing an \"Expert\" installation, you will enter the X\n"
-"configuration wizard. See the corresponding section of the manual for more\n"
-"information about this wizard.\n"
-"\n"
-"If you can see the message during the test, and answer \"Yes\", then DrakX\n"
-"will proceed to the next step. If you cannot see the message, it simply\n"
-"means that the configuration was wrong and the test will automatically end\n"
-"after 10 seconds, restoring the screen."
-msgstr ""
-
-#: ../../help.pm_.c:237
-msgid ""
-"The first time you try the X configuration, you may not be very satisfied\n"
-"with its display (screen is too small, shifted left or right...). Hence,\n"
-"even if X starts up correctly, DrakX then asks you if the configuration\n"
-"suits you. It will also propose to change it by displaying a list of valid\n"
-"modes it could find, asking you to select one.\n"
-"\n"
-"As a last resort, if you still cannot get X to work, choose \"Change\n"
-"graphics card\", select \"Unlisted card\", and when prompted on which\n"
-"server, choose \"FBDev\". This is a failsafe option which works with any\n"
-"modern graphics card. Then choose \"Test again\" to be sure."
-msgstr ""
-
-#: ../../help.pm_.c:249
-msgid ""
-"Finally, you will be asked whether you want to see the graphical interface\n"
-"at boot. Note this question will be asked even if you chose not to test the\n"
-"configuration. Obviously, you want to answer \"No\" if your machine is to\n"
-"act as a server, or if you were not successful in getting the display\n"
-"configured."
-msgstr ""
-
-#: ../../help.pm_.c:256
-msgid ""
-"The Mandrake LinuxCD-ROM has a built-in rescue mode. You can access it by\n"
-"booting from the CD-ROM, press the >>F1<< key at boot and type >>rescue<<\n"
-"at the prompt. But in case your computer cannot boot from the CD-ROM, you\n"
-"should come back to this step for help in at least two situations:\n"
-"\n"
-" * when installing the bootloader, DrakX will rewrite the boot sector (MBR)\n"
-"of your main disk (unless you are using another boot manager), to allow you\n"
-"to start up with either Windows or GNU/Linux (assuming you have Windows in\n"
-"your system). If you need to reinstall Windows, the Microsoft install\n"
-"process will rewrite the boot sector, and then you will not be able to\n"
-"start GNU/Linux!\n"
-"\n"
-" * if a problem arises and you cannot start up GNU/Linux from the hard "
-"disk,\n"
-"this floppy disk will be the only means of starting up GNU/Linux. It\n"
-"contains a fair number of system tools for restoring a system, which has\n"
-"crashed due to a power failure, an unfortunate typing error, a typo in a\n"
-"password, or any other reason.\n"
-"\n"
-"When you click on this step, you will be asked to enter a disk inside the\n"
-"drive. The floppy disk you will insert must be empty or contain data which\n"
-"you do not need. You will not have to format it since DrakX will rewrite\n"
-"the whole disk."
-msgstr ""
-
-#: ../../help.pm_.c:280
-msgid ""
-"At this point, you need to choose where you want to install the Mandrake\n"
-"Linux operating system on your hard drive. If your hard drive is empty or\n"
-"if an existing operating system is using all the available space, you will\n"
-"need to partition it. Basically, partitioning a hard drive consists of\n"
-"logically dividing it to create space to install your new Mandrake Linux\n"
-"system.\n"
-"\n"
-"Because the partitioning process' effects are usually irreversible,\n"
-"partitioning can be intimidating and stressful if you are an inexperienced\n"
-"user. Fortunately, there is a wizard which simplifies this process. Before\n"
-"beginning, please consult the manual and take your time.\n"
-"\n"
-"If you are running the installation in Expert mode, you will enter\n"
-"DiskDrake, the Mandrake Linux partitioning tool, which allows you to\n"
-"fine-tune your partitions. See the DiskDrake section in the ``User Guide''.\n"
-"From the installation interface, you can use the wizards as described here\n"
-"by clicking the dialog's \"Wizard\" button.\n"
-"\n"
-"If partitions have already been defined, either from a previous\n"
-"installation or from another partitioning tool, simply select those to\n"
-"install your Linux system.\n"
-"\n"
-"If partitions are not defined, you will need to create them using the\n"
-"wizard. Depending on your hard drive configuration, several options are\n"
-"available:\n"
-"\n"
-" * \"Use free space\": this option will simply lead to an automatic\n"
-"partitioning of your blank drive(s). You will not be prompted further;\n"
-"\n"
-" * \"Use existing partition\": the wizard has detected one or more existing\n"
-"Linux partitions on your hard drive. If you want to use them, choose this\n"
-"option;\n"
-"\n"
-" * \"Use the free space on the Windows; partition\": if MicrosoftWindows is\n"
-"installed on your hard drive and takes all the space available on it, you\n"
-"have to create free space for Linux data. To do so, you can delete your\n"
-"MicrosoftWindows partition and data (see ``Erase entire disk'' or ``Expert\n"
-"mode'' solutions) or resize your MicrosoftWindows partition. Resizing can\n"
-"be performed without the loss of any data, provided you previously\n"
-"defragment the Windows partition. Backing up your data won't hurt either..\n"
-"This solution is recommended if you want to use both Mandrake Linux and\n"
-"MicrosoftWindows on the same computer.\n"
-"\n"
-" Before choosing this option, please understand that after this "
-"procedure,\n"
-"the size of your MicrosoftWindows partition will be smaller than at the\n"
-"present time. You will have less free space under MicrosoftWindows to store\n"
-"your data or to install new software;\n"
-"\n"
-" * \"Erase entire disk\": if you want to delete all data and all partitions\n"
-"present on your hard drive and replace them with your new Mandrake Linux\n"
-"system, choose this option. Be careful with this solution because you will\n"
-"not be able to revert your choice after you confirm;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Remove Windows\": this will simply erase everything on the drive and\n"
-"begin fresh, partitioning everything from scratch. All data on your disk\n"
-"will be lost;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Expert mode\": choose this option if you want to manually partition\n"
-"your hard drive. Be careful it is a powerful but dangerous choice. You can\n"
-"very easily lose all your data. Hence, do not choose this unless you know\n"
-"what you are doing."
-msgstr ""
-
-#: ../../help.pm_.c:347
-msgid ""
-"There you are. Installation is now complete and your GNU/Linux system is\n"
-"ready to use. Just click \"OK\" to reboot the system. You can start\n"
-"GNU/Linux or Windows, whichever you prefer (if you are dual-booting), as\n"
-"soon as the computer has booted up again.\n"
-"\n"
-"The \"Advanced\" button (in Expert mode only) shows two more buttons to:\n"
-"\n"
-" * \"generate auto-install floppy\": to create an installation floppy disk\n"
-"which will automatically perform a whole installation without the help of\n"
-"an operator, similar to the installation you just configured.\n"
-"\n"
-" Note that two different options are available after clicking the button:\n"
-"\n"
-" * \"Replay\". This is a partially automated installation as the\n"
-"partitioning step (and only this one) remains interactive;\n"
-"\n"
-" * \"Automated\". Fully automated installation: the hard disk is "
-"completely\n"
-"rewritten, all data is lost.\n"
-"\n"
-" This feature is very handy when installing a great number of similar\n"
-"machines. See the Auto install section on our web site;\n"
-"\n"
-" * \"Save packages selection\"(*): saves the package selection as done\n"
-"previously. Then, when doing another installation, insert the floppy inside\n"
-"the drive and run the installation going to the help screen by pressing on\n"
-"the [F1] key, and by issuing >>linux defcfg=\"floppy\"<<.\n"
-"\n"
-"(*) You need a FAT-formatted floppy (to create one under GNU/Linux, type\n"
-"\"mformat a:\")"
-msgstr ""
-
-#: ../../help.pm_.c:378
-msgid ""
-"Any partitions that have been newly defined must be formatted for use\n"
-"(formatting means creating a filesystem).\n"
-"\n"
-"At this time, you may wish to reformat some already existing partitions to\n"
-"erase any data they contain. If you wish to do that, please select those\n"
-"partitions as well.\n"
-"\n"
-"Please note that it is 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\n"
-"reformat partitions containing data that you wish to keep (typically\n"
-"\"/home\").\n"
-"\n"
-"Please be careful when selecting partitions. After formatting, all data on\n"
-"the selected partitions will be deleted and you will not be able to recover\n"
-"any of it.\n"
-"\n"
-"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"
-"Mandrake Linux operating system installation.\n"
-"\n"
-"Click on \"Advanced\" if you wish to select partitions that will be checked\n"
-"for bad blocks on the disk."
-msgstr ""
-
-#: ../../help.pm_.c:404
-msgid ""
-"Your new Mandrake Linux operating system is currently being installed.\n"
-"Depending on the number of packages you will be installing and the speed of\n"
-"your computer, this operation could take from a few minutes to a\n"
-"significant amount of time.\n"
-"\n"
-"Please be patient."
-msgstr ""
-
-#: ../../help.pm_.c:412
-msgid ""
-"At the time you are installing Mandrake Linux, it is likely that some\n"
-"packages have been updated since the initial release. Some bugs may have\n"
-"been fixed, and security issues solved. To allow you to benefit from these\n"
-"updates, you are now proposed to download them from the Internet. Choose\n"
-"\"Yes\" if you have a working Internet connection, or \"No\" if you prefer\n"
-"to install updated packages later.\n"
-"\n"
-"Choosing \"Yes\" displays a list of places from which updates can be\n"
-"retrieved. Choose the one nearest you. Then a package-selection tree\n"
-"appears: review the selection, and press \"Install\" to retrieve and\n"
-"install the selected package(s), or \"Cancel\" to abort."
-msgstr ""
-
-#: ../../help.pm_.c:425
-msgid ""
-"Before continuing, you should read carefully the terms of the license. It\n"
-"covers the whole Mandrake Linux 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."
-msgstr ""
-
-#: ../../help.pm_.c:432
-msgid ""
-"At this point, it is time to choose the security level desired for the\n"
-"machine. As a rule of thumb, the more exposed the machine is, and the more\n"
-"the data stored in it is crucial, the higher the security level should be.\n"
-"However, a higher security level is generally obtained at the expense of\n"
-"easiness of use. Refer to the \"msec\" chapter of the ``Reference Manual''\n"
-"to get more information about the meaning of these levels.\n"
-"\n"
-"If you do not know what to choose, keep the default option."
-msgstr ""
-
-#: ../../help.pm_.c:442
-msgid ""
-"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandrake Linux 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"
-"partitions must be defined.\n"
-"\n"
-"To create partitions, you must first select a hard 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"
-"\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"
-"\n"
-" * \"More\": gives access to additional features:\n"
-"\n"
-" * \"Save partition table\": saves the partition table to a floppy. "
-"Useful\n"
-"for later partition-table recovery if necessary. It is strongly recommended\n"
-"to perform this step;\n"
-"\n"
-" * \"Restore partition table\": allows to restore a previously saved\n"
-"partition table from floppy disk;\n"
-"\n"
-" * \"Rescue partition table\": if your partition table is damaged, you "
-"can\n"
-"try to recover it using this option. Please be careful and remember that it\n"
-"can fail;\n"
-"\n"
-" * \"Reload partition table\": discards all changes and loads your "
-"initial\n"
-"partition table;\n"
-"\n"
-" * \"Removable media automounting\": unchecking this option will force "
-"users\n"
-"to manually mount and unmount removable medias such as floppies and\n"
-"CD-ROMs.\n"
-"\n"
-" * \"Wizard\": 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 knowledge of\n"
-"partitioning;\n"
-"\n"
-" * \"Undo\": use this option to cancel your changes;\n"
-"\n"
-" * \"Toggle to normal/expert mode\": allows additional actions on "
-"partitions\n"
-"(type, options, format) and gives more information;\n"
-"\n"
-" * \"Done\": when you are finished partitioning your hard 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"
-"partitions using [Tab] and [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"
-"\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_.c:513
-msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
-"Please choose the one you want to resize in order to install your new\n"
-"Mandrake Linux 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"
-"\"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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard 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"
-"disk or partition is called \"C:\")."
-msgstr ""
-
-#: ../../help.pm_.c:544
-msgid "Please be patient. This operation can take several minutes."
-msgstr ""
-
-#: ../../help.pm_.c:547
-msgid ""
-"DrakX now needs to know if you want to perform a default (\"Recommended\")\n"
-"installation or if you want to have greater control (\"Expert\"). You can\n"
-"also choose to do a new install or an upgrade of an existing Mandrake Linux\n"
-"system:\n"
-"\n"
-" * \"Install\": completely wipes out the old system. In fact, depending on\n"
-"what currently holds your machine, you will be able to keep some old (Linux\n"
-"or other) partitions unchanged;\n"
-"\n"
-" * \"Upgrade\": this installation class allows to simply update the "
-"packages\n"
-"currently installed on your Mandrake Linux system. It keeps the current\n"
-"partitions of your hard drives as well as user configurations. All other\n"
-"configuration steps remain available with respect to plain installation;\n"
-"\n"
-" * \"Upgrade Packages Only\": this brand new class allows to upgrade an\n"
-"existing Mandrake Linux system while keeping all system configurations\n"
-"unchanged. Adding new packages to the current installation is also\n"
-"possible.\n"
-"\n"
-"Upgrades should work fine for Mandrake Linux systems starting from \"8.1\"\n"
-"release.\n"
-"\n"
-"Depending on your knowledge of GNU/Linux, select one of the following\n"
-"choices:\n"
-"\n"
-" * Recommended: choose this if you have never installed a GNU/Linux\n"
-"operating system. The installation will be very easy and you will only be\n"
-"asked a few questions;\n"
-"\n"
-" * Expert: if you have a good knowledge of GNU/Linux, you can choose this\n"
-"installation class. The expert installation will allow you to perform a\n"
-"highly-customized installation. Answering some of the questions can be\n"
-"difficult if you do not have a good knowledge of GNU/Linux, so do not\n"
-"choose this unless you know what you are doing."
-msgstr ""
-
-#: ../../help.pm_.c:583
-msgid ""
-"Normally, DrakX selects the right keyboard for you (depending on the\n"
-"language you have chosen) and you won't even see this step. However, you\n"
-"might not have a keyboard that corresponds exactly to your language: for\n"
-"example, if you are an English speaking Swiss person, you may still want\n"
-"your keyboard to be a Swiss keyboard. Or if you speak English but are\n"
-"located in Quebec, you may find yourself in the same situation. In both\n"
-"cases, you will have to go back to this installation step and select an\n"
-"appropriate keyboard from the list.\n"
-"\n"
-"Click on the \"More\" button to be presented with the complete list of\n"
-"supported keyboards."
-msgstr ""
-
-#: ../../help.pm_.c:596
-msgid ""
-"Please choose your preferred language for installation and system usage.\n"
-"\n"
-"Clicking on the \"Advanced\" button will allow you to select other\n"
-"languages to be installed on your workstation. Selecting other languages\n"
-"will install the language-specific files for system documentation and\n"
-"applications. For example, if you will host users from Spain on your\n"
-"machine, select English as the main language in the tree view and in the\n"
-"Advanced section click on the box corresponding to \"Spanish|Spain\".\n"
-"\n"
-"Note that multiple languages may be installed. Once you have selected any\n"
-"additional locales, click the \"OK\" button to continue."
-msgstr ""
-
-#: ../../help.pm_.c:609
-msgid ""
-"DrakX generally detects the number of buttons your mouse has. If not, it\n"
-"assumes you have a two-button mouse and will set it up for third-button\n"
-"emulation. DrakX will automatically know whether it is a PS/2, serial or\n"
-"USB mouse.\n"
-"\n"
-"If you wish to specify a different type of mouse select the appropriate\n"
-"type from the provided list.\n"
-"\n"
-"If you choose a mouse other than the default, a test screen will be\n"
-"displayed. Use the buttons and wheel to verify that the settings are\n"
-"correct. If the mouse is not working well, press the space bar or [Return]\n"
-"to \"Cancel\" and choose again."
-msgstr ""
-
-#: ../../help.pm_.c:623
-msgid ""
-"Please select the correct port. For example, the \"COM1\" port under\n"
-"Windows is named \"ttyS0\" under GNU/Linux."
-msgstr ""
-
-#: ../../help.pm_.c:627
-msgid ""
-"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 choose\n"
-"not to enter a password, but we strongly advise you against this if only\n"
-"for one reason: do not think that because you booted GNU/Linux that your\n"
-"other operating systems are safe from mistakes. Since \"root\" can overcome\n"
-"all limitations and unintentionally erase all data on partitions by\n"
-"carelessly accessing the partitions themselves, it is important for it to\n"
-"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."
-msgstr ""
-
-#: ../../help.pm_.c:663
-msgid ""
-"LILO and grub are GNU/Linux bootloaders. This stage, normally, is totally\n"
-"automated. In fact, DrakX analyzes the disk boot sector and acts\n"
-"accordingly, depending on what it finds here:\n"
-"\n"
-" * if a Windows boot sector is found, it will replace it with a grub/LILO\n"
-"boot sector. Hence, you will be able to load either GNU/Linux or another\n"
-"OS;\n"
-"\n"
-" * if a grub or LILO boot sector is found, it will replace it with a new\n"
-"one.\n"
-"\n"
-"If in doubt, DrakX will display a dialog with various options.\n"
-"\n"
-" * \"Bootloader to use\": you have three choices:\n"
-"\n"
-" * \"GRUB\": if you prefer grub (text menu).\n"
-"\n"
-" * \"LILO with graphical menu\": if you prefer LILO with its graphical\n"
-"interface.\n"
-"\n"
-" * \"LILO with text menu\": if you prefer LILO with its text menu "
-"interface.\n"
-"\n"
-" * \"Boot device\": in most cases, you will not change the default\n"
-"(\"/dev/hda\"), but if you prefer, the bootloader can be installed on the\n"
-"second hard drive (\"/dev/hdb\"), or even on a floppy disk (\"/dev/fd0\");\n"
-"\n"
-" * \"Delay before booting the default image\": when rebooting the computer,\n"
-"this is the delay granted to the user to choose in the bootloader menu,\n"
-"another boot entry than the default one.\n"
-"\n"
-"!! Beware that if you choose not to install a bootloader (by selecting\n"
-"\"Cancel\" here), you must ensure that you have a way to boot your Mandrake\n"
-"Linux system! Also, be sure you know what you do before changing any of the\n"
-"options. !!\n"
-"\n"
-"Clicking the \"Advanced\" button in this dialog will offer many advanced\n"
-"options, which are reserved to the expert user.\n"
-"\n"
-"After you have configured the general bootloader parameters, the list of\n"
-"boot options which will be available at boot time will be displayed.\n"
-"\n"
-"If there is another operating system installed on your machine, it will\n"
-"automatically be added to the boot menu. Here, you can choose to fine-tune\n"
-"the existing options. Select an entry and click \"Modify\" to modify or\n"
-"remove it; \"Add\" creates a new entry; and \"Done\" goes on to the next\n"
-"installation step."
-msgstr ""
-
-#: ../../help.pm_.c:711
-msgid ""
-"LILO (the LInux LOader) and grub are bootloaders: they are able to boot\n"
-"either GNU/Linux or any other operating system present on your computer.\n"
-"Normally, these other operating systems are correctly detected and\n"
-"installed. If this is not the case, you can add an entry by hand in this\n"
-"screen. Be careful to choose the correct parameters.\n"
-"\n"
-"You may also not want to give access to these other operating systems to\n"
-"anyone. In which case, you can delete the corresponding entries. But then,\n"
-"you will need a boot disk in order to boot those other operating systems!"
-msgstr ""
-
-#: ../../help.pm_.c:722
-msgid ""
-"You must indicate where you wish to place the information required to boot\n"
-"to GNU/Linux.\n"
-"\n"
-"Unless you know exactly what you are doing, choose \"First sector of drive\n"
-"(MBR)\"."
-msgstr ""
-
-#: ../../help.pm_.c:729
-msgid ""
-"Here, we select a printing system for your computer. Other OSs may offer\n"
-"you one, but Mandrake Linux offers three.\n"
-"\n"
-" * \"pdq\" which means ``print, don't queue'', is the choice if you have a\n"
-"direct connection to your printer and you want to be able to panic out of\n"
-"printer jams, and you do not have networked printers. It will handle only\n"
-"very simple network cases and is somewhat slow for networks. Pick \"pdq\"\n"
-"if this is your maiden voyage to GNU/Linux. You can change your choices\n"
-"after installation by running PrinterDrake from the Mandrake Control Center\n"
-"and clicking the expert button.\n"
-"\n"
-" * \"CUPS\"``Common Unix Printing System'', is excellent at printing to "
-"your\n"
-"local printer and also halfway-around the planet. It is simple and can act\n"
-"as a server or a client for the ancient \"lpd\" printing system. Hence, it\n"
-"is compatible with the systems that went before. It can do many tricks, but\n"
-"the basic setup is almost as easy as \"pdq\". If you need this to emulate\n"
-"an \"lpd\" server, you must turn on the \"cups-lpd\" daemon. It has\n"
-"graphical front-ends for printing or choosing printer options.\n"
-"\n"
-" * \"lprNG\"``line printer daemon New Generation''. This system can do\n"
-"approximately the same things the others can do, but it will print to\n"
-"printers mounted on a Novell Network, because it supports the IPX protocol,\n"
-"and it can print directly to shell commands. If you have need of Novell or\n"
-"printing to commands without using a separate pipe construct, use lprNG.\n"
-"Otherwise, CUPS is preferable as it is simpler and better at working over\n"
-"networks."
-msgstr ""
-
-#: ../../help.pm_.c:757
-msgid ""
-"DrakX now detects any IDE device present in your computer. It will also\n"
-"scan for one or more PCI SCSI card(s) on your system. If a SCSI card is\n"
-"found, DrakX will automatically install the appropriate driver.\n"
-"\n"
-"Because hardware detection does not always detect a piece of hardware,\n"
-"DrakX will ask you to confirm if a PCI SCSI card is present. Click \"Yes\"\n"
-"if you know that there is a SCSI card installed in your machine. You will\n"
-"be presented a list of SCSI cards to choose from. Click \"No\" if you have\n"
-"no SCSI hardware. If you are unsure, you can check the list of hardware\n"
-"detected in your machine by selecting \"See hardware info\" and clicking\n"
-"\"OK\". Examine the list of hardware and then click on the \"OK\" button to\n"
-"return to the SCSI interface question.\n"
-"\n"
-"If you have to manually specify your adapter, DrakX will ask if you want to\n"
-"specify options for it. You should allow DrakX to probe the hardware for\n"
-"the card-specific options which the hardware needs to initialize. This\n"
-"usually works well.\n"
-"\n"
-"If DrakX is not able to probe for the options which need to be passed, you\n"
-"will need to provide options to the driver manually. Please review the\n"
-"``User Guide'' (chapter 3, in the ``Collecting Information on Your\n"
-"Hardware'' section) for hints on retrieving the parameters required from\n"
-"hardware documentation, from the manufacturer's web site (if you have\n"
-"Internet access) or from MicrosoftWindows (if you used this hardware with\n"
-"Windows on your system)."
-msgstr ""
-
-#: ../../help.pm_.c:784
-msgid ""
-"You can add additional entries for yaboot, either for other operating\n"
-"systems, alternate kernels, or for an emergency boot image.\n"
-"\n"
-"For other OSs, the entry consists only of a label and the \"root\"\n"
-"partition.\n"
-"\n"
-"For Linux, there are a few possible options:\n"
-"\n"
-" * Label: this is simply the name you will have to type at the yaboot "
-"prompt\n"
-"to select this boot option;\n"
-"\n"
-" * Image: this would be the name of the kernel to boot. Typically, vmlinux\n"
-"or a variation of vmlinux with an extension;\n"
-"\n"
-" * Root: the \"root\" device or ``/'' for your Linux installation;\n"
-"\n"
-" * Append: on Apple hardware, the kernel append option is used quite often\n"
-"to assist in initializing video hardware, or to enable keyboard mouse\n"
-"button emulation for the often lacking 2nd and 3rd mouse buttons on a stock\n"
-"Apple mouse. The following are some examples:\n"
-"\n"
-" video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111 "
-"hda=autotune\n"
-"\n"
-" video=atyfb:vmode:12,cmode:24 adb_buttons=103,111\n"
-"\n"
-" * Initrd: this option can be used either to load initial modules, before\n"
-"the boot device is available, or to load a ramdisk image for an emergency\n"
-"boot situation;\n"
-"\n"
-" * Initrd-size: the default ramdisk size is generally 4,096 bytes. If you\n"
-"need to allocate a large ramdisk, this option can be used;\n"
-"\n"
-" * Read-write: normally the \"root\" partition is initially brought up in\n"
-"read-only, to allow a file system check before the system becomes ``live''.\n"
-"Here, you can override this option;\n"
-"\n"
-" * NoVideo: should the Apple video hardware prove to be exceptionally\n"
-"problematic, you can select this option to boot in ``novideo'' mode, with\n"
-"native frame buffer support;\n"
-"\n"
-" * Default: selects this entry as being the default Linux selection,\n"
-"selectable by just pressing ENTER at the yaboot prompt. This entry will\n"
-"also be highlighted with a ``*'', if you press [Tab] to see the boot\n"
-"selections."
-msgstr ""
-
-#: ../../help.pm_.c:830
-msgid ""
-"Yaboot is a bootloader for NewWorld MacIntosh hardware. It is able to boot\n"
-"either GNU/Linux, MacOS or MacOSX if present on your computer. Normally,\n"
-"these other operating systems are correctly detected and installed. If this\n"
-"is not the case, you can add an entry by hand in this screen. Be careful to\n"
-"choose the correct parameters.\n"
-"\n"
-"Yaboot's main options are:\n"
-"\n"
-" * Init Message: a simple text message displayed before the boot prompt;\n"
-"\n"
-" * Boot Device: indicates where you want to place the information required\n"
-"to boot to GNU/Linux. Generally, you set up a bootstrap partition earlier\n"
-"to hold this information;\n"
-"\n"
-" * Open Firmware Delay: unlike LILO, there are two delays available with\n"
-"yaboot. The first delay is measured in seconds and at this point, you can\n"
-"choose between CD, OF boot, MacOS or Linux;\n"
-"\n"
-" * Kernel Boot Timeout: this timeout is similar to the LILO boot delay.\n"
-"After selecting Linux, you will have this delay in 0.1 second before your\n"
-"default kernel description is selected;\n"
-"\n"
-" * Enable CD Boot?: checking this option allows you to choose ``C'' for CD\n"
-"at the first boot prompt;\n"
-"\n"
-" * Enable OF Boot?: checking this option allows you to choose ``N'' for "
-"Open\n"
-"Firmware at the first boot prompt;\n"
-"\n"
-" * Default OS: you can select which OS will boot by default when the Open\n"
-"Firmware Delay expires."
-msgstr ""
-
-#: ../../help.pm_.c:862
-msgid ""
-"Here are presented various parameters concerning your machine. Depending on\n"
-"your installed hardware, you may or not, see the following entries:\n"
-"\n"
-" * \"Mouse\": check the current mouse configuration and click on the button\n"
-"to change it if necessary;\n"
-"\n"
-" * \"Keyboard\": check the current keyboard map configuration and click on\n"
-"the button to change that if necessary;\n"
-"\n"
-" * \"Timezone\": DrakX, by default, guesses your time zone from the "
-"language\n"
-"you have chosen. But here again, as for the choice of a keyboard, you may\n"
-"not be in the country for which the chosen language should correspond.\n"
-"Hence, you may need to click on the \"Timezone\" button in order to\n"
-"configure the clock according to the time zone you are in;\n"
-"\n"
-" * \"Printer\": clicking on the \"No Printer\" button will open the printer\n"
-"configuration wizard;\n"
-"\n"
-" * \"Sound card\": if a sound card is detected on your system, it is\n"
-"displayed here. No modification possible at installation time;\n"
-"\n"
-" * \"TV card\": if a TV card is detected on your system, it is displayed\n"
-"here. No modification possible at installation time;\n"
-"\n"
-" * \"ISDN card\": if an ISDN card is detected on your system, it is\n"
-"displayed here. You can click on the button to change the parameters\n"
-"associated with it."
-msgstr ""
-
-#: ../../help.pm_.c:891
-msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandrake Linux partition. Be careful, all data present on it will be lost\n"
-"and will not be recoverable!"
-msgstr ""
-
-#: ../../help.pm_.c:896
-msgid ""
-"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"
-"any Windows data.\n"
-"\n"
-"Click on \"Cancel\" to cancel this operation without losing any data and\n"
-"partitions present on this hard drive."
-msgstr ""
-
-#: ../../install2.pm_.c:115
-#, c-format
-msgid ""
-"Can't 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 ""
-
-#: ../../install2.pm_.c:170
-#, c-format
-msgid "You must also format %s"
-msgstr ""
-
-#: ../../install_any.pm_.c:418
-#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They don't have any known security\n"
-"issues, but some new could be found. In that case, you must make sure to "
-"upgrade\n"
-"as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
-msgstr ""
-
-#: ../../install_any.pm_.c:454
-msgid "Can't use broadcast with no NIS domain"
-msgstr ""
-
-#: ../../install_any.pm_.c:846
-#, c-format
-msgid "Insert a FAT formatted floppy in drive %s"
-msgstr ""
-
-#: ../../install_any.pm_.c:850
-msgid "This floppy is not FAT formatted"
-msgstr ""
-
-#: ../../install_any.pm_.c:862
-msgid ""
-"To use this saved packages selection, boot installation with ``linux "
-"defcfg=floppy''"
-msgstr ""
-
-#: ../../install_any.pm_.c:884 ../../partition_table.pm_.c:767
-#, c-format
-msgid "Error reading file %s"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:23
-#, c-format
-msgid ""
-"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
-"You can find some information about them at: %s"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:58
-msgid ""
-"You must have a root partition.\n"
-"For this, create a partition (or click on an existing one).\n"
-"Then choose action ``Mount point'' and set it to `/'"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:63
-msgid "You must have a swap partition"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:64
-msgid ""
-"You don't have a swap partition.\n"
-"\n"
-"Continue anyway?"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:67 ../../install_steps.pm_.c:164
-msgid "You must have a FAT partition mounted in /boot/efi"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:90
-msgid "Use free space"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:92
-msgid "Not enough free space to allocate new partitions"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:100
-msgid "Use existing partitions"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:102
-msgid "There is no existing partition to use"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:109
-msgid "Use the Windows partition for loopback"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:112
-msgid "Which partition do you want to use for Linux4Win?"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:114
-msgid "Choose the sizes"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:115
-msgid "Root partition size in MB: "
-msgstr ""
-
-#: ../../install_interactive.pm_.c:116
-msgid "Swap partition size in MB: "
-msgstr ""
-
-#: ../../install_interactive.pm_.c:125
-msgid "Use the free space on the Windows partition"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:128
-msgid "Which partition do you want to resize?"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:130
-msgid "Resizing Windows partition"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:133
-#, c-format
-msgid ""
-"The FAT resizer is unable to handle your partition, \n"
-"the following error occured: %s"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:136
-msgid ""
-"Your Windows partition is too fragmented. Please reboot your computer under "
-"Windows, run the ``defrag'' utility, then restart the Mandrake Linux "
-"installation."
-msgstr ""
-
-#: ../../install_interactive.pm_.c:137
-msgid ""
-"WARNING!\n"
-"\n"
-"DrakX will now resize your Windows partition. Be careful:\n"
-"this operation is dangerous. If you have not already done\n"
-"so, you should first exit the installation, run scandisk\n"
-"under Windows (and optionally run defrag), then restart the\n"
-"installation. You should also backup your data.\n"
-"When sure, press Ok."
-msgstr ""
-
-#: ../../install_interactive.pm_.c:147
-msgid "Which size do you want to keep for Windows on"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:148
-#, c-format
-msgid "partition %s"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:155
-#, c-format
-msgid "FAT resizing failed: %s"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:170
-msgid ""
-"There is no FAT partition to resize or to use as loopback (or not enough "
-"space left)"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:176
-msgid "Erase entire disk"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:176
-msgid "Remove Windows(TM)"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:179
-msgid "You have more than one hard drive, which one do you install linux on?"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:182
-#, c-format
-msgid "ALL existing partitions and their data will be lost on drive %s"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:190
-msgid "Custom disk partitioning"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:194
-msgid "Use fdisk"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:197
-#, c-format
-msgid ""
-"You can now partition %s.\n"
-"When you are done, don't forget to save using `w'"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:226
-msgid "You don't have enough free space on your Windows partition"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:242
-msgid "I can't find any room for installing"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:246
-msgid "The DrakX Partitioning wizard found the following solutions:"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:251
-#, c-format
-msgid "Partitioning failed: %s"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:261
-msgid "Bringing up the network"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:266
-msgid "Bringing down the network"
-msgstr ""
-
-#: ../../install_steps.pm_.c:76
-msgid ""
-"An error occurred, but I don't know how to handle it nicely.\n"
-"Continue at your own risk."
-msgstr ""
-
-#: ../../install_steps.pm_.c:206
-#, c-format
-msgid "Duplicate mount point %s"
-msgstr ""
-
-#: ../../install_steps.pm_.c:392
-msgid ""
-"Some important packages didn't get installed properly.\n"
-"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl Mandrake/RPMS/*.rpm"
-"\"\n"
-msgstr ""
-
-#: ../../install_steps.pm_.c:464
-#, c-format
-msgid "Welcome to %s"
-msgstr ""
-
-#: ../../install_steps.pm_.c:518 ../../install_steps.pm_.c:760
-msgid "No floppy drive available"
-msgstr ""
-
-#: ../../install_steps_auto_install.pm_.c:76
-#: ../../install_steps_stdio.pm_.c:22
-#, c-format
-msgid "Entering step `%s'\n"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:149
-msgid ""
-"Your system is low on resources. You may have some problem installing\n"
-"Mandrake Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
-"press `F1' when booting on CDROM, then enter `text'."
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:160 ../../install_steps_interactive.pm_.c:232
-msgid "Install Class"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:163
-msgid "Please choose one of the following classes of installation:"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:242 ../../install_steps_interactive.pm_.c:687
-msgid "Package Group Selection"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:274 ../../install_steps_interactive.pm_.c:702
-msgid "Individual package selection"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:297 ../../install_steps_interactive.pm_.c:626
-#, c-format
-msgid "Total size: %d / %d MB"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:339
-msgid "Bad package"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:340
-#, c-format
-msgid "Name: %s\n"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:341
-#, c-format
-msgid "Version: %s\n"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:342
-#, c-format
-msgid "Size: %d KB\n"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:343
-#, c-format
-msgid "Importance: %s\n"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:365
-msgid ""
-"You can't select this package as there is not enough space left to install it"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:370
-msgid "The following packages are going to be installed"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:371
-msgid "The following packages are going to be removed"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:383
-msgid "You can't select/unselect this package"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:395
-msgid "This is a mandatory package, it can't be unselected"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:397
-msgid "You can't unselect this package. It is already installed"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:400
-msgid ""
-"This package must be upgraded.\n"
-"Are you sure you want to deselect it?"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:403
-msgid "You can't unselect this package. It must be upgraded"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:408
-msgid "Show automatically selected packages"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:409 ../../install_steps_interactive.pm_.c:254
-#: ../../install_steps_interactive.pm_.c:258
-msgid "Install"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:412
-msgid "Load/Save on floppy"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:413
-msgid "Updating package selection"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:418
-msgid "Minimal install"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:433 ../../install_steps_interactive.pm_.c:531
-msgid "Choose the packages you want to install"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:449 ../../install_steps_interactive.pm_.c:769
-msgid "Installing"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:455
-msgid "Estimating"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:462
-msgid "Time remaining "
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:474
-msgid "Please wait, preparing installation..."
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:558
-#, c-format
-msgid "%d packages"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:563
-#, c-format
-msgid "Installing package %s"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:600 ../../install_steps_interactive.pm_.c:189
-#: ../../install_steps_interactive.pm_.c:793
-#: ../../standalone/drakautoinst_.c:203
-msgid "Accept"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:600 ../../install_steps_interactive.pm_.c:189
-#: ../../install_steps_interactive.pm_.c:793
-msgid "Refuse"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:601 ../../install_steps_interactive.pm_.c:794
-#, c-format
-msgid ""
-"Change your Cd-Rom!\n"
-"\n"
-"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
-"done.\n"
-"If you don't have it, press Cancel to avoid installation from this Cd-Rom."
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:615 ../../install_steps_gtk.pm_.c:619
-#: ../../install_steps_interactive.pm_.c:806
-#: ../../install_steps_interactive.pm_.c:810
-msgid "Go on anyway?"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:615 ../../install_steps_interactive.pm_.c:806
-msgid "There was an error ordering packages:"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:619 ../../install_steps_interactive.pm_.c:810
-msgid "There was an error installing packages:"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:10
-msgid ""
-"\n"
-"Warning\n"
-"\n"
-"Please read carefully the terms below. If you disagree with any\n"
-"portion, you are not allowed to install the next CD media. Press 'Refuse' \n"
-"to continue the installation without using these media.\n"
-"\n"
-"\n"
-"Some components contained in the next CD media are not governed\n"
-"by the GPL License or similar agreements. Each such component is then\n"
-"governed by the terms and conditions of its own specific license. \n"
-"Please read carefully and comply with such specific licenses before \n"
-"you use or redistribute the said components. \n"
-"Such licenses will in general prevent the transfer, duplication \n"
-"(except for backup purposes), redistribution, reverse engineering, \n"
-"de-assembly, de-compilation or modification of the component. \n"
-"Any breach of agreement will immediately terminate your rights under \n"
-"the specific license. Unless the specific license terms grant you such\n"
-"rights, you usually cannot install the programs on more than one\n"
-"system, or adapt it to be used on a network. In doubt, please contact \n"
-"directly the distributor or editor of the component. \n"
-"Transfer to third parties or copying of such components including the \n"
-"documentation is usually forbidden.\n"
-"\n"
-"\n"
-"All rights to the components of the next CD media belong to their \n"
-"respective authors and are protected by intellectual property and \n"
-"copyright laws applicable to software programs.\n"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:67
-msgid "An error occurred"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:85
-msgid "Do you really want to leave the installation?"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:112
-msgid "License agreement"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:113
-msgid ""
-"Introduction\n"
-"\n"
-"The operating system and the different components available in the Mandrake "
-"Linux distribution \n"
-"shall be called the \"Software Products\" hereafter. The Software Products "
-"include, but are not \n"
-"restricted to, the set of programs, methods, rules and documentation related "
-"to the operating \n"
-"system and the different components of the Mandrake Linux distribution.\n"
-"\n"
-"\n"
-"1. License Agreement\n"
-"\n"
-"Please read this document carefully. This document is a license agreement "
-"between you and \n"
-"MandrakeSoft S.A. which applies to the Software Products.\n"
-"By installing, duplicating or using the Software Products in any manner, you "
-"explicitly \n"
-"accept and fully agree to conform to the terms and conditions of this "
-"License. \n"
-"If you disagree with any portion of the License, you are not allowed to "
-"install, duplicate or use \n"
-"the Software Products. \n"
-"Any attempt to install, duplicate or use the Software Products in a manner "
-"which does not comply \n"
-"with the terms and conditions of this License is void and will terminate "
-"your rights under this \n"
-"License. Upon termination of the License, you must immediately destroy all "
-"copies of the \n"
-"Software Products.\n"
-"\n"
-"\n"
-"2. Limited Warranty\n"
-"\n"
-"The Software Products and attached documentation are provided \"as is\", "
-"with no warranty, to the \n"
-"extent permitted by law.\n"
-"MandrakeSoft S.A. will, in no circumstances and to the extent permitted by "
-"law, be liable for any special,\n"
-"incidental, direct or indirect damages whatsoever (including without "
-"limitation damages for loss of \n"
-"business, interruption of business, financial loss, legal fees and penalties "
-"resulting from a court \n"
-"judgment, or any other consequential loss) arising out of the use or "
-"inability to use the Software \n"
-"Products, even if MandrakeSoft S.A. has been advised of the possibility or "
-"occurance of such \n"
-"damages.\n"
-"\n"
-"LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN SOME "
-"COUNTRIES\n"
-"\n"
-"To the extent permitted by law, MandrakeSoft S.A. or its distributors will, "
-"in no circumstances, be \n"
-"liable for any special, incidental, direct or indirect damages whatsoever "
-"(including without \n"
-"limitation damages for loss of business, interruption of business, financial "
-"loss, legal fees \n"
-"and penalties resulting from a court judgment, or any other consequential "
-"loss) arising out \n"
-"of the possession and use of software components or arising out of "
-"downloading software components \n"
-"from one of Mandrake Linux sites which are prohibited or restricted in some "
-"countries by local laws.\n"
-"This limited liability applies to, but is not restricted to, the strong "
-"cryptography components \n"
-"included in the Software Products.\n"
-"\n"
-"\n"
-"3. The GPL License and Related Licenses\n"
-"\n"
-"The Software Products consist of components created by different persons or "
-"entities. Most \n"
-"of these components are governed under the terms and conditions of the GNU "
-"General Public \n"
-"Licence, hereafter called \"GPL\", or of similar licenses. Most of these "
-"licenses allow you to use, \n"
-"duplicate, adapt or redistribute the components which they cover. Please "
-"read carefully the terms \n"
-"and conditions of the license agreement for each component before using any "
-"component. Any question \n"
-"on a component license should be addressed to the component author and not "
-"to MandrakeSoft.\n"
-"The programs developed by MandrakeSoft S.A. are governed by the GPL License. "
-"Documentation written \n"
-"by MandrakeSoft S.A. is governed by a specific license. Please refer to the "
-"documentation for \n"
-"further details.\n"
-"\n"
-"\n"
-"4. Intellectual Property Rights\n"
-"\n"
-"All rights to the components of the Software Products belong to their "
-"respective authors and are \n"
-"protected by intellectual property and copyright laws applicable to software "
-"programs.\n"
-"MandrakeSoft S.A. reserves its rights to modify or adapt the Software "
-"Products, as a whole or in \n"
-"parts, by all means and for all purposes.\n"
-"\"Mandrake\", \"Mandrake Linux\" and associated logos are trademarks of "
-"MandrakeSoft S.A. \n"
-"\n"
-"\n"
-"5. Governing Laws \n"
-"\n"
-"If any portion of this agreement is held void, illegal or inapplicable by a "
-"court judgment, this \n"
-"portion is excluded from this contract. You remain bound by the other "
-"applicable sections of the \n"
-"agreement.\n"
-"The terms and conditions of this License are governed by the Laws of "
-"France.\n"
-"All disputes on the terms of this license will preferably be settled out of "
-"court. As a last \n"
-"resort, the dispute will be referred to the appropriate Courts of Law of "
-"Paris - France.\n"
-"For any question on this document, please contact MandrakeSoft S.A. \n"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:191
-msgid "Are you sure you refuse the licence?"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:213
-#: ../../install_steps_interactive.pm_.c:1029
-#: ../../standalone/keyboarddrake_.c:28
-msgid "Keyboard"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:214
-msgid "Please choose your keyboard layout."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:215
-msgid "Here is the full list of keyboards available"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:232
-msgid "Which installation class do you want?"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:234
-msgid "Install/Update"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:234
-msgid "Is this an install or an update?"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:243
-msgid "Recommended"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:249
-msgid "Expert"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:254
-#: ../../install_steps_interactive.pm_.c:258
-msgid "Upgrade"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:254
-#: ../../install_steps_interactive.pm_.c:258
-msgid "Upgrade packages only"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:274
-msgid "Please choose the type of your mouse."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:280 ../../standalone/mousedrake_.c:85
-msgid "Mouse Port"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:281 ../../standalone/mousedrake_.c:86
-msgid "Please choose on which serial port your mouse is connected to."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:289
-msgid "Buttons emulation"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:291
-msgid "Button 2 Emulation"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:292
-msgid "Button 3 Emulation"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:313
-msgid "Configuring PCMCIA cards..."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:313
-msgid "PCMCIA"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:320
-msgid "Configuring IDE"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:320
-msgid "IDE"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:335
-msgid "No partition available"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:338
-msgid "Scanning partitions to find mount points"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:346
-msgid "Choose the mount points"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:365
-#, c-format
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I can try to go on, erasing over bad partitions (ALL DATA will be lost!).\n"
-"The other solution is to not allow DrakX to modify the partition table.\n"
-"(the error is %s)\n"
-"\n"
-"Do you agree to loose all the partitions?\n"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:378
-msgid ""
-"DiskDrake failed to read correctly the partition table.\n"
-"Continue at your own risk!"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:394
-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 ""
-
-#: ../../install_steps_interactive.pm_.c:403
-msgid "No root partition found to perform an upgrade"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:404
-msgid "Root Partition"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:405
-msgid "What is the root partition (/) of your system?"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:419
-msgid "You need to reboot for the partition table modifications to take place"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:443
-msgid "Choose the partitions you want to format"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:444
-msgid "Check bad blocks?"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:470
-msgid "Formatting partitions"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:472
-#, c-format
-msgid "Creating and formatting file %s"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:475
-msgid "Not enough swap space to fulfill installation, please add some"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:482
-msgid "Looking for available packages and rebuilding rpm database..."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:483
-msgid "Looking for available packages..."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:487
-msgid "Finding packages to upgrade..."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:490
-msgid "Looking at packages already installed..."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:508
-#, c-format
-msgid ""
-"Your system does not have enough space left for installation or upgrade (%d "
-"> %d)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:543
-msgid ""
-"Please choose load or save package selection on floppy.\n"
-"The format is the same as auto_install generated floppies."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:546
-msgid "Load from floppy"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:548
-msgid "Loading from floppy"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:548
-msgid "Package selection"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:553
-msgid "Insert a floppy containing package selection"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:565
-msgid "Save on floppy"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:639
-msgid "Selected size is larger than available space"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:653
-msgid "Type of install"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:654
-msgid ""
-"You haven't selected any group of packages.\n"
-"Please choose the minimal installation you want:"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:657
-msgid "With X"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:659
-msgid "With basic documentation (recommended!)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:660
-msgid "Truly minimal install (especially no urpmi)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:744
-msgid ""
-"If you have all the CDs in the list below, click Ok.\n"
-"If you have none of those CDs, click Cancel.\n"
-"If only some CDs are missing, unselect them, then click Ok."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:749
-#, c-format
-msgid "Cd-Rom labeled \"%s\""
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:769
-msgid "Preparing installation"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:778
-#, c-format
-msgid ""
-"Installing package %s\n"
-"%d%%"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:824
-msgid "Post-install configuration"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:830
-#, c-format
-msgid "Please insert the Boot floppy used in drive %s"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:836
-#, c-format
-msgid "Please insert the Update Modules floppy in drive %s"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:856
-msgid ""
-"You now have the opportunity to download encryption software.\n"
-"\n"
-"WARNING:\n"
-"\n"
-"Due to different general requirements applicable to these software and "
-"imposed\n"
-"by various jurisdictions, customer and/or end user of theses software "
-"should\n"
-"ensure that the laws of his/their jurisdiction allow him/them to download, "
-"stock\n"
-"and/or use these software.\n"
-"\n"
-"In addition customer and/or end user shall particularly be aware to not "
-"infringe\n"
-"the laws of his/their jurisdiction. Should customer and/or end user not\n"
-"respect the provision of these applicable laws, he/they will incure serious\n"
-"sanctions.\n"
-"\n"
-"In no event shall Mandrakesoft nor its manufacturers and/or suppliers be "
-"liable\n"
-"for special, indirect or incidental damages whatsoever (including, but not\n"
-"limited to loss of profits, business interruption, loss of commercial data "
-"and\n"
-"other pecuniary losses, and eventual liabilities and indemnification to be "
-"paid\n"
-"pursuant to a court decision) arising out of use, possession, or the sole\n"
-"downloading of these software, to which customer and/or end user could\n"
-"eventually have access after having sign up the present agreement.\n"
-"\n"
-"\n"
-"For any queries relating to these agreement, please contact \n"
-"Mandrakesoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:895
-msgid ""
-"You now have the opportunity to download updated packages. These packages\n"
-"have been released 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 ""
-
-#: ../../install_steps_interactive.pm_.c:910
-msgid ""
-"Contacting Mandrake Linux web site to get the list of available mirrors..."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:915
-msgid "Choose a mirror from which to get the packages"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:924
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:951
-msgid "Which is your timezone?"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:956
-msgid "Hardware clock set to GMT"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:957
-msgid "Automatic time synchronization (using NTP)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:964
-msgid "NTP Server"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:998
-#: ../../install_steps_interactive.pm_.c:1006
-msgid "Remote CUPS server"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:999
-msgid "No printer"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1016
-msgid "Do you have an ISA sound card?"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1018
-msgid "Run \"sndconfig\" after installation to configure your sound card"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1020
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1025 ../../steps.pm_.c:27
-msgid "Summary"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1028
-msgid "Mouse"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1030
-msgid "Timezone"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1031 ../../printerdrake.pm_.c:2275
-#: ../../printerdrake.pm_.c:2353
-msgid "Printer"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1033
-msgid "ISDN card"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1036
-#: ../../install_steps_interactive.pm_.c:1038
-msgid "Sound card"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1040
-msgid "TV card"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1080
-#: ../../install_steps_interactive.pm_.c:1105
-#: ../../install_steps_interactive.pm_.c:1109
-msgid "LDAP"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1081
-#: ../../install_steps_interactive.pm_.c:1105
-#: ../../install_steps_interactive.pm_.c:1118
-msgid "NIS"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1082
-#: ../../install_steps_interactive.pm_.c:1105
-#: ../../install_steps_interactive.pm_.c:1126
-msgid "Windows PDC"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1083
-#: ../../install_steps_interactive.pm_.c:1105
-msgid "Local files"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1092
-#: ../../install_steps_interactive.pm_.c:1093 ../../steps.pm_.c:24
-msgid "Set root password"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1094
-msgid "No password"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1099
-#, c-format
-msgid "This password is too short (it must be at least %d characters long)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1105 ../../network/modem.pm_.c:49
-#: ../../standalone/drakconnect_.c:626 ../../standalone/logdrake_.c:172
-msgid "Authentication"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1113
-msgid "Authentication LDAP"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1114
-msgid "LDAP Base dn"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1115
-msgid "LDAP Server"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1121
-msgid "Authentication NIS"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1122
-msgid "NIS Domain"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1123
-msgid "NIS Server"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1130
-msgid "Authentication Windows PDC"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1131
-msgid "Windows Domain"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1132
-msgid "PDC Server Name"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1134
-msgid ""
-"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"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1168
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"SILO on your system, or another operating system removes SILO, or SILO "
-"doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures.\n"
-"\n"
-"If you want to create a bootdisk for your system, insert a floppy in the "
-"first\n"
-"drive and press \"Ok\"."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1184
-msgid "First floppy drive"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1185
-msgid "Second floppy drive"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1186 ../../printerdrake.pm_.c:1847
-msgid "Skip"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1191
-#, c-format
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"LILO (or grub) on your system, or another operating system removes LILO, or "
-"LILO doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures. Would you like to create a bootdisk for your system?\n"
-"%s"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1197
-msgid ""
-"\n"
-"\n"
-"(WARNING! You're using XFS for your root partition,\n"
-"creating a bootdisk on a 1.44 Mb floppy will probably fail,\n"
-"because XFS needs a very large driver)."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1205
-msgid "Sorry, no floppy drive available"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1209
-msgid "Choose the floppy drive you want to use to make the bootdisk"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1213
-#, c-format
-msgid "Insert a floppy in %s"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1216
-msgid "Creating bootdisk..."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1223
-msgid "Preparing bootloader..."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1234
-msgid ""
-"You appear to have an OldWorld or Unknown\n"
-" machine, the yaboot bootloader will not work for you.\n"
-"The install will continue, but you'll\n"
-" need to use BootX to boot your machine"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1240
-msgid "Do you want to use aboot?"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1243
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1250
-msgid "Installing bootloader"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1256
-msgid "Installation of bootloader failed. The following error occured:"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1264
-#, c-format
-msgid ""
-"You may need to change your Open Firmware boot-device to\n"
-" enable the bootloader. If you don't 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\n"
-"At your next boot you should see the bootloader prompt."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1308
-#: ../../standalone/drakautoinst_.c:81
-#, c-format
-msgid "Insert a blank floppy in drive %s"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1312
-msgid "Creating auto install floppy..."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1323
-msgid ""
-"Some steps are not completed.\n"
-"\n"
-"Do you really want to quit now?"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1334
-msgid ""
-"Congratulations, installation is complete.\n"
-"Remove the boot media and press return to reboot.\n"
-"\n"
-"\n"
-"For information on fixes which are available for this release of Mandrake "
-"Linux,\n"
-"consult the Errata available from:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/82errata.php3\n"
-"\n"
-"\n"
-"Information on configuring your system is available in the post\n"
-"install chapter of the Official Mandrake Linux User's Guide."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1351
-msgid "Generate auto install floppy"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1353
-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 ""
-
-#: ../../install_steps_interactive.pm_.c:1358
-msgid "Automated"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1358
-msgid "Replay"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Save packages selection"
-msgstr ""
-
-#: ../../install_steps_newt.pm_.c:22
-#, c-format
-msgid "Mandrake Linux Installation %s"
-msgstr ""
-
-#: ../../install_steps_newt.pm_.c:34
-msgid ""
-" <Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen "
-msgstr ""
-
-#: ../../interactive.pm_.c:87
-msgid "kdesu missing"
-msgstr ""
-
-#: ../../interactive.pm_.c:89 ../../interactive.pm_.c:100
-msgid "consolehelper missing"
-msgstr ""
-
-#: ../../interactive.pm_.c:152
-msgid "Choose a file"
-msgstr ""
-
-#: ../../interactive.pm_.c:315
-msgid "Advanced"
-msgstr ""
-
-#: ../../interactive.pm_.c:316
-msgid "Basic"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:29 ../../interactive_stdio.pm_.c:147
-msgid "Bad choice, try again\n"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:30 ../../interactive_stdio.pm_.c:148
-#, c-format
-msgid "Your choice? (default %s) "
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:52
-#, c-format
-msgid ""
-"Entries you'll have to fill:\n"
-"%s"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:68
-#, c-format
-msgid "Your choice? (0/1, default `%s') "
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:93
-#, c-format
-msgid "Button `%s': %s"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:94
-msgid "Do you want to click on this button?"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:103
-msgid " enter `void' for void entry"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:103
-#, c-format
-msgid "Your choice? (default `%s'%s) "
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:121
-#, c-format
-msgid "=> There are many things to choose from (%s).\n"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:124
-msgid ""
-"Please choose the first number of the 10-range you wish to edit,\n"
-"or just hit Enter to proceed.\n"
-"Your choice? "
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:137
-#, c-format
-msgid ""
-"=> Notice, a label changed:\n"
-"%s"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:144
-msgid "Re-submit"
-msgstr ""
-
-#: ../../keyboard.pm_.c:197 ../../keyboard.pm_.c:228
-msgid "Czech (QWERTZ)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:198 ../../keyboard.pm_.c:230
-msgid "German"
-msgstr ""
-
-#: ../../keyboard.pm_.c:199
-msgid "Dvorak"
-msgstr ""
-
-#: ../../keyboard.pm_.c:200 ../../keyboard.pm_.c:237
-msgid "Spanish"
-msgstr ""
-
-#: ../../keyboard.pm_.c:201 ../../keyboard.pm_.c:238
-msgid "Finnish"
-msgstr ""
-
-#: ../../keyboard.pm_.c:202 ../../keyboard.pm_.c:239
-msgid "French"
-msgstr ""
-
-#: ../../keyboard.pm_.c:203 ../../keyboard.pm_.c:264
-msgid "Norwegian"
-msgstr ""
-
-#: ../../keyboard.pm_.c:204
-msgid "Polish"
-msgstr ""
-
-#: ../../keyboard.pm_.c:205 ../../keyboard.pm_.c:272
-msgid "Russian"
-msgstr ""
-
-#: ../../keyboard.pm_.c:207 ../../keyboard.pm_.c:274
-msgid "Swedish"
-msgstr ""
-
-#: ../../keyboard.pm_.c:208 ../../keyboard.pm_.c:289
-msgid "UK keyboard"
-msgstr ""
-
-#: ../../keyboard.pm_.c:209 ../../keyboard.pm_.c:290
-msgid "US keyboard"
-msgstr ""
-
-#: ../../keyboard.pm_.c:211
-msgid "Albanian"
-msgstr ""
-
-#: ../../keyboard.pm_.c:212
-msgid "Armenian (old)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:213
-msgid "Armenian (typewriter)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:214
-msgid "Armenian (phonetic)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:219
-msgid "Azerbaidjani (latin)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:221
-msgid "Belgian"
-msgstr ""
-
-#: ../../keyboard.pm_.c:222
-msgid "Bulgarian (phonetic)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:223
-msgid "Bulgarian (BDS)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:224
-msgid "Brazilian (ABNT-2)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:225
-msgid "Belarusian"
-msgstr ""
-
-#: ../../keyboard.pm_.c:226
-msgid "Swiss (German layout)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:227
-msgid "Swiss (French layout)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:229
-msgid "Czech (QWERTY)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:231
-msgid "German (no dead keys)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:232
-msgid "Danish"
-msgstr ""
-
-#: ../../keyboard.pm_.c:233
-msgid "Dvorak (US)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:234
-msgid "Dvorak (Norwegian)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:235
-msgid "Dvorak (Swedish)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:236
-msgid "Estonian"
-msgstr ""
-
-#: ../../keyboard.pm_.c:240
-msgid "Georgian (\"Russian\" layout)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:241
-msgid "Georgian (\"Latin\" layout)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:242
-msgid "Greek"
-msgstr ""
-
-#: ../../keyboard.pm_.c:243
-msgid "Hungarian"
-msgstr ""
-
-#: ../../keyboard.pm_.c:244
-msgid "Croatian"
-msgstr ""
-
-#: ../../keyboard.pm_.c:245
-msgid "Israeli"
-msgstr ""
-
-#: ../../keyboard.pm_.c:246
-msgid "Israeli (Phonetic)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:247
-msgid "Iranian"
-msgstr ""
-
-#: ../../keyboard.pm_.c:248
-msgid "Icelandic"
-msgstr ""
-
-#: ../../keyboard.pm_.c:249
-msgid "Italian"
-msgstr ""
-
-#: ../../keyboard.pm_.c:251
-msgid "Japanese 106 keys"
-msgstr ""
-
-#: ../../keyboard.pm_.c:254
-msgid "Korean keyboard"
-msgstr ""
-
-#: ../../keyboard.pm_.c:255
-msgid "Latin American"
-msgstr ""
-
-#: ../../keyboard.pm_.c:256
-msgid "Lithuanian AZERTY (old)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:258
-msgid "Lithuanian AZERTY (new)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:259
-msgid "Lithuanian \"number row\" QWERTY"
-msgstr ""
-
-#: ../../keyboard.pm_.c:260
-msgid "Lithuanian \"phonetic\" QWERTY"
-msgstr ""
-
-#: ../../keyboard.pm_.c:261
-msgid "Latvian"
-msgstr ""
-
-#: ../../keyboard.pm_.c:262
-msgid "Macedonian"
-msgstr ""
-
-#: ../../keyboard.pm_.c:263
-msgid "Dutch"
-msgstr ""
-
-#: ../../keyboard.pm_.c:265
-msgid "Polish (qwerty layout)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:266
-msgid "Polish (qwertz layout)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:267
-msgid "Portuguese"
-msgstr ""
-
-#: ../../keyboard.pm_.c:268
-msgid "Canadian (Quebec)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:270
-msgid "Romanian (qwertz)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:271
-msgid "Romanian (qwerty)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:273
-msgid "Russian (Yawerty)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:275
-msgid "Slovenian"
-msgstr ""
-
-#: ../../keyboard.pm_.c:276
-msgid "Slovakian (QWERTZ)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:277
-msgid "Slovakian (QWERTY)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:279
-msgid "Serbian (cyrillic)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:281
-msgid "Tamil"
-msgstr ""
-
-#: ../../keyboard.pm_.c:282
-msgid "Thai keyboard"
-msgstr ""
-
-#: ../../keyboard.pm_.c:284
-msgid "Tajik keyboard"
-msgstr ""
-
-#: ../../keyboard.pm_.c:285
-msgid "Turkish (traditional \"F\" model)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:286
-msgid "Turkish (modern \"Q\" model)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:288
-msgid "Ukrainian"
-msgstr ""
-
-#: ../../keyboard.pm_.c:291
-msgid "US keyboard (international)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:292
-msgid "Vietnamese \"numeric row\" QWERTY"
-msgstr ""
-
-#: ../../keyboard.pm_.c:293
-msgid "Yugoslavian (latin)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:301
-msgid "Right Alt key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:302
-msgid "Both Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:303
-msgid "Control and Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:304
-msgid "CapsLock key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:305
-msgid "Ctrl and Alt keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:306
-msgid "Alt and Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:307
-msgid "\"Menu\" key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:308
-msgid "Left \"Windows\" key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:309
-msgid "Right \"Windows\" key"
-msgstr ""
-
-#: ../../loopback.pm_.c:32
-#, c-format
-msgid "Circular mounts %s\n"
-msgstr ""
-
-#: ../../lvm.pm_.c:88
-msgid "Remove the logical volumes first\n"
-msgstr ""
-
-#: ../../modparm.pm_.c:51
-msgid "a number"
-msgstr ""
-
-#: ../../modparm.pm_.c:53
-#, c-format
-msgid "%d comma separated numbers"
-msgstr ""
-
-#: ../../modparm.pm_.c:53
-#, c-format
-msgid "%d comma separated strings"
-msgstr ""
-
-#: ../../modparm.pm_.c:55
-msgid "comma separated numbers"
-msgstr ""
-
-#: ../../modparm.pm_.c:55
-msgid "comma separated strings"
-msgstr ""
-
-#: ../../modules.pm_.c:283
-msgid ""
-"PCMCIA support no longer exist for 2.2 kernels. Please use a 2.4 kernel."
-msgstr ""
-
-#: ../../mouse.pm_.c:25
-msgid "Sun - Mouse"
-msgstr ""
-
-#: ../../mouse.pm_.c:32
-msgid "Logitech MouseMan+"
-msgstr ""
-
-#: ../../mouse.pm_.c:33
-msgid "Generic PS2 Wheel Mouse"
-msgstr ""
-
-#: ../../mouse.pm_.c:34
-msgid "GlidePoint"
-msgstr ""
-
-#: ../../mouse.pm_.c:36 ../../mouse.pm_.c:63
-msgid "Kensington Thinking Mouse"
-msgstr ""
-
-#: ../../mouse.pm_.c:37 ../../mouse.pm_.c:59
-msgid "Genius NetMouse"
-msgstr ""
-
-#: ../../mouse.pm_.c:38
-msgid "Genius NetScroll"
-msgstr ""
-
-#: ../../mouse.pm_.c:43 ../../mouse.pm_.c:68
-msgid "1 button"
-msgstr ""
-
-#: ../../mouse.pm_.c:44 ../../mouse.pm_.c:51
-msgid "Generic 2 Button Mouse"
-msgstr ""
-
-#: ../../mouse.pm_.c:46
-msgid "Wheel"
-msgstr ""
-
-#: ../../mouse.pm_.c:49
-msgid "serial"
-msgstr ""
-
-#: ../../mouse.pm_.c:52
-msgid "Generic 3 Button Mouse"
-msgstr ""
-
-#: ../../mouse.pm_.c:53
-msgid "Microsoft IntelliMouse"
-msgstr ""
-
-#: ../../mouse.pm_.c:54
-msgid "Logitech MouseMan"
-msgstr ""
-
-#: ../../mouse.pm_.c:55
-msgid "Mouse Systems"
-msgstr ""
-
-#: ../../mouse.pm_.c:57
-msgid "Logitech CC Series"
-msgstr ""
-
-#: ../../mouse.pm_.c:58
-msgid "Logitech MouseMan+/FirstMouse+"
-msgstr ""
-
-#: ../../mouse.pm_.c:60
-msgid "MM Series"
-msgstr ""
-
-#: ../../mouse.pm_.c:61
-msgid "MM HitTablet"
-msgstr ""
-
-#: ../../mouse.pm_.c:62
-msgid "Logitech Mouse (serial, old C7 type)"
-msgstr ""
-
-#: ../../mouse.pm_.c:66
-msgid "busmouse"
-msgstr ""
-
-#: ../../mouse.pm_.c:69
-msgid "2 buttons"
-msgstr ""
-
-#: ../../mouse.pm_.c:70
-msgid "3 buttons"
-msgstr ""
-
-#: ../../mouse.pm_.c:73
-msgid "none"
-msgstr ""
-
-#: ../../mouse.pm_.c:75
-msgid "No mouse"
-msgstr ""
-
-#: ../../mouse.pm_.c:499
-msgid "Please test the mouse"
-msgstr ""
-
-#: ../../mouse.pm_.c:500
-msgid "To activate the mouse,"
-msgstr ""
-
-#: ../../mouse.pm_.c:501
-msgid "MOVE YOUR WHEEL!"
-msgstr ""
-
-#: ../../my_gtk.pm_.c:687
-msgid "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"
-msgstr ""
-
-#: ../../my_gtk.pm_.c:722
-msgid "Finish"
-msgstr ""
-
-#: ../../my_gtk.pm_.c:722 ../../printerdrake.pm_.c:1586
-msgid "Next ->"
-msgstr ""
-
-#: ../../my_gtk.pm_.c:723 ../../printerdrake.pm_.c:1584
-msgid "<- Previous"
-msgstr ""
-
-#: ../../my_gtk.pm_.c:1055
-msgid "Is this correct?"
-msgstr ""
-
-#: ../../my_gtk.pm_.c:1119 ../../services.pm_.c:222
-msgid "Info"
-msgstr ""
-
-#: ../../my_gtk.pm_.c:1140
-msgid "Expand Tree"
-msgstr ""
-
-#: ../../my_gtk.pm_.c:1141
-msgid "Collapse Tree"
-msgstr ""
-
-#: ../../my_gtk.pm_.c:1142
-msgid "Toggle between flat and group sorted"
-msgstr ""
-
-#: ../../network/adsl.pm_.c:19 ../../network/ethernet.pm_.c:36
-msgid "Connect to the Internet"
-msgstr ""
-
-#: ../../network/adsl.pm_.c:20
-msgid ""
-"The most common way to connect with adsl is pppoe.\n"
-"Some connections use pptp, a few ones use dhcp.\n"
-"If you don't know, choose 'use pppoe'"
-msgstr ""
-
-#: ../../network/adsl.pm_.c:22
-msgid "Alcatel speedtouch usb"
-msgstr ""
-
-#: ../../network/adsl.pm_.c:22
-msgid "use dhcp"
-msgstr ""
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pppoe"
-msgstr ""
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pptp"
-msgstr ""
-
-#: ../../network/ethernet.pm_.c:37
-msgid ""
-"Which dhcp client do you want to use?\n"
-"Default is dhcpcd"
-msgstr ""
-
-#: ../../network/ethernet.pm_.c:88
-msgid ""
-"No ethernet network adapter has been detected on your system.\n"
-"I cannot set up this connection type."
-msgstr ""
-
-#: ../../network/ethernet.pm_.c:92 ../../standalone/drakgw_.c:248
-msgid "Choose the network interface"
-msgstr ""
-
-#: ../../network/ethernet.pm_.c:93
-msgid ""
-"Please choose which network adapter you want to use to connect to Internet"
-msgstr ""
-
-#: ../../network/ethernet.pm_.c:178
-msgid "no network card found"
-msgstr ""
-
-#: ../../network/ethernet.pm_.c:202 ../../network/network.pm_.c:364
-msgid "Configuring network"
-msgstr ""
-
-#: ../../network/ethernet.pm_.c:203
-msgid ""
-"Please enter your host name if you know it.\n"
-"Some DHCP servers require the hostname to work.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''."
-msgstr ""
-
-#: ../../network/ethernet.pm_.c:207 ../../network/network.pm_.c:369
-msgid "Host name"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:21 ../../network/isdn.pm_.c:44
-#: ../../network/netconnect.pm_.c:95 ../../network/netconnect.pm_.c:109
-#: ../../network/netconnect.pm_.c:164 ../../network/netconnect.pm_.c:179
-#: ../../network/netconnect.pm_.c:206 ../../network/netconnect.pm_.c:229
-#: ../../network/netconnect.pm_.c:237
-msgid "Network Configuration Wizard"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:22
-msgid "External ISDN modem"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:22
-msgid "Internal ISDN card"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:22
-msgid "What kind is your ISDN connection?"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:45
-msgid ""
-"Which ISDN configuration do you prefer?\n"
-"\n"
-"* The Old configuration uses isdn4net. It contains powerfull\n"
-" tools, but is tricky to configure, and not standard.\n"
-"\n"
-"* The New configuration is easier to understand, more\n"
-" standard, but with less tools.\n"
-"\n"
-"We recommand the light configuration.\n"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:54
-msgid "New configuration (isdn-light)"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:54
-msgid "Old configuration (isdn4net)"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:170 ../../network/isdn.pm_.c:188
-#: ../../network/isdn.pm_.c:198 ../../network/isdn.pm_.c:205
-#: ../../network/isdn.pm_.c:215
-msgid "ISDN Configuration"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:170
-msgid ""
-"Select your provider.\n"
-"If it isn't listed, choose Unlisted."
-msgstr ""
-
-#: ../../network/isdn.pm_.c:183
-msgid "Europe protocol"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:183
-msgid "Europe protocol (EDSS1)"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:185
-msgid "Protocol for the rest of the world"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:185
-msgid ""
-"Protocol for the rest of the world\n"
-"No D-Channel (leased lines)"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:189
-msgid "Which protocol do you want to use?"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:199
-msgid "What kind of card do you have?"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:200
-msgid "I don't know"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:200
-msgid "ISA / PCMCIA"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:200
-msgid "PCI"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:206
-msgid ""
-"\n"
-"If you have an ISA card, the values on the next screen should be right.\n"
-"\n"
-"If you have a PCMCIA card, you have to know the \"irq\" and \"io\" of your "
-"card.\n"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:210
-msgid "Abort"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:210
-msgid "Continue"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:216
-msgid "Which is your ISDN card?"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:235
-msgid ""
-"I have detected an ISDN PCI card, but I don't know its type. Please select a "
-"PCI card on the next screen."
-msgstr ""
-
-#: ../../network/isdn.pm_.c:244
-msgid "No ISDN PCI card found. Please select one on the next screen."
-msgstr ""
-
-#: ../../network/modem.pm_.c:39
-msgid "Please choose which serial port your modem is connected to."
-msgstr ""
-
-#: ../../network/modem.pm_.c:44
-msgid "Dialup options"
-msgstr ""
-
-#: ../../network/modem.pm_.c:45 ../../standalone/drakconnect_.c:622
-msgid "Connection name"
-msgstr ""
-
-#: ../../network/modem.pm_.c:46 ../../standalone/drakconnect_.c:623
-msgid "Phone number"
-msgstr ""
-
-#: ../../network/modem.pm_.c:47 ../../standalone/drakconnect_.c:624
-msgid "Login ID"
-msgstr ""
-
-#: ../../network/modem.pm_.c:49 ../../standalone/drakconnect_.c:626
-msgid "CHAP"
-msgstr ""
-
-#: ../../network/modem.pm_.c:49 ../../standalone/drakconnect_.c:626
-msgid "PAP"
-msgstr ""
-
-#: ../../network/modem.pm_.c:49 ../../standalone/drakconnect_.c:626
-msgid "Script-based"
-msgstr ""
-
-#: ../../network/modem.pm_.c:49 ../../standalone/drakconnect_.c:626
-msgid "Terminal-based"
-msgstr ""
-
-#: ../../network/modem.pm_.c:50 ../../standalone/drakconnect_.c:627
-msgid "Domain name"
-msgstr ""
-
-#: ../../network/modem.pm_.c:51 ../../standalone/drakconnect_.c:628
-msgid "First DNS Server (optional)"
-msgstr ""
-
-#: ../../network/modem.pm_.c:52 ../../standalone/drakconnect_.c:629
-msgid "Second DNS Server (optional)"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:34
-msgid ""
-"\n"
-"You can disconnect or reconfigure your connection."
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:34 ../../network/netconnect.pm_.c:37
-msgid ""
-"\n"
-"You can reconfigure your connection."
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:34
-msgid "You are currently connected to internet."
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:37
-msgid ""
-"\n"
-"You can connect to Internet or reconfigure your connection."
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:37
-msgid "You are not currently connected to Internet."
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:41
-msgid "Connect"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:43
-msgid "Disconnect"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:45
-msgid "Configure the connection"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:50
-msgid "Internet connection & configuration"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:100
-#, c-format
-msgid "We are now going to configure the %s connection."
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:109
-#, c-format
-msgid ""
-"\n"
-"\n"
-"\n"
-"We are now going to configure the %s connection.\n"
-"\n"
-"\n"
-"Press OK to continue."
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:138 ../../network/netconnect.pm_.c:256
-#: ../../network/netconnect.pm_.c:276 ../../network/tools.pm_.c:63
-msgid "Network Configuration"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:139
-msgid ""
-"Because you are doing a network installation, your network is already "
-"configured.\n"
-"Click on Ok to keep your configuration, or cancel to reconfigure your "
-"Internet & Network connection.\n"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:165
-msgid ""
-"Welcome to The Network Configuration Wizard.\n"
-"\n"
-"We are about to configure your internet/network connection.\n"
-"If you don't want to use the auto detection, deselect the checkbox.\n"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:171
-msgid "Choose the profile to configure"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:172
-msgid "Use auto detection"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:179 ../../printerdrake.pm_.c:145
-msgid "Detecting devices..."
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-msgid "Normal modem connection"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-#, c-format
-msgid "detected on port %s"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:191 ../../network/netconnect.pm_.c:200
-msgid "ISDN connection"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:191 ../../network/netconnect.pm_.c:200
-#, c-format
-msgid "detected %s"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:192 ../../network/netconnect.pm_.c:201
-msgid "ADSL connection"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:192 ../../network/netconnect.pm_.c:201
-#, c-format
-msgid "detected on interface %s"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:193 ../../network/netconnect.pm_.c:202
-msgid "Cable connection"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:193 ../../network/netconnect.pm_.c:202
-msgid "cable connection detected"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:194 ../../network/netconnect.pm_.c:203
-msgid "LAN connection"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:194 ../../network/netconnect.pm_.c:203
-msgid "ethernet card(s) detected"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:206
-msgid "Choose the connection you want to configure"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:230
-msgid ""
-"You have configured multiple ways to connect to the Internet.\n"
-"Choose the one you want to use.\n"
-"\n"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:231
-msgid "Internet connection"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:237
-msgid "Do you want to start the connection at boot?"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:251
-msgid "Network configuration"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:252
-msgid "The network needs to be restarted"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:256
-#, c-format
-msgid ""
-"A problem occured while restarting the network: \n"
-"\n"
-"%s"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:266
-msgid ""
-"Congratulations, the network and Internet configuration is finished.\n"
-"The configuration will now be applied to your system.\n"
-"\n"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:270
-msgid ""
-"After this is done, we recommend that you restart your X environment to "
-"avoid any hostname-related problems."
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:271
-msgid ""
-"Problems occured during configuration.\n"
-"Test your connection via net_monitor or mcc. If your connection doesn't "
-"work, you might want to relaunch the configuration."
-msgstr ""
-
-#: ../../network/network.pm_.c:293
-msgid ""
-"WARNING: this device has been previously configured to connect to the "
-"Internet.\n"
-"Simply accept to keep this device configured.\n"
-"Modifying the fields below will override this configuration."
-msgstr ""
-
-#: ../../network/network.pm_.c:298
-msgid ""
-"Please enter the IP configuration for this machine.\n"
-"Each item should be entered as an IP address in dotted-decimal\n"
-"notation (for example, 1.2.3.4)."
-msgstr ""
-
-#: ../../network/network.pm_.c:308 ../../network/network.pm_.c:309
-#, c-format
-msgid "Configuring network device %s"
-msgstr ""
-
-#: ../../network/network.pm_.c:309
-#, c-format
-msgid " (driver %s)"
-msgstr ""
-
-#: ../../network/network.pm_.c:311 ../../standalone/drakconnect_.c:232
-#: ../../standalone/drakconnect_.c:468
-msgid "IP address"
-msgstr ""
-
-#: ../../network/network.pm_.c:312 ../../standalone/drakconnect_.c:469
-msgid "Netmask"
-msgstr ""
-
-#: ../../network/network.pm_.c:313
-msgid "(bootp/dhcp)"
-msgstr ""
-
-#: ../../network/network.pm_.c:313
-msgid "Automatic IP"
-msgstr ""
-
-#: ../../network/network.pm_.c:314
-msgid "Start at boot"
-msgstr ""
-
-#: ../../network/network.pm_.c:335 ../../printerdrake.pm_.c:710
-msgid "IP address should be in format 1.2.3.4"
-msgstr ""
-
-#: ../../network/network.pm_.c:365
-msgid ""
-"Please enter your host name.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''.\n"
-"You may also enter the IP address of the gateway if you have one"
-msgstr ""
-
-#: ../../network/network.pm_.c:370
-msgid "DNS server"
-msgstr ""
-
-#: ../../network/network.pm_.c:371
-#, c-format
-msgid "Gateway (e.g. %s)"
-msgstr ""
-
-#: ../../network/network.pm_.c:373
-msgid "Gateway device"
-msgstr ""
-
-#: ../../network/network.pm_.c:385
-msgid "Proxies configuration"
-msgstr ""
-
-#: ../../network/network.pm_.c:386
-msgid "HTTP proxy"
-msgstr ""
-
-#: ../../network/network.pm_.c:387
-msgid "FTP proxy"
-msgstr ""
-
-#: ../../network/network.pm_.c:388
-msgid "Track network card id (useful for laptops)"
-msgstr ""
-
-#: ../../network/network.pm_.c:391
-msgid "Proxy should be http://..."
-msgstr ""
-
-#: ../../network/network.pm_.c:392
-msgid "Proxy should be ftp://..."
-msgstr ""
-
-#: ../../network/tools.pm_.c:41
-msgid "Internet configuration"
-msgstr ""
-
-#: ../../network/tools.pm_.c:42
-msgid "Do you want to try to connect to the Internet now?"
-msgstr ""
-
-#: ../../network/tools.pm_.c:46 ../../standalone/drakconnect_.c:197
-msgid "Testing your connection..."
-msgstr ""
-
-#: ../../network/tools.pm_.c:56
-msgid "The system is now connected to Internet."
-msgstr ""
-
-#: ../../network/tools.pm_.c:57
-msgid "For security reason, it will be disconnected now."
-msgstr ""
-
-#: ../../network/tools.pm_.c:58
-msgid ""
-"The system doesn't seem to be connected to internet.\n"
-"Try to reconfigure your connection."
-msgstr ""
-
-#: ../../network/tools.pm_.c:82
-msgid "Connection Configuration"
-msgstr ""
-
-#: ../../network/tools.pm_.c:83
-msgid "Please fill or check the field below"
-msgstr ""
-
-#: ../../network/tools.pm_.c:85 ../../standalone/drakconnect_.c:608
-msgid "Card IRQ"
-msgstr ""
-
-#: ../../network/tools.pm_.c:86 ../../standalone/drakconnect_.c:609
-msgid "Card mem (DMA)"
-msgstr ""
-
-#: ../../network/tools.pm_.c:87 ../../standalone/drakconnect_.c:610
-msgid "Card IO"
-msgstr ""
-
-#: ../../network/tools.pm_.c:88 ../../standalone/drakconnect_.c:611
-msgid "Card IO_0"
-msgstr ""
-
-#: ../../network/tools.pm_.c:89 ../../standalone/drakconnect_.c:612
-msgid "Card IO_1"
-msgstr ""
-
-#: ../../network/tools.pm_.c:90 ../../standalone/drakconnect_.c:613
-msgid "Your personal phone number"
-msgstr ""
-
-#: ../../network/tools.pm_.c:91 ../../standalone/drakconnect_.c:614
-msgid "Provider name (ex provider.net)"
-msgstr ""
-
-#: ../../network/tools.pm_.c:92 ../../standalone/drakconnect_.c:615
-msgid "Provider phone number"
-msgstr ""
-
-#: ../../network/tools.pm_.c:93 ../../standalone/drakconnect_.c:616
-msgid "Provider dns 1 (optional)"
-msgstr ""
-
-#: ../../network/tools.pm_.c:94 ../../standalone/drakconnect_.c:617
-msgid "Provider dns 2 (optional)"
-msgstr ""
-
-#: ../../network/tools.pm_.c:95
-msgid "Choose your country"
-msgstr ""
-
-#: ../../network/tools.pm_.c:96 ../../standalone/drakconnect_.c:620
-msgid "Dialing mode"
-msgstr ""
-
-#: ../../network/tools.pm_.c:97 ../../standalone/drakconnect_.c:632
-msgid "Connection speed"
-msgstr ""
-
-#: ../../network/tools.pm_.c:98 ../../standalone/drakconnect_.c:633
-msgid "Connection timeout (in sec)"
-msgstr ""
-
-#: ../../network/tools.pm_.c:99 ../../standalone/drakconnect_.c:618
-msgid "Account Login (user name)"
-msgstr ""
-
-#: ../../network/tools.pm_.c:100 ../../standalone/drakconnect_.c:619
-#: ../../standalone/drakconnect_.c:650
-msgid "Account Password"
-msgstr ""
-
-#: ../../network/tools.pm_.c:118
-msgid "United Kingdom"
-msgstr ""
-
-#: ../../partition_table.pm_.c:604
-msgid "mount failed: "
-msgstr ""
-
-#: ../../partition_table.pm_.c:668
-msgid "Extended partition not supported on this platform"
-msgstr ""
-
-#: ../../partition_table.pm_.c:686
-msgid ""
-"You have a hole in your partition table but I can't use it.\n"
-"The only solution is to move your primary partitions to have the hole next "
-"to the extended partitions."
-msgstr ""
-
-#: ../../partition_table.pm_.c:774
-#, c-format
-msgid "Restoring from file %s failed: %s"
-msgstr ""
-
-#: ../../partition_table.pm_.c:776
-msgid "Bad backup file"
-msgstr ""
-
-#: ../../partition_table.pm_.c:798
-#, c-format
-msgid "Error writing to file %s"
-msgstr ""
-
-#: ../../partition_table_raw.pm_.c:186
-msgid ""
-"Something bad is happening on your drive. \n"
-"A test to check the integrity of data has failed. \n"
-"It means writing anything on the disk will end up with random trash"
-msgstr ""
-
-#: ../../pkgs.pm_.c:26
-msgid "must have"
-msgstr ""
-
-#: ../../pkgs.pm_.c:27
-msgid "important"
-msgstr ""
-
-#: ../../pkgs.pm_.c:28
-msgid "very nice"
-msgstr ""
-
-#: ../../pkgs.pm_.c:29
-msgid "nice"
-msgstr ""
-
-#: ../../pkgs.pm_.c:30
-msgid "maybe"
-msgstr ""
-
-#: ../../printer.pm_.c:23
-msgid "CUPS - Common Unix Printing System"
-msgstr ""
-
-#: ../../printer.pm_.c:24
-msgid "LPRng - LPR New Generation"
-msgstr ""
-
-#: ../../printer.pm_.c:25
-msgid "LPD - Line Printer Daemon"
-msgstr ""
-
-#: ../../printer.pm_.c:26
-msgid "PDQ - Print, Don't Queue"
-msgstr ""
-
-#: ../../printer.pm_.c:32 ../../printer.pm_.c:846
-msgid "CUPS"
-msgstr ""
-
-#: ../../printer.pm_.c:33
-msgid "LPRng"
-msgstr ""
-
-#: ../../printer.pm_.c:34
-msgid "LPD"
-msgstr ""
-
-#: ../../printer.pm_.c:35
-msgid "PDQ"
-msgstr ""
-
-#: ../../printer.pm_.c:47
-msgid "Local printer"
-msgstr ""
-
-#: ../../printer.pm_.c:48
-msgid "Remote printer"
-msgstr ""
-
-#: ../../printer.pm_.c:49
-msgid "Printer on remote CUPS server"
-msgstr ""
-
-#: ../../printer.pm_.c:50 ../../printerdrake.pm_.c:732
-msgid "Printer on remote lpd server"
-msgstr ""
-
-#: ../../printer.pm_.c:51
-msgid "Network printer (TCP/Socket)"
-msgstr ""
-
-#: ../../printer.pm_.c:52
-msgid "Printer on SMB/Windows 95/98/NT server"
-msgstr ""
-
-#: ../../printer.pm_.c:53
-msgid "Printer on NetWare server"
-msgstr ""
-
-#: ../../printer.pm_.c:54 ../../printerdrake.pm_.c:736
-msgid "Enter a printer device URI"
-msgstr ""
-
-#: ../../printer.pm_.c:55
-msgid "Pipe job into a command"
-msgstr ""
-
-#: ../../printer.pm_.c:479 ../../printer.pm_.c:670 ../../printer.pm_.c:992
-#: ../../printerdrake.pm_.c:1663 ../../printerdrake.pm_.c:2728
-msgid "Unknown model"
-msgstr ""
-
-#: ../../printer.pm_.c:507
-msgid "Local Printers"
-msgstr ""
-
-#: ../../printer.pm_.c:509 ../../printer.pm_.c:847
-msgid "Remote Printers"
-msgstr ""
-
-#: ../../printer.pm_.c:516 ../../printerdrake.pm_.c:244
-#, c-format
-msgid " on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printer.pm_.c:519 ../../printerdrake.pm_.c:246
-#, c-format
-msgid ", USB printer \\/*%s"
-msgstr ""
-
-#: ../../printer.pm_.c:524
-#, c-format
-msgid ", multi-function device on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printer.pm_.c:527
-msgid ", multi-function device on USB"
-msgstr ""
-
-#: ../../printer.pm_.c:529
-msgid ", multi-function device on HP JetDirect"
-msgstr ""
-
-#: ../../printer.pm_.c:531
-msgid ", multi-function device"
-msgstr ""
-
-#: ../../printer.pm_.c:534
-#, c-format
-msgid ", printing to %s"
-msgstr ""
-
-#: ../../printer.pm_.c:536
-#, c-format
-msgid "on LPD server \"%s\", printer \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:538
-#, c-format
-msgid ", TCP/IP host \"%s\", port %s"
-msgstr ""
-
-#: ../../printer.pm_.c:542
-#, c-format
-msgid "on Windows server \"%s\", share \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:546
-#, c-format
-msgid "on Novell server \"%s\", printer \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:548
-#, c-format
-msgid ", using command %s"
-msgstr ""
-
-#: ../../printer.pm_.c:667 ../../printerdrake.pm_.c:1134
-msgid "Raw printer (No driver)"
-msgstr ""
-
-#: ../../printer.pm_.c:816
-#, c-format
-msgid "(on %s)"
-msgstr ""
-
-#: ../../printer.pm_.c:818
-msgid "(on this machine)"
-msgstr ""
-
-#: ../../printer.pm_.c:843
-#, c-format
-msgid "On CUPS server \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:849 ../../printerdrake.pm_.c:2390
-#: ../../printerdrake.pm_.c:2401 ../../printerdrake.pm_.c:2616
-#: ../../printerdrake.pm_.c:2668 ../../printerdrake.pm_.c:2695
-#: ../../printerdrake.pm_.c:2865 ../../printerdrake.pm_.c:2867
-msgid " (Default)"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:22
-msgid "Select Printer Connection"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:23
-msgid "How is the printer connected?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:25
-msgid ""
-"\n"
-"Printers on remote CUPS servers you do not have to configure here; these "
-"printers will be automatically detected."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:69 ../../printerdrake.pm_.c:2453
-msgid "CUPS configuration"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:70 ../../printerdrake.pm_.c:2454
-msgid "Specify CUPS server"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:71
-msgid ""
-"To get access to printers on remote CUPS servers in your local network you "
-"do not have to configure anything; the CUPS servers inform your machine "
-"automatically about their printers. All printers currently known to your "
-"machine are listed in the \"Remote printers\" section in the main window of "
-"Printerdrake. When your CUPS server is not in your local network, you have "
-"to enter the CUPS server IP address and optionally the port number to get "
-"the printer information from the server, otherwise leave these fields blank."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:72
-msgid ""
-"\n"
-"Normally, CUPS is automatically configured according to your network "
-"environment, so that you can access the printers on the CUPS servers in your "
-"local network. If this does not work correctly, turn off \"Automatic CUPS "
-"configuration\" and edit your file /etc/cups/cupsd.conf manually. Do not "
-"forget to restart CUPS afterwards (command: \"service cups restart\")."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:76
-msgid "The IP address should look like 192.168.1.20"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:80 ../../printerdrake.pm_.c:860
-msgid "The port number should be an integer!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:87
-msgid "CUPS server IP"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:88 ../../printerdrake.pm_.c:853
-msgid "Port"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:90
-msgid "Automatic CUPS configuration"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-msgid "Test ports"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:163 ../../printerdrake.pm_.c:2436
-#: ../../printerdrake.pm_.c:2555
-msgid "Add a new printer"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:164
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard allows you to install local or remote printers to be used from "
-"this machine and also from other machines in the network.\n"
-"\n"
-"It asks you for all necessary information to set up the printer and gives "
-"you access to all available printer drivers, driver options, and printer "
-"connection types."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:172 ../../printerdrake.pm_.c:199
-#: ../../printerdrake.pm_.c:374 ../../printerdrake.pm_.c:389
-#: ../../printerdrake.pm_.c:399 ../../printerdrake.pm_.c:462
-msgid "Local Printer"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:173
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard will help you to install your printer(s) connected to this "
-"computer.\n"
-"\n"
-"Please plug in your printer(s) on this computer and turn it/them on. Click "
-"on \"Next\" when you are ready, and on \"Cancel\" when you do not want to "
-"set up your printer(s) now.\n"
-"\n"
-"Note that some computers can crash during the printer auto-detection, turn "
-"off \"Auto-detect printers\" to do a printer installation without auto-"
-"detection. Use the \"Expert Mode\" of printerdrake when you want to set up "
-"printing on a remote printer if printerdrake does not list it automatically."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:182
-msgid "Auto-detect printers"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:200
-msgid ""
-"\n"
-"Congratulations, your printer is now installed and configured!\n"
-"\n"
-"You can print using the \"Print\" command of your application (usually in "
-"the \"File\" menu).\n"
-"\n"
-"If you want to add, remove, or rename a printer, or if you want to change "
-"the default option settings (paper input tray, printout quality, ...), "
-"select \"Printer\" in the \"Hardware\" section of the Mandrake Control "
-"Center."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:219
-msgid "Auto-Detection of Printers"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:220
-msgid ""
-"Printerdrake is able to auto-detect your locally connected parallel and USB "
-"printers for you, but note that on some systems the auto-detection CAN "
-"FREEZE YOUR SYSTEM AND THIS CAN LEAD TO CORRUPTED FILE SYSTEMS! So do it ON "
-"YOUR OWN RISK!\n"
-"\n"
-"Do you really want to get your printers auto-detected?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:223 ../../printerdrake.pm_.c:225
-#: ../../printerdrake.pm_.c:226
-msgid "Do auto-detection"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:224
-msgid "Set up printer manually"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:252
-#, c-format
-msgid "Detected %s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:256 ../../printerdrake.pm_.c:283
-#: ../../printerdrake.pm_.c:302
-#, c-format
-msgid "Printer on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:258 ../../printerdrake.pm_.c:285
-#: ../../printerdrake.pm_.c:307
-#, c-format
-msgid "USB printer \\/*%s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:375
-msgid ""
-"No local printer found! To manually install a printer enter a device name/"
-"file name in the input line (Parallel Ports: /dev/lp0, /dev/lp1, ..., "
-"equivalent to LPT1:, LPT2:, ..., 1st USB printer: /dev/usb/lp0, 2nd USB "
-"printer: /dev/usb/lp1, ...)."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:379
-msgid "You must enter a device or file name!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:390
-msgid ""
-"No local printer found!\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:391
-msgid ""
-"Network printers can only be installed after the installation. Choose "
-"\"Hardware\" and then \"Printer\" in the Mandrake Control Center."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:392
-msgid ""
-"To install network printers, click \"Cancel\", switch to the \"Expert Mode"
-"\", and click \"Add a new printer\" again."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:403
-msgid ""
-"The following printer was auto-detected, if it is not the one you want to "
-"configure, enter a device name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:404
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up or enter a device name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:406
-msgid ""
-"The following printer was auto-detected. The configuration of the printer "
-"will work fully automatically. If your printer was not correctly detected or "
-"if you prefer a customized printer configuration, turn on \"Manual "
-"configuration\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:407
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up. The configuration of the printer will work fully "
-"automatically. If your printer was not correctly detected or if you prefer a "
-"customized printer configuration, turn on \"Manual configuration\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:409
-msgid ""
-"Please choose the port where your printer is connected to or enter a device "
-"name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:410
-msgid "Please choose the port where your printer is connected to."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:412
-msgid ""
-" (Parallel Ports: /dev/lp0, /dev/lp1, ..., equivalent to LPT1:, LPT2:, ..., "
-"1st USB printer: /dev/usb/lp0, 2nd USB printer: /dev/usb/lp1, ...)."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:417
-msgid "You must choose/enter a printer/device!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:437
-msgid "Manual configuration"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:463
-msgid ""
-"Is your printer a multi-function device from HP (OfficeJet, PSC, LaserJet "
-"1100/1200/1220/3200/3300 with scanner), an HP PhotoSmart P100 or 1315 or an "
-"HP LaserJet 2200?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:480
-msgid "Installing HPOJ package..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:485
-msgid "Checking device and configuring HPOJ..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:503
-msgid "Installing SANE package..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:515
-msgid "Scanning on your HP multi-function device"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:532
-msgid "Making printer port available for CUPS..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:542 ../../printerdrake.pm_.c:1016
-#: ../../printerdrake.pm_.c:1130
-msgid "Reading printer database..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:622
-msgid "Remote lpd Printer Options"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:623
-msgid ""
-"To use a remote lpd printer, you need to supply the hostname of the printer "
-"server and the printer name on that server."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:624
-msgid "Remote host name"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:625
-msgid "Remote printer name"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:628
-msgid "Remote host name missing!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:632
-msgid "Remote printer name missing!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:700
-msgid "SMB (Windows 9x/NT) Printer Options"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:701
-msgid ""
-"To print to a SMB printer, you need to provide the SMB host name (Note! It "
-"may be different from its TCP/IP hostname!) and possibly the IP address of "
-"the print server, as well as the share name for the printer you wish to "
-"access and any applicable user name, password, and workgroup information."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:702
-msgid "SMB server host"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:703
-msgid "SMB server IP"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:704
-msgid "Share name"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:707
-msgid "Workgroup"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:714
-msgid "Either the server name or the server's IP must be given!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:718
-msgid "Samba share name missing!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:723
-msgid "SECURITY WARNING!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:724
-#, c-format
-msgid ""
-"You are about to set up printing to a Windows account with password. Due to "
-"a fault in the architecture of the Samba client software the password is put "
-"in clear text into the command line of the Samba client used to transmit the "
-"print job to the Windows server. So it is possible for every user on this "
-"machine to display the password on the screen by issuing commands as \"ps "
-"auxwww\".\n"
-"\n"
-"We recommend to make use of one of the following alternatives (in all cases "
-"you have to make sure that only machines from your local network have access "
-"to your Windows server, for example by means of a firewall):\n"
-"\n"
-"Use a password-less account on your Windows server, as the \"GUEST\" account "
-"or a special account dedicated for printing. Do not remove the password "
-"protection from a personal account or the administrator account.\n"
-"\n"
-"Set up your Windows server to make the printer available under the LPD "
-"protocol. Then set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:734
-#, c-format
-msgid ""
-"Set up your Windows server to make the printer available under the IPP "
-"protocol and set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:737
-msgid ""
-"Connect your printer to a Linux server and let your Windows machine(s) "
-"connect to it as a client.\n"
-"\n"
-"Do you really want to continue setting up this printer as you are doing now?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:799
-msgid "NetWare Printer Options"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:800
-msgid ""
-"To print on a NetWare printer, you need to provide the NetWare print server "
-"name (Note! it may be different from its TCP/IP hostname!) as well as the "
-"print queue name for the printer you wish to access and any applicable user "
-"name and password."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:801
-msgid "Printer Server"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:802
-msgid "Print Queue Name"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:807
-msgid "NCP server name missing!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:811
-msgid "NCP queue name missing!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:850
-msgid "TCP/Socket Printer Options"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:851
-msgid ""
-"To print to a TCP or socket printer, you need to provide the host name of "
-"the printer and optionally the port number. On HP JetDirect servers the port "
-"number is usually 9100, on other servers it can vary. See the manual of your "
-"hardware."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:852
-msgid "Printer host name"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:856
-msgid "Printer host name missing!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:885 ../../printerdrake.pm_.c:887
-msgid "Printer Device URI"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:886
-msgid ""
-"You can specify directly the URI to access the printer. The URI must fulfill "
-"either the CUPS or the Foomatic specifications. Note that not all URI types "
-"are supported by all the spoolers."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:901
-msgid "A valid URI must be entered!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1002
-msgid ""
-"Every printer needs a name (for example \"printer\"). The Description and "
-"Location fields do not need to be filled in. They are comments for the users."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1003
-msgid "Name of printer"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1005
-msgid "Location"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1019
-msgid "Preparing printer database..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1110
-msgid "Your printer model"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1111
-#, c-format
-msgid ""
-"Printerdrake has compared the model name resulting from the printer auto-"
-"detection with the models listed in its printer database to find the best "
-"match. This choice can be wrong, especially when your printer is not listed "
-"at all in the database. So check whether the choice is correct and click "
-"\"The model is correct\" if so and if not, click \"Select model manually\" "
-"so that you can choose your printer model manually on the next screen.\n"
-"\n"
-"For your printer Printerdrake has found:\n"
-"\n"
-"%s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1116 ../../printerdrake.pm_.c:1119
-msgid "The model is correct"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1117 ../../printerdrake.pm_.c:1118
-#: ../../printerdrake.pm_.c:1121
-msgid "Select model manually"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1137
-msgid "Printer model selection"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1138
-msgid "Which printer model do you have?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1139
-msgid ""
-"\n"
-"\n"
-"Please check whether Printerdrake did the auto-detection of your printer "
-"model correctly. Search the correct model in the list when the cursor is "
-"standing on a wrong model or on \"Raw printer\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1142
-msgid ""
-"If your printer is not listed, choose a compatible (see printer manual) or a "
-"similar one."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1218
-msgid "OKI winprinter configuration"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1219
-msgid ""
-"You are configuring an OKI laser winprinter. These printers\n"
-"use a very special communication protocol and therefore they work only when "
-"connected to the first parallel port. When your printer is connected to "
-"another port or to a print server box please connect the printer to the "
-"first parallel port before you print a test page. Otherwise the printer will "
-"not work. Your connection type setting will be ignored by the driver."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1262 ../../printerdrake.pm_.c:1289
-msgid "Lexmark inkjet configuration"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1263
-msgid ""
-"The inkjet printer drivers provided by Lexmark only support local printers, "
-"no printers on remote machines or print server boxes. Please connect your "
-"printer to a local port or configure it on the machine where it is connected "
-"to."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1290
-msgid ""
-"To be able to print with your Lexmark inkjet and this configuration, you "
-"need the inkjet printer drivers provided by Lexmark (http://www.lexmark."
-"com/). Go to the US site and click on the \"Drivers\" button. Then choose "
-"your model and afterwards \"Linux\" as operating system. The drivers come as "
-"RPM packages or shell scripts with interactive graphical installation. You "
-"do not need to do this configuration by the graphical frontends. Cancel "
-"directly after the license agreement. Then print printhead alignment pages "
-"with \"lexmarkmaintain\" and adjust the head alignment settings with this "
-"program."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1506
-msgid ""
-"Printer default settings\n"
-"\n"
-"You should make sure that the page size and the ink type/printing mode (if "
-"available) and also the hardware configuration of laser printers (memory, "
-"duplex unit, extra trays) are set correctly. Note that with a very high "
-"printout quality/resolution printing can get substantially slower."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1515
-#, c-format
-msgid "Option %s must be an integer number!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1519
-#, c-format
-msgid "Option %s must be a number!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1524
-#, c-format
-msgid "Option %s out of range!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1563
-#, c-format
-msgid ""
-"Do you want to set this printer (\"%s\")\n"
-"as the default printer?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1580
-msgid "Test pages"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1581
-msgid ""
-"Please select the test pages you want to print.\n"
-"Note: the photo test page can take a rather long time to get printed and on "
-"laser printers with too low memory it can even not come out. In most cases "
-"it is enough to print the standard test page."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1585
-msgid "No test pages"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1586
-msgid "Print"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1588
-msgid "Standard test page"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1591
-msgid "Alternative test page (Letter)"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1594
-msgid "Alternative test page (A4)"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1596
-msgid "Photo test page"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1600
-msgid "Do not print any test page"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1608 ../../printerdrake.pm_.c:1745
-msgid "Printing test page(s)..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1633
-#, c-format
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-"Printing status:\n"
-"%s\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1637
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1644
-msgid "Did it work properly?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1665 ../../printerdrake.pm_.c:2730
-msgid "Raw printer"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1683
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) you can either use "
-"the command \"%s <file>\" or a graphical printing tool: \"xpp <file>\" or "
-"\"kprinter <file>\". The graphical tools allow you to choose the printer and "
-"to modify the option settings easily.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1685
-msgid ""
-"These commands you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications, but here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1688 ../../printerdrake.pm_.c:1704
-#: ../../printerdrake.pm_.c:1714
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" command also allows to modify the option settings for a "
-"particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\". "
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1691 ../../printerdrake.pm_.c:1730
-#, c-format
-msgid ""
-"To know about the options available for the current printer read either the "
-"list shown below or click on the \"Print option list\" button.%s\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1694
-msgid ""
-"Here is a list of the available printing options for the current printer:\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1699 ../../printerdrake.pm_.c:1709
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\".\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1701 ../../printerdrake.pm_.c:1711
-#: ../../printerdrake.pm_.c:1721
-msgid ""
-"This command you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications. But here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1706 ../../printerdrake.pm_.c:1716
-msgid ""
-"To get a list of the options available for the current printer click on the "
-"\"Print option list\" button."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1719
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\" or \"%s <file>\".\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1723
-msgid ""
-"You can also use the graphical interface \"xpdq\" for setting options and "
-"handling printing jobs.\n"
-"If you are using KDE as desktop environment you have a \"panic button\", an "
-"icon on the desktop, labeled with \"STOP Printer!\", which stops all print "
-"jobs immediately when you click it. This is for example useful for paper "
-"jams.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1727
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" and \"%s\" commands also allow to modify the option settings for "
-"a particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\".\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1736 ../../printerdrake.pm_.c:1742
-#: ../../printerdrake.pm_.c:1743 ../../printerdrake.pm_.c:1744
-#: ../../printerdrake.pm_.c:2714 ../../standalone/drakTermServ_.c:235
-#: ../../standalone/drakbackup_.c:895 ../../standalone/drakbackup_.c:3943
-#: ../../standalone/drakbug_.c:106 ../../standalone/drakfont_.c:706
-#: ../../standalone/drakfont_.c:1015
-msgid "Close"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1739 ../../printerdrake.pm_.c:1751
-#, c-format
-msgid "Printing/Scanning on \"%s\""
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1740 ../../printerdrake.pm_.c:1752
-#, c-format
-msgid "Printing on the printer \"%s\""
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1742
-msgid "Print option list"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1764
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan with \"scanimage\" (\"scanimage -d hp:%s\" to specify "
-"the scanner when you have more than one) from the command line or with the "
-"graphical interfaces \"xscanimage\" or \"xsane\". If you are using the GIMP, "
-"you can also scan by choosing the appropriate point in the \"File\"/\"Acquire"
-"\" menu. Call also \"man scanimage\" and \"man sane-hp\" on the command line "
-"to get more information.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1771
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan from the command line with \"ptal-hp %s scan ...\". "
-"Scanning via a graphical interface or from the GIMP is not supported yet for "
-"your device. More information you will find in the \"/usr/share/doc/hpoj-0.8/"
-"ptal-hp-scan.html\" file on your system. If you have an HP LaserJet 1100 or "
-"1200 you can only scan when you have the scanner option installed.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1793 ../../printerdrake.pm_.c:2220
-#: ../../printerdrake.pm_.c:2484
-msgid "Reading printer data..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1813 ../../printerdrake.pm_.c:1841
-#: ../../printerdrake.pm_.c:1876
-msgid "Transfer printer configuration"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1814
-#, c-format
-msgid ""
-"You can copy the printer configuration which you have done for the spooler %"
-"s to %s, your current spooler. All the configuration data (printer name, "
-"description, location, connection type, and default option settings) is "
-"overtaken, but jobs will not be transferred.\n"
-"Not all queues can be transferred due to the following reasons:\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1817
-msgid ""
-"CUPS does not support printers on Novell servers or printers sending the "
-"data into a free-formed command.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1819
-msgid ""
-"PDQ only supports local printers, remote LPD printers, and Socket/TCP "
-"printers.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1821
-msgid "LPD and LPRng do not support IPP printers.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1823
-msgid ""
-"In addition, queues not created with this program or \"foomatic-configure\" "
-"cannot be transferred."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1824
-msgid ""
-"\n"
-"Also printers configured with the PPD files provided by their manufacturers "
-"or with native CUPS drivers cannot be transferred."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1825
-msgid ""
-"\n"
-"Mark the printers which you want to transfer and click \n"
-"\"Transfer\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1828
-msgid "Do not transfer printers"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1829 ../../printerdrake.pm_.c:1846
-msgid "Transfer"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1842
-#, c-format
-msgid ""
-"A printer named \"%s\" already exists under %s. \n"
-"Click \"Transfer\" to overwrite it.\n"
-"You can also type a new name or skip this printer."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1850
-msgid "Name of printer should contain only letters, numbers and the underscore"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1855
-#, c-format
-msgid ""
-"The printer \"%s\" already exists,\n"
-"do you really want to overwrite its configuration?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1863
-msgid "New printer name"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1866
-#, c-format
-msgid "Transferring %s..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1877
-#, c-format
-msgid ""
-"You have transferred your former default printer (\"%s\"), Should it be also "
-"the default printer under the new printing system %s?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1886
-msgid "Refreshing printer data..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1894 ../../printerdrake.pm_.c:1965
-#: ../../printerdrake.pm_.c:1977
-msgid "Configuration of a remote printer"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1895
-msgid "Starting network..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1929 ../../printerdrake.pm_.c:1933
-#: ../../printerdrake.pm_.c:1935
-msgid "Configure the network now"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1930
-msgid "Network functionality not configured"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1931
-msgid ""
-"You are going to configure a remote printer. This needs working network "
-"access, but your network is not configured yet. If you go on without network "
-"configuration, you will not be able to use the printer which you are "
-"configuring now. How do you want to proceed?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1934
-msgid "Go on without configuring the network"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1967
-msgid ""
-"The network configuration done during the installation cannot be started "
-"now. Please check whether the network gets accessable after booting your "
-"system and correct the configuration using the Mandrake Control Center, "
-"section \"Network & Internet\"/\"Connection\", and afterwards set up the "
-"printer, also using the Mandrake Control Center, section \"Hardware\"/"
-"\"Printer\""
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1968
-msgid ""
-"The network access was not running and could not be started. Please check "
-"your configuration and your hardware. Then try to configure your remote "
-"printer again."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1978
-msgid "Restarting printing system..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2016
-msgid "high"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2016
-msgid "paranoid"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2017
-#, c-format
-msgid "Installing a printing system in the %s security level"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2018
-#, c-format
-msgid ""
-"You are about to install the printing system %s on a system running in the %"
-"s security level.\n"
-"\n"
-"This printing system runs a daemon (background process) which waits for "
-"print jobs and handles them. This daemon is also accessable by remote "
-"machines through the network and so it is a possible point for attacks. "
-"Therefore only a few selected daemons are started by default in this "
-"security level.\n"
-"\n"
-"Do you really want to configure printing on this machine?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2050
-msgid "Starting the printing system at boot time"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2051
-#, c-format
-msgid ""
-"The printing system (%s) will not be started automatically when the machine "
-"is booted.\n"
-"\n"
-"It is possible that the automatic starting was turned off by changing to a "
-"higher security level, because the printing system is a potential point for "
-"attacks.\n"
-"\n"
-"Do you want to have the automatic starting of the printing system turned on "
-"again?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2074 ../../printerdrake.pm_.c:2112
-#: ../../printerdrake.pm_.c:2142 ../../printerdrake.pm_.c:2175
-#: ../../printerdrake.pm_.c:2280
-msgid "Checking installed software..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2116
-msgid "Removing LPRng..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2146
-msgid "Removing LPD..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2204
-msgid "Select Printer Spooler"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2205
-msgid "Which printing system (spooler) do you want to use?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2238
-#, c-format
-msgid "Configuring printer \"%s\"..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2251
-msgid "Installing Foomatic..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2308 ../../printerdrake.pm_.c:2347
-#: ../../printerdrake.pm_.c:2731 ../../printerdrake.pm_.c:2801
-msgid "Printer options"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2317
-msgid "Preparing PrinterDrake..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2334 ../../printerdrake.pm_.c:2888
-msgid "Configuring applications..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2354
-msgid "Would you like to configure printing?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2366
-msgid "Printing system: "
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2414
-msgid "Printerdrake"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2418
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; to view information about it; "
-"or to make a printer on a remote CUPS server available for Star Office/"
-"OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2419
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; or to view information about "
-"it."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2445
-msgid "Refresh printer list (to display all available remote CUPS printers)"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2463
-msgid "Change the printing system"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2468 ../../standalone/drakconnect_.c:278
-msgid "Normal Mode"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2623 ../../printerdrake.pm_.c:2673
-#: ../../printerdrake.pm_.c:2882
-msgid "Do you want to configure another printer?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2709
-msgid "Modify printer configuration"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2711
-#, c-format
-msgid ""
-"Printer %s\n"
-"What do you want to modify on this printer?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2715
-msgid "Do it!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2720 ../../printerdrake.pm_.c:2775
-msgid "Printer connection type"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2721 ../../printerdrake.pm_.c:2779
-msgid "Printer name, description, location"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2723 ../../printerdrake.pm_.c:2794
-msgid "Printer manufacturer, model, driver"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2724 ../../printerdrake.pm_.c:2795
-msgid "Printer manufacturer, model"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2733 ../../printerdrake.pm_.c:2805
-msgid "Set this printer as the default"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2735 ../../printerdrake.pm_.c:2810
-msgid "Add this printer to Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2736 ../../printerdrake.pm_.c:2819
-msgid "Remove this printer from Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2737 ../../printerdrake.pm_.c:2828
-msgid "Print test pages"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2738 ../../printerdrake.pm_.c:2830
-msgid "Know how to use this printer"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2740 ../../printerdrake.pm_.c:2832
-msgid "Remove printer"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2784
-#, c-format
-msgid "Removing old printer \"%s\"..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2808
-msgid "Default printer"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2809
-#, c-format
-msgid "The printer \"%s\" is set as the default printer now."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2813 ../../printerdrake.pm_.c:2816
-msgid "Adding printer to Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2814
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully added to Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2817
-#, c-format
-msgid "Failed to add the printer \"%s\" to Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2822 ../../printerdrake.pm_.c:2825
-msgid "Removing printer from Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2823
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully removed from Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2826
-#, c-format
-msgid "Failed to remove the printer \"%s\" from Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2834
-#, c-format
-msgid "Do you really want to remove the printer \"%s\"?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2836
-#, c-format
-msgid "Removing printer \"%s\"..."
-msgstr ""
-
-#: ../../proxy.pm_.c:29 ../../proxy.pm_.c:37 ../../proxy.pm_.c:58
-#: ../../proxy.pm_.c:78
-msgid "Proxy configuration"
-msgstr ""
-
-#: ../../proxy.pm_.c:30
-msgid ""
-"Welcome to the proxy configuration utility.\n"
-"\n"
-"Here, you'll be able to set up your http and ftp proxies\n"
-"with or without login and password\n"
-msgstr ""
-
-#: ../../proxy.pm_.c:38
-msgid ""
-"Please fill in the http proxy informations\n"
-"Leave it blank if you don't want an http proxy"
-msgstr ""
-
-#: ../../proxy.pm_.c:39 ../../proxy.pm_.c:60
-msgid "URL"
-msgstr ""
-
-#: ../../proxy.pm_.c:40 ../../proxy.pm_.c:61
-msgid "port"
-msgstr ""
-
-#: ../../proxy.pm_.c:44
-msgid "Url should begin with 'http:'"
-msgstr ""
-
-#: ../../proxy.pm_.c:48 ../../proxy.pm_.c:69
-msgid "The port part should be numeric"
-msgstr ""
-
-#: ../../proxy.pm_.c:59
-msgid ""
-"Please fill in the ftp proxy informations\n"
-"Leave it blank if you don't want an ftp proxy"
-msgstr ""
-
-#: ../../proxy.pm_.c:65
-msgid "Url should begin with 'ftp:'"
-msgstr ""
-
-#: ../../proxy.pm_.c:79
-msgid ""
-"Please enter proxy login and password, if any.\n"
-"Leave it blank if you don't want login/passwd"
-msgstr ""
-
-#: ../../proxy.pm_.c:80
-msgid "login"
-msgstr ""
-
-#: ../../proxy.pm_.c:82
-msgid "password"
-msgstr ""
-
-#: ../../proxy.pm_.c:84
-msgid "re-type password"
-msgstr ""
-
-#: ../../proxy.pm_.c:88
-msgid "The passwords don't match. Try again!"
-msgstr ""
-
-#: ../../raid.pm_.c:35
-#, c-format
-msgid "Can't add a partition to _formatted_ RAID md%d"
-msgstr ""
-
-#: ../../raid.pm_.c:108
-#, c-format
-msgid "Can't write file %s"
-msgstr ""
-
-#: ../../raid.pm_.c:137
-msgid "mkraid failed"
-msgstr ""
-
-#: ../../raid.pm_.c:137
-msgid "mkraid failed (maybe raidtools are missing?)"
-msgstr ""
-
-#: ../../raid.pm_.c:153
-#, c-format
-msgid "Not enough partitions for RAID level %d\n"
-msgstr ""
-
-#: ../../security.pm_.c:30
-msgid "Setting security level"
-msgstr ""
-
-#: ../../services.pm_.c:14
-msgid "Launch the ALSA (Advanced Linux Sound Architecture) sound system"
-msgstr ""
-
-#: ../../services.pm_.c:15
-msgid "Anacron a periodic command scheduler."
-msgstr ""
-
-#: ../../services.pm_.c:16
-msgid ""
-"apmd is used for monitoring batery status and logging it via syslog.\n"
-"It can also be used for shutting down the machine when the battery is low."
-msgstr ""
-
-#: ../../services.pm_.c:18
-msgid ""
-"Runs commands scheduled by the at command at the time specified when\n"
-"at was run, and runs batch commands when the load average is low enough."
-msgstr ""
-
-#: ../../services.pm_.c:20
-msgid ""
-"cron is a standard UNIX program that runs user-specified programs\n"
-"at periodic scheduled times. vixie cron adds a number of features to the "
-"basic\n"
-"UNIX cron, including better security and more powerful configuration options."
-msgstr ""
-
-#: ../../services.pm_.c:23
-msgid ""
-"GPM adds mouse support to text-based Linux applications such the\n"
-"Midnight Commander. It also allows mouse-based console cut-and-paste "
-"operations,\n"
-"and includes support for pop-up menus on the console."
-msgstr ""
-
-#: ../../services.pm_.c:26
-msgid ""
-"HardDrake runs a hardware probe, and optionally configures\n"
-"new/changed hardware."
-msgstr ""
-
-#: ../../services.pm_.c:28 ../../standalone/logdrake_.c:414
-msgid ""
-"Apache is a World Wide Web server. It is used to serve HTML files and CGI."
-msgstr ""
-
-#: ../../services.pm_.c:29
-msgid ""
-"The internet superserver daemon (commonly called inetd) starts a\n"
-"variety of other internet services as needed. It is responsible for "
-"starting\n"
-"many services, including telnet, ftp, rsh, and rlogin. Disabling inetd "
-"disables\n"
-"all of the services it is responsible for."
-msgstr ""
-
-#: ../../services.pm_.c:33
-msgid ""
-"Launch packet filtering for Linux kernel 2.2 series, to set\n"
-"up a firewall to protect your machine from network attacks."
-msgstr ""
-
-#: ../../services.pm_.c:35
-msgid ""
-"This package loads the selected keyboard map as set in\n"
-"/etc/sysconfig/keyboard. This can be selected using the kbdconfig utility.\n"
-"You should leave this enabled for most machines."
-msgstr ""
-
-#: ../../services.pm_.c:38
-msgid ""
-"Automatic regeneration of kernel header in /boot for\n"
-"/usr/include/linux/{autoconf,version}.h"
-msgstr ""
-
-#: ../../services.pm_.c:40
-msgid "Automatic detection and configuration of hardware at boot."
-msgstr ""
-
-#: ../../services.pm_.c:41
-msgid ""
-"Linuxconf will sometimes arrange to perform various tasks\n"
-"at boot-time to maintain the system configuration."
-msgstr ""
-
-#: ../../services.pm_.c:43
-msgid ""
-"lpd is the print daemon required for lpr to work properly. It is\n"
-"basically a server that arbitrates print jobs to printer(s)."
-msgstr ""
-
-#: ../../services.pm_.c:45
-msgid ""
-"Linux Virtual Server, used to build a high-performance and highly\n"
-"available server."
-msgstr ""
-
-#: ../../services.pm_.c:47 ../../standalone/logdrake_.c:415
-msgid ""
-"named (BIND) is a Domain Name Server (DNS) that is used to resolve host "
-"names to IP addresses."
-msgstr ""
-
-#: ../../services.pm_.c:48
-msgid ""
-"Mounts and unmounts all Network File System (NFS), SMB (Lan\n"
-"Manager/Windows), and NCP (NetWare) mount points."
-msgstr ""
-
-#: ../../services.pm_.c:50
-msgid ""
-"Activates/Deactivates all network interfaces configured to start\n"
-"at boot time."
-msgstr ""
-
-#: ../../services.pm_.c:52
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP networks.\n"
-"This service provides NFS server functionality, which is configured via the\n"
-"/etc/exports file."
-msgstr ""
-
-#: ../../services.pm_.c:55
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP\n"
-"networks. This service provides NFS file locking functionality."
-msgstr ""
-
-#: ../../services.pm_.c:57
-msgid ""
-"Automatically switch on numlock key locker under console\n"
-"and XFree at boot."
-msgstr ""
-
-#: ../../services.pm_.c:59
-msgid "Support the OKI 4w and compatible winprinters."
-msgstr ""
-
-#: ../../services.pm_.c:60
-msgid ""
-"PCMCIA support is usually to support things like ethernet and\n"
-"modems in laptops. It won't get started unless configured so it is safe to "
-"have\n"
-"it installed on machines that don't need it."
-msgstr ""
-
-#: ../../services.pm_.c:63
-msgid ""
-"The portmapper manages RPC connections, which are used by\n"
-"protocols such as NFS and NIS. The portmap server must be running on "
-"machines\n"
-"which act as servers for protocols which make use of the RPC mechanism."
-msgstr ""
-
-#: ../../services.pm_.c:66 ../../standalone/logdrake_.c:417
-msgid ""
-"Postfix is a Mail Transport Agent, which is the program that moves mail from "
-"one machine to another."
-msgstr ""
-
-#: ../../services.pm_.c:67
-msgid ""
-"Saves and restores system entropy pool for higher quality random\n"
-"number generation."
-msgstr ""
-
-#: ../../services.pm_.c:69
-msgid ""
-"Assign raw devices to block devices (such as hard drive\n"
-"partitions), for the use of applications such as Oracle"
-msgstr ""
-
-#: ../../services.pm_.c:71
-msgid ""
-"The routed daemon allows for automatic IP router table updated via\n"
-"the RIP protocol. While RIP is widely used on small networks, more complex\n"
-"routing protocols are needed for complex networks."
-msgstr ""
-
-#: ../../services.pm_.c:74
-msgid ""
-"The rstat protocol allows users on a network to retrieve\n"
-"performance metrics for any machine on that network."
-msgstr ""
-
-#: ../../services.pm_.c:76
-msgid ""
-"The rusers protocol allows users on a network to identify who is\n"
-"logged in on other responding machines."
-msgstr ""
-
-#: ../../services.pm_.c:78
-msgid ""
-"The rwho protocol lets remote users get a list of all of the users\n"
-"logged into a machine running the rwho daemon (similiar to finger)."
-msgstr ""
-
-#: ../../services.pm_.c:80
-msgid "Launch the sound system on your machine"
-msgstr ""
-
-#: ../../services.pm_.c:81
-msgid ""
-"Syslog is the facility by which many daemons use to log messages\n"
-"to various system log files. It is a good idea to always run syslog."
-msgstr ""
-
-#: ../../services.pm_.c:83
-msgid "Load the drivers for your usb devices."
-msgstr ""
-
-#: ../../services.pm_.c:84
-msgid "Starts the X Font Server (this is mandatory for XFree to run)."
-msgstr ""
-
-#: ../../services.pm_.c:110 ../../services.pm_.c:152
-msgid "Choose which services should be automatically started at boot time"
-msgstr ""
-
-#: ../../services.pm_.c:122
-msgid "Printing"
-msgstr ""
-
-#: ../../services.pm_.c:123
-msgid "Internet"
-msgstr ""
-
-#: ../../services.pm_.c:126
-msgid "File sharing"
-msgstr ""
-
-#: ../../services.pm_.c:128 ../../standalone/drakbackup_.c:1210
-msgid "System"
-msgstr ""
-
-#: ../../services.pm_.c:133
-msgid "Remote Administration"
-msgstr ""
-
-#: ../../services.pm_.c:141
-msgid "Database Server"
-msgstr ""
-
-#: ../../services.pm_.c:170
-#, c-format
-msgid "Services: %d activated for %d registered"
-msgstr ""
-
-#: ../../services.pm_.c:186
-msgid "Services"
-msgstr ""
-
-#: ../../services.pm_.c:198
-msgid "running"
-msgstr ""
-
-#: ../../services.pm_.c:198
-msgid "stopped"
-msgstr ""
-
-#: ../../services.pm_.c:212
-msgid "Services and deamons"
-msgstr ""
-
-#: ../../services.pm_.c:217
-msgid ""
-"No additional information\n"
-"about this service, sorry."
-msgstr ""
-
-#: ../../services.pm_.c:224
-msgid "On boot"
-msgstr ""
-
-#: ../../services.pm_.c:236
-msgid "Start"
-msgstr ""
-
-#: ../../services.pm_.c:236
-msgid "Stop"
-msgstr ""
-
-#: ../../share/advertising/00-thanks.pl_.c:9
-msgid "Thank you for choosing Mandrake Linux 8.2"
-msgstr ""
-
-#: ../../share/advertising/00-thanks.pl_.c:10
-msgid "Welcome to the Open Source world"
-msgstr ""
-
-#: ../../share/advertising/00-thanks.pl_.c:11
-msgid ""
-"The success of MandrakeSoft is based upon the principle of Free Software. "
-"Your new operating system is the result of collaborative work on the part of "
-"the worldwide Linux Community"
-msgstr ""
-
-#: ../../share/advertising/01-gnu.pl_.c:9
-msgid "Join the Free Software world"
-msgstr ""
-
-#: ../../share/advertising/01-gnu.pl_.c:10
-msgid ""
-"Get to know the Open Source community and become a member. Learn, teach, and "
-"help others by joining the many discussion forums that you will find in our "
-"\"Community\" webpages"
-msgstr ""
-
-#: ../../share/advertising/02-internet.pl_.c:9
-msgid "Internet and Messaging"
-msgstr ""
-
-#: ../../share/advertising/02-internet.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best software to access everything the "
-"Internet has to offer: Surf the web & view animations with Mozilla and "
-"Konqueror, exchange email & organize your personal information with "
-"Evolution and Kmail, and much more"
-msgstr ""
-
-#: ../../share/advertising/03-graphic.pl_.c:9
-msgid "Multimedia and Graphics"
-msgstr ""
-
-#: ../../share/advertising/03-graphic.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 lets you push your multimedia computer to its limits! Use "
-"the latest software to play music and audio files, edit and organize your "
-"images and photos, watch TV and videos, and much more"
-msgstr ""
-
-#: ../../share/advertising/04-develop.pl_.c:9
-msgid "Development"
-msgstr ""
-
-#: ../../share/advertising/04-develop.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 is the ultimate development platform. Discover the power "
-"of the GNU gcc compiler as well as the best Open Source development "
-"environments"
-msgstr ""
-
-#: ../../share/advertising/05-contcenter.pl_.c:9
-#: ../../standalone/drakbug_.c:49
-msgid "Mandrake Control Center"
-msgstr ""
-
-#: ../../share/advertising/05-contcenter.pl_.c:10
-msgid ""
-"The Mandrake Linux 8.2 Control Center is a one-stop location for fully "
-"customizing and configuring your Mandrake system"
-msgstr ""
-
-#: ../../share/advertising/06-user.pl_.c:9
-msgid "User interfaces"
-msgstr ""
-
-#: ../../share/advertising/06-user.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides 11 different graphical desktop environments and "
-"window managers to choose from including GNOME 1.4, KDE 2.2.2, Window Maker "
-"0.8, and the rest"
-msgstr ""
-
-#: ../../share/advertising/07-server.pl_.c:9
-msgid "Server Software"
-msgstr ""
-
-#: ../../share/advertising/07-server.pl_.c:10
-msgid ""
-"Transform your machine into a powerful server with just a few clicks of the "
-"mouse: Web server, email, firewall, router, file and print server, ..."
-msgstr ""
-
-#: ../../share/advertising/08-games.pl_.c:9
-msgid "Games"
-msgstr ""
-
-#: ../../share/advertising/08-games.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best Open Source games - arcade, action, "
-"cards, sports, strategy, ..."
-msgstr ""
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:9
-msgid "MandrakeCampus"
-msgstr ""
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:10
-msgid ""
-"Would you like to learn Linux simply, quickly, and for free? MandrakeSoft "
-"provides free Linux training, as well as a way to test your progress, at "
-"MandrakeCampus -- our online training center"
-msgstr ""
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:9
-msgid "MandrakeExpert"
-msgstr ""
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:10
-msgid ""
-"Quality support from the Linux Community, and from MandrakeSoft, is just "
-"around the corner. And if you're already a Linux veteran, become an \"Expert"
-"\" and share your knowledge at our support website"
-msgstr ""
-
-#: ../../share/advertising/11-consul.pl_.c:9
-msgid "MandrakeConsulting"
-msgstr ""
-
-#: ../../share/advertising/11-consul.pl_.c:10
-msgid ""
-"For all of your IT projects, our consultants are ready to analyze your "
-"requirements and offer a customized solution. Benefit from MandrakeSoft's "
-"vast experience as a Linux producer to provide a true IT alternative for "
-"your business organization"
-msgstr ""
-
-#: ../../share/advertising/12-MDKstore.pl_.c:9
-msgid "MandrakeStore"
-msgstr ""
-
-#: ../../share/advertising/12-MDKstore.pl_.c:10
-msgid ""
-"A full range of Linux solutions, as well as special offers on products and "
-"'goodies', are available online at our e-store"
-msgstr ""
-
-#: ../../share/advertising/13-Nvert.pl_.c:9
-msgid ""
-"For more information on MandrakeSoft's Professional Services and commercial "
-"offerings, please see the following web page:"
-msgstr ""
-
-#: ../../share/advertising/13-Nvert.pl_.c:11
-msgid "http://www.mandrakesoft.com/sales/contact"
-msgstr ""
-
-#: ../../standalone.pm_.c:25
-msgid "Installing packages..."
-msgstr ""
-
-#: ../../standalone/diskdrake_.c:85
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I'll try to go on blanking bad partitions"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:175
-msgid "Mandrake Terminal Server Configuration"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:190
-msgid "Enable Server"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:197
-msgid "Disable Server"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:205
-msgid "Start Server"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:212
-msgid "Stop Server"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:220
-msgid "Etherboot Floppy/ISO"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:222
-msgid "Net Boot Images"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:226
-msgid "Add/Del Users"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:228
-msgid "Add/Del Clients"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:233 ../../standalone/drakbackup_.c:3523
-#: ../../standalone/drakbackup_.c:3574 ../../standalone/drakbackup_.c:3620
-#: ../../standalone/drakbackup_.c:3666 ../../standalone/drakbackup_.c:3712
-#: ../../standalone/drakbackup_.c:3777 ../../standalone/drakbackup_.c:3813
-#: ../../standalone/drakbackup_.c:3859 ../../standalone/drakbackup_.c:3904
-#: ../../standalone/drakbackup_.c:3949 ../../standalone/drakfont_.c:701
-msgid "Help"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:420
-msgid "Boot Floppy"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:422
-msgid "Boot ISO"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:491
-msgid "Build Whole Kernel -->"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:493 ../../standalone/drakTermServ_.c:523
-msgid "This will take a few minutes."
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:505
-msgid "No kernel selected!"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:508
-msgid "Build Single NIC -->"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:519
-msgid "No nic selected!"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:522
-msgid "Build All Kernels -->"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:536
-msgid "<-- Delete"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:543
-msgid "Delete All NBIs"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:605
-msgid "Add User -->"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:613
-msgid "<-- Del User"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:687
-msgid "Add Client -->"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:719
-msgid "<-- Del Client"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:725
-msgid "dhcpd Config..."
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:872
-msgid "Write Config"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:930
-msgid "Please insert floppy disk:"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:934
-msgid "Couldn't access the floppy!"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:936
-msgid "Floppy can be removed now"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:939
-msgid "No floppy drive available!"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:948
-#, c-format
-msgid "Etherboot ISO image is %s"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:950
-msgid "Something went wrong!"
-msgstr ""
-
-#: ../../standalone/drakTermServ_.c:969
-msgid "Need to create /etc/dhcpd.conf first!"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:45
-msgid "Error!"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:46
-#, c-format
-msgid "I can't find needed image file `%s'."
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:48
-msgid "Auto Install Configurator"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:49
-msgid ""
-"You are about to configure an Auto Install floppy. This feature is somewhat "
-"dangerous and must be used circumspectly.\n"
-"\n"
-"With that feature, you will be able to replay the installation you've "
-"performed on this computer, being interactively prompted for some steps, in "
-"order to change their values.\n"
-"\n"
-"For maximum safety, the partitioning and formatting will never be performed "
-"automatically, whatever you chose during the install of this computer.\n"
-"\n"
-"Do you want to continue?"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:71
-msgid "Automatic Steps Configuration"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:72
-msgid ""
-"Please choose for each step whether it will replay like your install, or it "
-"will be manual"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:83
-msgid "Creating auto install floppy"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:145
-msgid ""
-"\n"
-"Welcome.\n"
-"\n"
-"The parameters of the auto-install are available in the sections on the left"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:243 ../../standalone/drakgw_.c:548
-#: ../../standalone/scannerdrake_.c:106
-msgid "Congratulations!"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:244
-msgid ""
-"The floppy has been successfully generated.\n"
-"You may now replay your installation."
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:282
-msgid "Auto Install"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:352
-msgid "Add an item"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:359
-msgid "Remove the last item"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:463
-msgid ""
-"\n"
-" DrakBackup Report \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:466
-msgid ""
-"\n"
-" DrakBackup Daemon Report\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:472
-msgid ""
-"\n"
-" DrakBackup Report Details\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:501
-msgid "total progess"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:584 ../../standalone/drakbackup_.c:659
-msgid "Backup system files..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:661 ../../standalone/drakbackup_.c:778
-msgid "Hard Disk Backup files..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:677
-msgid "Backup User files..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:679
-msgid "Hard Disk Backup Progress..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:776
-msgid "Backup Other files..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:786
-#, c-format
-msgid ""
-"file list send by FTP : %s\n"
-" "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:791
-msgid ""
-"\n"
-" FTP connexion problem: It was not possible to send your backup files by "
-"FTP.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:802
-msgid " Error during mail sending. \n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:849 ../../standalone/drakbackup_.c:867
-#: ../../standalone/drakbackup_.c:885 ../../standalone/drakfont_.c:1005
-msgid "File Selection"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:897
-msgid "Select the files or directories and click on 'Add'"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:942
-msgid ""
-"\n"
-"Please check all options that you need.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:945
-msgid ""
-"These options can backup and restore all files in your /etc directory.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:949
-msgid "Backup your System files. ( /etc directory )"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:953
-msgid "Use incremental backup (do not replace old backups)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:957
-msgid "Do not include critical files (passwd, group, fstab)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:961
-msgid ""
-"With this option you will be able to restore any version\n"
-" of your /etc directory."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:988
-msgid "Please check all users that you want to include in your backup."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1030
-msgid "Do not include the browser cache"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1033 ../../standalone/drakbackup_.c:1083
-msgid "Use Incremental Backups (do not replace old backups)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1075 ../../standalone/drakfont_.c:1059
-msgid "Remove Selected"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1148
-msgid "Windows (FAT32)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1218
-msgid "Users"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1252
-msgid "Use FTP connection to backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1260
-msgid "Please enter the host name or IP."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1278
-msgid ""
-"Please enter the directory to\n"
-" put the backup on this host."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1296
-msgid "Please enter your login"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1312
-msgid "Please enter your password"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1331
-msgid "Remember this password"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1449 ../../standalone/drakbackup_.c:3127
-msgid "FTP Connection"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1464 ../../standalone/drakbackup_.c:3142
-msgid "Secure Connection"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1509 ../../standalone/drakbackup_.c:4485
-msgid "Use CD/DVDROM to backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1517 ../../standalone/drakbackup_.c:4495
-msgid "Please choose your CD space"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1535 ../../standalone/drakbackup_.c:4535
-msgid "Please check if you are using CDRW media"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1554 ../../standalone/drakbackup_.c:4554
-msgid "Please check if you want to erase your CDRW before"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1575
-msgid ""
-"Please check if you want to include\n"
-" install boot on your CD."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1597
-msgid ""
-"Please enter your CD Writer device name\n"
-" ex: 0,1,0"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1670
-msgid "Use tape to backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1679
-msgid "Please enter the device name to use for backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1703 ../../standalone/drakbackup_.c:1796
-#: ../../standalone/drakbackup_.c:3047
-msgid ""
-"Please enter the maximum size\n"
-" allowed for Drakbackup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1764 ../../standalone/drakbackup_.c:3015
-msgid "Please enter the directory to save:"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1821 ../../standalone/drakbackup_.c:3072
-msgid "Use quota for backup files."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1921
-msgid "Network"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1935
-msgid "HardDrive / NFS"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1958 ../../standalone/drakbackup_.c:1964
-#: ../../standalone/drakbackup_.c:1969
-msgid "hourly"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1959 ../../standalone/drakbackup_.c:1965
-#: ../../standalone/drakbackup_.c:1969
-msgid "daily"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1960 ../../standalone/drakbackup_.c:1966
-#: ../../standalone/drakbackup_.c:1970
-msgid "weekly"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1961 ../../standalone/drakbackup_.c:1967
-#: ../../standalone/drakbackup_.c:1970
-msgid "monthly"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1984
-msgid "Use daemon"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1997
-msgid ""
-"Please choose the time \n"
-"interval between each backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2014
-msgid ""
-"Please choose the\n"
-"media for backup."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2028
-msgid "Use Hard Drive with daemon"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2036
-msgid "Use FTP with daemon"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2047
-msgid "Please be sure that the cron daemon is included in your services."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2104
-msgid "Send mail report after each backup to :"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2188
-msgid "What"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2196
-msgid "Where"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2204
-msgid "When"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2212
-msgid "More Options"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2236 ../../standalone/drakbackup_.c:4370
-msgid "Drakbackup Configuration"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2261
-msgid "Please choose where you want to backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2267
-msgid "on Hard Drive"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2289
-msgid "across Network"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2384
-msgid "Please choose what you want to backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2387
-msgid "Backup system"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2390
-msgid "Backup Users"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2398
-msgid "Select user manually"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2504
-msgid ""
-"\n"
-"Backup Sources: \n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2505
-msgid ""
-"\n"
-"- System Files:\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2507
-msgid ""
-"\n"
-"- User Files:\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2509
-msgid ""
-"\n"
-"- Other Files:\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2513
-#, c-format
-msgid ""
-"\n"
-"- Save on Hard drive on path : %s\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2516
-#, c-format
-msgid ""
-"\n"
-"- Save on FTP on host : %s\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2518
-#, c-format
-msgid ""
-"\t\t user name: %s\n"
-"\t\t on path: %s \n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2520
-msgid ""
-"\n"
-"- Options:\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2521
-msgid "\tDo not include System Files\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2522
-msgid "\tBackups use tar and bzip2\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2523
-msgid "\tBackups use tar and gzip\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2524
-#, c-format
-msgid ""
-"\n"
-"- Daemon (%s) include :\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2525
-msgid "\t-Hard drive.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2526
-msgid "\t-CDROM.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2527
-msgid "\t-Network by FTP.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2528
-msgid "\t-Network by SSH.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2532
-msgid "No configuration, please click Wizard or Advanced.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2538
-msgid ""
-"List of data to restore:\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2650
-msgid ""
-"List of data corrupted:\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2652
-msgid "Please uncheck or remove it on next time."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2667
-msgid "Backup files are corrupted"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2695
-msgid " All your selectionned data have been "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2697
-#, c-format
-msgid " Successfuly Restored on %s "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2829
-msgid " Restore Configuration "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2853
-msgid "OK to restore the other files."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2879
-msgid "User list to restore (only the most recent date per user is important)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2958
-msgid "Backup the system files before:"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2962
-msgid "please choose the date to restore"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3007
-msgid "Use Hard Disk to backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3187
-msgid "Restore from Hard Disk."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3195
-msgid "Please enter the directory where backups are stored"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3302
-msgid "Select another media to restore from"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3308
-msgid "Other Media"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3320
-msgid "Restore system"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3326
-msgid "Restore Users"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3332
-msgid "Restore Other"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3340
-msgid "select path to restore (instead of / )"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3354
-msgid "Do new backup before restore (only for incremental backups.)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3362
-msgid "Remove user directories before restore."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3453
-msgid "Restore all backups"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3466
-msgid "Custom Restore"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3533 ../../standalone/drakbackup_.c:3584
-#: ../../standalone/drakbackup_.c:3630 ../../standalone/drakbackup_.c:3676
-#: ../../standalone/drakbackup_.c:3722 ../../standalone/drakbackup_.c:3823
-#: ../../standalone/drakbackup_.c:3869 ../../standalone/drakbackup_.c:3914
-msgid "Previous"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3541 ../../standalone/drakbackup_.c:3684
-#: ../../standalone/logdrake_.c:224
-msgid "Save"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3638
-msgid "Build Backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3730 ../../standalone/drakbackup_.c:4777
-msgid "Restore"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3831 ../../standalone/drakbackup_.c:3877
-#: ../../standalone/drakbackup_.c:3924
-msgid "Next"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3977
-msgid ""
-"Please Build backup before to restore it...\n"
-" or verify that your path to save is correct."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4009
-msgid ""
-"Error durind sendmail\n"
-" your report mail was not sent\n"
-" Please configure sendmail"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4034
-msgid "Package List to Install"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4071
-msgid ""
-"Error durind sending file via FTP.\n"
-" Please correct your FTP configuration."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4102
-msgid "Please select data to restore..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4129
-msgid "Please select media for backup..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4157
-msgid "Please select data to backup..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4186
-msgid ""
-"No configuration file found \n"
-"please click Wizard or Advanced."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4214
-msgid "Under Devel ... please wait."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4300
-msgid "Backup system files"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4302
-msgid "Backup user files"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4304
-msgid "Backup other files"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4306 ../../standalone/drakbackup_.c:4342
-msgid "Total Progress"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4329
-msgid "files sending by FTP"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4337
-msgid "Sending files..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4416
-msgid "Data list to include on CDROM."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4513
-msgid "Please enter the cd writer speed"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4575
-msgid "Please enter your CD Writer device name (ex: 0,1,0)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4599
-msgid "Please check if you want to include install boot on your CD."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4706
-msgid "Backup Now from configuration file"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4720
-msgid "View Backup Configuration."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4750
-msgid "Wizard Configuration"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4759
-msgid "Advanced Configuration"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4768
-msgid "Backup Now"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4802
-msgid "Drakbackup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4866
-msgid ""
-"options description:\n"
-"\n"
-" In this step Drakbackup allow you to change:\n"
-"\n"
-" - The compression mode:\n"
-" \n"
-" If you check bzip2 compression, you will compress\n"
-" your data better than gzip (about 2-10 %).\n"
-" This option is not checked by default because\n"
-" this compression mode needs more time ( about 1000% more).\n"
-" \n"
-" - The update mode:\n"
-"\n"
-" This option will update your backup, but this\n"
-" option is not really useful because you need to\n"
-" decompress your backup before you can update it.\n"
-" \n"
-" - the .backupignore mode:\n"
-"\n"
-" Like with cvs, Drakbackup will ignore all references\n"
-" included in .backupignore files in each directories.\n"
-" ex: \n"
-" /*> cat .backupignore*/\n"
-" *.o\n"
-" *~\n"
-" ...\n"
-" \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4896
-msgid ""
-"\n"
-" Some errors during sendmail are caused by \n"
-" a bad configuration of postfix. To solve it you have to\n"
-" set myhostname or mydomain in /etc/postfix/main.cf\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4904
-msgid ""
-"options description:\n"
-"\n"
-" - Backup system files:\n"
-" \n"
-"\tThis option allows you to backup your /etc directory,\n"
-"\twhich contains all configuration files. Please be\n"
-"\tcareful during the restore step to not overwrite:\n"
-"\t\t/etc/passwd \n"
-"\t\t/etc/group \n"
-"\t\t/etc/fstab\n"
-"\n"
-" - Backup User files: \n"
-"\n"
-"\tThis option allows you select all users that you want \n"
-"\tto backup.\n"
-"\tTo preserve disk space, it is recommended that you \n"
-"\tdo not include web browser's cache.\n"
-"\n"
-" - Backup Other files: \n"
-"\n"
-"\tThis option allows you to add more data to save.\n"
-"\tWith the other backup it's not possible at the \n"
-"\tmoment to select select incremental backup.\t\t\n"
-" \n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerful \n"
-"\toption for backup. This option allows you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed afterward.\n"
-"\tThen you will be able, during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this option all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4944
-msgid ""
-"restore description:\n"
-" \n"
-"Only the most recent date will be used ,because with incremental \n"
-"backups it is necesarry to restore one by one each older backups.\n"
-"\n"
-"So if you don't like to restore an user please unselect all his\n"
-"check box.\n"
-"\n"
-"Otherwise, you are able to select only one of this\n"
-"\n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerfull \n"
-"\toption to use backup, this option allow you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed after.\n"
-"\tSo you will be able during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this options all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4971 ../../standalone/drakbackup_.c:5053
-msgid ""
-" Copyright (C) 2001 MandrakeSoft by DUPONT Sebastien <dupont_s\\@epita.fr>"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4975 ../../standalone/drakbackup_.c:5057
-msgid ""
-" This program is free software; you can redistribute it and/or modify\n"
-" it under the terms of the GNU General Public License as published by\n"
-" the Free Software Foundation; either version 2, or (at your option)\n"
-" any later version.\n"
-"\n"
-" This program is distributed in the hope that it will be useful,\n"
-" but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-" GNU General Public License for more details.\n"
-"\n"
-" You should have received a copy of the GNU General Public License\n"
-" along with this program; if not, write to the Free Software\n"
-" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:4991
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select: \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, DrakBackup will remove \n"
-" your original directory and verify that all \n"
-" backup files are not corrupted. It is recommended \n"
-" you do a last backup before restoring.\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:5030
-msgid ""
-"options description:\n"
-"\n"
-"Please be careful when you are using ftp backup, because only \n"
-"backups that are already built are sent to the server.\n"
-"So at the moment, you need to build the backup on your hard \n"
-"drive before sending it to the server.\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:5039
-msgid ""
-"\n"
-"Restore Backup Problems:\n"
-"\n"
-"During the restore step, Drakbackup will verify all your\n"
-"backup files before restoring them.\n"
-"Before the restore, Drakbackup will remove \n"
-"your original directory, and you will loose all your \n"
-"data. It is important to be careful and not modify the \n"
-"backup data files by hand.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:5073
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, Drakbackup will remove\n"
-" your original directory and verify that all\n"
-" backup files are not corrupted. It is recommended\n"
-" you do a last backup before restoring.\n"
-" \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakboot_.c:58
-#, c-format
-msgid "Installation of %s failed. The following error occured:"
-msgstr ""
-
-#: ../../standalone/drakbug_.c:40
-msgid "Mandrake Bug Report Tool"
-msgstr ""
-
-#: ../../standalone/drakbug_.c:50
-msgid "First Time Wizard"
-msgstr ""
-
-#: ../../standalone/drakbug_.c:51
-msgid "Synchronization tool"
-msgstr ""
-
-#: ../../standalone/drakbug_.c:52 ../../standalone/drakbug_.c:65
-msgid "Standalone Tools"
-msgstr ""
-
-#: ../../standalone/drakbug_.c:53
-msgid "HardDrake"
-msgstr ""
-
-#: ../../standalone/drakbug_.c:54
-msgid "Mandrake Online"
-msgstr ""
-
-#: ../../standalone/drakbug_.c:55
-msgid "Menudrake"
-msgstr ""
-
-#: ../../standalone/drakbug_.c:56
-msgid "Msec"
-msgstr ""
-
-#: ../../standalone/drakbug_.c:57
-msgid "Remote Control"
-msgstr ""
-
-#: ../../standalone/drakbug_.c:58
-msgid "Software Manager"
-msgstr ""
-
-#: ../../standalone/drakbug_.c:59
-msgid "Urpmi"
-msgstr ""
-
-#: ../../standalone/drakbug_.c:60
-msgid "Windows Migration tool"
-msgstr ""
-
-#: ../../standalone/drakbug_.c:61
-msgid "Userdrake"
-msgstr ""
-
-#: ../../standalone/drakbug_.c:62
-msgid "Configuration Wizards"
-msgstr ""
-
-#: ../../standalone/drakbug_.c:71
-msgid "Application:"
-msgstr ""
-
-#: ../../standalone/drakbug_.c:75
-msgid "Package: "
-msgstr ""
-
-#: ../../standalone/drakbug_.c:79
-msgid "Kernel:"
-msgstr ""
-
-#: ../../standalone/drakbug_.c:83
-msgid "Release: "
-msgstr ""
-
-#: ../../standalone/drakbug_.c:87
-msgid ""
-"\n"
-"\n"
-"To submit a bug report, click on the button report.\n"
-"This will open a web browser window on https://www.bugzilla.com\n"
-" where you'll find a form to fill in.The information displayed above will "
-"be \n"
-"transferred to that server\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbug_.c:100
-msgid "Not installed"
-msgstr ""
-
-#: ../../standalone/drakbug_.c:109
-msgid "Report"
-msgstr ""
-
-#: ../../standalone/drakbug_.c:122
-msgid "connecting to Bugzilla wizard ..."
-msgstr ""
-
-#: ../../standalone/drakbug_.c:124
-msgid "No browser available please! Please install one"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:80
-#, c-format
-msgid "Network configuration (%d adapters)"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:87 ../../standalone/drakconnect_.c:595
-msgid "Profile: "
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:95
-msgid "Del profile..."
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:101
-msgid "Profile to delete:"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:129
-msgid "New profile..."
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:135
-msgid ""
-"Name of the profile to create (the new profile is created as a copy of the "
-"current one) :"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:161
-msgid "Hostname: "
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:168
-msgid "Internet access"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:181
-msgid "Type:"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:184 ../../standalone/drakconnect_.c:376
-msgid "Gateway:"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:184 ../../standalone/drakconnect_.c:376
-msgid "Interface:"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:195
-msgid "Status:"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:202
-msgid "Wait please"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:220
-msgid "Configure Internet Access..."
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:227 ../../standalone/drakconnect_.c:449
-msgid "LAN configuration"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:232
-msgid "Driver"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:232
-msgid "Interface"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:232
-msgid "Protocol"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:232
-msgid "State"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:244
-msgid "Configure Local Area Network..."
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:256
-msgid "Click here to launch the wizard ->"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:257
-msgid "Wizard..."
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:283
-msgid "Apply"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:302
-msgid "Please Wait... Applying the configuration"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:384 ../../standalone/drakconnect_.c:407
-msgid "Connected"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:384 ../../standalone/drakconnect_.c:407
-msgid "Not connected"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:385 ../../standalone/drakconnect_.c:408
-msgid "Connect..."
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:385 ../../standalone/drakconnect_.c:408
-msgid "Disconnect..."
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:404
-msgid ""
-"Warning, another Internet connection has been detected, maybe using your "
-"network"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:431
-msgid ""
-"You don't have any configured interface.\n"
-"Configure them first by clicking on 'Configure'"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:453
-msgid "LAN Configuration"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:464
-#, c-format
-msgid "Adapter %s: %s"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:470
-msgid "Boot Protocol"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:471
-msgid "Started on boot"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:472
-msgid "DHCP client"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:497 ../../standalone/drakconnect_.c:500
-msgid "activate now"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:497 ../../standalone/drakconnect_.c:500
-msgid "deactivate now"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:503
-msgid ""
-"This interface has not been configured yet.\n"
-"Launch the configuration wizard in the main window"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:560
-msgid ""
-"You don't have any internet connection.\n"
-"Create one first by clicking on 'Configure'"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:584
-msgid "Internet connection configuration"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:588
-msgid "Internet Connection Configuration"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:597
-msgid "Connection type: "
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:603
-msgid "Parameters"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:621
-msgid "Gateway"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:630
-msgid "Ethernet Card"
-msgstr ""
-
-#: ../../standalone/drakconnect_.c:631
-msgid "DHCP Client"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:64
-msgid "usage: drakfloppy\n"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:68
-msgid "-misc-Fixed-Medium-r-*-*-*-140-*-*-*-*-*-*,*"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:69
-msgid "Module name"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:69
-msgid "Size"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:74 ../../standalone/drakfloppy_.c:373
-msgid "drakfloppy"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:91
-msgid "boot disk creation"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:99 ../../standalone/drakfloppy_.c:112
-msgid "default"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:115
-#, c-format
-msgid "DrakFloppy Error: %s"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:126
-msgid "kernel version"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:132
-msgid "General"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:137
-msgid "Expert Area"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:140
-msgid "mkinitrd optional arguments"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:141
-msgid "Add a module"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:161
-msgid "force"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:162
-msgid "if needed"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:163
-msgid "omit scsi modules"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:164
-msgid "omit raid modules"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:200
-msgid "Remove a module"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:222
-msgid "Output"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:234
-msgid "Build the disk"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:422
-#, c-format
-msgid "Be sure a media is present for the device %s"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:427
-#, c-format
-msgid ""
-"There is no medium or it is write-protected for device %s.\n"
-"Please insert one."
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:429
-#, c-format
-msgid "Unable to fork: %s"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:433
-#, c-format
-msgid ""
-"Unable to close properly mkbootdisk: \n"
-" %s \n"
-" %s"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:232
-msgid "Search installed fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:234
-msgid "Unselect fonts installed"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:258
-msgid "parse all fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:261
-msgid "no fonts found"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:270 ../../standalone/drakfont_.c:324
-#: ../../standalone/drakfont_.c:380 ../../standalone/drakfont_.c:469
-#: ../../standalone/drakfont_.c:480 ../../standalone/drakfont_.c:507
-#: ../../standalone/drakfont_.c:521 ../../standalone/drakfont_.c:538
-msgid "done"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:276
-msgid "could not find any font in your mounted partitions"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:322
-msgid "Reselect correct fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:326
-msgid "could not find any font.\n"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:350
-msgid "Search fonts in installed list"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:378
-msgid "Fonts copy"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:382
-msgid "True Type fonts installation"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:390
-msgid "please wait during ttmkfdir..."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:395
-msgid "True Type install done"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:404 ../../standalone/drakfont_.c:430
-msgid "Fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:410 ../../standalone/drakfont_.c:434
-#: ../../standalone/drakfont_.c:465
-msgid "type1inst building"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:420 ../../standalone/drakfont_.c:443
-msgid "Ghostscript referencing"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:453
-msgid "ttf fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:460
-msgid "pfm fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:471
-msgid "Suppress temporary Files"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:474
-msgid "Restart XFS"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:519 ../../standalone/drakfont_.c:533
-msgid "Suppress Fonts Files"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:535
-msgid "xfs restart"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:543 ../../standalone/drakfont_.c:952
-msgid ""
-"Before installing any fonts, be sure that you have the right to use and "
-"install them on your system.\n"
-"\n"
-"-You can install the fonts using the normal way. In rare cases, bogus fonts "
-"may hang up your X Server."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:631
-msgid "Fonts Importation"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:661
-msgid "Get Windows Fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:669
-msgid "Uninstall Fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:680
-msgid "Advanced Options"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:688
-msgid "Font List"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:910
-msgid "Choose the applications that will support the fonts :"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:919
-msgid "Ghostscript"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:926
-msgid "StarOffice"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:933
-msgid "Abiword"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:940
-msgid "Generic Printers"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:1017
-msgid "Select the font file or directory and click on 'Add'"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:1064
-msgid "Install List"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:1107
-msgid "click here if you are sure."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:1114
-msgid "here if no."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:1175
-msgid "Unselected All"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:1179
-msgid "Selected All"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:1183
-msgid "Remove List"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:1205 ../../standalone/drakfont_.c:1238
-msgid "Initials tests"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:1208
-msgid "Copy fonts on your system"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:1212
-msgid "Install & convert Fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:1216
-msgid "Post Install"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:1241
-msgid "Remove fonts on your system"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:1245
-msgid "Post Uninstall"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:43 ../../standalone/drakgw_.c:196
-msgid "Internet Connection Sharing"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:122
-msgid "Sorry, we support only 2.4 kernels."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:134
-msgid "Internet Connection Sharing currently enabled"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:135
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently enabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:139
-msgid "disable"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:139 ../../standalone/drakgw_.c:164
-msgid "dismiss"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:139 ../../standalone/drakgw_.c:164
-msgid "reconfigure"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:142
-msgid "Disabling servers..."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:150
-msgid "Internet connection sharing is now disabled."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:159
-msgid "Internet Connection Sharing currently disabled"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:160
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently disabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:164
-msgid "enable"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:171
-msgid "Enabling servers..."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:176
-msgid "Internet connection sharing is now enabled."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:197
-msgid ""
-"You are about to configure your computer to share its Internet connection.\n"
-"With that feature, other computers on your local network will be able to use "
-"this computer's Internet connection.\n"
-"\n"
-"Note: you need a dedicated Network Adapter to set up a Local Area Network "
-"(LAN)."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:223
-#, c-format
-msgid "Interface %s (using module %s)"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:224
-#, c-format
-msgid "Interface %s"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:232
-msgid "No network adapter on your system!"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:233
-msgid ""
-"No ethernet network adapter has been detected on your system. Please run the "
-"hardware configuration tool."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:239
-msgid "Network interface"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:240
-#, c-format
-msgid ""
-"There is only one configured network adapter on your system:\n"
-"\n"
-"%s\n"
-"\n"
-"I am about to setup your Local Area Network with that adapter."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:249
-msgid ""
-"Please choose what network adapter will be connected to your Local Area "
-"Network."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:267
-msgid "Network interface already configured"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:268
-#, c-format
-msgid ""
-"Warning, the network adapter (%s) is already configured.\n"
-"\n"
-"Do you want an automatic re-configuration?\n"
-"\n"
-"You can do it manually but you need to know what you're doing."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:273
-msgid "Automatic reconfiguration"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:274
-msgid "Show current interface configuration"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:276
-#, c-format
-msgid ""
-"Current configuration of `%s':\n"
-"\n"
-"Network: %s\n"
-"IP address: %s\n"
-"IP attribution: %s\n"
-"Driver: %s"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:288
-msgid ""
-"I can keep your current configuration and assume you already set up a DHCP "
-"server; in that case please verify I correctly read the C-Class Network that "
-"you use for your local network; I will not reconfigure it and I will not "
-"touch your DHCP server configuration.\n"
-"\n"
-"Else, I can reconfigure your interface and (re)configure a DHCP server for "
-"you.\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:293
-msgid "C-Class Local Network"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:294
-msgid "(This) DHCP Server IP"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:295
-msgid "Re-configure interface and DHCP server"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:302
-msgid "The Local Network did not finish with `.0', bailing out."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:313
-#, c-format
-msgid "Potential LAN address conflict found in current config of %s!\n"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:321
-msgid "Firewalling configuration detected!"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:322
-msgid ""
-"Warning! An existing firewalling configuration has been detected. You may "
-"need some manual fix after installation."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:329
-msgid "Configuring..."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:330
-msgid "Configuring scripts, installing software, starting servers..."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:366
-#, c-format
-msgid "Problems installing package %s"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:549
-msgid ""
-"Everything has been configured.\n"
-"You may now share Internet connection with other computers on your Local "
-"Area Network, using automatic network configuration (DHCP)."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:566
-msgid "The setup has already been done, but it's currently disabled."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:567
-msgid "The setup has already been done, and it's currently enabled."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:568
-msgid "No Internet Connection Sharing has ever been configured."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:573
-msgid "Internet connection sharing configuration"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:580
-#, c-format
-msgid ""
-"Welcome to the Internet Connection Sharing utility!\n"
-"\n"
-"%s\n"
-"\n"
-"Click on Configure to launch the setup wizard."
-msgstr ""
-
-#: ../../standalone/drakxconf_.c:47
-msgid "Control Center"
-msgstr ""
-
-#: ../../standalone/drakxconf_.c:48
-msgid "Choose the tool you want to use"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:55
-msgid ""
-"XawTV isn't installed!\n"
-"\n"
-"\n"
-"If you do have a TV card but DrakX has neither detected it (no bttv\n"
-"module in \"/etc/modules\") nor installed xawtv, please send the\n"
-"results of \"lspcidrake -v -f\" to \"install\\@mandrakesoft.com\"\n"
-"with subject \"undetected TV card\".\n"
-"\n"
-"\n"
-"You can install it by typing \"urpmi xawtv\" as root, in a console."
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:72
-msgid "Canada (cable)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:72
-msgid "USA (broadcast)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:72
-msgid "USA (cable)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:72
-msgid "USA (cable-hrc)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:73
-msgid "China (broadcast)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:73
-msgid "Japan (broadcast)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:73
-msgid "Japan (cable)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:74
-msgid "East Europe"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:74
-msgid "France [SECAM]"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:74
-msgid "Ireland"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:74
-msgid "West Europe"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:75
-msgid "Australia"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:75
-msgid "Newzealand"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:76
-msgid "South Africa"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:77
-msgid "Argentina"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:112
-msgid ""
-"Please,\n"
-"type in your tv norm and country"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:114
-msgid "TV norm :"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:115
-msgid "Area :"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:119
-msgid "Scanning for TV channels in progress ..."
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:127
-msgid "Scanning for TV channels"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:130
-msgid "There was an error while scanning for TV channels"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:131
-msgid "XawTV isn't installed!"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:134
-msgid "Have a nice day!"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:135
-msgid "Now, you can run xawtv (under X Window!) !\n"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:151
-msgid "No TV Card detected!"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:152
-msgid ""
-"No TV Card has been detected on your machine. Please verify that a Linux-"
-"supported Video/TV Card is correctly plugged in.\n"
-"\n"
-"\n"
-"You can visit our hardware database at:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/hardware.php3"
-msgstr ""
-
-#: ../../standalone/keyboarddrake_.c:16
-msgid "usage: keyboarddrake [--expert] [keyboard]\n"
-msgstr ""
-
-#: ../../standalone/keyboarddrake_.c:29
-msgid "Please, choose your keyboard layout."
-msgstr ""
-
-#: ../../standalone/keyboarddrake_.c:36
-msgid "Do you want the BackSpace to return Delete in console?"
-msgstr ""
-
-#: ../../standalone/livedrake_.c:24
-msgid "Change Cd-Rom"
-msgstr ""
-
-#: ../../standalone/livedrake_.c:25
-msgid ""
-"Please insert the Installation Cd-Rom in your drive and press Ok when done.\n"
-"If you don't have it, press Cancel to avoid live upgrade."
-msgstr ""
-
-#: ../../standalone/livedrake_.c:35
-msgid "Unable to start live upgrade !!!\n"
-msgstr ""
-
-#: ../../standalone/localedrake_.c:32
-msgid "The change is done, but to be effective you must logout"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:85 ../../standalone/logdrake_.c:516
-msgid "logdrake"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:95
-msgid "Show only for the selected day"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:102
-msgid "/File/_New"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:102
-msgid "<control>N"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:103
-msgid "/File/_Open"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:103
-msgid "<control>O"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:104
-msgid "/File/_Save"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:104
-msgid "<control>S"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:105
-msgid "/File/Save _As"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:106
-msgid "/File/-"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:108
-msgid "/_Options"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:109
-msgid "/Options/Test"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:111
-msgid "/Help/_About..."
-msgstr ""
-
-#: ../../standalone/logdrake_.c:118
-msgid "-misc-fixed-medium-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:119
-msgid "-misc-fixed-bold-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:173
-msgid "User"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:174
-msgid "Messages"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:175
-msgid "Syslog"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:176
-msgid "Mandrake Tools Explanations"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:179
-msgid "search"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:185
-msgid "A tool to monitor your logs"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:186
-msgid "Settings"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:191
-msgid "matching"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:192
-msgid "but not matching"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:196
-msgid "Choose file"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:201
-msgid "Calendar"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:211
-msgid "Content of the file"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:215 ../../standalone/logdrake_.c:392
-msgid "Mail/SMS alert"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:268
-#, c-format
-msgid "please wait, parsing file: %s"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:407
-msgid "Mail/SMS alert configuration"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:408
-msgid ""
-"Welcome to the mail/SMS configuration utility.\n"
-"\n"
-"Here, you'll be able to set up the alert system.\n"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:416
-msgid "proftpd"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:419
-msgid "sshd"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:420
-msgid "webmin"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:421
-msgid "xinetd"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:424
-msgid "service setting"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:425
-msgid ""
-"You will receive an alert if one of the selected service is no more running"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:435
-msgid "load setting"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:436
-msgid "You will receive an alert if the load is higher than this value"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:449
-msgid "alert configuration"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:450
-msgid "Configure the way the system will alert you"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:493
-msgid "Save as.."
-msgstr ""
-
-#: ../../standalone/mousedrake_.c:69
-msgid "Please, choose the type of your mouse."
-msgstr ""
-
-#: ../../standalone/mousedrake_.c:79
-msgid "no serial_usb found\n"
-msgstr ""
-
-#: ../../standalone/mousedrake_.c:83
-msgid "Emulate third button?"
-msgstr ""
-
-#: ../../standalone/printerdrake_.c:49
-msgid "Reading printer data ..."
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:42
-msgid "Detecting devices ..."
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:53
-#, c-format
-msgid "%s found on %s, configure it ?"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:60
-msgid "Select a scanner"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:80
-#, c-format
-msgid "This %s scanner is unsupported"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:94
-#, c-format
-msgid ""
-"Scannerdrake was not able to detect your %s scanner.\n"
-"Please select the device where your scanner is plugged"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:96
-msgid "choose device"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:102
-#, c-format
-msgid ""
-"This %s scanner must be configured by printerdrake.\n"
-"You can launch printerdrake from the Mandrake Control Center in Hardware "
-"section."
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:107
-#, c-format
-msgid ""
-"Your %s scanner has been configured.\n"
-"You may now scan documents using ``XSane'' from Multimedia/Graphics in the "
-"applications menu."
-msgstr ""
-
-#: ../../standalone/service_harddrake_.c:63
-#, c-format
-msgid "Some devices in the \"%s\" hardware class were removed:\n"
-msgstr ""
-
-#: ../../standalone/service_harddrake_.c:67
-#, c-format
-msgid ""
-"\n"
-"Some devices in the %s class were added:\n"
-msgstr ""
-
-#: ../../standalone/tinyfirewall_.c:31
-msgid "Firewalling Configuration"
-msgstr ""
-
-#: ../../standalone/tinyfirewall_.c:44
-msgid "Firewalling configuration"
-msgstr ""
-
-#: ../../standalone/tinyfirewall_.c:79
-msgid ""
-"Firewalling\n"
-"\n"
-"You already have set up a firewall.\n"
-"Click on Configure to change or remove the firewall"
-msgstr ""
-
-#: ../../standalone/tinyfirewall_.c:83
-msgid ""
-"Firewalling\n"
-"\n"
-"Click on Configure to set up a standard firewall"
-msgstr ""
-
-#: ../../steps.pm_.c:14
-msgid "Choose your language"
-msgstr ""
-
-#: ../../steps.pm_.c:15
-msgid "Select installation class"
-msgstr ""
-
-#: ../../steps.pm_.c:16
-msgid "Hard drive detection"
-msgstr ""
-
-#: ../../steps.pm_.c:17
-msgid "Configure mouse"
-msgstr ""
-
-#: ../../steps.pm_.c:18
-msgid "Choose your keyboard"
-msgstr ""
-
-#: ../../steps.pm_.c:19
-msgid "Security"
-msgstr ""
-
-#: ../../steps.pm_.c:20
-msgid "Setup filesystems"
-msgstr ""
-
-#: ../../steps.pm_.c:21
-msgid "Format partitions"
-msgstr ""
-
-#: ../../steps.pm_.c:22
-msgid "Choose packages to install"
-msgstr ""
-
-#: ../../steps.pm_.c:23
-msgid "Install system"
-msgstr ""
-
-#: ../../steps.pm_.c:25
-msgid "Add a user"
-msgstr ""
-
-#: ../../steps.pm_.c:26
-msgid "Configure networking"
-msgstr ""
-
-#: ../../steps.pm_.c:28
-msgid "Configure services"
-msgstr ""
-
-#: ../../steps.pm_.c:29
-msgid "Install bootloader"
-msgstr ""
-
-#: ../../steps.pm_.c:31
-msgid "Create a bootdisk"
-msgstr ""
-
-#: ../../steps.pm_.c:33
-msgid "Configure X"
-msgstr ""
-
-#: ../../steps.pm_.c:34
-msgid "Install system updates"
-msgstr ""
-
-#: ../../steps.pm_.c:35
-msgid "Exit install"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:9
-msgid ""
-"tinyfirewall configurator\n"
-"\n"
-"This configures a personal firewall for this Mandrake Linux machine.\n"
-"For a powerful dedicated firewall solution, please look to the\n"
-"specialized MandrakeSecurity Firewall distribution."
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:14
-msgid ""
-"We'll now ask you questions about which services you'd like to allow\n"
-"the Internet to connect to. Please think carefully about these\n"
-"questions, as your computer's security is important.\n"
-"\n"
-"Please, if you're not currently using one of these services, firewall\n"
-"it off. You can change this configuration anytime you like by\n"
-"re-running this application!"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:21
-msgid ""
-"Are you running a web server on this machine that you need the whole\n"
-"Internet to see? If you are running a webserver that only needs to be\n"
-"accessed by this machine, you can safely answer NO here.\n"
-"\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:26
-msgid ""
-"Are you running a name server on this machine? If you didn't set one\n"
-"up to give away IP and zone information to the whole Internet, please\n"
-"answer no.\n"
-"\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:31
-msgid ""
-"Do you want to allow incoming Secure Shell (ssh) connections? This\n"
-"is a telnet-replacement that you might use to login. If you're using\n"
-"telnet now, you should definitely switch to ssh. telnet is not\n"
-"encrypted -- so some attackers can steal your password if you use\n"
-"it. ssh is encrypted and doesn't allow for this eavesdropping."
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:36
-msgid ""
-"Do you want to allow incoming telnet connections?\n"
-"This is horribly unsafe, as we explained in the previous screen. We\n"
-"strongly recommend answering No here and using ssh in place of\n"
-"telnet.\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:41
-msgid ""
-"Are you running an FTP server here that you need accessible to the\n"
-"Internet? If you are, we strongly recommend that you only use it for\n"
-"Anonymous transfers. Any passwords sent by FTP can be stolen by some\n"
-"attackers, since FTP also uses no encryption for transferring passwords.\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:46
-msgid ""
-"Are you running a mail server here? If you're sending you \n"
-"messages through pine, mutt or any other text-based mail client,\n"
-"you probably are. Otherwise, you should firewall this off.\n"
-"\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:51
-msgid ""
-"Are you running a POP or IMAP server here? This would\n"
-"be used to host non-web-based mail accounts for people via \n"
-"this machine.\n"
-"\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:56
-msgid ""
-"You appear to be running a 2.2 kernel. If your network IP\n"
-"is automatically set by a computer in your home or office \n"
-"(dynamically assigned), we need to allow for this. Is\n"
-"this the case?\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:61
-msgid ""
-"Is your computer getting time syncronized to another computer?\n"
-"Mostly, this is used by medium-large Unix/Linux organizations\n"
-"to synchronize time for logging and such. If you're not part\n"
-"of a larger office and haven't heard of this, you probably \n"
-"aren't."
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:66
-msgid ""
-"Configuration complete. May we write these changes to disk?\n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:82
-#, c-format
-msgid "Can't open %s: %s\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:84
-#, c-format
-msgid "Can't open %s for writing: %s\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "No I don't need DHCP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "Yes I need DHCP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "No I don't need NTP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "Yes I need NTP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-msgid "Don't Save"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-#: ../../tinyfirewall.pm_.c:206
-msgid "Save & Quit"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:197 ../../tinyfirewall.pm_.c:201
-msgid "Firewall Configuration Wizard"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:199
-msgid "No (firewall this off from the internet)"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:200
-msgid "Yes (allow this through the firewall)"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:232
-msgid "Please Wait... Verifying installed packages"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:238
-#, c-format
-msgid ""
-"Failure installing the needed packages : %s and Bastille.\n"
-" Try to install them manually."
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Web/FTP"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Network Computer (client)"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Office"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Gnome Workstation"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Tools for your Palm Pilot or your Visor"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Workstation"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Firewall/Router"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Domain Name and Network Information Server"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, gnumeric), pdf viewers, etc"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Audio-related tools: mp3 or midi players, mixers, etc"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Books and Howto's on Linux and Free Software"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "KDE Workstation"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Video"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Set of tools for mail, news, web, file transfer, and chat"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Database"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "PostgreSQL or MySQL database server"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Tools to ease the configuration of your computer"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Sound"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Documentation"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Console Tools"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Postfix mail server, Inn news server"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Internet station"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Multimedia station"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Configuration"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "More Graphical Desktops (Gnome, IceWM)"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "The K Desktop Environment, the basic graphical environment with a collection of accompanying tools"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Graphical Environment"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Apache, Pro-ftpd"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Tools to create and burn CD's"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Office Workstation"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Server"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Gnome, Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Graphics programs such as The Gimp"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "DNS/NIS "
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "C and C++ development libraries, programs and include files"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Network Computer server"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Mail/Groupware/News"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Game station"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Video players and editors"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Graphics"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Set of tools to read and send mail and news (pine, mutt, tin..) and to browse the Web"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Personal Finance"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "A graphical environment with user-friendly set of applications and desktop tools"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Clients for different protocols including ssh"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Internet gateway"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Sound and video playing/editing programs"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Other Graphical Desktops"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Editors, shells, file tools, terminals"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Programs to manage your finance, such as gnucash"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Personal Information Management"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - CD Burning"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Scientific Workstation"
-msgstr ""
diff --git a/perl-install/share/po/Makefile b/perl-install/share/po/Makefile
deleted file mode 100644
index 6487cc3b6..000000000
--- a/perl-install/share/po/Makefile
+++ /dev/null
@@ -1,75 +0,0 @@
-include ../../Makefile.config
-
-PMSFILES = $(wildcard $(ALLPMS:%=../../%))
-PMSCFILES = $(PMSFILES:%=%_.c)
-
-# temporarly don't include ar.po,br.po,cy.po,ga.po,is.po,ro.po,sl.po
-# (too low translation percentage)
-POFILES = $(shell ls *.po|grep -v '\(ar.po\|ga.po\|is.po\|ro.po\|sl.po\)')
-
-MOFILES = $(POFILES:%.po=%.mo)
-LANGS = $(POFILES:%.po=%)
-
-LOCALEDIR=$(DATADIR)/locale
-
-
-all: help $(MOFILES)
-
-help:
- @if [ ! -d doc ]; then \
- echo "Checking out doc stuff now ..."; \
- cvs co doc/manual/{entities,literal/drakx}; \
- rm -rf doc/CVS; \
- else \
- echo "Updating doc stuff now ..."; \
- cvs update doc/manual/{entities,literal/drakx}; \
- fi
- ./help_xml2pm.pl
-
-%.mo: %.po
- msgfmt -o $@ $<
-
-$(PMSCFILES): %_.c: %
- ./fake_c.pl $< > $@
-
-$(POFILES): DrakX.pot
- perl -ne 'print unless /^# DO NOT BOTHER TO MODIFY HERE, SEE:|^#.*\Qdrakx-help.xml/ .. /^$$/' $@ > $@t
- if [ -e help-$@t ]; then perl -pe 's|^#~ ||' -i $@t ; msgmerge -C $@t help-$@t $< > $@; else msgmerge $@t $< > $@; fi
- rm $@t
-
-DrakX.pot: $(PMSFILES)
- $(MAKE) $(PMSCFILES);
- xgettext -F -n --add-comments='-PO' --keyword=_ --keyword=__ -o $@ $(PMSCFILES)
- rm $(PMSCFILES)
- perl i18n_compssUsers 2>/dev/null >> $@
-
-install:
- for l in $(LANGS); do \
- install -d $(LOCALEDIR)/$$l/LC_MESSAGES; \
- install -m 644 $$l.mo $(LOCALEDIR)/$$l/LC_MESSAGES/$(NAME).mo; \
- done
-
-clean:
- @rm -rf drakx-help.xml .memdump doc empty.po tmp.* messages tmp.pot *.mo $(POFILES:%=%t) $(PMSCFILES)
-
-check:
- @grep -F '$$' DrakX.pot && { echo "bad translation strings (contains \$$) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"; exit 1; } ||:
-
-verif:
- perl -ne '/^\s*#/ or $$i += my @l = /\b__?\(/g; END { print "$$i\n" }' $(PMSFILES)
- perl -ne '$$i += my @l = /\.c:/g; END { print "$$i\n" }' DrakX.pot
-
-verif2:
-# perl -I ../.. -Mcommon -e 'foreach (qw($(PMSFILES))) { printf "package foo%d;\n", ++$$i; print common::cat_($$_) }' | perl -ne 'print if !/use (diagnostics|vars|strict)/' | OUTFILE=tmp.pm perl -I. -I../.. -Mb_dump_strings >/dev/null 2>/dev/null
- perl -pe 's|$$|\\n\\|' tmp.pm > tmp.pm_.c
- xgettext --keyword=_ -o tmp.po tmp.pm_.c
- msgmerge DrakX.pot tmp.po > tmp.pot
- grep "^msgid" tmp.pot | sort > tmp.pot.light
- grep "^msgid" DrakX.pot | sort | diff - tmp.pot.light | grep "^>" || true
-
-
-# for i in *.po; do echo -n "$i "; msgfmt -v $i 2>&1; done | perl -e 'print map { $_->[0] } sort { $a->[1] <=> $b->[1] } map { [ $_, (split)[1] ] } <>'
-
-
-%: %.sh
- # fake built-in
diff --git a/perl-install/share/po/af.po b/perl-install/share/po/af.po
deleted file mode 100644
index 60896970c..000000000
--- a/perl-install/share/po/af.po
+++ /dev/null
@@ -1,12923 +0,0 @@
-# KTranslator Generated File
-# Copyright (c) 1999-2000 MandrakeSoft
-# Schalk. W. Cronjé <schalkc@ntaba.co.za>, 2000
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: DrakX VERSION\n"
-"POT-Creation-Date: 2002-03-11 18:29+0100\n"
-"PO-Revision-Date: 2001-09-09 22:06-0000\n"
-"Last-Translator: Schalk W. Cronjé <schalkc@uk.ntaba.com>\n"
-"Language-Team: Afrikaans <mandrake@af.org.za>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../Xconfigurator.pm_.c:242
-msgid "Configure all heads independently"
-msgstr "Konfigureer skyfkoppe afsonderlik"
-
-#: ../../Xconfigurator.pm_.c:243
-msgid "Use Xinerama extension"
-msgstr "Gebruik Xinerama-ekstensies"
-
-#: ../../Xconfigurator.pm_.c:246
-#, c-format
-msgid "Configure only card \"%s\" (%s)"
-msgstr "Konfigureer net die \"%s\" kaart (%s)"
-
-#: ../../Xconfigurator.pm_.c:249
-msgid "Multi-head configuration"
-msgstr "Multikopkonfigurasie"
-
-#: ../../Xconfigurator.pm_.c:250
-msgid ""
-"Your system support multiple head configuration.\n"
-"What do you want to do?"
-msgstr ""
-"U stelsel onderstuen multikopkonfigurasie.\n"
-"Wat wil u doen?"
-
-#: ../../Xconfigurator.pm_.c:261
-msgid "Graphic card"
-msgstr "Videokaart"
-
-#: ../../Xconfigurator.pm_.c:262
-msgid "Select a graphic card"
-msgstr "Selekteer 'n videokaart"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "Choose a X server"
-msgstr "Kies 'n X-bediener"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "X server"
-msgstr "X-bediener"
-
-#: ../../Xconfigurator.pm_.c:293
-#, fuzzy
-msgid "Choose a X driver"
-msgstr "Kies 'n X-bediener"
-
-#: ../../Xconfigurator.pm_.c:293
-#, fuzzy
-msgid "X driver"
-msgstr "X-bediener"
-
-#: ../../Xconfigurator.pm_.c:360 ../../Xconfigurator.pm_.c:366
-#: ../../Xconfigurator.pm_.c:416 ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s"
-msgstr "XFree %s"
-
-#: ../../Xconfigurator.pm_.c:363
-msgid "Which configuration of XFree do you want to have?"
-msgstr "Watter tipe XFree-konfigurasie verlang u?"
-
-#: ../../Xconfigurator.pm_.c:374
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"U videokaart kan slegs 3D-versnelling onder XFree %s ondersteun.\n"
-"DIt word wel onder XFree %s ondersteun wat dalk beter 2D-ondersteuning het."
-
-#: ../../Xconfigurator.pm_.c:376 ../../Xconfigurator.pm_.c:409
-#, c-format
-msgid "Your card can have 3D hardware acceleration support with XFree %s."
-msgstr ""
-"U videokaart kan vir 3D-hardewareversnelling ondestuen word in XFree %s."
-
-#: ../../Xconfigurator.pm_.c:378 ../../Xconfigurator.pm_.c:411
-#: ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s with 3D hardware acceleration"
-msgstr "XFree %s met 3D-hardwareversnelling"
-
-#: ../../Xconfigurator.pm_.c:386 ../../Xconfigurator.pm_.c:400
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER."
-msgstr ""
-"Hierdie kaart kan ondersteuning vir 3D-hardewareversnelling onder XFree86 %s "
-"bied,\n"
-"MAAR LET DAAROP DAT DIT EKSPERIMENTEEL IS EN DIE REKENAAR MAG VRIES."
-
-#: ../../Xconfigurator.pm_.c:388 ../../Xconfigurator.pm_.c:402
-#, c-format
-msgid "XFree %s with EXPERIMENTAL 3D hardware acceleration"
-msgstr "XFree %s met EKSPERIMENTELE 3D-hardewareversnelling"
-
-#: ../../Xconfigurator.pm_.c:397
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"Hierdie kaart kan ondersteuning vir 3D-hardewareversnelling onder XFree86 %s "
-"bied,\n"
-"MAAR LET DAAROP DAT DIT EKSPERIMENTEEL IS EN DIE REKENAAR MAG VRIES.\n"
-"U kaart word deur XFree %s ondersteun, wat beter 2D-ondersteuning bied."
-
-#: ../../Xconfigurator.pm_.c:417
-msgid "Xpmac (installation display driver)"
-msgstr "Xpmac (installasievertoondrywer)"
-
-#: ../../Xconfigurator.pm_.c:421
-msgid "XFree configuration"
-msgstr "XFree-konfigurasie"
-
-#: ../../Xconfigurator.pm_.c:496
-msgid "Select the memory size of your graphic card"
-msgstr "Kies die geheue grootte van u videokaart"
-
-#: ../../Xconfigurator.pm_.c:550
-msgid "Choose options for server"
-msgstr "Selekteer opsies vir bediener"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Choose a monitor"
-msgstr "Kies 'n monitor"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Monitor"
-msgstr "Monitor"
-
-#: ../../Xconfigurator.pm_.c:577
-msgid ""
-"The two critical parameters are the vertical refresh rate, which is the "
-"rate\n"
-"at which the whole screen is refreshed, and most importantly the horizontal\n"
-"sync rate, which is the rate at which scanlines are displayed.\n"
-"\n"
-"It is VERY IMPORTANT that you do not specify a monitor type with a sync "
-"range\n"
-"that is beyond the capabilities of your monitor: you may damage your "
-"monitor.\n"
-" If in doubt, choose a conservative setting."
-msgstr ""
-"Die kritiese twee parameters is die vertikale verfristempo (die tempo\n"
-"waarteen die hele skerm verfris) en die horisontale sinkronisasietempo (die\n"
-"tempo waarteen die horisontale skandeerlyne vertoon word). Lg. is die\n"
-"belangrikste.\n"
-"\n"
-"Dit is BAIE BELANGRIK dat u nie 'n sinkronisasie bereik buite dié van u\n"
-"monitor spesifiseer nie, dit kan die monitor beskadig. Indien u twyfel,\n"
-"kies konservatief."
-
-#: ../../Xconfigurator.pm_.c:584
-msgid "Horizontal refresh rate"
-msgstr "Horisontale verfristempo"
-
-#: ../../Xconfigurator.pm_.c:585
-msgid "Vertical refresh rate"
-msgstr "Vertikale verfristempo"
-
-#: ../../Xconfigurator.pm_.c:622
-msgid "Monitor not configured"
-msgstr "Monitor is nie opgestel nie"
-
-#: ../../Xconfigurator.pm_.c:625
-msgid "Graphic card not configured yet"
-msgstr "Grafikakaart is nog nie konfigureer nie"
-
-#: ../../Xconfigurator.pm_.c:628
-msgid "Resolutions not chosen yet"
-msgstr "Resolusie is nog nie gekies nie"
-
-#: ../../Xconfigurator.pm_.c:646
-msgid "Do you want to test the configuration?"
-msgstr "Wil u die konfigurasie toets?"
-
-#
-#: ../../Xconfigurator.pm_.c:650
-msgid "Warning: testing this graphic card may freeze your computer"
-msgstr "Waarskuwing: Toetsing is gevaarlik met hierdie videokaart"
-
-#: ../../Xconfigurator.pm_.c:653
-msgid "Test of the configuration"
-msgstr "Toets konfigurasie"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid ""
-"\n"
-"try to change some parameters"
-msgstr ""
-"\n"
-"probeer van die parameters verander"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid "An error has occurred:"
-msgstr "Daar was 'n fout:"
-
-#: ../../Xconfigurator.pm_.c:731
-#, c-format
-msgid "Leaving in %d seconds"
-msgstr "uitgang binne %ds"
-
-#: ../../Xconfigurator.pm_.c:742
-msgid "Is this the correct setting?"
-msgstr "Is dit korrek?"
-
-#: ../../Xconfigurator.pm_.c:751
-msgid "An error has occurred, try to change some parameters"
-msgstr "Hier is fout, probeer van die parameters verander"
-
-#: ../../Xconfigurator.pm_.c:822
-msgid "Resolution"
-msgstr "Resolusie"
-
-#: ../../Xconfigurator.pm_.c:874
-msgid "Choose the resolution and the color depth"
-msgstr "Kies die resolusie en kleurdiepte"
-
-#: ../../Xconfigurator.pm_.c:876
-#, c-format
-msgid "Graphic card: %s"
-msgstr "Videokaart: %s"
-
-#: ../../Xconfigurator.pm_.c:877
-#, c-format
-msgid "XFree86 server: %s"
-msgstr "XFree86 bediener: %s"
-
-#: ../../Xconfigurator.pm_.c:891 ../../diskdrake/interactive.pm_.c:259
-#: ../../install_steps_interactive.pm_.c:208
-msgid "More"
-msgstr "Nog"
-
-#: ../../Xconfigurator.pm_.c:891 ../../install_gtk.pm_.c:84
-#: ../../install_steps_gtk.pm_.c:328 ../../interactive.pm_.c:127
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_http.pm_.c:104
-#: ../../interactive_newt.pm_.c:170 ../../interactive_stdio.pm_.c:141
-#: ../../interactive_stdio.pm_.c:142 ../../my_gtk.pm_.c:686
-#: ../../my_gtk.pm_.c:1019 ../../my_gtk.pm_.c:1041
-#: ../../standalone/drakbackup_.c:2298 ../../standalone/drakbackup_.c:2369
-#: ../../standalone/drakbackup_.c:2385
-msgid "Ok"
-msgstr "OK"
-
-#: ../../Xconfigurator.pm_.c:893 ../../network/netconnect.pm_.c:169
-#: ../../printerdrake.pm_.c:2470 ../../standalone/draknet_.c:275
-#: ../../standalone/draknet_.c:278
-msgid "Expert Mode"
-msgstr "Kundige modus"
-
-#: ../../Xconfigurator.pm_.c:894
-msgid "Show all"
-msgstr "Vertoon almal"
-
-#: ../../Xconfigurator.pm_.c:939
-msgid "Resolutions"
-msgstr "Resolusies"
-
-#: ../../Xconfigurator.pm_.c:1509
-#, c-format
-msgid "Keyboard layout: %s\n"
-msgstr "Sleutelbord uitleg: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1510
-#, c-format
-msgid "Mouse type: %s\n"
-msgstr "Muistipe: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1511
-#, c-format
-msgid "Mouse device: %s\n"
-msgstr "Muistoestel: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1512
-#, c-format
-msgid "Monitor: %s\n"
-msgstr "Monitor: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1513
-#, c-format
-msgid "Monitor HorizSync: %s\n"
-msgstr "Monitor HoriSink: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1514
-#, c-format
-msgid "Monitor VertRefresh: %s\n"
-msgstr "Monitor VertVerfris: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1515
-#, c-format
-msgid "Graphic card: %s\n"
-msgstr "Videokaart: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1516
-#, fuzzy, c-format
-msgid "Graphic card identification: %s\n"
-msgstr "Videokaart: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1517
-#, c-format
-msgid "Graphic memory: %s kB\n"
-msgstr "Video geheue: %s kB\n"
-
-#: ../../Xconfigurator.pm_.c:1519
-#, c-format
-msgid "Color depth: %s\n"
-msgstr "Kleurdiepte: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1520
-#, c-format
-msgid "Resolution: %s\n"
-msgstr "Resolusie: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1522
-#, c-format
-msgid "XFree86 server: %s\n"
-msgstr "XFree86 bediener: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1523
-#, c-format
-msgid "XFree86 driver: %s\n"
-msgstr "XFree86-drywer: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1541
-msgid "Preparing X-Window configuration"
-msgstr "X-Window konfigurasie word opgestel"
-
-#: ../../Xconfigurator.pm_.c:1561
-msgid "What do you want to do?"
-msgstr "Wat wil u doen?"
-
-#: ../../Xconfigurator.pm_.c:1566
-msgid "Change Monitor"
-msgstr "Verander monitor"
-
-#: ../../Xconfigurator.pm_.c:1567
-msgid "Change Graphic card"
-msgstr "Verander videokaart"
-
-#: ../../Xconfigurator.pm_.c:1570
-msgid "Change Server options"
-msgstr "Verander bedienerinstellings"
-
-#: ../../Xconfigurator.pm_.c:1571
-msgid "Change Resolution"
-msgstr "Verander resolusie"
-
-#: ../../Xconfigurator.pm_.c:1572
-msgid "Show information"
-msgstr "Vertoon inligting"
-
-#: ../../Xconfigurator.pm_.c:1573
-msgid "Test again"
-msgstr "Toets weer"
-
-#: ../../Xconfigurator.pm_.c:1574 ../../printerdrake.pm_.c:2473
-#: ../../standalone/logdrake_.c:225
-msgid "Quit"
-msgstr "Verlaat"
-
-#: ../../Xconfigurator.pm_.c:1582
-#, c-format
-msgid ""
-"Keep the changes?\n"
-"Current configuration is:\n"
-"\n"
-"%s"
-msgstr ""
-"Behou die veranderinge?\n"
-"Huidige konfigurasie is:\n"
-"\n"
-"%s"
-
-#: ../../Xconfigurator.pm_.c:1603
-msgid "X at startup"
-msgstr "X met herlaai"
-
-#: ../../Xconfigurator.pm_.c:1604
-msgid ""
-"I can set up your computer to automatically start X upon booting.\n"
-"Would you like X to start when you reboot?"
-msgstr ""
-"Ek kan u rekenaar so opstel om X outomaties te laai.\n"
-"Wil u X begin met 'n herlaai?"
-
-#: ../../Xconfigurator.pm_.c:1610
-#, c-format
-msgid "Please relog into %s to activate the changes"
-msgstr "Teken asb. weer in %s om veranderinge te aktiveer"
-
-#: ../../Xconfigurator.pm_.c:1625
-msgid "Please log out and then use Ctrl-Alt-BackSpace"
-msgstr "Teken uit en gebruik dan Ctrl-Alt-Backspace"
-
-#: ../../Xconfigurator_consts.pm_.c:6
-msgid "256 colors (8 bits)"
-msgstr "256 kleure (8 bis)"
-
-#: ../../Xconfigurator_consts.pm_.c:7
-msgid "32 thousand colors (15 bits)"
-msgstr "32-duisend kleure (15 bis)"
-
-#: ../../Xconfigurator_consts.pm_.c:8
-msgid "65 thousand colors (16 bits)"
-msgstr "65-duisend kleure (16 bis)"
-
-#: ../../Xconfigurator_consts.pm_.c:9
-msgid "16 million colors (24 bits)"
-msgstr "16-miljoen kleure (24 bis)"
-
-#: ../../Xconfigurator_consts.pm_.c:10
-msgid "4 billion colors (32 bits)"
-msgstr "4 biljoen kleure (32 bis)"
-
-#: ../../Xconfigurator_consts.pm_.c:113
-msgid "256 kB"
-msgstr "256 kB"
-
-#: ../../Xconfigurator_consts.pm_.c:114
-msgid "512 kB"
-msgstr "512 kB"
-
-#: ../../Xconfigurator_consts.pm_.c:115
-msgid "1 MB"
-msgstr "1 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:116
-msgid "2 MB"
-msgstr "2 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:117
-msgid "4 MB"
-msgstr "4 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:118
-msgid "8 MB"
-msgstr "8 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:119
-msgid "16 MB"
-msgstr "16 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:120
-msgid "32 MB"
-msgstr "32 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:121
-msgid "64 MB or more"
-msgstr "64MB of meer"
-
-#: ../../Xconfigurator_consts.pm_.c:129
-msgid "Standard VGA, 640x480 at 60 Hz"
-msgstr "Standaard VGA, 640x480 teen 60 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:130
-msgid "Super VGA, 800x600 at 56 Hz"
-msgstr "Super VGA, 800x600 teen 56 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:131
-msgid "8514 Compatible, 1024x768 at 87 Hz interlaced (no 800x600)"
-msgstr "8514-aanpasbaar, 1024x768 teen 87Hz interverweef (nie 800x600 nie)"
-
-#: ../../Xconfigurator_consts.pm_.c:132
-msgid "Super VGA, 1024x768 at 87 Hz interlaced, 800x600 at 56 Hz"
-msgstr "Super VGA, 102x768 teen 87 Hz interverweef, 800x600 teen 56 Hz "
-
-#: ../../Xconfigurator_consts.pm_.c:133
-msgid "Extended Super VGA, 800x600 at 60 Hz, 640x480 at 72 Hz"
-msgstr "Verlengde Super VGA, 800x600 teen 60 Hz, 640x480 teen 72 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:134
-msgid "Non-Interlaced SVGA, 1024x768 at 60 Hz, 800x600 at 72 Hz"
-msgstr "Nie-interverweefde SVGA, 1024x768 teen 60 Hz, 800x600 teen 72 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:135
-msgid "High Frequency SVGA, 1024x768 at 70 Hz"
-msgstr "Hod frekwensie SVGA, 1024x768 teen 70 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:136
-msgid "Multi-frequency that can do 1280x1024 at 60 Hz"
-msgstr "Multi-frekwensie wat 1280x1024 kan doen teen 60Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:137
-msgid "Multi-frequency that can do 1280x1024 at 74 Hz"
-msgstr "Multi-frekwensie wat 1280x1024 kan doen teen 74Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:138
-msgid "Multi-frequency that can do 1280x1024 at 76 Hz"
-msgstr "Multi-frekwensie wat 1280x1024 kan doen teen 76Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:139
-msgid "Monitor that can do 1600x1200 at 70 Hz"
-msgstr "Monitor wat 1600x1220 kan doen teen 70Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:140
-msgid "Monitor that can do 1600x1200 at 76 Hz"
-msgstr "Monitor wat 1600x1220 kan doen teen 76Hz"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141
-msgid "First sector of boot partition"
-msgstr "Eerste sektor van herlaaipartisie"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141 ../../any.pm_.c:218
-msgid "First sector of drive (MBR)"
-msgstr "Eerste sektor van skyf (MBR)"
-
-#: ../../any.pm_.c:120
-msgid "SILO Installation"
-msgstr "SILO installasie"
-
-#: ../../any.pm_.c:121 ../../any.pm_.c:134
-msgid "Where do you want to install the bootloader?"
-msgstr "Waar wil u die herlaaistelsel installeer"
-
-#: ../../any.pm_.c:133
-msgid "LILO/grub Installation"
-msgstr "LILO/grub installasie"
-
-#: ../../any.pm_.c:145 ../../any.pm_.c:159
-msgid "SILO"
-msgstr "SILO"
-
-#: ../../any.pm_.c:147
-msgid "LILO with text menu"
-msgstr "LILO met tekskieskaart"
-
-#: ../../any.pm_.c:148 ../../any.pm_.c:159
-msgid "LILO with graphical menu"
-msgstr "LILO met grafiese kieskaart"
-
-#: ../../any.pm_.c:151
-msgid "Grub"
-msgstr "Grub"
-
-#: ../../any.pm_.c:155
-msgid "Boot from DOS/Windows (loadlin)"
-msgstr "Laai vauit DOS/Windows (loadlin)"
-
-#: ../../any.pm_.c:157 ../../any.pm_.c:159
-msgid "Yaboot"
-msgstr "Yaboot"
-
-#: ../../any.pm_.c:166 ../../any.pm_.c:198
-msgid "Bootloader main options"
-msgstr "Herlaaistelsel hoofopsies"
-
-#: ../../any.pm_.c:167 ../../any.pm_.c:199
-msgid "Bootloader to use"
-msgstr "Herlaaistelsel om te gebruik"
-
-#: ../../any.pm_.c:169
-msgid "Bootloader installation"
-msgstr "Herlaaiprogram installasie"
-
-#: ../../any.pm_.c:171 ../../any.pm_.c:201
-msgid "Boot device"
-msgstr "Herlaaitoestel"
-
-#: ../../any.pm_.c:172
-msgid "LBA (doesn't work on old BIOSes)"
-msgstr "LBA (werk nie op 'n ou BIOS'e nie)"
-
-#: ../../any.pm_.c:173
-msgid "Compact"
-msgstr "Kompak"
-
-#: ../../any.pm_.c:173
-msgid "compact"
-msgstr "kompak"
-
-#: ../../any.pm_.c:174 ../../any.pm_.c:298
-msgid "Video mode"
-msgstr "Videomodus"
-
-#: ../../any.pm_.c:176
-msgid "Delay before booting default image"
-msgstr "Wagperiode voro verstekstelsel gelaai word"
-
-#: ../../any.pm_.c:178 ../../any.pm_.c:796
-#: ../../install_steps_interactive.pm_.c:1115 ../../network/modem.pm_.c:48
-#: ../../printerdrake.pm_.c:708 ../../printerdrake.pm_.c:806
-#: ../../standalone/draknet_.c:625
-msgid "Password"
-msgstr "Wagwoord"
-
-#: ../../any.pm_.c:179 ../../any.pm_.c:797
-#: ../../install_steps_interactive.pm_.c:1116
-msgid "Password (again)"
-msgstr "Wagwoord (weer)"
-
-#: ../../any.pm_.c:180
-msgid "Restrict command line options"
-msgstr "Beperk instruksielynopsies"
-
-#: ../../any.pm_.c:180
-msgid "restrict"
-msgstr "beperk"
-
-#: ../../any.pm_.c:182
-msgid "Clean /tmp at each boot"
-msgstr "Maak /tmp skoon met elke herlaai"
-
-#: ../../any.pm_.c:183
-#, c-format
-msgid "Precise RAM size if needed (found %d MB)"
-msgstr "Presiese RAM grootte indien nodig (%d MB bespeur)"
-
-#: ../../any.pm_.c:185
-msgid "Enable multi profiles"
-msgstr "Gebruik multiprofiele"
-
-#: ../../any.pm_.c:189
-msgid "Give the ram size in MB"
-msgstr "Gee die geheuegrootte in MB"
-
-#: ../../any.pm_.c:191
-msgid ""
-"Option ``Restrict command line options'' is of no use without a password"
-msgstr ""
-"Opsie ``Beperk instruksielynopsies'' kan nie sonder wagwoord gebruikword nie"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../diskdrake/interactive.pm_.c:1135
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "Please try again"
-msgstr "Probeer asb. weer"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "The passwords do not match"
-msgstr "Die wagwoorde stem nie ooreen nie."
-
-#: ../../any.pm_.c:200
-msgid "Init Message"
-msgstr "Beginboodskap"
-
-#: ../../any.pm_.c:202
-msgid "Open Firmware Delay"
-msgstr ""
-
-#: ../../any.pm_.c:203
-msgid "Kernel Boot Timeout"
-msgstr "Tydsbeperking vir stelselkernlaai"
-
-#: ../../any.pm_.c:204
-msgid "Enable CD Boot?"
-msgstr "Laat CD-herlaai toe?"
-
-#: ../../any.pm_.c:205
-msgid "Enable OF Boot?"
-msgstr "Laat OF-herlaai toe?"
-
-#: ../../any.pm_.c:206
-msgid "Default OS?"
-msgstr "Verstek bedryfstelsel?"
-
-#: ../../any.pm_.c:240
-msgid ""
-"You decided to install the bootloader on a partition.\n"
-"This implies you already have a bootloader on the hard drive you boot (eg: "
-"System Commander).\n"
-"\n"
-"On which drive are you booting?"
-msgstr ""
-
-#: ../../any.pm_.c:255
-msgid ""
-"Here are the different entries.\n"
-"You can add some more or change the existing ones."
-msgstr ""
-"Hier is die huidige inskrywings\n"
-"U kan byvoeg or verwyder soos nodig."
-
-#: ../../any.pm_.c:265 ../../standalone/drakbackup_.c:752
-#: ../../standalone/drakbackup_.c:861 ../../standalone/drakfont_.c:789
-#: ../../standalone/drakfont_.c:826
-msgid "Add"
-msgstr "Voeg by"
-
-#: ../../any.pm_.c:265 ../../any.pm_.c:784 ../../diskdrake/hd_gtk.pm_.c:153
-#: ../../diskdrake/removable.pm_.c:27 ../../diskdrake/smbnfs_gtk.pm_.c:86
-#: ../../interactive_http.pm_.c:153
-msgid "Done"
-msgstr "Klaar"
-
-#: ../../any.pm_.c:265
-msgid "Modify"
-msgstr "Verander"
-
-#: ../../any.pm_.c:273
-msgid "Which type of entry do you want to add?"
-msgstr "Watter tipe inskrywing wil u byvoeg?"
-
-#: ../../any.pm_.c:274 ../../standalone/drakbackup_.c:895
-msgid "Linux"
-msgstr "Linux"
-
-#: ../../any.pm_.c:274
-msgid "Other OS (SunOS...)"
-msgstr "Ander bedryfstelsel (SunOS...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (MacOS...)"
-msgstr "Ander bedryfstelsel (MacOS...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (windows...)"
-msgstr "Ander bedryfstelsel (windows...)"
-
-#: ../../any.pm_.c:294
-msgid "Image"
-msgstr "Beeld"
-
-#: ../../any.pm_.c:295 ../../any.pm_.c:306
-msgid "Root"
-msgstr "Basis"
-
-#: ../../any.pm_.c:296 ../../any.pm_.c:325
-msgid "Append"
-msgstr "Aanlas"
-
-#: ../../any.pm_.c:300
-msgid "Initrd"
-msgstr "Initrd"
-
-#: ../../any.pm_.c:301
-msgid "Read-write"
-msgstr "Lees-skryf"
-
-#: ../../any.pm_.c:308
-msgid "Table"
-msgstr "Tabel"
-
-#: ../../any.pm_.c:309
-msgid "Unsafe"
-msgstr "Onveilig"
-
-#: ../../any.pm_.c:316 ../../any.pm_.c:321 ../../any.pm_.c:324
-msgid "Label"
-msgstr "Etiket"
-
-#: ../../any.pm_.c:318 ../../any.pm_.c:329
-msgid "Default"
-msgstr "Verstek"
-
-#: ../../any.pm_.c:326
-msgid "Initrd-size"
-msgstr "Initrd-grootte"
-
-#: ../../any.pm_.c:328
-msgid "NoVideo"
-msgstr "Geen video"
-
-#: ../../any.pm_.c:336
-msgid "Remove entry"
-msgstr "Verwyder inskrywing"
-
-#: ../../any.pm_.c:339
-msgid "Empty label not allowed"
-msgstr "Leė etiket word nie toegelaat nie"
-
-#: ../../any.pm_.c:340
-msgid "You must specify a kernel image"
-msgstr ""
-
-#: ../../any.pm_.c:340
-#, fuzzy
-msgid "You must specify a root partition"
-msgstr "U moet oor 'n ruilpartisie beskik"
-
-#: ../../any.pm_.c:341
-msgid "This label is already used"
-msgstr "Hierdie etiket is alreeds in gebruik"
-
-#: ../../any.pm_.c:656
-#, c-format
-msgid "Found %s %s interfaces"
-msgstr "Het %s %s koppelvlakke gevind"
-
-#: ../../any.pm_.c:657
-msgid "Do you have another one?"
-msgstr "Beskik u oor nog?"
-
-#: ../../any.pm_.c:658
-#, c-format
-msgid "Do you have any %s interfaces?"
-msgstr "Het u enige %s koppelvlakke?"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:832 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "No"
-msgstr "Nee"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:831 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "Yes"
-msgstr "Ja"
-
-#: ../../any.pm_.c:661
-msgid "See hardware info"
-msgstr "Sien hardeware inligting"
-
-#. -PO: the first %s is the card type (scsi, network, sound,...)
-#. -PO: the second is the vendor+model name
-#: ../../any.pm_.c:695
-#, c-format
-msgid "Installing driver for %s card %s"
-msgstr "Drywer vir %s kaart %s in installasieproses"
-
-#: ../../any.pm_.c:696
-#, c-format
-msgid "(module %s)"
-msgstr "(module %s)"
-
-#. -PO: the %s is the driver type (scsi, network, sound,...)
-#: ../../any.pm_.c:707
-#, c-format
-msgid "Which %s driver should I try?"
-msgstr "Watter %s drywer meot ek probeer?"
-
-#: ../../any.pm_.c:715
-#, c-format
-msgid ""
-"In some cases, the %s driver needs to have extra information to work\n"
-"properly, although it normally works fine without. Would you like to "
-"specify\n"
-"extra options for it or allow the driver to probe your machine for the\n"
-"information it needs? Occasionally, probing will hang a computer, but it "
-"should\n"
-"not cause any damage."
-msgstr ""
-"In sekere gevalle sal die %s drywer ekstra inligting benodig, alhoewel in\n"
-"meeste gevalle dit nie nodig wees nie. Wil u ekstra opsies voorsien od moet\n"
-"rekenaar self daarvoor aftas. In uitsonderlike gevalle mag die rekenaar\n"
-"ophang, maar dit sal nie skade veroorsaak nie."
-
-#: ../../any.pm_.c:720
-msgid "Autoprobe"
-msgstr "Aftas"
-
-#: ../../any.pm_.c:720
-msgid "Specify options"
-msgstr "Spesifieer opsies"
-
-#: ../../any.pm_.c:725
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Note that any address should be entered with the prefix 0x like '0x123'"
-msgstr ""
-
-#: ../../any.pm_.c:731
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Options are in format ``name=value name2=value2 ...''.\n"
-"For instance, ``io=0x300 irq=7''"
-msgstr ""
-"U kan noue die opsies voorsien vir module %s.\n"
-"Opsies is in die formaat ``naam=waarde naam2=waarde2 ...''.\n"
-"Bv. ``io=0x300 irq-7''"
-
-#: ../../any.pm_.c:734
-msgid "Module options:"
-msgstr "Module opsies:"
-
-#: ../../any.pm_.c:745
-#, c-format
-msgid ""
-"Loading module %s failed.\n"
-"Do you want to try again with other parameters?"
-msgstr ""
-"Laai van module %s het gefaal.\n"
-"Wil u ander parameters probeer?"
-
-#: ../../any.pm_.c:761
-msgid "access to X programs"
-msgstr ""
-
-#: ../../any.pm_.c:762
-msgid "access to rpm tools"
-msgstr ""
-
-#: ../../any.pm_.c:763
-msgid "allow \"su\""
-msgstr ""
-
-#: ../../any.pm_.c:764
-msgid "access to administrative files"
-msgstr ""
-
-#: ../../any.pm_.c:769
-#, c-format
-msgid "(already added %s)"
-msgstr "(%s alreeds bygevoeg)"
-
-#: ../../any.pm_.c:774
-msgid "This password is too simple"
-msgstr "Die wagwoorde is te eenvoudig"
-
-#: ../../any.pm_.c:775
-msgid "Please give a user name"
-msgstr "Gee asb. 'n gebruikerskode"
-
-#: ../../any.pm_.c:776
-msgid ""
-"The user name must contain only lower cased letters, numbers, `-' and `_'"
-msgstr ""
-"Die gebruikerskode maag alleenlikui kleinletter, nommers, '-' en '_' bestaan"
-
-#: ../../any.pm_.c:777
-msgid "This user name is already added"
-msgstr "Hierdie genruikerskode bestaan alreeds"
-
-#: ../../any.pm_.c:781
-msgid "Add user"
-msgstr "Voeg gebruiker by"
-
-#: ../../any.pm_.c:782
-#, c-format
-msgid ""
-"Enter a user\n"
-"%s"
-msgstr ""
-"Tik 'n gebruiker in\n"
-"%s"
-
-#: ../../any.pm_.c:783
-msgid "Accept user"
-msgstr "Aanvaar gebruiker"
-
-#: ../../any.pm_.c:794
-msgid "Real name"
-msgstr "Regte naam"
-
-#: ../../any.pm_.c:795 ../../printerdrake.pm_.c:707
-#: ../../printerdrake.pm_.c:805
-msgid "User name"
-msgstr "Gebruikerskode"
-
-#: ../../any.pm_.c:798
-msgid "Shell"
-msgstr "Dop"
-
-#: ../../any.pm_.c:800
-msgid "Icon"
-msgstr "Ikoon"
-
-#: ../../any.pm_.c:828
-msgid "Autologin"
-msgstr "Outointeken"
-
-#: ../../any.pm_.c:829
-msgid ""
-"I can set up your computer to automatically log on one user.\n"
-"Do you want to use this feature?"
-msgstr ""
-"Ek kan u rekenaar so opstel om X outomaties een gebruiker in te teken.\n"
-"Verlang u hierdie funksionaliteit?"
-
-#: ../../any.pm_.c:833
-msgid "Choose the default user:"
-msgstr "Kies die verstek gebruiker:"
-
-#
-#: ../../any.pm_.c:834
-msgid "Choose the window manager to run:"
-msgstr "Kies die vensterbestuurder om te loop:"
-
-#: ../../any.pm_.c:849
-#, fuzzy
-msgid "Please choose a language to use."
-msgstr "Kies asb. 'n taal om te gebruik."
-
-#: ../../any.pm_.c:851
-msgid "You can choose other languages that will be available after install"
-msgstr "U kan ander tale selekteer wat na installasie beskikbaar sal wees."
-
-#: ../../any.pm_.c:863 ../../install_steps_interactive.pm_.c:719
-#: ../../standalone/drakxtv_.c:54
-msgid "All"
-msgstr "Alles"
-
-#: ../../any.pm_.c:955
-#, fuzzy
-msgid "Allow all users"
-msgstr "Voeg 'n gebruiker by"
-
-#
-#: ../../any.pm_.c:955 ../../install_steps_interactive.pm_.c:521
-msgid "Custom"
-msgstr "Aangepaste"
-
-#: ../../any.pm_.c:955
-#, fuzzy
-msgid "No sharing"
-msgstr "CUPS word gelaai"
-
-#: ../../any.pm_.c:965 ../../network/smbnfs.pm_.c:45
-#, fuzzy, c-format
-msgid "The package %s needs to be installed. Do you want to install it?"
-msgstr ""
-"Hierdie pakket moet opgradeer word\n"
-"Is u seker u wil dit deselekteer?"
-
-#: ../../any.pm_.c:968
-msgid "You can export using NFS or Samba. Which one do you want"
-msgstr ""
-
-#: ../../any.pm_.c:976 ../../network/smbnfs.pm_.c:49
-#, c-format
-msgid "Mandatory package %s is missing"
-msgstr ""
-
-#: ../../any.pm_.c:982
-msgid ""
-"Do you want to allow users to export some directories in their home?\n"
-"Allowing this will permit users to simply click on \"Share\" in konqueror "
-"and nautilus.\n"
-"\n"
-"\"Custom\" permit a per-user granularity.\n"
-msgstr ""
-
-#: ../../any.pm_.c:996 ../../bootlook.pm_.c:161
-#: ../../diskdrake/smbnfs_gtk.pm_.c:85 ../../install_steps_gtk.pm_.c:464
-#: ../../install_steps_gtk.pm_.c:522 ../../install_steps_interactive.pm_.c:594
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_stdio.pm_.c:141
-#: ../../my_gtk.pm_.c:687 ../../my_gtk.pm_.c:690 ../../my_gtk.pm_.c:1019
-#: ../../network/netconnect.pm_.c:47 ../../printerdrake.pm_.c:1586
-#: ../../standalone/drakautoinst_.c:204 ../../standalone/drakbackup_.c:2264
-#: ../../standalone/drakbackup_.c:2289 ../../standalone/drakbackup_.c:2310
-#: ../../standalone/drakbackup_.c:2331 ../../standalone/drakbackup_.c:2349
-#: ../../standalone/drakbackup_.c:2397 ../../standalone/drakbackup_.c:2417
-#: ../../standalone/drakbackup_.c:2436 ../../standalone/drakfont_.c:767
-#: ../../standalone/drakgw_.c:721 ../../standalone/draknet_.c:116
-#: ../../standalone/draknet_.c:148 ../../standalone/draknet_.c:290
-#: ../../standalone/draknet_.c:538 ../../standalone/draknet_.c:680
-#: ../../standalone/logdrake_.c:225 ../../standalone/logdrake_.c:512
-#: ../../standalone/tinyfirewall_.c:65
-msgid "Cancel"
-msgstr "Kanselleer"
-
-#: ../../any.pm_.c:996
-msgid "Launch userdrake"
-msgstr ""
-
-#: ../../any.pm_.c:998
-msgid ""
-"The per-user sharing uses the group \"fileshare\". \n"
-"You can use userdrake to add a user in this group."
-msgstr ""
-
-#: ../../any.pm_.c:1035
-msgid "Welcome To Crackers"
-msgstr "Krakers welkom"
-
-#: ../../any.pm_.c:1036
-msgid "Poor"
-msgstr "Swak"
-
-#: ../../any.pm_.c:1037 ../../mouse.pm_.c:31
-msgid "Standard"
-msgstr "Standaard"
-
-#: ../../any.pm_.c:1038
-msgid "High"
-msgstr "Hoog"
-
-#: ../../any.pm_.c:1039
-#, fuzzy
-msgid "Higher"
-msgstr "Hoog"
-
-#: ../../any.pm_.c:1040
-msgid "Paranoid"
-msgstr "Paranoļes"
-
-#: ../../any.pm_.c:1043
-msgid ""
-"This level is to be used with care. It makes your system more easy to use,\n"
-"but very sensitive: it must not be used for a machine connected to others\n"
-"or to the Internet. There is no password access."
-msgstr ""
-"Hierdie vlak moet met sorg gebruik word. Dit maak 'n stelsel baie maklik\n"
-"om te gebruik, maar is baie sensitief. Dit moet nie gebruik vir 'n rekenaar\n"
-"wat aan ander rekenaars of die internet gekoppel is nie. Daar is geen "
-"wagwoord\n"
-"toegang nie."
-
-#: ../../any.pm_.c:1046
-msgid ""
-"Password are now enabled, but use as a networked computer is still not "
-"recommended."
-msgstr ""
-"Wagwoorde is nou ontsper, maar gebruik as 'n netwerkrekenaar word nie "
-"aanbeveel nie."
-
-#: ../../any.pm_.c:1047
-#, fuzzy
-msgid ""
-"This is the standard security recommended for a computer that will be used "
-"to connect to the Internet as a client."
-msgstr ""
-"Hierdie is die standaard sekuriteitsvlak wat aanbeveel word vir rekenaars\n"
-"wat aan die internet as 'n kliėnt konnekteer. Daar is heelwat "
-"sekuriteitstoetse."
-
-#: ../../any.pm_.c:1048
-msgid ""
-"There are already some restrictions, and more automatic checks are run every "
-"night."
-msgstr ""
-
-#: ../../any.pm_.c:1049
-#, fuzzy
-msgid ""
-"With this security level, the use of this system as a server becomes "
-"possible.\n"
-"The security is now high enough to use the system as a server which accept\n"
-"connections from many clients. Note: if your machine is only a client on the "
-"Internet, you should better choose a lower level."
-msgstr ""
-"Met hierdie sekuriteitsvlak, kan die stelsel as 'n bediener gebruik word.\n"
-"Die sekuriteit is goed genoeg sodat 'n stelsel konneksies wat baie kliėnte\n"
-"af kan aanvaar."
-
-#: ../../any.pm_.c:1052
-#, fuzzy
-msgid ""
-"Based on the previous level, but the system is entirely closed.\n"
-"Security features are at their maximum."
-msgstr ""
-"Hierdie is Vlak-4 sekuriteit, maar die stelsel is afgeslote.\n"
-"Sekuriteitseienskappe is maksimaal."
-
-#: ../../any.pm_.c:1058
-msgid "Choose security level"
-msgstr "Gebruik sekuriteitsvlak"
-
-#: ../../any.pm_.c:1061
-#, fuzzy
-msgid "Security level"
-msgstr "Sekuriteitsvlak word gestel."
-
-#: ../../any.pm_.c:1063
-#, fuzzy
-msgid "Use libsafe for servers"
-msgstr "Selekteer opsies vir bediener"
-
-#: ../../any.pm_.c:1064
-msgid ""
-"A library which defends against buffer overflow and format string attacks."
-msgstr ""
-
-# NOTE: this message will be displayed at boot time; that is
-# only the ascii charset will be available on most machines
-# so use only 7bit for this message (and do transliteration or
-# leave it in English, as it is the best for your language)
-#
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#: ../../bootloader.pm_.c:355
-#, c-format
-msgid ""
-"Welcome to %s the operating system chooser!\n"
-"\n"
-"Choose an operating system in the list above or\n"
-"wait %d seconds for default boot.\n"
-"\n"
-msgstr ""
-"Welkom by %s die bedryfstelselkeuseprogram!\n"
-"\n"
-"Kies u bedryfstelsel uit die bogelyste opsies of wag\n"
-"%d sekonde vir die verstekopsie.\n"
-"\n"
-
-# NOTE: this message will be displayed by grub at boot time; that is
-# using the BIOS font; that means cp437 charset on 99.99% of PC computers
-# out there. It is the nsuggested that for non latin languages an ascii
-# transliteration be used; or maybe the english text be used; as it is best
-# The lines must fit on screen, aka length < 80
-# and only one line per string for the GRUB messages
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:928
-msgid "Welcome to GRUB the operating system chooser!"
-msgstr "Welkom by GRUB, die bedryfstelselkieskaart!"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:931
-#, c-format
-msgid "Use the %c and %c keys for selecting which entry is highlighted."
-msgstr ""
-"Gebruik die %c en %c sleutels om die inskrywing te kies wat uitgelig moet "
-"word."
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:934
-msgid "Press enter to boot the selected OS, 'e' to edit the"
-msgstr "Druk ENTER om die gekose bedryfstelsel te laai, 'e' om te redigeer."
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:937
-msgid "commands before booting, or 'c' for a command-line."
-msgstr "instruksies voor herlaai, of 'c' vir 'n instruksielyn."
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:940
-#, c-format
-msgid "The highlighted entry will be booted automatically in %d seconds."
-msgstr "Die uitgeligte inskrywing sal outomaties in %ds gelaai word."
-
-#: ../../bootloader.pm_.c:944
-msgid "not enough room in /boot"
-msgstr "nie genoeg spasie in /boot nie"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#. -PO: so you may need to put them in English or in a different language if MS-windows doesn't exist in your language
-#: ../../bootloader.pm_.c:1044
-msgid "Desktop"
-msgstr "Werkskerm"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#: ../../bootloader.pm_.c:1046
-msgid "Start Menu"
-msgstr "Beginkieskaart"
-
-#: ../../bootloader.pm_.c:1065
-#, fuzzy, c-format
-msgid "You can't install the bootloader on a %s partition\n"
-msgstr "Waar wil u die herlaaistelsel installeer"
-
-#: ../../bootlook.pm_.c:46
-msgid "no help implemented yet.\n"
-msgstr "Gee hulp beskikbaar nie (nog nie).\n"
-
-#: ../../bootlook.pm_.c:62
-msgid "Boot Style Configuration"
-msgstr "Herlaaistylkonfigurasie"
-
-#: ../../bootlook.pm_.c:79 ../../standalone/logdrake_.c:101
-msgid "/_File"
-msgstr "/_Lźer"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "/File/_Quit"
-msgstr "/Lźer/_Verlaat"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "<control>Q"
-msgstr "<ctrl>Q"
-
-#: ../../bootlook.pm_.c:91
-msgid "NewStyle Categorizing Monitor"
-msgstr "Nuwe monitorkategoriasiestyl"
-
-#: ../../bootlook.pm_.c:92
-msgid "NewStyle Monitor"
-msgstr "Nuwe styl monitor"
-
-#: ../../bootlook.pm_.c:93
-msgid "Traditional Monitor"
-msgstr "Tradisionele monitor"
-
-#: ../../bootlook.pm_.c:94
-msgid "Traditional Gtk+ Monitor"
-msgstr "Tradisionele Gtk+ Monitor"
-
-#: ../../bootlook.pm_.c:95
-msgid "Launch Aurora at boot time"
-msgstr "Laai Aurora met herlaaityd"
-
-#: ../../bootlook.pm_.c:98
-msgid "Lilo/grub mode"
-msgstr "LILO/GRUB metode"
-
-#: ../../bootlook.pm_.c:98
-msgid "Yaboot mode"
-msgstr "Yaboot metode"
-
-#: ../../bootlook.pm_.c:104
-#, c-format
-msgid ""
-"You are currently using %s as Boot Manager.\n"
-"Click on Configure to launch the setup wizard."
-msgstr ""
-"U gebruik huidig %s as herlaaibestuurder.\n"
-"Kliek op Konfigureer om opstelassistent te laai."
-
-#: ../../bootlook.pm_.c:106 ../../standalone/drakbackup_.c:1467
-#: ../../standalone/drakbackup_.c:1478 ../../standalone/drakgw_.c:715
-#: ../../standalone/tinyfirewall_.c:59
-msgid "Configure"
-msgstr "Konfigureer"
-
-#: ../../bootlook.pm_.c:141
-msgid "System mode"
-msgstr "Stelselmode"
-
-#: ../../bootlook.pm_.c:143
-msgid "Launch the X-Window system at start"
-msgstr "Laai X-Windowstelsel met herlaai"
-
-#: ../../bootlook.pm_.c:148
-msgid "No, I don't want autologin"
-msgstr "Nee, ek verlang outo-aanteken"
-
-#: ../../bootlook.pm_.c:150
-msgid "Yes, I want autologin with this (user, desktop)"
-msgstr "Ja, ek verlang outoaanteken met hierdie (gebruiker,werkskerm)"
-
-#: ../../bootlook.pm_.c:160 ../../network/netconnect.pm_.c:102
-#: ../../standalone/drakbackup_.c:2441 ../../standalone/drakbackup_.c:3345
-#: ../../standalone/drakfont_.c:532 ../../standalone/drakfont_.c:655
-#: ../../standalone/drakfont_.c:719 ../../standalone/drakfont_.c:765
-#: ../../standalone/draknet_.c:109 ../../standalone/draknet_.c:141
-#: ../../standalone/draknet_.c:297 ../../standalone/draknet_.c:436
-#: ../../standalone/draknet_.c:522 ../../standalone/draknet_.c:565
-#: ../../standalone/draknet_.c:666 ../../standalone/logdrake_.c:505
-msgid "OK"
-msgstr "OK"
-
-#: ../../bootlook.pm_.c:229
-#, c-format
-msgid "can not open /etc/inittab for reading: %s"
-msgstr "kan nie /etc/inittab oopmaak vir lees nie: %s"
-
-#: ../../common.pm_.c:94
-msgid "GB"
-msgstr "GB"
-
-#: ../../common.pm_.c:94
-msgid "KB"
-msgstr "KB"
-
-#: ../../common.pm_.c:94
-msgid "MB"
-msgstr "MB"
-
-#: ../../common.pm_.c:102
-msgid "TB"
-msgstr "TB"
-
-#: ../../common.pm_.c:110
-#, c-format
-msgid "%d minutes"
-msgstr "%d minute"
-
-#: ../../common.pm_.c:112
-msgid "1 minute"
-msgstr "1 minuut"
-
-#: ../../common.pm_.c:114
-#, c-format
-msgid "%d seconds"
-msgstr "%d sekondes"
-
-#: ../../common.pm_.c:159
-#, fuzzy
-msgid "Can't make screenshots before partitioning"
-msgstr "Ek kan nie meer partisies byvoeg nie"
-
-#: ../../common.pm_.c:166
-#, fuzzy, c-format
-msgid "Screenshots will be available after install in %s"
-msgstr "U kan ander tale selekteer wat na installasie beskikbaar sal wees."
-
-#: ../../crypto.pm_.c:12 ../../crypto.pm_.c:26 ../../standalone/drakxtv_.c:50
-msgid "France"
-msgstr "Frankryk"
-
-#: ../../crypto.pm_.c:13
-msgid "Costa Rica"
-msgstr ""
-
-#: ../../crypto.pm_.c:14 ../../crypto.pm_.c:27
-#, fuzzy
-msgid "Belgium"
-msgstr "Belgies"
-
-#: ../../crypto.pm_.c:15 ../../crypto.pm_.c:28
-msgid "Czech Republic"
-msgstr ""
-
-#: ../../crypto.pm_.c:16 ../../crypto.pm_.c:29
-msgid "Germany"
-msgstr "Duitsland"
-
-#: ../../crypto.pm_.c:17 ../../crypto.pm_.c:30
-#, fuzzy
-msgid "Greece"
-msgstr "Grieks"
-
-#: ../../crypto.pm_.c:18 ../../crypto.pm_.c:31
-#, fuzzy
-msgid "Norway"
-msgstr "Norweegs"
-
-#: ../../crypto.pm_.c:19 ../../crypto.pm_.c:32
-#, fuzzy
-msgid "Sweden"
-msgstr "Sien"
-
-#: ../../crypto.pm_.c:20 ../../crypto.pm_.c:34
-msgid "Netherlands"
-msgstr ""
-
-#: ../../crypto.pm_.c:21 ../../crypto.pm_.c:35 ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "Italy"
-msgstr "Italiaans"
-
-#: ../../crypto.pm_.c:22 ../../crypto.pm_.c:36
-#, fuzzy
-msgid "Austria"
-msgstr "seriaal"
-
-#: ../../crypto.pm_.c:33 ../../crypto.pm_.c:67
-msgid "United States"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:94
-msgid "Please make a backup of your data first"
-msgstr "Rugsteun u data eers asb."
-
-#: ../../diskdrake/hd_gtk.pm_.c:94 ../../diskdrake/interactive.pm_.c:891
-#: ../../diskdrake/interactive.pm_.c:900 ../../diskdrake/interactive.pm_.c:954
-msgid "Read carefully!"
-msgstr "Lees noukeurig!"
-
-#: ../../diskdrake/hd_gtk.pm_.c:97
-msgid ""
-"If you plan to use aboot, be carefull to leave a free space (2048 sectors is "
-"enough)\n"
-"at the beginning of the disk"
-msgstr ""
-"Indien u beplan om 'aboot' te gebruik, los spasie aan die begin\n"
-"van die skyf. (2048 sektors is genoeg)."
-
-#: ../../diskdrake/hd_gtk.pm_.c:116 ../../diskdrake/interactive.pm_.c:325
-#: ../../diskdrake/interactive.pm_.c:340 ../../diskdrake/smbnfs_gtk.pm_.c:45
-#: ../../install_steps.pm_.c:75 ../../install_steps_interactive.pm_.c:67
-#: ../../install_steps_interactive.pm_.c:356 ../../interactive_http.pm_.c:119
-#: ../../interactive_http.pm_.c:120 ../../standalone/diskdrake_.c:84
-msgid "Error"
-msgstr "Fout"
-
-#: ../../diskdrake/hd_gtk.pm_.c:151
-msgid "Wizard"
-msgstr "Assistent"
-
-#: ../../diskdrake/hd_gtk.pm_.c:181 ../../diskdrake/removable_gtk.pm_.c:24
-msgid "Choose action"
-msgstr "Kies aksie"
-
-#: ../../diskdrake/hd_gtk.pm_.c:185
-msgid ""
-"You have one big FAT partition\n"
-"(generally used by MicroSoft Dos/Windows).\n"
-"I suggest you first resize that partition\n"
-"(click on it, then click on \"Resize\")"
-msgstr ""
-"U het een massiewe FAT partisie. \n"
-"(gewoonlik deur DOS/Windows gebruik)\n"
-"Ek stel voor u verstel eers die grootte van dié partisie\n"
-"(kliek daarop en kliek dan op \"Verstel Grootte\")"
-
-#: ../../diskdrake/hd_gtk.pm_.c:188
-msgid "Please click on a partition"
-msgstr "Kliek asb. op 'n partisie"
-
-#: ../../diskdrake/hd_gtk.pm_.c:202 ../../diskdrake/smbnfs_gtk.pm_.c:67
-#: ../../install_steps_gtk.pm_.c:523
-msgid "Details"
-msgstr "Detail"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Ext2"
-msgstr "Ext2"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "FAT"
-msgstr "FAT"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "HFS"
-msgstr "HFS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-#, fuzzy
-msgid "Journalised FS"
-msgstr "Gejoernaliseer"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "SunOS"
-msgstr "SunOS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Swap"
-msgstr "Ruilarea"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../diskdrake/interactive.pm_.c:1050
-msgid "Empty"
-msgstr "Leeg"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../install_steps_gtk.pm_.c:379
-#: ../../install_steps_gtk.pm_.c:439 ../../mouse.pm_.c:162
-#: ../../services.pm_.c:157 ../../standalone/drakbackup_.c:944
-msgid "Other"
-msgstr "Ander"
-
-#: ../../diskdrake/hd_gtk.pm_.c:325
-msgid "Filesystem types:"
-msgstr "LOersteltipes:"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:386
-msgid "Create"
-msgstr "Skep"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:365
-#: ../../diskdrake/interactive.pm_.c:499 ../../diskdrake/removable.pm_.c:26
-#: ../../diskdrake/removable.pm_.c:49 ../../diskdrake/removable_gtk.pm_.c:17
-msgid "Type"
-msgstr "Tipe"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/hd_gtk.pm_.c:344
-#, c-format
-msgid "Use ``%s'' instead"
-msgstr "Gebruik ``%s'' instede."
-
-#: ../../diskdrake/hd_gtk.pm_.c:344 ../../diskdrake/interactive.pm_.c:374
-msgid "Delete"
-msgstr "Uitwis"
-
-#: ../../diskdrake/hd_gtk.pm_.c:348
-msgid "Use ``Unmount'' first"
-msgstr "Gebruik ``Ontheg'' eerste"
-
-#: ../../diskdrake/hd_gtk.pm_.c:349 ../../diskdrake/interactive.pm_.c:491
-#, c-format
-msgid ""
-"After changing type of partition %s, all data on this partition will be lost"
-msgstr ""
-"Alle data om hierdie partisie %s sal uitgewis word na verandering van die "
-"partisietipe"
-
-#: ../../diskdrake/interactive.pm_.c:171
-msgid "Choose a partition"
-msgstr "Kies 'n partisie"
-
-#: ../../diskdrake/interactive.pm_.c:171
-msgid "Choose another partition"
-msgstr "Kies 'n ander partisie"
-
-#: ../../diskdrake/interactive.pm_.c:196
-msgid "Exit"
-msgstr "Verlaat"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to expert mode"
-msgstr "Skakel oor na kundige gebruiksvlak"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to normal mode"
-msgstr "Skakel oor na normale gebruiksvlak"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Undo"
-msgstr "Herroep"
-
-#: ../../diskdrake/interactive.pm_.c:237
-msgid "Continue anyway?"
-msgstr "Wil u in elk geval voortgaan?"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without saving"
-msgstr "Verlaat, maar moenie iets stoor nie"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without writing the partition table?"
-msgstr "Wil u verlaat, sonder om die partisietabel op te dateer?"
-
-#: ../../diskdrake/interactive.pm_.c:247
-msgid "Do you want to save /etc/fstab modifications"
-msgstr "Wil u die /etc/fstab veranderinge stoor?"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Auto allocate"
-msgstr "Outo-allokeer"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Clear all"
-msgstr "Verwydeer almal"
-
-#: ../../diskdrake/interactive.pm_.c:262
-msgid "Hard drive information"
-msgstr "Hardeskyfinligting"
-
-#: ../../diskdrake/interactive.pm_.c:283
-msgid "All primary partitions are used"
-msgstr "Alle primźre partisies is gebruik"
-
-#: ../../diskdrake/interactive.pm_.c:284
-msgid "I can't add any more partition"
-msgstr "Ek kan nie meer partisies byvoeg nie"
-
-#: ../../diskdrake/interactive.pm_.c:285
-msgid ""
-"To have more partitions, please delete one to be able to create an extended "
-"partition"
-msgstr ""
-"Om meer partisies te verkry, verwyder asb. een om 'n ektensiepartisiete kan "
-"skep"
-
-#: ../../diskdrake/interactive.pm_.c:295
-#, fuzzy
-msgid "Save partition table"
-msgstr "Skryf partisietabel"
-
-#: ../../diskdrake/interactive.pm_.c:296
-#, fuzzy
-msgid "Restore partition table"
-msgstr "Reddingspartisietabel"
-
-#: ../../diskdrake/interactive.pm_.c:297
-msgid "Rescue partition table"
-msgstr "Reddingspartisietabel"
-
-#: ../../diskdrake/interactive.pm_.c:299
-#, fuzzy
-msgid "Reload partition table"
-msgstr "Reddingspartisietabel"
-
-#: ../../diskdrake/interactive.pm_.c:304
-#, fuzzy
-msgid "Removable media automounting"
-msgstr "Verwyderbare media"
-
-#: ../../diskdrake/interactive.pm_.c:313 ../../diskdrake/interactive.pm_.c:333
-msgid "Select file"
-msgstr "Selekteer lOer"
-
-#: ../../diskdrake/interactive.pm_.c:320
-msgid ""
-"The backup partition table has not the same size\n"
-"Still continue?"
-msgstr ""
-"Die rugsteunpartisietabel het nie dieselfde grootte nie\n"
-"Wil u voortgaan?"
-
-#: ../../diskdrake/interactive.pm_.c:334
-msgid "Warning"
-msgstr "Waarskuwing"
-
-#: ../../diskdrake/interactive.pm_.c:335
-msgid ""
-"Insert a floppy in drive\n"
-"All data on this floppy will be lost"
-msgstr ""
-"Sit 'n floppie in die aandrywer.\n"
-"Alle data op hierdie floppie sal verloor word."
-
-#: ../../diskdrake/interactive.pm_.c:346
-msgid "Trying to rescue partition table"
-msgstr "Partisietabel Reddingspoging"
-
-#: ../../diskdrake/interactive.pm_.c:352
-msgid "Detailed information"
-msgstr "Gedetaileerde inligting"
-
-#: ../../diskdrake/interactive.pm_.c:364 ../../diskdrake/interactive.pm_.c:534
-#: ../../diskdrake/interactive.pm_.c:554 ../../diskdrake/removable.pm_.c:24
-#: ../../diskdrake/removable_gtk.pm_.c:15 ../../diskdrake/smbnfs_gtk.pm_.c:83
-msgid "Mount point"
-msgstr "Hegpunt"
-
-#: ../../diskdrake/interactive.pm_.c:366 ../../diskdrake/removable.pm_.c:25
-#: ../../diskdrake/removable_gtk.pm_.c:16 ../../diskdrake/smbnfs_gtk.pm_.c:84
-msgid "Options"
-msgstr "Opsies"
-
-#: ../../diskdrake/interactive.pm_.c:367 ../../diskdrake/interactive.pm_.c:621
-msgid "Resize"
-msgstr "Verstel Grootte"
-
-#: ../../diskdrake/interactive.pm_.c:368 ../../diskdrake/interactive.pm_.c:674
-msgid "Move"
-msgstr "Skuif"
-
-#: ../../diskdrake/interactive.pm_.c:369
-msgid "Format"
-msgstr "Formatteer"
-
-#: ../../diskdrake/interactive.pm_.c:370 ../../diskdrake/smbnfs_gtk.pm_.c:80
-msgid "Mount"
-msgstr "Heg"
-
-#: ../../diskdrake/interactive.pm_.c:371
-msgid "Add to RAID"
-msgstr "Voeg by RAID"
-
-#: ../../diskdrake/interactive.pm_.c:372
-msgid "Add to LVM"
-msgstr "Voeg by LVM"
-
-#: ../../diskdrake/interactive.pm_.c:373 ../../diskdrake/smbnfs_gtk.pm_.c:79
-msgid "Unmount"
-msgstr "Ontheg"
-
-#: ../../diskdrake/interactive.pm_.c:375
-msgid "Remove from RAID"
-msgstr "Verwyder uit RAID"
-
-#: ../../diskdrake/interactive.pm_.c:376
-msgid "Remove from LVM"
-msgstr "Verwyder uit LVM"
-
-#: ../../diskdrake/interactive.pm_.c:377
-msgid "Modify RAID"
-msgstr "Verander RAID"
-
-#: ../../diskdrake/interactive.pm_.c:378
-msgid "Use for loopback"
-msgstr "Gebruik vir teruglus"
-
-#: ../../diskdrake/interactive.pm_.c:417
-msgid "Create a new partition"
-msgstr "Kies 'n nuwe grootte"
-
-#: ../../diskdrake/interactive.pm_.c:420
-msgid "Start sector: "
-msgstr "Kies sektor: "
-
-#: ../../diskdrake/interactive.pm_.c:422 ../../diskdrake/interactive.pm_.c:773
-msgid "Size in MB: "
-msgstr "Grootte in MB: "
-
-#: ../../diskdrake/interactive.pm_.c:423 ../../diskdrake/interactive.pm_.c:774
-msgid "Filesystem type: "
-msgstr "LOerstelseltipe: "
-
-#: ../../diskdrake/interactive.pm_.c:424
-#: ../../diskdrake/interactive.pm_.c:1034
-#: ../../diskdrake/interactive.pm_.c:1108
-msgid "Mount point: "
-msgstr "Hegpunt:"
-
-#: ../../diskdrake/interactive.pm_.c:428
-msgid "Preference: "
-msgstr "Voorkeure: "
-
-#: ../../diskdrake/interactive.pm_.c:472
-#, fuzzy
-msgid "Remove the loopback file?"
-msgstr "Terugluslźer %s word geformateer"
-
-#: ../../diskdrake/interactive.pm_.c:497
-msgid "Change partition type"
-msgstr "Verander partisietipe"
-
-#
-#: ../../diskdrake/interactive.pm_.c:498 ../../diskdrake/removable.pm_.c:48
-msgid "Which filesystem do you want?"
-msgstr "Watter lźerstelsel verlang u?"
-
-#: ../../diskdrake/interactive.pm_.c:502
-msgid "Switching from ext2 to ext3"
-msgstr "Oorskakeling van ext2 na ext3"
-
-#: ../../diskdrake/interactive.pm_.c:532
-#, c-format
-msgid "Where do you want to mount loopback file %s?"
-msgstr "Waar wil u terugluslźer %s heg?"
-
-#: ../../diskdrake/interactive.pm_.c:533 ../../diskdrake/interactive.pm_.c:553
-#, c-format
-msgid "Where do you want to mount device %s?"
-msgstr "Waar wil u toestel %s heg?"
-
-#: ../../diskdrake/interactive.pm_.c:539
-msgid ""
-"Can't unset mount point as this partition is used for loop back.\n"
-"Remove the loopback first"
-msgstr ""
-"Kan nie hegpunt ontset nie, omdat hierdie partisie vir teruglus\n"
-"gebruik word. Verwyder eers die teruglus."
-
-#: ../../diskdrake/interactive.pm_.c:577
-msgid "Computing FAT filesystem bounds"
-msgstr "FAT lźerstelselgrense word bereken"
-
-#: ../../diskdrake/interactive.pm_.c:577 ../../diskdrake/interactive.pm_.c:636
-#: ../../install_interactive.pm_.c:130
-msgid "Resizing"
-msgstr "Grootteverandering"
-
-#: ../../diskdrake/interactive.pm_.c:609
-msgid "This partition is not resizeable"
-msgstr "Hierdie partisie se greootte kan nie verstel word nie"
-
-#: ../../diskdrake/interactive.pm_.c:614
-msgid "All data on this partition should be backed-up"
-msgstr "Alle data om hierdie partisie moet gerugsteun word."
-
-#: ../../diskdrake/interactive.pm_.c:616
-#, c-format
-msgid "After resizing partition %s, all data on this partition will be lost"
-msgstr "Alle data om partisie %s sal uitgewis word met die grootteverandering"
-
-#: ../../diskdrake/interactive.pm_.c:621
-msgid "Choose the new size"
-msgstr "Kies die nuwe grootte"
-
-#: ../../diskdrake/interactive.pm_.c:622
-msgid "New size in MB: "
-msgstr "Nuwe grootte in MB: "
-
-#: ../../diskdrake/interactive.pm_.c:675
-msgid "Which disk do you want to move it to?"
-msgstr "Na watter skyf wil u skuif?"
-
-#: ../../diskdrake/interactive.pm_.c:676
-msgid "Sector"
-msgstr "Sektor"
-
-#: ../../diskdrake/interactive.pm_.c:677
-msgid "Which sector do you want to move it to?"
-msgstr "Na watter sektor wil u skuif?"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving"
-msgstr "Verskuiwing"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving partition..."
-msgstr "Partisie word verskuif..."
-
-#: ../../diskdrake/interactive.pm_.c:697
-msgid "Choose an existing RAID to add to"
-msgstr "Kies 'n bestaande RAID om by toe te voeg"
-
-#: ../../diskdrake/interactive.pm_.c:698 ../../diskdrake/interactive.pm_.c:716
-msgid "new"
-msgstr "nuut"
-
-#: ../../diskdrake/interactive.pm_.c:714
-msgid "Choose an existing LVM to add to"
-msgstr "Kies 'n bestaande LVM om by toe te voeg"
-
-#: ../../diskdrake/interactive.pm_.c:719
-msgid "LVM name?"
-msgstr "LVM naam?"
-
-#: ../../diskdrake/interactive.pm_.c:759
-msgid "This partition can't be used for loopback"
-msgstr "Hierdie partisie kan nie vir teruglus gebruik word nie."
-
-#: ../../diskdrake/interactive.pm_.c:771
-msgid "Loopback"
-msgstr "Teruglus"
-
-#: ../../diskdrake/interactive.pm_.c:772
-msgid "Loopback file name: "
-msgstr "Teruglus lźernaam:"
-
-#: ../../diskdrake/interactive.pm_.c:777
-#, fuzzy
-msgid "Give a file name"
-msgstr "Regte naam"
-
-#: ../../diskdrake/interactive.pm_.c:780
-msgid "File already used by another loopback, choose another one"
-msgstr "Lźer word alreeds deur 'n ander teruglus gebruik,kies 'n ander een"
-
-#: ../../diskdrake/interactive.pm_.c:781
-msgid "File already exists. Use it?"
-msgstr "Lźer bestaan alreeds. Moet dit gebruik word?"
-
-#: ../../diskdrake/interactive.pm_.c:804
-msgid "Mount options"
-msgstr "Hegopsies:"
-
-#: ../../diskdrake/interactive.pm_.c:811
-msgid "Various"
-msgstr "Verskeie"
-
-#: ../../diskdrake/interactive.pm_.c:874
-msgid "device"
-msgstr "toestel"
-
-#: ../../diskdrake/interactive.pm_.c:875
-msgid "level"
-msgstr "vlak"
-
-#: ../../diskdrake/interactive.pm_.c:876
-msgid "chunk size"
-msgstr "blokgrootte"
-
-#: ../../diskdrake/interactive.pm_.c:891
-msgid "Be careful: this operation is dangerous."
-msgstr "Wees versigtig: hierdie is 'n gevaarlike operasie"
-
-#: ../../diskdrake/interactive.pm_.c:906
-msgid "What type of partitioning?"
-msgstr "Watter tipe van partisionering?"
-
-#: ../../diskdrake/interactive.pm_.c:924
-msgid ""
-"Sorry I won't accept to create /boot so far onto the drive (on a cylinder > "
-"1024).\n"
-"Either you use LILO and it won't work, or you don't use LILO and you don't "
-"need /boot"
-msgstr ""
-"Jammer, ek kan nie die versoek om /boot om hierdie skyf (op 'n silinder > "
-"1024) te skep,\n"
-"aanvaar nie. As u LILO gebruik sal dit nie werk nie en as u nie LILO "
-"gebruik\n"
-"nie, dan het u nie /boot nodig nie."
-
-#: ../../diskdrake/interactive.pm_.c:928
-msgid ""
-"The partition you've selected to add as root (/) is physically located "
-"beyond\n"
-"the 1024th cylinder of the hard drive, and you have no /boot partition.\n"
-"If you plan to use the LILO boot manager, be careful to add a /boot partition"
-msgstr ""
-"_ keuse vir die \"root\" partisie (/) is fisies buite die 1024de silindervan "
-"die\n"
-"hardeskyf en u het nie 'n /boot partisie nie. Indien u beplan om LILO te "
-"gebruik,moet u\n"
-"asb. 'n /boot partisie skep,"
-
-#: ../../diskdrake/interactive.pm_.c:934
-msgid ""
-"You've selected a software RAID partition as root (/).\n"
-"No bootloader is able to handle this without a /boot partition.\n"
-"So be careful to add a /boot partition"
-msgstr ""
-"U het 'n sagteware RAID-partisie as wortel (/).\n"
-"Geen herlaaistelsel sal dit kan hanteer sonder 'n /boot partisie nie.\n"
-"Onthou om 'n /boot by te voeg."
-
-#: ../../diskdrake/interactive.pm_.c:954
-#, c-format
-msgid "Partition table of drive %s is going to be written to disk!"
-msgstr "Partisietabel van skyf %s gaan opdateer word!"
-
-#: ../../diskdrake/interactive.pm_.c:958
-msgid "You'll need to reboot before the modification can take place"
-msgstr "U sal moet herlaai voor die veranderinge geaktiveer kan word"
-
-#: ../../diskdrake/interactive.pm_.c:969
-#, c-format
-msgid "After formatting partition %s, all data on this partition will be lost"
-msgstr "Alle data om partisie %s sal uitgewis word met formatering."
-
-#: ../../diskdrake/interactive.pm_.c:971
-msgid "Formatting"
-msgstr "Formatering"
-
-#: ../../diskdrake/interactive.pm_.c:972
-#, c-format
-msgid "Formatting loopback file %s"
-msgstr "Terugluslźer %s word geformateer"
-
-#: ../../diskdrake/interactive.pm_.c:973
-#: ../../install_steps_interactive.pm_.c:465
-#, c-format
-msgid "Formatting partition %s"
-msgstr "Partisie %s word formateer"
-
-#: ../../diskdrake/interactive.pm_.c:984
-#, fuzzy
-msgid "Hide files"
-msgstr "mkraid het gefaal"
-
-#: ../../diskdrake/interactive.pm_.c:984
-#, fuzzy
-msgid "Move files to the new partition"
-msgstr "Nie genoeg spasie beskikbaar om nuwe partisies toe te ken nie"
-
-#: ../../diskdrake/interactive.pm_.c:985
-#, c-format
-msgid ""
-"Directory %s already contain some data\n"
-"(%s)"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:996
-#, fuzzy
-msgid "Moving files to the new partition"
-msgstr "Nie genoeg spasie beskikbaar om nuwe partisies toe te ken nie"
-
-#: ../../diskdrake/interactive.pm_.c:1000
-#, c-format
-msgid "Copying %s"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1004
-#, fuzzy, c-format
-msgid "Removing %s"
-msgstr "LPD word verwyder..."
-
-#: ../../diskdrake/interactive.pm_.c:1014
-#, c-format
-msgid "partition %s is now known as %s"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1035
-#: ../../diskdrake/interactive.pm_.c:1094
-msgid "Device: "
-msgstr "Toestel:"
-
-#: ../../diskdrake/interactive.pm_.c:1036
-#, c-format
-msgid "DOS drive letter: %s (just a guess)\n"
-msgstr "DOS-skyfletter: %s ('n raaiskoot)\n"
-
-#: ../../diskdrake/interactive.pm_.c:1040
-#: ../../diskdrake/interactive.pm_.c:1048
-#: ../../diskdrake/interactive.pm_.c:1112
-msgid "Type: "
-msgstr "Tipe:"
-
-#: ../../diskdrake/interactive.pm_.c:1044
-msgid "Name: "
-msgstr "Naam: "
-
-#: ../../diskdrake/interactive.pm_.c:1052
-#, c-format
-msgid "Start: sector %s\n"
-msgstr "Begin: sektor %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1053
-#, c-format
-msgid "Size: %s"
-msgstr "Grootte: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1055
-#, c-format
-msgid ", %s sectors"
-msgstr ", %s sektore"
-
-#: ../../diskdrake/interactive.pm_.c:1057
-#, fuzzy, c-format
-msgid "Cylinder %d to %d\n"
-msgstr "Silinder %d na silinder %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1058
-msgid "Formatted\n"
-msgstr "Geformateer\n"
-
-#: ../../diskdrake/interactive.pm_.c:1059
-msgid "Not formatted\n"
-msgstr "Nie geformatter\n"
-
-#: ../../diskdrake/interactive.pm_.c:1060
-msgid "Mounted\n"
-msgstr "Geheg\n"
-
-#: ../../diskdrake/interactive.pm_.c:1061
-#, c-format
-msgid "RAID md%s\n"
-msgstr "RAID md%s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1063
-#, fuzzy, c-format
-msgid ""
-"Loopback file(s):\n"
-" %s\n"
-msgstr "Teruglus lźer(s): %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1064
-msgid ""
-"Partition booted by default\n"
-" (for MS-DOS boot, not for lilo)\n"
-msgstr ""
-"Verstekpartisie vir herlaai\n"
-" (vir MS_DOS doeleindes, nie LILO s'n nie)\n"
-
-#: ../../diskdrake/interactive.pm_.c:1066
-#, c-format
-msgid "Level %s\n"
-msgstr "Vlak %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1067
-#, c-format
-msgid "Chunk size %s\n"
-msgstr "Blokgrootte %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1068
-#, c-format
-msgid "RAID-disks %s\n"
-msgstr "RAID-skywe %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1070
-#, c-format
-msgid "Loopback file name: %s"
-msgstr "Teruglus lźernaam: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1073
-msgid ""
-"\n"
-"Chances are, this partition is\n"
-"a Driver partition, you should\n"
-"probably leave it alone.\n"
-msgstr ""
-"\n"
-"Dis hoogs waarskynlik dat hierdie partisie\n"
-"drywerpartisie is en verkieslik alleen gelos\n"
-"moet word.\n"
-
-#: ../../diskdrake/interactive.pm_.c:1076
-msgid ""
-"\n"
-"This special Bootstrap\n"
-"partition is for\n"
-"dual-booting your system.\n"
-msgstr ""
-"\n"
-"Hierdie spesiale herlaaipartisie\n"
-"is om u stelsel te duolaai.\n"
-
-#: ../../diskdrake/interactive.pm_.c:1095
-#, c-format
-msgid "Size: %s\n"
-msgstr "Grootte: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1096
-#, c-format
-msgid "Geometry: %s cylinders, %s heads, %s sectors\n"
-msgstr "Geometrie: %s silinders, %s koppe, %s sektore\n"
-
-#: ../../diskdrake/interactive.pm_.c:1097
-msgid "Info: "
-msgstr "Info:"
-
-#: ../../diskdrake/interactive.pm_.c:1098
-#, c-format
-msgid "LVM-disks %s\n"
-msgstr "LVM-skywe %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1099
-#, c-format
-msgid "Partition table type: %s\n"
-msgstr "Partisietabeltipe: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1100
-#, c-format
-msgid "on bus %d id %d\n"
-msgstr "op bus %d id %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1114
-#, c-format
-msgid "Options: %s"
-msgstr "Opsies: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1130
-#, fuzzy
-msgid "Filesystem encryption key"
-msgstr "LOerstelseltipe: "
-
-#: ../../diskdrake/interactive.pm_.c:1131
-msgid "Choose your filesystem encryption key"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1134
-#, fuzzy, c-format
-msgid "This encryption key is too simple (must be at least %d characters long)"
-msgstr ""
-"Hierdie wagwoord is te eenvoudig. Dit moet ten minste %d karakters bevat."
-
-#: ../../diskdrake/interactive.pm_.c:1135
-#, fuzzy
-msgid "The encryption keys do not match"
-msgstr "Die wagwoorde stem nie ooreen nie."
-
-#: ../../diskdrake/interactive.pm_.c:1138
-msgid "Encryption key"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1139
-msgid "Encryption key (again)"
-msgstr ""
-
-#: ../../diskdrake/removable.pm_.c:47
-msgid "Change type"
-msgstr "Verander tipe"
-
-#: ../../diskdrake/removable_gtk.pm_.c:28
-#, fuzzy
-msgid "Please click on a media"
-msgstr "Kliek asb. op 'n partisie"
-
-#: ../../diskdrake/smbnfs_gtk.pm_.c:165
-#, fuzzy
-msgid "Search servers"
-msgstr "DNS bediener"
-
-#: ../../fs.pm_.c:485 ../../fs.pm_.c:495 ../../fs.pm_.c:499 ../../fs.pm_.c:503
-#: ../../fs.pm_.c:507 ../../fs.pm_.c:511
-#, c-format
-msgid "%s formatting of %s failed"
-msgstr "%s formatering ban %s het gefaal"
-
-#: ../../fs.pm_.c:548
-#, c-format
-msgid "I don't know how to format %s in type %s"
-msgstr "Ek weet nie om %s as tipe %s te formateer nie"
-
-#: ../../fs.pm_.c:620 ../../fs.pm_.c:649 ../../fs.pm_.c:655
-#, c-format
-msgid "mounting partition %s in directory %s failed"
-msgstr ""
-
-#: ../../fs.pm_.c:640
-#, c-format
-msgid "fsck failed with exit code %d or signal %d"
-msgstr "fsck het gefaal met kode %d of sein %d"
-
-#: ../../fs.pm_.c:670 ../../partition_table.pm_.c:596
-#, c-format
-msgid "error unmounting %s: %s"
-msgstr "fout met onthegting van %s: %s"
-
-#: ../../fsedit.pm_.c:21
-msgid "simple"
-msgstr "eenvoudig"
-
-#: ../../fsedit.pm_.c:25
-msgid "with /usr"
-msgstr ""
-
-#: ../../fsedit.pm_.c:30
-msgid "server"
-msgstr "bediener"
-
-#: ../../fsedit.pm_.c:467
-msgid "You can't use JFS for partitions smaller than 16MB"
-msgstr "U kan nie JFS vir partisies kleiner as 16MB gebruik nie"
-
-#: ../../fsedit.pm_.c:468
-msgid "You can't use ReiserFS for partitions smaller than 32MB"
-msgstr "U kan nie ReiserFS vir partisies kleiner as 32MB gebruik nie"
-
-#: ../../fsedit.pm_.c:477
-msgid "Mount points must begin with a leading /"
-msgstr "Hegpunte moet met 'n / begin"
-
-#: ../../fsedit.pm_.c:478
-#, c-format
-msgid "There is already a partition with mount point %s\n"
-msgstr "Daar is alreeds 'n partisie met hegpunt %s\n"
-
-#: ../../fsedit.pm_.c:482
-#, c-format
-msgid "You can't use a LVM Logical Volume for mount point %s"
-msgstr "U kan nie LVM logiese volume vir hegpunt %s gebruik nie."
-
-#: ../../fsedit.pm_.c:484
-msgid "This directory should remain within the root filesystem"
-msgstr "Hierdie lźergids moet altyd in die wortellźerstelsel bly"
-
-#: ../../fsedit.pm_.c:486
-msgid "You need a true filesystem (ext2, reiserfs) for this mount point\n"
-msgstr "U benodig 'n ware lźerstelsel (ext2, reiserfs) vir hierdie hegpunt\n"
-
-#: ../../fsedit.pm_.c:488
-#, fuzzy, c-format
-msgid "You can't use an encrypted file system for mount point %s"
-msgstr "U kan nie LVM logiese volume vir hegpunt %s gebruik nie."
-
-#: ../../fsedit.pm_.c:546
-#, fuzzy
-msgid "Not enough free space for auto-allocating"
-msgstr "Nie genoeg spasie beskikbaar om nuwe partisies toe te ken nie"
-
-#: ../../fsedit.pm_.c:548
-msgid "Nothing to do"
-msgstr ""
-
-#: ../../fsedit.pm_.c:612
-#, c-format
-msgid "Error opening %s for writing: %s"
-msgstr "Four om %s in skryfmode te open: %s"
-
-#: ../../fsedit.pm_.c:697
-msgid ""
-"An error has occurred - no valid devices were found on which to create new "
-"filesystems. Please check your hardware for the cause of this problem"
-msgstr ""
-"'n Fout het voorgekom - geen geldige toestelle om die nuwe lźerstelsels op "
-"te skep, is gevind nie. Deursoek asb. die hardeware vir die oorsaak."
-
-#: ../../fsedit.pm_.c:720
-msgid "You don't have any partitions!"
-msgstr "U get geen partisies nie!"
-
-#: ../../help.pm_.c:13
-#, fuzzy
-msgid ""
-"GNU/Linux is a multiuser system, and this means that each user can have his\n"
-"own preferences, his own files and so on. You can read the ``User Guide''\n"
-"to learn more. But unlike \"root\", which is the administrator, the users\n"
-"you will add here will not be entitled to change anything except their own\n"
-"files and their own configuration. You will have to create at least one\n"
-"regular user for yourself. That account is where you should log in for\n"
-"routine use. Although it is very practical to log in as \"root\" everyday,\n"
-"it may also be very dangerous! The slightest mistake could mean that your\n"
-"system would not work any more. If you make a serious mistake as a regular\n"
-"user, you may only lose some information, but not the entire system.\n"
-"\n"
-"First, you have to enter your real name. This is not mandatory, of course\n"
-"as you can actually enter whatever you want. DrakX will then take the first\n"
-"word you have entered in the box and will bring it over to the \"User\n"
-"name\". This is the name this particular user will use to log onto the\n"
-"system. You can change it. You then have to enter a password here. A\n"
-"non-privileged (regular) user's password is not as crucial as \"root\"' one\n"
-"from a security point of view, but that is no reason to neglect it: after\n"
-"all, your files are at risk.\n"
-"\n"
-"If you click on \"Accept user\", you can then add as many as you want. Add\n"
-"a user for each one of your friends: your father or your sister, for\n"
-"example. When you finish adding all the users you want, select \"Done\".\n"
-"\n"
-"Clicking the \"Advanced\" button allows you to change the default \"shell\"\n"
-"for that user (bash by default)."
-msgstr ""
-"GNU/Linux is 'n multigebruikerstelsel en dit beteken dat elke gebruiker sy "
-"eie\n"
-"voorkeure kan stel, met sy eie lźers ens. U kan meer hieroor in die "
-"gebruikersgids\n"
-"lees. Maak andersins as 'root', die supergebruiker, kan gebruikers wat u "
-"hier byvoeg\n"
-"niks verander behalwe hul eie lźers en konfigurasie nie. U moet ten minste "
-"een gewone\n"
-"gebruiker vir u self skep. Hierdie gebruker is die een waaronder u moet "
-"inteken vir\n"
-"normale gebruik van die stelsel. Alhoewel dit baie gemaklik is om as 'root' "
-"in te teken vir\n"
-"daaglikse werk, is dit baie gevaarlik. 'n Eenvoudige fout kan u stelsel "
-"immobiliseer. 'n Fout\n"
-"wat as gewone gebruiker gemaak word sal net daardie gebruiker beļnvloed\n"
-"en nie hele stelsel nie.\n"
-"\n"
-"\n"
-"Eers moet u u eie naam intik. Dit is nie verpligtend nie, want u kan eintlik "
-"enigiets intik as\n"
-"u wil. DrakX sal dan die eerste woord wat u ingetik het in die "
-"gebruikerskode inskrywingsveld\n"
-"plaas. U kan hier verander indien u wil. Dit is die gebruikerskode waarmee "
-"die gebruiker in die\n"
-"stelsel sal inteken. U moet dan ook 'n wagwoord hier invoeg. 'n Gewone "
-"gebruiker se wagwoord\n"
-"is nie so krities as dié van die supergebruiker (uit 'n sekuriteitsoogpunt) "
-"nie, maar daar is geen\n"
-"rede om agterlosig met u data te wees nie.\n"
-"\n"
-"\n"
-"Indien u op Aanvaar kliek sal die gebruiker geskep word en kan u nog "
-"gebruikers byvoeg.\n"
-"U kan vir al u vriende gebruikerskodes skep of sommer een vir pa en ma ook. "
-"Wanneer u\n"
-"klaar is kliek op Klaar.\n"
-"\n"
-"Kliek op die Gevorderd knoppie indien u die verstek instruksiedop vir die "
-"gebruiker wil verander.\n"
-"Dit is bash by verstek."
-
-#: ../../help.pm_.c:41
-msgid ""
-"Listed above are the existing Linux partitions detected on your hard 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"
-"able to install enough software. If you want to store your data on a\n"
-"separate partition, you will also need to create a partition for \"/home\"\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 drive type\", \"hard 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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
-"\"second lowest SCSI ID\", etc."
-msgstr ""
-
-#: ../../help.pm_.c:72
-msgid ""
-"The Mandrake Linux 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."
-msgstr ""
-
-#: ../../help.pm_.c:77
-msgid ""
-"It is now time to specify which programs you wish to install on your\n"
-"system. There are thousands of packages available for Mandrake Linux, 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"
-"be asked to specify the CDs you currently have (in Expert mode only). Check\n"
-"the CD labels and highlight the boxes corresponding to the CDs you have\n"
-"available for installation. Click \"OK\" when you are ready to continue.\n"
-"\n"
-"Packages are sorted in groups corresponding to a particular use of your\n"
-"machine. The groups themselves are sorted into four sections:\n"
-"\n"
-" * \"Workstation\": if you plan to use your machine as a workstation, "
-"select\n"
-"one or more of the corresponding groups;\n"
-"\n"
-" * \"Development\": if your machine is to be used for programming, choose\n"
-"the desired group(s);\n"
-"\n"
-" * \"Server\": if your machine is intended to be a server, you will be able\n"
-"to select which of the most common services you wish to install on your\n"
-"machine;\n"
-"\n"
-" * \"Graphical Environment\": finally, this is where you will choose your\n"
-"preferred graphical environment. At least one must be selected if you want\n"
-"to have a graphical workstation!\n"
-"\n"
-"Moving the mouse cursor over a group name will display a short explanatory\n"
-"text about that group. If you deselect all groups when performing a regular\n"
-"installation (by opposition to an upgrade), a dialog will pop up proposing\n"
-"different options for a minimal installation:\n"
-"\n"
-" * \"With X\": install the fewer packages possible to have a working\n"
-"graphical desktop;\n"
-"\n"
-" * \"With basic documentation\": installs the base system plus basic\n"
-"utilities and their documentation. This installation is suitable for\n"
-"setting up a server;\n"
-"\n"
-" * \"Truly minimal install\": will install the strict minimum necessary to\n"
-"get a working Linux system, in command line only. This installation is\n"
-"about 65Mb large.\n"
-"\n"
-"You can check the \"Individual package selection\" box, which is useful if\n"
-"you are familiar with the packages being offered or if you want to have\n"
-"total control over what will be installed.\n"
-"\n"
-"If you started the installation in \"Upgrade\" mode, you can unselect all\n"
-"groups to avoid installing any new package. This is useful for repairing or\n"
-"updating an existing system."
-msgstr ""
-
-#: ../../help.pm_.c:128
-msgid ""
-"Finally, depending on whether or not you selected individual packages, you\n"
-"will be presented a tree containing all packages classified by groups and\n"
-"subgroups. While browsing the tree, you can select entire groups,\n"
-"subgroups, or individual packages.\n"
-"\n"
-"Whenever you select a package on the tree, a description appears on the\n"
-"right. When your selection is finished, click the \"Install\" button which\n"
-"will then launch the installation process. Depending on the speed of your\n"
-"hardware and the number of packages that need to be installed, it may take\n"
-"a while to complete the process. An estimate of the time it will take to\n"
-"install everything is displayed on the screen, to help you gauge if there\n"
-"is sufficient time to enjoy a cup of coffee.\n"
-"\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 Mandrake Linux, 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 Mandrake Linux 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"
-"default. !!\n"
-"\n"
-"The \"Automatic dependencies\" option simply disables the warning dialog\n"
-"which appears whenever the installer automatically selects a package. This\n"
-"occurs because it has determined that it needs to satisfy a dependency with\n"
-"another package in order to successfully complete the installation.\n"
-"\n"
-"The tiny floppy disk icon at the bottom of the list allows to load the\n"
-"package list chosen during a previous installation. Clicking on this icon\n"
-"will ask you to insert a floppy disk previously created at the end of\n"
-"another installation. See the second tip of last step on how to create such\n"
-"a floppy."
-msgstr ""
-
-#: ../../help.pm_.c:164
-msgid ""
-"You are now proposed to set up your Internet/network connection. If you\n"
-"wish to connect your computer to the Internet or to a local network, click\n"
-"\"OK\". The autodetection of network devices and modem will be launched. If\n"
-"this detection fails, uncheck the \"Use auto detection\" box next time. You\n"
-"may also choose not to configure the network, or do it later; in that case,\n"
-"simply click the \"Cancel\" button.\n"
-"\n"
-"Available connections are: traditional modem, ISDN modem, ADSL connection,\n"
-"cable modem, and finally a simple LAN connection (Ethernet).\n"
-"\n"
-"Here, we will not detail each configuration. Simply make sure that you have\n"
-"all the parameters from your Internet Service Provider or system\n"
-"administrator.\n"
-"\n"
-"You can consult the ``User Guide'' chapter about Internet connections for\n"
-"details about the configuration, or simply wait until your system is\n"
-"installed and use the program described there to configure your connection.\n"
-"\n"
-"If you wish to configure the network later after installation, or if you\n"
-"are finished configuring your network connection, click \"Cancel\"."
-msgstr ""
-
-#: ../../help.pm_.c:186
-#, fuzzy
-msgid ""
-"You may now choose which services you wish to start at boot time.\n"
-"\n"
-"Here are presented all the services available with the current\n"
-"installation. Review them carefully and uncheck those which are not always\n"
-"needed at boot time.\n"
-"\n"
-"You can get a short explanatory text about a service by selecting a\n"
-"specific service. However, if you are not sure whether a service is useful\n"
-"or not, 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 will probably not want to start any services which you do not\n"
-"need. Please remember that several services can be dangerous if they are\n"
-"enabled on a server. In general, select only the services you really need.\n"
-"!!"
-msgstr ""
-"U kan nou dienste kies wat by herlaaityd moet afskop.\n"
-"Wanneer u die muis oor 'n item beweeg, sal 'n klein ballon opspring\n"
-"wat die rol van die diens verduidelik.\n"
-"\n"
-"Wees versigtig met hierdie stap. Indien u beplan om dié rekenaar as 'n\n"
-"bediener te gebruik wil u nie dienste afskop wat u nie gaan gebruik nie."
-
-#: ../../help.pm_.c:203
-msgid ""
-"GNU/Linux manages time in GMT (Greenwich Mean Time) and translates it in\n"
-"local time according to the time zone you selected. It is however possible\n"
-"to deactivate this by deselecting \"Hardware clock set to GMT\" so that the\n"
-"hardware clock is the same as the system clock. This is useful when the\n"
-"machine is hosting another operating system like Windows.\n"
-"\n"
-"The \"Automatic time synchronization\" option will automatically regulate\n"
-"the clock by connecting to a remote time server on the Internet. In the\n"
-"list that is presented, choose a server located near you. Of course you\n"
-"must have a working Internet connection for this feature to work. It will\n"
-"actually install on your machine a time server which can be optionally used\n"
-"by other machines on your local network."
-msgstr ""
-
-#: ../../help.pm_.c:217
-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 Mandrake Linux rely. In this section, DrakX\n"
-"will try to configure X automatically.\n"
-"\n"
-"It is extremely rare for it to fail, unless the hardware is very old (or\n"
-"very new). If it succeeds, it will start X automatically with the best\n"
-"resolution possible, depending on the size of the monitor. A window will\n"
-"then appear and ask you if you can see it.\n"
-"\n"
-"If you are doing an \"Expert\" installation, you will enter the X\n"
-"configuration wizard. See the corresponding section of the manual for more\n"
-"information about this wizard.\n"
-"\n"
-"If you can see the message during the test, and answer \"Yes\", then DrakX\n"
-"will proceed to the next step. If you cannot see the message, it simply\n"
-"means that the configuration was wrong and the test will automatically end\n"
-"after 10 seconds, restoring the screen."
-msgstr ""
-
-#: ../../help.pm_.c:237
-msgid ""
-"The first time you try the X configuration, you may not be very satisfied\n"
-"with its display (screen is too small, shifted left or right...). Hence,\n"
-"even if X starts up correctly, DrakX then asks you if the configuration\n"
-"suits you. It will also propose to change it by displaying a list of valid\n"
-"modes it could find, asking you to select one.\n"
-"\n"
-"As a last resort, if you still cannot get X to work, choose \"Change\n"
-"graphics card\", select \"Unlisted card\", and when prompted on which\n"
-"server, choose \"FBDev\". This is a failsafe option which works with any\n"
-"modern graphics card. Then choose \"Test again\" to be sure."
-msgstr ""
-
-#: ../../help.pm_.c:249
-msgid ""
-"Finally, you will be asked whether you want to see the graphical interface\n"
-"at boot. Note this question will be asked even if you chose not to test the\n"
-"configuration. Obviously, you want to answer \"No\" if your machine is to\n"
-"act as a server, or if you were not successful in getting the display\n"
-"configured."
-msgstr ""
-
-#: ../../help.pm_.c:256
-msgid ""
-"The Mandrake LinuxCD-ROM has a built-in rescue mode. You can access it by\n"
-"booting from the CD-ROM, press the >>F1<< key at boot and type >>rescue<<\n"
-"at the prompt. But in case your computer cannot boot from the CD-ROM, you\n"
-"should come back to this step for help in at least two situations:\n"
-"\n"
-" * when installing the bootloader, DrakX will rewrite the boot sector (MBR)\n"
-"of your main disk (unless you are using another boot manager), to allow you\n"
-"to start up with either Windows or GNU/Linux (assuming you have Windows in\n"
-"your system). If you need to reinstall Windows, the Microsoft install\n"
-"process will rewrite the boot sector, and then you will not be able to\n"
-"start GNU/Linux!\n"
-"\n"
-" * if a problem arises and you cannot start up GNU/Linux from the hard "
-"disk,\n"
-"this floppy disk will be the only means of starting up GNU/Linux. It\n"
-"contains a fair number of system tools for restoring a system, which has\n"
-"crashed due to a power failure, an unfortunate typing error, a typo in a\n"
-"password, or any other reason.\n"
-"\n"
-"When you click on this step, you will be asked to enter a disk inside the\n"
-"drive. The floppy disk you will insert must be empty or contain data which\n"
-"you do not need. You will not have to format it since DrakX will rewrite\n"
-"the whole disk."
-msgstr ""
-
-#: ../../help.pm_.c:280
-msgid ""
-"At this point, you need to choose where you want to install the Mandrake\n"
-"Linux operating system on your hard drive. If your hard drive is empty or\n"
-"if an existing operating system is using all the available space, you will\n"
-"need to partition it. Basically, partitioning a hard drive consists of\n"
-"logically dividing it to create space to install your new Mandrake Linux\n"
-"system.\n"
-"\n"
-"Because the partitioning process' effects are usually irreversible,\n"
-"partitioning can be intimidating and stressful if you are an inexperienced\n"
-"user. Fortunately, there is a wizard which simplifies this process. Before\n"
-"beginning, please consult the manual and take your time.\n"
-"\n"
-"If you are running the installation in Expert mode, you will enter\n"
-"DiskDrake, the Mandrake Linux partitioning tool, which allows you to\n"
-"fine-tune your partitions. See the DiskDrake section in the ``User Guide''.\n"
-"From the installation interface, you can use the wizards as described here\n"
-"by clicking the dialog's \"Wizard\" button.\n"
-"\n"
-"If partitions have already been defined, either from a previous\n"
-"installation or from another partitioning tool, simply select those to\n"
-"install your Linux system.\n"
-"\n"
-"If partitions are not defined, you will need to create them using the\n"
-"wizard. Depending on your hard drive configuration, several options are\n"
-"available:\n"
-"\n"
-" * \"Use free space\": this option will simply lead to an automatic\n"
-"partitioning of your blank drive(s). You will not be prompted further;\n"
-"\n"
-" * \"Use existing partition\": the wizard has detected one or more existing\n"
-"Linux partitions on your hard drive. If you want to use them, choose this\n"
-"option;\n"
-"\n"
-" * \"Use the free space on the Windows; partition\": if MicrosoftWindows is\n"
-"installed on your hard drive and takes all the space available on it, you\n"
-"have to create free space for Linux data. To do so, you can delete your\n"
-"MicrosoftWindows partition and data (see ``Erase entire disk'' or ``Expert\n"
-"mode'' solutions) or resize your MicrosoftWindows partition. Resizing can\n"
-"be performed without the loss of any data, provided you previously\n"
-"defragment the Windows partition. Backing up your data won't hurt either..\n"
-"This solution is recommended if you want to use both Mandrake Linux and\n"
-"MicrosoftWindows on the same computer.\n"
-"\n"
-" Before choosing this option, please understand that after this "
-"procedure,\n"
-"the size of your MicrosoftWindows partition will be smaller than at the\n"
-"present time. You will have less free space under MicrosoftWindows to store\n"
-"your data or to install new software;\n"
-"\n"
-" * \"Erase entire disk\": if you want to delete all data and all partitions\n"
-"present on your hard drive and replace them with your new Mandrake Linux\n"
-"system, choose this option. Be careful with this solution because you will\n"
-"not be able to revert your choice after you confirm;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Remove Windows\": this will simply erase everything on the drive and\n"
-"begin fresh, partitioning everything from scratch. All data on your disk\n"
-"will be lost;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Expert mode\": choose this option if you want to manually partition\n"
-"your hard drive. Be careful it is a powerful but dangerous choice. You can\n"
-"very easily lose all your data. Hence, do not choose this unless you know\n"
-"what you are doing."
-msgstr ""
-
-#: ../../help.pm_.c:347
-msgid ""
-"There you are. Installation is now complete and your GNU/Linux system is\n"
-"ready to use. Just click \"OK\" to reboot the system. You can start\n"
-"GNU/Linux or Windows, whichever you prefer (if you are dual-booting), as\n"
-"soon as the computer has booted up again.\n"
-"\n"
-"The \"Advanced\" button (in Expert mode only) shows two more buttons to:\n"
-"\n"
-" * \"generate auto-install floppy\": to create an installation floppy disk\n"
-"which will automatically perform a whole installation without the help of\n"
-"an operator, similar to the installation you just configured.\n"
-"\n"
-" Note that two different options are available after clicking the button:\n"
-"\n"
-" * \"Replay\". This is a partially automated installation as the\n"
-"partitioning step (and only this one) remains interactive;\n"
-"\n"
-" * \"Automated\". Fully automated installation: the hard disk is "
-"completely\n"
-"rewritten, all data is lost.\n"
-"\n"
-" This feature is very handy when installing a great number of similar\n"
-"machines. See the Auto install section on our web site;\n"
-"\n"
-" * \"Save packages selection\"(*): saves the package selection as done\n"
-"previously. Then, when doing another installation, insert the floppy inside\n"
-"the drive and run the installation going to the help screen by pressing on\n"
-"the [F1] key, and by issuing >>linux defcfg=\"floppy\"<<.\n"
-"\n"
-"(*) You need a FAT-formatted floppy (to create one under GNU/Linux, type\n"
-"\"mformat a:\")"
-msgstr ""
-
-#: ../../help.pm_.c:378
-msgid ""
-"Any partitions that have been newly defined must be formatted for use\n"
-"(formatting means creating a filesystem).\n"
-"\n"
-"At this time, you may wish to reformat some already existing partitions to\n"
-"erase any data they contain. If you wish to do that, please select those\n"
-"partitions as well.\n"
-"\n"
-"Please note that it is 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\n"
-"reformat partitions containing data that you wish to keep (typically\n"
-"\"/home\").\n"
-"\n"
-"Please be careful when selecting partitions. After formatting, all data on\n"
-"the selected partitions will be deleted and you will not be able to recover\n"
-"any of it.\n"
-"\n"
-"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"
-"Mandrake Linux operating system installation.\n"
-"\n"
-"Click on \"Advanced\" if you wish to select partitions that will be checked\n"
-"for bad blocks on the disk."
-msgstr ""
-
-#: ../../help.pm_.c:404
-msgid ""
-"Your new Mandrake Linux operating system is currently being installed.\n"
-"Depending on the number of packages you will be installing and the speed of\n"
-"your computer, this operation could take from a few minutes to a\n"
-"significant amount of time.\n"
-"\n"
-"Please be patient."
-msgstr ""
-
-#: ../../help.pm_.c:412
-msgid ""
-"At the time you are installing Mandrake Linux, it is likely that some\n"
-"packages have been updated since the initial release. Some bugs may have\n"
-"been fixed, and security issues solved. To allow you to benefit from these\n"
-"updates, you are now proposed to download them from the Internet. Choose\n"
-"\"Yes\" if you have a working Internet connection, or \"No\" if you prefer\n"
-"to install updated packages later.\n"
-"\n"
-"Choosing \"Yes\" displays a list of places from which updates can be\n"
-"retrieved. Choose the one nearest you. Then a package-selection tree\n"
-"appears: review the selection, and press \"Install\" to retrieve and\n"
-"install the selected package(s), or \"Cancel\" to abort."
-msgstr ""
-
-#: ../../help.pm_.c:425
-#, fuzzy
-msgid ""
-"Before continuing, you should read carefully the terms of the license. It\n"
-"covers the whole Mandrake Linux 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."
-msgstr ""
-"Voordat u voortgaan, lees asb die lisensieterme noukeurig deur. Dit dek\n"
-"die hele Mandrake Lnux distirbusie, and indien u nie saamstem met al die\n"
-"terme daarin bevat nie, kliek om die Weier knoppie. Dit sal onmiddelik die\n"
-"installasie stop sit. Om met die installasie voort te gaan kliek op die "
-"Aanvaar\n"
-"knoppie."
-
-#: ../../help.pm_.c:432
-msgid ""
-"At this point, it is time to choose the security level desired for the\n"
-"machine. As a rule of thumb, the more exposed the machine is, and the more\n"
-"the data stored in it is crucial, the higher the security level should be.\n"
-"However, a higher security level is generally obtained at the expense of\n"
-"easiness of use. Refer to the \"msec\" chapter of the ``Reference Manual''\n"
-"to get more information about the meaning of these levels.\n"
-"\n"
-"If you do not know what to choose, keep the default option."
-msgstr ""
-
-#: ../../help.pm_.c:442
-msgid ""
-"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandrake Linux 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"
-"partitions must be defined.\n"
-"\n"
-"To create partitions, you must first select a hard 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"
-"\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"
-"\n"
-" * \"More\": gives access to additional features:\n"
-"\n"
-" * \"Save partition table\": saves the partition table to a floppy. "
-"Useful\n"
-"for later partition-table recovery if necessary. It is strongly recommended\n"
-"to perform this step;\n"
-"\n"
-" * \"Restore partition table\": allows to restore a previously saved\n"
-"partition table from floppy disk;\n"
-"\n"
-" * \"Rescue partition table\": if your partition table is damaged, you "
-"can\n"
-"try to recover it using this option. Please be careful and remember that it\n"
-"can fail;\n"
-"\n"
-" * \"Reload partition table\": discards all changes and loads your "
-"initial\n"
-"partition table;\n"
-"\n"
-" * \"Removable media automounting\": unchecking this option will force "
-"users\n"
-"to manually mount and unmount removable medias such as floppies and\n"
-"CD-ROMs.\n"
-"\n"
-" * \"Wizard\": 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 knowledge of\n"
-"partitioning;\n"
-"\n"
-" * \"Undo\": use this option to cancel your changes;\n"
-"\n"
-" * \"Toggle to normal/expert mode\": allows additional actions on "
-"partitions\n"
-"(type, options, format) and gives more information;\n"
-"\n"
-" * \"Done\": when you are finished partitioning your hard 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"
-"partitions using [Tab] and [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"
-"\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_.c:513
-msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
-"Please choose the one you want to resize in order to install your new\n"
-"Mandrake Linux 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"
-"\"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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard 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"
-"disk or partition is called \"C:\")."
-msgstr ""
-
-#: ../../help.pm_.c:544
-msgid "Please be patient. This operation can take several minutes."
-msgstr ""
-
-#: ../../help.pm_.c:547
-#, fuzzy
-msgid ""
-"DrakX now needs to know if you want to perform a default (\"Recommended\")\n"
-"installation or if you want to have greater control (\"Expert\"). You can\n"
-"also choose to do a new install or an upgrade of an existing Mandrake Linux\n"
-"system:\n"
-"\n"
-" * \"Install\": completely wipes out the old system. In fact, depending on\n"
-"what currently holds your machine, you will be able to keep some old (Linux\n"
-"or other) partitions unchanged;\n"
-"\n"
-" * \"Upgrade\": this installation class allows to simply update the "
-"packages\n"
-"currently installed on your Mandrake Linux system. It keeps the current\n"
-"partitions of your hard drives as well as user configurations. All other\n"
-"configuration steps remain available with respect to plain installation;\n"
-"\n"
-" * \"Upgrade Packages Only\": this brand new class allows to upgrade an\n"
-"existing Mandrake Linux system while keeping all system configurations\n"
-"unchanged. Adding new packages to the current installation is also\n"
-"possible.\n"
-"\n"
-"Upgrades should work fine for Mandrake Linux systems starting from \"8.1\"\n"
-"release.\n"
-"\n"
-"Depending on your knowledge of GNU/Linux, select one of the following\n"
-"choices:\n"
-"\n"
-" * Recommended: choose this if you have never installed a GNU/Linux\n"
-"operating system. The installation will be very easy and you will only be\n"
-"asked a few questions;\n"
-"\n"
-" * Expert: if you have a good knowledge of GNU/Linux, you can choose this\n"
-"installation class. The expert installation will allow you to perform a\n"
-"highly-customized installation. Answering some of the questions can be\n"
-"difficult if you do not have a good knowledge of GNU/Linux, so do not\n"
-"choose this unless you know what you are doing."
-msgstr "Kies asb. "
-
-#: ../../help.pm_.c:583
-msgid ""
-"Normally, DrakX selects the right keyboard for you (depending on the\n"
-"language you have chosen) and you won't even see this step. However, you\n"
-"might not have a keyboard that corresponds exactly to your language: for\n"
-"example, if you are an English speaking Swiss person, you may still want\n"
-"your keyboard to be a Swiss keyboard. Or if you speak English but are\n"
-"located in Quebec, you may find yourself in the same situation. In both\n"
-"cases, you will have to go back to this installation step and select an\n"
-"appropriate keyboard from the list.\n"
-"\n"
-"Click on the \"More\" button to be presented with the complete list of\n"
-"supported keyboards."
-msgstr ""
-
-#: ../../help.pm_.c:596
-msgid ""
-"Please choose your preferred language for installation and system usage.\n"
-"\n"
-"Clicking on the \"Advanced\" button will allow you to select other\n"
-"languages to be installed on your workstation. Selecting other languages\n"
-"will install the language-specific files for system documentation and\n"
-"applications. For example, if you will host users from Spain on your\n"
-"machine, select English as the main language in the tree view and in the\n"
-"Advanced section click on the box corresponding to \"Spanish|Spain\".\n"
-"\n"
-"Note that multiple languages may be installed. Once you have selected any\n"
-"additional locales, click the \"OK\" button to continue."
-msgstr ""
-
-#: ../../help.pm_.c:609
-msgid ""
-"DrakX generally detects the number of buttons your mouse has. If not, it\n"
-"assumes you have a two-button mouse and will set it up for third-button\n"
-"emulation. DrakX will automatically know whether it is a PS/2, serial or\n"
-"USB mouse.\n"
-"\n"
-"If you wish to specify a different type of mouse select the appropriate\n"
-"type from the provided list.\n"
-"\n"
-"If you choose a mouse other than the default, a test screen will be\n"
-"displayed. Use the buttons and wheel to verify that the settings are\n"
-"correct. If the mouse is not working well, press the space bar or [Return]\n"
-"to \"Cancel\" and choose again."
-msgstr ""
-
-#: ../../help.pm_.c:623
-msgid ""
-"Please select the correct port. For example, the \"COM1\" port under\n"
-"Windows is named \"ttyS0\" under GNU/Linux."
-msgstr ""
-"Kies asb. die korrekte poort. Onthou dat COM1 onder MS Windows \n"
-"ttyS0 onder GNU/Linux is."
-
-#: ../../help.pm_.c:627
-msgid ""
-"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 choose\n"
-"not to enter a password, but we strongly advise you against this if only\n"
-"for one reason: do not think that because you booted GNU/Linux that your\n"
-"other operating systems are safe from mistakes. Since \"root\" can overcome\n"
-"all limitations and unintentionally erase all data on partitions by\n"
-"carelessly accessing the partitions themselves, it is important for it to\n"
-"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."
-msgstr ""
-
-#: ../../help.pm_.c:663
-msgid ""
-"LILO and grub are GNU/Linux bootloaders. This stage, normally, is totally\n"
-"automated. In fact, DrakX analyzes the disk boot sector and acts\n"
-"accordingly, depending on what it finds here:\n"
-"\n"
-" * if a Windows boot sector is found, it will replace it with a grub/LILO\n"
-"boot sector. Hence, you will be able to load either GNU/Linux or another\n"
-"OS;\n"
-"\n"
-" * if a grub or LILO boot sector is found, it will replace it with a new\n"
-"one.\n"
-"\n"
-"If in doubt, DrakX will display a dialog with various options.\n"
-"\n"
-" * \"Bootloader to use\": you have three choices:\n"
-"\n"
-" * \"GRUB\": if you prefer grub (text menu).\n"
-"\n"
-" * \"LILO with graphical menu\": if you prefer LILO with its graphical\n"
-"interface.\n"
-"\n"
-" * \"LILO with text menu\": if you prefer LILO with its text menu "
-"interface.\n"
-"\n"
-" * \"Boot device\": in most cases, you will not change the default\n"
-"(\"/dev/hda\"), but if you prefer, the bootloader can be installed on the\n"
-"second hard drive (\"/dev/hdb\"), or even on a floppy disk (\"/dev/fd0\");\n"
-"\n"
-" * \"Delay before booting the default image\": when rebooting the computer,\n"
-"this is the delay granted to the user to choose in the bootloader menu,\n"
-"another boot entry than the default one.\n"
-"\n"
-"!! Beware that if you choose not to install a bootloader (by selecting\n"
-"\"Cancel\" here), you must ensure that you have a way to boot your Mandrake\n"
-"Linux system! Also, be sure you know what you do before changing any of the\n"
-"options. !!\n"
-"\n"
-"Clicking the \"Advanced\" button in this dialog will offer many advanced\n"
-"options, which are reserved to the expert user.\n"
-"\n"
-"After you have configured the general bootloader parameters, the list of\n"
-"boot options which will be available at boot time will be displayed.\n"
-"\n"
-"If there is another operating system installed on your machine, it will\n"
-"automatically be added to the boot menu. Here, you can choose to fine-tune\n"
-"the existing options. Select an entry and click \"Modify\" to modify or\n"
-"remove it; \"Add\" creates a new entry; and \"Done\" goes on to the next\n"
-"installation step."
-msgstr ""
-
-#: ../../help.pm_.c:711
-msgid ""
-"LILO (the LInux LOader) and grub are bootloaders: they are able to boot\n"
-"either GNU/Linux or any other operating system present on your computer.\n"
-"Normally, these other operating systems are correctly detected and\n"
-"installed. If this is not the case, you can add an entry by hand in this\n"
-"screen. Be careful to choose the correct parameters.\n"
-"\n"
-"You may also not want to give access to these other operating systems to\n"
-"anyone. In which case, you can delete the corresponding entries. But then,\n"
-"you will need a boot disk in order to boot those other operating systems!"
-msgstr ""
-"LILO (Die LInux LOader) en Grub is herlaaistelsels. Beide kan GNU/Linux of "
-"enige ander\n"
-"bedryfstelsel wat op u rekenar teenwoordig is, laai. Gewoonlik word hierdie\n"
-"beryfstelsels reg bespeur en bygevoeg. Indien nie, kan u 'n inskrywing maak\n"
-"op hierdie skerm. Maak seker u kies die korrekte paramters.\n"
-"\n"
-"\n"
-"U mag dalk toegang tot ander bedryfstelsels beperk, in welke geval u die "
-"nodige\n"
-"inskrywings kan uitvee. Maar dan het u die nodige herlaaiskywe nodig om die\n"
-"betrokke bedryfstelsels te laai."
-
-#: ../../help.pm_.c:722
-msgid ""
-"You must indicate where you wish to place the information required to boot\n"
-"to GNU/Linux.\n"
-"\n"
-"Unless you know exactly what you are doing, choose \"First sector of drive\n"
-"(MBR)\"."
-msgstr ""
-"U moet aandui waar u die informasie om Linux te herlaai, wil plaas.\n"
-"\n"
-"\n"
-"Behalwe as u werklik weet wat u doen moet u \"Eerste sektor van skyf (MBR)\" "
-"kies."
-
-#: ../../help.pm_.c:729
-msgid ""
-"Here, we select a printing system for your computer. Other OSs may offer\n"
-"you one, but Mandrake Linux offers three.\n"
-"\n"
-" * \"pdq\" which means ``print, don't queue'', is the choice if you have a\n"
-"direct connection to your printer and you want to be able to panic out of\n"
-"printer jams, and you do not have networked printers. It will handle only\n"
-"very simple network cases and is somewhat slow for networks. Pick \"pdq\"\n"
-"if this is your maiden voyage to GNU/Linux. You can change your choices\n"
-"after installation by running PrinterDrake from the Mandrake Control Center\n"
-"and clicking the expert button.\n"
-"\n"
-" * \"CUPS\"``Common Unix Printing System'', is excellent at printing to "
-"your\n"
-"local printer and also halfway-around the planet. It is simple and can act\n"
-"as a server or a client for the ancient \"lpd\" printing system. Hence, it\n"
-"is compatible with the systems that went before. It can do many tricks, but\n"
-"the basic setup is almost as easy as \"pdq\". If you need this to emulate\n"
-"an \"lpd\" server, you must turn on the \"cups-lpd\" daemon. It has\n"
-"graphical front-ends for printing or choosing printer options.\n"
-"\n"
-" * \"lprNG\"``line printer daemon New Generation''. This system can do\n"
-"approximately the same things the others can do, but it will print to\n"
-"printers mounted on a Novell Network, because it supports the IPX protocol,\n"
-"and it can print directly to shell commands. If you have need of Novell or\n"
-"printing to commands without using a separate pipe construct, use lprNG.\n"
-"Otherwise, CUPS is preferable as it is simpler and better at working over\n"
-"networks."
-msgstr ""
-
-#: ../../help.pm_.c:757
-#, fuzzy
-msgid ""
-"DrakX now detects any IDE device present in your computer. It will also\n"
-"scan for one or more PCI SCSI card(s) on your system. If a SCSI card is\n"
-"found, DrakX will automatically install the appropriate driver.\n"
-"\n"
-"Because hardware detection does not always detect a piece of hardware,\n"
-"DrakX will ask you to confirm if a PCI SCSI card is present. Click \"Yes\"\n"
-"if you know that there is a SCSI card installed in your machine. You will\n"
-"be presented a list of SCSI cards to choose from. Click \"No\" if you have\n"
-"no SCSI hardware. If you are unsure, you can check the list of hardware\n"
-"detected in your machine by selecting \"See hardware info\" and clicking\n"
-"\"OK\". Examine the list of hardware and then click on the \"OK\" button to\n"
-"return to the SCSI interface question.\n"
-"\n"
-"If you have to manually specify your adapter, DrakX will ask if you want to\n"
-"specify options for it. You should allow DrakX to probe the hardware for\n"
-"the card-specific options which the hardware needs to initialize. This\n"
-"usually works well.\n"
-"\n"
-"If DrakX is not able to probe for the options which need to be passed, you\n"
-"will need to provide options to the driver manually. Please review the\n"
-"``User Guide'' (chapter 3, in the ``Collecting Information on Your\n"
-"Hardware'' section) for hints on retrieving the parameters required from\n"
-"hardware documentation, from the manufacturer's web site (if you have\n"
-"Internet access) or from MicrosoftWindows (if you used this hardware with\n"
-"Windows on your system)."
-msgstr ""
-"DrakX sal probeer om vir PCI SCSI-kaarte te soek.\n"
-"Indien DrakX 'n SCSI-kaart bespeur en weet watter drywer omte gebruik sal "
-"dit outomaties installeer word.\n"
-"\n"
-"Indien u nie oor 'n SCSI-kaart, beskik nie of oor 'n ISA SCSI-kaart of 'n "
-"PCI SCSI-kaart beskik wat DrakX nie kan herken nie, sal u gevra word of daar "
-"enige SCSI-kaarte in diestelsel is. Indien daar geen is nie kliek op 'Nee', "
-"andersins op 'Ja'. U sal dan uit'n drywerlys kan kies.\n"
-"\n"
-"\n"
-"Indien u self 'n drywer moes spesifiseer, sal DrakX u ook vra vir enige "
-"spesifiekeopsies.\n"
-"U kan egter DrakX toelaat om self die hardeware te ondervra. DIt werk "
-"gewoonlik die beste.\n"
-"\n"
-"Lees die installasie inligting hoe om hierdie tipe inligting m.b.v. die "
-"Windows-bedryfstelsel te bekom.\n"
-"U kan dit ook vanaf die internet onttrek indien u sulke toegang het."
-
-#: ../../help.pm_.c:784
-msgid ""
-"You can add additional entries for yaboot, either for other operating\n"
-"systems, alternate kernels, or for an emergency boot image.\n"
-"\n"
-"For other OSs, the entry consists only of a label and the \"root\"\n"
-"partition.\n"
-"\n"
-"For Linux, there are a few possible options:\n"
-"\n"
-" * Label: this is simply the name you will have to type at the yaboot "
-"prompt\n"
-"to select this boot option;\n"
-"\n"
-" * Image: this would be the name of the kernel to boot. Typically, vmlinux\n"
-"or a variation of vmlinux with an extension;\n"
-"\n"
-" * Root: the \"root\" device or ``/'' for your Linux installation;\n"
-"\n"
-" * Append: on Apple hardware, the kernel append option is used quite often\n"
-"to assist in initializing video hardware, or to enable keyboard mouse\n"
-"button emulation for the often lacking 2nd and 3rd mouse buttons on a stock\n"
-"Apple mouse. The following are some examples:\n"
-"\n"
-" video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111 "
-"hda=autotune\n"
-"\n"
-" video=atyfb:vmode:12,cmode:24 adb_buttons=103,111\n"
-"\n"
-" * Initrd: this option can be used either to load initial modules, before\n"
-"the boot device is available, or to load a ramdisk image for an emergency\n"
-"boot situation;\n"
-"\n"
-" * Initrd-size: the default ramdisk size is generally 4,096 bytes. If you\n"
-"need to allocate a large ramdisk, this option can be used;\n"
-"\n"
-" * Read-write: normally the \"root\" partition is initially brought up in\n"
-"read-only, to allow a file system check before the system becomes ``live''.\n"
-"Here, you can override this option;\n"
-"\n"
-" * NoVideo: should the Apple video hardware prove to be exceptionally\n"
-"problematic, you can select this option to boot in ``novideo'' mode, with\n"
-"native frame buffer support;\n"
-"\n"
-" * Default: selects this entry as being the default Linux selection,\n"
-"selectable by just pressing ENTER at the yaboot prompt. This entry will\n"
-"also be highlighted with a ``*'', if you press [Tab] to see the boot\n"
-"selections."
-msgstr ""
-
-#: ../../help.pm_.c:830
-msgid ""
-"Yaboot is a bootloader for NewWorld MacIntosh hardware. It is able to boot\n"
-"either GNU/Linux, MacOS or MacOSX if present on your computer. Normally,\n"
-"these other operating systems are correctly detected and installed. If this\n"
-"is not the case, you can add an entry by hand in this screen. Be careful to\n"
-"choose the correct parameters.\n"
-"\n"
-"Yaboot's main options are:\n"
-"\n"
-" * Init Message: a simple text message displayed before the boot prompt;\n"
-"\n"
-" * Boot Device: indicates where you want to place the information required\n"
-"to boot to GNU/Linux. Generally, you set up a bootstrap partition earlier\n"
-"to hold this information;\n"
-"\n"
-" * Open Firmware Delay: unlike LILO, there are two delays available with\n"
-"yaboot. The first delay is measured in seconds and at this point, you can\n"
-"choose between CD, OF boot, MacOS or Linux;\n"
-"\n"
-" * Kernel Boot Timeout: this timeout is similar to the LILO boot delay.\n"
-"After selecting Linux, you will have this delay in 0.1 second before your\n"
-"default kernel description is selected;\n"
-"\n"
-" * Enable CD Boot?: checking this option allows you to choose ``C'' for CD\n"
-"at the first boot prompt;\n"
-"\n"
-" * Enable OF Boot?: checking this option allows you to choose ``N'' for "
-"Open\n"
-"Firmware at the first boot prompt;\n"
-"\n"
-" * Default OS: you can select which OS will boot by default when the Open\n"
-"Firmware Delay expires."
-msgstr ""
-
-#: ../../help.pm_.c:862
-msgid ""
-"Here are presented various parameters concerning your machine. Depending on\n"
-"your installed hardware, you may or not, see the following entries:\n"
-"\n"
-" * \"Mouse\": check the current mouse configuration and click on the button\n"
-"to change it if necessary;\n"
-"\n"
-" * \"Keyboard\": check the current keyboard map configuration and click on\n"
-"the button to change that if necessary;\n"
-"\n"
-" * \"Timezone\": DrakX, by default, guesses your time zone from the "
-"language\n"
-"you have chosen. But here again, as for the choice of a keyboard, you may\n"
-"not be in the country for which the chosen language should correspond.\n"
-"Hence, you may need to click on the \"Timezone\" button in order to\n"
-"configure the clock according to the time zone you are in;\n"
-"\n"
-" * \"Printer\": clicking on the \"No Printer\" button will open the printer\n"
-"configuration wizard;\n"
-"\n"
-" * \"Sound card\": if a sound card is detected on your system, it is\n"
-"displayed here. No modification possible at installation time;\n"
-"\n"
-" * \"TV card\": if a TV card is detected on your system, it is displayed\n"
-"here. No modification possible at installation time;\n"
-"\n"
-" * \"ISDN card\": if an ISDN card is detected on your system, it is\n"
-"displayed here. You can click on the button to change the parameters\n"
-"associated with it."
-msgstr ""
-
-#: ../../help.pm_.c:891
-msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandrake Linux partition. Be careful, all data present on it will be lost\n"
-"and will not be recoverable!"
-msgstr ""
-
-#: ../../help.pm_.c:896
-msgid ""
-"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"
-"any Windows data.\n"
-"\n"
-"Click on \"Cancel\" to cancel this operation without losing any data and\n"
-"partitions present on this hard drive."
-msgstr ""
-
-#: ../../install2.pm_.c:113
-#, c-format
-msgid ""
-"Can't 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 ""
-
-#: ../../install2.pm_.c:169
-#, c-format
-msgid "You must also format %s"
-msgstr ""
-
-#: ../../install_any.pm_.c:411
-#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They don't have any known security\n"
-"issues, but some new could be found. In that case, you must make sure to "
-"upgrade\n"
-"as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
-msgstr ""
-
-#: ../../install_any.pm_.c:447
-msgid "Can't use broadcast with no NIS domain"
-msgstr "Kan nie uitsaau sonder 'n NIS-domein nie"
-
-#: ../../install_any.pm_.c:793
-#, c-format
-msgid "Insert a FAT formatted floppy in drive %s"
-msgstr "Sit 'n FAT-geformatteerde skyf in aandrywer %s"
-
-#: ../../install_any.pm_.c:797
-msgid "This floppy is not FAT formatted"
-msgstr "Hierdie floppie is nie in FAT-formaat nie"
-
-#: ../../install_any.pm_.c:809
-msgid ""
-"To use this saved packages selection, boot installation with ``linux "
-"defcfg=floppy''"
-msgstr ""
-"Om hierdie gestoorde pakketkeuse te gebruik, herlaai die installasie met "
-"\"linux defcfg=floppy\""
-
-#: ../../install_any.pm_.c:831 ../../partition_table.pm_.c:763
-#, c-format
-msgid "Error reading file %s"
-msgstr "Fout met die les van lźer %s"
-
-#: ../../install_interactive.pm_.c:23
-#, c-format
-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"
-
-#: ../../install_interactive.pm_.c:58
-msgid ""
-"You must have a root partition.\n"
-"For this, create a partition (or click on an existing one).\n"
-"Then choose action ``Mount point'' and set it to `/'"
-msgstr ""
-"U moet 'n wortelpartisie definieer.\n"
-"Skep 'n partisie of kliek op 'n bestaande een.\n"
-"Kies dan Hegpunt en stel dit dan '/'."
-
-#: ../../install_interactive.pm_.c:63
-msgid "You must have a swap partition"
-msgstr "U moet oor 'n ruilpartisie beskik"
-
-#: ../../install_interactive.pm_.c:64
-msgid ""
-"You don't have a swap partition\n"
-"\n"
-"Continue anyway?"
-msgstr ""
-"U het nie 'n ruilpartisie nie\n"
-"\n"
-"Wil u steeds voortgaan?"
-
-#: ../../install_interactive.pm_.c:67 ../../install_steps.pm_.c:163
-msgid "You must have a FAT partition mounted in /boot/efi"
-msgstr "U moet oor 'n FAT partisie wat as /boot/efi geheg is, beskik"
-
-#: ../../install_interactive.pm_.c:90
-msgid "Use free space"
-msgstr "Gebruik beskikbare spasie"
-
-#: ../../install_interactive.pm_.c:92
-msgid "Not enough free space to allocate new partitions"
-msgstr "Nie genoeg spasie beskikbaar om nuwe partisies toe te ken nie"
-
-#: ../../install_interactive.pm_.c:100
-msgid "Use existing partition"
-msgstr "Gebruik bestaande partisies"
-
-#: ../../install_interactive.pm_.c:102
-msgid "There is no existing partition to use"
-msgstr "Daar is geen bestaande partisies om te gebruik nie"
-
-#: ../../install_interactive.pm_.c:109
-msgid "Use the Windows partition for loopback"
-msgstr "Gebruik vir die Windows-partisie vir teruglus"
-
-#: ../../install_interactive.pm_.c:112
-msgid "Which partition do you want to use for Linux4Win?"
-msgstr "Watter partisie wil u vir Linux4Win gebruik?"
-
-#: ../../install_interactive.pm_.c:114
-msgid "Choose the sizes"
-msgstr "Kies die groottes"
-
-#: ../../install_interactive.pm_.c:115
-msgid "Root partition size in MB: "
-msgstr "Basispartisiegrootte in MB:"
-
-#: ../../install_interactive.pm_.c:116
-msgid "Swap partition size in MB: "
-msgstr "Ruilpartisiegrootte in MB: "
-
-#: ../../install_interactive.pm_.c:125
-msgid "Use the free space on the Windows partition"
-msgstr "Gebruik die beskikbare spasie op die Windowspartisie"
-
-#: ../../install_interactive.pm_.c:128
-msgid "Which partition do you want to resize?"
-msgstr "Watter partisie se grootte wil u verander?"
-
-#: ../../install_interactive.pm_.c:130
-msgid "Computing Windows filesystem bounds"
-msgstr "Windowslźerstelselgrense word bereken"
-
-#: ../../install_interactive.pm_.c:133
-#, c-format
-msgid ""
-"The FAT resizer is unable to handle your partition, \n"
-"the following error occured: %s"
-msgstr ""
-"Die FAT-verstellingsprogram kan nie u partisie hanteer nie.\n"
-"Fout: %s"
-
-#: ../../install_interactive.pm_.c:136
-msgid "Your Windows partition is too fragmented, please run ``defrag'' first"
-msgstr "U Windows-partisie is te gefragmenteer. Loop eers 'defrag' asb."
-
-#: ../../install_interactive.pm_.c:137
-#, fuzzy
-msgid ""
-"WARNING!\n"
-"\n"
-"DrakX will now resize your Windows partition. Be careful:\n"
-"this operation is dangerous. If you have not already done\n"
-"so, you should first exit the installation, run scandisk\n"
-"under Windows (and optionally run defrag), then restart the\n"
-"installation. You should also backup your data.\n"
-"When sure, press Ok."
-msgstr ""
-"WAARSKUWING\n"
-"\n"
-"DrakX moet nou u WIndowspartisie se grootte verander. Hierdie operasie\n"
-"IS GEVAARLIK. Indien u nie alreeds so gemaak het nie, moet u hierdie "
-"installasie\n"
-"verlaat, scandisk onder Windows loop en dalk ook defrag. Dan kan u terugkeer "
-"na\n"
-"hierdie installasie. Rugstuen ook u data. Insien u skeer is van u saak, kies "
-"OK."
-
-#: ../../install_interactive.pm_.c:147
-msgid "Which size do you want to keep for windows on"
-msgstr "Watter grootte wil u vir Windows behou?"
-
-#: ../../install_interactive.pm_.c:148
-#, c-format
-msgid "partition %s"
-msgstr "partisie %s"
-
-#: ../../install_interactive.pm_.c:155
-#, c-format
-msgid "FAT resizing failed: %s"
-msgstr "FAT-grootteverandering het gefaal: %s"
-
-#: ../../install_interactive.pm_.c:170
-msgid ""
-"There is no FAT partitions to resize or to use as loopback (or not enough "
-"space left)"
-msgstr ""
-"Daar is geen FAT partisies om te verander of om as teruglus (nie genoeg "
-"spasie nie) te gebruik nie"
-
-#: ../../install_interactive.pm_.c:176
-msgid "Erase entire disk"
-msgstr "Wis hele skyf"
-
-#: ../../install_interactive.pm_.c:176
-msgid "Remove Windows(TM)"
-msgstr "Verwyder Windows(TM)"
-
-#: ../../install_interactive.pm_.c:179
-msgid "You have more than one hard drive, which one do you install linux on?"
-msgstr "U het meer as een hardeskyf, waar wil u Linux installeer?"
-
-#: ../../install_interactive.pm_.c:182
-#, c-format
-msgid "ALL existing partitions and their data will be lost on drive %s"
-msgstr "Alle bestaande partisies en data sal uitgewis word op skyf %s"
-
-#: ../../install_interactive.pm_.c:190
-msgid "Custom disk partitioning"
-msgstr "Gespesialiseerde skyfpartisionering"
-
-#: ../../install_interactive.pm_.c:194
-msgid "Use fdisk"
-msgstr "Gebruik fdisk"
-
-#: ../../install_interactive.pm_.c:197
-#, c-format
-msgid ""
-"You can now partition %s.\n"
-"When you are done, don't forget to save using `w'"
-msgstr ""
-"U het nou partisie %s partisioneer.\n"
-"Wanneer u klaar is, stoor u veranderinge met 'w'."
-
-#: ../../install_interactive.pm_.c:226
-msgid "You don't have enough free space on your Windows partition"
-msgstr "Die Windowspartisie beskik nie oor die nodige spasie nie."
-
-#: ../../install_interactive.pm_.c:242
-msgid "I can't find any room for installing"
-msgstr "Ek kon geen plek vir installasie vind nie."
-
-#: ../../install_interactive.pm_.c:246
-msgid "The DrakX Partitioning wizard found the following solutions:"
-msgstr "Die DrakX partisioneringsassistent het die volgende oplossings:"
-
-#: ../../install_interactive.pm_.c:251
-#, c-format
-msgid "Partitioning failed: %s"
-msgstr "Partisionering het misluk: %s"
-
-#: ../../install_interactive.pm_.c:261
-msgid "Bringing up the network"
-msgstr "Netwerk op pad op"
-
-#: ../../install_interactive.pm_.c:266
-msgid "Bringing down the network"
-msgstr "Netwerk op pad af"
-
-#: ../../install_steps.pm_.c:76
-msgid ""
-"An error occurred, but I don't 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"
-"nie. Gaan op u eie risiko voort."
-
-#: ../../install_steps.pm_.c:205
-#, c-format
-msgid "Duplicate mount point %s"
-msgstr "Duplikaat hegpunt %s"
-
-#: ../../install_steps.pm_.c:388
-msgid ""
-"Some important packages didn't get installed properly.\n"
-"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl Mandrake/RPMS/*.rpm"
-"\"\n"
-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 Mandrake/RPMS/*."
-"rpm\"\n"
-
-#: ../../install_steps.pm_.c:458
-#, c-format
-msgid "Welcome to %s"
-msgstr "Welkom by %s"
-
-#: ../../install_steps.pm_.c:513 ../../install_steps.pm_.c:755
-msgid "No floppy drive available"
-msgstr "Geen sagteskyaandrywer beskikbaar nie"
-
-#: ../../install_steps_auto_install.pm_.c:76
-#: ../../install_steps_stdio.pm_.c:22
-#, c-format
-msgid "Entering step `%s'\n"
-msgstr "Gaan stap '%s' binne\n"
-
-#: ../../install_steps_gtk.pm_.c:148
-msgid ""
-"Your system is low on resource. You may have some problem installing\n"
-"Mandrake Linux. 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 ondervind met "
-"die installering\n"
-"van Mandrake Linux. In so 'n geval probeer eerder die teksinstallasie. "
-"Daarvoor moet u\n"
-"'F1' druk wanneer u vanaf die CDROM herlaai en dan 'text' op die "
-"instruksielyn intik."
-
-#: ../../install_steps_gtk.pm_.c:159 ../../install_steps_interactive.pm_.c:224
-msgid "Install Class"
-msgstr "Installasieklas"
-
-#: ../../install_steps_gtk.pm_.c:162
-#, fuzzy
-msgid "Please choose one of the following classes of installation:"
-msgstr "Kies asb. een van die volgende installasieklasse:"
-
-#: ../../install_steps_gtk.pm_.c:228
-#, c-format
-msgid ""
-"The total size for the groups you have selected is approximately %d MB.\n"
-msgstr "Die totale grootte vir die gekose groepe is naastenby %d MB.\n"
-
-#: ../../install_steps_gtk.pm_.c:230
-#, c-format
-msgid ""
-"If you wish to install less than this size,\n"
-"select the percentage of packages that you want to install.\n"
-"\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of 100%% will install all selected packages."
-msgstr ""
-"Indien u verkies om minder as hierdie grootte te installeer, kies dan 'n\n"
-"persentasie van pakkette wat u wil installeer.\n"
-"\n"
-"'n Lae persentasie sal net die belangrikste pakkette installeer;\n"
-"'n persentasie van 100%% sal alles gekose pakkette installeer."
-
-#: ../../install_steps_gtk.pm_.c:235
-#, c-format
-msgid ""
-"You have space on your disk for only %d%% of these packages.\n"
-"\n"
-"If you wish to install less than this,\n"
-"select the percentage of packages that you want to install.\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of %d%% will install as many packages as possible."
-msgstr ""
-"U het net spasie op u hardeskyf vir %d%% van hierdie pakkette.\n"
-"\n"
-"Indien u minder wil installeer, kies die persentasie wat u verlang.\n"
-"'n Lae persentasie sal net die belangrikste pakkette installeer;\n"
-"'n Persentasie van %d%% sal soveel moontlik probeer installeer."
-
-#: ../../install_steps_gtk.pm_.c:241
-msgid "You will be able to choose them more specifically in the next step."
-msgstr "U sal met meer akkuraatheid in die volgende stap kan kies."
-
-#: ../../install_steps_gtk.pm_.c:243
-msgid "Percentage of packages to install"
-msgstr "Persentasie pakkette om te installeer"
-
-#: ../../install_steps_gtk.pm_.c:291 ../../install_steps_interactive.pm_.c:705
-msgid "Package Group Selection"
-msgstr "Kies pakketgroepe"
-
-#: ../../install_steps_gtk.pm_.c:323 ../../install_steps_interactive.pm_.c:720
-msgid "Individual package selection"
-msgstr "Individuele pakketseleksie"
-
-#: ../../install_steps_gtk.pm_.c:346 ../../install_steps_interactive.pm_.c:645
-#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Totale grootte: %d / %d MB"
-
-#: ../../install_steps_gtk.pm_.c:391
-msgid "Bad package"
-msgstr "Foutiewe pakket"
-
-#: ../../install_steps_gtk.pm_.c:392
-#, c-format
-msgid "Name: %s\n"
-msgstr "Naam: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:393
-#, c-format
-msgid "Version: %s\n"
-msgstr "Weergawe: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:394
-#, c-format
-msgid "Size: %d KB\n"
-msgstr "Groote: %d KB\n"
-
-#: ../../install_steps_gtk.pm_.c:395
-#, c-format
-msgid "Importance: %s\n"
-msgstr "Belangrikheid: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:417
-msgid ""
-"You can't 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"
-
-#
-#: ../../install_steps_gtk.pm_.c:422
-msgid "The following packages are going to be installed"
-msgstr "Die volgende pakkette gaan installeer word"
-
-#
-#: ../../install_steps_gtk.pm_.c:423
-msgid "The following packages are going to be removed"
-msgstr "Dei volgende pakkette gaan verwyder word"
-
-#: ../../install_steps_gtk.pm_.c:435
-msgid "You can't select/unselect this package"
-msgstr "U kan nie hierdie pakket selekteer/deselekteer nie"
-
-#: ../../install_steps_gtk.pm_.c:447
-msgid "This is a mandatory package, it can't be unselected"
-msgstr "Hierdie is 'n verpligte pakket. Dit kan nie uitgehaal word nie."
-
-#: ../../install_steps_gtk.pm_.c:449
-msgid "You can't unselect this package. It is already installed"
-msgstr "U kan nie heirdie pakket verwyder nie. Dis alreeds geļnstalleer"
-
-#: ../../install_steps_gtk.pm_.c:453
-msgid ""
-"This package must be upgraded\n"
-"Are you sure you want to deselect it?"
-msgstr ""
-"Hierdie pakket moet opgradeer word\n"
-"Is u seker u wil dit deselekteer?"
-
-#: ../../install_steps_gtk.pm_.c:457
-msgid "You can't unselect this package. It must be upgraded"
-msgstr "U kan nie hierdie pakket deselekteer nie. Dit moet opgradeer word."
-
-#: ../../install_steps_gtk.pm_.c:462
-msgid "Show automatically selected packages"
-msgstr "Wys outogeselekteerde pakkette."
-
-#: ../../install_steps_gtk.pm_.c:463 ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Install"
-msgstr "Installasie"
-
-#: ../../install_steps_gtk.pm_.c:466
-msgid "Load/Save on floppy"
-msgstr "Laai/Stoor op floppie"
-
-#: ../../install_steps_gtk.pm_.c:467
-msgid "Updating package selection"
-msgstr "Pakketseleksie word opgedateer"
-
-#: ../../install_steps_gtk.pm_.c:472
-msgid "Minimal install"
-msgstr "Minimale installasie"
-
-#: ../../install_steps_gtk.pm_.c:487 ../../install_steps_interactive.pm_.c:555
-msgid "Choose the packages you want to install"
-msgstr "Kies die pakkette wat u wil installeer"
-
-#: ../../install_steps_gtk.pm_.c:503 ../../install_steps_interactive.pm_.c:787
-msgid "Installing"
-msgstr "Besig met installasie"
-
-#: ../../install_steps_gtk.pm_.c:509
-msgid "Estimating"
-msgstr "Skatting"
-
-#: ../../install_steps_gtk.pm_.c:516
-msgid "Time remaining "
-msgstr "Tyd oor "
-
-#: ../../install_steps_gtk.pm_.c:528
-msgid "Please wait, preparing installation"
-msgstr "Wag asb. installasie word voorberei"
-
-#: ../../install_steps_gtk.pm_.c:611
-#, c-format
-msgid "%d packages"
-msgstr "%d pakkette"
-
-#: ../../install_steps_gtk.pm_.c:616
-#, c-format
-msgid "Installing package %s"
-msgstr "Installeer pakket %s"
-
-#
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-#: ../../standalone/drakautoinst_.c:203
-msgid "Accept"
-msgstr "Aanvaar "
-
-#
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-msgid "Refuse"
-msgstr "Weier"
-
-#: ../../install_steps_gtk.pm_.c:658 ../../install_steps_interactive.pm_.c:812
-#, c-format
-msgid ""
-"Change your Cd-Rom!\n"
-"\n"
-"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
-"done.\n"
-"If you don't have it, press Cancel to avoid installation from this Cd-Rom."
-msgstr ""
-"Verander u CDROM!\n"
-"\n"
-"Sit asb. die CDROM getiteld \"%s\" in die aandrywer en druk OK. Indien u "
-"nie\n"
-"hieroor beskik nie, druk Kanselleer om installasies vanaf dié CDROM te vermy."
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_gtk.pm_.c:676
-#: ../../install_steps_interactive.pm_.c:824
-#: ../../install_steps_interactive.pm_.c:828
-msgid "Go on anyway?"
-msgstr "Gaan steeds voort?"
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_interactive.pm_.c:824
-msgid "There was an error ordering packages:"
-msgstr "Daar was 'n fout met pakkette:"
-
-#: ../../install_steps_gtk.pm_.c:676 ../../install_steps_interactive.pm_.c:828
-msgid "There was an error installing packages:"
-msgstr "Daar was 'n fout met die installasie van die pakkette:"
-
-#: ../../install_steps_interactive.pm_.c:10
-msgid ""
-"\n"
-"Warning\n"
-"\n"
-"Please read carefully the terms below. If you disagree with any\n"
-"portion, you are not allowed to install the next CD media. Press 'Refuse' \n"
-"to continue the installation without using these media.\n"
-"\n"
-"\n"
-"Some components contained in the next CD media are not governed\n"
-"by the GPL License or similar agreements. Each such component is then\n"
-"governed by the terms and conditions of its own specific license. \n"
-"Please read carefully and comply with such specific licenses before \n"
-"you use or redistribute the said components. \n"
-"Such licenses will in general prevent the transfer, duplication \n"
-"(except for backup purposes), redistribution, reverse engineering, \n"
-"de-assembly, de-compilation or modification of the component. \n"
-"Any breach of agreement will immediately terminate your rights under \n"
-"the specific license. Unless the specific license terms grant you such\n"
-"rights, you usually cannot install the programs on more than one\n"
-"system, or adapt it to be used on a network. In doubt, please contact \n"
-"directly the distributor or editor of the component. \n"
-"Transfer to third parties or copying of such components including the \n"
-"documentation is usually forbidden.\n"
-"\n"
-"\n"
-"All rights to the components of the next CD media belong to their \n"
-"respective authors and are protected by intellectual property and \n"
-"copyright laws applicable to software programs.\n"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:67
-msgid "An error occurred"
-msgstr "'n Fout het voorgekom"
-
-#: ../../install_steps_interactive.pm_.c:85
-#, fuzzy
-msgid "Do you really want to leave the installation?"
-msgstr "Wil u die werklik die drukker verwyder?"
-
-#: ../../install_steps_interactive.pm_.c:108
-msgid "License agreement"
-msgstr "Lisensieooreenkoms"
-
-#: ../../install_steps_interactive.pm_.c:109
-msgid ""
-"Introduction\n"
-"\n"
-"The operating system and the different components available in the Mandrake "
-"Linux distribution \n"
-"shall be called the \"Software Products\" hereafter. The Software Products "
-"include, but are not \n"
-"restricted to, the set of programs, methods, rules and documentation related "
-"to the operating \n"
-"system and the different components of the Mandrake Linux distribution.\n"
-"\n"
-"\n"
-"1. License Agreement\n"
-"\n"
-"Please read carefully this document. This document is a license agreement "
-"between you and \n"
-"MandrakeSoft S.A. which applies to the Software Products.\n"
-"By installing, duplicating or using the Software Products in any manner, you "
-"explicitly \n"
-"accept and fully agree to conform to the terms and conditions of this "
-"License. \n"
-"If you disagree with any portion of the License, you are not allowed to "
-"install, duplicate or use \n"
-"the Software Products. \n"
-"Any attempt to install, duplicate or use the Software Products in a manner "
-"which does not comply \n"
-"with the terms and conditions of this License is void and will terminate "
-"your rights under this \n"
-"License. Upon termination of the License, you must immediately destroy all "
-"copies of the \n"
-"Software Products.\n"
-"\n"
-"\n"
-"2. Limited Warranty\n"
-"\n"
-"The Software Products and attached documentation are provided \"as is\", "
-"with no warranty, to the \n"
-"extent permitted by law.\n"
-"MandrakeSoft S.A. will, in no circumstances and to the extent permitted by "
-"law, be liable for any special,\n"
-"incidental, direct or indirect damages whatsoever (including without "
-"limitation damages for loss of \n"
-"business, interruption of business, financial loss, legal fees and penalties "
-"resulting from a court \n"
-"judgment, or any other consequential loss) arising out of the use or "
-"inability to use the Software \n"
-"Products, even if MandrakeSoft S.A. has been advised of the possibility or "
-"occurance of such \n"
-"damages.\n"
-"\n"
-"LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN SOME "
-"COUNTRIES\n"
-"\n"
-"To the extent permitted by law, MandrakeSoft S.A. or its distributors will, "
-"in no circumstances, be \n"
-"liable for any special, incidental, direct or indirect damages whatsoever "
-"(including without \n"
-"limitation damages for loss of business, interruption of business, financial "
-"loss, legal fees \n"
-"and penalties resulting from a court judgment, or any other consequential "
-"loss) arising out \n"
-"of the possession and use of software components or arising out of "
-"downloading software components \n"
-"from one of Mandrake Linux sites which are prohibited or restricted in some "
-"countries by local laws.\n"
-"This limited liability applies to, but is not restricted to, the strong "
-"cryptography components \n"
-"included in the Software Products.\n"
-"\n"
-"\n"
-"3. The GPL License and Related Licenses\n"
-"\n"
-"The Software Products consist of components created by different persons or "
-"entities. Most \n"
-"of these components are governed under the terms and conditions of the GNU "
-"General Public \n"
-"Licence, hereafter called \"GPL\", or of similar licenses. Most of these "
-"licenses allow you to use, \n"
-"duplicate, adapt or redistribute the components which they cover. Please "
-"read carefully the terms \n"
-"and conditions of the license agreement for each component before using any "
-"component. Any question \n"
-"on a component license should be addressed to the component author and not "
-"to MandrakeSoft.\n"
-"The programs developed by MandrakeSoft S.A. are governed by the GPL License. "
-"Documentation written \n"
-"by MandrakeSoft S.A. is governed by a specific license. Please refer to the "
-"documentation for \n"
-"further details.\n"
-"\n"
-"\n"
-"4. Intellectual Property Rights\n"
-"\n"
-"All rights to the components of the Software Products belong to their "
-"respective authors and are \n"
-"protected by intellectual property and copyright laws applicable to software "
-"programs.\n"
-"MandrakeSoft S.A. reserves its rights to modify or adapt the Software "
-"Products, as a whole or in \n"
-"parts, by all means and for all purposes.\n"
-"\"Mandrake\", \"Mandrake Linux\" and associated logos are trademarks of "
-"MandrakeSoft S.A. \n"
-"\n"
-"\n"
-"5. Governing Laws \n"
-"\n"
-"If any portion of this agreement is held void, illegal or inapplicable by a "
-"court judgment, this \n"
-"portion is excluded from this contract. You remain bound by the other "
-"applicable sections of the \n"
-"agreement.\n"
-"The terms and conditions of this License are governed by the Laws of "
-"France.\n"
-"All disputes on the terms of this license will preferably be settled out of "
-"court. As a last \n"
-"resort, the dispute will be referred to the appropriate Courts of Law of "
-"Paris - France.\n"
-"For any question on this document, please contact MandrakeSoft S.A. \n"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:205
-#: ../../install_steps_interactive.pm_.c:1045
-#: ../../standalone/keyboarddrake_.c:28
-msgid "Keyboard"
-msgstr "Sleutelbord"
-
-#: ../../install_steps_interactive.pm_.c:206
-#, fuzzy
-msgid "Please choose your keyboard layout."
-msgstr "Wat is u sleutelborduitleg?"
-
-#: ../../install_steps_interactive.pm_.c:207
-msgid "Here is the full list of keyboards available"
-msgstr "Hierdie is die volledige lys van beskikbare sleutelborde"
-
-#: ../../install_steps_interactive.pm_.c:224
-msgid "Which installation class do you want?"
-msgstr "Watter installasieklas verlang u?"
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Install/Update"
-msgstr "Installeer/Opgradeer"
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Is this an install or an update?"
-msgstr "Is hierdie 'n installasie of opgradering?"
-
-#: ../../install_steps_interactive.pm_.c:235
-msgid "Recommended"
-msgstr "Aanbevole"
-
-#: ../../install_steps_interactive.pm_.c:238
-#: ../../install_steps_interactive.pm_.c:241
-msgid "Expert"
-msgstr "Kundige"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-#, fuzzy
-msgid "Upgrade"
-msgstr "Opgradeer"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-#, fuzzy
-msgid "Upgrade packages only"
-msgstr "Pakketseleksie word opgedateer"
-
-#: ../../install_steps_interactive.pm_.c:266
-#, fuzzy
-msgid "Please choose the type of your mouse."
-msgstr "Wat is u muistoestel?"
-
-#: ../../install_steps_interactive.pm_.c:272 ../../standalone/mousedrake_.c:65
-msgid "Mouse Port"
-msgstr "Muispoort"
-
-#: ../../install_steps_interactive.pm_.c:273 ../../standalone/mousedrake_.c:66
-msgid "Please choose on which serial port your mouse is connected to."
-msgstr "Aan watter seriaalpoort is u muis gekoppel?"
-
-#: ../../install_steps_interactive.pm_.c:281
-msgid "Buttons emulation"
-msgstr "Knoppie-emulasie"
-
-#: ../../install_steps_interactive.pm_.c:283
-msgid "Button 2 Emulation"
-msgstr "Knop-2 Emulasie"
-
-#: ../../install_steps_interactive.pm_.c:284
-msgid "Button 3 Emulation"
-msgstr "Knop-3 emulasie"
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "Configuring PCMCIA cards..."
-msgstr "Stel PCMCIA op..."
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "PCMCIA"
-msgstr "PCMCIA"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "Configuring IDE"
-msgstr "IDE word opgestel"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "IDE"
-msgstr "IDE"
-
-#: ../../install_steps_interactive.pm_.c:327
-msgid "no available partitions"
-msgstr "geen beskikbare partisies"
-
-#: ../../install_steps_interactive.pm_.c:330
-msgid "Scanning partitions to find mount points"
-msgstr "Hegpunte vir partisies word nou gesoek"
-
-#: ../../install_steps_interactive.pm_.c:338
-msgid "Choose the mount points"
-msgstr "Kies die hegpunte"
-
-#: ../../install_steps_interactive.pm_.c:357
-#, c-format
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I can try to go on blanking bad partitions (ALL DATA will be lost!).\n"
-"The other solution is to disallow DrakX to modify the partition table.\n"
-"(the error is %s)\n"
-"\n"
-"Do you agree to loose all the partitions?\n"
-msgstr ""
-"Ek kan nie u partisietabel lees nie, dit is te korrup.\n"
-"Ek sal die nodige partisies skoonmaak, maar alle data sal vernietig word.\n"
-"Die ander opsie is om DrakX te belet om die partisietabel te verander.\n"
-"(fout is %s)\n"
-"\n"
-"Will u al die partisies verwyder?\n"
-
-#: ../../install_steps_interactive.pm_.c:370
-msgid ""
-"DiskDrake failed to read correctly the partition table.\n"
-"Continue at your own risk!"
-msgstr ""
-"DrakX kon nie die partisietabel korrek interpreteer nie.\n"
-"Gaan aan op u eie risiko!"
-
-#: ../../install_steps_interactive.pm_.c:386
-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 ""
-"Geen beskikbare 1MB herlaaipartisie nie! Installasie sal voortgaan, maar u "
-"sal herlaaipartisie met DiskDrake moet skep indien u die stelsel wil "
-"herlaai."
-
-#: ../../install_steps_interactive.pm_.c:395
-msgid "No root partition found to perform an upgrade"
-msgstr "Geen wortellźerstelsel gevind nie"
-
-#: ../../install_steps_interactive.pm_.c:396
-msgid "Root Partition"
-msgstr "Basispartisie"
-
-#: ../../install_steps_interactive.pm_.c:397
-msgid "What is the root partition (/) of your system?"
-msgstr "Wat is die basispartisie (/) van u stelsel?"
-
-#: ../../install_steps_interactive.pm_.c:411
-msgid "You need to reboot for the partition table modifications to take place"
-msgstr "U moet herlaai om die partisietabelveranderinge te aktiveer"
-
-#: ../../install_steps_interactive.pm_.c:435
-msgid "Choose the partitions you want to format"
-msgstr "Kies die partisies om te formatteer"
-
-#: ../../install_steps_interactive.pm_.c:436
-msgid "Check bad blocks?"
-msgstr "Toets vir foutiewe areas?"
-
-#: ../../install_steps_interactive.pm_.c:462
-msgid "Formatting partitions"
-msgstr "Partisies word formateer"
-
-#: ../../install_steps_interactive.pm_.c:464
-#, c-format
-msgid "Creating and formatting file %s"
-msgstr "Lźer %s word geskep en formatteer"
-
-#: ../../install_steps_interactive.pm_.c:467
-msgid "Not enough swap to fulfill installation, please add some"
-msgstr "Nie genoeg ruilarea om die installasie te voltooi. Voeg asb. by."
-
-#: ../../install_steps_interactive.pm_.c:473
-msgid "Looking for available packages"
-msgstr "Soek vir beskikbare pakkette"
-
-#: ../../install_steps_interactive.pm_.c:479
-msgid "Finding packages to upgrade"
-msgstr "Soek vir pakkette om op te gradeer."
-
-#: ../../install_steps_interactive.pm_.c:496
-#, c-format
-msgid ""
-"Your system has not enough space left for installation or upgrade (%d > %d)"
-msgstr ""
-"U stelsel het nie genoeg plek vir 'n installasie of opgradering nie (%d > %d)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Complete (%dMB)"
-msgstr "Klaar (%dMB)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Minimum (%dMB)"
-msgstr "Minimum (%dMB)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Recommended (%dMB)"
-msgstr "Aanbevole (%dMB)"
-
-#: ../../install_steps_interactive.pm_.c:568
-msgid ""
-"Please choose load or save package selection on floppy.\n"
-"The format is the same as auto_install generated floppies."
-msgstr ""
-"Kies asb. die laai of stoor pakketkeuse op die floppie.\n"
-"Die formaat is dieselfde as outoinstallasie-genereerde floppies."
-
-#: ../../install_steps_interactive.pm_.c:571
-msgid "Load from floppy"
-msgstr "Laai vanaf floppie"
-
-#: ../../install_steps_interactive.pm_.c:573
-msgid "Loading from floppy"
-msgstr "Oplaai vanaf floppie"
-
-#: ../../install_steps_interactive.pm_.c:573
-msgid "Package selection"
-msgstr "Pakketkeuse"
-
-#: ../../install_steps_interactive.pm_.c:578
-msgid "Insert a floppy containing package selection"
-msgstr "Sit 'n floppie met die pakketkeuse in aandrywer "
-
-#: ../../install_steps_interactive.pm_.c:590
-msgid "Save on floppy"
-msgstr "Stoor op floppie"
-
-#: ../../install_steps_interactive.pm_.c:658
-msgid "Selected size is larger than available space"
-msgstr "Geselekteerde grootte is groter as beskikbare spasie."
-
-#: ../../install_steps_interactive.pm_.c:671
-#, fuzzy
-msgid "Type of install"
-msgstr "Kies pakket om te installeer"
-
-#: ../../install_steps_interactive.pm_.c:672
-msgid ""
-"You haven't selected any group of packages.\n"
-"Please choose the minimal installation you want:"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:675
-#, fuzzy
-msgid "With X"
-msgstr "Wag"
-
-#: ../../install_steps_interactive.pm_.c:677
-msgid "With basic documentation (recommended!)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:678
-msgid "Truly minimal install (especially no urpmi)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:762
-msgid ""
-"If you have all the CDs in the list below, click Ok.\n"
-"If you have none of those CDs, click Cancel.\n"
-"If only some CDs are missing, unselect them, then click Ok."
-msgstr ""
-"Indien u oor al die gelyste CD's beskik, kliek OK.\n"
-"Indien u oor geen van die gelyste CD's beskik nie, kliek Kanselleer.\n"
-"Indien u net oor sekere CDs beskik, deselekteer die ander en kliek OK."
-
-#: ../../install_steps_interactive.pm_.c:767
-#, c-format
-msgid "Cd-Rom labeled \"%s\""
-msgstr "CDROM getiteld \"%s\""
-
-#: ../../install_steps_interactive.pm_.c:787
-msgid "Preparing installation"
-msgstr "Berei installasie voor"
-
-#: ../../install_steps_interactive.pm_.c:796
-#, c-format
-msgid ""
-"Installing package %s\n"
-"%d%%"
-msgstr ""
-"Installeer nou pakket %s\n"
-"%d%%"
-
-#: ../../install_steps_interactive.pm_.c:842
-msgid "Post-install configuration"
-msgstr "Postinstallasiekonfigurasie"
-
-#: ../../install_steps_interactive.pm_.c:848
-#, c-format
-msgid "Please insert the Boot floppy used in drive %s"
-msgstr "Sit 'n herlaaiskyf wat gebruik is, in aandrywer %s"
-
-#: ../../install_steps_interactive.pm_.c:854
-#, c-format
-msgid "Please insert the Update Modules floppy in drive %s"
-msgstr "Sit asb. die module-opdateringsfloppie in aandrywer %s"
-
-#: ../../install_steps_interactive.pm_.c:874
-msgid ""
-"You have now the possibility to download software aimed for encryption.\n"
-"\n"
-"WARNING:\n"
-"\n"
-"Due to different general requirements applicable to these software and "
-"imposed\n"
-"by various jurisdictions, customer and/or end user of theses software "
-"should\n"
-"ensure that the laws of his/their jurisdiction allow him/them to download, "
-"stock\n"
-"and/or use these software.\n"
-"\n"
-"In addition customer and/or end user shall particularly be aware to not "
-"infringe\n"
-"the laws of his/their jurisdiction. Should customer and/or end user not\n"
-"respect the provision of these applicable laws, he/they will incure serious\n"
-"sanctions.\n"
-"\n"
-"In no event shall Mandrakesoft nor its manufacturers and/or suppliers be "
-"liable\n"
-"for special, indirect or incidental damages whatsoever (including, but not\n"
-"limited to loss of profits, business interruption, loss of commercial data "
-"and\n"
-"other pecuniary losses, and eventual liabilities and indemnification to be "
-"paid\n"
-"pursuant to a court decision) arising out of use, possession, or the sole\n"
-"downloading of these software, to which customer and/or end user could\n"
-"eventually have access after having sign up the present agreement.\n"
-"\n"
-"\n"
-"For any queries relating to these agreement, please contact \n"
-"Mandrakesoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA"
-msgstr ""
-"U het nou die kans om enkripsieprogrammatuur af te laai.\n"
-"\n"
-"WAARSKUWING:\n"
-"\n"
-"A.g.v. die verskillende algemene vereistes wat van toepassing gemaak word "
-"deur\n"
-"wetgewing, moet die eindgebruiker van hierdie sagteware seker wees dat die\n"
-"wette in sy/haar land dit wel toelaat dat om hierdie agteware af te laai, "
-"aan te hou\n"
-"en te gebruik.\n"
-"Daarbenewens moet die gebruiker seker maak dat plaaslike wetgewing nie "
-"oortree\n"
-"word nie. Misbruik kan lei tot ernstige sanksies.\n"
-"\n"
-"In geen geval kan MandrakeSoft nog sy vervaardigers en verskaffers "
-"verantwoordelik\n"
-"gehou word vir spesiale, indirekte or toevallige skade berokken (insluitend, "
-"maar nie\n"
-"beperk tot, winsverlies, besigheidsonderbreking, dataverlies en enige "
-"voorspruitende laste\n"
-"soos moontlik bepaal deur die wetgewende hof) wat vooruitspruit uit die "
-"gebruik, besit\n"
-"of aflaai van hierdie programmatuur nie, na tekening wat hierdie ooreenkoms "
-"nie.\n"
-"\n"
-"\n"
-"Vir navrae vewant aan hierdie ooreenkoms, kontak asb.\n"
-"Mandrakesoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA"
-
-#: ../../install_steps_interactive.pm_.c:912
-msgid ""
-"You have now the possibility to download updated packages that have\n"
-"been released after the distribution has been made available.\n"
-"\n"
-"You will get security fixes or bug fixes, but you need to have an\n"
-"Internet connection configured to proceed.\n"
-"\n"
-"Do you want to install the updates ?"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:926
-#, fuzzy
-msgid "Contacting Mandrake Linux web site to get the list of available mirrors"
-msgstr "Spieėl word gekontak vir die lys van pakkette"
-
-#: ../../install_steps_interactive.pm_.c:931
-msgid "Choose a mirror from which to get the packages"
-msgstr "Kies 'n spieėl waar die pakkette verkry kan word"
-
-#: ../../install_steps_interactive.pm_.c:940
-msgid "Contacting the mirror to get the list of available packages"
-msgstr "Spieėl word gekontak vir die lys van pakkette"
-
-#: ../../install_steps_interactive.pm_.c:967
-msgid "Which is your timezone?"
-msgstr "Wat is u tydsone?"
-
-#: ../../install_steps_interactive.pm_.c:972
-msgid "Hardware clock set to GMT"
-msgstr "Hardewareklok gestel vir GMT"
-
-#: ../../install_steps_interactive.pm_.c:973
-msgid "Automatic time synchronization (using NTP)"
-msgstr "Outotydsinkronisasie met NTP"
-
-#: ../../install_steps_interactive.pm_.c:980
-msgid "NTP Server"
-msgstr "NTP-bediener"
-
-#
-#: ../../install_steps_interactive.pm_.c:1014
-#: ../../install_steps_interactive.pm_.c:1022
-msgid "Remote CUPS server"
-msgstr "Verwyder CUPS-bediener"
-
-#: ../../install_steps_interactive.pm_.c:1015
-msgid "No printer"
-msgstr "Geen drukker"
-
-#: ../../install_steps_interactive.pm_.c:1032
-#, fuzzy
-msgid "Do you have an ISA sound card?"
-msgstr "Beskik u oor nog?"
-
-#: ../../install_steps_interactive.pm_.c:1034
-msgid "Run \"sndconfig\" after installation to configure your sound card"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1036
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1041 ../../steps.pm_.c:27
-msgid "Summary"
-msgstr "Opsomming"
-
-#: ../../install_steps_interactive.pm_.c:1044
-msgid "Mouse"
-msgstr "Muis"
-
-#: ../../install_steps_interactive.pm_.c:1046
-msgid "Timezone"
-msgstr "Tydsone"
-
-#: ../../install_steps_interactive.pm_.c:1047 ../../printerdrake.pm_.c:2276
-#: ../../printerdrake.pm_.c:2354
-msgid "Printer"
-msgstr "Drukker"
-
-#: ../../install_steps_interactive.pm_.c:1049
-msgid "ISDN card"
-msgstr "ISDN-kaart"
-
-#: ../../install_steps_interactive.pm_.c:1052
-#: ../../install_steps_interactive.pm_.c:1054
-msgid "Sound card"
-msgstr "Klankkaart"
-
-#: ../../install_steps_interactive.pm_.c:1056
-msgid "TV card"
-msgstr "TV-kaaer"
-
-#: ../../install_steps_interactive.pm_.c:1094
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1122
-msgid "LDAP"
-msgstr "KDAP"
-
-#: ../../install_steps_interactive.pm_.c:1095
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1131
-msgid "NIS"
-msgstr "NIS"
-
-#: ../../install_steps_interactive.pm_.c:1096
-#: ../../install_steps_interactive.pm_.c:1118
-msgid "Local files"
-msgstr "Plaaslike lźers"
-
-#: ../../install_steps_interactive.pm_.c:1105
-#: ../../install_steps_interactive.pm_.c:1106 ../../steps.pm_.c:24
-msgid "Set root password"
-msgstr "Kies 'root' se wagwoord"
-
-#: ../../install_steps_interactive.pm_.c:1107
-msgid "No password"
-msgstr "Geen wagwoord"
-
-#: ../../install_steps_interactive.pm_.c:1112
-#, c-format
-msgid "This password is too simple (must be at least %d characters long)"
-msgstr ""
-"Hierdie wagwoord is te eenvoudig. Dit moet ten minste %d karakters bevat."
-
-#: ../../install_steps_interactive.pm_.c:1118 ../../network/modem.pm_.c:49
-#: ../../standalone/draknet_.c:626 ../../standalone/logdrake_.c:172
-msgid "Authentication"
-msgstr "Magtiging"
-
-#: ../../install_steps_interactive.pm_.c:1126
-msgid "Authentication LDAP"
-msgstr "LDAP-magtiging"
-
-#: ../../install_steps_interactive.pm_.c:1127
-msgid "LDAP Base dn"
-msgstr "LDAP Basis-dn"
-
-#: ../../install_steps_interactive.pm_.c:1128
-msgid "LDAP Server"
-msgstr "LDAP-bediener"
-
-#: ../../install_steps_interactive.pm_.c:1134
-msgid "Authentication NIS"
-msgstr "NIS-magtiging"
-
-#: ../../install_steps_interactive.pm_.c:1135
-msgid "NIS Domain"
-msgstr "NIS-domein"
-
-#: ../../install_steps_interactive.pm_.c:1136
-msgid "NIS Server"
-msgstr "NIS-bediener"
-
-#: ../../install_steps_interactive.pm_.c:1171
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"SILO on your system, or another operating system removes SILO, or SILO "
-"doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures.\n"
-"\n"
-"If you want to create a bootdisk for your system, insert a floppy in the "
-"first\n"
-"drive and press \"Ok\"."
-msgstr ""
-"'n Spesiale herlaaiskyf voorsien ;n metode waarby u Linux kan laai sonder\n"
-"die gebruik van 'n normale herlaaistelsel. Dit is veral bruikbaar wanneer\n"
-"u nie SILO op u stelsel wil installeer nie, 'n ander bedryfstelsel SILO\n"
-"verwyder of SILO nie met u stelsel werk nie. Hierdie herlaaiskyf kan ook\n"
-"met die Mandrake reddingsbeeld gebruik word, wat dit makliker maak om van\n"
-"ernstige stelselfalings te herstel.\n"
-"\n"
-"Indien u 'n herlaaiskyf wil maak,\n"
-"plaas 'n skyf in die aandrywer en druk \"OK\"."
-
-#: ../../install_steps_interactive.pm_.c:1187
-msgid "First floppy drive"
-msgstr "Eerste sagteskyfaandrywer"
-
-#: ../../install_steps_interactive.pm_.c:1188
-msgid "Second floppy drive"
-msgstr "Tweede sagteskyfaandrywer"
-
-#: ../../install_steps_interactive.pm_.c:1189 ../../printerdrake.pm_.c:1848
-msgid "Skip"
-msgstr "Mis hierdie stap"
-
-#: ../../install_steps_interactive.pm_.c:1194
-#, c-format
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"LILO (or grub) on your system, or another operating system removes LILO, or "
-"LILO doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures. Would you like to create a bootdisk for your system?\n"
-"%s"
-msgstr ""
-"'n Spesiale herlaaiskyf voorsien ;n metode waarby u Linux kan laai sonder\n"
-"die gebruik van 'n normale herlaaistelsel. Dit is veral bruikbaar wanneer\n"
-"u nie LILO (of Grub) op u stelsel wil installeer nie, 'n ander bedryfstelsel "
-"LILO\n"
-"verwyder of LILO nie met u stelsel werk nie. Hierdie herlaaiskyf kan ook\n"
-"met die Mandrake reddingsbeeld gebruik word, wat dit makliker maak om van\n"
-"ernstige stelselfalings te herstel. Wil u 'n herlaaiskyf maak?\n"
-"%s"
-
-#: ../../install_steps_interactive.pm_.c:1200
-msgid ""
-"\n"
-"\n"
-"(WARNING! You're using XFS for your root partition,\n"
-"creating a bootdisk on a 1.44 Mb floppy will probably fail,\n"
-"because XFS needs a very large driver)."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1208
-msgid "Sorry, no floppy drive available"
-msgstr "Jammer, geen sagteskyfaandrywer beskikbaar nie"
-
-#: ../../install_steps_interactive.pm_.c:1212
-msgid "Choose the floppy drive you want to use to make the bootdisk"
-msgstr "Kies die sagteskyfaandrywer wat u wil gebruik"
-
-#: ../../install_steps_interactive.pm_.c:1216
-#, fuzzy, c-format
-msgid "Insert a floppy in %s"
-msgstr "Sit 'n skyf in aandrywer %s"
-
-#: ../../install_steps_interactive.pm_.c:1219
-msgid "Creating bootdisk"
-msgstr "Herlaaiskyf word geskryf"
-
-#: ../../install_steps_interactive.pm_.c:1226
-msgid "Preparing bootloader"
-msgstr "Herlaaistelsel word voorberei"
-
-#: ../../install_steps_interactive.pm_.c:1237
-msgid ""
-"You appear to have an OldWorld or Unknown\n"
-" machine, the yaboot bootloader will not work for you.\n"
-"The install will continue, but you'll\n"
-" need to use BootX to boot your machine"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1243
-msgid "Do you want to use aboot?"
-msgstr "Wil u aboot gebruik?"
-
-#: ../../install_steps_interactive.pm_.c:1246
-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?"
-
-#: ../../install_steps_interactive.pm_.c:1253
-msgid "Installing bootloader"
-msgstr "Herlaaistelselinstallasie"
-
-#: ../../install_steps_interactive.pm_.c:1259
-msgid "Installation of bootloader failed. The following error occured:"
-msgstr "Installasie van herlaaiprogram het gefaal a.g.v. hierdie fout: "
-
-#: ../../install_steps_interactive.pm_.c:1267
-#, c-format
-msgid ""
-"You may need to change your Open Firmware boot-device to\n"
-" enable the bootloader. If you don't 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\n"
-"At your next boot you should see the bootloader prompt."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1311
-#: ../../standalone/drakautoinst_.c:81
-#, c-format
-msgid "Insert a blank floppy in drive %s"
-msgstr "Sit 'n leė floppie in aandrywer %s"
-
-#: ../../install_steps_interactive.pm_.c:1315
-#: ../../standalone/drakautoinst_.c:83
-msgid "Creating auto install floppy"
-msgstr "Outoinstallasieskyf word geskep."
-
-#: ../../install_steps_interactive.pm_.c:1326
-msgid ""
-"Some steps are not completed.\n"
-"\n"
-"Do you really want to quit now?"
-msgstr ""
-"Bepaalde stappe is nie afgehandel nie.\n"
-"\n"
-"Wil u werklik nou aborteer?"
-
-#: ../../install_steps_interactive.pm_.c:1337
-msgid ""
-"Congratulations, installation is complete.\n"
-"Remove the boot media and press return to reboot.\n"
-"\n"
-"\n"
-"For information on fixes which are available for this release of Mandrake "
-"Linux,\n"
-"consult the Errata available from:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/82errata.php3\n"
-"\n"
-"\n"
-"Information on configuring your system is available in the post\n"
-"install chapter of the Official Mandrake Linux User's Guide."
-msgstr ""
-"Geluk, installasie is afgehandel.\n"
-"Verwyder die herlaaimedium en druk 'enter' om te herlaai.\n"
-"\n"
-"\n"
-"Vir lapinligting oor hierdie vrystelling vanMandrake Linux,\n"
-"bekyk die errata beskikbaar op\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/82errata.php3\n"
-"\n"
-"\n"
-"Inligting oor stelskonfigurasie is beskikbaar in die postinstallasie-\n"
-"hoofstuk in die Offisiėle Liux-Mandrake Gebruikersgids."
-
-#: ../../install_steps_interactive.pm_.c:1354
-msgid "Generate auto install floppy"
-msgstr "Skep outoinstallasieskyf"
-
-#: ../../install_steps_interactive.pm_.c:1356
-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 ""
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Automated"
-msgstr "Outomaties"
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Replay"
-msgstr "Herspeel"
-
-#: ../../install_steps_interactive.pm_.c:1364
-msgid "Save packages selection"
-msgstr "Stoor pakketseleksie"
-
-#: ../../install_steps_newt.pm_.c:22
-#, c-format
-msgid "Mandrake Linux Installation %s"
-msgstr "Mandrake Linux Installasie %s"
-
-#: ../../install_steps_newt.pm_.c:34
-msgid ""
-" <Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen "
-msgstr ""
-" <Tab>/<Alt-Tab> tussen elemente | <Space> selekteer | <F12> volgende skerm "
-
-#: ../../interactive.pm_.c:87
-msgid "kdesu missing"
-msgstr "kdesu is weg"
-
-#: ../../interactive.pm_.c:89 ../../interactive.pm_.c:100
-msgid "consolehelper missing"
-msgstr ""
-
-#: ../../interactive.pm_.c:152
-msgid "Choose a file"
-msgstr "Kies 'n lźer"
-
-#: ../../interactive.pm_.c:314
-msgid "Advanced"
-msgstr "Gevorderd"
-
-#: ../../interactive.pm_.c:315
-msgid "Basic"
-msgstr ""
-
-#: ../../interactive.pm_.c:386
-msgid "Please wait"
-msgstr "Wag asb."
-
-#: ../../interactive_gtk.pm_.c:605 ../../services.pm_.c:222
-msgid "Info"
-msgstr "Info"
-
-#: ../../interactive_gtk.pm_.c:715
-msgid "Expand Tree"
-msgstr "Maak boom oop"
-
-#: ../../interactive_gtk.pm_.c:716
-msgid "Collapse Tree"
-msgstr "Maak boom toe"
-
-#: ../../interactive_gtk.pm_.c:717
-msgid "Toggle between flat and group sorted"
-msgstr "Skakel tussen plat- en groepsortering"
-
-#: ../../interactive_stdio.pm_.c:29 ../../interactive_stdio.pm_.c:147
-msgid "Bad choice, try again\n"
-msgstr "Swak keuse, probeer weer\n"
-
-#: ../../interactive_stdio.pm_.c:30 ../../interactive_stdio.pm_.c:148
-#, c-format
-msgid "Your choice? (default %s) "
-msgstr "U keuse? (verstek %s) "
-
-#: ../../interactive_stdio.pm_.c:52
-#, c-format
-msgid ""
-"Entries you'll have to fill:\n"
-"%s"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:68
-#, fuzzy, c-format
-msgid "Your choice? (0/1, default `%s') "
-msgstr "U keuse? (verstek %s) "
-
-#: ../../interactive_stdio.pm_.c:93
-#, fuzzy, c-format
-msgid "Button `%s': %s"
-msgstr "Opsies: %s"
-
-#: ../../interactive_stdio.pm_.c:94
-#, fuzzy
-msgid "Do you want to click on this button? "
-msgstr "Wil u aboot gebruik?"
-
-#: ../../interactive_stdio.pm_.c:103
-#, fuzzy, c-format
-msgid "Your choice? (default `%s'%s) "
-msgstr "U keuse? (verstek %s) "
-
-#: ../../interactive_stdio.pm_.c:121
-#, c-format
-msgid "=> There are many things to choose from (%s).\n"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:124
-msgid ""
-"Please choose the first number of the 10-range you wish to edit,\n"
-"or just hit Enter to proceed.\n"
-"Your choice? "
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:137
-#, c-format
-msgid ""
-"=> Notice, a label changed:\n"
-"%s"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:144
-msgid "Re-submit"
-msgstr ""
-
-#: ../../keyboard.pm_.c:174 ../../keyboard.pm_.c:205
-msgid "Czech (QWERTZ)"
-msgstr "Tseggies (QWERTZ)"
-
-#: ../../keyboard.pm_.c:175 ../../keyboard.pm_.c:207
-msgid "German"
-msgstr "Duits"
-
-#: ../../keyboard.pm_.c:176
-msgid "Dvorak"
-msgstr "Dvorak"
-
-#: ../../keyboard.pm_.c:177 ../../keyboard.pm_.c:214
-msgid "Spanish"
-msgstr "Spaans"
-
-#: ../../keyboard.pm_.c:178 ../../keyboard.pm_.c:215
-msgid "Finnish"
-msgstr "Finnies"
-
-#: ../../keyboard.pm_.c:179 ../../keyboard.pm_.c:216
-msgid "French"
-msgstr "Frans"
-
-#: ../../keyboard.pm_.c:180 ../../keyboard.pm_.c:241
-msgid "Norwegian"
-msgstr "Norweegs"
-
-#: ../../keyboard.pm_.c:181
-msgid "Polish"
-msgstr "Pools"
-
-#: ../../keyboard.pm_.c:182 ../../keyboard.pm_.c:249
-msgid "Russian"
-msgstr "Russies"
-
-#: ../../keyboard.pm_.c:184 ../../keyboard.pm_.c:251
-msgid "Swedish"
-msgstr "Sweeds"
-
-#: ../../keyboard.pm_.c:185 ../../keyboard.pm_.c:266
-msgid "UK keyboard"
-msgstr "VK sleutelbord"
-
-#: ../../keyboard.pm_.c:186 ../../keyboard.pm_.c:267
-msgid "US keyboard"
-msgstr "VSA sleutelbord"
-
-#: ../../keyboard.pm_.c:188
-msgid "Albanian"
-msgstr "Albanies"
-
-#: ../../keyboard.pm_.c:189
-msgid "Armenian (old)"
-msgstr "Armenies (oud)"
-
-#: ../../keyboard.pm_.c:190
-msgid "Armenian (typewriter)"
-msgstr "Armenies (tikmasjien)"
-
-#: ../../keyboard.pm_.c:191
-msgid "Armenian (phonetic)"
-msgstr "Armenies (Foneties)"
-
-#: ../../keyboard.pm_.c:196
-msgid "Azerbaidjani (latin)"
-msgstr "Azerbaidjani (latyns)"
-
-#: ../../keyboard.pm_.c:198
-msgid "Belgian"
-msgstr "Belgies"
-
-#: ../../keyboard.pm_.c:199
-#, fuzzy
-msgid "Bulgarian (phonetic)"
-msgstr "Armenies (Foneties)"
-
-#: ../../keyboard.pm_.c:200
-#, fuzzy
-msgid "Bulgarian (BDS)"
-msgstr "Bulgaars"
-
-#: ../../keyboard.pm_.c:201
-msgid "Brazilian (ABNT-2)"
-msgstr "Brasiliaans (ABNT-2)"
-
-#: ../../keyboard.pm_.c:202
-msgid "Belarusian"
-msgstr "Belarussies"
-
-#: ../../keyboard.pm_.c:203
-msgid "Swiss (German layout)"
-msgstr "Switsers (Duitse uitleg)"
-
-#: ../../keyboard.pm_.c:204
-msgid "Swiss (French layout)"
-msgstr "Switsers (Franse uitleg)"
-
-#: ../../keyboard.pm_.c:206
-msgid "Czech (QWERTY)"
-msgstr "Tseggies (QWERTY)"
-
-#: ../../keyboard.pm_.c:208
-msgid "German (no dead keys)"
-msgstr "Duits (geen dooie sleutels)"
-
-#: ../../keyboard.pm_.c:209
-msgid "Danish"
-msgstr "Deens"
-
-#: ../../keyboard.pm_.c:210
-msgid "Dvorak (US)"
-msgstr "Dvorak (VSA)"
-
-#: ../../keyboard.pm_.c:211
-msgid "Dvorak (Norwegian)"
-msgstr "Dvorak (Norweegs)"
-
-#: ../../keyboard.pm_.c:212
-#, fuzzy
-msgid "Dvorak (Swedish)"
-msgstr "Dvorak (VSA)"
-
-#: ../../keyboard.pm_.c:213
-msgid "Estonian"
-msgstr "Estoniaans"
-
-#: ../../keyboard.pm_.c:217
-msgid "Georgian (\"Russian\" layout)"
-msgstr "Georgies (Russiese uitleg)"
-
-#: ../../keyboard.pm_.c:218
-msgid "Georgian (\"Latin\" layout)"
-msgstr "Georgies (Latynse uitleg)"
-
-#: ../../keyboard.pm_.c:219
-msgid "Greek"
-msgstr "Grieks"
-
-#: ../../keyboard.pm_.c:220
-msgid "Hungarian"
-msgstr "Hongaars"
-
-#: ../../keyboard.pm_.c:221
-msgid "Croatian"
-msgstr "Kroaties"
-
-#: ../../keyboard.pm_.c:222
-msgid "Israeli"
-msgstr "Israelies"
-
-#: ../../keyboard.pm_.c:223
-msgid "Israeli (Phonetic)"
-msgstr "Israelies (Foneties)"
-
-#: ../../keyboard.pm_.c:224
-msgid "Iranian"
-msgstr "Iranies"
-
-#: ../../keyboard.pm_.c:225
-msgid "Icelandic"
-msgstr "Yslandies"
-
-#: ../../keyboard.pm_.c:226
-msgid "Italian"
-msgstr "Italiaans"
-
-#: ../../keyboard.pm_.c:228
-msgid "Japanese 106 keys"
-msgstr "Japanees 106 sleutels"
-
-#: ../../keyboard.pm_.c:231
-msgid "Korean keyboard"
-msgstr "Koreaanse sleutelbord"
-
-#: ../../keyboard.pm_.c:232
-msgid "Latin American"
-msgstr "Latyns-Amerikaans"
-
-#: ../../keyboard.pm_.c:233
-msgid "Lithuanian AZERTY (old)"
-msgstr "Lituanies AZERTY (oud)"
-
-#: ../../keyboard.pm_.c:235
-msgid "Lithuanian AZERTY (new)"
-msgstr "Lituanies AZERTY (nuut)"
-
-#: ../../keyboard.pm_.c:236
-msgid "Lithuanian \"number row\" QWERTY"
-msgstr "Lituanies \"nommerry\" QWERTY"
-
-#: ../../keyboard.pm_.c:237
-msgid "Lithuanian \"phonetic\" QWERTY"
-msgstr "Lituanies \"foneties\" QWERTY"
-
-#: ../../keyboard.pm_.c:238
-msgid "Latvian"
-msgstr "Latvies"
-
-#: ../../keyboard.pm_.c:239
-msgid "Macedonian"
-msgstr "Masedonies"
-
-#: ../../keyboard.pm_.c:240
-msgid "Dutch"
-msgstr "Nederlands"
-
-#: ../../keyboard.pm_.c:242
-msgid "Polish (qwerty layout)"
-msgstr "Pools (QWERTY uitleg)"
-
-#: ../../keyboard.pm_.c:243
-msgid "Polish (qwertz layout)"
-msgstr "Pools (QWERTZ uitleg)"
-
-#: ../../keyboard.pm_.c:244
-msgid "Portuguese"
-msgstr "Portugees"
-
-#: ../../keyboard.pm_.c:245
-msgid "Canadian (Quebec)"
-msgstr "Kanadees (Quebec)"
-
-#: ../../keyboard.pm_.c:247
-msgid "Romanian (qwertz)"
-msgstr "Romanies (QWERTZ)"
-
-#: ../../keyboard.pm_.c:248
-msgid "Romanian (qwerty)"
-msgstr "Romanies (QWERTY)"
-
-#: ../../keyboard.pm_.c:250
-msgid "Russian (Yawerty)"
-msgstr "Russue (Yawerty)"
-
-#: ../../keyboard.pm_.c:252
-msgid "Slovenian"
-msgstr "Sloveens"
-
-#: ../../keyboard.pm_.c:253
-msgid "Slovakian (QWERTZ)"
-msgstr "Slovaaks (QWERTZ)"
-
-#: ../../keyboard.pm_.c:254
-msgid "Slovakian (QWERTY)"
-msgstr "Slovaaks (QWERTY)"
-
-#: ../../keyboard.pm_.c:256
-msgid "Serbian (cyrillic)"
-msgstr "Serwies (Kirillies)"
-
-#: ../../keyboard.pm_.c:258
-#, fuzzy
-msgid "Tamil"
-msgstr "Tabel"
-
-#: ../../keyboard.pm_.c:259
-msgid "Thai keyboard"
-msgstr "Thai sleutelbord"
-
-#: ../../keyboard.pm_.c:261
-msgid "Tajik keyboard"
-msgstr "Tajik sleutelbord"
-
-#: ../../keyboard.pm_.c:262
-msgid "Turkish (traditional \"F\" model)"
-msgstr "Turks (tradisionele \"F\" model)"
-
-#: ../../keyboard.pm_.c:263
-msgid "Turkish (modern \"Q\" model)"
-msgstr "Turks (moderne \"Q\" modem)"
-
-#: ../../keyboard.pm_.c:265
-msgid "Ukrainian"
-msgstr "Ukranies"
-
-#: ../../keyboard.pm_.c:268
-msgid "US keyboard (international)"
-msgstr "VSA internasionale sleutelbord"
-
-#: ../../keyboard.pm_.c:269
-msgid "Vietnamese \"numeric row\" QWERTY"
-msgstr "Viėtnamees \"nommerry\" QWERTY"
-
-#: ../../keyboard.pm_.c:270
-msgid "Yugoslavian (latin)"
-msgstr "Jugoslaavs (latynse uitleg)"
-
-#: ../../keyboard.pm_.c:278
-msgid "Right Alt key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:279
-msgid "Both Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:280
-msgid "Control and Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:281
-msgid "CapsLock key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:282
-msgid "Ctrl and Alt keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:283
-msgid "Alt and Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:284
-msgid "\"Menu\" key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:285
-msgid "Left \"Windows\" key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:286
-msgid "Right \"Windows\" key"
-msgstr ""
-
-#: ../../loopback.pm_.c:32
-#, c-format
-msgid "Circular mounts %s\n"
-msgstr "Sirkulźre heg %s\n"
-
-#: ../../lvm.pm_.c:88
-msgid "Remove the logical volumes first\n"
-msgstr "Verwyder eers die logiese volumes\n"
-
-#: ../../modules.pm_.c:826
-msgid ""
-"PCMCIA support no longer exist for 2.2 kernels. Please use a 2.4 kernel."
-msgstr ""
-
-#: ../../mouse.pm_.c:25
-msgid "Sun - Mouse"
-msgstr "Sun - Muis"
-
-#: ../../mouse.pm_.c:32
-msgid "Logitech MouseMan+"
-msgstr "Logitech MouseMan+"
-
-#: ../../mouse.pm_.c:33
-msgid "Generic PS2 Wheel Mouse"
-msgstr "Generiese PS2 wielmuis"
-
-#: ../../mouse.pm_.c:34
-msgid "GlidePoint"
-msgstr "GlidePoint"
-
-#: ../../mouse.pm_.c:36 ../../mouse.pm_.c:63
-msgid "Kensington Thinking Mouse"
-msgstr "Kensington Thinking Mouse"
-
-#: ../../mouse.pm_.c:37 ../../mouse.pm_.c:59
-msgid "Genius NetMouse"
-msgstr "Genius NetMouse"
-
-#: ../../mouse.pm_.c:38
-msgid "Genius NetScroll"
-msgstr "Genius NetScroll"
-
-#: ../../mouse.pm_.c:43 ../../mouse.pm_.c:68
-msgid "1 button"
-msgstr "1 knop"
-
-#: ../../mouse.pm_.c:44 ../../mouse.pm_.c:51
-msgid "Generic 2 Button Mouse"
-msgstr "Generiese 2-knop muis"
-
-#: ../../mouse.pm_.c:45
-msgid "Generic"
-msgstr "Generies"
-
-#
-#: ../../mouse.pm_.c:46
-msgid "Wheel"
-msgstr "Wiel"
-
-#: ../../mouse.pm_.c:49
-msgid "serial"
-msgstr "seriaal"
-
-#: ../../mouse.pm_.c:52
-msgid "Generic 3 Button Mouse"
-msgstr "Generiese 3-knop muis"
-
-#: ../../mouse.pm_.c:53
-msgid "Microsoft IntelliMouse"
-msgstr "Microsoft IntelliMouse"
-
-#: ../../mouse.pm_.c:54
-msgid "Logitech MouseMan"
-msgstr "Logitech MouseMan"
-
-#: ../../mouse.pm_.c:55
-msgid "Mouse Systems"
-msgstr "Mouse Systems"
-
-#: ../../mouse.pm_.c:57
-msgid "Logitech CC Series"
-msgstr "Logitech CC Reeks (seriaal)"
-
-#: ../../mouse.pm_.c:58
-msgid "Logitech MouseMan+/FirstMouse+"
-msgstr "Logitech MouseMan+/FirstMouse+"
-
-#: ../../mouse.pm_.c:60
-msgid "MM Series"
-msgstr "MM Series"
-
-#: ../../mouse.pm_.c:61
-msgid "MM HitTablet"
-msgstr "MM HitTablet"
-
-#: ../../mouse.pm_.c:62
-msgid "Logitech Mouse (serial, old C7 type)"
-msgstr "Logitech Muis (seriaal, ou C7 tipe)"
-
-#: ../../mouse.pm_.c:66
-msgid "busmouse"
-msgstr "busmuis"
-
-#: ../../mouse.pm_.c:69
-msgid "2 buttons"
-msgstr "2 knoppies"
-
-#: ../../mouse.pm_.c:70
-msgid "3 buttons"
-msgstr "3 knoppies"
-
-#: ../../mouse.pm_.c:73
-msgid "none"
-msgstr "niks"
-
-#: ../../mouse.pm_.c:75
-msgid "No mouse"
-msgstr "Geen muis"
-
-#
-#: ../../mouse.pm_.c:499
-msgid "Please test the mouse"
-msgstr "Toets asb. die muis"
-
-#
-#: ../../mouse.pm_.c:500
-msgid "To activate the mouse,"
-msgstr "Om die muis te aktiveer"
-
-#: ../../mouse.pm_.c:501
-msgid "MOVE YOUR WHEEL!"
-msgstr "BEWEEG DIE WIEL!"
-
-#: ../../my_gtk.pm_.c:651
-msgid "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"
-msgstr "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"
-
-#: ../../my_gtk.pm_.c:686
-msgid "Finish"
-msgstr "Finnies"
-
-#: ../../my_gtk.pm_.c:686 ../../printerdrake.pm_.c:1588
-msgid "Next ->"
-msgstr "Volgende ->"
-
-#: ../../my_gtk.pm_.c:687 ../../printerdrake.pm_.c:1586
-msgid "<- Previous"
-msgstr "<- Vorige"
-
-#: ../../my_gtk.pm_.c:1019
-msgid "Is this correct?"
-msgstr "Is dit korrek?"
-
-#: ../../network/adsl.pm_.c:19 ../../network/ethernet.pm_.c:36
-msgid "Connect to the Internet"
-msgstr "Konnekteer aan die internet"
-
-#: ../../network/adsl.pm_.c:20
-msgid ""
-"The most common way to connect with adsl is pppoe.\n"
-"Some connections use pptp, a few ones use dhcp.\n"
-"If you don't know, choose 'use pppoe'"
-msgstr ""
-"Die mees algemene metode vir ADSL is om pppoe te gebruik.\n"
-"Daar is wel sekere konneksie wat pptp of DHCP gebruik.\n"
-"Indien u nie weet nie, kies 'gebruik pppoe'."
-
-#: ../../network/adsl.pm_.c:22
-#, fuzzy
-msgid "Alcatel speedtouch usb"
-msgstr "speedtouch USB"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use dhcp"
-msgstr "gebruik dhcp"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pppoe"
-msgstr "gebruik pppoe"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pptp"
-msgstr "gebruik pptp"
-
-#: ../../network/ethernet.pm_.c:37
-msgid ""
-"Which dhcp client do you want to use?\n"
-"Default is dhcpcd"
-msgstr ""
-"Watter DCHP-kliėnt wil u gebruik?\n"
-"Verstek is dhcpcd"
-
-#: ../../network/ethernet.pm_.c:88
-msgid ""
-"No ethernet network adapter has been detected on your system.\n"
-"I cannot set up this connection type."
-msgstr ""
-"Geen ethernetkaart is op die stelsel gevind nie.\n"
-"Ek kan nie hierdie konneksietipe opstel nie."
-
-#: ../../network/ethernet.pm_.c:92 ../../standalone/drakgw_.c:252
-msgid "Choose the network interface"
-msgstr "Kies die netwerkkoppelvlak"
-
-#: ../../network/ethernet.pm_.c:93
-msgid ""
-"Please choose which network adapter you want to use to connect to Internet"
-msgstr "Kies asb. die netwerkkoppelvlak wat u wil gebruik vir die internet."
-
-#: ../../network/ethernet.pm_.c:178
-msgid "no network card found"
-msgstr "geen netwerkkaart gevind nie"
-
-#: ../../network/ethernet.pm_.c:202 ../../network/network.pm_.c:360
-msgid "Configuring network"
-msgstr "Stel netwerk op"
-
-#: ../../network/ethernet.pm_.c:203
-msgid ""
-"Please enter your host name if you know it.\n"
-"Some DHCP servers require the hostname to work.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''."
-msgstr ""
-"Tik asb die rekenaarnaam in.\n"
-"Sekere DHCP-bedieners benodig die rekenaarnaam.\n"
-"Dit moet 'n volle gekwalifiseerde naam wees,\n"
-"bv. ``myne.mywerk.co.za''."
-
-#
-#: ../../network/ethernet.pm_.c:207 ../../network/network.pm_.c:365
-msgid "Host name"
-msgstr "Rekenaarnaam"
-
-#: ../../network/isdn.pm_.c:21 ../../network/isdn.pm_.c:44
-#: ../../network/netconnect.pm_.c:95 ../../network/netconnect.pm_.c:109
-#: ../../network/netconnect.pm_.c:164 ../../network/netconnect.pm_.c:175
-#: ../../network/netconnect.pm_.c:202 ../../network/netconnect.pm_.c:225
-#: ../../network/netconnect.pm_.c:233
-msgid "Network Configuration Wizard"
-msgstr "Netwerkkonfigurasie-assistent"
-
-#: ../../network/isdn.pm_.c:22
-msgid "External ISDN modem"
-msgstr "Eksterne ISDN-kaart"
-
-#: ../../network/isdn.pm_.c:22
-msgid "Internal ISDN card"
-msgstr "Interne ISDN-kaart"
-
-#: ../../network/isdn.pm_.c:22
-msgid "What kind is your ISDN connection?"
-msgstr "Watter tipe is u ISDN-konneksie?"
-
-#: ../../network/isdn.pm_.c:45
-msgid ""
-"Which ISDN configuration do you prefer?\n"
-"\n"
-"* The Old configuration uses isdn4net. It contains powerfull\n"
-" tools, but is tricky to configure, and not standard.\n"
-"\n"
-"* The New configuration is easier to understand, more\n"
-" standard, but with less tools.\n"
-"\n"
-"We recommand the light configuration.\n"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:54
-msgid "New configuration (isdn-light)"
-msgstr "Nuwe konfigurasie (Ligte ISDN/isdn-light)"
-
-#: ../../network/isdn.pm_.c:54
-msgid "Old configuration (isdn4net)"
-msgstr "Ou konfigurasie (isdn4net)"
-
-#: ../../network/isdn.pm_.c:170 ../../network/isdn.pm_.c:188
-#: ../../network/isdn.pm_.c:198 ../../network/isdn.pm_.c:205
-#: ../../network/isdn.pm_.c:215
-msgid "ISDN Configuration"
-msgstr "ISDN Konfigurasie"
-
-#: ../../network/isdn.pm_.c:170
-msgid ""
-"Select your provider.\n"
-" If it's not in the list, choose Unlisted"
-msgstr ""
-"Kies u internetdiensvoorsiener.\n"
-"Indien nie in die lys nie kies Ongelys"
-
-#: ../../network/isdn.pm_.c:183
-msgid "Europe protocol"
-msgstr "Europese protokol"
-
-#: ../../network/isdn.pm_.c:183
-msgid "Europe protocol (EDSS1)"
-msgstr "Europese protokol (EDSS1)"
-
-#
-#: ../../network/isdn.pm_.c:185
-msgid "Protocol for the rest of the world"
-msgstr "Protokol vir die res van die wźreld"
-
-#: ../../network/isdn.pm_.c:185
-msgid ""
-"Protocol for the rest of the world \n"
-" no D-Channel (leased lines)"
-msgstr ""
-"Protokol vir die res vd wźreld \n"
-" geen D-Kanaal nie (bruikhuurlyne)"
-
-#: ../../network/isdn.pm_.c:189
-msgid "Which protocol do you want to use ?"
-msgstr "Watter protokol verlang u?"
-
-#: ../../network/isdn.pm_.c:199
-msgid "What kind of card do you have?"
-msgstr "Oor watter tipe kaart beskik u?"
-
-#: ../../network/isdn.pm_.c:200
-msgid "I don't know"
-msgstr "Ek weet nie"
-
-#: ../../network/isdn.pm_.c:200
-msgid "ISA / PCMCIA"
-msgstr "ISA / PCMCIA"
-
-#: ../../network/isdn.pm_.c:200
-msgid "PCI"
-msgstr "PCI"
-
-#: ../../network/isdn.pm_.c:206
-msgid ""
-"\n"
-"If you have an ISA card, the values on the next screen should be right.\n"
-"\n"
-"If you have a PCMCIA card, you have to know the irq and io of your card.\n"
-msgstr ""
-"\n"
-"Indien u 'n ISA-kaart het, behoort die waardes op die volgende skerm reg te "
-"wees.\n"
-"\n"
-"Indien u 'n PCMCIA kaart het, moet u die IRQ en I/O van u kaart weet.\n"
-
-#: ../../network/isdn.pm_.c:210
-msgid "Abort"
-msgstr "Aborteer"
-
-#: ../../network/isdn.pm_.c:210
-msgid "Continue"
-msgstr "Gaan voort"
-
-#: ../../network/isdn.pm_.c:216
-msgid "Which is your ISDN card ?"
-msgstr "Wat is u ISDN-kaart?"
-
-#: ../../network/isdn.pm_.c:235
-msgid ""
-"I have detected an ISDN PCI Card, but I don't know the type. Please select "
-"one PCI card on the next screen."
-msgstr ""
-"Ek het 'n ISDB PCI-kaart gevind, maar ek ken nie die tipe nie. Kies asb.'n "
-"PCI-kaart op die volgende skerm."
-
-#: ../../network/isdn.pm_.c:244
-msgid "No ISDN PCI card found. Please select one on the next screen."
-msgstr "Geen ISDN PCI-kaart gevind nie. Kies asb. een op die volgende skerm."
-
-#: ../../network/modem.pm_.c:39
-msgid "Please choose which serial port your modem is connected to."
-msgstr "Op watter seriaalpoort is u modem gekoppel?"
-
-#: ../../network/modem.pm_.c:44
-msgid "Dialup options"
-msgstr "Opbelopsies"
-
-#: ../../network/modem.pm_.c:45 ../../standalone/draknet_.c:622
-msgid "Connection name"
-msgstr "Konneksienaam"
-
-#: ../../network/modem.pm_.c:46 ../../standalone/draknet_.c:623
-msgid "Phone number"
-msgstr "Telefoonnommer"
-
-#: ../../network/modem.pm_.c:47 ../../standalone/draknet_.c:624
-msgid "Login ID"
-msgstr "Aantekenkode"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "CHAP"
-msgstr "CHAP"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "PAP"
-msgstr "PAP"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Script-based"
-msgstr "Skriptipe"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Terminal-based"
-msgstr "Terminaaltipe"
-
-#: ../../network/modem.pm_.c:50 ../../standalone/draknet_.c:627
-msgid "Domain name"
-msgstr "Domeinnaam"
-
-#: ../../network/modem.pm_.c:51 ../../standalone/draknet_.c:628
-msgid "First DNS Server (optional)"
-msgstr "Eerste DNS-bediener (opsioneel)"
-
-#: ../../network/modem.pm_.c:52 ../../standalone/draknet_.c:629
-msgid "Second DNS Server (optional)"
-msgstr "Tweede DNS-bediener (opsioneel)"
-
-#: ../../network/netconnect.pm_.c:34
-msgid ""
-"\n"
-"You can disconnect or reconfigure your connection."
-msgstr ""
-"\n"
-"U kan diskonnekteer or herkonfigureer."
-
-#: ../../network/netconnect.pm_.c:34 ../../network/netconnect.pm_.c:37
-msgid ""
-"\n"
-"You can reconfigure your connection."
-msgstr ""
-"\n"
-"U kan u konneksie herkonfigureer."
-
-#: ../../network/netconnect.pm_.c:34
-msgid "You are currently connected to internet."
-msgstr "U is tans aan die internet gekonnekteer."
-
-#: ../../network/netconnect.pm_.c:37
-msgid ""
-"\n"
-"You can connect to Internet or reconfigure your connection."
-msgstr ""
-"\n"
-"U kan aan die internet konnekter of u konneksie herkonfigureer."
-
-#: ../../network/netconnect.pm_.c:37
-msgid "You are not currently connected to Internet."
-msgstr "U is nie tans aan die internet gekonnekteer nie."
-
-#: ../../network/netconnect.pm_.c:41
-msgid "Connect"
-msgstr "Konnekteer"
-
-#: ../../network/netconnect.pm_.c:43
-msgid "Disconnect"
-msgstr "Diskonnekteer"
-
-#: ../../network/netconnect.pm_.c:45
-#, fuzzy
-msgid "Configure the connection"
-msgstr "Stel netwerk op"
-
-#: ../../network/netconnect.pm_.c:50
-msgid "Internet connection & configuration"
-msgstr "Internetkonneksie en konfigurasie"
-
-#: ../../network/netconnect.pm_.c:100
-#, c-format
-msgid "We are now going to configure the %s connection."
-msgstr "Ons gaan nou die %s konneksie herkonfigureer."
-
-#: ../../network/netconnect.pm_.c:109
-#, c-format
-msgid ""
-"\n"
-"\n"
-"\n"
-"We are now going to configure the %s connection.\n"
-"\n"
-"\n"
-"Press OK to continue."
-msgstr ""
-"\n"
-"\n"
-"\n"
-"Ons gan nou die %s konneksie konfigureer.\n"
-"\n"
-"\n"
-"Drk OK om voort te gaan."
-
-#: ../../network/netconnect.pm_.c:138 ../../network/netconnect.pm_.c:252
-#: ../../network/netconnect.pm_.c:271 ../../network/tools.pm_.c:57
-msgid "Network Configuration"
-msgstr "Netwerkkonfigurasie"
-
-#: ../../network/netconnect.pm_.c:139
-msgid ""
-"Because you are doing a network installation, your network is already "
-"configured.\n"
-"Click on Ok to keep your configuration, or cancel to reconfigure your "
-"Internet & Network connection.\n"
-msgstr ""
-"Omdat u netwerk installasie doen, is u netwerk aslreeds opgestel.\n"
-"Kliek op OK om hierdee konfigurasie te behou, of op Kanselleer om u Internet "
-"& Netwerkkonneksie te herkonfigureer.\n"
-
-#: ../../network/netconnect.pm_.c:165
-msgid ""
-"Welcome to The Network Configuration Wizard\n"
-"\n"
-"We are about to configure your internet/network connection.\n"
-"If you don't want to use the auto detection, deselect the checkbox.\n"
-msgstr ""
-"Welkom by die Netwerkkonfigurasie-assistent\n"
-"\n"
-"Ons gaan nou u internet/netwerkkonneksie konfigureer.\n"
-"Iniden u nie outobespeuring verlang nie, deselekteer die opsie.\n"
-
-#: ../../network/netconnect.pm_.c:167
-msgid "Choose the profile to configure"
-msgstr "Kies die profiel om te konfigureer"
-
-#: ../../network/netconnect.pm_.c:168
-msgid "Use auto detection"
-msgstr "Gebruik outobespeuring"
-
-#: ../../network/netconnect.pm_.c:175
-msgid "Detecting devices..."
-msgstr "Toestel word afgetas..."
-
-#: ../../network/netconnect.pm_.c:186 ../../network/netconnect.pm_.c:195
-msgid "Normal modem connection"
-msgstr "Normale modemkonneksie"
-
-#: ../../network/netconnect.pm_.c:186 ../../network/netconnect.pm_.c:195
-#, c-format
-msgid "detected on port %s"
-msgstr "Op poort %s bespeur"
-
-#: ../../network/netconnect.pm_.c:187 ../../network/netconnect.pm_.c:196
-msgid "ISDN connection"
-msgstr "ISDN konneksie"
-
-#: ../../network/netconnect.pm_.c:187 ../../network/netconnect.pm_.c:196
-#, c-format
-msgid "detected %s"
-msgstr "%s bespeur"
-
-#: ../../network/netconnect.pm_.c:188 ../../network/netconnect.pm_.c:197
-msgid "ADSL connection"
-msgstr "ADSL konneksie"
-
-#: ../../network/netconnect.pm_.c:188 ../../network/netconnect.pm_.c:197
-#, c-format
-msgid "detected on interface %s"
-msgstr "op koppelvlak %s bespeur"
-
-#: ../../network/netconnect.pm_.c:189 ../../network/netconnect.pm_.c:198
-msgid "Cable connection"
-msgstr "Kabelkonneksie"
-
-#: ../../network/netconnect.pm_.c:189 ../../network/netconnect.pm_.c:198
-msgid "cable connection detected"
-msgstr "Kabelkonneksie bespeur"
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-msgid "LAN connection"
-msgstr "LAN konneksie"
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-msgid "ethernet card(s) detected"
-msgstr "ethernet kaart(e) bespeur"
-
-#: ../../network/netconnect.pm_.c:202
-msgid "Choose the connection you want to configure"
-msgstr "Kies die konneksie wat u wil konfigureer"
-
-#: ../../network/netconnect.pm_.c:226
-msgid ""
-"You have configured multiple ways to connect to the Internet.\n"
-"Choose the one you want to use.\n"
-"\n"
-msgstr ""
-"U het meer as een internetkonneksiemetode opgste.\n"
-"Kies die een wat u verlang.\n"
-"\n"
-
-#: ../../network/netconnect.pm_.c:227
-msgid "Internet connection"
-msgstr "Internetkonneksie"
-
-#: ../../network/netconnect.pm_.c:233
-msgid "Do you want to start the connection at boot?"
-msgstr "Wil u die konneksie met herlaaityd aanskakel?"
-
-#: ../../network/netconnect.pm_.c:247
-msgid "Network configuration"
-msgstr "Netwerkkonfigurasie"
-
-#: ../../network/netconnect.pm_.c:248
-msgid "The network needs to be restarted"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:252
-#, c-format
-msgid ""
-"A problem occured while restarting the network: \n"
-"\n"
-"%s"
-msgstr ""
-"Daar was 'n probleem met die herlaai van die netwerk.\n"
-"\n"
-"%s"
-
-#: ../../network/netconnect.pm_.c:261
-msgid ""
-"Congratulations, the network and Internet configuration is finished.\n"
-"The configuration will now be applied to your system.\n"
-"\n"
-msgstr ""
-"Geluk, die netwerk en internetkonfigurasie is voltooi.\n"
-"\n"
-"Die kongiurasie gaan op u stelsel toegepas word.\n"
-
-#: ../../network/netconnect.pm_.c:265
-msgid ""
-"After this is done, we recommend that you restart your X environment to "
-"avoid any hostname-related problems."
-msgstr ""
-"Nadat dit klaar is, sal dit beter wes om u X-omgewing te herlaai\n"
-"om die rekenaarnaamveranderingprobleem te voorkom."
-
-#: ../../network/netconnect.pm_.c:266
-msgid ""
-"Problems occured during configuration.\n"
-"Test your connection via net_monitor or mcc. If your connection doesn't "
-"work, you might want to relaunch the configuration"
-msgstr ""
-
-#: ../../network/network.pm_.c:292
-msgid ""
-"WARNING: This device has been previously configured to connect to the "
-"Internet.\n"
-"Simply accept to keep this device configured.\n"
-"Modifying the fields below will override this configuration."
-msgstr ""
-"WAARSKUWING: Die toestel is alreeds opgestel om aan die internette "
-"konnekteer.\n"
-"U kan die toestel net so aanvaar.\n"
-"Veranderinge aan onderstaande velde sal hierdie konfigurasie oorskryf."
-
-#: ../../network/network.pm_.c:297
-msgid ""
-"Please enter the IP configuration for this machine.\n"
-"Each item should be entered as an IP address in dotted-decimal\n"
-"notation (for example, 1.2.3.4)."
-msgstr ""
-"Gee asb die IP-konfigurasie vir hierdie rekenaar.\n"
-"Elke item moet as 'n IP-adres in dotdesimalenotasie\n"
-"(1.2.3.4) gegee word."
-
-#: ../../network/network.pm_.c:306 ../../network/network.pm_.c:307
-#, c-format
-msgid "Configuring network device %s"
-msgstr "Konfigureer netwerktoestel %s"
-
-#: ../../network/network.pm_.c:307
-#, c-format
-msgid " (driver %s)"
-msgstr "(drywer %s)"
-
-#
-#: ../../network/network.pm_.c:309 ../../standalone/draknet_.c:232
-#: ../../standalone/draknet_.c:468
-msgid "IP address"
-msgstr "IP adres"
-
-#
-#: ../../network/network.pm_.c:310 ../../standalone/draknet_.c:469
-msgid "Netmask"
-msgstr "Netmasker"
-
-#: ../../network/network.pm_.c:311
-msgid "(bootp/dhcp)"
-msgstr "(bootp/dhcp)"
-
-#: ../../network/network.pm_.c:311
-msgid "Automatic IP"
-msgstr "Outomatiese IP"
-
-#: ../../network/network.pm_.c:332 ../../printerdrake.pm_.c:712
-msgid "IP address should be in format 1.2.3.4"
-msgstr "IP-adres moet in 1.2.3.4. formaat wees"
-
-#: ../../network/network.pm_.c:361
-msgid ""
-"Please enter your host name.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''.\n"
-"You may also enter the IP address of the gateway if you have one"
-msgstr ""
-"Tik asb die rekenaarnaam in.\n"
-"Dit moet 'n volle gekwalifiseerde naam wees,\n"
-"bv. ``myne.mywerk.co.za''.\n"
-"U mag ook die netwerkhek byvoeg indien daar een is"
-
-#: ../../network/network.pm_.c:366
-msgid "DNS server"
-msgstr "DNS bediener"
-
-#: ../../network/network.pm_.c:367
-#, c-format
-msgid "Gateway (e.g. %s)"
-msgstr ""
-
-#: ../../network/network.pm_.c:369
-msgid "Gateway device"
-msgstr "Netwerkportaaltoestel"
-
-#: ../../network/network.pm_.c:381
-msgid "Proxies configuration"
-msgstr "Instaanbedienerkonfigurasie"
-
-#: ../../network/network.pm_.c:382
-msgid "HTTP proxy"
-msgstr "HTTP instaanbediener"
-
-#: ../../network/network.pm_.c:383
-msgid "FTP proxy"
-msgstr "FTP instaanbediener"
-
-#: ../../network/network.pm_.c:384
-msgid "Track network card id (usefull for laptops)"
-msgstr "Volg netwerkkart ID. (nuttig vir skootrekenaars)"
-
-#: ../../network/network.pm_.c:387
-msgid "Proxy should be http://..."
-msgstr "Instaanbediener moet begin met http://"
-
-#: ../../network/network.pm_.c:388
-msgid "Proxy should be ftp://..."
-msgstr "Instaanbediener moet begin met ftp://"
-
-#: ../../network/tools.pm_.c:39
-msgid "Internet configuration"
-msgstr "Internetkonfigurasie"
-
-#: ../../network/tools.pm_.c:40
-msgid "Do you want to try to connect to the Internet now?"
-msgstr "Wil u nou aan die internet konnekteer?"
-
-#: ../../network/tools.pm_.c:44 ../../standalone/draknet_.c:197
-msgid "Testing your connection..."
-msgstr "Konneksie word getoets..."
-
-#: ../../network/tools.pm_.c:50
-msgid "The system is now connected to Internet."
-msgstr "Die stelsel is nou aan die internet gekonnekteer."
-
-#: ../../network/tools.pm_.c:51
-msgid "For Security reason, it will be disconnected now."
-msgstr "Vir sekuriteitsredes, word u nou gediskonnekteer."
-
-#: ../../network/tools.pm_.c:52
-msgid ""
-"The system doesn't seem to be connected to internet.\n"
-"Try to reconfigure your connection."
-msgstr ""
-"Die tselsel blyk nie aan die internet gekonnekteer te wees nie.\n"
-"Probeer om u stelsel te herkonfigureer."
-
-#
-#: ../../network/tools.pm_.c:76
-msgid "Connection Configuration"
-msgstr "Konneksiekonfigurasie"
-
-#: ../../network/tools.pm_.c:77
-msgid "Please fill or check the field below"
-msgstr "Vul asb. die velde hieronder in"
-
-#: ../../network/tools.pm_.c:79 ../../standalone/draknet_.c:608
-msgid "Card IRQ"
-msgstr "Kaart IRQ"
-
-#: ../../network/tools.pm_.c:80 ../../standalone/draknet_.c:609
-msgid "Card mem (DMA)"
-msgstr "Kaartgeheue (DMA)"
-
-#: ../../network/tools.pm_.c:81 ../../standalone/draknet_.c:610
-msgid "Card IO"
-msgstr "Kaart I/O"
-
-#: ../../network/tools.pm_.c:82 ../../standalone/draknet_.c:611
-msgid "Card IO_0"
-msgstr "Kaart IO_0"
-
-#: ../../network/tools.pm_.c:83 ../../standalone/draknet_.c:612
-msgid "Card IO_1"
-msgstr "Kaart IO_1"
-
-#: ../../network/tools.pm_.c:84 ../../standalone/draknet_.c:613
-msgid "Your personal phone number"
-msgstr "U persoonlike telefoonnommer"
-
-#: ../../network/tools.pm_.c:85 ../../standalone/draknet_.c:614
-msgid "Provider name (ex provider.net)"
-msgstr "Voorsienernaam (bv voorsiener.co.za)"
-
-#: ../../network/tools.pm_.c:86 ../../standalone/draknet_.c:615
-msgid "Provider phone number"
-msgstr "Voorsiener se telefoonnommer"
-
-#: ../../network/tools.pm_.c:87 ../../standalone/draknet_.c:616
-msgid "Provider dns 1 (optional)"
-msgstr "Voorsiener DNS 1 (opsioneel)"
-
-#: ../../network/tools.pm_.c:88 ../../standalone/draknet_.c:617
-msgid "Provider dns 2 (optional)"
-msgstr "Voorsiener DNS 2 (opsioneel)"
-
-#: ../../network/tools.pm_.c:89
-msgid "Choose your country"
-msgstr "Kies u land"
-
-#: ../../network/tools.pm_.c:90 ../../standalone/draknet_.c:620
-msgid "Dialing mode"
-msgstr "Belmetode"
-
-#: ../../network/tools.pm_.c:91 ../../standalone/draknet_.c:632
-msgid "Connection speed"
-msgstr "Konneksiespoed"
-
-#: ../../network/tools.pm_.c:92 ../../standalone/draknet_.c:633
-msgid "Connection timeout (in sec)"
-msgstr "Konneksie tydlimiet (in sekondes)"
-
-#: ../../network/tools.pm_.c:93 ../../standalone/draknet_.c:618
-msgid "Account Login (user name)"
-msgstr "Gebruikerskode"
-
-#: ../../network/tools.pm_.c:94 ../../standalone/draknet_.c:619
-msgid "Account Password"
-msgstr "Wagwoord"
-
-#: ../../partition_table.pm_.c:600
-msgid "mount failed: "
-msgstr "heg het gefaal"
-
-#: ../../partition_table.pm_.c:664
-msgid "Extended partition not supported on this platform"
-msgstr "Ekstensiepartisie word nie op hierdie platform ondersteun nie"
-
-#: ../../partition_table.pm_.c:682
-msgid ""
-"You have a hole in your partition table but I can't use it.\n"
-"The only solution is to move your primary partitions to have the hole next "
-"to the extended partitions"
-msgstr ""
-"U het 'n gat die partisietabel maar ek kan dit nie gebruik nie.\n"
-"Die enigste oplossing is om die primźre partisie te skuif sodat die gat\n"
-"langs die ekstensie partisies is"
-
-#: ../../partition_table.pm_.c:770
-#, c-format
-msgid "Restoring from file %s failed: %s"
-msgstr "Herstel van léer %s het gefaal: %s"
-
-#: ../../partition_table.pm_.c:772
-msgid "Bad backup file"
-msgstr "Korrupte rugsteunlźer"
-
-#: ../../partition_table.pm_.c:794
-#, c-format
-msgid "Error writing to file %s"
-msgstr "Fout in die skryf van %s"
-
-#: ../../partition_table_raw.pm_.c:186
-msgid ""
-"Something bad is happening on your drive. \n"
-"A test to check the integrity of data has failed. \n"
-"It means writing anything on the disk will end up with random trash"
-msgstr ""
-"Iets vrots gebeur op u hardeskyf.\n"
-"'n Dataintegriteitstoets het misluk.\n"
-"Dit beteken dat enigiets wat na u hardeskyf geskryf word as gemors sal "
-"eindig."
-
-#: ../../pkgs.pm_.c:24
-msgid "must have"
-msgstr "benodig"
-
-#: ../../pkgs.pm_.c:25
-msgid "important"
-msgstr "belangrik"
-
-#: ../../pkgs.pm_.c:26
-msgid "very nice"
-msgstr "baie oulik"
-
-#: ../../pkgs.pm_.c:27
-msgid "nice"
-msgstr "oulik"
-
-#: ../../pkgs.pm_.c:28
-msgid "maybe"
-msgstr "moontlik"
-
-#: ../../printer.pm_.c:23
-msgid "CUPS - Common Unix Printing System"
-msgstr "CUPS - Generiese Unixdrukstelsel (Common Unix Printing System) "
-
-#: ../../printer.pm_.c:24
-msgid "LPRng - LPR New Generation"
-msgstr "LPRng - Nuwe generasie LPR"
-
-#: ../../printer.pm_.c:25
-msgid "LPD - Line Printer Daemon"
-msgstr "LPD - Lyndrukkerdiensprogram"
-
-#: ../../printer.pm_.c:26
-msgid "PDQ - Print, Don't Queue"
-msgstr "PDQ - Druk sonder drukkertou"
-
-#: ../../printer.pm_.c:32 ../../printer.pm_.c:871
-msgid "CUPS"
-msgstr "CUPS"
-
-#: ../../printer.pm_.c:33
-msgid "LPRng"
-msgstr "LPRng"
-
-#: ../../printer.pm_.c:34
-msgid "LPD"
-msgstr "LPD"
-
-#: ../../printer.pm_.c:35
-msgid "PDQ"
-msgstr "PDQ"
-
-#: ../../printer.pm_.c:47
-msgid "Local printer"
-msgstr "Plaaslike drukker"
-
-#
-#: ../../printer.pm_.c:48
-msgid "Remote printer"
-msgstr "Eksterne drukker"
-
-#
-#: ../../printer.pm_.c:49
-msgid "Printer on remote CUPS server"
-msgstr "Eksterne CUPS-drukker"
-
-#
-#: ../../printer.pm_.c:50 ../../printerdrake.pm_.c:734
-msgid "Printer on remote lpd server"
-msgstr "Eksterne LPD-drukker"
-
-#
-#: ../../printer.pm_.c:51
-#, fuzzy
-msgid "Network printer (TCP/Socket)"
-msgstr "Netwerkdrukker (sok)"
-
-#: ../../printer.pm_.c:52
-msgid "Printer on SMB/Windows 95/98/NT server"
-msgstr "Eksterne SMB/Windows 95/98/NT-drukker"
-
-#: ../../printer.pm_.c:53
-msgid "Printer on NetWare server"
-msgstr "Eksterne Netware-drukker"
-
-#: ../../printer.pm_.c:54 ../../printerdrake.pm_.c:738
-msgid "Enter a printer device URI"
-msgstr "Tik drukkertoestel URI in"
-
-#: ../../printer.pm_.c:55
-msgid "Pipe job into a command"
-msgstr "Pyk drukstuk na program"
-
-#: ../../printer.pm_.c:504 ../../printer.pm_.c:695 ../../printer.pm_.c:1017
-#: ../../printerdrake.pm_.c:1665 ../../printerdrake.pm_.c:2730
-msgid "Unknown model"
-msgstr "Onbekende model"
-
-#: ../../printer.pm_.c:532
-#, fuzzy
-msgid "Local Printers"
-msgstr "Plaaslike drukker"
-
-#
-#: ../../printer.pm_.c:534 ../../printer.pm_.c:872
-#, fuzzy
-msgid "Remote Printers"
-msgstr "Eksterne drukker"
-
-#: ../../printer.pm_.c:541 ../../printerdrake.pm_.c:248
-#, c-format
-msgid " on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printer.pm_.c:544 ../../printerdrake.pm_.c:250
-#, c-format
-msgid ", USB printer \\/*%s"
-msgstr ""
-
-#: ../../printer.pm_.c:549
-#, c-format
-msgid ", multi-function device on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printer.pm_.c:552
-msgid ", multi-function device on USB"
-msgstr ""
-
-#: ../../printer.pm_.c:554
-msgid ", multi-function device on HP JetDirect"
-msgstr ""
-
-#: ../../printer.pm_.c:556
-msgid ", multi-function device"
-msgstr ""
-
-#: ../../printer.pm_.c:559
-#, fuzzy, c-format
-msgid ", printing to %s"
-msgstr "Fout in die skryf van %s"
-
-#: ../../printer.pm_.c:561
-#, c-format
-msgid "on LPD server \"%s\", printer \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:563
-#, c-format
-msgid ", TCP/IP host \"%s\", port %s"
-msgstr ""
-
-#: ../../printer.pm_.c:567
-#, c-format
-msgid "on Windows server \"%s\", share \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:571
-#, c-format
-msgid "on Novell server \"%s\", printer \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:573
-#, c-format
-msgid ", using command %s"
-msgstr ""
-
-#: ../../printer.pm_.c:692 ../../printerdrake.pm_.c:1136
-msgid "Raw printer (No driver)"
-msgstr ""
-
-#: ../../printer.pm_.c:841
-#, c-format
-msgid "(on %s)"
-msgstr "(op %s)"
-
-#: ../../printer.pm_.c:843
-msgid "(on this machine)"
-msgstr "(op hierdie rekenaar)"
-
-#: ../../printer.pm_.c:868
-#, fuzzy, c-format
-msgid "On CUPS server \"%s\""
-msgstr "CUPS-bediener IP:"
-
-#: ../../printer.pm_.c:874 ../../printerdrake.pm_.c:2391
-#: ../../printerdrake.pm_.c:2402 ../../printerdrake.pm_.c:2618
-#: ../../printerdrake.pm_.c:2670 ../../printerdrake.pm_.c:2697
-#: ../../printerdrake.pm_.c:2867 ../../printerdrake.pm_.c:2869
-msgid " (Default)"
-msgstr " (Verstek)"
-
-#: ../../printerdrake.pm_.c:22
-msgid "Select Printer Connection"
-msgstr "Kies drukkerkonneksie"
-
-#: ../../printerdrake.pm_.c:23
-msgid "How is the printer connected?"
-msgstr "Hoe is die drukker gekonekteer?"
-
-#: ../../printerdrake.pm_.c:25
-#, fuzzy
-msgid ""
-"\n"
-"Printers on remote CUPS servers you do not have to configure here; these "
-"printers will be automatically detected."
-msgstr ""
-"\n"
-"Met 'n eksterne CUPS-bediener, hoef u glad nie 'n drukker hier\n"
-"op te stel nie; drukkers wod outomaties bespeur.\n"
-"Indien u twyfel, kies \"Eksterne CUPS-drukker\"."
-
-#: ../../printerdrake.pm_.c:69 ../../printerdrake.pm_.c:2454
-#, fuzzy
-msgid "CUPS configuration"
-msgstr "Konfigurasie"
-
-#
-#: ../../printerdrake.pm_.c:70 ../../printerdrake.pm_.c:2455
-#, fuzzy
-msgid "Specify CUPS server"
-msgstr "Verwyder CUPS-bediener"
-
-#: ../../printerdrake.pm_.c:71
-msgid ""
-"To get access to printers on remote CUPS servers in your local network you "
-"do not have to configure anything; the CUPS servers inform your machine "
-"automatically about their printers. All printers currently known to your "
-"machine are listed in the \"Remote printers\" section in the main window of "
-"Printerdrake. When your CUPS server is not in your local network, you have "
-"to enter the CUPS server IP address and optionally the port number to get "
-"the printer information from the server, otherwise leave these fields blank."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:72
-msgid ""
-"\n"
-"Normally, CUPS is automatically configured according to your network "
-"environment, so that you can access the printers on the CUPS servers in your "
-"local network. If this does not work correctly, turn off \"Automatic CUPS "
-"configuration\" and edit your file /etc/cups/cupsd.conf manually. Do not "
-"forget to restart CUPS afterwards (command: \"service cups restart\")."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:76
-msgid "The IP address should look like 192.168.1.20"
-msgstr "IP-adres moet iets soos 192.168.1.20. lyk"
-
-#: ../../printerdrake.pm_.c:80 ../../printerdrake.pm_.c:862
-msgid "The port number should be an integer!"
-msgstr "Die poortnommer moet heeltal wees."
-
-#: ../../printerdrake.pm_.c:87
-msgid "CUPS server IP"
-msgstr "CUPS-bediener IP:"
-
-#: ../../printerdrake.pm_.c:88 ../../printerdrake.pm_.c:855
-msgid "Port"
-msgstr "Poort"
-
-#: ../../printerdrake.pm_.c:90
-msgid "Automatic CUPS configuration"
-msgstr "Outomatiese CUPS konfigurasie"
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-#, fuzzy
-msgid "Detecting devices ..."
-msgstr "Toestel word afgetas..."
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-msgid "Test ports"
-msgstr "Toets poorte"
-
-#: ../../printerdrake.pm_.c:167 ../../printerdrake.pm_.c:2437
-#: ../../printerdrake.pm_.c:2556
-#, fuzzy
-msgid "Add a new printer"
-msgstr "Voeg drukker by"
-
-#: ../../printerdrake.pm_.c:168
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard allows you to install local or remote printers to be used from "
-"this machine and also from other machines in the network.\n"
-"\n"
-"It asks you for all necessary information to set up the printer and gives "
-"you access to all available printer drivers, driver options, and printer "
-"connection types."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:176 ../../printerdrake.pm_.c:203
-#: ../../printerdrake.pm_.c:378 ../../printerdrake.pm_.c:393
-#: ../../printerdrake.pm_.c:403 ../../printerdrake.pm_.c:466
-#, fuzzy
-msgid "Local Printer"
-msgstr "Plaaslike drukker"
-
-#: ../../printerdrake.pm_.c:177
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard will help you to install your printer(s) connected to this "
-"computer.\n"
-"\n"
-"Please plug in your printer(s) on this computer and turn it/them on. Click "
-"on \"Next\" when you are ready, and on \"Cancel\" when you do not want to "
-"set up your printer(s) now.\n"
-"\n"
-"Note that some computers can crash during the printer auto-detection, turn "
-"off \"Auto-detect printers\" to do a printer installation without auto-"
-"detection. Use the \"Expert Mode\" of printerdrake when you want to set up "
-"printing on a remote printer if printerdrake does not list it automatically."
-msgstr ""
-
-#
-#: ../../printerdrake.pm_.c:186
-#, fuzzy
-msgid "Auto-detect printers"
-msgstr "Eksterne drukker"
-
-#: ../../printerdrake.pm_.c:204
-msgid ""
-"\n"
-"Congratulations, your printer is now installed and configured!\n"
-"\n"
-"You can print using the \"Print\" command of your application (usually in "
-"the \"File\" menu).\n"
-"\n"
-"If you want to add, remove, or rename a printer, or if you want to change "
-"the default option settings (paper input tray, printout quality, ...), "
-"select \"Printer\" in the \"Hardware\" section of the Mandrake Control "
-"Center."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:223
-msgid "Auto-Detection of Printers"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:224
-msgid ""
-"Printerdrake is able to auto-detect your locally connected parallel and USB "
-"printers for you, but note that on some systems the auto-detection CAN "
-"FREEZE YOUR SYSTEM AND THIS CAN LEAD TO CORRUPTED FILE SYSTEMS! So do it ON "
-"YOUR OWN RISK!\n"
-"\n"
-"Do you really want to get your printers auto-detected?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:227 ../../printerdrake.pm_.c:229
-#: ../../printerdrake.pm_.c:230
-#, fuzzy
-msgid "Do auto-detection"
-msgstr "Gebruik outobespeuring"
-
-#
-#: ../../printerdrake.pm_.c:228
-#, fuzzy
-msgid "Set up printer manually"
-msgstr "Eksterne drukkernaam"
-
-#: ../../printerdrake.pm_.c:256
-#, fuzzy, c-format
-msgid "Detected %s"
-msgstr "%s bespeur"
-
-#: ../../printerdrake.pm_.c:260 ../../printerdrake.pm_.c:287
-#: ../../printerdrake.pm_.c:306
-#, c-format
-msgid "Printer on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:262 ../../printerdrake.pm_.c:289
-#: ../../printerdrake.pm_.c:311
-#, c-format
-msgid "USB printer \\/*%s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:379
-msgid ""
-"No local printer found! To manually install a printer enter a device name/"
-"file name in the input line (Parallel Ports: /dev/lp0, /dev/lp1, ..., "
-"equivalent to LPT1:, LPT2:, ..., 1st USB printer: /dev/usb/lp0, 2nd USB "
-"printer: /dev/usb/lp1, ...)."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:383
-#, fuzzy
-msgid "You must enter a device or file name!"
-msgstr "Tik drukkertoestel URI in"
-
-#: ../../printerdrake.pm_.c:394
-#, fuzzy
-msgid ""
-"No local printer found!\n"
-"\n"
-msgstr "Plaaslike drukker"
-
-#: ../../printerdrake.pm_.c:395
-msgid ""
-"Network printers can only be installed after the installation. Choose "
-"\"Hardware\" and then \"Printer\" in the Mandrake Control Center."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:396
-msgid ""
-"To install network printers, click \"Cancel\", switch to the \"Expert Mode"
-"\", and click \"Add a new printer\" again."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:407
-msgid ""
-"The following printer was auto-detected, if it is not the one you want to "
-"configure, enter a device name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:408
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up or enter a device name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:410
-msgid ""
-"The following printer was auto-detected. The configuration of the printer "
-"will work fully automatically. If your printer was not correctly detected or "
-"if you prefer a customized printer configuration, turn on \"Manual "
-"configuration\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:411
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up. The configuration of the printer will work fully "
-"automatically. If your printer was not correctly detected or if you prefer a "
-"customized printer configuration, turn on \"Manual configuration\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:413
-msgid ""
-"Please choose the port where your printer is connected to or enter a device "
-"name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:414
-#, fuzzy
-msgid "Please choose the port where your printer is connected to."
-msgstr "Op watter seriaalpoort is u modem gekoppel?"
-
-#: ../../printerdrake.pm_.c:416
-msgid ""
-" (Parallel Ports: /dev/lp0, /dev/lp1, ..., equivalent to LPT1:, LPT2:, ..., "
-"1st USB printer: /dev/usb/lp0, 2nd USB printer: /dev/usb/lp1, ...)."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:421
-#, fuzzy
-msgid "You must choose/enter a printer/device!"
-msgstr "Tik drukkertoestel URI in"
-
-#: ../../printerdrake.pm_.c:441
-#, fuzzy
-msgid "Manual configuration"
-msgstr "Kleurkonfigurasie"
-
-#: ../../printerdrake.pm_.c:467
-msgid ""
-"Is your printer a multi-function device from HP (OfficeJet, PSC, PhotoSmart, "
-"LaserJet 1100/1200/1220/3200/3300 with scanner)?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:482
-#, fuzzy
-msgid "Installing HPOJ package..."
-msgstr "Installeer pakket %s"
-
-#: ../../printerdrake.pm_.c:487
-msgid "Checking device and configuring HPOJ ..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:505
-#, fuzzy
-msgid "Installing SANE package..."
-msgstr "Installeer pakket %s"
-
-#: ../../printerdrake.pm_.c:517
-msgid "Scanning on your HP multi-function device"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:534
-#, fuzzy
-msgid "Making printer port available for CUPS ..."
-msgstr "Drukkerdata word gelees..."
-
-#: ../../printerdrake.pm_.c:544 ../../printerdrake.pm_.c:1018
-#: ../../printerdrake.pm_.c:1132
-#, fuzzy
-msgid "Reading printer database ..."
-msgstr "Drukkerdata word gelees..."
-
-#: ../../printerdrake.pm_.c:624
-msgid "Remote lpd Printer Options"
-msgstr "Eksterne lpd drukkeropsies"
-
-#: ../../printerdrake.pm_.c:625
-#, fuzzy
-msgid ""
-"To use a remote lpd printer, you need to supply the hostname of the printer "
-"server and the printer name on that server."
-msgstr ""
-"Om 'n eksterne lpd drukkertou te gebruik,moett die naam\n"
-"van die drukkkerbediener en die naam van die drukkertou\n"
-"voorsien word."
-
-#: ../../printerdrake.pm_.c:626
-msgid "Remote host name"
-msgstr "Eksterne bedienernaam"
-
-#
-#: ../../printerdrake.pm_.c:627
-msgid "Remote printer name"
-msgstr "Eksterne drukkernaam"
-
-#: ../../printerdrake.pm_.c:630
-msgid "Remote host name missing!"
-msgstr "Eksterne bedienernaam ontbreek!"
-
-#: ../../printerdrake.pm_.c:634
-msgid "Remote printer name missing!"
-msgstr "Eksterne drukkernam ontbreek!"
-
-#: ../../printerdrake.pm_.c:702
-msgid "SMB (Windows 9x/NT) Printer Options"
-msgstr "SMB (Windows 9x/NT) drukkeropsies"
-
-#: ../../printerdrake.pm_.c:703
-#, fuzzy
-msgid ""
-"To print to a SMB printer, you need to provide the SMB host name (Note! It "
-"may be different from its TCP/IP hostname!) and possibly the IP address of "
-"the print server, as well as the share name for the printer you wish to "
-"access and any applicable user name, password, and workgroup information."
-msgstr ""
-"Om na 'n SMB drukker te druk moet u die volgende voorsien:\n"
-"SMB rekenaarnaam (dis nie noodwendig dieselfde as die TCP/IP rekenaarnaam\n"
-"nie); moontlik die IP adres van die drukkerbediener; die drukkernaam; \n"
-"toepaslike gebruikerskode en wagwoord; werkgroepnaam."
-
-#: ../../printerdrake.pm_.c:704
-msgid "SMB server host"
-msgstr "SMB-bedienernaam"
-
-#: ../../printerdrake.pm_.c:705
-msgid "SMB server IP"
-msgstr "SMB-bediener IP:"
-
-#: ../../printerdrake.pm_.c:706
-msgid "Share name"
-msgstr "Drukkernaam:"
-
-#: ../../printerdrake.pm_.c:709
-msgid "Workgroup"
-msgstr "Werkgroep:"
-
-#: ../../printerdrake.pm_.c:716
-msgid "Either the server name or the server's IP must be given!"
-msgstr "Óf die bedienernaam óf die bediener-IP moet verskaf word!"
-
-#: ../../printerdrake.pm_.c:720
-msgid "Samba share name missing!"
-msgstr "SAMBA-deelnaam ontbreek!"
-
-#: ../../printerdrake.pm_.c:725
-msgid "SECURITY WARNING!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:726
-#, c-format
-msgid ""
-"You are about to set up printing to a Windows account with password. Due to "
-"a fault in the architecture of the Samba client software the password is put "
-"in clear text into the command line of the Samba client used to transmit the "
-"print job to the Windows server. So it is possible for every user on this "
-"machine to display the password on the screen by issuing commands as \"ps "
-"auxwww\".\n"
-"\n"
-"We recommend to make use of one of the following alternatives (in all cases "
-"you have to make sure that only machines from your local network have access "
-"to your Windows server, for example by means of a firewall):\n"
-"\n"
-"Use a password-less account on your Windows server, as the \"GUEST\" account "
-"or a special account dedicated for printing. Do not remove the password "
-"protection from a personal account or the administrator account.\n"
-"\n"
-"Set up your Windows server to make the printer available under the LPD "
-"protocol. Then set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:736
-#, c-format
-msgid ""
-"Set up your Windows server to make the printer available under the IPP "
-"protocol and set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:739
-msgid ""
-"Connect your printer to a Linux server and let your Windows machine(s) "
-"connect to it as a client.\n"
-"\n"
-"Do you really want to continue setting up this printer as you are doing now?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:801
-msgid "NetWare Printer Options"
-msgstr "NetWare drukkeropsies"
-
-#: ../../printerdrake.pm_.c:802
-#, fuzzy
-msgid ""
-"To print on a NetWare printer, you need to provide the NetWare print server "
-"name (Note! it may be different from its TCP/IP hostname!) as well as the "
-"print queue name for the printer you wish to access and any applicable user "
-"name and password."
-msgstr ""
-"Om na 'n Netware drukker te druk moet u die volgende voorsien:\n"
-"Netware rekenaarnaam (dis nie noodwendig dieselfde as die TCP/IP\n"
-"rekenaarnaam nie); moontlik die IP adres van die drukkerbediener;\n"
-"die drukkernaam; toepaslike gebruikerskode en wagwoord."
-
-#: ../../printerdrake.pm_.c:803
-msgid "Printer Server"
-msgstr "Drukkerbediener"
-
-#: ../../printerdrake.pm_.c:804
-msgid "Print Queue Name"
-msgstr "Drukkertounaam"
-
-#: ../../printerdrake.pm_.c:809
-msgid "NCP server name missing!"
-msgstr "NCP-bedienernaam ontbreek!"
-
-#: ../../printerdrake.pm_.c:813
-msgid "NCP queue name missing!"
-msgstr "NCP-tounaam ontbreek!"
-
-#: ../../printerdrake.pm_.c:852
-#, fuzzy
-msgid "TCP/Socket Printer Options"
-msgstr "Sokdrukkeropsies"
-
-#: ../../printerdrake.pm_.c:853
-#, fuzzy
-msgid ""
-"To print to a TCP or socket printer, you need to provide the host name of "
-"the printer and optionally the port number. On HP JetDirect servers the port "
-"number is usually 9100, on other servers it can vary. See the manual of your "
-"hardware."
-msgstr ""
-"Om aan 'n sokdrukker te konnekteer, moet u die rekenaarnaam van die\n"
-"drukker voorsien en dalk ook 'n poortnommer voorsien.\n"
-"Met HP JetDirect-bedieners is die poortnommer gewoonlik 9100,\n"
-"maar dit mag anders wees met ander bedieners. Raadpleeg die handleiding\n"
-"wat saam met die hardeware gekom het."
-
-#: ../../printerdrake.pm_.c:854
-msgid "Printer host name"
-msgstr "Drukkerbedienernaam"
-
-#: ../../printerdrake.pm_.c:858
-msgid "Printer host name missing!"
-msgstr "Drukkerbedienernaam ontbreek!"
-
-#: ../../printerdrake.pm_.c:887 ../../printerdrake.pm_.c:889
-msgid "Printer Device URI"
-msgstr "Drukkertoestel URI"
-
-#: ../../printerdrake.pm_.c:888
-msgid ""
-"You can specify directly the URI to access the printer. The URI must fulfill "
-"either the CUPS or the Foomatic specifications. Note that not all URI types "
-"are supported by all the spoolers."
-msgstr ""
-"U kan die URI om die drukker te bereik direk spesifiseer. Die URI moet in "
-"CUPS- of Foomatic-formaat wees. Nie alle UTI-tipes moet deur al die "
-"spoelprogramme ondersteun nie."
-
-#: ../../printerdrake.pm_.c:903
-msgid "A valid URI must be entered!"
-msgstr "'n Geldige URI moet verskaf word!"
-
-#: ../../printerdrake.pm_.c:1004
-#, fuzzy
-msgid ""
-"Every printer needs a name (for example \"printer\"). The Description and "
-"Location fields do not need to be filled in. They are comments for the users."
-msgstr ""
-"Elke drukker benodig naam (bv. lp).\n"
-"Die Beskrywing- en Liggingvelde is opsioneel.\n"
-"Hulle dien as inligting vir gebruikers."
-
-#: ../../printerdrake.pm_.c:1005
-msgid "Name of printer"
-msgstr "Drukkernaam"
-
-#: ../../printerdrake.pm_.c:1006
-msgid "Description"
-msgstr "Beskrywing"
-
-#: ../../printerdrake.pm_.c:1007
-msgid "Location"
-msgstr "Ligging"
-
-#: ../../printerdrake.pm_.c:1021
-#, fuzzy
-msgid "Preparing printer database ..."
-msgstr "Drukkerdata word gelees..."
-
-#
-#: ../../printerdrake.pm_.c:1112
-#, fuzzy
-msgid "Your printer model"
-msgstr "Eksterne drukkernaam"
-
-#: ../../printerdrake.pm_.c:1113
-#, c-format
-msgid ""
-"Printerdrake has compared the model name resulting from the printer auto-"
-"detection with the models listed in its printer database to find the best "
-"match. This choice can be wrong, especially when your printer is not listed "
-"at all in the database. So check whether the choice is correct and click "
-"\"The model is correct\" if so and if not, click \"Select model manually\" "
-"so that you can choose your printer model manually on the next screen.\n"
-"\n"
-"For your printer Printerdrake has found:\n"
-"\n"
-"%s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1118 ../../printerdrake.pm_.c:1121
-#, fuzzy
-msgid "The model is correct"
-msgstr "Is dit korrek?"
-
-#
-#: ../../printerdrake.pm_.c:1119 ../../printerdrake.pm_.c:1120
-#: ../../printerdrake.pm_.c:1123
-#, fuzzy
-msgid "Select model manually"
-msgstr "Eksterne drukkernaam"
-
-#: ../../printerdrake.pm_.c:1139
-msgid "Printer model selection"
-msgstr "Drukkermodelkeuse"
-
-#: ../../printerdrake.pm_.c:1140
-msgid "Which printer model do you have?"
-msgstr "Oor watter tipe drukker beskik u?"
-
-#: ../../printerdrake.pm_.c:1141
-msgid ""
-"\n"
-"\n"
-"Please check whether Printerdrake did the auto-detection of your printer "
-"model correctly. Search the correct model in the list when the cursor is "
-"standing on a wrong model or on \"Raw printer\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1144
-msgid ""
-"If your printer is not listed, choose a compatible (see printer manual) or a "
-"similar one."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1220
-#, fuzzy
-msgid "OKI winprinter configuration"
-msgstr "Verander drukkerkonfigurasie"
-
-#: ../../printerdrake.pm_.c:1221
-msgid ""
-"You are configuring an OKI laser winprinter. These printers\n"
-"use a very special communication protocol and therefore they work only when "
-"connected to the first parallel port. When your printer is connected to "
-"another port or to a print server box please connect the printer to the "
-"first parallel port before you print a test page. Otherwise the printer will "
-"not work. Your connection type setting will be ignored by the driver."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1264 ../../printerdrake.pm_.c:1291
-#, fuzzy
-msgid "Lexmark inkjet configuration"
-msgstr "Internetkonfigurasie"
-
-#: ../../printerdrake.pm_.c:1265
-msgid ""
-"The inkjet printer drivers provided by Lexmark only support local printers, "
-"no printers on remote machines or print server boxes. Please connect your "
-"printer to a local port or configure it on the machine where it is connected "
-"to."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1292
-msgid ""
-"To be able to print with your Lexmark inkjet and this configuration, you "
-"need the inkjet printer drivers provided by Lexmark (http://www.lexmark."
-"com/). Go to the US site and click on the \"Drivers\" button. Then choose "
-"your model and afterwards \"Linux\" as operating system. The drivers come as "
-"RPM packages or shell scripts with interactive graphical installation. You "
-"do not need to do this configuration by the graphical frontends. Cancel "
-"directly after the license agreement. Then print printhead alignment pages "
-"with \"lexmarkmaintain\" and adjust the head alignment settings with this "
-"program."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1508
-msgid ""
-"Printer default settings\n"
-"\n"
-"You should make sure that the page size and the ink type/printing mode (if "
-"available) and also the hardware configuration of laser printers (memory, "
-"duplex unit, extra trays) are set correctly. Note that with a very high "
-"printout quality/resolution printing can get substantially slower."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1517
-#, c-format
-msgid "Option %s must be an integer number!"
-msgstr "Opsie %s moet 'n heeltal wees!"
-
-#: ../../printerdrake.pm_.c:1521
-#, c-format
-msgid "Option %s must be a number!"
-msgstr "Opsie %s moet 'n nommer wees"
-
-#: ../../printerdrake.pm_.c:1526
-#, c-format
-msgid "Option %s out of range!"
-msgstr "Opsie %s is buite bereik!"
-
-#: ../../printerdrake.pm_.c:1565
-#, c-format
-msgid ""
-"Do you want to set this printer (\"%s\")\n"
-"as the default printer?"
-msgstr ""
-"Wil u hierdie drukker (\"%s\")\n"
-"die verstek drukker maak?"
-
-#: ../../printerdrake.pm_.c:1582
-msgid "Test pages"
-msgstr "Toetsbladsye"
-
-#: ../../printerdrake.pm_.c:1583
-msgid ""
-"Please select the test pages you want to print.\n"
-"Note: the photo test page can take a rather long time to get printed and on "
-"laser printers with too low memory it can even not come out. In most cases "
-"it is enough to print the standard test page."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1587
-msgid "No test pages"
-msgstr "Geen toetsbladsye"
-
-#: ../../printerdrake.pm_.c:1588
-msgid "Print"
-msgstr "Druk"
-
-#: ../../printerdrake.pm_.c:1590
-msgid "Standard test page"
-msgstr "Standaard toetsbladsy"
-
-#: ../../printerdrake.pm_.c:1593
-msgid "Alternative test page (Letter)"
-msgstr "Alternatiewe toetsbladsy (Lettergrootte)"
-
-#: ../../printerdrake.pm_.c:1596
-msgid "Alternative test page (A4)"
-msgstr "Alternatiewe toetsbladsy (A4)"
-
-#: ../../printerdrake.pm_.c:1598
-msgid "Photo test page"
-msgstr "Fototoetsbladsy"
-
-#: ../../printerdrake.pm_.c:1602
-#, fuzzy
-msgid "Do not print any test page"
-msgstr "Druk toetsbladsy(e)"
-
-#: ../../printerdrake.pm_.c:1610 ../../printerdrake.pm_.c:1747
-msgid "Printing test page(s)..."
-msgstr "Toetsbladsy(e) word gedruk..."
-
-#: ../../printerdrake.pm_.c:1635
-#, c-format
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-"Printing status:\n"
-"%s\n"
-"\n"
-msgstr ""
-"Toetsbladsy(e) is na die drukkerstelsel gestuur.\n"
-"Dit mag 'n tydjie neem voordat drukwerk begin.\n"
-"Drukstatus:\n"
-"%s\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:1639
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-msgstr ""
-"Toetsbladsy(e) is na die drukker gestuur.\n"
-"Dit mag 'n tydjie neem voordat drukwerk begin.\n"
-
-#: ../../printerdrake.pm_.c:1646
-msgid "Did it work properly?"
-msgstr "Het dit reg gewerk?"
-
-#: ../../printerdrake.pm_.c:1667 ../../printerdrake.pm_.c:2732
-#, fuzzy
-msgid "Raw printer"
-msgstr "Geen drukker"
-
-#: ../../printerdrake.pm_.c:1685
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) you can either use "
-"the command \"%s <file>\" or a graphical printing tool: \"xpp <file>\" or "
-"\"kprinter <file>\". The graphical tools allow you to choose the printer and "
-"to modify the option settings easily.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1687
-msgid ""
-"These commands you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications, but here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1690 ../../printerdrake.pm_.c:1706
-#: ../../printerdrake.pm_.c:1716
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" command also allows to modify the option settings for a "
-"particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\". "
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1693 ../../printerdrake.pm_.c:1732
-#, c-format
-msgid ""
-"To know about the options available for the current printer read either the "
-"list shown below or click on the \"Print option list\" button.%s\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1696
-msgid ""
-"Here is a list of the available printing options for the current printer:\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1701 ../../printerdrake.pm_.c:1711
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\".\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1703 ../../printerdrake.pm_.c:1713
-#: ../../printerdrake.pm_.c:1723
-msgid ""
-"This command you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications. But here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1708 ../../printerdrake.pm_.c:1718
-msgid ""
-"To get a list of the options available for the current printer click on the "
-"\"Print option list\" button."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1721
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\" or \"%s <file>\".\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1725
-msgid ""
-"You can also use the graphical interface \"xpdq\" for setting options and "
-"handling printing jobs.\n"
-"If you are using KDE as desktop environment you have a \"panic button\", an "
-"icon on the desktop, labeled with \"STOP Printer!\", which stops all print "
-"jobs immediately when you click it. This is for example useful for paper "
-"jams.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1729
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" and \"%s\" commands also allow to modify the option settings for "
-"a particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\".\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1738 ../../printerdrake.pm_.c:1744
-#: ../../printerdrake.pm_.c:1745 ../../printerdrake.pm_.c:1746
-#: ../../printerdrake.pm_.c:2716 ../../standalone/drakbackup_.c:754
-#: ../../standalone/drakbackup_.c:2458 ../../standalone/drakfont_.c:577
-#: ../../standalone/drakfont_.c:791
-msgid "Close"
-msgstr "Sluit af"
-
-#: ../../printerdrake.pm_.c:1741 ../../printerdrake.pm_.c:1753
-#, fuzzy, c-format
-msgid "Printing/Scanning on \"%s\""
-msgstr "Netwerk op pad af"
-
-#: ../../printerdrake.pm_.c:1742 ../../printerdrake.pm_.c:1754
-#, fuzzy, c-format
-msgid "Printing on the printer \"%s\""
-msgstr "Netwerk op pad af"
-
-#: ../../printerdrake.pm_.c:1744
-#, fuzzy
-msgid "Print option list"
-msgstr "Drukkeropsies"
-
-#: ../../printerdrake.pm_.c:1766
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan with \"scanimage\" (\"scanimage -d hp:%s\" to specify "
-"the scanner when you have more than one) from the command line or with the "
-"graphical interfaces \"xscanimage\" or \"xsane\". If you are using the GIMP, "
-"you can also scan by choosing the appropriate point in the \"File\"/\"Acquire"
-"\" menu. Call also \"man scanimage\" and \"man sane-hp\" on the command line "
-"to get more information.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1772
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan from the command line with \"ptal-hp %s scan ...\". "
-"Scanning via a graphical interface or from the GIMP is not supported yet for "
-"your device. More information you will find in the \"/usr/share/doc/hpoj-0.8/"
-"ptal-hp-scan.html\" file on your system. If you have an HP LaserJet 1100 or "
-"1200 you can only scan when you have the scanner option installed.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1794 ../../printerdrake.pm_.c:2221
-#: ../../printerdrake.pm_.c:2485 ../../standalone/printerdrake_.c:49
-msgid "Reading printer data ..."
-msgstr "Drukkerdata word gelees..."
-
-#: ../../printerdrake.pm_.c:1814 ../../printerdrake.pm_.c:1842
-#: ../../printerdrake.pm_.c:1877
-msgid "Transfer printer configuration"
-msgstr "Dra drukkerkonfigurasie oor"
-
-#: ../../printerdrake.pm_.c:1815
-#, c-format
-msgid ""
-"You can copy the printer configuration which you have done for the spooler %"
-"s to %s, your current spooler. All the configuration data (printer name, "
-"description, location, connection type, and default option settings) is "
-"overtaken, but jobs will not be transferred.\n"
-"Not all queues can be transferred due to the following reasons:\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1818
-msgid ""
-"CUPS does not support printers on Novell servers or printers sending the "
-"data into a free-formed command.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1820
-msgid ""
-"PDQ only supports local printers, remote LPD printers, and Socket/TCP "
-"printers.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1822
-msgid "LPD and LPRng do not support IPP printers.\n"
-msgstr "LPD en LPRng ondersteun nie IPP-drukkers nie.\n"
-
-#: ../../printerdrake.pm_.c:1824
-msgid ""
-"In addition, queues not created with this program or \"foomatic-configure\" "
-"cannot be transferred."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1825
-msgid ""
-"\n"
-"Also printers configured with the PPD files provided by their manufacturers "
-"or with native CUPS drivers cannot be transferred."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1826
-msgid ""
-"\n"
-"Mark the printers which you want to transfer and click \n"
-"\"Transfer\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1829
-msgid "Do not transfer printers"
-msgstr "Moet nie drukkers oordra nie"
-
-#: ../../printerdrake.pm_.c:1830 ../../printerdrake.pm_.c:1847
-msgid "Transfer"
-msgstr "Oordrag"
-
-#: ../../printerdrake.pm_.c:1843
-#, c-format
-msgid ""
-"A printer named \"%s\" already exists under %s. \n"
-"Click \"Transfer\" to overwrite it.\n"
-"You can also type a new name or skip this printer."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1851
-msgid "Name of printer should contain only letters, numbers and the underscore"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1856
-#, c-format
-msgid ""
-"The printer \"%s\" already exists,\n"
-"do you really want to overwrite its configuration?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1864
-msgid "New printer name"
-msgstr "Nuwe drukkernaam"
-
-#: ../../printerdrake.pm_.c:1867
-#, c-format
-msgid "Transferring %s ..."
-msgstr "%s word oorgedra..."
-
-#: ../../printerdrake.pm_.c:1878
-#, c-format
-msgid ""
-"You have transferred your former default printer (\"%s\"), Should it be also "
-"the default printer under the new printing system %s?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1887
-#, fuzzy
-msgid "Refreshing printer data ..."
-msgstr "Drukkerdata word gelees..."
-
-#: ../../printerdrake.pm_.c:1895 ../../printerdrake.pm_.c:1966
-#: ../../printerdrake.pm_.c:1978
-#, fuzzy
-msgid "Configuration of a remote printer"
-msgstr "Konfigureer drukker"
-
-#: ../../printerdrake.pm_.c:1896
-#, fuzzy
-msgid "Starting network ..."
-msgstr "Konneksie word begin..."
-
-#: ../../printerdrake.pm_.c:1930 ../../printerdrake.pm_.c:1934
-#: ../../printerdrake.pm_.c:1936
-#, fuzzy
-msgid "Configure the network now"
-msgstr "Stel netwerk op"
-
-#: ../../printerdrake.pm_.c:1931
-#, fuzzy
-msgid "Network functionality not configured"
-msgstr "Monitor is nie opgestel nie"
-
-#: ../../printerdrake.pm_.c:1932
-msgid ""
-"You are going to configure a remote printer. This needs working network "
-"access, but your network is not configured yet. If you go on without network "
-"configuration, you will not be able to use the printer which you are "
-"configuring now. How do you want to proceed?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1935
-#, fuzzy
-msgid "Go on without configuring the network"
-msgstr "Stel netwerk op"
-
-#: ../../printerdrake.pm_.c:1968
-msgid ""
-"The network configuration done during the installation cannot be started "
-"now. Please check whether the network gets accessable after booting your "
-"system and correct the configuration using the Mandrake Control Center, "
-"section \"Network & Internet\"/\"Connection\", and afterwards set up the "
-"printer, also using the Mandrake Control Center, section \"Hardware\"/"
-"\"Printer\""
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1969
-msgid ""
-"The network access was not running and could not be started. Please check "
-"your configuration and your hardware. Then try to configure your remote "
-"printer again."
-msgstr ""
-
-#
-#: ../../printerdrake.pm_.c:1979
-#, fuzzy
-msgid "Restarting printing system ..."
-msgstr "Watter drukkerstelsel verlang u?"
-
-#: ../../printerdrake.pm_.c:2017
-#, fuzzy
-msgid "high"
-msgstr "Hoog"
-
-#: ../../printerdrake.pm_.c:2017
-#, fuzzy
-msgid "paranoid"
-msgstr "Paranoļes"
-
-#: ../../printerdrake.pm_.c:2018
-#, c-format
-msgid "Installing a printing system in the %s security level"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2019
-#, c-format
-msgid ""
-"You are about to install the printing system %s on a system running in the %"
-"s security level.\n"
-"\n"
-"This printing system runs a daemon (background process) which waits for "
-"print jobs and handles them. This daemon is also accessable by remote "
-"machines through the network and so it is a possible point for attacks. "
-"Therefore only a few selected daemons are started by default in this "
-"security level.\n"
-"\n"
-"Do you really want to configure printing on this machine?"
-msgstr ""
-
-#
-#: ../../printerdrake.pm_.c:2051
-#, fuzzy
-msgid "Starting the printing system at boot time"
-msgstr "Watter drukkerstelsel verlang u?"
-
-#: ../../printerdrake.pm_.c:2052
-#, c-format
-msgid ""
-"The printing system (%s) will not be started automatically when the machine "
-"is booted.\n"
-"\n"
-"It is possible that the automatic starting was turned off by changing to a "
-"higher security level, because the printing system is a potential point for "
-"attacks.\n"
-"\n"
-"Do you want to have the automatic starting of the printing system turned on "
-"again?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2075 ../../printerdrake.pm_.c:2113
-#: ../../printerdrake.pm_.c:2143 ../../printerdrake.pm_.c:2176
-#: ../../printerdrake.pm_.c:2281
-msgid "Checking installed software..."
-msgstr "Installeerde sagteware word deursoek..."
-
-#: ../../printerdrake.pm_.c:2117
-msgid "Removing LPRng..."
-msgstr "LPRng word verwyder..."
-
-#: ../../printerdrake.pm_.c:2147
-msgid "Removing LPD..."
-msgstr "LPD word verwyder..."
-
-#: ../../printerdrake.pm_.c:2205
-msgid "Select Printer Spooler"
-msgstr "Kies drukkerspoelprogram"
-
-#
-#: ../../printerdrake.pm_.c:2206
-msgid "Which printing system (spooler) do you want to use?"
-msgstr "Watter drukkerstelsel (spoelprogram) verlang u?"
-
-#: ../../printerdrake.pm_.c:2239
-#, fuzzy, c-format
-msgid "Configuring printer \"%s\" ..."
-msgstr "Konfigureer drukker"
-
-#: ../../printerdrake.pm_.c:2252
-#, fuzzy
-msgid "Installing Foomatic ..."
-msgstr "Installeer pakket %s"
-
-#: ../../printerdrake.pm_.c:2309 ../../printerdrake.pm_.c:2348
-#: ../../printerdrake.pm_.c:2733 ../../printerdrake.pm_.c:2803
-msgid "Printer options"
-msgstr "Drukkeropsies"
-
-#: ../../printerdrake.pm_.c:2318
-#, fuzzy
-msgid "Preparing PrinterDrake ..."
-msgstr "Drukkerdata word gelees..."
-
-#: ../../printerdrake.pm_.c:2335 ../../printerdrake.pm_.c:2890
-#, fuzzy
-msgid "Configuring applications..."
-msgstr "Konfigureer drukker"
-
-#: ../../printerdrake.pm_.c:2355
-msgid "Would you like to configure printing?"
-msgstr "Wil u 'n drukwerk nou konfigureer?"
-
-#: ../../printerdrake.pm_.c:2367
-msgid "Printing system: "
-msgstr "Drukkerstelsel:"
-
-#: ../../printerdrake.pm_.c:2415
-#, fuzzy
-msgid "Printerdrake"
-msgstr "Drukker"
-
-#: ../../printerdrake.pm_.c:2419
-#, fuzzy
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; to view information about it; "
-"or to make a printer on a remote CUPS server available for Star Office/"
-"OpenOffice.org."
-msgstr ""
-"Hier is die bestaande drukkertoue.\n"
-"U kan byvoeg or verwyder soos nodig."
-
-#: ../../printerdrake.pm_.c:2420
-#, fuzzy
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; or to view information about "
-"it."
-msgstr ""
-"Hier is die bestaande drukkertoue.\n"
-"U kan byvoeg or verwyder soos nodig."
-
-#: ../../printerdrake.pm_.c:2446
-msgid "Refresh printer list (to display all available remote CUPS printers)"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2464
-#, fuzzy
-msgid "Change the printing system"
-msgstr "Stel netwerk op"
-
-#: ../../printerdrake.pm_.c:2469 ../../standalone/draknet_.c:278
-msgid "Normal Mode"
-msgstr "Normale modus"
-
-#: ../../printerdrake.pm_.c:2625 ../../printerdrake.pm_.c:2675
-#: ../../printerdrake.pm_.c:2884
-#, fuzzy
-msgid "Do you want to configure another printer?"
-msgstr "Wil u die konfigurasie toets?"
-
-#: ../../printerdrake.pm_.c:2711
-msgid "Modify printer configuration"
-msgstr "Verander drukkerkonfigurasie"
-
-#: ../../printerdrake.pm_.c:2713
-#, fuzzy, c-format
-msgid ""
-"Printer %s\n"
-"What do you want to modify on this printer?"
-msgstr ""
-"Drukker %s: %s %s\n"
-"Wil u hierdie drukker verander?"
-
-#: ../../printerdrake.pm_.c:2717
-msgid "Do it!"
-msgstr "Gaan voort!"
-
-#: ../../printerdrake.pm_.c:2722 ../../printerdrake.pm_.c:2777
-msgid "Printer connection type"
-msgstr "Drukkerkonneksietipe"
-
-#: ../../printerdrake.pm_.c:2723 ../../printerdrake.pm_.c:2781
-msgid "Printer name, description, location"
-msgstr "Drukkernaam,. beskrywing, ligging"
-
-#: ../../printerdrake.pm_.c:2725 ../../printerdrake.pm_.c:2796
-msgid "Printer manufacturer, model, driver"
-msgstr "Drukkervervaardiger, model, drywer"
-
-#: ../../printerdrake.pm_.c:2726 ../../printerdrake.pm_.c:2797
-msgid "Printer manufacturer, model"
-msgstr "Drukkervervaardiger, model"
-
-#: ../../printerdrake.pm_.c:2735 ../../printerdrake.pm_.c:2807
-msgid "Set this printer as the default"
-msgstr "Maak hierdie die verstekdrukker"
-
-#: ../../printerdrake.pm_.c:2737 ../../printerdrake.pm_.c:2812
-msgid "Add this printer to Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2738 ../../printerdrake.pm_.c:2821
-msgid "Remove this printer from Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2739 ../../printerdrake.pm_.c:2830
-msgid "Print test pages"
-msgstr "Druk toetsbladsy(e)"
-
-#: ../../printerdrake.pm_.c:2740 ../../printerdrake.pm_.c:2832
-#, fuzzy
-msgid "Know how to use this printer"
-msgstr "Wil u die konfigurasie toets?"
-
-#
-#: ../../printerdrake.pm_.c:2742 ../../printerdrake.pm_.c:2834
-msgid "Remove printer"
-msgstr "Verwyder drukker"
-
-#: ../../printerdrake.pm_.c:2786
-#, fuzzy, c-format
-msgid "Removing old printer \"%s\" ..."
-msgstr "Drukkerdata word gelees..."
-
-#: ../../printerdrake.pm_.c:2810
-msgid "Default printer"
-msgstr "Verstek drukker"
-
-#: ../../printerdrake.pm_.c:2811
-#, c-format
-msgid "The printer \"%s\" is set as the default printer now."
-msgstr "Drukker \"%s\" is nou die verstekdrukker"
-
-#: ../../printerdrake.pm_.c:2815 ../../printerdrake.pm_.c:2818
-msgid "Adding printer to Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2816
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully added to Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2819
-#, c-format
-msgid "Failed to add the printer \"%s\" to Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2824 ../../printerdrake.pm_.c:2827
-msgid "Removing printer from Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2825
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully removed from Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2828
-#, c-format
-msgid "Failed to remove the printer \"%s\" from Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2836
-#, fuzzy, c-format
-msgid "Do you really want to remove the printer \"%s\"?"
-msgstr "Wil u die werklik die drukker verwyder?"
-
-#: ../../printerdrake.pm_.c:2838
-#, fuzzy, c-format
-msgid "Removing printer \"%s\" ..."
-msgstr "Drukkerdata word gelees..."
-
-#: ../../proxy.pm_.c:29 ../../proxy.pm_.c:37 ../../proxy.pm_.c:58
-#: ../../proxy.pm_.c:78
-msgid "Proxy configuration"
-msgstr "Instaanbedienerkonfigurasie"
-
-#: ../../proxy.pm_.c:30
-msgid ""
-"Welcome to the proxy configuration utility.\n"
-"\n"
-"Here, you'll be able to set up your http and ftp proxies\n"
-"with or without login and password\n"
-msgstr ""
-"Welkom by die proksiekonfigurasienutsprogram.\n"
-"\n"
-"Hier kan u die HTTP en FTP-instaanbedieners\n"
-"opstel met of sonder aantekenkodes en wagwoorde\n"
-
-#: ../../proxy.pm_.c:38
-msgid ""
-"Please fill in the http proxy informations\n"
-"Leave it blank if you don't want an http proxy"
-msgstr ""
-
-#: ../../proxy.pm_.c:39 ../../proxy.pm_.c:60
-msgid "URL"
-msgstr "URL"
-
-#: ../../proxy.pm_.c:40 ../../proxy.pm_.c:61
-msgid "port"
-msgstr "Poort"
-
-#: ../../proxy.pm_.c:44
-msgid "Url should begin with 'http:'"
-msgstr "Instaanbediener moet begin met http://"
-
-#: ../../proxy.pm_.c:48 ../../proxy.pm_.c:69
-msgid "The port part should be numeric"
-msgstr "Die poortgedeelte moet numeries wees"
-
-#: ../../proxy.pm_.c:59
-msgid ""
-"Please fill in the ftp proxy informations\n"
-"Leave it blank if you don't want an ftp proxy"
-msgstr ""
-"Vul asb. die FTP-instaanbediener inligting in\n"
-"Los dit oop indien u nie FTP-instaanbediener verlang nie"
-
-#: ../../proxy.pm_.c:65
-msgid "Url should begin with 'ftp:'"
-msgstr "Instaanbediener moet begin met ftp://"
-
-#: ../../proxy.pm_.c:79
-msgid ""
-"Please enter proxy login and password, if any.\n"
-"Leave it blank if you don't want login/passwd"
-msgstr ""
-
-#: ../../proxy.pm_.c:80
-msgid "login"
-msgstr "Gebruikerskode"
-
-#: ../../proxy.pm_.c:82
-msgid "password"
-msgstr "Herhaal wagwoord"
-
-#: ../../proxy.pm_.c:84
-msgid "re-type password"
-msgstr "Geen wagwoord"
-
-#: ../../proxy.pm_.c:88
-msgid "The passwords don't match. Try again!"
-msgstr "Die wagwoorde stem nie ooreen nie. Probeer weer!"
-
-#: ../../raid.pm_.c:35
-#, c-format
-msgid "Can't add a partition to _formatted_ RAID md%d"
-msgstr "Kan nie 'n partisie by geformatteerde RAID md%d byvoeg nie"
-
-#: ../../raid.pm_.c:111
-#, c-format
-msgid "Can't write file %s"
-msgstr "Kan nie lźer %s skryf nie"
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed"
-msgstr "mkraid het gefaal"
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed (maybe raidtools are missing?)"
-msgstr "mkraid het gefaal. Dalk is 'raidtools' nie beskikbaar nie."
-
-#: ../../raid.pm_.c:152
-#, c-format
-msgid "Not enough partitions for RAID level %d\n"
-msgstr "Nie genoeg partisies vir RAID vlak %d nie\n"
-
-#: ../../services.pm_.c:14
-msgid "Launch the ALSA (Advanced Linux Sound Architecture) sound system"
-msgstr "Loop die ALSA (Gevorderde Linux Klankargitektuur) klankstelsel"
-
-#: ../../services.pm_.c:15
-msgid "Anacron a periodic command scheduler."
-msgstr "Anacron is skeduleerder vir periodiese instruksies."
-
-#: ../../services.pm_.c:16
-msgid ""
-"apmd is used for monitoring batery status and logging it via syslog.\n"
-"It can also be used for shutting down the machine when the battery is low."
-msgstr ""
-"apmd word gebruik om battery status te monitor en dit dan te log via "
-"syslog.\n"
-"Dit kan ook gebruik word om die rekenaar af te bring wanneer die battery "
-"swak is."
-
-#: ../../services.pm_.c:18
-msgid ""
-"Runs commands scheduled by the at command at the time specified when\n"
-"at was run, and runs batch commands when the load average is low enough."
-msgstr ""
-"Loop instruksies deur 'at' geskeduleer op die tyd deur 'at' gespesifiseer. "
-"Loop ook instruksiebondels wanneer die stelsellas laag genoeg is."
-
-#: ../../services.pm_.c:20
-msgid ""
-"cron is a standard UNIX program that runs user-specified programs\n"
-"at periodic scheduled times. vixie cron adds a number of features to the "
-"basic\n"
-"UNIX cron, including better security and more powerful configuration options."
-msgstr ""
-"cron is die standaard UNIX program om gebruikergespesifiseerde programme\n"
-"op periodies geskeduleerde tye te loop. vixie cron voeg addisionele "
-"funksionaliteit\n"
-"by die standaard UNIX cron, insluitende beter sekuriteit en 'n kragtiger "
-"konfigurasie."
-
-#: ../../services.pm_.c:23
-msgid ""
-"GPM adds mouse support to text-based Linux applications such the\n"
-"Midnight Commander. It also allows mouse-based console cut-and-paste "
-"operations,\n"
-"and includes support for pop-up menus on the console."
-msgstr ""
-"GPM verleen muisvermoėns aan teksgebaseerde Linuxapplikasies soos\n"
-"Midnight Commander. Dit laat muisgebaseerde knip-en-plak aksies op die\n"
-"konsole toe asook opspringkieskaarte."
-
-#: ../../services.pm_.c:26
-msgid ""
-"HardDrake runs a hardware probe, and optionally configures\n"
-"new/changed hardware."
-msgstr ""
-
-#: ../../services.pm_.c:28 ../../standalone/logdrake_.c:412
-msgid ""
-"Apache is a World Wide Web server. It is used to serve HTML files and CGI."
-msgstr ""
-"Apache is 'n WWW-bediener.\n"
-"Dit kan HTML-lźers uitstuur en CGI's hanteer"
-
-#: ../../services.pm_.c:29
-msgid ""
-"The internet superserver daemon (commonly called inetd) starts a\n"
-"variety of other internet services as needed. It is responsible for "
-"starting\n"
-"many services, including telnet, ftp, rsh, and rlogin. Disabling inetd "
-"disables\n"
-"all of the services it is responsible for."
-msgstr ""
-"Die internetsuperbedienerdiensprogram (gewoonlik inetd genoem) laai 'n\n"
-"verskeidenheid internetdienste soos nodig. Dit is gewoonlik verantwoordelik "
-"vir\n"
-"telnet, ftp, rsh en rlogin. As inetd gesper word, sper dit ook die dienste "
-"waarvoor\n"
-"inetd verantwoordelik is."
-
-#: ../../services.pm_.c:33
-msgid ""
-"Launch packet filtering for Linux kernel 2.2 series, to set\n"
-"up a firewall to protect your machine from network attacks."
-msgstr ""
-
-#: ../../services.pm_.c:35
-msgid ""
-"This package loads the selected keyboard map as set in\n"
-"/etc/sysconfig/keyboard. This can be selected using the kbdconfig utility.\n"
-"You should leave this enabled for most machines."
-msgstr ""
-"Hierdie pakket laai die sleutelbordkaart soos dit in /etc/sysconfig/"
-"keyboard\n"
-"opgestel is. Dit kan vernader word met die kbdconfig nutsprogram. U moet "
-"dit\n"
-"op meeste rekenaars ongesper laat."
-
-#: ../../services.pm_.c:38
-msgid ""
-"Automatic regeneration of kernel header in /boot for\n"
-"/usr/include/linux/{autoconf,version}.h"
-msgstr ""
-
-#: ../../services.pm_.c:40
-msgid "Automatic detection and configuration of hardware at boot."
-msgstr "Outobespeuring en hardewarekonfigurasie met herlaaityd."
-
-#: ../../services.pm_.c:41
-msgid ""
-"Linuxconf will sometimes arrange to perform various tasks\n"
-"at boot-time to maintain the system configuration."
-msgstr ""
-
-#: ../../services.pm_.c:43
-msgid ""
-"lpd is the print daemon required for lpr to work properly. It is\n"
-"basically a server that arbitrates print jobs to printer(s)."
-msgstr ""
-"lpd is die drukkerdiensprogram en is nodig vir lpr om te funksioneer.\n"
-"Dit is 'n diens wat drukstukke na drukkers toe reguleer."
-
-#: ../../services.pm_.c:45
-msgid ""
-"Linux Virtual Server, used to build a high-performance and highly\n"
-"available server."
-msgstr ""
-
-#: ../../services.pm_.c:47 ../../standalone/logdrake_.c:413
-#, fuzzy
-msgid ""
-"named (BIND) is a Domain Name Server (DNS) that is used to resolve host "
-"names to IP addresses."
-msgstr ""
-"named (BIND) is die domeinnaamdiens (DNS) wat gebruik word om\n"
-"rekenaarname na IP-adresse toe om te skakel."
-
-#: ../../services.pm_.c:48
-msgid ""
-"Mounts and unmounts all Network File System (NFS), SMB (Lan\n"
-"Manager/Windows), and NCP (NetWare) mount points."
-msgstr ""
-"Heg en ontheg all netwerklźerstels (NFS), SMB (Lan Manger/Windows)\n"
-"en NCP (Netware) hegpunte."
-
-#: ../../services.pm_.c:50
-msgid ""
-"Activates/Deactivates all network interfaces configured to start\n"
-"at boot time."
-msgstr ""
-"Aktiveer/Deaktiveer all netwerkkoppelvlakke wat opgestel is om by\n"
-"herlaaityf te begin."
-
-#: ../../services.pm_.c:52
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP networks.\n"
-"This service provides NFS server functionality, which is configured via the\n"
-"/etc/exports file."
-msgstr ""
-"NFS is 'n populźre protokol vir lźerdeling oor TCP/IP netwerke.\n"
-"Hierdie diens voorsien NFS-bedienerfunksionaliteit. Dit word via\n"
-"die /etc/exports lźer opgestel."
-
-#: ../../services.pm_.c:55
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP\n"
-"networks. This service provides NFS file locking functionality."
-msgstr ""
-"NFS is 'n populźre protokol vir lźerdeling oor TCP/IP netwerke.\n"
-"Hierdie diens vorosien die NFS-lźersluitfunksionaliteit."
-
-#: ../../services.pm_.c:57
-msgid ""
-"Automatically switch on numlock key locker under console\n"
-"and XFree at boot."
-msgstr ""
-
-#: ../../services.pm_.c:59
-msgid "Support the OKI 4w and compatible winprinters."
-msgstr "Ondersteun die OKI-4W en aanpasbare WIN-drukkers"
-
-#: ../../services.pm_.c:60
-msgid ""
-"PCMCIA support is usually to support things like ethernet and\n"
-"modems in laptops. It won't get started unless configured so it is safe to "
-"have\n"
-"it installed on machines that don't need it."
-msgstr ""
-"PCMCIA is gewoonlik nodig om ondersteuning te verleen aan\n"
-"toestelle soos ethernet en modems in skootrekenaars. Dit sal nie\n"
-"gelaai word, behalwe as dit konfigureer is nie en dit is derhalwe\n"
-"veilig om op rekenaars te hź wat dit nie nodig het nie."
-
-#: ../../services.pm_.c:63
-msgid ""
-"The portmapper manages RPC connections, which are used by\n"
-"protocols such as NFS and NIS. The portmap server must be running on "
-"machines\n"
-"which act as servers for protocols which make use of the RPC mechanism."
-msgstr ""
-"Portmapper bestuur RPC-konneksies wat deur protokolle soos NFS en NIS\n"
-"gebruik word. Portmap moet loop op rekenaars wat as bedieners vir hierdie\n"
-"protokolle, en ander protokolle wat die RPC meganisme gebruik, dien."
-
-#: ../../services.pm_.c:66 ../../standalone/logdrake_.c:415
-#, fuzzy
-msgid ""
-"Postfix is a Mail Transport Agent, which is the program that moves mail from "
-"one machine to another."
-msgstr ""
-"POstfix is 'n E-posoordragagent (MTA). Dit is die program wat E-pos\n"
-"van een bediener na 'n ander oordra."
-
-#: ../../services.pm_.c:67
-msgid ""
-"Saves and restores system entropy pool for higher quality random\n"
-"number generation."
-msgstr ""
-"Stoor en herstel die stelselentropiepoel vir hoė kwaliteit,\n"
-"lukraaknommergenerasie."
-
-#: ../../services.pm_.c:69
-msgid ""
-"Assign raw devices to block devices (such as hard drive\n"
-"partitions), for the use of applications such as Oracle"
-msgstr ""
-
-#: ../../services.pm_.c:71
-msgid ""
-"The routed daemon allows for automatic IP router table updated via\n"
-"the RIP protocol. While RIP is widely used on small networks, more complex\n"
-"routing protocols are needed for complex networks."
-msgstr ""
-"Die 'routed' diensprogram hanteer outomatiese IP-roeteertabelopdatering\n"
-"via die RIP protokol. Alhoewel RIP baie gebruik word in klein netwerke, is\n"
-"meer komplekse protokolle nodig vir komplekse netwerke."
-
-#: ../../services.pm_.c:74
-msgid ""
-"The rstat protocol allows users on a network to retrieve\n"
-"performance metrics for any machine on that network."
-msgstr ""
-"Die 'rstat' protokol laat gebruikers op 'n netwerk toe om\n"
-"werksverrigtinginligting oor enige rekenaar op die netwerk te onttrek."
-
-#: ../../services.pm_.c:76
-msgid ""
-"The rusers protocol allows users on a network to identify who is\n"
-"logged in on other responding machines."
-msgstr ""
-"Die 'rusers' protokol laat netwerkgebruikers toe om te bepaal wie\n"
-"aangeteken is op ander samewerkende rekenaars."
-
-#: ../../services.pm_.c:78
-msgid ""
-"The rwho protocol lets remote users get a list of all of the users\n"
-"logged into a machine running the rwho daemon (similiar to finger)."
-msgstr ""
-"Die 'rwho' protokol laat eksterne gebruikers toe om te sien wie\n"
-"ingeteken is op 'n rkeneaar wat die 'rwho' diensprogram loop. (Amper soos "
-"'finger')."
-
-#: ../../services.pm_.c:80
-msgid "Launch the sound system on your machine"
-msgstr "Laai die klankstelsel op u rekenaar"
-
-#: ../../services.pm_.c:81
-msgid ""
-"Syslog is the facility by which many daemons use to log messages\n"
-"to various system log files. It is a good idea to always run syslog."
-msgstr ""
-"Syslog is die fasiliteit wat baie diensprogramme gebruik om boodskappe\n"
-"te log na 'n verskeidenheid loglźers. Dit is altyd goed om syslog te loop."
-
-#: ../../services.pm_.c:83
-msgid "Load the drivers for your usb devices."
-msgstr "Laai die drywers vir u USB-toestelle"
-
-#: ../../services.pm_.c:84
-msgid "Starts the X Font Server (this is mandatory for XFree to run)."
-msgstr "Laai die X-fontbediener (dis nodig vir XFree)."
-
-#: ../../services.pm_.c:110 ../../services.pm_.c:152
-msgid "Choose which services should be automatically started at boot time"
-msgstr "Kies watter dienste moet outomaties begin met herlaaityd."
-
-#: ../../services.pm_.c:122
-#, fuzzy
-msgid "Printing"
-msgstr "Druk"
-
-#: ../../services.pm_.c:123
-msgid "Internet"
-msgstr "Internet"
-
-#: ../../services.pm_.c:126
-msgid "File sharing"
-msgstr ""
-
-#: ../../services.pm_.c:128 ../../standalone/drakbackup_.c:934
-#, fuzzy
-msgid "System"
-msgstr "Stelselmode"
-
-#: ../../services.pm_.c:133
-#, fuzzy
-msgid "Remote Administration"
-msgstr "Eksterne lpd drukkeropsies"
-
-#: ../../services.pm_.c:141
-#, fuzzy
-msgid "Database Server"
-msgstr "Datbasis"
-
-#: ../../services.pm_.c:170
-#, c-format
-msgid "Services: %d activated for %d registered"
-msgstr ""
-
-#: ../../services.pm_.c:186
-msgid "Services"
-msgstr "Dienste"
-
-#: ../../services.pm_.c:198
-msgid "running"
-msgstr "aktief"
-
-#: ../../services.pm_.c:198
-msgid "stopped"
-msgstr "onaktief"
-
-#: ../../services.pm_.c:212
-msgid "Services and deamons"
-msgstr ""
-
-#: ../../services.pm_.c:217
-msgid ""
-"No additional information\n"
-"about this service, sorry."
-msgstr ""
-
-#: ../../services.pm_.c:224
-msgid "On boot"
-msgstr "met herlaai"
-
-#: ../../services.pm_.c:236
-#, fuzzy
-msgid "Start"
-msgstr "Toestand"
-
-#: ../../services.pm_.c:236
-#, fuzzy
-msgid "Stop"
-msgstr "Sektor"
-
-#: ../../share/advertising/00-thanks.pl_.c:9
-msgid "Thank you for choosing Mandrake Linux 8.2"
-msgstr ""
-
-#: ../../share/advertising/00-thanks.pl_.c:10
-msgid "Welcome to the Open Source world"
-msgstr ""
-
-#: ../../share/advertising/00-thanks.pl_.c:11
-msgid ""
-"The success of MandrakeSoft is based upon the principle of Free Software. "
-"Your new operating system is the result of collaborative work on the part of "
-"the worldwide Linux Community"
-msgstr ""
-
-#
-#: ../../share/advertising/01-gnu.pl_.c:9
-#, fuzzy
-msgid "Join the Free Software world"
-msgstr "Protokol vir die res van die wźreld"
-
-#: ../../share/advertising/01-gnu.pl_.c:10
-msgid ""
-"Get to know the Open Source community and become a member. Learn, teach, and "
-"help others by joining the many discussion forums that you will find in our "
-"\"Community\" webpages"
-msgstr ""
-
-#: ../../share/advertising/02-internet.pl_.c:9
-#, fuzzy
-msgid "Internet and Messaging"
-msgstr "Internettoegang"
-
-#: ../../share/advertising/02-internet.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best software to access everything the "
-"Internet has to offer: Surf the web & view animations with Mozilla and "
-"Konqueror, exchange email & organize your personal information with "
-"Evolution and Kmail, and much more"
-msgstr ""
-
-#: ../../share/advertising/03-graphic.pl_.c:9
-#, fuzzy
-msgid "Multimedia and Graphics"
-msgstr "Multimedia - Grafika"
-
-#: ../../share/advertising/03-graphic.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 lets you push your multimedia computer to its limits! Use "
-"the latest software to play music and audio files, edit and organize your "
-"images and photos, watch TV and videos, and much more"
-msgstr ""
-
-#: ../../share/advertising/04-develop.pl_.c:9
-msgid "Development"
-msgstr "Ontwikkeling"
-
-#: ../../share/advertising/04-develop.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 is the ultimate development platform. Discover the power "
-"of the GNU gcc compiler as well as the best Open Source development "
-"environments"
-msgstr ""
-
-#: ../../share/advertising/05-contcenter.pl_.c:9
-#, fuzzy
-msgid "Mandrake Control Center"
-msgstr "Beheersentrum"
-
-#: ../../share/advertising/05-contcenter.pl_.c:10
-msgid ""
-"The Mandrake Linux 8.2 Control Center is a one-stop location for fully "
-"customizing and configuring your Mandrake system"
-msgstr ""
-
-#: ../../share/advertising/06-user.pl_.c:9
-#, fuzzy
-msgid "User interfaces"
-msgstr "Netwerkkoppelvlak"
-
-#: ../../share/advertising/06-user.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides 11 different graphical desktop environments and "
-"window managers to choose from including GNOME 1.4, KDE 2.2.2, Window Maker "
-"0.8, and the rest"
-msgstr ""
-
-#: ../../share/advertising/07-server.pl_.c:9
-#, fuzzy
-msgid "Server Software"
-msgstr "SMB-bedienernaam"
-
-#: ../../share/advertising/07-server.pl_.c:10
-msgid ""
-"Transform your machine into a powerful server with just a few clicks of the "
-"mouse: Web server, email, firewall, router, file and print server, ..."
-msgstr ""
-
-#: ../../share/advertising/08-games.pl_.c:9
-msgid "Games"
-msgstr "Speletjies"
-
-#: ../../share/advertising/08-games.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best Open Source games - arcade, action, "
-"cards, sports, strategy, ..."
-msgstr ""
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:9
-msgid "MandrakeCampus"
-msgstr ""
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:10
-msgid ""
-"Would you like to learn Linux simply, quickly, and for free? MandrakeSoft "
-"provides free Linux training, as well as a way to test your progress, at "
-"MandrakeCampus -- our online training center"
-msgstr ""
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:9
-#, fuzzy
-msgid "MandrakeExpert"
-msgstr "Kundige"
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:10
-msgid ""
-"Quality support from the Linux Community, and from MandrakeSoft, is just "
-"around the corner. And if you're already a Linux veteran, become an \"Expert"
-"\" and share your knowledge at our support website"
-msgstr ""
-
-#: ../../share/advertising/11-consul.pl_.c:9
-msgid "MandrakeConsulting"
-msgstr ""
-
-#: ../../share/advertising/11-consul.pl_.c:10
-msgid ""
-"For all of your IT projects, our consultants are ready to analyze your "
-"requirements and offer a customized solution. Benefit from MandrakeSoft's "
-"vast experience as a Linux producer to provide a true IT alternative for "
-"your business organization"
-msgstr ""
-
-#: ../../share/advertising/12-MDKstore.pl_.c:9
-#, fuzzy
-msgid "MandrakeStore"
-msgstr "verpligtend"
-
-#: ../../share/advertising/12-MDKstore.pl_.c:10
-msgid ""
-"A full range of Linux solutions, as well as special offers on products and "
-"'goodies', are available online at our e-store"
-msgstr ""
-
-#: ../../share/advertising/13-Nvert.pl_.c:9
-msgid ""
-"For more information on MandrakeSoft's Professional Services and commercial "
-"offerings, please see the following web page:"
-msgstr ""
-
-#: ../../share/advertising/13-Nvert.pl_.c:11
-msgid "http://www.mandrakesoft.com/sales/contact"
-msgstr ""
-
-#: ../../standalone.pm_.c:25
-#, fuzzy
-msgid "Installing packages..."
-msgstr "Installeer pakket %s"
-
-#: ../../standalone/diskdrake_.c:85
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I'll try to go on blanking bad partitions"
-msgstr ""
-"Ek kan nie u partisietabel lees nie, dit is te korrup.\n"
-"Ek sal die nodige partisies skoonmak."
-
-#: ../../standalone/drakautoinst_.c:45
-msgid "Error!"
-msgstr "Fout!"
-
-#: ../../standalone/drakautoinst_.c:46
-#, c-format
-msgid "I can't find needed image file `%s'."
-msgstr "Ek kan nie die nodige herlaaibeeld '%s' kry nie."
-
-#: ../../standalone/drakautoinst_.c:48
-msgid "Auto Install Configurator"
-msgstr "Outoinstallasiekonfigurasieprogram"
-
-#: ../../standalone/drakautoinst_.c:49
-msgid ""
-"You are about to configure an Auto Install floppy. This feature is somewhat "
-"dangerous and must be used circumspectly.\n"
-"\n"
-"With that feature, you will be able to replay the installation you've "
-"performed on this computer, being interactively prompted for some steps, in "
-"order to change their values.\n"
-"\n"
-"For maximum safety, the partitioning and formatting will never be performed "
-"automatically, whatever you chose during the install of this computer.\n"
-"\n"
-"Do you want to continue?"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:71
-msgid "Automatic Steps Configuration"
-msgstr "Outomatiese Stappe Konfigurasie"
-
-#: ../../standalone/drakautoinst_.c:72
-msgid ""
-"Please choose for each step whether it will replay like your install, or it "
-"will be manual"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:145
-msgid ""
-"\n"
-"Welcome.\n"
-"\n"
-"The parameters of the auto-install are available in the sections on the left"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:243 ../../standalone/drakgw_.c:671
-#: ../../standalone/scannerdrake_.c:106
-msgid "Congratulations!"
-msgstr "Geluk!"
-
-#: ../../standalone/drakautoinst_.c:244
-msgid ""
-"The floppy has been successfully generated.\n"
-"You may now replay your installation."
-msgstr ""
-"Die floppie is sukselvol geskep.\n"
-"U kan nou weer 'n installasie uitspeel."
-
-#: ../../standalone/drakautoinst_.c:282
-#, fuzzy
-msgid "Auto Install"
-msgstr "Installasie"
-
-#: ../../standalone/drakautoinst_.c:352
-#, fuzzy
-msgid "Add an item"
-msgstr "Voeg 'n gebruiker by"
-
-#: ../../standalone/drakautoinst_.c:359
-#, fuzzy
-msgid "Remove the last item"
-msgstr "Terugluslźer %s word geformateer"
-
-#: ../../standalone/drakbackup_.c:448 ../../standalone/drakbackup_.c:451
-#: ../../standalone/drakbackup_.c:455
-msgid ""
-"***********************************************************************\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:449
-msgid ""
-"\n"
-" DrakBackup Report \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:450
-msgid ""
-"\n"
-" DrakBackup Daemon Report\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:453
-msgid ""
-"\n"
-"\n"
-"***********************************************************************\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:454
-msgid ""
-"\n"
-" DrakBackup Report Details\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:476
-msgid "total progess"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:555 ../../standalone/drakbackup_.c:602
-msgid "Backup system files..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:603 ../../standalone/drakbackup_.c:667
-#, fuzzy
-msgid "Hard Disk Backup files..."
-msgstr "Korrupte rugsteunlźer"
-
-#: ../../standalone/drakbackup_.c:615
-#, fuzzy
-msgid "Backup User files..."
-msgstr "Korrupte rugsteunlźer"
-
-#: ../../standalone/drakbackup_.c:616
-msgid "Hard Disk Backup Progress..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:666
-#, fuzzy
-msgid "Backup Other files..."
-msgstr "Korrupte rugsteunlźer"
-
-#: ../../standalone/drakbackup_.c:674
-#, c-format
-msgid ""
-"file list send by FTP : %s\n"
-" "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:677
-msgid ""
-"\n"
-"(!) FTP connexion problem: It was not possible to send your backup files by "
-"FTP.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:687
-msgid "(!) Error during mail sending. \n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:728 ../../standalone/drakbackup_.c:739
-#: ../../standalone/drakbackup_.c:750 ../../standalone/drakfont_.c:787
-#, fuzzy
-msgid "File Selection"
-msgstr "Pakketkeuse"
-
-#: ../../standalone/drakbackup_.c:755
-msgid "Select the files or directories and click on 'Add'"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:790
-msgid ""
-"\n"
-"Please check all options that you need.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:791
-msgid ""
-"These options can backup and restore all files in your /etc directory.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:792
-msgid "Backup your System files. ( /etc directory )"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:793
-msgid "Use incremental backup (do not replace old backups)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:794
-msgid "Do not include critical files (passwd, group, fstab)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:795
-msgid ""
-"With this option you will be able to restore any version\n"
-" of your /etc directory."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:812
-#, fuzzy
-msgid "Please check all users that you want to include in your backup."
-msgstr "Kies die pakkette wat u wil installeer"
-
-#: ../../standalone/drakbackup_.c:839
-msgid "Do not include the browser cache"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:840 ../../standalone/drakbackup_.c:864
-msgid "Use Incremental Backups (do not replace old backups)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:862 ../../standalone/drakfont_.c:827
-#, fuzzy
-msgid "Remove Selected"
-msgstr "Verwyder tou"
-
-#: ../../standalone/drakbackup_.c:900
-#, fuzzy
-msgid "Windows (FAT32)"
-msgstr "Verwyder Windows(TM)"
-
-#: ../../standalone/drakbackup_.c:939
-#, fuzzy
-msgid "Users"
-msgstr "Gebruikerskode"
-
-#: ../../standalone/drakbackup_.c:964
-msgid "Use FTP connection to backup"
-msgstr ""
-
-#
-#: ../../standalone/drakbackup_.c:967
-#, fuzzy
-msgid "Please enter the host name or IP."
-msgstr "Toets asb. die muis"
-
-#: ../../standalone/drakbackup_.c:972
-msgid ""
-"Please enter the directory to\n"
-" put the backup on this host."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:977
-#, fuzzy
-msgid "Please enter your login"
-msgstr "Probeer asb. weer"
-
-#: ../../standalone/drakbackup_.c:982
-#, fuzzy
-msgid "Please enter your password"
-msgstr "Probeer asb. weer"
-
-#: ../../standalone/drakbackup_.c:988
-#, fuzzy
-msgid "Remember this password"
-msgstr "Geen wagwoord"
-
-#: ../../standalone/drakbackup_.c:1052 ../../standalone/drakbackup_.c:2048
-#, fuzzy
-msgid "FTP Connection"
-msgstr "LAN konneksie"
-
-#: ../../standalone/drakbackup_.c:1059 ../../standalone/drakbackup_.c:2056
-#, fuzzy
-msgid "Secure Connection"
-msgstr "Kies drukkerkonneksie"
-
-#: ../../standalone/drakbackup_.c:1085 ../../standalone/drakbackup_.c:2889
-msgid "Use CD/DVDROM to backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1088 ../../standalone/drakbackup_.c:2893
-#, fuzzy
-msgid "Please choose your CD space"
-msgstr "Wat is u sleutelborduitleg?"
-
-#: ../../standalone/drakbackup_.c:1094 ../../standalone/drakbackup_.c:2905
-#, fuzzy
-msgid "Please check if you are using CDRW media"
-msgstr "Kliek asb. op 'n partisie"
-
-#: ../../standalone/drakbackup_.c:1100 ../../standalone/drakbackup_.c:2911
-msgid "Please check if you want to erase your CDRW before"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1106
-#, fuzzy
-msgid ""
-"Please check if you want to include\n"
-" install boot on your CD."
-msgstr "Kies die pakkette wat u wil installeer"
-
-#: ../../standalone/drakbackup_.c:1112
-msgid ""
-"Please enter your CD Writer device name\n"
-" ex: 0,1,0"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1153
-#, fuzzy
-msgid "Use tape to backup"
-msgstr "Korrupte rugsteunlźer"
-
-#: ../../standalone/drakbackup_.c:1156
-msgid "Please enter the device name to use for backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1162 ../../standalone/drakbackup_.c:1203
-#: ../../standalone/drakbackup_.c:2013
-msgid ""
-"Please enter the maximum size\n"
-" allowed for Drakbackup"
-msgstr ""
-
-#
-#: ../../standalone/drakbackup_.c:1195 ../../standalone/drakbackup_.c:2005
-#, fuzzy
-msgid "Please enter the directory to save:"
-msgstr "Toets asb. die muis"
-
-#: ../../standalone/drakbackup_.c:1209 ../../standalone/drakbackup_.c:2019
-#, fuzzy
-msgid "Use quota for backup files."
-msgstr "Korrupte rugsteunlźer"
-
-#: ../../standalone/drakbackup_.c:1267
-#, fuzzy
-msgid "Network"
-msgstr "Netwerkkoppelvlak"
-
-#: ../../standalone/drakbackup_.c:1272
-msgid "CDROM / DVDROM"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1277
-msgid "HardDrive / NFS"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1297 ../../standalone/drakbackup_.c:1301
-#: ../../standalone/drakbackup_.c:1305
-msgid "hourly"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1298 ../../standalone/drakbackup_.c:1302
-#: ../../standalone/drakbackup_.c:1305
-msgid "daily"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1299 ../../standalone/drakbackup_.c:1303
-#: ../../standalone/drakbackup_.c:1305
-msgid "weekly"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1300 ../../standalone/drakbackup_.c:1304
-#: ../../standalone/drakbackup_.c:1305
-msgid "monthly"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1312
-#, fuzzy
-msgid "Use daemon"
-msgstr "Gebruikerskode"
-
-#: ../../standalone/drakbackup_.c:1317
-#, fuzzy
-msgid ""
-"Please choose the time \n"
-"interval between each backup"
-msgstr "Kies die pakkette wat u wil installeer"
-
-#: ../../standalone/drakbackup_.c:1323
-#, fuzzy
-msgid ""
-"Please choose the\n"
-"media for backup."
-msgstr "Kies asb. 'n taal om te gebruik."
-
-#: ../../standalone/drakbackup_.c:1327
-#, fuzzy
-msgid "Use Hard Drive with daemon"
-msgstr "gebruik hardeksyfoptimisasie?"
-
-#: ../../standalone/drakbackup_.c:1329
-#, fuzzy
-msgid "Use FTP with daemon"
-msgstr "gebruik hardeksyfoptimisasie?"
-
-#: ../../standalone/drakbackup_.c:1333
-msgid "Please be sure that the cron daemon is included in your services."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1369
-msgid "Send mail report after each backup to :"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1411
-#, fuzzy
-msgid "What"
-msgstr "Wag"
-
-#
-#: ../../standalone/drakbackup_.c:1416
-#, fuzzy
-msgid "Where"
-msgstr "Wiel"
-
-#
-#: ../../standalone/drakbackup_.c:1421
-#, fuzzy
-msgid "When"
-msgstr "Wiel"
-
-#: ../../standalone/drakbackup_.c:1426
-#, fuzzy
-msgid "More Options"
-msgstr "Module opsies:"
-
-#: ../../standalone/drakbackup_.c:1445 ../../standalone/drakbackup_.c:2801
-#, fuzzy
-msgid "Drakbackup Configuration"
-msgstr "Netwerkkonfigurasie"
-
-#: ../../standalone/drakbackup_.c:1463
-#, fuzzy
-msgid "Please choose where you want to backup"
-msgstr "Kies die pakkette wat u wil installeer"
-
-#: ../../standalone/drakbackup_.c:1465
-msgid "on Hard Drive"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1476
-msgid "across Network"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1540
-#, fuzzy
-msgid "Please choose what you want to backup"
-msgstr "Kies die pakkette wat u wil installeer"
-
-#: ../../standalone/drakbackup_.c:1541
-#, fuzzy
-msgid "Backup system"
-msgstr "Stel lźerstelsels op"
-
-#: ../../standalone/drakbackup_.c:1542
-msgid "Backup Users"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1545
-msgid "Select user manually"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1627
-msgid ""
-"\n"
-"Backup Sources: \n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1628
-msgid ""
-"\n"
-"- System Files:\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1630
-msgid ""
-"\n"
-"- User Files:\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1632
-msgid ""
-"\n"
-"- Other Files:\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1634
-#, c-format
-msgid ""
-"\n"
-"- Save on Hard drive on path : %s\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1635
-#, c-format
-msgid ""
-"\n"
-"- Save on FTP on host : %s\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1636
-#, c-format
-msgid ""
-"\t\t user name: %s\n"
-"\t\t on path: %s \n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1637
-#, fuzzy
-msgid ""
-"\n"
-"- Options:\n"
-msgstr "Opsies"
-
-#: ../../standalone/drakbackup_.c:1638
-msgid "\tDo not include System Files\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1639
-msgid "\tBackups use tar and bzip2\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1640
-msgid "\tBackups use tar and gzip\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1641
-#, c-format
-msgid ""
-"\n"
-"- Daemon (%s) include :\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1642
-msgid "\t-Hard drive.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1643
-msgid "\t-CDROM.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1644
-msgid "\t-Network by FTP.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1645
-msgid "\t-Network by SSH.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1647
-msgid "No configuration, please click Wizard or Advanced.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1652
-msgid ""
-"List of data to restore:\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1753
-msgid ""
-"List of data corrupted:\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1755
-#, fuzzy
-msgid "Please uncheck or remove it on next time."
-msgstr "Op watter seriaalpoort is u modem gekoppel?"
-
-#: ../../standalone/drakbackup_.c:1765
-msgid "Backup files are corrupted"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1786
-msgid " All your selectionned data have been "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1787
-#, c-format
-msgid " Successfuly Restored on %s "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1886
-#, fuzzy
-msgid " Restore Configuration "
-msgstr "Netwerkkonfigurasie"
-
-#: ../../standalone/drakbackup_.c:1904
-msgid "OK to restore the other files."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1922
-msgid "User list to restore (only the most recent date per user is important)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1972
-#, fuzzy
-msgid "Backup the system files before:"
-msgstr "Korrupte rugsteunlźer"
-
-#: ../../standalone/drakbackup_.c:1974
-#, fuzzy
-msgid "please choose the date to restore"
-msgstr "Wat is u muistoestel?"
-
-#: ../../standalone/drakbackup_.c:2002
-#, fuzzy
-msgid "Use Hard Disk to backup"
-msgstr "Korrupte rugsteunlźer"
-
-#: ../../standalone/drakbackup_.c:2083
-#, fuzzy
-msgid "Restore from Hard Disk."
-msgstr "Herstel vanaf floppie"
-
-#: ../../standalone/drakbackup_.c:2085
-msgid "Please enter the directory where backups are stored"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2143
-#, fuzzy
-msgid "Select another media to restore from"
-msgstr "Wat is u muistoestel?"
-
-#: ../../standalone/drakbackup_.c:2145
-#, fuzzy
-msgid "Other Media"
-msgstr "Ander"
-
-#: ../../standalone/drakbackup_.c:2151
-#, fuzzy
-msgid "Restore system"
-msgstr "Installeer stelsel"
-
-#: ../../standalone/drakbackup_.c:2152
-#, fuzzy
-msgid "Restore Users"
-msgstr "Herstel vanaf lźer"
-
-#: ../../standalone/drakbackup_.c:2153
-#, fuzzy
-msgid "Restore Other"
-msgstr "Herstel vanaf lźer"
-
-#: ../../standalone/drakbackup_.c:2155
-msgid "select path to restore (instead of / )"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2159
-msgid "Do new backup before restore (only for incremental backups.)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2160
-msgid "Remove user directories before restore."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2217
-msgid "Restore all backups"
-msgstr ""
-
-#
-#: ../../standalone/drakbackup_.c:2225
-#, fuzzy
-msgid "Custom Restore"
-msgstr "Aangepaste"
-
-#: ../../standalone/drakbackup_.c:2266 ../../standalone/drakbackup_.c:2291
-#: ../../standalone/drakbackup_.c:2312 ../../standalone/drakbackup_.c:2333
-#: ../../standalone/drakbackup_.c:2351 ../../standalone/drakbackup_.c:2383
-#: ../../standalone/drakbackup_.c:2399 ../../standalone/drakbackup_.c:2419
-#: ../../standalone/drakbackup_.c:2438 ../../standalone/drakbackup_.c:2460
-#: ../../standalone/drakfont_.c:575
-msgid "Help"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2269 ../../standalone/drakbackup_.c:2296
-#: ../../standalone/drakbackup_.c:2315 ../../standalone/drakbackup_.c:2336
-#: ../../standalone/drakbackup_.c:2354 ../../standalone/drakbackup_.c:2402
-#: ../../standalone/drakbackup_.c:2422 ../../standalone/drakbackup_.c:2441
-#, fuzzy
-msgid "Previous"
-msgstr "<- Vorige"
-
-#: ../../standalone/drakbackup_.c:2271 ../../standalone/drakbackup_.c:2338
-#: ../../standalone/logdrake_.c:224
-#, fuzzy
-msgid "Save"
-msgstr "Toestand"
-
-#: ../../standalone/drakbackup_.c:2317
-#, fuzzy
-msgid "Build Backup"
-msgstr "Korrupte rugsteunlźer"
-
-#: ../../standalone/drakbackup_.c:2356 ../../standalone/drakbackup_.c:3033
-#, fuzzy
-msgid "Restore"
-msgstr "Herstel vanaf lźer"
-
-#: ../../standalone/drakbackup_.c:2404 ../../standalone/drakbackup_.c:2424
-#: ../../standalone/drakbackup_.c:2445
-#, fuzzy
-msgid "Next"
-msgstr "Teks"
-
-#: ../../standalone/drakbackup_.c:2478
-msgid ""
-"Please Build backup before to restore it...\n"
-" or verify that your path to save is correct."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2499
-msgid ""
-"Error durind sendmail\n"
-" your report mail was not sent\n"
-" Please configure sendmail"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2522
-#, fuzzy
-msgid "Package List to Install"
-msgstr "Kies pakkette om te installeer"
-
-#: ../../standalone/drakbackup_.c:2550
-msgid ""
-"Error durind sending file via FTP.\n"
-" Please correct your FTP configuration."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2573
-#, fuzzy
-msgid "Please select data to restore..."
-msgstr "Kies asb. 'n taal om te gebruik."
-
-#: ../../standalone/drakbackup_.c:2594
-#, fuzzy
-msgid "Please select media for backup..."
-msgstr "Kies asb. 'n taal om te gebruik."
-
-#: ../../standalone/drakbackup_.c:2616
-#, fuzzy
-msgid "Please select data to backup..."
-msgstr "Kies asb. 'n taal om te gebruik."
-
-#: ../../standalone/drakbackup_.c:2638
-msgid ""
-"No configuration file found \n"
-"please click Wizard or Advanced."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2659
-msgid "Under Devel ... please wait."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2739
-#, fuzzy
-msgid "Backup system files"
-msgstr "Korrupte rugsteunlźer"
-
-#: ../../standalone/drakbackup_.c:2741
-#, fuzzy
-msgid "Backup user files"
-msgstr "Korrupte rugsteunlźer"
-
-#: ../../standalone/drakbackup_.c:2743
-#, fuzzy
-msgid "Backup other files"
-msgstr "Korrupte rugsteunlźer"
-
-#: ../../standalone/drakbackup_.c:2745 ../../standalone/drakbackup_.c:2776
-msgid "Total Progress"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2767
-msgid "files sending by FTP"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2771
-#, fuzzy
-msgid "Sending files..."
-msgstr "Stoor in lźer"
-
-#: ../../standalone/drakbackup_.c:2841
-msgid "Data list to include on CDROM."
-msgstr ""
-
-#
-#: ../../standalone/drakbackup_.c:2899
-#, fuzzy
-msgid "Please enter the cd writer speed"
-msgstr "Toets asb. die muis"
-
-#: ../../standalone/drakbackup_.c:2917
-msgid "Please enter your CD Writer device name (ex: 0,1,0)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2923
-#, fuzzy
-msgid "Please check if you want to include install boot on your CD."
-msgstr "Kies die pakkette wat u wil installeer"
-
-#: ../../standalone/drakbackup_.c:2989
-#, fuzzy
-msgid "Backup Now from configuration file"
-msgstr "Netwerkkonfigurasie"
-
-#: ../../standalone/drakbackup_.c:2999
-#, fuzzy
-msgid "View Backup Configuration."
-msgstr "Netwerkkonfigurasie"
-
-#: ../../standalone/drakbackup_.c:3020
-#, fuzzy
-msgid "Wizard Configuration"
-msgstr "Konfigurasie"
-
-#: ../../standalone/drakbackup_.c:3024
-#, fuzzy
-msgid "Advanced Configuration"
-msgstr "Sluit konfigurasie af"
-
-#: ../../standalone/drakbackup_.c:3028
-#, fuzzy
-msgid "Backup Now"
-msgstr "Stel lźerstelsels op"
-
-#: ../../standalone/drakbackup_.c:3053
-msgid "Drakbackup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3104
-msgid ""
-"options description:\n"
-"\n"
-" In this step Drakbackup allow you to change:\n"
-"\n"
-" - The compression mode:\n"
-" \n"
-" If you check bzip2 compression, you will compress\n"
-" your data better than gzip (about 2-10 %).\n"
-" This option is not checked by default because\n"
-" this compression mode needs more time ( about 1000% more).\n"
-" \n"
-" - The update mode:\n"
-"\n"
-" This option will update your backup, but this\n"
-" option is not really useful because you need to\n"
-" decompress your backup before you can update it.\n"
-" \n"
-" - the .backupignore mode:\n"
-"\n"
-" Like with cvs, Drakbackup will ignore all references\n"
-" included in .backupignore files in each directories.\n"
-" ex: \n"
-" /*> cat .backupignore*/\n"
-" *.o\n"
-" *~\n"
-" ...\n"
-" \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3134
-msgid ""
-"\n"
-" Some errors during sendmail are caused by \n"
-" a bad configuration of postfix. To solve it you have to\n"
-" set myhostname or mydomain in /etc/postfix/main.cf\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3142
-msgid ""
-"options description:\n"
-"\n"
-" - Backup system files:\n"
-" \n"
-"\tThis option allows you to backup your /etc directory,\n"
-"\twhich contains all configuration files. Please be\n"
-"\tcareful during the restore step to not overwrite:\n"
-"\t\t/etc/passwd \n"
-"\t\t/etc/group \n"
-"\t\t/etc/fstab\n"
-"\n"
-" - Backup User files: \n"
-"\n"
-"\tThis option allows you select all users that you want \n"
-"\tto backup.\n"
-"\tTo preserve disk space, it is recommended that you \n"
-"\tdo not include web browser's cache.\n"
-"\n"
-" - Backup Other files: \n"
-"\n"
-"\tThis option allows you to add more data to save.\n"
-"\tWith the other backup it's not possible at the \n"
-"\tmoment to select select incremental backup.\t\t\n"
-" \n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerful \n"
-"\toption for backup. This option allows you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed afterward.\n"
-"\tThen you will be able, during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this option all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3181
-msgid ""
-"restore description:\n"
-" \n"
-"Only the most recent date will be used ,because with incremental \n"
-"backups it is necesarry to restore one by one each older backups.\n"
-"\n"
-"So if you don't like to restore an user please unselect all his\n"
-"check box.\n"
-"\n"
-"Otherwise, you are able to select only one of this\n"
-"\n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerfull \n"
-"\toption to use backup, this option allow you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed after.\n"
-"\tSo you will be able during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this options all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3207 ../../standalone/drakbackup_.c:3282
-msgid ""
-" Copyright (C) 2001 MandrakeSoft by DUPONT Sebastien <dupont_s\\@epita.fr>"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3209 ../../standalone/drakbackup_.c:3284
-msgid ""
-" This program is free software; you can redistribute it and/or modify\n"
-" it under the terms of the GNU General Public License as published by\n"
-" the Free Software Foundation; either version 2, or (at your option)\n"
-" any later version.\n"
-"\n"
-" This program is distributed in the hope that it will be useful,\n"
-" but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-" GNU General Public License for more details.\n"
-"\n"
-" You should have received a copy of the GNU General Public License\n"
-" along with this program; if not, write to the Free Software\n"
-" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3223
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select: \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, DrakBackup will remove \n"
-" your original directory and verify that all \n"
-" backup files are not corrupted. It is recommended \n"
-" you do a last backup before restoring.\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3261
-msgid ""
-"options description:\n"
-"\n"
-"Please be careful when you are using ftp backup, because only \n"
-"backups that are already built are sent to the server.\n"
-"So at the moment, you need to build the backup on your hard \n"
-"drive before sending it to the server.\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3270
-msgid ""
-"\n"
-"Restore Backup Problems:\n"
-"\n"
-"During the restore step, Drakbackup will verify all your\n"
-"backup files before restoring them.\n"
-"Before the restore, Drakbackup will remove \n"
-"your original directory, and you will loose all your \n"
-"data. It is important to be careful and not modify the \n"
-"backup data files by hand.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3298
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, Drakbackup will remove\n"
-" your original directory and verify that all\n"
-" backup files are not corrupted. It is recommended\n"
-" you do a last backup before restoring.\n"
-" \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakboot_.c:58
-#, c-format
-msgid "Installation of %s failed. The following error occured:"
-msgstr "%s installasie het gefaal a.g.v. hierdie fout: "
-
-#: ../../standalone/drakfont_.c:229
-msgid "Search installed fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:231
-msgid "Unselect fonts installed"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:252
-msgid "parse all fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:253
-#, fuzzy
-msgid "no fonts found"
-msgstr "%s is nie gevind nie"
-
-#: ../../standalone/drakfont_.c:261 ../../standalone/drakfont_.c:303
-#: ../../standalone/drakfont_.c:352 ../../standalone/drakfont_.c:410
-#: ../../standalone/drakfont_.c:417 ../../standalone/drakfont_.c:443
-#: ../../standalone/drakfont_.c:455 ../../standalone/drakfont_.c:468
-#, fuzzy
-msgid "done"
-msgstr "Klaar"
-
-#: ../../standalone/drakfont_.c:265
-msgid "could not find any font in your mounted partitions"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:301
-msgid "Reselect correct fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:304
-msgid "could not find any font.\n"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:327
-msgid "Search fonts in installed list"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:350
-#, fuzzy
-msgid "Fonts copy"
-msgstr "Formatteer floppie"
-
-#: ../../standalone/drakfont_.c:353
-#, fuzzy
-msgid "True Type fonts installation"
-msgstr "Berei installasie voor"
-
-#: ../../standalone/drakfont_.c:357
-msgid "please wait during ttmkfdir..."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:359
-msgid "True Type install done"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:366 ../../standalone/drakfont_.c:382
-msgid "Fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:370 ../../standalone/drakfont_.c:386
-#: ../../standalone/drakfont_.c:406
-msgid "type1inst building"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:375 ../../standalone/drakfont_.c:390
-msgid "Ghostscript referencing"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:397
-msgid "ttf fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:401
-msgid "pfm fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:411
-msgid "Suppress temporary Files"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:414
-#, fuzzy
-msgid "Restart XFS"
-msgstr "Laai dit"
-
-#: ../../standalone/drakfont_.c:453 ../../standalone/drakfont_.c:463
-msgid "Suppress Fonts Files"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:465
-#, fuzzy
-msgid "xfs restart"
-msgstr "beperk"
-
-#: ../../standalone/drakfont_.c:472 ../../standalone/drakfont_.c:760
-msgid ""
-"Before installing any fonts, be sure that you have the right to use and "
-"install them on your system.\n"
-"\n"
-"-You can install the fonts using the normal way. In rare cases, bogus fonts "
-"may hang up your X Server."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:547
-#, fuzzy
-msgid "Fonts Importation"
-msgstr "Formateer partisies"
-
-#: ../../standalone/drakfont_.c:562
-msgid "Get Windows Fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:564
-#, fuzzy
-msgid "Uninstall Fonts"
-msgstr "Deļnstallasie van RPMs"
-
-#: ../../standalone/drakfont_.c:568
-#, fuzzy
-msgid "Advanced Options"
-msgstr "Sluit konfigurasie af"
-
-#: ../../standalone/drakfont_.c:570
-#, fuzzy
-msgid "Font List"
-msgstr "Hegpunt"
-
-#: ../../standalone/drakfont_.c:739
-#, fuzzy
-msgid "Choose the applications that will support the fonts :"
-msgstr "Kies die partisies om te formatteer"
-
-#: ../../standalone/drakfont_.c:743
-msgid "Ghostscript"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:747
-#, fuzzy
-msgid "StarOffice"
-msgstr "Kantoor"
-
-#: ../../standalone/drakfont_.c:751
-#, fuzzy
-msgid "Abiword"
-msgstr "Aborteer"
-
-#: ../../standalone/drakfont_.c:755
-#, fuzzy
-msgid "Generic Printers"
-msgstr "Drukker"
-
-#: ../../standalone/drakfont_.c:792
-msgid "Select the font file or directory and click on 'Add'"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:828
-#, fuzzy
-msgid "Install List"
-msgstr "Installeer stelsel"
-
-#: ../../standalone/drakfont_.c:858
-msgid "click here if you are sure."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:860
-msgid "here if no."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:897
-msgid "Unselected All"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:899
-#, fuzzy
-msgid "Selected All"
-msgstr "Selekteer lOer"
-
-#
-#: ../../standalone/drakfont_.c:901
-#, fuzzy
-msgid "Remove List"
-msgstr "Verwyder drukker"
-
-#: ../../standalone/drakfont_.c:919 ../../standalone/drakfont_.c:939
-#, fuzzy
-msgid "Initials tests"
-msgstr "Beginboodskap"
-
-#: ../../standalone/drakfont_.c:920
-#, fuzzy
-msgid "Copy fonts on your system"
-msgstr "Daar is geen netwerkkaart op hierdie rekenaar nie!"
-
-#: ../../standalone/drakfont_.c:921
-msgid "Install & convert Fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:922
-#, fuzzy
-msgid "Post Install"
-msgstr "Installasie"
-
-#: ../../standalone/drakfont_.c:940
-#, fuzzy
-msgid "Remove fonts on your system"
-msgstr "Daar is geen netwerkkaart op hierdie rekenaar nie!"
-
-#: ../../standalone/drakfont_.c:941
-#, fuzzy
-msgid "Post Uninstall"
-msgstr "Verlaay installasie"
-
-#: ../../standalone/drakgw_.c:43 ../../standalone/drakgw_.c:200
-msgid "Internet Connection Sharing"
-msgstr "Internetkonneksiedeling"
-
-#: ../../standalone/drakgw_.c:138
-msgid "Internet Connection Sharing currently enabled"
-msgstr "Internetkonneksiedeling is ontsper"
-
-#: ../../standalone/drakgw_.c:139
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently enabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-"Die opstelling van die Internetkonnkesiedeling is alreeds gedoen.\n"
-"Dis tans aktief.\n"
-"\n"
-"Wat wil u doen?"
-
-#: ../../standalone/drakgw_.c:143
-msgid "disable"
-msgstr "deaktiveer"
-
-#: ../../standalone/drakgw_.c:143 ../../standalone/drakgw_.c:168
-msgid "dismiss"
-msgstr "ignoreer/sien oor"
-
-#: ../../standalone/drakgw_.c:143 ../../standalone/drakgw_.c:168
-msgid "reconfigure"
-msgstr "herkonfigureer"
-
-#: ../../standalone/drakgw_.c:146
-msgid "Disabling servers..."
-msgstr "Bedieners word gedeaktiveer..."
-
-#: ../../standalone/drakgw_.c:154
-msgid "Internet connection sharing is now disabled."
-msgstr "Internetkonneksiedeling is gedeaktiveer"
-
-#: ../../standalone/drakgw_.c:163
-msgid "Internet Connection Sharing currently disabled"
-msgstr "Internetkonneksiedeling is gesper"
-
-#: ../../standalone/drakgw_.c:164
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently disabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-"Die opstelling van die Internetkonnkesiedeling is alreeds gedoen.\n"
-"Dis tans gedeaktiveer.\n"
-"\n"
-"Wat wil u doen?"
-
-#: ../../standalone/drakgw_.c:168
-msgid "enable"
-msgstr "Aktiveer"
-
-#: ../../standalone/drakgw_.c:175
-msgid "Enabling servers..."
-msgstr "Bedieneers word aktiveer..."
-
-#: ../../standalone/drakgw_.c:180
-msgid "Internet connection sharing is now enabled."
-msgstr "Internetkonneksiedeling is geaktiveer"
-
-#: ../../standalone/drakgw_.c:201
-#, fuzzy
-msgid ""
-"You are about to configure your computer to share its Internet connection.\n"
-"With that feature, other computers on your local network will be able to use "
-"this computer's Internet connection.\n"
-"\n"
-"Note: you need a dedicated Network Adapter to set up a Local Area Network "
-"(LAN)."
-msgstr ""
-"Nou dat u internetkonfigurasie opgestel is,\n"
-"moet u die rekenaar opstel om dit te deel.\n"
-"LW: U benodig 'n ware netwerkkaart om 'n lokalearea netwerk (LAN) op te "
-"stel.\n"
-"\n"
-"Wil u internetdeling opstel?\n"
-
-#: ../../standalone/drakgw_.c:227
-#, c-format
-msgid "Interface %s (using module %s)"
-msgstr "Koppelvlak %s (met module %s)"
-
-#: ../../standalone/drakgw_.c:228
-#, c-format
-msgid "Interface %s"
-msgstr "Koppelvlak %s"
-
-#: ../../standalone/drakgw_.c:236
-msgid "No network adapter on your system!"
-msgstr "Daar is geen netwerkkaart op hierdie rekenaar nie!"
-
-#: ../../standalone/drakgw_.c:237
-msgid ""
-"No ethernet network adapter has been detected on your system. Please run the "
-"hardware configuration tool."
-msgstr ""
-"Geen ethernetkaart is op die stelsel gevind nie. Gebruik asb. die "
-"hardewarekonfigurasieprogram."
-
-#: ../../standalone/drakgw_.c:243
-msgid "Network interface"
-msgstr "Netwerkkoppelvlak"
-
-#
-#: ../../standalone/drakgw_.c:244
-#, c-format
-msgid ""
-"There is only one configured network adapter on your system:\n"
-"\n"
-"%s\n"
-"\n"
-"I am about to setup your Local Area Network with that adapter."
-msgstr ""
-"Daar is net een konfigureerde netwerkkaart op u stelsel.\n"
-"\n"
-"%s\n"
-"\n"
-"Ek gaan nou u LAN met daardie kaart opstel."
-
-#: ../../standalone/drakgw_.c:253
-msgid ""
-"Please choose what network adapter will be connected to your Local Area "
-"Network."
-msgstr ""
-"Kies asb. die netwerkkaart wat aan die loakel area netwerk gekoppel is."
-
-#: ../../standalone/drakgw_.c:271
-#, fuzzy
-msgid "Network interface already configured"
-msgstr "Monitor is nie opgestel nie"
-
-#: ../../standalone/drakgw_.c:272
-#, c-format
-msgid ""
-"Warning, the network adapter (%s) is already configured.\n"
-"\n"
-"Do you want an automatic re-configuration?\n"
-"\n"
-"You can do it manually but you need to know what you're doing."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:277
-#, fuzzy
-msgid "Automatic reconfiguration"
-msgstr "Outomatiese CUPS konfigurasie"
-
-#: ../../standalone/drakgw_.c:278
-#, fuzzy
-msgid "Show current interface configuration"
-msgstr "Verander drukkerkonfigurasie"
-
-#: ../../standalone/drakgw_.c:280
-#, c-format
-msgid ""
-"Current configuration of `%s':\n"
-"\n"
-"Network: %s\n"
-"IP address: %s\n"
-"IP attribution: %s\n"
-"Driver: %s"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:292
-msgid ""
-"I can keep your current configuration and assume you already set up a DHCP "
-"server; in that case please verify I correctly read the C-Class Network that "
-"you use for your local network; I will not reconfigure it and I will not "
-"touch your DHCP server configuration.\n"
-"\n"
-"Else, I can reconfigure your interface and (re)configure a DHCP server for "
-"you.\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:297
-msgid "C-Class Local Network"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:298
-#, fuzzy
-msgid "(This) DHCP Server IP"
-msgstr "CUPS-bediener IP:"
-
-#: ../../standalone/drakgw_.c:299
-msgid "Re-configure interface and DHCP server"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:306
-msgid "The Local Network did not finish with `.0', bailing out."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:317
-#, c-format
-msgid "Potential LAN address conflict found in current config of %s!\n"
-msgstr "Moontlike LAN-adresbotsing gevind in konfigurasie %s!\n"
-
-#: ../../standalone/drakgw_.c:325 ../../standalone/drakgw_.c:331
-msgid "Firewalling configuration detected!"
-msgstr "Vuurmuurkonfigurasie gevind!"
-
-#: ../../standalone/drakgw_.c:326 ../../standalone/drakgw_.c:332
-msgid ""
-"Warning! An existing firewalling configuration has been detected. You may "
-"need some manual fix after installation."
-msgstr ""
-"Waarskuwing! 'n Bestaande vuurmuurkonfigurasie is bespeur. U sal dalk na "
-"dietyd self regstellings moet aanbring."
-
-#: ../../standalone/drakgw_.c:340
-msgid "Configuring..."
-msgstr "Konfigurasie in aabou..."
-
-#: ../../standalone/drakgw_.c:341
-msgid "Configuring scripts, installing software, starting servers..."
-msgstr ""
-"Skrips word konfigureer, sagterware installeer en bedieners afgeskop..."
-
-#: ../../standalone/drakgw_.c:378
-#, c-format
-msgid "Problems installing package %s"
-msgstr "Probleme met Installasue van pakket %s"
-
-#: ../../standalone/drakgw_.c:672
-msgid ""
-"Everything has been configured.\n"
-"You may now share Internet connection with other computers on your Local "
-"Area Network, using automatic network configuration (DHCP)."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:689
-msgid "The setup has already been done, but it's currently disabled."
-msgstr "Die opstelling van is alreeds gedoen, maar is tans gedeaktiveer."
-
-#: ../../standalone/drakgw_.c:690
-msgid "The setup has already been done, and it's currently enabled."
-msgstr "Die opstelling is alreeds gedoen en is alreeds ook geaktiveer."
-
-#: ../../standalone/drakgw_.c:691
-msgid "No Internet Connection Sharing has ever been configured."
-msgstr "Geen internetkonneksiedeling is al gekonfigureer nie."
-
-#: ../../standalone/drakgw_.c:696
-msgid "Internet connection sharing configuration"
-msgstr "Internetkonneksiedelingkonfigurasie"
-
-#: ../../standalone/drakgw_.c:703
-#, fuzzy, c-format
-msgid ""
-"Welcome to the Internet Connection Sharing utility!\n"
-"\n"
-"%s\n"
-"\n"
-"Click on Configure to launch the setup wizard."
-msgstr "Internetkonneksiedeling"
-
-#: ../../standalone/draknet_.c:80
-#, c-format
-msgid "Network configuration (%d adapters)"
-msgstr "Netwerkkonfigurasie (%d toestelle)"
-
-#: ../../standalone/draknet_.c:87 ../../standalone/draknet_.c:595
-msgid "Profile: "
-msgstr "Profiel:"
-
-#: ../../standalone/draknet_.c:95
-msgid "Del profile..."
-msgstr "Vee profiel uit..."
-
-#: ../../standalone/draknet_.c:101
-msgid "Profile to delete:"
-msgstr "Profiel om uit te vee..."
-
-#: ../../standalone/draknet_.c:129
-msgid "New profile..."
-msgstr "Nuwe profiel..."
-
-#: ../../standalone/draknet_.c:135
-msgid ""
-"Name of the profile to create (the new profile is created as a copy of the "
-"current one) :"
-msgstr ""
-
-#: ../../standalone/draknet_.c:161
-msgid "Hostname: "
-msgstr "Bedienernaam:"
-
-#: ../../standalone/draknet_.c:168
-msgid "Internet access"
-msgstr "Internettoegang"
-
-#: ../../standalone/draknet_.c:181
-msgid "Type:"
-msgstr "Tipe:"
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-msgid "Gateway:"
-msgstr "Portaal:"
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-msgid "Interface:"
-msgstr "Koppelvlak:"
-
-#: ../../standalone/draknet_.c:195
-msgid "Status:"
-msgstr "Status:"
-
-#: ../../standalone/draknet_.c:202
-msgid "Wait please"
-msgstr ""
-
-#: ../../standalone/draknet_.c:220
-msgid "Configure Internet Access..."
-msgstr "Konfigureer internettoegang..."
-
-#: ../../standalone/draknet_.c:227 ../../standalone/draknet_.c:449
-msgid "LAN configuration"
-msgstr "LAN-konfigurasie"
-
-#: ../../standalone/draknet_.c:232
-msgid "Driver"
-msgstr "Drywer"
-
-#: ../../standalone/draknet_.c:232
-msgid "Interface"
-msgstr "Koppelvlak"
-
-#: ../../standalone/draknet_.c:232
-msgid "Protocol"
-msgstr "Protokol"
-
-#: ../../standalone/draknet_.c:232
-msgid "State"
-msgstr "Toestand"
-
-#: ../../standalone/draknet_.c:244
-msgid "Configure Local Area Network..."
-msgstr "Stel plaaslike netwerk op..."
-
-#: ../../standalone/draknet_.c:256
-msgid "Click here to launch the wizard ->"
-msgstr ""
-
-#: ../../standalone/draknet_.c:257
-msgid "Wizard..."
-msgstr "Assistent..."
-
-#: ../../standalone/draknet_.c:283
-msgid "Apply"
-msgstr "Pas toe"
-
-#: ../../standalone/draknet_.c:302
-msgid "Please Wait... Applying the configuration"
-msgstr "Wag asb... Konfigurasie word toegpas"
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-msgid "Connected"
-msgstr "Gekonnekteer"
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-msgid "Not connected"
-msgstr "Nie gekonnekteer nieKabelkonneksie"
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Connect..."
-msgstr "Konnekteer..."
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Disconnect..."
-msgstr "Diskonnekteer..."
-
-#: ../../standalone/draknet_.c:404
-msgid ""
-"Warning, another Internet connection has been detected, maybe using your "
-"network"
-msgstr ""
-
-#: ../../standalone/draknet_.c:431
-msgid ""
-"You don't have any configured interface.\n"
-"Configure them first by clicking on 'Configure'"
-msgstr ""
-
-#: ../../standalone/draknet_.c:453
-msgid "LAN Configuration"
-msgstr "LAN konfigurasie"
-
-#: ../../standalone/draknet_.c:464
-#, c-format
-msgid "Adapter %s: %s"
-msgstr "Toestel %s: %s"
-
-#: ../../standalone/draknet_.c:470
-msgid "Boot Protocol"
-msgstr "Herlaaiprotokol"
-
-#: ../../standalone/draknet_.c:471
-msgid "Started on boot"
-msgstr "Gelaai tydens herlaaityd"
-
-#: ../../standalone/draknet_.c:472
-msgid "DHCP client"
-msgstr "DHCP-kliėnt"
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-msgid "activate now"
-msgstr "Aktiveer nou dadelik"
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-msgid "deactivate now"
-msgstr "deaktiveer nou dadelik"
-
-#: ../../standalone/draknet_.c:503
-msgid ""
-"This interface has not been configured yet.\n"
-"Launch the configuration wizard in the main window"
-msgstr ""
-
-#: ../../standalone/draknet_.c:560
-msgid ""
-"You don't have any internet connection.\n"
-"Create one first by clicking on 'Configure'"
-msgstr ""
-
-#: ../../standalone/draknet_.c:584
-msgid "Internet connection configuration"
-msgstr "Internetkonneksiekonfigurasie"
-
-#: ../../standalone/draknet_.c:588
-msgid "Internet Connection Configuration"
-msgstr "Internetkonneksiekonfigurasie"
-
-#: ../../standalone/draknet_.c:597
-msgid "Connection type: "
-msgstr "Konneksietipe:"
-
-#: ../../standalone/draknet_.c:603
-msgid "Parameters"
-msgstr "Parameters"
-
-#: ../../standalone/draknet_.c:621
-msgid "Gateway"
-msgstr "Portaal"
-
-#: ../../standalone/draknet_.c:630
-msgid "Ethernet Card"
-msgstr "Ethernetkaart"
-
-#: ../../standalone/draknet_.c:631
-msgid "DHCP Client"
-msgstr "DHCP-Kliėnt"
-
-#: ../../standalone/draksec_.c:31
-msgid "Setting security level"
-msgstr "Sekuriteitsvlak word gestel."
-
-#: ../../standalone/drakxconf_.c:47
-msgid "Control Center"
-msgstr "Beheersentrum"
-
-#: ../../standalone/drakxconf_.c:48
-msgid "Choose the tool you want to use"
-msgstr "Kies die instrument wat u wil gebruik"
-
-#: ../../standalone/drakxtv_.c:48
-#, fuzzy
-msgid "Canada (cable)"
-msgstr "Kanadees (Quebec)"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (bcast)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (cable)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (cable-hrc)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:49
-msgid "China (bcast)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:49
-msgid "Japan (bcast)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:49
-msgid "Japan (cable)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "East Europe"
-msgstr "Europa"
-
-#: ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "Ireland"
-msgstr "Yslandies"
-
-#: ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "West Europe"
-msgstr "Europa"
-
-#: ../../standalone/drakxtv_.c:51
-#, fuzzy
-msgid "Australia"
-msgstr "seriaal"
-
-#: ../../standalone/drakxtv_.c:51
-msgid "Newzealand"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:52
-msgid "South Africa"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:53
-msgid "Argentina"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:58
-msgid ""
-"Please,\n"
-"type in your tv norm and country"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:60
-msgid "TV norm :"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:61
-msgid "Area :"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:65
-msgid "Scanning for TV channels in progress ..."
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:72
-msgid "Scanning for TV channels"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:83
-msgid "No TV Card detected!"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:84
-msgid ""
-"No TV Card has been detected on your machine. Please verify that a Linux-"
-"supported Video/TV Card is correctly plugged in.\n"
-"\n"
-"\n"
-"You can visit our hardware database at:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/hardware.php3"
-msgstr ""
-
-#: ../../standalone/keyboarddrake_.c:16
-msgid "usage: keyboarddrake [--expert] [keyboard]\n"
-msgstr "gebruik: keyboarddrake [--expert] [SleutelbordNaam]\n"
-
-#: ../../standalone/keyboarddrake_.c:29
-msgid "Please, choose your keyboard layout."
-msgstr "Wat is u sleutelborduitleg?"
-
-#: ../../standalone/keyboarddrake_.c:36
-msgid "Do you want the BackSpace to return Delete in console?"
-msgstr ""
-"Wil u hź dat die 'BackSpace' sleutel moet uitvee in die konsole ('n 'Delete' "
-"terugstuur)?"
-
-#: ../../standalone/livedrake_.c:24
-msgid "Change Cd-Rom"
-msgstr "Verander CDROM"
-
-#: ../../standalone/livedrake_.c:25
-msgid ""
-"Please insert the Installation Cd-Rom in your drive and press Ok when done.\n"
-"If you don't have it, press Cancel to avoid live upgrade."
-msgstr ""
-"Dit asb. die instasllasie CDROM in die aandrywer en druk OK. Indien u nie\n"
-"hieroor beskik nie, druk Kanselleer om die intydse opgradering te vermy."
-
-#: ../../standalone/livedrake_.c:35
-msgid "Unable to start live upgrade !!!\n"
-msgstr "Kon nie die intydse opgradering begin nie !!!\n"
-
-#: ../../standalone/localedrake_.c:32
-msgid "The change is done, but to be effective you must logout"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:85 ../../standalone/logdrake_.c:501
-msgid "logdrake"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:95
-msgid "Show only for the selected day"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:102
-msgid "/File/_New"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:102
-msgid "<control>N"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:103
-msgid "/File/_Open"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:103
-msgid "<control>O"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:104
-msgid "/File/_Save"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:104
-msgid "<control>S"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:105
-msgid "/File/Save _As"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:106
-msgid "/File/-"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:108
-msgid "/_Options"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:109
-msgid "/Options/Test"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:110
-msgid "/_Help"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:111
-msgid "/Help/_About..."
-msgstr ""
-
-#: ../../standalone/logdrake_.c:118
-msgid "-misc-fixed-medium-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:119
-msgid "-misc-fixed-bold-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:173
-#, fuzzy
-msgid "User"
-msgstr "Gebruikerskode"
-
-#: ../../standalone/logdrake_.c:174
-#, fuzzy
-msgid "Messages"
-msgstr "Beginboodskap"
-
-#: ../../standalone/logdrake_.c:175
-msgid "Syslog"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:176
-msgid "Mandrake Tools Explanations"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:179
-msgid "search"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:185
-msgid "A tool to monitor your logs"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:186
-msgid "Settings"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:191
-msgid "matching"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:192
-msgid "but not matching"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:196
-msgid "Choose file"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:201
-msgid "Calendar"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:211
-msgid "Content of the file"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:215 ../../standalone/logdrake_.c:390
-msgid "Mail/SMS alert"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:268
-#, c-format
-msgid "please wait, parsing file: %s"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:405
-#, fuzzy
-msgid "Mail/SMS alert configuration"
-msgstr "Konfigurasie"
-
-#: ../../standalone/logdrake_.c:406
-#, fuzzy
-msgid ""
-"Welcome to the mail/SMS configuration utility.\n"
-"\n"
-"Here, you'll be able to set up the alert system.\n"
-msgstr ""
-"Welkom by die proksiekonfigurasienutsprogram.\n"
-"\n"
-"Hier kan u die HTTP en FTP-instaanbedieners\n"
-"opstel met of sonder aantekenkodes en wagwoorde\n"
-
-#: ../../standalone/logdrake_.c:414
-#, fuzzy
-msgid "proftpd"
-msgstr "Apache, Pro-ftpd"
-
-#: ../../standalone/logdrake_.c:417
-#, fuzzy
-msgid "sshd"
-msgstr "skadu's"
-
-#: ../../standalone/logdrake_.c:418
-msgid "webmin"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:419
-#, fuzzy
-msgid "xinetd"
-msgstr "Verlaat"
-
-#: ../../standalone/logdrake_.c:422
-#, fuzzy
-msgid "service setting"
-msgstr "interessant"
-
-#: ../../standalone/logdrake_.c:423
-msgid ""
-"You will receive an alert if one of the selected service is no more running"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:433
-#, fuzzy
-msgid "load setting"
-msgstr "Formatering"
-
-#: ../../standalone/logdrake_.c:434
-msgid "You will receive an alert if the load is higher than this value"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:447
-#, fuzzy
-msgid "alert configuration"
-msgstr "Kleurkonfigurasie"
-
-#: ../../standalone/logdrake_.c:448
-msgid "Configure the way the system will alert you"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:478
-msgid "Save as.."
-msgstr ""
-
-#: ../../standalone/mousedrake_.c:49
-msgid "Please, choose the type of your mouse."
-msgstr "Wat is u muistoestel?"
-
-#: ../../standalone/mousedrake_.c:59
-msgid "no serial_usb found\n"
-msgstr "Geen 'serial_usb' gevind nie\n"
-
-#: ../../standalone/mousedrake_.c:63
-msgid "Emulate third button?"
-msgstr "Emuleer derde knop?"
-
-#: ../../standalone/scannerdrake_.c:53
-#, c-format
-msgid "%s found on %s, configure it ?"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:60
-#, fuzzy
-msgid "Select a scanner"
-msgstr "Selekteer 'n videokaart"
-
-#: ../../standalone/scannerdrake_.c:80
-#, c-format
-msgid "This %s scanner is unsupported"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:94
-#, c-format
-msgid ""
-"Scannerdrake was not able to detect your %s scanner.\n"
-"Please select the device where your scanner is plugged"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:96
-#, fuzzy
-msgid "choose device"
-msgstr "Herlaaitoestel"
-
-#: ../../standalone/scannerdrake_.c:102
-#, c-format
-msgid ""
-"This %s scanner must be configured by printerdrake.\n"
-"You can launch printerdrake from the Mandrake Control Center in Hardware "
-"section."
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:107
-#, c-format
-msgid ""
-"Your %s scanner has been configured.\n"
-"You may now scan documents using ``XSane'' from Multimedia/Graphics in the "
-"applications menu."
-msgstr ""
-
-#: ../../standalone/tinyfirewall_.c:31
-msgid "Firewalling Configuration"
-msgstr "Vuurmuurkonfigurasie"
-
-#: ../../standalone/tinyfirewall_.c:44
-msgid "Firewalling configuration"
-msgstr "Vuurmuurkonfigurasie"
-
-#: ../../standalone/tinyfirewall_.c:79
-msgid ""
-"Firewalling\n"
-"\n"
-"You already have set up a firewall.\n"
-"Click on Configure to change or remove the firewall"
-msgstr ""
-
-#: ../../standalone/tinyfirewall_.c:83
-msgid ""
-"Firewalling\n"
-"\n"
-"Click on Configure to set up a standard firewall"
-msgstr ""
-"Vuurmuur\n"
-"\n"
-"Kliek op Konfigureer om die standaard vuurmuur op te stel."
-
-#: ../../steps.pm_.c:14
-msgid "Choose your language"
-msgstr "Kies u taal"
-
-#: ../../steps.pm_.c:15
-msgid "Select installation class"
-msgstr "Kies installasieklas"
-
-#: ../../steps.pm_.c:16
-msgid "Hard drive detection"
-msgstr "Hardeskyfdeteksie."
-
-#: ../../steps.pm_.c:17
-msgid "Configure mouse"
-msgstr "Stel muistoestel op"
-
-#: ../../steps.pm_.c:18
-msgid "Choose your keyboard"
-msgstr "Kies u sleutelbord"
-
-#: ../../steps.pm_.c:19
-msgid "Security"
-msgstr "Sekuriteit"
-
-#: ../../steps.pm_.c:20
-msgid "Setup filesystems"
-msgstr "Stel lźerstelsels op"
-
-#: ../../steps.pm_.c:21
-msgid "Format partitions"
-msgstr "Formateer partisies"
-
-#: ../../steps.pm_.c:22
-msgid "Choose packages to install"
-msgstr "Kies pakkette om te installeer"
-
-#: ../../steps.pm_.c:23
-msgid "Install system"
-msgstr "Installeer stelsel"
-
-#: ../../steps.pm_.c:25
-msgid "Add a user"
-msgstr "Voeg 'n gebruiker by"
-
-#: ../../steps.pm_.c:26
-msgid "Configure networking"
-msgstr "Stel netwerk op"
-
-#: ../../steps.pm_.c:28
-msgid "Configure services"
-msgstr "Konfigureer dienste"
-
-#: ../../steps.pm_.c:29
-msgid "Install bootloader"
-msgstr "Installeer herlaaistelsel"
-
-#: ../../steps.pm_.c:31
-msgid "Create a bootdisk"
-msgstr "Maar 'n herlaaiskyf"
-
-#: ../../steps.pm_.c:33
-msgid "Configure X"
-msgstr "Stel X op"
-
-#: ../../steps.pm_.c:34
-#, fuzzy
-msgid "Install system updates"
-msgstr "Installeer stelsel"
-
-#: ../../steps.pm_.c:35
-msgid "Exit install"
-msgstr "Verlaay installasie"
-
-#: ../../tinyfirewall.pm_.c:9
-msgid ""
-"tinyfirewall configurator\n"
-"\n"
-"This configures a personal firewall for this Mandrake Linux machine.\n"
-"For a powerful dedicated firewall solution, please look to the\n"
-"specialized MandrakeSecurity Firewall distribution."
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:14
-msgid ""
-"We'll now ask you questions about which services you'd like to allow\n"
-"the Internet to connect to. Please think carefully about these\n"
-"questions, as your computer's security is important.\n"
-"\n"
-"Please, if you're not currently using one of these services, firewall\n"
-"it off. You can change this configuration anytime you like by\n"
-"re-running this application!"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:21
-msgid ""
-"Are you running a web server on this machine that you need the whole\n"
-"Internet to see? If you are running a webserver that only needs to be\n"
-"accessed by this machine, you can safely answer NO here.\n"
-"\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:26
-msgid ""
-"Are you running a name server on this machine? If you didn't set one\n"
-"up to give away IP and zone information to the whole Internet, please\n"
-"answer no.\n"
-"\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:31
-msgid ""
-"Do you want to allow incoming Secure Shell (ssh) connections? This\n"
-"is a telnet-replacement that you might use to login. If you're using\n"
-"telnet now, you should definitely switch to ssh. telnet is not\n"
-"encrypted -- so some attackers can steal your password if you use\n"
-"it. ssh is encrypted and doesn't allow for this eavesdropping."
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:36
-msgid ""
-"Do you want to allow incoming telnet connections?\n"
-"This is horribly unsafe, as we explained in the previous screen. We\n"
-"strongly recommend answering No here and using ssh in place of\n"
-"telnet.\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:41
-msgid ""
-"Are you running an FTP server here that you need accessible to the\n"
-"Internet? If you are, we strongly recommend that you only use it for\n"
-"Anonymous transfers. Any passwords sent by FTP can be stolen by some\n"
-"attackers, since FTP also uses no encryption for transferring passwords.\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:46
-msgid ""
-"Are you running a mail server here? If you're sending you \n"
-"messages through pine, mutt or any other text-based mail client,\n"
-"you probably are. Otherwise, you should firewall this off.\n"
-"\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:51
-msgid ""
-"Are you running a POP or IMAP server here? This would\n"
-"be used to host non-web-based mail accounts for people via \n"
-"this machine.\n"
-"\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:56
-msgid ""
-"You appear to be running a 2.2 kernel. If your network IP\n"
-"is automatically set by a computer in your home or office \n"
-"(dynamically assigned), we need to allow for this. Is\n"
-"this the case?\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:61
-msgid ""
-"Is your computer getting time syncronized to another computer?\n"
-"Mostly, this is used by medium-large Unix/Linux organizations\n"
-"to synchronize time for logging and such. If you're not part\n"
-"of a larger office and haven't heard of this, you probably \n"
-"aren't."
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:66
-msgid ""
-"Configuration complete. May we write these changes to disk?\n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-"Konfigurasie is voltooi. Moet ons hierdie veranderinge na skyf skryf?\n"
-"\n"
-"\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:82
-#, c-format
-msgid "Can't open %s: %s\n"
-msgstr "Kan nie %s oopmaak nie: %s\n"
-
-#: ../../tinyfirewall.pm_.c:84
-#, c-format
-msgid "Can't open %s for writing: %s\n"
-msgstr "Kon nie %s in skryfmode oopmaak nie: %s\n"
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "No I don't need DHCP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "Yes I need DHCP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "No I don't need NTP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "Yes I need NTP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-msgid "Don't Save"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-#: ../../tinyfirewall.pm_.c:206
-msgid "Save & Quit"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:197 ../../tinyfirewall.pm_.c:201
-#, fuzzy
-msgid "Firewall Configuration Wizard"
-msgstr "Vuurmuurkonfigurasie"
-
-#: ../../tinyfirewall.pm_.c:199
-msgid "No (firewall this off from the internet)"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:200
-msgid "Yes (allow this through the firewall)"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:232
-#, fuzzy
-msgid "Please Wait... Verifying installed packages"
-msgstr "Wag asb. installasie word voorberei"
-
-#: ../../tinyfirewall.pm_.c:238
-#, c-format
-msgid ""
-"Failure installing the needed packages : %s and Bastille.\n"
-" Try to install them manually."
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Web/FTP"
-msgstr "Web/FTP"
-
-#
-#: ../../share/compssUsers:999
-msgid "Network Computer (client)"
-msgstr "Netwerkrekenaar (kliėnt)"
-
-#: ../../share/compssUsers:999
-msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr "NFS, SMB, Instaan- , SSH (Bedieners)"
-
-#: ../../share/compssUsers:999
-msgid "Office"
-msgstr "Kantoor"
-
-#: ../../share/compssUsers:999
-msgid "Gnome Workstation"
-msgstr "Gnome werkstasie"
-
-#: ../../share/compssUsers:999
-msgid "Tools for your Palm Pilot or your Visor"
-msgstr "Nutsprogramme vir PalmPilot en/of Visor"
-
-#: ../../share/compssUsers:999
-msgid "Workstation"
-msgstr "Werkstasie"
-
-#: ../../share/compssUsers:999
-msgid "Firewall/Router"
-msgstr "Vuurmuur/Netwerkroteerder"
-
-#: ../../share/compssUsers:999
-msgid "Domain Name and Network Information Server"
-msgstr "Domeinnaam en Netwerk Informasie Bediener (DNS/NIS)"
-
-#: ../../share/compssUsers:999
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-"Kantoorprogramme: Woordverwerkers( kword, abiword), spreistate (kspread, "
-"gnumeric), PDF-sigprogramme, ens."
-
-#: ../../share/compssUsers:999
-msgid "Audio-related tools: mp3 or midi players, mixers, etc"
-msgstr "Klankprogramme: MP3- of MIDI-spelers, mengers, ens."
-
-#: ../../share/compssUsers:999
-msgid "Books and Howto's on Linux and Free Software"
-msgstr "Boeke en HOWTO's oor Linux en Vrye Sagteware"
-
-#: ../../share/compssUsers:999
-msgid "KDE Workstation"
-msgstr "KDE werkstasie"
-
-#: ../../share/compssUsers:999
-msgid "Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm, Window Maker, Enlightenment, Fvwm, ens."
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Video"
-msgstr "Multimedia - Video"
-
-#: ../../share/compssUsers:999
-msgid "Set of tools for mail, news, web, file transfer, and chat"
-msgstr "Hulpprogramme vir e-pos, netnuus, web, FTP en netpraat"
-
-#: ../../share/compssUsers:999
-msgid "Database"
-msgstr "Datbasis"
-
-#: ../../share/compssUsers:999
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL of MySQL databasisbediener"
-
-#: ../../share/compssUsers:999
-msgid "Tools to ease the configuration of your computer"
-msgstr "Hulpprogramme vir u rekenaarkonfigurasie te vergemaklik"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Sound"
-msgstr "Multimedia - Klank"
-
-#: ../../share/compssUsers:999
-msgid "Utilities"
-msgstr "Nutsprogramme"
-
-#: ../../share/compssUsers:999
-msgid "Documentation"
-msgstr "dokumentasie"
-
-#: ../../share/compssUsers:999
-msgid "Console Tools"
-msgstr "Konsole hulpprogramme"
-
-#: ../../share/compssUsers:999
-msgid "Postfix mail server, Inn news server"
-msgstr "Postfix e-posbediener, Inn netnuusbediener"
-
-#: ../../share/compssUsers:999
-msgid "Internet station"
-msgstr "Internetstasie"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia station"
-msgstr "Multimediastasie"
-
-#: ../../share/compssUsers:999
-msgid "Configuration"
-msgstr "Konfigurasie"
-
-#: ../../share/compssUsers:999
-msgid "More Graphical Desktops (Gnome, IceWM)"
-msgstr "Addisionele grafiese werkskerms (Gnome, IceWM)"
-
-#: ../../share/compssUsers:999
-msgid ""
-"The K Desktop Environment, the basic graphical environment with a collection "
-"of accompanying tools"
-msgstr ""
-"Die K-werkskermomgewing (KDE), die basiese grafiese omgewing met 'n "
-"versameling bygaande hulpprogramme"
-
-#: ../../share/compssUsers:999
-msgid "Graphical Environment"
-msgstr "Grafiese omgewing"
-
-#: ../../share/compssUsers:999
-msgid "Apache, Pro-ftpd"
-msgstr "Apache, Pro-ftpd"
-
-#: ../../share/compssUsers:999
-msgid "Tools to create and burn CD's"
-msgstr "Hulpprogramme vir die skep en brand van CDs"
-
-#: ../../share/compssUsers:999
-msgid "Office Workstation"
-msgstr "Kantoorwerkstasie"
-
-#: ../../share/compssUsers:999
-msgid "Server"
-msgstr "Bediener"
-
-#: ../../share/compssUsers:999
-msgid "Gnome, Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Gnome, Icewm, Window Maker, Enlightenment, Fvwm, ens."
-
-#: ../../share/compssUsers:999
-msgid "Graphics programs such as The Gimp"
-msgstr "Grafiese programme soos Die GIMP"
-
-#: ../../share/compssUsers:999
-msgid "DNS/NIS "
-msgstr "DNS/NIS "
-
-#: ../../share/compssUsers:999
-msgid "C and C++ development libraries, programs and include files"
-msgstr "C en C++ ontwikkelingsprogrammateke, programme en insluitlźers"
-
-#
-#: ../../share/compssUsers:999
-msgid "Network Computer server"
-msgstr "Netwerkrekenaarbediener"
-
-#: ../../share/compssUsers:999
-msgid "Mail/Groupware/News"
-msgstr "E-pos/Groepware/Netnuus"
-
-#: ../../share/compssUsers:999
-msgid "Game station"
-msgstr "Speletjiesrekenaar"
-
-#: ../../share/compssUsers:999
-msgid "Video players and editors"
-msgstr "Videospelers en -redigeerders"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Graphics"
-msgstr "Multimedia - Grafika"
-
-#: ../../share/compssUsers:999
-msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr "Vermaak: Arkade, Bordspel, Strategie ens."
-
-#: ../../share/compssUsers:999
-msgid ""
-"Set of tools to read and send mail and news (pine, mutt, tin..) and to "
-"browse the Web"
-msgstr ""
-"Stel hulpprogramme om e-pos en netnuus te lees en te stuur (pine, mutt, tin) "
-"en om ook die web deur te blaai."
-
-#: ../../share/compssUsers:999
-msgid "Archiving, emulators, monitoring"
-msgstr "Aaaargivering, emulators, monitorprogramme"
-
-#: ../../share/compssUsers:999
-msgid "Personal Finance"
-msgstr "Persoonlike finansies"
-
-#: ../../share/compssUsers:999
-msgid ""
-"A graphical environment with user-friendly set of applications and desktop "
-"tools"
-msgstr ""
-"'n Grafiese omgewing met gebruikersvriendelike stel applikasies en "
-"werkskermhulpprogramme"
-
-#: ../../share/compssUsers:999
-msgid "Clients for different protocols including ssh"
-msgstr "Kliėntprogramme vir 'n verkeidenheid protokolle insluitende SSH"
-
-#: ../../share/compssUsers:999
-msgid "Internet gateway"
-msgstr "Internetpoort"
-
-#: ../../share/compssUsers:999
-msgid "Sound and video playing/editing programs"
-msgstr "Klank- en videospelers/redigeerders"
-
-#: ../../share/compssUsers:999
-msgid "Other Graphical Desktops"
-msgstr "Ander grafiese werkskerms"
-
-#: ../../share/compssUsers:999
-msgid "Editors, shells, file tools, terminals"
-msgstr ""
-"Redigeerders. teksverwerkers, instruksiedoppe, lźernutsprogramme, "
-"terminaalprogramme"
-
-#: ../../share/compssUsers:999
-msgid "Programs to manage your finance, such as gnucash"
-msgstr "Programme om u finansies te bestuur, soos GNUcash"
-
-#: ../../share/compssUsers:999
-msgid "Personal Information Management"
-msgstr "Persoonlike Inligtingbestuur."
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - CD Burning"
-msgstr "Multimedia - CD Sny"
-
-#: ../../share/compssUsers:999
-msgid "Scientific Workstation"
-msgstr "Wetenskaplike werkstasie"
-
-#, fuzzy
-#~ msgid "About"
-#~ msgstr "Aborteer"
-
-#, fuzzy
-#~ msgid "-adobe-utopia-medium-r-normal-*-12-*-*-*-p-*-iso8859-*,*-r-*"
-#~ msgstr "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"
-
-#~ msgid "$f-$g %s)"
-#~ msgstr "$f-$g %s)"
-
-#~ msgid "None"
-#~ msgstr "Geen"
-
-#, fuzzy
-#~ msgid "Choose a default printer!"
-#~ msgstr "Kies die verstek gebruiker:"
-
-#
-#~ msgid "Apply/Re-read printers"
-#~ msgstr "Pas toe/herlees drukkers"
-
-#~ msgid "You may now provide its options to module %s."
-#~ msgstr "U kan die opsies vir module %s hier intik."
-
-#~ msgid "mount failed"
-#~ msgstr "heg het gefaal"
-
-#~ msgid "Low"
-#~ msgstr "Laag"
-
-#~ msgid "Medium"
-#~ msgstr "Medium"
-
-#~ msgid ""
-#~ "Few improvements for this security level, the main one is that there are\n"
-#~ "more security warnings and checks."
-#~ msgstr ""
-#~ "'n Aantal verbetering op heirdie sekuriteitsvlak, die hoof een is meer\n"
-#~ "sekuriteitswaarskuwings en -toetse."
-
-#, fuzzy
-#~ msgid "Art and Multimedia"
-#~ msgstr "Multimedia"
-
-#~ msgid "Boot mode"
-#~ msgstr "Herlaaimodus"
-
-#, fuzzy
-#~ msgid "Export"
-#~ msgstr "Kundige"
-
-#~ msgid ""
-#~ "GNU/Linux manages time in GMT (Greenwich Mean Time) and translates it in\n"
-#~ "local time according to the time zone you selected."
-#~ msgstr ""
-#~ "GNU/Linux beheer tyd in GMT (Greenwichmeridiaantyd) en vertaal dit dan\n"
-#~ "in u lokale tyd volgends die gekose tydsone."
-
-#~ msgid "Connect to Internet"
-#~ msgstr "Konnekteer aan die internet"
-
-#~ msgid "Disconnect from Internet"
-#~ msgstr "Diskonnekteer van die internet"
-
-#~ msgid "Configure network connection (LAN or Internet)"
-#~ msgstr "Konfigureer netwerkkonneksie (LAN or internet)"
-
-#, fuzzy
-#~ msgid "Detected %s, do you want to set it up?"
-#~ msgstr "Na watter skyf wil u skuif?"
-
-#, fuzzy
-#~ msgid "Please choose the printer you want to set up."
-#~ msgstr "Kies die pakkette wat u wil installeer"
-
-#, fuzzy
-#~ msgid "Infos"
-#~ msgstr "Info"
-
-#, fuzzy
-#~ msgid "Windows Importation"
-#~ msgstr "Gnome werkstasie"
-
-#, fuzzy
-#~ msgid ""
-#~ "Apache is a World Wide Web server. It is used to serve HTML files and "
-#~ "CGI."
-#~ msgstr ""
-#~ "Apache is 'n WWW-bediener.\n"
-#~ "Dit kan HTML-lźers uitstuur en CGI's hanteer"
-
-#~ msgid ""
-#~ "named (BIND) is a Domain Name Server (DNS) that is used to resolve\n"
-#~ "host names to IP addresses."
-#~ msgstr ""
-#~ "named (BIND) is die domeinnaamdiens (DNS) wat gebruik word om\n"
-#~ "rekenaarname na IP-adresse toe om te skakel."
-
-#, fuzzy
-#~ msgid ""
-#~ "Please choose the desired printer/printer port.\n"
-#~ "\n"
-#~ msgstr "Wat is u muistoestel?"
-
-#~ msgid "Scanning available nfs shared resource"
-#~ msgstr "Beskikbare NFS-gedeėlde hulpbronne word gesoek"
-
-#~ msgid "Scanning available nfs shared resource of server %s"
-#~ msgstr "Beskikbare NFS-gedeėlde hulpbronne van bediner %s word gesoek."
-
-#~ msgid "Scanning available samba shared resource"
-#~ msgstr "Beskikbare SAMBA-gedeėlde hulpbronne word gesoek"
-
-#~ msgid "Scanning available samba shared resource of server %s"
-#~ msgstr "Beskikbare SAMBA-gedeėlde hulpbronnevan bediener %s word gesoek"
-
-#, fuzzy
-#~ msgid "\\@quit"
-#~ msgstr "Verlaat"
-
-#~ msgid "Removable media"
-#~ msgstr "Verwyderbare media"
-
-#~ msgid "Active"
-#~ msgstr "Aktief"
-
-#, fuzzy
-#~ msgid "No X"
-#~ msgstr "Nee"
-
-#~ msgid "A printer, model \"%s\", has been detected on "
-#~ msgstr "'n Drukker, model \"%s\", is opgespoor op "
-
-#~ msgid "Local Printer Device"
-#~ msgstr "Plaaslikte drukkertoestel"
-
-#~ msgid "Printer Device"
-#~ msgstr "Drukkertoestel:"
-
-#~ msgid "Device/file name missing!"
-#~ msgstr "Toestel/Lźernaam ontbreek"
-
-#
-#~ msgid "Printer(s) on remote CUPS server(s)"
-#~ msgstr "Drukkers op eksterne CUPS-bediener(s)"
-
-#
-#, fuzzy
-#~ msgid "Printer(s) on remote server(s)"
-#~ msgstr "Drukkers op eksterne CUPS-bediener(s)"
-
-#, fuzzy
-#~ msgid " Linux "
-#~ msgstr "Linux"
-
-#, fuzzy
-#~ msgid " System "
-#~ msgstr "Stelselmode"
-
-#, fuzzy
-#~ msgid " Other "
-#~ msgstr "Ander"
-
-#, fuzzy
-#~ msgid "please choose your CD space"
-#~ msgstr "Wat is u sleutelborduitleg?"
-
-#, fuzzy
-#~ msgid " Please check if you are using CDRW media"
-#~ msgstr "Kliek asb. op 'n partisie"
-
-#, fuzzy
-#~ msgid " Tape "
-#~ msgstr "Tipe:"
-
-#, fuzzy
-#~ msgid " Use .backupignore files"
-#~ msgstr "Korrupte rugsteunlźer"
-
-#, fuzzy
-#~ msgid "Configure it"
-#~ msgstr "Stel X op"
-
-#, fuzzy
-#~ msgid "on Tape Device"
-#~ msgstr "Drukkertoestel:"
-
-#, fuzzy
-#~ msgid " Cancel "
-#~ msgstr "Kanselleer"
-
-#, fuzzy
-#~ msgid " Ok "
-#~ msgstr "OK"
-
-#, fuzzy
-#~ msgid "close"
-#~ msgstr "Sluit af"
-
-#~ msgid "Starting your connection..."
-#~ msgstr "Konneksie word begin..."
-
-#~ msgid "Closing your connection..."
-#~ msgstr "Konneksie word afgesluit..."
-
-#~ msgid "The system is now disconnected."
-#~ msgstr "Die stelsel is nou ontkoppel."
-
-#~ msgid "Choose the size you want to install"
-#~ msgstr "Kies die grootte van die installasie"
-
-#~ msgid "Total size: "
-#~ msgstr "Totale grootte: "
-
-#~ msgid "Please wait, "
-#~ msgstr "Wag asb.,"
-
-#~ msgid "Total time "
-#~ msgstr "Totale tyd "
-
-#~ msgid "Use existing configuration for X11?"
-#~ msgstr "Gebruik bestaande konfigurasie vir X11?"
-
-#~ msgid ""
-#~ "What device is your printer connected to \n"
-#~ "(note that /dev/lp0 is equivalent to LPT1:)?\n"
-#~ msgstr ""
-#~ "Watter toestel is die drukker aan gekoppel?\n"
-#~ "(let op dat /dev/lp0 ekwiwalent is aan LPT1:)\n"
-
-#~ msgid "%s"
-#~ msgstr "%s"
-
-#~ msgid ""
-#~ "Warning, the network adapter is already configured. I will reconfigure it."
-#~ msgstr ""
-#~ "Waarskuwing! Die netwerkkaart is alreeds opgestel. Ek gaan dit "
-#~ "herkonfigureer?"
-
-#~ msgid "New"
-#~ msgstr "Nuut"
-
-#~ msgid "Remote"
-#~ msgstr "Ekstern"
-
-#, fuzzy
-#~ msgid ""
-#~ "Please click on a button above\n"
-#~ "\n"
-#~ "Or use \"New\""
-#~ msgstr "Kliek asb. op 'n partisie"
-
-#~ msgid "If the list above doesn't contain the wanted entry, enter it here:"
-#~ msgstr ""
-#~ "Indien bo-gelyste inskrywings nie die nodige inskrywing bevat nie, voeg "
-#~ "dit hier by:"
-
-#~ msgid "Shared resource"
-#~ msgstr "Gedeėlde hulpbron"
-
-#~ msgid "Ambiguity (%s), be more precise\n"
-#~ msgstr "Vaagheid (%s). Wees meer presies\n"
-
-#~ msgid " ? (default %s) "
-#~ msgstr " ? (verstek %s) "
-
-#~ msgid "Your choice? (default %s enter `none' for none) "
-#~ msgstr "U keuse? (Verstek %s tik 'none' vir geen)"
-
-#~ msgid "can not open /etc/sysconfig/autologin for reading: %s"
-#~ msgstr "kan nie /etc/sysconfig/autologin oopmaak vir lees nie: %s"
-
-#~ msgid "Do you want to restart the network"
-#~ msgstr "Wil u die netwerk herlaai?"
-
-#~ msgid ""
-#~ "\n"
-#~ "Do you agree?"
-#~ msgstr ""
-#~ "\n"
-#~ "Stem u saam?"
-
-#~ msgid "I'm about to restart the network device:\n"
-#~ msgstr "Ek gaan nou die netwerktoestel herlaai: \n"
-
-#~ msgid "I'm about to restart the network device %s. Do you agree?"
-#~ msgstr "Ek gaan nou die netwerktoestel %s herlaai. Stem u saam?"
-
-#, fuzzy
-#~ msgid ""
-#~ "Unless you know specifically otherwise, the usual choice is \"/dev/hda\"\n"
-#~ "(primary master IDE disk) or \"/dev/sda\" (first SCSI disk)."
-#~ msgstr ""
-#~ "Indien u spesifiek anders weet, is die gewone keuse \"/dev/hda\"\n"
-#~ "(primźre meester IDE-skyf) of \"/dev/sda\" (eerste SCSI-skyf)."
-
-#~ msgid "Connection timeout (in sec) [ beta, not yet implemented ]"
-#~ msgstr ""
-#~ "Konneksie tydlimiet (in sekondes) [ beta, nog nie geļmplementeer nie ]"
-
-#~ msgid "Could not set \"%s\" as the default printer!"
-#~ msgstr "Kon nie \"%s\" die verstek drukker maak nie!"
-
-#
-#~ msgid "Test the mouse here."
-#~ msgstr "Toets die muis hier."
-
-#~ msgid ""
-#~ "Please choose your preferred language for installation and system usage."
-#~ msgstr "Kies voorkeurtaal vir installasie en stelselgebruik."
-
-#~ msgid "Choose the layout corresponding to your keyboard from the list above"
-#~ msgstr "Kies die sleutelborduitleg uit die bostaande lys"
-
-#~ msgid ""
-#~ "Select:\n"
-#~ "\n"
-#~ " - Customized: If you are familiar enough with GNU/Linux, you may then "
-#~ "choose\n"
-#~ " the primary usage for your machine. See below for details.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Expert: This supposes that you are fluent with GNU/Linux and want to\n"
-#~ " perform a highly customized installation. As for a \"Customized\"\n"
-#~ " installation class, you will be able to select the usage for your "
-#~ "system.\n"
-#~ " But please, please, DO NOT CHOOSE THIS UNLESS YOU KNOW WHAT YOU ARE "
-#~ "DOING!"
-#~ msgstr ""
-#~ "Selekteer:\n"
-#~ "\n"
-#~ " - Afgemeet: Indien u vertroud genoeg is met GNU/Linux, kan u die "
-#~ "primźre\n"
-#~ " gebruik van u rekenaar kies. Sien onder vir details.\n"
-#~ "\n"
-#~ " - Kundige: Indien u vlot is in GNU/Linux en 'n hoogs aangepaste "
-#~ "installasie wil\n"
-#~ " doen, kan u die deur die gebruik van u rekenaar te kies.\n"
-#~ " MOET ASB. NIE HIERDIE OPSIE KIES INDIEN U NIE WEET WAT U DOEN NIE."
-
-#, fuzzy
-#~ msgid ""
-#~ "You must now define your machine usage. Choices are:\n"
-#~ "\n"
-#~ "* Workstation: this the ideal choice if you intend to use your machine "
-#~ "primarily for everyday use, at office or\n"
-#~ " at home.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Development: if you intend to use your machine primarily for software "
-#~ "development, it is the good choice. You\n"
-#~ " will then have a complete collection of software installed in order to "
-#~ "compile, debug and format source code,\n"
-#~ " or create software packages.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Server: if you intend to use this machine as a server, it is the good "
-#~ "choice. Either a file server (NFS or\n"
-#~ " SMB), a print server (Unix style or Microsoft Windows style), an "
-#~ "authentication server (NIS), a database\n"
-#~ " server and so on. As such, do not expect any gimmicks (KDE, GNOME, "
-#~ "etc.) to be installed."
-#~ msgstr ""
-#~ "Die verskillende opsies vir u rekenaar se gebruik (indien u \"Afgemeet"
-#~ "\" \n"
-#~ "of \"Kundige\" sou kies) is die volgende:\n"
-#~ "\n"
-#~ " - Normaal: Indien die rekenaar primźr vir daaglikse kantoorgebruik is.\n"
-#~ " Moenie programmeringspakette verwag nie.\n"
-#~ "\n"
-#~ " - Ontwikkeling: Indien die rekenaar vir programontwikkel;ing gebruik "
-#~ "sal\n"
-#~ " word. 'n Volledige stel kompileerders, saamstellers en ontfouters "
-#~ "sal \n"
-#~ " opgesit word.\n"
-#~ "\n"
-#~ " - Bediener: Indien die rekenaar primźr 'n bediener sal wees, hetsy met "
-#~ "NFS,\n"
-#~ " SMB, drukkerbediening, NIS magtiging ens.\n"
-#~ " Moenie vensterstelsels soos KDE en GNOME verwag nie.\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "You may now select the group of packages you wish to\n"
-#~ "install or upgrade.\n"
-#~ "\n"
-#~ "\n"
-#~ "DrakX will then check whether you have enough room to install them all. "
-#~ "If not,\n"
-#~ "it will warn you about it. If you want to go on anyway, it will proceed "
-#~ "onto the\n"
-#~ "installation of all selected groups but will drop some packages of "
-#~ "lesser\n"
-#~ "interest. At the bottom of the list you can select the option \n"
-#~ "\"Individual package selection\"; in this case you will have to browse "
-#~ "through\n"
-#~ "more than 1000 packages..."
-#~ msgstr ""
-#~ "U kan nou die pakketgroepe kies wat u wil installeer of opgradeer.\n"
-#~ "\n"
-#~ "DrakX sal dan kyk of daar genoegsame spasie is vir die volledige "
-#~ "installasie.\n"
-#~ "Indien nie sal u verwittig word. Indien u voortgaan, sal van die minder "
-#~ "belangrike\n"
-#~ "pakkette nie installeer word nie.Heel onder kan u die opsie \"Individuele "
-#~ "pakketkeuses\"\n"
-#~ "kies waarna u deur meer as 'n 1000 pakkette sal moet blaai....."
-
-#, fuzzy
-#~ msgid ""
-#~ "If you have all the CDs in the list above, click Ok. If you have\n"
-#~ "none of those CDs, click Cancel. If only some CDs are missing, unselect "
-#~ "them,\n"
-#~ "then click Ok."
-#~ msgstr ""
-#~ "Indienu al die CDs in die bogenoemde lys het, kliek OK.\n"
-#~ "Indien u geen het nie, kliek Kanselleer.\n"
-#~ "Indien sekere CDs weg is, onselekteer hulle en kliek dan OK."
-
-#, fuzzy
-#~ msgid ""
-#~ "You may now enter your host name if needed. If you\n"
-#~ "don't know or are not sure what to enter, the correct informations can "
-#~ "be\n"
-#~ "obtained from your Internet Service Provider."
-#~ msgstr ""
-#~ "U kan nou die opbelopsie invul. Indien u\n"
-#~ "twyfel kry die korrekte inligting van u ISP."
-
-#, fuzzy
-#~ msgid ""
-#~ "You may now configure your network device.\n"
-#~ "\n"
-#~ " * IP address: if you don't know or are not sure what to enter, ask "
-#~ "your network administrator.\n"
-#~ " You should not enter an IP address if you select the option "
-#~ "\"Automatic IP\" below.\n"
-#~ "\n"
-#~ " * Netmask: \"255.255.255.0\" is generally a good choice. If you don't "
-#~ "know or are not sure what to enter,\n"
-#~ " ask your network administrator.\n"
-#~ "\n"
-#~ " * Automatic IP: if your network uses BOOTP or DHCP protocol, select "
-#~ "this option. If selected, no value is needed in\n"
-#~ " \"IP address\". If you don't know or are not sure if you need to "
-#~ "select this option, ask your network administrator."
-#~ msgstr ""
-#~ "Sleutel in:\n"
-#~ "\n"
-#~ " - IP-adres: Indien u dit nie weet nie vra u netwerkadministrateur of "
-#~ "ISP.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Netmasker: \"255.255.255.0\" is gewoonlik 'n goeie keuse. Indien u "
-#~ "twyfel,\n"
-#~ " vra die netwerkadministrateur of ISP.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Outomatiese IP: Indien u netwerk bootp of dhcp protokolle ondersteun, "
-#~ "kies\n"
-#~ " hierdie opsie. In so 'n geval is 'n IP-adresinskrywing nie nodig "
-#~ "nie. Indien u\n"
-#~ " twyfel, vra die netwerkadministrateur of ISP.\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "You may now enter your host name if needed. If you\n"
-#~ "don't know or are not sure what to enter, ask your network administrator."
-#~ msgstr ""
-#~ "Indien u netwerk NIS gebruik, kies \"Gebruik NIS\". Indien u twyfel vra\n"
-#~ "die netwerkadministrateur."
-
-#~ msgid ""
-#~ "You may now enter dialup options. If you're not sure what to enter, the\n"
-#~ "correct information can be obtained from your ISP."
-#~ msgstr ""
-#~ "U kan nou die opbelopsie invul. Indien u\n"
-#~ "twyfel kry die korrekte inligting van u ISP."
-
-#~ msgid ""
-#~ "If you will use proxies, please configure them now. If you don't know if\n"
-#~ "you should use proxies, ask your network administrator or your ISP."
-#~ msgstr ""
-#~ "Indien u instaanbedieners wil gebruik, stel hulle hier op.. Indien u "
-#~ "twyfel vra\n"
-#~ "die netwerkadministrateur of ISP."
-
-#, fuzzy
-#~ msgid ""
-#~ "You can install cryptographic package if your internet connection has "
-#~ "been\n"
-#~ "set up correctly. First choose a mirror where you wish to download "
-#~ "packages and\n"
-#~ "after that select the packages to install.\n"
-#~ "\n"
-#~ "\n"
-#~ "Note you have to select mirror and cryptographic packages according\n"
-#~ "to your legislation."
-#~ msgstr ""
-#~ "U kan 'n kriptografiese pakket installeer indien u internetkonneksie reg "
-#~ "opgestel is.\n"
-#~ "Kies eers die spieėl waar u die pakket vanaf wil aflaai en kies dan die "
-#~ "pakkette\n"
-#~ "om te installeer.\n"
-#~ "\n"
-#~ "Let wel: U moet 'n spieėl en pakkette selekteer n.a.l plaaslike wetgewing."
-
-#, fuzzy
-#~ msgid ""
-#~ "You can now enter the root password for your Mandrake Linux system.\n"
-#~ "The password must be entered twice to verify that both password entries "
-#~ "are identical.\n"
-#~ "\n"
-#~ "\n"
-#~ "Root is the system's administrator and is the only user allowed to modify "
-#~ "the\n"
-#~ "system configuration. Therefore, choose this password carefully. \n"
-#~ "Unauthorized use of the root account can be extemely dangerous to the "
-#~ "integrity\n"
-#~ "of the system, its data and other system connected to it.\n"
-#~ "\n"
-#~ "\n"
-#~ "The password should be a mixture of alphanumeric characters and at least "
-#~ "8\n"
-#~ "characters long. It should never be written down.\n"
-#~ "\n"
-#~ "\n"
-#~ "Do not make the password too long or complicated, though: you must be "
-#~ "able to\n"
-#~ "remember it without too much effort."
-#~ msgstr ""
-#~ "U kan nou die 'root' wagwoord voorsien vir u Mandrake Linux stelsel.\n"
-#~ "Die wagworod moet twee keer ingevoer word en te verfiėer dat dit\n"
-#~ "korrek is.\n"
-#~ "\n"
-#~ "\n"
-#~ "Root is die administrateur van die stelsel en is die enigste gebruiker\n"
-#~ "wat toegelaat wiord om die stelselkonfigurasie te verander. In dié lig,\n"
-#~ "kies asb. die wagwoord sorgvuldig. Ongemagtigde gebruik van die root\n"
-#~ "rekening kan uitermatiglik nadelig wees vir die integriteit van die\n"
-#~ "stelsel. Die wagwoord moet alfanumeries wees en ten minste 8 karakters\n"
-#~ "lank. MOENIE die wagwoord źrens neerskryf nie. Moet dit nie te lank of "
-#~ "te\n"
-#~ "ingwikkeld maak nie, u moet dit met min moeite onthou."
-
-#~ msgid ""
-#~ "You may now create one or more \"regular\" user account(s), as\n"
-#~ "opposed to the \"privileged\" user account, root. You can create\n"
-#~ "one or more account(s) for each person you want to allow to use\n"
-#~ "the computer. Note that each user account will have its own\n"
-#~ "preferences (graphical environment, program settings, etc.)\n"
-#~ "and its own \"home directory\", in which these preferences are\n"
-#~ "stored.\n"
-#~ "\n"
-#~ "\n"
-#~ "First of all, create an account for yourself! Even if you will be the "
-#~ "only user\n"
-#~ "of the machine, you may NOT connect as root for daily use of the system: "
-#~ "it's a\n"
-#~ "very high security risk. Making the system unusable is very often a typo "
-#~ "away.\n"
-#~ "\n"
-#~ "\n"
-#~ "Therefore, you should connect to the system using the user account\n"
-#~ "you will have created here, and login as root only for administration\n"
-#~ "and maintenance purposes."
-#~ msgstr ""
-#~ "U mag nou een of meer gewone gebruikersrekeninge skep. Dit is in\n"
-#~ "teenstelling met die bevoorregte 'root' rekening. Elke "
-#~ "gebruikersrekening\n"
-#~ "sal oor sy eie voorkeure (grafiese omgewing, programstelling, ens.) en\n"
-#~ "tuisgids (waar hierdie instellings gestoor word) beskik.\n"
-#~ "\n"
-#~ "\n"
-#~ "Derhalwe moet u in die stelsel intkeen met u eie gebruikerskode en slegs\n"
-#~ "'root' gebruik vir administratiewe doeleindes.\n"
-#~ "\n"
-#~ "Skep eerstens 'n rekening vir uself. Selfs indien u die enigste "
-#~ "gebruiker\n"
-#~ "op die stelsel sal wees, moet u NIE as 'root' vir u daaglikse gebruik\n"
-#~ "inteken NIE. 'n Onbruikbare stelsel kan net een tikfout ver weg wees.\n"
-#~ "\n"
-#~ "\n"
-#~ "Derhalwe moet u aanteken met die gebruikerskode wat u hier skep en "
-#~ "'root'\n"
-#~ "net vir admintratiewe doeleindes gebruik."
-
-#, fuzzy
-#~ msgid ""
-#~ "LILO and grub main options are:\n"
-#~ " - Boot device: Sets the name of the device (e.g. a hard disk\n"
-#~ "partition) that contains the boot sector. Unless you know specifically\n"
-#~ "otherwise, choose \"/dev/hda\".\n"
-#~ "\n"
-#~ "\n"
-#~ " - Delay before booting default image: Specifies the number in tenths\n"
-#~ "of a second the boot loader should wait before booting the first image.\n"
-#~ "This is useful on systems that immediately boot from the hard disk after\n"
-#~ "enabling the keyboard. The boot loader doesn't wait if \"delay\" is\n"
-#~ "omitted or is set to zero.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Video mode: This specifies the VGA text mode that should be selected\n"
-#~ "when booting. The following values are available: \n"
-#~ "\n"
-#~ " * normal: select normal 80x25 text mode.\n"
-#~ "\n"
-#~ " * <number>: use the corresponding text mode.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Clean \"/tmp\" at each boot: if you want delete all files and "
-#~ "directories\n"
-#~ "stored in \"/tmp\" when you boot your system, select this option.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Precise RAM if needed: unfortunately, there is no standard method to "
-#~ "ask the\n"
-#~ "BIOS about the amount of RAM present in your computer. As consequence, "
-#~ "Linux may\n"
-#~ "fail to detect your amount of RAM correctly. If this is the case, you "
-#~ "can\n"
-#~ "specify the correct amount or RAM here. Please note that a difference of "
-#~ "2 or 4\n"
-#~ "MB between detected memory and memory present in your system is normal."
-#~ msgstr ""
-#~ "LILO en Grub hoof opsies is:\n"
-#~ " - Herlaaitoestel: Stel die naam van die toestel (bv. hardeskyfpartisie\n"
-#~ " wat die herlaaisektor bevat. Indien u spesifiek anders weet\n"
-#~ " kies \"/dev/hda\".\n"
-#~ "\n"
-#~ "\n"
-#~ " - Wagperiode voor verstekbedryfstelsel gelaai word. Kies die syfer in\n"
-#~ " tiendes van 'n sekonde at die herlaaistelsel moet wag.\n"
-#~ " Hierdie is handig op stelsels wat onmiddelik die hardeskyf skop na "
-#~ "die\n"
-#~ " sleutelbord geaktiveer is. Die herlaaistelsel sal nie wag nie indien "
-#~ "die\n"
-#~ " wagperiode nul is.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Videomode: Kies die spesifieke VGA teksmode wat gebruik moet word "
-#~ "met\n"
-#~ " herlaai. Die volgende waardes is beskikbaar:\n"
-#~ " * normaal: selekteer normale 80x25 mode.\n"
-#~ " * syfer: die ooreenstemmende teksmode."
-
-#~ msgid ""
-#~ "SILO is a bootloader for SPARC: it is able to boot\n"
-#~ "either GNU/Linux or any other operating system present on your computer.\n"
-#~ "Normally, these other operating systems are correctly detected and\n"
-#~ "installed. If this is not the case, you can add an entry by hand in this\n"
-#~ "screen. Be careful as to choose the correct parameters.\n"
-#~ "\n"
-#~ "\n"
-#~ "You may also want not to give access to these other operating systems to\n"
-#~ "anyone, in which case you can delete the corresponding entries. But\n"
-#~ "in this case, you will need a boot disk in order to boot them!"
-#~ msgstr ""
-#~ "SILO 'n herlaaiprogram vir SPARC. Dir kan GNU/Linux of enige ander\n"
-#~ "bedryfstelsel wat op u rekenar teenwoordig is, laai. Gewoonlik word "
-#~ "hierdie\n"
-#~ "bedryfstelsels reg bespeur en bygevoeg. Indien nie, kan u 'n inskrywing "
-#~ "maak\n"
-#~ "op hierdie skerm. Maak seker u kies die korrekte paramters.\n"
-#~ "\n"
-#~ "\n"
-#~ "U mag dalk toegang tot ander bedryfstelsels beperk, in welke geval u die "
-#~ "nodige\n"
-#~ "inskrywings kan uitvee. Maar dan het u die nodige herlaaiskywe nodig om "
-#~ "die\n"
-#~ "betrokke bedryfstelsels te laai."
-
-#~ msgid ""
-#~ "SILO main options are:\n"
-#~ " - Bootloader installation: Indicate where you want to place the\n"
-#~ "information required to boot to GNU/Linux. Unless you know exactly\n"
-#~ "what you are doing, choose \"First sector of drive (MBR)\".\n"
-#~ "\n"
-#~ "\n"
-#~ " - Delay before booting default image: Specifies the number in tenths\n"
-#~ "of a second the boot loader should wait before booting the first image.\n"
-#~ "This is useful on systems that immediately boot from the hard disk after\n"
-#~ "enabling the keyboard. The boot loader doesn't wait if \"delay\" is\n"
-#~ "omitted or is set to zero."
-#~ msgstr ""
-#~ "SILO hoofkeuses is:\n"
-#~ " - Herlaaitoestel: Waar wil u die inligting om GNU/Linux te laai plaas? "
-#~ "Die beste is\n"
-#~ "gewoonlik om \"Eerste hardeskyfsektor (MBR)\" te kies.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Wagperiode voor verstekbedryfstelsel gelaai word. Kies die syfer in\n"
-#~ " tiendes van 'n sekonde at die herlaaistelsel moet wag.\n"
-#~ " Hierdie is handig op stelsels wat onmiddelik die hardeskyf skop na "
-#~ "die\n"
-#~ " sleutelbord geaktiveer is. Die herlaaistelsel sal nie wag nie indien "
-#~ "die\n"
-#~ " wagperiode nul is."
-
-#~ msgid ""
-#~ "Now it's time to configure the X Window System, which is the\n"
-#~ "core of the GNU/Linux GUI (Graphical User Interface). For this purpose,\n"
-#~ "you must configure your video card and monitor. Most of these\n"
-#~ "steps are automated, though, therefore your work may only consist\n"
-#~ "of verifying what has been done and accept the settings :)\n"
-#~ "\n"
-#~ "\n"
-#~ "When the configuration is over, X will be started (unless you\n"
-#~ "ask DrakX not to) so that you can check and see if the\n"
-#~ "settings suit you. If they don't, you can come back and\n"
-#~ "change them, as many times as necessary."
-#~ msgstr ""
-#~ "Dit is tyd om die X-vensterstelsel op te stel. Hierdie is die kern van\n"
-#~ "die GNU/Linux grafiese omgewing. Vir hierdie doeleindes, moet u 'n "
-#~ "videokaart\n"
-#~ "en monitor kies. Meeste van hierdie stappe is outomaties en u moet net\n"
-#~ "verifiėer of dit korrek is.\n"
-#~ "\n"
-#~ "\n"
-#~ "Na konfigurasie sal X outmaties gelaai word, behalwe as u DrakX "
-#~ "andersins\n"
-#~ "aansź. Indien die stelling u nie pas nie, kom terug en verander so veel\n"
-#~ "keer soos nodig."
-
-#~ msgid ""
-#~ "If something is wrong in X configuration, use these options to correctly\n"
-#~ "configure the X Window System."
-#~ msgstr ""
-#~ "Indien iets verkeerd is in die X-konfigurasie, gebruik hierdie opsies om\n"
-#~ "die X-vensterstelsel reg op te stel."
-
-#~ msgid ""
-#~ "If you prefer to use a graphical login, select \"Yes\". Otherwise, "
-#~ "select\n"
-#~ "\"No\"."
-#~ msgstr ""
-#~ "Indien u verkies om 'n grafiese intekenarea te kry, kies \"Ja\", "
-#~ "andersins \"Nee\"."
-
-#~ msgid ""
-#~ "Your system is going to reboot.\n"
-#~ "\n"
-#~ "After rebooting, your new Mandrake Linux system will load automatically.\n"
-#~ "If you want to boot into another existing operating system, please read\n"
-#~ "the additional instructions."
-#~ msgstr ""
-#~ "U stelsel gaan nou herlaai.\n"
-#~ "\n"
-#~ "U nuwe Mandrake Linux stelsel sal outomaties laai. Indien u 'n ander\n"
-#~ " bedryfstelsel wil laai, lees die ekstra instruksies noukeurig deur."
-
-#~ msgid "Write /etc/fstab"
-#~ msgstr "Skryf /etc/fstab"
-
-#~ msgid "Format all"
-#~ msgstr "Formatteer almal"
-
-#~ msgid "After formatting all partitions,"
-#~ msgstr "Na formatering van alle partisies"
-
-#~ msgid "all data on these partitions will be lost"
-#~ msgstr "alle data om hierdie partisies sal verloor word"
-
-#~ msgid "Reload"
-#~ msgstr "Herlaai"
-
-#~ msgid ""
-#~ "Do you want to generate an auto install floppy for linux replication?"
-#~ msgstr "Wil u 'n outoinstallasieskyf maak vir Linux replikasie?"
-
-#~ msgid "ADSL configuration"
-#~ msgstr "ADSL konfigurasie"
-
-#, fuzzy
-#~ msgid ""
-#~ "With a remote CUPS server, you do not have to configure\n"
-#~ "any printer here; printers will be automatically detected\n"
-#~ "unless you have a server on a different network; in the\n"
-#~ "latter case, you have to give the CUPS server IP address\n"
-#~ "and optionally the port number."
-#~ msgstr ""
-#~ "Met 'n eksterne CUPS-bediener, hoef u glad nie 'n drukker hier\n"
-#~ "op te stel nie; drukkers wod outomaties bespeur.\n"
-#~ "Indien u twyfel, kies \"Eksterne CUPS-bediener\"."
-
-#~ msgid "Remote queue"
-#~ msgstr "Eksterne drukkertou"
-
-#~ msgid "Remote queue name missing!"
-#~ msgstr "Eksterne tounaam ontbreek!"
-
-#~ msgid "Command line"
-#~ msgstr "Instruksielyn"
-
-#~ msgid "Modify printer"
-#~ msgstr "Verander drukker"
-
-#~ msgid "Network Monitoring"
-#~ msgstr "Netwerkmonitor"
-
-#~ msgid "Profile "
-#~ msgstr "Profiel"
-
-#~ msgid "Connection Time: "
-#~ msgstr "Konneksietyd"
-
-#~ msgid "Connecting to Internet "
-#~ msgstr "Internetkonneksie"
-
-#~ msgid "Disconnecting from Internet "
-#~ msgstr "Internetdiskonneksie"
-
-#~ msgid "Disconnection from Internet failed."
-#~ msgstr "Diskonnekteer van die internet het misluk."
-
-#~ msgid "Disconnection from Internet complete."
-#~ msgstr "Diskonneksie van die internet sukssevol"
-
-#~ msgid "Connection complete."
-#~ msgstr "Konneksie suksesvol"
-
-#~ msgid "Default Runlevel"
-#~ msgstr "Verstek loopvlak"
-
-#~ msgid "NetWare"
-#~ msgstr "NetWare"
-
-#~ msgid "Config file content could not be interpreted."
-#~ msgstr "Konfigurasielźerinhoud is onverstaanbaar"
-
-#~ msgid "Adapter"
-#~ msgstr "Toestel"
-
-#~ msgid "Disable network"
-#~ msgstr "Sper netwerkstelsel"
-
-#~ msgid "Enable network"
-#~ msgstr "Aktiveer netwerk"
-
-#~ msgid "DSL (or ADSL) connection"
-#~ msgstr "DSL (of ADSL) konneksie"
-
-#~ msgid "Choose"
-#~ msgstr "kies"
-
-#~ msgid "You can specify directly the URI to access the printer with CUPS."
-#~ msgstr ""
-#~ "U kan die URI, om die drukker via CUPS te gebruik, direk spesifiseer"
-
-#~ msgid "Yes, print ASCII test page"
-#~ msgstr "Ja, druk ASCII toetsbladsy"
-
-#~ msgid "Yes, print PostScript test page"
-#~ msgstr "Ja, druk die PostScript toetsbladsy"
-
-#~ msgid "Paper Size"
-#~ msgstr "Papiergrootte"
-
-#~ msgid "Eject page after job?"
-#~ msgstr "Stoot papier uit na voltooiing?"
-
-#~ msgid "Uniprint driver options"
-#~ msgstr "Uniprint-dryweropsies"
-
-#~ msgid "Color depth options"
-#~ msgstr "Kleurdiepte opsies"
-
-#~ msgid "Print text as PostScript?"
-#~ msgstr "Druk teks as PostScript?"
-
-#~ msgid "Fix stair-stepping text?"
-#~ msgstr "Korrigeer trapsgewyse teks?"
-
-#~ msgid "Number of pages per output pages"
-#~ msgstr "Aantal bladsye per uitsetblad?"
-
-#~ msgid "Right/Left margins in points (1/72 of inch)"
-#~ msgstr "Regs/Links kantlyne in punte (1/72 van 'n duim)"
-
-#~ msgid "Top/Bottom margins in points (1/72 of inch)"
-#~ msgstr "Bo/Onder kantlyne in punte (1/72 van 'n duim)"
-
-#~ msgid "Extra GhostScript options"
-#~ msgstr "Ekstra GhostScriptopsies"
-
-#~ msgid "Extra Text options"
-#~ msgstr "Ekstra teksopsies"
-
-#~ msgid "Reverse page order"
-#~ msgstr "Omgekeerde bladsyorde"
-
-#~ msgid "Select Remote Printer Connection"
-#~ msgstr "Kies eksterne drukkerkonneksie"
-
-#~ msgid ""
-#~ "Every printer need a name (for example lp).\n"
-#~ "Other parameters such as the description of the printer or its location\n"
-#~ "can be defined. What name should be used for this printer and\n"
-#~ "how is the printer connected?"
-#~ msgstr ""
-#~ "Elke drukker benodig 'n naam (bv. lp)\n"
-#~ "Ander parameters soos 'n beskrywing en 'n ligging kan ook gegee word.\n"
-#~ "Wat is die drukker se naam en wat is die konneksietipe?"
-
-#~ msgid ""
-#~ "Every print queue (which print jobs are directed to) needs a\n"
-#~ "name (often lp) and a spool directory associated with it. What\n"
-#~ "name and directory should be used for this queue and how is the printer "
-#~ "connected?"
-#~ msgstr ""
-#~ "Elke drukkertou (waar drukstukke heengaan) het 'n naam nodig \n"
-#~ "(baie keer 'lp') and 'n gekoppelde spoelgids. Watter naam en\n"
-#~ "spoelgids moet gebruik word?"
-
-#~ msgid "Name of queue"
-#~ msgstr "Tounaam"
-
-#~ msgid "Spool directory"
-#~ msgstr "Spoelgids"
-
-#~ msgid "Disable"
-#~ msgstr "Deaktiveer"
-
-#~ msgid "Enable"
-#~ msgstr "Aktiveer"
-
-#~ msgid ""
-#~ "To enable a more secure system, you should select \"Use shadow file\" "
-#~ "and\n"
-#~ "\"Use MD5 passwords\"."
-#~ msgstr ""
-#~ "Om 'n veiliger stelsel te bou, moet u \"Gebruik skadulźer\" \n"
-#~ "en \"Gebruik MD5 wagwoorde\" kies."
-
-#~ msgid ""
-#~ "If your network uses NIS, select \"Use NIS\". If you don't know, ask "
-#~ "your\n"
-#~ "network administrator."
-#~ msgstr ""
-#~ "Indien u netwerk NIS wil gebruik, kies \"Gebruik NIS\" hier. Indien u "
-#~ "twyfel vra\n"
-#~ "die sysadmin.."
-
-#~ msgid "yellow pages"
-#~ msgstr "geelbladsye"
-
-#~ msgid "Light configuration"
-#~ msgstr "Ligte konfigurasie"
-
-#~ msgid "Provider dns 1"
-#~ msgstr "Voorsiener DNS 1"
-
-#~ msgid "Provider dns 2"
-#~ msgstr "Voorsiener DNS 2"
-
-#, fuzzy
-#~ msgid "How do you want to connect to the Internet?"
-#~ msgstr "Wil u nou aan die internet konnekteer?"
-
-#, fuzzy
-#~ msgid "Selected size %d%s"
-#~ msgstr "Selekteer lOer"
-
-#, fuzzy
-#~ msgid "Opening your connection..."
-#~ msgstr "Konfigureer internetkonneksie"
-
-#, fuzzy
-#~ msgid "Configure..."
-#~ msgstr "Stel X op"
-
-#, fuzzy
-#~ msgid "Configuration de Lilo/Grub"
-#~ msgstr "Stel netwerk op"
-
-#~ msgid "This startup script try to load your modules for your usb mouse."
-#~ msgstr "Hierdie skrip laai de nodige modules vir 'n USB-muis."
-
-#, fuzzy
-#~ msgid ""
-#~ "Now that your Internet connection is configured,\n"
-#~ "your computer can be configured to share its Internet connection.\n"
-#~ "Note: you need a dedicated Network Adapter to set up a Local Area Network "
-#~ "(LAN).\n"
-#~ "\n"
-#~ "Would you like to setup the Internet Connection Sharing?\n"
-#~ msgstr ""
-#~ "Nou dat u internetkonfigurasie opgestel is,\n"
-#~ "moet u die rekenaar opstel om dit te deel.\n"
-#~ "LW: U benodig 'n ware netwerkkaart om 'n lokalearea netwerk (LAN) op te "
-#~ "stel.\n"
-#~ "\n"
-#~ "Wil u internetdeling opstel?\n"
-
-#~ msgid "Automatic dependencies"
-#~ msgstr "Outomatiese afhanklikhede"
-
-#, fuzzy
-#~ msgid "Configure LILO/GRUB"
-#~ msgstr "Stel X op"
-
-#~ msgid "Create a boot floppy"
-#~ msgstr "Maar 'n herlaaiskyf"
-
-#~ msgid "Choice"
-#~ msgstr "Keuse"
-
-#, fuzzy
-#~ msgid ""
-#~ "You can now select some miscellaneous options for your system.\n"
-#~ "\n"
-#~ "* Use hard drive optimizations: this option can improve hard disk "
-#~ "performance but is only for advanced users. Some buggy\n"
-#~ " chipsets can ruin your data, so beware. Note that the kernel has a "
-#~ "builtin blacklist of drives and chipsets, but if\n"
-#~ " you want to avoid bad surprises, leave this option unset.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Choose security level: you can choose a security level for your system. "
-#~ "Please refer to the manual for complete\n"
-#~ " information. Basically, if you don't know what to choose, keep the "
-#~ "default option.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Precise RAM if needed: unfortunately, there is no standard method to "
-#~ "ask the BIOS about the amount of RAM present in\n"
-#~ " your computer. As consequence, Linux may fail to detect your amount of "
-#~ "RAM correctly. If this is the case, you can\n"
-#~ " specify the correct amount or RAM here. Please note that a difference "
-#~ "of 2 or 4 MB between detected memory and memory\n"
-#~ " present in your system is normal.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Removable media automounting: if you would prefer not to manually mount "
-#~ "removable media (CD-Rom, floppy, Zip, etc.) by\n"
-#~ " typing \"mount\" and \"umount\", select this option.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Clean \"/tmp\" at each boot: if you want delete all files and "
-#~ "directories stored in \"/tmp\" when you boot your system,\n"
-#~ " select this option.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Enable num lock at startup: if you want NumLock key enabled after "
-#~ "booting, select this option. Please note that you\n"
-#~ " should not enable this option on laptops and that NumLock may or may "
-#~ "not work under X."
-#~ msgstr ""
-#~ "U kan nou 'n paar diverse opsies vir u stelsel kies.\n"
-#~ "\n"
-#~ " - Optimeer hardeskyf. Hierdie kan hardeskyfwerksverrigting verbeter, "
-#~ "maar is net\n"
-#~ " vir kundige gebruikers bedoel. Sekere gebroke koppelvlakke kan data "
-#~ "ruļneer.\n"
-#~ " Die bedryfstelsel kern het 'n swartlys van hardeskywe, maar indien u "
-#~ "onaangename\n"
-#~ " verrassings wil voorkom los hierdie opsie uit.\n"
-#~ "\n"
-#~ " - Sekuriteitsvlak: Lees die handleiding vir volledigheid, maar in "
-#~ "kort:\n"
-#~ " Kies \"Medium\" indien u twyfel. Vir 'n hoogs veilige stelsel kies "
-#~ "\"Paranoļes\",\n"
-#~ " maar pasop: OP HIERDIE VLAK KLAN SELFS NIE 'ROOT' OP DIE KONSOLE\n"
-#~ " AANTEKEN NIE. Vir 'root' toegang moet 'n gewone gebruiker eers "
-#~ "aanteken en dan\n"
-#~ " \"su\". Dit is uitsluitlik vir 'n bediener bedoel.\n"
-#~ "\n"
-#~ " - Presiese geheuegrootte: Daar is geen ongelukkig standaard metode om "
-#~ "die geheuegrootte\n"
-#~ " uit die BIOS te bepaal nie. Soms sal Linux nie die grootte korrek "
-#~ "bepaal nie. In hierdie geval\n"
-#~ " kan die korrekte grootte her gegee word. Let daarop dat 'n verskil "
-#~ "van 2-4MB normaal is.\n"
-#~ "\n"
-#~ " - Outohegting van verwyderbare media: Indien u nie elke keer die "
-#~ "hegting per intik wil doen\n"
-#~ " nie (van CDROMs, floppies, ZIpaandrywers ens.), selekteer hierdie "
-#~ "opsie.\n"
-#~ "\n"
-#~ " - NumLock: Indien u NumLock wil aansit by herlaaityd, selekteer hierdie "
-#~ "opsie. Dit sal\n"
-#~ " nie noodwendig NumLock onder X aansit nie."
-
-#~ msgid "Miscellaneous"
-#~ msgstr "Arbitrźre items"
-
-#~ msgid "Miscellaneous questions"
-#~ msgstr "Diverse vrae"
-
-#~ msgid "Can't use supermount in high security level"
-#~ msgstr "U kan nie supermount in hoė sekuriteitsvlak gebruik nie."
-
-#~ msgid ""
-#~ "beware: IN THIS SECURITY LEVEL, ROOT LOGIN AT CONSOLE IS NOT ALLOWED!\n"
-#~ "If you want to be root, you have to login as a user and then use \"su\".\n"
-#~ "More generally, do not expect to use your machine for anything but as a "
-#~ "server.\n"
-#~ "You have been warned."
-#~ msgstr ""
-#~ "Warskuwing: IN HIERDIE SEKURITEITSVLAK, kan ROOT nie by die KONSOLE "
-#~ "AANTEKEN nie.\n"
-#~ "OM 'root' te wees moet u eers as 'n gewone gebruiker aanteken en dan 'su'."
-#~ "Hierdie is spesifiek vir bedienergebruik. U is gewaarsku!"
-
-#~ msgid ""
-#~ "Be carefull, having numlock enabled causes a lot of keystrokes to\n"
-#~ "give digits instead of normal letters (eg: pressing `p' gives `6')"
-#~ msgstr ""
-#~ "Wees versigtig, met NumLock aan sal heelwat sleutels as syfers eerder as "
-#~ "karakters na vore kom. (Bv 'n 'p' mag dalk '6' wees)"
-
-#~ msgid "First DNS Server"
-#~ msgstr "Eerste DNS bediener"
-
-#~ msgid "Second DNS Server"
-#~ msgstr "Tweede DNS bediener"
-
-#~ msgid "loopback"
-#~ msgstr "teruglus"
-
-#~ msgid "Which bootloader(s) do you want to use?"
-#~ msgstr "Watter herlaaistelsel(s) verlang u?"
-
-#~ msgid "Auto install floppy"
-#~ msgstr "Outoinstallasieskyf"
-
-#~ msgid "Try to find a modem?"
-#~ msgstr "Soekj vir 'n modem?"
-
-#~ msgid "Configure local network"
-#~ msgstr "Stel netwerk op"
-
-#~ msgid ""
-#~ "Local networking has already been configured.\n"
-#~ "Do you want to:"
-#~ msgstr "Plaaslike netwerk is alreeds opgestel: Wil u?"
-
-#~ msgid "KDE"
-#~ msgstr "KDE"
-
-#~ msgid "Gnome"
-#~ msgstr "Gnome"
-
-#~ msgid "Configure timezone"
-#~ msgstr "Konfigureer tydsone"
-
-#~ msgid "(may cause data corruption)"
-#~ msgstr "(kan data korrupteer)"
-
-#~ msgid "Enable num lock at startup"
-#~ msgstr "Aansit van NumLock met herlaai"
-
-#~ msgid "Confirm Password"
-#~ msgstr "Bevestig wagwoord"
-
-#~ msgid "default"
-#~ msgstr "verstek"
-
-#~ msgid "What is your system used for?"
-#~ msgstr "Waarvoor word u stelsel gebruik?"
-
-#~ msgid "Select the size you want to install"
-#~ msgstr "Kies die grootte van die installasie"
-
-#~ msgid "Use diskdrake"
-#~ msgstr "Gebruik diskdrake"
-
-#
-#~ msgid "Customized"
-#~ msgstr "Gespesialiseerde"
-
-#~ msgid ""
-#~ "Are you sure you are an expert? \n"
-#~ "You will be allowed to make powerful but dangerous things here.\n"
-#~ "\n"
-#~ "You will be asked questions such as: ``Use shadow file for passwords?'',\n"
-#~ "are you ready to answer that kind of questions?"
-#~ msgstr ""
-#~ "Is u 'n kundige? U sal sal toegelaat word om kragtige, maar\n"
-#~ "gevaarlike keuses uit te oefen\n"
-#~ "\n"
-#~ "U sal vrae gevra word soos: \"Gebruik skaduwagwoorde?\"\n"
-#~ "Is u reg vir sulke vrae?"
-
-#~ msgid "Use shadow file"
-#~ msgstr "Gebruik skadulźer"
-
-#~ msgid "MD5"
-#~ msgstr "MD5"
-
-#~ msgid "Use MD5 passwords"
-#~ msgstr "Gebruik MD5 wagwoorde"
-
-#~ msgid "Search"
-#~ msgstr "Soek"
-
-#~ msgid "Package"
-#~ msgstr "Pakket"
-
-#~ msgid "Tree"
-#~ msgstr "Boom"
-
-#~ msgid "Sort by"
-#~ msgstr "Gesorteer volgens"
-
-#~ msgid "Category"
-#~ msgstr "Kategorie"
-
-#~ msgid "Installed packages"
-#~ msgstr "Installeerde pakkette"
-
-#~ msgid "Available packages"
-#~ msgstr "Beskikbare pakkette"
-
-#~ msgid "Show only leaves"
-#~ msgstr "Wys net eindnodes"
-
-#~ msgid "Expand all"
-#~ msgstr "Maak boom oop"
-
-#~ msgid "Collapse all"
-#~ msgstr "Maak boom toe"
-
-#~ msgid "Add location of packages"
-#~ msgstr "Voeg pakketareas by"
-
-#~ msgid "Update location"
-#~ msgstr "Dateer ligging op"
-
-#~ msgid "Find Package"
-#~ msgstr "Soek pakket"
-
-#~ msgid "Find Package containing file"
-#~ msgstr "Soek pakket met lźer"
-
-#~ msgid "Toggle between Installed and Available"
-#~ msgstr "Skakel tussen installeerde en beskikbare"
-
-#~ msgid "Checking dependencies"
-#~ msgstr "Afhanklikhede word getoets"
-
-#
-#~ msgid "The following packages are going to be uninstalled"
-#~ msgstr "Die volgende pakkette gaan verwyder word"
-
-#~ msgid "Regexp"
-#~ msgstr "Regex"
-
-#~ msgid "Which package are looking for"
-#~ msgstr "Watter pakket soek vir"
-
-#~ msgid "No match"
-#~ msgstr "Geen treffer"
-
-#~ msgid "No more match"
-#~ msgstr "Niks meer treffers nie"
-
-#~ msgid ""
-#~ "rpmdrake is currently in ``low memory'' mode.\n"
-#~ "I'm going to relaunch rpmdrake to allow searching files"
-#~ msgstr ""
-#~ "rpmdrake is in lae-geheue opstelling.\n"
-#~ "Ek gaan rpmdrake herlaai om soektogte toe te laat."
-
-#
-#~ msgid "Which file are you looking for?"
-#~ msgstr "Watter lźer verlang u?"
-
-#~ msgid "What are looking for?"
-#~ msgstr "Wat soek vir?"
-
-#~ msgid "Give a name (eg: `extra', `commercial')"
-#~ msgstr "Gee 'n (engelse) naam (bv. 'extra')"
-
-#~ msgid "Directory"
-#~ msgstr "Lźergids"
-
-#~ msgid "No cdrom available (nothing in /mnt/cdrom)"
-#~ msgstr "Geen cdrom beskikbaar nie (niks in /mnt/cdrom nie)"
-
-#~ msgid "URL of the directory containing the RPMs"
-#~ msgstr "URL van die lźergids met die RPM's"
-
-#~ msgid ""
-#~ "For FTP and HTTP, you need to give the location for hdlist\n"
-#~ "It must be relative to the URL above"
-#~ msgstr ""
-#~ "Vir FTP en HTTP, moet die pad vir die hdlist gegee word\n"
-#~ "Dit moet relatief tot bg. URL wees."
-
-#~ msgid "Please submit the following information"
-#~ msgstr "Voorsien asb. die volgende inligting"
-
-#~ msgid "%s is already in use"
-#~ msgstr "%s is lareeds in gebruik"
-
-#~ msgid "Updating the RPMs base"
-#~ msgstr "Die RPM's se basis word opgedateer"
-
-#~ msgid "Going to remove entry %s"
-#~ msgstr "Inskrywing %s gaan verwyder word"
-
-#~ msgid "Finding leaves"
-#~ msgstr "Eindnodes word gesoek"
-
-#~ msgid "Finding leaves takes some time"
-#~ msgstr "Soek van eindnodes neem 'n tydjie"
-
-#~ msgid "I have found an ISDN Card:\n"
-#~ msgstr "Ek het 'n ISDN-kaart gevind\n"
-
-#~ msgid "Other countries"
-#~ msgstr "Ander lande"
-
-#
-#~ msgid "In which country are you located ?"
-#~ msgstr "In watter land is u?"
-
-#~ msgid "Alcatel modem"
-#~ msgstr "Alcatel modem"
-
-#~ msgid "ECI modem"
-#~ msgstr "ECI modem"
-
-#~ msgid ""
-#~ "If your adsl modem is an Alcatel one, choose Alcatel. Otherwise, ECI."
-#~ msgstr "Indien u ADSL-modem 'n Alcatel is, kies Alcatel, andersins ECI."
-
-#~ msgid "don't use pppoe"
-#~ msgstr "moenie pppoe gebruik nie"
-
-#~ msgid "i18n (important)"
-#~ msgstr "i18n (belangrik)"
-
-#~ msgid "i18n (very nice)"
-#~ msgstr "i18n (baie oulik)"
-
-#~ msgid "i18n (nice)"
-#~ msgstr "i18n (oulik)"
-
-#~ msgid "Which serial port is your mouse connected to?"
-#~ msgstr "Aan watter seriaalpoort is u muis gekoppel?"
-
-#~ msgid "Czech"
-#~ msgstr "Tseggies"
-
-#~ msgid "Slovakian"
-#~ msgstr "Slovaaks"
-
-#~ msgid "Could not install ipchains RPM with urpmi."
-#~ msgstr "Kon nie ipchains RPM m.b.v. urpmi installeer nie."
-
-#~ msgid "Could not install dhcp RPM with urpmi."
-#~ msgstr "Kon nie dhcp RPM m.b.v. urpmi installeer nie."
-
-#~ msgid "Could not install linuxconf RPM with urpmi."
-#~ msgstr "Kon nie linuxconf RPM m.b.v. urpmi installeer nie."
-
-#~ msgid "Could not install bind RPM with urpmi."
-#~ msgstr "Kon nie bind RPM m.b.v. urpmi installeer nie."
-
-#~ msgid "Could not install caching-nameserver RPM with urpmi."
-#~ msgstr "Kon nie caching-nameserver RPM m.b.v. urpmi installeer nie. "
-
-#~ msgid "Reconfigure local network"
-#~ msgstr "Herkonfigureer plaaslike netwerk"
-
-#~ msgid ""
-#~ "Your computer can be configured to share its Internet connection.\n"
-#~ "\n"
-#~ msgstr "U rekenaar is opgestel om sy internet konneksie te deel.\n"
-
-#~ msgid "Everything has been configured.\n"
-#~ msgstr "Internetkonneksiedeling is ontsper.\n"
-
-#~ msgid "Connect to Internet with a normal modem"
-#~ msgstr "Konnekteer aan die internet met gewone modem"
-
-#~ msgid "Connect to Internet using ISDN"
-#~ msgstr "Konnekteer aan die internet met ISDN"
-
-#~ msgid "Connect to Internet using DSL (or ADSL)"
-#~ msgstr "Konnekteer aan die internet met DSL (of ADSL)"
-
-#~ msgid "Connect to Internet using Cable"
-#~ msgstr "Konnekteer aan die internet met kabel"
-
-#~ msgid ""
-#~ "Time (secs) of inactivity after which\n"
-#~ "it hangs up. (leave blank to disable it)"
-#~ msgstr ""
-#~ "Tyd, in sekondes, van onaktiwiteit voor diskonneksie.\n"
-#~ "Los oop om dié funksie te sper."
-
-#~ msgid "Germany (1TR6)"
-#~ msgstr "Duitsland (1TR6)"
-
-#~ msgid "What do you wish to do?"
-#~ msgstr "Wat wil u doen?"
-
-#~ msgid "Install/Rescue"
-#~ msgstr "Installasie/Redding"
-
-#~ msgid "Rescue"
-#~ msgstr "Redding"
-
-#~ msgid "Which partition type do you want?"
-#~ msgstr "Watter partisietipe verlang u?"
-
-#, fuzzy
-#~ msgid ""
-#~ "Choose \"Install\" if there are no previous versions of GNU/Linux\n"
-#~ "installed, or if you wish to use multiple distributions or versions.\n"
-#~ "\n"
-#~ "Choose \"Rescue\" if you wish to rescue a version of Mandrake Linux "
-#~ "already installed.\n"
-#~ "\n"
-#~ "\n"
-#~ "Select:\n"
-#~ "\n"
-#~ " - Recommended: If you have never installed GNU/Linux before, choose "
-#~ "this.\n"
-#~ "\n"
-#~ " - Customized: If you are familiar enough with GNU/Linux, you may then "
-#~ "choose\n"
-#~ " the primary usage for your machine. See below for details.\n"
-#~ "\n"
-#~ " - Expert: This supposes that you are fluent with GNU/Linux and want to\n"
-#~ " perform a highly customized installation. As for a \"Customized\"\n"
-#~ " installation class, you will be able to select the usage for your "
-#~ "system.\n"
-#~ " But please, please, DO NOT CHOOSE THIS UNLESS YOU KNOW WHAT YOU ARE "
-#~ "DOING!\n"
-#~ msgstr ""
-#~ "Selekteer:\n"
-#~ "\n"
-#~ " - Afgemeet: Indien u vertroud genoeg is met GNU/Linux, kan u die "
-#~ "primźre\n"
-#~ " gebruik van u rekenaar kies. Sien onder vir details.\n"
-#~ "\n"
-#~ " - Kundige: Indien u vlot is in GNU/Linux en 'n hoogs aangepaste "
-#~ "installasie wil\n"
-#~ " doen, kan u die deur die gebruik van u rekenaar te kies.\n"
-#~ " MOET ASB. NIE HIERDIE OPSIE KIES INDIEN U NIE WEET WAT U DOEN NIE."
-
-#~ msgid ""
-#~ "At this point, you may choose what partition(s) to use to install\n"
-#~ "your Mandrake Linux system if they have been already defined (from a\n"
-#~ "previous install of GNU/Linux or from another partitioning tool). In "
-#~ "other\n"
-#~ "cases, hard drive partitions must be defined. This operation consists of\n"
-#~ "logically dividing the computer's hard drive capacity into separate\n"
-#~ "areas for use.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you have to create new partitions, use \"Auto allocate\" to "
-#~ "automatically\n"
-#~ "create partitions for GNU/Linux. You can select the disk for partitioning "
-#~ "by\n"
-#~ "clicking on \"hda\" for the first IDE drive,\n"
-#~ "\"hdb\" for the second or \"sda\" for the first SCSI drive and so on.\n"
-#~ "\n"
-#~ "\n"
-#~ "Two common partition are: the root partition (/), which is the starting\n"
-#~ "point of the filesystem's directory hierarchy, and /boot, which contains\n"
-#~ "all files necessary to start the operating system when the\n"
-#~ "computer is first turned on.\n"
-#~ "\n"
-#~ "\n"
-#~ "Because the effects of this process are usually irreversible, "
-#~ "partitioning\n"
-#~ "can be intimidating and stressful to the unexperienced user. DiskDrake\n"
-#~ "simplifies the process so that it must not be. Consult the documentation\n"
-#~ "and take your time before proceeding.\n"
-#~ "\n"
-#~ "\n"
-#~ "You can reach any option using the keyboard: navigate through the "
-#~ "partitions\n"
-#~ "using Tab and Up/Down arrows. 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"
-#~ msgstr ""
-#~ "U kan nou kies watter partisie(s) gebruik kan word om Mandrake Linux\n"
-#~ "op te installeer indien hulle reeds bestaan (geskep uit 'n vorige "
-#~ "installasie,\n"
-#~ "of met 'n ander partisieprogram). In ander gevalle moet die partisies nog "
-#~ "geskep\n"
-#~ "word. Hierdie operasie bestan uit die logiese verdeling van die hardeskyf "
-#~ "in\n"
-#~ "aparte bruikbare areas\n"
-#~ "\n"
-#~ "\n"
-#~ "Indien u nuwe partisies moet skep, gebruik \"Outo-allokasie\" om "
-#~ "outomaties\n"
-#~ "partisies vir Linux te skep. U kan die skyf vir partisionering selekteer "
-#~ "deur\n"
-#~ "op \"hda\" te kliek vir die eerste IDE hardeskyf, hdb vir die tweede of "
-#~ "\"sda\"\n"
-#~ "vir die eerste SCSI skyf ens.\n"
-#~ "\n"
-#~ "\n"
-#~ "Twee algemene partisies is die \"root\" partisie (/), wat die wortel is\n"
-#~ "van die lźergidsstelsel, en /boot, wat die nodige lźers bevat om die\n"
-#~ "bedryfstelsel aan die gang te kry wanneer die rekenaar aangesit word.\n"
-#~ "\n"
-#~ "\n"
-#~ "Omdat die gevolge van hierdie proses onomkeerbaar is, kan partisionering "
-#~ "baie\n"
-#~ "intimiderend en stresvol vir die onervare gebruiker wees. DiskDrake maak "
-#~ "dié\n"
-#~ "proses heelwat makliker. Lees die dokumentasie en neem u tyd voor u "
-#~ "voortgaan.\n"
-#~ "\n"
-#~ "\n"
-#~ "U kan enige opsie gebruik deur die sleutelbord te gebruik. Navigeer deur "
-#~ "diepartisies met\n"
-#~ "Tab en die pyltjies. Wanneer 'n partisie gekies is, gebruik:\n"
-#~ "\n"
-#~ "- Ctrl-c om 'n partisie te skep (wanneer 'n leė partisie gekies is)\n"
-#~ "\n"
-#~ "- Ctrl-d om 'n partisie uit te vee\n"
-#~ "\n"
-#~ "- Ctrl-m om 'n partisie te heg\n"
-
-#~ msgid ""
-#~ "Any partitions that have been newly defined must be formatted for\n"
-#~ "use (formatting meaning creating a filesystem). At this time, you may\n"
-#~ "wish to re-format some already existing partitions to erase the data\n"
-#~ "they contain. Note: it is not necessary to re-format pre-existing\n"
-#~ "partitions, particularly if they contain files or data you wish to keep.\n"
-#~ "Typically retained are /home and /usr/local."
-#~ msgstr ""
-#~ "Enige partisies wat nuut geskep is, moet eers formateer word voor "
-#~ "gebruik.\n"
-#~ "(Formateering beteken die skep van 'n lOerstelsel). U kan nou kies om "
-#~ "ook\n"
-#~ "bestaande partisies te herformateer en die data daarop te vernietig.\n"
-#~ "NOTA: Dit is nie nodig om alle bestaande partisies te herformateer nie,\n"
-#~ "veral indien daar data op is wat u wil hou. 'n Tipiese voorbeeld is /home."
-
-#~ msgid ""
-#~ "The packages selected are now being installed. This operation\n"
-#~ "should take a few minutes unless you have chosen to upgrade an\n"
-#~ "existing system, in that case it can take more time even before\n"
-#~ "upgrade starts."
-#~ msgstr ""
-#~ "Die gekose pakette gaan nou installeer word. Hierdie proses\n"
-#~ "sal 'n paar minute neem. Indien u 'n opgradering gekies, kan dit\n"
-#~ "nog langer neem voordat die opgradering begin."
-
-#~ msgid ""
-#~ "If DrakX failed to find your mouse, or if you want to\n"
-#~ "check what it has done, you will be presented the list of mice\n"
-#~ "above.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you agree with DrakX's settings, just click 'Ok'.\n"
-#~ "Otherwise you may choose the mouse that more closely matches your own\n"
-#~ "from the menu above.\n"
-#~ "\n"
-#~ "\n"
-#~ "In case of a serial mouse, you will also have to tell DrakX\n"
-#~ "which serial port it is connected to."
-#~ msgstr ""
-#~ "Indien DrakX nie u muis kon vind nie, of as u wil sien\n"
-#~ "wat gedoen is, sal u moet die bg. lys van muistoestelle gepresenteer\n"
-#~ "word.\n"
-#~ "\n"
-#~ "\n"
-#~ "Indien u met DrakX saamstem, spring na die afdeling wat u\n"
-#~ "verlang deur op die kierkaart links te kliek. Andersins kies\n"
-#~ "'n muistoetsel in die kieskaart wat u dink die beste klop met die\n"
-#~ "muis wat u het.\n"
-#~ "\n"
-#~ "In geval van 'n seriaalmuis, moet u ook vir DrakX die seriaalpoort\n"
-#~ "gee."
-
-#~ msgid ""
-#~ "This section is dedicated to configuring a local area\n"
-#~ "network (LAN) or a modem.\n"
-#~ "\n"
-#~ "Choose \"Local LAN\" and DrakX will\n"
-#~ "try to find an Ethernet adapter on your machine. PCI adapters\n"
-#~ "should be found and initialized automatically.\n"
-#~ "However, if your peripheral is ISA, autodetection will not work,\n"
-#~ "and you will have to choose a driver from the list that will appear "
-#~ "then.\n"
-#~ "\n"
-#~ "\n"
-#~ "As for SCSI adapters, you can let the driver probe for the adapter\n"
-#~ "in the first time, otherwise you will have to specify the options\n"
-#~ "to the driver that you will have fetched from documentation of your\n"
-#~ "hardware.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you install a Mandrake Linux system on a machine which is part\n"
-#~ "of an already existing network, the network administrator will\n"
-#~ "have given you all necessary information (IP address, network\n"
-#~ "submask or netmask for short, and hostname). If you're setting\n"
-#~ "up a private network at home for example, you should choose\n"
-#~ "addresses.\n"
-#~ "\n"
-#~ "\n"
-#~ "Choose \"Dialup with modem\" and the Internet connection with\n"
-#~ "a modem will be configured. DrakX will try to find your modem,\n"
-#~ "if it fails you will have to select the right serial port where\n"
-#~ "your modem is connected to."
-#~ msgstr ""
-#~ "Hierdie afdeling is vir die konfigurasie van 'n lokaalareanetwerk\n"
-#~ "of 'n modem.\n"
-#~ "\n"
-#~ "Kies \"LAN\" en DrakX sal probeer om 'n Ethernetkaart in u rekenaar\n"
-#~ "te vind. PCI-kaarte sal heelwaarskynlik outomaties gevind en\n"
-#~ "inisialiseer word. Indien u 'n ISA-kaart het sal daar 'n kieslys\n"
-#~ "vertoon word waaruit u dan u kaart moet selekteer.\n"
-#~ "\n"
-#~ "\n"
-#~ "indien u Mandrake Linux installeer op 'n stelsel wat deel is van 'n\n"
-#~ "bestaande netwerk, sal due netwerk administrateur u alreeds met die\n"
-#~ "nodige inligting (IP adres, netmasker en rekenaarnaam) voorsien het.\n"
-#~ "Indien u 'n privaat netwerk opstel (sso by die huis), dan moet u die\n"
-#~ "adresse kies.\n"
-#~ "\n"
-#~ "\n"
-#~ "Kies \"Uitbel met Modem\" en die internetkonneksie vir 'n modem\n"
-#~ "sal opgestel word. DrakX sal u modem probeer bepaal. Indien dié faal\n"
-#~ "sal u die modem en korrekte seriaalpoort moet selekteer."
-
-#~ msgid ""
-#~ "GNU/Linux can deal with many types of printer. Each of these\n"
-#~ "types require a different setup. Note however that the print\n"
-#~ "spooler uses 'lp' as the default printer name; so you\n"
-#~ "must have one printer with such a name; but you can give\n"
-#~ "several names, separated by '|' characters, to a printer.\n"
-#~ "So, if you prefer to have a more meaningful name you just have\n"
-#~ "to put it first, eg: \"My Printer|lp\".\n"
-#~ "The printer having \"lp\" in its name(s) will be the default printer.\n"
-#~ "\n"
-#~ "\n"
-#~ "If your printer is physically connected to your computer, select\n"
-#~ "\"Local printer\". You will then have to tell which port your\n"
-#~ "printer is connected to, and select the appropriate filter.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you want to access a printer located on a remote Unix machine,\n"
-#~ "you will have to select \"Remote lpd\". In order to make\n"
-#~ "it work, no username or password is required, but you will need\n"
-#~ "to know the name of the printing queue on this server.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you want to access a SMB printer (which means, a printer located\n"
-#~ "on a remote Windows 9x/NT machine), you will have to specify its\n"
-#~ "SMB name (which is not its TCP/IP name), and possibly its IP address,\n"
-#~ "plus the username, workgroup and password required in order to\n"
-#~ "access the printer, and of course the name of the printer. The same goes\n"
-#~ "for a NetWare printer, except that you need no workgroup information."
-#~ msgstr ""
-#~ "GNU/Linux kan verskeie drukkers gebruik. Elkeen van hierdie tipes\n"
-#~ "verlang 'n ander opstelling. Let asb. daarop dat die verstek drukkernaam "
-#~ "'lp' is.\n"
-#~ "U moet so 'n drukker skep. U kan egter addisionele name bysit deur dit "
-#~ "met die '|' karakterte skei.\n"
-#~ "Derhalwe kan u dus die drukker 'n meer betekenisvolle naam ook toeken.\n"
-#~ "Die drukker met 'lp' in die naam sal die verstek drukker wees.\n"
-#~ "\n"
-#~ "\n"
-#~ "Indien u drukker direk aan die rekenaar gekoppel is, selekteer\n"
-#~ "\"Lokale Drukker\". U moet dan die korrekte poort uitwys\n"
-#~ "en die gepaslike filter selekteer.\n"
-#~ "\n"
-#~ "\n"
-#~ "Indien u 'n drukker om 'n ander Unix-rekenaar wil gebruik, kies\n"
-#~ "\"Eksterne lpd\". In hierdie geval moet u die naam van die drukkertou\n"
-#~ "op die ander rekenaar ken.\n"
-#~ "\n"
-#~ "\n"
-#~ "Indien u toegang tot 'n SMB drukker (op 'n Windows-rekenaar) verlang,\n"
-#~ "moet u die SMB/NETBIOS naam (nie TCP/IP-naam nie) ken en moontlik ook "
-#~ "die\n"
-#~ "IP-adres. Daarby moet u ook 'n gebruikerskode, werkgroep en wagwoord en "
-#~ "die\n"
-#~ "drukkernaam voorsien. Dieselfde geld vir 'n Netware-drukker, behalwe dat "
-#~ "u\n"
-#~ "die werkgroep hoef te voorsien nie."
-
-# ../help.pm_.c:240 ../help.pm_.c:481 msgid ""
-#~ msgid ""
-#~ "It is strongly recommended that you answer \"Yes\" here. If you install\n"
-#~ "Microsoft Windows at a later date it will overwrite the boot sector.\n"
-#~ "Unless you have made a bootdisk as suggested, you will not be able to\n"
-#~ "boot into GNU/Linux any more."
-#~ msgstr ""
-#~ "Dit word sterk aanbeveel dat u \"Ja\" antwoord. Indien u Windows sou\n"
-#~ "herinstalleer, sal dit die herlaaisektor oorskryf. Indien u die die "
-#~ "herlaaiskyf\n"
-#~ "gemaak het nie, sal u nie weer in GNU/Linux kan inkom nie."
-
-#~ msgid "Move your wheel!"
-#~ msgstr "Draai u wiel!"
-
-#~ msgid "Forget the changes?"
-#~ msgstr "Vergeet van die veranderinge?"
-
-#~ msgid "What is the type of your mouse?"
-#~ msgstr "Wat is u muistipe?"
-
-#~ msgid "Automatic resolutions"
-#~ msgstr "OUtomatiese resolusies"
-
-#~ msgid ""
-#~ "To find the available resolutions I will try different ones.\n"
-#~ "Your screen will blink...\n"
-#~ "You can switch if off if you want, you'll hear a beep when it's over"
-#~ msgstr ""
-#~ "Ek gaan nou probeer m die beskikbare resolusies te kry.\n"
-#~ "Die skerm sal 'n paar maal flits...\n"
-#~ "U kan die skerm afsit indien u wil, ek sal biep wanneer ek klaar is"
-
-#~ msgid ""
-#~ "I can try to find the available resolutions (eg: 800x600).\n"
-#~ "Sometimes, though, it may hang the machine.\n"
-#~ "Do you want to try?"
-#~ msgstr ""
-#~ "Ek kan probeer om al die beskikbare resolusies te kry (bv. 800x600).\n"
-#~ "Soms kan die rekenaar ophang.\n"
-#~ "Wil u probeer?"
-
-#~ msgid ""
-#~ "No valid modes found\n"
-#~ "Try with another video card or monitor"
-#~ msgstr ""
-#~ "Geen geldige modes was gevind nie\n"
-#~ "Probeer 'n ander videokaart of monitor"
-
-#~ msgid "Automatical resolutions search"
-#~ msgstr "Outomatiese resolusie soektog"
-
-#~ msgid "pump"
-#~ msgstr "pump"
-
-#~ msgid "dhcpxd"
-#~ msgstr "dhcpxd"
-
-#~ msgid "dhcp-client"
-#~ msgstr "DHCP-kliėnt"
-
-#~ msgid "Apple ADB Mouse"
-#~ msgstr "Apple ADB-muis"
-
-#~ msgid "Apple ADB Mouse (2 Buttons)"
-#~ msgstr "Apple ADB-muis (2 knoppe)"
-
-#~ msgid "Apple ADB Mouse (3+ Buttons)"
-#~ msgstr "Apple ADB-muis (3+ knoppe)"
-
-#~ msgid "Apple USB Mouse"
-#~ msgstr "Apple USB-muis"
-
-#~ msgid "Apple USB Mouse (2 Buttons)"
-#~ msgstr "Apple USB-muis (2 knoppe)"
-
-#~ msgid "Apple USB Mouse (3+ Buttons)"
-#~ msgstr "Apple USB-muis (3+ knoppe)"
-
-#~ msgid "ASCII MieMouse"
-#~ msgstr "ASCII MieMouse"
-
-#~ msgid "Genius NetMouse Pro"
-#~ msgstr "Genius NetMouse Pro"
-
-#~ msgid "ATI Bus Mouse"
-#~ msgstr "ATI Busmuis"
-
-#~ msgid "Microsoft Bus Mouse"
-#~ msgstr "Microsoft busmuis"
-
-#~ msgid "Logitech Bus Mouse"
-#~ msgstr "Logitech busmuis"
-
-#~ msgid "USB Mouse (3 buttons or more)"
-#~ msgstr "USB Muis (3 knoppe of meer)"
-
-#~ msgid "Microsoft Rev 2.1A or higher (serial)"
-#~ msgstr "Microsoft Rev 2.1A of beter (seriaal)"
-
-#~ msgid "Logitech MouseMan+/FirstMouse+ (serial)"
-#~ msgstr "Logitech MouseMan+/FirstMouse+ (seriaal)"
-
-#~ msgid "ASCII MieMouse (serial)"
-#~ msgstr "ASCII MieMouse (seriaal)"
-
-#~ msgid "Genius NetMouse (serial)"
-#~ msgstr "Genius NetMouse (seriaal)"
-
-#~ msgid "Generic Mouse (serial)"
-#~ msgstr "Generiese Muis (seriaal)"
-
-#~ msgid "Microsoft compatible (serial)"
-#~ msgstr "Microsoft aanpasbaar (seriaal)"
-
-#~ msgid "Generic 3 Button Mouse (serial)"
-#~ msgstr "Generiese 3-knopmuis (seriaal)"
-
-#~ msgid "Kensington Thinking Mouse (serial)"
-#~ msgstr "Kensington Thinking Mouse (seriaal)"
-
-#~ msgid ""
-#~ "I need to configure your network adapter to be able to connect to "
-#~ "internet."
-#~ msgstr ""
-#~ "Ek moet u netwerkkaart konfigureer om aan die internet te konnekteer."
-
-#~ msgid "nfs mount failed"
-#~ msgstr "NFS heg het gefaal"
-
-#~ msgid "Socket"
-#~ msgstr "Sok"
-
-#~ msgid "Cryptographic"
-#~ msgstr "Kriptografie"
-
-#~ msgid ""
-#~ "DrakX will generate config files for both XFree 3.3 and XFree 4.0.\n"
-#~ "By default, the 4.0 server is used unless your card is not supported.\n"
-#~ "\n"
-#~ "Do you want to keep XFree 3.3?"
-#~ msgstr ""
-#~ "DrakX sal konfigurasielźers maak vir beide XFree 3.3 en XFree 4.0.\n"
-#~ "By verstek sal die 4.0 bediener gebruik word indien u videokaart "
-#~ "ondersteun. word\n"
-#~ "\n"
-#~ "Wil u XFree 3.3 behou?"
-
-#~ msgid "Configure LAN"
-#~ msgstr "Stel LAN op"
-
-#~ msgid "Do not set up networking"
-#~ msgstr "Moenie netwerk opstel nie"
-
-#~ msgid "Do you want to configure a local network for your system?"
-#~ msgstr "Wil u die netwerk vir u stelsel opstel?"
-
-#~ msgid "Show less"
-#~ msgstr "Vertoon minder"
-
-#~ msgid "Show more"
-#~ msgstr "Vertoon meer"
-
-#, fuzzy
-#~ msgid "tie"
-#~ msgstr "koppel"
-
-#~ msgid "brunette"
-#~ msgstr "brunette"
-
-#~ msgid "girl"
-#~ msgstr "meisie"
-
-#~ msgid "woman-blond"
-#~ msgstr "blondine"
-
-#, fuzzy
-#~ msgid "automagic"
-#~ msgstr "automagic"
-
-#~ msgid "What is your keyboard layout?"
-#~ msgstr "Wat is u sleutelborduitleg?"
-
-#~ msgid "Try to find PCMCIA cards?"
-#~ msgstr "Soek PCMCIA-kaarte?"
-
-#~ msgid "Try to find %s devices?"
-#~ msgstr "Soek vir %s-toestelle?"
-
-#~ msgid ""
-#~ "Do you want to configure a dialup connection with modem for your system?"
-#~ msgstr "Wil u die opbelkonneksie (modem) konfigureer?"
-
-#~ msgid "Try to find PCI devices?"
-#~ msgstr "Soek vir PCI-toestelle?"
-
-#~ msgid "Searching root partition."
-#~ msgstr "Wortelpartisisie word gesoek."
-
-#~ msgid "%s: This is not a root partition, please select another one."
-#~ msgstr ""
-#~ "%s: Hierdie is nie 'n wortellźerstelsel nie, kies asb. 'n ander een."
-
-#~ msgid "Please choose a partition to use as your root partition."
-#~ msgstr "Watter partisie moet u wortelpartisie wees?"
-
-#~ msgid "You don't have any windows partitions!"
-#~ msgstr "U het geen Windows-partisies nie!"
-
-#~ msgid "You don't have any enough room for Lnx4win"
-#~ msgstr "U het nie genoeg spasie vir Lnx4win nie."
-
-#~ msgid ", %U MB"
-#~ msgstr ", %U MB"
-
-# NOTE: this message will be displayed at boot time; that is
-# only the ascii charset will be available on most machines
-# so use only 7bit for this message (and do transliteration or
-# leave it in English, as it is the best for your language)
-#
-#, fuzzy
-#~ msgid ""
-#~ "Welcome to LILO the operating system chooser!\n"
-#~ "\n"
-#~ "To list the possible choices, press <TAB>.\n"
-#~ "\n"
-#~ "To load one of them, write its name and press <ENTER> or wait %d seconds "
-#~ "for default boot.\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Welkom by %s die bedryfstelselkeuseprogram!\n"
-#~ "\n"
-#~ "Om die moontlikhede te vertoon, druk <TAB>.\n"
-#~ "\n"
-#~ "Om 'n spesifieke een te laai, tik die nodige naam en druk <ENTER> of wag\n"
-#~ "%ds en die verstek bedryfstelsel sal laai.\n"
-#~ "\n"
-
-# NOTE: this message will be displayed at boot time; that is
-# only the ascii charset will be available on most machines
-# so use only 7bit for this message (and do transliteration or
-# leave it in English, as it is the best for your language)
-#
-#, fuzzy
-#~ msgid ""
-#~ "Welcome to SILO the operating system chooser!\n"
-#~ "\n"
-#~ "To list the possible choices, press <TAB>.\n"
-#~ "\n"
-#~ "To load one of them, write its name and press <ENTER> or\n"
-#~ "wait %d seconds for default boot.\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Welkom by %s die bedryfstelselkeuseprogram!\n"
-#~ "\n"
-#~ "Om die moontlikhede te vertoon, druk <TAB>.\n"
-#~ "\n"
-#~ "Om 'n spesifieke een te laai, tik die nodige naam en druk <ENTER> of wag\n"
-#~ "%ds en die verstek bedryfstelsel sal laai.\n"
-#~ "\n"
-
-#~ msgid "SILO main options"
-#~ msgstr "SILO hoofopsies"
-
-#~ msgid ""
-#~ "Here are the following entries in SILO.\n"
-#~ "You can add some more or change the existing ones."
-#~ msgstr ""
-#~ "Hier is die huidige SILO-inskrywings\n"
-#~ "U kan byvoeg or verwyder soos nodig."
-
-#~ msgid "This label is already in use"
-#~ msgstr "Hierdie etiket is alreeds in gebruik"
-
-#~ msgid "Installation of SILO failed. The following error occured:"
-#~ msgstr "SILO installasie het gefaal a.g.v. hierdie fout: "
-
-#~ msgid ""
-#~ "DrakX will attempt at first to look for one or more PCI\n"
-#~ "SCSI adapter(s). If it finds it (or them) and knows which driver(s)\n"
-#~ "to use, it will insert it (them) automatically.\n"
-#~ "\n"
-#~ "\n"
-#~ "If your SCSI adapter is an ISA board, or is a PCI board but DrakX\n"
-#~ "doesn't know which driver to use for this card, or if you have no\n"
-#~ "SCSI adapters at all, you will then be prompted on whether you have\n"
-#~ "one or not. If you have none, answer \"No\". If you have one or more,\n"
-#~ "answer \"Yes\". A list of drivers will then pop up, from which you\n"
-#~ "will have to select one.\n"
-#~ "\n"
-#~ "\n"
-#~ "After you have selected the driver, DrakX will ask if you\n"
-#~ "want to specify options for it. First, try and let the driver\n"
-#~ "probe for the hardware: it usually works fine.\n"
-#~ "\n"
-#~ "\n"
-#~ "If not, do not forget the information on your hardware that you\n"
-#~ "could get from your documentation or from Windows (if you have it\n"
-#~ "on your system), as suggested by the installation guide. These\n"
-#~ "are the options you will need to provide to the driver."
-#~ msgstr ""
-#~ "DrakX will probeer om eers te kyk vir een of meer bekende PCI\n"
-#~ "SCSI kaarte. Indien iets gevind word, en die drywers daarvoor\n"
-#~ "bekend is, sal dit outomaties bygevoeg word.\n"
-#~ "\n"
-#~ "\n"
-#~ "Indien u 'n ISA SCSI kaart het, of 'n onbekende PCI SCSI kaart, of\n"
-#~ "geen SCSI kaart nie, sa; u gevra word of daar enige SCSI kaarte is.\n"
-#~ "Indien daar geen is nie, antwoord \"Nee\". Indien daar wel is, antwoord\n"
-#~ "\"Ja\" en 'n lys van kaarte sal gegee word waaruit u moet kies.\n"
-#~ "\n"
-#~ "\n"
-#~ "Na seleksie van die drywer, sal DrakX of vra vir opsies. Probeer eers\n"
-#~ "dat die drywer die hardeware ondervra; dit werk gewoonlik.\n"
-#~ "\n"
-#~ "\n"
-#~ "Indien nie, moenie die dokumentasie van u hardeware vergeet nie; ook nie\n"
-#~ "enige inligting van Windows (indien u dit gennstalleer het). Hierdie is\n"
-#~ "opsies wat u die drywer moet verskaf."
-
-#~ msgid "Shutting down"
-#~ msgstr "Stelselafsluiting"
diff --git a/perl-install/share/po/ar.po b/perl-install/share/po/ar.po
deleted file mode 100644
index bad02e711..000000000
--- a/perl-install/share/po/ar.po
+++ /dev/null
@@ -1,10269 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2000 Free Software Foundation, Inc.
-# Djaghlouli Kamel <djkamel@chez.com>, 2000.
-# Mohammed Gamal <f2c2001@yahoo.com>, 2002
-# Boujaj Mostapha Ibrahim <mboujaj@yahoo.de>, 2002
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: DrakX VERSION\n"
-"POT-Creation-Date: 2002-03-11 18:29+0100\n"
-"PO-Revision-Date: 2002-03-08 02:00GMT\n"
-"Last-Translator: Mohammed Gamal <f2c2001@yahoo.com>\n"
-"Language-Team: ARABIC <ar@li.org>\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"
-
-#: ../../Xconfigurator.pm_.c:242
-msgid "Configure all heads independently"
-msgstr "Ų§Ų¹ŲÆŲ§ŲÆ ŁŁ„ Ų§Ł„Ų±Ų¤ŁŲ³ ŲØŲ´ŁŁ„ Ł…Ų³ŲŖŁ‚Ł„"
-
-#: ../../Xconfigurator.pm_.c:243
-msgid "Use Xinerama extension"
-msgstr "Ų§Ų³ŲŖŲ®ŲÆŲ§Ł… Ų§Ł…ŲŖŲÆŲ§ŲÆ Xinerama"
-
-#: ../../Xconfigurator.pm_.c:246
-#, c-format
-msgid "Configure only card \"%s\" (%s)"
-msgstr "Ł‚Ł… ŲØŲŲ¹ŲÆŲ§ŲÆ Ų§Ł„ŲØŲ·Ų§Ł‚Ų© \"%s\" ŁŁ‚Ų· (%s)"
-
-#: ../../Xconfigurator.pm_.c:249
-msgid "Multi-head configuration"
-msgstr "ŲŲ¹ŲÆŲ§ŲÆ Ł…ŲŖŲ¹ŲÆŲÆ Ų§Ł„Ų±Ų¤ŁŲ³"
-
-#: ../../Xconfigurator.pm_.c:250
-msgid ""
-"Your system support multiple head configuration.\n"
-"What do you want to do?"
-msgstr ""
-"Ł†ŲøŲ§Ł…Ł ŁŲÆŲ¹Ł… Ų§Ł„ŲŲ¹ŲÆŲ§ŲÆ Ł…ŲŖŲ¹ŲÆŲÆ Ų§Ł„Ų±Ų¤ŁŲ³.\n"
-"Ł…Ų§Ų°Ų§ ŲŖŲ±ŁŲÆ Ų£Ł† ŲŖŁŲ¹Ł„Ų"
-
-#: ../../Xconfigurator.pm_.c:261
-msgid "Graphic card"
-msgstr "ŲØŲ·Ų§Ł‚Ų© Ų§Ł„Ų´Ų§Ų´Ų©"
-
-#: ../../Xconfigurator.pm_.c:262
-msgid "Select a graphic card"
-msgstr "Ų§Ų®ŲŖŲ± ŲØŲ·Ų§Ł‚Ų© Ų´Ų§Ų´Ų©"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "Choose a X server"
-msgstr "ŲŲ®ŲŖŲ± Ų®Ų§ŲÆŁ… X"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "X server"
-msgstr "Ų®Ų§ŲÆŁ… X"
-
-#: ../../Xconfigurator.pm_.c:293
-msgid "Choose a X driver"
-msgstr "ŲŲ®ŲŖŲ± Ł…Ų´ŲŗŁ„ X"
-
-#: ../../Xconfigurator.pm_.c:293
-msgid "X driver"
-msgstr "Ł…Ų´ŲŗŁ„ X"
-
-#: ../../Xconfigurator.pm_.c:360 ../../Xconfigurator.pm_.c:366
-#: ../../Xconfigurator.pm_.c:416 ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s"
-msgstr "XFree %s"
-
-#: ../../Xconfigurator.pm_.c:363
-msgid "Which configuration of XFree do you want to have?"
-msgstr "Ų£Ł Ų§Ų¹ŲÆŲ§ŲÆ Ł„Ł€XFree ŲŖŲ±ŁŲÆŲ"
-
-#: ../../Xconfigurator.pm_.c:374
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"ŁŁ…ŁŁ† Ł„ŲØŲ·Ų§Ł‚ŲŖŁ Ų§Ł„Ų­ŲµŁŁ„ Ų¹Ł„Ł‰ ŲÆŲ¹Ł… Ł„Ł„ŲŖŲ³Ų±ŁŲ¹ Ų«Ł„Ų§Ų«Ł Ų§Ł„Ų£ŲØŲ¹Ų§ŲÆ Ł„ŁŁ† ŁŁ‚Ų· Ł…Ų¹ XFree %s.\n"
-"ŲØŲ·Ų§Ł‚ŲŖŁ Ł…ŲÆŲ¹ŁŁ…Ų© Ų¹Ł† Ų·Ų±ŁŁ‚ XFree %s Ų§Ł„ŲŖŁ ŁŁ…ŁŁ† Ų£Ł† ŲŖŁŁŁ† Ł…ŲÆŲ¹ŁŁ…Ų© ŲØŲ´Ł„ Ų£ŁŲ¶Ł„ ŁŁ Ų§Ł„ŁŲ¶Ų¹ "
-"Ų«Ł†Ų§Ų¦Ł Ų§Ł„Ų£ŲØŲ¹Ų§ŲÆ."
-
-#: ../../Xconfigurator.pm_.c:376 ../../Xconfigurator.pm_.c:409
-#, c-format
-msgid "Your card can have 3D hardware acceleration support with XFree %s."
-msgstr "ŁŁ…ŁŁ† Ł„ŲØŲ·Ų§Ł‚ŲŖŁ Ų§Ł„Ų­ŲµŁŁ„ Ų¹Ł„Ł‰ ŲÆŲ¹Ł… Ł„Ł„ŲŖŲ³Ų±ŁŲ¹ Ų«Ł„Ų§Ų«Ł Ų§Ł„Ų£ŲØŲ¹Ų§ŲÆ Ł…Ų¹ XFree %s"
-
-#: ../../Xconfigurator.pm_.c:378 ../../Xconfigurator.pm_.c:411
-#: ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s with 3D hardware acceleration"
-msgstr "XFree %s Ł…Ų¹ ŲŖŲ³Ų±ŁŲ¹ Ų«Ł„Ų§Ų«Ł Ų§Ł„Ų£ŲØŲ¹Ų§ŲÆ"
-
-#: ../../Xconfigurator.pm_.c:386 ../../Xconfigurator.pm_.c:400
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER."
-msgstr ""
-"ŁŁ…ŁŁ† Ł„ŲØŲ·Ų§Ł‚ŲŖŁ Ų§Ł„ŲŖŁ…ŲŖŲ¹ ŲØŲÆŲ¹Ł… Ł„Ł„Ų±Ų³ŁŁ… Ų«Ł„Ų§Ų«ŁŲ© Ų§Ł„Ų£ŲØŲ¹Ų§ŲÆ Ł…Ų¹ XFree %s, \n"
-"Ł„Ų§Ų­Ųø Ų£Ł† Ł‡Ų°Ų§ Ų§Ł„ŲÆŲ¹Ł… ŲŖŲ¬Ų±ŁŲØŁ Ł Ł‚ŲÆ ŁŲŖŲ³ŲØŲØ ŁŁ Ų§ŁŁ‚Ų§Ł Ų¬Ł‡Ų§Ų²Ł."
-
-#: ../../Xconfigurator.pm_.c:388 ../../Xconfigurator.pm_.c:402
-#, c-format
-msgid "XFree %s with EXPERIMENTAL 3D hardware acceleration"
-msgstr "XFree %s Ł…Ų¹ ŲÆŲ¹Ł… ŲŖŲ¬Ų±ŁŲØŁ Ł„Ł„Ų±Ų³ŁŁ… Ų«Ł„Ų§Ų«ŁŲ© Ų§Ł„Ų£ŲØŲ¹Ų§ŲÆ"
-
-#: ../../Xconfigurator.pm_.c:397
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"ŁŁ…ŁŁ† Ł„ŲØŲ·Ų§Ł‚ŲŖŁ Ų§Ł„ŲŖŁ…ŲŖŲ¹ ŲØŲÆŲ¹Ł… Ł„Ł„ŲŖŲ³Ų±ŁŲ¹ Ų«Ł„Ų§Ų«Ł Ų§Ł„Ų£ŲØŲ¹Ų§ŲÆ Ł„ŁŁ† ŁŁ‚Ų· Ł…Ų¹ XFree %s, \n"
-"Ł„Ų§Ų­Ųø Ų£Ł† Ł‡Ų°Ų§ Ų§Ł„ŲÆŲ¹Ł… ŲŖŲ¬Ų±ŁŲØŁ Ł Ł‚ŲÆ ŁŲŖŲ³ŲØŲØ ŁŁ Ų§ŁŁ‚Ų§Ł Ų¬Ł‡Ų§Ų²Ł.\n"
-"ŲØŲ·Ų§Ł‚ŲŖŁ Ł…ŲÆŲ¹ŁŁ…Ų© Ų¹Ł† Ų·Ų±ŁŁ‚ XFree %s Ų§Ł„ŲŖŁ ŁŁ…ŁŁ† Ų£Ł† ŲŖŁŁŁ† Ł…ŲÆŲ¹ŁŁ…Ų© ŲØŲ´ŁŁ„ Ų£ŁŲ¶Ł„ ŁŁ ŁŲ¶Ų¹ŁŲ© "
-"Ų§Ł„Ų±Ų³ŁŁ… Ų«Ł†Ų§Ų¦ŁŲ© Ų§Ł„Ų£ŲØŲ¹Ų§ŲÆ."
-
-#: ../../Xconfigurator.pm_.c:417
-msgid "Xpmac (installation display driver)"
-msgstr "Xpmac (Ł…Ų´ŲŗŁ„ Ų¹Ų±Ų¶ Ų§Ł„ŲŖŲ«ŲØŁŲŖ)"
-
-#: ../../Xconfigurator.pm_.c:421
-msgid "XFree configuration"
-msgstr "ŲŲ¹ŲÆŲ§ŲÆ XFree"
-
-#: ../../Xconfigurator.pm_.c:496
-msgid "Select the memory size of your graphic card"
-msgstr "ŲŲ®ŲŖŲ± Ų­Ų¬Ł… Ų°Ų§ŁŲ±Ų© ŲØŲ·Ų§Ł‚Ų© Ų§Ł„Ų´Ų§Ų´Ų©"
-
-#: ../../Xconfigurator.pm_.c:550
-msgid "Choose options for server"
-msgstr "ŲŲ®ŲŖŲ± Ų®ŁŲ§Ų±Ų§ŲŖ Ų§Ł„Ų®Ų§ŲÆŁ…"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Choose a monitor"
-msgstr "ŲŲ®ŲŖŲ± Ų´Ų§Ų´Ų©"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Monitor"
-msgstr "Ų§Ł„Ų´Ų§Ų´Ų©"
-
-#: ../../Xconfigurator.pm_.c:577
-msgid ""
-"The two critical parameters are the vertical refresh rate, which is the "
-"rate\n"
-"at which the whole screen is refreshed, and most importantly the horizontal\n"
-"sync rate, which is the rate at which scanlines are displayed.\n"
-"\n"
-"It is VERY IMPORTANT that you do not specify a monitor type with a sync "
-"range\n"
-"that is beyond the capabilities of your monitor: you may damage your "
-"monitor.\n"
-" If in doubt, choose a conservative setting."
-msgstr ""
-"Ų§Ł„Ł…Ų¹Ų§Ł…Ł„Ų§Ł† Ų§Ł„Ł…Ł‡Ł…Ų§Ł† Ų¬ŲÆŲ§ Ł‡Ł…Ų§ Ł†Ų³ŲØŲ© Ų§Ł„ŲŁ†Ų¹Ų§Ų´ Ų§Ł„Ų£ŁŁ‚Ł, Ł Ł‡Ł Ų§Ł„Ł†Ų³ŲØŲ© Ų§Ł„ŲŖŁ\n"
-"ŁŲŖŁ… ŁŁŁ‡Ų§ Ų§Ł†Ų¹Ų§Ų´ Ų§Ł„Ų´Ų§Ų´Ų© ŁŲ§Ł…Ł„Ų©, Ł Ų§Ł„Ų£Ł‡Ł… Ł‡Ł Ł†Ų³ŲØŲ© Ų§Ł„ŲŖŲ²Ų§Ł…Ł† Ų§Ł„Ų£ŁŁ‚Ł\n"
-"Ł Ų§Ł„ŲŖŁ ŁŁ Ų®Ł„Ų§Ł„Ł‡Ų§ ŁŲŖŁ… Ų¹Ų±Ų¶ Ų®Ų·ŁŲ· Ų§Ł„Ł…Ų³Ų­.\n"
-"\n"
-"Ł…Ł† *Ų§Ł„Ł…Ł‡Ł… Ų¬ŲÆŲ§* Ų£Ł† Ł„Ų§ ŲŖŲ­ŲÆŲÆ Ł†ŁŲ¹ Ų´Ų§Ų´Ų© Ł…Ų¹ Ł…ŲŖŁŲ³Ų· ŲŖŲ²Ų§Ł…Ł†\n"
-"Ų£ŁŲØŲ± Ł…Ł† Ł…Ł‚ŲÆŲ±Ų© Ų´Ų§Ų´ŲŖŁ Ł„Ų£Ł†Ł ŲØŁ‡Ų°Ų§ Ł‚ŲÆ ŲŖŲÆŁ…Ų± Ų´Ų§Ų´ŲŖŁ.\n"
-" Ų§Ų°Ų§ Ł„Ł… ŲŖŁŁ† Ł…ŲŖŲ£ŁŲÆŲ§ ŁŁ…ŁŁ†Ł Ų§Ų®ŲŖŁŲ§Ų± Ų§Ų¹ŲÆŲ§ŲÆŲ§ŲŖ Ų¹Ų§ŲÆŁŲ©."
-
-#: ../../Xconfigurator.pm_.c:584
-msgid "Horizontal refresh rate"
-msgstr "Ł†Ų³ŲØŲ© Ų§Ł„ŲŁ†Ų¹Ų§Ų´ Ų§Ł„Ų£ŁŁ‚Ł"
-
-#: ../../Xconfigurator.pm_.c:585
-msgid "Vertical refresh rate"
-msgstr "Ł†Ų³ŲØŲ© Ų§Ł„ŲŁ†Ų¹Ų§Ų´ Ų§Ł„Ų±Ų£Ų³Ł"
-
-#: ../../Xconfigurator.pm_.c:622
-msgid "Monitor not configured"
-msgstr "Ų§Ł„Ų´Ų§Ų´Ų© ŲŗŁŲ± Ł…Ų¹ŲÆŁ‘Ų©"
-
-#: ../../Xconfigurator.pm_.c:625
-msgid "Graphic card not configured yet"
-msgstr "Ł„Ł… ŁŲŖŁ… Ų§Ų¹ŲÆŲ§ŲÆ ŲØŲ·Ų§Ł‚Ų© Ų§Ł„Ų´Ų§Ų´Ų© Ų­ŲŖŁ‰ Ų§Ł„Ų¢Ł†"
-
-#: ../../Xconfigurator.pm_.c:628
-msgid "Resolutions not chosen yet"
-msgstr "Ų§Ł… ŁŲŖŁ… Ų§Ų¹ŲÆŲ§ŲÆ ŲÆŁ‚Ų© Ų§Ł„Ų¹Ų±Ų¶ Ų­ŲŖŁ‰ Ų§Ł„Ų¢Ł†"
-
-#: ../../Xconfigurator.pm_.c:646
-msgid "Do you want to test the configuration?"
-msgstr "Ł‡Ł„ ŲŖŲ±ŁŲÆ ŲŖŲ¬Ų±ŲØŲ© Ų§Ł„ŲŲ¹ŲÆŲ§ŲÆŲ"
-
-#: ../../Xconfigurator.pm_.c:650
-msgid "Warning: testing this graphic card may freeze your computer"
-msgstr "ŲŖŲ­Ų°ŁŲ±: Ų§Ų®ŲŖŲØŲ§Ų± ŲØŲ·Ų§Ł‚Ų© Ų§Ł„Ų¹Ų±Ų¶ Ł‡Ų°Ł‡ Ł‚ŲÆ ŁŲŖŲ³ŲØ ŁŁ Ų§ŁŁ‚Ų§Ł Ų¬Ł‡Ų§Ų²Ł"
-
-#: ../../Xconfigurator.pm_.c:653
-msgid "Test of the configuration"
-msgstr "Ų§Ų®ŲŖŲØŲ§Ų± Ų§Ł„ŲŲ¹ŲÆŲ§ŲÆ"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid ""
-"\n"
-"try to change some parameters"
-msgstr ""
-"\n"
-"Ų­Ų§ŁŁ„ ŲŖŲŗŁŁŲ± ŲØŲ¹Ų¶ Ų§Ł„Ł…Ų¹Ų§Ł…Ł„Ų§ŲŖ"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid "An error has occurred:"
-msgstr "ŲøŁ‡Ų± Ų®Ų·Ų£:"
-
-#: ../../Xconfigurator.pm_.c:731
-#, c-format
-msgid "Leaving in %d seconds"
-msgstr "Ų§Ł„Ł…ŲŗŲ§ŲÆŲ±Ų© ŁŁ %d Ų«ŁŲ§Ł†"
-
-#: ../../Xconfigurator.pm_.c:742
-msgid "Is this the correct setting?"
-msgstr "Ł‡Ł„ Ł‡Ų°Ų§ Ł‡Ł Ų§Ł„Ų¶ŲØŲ· Ų§Ł„ŲµŲ­ŁŲ­Ų"
-
-#: ../../Xconfigurator.pm_.c:751
-msgid "An error has occurred, try to change some parameters"
-msgstr "ŲøŁ‡Ų± Ų®Ų·Ų£, Ų­Ų§ŁŁ„ ŲŖŲŗŁŁŲ± ŲØŲ¹Ų¶ Ų§Ł„Ł…Ų§Ł…Ł„Ų§ŲŖ"
-
-#: ../../Xconfigurator.pm_.c:822
-msgid "Resolution"
-msgstr "ŲÆŁ‚Ų© Ų§Ł„Ų¹Ų±Ų¶"
-
-#: ../../Xconfigurator.pm_.c:874
-msgid "Choose the resolution and the color depth"
-msgstr "Ų§Ų®ŲŖŲ± ŲÆŁ‚Ų© Ų§Ł„Ų¹Ų±Ų¶ Ł Ų¹Ł…Ł‚ Ų§Ł„Ų£Ł„ŁŲ§Ł…"
-
-#: ../../Xconfigurator.pm_.c:876
-#, c-format
-msgid "Graphic card: %s"
-msgstr "ŲØŲ·Ų§Ł‚Ų© Ų§Ł„Ų´Ų§Ų´Ų©: %s"
-
-#: ../../Xconfigurator.pm_.c:877
-#, c-format
-msgid "XFree86 server: %s"
-msgstr "Ų®Ų§ŲÆŁ… XFree86 :%s"
-
-#: ../../Xconfigurator.pm_.c:891 ../../diskdrake/interactive.pm_.c:259
-#: ../../install_steps_interactive.pm_.c:208
-msgid "More"
-msgstr "Ų£ŁŲ«Ų±"
-
-#: ../../Xconfigurator.pm_.c:891 ../../install_gtk.pm_.c:84
-#: ../../install_steps_gtk.pm_.c:328 ../../interactive.pm_.c:127
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_http.pm_.c:104
-#: ../../interactive_newt.pm_.c:170 ../../interactive_stdio.pm_.c:141
-#: ../../interactive_stdio.pm_.c:142 ../../my_gtk.pm_.c:686
-#: ../../my_gtk.pm_.c:1019 ../../my_gtk.pm_.c:1041
-#: ../../standalone/drakbackup_.c:2298 ../../standalone/drakbackup_.c:2369
-#: ../../standalone/drakbackup_.c:2385
-msgid "Ok"
-msgstr "Ł…ŁŲ§ŁŁ‚"
-
-#: ../../Xconfigurator.pm_.c:893 ../../network/netconnect.pm_.c:169
-#: ../../printerdrake.pm_.c:2470 ../../standalone/draknet_.c:275
-#: ../../standalone/draknet_.c:278
-msgid "Expert Mode"
-msgstr "ŁŲ¶Ų¹ŁŲ© Ų§Ł„Ų®ŲØŁŲ±"
-
-#: ../../Xconfigurator.pm_.c:894
-msgid "Show all"
-msgstr "Ų§ŲøŁ‡Ų§Ų± Ų§Ł„ŁŁ„"
-
-#: ../../Xconfigurator.pm_.c:939
-msgid "Resolutions"
-msgstr "ŲÆŁ‚Ų© Ų§Ł„Ų¹Ų±Ų¶"
-
-#: ../../Xconfigurator.pm_.c:1509
-#, c-format
-msgid "Keyboard layout: %s\n"
-msgstr "Ł„ŁŲ­Ų© Ų§Ł„Ł…ŁŲ§ŲŖŁŲ­: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1510
-#, c-format
-msgid "Mouse type: %s\n"
-msgstr "Ł†ŁŲ¹ Ų§Ł„ŁŲ£Ų±Ų©: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1511
-#, c-format
-msgid "Mouse device: %s\n"
-msgstr "Ų¬Ł‡Ų§Ų² Ų§Ł„ŁŲ£Ų±Ų©: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1512
-#, c-format
-msgid "Monitor: %s\n"
-msgstr "Ų§Ł„Ų´Ų§Ų´Ų©: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1513
-#, c-format
-msgid "Monitor HorizSync: %s\n"
-msgstr "ŲŖŲ²Ų§Ł…Ł† Ų§Ł„Ų´Ų§Ų´Ų© Ų§Ł„Ų£ŁŁ‚Ł: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1514
-#, c-format
-msgid "Monitor VertRefresh: %s\n"
-msgstr "Ų§Ł†Ų¹Ų§Ų´ Ų§Ł„Ų´Ų§Ų´Ų© Ų§Ł„Ų±Ų£Ų³Ł: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1515
-#, c-format
-msgid "Graphic card: %s\n"
-msgstr "ŲØŲ·Ų§Ł‚Ų© Ų§Ł„Ų´Ų§Ų´Ų©: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1516
-#, c-format
-msgid "Graphic card identification: %s\n"
-msgstr "Ł…Ų¹Ų±Ł ŲØŲ·Ų§Ł‚Ų© Ų§Ł„Ų´Ų§Ų´Ų©: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1517
-#, c-format
-msgid "Graphic memory: %s kB\n"
-msgstr "Ų°Ų§ŁŲ±Ų© ŲØŲ·Ų§Ł‚Ų© Ų§Ł„Ų´Ų§Ų´Ų©: %s ŁŁŁ„ŁŲØŲ§ŁŲŖ\n"
-
-#: ../../Xconfigurator.pm_.c:1519
-#, c-format
-msgid "Color depth: %s\n"
-msgstr "Ų¹Ł…Ł‚ Ų§Ł„Ų£Ł„ŁŲ§Ł†: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1520
-#, c-format
-msgid "Resolution: %s\n"
-msgstr "ŲÆŁ‚Ų© Ų§Ł„Ų¹Ų±Ų¶: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1522
-#, c-format
-msgid "XFree86 server: %s\n"
-msgstr "Ų®Ų§ŲÆŁ… XFree86: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1523
-#, c-format
-msgid "XFree86 driver: %s\n"
-msgstr "Ł…Ų´ŲŗŁ„ XFree86: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1541
-msgid "Preparing X-Window configuration"
-msgstr "Ų¬Ų§Ų±Ł ŲŖŲ¬Ł‡ŁŲ² ŲŖŁ‡ŁŲ¦Ų© X-Window"
-
-#: ../../Xconfigurator.pm_.c:1561
-msgid "What do you want to do?"
-msgstr "Ł…Ų§Ų°Ų§ ŲŖŲ±ŁŲÆ Ų£Ł† ŲŖŁŲ¹Ł„Ų"
-
-#: ../../Xconfigurator.pm_.c:1566
-msgid "Change Monitor"
-msgstr "ŲŖŲŗŁŁŲ± Ų§Ł„Ų´Ų§Ų´Ų©"
-
-#: ../../Xconfigurator.pm_.c:1567
-msgid "Change Graphic card"
-msgstr "ŲŖŲŗŁŁŲ± ŲØŲ·Ų§Ł‚Ų© Ų§Ł„Ų´Ų§Ų´Ų©"
-
-#: ../../Xconfigurator.pm_.c:1570
-msgid "Change Server options"
-msgstr "ŲŖŲŗŁŁŲ± Ų®ŁŲ§Ų±Ų§ŲŖ Ų§Ł„Ų®Ų§ŲÆŁ…"
-
-#: ../../Xconfigurator.pm_.c:1571
-msgid "Change Resolution"
-msgstr "ŲŖŲŗŁŁŲ± ŲÆŁ‚Ų© Ų§Ł„Ų¹Ų±Ų¶"
-
-#: ../../Xconfigurator.pm_.c:1572
-msgid "Show information"
-msgstr "Ų¹Ų±Ų¶ Ų§Ł„Ł…Ų¹Ł„ŁŁ…Ų§ŲŖ"
-
-#: ../../Xconfigurator.pm_.c:1573
-msgid "Test again"
-msgstr "Ų§Ų®ŲŖŲØŲ± Ł…Ų±Ų© Ų£Ų®Ų±Ł‰"
-
-#: ../../Xconfigurator.pm_.c:1574 ../../printerdrake.pm_.c:2473
-#: ../../standalone/logdrake_.c:225
-msgid "Quit"
-msgstr "Ų®Ų±ŁŲ¬"
-
-#: ../../Xconfigurator.pm_.c:1582
-#, c-format
-msgid ""
-"Keep the changes?\n"
-"Current configuration is:\n"
-"\n"
-"%s"
-msgstr ""
-"Ł‡Ł„ ŲŖŲ±ŁŲÆ Ų­ŁŲø Ų§Ł„ŲŖŲŗŁŁŲ±Ų§ŲŖŲ\n"
-"Ų§Ł„ŲŲ¹ŲÆŲ§ŲÆ Ų§Ł„Ų­Ų§Ł„Ł Ł‡Ł:\n"
-"\n"
-"%s"
-
-#: ../../Xconfigurator.pm_.c:1603
-msgid "X at startup"
-msgstr "X Ų¹Ł†ŲÆ ŲØŲÆŲ Ų§Ł„ŲŖŲ´ŲŗŁŁ„"
-
-#: ../../Xconfigurator.pm_.c:1604
-msgid ""
-"I can set up your computer to automatically start X upon booting.\n"
-"Would you like X to start when you reboot?"
-msgstr ""
-"ŁŁ…ŁŁ†Ł†Ł Ų¬Ų¹Ł„ Ų¬Ł‡Ų§Ų²Ł ŁŲØŲÆŲ£ X ŲØŲ´ŁŁ„ Ų¢Ł„Ł ŲØŲ¹ŲÆ Ų§Ł„ŲŁ‚Ł„Ų§Ų¹.\n"
-"Ł‡Ł„ ŲŖŲ±ŁŲÆ X Ų£Ł† ŲØŁŲÆŲ£ ŲØŲ¹ŲÆ ŲŲ¹Ų§ŲÆŲ© ŲŖŲ´ŲŗŁŁ„ Ų¬Ł‡Ų§Ų²ŁŲ"
-
-#: ../../Xconfigurator.pm_.c:1610
-#, c-format
-msgid "Please relog into %s to activate the changes"
-msgstr "ŁŲ±Ų¬Ł‰ Ų§Ų¹Ų§ŲÆŲ© ŲŖŲ³Ų¬ŁŁ„ Ų§Ł„ŲÆŲ®ŁŁ„ Ų§Ł„Ł‰ %s Ł„ŲŖŁ†Ų´ŁŲ· Ų§Ł„ŲŖŲŗŁŁŲ±Ų§ŲŖ"
-
-#: ../../Xconfigurator.pm_.c:1625
-msgid "Please log out and then use Ctrl-Alt-BackSpace"
-msgstr "ŁŲ±Ų¬Ł‰ ŲŖŲ³Ų¬ŁŁ„ Ų§Ł„Ų®Ų±ŁŲ¬ Ų«Ł… Ų§Ų³ŲŖŲ®ŲÆŁ… Ctrl-Alt-BackSpace"
-
-#: ../../Xconfigurator_consts.pm_.c:6
-msgid "256 colors (8 bits)"
-msgstr "256 Ł„ŁŁ† )8 ŲØŲŖ("
-
-#: ../../Xconfigurator_consts.pm_.c:7
-msgid "32 thousand colors (15 bits)"
-msgstr "32 Ų£Ł„Ł Ł„ŁŁ† )15 ŲØŲŖ("
-
-#: ../../Xconfigurator_consts.pm_.c:8
-msgid "65 thousand colors (16 bits)"
-msgstr "65 Ų£Ł„Ł Ł„ŁŁ† )16 ŲØŲŖ("
-
-#: ../../Xconfigurator_consts.pm_.c:9
-msgid "16 million colors (24 bits)"
-msgstr "16 Ł…Ł„ŁŁŁ† Ł„ŁŁ† )24 ŲØŲŖ("
-
-#: ../../Xconfigurator_consts.pm_.c:10
-msgid "4 billion colors (32 bits)"
-msgstr "4 ŲØŁ„ŁŁŁ† Ł„ŁŁ† )32 ŲØŲŖ("
-
-#: ../../Xconfigurator_consts.pm_.c:113
-msgid "256 kB"
-msgstr "256 ŁŁŁ„ŁŲØŲ§ŁŲŖ"
-
-#: ../../Xconfigurator_consts.pm_.c:114
-msgid "512 kB"
-msgstr "512 ŁŁŁ„ŁŲØŲ§ŁŲŖ"
-
-#: ../../Xconfigurator_consts.pm_.c:115
-msgid "1 MB"
-msgstr "1 Ł…ŁŲŗŲ§ŲØŲ§ŁŲŖ"
-
-#: ../../Xconfigurator_consts.pm_.c:116
-msgid "2 MB"
-msgstr "2 Ł…ŁŲŗŲ§ŲØŲ§ŁŲŖ"
-
-#: ../../Xconfigurator_consts.pm_.c:117
-msgid "4 MB"
-msgstr "4 Ł…ŁŲŗŲ§ŲØŲ§ŁŲŖ"
-
-#: ../../Xconfigurator_consts.pm_.c:118
-msgid "8 MB"
-msgstr "8 Ł…ŁŲŗŲ§ŲØŲ§ŁŲŖ"
-
-#: ../../Xconfigurator_consts.pm_.c:119
-msgid "16 MB"
-msgstr "16 Ł…ŁŲŗŲ§ŲØŲ§ŁŲŖ"
-
-#: ../../Xconfigurator_consts.pm_.c:120
-msgid "32 MB"
-msgstr "32 Ł…ŁŲŗŲ§ŲØŲ§ŁŲŖ"
-
-#: ../../Xconfigurator_consts.pm_.c:121
-msgid "64 MB or more"
-msgstr "64 Ł…ŁŲŗŲ§ŲØŲ§ŁŲŖ Ų£Ł Ų£ŁŲ«Ų±"
-
-#: ../../Xconfigurator_consts.pm_.c:129
-msgid "Standard VGA, 640x480 at 60 Hz"
-msgstr "Standard VGA, 640x480 at 60 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:130
-msgid "Super VGA, 800x600 at 56 Hz"
-msgstr "Super VGA, 800x600 at 56 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:131
-msgid "8514 Compatible, 1024x768 at 87 Hz interlaced (no 800x600)"
-msgstr "8514 Compatible, 1024x768 at 87 Hz interlaced (no 800x600)"
-
-#: ../../Xconfigurator_consts.pm_.c:132
-msgid "Super VGA, 1024x768 at 87 Hz interlaced, 800x600 at 56 Hz"
-msgstr "Super VGA, 1024x768 at 87 Hz interlaced, 800x600 at 56 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:133
-msgid "Extended Super VGA, 800x600 at 60 Hz, 640x480 at 72 Hz"
-msgstr "Extended Super VGA, 800x600 at 60 Hz, 640x480 at 72 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:134
-msgid "Non-Interlaced SVGA, 1024x768 at 60 Hz, 800x600 at 72 Hz"
-msgstr "Non-Interlaced SVGA, 1024x768 at 60 Hz, 800x600 at 72 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:135
-msgid "High Frequency SVGA, 1024x768 at 70 Hz"
-msgstr "High Frequency SVGA, 1024x768 at 70 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:136
-msgid "Multi-frequency that can do 1280x1024 at 60 Hz"
-msgstr "Multi-frequency that can do 1280x1024 at 60 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:137
-msgid "Multi-frequency that can do 1280x1024 at 74 Hz"
-msgstr "Multi-frequency that can do 1280x1024 at 74 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:138
-msgid "Multi-frequency that can do 1280x1024 at 76 Hz"
-msgstr "Multi-frequency that can do 1280x1024 at 76 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:139
-msgid "Monitor that can do 1600x1200 at 70 Hz"
-msgstr "Monitor that can do 1600x1200 at 70 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:140
-msgid "Monitor that can do 1600x1200 at 76 Hz"
-msgstr "Monitor that can do 1600x1200 at 76 Hz"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141
-msgid "First sector of boot partition"
-msgstr "Ų§Ł„Ł‚Ų·Ų§Ų¹ Ų§ŁŁ„ Ł…Ł† ŲŖŲ¬Ų²Ų¦Ų© Ų§Ł„ŲŁ‚Ł„Ų§Ų¹"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141 ../../any.pm_.c:218
-msgid "First sector of drive (MBR)"
-msgstr "Ų§Ł„Ł‚Ų·Ų§Ų¹ Ų§Ł„Ų£ŁŁ„ Ł…Ł† Ų§Ł„Ł‚Ų±Ųµ (MBR)"
-
-#: ../../any.pm_.c:120
-msgid "SILO Installation"
-msgstr "ŲŖŲ«ŲØŁŲŖ SILO"
-
-#: ../../any.pm_.c:121 ../../any.pm_.c:134
-msgid "Where do you want to install the bootloader?"
-msgstr "Ų£ŁŁ† ŲŖŲ±ŁŲÆ ŲŖŲ«ŲØŁŲŖ Ł…Ų­Ł…Ł‘Ł„ Ų§Ł„ŲŁ‚Ł„Ų§Ų¹Ų"
-
-#: ../../any.pm_.c:133
-msgid "LILO/grub Installation"
-msgstr "ŲŖŲ«ŲØŁŲŖ LILO/grub"
-
-#: ../../any.pm_.c:145 ../../any.pm_.c:159
-msgid "SILO"
-msgstr "SILO"
-
-#: ../../any.pm_.c:147
-msgid "LILO with text menu"
-msgstr "LILO Ł…Ų¹ Ł‚Ų§Ų¦Ł…Ų© Ł†ŲµŁŲ©"
-
-#: ../../any.pm_.c:148 ../../any.pm_.c:159
-msgid "LILO with graphical menu"
-msgstr "LILO Ł…Ų¹ Ł‚Ų§Ų¦Ł…Ų© Ų±Ų³ŁŁ…ŁŲ©"
-
-#: ../../any.pm_.c:151
-msgid "Grub"
-msgstr "Grub"
-
-#: ../../any.pm_.c:155
-msgid "Boot from DOS/Windows (loadlin)"
-msgstr "Ų§Ł„ŲŁ‚Ł„Ų§Ų¹ Ł…Ł† DOS/Windows (loadlin)"
-
-#: ../../any.pm_.c:157 ../../any.pm_.c:159
-msgid "Yaboot"
-msgstr "Yaboot"
-
-#: ../../any.pm_.c:166 ../../any.pm_.c:198
-msgid "Bootloader main options"
-msgstr "Ų®ŁŲ§Ų±Ų§ŲŖ Ł…Ų­Ł…Ł‘Ł„ Ų§Ł„ŲŁ‚Ł„Ų§Ų¹ Ų§Ł„Ų±Ų¦ŁŲ³ŁŲ©"
-
-#: ../../any.pm_.c:167 ../../any.pm_.c:199
-msgid "Bootloader to use"
-msgstr "Ł…Ų­Ł…Ł‘Ł„ Ų§Ł„ŲŁ‚Ł„Ų§Ų¹ Ų§Ł„Ł…Ł¸Ų³ŲŖŲ®ŲÆŁ…"
-
-#: ../../any.pm_.c:169
-msgid "Bootloader installation"
-msgstr "ŲŖŲ«ŲØŁŲŖ Ł…Ų­Ł…Ł„ Ų§Ł„ŲŁ‚Ł„Ų§Ų¹"
-
-#: ../../any.pm_.c:171 ../../any.pm_.c:201
-msgid "Boot device"
-msgstr "Ų¬Ł‡Ų§Ų² Ų§Ł„ŲŁ‚Ł„Ų§Ų¹"
-
-#: ../../any.pm_.c:172
-msgid "LBA (doesn't work on old BIOSes)"
-msgstr "LBA )Ł„Ų§ ŁŲ¹Ł…Ł„ Ł…Ų¹ Ų£Ł†ŲøŁ…Ų© Ų§Ł„Ł€BIOS Ų§Ł„Ł‚ŲÆŁŁ…Ų©("
-
-#: ../../any.pm_.c:173
-msgid "Compact"
-msgstr "Ł…ŲÆŁ…Ų¬"
-
-#: ../../any.pm_.c:173
-msgid "compact"
-msgstr "Ł…ŲÆŁ…Ų¬"
-
-#: ../../any.pm_.c:174 ../../any.pm_.c:298
-msgid "Video mode"
-msgstr "ŁŲ¶Ų¹ŁŲ© Ų§Ł„ŁŁŲÆŁŲ©"
-
-#: ../../any.pm_.c:176
-msgid "Delay before booting default image"
-msgstr "ŲŖŁŁ‚ŁŲŖ Ł…Ų§ Ł‚ŲØŁ„ Ų§Ł‚Ł„Ų§Ų¹ Ų§Ł„ŲµŁŲ±Ų© Ų§Ł„Ų§ŁŲŖŲ±Ų§Ų¶ŁŲ©"
-
-#: ../../any.pm_.c:178 ../../any.pm_.c:796
-#: ../../install_steps_interactive.pm_.c:1115 ../../network/modem.pm_.c:48
-#: ../../printerdrake.pm_.c:708 ../../printerdrake.pm_.c:806
-#: ../../standalone/draknet_.c:625
-msgid "Password"
-msgstr "???Ā§?????????Ā© ?Ā§???Ā³?????????Ā±"
-
-#: ../../any.pm_.c:179 ../../any.pm_.c:797
-#: ../../install_steps_interactive.pm_.c:1116
-msgid "Password (again)"
-msgstr "ŁŁ„Ł…Ų© Ų§Ł„Ł…Ų±ŁŲ± )Ų«Ų§Ł†ŁŲ©Ł‹("
-
-#: ../../any.pm_.c:180
-msgid "Restrict command line options"
-msgstr "ŲŖŲ´ŲÆŁŲÆ Ų®ŁŲ§Ų±Ų§ŲŖ Ų³Ų·Ų± Ų§Ł„Ų£ŁŲ§Ł…Ų±"
-
-#: ../../any.pm_.c:180
-msgid "restrict"
-msgstr "ŲŖŲ´ŲÆŁŲÆ"
-
-#: ../../any.pm_.c:182
-msgid "Clean /tmp at each boot"
-msgstr "Ł‚Ł… ŲØŲŖŁ†ŲøŁŁ /tmp Ų¹Ł†ŲÆ ŁŁ„ ŲŁ‚Ł„Ų§Ų¹"
-
-#: ../../any.pm_.c:183
-#, c-format
-msgid "Precise RAM size if needed (found %d MB)"
-msgstr "Ų­Ų¬Ł… Ų§Ł„Ų°Ų§ŁŲ±Ų© Ų§Ł„ŲÆŁ‚ŁŁ‚ Ų¹Ł†ŲÆ Ų§Ł„Ų­Ų§Ų¬Ų© )ŲŖŁ… Ų§ŁŲ¬Ų§ŲÆ %d Ł…ŁŲŗŲ§ŲØŲ§ŁŲŖ("
-
-#: ../../any.pm_.c:185
-msgid "Enable multi profiles"
-msgstr "ŲŖŁ…ŁŁŁ† Ų§Ł„ŲŖŲ´ŁŁŁ„Ų§ŲŖ Ų§Ł„Ł…ŲŖŲ¹ŲÆŲÆŲ©"
-
-#: ../../any.pm_.c:189
-msgid "Give the ram size in MB"
-msgstr "Ų§ŁŲŖŲØ Ų­Ų¬Ł… Ų§Ł„Ų°Ų§ŁŲ±Ų© ŲØŲ§Ł„Ł…ŁŲŗŲ§ŲØŲ§ŁŲŖ"
-
-#: ../../any.pm_.c:191
-msgid ""
-"Option ``Restrict command line options'' is of no use without a password"
-msgstr "Ų®ŁŲ§Ų± ``ŲŖŲ´ŲÆŁŲÆ Ų®ŁŲ§Ų±Ų§ŲŖ Ų³Ų·Ų± Ų§Ł„Ų£ŁŲ§Ł…Ų±`` ŲØŲÆŁŁ† Ł‚Ų§Ų¦ŲÆŲ© Ł…Ł† ŲÆŁŁ† ŁŁ„Ł…Ų© Ł…Ų±ŁŲ±"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../diskdrake/interactive.pm_.c:1135
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "Please try again"
-msgstr "Ų±Ų¬Ų§Ų Ų¬Ų§ŁŁ„ Ł…Ų±Ų© Ų£Ų®Ų±Ł‰"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "The passwords do not match"
-msgstr "ŁŁ„Ł…Ų§ŲŖ Ų§Ł„Ł…Ų±ŁŲ± ŲŗŁŲ± Ł…ŲŖŲ·Ų§ŲØŁ‚Ų©"
-
-#: ../../any.pm_.c:200
-msgid "Init Message"
-msgstr "Ų±Ų³Ų§Ł„Ų© Init"
-
-#: ../../any.pm_.c:202
-msgid "Open Firmware Delay"
-msgstr "Open Firmware Delay"
-
-#: ../../any.pm_.c:203
-msgid "Kernel Boot Timeout"
-msgstr "Ų§Ł„ŁŁ‚ŲŖ Ų§Ł„Ų£Ł‚ŲµŁ‰ Ł„ŲŁ‚Ł„Ų§Ų¹ Ų§Ł„Ł†ŁŲ§Ų©"
-
-#: ../../any.pm_.c:204
-msgid "Enable CD Boot?"
-msgstr "ŲŖŁ…ŁŁŁ† Ų§Ł„ŲŁ‚Ł„Ų§Ų¹ Ł…Ł† Ų§Ł„Ł‚Ų±Ųµ Ų§Ł„Ł…ŲÆŁ…Ų¬Ų"
-
-#: ../../any.pm_.c:205
-msgid "Enable OF Boot?"
-msgstr "ŲŖŁ…ŁŁŁ† Ų§Ł‚Ł„Ų§Ų¹ OFŲ"
-
-#: ../../any.pm_.c:206
-msgid "Default OS?"
-msgstr "Ł†ŲøŲ§Ł… Ų§Ł„ŲŖŲ´ŲŗŁŁ„ Ų§Ł„Ų§ŁŲŖŲ±Ų§Ų¶ŁŲ"
-
-#: ../../any.pm_.c:240
-msgid ""
-"You decided to install the bootloader on a partition.\n"
-"This implies you already have a bootloader on the hard drive you boot (eg: "
-"System Commander).\n"
-"\n"
-"On which drive are you booting?"
-msgstr ""
-
-#: ../../any.pm_.c:255
-msgid ""
-"Here are the different entries.\n"
-"You can add some more or change the existing ones."
-msgstr ""
-"Ł‡Ų§ Ł‡Ł†Ų§ Ų§Ł„Ł…Ų®Ł„Ų§ŲŖ Ų§Ł„Ł…Ų®ŲŖŁ„ŁŲ©.\n"
-"ŁŁ…ŁŁ†Ł Ų§Ų¶Ų§ŁŲ© Ł…ŲÆŲ®Ł„Ų§ŲŖ Ų£Ų®Ų±Ł‰ Ų£Ł ŲŖŲŗŁŁŲ± Ų§Ł„Ł…ŁŲ¬ŁŲÆŁŁ†."
-
-#: ../../any.pm_.c:265 ../../standalone/drakbackup_.c:752
-#: ../../standalone/drakbackup_.c:861 ../../standalone/drakfont_.c:789
-#: ../../standalone/drakfont_.c:826
-msgid "Add"
-msgstr "ŲŲ¶Ų§ŁŲ©"
-
-#: ../../any.pm_.c:265 ../../any.pm_.c:784 ../../diskdrake/hd_gtk.pm_.c:153
-#: ../../diskdrake/removable.pm_.c:27 ../../diskdrake/smbnfs_gtk.pm_.c:86
-#: ../../interactive_http.pm_.c:153
-msgid "Done"
-msgstr "Ų§Ł†ŲŖŁ‡Ł‰"
-
-#: ../../any.pm_.c:265
-msgid "Modify"
-msgstr "ŲŖŲ¹ŲÆŁŁ„"
-
-#: ../../any.pm_.c:273
-msgid "Which type of entry do you want to add?"
-msgstr "Ł…Ų§ Ł†ŁŲ¹ Ų§Ł„Ł…ŲÆŲ®Ł„ Ų§Ł„Ų°Ł ŲŖŲ±ŁŲÆ Ų§Ų¶Ų§ŁŲŖŁ‡Ų"
-
-#: ../../any.pm_.c:274 ../../standalone/drakbackup_.c:895
-msgid "Linux"
-msgstr "Ł„ŁŁ†ŁŲ³"
-
-#: ../../any.pm_.c:274
-msgid "Other OS (SunOS...)"
-msgstr "Ł†ŲøŲ§Ł… Ų¢Ų®Ų± (SunOS...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (MacOS...)"
-msgstr "Ł†ŲøŲ§Ł… Ų¢Ų®Ų± (MacOS...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (windows...)"
-msgstr "Ł†ŲøŲ§Ł… Ų¢Ų®Ų± (Windows...)"
-
-#: ../../any.pm_.c:294
-msgid "Image"
-msgstr "ŲµŁŲ±Ų©"
-
-#: ../../any.pm_.c:295 ../../any.pm_.c:306
-msgid "Root"
-msgstr "Ų§Ł„Ų¬Ų°Ų±"
-
-#: ../../any.pm_.c:296 ../../any.pm_.c:325
-msgid "Append"
-msgstr "Ų§Ł„Ų­Ų§Ł‚"
-
-#: ../../any.pm_.c:300
-msgid "Initrd"
-msgstr "Initrd"
-
-#: ../../any.pm_.c:301
-msgid "Read-write"
-msgstr "Ł„Ł„Ł‚Ų±Ų§ŲŲ© Ł Ų§Ł„ŁŲŖŲ§ŲØŲ©"
-
-#: ../../any.pm_.c:308
-msgid "Table"
-msgstr "Ų§Ł„Ų¬ŲÆŁŁ„"
-
-#: ../../any.pm_.c:309
-msgid "Unsafe"
-msgstr "Unsafe"
-
-#: ../../any.pm_.c:316 ../../any.pm_.c:321 ../../any.pm_.c:324
-msgid "Label"
-msgstr "Ų¹Ł†ŁŲ§Ł†"
-
-#: ../../any.pm_.c:318 ../../any.pm_.c:329
-msgid "Default"
-msgstr "Ų§Ł„ŲŁŲŖŲ±Ų§Ų¶Ł"
-
-#: ../../any.pm_.c:326
-msgid "Initrd-size"
-msgstr "Ų­Ų¬Ł… Initrd"
-
-#: ../../any.pm_.c:328
-msgid "NoVideo"
-msgstr "Ł„Ų§ ŁŁŲÆŁŁ"
-
-#: ../../any.pm_.c:336
-msgid "Remove entry"
-msgstr "Ų§Ų²Ł„ Ų§Ł„Ł…ŲÆŲ®Ł„"
-
-#: ../../any.pm_.c:339
-msgid "Empty label not allowed"
-msgstr "ŲŗŁŲ± Ł…Ų³Ł…ŁŲ­ ŲØŲ§Ł„Ų¹Ł„Ų§Ł…Ų§ŲŖ Ų§Ł„ŁŲ§Ų±ŲŗŲ©"
-
-#: ../../any.pm_.c:340
-msgid "You must specify a kernel image"
-msgstr "ŁŲ¬ŲØ Ų£Ł† ŲŖŲ­ŲÆŲÆ ŲµŁŲ±Ų© Ų§Ł„Ł†ŁŲ§Ų©"
-
-#: ../../any.pm_.c:340
-msgid "You must specify a root partition"
-msgstr "ŁŲ¬ŲØ Ų¹Ł„ŁŁ ŲŖŲ­ŲÆŁŲÆ ŲŖŁ‚Ų³ŁŁ… Ų¬Ų°Ų±"
-
-#: ../../any.pm_.c:341
-msgid "This label is already used"
-msgstr "Ł‡Ų°Ł‡ Ų§Ł„Ų¹Ł„Ų§Ł…Ų© Ł…Ų³ŲŖŲ®ŲÆŁ…Ų© Ł…Ų³ŲØŁ‚Ų§"
-
-#: ../../any.pm_.c:656
-#, c-format
-msgid "Found %s %s interfaces"
-msgstr "ŲŖŁ… Ų§ŁŲ¬Ų§ŲÆ %s %s ŁŲ§Ų¬Ł‡Ų§ŲŖ"
-
-#: ../../any.pm_.c:657
-msgid "Do you have another one?"
-msgstr "Ł‡Ł„ Ų¹Ł†ŲÆŁ ŁŲ§Ų­ŲÆŲ© Ų£Ų®Ų±Ł‰Ų"
-
-#: ../../any.pm_.c:658
-#, c-format
-msgid "Do you have any %s interfaces?"
-msgstr "Ł‡Ł„ Ł„ŲÆŁŁ Ų£Ł ŁŲ§Ų¬Ł‡Ų§ŲŖ %sŲ"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:832 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "No"
-msgstr "Ł„Ų§"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:831 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "Yes"
-msgstr "Ł†Ų¹Ł…"
-
-#: ../../any.pm_.c:661
-msgid "See hardware info"
-msgstr "Ų¹Ų±Ų¶ Ł…Ų¹Ł„ŁŁ…Ų§ŲŖ Ų§Ł„Ų¹ŲŖŲ§ŲÆ"
-
-#. -PO: the first %s is the card type (scsi, network, sound,...)
-#. -PO: the second is the vendor+model name
-#: ../../any.pm_.c:695
-#, c-format
-msgid "Installing driver for %s card %s"
-msgstr "Ų¬Ų§Ų±Ł ŲŖŲ«ŲØŁŲŖ Ł…Ų´ŲŗŁ„ %s Ł„Ł„ŲØŲ·Ų§Ł‚Ų© %s"
-
-#: ../../any.pm_.c:696
-#, c-format
-msgid "(module %s)"
-msgstr ")Ų§Ł„ŁŲ­ŲÆŲ© %s("
-
-#. -PO: the %s is the driver type (scsi, network, sound,...)
-#: ../../any.pm_.c:707
-#, c-format
-msgid "Which %s driver should I try?"
-msgstr "Ų£Ł Ł…Ų´ŲŗŁ„ %s ŁŲ¬ŲØ Ų£Ł† Ų§Ų³ŲŖŲ®ŲÆŁ…Ł‡Ų"
-
-#: ../../any.pm_.c:715
-#, c-format
-msgid ""
-"In some cases, the %s driver needs to have extra information to work\n"
-"properly, although it normally works fine without. Would you like to "
-"specify\n"
-"extra options for it or allow the driver to probe your machine for the\n"
-"information it needs? Occasionally, probing will hang a computer, but it "
-"should\n"
-"not cause any damage."
-msgstr ""
-"ŁŁ ŲØŲ¹Ų¶ Ų§Ł„Ų£Ų­ŁŲ§Ł† ŁŲ­ŲŖŲ§Ų¬ Ł…Ų´ŲŗŁ„ %s Ł…Ų¹Ł„ŁŁ…Ų§ŲŖ Ų§Ų¶Ų§ŁŁŲ© Ł„ŁŁ ŁŲ¹Ł…Ł„\n"
-"ŲØŲ´ŁŁ„ ŲµŲ­ŁŲ­, Ų§Ł„Ų§ Ų£Ł†Ł‡ ŁŁ…ŁŁ†Ł‡ Ų§Ł„Ų¹Ł…Ł„ Ų¬ŁŲÆŲ§ ŲØŲÆŁŁ†Ł‡Ų§. Ł‡Ł„ ŲŖŲ±ŁŲÆ ŲŖŲ­ŲÆŁŲÆ\n"
-"Ų®ŁŲ§Ų±Ų§ŲŖ Ų§Ų¶Ų§ŁŁŲ© Ł„Ł‡ Ų£Ł ŲŖŲ³Ł…Ų­ Ł„Ł„Ł…Ų´ŲŗŁ„ ŲØŲ§Ł„ŲŖŲ­Ł‚Ł‚ ŁŁ Ų¬Ł‡Ų§Ų²Ł\n"
-"Ų¹Ł† Ų§Ł„Ł…Ų¹Ł„ŁŁ…Ų§ŲŖ Ų§Ł„ŲŖŁ Ų³ŁŲ­ŲŖŲ§Ų¬Ł‡Ų§Ų ŁŁ ŲØŲ¹Ų¶ Ų§Ł„Ų£Ų­ŁŲ§Ł†, Ł‚ŲÆ ŁŲŖŲ³ŲØŲØ Ų§Ł„ŲŖŲ­Ł‚Ł‚ ŁŁ ŲŖŲ¹Ł„ŁŁ‚ Ų§Ł„Ų¬Ł‡Ų§Ų², "
-"Ł„ŁŁ†\n"
-"Ł„Ų§ ŁŲ¬ŲØ Ų£Ł† ŁŲŖŲ³ŲØŲØ Ų°Ł„Ł ŁŁ Ų£Ł Ł…Ų´Ų§ŁŁ„."
-
-#: ../../any.pm_.c:720
-msgid "Autoprobe"
-msgstr "ŲŖŲ­Ł‚Ł‚ Ų¢Ł„Ł"
-
-#: ../../any.pm_.c:720
-msgid "Specify options"
-msgstr "Ų­ŲÆŲÆ Ų§Ł„Ų®ŁŲ§Ų±Ų§ŲŖ"
-
-#: ../../any.pm_.c:725
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Note that any address should be entered with the prefix 0x like '0x123'"
-msgstr ""
-
-#: ../../any.pm_.c:731
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Options are in format ``name=value name2=value2 ...''.\n"
-"For instance, ``io=0x300 irq=7''"
-msgstr ""
-"ŁŁ…ŁŁ†Ł Ų§Ł„Ų¢Ł† Ų§Ų¹Ų·Ų§Ų Ų§Ł„Ų®ŁŲ§Ų±Ų§ŲŖ Ł„Ł„ŁŲ­ŲÆŲ© %s.\n"
-"Ų§Ł„Ų®ŁŲ§Ų±Ų§ŲŖ ŁŁ Ł‡ŁŲ¦Ų© ``name=value name2=value2 ...'' \n"
-"Ł…Ų«Ł„Ų§, ``io=0x300 irq=7''"
-
-#: ../../any.pm_.c:734
-msgid "Module options:"
-msgstr "Ų®ŁŲ§Ų±Ų§ŲŖ Ų§Ł„ŁŲ­ŲÆŲ©:"
-
-#: ../../any.pm_.c:745
-#, c-format
-msgid ""
-"Loading module %s failed.\n"
-"Do you want to try again with other parameters?"
-msgstr ""
-"ŁŲ´Ł„ ŲŖŲ­Ł…ŁŁ„ Ų§Ł„ŁŲ­ŲÆŲ© %s.\n"
-"Ł‡Ł„ ŲŖŲ±ŁŲÆ Ų§Ł„Ł…Ų­Ų§ŁŁ„Ų© Ų«Ų§Ł†ŁŲ© ŲØŁ…Ų¹Ų§Ł…Ł„Ų§ŲŖ Ų£Ų®Ų±Ł‰Ų"
-
-#: ../../any.pm_.c:761
-msgid "access to X programs"
-msgstr "Ų§Ł„ŁŲµŁŁ„ Ų§Ł„Ł‰ ŲØŲ±Ų§Ł…Ų¬ X"
-
-#: ../../any.pm_.c:762
-msgid "access to rpm tools"
-msgstr "Ų§Ł„ŁŲµŁŁ„ Ų§Ł„Ł‰ Ų£ŲÆŁŲ§ŲŖ rpm"
-
-#: ../../any.pm_.c:763
-msgid "allow \"su\""
-msgstr "Ų§Ų³Ł…Ų­ ŲØŁ€\"su\""
-
-#: ../../any.pm_.c:764
-msgid "access to administrative files"
-msgstr "Ų§Ł„ŁŲµŁŁ„ Ų§Ł„Ł‰ Ł…Ł„ŁŲ§ŲŖ Ų§Ł„ŲŲÆŲ§Ų±Ų©"
-
-#: ../../any.pm_.c:769
-#, c-format
-msgid "(already added %s)"
-msgstr "(ŲŖŁ… Ų§Ų¶Ų§ŁŲ© %s Ł…Ų³ŲØŁ‚Ų§)"
-
-#: ../../any.pm_.c:774
-msgid "This password is too simple"
-msgstr "ŁŁ„Ł…Ų© Ų§Ł„Ł…Ų±ŁŲ± Ł‡Ų°Ł‡ ŲØŲ³ŁŲ·Ų© Ų¬ŲÆŲ§"
-
-#: ../../any.pm_.c:775
-msgid "Please give a user name"
-msgstr "Ų±Ų¬Ų§ŲŁ‹ Ł‚Ł… ŲØŲŲ¹Ų·Ų§Ų Ų§Ų³Ł… Ł…Ų³ŲŖŲ®ŲÆŁ…"
-
-#: ../../any.pm_.c:776
-msgid ""
-"The user name must contain only lower cased letters, numbers, `-' and `_'"
-msgstr "Ų§Ų³Ł… Ų§Ł„Ł…Ų³ŲŖŲ®ŲÆŁ… ŁŲ¬ŲØ Ų£Ł† ŁŲ­ŲŖŁŁ ŁŁ‚Ų· Ų¹Ł„Ł‰ Ų§Ł„Ų­Ų±ŁŁ Ų§Ł„ŲµŲŗŁŲ±Ų©, Ų§Ł„Ų£Ų±Ł‚Ų§Ł…, `-' Ł `_'"
-
-#: ../../any.pm_.c:777
-msgid "This user name is already added"
-msgstr "Ų§Ų³Ł… Ų§Ł„Ł…Ų³ŲŖŲ®ŲÆŁ… Ł…Ł¸Ų¶Ų§Ł Ł…Ų³ŲØŁ‚Ų§"
-
-#: ../../any.pm_.c:781
-msgid "Add user"
-msgstr "Ų§Ų¶Ł Ł…Ų³ŲŖŲ®ŲÆŁ…"
-
-#: ../../any.pm_.c:782
-#, c-format
-msgid ""
-"Enter a user\n"
-"%s"
-msgstr ""
-"Ų£ŲÆŲ®Ł„ Ł…Ų³ŲŖŲ®ŲÆŁ…\n"
-"%s"
-
-#: ../../any.pm_.c:783
-msgid "Accept user"
-msgstr "ŁŲ§ŁŁ‚ Ų¹Ł„Ł‰ Ų§Ł„Ł…Ų³ŲŖŲ®ŲÆŁ…"
-
-#: ../../any.pm_.c:794
-msgid "Real name"
-msgstr "Ų§Ł„Ų§Ų³Ł… Ų§Ł„Ų­Ł‚ŁŁ‚Ł"
-
-#: ../../any.pm_.c:795 ../../printerdrake.pm_.c:707
-#: ../../printerdrake.pm_.c:805
-msgid "User name"
-msgstr "Ų§Ų³Ł… Ų§Ł„Ł…Ų³ŲŖŲ®ŲÆŁ…"
-
-#: ../../any.pm_.c:798
-msgid "Shell"
-msgstr "Ų§Ł„ŲŗŁ„Ų§Ł"
-
-#: ../../any.pm_.c:800
-msgid "Icon"
-msgstr "Ų£ŁŁ‚ŁŁ†Ų©"
-
-#: ../../any.pm_.c:828
-msgid "Autologin"
-msgstr "ŲÆŲ®ŁŁ„ Ų¢Ł„Ł"
-
-#: ../../any.pm_.c:829
-msgid ""
-"I can set up your computer to automatically log on one user.\n"
-"Do you want to use this feature?"
-msgstr ""
-"ŁŁ…ŁŁ†Ł†Ł Ų§Ų¹ŲÆŲ§ŲÆ Ų¬Ł‡Ų§Ų²Ł Ł„ŲŖŲ³Ų¬ŁŁ„ Ų§Ł„ŲÆŲ®ŁŁ„ Ų¢Ł„ŁŁ„ Ł„Ł…Ų³ŲŖŲ®ŲÆŁ… Ł…Ų§.\n"
-"Ł‡Ł„ ŲŖŲ±ŁŲÆ Ų§Ų³ŲŖŲ®ŲÆŲ§Ł… Ł‡Ų°Ł‡ Ų§Ł„Ł…ŁŲ²Ų©Ų"
-
-#: ../../any.pm_.c:833
-msgid "Choose the default user:"
-msgstr "Ų§Ų®ŲŖŲ± Ų§Ł„Ł…Ų³ŲŖŲ®ŲÆŁ… Ų§Ł„Ų§ŁŲŖŲ±Ų§Ų¶Ł:"
-
-#: ../../any.pm_.c:834
-msgid "Choose the window manager to run:"
-msgstr "Ų§Ų®ŲŖŲ± Ł…ŲÆŁŲ± Ų§Ł„Ł†ŁŲ§ŁŲ° Ų§Ł„Ų°Ł Ų³ŁŲŖŁ… ŲŖŲ´ŲŗŁŁ„Ł‡:"
-
-#: ../../any.pm_.c:849
-msgid "Please choose a language to use."
-msgstr "Ų±Ų¬Ų§Ų Ų§Ų®ŲŖŲ± Ł„ŲŗŲ© Ų§Ł„Ų§Ų³ŲŖŲ®ŲÆŲ§Ł…."
-
-#: ../../any.pm_.c:851
-msgid "You can choose other languages that will be available after install"
-msgstr "ŁŁ…ŁŁ†ŁŁ† Ų§Ų®ŲŖŁŲ§Ų± Ł„ŲŗŲ§ŲŖ Ų£Ų®Ų±Ł‰ Ł Ų§Ł„ŲŖŁ Ų³ŲŖŁŁŁ† Ł…ŲŖŁŁŲ±Ų© ŲØŲ¹ŲÆ Ų§Ł„ŲŖŲ«ŲØŁŲŖ"
-
-#: ../../any.pm_.c:863 ../../install_steps_interactive.pm_.c:719
-#: ../../standalone/drakxtv_.c:54
-msgid "All"
-msgstr "Ų§Ł„ŁŁ„"
-
-#: ../../any.pm_.c:955
-msgid "Allow all users"
-msgstr "Ų§Ų³Ł…Ų­ Ł„ŁŁ„ Ų§Ł„Ł…Ų³ŲŖŲ®ŲÆŁ…ŁŁ†"
-
-#: ../../any.pm_.c:955 ../../install_steps_interactive.pm_.c:521
-msgid "Custom"
-msgstr "Ł…Ų®ŲµŲµ"
-
-#: ../../any.pm_.c:955
-msgid "No sharing"
-msgstr "Ł„Ų§ Ł…Ų´Ų§Ų±ŁŲ©"
-
-#: ../../any.pm_.c:965 ../../network/smbnfs.pm_.c:45
-#, c-format
-msgid "The package %s needs to be installed. Do you want to install it?"
-msgstr "Ų§Ł„Ų­Ų²Ł…Ų© %s ŁŲ¬ŲØ Ų£Ł† ŲŖŁ¸Ų«ŲØŁ‘ŲŖ. Ł‡Ł„ ŲŖŲ±ŁŲÆ ŲŖŲ«ŲØŁŲŖŁ‡Ų§Ų"
-
-#: ../../any.pm_.c:968
-msgid "You can export using NFS or Samba. Which one do you want"
-msgstr "ŁŁ…ŁŁ†Ł Ų§Ł„ŲŖŲµŲÆŁŲ± ŲØŲ§Ų³ŲŖŲ®ŲÆŲ§Ł… NFS Ų£Ł Samba. Ų£Ł Ł…Ł†Ł‡Ł…Ų§ ŲŖŲ±ŁŲÆ"
-
-#: ../../any.pm_.c:976 ../../network/smbnfs.pm_.c:49
-#, c-format
-msgid "Mandatory package %s is missing"
-msgstr "Ų§Ł„Ų­Ų²Ł…Ų© Ų§Ł„Ų¶Ų±ŁŲ±ŁŲ© %s Ł…ŁŁ‚ŁŲÆŲ©"
-
-#: ../../any.pm_.c:982
-msgid ""
-"Do you want to allow users to export some directories in their home?\n"
-"Allowing this will permit users to simply click on \"Share\" in konqueror "
-"and nautilus.\n"
-"\n"
-"\"Custom\" permit a per-user granularity.\n"
-msgstr ""
-
-#: ../../any.pm_.c:996 ../../bootlook.pm_.c:161
-#: ../../diskdrake/smbnfs_gtk.pm_.c:85 ../../install_steps_gtk.pm_.c:464
-#: ../../install_steps_gtk.pm_.c:522 ../../install_steps_interactive.pm_.c:594
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_stdio.pm_.c:141
-#: ../../my_gtk.pm_.c:687 ../../my_gtk.pm_.c:690 ../../my_gtk.pm_.c:1019
-#: ../../network/netconnect.pm_.c:47 ../../printerdrake.pm_.c:1586
-#: ../../standalone/drakautoinst_.c:204 ../../standalone/drakbackup_.c:2264
-#: ../../standalone/drakbackup_.c:2289 ../../standalone/drakbackup_.c:2310
-#: ../../standalone/drakbackup_.c:2331 ../../standalone/drakbackup_.c:2349
-#: ../../standalone/drakbackup_.c:2397 ../../standalone/drakbackup_.c:2417
-#: ../../standalone/drakbackup_.c:2436 ../../standalone/drakfont_.c:767
-#: ../../standalone/drakgw_.c:721 ../../standalone/draknet_.c:116
-#: ../../standalone/draknet_.c:148 ../../standalone/draknet_.c:290
-#: ../../standalone/draknet_.c:538 ../../standalone/draknet_.c:680
-#: ../../standalone/logdrake_.c:225 ../../standalone/logdrake_.c:512
-#: ../../standalone/tinyfirewall_.c:65
-msgid "Cancel"
-msgstr "ŲŁ„ŲŗŲ§Ų"
-
-#: ../../any.pm_.c:996
-msgid "Launch userdrake"
-msgstr "Ų´ŲŗŁ‘Ł„ userdrake"
-
-#: ../../any.pm_.c:998
-msgid ""
-"The per-user sharing uses the group \"fileshare\". \n"
-"You can use userdrake to add a user in this group."
-msgstr ""
-"Ų§Ł„Ł…Ų´Ų§Ų±ŁŲ© Ł„ŁŁ„ Ł…Ų³ŲŖŲ®ŲÆŁ… ŲŖŲ³ŲŖŲ®ŲÆŁ… Ų§Ł„Ł…Ų¬Ł…ŁŲ¹Ų© \"fileshare\".\n"
-"ŁŁ…ŁŁ†Ł Ų£Ł† ŲŖŲ³ŲŖŲ®ŲÆŁ… userdrake Ł„ŲŲ¶Ų§ŁŲ© Ł…Ų³ŲŖŲ®ŲÆŁ… ŁŁ Ł‡Ų°Ł‡ Ų§Ł„Ł…Ų¬Ł…ŁŲ¹Ų©."
-
-#: ../../any.pm_.c:1035
-msgid "Welcome To Crackers"
-msgstr "Ł…Ų±Ų­ŲØŲ§ ŲØŲ§Ł„Ł…Ų®ŲŖŲ±Ł‚ŁŁ†"
-
-#: ../../any.pm_.c:1036
-msgid "Poor"
-msgstr "ŁŁ‚ŁŲ±"
-
-#: ../../any.pm_.c:1037 ../../mouse.pm_.c:31
-msgid "Standard"
-msgstr "Ų§Ł„Ł‚ŁŲ§Ų³Ł"
-
-#: ../../any.pm_.c:1038
-msgid "High"
-msgstr "Ł…Ų±ŲŖŁŲ¹"
-
-#: ../../any.pm_.c:1039
-msgid "Higher"
-msgstr "Ł…Ų±ŲŖŁŲ¹ Ų£ŁŲ«Ų±"
-
-#: ../../any.pm_.c:1040
-msgid "Paranoid"
-msgstr "Ł…Ų±ŲŖŁŲ¹ Ų¬ŲÆŲ§"
-
-#: ../../any.pm_.c:1043
-msgid ""
-"This level is to be used with care. It makes your system more easy to use,\n"
-"but very sensitive: it must not be used for a machine connected to others\n"
-"or to the Internet. There is no password access."
-msgstr ""
-
-#: ../../any.pm_.c:1046
-msgid ""
-"Password are now enabled, but use as a networked computer is still not "
-"recommended."
-msgstr ""
-
-#: ../../any.pm_.c:1047
-msgid ""
-"This is the standard security recommended for a computer that will be used "
-"to connect to the Internet as a client."
-msgstr ""
-
-#: ../../any.pm_.c:1048
-msgid ""
-"There are already some restrictions, and more automatic checks are run every "
-"night."
-msgstr ""
-
-#: ../../any.pm_.c:1049
-msgid ""
-"With this security level, the use of this system as a server becomes "
-"possible.\n"
-"The security is now high enough to use the system as a server which accept\n"
-"connections from many clients. Note: if your machine is only a client on the "
-"Internet, you should better choose a lower level."
-msgstr ""
-
-#: ../../any.pm_.c:1052
-msgid ""
-"Based on the previous level, but the system is entirely closed.\n"
-"Security features are at their maximum."
-msgstr ""
-
-#: ../../any.pm_.c:1058
-msgid "Choose security level"
-msgstr "Ų§Ų®ŲŖŲ± Ł…Ų³ŲŖŁŁ‰ Ų§Ł„Ų£Ł…Ł†"
-
-#: ../../any.pm_.c:1061
-msgid "Security level"
-msgstr "Ł…Ų³ŲŖŁŁ‰ Ų§Ł„Ų£Ł…Ł†"
-
-#: ../../any.pm_.c:1063
-msgid "Use libsafe for servers"
-msgstr "ŲŲ³ŲŖŲ®ŲÆŁ… libsafe Ł„Ł„Ł…Ł„Ł‚Ł…Ų§ŲŖ"
-
-#: ../../any.pm_.c:1064
-msgid ""
-"A library which defends against buffer overflow and format string attacks."
-msgstr ""
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#: ../../bootloader.pm_.c:355
-#, c-format
-msgid ""
-"Welcome to %s the operating system chooser!\n"
-"\n"
-"Choose an operating system in the list above or\n"
-"wait %d seconds for default boot.\n"
-"\n"
-msgstr ""
-"Welcome to %s the operating system chooser!\n"
-"\n"
-"Choose an operating system in the list above or\n"
-"wait %d seconds for default boot.\n"
-"\n"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:928
-msgid "Welcome to GRUB the operating system chooser!"
-msgstr "Welcome to GRUB the operating system chooser!"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:931
-#, c-format
-msgid "Use the %c and %c keys for selecting which entry is highlighted."
-msgstr "Use the %c and %c keys for selecting which entry is highlighted."
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:934
-msgid "Press enter to boot the selected OS, 'e' to edit the"
-msgstr "Press enter to boot the selected OS, 'e' to edit the"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:937
-msgid "commands before booting, or 'c' for a command-line."
-msgstr "commands before booting, or 'c' for a command-line."
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:940
-#, c-format
-msgid "The highlighted entry will be booted automatically in %d seconds."
-msgstr "The highlighted entry will be booted automatically in %d seconds."
-
-#: ../../bootloader.pm_.c:944
-msgid "not enough room in /boot"
-msgstr "Ł„Ų§ ŲŖŁŲ¬ŲÆ Ł…Ų³Ų§Ų­Ł ŁŲ§ŁŁŲ© ŁŁ /boot"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#. -PO: so you may need to put them in English or in a different language if MS-windows doesn't exist in your language
-#: ../../bootloader.pm_.c:1044
-msgid "Desktop"
-msgstr "Ų³Ų·Ų­ Ų§Ł„Ł…ŁŲŖŲØ"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#: ../../bootloader.pm_.c:1046
-msgid "Start Menu"
-msgstr "Start Menu"
-
-#: ../../bootloader.pm_.c:1065
-#, c-format
-msgid "You can't install the bootloader on a %s partition\n"
-msgstr "ŁŁ…ŁŁ†Ł ŲŖŲ«ŲØŁŲŖ Ł…Ų­Ł…Ł‘Ł„ Ų§Ł„ŲŁ‚Ł„Ų§Ų¹ Ų¹Ł„Ł‰ Ų§Ł„ŲŖŲ¬Ų²Ų¦Ų© %s\n"
-
-#: ../../bootlook.pm_.c:46
-msgid "no help implemented yet.\n"
-msgstr "Ł„Ų§ ŲŖŁŲ¬ŲÆ Ł…Ų³Ų§Ų¹ŲÆŲ© Ł„Ł‡Ų°Ų§ Ų­ŲŖŁ‰ Ų§Ł„Ų¢Ł†.\n"
-
-#: ../../bootlook.pm_.c:62
-msgid "Boot Style Configuration"
-msgstr "Ų§Ų¹ŲÆŲ§ŲÆ Ų£Ų³Ł„ŁŲØ Ų§Ł„ŲŁ‚Ł„Ų§Ų¹"
-
-#: ../../bootlook.pm_.c:79 ../../standalone/logdrake_.c:101
-msgid "/_File"
-msgstr "/_Ł…Ł„Ł"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "/File/_Quit"
-msgstr "/Ł…Ł„Ł/_Ų®Ų±ŁŲ¬"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "<control>Q"
-msgstr "<control>Ų®"
-
-#: ../../bootlook.pm_.c:91
-msgid "NewStyle Categorizing Monitor"
-msgstr "Ų´Ų§Ų´Ų© NewStyle Ų§Ł„ŲŖŲµŁ†ŁŁŁŲ©"
-
-#: ../../bootlook.pm_.c:92
-msgid "NewStyle Monitor"
-msgstr "Ų´Ų§Ų´Ų© NewStyle"
-
-#: ../../bootlook.pm_.c:93
-msgid "Traditional Monitor"
-msgstr "Ų´Ų§Ų´Ų© ŲŖŁ‚Ł„ŁŲÆŁŲ©"
-
-#: ../../bootlook.pm_.c:94
-msgid "Traditional Gtk+ Monitor"
-msgstr "Ų´Ų§Ų´Ų© Gtk+ Ų§Ł„ŲŖŁ‚Ł„ŁŲÆŁŲ©"
-
-#: ../../bootlook.pm_.c:95
-msgid "Launch Aurora at boot time"
-msgstr "Ų´ŲŗŁ‘Ł„ Aurora Ų¹Ł†ŲÆ Ų§Ł„ŲŁ‚Ł„Ų§Ų¹"
-
-#: ../../bootlook.pm_.c:98
-msgid "Lilo/grub mode"
-msgstr "ŁŲ¶Ų¹ Lilo/grub"
-
-#: ../../bootlook.pm_.c:98
-msgid "Yaboot mode"
-msgstr "ŁŲ¶Ų¹ Yaboot"
-
-#: ../../bootlook.pm_.c:104
-#, c-format
-msgid ""
-"You are currently using %s as Boot Manager.\n"
-"Click on Configure to launch the setup wizard."
-msgstr ""
-"Ų£Ł†ŲŖ ŲŖŲ³ŲŖŲ®ŲÆŁ… %s ŁŁ…ŲÆŁŲ± Ų§Ł‚Ł„Ų§Ų¹ Ų­Ų§Ł„ŁŲ§.\n"
-"Ų§Ų¶ŲŗŲ· Ų¹Ł„Ł‰ ŲŖŁ‡ŁŲ¦Ų© Ł„ŲŖŲ´ŲŗŁŁ„ Ł…Ų¹Ų§Ł„Ų¬ Ų§Ł„ŲŲ¹ŲÆŲ§ŲÆ"
-
-#: ../../bootlook.pm_.c:106 ../../standalone/drakbackup_.c:1467
-#: ../../standalone/drakbackup_.c:1478 ../../standalone/drakgw_.c:715
-#: ../../standalone/tinyfirewall_.c:59
-msgid "Configure"
-msgstr "ŲŲ¹ŲÆŲ§ŲÆ"
-
-#: ../../bootlook.pm_.c:141
-msgid "System mode"
-msgstr "ŁŲ¶Ų¹ Ų§Ł„Ł†ŲøŲ§Ł…"
-
-#: ../../bootlook.pm_.c:143
-msgid "Launch the X-Window system at start"
-msgstr "Ų´ŲŗŁ‘Ł„ X-Window Ų¹Ł†ŲÆ ŲØŲÆŲ Ų§Ł„ŲŖŲ´ŲŗŁŁ„"
-
-#: ../../bootlook.pm_.c:148
-msgid "No, I don't want autologin"
-msgstr "Ł„Ų§, Ł„Ų§ Ų£Ų±ŁŲÆ ŲÆŲ®ŁŁ„Ų§ Ų£Ł„ŁŲ§"
-
-#: ../../bootlook.pm_.c:150
-msgid "Yes, I want autologin with this (user, desktop)"
-msgstr "Ł†Ų¹Ł…, Ų£Ų±ŁŲÆ ŲÆŲ®ŁŁ„Ų§ Ų¢Ł„ŁŲ§ Ł…Ų¹ Ł‡Ų°Ų§ )Ų§Ł„Ł…Ų³ŲŖŲ®ŲÆŁ…, Ų³Ų·Ų­ Ų§Ł„Ł…ŁŲŖŲØ("
-
-#: ../../bootlook.pm_.c:160 ../../network/netconnect.pm_.c:102
-#: ../../standalone/drakbackup_.c:2441 ../../standalone/drakbackup_.c:3345
-#: ../../standalone/drakfont_.c:532 ../../standalone/drakfont_.c:655
-#: ../../standalone/drakfont_.c:719 ../../standalone/drakfont_.c:765
-#: ../../standalone/draknet_.c:109 ../../standalone/draknet_.c:141
-#: ../../standalone/draknet_.c:297 ../../standalone/draknet_.c:436
-#: ../../standalone/draknet_.c:522 ../../standalone/draknet_.c:565
-#: ../../standalone/draknet_.c:666 ../../standalone/logdrake_.c:505
-msgid "OK"
-msgstr "Ł…ŁŲ§ŁŁ‚"
-
-#: ../../bootlook.pm_.c:229
-#, c-format
-msgid "can not open /etc/inittab for reading: %s"
-msgstr "Ł„Ł… ŁŁ…ŁŁ† ŁŲŖŲ­ /etc/inittab Ł„Ł„Ł‚Ų±Ų§ŲŲ©: %s"
-
-#: ../../common.pm_.c:94
-msgid "GB"
-msgstr "ŲŗŁŲŗŲ§ŲØŲ§ŁŲŖ"
-
-#: ../../common.pm_.c:94
-msgid "KB"
-msgstr "ŁŁŁ„ŁŲØŲ§ŁŲ§"
-
-#: ../../common.pm_.c:94
-msgid "MB"
-msgstr "Ł….ŲØ"
-
-#: ../../common.pm_.c:102
-msgid "TB"
-msgstr "ŲŖŁŲ±Ų§ŲØŲ§ŁŲŖ"
-
-#: ../../common.pm_.c:110
-#, c-format
-msgid "%d minutes"
-msgstr "%d ŲÆŁ‚Ų§Ų¦Ł‚"
-
-#: ../../common.pm_.c:112
-msgid "1 minute"
-msgstr "ŲÆŁ‚ŁŁ‚Ų© ŁŲ§Ų­ŲÆŲ©"
-
-#: ../../common.pm_.c:114
-#, c-format
-msgid "%d seconds"
-msgstr "%d Ų«ŁŲ§Ł†"
-
-#: ../../common.pm_.c:159
-msgid "Can't make screenshots before partitioning"
-msgstr "Ł„Ų§ ŁŁ…ŁŁ†Ł†Ł ŲŗŁ…Ł„ Ł„Ł‚Ų·Ų§ŲŖ Ł„Ł„Ų´Ų§Ų´Ų© Ł‚ŲØŁ„ Ų§Ł„ŲŖŲ¬Ų²Ų¦Ų©"
-
-#: ../../common.pm_.c:166
-#, c-format
-msgid "Screenshots will be available after install in %s"
-msgstr "Ų³ŲŖŁŁŁ† Ł„Ł‚Ų·Ų§ŲŖ Ų§Ł„Ų´Ų§Ų´Ų© Ł…ŁŲ¬ŁŲÆŲ© ŲØŲ¹ŲÆ Ų§Ł„ŲŖŲ«ŲØŁŲŖ ŁŁ %s"
-
-#: ../../crypto.pm_.c:12 ../../crypto.pm_.c:26 ../../standalone/drakxtv_.c:50
-msgid "France"
-msgstr "ŁŲ±Ł†Ų³Ų§"
-
-#: ../../crypto.pm_.c:13
-msgid "Costa Rica"
-msgstr "ŁŁŲ³ŲŖŲ§Ų±ŁŁŲ§"
-
-#: ../../crypto.pm_.c:14 ../../crypto.pm_.c:27
-msgid "Belgium"
-msgstr "ŲØŁ„Ų¬ŁŁŲ§"
-
-#: ../../crypto.pm_.c:15 ../../crypto.pm_.c:28
-msgid "Czech Republic"
-msgstr "Ų¬Ł…Ł‡ŁŲ±ŁŲ© Ų§Ł„ŲŖŲ´ŁŁ"
-
-#: ../../crypto.pm_.c:16 ../../crypto.pm_.c:29
-msgid "Germany"
-msgstr "Ų£Ł„Ł…Ų§Ł†ŁŲ§"
-
-#: ../../crypto.pm_.c:17 ../../crypto.pm_.c:30
-msgid "Greece"
-msgstr "Ų§Ł„ŁŁŁ†Ų§Ł†"
-
-#: ../../crypto.pm_.c:18 ../../crypto.pm_.c:31
-msgid "Norway"
-msgstr "Ų§Ł„Ł†Ų±ŁŁŲ¬"
-
-#: ../../crypto.pm_.c:19 ../../crypto.pm_.c:32
-msgid "Sweden"
-msgstr "Ų§Ł„Ų³ŁŁŲÆ"
-
-#: ../../crypto.pm_.c:20 ../../crypto.pm_.c:34
-msgid "Netherlands"
-msgstr "Ł‡ŁŁ„Ł†ŲÆŲ§"
-
-#: ../../crypto.pm_.c:21 ../../crypto.pm_.c:35 ../../standalone/drakxtv_.c:50
-msgid "Italy"
-msgstr "ŲŁŲ·Ų§Ł„ŁŲ§"
-
-#: ../../crypto.pm_.c:22 ../../crypto.pm_.c:36
-msgid "Austria"
-msgstr "Ų§Ł„Ł†Ł…Ų³Ų§"
-
-#: ../../crypto.pm_.c:33 ../../crypto.pm_.c:67
-msgid "United States"
-msgstr "Ų§Ł„ŁŁ„Ų§ŁŲ§ŲŖ Ų§Ł„Ł…ŲŖŲ­ŲÆŲ©"
-
-#: ../../diskdrake/hd_gtk.pm_.c:94
-msgid "Please make a backup of your data first"
-msgstr "Ų±Ų¬Ų§Ų Ł‚Ł… ŲØŲ¹Ł…Ł„ Ł†Ų³Ų®Ų© Ų§Ų­ŲŖŁŲ§Ų·ŁŲ© Ł…Ł† ŲØŁŲ§Ł†Ų§ŲŖŁ Ų£ŁŁ„Ų§"
-
-#: ../../diskdrake/hd_gtk.pm_.c:94 ../../diskdrake/interactive.pm_.c:891
-#: ../../diskdrake/interactive.pm_.c:900 ../../diskdrake/interactive.pm_.c:954
-msgid "Read carefully!"
-msgstr "Ų§Ł‚Ų±Ų£ Ų¬ŁŲÆŲ§!"
-
-#: ../../diskdrake/hd_gtk.pm_.c:97
-msgid ""
-"If you plan to use aboot, be carefull to leave a free space (2048 sectors is "
-"enough)\n"
-"at the beginning of the disk"
-msgstr ""
-"Ų§Ų°Ų§ ŁŁ†ŲŖ ŲŖŲ±ŁŲÆ Ų§Ų³ŲŖŲ®ŲÆŲ§Ł… aboot, ŁŁ„Ų§ ŲŖŁ†Ų³Ł‰ Ų£Ł† ŲŖŲŖŲ±Ł Ł…Ų³Ų§Ų­Ų© ŁŲ§Ų±ŲŗŲ© ŁŁ\n"
-"ŲØŲÆŲ§ŁŲ© Ų§Ł„Ł‚Ų±Ųµ (2048 Ł‚Ų·Ų§Ų¹Ų§ŲŖ ŁŲ§ŁŁŲ©)"
-
-#: ../../diskdrake/hd_gtk.pm_.c:116 ../../diskdrake/interactive.pm_.c:325
-#: ../../diskdrake/interactive.pm_.c:340 ../../diskdrake/smbnfs_gtk.pm_.c:45
-#: ../../install_steps.pm_.c:75 ../../install_steps_interactive.pm_.c:67
-#: ../../install_steps_interactive.pm_.c:356 ../../interactive_http.pm_.c:119
-#: ../../interactive_http.pm_.c:120 ../../standalone/diskdrake_.c:84
-msgid "Error"
-msgstr "Ų®Ų·Ų£"
-
-#: ../../diskdrake/hd_gtk.pm_.c:151
-msgid "Wizard"
-msgstr "Ų§Ł„Ł…Ų¹Ų§Ł„Ų¬"
-
-#: ../../diskdrake/hd_gtk.pm_.c:181 ../../diskdrake/removable_gtk.pm_.c:24
-msgid "Choose action"
-msgstr "Ų§Ų®ŲŖŲ± Ų­ŲÆŲ«Ų§"
-
-#: ../../diskdrake/hd_gtk.pm_.c:185
-msgid ""
-"You have one big FAT partition\n"
-"(generally used by MicroSoft Dos/Windows).\n"
-"I suggest you first resize that partition\n"
-"(click on it, then click on \"Resize\")"
-msgstr ""
-"Ł„ŲÆŁŁ ŲŖŲ¬Ų²Ų¦Ų© FAT ŁŲ§Ų­ŲÆŲ© ŁŲØŁŲ±Ų©\n"
-")ŁŲ³ŲŖŲ®ŲÆŁ… Ų¹Ų§Ł…Ų© Ų¹Ł† Ų·Ų±ŁŁ‚ Microsoft DOS/Windows(.\n"
-"Ų§Ł‚ŲŖŲ±Ų­ Ų£Ł† ŲŖŲŗŁŲ± Ų­Ų¬Ł… Ł‡Ų°Ł‡ Ų§Ł„ŲŖŲ¬Ų²Ų¦Ų©\n"
-")Ų§Ų¶ŲŗŲ· Ų¹Ł„ŁŁ‡Ų§ Ų«Ł… Ų§Ų®ŲŖŲ± \"ŲŖŲŗŁŁŲ± Ų§Ł„Ų­Ų¬Ł…\"("
-
-#: ../../diskdrake/hd_gtk.pm_.c:188
-msgid "Please click on a partition"
-msgstr "ŁŲ¶Ł„Ų§ Ų§Ų¶ŲŗŲ· Ų¹Ł„Ł‰ ŲŖŲ¬Ų²Ų¦Ų©"
-
-#: ../../diskdrake/hd_gtk.pm_.c:202 ../../diskdrake/smbnfs_gtk.pm_.c:67
-#: ../../install_steps_gtk.pm_.c:523
-msgid "Details"
-msgstr "ŲŖŁŲ§ŲµŁŁ„"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Ext2"
-msgstr "Ext2"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "FAT"
-msgstr "FAT"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "HFS"
-msgstr "HFS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Journalised FS"
-msgstr "Journalised FS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "SunOS"
-msgstr "SunOS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Swap"
-msgstr "Ų§Ł„ŲŖŲØŲÆŁŁ„"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../diskdrake/interactive.pm_.c:1050
-msgid "Empty"
-msgstr "ŁŲ§Ų±Ųŗ"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../install_steps_gtk.pm_.c:379
-#: ../../install_steps_gtk.pm_.c:439 ../../mouse.pm_.c:162
-#: ../../services.pm_.c:157 ../../standalone/drakbackup_.c:944
-msgid "Other"
-msgstr "Ų£Ų®Ų±Ł‰"
-
-#: ../../diskdrake/hd_gtk.pm_.c:325
-msgid "Filesystem types:"
-msgstr "Ų£Ł†ŁŲ§Ų¹ Ų£Ł†ŲøŁ…Ų© Ų§Ł„Ł…Ł„ŁŲ§ŲŖ:"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:386
-msgid "Create"
-msgstr "Ų¹Ł…Ł„ ŲŖŲ¬Ų²Ų¦Ų©"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:365
-#: ../../diskdrake/interactive.pm_.c:499 ../../diskdrake/removable.pm_.c:26
-#: ../../diskdrake/removable.pm_.c:49 ../../diskdrake/removable_gtk.pm_.c:17
-msgid "Type"
-msgstr "Ų§Ł„Ł†ŁŲ¹"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/hd_gtk.pm_.c:344
-#, c-format
-msgid "Use ``%s'' instead"
-msgstr "Ų§Ų³ŲŖŲ®ŲÆŁ… ``%s'' ŲØŲÆŁ„Ų§ Ł…Ł† Ų°Ł„Ł"
-
-#: ../../diskdrake/hd_gtk.pm_.c:344 ../../diskdrake/interactive.pm_.c:374
-msgid "Delete"
-msgstr "ŲŁ„ŲŗŲ§Ų"
-
-#: ../../diskdrake/hd_gtk.pm_.c:348
-msgid "Use ``Unmount'' first"
-msgstr "Ų§Ų³ŲŖŲ®ŲÆŁ… ``Ų§Ų²Ų§Ł„Ų© Ų§Ł„ŲŖŲ¬Ł‡ŁŲ²'' Ų£ŁŁ„Ų§"
-
-#: ../../diskdrake/hd_gtk.pm_.c:349 ../../diskdrake/interactive.pm_.c:491
-#, c-format
-msgid ""
-"After changing type of partition %s, all data on this partition will be lost"
-msgstr "ŲØŲ¹ŲÆ ŲŖŲŗŁŁŲ± Ł†ŁŲ¹ Ų§Ł„ŲŖŲ¬Ų²Ų¦Ų© %s, ŁŲŁ†Ł Ų³ŲŖŲ³Ų®Ų± ŁŁ„ Ų§Ł„ŲØŁŲ§Ł†Ų§ŲŖ Ų¹Ł„Ł‰ Ų§Ł„ŲŖŲ¬Ų²Ų¦Ų©"
-
-#: ../../diskdrake/interactive.pm_.c:171
-msgid "Choose a partition"
-msgstr "ŲŲ®ŲŖŲ± ŲŖŲ¬Ų²Ų¦Ų©"
-
-#: ../../diskdrake/interactive.pm_.c:171
-msgid "Choose another partition"
-msgstr "ŲŲ®ŲŖŲ± Ų´Ų§Ų´Ų©"
-
-#: ../../diskdrake/interactive.pm_.c:196
-msgid "Exit"
-msgstr "Ų®Ų±ŁŲ¬"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to expert mode"
-msgstr "Ų§Ł„Ł†ŲŖŁ‚Ų§Ł„ Ų§Ł„Ł‰ ŁŲ¶Ų¹ŁŲ© Ų§Ł„Ų®ŲØŁŲ±"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to normal mode"
-msgstr "Ų§Ł„Ų§Ł†ŲŖŁ‚Ų§Ł„ Ų§Ł„Ł‰ Ų§Ł„ŁŲ¶Ų¹ Ų§Ł„Ų¹Ų§ŲÆŁ"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Undo"
-msgstr "ŲŖŲ±Ų§Ų¬Ų¹"
-
-#: ../../diskdrake/interactive.pm_.c:237
-msgid "Continue anyway?"
-msgstr "Ł‡Ł„ ŲŖŲ±ŁŲÆ Ų§Ł„Ų§ŁŁ…Ų§Ł„ Ų¹Ł„Ł‰ Ų£Ł Ų­Ų§Ł„Ų"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without saving"
-msgstr "Ų§Ł„Ų®Ų±ŁŲ¬ ŲØŲÆŁŁ† Ų§Ł„Ų­ŁŲø"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without writing the partition table?"
-msgstr "Ł‡Ł„ ŲŖŲ±ŁŲÆ Ų§Ł„Ų®Ų±ŁŲ¬ ŲØŲÆŁŁ† ŁŲŖŲ§ŲØŲ© Ų¬ŲÆŁŁ„ Ų§Ł„ŲŖŁ‚Ų³ŁŁ…Ų"
-
-#: ../../diskdrake/interactive.pm_.c:247
-msgid "Do you want to save /etc/fstab modifications"
-msgstr "Ł‡Ł„ ŲŖŲ±ŁŲÆ Ų­ŁŲø ŲŖŲ¹ŲÆŁŁ„Ų§ŲŖ /etc/fstab"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Auto allocate"
-msgstr "ŲŖŲ­ŲÆŁŲÆ Ų¢Ł„Ł"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Clear all"
-msgstr "Ų£Ł…Ų³Ų­ Ų§Ł„ŁŁ„"
-
-#: ../../diskdrake/interactive.pm_.c:262
-msgid "Hard drive information"
-msgstr "Ł…Ų¹Ł„ŁŁ…Ų§ŲŖ Ų§Ł„Ł‚Ų±Ųµ Ų§Ł„ŲµŁ„ŲØ"
-
-#: ../../diskdrake/interactive.pm_.c:283
-msgid "All primary partitions are used"
-msgstr "ŁŁ„ Ų§Ł„ŲŖŲ¬Ų²Ų¦Ų§ŲŖ Ų§Ł„Ų±Ų¦ŁŲ³ŁŲ© Ł…Ų³ŲŖŲ®ŲÆŁ…Ų©"
-
-#: ../../diskdrake/interactive.pm_.c:284
-msgid "I can't add any more partition"
-msgstr "Ł„Ų§ ŁŁ…ŁŁ†Ł†Ł Ų§Ų¶Ų§ŁŲ© Ų£Ł ŲŖŲ¬Ų²Ų¦Ų© Ų£Ų®Ų±Ł‰"
-
-#: ../../diskdrake/interactive.pm_.c:285
-msgid ""
-"To have more partitions, please delete one to be able to create an extended "
-"partition"
-msgstr "Ł„ŁŁ ŲŖŁ…ŲŖŁ„Ł ŲŖŲ¬Ų²Ų¦Ų§ŲŖ Ų£ŁŲ«Ų±, ŁŲ±Ų¬Ł‰ Ų§Ł„ŲŗŲ§Ų ŲŖŲ¬Ų²Ų¦Ų© ŁŁ ŲŖŲŖŁ…ŁŁ† Ł…Ł† Ų¹Ł…Ł„ ŲŖŲ¬Ų²Ų¦Ų© Ł…Ł…ŲŖŲÆŲ©"
-
-#: ../../diskdrake/interactive.pm_.c:295
-msgid "Save partition table"
-msgstr "Ų­ŁŲø Ų¬ŲÆŁŁ„ Ų§Ł„ŲŖŁ‚Ų³ŁŁ…"
-
-#: ../../diskdrake/interactive.pm_.c:296
-msgid "Restore partition table"
-msgstr "Ų§Ų³ŲŖŲ¹Ų§ŲÆŲ© Ų¬ŲÆŁŁ„ Ų§Ł„ŲŖŁ‚Ų³ŁŁ…"
-
-#: ../../diskdrake/interactive.pm_.c:297
-msgid "Rescue partition table"
-msgstr "ŲŁ†Ł‚Ų§Ų° Ų¬ŲÆŁŁ„ Ų§Ł„ŲŖŁ‚Ų³ŁŁ…"
-
-#: ../../diskdrake/interactive.pm_.c:299
-msgid "Reload partition table"
-msgstr "ŲŲ¹Ų§ŲÆŲ© ŲŖŲ­Ł…ŁŁ„ Ų¬ŲÆŁŁ„ Ų§Ł„ŲŖŁ‚Ų³ŁŁ…"
-
-#: ../../diskdrake/interactive.pm_.c:304
-msgid "Removable media automounting"
-msgstr "Ų§Ł„ŲŖŲ¬Ł‡ŁŲ² Ų§Ł„Ų¢Ł„Ł Ł„Ł„ŁŲ³Ų§Ų¦Ų· Ų§Ł„Ł‚Ų§ŲØŁ„Ų© Ł„Ł„ŲŲ²Ų§Ł„Ų©"
-
-#: ../../diskdrake/interactive.pm_.c:313 ../../diskdrake/interactive.pm_.c:333
-msgid "Select file"
-msgstr "Ų§Ų®ŲŖŲ± Ł…Ł„Ł"
-
-#: ../../diskdrake/interactive.pm_.c:320
-msgid ""
-"The backup partition table has not the same size\n"
-"Still continue?"
-msgstr ""
-"Ų¬ŲÆŁŁ„ Ų§Ł„ŲŖŁ‚Ų³ŁŁ… Ų§Ł„Ł…Ų­ŁŁŲø Ł„ŁŲ³ ŲØŁ†ŁŲ³ Ų§Ł„Ų­Ų¬Ł…\n"
-"Ł„Ų§ Ų²Ł„ŲŖ ŲŖŲ±ŁŲÆ Ų§Ł„ŲŁŁ…Ų§Ł„Ų"
-
-#: ../../diskdrake/interactive.pm_.c:334
-msgid "Warning"
-msgstr "ŲŖŲ­Ų°ŁŲ±"
-
-#: ../../diskdrake/interactive.pm_.c:335
-msgid ""
-"Insert a floppy in drive\n"
-"All data on this floppy will be lost"
-msgstr ""
-"Ų£ŲÆŲ®Ł„ Ł‚Ų±ŲµŲ§ Ł…Ų±Ł†Ų§ ŁŁ Ų§Ł„Ų³ŁŲ§Ł‚Ų©\n"
-"ŁŁ„ Ų§Ł„ŲØŁŲ§Ł†Ų§ŲŖ Ų¹Ł„Ł‰ Ų§Ł„Ł‚Ų±Ųµ Ų³ŲŖŁ…Ų­Ł‰"
-
-#: ../../diskdrake/interactive.pm_.c:346
-msgid "Trying to rescue partition table"
-msgstr "Ų¬Ų§Ų±Ł Ł…Ų­Ų§ŁŁ„Ų© Ų§Ł†Ł‚Ų§Ų° Ų¬ŲÆŁŁ„ Ų§Ł„ŲŖŁ‚Ų³ŁŁ…"
-
-#: ../../diskdrake/interactive.pm_.c:352
-msgid "Detailed information"
-msgstr "Ł…Ų¹Ł„ŁŁ…Ų§ŲŖ Ł…ŁŲµŁ‘Ł„Ų©"
-
-#: ../../diskdrake/interactive.pm_.c:364 ../../diskdrake/interactive.pm_.c:534
-#: ../../diskdrake/interactive.pm_.c:554 ../../diskdrake/removable.pm_.c:24
-#: ../../diskdrake/removable_gtk.pm_.c:15 ../../diskdrake/smbnfs_gtk.pm_.c:83
-msgid "Mount point"
-msgstr "Ł†Ł‚Ų·Ų© Ų§Ł„ŲŖŲ¬Ł‡ŁŲ²"
-
-#: ../../diskdrake/interactive.pm_.c:366 ../../diskdrake/removable.pm_.c:25
-#: ../../diskdrake/removable_gtk.pm_.c:16 ../../diskdrake/smbnfs_gtk.pm_.c:84
-msgid "Options"
-msgstr "Ų®ŁŲ§Ų±Ų§ŲŖ"
-
-#: ../../diskdrake/interactive.pm_.c:367 ../../diskdrake/interactive.pm_.c:621
-msgid "Resize"
-msgstr "ŲŖŲŗŁŁŲ± Ų§Ł„Ų­Ų¬Ł…"
-
-#: ../../diskdrake/interactive.pm_.c:368 ../../diskdrake/interactive.pm_.c:674
-msgid "Move"
-msgstr "Ł†Ł‚Ł„"
-
-#: ../../diskdrake/interactive.pm_.c:369
-msgid "Format"
-msgstr "ŲŖŁ†Ų³ŁŁ‚"
-
-#: ../../diskdrake/interactive.pm_.c:370 ../../diskdrake/smbnfs_gtk.pm_.c:80
-msgid "Mount"
-msgstr "Ų¬Ł‡Ų²"
-
-#: ../../diskdrake/interactive.pm_.c:371
-msgid "Add to RAID"
-msgstr "Ų§Ų¶Ų§ŁŲ© Ų§Ł„Ł‰ RAID"
-
-#: ../../diskdrake/interactive.pm_.c:372
-msgid "Add to LVM"
-msgstr "Ų§Ų¶Ų§ŁŲ© Ų§Ł„Ł‰ LVM"
-
-#: ../../diskdrake/interactive.pm_.c:373 ../../diskdrake/smbnfs_gtk.pm_.c:79
-msgid "Unmount"
-msgstr "Ų§Ų²Ł„ Ų§Ł„ŲŖŲ¬Ł‡ŁŲ²"
-
-#: ../../diskdrake/interactive.pm_.c:375
-msgid "Remove from RAID"
-msgstr "Ų§Ų²Ų§Ł„Ų© Ł…Ł† RAID"
-
-#: ../../diskdrake/interactive.pm_.c:376
-msgid "Remove from LVM"
-msgstr "Ų§Ų²Ų§Ł„Ų© Ł…Ł† LVM"
-
-#: ../../diskdrake/interactive.pm_.c:377
-msgid "Modify RAID"
-msgstr "ŲŖŲ¹ŲÆŁŁ„ RAID"
-
-#: ../../diskdrake/interactive.pm_.c:378
-msgid "Use for loopback"
-msgstr "Ų§Ų³ŲŖŲ®ŲÆŲ§Ł… Ł„Ł€loopback"
-
-#: ../../diskdrake/interactive.pm_.c:417
-msgid "Create a new partition"
-msgstr "Ų§Ų¹Ł…Ł„ ŲŖŲ¬Ų²Ų¦Ų© Ų¬ŲÆŁŲÆŲ©"
-
-#: ../../diskdrake/interactive.pm_.c:420
-msgid "Start sector: "
-msgstr "Ł‚Ų·Ų§Ų¹ Ų§Ł„ŲØŲÆŲ§ŁŲ©: "
-
-#: ../../diskdrake/interactive.pm_.c:422 ../../diskdrake/interactive.pm_.c:773
-msgid "Size in MB: "
-msgstr "Ų§Ł„Ų­Ų¬Ł… ŲØŲ§Ł„ŁŲŗŲ§ŲØŲ§ŁŲŖ: "
-
-#: ../../diskdrake/interactive.pm_.c:423 ../../diskdrake/interactive.pm_.c:774
-msgid "Filesystem type: "
-msgstr "Ł†ŁŲ¹ Ł†ŲøŲ§Ł… Ų§Ł„Ł…ŁŲ§ŲŖ: "
-
-#: ../../diskdrake/interactive.pm_.c:424
-#: ../../diskdrake/interactive.pm_.c:1034
-#: ../../diskdrake/interactive.pm_.c:1108
-msgid "Mount point: "
-msgstr "Ł†Ł‚Ų·Ų© Ų§Ł„ŲŖŲ¬Ł‡ŁŲ²: "
-
-#: ../../diskdrake/interactive.pm_.c:428
-msgid "Preference: "
-msgstr "Ų§Ł„ŲŖŁŲ¶ŁŁ„: "
-
-#: ../../diskdrake/interactive.pm_.c:472
-msgid "Remove the loopback file?"
-msgstr "Ł‡Ł„ ŲŖŲ±ŁŲÆ Ų§Ų²Ų§Ł„Ų© Ł…Ł„Ł loopbackŲ"
-
-#: ../../diskdrake/interactive.pm_.c:497
-msgid "Change partition type"
-msgstr "ŲŗŁŲ± Ł†ŁŲ¹ Ų§Ł„ŲŖŲ¬Ų²Ų¦Ų©"
-
-#: ../../diskdrake/interactive.pm_.c:498 ../../diskdrake/removable.pm_.c:48
-msgid "Which filesystem do you want?"
-msgstr "Ų£Ł Ł†ŲøŲ§Ł… Ł…Ł„ŁŲ§ŲŖ ŲŖŲ±ŁŲÆŲ"
-
-#: ../../diskdrake/interactive.pm_.c:502
-msgid "Switching from ext2 to ext3"
-msgstr "Ų¬Ų§Ų±Ł Ų§Ł„ŲŖŲŗŁŁŲ± Ł…Ł† ext2 Ų§Ł„Ł‰ ext3"
-
-#: ../../diskdrake/interactive.pm_.c:532
-#, c-format
-msgid "Where do you want to mount loopback file %s?"
-msgstr "Ų£ŁŁ† ŲŖŲ±ŁŲÆ ŲŖŲ¬Ł‡ŁŲ² Ł…Ł„Ł loopback %sŲ"
-
-#: ../../diskdrake/interactive.pm_.c:533 ../../diskdrake/interactive.pm_.c:553
-#, c-format
-msgid "Where do you want to mount device %s?"
-msgstr "Ų£ŁŁ† ŲŖŲ±ŁŲÆ ŲØŲ¬Ł‡ŁŲ² Ų§Ł„Ų¬Ł‡Ų§Ų²%sŲ"
-
-#: ../../diskdrake/interactive.pm_.c:539
-msgid ""
-"Can't unset mount point as this partition is used for loop back.\n"
-"Remove the loopback first"
-msgstr ""
-"Ł„Ł… ŁŁ…ŁŁ† Ų§Ų²Ų§Ł„Ų© ŲŖŲ¹ŁŁŁ† Ł†Ł‚Ų·Ų© Ų§Ł„ŲŖŲ¬Ł‡ŁŲ² Ł†ŲøŲ±Ų§ Ł„Ų£Ł† Ł‡Ų°Ł‡ Ų§Ł„ŲŖŲ¬Ų²Ų¦Ų© Ł…Ų³ŲŖŲ®ŲÆŁ…Ų© Ł„Ł€loop back.\n"
-"Ł‚Ł… ŲØŲŲ²Ų§Ł„Ų© Ų§Ł„Ł€loopback Ų£ŁŁ„Ų§"
-
-#: ../../diskdrake/interactive.pm_.c:577
-msgid "Computing FAT filesystem bounds"
-msgstr "Ų¬Ų§Ų±Ł Ų­Ų³Ų§ŲØ Ų±ŁŲ§ŲØŲ· Ł†ŲøŲ§Ł… Ł…Ł„ŁŲ§ŲŖ FAT"
-
-#: ../../diskdrake/interactive.pm_.c:577 ../../diskdrake/interactive.pm_.c:636
-#: ../../install_interactive.pm_.c:130
-msgid "Resizing"
-msgstr "Ų¬Ų§Ų±Ł ŲŖŲŗŁŁŲ± Ų§Ł„Ų­Ų¬Ł…"
-
-#: ../../diskdrake/interactive.pm_.c:609
-msgid "This partition is not resizeable"
-msgstr "Ł‡Ų°Ų§ Ų§Ł„ŲŖŁ‚Ų³ŁŁ… ŲŗŁŲ± Ł‚Ų§ŲØŁ„ Ł„ŲŖŲŗŁŁŲ± Ų§Ł„Ų­Ų¬Ł…"
-
-#: ../../diskdrake/interactive.pm_.c:614
-msgid "All data on this partition should be backed-up"
-msgstr "ŁŁ„ Ų§Ł„ŲØŁŲ§Ł†Ų§ŲŖ Ų¹Ł„Ł‰ Ł‡Ų°Ł‡ Ų§Ł„ŲŖŲ¬Ų²Ų¦Ų© ŁŲ¬ŲØ Ų­ŁŲøŁ‡Ų§ Ų§Ų­ŲŖŁŲ§Ų·ŁŲ§"
-
-#: ../../diskdrake/interactive.pm_.c:616
-#, c-format
-msgid "After resizing partition %s, all data on this partition will be lost"
-msgstr "ŲØŲ¹ŲÆ ŲŖŲŗŁŁŲ± Ų­Ų¬Ł… Ų§Ł„ŲŖŲ¬Ų²Ų¦Ų© %s, ŁŲŁ† ŁŁ„ Ų§Ł„ŲØŁŲ§Ł†Ų§ŲŖ Ų¹Ł„Ł‰ Ł‡Ų°Ł‡ Ų§Ł„ŲŖŲ¬Ų²Ų¦Ų© Ų³ŲŖŁŁ‚ŲÆ"
-
-#: ../../diskdrake/interactive.pm_.c:621
-msgid "Choose the new size"
-msgstr "Ų§Ų®ŲŖŲ± Ų§Ł„Ų­Ų¬Ł… Ų§Ł„Ų¬ŲÆŁŲÆ"
-
-#: ../../diskdrake/interactive.pm_.c:622
-msgid "New size in MB: "
-msgstr "Ų§Ł„Ų­Ų¬Ł… Ų§Ł„Ų¬ŲÆŁŲÆ ŲØŲ§Ł„Ł…ŁŲŗŲ§ŲØŲ§ŁŲŖ: "
-
-#: ../../diskdrake/interactive.pm_.c:675
-msgid "Which disk do you want to move it to?"
-msgstr "Ų£Ł Ł‚Ų±Ųµ ŲŖŲ±ŁŲÆ Ł†Ł‚Ł„Ł‡Ų"
-
-#: ../../diskdrake/interactive.pm_.c:676
-msgid "Sector"
-msgstr "Ų§Ł„Ł‚Ų·Ų§Ų¹"
-
-#: ../../diskdrake/interactive.pm_.c:677
-msgid "Which sector do you want to move it to?"
-msgstr "Ų£Ł Ł‚Ų·Ų§Ų¹ ŲŖŲ±ŁŲÆ Ł†Ł‚Ł„Ł‡Ų"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving"
-msgstr "Ł†Ł‚Ł„"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving partition..."
-msgstr "Ų¬Ų§Ų±Ł Ł†Ł‚Ł„ Ų§Ł„ŲŖŲ¬Ų²Ų¦Ų©..."
-
-#: ../../diskdrake/interactive.pm_.c:697
-msgid "Choose an existing RAID to add to"
-msgstr "Ų§Ų®ŲŖŲ± RAID Ł…ŁŲ¬ŁŲÆ Ł„Ł„Ų§Ų¶Ų§ŁŲ©"
-
-#: ../../diskdrake/interactive.pm_.c:698 ../../diskdrake/interactive.pm_.c:716
-msgid "new"
-msgstr "Ų¬ŲÆŁŲÆ"
-
-#: ../../diskdrake/interactive.pm_.c:714
-msgid "Choose an existing LVM to add to"
-msgstr "Ų§Ų®ŲŖŲ± LVM l,Ų¬ŁŲÆ Ł„Ł„Ų§Ų¶Ų§ŁŲ©"
-
-#: ../../diskdrake/interactive.pm_.c:719
-msgid "LVM name?"
-msgstr "Ų§Ų³Ł… LVMŲ"
-
-#: ../../diskdrake/interactive.pm_.c:759
-msgid "This partition can't be used for loopback"
-msgstr "Ł‡Ų°Ł‡ Ų§Ł„ŲŖŲ¬Ų²Ų¦Ų© Ł„Ų§ ŁŁ…ŁŁ† Ų§Ų³ŲŖŲ®ŲÆŲ§Ł…Ł‡Ų§ Ł„Ł€loopback"
-
-#: ../../diskdrake/interactive.pm_.c:771
-msgid "Loopback"
-msgstr "Loopback"
-
-#: ../../diskdrake/interactive.pm_.c:772
-msgid "Loopback file name: "
-msgstr "Ų§Ų³Ł… Ł…Ł„Ł Loopback: "
-
-#: ../../diskdrake/interactive.pm_.c:777
-msgid "Give a file name"
-msgstr "Ų§Ų¹Ų· Ų§Ų³Ł… Ł…Ł„Ł"
-
-#: ../../diskdrake/interactive.pm_.c:780
-msgid "File already used by another loopback, choose another one"
-msgstr "Ł‡Ų°Ų§ Ų§Ł„Ł…Ł„Ł Ł…Ų³ŲŖŲ®ŲÆŁ… Ł…Ł† loopback Ų£Ų®Ų±Ł‰, Ų§Ų®ŲŖŲ± Ł…Ł„ŁŲ§ Ų¢Ų®Ų±"
-
-#: ../../diskdrake/interactive.pm_.c:781
-msgid "File already exists. Use it?"
-msgstr "Ų§Ł„Ł…Ł„Ł Ł…ŁŲ¬ŁŲÆ Ł…Ų³ŲØŁ‚Ų§, Ł‡Ł„ ŲŖŲ±ŁŲÆ Ų§Ų³ŲŖŲ®ŲÆŲ§Ł…Ł‡Ų"
-
-#: ../../diskdrake/interactive.pm_.c:804
-msgid "Mount options"
-msgstr "Ų®ŁŲ§Ų±Ų§ŲŖ Ų§Ł„ŲŖŲ¬Ł‡ŁŲ²"
-
-#: ../../diskdrake/interactive.pm_.c:811
-msgid "Various"
-msgstr "Ł…ŲŖŁ†ŁŲ¹Ų©"
-
-#: ../../diskdrake/interactive.pm_.c:874
-msgid "device"
-msgstr "Ų§Ł„Ų¬Ł‡Ų§Ų²"
-
-#: ../../diskdrake/interactive.pm_.c:875
-msgid "level"
-msgstr "Ų§Ł„Ł…Ų³ŲŖŁŁ‰"
-
-#: ../../diskdrake/interactive.pm_.c:876
-msgid "chunk size"
-msgstr "Ų­Ų¬Ł… chunk"
-
-#: ../../diskdrake/interactive.pm_.c:891
-msgid "Be careful: this operation is dangerous."
-msgstr "ŁŁ† Ų­Ų°Ų±Ų§: Ł‡Ų°Ł‡ Ų§Ł„Ų¹Ł…Ł„ŁŲ© Ų®Ų·ŁŲ±Ų©"
-
-#: ../../diskdrake/interactive.pm_.c:906
-msgid "What type of partitioning?"
-msgstr "Ų£Ł Ł†ŁŲ¹ Ł…Ł† Ų§Ł„ŲŖŲ¬Ų²Ų¦Ų©Ų"
-
-#: ../../diskdrake/interactive.pm_.c:924
-msgid ""
-"Sorry I won't accept to create /boot so far onto the drive (on a cylinder > "
-"1024).\n"
-"Either you use LILO and it won't work, or you don't use LILO and you don't "
-"need /boot"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:928
-msgid ""
-"The partition you've selected to add as root (/) is physically located "
-"beyond\n"
-"the 1024th cylinder of the hard drive, and you have no /boot partition.\n"
-"If you plan to use the LILO boot manager, be careful to add a /boot partition"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:934
-msgid ""
-"You've selected a software RAID partition as root (/).\n"
-"No bootloader is able to handle this without a /boot partition.\n"
-"So be careful to add a /boot partition"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:954
-#, c-format
-msgid "Partition table of drive %s is going to be written to disk!"
-msgstr "Ų¬ŲÆŁŁ„ Ų§ŲŖŲŖŁ‚Ų³ŁŁ… Ł„Ł„Ł‚Ų±Ųµ %s Ų³ŁŲŖŁ… ŁŲŖŲ§ŲØŲŖŁ‡ Ų§Ł„Ł‰ Ų§Ł„Ł‚Ų±Ųµ!"
-
-#: ../../diskdrake/interactive.pm_.c:958
-msgid "You'll need to reboot before the modification can take place"
-msgstr "Ų³ŲŖŲ­ŲŖŲ§Ų¬ Ų§Ł„Ł‰ Ų§Ų¹Ų§ŲÆŲ© Ų§Ł„ŲŖŲ´ŲŗŁŁ„ Ł‚ŲØŁ„ Ų£Ł† ŁŲŖŁ… ŲŖŁŲ¹ŁŁ„ Ų§Ł„ŲŖŲ¹ŲÆŁŁ„Ų§ŲŖ"
-
-#: ../../diskdrake/interactive.pm_.c:969
-#, c-format
-msgid "After formatting partition %s, all data on this partition will be lost"
-msgstr "ŲØŲ¹ŲÆ ŲŖŁ‡ŁŲ¦Ų© Ų§Ł„ŲŖŁ‚Ų³ŁŁ… %s, ŁŲŁ† ŁŁ„ Ų§Ł„ŲØŁŲ§Ł†Ų§ŲŖ Ų§Ł„Ł…ŁŲ¬ŁŲÆŲ© Ų¹Ł„Ł‰ Ų§Ł„ŲŖŲ¬Ų²Ų¦Ų© Ų³ŲŖŁŁ‚ŲÆ"
-
-#: ../../diskdrake/interactive.pm_.c:971
-msgid "Formatting"
-msgstr "Ų¬Ų§Ų±Ł Ų§Ł„ŲŖŁ‡ŁŲ¦Ų©"
-
-#: ../../diskdrake/interactive.pm_.c:972
-#, c-format
-msgid "Formatting loopback file %s"
-msgstr "Ų¬Ų§Ų±Ł ŲŖŁ‡ŁŲ¦Ų© Ł…Ł„Ł loopback: %s"
-
-#: ../../diskdrake/interactive.pm_.c:973
-#: ../../install_steps_interactive.pm_.c:465
-#, c-format
-msgid "Formatting partition %s"
-msgstr "Ų¬Ų§Ų±Ł ŲŖŁ‡ŁŲ¦Ų© Ų§Ł„ŲŖŲ¬Ų²Ų¦Ų© %s"
-
-#: ../../diskdrake/interactive.pm_.c:984
-msgid "Hide files"
-msgstr "Ų®ŲØŲ Ų§Ł„Ł…Ł„ŁŲ§ŲŖ"
-
-#: ../../diskdrake/interactive.pm_.c:984
-msgid "Move files to the new partition"
-msgstr "Ų§Ł†Ł‚Ł„ Ų§Ł„Ł…Ł„ŁŲ§ŲŖ Ų§Ł„Ł‰ ŲŖŲ¬Ų²Ų¦Ų© Ų¬ŲÆŁŲÆŲ©"
-
-#: ../../diskdrake/interactive.pm_.c:985
-#, c-format
-msgid ""
-"Directory %s already contain some data\n"
-"(%s)"
-msgstr ""
-"Ų§Ł„ŲÆŁ„ŁŁ„ %s ŁŲ­ŲŖŁŁ Ł…Ų³ŲØŁ‚Ų§ Ų¹Ł„Ł‰ ŲØŲ¹Ų¶ Ų§Ł„ŲØŁŲ§Ł†Ų§ŲŖ\n"
-"(%s)"
-
-#: ../../diskdrake/interactive.pm_.c:996
-msgid "Moving files to the new partition"
-msgstr "Ų¬Ų§Ų±Ł Ł†Ł‚Ł„ Ų§Ł„Ł…Ł„ŁŲ§ŲŖ Ų§Ł„Ł‰ Ų§Ł„ŲŖŲ¬Ų²Ų¦Ų© Ų§Ł„Ų¬ŲÆŁŲÆŲ©"
-
-#: ../../diskdrake/interactive.pm_.c:1000
-#, c-format
-msgid "Copying %s"
-msgstr "Ų¬Ų§Ų±Ł Ł†Ų³Ų® %s"
-
-#: ../../diskdrake/interactive.pm_.c:1004
-#, c-format
-msgid "Removing %s"
-msgstr "Ų¬Ų§Ų±Ł Ų§Ų²Ų§Ł„Ų© %s"
-
-#: ../../diskdrake/interactive.pm_.c:1014
-#, c-format
-msgid "partition %s is now known as %s"
-msgstr "Ų§Ł„ŲŖŲ¬Ų²Ų¦Ų© %s Ł…Ų¹Ų±ŁŁŲ© Ų§Ł„Ų¢Ł† ŲØŲ§Ł„ŲŲ³Ł… %s"
-
-#: ../../diskdrake/interactive.pm_.c:1035
-#: ../../diskdrake/interactive.pm_.c:1094
-msgid "Device: "
-msgstr "Ų§Ł„Ų¬Ł‡Ų§Ų²: "
-
-#: ../../diskdrake/interactive.pm_.c:1036
-#, c-format
-msgid "DOS drive letter: %s (just a guess)\n"
-msgstr "Ų­Ų±Ł Ų³ŁŲ§Ł‚Ų© DOS: %s (Ł…Ų¬Ų±ŲÆ ŲŖŲ®Ł…ŁŁ†)\n"
-
-#: ../../diskdrake/interactive.pm_.c:1040
-#: ../../diskdrake/interactive.pm_.c:1048
-#: ../../diskdrake/interactive.pm_.c:1112
-msgid "Type: "
-msgstr "Ų§Ł„Ł†ŁŲ¹: "
-
-#: ../../diskdrake/interactive.pm_.c:1044
-msgid "Name: "
-msgstr "Ų§Ł„Ų§Ų³Ł…: "
-
-#: ../../diskdrake/interactive.pm_.c:1052
-#, c-format
-msgid "Start: sector %s\n"
-msgstr "Ų§Ł„ŲØŲÆŲ§ŁŲ©: Ł‚Ų·Ų§Ų¹ %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1053
-#, c-format
-msgid "Size: %s"
-msgstr "Ų§Ł„Ų­Ų¬Ł…: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1055
-#, c-format
-msgid ", %s sectors"
-msgstr ", %s Ł‚Ų·Ų§Ų¹"
-
-#: ../../diskdrake/interactive.pm_.c:1057
-#, c-format
-msgid "Cylinder %d to %d\n"
-msgstr "Ų§Ł„Ų§Ų³Ų·ŁŲ§Ł†Ų© %d Ų§Ł„Ł‰ %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1058
-msgid "Formatted\n"
-msgstr "Ł…Ų¬Ł‡Ų²\n"
-
-#: ../../diskdrake/interactive.pm_.c:1059
-msgid "Not formatted\n"
-msgstr "ŲŗŁŲ± Ł…Ų¬Ł‡Ų²\n"
-
-#: ../../diskdrake/interactive.pm_.c:1060
-msgid "Mounted\n"
-msgstr "Ł…Ų­Ł…Ł„\n"
-
-#: ../../diskdrake/interactive.pm_.c:1061
-#, c-format
-msgid "RAID md%s\n"
-msgstr "RAID md%s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1063
-#, c-format
-msgid ""
-"Loopback file(s):\n"
-" %s\n"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1064
-msgid ""
-"Partition booted by default\n"
-" (for MS-DOS boot, not for lilo)\n"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1066
-#, c-format
-msgid "Level %s\n"
-msgstr "Ų§Ł„Ł…Ų³ŲŖŁŁ‰ %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1067
-#, c-format
-msgid "Chunk size %s\n"
-msgstr "Ų­Ų¬Ł… Chunk %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1068
-#, c-format
-msgid "RAID-disks %s\n"
-msgstr "Ų£Ł‚Ų±Ų§Ųµ RAID %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1070
-#, c-format
-msgid "Loopback file name: %s"
-msgstr "Ų§Ų³Ł… Ł…Ł„Ł Loopback: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1073
-msgid ""
-"\n"
-"Chances are, this partition is\n"
-"a Driver partition, you should\n"
-"probably leave it alone.\n"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1076
-msgid ""
-"\n"
-"This special Bootstrap\n"
-"partition is for\n"
-"dual-booting your system.\n"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1095
-#, c-format
-msgid "Size: %s\n"
-msgstr "Ų§Ł„Ų­Ų¬Ł…: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1096
-#, c-format
-msgid "Geometry: %s cylinders, %s heads, %s sectors\n"
-msgstr "Ų§Ł„Ł‡Ł†ŲÆŲ³Ų©: %s Ų§Ų³Ų·ŁŲ§Ł†Ų©, %s Ų±Ų£Ų³, %s Ł‚Ų·Ų§Ų¹\n"
-
-#: ../../diskdrake/interactive.pm_.c:1097
-msgid "Info: "
-msgstr "Ł…Ų¹Ł„ŁŁ…Ų§ŲŖ: "
-
-#: ../../diskdrake/interactive.pm_.c:1098
-#, c-format
-msgid "LVM-disks %s\n"
-msgstr "Ų£Ł‚Ų±Ų§Ųµ LVM %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1099
-#, c-format
-msgid "Partition table type: %s\n"
-msgstr "Ł†ŁŲ¹ Ų¬ŲÆŁŁ„ Ų§Ł„ŲŖŁ‚Ų³ŁŁ…: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1100
-#, c-format
-msgid "on bus %d id %d\n"
-msgstr "Ų¹Ł„Ł‰ bus %d id %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1114
-#, c-format
-msgid "Options: %s"
-msgstr "Ų§Ł„Ų®ŁŲ§Ų±Ų§ŲŖ: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1130
-msgid "Filesystem encryption key"
-msgstr "Ł…ŁŲŖŲ§Ų­ ŲŖŲ´ŁŁŲ± Ł†ŲøŲ§Ł… Ų§Ł„Ł…Ł„ŁŲ§ŲŖ"
-
-#: ../../diskdrake/interactive.pm_.c:1131
-msgid "Choose your filesystem encryption key"
-msgstr "Ų§Ų®ŲŖŲ± Ł…ŁŲŖŲ§Ų­ ŲŖŲ´ŁŁŲ± Ł†ŲøŲ§Ł… Ų§Ł„Ł…Ł„ŁŲ§ŲŖ"
-
-#: ../../diskdrake/interactive.pm_.c:1134
-#, c-format
-msgid "This encryption key is too simple (must be at least %d characters long)"
-msgstr "Ł…ŁŲŖŲ§Ų­ Ų§Ł„ŲŖŲ´ŁŁŲ± Ł‡Ų°Ų§ ŲØŲ³ŁŲ· Ų¬ŲÆŲ§ (ŁŲ¬ŲØ Ų£Ł† ŁŁŁŁ† %d Ų­Ų±ŁŲ§ Ų¹Ł„Ł‰ Ų§Ł„Ų£Ł‚Ł„)"
-
-#: ../../diskdrake/interactive.pm_.c:1135
-msgid "The encryption keys do not match"
-msgstr "Ł…ŁŲ§ŲŖŁŲ­ Ų§Ł„ŲŖŲ´ŁŁŲ± ŲŗŁŲ± Ł…ŲŖŲ·Ų§ŲØŁ‚Ų©"
-
-#: ../../diskdrake/interactive.pm_.c:1138
-msgid "Encryption key"
-msgstr "Ł…ŁŲ§ŲŖŲ­ Ų§Ł„ŲŖŲ´ŁŁŲ±"
-
-#: ../../diskdrake/interactive.pm_.c:1139
-msgid "Encryption key (again)"
-msgstr "Ł…ŁŲ§ŲŖŲ­ Ų§Ł„ŲŖŲ´ŁŁŲ± (Ł…Ų±Ų© Ų£Ų®Ų±Ł‰)"
-
-#: ../../diskdrake/removable.pm_.c:47
-msgid "Change type"
-msgstr "ŲŗŁŁ‘Ų± Ų§Ł„Ł†ŁŲ¹"
-
-#: ../../diskdrake/removable_gtk.pm_.c:28
-msgid "Please click on a media"
-msgstr "ŁŲ¶Ł„Ų§ Ų§Ų¶Ų¹Ų· Ų¹Ł„Ł‰ ŁŲ³ŁŲ·"
-
-#: ../../diskdrake/smbnfs_gtk.pm_.c:165
-msgid "Search servers"
-msgstr "Ų§ŲØŲ­Ų« ŁŁ Ų£Ų¬Ł‡Ų²Ų© Ų§Ł„Ų®Ų§ŲÆŁ…"
-
-#: ../../fs.pm_.c:485 ../../fs.pm_.c:495 ../../fs.pm_.c:499 ../../fs.pm_.c:503
-#: ../../fs.pm_.c:507 ../../fs.pm_.c:511
-#, c-format
-msgid "%s formatting of %s failed"
-msgstr "%s ŲŖŲ¬Ł‡ŁŲ² %s Ł‚ŲÆ ŁŲ´Ł„"
-
-#: ../../fs.pm_.c:548
-#, c-format
-msgid "I don't know how to format %s in type %s"
-msgstr "Ł„Ų§ Ų£Ų¹Ų±Ł ŁŁŁ Ų£Ų¬Ł‡Ų² %s ŁŁ Ų§Ł„Ł†ŁŲ¹ %s"
-
-#: ../../fs.pm_.c:620 ../../fs.pm_.c:649 ../../fs.pm_.c:655
-#, c-format
-msgid "mounting partition %s in directory %s failed"
-msgstr ""
-
-#: ../../fs.pm_.c:640
-#, c-format
-msgid "fsck failed with exit code %d or signal %d"
-msgstr ""
-
-#: ../../fs.pm_.c:670 ../../partition_table.pm_.c:596
-#, c-format
-msgid "error unmounting %s: %s"
-msgstr ""
-
-#: ../../fsedit.pm_.c:21
-msgid "simple"
-msgstr "ŲØŲ³ŁŲ·"
-
-#: ../../fsedit.pm_.c:25
-msgid "with /usr"
-msgstr ""
-
-#: ../../fsedit.pm_.c:30
-msgid "server"
-msgstr "Ų®Ų§ŲÆŁ…"
-
-#: ../../fsedit.pm_.c:467
-msgid "You can't use JFS for partitions smaller than 16MB"
-msgstr ""
-
-#: ../../fsedit.pm_.c:468
-msgid "You can't use ReiserFS for partitions smaller than 32MB"
-msgstr ""
-
-#: ../../fsedit.pm_.c:477
-msgid "Mount points must begin with a leading /"
-msgstr ""
-
-#: ../../fsedit.pm_.c:478
-#, c-format
-msgid "There is already a partition with mount point %s\n"
-msgstr ""
-
-#: ../../fsedit.pm_.c:482
-#, c-format
-msgid "You can't use a LVM Logical Volume for mount point %s"
-msgstr ""
-
-#: ../../fsedit.pm_.c:484
-msgid "This directory should remain within the root filesystem"
-msgstr ""
-
-#: ../../fsedit.pm_.c:486
-msgid "You need a true filesystem (ext2, reiserfs) for this mount point\n"
-msgstr ""
-
-#: ../../fsedit.pm_.c:488
-#, c-format
-msgid "You can't use an encrypted file system for mount point %s"
-msgstr ""
-
-#: ../../fsedit.pm_.c:546
-msgid "Not enough free space for auto-allocating"
-msgstr "Ł„Ų§ ŲŖŁŲ¬ŲÆ Ł…Ų³Ų§Ų­Ų© ŁŲ§ŁŁŲ© Ł„Ł„ŲŖŲ­ŲÆŁŲÆ Ų§Ł„Ų¢Ł„Ł"
-
-#: ../../fsedit.pm_.c:548
-msgid "Nothing to do"
-msgstr ""
-
-#: ../../fsedit.pm_.c:612
-#, c-format
-msgid "Error opening %s for writing: %s"
-msgstr ""
-
-#: ../../fsedit.pm_.c:697
-msgid ""
-"An error has occurred - no valid devices were found on which to create new "
-"filesystems. Please check your hardware for the cause of this problem"
-msgstr ""
-
-#: ../../fsedit.pm_.c:720
-msgid "You don't have any partitions!"
-msgstr ""
-
-#: ../../help.pm_.c:13
-msgid ""
-"GNU/Linux is a multiuser system, and this means that each user can have his\n"
-"own preferences, his own files and so on. You can read the ``User Guide''\n"
-"to learn more. But unlike \"root\", which is the administrator, the users\n"
-"you will add here will not be entitled to change anything except their own\n"
-"files and their own configuration. You will have to create at least one\n"
-"regular user for yourself. That account is where you should log in for\n"
-"routine use. Although it is very practical to log in as \"root\" everyday,\n"
-"it may also be very dangerous! The slightest mistake could mean that your\n"
-"system would not work any more. If you make a serious mistake as a regular\n"
-"user, you may only lose some information, but not the entire system.\n"
-"\n"
-"First, you have to enter your real name. This is not mandatory, of course\n"
-"as you can actually enter whatever you want. DrakX will then take the first\n"
-"word you have entered in the box and will bring it over to the \"User\n"
-"name\". This is the name this particular user will use to log onto the\n"
-"system. You can change it. You then have to enter a password here. A\n"
-"non-privileged (regular) user's password is not as crucial as \"root\"' one\n"
-"from a security point of view, but that is no reason to neglect it: after\n"
-"all, your files are at risk.\n"
-"\n"
-"If you click on \"Accept user\", you can then add as many as you want. Add\n"
-"a user for each one of your friends: your father or your sister, for\n"
-"example. When you finish adding all the users you want, select \"Done\".\n"
-"\n"
-"Clicking the \"Advanced\" button allows you to change the default \"shell\"\n"
-"for that user (bash by default)."
-msgstr ""
-
-#: ../../help.pm_.c:41
-msgid ""
-"Listed above are the existing Linux partitions detected on your hard 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"
-"able to install enough software. If you want to store your data on a\n"
-"separate partition, you will also need to create a partition for \"/home\"\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 drive type\", \"hard 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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
-"\"second lowest SCSI ID\", etc."
-msgstr ""
-
-#: ../../help.pm_.c:72
-msgid ""
-"The Mandrake Linux 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."
-msgstr ""
-
-#: ../../help.pm_.c:77
-msgid ""
-"It is now time to specify which programs you wish to install on your\n"
-"system. There are thousands of packages available for Mandrake Linux, 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"
-"be asked to specify the CDs you currently have (in Expert mode only). Check\n"
-"the CD labels and highlight the boxes corresponding to the CDs you have\n"
-"available for installation. Click \"OK\" when you are ready to continue.\n"
-"\n"
-"Packages are sorted in groups corresponding to a particular use of your\n"
-"machine. The groups themselves are sorted into four sections:\n"
-"\n"
-" * \"Workstation\": if you plan to use your machine as a workstation, "
-"select\n"
-"one or more of the corresponding groups;\n"
-"\n"
-" * \"Development\": if your machine is to be used for programming, choose\n"
-"the desired group(s);\n"
-"\n"
-" * \"Server\": if your machine is intended to be a server, you will be able\n"
-"to select which of the most common services you wish to install on your\n"
-"machine;\n"
-"\n"
-" * \"Graphical Environment\": finally, this is where you will choose your\n"
-"preferred graphical environment. At least one must be selected if you want\n"
-"to have a graphical workstation!\n"
-"\n"
-"Moving the mouse cursor over a group name will display a short explanatory\n"
-"text about that group. If you deselect all groups when performing a regular\n"
-"installation (by opposition to an upgrade), a dialog will pop up proposing\n"
-"different options for a minimal installation:\n"
-"\n"
-" * \"With X\": install the fewer packages possible to have a working\n"
-"graphical desktop;\n"
-"\n"
-" * \"With basic documentation\": installs the base system plus basic\n"
-"utilities and their documentation. This installation is suitable for\n"
-"setting up a server;\n"
-"\n"
-" * \"Truly minimal install\": will install the strict minimum necessary to\n"
-"get a working Linux system, in command line only. This installation is\n"
-"about 65Mb large.\n"
-"\n"
-"You can check the \"Individual package selection\" box, which is useful if\n"
-"you are familiar with the packages being offered or if you want to have\n"
-"total control over what will be installed.\n"
-"\n"
-"If you started the installation in \"Upgrade\" mode, you can unselect all\n"
-"groups to avoid installing any new package. This is useful for repairing or\n"
-"updating an existing system."
-msgstr ""
-
-#: ../../help.pm_.c:128
-msgid ""
-"Finally, depending on whether or not you selected individual packages, you\n"
-"will be presented a tree containing all packages classified by groups and\n"
-"subgroups. While browsing the tree, you can select entire groups,\n"
-"subgroups, or individual packages.\n"
-"\n"
-"Whenever you select a package on the tree, a description appears on the\n"
-"right. When your selection is finished, click the \"Install\" button which\n"
-"will then launch the installation process. Depending on the speed of your\n"
-"hardware and the number of packages that need to be installed, it may take\n"
-"a while to complete the process. An estimate of the time it will take to\n"
-"install everything is displayed on the screen, to help you gauge if there\n"
-"is sufficient time to enjoy a cup of coffee.\n"
-"\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 Mandrake Linux, 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 Mandrake Linux 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"
-"default. !!\n"
-"\n"
-"The \"Automatic dependencies\" option simply disables the warning dialog\n"
-"which appears whenever the installer automatically selects a package. This\n"
-"occurs because it has determined that it needs to satisfy a dependency with\n"
-"another package in order to successfully complete the installation.\n"
-"\n"
-"The tiny floppy disk icon at the bottom of the list allows to load the\n"
-"package list chosen during a previous installation. Clicking on this icon\n"
-"will ask you to insert a floppy disk previously created at the end of\n"
-"another installation. See the second tip of last step on how to create such\n"
-"a floppy."
-msgstr ""
-
-#: ../../help.pm_.c:164
-msgid ""
-"You are now proposed to set up your Internet/network connection. If you\n"
-"wish to connect your computer to the Internet or to a local network, click\n"
-"\"OK\". The autodetection of network devices and modem will be launched. If\n"
-"this detection fails, uncheck the \"Use auto detection\" box next time. You\n"
-"may also choose not to configure the network, or do it later; in that case,\n"
-"simply click the \"Cancel\" button.\n"
-"\n"
-"Available connections are: traditional modem, ISDN modem, ADSL connection,\n"
-"cable modem, and finally a simple LAN connection (Ethernet).\n"
-"\n"
-"Here, we will not detail each configuration. Simply make sure that you have\n"
-"all the parameters from your Internet Service Provider or system\n"
-"administrator.\n"
-"\n"
-"You can consult the ``User Guide'' chapter about Internet connections for\n"
-"details about the configuration, or simply wait until your system is\n"
-"installed and use the program described there to configure your connection.\n"
-"\n"
-"If you wish to configure the network later after installation, or if you\n"
-"are finished configuring your network connection, click \"Cancel\"."
-msgstr ""
-
-#: ../../help.pm_.c:186
-msgid ""
-"You may now choose which services you wish to start at boot time.\n"
-"\n"
-"Here are presented all the services available with the current\n"
-"installation. Review them carefully and uncheck those which are not always\n"
-"needed at boot time.\n"
-"\n"
-"You can get a short explanatory text about a service by selecting a\n"
-"specific service. However, if you are not sure whether a service is useful\n"
-"or not, 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 will probably not want to start any services which you do not\n"
-"need. Please remember that several services can be dangerous if they are\n"
-"enabled on a server. In general, select only the services you really need.\n"
-"!!"
-msgstr ""
-
-#: ../../help.pm_.c:203
-msgid ""
-"GNU/Linux manages time in GMT (Greenwich Mean Time) and translates it in\n"
-"local time according to the time zone you selected. It is however possible\n"
-"to deactivate this by deselecting \"Hardware clock set to GMT\" so that the\n"
-"hardware clock is the same as the system clock. This is useful when the\n"
-"machine is hosting another operating system like Windows.\n"
-"\n"
-"The \"Automatic time synchronization\" option will automatically regulate\n"
-"the clock by connecting to a remote time server on the Internet. In the\n"
-"list that is presented, choose a server located near you. Of course you\n"
-"must have a working Internet connection for this feature to work. It will\n"
-"actually install on your machine a time server which can be optionally used\n"
-"by other machines on your local network."
-msgstr ""
-
-#: ../../help.pm_.c:217
-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 Mandrake Linux rely. In this section, DrakX\n"
-"will try to configure X automatically.\n"
-"\n"
-"It is extremely rare for it to fail, unless the hardware is very old (or\n"
-"very new). If it succeeds, it will start X automatically with the best\n"
-"resolution possible, depending on the size of the monitor. A window will\n"
-"then appear and ask you if you can see it.\n"
-"\n"
-"If you are doing an \"Expert\" installation, you will enter the X\n"
-"configuration wizard. See the corresponding section of the manual for more\n"
-"information about this wizard.\n"
-"\n"
-"If you can see the message during the test, and answer \"Yes\", then DrakX\n"
-"will proceed to the next step. If you cannot see the message, it simply\n"
-"means that the configuration was wrong and the test will automatically end\n"
-"after 10 seconds, restoring the screen."
-msgstr ""
-
-#: ../../help.pm_.c:237
-msgid ""
-"The first time you try the X configuration, you may not be very satisfied\n"
-"with its display (screen is too small, shifted left or right...). Hence,\n"
-"even if X starts up correctly, DrakX then asks you if the configuration\n"
-"suits you. It will also propose to change it by displaying a list of valid\n"
-"modes it could find, asking you to select one.\n"
-"\n"
-"As a last resort, if you still cannot get X to work, choose \"Change\n"
-"graphics card\", select \"Unlisted card\", and when prompted on which\n"
-"server, choose \"FBDev\". This is a failsafe option which works with any\n"
-"modern graphics card. Then choose \"Test again\" to be sure."
-msgstr ""
-
-#: ../../help.pm_.c:249
-msgid ""
-"Finally, you will be asked whether you want to see the graphical interface\n"
-"at boot. Note this question will be asked even if you chose not to test the\n"
-"configuration. Obviously, you want to answer \"No\" if your machine is to\n"
-"act as a server, or if you were not successful in getting the display\n"
-"configured."
-msgstr ""
-
-#: ../../help.pm_.c:256
-msgid ""
-"The Mandrake LinuxCD-ROM has a built-in rescue mode. You can access it by\n"
-"booting from the CD-ROM, press the >>F1<< key at boot and type >>rescue<<\n"
-"at the prompt. But in case your computer cannot boot from the CD-ROM, you\n"
-"should come back to this step for help in at least two situations:\n"
-"\n"
-" * when installing the bootloader, DrakX will rewrite the boot sector (MBR)\n"
-"of your main disk (unless you are using another boot manager), to allow you\n"
-"to start up with either Windows or GNU/Linux (assuming you have Windows in\n"
-"your system). If you need to reinstall Windows, the Microsoft install\n"
-"process will rewrite the boot sector, and then you will not be able to\n"
-"start GNU/Linux!\n"
-"\n"
-" * if a problem arises and you cannot start up GNU/Linux from the hard "
-"disk,\n"
-"this floppy disk will be the only means of starting up GNU/Linux. It\n"
-"contains a fair number of system tools for restoring a system, which has\n"
-"crashed due to a power failure, an unfortunate typing error, a typo in a\n"
-"password, or any other reason.\n"
-"\n"
-"When you click on this step, you will be asked to enter a disk inside the\n"
-"drive. The floppy disk you will insert must be empty or contain data which\n"
-"you do not need. You will not have to format it since DrakX will rewrite\n"
-"the whole disk."
-msgstr ""
-
-#: ../../help.pm_.c:280
-msgid ""
-"At this point, you need to choose where you want to install the Mandrake\n"
-"Linux operating system on your hard drive. If your hard drive is empty or\n"
-"if an existing operating system is using all the available space, you will\n"
-"need to partition it. Basically, partitioning a hard drive consists of\n"
-"logically dividing it to create space to install your new Mandrake Linux\n"
-"system.\n"
-"\n"
-"Because the partitioning process' effects are usually irreversible,\n"
-"partitioning can be intimidating and stressful if you are an inexperienced\n"
-"user. Fortunately, there is a wizard which simplifies this process. Before\n"
-"beginning, please consult the manual and take your time.\n"
-"\n"
-"If you are running the installation in Expert mode, you will enter\n"
-"DiskDrake, the Mandrake Linux partitioning tool, which allows you to\n"
-"fine-tune your partitions. See the DiskDrake section in the ``User Guide''.\n"
-"From the installation interface, you can use the wizards as described here\n"
-"by clicking the dialog's \"Wizard\" button.\n"
-"\n"
-"If partitions have already been defined, either from a previous\n"
-"installation or from another partitioning tool, simply select those to\n"
-"install your Linux system.\n"
-"\n"
-"If partitions are not defined, you will need to create them using the\n"
-"wizard. Depending on your hard drive configuration, several options are\n"
-"available:\n"
-"\n"
-" * \"Use free space\": this option will simply lead to an automatic\n"
-"partitioning of your blank drive(s). You will not be prompted further;\n"
-"\n"
-" * \"Use existing partition\": the wizard has detected one or more existing\n"
-"Linux partitions on your hard drive. If you want to use them, choose this\n"
-"option;\n"
-"\n"
-" * \"Use the free space on the Windows; partition\": if MicrosoftWindows is\n"
-"installed on your hard drive and takes all the space available on it, you\n"
-"have to create free space for Linux data. To do so, you can delete your\n"
-"MicrosoftWindows partition and data (see ``Erase entire disk'' or ``Expert\n"
-"mode'' solutions) or resize your MicrosoftWindows partition. Resizing can\n"
-"be performed without the loss of any data, provided you previously\n"
-"defragment the Windows partition. Backing up your data won't hurt either..\n"
-"This solution is recommended if you want to use both Mandrake Linux and\n"
-"MicrosoftWindows on the same computer.\n"
-"\n"
-" Before choosing this option, please understand that after this "
-"procedure,\n"
-"the size of your MicrosoftWindows partition will be smaller than at the\n"
-"present time. You will have less free space under MicrosoftWindows to store\n"
-"your data or to install new software;\n"
-"\n"
-" * \"Erase entire disk\": if you want to delete all data and all partitions\n"
-"present on your hard drive and replace them with your new Mandrake Linux\n"
-"system, choose this option. Be careful with this solution because you will\n"
-"not be able to revert your choice after you confirm;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Remove Windows\": this will simply erase everything on the drive and\n"
-"begin fresh, partitioning everything from scratch. All data on your disk\n"
-"will be lost;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Expert mode\": choose this option if you want to manually partition\n"
-"your hard drive. Be careful it is a powerful but dangerous choice. You can\n"
-"very easily lose all your data. Hence, do not choose this unless you know\n"
-"what you are doing."
-msgstr ""
-
-#: ../../help.pm_.c:347
-msgid ""
-"There you are. Installation is now complete and your GNU/Linux system is\n"
-"ready to use. Just click \"OK\" to reboot the system. You can start\n"
-"GNU/Linux or Windows, whichever you prefer (if you are dual-booting), as\n"
-"soon as the computer has booted up again.\n"
-"\n"
-"The \"Advanced\" button (in Expert mode only) shows two more buttons to:\n"
-"\n"
-" * \"generate auto-install floppy\": to create an installation floppy disk\n"
-"which will automatically perform a whole installation without the help of\n"
-"an operator, similar to the installation you just configured.\n"
-"\n"
-" Note that two different options are available after clicking the button:\n"
-"\n"
-" * \"Replay\". This is a partially automated installation as the\n"
-"partitioning step (and only this one) remains interactive;\n"
-"\n"
-" * \"Automated\". Fully automated installation: the hard disk is "
-"completely\n"
-"rewritten, all data is lost.\n"
-"\n"
-" This feature is very handy when installing a great number of similar\n"
-"machines. See the Auto install section on our web site;\n"
-"\n"
-" * \"Save packages selection\"(*): saves the package selection as done\n"
-"previously. Then, when doing another installation, insert the floppy inside\n"
-"the drive and run the installation going to the help screen by pressing on\n"
-"the [F1] key, and by issuing >>linux defcfg=\"floppy\"<<.\n"
-"\n"
-"(*) You need a FAT-formatted floppy (to create one under GNU/Linux, type\n"
-"\"mformat a:\")"
-msgstr ""
-
-#: ../../help.pm_.c:378
-msgid ""
-"Any partitions that have been newly defined must be formatted for use\n"
-"(formatting means creating a filesystem).\n"
-"\n"
-"At this time, you may wish to reformat some already existing partitions to\n"
-"erase any data they contain. If you wish to do that, please select those\n"
-"partitions as well.\n"
-"\n"
-"Please note that it is 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\n"
-"reformat partitions containing data that you wish to keep (typically\n"
-"\"/home\").\n"
-"\n"
-"Please be careful when selecting partitions. After formatting, all data on\n"
-"the selected partitions will be deleted and you will not be able to recover\n"
-"any of it.\n"
-"\n"
-"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"
-"Mandrake Linux operating system installation.\n"
-"\n"
-"Click on \"Advanced\" if you wish to select partitions that will be checked\n"
-"for bad blocks on the disk."
-msgstr ""
-
-#: ../../help.pm_.c:404
-msgid ""
-"Your new Mandrake Linux operating system is currently being installed.\n"
-"Depending on the number of packages you will be installing and the speed of\n"
-"your computer, this operation could take from a few minutes to a\n"
-"significant amount of time.\n"
-"\n"
-"Please be patient."
-msgstr ""
-
-#: ../../help.pm_.c:412
-msgid ""
-"At the time you are installing Mandrake Linux, it is likely that some\n"
-"packages have been updated since the initial release. Some bugs may have\n"
-"been fixed, and security issues solved. To allow you to benefit from these\n"
-"updates, you are now proposed to download them from the Internet. Choose\n"
-"\"Yes\" if you have a working Internet connection, or \"No\" if you prefer\n"
-"to install updated packages later.\n"
-"\n"
-"Choosing \"Yes\" displays a list of places from which updates can be\n"
-"retrieved. Choose the one nearest you. Then a package-selection tree\n"
-"appears: review the selection, and press \"Install\" to retrieve and\n"
-"install the selected package(s), or \"Cancel\" to abort."
-msgstr ""
-
-#: ../../help.pm_.c:425
-msgid ""
-"Before continuing, you should read carefully the terms of the license. It\n"
-"covers the whole Mandrake Linux 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."
-msgstr ""
-
-#: ../../help.pm_.c:432
-msgid ""
-"At this point, it is time to choose the security level desired for the\n"
-"machine. As a rule of thumb, the more exposed the machine is, and the more\n"
-"the data stored in it is crucial, the higher the security level should be.\n"
-"However, a higher security level is generally obtained at the expense of\n"
-"easiness of use. Refer to the \"msec\" chapter of the ``Reference Manual''\n"
-"to get more information about the meaning of these levels.\n"
-"\n"
-"If you do not know what to choose, keep the default option."
-msgstr ""
-
-#: ../../help.pm_.c:442
-msgid ""
-"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandrake Linux 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"
-"partitions must be defined.\n"
-"\n"
-"To create partitions, you must first select a hard 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"
-"\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"
-"\n"
-" * \"More\": gives access to additional features:\n"
-"\n"
-" * \"Save partition table\": saves the partition table to a floppy. "
-"Useful\n"
-"for later partition-table recovery if necessary. It is strongly recommended\n"
-"to perform this step;\n"
-"\n"
-" * \"Restore partition table\": allows to restore a previously saved\n"
-"partition table from floppy disk;\n"
-"\n"
-" * \"Rescue partition table\": if your partition table is damaged, you "
-"can\n"
-"try to recover it using this option. Please be careful and remember that it\n"
-"can fail;\n"
-"\n"
-" * \"Reload partition table\": discards all changes and loads your "
-"initial\n"
-"partition table;\n"
-"\n"
-" * \"Removable media automounting\": unchecking this option will force "
-"users\n"
-"to manually mount and unmount removable medias such as floppies and\n"
-"CD-ROMs.\n"
-"\n"
-" * \"Wizard\": 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 knowledge of\n"
-"partitioning;\n"
-"\n"
-" * \"Undo\": use this option to cancel your changes;\n"
-"\n"
-" * \"Toggle to normal/expert mode\": allows additional actions on "
-"partitions\n"
-"(type, options, format) and gives more information;\n"
-"\n"
-" * \"Done\": when you are finished partitioning your hard 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"
-"partitions using [Tab] and [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"
-"\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_.c:513
-msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
-"Please choose the one you want to resize in order to install your new\n"
-"Mandrake Linux 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"
-"\"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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard 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"
-"disk or partition is called \"C:\")."
-msgstr ""
-
-#: ../../help.pm_.c:544
-msgid "Please be patient. This operation can take several minutes."
-msgstr ""
-
-#: ../../help.pm_.c:547
-msgid ""
-"DrakX now needs to know if you want to perform a default (\"Recommended\")\n"
-"installation or if you want to have greater control (\"Expert\"). You can\n"
-"also choose to do a new install or an upgrade of an existing Mandrake Linux\n"
-"system:\n"
-"\n"
-" * \"Install\": completely wipes out the old system. In fact, depending on\n"
-"what currently holds your machine, you will be able to keep some old (Linux\n"
-"or other) partitions unchanged;\n"
-"\n"
-" * \"Upgrade\": this installation class allows to simply update the "
-"packages\n"
-"currently installed on your Mandrake Linux system. It keeps the current\n"
-"partitions of your hard drives as well as user configurations. All other\n"
-"configuration steps remain available with respect to plain installation;\n"
-"\n"
-" * \"Upgrade Packages Only\": this brand new class allows to upgrade an\n"
-"existing Mandrake Linux system while keeping all system configurations\n"
-"unchanged. Adding new packages to the current installation is also\n"
-"possible.\n"
-"\n"
-"Upgrades should work fine for Mandrake Linux systems starting from \"8.1\"\n"
-"release.\n"
-"\n"
-"Depending on your knowledge of GNU/Linux, select one of the following\n"
-"choices:\n"
-"\n"
-" * Recommended: choose this if you have never installed a GNU/Linux\n"
-"operating system. The installation will be very easy and you will only be\n"
-"asked a few questions;\n"
-"\n"
-" * Expert: if you have a good knowledge of GNU/Linux, you can choose this\n"
-"installation class. The expert installation will allow you to perform a\n"
-"highly-customized installation. Answering some of the questions can be\n"
-"difficult if you do not have a good knowledge of GNU/Linux, so do not\n"
-"choose this unless you know what you are doing."
-msgstr ""
-
-#: ../../help.pm_.c:583
-msgid ""
-"Normally, DrakX selects the right keyboard for you (depending on the\n"
-"language you have chosen) and you won't even see this step. However, you\n"
-"might not have a keyboard that corresponds exactly to your language: for\n"
-"example, if you are an English speaking Swiss person, you may still want\n"
-"your keyboard to be a Swiss keyboard. Or if you speak English but are\n"
-"located in Quebec, you may find yourself in the same situation. In both\n"
-"cases, you will have to go back to this installation step and select an\n"
-"appropriate keyboard from the list.\n"
-"\n"
-"Click on the \"More\" button to be presented with the complete list of\n"
-"supported keyboards."
-msgstr ""
-
-#: ../../help.pm_.c:596
-msgid ""
-"Please choose your preferred language for installation and system usage.\n"
-"\n"
-"Clicking on the \"Advanced\" button will allow you to select other\n"
-"languages to be installed on your workstation. Selecting other languages\n"
-"will install the language-specific files for system documentation and\n"
-"applications. For example, if you will host users from Spain on your\n"
-"machine, select English as the main language in the tree view and in the\n"
-"Advanced section click on the box corresponding to \"Spanish|Spain\".\n"
-"\n"
-"Note that multiple languages may be installed. Once you have selected any\n"
-"additional locales, click the \"OK\" button to continue."
-msgstr ""
-
-#: ../../help.pm_.c:609
-msgid ""
-"DrakX generally detects the number of buttons your mouse has. If not, it\n"
-"assumes you have a two-button mouse and will set it up for third-button\n"
-"emulation. DrakX will automatically know whether it is a PS/2, serial or\n"
-"USB mouse.\n"
-"\n"
-"If you wish to specify a different type of mouse select the appropriate\n"
-"type from the provided list.\n"
-"\n"
-"If you choose a mouse other than the default, a test screen will be\n"
-"displayed. Use the buttons and wheel to verify that the settings are\n"
-"correct. If the mouse is not working well, press the space bar or [Return]\n"
-"to \"Cancel\" and choose again."
-msgstr ""
-
-#: ../../help.pm_.c:623
-msgid ""
-"Please select the correct port. For example, the \"COM1\" port under\n"
-"Windows is named \"ttyS0\" under GNU/Linux."
-msgstr ""
-
-#: ../../help.pm_.c:627
-msgid ""
-"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 choose\n"
-"not to enter a password, but we strongly advise you against this if only\n"
-"for one reason: do not think that because you booted GNU/Linux that your\n"
-"other operating systems are safe from mistakes. Since \"root\" can overcome\n"
-"all limitations and unintentionally erase all data on partitions by\n"
-"carelessly accessing the partitions themselves, it is important for it to\n"
-"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."
-msgstr ""
-
-#: ../../help.pm_.c:663
-msgid ""
-"LILO and grub are GNU/Linux bootloaders. This stage, normally, is totally\n"
-"automated. In fact, DrakX analyzes the disk boot sector and acts\n"
-"accordingly, depending on what it finds here:\n"
-"\n"
-" * if a Windows boot sector is found, it will replace it with a grub/LILO\n"
-"boot sector. Hence, you will be able to load either GNU/Linux or another\n"
-"OS;\n"
-"\n"
-" * if a grub or LILO boot sector is found, it will replace it with a new\n"
-"one.\n"
-"\n"
-"If in doubt, DrakX will display a dialog with various options.\n"
-"\n"
-" * \"Bootloader to use\": you have three choices:\n"
-"\n"
-" * \"GRUB\": if you prefer grub (text menu).\n"
-"\n"
-" * \"LILO with graphical menu\": if you prefer LILO with its graphical\n"
-"interface.\n"
-"\n"
-" * \"LILO with text menu\": if you prefer LILO with its text menu "
-"interface.\n"
-"\n"
-" * \"Boot device\": in most cases, you will not change the default\n"
-"(\"/dev/hda\"), but if you prefer, the bootloader can be installed on the\n"
-"second hard drive (\"/dev/hdb\"), or even on a floppy disk (\"/dev/fd0\");\n"
-"\n"
-" * \"Delay before booting the default image\": when rebooting the computer,\n"
-"this is the delay granted to the user to choose in the bootloader menu,\n"
-"another boot entry than the default one.\n"
-"\n"
-"!! Beware that if you choose not to install a bootloader (by selecting\n"
-"\"Cancel\" here), you must ensure that you have a way to boot your Mandrake\n"
-"Linux system! Also, be sure you know what you do before changing any of the\n"
-"options. !!\n"
-"\n"
-"Clicking the \"Advanced\" button in this dialog will offer many advanced\n"
-"options, which are reserved to the expert user.\n"
-"\n"
-"After you have configured the general bootloader parameters, the list of\n"
-"boot options which will be available at boot time will be displayed.\n"
-"\n"
-"If there is another operating system installed on your machine, it will\n"
-"automatically be added to the boot menu. Here, you can choose to fine-tune\n"
-"the existing options. Select an entry and click \"Modify\" to modify or\n"
-"remove it; \"Add\" creates a new entry; and \"Done\" goes on to the next\n"
-"installation step."
-msgstr ""
-
-#: ../../help.pm_.c:711
-msgid ""
-"LILO (the LInux LOader) and grub are bootloaders: they are able to boot\n"
-"either GNU/Linux or any other operating system present on your computer.\n"
-"Normally, these other operating systems are correctly detected and\n"
-"installed. If this is not the case, you can add an entry by hand in this\n"
-"screen. Be careful to choose the correct parameters.\n"
-"\n"
-"You may also not want to give access to these other operating systems to\n"
-"anyone. In which case, you can delete the corresponding entries. But then,\n"
-"you will need a boot disk in order to boot those other operating systems!"
-msgstr ""
-
-#: ../../help.pm_.c:722
-msgid ""
-"You must indicate where you wish to place the information required to boot\n"
-"to GNU/Linux.\n"
-"\n"
-"Unless you know exactly what you are doing, choose \"First sector of drive\n"
-"(MBR)\"."
-msgstr ""
-
-#: ../../help.pm_.c:729
-msgid ""
-"Here, we select a printing system for your computer. Other OSs may offer\n"
-"you one, but Mandrake Linux offers three.\n"
-"\n"
-" * \"pdq\" which means ``print, don't queue'', is the choice if you have a\n"
-"direct connection to your printer and you want to be able to panic out of\n"
-"printer jams, and you do not have networked printers. It will handle only\n"
-"very simple network cases and is somewhat slow for networks. Pick \"pdq\"\n"
-"if this is your maiden voyage to GNU/Linux. You can change your choices\n"
-"after installation by running PrinterDrake from the Mandrake Control Center\n"
-"and clicking the expert button.\n"
-"\n"
-" * \"CUPS\"``Common Unix Printing System'', is excellent at printing to "
-"your\n"
-"local printer and also halfway-around the planet. It is simple and can act\n"
-"as a server or a client for the ancient \"lpd\" printing system. Hence, it\n"
-"is compatible with the systems that went before. It can do many tricks, but\n"
-"the basic setup is almost as easy as \"pdq\". If you need this to emulate\n"
-"an \"lpd\" server, you must turn on the \"cups-lpd\" daemon. It has\n"
-"graphical front-ends for printing or choosing printer options.\n"
-"\n"
-" * \"lprNG\"``line printer daemon New Generation''. This system can do\n"
-"approximately the same things the others can do, but it will print to\n"
-"printers mounted on a Novell Network, because it supports the IPX protocol,\n"
-"and it can print directly to shell commands. If you have need of Novell or\n"
-"printing to commands without using a separate pipe construct, use lprNG.\n"
-"Otherwise, CUPS is preferable as it is simpler and better at working over\n"
-"networks."
-msgstr ""
-
-#: ../../help.pm_.c:757
-msgid ""
-"DrakX now detects any IDE device present in your computer. It will also\n"
-"scan for one or more PCI SCSI card(s) on your system. If a SCSI card is\n"
-"found, DrakX will automatically install the appropriate driver.\n"
-"\n"
-"Because hardware detection does not always detect a piece of hardware,\n"
-"DrakX will ask you to confirm if a PCI SCSI card is present. Click \"Yes\"\n"
-"if you know that there is a SCSI card installed in your machine. You will\n"
-"be presented a list of SCSI cards to choose from. Click \"No\" if you have\n"
-"no SCSI hardware. If you are unsure, you can check the list of hardware\n"
-"detected in your machine by selecting \"See hardware info\" and clicking\n"
-"\"OK\". Examine the list of hardware and then click on the \"OK\" button to\n"
-"return to the SCSI interface question.\n"
-"\n"
-"If you have to manually specify your adapter, DrakX will ask if you want to\n"
-"specify options for it. You should allow DrakX to probe the hardware for\n"
-"the card-specific options which the hardware needs to initialize. This\n"
-"usually works well.\n"
-"\n"
-"If DrakX is not able to probe for the options which need to be passed, you\n"
-"will need to provide options to the driver manually. Please review the\n"
-"``User Guide'' (chapter 3, in the ``Collecting Information on Your\n"
-"Hardware'' section) for hints on retrieving the parameters required from\n"
-"hardware documentation, from the manufacturer's web site (if you have\n"
-"Internet access) or from MicrosoftWindows (if you used this hardware with\n"
-"Windows on your system)."
-msgstr ""
-
-#: ../../help.pm_.c:784
-msgid ""
-"You can add additional entries for yaboot, either for other operating\n"
-"systems, alternate kernels, or for an emergency boot image.\n"
-"\n"
-"For other OSs, the entry consists only of a label and the \"root\"\n"
-"partition.\n"
-"\n"
-"For Linux, there are a few possible options:\n"
-"\n"
-" * Label: this is simply the name you will have to type at the yaboot "
-"prompt\n"
-"to select this boot option;\n"
-"\n"
-" * Image: this would be the name of the kernel to boot. Typically, vmlinux\n"
-"or a variation of vmlinux with an extension;\n"
-"\n"
-" * Root: the \"root\" device or ``/'' for your Linux installation;\n"
-"\n"
-" * Append: on Apple hardware, the kernel append option is used quite often\n"
-"to assist in initializing video hardware, or to enable keyboard mouse\n"
-"button emulation for the often lacking 2nd and 3rd mouse buttons on a stock\n"
-"Apple mouse. The following are some examples:\n"
-"\n"
-" video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111 "
-"hda=autotune\n"
-"\n"
-" video=atyfb:vmode:12,cmode:24 adb_buttons=103,111\n"
-"\n"
-" * Initrd: this option can be used either to load initial modules, before\n"
-"the boot device is available, or to load a ramdisk image for an emergency\n"
-"boot situation;\n"
-"\n"
-" * Initrd-size: the default ramdisk size is generally 4,096 bytes. If you\n"
-"need to allocate a large ramdisk, this option can be used;\n"
-"\n"
-" * Read-write: normally the \"root\" partition is initially brought up in\n"
-"read-only, to allow a file system check before the system becomes ``live''.\n"
-"Here, you can override this option;\n"
-"\n"
-" * NoVideo: should the Apple video hardware prove to be exceptionally\n"
-"problematic, you can select this option to boot in ``novideo'' mode, with\n"
-"native frame buffer support;\n"
-"\n"
-" * Default: selects this entry as being the default Linux selection,\n"
-"selectable by just pressing ENTER at the yaboot prompt. This entry will\n"
-"also be highlighted with a ``*'', if you press [Tab] to see the boot\n"
-"selections."
-msgstr ""
-
-#: ../../help.pm_.c:830
-msgid ""
-"Yaboot is a bootloader for NewWorld MacIntosh hardware. It is able to boot\n"
-"either GNU/Linux, MacOS or MacOSX if present on your computer. Normally,\n"
-"these other operating systems are correctly detected and installed. If this\n"
-"is not the case, you can add an entry by hand in this screen. Be careful to\n"
-"choose the correct parameters.\n"
-"\n"
-"Yaboot's main options are:\n"
-"\n"
-" * Init Message: a simple text message displayed before the boot prompt;\n"
-"\n"
-" * Boot Device: indicates where you want to place the information required\n"
-"to boot to GNU/Linux. Generally, you set up a bootstrap partition earlier\n"
-"to hold this information;\n"
-"\n"
-" * Open Firmware Delay: unlike LILO, there are two delays available with\n"
-"yaboot. The first delay is measured in seconds and at this point, you can\n"
-"choose between CD, OF boot, MacOS or Linux;\n"
-"\n"
-" * Kernel Boot Timeout: this timeout is similar to the LILO boot delay.\n"
-"After selecting Linux, you will have this delay in 0.1 second before your\n"
-"default kernel description is selected;\n"
-"\n"
-" * Enable CD Boot?: checking this option allows you to choose ``C'' for CD\n"
-"at the first boot prompt;\n"
-"\n"
-" * Enable OF Boot?: checking this option allows you to choose ``N'' for "
-"Open\n"
-"Firmware at the first boot prompt;\n"
-"\n"
-" * Default OS: you can select which OS will boot by default when the Open\n"
-"Firmware Delay expires."
-msgstr ""
-
-#: ../../help.pm_.c:862
-msgid ""
-"Here are presented various parameters concerning your machine. Depending on\n"
-"your installed hardware, you may or not, see the following entries:\n"
-"\n"
-" * \"Mouse\": check the current mouse configuration and click on the button\n"
-"to change it if necessary;\n"
-"\n"
-" * \"Keyboard\": check the current keyboard map configuration and click on\n"
-"the button to change that if necessary;\n"
-"\n"
-" * \"Timezone\": DrakX, by default, guesses your time zone from the "
-"language\n"
-"you have chosen. But here again, as for the choice of a keyboard, you may\n"
-"not be in the country for which the chosen language should correspond.\n"
-"Hence, you may need to click on the \"Timezone\" button in order to\n"
-"configure the clock according to the time zone you are in;\n"
-"\n"
-" * \"Printer\": clicking on the \"No Printer\" button will open the printer\n"
-"configuration wizard;\n"
-"\n"
-" * \"Sound card\": if a sound card is detected on your system, it is\n"
-"displayed here. No modification possible at installation time;\n"
-"\n"
-" * \"TV card\": if a TV card is detected on your system, it is displayed\n"
-"here. No modification possible at installation time;\n"
-"\n"
-" * \"ISDN card\": if an ISDN card is detected on your system, it is\n"
-"displayed here. You can click on the button to change the parameters\n"
-"associated with it."
-msgstr ""
-
-#: ../../help.pm_.c:891
-msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandrake Linux partition. Be careful, all data present on it will be lost\n"
-"and will not be recoverable!"
-msgstr ""
-
-#: ../../help.pm_.c:896
-msgid ""
-"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"
-"any Windows data.\n"
-"\n"
-"Click on \"Cancel\" to cancel this operation without losing any data and\n"
-"partitions present on this hard drive."
-msgstr ""
-
-#: ../../install2.pm_.c:113
-#, c-format
-msgid ""
-"Can't 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 ""
-
-#: ../../install2.pm_.c:169
-#, c-format
-msgid "You must also format %s"
-msgstr ""
-
-#: ../../install_any.pm_.c:411
-#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They don't have any known security\n"
-"issues, but some new could be found. In that case, you must make sure to "
-"upgrade\n"
-"as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
-msgstr ""
-
-#: ../../install_any.pm_.c:447
-msgid "Can't use broadcast with no NIS domain"
-msgstr "NIS Ł„Ų§ ŲŖŲ³Ų·ŁŲ¹ Ų§ Ų³ŲŖŲ¹Ł…Ų§Ł„ Ł‡Ų° Ų§ Ų§Ł„ŲØŲ±Ł†Ų§Ł…Ų¬ Ł…Ų¹"
-
-#: ../../install_any.pm_.c:793
-#, c-format
-msgid "Insert a FAT formatted floppy in drive %s"
-msgstr ""
-
-#: ../../install_any.pm_.c:797
-msgid "This floppy is not FAT formatted"
-msgstr ""
-
-#: ../../install_any.pm_.c:809
-msgid ""
-"To use this saved packages selection, boot installation with ``linux "
-"defcfg=floppy''"
-msgstr ""
-
-#: ../../install_any.pm_.c:831 ../../partition_table.pm_.c:763
-#, c-format
-msgid "Error reading file %s"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:23
-#, c-format
-msgid ""
-"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
-"You can find some information about them at: %s"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:58
-msgid ""
-"You must have a root partition.\n"
-"For this, create a partition (or click on an existing one).\n"
-"Then choose action ``Mount point'' and set it to `/'"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:63
-msgid "You must have a swap partition"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:64
-msgid ""
-"You don't have a swap partition\n"
-"\n"
-"Continue anyway?"
-msgstr "Ų§Ų³ŲŖŁ…Ų±Ł‘ ŲØŲ£ŁŁ‘Ų© Ų­Ų§Ł„"
-
-#: ../../install_interactive.pm_.c:67 ../../install_steps.pm_.c:163
-msgid "You must have a FAT partition mounted in /boot/efi"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:90
-msgid "Use free space"
-msgstr "Ų§Ų³ŲŖŲ¹Ł…Ł„ Ł…ŁŲ§Ł†Ų§ Ų­Ų±Ų§"
-
-#: ../../install_interactive.pm_.c:92
-msgid "Not enough free space to allocate new partitions"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:100
-msgid "Use existing partition"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:102
-msgid "There is no existing partition to use"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:109
-msgid "Use the Windows partition for loopback"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:112
-msgid "Which partition do you want to use for Linux4Win?"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:114
-msgid "Choose the sizes"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:115
-msgid "Root partition size in MB: "
-msgstr ""
-
-#: ../../install_interactive.pm_.c:116
-msgid "Swap partition size in MB: "
-msgstr ""
-
-#: ../../install_interactive.pm_.c:125
-msgid "Use the free space on the Windows partition"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:128
-msgid "Which partition do you want to resize?"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:130
-msgid "Computing Windows filesystem bounds"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:133
-#, c-format
-msgid ""
-"The FAT resizer is unable to handle your partition, \n"
-"the following error occured: %s"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:136
-msgid "Your Windows partition is too fragmented, please run ``defrag'' first"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:137
-msgid ""
-"WARNING!\n"
-"\n"
-"DrakX will now resize your Windows partition. Be careful:\n"
-"this operation is dangerous. If you have not already done\n"
-"so, you should first exit the installation, run scandisk\n"
-"under Windows (and optionally run defrag), then restart the\n"
-"installation. You should also backup your data.\n"
-"When sure, press Ok."
-msgstr ""
-
-#: ../../install_interactive.pm_.c:147
-msgid "Which size do you want to keep for windows on"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:148
-#, c-format
-msgid "partition %s"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:155
-#, c-format
-msgid "FAT resizing failed: %s"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:170
-msgid ""
-"There is no FAT partitions to resize or to use as loopback (or not enough "
-"space left)"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:176
-msgid "Erase entire disk"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:176
-msgid "Remove Windows(TM)"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:179
-msgid "You have more than one hard drive, which one do you install linux on?"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:182
-#, c-format
-msgid "ALL existing partitions and their data will be lost on drive %s"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:190
-msgid "Custom disk partitioning"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:194
-msgid "Use fdisk"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:197
-#, c-format
-msgid ""
-"You can now partition %s.\n"
-"When you are done, don't forget to save using `w'"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:226
-msgid "You don't have enough free space on your Windows partition"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:242
-msgid "I can't find any room for installing"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:246
-msgid "The DrakX Partitioning wizard found the following solutions:"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:251
-#, c-format
-msgid "Partitioning failed: %s"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:261
-msgid "Bringing up the network"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:266
-msgid "Bringing down the network"
-msgstr ""
-
-#: ../../install_steps.pm_.c:76
-msgid ""
-"An error occurred, but I don't know how to handle it nicely.\n"
-"Continue at your own risk."
-msgstr ""
-
-#: ../../install_steps.pm_.c:205
-#, c-format
-msgid "Duplicate mount point %s"
-msgstr ""
-
-#: ../../install_steps.pm_.c:388
-msgid ""
-"Some important packages didn't get installed properly.\n"
-"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl Mandrake/RPMS/*.rpm"
-"\"\n"
-msgstr ""
-
-#: ../../install_steps.pm_.c:458
-#, c-format
-msgid "Welcome to %s"
-msgstr ""
-
-#: ../../install_steps.pm_.c:513 ../../install_steps.pm_.c:755
-msgid "No floppy drive available"
-msgstr ""
-
-#: ../../install_steps_auto_install.pm_.c:76
-#: ../../install_steps_stdio.pm_.c:22
-#, c-format
-msgid "Entering step `%s'\n"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:148
-msgid ""
-"Your system is low on resource. You may have some problem installing\n"
-"Mandrake Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
-"press `F1' when booting on CDROM, then enter `text'."
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:159 ../../install_steps_interactive.pm_.c:224
-msgid "Install Class"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:162
-msgid "Please choose one of the following classes of installation:"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:228
-#, c-format
-msgid ""
-"The total size for the groups you have selected is approximately %d MB.\n"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:230
-#, c-format
-msgid ""
-"If you wish to install less than this size,\n"
-"select the percentage of packages that you want to install.\n"
-"\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of 100%% will install all selected packages."
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:235
-#, c-format
-msgid ""
-"You have space on your disk for only %d%% of these packages.\n"
-"\n"
-"If you wish to install less than this,\n"
-"select the percentage of packages that you want to install.\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of %d%% will install as many packages as possible."
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:241
-msgid "You will be able to choose them more specifically in the next step."
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:243
-msgid "Percentage of packages to install"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:291 ../../install_steps_interactive.pm_.c:705
-msgid "Package Group Selection"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:323 ../../install_steps_interactive.pm_.c:720
-msgid "Individual package selection"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:346 ../../install_steps_interactive.pm_.c:645
-#, c-format
-msgid "Total size: %d / %d MB"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:391
-msgid "Bad package"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:392
-#, c-format
-msgid "Name: %s\n"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:393
-#, c-format
-msgid "Version: %s\n"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:394
-#, c-format
-msgid "Size: %d KB\n"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:395
-#, c-format
-msgid "Importance: %s\n"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:417
-msgid ""
-"You can't select this package as there is not enough space left to install it"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:422
-msgid "The following packages are going to be installed"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:423
-msgid "The following packages are going to be removed"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:435
-msgid "You can't select/unselect this package"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:447
-msgid "This is a mandatory package, it can't be unselected"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:449
-msgid "You can't unselect this package. It is already installed"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:453
-msgid ""
-"This package must be upgraded\n"
-"Are you sure you want to deselect it?"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:457
-msgid "You can't unselect this package. It must be upgraded"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:462
-msgid "Show automatically selected packages"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:463 ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Install"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:466
-msgid "Load/Save on floppy"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:467
-msgid "Updating package selection"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:472
-msgid "Minimal install"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:487 ../../install_steps_interactive.pm_.c:555
-msgid "Choose the packages you want to install"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:503 ../../install_steps_interactive.pm_.c:787
-msgid "Installing"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:509
-msgid "Estimating"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:516
-msgid "Time remaining "
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:528
-msgid "Please wait, preparing installation"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:611
-#, c-format
-msgid "%d packages"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:616
-#, c-format
-msgid "Installing package %s"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-#: ../../standalone/drakautoinst_.c:203
-msgid "Accept"
-msgstr "Ł‚ŲØŁŁ„"
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-msgid "Refuse"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:658 ../../install_steps_interactive.pm_.c:812
-#, c-format
-msgid ""
-"Change your Cd-Rom!\n"
-"\n"
-"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
-"done.\n"
-"If you don't have it, press Cancel to avoid installation from this Cd-Rom."
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_gtk.pm_.c:676
-#: ../../install_steps_interactive.pm_.c:824
-#: ../../install_steps_interactive.pm_.c:828
-msgid "Go on anyway?"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_interactive.pm_.c:824
-msgid "There was an error ordering packages:"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:676 ../../install_steps_interactive.pm_.c:828
-msgid "There was an error installing packages:"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:10
-msgid ""
-"\n"
-"Warning\n"
-"\n"
-"Please read carefully the terms below. If you disagree with any\n"
-"portion, you are not allowed to install the next CD media. Press 'Refuse' \n"
-"to continue the installation without using these media.\n"
-"\n"
-"\n"
-"Some components contained in the next CD media are not governed\n"
-"by the GPL License or similar agreements. Each such component is then\n"
-"governed by the terms and conditions of its own specific license. \n"
-"Please read carefully and comply with such specific licenses before \n"
-"you use or redistribute the said components. \n"
-"Such licenses will in general prevent the transfer, duplication \n"
-"(except for backup purposes), redistribution, reverse engineering, \n"
-"de-assembly, de-compilation or modification of the component. \n"
-"Any breach of agreement will immediately terminate your rights under \n"
-"the specific license. Unless the specific license terms grant you such\n"
-"rights, you usually cannot install the programs on more than one\n"
-"system, or adapt it to be used on a network. In doubt, please contact \n"
-"directly the distributor or editor of the component. \n"
-"Transfer to third parties or copying of such components including the \n"
-"documentation is usually forbidden.\n"
-"\n"
-"\n"
-"All rights to the components of the next CD media belong to their \n"
-"respective authors and are protected by intellectual property and \n"
-"copyright laws applicable to software programs.\n"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:67
-msgid "An error occurred"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:85
-msgid "Do you really want to leave the installation?"
-msgstr "Ł‡Ł„ ŲŖŲ±ŁŲÆ ŁŲ¹Ł„Ų§ Ł…ŲŗŲ§ŲÆŲ±Ų© Ų§Ł„ŲŖŲ«ŲØŁŲŖŲ"
-
-#: ../../install_steps_interactive.pm_.c:108
-msgid "License agreement"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:109
-msgid ""
-"Introduction\n"
-"\n"
-"The operating system and the different components available in the Mandrake "
-"Linux distribution \n"
-"shall be called the \"Software Products\" hereafter. The Software Products "
-"include, but are not \n"
-"restricted to, the set of programs, methods, rules and documentation related "
-"to the operating \n"
-"system and the different components of the Mandrake Linux distribution.\n"
-"\n"
-"\n"
-"1. License Agreement\n"
-"\n"
-"Please read carefully this document. This document is a license agreement "
-"between you and \n"
-"MandrakeSoft S.A. which applies to the Software Products.\n"
-"By installing, duplicating or using the Software Products in any manner, you "
-"explicitly \n"
-"accept and fully agree to conform to the terms and conditions of this "
-"License. \n"
-"If you disagree with any portion of the License, you are not allowed to "
-"install, duplicate or use \n"
-"the Software Products. \n"
-"Any attempt to install, duplicate or use the Software Products in a manner "
-"which does not comply \n"
-"with the terms and conditions of this License is void and will terminate "
-"your rights under this \n"
-"License. Upon termination of the License, you must immediately destroy all "
-"copies of the \n"
-"Software Products.\n"
-"\n"
-"\n"
-"2. Limited Warranty\n"
-"\n"
-"The Software Products and attached documentation are provided \"as is\", "
-"with no warranty, to the \n"
-"extent permitted by law.\n"
-"MandrakeSoft S.A. will, in no circumstances and to the extent permitted by "
-"law, be liable for any special,\n"
-"incidental, direct or indirect damages whatsoever (including without "
-"limitation damages for loss of \n"
-"business, interruption of business, financial loss, legal fees and penalties "
-"resulting from a court \n"
-"judgment, or any other consequential loss) arising out of the use or "
-"inability to use the Software \n"
-"Products, even if MandrakeSoft S.A. has been advised of the possibility or "
-"occurance of such \n"
-"damages.\n"
-"\n"
-"LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN SOME "
-"COUNTRIES\n"
-"\n"
-"To the extent permitted by law, MandrakeSoft S.A. or its distributors will, "
-"in no circumstances, be \n"
-"liable for any special, incidental, direct or indirect damages whatsoever "
-"(including without \n"
-"limitation damages for loss of business, interruption of business, financial "
-"loss, legal fees \n"
-"and penalties resulting from a court judgment, or any other consequential "
-"loss) arising out \n"
-"of the possession and use of software components or arising out of "
-"downloading software components \n"
-"from one of Mandrake Linux sites which are prohibited or restricted in some "
-"countries by local laws.\n"
-"This limited liability applies to, but is not restricted to, the strong "
-"cryptography components \n"
-"included in the Software Products.\n"
-"\n"
-"\n"
-"3. The GPL License and Related Licenses\n"
-"\n"
-"The Software Products consist of components created by different persons or "
-"entities. Most \n"
-"of these components are governed under the terms and conditions of the GNU "
-"General Public \n"
-"Licence, hereafter called \"GPL\", or of similar licenses. Most of these "
-"licenses allow you to use, \n"
-"duplicate, adapt or redistribute the components which they cover. Please "
-"read carefully the terms \n"
-"and conditions of the license agreement for each component before using any "
-"component. Any question \n"
-"on a component license should be addressed to the component author and not "
-"to MandrakeSoft.\n"
-"The programs developed by MandrakeSoft S.A. are governed by the GPL License. "
-"Documentation written \n"
-"by MandrakeSoft S.A. is governed by a specific license. Please refer to the "
-"documentation for \n"
-"further details.\n"
-"\n"
-"\n"
-"4. Intellectual Property Rights\n"
-"\n"
-"All rights to the components of the Software Products belong to their "
-"respective authors and are \n"
-"protected by intellectual property and copyright laws applicable to software "
-"programs.\n"
-"MandrakeSoft S.A. reserves its rights to modify or adapt the Software "
-"Products, as a whole or in \n"
-"parts, by all means and for all purposes.\n"
-"\"Mandrake\", \"Mandrake Linux\" and associated logos are trademarks of "
-"MandrakeSoft S.A. \n"
-"\n"
-"\n"
-"5. Governing Laws \n"
-"\n"
-"If any portion of this agreement is held void, illegal or inapplicable by a "
-"court judgment, this \n"
-"portion is excluded from this contract. You remain bound by the other "
-"applicable sections of the \n"
-"agreement.\n"
-"The terms and conditions of this License are governed by the Laws of "
-"France.\n"
-"All disputes on the terms of this license will preferably be settled out of "
-"court. As a last \n"
-"resort, the dispute will be referred to the appropriate Courts of Law of "
-"Paris - France.\n"
-"For any question on this document, please contact MandrakeSoft S.A. \n"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:205
-#: ../../install_steps_interactive.pm_.c:1045
-#: ../../standalone/keyboarddrake_.c:28
-msgid "Keyboard"
-msgstr "Ł„ŁŲ­Ų© Ų§Ł„Ł…ŁŲ§ŲŖŁŲ­"
-
-#: ../../install_steps_interactive.pm_.c:206
-msgid "Please choose your keyboard layout."
-msgstr "Ų±Ų¬Ų§Ų, Ų§Ų®ŲŖŲ± Ł„ŁŲ­Ų© Ų§Ł„Ł…ŁŲ§ŲŖŁŲ­."
-
-#: ../../install_steps_interactive.pm_.c:207
-msgid "Here is the full list of keyboards available"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:224
-msgid "Which installation class do you want?"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Install/Update"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Is this an install or an update?"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:235
-msgid "Recommended"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:238
-#: ../../install_steps_interactive.pm_.c:241
-msgid "Expert"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Upgrade"
-msgstr "ŲŖŲ±Ł‚ŁŲ©"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Upgrade packages only"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:266
-msgid "Please choose the type of your mouse."
-msgstr "Ų±Ų¬Ų§Ų Ų§Ų®ŲŖŲ± Ł„ŲŗŲ© Ł†ŁŲ¹ Ų§Ł„ŁŲ£Ų±Ų©."
-
-#: ../../install_steps_interactive.pm_.c:272 ../../standalone/mousedrake_.c:65
-msgid "Mouse Port"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:273 ../../standalone/mousedrake_.c:66
-msgid "Please choose on which serial port your mouse is connected to."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:281
-msgid "Buttons emulation"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:283
-msgid "Button 2 Emulation"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:284
-msgid "Button 3 Emulation"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "Configuring PCMCIA cards..."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "PCMCIA"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "Configuring IDE"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "IDE"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:327
-msgid "no available partitions"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:330
-msgid "Scanning partitions to find mount points"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:338
-msgid "Choose the mount points"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:357
-#, c-format
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I can try to go on blanking bad partitions (ALL DATA will be lost!).\n"
-"The other solution is to disallow DrakX to modify the partition table.\n"
-"(the error is %s)\n"
-"\n"
-"Do you agree to loose all the partitions?\n"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:370
-msgid ""
-"DiskDrake failed to read correctly the partition table.\n"
-"Continue at your own risk!"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:386
-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 ""
-
-#: ../../install_steps_interactive.pm_.c:395
-msgid "No root partition found to perform an upgrade"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:396
-msgid "Root Partition"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:397
-msgid "What is the root partition (/) of your system?"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:411
-msgid "You need to reboot for the partition table modifications to take place"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:435
-msgid "Choose the partitions you want to format"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:436
-msgid "Check bad blocks?"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:462
-msgid "Formatting partitions"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:464
-#, c-format
-msgid "Creating and formatting file %s"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:467
-msgid "Not enough swap to fulfill installation, please add some"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:473
-msgid "Looking for available packages"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:479
-msgid "Finding packages to upgrade"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:496
-#, c-format
-msgid ""
-"Your system has not enough space left for installation or upgrade (%d > %d)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Complete (%dMB)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Minimum (%dMB)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Recommended (%dMB)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:568
-msgid ""
-"Please choose load or save package selection on floppy.\n"
-"The format is the same as auto_install generated floppies."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:571
-msgid "Load from floppy"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:573
-msgid "Loading from floppy"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:573
-msgid "Package selection"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:578
-msgid "Insert a floppy containing package selection"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:590
-msgid "Save on floppy"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:658
-msgid "Selected size is larger than available space"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:671
-msgid "Type of install"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:672
-msgid ""
-"You haven't selected any group of packages.\n"
-"Please choose the minimal installation you want:"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:675
-msgid "With X"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:677
-msgid "With basic documentation (recommended!)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:678
-msgid "Truly minimal install (especially no urpmi)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:762
-msgid ""
-"If you have all the CDs in the list below, click Ok.\n"
-"If you have none of those CDs, click Cancel.\n"
-"If only some CDs are missing, unselect them, then click Ok."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:767
-#, c-format
-msgid "Cd-Rom labeled \"%s\""
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:787
-msgid "Preparing installation"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:796
-#, c-format
-msgid ""
-"Installing package %s\n"
-"%d%%"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:842
-msgid "Post-install configuration"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:848
-#, c-format
-msgid "Please insert the Boot floppy used in drive %s"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:854
-#, c-format
-msgid "Please insert the Update Modules floppy in drive %s"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:874
-msgid ""
-"You have now the possibility to download software aimed for encryption.\n"
-"\n"
-"WARNING:\n"
-"\n"
-"Due to different general requirements applicable to these software and "
-"imposed\n"
-"by various jurisdictions, customer and/or end user of theses software "
-"should\n"
-"ensure that the laws of his/their jurisdiction allow him/them to download, "
-"stock\n"
-"and/or use these software.\n"
-"\n"
-"In addition customer and/or end user shall particularly be aware to not "
-"infringe\n"
-"the laws of his/their jurisdiction. Should customer and/or end user not\n"
-"respect the provision of these applicable laws, he/they will incure serious\n"
-"sanctions.\n"
-"\n"
-"In no event shall Mandrakesoft nor its manufacturers and/or suppliers be "
-"liable\n"
-"for special, indirect or incidental damages whatsoever (including, but not\n"
-"limited to loss of profits, business interruption, loss of commercial data "
-"and\n"
-"other pecuniary losses, and eventual liabilities and indemnification to be "
-"paid\n"
-"pursuant to a court decision) arising out of use, possession, or the sole\n"
-"downloading of these software, to which customer and/or end user could\n"
-"eventually have access after having sign up the present agreement.\n"
-"\n"
-"\n"
-"For any queries relating to these agreement, please contact \n"
-"Mandrakesoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:912
-msgid ""
-"You have now the possibility to download updated packages that have\n"
-"been released after the distribution has been made available.\n"
-"\n"
-"You will get security fixes or bug fixes, but you need to have an\n"
-"Internet connection configured to proceed.\n"
-"\n"
-"Do you want to install the updates ?"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:926
-msgid "Contacting Mandrake Linux web site to get the list of available mirrors"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:931
-msgid "Choose a mirror from which to get the packages"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:940
-msgid "Contacting the mirror to get the list of available packages"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:967
-msgid "Which is your timezone?"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:972
-msgid "Hardware clock set to GMT"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:973
-msgid "Automatic time synchronization (using NTP)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:980
-msgid "NTP Server"
-msgstr "Ų®Ų§ŲÆŁ… NTP"
-
-#: ../../install_steps_interactive.pm_.c:1014
-#: ../../install_steps_interactive.pm_.c:1022
-msgid "Remote CUPS server"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1015
-msgid "No printer"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1032
-msgid "Do you have an ISA sound card?"
-msgstr "ŲØŲ·Ų§Ł‚Ų© Ų§Ł„ŲµŁ‘ŁŲŖ ISA Ł‡Ł„ Ų¹Ł†ŲÆŁ Ų¹Ł†ŲÆ"
-
-#: ../../install_steps_interactive.pm_.c:1034
-msgid "Run \"sndconfig\" after installation to configure your sound card"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1036
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1041 ../../steps.pm_.c:27
-msgid "Summary"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1044
-msgid "Mouse"
-msgstr "Ų§Ł„ŁŲ£Ų±Ų©"
-
-#: ../../install_steps_interactive.pm_.c:1046
-msgid "Timezone"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1047 ../../printerdrake.pm_.c:2276
-#: ../../printerdrake.pm_.c:2354
-msgid "Printer"
-msgstr "Ų·Ų§ŲØŲ¹Ų©"
-
-#: ../../install_steps_interactive.pm_.c:1049
-msgid "ISDN card"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1052
-#: ../../install_steps_interactive.pm_.c:1054
-msgid "Sound card"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1056
-msgid "TV card"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1094
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1122
-msgid "LDAP"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1095
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1131
-msgid "NIS"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1096
-#: ../../install_steps_interactive.pm_.c:1118
-msgid "Local files"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1105
-#: ../../install_steps_interactive.pm_.c:1106 ../../steps.pm_.c:24
-msgid "Set root password"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1107
-msgid "No password"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1112
-#, c-format
-msgid "This password is too simple (must be at least %d characters long)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1118 ../../network/modem.pm_.c:49
-#: ../../standalone/draknet_.c:626 ../../standalone/logdrake_.c:172
-msgid "Authentication"
-msgstr "Ų§Ł„ŲŖŲ­Ł‚Ł‚"
-
-#: ../../install_steps_interactive.pm_.c:1126
-msgid "Authentication LDAP"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1127
-msgid "LDAP Base dn"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1128
-msgid "LDAP Server"
-msgstr "Ų®Ų§ŲÆŁ… LDAP"
-
-#: ../../install_steps_interactive.pm_.c:1134
-msgid "Authentication NIS"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1135
-msgid "NIS Domain"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1136
-msgid "NIS Server"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1171
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"SILO on your system, or another operating system removes SILO, or SILO "
-"doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures.\n"
-"\n"
-"If you want to create a bootdisk for your system, insert a floppy in the "
-"first\n"
-"drive and press \"Ok\"."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1187
-msgid "First floppy drive"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1188
-msgid "Second floppy drive"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1189 ../../printerdrake.pm_.c:1848
-msgid "Skip"
-msgstr "ŲŖŲ®Ų·Ł"
-
-#: ../../install_steps_interactive.pm_.c:1194
-#, c-format
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"LILO (or grub) on your system, or another operating system removes LILO, or "
-"LILO doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures. Would you like to create a bootdisk for your system?\n"
-"%s"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1200
-msgid ""
-"\n"
-"\n"
-"(WARNING! You're using XFS for your root partition,\n"
-"creating a bootdisk on a 1.44 Mb floppy will probably fail,\n"
-"because XFS needs a very large driver)."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1208
-msgid "Sorry, no floppy drive available"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1212
-msgid "Choose the floppy drive you want to use to make the bootdisk"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1216
-#, c-format
-msgid "Insert a floppy in %s"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1219
-msgid "Creating bootdisk"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1226
-msgid "Preparing bootloader"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1237
-msgid ""
-"You appear to have an OldWorld or Unknown\n"
-" machine, the yaboot bootloader will not work for you.\n"
-"The install will continue, but you'll\n"
-" need to use BootX to boot your machine"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1243
-msgid "Do you want to use aboot?"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1246
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1253
-msgid "Installing bootloader"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1259
-msgid "Installation of bootloader failed. The following error occured:"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1267
-#, c-format
-msgid ""
-"You may need to change your Open Firmware boot-device to\n"
-" enable the bootloader. If you don't 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\n"
-"At your next boot you should see the bootloader prompt."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1311
-#: ../../standalone/drakautoinst_.c:81
-#, c-format
-msgid "Insert a blank floppy in drive %s"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1315
-#: ../../standalone/drakautoinst_.c:83
-msgid "Creating auto install floppy"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1326
-msgid ""
-"Some steps are not completed.\n"
-"\n"
-"Do you really want to quit now?"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1337
-msgid ""
-"Congratulations, installation is complete.\n"
-"Remove the boot media and press return to reboot.\n"
-"\n"
-"\n"
-"For information on fixes which are available for this release of Mandrake "
-"Linux,\n"
-"consult the Errata available from:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/82errata.php3\n"
-"\n"
-"\n"
-"Information on configuring your system is available in the post\n"
-"install chapter of the Official Mandrake Linux User's Guide."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1354
-msgid "Generate auto install floppy"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1356
-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 ""
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Automated"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Replay"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1364
-msgid "Save packages selection"
-msgstr ""
-
-#: ../../install_steps_newt.pm_.c:22
-#, c-format
-msgid "Mandrake Linux Installation %s"
-msgstr ""
-
-#: ../../install_steps_newt.pm_.c:34
-msgid ""
-" <Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen "
-msgstr ""
-
-#: ../../interactive.pm_.c:87
-msgid "kdesu missing"
-msgstr ""
-
-#: ../../interactive.pm_.c:89 ../../interactive.pm_.c:100
-msgid "consolehelper missing"
-msgstr ""
-
-#: ../../interactive.pm_.c:152
-msgid "Choose a file"
-msgstr "ŲŲ®ŲŖŲ± Ł…Ł„Ł"
-
-#: ../../interactive.pm_.c:314
-msgid "Advanced"
-msgstr "Ł…ŲŖŁ‚ŲÆŁ…"
-
-#: ../../interactive.pm_.c:315
-msgid "Basic"
-msgstr ""
-
-#: ../../interactive.pm_.c:386
-msgid "Please wait"
-msgstr ""
-
-#: ../../interactive_gtk.pm_.c:605 ../../services.pm_.c:222
-msgid "Info"
-msgstr ""
-
-#: ../../interactive_gtk.pm_.c:715
-msgid "Expand Tree"
-msgstr ""
-
-#: ../../interactive_gtk.pm_.c:716
-msgid "Collapse Tree"
-msgstr ""
-
-#: ../../interactive_gtk.pm_.c:717
-msgid "Toggle between flat and group sorted"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:29 ../../interactive_stdio.pm_.c:147
-msgid "Bad choice, try again\n"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:30 ../../interactive_stdio.pm_.c:148
-#, c-format
-msgid "Your choice? (default %s) "
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:52
-#, c-format
-msgid ""
-"Entries you'll have to fill:\n"
-"%s"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:68
-#, c-format
-msgid "Your choice? (0/1, default `%s') "
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:93
-#, c-format
-msgid "Button `%s': %s"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:94
-msgid "Do you want to click on this button? "
-msgstr "Ł‡Ł„ ŲŖŲ±ŁŲÆ Ų§Ł„Ų¶ŲŗŲ· Ų¹Ł„Ł‰ Ł‡Ų°Ų§ Ų§Ł„Ų²Ų±Ų "
-
-#: ../../interactive_stdio.pm_.c:103
-#, c-format
-msgid "Your choice? (default `%s'%s) "
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:121
-#, c-format
-msgid "=> There are many things to choose from (%s).\n"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:124
-msgid ""
-"Please choose the first number of the 10-range you wish to edit,\n"
-"or just hit Enter to proceed.\n"
-"Your choice? "
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:137
-#, c-format
-msgid ""
-"=> Notice, a label changed:\n"
-"%s"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:144
-msgid "Re-submit"
-msgstr ""
-
-#: ../../keyboard.pm_.c:174 ../../keyboard.pm_.c:205
-msgid "Czech (QWERTZ)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:175 ../../keyboard.pm_.c:207
-msgid "German"
-msgstr "Ų§Ł„Ų£Ł„Ł…Ų§Ł†ŁŲ©"
-
-#: ../../keyboard.pm_.c:176
-msgid "Dvorak"
-msgstr ""
-
-#: ../../keyboard.pm_.c:177 ../../keyboard.pm_.c:214
-msgid "Spanish"
-msgstr "Ų§Ł„ŲŲ³ŲØŲ§Ł†ŁŲ©"
-
-#: ../../keyboard.pm_.c:178 ../../keyboard.pm_.c:215
-msgid "Finnish"
-msgstr "Ų§Ł„ŁŁ†Ł„Ł†ŲÆŁŲ©"
-
-#: ../../keyboard.pm_.c:179 ../../keyboard.pm_.c:216
-msgid "French"
-msgstr "Ų§Ł„ŁŲ±Ł†Ų³ŁŲ©"
-
-#: ../../keyboard.pm_.c:180 ../../keyboard.pm_.c:241
-msgid "Norwegian"
-msgstr "Ų§Ł„Ł†Ų±ŁŁŲ¬ŁŲ©"
-
-#: ../../keyboard.pm_.c:181
-msgid "Polish"
-msgstr "Ų§Ł„ŲØŁŁ„Ł†ŲÆŁŲ©"
-
-#: ../../keyboard.pm_.c:182 ../../keyboard.pm_.c:249
-msgid "Russian"
-msgstr "Ų§Ł„Ų±ŁŲ³ŁŲ©"
-
-#: ../../keyboard.pm_.c:184 ../../keyboard.pm_.c:251
-msgid "Swedish"
-msgstr "Ų§Ł„Ų³ŁŁŲÆŁŲ©"
-
-#: ../../keyboard.pm_.c:185 ../../keyboard.pm_.c:266
-msgid "UK keyboard"
-msgstr ""
-
-#: ../../keyboard.pm_.c:186 ../../keyboard.pm_.c:267
-msgid "US keyboard"
-msgstr ""
-
-#: ../../keyboard.pm_.c:188
-msgid "Albanian"
-msgstr ""
-
-#: ../../keyboard.pm_.c:189
-msgid "Armenian (old)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:190
-msgid "Armenian (typewriter)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:191
-msgid "Armenian (phonetic)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:196
-msgid "Azerbaidjani (latin)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:198
-msgid "Belgian"
-msgstr "Ų§Ł„ŲØŁ„Ų¬ŁŁŁŲ©"
-
-#: ../../keyboard.pm_.c:199
-msgid "Bulgarian (phonetic)"
-msgstr "Ų§Ł„ŲØŁ„ŲŗŲ§Ų±ŁŲ© (ŲµŁŲŖŁŲ©)"
-
-#: ../../keyboard.pm_.c:200
-msgid "Bulgarian (BDS)"
-msgstr "Ų§Ł„ŲØŁ„ŲŗŲ§Ų±ŁŲ© (BDS)"
-
-#: ../../keyboard.pm_.c:201
-msgid "Brazilian (ABNT-2)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:202
-msgid "Belarusian"
-msgstr "Ų§Ł„ŲØŁŁ„Ų§Ų±ŁŲ³ŁŲ©"
-
-#: ../../keyboard.pm_.c:203
-msgid "Swiss (German layout)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:204
-msgid "Swiss (French layout)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:206
-msgid "Czech (QWERTY)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:208
-msgid "German (no dead keys)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:209
-msgid "Danish"
-msgstr "Ų§Ł„ŲÆŁ†Ł…Ų§Ų±ŁŁŲ©"
-
-#: ../../keyboard.pm_.c:210
-msgid "Dvorak (US)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:211
-msgid "Dvorak (Norwegian)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:212
-msgid "Dvorak (Swedish)"
-msgstr "Dvorak (Ų³ŁŁŲÆŁŲ©)"
-
-#: ../../keyboard.pm_.c:213
-msgid "Estonian"
-msgstr "Ų§Ł„ŲŲ³ŲŖŁŁ†ŁŲ©"
-
-#: ../../keyboard.pm_.c:217
-msgid "Georgian (\"Russian\" layout)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:218
-msgid "Georgian (\"Latin\" layout)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:219
-msgid "Greek"
-msgstr "ŁŁŁ†Ų§Ł†Ł"
-
-#: ../../keyboard.pm_.c:220
-msgid "Hungarian"
-msgstr "Ų§Ł„Ł…Ų¬Ų±ŁŲ© (Ų§Ł„Ł‡Ł†ŲŗŲ§Ų±ŁŲ©)"
-
-#: ../../keyboard.pm_.c:221
-msgid "Croatian"
-msgstr "Ų§Ł„ŁŲ±ŁŲ§ŲŖŁŲ©"
-
-#: ../../keyboard.pm_.c:222
-msgid "Israeli"
-msgstr "Ų§Ł„Ų¹ŲØŲ±ŁŲ©"
-
-#: ../../keyboard.pm_.c:223
-msgid "Israeli (Phonetic)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:224
-msgid "Iranian"
-msgstr ""
-
-#: ../../keyboard.pm_.c:225
-msgid "Icelandic"
-msgstr "Ų§Ł„Ų¢ŁŲ³Ł„Ų§Ł†ŲÆŁŲ©"
-
-#: ../../keyboard.pm_.c:226
-msgid "Italian"
-msgstr "Ų§Ł„ŲŁŲ·Ų§Ł„ŁŲ©"
-
-#: ../../keyboard.pm_.c:228
-msgid "Japanese 106 keys"
-msgstr ""
-
-#: ../../keyboard.pm_.c:231
-msgid "Korean keyboard"
-msgstr ""
-
-#: ../../keyboard.pm_.c:232
-msgid "Latin American"
-msgstr ""
-
-#: ../../keyboard.pm_.c:233
-msgid "Lithuanian AZERTY (old)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:235
-msgid "Lithuanian AZERTY (new)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:236
-msgid "Lithuanian \"number row\" QWERTY"
-msgstr ""
-
-#: ../../keyboard.pm_.c:237
-msgid "Lithuanian \"phonetic\" QWERTY"
-msgstr ""
-
-#: ../../keyboard.pm_.c:238
-msgid "Latvian"
-msgstr "Ų§Ł„Ł„Ų§ŲŖŁŁŲ©"
-
-#: ../../keyboard.pm_.c:239
-msgid "Macedonian"
-msgstr "Ų§Ł„Ł…Ł‚ŲÆŁŁ†ŁŲ©"
-
-#: ../../keyboard.pm_.c:240
-msgid "Dutch"
-msgstr ""
-
-#: ../../keyboard.pm_.c:242
-msgid "Polish (qwerty layout)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:243
-msgid "Polish (qwertz layout)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:244
-msgid "Portuguese"
-msgstr "Ų§Ł„ŲØŲ±ŲŖŲŗŲ§Ł„ŁŲ©"
-
-#: ../../keyboard.pm_.c:245
-msgid "Canadian (Quebec)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:247
-msgid "Romanian (qwertz)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:248
-msgid "Romanian (qwerty)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:250
-msgid "Russian (Yawerty)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:252
-msgid "Slovenian"
-msgstr "Ų§Ł„Ų³Ł„ŁŁŁŁ†ŁŲ©"
-
-#: ../../keyboard.pm_.c:253
-msgid "Slovakian (QWERTZ)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:254
-msgid "Slovakian (QWERTY)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:256
-msgid "Serbian (cyrillic)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:258
-msgid "Tamil"
-msgstr "Ų§Ł„ŲŖŲ§Ł…ŁŁ„"
-
-#: ../../keyboard.pm_.c:259
-msgid "Thai keyboard"
-msgstr ""
-
-#: ../../keyboard.pm_.c:261
-msgid "Tajik keyboard"
-msgstr ""
-
-#: ../../keyboard.pm_.c:262
-msgid "Turkish (traditional \"F\" model)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:263
-msgid "Turkish (modern \"Q\" model)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:265
-msgid "Ukrainian"
-msgstr "Ų§Ł„Ų£ŁŁŲ±Ų§Ł†ŁŲ©"
-
-#: ../../keyboard.pm_.c:268
-msgid "US keyboard (international)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:269
-msgid "Vietnamese \"numeric row\" QWERTY"
-msgstr ""
-
-#: ../../keyboard.pm_.c:270
-msgid "Yugoslavian (latin)"
-msgstr ""
-
-#: ../../keyboard.pm_.c:278
-msgid "Right Alt key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:279
-msgid "Both Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:280
-msgid "Control and Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:281
-msgid "CapsLock key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:282
-msgid "Ctrl and Alt keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:283
-msgid "Alt and Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:284
-msgid "\"Menu\" key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:285
-msgid "Left \"Windows\" key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:286
-msgid "Right \"Windows\" key"
-msgstr ""
-
-#: ../../loopback.pm_.c:32
-#, c-format
-msgid "Circular mounts %s\n"
-msgstr ""
-
-#: ../../lvm.pm_.c:88
-msgid "Remove the logical volumes first\n"
-msgstr ""
-
-#: ../../modules.pm_.c:826
-msgid ""
-"PCMCIA support no longer exist for 2.2 kernels. Please use a 2.4 kernel."
-msgstr ""
-
-#: ../../mouse.pm_.c:25
-msgid "Sun - Mouse"
-msgstr ""
-
-#: ../../mouse.pm_.c:32
-msgid "Logitech MouseMan+"
-msgstr ""
-
-#: ../../mouse.pm_.c:33
-msgid "Generic PS2 Wheel Mouse"
-msgstr ""
-
-#: ../../mouse.pm_.c:34
-msgid "GlidePoint"
-msgstr ""
-
-#: ../../mouse.pm_.c:36 ../../mouse.pm_.c:63
-msgid "Kensington Thinking Mouse"
-msgstr ""
-
-#: ../../mouse.pm_.c:37 ../../mouse.pm_.c:59
-msgid "Genius NetMouse"
-msgstr ""
-
-#: ../../mouse.pm_.c:38
-msgid "Genius NetScroll"
-msgstr ""
-
-#: ../../mouse.pm_.c:43 ../../mouse.pm_.c:68
-msgid "1 button"
-msgstr ""
-
-#: ../../mouse.pm_.c:44 ../../mouse.pm_.c:51
-msgid "Generic 2 Button Mouse"
-msgstr ""
-
-#: ../../mouse.pm_.c:45
-msgid "Generic"
-msgstr ""
-
-#: ../../mouse.pm_.c:46
-msgid "Wheel"
-msgstr ""
-
-#: ../../mouse.pm_.c:49
-msgid "serial"
-msgstr ""
-
-#: ../../mouse.pm_.c:52
-msgid "Generic 3 Button Mouse"
-msgstr ""
-
-#: ../../mouse.pm_.c:53
-msgid "Microsoft IntelliMouse"
-msgstr ""
-
-#: ../../mouse.pm_.c:54
-msgid "Logitech MouseMan"
-msgstr ""
-
-#: ../../mouse.pm_.c:55
-msgid "Mouse Systems"
-msgstr ""
-
-#: ../../mouse.pm_.c:57
-msgid "Logitech CC Series"
-msgstr ""
-
-#: ../../mouse.pm_.c:58
-msgid "Logitech MouseMan+/FirstMouse+"
-msgstr ""
-
-#: ../../mouse.pm_.c:60
-msgid "MM Series"
-msgstr ""
-
-#: ../../mouse.pm_.c:61
-msgid "MM HitTablet"
-msgstr ""
-
-#: ../../mouse.pm_.c:62
-msgid "Logitech Mouse (serial, old C7 type)"
-msgstr ""
-
-#: ../../mouse.pm_.c:66
-msgid "busmouse"
-msgstr ""
-
-#: ../../mouse.pm_.c:69
-msgid "2 buttons"
-msgstr ""
-
-#: ../../mouse.pm_.c:70
-msgid "3 buttons"
-msgstr ""
-
-#: ../../mouse.pm_.c:73
-msgid "none"
-msgstr "ŁŁ„Ų§ ŁŲ§Ų­ŲÆ"
-
-#: ../../mouse.pm_.c:75
-msgid "No mouse"
-msgstr ""
-
-#: ../../mouse.pm_.c:499
-msgid "Please test the mouse"
-msgstr ""
-
-#: ../../mouse.pm_.c:500
-msgid "To activate the mouse,"
-msgstr ""
-
-#: ../../mouse.pm_.c:501
-msgid "MOVE YOUR WHEEL!"
-msgstr ""
-
-#: ../../my_gtk.pm_.c:651
-msgid "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"
-msgstr ""
-
-#: ../../my_gtk.pm_.c:686
-msgid "Finish"
-msgstr "ŲŁ†ŲŖŁ‡Ų§Ų"
-
-#: ../../my_gtk.pm_.c:686 ../../printerdrake.pm_.c:1588
-msgid "Next ->"
-msgstr "Ų§Ł„ŲŖŲ§Ł„Ł ->"
-
-#: ../../my_gtk.pm_.c:687 ../../printerdrake.pm_.c:1586
-msgid "<- Previous"
-msgstr ""
-
-#: ../../my_gtk.pm_.c:1019
-msgid "Is this correct?"
-msgstr ""
-
-#: ../../network/adsl.pm_.c:19 ../../network/ethernet.pm_.c:36
-msgid "Connect to the Internet"
-msgstr ""
-
-#: ../../network/adsl.pm_.c:20
-msgid ""
-"The most common way to connect with adsl is pppoe.\n"
-"Some connections use pptp, a few ones use dhcp.\n"
-"If you don't know, choose 'use pppoe'"
-msgstr ""
-
-#: ../../network/adsl.pm_.c:22
-msgid "Alcatel speedtouch usb"
-msgstr ""
-
-#: ../../network/adsl.pm_.c:22
-msgid "use dhcp"
-msgstr ""
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pppoe"
-msgstr ""
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pptp"
-msgstr ""
-
-#: ../../network/ethernet.pm_.c:37
-msgid ""
-"Which dhcp client do you want to use?\n"
-"Default is dhcpcd"
-msgstr ""
-
-#: ../../network/ethernet.pm_.c:88
-msgid ""
-"No ethernet network adapter has been detected on your system.\n"
-"I cannot set up this connection type."
-msgstr ""
-
-#: ../../network/ethernet.pm_.c:92 ../../standalone/drakgw_.c:252
-msgid "Choose the network interface"
-msgstr ""
-
-#: ../../network/ethernet.pm_.c:93
-msgid ""
-"Please choose which network adapter you want to use to connect to Internet"
-msgstr ""
-
-#: ../../network/ethernet.pm_.c:178
-msgid "no network card found"
-msgstr ""
-
-#: ../../network/ethernet.pm_.c:202 ../../network/network.pm_.c:360
-msgid "Configuring network"
-msgstr ""
-
-#: ../../network/ethernet.pm_.c:203
-msgid ""
-"Please enter your host name if you know it.\n"
-"Some DHCP servers require the hostname to work.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''."
-msgstr ""
-
-#: ../../network/ethernet.pm_.c:207 ../../network/network.pm_.c:365
-msgid "Host name"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:21 ../../network/isdn.pm_.c:44
-#: ../../network/netconnect.pm_.c:95 ../../network/netconnect.pm_.c:109
-#: ../../network/netconnect.pm_.c:164 ../../network/netconnect.pm_.c:175
-#: ../../network/netconnect.pm_.c:202 ../../network/netconnect.pm_.c:225
-#: ../../network/netconnect.pm_.c:233
-msgid "Network Configuration Wizard"
-msgstr "Ł…Ų¹Ų§Ł„Ų¬ ŲŲ¹ŲÆŲ§ŲÆ Ų§Ł„Ų´ŲØŁŲ©"
-
-#: ../../network/isdn.pm_.c:22
-msgid "External ISDN modem"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:22
-msgid "Internal ISDN card"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:22
-msgid "What kind is your ISDN connection?"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:45
-msgid ""
-"Which ISDN configuration do you prefer?\n"
-"\n"
-"* The Old configuration uses isdn4net. It contains powerfull\n"
-" tools, but is tricky to configure, and not standard.\n"
-"\n"
-"* The New configuration is easier to understand, more\n"
-" standard, but with less tools.\n"
-"\n"
-"We recommand the light configuration.\n"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:54
-msgid "New configuration (isdn-light)"
-msgstr "ŲŲ¹ŲÆŲ§ŲÆ Ų¬ŲÆŁŲÆ (isdn-light)"
-
-#: ../../network/isdn.pm_.c:54
-msgid "Old configuration (isdn4net)"
-msgstr "ŲŲ¹ŲÆŲ§ŲÆ Ł‚ŲÆŁŁ… (isdn4net)"
-
-#: ../../network/isdn.pm_.c:170 ../../network/isdn.pm_.c:188
-#: ../../network/isdn.pm_.c:198 ../../network/isdn.pm_.c:205
-#: ../../network/isdn.pm_.c:215
-msgid "ISDN Configuration"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:170
-msgid ""
-"Select your provider.\n"
-" If it's not in the list, choose Unlisted"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:183
-msgid "Europe protocol"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:183
-msgid "Europe protocol (EDSS1)"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:185
-msgid "Protocol for the rest of the world"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:185
-msgid ""
-"Protocol for the rest of the world \n"
-" no D-Channel (leased lines)"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:189
-msgid "Which protocol do you want to use ?"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:199
-msgid "What kind of card do you have?"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:200
-msgid "I don't know"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:200
-msgid "ISA / PCMCIA"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:200
-msgid "PCI"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:206
-msgid ""
-"\n"
-"If you have an ISA card, the values on the next screen should be right.\n"
-"\n"
-"If you have a PCMCIA card, you have to know the irq and io of your card.\n"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:210
-msgid "Abort"
-msgstr "ŲŁ†Ł‡Ų§Ų"
-
-#: ../../network/isdn.pm_.c:210
-msgid "Continue"
-msgstr "ŲŖŲ§ŲØŲ¹"
-
-#: ../../network/isdn.pm_.c:216
-msgid "Which is your ISDN card ?"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:235
-msgid ""
-"I have detected an ISDN PCI Card, but I don't know the type. Please select "
-"one PCI card on the next screen."
-msgstr ""
-
-#: ../../network/isdn.pm_.c:244
-msgid "No ISDN PCI card found. Please select one on the next screen."
-msgstr ""
-
-#: ../../network/modem.pm_.c:39
-msgid "Please choose which serial port your modem is connected to."
-msgstr ""
-
-#: ../../network/modem.pm_.c:44
-msgid "Dialup options"
-msgstr ""
-
-#: ../../network/modem.pm_.c:45 ../../standalone/draknet_.c:622
-msgid "Connection name"
-msgstr ""
-
-#: ../../network/modem.pm_.c:46 ../../standalone/draknet_.c:623
-msgid "Phone number"
-msgstr ""
-
-#: ../../network/modem.pm_.c:47 ../../standalone/draknet_.c:624
-msgid "Login ID"
-msgstr ""
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "CHAP"
-msgstr ""
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "PAP"
-msgstr ""
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Script-based"
-msgstr ""
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Terminal-based"
-msgstr ""
-
-#: ../../network/modem.pm_.c:50 ../../standalone/draknet_.c:627
-msgid "Domain name"
-msgstr ""
-
-#: ../../network/modem.pm_.c:51 ../../standalone/draknet_.c:628
-msgid "First DNS Server (optional)"
-msgstr ""
-
-#: ../../network/modem.pm_.c:52 ../../standalone/draknet_.c:629
-msgid "Second DNS Server (optional)"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:34
-msgid ""
-"\n"
-"You can disconnect or reconfigure your connection."
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:34 ../../network/netconnect.pm_.c:37
-msgid ""
-"\n"
-"You can reconfigure your connection."
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:34
-msgid "You are currently connected to internet."
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:37
-msgid ""
-"\n"
-"You can connect to Internet or reconfigure your connection."
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:37
-msgid "You are not currently connected to Internet."
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:41
-msgid "Connect"
-msgstr "Ų§ŲŖŲµŁ„"
-
-#: ../../network/netconnect.pm_.c:43
-msgid "Disconnect"
-msgstr "Ų§Ł‚Ų·Ų¹ Ų§Ł„ŲŲŖŲµŲ§Ł„"
-
-#: ../../network/netconnect.pm_.c:45
-msgid "Configure the connection"
-msgstr "Ł‚Ł… ŲØŲŲ¹ŲÆŲ§ŲÆ Ų§Ł„ŲŲŖŲµŲ§Ł„"
-
-#: ../../network/netconnect.pm_.c:50
-msgid "Internet connection & configuration"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:100
-#, c-format
-msgid "We are now going to configure the %s connection."
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:109
-#, c-format
-msgid ""
-"\n"
-"\n"
-"\n"
-"We are now going to configure the %s connection.\n"
-"\n"
-"\n"
-"Press OK to continue."
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:138 ../../network/netconnect.pm_.c:252
-#: ../../network/netconnect.pm_.c:271 ../../network/tools.pm_.c:57
-msgid "Network Configuration"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:139
-msgid ""
-"Because you are doing a network installation, your network is already "
-"configured.\n"
-"Click on Ok to keep your configuration, or cancel to reconfigure your "
-"Internet & Network connection.\n"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:165
-msgid ""
-"Welcome to The Network Configuration Wizard\n"
-"\n"
-"We are about to configure your internet/network connection.\n"
-"If you don't want to use the auto detection, deselect the checkbox.\n"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:167
-msgid "Choose the profile to configure"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:168
-msgid "Use auto detection"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:175
-msgid "Detecting devices..."
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:186 ../../network/netconnect.pm_.c:195
-msgid "Normal modem connection"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:186 ../../network/netconnect.pm_.c:195
-#, c-format
-msgid "detected on port %s"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:187 ../../network/netconnect.pm_.c:196
-msgid "ISDN connection"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:187 ../../network/netconnect.pm_.c:196
-#, c-format
-msgid "detected %s"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:188 ../../network/netconnect.pm_.c:197
-msgid "ADSL connection"
-msgstr "ŁŲµŁ„Ų© ADSL"
-
-#: ../../network/netconnect.pm_.c:188 ../../network/netconnect.pm_.c:197
-#, c-format
-msgid "detected on interface %s"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:189 ../../network/netconnect.pm_.c:198
-msgid "Cable connection"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:189 ../../network/netconnect.pm_.c:198
-msgid "cable connection detected"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-msgid "LAN connection"
-msgstr "ŁŲµŁ„Ų© LAN"
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-msgid "ethernet card(s) detected"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:202
-msgid "Choose the connection you want to configure"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:226
-msgid ""
-"You have configured multiple ways to connect to the Internet.\n"
-"Choose the one you want to use.\n"
-"\n"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:227
-msgid "Internet connection"
-msgstr "ŁŲµŁ„Ų© Ų§Ł†ŲŖŲ±Ł†ŲŖ"
-
-#: ../../network/netconnect.pm_.c:233
-msgid "Do you want to start the connection at boot?"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:247
-msgid "Network configuration"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:248
-msgid "The network needs to be restarted"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:252
-#, c-format
-msgid ""
-"A problem occured while restarting the network: \n"
-"\n"
-"%s"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:261
-msgid ""
-"Congratulations, the network and Internet configuration is finished.\n"
-"The configuration will now be applied to your system.\n"
-"\n"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:265
-msgid ""
-"After this is done, we recommend that you restart your X environment to "
-"avoid any hostname-related problems."
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:266
-msgid ""
-"Problems occured during configuration.\n"
-"Test your connection via net_monitor or mcc. If your connection doesn't "
-"work, you might want to relaunch the configuration"
-msgstr ""
-
-#: ../../network/network.pm_.c:292
-msgid ""
-"WARNING: This device has been previously configured to connect to the "
-"Internet.\n"
-"Simply accept to keep this device configured.\n"
-"Modifying the fields below will override this configuration."
-msgstr ""
-
-#: ../../network/network.pm_.c:297
-msgid ""
-"Please enter the IP configuration for this machine.\n"
-"Each item should be entered as an IP address in dotted-decimal\n"
-"notation (for example, 1.2.3.4)."
-msgstr ""
-
-#: ../../network/network.pm_.c:306 ../../network/network.pm_.c:307
-#, c-format
-msgid "Configuring network device %s"
-msgstr ""
-
-#: ../../network/network.pm_.c:307
-#, c-format
-msgid " (driver %s)"
-msgstr ""
-
-#: ../../network/network.pm_.c:309 ../../standalone/draknet_.c:232
-#: ../../standalone/draknet_.c:468
-msgid "IP address"
-msgstr ""
-
-#: ../../network/network.pm_.c:310 ../../standalone/draknet_.c:469
-msgid "Netmask"
-msgstr ""
-
-#: ../../network/network.pm_.c:311
-msgid "(bootp/dhcp)"
-msgstr ""
-
-#: ../../network/network.pm_.c:311
-msgid "Automatic IP"
-msgstr ""
-
-#: ../../network/network.pm_.c:332 ../../printerdrake.pm_.c:712
-msgid "IP address should be in format 1.2.3.4"
-msgstr ""
-
-#: ../../network/network.pm_.c:361
-msgid ""
-"Please enter your host name.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''.\n"
-"You may also enter the IP address of the gateway if you have one"
-msgstr ""
-
-#: ../../network/network.pm_.c:366
-msgid "DNS server"
-msgstr ""
-
-#: ../../network/network.pm_.c:367
-#, c-format
-msgid "Gateway (e.g. %s)"
-msgstr ""
-
-#: ../../network/network.pm_.c:369
-msgid "Gateway device"
-msgstr ""
-
-#: ../../network/network.pm_.c:381
-msgid "Proxies configuration"
-msgstr ""
-
-#: ../../network/network.pm_.c:382
-msgid "HTTP proxy"
-msgstr ""
-
-#: ../../network/network.pm_.c:383
-msgid "FTP proxy"
-msgstr ""
-
-#: ../../network/network.pm_.c:384
-msgid "Track network card id (usefull for laptops)"
-msgstr ""
-
-#: ../../network/network.pm_.c:387
-msgid "Proxy should be http://..."
-msgstr ""
-
-#: ../../network/network.pm_.c:388
-msgid "Proxy should be ftp://..."
-msgstr ""
-
-#: ../../network/tools.pm_.c:39
-msgid "Internet configuration"
-msgstr ""
-
-#: ../../network/tools.pm_.c:40
-msgid "Do you want to try to connect to the Internet now?"
-msgstr ""
-
-#: ../../network/tools.pm_.c:44 ../../standalone/draknet_.c:197
-msgid "Testing your connection..."
-msgstr ""
-
-#: ../../network/tools.pm_.c:50
-msgid "The system is now connected to Internet."
-msgstr ""
-
-#: ../../network/tools.pm_.c:51
-msgid "For Security reason, it will be disconnected now."
-msgstr ""
-
-#: ../../network/tools.pm_.c:52
-msgid ""
-"The system doesn't seem to be connected to internet.\n"
-"Try to reconfigure your connection."
-msgstr ""
-
-#: ../../network/tools.pm_.c:76
-msgid "Connection Configuration"
-msgstr ""
-
-#: ../../network/tools.pm_.c:77
-msgid "Please fill or check the field below"
-msgstr ""
-
-#: ../../network/tools.pm_.c:79 ../../standalone/draknet_.c:608
-msgid "Card IRQ"
-msgstr ""
-
-#: ../../network/tools.pm_.c:80 ../../standalone/draknet_.c:609
-msgid "Card mem (DMA)"
-msgstr ""
-
-#: ../../network/tools.pm_.c:81 ../../standalone/draknet_.c:610
-msgid "Card IO"
-msgstr ""
-
-#: ../../network/tools.pm_.c:82 ../../standalone/draknet_.c:611
-msgid "Card IO_0"
-msgstr ""
-
-#: ../../network/tools.pm_.c:83 ../../standalone/draknet_.c:612
-msgid "Card IO_1"
-msgstr ""
-
-#: ../../network/tools.pm_.c:84 ../../standalone/draknet_.c:613
-msgid "Your personal phone number"
-msgstr ""
-
-#: ../../network/tools.pm_.c:85 ../../standalone/draknet_.c:614
-msgid "Provider name (ex provider.net)"
-msgstr ""
-
-#: ../../network/tools.pm_.c:86 ../../standalone/draknet_.c:615
-msgid "Provider phone number"
-msgstr ""
-
-#: ../../network/tools.pm_.c:87 ../../standalone/draknet_.c:616
-msgid "Provider dns 1 (optional)"
-msgstr ""
-
-#: ../../network/tools.pm_.c:88 ../../standalone/draknet_.c:617
-msgid "Provider dns 2 (optional)"
-msgstr ""
-
-#: ../../network/tools.pm_.c:89
-msgid "Choose your country"
-msgstr "ŲŲ®ŲŖŲ± ŲØŁ„ŲÆŁ"
-
-#: ../../network/tools.pm_.c:90 ../../standalone/draknet_.c:620
-msgid "Dialing mode"
-msgstr ""
-
-#: ../../network/tools.pm_.c:91 ../../standalone/draknet_.c:632
-msgid "Connection speed"
-msgstr "Ų³Ų±Ų¹Ų© Ų§Ł„ŲŲŖŲµŲ§Ł„"
-
-#: ../../network/tools.pm_.c:92 ../../standalone/draknet_.c:633
-msgid "Connection timeout (in sec)"
-msgstr "Ų§Ł„ŁŁ‚ŲŖ Ų§Ł„Ų£Ł‚ŲµŁ‰ Ł„Ł„Ų§ŲŖŲµŲ§Ł„ (ŲØŲ§Ł„Ų«ŁŲ§Ł†Ł)"
-
-#: ../../network/tools.pm_.c:93 ../../standalone/draknet_.c:618
-msgid "Account Login (user name)"
-msgstr ""
-
-#: ../../network/tools.pm_.c:94 ../../standalone/draknet_.c:619
-msgid "Account Password"
-msgstr ""
-
-#: ../../partition_table.pm_.c:600
-msgid "mount failed: "
-msgstr "ŁŲ´Ł„ Ų§Ł„ŲŖŲ­Ł…ŁŁ„: "
-
-#: ../../partition_table.pm_.c:664
-msgid "Extended partition not supported on this platform"
-msgstr ""
-
-#: ../../partition_table.pm_.c:682
-msgid ""
-"You have a hole in your partition table but I can't use it.\n"
-"The only solution is to move your primary partitions to have the hole next "
-"to the extended partitions"
-msgstr ""
-
-#: ../../partition_table.pm_.c:770
-#, c-format
-msgid "Restoring from file %s failed: %s"
-msgstr ""
-
-#: ../../partition_table.pm_.c:772
-msgid "Bad backup file"
-msgstr ""
-
-#: ../../partition_table.pm_.c:794
-#, c-format
-msgid "Error writing to file %s"
-msgstr ""
-
-#: ../../partition_table_raw.pm_.c:186
-msgid ""
-"Something bad is happening on your drive. \n"
-"A test to check the integrity of data has failed. \n"
-"It means writing anything on the disk will end up with random trash"
-msgstr ""
-
-#: ../../pkgs.pm_.c:24
-msgid "must have"
-msgstr ""
-
-#: ../../pkgs.pm_.c:25
-msgid "important"
-msgstr ""
-
-#: ../../pkgs.pm_.c:26
-msgid "very nice"
-msgstr ""
-
-#: ../../pkgs.pm_.c:27
-msgid "nice"
-msgstr ""
-
-#: ../../pkgs.pm_.c:28
-msgid "maybe"
-msgstr ""
-
-#: ../../printer.pm_.c:23
-msgid "CUPS - Common Unix Printing System"
-msgstr ""
-
-#: ../../printer.pm_.c:24
-msgid "LPRng - LPR New Generation"
-msgstr ""
-
-#: ../../printer.pm_.c:25
-msgid "LPD - Line Printer Daemon"
-msgstr ""
-
-#: ../../printer.pm_.c:26
-msgid "PDQ - Print, Don't Queue"
-msgstr ""
-
-#: ../../printer.pm_.c:32 ../../printer.pm_.c:871
-msgid "CUPS"
-msgstr ""
-
-#: ../../printer.pm_.c:33
-msgid "LPRng"
-msgstr ""
-
-#: ../../printer.pm_.c:34
-msgid "LPD"
-msgstr ""
-
-#: ../../printer.pm_.c:35
-msgid "PDQ"
-msgstr ""
-
-#: ../../printer.pm_.c:47
-msgid "Local printer"
-msgstr "Ų·Ų§ŲØŲ¹Ų© Ł…Ų­Ł„ŁŲ©"
-
-#: ../../printer.pm_.c:48
-msgid "Remote printer"
-msgstr "Ų·Ų§ŲØŲ¹Ų© ŲØŲ¹ŁŲÆŲ©"
-
-#: ../../printer.pm_.c:49
-msgid "Printer on remote CUPS server"
-msgstr ""
-
-#: ../../printer.pm_.c:50 ../../printerdrake.pm_.c:734
-msgid "Printer on remote lpd server"
-msgstr ""
-
-#: ../../printer.pm_.c:51
-msgid "Network printer (TCP/Socket)"
-msgstr "Ų·Ų§ŲØŲ¹Ų© Ų´ŲØŁŲ© (TCP/Socket)"
-
-#: ../../printer.pm_.c:52
-msgid "Printer on SMB/Windows 95/98/NT server"
-msgstr ""
-
-#: ../../printer.pm_.c:53
-msgid "Printer on NetWare server"
-msgstr ""
-
-#: ../../printer.pm_.c:54 ../../printerdrake.pm_.c:738
-msgid "Enter a printer device URI"
-msgstr ""
-
-#: ../../printer.pm_.c:55
-msgid "Pipe job into a command"
-msgstr ""
-
-#: ../../printer.pm_.c:504 ../../printer.pm_.c:695 ../../printer.pm_.c:1017
-#: ../../printerdrake.pm_.c:1665 ../../printerdrake.pm_.c:2730
-msgid "Unknown model"
-msgstr ""
-
-#: ../../printer.pm_.c:532
-msgid "Local Printers"
-msgstr "Ų§Ł„Ų·Ų§ŲØŲ¹Ų§ŲŖ Ų§Ł„Ł…Ų­Ł„ŁŲ©"
-
-#: ../../printer.pm_.c:534 ../../printer.pm_.c:872
-msgid "Remote Printers"
-msgstr "Ų§Ł„Ų·Ų§ŲØŲ¹Ų§ŲŖ Ų§Ł„ŲØŲ¹ŁŲÆŲ©"
-
-#: ../../printer.pm_.c:541 ../../printerdrake.pm_.c:248
-#, c-format
-msgid " on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printer.pm_.c:544 ../../printerdrake.pm_.c:250
-#, c-format
-msgid ", USB printer \\/*%s"
-msgstr ""
-
-#: ../../printer.pm_.c:549
-#, c-format
-msgid ", multi-function device on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printer.pm_.c:552
-msgid ", multi-function device on USB"
-msgstr ""
-
-#: ../../printer.pm_.c:554
-msgid ", multi-function device on HP JetDirect"
-msgstr ""
-
-#: ../../printer.pm_.c:556
-msgid ", multi-function device"
-msgstr ""
-
-#: ../../printer.pm_.c:559
-#, c-format
-msgid ", printing to %s"
-msgstr ""
-
-#: ../../printer.pm_.c:561
-#, c-format
-msgid "on LPD server \"%s\", printer \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:563
-#, c-format
-msgid ", TCP/IP host \"%s\", port %s"
-msgstr ""
-
-#: ../../printer.pm_.c:567
-#, c-format
-msgid "on Windows server \"%s\", share \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:571
-#, c-format
-msgid "on Novell server \"%s\", printer \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:573
-#, c-format
-msgid ", using command %s"
-msgstr ""
-
-#: ../../printer.pm_.c:692 ../../printerdrake.pm_.c:1136
-msgid "Raw printer (No driver)"
-msgstr ""
-
-#: ../../printer.pm_.c:841
-#, c-format
-msgid "(on %s)"
-msgstr ""
-
-#: ../../printer.pm_.c:843
-msgid "(on this machine)"
-msgstr ""
-
-#: ../../printer.pm_.c:868
-#, c-format
-msgid "On CUPS server \"%s\""
-msgstr "Ų¹Ł„Ł‰ Ų®Ų§ŲÆŁ… CUPS \"%s\""
-
-#: ../../printer.pm_.c:874 ../../printerdrake.pm_.c:2391
-#: ../../printerdrake.pm_.c:2402 ../../printerdrake.pm_.c:2618
-#: ../../printerdrake.pm_.c:2670 ../../printerdrake.pm_.c:2697
-#: ../../printerdrake.pm_.c:2867 ../../printerdrake.pm_.c:2869
-msgid " (Default)"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:22
-msgid "Select Printer Connection"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:23
-msgid "How is the printer connected?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:25
-msgid ""
-"\n"
-"Printers on remote CUPS servers you do not have to configure here; these "
-"printers will be automatically detected."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:69 ../../printerdrake.pm_.c:2454
-msgid "CUPS configuration"
-msgstr " CUPS Ų§Ų¹ŲÆŲ§ŲÆŲ§ŲŖ"
-
-#: ../../printerdrake.pm_.c:70 ../../printerdrake.pm_.c:2455
-msgid "Specify CUPS server"
-msgstr "Ų§Ł„Ų®Ų§ŲÆŁ… CUPS Ų­ŲÆŁ‘ŲÆ"
-
-#: ../../printerdrake.pm_.c:71
-msgid ""
-"To get access to printers on remote CUPS servers in your local network you "
-"do not have to configure anything; the CUPS servers inform your machine "
-"automatically about their printers. All printers currently known to your "
-"machine are listed in the \"Remote printers\" section in the main window of "
-"Printerdrake. When your CUPS server is not in your local network, you have "
-"to enter the CUPS server IP address and optionally the port number to get "
-"the printer information from the server, otherwise leave these fields blank."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:72
-msgid ""
-"\n"
-"Normally, CUPS is automatically configured according to your network "
-"environment, so that you can access the printers on the CUPS servers in your "
-"local network. If this does not work correctly, turn off \"Automatic CUPS "
-"configuration\" and edit your file /etc/cups/cupsd.conf manually. Do not "
-"forget to restart CUPS afterwards (command: \"service cups restart\")."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:76
-msgid "The IP address should look like 192.168.1.20"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:80 ../../printerdrake.pm_.c:862
-msgid "The port number should be an integer!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:87
-msgid "CUPS server IP"
-msgstr "Ų¹Ł†ŁŲ§Ł† IP Ł„Ų®Ų§ŲÆŁ… CUPS"
-
-#: ../../printerdrake.pm_.c:88 ../../printerdrake.pm_.c:855
-msgid "Port"
-msgstr "Ų§Ł„ŲØŁŲ§ŲØŲ©"
-
-#: ../../printerdrake.pm_.c:90
-msgid "Automatic CUPS configuration"
-msgstr "ŲŖŁ‡ŁŲ¦Ų© CUPS Ų¢Ł„ŁŲ©"
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-msgid "Detecting devices ..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-msgid "Test ports"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:167 ../../printerdrake.pm_.c:2437
-#: ../../printerdrake.pm_.c:2556
-msgid "Add a new printer"
-msgstr "Ų£Ų¶Ł Ų·Ų§ŲØŲ¹Ų© Ų¬ŲÆŁŲÆŲ©"
-
-#: ../../printerdrake.pm_.c:168
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard allows you to install local or remote printers to be used from "
-"this machine and also from other machines in the network.\n"
-"\n"
-"It asks you for all necessary information to set up the printer and gives "
-"you access to all available printer drivers, driver options, and printer "
-"connection types."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:176 ../../printerdrake.pm_.c:203
-#: ../../printerdrake.pm_.c:378 ../../printerdrake.pm_.c:393
-#: ../../printerdrake.pm_.c:403 ../../printerdrake.pm_.c:466
-msgid "Local Printer"
-msgstr "Ų·Ų§ŲØŲ¹Ų© Ł…Ų­Ł„ŁŲ©"
-
-#: ../../printerdrake.pm_.c:177
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard will help you to install your printer(s) connected to this "
-"computer.\n"
-"\n"
-"Please plug in your printer(s) on this computer and turn it/them on. Click "
-"on \"Next\" when you are ready, and on \"Cancel\" when you do not want to "
-"set up your printer(s) now.\n"
-"\n"
-"Note that some computers can crash during the printer auto-detection, turn "
-"off \"Auto-detect printers\" to do a printer installation without auto-"
-"detection. Use the \"Expert Mode\" of printerdrake when you want to set up "
-"printing on a remote printer if printerdrake does not list it automatically."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:186
-msgid "Auto-detect printers"
-msgstr "ŲŖŲ­Ł‚Ł‚ Ł…Ł† Ų§Ł„Ų·Ų§ŲØŲ¹Ų§ŲŖ Ų¢Ł„ŁŲ§"
-
-#: ../../printerdrake.pm_.c:204
-msgid ""
-"\n"
-"Congratulations, your printer is now installed and configured!\n"
-"\n"
-"You can print using the \"Print\" command of your application (usually in "
-"the \"File\" menu).\n"
-"\n"
-"If you want to add, remove, or rename a printer, or if you want to change "
-"the default option settings (paper input tray, printout quality, ...), "
-"select \"Printer\" in the \"Hardware\" section of the Mandrake Control "
-"Center."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:223
-msgid "Auto-Detection of Printers"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:224
-msgid ""
-"Printerdrake is able to auto-detect your locally connected parallel and USB "
-"printers for you, but note that on some systems the auto-detection CAN "
-"FREEZE YOUR SYSTEM AND THIS CAN LEAD TO CORRUPTED FILE SYSTEMS! So do it ON "
-"YOUR OWN RISK!\n"
-"\n"
-"Do you really want to get your printers auto-detected?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:227 ../../printerdrake.pm_.c:229
-#: ../../printerdrake.pm_.c:230
-msgid "Do auto-detection"
-msgstr "ŲŖŲ­Ł‚Ł‚ Ų¢Ł„Ł"
-
-#: ../../printerdrake.pm_.c:228
-msgid "Set up printer manually"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:256
-#, c-format
-msgid "Detected %s"
-msgstr "ŲŖŁ… Ų§Ł„ŲŖŲ­Ł‚Ł‚ Ł…Ł† %s"
-
-#: ../../printerdrake.pm_.c:260 ../../printerdrake.pm_.c:287
-#: ../../printerdrake.pm_.c:306
-#, c-format
-msgid "Printer on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:262 ../../printerdrake.pm_.c:289
-#: ../../printerdrake.pm_.c:311
-#, c-format
-msgid "USB printer \\/*%s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:379
-msgid ""
-"No local printer found! To manually install a printer enter a device name/"
-"file name in the input line (Parallel Ports: /dev/lp0, /dev/lp1, ..., "
-"equivalent to LPT1:, LPT2:, ..., 1st USB printer: /dev/usb/lp0, 2nd USB "
-"printer: /dev/usb/lp1, ...)."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:383
-msgid "You must enter a device or file name!"
-msgstr ""
-
-#
-#: ../../printerdrake.pm_.c:394
-msgid ""
-"No local printer found!\n"
-"\n"
-msgstr ""
-"Ł„Ł… ŁŲŖŁ… Ų§ŁŲ­Ų§ŲÆ Ų·Ų§ŲØŲ¹Ų© Ł…Ų­Ł„ŁŲ©!\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:395
-msgid ""
-"Network printers can only be installed after the installation. Choose "
-"\"Hardware\" and then \"Printer\" in the Mandrake Control Center."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:396
-msgid ""
-"To install network printers, click \"Cancel\", switch to the \"Expert Mode"
-"\", and click \"Add a new printer\" again."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:407
-msgid ""
-"The following printer was auto-detected, if it is not the one you want to "
-"configure, enter a device name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:408
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up or enter a device name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:410
-msgid ""
-"The following printer was auto-detected. The configuration of the printer "
-"will work fully automatically. If your printer was not correctly detected or "
-"if you prefer a customized printer configuration, turn on \"Manual "
-"configuration\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:411
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up. The configuration of the printer will work fully "
-"automatically. If your printer was not correctly detected or if you prefer a "
-"customized printer configuration, turn on \"Manual configuration\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:413
-msgid ""
-"Please choose the port where your printer is connected to or enter a device "
-"name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:414
-msgid "Please choose the port where your printer is connected to."
-msgstr "Ų±Ų¬Ų§Ų Ų§Ų®ŲŖŲ± Ų§Ł„Ł…Ł†ŁŲ° Ų§Ł„Ł…ŁŲµŁ„Ų© ŲŁ„ŁŁ‡ Ų·Ų§ŲØŲ¹ŲŖŁ."
-
-#: ../../printerdrake.pm_.c:416
-msgid ""
-" (Parallel Ports: /dev/lp0, /dev/lp1, ..., equivalent to LPT1:, LPT2:, ..., "
-"1st USB printer: /dev/usb/lp0, 2nd USB printer: /dev/usb/lp1, ...)."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:421
-msgid "You must choose/enter a printer/device!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:441
-msgid "Manual configuration"
-msgstr "ŲŲ¹ŲÆŲ§ŲÆ ŁŲÆŁŁ"
-
-#: ../../printerdrake.pm_.c:467
-msgid ""
-"Is your printer a multi-function device from HP (OfficeJet, PSC, PhotoSmart, "
-"LaserJet 1100/1200/1220/3200/3300 with scanner)?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:482
-msgid "Installing HPOJ package..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:487
-msgid "Checking device and configuring HPOJ ..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:505
-msgid "Installing SANE package..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:517
-msgid "Scanning on your HP multi-function device"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:534
-msgid "Making printer port available for CUPS ..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:544 ../../printerdrake.pm_.c:1018
-#: ../../printerdrake.pm_.c:1132
-msgid "Reading printer database ..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:624
-msgid "Remote lpd Printer Options"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:625
-msgid ""
-"To use a remote lpd printer, you need to supply the hostname of the printer "
-"server and the printer name on that server."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:626
-msgid "Remote host name"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:627
-msgid "Remote printer name"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:630
-msgid "Remote host name missing!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:634
-msgid "Remote printer name missing!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:702
-msgid "SMB (Windows 9x/NT) Printer Options"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:703
-msgid ""
-"To print to a SMB printer, you need to provide the SMB host name (Note! It "
-"may be different from its TCP/IP hostname!) and possibly the IP address of "
-"the print server, as well as the share name for the printer you wish to "
-"access and any applicable user name, password, and workgroup information."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:704
-msgid "SMB server host"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:705
-msgid "SMB server IP"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:706
-msgid "Share name"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:709
-msgid "Workgroup"
-msgstr "Ł…Ų¬Ł…ŁŲ¹Ų© Ų§Ł„Ų¹Ł…Ł„"
-
-#: ../../printerdrake.pm_.c:716
-msgid "Either the server name or the server's IP must be given!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:720
-msgid "Samba share name missing!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:725
-msgid "SECURITY WARNING!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:726
-#, c-format
-msgid ""
-"You are about to set up printing to a Windows account with password. Due to "
-"a fault in the architecture of the Samba client software the password is put "
-"in clear text into the command line of the Samba client used to transmit the "
-"print job to the Windows server. So it is possible for every user on this "
-"machine to display the password on the screen by issuing commands as \"ps "
-"auxwww\".\n"
-"\n"
-"We recommend to make use of one of the following alternatives (in all cases "
-"you have to make sure that only machines from your local network have access "
-"to your Windows server, for example by means of a firewall):\n"
-"\n"
-"Use a password-less account on your Windows server, as the \"GUEST\" account "
-"or a special account dedicated for printing. Do not remove the password "
-"protection from a personal account or the administrator account.\n"
-"\n"
-"Set up your Windows server to make the printer available under the LPD "
-"protocol. Then set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:736
-#, c-format
-msgid ""
-"Set up your Windows server to make the printer available under the IPP "
-"protocol and set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:739
-msgid ""
-"Connect your printer to a Linux server and let your Windows machine(s) "
-"connect to it as a client.\n"
-"\n"
-"Do you really want to continue setting up this printer as you are doing now?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:801
-msgid "NetWare Printer Options"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:802
-msgid ""
-"To print on a NetWare printer, you need to provide the NetWare print server "
-"name (Note! it may be different from its TCP/IP hostname!) as well as the "
-"print queue name for the printer you wish to access and any applicable user "
-"name and password."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:803
-msgid "Printer Server"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:804
-msgid "Print Queue Name"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:809
-msgid "NCP server name missing!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:813
-msgid "NCP queue name missing!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:852
-msgid "TCP/Socket Printer Options"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:853
-msgid ""
-"To print to a TCP or socket printer, you need to provide the host name of "
-"the printer and optionally the port number. On HP JetDirect servers the port "
-"number is usually 9100, on other servers it can vary. See the manual of your "
-"hardware."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:854
-msgid "Printer host name"
-msgstr "Ų§Ų³Ł… Ł…Ų³ŲŖŲ¶ŁŁ Ų§Ł„Ų·Ų§ŲØŲ¹Ų©"
-
-#: ../../printerdrake.pm_.c:858
-msgid "Printer host name missing!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:887 ../../printerdrake.pm_.c:889
-msgid "Printer Device URI"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:888
-msgid ""
-"You can specify directly the URI to access the printer. The URI must fulfill "
-"either the CUPS or the Foomatic specifications. Note that not all URI types "
-"are supported by all the spoolers."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:903
-msgid "A valid URI must be entered!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1004
-msgid ""
-"Every printer needs a name (for example \"printer\"). The Description and "
-"Location fields do not need to be filled in. They are comments for the users."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1005
-msgid "Name of printer"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1006
-msgid "Description"
-msgstr "Ų§Ł„ŁŲµŁ"
-
-#: ../../printerdrake.pm_.c:1007
-msgid "Location"
-msgstr "Ų§Ł„Ł…ŁŲ§Ł†"
-
-#: ../../printerdrake.pm_.c:1021
-msgid "Preparing printer database ..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1112
-msgid "Your printer model"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1113
-#, c-format
-msgid ""
-"Printerdrake has compared the model name resulting from the printer auto-"
-"detection with the models listed in its printer database to find the best "
-"match. This choice can be wrong, especially when your printer is not listed "
-"at all in the database. So check whether the choice is correct and click "
-"\"The model is correct\" if so and if not, click \"Select model manually\" "
-"so that you can choose your printer model manually on the next screen.\n"
-"\n"
-"For your printer Printerdrake has found:\n"
-"\n"
-"%s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1118 ../../printerdrake.pm_.c:1121
-msgid "The model is correct"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1119 ../../printerdrake.pm_.c:1120
-#: ../../printerdrake.pm_.c:1123
-msgid "Select model manually"
-msgstr "ŲŖŁ… Ų§Ų®ŲŖŁŲ§Ų± Ų§Ł„Ł†Ł‘Ł…ŁŲ°Ų¬ ŁŲÆŁŁŁ‘Ł‹Ų§"
-
-#: ../../printerdrake.pm_.c:1139
-msgid "Printer model selection"
-msgstr "ŲŲ®ŲŖŁŲ§Ų± ŁŲ­ŲÆŲ§ŲŖ Ų§Ł„Ų·Ų§ŲØŲ¹Ų©"
-
-#: ../../printerdrake.pm_.c:1140
-msgid "Which printer model do you have?"
-msgstr "Ł…Ų§ Ł‡Ł Ł†ŁŲ¹ Ų§Ł„Ų·Ų§ŲØŲ¹Ų© Ł„ŲÆŁŁŲ"
-
-#: ../../printerdrake.pm_.c:1141
-msgid ""
-"\n"
-"\n"
-"Please check whether Printerdrake did the auto-detection of your printer "
-"model correctly. Search the correct model in the list when the cursor is "
-"standing on a wrong model or on \"Raw printer\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1144
-msgid ""
-"If your printer is not listed, choose a compatible (see printer manual) or a "
-"similar one."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1220
-msgid "OKI winprinter configuration"
-msgstr "ŲŲ¹ŲÆŲ§ŲÆ OKI WinPrinter"
-
-#: ../../printerdrake.pm_.c:1221
-msgid ""
-"You are configuring an OKI laser winprinter. These printers\n"
-"use a very special communication protocol and therefore they work only when "
-"connected to the first parallel port. When your printer is connected to "
-"another port or to a print server box please connect the printer to the "
-"first parallel port before you print a test page. Otherwise the printer will "
-"not work. Your connection type setting will be ignored by the driver."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1264 ../../printerdrake.pm_.c:1291
-msgid "Lexmark inkjet configuration"
-msgstr "ŲŲ¹ŲÆŲ§ŲÆ Lexmark Inkjet"
-
-#: ../../printerdrake.pm_.c:1265
-msgid ""
-"The inkjet printer drivers provided by Lexmark only support local printers, "
-"no printers on remote machines or print server boxes. Please connect your "
-"printer to a local port or configure it on the machine where it is connected "
-"to."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1292
-msgid ""
-"To be able to print with your Lexmark inkjet and this configuration, you "
-"need the inkjet printer drivers provided by Lexmark (http://www.lexmark."
-"com/). Go to the US site and click on the \"Drivers\" button. Then choose "
-"your model and afterwards \"Linux\" as operating system. The drivers come as "
-"RPM packages or shell scripts with interactive graphical installation. You "
-"do not need to do this configuration by the graphical frontends. Cancel "
-"directly after the license agreement. Then print printhead alignment pages "
-"with \"lexmarkmaintain\" and adjust the head alignment settings with this "
-"program."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1508
-msgid ""
-"Printer default settings\n"
-"\n"
-"You should make sure that the page size and the ink type/printing mode (if "
-"available) and also the hardware configuration of laser printers (memory, "
-"duplex unit, extra trays) are set correctly. Note that with a very high "
-"printout quality/resolution printing can get substantially slower."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1517
-#, c-format
-msgid "Option %s must be an integer number!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1521
-#, c-format
-msgid "Option %s must be a number!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1526
-#, c-format
-msgid "Option %s out of range!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1565
-#, c-format
-msgid ""
-"Do you want to set this printer (\"%s\")\n"
-"as the default printer?"
-msgstr ""
-"Ł‡Ł„ ŲŖŲ±ŁŲÆ ŲŖŲ¹ŁŁŁ† Ł‡Ų°Ł‡ Ų§Ł„Ų·Ų§ŲØŲ¹Ų© (\"%s\")\n"
-"ŁŲ·Ų§ŲØŲ¹Ų© Ų§ŁŲŖŲ±Ų§Ų¶ŁŲ©Ų"
-
-#: ../../printerdrake.pm_.c:1582
-msgid "Test pages"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1583
-msgid ""
-"Please select the test pages you want to print.\n"
-"Note: the photo test page can take a rather long time to get printed and on "
-"laser printers with too low memory it can even not come out. In most cases "
-"it is enough to print the standard test page."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1587
-msgid "No test pages"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1588
-msgid "Print"
-msgstr "ŲŲ·ŲØŲ¹"
-
-#: ../../printerdrake.pm_.c:1590
-msgid "Standard test page"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1593
-msgid "Alternative test page (Letter)"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1596
-msgid "Alternative test page (A4)"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1598
-msgid "Photo test page"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1602
-msgid "Do not print any test page"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1610 ../../printerdrake.pm_.c:1747
-msgid "Printing test page(s)..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1635
-#, c-format
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-"Printing status:\n"
-"%s\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1639
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1646
-msgid "Did it work properly?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1667 ../../printerdrake.pm_.c:2732
-msgid "Raw printer"
-msgstr "Ų·Ų§ŲØŲ¹Ų© Ų®Ų§Ł…"
-
-#: ../../printerdrake.pm_.c:1685
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) you can either use "
-"the command \"%s <file>\" or a graphical printing tool: \"xpp <file>\" or "
-"\"kprinter <file>\". The graphical tools allow you to choose the printer and "
-"to modify the option settings easily.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1687
-msgid ""
-"These commands you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications, but here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1690 ../../printerdrake.pm_.c:1706
-#: ../../printerdrake.pm_.c:1716
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" command also allows to modify the option settings for a "
-"particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\". "
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1693 ../../printerdrake.pm_.c:1732
-#, c-format
-msgid ""
-"To know about the options available for the current printer read either the "
-"list shown below or click on the \"Print option list\" button.%s\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1696
-msgid ""
-"Here is a list of the available printing options for the current printer:\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1701 ../../printerdrake.pm_.c:1711
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\".\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1703 ../../printerdrake.pm_.c:1713
-#: ../../printerdrake.pm_.c:1723
-msgid ""
-"This command you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications. But here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1708 ../../printerdrake.pm_.c:1718
-msgid ""
-"To get a list of the options available for the current printer click on the "
-"\"Print option list\" button."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1721
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\" or \"%s <file>\".\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1725
-msgid ""
-"You can also use the graphical interface \"xpdq\" for setting options and "
-"handling printing jobs.\n"
-"If you are using KDE as desktop environment you have a \"panic button\", an "
-"icon on the desktop, labeled with \"STOP Printer!\", which stops all print "
-"jobs immediately when you click it. This is for example useful for paper "
-"jams.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1729
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" and \"%s\" commands also allow to modify the option settings for "
-"a particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\".\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1738 ../../printerdrake.pm_.c:1744
-#: ../../printerdrake.pm_.c:1745 ../../printerdrake.pm_.c:1746
-#: ../../printerdrake.pm_.c:2716 ../../standalone/drakbackup_.c:754
-#: ../../standalone/drakbackup_.c:2458 ../../standalone/drakfont_.c:577
-#: ../../standalone/drakfont_.c:791
-msgid "Close"
-msgstr "ŲŲŗŁ„Ų§Ł‚"
-
-#: ../../printerdrake.pm_.c:1741 ../../printerdrake.pm_.c:1753
-#, c-format
-msgid "Printing/Scanning on \"%s\""
-msgstr "Ų¬Ų§Ų±Ł Ų§Ł„Ų·ŲØŲ§Ų¹Ų©/Ų§Ł„Ł…Ų³Ų­ Ų¹Ł„Ł‰ \"%s\""
-
-#: ../../printerdrake.pm_.c:1742 ../../printerdrake.pm_.c:1754
-#, c-format
-msgid "Printing on the printer \"%s\""
-msgstr "Ų¬Ų§Ų±Ł Ų§Ł„Ų·ŲØŲ§Ų¹Ų© Ų¹Ł„Ł‰ Ų§Ł„Ų·Ų§ŲØŲ¹Ų© \"%s\""
-
-#: ../../printerdrake.pm_.c:1744
-msgid "Print option list"
-msgstr "Ł‚Ų§Ų¦Ł…Ų© Ų®ŁŲ§Ų±Ų§ŲŖ Ų§Ł„Ų·Ų§ŲØŲ¹Ų©"
-
-#: ../../printerdrake.pm_.c:1766
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan with \"scanimage\" (\"scanimage -d hp:%s\" to specify "
-"the scanner when you have more than one) from the command line or with the "
-"graphical interfaces \"xscanimage\" or \"xsane\". If you are using the GIMP, "
-"you can also scan by choosing the appropriate point in the \"File\"/\"Acquire"
-"\" menu. Call also \"man scanimage\" and \"man sane-hp\" on the command line "
-"to get more information.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1772
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan from the command line with \"ptal-hp %s scan ...\". "
-"Scanning via a graphical interface or from the GIMP is not supported yet for "
-"your device. More information you will find in the \"/usr/share/doc/hpoj-0.8/"
-"ptal-hp-scan.html\" file on your system. If you have an HP LaserJet 1100 or "
-"1200 you can only scan when you have the scanner option installed.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1794 ../../printerdrake.pm_.c:2221
-#: ../../printerdrake.pm_.c:2485 ../../standalone/printerdrake_.c:49
-msgid "Reading printer data ..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1814 ../../printerdrake.pm_.c:1842
-#: ../../printerdrake.pm_.c:1877
-msgid "Transfer printer configuration"
-msgstr "Ł†Ł‚Ł„ ŲŲ¹ŲÆŲ§ŲÆŲ§ŲŖ Ų§Ł„Ų·Ų§ŲØŲ¹Ų©"
-
-#: ../../printerdrake.pm_.c:1815
-#, c-format
-msgid ""
-"You can copy the printer configuration which you have done for the spooler %"
-"s to %s, your current spooler. All the configuration data (printer name, "
-"description, location, connection type, and default option settings) is "
-"overtaken, but jobs will not be transferred.\n"
-"Not all queues can be transferred due to the following reasons:\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1818
-msgid ""
-"CUPS does not support printers on Novell servers or printers sending the "
-"data into a free-formed command.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1820
-msgid ""
-"PDQ only supports local printers, remote LPD printers, and Socket/TCP "
-"printers.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1822
-msgid "LPD and LPRng do not support IPP printers.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1824
-msgid ""
-"In addition, queues not created with this program or \"foomatic-configure\" "
-"cannot be transferred."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1825
-msgid ""
-"\n"
-"Also printers configured with the PPD files provided by their manufacturers "
-"or with native CUPS drivers cannot be transferred."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1826
-msgid ""
-"\n"
-"Mark the printers which you want to transfer and click \n"
-"\"Transfer\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1829
-msgid "Do not transfer printers"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1830 ../../printerdrake.pm_.c:1847
-msgid "Transfer"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1843
-#, c-format
-msgid ""
-"A printer named \"%s\" already exists under %s. \n"
-"Click \"Transfer\" to overwrite it.\n"
-"You can also type a new name or skip this printer."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1851
-msgid "Name of printer should contain only letters, numbers and the underscore"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1856
-#, c-format
-msgid ""
-"The printer \"%s\" already exists,\n"
-"do you really want to overwrite its configuration?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1864
-msgid "New printer name"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1867
-#, c-format
-msgid "Transferring %s ..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1878
-#, c-format
-msgid ""
-"You have transferred your former default printer (\"%s\"), Should it be also "
-"the default printer under the new printing system %s?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1887
-msgid "Refreshing printer data ..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1895 ../../printerdrake.pm_.c:1966
-#: ../../printerdrake.pm_.c:1978
-msgid "Configuration of a remote printer"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1896
-msgid "Starting network ..."
-msgstr "Ų¬Ų§Ų±Ł ŲØŲÆŲ Ų§Ł„Ų´ŲØŁŲ©..."
-
-#: ../../printerdrake.pm_.c:1930 ../../printerdrake.pm_.c:1934
-#: ../../printerdrake.pm_.c:1936
-msgid "Configure the network now"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1931
-msgid "Network functionality not configured"
-msgstr "Ł„Ł… ŁŲŖŁ… ŲŖŲ­ŲÆŁŲÆ ŁŲøŁŁŁŲ© Ų§Ł„Ų´ŲØŁŲ©"
-
-#: ../../printerdrake.pm_.c:1932
-msgid ""
-"You are going to configure a remote printer. This needs working network "
-"access, but your network is not configured yet. If you go on without network "
-"configuration, you will not be able to use the printer which you are "
-"configuring now. How do you want to proceed?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1935
-msgid "Go on without configuring the network"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1968
-msgid ""
-"The network configuration done during the installation cannot be started "
-"now. Please check whether the network gets accessable after booting your "
-"system and correct the configuration using the Mandrake Control Center, "
-"section \"Network & Internet\"/\"Connection\", and afterwards set up the "
-"printer, also using the Mandrake Control Center, section \"Hardware\"/"
-"\"Printer\""
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1969
-msgid ""
-"The network access was not running and could not be started. Please check "
-"your configuration and your hardware. Then try to configure your remote "
-"printer again."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1979
-msgid "Restarting printing system ..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2017
-msgid "high"
-msgstr "Ł…Ų±ŲŖŁŲ¹"
-
-#: ../../printerdrake.pm_.c:2017
-msgid "paranoid"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2018
-#, c-format
-msgid "Installing a printing system in the %s security level"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2019
-#, c-format
-msgid ""
-"You are about to install the printing system %s on a system running in the %"
-"s security level.\n"
-"\n"
-"This printing system runs a daemon (background process) which waits for "
-"print jobs and handles them. This daemon is also accessable by remote "
-"machines through the network and so it is a possible point for attacks. "
-"Therefore only a few selected daemons are started by default in this "
-"security level.\n"
-"\n"
-"Do you really want to configure printing on this machine?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2051
-msgid "Starting the printing system at boot time"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2052
-#, c-format
-msgid ""
-"The printing system (%s) will not be started automatically when the machine "
-"is booted.\n"
-"\n"
-"It is possible that the automatic starting was turned off by changing to a "
-"higher security level, because the printing system is a potential point for "
-"attacks.\n"
-"\n"
-"Do you want to have the automatic starting of the printing system turned on "
-"again?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2075 ../../printerdrake.pm_.c:2113
-#: ../../printerdrake.pm_.c:2143 ../../printerdrake.pm_.c:2176
-#: ../../printerdrake.pm_.c:2281
-msgid "Checking installed software..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2117
-msgid "Removing LPRng..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2147
-msgid "Removing LPD..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2205
-msgid "Select Printer Spooler"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2206
-msgid "Which printing system (spooler) do you want to use?"
-msgstr "Ų£Ł Ł†ŲøŲ§Ł… Ų·ŲØŲ§Ų¹Ų© ŲŖŲ±ŁŲÆ Ų£Ł† ŲŖŲ³ŲŖŲ®ŲÆŁ…Ų"
-
-#: ../../printerdrake.pm_.c:2239
-#, c-format
-msgid "Configuring printer \"%s\" ..."
-msgstr "ŲŲ¹ŲÆŲ§ŲÆ Ų§Ł„Ų·Ų§ŲØŲ¹Ų© \"%s\" ..."
-
-#: ../../printerdrake.pm_.c:2252
-msgid "Installing Foomatic ..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2309 ../../printerdrake.pm_.c:2348
-#: ../../printerdrake.pm_.c:2733 ../../printerdrake.pm_.c:2803
-msgid "Printer options"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2318
-msgid "Preparing PrinterDrake ..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2335 ../../printerdrake.pm_.c:2890
-msgid "Configuring applications..."
-msgstr "Ų¬Ų§Ų±Ł ŲŲ¹ŲÆŲ§ŲÆ Ų§Ł„ŲŖŲ·ŲØŁŁ‚Ų§ŲŖ..."
-
-#: ../../printerdrake.pm_.c:2355
-msgid "Would you like to configure printing?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2367
-msgid "Printing system: "
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2415
-msgid "Printerdrake"
-msgstr "Printerdrake"
-
-#: ../../printerdrake.pm_.c:2419
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; to view information about it; "
-"or to make a printer on a remote CUPS server available for Star Office/"
-"OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2420
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; or to view information about "
-"it."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2446
-msgid "Refresh printer list (to display all available remote CUPS printers)"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2464
-msgid "Change the printing system"
-msgstr "ŲŖŲŗŁŁŲ± Ł†ŲøŲ§Ł… Ų§Ł„Ų·ŲØŲ§Ų¹Ų©"
-
-#: ../../printerdrake.pm_.c:2469 ../../standalone/draknet_.c:278
-msgid "Normal Mode"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2625 ../../printerdrake.pm_.c:2675
-#: ../../printerdrake.pm_.c:2884
-msgid "Do you want to configure another printer?"
-msgstr "Ł‡Ł„ ŲŖŲ±ŁŲÆ ŲŖŲ¬Ų±ŲØŲ© ŲŲ¹ŲÆŲ§ŲÆ Ų·Ų§ŲØŲ¹Ų© Ų£Ų®Ų±Ł‰Ų"
-
-#: ../../printerdrake.pm_.c:2711
-msgid "Modify printer configuration"
-msgstr "ŲŖŲ¹ŲÆŁŁ„ Ų§Ų¹ŲÆŲ§ŲÆŲ§ŲŖ Ų§Ł„Ų·Ų§ŲØŲ¹Ų©"
-
-#: ../../printerdrake.pm_.c:2713
-#, c-format
-msgid ""
-"Printer %s\n"
-"What do you want to modify on this printer?"
-msgstr ""
-"Ų§Ł„Ų·Ų§ŲØŲ¹Ų© %s\n"
-"Ł‡Ł„ ŲŖŲ±ŁŲÆ ŲŖŲ¹ŲÆŁŁ„ ŲŖŁ„Ł Ų§Ł„Ų·Ų§ŲØŲ¹Ų©Ų"
-
-#: ../../printerdrake.pm_.c:2717
-msgid "Do it!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2722 ../../printerdrake.pm_.c:2777
-msgid "Printer connection type"
-msgstr "Ł†ŁŲ¹ ŁŲµŁ„Ų© Ų§Ł„Ų·Ų§ŲØŲ¹Ų©"
-
-#: ../../printerdrake.pm_.c:2723 ../../printerdrake.pm_.c:2781
-msgid "Printer name, description, location"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2725 ../../printerdrake.pm_.c:2796
-msgid "Printer manufacturer, model, driver"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2726 ../../printerdrake.pm_.c:2797
-msgid "Printer manufacturer, model"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2735 ../../printerdrake.pm_.c:2807
-msgid "Set this printer as the default"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2737 ../../printerdrake.pm_.c:2812
-msgid "Add this printer to Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2738 ../../printerdrake.pm_.c:2821
-msgid "Remove this printer from Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2739 ../../printerdrake.pm_.c:2830
-msgid "Print test pages"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2740 ../../printerdrake.pm_.c:2832
-msgid "Know how to use this printer"
-msgstr "Ų§Ų¹Ų±Ł ŁŁŁ ŲŖŲ³ŲŖŲ®ŲÆŁ… Ł‡Ų°Ł‡ Ų§Ł„Ų·Ų§ŲØŲ¹Ų©"
-
-#: ../../printerdrake.pm_.c:2742 ../../printerdrake.pm_.c:2834
-msgid "Remove printer"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2786
-#, c-format
-msgid "Removing old printer \"%s\" ..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2810
-msgid "Default printer"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2811
-#, c-format
-msgid "The printer \"%s\" is set as the default printer now."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2815 ../../printerdrake.pm_.c:2818
-msgid "Adding printer to Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2816
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully added to Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2819
-#, c-format
-msgid "Failed to add the printer \"%s\" to Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2824 ../../printerdrake.pm_.c:2827
-msgid "Removing printer from Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2825
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully removed from Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2828
-#, c-format
-msgid "Failed to remove the printer \"%s\" from Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2836
-#, c-format
-msgid "Do you really want to remove the printer \"%s\"?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2838
-#, c-format
-msgid "Removing printer \"%s\" ..."
-msgstr ""
-
-#: ../../proxy.pm_.c:29 ../../proxy.pm_.c:37 ../../proxy.pm_.c:58
-#: ../../proxy.pm_.c:78
-msgid "Proxy configuration"
-msgstr "ŲŲ¹ŲÆŲ§ŲÆ Ų§Ł„ŲØŲ±ŁŁŲ³Ł"
-
-#: ../../proxy.pm_.c:30
-msgid ""
-"Welcome to the proxy configuration utility.\n"
-"\n"
-"Here, you'll be able to set up your http and ftp proxies\n"
-"with or without login and password\n"
-msgstr ""
-
-#: ../../proxy.pm_.c:38
-msgid ""
-"Please fill in the http proxy informations\n"
-"Leave it blank if you don't want an http proxy"
-msgstr ""
-
-#: ../../proxy.pm_.c:39 ../../proxy.pm_.c:60
-msgid "URL"
-msgstr "Ų¹Ł†ŁŲ§Ł†"
-
-#: ../../proxy.pm_.c:40 ../../proxy.pm_.c:61
-msgid "port"
-msgstr ""
-
-#: ../../proxy.pm_.c:44
-msgid "Url should begin with 'http:'"
-msgstr ""
-
-#: ../../proxy.pm_.c:48 ../../proxy.pm_.c:69
-msgid "The port part should be numeric"
-msgstr ""
-
-#: ../../proxy.pm_.c:59
-msgid ""
-"Please fill in the ftp proxy informations\n"
-"Leave it blank if you don't want an ftp proxy"
-msgstr ""
-
-#: ../../proxy.pm_.c:65
-msgid "Url should begin with 'ftp:'"
-msgstr ""
-
-#: ../../proxy.pm_.c:79
-msgid ""
-"Please enter proxy login and password, if any.\n"
-"Leave it blank if you don't want login/passwd"
-msgstr ""
-
-#: ../../proxy.pm_.c:80
-msgid "login"
-msgstr ""
-
-#: ../../proxy.pm_.c:82
-msgid "password"
-msgstr ""
-
-#: ../../proxy.pm_.c:84
-msgid "re-type password"
-msgstr ""
-
-#: ../../proxy.pm_.c:88
-msgid "The passwords don't match. Try again!"
-msgstr ""
-
-#: ../../raid.pm_.c:35
-#, c-format
-msgid "Can't add a partition to _formatted_ RAID md%d"
-msgstr ""
-
-#: ../../raid.pm_.c:111
-#, c-format
-msgid "Can't write file %s"
-msgstr ""
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed"
-msgstr ""
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed (maybe raidtools are missing?)"
-msgstr ""
-
-#: ../../raid.pm_.c:152
-#, c-format
-msgid "Not enough partitions for RAID level %d\n"
-msgstr ""
-
-#: ../../services.pm_.c:14
-msgid "Launch the ALSA (Advanced Linux Sound Architecture) sound system"
-msgstr ""
-
-#: ../../services.pm_.c:15
-msgid "Anacron a periodic command scheduler."
-msgstr ""
-
-#: ../../services.pm_.c:16
-msgid ""
-"apmd is used for monitoring batery status and logging it via syslog.\n"
-"It can also be used for shutting down the machine when the battery is low."
-msgstr ""
-
-#: ../../services.pm_.c:18
-msgid ""
-"Runs commands scheduled by the at command at the time specified when\n"
-"at was run, and runs batch commands when the load average is low enough."
-msgstr ""
-
-#: ../../services.pm_.c:20
-msgid ""
-"cron is a standard UNIX program that runs user-specified programs\n"
-"at periodic scheduled times. vixie cron adds a number of features to the "
-"basic\n"
-"UNIX cron, including better security and more powerful configuration options."
-msgstr ""
-
-#: ../../services.pm_.c:23
-msgid ""
-"GPM adds mouse support to text-based Linux applications such the\n"
-"Midnight Commander. It also allows mouse-based console cut-and-paste "
-"operations,\n"
-"and includes support for pop-up menus on the console."
-msgstr ""
-
-#: ../../services.pm_.c:26
-msgid ""
-"HardDrake runs a hardware probe, and optionally configures\n"
-"new/changed hardware."
-msgstr ""
-
-#: ../../services.pm_.c:28 ../../standalone/logdrake_.c:412
-msgid ""
-"Apache is a World Wide Web server. It is used to serve HTML files and CGI."
-msgstr ""
-
-#: ../../services.pm_.c:29
-msgid ""
-"The internet superserver daemon (commonly called inetd) starts a\n"
-"variety of other internet services as needed. It is responsible for "
-"starting\n"
-"many services, including telnet, ftp, rsh, and rlogin. Disabling inetd "
-"disables\n"
-"all of the services it is responsible for."
-msgstr ""
-
-#: ../../services.pm_.c:33
-msgid ""
-"Launch packet filtering for Linux kernel 2.2 series, to set\n"
-"up a firewall to protect your machine from network attacks."
-msgstr ""
-
-#: ../../services.pm_.c:35
-msgid ""
-"This package loads the selected keyboard map as set in\n"
-"/etc/sysconfig/keyboard. This can be selected using the kbdconfig utility.\n"
-"You should leave this enabled for most machines."
-msgstr ""
-
-#: ../../services.pm_.c:38
-msgid ""
-"Automatic regeneration of kernel header in /boot for\n"
-"/usr/include/linux/{autoconf,version}.h"
-msgstr ""
-
-#: ../../services.pm_.c:40
-msgid "Automatic detection and configuration of hardware at boot."
-msgstr ""
-
-#: ../../services.pm_.c:41
-msgid ""
-"Linuxconf will sometimes arrange to perform various tasks\n"
-"at boot-time to maintain the system configuration."
-msgstr ""
-
-#: ../../services.pm_.c:43
-msgid ""
-"lpd is the print daemon required for lpr to work properly. It is\n"
-"basically a server that arbitrates print jobs to printer(s)."
-msgstr ""
-
-#: ../../services.pm_.c:45
-msgid ""
-"Linux Virtual Server, used to build a high-performance and highly\n"
-"available server."
-msgstr ""
-
-#: ../../services.pm_.c:47 ../../standalone/logdrake_.c:413
-msgid ""
-"named (BIND) is a Domain Name Server (DNS) that is used to resolve host "
-"names to IP addresses."
-msgstr ""
-
-#: ../../services.pm_.c:48
-msgid ""
-"Mounts and unmounts all Network File System (NFS), SMB (Lan\n"
-"Manager/Windows), and NCP (NetWare) mount points."
-msgstr ""
-
-#: ../../services.pm_.c:50
-msgid ""
-"Activates/Deactivates all network interfaces configured to start\n"
-"at boot time."
-msgstr ""
-
-#: ../../services.pm_.c:52
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP networks.\n"
-"This service provides NFS server functionality, which is configured via the\n"
-"/etc/exports file."
-msgstr ""
-
-#: ../../services.pm_.c:55
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP\n"
-"networks. This service provides NFS file locking functionality."
-msgstr ""
-
-#: ../../services.pm_.c:57
-msgid ""
-"Automatically switch on numlock key locker under console\n"
-"and XFree at boot."
-msgstr ""
-
-#: ../../services.pm_.c:59
-msgid "Support the OKI 4w and compatible winprinters."
-msgstr ""
-
-#: ../../services.pm_.c:60
-msgid ""
-"PCMCIA support is usually to support things like ethernet and\n"
-"modems in laptops. It won't get started unless configured so it is safe to "
-"have\n"
-"it installed on machines that don't need it."
-msgstr ""
-
-#: ../../services.pm_.c:63
-msgid ""
-"The portmapper manages RPC connections, which are used by\n"
-"protocols such as NFS and NIS. The portmap server must be running on "
-"machines\n"
-"which act as servers for protocols which make use of the RPC mechanism."
-msgstr ""
-
-#: ../../services.pm_.c:66 ../../standalone/logdrake_.c:415
-msgid ""
-"Postfix is a Mail Transport Agent, which is the program that moves mail from "
-"one machine to another."
-msgstr ""
-
-#: ../../services.pm_.c:67
-msgid ""
-"Saves and restores system entropy pool for higher quality random\n"
-"number generation."
-msgstr ""
-
-#: ../../services.pm_.c:69
-msgid ""
-"Assign raw devices to block devices (such as hard drive\n"
-"partitions), for the use of applications such as Oracle"
-msgstr ""
-
-#: ../../services.pm_.c:71
-msgid ""
-"The routed daemon allows for automatic IP router table updated via\n"
-"the RIP protocol. While RIP is widely used on small networks, more complex\n"
-"routing protocols are needed for complex networks."
-msgstr ""
-
-#: ../../services.pm_.c:74
-msgid ""
-"The rstat protocol allows users on a network to retrieve\n"
-"performance metrics for any machine on that network."
-msgstr ""
-
-#: ../../services.pm_.c:76
-msgid ""
-"The rusers protocol allows users on a network to identify who is\n"
-"logged in on other responding machines."
-msgstr ""
-
-#: ../../services.pm_.c:78
-msgid ""
-"The rwho protocol lets remote users get a list of all of the users\n"
-"logged into a machine running the rwho daemon (similiar to finger)."
-msgstr ""
-
-#: ../../services.pm_.c:80
-msgid "Launch the sound system on your machine"
-msgstr ""
-
-#: ../../services.pm_.c:81
-msgid ""
-"Syslog is the facility by which many daemons use to log messages\n"
-"to various system log files. It is a good idea to always run syslog."
-msgstr ""
-
-#: ../../services.pm_.c:83
-msgid "Load the drivers for your usb devices."
-msgstr ""
-
-#: ../../services.pm_.c:84
-msgid "Starts the X Font Server (this is mandatory for XFree to run)."
-msgstr ""
-
-#: ../../services.pm_.c:110 ../../services.pm_.c:152
-msgid "Choose which services should be automatically started at boot time"
-msgstr ""
-
-#: ../../services.pm_.c:122
-msgid "Printing"
-msgstr ""
-
-#: ../../services.pm_.c:123
-msgid "Internet"
-msgstr "ŲŁ†ŲŖŲ±Ł†ŲŖ"
-
-#: ../../services.pm_.c:126
-msgid "File sharing"
-msgstr ""
-
-#: ../../services.pm_.c:128 ../../standalone/drakbackup_.c:934
-msgid "System"
-msgstr "Ł†ŲøŲ§Ł…"
-
-#: ../../services.pm_.c:133
-msgid "Remote Administration"
-msgstr ""
-
-#: ../../services.pm_.c:141
-msgid "Database Server"
-msgstr "Ų®Ų§ŲÆŁ… Ł‚ŁŲ§Ų¹ŲÆ ŲØŁŲ§Ł†Ų§ŲŖ"
-
-#: ../../services.pm_.c:170
-#, c-format
-msgid "Services: %d activated for %d registered"
-msgstr ""
-
-#: ../../services.pm_.c:186
-msgid "Services"
-msgstr "Ų§Ł„Ų®ŲÆŁ…Ų§ŲŖ"
-
-#: ../../services.pm_.c:198
-msgid "running"
-msgstr ""
-
-#: ../../services.pm_.c:198
-msgid "stopped"
-msgstr ""
-
-#: ../../services.pm_.c:212
-msgid "Services and deamons"
-msgstr ""
-
-#: ../../services.pm_.c:217
-msgid ""
-"No additional information\n"
-"about this service, sorry."
-msgstr ""
-
-#: ../../services.pm_.c:224
-msgid "On boot"
-msgstr ""
-
-#: ../../services.pm_.c:236
-msgid "Start"
-msgstr "Ų§ŲØŲÆŲ£"
-
-#: ../../services.pm_.c:236
-msgid "Stop"
-msgstr "ŲŖŁŁ‚Ł"
-
-#: ../../share/advertising/00-thanks.pl_.c:9
-msgid "Thank you for choosing Mandrake Linux 8.2"
-msgstr ""
-
-#: ../../share/advertising/00-thanks.pl_.c:10
-msgid "Welcome to the Open Source world"
-msgstr ""
-
-#: ../../share/advertising/00-thanks.pl_.c:11
-msgid ""
-"The success of MandrakeSoft is based upon the principle of Free Software. "
-"Your new operating system is the result of collaborative work on the part of "
-"the worldwide Linux Community"
-msgstr ""
-
-#: ../../share/advertising/01-gnu.pl_.c:9
-msgid "Join the Free Software world"
-msgstr ""
-
-#: ../../share/advertising/01-gnu.pl_.c:10
-msgid ""
-"Get to know the Open Source community and become a member. Learn, teach, and "
-"help others by joining the many discussion forums that you will find in our "
-"\"Community\" webpages"
-msgstr ""
-
-#: ../../share/advertising/02-internet.pl_.c:9
-msgid "Internet and Messaging"
-msgstr "Ų§Ł„ŲŁ†ŲŖŲ±Ł†ŲŖ Ł Ų§Ł„Ł…Ų±Ų§Ų³Ł„Ų©"
-
-#: ../../share/advertising/02-internet.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best software to access everything the "
-"Internet has to offer: Surf the web & view animations with Mozilla and "
-"Konqueror, exchange email & organize your personal information with "
-"Evolution and Kmail, and much more"
-msgstr ""
-
-#: ../../share/advertising/03-graphic.pl_.c:9
-msgid "Multimedia and Graphics"
-msgstr "ŁŲ³Ų§Ų¦Ų· Ł…ŲŖŲ¹ŲÆŲÆŲ© Ł Ų±Ų³ŁŁ…ŁŲ§ŲŖ"
-
-#: ../../share/advertising/03-graphic.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 lets you push your multimedia computer to its limits! Use "
-"the latest software to play music and audio files, edit and organize your "
-"images and photos, watch TV and videos, and much more"
-msgstr ""
-
-#: ../../share/advertising/04-develop.pl_.c:9
-msgid "Development"
-msgstr ""
-
-#: ../../share/advertising/04-develop.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 is the ultimate development platform. Discover the power "
-"of the GNU gcc compiler as well as the best Open Source development "
-"environments"
-msgstr ""
-
-#: ../../share/advertising/05-contcenter.pl_.c:9
-msgid "Mandrake Control Center"
-msgstr "Ł…Ų±ŁŲ² ŲŖŲ­ŁŁ… Mandrake"
-
-#: ../../share/advertising/05-contcenter.pl_.c:10
-msgid ""
-"The Mandrake Linux 8.2 Control Center is a one-stop location for fully "
-"customizing and configuring your Mandrake system"
-msgstr ""
-
-#: ../../share/advertising/06-user.pl_.c:9
-msgid "User interfaces"
-msgstr "ŁŲ§Ų¬Ł‡Ų§ŲŖ Ų§Ł„ŲŲ³ŲŖŲ®ŲÆŲ§Ł…"
-
-#: ../../share/advertising/06-user.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides 11 different graphical desktop environments and "
-"window managers to choose from including GNOME 1.4, KDE 2.2.2, Window Maker "
-"0.8, and the rest"
-msgstr ""
-
-#: ../../share/advertising/07-server.pl_.c:9
-msgid "Server Software"
-msgstr ""
-
-#: ../../share/advertising/07-server.pl_.c:10
-msgid ""
-"Transform your machine into a powerful server with just a few clicks of the "
-"mouse: Web server, email, firewall, router, file and print server, ..."
-msgstr ""
-
-#: ../../share/advertising/08-games.pl_.c:9
-msgid "Games"
-msgstr "Ų§Ł„Ų§Ł„Ų¹Ų§ŲØ"
-
-#: ../../share/advertising/08-games.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best Open Source games - arcade, action, "
-"cards, sports, strategy, ..."
-msgstr ""
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:9
-msgid "MandrakeCampus"
-msgstr ""
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:10
-msgid ""
-"Would you like to learn Linux simply, quickly, and for free? MandrakeSoft "
-"provides free Linux training, as well as a way to test your progress, at "
-"MandrakeCampus -- our online training center"
-msgstr ""
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:9
-msgid "MandrakeExpert"
-msgstr ""
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:10
-msgid ""
-"Quality support from the Linux Community, and from MandrakeSoft, is just "
-"around the corner. And if you're already a Linux veteran, become an \"Expert"
-"\" and share your knowledge at our support website"
-msgstr ""
-
-#: ../../share/advertising/11-consul.pl_.c:9
-msgid "MandrakeConsulting"
-msgstr "Ų§Ų³ŲŖŲ´Ų§Ų±Ų§ŲŖ Mandrake"
-
-#: ../../share/advertising/11-consul.pl_.c:10
-msgid ""
-"For all of your IT projects, our consultants are ready to analyze your "
-"requirements and offer a customized solution. Benefit from MandrakeSoft's "
-"vast experience as a Linux producer to provide a true IT alternative for "
-"your business organization"
-msgstr ""
-
-#: ../../share/advertising/12-MDKstore.pl_.c:9
-msgid "MandrakeStore"
-msgstr ""
-
-#: ../../share/advertising/12-MDKstore.pl_.c:10
-msgid ""
-"A full range of Linux solutions, as well as special offers on products and "
-"'goodies', are available online at our e-store"
-msgstr ""
-
-#: ../../share/advertising/13-Nvert.pl_.c:9
-msgid ""
-"For more information on MandrakeSoft's Professional Services and commercial "
-"offerings, please see the following web page:"
-msgstr ""
-
-#: ../../share/advertising/13-Nvert.pl_.c:11
-msgid "http://www.mandrakesoft.com/sales/contact"
-msgstr ""
-
-#: ../../standalone.pm_.c:25
-msgid "Installing packages..."
-msgstr ""
-
-#: ../../standalone/diskdrake_.c:85
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I'll try to go on blanking bad partitions"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:45
-msgid "Error!"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:46
-#, c-format
-msgid "I can't find needed image file `%s'."
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:48
-msgid "Auto Install Configurator"
-msgstr "Ų£ŲÆŲ§Ų© Ų§Ų¹ŲÆŲ§ŲÆ Ų§Ł„Ł…Ų«ŲØŁ‘ŲŖ Ų§Ł„Ų¢Ł„Ł"
-
-#: ../../standalone/drakautoinst_.c:49
-msgid ""
-"You are about to configure an Auto Install floppy. This feature is somewhat "
-"dangerous and must be used circumspectly.\n"
-"\n"
-"With that feature, you will be able to replay the installation you've "
-"performed on this computer, being interactively prompted for some steps, in "
-"order to change their values.\n"
-"\n"
-"For maximum safety, the partitioning and formatting will never be performed "
-"automatically, whatever you chose during the install of this computer.\n"
-"\n"
-"Do you want to continue?"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:71
-msgid "Automatic Steps Configuration"
-msgstr "ŲŲ¹ŲÆŲ§ŲÆ Ų§Ł„Ų®Ų·ŁŲ§ŲŖ Ų§Ł„Ų¢Ł„ŁŲ©"
-
-#: ../../standalone/drakautoinst_.c:72
-msgid ""
-"Please choose for each step whether it will replay like your install, or it "
-"will be manual"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:145
-msgid ""
-"\n"
-"Welcome.\n"
-"\n"
-"The parameters of the auto-install are available in the sections on the left"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:243 ../../standalone/drakgw_.c:671
-#: ../../standalone/scannerdrake_.c:106
-msgid "Congratulations!"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:244
-msgid ""
-"The floppy has been successfully generated.\n"
-"You may now replay your installation."
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:282
-msgid "Auto Install"
-msgstr "ŲŖŲ«ŲØŁŲŖ Ų¢Ł„Ł"
-
-#: ../../standalone/drakautoinst_.c:352
-msgid "Add an item"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:359
-msgid "Remove the last item"
-msgstr "Ų£Ų²Ł„ Ų§Ł„Ł…Ų§ŲÆŲ© Ų§Ł„Ų£Ų®ŁŲ±Ų©"
-
-#: ../../standalone/drakbackup_.c:448 ../../standalone/drakbackup_.c:451
-#: ../../standalone/drakbackup_.c:455
-msgid ""
-"***********************************************************************\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:449
-msgid ""
-"\n"
-" DrakBackup Report \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:450
-msgid ""
-"\n"
-" DrakBackup Daemon Report\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:453
-msgid ""
-"\n"
-"\n"
-"***********************************************************************\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:454
-msgid ""
-"\n"
-" DrakBackup Report Details\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:476
-msgid "total progess"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:555 ../../standalone/drakbackup_.c:602
-msgid "Backup system files..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:603 ../../standalone/drakbackup_.c:667
-msgid "Hard Disk Backup files..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:615
-msgid "Backup User files..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:616
-msgid "Hard Disk Backup Progress..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:666
-msgid "Backup Other files..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:674
-#, c-format
-msgid ""
-"file list send by FTP : %s\n"
-" "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:677
-msgid ""
-"\n"
-"(!) FTP connexion problem: It was not possible to send your backup files by "
-"FTP.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:687
-msgid "(!) Error during mail sending. \n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:728 ../../standalone/drakbackup_.c:739
-#: ../../standalone/drakbackup_.c:750 ../../standalone/drakfont_.c:787
-msgid "File Selection"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:755
-msgid "Select the files or directories and click on 'Add'"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:790
-msgid ""
-"\n"
-"Please check all options that you need.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:791
-msgid ""
-"These options can backup and restore all files in your /etc directory.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:792
-msgid "Backup your System files. ( /etc directory )"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:793
-msgid "Use incremental backup (do not replace old backups)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:794
-msgid "Do not include critical files (passwd, group, fstab)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:795
-msgid ""
-"With this option you will be able to restore any version\n"
-" of your /etc directory."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:812
-msgid "Please check all users that you want to include in your backup."
-msgstr "Ų±Ų¬Ų§Ų Ų§Ų®ŲŖŲ± ŁŁ„ Ų§Ł„Ł…Ų³ŲŖŲ®ŲÆŁ…ŁŁ† Ų§Ł„Ų°ŁŁ† ŲŖŲ±ŁŲÆ ŲŖŲ¶Ł…ŁŁ†Ł‡Ł… ŁŁ Ų§Ł„Ł†Ų³Ų® Ų§Ł„ŲŲ­ŲŖŁŲ§Ų·Ł."
-
-#: ../../standalone/drakbackup_.c:839
-msgid "Do not include the browser cache"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:840 ../../standalone/drakbackup_.c:864
-msgid "Use Incremental Backups (do not replace old backups)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:862 ../../standalone/drakfont_.c:827
-msgid "Remove Selected"
-msgstr "Ų§Ų²Ł„ Ų§Ł„Ł…Ų§ŲÆŲ© Ų§Ł„Ł…Ų®ŲŖŲ§Ų±Ų©"
-
-#: ../../standalone/drakbackup_.c:900
-msgid "Windows (FAT32)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:939
-msgid "Users"
-msgstr "Ų§Ł„Ł…Ų³ŲŖŲ®ŲÆŁ…ŁŁ†"
-
-#: ../../standalone/drakbackup_.c:964
-msgid "Use FTP connection to backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:967
-msgid "Please enter the host name or IP."
-msgstr "ŁŲ¶Ł„Ų§ Ų£ŲÆŲ®Ł„ Ų§Ų³Ł… Ų§Ł„Ł…Ų³ŲŖŲ¶ŁŁ Ų£Ł Ų¹Ł†ŁŲ§Ł† IP."
-
-#: ../../standalone/drakbackup_.c:972
-msgid ""
-"Please enter the directory to\n"
-" put the backup on this host."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:977
-msgid "Please enter your login"
-msgstr "Ų±Ų¬Ų§Ų Ų£ŲÆŲ®Ł„ Ų§Ų³Ł… Ų§Ł„ŲÆŲ®ŁŁ„"
-
-#: ../../standalone/drakbackup_.c:982
-msgid "Please enter your password"
-msgstr "Ų±Ų¬Ų§Ų ŁŁ„Ł…Ų© Ų§Ł„Ł…Ų±ŁŲ±"
-
-#: ../../standalone/drakbackup_.c:988
-msgid "Remember this password"
-msgstr "ŲŖŲ°ŁŁ‘Ų± ŁŁ„Ł…Ų© Ų§Ł„Ų³Ł‘Ų±Ł‘ Ł‡Ų°Ł‡ "
-
-#: ../../standalone/drakbackup_.c:1052 ../../standalone/drakbackup_.c:2048
-msgid "FTP Connection"
-msgstr "ŁŲµŁ„Ų© FTP"
-
-#: ../../standalone/drakbackup_.c:1059 ../../standalone/drakbackup_.c:2056
-msgid "Secure Connection"
-msgstr "ŁŲµŁ„Ų© Ų¢Ł…Ł†Ų©"
-
-#: ../../standalone/drakbackup_.c:1085 ../../standalone/drakbackup_.c:2889
-msgid "Use CD/DVDROM to backup"
-msgstr "ŲŁ„Ł‰ Ų§Ł„Ł…Ų³Ų§Ų¹ŲÆ CD/DVDROM Ų§Ł„Ų§Ų³ŲŖŲ¹Ł…Ų§Ł„ "
-
-#: ../../standalone/drakbackup_.c:1088 ../../standalone/drakbackup_.c:2893
-msgid "Please choose your CD space"
-msgstr "Ų±Ų¬Ų§Ų Ų§Ų®ŲŖŲ± Ł…Ų³Ų§Ų­Ų© Ų§Ł„Ł‚Ų±Ųµ Ų§Ł„Ł…ŲÆŁ…Ų¬"
-
-#: ../../standalone/drakbackup_.c:1094 ../../standalone/drakbackup_.c:2905
-msgid "Please check if you are using CDRW media"
-msgstr "ŁŲ¶Ł„Ų§ Ł‚Ł… ŲØŲ§Ł„ŲŖŲ£Ų´ŁŲ± Ł‡Ł†Ų§ Ų§Ų°Ų§ ŁŁ†ŲŖ ŲŖŲ³ŲŖŲ®ŲÆŁ… ŁŲ³ŁŲ· CDRW"
-
-#: ../../standalone/drakbackup_.c:1100 ../../standalone/drakbackup_.c:2911
-msgid "Please check if you want to erase your CDRW before"
-msgstr "ŁŁŁ…Ų§ Ł…Ų¶Ł‰ CDRW Ł…Ł† ŁŲ¶Ł„Ł ŁŲ­Ųµ ,ŲŲ°Ų§ Ų£Ų±ŲÆŲŖ Ų£Ł† ŲŖŁ…Ų­Ł "
-
-#: ../../standalone/drakbackup_.c:1106
-msgid ""
-"Please check if you want to include\n"
-" install boot on your CD."
-msgstr ""
-" Ł…Ł† ŁŲ¶Ł„Ł ŁŲ­Ųµ ŲŲ°Ų§ Ų£Ų±ŲÆŲŖ Ų£Ł† ŲŖŲŖŲ¶Ł…Ł‘Ł† \n"
-"Ų±ŁŁ‘ŲØ Ų§Ł„Ų¬ŲÆŲ± Ų¹Ł„Ł‰ Ł‚Ų±ŲµŁ Ų§Ł„Ł…ŲÆŁ…Ų¬"
-
-#: ../../standalone/drakbackup_.c:1112
-msgid ""
-"Please enter your CD Writer device name\n"
-" ex: 0,1,0"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1153
-msgid "Use tape to backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1156
-msgid "Please enter the device name to use for backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1162 ../../standalone/drakbackup_.c:1203
-#: ../../standalone/drakbackup_.c:2013
-msgid ""
-"Please enter the maximum size\n"
-" allowed for Drakbackup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1195 ../../standalone/drakbackup_.c:2005
-msgid "Please enter the directory to save:"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1209 ../../standalone/drakbackup_.c:2019
-msgid "Use quota for backup files."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1267
-msgid "Network"
-msgstr "Ų§Ł„Ų´ŲØŁŲ©"
-
-#: ../../standalone/drakbackup_.c:1272
-msgid "CDROM / DVDROM"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1277
-msgid "HardDrive / NFS"
-msgstr "HardDrive / NFS"
-
-#: ../../standalone/drakbackup_.c:1297 ../../standalone/drakbackup_.c:1301
-#: ../../standalone/drakbackup_.c:1305
-msgid "hourly"
-msgstr "ŁŁ„Ł‘ Ų³Ų§Ų¹Ų© "
-
-#: ../../standalone/drakbackup_.c:1298 ../../standalone/drakbackup_.c:1302
-#: ../../standalone/drakbackup_.c:1305
-msgid "daily"
-msgstr "ŁŁŁ…ŁŁ‘Ł‹Ų§ "
-
-#: ../../standalone/drakbackup_.c:1299 ../../standalone/drakbackup_.c:1303
-#: ../../standalone/drakbackup_.c:1305
-msgid "weekly"
-msgstr "Ų£Ų³ŲØŁŲ¹ŁŁ‘Ų§"
-
-#: ../../standalone/drakbackup_.c:1300 ../../standalone/drakbackup_.c:1304
-#: ../../standalone/drakbackup_.c:1305
-msgid "monthly"
-msgstr "Ų´Ł‡Ų±ŁŲ§"
-
-#: ../../standalone/drakbackup_.c:1312
-msgid "Use daemon"
-msgstr "Ų§Ų³ŲŖŲ®ŲÆŁ… Ų§Ł„Ł…Ų±Ų§Ł‚ŲØ"
-
-#: ../../standalone/drakbackup_.c:1317
-msgid ""
-"Please choose the time \n"
-"interval between each backup"
-msgstr ""
-"ŁŲ¶Ł„Ų§ Ų§Ų®ŲŖŲ± Ų§Ł„ŁŲŖŲ±Ų© \n"
-"Ł…Ų§ ŲØŁŁ† ŁŁ„ Ų¹Ł…Ł„ŁŲ© Ł†Ų³Ų® Ų§Ų­ŲŖŁŲ§Ų·Ł"
-
-#: ../../standalone/drakbackup_.c:1323
-msgid ""
-"Please choose the\n"
-"media for backup."
-msgstr ""
-"Ų±Ų¬Ų§Ų Ų§Ų®ŲŖŲ±\n"
-"ŁŲ³ŁŲ· Ų§Ł„Ł†Ų³Ų® Ų§Ł„Ų§Ų­ŲŖŁŲ§Ų·Ł"
-
-#: ../../standalone/drakbackup_.c:1327
-msgid "Use Hard Drive with daemon"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1329
-msgid "Use FTP with daemon"
-msgstr "FTPŲ§Ų³ŲŖŲ®ŲÆŁ… Ł…Ų¹ Ų§Ł„Ł…Ų±Ų§Ł‚ŲØ"
-
-#: ../../standalone/drakbackup_.c:1333
-msgid "Please be sure that the cron daemon is included in your services."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1369
-msgid "Send mail report after each backup to :"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1411
-msgid "What"
-msgstr "Ł…Ų§Ų°Ų§ "
-
-#: ../../standalone/drakbackup_.c:1416
-msgid "Where"
-msgstr "Ų£ŁŁ†"
-
-#: ../../standalone/drakbackup_.c:1421
-msgid "When"
-msgstr "Ł…ŲŖŁ‰ "
-
-#: ../../standalone/drakbackup_.c:1426
-msgid "More Options"
-msgstr "Ų®ŁŲ§Ų±Ų§ŲŖ Ų£ŁŲ«Ų±"
-
-#: ../../standalone/drakbackup_.c:1445 ../../standalone/drakbackup_.c:2801
-msgid "Drakbackup Configuration"
-msgstr "ŲŲ¹ŲÆŲ§ŲÆŲ§ŲŖ Drakbackup"
-
-#: ../../standalone/drakbackup_.c:1463
-msgid "Please choose where you want to backup"
-msgstr "Ų±Ų¬Ų§Ų Ų§Ų®ŲŖŲ± Ų£ŁŁ† ŲŖŲ±ŁŲÆ Ų§Ł„Ł†Ų³Ų® Ų§Ł„Ų§Ų­ŲŖŁŲ§Ų·Ł."
-
-#: ../../standalone/drakbackup_.c:1465
-msgid "on Hard Drive"
-msgstr "Ų¹Ł„Ł‰ Ų§Ł„Ł‚Ų±Ųµ Ų§Ł„ŲµŁ‘Ł„ŲØ"
-
-#: ../../standalone/drakbackup_.c:1476
-msgid "across Network"
-msgstr "Ų¹ŲØŲ± Ų§Ł„Ų´Ł‘ŲØŁŲ©"
-
-#: ../../standalone/drakbackup_.c:1540
-msgid "Please choose what you want to backup"
-msgstr "Ų±Ų¬Ų§Ų Ų§Ų®ŲŖŲ± Ł…Ų§ ŲŖŲ±ŁŲÆ Ł†Ų³Ų®Ł‡ Ų§Ų­ŲŖŁŲ§Ų·ŁŲ§Ł‹"
-
-#: ../../standalone/drakbackup_.c:1541
-msgid "Backup system"
-msgstr "Ł†ŲøŲ§Ł… Ų§Ł„Ł…Ų³Ų§Ų¹ŲÆ"
-
-#: ../../standalone/drakbackup_.c:1542
-msgid "Backup Users"
-msgstr "Ł…Ų³ŲŖŲ®ŲÆŁ…Ł Ų§Ł„Ł…Ų³Ų§Ų¹ŲÆ"
-
-#: ../../standalone/drakbackup_.c:1545
-msgid "Select user manually"
-msgstr "Ų§Ų®ŲŖŲ±Ų§Ł„Ł…Ų³ŲŖŲ®ŲÆŁ… ŁŲÆŁŁŁ‘Ł‹Ų§"
-
-#: ../../standalone/drakbackup_.c:1627
-msgid ""
-"\n"
-"Backup Sources: \n"
-msgstr ""
-"\n"
-"Ł…ŲµŲ§ŲÆŲ± Ų§Ł„Ł…Ų³Ų§Ų¹ŲÆ :\n"
-
-#: ../../standalone/drakbackup_.c:1628
-msgid ""
-"\n"
-"- System Files:\n"
-msgstr ""
-"\n"
-"-Ł…Ł„ŁŁ‘Ų§ŲŖ Ų§Ł„Ł†Ł‘ŲøŲ§Ł… :\n"
-
-#: ../../standalone/drakbackup_.c:1630
-msgid ""
-"\n"
-"- User Files:\n"
-msgstr ""
-"\n"
-"-Ł…Ł„ŁŁ‘Ų§ŲŖ Ų§Ł„Ł…Ų³ŲŖŲ®ŲÆŁ…:\n"
-
-#: ../../standalone/drakbackup_.c:1632
-msgid ""
-"\n"
-"- Other Files:\n"
-msgstr ""
-"\n"
-"-Ų§Ł„Ł…Ł„ŁŁ‘Ų§ŲŖ Ų§Ł„Ų£Ų®Ų±Ł‰:\n"
-
-#: ../../standalone/drakbackup_.c:1634
-#, c-format
-msgid ""
-"\n"
-"- Save on Hard drive on path : %s\n"
-msgstr ""
-"\n"
-"- Ų§Ų­ŁŲÆ Ų§Ł„Ł‚Ų±Ųµ Ų§Ł„ŲµŁ‘Ł„ŲØ Ų¹Ł„Ł‰ Ų§Ł„Ų·Ł‘Ų±ŁŁ‚ :%s\n"
-
-#: ../../standalone/drakbackup_.c:1635
-#, c-format
-msgid ""
-"\n"
-"- Save on FTP on host : %s\n"
-msgstr ""
-"\n"
-"-FTP Ł Ų¹Ł„Ł‰ host Ų§Ų­ŁŲÆ Ų¹Ł„Ł‰ : %s\n"
-
-#: ../../standalone/drakbackup_.c:1636
-#, c-format
-msgid ""
-"\t\t user name: %s\n"
-"\t\t on path: %s \n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1637
-msgid ""
-"\n"
-"- Options:\n"
-msgstr ""
-"\n"
-"- Ų®ŁŲ§Ų±Ų§ŲŖ:\n"
-
-#: ../../standalone/drakbackup_.c:1638
-msgid "\tDo not include System Files\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1639
-msgid "\tBackups use tar and bzip2\n"
-msgstr "\tBackups use tar and bzip2\n"
-
-#: ../../standalone/drakbackup_.c:1640
-msgid "\tBackups use tar and gzip\n"
-msgstr "\tBackups use tar and gzip\n"
-
-#: ../../standalone/drakbackup_.c:1641
-#, c-format
-msgid ""
-"\n"
-"- Daemon (%s) include :\n"
-msgstr ""
-"\n"
-"-Daemon (%s) include :\n"
-
-#: ../../standalone/drakbackup_.c:1642
-msgid "\t-Hard drive.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1643
-msgid "\t-CDROM.\n"
-msgstr "\t-CDROM.\n"
-
-#: ../../standalone/drakbackup_.c:1644
-msgid "\t-Network by FTP.\n"
-msgstr "\t-Network by FTP.\n"
-
-#: ../../standalone/drakbackup_.c:1645
-msgid "\t-Network by SSH.\n"
-msgstr "\t-Network by SSH.\n"
-
-#: ../../standalone/drakbackup_.c:1647
-msgid "No configuration, please click Wizard or Advanced.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1652
-msgid ""
-"List of data to restore:\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1753
-msgid ""
-"List of data corrupted:\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1755
-msgid "Please uncheck or remove it on next time."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1765
-msgid "Backup files are corrupted"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1786
-msgid " All your selectionned data have been "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1787
-#, c-format
-msgid " Successfuly Restored on %s "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1886
-msgid " Restore Configuration "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1904
-msgid "OK to restore the other files."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1922
-msgid "User list to restore (only the most recent date per user is important)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1972
-msgid "Backup the system files before:"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1974
-msgid "please choose the date to restore"
-msgstr "Ų±Ų¬Ų§Ų Ų§Ų®ŲŖŲ± ŲŖŲ§Ų±ŁŲ® Ų§Ł„ŲŲ³ŲŖŲ¹Ų§ŲÆŲ©"
-
-#: ../../standalone/drakbackup_.c:2002
-msgid "Use Hard Disk to backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2083
-msgid "Restore from Hard Disk."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2085
-msgid "Please enter the directory where backups are stored"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2143
-msgid "Select another media to restore from"
-msgstr "Ų§Ų®ŲŖŲ± ŁŲ³ŁŲ· Ų¢Ų®Ų± Ł„Ł„Ų§Ų³ŲŖŲ¹Ų§ŲÆŲ© Ł…Ł†Ł‡"
-
-#: ../../standalone/drakbackup_.c:2145
-msgid "Other Media"
-msgstr "ŁŲ³ŁŲ· Ų¢Ų®Ų±"
-
-#: ../../standalone/drakbackup_.c:2151
-msgid "Restore system"
-msgstr "Ų§Ų³ŲŖŲ¹ŲÆ Ų§Ł„Ł†Ł‘ŲøŲ§Ł…"
-
-#: ../../standalone/drakbackup_.c:2152
-msgid "Restore Users"
-msgstr "Ų£Ų¹ŲÆ Ų§Ł„Ł…Ų³ŲŖŲ®ŲÆŁ…ŁŁ† "
-
-#: ../../standalone/drakbackup_.c:2153
-msgid "Restore Other"
-msgstr "Ų§Ų³ŲŖŲ¹ŲÆ Ų¢Ų®Ų±"
-
-#: ../../standalone/drakbackup_.c:2155
-msgid "select path to restore (instead of / )"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2159
-msgid "Do new backup before restore (only for incremental backups.)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2160
-msgid "Remove user directories before restore."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2217
-msgid "Restore all backups"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2225
-msgid "Custom Restore"
-msgstr "Ų§Ų³ŲŖŲ¹Ų§ŲÆŲ© Ł…Ų®ŲµŲµŲ©"
-
-#: ../../standalone/drakbackup_.c:2266 ../../standalone/drakbackup_.c:2291
-#: ../../standalone/drakbackup_.c:2312 ../../standalone/drakbackup_.c:2333
-#: ../../standalone/drakbackup_.c:2351 ../../standalone/drakbackup_.c:2383
-#: ../../standalone/drakbackup_.c:2399 ../../standalone/drakbackup_.c:2419
-#: ../../standalone/drakbackup_.c:2438 ../../standalone/drakbackup_.c:2460
-#: ../../standalone/drakfont_.c:575
-msgid "Help"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2269 ../../standalone/drakbackup_.c:2296
-#: ../../standalone/drakbackup_.c:2315 ../../standalone/drakbackup_.c:2336
-#: ../../standalone/drakbackup_.c:2354 ../../standalone/drakbackup_.c:2402
-#: ../../standalone/drakbackup_.c:2422 ../../standalone/drakbackup_.c:2441
-msgid "Previous"
-msgstr "Ų§Ł„Ų³Ų§ŲØŁ‚"
-
-#: ../../standalone/drakbackup_.c:2271 ../../standalone/drakbackup_.c:2338
-#: ../../standalone/logdrake_.c:224
-msgid "Save"
-msgstr "Ų­ŁŲø"
-
-#: ../../standalone/drakbackup_.c:2317
-msgid "Build Backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2356 ../../standalone/drakbackup_.c:3033
-msgid "Restore"
-msgstr "Ų§Ų³ŲŖŲ¹Ų§ŲÆŲ©"
-
-#: ../../standalone/drakbackup_.c:2404 ../../standalone/drakbackup_.c:2424
-#: ../../standalone/drakbackup_.c:2445
-msgid "Next"
-msgstr "Ų§Ł„ŲŖŲ§Ł„Ł"
-
-#: ../../standalone/drakbackup_.c:2478
-msgid ""
-"Please Build backup before to restore it...\n"
-" or verify that your path to save is correct."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2499
-msgid ""
-"Error durind sendmail\n"
-" your report mail was not sent\n"
-" Please configure sendmail"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2522
-msgid "Package List to Install"
-msgstr "Ł‚Ų§Ų¦Ł…Ų© Ų§Ł„Ų­Ų²Ł… Ų§Ł„Ł…Ų·Ł„ŁŲØ ŲŖŲ«ŲØŁŲŖŁ‡Ų§"
-
-#: ../../standalone/drakbackup_.c:2550
-msgid ""
-"Error durind sending file via FTP.\n"
-" Please correct your FTP configuration."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2573
-msgid "Please select data to restore..."
-msgstr "Ų±Ų¬Ų§Ų Ų§Ų®ŲŖŲ± ŲŖŲ§Ų±ŁŲ® Ų§Ł„ŲŲ³ŲŖŲ¹Ų§ŲÆŲ©..."
-
-#: ../../standalone/drakbackup_.c:2594
-msgid "Please select media for backup..."
-msgstr "Ų±Ų¬Ų§Ų Ų§Ų®ŲŖŲ± ŁŲ³ŁŲ· Ų§Ł„Ł†Ų³Ų® Ų§Ł„ŲŲ­ŲŖŁŲ§Ų·Ł..."
-
-#: ../../standalone/drakbackup_.c:2616
-msgid "Please select data to backup..."
-msgstr "Ų±Ų¬Ų§Ų Ų§Ų®ŲŖŲ± Ų§Ł„ŲØŁŲ§Ł†Ų§ŲŖ Ų§Ł„Ł…Ų·Ł„ŁŲØ Ł†Ų³Ų®Ł‡Ų§ Ų§Ų­ŲŖŁŲ§Ų·ŁŲ§..."
-
-#: ../../standalone/drakbackup_.c:2638
-msgid ""
-"No configuration file found \n"
-"please click Wizard or Advanced."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2659
-msgid "Under Devel ... please wait."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2739
-msgid "Backup system files"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2741
-msgid "Backup user files"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2743
-msgid "Backup other files"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2745 ../../standalone/drakbackup_.c:2776
-msgid "Total Progress"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2767
-msgid "files sending by FTP"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2771
-msgid "Sending files..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2841
-msgid "Data list to include on CDROM."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2899
-msgid "Please enter the cd writer speed"
-msgstr "Ų±Ų¬Ų§Ų Ų£ŲÆŲ®Ł„ Ų³Ų±Ų¹Ų© Ų³ŁŲ§Ł‚Ų© ŁŲŖŲ§ŲØŲ© Ų§Ł„Ų£Ł‚Ų±Ų§Ųµ"
-
-#: ../../standalone/drakbackup_.c:2917
-msgid "Please enter your CD Writer device name (ex: 0,1,0)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2923
-msgid "Please check if you want to include install boot on your CD."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2989
-msgid "Backup Now from configuration file"
-msgstr "Ł‚Ł… ŲØŲ§Ł„Ł†Ų³Ų® Ų§Ł„Ų¢Ł† Ł…Ł† Ł…Ł„Ł Ų§Ł„ŲŖŁ‡ŁŲ¦Ų©"
-
-#: ../../standalone/drakbackup_.c:2999
-msgid "View Backup Configuration."
-msgstr "Ų§Ų¹Ų±Ų¶ ŲŖŁ‡ŁŲ¦Ų© Ų§Ł„Ł†Ų³Ų® Ų§Ł„ŲŲ­ŲŖŁŲ§Ų·Ł"
-
-#: ../../standalone/drakbackup_.c:3020
-msgid "Wizard Configuration"
-msgstr "ŲŲ¹ŲÆŲ§ŲÆŲ§ŲŖ Ų§Ł„Ł…Ų¹Ų§Ł„Ų¬"
-
-#: ../../standalone/drakbackup_.c:3024
-msgid "Advanced Configuration"
-msgstr "ŲŲ¹ŲÆŲ§ŲÆ Ł…ŲŖŁ‚ŲÆŁ…"
-
-#: ../../standalone/drakbackup_.c:3028
-msgid "Backup Now"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3053
-msgid "Drakbackup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3104
-msgid ""
-"options description:\n"
-"\n"
-" In this step Drakbackup allow you to change:\n"
-"\n"
-" - The compression mode:\n"
-" \n"
-" If you check bzip2 compression, you will compress\n"
-" your data better than gzip (about 2-10 %).\n"
-" This option is not checked by default because\n"
-" this compression mode needs more time ( about 1000% more).\n"
-" \n"
-" - The update mode:\n"
-"\n"
-" This option will update your backup, but this\n"
-" option is not really useful because you need to\n"
-" decompress your backup before you can update it.\n"
-" \n"
-" - the .backupignore mode:\n"
-"\n"
-" Like with cvs, Drakbackup will ignore all references\n"
-" included in .backupignore files in each directories.\n"
-" ex: \n"
-" /*> cat .backupignore*/\n"
-" *.o\n"
-" *~\n"
-" ...\n"
-" \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3134
-msgid ""
-"\n"
-" Some errors during sendmail are caused by \n"
-" a bad configuration of postfix. To solve it you have to\n"
-" set myhostname or mydomain in /etc/postfix/main.cf\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3142
-msgid ""
-"options description:\n"
-"\n"
-" - Backup system files:\n"
-" \n"
-"\tThis option allows you to backup your /etc directory,\n"
-"\twhich contains all configuration files. Please be\n"
-"\tcareful during the restore step to not overwrite:\n"
-"\t\t/etc/passwd \n"
-"\t\t/etc/group \n"
-"\t\t/etc/fstab\n"
-"\n"
-" - Backup User files: \n"
-"\n"
-"\tThis option allows you select all users that you want \n"
-"\tto backup.\n"
-"\tTo preserve disk space, it is recommended that you \n"
-"\tdo not include web browser's cache.\n"
-"\n"
-" - Backup Other files: \n"
-"\n"
-"\tThis option allows you to add more data to save.\n"
-"\tWith the other backup it's not possible at the \n"
-"\tmoment to select select incremental backup.\t\t\n"
-" \n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerful \n"
-"\toption for backup. This option allows you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed afterward.\n"
-"\tThen you will be able, during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this option all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3181
-msgid ""
-"restore description:\n"
-" \n"
-"Only the most recent date will be used ,because with incremental \n"
-"backups it is necesarry to restore one by one each older backups.\n"
-"\n"
-"So if you don't like to restore an user please unselect all his\n"
-"check box.\n"
-"\n"
-"Otherwise, you are able to select only one of this\n"
-"\n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerfull \n"
-"\toption to use backup, this option allow you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed after.\n"
-"\tSo you will be able during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this options all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3207 ../../standalone/drakbackup_.c:3282
-msgid ""
-" Copyright (C) 2001 MandrakeSoft by DUPONT Sebastien <dupont_s\\@epita.fr>"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3209 ../../standalone/drakbackup_.c:3284
-msgid ""
-" This program is free software; you can redistribute it and/or modify\n"
-" it under the terms of the GNU General Public License as published by\n"
-" the Free Software Foundation; either version 2, or (at your option)\n"
-" any later version.\n"
-"\n"
-" This program is distributed in the hope that it will be useful,\n"
-" but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-" GNU General Public License for more details.\n"
-"\n"
-" You should have received a copy of the GNU General Public License\n"
-" along with this program; if not, write to the Free Software\n"
-" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3223
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select: \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, DrakBackup will remove \n"
-" your original directory and verify that all \n"
-" backup files are not corrupted. It is recommended \n"
-" you do a last backup before restoring.\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3261
-msgid ""
-"options description:\n"
-"\n"
-"Please be careful when you are using ftp backup, because only \n"
-"backups that are already built are sent to the server.\n"
-"So at the moment, you need to build the backup on your hard \n"
-"drive before sending it to the server.\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3270
-msgid ""
-"\n"
-"Restore Backup Problems:\n"
-"\n"
-"During the restore step, Drakbackup will verify all your\n"
-"backup files before restoring them.\n"
-"Before the restore, Drakbackup will remove \n"
-"your original directory, and you will loose all your \n"
-"data. It is important to be careful and not modify the \n"
-"backup data files by hand.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3298
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, Drakbackup will remove\n"
-" your original directory and verify that all\n"
-" backup files are not corrupted. It is recommended\n"
-" you do a last backup before restoring.\n"
-" \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakboot_.c:58
-#, c-format
-msgid "Installation of %s failed. The following error occured:"
-msgstr "ŁŲ´Ł„ ŲŖŲ«ŲØŁŲŖ %s. ŲøŁ‡Ų± Ų§Ł„Ų®Ų·Ų£ Ų§Ł„ŲŖŲ§Ł„Ł:"
-
-#: ../../standalone/drakfont_.c:229
-msgid "Search installed fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:231
-msgid "Unselect fonts installed"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:252
-msgid "parse all fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:253
-msgid "no fonts found"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:261 ../../standalone/drakfont_.c:303
-#: ../../standalone/drakfont_.c:352 ../../standalone/drakfont_.c:410
-#: ../../standalone/drakfont_.c:417 ../../standalone/drakfont_.c:443
-#: ../../standalone/drakfont_.c:455 ../../standalone/drakfont_.c:468
-msgid "done"
-msgstr "Ų§Ł†ŲŖŁ‡Ł‰"
-
-#: ../../standalone/drakfont_.c:265
-msgid "could not find any font in your mounted partitions"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:301
-msgid "Reselect correct fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:304
-msgid "could not find any font.\n"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:327
-msgid "Search fonts in installed list"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:350
-msgid "Fonts copy"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:353
-msgid "True Type fonts installation"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:357
-msgid "please wait during ttmkfdir..."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:359
-msgid "True Type install done"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:366 ../../standalone/drakfont_.c:382
-msgid "Fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:370 ../../standalone/drakfont_.c:386
-#: ../../standalone/drakfont_.c:406
-msgid "type1inst building"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:375 ../../standalone/drakfont_.c:390
-msgid "Ghostscript referencing"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:397
-msgid "ttf fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:401
-msgid "pfm fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:411
-msgid "Suppress temporary Files"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:414
-msgid "Restart XFS"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:453 ../../standalone/drakfont_.c:463
-msgid "Suppress Fonts Files"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:465
-msgid "xfs restart"
-msgstr "xfs restart"
-
-#: ../../standalone/drakfont_.c:472 ../../standalone/drakfont_.c:760
-msgid ""
-"Before installing any fonts, be sure that you have the right to use and "
-"install them on your system.\n"
-"\n"
-"-You can install the fonts using the normal way. In rare cases, bogus fonts "
-"may hang up your X Server."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:547
-msgid "Fonts Importation"
-msgstr "Ų§Ų³ŲŖŁŲ±Ų§ŲÆ Ų§Ł„Ų®Ų·ŁŲ·"
-
-#: ../../standalone/drakfont_.c:562
-msgid "Get Windows Fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:564
-msgid "Uninstall Fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:568
-msgid "Advanced Options"
-msgstr "Ų®ŁŲ§Ų±Ų§ŲŖ Ł…ŲŖŁ‚ŲÆŁ…Ų©"
-
-#: ../../standalone/drakfont_.c:570
-msgid "Font List"
-msgstr "Ł‚Ų§Ų¦Ł…Ų© Ų§Ł„Ų®Ų·ŁŲ·"
-
-#: ../../standalone/drakfont_.c:739
-msgid "Choose the applications that will support the fonts :"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:743
-msgid "Ghostscript"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:747
-msgid "StarOffice"
-msgstr "StarOffice"
-
-#: ../../standalone/drakfont_.c:751
-msgid "Abiword"
-msgstr "Abiword"
-
-#: ../../standalone/drakfont_.c:755
-msgid "Generic Printers"
-msgstr "Ų·Ų§ŲØŲ¹Ų§ŲŖ Ų¹Ų§ŲÆŁŲ© (Generic)"
-
-#: ../../standalone/drakfont_.c:792
-msgid "Select the font file or directory and click on 'Add'"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:828
-msgid "Install List"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:858
-msgid "click here if you are sure."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:860
-msgid "here if no."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:897
-msgid "Unselected All"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:899
-msgid "Selected All"
-msgstr "ŲŖŁ… Ų§Ų®ŲŖŁŲ§Ų± Ų§Ł„ŁŁ„"
-
-#: ../../standalone/drakfont_.c:901
-msgid "Remove List"
-msgstr "Ų§Ų²Ł„ Ų§Ł„Ł‚Ų§Ų¦Ł…Ų©"
-
-#: ../../standalone/drakfont_.c:919 ../../standalone/drakfont_.c:939
-msgid "Initials tests"
-msgstr "Ų§Ł„ŲŲ®ŲŖŲØŲ§Ų±Ų§ŲŖ Ų§Ł„Ų£ŁŁ„ŁŲ©"
-
-#: ../../standalone/drakfont_.c:920
-msgid "Copy fonts on your system"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:921
-msgid "Install & convert Fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:922
-msgid "Post Install"
-msgstr "Ł…Ų§ ŲØŲ¹ŲÆ Ų§Ł„ŲŖŲ«ŲØŁŲŖ"
-
-#: ../../standalone/drakfont_.c:940
-msgid "Remove fonts on your system"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:941
-msgid "Post Uninstall"
-msgstr "Ł…Ų§ ŲØŲ¹ŲÆ Ų§Ų²Ų§Ł„Ų© Ų§Ł„ŲŖŲ«ŲØŁŲŖ"
-
-#: ../../standalone/drakgw_.c:43 ../../standalone/drakgw_.c:200
-msgid "Internet Connection Sharing"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:138
-msgid "Internet Connection Sharing currently enabled"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:139
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently enabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:143
-msgid "disable"
-msgstr "Ų£Ų¹Ł‚"
-
-#: ../../standalone/drakgw_.c:143 ../../standalone/drakgw_.c:168
-msgid "dismiss"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:143 ../../standalone/drakgw_.c:168
-msgid "reconfigure"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:146
-msgid "Disabling servers..."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:154
-msgid "Internet connection sharing is now disabled."
-msgstr "Ł…Ų´Ų§Ų±ŁŲ© Ų§ŲŖŲµŲ§Ł„ Ų§Ł„ŲŁ†ŲŖŲ±Ł†ŲŖ ŲŗŁŲ± Ł…Ł…ŁŁ‘ŁˇŁ†Ų© Ų§Ł„Ų¢Ł†."
-
-#: ../../standalone/drakgw_.c:163
-msgid "Internet Connection Sharing currently disabled"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:164
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently disabled.\n"
-"\n"
-"What would you like to do?"
-msgstr "Ł…Ų§Ų°Ų§ ŲŖŲ­ŲØŁ‘ Ų£Ł† ŲŖŲ¹Ł…Ł„"
-
-#: ../../standalone/drakgw_.c:168
-msgid "enable"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:175
-msgid "Enabling servers..."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:180
-msgid "Internet connection sharing is now enabled."
-msgstr "Ł…Ų´Ų§Ų±ŁŲ© ŲŲŖŲµŲ§Ł„ Ų§Ł„ŲŁ†ŲŖŲ±Ł†ŲŖ Ł…Ł…ŁŁ‘ŁˇŁ†Ų© Ų§Ł„Ų¢Ł†."
-
-#: ../../standalone/drakgw_.c:201
-msgid ""
-"You are about to configure your computer to share its Internet connection.\n"
-"With that feature, other computers on your local network will be able to use "
-"this computer's Internet connection.\n"
-"\n"
-"Note: you need a dedicated Network Adapter to set up a Local Area Network "
-"(LAN)."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:227
-#, c-format
-msgid "Interface %s (using module %s)"
-msgstr "Ų§Ł„Ų³Ł‘Ų·Ų­ Ų§Ł„ŲØŁŁ†ŁŁ‘ %s(Ų§Ų³ŲŖŲ¹Ł…Ų§Ł„ Ł…Ų±ŁŲØŲ©%s)"
-
-#: ../../standalone/drakgw_.c:228
-#, c-format
-msgid "Interface %s"
-msgstr "Ų§Ł„Ų³Ł‘Ų·Ų­ Ų§Ł„ŲØŁŁ†ŁŁ‘ %s"
-
-#: ../../standalone/drakgw_.c:236
-msgid "No network adapter on your system!"
-msgstr "Ł„Ų§ Ł…Ų­ŁŁ‘Ł„ Ų§Ł„Ų´Ł‘ŲØŁŲ© Ų¹Ł„Ł‰ Ł†ŲøŲ§Ł…Ł"
-
-#: ../../standalone/drakgw_.c:237
-msgid ""
-"No ethernet network adapter has been detected on your system. Please run the "
-"hardware configuration tool."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:243
-msgid "Network interface"
-msgstr "Ų³Ų·Ų­ ŲØŁŁ†ŁŁ‘ Ł„Ł„Ų´ŲØŁŲ© "
-
-#: ../../standalone/drakgw_.c:244
-#, c-format
-msgid ""
-"There is only one configured network adapter on your system:\n"
-"\n"
-"%s\n"
-"\n"
-"I am about to setup your Local Area Network with that adapter."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:253
-msgid ""
-"Please choose what network adapter will be connected to your Local Area "
-"Network."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:271
-msgid "Network interface already configured"
-msgstr "ŁŲ§Ų¬Ł‡Ų© Ų§Ł„Ų´ŲØŁŲ© Ł…Ų¹ŲÆŁ‘Ų© Ł…Ų³ŲØŁ‚Ų§!"
-
-#: ../../standalone/drakgw_.c:272
-#, c-format
-msgid ""
-"Warning, the network adapter (%s) is already configured.\n"
-"\n"
-"Do you want an automatic re-configuration?\n"
-"\n"
-"You can do it manually but you need to know what you're doing."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:277
-msgid "Automatic reconfiguration"
-msgstr "Ų§Ų¹ŲÆŲ§Ų© ŲŖŁ‡ŁŲ¦Ų© Ų¢Ł„ŁŲ©"
-
-#: ../../standalone/drakgw_.c:278
-msgid "Show current interface configuration"
-msgstr "Ų£ŲøŁ‡Ų± ŲŖŁ‡ŁŲ¦Ų© Ų§Ł„ŁŲ§Ų¬Ł‡Ų© Ų§Ł„Ų­Ų§Ł„ŁŲ©"
-
-#: ../../standalone/drakgw_.c:280
-#, c-format
-msgid ""
-"Current configuration of `%s':\n"
-"\n"
-"Network: %s\n"
-"IP address: %s\n"
-"IP attribution: %s\n"
-"Driver: %s"
-msgstr ""
-"Ų§Ł„Ų´Ł‘ŁŁ„ Ų§Ł„Ų­Ų§Ł„ŁŁ‘ Ł…Ł† `%s':\n"
-"n/Ų§Ł„Ų´Ł‘ŲØŁŲ© : %s\n"
-"IP address: %s\n"
-"IP attribution: %s\n"
-"Driver: %s"
-
-#: ../../standalone/drakgw_.c:292
-msgid ""
-"I can keep your current configuration and assume you already set up a DHCP "
-"server; in that case please verify I correctly read the C-Class Network that "
-"you use for your local network; I will not reconfigure it and I will not "
-"touch your DHCP server configuration.\n"
-"\n"
-"Else, I can reconfigure your interface and (re)configure a DHCP server for "
-"you.\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:297
-msgid "C-Class Local Network"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:298
-msgid "(This) DHCP Server IP"
-msgstr "Ų¹Ł†ŁŲ§Ł† IP Ł„Ų®Ų§ŲÆŁ… DHCP (Ł‡Ų°Ų§)"
-
-#: ../../standalone/drakgw_.c:299
-msgid "Re-configure interface and DHCP server"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:306
-msgid "The Local Network did not finish with `.0', bailing out."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:317
-#, c-format
-msgid "Potential LAN address conflict found in current config of %s!\n"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:325 ../../standalone/drakgw_.c:331
-msgid "Firewalling configuration detected!"
-msgstr "Firewalling configuration ŲŖŁ… Ų§ŁŲŖŲ´Ų§Ł "
-
-#: ../../standalone/drakgw_.c:326 ../../standalone/drakgw_.c:332
-msgid ""
-"Warning! An existing firewalling configuration has been detected. You may "
-"need some manual fix after installation."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:340
-msgid "Configuring..."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:341
-msgid "Configuring scripts, installing software, starting servers..."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:378
-#, c-format
-msgid "Problems installing package %s"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:672
-msgid ""
-"Everything has been configured.\n"
-"You may now share Internet connection with other computers on your Local "
-"Area Network, using automatic network configuration (DHCP)."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:689
-msgid "The setup has already been done, but it's currently disabled."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:690
-msgid "The setup has already been done, and it's currently enabled."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:691
-msgid "No Internet Connection Sharing has ever been configured."
-msgstr "Ł„Ł… ŁŲŖŁ… Ų§Ų¹ŲÆŲ§ŲÆ Ų£Ł Ł…Ų´Ų§Ų±ŁŲ© Ų§ŲŖŲµŲ§Ł„ ŲØŲ§Ł„ŲŁ†ŲŖŲ±Ł†ŲŖ"
-
-#: ../../standalone/drakgw_.c:696
-msgid "Internet connection sharing configuration"
-msgstr "ŲŲ¹ŲÆŲ§ŲÆŲ§ŲŖ Ł…Ų´Ų§Ų±ŁŲ© ŲŲŖŲµŲ§Ł„ Ų§Ł„ŲŁ†ŲŖŲ±Ł†ŲŖ"
-
-#: ../../standalone/drakgw_.c:703
-#, c-format
-msgid ""
-"Welcome to the Internet Connection Sharing utility!\n"
-"\n"
-"%s\n"
-"\n"
-"Click on Configure to launch the setup wizard."
-msgstr ""
-
-#: ../../standalone/draknet_.c:80
-#, c-format
-msgid "Network configuration (%d adapters)"
-msgstr ""
-
-#: ../../standalone/draknet_.c:87 ../../standalone/draknet_.c:595
-msgid "Profile: "
-msgstr "Ų§Ł„Ł†Ł‘ŲØŲ°Ų© :"
-
-#: ../../standalone/draknet_.c:95
-msgid "Del profile..."
-msgstr ""
-
-#: ../../standalone/draknet_.c:101
-msgid "Profile to delete:"
-msgstr ""
-
-#: ../../standalone/draknet_.c:129
-msgid "New profile..."
-msgstr "Ł†ŲØŲ°Ų© Ų¬ŲÆ ŁŲÆ Ų©..."
-
-#: ../../standalone/draknet_.c:135
-msgid ""
-"Name of the profile to create (the new profile is created as a copy of the "
-"current one) :"
-msgstr ""
-
-#: ../../standalone/draknet_.c:161
-msgid "Hostname: "
-msgstr "Hostname :"
-
-#: ../../standalone/draknet_.c:168
-msgid "Internet access"
-msgstr ""
-
-#: ../../standalone/draknet_.c:181
-msgid "Type:"
-msgstr "Ų§Ł„Ł†ŁŲ¹:"
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-msgid "Gateway:"
-msgstr "Gateway"
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-msgid "Interface:"
-msgstr ""
-
-#: ../../standalone/draknet_.c:195
-msgid "Status:"
-msgstr ""
-
-#: ../../standalone/draknet_.c:202
-msgid "Wait please"
-msgstr "Ų§Ł„Ų§Ł†ŲŖŲøŲ§Ų± Ł…Ł† ŁŲ¶Ł„Ł"
-
-#: ../../standalone/draknet_.c:220
-msgid "Configure Internet Access..."
-msgstr ""
-
-#: ../../standalone/draknet_.c:227 ../../standalone/draknet_.c:449
-msgid "LAN configuration"
-msgstr "ŲŲ¹ŲÆŲ§ŲÆ LAN"
-
-#: ../../standalone/draknet_.c:232
-msgid "Driver"
-msgstr "Ų§Ł„Ł…Ų­Ų±Ł"
-
-#: ../../standalone/draknet_.c:232
-msgid "Interface"
-msgstr "Ų§Ł„ŁŲ§Ų¬Ł‡Ų©"
-
-#: ../../standalone/draknet_.c:232
-msgid "Protocol"
-msgstr ""
-
-#: ../../standalone/draknet_.c:232
-msgid "State"
-msgstr "Ų§Ł„Ų­Ų§Ł„Ų©"
-
-#: ../../standalone/draknet_.c:244
-msgid "Configure Local Area Network..."
-msgstr ""
-
-#: ../../standalone/draknet_.c:256
-msgid "Click here to launch the wizard ->"
-msgstr ""
-
-#: ../../standalone/draknet_.c:257
-msgid "Wizard..."
-msgstr "Ų§Ł„Ł…Ų¹Ų§Ł„Ų¬..."
-
-#: ../../standalone/draknet_.c:283
-msgid "Apply"
-msgstr "ŲŖŲ·ŲØŁŁ‚"
-
-#: ../../standalone/draknet_.c:302
-msgid "Please Wait... Applying the configuration"
-msgstr "ŁŲ±Ų¬Ł‰ Ų§Ł„ŲŁ†ŲŖŲøŲ§Ų±... Ų¬Ų§Ų±Ł ŲŖŲ·ŲØŁŁ‚ Ų§Ł„ŲŲ¹ŲÆŲ§ŲÆŲ§ŲŖ"
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-msgid "Connected"
-msgstr "Ł…ŲŖŁ‘ŲµŁ„ "
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-msgid "Not connected"
-msgstr "ŲŗŁŲ± Ł…ŲŖŲµŁ„"
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Connect..."
-msgstr "Ł…ŲŖŲµŁ„"
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Disconnect..."
-msgstr ""
-
-#: ../../standalone/draknet_.c:404
-msgid ""
-"Warning, another Internet connection has been detected, maybe using your "
-"network"
-msgstr ""
-
-#: ../../standalone/draknet_.c:431
-msgid ""
-"You don't have any configured interface.\n"
-"Configure them first by clicking on 'Configure'"
-msgstr ""
-
-#: ../../standalone/draknet_.c:453
-msgid "LAN Configuration"
-msgstr "ŲŲ¹ŲÆŲ§ŲÆ LAN"
-
-#: ../../standalone/draknet_.c:464
-#, c-format
-msgid "Adapter %s: %s"
-msgstr "Ų§Ł„Ł…Ų­ŁŁ‘Ł„ %s: %s"
-
-#: ../../standalone/draknet_.c:470
-msgid "Boot Protocol"
-msgstr ""
-
-#: ../../standalone/draknet_.c:471
-msgid "Started on boot"
-msgstr ""
-
-#: ../../standalone/draknet_.c:472
-msgid "DHCP client"
-msgstr "DHCP Ų§Ł„Ų¹Ł…ŁŁ„ "
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-msgid "activate now"
-msgstr ""
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-msgid "deactivate now"
-msgstr ""
-
-#: ../../standalone/draknet_.c:503
-msgid ""
-"This interface has not been configured yet.\n"
-"Launch the configuration wizard in the main window"
-msgstr ""
-
-#: ../../standalone/draknet_.c:560
-msgid ""
-"You don't have any internet connection.\n"
-"Create one first by clicking on 'Configure'"
-msgstr ""
-
-#: ../../standalone/draknet_.c:584
-msgid "Internet connection configuration"
-msgstr "ŲŲ¹ŲÆŲ§ŲÆŲ§ŲŖ Ų§Ł„ŲŲŖŲµŲ§Ł„ ŲØŲ§Ł„ŲŁ†ŲŖŲ±Ł†ŲŖ"
-
-#: ../../standalone/draknet_.c:588
-msgid "Internet Connection Configuration"
-msgstr "ŲŲ¹ŲÆŲ§ŲÆŲ§ŲŖ Ų§Ł„ŲŲŖŲµŲ§Ł„ ŲØŲ§Ł„ŲŁ†ŲŖŲ±Ł†ŲŖ"
-
-#: ../../standalone/draknet_.c:597
-msgid "Connection type: "
-msgstr "Ł†ŁŲ¹ Ų§Ł„Ų¹Ł„Ų§Ł‚Ų©"
-
-#: ../../standalone/draknet_.c:603
-msgid "Parameters"
-msgstr "Parameters"
-
-#: ../../standalone/draknet_.c:621
-msgid "Gateway"
-msgstr "Gateway"
-
-#: ../../standalone/draknet_.c:630
-msgid "Ethernet Card"
-msgstr "Ethernet Card"
-
-#: ../../standalone/draknet_.c:631
-msgid "DHCP Client"
-msgstr "DHCP Ų§Ł„Ų¹Ł…ŁŁ„"
-
-#: ../../standalone/draksec_.c:31
-msgid "Setting security level"
-msgstr ""
-
-#: ../../standalone/drakxconf_.c:47
-msgid "Control Center"
-msgstr "Ł…Ų±ŁŲ² Ų§Ł„ŲŖŁ‘Ų­ŁŁ‘Ł… "
-
-#: ../../standalone/drakxconf_.c:48
-msgid "Choose the tool you want to use"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:48
-msgid "Canada (cable)"
-msgstr "ŁŁ†ŲÆŲ© (cable)"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (bcast)"
-msgstr "Ų§Ł„ŁŁ„Ų§ŁŲ§ŲŖ Ų§Ł„Ł…ŲŖŁ‘Ų­ŲÆŲ© Ų§Ł„Ų£Ł…Ų±ŁŁŁŁ‘Ų© (bcast)"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (cable)"
-msgstr "Ų§Ł„ŁŁ„Ų§ŁŲ§ŲŖ Ų§Ł„Ł…ŲŖŁ‘Ų­ŲÆŲ© Ų§Ł„Ų£Ł…Ų±ŁŁŁŁ‘Ų© (cable)"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (cable-hrc)"
-msgstr "Ų§Ł„ŁŁ„Ų§ŁŲ§ŲŖ Ų§Ł„Ł…ŲŖŁ‘Ų­ŲÆŲ© Ų§Ł„Ų£Ł…Ų±ŁŁŁŁ‘Ų© (cable-hrc)"
-
-#: ../../standalone/drakxtv_.c:49
-msgid "China (bcast)"
-msgstr "Ų§Ł„ŲµŁŁ† (bcast)"
-
-#: ../../standalone/drakxtv_.c:49
-msgid "Japan (bcast)"
-msgstr "Ų§Ł„ŁŲ§ŲØŲ§Ł† (bcast)"
-
-#: ../../standalone/drakxtv_.c:49
-msgid "Japan (cable)"
-msgstr "Ų§Ł„ŁŲ§ŲØŲ§Ł† (cable)"
-
-#: ../../standalone/drakxtv_.c:50
-msgid "East Europe"
-msgstr "Ų£ŁŲ±ŁŲØŁ‘Ų§ Ų§Ł„Ų´Ł‘Ų±Ł‚ŁŁ‘Ų©"
-
-#: ../../standalone/drakxtv_.c:50
-msgid "Ireland"
-msgstr "Ų£ŁŲ±Ł„Ł†ŲÆŲ§"
-
-#: ../../standalone/drakxtv_.c:50
-msgid "West Europe"
-msgstr "Ų£ŁŲ±ŁŲØŁ‘Ų§ Ų§Ł„ŲŗŲ±ŲØŁŁ‘Ų©"
-
-#: ../../standalone/drakxtv_.c:51
-msgid "Australia"
-msgstr "Ų£ŁŲ³ŲŖŲ±Ų§Ł„ŁŲ§"
-
-#: ../../standalone/drakxtv_.c:51
-msgid "Newzealand"
-msgstr "Ł†ŁŁŲ²ŁŁ„Ł†ŲÆŲ§ "
-
-#: ../../standalone/drakxtv_.c:52
-msgid "South Africa"
-msgstr "Ų¬Ł†ŁŲØ Ų£ŁŲ±ŁŁ‚ŁŲ§ "
-
-#: ../../standalone/drakxtv_.c:53
-msgid "Argentina"
-msgstr "Ų§Ł„Ų£Ų±Ų¬Ł†ŲŖŁŁ† "
-
-#: ../../standalone/drakxtv_.c:58
-msgid ""
-"Please,\n"
-"type in your tv norm and country"
-msgstr ""
-"Ł…Ł† ŁŲ¶Ł„Ł\n"
-" ŁŁ Ł…Ų¹ŁŲ§Ų± ŲŖŁ„ŁŁŲ²ŁŁŁ†Ł Ł Ų§Ł„ŲØŁ„ŲÆ type"
-
-#: ../../standalone/drakxtv_.c:60
-msgid "TV norm :"
-msgstr "TV norm :"
-
-#: ../../standalone/drakxtv_.c:61
-msgid "Area :"
-msgstr "Area :"
-
-#: ../../standalone/drakxtv_.c:65
-msgid "Scanning for TV channels in progress ..."
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:72
-msgid "Scanning for TV channels"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:83
-msgid "No TV Card detected!"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:84
-msgid ""
-"No TV Card has been detected on your machine. Please verify that a Linux-"
-"supported Video/TV Card is correctly plugged in.\n"
-"\n"
-"\n"
-"You can visit our hardware database at:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/hardware.php3"
-msgstr ""
-
-#: ../../standalone/keyboarddrake_.c:16
-msgid "usage: keyboarddrake [--expert] [keyboard]\n"
-msgstr "Ų§Ł„Ų§Ų³ŲŖŲ¹Ł…Ų§Ł„: keyboarddrake [--expert][Ł„ŁŲ­Ų© Ų§Ł„Ł…ŁŲ§ŲŖŁŲ­]\n"
-
-#: ../../standalone/keyboarddrake_.c:29
-msgid "Please, choose your keyboard layout."
-msgstr "Ł…Ł† ŁŲ¶Ł„Ł Ų§Ų®ŲŖŲ± ŲŖŲµŁ…ŁŁ… Ł„ŁŲ­Ų© Ł…ŁŲ§ŲŖŁŲ­Ł"
-
-#: ../../standalone/keyboarddrake_.c:36
-msgid "Do you want the BackSpace to return Delete in console?"
-msgstr ""
-
-#: ../../standalone/livedrake_.c:24
-msgid "Change Cd-Rom"
-msgstr "Cd-RomŲŖŲŗŁŁŲ±"
-
-#: ../../standalone/livedrake_.c:25
-msgid ""
-"Please insert the Installation Cd-Rom in your drive and press Ok when done.\n"
-"If you don't have it, press Cancel to avoid live upgrade."
-msgstr ""
-
-#: ../../standalone/livedrake_.c:35
-msgid "Unable to start live upgrade !!!\n"
-msgstr ""
-
-#: ../../standalone/localedrake_.c:32
-msgid "The change is done, but to be effective you must logout"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:85 ../../standalone/logdrake_.c:501
-msgid "logdrake"
-msgstr "logdrake"
-
-#: ../../standalone/logdrake_.c:95
-msgid "Show only for the selected day"
-msgstr "ŲŲ¹Ų±Ų¶ Ų³Ų¬Ł„Ų§ŲŖ Ų§Ł„ŁŁŁ… Ų§Ł„Ł…Ų®ŲŖŲ§Ų± ŁŁ‚Ų·"
-
-#: ../../standalone/logdrake_.c:102
-msgid "/File/_New"
-msgstr "/Ł…Ł„Ł/_Ų¬ŲÆŁŲÆ"
-
-#: ../../standalone/logdrake_.c:102
-msgid "<control>N"
-msgstr "<control>Ų¬"
-
-#: ../../standalone/logdrake_.c:103
-msgid "/File/_Open"
-msgstr "/Ł…Ł„Ł/_ŁŲŖŲ­"
-
-#: ../../standalone/logdrake_.c:103
-msgid "<control>O"
-msgstr "<control>Ł"
-
-#: ../../standalone/logdrake_.c:104
-msgid "/File/_Save"
-msgstr "/Ł…Ł„Ł/_Ų­ŁŲø"
-
-#: ../../standalone/logdrake_.c:104
-msgid "<control>S"
-msgstr "<control>Ų­"
-
-#: ../../standalone/logdrake_.c:105
-msgid "/File/Save _As"
-msgstr "/Ł…Ł„Ł/Ų­ŁŲø ŲØŲ§_Ų³Ł…"
-
-#: ../../standalone/logdrake_.c:106
-msgid "/File/-"
-msgstr "/Ł…Ł„Ł/-"
-
-#: ../../standalone/logdrake_.c:108
-msgid "/_Options"
-msgstr "/Ų®_ŁŲ§Ų±Ų§ŲŖ"
-
-#: ../../standalone/logdrake_.c:109
-msgid "/Options/Test"
-msgstr "/Ų®ŁŲ§Ų±Ų§ŲŖ/Ų§Ų­ŲŖŲØŲ§Ų±"
-
-#: ../../standalone/logdrake_.c:110
-msgid "/_Help"
-msgstr "/_Ł…Ų³Ų§Ų¹ŲÆŲ©"
-
-#: ../../standalone/logdrake_.c:111
-msgid "/Help/_About..."
-msgstr "/Ł…Ų³Ų§Ų¹ŲÆŲ©/_Ų­ŁŁ„"
-
-#: ../../standalone/logdrake_.c:118
-msgid "-misc-fixed-medium-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr "-misc-fixed-medium-r-*-*-*-100-*-*-*-*-*-*,*"
-
-#: ../../standalone/logdrake_.c:119
-msgid "-misc-fixed-bold-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr "-misc-fixed-bold-r-*-*-*-100-*-*-*-*-*-*,*"
-
-#: ../../standalone/logdrake_.c:173
-msgid "User"
-msgstr "Ų§Ł„Ł…Ų³ŲŖŲ®ŲÆŁ…"
-
-#: ../../standalone/logdrake_.c:174
-msgid "Messages"
-msgstr "Ų§Ł„Ų±Ų³Ų§Ų¦Ł„"
-
-#: ../../standalone/logdrake_.c:175
-msgid "Syslog"
-msgstr "syslog"
-
-#: ../../standalone/logdrake_.c:176
-msgid "Mandrake Tools Explanations"
-msgstr "Ų´Ų±ŁŲ­ Ų£ŲÆŁŲ§ŲŖ Mandrake"
-
-#: ../../standalone/logdrake_.c:179
-msgid "search"
-msgstr "ŲØŲ­Ų«"
-
-#: ../../standalone/logdrake_.c:185
-msgid "A tool to monitor your logs"
-msgstr "Ų£ŲÆŲ§Ų© Ł„Ł…Ų±Ų§Ł‚ŲØŲ© Ų³Ų¬Ł„Ų§ŲŖ Ł†ŲøŲ§Ł…Ł"
-
-#: ../../standalone/logdrake_.c:186
-msgid "Settings"
-msgstr "Ų§Ł„Ų¶ŲØŲ·"
-
-#: ../../standalone/logdrake_.c:191
-msgid "matching"
-msgstr "Ų§Ł„Ł…ŁŲ§Ų¦Ł…Ų©"
-
-#: ../../standalone/logdrake_.c:192
-msgid "but not matching"
-msgstr "Ł„ŁŁ† Ł„ŁŲ³ Ł…ŁŲ§Ų¦Ł…Ų©"
-
-#: ../../standalone/logdrake_.c:196
-msgid "Choose file"
-msgstr "Ų§Ų­ŲŖŁŲ§Ų± Ł…Ł„Ł"
-
-#: ../../standalone/logdrake_.c:201
-msgid "Calendar"
-msgstr "Ų§Ł„ŲŖŁ‚ŁŁŁ…"
-
-#: ../../standalone/logdrake_.c:211
-msgid "Content of the file"
-msgstr "Ł…Ų­ŲŖŁŁŲ§ŲŖ Ų§Ł„Ł…Ł„Ł"
-
-#: ../../standalone/logdrake_.c:215 ../../standalone/logdrake_.c:390
-msgid "Mail/SMS alert"
-msgstr "ŲŖŁ†ŲØŁŲ© Ų§Ł„ŲØŲ±ŁŲÆ/SMS"
-
-#: ../../standalone/logdrake_.c:268
-#, c-format
-msgid "please wait, parsing file: %s"
-msgstr "ŁŲ±Ų¬Ł‰ Ų§Ł„ŲŁ†ŲŖŲøŲ§Ų±, Ų¬Ų§Ų±Ł ŲŖŲ­Ł„ŁŁ„ Ų§Ł„Ł…Ł„Ł: %s"
-
-#: ../../standalone/logdrake_.c:405
-msgid "Mail/SMS alert configuration"
-msgstr "ŲŖŁ‡ŁŲ¦Ų© ŲŖŁ†ŲØŁŁ‡ Ų§Ł„ŲØŲ±ŁŲÆ/SMS"
-
-#: ../../standalone/logdrake_.c:406
-msgid ""
-"Welcome to the mail/SMS configuration utility.\n"
-"\n"
-"Here, you'll be able to set up the alert system.\n"
-msgstr ""
-"Ų£Ł‡Ł„Ų§ ŲØŁŁ… Ų§Ł„Ł‰ Ų£ŲÆŲ§Ų© ŲŖŁ‡ŁŲ¦Ų© Ų§Ł„ŲØŲ±ŁŲÆ/SMS.\n"
-"\n"
-"Ł‡Ł†Ų§ Ų³ŁŁ…ŁŁ†Ł Ų§Ł„ŲŲ¹ŲÆŲ§ŲÆ \n"
-
-#: ../../standalone/logdrake_.c:414
-msgid "proftpd"
-msgstr "proftpd"
-
-#: ../../standalone/logdrake_.c:417
-msgid "sshd"
-msgstr "sshd"
-
-#: ../../standalone/logdrake_.c:418
-msgid "webmin"
-msgstr "webmin"
-
-#: ../../standalone/logdrake_.c:419
-msgid "xinetd"
-msgstr "xinetd"
-
-#: ../../standalone/logdrake_.c:422
-msgid "service setting"
-msgstr "ŲŲ¹ŲÆŲ§ŲÆŲ§ŲŖ Ų§Ł„Ų®ŲÆŁ…Ų§ŲŖ"
-
-#: ../../standalone/logdrake_.c:423
-msgid ""
-"You will receive an alert if one of the selected service is no more running"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:433
-msgid "load setting"
-msgstr "Ų­Ł…Ł„ Ų§Ł„ŲŲ¹ŲÆŲ§ŲÆŲ§ŲŖ"
-
-#: ../../standalone/logdrake_.c:434
-msgid "You will receive an alert if the load is higher than this value"
-msgstr "Ų³ŁŁ ŲŖŲ³ŲŖŁ„Ł… ŲŖŁ†ŲØŁŁ‡Ų§ Ų§Ų°Ų§ ŁŲ§Ł† Ų§Ł„ŲŖŲ­Ł…ŁŁ„ Ų£Ų¹Ł„Ł‰ Ł…Ł† Ł‡Ų°Ł‡ Ų§Ł„Ł‚ŁŁ…Ų©"
-
-#: ../../standalone/logdrake_.c:447
-msgid "alert configuration"
-msgstr "ŲŲ¹ŲÆŲ§ŲÆŲ§ŲŖ Ų§Ł„ŲŖŁ†ŲØŁŁ‡"
-
-#: ../../standalone/logdrake_.c:448
-msgid "Configure the way the system will alert you"
-msgstr "Ų£Ų¹ŲÆŁ‘ Ų§Ł„Ų·Ų±ŁŁ‚Ų© Ų§Ł„ŲŖŁ Ų³ŁŁ†ŲØŁ‡Ł Ų§Ł„Ł†ŲøŲ§Ł… ŲØŁ‡Ų§"
-
-#: ../../standalone/logdrake_.c:478
-msgid "Save as.."
-msgstr "Ų­ŁŲø ŲØŲŲ³Ł….."
-
-#: ../../standalone/mousedrake_.c:49
-msgid "Please, choose the type of your mouse."
-msgstr ""
-
-#: ../../standalone/mousedrake_.c:59
-msgid "no serial_usb found\n"
-msgstr "no serial_usb found\n"
-
-#: ../../standalone/mousedrake_.c:63
-msgid "Emulate third button?"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:53
-#, c-format
-msgid "%s found on %s, configure it ?"
-msgstr "%s found on %s ŁŁŁ‘Ł‚ ŲØŁŁ†Ł‡ "
-
-#: ../../standalone/scannerdrake_.c:60
-msgid "Select a scanner"
-msgstr "Ų§Ų®ŲŖŲ± Ų¬Ł‡Ų§Ų² Ų§Ł„Ł…Ų³Ų­ Ų§Ł„Ų¶ŁŲ¦Ł"
-
-#: ../../standalone/scannerdrake_.c:80
-#, c-format
-msgid "This %s scanner is unsupported"
-msgstr "Ł‡Ų°Ų§ %s Ų§Ł„Ł…Ų§Ų³Ų­ Ų§Ł„Ų¶Ł‘ŁŲ¦ŁŁ‘ ŲŗŁŲ± Ł…ŲÆŲ¹Ł‘Ł…"
-
-#: ../../standalone/scannerdrake_.c:94
-#, c-format
-msgid ""
-"Scannerdrake was not able to detect your %s scanner.\n"
-"Please select the device where your scanner is plugged"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:96
-#, fuzzy
-msgid "choose device"
-msgstr "Ų¬Ł‡Ų§Ų² Ų§Ł„ŲŁ‚Ł„Ų§Ų¹"
-
-#: ../../standalone/scannerdrake_.c:102
-#, c-format
-msgid ""
-"This %s scanner must be configured by printerdrake.\n"
-"You can launch printerdrake from the Mandrake Control Center in Hardware "
-"section."
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:107
-#, c-format
-msgid ""
-"Your %s scanner has been configured.\n"
-"You may now scan documents using ``XSane'' from Multimedia/Graphics in the "
-"applications menu."
-msgstr ""
-
-#: ../../standalone/tinyfirewall_.c:31
-msgid "Firewalling Configuration"
-msgstr "ŲŲ¹ŲÆŲ§ŲÆŲ§ŲŖ Ų§Ł„Ų¬ŲÆŲ§Ų± Ų§Ł„Ł†Ų§Ų±Ł"
-
-#: ../../standalone/tinyfirewall_.c:44
-msgid "Firewalling configuration"
-msgstr "Ų£Ų¹ŲÆŲ§ŲÆŲ§ŲŖ Ų§Ł„Ų¬ŲÆŲ§Ų± Ų§Ł„Ł†Ų§Ų±Ł"
-
-#: ../../standalone/tinyfirewall_.c:79
-msgid ""
-"Firewalling\n"
-"\n"
-"You already have set up a firewall.\n"
-"Click on Configure to change or remove the firewall"
-msgstr ""
-
-#: ../../standalone/tinyfirewall_.c:83
-msgid ""
-"Firewalling\n"
-"\n"
-"Click on Configure to set up a standard firewall"
-msgstr ""
-
-#: ../../steps.pm_.c:14
-msgid "Choose your language"
-msgstr "Ų§Ų®ŲŖŲ± Ł„ŲŗŲŖŁ"
-
-#: ../../steps.pm_.c:15
-msgid "Select installation class"
-msgstr "Ų§Ų®ŲŖŲ± Ł†ŁŲ¹ Ų§Ł„ŲŖŲ«ŲØŁŲŖ"
-
-#: ../../steps.pm_.c:16
-msgid "Hard drive detection"
-msgstr "Ų§Ł„ŲŖŲ­Ł‚Ł‚ Ł…Ł† Ų§Ł„Ų£Ł‚Ų±Ų§Ųµ Ų§Ł„ŲµŁ„ŲØŲ©"
-
-#: ../../steps.pm_.c:17
-msgid "Configure mouse"
-msgstr "ŲŲ¹ŲÆŲ§ŲÆ Ų§Ł„ŁŲ£Ų±Ų©"
-
-#: ../../steps.pm_.c:18
-msgid "Choose your keyboard"
-msgstr "Ų§Ų®ŲŖŲ± Ł„ŁŲ­Ų© Ų§Ł„Ł…ŁŲ§ŲŖŁŲ­ Ų§Ł„Ų®Ų§ŲµŲ© ŲØŁ"
-
-#: ../../steps.pm_.c:19
-msgid "Security"
-msgstr "Ų§Ł„Ų£Ł…Ł†"
-
-#: ../../steps.pm_.c:20
-msgid "Setup filesystems"
-msgstr "ŲŲ¹ŲÆŲ§ŲÆ Ł†ŲøŁ… Ų§Ł„Ł…Ł„ŁŲ§ŲŖ"
-
-#: ../../steps.pm_.c:21
-msgid "Format partitions"
-msgstr "ŲŖŲ¬Ł‡ŁŲ² Ų§Ł„ŲŖŲ¬Ų²Ų¦Ų§ŲŖ"
-
-#: ../../steps.pm_.c:22
-msgid "Choose packages to install"
-msgstr "Ų§Ų®ŲŖŲ± Ų§Ł„Ų­Ų²Ł… Ų§Ł„ŲŖŁ Ų³ŲŖŁ¸Ų«ŲØŁ‘ŁˇŲŖ"
-
-#: ../../steps.pm_.c:23
-msgid "Install system"
-msgstr "ŲŖŲ«ŲØŁŲŖ Ų§Ł„Ł†ŲøŲ§Ł…"
-
-#: ../../steps.pm_.c:25
-msgid "Add a user"
-msgstr "Ų£Ų¶Ł Ł…Ų³ŲŖŲ®ŲÆŁ…"
-
-#: ../../steps.pm_.c:26
-msgid "Configure networking"
-msgstr "ŲŖŁ‡ŁŲ¦Ų© Ų§Ł„Ų´ŲØŁŲ©"
-
-#: ../../steps.pm_.c:28
-msgid "Configure services"
-msgstr "ŲŖŁ‡ŁŲ¦Ų© Ų§Ł„Ų®ŲÆŁ…Ų§ŲŖ"
-
-#: ../../steps.pm_.c:29
-msgid "Install bootloader"
-msgstr "ŲŖŲ«ŲØŁŲŖ Ł…Ų­Ł…Ł‘ŁŁ„ Ų§Ł„ŲŁ‚Ł„Ų§Ų¹"
-
-#: ../../steps.pm_.c:31
-msgid "Create a bootdisk"
-msgstr "ŲŲ¹Ł…Ł„ Ł‚Ų±Ųµ ŲŁ‚Ł„Ų§Ų¹"
-
-#: ../../steps.pm_.c:33
-msgid "Configure X"
-msgstr "ŲŖŁ‡ŁŲ¦Ų© X"
-
-#: ../../steps.pm_.c:34
-msgid "Install system updates"
-msgstr "ŲŖŲ«ŲØŁŲŖ ŲŖŲ­ŲÆŁŲ«Ų§ŲŖ Ų§Ł„Ł†ŲøŲ§Ł…"
-
-#: ../../steps.pm_.c:35
-msgid "Exit install"
-msgstr "Ų§Ł„Ų®Ų±ŁŲ¬ Ł…Ł† Ų§Ł„ŲŖŲ«ŲØŁŲŖ"
-
-#: ../../tinyfirewall.pm_.c:9
-msgid ""
-"tinyfirewall configurator\n"
-"\n"
-"This configures a personal firewall for this Mandrake Linux machine.\n"
-"For a powerful dedicated firewall solution, please look to the\n"
-"specialized MandrakeSecurity Firewall distribution."
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:14
-msgid ""
-"We'll now ask you questions about which services you'd like to allow\n"
-"the Internet to connect to. Please think carefully about these\n"
-"questions, as your computer's security is important.\n"
-"\n"
-"Please, if you're not currently using one of these services, firewall\n"
-"it off. You can change this configuration anytime you like by\n"
-"re-running this application!"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:21
-msgid ""
-"Are you running a web server on this machine that you need the whole\n"
-"Internet to see? If you are running a webserver that only needs to be\n"
-"accessed by this machine, you can safely answer NO here.\n"
-"\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:26
-msgid ""
-"Are you running a name server on this machine? If you didn't set one\n"
-"up to give away IP and zone information to the whole Internet, please\n"
-"answer no.\n"
-"\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:31
-msgid ""
-"Do you want to allow incoming Secure Shell (ssh) connections? This\n"
-"is a telnet-replacement that you might use to login. If you're using\n"
-"telnet now, you should definitely switch to ssh. telnet is not\n"
-"encrypted -- so some attackers can steal your password if you use\n"
-"it. ssh is encrypted and doesn't allow for this eavesdropping."
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:36
-msgid ""
-"Do you want to allow incoming telnet connections?\n"
-"This is horribly unsafe, as we explained in the previous screen. We\n"
-"strongly recommend answering No here and using ssh in place of\n"
-"telnet.\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:41
-msgid ""
-"Are you running an FTP server here that you need accessible to the\n"
-"Internet? If you are, we strongly recommend that you only use it for\n"
-"Anonymous transfers. Any passwords sent by FTP can be stolen by some\n"
-"attackers, since FTP also uses no encryption for transferring passwords.\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:46
-msgid ""
-"Are you running a mail server here? If you're sending you \n"
-"messages through pine, mutt or any other text-based mail client,\n"
-"you probably are. Otherwise, you should firewall this off.\n"
-"\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:51
-msgid ""
-"Are you running a POP or IMAP server here? This would\n"
-"be used to host non-web-based mail accounts for people via \n"
-"this machine.\n"
-"\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:56
-msgid ""
-"You appear to be running a 2.2 kernel. If your network IP\n"
-"is automatically set by a computer in your home or office \n"
-"(dynamically assigned), we need to allow for this. Is\n"
-"this the case?\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:61
-msgid ""
-"Is your computer getting time syncronized to another computer?\n"
-"Mostly, this is used by medium-large Unix/Linux organizations\n"
-"to synchronize time for logging and such. If you're not part\n"
-"of a larger office and haven't heard of this, you probably \n"
-"aren't."
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:66
-msgid ""
-"Configuration complete. May we write these changes to disk?\n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-"?Ł‚ŲÆ Ł†ŁŲŖŲØ Ų§Ł„ŲŖŁ‘ŲŗŁŁŲ±Ų§ŲŖ Ł‡Ų°Ł‡ Ł„Ł„Ł‚Ų±Ųµ. Ų§Ų¹ŲÆ Ų§ŲÆ ŁŲ§Ł…Ł„ \n"
-" \n"
-"\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:82
-#, fuzzy, c-format
-msgid "Can't open %s: %s\n"
-msgstr "Ų§Ų³ŲŖŲ·Ų¹"
-
-#: ../../tinyfirewall.pm_.c:84
-#, c-format
-msgid "Can't open %s for writing: %s\n"
-msgstr "%sŁ„Ł„ŁŲŖŲ§ŲØŲ© %sŁ„Ų§ ŁŁ…ŁŁ† Ų£Ł† ŁŁ†ŁŲŖŲ­ \n"
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "No I don't need DHCP"
-msgstr "Ł„Ų§, Ł„Ų§ Ų£Ų­ŲŖŲ§Ų¬ Ų§Ł„Ł‰ DHCP"
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "Yes I need DHCP"
-msgstr "Ł†Ų¹Ł… Ų£Ų­ŲŖŲ§Ų¬ Ų§Ł„Ł‰ DHCP"
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "No I don't need NTP"
-msgstr "Ł„Ų§, Ł„Ų§ Ų£Ų­ŲŖŲ§Ų¬ Ų§Ł„Ł‰ NTP"
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "Yes I need NTP"
-msgstr "Ł†Ų¹Ł… Ų£Ų­ŲŖŲ§Ų¬ NTP"
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-msgid "Don't Save"
-msgstr "Ł„Ų§ ŲŖŲ­ŁŲø"
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-#: ../../tinyfirewall.pm_.c:206
-msgid "Save & Quit"
-msgstr "ŲŲ­ŁŲø Ł Ų§Ų®Ų±Ų¬"
-
-#: ../../tinyfirewall.pm_.c:197 ../../tinyfirewall.pm_.c:201
-msgid "Firewall Configuration Wizard"
-msgstr "Ł…Ų¹Ų§Ł„Ų¬ ŲŲ¹ŲÆŲ§ŲÆ Ų§Ł„Ų¬ŲÆŲ§Ų± Ų§Ł„Ł†Ų§Ų±Ł"
-
-#: ../../tinyfirewall.pm_.c:199
-msgid "No (firewall this off from the internet)"
-msgstr "Ł„Ų§ (Ų§Ł…Ł†Ų¹ Ł‡Ų°Ų§ Ł…Ł† Ų§Ł„ŲŁ†ŲŖŲ±Ł†ŲŖ Ų¹Ł† Ų·Ų±ŁŁ‚ Ų§Ł„Ų¬ŲÆŲ§Ų± Ų§Ł„Ł†Ų§Ų±Ł)"
-
-#: ../../tinyfirewall.pm_.c:200
-msgid "Yes (allow this through the firewall)"
-msgstr "Ł†Ų¹Ł… (Ų§Ų³Ł…Ų­ Ł„Ł‡Ų°Ų§ Ł…Ł† Ų®Ł„Ų§Ł„ Ų§Ł„Ų¬ŲÆŲ§Ų± Ų§Ł„Ł†Ų§Ų±Ł)"
-
-#: ../../tinyfirewall.pm_.c:232
-msgid "Please Wait... Verifying installed packages"
-msgstr "ŁŲ±Ų¬Ł‰ Ų§Ł„ŲŁ†ŲŖŲøŲ§Ų±... Ų¬Ų§Ų±Ł Ų§Ł„ŲŖŲ£ŁŲÆ Ł…Ł† Ų§Ł„Ų­Ų²Ł… Ų§Ł„Ł…Ų«ŲØŲŖŲ©"
-
-#: ../../tinyfirewall.pm_.c:238
-#, c-format
-msgid ""
-"Failure installing the needed packages : %s and Bastille.\n"
-" Try to install them manually."
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Web/FTP"
-msgstr "ŁŁŲØ/FTP"
-
-#: ../../share/compssUsers:999
-msgid "Network Computer (client)"
-msgstr "Ų¬Ł‡Ų§Ų² Ų´ŲØŁŲ© (Ų¹Ł…ŁŁ„)"
-
-#: ../../share/compssUsers:999
-msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr "Ų®Ų§ŲÆŁ… NFS, Ų®Ų§ŲÆŁ… SMB, Ų®Ų§ŲÆŁ… ŲØŲ±ŁŁŲ³Ł, Ų®Ų§ŲÆŁ… ssh"
-
-#: ../../share/compssUsers:999
-msgid "Office"
-msgstr "Ų£ŲÆŁŲ§ŲŖ Ų§Ł„Ł…ŁŲŖŲØ"
-
-#: ../../share/compssUsers:999
-msgid "Gnome Workstation"
-msgstr "Ł…Ų­Ų·Ų© Ų¹Ł…Ł„ ŲŗŁ†ŁŁ…"
-
-#: ../../share/compssUsers:999
-msgid "Tools for your Palm Pilot or your Visor"
-msgstr "Ų£ŲÆŁŲ§ŲŖ Ł„Ų¬Ł‡Ų§Ų² ŲØŲ§Ł„Ł… ŲØŲ§ŁŁ„ŁŲŖ Ų£Ł ŁŲ§ŁŲ²ŁŲ± Ų£Ł„Ų®Ų§Ųµ ŲØŁ"
-
-#: ../../share/compssUsers:999
-msgid "Workstation"
-msgstr "Ł…Ų­Ų·Ų© Ų¹Ł…Ł„"
-
-#: ../../share/compssUsers:999
-msgid "Firewall/Router"
-msgstr "Ų¬ŲÆŲŖŲ± Ł†Ų§Ų±Ł/Ł…ŁŲ¬Ł‘ŁŁ‡"
-
-#: ../../share/compssUsers:999
-msgid "Domain Name and Network Information Server"
-msgstr "Ų®Ų§ŲÆŁ… Ų£Ų³Ł…Ų§Ų Ų§Ł„Ł†Ų·Ų§Ų«Ų§ŲŖ Ł Ł…Ų¹Ł„ŁŁ…Ų§ŲŖ Ų§Ł„Ų´ŁŁŲ©"
-
-#: ../../share/compssUsers:999
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-"ŲØŲ±Ų§Ł…Ų¬ Ł…ŁŲŖŲØŁŲ©: Ł…Ų¹Ų§Ł„Ų¬Ų© Ų§Ł„ŁŁ„Ł…Ų§ŲŖ (kword, abiword), Ų§Ł„Ų¬ŲÆŲ§ŁŁ„ Ų§Ł„Ų­Ų³Ų§ŲØŁŲ© (kspread, "
-"gnumeric) , ŲØŲ±Ų§Ł…Ų¬ Ų¹Ų±Ų¶ pdf, Ų§Ł„Ų®"
-
-#: ../../share/compssUsers:999
-msgid "Audio-related tools: mp3 or midi players, mixers, etc"
-msgstr "Ų£ŲÆŁŲ§ŲŖ ŲµŁŲŖŁŲ©: Ł…Ų´ŲŗŁ„Ų§ŲŖ mp3 Ų£Ł midi, Ł…Ų§Ų²Ų¬Ų§ŲŖ ŲµŁŲŖ, Ų§Ł„Ų®"
-
-#: ../../share/compssUsers:999
-msgid "Books and Howto's on Linux and Free Software"
-msgstr "ŁŲŖŲØ Ł Ł…Ų°ŁŲ±Ų§ŲŖ 'ŁŁŁ Ų£Ų¹Ł…Ł„' Ų­ŁŁ„ Ł„ŁŁ†ŁŲ³ Ł Ų§Ł„ŲØŲ±Ų§Ł…Ų¬ Ų§Ł„Ų­Ų±Ų©"
-
-#: ../../share/compssUsers:999
-msgid "KDE Workstation"
-msgstr "Ł…Ų­Ų·Ł Ų¹Ł…Ł„ ŁŁŲÆŁ"
-
-#: ../../share/compssUsers:999
-msgid "Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm, Window Maker, Enlightenment, Fvwm, Ų§Ł„Ų®"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Video"
-msgstr "ŁŲ³Ų§Ų¦Ų· Ł…ŲŖŲ¹ŲÆŲÆŲÆŲ© - ŁŁŲÆŁŁ"
-
-#: ../../share/compssUsers:999
-msgid "Set of tools for mail, news, web, file transfer, and chat"
-msgstr "Ł…Ų¬Ł…ŁŲ¹Ų© Ł…Ł† Ų§Ł„Ų£ŲÆŁŲ§ŲŖ Ł„Ł„ŲØŲ±ŁŲÆ , Ų§Ł„Ų£Ų®ŲØŲ§Ų±, Ų§Ł„ŲŁ†ŲŖŲ±Ł†ŲŖ, Ł†Ł‚Ł„ Ų§Ł„Ł…Ł„ŁŲ§ŲŖ, Ł Ų§Ł„Ł…Ų­Ų§ŲÆŲ«Ų©"
-
-#: ../../share/compssUsers:999
-msgid "Database"
-msgstr "Ł‚ŁŲ§Ų¹ŲÆ Ų§Ł„ŲØŁŲ§Ł†Ų§ŲŖ"
-
-#: ../../share/compssUsers:999
-msgid "PostgreSQL or MySQL database server"
-msgstr "Ų®Ų§ŲÆŁ… Ł‚ŁŲ§Ų¹ŲÆ Ų§Ł„ŲØŁŲ§Ł†Ų§ŲŖ PostgreSQL Ų£Ł MySQL"
-
-#: ../../share/compssUsers:999
-msgid "Tools to ease the configuration of your computer"
-msgstr "Ų£ŲÆŁŲ§ŲŖ Ł„ŲŖŲ³Ł‡ŁŁ„ ŲŲ¹ŲÆŲ§ŲÆ Ų¬Ł‡Ų§Ų²Ł"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Sound"
-msgstr "ŁŲ³Ų§Ų¦Ų· Ł…ŲŖŲ¹ŲÆŲÆŲ© - ŲµŁŲŖ"
-
-#: ../../share/compssUsers:999
-msgid "Utilities"
-msgstr "Ų£ŲÆŁŲ§ŲŖ Ų®ŲÆŁ…ŁŲ©"
-
-#: ../../share/compssUsers:999
-msgid "Documentation"
-msgstr "ŁŲ«Ų§Ų¦Ł‚ Ų§Ł„Ł…Ų³Ų§Ų¹ŲÆŲ©"
-
-#: ../../share/compssUsers:999
-msgid "Console Tools"
-msgstr "Ų£ŲÆŁŲ§ŲŖ Ų³Ų·Ų± Ų§Ł„Ų£ŁŲ§Ł…Ų±"
-
-#: ../../share/compssUsers:999
-msgid "Postfix mail server, Inn news server"
-msgstr "Ų®Ų§ŲÆŁ… Ų§Ł„ŲØŲ±ŁŲÆ Postfix, Ų®Ų§ŲÆŁ… Ų§Ł„Ų£Ų®ŲØŲ§Ų± Inn"
-
-#: ../../share/compssUsers:999
-msgid "Internet station"
-msgstr "Ł…Ų­Ų·Ų© Ų§Ł†ŲŖŲ±Ł†ŲŖ"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia station"
-msgstr "Ł…Ų­Ų·Ų© ŁŲ³Ų§Ų¦Ų· Ł…ŲŖŲ¹ŲÆŲÆŲ©"
-
-#: ../../share/compssUsers:999
-msgid "Configuration"
-msgstr "Ų£ŲÆŁŲ§ŲŖ Ų§Ł„ŲŲ¹ŲÆŲ§ŲÆŲ§ŲŖ"
-
-#: ../../share/compssUsers:999
-msgid "More Graphical Desktops (Gnome, IceWM)"
-msgstr "Ų£Ų³Ų·Ų­ Ł…ŁŲŖŲØ Ų±Ų³ŁŁ…ŁŲ© Ų£ŁŲ«Ų± (Gnome, IceWM)"
-
-#: ../../share/compssUsers:999
-msgid ""
-"The K Desktop Environment, the basic graphical environment with a collection "
-"of accompanying tools"
-msgstr ""
-"ŲØŁŲ¦Ų© Ų³Ų·Ų­ Ł…ŁŲŖŲØ ŁŁŲÆŁ, Ų§Ł„ŲØŁŲ¦Ų© Ų§Ł„Ų±Ų³ŁŁ…ŁŲ© Ų§Ł„Ų£Ų³Ų§Ų³ŁŲ© Ł…Ų¹ Ł…Ų¬Ł…ŁŲ¹Ų© Ł…Ł† Ų§Ł„Ų£ŲÆŁŲ§ŲŖ Ų§Ł„Ł…ŲµŲ§Ų­ŲØŲ©"
-
-#: ../../share/compssUsers:999
-msgid "Graphical Environment"
-msgstr "ŲØŁŲ¦Ų§ŲŖ Ų±Ų³ŁŁ…ŁŲ©"
-
-#: ../../share/compssUsers:999
-msgid "Apache, Pro-ftpd"
-msgstr "Apache, Pro-ftpd"
-
-#: ../../share/compssUsers:999
-msgid "Tools to create and burn CD's"
-msgstr "Ų£ŲÆŁŲ§ŲŖ Ł„Ų¹Ł…Ł„ Ł Ł†Ų³Ų® Ų§Ł„Ų£Ł‚Ų±Ų§Ųµ"
-
-#: ../../share/compssUsers:999
-msgid "Office Workstation"
-msgstr "Ł…Ų­Ų·Ų© Ų¹Ł…Ł„ Ł…ŁŲŖŲØŁŲ©"
-
-#: ../../share/compssUsers:999
-msgid "Server"
-msgstr "Ų®Ų§ŲÆŁ…"
-
-#: ../../share/compssUsers:999
-msgid "Gnome, Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Gnome, Icewm, Window Maker, Enlightenment, Fvwm, Ų§Ł„Ų®"
-
-#: ../../share/compssUsers:999
-msgid "Graphics programs such as The Gimp"
-msgstr "ŲØŲ±Ų§Ł…Ų¬ Ų±Ų³ŁŁ…ŁŲ§ŲŖ Ł…Ų«Ł„ The Gimp"
-
-#: ../../share/compssUsers:999
-msgid "DNS/NIS "
-msgstr "DNS/NIS"
-
-#: ../../share/compssUsers:999
-msgid "C and C++ development libraries, programs and include files"
-msgstr "ŲØŲ±Ų§Ł…Ų¬ Ł Ł…ŁŲŖŲØŲ§ŲŖ ŲŖŲ·ŁŁŲ± C Ł C++"
-
-#: ../../share/compssUsers:999
-msgid "Network Computer server"
-msgstr "Ų®Ų§ŲÆŁ… Ų´ŲØŁŲ§ŲŖ"
-
-#: ../../share/compssUsers:999
-msgid "Mail/Groupware/News"
-msgstr "ŲØŲ±ŁŲÆ/Ų£ŲÆŁŲ§ŲŖ Ł…Ų¬Ł…ŁŲ¹Ų§ŲŖ/Ų£Ų®ŲØŲ§Ų±"
-
-#: ../../share/compssUsers:999
-msgid "Game station"
-msgstr "Ł…Ų­Ų·Ų© Ų£Ł„Ų¹Ų§ŲØ"
-
-#: ../../share/compssUsers:999
-msgid "Video players and editors"
-msgstr "ŲØŲ±Ų§Ł…Ų¬ ŲŖŲ´ŲŗŁŁ„ Ł ŲŖŲ­Ų±ŁŲ± Ų§Ł„ŁŁŲÆŁŁ"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Graphics"
-msgstr "ŁŲ³Ų§Ų¦Ų· Ł…ŲŖŲ¹ŲÆŲÆŲ© - Ų±Ų³ŁŁ…ŁŲ§ŲŖ"
-
-#: ../../share/compssUsers:999
-msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr "ŲØŲ±Ų§Ł…Ų¬ Ų§Ł„ŲŖŲ³Ł„ŁŲ©: Ų£Ł„Ų¹Ų§ŲØ ŁŁŲÆŁŁ, Ų£Ł„Ų¹Ų§ŲØ Ł„ŁŲ­Ų§ŲŖ, Ų£Ł„Ų¹Ų§ŲØ Ų³ŲŖŲ±Ų§ŲŖŁŲ¬ŁŲ©, Ų§Ł„Ų®"
-
-#: ../../share/compssUsers:999
-msgid ""
-"Set of tools to read and send mail and news (pine, mutt, tin..) and to "
-"browse the Web"
-msgstr ""
-"Ł…Ų¬Ł…ŁŲ¹Ų© Ł…Ł† Ų§Ł„Ų£ŲÆŁŲ§ŲŖ Ł„Ł‚Ų±Ų§ŲŲ© Ł Ų§Ų±Ų³Ų§Ł„ Ų§Ł„ŲØŲ±ŁŲÆ Ł Ų§Ł„Ų£Ų®ŲØŲ§Ų± (pine, mutt, tin..) Ł "
-"Ł„ŲŖŲµŁŲ­ Ų§Ł„ŲŁ†ŲŖŲ±Ł†ŲŖ"
-
-#: ../../share/compssUsers:999
-msgid "Archiving, emulators, monitoring"
-msgstr "Ų§Ł„Ų£Ų±Ų´ŁŲ©, Ł…Ų­Ų§ŁŁŲ§ŲŖ, Ų£ŲÆŁŲ§ŲŖ Ł…Ų±Ų§Ł‚ŲØŲ© Ų§Ł„Ł†ŲøŲ§Ł…"
-
-#: ../../share/compssUsers:999
-msgid "Personal Finance"
-msgstr "Ų§Ł„Ł…ŁŲ²Ų§Ł†ŁŲ© Ų§Ł„Ų´Ų®ŲµŁŲ©"
-
-#: ../../share/compssUsers:999
-msgid ""
-"A graphical environment with user-friendly set of applications and desktop "
-"tools"
-msgstr ""
-"ŲØŁŲ¦Ų© Ų±Ų³ŁŁ…ŁŲ© Ł…Ų¹ Ł…Ų¬Ł…ŁŲ¹Ų© Ł…Ł† Ų§Ł„ŲŖŲ·ŲØŁŁ‚Ų§ŲŖ Ł Ų£ŲÆŁŲ§ŲŖ Ų³Ų·Ų­ Ų§Ł„Ł…ŁŲŖŲØ Ų§Ł„Ł…Ł†Ų§Ų³ŲØŲ© Ł„Ł„Ł…Ų³ŲŖŲ®ŲÆŁ…ŁŁ† "
-"Ų§Ł„Ų¹Ų§ŲÆŁŁŁ†"
-
-#: ../../share/compssUsers:999
-msgid "Clients for different protocols including ssh"
-msgstr "Ų¹Ł…Ł„Ų§Ų Ł„ŲØŲ±ŁŲŖŁŁŁŁ„Ų§ŲŖ Ł…Ų®ŲŖŁ„ŁŲ© Ł…Ų«Ł„ ssh"
-
-#: ../../share/compssUsers:999
-msgid "Internet gateway"
-msgstr "ŲØŁŲ§ŲØŲ© Ų§Ł†ŲŖŲ±Ł†ŲŖ"
-
-#: ../../share/compssUsers:999
-msgid "Sound and video playing/editing programs"
-msgstr "ŲØŲ±Ų§Ł…Ų¬ ŲŖŲ­Ų±ŁŲ±/ŲŖŲ´ŲŗŁŁ„ Ų§Ł„ŁŁŲÆŁŲ© Ł Ų§Ł„ŲµŁŲŖ"
-
-#: ../../share/compssUsers:999
-msgid "Other Graphical Desktops"
-msgstr "Ų£Ų³Ų·Ų® Ł…ŁŲŖŲØ Ų±Ų³ŁŁ…ŁŲ© Ų£Ų®Ų±Ł‰"
-
-#: ../../share/compssUsers:999
-msgid "Editors, shells, file tools, terminals"
-msgstr "Ł…Ų­Ų±Ų±Ų§ŲŖ Ł†ŲµŁŲµ, Ų£ŲŗŁ„ŁŲ©, Ų£ŲÆŁŲ§ŲŖ Ł…Ł„ŁŲ§ŲŖ, Ų·Ų±ŁŁŲ§ŲŖ"
-
-#: ../../share/compssUsers:999
-msgid "Programs to manage your finance, such as gnucash"
-msgstr "ŲØŲ±Ų§Ł…Ų¬ Ł„ŲŲÆŲ§Ų±Ų© Ł…ŁŲ²Ų§Ł†ŁŲŖŁ Ł…Ų«Ł„ gnucash"
-
-#: ../../share/compssUsers:999
-msgid "Personal Information Management"
-msgstr "Ų§ŲÆŲ§Ų±Ų© Ų§Ł„Ł…Ų¹Ł„ŁŁ…Ų§ŲŖ Ų§Ł„Ų´Ų®ŲµŁŲ©"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - CD Burning"
-msgstr "ŁŲ³Ų§Ų¦Ų· Ł…ŲŖŲ¹ŲÆŲÆŲ© - Ł†Ų³Ų® Ų£Ł‚Ų±Ų§Ųµ"
-
-#: ../../share/compssUsers:999
-msgid "Scientific Workstation"
-msgstr "Ł…Ų­Ų·Ų© Ų¹Ł…Ł„ Ų¹Ł„Ł…ŁŲ©"
-
-#~ msgid "About"
-#~ msgstr "Ų­ŁŁ„"
-
-#~ msgid " Help "
-#~ msgstr " Ł…Ų³Ų§Ų¹ŲÆŲ© "
-
-#~ msgid "None"
-#~ msgstr "ŁŁ„Ų§ ŁŲ§Ų­ŲÆŲ©"
-
-#~ msgid "Choose a default printer!"
-#~ msgstr "Ų§Ų®ŲŖŲ± Ų§Ł„Ų·Ų§ŲØŲ¹Ų© Ų§Ł„Ų§ŁŲŖŲ±Ų§Ų¶ŁŲ©:"
-
-#~ msgid "You may now provide its options to module %s."
-#~ msgstr "ŁŁ…ŁŁ†Ł Ų§Ł„Ų¢Ł† Ų§Ų¹Ų·Ų§Ų Ų§Ł„Ų®ŁŲ§Ų±Ų§ŲŖ Ł„Ł„ŁŲ­ŲÆŲ© %s"
-
-#~ msgid "mount failed"
-#~ msgstr "ŁŲ´Ł„ Ų§Ł„ŲŖŲ­Ł…ŁŁ„"
-
-#~ msgid "Low"
-#~ msgstr "Ł…Ł†Ų®ŁŲ¶"
-
-#~ msgid "Medium"
-#~ msgstr "Ł…ŲŖŁŲ³Ų·"
-
-#~ msgid "Export"
-#~ msgstr "ŲŖŲµŲÆŁŲ±"
-
-#~ msgid "click here"
-#~ msgstr "Ų§Ł†Ł‚Ų± Ł‡Ł†Ų§"
-
-#~ msgid "Detected %s, do you want to set it up?"
-#~ msgstr "ŲŖŁ… Ų§Ł„ŲŖŲ®Ł‚Ł‚ Ł…Ł† ŁŲ¬ŁŲÆ %s, Ł‡Ł„ ŲŖŲ±ŁŲÆ Ų§Ų¹ŲÆŲ§ŲÆŁ‡Ų"
-
-#~ msgid "Please choose the printer you want to set up."
-#~ msgstr "Ų±Ų¬Ų§Ų Ų§Ų®ŲŖŲ± Ų§Ł„Ų·Ų§ŲØŲ¹Ų© Ų§Ł„ŲŖŁ ŲŖŲ±ŁŲÆ ŲŖŁ‡ŁŲ¦ŲŖŁ‡Ų§."
-
-#~ msgid "authentification"
-#~ msgstr "Ų§Ł„Ł…ŲµŲ§ŲÆŁ‚Ų©"
-
-#~ msgid "user"
-#~ msgstr "Ų§Ł„Ł…Ų³ŲŖŲ®ŲÆŁ…"
-
-#~ msgid "Scanning available nfs shared resource"
-#~ msgstr "Ų¬Ų§Ų±Ł Ł…Ų³Ų­ Ł…ŲµŲ§ŲÆŲ± nfs Ų§Ł„Ł…Ų´ŲŖŲ±ŁŲ© Ų§Ł„Ł…ŲŖŁŁŲ±Ų©"
-
-#~ msgid "Scanning available nfs shared resource of server %s"
-#~ msgstr "Ų¬Ų§Ų±Ł Ł…Ų³Ų­ Ł…ŲµŲ§ŲÆŲ± nfs Ų§Ł„Ł…Ų´ŲŖŲ±ŁŲ© Ų§Ł„Ł…ŲŖŁŁŲ±Ų© Ł„Ł„Ų®Ų§ŲÆŁ… %s"
-
-#~ msgid "Scanning available samba shared resource"
-#~ msgstr "Ų¬Ų§Ų±Ł Ł…Ų³Ų­ Ł…ŲµŲ§ŲÆŲ± samba Ų§Ł„Ł…Ų´ŲŖŲ±ŁŲ© Ų§Ł„Ł…ŲŖŁŁŲ±Ų©"
-
-#~ msgid "Scanning available samba shared resource of server %s"
-#~ msgstr "Ų¬Ų§Ų±Ł Ł…Ų³Ų­ Ł…ŲµŲ§ŲÆŲ± samba Ų§Ł„Ł…Ų´ŲŖŲ±ŁŲ© Ų§Ł„Ł…ŲŖŁŁŲ±Ų© Ł„Ł„Ų®Ų§ŲÆŁ… %s"
-
-#~ msgid "\\@quit"
-#~ msgstr "\\@Ų®Ų±ŁŲ¬"
-
-#~ msgid "Removable media"
-#~ msgstr "ŁŲ³Ų§Ų¦Ų· Ł‚Ų§ŲØŁ„Ų© Ł„Ł„ŲŲ²Ų§Ł„Ų©"
-
-#~ msgid "Active"
-#~ msgstr "Ł†Ų´Ų·"
-
-#~ msgid "No X"
-#~ msgstr "Ł„Ų§ X"
-
-#~ msgid " Linux "
-#~ msgstr " Ł„ŁŁ†ŁŲ³ "
-
-#~ msgid " System "
-#~ msgstr " Ł†ŲøŲ§Ł… "
-
-#~ msgid " Other "
-#~ msgstr " Ų£Ų®Ų±Ł‰ "
-
-#~ msgid "please choose your CD space"
-#~ msgstr "Ų±Ų¬Ų§Ų Ų§Ų®ŲŖŲ± Ł…Ų³Ų§Ų­Ų© Ų§Ł„Ł‚Ų±Ųµ Ų§Ł„Ł…ŲÆŁ…Ų¬"
-
-#~ msgid " Please check if you are using CDRW media"
-#~ msgstr "ŁŲ¶Ł„Ų§ Ł‚Ł… ŲØŲ§Ł„ŲŖŲ£Ų´ŁŲ± Ł‡Ł†Ų§ Ų§Ų°Ų§ ŁŁ†ŲŖ ŲŖŲ³ŲŖŲ®ŲÆŁ… ŁŲ³ŁŲ· CDRW"
-
-#~ msgid " Tape "
-#~ msgstr " Ų§Ł„Ų´Ų±ŁŲ· "
-
-#~ msgid " Cancel "
-#~ msgstr " ŲŁ„ŲŗŲ§Ų "
-
-#~ msgid " Ok "
-#~ msgstr " Ł…ŁŲ§ŁŁ‚ "
-
-#~ msgid "close"
-#~ msgstr "ŲŲŗŁ„Ų§Ł‚"
-
-#~ msgid "can not open /etc/sysconfig/autologin for reading: %s"
-#~ msgstr "Ł„Ł… ŁŁ…ŁŁ† ŁŲŖŲ­ /etc/sysconfig/autologin Ł„Ł„Ł‚Ų±Ų§ŲŲ©: %s"
-
-#~ msgid "New"
-#~ msgstr "Ų¬ŲÆŁŲÆ"
-
-#~ msgid "Remote"
-#~ msgstr "ŲØŲ¹ŁŲÆ"
-
-#~ msgid ""
-#~ "Please click on a button above\n"
-#~ "\n"
-#~ "Or use \"New\""
-#~ msgstr ""
-#~ "ŁŲ¶Ł„Ų§ Ų§Ų¶ŲŗŲ· Ų§Ł„Ų²Ų± ŲØŲ§Ł„Ų£Ų¹Ł„Ł‰\n"
-#~ "\n"
-#~ "Ų£Ł Ų§Ų³ŲŖŲ®ŲÆŁ… \"Ų¬ŲÆŁŲÆ\""
-
-#~ msgid "Use \"New\""
-#~ msgstr "Ų§Ų³ŲŖŲ®ŲÆŁ… \"Ų¬ŲÆŁŲÆ\""
-
-#~ msgid "If the list above doesn't contain the wanted entry, enter it here:"
-#~ msgstr "Ų§Ų°Ų§ Ł„Ł… ŲŖŲŖŲ¶Ł…Ł† Ų§Ł„Ł‚Ų§Ų¦Ł…Ų© Ų§Ł„Ł…ŲÆŲ®Ł„ Ų§Ł„Ł…Ų·Ł„ŁŲØ, Ł‚Ł… ŲØŲŲÆŲ®Ų§Ł„Ł‡ Ł‡Ł†Ų§:"
-
-#~ msgid "Shared resource"
-#~ msgstr "Ł…ŲµŲÆŲ± Ł…Ų´ŲŖŲ±Ł"
diff --git a/perl-install/share/po/az.po b/perl-install/share/po/az.po
deleted file mode 100644
index fb71a4b28..000000000
--- a/perl-install/share/po/az.po
+++ /dev/null
@@ -1,12924 +0,0 @@
-# Azerbaijani Turkish translation of DrakX
-# Copyright (C) 1999 MandrakeSof
-# Vasif Ismailoglu MD <azerb_linux@hotmail.com>, 2000
-msgid ""
-msgstr ""
-"Project-Id-Version: DrakX VERSION\n"
-"POT-Creation-Date: 2002-03-11 18:29+0100\n"
-"PO-Revision-Date: 2001-06-09 23:30GMT +0200\n"
-"Last-Translator: Vasif Ä°smayıloÄlu MD <azerb_linux@hotmail.com>\n"
-"Language-Team: Azerbaijani Turkish <linuxaz@azerimal.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 0.8\n"
-
-#: ../../Xconfigurator.pm_.c:242
-msgid "Configure all heads independently"
-msgstr "BĆ¼tĆ¼n baÅlıqları ayrı ayrı quraÅdır"
-
-#: ../../Xconfigurator.pm_.c:243
-msgid "Use Xinerama extension"
-msgstr "Xinerama ifadÉ™lÉ™rini iÅlÉ™t"
-
-#: ../../Xconfigurator.pm_.c:246
-#, c-format
-msgid "Configure only card \"%s\" (%s)"
-msgstr "Təkcə \"%s\" kartını qur (%s)"
-
-#: ../../Xconfigurator.pm_.c:249
-msgid "Multi-head configuration"
-msgstr "Ƈoxlu BaÅlıq quraÅdırılması"
-
-#: ../../Xconfigurator.pm_.c:250
-msgid ""
-"Your system support multiple head configuration.\n"
-"What do you want to do?"
-msgstr ""
-"Sizin sisteminiz Ƨoxlu baÅlıq quraÅdırmasını dÉ™stÉ™klÉ™yir.\n"
-"Nə etmək istəyirsiniz?"
-
-#: ../../Xconfigurator.pm_.c:261
-msgid "Graphic card"
-msgstr "Ekran kartı"
-
-#: ../../Xconfigurator.pm_.c:262
-msgid "Select a graphic card"
-msgstr "Ekran kartınızı seƧin"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "Choose a X server"
-msgstr "Bir X vericisi seƧin"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "X server"
-msgstr "X verici"
-
-#: ../../Xconfigurator.pm_.c:293
-#, fuzzy
-msgid "Choose a X driver"
-msgstr "Bir X vericisi seƧin"
-
-#: ../../Xconfigurator.pm_.c:293
-#, fuzzy
-msgid "X driver"
-msgstr "X verici"
-
-#: ../../Xconfigurator.pm_.c:360 ../../Xconfigurator.pm_.c:366
-#: ../../Xconfigurator.pm_.c:416 ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s"
-msgstr "XFree %s"
-
-#: ../../Xconfigurator.pm_.c:363
-msgid "Which configuration of XFree do you want to have?"
-msgstr "NecÉ™ bir XFree qurÄusunu istÉ™yirsiniz?"
-
-#: ../../Xconfigurator.pm_.c:374
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"Sizin kartınızın 3D sĆ¼r'É™tlÉ™ndirmÉ™ dÉ™stÉ™yi ola bilÉ™r, amma sadecÉ™ olaraq "
-"XFree %s\n"
-"ilÉ™ dĆ¼zgĆ¼n iÅlÉ™yÉ™r.\n"
-"Sizin kartınıza XFree %s tÉ™rÉ™findÉ™n dÉ™stÉ™k verilir ve bu 2D Ć¼Ć§Ć¼n daha yaxÅı "
-"bir fikir olar."
-
-#: ../../Xconfigurator.pm_.c:376 ../../Xconfigurator.pm_.c:409
-#, c-format
-msgid "Your card can have 3D hardware acceleration support with XFree %s."
-msgstr "Sizin kartınızın XFree %s ilə 3D dəstəyi ola bilər."
-
-#: ../../Xconfigurator.pm_.c:378 ../../Xconfigurator.pm_.c:411
-#: ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s with 3D hardware acceleration"
-msgstr "3D avadanlıq sĆ¼r'É™tlÉ™ndirmÉ™si ilÉ™ XFree %s"
-
-#: ../../Xconfigurator.pm_.c:386 ../../Xconfigurator.pm_.c:400
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER."
-msgstr ""
-"Sizin kartınızın XFree %s ilə 3D dəstəyi ola bilər.\n"
-"DÄ°QQʸT! BU SINAQ MʸRHʸLʸSINDʸDIR Vʸ KOMPĆTERÄ°NÄ°Z DONDURA BILʸR."
-
-#: ../../Xconfigurator.pm_.c:388 ../../Xconfigurator.pm_.c:402
-#, c-format
-msgid "XFree %s with EXPERIMENTAL 3D hardware acceleration"
-msgstr "SINAQ MʸRHʸLʸSÄ°NDʸKÄ° 3D sĆ¼r'É™tlÉ™ndirmÉ™ dÉ™stÉ™kli XFree %s"
-
-#: ../../Xconfigurator.pm_.c:397
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"Sizin kartınızın 3D sĆ¼r'É™tlÉ™ndirmÉ™ dÉ™stÉ™yi ola bilÉ™r, amma sadecÉ™ olaraq "
-"XFree %s\n"
-"ilÉ™ dĆ¼zgĆ¼n iÅlÉ™yÉ™r.\n"
-"DÄ°QQʸT! BU SINAQ MʸRHʸLʸSINDʸDIR Vʸ KOMPĆTERÄ°NÄ°Z DONDURA BILʸR.\n"
-"Sizin kartınıza XFree %s tÉ™rÉ™findÉ™n dÉ™stÉ™k verilir ve bu 2D Ć¼Ć§Ć¼n daha yaxÅı "
-"bir seƧki olar."
-
-#: ../../Xconfigurator.pm_.c:417
-msgid "Xpmac (installation display driver)"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:421
-msgid "XFree configuration"
-msgstr "XFree quraÅdırılması"
-
-#: ../../Xconfigurator.pm_.c:496
-msgid "Select the memory size of your graphic card"
-msgstr "Ekran kartınızın yaddaÅ bƶyĆ¼klĆ¼yĆ¼nĆ¼ seƧin"
-
-#: ../../Xconfigurator.pm_.c:550
-msgid "Choose options for server"
-msgstr "X verici Ć¼Ć§Ć¼n seƧənÉ™klÉ™ri gƶstÉ™rin"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Choose a monitor"
-msgstr "Monitorunuzu seƧin"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Monitor"
-msgstr "Monitor"
-
-#: ../../Xconfigurator.pm_.c:577
-msgid ""
-"The two critical parameters are the vertical refresh rate, which is the "
-"rate\n"
-"at which the whole screen is refreshed, and most importantly the horizontal\n"
-"sync rate, which is the rate at which scanlines are displayed.\n"
-"\n"
-"It is VERY IMPORTANT that you do not specify a monitor type with a sync "
-"range\n"
-"that is beyond the capabilities of your monitor: you may damage your "
-"monitor.\n"
-" If in doubt, choose a conservative setting."
-msgstr ""
-"Buradaki iki vacib parametr Ć¼fĆ¼qi ve Åaquli yenilÉ™mÉ™ sĆ¼r'É™tlÉ™ridir.\n"
-"SeƧərkÉ™n monitorunuzun qabiliyyÉ™tinin Ć¼stĆ¼ndÉ™ bir parametr\n"
-"seƧməməyiniz Ƨox vacibdir, əks halda monitor zərər gƶrər.\n"
-"SeƧərkÉ™n bir qÉ™rarsızlıÄa dĆ¼ÅÉ™rsÉ™niz, alƧaq rezolyusiya seƧin."
-
-#: ../../Xconfigurator.pm_.c:584
-msgid "Horizontal refresh rate"
-msgstr "ĆfĆ¼qi yenilÉ™mÉ™ sĆ¼r'É™ti"
-
-#: ../../Xconfigurator.pm_.c:585
-msgid "Vertical refresh rate"
-msgstr "Å˛aquli yenilÉ™mÉ™ sĆ¼r'É™ti"
-
-#: ../../Xconfigurator.pm_.c:622
-msgid "Monitor not configured"
-msgstr "Monitor qurulmayıb"
-
-#: ../../Xconfigurator.pm_.c:625
-msgid "Graphic card not configured yet"
-msgstr "Ekran kartı hələ qurulmayıb"
-
-#: ../../Xconfigurator.pm_.c:628
-msgid "Resolutions not chosen yet"
-msgstr "Rezolyusiya hələ seƧilməyib"
-
-#: ../../Xconfigurator.pm_.c:646
-msgid "Do you want to test the configuration?"
-msgstr "QurÄuları sınamaq istÉ™yirsiniz?"
-
-#: ../../Xconfigurator.pm_.c:650
-msgid "Warning: testing this graphic card may freeze your computer"
-msgstr "DiqqÉ™t: Bu qrafika kartı ilÉ™ edilÉ™cÉ™k sınaq tÉ™hlĆ¼kÉ™lidir"
-
-#: ../../Xconfigurator.pm_.c:653
-msgid "Test of the configuration"
-msgstr "QurÄuların sınaÄı"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid ""
-"\n"
-"try to change some parameters"
-msgstr ""
-"\n"
-"bÉ™'zi parametrlÉ™ri dÉ™yiÅdirin"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid "An error has occurred:"
-msgstr "Bir xəta oldu:"
-
-#: ../../Xconfigurator.pm_.c:731
-#, c-format
-msgid "Leaving in %d seconds"
-msgstr "%d saniyə sonra Ƨıxılacaq"
-
-#: ../../Xconfigurator.pm_.c:742
-msgid "Is this the correct setting?"
-msgstr "Bu qurÄular doÄrudur?"
-
-#: ../../Xconfigurator.pm_.c:751
-msgid "An error has occurred, try to change some parameters"
-msgstr "Bir xÉ™ta oldu, parametrlÉ™ri dÉ™yiÅdirin"
-
-#: ../../Xconfigurator.pm_.c:822
-msgid "Resolution"
-msgstr "Rezolyusiya"
-
-#: ../../Xconfigurator.pm_.c:874
-msgid "Choose the resolution and the color depth"
-msgstr "Rezolyusiya və rəng dərinliyini seƧin"
-
-#: ../../Xconfigurator.pm_.c:876
-#, c-format
-msgid "Graphic card: %s"
-msgstr "Ekran kartı: %s"
-
-#: ../../Xconfigurator.pm_.c:877
-#, c-format
-msgid "XFree86 server: %s"
-msgstr "XFree86 verici: %s"
-
-#: ../../Xconfigurator.pm_.c:891 ../../diskdrake/interactive.pm_.c:259
-#: ../../install_steps_interactive.pm_.c:208
-msgid "More"
-msgstr "Daha Ƈox"
-
-#: ../../Xconfigurator.pm_.c:891 ../../install_gtk.pm_.c:84
-#: ../../install_steps_gtk.pm_.c:328 ../../interactive.pm_.c:127
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_http.pm_.c:104
-#: ../../interactive_newt.pm_.c:170 ../../interactive_stdio.pm_.c:141
-#: ../../interactive_stdio.pm_.c:142 ../../my_gtk.pm_.c:686
-#: ../../my_gtk.pm_.c:1019 ../../my_gtk.pm_.c:1041
-#: ../../standalone/drakbackup_.c:2298 ../../standalone/drakbackup_.c:2369
-#: ../../standalone/drakbackup_.c:2385
-msgid "Ok"
-msgstr "Oldu"
-
-#: ../../Xconfigurator.pm_.c:893 ../../network/netconnect.pm_.c:169
-#: ../../printerdrake.pm_.c:2470 ../../standalone/draknet_.c:275
-#: ../../standalone/draknet_.c:278
-msgid "Expert Mode"
-msgstr "Usta Modu"
-
-#: ../../Xconfigurator.pm_.c:894
-msgid "Show all"
-msgstr "Hamısını Gƶstər"
-
-#: ../../Xconfigurator.pm_.c:939
-msgid "Resolutions"
-msgstr "Rezolyusiyalar"
-
-#: ../../Xconfigurator.pm_.c:1509
-#, c-format
-msgid "Keyboard layout: %s\n"
-msgstr "Klavatura dĆ¼zĆ¼lĆ¼ÅĆ¼: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1510
-#, c-format
-msgid "Mouse type: %s\n"
-msgstr "SiƧan nƶvĆ¼: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1511
-#, c-format
-msgid "Mouse device: %s\n"
-msgstr "SiƧan avadanlıÄı: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1512
-#, c-format
-msgid "Monitor: %s\n"
-msgstr "Monitor: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1513
-#, c-format
-msgid "Monitor HorizSync: %s\n"
-msgstr "Monitorun Å˛aquli Daraması: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1514
-#, c-format
-msgid "Monitor VertRefresh: %s\n"
-msgstr "Monitorun ĆfĆ¼qi YenilÉ™mÉ™si: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1515
-#, c-format
-msgid "Graphic card: %s\n"
-msgstr "Ekran kartı: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1516
-#, fuzzy, c-format
-msgid "Graphic card identification: %s\n"
-msgstr "Ekran kartı: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1517
-#, c-format
-msgid "Graphic memory: %s kB\n"
-msgstr "Ekran kartı yaddaÅı: %s KB\n"
-
-#: ../../Xconfigurator.pm_.c:1519
-#, c-format
-msgid "Color depth: %s\n"
-msgstr "Rəng dərinliyi: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1520
-#, c-format
-msgid "Resolution: %s\n"
-msgstr "Rezolyusiya: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1522
-#, c-format
-msgid "XFree86 server: %s\n"
-msgstr "XFree86 verici: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1523
-#, c-format
-msgid "XFree86 driver: %s\n"
-msgstr "XFree86 sĆ¼rĆ¼cĆ¼: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1541
-msgid "Preparing X-Window configuration"
-msgstr "X-Window qurÄuları hazırlanır"
-
-#: ../../Xconfigurator.pm_.c:1561
-msgid "What do you want to do?"
-msgstr "Nə etmək istəyirsiniz?"
-
-#: ../../Xconfigurator.pm_.c:1566
-msgid "Change Monitor"
-msgstr "Monitoru DÉ™yiÅdir"
-
-#: ../../Xconfigurator.pm_.c:1567
-msgid "Change Graphic card"
-msgstr "Ekran kartını dÉ™yiÅdir"
-
-#: ../../Xconfigurator.pm_.c:1570
-msgid "Change Server options"
-msgstr "Verici seƧənÉ™klÉ™rini dÉ™yiÅdir"
-
-#: ../../Xconfigurator.pm_.c:1571
-msgid "Change Resolution"
-msgstr "Rezolyusiyanı DÉ™yiÅdir"
-
-#: ../../Xconfigurator.pm_.c:1572
-msgid "Show information"
-msgstr "Mə'lumatı gƶstər"
-
-#: ../../Xconfigurator.pm_.c:1573
-msgid "Test again"
-msgstr "Yenidən sına"
-
-#: ../../Xconfigurator.pm_.c:1574 ../../printerdrake.pm_.c:2473
-#: ../../standalone/logdrake_.c:225
-msgid "Quit"
-msgstr "Ƈıx"
-
-#: ../../Xconfigurator.pm_.c:1582
-#, c-format
-msgid ""
-"Keep the changes?\n"
-"Current configuration is:\n"
-"\n"
-"%s"
-msgstr ""
-"Mƶvcud qurÄuları saxlayım?\n"
-"Hal-hazırkı qurÄular:\n"
-"\n"
-"%s"
-
-#: ../../Xconfigurator.pm_.c:1603
-msgid "X at startup"
-msgstr "X ilÉ™ AƧılıÅ"
-
-#: ../../Xconfigurator.pm_.c:1604
-msgid ""
-"I can set up your computer to automatically start X upon booting.\n"
-"Would you like X to start when you reboot?"
-msgstr ""
-"KompĆ¼terinizi avtomatik olaraq X ilÉ™ aƧılması Ć¼Ć§Ć¼n qura bilÉ™rÉ™m.\n"
-"AƧılıÅda X Window ilÉ™ baÅlamaq istÉ™yirsiniz?"
-
-#: ../../Xconfigurator.pm_.c:1610
-#, c-format
-msgid "Please relog into %s to activate the changes"
-msgstr "\"%s\"a(É™) tÉ™krar girin vÉ™ dÉ™yiÅikliklÉ™ri fÉ™allaÅdırın"
-
-#: ../../Xconfigurator.pm_.c:1625
-msgid "Please log out and then use Ctrl-Alt-BackSpace"
-msgstr "LĆ¼tfen Ƨıxın vÉ™ Ctrl-Alt-BackSpace dĆ¼ymÉ™lÉ™rinÉ™ basın"
-
-#: ../../Xconfigurator_consts.pm_.c:6
-msgid "256 colors (8 bits)"
-msgstr "256 rəng (8 bits)"
-
-#: ../../Xconfigurator_consts.pm_.c:7
-msgid "32 thousand colors (15 bits)"
-msgstr "32 min rəng (15 bits)"
-
-#: ../../Xconfigurator_consts.pm_.c:8
-msgid "65 thousand colors (16 bits)"
-msgstr "65 min rəng (16 bits)"
-
-#: ../../Xconfigurator_consts.pm_.c:9
-msgid "16 million colors (24 bits)"
-msgstr "16 milyon rəng (24 bits)"
-
-#: ../../Xconfigurator_consts.pm_.c:10
-msgid "4 billion colors (32 bits)"
-msgstr "4 milyard rəng (32 bits)"
-
-#: ../../Xconfigurator_consts.pm_.c:113
-msgid "256 kB"
-msgstr "256 kB"
-
-#: ../../Xconfigurator_consts.pm_.c:114
-msgid "512 kB"
-msgstr "512 kB"
-
-#: ../../Xconfigurator_consts.pm_.c:115
-msgid "1 MB"
-msgstr "1 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:116
-msgid "2 MB"
-msgstr "2 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:117
-msgid "4 MB"
-msgstr "4 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:118
-msgid "8 MB"
-msgstr "8 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:119
-msgid "16 MB"
-msgstr "16 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:120
-msgid "32 MB"
-msgstr "32 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:121
-#, fuzzy
-msgid "64 MB or more"
-msgstr "16 MB və ya daha Ƨox"
-
-#: ../../Xconfigurator_consts.pm_.c:129
-msgid "Standard VGA, 640x480 at 60 Hz"
-msgstr "Standart VGA, 60 Hz-dÉ™ 640x480 "
-
-#: ../../Xconfigurator_consts.pm_.c:130
-msgid "Super VGA, 800x600 at 56 Hz"
-msgstr "Super VGA, 56 Hz-dÉ™ 800x600"
-
-#: ../../Xconfigurator_consts.pm_.c:131
-msgid "8514 Compatible, 1024x768 at 87 Hz interlaced (no 800x600)"
-msgstr "8514 UyÄun, 87 Hz-dÉ™ titrÉ™Åimli 1024x768 (800x600 yox)"
-
-#: ../../Xconfigurator_consts.pm_.c:132
-msgid "Super VGA, 1024x768 at 87 Hz interlaced, 800x600 at 56 Hz"
-msgstr "Super VGA, 87 Hz-dÉ™ titrÉ™Åimli 1024x768, 56 Hz-dÉ™ 800x600"
-
-#: ../../Xconfigurator_consts.pm_.c:133
-msgid "Extended Super VGA, 800x600 at 60 Hz, 640x480 at 72 Hz"
-msgstr "TÉ™kmillÉ™ÅdirilmiÅ Super VGA, 60 Hz-dÉ™ 800x600, 72 Hz-dÉ™ 640x480"
-
-#: ../../Xconfigurator_consts.pm_.c:134
-msgid "Non-Interlaced SVGA, 1024x768 at 60 Hz, 800x600 at 72 Hz"
-msgstr "TitrÉ™Åimsiz SVGA, 60 Hz-dÉ™ 1024x768, 72 Hz-dÉ™ 800x600"
-
-#: ../../Xconfigurator_consts.pm_.c:135
-msgid "High Frequency SVGA, 1024x768 at 70 Hz"
-msgstr "YĆ¼ksÉ™k Frekanslı SVGA, 70 Hz-dÉ™ 1024x768"
-
-#: ../../Xconfigurator_consts.pm_.c:136
-msgid "Multi-frequency that can do 1280x1024 at 60 Hz"
-msgstr "Ƈoxlu Frekansa qadir 60 Hz-də 1280x1024"
-
-#: ../../Xconfigurator_consts.pm_.c:137
-msgid "Multi-frequency that can do 1280x1024 at 74 Hz"
-msgstr "Ƈoxlu Frekansa qadir 74 Hz-də 1280x1024"
-
-#: ../../Xconfigurator_consts.pm_.c:138
-msgid "Multi-frequency that can do 1280x1024 at 76 Hz"
-msgstr "Ƈoxlu Frekansa qadir 76 Hz-də 1280x1024"
-
-#: ../../Xconfigurator_consts.pm_.c:139
-msgid "Monitor that can do 1600x1200 at 70 Hz"
-msgstr "70 Hz dÉ™ 1600x1200 qadir Monitor"
-
-#: ../../Xconfigurator_consts.pm_.c:140
-msgid "Monitor that can do 1600x1200 at 76 Hz"
-msgstr "76 Hz dÉ™ 1600x1200 qadir Monitor"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141
-msgid "First sector of boot partition"
-msgstr "AƧılıŠqisminin ilk sektoru"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141 ../../any.pm_.c:218
-msgid "First sector of drive (MBR)"
-msgstr "Diskin ilk sektoru (MBR)"
-
-#: ../../any.pm_.c:120
-msgid "SILO Installation"
-msgstr "SILO Qurulumu"
-
-#: ../../any.pm_.c:121 ../../any.pm_.c:134
-msgid "Where do you want to install the bootloader?"
-msgstr "Sistem yĆ¼klÉ™yicisini haraya qurmaq istÉ™yirsiniz?"
-
-#: ../../any.pm_.c:133
-msgid "LILO/grub Installation"
-msgstr "LILO/grup Qurulumu"
-
-#: ../../any.pm_.c:145 ../../any.pm_.c:159
-msgid "SILO"
-msgstr "SILO"
-
-#: ../../any.pm_.c:147
-msgid "LILO with text menu"
-msgstr "Mətn menyulu LILO"
-
-#: ../../any.pm_.c:148 ../../any.pm_.c:159
-msgid "LILO with graphical menu"
-msgstr "Qrafiki menyulu LILO"
-
-#: ../../any.pm_.c:151
-msgid "Grub"
-msgstr "Grub"
-
-#: ../../any.pm_.c:155
-msgid "Boot from DOS/Windows (loadlin)"
-msgstr "DOS/Wİndowsdan aƧıl (loadlin)"
-
-#: ../../any.pm_.c:157 ../../any.pm_.c:159
-msgid "Yaboot"
-msgstr "Yaboot"
-
-#: ../../any.pm_.c:166 ../../any.pm_.c:198
-msgid "Bootloader main options"
-msgstr "Sistem yĆ¼klÉ™yicisi ana seƧənÉ™klÉ™ri"
-
-#: ../../any.pm_.c:167 ../../any.pm_.c:199
-msgid "Bootloader to use"
-msgstr "Ä°stifadÉ™ edilÉ™cÉ™k AƧılıŠidarÉ™cisi"
-
-#: ../../any.pm_.c:169
-msgid "Bootloader installation"
-msgstr "AƧılıŠyĆ¼klÉ™yici quruluÅu"
-
-#: ../../any.pm_.c:171 ../../any.pm_.c:201
-msgid "Boot device"
-msgstr "AƧılıŠavadanlıÄı"
-
-#: ../../any.pm_.c:172
-msgid "LBA (doesn't work on old BIOSes)"
-msgstr "LBA (kƶhnÉ™ BIOSlarda iÅlÉ™mÉ™z)"
-
-#: ../../any.pm_.c:173
-msgid "Compact"
-msgstr "Bəsit"
-
-#: ../../any.pm_.c:173
-msgid "compact"
-msgstr "bəsit"
-
-#: ../../any.pm_.c:174 ../../any.pm_.c:298
-msgid "Video mode"
-msgstr "Ekran modu"
-
-#: ../../any.pm_.c:176
-msgid "Delay before booting default image"
-msgstr "AƧılıÅda gecikmÉ™ mĆ¼ddÉ™ti"
-
-#: ../../any.pm_.c:178 ../../any.pm_.c:796
-#: ../../install_steps_interactive.pm_.c:1115 ../../network/modem.pm_.c:48
-#: ../../printerdrake.pm_.c:708 ../../printerdrake.pm_.c:806
-#: ../../standalone/draknet_.c:625
-msgid "Password"
-msgstr "Parol"
-
-#: ../../any.pm_.c:179 ../../any.pm_.c:797
-#: ../../install_steps_interactive.pm_.c:1116
-msgid "Password (again)"
-msgstr "Parol (təkrar)"
-
-#: ../../any.pm_.c:180
-msgid "Restrict command line options"
-msgstr "ʸmr sÉ™tiri seƧənÉ™klÉ™rini mÉ™hdudlaÅdır"
-
-#: ../../any.pm_.c:180
-msgid "restrict"
-msgstr "mÉ™hdudlaÅdır"
-
-#: ../../any.pm_.c:182
-msgid "Clean /tmp at each boot"
-msgstr "/tmp-i hÉ™r aƧılıÅda tÉ™mizlÉ™"
-
-#: ../../any.pm_.c:183
-#, c-format
-msgid "Precise RAM size if needed (found %d MB)"
-msgstr "Ćmumi yaddaÅ miqdarı (%d MB tapıldı)"
-
-#: ../../any.pm_.c:185
-msgid "Enable multi profiles"
-msgstr "Birdən artıq profilə icazə ver"
-
-#: ../../any.pm_.c:189
-msgid "Give the ram size in MB"
-msgstr "YaddaŠmiqdarını Mb cinsindən verin"
-
-#: ../../any.pm_.c:191
-msgid ""
-"Option ``Restrict command line options'' is of no use without a password"
-msgstr ""
-"``ʸmr sÉ™tiri seƧənÉ™klÉ™rini mÉ™hdudlaÅdır`` seƧənÉ™yi parolsuz bir iÅÉ™ yaramaz"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../diskdrake/interactive.pm_.c:1135
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "Please try again"
-msgstr "XahiŠedirik təkrar sınayın"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "The passwords do not match"
-msgstr "Parollar uyÄun gÉ™lmir"
-
-#: ../../any.pm_.c:200
-msgid "Init Message"
-msgstr "İnit İsmarıcı"
-
-#: ../../any.pm_.c:202
-msgid "Open Firmware Delay"
-msgstr "Firmware Gecikməsini AƧ"
-
-#: ../../any.pm_.c:203
-msgid "Kernel Boot Timeout"
-msgstr "ƇəkirdÉ™k AƧılıÅı Vaxt Dolması"
-
-#: ../../any.pm_.c:204
-msgid "Enable CD Boot?"
-msgstr "CDdÉ™n AƧılıÅı FÉ™allaÅdırım?"
-
-#: ../../any.pm_.c:205
-msgid "Enable OF Boot?"
-msgstr "OF AƧılıÅı FÉ™allaÅdırım?"
-
-#: ../../any.pm_.c:206
-msgid "Default OS?"
-msgstr "ʸsas OS"
-
-#: ../../any.pm_.c:240
-msgid ""
-"You decided to install the bootloader on a partition.\n"
-"This implies you already have a bootloader on the hard drive you boot (eg: "
-"System Commander).\n"
-"\n"
-"On which drive are you booting?"
-msgstr ""
-
-#: ../../any.pm_.c:255
-msgid ""
-"Here are the different entries.\n"
-"You can add some more or change the existing ones."
-msgstr ""
-"Buradakı bir birindən fərqli seƧənəklərə yenilərini əlavə edə bilər,\n"
-"ya da mƶvcud olanları dÉ™yiÅdirÉ™ bilÉ™rsiniz."
-
-#: ../../any.pm_.c:265 ../../standalone/drakbackup_.c:752
-#: ../../standalone/drakbackup_.c:861 ../../standalone/drakfont_.c:789
-#: ../../standalone/drakfont_.c:826
-msgid "Add"
-msgstr "ʸlavə et"
-
-#: ../../any.pm_.c:265 ../../any.pm_.c:784 ../../diskdrake/hd_gtk.pm_.c:153
-#: ../../diskdrake/removable.pm_.c:27 ../../diskdrake/smbnfs_gtk.pm_.c:86
-#: ../../interactive_http.pm_.c:153
-msgid "Done"
-msgstr "Qurtardı"
-
-#: ../../any.pm_.c:265
-msgid "Modify"
-msgstr "TÉ™kmillÉ™Ådir"
-
-#: ../../any.pm_.c:273
-msgid "Which type of entry do you want to add?"
-msgstr "Ne cĆ¼r bir giriÅ istÉ™yirsiniz?"
-
-#: ../../any.pm_.c:274 ../../standalone/drakbackup_.c:895
-msgid "Linux"
-msgstr "Linuks"
-
-#: ../../any.pm_.c:274
-msgid "Other OS (SunOS...)"
-msgstr "Digər sistemlər (SunOS...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (MacOS...)"
-msgstr "Digər sistemlər (MacOS...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (windows...)"
-msgstr "Digər sistemlər (windows...)"
-
-#: ../../any.pm_.c:294
-msgid "Image"
-msgstr "ʸks"
-
-#: ../../any.pm_.c:295 ../../any.pm_.c:306
-msgid "Root"
-msgstr "Kƶk"
-
-#: ../../any.pm_.c:296 ../../any.pm_.c:325
-msgid "Append"
-msgstr "Sonuna əlavə et"
-
-#: ../../any.pm_.c:300
-msgid "Initrd"
-msgstr "Initrd"
-
-#: ../../any.pm_.c:301
-msgid "Read-write"
-msgstr "Oxu-yaz"
-
-#: ../../any.pm_.c:308
-msgid "Table"
-msgstr "Cədvəl"
-
-#: ../../any.pm_.c:309
-msgid "Unsafe"
-msgstr "E'tibarsız"
-
-#: ../../any.pm_.c:316 ../../any.pm_.c:321 ../../any.pm_.c:324
-msgid "Label"
-msgstr "Etiket"
-
-#: ../../any.pm_.c:318 ../../any.pm_.c:329
-msgid "Default"
-msgstr "ʸsas"
-
-#: ../../any.pm_.c:326
-msgid "Initrd-size"
-msgstr "Initrd bƶyĆ¼klĆ¼yĆ¼"
-
-#: ../../any.pm_.c:328
-msgid "NoVideo"
-msgstr "NoVÄ°deo"
-
-#: ../../any.pm_.c:336
-msgid "Remove entry"
-msgstr "GiriÅi sil"
-
-#: ../../any.pm_.c:339
-msgid "Empty label not allowed"
-msgstr "BoŠetiket qəbul edilə bilməz"
-
-#: ../../any.pm_.c:340
-msgid "You must specify a kernel image"
-msgstr ""
-
-#: ../../any.pm_.c:340
-#, fuzzy
-msgid "You must specify a root partition"
-msgstr "Bir swap sahəsinə ehtiyacınız var"
-
-#: ../../any.pm_.c:341
-msgid "This label is already used"
-msgstr "Bu etiket istifadə edilməz"
-
-#: ../../any.pm_.c:656
-#, c-format
-msgid "Found %s %s interfaces"
-msgstr "%s %s ara Ć¼zĆ¼ tapıldı"
-
-#: ../../any.pm_.c:657
-msgid "Do you have another one?"
-msgstr "BaÅqa var?"
-
-#: ../../any.pm_.c:658
-#, c-format
-msgid "Do you have any %s interfaces?"
-msgstr "HeƧ %s ara Ć¼zĆ¼ var?"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:832 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "No"
-msgstr "Xeyr"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:831 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "Yes"
-msgstr "Bəli"
-
-#: ../../any.pm_.c:661
-msgid "See hardware info"
-msgstr "Avadanlıq mə'lumatına bax"
-
-#. -PO: the first %s is the card type (scsi, network, sound,...)
-#. -PO: the second is the vendor+model name
-#: ../../any.pm_.c:695
-#, c-format
-msgid "Installing driver for %s card %s"
-msgstr "%s kartı (%s) Ć¼Ć§Ć¼n sĆ¼rĆ¼cĆ¼ yĆ¼klÉ™nir"
-
-#: ../../any.pm_.c:696
-#, c-format
-msgid "(module %s)"
-msgstr "(modul %s)"
-
-#. -PO: the %s is the driver type (scsi, network, sound,...)
-#: ../../any.pm_.c:707
-#, c-format
-msgid "Which %s driver should I try?"
-msgstr "Hansı %s sĆ¼rĆ¼cĆ¼sĆ¼ sınansın?"
-
-#: ../../any.pm_.c:715
-#, c-format
-msgid ""
-"In some cases, the %s driver needs to have extra information to work\n"
-"properly, although it normally works fine without. Would you like to "
-"specify\n"
-"extra options for it or allow the driver to probe your machine for the\n"
-"information it needs? Occasionally, probing will hang a computer, but it "
-"should\n"
-"not cause any damage."
-msgstr ""
-"BÉ™zi hallarda, %s sĆ¼rĆ¼cĆ¼ dĆ¼zgĆ¼n iÅlÉ™mÉ™si Ć¼Ć§Ć¼n É™lavÉ™ mÉ™'lumat istÉ™yÉ™ bilÉ™r.\n"
-"SĆ¼rĆ¼cĆ¼ler Ć¼Ć§Ć¼n É™lavÉ™ bir xĆ¼susiyyÉ™t gƶstÉ™rmÉ™k mi istÉ™yÉ™rsiniz, yoxsa\n"
-"sĆ¼rĆ¼cĆ¼lÉ™rin lazımi mÉ™'lumatlar Ć¼Ć§Ć¼n avadalıÄı tanımasını mı istÉ™yÉ™rsiniz? \n"
-"BÉ™'zÉ™n tanımlama kompĆ¼terinizi dondura bilÉ™r amma donduÄu Ć¼Ć§Ć¼n\n"
-"kompĆ¼terinizÉ™ heƧ bir Åey olmaz."
-
-#: ../../any.pm_.c:720
-msgid "Autoprobe"
-msgstr "Avtomatik yoxla"
-
-#: ../../any.pm_.c:720
-msgid "Specify options"
-msgstr "SeƧənəkləri gƶstər"
-
-#: ../../any.pm_.c:725
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Note that any address should be entered with the prefix 0x like '0x123'"
-msgstr ""
-
-#: ../../any.pm_.c:731
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Options are in format ``name=value name2=value2 ...''.\n"
-"For instance, ``io=0x300 irq=7''"
-msgstr ""
-"İstəsəniz indi %s modulunun parametrlərini gƶstərə bilərsiniz.\n"
-"ParametrlÉ™r``ad=qiymÉ™t ad2=qiymÉ™t2...'' ÅÉ™klindÉ™ olmalıdır.\n"
-"Məsələn ``io=0x300 irq=7''"
-
-#: ../../any.pm_.c:734
-msgid "Module options:"
-msgstr "Modul seƧənəkləri:"
-
-#: ../../any.pm_.c:745
-#, c-format
-msgid ""
-"Loading module %s failed.\n"
-"Do you want to try again with other parameters?"
-msgstr ""
-"%s modulunun yĆ¼klÉ™nmÉ™si iflas etdi.\n"
-"YenidÉ™n baÅqa bir parametr ilÉ™ sınamaq istÉ™yirsiniz?"
-
-#: ../../any.pm_.c:761
-msgid "access to X programs"
-msgstr ""
-
-#: ../../any.pm_.c:762
-msgid "access to rpm tools"
-msgstr ""
-
-#: ../../any.pm_.c:763
-msgid "allow \"su\""
-msgstr ""
-
-#: ../../any.pm_.c:764
-msgid "access to administrative files"
-msgstr ""
-
-#: ../../any.pm_.c:769
-#, c-format
-msgid "(already added %s)"
-msgstr "(%s artıq É™lavÉ™ edilmiÅdir)"
-
-#: ../../any.pm_.c:774
-msgid "This password is too simple"
-msgstr "Zəif parol seƧdiniz!"
-
-#: ../../any.pm_.c:775
-msgid "Please give a user name"
-msgstr "XahiÅ edirik bir istifadəƧi adı alın"
-
-#: ../../any.pm_.c:776
-msgid ""
-"The user name must contain only lower cased letters, numbers, `-' and `_'"
-msgstr ""
-"İstifadəƧi adında sadacə kiƧik hərflər, rəqəmlər, `-' və `_' xarakterləri "
-"ola bilər"
-
-#: ../../any.pm_.c:777
-msgid "This user name is already added"
-msgstr "Bu istifadəƧi adı artıq vardır"
-
-#: ../../any.pm_.c:781
-msgid "Add user"
-msgstr "İstifadəƧini əlavə et"
-
-#: ../../any.pm_.c:782
-#, c-format
-msgid ""
-"Enter a user\n"
-"%s"
-msgstr ""
-"Bir istifadəƧi girin\n"
-"%s"
-
-#: ../../any.pm_.c:783
-msgid "Accept user"
-msgstr "İstifadəƧini qəbul et"
-
-#: ../../any.pm_.c:794
-msgid "Real name"
-msgstr "Həqiqi adı"
-
-#: ../../any.pm_.c:795 ../../printerdrake.pm_.c:707
-#: ../../printerdrake.pm_.c:805
-msgid "User name"
-msgstr "İstifadəƧi adı"
-
-#: ../../any.pm_.c:798
-msgid "Shell"
-msgstr "Qabıq"
-
-#: ../../any.pm_.c:800
-msgid "Icon"
-msgstr "Timsal"
-
-#: ../../any.pm_.c:828
-msgid "Autologin"
-msgstr "Avtomatik GiriÅ"
-
-#: ../../any.pm_.c:829
-#, fuzzy
-msgid ""
-"I can set up your computer to automatically log on one user.\n"
-"Do you want to use this feature?"
-msgstr ""
-"KompĆ¼terinizi avtomatik olaraq bir istifadəƧi ilÉ™ baÅlada bilÉ™rÉ™m.\n"
-"İstəmirsiniz isə rədd edin."
-
-#: ../../any.pm_.c:833
-msgid "Choose the default user:"
-msgstr "ʸsas istifadəƧini seƧin:"
-
-#: ../../any.pm_.c:834
-msgid "Choose the window manager to run:"
-msgstr "İstifadə etmək istədiyiniz pəncərə idarəƧisini seƧin:"
-
-#: ../../any.pm_.c:849
-#, fuzzy
-msgid "Please choose a language to use."
-msgstr "XahiÅ edirik istifadÉ™ Ć¼Ć§Ć¼n bir dil seƧin."
-
-#: ../../any.pm_.c:851
-msgid "You can choose other languages that will be available after install"
-msgstr "Qurulumdan sonra istifadÉ™ edÉ™ bilÉ™cÉ™yiniz baÅqa dillÉ™r seƧə bilÉ™rsiniz"
-
-#: ../../any.pm_.c:863 ../../install_steps_interactive.pm_.c:719
-#: ../../standalone/drakxtv_.c:54
-msgid "All"
-msgstr "Hamısı"
-
-#: ../../any.pm_.c:955
-#, fuzzy
-msgid "Allow all users"
-msgstr "İstifadəƧi əlavə et"
-
-#: ../../any.pm_.c:955 ../../install_steps_interactive.pm_.c:521
-msgid "Custom"
-msgstr "XĆ¼susi"
-
-#: ../../any.pm_.c:955
-#, fuzzy
-msgid "No sharing"
-msgstr "CUPS baÅlayır"
-
-#: ../../any.pm_.c:965 ../../network/smbnfs.pm_.c:45
-#, fuzzy, c-format
-msgid "The package %s needs to be installed. Do you want to install it?"
-msgstr ""
-"Bu paket yenilənməlidir\n"
-"Sistemdən Ƨıxarmaq mƶvzusunda ciddisiniz?"
-
-#: ../../any.pm_.c:968
-msgid "You can export using NFS or Samba. Which one do you want"
-msgstr ""
-
-#: ../../any.pm_.c:976 ../../network/smbnfs.pm_.c:49
-#, c-format
-msgid "Mandatory package %s is missing"
-msgstr ""
-
-#: ../../any.pm_.c:982
-msgid ""
-"Do you want to allow users to export some directories in their home?\n"
-"Allowing this will permit users to simply click on \"Share\" in konqueror "
-"and nautilus.\n"
-"\n"
-"\"Custom\" permit a per-user granularity.\n"
-msgstr ""
-
-#: ../../any.pm_.c:996 ../../bootlook.pm_.c:161
-#: ../../diskdrake/smbnfs_gtk.pm_.c:85 ../../install_steps_gtk.pm_.c:464
-#: ../../install_steps_gtk.pm_.c:522 ../../install_steps_interactive.pm_.c:594
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_stdio.pm_.c:141
-#: ../../my_gtk.pm_.c:687 ../../my_gtk.pm_.c:690 ../../my_gtk.pm_.c:1019
-#: ../../network/netconnect.pm_.c:47 ../../printerdrake.pm_.c:1586
-#: ../../standalone/drakautoinst_.c:204 ../../standalone/drakbackup_.c:2264
-#: ../../standalone/drakbackup_.c:2289 ../../standalone/drakbackup_.c:2310
-#: ../../standalone/drakbackup_.c:2331 ../../standalone/drakbackup_.c:2349
-#: ../../standalone/drakbackup_.c:2397 ../../standalone/drakbackup_.c:2417
-#: ../../standalone/drakbackup_.c:2436 ../../standalone/drakfont_.c:767
-#: ../../standalone/drakgw_.c:721 ../../standalone/draknet_.c:116
-#: ../../standalone/draknet_.c:148 ../../standalone/draknet_.c:290
-#: ../../standalone/draknet_.c:538 ../../standalone/draknet_.c:680
-#: ../../standalone/logdrake_.c:225 ../../standalone/logdrake_.c:512
-#: ../../standalone/tinyfirewall_.c:65
-msgid "Cancel"
-msgstr "LÉ™Äv et"
-
-#: ../../any.pm_.c:996
-msgid "Launch userdrake"
-msgstr ""
-
-#: ../../any.pm_.c:998
-msgid ""
-"The per-user sharing uses the group \"fileshare\". \n"
-"You can use userdrake to add a user in this group."
-msgstr ""
-
-#: ../../any.pm_.c:1035
-msgid "Welcome To Crackers"
-msgstr "KrakerlÉ™rÉ™ xoÅgÉ™lmiÅsiniz"
-
-#: ../../any.pm_.c:1036
-msgid "Poor"
-msgstr "Zəif"
-
-#: ../../any.pm_.c:1037 ../../mouse.pm_.c:31
-msgid "Standard"
-msgstr "Standart"
-
-#: ../../any.pm_.c:1038
-msgid "High"
-msgstr "YĆ¼ksÉ™k"
-
-#: ../../any.pm_.c:1039
-#, fuzzy
-msgid "Higher"
-msgstr "YĆ¼ksÉ™k"
-
-#: ../../any.pm_.c:1040
-msgid "Paranoid"
-msgstr "Å˛Ć¼bhÉ™ci"
-
-#: ../../any.pm_.c:1043
-msgid ""
-"This level is to be used with care. It makes your system more easy to use,\n"
-"but very sensitive: it must not be used for a machine connected to others\n"
-"or to the Internet. There is no password access."
-msgstr ""
-"Bu səviyyə RAID'i diqqətli istifadənizi tƶvsiyə edirik. Sisteminiz daha "
-"asand\n"
-"iÅlÉ™dilÉ™cÉ™k, ancaq xÉ™talara qarÅı da hÉ™ssaiyyÉ™ti dÉ™ artacaqdır. Ä°nternetÉ™ \n"
-"baÄlı isÉ™niz bunu tƶvsiyÉ™ etmirik. Parol ilÉ™ girilir."
-
-#: ../../any.pm_.c:1046
-msgid ""
-"Password are now enabled, but use as a networked computer is still not "
-"recommended."
-msgstr ""
-"Parollar fÉ™allaÅdırıldı, yenÉ™ dÉ™ bir ÅÉ™bÉ™kÉ™ Ć¼stĆ¼ndÉ™ istifadÉ™ edilmÉ™mÉ™si "
-"tƶvsiyə edilir."
-
-#: ../../any.pm_.c:1047
-#, fuzzy
-msgid ""
-"This is the standard security recommended for a computer that will be used "
-"to connect to the Internet as a client."
-msgstr ""
-"Ä°nternetÉ™ baÄlı bir kompĆ¼ter Ć¼Ć§Ć¼n standart vÉ™ tƶvsiyÉ™ edilÉ™n bir "
-"tÉ™hlĆ¼kÉ™sizlik sÉ™viyyÉ™sidir."
-
-#: ../../any.pm_.c:1048
-msgid ""
-"There are already some restrictions, and more automatic checks are run every "
-"night."
-msgstr ""
-
-#: ../../any.pm_.c:1049
-#, fuzzy
-msgid ""
-"With this security level, the use of this system as a server becomes "
-"possible.\n"
-"The security is now high enough to use the system as a server which accept\n"
-"connections from many clients. Note: if your machine is only a client on the "
-"Internet, you should better choose a lower level."
-msgstr ""
-"Bu tÉ™hlĆ¼kÉ™sizlik sÉ™viyyÉ™siylÉ™ sistemin bir verici olaraq istifadÉ™si "
-"mĆ¼mkĆ¼ndĆ¼r. \n"
-"TÉ™hlĆ¼kÉ™sizlik, birdÉ™n Ƨox alıcının baÄlanmasına icazÉ™ verÉ™cÉ™k ÅÉ™kildÉ™ "
-"artırılmıÅdır. "
-
-#: ../../any.pm_.c:1052
-#, fuzzy
-msgid ""
-"Based on the previous level, but the system is entirely closed.\n"
-"Security features are at their maximum."
-msgstr ""
-"Biz dƶrdĆ¼ncĆ¼ sÉ™viyyÉ™ haqlarını verdik vÉ™ sistem xarici baÄlantılara qarÅı "
-"tamamilə qapalıdır.\n"
-"TÉ™hlĆ¼kÉ™sizlik sÉ™viyyÉ™si indi É™n Ć¼stdÉ™dir."
-
-#: ../../any.pm_.c:1058
-msgid "Choose security level"
-msgstr "TÉ™hlĆ¼kÉ™sizlik sÉ™viyyÉ™sini seƧin"
-
-#: ../../any.pm_.c:1061
-#, fuzzy
-msgid "Security level"
-msgstr "TÉ™hlĆ¼kÉ™sizlik sÉ™viyyÉ™sinin quraÅdırılması"
-
-#: ../../any.pm_.c:1063
-#, fuzzy
-msgid "Use libsafe for servers"
-msgstr "X verici Ć¼Ć§Ć¼n seƧənÉ™klÉ™ri gƶstÉ™rin"
-
-#: ../../any.pm_.c:1064
-msgid ""
-"A library which defends against buffer overflow and format string attacks."
-msgstr ""
-
-# NOTE: this message will be displayed at boot time; that is
-# only the ascii charset will be available on most machines
-# so use only 7bit for this message (and do transliteration or
-# leave it in English, as it is the best for your language)
-#
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#: ../../bootloader.pm_.c:355
-#, c-format
-msgid ""
-"Welcome to %s the operating system chooser!\n"
-"\n"
-"Choose an operating system in the list above or\n"
-"wait %d seconds for default boot.\n"
-"\n"
-msgstr ""
-"%s emeliyyat sistemi secki proqramina xos gəlmissiniz!\n"
-"\n"
-"IƧlerinden birini acmaq ucun adini yazin ve <ENTER>\n"
-"duymesine basin ve ya esas acilis ucun %d saniye gozleyin.\n"
-"\n"
-
-# NOTE: this message will be displayed by grub at boot time; that is
-# using the BIOS font; that means cp437 charset on 99.99% of PC computers
-# out there. It is the nsuggested that for non latin languages an ascii
-# transliteration be used; or maybe the english text be used; as it is best
-#
-# The lines must fit on screen, aka length < 80
-# and only one line per string for the GRUB messages
-#
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:928
-msgid "Welcome to GRUB the operating system chooser!"
-msgstr "Emeliyyat sistemi secici GRUB'a xos gəlmissiniz!"
-
-# NOTE: this message will be displayed by grub at boot time; that is
-# using the BIOS font; that means cp437 charset on 99.99% of PC computers
-# out there. It is the nsuggested that for non latin languages an ascii
-# transliteration be used; or maybe the english text be used; as it is best
-#
-# The lines must fit on screen, aka length < 80
-# and only one line per string for the GRUB messages
-#
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:931
-#, c-format
-msgid "Use the %c and %c keys for selecting which entry is highlighted."
-msgstr "%c ve %c duymeleri ile isıqlandırılmıs girisleri sece bilersiniz"
-
-# NOTE: this message will be displayed by grub at boot time; that is
-# using the BIOS font; that means cp437 charset on 99.99% of PC computers
-# out there. It is the nsuggested that for non latin languages an ascii
-# transliteration be used; or maybe the english text be used; as it is best
-#
-# The lines must fit on screen, aka length < 80
-# and only one line per string for the GRUB messages
-#
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:934
-msgid "Press enter to boot the selected OS, 'e' to edit the"
-msgstr "Sistemi secili emeliyyat sistemiyle acmaq ucun entere,"
-
-# NOTE: this message will be displayed by grub at boot time; that is
-# using the BIOS font; that means cp437 charset on 99.99% of PC computers
-# out there. It is the nsuggested that for non latin languages an ascii
-# transliteration be used; or maybe the english text be used; as it is best
-#
-# The lines must fit on screen, aka length < 80
-# and only one line per string for the GRUB messages
-#
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:937
-msgid "commands before booting, or 'c' for a command-line."
-msgstr ""
-"acilisdan evvel emrleri duzeltmək ucun 'e', emr setiri ucun ise 'c' basin"
-
-# NOTE: this message will be displayed by grub at boot time; that is
-# using the BIOS font; that means cp437 charset on 99.99% of PC computers
-# out there. It is the nsuggested that for non latin languages an ascii
-# transliteration be used; or maybe the english text be used; as it is best
-#
-# The lines must fit on screen, aka length < 80
-# and only one line per string for the GRUB messages
-#
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:940
-#, c-format
-msgid "The highlighted entry will be booted automatically in %d seconds."
-msgstr "Isaretli secenek %d saniye icinde sistemi acacaq."
-
-#: ../../bootloader.pm_.c:944
-msgid "not enough room in /boot"
-msgstr "/boot iƧində lazımi yer yoxdur"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#. -PO: so you may need to put them in English or in a different language if MS-windows doesn't exist in your language
-#: ../../bootloader.pm_.c:1044
-msgid "Desktop"
-msgstr "Masa ĆstĆ¼"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#: ../../bootloader.pm_.c:1046
-msgid "Start Menu"
-msgstr "BaÅlama Menyusu"
-
-#: ../../bootloader.pm_.c:1065
-#, fuzzy, c-format
-msgid "You can't install the bootloader on a %s partition\n"
-msgstr "Sistem yĆ¼klÉ™yicisini haraya qurmaq istÉ™yirsiniz?"
-
-#: ../../bootlook.pm_.c:46
-msgid "no help implemented yet.\n"
-msgstr "hələlik yardım sistemi mƶvcud deyildir.\n"
-
-#: ../../bootlook.pm_.c:62
-msgid "Boot Style Configuration"
-msgstr "Qurulum TÉ™rzi QuraÅdırılması"
-
-#: ../../bootlook.pm_.c:79 ../../standalone/logdrake_.c:101
-msgid "/_File"
-msgstr "/_Fayl"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "/File/_Quit"
-msgstr "/Fayl/Ƈı_x"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "<control>Q"
-msgstr "<control>x"
-
-#: ../../bootlook.pm_.c:91
-msgid "NewStyle Categorizing Monitor"
-msgstr "NewStyle Kateqoriyasından Monitor"
-
-#: ../../bootlook.pm_.c:92
-msgid "NewStyle Monitor"
-msgstr "NewStyle Monitor"
-
-#: ../../bootlook.pm_.c:93
-msgid "Traditional Monitor"
-msgstr "ʸnənəvi Monitor"
-
-#: ../../bootlook.pm_.c:94
-msgid "Traditional Gtk+ Monitor"
-msgstr "ʸnənəvi Gtk+ Monitor"
-
-#: ../../bootlook.pm_.c:95
-msgid "Launch Aurora at boot time"
-msgstr "AƧılıÅda Auroranı baÅlat"
-
-#: ../../bootlook.pm_.c:98
-msgid "Lilo/grub mode"
-msgstr "Lilo/grub modu"
-
-#: ../../bootlook.pm_.c:98
-msgid "Yaboot mode"
-msgstr "Yaboot modu"
-
-#: ../../bootlook.pm_.c:104
-#, c-format
-msgid ""
-"You are currently using %s as Boot Manager.\n"
-"Click on Configure to launch the setup wizard."
-msgstr ""
-"AƧılıŠİdarəƧisi olaraq hazırda %s iÅlÉ™dirsiniz.\n"
-"QuraÅdırma sehirbazını baÅlatmaq Ć¼Ć§Ć¼n tıqlayın."
-
-#: ../../bootlook.pm_.c:106 ../../standalone/drakbackup_.c:1467
-#: ../../standalone/drakbackup_.c:1478 ../../standalone/drakgw_.c:715
-#: ../../standalone/tinyfirewall_.c:59
-msgid "Configure"
-msgstr "Qur"
-
-#: ../../bootlook.pm_.c:141
-msgid "System mode"
-msgstr "Sistem modu"
-
-#: ../../bootlook.pm_.c:143
-msgid "Launch the X-Window system at start"
-msgstr "AƧılıÅda X-Window sistemini baÅlat"
-
-#: ../../bootlook.pm_.c:148
-msgid "No, I don't want autologin"
-msgstr "Xeyr, Avtomatik giriŠistəmirəm"
-
-#: ../../bootlook.pm_.c:150
-msgid "Yes, I want autologin with this (user, desktop)"
-msgstr ""
-"BÉ™li, bu istifadəƧi Ć¼Ć§Ć¼n avtomatik giriÅ istÉ™yirÉ™m (istifadəƧi, masa Ć¼stĆ¼)"
-
-#: ../../bootlook.pm_.c:160 ../../network/netconnect.pm_.c:102
-#: ../../standalone/drakbackup_.c:2441 ../../standalone/drakbackup_.c:3345
-#: ../../standalone/drakfont_.c:532 ../../standalone/drakfont_.c:655
-#: ../../standalone/drakfont_.c:719 ../../standalone/drakfont_.c:765
-#: ../../standalone/draknet_.c:109 ../../standalone/draknet_.c:141
-#: ../../standalone/draknet_.c:297 ../../standalone/draknet_.c:436
-#: ../../standalone/draknet_.c:522 ../../standalone/draknet_.c:565
-#: ../../standalone/draknet_.c:666 ../../standalone/logdrake_.c:505
-msgid "OK"
-msgstr "Oldu"
-
-#: ../../bootlook.pm_.c:229
-#, c-format
-msgid "can not open /etc/inittab for reading: %s"
-msgstr "/etc/inittab oxunmaq Ć¼Ć§Ć¼n aƧıla bilmir: %s"
-
-#: ../../common.pm_.c:94
-msgid "GB"
-msgstr ""
-
-#: ../../common.pm_.c:94
-msgid "KB"
-msgstr ""
-
-#: ../../common.pm_.c:94
-msgid "MB"
-msgstr "MB"
-
-#: ../../common.pm_.c:102
-msgid "TB"
-msgstr ""
-
-#: ../../common.pm_.c:110
-#, c-format
-msgid "%d minutes"
-msgstr ""
-
-#: ../../common.pm_.c:112
-msgid "1 minute"
-msgstr ""
-
-#: ../../common.pm_.c:114
-#, fuzzy, c-format
-msgid "%d seconds"
-msgstr "%d saniyə sonra Ƨıxılacaq"
-
-#: ../../common.pm_.c:159
-#, fuzzy
-msgid "Can't make screenshots before partitioning"
-msgstr "Artıq bƶlmə əlavə edilə bilməz"
-
-#: ../../common.pm_.c:166
-#, fuzzy, c-format
-msgid "Screenshots will be available after install in %s"
-msgstr "Qurulumdan sonra istifadÉ™ edÉ™ bilÉ™cÉ™yiniz baÅqa dillÉ™r seƧə bilÉ™rsiniz"
-
-#: ../../crypto.pm_.c:12 ../../crypto.pm_.c:26 ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "France"
-msgstr "Fransızca"
-
-#: ../../crypto.pm_.c:13
-msgid "Costa Rica"
-msgstr ""
-
-#: ../../crypto.pm_.c:14 ../../crypto.pm_.c:27
-#, fuzzy
-msgid "Belgium"
-msgstr "BelƧika dili"
-
-#: ../../crypto.pm_.c:15 ../../crypto.pm_.c:28
-msgid "Czech Republic"
-msgstr ""
-
-#: ../../crypto.pm_.c:16 ../../crypto.pm_.c:29
-#, fuzzy
-msgid "Germany"
-msgstr "Almanca"
-
-#: ../../crypto.pm_.c:17 ../../crypto.pm_.c:30
-#, fuzzy
-msgid "Greece"
-msgstr "Yunanca"
-
-#: ../../crypto.pm_.c:18 ../../crypto.pm_.c:31
-#, fuzzy
-msgid "Norway"
-msgstr "NorveƧcə"
-
-#: ../../crypto.pm_.c:19 ../../crypto.pm_.c:32
-#, fuzzy
-msgid "Sweden"
-msgstr "İsveƧcə"
-
-#: ../../crypto.pm_.c:20 ../../crypto.pm_.c:34
-msgid "Netherlands"
-msgstr ""
-
-#: ../../crypto.pm_.c:21 ../../crypto.pm_.c:35 ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "Italy"
-msgstr "Ä°talyanca"
-
-#: ../../crypto.pm_.c:22 ../../crypto.pm_.c:36
-#, fuzzy
-msgid "Austria"
-msgstr "serial"
-
-#: ../../crypto.pm_.c:33 ../../crypto.pm_.c:67
-msgid "United States"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:94
-msgid "Please make a backup of your data first"
-msgstr "ʸvvəlcə datanızın yedəyini alın"
-
-#: ../../diskdrake/hd_gtk.pm_.c:94 ../../diskdrake/interactive.pm_.c:891
-#: ../../diskdrake/interactive.pm_.c:900 ../../diskdrake/interactive.pm_.c:954
-msgid "Read carefully!"
-msgstr "Diqqətlə Oxuyun!"
-
-#: ../../diskdrake/hd_gtk.pm_.c:97
-msgid ""
-"If you plan to use aboot, be carefull to leave a free space (2048 sectors is "
-"enough)\n"
-"at the beginning of the disk"
-msgstr ""
-"Aboot istifadə etməyi istəyirsinizsə, boŠdisk sahəsi (2048 sektor bəsdir.)\n"
-"buraxmayı unutmayın."
-
-#: ../../diskdrake/hd_gtk.pm_.c:116 ../../diskdrake/interactive.pm_.c:325
-#: ../../diskdrake/interactive.pm_.c:340 ../../diskdrake/smbnfs_gtk.pm_.c:45
-#: ../../install_steps.pm_.c:75 ../../install_steps_interactive.pm_.c:67
-#: ../../install_steps_interactive.pm_.c:356 ../../interactive_http.pm_.c:119
-#: ../../interactive_http.pm_.c:120 ../../standalone/diskdrake_.c:84
-msgid "Error"
-msgstr "Xəta"
-
-#: ../../diskdrake/hd_gtk.pm_.c:151
-msgid "Wizard"
-msgstr "Sehirbaz"
-
-#: ../../diskdrake/hd_gtk.pm_.c:181 ../../diskdrake/removable_gtk.pm_.c:24
-msgid "Choose action"
-msgstr "Monitorunuzu seƧin"
-
-#: ../../diskdrake/hd_gtk.pm_.c:185
-msgid ""
-"You have one big FAT partition\n"
-"(generally used by MicroSoft Dos/Windows).\n"
-"I suggest you first resize that partition\n"
-"(click on it, then click on \"Resize\")"
-msgstr ""
-"TÉ™k bir bƶyĆ¼k disk bƶlmÉ™niz var\n"
-"(əsasən MS DOS/Windows istifadə edər).\n"
-"ʸvvÉ™lcÉ™ bu disk bƶlmÉ™sinin bƶyĆ¼klĆ¼yĆ¼nĆ¼ dÉ™yiÅdirmÉ™yinizi\n"
-"tƶvsiyÉ™ edirik. ʸvvÉ™lcÉ™ bƶlmÉ™nin Ć¼stĆ¼nÉ™, sonra \"BƶyĆ¼klĆ¼yĆ¼\n"
-"DÉ™yiÅdir\" dĆ¼ymÉ™sinÉ™ tıqlayın"
-
-#: ../../diskdrake/hd_gtk.pm_.c:188
-msgid "Please click on a partition"
-msgstr "XahiÅ edirik bir bƶlmÉ™ Ć¼stĆ¼nÉ™ tıqlayın"
-
-#: ../../diskdrake/hd_gtk.pm_.c:202 ../../diskdrake/smbnfs_gtk.pm_.c:67
-#: ../../install_steps_gtk.pm_.c:523
-msgid "Details"
-msgstr "ʸtraflı"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Ext2"
-msgstr "Ext2"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "FAT"
-msgstr "FAT"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "HFS"
-msgstr "HFS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-#, fuzzy
-msgid "Journalised FS"
-msgstr "baÄlama iflas etdi"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "SunOS"
-msgstr "SunOS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Swap"
-msgstr "Swap"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../diskdrake/interactive.pm_.c:1050
-msgid "Empty"
-msgstr "BoÅ"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../install_steps_gtk.pm_.c:379
-#: ../../install_steps_gtk.pm_.c:439 ../../mouse.pm_.c:162
-#: ../../services.pm_.c:157 ../../standalone/drakbackup_.c:944
-msgid "Other"
-msgstr "Digər"
-
-#: ../../diskdrake/hd_gtk.pm_.c:325
-msgid "Filesystem types:"
-msgstr "Fayl sistemi nƶvĆ¼:"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:386
-msgid "Create"
-msgstr "Yarat"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:365
-#: ../../diskdrake/interactive.pm_.c:499 ../../diskdrake/removable.pm_.c:26
-#: ../../diskdrake/removable.pm_.c:49 ../../diskdrake/removable_gtk.pm_.c:17
-msgid "Type"
-msgstr "Nƶv"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/hd_gtk.pm_.c:344
-#, c-format
-msgid "Use ``%s'' instead"
-msgstr "YerinÉ™ ``%s'' iÅlÉ™t"
-
-#: ../../diskdrake/hd_gtk.pm_.c:344 ../../diskdrake/interactive.pm_.c:374
-msgid "Delete"
-msgstr "Sil"
-
-#: ../../diskdrake/hd_gtk.pm_.c:348
-msgid "Use ``Unmount'' first"
-msgstr "ʸvvÉ™lcÉ™ ``Ayır'-ı iÅlÉ™t"
-
-#: ../../diskdrake/hd_gtk.pm_.c:349 ../../diskdrake/interactive.pm_.c:491
-#, c-format
-msgid ""
-"After changing type of partition %s, all data on this partition will be lost"
-msgstr ""
-"%s bƶlmÉ™sinin nƶvĆ¼nĆ¼ dÉ™yiÅdirdikdÉ™n sonra, bu bƶlmÉ™dÉ™ki bĆ¼tĆ¼n mÉ™'lumatlar "
-"silinəcəkdir"
-
-#: ../../diskdrake/interactive.pm_.c:171
-#, fuzzy
-msgid "Choose a partition"
-msgstr "Monitorunuzu seƧin"
-
-#: ../../diskdrake/interactive.pm_.c:171
-#, fuzzy
-msgid "Choose another partition"
-msgstr "Yeni bƶlmə yarat"
-
-#: ../../diskdrake/interactive.pm_.c:196
-#, fuzzy
-msgid "Exit"
-msgstr "Ext2"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to expert mode"
-msgstr "Usta moduna keƧ"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to normal mode"
-msgstr "Normal moda keƧ"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Undo"
-msgstr "Geri al"
-
-#: ../../diskdrake/interactive.pm_.c:237
-msgid "Continue anyway?"
-msgstr "Davam edilsin?"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without saving"
-msgstr "Qeyd etmədən Ƈıx"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without writing the partition table?"
-msgstr "Bƶlmə cədvəlini qeyd etmədən Ƨıxırsınız?"
-
-#: ../../diskdrake/interactive.pm_.c:247
-#, fuzzy
-msgid "Do you want to save /etc/fstab modifications"
-msgstr "QurÄuları sınamaq istÉ™yirsiniz?"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Auto allocate"
-msgstr "Avtomatik ayır"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Clear all"
-msgstr "Hamısını təmizlə"
-
-#: ../../diskdrake/interactive.pm_.c:262
-#, fuzzy
-msgid "Hard drive information"
-msgstr "Sabit disk seƧkisi"
-
-#: ../../diskdrake/interactive.pm_.c:283
-msgid "All primary partitions are used"
-msgstr "BĆ¼tĆ¼n birinci bƶlmÉ™lÉ™r istifadÉ™dÉ™dir"
-
-#: ../../diskdrake/interactive.pm_.c:284
-msgid "I can't add any more partition"
-msgstr "Artıq bƶlmə əlavə edilə bilməz"
-
-#: ../../diskdrake/interactive.pm_.c:285
-msgid ""
-"To have more partitions, please delete one to be able to create an extended "
-"partition"
-msgstr "Artıq bƶlmÉ™ yaratmaq Ć¼Ć§Ć¼n, bir bƶlmÉ™ni silib mÉ™ntiqi bƶlmÉ™ yaradın"
-
-#: ../../diskdrake/interactive.pm_.c:295
-#, fuzzy
-msgid "Save partition table"
-msgstr "Bƶlmə cədvəlini yaz"
-
-#: ../../diskdrake/interactive.pm_.c:296
-#, fuzzy
-msgid "Restore partition table"
-msgstr "Bƶlmə cədvəlini qurtar"
-
-#: ../../diskdrake/interactive.pm_.c:297
-msgid "Rescue partition table"
-msgstr "Bƶlmə cədvəlini qurtar"
-
-#: ../../diskdrake/interactive.pm_.c:299
-#, fuzzy
-msgid "Reload partition table"
-msgstr "Bƶlmə cədvəlini qurtar"
-
-#: ../../diskdrake/interactive.pm_.c:304
-#, fuzzy
-msgid "Removable media automounting"
-msgstr "Taxılıb sƶkĆ¼lÉ™ bilÉ™n avadanlıqların avtomatik baÄlanması"
-
-#: ../../diskdrake/interactive.pm_.c:313 ../../diskdrake/interactive.pm_.c:333
-msgid "Select file"
-msgstr "Fayl seƧ"
-
-#: ../../diskdrake/interactive.pm_.c:320
-msgid ""
-"The backup partition table has not the same size\n"
-"Still continue?"
-msgstr ""
-"YedÉ™k bƶlmÉ™ cÉ™dvÉ™li eyni bƶyĆ¼klĆ¼yÉ™ sahib deyil\n"
-"Davam etmək istəyirsiniz?"
-
-#: ../../diskdrake/interactive.pm_.c:334
-msgid "Warning"
-msgstr "Xəbərdarlıq"
-
-#: ../../diskdrake/interactive.pm_.c:335
-msgid ""
-"Insert a floppy in drive\n"
-"All data on this floppy will be lost"
-msgstr ""
-"Disket sĆ¼rĆ¼cĆ¼yÉ™ bir disket yerlÉ™Ådirin\n"
-"Bu disketdÉ™ki bĆ¼tĆ¼n mÉ™'lumatlar yox olacaqdır"
-
-#: ../../diskdrake/interactive.pm_.c:346
-msgid "Trying to rescue partition table"
-msgstr "BƶlmÉ™ cÉ™dvÉ™li qurtarılmaÄa cÉ™hd edilir"
-
-#: ../../diskdrake/interactive.pm_.c:352
-#, fuzzy
-msgid "Detailed information"
-msgstr "Mə'lumatı gƶstər"
-
-#: ../../diskdrake/interactive.pm_.c:364 ../../diskdrake/interactive.pm_.c:534
-#: ../../diskdrake/interactive.pm_.c:554 ../../diskdrake/removable.pm_.c:24
-#: ../../diskdrake/removable_gtk.pm_.c:15 ../../diskdrake/smbnfs_gtk.pm_.c:83
-msgid "Mount point"
-msgstr "BaÄlama nƶqtÉ™si"
-
-#: ../../diskdrake/interactive.pm_.c:366 ../../diskdrake/removable.pm_.c:25
-#: ../../diskdrake/removable_gtk.pm_.c:16 ../../diskdrake/smbnfs_gtk.pm_.c:84
-msgid "Options"
-msgstr "SeƧənəklər"
-
-#: ../../diskdrake/interactive.pm_.c:367 ../../diskdrake/interactive.pm_.c:621
-msgid "Resize"
-msgstr "BƶyĆ¼klĆ¼yĆ¼nĆ¼ DÉ™yiÅdir"
-
-#: ../../diskdrake/interactive.pm_.c:368 ../../diskdrake/interactive.pm_.c:674
-msgid "Move"
-msgstr "DaÅı"
-
-#: ../../diskdrake/interactive.pm_.c:369
-msgid "Format"
-msgstr "Å˛É™killÉ™ndir"
-
-#: ../../diskdrake/interactive.pm_.c:370 ../../diskdrake/smbnfs_gtk.pm_.c:80
-msgid "Mount"
-msgstr "BaÄla"
-
-#: ../../diskdrake/interactive.pm_.c:371
-msgid "Add to RAID"
-msgstr "RAIDə əlavə et"
-
-#: ../../diskdrake/interactive.pm_.c:372
-msgid "Add to LVM"
-msgstr "LVMə əlavə et"
-
-#: ../../diskdrake/interactive.pm_.c:373 ../../diskdrake/smbnfs_gtk.pm_.c:79
-msgid "Unmount"
-msgstr "Ayır"
-
-#: ../../diskdrake/interactive.pm_.c:375
-msgid "Remove from RAID"
-msgstr "RAIDdən ayır"
-
-#: ../../diskdrake/interactive.pm_.c:376
-msgid "Remove from LVM"
-msgstr "LVMdən ayır"
-
-#: ../../diskdrake/interactive.pm_.c:377
-msgid "Modify RAID"
-msgstr "RAIDi dÉ™yiÅdir"
-
-#: ../../diskdrake/interactive.pm_.c:378
-msgid "Use for loopback"
-msgstr "Loopback Ć¼Ć§Ć¼n istifadÉ™ et"
-
-#: ../../diskdrake/interactive.pm_.c:417
-msgid "Create a new partition"
-msgstr "Yeni bƶlmə yarat"
-
-#: ../../diskdrake/interactive.pm_.c:420
-msgid "Start sector: "
-msgstr "BaÅlanÄıƧ sektoru: "
-
-#: ../../diskdrake/interactive.pm_.c:422 ../../diskdrake/interactive.pm_.c:773
-msgid "Size in MB: "
-msgstr "MB cinsindÉ™n bƶyĆ¼klĆ¼k: "
-
-#: ../../diskdrake/interactive.pm_.c:423 ../../diskdrake/interactive.pm_.c:774
-msgid "Filesystem type: "
-msgstr "Fayl sistemi nƶvĆ¼: "
-
-#: ../../diskdrake/interactive.pm_.c:424
-#: ../../diskdrake/interactive.pm_.c:1034
-#: ../../diskdrake/interactive.pm_.c:1108
-msgid "Mount point: "
-msgstr "BaÄlama nƶqtÉ™si: "
-
-#: ../../diskdrake/interactive.pm_.c:428
-msgid "Preference: "
-msgstr "XĆ¼susiyyÉ™tlÉ™r: "
-
-#: ../../diskdrake/interactive.pm_.c:472
-#, fuzzy
-msgid "Remove the loopback file?"
-msgstr "Loopback faylı ÅÉ™killÉ™ndirilir: %s"
-
-#: ../../diskdrake/interactive.pm_.c:497
-msgid "Change partition type"
-msgstr "BƶlmÉ™ nƶvĆ¼nĆ¼ DÉ™yiÅdir"
-
-#: ../../diskdrake/interactive.pm_.c:498 ../../diskdrake/removable.pm_.c:48
-msgid "Which filesystem do you want?"
-msgstr "Hansı dili istəyirsiniz?"
-
-#: ../../diskdrake/interactive.pm_.c:502
-msgid "Switching from ext2 to ext3"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:532
-#, c-format
-msgid "Where do you want to mount loopback file %s?"
-msgstr "%s loopback avadanlıÄını haraya baÄlamaq istÉ™yirsiniz?"
-
-#: ../../diskdrake/interactive.pm_.c:533 ../../diskdrake/interactive.pm_.c:553
-#, c-format
-msgid "Where do you want to mount device %s?"
-msgstr "%s avadanlıÄını haraya baÄlamaq istÉ™yirsiniz?"
-
-#: ../../diskdrake/interactive.pm_.c:539
-msgid ""
-"Can't unset mount point as this partition is used for loop back.\n"
-"Remove the loopback first"
-msgstr ""
-"Bu disk bƶlmÉ™si loopback Ć¼Ć§Ć¼n istifadÉ™ edildiyindÉ™n ƶtrĆ¼ baÄlanma "
-"nƶqtəsindən ayrıla bilinmir.\n"
-"ʸvvÉ™lcÉ™ loopback-ı lÉ™Äv edin."
-
-#: ../../diskdrake/interactive.pm_.c:577
-msgid "Computing FAT filesystem bounds"
-msgstr "Fat fayl sistemi ucları hesaplanır"
-
-#: ../../diskdrake/interactive.pm_.c:577 ../../diskdrake/interactive.pm_.c:636
-#: ../../install_interactive.pm_.c:130
-msgid "Resizing"
-msgstr "BƶyĆ¼klĆ¼yĆ¼ dÉ™yiÅdirilir"
-
-#: ../../diskdrake/interactive.pm_.c:609
-msgid "This partition is not resizeable"
-msgstr "Hansı bƶlmÉ™ nƶvĆ¼nĆ¼ istÉ™yirsiniz?"
-
-#: ../../diskdrake/interactive.pm_.c:614
-msgid "All data on this partition should be backed-up"
-msgstr "Bu bƶlmÉ™dÉ™ki bĆ¼tĆ¼n mÉ™'lumatlar yedÉ™klÉ™nmÉ™lidir"
-
-#: ../../diskdrake/interactive.pm_.c:616
-#, c-format
-msgid "After resizing partition %s, all data on this partition will be lost"
-msgstr ""
-"%s bƶlmÉ™si bƶyĆ¼klĆ¼yĆ¼ dÉ™yiÅdirildirkdÉ™n sonra bu bƶlmÉ™dÉ™ki bĆ¼tĆ¼n mÉ™'lumatlar "
-"silinəcəkdir"
-
-#: ../../diskdrake/interactive.pm_.c:621
-msgid "Choose the new size"
-msgstr "Yeni bƶyĆ¼klĆ¼k seƧin"
-
-#: ../../diskdrake/interactive.pm_.c:622
-#, fuzzy
-msgid "New size in MB: "
-msgstr "MB cinsindÉ™n bƶyĆ¼klĆ¼k: "
-
-#: ../../diskdrake/interactive.pm_.c:675
-msgid "Which disk do you want to move it to?"
-msgstr "Hansı diskÉ™ daÅımaq istÉ™yirsiniz?"
-
-#: ../../diskdrake/interactive.pm_.c:676
-msgid "Sector"
-msgstr "Sektor"
-
-#: ../../diskdrake/interactive.pm_.c:677
-msgid "Which sector do you want to move it to?"
-msgstr "Hansı sektora daÅımaq istÉ™yirsiniz?"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving"
-msgstr "DaÅınır"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving partition..."
-msgstr "BƶlmÉ™ daÅınır..."
-
-#: ../../diskdrake/interactive.pm_.c:697
-msgid "Choose an existing RAID to add to"
-msgstr "ʸlavÉ™ etmÉ™k Ć¼Ć§Ć¼n mƶvcud bir RAID seƧin"
-
-#: ../../diskdrake/interactive.pm_.c:698 ../../diskdrake/interactive.pm_.c:716
-msgid "new"
-msgstr "yeni"
-
-#: ../../diskdrake/interactive.pm_.c:714
-msgid "Choose an existing LVM to add to"
-msgstr "ʸlavÉ™ etmÉ™k Ć¼Ć§Ć¼n mƶvcud bir LVM seƧin"
-
-#: ../../diskdrake/interactive.pm_.c:719
-msgid "LVM name?"
-msgstr "LVM adı?"
-
-#: ../../diskdrake/interactive.pm_.c:759
-msgid "This partition can't be used for loopback"
-msgstr "Bu disk bƶlmÉ™si loopback Ć¼Ć§Ć¼n iÅlÉ™dilmÉ™z"
-
-#: ../../diskdrake/interactive.pm_.c:771
-msgid "Loopback"
-msgstr "Loopback"
-
-#: ../../diskdrake/interactive.pm_.c:772
-msgid "Loopback file name: "
-msgstr "Loopback fayl adı: "
-
-#: ../../diskdrake/interactive.pm_.c:777
-#, fuzzy
-msgid "Give a file name"
-msgstr "Həqiqi adı"
-
-#: ../../diskdrake/interactive.pm_.c:780
-msgid "File already used by another loopback, choose another one"
-msgstr ""
-"Fayl baÅqa bir loopback tÉ™rÉ™findÉ™n istifadÉ™dÉ™dir, baÅqa\n"
-"birini seƧin"
-
-#: ../../diskdrake/interactive.pm_.c:781
-msgid "File already exists. Use it?"
-msgstr "Fayl onsuz da vardır. Ä°ÅlÉ™dilsin?"
-
-#: ../../diskdrake/interactive.pm_.c:804
-#, fuzzy
-msgid "Mount options"
-msgstr "Modul seƧənəkləri:"
-
-#: ../../diskdrake/interactive.pm_.c:811
-msgid "Various"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:874
-msgid "device"
-msgstr "avadanlıq"
-
-#: ../../diskdrake/interactive.pm_.c:875
-msgid "level"
-msgstr "səviyyə"
-
-#: ../../diskdrake/interactive.pm_.c:876
-msgid "chunk size"
-msgstr "parƧa bƶyĆ¼klĆ¼yĆ¼"
-
-#: ../../diskdrake/interactive.pm_.c:891
-msgid "Be careful: this operation is dangerous."
-msgstr "DiqqÉ™tlı olun: bu É™mÉ™liyyat tÉ™hlĆ¼kÉ™lidir."
-
-#: ../../diskdrake/interactive.pm_.c:906
-msgid "What type of partitioning?"
-msgstr "Nəcə bƶlməlandirmə istəyirsən?"
-
-#: ../../diskdrake/interactive.pm_.c:924
-msgid ""
-"Sorry I won't accept to create /boot so far onto the drive (on a cylinder > "
-"1024).\n"
-"Either you use LILO and it won't work, or you don't use LILO and you don't "
-"need /boot"
-msgstr ""
-"BaÄıÅlayın, /boot bƶlmÉ™sini bu sĆ¼rĆ¼cĆ¼dÉ™ yarada bilmÉ™yÉ™cÉ™m.\n"
-"Onda ya LILO istifadÉ™ edÉ™ bilmÉ™yÉ™cÉ™ksiniz ve /boot bƶlĆ¼mĆ¼nÉ™ \n"
-"ehtiyacınız yoxdur vÉ™ ya LILO istifadÉ™sini sınayarsınız, ancaq LILO iÅlÉ™mÉ™yÉ™ "
-"bilər."
-
-#: ../../diskdrake/interactive.pm_.c:928
-msgid ""
-"The partition you've selected to add as root (/) is physically located "
-"beyond\n"
-"the 1024th cylinder of the hard drive, and you have no /boot partition.\n"
-"If you plan to use the LILO boot manager, be careful to add a /boot partition"
-msgstr ""
-"SeƧdiyiniz bƶlĆ¼m fiziki sahÉ™nin Ć¼stĆ¼ndÉ™ (1024. silindrin xaricindÉ™)\n"
-"/boot bƶlĆ¼mĆ¼nĆ¼z yoxdur. Lilo aƧılıŠidarÉ™cisindÉ™n istifadÉ™ etmÉ™k "
-"istəyirsinizsə, \n"
-"/boot bƶlməsini əlavə edərkən Ƨox diqqətli olmalısınız."
-
-#: ../../diskdrake/interactive.pm_.c:934
-msgid ""
-"You've selected a software RAID partition as root (/).\n"
-"No bootloader is able to handle this without a /boot partition.\n"
-"So be careful to add a /boot partition"
-msgstr ""
-"Bir proqram tÉ™'minatlı RAID bƶlmÉ™sini kƶk qovluÄu (/) olaraq tÉ™'yin "
-"etdiniz.\n"
-"ʸgər lilo ya da grub istifadə etmək istəyirsinizsə, bir /boot bƶlməsi\n"
-"əlavə etməyi unutmayın"
-
-#: ../../diskdrake/interactive.pm_.c:954
-#, c-format
-msgid "Partition table of drive %s is going to be written to disk!"
-msgstr "%s sĆ¼rĆ¼cĆ¼sĆ¼nĆ¼n bƶlmÉ™ cÉ™dvÉ™li diskÉ™ yazılacaq!"
-
-#: ../../diskdrake/interactive.pm_.c:958
-msgid "You'll need to reboot before the modification can take place"
-msgstr "Yeni qurÄuların fÉ™allaÅmaÄı Ć¼Ć§Ć¼n sistemi yenidÉ™n baÅlatmalısınız"
-
-#: ../../diskdrake/interactive.pm_.c:969
-#, c-format
-msgid "After formatting partition %s, all data on this partition will be lost"
-msgstr ""
-"%s bƶlmÉ™si ÅÉ™killÉ™ndirildikdÉ™n sonra bu bƶlmÉ™dÉ™ki bĆ¼tĆ¼n mÉ™'lumatlar "
-"silinəcəkdir"
-
-#: ../../diskdrake/interactive.pm_.c:971
-msgid "Formatting"
-msgstr "Å˛É™killÉ™ndirilir"
-
-#: ../../diskdrake/interactive.pm_.c:972
-#, c-format
-msgid "Formatting loopback file %s"
-msgstr "Loopback faylı ÅÉ™killÉ™ndirilir: %s"
-
-#: ../../diskdrake/interactive.pm_.c:973
-#: ../../install_steps_interactive.pm_.c:465
-#, c-format
-msgid "Formatting partition %s"
-msgstr "Å˛É™killÉ™ndirilÉ™n bƶlmÉ™: %s"
-
-#: ../../diskdrake/interactive.pm_.c:984
-#, fuzzy
-msgid "Hide files"
-msgstr "mkraid iflas etdi"
-
-#: ../../diskdrake/interactive.pm_.c:984
-#, fuzzy
-msgid "Move files to the new partition"
-msgstr "Yeni bƶlmÉ™lÉ™r Ć¼Ć§Ć¼n boÅ sahÉ™ yoxdur"
-
-#: ../../diskdrake/interactive.pm_.c:985
-#, c-format
-msgid ""
-"Directory %s already contain some data\n"
-"(%s)"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:996
-#, fuzzy
-msgid "Moving files to the new partition"
-msgstr "Yeni bƶlmÉ™lÉ™r Ć¼Ć§Ć¼n boÅ sahÉ™ yoxdur"
-
-#: ../../diskdrake/interactive.pm_.c:1000
-#, c-format
-msgid "Copying %s"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1004
-#, fuzzy, c-format
-msgid "Removing %s"
-msgstr "Rezolyusiya: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1014
-#, c-format
-msgid "partition %s is now known as %s"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1035
-#: ../../diskdrake/interactive.pm_.c:1094
-msgid "Device: "
-msgstr "Avadanlıq: "
-
-#: ../../diskdrake/interactive.pm_.c:1036
-#, c-format
-msgid "DOS drive letter: %s (just a guess)\n"
-msgstr "DOS sĆ¼rĆ¼cĆ¼ hÉ™rfi: %s (sadÉ™cÉ™ tÉ™xmini)\n"
-
-#: ../../diskdrake/interactive.pm_.c:1040
-#: ../../diskdrake/interactive.pm_.c:1048
-#: ../../diskdrake/interactive.pm_.c:1112
-msgid "Type: "
-msgstr "Nƶv: "
-
-#: ../../diskdrake/interactive.pm_.c:1044
-msgid "Name: "
-msgstr "Ad: "
-
-#: ../../diskdrake/interactive.pm_.c:1052
-#, c-format
-msgid "Start: sector %s\n"
-msgstr "BaÅlanÄıc: sektor %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1053
-#, c-format
-msgid "Size: %s"
-msgstr "BƶyĆ¼klĆ¼yĆ¼: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1055
-#, c-format
-msgid ", %s sectors"
-msgstr ", %s sektor"
-
-#: ../../diskdrake/interactive.pm_.c:1057
-#, fuzzy, c-format
-msgid "Cylinder %d to %d\n"
-msgstr "Silindr %d -dən silindr %d-yə\n"
-
-#: ../../diskdrake/interactive.pm_.c:1058
-msgid "Formatted\n"
-msgstr "Å˛É™killÉ™ndirilmiÅ\n"
-
-#: ../../diskdrake/interactive.pm_.c:1059
-msgid "Not formatted\n"
-msgstr "Å˛É™killÉ™ndirilmÉ™miÅ\n"
-
-#: ../../diskdrake/interactive.pm_.c:1060
-msgid "Mounted\n"
-msgstr "BaÄlı\n"
-
-#: ../../diskdrake/interactive.pm_.c:1061
-#, c-format
-msgid "RAID md%s\n"
-msgstr "RAID md%s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1063
-#, c-format
-msgid ""
-"Loopback file(s):\n"
-" %s\n"
-msgstr ""
-"Loopback faylı:\n"
-" %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1064
-msgid ""
-"Partition booted by default\n"
-" (for MS-DOS boot, not for lilo)\n"
-msgstr ""
-"Ana aƧılma bƶlməsi\n"
-" (MS-DOS aƧılıÅı Ć¼Ć§Ć¼n)\n"
-
-#: ../../diskdrake/interactive.pm_.c:1066
-#, c-format
-msgid "Level %s\n"
-msgstr "Səviyyə %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1067
-#, c-format
-msgid "Chunk size %s\n"
-msgstr "ParƧa bƶyĆ¼klĆ¼yĆ¼ %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1068
-#, c-format
-msgid "RAID-disks %s\n"
-msgstr "RAID-diskləri %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1070
-#, c-format
-msgid "Loopback file name: %s"
-msgstr "Loopback faylı adı: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1073
-msgid ""
-"\n"
-"Chances are, this partition is\n"
-"a Driver partition, you should\n"
-"probably leave it alone.\n"
-msgstr ""
-"\n"
-"BÉ™lkÉ™ dÉ™ bu bir SĆ¼rĆ¼cĆ¼ bƶlmÉ™sidir.\n"
-"Onda bunu ele beləcə buraxın.\n"
-
-#: ../../diskdrake/interactive.pm_.c:1076
-msgid ""
-"\n"
-"This special Bootstrap\n"
-"partition is for\n"
-"dual-booting your system.\n"
-msgstr ""
-"\n"
-"Bu, ikili aƧılÄ±Å Ć¼Ć§Ć¼n xĆ¼susi\n"
-"Bootstrap-dır.\n"
-
-#: ../../diskdrake/interactive.pm_.c:1095
-#, c-format
-msgid "Size: %s\n"
-msgstr "BƶyĆ¼klĆ¼k: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1096
-#, c-format
-msgid "Geometry: %s cylinders, %s heads, %s sectors\n"
-msgstr "Geometriyası: %s silindr, %s baÅ, %s sektor\n"
-
-#: ../../diskdrake/interactive.pm_.c:1097
-msgid "Info: "
-msgstr "MÉ™'lumat: "
-
-#: ../../diskdrake/interactive.pm_.c:1098
-#, c-format
-msgid "LVM-disks %s\n"
-msgstr "LVM-diskləri %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1099
-#, c-format
-msgid "Partition table type: %s\n"
-msgstr "BƶlmÉ™ cÉ™dvÉ™li nƶvĆ¼: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1100
-#, c-format
-msgid "on bus %d id %d\n"
-msgstr "%d data yolunda, %d nƶ'li\n"
-
-#: ../../diskdrake/interactive.pm_.c:1114
-#, c-format
-msgid "Options: %s"
-msgstr "SeƧənəklər: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1130
-#, fuzzy
-msgid "Filesystem encryption key"
-msgstr "Fayl sistemi nƶvĆ¼: "
-
-#: ../../diskdrake/interactive.pm_.c:1131
-msgid "Choose your filesystem encryption key"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1134
-#, fuzzy, c-format
-msgid "This encryption key is too simple (must be at least %d characters long)"
-msgstr "Bu parol Ƨox sadədir (en az %d xarakter boyunda olmalıdır)"
-
-#: ../../diskdrake/interactive.pm_.c:1135
-#, fuzzy
-msgid "The encryption keys do not match"
-msgstr "Parollar uyÄun gÉ™lmir"
-
-#: ../../diskdrake/interactive.pm_.c:1138
-msgid "Encryption key"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1139
-msgid "Encryption key (again)"
-msgstr ""
-
-#: ../../diskdrake/removable.pm_.c:47
-#, fuzzy
-msgid "Change type"
-msgstr "BƶlmÉ™ nƶvĆ¼nĆ¼ DÉ™yiÅdir"
-
-#: ../../diskdrake/removable_gtk.pm_.c:28
-#, fuzzy
-msgid "Please click on a media"
-msgstr "XahiÅ edirik bir bƶlmÉ™ Ć¼stĆ¼nÉ™ tıqlayın"
-
-#: ../../diskdrake/smbnfs_gtk.pm_.c:165
-#, fuzzy
-msgid "Search servers"
-msgstr "DNS verici"
-
-#: ../../fs.pm_.c:485 ../../fs.pm_.c:495 ../../fs.pm_.c:499 ../../fs.pm_.c:503
-#: ../../fs.pm_.c:507 ../../fs.pm_.c:511
-#, c-format
-msgid "%s formatting of %s failed"
-msgstr "%s ÅÉ™killÉ™ndirilmÉ™sindÉ™ %s bƶlmÉ™ xÉ™tası"
-
-#: ../../fs.pm_.c:548
-#, c-format
-msgid "I don't know how to format %s in type %s"
-msgstr "%s'i necÉ™ ÅÉ™killÉ™ndirÉ™cÉ™yimi bilmirÉ™m (Nƶv: %s)"
-
-#: ../../fs.pm_.c:620 ../../fs.pm_.c:649 ../../fs.pm_.c:655
-#, c-format
-msgid "mounting partition %s in directory %s failed"
-msgstr ""
-
-#: ../../fs.pm_.c:640
-#, c-format
-msgid "fsck failed with exit code %d or signal %d"
-msgstr ""
-
-#: ../../fs.pm_.c:670 ../../partition_table.pm_.c:596
-#, c-format
-msgid "error unmounting %s: %s"
-msgstr "%s ayrılırkən xəta oldu: %s"
-
-#: ../../fsedit.pm_.c:21
-msgid "simple"
-msgstr "bəsit"
-
-#: ../../fsedit.pm_.c:25
-msgid "with /usr"
-msgstr ""
-
-#: ../../fsedit.pm_.c:30
-msgid "server"
-msgstr "verici"
-
-#: ../../fsedit.pm_.c:467
-msgid "You can't use JFS for partitions smaller than 16MB"
-msgstr "16MB dən kiƧik disk bƶlmələrində JFS istifadə etməlisiniz"
-
-#: ../../fsedit.pm_.c:468
-msgid "You can't use ReiserFS for partitions smaller than 32MB"
-msgstr "32MB dən kiƧik disk bƶlmələrində ReiserFS istifadə etməlisiniz"
-
-#: ../../fsedit.pm_.c:477
-msgid "Mount points must begin with a leading /"
-msgstr "BaÄlama nƶqtÉ™lÉ™ri / ilÉ™ baÅlamalıdır"
-
-#: ../../fsedit.pm_.c:478
-#, c-format
-msgid "There is already a partition with mount point %s\n"
-msgstr "Onsuz da baÄlama nƶqtÉ™si %s olan bir bƶlmÉ™ var\n"
-
-#: ../../fsedit.pm_.c:482
-#, c-format
-msgid "You can't use a LVM Logical Volume for mount point %s"
-msgstr "%s Ć¼Ć§Ć¼n LVM MÉ™ntiqi Cildini istifadÉ™ edÉ™ bilmÉ™zsiniz"
-
-#: ../../fsedit.pm_.c:484
-msgid "This directory should remain within the root filesystem"
-msgstr "Bu qovluq kƶk fayl sistemi iƧərisində olmalıdır"
-
-#: ../../fsedit.pm_.c:486
-msgid "You need a true filesystem (ext2, reiserfs) for this mount point\n"
-msgstr ""
-"Bu baÄlama nƶqtÉ™si Ć¼Ć§Ć¼n hÉ™qiqi bir fayl sisteminÉ™ (ext2, reisrfs)\n"
-"ehtiyac vardır.\n"
-
-#: ../../fsedit.pm_.c:488
-#, fuzzy, c-format
-msgid "You can't use an encrypted file system for mount point %s"
-msgstr "%s Ć¼Ć§Ć¼n LVM MÉ™ntiqi Cildini istifadÉ™ edÉ™ bilmÉ™zsiniz"
-
-#: ../../fsedit.pm_.c:546
-#, fuzzy
-msgid "Not enough free space for auto-allocating"
-msgstr "Avtomatik yerlÉ™ÅdirmÉ™ Ć¼Ć§Ć¼n boÅ sahÉ™ yoxdur"
-
-#: ../../fsedit.pm_.c:548
-msgid "Nothing to do"
-msgstr ""
-
-#: ../../fsedit.pm_.c:612
-#, c-format
-msgid "Error opening %s for writing: %s"
-msgstr "Yazmaq Ć¼Ć§Ć¼n aƧılan %s'dÉ™ xÉ™ta: %s"
-
-#: ../../fsedit.pm_.c:697
-msgid ""
-"An error has occurred - no valid devices were found on which to create new "
-"filesystems. Please check your hardware for the cause of this problem"
-msgstr ""
-"Bir xÉ™ta oldu. Yeni fayl sisteminin yaradılacaÄı hƶkmlĆ¼ bir sĆ¼rĆ¼cĆ¼ "
-"tapılmadı. Bu problemin qaynaÄı Ć¼Ć§Ć¼n avadanlıÄınızı yoxlayın"
-
-#: ../../fsedit.pm_.c:720
-msgid "You don't have any partitions!"
-msgstr "HeƧ disk bƶlməniz yoxdur!"
-
-#: ../../help.pm_.c:13
-msgid ""
-"GNU/Linux is a multiuser system, and this means that each user can have his\n"
-"own preferences, his own files and so on. You can read the ``User Guide''\n"
-"to learn more. But unlike \"root\", which is the administrator, the users\n"
-"you will add here will not be entitled to change anything except their own\n"
-"files and their own configuration. You will have to create at least one\n"
-"regular user for yourself. That account is where you should log in for\n"
-"routine use. Although it is very practical to log in as \"root\" everyday,\n"
-"it may also be very dangerous! The slightest mistake could mean that your\n"
-"system would not work any more. If you make a serious mistake as a regular\n"
-"user, you may only lose some information, but not the entire system.\n"
-"\n"
-"First, you have to enter your real name. This is not mandatory, of course\n"
-"as you can actually enter whatever you want. DrakX will then take the first\n"
-"word you have entered in the box and will bring it over to the \"User\n"
-"name\". This is the name this particular user will use to log onto the\n"
-"system. You can change it. You then have to enter a password here. A\n"
-"non-privileged (regular) user's password is not as crucial as \"root\"' one\n"
-"from a security point of view, but that is no reason to neglect it: after\n"
-"all, your files are at risk.\n"
-"\n"
-"If you click on \"Accept user\", you can then add as many as you want. Add\n"
-"a user for each one of your friends: your father or your sister, for\n"
-"example. When you finish adding all the users you want, select \"Done\".\n"
-"\n"
-"Clicking the \"Advanced\" button allows you to change the default \"shell\"\n"
-"for that user (bash by default)."
-msgstr ""
-
-#: ../../help.pm_.c:41
-msgid ""
-"Listed above are the existing Linux partitions detected on your hard 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"
-"able to install enough software. If you want to store your data on a\n"
-"separate partition, you will also need to create a partition for \"/home\"\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 drive type\", \"hard 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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
-"\"second lowest SCSI ID\", etc."
-msgstr ""
-"Yuxarıda sĆ¼rĆ¼cĆ¼nĆ¼zdÉ™ tapılan Linuks bƶlmÉ™lÉ™ri sıralanıb\n"
-"Sehirbazın tƶvsiyÉ™lÉ™rinÉ™ uyun, onlar Ƨox vaxt iÅÉ™ yarayır.\n"
-"ʸgər bunu istəməsəniz en azından kƶk bƶlməsi (\"/\") seƧməlisiniz\n"
-"Ƈox kiƧik bƶlmÉ™ seƧmÉ™yin. yoxsa Ƨox proqram tÉ™'minatı yĆ¼klÉ™yÉ™ bilmÉ™zsÉ™niz.\n"
-"ʸgÉ™r verilÉ™rinizi baÅqa bƶlmÉ™dÉ™ tutmaq istÉ™yirsinizsÉ™, ondabir de \"/home\" "
-"bƶlməsi də yaratmalısınız (birdən Ƨox Linuks\n"
-"bƶlməniz var isə).\n"
-"\n"
-"\n"
-"XÉ™bÉ™riniz olsun, hÉ™r bƶlmÉ™ aÅaÄıdakı kimi sıralanıb: \"Ad\", \"HÉ™cm\".\n"
-"\n"
-"\n"
-"\"Ad\" belÉ™ kodlanıb: \"sĆ¼rĆ¼cĆ¼ nƶvĆ¼\", \"sĆ¼rĆ¼cĆ¼ mƶmrÉ™si\",\n"
-"\"bƶlmə nƶmrəsi\" (məsələn \"hda1\").\n"
-"\n"
-"\n"
-"\"SĆ¼rĆ¼cĆ¼ nƶvĆ¼\" É™gÉ™r sĆ¼rĆ¼cĆ¼nĆ¼z IDE sĆ¼rĆ¼cĆ¼dĆ¼rsÉ™ \"hd\"dirvÉ™ SCSI sĆ¼rĆ¼cĆ¼ isÉ™ "
-"\"sd\"dir.\n"
-"\n"
-"\n"
-"\"SĆ¼rĆ¼cĆ¼ nƶmrÉ™si\" hÉ™miÅÉ™ \"hd\" vÉ™ ya \"sd\"dÉ™n sonrakı rÉ™qÉ™mdir.IDE "
-"sĆ¼rĆ¼cĆ¼lÉ™r Ć¼Ć§Ć¼n:\n"
-"\n"
-"*\"a\" yÉ™ni \"birinci IDE idarÉ™cisindÉ™ ali sĆ¼rĆ¼cĆ¼\",\n"
-"\n"
-"*\"b\" yÉ™ni \"birinci IDE idarÉ™cisindÉ™ kƶlÉ™ sĆ¼rĆ¼cĆ¼\",\n"
-"\n"
-"*\"c\" yÉ™ni \"ikinci IDE idarÉ™cisindÉ™ ali sĆ¼rĆ¼cĆ¼\",\n"
-"\n"
-"*\"d\" yÉ™ni \"ikinci IDE idarÉ™cisindÉ™ kƶlÉ™ sĆ¼rĆ¼cĆ¼\".\n"
-"\n"
-"\n"
-"SCSI sĆ¼rĆ¼cĆ¼lÉ™rindÉ™ \"a\" nın mÉ™nası \"birinci sĆ¼rĆ¼cĆ¼\",\n"
-"\"b\"nin mÉ™nası \"ikinci sĆ¼rĆ¼cĆ¼\"dĆ¼r vs..."
-
-#: ../../help.pm_.c:72
-msgid ""
-"The Mandrake Linux 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."
-msgstr ""
-
-#: ../../help.pm_.c:77
-msgid ""
-"It is now time to specify which programs you wish to install on your\n"
-"system. There are thousands of packages available for Mandrake Linux, 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"
-"be asked to specify the CDs you currently have (in Expert mode only). Check\n"
-"the CD labels and highlight the boxes corresponding to the CDs you have\n"
-"available for installation. Click \"OK\" when you are ready to continue.\n"
-"\n"
-"Packages are sorted in groups corresponding to a particular use of your\n"
-"machine. The groups themselves are sorted into four sections:\n"
-"\n"
-" * \"Workstation\": if you plan to use your machine as a workstation, "
-"select\n"
-"one or more of the corresponding groups;\n"
-"\n"
-" * \"Development\": if your machine is to be used for programming, choose\n"
-"the desired group(s);\n"
-"\n"
-" * \"Server\": if your machine is intended to be a server, you will be able\n"
-"to select which of the most common services you wish to install on your\n"
-"machine;\n"
-"\n"
-" * \"Graphical Environment\": finally, this is where you will choose your\n"
-"preferred graphical environment. At least one must be selected if you want\n"
-"to have a graphical workstation!\n"
-"\n"
-"Moving the mouse cursor over a group name will display a short explanatory\n"
-"text about that group. If you deselect all groups when performing a regular\n"
-"installation (by opposition to an upgrade), a dialog will pop up proposing\n"
-"different options for a minimal installation:\n"
-"\n"
-" * \"With X\": install the fewer packages possible to have a working\n"
-"graphical desktop;\n"
-"\n"
-" * \"With basic documentation\": installs the base system plus basic\n"
-"utilities and their documentation. This installation is suitable for\n"
-"setting up a server;\n"
-"\n"
-" * \"Truly minimal install\": will install the strict minimum necessary to\n"
-"get a working Linux system, in command line only. This installation is\n"
-"about 65Mb large.\n"
-"\n"
-"You can check the \"Individual package selection\" box, which is useful if\n"
-"you are familiar with the packages being offered or if you want to have\n"
-"total control over what will be installed.\n"
-"\n"
-"If you started the installation in \"Upgrade\" mode, you can unselect all\n"
-"groups to avoid installing any new package. This is useful for repairing or\n"
-"updating an existing system."
-msgstr ""
-
-#: ../../help.pm_.c:128
-msgid ""
-"Finally, depending on whether or not you selected individual packages, you\n"
-"will be presented a tree containing all packages classified by groups and\n"
-"subgroups. While browsing the tree, you can select entire groups,\n"
-"subgroups, or individual packages.\n"
-"\n"
-"Whenever you select a package on the tree, a description appears on the\n"
-"right. When your selection is finished, click the \"Install\" button which\n"
-"will then launch the installation process. Depending on the speed of your\n"
-"hardware and the number of packages that need to be installed, it may take\n"
-"a while to complete the process. An estimate of the time it will take to\n"
-"install everything is displayed on the screen, to help you gauge if there\n"
-"is sufficient time to enjoy a cup of coffee.\n"
-"\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 Mandrake Linux, 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 Mandrake Linux 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"
-"default. !!\n"
-"\n"
-"The \"Automatic dependencies\" option simply disables the warning dialog\n"
-"which appears whenever the installer automatically selects a package. This\n"
-"occurs because it has determined that it needs to satisfy a dependency with\n"
-"another package in order to successfully complete the installation.\n"
-"\n"
-"The tiny floppy disk icon at the bottom of the list allows to load the\n"
-"package list chosen during a previous installation. Clicking on this icon\n"
-"will ask you to insert a floppy disk previously created at the end of\n"
-"another installation. See the second tip of last step on how to create such\n"
-"a floppy."
-msgstr ""
-
-#: ../../help.pm_.c:164
-msgid ""
-"You are now proposed to set up your Internet/network connection. If you\n"
-"wish to connect your computer to the Internet or to a local network, click\n"
-"\"OK\". The autodetection of network devices and modem will be launched. If\n"
-"this detection fails, uncheck the \"Use auto detection\" box next time. You\n"
-"may also choose not to configure the network, or do it later; in that case,\n"
-"simply click the \"Cancel\" button.\n"
-"\n"
-"Available connections are: traditional modem, ISDN modem, ADSL connection,\n"
-"cable modem, and finally a simple LAN connection (Ethernet).\n"
-"\n"
-"Here, we will not detail each configuration. Simply make sure that you have\n"
-"all the parameters from your Internet Service Provider or system\n"
-"administrator.\n"
-"\n"
-"You can consult the ``User Guide'' chapter about Internet connections for\n"
-"details about the configuration, or simply wait until your system is\n"
-"installed and use the program described there to configure your connection.\n"
-"\n"
-"If you wish to configure the network later after installation, or if you\n"
-"are finished configuring your network connection, click \"Cancel\"."
-msgstr ""
-
-#: ../../help.pm_.c:186
-#, fuzzy
-msgid ""
-"You may now choose which services you wish to start at boot time.\n"
-"\n"
-"Here are presented all the services available with the current\n"
-"installation. Review them carefully and uncheck those which are not always\n"
-"needed at boot time.\n"
-"\n"
-"You can get a short explanatory text about a service by selecting a\n"
-"specific service. However, if you are not sure whether a service is useful\n"
-"or not, 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 will probably not want to start any services which you do not\n"
-"need. Please remember that several services can be dangerous if they are\n"
-"enabled on a server. In general, select only the services you really need.\n"
-"!!"
-msgstr ""
-"Ä°ndi, aƧılıÅda avtomatik olaraq baÅlamasını istÉ™diyiniz xidmÉ™tlÉ™ri \n"
-"seƧə bilÉ™rsiniz. SiƧan bir maddÉ™nin Ć¼zÉ™rina gÉ™ldiyindÉ™ o xidmÉ™tin rolunu "
-"aƧıqlayan\n"
-"kiƧik bir baloncuq ortaya Ƨıxacaqdır.\n"
-"\n"
-"ʸgÉ™r kompĆ¼terinizi bir verici olaraq istifadÉ™ edÉ™cÉ™ksÉ™niz bu addımda tam bir "
-"diqqət ayırmalısınız:\n"
-"mĆ¼htÉ™mÉ™ldir ki lazımi heƧ bir xidmÉ™ti baÅlatmaq istÉ™mÉ™zsiniz."
-
-#: ../../help.pm_.c:203
-msgid ""
-"GNU/Linux manages time in GMT (Greenwich Mean Time) and translates it in\n"
-"local time according to the time zone you selected. It is however possible\n"
-"to deactivate this by deselecting \"Hardware clock set to GMT\" so that the\n"
-"hardware clock is the same as the system clock. This is useful when the\n"
-"machine is hosting another operating system like Windows.\n"
-"\n"
-"The \"Automatic time synchronization\" option will automatically regulate\n"
-"the clock by connecting to a remote time server on the Internet. In the\n"
-"list that is presented, choose a server located near you. Of course you\n"
-"must have a working Internet connection for this feature to work. It will\n"
-"actually install on your machine a time server which can be optionally used\n"
-"by other machines on your local network."
-msgstr ""
-
-#: ../../help.pm_.c:217
-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 Mandrake Linux rely. In this section, DrakX\n"
-"will try to configure X automatically.\n"
-"\n"
-"It is extremely rare for it to fail, unless the hardware is very old (or\n"
-"very new). If it succeeds, it will start X automatically with the best\n"
-"resolution possible, depending on the size of the monitor. A window will\n"
-"then appear and ask you if you can see it.\n"
-"\n"
-"If you are doing an \"Expert\" installation, you will enter the X\n"
-"configuration wizard. See the corresponding section of the manual for more\n"
-"information about this wizard.\n"
-"\n"
-"If you can see the message during the test, and answer \"Yes\", then DrakX\n"
-"will proceed to the next step. If you cannot see the message, it simply\n"
-"means that the configuration was wrong and the test will automatically end\n"
-"after 10 seconds, restoring the screen."
-msgstr ""
-
-#: ../../help.pm_.c:237
-msgid ""
-"The first time you try the X configuration, you may not be very satisfied\n"
-"with its display (screen is too small, shifted left or right...). Hence,\n"
-"even if X starts up correctly, DrakX then asks you if the configuration\n"
-"suits you. It will also propose to change it by displaying a list of valid\n"
-"modes it could find, asking you to select one.\n"
-"\n"
-"As a last resort, if you still cannot get X to work, choose \"Change\n"
-"graphics card\", select \"Unlisted card\", and when prompted on which\n"
-"server, choose \"FBDev\". This is a failsafe option which works with any\n"
-"modern graphics card. Then choose \"Test again\" to be sure."
-msgstr ""
-
-#: ../../help.pm_.c:249
-msgid ""
-"Finally, you will be asked whether you want to see the graphical interface\n"
-"at boot. Note this question will be asked even if you chose not to test the\n"
-"configuration. Obviously, you want to answer \"No\" if your machine is to\n"
-"act as a server, or if you were not successful in getting the display\n"
-"configured."
-msgstr ""
-
-#: ../../help.pm_.c:256
-msgid ""
-"The Mandrake LinuxCD-ROM has a built-in rescue mode. You can access it by\n"
-"booting from the CD-ROM, press the >>F1<< key at boot and type >>rescue<<\n"
-"at the prompt. But in case your computer cannot boot from the CD-ROM, you\n"
-"should come back to this step for help in at least two situations:\n"
-"\n"
-" * when installing the bootloader, DrakX will rewrite the boot sector (MBR)\n"
-"of your main disk (unless you are using another boot manager), to allow you\n"
-"to start up with either Windows or GNU/Linux (assuming you have Windows in\n"
-"your system). If you need to reinstall Windows, the Microsoft install\n"
-"process will rewrite the boot sector, and then you will not be able to\n"
-"start GNU/Linux!\n"
-"\n"
-" * if a problem arises and you cannot start up GNU/Linux from the hard "
-"disk,\n"
-"this floppy disk will be the only means of starting up GNU/Linux. It\n"
-"contains a fair number of system tools for restoring a system, which has\n"
-"crashed due to a power failure, an unfortunate typing error, a typo in a\n"
-"password, or any other reason.\n"
-"\n"
-"When you click on this step, you will be asked to enter a disk inside the\n"
-"drive. The floppy disk you will insert must be empty or contain data which\n"
-"you do not need. You will not have to format it since DrakX will rewrite\n"
-"the whole disk."
-msgstr ""
-
-#: ../../help.pm_.c:280
-#, fuzzy
-msgid ""
-"At this point, you need to choose where you want to install the Mandrake\n"
-"Linux operating system on your hard drive. If your hard drive is empty or\n"
-"if an existing operating system is using all the available space, you will\n"
-"need to partition it. Basically, partitioning a hard drive consists of\n"
-"logically dividing it to create space to install your new Mandrake Linux\n"
-"system.\n"
-"\n"
-"Because the partitioning process' effects are usually irreversible,\n"
-"partitioning can be intimidating and stressful if you are an inexperienced\n"
-"user. Fortunately, there is a wizard which simplifies this process. Before\n"
-"beginning, please consult the manual and take your time.\n"
-"\n"
-"If you are running the installation in Expert mode, you will enter\n"
-"DiskDrake, the Mandrake Linux partitioning tool, which allows you to\n"
-"fine-tune your partitions. See the DiskDrake section in the ``User Guide''.\n"
-"From the installation interface, you can use the wizards as described here\n"
-"by clicking the dialog's \"Wizard\" button.\n"
-"\n"
-"If partitions have already been defined, either from a previous\n"
-"installation or from another partitioning tool, simply select those to\n"
-"install your Linux system.\n"
-"\n"
-"If partitions are not defined, you will need to create them using the\n"
-"wizard. Depending on your hard drive configuration, several options are\n"
-"available:\n"
-"\n"
-" * \"Use free space\": this option will simply lead to an automatic\n"
-"partitioning of your blank drive(s). You will not be prompted further;\n"
-"\n"
-" * \"Use existing partition\": the wizard has detected one or more existing\n"
-"Linux partitions on your hard drive. If you want to use them, choose this\n"
-"option;\n"
-"\n"
-" * \"Use the free space on the Windows; partition\": if MicrosoftWindows is\n"
-"installed on your hard drive and takes all the space available on it, you\n"
-"have to create free space for Linux data. To do so, you can delete your\n"
-"MicrosoftWindows partition and data (see ``Erase entire disk'' or ``Expert\n"
-"mode'' solutions) or resize your MicrosoftWindows partition. Resizing can\n"
-"be performed without the loss of any data, provided you previously\n"
-"defragment the Windows partition. Backing up your data won't hurt either..\n"
-"This solution is recommended if you want to use both Mandrake Linux and\n"
-"MicrosoftWindows on the same computer.\n"
-"\n"
-" Before choosing this option, please understand that after this "
-"procedure,\n"
-"the size of your MicrosoftWindows partition will be smaller than at the\n"
-"present time. You will have less free space under MicrosoftWindows to store\n"
-"your data or to install new software;\n"
-"\n"
-" * \"Erase entire disk\": if you want to delete all data and all partitions\n"
-"present on your hard drive and replace them with your new Mandrake Linux\n"
-"system, choose this option. Be careful with this solution because you will\n"
-"not be able to revert your choice after you confirm;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Remove Windows\": this will simply erase everything on the drive and\n"
-"begin fresh, partitioning everything from scratch. All data on your disk\n"
-"will be lost;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Expert mode\": choose this option if you want to manually partition\n"
-"your hard drive. Be careful it is a powerful but dangerous choice. You can\n"
-"very easily lose all your data. Hence, do not choose this unless you know\n"
-"what you are doing."
-msgstr ""
-"Bu nƶqtÉ™dÉ™ Linuks Mandrakeni 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É™ Linuks Mandrake Ć¼Ć§Ć¼n\n"
-"yer aƧmalısınız. Ona gƶrə də diski bƶlmələndirməlisiniz.\n"
-"BƶlmÉ™lÉ™ndirmÉ™ É™sasÉ™n diskinizdÉ™ mÉ™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.Ona gƶrÉ™ dÉ™\n"
-"bu iÅ Ć§ox gÉ™rgin vÉ™ yorucudur. ʸgÉ™r ƶzĆ¼nĆ¼zÉ™ inanmırsınız isÉ™ bu\n"
-"sehirbaz sizÉ™ yardım edÉ™r. BaÅlamadan É™vvÉ™l xahiÅ edirik É™l kitabƧanıza\n"
-"baxın. VÉ™ bu iÅ Ć¼Ć§Ć¼n bir az vaxt ayırın.\n"
-"\n"
-"\n"
-"SizÉ™ É™n az 2 bƶlmÉ™ lazımdır. Biri sistemin ƶzĆ¼nĆ¼ kĆ¶Ć§Ć¼rmÉ™si Ć¼Ć§Ć¼n\n"
-"DigÉ™ri isÉ™ uydurma yaddaÅ (ya da digÉ™r adı ilÉ™ Swap) Ć¼Ć§Ć¼n.\n"
-"\n"
-"\n"
-"ʸgÉ™r diskiniz onsuz da bƶlĆ¼nmĆ¼Å isÉ™ (É™vvÉ™lki sistemden ya da\n"
-"baÅqa bƶlmÉ™lÉ™ndirmÉ™ vasitÉ™lÉ™ri ilÉ™ hazırlanmıÅ) quruluÅda\n"
-"sadÉ™cÉ™ olaraq o yerlÉ™ri yĆ¼klÉ™mÉ™k Ć¼Ć§Ć¼n seƧin.\n"
-"\n"
-"\n"
-"ʸgÉ™r disk bƶlĆ¼nmÉ™miÅ ise, yuxarıdakı sehirbazdan istifadÉ™ edÉ™ bilÉ™rsiniz.\n"
-"Sisteminizin quruluÅundan asılı olaraq mĆ¼xtÉ™lif imkanlarınız var:\n"
-"\n"
-"* BĆ¼tĆ¼n diski sil: Linuks Mandrake qurmaq Ć¼Ć§Ć¼n bĆ¼tĆ¼n diskinizin\n"
-" Ć¼zÉ™rindÉ™ki bƶlmÉ™lÉ™ri silÉ™r. Burada diqqÉ™tli olun.\n"
-" Sildikləriniz əsla geri gəlməz.\n"
-"\n"
-"\n"
-"* Windows bƶlməsindəki sahəni istifadə et: Sisteminizdə\n"
-" Microsoft Windows qurulu isÉ™ ve bĆ¼tĆ¼n diski É™hatÉ™ edir isÉ™\n"
-" Linuks Mandrake Ć¼Ć§Ć¼n bir yer ayırmalısınız. Bunun Ć¼Ć§Ć¼n\n"
-" ya bĆ¼tĆ¼n diski silmÉ™lisiniz (\"BĆ¼tĆ¼n diski sil\" bax ya da\n"
-" \" Usta modu\" tƶvsiyÉ™lÉ™ri) ya da yenidÉ™n bƶlmÉ™lÉ™ndirmÉ™lisiniz.Bu iÅ heƧ "
-"bir mÉ™'lumat itkisi olmadan da edilÉ™ bilÉ™r.Bunun baÅqa adı\n"
-" eyni kompĆ¼terdÉ™ hÉ™m Linuks Mandrake hÉ™m dÉ™ Windows qurulu olmasıdır.\n"
-"\n"
-"\n"
-"t Bu seƧkiyÉ™ getmÉ™dÉ™n É™vvÉ™l bir Åeyi baÅa dĆ¼ÅmÉ™lisiniz ki, yenidÉ™n "
-"bƶlmələndirmə ilə sizin Windows bƶlməsi kiƧiləcəkdir.\n"
-" Yə'ni Windows altında daha az disk sahəsinə malik olacaqsınız.\n"
-"\n"
-"\n"
-"* Usta modu: ʸgər əllə diski bƶlmək istəsəniz, bu modu seƧin. Diqqətli "
-"olun.\n"
-" Bu mod gĆ¼Ć§lĆ¼dĆ¼r amma bir o qÉ™dÉ™r dÉ™ tÉ™hlĆ¼kÉ™lidir. DiskinizdÉ™ki bĆ¼tĆ¼n "
-"bilgiyi asandlıqla itirə bilərsiniz.\n"
-" TÉ™crĆ¼bÉ™siz isÉ™niz bunu seƧmÉ™yin."
-
-#: ../../help.pm_.c:347
-msgid ""
-"There you are. Installation is now complete and your GNU/Linux system is\n"
-"ready to use. Just click \"OK\" to reboot the system. You can start\n"
-"GNU/Linux or Windows, whichever you prefer (if you are dual-booting), as\n"
-"soon as the computer has booted up again.\n"
-"\n"
-"The \"Advanced\" button (in Expert mode only) shows two more buttons to:\n"
-"\n"
-" * \"generate auto-install floppy\": to create an installation floppy disk\n"
-"which will automatically perform a whole installation without the help of\n"
-"an operator, similar to the installation you just configured.\n"
-"\n"
-" Note that two different options are available after clicking the button:\n"
-"\n"
-" * \"Replay\". This is a partially automated installation as the\n"
-"partitioning step (and only this one) remains interactive;\n"
-"\n"
-" * \"Automated\". Fully automated installation: the hard disk is "
-"completely\n"
-"rewritten, all data is lost.\n"
-"\n"
-" This feature is very handy when installing a great number of similar\n"
-"machines. See the Auto install section on our web site;\n"
-"\n"
-" * \"Save packages selection\"(*): saves the package selection as done\n"
-"previously. Then, when doing another installation, insert the floppy inside\n"
-"the drive and run the installation going to the help screen by pressing on\n"
-"the [F1] key, and by issuing >>linux defcfg=\"floppy\"<<.\n"
-"\n"
-"(*) You need a FAT-formatted floppy (to create one under GNU/Linux, type\n"
-"\"mformat a:\")"
-msgstr ""
-
-#: ../../help.pm_.c:378
-#, fuzzy
-msgid ""
-"Any partitions that have been newly defined must be formatted for use\n"
-"(formatting means creating a filesystem).\n"
-"\n"
-"At this time, you may wish to reformat some already existing partitions to\n"
-"erase any data they contain. If you wish to do that, please select those\n"
-"partitions as well.\n"
-"\n"
-"Please note that it is 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\n"
-"reformat partitions containing data that you wish to keep (typically\n"
-"\"/home\").\n"
-"\n"
-"Please be careful when selecting partitions. After formatting, all data on\n"
-"the selected partitions will be deleted and you will not be able to recover\n"
-"any of it.\n"
-"\n"
-"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"
-"Mandrake Linux operating system installation.\n"
-"\n"
-"Click on \"Advanced\" if you wish to select partitions that will be checked\n"
-"for bad blocks on the disk."
-msgstr ""
-"Yeni yaradılan bĆ¼tĆ¼n bƶlmÉ™lÉ™r ÅÉ™killÉ™ndirilmÉ™lidir\n"
-"(ÅÉ™killÉ™ndirmÉ™k yÉ™ni fayl sistemi yaratmaq - format).\n"
-"\n"
-"\n"
-"Bu arada var olan hazır bƶlmÉ™lÉ™ri dÉ™ Ć¼stĆ¼ndÉ™kilÉ™ri silmÉ™k Ć¼Ć§Ć¼nyenidÉ™n "
-"ÅÉ™killÉ™ndirmÉ™k istÉ™ya\n"
-"bilərsiniz.\n"
-"Bunu istəyirsinizsə bu bƶlmələri də seƧməlisiniz.\n"
-"\n"
-"\n"
-"Bunu aÄlınızda tutun ki var olan bĆ¼tĆ¼n bƶlmÉ™lÉ™ri ÅÉ™killÉ™ndirmÉ™k\n"
-"məcburi deyil.\n"
-"Ä°ÅlÉ™tim sistÉ™mini É™mÉ™lÉ™ gÉ™tirÉ™n bƶlmÉ™lÉ™ri (yÉ™ni\n"
-"\"/\", \"usr\" vÉ™ ya \"var\"ı yenidÉ™n ÅÉ™killÉ™ndirmÉ™k Ć¼Ć§Ć¼n\n"
-"seƧə bilərsiniz. Verilər olan \"home\"u məsələ toxunulmadan\n"
-"buraxa bilərsiniz.\n"
-"\n"
-"\n"
-"DiqqÉ™tli olun. ÅÉ™killÉ™ndirdiyiniz bƶlmÉ™lÉ™rdÉ™ki verilÉ™r\n"
-"geri gəlməz.\n"
-"\n"
-"\n"
-"Å˛É™killÉ™ndirmÉ™yÉ™ hazır isÉ™niz \"Oldu\" dĆ¼ymÉ™sini tıqlayın.\n"
-"\n"
-"\n"
-"Yeni Linuks Mandrake sisteminizi qurmaq Ć¼Ć§Ć¼n baÅqa bƶlmÉ™ seƧmÉ™k\n"
-"istÉ™yirsiniz isÉ™ \"LÉ™Äv et\" dĆ¼ymÉ™sinÉ™ basın."
-
-#: ../../help.pm_.c:404
-#, fuzzy
-msgid ""
-"Your new Mandrake Linux operating system is currently being installed.\n"
-"Depending on the number of packages you will be installing and the speed of\n"
-"your computer, this operation could take from a few minutes to a\n"
-"significant amount of time.\n"
-"\n"
-"Please be patient."
-msgstr ""
-"Təptəzə Linuks Mandrake sisteminizə qurulacaq. Bu da seƧdiyiniz\n"
-"yĆ¼klÉ™mÉ™ bƶyĆ¼klĆ¼yĆ¼nÉ™ vÉ™ sistÉ™minizin qabiliyyÉ™tinÉ™ gƶrÉ™\n"
-"bir neƧə deqiqə alar.\n"
-"\n"
-"\n"
-"XahiŠedirik, səbrli olun."
-
-#: ../../help.pm_.c:412
-msgid ""
-"At the time you are installing Mandrake Linux, it is likely that some\n"
-"packages have been updated since the initial release. Some bugs may have\n"
-"been fixed, and security issues solved. To allow you to benefit from these\n"
-"updates, you are now proposed to download them from the Internet. Choose\n"
-"\"Yes\" if you have a working Internet connection, or \"No\" if you prefer\n"
-"to install updated packages later.\n"
-"\n"
-"Choosing \"Yes\" displays a list of places from which updates can be\n"
-"retrieved. Choose the one nearest you. Then a package-selection tree\n"
-"appears: review the selection, and press \"Install\" to retrieve and\n"
-"install the selected package(s), or \"Cancel\" to abort."
-msgstr ""
-
-#: ../../help.pm_.c:425
-msgid ""
-"Before continuing, you should read carefully the terms of the license. It\n"
-"covers the whole Mandrake Linux 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."
-msgstr ""
-
-#: ../../help.pm_.c:432
-msgid ""
-"At this point, it is time to choose the security level desired for the\n"
-"machine. As a rule of thumb, the more exposed the machine is, and the more\n"
-"the data stored in it is crucial, the higher the security level should be.\n"
-"However, a higher security level is generally obtained at the expense of\n"
-"easiness of use. Refer to the \"msec\" chapter of the ``Reference Manual''\n"
-"to get more information about the meaning of these levels.\n"
-"\n"
-"If you do not know what to choose, keep the default option."
-msgstr ""
-
-#: ../../help.pm_.c:442
-#, fuzzy
-msgid ""
-"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandrake Linux 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"
-"partitions must be defined.\n"
-"\n"
-"To create partitions, you must first select a hard 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"
-"\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"
-"\n"
-" * \"More\": gives access to additional features:\n"
-"\n"
-" * \"Save partition table\": saves the partition table to a floppy. "
-"Useful\n"
-"for later partition-table recovery if necessary. It is strongly recommended\n"
-"to perform this step;\n"
-"\n"
-" * \"Restore partition table\": allows to restore a previously saved\n"
-"partition table from floppy disk;\n"
-"\n"
-" * \"Rescue partition table\": if your partition table is damaged, you "
-"can\n"
-"try to recover it using this option. Please be careful and remember that it\n"
-"can fail;\n"
-"\n"
-" * \"Reload partition table\": discards all changes and loads your "
-"initial\n"
-"partition table;\n"
-"\n"
-" * \"Removable media automounting\": unchecking this option will force "
-"users\n"
-"to manually mount and unmount removable medias such as floppies and\n"
-"CD-ROMs.\n"
-"\n"
-" * \"Wizard\": 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 knowledge of\n"
-"partitioning;\n"
-"\n"
-" * \"Undo\": use this option to cancel your changes;\n"
-"\n"
-" * \"Toggle to normal/expert mode\": allows additional actions on "
-"partitions\n"
-"(type, options, format) and gives more information;\n"
-"\n"
-" * \"Done\": when you are finished partitioning your hard 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"
-"partitions using [Tab] and [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"
-"\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 Linuks Mandrake yĆ¼klÉ™mÉ™k Ć¼Ć§Ć¼n bƶlmÉ™lÉ™ri seƧmÉ™lisiniz. ʸgÉ™r "
-"əvvəldən bƶlmələr var isə (sistemdə əvvəllər qurulu olan GNU/Linuks "
-"bƶlmÉ™lÉ™ri vÉ™ ya baÅqa bƶlmÉ™lÉ™ndirmÉ™ vasitÉ™lÉ™ri ilÉ™ hazırladıÄınız bƶlmÉ™lÉ™r), "
-"onları seƧin və istifadə edin.\n"
-"Yoxsa onları bildirməlisiniz.\n"
-"\n"
-"\n"
-"BƶlmÉ™lÉ™ri yaratmaq Ć¼Ć§Ć¼n É™vvÉ™lci diski seƧmÉ™lisiniz.\n"
-"Diski seƧmÉ™k Ć¼Ć§Ć¼n birinci IDE sĆ¼rĆ¼cĆ¼sĆ¼ Ć¼Ć§Ć¼n \"hda\" nı, ikinciyi seƧmÉ™k Ć¼Ć§Ć¼n "
-"\"hdb\"ni, birinci SCSÄ° sĆ¼rĆ¼cĆ¼sĆ¼ Ć¼Ć§Ć¼n ise \"sda\" vs tıqlamalısınız.\n"
-"\n"
-"\n"
-"SeƧdiyiniz sĆ¼rĆ¼cĆ¼yÉ™ aÅaÄıdakıları etmÉ™yÉ™ qadirsiniz:\n"
-"\n"
-" *Hamısını tÉ™mizlÉ™: seƧili sĆ¼rĆ¼cĆ¼dÉ™ bĆ¼tĆ¼n bƶlmÉ™lÉ™ri silÉ™r.\n"
-"\n"
-"\n"
-" *Avtomatik: SĆ¼rĆ¼cĆ¼nĆ¼zdÉ™ki boÅ sahÉ™dÉ™ Ext2 vÉ™ SwapbƶlmÉ™lÉ™rini avtomatik\n"
-"yaradar.\n"
-"\n"
-"\n"
-" *BƶlmÉ™ cÉ™dvÉ™lini qurtar: ZÉ™dÉ™lÉ™nmiÅ bƶlmÉ™ cÉ™dvÉ™linibÉ™rpa edÉ™r. XahiÅ "
-"edirik\n"
-" diqqÉ™tli olun, Ć§Ć¼nkĆ¼ bu da iflas edÉ™ bilÉ™r.\n"
-"\n"
-"\n"
-" *Gəri dƶn: İstəmədiyiniz seƧkilərinizdən geri dƶndərər.\n"
-"\n"
-"\n"
-" *YenidÉ™n yĆ¼klÉ™: BĆ¼tĆ¼n dÉ™yiÅikliklÉ™rinizdÉ™n geri dƶnÉ™rbaÅdakı bƶlmÉ™ "
-"cədvəlinə gələr.\n"
-"\n"
-"\n"
-" *Sehirbaz: BƶlmÉ™lÉ™ndirmÉ™yi bir sehirbaz edÉ™r. TÉ™crĆ¼bÉ™sizisÉ™niz bunu "
-"seƧin.\n"
-"\n"
-"\n"
-" *Floppy-dən bərpa et: Bƶlmə cədvəlini əvvəllər flopy-yə qeydetdiniz isə, "
-"bƶlmə cədvəlini bərpa edin.\n"
-"\n"
-"\n"
-" *Floppy-yÉ™ qeyd et: Daha sonradan bÉ™rpa etmek Ć¼Ć§Ć¼nbilgilÉ™ri floppy-yÉ™ qeyd "
-"edin.\n"
-" Bu seƧki ÅiddÉ™tlÉ™ tƶvsiyÉ™ edilir.\n"
-"\n"
-"\n"
-" *Oldu: BƶlmÉ™lÉ™ndirmÉ™ bitdiyindÉ™, bunu seƧərÉ™kdÉ™yiÅikliklÉ™rinizi qeyd "
-"edin.\n"
-"\n"
-"\n"
-"XÉ™bÉ™riniz olsun, istÉ™nilÉ™n seƧkiyÉ™ Tab ve AÅaÄı/Yuxarı oxlarını da iÅlÉ™dÉ™rÉ™k "
-"klaviaturadan idarə edə bilərsiniz.\n"
-"\n"
-"\n"
-"BƶlmÉ™ seƧildiyi zaman bunları iÅlÉ™dÉ™ bilÉ™rsiniz:\n"
-"\n"
-" *Ctrl-c yeni bƶlmÉ™ yaratmaq Ć¼Ć§Ć¼n (boÅ bƶlmÉ™ seƧili olduÄu zaman)\n"
-"\n"
-" *Ctrl-d bƶlmÉ™ni lÉ™Äv etmÉ™k Ć¼Ć§Ć¼n\n"
-"\n"
-" *Ctrl-m baÄlama nƶqtÉ™sini gƶstÉ™rmÉ™k Ć¼Ć§Ć¼n\n"
-"\n"
-"\n"
-"\n"
-"ʸgÉ™r PPC kompĆ¼terdÉ™ qurulum aparırsınızsa, É™n az 1 MBlıq balaca bir HFC "
-"'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 "
-"É™ksini tÉ™cili aƧılıŠhalları Ć¼Ć§Ć¼n saxlaya bilÉ™rsiniz."
-
-#: ../../help.pm_.c:513
-#, fuzzy
-msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
-"Please choose the one you want to resize in order to install your new\n"
-"Mandrake Linux 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"
-"\"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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard 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"
-"disk or partition is called \"C:\")."
-msgstr ""
-"SĆ¼rĆ¼cĆ¼nĆ¼zdÉ™ bir vÉ™ ya daha Ƨox Windows bƶlmÉ™si tapıldı.\n"
-"XahiÅ edirik Linuks Mandrakeni qurmaq Ć¼Ć§Ć¼n onlardan birini "
-"yenidÉ™nƶlĆ§Ć¼lÉ™ndirmÉ™k Ć¼zÉ™rÉ™ seƧin.\n"
-"\n"
-"\n"
-"XÉ™bÉ™riniz olsun, her bƶlmÉ™ bu cĆ¼r sıralanıb; \"Linuks adı\",\"Windows\n"
-"adı\"\"Həcm\".\n"
-"\n"
-"\"Linuks adı\" bu cĆ¼r kodlanıb: \"sĆ¼rĆ¼cĆ¼ nƶvĆ¼\", \"sĆ¼rĆ¼cĆ¼ nƶmrÉ™si\",\"bƶlmÉ™ "
-"nƶmrəsi\" (məsələn, \"hda\").\n"
-"\n"
-"\n"
-"\"SĆ¼rĆ¼cĆ¼ nƶvĆ¼\" sĆ¼rĆ¼cĆ¼nĆ¼z IDE sĆ¼rĆ¼cĆ¼ isÉ™ \"hd\"dirSCSI sĆ¼rĆ¼cĆ¼ isÉ™\n"
-"\"sd\"dir.\n"
-"\n"
-"\n"
-"\"SĆ¼rĆ¼cĆ¼ nƶmrÉ™si\" hÉ™miÅÉ™ \"hd\" vÉ™ ya \"sd\"dÉ™n sonrakı rÉ™qÉ™mdir.IDE "
-"sĆ¼rĆ¼cĆ¼lÉ™r Ć¼Ć§Ć¼n:\n"
-"\n"
-"*\"a\" yÉ™ni \"birinci IDE idarÉ™cisindÉ™ ali sĆ¼rĆ¼cĆ¼\",\n"
-"\n"
-"*\"b\" yÉ™ni \"birinci IDE idarÉ™cisindÉ™ kƶlÉ™ sĆ¼rĆ¼cĆ¼\",\n"
-"\n"
-"*\"c\" yÉ™ni \"ikinci IDE idarÉ™cisindÉ™ ali sĆ¼rĆ¼cĆ¼\",\n"
-"\n"
-"*\"d\" yÉ™ni \"ikinci IDE idarÉ™cisindÉ™ kƶlÉ™ sĆ¼rĆ¼cĆ¼\".\n"
-"\n"
-"\n"
-"SCSI sĆ¼rĆ¼cĆ¼lÉ™rindÉ™ \"a\" nın mÉ™nası \"birinci sĆ¼rĆ¼cĆ¼\",\n"
-"\"b\"nin mÉ™nası \"ikinci sĆ¼rĆ¼cĆ¼\"dĆ¼r vs..."
-
-#: ../../help.pm_.c:544
-msgid "Please be patient. This operation can take several minutes."
-msgstr "SÉ™brli olun. Bu É™mÉ™liyyat bir neƧə deqiqÉ™ sĆ¼rÉ™ bilÉ™r."
-
-#: ../../help.pm_.c:547
-#, fuzzy
-msgid ""
-"DrakX now needs to know if you want to perform a default (\"Recommended\")\n"
-"installation or if you want to have greater control (\"Expert\"). You can\n"
-"also choose to do a new install or an upgrade of an existing Mandrake Linux\n"
-"system:\n"
-"\n"
-" * \"Install\": completely wipes out the old system. In fact, depending on\n"
-"what currently holds your machine, you will be able to keep some old (Linux\n"
-"or other) partitions unchanged;\n"
-"\n"
-" * \"Upgrade\": this installation class allows to simply update the "
-"packages\n"
-"currently installed on your Mandrake Linux system. It keeps the current\n"
-"partitions of your hard drives as well as user configurations. All other\n"
-"configuration steps remain available with respect to plain installation;\n"
-"\n"
-" * \"Upgrade Packages Only\": this brand new class allows to upgrade an\n"
-"existing Mandrake Linux system while keeping all system configurations\n"
-"unchanged. Adding new packages to the current installation is also\n"
-"possible.\n"
-"\n"
-"Upgrades should work fine for Mandrake Linux systems starting from \"8.1\"\n"
-"release.\n"
-"\n"
-"Depending on your knowledge of GNU/Linux, select one of the following\n"
-"choices:\n"
-"\n"
-" * Recommended: choose this if you have never installed a GNU/Linux\n"
-"operating system. The installation will be very easy and you will only be\n"
-"asked a few questions;\n"
-"\n"
-" * Expert: if you have a good knowledge of GNU/Linux, you can choose this\n"
-"installation class. The expert installation will allow you to perform a\n"
-"highly-customized installation. Answering some of the questions can be\n"
-"difficult if you do not have a good knowledge of GNU/Linux, so do not\n"
-"choose this unless you know what you are doing."
-msgstr ""
-"XahiÅ edirik Linuks Mandrakenin daha É™vvÉ™lki buraxılıÅları qurulu deyilsÉ™ vÉ™ "
-"ya mĆ¼xtÉ™lif É™mÉ™liyyat sistemlÉ™rindÉ™n istifadÉ™ etmÉ™k istÉ™yirsinizsÉ™ \"YĆ¼klÉ™\" "
-"seƧin.\n"
-"\n"
-"\n"
-"XahiÅ edirik qurulu olan Linuks Mandrakenin É™vvÉ™lki buraxılıÅını gĆ¼ncÉ™llÉ™mÉ™k "
-"istÉ™yirsinizsÉ™ \"GĆ¼ncÉ™llÉ™\" seƧin.\n"
-"\n"
-"\n"
-"Sizin GNU/Linuks biliyinizdÉ™n asılı olaraq yĆ¼klÉ™mÉ™k vÉ™ ya gĆ¼ncÉ™llÉ™mÉ™k Ć¼Ć§Ć¼n "
-"Linuks Mandrakenin aÅaÄıdakı sÉ™viyyÉ™lÉ™rini seƧə bilÉ™rsiniz:\n"
-"\n"
-"* TƶvsiyÉ™ edilÉ™n: ʸgÉ™r É™vvÉ™lcÉ™ heƧ GNU/Linuks ilÉ™ tanıŠolmadınız isÉ™ seƧin. "
-"YĆ¼klÉ™mÉ™ Ƨox asand olacaq vÉ™ Ƨox az sual soruÅulacaq.\n"
-"\n"
-"\n"
-"* XĆ¼susi: ʸgÉ™ É™vvÉ™lcÉ™ GNU/Linuksa bir az aÅina isÉ™niz, seƧin. Onda siz "
-"istÉ™diyiniz sistem nƶvĆ¼nĆ¼ (Masa Ć¼stĆ¼, Verici, TÉ™crĆ¼bi) seƧə bilÉ™cÉ™ksiniz.\n"
-" ʸlbÉ™tdÉ™ sizÉ™ \"TƶvsiyÉ™ edilÉ™n\" seƧkidÉ™n daha Ƨox sual soruÅulacaq.\n"
-" Ona gƶrÉ™ dÉ™ GNU/Linuksa bir az aÅina olmalısınız.\n"
-"\n"
-"\n"
-"* Usta: ʸgÉ™r yaxÅı bir GNU/Linuks biliyinÉ™ sahibsÉ™niz, bu sinifi seƧin.\n"
-" \"XĆ¼susi\" sinifindÉ™ki kimi iÅlÉ™dÉ™cÉ™yiniz sistemi (Masa Ć¼stĆ¼, Verici, "
-"TÉ™crĆ¼bi)\n"
-" seƧə biləcəksiniz. Amma sizi Ƨox Ƨətin suallar gƶzləyir. Bəzən bu sualların "
-"iƧindən\n"
-" Ƨıxa bilmək Ƨox zəhmətli olur. Ona gƶrə də nə etdiyinizi bilirsəniz, bu "
-"sinifi seƧin."
-
-#: ../../help.pm_.c:583
-msgid ""
-"Normally, DrakX selects the right keyboard for you (depending on the\n"
-"language you have chosen) and you won't even see this step. However, you\n"
-"might not have a keyboard that corresponds exactly to your language: for\n"
-"example, if you are an English speaking Swiss person, you may still want\n"
-"your keyboard to be a Swiss keyboard. Or if you speak English but are\n"
-"located in Quebec, you may find yourself in the same situation. In both\n"
-"cases, you will have to go back to this installation step and select an\n"
-"appropriate keyboard from the list.\n"
-"\n"
-"Click on the \"More\" button to be presented with the complete list of\n"
-"supported keyboards."
-msgstr ""
-
-#: ../../help.pm_.c:596
-msgid ""
-"Please choose your preferred language for installation and system usage.\n"
-"\n"
-"Clicking on the \"Advanced\" button will allow you to select other\n"
-"languages to be installed on your workstation. Selecting other languages\n"
-"will install the language-specific files for system documentation and\n"
-"applications. For example, if you will host users from Spain on your\n"
-"machine, select English as the main language in the tree view and in the\n"
-"Advanced section click on the box corresponding to \"Spanish|Spain\".\n"
-"\n"
-"Note that multiple languages may be installed. Once you have selected any\n"
-"additional locales, click the \"OK\" button to continue."
-msgstr ""
-
-#: ../../help.pm_.c:609
-msgid ""
-"DrakX generally detects the number of buttons your mouse has. If not, it\n"
-"assumes you have a two-button mouse and will set it up for third-button\n"
-"emulation. DrakX will automatically know whether it is a PS/2, serial or\n"
-"USB mouse.\n"
-"\n"
-"If you wish to specify a different type of mouse select the appropriate\n"
-"type from the provided list.\n"
-"\n"
-"If you choose a mouse other than the default, a test screen will be\n"
-"displayed. Use the buttons and wheel to verify that the settings are\n"
-"correct. If the mouse is not working well, press the space bar or [Return]\n"
-"to \"Cancel\" and choose again."
-msgstr ""
-
-#: ../../help.pm_.c:623
-#, fuzzy
-msgid ""
-"Please select the correct port. For example, the \"COM1\" port under\n"
-"Windows is named \"ttyS0\" under GNU/Linux."
-msgstr ""
-"XahiÅ edirik doÄru qapını seƧin. MÉ™sÉ™lÉ™n, MS Windowsdakı COM1'in qarÅılıÄı\n"
-"Linuksda ttyS0'dır."
-
-#: ../../help.pm_.c:627
-msgid ""
-"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 choose\n"
-"not to enter a password, but we strongly advise you against this if only\n"
-"for one reason: do not think that because you booted GNU/Linux that your\n"
-"other operating systems are safe from mistakes. Since \"root\" can overcome\n"
-"all limitations and unintentionally erase all data on partitions by\n"
-"carelessly accessing the partitions themselves, it is important for it to\n"
-"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."
-msgstr ""
-
-#: ../../help.pm_.c:663
-msgid ""
-"LILO and grub are GNU/Linux bootloaders. This stage, normally, is totally\n"
-"automated. In fact, DrakX analyzes the disk boot sector and acts\n"
-"accordingly, depending on what it finds here:\n"
-"\n"
-" * if a Windows boot sector is found, it will replace it with a grub/LILO\n"
-"boot sector. Hence, you will be able to load either GNU/Linux or another\n"
-"OS;\n"
-"\n"
-" * if a grub or LILO boot sector is found, it will replace it with a new\n"
-"one.\n"
-"\n"
-"If in doubt, DrakX will display a dialog with various options.\n"
-"\n"
-" * \"Bootloader to use\": you have three choices:\n"
-"\n"
-" * \"GRUB\": if you prefer grub (text menu).\n"
-"\n"
-" * \"LILO with graphical menu\": if you prefer LILO with its graphical\n"
-"interface.\n"
-"\n"
-" * \"LILO with text menu\": if you prefer LILO with its text menu "
-"interface.\n"
-"\n"
-" * \"Boot device\": in most cases, you will not change the default\n"
-"(\"/dev/hda\"), but if you prefer, the bootloader can be installed on the\n"
-"second hard drive (\"/dev/hdb\"), or even on a floppy disk (\"/dev/fd0\");\n"
-"\n"
-" * \"Delay before booting the default image\": when rebooting the computer,\n"
-"this is the delay granted to the user to choose in the bootloader menu,\n"
-"another boot entry than the default one.\n"
-"\n"
-"!! Beware that if you choose not to install a bootloader (by selecting\n"
-"\"Cancel\" here), you must ensure that you have a way to boot your Mandrake\n"
-"Linux system! Also, be sure you know what you do before changing any of the\n"
-"options. !!\n"
-"\n"
-"Clicking the \"Advanced\" button in this dialog will offer many advanced\n"
-"options, which are reserved to the expert user.\n"
-"\n"
-"After you have configured the general bootloader parameters, the list of\n"
-"boot options which will be available at boot time will be displayed.\n"
-"\n"
-"If there is another operating system installed on your machine, it will\n"
-"automatically be added to the boot menu. Here, you can choose to fine-tune\n"
-"the existing options. Select an entry and click \"Modify\" to modify or\n"
-"remove it; \"Add\" creates a new entry; and \"Done\" goes on to the next\n"
-"installation step."
-msgstr ""
-
-#: ../../help.pm_.c:711
-#, fuzzy
-msgid ""
-"LILO (the LInux LOader) and grub are bootloaders: they are able to boot\n"
-"either GNU/Linux or any other operating system present on your computer.\n"
-"Normally, these other operating systems are correctly detected and\n"
-"installed. If this is not the case, you can add an entry by hand in this\n"
-"screen. Be careful to choose the correct parameters.\n"
-"\n"
-"You may also not want to give access to these other operating systems to\n"
-"anyone. In which case, you can delete the corresponding entries. But then,\n"
-"you will need a boot disk in order to boot those other operating systems!"
-msgstr ""
-"LILO (Linuks YĆ¼klÉ™yici) vÉ™ Grub aƧılıŠsistem yĆ¼klÉ™yicilÉ™ridir: sistemi "
-"Linuks\n"
-"ya da kompĆ¼terinizdÉ™ olan baÅqa bir É™mÉ™liyyatiyle aƧa bilÉ™rlÉ™r.\n"
-"ʸsasÉ™n bu digÉ™r É™mÉ™liyyat sistemlÉ™ri doÄru bir ÅÉ™kilde tÉ™sbit edilib "
-"aƧılıÅa\n"
-"qurula bilərlər. ʸgər bir problem olarsa, buradan əllə əlavə edilə "
-"bilərlər.\n"
-"Parametrlər mƶvzusunda diqqətli olun."
-
-#: ../../help.pm_.c:722
-msgid ""
-"You must indicate where you wish to place the information required to boot\n"
-"to GNU/Linux.\n"
-"\n"
-"Unless you know exactly what you are doing, choose \"First sector of drive\n"
-"(MBR)\"."
-msgstr ""
-"Linuksu aƧmaq Ć¼Ć§Ć¼n lazımi bilgilÉ™rin harada saxlanılacaÄına qÉ™rar verin.\n"
-"\n"
-"Nə etdiyinizi bilmirsinizsə, \"Diskin ilk sektoru (MBR)\" seƧin."
-
-#: ../../help.pm_.c:729
-msgid ""
-"Here, we select a printing system for your computer. Other OSs may offer\n"
-"you one, but Mandrake Linux offers three.\n"
-"\n"
-" * \"pdq\" which means ``print, don't queue'', is the choice if you have a\n"
-"direct connection to your printer and you want to be able to panic out of\n"
-"printer jams, and you do not have networked printers. It will handle only\n"
-"very simple network cases and is somewhat slow for networks. Pick \"pdq\"\n"
-"if this is your maiden voyage to GNU/Linux. You can change your choices\n"
-"after installation by running PrinterDrake from the Mandrake Control Center\n"
-"and clicking the expert button.\n"
-"\n"
-" * \"CUPS\"``Common Unix Printing System'', is excellent at printing to "
-"your\n"
-"local printer and also halfway-around the planet. It is simple and can act\n"
-"as a server or a client for the ancient \"lpd\" printing system. Hence, it\n"
-"is compatible with the systems that went before. It can do many tricks, but\n"
-"the basic setup is almost as easy as \"pdq\". If you need this to emulate\n"
-"an \"lpd\" server, you must turn on the \"cups-lpd\" daemon. It has\n"
-"graphical front-ends for printing or choosing printer options.\n"
-"\n"
-" * \"lprNG\"``line printer daemon New Generation''. This system can do\n"
-"approximately the same things the others can do, but it will print to\n"
-"printers mounted on a Novell Network, because it supports the IPX protocol,\n"
-"and it can print directly to shell commands. If you have need of Novell or\n"
-"printing to commands without using a separate pipe construct, use lprNG.\n"
-"Otherwise, CUPS is preferable as it is simpler and better at working over\n"
-"networks."
-msgstr ""
-
-#: ../../help.pm_.c:757
-#, fuzzy
-msgid ""
-"DrakX now detects any IDE device present in your computer. It will also\n"
-"scan for one or more PCI SCSI card(s) on your system. If a SCSI card is\n"
-"found, DrakX will automatically install the appropriate driver.\n"
-"\n"
-"Because hardware detection does not always detect a piece of hardware,\n"
-"DrakX will ask you to confirm if a PCI SCSI card is present. Click \"Yes\"\n"
-"if you know that there is a SCSI card installed in your machine. You will\n"
-"be presented a list of SCSI cards to choose from. Click \"No\" if you have\n"
-"no SCSI hardware. If you are unsure, you can check the list of hardware\n"
-"detected in your machine by selecting \"See hardware info\" and clicking\n"
-"\"OK\". Examine the list of hardware and then click on the \"OK\" button to\n"
-"return to the SCSI interface question.\n"
-"\n"
-"If you have to manually specify your adapter, DrakX will ask if you want to\n"
-"specify options for it. You should allow DrakX to probe the hardware for\n"
-"the card-specific options which the hardware needs to initialize. This\n"
-"usually works well.\n"
-"\n"
-"If DrakX is not able to probe for the options which need to be passed, you\n"
-"will need to provide options to the driver manually. Please review the\n"
-"``User Guide'' (chapter 3, in the ``Collecting Information on Your\n"
-"Hardware'' section) for hints on retrieving the parameters required from\n"
-"hardware documentation, from the manufacturer's web site (if you have\n"
-"Internet access) or from MicrosoftWindows (if you used this hardware with\n"
-"Windows on your system)."
-msgstr ""
-"DrakX PCI SCSI adapterleri axtarmaÄa cÉ™hd edÉ™cÉ™k. ʸgÉ™ DrakX SCSI\n"
-"taparsa vÉ™ hansı sĆ¼rĆ¼cĆ¼ iÅlÉ™dilÉ™cÉ™yini bilÉ™rsÉ™, her Åey ƶz ƶzĆ¼nÉ™\n"
-"qurulacaq.\n"
-"\n"
-"\n"
-"ʸgÉ™r sisteminizdÉ™ SCSI adapteri yoxsa, DrakXin tanımayacaÄı bir\n"
-"ISA SCSI vÉ™ ya PCI SCSI adapteri var isÉ™, sizÉ™ sisteminizdÉ™ SCSI\n"
-"adapteri olub olmadıÄı soruÅulacaq.\n"
-"ʸgər SCSI adapteriniz yox isə, \"Yox\" tıqlayın. ʸgər \"Var\"ı "
-"tıqlayarsanız.\n"
-"qarÅınıza sĆ¼rĆ¼cĆ¼lÉ™in siyahısı Ƨıxacaq, oradan sizÉ™ uyanını seƧərsiniz.\n"
-"\n"
-"\n"
-"ʸgÉ™r É™llÉ™ qurmaÄı səƧərsÉ™niz, o zaman DrakX sizÉ™ adapterin xĆ¼susiyyÉ™tlÉ™rini\n"
-"soruÅacaq. Ä°mkan verin ki, DrakX sÉ™rbÉ™stcÉ™ ƶzĆ¼ xĆ¼susiyyÉ™tlÉ™ri tapsın.\n"
-"Ƈoxunda bu iÅÉ™ yarayır.\n"
-"\n"
-"\n"
-"ʸgÉ™r istÉ™mirsÉ™niz isÉ™, o zaman adapter Ć¼Ć§Ć¼n xĆ¼susiyyÉ™tlÉ™ri ƶzĆ¼nĆ¼z\n"
-"gƶstÉ™rmÉ™lisiniz. Bunun Ć¼Ć§Ć¼n Ä°stifadəƧinin ʸl KitabƧasına\n"
-"(baÅlıq 3, \"AvadanlıÄınız Ć¼Ć§Ć¼n kollektiv mÉ™'lumat) bƶlmÉ™sinÉ™\n"
-"baxın. Ya da avadanlıÄınızın É™l kitabƧasından vÉ™ ya\n"
-"veb sÉ™hifÉ™sindÉ™n (ʸgÉ™r internetÉ™ ƧıxıÅınız var isÉ™)\n"
-"ya da Microsoft Windowsdan (ʸgər sisteminizdə qurulu isə)\n"
-"mə'lumat alın."
-
-#: ../../help.pm_.c:784
-#, fuzzy
-msgid ""
-"You can add additional entries for yaboot, either for other operating\n"
-"systems, alternate kernels, or for an emergency boot image.\n"
-"\n"
-"For other OSs, the entry consists only of a label and the \"root\"\n"
-"partition.\n"
-"\n"
-"For Linux, there are a few possible options:\n"
-"\n"
-" * Label: this is simply the name you will have to type at the yaboot "
-"prompt\n"
-"to select this boot option;\n"
-"\n"
-" * Image: this would be the name of the kernel to boot. Typically, vmlinux\n"
-"or a variation of vmlinux with an extension;\n"
-"\n"
-" * Root: the \"root\" device or ``/'' for your Linux installation;\n"
-"\n"
-" * Append: on Apple hardware, the kernel append option is used quite often\n"
-"to assist in initializing video hardware, or to enable keyboard mouse\n"
-"button emulation for the often lacking 2nd and 3rd mouse buttons on a stock\n"
-"Apple mouse. The following are some examples:\n"
-"\n"
-" video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111 "
-"hda=autotune\n"
-"\n"
-" video=atyfb:vmode:12,cmode:24 adb_buttons=103,111\n"
-"\n"
-" * Initrd: this option can be used either to load initial modules, before\n"
-"the boot device is available, or to load a ramdisk image for an emergency\n"
-"boot situation;\n"
-"\n"
-" * Initrd-size: the default ramdisk size is generally 4,096 bytes. If you\n"
-"need to allocate a large ramdisk, this option can be used;\n"
-"\n"
-" * Read-write: normally the \"root\" partition is initially brought up in\n"
-"read-only, to allow a file system check before the system becomes ``live''.\n"
-"Here, you can override this option;\n"
-"\n"
-" * NoVideo: should the Apple video hardware prove to be exceptionally\n"
-"problematic, you can select this option to boot in ``novideo'' mode, with\n"
-"native frame buffer support;\n"
-"\n"
-" * Default: selects this entry as being the default Linux selection,\n"
-"selectable by just pressing ENTER at the yaboot prompt. This entry will\n"
-"also be highlighted with a ``*'', if you press [Tab] to see the boot\n"
-"selections."
-msgstr ""
-"Burada yaboot Ć¼Ć§Ć¼n hÉ™m baÅqa É™mÉ™liyyat sistemlÉ™ri, hÉ™m alternativ "
-"kernellər,\n"
-" ya da tÉ™cili yardım aƧılıŠəkslÉ™ri É™lavÉ™ edÉ™ bilÉ™rsiniz.\n"
-"\n"
-"\n"
-"BaÅqa OSlÉ™r Ć¼Ć§Ć¼n giriÅin mÉ™nası ad vÉ™ kƶk ƧıÄırından ibarÉ™tdir.\n"
-"\n"
-"\n"
-"Linuks Ć¼Ć§Ć¼n mĆ¼htÉ™mÉ™l giriÅlÉ™r bunlar ola bilÉ™r: \n"
-"\n"
-"\n"
-" - Ad: Bu sadÉ™cÉ™ olaraq yaboot Ć¼Ć§Ć¼n aƧılacaq sistemi timsal edÉ™n bir "
-"addır.\n"
-"\n"
-"\n"
-" - ʸks: Bu isə aƧılacaq Ƨəkirdəyin, yə'ni kernelin adıdır. Ƈox vaxt bu "
-"vmlinux vÉ™ ya\n"
-"bunun variasiyalarıdır.\n"
-"\n"
-"\n"
-" - Kƶk: Linuks qurulumunun kƶk avadanlıÄı vÉ™ ya '/'.\n"
-"\n"
-"\n"
-" \n"
-" - ʸlavə: Apple avadanlıqlarında kernel əlavə seƧənəkləri ilə sıxlıqla "
-"baÅlanÄıc\n"
-"video avadanlıÄı vÉ™ ya sıx sıx xÉ™ta verÉ™n 2ci vÉ™ 3cĆ¼ siƧan dĆ¼ymÉ™lÉ™ri Ć¼Ć§Ć¼n "
-"emulyasiya\n"
-"imkanları tanına bilir. Məsələn bunlar \n"
-"bir neƧə nĆ¼munÉ™dir:\n"
-"\n"
-"\n"
-"\t video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111 "
-"hda=autotune\n"
-"\n"
-"\t video=atyfb:vmode:12,cmode:24 adb_buttons=103,111 \n"
-"\n"
-"\n"
-" \n"
-" - Initrd: AƧılıŠavadanlıÄından É™vvÉ™l bÉ™'zi aƧılıŠmodullarını seƧmÉ™k\n"
-"Ć¼Ć§Ć¼n iÅlÉ™dilir, ya da tÉ™cili yardım aƧılıÅlarında ramdisk É™ksini yĆ¼klÉ™mÉ™k "
-"imkanı verir.\n"
-"\n"
-"\n"
-" - Initrd-size: Ana ramdisk bƶyĆ¼klĆ¼yĆ¼ Ć¼mumiyyÉ™tlÉ™ 4096 baytdır. ʸgÉ™r daha "
-"geniÅ ramdisk bildirÉ™\n"
-"bilÉ™rsiniz isÉ™ bu seƧənÉ™yi iÅlÉ™din.\n"
-"\n"
-"\n"
-" - Oxuma-yazma: Normalda sistemin 'dirilməsindən' əvvəl bə'zi sınaqların "
-"aparıla bilmÉ™si Ć¼Ć§Ć¼n\n"
-"'root' fayl sistemi bu moda soxulur. Bu seƧənəyi nəzərə almayabilərsiniz.\n"
-"\n"
-"\n"
-" - NoVideo: BÉ™lkÉ™ Apple video avadanlıÄı problem Ƨıxarda bilÉ™r.Onda bu "
-"seƧənəklə\n"
-"sistemi 'novideo' modda təbii framebuffer dəstəyi ilə aƧa bilərsiniz.\n"
-"\n"
-"\n"
-" - ʸsas: Bu seƧənəklə Linuks sistemi əsas əməliyyat sistemi halına gətirə "
-"bilərsiniz.\n"
-"Onda ENTER dĆ¼ymÉ™sinÉ™ basmaqla Linuks sistemi aƧılacaqdır. Bu giriÅ ayrıca "
-"TAB ilÉ™ aƧılıŠseƧkilÉ™rinÉ™ baxdıÄınız vaxt \n"
-"'*' iÅarÉ™tilÉ™ iÅıqlandırılacaqdır."
-
-#: ../../help.pm_.c:830
-#, fuzzy
-msgid ""
-"Yaboot is a bootloader for NewWorld MacIntosh hardware. It is able to boot\n"
-"either GNU/Linux, MacOS or MacOSX if present on your computer. Normally,\n"
-"these other operating systems are correctly detected and installed. If this\n"
-"is not the case, you can add an entry by hand in this screen. Be careful to\n"
-"choose the correct parameters.\n"
-"\n"
-"Yaboot's main options are:\n"
-"\n"
-" * Init Message: a simple text message displayed before the boot prompt;\n"
-"\n"
-" * Boot Device: indicates where you want to place the information required\n"
-"to boot to GNU/Linux. Generally, you set up a bootstrap partition earlier\n"
-"to hold this information;\n"
-"\n"
-" * Open Firmware Delay: unlike LILO, there are two delays available with\n"
-"yaboot. The first delay is measured in seconds and at this point, you can\n"
-"choose between CD, OF boot, MacOS or Linux;\n"
-"\n"
-" * Kernel Boot Timeout: this timeout is similar to the LILO boot delay.\n"
-"After selecting Linux, you will have this delay in 0.1 second before your\n"
-"default kernel description is selected;\n"
-"\n"
-" * Enable CD Boot?: checking this option allows you to choose ``C'' for CD\n"
-"at the first boot prompt;\n"
-"\n"
-" * Enable OF Boot?: checking this option allows you to choose ``N'' for "
-"Open\n"
-"Firmware at the first boot prompt;\n"
-"\n"
-" * Default OS: you can select which OS will boot by default when the Open\n"
-"Firmware Delay expires."
-msgstr ""
-"Yaboot NewWorld MacIntosh avadalıÄı Ć¼Ć§Ć¼n aƧılıŠidarÉ™cisidir. Ayrıca\n"
-"GNU/Linuks, MacOS, vÉ™ ya MacOSX sistemlÉ™rini kompĆ¼terinizdÉ™ varsa, "
-"aƧacaqdır.\n"
-"Normalda, bu É™mÉ™liyyat sistemlÉ™ri dĆ¼zgĆ¼n tapılıb qurula bilirlÉ™r\n"
-"ʸgÉ™r belÉ™ olmazsa, bu ekrandan É™llÉ™ lazımi qurÄuları girÉ™ bilÉ™rsiniz.\n"
-"DĆ¼zgĆ¼n parametrlÉ™ri girib girmÉ™diyinizi yaxÅıca bir yoxlayın.\n"
-"\n"
-"\n"
-"Yaboot ana seƧənəkləri:\n"
-"\n"
-"\n"
-" - BaÅlanÄıc Ä°smarıcı: AƧılıÅdan É™vvÉ™l Ƨıxan sadÉ™ bir ismarıc.\n"
-"\n"
-"\n"
-" - AƧılıŠAvadanlıÄı: GNU/Linuksu hardan baÅlatmaq istÉ™diyinizi bildirir."
-"ĆmumiyyÉ™tlÉ™ bu mÉ™'lumatı daha É™vvÉ™l \"bootstrap\" quraÅdırılması "
-"sırasındabildirmiŠolacaqsınız.\n"
-"\n"
-"\n"
-" - AƧıq Firmware Gecikməsi: LILOdan fərqli olaraq, yabootda iki dənə "
-"gecikmə vardır\n"
-"Birinci gecikmÉ™ saniyÉ™lÉ™rlÉ™ ƶlĆ§Ć¼lĆ¼r vÉ™ bu arada siz\n"
-"CD, OF aƧılıÅı, MacOS vÉ™ ya Linuks arasında seƧki aparmalısınız.\n"
-"\n"
-"\n"
-" - Kernel AƧılıŠVaxt Dolması: Bu vaxt dolması LILO aƧılıŠgecikmÉ™sinÉ™ "
-"uyÄun gÉ™lir. Linuksu\n"
-"seƧdikdən sonra ana kernel parametri olaraq bu gecikmə 0.1 saniyə olaraq "
-"qurulu olacaqdır.\n"
-"\n"
-"\n"
-" - CD AƧılıÅı FÉ™allaÅsınmı?: Bu seƧənÉ™klÉ™ CDdÉ™n aƧılıÅı timsal edÉ™n 'C' "
-"xarakteri ilk aƧılıÅda Ƨıxacaqdır.\n"
-"\n"
-"\n"
-" - OF AƧılıÅı FÉ™allaÅsın?: Bu seƧənÉ™klÉ™ OFdÉ™n (Open Firmware) aƧılıÅını "
-"timsal edən 'N' xarakteri\n"
-"ilk aƧılıÅda Ƨıxacaqdır.\n"
-"\n"
-"\n"
-" - Ana OS: OF gecikmÉ™si mĆ¼ddÉ™ti dolduÄu vaxt hansı OSnin aƧılacaÄını "
-"gƶstərir."
-
-#: ../../help.pm_.c:862
-msgid ""
-"Here are presented various parameters concerning your machine. Depending on\n"
-"your installed hardware, you may or not, see the following entries:\n"
-"\n"
-" * \"Mouse\": check the current mouse configuration and click on the button\n"
-"to change it if necessary;\n"
-"\n"
-" * \"Keyboard\": check the current keyboard map configuration and click on\n"
-"the button to change that if necessary;\n"
-"\n"
-" * \"Timezone\": DrakX, by default, guesses your time zone from the "
-"language\n"
-"you have chosen. But here again, as for the choice of a keyboard, you may\n"
-"not be in the country for which the chosen language should correspond.\n"
-"Hence, you may need to click on the \"Timezone\" button in order to\n"
-"configure the clock according to the time zone you are in;\n"
-"\n"
-" * \"Printer\": clicking on the \"No Printer\" button will open the printer\n"
-"configuration wizard;\n"
-"\n"
-" * \"Sound card\": if a sound card is detected on your system, it is\n"
-"displayed here. No modification possible at installation time;\n"
-"\n"
-" * \"TV card\": if a TV card is detected on your system, it is displayed\n"
-"here. No modification possible at installation time;\n"
-"\n"
-" * \"ISDN card\": if an ISDN card is detected on your system, it is\n"
-"displayed here. You can click on the button to change the parameters\n"
-"associated with it."
-msgstr ""
-
-#: ../../help.pm_.c:891
-#, fuzzy
-msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandrake Linux partition. Be careful, all data present on it will be lost\n"
-"and will not be recoverable!"
-msgstr ""
-"Linuks Mandrakeni yĆ¼klÉ™mak Ć¼Ć§Ć¼n sĆ¼rĆ¼cĆ¼yĆ¼ 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."
-
-#: ../../help.pm_.c:896
-#, fuzzy
-msgid ""
-"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"
-"any Windows data.\n"
-"\n"
-"Click on \"Cancel\" to cancel this operation without losing any data and\n"
-"partitions present on this hard drive."
-msgstr ""
-"SĆ¼rĆ¼cĆ¼dÉ™ki bĆ¼tĆ¼n bilgilÉ™ri vÉ™ bƶlmÉ™lÉ™ri silmÉ™k Ć¼Ć§Ć¼n\n"
-"\"Oldu\" dĆ¼ymÉ™sinÉ™ basın. DiqqÉ™tli olun,\"Oldu\" dĆ¼ymÉ™sinÉ™ basdıqdan sonra\n"
-"Windows bilgilÉ™ri dÉ™ daxil olmaq Ć¼zÉ™rÉ™bĆ¼tĆ¼n bƶlmÉ™ mÉ™'lumatı geri dƶnmÉ™yÉ™cÉ™k "
-"ÅÉ™kildÉ™ silinÉ™cÉ™k.\n"
-"\n"
-"\n"
-"BƶlmÉ™dÉ™ki mÉ™'lumatları qoruyaraq \"LÉ™Äv et\" dĆ¼ymÉ™sinÉ™\n"
-"É™mÉ™liyyatı lÉ™Äv edÉ™ bilÉ™rsiniz."
-
-#: ../../install2.pm_.c:113
-#, c-format
-msgid ""
-"Can't 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 ""
-
-#: ../../install2.pm_.c:169
-#, c-format
-msgid "You must also format %s"
-msgstr ""
-
-#: ../../install_any.pm_.c:411
-#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They don't have any known security\n"
-"issues, but some new could be found. In that case, you must make sure to "
-"upgrade\n"
-"as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
-msgstr ""
-"bu vericiləri seƧdiniz: %s\n"
-"\n"
-"\n"
-"bu vericilÉ™r É™sasÉ™n fÉ™allaÅdırılır. Onların heƧ bir tÉ™hlĆ¼kÉ™sizlik\n"
-"problemlÉ™ri yoxdur, amma bÉ™'zi xÉ™talar tapıla bilÉ™r. BelÉ™ olsa, mĆ¼mĆ¼kĆ¼n olan "
-"É™n yaxın zamanda gĆ¼ncÉ™llÉ™mÉ™lisiniz.\n"
-"\n"
-"\n"
-"Bu vericiləri qurmaq istəyirsiniz?\n"
-
-#: ../../install_any.pm_.c:447
-msgid "Can't use broadcast with no NIS domain"
-msgstr "NÄ°S domeyni olmadan translasiya iÅlÉ™dilÉ™ bilmÉ™z"
-
-#: ../../install_any.pm_.c:793
-#, c-format
-msgid "Insert a FAT formatted floppy in drive %s"
-msgstr "%s sĆ¼rĆ¼cĆ¼sĆ¼nÉ™ FAT ÅÉ™killÉ™ndirilmiÅ bir disket taxın"
-
-#: ../../install_any.pm_.c:797
-msgid "This floppy is not FAT formatted"
-msgstr "Bu floppi FAT ÅÉ™klindÉ™ deyildir"
-
-#: ../../install_any.pm_.c:809
-msgid ""
-"To use this saved packages selection, boot installation with ``linux "
-"defcfg=floppy''"
-msgstr ""
-"Bu saxlanmıŠpaketlÉ™r seƧkisini iÅlÉ™tmÉ™k Ć¼Ć§Ć¼n qurulumu ``linux "
-"defcfg=floppy''ilÉ™ baÅladın."
-
-#: ../../install_any.pm_.c:831 ../../partition_table.pm_.c:763
-#, c-format
-msgid "Error reading file %s"
-msgstr "%s faylı oxunurkan xəta oldu"
-
-#: ../../install_interactive.pm_.c:23
-#, c-format
-msgid ""
-"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
-"You can find some information about them at: %s"
-msgstr ""
-"Sisteminizdaki bÉ™'zi avadanlıqlar iÅlÉ™mÉ™si Ć¼Ć§Ć¼n dĆ¼zgĆ¼n sĆ¼rĆ¼cĆ¼lÉ™rÉ™ ehtiyac "
-"duyar.\n"
-"Bunun haqqında %s də/a lazımi malumatları tapa bilərsiniz"
-
-#: ../../install_interactive.pm_.c:58
-msgid ""
-"You must have a root partition.\n"
-"For this, create a partition (or click on an existing one).\n"
-"Then choose action ``Mount point'' and set it to `/'"
-msgstr ""
-"Bir root disk bƶlĆ¼mĆ¼na ehtiyacınız var.\n"
-"Bunun Ć¼Ć§Ć¼n istÉ™r mƶvcud bir disk bƶlĆ¼mĆ¼ Ć¼zÉ™rina tıqlayın, \n"
-"ya da yeni birini baÅdan yaradın. Sonra \"BaÄlama \n"
-"NƶqtÉ™si\"nÉ™ gÉ™lin va burayı '/' olaraq dÉ™yiÅdirin."
-
-#: ../../install_interactive.pm_.c:63
-msgid "You must have a swap partition"
-msgstr "Bir swap sahəsinə ehtiyacınız var"
-
-#: ../../install_interactive.pm_.c:64
-msgid ""
-"You don't have a swap partition\n"
-"\n"
-"Continue anyway?"
-msgstr ""
-"Bir swap sahəniz yoxdur\n"
-"Davam edim?"
-
-#: ../../install_interactive.pm_.c:67 ../../install_steps.pm_.c:163
-#, fuzzy
-msgid "You must have a FAT partition mounted in /boot/efi"
-msgstr "Bir swap sahəsinə ehtiyacınız var"
-
-#: ../../install_interactive.pm_.c:90
-msgid "Use free space"
-msgstr "BoŠsahəni istifadə et"
-
-#: ../../install_interactive.pm_.c:92
-msgid "Not enough free space to allocate new partitions"
-msgstr "Yeni bƶlmÉ™lÉ™r Ć¼Ć§Ć¼n boÅ sahÉ™ yoxdur"
-
-#: ../../install_interactive.pm_.c:100
-msgid "Use existing partition"
-msgstr "Var olan bƶlmÉ™lÉ™ri iÅlÉ™dimmi"
-
-#: ../../install_interactive.pm_.c:102
-msgid "There is no existing partition to use"
-msgstr "BƶlmÉ™ cÉ™dvÉ™li qurtarılmaÄa ƧalıÅılır"
-
-#: ../../install_interactive.pm_.c:109
-msgid "Use the Windows partition for loopback"
-msgstr "Loopback Ć¼Ć§Ć¼n Windows bƶlmÉ™sini iÅlÉ™t"
-
-#: ../../install_interactive.pm_.c:112
-msgid "Which partition do you want to use for Linux4Win?"
-msgstr "Linuks4Win'i qurmaq Ć¼Ć§Ć¼n hansı disk bƶlmÉ™sini istifadÉ™ edÉ™cÉ™ksiniz?"
-
-#: ../../install_interactive.pm_.c:114
-msgid "Choose the sizes"
-msgstr "BƶyĆ¼klĆ¼klÉ™rini seƧin"
-
-#: ../../install_interactive.pm_.c:115
-msgid "Root partition size in MB: "
-msgstr "Kƶk (root) bƶlmÉ™si bƶyĆ¼klĆ¼yĆ¼ (Mb): "
-
-#: ../../install_interactive.pm_.c:116
-msgid "Swap partition size in MB: "
-msgstr "Swap sahÉ™si bƶyĆ¼klĆ¼yĆ¼ (Mb): "
-
-#: ../../install_interactive.pm_.c:125
-msgid "Use the free space on the Windows partition"
-msgstr "Windows bƶlmÉ™sindÉ™ki boÅ sahÉ™ni iÅlÉ™t"
-
-#: ../../install_interactive.pm_.c:128
-msgid "Which partition do you want to resize?"
-msgstr "Hansı bƶlmÉ™nin bƶyĆ¼klĆ¼yĆ¼nĆ¼ dÉ™yiÅdirÉ™cÉ™ksiniz?"
-
-#: ../../install_interactive.pm_.c:130
-msgid "Computing Windows filesystem bounds"
-msgstr "Fat fayl sistemi ucları hesaplanır"
-
-#: ../../install_interactive.pm_.c:133
-#, c-format
-msgid ""
-"The FAT resizer is unable to handle your partition, \n"
-"the following error occured: %s"
-msgstr ""
-"FAT tÉ™dqiqatƧımız sizin bƶlĆ¼mlÉ™ri iÅlÉ™dÉ™ bilmir,\n"
-"bu xəta oldu: %s"
-
-#: ../../install_interactive.pm_.c:136
-msgid "Your Windows partition is too fragmented, please run ``defrag'' first"
-msgstr ""
-"Sizin Windows bƶlĆ¼mĆ¼ Ƨox daÄınıqdır. DaxiÅ edirik, É™vvÉ™lcÉ™ birlÉ™Ådirin "
-"(defraq)"
-
-#: ../../install_interactive.pm_.c:137
-#, fuzzy
-msgid ""
-"WARNING!\n"
-"\n"
-"DrakX will now resize your Windows partition. Be careful:\n"
-"this operation is dangerous. If you have not already done\n"
-"so, you should first exit the installation, run scandisk\n"
-"under Windows (and optionally run defrag), then restart the\n"
-"installation. You should also backup your data.\n"
-"When sure, press Ok."
-msgstr ""
-"DİQQʸT!\n"
-"\n"
-"DrakX \"Windows\" disk bƶlmÉ™nizin bƶyĆ¼klĆ¼yĆ¼nĆ¼ dÉ™yiÅdirÉ™cÉ™k. Bu iÅ \n"
-"tehlĆ¼kÉ™li ola bilÉ™r. AÅina deyil isÉ™niz qurulumdan Ƨıxın vÉ™ \"Windows\" \n"
-"altında \"Scandisk\" (lazım gÉ™lÉ™rsÉ™ \"defrag\" da) proqramını ƧalıÅdırın. "
-"Ardından quruluma \n"
-"davam edin. VerilÉ™rinizin yedÉ™yini almaÄı da unutmayın!"
-
-#: ../../install_interactive.pm_.c:147
-msgid "Which size do you want to keep for windows on"
-msgstr "Hansı sektora daÅımaq istÉ™yirsiniz?"
-
-#: ../../install_interactive.pm_.c:148
-#, c-format
-msgid "partition %s"
-msgstr "bƶlmə %s"
-
-#: ../../install_interactive.pm_.c:155
-#, c-format
-msgid "FAT resizing failed: %s"
-msgstr "FAT bƶyĆ¼klĆ¼yĆ¼ dÉ™yiÅdirilmÉ™si bacarılmadı: %s"
-
-#: ../../install_interactive.pm_.c:170
-msgid ""
-"There is no FAT partitions to resize or to use as loopback (or not enough "
-"space left)"
-msgstr "FAT bƶlmÉ™si yoxdur ya da loopback Ć¼Ć§Ć¼n lazımi yer buraxılmayıb"
-
-#: ../../install_interactive.pm_.c:176
-msgid "Erase entire disk"
-msgstr "BĆ¼tĆ¼n diski sil"
-
-#: ../../install_interactive.pm_.c:176
-msgid "Remove Windows(TM)"
-msgstr "\"Windows\"u sil"
-
-#: ../../install_interactive.pm_.c:179
-msgid "You have more than one hard drive, which one do you install linux on?"
-msgstr ""
-"Sizin birdÉ™n Ƨox diskiniz var, linux qurmaq Ć¼Ć§Ć¼n hansını istifadÉ™ "
-"edəcəksiniz?"
-
-#: ../../install_interactive.pm_.c:182
-#, c-format
-msgid "ALL existing partitions and their data will be lost on drive %s"
-msgstr ""
-"%s bƶlĆ¼mÉ™sinin bƶyĆ¼klĆ¼yĆ¼ dÉ™yiÅdirildikdÉ™n sonra bu bƶlmÉ™dÉ™ki bĆ¼tĆ¼n "
-"mə'lumatlar silinəcəkdir"
-
-#: ../../install_interactive.pm_.c:190
-msgid "Custom disk partitioning"
-msgstr "Hazırkı disk bƶlmələndirməsi"
-
-#: ../../install_interactive.pm_.c:194
-msgid "Use fdisk"
-msgstr "Fdisk istifadÉ™ et"
-
-#: ../../install_interactive.pm_.c:197
-#, c-format
-msgid ""
-"You can now partition %s.\n"
-"When you are done, don't forget to save using `w'"
-msgstr ""
-"İndi %s sabit diskinizi bƶlmələndirə bilərsiniz\n"
-"Ä°Åinizi bitirdiyinizdÉ™ `w' ilÉ™ qeyd etmÉ™yi unutmayın"
-
-#: ../../install_interactive.pm_.c:226
-msgid "You don't have enough free space on your Windows partition"
-msgstr "HeƧ Windows disk bƶlməniz yoxdur!"
-
-#: ../../install_interactive.pm_.c:242
-msgid "I can't find any room for installing"
-msgstr "Artıq bƶlmə əlavə edilə bilməz"
-
-#: ../../install_interactive.pm_.c:246
-msgid "The DrakX Partitioning wizard found the following solutions:"
-msgstr "DrakX bƶlmə sehirbazı bu yolu tapdı:"
-
-#: ../../install_interactive.pm_.c:251
-#, c-format
-msgid "Partitioning failed: %s"
-msgstr "BƶlmÉ™ cÉ™dvÉ™li nƶvĆ¼: %s"
-
-#: ../../install_interactive.pm_.c:261
-msgid "Bringing up the network"
-msgstr "Å˛É™bÉ™kÉ™ fÉ™allaÅdırılır"
-
-#: ../../install_interactive.pm_.c:266
-msgid "Bringing down the network"
-msgstr "Å˛É™bÉ™kÉ™ dayandırılır"
-
-#: ../../install_steps.pm_.c:76
-msgid ""
-"An error occurred, but I don't know how to handle it nicely.\n"
-"Continue at your own risk."
-msgstr ""
-"Bir xÉ™ta oldu, fÉ™qÉ™t necÉ™ dĆ¼zÉ™ldilÉ™cÉ™yini bilmirÉ™m.\n"
-"Davam edin, riski sizÉ™ aitdir!"
-
-#: ../../install_steps.pm_.c:205
-#, c-format
-msgid "Duplicate mount point %s"
-msgstr "%s baÄlama nƶqtÉ™sini Ƨoxalt"
-
-#: ../../install_steps.pm_.c:388
-msgid ""
-"Some important packages didn't get installed properly.\n"
-"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl Mandrake/RPMS/*.rpm"
-"\"\n"
-msgstr ""
-"BÉ™zi paketlÉ™r doÄru olaraq qurulumu bitirmÉ™di.\n"
-"cdrom sĆ¼rĆ¼cĆ¼nĆ¼z ya da cdromunuz dĆ¼zgĆ¼n iÅlÉ™mir.\n"
-"ʸvvəldən Linuks qurulu bir sistemdə \"rpm -qpl Mandrake/RPMS/*.rpm\"'yi\n"
-"istifadə edərək Cd-Rom'u yoxlayın.\n"
-
-#: ../../install_steps.pm_.c:458
-#, c-format
-msgid "Welcome to %s"
-msgstr "%s SisteminÉ™ XoÅgÉ™lmiÅsiniz"
-
-#: ../../install_steps.pm_.c:513 ../../install_steps.pm_.c:755
-msgid "No floppy drive available"
-msgstr "Disket sĆ¼rĆ¼cĆ¼ yoxdur"
-
-#: ../../install_steps_auto_install.pm_.c:76
-#: ../../install_steps_stdio.pm_.c:22
-#, c-format
-msgid "Entering step `%s'\n"
-msgstr "BaÅlanÄıc addımı `%s'\n"
-
-#: ../../install_steps_gtk.pm_.c:148
-msgid ""
-"Your system is low on resource. You may have some problem installing\n"
-"Mandrake Linux. 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."
-
-#: ../../install_steps_gtk.pm_.c:159 ../../install_steps_interactive.pm_.c:224
-msgid "Install Class"
-msgstr "Qurulum Sinifi"
-
-#: ../../install_steps_gtk.pm_.c:162
-#, fuzzy
-msgid "Please choose one of the following classes of installation:"
-msgstr "XahiÅ edirik aÅaÄıdakı qurulum siniflÉ™rindÉ™n birisini seƧiniz:"
-
-#: ../../install_steps_gtk.pm_.c:228
-#, c-format
-msgid ""
-"The total size for the groups you have selected is approximately %d MB.\n"
-msgstr "SeƧdiyiniz paket qruplarının Ć¼mumi bƶyĆ¼klĆ¼yĆ¼ tÉ™ximÉ™n %d MBdır.\n"
-
-#: ../../install_steps_gtk.pm_.c:230
-#, c-format
-msgid ""
-"If you wish to install less than this size,\n"
-"select the percentage of packages that you want to install.\n"
-"\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of 100%% will install all selected packages."
-msgstr ""
-"Bu bƶyĆ¼klĆ¼kdÉ™n daha azını yĆ¼klÉ™mÉ™k istÉ™sÉ™niz,\n"
-"qurmaq istədiyiniz paket faizini seƧin.\n"
-"100%%'i seƧərsÉ™niz bĆ¼tĆ¼n paketlÉ™r qurulacaqdır."
-
-#: ../../install_steps_gtk.pm_.c:235
-#, c-format
-msgid ""
-"You have space on your disk for only %d%% of these packages.\n"
-"\n"
-"If you wish to install less than this,\n"
-"select the percentage of packages that you want to install.\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of %d%% will install as many packages as possible."
-msgstr ""
-"Sabit diskinizdə bu paketlərin sadəcə olaraq %d%%'sini quracaq qədər yer "
-"var.\n"
-"Bundan daha azını qurmaq istəsəniz,\n"
-"daha az bir faiz sadəcə ən vacib paketləri ;\n"
-"%d%% isÉ™ qurula bilÉ™cÉ™k bĆ¼tĆ¼n paketlÉ™ri quracaqdır."
-
-#: ../../install_steps_gtk.pm_.c:241
-msgid "You will be able to choose them more specifically in the next step."
-msgstr "Sonrakı addımda daha geniÅ bir seƧki qabaÄınıza gÉ™lÉ™cÉ™kdir."
-
-#: ../../install_steps_gtk.pm_.c:243
-msgid "Percentage of packages to install"
-msgstr "Qurulacaq paketlərin faizi"
-
-#: ../../install_steps_gtk.pm_.c:291 ../../install_steps_interactive.pm_.c:705
-msgid "Package Group Selection"
-msgstr "Paket Qrup SeƧkisi"
-
-#: ../../install_steps_gtk.pm_.c:323 ../../install_steps_interactive.pm_.c:720
-msgid "Individual package selection"
-msgstr "Fərdi paket seƧkisi"
-
-#: ../../install_steps_gtk.pm_.c:346 ../../install_steps_interactive.pm_.c:645
-#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Ćmumi bƶyĆ¼klĆ¼k: %d / %d Mb"
-
-#: ../../install_steps_gtk.pm_.c:391
-msgid "Bad package"
-msgstr "Xətalı paket"
-
-#: ../../install_steps_gtk.pm_.c:392
-#, c-format
-msgid "Name: %s\n"
-msgstr "Ad: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:393
-#, c-format
-msgid "Version: %s\n"
-msgstr "BuraxılıÅ: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:394
-#, c-format
-msgid "Size: %d KB\n"
-msgstr "BƶyĆ¼klĆ¼yĆ¼: %d KB\n"
-
-#: ../../install_steps_gtk.pm_.c:395
-#, c-format
-msgid "Importance: %s\n"
-msgstr "ʸhəmiyyət: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:417
-msgid ""
-"You can't 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."
-
-#: ../../install_steps_gtk.pm_.c:422
-msgid "The following packages are going to be installed"
-msgstr "AÅaÄıdakı paketlÉ™r qurulacaqdır"
-
-#: ../../install_steps_gtk.pm_.c:423
-msgid "The following packages are going to be removed"
-msgstr "AÅaÄıdakı paketlÉ™r sistemdÉ™n silinÉ™cÉ™klÉ™r"
-
-#: ../../install_steps_gtk.pm_.c:435
-msgid "You can't select/unselect this package"
-msgstr "Bu paketi seƧə bilməzsiniz/sistemdən Ƨıxarda bilməzsınız"
-
-#: ../../install_steps_gtk.pm_.c:447
-msgid "This is a mandatory package, it can't be unselected"
-msgstr "Bu lazımlı bir paketdir, sistemdən Ƨıxardıla bilməz"
-
-#: ../../install_steps_gtk.pm_.c:449
-msgid "You can't unselect this package. It is already installed"
-msgstr "Bu paketi sistemdÉ™n Ƨıxarda bilmÉ™zsınız. Artıq qurulmuÅdur."
-
-#: ../../install_steps_gtk.pm_.c:453
-msgid ""
-"This package must be upgraded\n"
-"Are you sure you want to deselect it?"
-msgstr ""
-"Bu paket yenilənməlidir\n"
-"Sistemdən Ƨıxarmaq mƶvzusunda ciddisiniz?"
-
-#: ../../install_steps_gtk.pm_.c:457
-msgid "You can't unselect this package. It must be upgraded"
-msgstr "Bu paketi sistemdən Ƨıxarda bilməzsiniz. Yenilənməlidir"
-
-#: ../../install_steps_gtk.pm_.c:462
-msgid "Show automatically selected packages"
-msgstr "Avtomatik seƧili paketləri gƶstər"
-
-#: ../../install_steps_gtk.pm_.c:463 ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Install"
-msgstr "Qurulum"
-
-#: ../../install_steps_gtk.pm_.c:466
-#, fuzzy
-msgid "Load/Save on floppy"
-msgstr "DisketÉ™ qeyd et"
-
-#: ../../install_steps_gtk.pm_.c:467
-#, fuzzy
-msgid "Updating package selection"
-msgstr "Paket seƧkilərini saxla"
-
-#: ../../install_steps_gtk.pm_.c:472
-#, fuzzy
-msgid "Minimal install"
-msgstr "Qurulumdan Ƨıx"
-
-#: ../../install_steps_gtk.pm_.c:487 ../../install_steps_interactive.pm_.c:555
-msgid "Choose the packages you want to install"
-msgstr "Qurmaq istədiyiniz paketləri seƧin"
-
-#: ../../install_steps_gtk.pm_.c:503 ../../install_steps_interactive.pm_.c:787
-msgid "Installing"
-msgstr "Qurulur"
-
-#: ../../install_steps_gtk.pm_.c:509
-msgid "Estimating"
-msgstr "Təxmini olaraq hesaplanır"
-
-#: ../../install_steps_gtk.pm_.c:516
-msgid "Time remaining "
-msgstr "Qalan mĆ¼ddÉ™t"
-
-#: ../../install_steps_gtk.pm_.c:528
-msgid "Please wait, preparing installation"
-msgstr "XahiÅ edirik gƶzlÉ™yin, qurulum hazırlanır"
-
-#: ../../install_steps_gtk.pm_.c:611
-#, c-format
-msgid "%d packages"
-msgstr "%d paket"
-
-#: ../../install_steps_gtk.pm_.c:616
-#, c-format
-msgid "Installing package %s"
-msgstr "%s paketi qurulur"
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-#: ../../standalone/drakautoinst_.c:203
-msgid "Accept"
-msgstr "Qəbul Et"
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-msgid "Refuse"
-msgstr "Rədd Et"
-
-#: ../../install_steps_gtk.pm_.c:658 ../../install_steps_interactive.pm_.c:812
-#, c-format
-msgid ""
-"Change your Cd-Rom!\n"
-"\n"
-"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
-"done.\n"
-"If you don't have it, press Cancel to avoid installation from this Cd-Rom."
-msgstr ""
-"Cd-Romu dÉ™yiÅdirin!\n"
-"\n"
-"\"%s\" adlı Cd-Romu sĆ¼rĆ¼cĆ¼nĆ¼zÉ™ taxın vÉ™ OLDU'ya basın.\n"
-"ʸgÉ™r Cd-Rom É™linizdÉ™ deyilsÉ™ bu Cd-Rom'dan qurmamaq Ć¼Ć§Ć¼n Ä°MTÄ°NA ET'É™ basın."
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_gtk.pm_.c:676
-#: ../../install_steps_interactive.pm_.c:824
-#: ../../install_steps_interactive.pm_.c:828
-msgid "Go on anyway?"
-msgstr "Yenə də davam edək?"
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_interactive.pm_.c:824
-msgid "There was an error ordering packages:"
-msgstr "Paketləri istərkən bir xəta oldu:"
-
-#: ../../install_steps_gtk.pm_.c:676 ../../install_steps_interactive.pm_.c:828
-msgid "There was an error installing packages:"
-msgstr "Paketlər qurulurkən bir xəta oldu:"
-
-#: ../../install_steps_interactive.pm_.c:10
-msgid ""
-"\n"
-"Warning\n"
-"\n"
-"Please read carefully the terms below. If you disagree with any\n"
-"portion, you are not allowed to install the next CD media. Press 'Refuse' \n"
-"to continue the installation without using these media.\n"
-"\n"
-"\n"
-"Some components contained in the next CD media are not governed\n"
-"by the GPL License or similar agreements. Each such component is then\n"
-"governed by the terms and conditions of its own specific license. \n"
-"Please read carefully and comply with such specific licenses before \n"
-"you use or redistribute the said components. \n"
-"Such licenses will in general prevent the transfer, duplication \n"
-"(except for backup purposes), redistribution, reverse engineering, \n"
-"de-assembly, de-compilation or modification of the component. \n"
-"Any breach of agreement will immediately terminate your rights under \n"
-"the specific license. Unless the specific license terms grant you such\n"
-"rights, you usually cannot install the programs on more than one\n"
-"system, or adapt it to be used on a network. In doubt, please contact \n"
-"directly the distributor or editor of the component. \n"
-"Transfer to third parties or copying of such components including the \n"
-"documentation is usually forbidden.\n"
-"\n"
-"\n"
-"All rights to the components of the next CD media belong to their \n"
-"respective authors and are protected by intellectual property and \n"
-"copyright laws applicable to software programs.\n"
-msgstr ""
-"\n"
-"Warning\n"
-"\n"
-"Please read carefully the terms below. If you disagree with any\n"
-"portion, you are not allowed to install the next CD media. Press 'Refuse' \n"
-"to continue the installation without using these media.\n"
-"\n"
-"\n"
-"Some components contained in the next CD media are not governed\n"
-"by the GPL License or similar agreements. Each such component is then\n"
-"governed by the terms and conditions of its own specific license. \n"
-"Please read carefully and comply with such specific licenses before \n"
-"you use or redistribute the said components. \n"
-"Such licenses will in general prevent the transfer, duplication \n"
-"(except for backup purposes), redistribution, reverse engineering, \n"
-"de-assembly, de-compilation or modification of the component. \n"
-"Any breach of agreement will immediately terminate your rights under \n"
-"the specific license. Unless the specific license terms grant you such\n"
-"rights, you usually cannot install the programs on more than one\n"
-"system, or adapt it to be used on a ÅÉ™bÉ™kÉ™. In doubt, please contact \n"
-"directly the distributor or editor of the component. \n"
-"Transfer to third parties or copying of such components including the \n"
-"documentation is usually forbidden.\n"
-"\n"
-"\n"
-"All rights to the components of the next CD media belong to their \n"
-"respective authors and are protected by intellectual property and \n"
-"copyright laws applicable to software programs.\n"
-
-#: ../../install_steps_interactive.pm_.c:67
-msgid "An error occurred"
-msgstr "Bir xəta oldu"
-
-#: ../../install_steps_interactive.pm_.c:85
-#, fuzzy
-msgid "Do you really want to leave the installation?"
-msgstr "Å˛É™bÉ™kÉ™ni yenidÉ™n baÅlatmaq istÉ™yirsiniz?"
-
-#: ../../install_steps_interactive.pm_.c:108
-msgid "License agreement"
-msgstr "Lisenziya sƶzlÉ™ÅmÉ™si"
-
-#: ../../install_steps_interactive.pm_.c:109
-msgid ""
-"Introduction\n"
-"\n"
-"The operating system and the different components available in the Mandrake "
-"Linux distribution \n"
-"shall be called the \"Software Products\" hereafter. The Software Products "
-"include, but are not \n"
-"restricted to, the set of programs, methods, rules and documentation related "
-"to the operating \n"
-"system and the different components of the Mandrake Linux distribution.\n"
-"\n"
-"\n"
-"1. License Agreement\n"
-"\n"
-"Please read carefully this document. This document is a license agreement "
-"between you and \n"
-"MandrakeSoft S.A. which applies to the Software Products.\n"
-"By installing, duplicating or using the Software Products in any manner, you "
-"explicitly \n"
-"accept and fully agree to conform to the terms and conditions of this "
-"License. \n"
-"If you disagree with any portion of the License, you are not allowed to "
-"install, duplicate or use \n"
-"the Software Products. \n"
-"Any attempt to install, duplicate or use the Software Products in a manner "
-"which does not comply \n"
-"with the terms and conditions of this License is void and will terminate "
-"your rights under this \n"
-"License. Upon termination of the License, you must immediately destroy all "
-"copies of the \n"
-"Software Products.\n"
-"\n"
-"\n"
-"2. Limited Warranty\n"
-"\n"
-"The Software Products and attached documentation are provided \"as is\", "
-"with no warranty, to the \n"
-"extent permitted by law.\n"
-"MandrakeSoft S.A. will, in no circumstances and to the extent permitted by "
-"law, be liable for any special,\n"
-"incidental, direct or indirect damages whatsoever (including without "
-"limitation damages for loss of \n"
-"business, interruption of business, financial loss, legal fees and penalties "
-"resulting from a court \n"
-"judgment, or any other consequential loss) arising out of the use or "
-"inability to use the Software \n"
-"Products, even if MandrakeSoft S.A. has been advised of the possibility or "
-"occurance of such \n"
-"damages.\n"
-"\n"
-"LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN SOME "
-"COUNTRIES\n"
-"\n"
-"To the extent permitted by law, MandrakeSoft S.A. or its distributors will, "
-"in no circumstances, be \n"
-"liable for any special, incidental, direct or indirect damages whatsoever "
-"(including without \n"
-"limitation damages for loss of business, interruption of business, financial "
-"loss, legal fees \n"
-"and penalties resulting from a court judgment, or any other consequential "
-"loss) arising out \n"
-"of the possession and use of software components or arising out of "
-"downloading software components \n"
-"from one of Mandrake Linux sites which are prohibited or restricted in some "
-"countries by local laws.\n"
-"This limited liability applies to, but is not restricted to, the strong "
-"cryptography components \n"
-"included in the Software Products.\n"
-"\n"
-"\n"
-"3. The GPL License and Related Licenses\n"
-"\n"
-"The Software Products consist of components created by different persons or "
-"entities. Most \n"
-"of these components are governed under the terms and conditions of the GNU "
-"General Public \n"
-"Licence, hereafter called \"GPL\", or of similar licenses. Most of these "
-"licenses allow you to use, \n"
-"duplicate, adapt or redistribute the components which they cover. Please "
-"read carefully the terms \n"
-"and conditions of the license agreement for each component before using any "
-"component. Any question \n"
-"on a component license should be addressed to the component author and not "
-"to MandrakeSoft.\n"
-"The programs developed by MandrakeSoft S.A. are governed by the GPL License. "
-"Documentation written \n"
-"by MandrakeSoft S.A. is governed by a specific license. Please refer to the "
-"documentation for \n"
-"further details.\n"
-"\n"
-"\n"
-"4. Intellectual Property Rights\n"
-"\n"
-"All rights to the components of the Software Products belong to their "
-"respective authors and are \n"
-"protected by intellectual property and copyright laws applicable to software "
-"programs.\n"
-"MandrakeSoft S.A. reserves its rights to modify or adapt the Software "
-"Products, as a whole or in \n"
-"parts, by all means and for all purposes.\n"
-"\"Mandrake\", \"Mandrake Linux\" and associated logos are trademarks of "
-"MandrakeSoft S.A. \n"
-"\n"
-"\n"
-"5. Governing Laws \n"
-"\n"
-"If any portion of this agreement is held void, illegal or inapplicable by a "
-"court judgment, this \n"
-"portion is excluded from this contract. You remain bound by the other "
-"applicable sections of the \n"
-"agreement.\n"
-"The terms and conditions of this License are governed by the Laws of "
-"France.\n"
-"All disputes on the terms of this license will preferably be settled out of "
-"court. As a last \n"
-"resort, the dispute will be referred to the appropriate Courts of Law of "
-"Paris - France.\n"
-"For any question on this document, please contact MandrakeSoft S.A. \n"
-msgstr ""
-"Introduction\n"
-"\n"
-"The operating system and the different components available in the Linuks-"
-"Mandrake distribution \n"
-"shall be called the \"Software Products\" hereafter. The Software Products "
-"include, but are not \n"
-"restricted to, the set of programs, methods, rules and documentation related "
-"to the operating \n"
-"system and the different components of the Linuks-Mandrake distribution.\n"
-"\n"
-"\n"
-"1. License Agreement\n"
-"\n"
-"Please read carefully this document. This document is a license agreement "
-"between you and \n"
-"MandrakeSoft S.A. which applies to the Software Products.\n"
-"By installing, duplicating or using the Software Products in any manner, you "
-"explicitly \n"
-"accept and fully agree to conform to the terms and conditions of this "
-"License. \n"
-"If you disagree with any portion of the License, you are not allowed to "
-"install, duplicate or use \n"
-"the Software Products. \n"
-"Any attempt to install, duplicate or use the Software Products in a manner "
-"which does not comply \n"
-"with the terms and conditions of this License is void and will terminate "
-"your rights under this \n"
-"License. Upon termination of the License, you must immediately destroy all "
-"copies of the \n"
-"Software Products.\n"
-"\n"
-"\n"
-"2. Limited Warranty\n"
-"\n"
-"The Software Products and attached documentation are provided \"as is\", "
-"with no warranty, to the \n"
-"extent permitted by law.\n"
-"MandrakeSoft S.A. will, in no circumstances and to the extent permitted by "
-"law, be liable for any special,\n"
-"incidental, direct or indirect damages whatsoever (including without "
-"limitation damages for loss of \n"
-"business, interruption of business, financial loss, legal fees and penalties "
-"resulting from a court \n"
-"judgment, or any other consequential loss) arising out of the use or "
-"inability to use the Software \n"
-"Products, even if MandrakeSoft S.A. has been advised of the possibility or "
-"occurance of such \n"
-"damages.\n"
-"\n"
-"LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN SOME "
-"COUNTRIES\n"
-"\n"
-"To the extent permitted by law, MandrakeSoft S.A. or its distributors will, "
-"in no circumstances, be \n"
-"liable for any special, incidental, direct or indirect damages whatsoever "
-"(including without \n"
-"limitation damages for loss of business, interruption of business, financial "
-"loss, legal fees \n"
-"and penalties resulting from a court judgment, or any other consequential "
-"loss) arising out \n"
-"of the possession and use of software components or arising out of "
-"downloading software components \n"
-"from one of Linuks-Mandrake sites which are prohibited or restricted in "
-"some countries by local laws.\n"
-"This limited liability applies to, but is not restricted to, the strong "
-"cryptography components \n"
-"included in the Software Products.\n"
-"\n"
-"\n"
-"3. The GPL License and Related Licenses\n"
-"\n"
-"The Software Products consist of components created by different persons or "
-"entities. Most \n"
-"of these components are governed under the terms and conditions of the GNU "
-"General Public \n"
-"Licence, hereafter called \"GPL\", or of similar licenses. Most of these "
-"licenses allow you to use, \n"
-"duplicate, adapt or redistribute the components which they cover. Please "
-"read carefully the terms \n"
-"and conditions of the license agreement for each component before using any "
-"component. Any question \n"
-"on a component license should be addressed to the component author and not "
-"to MandrakeSoft.\n"
-"The programs developed by MandrakeSoft S.A. are governed by the GPL License. "
-"Documentation written \n"
-"by MandrakeSoft S.A. is governed by a specific license. Please refer to the "
-"documentation for \n"
-"further details.\n"
-"\n"
-"\n"
-"4. Intellectual Property Rights\n"
-"\n"
-"All rights to the components of the Software Products belong to their "
-"respective authors and are \n"
-"protected by intellectual property and copyright laws applicable to software "
-"programs.\n"
-"MandrakeSoft S.A. reserves its rights to modify or adapt the Software "
-"Products, as a whole or in \n"
-"parts, by all means and for all purposes.\n"
-"\"Mandrake\", \"Linuks-Mandrake\" and associated logos are trademarks of "
-"MandrakeSoft S.A. \n"
-"\n"
-"\n"
-"5. Governing Laws \n"
-"\n"
-"If any portion of this agreement is held void, illegal or inapplicable by a "
-"court judgment, this \n"
-"portion is excluded from this contract. You remain bound by the other "
-"applicable sections of the \n"
-"agreement.\n"
-"The terms and conditions of this License are governed by the Laws of "
-"France.\n"
-"All disputes on the terms of this license will preferably be settled out of "
-"court. As a last \n"
-"resort, the dispute will be referred to the appropriate Courts of Law of "
-"Paris - France.\n"
-"For any question on this document, please contact MandrakeSoft S.A. \n"
-
-#: ../../install_steps_interactive.pm_.c:205
-#: ../../install_steps_interactive.pm_.c:1045
-#: ../../standalone/keyboarddrake_.c:28
-msgid "Keyboard"
-msgstr "Klaviatura"
-
-#: ../../install_steps_interactive.pm_.c:206
-#, fuzzy
-msgid "Please choose your keyboard layout."
-msgstr "Klaviatura quruluÅunu seƧiniz."
-
-#: ../../install_steps_interactive.pm_.c:207
-msgid "Here is the full list of keyboards available"
-msgstr "BĆ¼tĆ¼n mƶvcud klaviaturaların siyahısı"
-
-#: ../../install_steps_interactive.pm_.c:224
-msgid "Which installation class do you want?"
-msgstr "Hansı qurulum sinifini istəyirsiniz?"
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Install/Update"
-msgstr "Qurulum/GĆ¼ncÉ™llÉ™mÉ™"
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Is this an install or an update?"
-msgstr "Bu bir qurulum mu, yoxsa gĆ¼ncÉ™llÉ™mÉ™midir?"
-
-#: ../../install_steps_interactive.pm_.c:235
-msgid "Recommended"
-msgstr "Tƶvsiyə edilən"
-
-#: ../../install_steps_interactive.pm_.c:238
-#: ../../install_steps_interactive.pm_.c:241
-msgid "Expert"
-msgstr "Usta"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-#, fuzzy
-msgid "Upgrade"
-msgstr "GĆ¼ncÉ™llÉ™mÉ™"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-#, fuzzy
-msgid "Upgrade packages only"
-msgstr "Paket seƧkilərini saxla"
-
-#: ../../install_steps_interactive.pm_.c:266
-#, fuzzy
-msgid "Please choose the type of your mouse."
-msgstr "XahiÅ edirik siƧanınızın nƶvĆ¼nĆ¼ seƧin."
-
-#: ../../install_steps_interactive.pm_.c:272 ../../standalone/mousedrake_.c:65
-msgid "Mouse Port"
-msgstr "SiƧan Qapısı"
-
-#: ../../install_steps_interactive.pm_.c:273 ../../standalone/mousedrake_.c:66
-msgid "Please choose on which serial port your mouse is connected to."
-msgstr "SiƧanınızın baÄlı olduÄu serial Qapıyı seƧin."
-
-#: ../../install_steps_interactive.pm_.c:281
-msgid "Buttons emulation"
-msgstr "DĆ¼ymÉ™ emulyasiyası"
-
-#: ../../install_steps_interactive.pm_.c:283
-msgid "Button 2 Emulation"
-msgstr "DĆ¼ymÉ™ 2 emulyasiyası"
-
-#: ../../install_steps_interactive.pm_.c:284
-msgid "Button 3 Emulation"
-msgstr "DĆ¼ymÉ™ 3 emulyasiyası"
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "Configuring PCMCIA cards..."
-msgstr "PCMCIA kartlar qurulur..."
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "PCMCIA"
-msgstr "PCMCIA"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "Configuring IDE"
-msgstr "IDE qapıları qurulur"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "IDE"
-msgstr "IDE"
-
-#: ../../install_steps_interactive.pm_.c:327
-msgid "no available partitions"
-msgstr "uyÄun bƶlmÉ™ tapılmadı"
-
-#: ../../install_steps_interactive.pm_.c:330
-msgid "Scanning partitions to find mount points"
-msgstr "BaÄlama nƶqtÉ™lÉ™ri Ć¼Ć§Ć¼n bƶlmÉ™lÉ™r daranır"
-
-#: ../../install_steps_interactive.pm_.c:338
-msgid "Choose the mount points"
-msgstr "BaÄlama nƶqtÉ™lÉ™rini seƧin"
-
-#: ../../install_steps_interactive.pm_.c:357
-#, c-format
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I can try to go on blanking bad partitions (ALL DATA will be lost!).\n"
-"The other solution is to disallow DrakX to modify the partition table.\n"
-"(the error is %s)\n"
-"\n"
-"Do you agree to loose all the partitions?\n"
-msgstr ""
-"Bƶlmə cədvəlinizi oxuya bilmirəm, dəyəsən biraz xarab olub:-(\n"
-"Xarab olmuÅ bolmÉ™lÉ™ri dĆ¼zÉ™ltmÉ™yÉ™ ƧalıÅacam.\n"
-"Amma bĆ¼tĆ¼n mÉ™'lumatlar itÉ™cÉ™kdir.\n"
-"BaÅqa bir yol isÉ™ DrakXin bƶlmÉ™ cÉ™dvÉ™llÉ™rini yoxlamasını "
-"passivlÉ™ÅdirmÉ™kdir.\n"
-"(xəta %s)\n"
-"\n"
-"BĆ¼tĆ¼n bƶlmÉ™lÉ™ri itirmÉ™k istÉ™yirsiniz?\n"
-
-#: ../../install_steps_interactive.pm_.c:370
-msgid ""
-"DiskDrake failed to read correctly the partition table.\n"
-"Continue at your own risk!"
-msgstr ""
-"DiskDrake bƶlmÉ™ cÉ™dvÉ™lini oxumaÄı bacara bilmÉ™di.\n"
-"Ć–zĆ¼nĆ¼z davam edÉ™ bilÉ™rsiniz."
-
-#: ../../install_steps_interactive.pm_.c:386
-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 ""
-
-#: ../../install_steps_interactive.pm_.c:395
-#, fuzzy
-msgid "No root partition found to perform an upgrade"
-msgstr "Å˛É™killÉ™ndirilÉ™cÉ™k disk bƶlmÉ™lÉ™rini seƧin"
-
-#: ../../install_steps_interactive.pm_.c:396
-msgid "Root Partition"
-msgstr "Kƶk (root) Bƶlməsi"
-
-#: ../../install_steps_interactive.pm_.c:397
-msgid "What is the root partition (/) of your system?"
-msgstr "Sisteminizin kƶk (/) bƶlməsi hansıdır?"
-
-#: ../../install_steps_interactive.pm_.c:411
-msgid "You need to reboot for the partition table modifications to take place"
-msgstr ""
-"BƶlmÉ™ cÉ™vÉ™lindÉ™ki dÉ™yiÅikliklÉ™rin daxil olması Ć¼Ć§Ć¼n kompĆ¼terinizi yenidÉ™n "
-"baÅlatmalısınız."
-
-#: ../../install_steps_interactive.pm_.c:435
-msgid "Choose the partitions you want to format"
-msgstr "Å˛É™killÉ™ndirilÉ™cÉ™k disk bƶlmÉ™lÉ™rini seƧin"
-
-#: ../../install_steps_interactive.pm_.c:436
-msgid "Check bad blocks?"
-msgstr "Xətalı bloklar sınansınmı?"
-
-#: ../../install_steps_interactive.pm_.c:462
-msgid "Formatting partitions"
-msgstr "BƶlmÉ™lÉ™r ÅÉ™killÉ™ndirilir"
-
-#: ../../install_steps_interactive.pm_.c:464
-#, c-format
-msgid "Creating and formatting file %s"
-msgstr "%s faylı yaradılır vÉ™ ÅÉ™killÉ™ndirilir"
-
-#: ../../install_steps_interactive.pm_.c:467
-msgid "Not enough swap to fulfill installation, please add some"
-msgstr "Qurulumu bitirmÉ™k Ć¼Ć§Ć¼n lazımi sahÉ™ yoxdur, xahiÅ edirik É™lavÉ™ edin"
-
-#: ../../install_steps_interactive.pm_.c:473
-msgid "Looking for available packages"
-msgstr "Mƶvcud olan paketlər axtarılır."
-
-#: ../../install_steps_interactive.pm_.c:479
-msgid "Finding packages to upgrade"
-msgstr "GĆ¼ncÉ™llÉ™nÉ™cÉ™k paketlar tapılır"
-
-#: ../../install_steps_interactive.pm_.c:496
-#, c-format
-msgid ""
-"Your system has not enough space left for installation or upgrade (%d > %d)"
-msgstr ""
-"SisteminizdÉ™ qurulum ya da gĆ¼ncÉ™llÉ™mÉ™ Ć¼Ć§Ć¼n lazımi boÅ yer yoxdur(%d > %d)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Complete (%dMB)"
-msgstr "Hamısı (%dMB)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Minimum (%dMB)"
-msgstr "ʸn az (%dMB)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Recommended (%dMB)"
-msgstr "Tƶvsiyə edilən (%dMB)"
-
-#: ../../install_steps_interactive.pm_.c:568
-msgid ""
-"Please choose load or save package selection on floppy.\n"
-"The format is the same as auto_install generated floppies."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:571
-#, fuzzy
-msgid "Load from floppy"
-msgstr "DisketdÉ™n geri ƧaÄır"
-
-#: ../../install_steps_interactive.pm_.c:573
-#, fuzzy
-msgid "Loading from floppy"
-msgstr "DisketdÉ™n geri ƧaÄır"
-
-#: ../../install_steps_interactive.pm_.c:573
-#, fuzzy
-msgid "Package selection"
-msgstr "Paket Qrup SeƧkisi"
-
-#: ../../install_steps_interactive.pm_.c:578
-#, fuzzy
-msgid "Insert a floppy containing package selection"
-msgstr "%s sĆ¼rĆ¼cĆ¼sĆ¼nÉ™ bir disket taxın"
-
-#: ../../install_steps_interactive.pm_.c:590
-msgid "Save on floppy"
-msgstr "DisketÉ™ qeyd et"
-
-#: ../../install_steps_interactive.pm_.c:658
-msgid "Selected size is larger than available space"
-msgstr "SeƧili bƶyĆ¼klĆ¼k var olandan daha bƶyĆ¼kdĆ¼r"
-
-#: ../../install_steps_interactive.pm_.c:671
-msgid "Type of install"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:672
-msgid ""
-"You haven't selected any group of packages.\n"
-"Please choose the minimal installation you want:"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:675
-msgid "With X"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:677
-msgid "With basic documentation (recommended!)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:678
-msgid "Truly minimal install (especially no urpmi)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:762
-msgid ""
-"If you have all the CDs in the list below, click Ok.\n"
-"If you have none of those CDs, click Cancel.\n"
-"If only some CDs are missing, unselect them, then click Ok."
-msgstr ""
-"AÅaÄıdakı siyahıdakı bĆ¼tĆ¼n CD'lÉ™rÉ™ sahib isÉ™niz, OLDU'ya basın.\n"
-"CD'lərin heƧ birinə sahib deyilsəniz, İMTİNA ET'ə basın.\n"
-"CD'lərdən bə'ziləi əksik isə, onları seƧili vəziyyətdən Ƨıxardıb OLDU'ya "
-"basın."
-
-#: ../../install_steps_interactive.pm_.c:767
-#, c-format
-msgid "Cd-Rom labeled \"%s\""
-msgstr "\"%s\" adlı Cd-Rom"
-
-#: ../../install_steps_interactive.pm_.c:787
-msgid "Preparing installation"
-msgstr "Qurulum hazırlanır"
-
-#: ../../install_steps_interactive.pm_.c:796
-#, c-format
-msgid ""
-"Installing package %s\n"
-"%d%%"
-msgstr ""
-"%s paketi qurulur\n"
-"%d%%"
-
-#: ../../install_steps_interactive.pm_.c:842
-msgid "Post-install configuration"
-msgstr "Qurulum sonrası qurÄular"
-
-#: ../../install_steps_interactive.pm_.c:848
-#, fuzzy, c-format
-msgid "Please insert the Boot floppy used in drive %s"
-msgstr "%s sĆ¼rĆ¼cĆ¼sĆ¼nÉ™ bir disket taxın"
-
-#: ../../install_steps_interactive.pm_.c:854
-#, fuzzy, c-format
-msgid "Please insert the Update Modules floppy in drive %s"
-msgstr "%s sĆ¼rĆ¼cĆ¼sĆ¼nÉ™ boÅ bir disket yerlÉ™Ådirin"
-
-#: ../../install_steps_interactive.pm_.c:874
-msgid ""
-"You have now the possibility to download software aimed for encryption.\n"
-"\n"
-"WARNING:\n"
-"\n"
-"Due to different general requirements applicable to these software and "
-"imposed\n"
-"by various jurisdictions, customer and/or end user of theses software "
-"should\n"
-"ensure that the laws of his/their jurisdiction allow him/them to download, "
-"stock\n"
-"and/or use these software.\n"
-"\n"
-"In addition customer and/or end user shall particularly be aware to not "
-"infringe\n"
-"the laws of his/their jurisdiction. Should customer and/or end user not\n"
-"respect the provision of these applicable laws, he/they will incure serious\n"
-"sanctions.\n"
-"\n"
-"In no event shall Mandrakesoft nor its manufacturers and/or suppliers be "
-"liable\n"
-"for special, indirect or incidental damages whatsoever (including, but not\n"
-"limited to loss of profits, business interruption, loss of commercial data "
-"and\n"
-"other pecuniary losses, and eventual liabilities and indemnification to be "
-"paid\n"
-"pursuant to a court decision) arising out of use, possession, or the sole\n"
-"downloading of these software, to which customer and/or end user could\n"
-"eventually have access after having sign up the present agreement.\n"
-"\n"
-"\n"
-"For any queries relating to these agreement, please contact \n"
-"Mandrakesoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA"
-msgstr ""
-"Ä°ndi ÅifrlÉ™mÉ™ Ć¼Ć§Ć¼n istifadÉ™ edilÉ™cÉ™k tÉ™'minatı endirÉ™ bilÉ™rsiniz.\n"
-"DİQQʸT:\n"
-"\n"
-"Bu tÉ™'minata bÉ™'zi fÉ™rqli Ć¼mumi ehtiyaclardan vÉ™ mĆ¼xtÉ™lif\n"
-"mĆ¼hakÉ™mÉ™ haqlarından ƶtrĆ¼, bu tÉ™'minatın son istifadəƧisi, qanunların ona "
-"bu\n"
-"tə'minatı internetdən endirmə və saxlama haqqını verdiyindən əmin "
-"olmalıdır.\n"
-"\n"
-"ʸlavÉ™ olaraq, mĆ¼ÅdÉ™ri va/vÉ™ ya son istifadəƧi xĆ¼susilÉ™, yerlÉ™Ådiyi mĆ¼hakÉ™mÉ™ "
-"yerinin\n"
-"qanunlarını ƧeynÉ™mÉ™diyindÉ™n É™min olmalıdır. MĆ¼ÅdÉ™ri vÉ™/vÉ™ ya son istifadəƧi\n"
-"qanunların É™mr etdiyi ÅÉ™rtlÉ™ri pozduÄu zaman ciddi cÉ™zalara\n"
-"mə'ruz qalacaqdır.\n"
-"\n"
-"XĆ¼susi ya da dolaylı zÉ™rÉ™rlÉ™rÉ™ (gÉ™lir azalması, iÅin pozulması, ticari "
-"mÉ™'lumat\n"
-"itkisi və digər maddi itkilər) yol aƧan heƧ bir hadisədə nə Mandrakesoft, nə "
-"dÉ™ \n"
-"istehsalatƧıları və/va ya qaynaq vericiləri məs'ul tutulmazlar. Bu "
-"tə'minatı\n"
-"internetden endirirkÉ™n son istifadəƧi bu sƶzlÉ™ÅmÉ™yi qÉ™bul etdiyini \n"
-"bəyan etmiŠsayılır.\n"
-"\n"
-"\n"
-"Bu sƶzlÉ™ÅmÉ™ylÉ™ É™laqÉ™dÉ™r hÉ™r cĆ¼r sual Ć¼Ć§Ć¼n xahiÅ edirik\n"
-"Mandrakesoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA\n"
-"Ć¼nvanına yazınız."
-
-#: ../../install_steps_interactive.pm_.c:912
-msgid ""
-"You have now the possibility to download updated packages that have\n"
-"been released after the distribution has been made available.\n"
-"\n"
-"You will get security fixes or bug fixes, but you need to have an\n"
-"Internet connection configured to proceed.\n"
-"\n"
-"Do you want to install the updates ?"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:926
-#, fuzzy
-msgid "Contacting Mandrake Linux web site to get the list of available mirrors"
-msgstr "ʸks Ć¼nvanına baÄlantı qurulur"
-
-#: ../../install_steps_interactive.pm_.c:931
-msgid "Choose a mirror from which to get the packages"
-msgstr "Paketleri almaq Ć¼Ć§Ć¼n bir É™ks Ć¼nvanı seƧin"
-
-#: ../../install_steps_interactive.pm_.c:940
-msgid "Contacting the mirror to get the list of available packages"
-msgstr "ʸks Ć¼nvanına baÄlantı qurulur"
-
-#: ../../install_steps_interactive.pm_.c:967
-msgid "Which is your timezone?"
-msgstr "Sisteminiz hansı məqsədlə istifadə ediləcək?"
-
-#: ../../install_steps_interactive.pm_.c:972
-#, fuzzy
-msgid "Hardware clock set to GMT"
-msgstr "Avadanlıq saatınız GMT-yə gƶra quruludur mu?"
-
-#: ../../install_steps_interactive.pm_.c:973
-msgid "Automatic time synchronization (using NTP)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:980
-#, fuzzy
-msgid "NTP Server"
-msgstr "NIS Verici"
-
-#: ../../install_steps_interactive.pm_.c:1014
-#: ../../install_steps_interactive.pm_.c:1022
-msgid "Remote CUPS server"
-msgstr "Uzaq CUPS vericisi"
-
-#: ../../install_steps_interactive.pm_.c:1015
-msgid "No printer"
-msgstr "Ƈap Edicisiz"
-
-#: ../../install_steps_interactive.pm_.c:1032
-#, fuzzy
-msgid "Do you have an ISA sound card?"
-msgstr "BaÅqa var?"
-
-#: ../../install_steps_interactive.pm_.c:1034
-msgid "Run \"sndconfig\" after installation to configure your sound card"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1036
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1041 ../../steps.pm_.c:27
-msgid "Summary"
-msgstr "MĆ¼ndÉ™ricat"
-
-#: ../../install_steps_interactive.pm_.c:1044
-msgid "Mouse"
-msgstr "SiƧan"
-
-#: ../../install_steps_interactive.pm_.c:1046
-msgid "Timezone"
-msgstr "Vaxt Dilimi"
-
-#: ../../install_steps_interactive.pm_.c:1047 ../../printerdrake.pm_.c:2276
-#: ../../printerdrake.pm_.c:2354
-msgid "Printer"
-msgstr "Ƈap Edici"
-
-#: ../../install_steps_interactive.pm_.c:1049
-msgid "ISDN card"
-msgstr "ISDN kartı"
-
-#: ../../install_steps_interactive.pm_.c:1052
-#: ../../install_steps_interactive.pm_.c:1054
-msgid "Sound card"
-msgstr "Səs kartı"
-
-#: ../../install_steps_interactive.pm_.c:1056
-msgid "TV card"
-msgstr "TV kartı"
-
-#: ../../install_steps_interactive.pm_.c:1094
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1122
-msgid "LDAP"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1095
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1131
-#, fuzzy
-msgid "NIS"
-msgstr "NIS istifadÉ™ et"
-
-#: ../../install_steps_interactive.pm_.c:1096
-#: ../../install_steps_interactive.pm_.c:1118
-#, fuzzy
-msgid "Local files"
-msgstr "Yerli Ƈap Edici"
-
-#: ../../install_steps_interactive.pm_.c:1105
-#: ../../install_steps_interactive.pm_.c:1106 ../../steps.pm_.c:24
-msgid "Set root password"
-msgstr "Root parolunu qur"
-
-#: ../../install_steps_interactive.pm_.c:1107
-msgid "No password"
-msgstr "Parolsuz"
-
-#: ../../install_steps_interactive.pm_.c:1112
-#, c-format
-msgid "This password is too simple (must be at least %d characters long)"
-msgstr "Bu parol Ƨox sadədir (en az %d xarakter boyunda olmalıdır)"
-
-#: ../../install_steps_interactive.pm_.c:1118 ../../network/modem.pm_.c:49
-#: ../../standalone/draknet_.c:626 ../../standalone/logdrake_.c:172
-msgid "Authentication"
-msgstr "Tanıtma"
-
-#: ../../install_steps_interactive.pm_.c:1126
-#, fuzzy
-msgid "Authentication LDAP"
-msgstr "Tanıtma"
-
-#: ../../install_steps_interactive.pm_.c:1127
-msgid "LDAP Base dn"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1128
-#, fuzzy
-msgid "LDAP Server"
-msgstr "Verici"
-
-#: ../../install_steps_interactive.pm_.c:1134
-#, fuzzy
-msgid "Authentication NIS"
-msgstr "NIS"
-
-#: ../../install_steps_interactive.pm_.c:1135
-msgid "NIS Domain"
-msgstr "NIS sahəsi"
-
-#: ../../install_steps_interactive.pm_.c:1136
-msgid "NIS Server"
-msgstr "NIS Verici"
-
-#: ../../install_steps_interactive.pm_.c:1171
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"SILO on your system, or another operating system removes SILO, or SILO "
-"doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures.\n"
-"\n"
-"If you want to create a bootdisk for your system, insert a floppy in the "
-"first\n"
-"drive and press \"Ok\"."
-msgstr ""
-"XĆ¼susi bir aƧılıŠdisketi, Linuks sisteminizin normal bir sistem yĆ¼klÉ™yiciyÉ™ "
-"lĆ¼zĆ¼m\n"
-"olmadan aƧılmasına imkan verər. ʸgə sisteminizə lilo (ya da grub) "
-"qurmayacaqsanız,\n"
-"ya da baÅqa bir É™mÉ™liyyat sistemi liloyu silÉ™rsa ya da lilo "
-"avadanlıÄınızlaiÅlÉ™mÉ™zsÉ™\n"
-"bu disket sizə yardımƧi olacaqdır. Sonradan Mandrake qurtarma disketi "
-"rəsmini\n"
-"istifadə edərək də bu disket yaradıla bilər.\n"
-"AƧılıŠdisketi yaratmaq istÉ™yirsiniz?\n"
-"AƧılıŠdisketi yaratmaq istÉ™yirsinizsÉ™, birinci disket sĆ¼rĆ¼cĆ¼yÉ™ disket "
-"yerlÉ™Ådirin\n"
-"və \"OLDU\" basın."
-
-#: ../../install_steps_interactive.pm_.c:1187
-msgid "First floppy drive"
-msgstr "Ä°lk disket sĆ¼rĆ¼cĆ¼"
-
-#: ../../install_steps_interactive.pm_.c:1188
-msgid "Second floppy drive"
-msgstr "Ä°kinci disket sĆ¼rĆ¼cĆ¼"
-
-#: ../../install_steps_interactive.pm_.c:1189 ../../printerdrake.pm_.c:1848
-msgid "Skip"
-msgstr "Nəzərə Alma"
-
-#: ../../install_steps_interactive.pm_.c:1194
-#, c-format
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"LILO (or grub) on your system, or another operating system removes LILO, or "
-"LILO doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures. Would you like to create a bootdisk for your system?\n"
-"%s"
-msgstr ""
-"XĆ¼susi bir aƧılıŠdisketi, Linuks sisteminizin normal bir sistem yĆ¼klÉ™yiciyÉ™ "
-"lĆ¼zĆ¼m\n"
-"olmadan aƧılmasına imkan verər. ʸgə sisteminizə lilo (ya da grub) "
-"qurmayacaqsanız,\n"
-"ya da baÅqa bir É™mÉ™liyyat sistemi liloyu silÉ™rsa ya da lilo "
-"avadanlıÄınızlaiÅlÉ™mÉ™zsÉ™\n"
-"bu disket sizə yardımƧi olacaqdır. Sonradan Mandrake qurtarma disketi "
-"rəsmini\n"
-"istifadə edərək də bu disket yaradıla bilər.\n"
-"AƧılıŠdisketi yaratmaq istÉ™yirsiniz?\n"
-"AƧılıŠdisketi yaratmaq istÉ™yirsinizsÉ™, birinci disket sĆ¼rĆ¼cĆ¼yÉ™disklet "
-"yerlÉ™Ådirin\n"
-"və \"OLDU\" basın.\n"
-"%s"
-
-#: ../../install_steps_interactive.pm_.c:1200
-msgid ""
-"\n"
-"\n"
-"(WARNING! You're using XFS for your root partition,\n"
-"creating a bootdisk on a 1.44 Mb floppy will probably fail,\n"
-"because XFS needs a very large driver)."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1208
-msgid "Sorry, no floppy drive available"
-msgstr "BaÄıÅlayın, disket sĆ¼rĆ¼cĆ¼ yoxdur"
-
-#: ../../install_steps_interactive.pm_.c:1212
-msgid "Choose the floppy drive you want to use to make the bootdisk"
-msgstr "AƧılıŠdisketi yaratmaq Ć¼Ć§Ć¼n istifadÉ™ edilÉ™cÉ™k disket sĆ¼rĆ¼cĆ¼yĆ¼ seƧin"
-
-#: ../../install_steps_interactive.pm_.c:1216
-#, fuzzy, c-format
-msgid "Insert a floppy in %s"
-msgstr "%s sĆ¼rĆ¼cĆ¼sĆ¼nÉ™ bir disket taxın"
-
-#: ../../install_steps_interactive.pm_.c:1219
-msgid "Creating bootdisk"
-msgstr "AƧılıŠdisketi yaradılır"
-
-#: ../../install_steps_interactive.pm_.c:1226
-msgid "Preparing bootloader"
-msgstr "AƧılıŠyĆ¼klÉ™yici hazırlanır"
-
-#: ../../install_steps_interactive.pm_.c:1237
-msgid ""
-"You appear to have an OldWorld or Unknown\n"
-" machine, the yaboot bootloader will not work for you.\n"
-"The install will continue, but you'll\n"
-" need to use BootX to boot your machine"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1243
-msgid "Do you want to use aboot?"
-msgstr "aboot istifadə etmək istəyirsiniz?"
-
-#: ../../install_steps_interactive.pm_.c:1246
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"aboot qurulumunda xata, \n"
-"ilk disk bƶlməsini yox etsə belə yenə də qurulmasını istəyirsiniz?"
-
-#: ../../install_steps_interactive.pm_.c:1253
-#, fuzzy
-msgid "Installing bootloader"
-msgstr "Sistem yĆ¼klÉ™yicini qur"
-
-#: ../../install_steps_interactive.pm_.c:1259
-msgid "Installation of bootloader failed. The following error occured:"
-msgstr "AƧılıŠyĆ¼klÉ™yicisi qurulumu iflas etdi. XÉ™ta:"
-
-#: ../../install_steps_interactive.pm_.c:1267
-#, fuzzy, c-format
-msgid ""
-"You may need to change your Open Firmware boot-device to\n"
-" enable the bootloader. If you don't 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\n"
-"At your next boot you should see the bootloader prompt."
-msgstr ""
-"Siz Open FÄ°rmware aƧılıŠavadanlıÄınızı aƧılıŠyĆ¼klÉ™yicisini\n"
-"fÉ™allaÅdırmaq Ć¼Ć§Ć¼n dÉ™yiÅdirmÉ™li ola bilÉ™rsiniz. ʸmr-SeƧənÉ™k-O-F dĆ¼ymÉ™lÉ™rini\n"
-" yenidÉ™n baÅlarkÉ™n basın vÉ™ bunları girin:\n"
-" setenv boot-device $of_boot,\\\\:tbxi\n"
-" Sonra da bunları yazın: shut-down\n"
-"Bir sonrakı baÅlanÄıcda aƧılıŠyĆ¼klÉ™yicisi sÉ™tirini gƶrmÉ™lisiniz."
-
-#: ../../install_steps_interactive.pm_.c:1311
-#: ../../standalone/drakautoinst_.c:81
-#, c-format
-msgid "Insert a blank floppy in drive %s"
-msgstr "%s sĆ¼rĆ¼cĆ¼sĆ¼nÉ™ boÅ bir disket yerlÉ™Ådirin"
-
-#: ../../install_steps_interactive.pm_.c:1315
-#: ../../standalone/drakautoinst_.c:83
-msgid "Creating auto install floppy"
-msgstr "Avtomatik qurulum disketi hazırlanır"
-
-#: ../../install_steps_interactive.pm_.c:1326
-msgid ""
-"Some steps are not completed.\n"
-"\n"
-"Do you really want to quit now?"
-msgstr ""
-"Bə'zi bƶlmələr bitdi.\n"
-"\n"
-"Həqiqətən də Ƨıxmaq istəyirsiniz?"
-
-#: ../../install_steps_interactive.pm_.c:1337
-#, fuzzy
-msgid ""
-"Congratulations, installation is complete.\n"
-"Remove the boot media and press return to reboot.\n"
-"\n"
-"\n"
-"For information on fixes which are available for this release of Mandrake "
-"Linux,\n"
-"consult the Errata available from:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/82errata.php3\n"
-"\n"
-"\n"
-"Information on configuring your system is available in the post\n"
-"install chapter of the Official Mandrake Linux User's Guide."
-msgstr ""
-"Təbriklər, quruluŠbitdi.\n"
-"Cdrom vÉ™ disketi Ƨıxartdıqtan sonra Enter'É™ basaraq kompĆ¼terinizi \n"
-"yenidÉ™n baÅladın. Linuks Mandrake'nin bu buraxılıÅındakı yamaqlar haqqında \n"
-"mÉ™'lumat almaq Ć¼Ć§Ć¼n http://www.mandrakelinux.com Ć¼nvanından Errata'ya "
-"baxın.\n"
-"Sisteminizin qurÄuları haqqında daha geniÅ bilgiyi Linuks Mandrake \n"
-"Ä°stifadəƧi KitabcıÄında tapa bilÉ™rsiniz."
-
-#: ../../install_steps_interactive.pm_.c:1354
-msgid "Generate auto install floppy"
-msgstr "Avtomatik qurulum disketi hazırlanır"
-
-#: ../../install_steps_interactive.pm_.c:1356
-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 disketi hazırlanması seƧilərsə,\n"
-"bĆ¼tĆ¼n sabit disk mÉ™'lumatı daxil edilÉ™cÉ™kdir!!\n"
-"(yÉ™'ni baÅqa sistemi dÉ™ qura bilmÉ™k Ć¼Ć§Ć¼n).\n"
-"\n"
-"Bu qurulumu takrar etmək istəyə bilərsiniz axı.\n"
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Automated"
-msgstr "AvtomatlaÅdırılmıÅ"
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Replay"
-msgstr "Təkrarla"
-
-#: ../../install_steps_interactive.pm_.c:1364
-msgid "Save packages selection"
-msgstr "Paket seƧkilərini saxla"
-
-#: ../../install_steps_newt.pm_.c:22
-#, c-format
-msgid "Mandrake Linux Installation %s"
-msgstr "Linuks-Mandrake Qurulumu %s"
-
-#: ../../install_steps_newt.pm_.c:34
-msgid ""
-" <Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen "
-msgstr ""
-" <Tab>/<Alt-Tab> irÉ™li/geri | <BoÅluq> iÅarÉ™tlÉ™ | <F12> sonrakı ekran"
-
-#: ../../interactive.pm_.c:87
-msgid "kdesu missing"
-msgstr "kdesu əksikdir"
-
-#: ../../interactive.pm_.c:89 ../../interactive.pm_.c:100
-msgid "consolehelper missing"
-msgstr ""
-
-#: ../../interactive.pm_.c:152
-#, fuzzy
-msgid "Choose a file"
-msgstr "Monitorunuzu seƧin"
-
-#: ../../interactive.pm_.c:314
-msgid "Advanced"
-msgstr "ʸtraflı"
-
-#: ../../interactive.pm_.c:315
-msgid "Basic"
-msgstr ""
-
-#: ../../interactive.pm_.c:386
-msgid "Please wait"
-msgstr "XahiÅ edirik gƶzlÉ™yin"
-
-#: ../../interactive_gtk.pm_.c:605 ../../services.pm_.c:222
-msgid "Info"
-msgstr "MÉ™'lumat"
-
-#: ../../interactive_gtk.pm_.c:715
-msgid "Expand Tree"
-msgstr "AÄacı AƧ"
-
-#: ../../interactive_gtk.pm_.c:716
-msgid "Collapse Tree"
-msgstr "AÄacı Qapat"
-
-#: ../../interactive_gtk.pm_.c:717
-msgid "Toggle between flat and group sorted"
-msgstr "Otaq və grup sıralaması arasında gəz"
-
-#: ../../interactive_stdio.pm_.c:29 ../../interactive_stdio.pm_.c:147
-msgid "Bad choice, try again\n"
-msgstr "Xətalı tərcih, təkrar sınayın\n"
-
-#: ../../interactive_stdio.pm_.c:30 ../../interactive_stdio.pm_.c:148
-#, c-format
-msgid "Your choice? (default %s) "
-msgstr "SeƧkiniz? (əsas %s) "
-
-#: ../../interactive_stdio.pm_.c:52
-#, c-format
-msgid ""
-"Entries you'll have to fill:\n"
-"%s"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:68
-#, fuzzy, c-format
-msgid "Your choice? (0/1, default `%s') "
-msgstr "SeƧkiniz? (əsas %s) "
-
-#: ../../interactive_stdio.pm_.c:93
-#, fuzzy, c-format
-msgid "Button `%s': %s"
-msgstr "SeƧənəklər: %s"
-
-#: ../../interactive_stdio.pm_.c:94
-#, fuzzy
-msgid "Do you want to click on this button? "
-msgstr "aboot istifadə etmək istəyirsiniz?"
-
-#: ../../interactive_stdio.pm_.c:103
-#, fuzzy, c-format
-msgid "Your choice? (default `%s'%s) "
-msgstr "SeƧkiniz? (əsas %s) "
-
-#: ../../interactive_stdio.pm_.c:121
-#, c-format
-msgid "=> There are many things to choose from (%s).\n"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:124
-msgid ""
-"Please choose the first number of the 10-range you wish to edit,\n"
-"or just hit Enter to proceed.\n"
-"Your choice? "
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:137
-#, c-format
-msgid ""
-"=> Notice, a label changed:\n"
-"%s"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:144
-msgid "Re-submit"
-msgstr ""
-
-#: ../../keyboard.pm_.c:174 ../../keyboard.pm_.c:205
-msgid "Czech (QWERTZ)"
-msgstr "Ƈex dili (QWERTZ)"
-
-#: ../../keyboard.pm_.c:175 ../../keyboard.pm_.c:207
-msgid "German"
-msgstr "Almanca"
-
-#: ../../keyboard.pm_.c:176
-msgid "Dvorak"
-msgstr "Dvorak"
-
-#: ../../keyboard.pm_.c:177 ../../keyboard.pm_.c:214
-msgid "Spanish"
-msgstr "Ä°spanca"
-
-#: ../../keyboard.pm_.c:178 ../../keyboard.pm_.c:215
-msgid "Finnish"
-msgstr "FincÉ™"
-
-#: ../../keyboard.pm_.c:179 ../../keyboard.pm_.c:216
-msgid "French"
-msgstr "Fransızca"
-
-#: ../../keyboard.pm_.c:180 ../../keyboard.pm_.c:241
-msgid "Norwegian"
-msgstr "NorveƧcə"
-
-#: ../../keyboard.pm_.c:181
-msgid "Polish"
-msgstr "Polyakca"
-
-#: ../../keyboard.pm_.c:182 ../../keyboard.pm_.c:249
-msgid "Russian"
-msgstr "Rusca"
-
-#: ../../keyboard.pm_.c:184 ../../keyboard.pm_.c:251
-msgid "Swedish"
-msgstr "İsveƧcə"
-
-#: ../../keyboard.pm_.c:185 ../../keyboard.pm_.c:266
-msgid "UK keyboard"
-msgstr "İngiliz (UK) klaviaturası"
-
-#: ../../keyboard.pm_.c:186 ../../keyboard.pm_.c:267
-msgid "US keyboard"
-msgstr "Amerikan (US) klaviaturası"
-
-#: ../../keyboard.pm_.c:188
-#, fuzzy
-msgid "Albanian"
-msgstr "Farsca"
-
-#: ../../keyboard.pm_.c:189
-msgid "Armenian (old)"
-msgstr "Ermenicə (kƶhnə) "
-
-#: ../../keyboard.pm_.c:190
-msgid "Armenian (typewriter)"
-msgstr "ErmenicÉ™ (yazı maÅını)"
-
-#: ../../keyboard.pm_.c:191
-msgid "Armenian (phonetic)"
-msgstr "ErmenicÉ™ (fonetik)"
-
-#: ../../keyboard.pm_.c:196
-msgid "Azerbaidjani (latin)"
-msgstr "Azərbaycanca (latın)"
-
-#: ../../keyboard.pm_.c:198
-msgid "Belgian"
-msgstr "BelƧika dili"
-
-#: ../../keyboard.pm_.c:199
-#, fuzzy
-msgid "Bulgarian (phonetic)"
-msgstr "ErmenicÉ™ (fonetik)"
-
-#: ../../keyboard.pm_.c:200
-#, fuzzy
-msgid "Bulgarian (BDS)"
-msgstr "Bulqarca"
-
-#: ../../keyboard.pm_.c:201
-msgid "Brazilian (ABNT-2)"
-msgstr "Brazilya dili (ABNT-2)"
-
-#: ../../keyboard.pm_.c:202
-msgid "Belarusian"
-msgstr "Belarusca"
-
-#: ../../keyboard.pm_.c:203
-msgid "Swiss (German layout)"
-msgstr "İsveƧcə (Alman sırası)"
-
-#: ../../keyboard.pm_.c:204
-msgid "Swiss (French layout)"
-msgstr "İsveƧcə (Fransız sırası)"
-
-#: ../../keyboard.pm_.c:206
-msgid "Czech (QWERTY)"
-msgstr "Ƈex dili (QWERTY)"
-
-#: ../../keyboard.pm_.c:208
-msgid "German (no dead keys)"
-msgstr "Almanca (ƶlĆ¼ dĆ¼ymÉ™lÉ™r olmasın)"
-
-#: ../../keyboard.pm_.c:209
-msgid "Danish"
-msgstr "Danimarka dili"
-
-#: ../../keyboard.pm_.c:210
-msgid "Dvorak (US)"
-msgstr "Dvorak (US)"
-
-#: ../../keyboard.pm_.c:211
-msgid "Dvorak (Norwegian)"
-msgstr "Dvorak (NorveƧcə)"
-
-#: ../../keyboard.pm_.c:212
-#, fuzzy
-msgid "Dvorak (Swedish)"
-msgstr "Dvorak (US)"
-
-#: ../../keyboard.pm_.c:213
-msgid "Estonian"
-msgstr "Estoniya dili"
-
-#: ../../keyboard.pm_.c:217
-msgid "Georgian (\"Russian\" layout)"
-msgstr "GĆ¼rcĆ¼ dili (\"Rus\" sırası)"
-
-#: ../../keyboard.pm_.c:218
-msgid "Georgian (\"Latin\" layout)"
-msgstr "GĆ¼rcĆ¼ dili (\"Latın\" sırası)"
-
-#: ../../keyboard.pm_.c:219
-msgid "Greek"
-msgstr "Yunanca"
-
-#: ../../keyboard.pm_.c:220
-msgid "Hungarian"
-msgstr "Macarca"
-
-#: ../../keyboard.pm_.c:221
-msgid "Croatian"
-msgstr "Xırvatca"
-
-#: ../../keyboard.pm_.c:222
-msgid "Israeli"
-msgstr "Ä°srail"
-
-#: ../../keyboard.pm_.c:223
-msgid "Israeli (Phonetic)"
-msgstr "Ä°srail (Fonetik)"
-
-#: ../../keyboard.pm_.c:224
-msgid "Iranian"
-msgstr "Farsca"
-
-#: ../../keyboard.pm_.c:225
-msgid "Icelandic"
-msgstr "Ä°zlandiya dili"
-
-#: ../../keyboard.pm_.c:226
-msgid "Italian"
-msgstr "Ä°talyanca"
-
-#: ../../keyboard.pm_.c:228
-msgid "Japanese 106 keys"
-msgstr "Yaponca 106 dĆ¼ymÉ™li"
-
-#: ../../keyboard.pm_.c:231
-msgid "Korean keyboard"
-msgstr "Koreya klaviaturası"
-
-#: ../../keyboard.pm_.c:232
-msgid "Latin American"
-msgstr "Latın Amerika dili"
-
-#: ../../keyboard.pm_.c:233
-msgid "Lithuanian AZERTY (old)"
-msgstr "Litvaniya dili AZERTY (kƶhnə)"
-
-#: ../../keyboard.pm_.c:235
-msgid "Lithuanian AZERTY (new)"
-msgstr "Litvanya dili AZERTY (yeni)"
-
-#: ../../keyboard.pm_.c:236
-msgid "Lithuanian \"number row\" QWERTY"
-msgstr "Litvanya dili \"number row\" QWERTY"
-
-#: ../../keyboard.pm_.c:237
-msgid "Lithuanian \"phonetic\" QWERTY"
-msgstr "Litvanya dili \"Fonetik\" QWERTY"
-
-#: ../../keyboard.pm_.c:238
-#, fuzzy
-msgid "Latvian"
-msgstr "Yeri"
-
-#: ../../keyboard.pm_.c:239
-msgid "Macedonian"
-msgstr "Makedoniya dili"
-
-#: ../../keyboard.pm_.c:240
-msgid "Dutch"
-msgstr "Hollandiya dili"
-
-#: ../../keyboard.pm_.c:242
-msgid "Polish (qwerty layout)"
-msgstr "Polyakca (QWERTY sırası)"
-
-#: ../../keyboard.pm_.c:243
-msgid "Polish (qwertz layout)"
-msgstr "Polyakca (QWERTZ sırası)"
-
-#: ../../keyboard.pm_.c:244
-msgid "Portuguese"
-msgstr "Portuqalca"
-
-#: ../../keyboard.pm_.c:245
-msgid "Canadian (Quebec)"
-msgstr "Fransızca (Kanada/Quebec)"
-
-#: ../../keyboard.pm_.c:247
-#, fuzzy
-msgid "Romanian (qwertz)"
-msgstr "Rusca (Yawerty)"
-
-#: ../../keyboard.pm_.c:248
-#, fuzzy
-msgid "Romanian (qwerty)"
-msgstr "Rusca (Yawerty)"
-
-#: ../../keyboard.pm_.c:250
-msgid "Russian (Yawerty)"
-msgstr "Rusca (Yawerty)"
-
-#: ../../keyboard.pm_.c:252
-msgid "Slovenian"
-msgstr "SlovencÉ™"
-
-#: ../../keyboard.pm_.c:253
-msgid "Slovakian (QWERTZ)"
-msgstr "Slovakca (QWERTZ)"
-
-#: ../../keyboard.pm_.c:254
-msgid "Slovakian (QWERTY)"
-msgstr "Slovakca (QWERTY)"
-
-#: ../../keyboard.pm_.c:256
-#, fuzzy
-msgid "Serbian (cyrillic)"
-msgstr "Azərbaycanca (kiril)"
-
-#: ../../keyboard.pm_.c:258
-#, fuzzy
-msgid "Tamil"
-msgstr "Cədvəl"
-
-#: ../../keyboard.pm_.c:259
-msgid "Thai keyboard"
-msgstr "Thai klaviatura"
-
-#: ../../keyboard.pm_.c:261
-#, fuzzy
-msgid "Tajik keyboard"
-msgstr "Thai klaviatura"
-
-#: ../../keyboard.pm_.c:262
-msgid "Turkish (traditional \"F\" model)"
-msgstr "TĆ¼rkcÉ™ (É™nÉ™nÉ™vi \"F\" klaviatura)"
-
-#: ../../keyboard.pm_.c:263
-msgid "Turkish (modern \"Q\" model)"
-msgstr "TĆ¼rkcÉ™ (mĆ¼asir \"Q\" klaviatura)"
-
-#: ../../keyboard.pm_.c:265
-msgid "Ukrainian"
-msgstr "Ukrayna dili"
-
-#: ../../keyboard.pm_.c:268
-msgid "US keyboard (international)"
-msgstr "Amerikan (US) klaviaturası (beynəlmiləl)"
-
-#: ../../keyboard.pm_.c:269
-msgid "Vietnamese \"numeric row\" QWERTY"
-msgstr "Vyetnam dili \"numeric row\" QWERTY"
-
-#: ../../keyboard.pm_.c:270
-#, fuzzy
-msgid "Yugoslavian (latin)"
-msgstr "Yugoslavca (latın/kiril)"
-
-#: ../../keyboard.pm_.c:278
-msgid "Right Alt key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:279
-msgid "Both Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:280
-msgid "Control and Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:281
-msgid "CapsLock key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:282
-msgid "Ctrl and Alt keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:283
-msgid "Alt and Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:284
-msgid "\"Menu\" key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:285
-msgid "Left \"Windows\" key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:286
-msgid "Right \"Windows\" key"
-msgstr ""
-
-#: ../../loopback.pm_.c:32
-#, c-format
-msgid "Circular mounts %s\n"
-msgstr "DairÉ™vi baÄlama %s\n"
-
-#: ../../lvm.pm_.c:88
-msgid "Remove the logical volumes first\n"
-msgstr "Məntiqi ciltləri birinci olaraq sil\n"
-
-#: ../../modules.pm_.c:826
-msgid ""
-"PCMCIA support no longer exist for 2.2 kernels. Please use a 2.4 kernel."
-msgstr ""
-
-#: ../../mouse.pm_.c:25
-msgid "Sun - Mouse"
-msgstr "Sun - SiƧan"
-
-#: ../../mouse.pm_.c:32
-msgid "Logitech MouseMan+"
-msgstr "Logitech MouseMan+"
-
-#: ../../mouse.pm_.c:33
-msgid "Generic PS2 Wheel Mouse"
-msgstr "Sıravi PS2 Ƈərxli SiƧan"
-
-#: ../../mouse.pm_.c:34
-msgid "GlidePoint"
-msgstr "GlidePoint"
-
-#: ../../mouse.pm_.c:36 ../../mouse.pm_.c:63
-msgid "Kensington Thinking Mouse"
-msgstr "Kensington Thinking Mouse"
-
-#: ../../mouse.pm_.c:37 ../../mouse.pm_.c:59
-msgid "Genius NetMouse"
-msgstr "Genius NetMouse"
-
-#: ../../mouse.pm_.c:38
-msgid "Genius NetScroll"
-msgstr "Genius NetScroll"
-
-#: ../../mouse.pm_.c:43 ../../mouse.pm_.c:68
-msgid "1 button"
-msgstr "1 dĆ¼ymÉ™"
-
-#: ../../mouse.pm_.c:44 ../../mouse.pm_.c:51
-msgid "Generic 2 Button Mouse"
-msgstr "Sıravi 2 DĆ¼ymÉ™li SiƧan"
-
-#: ../../mouse.pm_.c:45
-msgid "Generic"
-msgstr "Ćmumi"
-
-#: ../../mouse.pm_.c:46
-msgid "Wheel"
-msgstr "Ƈərx"
-
-#: ../../mouse.pm_.c:49
-msgid "serial"
-msgstr "serial"
-
-#: ../../mouse.pm_.c:52
-msgid "Generic 3 Button Mouse"
-msgstr "Sıravi 3 DĆ¼ymÉ™li SiƧan"
-
-#: ../../mouse.pm_.c:53
-msgid "Microsoft IntelliMouse"
-msgstr "Microsoft IntelliMouse"
-
-#: ../../mouse.pm_.c:54
-msgid "Logitech MouseMan"
-msgstr "Logitech MouseMan"
-
-#: ../../mouse.pm_.c:55
-msgid "Mouse Systems"
-msgstr "Mouse Systems"
-
-#: ../../mouse.pm_.c:57
-msgid "Logitech CC Series"
-msgstr "Logitech CC Series"
-
-#: ../../mouse.pm_.c:58
-msgid "Logitech MouseMan+/FirstMouse+"
-msgstr "Logitech MouseMan+/FirstMouse+"
-
-#: ../../mouse.pm_.c:60
-msgid "MM Series"
-msgstr "MM Series"
-
-#: ../../mouse.pm_.c:61
-msgid "MM HitTablet"
-msgstr "MM HitTablet"
-
-#: ../../mouse.pm_.c:62
-msgid "Logitech Mouse (serial, old C7 type)"
-msgstr "Logitech mouse (serial ya da kƶhnÉ™ C7 nƶvĆ¼)"
-
-#: ../../mouse.pm_.c:66
-msgid "busmouse"
-msgstr "busmouse"
-
-#: ../../mouse.pm_.c:69
-msgid "2 buttons"
-msgstr "2 dĆ¼ymÉ™li"
-
-#: ../../mouse.pm_.c:70
-msgid "3 buttons"
-msgstr "3 dĆ¼ymÉ™li"
-
-#: ../../mouse.pm_.c:73
-msgid "none"
-msgstr "heƧ biri"
-
-#: ../../mouse.pm_.c:75
-msgid "No mouse"
-msgstr "SiƧansızs"
-
-#: ../../mouse.pm_.c:499
-msgid "Please test the mouse"
-msgstr "XahiÅ edirik siƧanınızı seƧin"
-
-#: ../../mouse.pm_.c:500
-msgid "To activate the mouse,"
-msgstr "SiƧanınızı iÅÉ™ salmaq Ć¼Ć§Ć¼n,"
-
-#: ../../mouse.pm_.c:501
-msgid "MOVE YOUR WHEEL!"
-msgstr "TʸKʸRİ OYNADIN!"
-
-#: ../../my_gtk.pm_.c:651
-msgid "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"
-msgstr ""
-
-#: ../../my_gtk.pm_.c:686
-msgid "Finish"
-msgstr "Qurtar"
-
-#: ../../my_gtk.pm_.c:686 ../../printerdrake.pm_.c:1588
-msgid "Next ->"
-msgstr "Sonrakı ->"
-
-#: ../../my_gtk.pm_.c:687 ../../printerdrake.pm_.c:1586
-msgid "<- Previous"
-msgstr "<- ʸvvəlki"
-
-#: ../../my_gtk.pm_.c:1019
-msgid "Is this correct?"
-msgstr "DoÄrudur?"
-
-#: ../../network/adsl.pm_.c:19 ../../network/ethernet.pm_.c:36
-msgid "Connect to the Internet"
-msgstr "Ä°nternetÉ™ baÄlan"
-
-#: ../../network/adsl.pm_.c:20
-msgid ""
-"The most common way to connect with adsl is pppoe.\n"
-"Some connections use pptp, a few ones use dhcp.\n"
-"If you don't know, choose 'use pppoe'"
-msgstr ""
-"ADSL ilÉ™ internetÉ™ baÄlanmanın É™n yaxÅı yolu pppoe'dur.\n"
-"BÉ™zi baÄlantılar pptp istifadÉ™ edir, Ƨox azı isÉ™ dhcp iÅlÉ™dir.\n"
-"Bilmirsiniz isə 'pppop istifadə et'i seƧin"
-
-#: ../../network/adsl.pm_.c:22
-msgid "Alcatel speedtouch usb"
-msgstr ""
-
-#: ../../network/adsl.pm_.c:22
-msgid "use dhcp"
-msgstr "dhcp istifadÉ™ et"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pppoe"
-msgstr "pppoe istifadÉ™ et"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pptp"
-msgstr "pptpe istifadÉ™ et"
-
-#: ../../network/ethernet.pm_.c:37
-msgid ""
-"Which dhcp client do you want to use?\n"
-"Default is dhcpcd"
-msgstr ""
-"Hansı dhcp alıcısını istifadə edəcəksiniz?\n"
-"ʸsası dhcpcd dir"
-
-#: ../../network/ethernet.pm_.c:88
-msgid ""
-"No ethernet network adapter has been detected on your system.\n"
-"I cannot set up this connection type."
-msgstr ""
-"SisteminizdÉ™ heƧ bir eternet ÅÉ™bÉ™kÉ™ adapteri tapıla bilmÉ™di.\n"
-"Bu baÄlantı ÅÉ™klini qura bilmÉ™rÉ™m."
-
-#: ../../network/ethernet.pm_.c:92 ../../standalone/drakgw_.c:252
-msgid "Choose the network interface"
-msgstr "Å˛É™bÉ™kÉ™ ara Ć¼zĆ¼nĆ¼ seƧin"
-
-#: ../../network/ethernet.pm_.c:93
-msgid ""
-"Please choose which network adapter you want to use to connect to Internet"
-msgstr "Ä°nternetÉ™ baÄlanmaq Ć¼Ć§Ć¼n ÅÉ™bÉ™kÉ™ adapteri seƧin."
-
-#: ../../network/ethernet.pm_.c:178
-msgid "no network card found"
-msgstr "ÅÉ™bÉ™kÉ™ kartı tapılmadı"
-
-#: ../../network/ethernet.pm_.c:202 ../../network/network.pm_.c:360
-msgid "Configuring network"
-msgstr "Å˛É™bÉ™kÉ™ QurÄuları"
-
-#: ../../network/ethernet.pm_.c:203
-msgid ""
-"Please enter your host name if you know it.\n"
-"Some DHCP servers require the hostname to work.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''."
-msgstr ""
-"XahiÅ edirik kompĆ¼terinizın adını girin.\n"
-"MÉ™sÉ™lÉ™n``kompĆ¼teradı.sahÉ™adı.com''.\n"
-"ʸgÉ™ ÅÉ™bÉ™kÉ™ keƧidi istifadÉ™ edirsinizsÉ™ bunun da IP nƶmrÉ™sini girmÉ™lisiniz."
-
-#: ../../network/ethernet.pm_.c:207 ../../network/network.pm_.c:365
-msgid "Host name"
-msgstr "Ev sahibi adı"
-
-#: ../../network/isdn.pm_.c:21 ../../network/isdn.pm_.c:44
-#: ../../network/netconnect.pm_.c:95 ../../network/netconnect.pm_.c:109
-#: ../../network/netconnect.pm_.c:164 ../../network/netconnect.pm_.c:175
-#: ../../network/netconnect.pm_.c:202 ../../network/netconnect.pm_.c:225
-#: ../../network/netconnect.pm_.c:233
-msgid "Network Configuration Wizard"
-msgstr "Å˛É™bÉ™kÉ™ QuraÅdırılması Sehirbazı"
-
-#: ../../network/isdn.pm_.c:22
-msgid "External ISDN modem"
-msgstr "Xarici ISDN kart"
-
-#: ../../network/isdn.pm_.c:22
-msgid "Internal ISDN card"
-msgstr "Daxili ISDN kart"
-
-#: ../../network/isdn.pm_.c:22
-msgid "What kind is your ISDN connection?"
-msgstr "ISDN baÄlantınızın nƶvĆ¼ nÉ™dir?"
-
-#: ../../network/isdn.pm_.c:45
-msgid ""
-"Which ISDN configuration do you prefer?\n"
-"\n"
-"* The Old configuration uses isdn4net. It contains powerfull\n"
-" tools, but is tricky to configure, and not standard.\n"
-"\n"
-"* The New configuration is easier to understand, more\n"
-" standard, but with less tools.\n"
-"\n"
-"We recommand the light configuration.\n"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:54
-#, fuzzy
-msgid "New configuration (isdn-light)"
-msgstr "Oddan divar (Firewall) quruluÅu tapıldı!"
-
-#: ../../network/isdn.pm_.c:54
-#, fuzzy
-msgid "Old configuration (isdn4net)"
-msgstr "Oddan divar (Firewall) quruluÅu tapıldı!"
-
-#: ../../network/isdn.pm_.c:170 ../../network/isdn.pm_.c:188
-#: ../../network/isdn.pm_.c:198 ../../network/isdn.pm_.c:205
-#: ../../network/isdn.pm_.c:215
-msgid "ISDN Configuration"
-msgstr "ISDN quraÅdırılması"
-
-#: ../../network/isdn.pm_.c:170
-msgid ""
-"Select your provider.\n"
-" If it's not in the list, choose Unlisted"
-msgstr ""
-"İnternet xidmət vericinizi seƧin.\n"
-"Siyahıda deyilsə Siyahıda deyil'i seƧin."
-
-#: ../../network/isdn.pm_.c:183
-#, fuzzy
-msgid "Europe protocol"
-msgstr "AƧılıŠProtokolu"
-
-#: ../../network/isdn.pm_.c:183
-#, fuzzy
-msgid "Europe protocol (EDSS1)"
-msgstr "Avropa (EDSS1)"
-
-#: ../../network/isdn.pm_.c:185
-#, fuzzy
-msgid "Protocol for the rest of the world"
-msgstr "BĆ¼tĆ¼n dĆ¼nya"
-
-#: ../../network/isdn.pm_.c:185
-#, fuzzy
-msgid ""
-"Protocol for the rest of the world \n"
-" no D-Channel (leased lines)"
-msgstr ""
-"BĆ¼tĆ¼n dĆ¼nya \n"
-" D-Channel'lə xaric (kiralıq xətlər)"
-
-#: ../../network/isdn.pm_.c:189
-msgid "Which protocol do you want to use ?"
-msgstr "Hansı protokolu istifadə etmək istəyirsiniz?"
-
-#: ../../network/isdn.pm_.c:199
-msgid "What kind of card do you have?"
-msgstr "Hansı nƶv kartınız var?"
-
-#: ../../network/isdn.pm_.c:200
-msgid "I don't know"
-msgstr "Bilmirəm"
-
-#: ../../network/isdn.pm_.c:200
-msgid "ISA / PCMCIA"
-msgstr "ISA / PCMCIA"
-
-#: ../../network/isdn.pm_.c:200
-msgid "PCI"
-msgstr "PCI"
-
-#: ../../network/isdn.pm_.c:206
-msgid ""
-"\n"
-"If you have an ISA card, the values on the next screen should be right.\n"
-"\n"
-"If you have a PCMCIA card, you have to know the irq and io of your card.\n"
-msgstr ""
-"\n"
-"ISA kartınız var isÉ™ sonrakı ekrandakı qiymÉ™tlÉ™r doÄru olmalıdır.\n"
-"\n"
-"PCMCIA kartınız var isə kartınızın irq və ya io'sunu bilməlisiniz.\n"
-
-#: ../../network/isdn.pm_.c:210
-msgid "Abort"
-msgstr "Dayandır"
-
-#: ../../network/isdn.pm_.c:210
-msgid "Continue"
-msgstr "Davam et"
-
-#: ../../network/isdn.pm_.c:216
-msgid "Which is your ISDN card ?"
-msgstr "Hansısı sizin ISDN kartınızdır?"
-
-#: ../../network/isdn.pm_.c:235
-msgid ""
-"I have detected an ISDN PCI Card, but I don't know the type. Please select "
-"one PCI card on the next screen."
-msgstr ""
-"ISDN PCI kart tapdım, amma nƶvĆ¼nĆ¼ bilmirÉ™m. XahiÅ edirik sonrakı ekrandakı "
-"kartlardan birini seƧin."
-
-#: ../../network/isdn.pm_.c:244
-msgid "No ISDN PCI card found. Please select one on the next screen."
-msgstr "HeƧ bir ISDN PCI kart tapılmaı. Sonrakı ekrandakılardan seƧin."
-
-#: ../../network/modem.pm_.c:39
-msgid "Please choose which serial port your modem is connected to."
-msgstr "Modeminizin hansı serial qapıya baÄlı olduÄunu seƧiniz"
-
-#: ../../network/modem.pm_.c:44
-msgid "Dialup options"
-msgstr "ƇevirmÉ™li ÅÉ™bÉ™kÉ™ seƧənÉ™klÉ™ri"
-
-#: ../../network/modem.pm_.c:45 ../../standalone/draknet_.c:622
-msgid "Connection name"
-msgstr "BaÄlantı adı"
-
-#: ../../network/modem.pm_.c:46 ../../standalone/draknet_.c:623
-msgid "Phone number"
-msgstr "Telefon nƶmrəsi"
-
-#: ../../network/modem.pm_.c:47 ../../standalone/draknet_.c:624
-msgid "Login ID"
-msgstr "GiriŠadı"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "CHAP"
-msgstr ""
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "PAP"
-msgstr "PAP"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Script-based"
-msgstr "Skript əsaslı"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Terminal-based"
-msgstr "Terminal əsaslı"
-
-#: ../../network/modem.pm_.c:50 ../../standalone/draknet_.c:627
-msgid "Domain name"
-msgstr "Sahə(domain) adı"
-
-#: ../../network/modem.pm_.c:51 ../../standalone/draknet_.c:628
-msgid "First DNS Server (optional)"
-msgstr "Birinci DNS Vericisi (arzuya gƶrə)"
-
-#: ../../network/modem.pm_.c:52 ../../standalone/draknet_.c:629
-msgid "Second DNS Server (optional)"
-msgstr "İkinci DNS Vericisi (arzuya gƶrə)"
-
-#: ../../network/netconnect.pm_.c:34
-msgid ""
-"\n"
-"You can disconnect or reconfigure your connection."
-msgstr ""
-"\n"
-"BaÄlantınızı kÉ™sÉ™ bilÉ™rsiniz. Ya da baÄlantını yenidÉ™n dÉ™ quraÅdıra "
-"bilərsiniz."
-
-#: ../../network/netconnect.pm_.c:34 ../../network/netconnect.pm_.c:37
-msgid ""
-"\n"
-"You can reconfigure your connection."
-msgstr ""
-"\n"
-"BaÄlantınızı yenidÉ™n quraÅdıra bilÉ™rsiniz."
-
-#: ../../network/netconnect.pm_.c:34
-msgid "You are currently connected to internet."
-msgstr "Artıq Ä°nternetÉ™ baÄlısınız."
-
-#: ../../network/netconnect.pm_.c:37
-msgid ""
-"\n"
-"You can connect to Internet or reconfigure your connection."
-msgstr ""
-"\n"
-"Ä°stÉ™sÉ™niz Ä°nternetÉ™ baÄlana bilÉ™rsiniz ya da yeniden quraÅdıra bilÉ™rsiniz."
-
-#: ../../network/netconnect.pm_.c:37
-msgid "You are not currently connected to Internet."
-msgstr "HÉ™lÉ™ Ä°nternetÉ™ baÄlı deyilsiniz."
-
-#: ../../network/netconnect.pm_.c:41
-msgid "Connect"
-msgstr "BaÄlan"
-
-#: ../../network/netconnect.pm_.c:43
-msgid "Disconnect"
-msgstr "BaÄlantını kÉ™s"
-
-#: ../../network/netconnect.pm_.c:45
-#, fuzzy
-msgid "Configure the connection"
-msgstr "Å˛É™bÉ™kÉ™ni qur"
-
-#: ../../network/netconnect.pm_.c:50
-msgid "Internet connection & configuration"
-msgstr "Ä°nternet baÄlantısı & quraÅdırılması"
-
-#: ../../network/netconnect.pm_.c:100
-#, fuzzy, c-format
-msgid "We are now going to configure the %s connection."
-msgstr ""
-"\n"
-"BaÄlantınızı kÉ™sÉ™ bilÉ™rsiniz. Ya da baÄlantını yenidÉ™n dÉ™ quraÅdıra "
-"bilərsiniz."
-
-#: ../../network/netconnect.pm_.c:109
-#, fuzzy, c-format
-msgid ""
-"\n"
-"\n"
-"\n"
-"We are now going to configure the %s connection.\n"
-"\n"
-"\n"
-"Press OK to continue."
-msgstr ""
-"\n"
-"BaÄlantınızı kÉ™sÉ™ bilÉ™rsiniz. Ya da baÄlantını yenidÉ™n dÉ™ quraÅdıra "
-"bilərsiniz."
-
-#: ../../network/netconnect.pm_.c:138 ../../network/netconnect.pm_.c:252
-#: ../../network/netconnect.pm_.c:271 ../../network/tools.pm_.c:57
-msgid "Network Configuration"
-msgstr "Å˛É™bÉ™kÉ™ quraÅdırılması"
-
-#: ../../network/netconnect.pm_.c:139
-msgid ""
-"Because you are doing a network installation, your network is already "
-"configured.\n"
-"Click on Ok to keep your configuration, or cancel to reconfigure your "
-"Internet & Network connection.\n"
-msgstr ""
-"Å˛É™bÉ™kÉ™dÉ™n quraÅdırması apardıÄınız Ć¼Ć§Ć¼n ÅÉ™bÉ™kÉ™niz artıq qurulmuÅ olmalıdır.\n"
-"Å˛É™bÉ™kÉ™/Ä°nternet baÄlantınızı yenidÉ™n quraÅdırmaq Ć¼Ć§Ć¼n Oldu'ya yoxsa LÉ™Äv "
-"et'ə basın.\n"
-
-#: ../../network/netconnect.pm_.c:165
-msgid ""
-"Welcome to The Network Configuration Wizard\n"
-"\n"
-"We are about to configure your internet/network connection.\n"
-"If you don't want to use the auto detection, deselect the checkbox.\n"
-msgstr ""
-"Å˛É™bÉ™kÉ™ QuraÅdırma Sehirbazına XoƧ GÉ™ldiniz\n"
-"\n"
-"Ä°nternet/Å˛É™bÉ™kÉ™ qurÄularınızı edÉ™cÉ™yik.\n"
-"Avtomatik tÉ™sbit istÉ™mirsiniz isÉ™ iÅarÉ™ti qaldırın.\n"
-
-#: ../../network/netconnect.pm_.c:167
-msgid "Choose the profile to configure"
-msgstr "Qurulacaq profili seƧin"
-
-#: ../../network/netconnect.pm_.c:168
-msgid "Use auto detection"
-msgstr "Avtomatik tÉ™sbit iÅlÉ™t"
-
-#: ../../network/netconnect.pm_.c:175
-msgid "Detecting devices..."
-msgstr "Avadanlıqlar tanınır..."
-
-#: ../../network/netconnect.pm_.c:186 ../../network/netconnect.pm_.c:195
-msgid "Normal modem connection"
-msgstr "Normal modem təsbiti"
-
-#: ../../network/netconnect.pm_.c:186 ../../network/netconnect.pm_.c:195
-#, c-format
-msgid "detected on port %s"
-msgstr "%s qapısında tapıldı"
-
-#: ../../network/netconnect.pm_.c:187 ../../network/netconnect.pm_.c:196
-msgid "ISDN connection"
-msgstr "ISDN BaÄlantısı"
-
-#: ../../network/netconnect.pm_.c:187 ../../network/netconnect.pm_.c:196
-#, c-format
-msgid "detected %s"
-msgstr "%s tapıldı"
-
-#: ../../network/netconnect.pm_.c:188 ../../network/netconnect.pm_.c:197
-#, fuzzy
-msgid "ADSL connection"
-msgstr "Yerli Å˛É™bÉ™kÉ™ quraÅdırılması"
-
-#: ../../network/netconnect.pm_.c:188 ../../network/netconnect.pm_.c:197
-#, c-format
-msgid "detected on interface %s"
-msgstr "%s ara Ć¼zĆ¼ndÉ™ tapıldı"
-
-#: ../../network/netconnect.pm_.c:189 ../../network/netconnect.pm_.c:198
-msgid "Cable connection"
-msgstr "Kabel baÄlantısı"
-
-#: ../../network/netconnect.pm_.c:189 ../../network/netconnect.pm_.c:198
-#, fuzzy
-msgid "cable connection detected"
-msgstr "Kabel baÄlantısı"
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-msgid "LAN connection"
-msgstr "Yerli Å˛É™bÉ™kÉ™ quraÅdırılması"
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-msgid "ethernet card(s) detected"
-msgstr "eternet kart tapıldı"
-
-#: ../../network/netconnect.pm_.c:202
-#, fuzzy
-msgid "Choose the connection you want to configure"
-msgstr "İstifadə edəcəyiniz vasitəni seƧin"
-
-#: ../../network/netconnect.pm_.c:226
-msgid ""
-"You have configured multiple ways to connect to the Internet.\n"
-"Choose the one you want to use.\n"
-"\n"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:227
-#, fuzzy
-msgid "Internet connection"
-msgstr "Ä°nternet BaÄlantısı BƶlĆ¼ÅdĆ¼rĆ¼lmÉ™si"
-
-#: ../../network/netconnect.pm_.c:233
-msgid "Do you want to start the connection at boot?"
-msgstr "BaÄlantınızı aƧılıÅda baÅlatmaq istÉ™yirsiniz?"
-
-#: ../../network/netconnect.pm_.c:247
-msgid "Network configuration"
-msgstr "Å˛É™bÉ™kÉ™ quraÅdırılması"
-
-#: ../../network/netconnect.pm_.c:248
-msgid "The network needs to be restarted"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:252
-#, c-format
-msgid ""
-"A problem occured while restarting the network: \n"
-"\n"
-"%s"
-msgstr ""
-"Å˛É™bÉ™kÉ™nin yenidÉ™n baÅladılması sırasında xÉ™ta oldu: \n"
-"\n"
-"%s"
-
-#: ../../network/netconnect.pm_.c:261
-msgid ""
-"Congratulations, the network and Internet configuration is finished.\n"
-"The configuration will now be applied to your system.\n"
-"\n"
-msgstr ""
-"TÉ™brik edirik, internet vÉ™ ÅÉ™bÉ™kÉ™ quraÅdırılması qurtardı.\n"
-"\n"
-"QurÄular indi sisteminizÉ™ É™lavÉ™ edilÉ™cÉ™k.\n"
-
-#: ../../network/netconnect.pm_.c:265
-msgid ""
-"After this is done, we recommend that you restart your X environment to "
-"avoid any hostname-related problems."
-msgstr ""
-"Bu edildikdÉ™n sonra XdÉ™n ƧıxmaÄınızı tƶvsiyyÉ™ edirik, yoxsa\n"
-"verici adı xəsarətləri meydana gələ bilər."
-
-#: ../../network/netconnect.pm_.c:266
-msgid ""
-"Problems occured during configuration.\n"
-"Test your connection via net_monitor or mcc. If your connection doesn't "
-"work, you might want to relaunch the configuration"
-msgstr ""
-
-#: ../../network/network.pm_.c:292
-msgid ""
-"WARNING: This device has been previously configured to connect to the "
-"Internet.\n"
-"Simply accept to keep this device configured.\n"
-"Modifying the fields below will override this configuration."
-msgstr ""
-"DÄ°QQʸT: Bu avadanlıq daha É™vvÉ™l Ä°ntenetÉ™ baÄlanmaq Ć¼Ć§Ć¼n qurulmuÅdur.\n"
-"AvadanlıÄın qurÄularını dÉ™yiÅdirmaÉ™k istÉ™mirsiniz isÉ™,\n"
-"OLDU ya basın.\n"
-"AÅaÄıdakı giriÅlÉ™ri dĆ¼zÉ™ltmÉ™niz ƶzĆ¼nĆ¼ É™vvÉ™lki qurÄuların Ć¼stĆ¼nÉ™ yazacaqdır."
-
-#: ../../network/network.pm_.c:297
-msgid ""
-"Please enter the IP configuration for this machine.\n"
-"Each item should be entered as an IP address in dotted-decimal\n"
-"notation (for example, 1.2.3.4)."
-msgstr "XahiÅ edirik bu kompĆ¼ter Ć¼Ć§Ć¼n IP qurÄularını girin"
-
-#: ../../network/network.pm_.c:306 ../../network/network.pm_.c:307
-#, c-format
-msgid "Configuring network device %s"
-msgstr "%s ÅÉ™bÉ™kÉ™ avadanlıÄı qurulur"
-
-#: ../../network/network.pm_.c:307
-#, c-format
-msgid " (driver %s)"
-msgstr " (sĆ¼rĆ¼cĆ¼ %s)"
-
-#: ../../network/network.pm_.c:309 ../../standalone/draknet_.c:232
-#: ../../standalone/draknet_.c:468
-msgid "IP address"
-msgstr "IP Ć¼nvanı"
-
-#: ../../network/network.pm_.c:310 ../../standalone/draknet_.c:469
-msgid "Netmask"
-msgstr "Netmask"
-
-#: ../../network/network.pm_.c:311
-msgid "(bootp/dhcp)"
-msgstr "(bootp/dhcp)"
-
-#: ../../network/network.pm_.c:311
-msgid "Automatic IP"
-msgstr "AvtomatlaÅdırılmıŠIP"
-
-#: ../../network/network.pm_.c:332 ../../printerdrake.pm_.c:712
-msgid "IP address should be in format 1.2.3.4"
-msgstr "IP Ć¼nvanı 1.2.3.4 ÅÉ™klindÉ™ olmalıdır"
-
-#: ../../network/network.pm_.c:361
-msgid ""
-"Please enter your host name.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''.\n"
-"You may also enter the IP address of the gateway if you have one"
-msgstr ""
-"XahiÅ edirik kompĆ¼terinizn adını girin.\n"
-"MÉ™sÉ™lÉ™n``kompĆ¼teradı.sahÉ™adı.com''.\n"
-"ʸgÉ™r ÅÉ™bÉ™kÉ™ keƧidi istifadÉ™ edirsinizsÉ™ bunun da IP nƶmrÉ™sini girmÉ™lisiniz."
-
-#: ../../network/network.pm_.c:366
-msgid "DNS server"
-msgstr "DNS verici"
-
-#: ../../network/network.pm_.c:367
-#, c-format
-msgid "Gateway (e.g. %s)"
-msgstr ""
-
-#: ../../network/network.pm_.c:369
-msgid "Gateway device"
-msgstr "KeƧit avadanlıÄı"
-
-#: ../../network/network.pm_.c:381
-msgid "Proxies configuration"
-msgstr "VÉ™kil vericilÉ™r quraÅdırılması"
-
-#: ../../network/network.pm_.c:382
-msgid "HTTP proxy"
-msgstr "HTTP vəkil verici"
-
-#: ../../network/network.pm_.c:383
-msgid "FTP proxy"
-msgstr "FTP vəkil verici"
-
-#: ../../network/network.pm_.c:384
-msgid "Track network card id (usefull for laptops)"
-msgstr ""
-
-#: ../../network/network.pm_.c:387
-msgid "Proxy should be http://..."
-msgstr "VÉ™kil verici http://... ÅÉ™klindÉ™ olmalıdır."
-
-#: ../../network/network.pm_.c:388
-msgid "Proxy should be ftp://..."
-msgstr "Vəkil verici ftp://... olmalıdır."
-
-#: ../../network/tools.pm_.c:39
-msgid "Internet configuration"
-msgstr "Ä°nternet qurÄuları"
-
-#: ../../network/tools.pm_.c:40
-msgid "Do you want to try to connect to the Internet now?"
-msgstr "Ä°nternete giriÅi indi sınamaq istÉ™yirsiniz?"
-
-#: ../../network/tools.pm_.c:44 ../../standalone/draknet_.c:197
-msgid "Testing your connection..."
-msgstr "BaÄlantınız sınanır..."
-
-#: ../../network/tools.pm_.c:50
-msgid "The system is now connected to Internet."
-msgstr "Ä°nternetÉ™ artıq baÄlısınız"
-
-#: ../../network/tools.pm_.c:51
-msgid "For Security reason, it will be disconnected now."
-msgstr "TÉ™hlĆ¼kÉ™sizlik sÉ™bÉ™bi ilÉ™ indi baÄlantı qopacaqdır."
-
-#: ../../network/tools.pm_.c:52
-msgid ""
-"The system doesn't seem to be connected to internet.\n"
-"Try to reconfigure your connection."
-msgstr ""
-"Sisteminiz Ä°nternetÉ™ baÄlı deyil.\n"
-"BaÄlantını yenidÉ™n quraÅdırın"
-
-#: ../../network/tools.pm_.c:76
-msgid "Connection Configuration"
-msgstr "BaÄlantı quraÅdırılması"
-
-#: ../../network/tools.pm_.c:77
-msgid "Please fill or check the field below"
-msgstr "XahiÅ edirik aÅaÄıdakıları doldurun ya da seƧin"
-
-#: ../../network/tools.pm_.c:79 ../../standalone/draknet_.c:608
-msgid "Card IRQ"
-msgstr "Kart IRQ"
-
-#: ../../network/tools.pm_.c:80 ../../standalone/draknet_.c:609
-msgid "Card mem (DMA)"
-msgstr "Kart mem (DMA)"
-
-#: ../../network/tools.pm_.c:81 ../../standalone/draknet_.c:610
-msgid "Card IO"
-msgstr "Kart IO"
-
-#: ../../network/tools.pm_.c:82 ../../standalone/draknet_.c:611
-msgid "Card IO_0"
-msgstr "Kart IO_0"
-
-#: ../../network/tools.pm_.c:83 ../../standalone/draknet_.c:612
-msgid "Card IO_1"
-msgstr "Kart IO_1"
-
-#: ../../network/tools.pm_.c:84 ../../standalone/draknet_.c:613
-msgid "Your personal phone number"
-msgstr "Sizin ÅÉ™xsi telefon nƶmrÉ™niz"
-
-#: ../../network/tools.pm_.c:85 ../../standalone/draknet_.c:614
-msgid "Provider name (ex provider.net)"
-msgstr "İnternet xidmət vericinizin adı (məsələn azeronline.com)"
-
-#: ../../network/tools.pm_.c:86 ../../standalone/draknet_.c:615
-msgid "Provider phone number"
-msgstr "İXM telefon nƶmrəsi"
-
-#: ../../network/tools.pm_.c:87 ../../standalone/draknet_.c:616
-msgid "Provider dns 1 (optional)"
-msgstr "Dns xidmətcisi 1 (arzuya gƶrə)"
-
-#: ../../network/tools.pm_.c:88 ../../standalone/draknet_.c:617
-msgid "Provider dns 2 (optional)"
-msgstr "Dns xidmətcisi 2 (arzuya gƶrə)"
-
-#: ../../network/tools.pm_.c:89
-#, fuzzy
-msgid "Choose your country"
-msgstr "Klaviaturanızı seƧin"
-
-#: ../../network/tools.pm_.c:90 ../../standalone/draknet_.c:620
-msgid "Dialing mode"
-msgstr "YıÄma modu"
-
-#: ../../network/tools.pm_.c:91 ../../standalone/draknet_.c:632
-#, fuzzy
-msgid "Connection speed"
-msgstr "BaÄlantı nƶvĆ¼:"
-
-#: ../../network/tools.pm_.c:92 ../../standalone/draknet_.c:633
-#, fuzzy
-msgid "Connection timeout (in sec)"
-msgstr "BaÄlantı nƶvĆ¼:"
-
-#: ../../network/tools.pm_.c:93 ../../standalone/draknet_.c:618
-msgid "Account Login (user name)"
-msgstr "Hesab GiriÅi (istifadəƧi adı)"
-
-#: ../../network/tools.pm_.c:94 ../../standalone/draknet_.c:619
-msgid "Account Password"
-msgstr "Hesap Parolu"
-
-#: ../../partition_table.pm_.c:600
-msgid "mount failed: "
-msgstr "baÄlama iflas etdi: "
-
-#: ../../partition_table.pm_.c:664
-msgid "Extended partition not supported on this platform"
-msgstr "Bu platformda geniÅlÉ™dilmiÅ bƶlmÉ™lÉ™r dÉ™stÉ™klÉ™nmir"
-
-#: ../../partition_table.pm_.c:682
-msgid ""
-"You have a hole in your partition table but I can't use it.\n"
-"The only solution is to move your primary partitions to have the hole next "
-"to the extended partitions"
-msgstr ""
-"BƶlmÉ™ cÉ™dvÉ™linizdÉ™ bir boÅluq var, amma o da iÅlÉ™dilÉ™ bilmÉ™z.\n"
-"Bu boÅluÄu, birinci bƶlmÉ™nizi en yaxınındakı geniÅlÉ™dilmiÅ bƶlmÉ™yÉ™ "
-"daÅıyaraq\n"
-"məsələni həll edə bilərsiniz."
-
-#: ../../partition_table.pm_.c:770
-#, c-format
-msgid "Restoring from file %s failed: %s"
-msgstr "%s faylından qurtarılıÅda xÉ™ta: %s"
-
-#: ../../partition_table.pm_.c:772
-msgid "Bad backup file"
-msgstr "Xətalı yedəkləmə faylı"
-
-#: ../../partition_table.pm_.c:794
-#, c-format
-msgid "Error writing to file %s"
-msgstr "%s faylına yazarkən xəta oldu"
-
-#: ../../partition_table_raw.pm_.c:186
-msgid ""
-"Something bad is happening on your drive. \n"
-"A test to check the integrity of data has failed. \n"
-"It means writing anything on the disk will end up with random trash"
-msgstr ""
-"BÉ™'zÉ™n sĆ¼rĆ¼cĆ¼nĆ¼zdÉ™ pis ÅeylÉ™r ola bilÉ™r.\n"
-"Datanın bĆ¼tƶvlĆ¼yĆ¼ yoxlaması bacarılmadı. \n"
-"Bu o demekdir ki diskÉ™ yazılan hÉ™r Åey tÉ™sadĆ¼fi olacaqdır"
-
-#: ../../pkgs.pm_.c:24
-msgid "must have"
-msgstr "alınmalı"
-
-#: ../../pkgs.pm_.c:25
-msgid "important"
-msgstr "vacib"
-
-#: ../../pkgs.pm_.c:26
-msgid "very nice"
-msgstr "əla"
-
-#: ../../pkgs.pm_.c:27
-msgid "nice"
-msgstr "gƶzəl"
-
-#: ../../pkgs.pm_.c:28
-msgid "maybe"
-msgstr "bəlkə"
-
-#: ../../printer.pm_.c:23
-msgid "CUPS - Common Unix Printing System"
-msgstr ""
-
-#: ../../printer.pm_.c:24
-msgid "LPRng - LPR New Generation"
-msgstr ""
-
-#: ../../printer.pm_.c:25
-msgid "LPD - Line Printer Daemon"
-msgstr ""
-
-#: ../../printer.pm_.c:26
-msgid "PDQ - Print, Don't Queue"
-msgstr ""
-
-#: ../../printer.pm_.c:32 ../../printer.pm_.c:871
-msgid "CUPS"
-msgstr ""
-
-#: ../../printer.pm_.c:33
-msgid "LPRng"
-msgstr ""
-
-#: ../../printer.pm_.c:34
-msgid "LPD"
-msgstr ""
-
-#: ../../printer.pm_.c:35
-msgid "PDQ"
-msgstr ""
-
-#: ../../printer.pm_.c:47
-msgid "Local printer"
-msgstr "Yerli Ƈap Edici"
-
-#: ../../printer.pm_.c:48
-msgid "Remote printer"
-msgstr "Uzaq Ƈap Edici"
-
-#: ../../printer.pm_.c:49
-#, fuzzy
-msgid "Printer on remote CUPS server"
-msgstr "Uzaq CUPS vericisi"
-
-#: ../../printer.pm_.c:50 ../../printerdrake.pm_.c:734
-#, fuzzy
-msgid "Printer on remote lpd server"
-msgstr "Uzaq Ƨap edici vericisi(lpd)"
-
-#: ../../printer.pm_.c:51
-#, fuzzy
-msgid "Network printer (TCP/Socket)"
-msgstr "Å˛É™bÉ™kÉ™ Ƈap Edicisi (soket) "
-
-#: ../../printer.pm_.c:52
-#, fuzzy
-msgid "Printer on SMB/Windows 95/98/NT server"
-msgstr "SMB/Windows 95/98/NT"
-
-#: ../../printer.pm_.c:53
-#, fuzzy
-msgid "Printer on NetWare server"
-msgstr "Ƈap Edici Vericisi"
-
-#: ../../printer.pm_.c:54 ../../printerdrake.pm_.c:738
-#, fuzzy
-msgid "Enter a printer device URI"
-msgstr "Ƈap Edici avadanlıÄı URI"
-
-#: ../../printer.pm_.c:55
-msgid "Pipe job into a command"
-msgstr ""
-
-#: ../../printer.pm_.c:504 ../../printer.pm_.c:695 ../../printer.pm_.c:1017
-#: ../../printerdrake.pm_.c:1665 ../../printerdrake.pm_.c:2730
-msgid "Unknown model"
-msgstr ""
-
-#: ../../printer.pm_.c:532
-#, fuzzy
-msgid "Local Printers"
-msgstr "Yerli Ƈap Edici"
-
-#: ../../printer.pm_.c:534 ../../printer.pm_.c:872
-#, fuzzy
-msgid "Remote Printers"
-msgstr "Uzaq Ƈap Edici"
-
-#: ../../printer.pm_.c:541 ../../printerdrake.pm_.c:248
-#, c-format
-msgid " on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printer.pm_.c:544 ../../printerdrake.pm_.c:250
-#, c-format
-msgid ", USB printer \\/*%s"
-msgstr ""
-
-#: ../../printer.pm_.c:549
-#, c-format
-msgid ", multi-function device on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printer.pm_.c:552
-msgid ", multi-function device on USB"
-msgstr ""
-
-#: ../../printer.pm_.c:554
-msgid ", multi-function device on HP JetDirect"
-msgstr ""
-
-#: ../../printer.pm_.c:556
-msgid ", multi-function device"
-msgstr ""
-
-#: ../../printer.pm_.c:559
-#, fuzzy, c-format
-msgid ", printing to %s"
-msgstr "%s faylına yazarkən xəta oldu"
-
-#: ../../printer.pm_.c:561
-#, c-format
-msgid "on LPD server \"%s\", printer \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:563
-#, c-format
-msgid ", TCP/IP host \"%s\", port %s"
-msgstr ""
-
-#: ../../printer.pm_.c:567
-#, c-format
-msgid "on Windows server \"%s\", share \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:571
-#, c-format
-msgid "on Novell server \"%s\", printer \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:573
-#, c-format
-msgid ", using command %s"
-msgstr ""
-
-#: ../../printer.pm_.c:692 ../../printerdrake.pm_.c:1136
-msgid "Raw printer (No driver)"
-msgstr ""
-
-#: ../../printer.pm_.c:841
-#, fuzzy, c-format
-msgid "(on %s)"
-msgstr "(modul %s)"
-
-#: ../../printer.pm_.c:843
-msgid "(on this machine)"
-msgstr ""
-
-#: ../../printer.pm_.c:868
-#, fuzzy, c-format
-msgid "On CUPS server \"%s\""
-msgstr "CUPS verici IP"
-
-#: ../../printer.pm_.c:874 ../../printerdrake.pm_.c:2391
-#: ../../printerdrake.pm_.c:2402 ../../printerdrake.pm_.c:2618
-#: ../../printerdrake.pm_.c:2670 ../../printerdrake.pm_.c:2697
-#: ../../printerdrake.pm_.c:2867 ../../printerdrake.pm_.c:2869
-msgid " (Default)"
-msgstr " (ʸsas)"
-
-#: ../../printerdrake.pm_.c:22
-msgid "Select Printer Connection"
-msgstr "Ƈap Edici BaÄlantısı SeƧin"
-
-#: ../../printerdrake.pm_.c:23
-msgid "How is the printer connected?"
-msgstr "Ƈap ediciniz nÉ™ ÅÉ™kildÉ™ baÄlıdır?"
-
-#: ../../printerdrake.pm_.c:25
-#, fuzzy
-msgid ""
-"\n"
-"Printers on remote CUPS servers you do not have to configure here; these "
-"printers will be automatically detected."
-msgstr ""
-"Uzaq CUPS vericilÉ™ri Ć¼Ć§Ć¼n heƧ bir quraÅdırmaÄa lĆ¼zĆ¼m yoxdur\n"
-"Buradakı hər Ƨap edici avtomatik tapılacaqdır.\n"
-"Olmazsa \"Uzaq CUPS vericisi\" ni seƧin."
-
-#: ../../printerdrake.pm_.c:69 ../../printerdrake.pm_.c:2454
-#, fuzzy
-msgid "CUPS configuration"
-msgstr "Yerli Å˛É™bÉ™kÉ™ QuraÅdırılması"
-
-#: ../../printerdrake.pm_.c:70 ../../printerdrake.pm_.c:2455
-#, fuzzy
-msgid "Specify CUPS server"
-msgstr "Uzaq CUPS vericisi"
-
-#: ../../printerdrake.pm_.c:71
-msgid ""
-"To get access to printers on remote CUPS servers in your local network you "
-"do not have to configure anything; the CUPS servers inform your machine "
-"automatically about their printers. All printers currently known to your "
-"machine are listed in the \"Remote printers\" section in the main window of "
-"Printerdrake. When your CUPS server is not in your local network, you have "
-"to enter the CUPS server IP address and optionally the port number to get "
-"the printer information from the server, otherwise leave these fields blank."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:72
-msgid ""
-"\n"
-"Normally, CUPS is automatically configured according to your network "
-"environment, so that you can access the printers on the CUPS servers in your "
-"local network. If this does not work correctly, turn off \"Automatic CUPS "
-"configuration\" and edit your file /etc/cups/cupsd.conf manually. Do not "
-"forget to restart CUPS afterwards (command: \"service cups restart\")."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:76
-#, fuzzy
-msgid "The IP address should look like 192.168.1.20"
-msgstr "IP Ć¼nvanı 1.2.3.4 ÅÉ™klindÉ™ olmalıdır"
-
-#: ../../printerdrake.pm_.c:80 ../../printerdrake.pm_.c:862
-#, fuzzy
-msgid "The port number should be an integer!"
-msgstr "Qapı nƶmrəsi rəqəmlə yazılmalıdır"
-
-#: ../../printerdrake.pm_.c:87
-msgid "CUPS server IP"
-msgstr "CUPS verici IP"
-
-#: ../../printerdrake.pm_.c:88 ../../printerdrake.pm_.c:855
-msgid "Port"
-msgstr "Qapı"
-
-#: ../../printerdrake.pm_.c:90
-#, fuzzy
-msgid "Automatic CUPS configuration"
-msgstr "Qurulum TÉ™rzi QuraÅdırılması"
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-#, fuzzy
-msgid "Detecting devices ..."
-msgstr "Avadanlıqlar tanınır..."
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-msgid "Test ports"
-msgstr "Qapıları sına"
-
-#: ../../printerdrake.pm_.c:167 ../../printerdrake.pm_.c:2437
-#: ../../printerdrake.pm_.c:2556
-#, fuzzy
-msgid "Add a new printer"
-msgstr "Ƈap Edicisiz"
-
-#: ../../printerdrake.pm_.c:168
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard allows you to install local or remote printers to be used from "
-"this machine and also from other machines in the network.\n"
-"\n"
-"It asks you for all necessary information to set up the printer and gives "
-"you access to all available printer drivers, driver options, and printer "
-"connection types."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:176 ../../printerdrake.pm_.c:203
-#: ../../printerdrake.pm_.c:378 ../../printerdrake.pm_.c:393
-#: ../../printerdrake.pm_.c:403 ../../printerdrake.pm_.c:466
-#, fuzzy
-msgid "Local Printer"
-msgstr "Yerli Ƈap Edici"
-
-#: ../../printerdrake.pm_.c:177
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard will help you to install your printer(s) connected to this "
-"computer.\n"
-"\n"
-"Please plug in your printer(s) on this computer and turn it/them on. Click "
-"on \"Next\" when you are ready, and on \"Cancel\" when you do not want to "
-"set up your printer(s) now.\n"
-"\n"
-"Note that some computers can crash during the printer auto-detection, turn "
-"off \"Auto-detect printers\" to do a printer installation without auto-"
-"detection. Use the \"Expert Mode\" of printerdrake when you want to set up "
-"printing on a remote printer if printerdrake does not list it automatically."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:186
-#, fuzzy
-msgid "Auto-detect printers"
-msgstr "Uzaq Ƈap Edici"
-
-#: ../../printerdrake.pm_.c:204
-msgid ""
-"\n"
-"Congratulations, your printer is now installed and configured!\n"
-"\n"
-"You can print using the \"Print\" command of your application (usually in "
-"the \"File\" menu).\n"
-"\n"
-"If you want to add, remove, or rename a printer, or if you want to change "
-"the default option settings (paper input tray, printout quality, ...), "
-"select \"Printer\" in the \"Hardware\" section of the Mandrake Control "
-"Center."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:223
-msgid "Auto-Detection of Printers"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:224
-msgid ""
-"Printerdrake is able to auto-detect your locally connected parallel and USB "
-"printers for you, but note that on some systems the auto-detection CAN "
-"FREEZE YOUR SYSTEM AND THIS CAN LEAD TO CORRUPTED FILE SYSTEMS! So do it ON "
-"YOUR OWN RISK!\n"
-"\n"
-"Do you really want to get your printers auto-detected?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:227 ../../printerdrake.pm_.c:229
-#: ../../printerdrake.pm_.c:230
-#, fuzzy
-msgid "Do auto-detection"
-msgstr "Avtomatik tÉ™sbit iÅlÉ™t"
-
-#: ../../printerdrake.pm_.c:228
-#, fuzzy
-msgid "Set up printer manually"
-msgstr "Uzaq Ƈap Edici"
-
-#: ../../printerdrake.pm_.c:256
-#, fuzzy, c-format
-msgid "Detected %s"
-msgstr "%s tapıldı"
-
-#: ../../printerdrake.pm_.c:260 ../../printerdrake.pm_.c:287
-#: ../../printerdrake.pm_.c:306
-#, c-format
-msgid "Printer on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:262 ../../printerdrake.pm_.c:289
-#: ../../printerdrake.pm_.c:311
-#, c-format
-msgid "USB printer \\/*%s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:379
-msgid ""
-"No local printer found! To manually install a printer enter a device name/"
-"file name in the input line (Parallel Ports: /dev/lp0, /dev/lp1, ..., "
-"equivalent to LPT1:, LPT2:, ..., 1st USB printer: /dev/usb/lp0, 2nd USB "
-"printer: /dev/usb/lp1, ...)."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:383
-#, fuzzy
-msgid "You must enter a device or file name!"
-msgstr "Ƈap Edici avadanlıÄı URI"
-
-#: ../../printerdrake.pm_.c:394
-#, fuzzy
-msgid ""
-"No local printer found!\n"
-"\n"
-msgstr "Yerli Ƈap Edici"
-
-#: ../../printerdrake.pm_.c:395
-msgid ""
-"Network printers can only be installed after the installation. Choose "
-"\"Hardware\" and then \"Printer\" in the Mandrake Control Center."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:396
-msgid ""
-"To install network printers, click \"Cancel\", switch to the \"Expert Mode"
-"\", and click \"Add a new printer\" again."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:407
-msgid ""
-"The following printer was auto-detected, if it is not the one you want to "
-"configure, enter a device name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:408
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up or enter a device name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:410
-msgid ""
-"The following printer was auto-detected. The configuration of the printer "
-"will work fully automatically. If your printer was not correctly detected or "
-"if you prefer a customized printer configuration, turn on \"Manual "
-"configuration\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:411
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up. The configuration of the printer will work fully "
-"automatically. If your printer was not correctly detected or if you prefer a "
-"customized printer configuration, turn on \"Manual configuration\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:413
-msgid ""
-"Please choose the port where your printer is connected to or enter a device "
-"name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:414
-#, fuzzy
-msgid "Please choose the port where your printer is connected to."
-msgstr "Modeminizin hansı serial qapıya baÄlı olduÄunu seƧiniz"
-
-#: ../../printerdrake.pm_.c:416
-msgid ""
-" (Parallel Ports: /dev/lp0, /dev/lp1, ..., equivalent to LPT1:, LPT2:, ..., "
-"1st USB printer: /dev/usb/lp0, 2nd USB printer: /dev/usb/lp1, ...)."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:421
-#, fuzzy
-msgid "You must choose/enter a printer/device!"
-msgstr "Ƈap Edici avadanlıÄı URI"
-
-#: ../../printerdrake.pm_.c:441
-#, fuzzy
-msgid "Manual configuration"
-msgstr "QuraÅdırma"
-
-#: ../../printerdrake.pm_.c:467
-msgid ""
-"Is your printer a multi-function device from HP (OfficeJet, PSC, PhotoSmart, "
-"LaserJet 1100/1200/1220/3200/3300 with scanner)?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:482
-#, fuzzy
-msgid "Installing HPOJ package..."
-msgstr "%s paketi qurulur"
-
-#: ../../printerdrake.pm_.c:487
-msgid "Checking device and configuring HPOJ ..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:505
-#, fuzzy
-msgid "Installing SANE package..."
-msgstr "%s paketi qurulur"
-
-#: ../../printerdrake.pm_.c:517
-msgid "Scanning on your HP multi-function device"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:534
-#, fuzzy
-msgid "Making printer port available for CUPS ..."
-msgstr "CUPS sĆ¼rĆ¼cĆ¼ datası oxunur..."
-
-#: ../../printerdrake.pm_.c:544 ../../printerdrake.pm_.c:1018
-#: ../../printerdrake.pm_.c:1132
-#, fuzzy
-msgid "Reading printer database ..."
-msgstr "CUPS sĆ¼rĆ¼cĆ¼ datası oxunur..."
-
-#: ../../printerdrake.pm_.c:624
-msgid "Remote lpd Printer Options"
-msgstr "Uzaq Ƈap Edici (lpd) SeƧənəkləri"
-
-#: ../../printerdrake.pm_.c:625
-#, fuzzy
-msgid ""
-"To use a remote lpd printer, you need to supply the hostname of the printer "
-"server and the printer name on that server."
-msgstr ""
-"Uzaqdakı bir lpd Ƨap edici nƶvbÉ™sini istifadÉ™ etmÉ™k Ć¼Ć§Ć¼n, \n"
-"Ƨap edicinin baÄlı olduÄu Ƨap edici vericisinin adını vÉ™ nƶvbÉ™ \n"
-"adınını verməlisiniz."
-
-#: ../../printerdrake.pm_.c:626
-#, fuzzy
-msgid "Remote host name"
-msgstr "Uzaqdakı ev sahibi adı"
-
-#: ../../printerdrake.pm_.c:627
-#, fuzzy
-msgid "Remote printer name"
-msgstr "Uzaq Ƈap Edici"
-
-#: ../../printerdrake.pm_.c:630
-#, fuzzy
-msgid "Remote host name missing!"
-msgstr "Uzaqdakı ev sahibi adı"
-
-#: ../../printerdrake.pm_.c:634
-#, fuzzy
-msgid "Remote printer name missing!"
-msgstr "Uzaqdakı ev sahibi adı"
-
-#: ../../printerdrake.pm_.c:702
-msgid "SMB (Windows 9x/NT) Printer Options"
-msgstr "SMB (Windows 9x/NT) Ƈap Edici SeƧənəkləri"
-
-#: ../../printerdrake.pm_.c:703
-#, fuzzy
-msgid ""
-"To print to a SMB printer, you need to provide the SMB host name (Note! It "
-"may be different from its TCP/IP hostname!) and possibly the IP address of "
-"the print server, as well as the share name for the printer you wish to "
-"access and any applicable user name, password, and workgroup information."
-msgstr ""
-"Bir SMB Ƨap edicidÉ™n yekun almaq Ć¼Ć§Ć¼n, SMB kompĆ¼ter adı, Ƨap edici "
-"vericisinin\n"
-"IP Ć¼nvanı, Ƨap edicinin paylaÅdırma adı, iÅlÉ™mÉ™ grupu, istifadəƧi adı vÉ™ \n"
-"parol verilməlidir."
-
-#: ../../printerdrake.pm_.c:704
-msgid "SMB server host"
-msgstr "SMB verici adı"
-
-#: ../../printerdrake.pm_.c:705
-msgid "SMB server IP"
-msgstr "SMB verici IP"
-
-#: ../../printerdrake.pm_.c:706
-msgid "Share name"
-msgstr "PaylaÅdırma adı"
-
-#: ../../printerdrake.pm_.c:709
-msgid "Workgroup"
-msgstr "Ä°Å qrupu"
-
-#: ../../printerdrake.pm_.c:716
-msgid "Either the server name or the server's IP must be given!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:720
-msgid "Samba share name missing!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:725
-msgid "SECURITY WARNING!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:726
-#, c-format
-msgid ""
-"You are about to set up printing to a Windows account with password. Due to "
-"a fault in the architecture of the Samba client software the password is put "
-"in clear text into the command line of the Samba client used to transmit the "
-"print job to the Windows server. So it is possible for every user on this "
-"machine to display the password on the screen by issuing commands as \"ps "
-"auxwww\".\n"
-"\n"
-"We recommend to make use of one of the following alternatives (in all cases "
-"you have to make sure that only machines from your local network have access "
-"to your Windows server, for example by means of a firewall):\n"
-"\n"
-"Use a password-less account on your Windows server, as the \"GUEST\" account "
-"or a special account dedicated for printing. Do not remove the password "
-"protection from a personal account or the administrator account.\n"
-"\n"
-"Set up your Windows server to make the printer available under the LPD "
-"protocol. Then set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:736
-#, c-format
-msgid ""
-"Set up your Windows server to make the printer available under the IPP "
-"protocol and set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:739
-msgid ""
-"Connect your printer to a Linux server and let your Windows machine(s) "
-"connect to it as a client.\n"
-"\n"
-"Do you really want to continue setting up this printer as you are doing now?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:801
-msgid "NetWare Printer Options"
-msgstr "NetWare Ƈap Edici QurÄuları"
-
-#: ../../printerdrake.pm_.c:802
-#, fuzzy
-msgid ""
-"To print on a NetWare printer, you need to provide the NetWare print server "
-"name (Note! it may be different from its TCP/IP hostname!) as well as the "
-"print queue name for the printer you wish to access and any applicable user "
-"name and password."
-msgstr ""
-"NetWare Ƨap edicidÉ™n yekun almaq Ć¼Ć§Ć¼n, NetWare vericisinin adı vÉ™ Ƨap "
-"edici \n"
-"nƶvbəsi adı ilə istifadəƧi adı va parolu verilməlidir."
-
-#: ../../printerdrake.pm_.c:803
-msgid "Printer Server"
-msgstr "Ƈap Edici Vericisi"
-
-#: ../../printerdrake.pm_.c:804
-msgid "Print Queue Name"
-msgstr "Ƈap Edici Nƶvbə Adı"
-
-#: ../../printerdrake.pm_.c:809
-msgid "NCP server name missing!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:813
-msgid "NCP queue name missing!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:852
-#, fuzzy
-msgid "TCP/Socket Printer Options"
-msgstr "Soket Ƈap Edici QurÄuları"
-
-#: ../../printerdrake.pm_.c:853
-#, fuzzy
-msgid ""
-"To print to a TCP or socket printer, you need to provide the host name of "
-"the printer and optionally the port number. On HP JetDirect servers the port "
-"number is usually 9100, on other servers it can vary. See the manual of your "
-"hardware."
-msgstr ""
-"Soket Ƨap edicidÉ™n yekun almaq Ć¼Ć§Ć¼n, Ƨap edicinin ev sahibi adını ve "
-"mĆ¼mkĆ¼nsÉ™, qapısının nƶmrÉ™sini vermÉ™lisiniz."
-
-#: ../../printerdrake.pm_.c:854
-#, fuzzy
-msgid "Printer host name"
-msgstr "Ƈap Edici Ev sahibi"
-
-#: ../../printerdrake.pm_.c:858
-#, fuzzy
-msgid "Printer host name missing!"
-msgstr "Ƈap Edici Ev sahibi"
-
-#: ../../printerdrake.pm_.c:887 ../../printerdrake.pm_.c:889
-msgid "Printer Device URI"
-msgstr "Ƈap Edici avadanlıÄı URI"
-
-#: ../../printerdrake.pm_.c:888
-msgid ""
-"You can specify directly the URI to access the printer. The URI must fulfill "
-"either the CUPS or the Foomatic specifications. Note that not all URI types "
-"are supported by all the spoolers."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:903
-msgid "A valid URI must be entered!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1004
-msgid ""
-"Every printer needs a name (for example \"printer\"). The Description and "
-"Location fields do not need to be filled in. They are comments for the users."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1005
-msgid "Name of printer"
-msgstr "Ƈap edici adı"
-
-#: ../../printerdrake.pm_.c:1006
-msgid "Description"
-msgstr "Ä°zah"
-
-#: ../../printerdrake.pm_.c:1007
-msgid "Location"
-msgstr "Yeri"
-
-#: ../../printerdrake.pm_.c:1021
-#, fuzzy
-msgid "Preparing printer database ..."
-msgstr "CUPS sĆ¼rĆ¼cĆ¼ datası oxunur..."
-
-#: ../../printerdrake.pm_.c:1112
-#, fuzzy
-msgid "Your printer model"
-msgstr "Uzaq Ƈap Edici"
-
-#: ../../printerdrake.pm_.c:1113
-#, c-format
-msgid ""
-"Printerdrake has compared the model name resulting from the printer auto-"
-"detection with the models listed in its printer database to find the best "
-"match. This choice can be wrong, especially when your printer is not listed "
-"at all in the database. So check whether the choice is correct and click "
-"\"The model is correct\" if so and if not, click \"Select model manually\" "
-"so that you can choose your printer model manually on the next screen.\n"
-"\n"
-"For your printer Printerdrake has found:\n"
-"\n"
-"%s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1118 ../../printerdrake.pm_.c:1121
-#, fuzzy
-msgid "The model is correct"
-msgstr "DoÄrudur?"
-
-#: ../../printerdrake.pm_.c:1119 ../../printerdrake.pm_.c:1120
-#: ../../printerdrake.pm_.c:1123
-#, fuzzy
-msgid "Select model manually"
-msgstr "Uzaq Ƈap Edici"
-
-#: ../../printerdrake.pm_.c:1139
-#, fuzzy
-msgid "Printer model selection"
-msgstr "Ƈap Edici BaÄlantısı"
-
-#: ../../printerdrake.pm_.c:1140
-#, fuzzy
-msgid "Which printer model do you have?"
-msgstr "NÉ™ cĆ¼r bir Ƨap ediciniz var?"
-
-#: ../../printerdrake.pm_.c:1141
-msgid ""
-"\n"
-"\n"
-"Please check whether Printerdrake did the auto-detection of your printer "
-"model correctly. Search the correct model in the list when the cursor is "
-"standing on a wrong model or on \"Raw printer\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1144
-msgid ""
-"If your printer is not listed, choose a compatible (see printer manual) or a "
-"similar one."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1220
-#, fuzzy
-msgid "OKI winprinter configuration"
-msgstr "Ä°nternet qurÄuları"
-
-#: ../../printerdrake.pm_.c:1221
-msgid ""
-"You are configuring an OKI laser winprinter. These printers\n"
-"use a very special communication protocol and therefore they work only when "
-"connected to the first parallel port. When your printer is connected to "
-"another port or to a print server box please connect the printer to the "
-"first parallel port before you print a test page. Otherwise the printer will "
-"not work. Your connection type setting will be ignored by the driver."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1264 ../../printerdrake.pm_.c:1291
-#, fuzzy
-msgid "Lexmark inkjet configuration"
-msgstr "Ä°nternet qurÄuları"
-
-#: ../../printerdrake.pm_.c:1265
-msgid ""
-"The inkjet printer drivers provided by Lexmark only support local printers, "
-"no printers on remote machines or print server boxes. Please connect your "
-"printer to a local port or configure it on the machine where it is connected "
-"to."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1292
-msgid ""
-"To be able to print with your Lexmark inkjet and this configuration, you "
-"need the inkjet printer drivers provided by Lexmark (http://www.lexmark."
-"com/). Go to the US site and click on the \"Drivers\" button. Then choose "
-"your model and afterwards \"Linux\" as operating system. The drivers come as "
-"RPM packages or shell scripts with interactive graphical installation. You "
-"do not need to do this configuration by the graphical frontends. Cancel "
-"directly after the license agreement. Then print printhead alignment pages "
-"with \"lexmarkmaintain\" and adjust the head alignment settings with this "
-"program."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1508
-msgid ""
-"Printer default settings\n"
-"\n"
-"You should make sure that the page size and the ink type/printing mode (if "
-"available) and also the hardware configuration of laser printers (memory, "
-"duplex unit, extra trays) are set correctly. Note that with a very high "
-"printout quality/resolution printing can get substantially slower."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1517
-#, c-format
-msgid "Option %s must be an integer number!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1521
-#, c-format
-msgid "Option %s must be a number!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1526
-#, c-format
-msgid "Option %s out of range!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1565
-#, fuzzy, c-format
-msgid ""
-"Do you want to set this printer (\"%s\")\n"
-"as the default printer?"
-msgstr "Ƈap edicini sınamaq istəyirsiniz?"
-
-#: ../../printerdrake.pm_.c:1582
-#, fuzzy
-msgid "Test pages"
-msgstr "Qapıları sına"
-
-#: ../../printerdrake.pm_.c:1583
-msgid ""
-"Please select the test pages you want to print.\n"
-"Note: the photo test page can take a rather long time to get printed and on "
-"laser printers with too low memory it can even not come out. In most cases "
-"it is enough to print the standard test page."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1587
-#, fuzzy
-msgid "No test pages"
-msgstr "Bəli, hər iki sınaq səhifəsini də Ƨap et"
-
-#: ../../printerdrake.pm_.c:1588
-#, fuzzy
-msgid "Print"
-msgstr "Ƈap Edici"
-
-#: ../../printerdrake.pm_.c:1590
-#, fuzzy
-msgid "Standard test page"
-msgstr "Standart"
-
-#: ../../printerdrake.pm_.c:1593
-msgid "Alternative test page (Letter)"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1596
-#, fuzzy
-msgid "Alternative test page (A4)"
-msgstr "Sınaq səhifəsi Ƨap edilir..."
-
-#: ../../printerdrake.pm_.c:1598
-#, fuzzy
-msgid "Photo test page"
-msgstr "Sınaq səhifəsi Ƨap edilir..."
-
-#: ../../printerdrake.pm_.c:1602
-#, fuzzy
-msgid "Do not print any test page"
-msgstr "Sınaq səhifəsi Ƨap edilir..."
-
-#: ../../printerdrake.pm_.c:1610 ../../printerdrake.pm_.c:1747
-msgid "Printing test page(s)..."
-msgstr "Sınaq səhifəsi Ƨap edilir..."
-
-#: ../../printerdrake.pm_.c:1635
-#, fuzzy, c-format
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-"Printing status:\n"
-"%s\n"
-"\n"
-msgstr ""
-"Sınaq səhifəsi Ƨap edici vasitəsinə gƶndərildi.\n"
-"Ƈap edicinin iÅlÉ™mÉ™si Ć¼Ć§Ć¼n bir az vaxt keƧər.\n"
-"Ƈap vəziyyəti:\n"
-"%s\n"
-"\n"
-"DĆ¼z mĆ¼ iÅlÉ™yir?"
-
-#: ../../printerdrake.pm_.c:1639
-#, fuzzy
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-msgstr ""
-"Sınaq səhifəsi Ƨap edici vasitəsinə gƶndərildi.\n"
-"Ƈap edicinin iÅlÉ™mÉ™si Ć¼Ć§Ć¼n bir az vaxt keƧər.\n"
-"DĆ¼z mĆ¼ iÅlÉ™yir?"
-
-#: ../../printerdrake.pm_.c:1646
-msgid "Did it work properly?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1667 ../../printerdrake.pm_.c:2732
-#, fuzzy
-msgid "Raw printer"
-msgstr "Ƈap Edicisiz"
-
-#: ../../printerdrake.pm_.c:1685
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) you can either use "
-"the command \"%s <file>\" or a graphical printing tool: \"xpp <file>\" or "
-"\"kprinter <file>\". The graphical tools allow you to choose the printer and "
-"to modify the option settings easily.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1687
-msgid ""
-"These commands you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications, but here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1690 ../../printerdrake.pm_.c:1706
-#: ../../printerdrake.pm_.c:1716
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" command also allows to modify the option settings for a "
-"particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\". "
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1693 ../../printerdrake.pm_.c:1732
-#, c-format
-msgid ""
-"To know about the options available for the current printer read either the "
-"list shown below or click on the \"Print option list\" button.%s\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1696
-msgid ""
-"Here is a list of the available printing options for the current printer:\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1701 ../../printerdrake.pm_.c:1711
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\".\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1703 ../../printerdrake.pm_.c:1713
-#: ../../printerdrake.pm_.c:1723
-msgid ""
-"This command you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications. But here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1708 ../../printerdrake.pm_.c:1718
-msgid ""
-"To get a list of the options available for the current printer click on the "
-"\"Print option list\" button."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1721
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\" or \"%s <file>\".\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1725
-msgid ""
-"You can also use the graphical interface \"xpdq\" for setting options and "
-"handling printing jobs.\n"
-"If you are using KDE as desktop environment you have a \"panic button\", an "
-"icon on the desktop, labeled with \"STOP Printer!\", which stops all print "
-"jobs immediately when you click it. This is for example useful for paper "
-"jams.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1729
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" and \"%s\" commands also allow to modify the option settings for "
-"a particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\".\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1738 ../../printerdrake.pm_.c:1744
-#: ../../printerdrake.pm_.c:1745 ../../printerdrake.pm_.c:1746
-#: ../../printerdrake.pm_.c:2716 ../../standalone/drakbackup_.c:754
-#: ../../standalone/drakbackup_.c:2458 ../../standalone/drakfont_.c:577
-#: ../../standalone/drakfont_.c:791
-msgid "Close"
-msgstr "Qapat"
-
-#: ../../printerdrake.pm_.c:1741 ../../printerdrake.pm_.c:1753
-#, fuzzy, c-format
-msgid "Printing/Scanning on \"%s\""
-msgstr "Å˛É™bÉ™kÉ™ dayandırılır"
-
-#: ../../printerdrake.pm_.c:1742 ../../printerdrake.pm_.c:1754
-#, fuzzy, c-format
-msgid "Printing on the printer \"%s\""
-msgstr "Å˛É™bÉ™kÉ™ dayandırılır"
-
-#: ../../printerdrake.pm_.c:1744
-#, fuzzy
-msgid "Print option list"
-msgstr "Ƈap edici seƧənəkləri"
-
-#: ../../printerdrake.pm_.c:1766
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan with \"scanimage\" (\"scanimage -d hp:%s\" to specify "
-"the scanner when you have more than one) from the command line or with the "
-"graphical interfaces \"xscanimage\" or \"xsane\". If you are using the GIMP, "
-"you can also scan by choosing the appropriate point in the \"File\"/\"Acquire"
-"\" menu. Call also \"man scanimage\" and \"man sane-hp\" on the command line "
-"to get more information.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1772
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan from the command line with \"ptal-hp %s scan ...\". "
-"Scanning via a graphical interface or from the GIMP is not supported yet for "
-"your device. More information you will find in the \"/usr/share/doc/hpoj-0.8/"
-"ptal-hp-scan.html\" file on your system. If you have an HP LaserJet 1100 or "
-"1200 you can only scan when you have the scanner option installed.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1794 ../../printerdrake.pm_.c:2221
-#: ../../printerdrake.pm_.c:2485 ../../standalone/printerdrake_.c:49
-#, fuzzy
-msgid "Reading printer data ..."
-msgstr "CUPS sĆ¼rĆ¼cĆ¼ datası oxunur..."
-
-#: ../../printerdrake.pm_.c:1814 ../../printerdrake.pm_.c:1842
-#: ../../printerdrake.pm_.c:1877
-#, fuzzy
-msgid "Transfer printer configuration"
-msgstr "Ä°nternet qurÄuları"
-
-#: ../../printerdrake.pm_.c:1815
-#, c-format
-msgid ""
-"You can copy the printer configuration which you have done for the spooler %"
-"s to %s, your current spooler. All the configuration data (printer name, "
-"description, location, connection type, and default option settings) is "
-"overtaken, but jobs will not be transferred.\n"
-"Not all queues can be transferred due to the following reasons:\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1818
-msgid ""
-"CUPS does not support printers on Novell servers or printers sending the "
-"data into a free-formed command.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1820
-msgid ""
-"PDQ only supports local printers, remote LPD printers, and Socket/TCP "
-"printers.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1822
-msgid "LPD and LPRng do not support IPP printers.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1824
-msgid ""
-"In addition, queues not created with this program or \"foomatic-configure\" "
-"cannot be transferred."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1825
-msgid ""
-"\n"
-"Also printers configured with the PPD files provided by their manufacturers "
-"or with native CUPS drivers cannot be transferred."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1826
-msgid ""
-"\n"
-"Mark the printers which you want to transfer and click \n"
-"\"Transfer\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1829
-msgid "Do not transfer printers"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1830 ../../printerdrake.pm_.c:1847
-msgid "Transfer"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1843
-#, c-format
-msgid ""
-"A printer named \"%s\" already exists under %s. \n"
-"Click \"Transfer\" to overwrite it.\n"
-"You can also type a new name or skip this printer."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1851
-msgid "Name of printer should contain only letters, numbers and the underscore"
-msgstr "Ƈap edici adı təkcə hərf, rəqəm və alt xətt daxil edə bilər"
-
-#: ../../printerdrake.pm_.c:1856
-#, c-format
-msgid ""
-"The printer \"%s\" already exists,\n"
-"do you really want to overwrite its configuration?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1864
-#, fuzzy
-msgid "New printer name"
-msgstr "Ƈap Edicisiz"
-
-#: ../../printerdrake.pm_.c:1867
-#, c-format
-msgid "Transferring %s ..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1878
-#, c-format
-msgid ""
-"You have transferred your former default printer (\"%s\"), Should it be also "
-"the default printer under the new printing system %s?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1887
-#, fuzzy
-msgid "Refreshing printer data ..."
-msgstr "CUPS sĆ¼rĆ¼cĆ¼ datası oxunur..."
-
-#: ../../printerdrake.pm_.c:1895 ../../printerdrake.pm_.c:1966
-#: ../../printerdrake.pm_.c:1978
-msgid "Configuration of a remote printer"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1896
-#, fuzzy
-msgid "Starting network ..."
-msgstr "BaÄlantınız baÅladılır..."
-
-#: ../../printerdrake.pm_.c:1930 ../../printerdrake.pm_.c:1934
-#: ../../printerdrake.pm_.c:1936
-#, fuzzy
-msgid "Configure the network now"
-msgstr "Å˛É™bÉ™kÉ™ni qur"
-
-#: ../../printerdrake.pm_.c:1931
-#, fuzzy
-msgid "Network functionality not configured"
-msgstr "Monitor qurulmayıb"
-
-#: ../../printerdrake.pm_.c:1932
-msgid ""
-"You are going to configure a remote printer. This needs working network "
-"access, but your network is not configured yet. If you go on without network "
-"configuration, you will not be able to use the printer which you are "
-"configuring now. How do you want to proceed?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1935
-#, fuzzy
-msgid "Go on without configuring the network"
-msgstr "Å˛É™bÉ™kÉ™ QurÄuları"
-
-#: ../../printerdrake.pm_.c:1968
-msgid ""
-"The network configuration done during the installation cannot be started "
-"now. Please check whether the network gets accessable after booting your "
-"system and correct the configuration using the Mandrake Control Center, "
-"section \"Network & Internet\"/\"Connection\", and afterwards set up the "
-"printer, also using the Mandrake Control Center, section \"Hardware\"/"
-"\"Printer\""
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1969
-msgid ""
-"The network access was not running and could not be started. Please check "
-"your configuration and your hardware. Then try to configure your remote "
-"printer again."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1979
-#, fuzzy
-msgid "Restarting printing system ..."
-msgstr "Hansı Ƨap edici sistemini istifadə etmək istəyirsiniz?"
-
-#: ../../printerdrake.pm_.c:2017
-#, fuzzy
-msgid "high"
-msgstr "YĆ¼ksÉ™k"
-
-#: ../../printerdrake.pm_.c:2017
-#, fuzzy
-msgid "paranoid"
-msgstr "Å˛Ć¼bhÉ™ci"
-
-#: ../../printerdrake.pm_.c:2018
-#, c-format
-msgid "Installing a printing system in the %s security level"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2019
-#, c-format
-msgid ""
-"You are about to install the printing system %s on a system running in the %"
-"s security level.\n"
-"\n"
-"This printing system runs a daemon (background process) which waits for "
-"print jobs and handles them. This daemon is also accessable by remote "
-"machines through the network and so it is a possible point for attacks. "
-"Therefore only a few selected daemons are started by default in this "
-"security level.\n"
-"\n"
-"Do you really want to configure printing on this machine?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2051
-#, fuzzy
-msgid "Starting the printing system at boot time"
-msgstr "Hansı Ƨap edici sistemini istifadə etmək istəyirsiniz?"
-
-#: ../../printerdrake.pm_.c:2052
-#, c-format
-msgid ""
-"The printing system (%s) will not be started automatically when the machine "
-"is booted.\n"
-"\n"
-"It is possible that the automatic starting was turned off by changing to a "
-"higher security level, because the printing system is a potential point for "
-"attacks.\n"
-"\n"
-"Do you want to have the automatic starting of the printing system turned on "
-"again?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2075 ../../printerdrake.pm_.c:2113
-#: ../../printerdrake.pm_.c:2143 ../../printerdrake.pm_.c:2176
-#: ../../printerdrake.pm_.c:2281
-msgid "Checking installed software..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2117
-msgid "Removing LPRng..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2147
-msgid "Removing LPD..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2205
-#, fuzzy
-msgid "Select Printer Spooler"
-msgstr "Ƈap Edici BaÄlantısı SeƧin"
-
-#: ../../printerdrake.pm_.c:2206
-#, fuzzy
-msgid "Which printing system (spooler) do you want to use?"
-msgstr "Hansı Ƨap edici sistemini istifadə etmək istəyirsiniz?"
-
-#: ../../printerdrake.pm_.c:2239
-#, fuzzy, c-format
-msgid "Configuring printer \"%s\" ..."
-msgstr "Ƈap Edicini Qur"
-
-#: ../../printerdrake.pm_.c:2252
-#, fuzzy
-msgid "Installing Foomatic ..."
-msgstr "%s paketi qurulur"
-
-#: ../../printerdrake.pm_.c:2309 ../../printerdrake.pm_.c:2348
-#: ../../printerdrake.pm_.c:2733 ../../printerdrake.pm_.c:2803
-msgid "Printer options"
-msgstr "Ƈap edici seƧənəkləri"
-
-#: ../../printerdrake.pm_.c:2318
-#, fuzzy
-msgid "Preparing PrinterDrake ..."
-msgstr "CUPS sĆ¼rĆ¼cĆ¼ datası oxunur..."
-
-#: ../../printerdrake.pm_.c:2335 ../../printerdrake.pm_.c:2890
-#, fuzzy
-msgid "Configuring applications..."
-msgstr "Ƈap Edicini Qur"
-
-#: ../../printerdrake.pm_.c:2355
-#, fuzzy
-msgid "Would you like to configure printing?"
-msgstr "Bir Ƨap edici qurmaq istəyirsiniz?"
-
-#: ../../printerdrake.pm_.c:2367
-msgid "Printing system: "
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2415
-#, fuzzy
-msgid "Printerdrake"
-msgstr "Ƈap Edici"
-
-#: ../../printerdrake.pm_.c:2419
-#, fuzzy
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; to view information about it; "
-"or to make a printer on a remote CUPS server available for Star Office/"
-"OpenOffice.org."
-msgstr ""
-"AÅaÄıda yazıƧıdakı nƶvbÉ™lÉ™r verilmiÅdir.\n"
-"YenilÉ™rini É™lavÉ™ edÉ™ bilÉ™r, vÉ™ ya mƶvcud olanları dÉ™yiÅdirÉ™ bilÉ™rsiniz."
-
-#: ../../printerdrake.pm_.c:2420
-#, fuzzy
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; or to view information about "
-"it."
-msgstr ""
-"AÅaÄıda yazıƧıdakı nƶvbÉ™lÉ™r verilmiÅdir.\n"
-"YenilÉ™rini É™lavÉ™ edÉ™ bilÉ™r, vÉ™ ya mƶvcud olanları dÉ™yiÅdirÉ™ bilÉ™rsiniz."
-
-#: ../../printerdrake.pm_.c:2446
-msgid "Refresh printer list (to display all available remote CUPS printers)"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2464
-#, fuzzy
-msgid "Change the printing system"
-msgstr "Å˛É™bÉ™kÉ™ni qur"
-
-#: ../../printerdrake.pm_.c:2469 ../../standalone/draknet_.c:278
-msgid "Normal Mode"
-msgstr "Normal Mod"
-
-#: ../../printerdrake.pm_.c:2625 ../../printerdrake.pm_.c:2675
-#: ../../printerdrake.pm_.c:2884
-#, fuzzy
-msgid "Do you want to configure another printer?"
-msgstr "QurÄuları sınamaq istÉ™yirsiniz?"
-
-#: ../../printerdrake.pm_.c:2711
-#, fuzzy
-msgid "Modify printer configuration"
-msgstr "Ä°nternet qurÄuları"
-
-#: ../../printerdrake.pm_.c:2713
-#, fuzzy, c-format
-msgid ""
-"Printer %s\n"
-"What do you want to modify on this printer?"
-msgstr "QurÄuları sınamaq istÉ™yirsiniz?"
-
-#: ../../printerdrake.pm_.c:2717
-msgid "Do it!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2722 ../../printerdrake.pm_.c:2777
-#, fuzzy
-msgid "Printer connection type"
-msgstr "Ä°nternet BaÄlantısı BƶlĆ¼ÅdĆ¼rĆ¼lmÉ™si"
-
-#: ../../printerdrake.pm_.c:2723 ../../printerdrake.pm_.c:2781
-#, fuzzy
-msgid "Printer name, description, location"
-msgstr "Ƈap Edici BaÄlantısı"
-
-#: ../../printerdrake.pm_.c:2725 ../../printerdrake.pm_.c:2796
-msgid "Printer manufacturer, model, driver"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2726 ../../printerdrake.pm_.c:2797
-msgid "Printer manufacturer, model"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2735 ../../printerdrake.pm_.c:2807
-msgid "Set this printer as the default"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2737 ../../printerdrake.pm_.c:2812
-msgid "Add this printer to Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2738 ../../printerdrake.pm_.c:2821
-msgid "Remove this printer from Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2739 ../../printerdrake.pm_.c:2830
-#, fuzzy
-msgid "Print test pages"
-msgstr "Sınaq səhifəsi Ƨap edilir..."
-
-#: ../../printerdrake.pm_.c:2740 ../../printerdrake.pm_.c:2832
-#, fuzzy
-msgid "Know how to use this printer"
-msgstr "QurÄuları sınamaq istÉ™yirsiniz?"
-
-#: ../../printerdrake.pm_.c:2742 ../../printerdrake.pm_.c:2834
-#, fuzzy
-msgid "Remove printer"
-msgstr "Uzaq Ƈap Edici"
-
-#: ../../printerdrake.pm_.c:2786
-#, fuzzy, c-format
-msgid "Removing old printer \"%s\" ..."
-msgstr "CUPS sĆ¼rĆ¼cĆ¼ datası oxunur..."
-
-#: ../../printerdrake.pm_.c:2810
-#, fuzzy
-msgid "Default printer"
-msgstr "Yerli Ƈap Edici"
-
-#: ../../printerdrake.pm_.c:2811
-#, c-format
-msgid "The printer \"%s\" is set as the default printer now."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2815 ../../printerdrake.pm_.c:2818
-msgid "Adding printer to Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2816
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully added to Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2819
-#, c-format
-msgid "Failed to add the printer \"%s\" to Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2824 ../../printerdrake.pm_.c:2827
-msgid "Removing printer from Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2825
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully removed from Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2828
-#, c-format
-msgid "Failed to remove the printer \"%s\" from Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2836
-#, fuzzy, c-format
-msgid "Do you really want to remove the printer \"%s\"?"
-msgstr "Å˛É™bÉ™kÉ™ni yenidÉ™n baÅlatmaq istÉ™yirsiniz?"
-
-#: ../../printerdrake.pm_.c:2838
-#, fuzzy, c-format
-msgid "Removing printer \"%s\" ..."
-msgstr "CUPS sĆ¼rĆ¼cĆ¼ datası oxunur..."
-
-#: ../../proxy.pm_.c:29 ../../proxy.pm_.c:37 ../../proxy.pm_.c:58
-#: ../../proxy.pm_.c:78
-#, fuzzy
-msgid "Proxy configuration"
-msgstr "VÉ™kil vericilÉ™r quraÅdırılması"
-
-#: ../../proxy.pm_.c:30
-msgid ""
-"Welcome to the proxy configuration utility.\n"
-"\n"
-"Here, you'll be able to set up your http and ftp proxies\n"
-"with or without login and password\n"
-msgstr ""
-
-#: ../../proxy.pm_.c:38
-msgid ""
-"Please fill in the http proxy informations\n"
-"Leave it blank if you don't want an http proxy"
-msgstr ""
-
-#: ../../proxy.pm_.c:39 ../../proxy.pm_.c:60
-msgid "URL"
-msgstr ""
-
-#: ../../proxy.pm_.c:40 ../../proxy.pm_.c:61
-#, fuzzy
-msgid "port"
-msgstr "Qapı"
-
-#: ../../proxy.pm_.c:44
-#, fuzzy
-msgid "Url should begin with 'http:'"
-msgstr "VÉ™kil verici http://... ÅÉ™klindÉ™ olmalıdır."
-
-#: ../../proxy.pm_.c:48 ../../proxy.pm_.c:69
-#, fuzzy
-msgid "The port part should be numeric"
-msgstr "Qapı nƶmrəsi rəqəmlə yazılmalıdır"
-
-#: ../../proxy.pm_.c:59
-msgid ""
-"Please fill in the ftp proxy informations\n"
-"Leave it blank if you don't want an ftp proxy"
-msgstr ""
-
-#: ../../proxy.pm_.c:65
-#, fuzzy
-msgid "Url should begin with 'ftp:'"
-msgstr "Vəkil verici ftp://... olmalıdır."
-
-#: ../../proxy.pm_.c:79
-msgid ""
-"Please enter proxy login and password, if any.\n"
-"Leave it blank if you don't want login/passwd"
-msgstr ""
-
-#: ../../proxy.pm_.c:80
-#, fuzzy
-msgid "login"
-msgstr "Avtomatik GiriÅ"
-
-#: ../../proxy.pm_.c:82
-#, fuzzy
-msgid "password"
-msgstr "Parol"
-
-#: ../../proxy.pm_.c:84
-#, fuzzy
-msgid "re-type password"
-msgstr "Parolsuz"
-
-#: ../../proxy.pm_.c:88
-#, fuzzy
-msgid "The passwords don't match. Try again!"
-msgstr "Parollar uyÄun gÉ™lmir"
-
-#: ../../raid.pm_.c:35
-#, c-format
-msgid "Can't add a partition to _formatted_ RAID md%d"
-msgstr "Å˛É™killÉ™ndirilmiÅ RAID md%d-yÉ™ disk bƶlmÉ™si É™lavÉ™ edilÉ™ bilinmÉ™di"
-
-#: ../../raid.pm_.c:111
-#, c-format
-msgid "Can't write file %s"
-msgstr "%s faylına yazıla bilinmədi"
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed"
-msgstr "mkraid iflas etdi"
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed (maybe raidtools are missing?)"
-msgstr "mkraid iflas etdi (raidtools əksik ola bilər mi?)"
-
-#: ../../raid.pm_.c:152
-#, c-format
-msgid "Not enough partitions for RAID level %d\n"
-msgstr "%d sÉ™viyyÉ™ RAID Ć¼Ć§Ć¼n Ƨatmayan sayda disk bƶlmÉ™si\n"
-
-#: ../../services.pm_.c:14
-msgid "Launch the ALSA (Advanced Linux Sound Architecture) sound system"
-msgstr "ALSA sÉ™s sistemini (Advanced Linux Sound Architecture) baÅlat"
-
-#: ../../services.pm_.c:15
-msgid "Anacron a periodic command scheduler."
-msgstr "Anakron, periodik əmr zamanlayıcısı"
-
-#: ../../services.pm_.c:16
-msgid ""
-"apmd is used for monitoring batery status and logging it via syslog.\n"
-"It can also be used for shutting down the machine when the battery is low."
-msgstr ""
-"apmd batareya vÉ™ziyyÉ™tini izlÉ™mÉ™k Ć¼Ć§Ć¼n vÉ™ syslog aracılıÄıyla bunun qeydini "
-"tutmaq Ć¼Ć§Ć¼n istifadÉ™ edilir.\n"
-"Ayrıca batareya azaldıÄında sistemi qapatmaq Ć¼Ć§Ć¼n dÉ™ istifadÉ™ edilir."
-
-#: ../../services.pm_.c:18
-msgid ""
-"Runs commands scheduled by the at command at the time specified when\n"
-"at was run, and runs batch commands when the load average is low enough."
-msgstr ""
-"at É™mri, zamanlanan É™mrlÉ™ri iÅlÉ™mÉ™lÉ™ri lazım gÉ™lÉ™n vaxtda iÅlÉ™dir.\n"
-"Sistem yĆ¼kĆ¼ lazımi qÉ™dÉ™r alƧaq olduÄunda yıÄma É™mrlÉ™ri iÅlÉ™dilir."
-
-#: ../../services.pm_.c:20
-msgid ""
-"cron is a standard UNIX program that runs user-specified programs\n"
-"at periodic scheduled times. vixie cron adds a number of features to the "
-"basic\n"
-"UNIX cron, including better security and more powerful configuration options."
-msgstr ""
-"cron, istifadəƧilÉ™rÉ™ xĆ¼susi É™mrlÉ™ri periodik olaraq iÅÉ™ sala bilÉ™n\n"
-"standart bir UNIX proqramıdır. vixie cron, standart cron'a əlavə edilmiŠbir "
-"Ƨox\n"
-"yeni xĆ¼susiyyÉ™t daxildir."
-
-#: ../../services.pm_.c:23
-msgid ""
-"GPM adds mouse support to text-based Linux applications such the\n"
-"Midnight Commander. It also allows mouse-based console cut-and-paste "
-"operations,\n"
-"and includes support for pop-up menus on the console."
-msgstr ""
-"GPM, Midnight Commander kimi mətn əsaslı tə'minatlara siƧan dəstəyi əlavə "
-"edər.\n"
-"Ayrıca konsolda siƧanla kÉ™smÉ™ vÉ™ yapıÅdırma É™mÉ™liyyatlarına da imkan verÉ™r.\n"
-"Konsolda pop-up menyu dəstəyi verər."
-
-#: ../../services.pm_.c:26
-msgid ""
-"HardDrake runs a hardware probe, and optionally configures\n"
-"new/changed hardware."
-msgstr ""
-"HardDrake texniki tÉ™'minat sınaÄı aparar vÉ™ onları bir ƶn quraÅdırmadan "
-"keƧirər."
-
-#: ../../services.pm_.c:28 ../../standalone/logdrake_.c:412
-msgid ""
-"Apache is a World Wide Web server. It is used to serve HTML files and CGI."
-msgstr ""
-"Apache bir World Wide Web vericisidir. HTML faylları vÉ™ CGI verilmÉ™si Ć¼Ć§Ć¼n "
-"istifadÉ™ edilir."
-
-#: ../../services.pm_.c:29
-msgid ""
-"The internet superserver daemon (commonly called inetd) starts a\n"
-"variety of other internet services as needed. It is responsible for "
-"starting\n"
-"many services, including telnet, ftp, rsh, and rlogin. Disabling inetd "
-"disables\n"
-"all of the services it is responsible for."
-msgstr ""
-"Internet superserver daemon (qısaca inetd ) bir Ƨox \n"
-"baÅqa internet xidmÉ™tcisini lazım gÉ™ldiyi zaman iÅa salır. İƧindÉ™ telnet, "
-"ftp, rsh vÉ™ rlogin kimi proqramın olduÄu xidmÉ™tlÉ™ri iÅÉ™ salmaqla mÉ™s'uldur.\n"
-"inetd-ni sistemden Ƨıxarmaq, onun mÉ™s'ul olduÄu bĆ¼tĆ¼n xidmÉ™tlÉ™ri\n"
-"rÉ™dd etmÉ™k mÉ™nasını daÅıyır."
-
-#: ../../services.pm_.c:33
-msgid ""
-"Launch packet filtering for Linux kernel 2.2 series, to set\n"
-"up a firewall to protect your machine from network attacks."
-msgstr ""
-"Linuks 2.2 seriyası Ƨəkirdəklərində firewall\n"
-"qurmaq Ć¼Ć§Ć¼n Ć¼Ć§Ć¼n paket sĆ¼zĆ¼lmÉ™sini baÅlat."
-
-#: ../../services.pm_.c:35
-msgid ""
-"This package loads the selected keyboard map as set in\n"
-"/etc/sysconfig/keyboard. This can be selected using the kbdconfig utility.\n"
-"You should leave this enabled for most machines."
-msgstr ""
-"Bu paket /etc/sysconfig/keyboard'dakı seƧili klaviatura dĆ¼zĆ¼lĆ¼ÅĆ¼nĆ¼ yĆ¼klÉ™r.\n"
-"Hansı klaviatura dĆ¼zĆ¼lĆ¼ÅĆ¼ istifadÉ™ edilÉ™cÉ™yi kbdconfig ilÉ™ seƧilir.\n"
-"Bu, mandrake qurulan bir Ƨox kompĆ¼terdÉ™ fÉ™al buraxılmalıdır."
-
-#: ../../services.pm_.c:38
-msgid ""
-"Automatic regeneration of kernel header in /boot for\n"
-"/usr/include/linux/{autoconf,version}.h"
-msgstr ""
-"/usr/include/linux/{autoconf,version}.h Ć¼Ć§Ć¼n \n"
-"/boot-da avtomatik ƧəkirdÉ™k baÅlıÄı yaradılması."
-
-#: ../../services.pm_.c:40
-msgid "Automatic detection and configuration of hardware at boot."
-msgstr "Texniki avadanlıÄın aƧılıÅda avtomatik tÉ™sbiti vÉ™ qurulması."
-
-#: ../../services.pm_.c:41
-msgid ""
-"Linuxconf will sometimes arrange to perform various tasks\n"
-"at boot-time to maintain the system configuration."
-msgstr ""
-"Linuxconf sistem qurÄularınızı idarÉ™ edÉ™n proqramları\n"
-"mĆ¼xtÉ™lif vÉ™zifÉ™lÉ™ri aƧılıÅda icra edÉ™r."
-
-#: ../../services.pm_.c:43
-msgid ""
-"lpd is the print daemon required for lpr to work properly. It is\n"
-"basically a server that arbitrates print jobs to printer(s)."
-msgstr ""
-"lpd, lpr'nin dĆ¼zgĆ¼n olaraq iÅlÉ™mÉ™si Ć¼Ć§Ć¼n lazımi Ƨap edici vasitÉ™sidir.\n"
-"lpd əsasən, Ƨap vəzifələrini idarə edən və onları Ƨap ediciyə gƶndərən "
-"vericidir."
-
-#: ../../services.pm_.c:45
-msgid ""
-"Linux Virtual Server, used to build a high-performance and highly\n"
-"available server."
-msgstr ""
-"Linuks Virtual Verici, yĆ¼ksÉ™k qabiliyyÉ™tli vericilÉ™r qurmaq Ć¼Ć§Ć¼n iÅlÉ™dilir."
-
-#: ../../services.pm_.c:47 ../../standalone/logdrake_.c:413
-#, fuzzy
-msgid ""
-"named (BIND) is a Domain Name Server (DNS) that is used to resolve host "
-"names to IP addresses."
-msgstr ""
-"named (BIND) verici adlarını IP Ć¼nvanlarına ƧevirÉ™n\n"
-"Sahə Adı Vericisidir(DNS)."
-
-#: ../../services.pm_.c:48
-msgid ""
-"Mounts and unmounts all Network File System (NFS), SMB (Lan\n"
-"Manager/Windows), and NCP (NetWare) mount points."
-msgstr ""
-"BĆ¼tĆ¼n Å˛É™bÉ™kÉ™ Fayl SistemlÉ™rini (NFS), SMB (Lan Manager/Windows), vÉ™ \n"
-"NCP (NetWare) baÄlama nƶqtÉ™lÉ™rini baÄlar vÉ™ ayırır."
-
-#: ../../services.pm_.c:50
-msgid ""
-"Activates/Deactivates all network interfaces configured to start\n"
-"at boot time."
-msgstr ""
-"AƧılıŠsırasında baÅlamaq Ć¼Ć§Ć¼n qurulmuÅ bĆ¼tĆ¼n ÅÉ™bÉ™kÉ™ axtar Ć¼zlÉ™rini "
-"fÉ™allaÅdırır ya da qapatır."
-
-#: ../../services.pm_.c:52
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP networks.\n"
-"This service provides NFS server functionality, which is configured via the\n"
-"/etc/exports file."
-msgstr ""
-"NFS TCP/IP ÅÉ™bÉ™kÉ™lÉ™rindÉ™ fayl bƶlĆ¼ÅĆ¼lmÉ™si Ć¼Ć§Ć¼n istifadÉ™ edilÉ™n mÉ™Åhur bir "
-"protokoldur.\n"
-"Bu xidmÉ™t, /etc/exports faylında qurÄuları olan NFS vericisinin\n"
-"istifadəsinə imkan verər."
-
-#: ../../services.pm_.c:55
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP\n"
-"networks. This service provides NFS file locking functionality."
-msgstr ""
-"NFS TCP/IP ÅÉ™bÉ™kÉ™lÉ™rindÉ™ fayl bƶlĆ¼ÅĆ¼lmÉ™si Ć¼Ć§Ć¼n istifadÉ™ edilÉ™n mÉ™Åhur bir \n"
-"protokoldur. Bu xidmət NFS fayl qıfılı istifadəsinə imkan verər."
-
-#: ../../services.pm_.c:57
-msgid ""
-"Automatically switch on numlock key locker under console\n"
-"and XFree at boot."
-msgstr ""
-"AƧılıÅda XFree vÉ™ konsolda numlock dĆ¼ymÉ™sini\n"
-"avtomatik olaraq aƧ."
-
-#: ../../services.pm_.c:59
-msgid "Support the OKI 4w and compatible winprinters."
-msgstr "OKI 4w vÉ™ uyÄun Windows Ƨap edicilÉ™rini dÉ™stÉ™klÉ™."
-
-#: ../../services.pm_.c:60
-msgid ""
-"PCMCIA support is usually to support things like ethernet and\n"
-"modems in laptops. It won't get started unless configured so it is safe to "
-"have\n"
-"it installed on machines that don't need it."
-msgstr ""
-"PCMCIA dəstəyi, laptoplarda eternet və modem kimi avadanlıqların "
-"dəstəklənməsinə imkan verər.\n"
-"QurulmadıÄı vaxtda aƧılıÅda iÅlÉ™mÉ™z, iÅlÉ™mÉ™sinÉ™ ehtiyac olmayan\n"
-"kompĆ¼terlÉ™rdÉ™ qurulu olması problem yaratmaz."
-
-#: ../../services.pm_.c:63
-msgid ""
-"The portmapper manages RPC connections, which are used by\n"
-"protocols such as NFS and NIS. The portmap server must be running on "
-"machines\n"
-"which act as servers for protocols which make use of the RPC mechanism."
-msgstr ""
-"portmapper, NFS ve NIS kimi protokollar tərəfindən istifadə edilən RPC \n"
-"baÄlantılarını tÉ™Åkilatlandırır. Portmap vericisi RPC mexanizmini iÅlÉ™dÉ™n\n"
-"protokollarla xidmÉ™t edÉ™n kompĆ¼terlÉ™rdÉ™ qurulmalıdır vÉ™ iÅlÉ™dilmÉ™lidir."
-
-#: ../../services.pm_.c:66 ../../standalone/logdrake_.c:415
-#, fuzzy
-msgid ""
-"Postfix is a Mail Transport Agent, which is the program that moves mail from "
-"one machine to another."
-msgstr ""
-"Posfix, elektronik mÉ™ktubların bir kompĆ¼terdÉ™n digÉ™rinÉ™ yollayan \n"
-"Elektronik Məktub Yollama Vasitəsidir."
-
-#: ../../services.pm_.c:67
-msgid ""
-"Saves and restores system entropy pool for higher quality random\n"
-"number generation."
-msgstr ""
-"YĆ¼ksÉ™k keyfiyyÉ™t tÉ™sadĆ¼fi rÉ™qÉ™m istehsal edÉ™n sistem entropi hovuzunun \n"
-"saxlanması və yenidən kƶhnə halına gətirilməsinə imkan verər."
-
-#: ../../services.pm_.c:69
-msgid ""
-"Assign raw devices to block devices (such as hard drive\n"
-"partitions), for the use of applications such as Oracle"
-msgstr ""
-"Assign raw devices to block devices (such as hard drive\n"
-"partitions), for the use of applications such as Oracle"
-
-#: ../../services.pm_.c:71
-msgid ""
-"The routed daemon allows for automatic IP router table updated via\n"
-"the RIP protocol. While RIP is widely used on small networks, more complex\n"
-"routing protocols are needed for complex networks."
-msgstr ""
-"routed vasitəsi avtomatik IP router cədvəlinin RIP protokolu tərəfindən\n"
-"yenilÉ™nmÉ™sinÉ™ imkan verÉ™r. RIP É™sasÉ™n kiƧik ÅÉ™bÉ™kÉ™lÉ™rdÉ™ istifadÉ™ edilir, "
-"daha bƶyĆ¼k\n"
-"ÅÉ™bÉ™kÉ™lÉ™rdÉ™ daha qarıÅıq routing protokollarına ehtiyacı vardır."
-
-#: ../../services.pm_.c:74
-msgid ""
-"The rstat protocol allows users on a network to retrieve\n"
-"performance metrics for any machine on that network."
-msgstr ""
-"rstat protokolu bir ÅÉ™bÉ™kÉ™dÉ™kı istifadəƧilÉ™rin o ÅÉ™bÉ™kÉ™dÉ™kı hÉ™r hansı bir\n"
-"kompĆ¼ter haqqındakı qabiliyyÉ™t ƶlĆ§Ć¼lÉ™ri ala bilmÉ™lÉ™rinÉ™ imkan verÉ™r."
-
-#: ../../services.pm_.c:76
-msgid ""
-"The rusers protocol allows users on a network to identify who is\n"
-"logged in on other responding machines."
-msgstr ""
-"rusers protokolu bir ÅÉ™bÉ™kÉ™dÉ™kı istifadəƧilÉ™rin o ÅÉ™bÉ™kÉ™dÉ™kı kompĆ¼terlÉ™rdÉ™\n"
-"iÅlÉ™yÉ™n istifadəƧilÉ™ri gƶrmÉ™sinÉ™ imkan verÉ™r."
-
-#: ../../services.pm_.c:78
-msgid ""
-"The rwho protocol lets remote users get a list of all of the users\n"
-"logged into a machine running the rwho daemon (similiar to finger)."
-msgstr ""
-"rwho protokolu, uzaq istifadəƧilÉ™rin, rwho vasitÉ™si iÅlÉ™dÉ™n bir kompĆ¼terdÉ™\n"
-"olan bĆ¼tĆ¼n istifadəƧilÉ™ri gƶrmÉ™lÉ™rina imkan verÉ™r."
-
-#: ../../services.pm_.c:80
-msgid "Launch the sound system on your machine"
-msgstr "KompĆ¼terinizdÉ™ sÉ™s sistemı baÅladın"
-
-#: ../../services.pm_.c:81
-msgid ""
-"Syslog is the facility by which many daemons use to log messages\n"
-"to various system log files. It is a good idea to always run syslog."
-msgstr ""
-"Syslog, bir Ƨox vasitÉ™nin ismarıclarını mĆ¼xtÉ™lif sistem qeydlÉ™rindÉ™\n"
-"tutmalarına imkan verÉ™r. Syslog'un hÉ™r zaman iÅlÉ™mÉ™si\n"
-"yaxÅı fikirdir."
-
-#: ../../services.pm_.c:83
-msgid "Load the drivers for your usb devices."
-msgstr "USB avadanlıÄınız Ć¼Ć§Ć¼n sĆ¼rĆ¼cĆ¼lÉ™ri yĆ¼klÉ™yin."
-
-#: ../../services.pm_.c:84
-msgid "Starts the X Font Server (this is mandatory for XFree to run)."
-msgstr ""
-"X Font Vericisini aƧılıÅda iÅÉ™ salar (Bu, XFree icrası Ć¼Ć§Ć¼n mÉ™cburidir)."
-
-#: ../../services.pm_.c:110 ../../services.pm_.c:152
-msgid "Choose which services should be automatically started at boot time"
-msgstr "AƧılıÅda avtomatik olaraq baÅlayacaq xidmÉ™tlÉ™ri seƧin"
-
-#: ../../services.pm_.c:122
-#, fuzzy
-msgid "Printing"
-msgstr "Ƈap Edici"
-
-#: ../../services.pm_.c:123
-msgid "Internet"
-msgstr "Ä°nternet"
-
-#: ../../services.pm_.c:126
-msgid "File sharing"
-msgstr ""
-
-#: ../../services.pm_.c:128 ../../standalone/drakbackup_.c:934
-#, fuzzy
-msgid "System"
-msgstr "Sistem modu"
-
-#: ../../services.pm_.c:133
-#, fuzzy
-msgid "Remote Administration"
-msgstr "Uzaq Ƈap Edici (lpd) SeƧənəkləri"
-
-#: ../../services.pm_.c:141
-#, fuzzy
-msgid "Database Server"
-msgstr "Databeyz"
-
-#: ../../services.pm_.c:170
-#, c-format
-msgid "Services: %d activated for %d registered"
-msgstr ""
-
-#: ../../services.pm_.c:186
-#, fuzzy
-msgid "Services"
-msgstr "avadanlıq"
-
-#: ../../services.pm_.c:198
-msgid "running"
-msgstr "iÅlÉ™mir"
-
-#: ../../services.pm_.c:198
-msgid "stopped"
-msgstr "dayandırılıb"
-
-#: ../../services.pm_.c:212
-msgid "Services and deamons"
-msgstr "Xidmətlər və vasitələr"
-
-#: ../../services.pm_.c:217
-msgid ""
-"No additional information\n"
-"about this service, sorry."
-msgstr ""
-"Bu xidmÉ™t haqqında təəsĆ¼f ki,\n"
-"əlavə mə'lumat yoxdur."
-
-#: ../../services.pm_.c:224
-msgid "On boot"
-msgstr "AƧılıÅda"
-
-#: ../../services.pm_.c:236
-#, fuzzy
-msgid "Start"
-msgstr "Hal:"
-
-#: ../../services.pm_.c:236
-#, fuzzy
-msgid "Stop"
-msgstr "Sektor"
-
-#: ../../share/advertising/00-thanks.pl_.c:9
-msgid "Thank you for choosing Mandrake Linux 8.2"
-msgstr ""
-
-#: ../../share/advertising/00-thanks.pl_.c:10
-msgid "Welcome to the Open Source world"
-msgstr ""
-
-#: ../../share/advertising/00-thanks.pl_.c:11
-msgid ""
-"The success of MandrakeSoft is based upon the principle of Free Software. "
-"Your new operating system is the result of collaborative work on the part of "
-"the worldwide Linux Community"
-msgstr ""
-
-#: ../../share/advertising/01-gnu.pl_.c:9
-#, fuzzy
-msgid "Join the Free Software world"
-msgstr "BĆ¼tĆ¼n dĆ¼nya"
-
-#: ../../share/advertising/01-gnu.pl_.c:10
-msgid ""
-"Get to know the Open Source community and become a member. Learn, teach, and "
-"help others by joining the many discussion forums that you will find in our "
-"\"Community\" webpages"
-msgstr ""
-
-#: ../../share/advertising/02-internet.pl_.c:9
-#, fuzzy
-msgid "Internet and Messaging"
-msgstr "İnternet imkanı"
-
-#: ../../share/advertising/02-internet.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best software to access everything the "
-"Internet has to offer: Surf the web & view animations with Mozilla and "
-"Konqueror, exchange email & organize your personal information with "
-"Evolution and Kmail, and much more"
-msgstr ""
-
-#: ../../share/advertising/03-graphic.pl_.c:9
-#, fuzzy
-msgid "Multimedia and Graphics"
-msgstr "Multimedya - Qrafika"
-
-#: ../../share/advertising/03-graphic.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 lets you push your multimedia computer to its limits! Use "
-"the latest software to play music and audio files, edit and organize your "
-"images and photos, watch TV and videos, and much more"
-msgstr ""
-
-#: ../../share/advertising/04-develop.pl_.c:9
-msgid "Development"
-msgstr "TÉ™crĆ¼bi"
-
-#: ../../share/advertising/04-develop.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 is the ultimate development platform. Discover the power "
-"of the GNU gcc compiler as well as the best Open Source development "
-"environments"
-msgstr ""
-
-#: ../../share/advertising/05-contcenter.pl_.c:9
-#, fuzzy
-msgid "Mandrake Control Center"
-msgstr "İdarə Mərkəzi"
-
-#: ../../share/advertising/05-contcenter.pl_.c:10
-msgid ""
-"The Mandrake Linux 8.2 Control Center is a one-stop location for fully "
-"customizing and configuring your Mandrake system"
-msgstr ""
-
-#: ../../share/advertising/06-user.pl_.c:9
-#, fuzzy
-msgid "User interfaces"
-msgstr "Å˛É™bÉ™kÉ™ ara Ć¼zĆ¼"
-
-#: ../../share/advertising/06-user.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides 11 different graphical desktop environments and "
-"window managers to choose from including GNOME 1.4, KDE 2.2.2, Window Maker "
-"0.8, and the rest"
-msgstr ""
-
-#: ../../share/advertising/07-server.pl_.c:9
-#, fuzzy
-msgid "Server Software"
-msgstr "SMB verici adı"
-
-#: ../../share/advertising/07-server.pl_.c:10
-msgid ""
-"Transform your machine into a powerful server with just a few clicks of the "
-"mouse: Web server, email, firewall, router, file and print server, ..."
-msgstr ""
-
-#: ../../share/advertising/08-games.pl_.c:9
-msgid "Games"
-msgstr "Oyunlar"
-
-#: ../../share/advertising/08-games.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best Open Source games - arcade, action, "
-"cards, sports, strategy, ..."
-msgstr ""
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:9
-msgid "MandrakeCampus"
-msgstr ""
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:10
-msgid ""
-"Would you like to learn Linux simply, quickly, and for free? MandrakeSoft "
-"provides free Linux training, as well as a way to test your progress, at "
-"MandrakeCampus -- our online training center"
-msgstr ""
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:9
-#, fuzzy
-msgid "MandrakeExpert"
-msgstr "Usta"
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:10
-msgid ""
-"Quality support from the Linux Community, and from MandrakeSoft, is just "
-"around the corner. And if you're already a Linux veteran, become an \"Expert"
-"\" and share your knowledge at our support website"
-msgstr ""
-
-#: ../../share/advertising/11-consul.pl_.c:9
-msgid "MandrakeConsulting"
-msgstr ""
-
-#: ../../share/advertising/11-consul.pl_.c:10
-msgid ""
-"For all of your IT projects, our consultants are ready to analyze your "
-"requirements and offer a customized solution. Benefit from MandrakeSoft's "
-"vast experience as a Linux producer to provide a true IT alternative for "
-"your business organization"
-msgstr ""
-
-#: ../../share/advertising/12-MDKstore.pl_.c:9
-msgid "MandrakeStore"
-msgstr ""
-
-#: ../../share/advertising/12-MDKstore.pl_.c:10
-msgid ""
-"A full range of Linux solutions, as well as special offers on products and "
-"'goodies', are available online at our e-store"
-msgstr ""
-
-#: ../../share/advertising/13-Nvert.pl_.c:9
-msgid ""
-"For more information on MandrakeSoft's Professional Services and commercial "
-"offerings, please see the following web page:"
-msgstr ""
-
-#: ../../share/advertising/13-Nvert.pl_.c:11
-msgid "http://www.mandrakesoft.com/sales/contact"
-msgstr ""
-
-#: ../../standalone.pm_.c:25
-#, fuzzy
-msgid "Installing packages..."
-msgstr "%s paketi qurulur"
-
-#: ../../standalone/diskdrake_.c:85
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I'll try to go on blanking bad partitions"
-msgstr ""
-"Bƶlmə cədvəlini oxuya bilmirəm, dəyəsən biraz xarab olub:-(\n"
-"XÉ™sÉ™rli hissÉ™lÉ™ri dĆ¼zÉ™ltmÉ™yÉ™ cÉ™hd edÉ™cÉ™m"
-
-#: ../../standalone/drakautoinst_.c:45
-#, fuzzy
-msgid "Error!"
-msgstr "Xəta"
-
-#: ../../standalone/drakautoinst_.c:46
-#, c-format
-msgid "I can't find needed image file `%s'."
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:48
-#, fuzzy
-msgid "Auto Install Configurator"
-msgstr "Qurulum sonrası qurÄular"
-
-#: ../../standalone/drakautoinst_.c:49
-msgid ""
-"You are about to configure an Auto Install floppy. This feature is somewhat "
-"dangerous and must be used circumspectly.\n"
-"\n"
-"With that feature, you will be able to replay the installation you've "
-"performed on this computer, being interactively prompted for some steps, in "
-"order to change their values.\n"
-"\n"
-"For maximum safety, the partitioning and formatting will never be performed "
-"automatically, whatever you chose during the install of this computer.\n"
-"\n"
-"Do you want to continue?"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:71
-#, fuzzy
-msgid "Automatic Steps Configuration"
-msgstr "Qurulum TÉ™rzi QuraÅdırılması"
-
-#: ../../standalone/drakautoinst_.c:72
-msgid ""
-"Please choose for each step whether it will replay like your install, or it "
-"will be manual"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:145
-msgid ""
-"\n"
-"Welcome.\n"
-"\n"
-"The parameters of the auto-install are available in the sections on the left"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:243 ../../standalone/drakgw_.c:671
-#: ../../standalone/scannerdrake_.c:106
-msgid "Congratulations!"
-msgstr "Təbriklər!"
-
-#: ../../standalone/drakautoinst_.c:244
-msgid ""
-"The floppy has been successfully generated.\n"
-"You may now replay your installation."
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:282
-#, fuzzy
-msgid "Auto Install"
-msgstr "Qurulum"
-
-#: ../../standalone/drakautoinst_.c:352
-#, fuzzy
-msgid "Add an item"
-msgstr "İstifadəƧi əlavə et"
-
-#: ../../standalone/drakautoinst_.c:359
-#, fuzzy
-msgid "Remove the last item"
-msgstr "Loopback faylı ÅÉ™killÉ™ndirilir: %s"
-
-#: ../../standalone/drakbackup_.c:448 ../../standalone/drakbackup_.c:451
-#: ../../standalone/drakbackup_.c:455
-msgid ""
-"***********************************************************************\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:449
-msgid ""
-"\n"
-" DrakBackup Report \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:450
-msgid ""
-"\n"
-" DrakBackup Daemon Report\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:453
-msgid ""
-"\n"
-"\n"
-"***********************************************************************\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:454
-msgid ""
-"\n"
-" DrakBackup Report Details\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:476
-msgid "total progess"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:555 ../../standalone/drakbackup_.c:602
-msgid "Backup system files..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:603 ../../standalone/drakbackup_.c:667
-#, fuzzy
-msgid "Hard Disk Backup files..."
-msgstr "Xətalı yedəkləmə faylı"
-
-#: ../../standalone/drakbackup_.c:615
-#, fuzzy
-msgid "Backup User files..."
-msgstr "Xətalı yedəkləmə faylı"
-
-#: ../../standalone/drakbackup_.c:616
-msgid "Hard Disk Backup Progress..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:666
-#, fuzzy
-msgid "Backup Other files..."
-msgstr "Xətalı yedəkləmə faylı"
-
-#: ../../standalone/drakbackup_.c:674
-#, c-format
-msgid ""
-"file list send by FTP : %s\n"
-" "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:677
-msgid ""
-"\n"
-"(!) FTP connexion problem: It was not possible to send your backup files by "
-"FTP.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:687
-msgid "(!) Error during mail sending. \n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:728 ../../standalone/drakbackup_.c:739
-#: ../../standalone/drakbackup_.c:750 ../../standalone/drakfont_.c:787
-#, fuzzy
-msgid "File Selection"
-msgstr "Paket Qrup SeƧkisi"
-
-#: ../../standalone/drakbackup_.c:755
-msgid "Select the files or directories and click on 'Add'"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:790
-msgid ""
-"\n"
-"Please check all options that you need.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:791
-msgid ""
-"These options can backup and restore all files in your /etc directory.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:792
-msgid "Backup your System files. ( /etc directory )"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:793
-msgid "Use incremental backup (do not replace old backups)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:794
-msgid "Do not include critical files (passwd, group, fstab)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:795
-msgid ""
-"With this option you will be able to restore any version\n"
-" of your /etc directory."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:812
-#, fuzzy
-msgid "Please check all users that you want to include in your backup."
-msgstr "XahiÅ edirik qurmaq istÉ™diyiniz paketlÉ™ri seƧin."
-
-#: ../../standalone/drakbackup_.c:839
-msgid "Do not include the browser cache"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:840 ../../standalone/drakbackup_.c:864
-msgid "Use Incremental Backups (do not replace old backups)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:862 ../../standalone/drakfont_.c:827
-#, fuzzy
-msgid "Remove Selected"
-msgstr "Nƶvbəni sil"
-
-#: ../../standalone/drakbackup_.c:900
-#, fuzzy
-msgid "Windows (FAT32)"
-msgstr "\"Windows\"u sil"
-
-#: ../../standalone/drakbackup_.c:939
-#, fuzzy
-msgid "Users"
-msgstr "İstifadəƧi adı"
-
-#: ../../standalone/drakbackup_.c:964
-msgid "Use FTP connection to backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:967
-#, fuzzy
-msgid "Please enter the host name or IP."
-msgstr "XahiÅ edirik siƧanınızı seƧin"
-
-#: ../../standalone/drakbackup_.c:972
-msgid ""
-"Please enter the directory to\n"
-" put the backup on this host."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:977
-#, fuzzy
-msgid "Please enter your login"
-msgstr "XahiŠedirik təkrar sınayın"
-
-#: ../../standalone/drakbackup_.c:982
-#, fuzzy
-msgid "Please enter your password"
-msgstr "XahiŠedirik təkrar sınayın"
-
-#: ../../standalone/drakbackup_.c:988
-#, fuzzy
-msgid "Remember this password"
-msgstr "Parolsuz"
-
-#: ../../standalone/drakbackup_.c:1052 ../../standalone/drakbackup_.c:2048
-#, fuzzy
-msgid "FTP Connection"
-msgstr "Yerli Å˛É™bÉ™kÉ™ quraÅdırılması"
-
-#: ../../standalone/drakbackup_.c:1059 ../../standalone/drakbackup_.c:2056
-#, fuzzy
-msgid "Secure Connection"
-msgstr "Ƈap Edici BaÄlantısı SeƧin"
-
-#: ../../standalone/drakbackup_.c:1085 ../../standalone/drakbackup_.c:2889
-msgid "Use CD/DVDROM to backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1088 ../../standalone/drakbackup_.c:2893
-#, fuzzy
-msgid "Please choose your CD space"
-msgstr "Klaviatura quruluÅunu seƧiniz."
-
-#: ../../standalone/drakbackup_.c:1094 ../../standalone/drakbackup_.c:2905
-#, fuzzy
-msgid "Please check if you are using CDRW media"
-msgstr "XahiÅ edirik bir bƶlmÉ™ Ć¼stĆ¼nÉ™ tıqlayın"
-
-#: ../../standalone/drakbackup_.c:1100 ../../standalone/drakbackup_.c:2911
-msgid "Please check if you want to erase your CDRW before"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1106
-#, fuzzy
-msgid ""
-"Please check if you want to include\n"
-" install boot on your CD."
-msgstr "XahiÅ edirik qurmaq istÉ™diyiniz paketlÉ™ri seƧin."
-
-#: ../../standalone/drakbackup_.c:1112
-msgid ""
-"Please enter your CD Writer device name\n"
-" ex: 0,1,0"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1153
-#, fuzzy
-msgid "Use tape to backup"
-msgstr "Xətalı yedəkləmə faylı"
-
-#: ../../standalone/drakbackup_.c:1156
-msgid "Please enter the device name to use for backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1162 ../../standalone/drakbackup_.c:1203
-#: ../../standalone/drakbackup_.c:2013
-msgid ""
-"Please enter the maximum size\n"
-" allowed for Drakbackup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1195 ../../standalone/drakbackup_.c:2005
-#, fuzzy
-msgid "Please enter the directory to save:"
-msgstr "XahiÅ edirik siƧanınızı seƧin"
-
-#: ../../standalone/drakbackup_.c:1209 ../../standalone/drakbackup_.c:2019
-#, fuzzy
-msgid "Use quota for backup files."
-msgstr "Xətalı yedəkləmə faylı"
-
-#: ../../standalone/drakbackup_.c:1267
-#, fuzzy
-msgid "Network"
-msgstr "Å˛É™bÉ™kÉ™ ara Ć¼zĆ¼"
-
-#: ../../standalone/drakbackup_.c:1272
-msgid "CDROM / DVDROM"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1277
-msgid "HardDrive / NFS"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1297 ../../standalone/drakbackup_.c:1301
-#: ../../standalone/drakbackup_.c:1305
-msgid "hourly"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1298 ../../standalone/drakbackup_.c:1302
-#: ../../standalone/drakbackup_.c:1305
-msgid "daily"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1299 ../../standalone/drakbackup_.c:1303
-#: ../../standalone/drakbackup_.c:1305
-msgid "weekly"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1300 ../../standalone/drakbackup_.c:1304
-#: ../../standalone/drakbackup_.c:1305
-msgid "monthly"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1312
-#, fuzzy
-msgid "Use daemon"
-msgstr "İstifadəƧi adı"
-
-#: ../../standalone/drakbackup_.c:1317
-#, fuzzy
-msgid ""
-"Please choose the time \n"
-"interval between each backup"
-msgstr "XahiÅ edirik qurmaq istÉ™diyiniz paketlÉ™ri seƧin."
-
-#: ../../standalone/drakbackup_.c:1323
-#, fuzzy
-msgid ""
-"Please choose the\n"
-"media for backup."
-msgstr "XahiÅ edirik istifadÉ™ Ć¼Ć§Ć¼n bir dil seƧin."
-
-#: ../../standalone/drakbackup_.c:1327
-#, fuzzy
-msgid "Use Hard Drive with daemon"
-msgstr "Sabit disk seƧkisi"
-
-#: ../../standalone/drakbackup_.c:1329
-#, fuzzy
-msgid "Use FTP with daemon"
-msgstr "İstifadəƧi adı"
-
-#: ../../standalone/drakbackup_.c:1333
-msgid "Please be sure that the cron daemon is included in your services."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1369
-msgid "Send mail report after each backup to :"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1411
-msgid "What"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1416
-#, fuzzy
-msgid "Where"
-msgstr "Ƈərx"
-
-#: ../../standalone/drakbackup_.c:1421
-#, fuzzy
-msgid "When"
-msgstr "Ƈərx"
-
-#: ../../standalone/drakbackup_.c:1426
-#, fuzzy
-msgid "More Options"
-msgstr "Modul seƧənəkləri:"
-
-#: ../../standalone/drakbackup_.c:1445 ../../standalone/drakbackup_.c:2801
-#, fuzzy
-msgid "Drakbackup Configuration"
-msgstr "Å˛É™bÉ™kÉ™ quraÅdırılması"
-
-#: ../../standalone/drakbackup_.c:1463
-#, fuzzy
-msgid "Please choose where you want to backup"
-msgstr "XahiÅ edirik qurmaq istÉ™diyiniz paketlÉ™ri seƧin."
-
-#: ../../standalone/drakbackup_.c:1465
-msgid "on Hard Drive"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1476
-msgid "across Network"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1540
-#, fuzzy
-msgid "Please choose what you want to backup"
-msgstr "XahiÅ edirik qurmaq istÉ™diyiniz paketlÉ™ri seƧin."
-
-#: ../../standalone/drakbackup_.c:1541
-#, fuzzy
-msgid "Backup system"
-msgstr "Fayl sistemi qurÄuları"
-
-#: ../../standalone/drakbackup_.c:1542
-msgid "Backup Users"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1545
-msgid "Select user manually"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1627
-msgid ""
-"\n"
-"Backup Sources: \n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1628
-msgid ""
-"\n"
-"- System Files:\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1630
-msgid ""
-"\n"
-"- User Files:\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1632
-msgid ""
-"\n"
-"- Other Files:\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1634
-#, c-format
-msgid ""
-"\n"
-"- Save on Hard drive on path : %s\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1635
-#, c-format
-msgid ""
-"\n"
-"- Save on FTP on host : %s\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1636
-#, c-format
-msgid ""
-"\t\t user name: %s\n"
-"\t\t on path: %s \n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1637
-#, fuzzy
-msgid ""
-"\n"
-"- Options:\n"
-msgstr "SeƧənəklər"
-
-#: ../../standalone/drakbackup_.c:1638
-msgid "\tDo not include System Files\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1639
-msgid "\tBackups use tar and bzip2\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1640
-msgid "\tBackups use tar and gzip\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1641
-#, c-format
-msgid ""
-"\n"
-"- Daemon (%s) include :\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1642
-msgid "\t-Hard drive.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1643
-msgid "\t-CDROM.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1644
-msgid "\t-Network by FTP.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1645
-msgid "\t-Network by SSH.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1647
-msgid "No configuration, please click Wizard or Advanced.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1652
-msgid ""
-"List of data to restore:\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1753
-msgid ""
-"List of data corrupted:\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1755
-#, fuzzy
-msgid "Please uncheck or remove it on next time."
-msgstr "Modeminizin hansı serial qapıya baÄlı olduÄunu seƧiniz"
-
-#: ../../standalone/drakbackup_.c:1765
-msgid "Backup files are corrupted"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1786
-msgid " All your selectionned data have been "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1787
-#, c-format
-msgid " Successfuly Restored on %s "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1886
-#, fuzzy
-msgid " Restore Configuration "
-msgstr "Å˛É™bÉ™kÉ™ quraÅdırılması"
-
-#: ../../standalone/drakbackup_.c:1904
-msgid "OK to restore the other files."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1922
-msgid "User list to restore (only the most recent date per user is important)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1972
-#, fuzzy
-msgid "Backup the system files before:"
-msgstr "Xətalı yedəkləmə faylı"
-
-#: ../../standalone/drakbackup_.c:1974
-#, fuzzy
-msgid "please choose the date to restore"
-msgstr "XahiÅ edirik siƧanınızın nƶvĆ¼nĆ¼ seƧin."
-
-#: ../../standalone/drakbackup_.c:2002
-#, fuzzy
-msgid "Use Hard Disk to backup"
-msgstr "Xətalı yedəkləmə faylı"
-
-#: ../../standalone/drakbackup_.c:2083
-#, fuzzy
-msgid "Restore from Hard Disk."
-msgstr "DisketdÉ™n geri ƧaÄır"
-
-#: ../../standalone/drakbackup_.c:2085
-msgid "Please enter the directory where backups are stored"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2143
-#, fuzzy
-msgid "Select another media to restore from"
-msgstr "XahiÅ edirik siƧanınızın nƶvĆ¼nĆ¼ seƧin."
-
-#: ../../standalone/drakbackup_.c:2145
-#, fuzzy
-msgid "Other Media"
-msgstr "Digər"
-
-#: ../../standalone/drakbackup_.c:2151
-#, fuzzy
-msgid "Restore system"
-msgstr "Sistemi qur"
-
-#: ../../standalone/drakbackup_.c:2152
-#, fuzzy
-msgid "Restore Users"
-msgstr "Fayldan geri ƧaÄır"
-
-#: ../../standalone/drakbackup_.c:2153
-#, fuzzy
-msgid "Restore Other"
-msgstr "Fayldan geri ƧaÄır"
-
-#: ../../standalone/drakbackup_.c:2155
-msgid "select path to restore (instead of / )"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2159
-msgid "Do new backup before restore (only for incremental backups.)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2160
-msgid "Remove user directories before restore."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2217
-msgid "Restore all backups"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2225
-#, fuzzy
-msgid "Custom Restore"
-msgstr "XĆ¼susi"
-
-#: ../../standalone/drakbackup_.c:2266 ../../standalone/drakbackup_.c:2291
-#: ../../standalone/drakbackup_.c:2312 ../../standalone/drakbackup_.c:2333
-#: ../../standalone/drakbackup_.c:2351 ../../standalone/drakbackup_.c:2383
-#: ../../standalone/drakbackup_.c:2399 ../../standalone/drakbackup_.c:2419
-#: ../../standalone/drakbackup_.c:2438 ../../standalone/drakbackup_.c:2460
-#: ../../standalone/drakfont_.c:575
-#, fuzzy
-msgid "Help"
-msgstr "/_Yardım"
-
-#: ../../standalone/drakbackup_.c:2269 ../../standalone/drakbackup_.c:2296
-#: ../../standalone/drakbackup_.c:2315 ../../standalone/drakbackup_.c:2336
-#: ../../standalone/drakbackup_.c:2354 ../../standalone/drakbackup_.c:2402
-#: ../../standalone/drakbackup_.c:2422 ../../standalone/drakbackup_.c:2441
-#, fuzzy
-msgid "Previous"
-msgstr "<- ʸvvəlki"
-
-#: ../../standalone/drakbackup_.c:2271 ../../standalone/drakbackup_.c:2338
-#: ../../standalone/logdrake_.c:224
-#, fuzzy
-msgid "Save"
-msgstr "Hal:"
-
-#: ../../standalone/drakbackup_.c:2317
-#, fuzzy
-msgid "Build Backup"
-msgstr "Xətalı yedəkləmə faylı"
-
-#: ../../standalone/drakbackup_.c:2356 ../../standalone/drakbackup_.c:3033
-#, fuzzy
-msgid "Restore"
-msgstr "Fayldan geri ƧaÄır"
-
-#: ../../standalone/drakbackup_.c:2404 ../../standalone/drakbackup_.c:2424
-#: ../../standalone/drakbackup_.c:2445
-#, fuzzy
-msgid "Next"
-msgstr "Sonrakı ->"
-
-#: ../../standalone/drakbackup_.c:2478
-msgid ""
-"Please Build backup before to restore it...\n"
-" or verify that your path to save is correct."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2499
-msgid ""
-"Error durind sendmail\n"
-" your report mail was not sent\n"
-" Please configure sendmail"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2522
-#, fuzzy
-msgid "Package List to Install"
-msgstr "Qurulacaq paketləri seƧin"
-
-#: ../../standalone/drakbackup_.c:2550
-msgid ""
-"Error durind sending file via FTP.\n"
-" Please correct your FTP configuration."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2573
-#, fuzzy
-msgid "Please select data to restore..."
-msgstr "XahiÅ edirik istifadÉ™ Ć¼Ć§Ć¼n bir dil seƧin."
-
-#: ../../standalone/drakbackup_.c:2594
-#, fuzzy
-msgid "Please select media for backup..."
-msgstr "XahiÅ edirik istifadÉ™ Ć¼Ć§Ć¼n bir dil seƧin."
-
-#: ../../standalone/drakbackup_.c:2616
-#, fuzzy
-msgid "Please select data to backup..."
-msgstr "XahiÅ edirik istifadÉ™ Ć¼Ć§Ć¼n bir dil seƧin."
-
-#: ../../standalone/drakbackup_.c:2638
-msgid ""
-"No configuration file found \n"
-"please click Wizard or Advanced."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2659
-msgid "Under Devel ... please wait."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2739
-#, fuzzy
-msgid "Backup system files"
-msgstr "Xətalı yedəkləmə faylı"
-
-#: ../../standalone/drakbackup_.c:2741
-#, fuzzy
-msgid "Backup user files"
-msgstr "Xətalı yedəkləmə faylı"
-
-#: ../../standalone/drakbackup_.c:2743
-#, fuzzy
-msgid "Backup other files"
-msgstr "Xətalı yedəkləmə faylı"
-
-#: ../../standalone/drakbackup_.c:2745 ../../standalone/drakbackup_.c:2776
-msgid "Total Progress"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2767
-msgid "files sending by FTP"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2771
-#, fuzzy
-msgid "Sending files..."
-msgstr "Fayla qeyd et"
-
-#: ../../standalone/drakbackup_.c:2841
-msgid "Data list to include on CDROM."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2899
-#, fuzzy
-msgid "Please enter the cd writer speed"
-msgstr "XahiÅ edirik siƧanınızı seƧin"
-
-#: ../../standalone/drakbackup_.c:2917
-msgid "Please enter your CD Writer device name (ex: 0,1,0)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2923
-#, fuzzy
-msgid "Please check if you want to include install boot on your CD."
-msgstr "XahiÅ edirik qurmaq istÉ™diyiniz paketlÉ™ri seƧin."
-
-#: ../../standalone/drakbackup_.c:2989
-#, fuzzy
-msgid "Backup Now from configuration file"
-msgstr "Å˛É™bÉ™kÉ™ quraÅdırılması"
-
-#: ../../standalone/drakbackup_.c:2999
-#, fuzzy
-msgid "View Backup Configuration."
-msgstr "Å˛É™bÉ™kÉ™ quraÅdırılması"
-
-#: ../../standalone/drakbackup_.c:3020
-#, fuzzy
-msgid "Wizard Configuration"
-msgstr "Yerli Å˛É™bÉ™kÉ™ QuraÅdırılması"
-
-#: ../../standalone/drakbackup_.c:3024
-#, fuzzy
-msgid "Advanced Configuration"
-msgstr "Yerli Å˛É™bÉ™kÉ™ QuraÅdırılması"
-
-#: ../../standalone/drakbackup_.c:3028
-#, fuzzy
-msgid "Backup Now"
-msgstr "Fayl sistemi qurÄuları"
-
-#: ../../standalone/drakbackup_.c:3053
-msgid "Drakbackup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3104
-msgid ""
-"options description:\n"
-"\n"
-" In this step Drakbackup allow you to change:\n"
-"\n"
-" - The compression mode:\n"
-" \n"
-" If you check bzip2 compression, you will compress\n"
-" your data better than gzip (about 2-10 %).\n"
-" This option is not checked by default because\n"
-" this compression mode needs more time ( about 1000% more).\n"
-" \n"
-" - The update mode:\n"
-"\n"
-" This option will update your backup, but this\n"
-" option is not really useful because you need to\n"
-" decompress your backup before you can update it.\n"
-" \n"
-" - the .backupignore mode:\n"
-"\n"
-" Like with cvs, Drakbackup will ignore all references\n"
-" included in .backupignore files in each directories.\n"
-" ex: \n"
-" /*> cat .backupignore*/\n"
-" *.o\n"
-" *~\n"
-" ...\n"
-" \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3134
-msgid ""
-"\n"
-" Some errors during sendmail are caused by \n"
-" a bad configuration of postfix. To solve it you have to\n"
-" set myhostname or mydomain in /etc/postfix/main.cf\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3142
-msgid ""
-"options description:\n"
-"\n"
-" - Backup system files:\n"
-" \n"
-"\tThis option allows you to backup your /etc directory,\n"
-"\twhich contains all configuration files. Please be\n"
-"\tcareful during the restore step to not overwrite:\n"
-"\t\t/etc/passwd \n"
-"\t\t/etc/group \n"
-"\t\t/etc/fstab\n"
-"\n"
-" - Backup User files: \n"
-"\n"
-"\tThis option allows you select all users that you want \n"
-"\tto backup.\n"
-"\tTo preserve disk space, it is recommended that you \n"
-"\tdo not include web browser's cache.\n"
-"\n"
-" - Backup Other files: \n"
-"\n"
-"\tThis option allows you to add more data to save.\n"
-"\tWith the other backup it's not possible at the \n"
-"\tmoment to select select incremental backup.\t\t\n"
-" \n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerful \n"
-"\toption for backup. This option allows you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed afterward.\n"
-"\tThen you will be able, during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this option all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3181
-msgid ""
-"restore description:\n"
-" \n"
-"Only the most recent date will be used ,because with incremental \n"
-"backups it is necesarry to restore one by one each older backups.\n"
-"\n"
-"So if you don't like to restore an user please unselect all his\n"
-"check box.\n"
-"\n"
-"Otherwise, you are able to select only one of this\n"
-"\n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerfull \n"
-"\toption to use backup, this option allow you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed after.\n"
-"\tSo you will be able during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this options all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3207 ../../standalone/drakbackup_.c:3282
-msgid ""
-" Copyright (C) 2001 MandrakeSoft by DUPONT Sebastien <dupont_s\\@epita.fr>"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3209 ../../standalone/drakbackup_.c:3284
-msgid ""
-" This program is free software; you can redistribute it and/or modify\n"
-" it under the terms of the GNU General Public License as published by\n"
-" the Free Software Foundation; either version 2, or (at your option)\n"
-" any later version.\n"
-"\n"
-" This program is distributed in the hope that it will be useful,\n"
-" but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-" GNU General Public License for more details.\n"
-"\n"
-" You should have received a copy of the GNU General Public License\n"
-" along with this program; if not, write to the Free Software\n"
-" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3223
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select: \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, DrakBackup will remove \n"
-" your original directory and verify that all \n"
-" backup files are not corrupted. It is recommended \n"
-" you do a last backup before restoring.\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3261
-msgid ""
-"options description:\n"
-"\n"
-"Please be careful when you are using ftp backup, because only \n"
-"backups that are already built are sent to the server.\n"
-"So at the moment, you need to build the backup on your hard \n"
-"drive before sending it to the server.\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3270
-msgid ""
-"\n"
-"Restore Backup Problems:\n"
-"\n"
-"During the restore step, Drakbackup will verify all your\n"
-"backup files before restoring them.\n"
-"Before the restore, Drakbackup will remove \n"
-"your original directory, and you will loose all your \n"
-"data. It is important to be careful and not modify the \n"
-"backup data files by hand.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3298
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, Drakbackup will remove\n"
-" your original directory and verify that all\n"
-" backup files are not corrupted. It is recommended\n"
-" you do a last backup before restoring.\n"
-" \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakboot_.c:58
-#, c-format
-msgid "Installation of %s failed. The following error occured:"
-msgstr "%s qurulumu iflas etdi. Olan xəta:"
-
-#: ../../standalone/drakfont_.c:229
-msgid "Search installed fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:231
-msgid "Unselect fonts installed"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:252
-msgid "parse all fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:253
-#, fuzzy
-msgid "no fonts found"
-msgstr "ÅÉ™bÉ™kÉ™ kartı tapılmadı"
-
-#: ../../standalone/drakfont_.c:261 ../../standalone/drakfont_.c:303
-#: ../../standalone/drakfont_.c:352 ../../standalone/drakfont_.c:410
-#: ../../standalone/drakfont_.c:417 ../../standalone/drakfont_.c:443
-#: ../../standalone/drakfont_.c:455 ../../standalone/drakfont_.c:468
-#, fuzzy
-msgid "done"
-msgstr "Qurtardı"
-
-#: ../../standalone/drakfont_.c:265
-msgid "could not find any font in your mounted partitions"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:301
-msgid "Reselect correct fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:304
-msgid "could not find any font.\n"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:327
-msgid "Search fonts in installed list"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:350
-msgid "Fonts copy"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:353
-#, fuzzy
-msgid "True Type fonts installation"
-msgstr "Qurulum hazırlanır"
-
-#: ../../standalone/drakfont_.c:357
-msgid "please wait during ttmkfdir..."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:359
-msgid "True Type install done"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:366 ../../standalone/drakfont_.c:382
-msgid "Fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:370 ../../standalone/drakfont_.c:386
-#: ../../standalone/drakfont_.c:406
-msgid "type1inst building"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:375 ../../standalone/drakfont_.c:390
-msgid "Ghostscript referencing"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:397
-msgid "ttf fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:401
-msgid "pfm fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:411
-msgid "Suppress temporary Files"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:414
-#, fuzzy
-msgid "Restart XFS"
-msgstr "mÉ™hdudlaÅdır"
-
-#: ../../standalone/drakfont_.c:453 ../../standalone/drakfont_.c:463
-msgid "Suppress Fonts Files"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:465
-#, fuzzy
-msgid "xfs restart"
-msgstr "mÉ™hdudlaÅdır"
-
-#: ../../standalone/drakfont_.c:472 ../../standalone/drakfont_.c:760
-msgid ""
-"Before installing any fonts, be sure that you have the right to use and "
-"install them on your system.\n"
-"\n"
-"-You can install the fonts using the normal way. In rare cases, bogus fonts "
-"may hang up your X Server."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:547
-#, fuzzy
-msgid "Fonts Importation"
-msgstr "BƶlmÉ™ ÅÉ™killÉ™ndirilmÉ™si"
-
-#: ../../standalone/drakfont_.c:562
-msgid "Get Windows Fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:564
-msgid "Uninstall Fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:568
-#, fuzzy
-msgid "Advanced Options"
-msgstr "Yerli Å˛É™bÉ™kÉ™ QuraÅdırılması"
-
-#: ../../standalone/drakfont_.c:570
-#, fuzzy
-msgid "Font List"
-msgstr "BaÄlama nƶqtÉ™si"
-
-#: ../../standalone/drakfont_.c:739
-#, fuzzy
-msgid "Choose the applications that will support the fonts :"
-msgstr "Å˛É™killÉ™ndirilÉ™cÉ™k disk bƶlmÉ™lÉ™rini seƧin"
-
-#: ../../standalone/drakfont_.c:743
-msgid "Ghostscript"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:747
-#, fuzzy
-msgid "StarOffice"
-msgstr "Ä°Å Yeri"
-
-#: ../../standalone/drakfont_.c:751
-#, fuzzy
-msgid "Abiword"
-msgstr "Dayandır"
-
-#: ../../standalone/drakfont_.c:755
-#, fuzzy
-msgid "Generic Printers"
-msgstr "Ƈap Edici"
-
-#: ../../standalone/drakfont_.c:792
-msgid "Select the font file or directory and click on 'Add'"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:828
-#, fuzzy
-msgid "Install List"
-msgstr "Sistemi qur"
-
-#: ../../standalone/drakfont_.c:858
-msgid "click here if you are sure."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:860
-msgid "here if no."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:897
-msgid "Unselected All"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:899
-#, fuzzy
-msgid "Selected All"
-msgstr "Fayl seƧ"
-
-#: ../../standalone/drakfont_.c:901
-#, fuzzy
-msgid "Remove List"
-msgstr "Uzaq Ƈap Edici"
-
-#: ../../standalone/drakfont_.c:919 ../../standalone/drakfont_.c:939
-#, fuzzy
-msgid "Initials tests"
-msgstr "İnit İsmarıcı"
-
-#: ../../standalone/drakfont_.c:920
-#, fuzzy
-msgid "Copy fonts on your system"
-msgstr "SiseminizdÉ™ ÅÉ™bÉ™kÉ™ adapteri yoxdur!"
-
-#: ../../standalone/drakfont_.c:921
-msgid "Install & convert Fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:922
-#, fuzzy
-msgid "Post Install"
-msgstr "Qurulum"
-
-#: ../../standalone/drakfont_.c:940
-#, fuzzy
-msgid "Remove fonts on your system"
-msgstr "SiseminizdÉ™ ÅÉ™bÉ™kÉ™ adapteri yoxdur!"
-
-#: ../../standalone/drakfont_.c:941
-#, fuzzy
-msgid "Post Uninstall"
-msgstr "Qurulumdan Ƨıx"
-
-#: ../../standalone/drakgw_.c:43 ../../standalone/drakgw_.c:200
-msgid "Internet Connection Sharing"
-msgstr "Ä°nternet BaÄlantısı BƶlĆ¼ÅdĆ¼rĆ¼lmÉ™si"
-
-#: ../../standalone/drakgw_.c:138
-msgid "Internet Connection Sharing currently enabled"
-msgstr "Ä°nternet BaÄlantısı BƶlĆ¼ÅdĆ¼rĆ¼lmÉ™si fÉ™allaÅdırıldı"
-
-#: ../../standalone/drakgw_.c:139
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently enabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-"Ä°nternet BaÄlantısı BƶlĆ¼ÅdĆ¼rĆ¼lmÉ™si qurulması artıq bitdi.\n"
-"VÉ™ artıq fÉ™allaÅdırılmıÅdır.\n"
-"\n"
-"Nə etmək istəyirsiniz?"
-
-#: ../../standalone/drakgw_.c:143
-msgid "disable"
-msgstr "passivlÉ™Ådir"
-
-#: ../../standalone/drakgw_.c:143 ../../standalone/drakgw_.c:168
-msgid "dismiss"
-msgstr "keƧ"
-
-#: ../../standalone/drakgw_.c:143 ../../standalone/drakgw_.c:168
-msgid "reconfigure"
-msgstr "yenidÉ™n quraÅdır"
-
-#: ../../standalone/drakgw_.c:146
-msgid "Disabling servers..."
-msgstr "VericilÉ™r baÄlanır..."
-
-#: ../../standalone/drakgw_.c:154
-msgid "Internet connection sharing is now disabled."
-msgstr "Ä°nternet BaÄlantısı BƶlĆ¼ÅdĆ¼rĆ¼lmÉ™si indi baÄlandı"
-
-#: ../../standalone/drakgw_.c:163
-msgid "Internet Connection Sharing currently disabled"
-msgstr "Ä°nternet BaÄlantısı BƶlĆ¼ÅdĆ¼rĆ¼lmÉ™si passivlÉ™Ådirildi"
-
-#: ../../standalone/drakgw_.c:164
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently disabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-"Ä°nternet BaÄlantısı BƶlĆ¼ÅdĆ¼rĆ¼lmÉ™si qurulması artıq bitdi.\n"
-"VÉ™ artıq passivlÉ™ÅdirilmiÅdir.\n"
-"\n"
-"Nə etmək istəyirsiniz?"
-
-#: ../../standalone/drakgw_.c:168
-msgid "enable"
-msgstr "fÉ™allaÅdır"
-
-#: ../../standalone/drakgw_.c:175
-msgid "Enabling servers..."
-msgstr "XidmÉ™tlÉ™r fÉ™allaÅdırılır..."
-
-#: ../../standalone/drakgw_.c:180
-msgid "Internet connection sharing is now enabled."
-msgstr "Ä°nternet BaÄlantısı BƶlĆ¼ÅdĆ¼rĆ¼lmÉ™si indi aƧıldı"
-
-#: ../../standalone/drakgw_.c:201
-msgid ""
-"You are about to configure your computer to share its Internet connection.\n"
-"With that feature, other computers on your local network will be able to use "
-"this computer's Internet connection.\n"
-"\n"
-"Note: you need a dedicated Network Adapter to set up a Local Area Network "
-"(LAN)."
-msgstr ""
-"KompĆ¼terınızi Ä°nternet baÄlantısını bƶlĆ¼ÅdĆ¼rmÉ™k Ć¼Ć§Ć¼n quraÅdırırsınız.\n"
-"Bu seƧənÉ™klÉ™ yerli ÅÉ™bÉ™kÉ™nizdÉ™ki baÅqa kompĆ¼terlÉ™r sizin Ä°nternet "
-"baÄlantınızdan faydalana bilÉ™cÉ™klÉ™r.\n"
-"\n"
-"XÉ™bÉ™darlıq: Yerli Å˛É™bÉ™kÉ™ (LAN) qurmaq Ć¼Ć§Ć¼n uyÄun Å˛É™bÉ™kÉ™ AdapterinÉ™ "
-"ehtiyacınız var."
-
-#: ../../standalone/drakgw_.c:227
-#, c-format
-msgid "Interface %s (using module %s)"
-msgstr "Ara Ćz %s (%s modulu iÅlÉ™dilir)"
-
-#: ../../standalone/drakgw_.c:228
-#, c-format
-msgid "Interface %s"
-msgstr "Ara Ć¼z %s"
-
-#: ../../standalone/drakgw_.c:236
-msgid "No network adapter on your system!"
-msgstr "SiseminizdÉ™ ÅÉ™bÉ™kÉ™ adapteri yoxdur!"
-
-#: ../../standalone/drakgw_.c:237
-msgid ""
-"No ethernet network adapter has been detected on your system. Please run the "
-"hardware configuration tool."
-msgstr ""
-"SisteminizdÉ™ ÅÉ™bÉ™kÉ™ kartı tapıla bilmÉ™yib.AvadanlıÄı quran vasitÉ™ni iÅÉ™ "
-"salın."
-
-#: ../../standalone/drakgw_.c:243
-msgid "Network interface"
-msgstr "Å˛É™bÉ™kÉ™ ara Ć¼zĆ¼"
-
-#: ../../standalone/drakgw_.c:244
-#, c-format
-msgid ""
-"There is only one configured network adapter on your system:\n"
-"\n"
-"%s\n"
-"\n"
-"I am about to setup your Local Area Network with that adapter."
-msgstr ""
-"SistemnizdÉ™ bir dÉ™nÉ™ qurulmuÅ ÅÉ™bÉ™kÉ™ adapteri var:\n"
-"\n"
-"%s\n"
-"\n"
-"Yerli Å˛É™bÉ™kÉ™ adapterinizi qurmaq Ć¼zÉ™rÉ™yÉ™m?"
-
-#: ../../standalone/drakgw_.c:253
-msgid ""
-"Please choose what network adapter will be connected to your Local Area "
-"Network."
-msgstr "Sizi Yerli Å˛É™bÉ™kÉ™yÉ™ baÄlayacaq adapteri seƧin"
-
-#: ../../standalone/drakgw_.c:271
-#, fuzzy
-msgid "Network interface already configured"
-msgstr "Monitor qurulmayıb"
-
-#: ../../standalone/drakgw_.c:272
-#, c-format
-msgid ""
-"Warning, the network adapter (%s) is already configured.\n"
-"\n"
-"Do you want an automatic re-configuration?\n"
-"\n"
-"You can do it manually but you need to know what you're doing."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:277
-#, fuzzy
-msgid "Automatic reconfiguration"
-msgstr "Qurulum TÉ™rzi QuraÅdırılması"
-
-#: ../../standalone/drakgw_.c:278
-#, fuzzy
-msgid "Show current interface configuration"
-msgstr "Ä°nternet qurÄuları"
-
-#: ../../standalone/drakgw_.c:280
-#, c-format
-msgid ""
-"Current configuration of `%s':\n"
-"\n"
-"Network: %s\n"
-"IP address: %s\n"
-"IP attribution: %s\n"
-"Driver: %s"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:292
-msgid ""
-"I can keep your current configuration and assume you already set up a DHCP "
-"server; in that case please verify I correctly read the C-Class Network that "
-"you use for your local network; I will not reconfigure it and I will not "
-"touch your DHCP server configuration.\n"
-"\n"
-"Else, I can reconfigure your interface and (re)configure a DHCP server for "
-"you.\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:297
-msgid "C-Class Local Network"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:298
-#, fuzzy
-msgid "(This) DHCP Server IP"
-msgstr "CUPS verici IP"
-
-#: ../../standalone/drakgw_.c:299
-msgid "Re-configure interface and DHCP server"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:306
-msgid "The Local Network did not finish with `.0', bailing out."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:317
-#, c-format
-msgid "Potential LAN address conflict found in current config of %s!\n"
-msgstr "%s quÄusunda dÉ™yÉ™sÉ™n bir LAN Ć¼nvan ƧaxıÅması tapıldı!\n"
-
-#: ../../standalone/drakgw_.c:325 ../../standalone/drakgw_.c:331
-msgid "Firewalling configuration detected!"
-msgstr "Oddan divar (Firewall) quruluÅu tapıldı!"
-
-#: ../../standalone/drakgw_.c:326 ../../standalone/drakgw_.c:332
-msgid ""
-"Warning! An existing firewalling configuration has been detected. You may "
-"need some manual fix after installation."
-msgstr ""
-"DiqqÉ™t! Var olan Firewall qurÄusu tapıldı. YĆ¼klÉ™mÉ™dÉ™n sonra bir az É™l "
-"gəzdirə bilərsiniz."
-
-#: ../../standalone/drakgw_.c:340
-msgid "Configuring..."
-msgstr "QuraÅdırılır..."
-
-#: ../../standalone/drakgw_.c:341
-msgid "Configuring scripts, installing software, starting servers..."
-msgstr "SkriptlÉ™ qurulur, proqram tÉ™'minatı qurulur, xidmÉ™tlÉ™r baÅladılır..."
-
-#: ../../standalone/drakgw_.c:378
-#, c-format
-msgid "Problems installing package %s"
-msgstr "%s paketi qurulurkən xəta oldu"
-
-#: ../../standalone/drakgw_.c:672
-msgid ""
-"Everything has been configured.\n"
-"You may now share Internet connection with other computers on your Local "
-"Area Network, using automatic network configuration (DHCP)."
-msgstr ""
-"HÉ™r Åey quruldu.\n"
-"Ä°ndi isÉ™ Ä°nternet baÄlantınızı yerli ÅÉ™bÉ™kÉ™dÉ™kı baÅqa kompĆ¼terlÉ™r ilÉ™ "
-"bƶlĆ¼ÅdĆ¼rÉ™ bilÉ™rsiniz, bunun Ć¼Ć§Ć¼n isÉ™ avtomatik ÅÉ™bÉ™kÉ™ quraÅdırılması (DHCP) "
-"iÅlÉ™dilir."
-
-#: ../../standalone/drakgw_.c:689
-msgid "The setup has already been done, but it's currently disabled."
-msgstr "QuraÅdırma artıq qurtarıbdır, amma fÉ™aliyyÉ™ti dayandırılıb."
-
-#: ../../standalone/drakgw_.c:690
-msgid "The setup has already been done, and it's currently enabled."
-msgstr "QuraÅdırma artıq qurtarıbdır vÉ™ fÉ™aliyyÉ™tdÉ™dir."
-
-#: ../../standalone/drakgw_.c:691
-msgid "No Internet Connection Sharing has ever been configured."
-msgstr "Ä°nternet BaÄlantısı BƶlĆ¼ÅdĆ¼rmÉ™ QuraÅdırması aparılmayıb."
-
-#: ../../standalone/drakgw_.c:696
-msgid "Internet connection sharing configuration"
-msgstr "Ä°nternet baÄlantısı bƶlĆ¼ÅdĆ¼rĆ¼lmÉ™si quraÅdırılması"
-
-#: ../../standalone/drakgw_.c:703
-#, c-format
-msgid ""
-"Welcome to the Internet Connection Sharing utility!\n"
-"\n"
-"%s\n"
-"\n"
-"Click on Configure to launch the setup wizard."
-msgstr ""
-"Ä°nternet BaÄlantısı BƶlĆ¼ÅdĆ¼rmÉ™ vasitÉ™sinÉ™ XoÅ GÉ™ldiniz!\n"
-"\n"
-"%s\n"
-"\n"
-"QuraÅdırma sehirbazını aƧmaq Ć¼Ć§Ć¼n QuraÅdıra tıqlayın."
-
-#: ../../standalone/draknet_.c:80
-#, c-format
-msgid "Network configuration (%d adapters)"
-msgstr "Å˛É™bÉ™kÉ™ quraÅdırılması (%d adapter)"
-
-#: ../../standalone/draknet_.c:87 ../../standalone/draknet_.c:595
-msgid "Profile: "
-msgstr "Profil: "
-
-#: ../../standalone/draknet_.c:95
-msgid "Del profile..."
-msgstr "Profili sil..."
-
-#: ../../standalone/draknet_.c:101
-msgid "Profile to delete:"
-msgstr "Silinəcək profil:"
-
-#: ../../standalone/draknet_.c:129
-msgid "New profile..."
-msgstr "Yeni profil..."
-
-#: ../../standalone/draknet_.c:135
-msgid ""
-"Name of the profile to create (the new profile is created as a copy of the "
-"current one) :"
-msgstr ""
-
-#: ../../standalone/draknet_.c:161
-msgid "Hostname: "
-msgstr "Ev sahibi adı:"
-
-#: ../../standalone/draknet_.c:168
-msgid "Internet access"
-msgstr "İnternet imkanı"
-
-#: ../../standalone/draknet_.c:181
-msgid "Type:"
-msgstr "Nƶv: "
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-msgid "Gateway:"
-msgstr "KeƧit:"
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-msgid "Interface:"
-msgstr "Ara Ć¼z"
-
-#: ../../standalone/draknet_.c:195
-msgid "Status:"
-msgstr "Hal:"
-
-#: ../../standalone/draknet_.c:202
-msgid "Wait please"
-msgstr ""
-
-#: ../../standalone/draknet_.c:220
-msgid "Configure Internet Access..."
-msgstr "Ä°nternet keƧiÅini Qur..."
-
-#: ../../standalone/draknet_.c:227 ../../standalone/draknet_.c:449
-msgid "LAN configuration"
-msgstr "Yerli Å˛É™bÉ™kÉ™ quraÅdırılması"
-
-#: ../../standalone/draknet_.c:232
-msgid "Driver"
-msgstr "SĆ¼rĆ¼cĆ¼"
-
-#: ../../standalone/draknet_.c:232
-msgid "Interface"
-msgstr "Ara Ć¼z"
-
-#: ../../standalone/draknet_.c:232
-msgid "Protocol"
-msgstr "Protokol"
-
-#: ../../standalone/draknet_.c:232
-#, fuzzy
-msgid "State"
-msgstr "Hal:"
-
-#: ../../standalone/draknet_.c:244
-msgid "Configure Local Area Network..."
-msgstr "Yerli Å˛É™bÉ™kÉ™ni QuraÅdır..."
-
-#: ../../standalone/draknet_.c:256
-msgid "Click here to launch the wizard ->"
-msgstr ""
-
-#: ../../standalone/draknet_.c:257
-msgid "Wizard..."
-msgstr "Sehirbaz..."
-
-#: ../../standalone/draknet_.c:283
-msgid "Apply"
-msgstr "ʸlavə Et"
-
-#: ../../standalone/draknet_.c:302
-msgid "Please Wait... Applying the configuration"
-msgstr "LĆ¼tdÉ™n GƶzlÉ™yin... QurÄular É™lavÉ™ edilir"
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-msgid "Connected"
-msgstr "BaÄlandı"
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-msgid "Not connected"
-msgstr "BaÄlı deyil"
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Connect..."
-msgstr "BaÄlan..."
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Disconnect..."
-msgstr "BaÄlantını KÉ™s..."
-
-#: ../../standalone/draknet_.c:404
-msgid ""
-"Warning, another Internet connection has been detected, maybe using your "
-"network"
-msgstr ""
-
-#: ../../standalone/draknet_.c:431
-msgid ""
-"You don't have any configured interface.\n"
-"Configure them first by clicking on 'Configure'"
-msgstr ""
-"Qurulu ara Ć¼zĆ¼nĆ¼z yoxdure.\n"
-"ʸvvÉ™lcÉ™ onları 'QuraÅdır'a basaraq qurun"
-
-#: ../../standalone/draknet_.c:453
-msgid "LAN Configuration"
-msgstr "Yerli Å˛É™bÉ™kÉ™ QuraÅdırılması"
-
-#: ../../standalone/draknet_.c:464
-#, c-format
-msgid "Adapter %s: %s"
-msgstr "%s Adapteri: %s"
-
-#: ../../standalone/draknet_.c:470
-msgid "Boot Protocol"
-msgstr "AƧılıŠProtokolu"
-
-#: ../../standalone/draknet_.c:471
-msgid "Started on boot"
-msgstr "AƧılıÅda baÅladılır"
-
-#: ../../standalone/draknet_.c:472
-msgid "DHCP client"
-msgstr "DHCP alıcısı"
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-#, fuzzy
-msgid "activate now"
-msgstr "Fəal"
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-#, fuzzy
-msgid "deactivate now"
-msgstr "Fəal"
-
-#: ../../standalone/draknet_.c:503
-msgid ""
-"This interface has not been configured yet.\n"
-"Launch the configuration wizard in the main window"
-msgstr ""
-
-#: ../../standalone/draknet_.c:560
-msgid ""
-"You don't have any internet connection.\n"
-"Create one first by clicking on 'Configure'"
-msgstr ""
-"HeƧ Ä°nternet baÄlantınız yoxdur.\n"
-"ʸvvÉ™lcÉ™ onları 'QuraÅdır'a basaraq qurun"
-
-#: ../../standalone/draknet_.c:584
-msgid "Internet connection configuration"
-msgstr "Ä°nternet baÄlantısı quraÅdırılması"
-
-#: ../../standalone/draknet_.c:588
-msgid "Internet Connection Configuration"
-msgstr "Ä°nternet BaÄlantısı QuraÅdırılması"
-
-#: ../../standalone/draknet_.c:597
-msgid "Connection type: "
-msgstr "BaÄlantı nƶvĆ¼:"
-
-#: ../../standalone/draknet_.c:603
-msgid "Parameters"
-msgstr "Parametrlər"
-
-#: ../../standalone/draknet_.c:621
-msgid "Gateway"
-msgstr "KeƧit"
-
-#: ../../standalone/draknet_.c:630
-msgid "Ethernet Card"
-msgstr "Eternet Kartı"
-
-#: ../../standalone/draknet_.c:631
-msgid "DHCP Client"
-msgstr "DHCP Alıcısı"
-
-#: ../../standalone/draksec_.c:31
-msgid "Setting security level"
-msgstr "TÉ™hlĆ¼kÉ™sizlik sÉ™viyyÉ™sinin quraÅdırılması"
-
-#: ../../standalone/drakxconf_.c:47
-msgid "Control Center"
-msgstr "İdarə Mərkəzi"
-
-#: ../../standalone/drakxconf_.c:48
-msgid "Choose the tool you want to use"
-msgstr "İstifadə edəcəyiniz vasitəni seƧin"
-
-#: ../../standalone/drakxtv_.c:48
-#, fuzzy
-msgid "Canada (cable)"
-msgstr "Fransızca (Kanada/Quebec)"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (bcast)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (cable)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (cable-hrc)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:49
-msgid "China (bcast)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:49
-msgid "Japan (bcast)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:49
-msgid "Japan (cable)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "East Europe"
-msgstr "Avropa"
-
-#: ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "Ireland"
-msgstr "Ä°zlandiya dili"
-
-#: ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "West Europe"
-msgstr "Avropa"
-
-#: ../../standalone/drakxtv_.c:51
-#, fuzzy
-msgid "Australia"
-msgstr "serial"
-
-#: ../../standalone/drakxtv_.c:51
-msgid "Newzealand"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:52
-msgid "South Africa"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:53
-msgid "Argentina"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:58
-msgid ""
-"Please,\n"
-"type in your tv norm and country"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:60
-msgid "TV norm :"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:61
-msgid "Area :"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:65
-msgid "Scanning for TV channels in progress ..."
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:72
-msgid "Scanning for TV channels"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:83
-msgid "No TV Card detected!"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:84
-msgid ""
-"No TV Card has been detected on your machine. Please verify that a Linux-"
-"supported Video/TV Card is correctly plugged in.\n"
-"\n"
-"\n"
-"You can visit our hardware database at:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/hardware.php3"
-msgstr ""
-
-#: ../../standalone/keyboarddrake_.c:16
-msgid "usage: keyboarddrake [--expert] [keyboard]\n"
-msgstr "istifadə qaydası: keyboarddrake [--expert] [klavatura]\n"
-
-#: ../../standalone/keyboarddrake_.c:29
-msgid "Please, choose your keyboard layout."
-msgstr "Klaviatura quruluÅunu seƧiniz."
-
-#: ../../standalone/keyboarddrake_.c:36
-msgid "Do you want the BackSpace to return Delete in console?"
-msgstr "Konsolda BackSpace'in Silmə funksyasını gƶrməyini istəyirmisiniz?"
-
-#: ../../standalone/livedrake_.c:24
-msgid "Change Cd-Rom"
-msgstr "Cd-Romu dÉ™yiÅdir"
-
-#: ../../standalone/livedrake_.c:25
-msgid ""
-"Please insert the Installation Cd-Rom in your drive and press Ok when done.\n"
-"If you don't have it, press Cancel to avoid live upgrade."
-msgstr ""
-"Qurma Cd-Romunu sĆ¼rĆ¼cĆ¼nĆ¼zÉ™ taxın vÉ™ OLDUya basın.\n"
-"ʸgÉ™r Cd-Rom É™linizdÉ™ yox isÉ™, bu Cd-Rom-dan qurmamaq Ć¼Ć§Ć¼n RʸDD ETÉ™ basın."
-
-#: ../../standalone/livedrake_.c:35
-msgid "Unable to start live upgrade !!!\n"
-msgstr "TÉ™kmillÉ™ÅdirmÉ™ iÅi baÅlaya bilmir !!!\n"
-
-#: ../../standalone/localedrake_.c:32
-msgid "The change is done, but to be effective you must logout"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:85 ../../standalone/logdrake_.c:501
-msgid "logdrake"
-msgstr "logdrake"
-
-#: ../../standalone/logdrake_.c:95
-#, fuzzy
-msgid "Show only for the selected day"
-msgstr "TÉ™kcÉ™ bu gĆ¼nĆ¼nkĆ¼nĆ¼ gƶstÉ™r"
-
-#: ../../standalone/logdrake_.c:102
-msgid "/File/_New"
-msgstr "/Fayl/_Yeni"
-
-#: ../../standalone/logdrake_.c:102
-msgid "<control>N"
-msgstr "<control>Y"
-
-#: ../../standalone/logdrake_.c:103
-msgid "/File/_Open"
-msgstr "/Fayl/_AƧ"
-
-#: ../../standalone/logdrake_.c:103
-msgid "<control>O"
-msgstr "<control>A"
-
-#: ../../standalone/logdrake_.c:104
-msgid "/File/_Save"
-msgstr "/Fayl/_Qeyd Et"
-
-#: ../../standalone/logdrake_.c:104
-msgid "<control>S"
-msgstr "<control>Q"
-
-#: ../../standalone/logdrake_.c:105
-msgid "/File/Save _As"
-msgstr "/Fayl/_Fərqli Qeyd Et"
-
-#: ../../standalone/logdrake_.c:106
-msgid "/File/-"
-msgstr "/Fayl/-"
-
-#: ../../standalone/logdrake_.c:108
-msgid "/_Options"
-msgstr "/_SeƧənəklər"
-
-#: ../../standalone/logdrake_.c:109
-msgid "/Options/Test"
-msgstr "/SeƧənəklər/Sınaq"
-
-#: ../../standalone/logdrake_.c:110
-msgid "/_Help"
-msgstr "/_Yardım"
-
-#: ../../standalone/logdrake_.c:111
-msgid "/Help/_About..."
-msgstr "/Yardım/_Haqqında..."
-
-#: ../../standalone/logdrake_.c:118
-msgid "-misc-fixed-medium-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr "-misc-fixed-medium-r-*-*-*-100-*-*-*-*-*-*,*"
-
-#: ../../standalone/logdrake_.c:119
-msgid "-misc-fixed-bold-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr "-misc-fixed-bold-r-*-*-*-100-*-*-*-*-*-*,*"
-
-#: ../../standalone/logdrake_.c:173
-#, fuzzy
-msgid "User"
-msgstr "İstifadəƧi adı"
-
-#: ../../standalone/logdrake_.c:174
-#, fuzzy
-msgid "Messages"
-msgstr "ismarıclar"
-
-#: ../../standalone/logdrake_.c:175
-#, fuzzy
-msgid "Syslog"
-msgstr "sistem qeydi"
-
-#: ../../standalone/logdrake_.c:176
-msgid "Mandrake Tools Explanations"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:179
-msgid "search"
-msgstr "axtar"
-
-#: ../../standalone/logdrake_.c:185
-msgid "A tool to monitor your logs"
-msgstr "Qeydlərinizə baxan vasitə"
-
-#: ../../standalone/logdrake_.c:186
-msgid "Settings"
-msgstr "QurÄular"
-
-#: ../../standalone/logdrake_.c:191
-msgid "matching"
-msgstr "oxÅayır"
-
-#: ../../standalone/logdrake_.c:192
-msgid "but not matching"
-msgstr "amma oxÅamır"
-
-#: ../../standalone/logdrake_.c:196
-msgid "Choose file"
-msgstr "Fayl seƧ"
-
-#: ../../standalone/logdrake_.c:201
-msgid "Calendar"
-msgstr "Təqvim"
-
-#: ../../standalone/logdrake_.c:211
-msgid "Content of the file"
-msgstr "Fayl məzmunu"
-
-#: ../../standalone/logdrake_.c:215 ../../standalone/logdrake_.c:390
-msgid "Mail/SMS alert"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:268
-#, c-format
-msgid "please wait, parsing file: %s"
-msgstr "xahiÅ edirik, gƶzlÉ™yin, fayl daranır: %s"
-
-#: ../../standalone/logdrake_.c:405
-#, fuzzy
-msgid "Mail/SMS alert configuration"
-msgstr "Yerli Å˛É™bÉ™kÉ™ quraÅdırılması"
-
-#: ../../standalone/logdrake_.c:406
-msgid ""
-"Welcome to the mail/SMS configuration utility.\n"
-"\n"
-"Here, you'll be able to set up the alert system.\n"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:414
-#, fuzzy
-msgid "proftpd"
-msgstr "Apache vÉ™ Pro-ftpd"
-
-#: ../../standalone/logdrake_.c:417
-msgid "sshd"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:418
-msgid "webmin"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:419
-#, fuzzy
-msgid "xinetd"
-msgstr "Ext2"
-
-#: ../../standalone/logdrake_.c:422
-#, fuzzy
-msgid "service setting"
-msgstr "avadanlıq"
-
-#: ../../standalone/logdrake_.c:423
-msgid ""
-"You will receive an alert if one of the selected service is no more running"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:433
-#, fuzzy
-msgid "load setting"
-msgstr "Å˛É™killÉ™ndirilir"
-
-#: ../../standalone/logdrake_.c:434
-msgid "You will receive an alert if the load is higher than this value"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:447
-#, fuzzy
-msgid "alert configuration"
-msgstr "QuraÅdırma"
-
-#: ../../standalone/logdrake_.c:448
-msgid "Configure the way the system will alert you"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:478
-msgid "Save as.."
-msgstr "Fərqli qeyd et..."
-
-#: ../../standalone/mousedrake_.c:49
-msgid "Please, choose the type of your mouse."
-msgstr "XahiÅ edirik siƧanınızın nƶvĆ¼nĆ¼ seƧin."
-
-#: ../../standalone/mousedrake_.c:59
-msgid "no serial_usb found\n"
-msgstr "serial_USB avadanlıÄı tapılmadı\n"
-
-#: ../../standalone/mousedrake_.c:63
-msgid "Emulate third button?"
-msgstr "3 dĆ¼ymÉ™ emulasiyası"
-
-#: ../../standalone/scannerdrake_.c:53
-#, c-format
-msgid "%s found on %s, configure it ?"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:60
-#, fuzzy
-msgid "Select a scanner"
-msgstr "Ekran kartınızı seƧin"
-
-#: ../../standalone/scannerdrake_.c:80
-#, c-format
-msgid "This %s scanner is unsupported"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:94
-#, c-format
-msgid ""
-"Scannerdrake was not able to detect your %s scanner.\n"
-"Please select the device where your scanner is plugged"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:96
-#, fuzzy
-msgid "choose device"
-msgstr "AƧılıŠavadanlıÄı"
-
-#: ../../standalone/scannerdrake_.c:102
-#, c-format
-msgid ""
-"This %s scanner must be configured by printerdrake.\n"
-"You can launch printerdrake from the Mandrake Control Center in Hardware "
-"section."
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:107
-#, c-format
-msgid ""
-"Your %s scanner has been configured.\n"
-"You may now scan documents using ``XSane'' from Multimedia/Graphics in the "
-"applications menu."
-msgstr ""
-
-#: ../../standalone/tinyfirewall_.c:31
-msgid "Firewalling Configuration"
-msgstr "Firewall quraÅdırılması"
-
-#: ../../standalone/tinyfirewall_.c:44
-msgid "Firewalling configuration"
-msgstr "Firewall quraÅdırılması"
-
-#: ../../standalone/tinyfirewall_.c:79
-msgid ""
-"Firewalling\n"
-"\n"
-"You already have set up a firewall.\n"
-"Click on Configure to change or remove the firewall"
-msgstr ""
-"Firewall\n"
-"\n"
-"Firewall qurÄularını artıq qurtarmısınız.\n"
-"Qur-a tıqlayaraq firewall qurÄuların silin ya da tÉ™kmillÉ™Ådirin."
-
-#: ../../standalone/tinyfirewall_.c:83
-msgid ""
-"Firewalling\n"
-"\n"
-"Click on Configure to set up a standard firewall"
-msgstr ""
-"Firewall\n"
-"\n"
-"Qur-a tıqlayaraq standart firewall qurÄularını aparın."
-
-#: ../../steps.pm_.c:14
-msgid "Choose your language"
-msgstr "Ä°ÅlÉ™tdiyiniz dili seƧin"
-
-#: ../../steps.pm_.c:15
-msgid "Select installation class"
-msgstr "QuruluÅ sinifini seƧin"
-
-#: ../../steps.pm_.c:16
-msgid "Hard drive detection"
-msgstr "Sabit disk seƧkisi"
-
-#: ../../steps.pm_.c:17
-msgid "Configure mouse"
-msgstr "SiƧan qurÄuları"
-
-#: ../../steps.pm_.c:18
-msgid "Choose your keyboard"
-msgstr "Klaviaturanızı seƧin"
-
-#: ../../steps.pm_.c:19
-msgid "Security"
-msgstr "TÉ™hlĆ¼kÉ™sizlik"
-
-#: ../../steps.pm_.c:20
-msgid "Setup filesystems"
-msgstr "Fayl sistemi qurÄuları"
-
-#: ../../steps.pm_.c:21
-msgid "Format partitions"
-msgstr "BƶlmÉ™ ÅÉ™killÉ™ndirilmÉ™si"
-
-#: ../../steps.pm_.c:22
-msgid "Choose packages to install"
-msgstr "Qurulacaq paketləri seƧin"
-
-#: ../../steps.pm_.c:23
-msgid "Install system"
-msgstr "Sistemi qur"
-
-#: ../../steps.pm_.c:25
-msgid "Add a user"
-msgstr "İstifadəƧi əlavə et"
-
-#: ../../steps.pm_.c:26
-msgid "Configure networking"
-msgstr "Å˛É™bÉ™kÉ™ni qur"
-
-#: ../../steps.pm_.c:28
-msgid "Configure services"
-msgstr "Xidmətləri qur"
-
-#: ../../steps.pm_.c:29
-msgid "Install bootloader"
-msgstr "Sistem yĆ¼klÉ™yicini qur"
-
-#: ../../steps.pm_.c:31
-msgid "Create a bootdisk"
-msgstr "AƧılıŠdisketi yarat"
-
-#: ../../steps.pm_.c:33
-msgid "Configure X"
-msgstr "X qur"
-
-#: ../../steps.pm_.c:34
-#, fuzzy
-msgid "Install system updates"
-msgstr "Sistemi qur"
-
-#: ../../steps.pm_.c:35
-msgid "Exit install"
-msgstr "Qurulumdan Ƨıx"
-
-#: ../../tinyfirewall.pm_.c:9
-msgid ""
-"tinyfirewall configurator\n"
-"\n"
-"This configures a personal firewall for this Mandrake Linux machine.\n"
-"For a powerful dedicated firewall solution, please look to the\n"
-"specialized MandrakeSecurity Firewall distribution."
-msgstr ""
-"tinyfirewall configurator\n"
-"\n"
-"Bu, Linuks Mandrake sisteminiz Ć¼Ć§Ć¼n ÅÉ™xsi bir firewall quraÅdıracaqdır.\n"
-"Daha gĆ¼clĆ¼ vÉ™ e'tibarlı sistem Ć¼Ć§Ć¼n xahiÅ edirik xĆ¼susi MandrakeSecurity "
-"Firewall\n"
-"buraxılıÅını tÉ™dqiq edin."
-
-#: ../../tinyfirewall.pm_.c:14
-msgid ""
-"We'll now ask you questions about which services you'd like to allow\n"
-"the Internet to connect to. Please think carefully about these\n"
-"questions, as your computer's security is important.\n"
-"\n"
-"Please, if you're not currently using one of these services, firewall\n"
-"it off. You can change this configuration anytime you like by\n"
-"re-running this application!"
-msgstr ""
-"Ä°ndi isÉ™ internetÉ™ baÄlanırkÉ™n istifadÉ™ etmÉ™yi arzuladıÄınız xidmÉ™tlÉ™ri\n"
-"soruÅacaÄıq. Bu suallara xahiÅ edirik diqqÉ™tlÉ™ cavab verin, Ć§Ć¼nkĆ¼ "
-"kompĆ¼terinizin \n"
-"tÉ™hlĆ¼kÉ™sizliyi Ƨox vacib mÉ™sÉ™lÉ™dir.\n"
-"\n"
-"XahiÅ edirik, bu xidmÉ™tlÉ™rdÉ™n istifadÉ™ etmÉ™diklÉ™rinizÉ™ yaxÅı qÉ™rar verin ki, "
-"firewall\n"
-"onu baÄlasın. Sonradan bu qurÄuları ƶzĆ¼nĆ¼z proqramı yenidÉ™n iÅÉ™ salaraq "
-"dÉ™yiÅdirÉ™ bilÉ™rsiniz.!"
-
-#: ../../tinyfirewall.pm_.c:21
-msgid ""
-"Are you running a web server on this machine that you need the whole\n"
-"Internet to see? If you are running a webserver that only needs to be\n"
-"accessed by this machine, you can safely answer NO here.\n"
-"\n"
-msgstr ""
-"SisteminizdÉ™ bĆ¼tĆ¼n Ä°nternetÉ™ gƶstÉ™rmÉ™k istÉ™diyiniz veb vericisi "
-"iÅlÉ™dirsiniz? \n"
-"TÉ™kcÉ™ bu kompĆ¼terin gƶrÉ™cÉ™yi bir veb vericisi olacaqsa burada YOX cavasbı "
-"verə bilərsiniz.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:26
-msgid ""
-"Are you running a name server on this machine? If you didn't set one\n"
-"up to give away IP and zone information to the whole Internet, please\n"
-"answer no.\n"
-"\n"
-msgstr ""
-"Bu kompĆ¼terdÉ™ ad vericisi iÅlÉ™dirsiniz? ʸgÉ™r internetÉ™ baÄlanırkÉ™n bir IP "
-"Ć¼nvanı vÉ™\n"
-"nahiyə mə'lumatı almırsınızsa YOX cavabı verin.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:31
-msgid ""
-"Do you want to allow incoming Secure Shell (ssh) connections? This\n"
-"is a telnet-replacement that you might use to login. If you're using\n"
-"telnet now, you should definitely switch to ssh. telnet is not\n"
-"encrypted -- so some attackers can steal your password if you use\n"
-"it. ssh is encrypted and doesn't allow for this eavesdropping."
-msgstr ""
-"GÉ™lÉ™n E'tibarlı Qabıq (ssh) baÄlantılarına icazÉ™ vermÉ™k istÉ™yiriniz? Bu, "
-"bir\n"
-"cĆ¼r telnet É™vÉ™zidir. Ä°ndi telnet iÅlÉ™dirsinizsÉ™ onda \"ssh\"yÉ™ "
-"keƧməlisiniz. \n"
-"Telnet kodlama iÅlÉ™tmir, ona gƶrÉ™ dÉ™bÉ™'zi hÉ™kerlÉ™r parolunuzu oÄurlaya "
-"bilər. \n"
-"ssh bunlara icazə verməz."
-
-#: ../../tinyfirewall.pm_.c:36
-msgid ""
-"Do you want to allow incoming telnet connections?\n"
-"This is horribly unsafe, as we explained in the previous screen. We\n"
-"strongly recommend answering No here and using ssh in place of\n"
-"telnet.\n"
-msgstr ""
-"GÉ™lÉ™n telnet baÄlantılarına icazÉ™ verim?\n"
-"Bu Ƨox e'tibarsızdır. Bunu sizə əvvəlki ekranda sƶylədik. Buna \n"
-"yox cavabı vermÉ™yinizi tƶvsiyyÉ™ edirik. YerinÉ™ ssh iÅlÉ™din.\n"
-
-#: ../../tinyfirewall.pm_.c:41
-msgid ""
-"Are you running an FTP server here that you need accessible to the\n"
-"Internet? If you are, we strongly recommend that you only use it for\n"
-"Anonymous transfers. Any passwords sent by FTP can be stolen by some\n"
-"attackers, since FTP also uses no encryption for transferring passwords.\n"
-msgstr ""
-"Ä°nternetdÉ™n yetiÅilÉ™ bilÉ™n bir FTP vericisi iÅlÉ™dirsiniz? ʸgÉ™r "
-"iÅlÉ™dirsinizsÉ™,\n"
-"tÉ™kcÉ™ Anonim kĆ¶Ć§Ć¼rmÉ™lÉ™r Ć¼Ć§Ć¼n olmasını tƶvsiyyÉ™ edÉ™rik. FTP ilÉ™ gƶndÉ™rilÉ™n\n"
-"parollar hÉ™kerlÉ™r tÉ™rÉ™findÉ™n oÄurlana bilÉ™r. FTP parolları kodlaya bilmir "
-"axı.\n"
-
-#: ../../tinyfirewall.pm_.c:46
-msgid ""
-"Are you running a mail server here? If you're sending you \n"
-"messages through pine, mutt or any other text-based mail client,\n"
-"you probably are. Otherwise, you should firewall this off.\n"
-"\n"
-msgstr ""
-"Burada mÉ™ktub vericisi iÅlÉ™dirsiniz? ʸgÉ™r ismarıclarınızı pine\n"
-"mutt vÉ™ ya baÅqa mÉ™tn É™saslı mÉ™ktub alıcısından gƶndÉ™rirsinizsÉ™,\n"
-"demÉ™k ki, iÅlÉ™dirsiniz. Yoxsa firewall bunu baÄlamalıdır.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:51
-msgid ""
-"Are you running a POP or IMAP server here? This would\n"
-"be used to host non-web-based mail accounts for people via \n"
-"this machine.\n"
-"\n"
-msgstr ""
-"Burada POP vÉ™ ya IMAP vericisi iÅlÉ™dirsiniz? Bu isÉ™\n"
-"kompĆ¼terdÉ™ veb É™saslı olmayan mÉ™ktub hesabları qurmaq Ć¼Ć§Ć¼n lazımdır.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:56
-msgid ""
-"You appear to be running a 2.2 kernel. If your network IP\n"
-"is automatically set by a computer in your home or office \n"
-"(dynamically assigned), we need to allow for this. Is\n"
-"this the case?\n"
-msgstr ""
-"DÉ™yÉ™sÉ™n 2.2 ƧəkirdÉ™k iÅlÉ™dirsiniz. ʸgÉ™r kompĆ¼terinizin\n"
-"IPsi baÅqa bir kompĆ¼ter tÉ™rÉ™findÉ™n dinamik olaraq verilirsÉ™,\n"
-"onda buna icazə vermək olar. Beledir?\n"
-
-#: ../../tinyfirewall.pm_.c:61
-msgid ""
-"Is your computer getting time syncronized to another computer?\n"
-"Mostly, this is used by medium-large Unix/Linux organizations\n"
-"to synchronize time for logging and such. If you're not part\n"
-"of a larger office and haven't heard of this, you probably \n"
-"aren't."
-msgstr ""
-"KompĆ¼terinizin vaxtı baÅqa bir kompĆ¼terlÉ™ sinxronlaÅdırır?\n"
-"Bu, daha Ƨox orta vÉ™ geniÅ Unix/Linuks ÅirkÉ™tlÉ™ri tÉ™rÉ™findÉ™n iÅlÉ™dilir.\n"
-"ʸgÉ™r bir ÅirkÉ™tin bir parƧası deyilsinizsÉ™, demÉ™k ki, iÅlÉ™tmirsiniz."
-
-#: ../../tinyfirewall.pm_.c:66
-msgid ""
-"Configuration complete. May we write these changes to disk?\n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-"Qurulum qurtarıldı. DÉ™yiÅikliklÉ™ri diskÉ™ yazım?\n"
-"\n"
-"\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:82
-#, c-format
-msgid "Can't open %s: %s\n"
-msgstr "%s aƧıla bilmir: %s\n"
-
-#: ../../tinyfirewall.pm_.c:84
-#, c-format
-msgid "Can't open %s for writing: %s\n"
-msgstr "Yazmaq Ć¼Ć§Ć¼n %s aƧıla bilmir: %s\n"
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "No I don't need DHCP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "Yes I need DHCP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "No I don't need NTP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "Yes I need NTP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-msgid "Don't Save"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-#: ../../tinyfirewall.pm_.c:206
-msgid "Save & Quit"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:197 ../../tinyfirewall.pm_.c:201
-#, fuzzy
-msgid "Firewall Configuration Wizard"
-msgstr "Firewall quraÅdırılması"
-
-#: ../../tinyfirewall.pm_.c:199
-msgid "No (firewall this off from the internet)"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:200
-msgid "Yes (allow this through the firewall)"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:232
-#, fuzzy
-msgid "Please Wait... Verifying installed packages"
-msgstr "XahiÅ edirik gƶzlÉ™yin, qurulum hazırlanır"
-
-#: ../../tinyfirewall.pm_.c:238
-#, c-format
-msgid ""
-"Failure installing the needed packages : %s and Bastille.\n"
-" Try to install them manually."
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Web/FTP"
-msgstr "Verici, Veb/FTP"
-
-#: ../../share/compssUsers:999
-msgid "Network Computer (client)"
-msgstr "Å˛É™bÉ™kÉ™ KompĆ¼teri (alıcı)"
-
-#: ../../share/compssUsers:999
-msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr "NFS vericisi, SMB vericisi, SSH vericisi, Vəkil Verici"
-
-#: ../../share/compssUsers:999
-msgid "Office"
-msgstr "Ä°Å Yeri"
-
-#: ../../share/compssUsers:999
-msgid "Gnome Workstation"
-msgstr "Gnome iŠstansiyası"
-
-#: ../../share/compssUsers:999
-msgid "Tools for your Palm Pilot or your Visor"
-msgstr "Palm Pilot vÉ™ ya Visorunuz Ć¼Ć§Ć¼n vasitÉ™lÉ™r"
-
-#: ../../share/compssUsers:999
-msgid "Workstation"
-msgstr "Masa Ć¼stĆ¼"
-
-#: ../../share/compssUsers:999
-msgid "Firewall/Router"
-msgstr "Verici, Firewall/Ruter"
-
-#: ../../share/compssUsers:999
-msgid "Domain Name and Network Information Server"
-msgstr "Domeyn Ad bÉ™ Å˛É™bÉ™kÉ™ MÉ™'lumat Vericisi"
-
-#: ../../share/compssUsers:999
-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/compssUsers:999
-msgid "Audio-related tools: mp3 or midi players, mixers, etc"
-msgstr ""
-"SÉ™s ilÉ™ É™laqÉ™dÉ™r vasitÉ™lÉ™r: mp3 vÉ™ ya midi ƧalÄıƧılar, qarıÅdırıƧılar, vs."
-
-#: ../../share/compssUsers:999
-msgid "Books and Howto's on Linux and Free Software"
-msgstr "Linuks və pulsuz proqram tə'minatıları Kitablar və Howtoları"
-
-#: ../../share/compssUsers:999
-msgid "KDE Workstation"
-msgstr "KDE iŠstansiyası"
-
-#: ../../share/compssUsers:999
-msgid "Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm, Window Maker, Enlightenment, Fvwm, vs."
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Video"
-msgstr "Multimedya - Video"
-
-#: ../../share/compssUsers:999
-msgid "Set of tools for mail, news, web, file transfer, and chat"
-msgstr "MÉ™ktub, xÉ™bÉ™rlÉ™r, fayl daÅınması, chat vasitÉ™lÉ™ri"
-
-#: ../../share/compssUsers:999
-msgid "Database"
-msgstr "Databeyz"
-
-#: ../../share/compssUsers:999
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL vÉ™ ya MySQL databeyz vericisi"
-
-#: ../../share/compssUsers:999
-msgid "Tools to ease the configuration of your computer"
-msgstr "KompĆ¼ter qurÄularını asandlaÅdıran vasitÉ™lÉ™r"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Sound"
-msgstr "Multimedya - Səs"
-
-#: ../../share/compssUsers:999
-msgid "Utilities"
-msgstr "Vasitələr"
-
-#: ../../share/compssUsers:999
-msgid "Documentation"
-msgstr "Sənədlər"
-
-#: ../../share/compssUsers:999
-msgid "Console Tools"
-msgstr "Konsol Vasitələri"
-
-#: ../../share/compssUsers:999
-msgid "Postfix mail server, Inn news server"
-msgstr "Postfix məktub vericisi, Inn xəbər vericisi"
-
-#: ../../share/compssUsers:999
-msgid "Internet station"
-msgstr "İnternet stansiyası"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia station"
-msgstr "Multimedya stansiyası"
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Configuration"
-msgstr "Yerli Å˛É™bÉ™kÉ™ QuraÅdırılması"
-
-#: ../../share/compssUsers:999
-msgid "More Graphical Desktops (Gnome, IceWM)"
-msgstr "BaÅqa qrafiki ara Ć¼zlÉ™r (Gnome, IceWM)"
-
-#: ../../share/compssUsers:999
-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/compssUsers:999
-msgid "Graphical Environment"
-msgstr "Qrafiki Ara Ćz"
-
-#: ../../share/compssUsers:999
-msgid "Apache, Pro-ftpd"
-msgstr "Apache vÉ™ Pro-ftpd"
-
-#: ../../share/compssUsers:999
-msgid "Tools to create and burn CD's"
-msgstr "CD yazmaq və yandırmaq proqramları"
-
-#: ../../share/compssUsers:999
-msgid "Office Workstation"
-msgstr "İŠYeri Stansiyası"
-
-#: ../../share/compssUsers:999
-msgid "Server"
-msgstr "Verici"
-
-#: ../../share/compssUsers:999
-msgid "Gnome, Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Gnome, IceWM, Windows Maker, Enlightement, Fvwm, vs."
-
-#: ../../share/compssUsers:999
-msgid "Graphics programs such as The Gimp"
-msgstr "Qrafika proqramları, məsələn The Gimp"
-
-#: ../../share/compssUsers:999
-msgid "DNS/NIS "
-msgstr "DNS/NIS "
-
-#: ../../share/compssUsers:999
-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/compssUsers:999
-msgid "Network Computer server"
-msgstr "Å˛É™bÉ™kÉ™ KompĆ¼teri vericisi"
-
-#: ../../share/compssUsers:999
-msgid "Mail/Groupware/News"
-msgstr "Verici, ePoƧt/Groupware/Xəbərlər"
-
-#: ../../share/compssUsers:999
-msgid "Game station"
-msgstr "Oyun stansiyası"
-
-#: ../../share/compssUsers:999
-msgid "Video players and editors"
-msgstr "Video ƧalÄıƧıları vÉ™ editorları"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Graphics"
-msgstr "Multimedya - Qrafika"
-
-#: ../../share/compssUsers:999
-msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr "Məzəli proqramlar: arkad, lƶvhə oyunları, strategiya, vs"
-
-#: ../../share/compssUsers:999
-msgid ""
-"Set of tools to read and send mail and news (pine, mutt, tin..) and to "
-"browse the Web"
-msgstr ""
-"Elektronik məktub və xəbər oxuyucusu (pine, mutt, tin..) və Web səyyahları"
-
-#: ../../share/compssUsers:999
-msgid "Archiving, emulators, monitoring"
-msgstr "Arxivləmə, emulyatorlar, izləmə"
-
-#: ../../share/compssUsers:999
-msgid "Personal Finance"
-msgstr "Å˛É™xsi MaliyyÉ™"
-
-#: ../../share/compssUsers:999
-msgid ""
-"A graphical environment with user-friendly set of applications and desktop "
-"tools"
-msgstr ""
-"Ä°stifadəƧi dostu proqram vÉ™ masa Ć¼stĆ¼ ilÉ™ bÉ™rabÉ™r qrafiki ara Ć¼z vasitÉ™lÉ™ri"
-
-#: ../../share/compssUsers:999
-msgid "Clients for different protocols including ssh"
-msgstr "SSH daxil bir Ƨox protokolların alıcıları"
-
-#: ../../share/compssUsers:999
-msgid "Internet gateway"
-msgstr "Ä°nternet keƧiÅı"
-
-#: ../../share/compssUsers:999
-msgid "Sound and video playing/editing programs"
-msgstr "SÉ™s vÉ™ video Ƨalınması/dĆ¼zÉ™liÅ proqramları"
-
-#: ../../share/compssUsers:999
-msgid "Other Graphical Desktops"
-msgstr "BaÅqa qrafiki ara Ć¼zlÉ™r"
-
-#: ../../share/compssUsers:999
-msgid "Editors, shells, file tools, terminals"
-msgstr "Editorlar, rəflər, fayl vasitələri, terminallar"
-
-#: ../../share/compssUsers:999
-msgid "Programs to manage your finance, such as gnucash"
-msgstr "Å˛É™xsi maliyyÉ™ idarəƧilÉ™ri, mÉ™sÉ™lÉ™n gnucash"
-
-#: ../../share/compssUsers:999
-msgid "Personal Information Management"
-msgstr "Å˛É™xsi MÉ™'lumat Ä°darəƧisi"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - CD Burning"
-msgstr "Multimedya - CD Yandırma"
-
-#: ../../share/compssUsers:999
-msgid "Scientific Workstation"
-msgstr "Elmi iŠstansiyası"
-
-#, fuzzy
-#~ msgid "About"
-#~ msgstr "Dayandır"
-
-#~ msgid "$f-$g %s)"
-#~ msgstr "$f-$g %s)"
-
-#, fuzzy
-#~ msgid "None"
-#~ msgstr "Qurtardı"
-
-#, fuzzy
-#~ msgid "Choose a default printer!"
-#~ msgstr "ʸsas istifadəƧini seƧin:"
-
-#, fuzzy
-#~ msgid "Apply/Re-read printers"
-#~ msgstr "Uzaq Ƈap Edici"
-
-#~ msgid "You may now provide its options to module %s."
-#~ msgstr "İndi %s moduluna parametrlər girə bilərsiniz."
-
-#~ msgid "mount failed"
-#~ msgstr "baÄlama iflas etdi"
-
-#~ msgid "Low"
-#~ msgstr "AlƧaq"
-
-#~ msgid "Medium"
-#~ msgstr "Orta"
-
-#~ msgid ""
-#~ "Few improvements for this security level, the main one is that there are\n"
-#~ "more security warnings and checks."
-#~ msgstr ""
-#~ "Bu tÉ™hlĆ¼kÉ™sizlik sÉ™viyyÉ™si Ć¼Ć§Ć¼n É™lavÉ™ olaraq artırılmıŠtÉ™hlĆ¼kÉ™sizlik "
-#~ "xÉ™bÉ™rdarlıÄı vÉ™ \n"
-#~ "yoxlama var."
-
-#~ msgid "Boot mode"
-#~ msgstr "AƧılıŠmodu"
-
-#, fuzzy
-#~ msgid "Export"
-#~ msgstr "Usta"
-
-#~ msgid ""
-#~ "GNU/Linux manages time in GMT (Greenwich Mean Time) and translates it in\n"
-#~ "local time according to the time zone you selected."
-#~ msgstr ""
-#~ "Linuks zamanı GMT-yÉ™ (Greenwich Mean Time) gƶrÉ™ qurÄular vÉ™ olduÄunuz \n"
-#~ "yerdÉ™ki zamana gƶrÉ™ lazımi dÉ™yiÅikliklÉ™ri edÉ™r."
-
-#~ msgid "Connect to Internet"
-#~ msgstr "Ä°nternetÉ™ baÄlantı"
-
-#~ msgid "Disconnect from Internet"
-#~ msgstr "Ä°nternetÉ™ baÄlantını kÉ™s"
-
-#~ msgid "Configure network connection (LAN or Internet)"
-#~ msgstr "Å˛É™bÉ™kÉ™ (Ä°nternet/LAN) baÄlantınızı quraÅdırın"
-
-#, fuzzy
-#~ msgid "Detected %s, do you want to set it up?"
-#~ msgstr "Hansı diskÉ™ daÅımaq istÉ™yirsiniz?"
-
-#, fuzzy
-#~ msgid "Please choose the printer you want to set up."
-#~ msgstr "XahiÅ edirik qurmaq istÉ™diyiniz paketlÉ™ri seƧin."
-
-#, fuzzy
-#~ msgid "Infos"
-#~ msgstr "MÉ™'lumat"
-
-#, fuzzy
-#~ msgid "Windows Importation"
-#~ msgstr "Gnome iŠstansiyası"
-
-#~ msgid "authentification"
-#~ msgstr "tanıtma"
-
-#~ msgid "user"
-#~ msgstr "istifadəƧi"
-
-#, fuzzy
-#~ msgid ""
-#~ "Apache is a World Wide Web server. It is used to serve HTML files and "
-#~ "CGI."
-#~ msgstr ""
-#~ "Apache bir World Wide Web vericisidir. HTML faylları və CGI verilməsi "
-#~ "Ć¼Ć§Ć¼n istifadÉ™ edilir."
-
-#~ msgid ""
-#~ "named (BIND) is a Domain Name Server (DNS) that is used to resolve\n"
-#~ "host names to IP addresses."
-#~ msgstr ""
-#~ "named (BIND) verici adlarını IP Ć¼nvanlarına ƧevirÉ™n\n"
-#~ "Sahə Adı Vericisidir(DNS)."
-
-#, fuzzy
-#~ msgid ""
-#~ "Please choose the desired printer/printer port.\n"
-#~ "\n"
-#~ msgstr "XahiÅ edirik siƧanınızın nƶvĆ¼nĆ¼ seƧin."
-
-#, fuzzy
-#~ msgid "\\@quit"
-#~ msgstr "Ƈıx"
-
-#, fuzzy
-#~ msgid "Removable media"
-#~ msgstr "Taxılıb sƶkĆ¼lÉ™ bilÉ™n avadanlıqların avtomatik baÄlanması"
-
-#~ msgid "Active"
-#~ msgstr "Fəal"
-
-#, fuzzy
-#~ msgid "No X"
-#~ msgstr "Xeyr"
-
-#~ msgid "A printer, model \"%s\", has been detected on "
-#~ msgstr "\"%s\" modelində bir Ƨap edici tapıldı:"
-
-#~ msgid "Local Printer Device"
-#~ msgstr "Yerli Ƈap Edici AvadanlıÄı"
-
-#~ msgid "Printer Device"
-#~ msgstr "Ƈap Edici AvadanlıÄı"
-
-#, fuzzy
-#~ msgid "Printer(s) on remote CUPS server(s)"
-#~ msgstr "Uzaq CUPS vericisi"
-
-#, fuzzy
-#~ msgid "Printer(s) on remote server(s)"
-#~ msgstr "Uzaq CUPS vericisi"
-
-#, fuzzy
-#~ msgid " Linux "
-#~ msgstr "Linuks"
-
-#, fuzzy
-#~ msgid " System "
-#~ msgstr "Sistem modu"
-
-#, fuzzy
-#~ msgid " Other "
-#~ msgstr "Digər"
-
-#, fuzzy
-#~ msgid "please choose your CD space"
-#~ msgstr "Klaviatura quruluÅunu seƧiniz."
-
-#, fuzzy
-#~ msgid " Please check if you are using CDRW media"
-#~ msgstr "XahiÅ edirik bir bƶlmÉ™ Ć¼stĆ¼nÉ™ tıqlayın"
-
-#, fuzzy
-#~ msgid " Tape "
-#~ msgstr "Nƶv: "
-
-#, fuzzy
-#~ msgid " Use .backupignore files"
-#~ msgstr "Xətalı yedəkləmə faylı"
-
-#, fuzzy
-#~ msgid "Configure it"
-#~ msgstr "X qur"
-
-#, fuzzy
-#~ msgid "on Tape Device"
-#~ msgstr "Ƈap Edici AvadanlıÄı"
-
-#, fuzzy
-#~ msgid " Cancel "
-#~ msgstr "LÉ™Äv et"
-
-#, fuzzy
-#~ msgid " Ok "
-#~ msgstr "Oldu"
-
-#, fuzzy
-#~ msgid "close"
-#~ msgstr "Qapat"
-
-#~ msgid "Starting your connection..."
-#~ msgstr "BaÄlantınız baÅladılır..."
-
-#~ msgid "Closing your connection..."
-#~ msgstr "BaÄlantınız kÉ™silir..."
-
-#~ msgid ""
-#~ "The connection is not closed.\n"
-#~ "Try to do it manually by running\n"
-#~ "/etc/sysconfig/network-scripts/net_cnx_down\n"
-#~ "in root."
-#~ msgstr ""
-#~ "BaÄlantı kÉ™sildi. Buna É™llÉ™ kƶkdÉ™\n"
-#~ "/etc/sysconfig/ÅÉ™bÉ™kÉ™-scripts/net_cnx_down\n"
-#~ "əmrini icra edərək nail ola bilərsiniz."
-
-#~ msgid "The system is now disconnected."
-#~ msgstr "Sistem indi baÄlantısını kÉ™sib."
-
-#~ msgid "Choose the size you want to install"
-#~ msgstr "Qurmaq istədiyiniz paketləri seƧin"
-
-#~ msgid "Total size: "
-#~ msgstr "Hamısı: "
-
-#~ msgid "Please wait, "
-#~ msgstr "XahiÅ edirik gƶzlÉ™yin, "
-
-#~ msgid "Total time "
-#~ msgstr "Ćmumi mĆ¼ddÉ™t"
-
-#~ msgid "Use existing configuration for X11?"
-#~ msgstr "X11 qurÄuları Ć¼Ć§Ć¼n mƶvcud qurÄulardan istifadÉ™ edÉ™k?"
-
-#~ msgid ""
-#~ "What device is your printer connected to \n"
-#~ "(note that /dev/lp0 is equivalent to LPT1:)?\n"
-#~ msgstr ""
-#~ "Ƈap ediciniz hansı avadanlıÄa baÄlıdır? \n"
-#~ "(/dev/lp0, LPT1'nin qarÅılıÄıdır)\n"
-
-#~ msgid "$_"
-#~ msgstr "$_"
-
-#~ msgid ""
-#~ "Warning, the network adapter is already configured. I will reconfigure it."
-#~ msgstr "DiqqÉ™t, ÅÉ™bÉ™kÉ™ adapteriniz onsuz da qurulub. YenidÉ™n quracam."
-
-#~ msgid "New"
-#~ msgstr "Yeni"
-
-#, fuzzy
-#~ msgid "Remote"
-#~ msgstr "Uzaqdakı nƶvbə adı"
-
-#, fuzzy
-#~ msgid ""
-#~ "Please click on a button above\n"
-#~ "\n"
-#~ "Or use \"New\""
-#~ msgstr "XahiÅ edirik bir bƶlmÉ™ Ć¼stĆ¼nÉ™ tıqlayın"
-
-#~ msgid "Ambiguity (%s), be more precise\n"
-#~ msgstr "QarıÅıqlıq (%s), daha aydın yazın\n"
-
-#~ msgid " ? (default %s) "
-#~ msgstr " ? (əsas %s) "
-
-#~ msgid "Your choice? (default %s enter `none' for none) "
-#~ msgstr "SeƧkiniz (əsas %s, yoxsa `none' yazın) "
-
-#~ msgid "can not open /etc/sysconfig/autologin for reading: %s"
-#~ msgstr "/etc/sysconfig/autologin oxunmaq Ć¼Ć§Ć¼n aƧıla bilmir: %s"
-
-#~ msgid "Do you want to restart the network"
-#~ msgstr "Å˛É™bÉ™kÉ™ni yenidÉ™n baÅlatmaq istÉ™yirsiniz?"
-
-#~ msgid ""
-#~ "\n"
-#~ "Do you agree?"
-#~ msgstr ""
-#~ "\n"
-#~ "Razısınız?"
-
-#~ msgid "I'm about to restart the network device:\n"
-#~ msgstr "Å˛É™bÉ™kÉ™ avadanlıÄını yenidÉ™n baÅlatmalıyam:\n"
-
-#~ msgid "I'm about to restart the network device %s. Do you agree?"
-#~ msgstr "%s avadanlıÄını yenidÉ™n baÅladacam. Razısınız?"
-
-#, fuzzy
-#~ msgid ""
-#~ "Unless you know specifically otherwise, the usual choice is \"/dev/hda\"\n"
-#~ "(primary master IDE disk) or \"/dev/sda\" (first SCSI disk)."
-#~ msgstr ""
-#~ "BaÅqa bir ÅÉ™kildÉ™ seƧilmÉ™miÅ isÉ™, Ć¼mumiyyÉ™tlÉ™ bu seƧki \"/dev/hda\" \n"
-#~ "(Birinci ali IDE disk) ya da \"/dev/sda\" (birinci SCSI disk)\n"
-#~ "olacaqdır."
-
-#, fuzzy
-#~ msgid "Connection timeout (in sec) [ beta, not yet implemented ]"
-#~ msgstr "BaÄlantı nƶvĆ¼:"
-
-#, fuzzy
-#~ msgid "Could not set \"%s\" as the default printer!"
-#~ msgstr "ʸsas istifadəƧini seƧin:"
-
-#~ msgid "Test the mouse here."
-#~ msgstr "SiƧanınızı buradan sınayın."
-
-#~ msgid ""
-#~ "Please choose your preferred language for installation and system usage."
-#~ msgstr "Qurulma vÉ™ sistem istifadÉ™si Ć¼Ć§Ć¼n bir dil seƧin."
-
-#~ msgid ""
-#~ "You need to accept the terms of the above license to continue "
-#~ "installation.\n"
-#~ "\n"
-#~ "\n"
-#~ "Please click on \"Accept\" if you agree with its terms.\n"
-#~ "\n"
-#~ "\n"
-#~ "Please click on \"Refuse\" if you disagree with its terms. Installation "
-#~ "will end without modifying your current\n"
-#~ "configuration."
-#~ msgstr ""
-#~ "Davam edÉ™ bilmÉ™k Ć¼Ć§Ć¼n yuxarıdakı lisenziyanın maddÉ™lÉ™rini qÉ™bul "
-#~ "etməlisiniz.\n"
-#~ "\n"
-#~ "\n"
-#~ "XahiÅ edirik, maddÉ™lÉ™rlÉ™ razı isÉ™niz \"QÉ™bul\" dĆ¼ymÉ™sinÉ™ basın.\n"
-#~ "\n"
-#~ "\n"
-#~ "XahiÅ edirik, maddÉ™lÉ™rlÉ™ razı deyilsÉ™niz ,\"RÉ™dd\" dĆ¼ymÉ™sinÉ™ basın\n"
-#~ "YĆ¼klÉ™mÉ™ indiki qurÄularınız dÉ™yiÅdirilmÉ™dÉ™n bitirilÉ™cÉ™k."
-
-#~ msgid "Choose the layout corresponding to your keyboard from the list above"
-#~ msgstr "Yuxarıdakı siyahıdan klaviaturanıza uyƶun gÉ™lÉ™n dĆ¼zĆ¼lĆ¼ÅĆ¼ seƧiniz"
-
-#~ msgid ""
-#~ "If you wish other languages (than the one you choose at\n"
-#~ "beginning of installation) will be available after installation, please "
-#~ "chose\n"
-#~ "them in list above. If you want select all, you just need to select \"All"
-#~ "\"."
-#~ msgstr ""
-#~ "ʸgÉ™r yĆ¼klÉ™mÉ™dÉ™n sonra iÅlÉ™tmÉ™k Ć¼Ć§Ć¼n fÉ™rqli dillÉ™r (yĆ¼klÉ™mÉ™nin É™vvÉ™lindÉ™ "
-#~ "seƧdiyinizdən) seƧmək istəyirsinizsə,\n"
-#~ "xahiÅ edirik, onları yuxarıdakı siyahıdan seƧin.\n"
-#~ "ʸgər hamısını seƧmək istəyirsiniz isə \"Hamısını\" seƧin."
-
-#~ msgid ""
-#~ "Select:\n"
-#~ "\n"
-#~ " - Customized: If you are familiar enough with GNU/Linux, you may then "
-#~ "choose\n"
-#~ " the primary usage for your machine. See below for details.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Expert: This supposes that you are fluent with GNU/Linux and want to\n"
-#~ " perform a highly customized installation. As for a \"Customized\"\n"
-#~ " installation class, you will be able to select the usage for your "
-#~ "system.\n"
-#~ " But please, please, DO NOT CHOOSE THIS UNLESS YOU KNOW WHAT YOU ARE "
-#~ "DOING!"
-#~ msgstr ""
-#~ "SeƧ:\n"
-#~ "\n"
-#~ " - XĆ¼susi: ʸgÉ™r Linuksa aÅina isÉ™niz bu seƧənÉ™yÉ™ tıqlayın.\n"
-#~ " Sonra sistemin sinifini seƧə biləcəksiniz.\n"
-#~ " Ayrınrılar Ć¼Ć§Ć¼n aÅaÄıya baxın.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Usta: ʸgÉ™r GNU/Linuks haqqında yaxÅı bilik sahibi isÉ™niz bunu seƧin.\n"
-#~ " Daha sonra \"XĆ¼susi\" seƧkisindÉ™ olduÄu kimi sistemin sinifini seƧə "
-#~ "biləcəksiniz.\n"
-#~ " Ancaq artıq dÉ™rÉ™cÉ™dÉ™ xahiÅ edirik, Nʸ ETDÄ°YÄ°NÄ°ZÄ° BÄ°LMÄ°RSʸNÄ°Z BU "
-#~ "SİNİFİ SEƇMʸYİN!."
-
-#~ msgid ""
-#~ "You must now define your machine usage. Choices are:\n"
-#~ "\n"
-#~ "* Workstation: this the ideal choice if you intend to use your machine "
-#~ "primarily for everyday use, at office or\n"
-#~ " at home.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Development: if you intend to use your machine primarily for software "
-#~ "development, it is the good choice. You\n"
-#~ " will then have a complete collection of software installed in order to "
-#~ "compile, debug and format source code,\n"
-#~ " or create software packages.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Server: if you intend to use this machine as a server, it is the good "
-#~ "choice. Either a file server (NFS or\n"
-#~ " SMB), a print server (Unix style or Microsoft Windows style), an "
-#~ "authentication server (NIS), a database\n"
-#~ " server and so on. As such, do not expect any gimmicks (KDE, GNOME, "
-#~ "etc.) to be installed."
-#~ msgstr ""
-#~ "Ä°ndi isÉ™ kompĆ¼terinizi necÉ™ iÅlÉ™dÉ™cÉ™yinizÉ™ qerar verin.SeƧ:\n"
-#~ "\n"
-#~ "* Masa Ć¼stĆ¼: kompĆ¼terinizi gĆ¼ndÉ™lik iÅlÉ™r (idarÉ™ iÅlÉ™ri, qrafika vs.)\n"
-#~ " Ć¼Ć§Ć¼n istifadÉ™ edÉ™cÉ™k isÉ™niz, bunu seƧin.\n"
-#~ "\n"
-#~ "\n"
-#~ "* TÉ™crĆ¼bi: KompĆ¼terinizi proqram tÉ™'minatı inkiÅafı Ć¼Ć§Ć¼n iÅlÉ™dÉ™cÉ™ksÉ™niz, "
-#~ "sizin Ć¼Ć§Ć¼n ideal seƧkidir.\n"
-#~ " O zaman qaynaq kodları yazmaq, ÅÉ™killÉ™ndirmÉ™k vÉ™ xÉ™tadan ayıqlamaq vÉ™ ya "
-#~ "proqram paketlÉ™ri hazırlamaq Ć¼Ć§Ć¼n lazımi hÉ™r cĆ¼r proqramın daxil olduÄu "
-#~ "bir kolleksiya kompĆ¼terinizÉ™ qurulacaqdır.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Verici: KompĆ¼terinizÉ™ Linuks-Mandrakeni verici olaraq iÅlÉ™tmÉ™k Ć¼Ć§Ć¼n "
-#~ "quracaqsanız, bu yaxÅı bir seƧkidir.\n"
-#~ " Bir fayl vericisi (NFS ya da SMB),Ƨap edici vericisi(Unixin lp protokolu "
-#~ "ya da Windows tərzi SMB Ƨap),\n"
-#~ " tanıdıcı verici (NIS), mÉ™'lumat tabanı vericisi vÉ™ oxÅarı...Onda KDE, "
-#~ "GNOME kimi mÉ™zÉ™li ÅeylÉ™rin qurulmaÄını gƶzlÉ™mÉ™yin."
-
-#~ msgid ""
-#~ "You may now select the group of packages you wish to\n"
-#~ "install or upgrade.\n"
-#~ "\n"
-#~ "\n"
-#~ "DrakX will then check whether you have enough room to install them all. "
-#~ "If not,\n"
-#~ "it will warn you about it. If you want to go on anyway, it will proceed "
-#~ "onto the\n"
-#~ "installation of all selected groups but will drop some packages of "
-#~ "lesser\n"
-#~ "interest. At the bottom of the list you can select the option \n"
-#~ "\"Individual package selection\"; in this case you will have to browse "
-#~ "through\n"
-#~ "more than 1000 packages..."
-#~ msgstr ""
-#~ "Ä°ndi qurmaq ya da gĆ¼ncÉ™llÉ™mÉ™k istÉ™diyiniz paket qruplarını\n"
-#~ "seƧə bilərsiniz.\n"
-#~ "\n"
-#~ "Sonra DrakX seƧdiklÉ™rinizi qurmaq ya da gĆ¼ncÉ™llÉ™mÉ™k Ć¼Ć§Ć¼n lazımi \n"
-#~ "boÅ yerinizin olub olmadıÄını sınayacaq. ʸgÉ™r yoxsa, sizÉ™ bunu \n"
-#~ "sƶylÉ™yÉ™cÉ™k. NÉ™ olursa olsun davam etmÉ™k istÉ™sÉ™niz,yĆ¼klÉ™mÉ™ davam edÉ™cÉ™k.\n"
-#~ "Amma daha az ehtiyac olan paketlər qurulmayacaq.\n"
-#~ "Siyahının Ć¼stĆ¼ndÉ™ \"Å˛É™xsi paket seƧilmÉ™si\"\n"
-#~ "seƧənÉ™yini iÅarÉ™tlÉ™siniz 1000dÉ™n artıqpaket arasından seƧə bilÉ™rsiniz."
-
-#~ msgid ""
-#~ "You can now choose individually all the packages you\n"
-#~ "wish to install.\n"
-#~ "\n"
-#~ "\n"
-#~ "You can expand or collapse the tree by clicking on options in the left "
-#~ "corner of\n"
-#~ "the packages window.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you prefer to see packages sorted in alphabetic order, click on the "
-#~ "icon\n"
-#~ "\"Toggle flat and group sorted\".\n"
-#~ "\n"
-#~ "\n"
-#~ "If you want not to be warned on dependencies, click on \"Automatic\n"
-#~ "dependencies\". If you do this, note that unselecting one package may "
-#~ "silently\n"
-#~ "unselect several other packages which depend on it."
-#~ msgstr ""
-#~ "Ä°ndi isÉ™ siz istÉ™diyiniz paketi qurmaq Ć¼Ć§Ć¼n\n"
-#~ "seƧə bilərsiniz.\n"
-#~ "\n"
-#~ "\n"
-#~ "Paket pÉ™ncÉ™rÉ™si solundakı bucaqdaki seƧənÉ™yÉ™ tıqlayaraqaÄacı hÉ™m aƧa\n"
-#~ "hÉ™m dÉ™ sıxıÅdıra bilÉ™rsiniz.\n"
-#~ "\n"
-#~ "\n"
-#~ "PaketlÉ™rin É™lifba sırasına gƶrÉ™ dĆ¼zĆ¼lmÉ™sini istÉ™yirsinizsÉ™\n"
-#~ "\"Otaq vÉ™ grupu dĆ¼z\"\n"
-#~ "dĆ¼ymÉ™sinÉ™ basın.\n"
-#~ "\n"
-#~ "\n"
-#~ "Paket ehtiyacları xəbərdarlıqlarını istəmirsəniz \"Avtomatik\n"
-#~ "ehtiyaclar\"ı seƧə bilərsiniz.\n"
-#~ "Amma bunu iÅarÉ™tlÉ™diyiniz vaxt unutmayın bir paketin iÅarÉ™tini "
-#~ "qaldırdıÄınızda\n"
-#~ "ehtiyacı olan digÉ™r paketlerin de iÅarÉ™ti sÉ™ssizcÉ™ qalxar."
-
-#~ msgid ""
-#~ "If you have all the CDs in the list above, click Ok. If you have\n"
-#~ "none of those CDs, click Cancel. If only some CDs are missing, unselect "
-#~ "them,\n"
-#~ "then click Ok."
-#~ msgstr ""
-#~ "Yuxarıdakı siyahıdakı bĆ¼tĆ¼n CDlÉ™rÉ™ sahibsÉ™niz, OLDUya tıqlayın.\n"
-#~ "Bu CD'lÉ™rin heƧ birinÉ™ sahib deyilsÉ™niz, LÉ™Äv et'i tıqlayın.\n"
-#~ "CD'lərdən bə'ziləri əksiksə, bunları seƧili vəziyyətdən Ƨıxarıb OLDUya "
-#~ "tıqlayın."
-
-#~ msgid ""
-#~ "If you wish to connect your computer to the Internet or\n"
-#~ "to a local network please choose the correct option. Please turn on your "
-#~ "device\n"
-#~ "before choosing the correct option to let DrakX detect it automatically.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you do not have any connection to the Internet or a local network, "
-#~ "choose\n"
-#~ "\"Disable networking\".\n"
-#~ "\n"
-#~ "\n"
-#~ "If you wish to configure the network later after installation or if you "
-#~ "have\n"
-#~ "finished to configure your network connection, choose \"Done\"."
-#~ msgstr ""
-#~ "KompĆ¼terinizi internete vÉ™ ya yerli networka baÄlamaq\n"
-#~ "istÉ™yirsinizsÉ™ xahiÅ edirik doÄru xĆ¼susiyÉ™ti seƧin. Ayrıca DrakXin bunu "
-#~ "tapması Ć¼Ć§Ć¼n avadanlıÄınızı aƧın.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ä°nternet vÉ™ ya yerli networka heƧ giriÅiniz yox isÉ™\"Å˛É™bÉ™kÉ™ qurÄularını "
-#~ "keƧ\"\n"
-#~ "seƧənÉ™yini iÅarÉ™tlÉ™yin.\n"
-#~ "\n"
-#~ "\n"
-#~ "Å˛É™bÉ™kÉ™ qurÄularını sonraya buraxmaq istÉ™yirsinizsÉ™vÉ™ ya qurÄular bitdiysÉ™ "
-#~ "\"Oldu\" seƧənÉ™yini iÅarÉ™tlÉ™yin."
-
-#~ msgid ""
-#~ "No modem has been detected. Please select the serial port on which it is "
-#~ "plugged.\n"
-#~ "\n"
-#~ "\n"
-#~ "For information, the first serial port (called \"COM1\" under Microsoft\n"
-#~ "Windows) is called \"ttyS0\" under Linux."
-#~ msgstr ""
-#~ "Modem tapılmadı. XahiÅ edirik modemin baÄlı olduÄu serial qapını seƧin.\n"
-#~ "\n"
-#~ "\n"
-#~ "Xəbəriniz olsun, birinci serial qapı (Windows altında\n"
-#~ "\"COM1\") linux altında\"ttyS0\" deyə adlandırılır."
-
-#~ msgid ""
-#~ "You may now enter dialup options. If you don't know\n"
-#~ "or are not sure what to enter, the correct informations can be obtained "
-#~ "from\n"
-#~ "your Internet Service Provider. If you do not enter the DNS (name "
-#~ "server)\n"
-#~ "information here, this information will be obtained from your Internet "
-#~ "Service\n"
-#~ "Provider at connection time."
-#~ msgstr ""
-#~ "Ä°ndi isÉ™ ƧevirmÉ™li baÄlantı xĆ¼susiyyÉ™tlÉ™ri seƧə bilÉ™rsiniz.\n"
-#~ "ʸgər bilmirsinizsə və ya ne girəcəyinizə qerar vermədinizsə\n"
-#~ "(Məsələn, İXV (ISP) və DNS nƶmrələri kimi) bunları\n"
-#~ "daha sonra da internete girərək ƶyrənə bilərsiniz."
-
-#~ msgid ""
-#~ "If your modem is an external modem, please turn on it now to let DrakX "
-#~ "detect it automatically."
-#~ msgstr ""
-#~ "Modeminiz xarici isə modeminizi aƧın ki DrakX onu avtomatik olaraq tapsın."
-
-#~ msgid "Please turn on your modem and choose the correct one."
-#~ msgstr "XahiÅ edirik modeminizi aƧın ve doÄru seƧənÉ™yi iÅarÉ™tlÉ™yin."
-
-#~ msgid ""
-#~ "If you are not sure if informations above are\n"
-#~ "correct or if you don't know or are not sure what to enter, the correct\n"
-#~ "informations can be obtained from your Internet Service Provider. If you "
-#~ "do not\n"
-#~ "enter the DNS (name server) information here, this information will be "
-#~ "obtained\n"
-#~ "from your Internet Service Provider at connection time."
-#~ msgstr ""
-#~ "ʸgər yuxarıdakılar haqqında mə'lumatınız yox isə və ya ne girəcəyinizə "
-#~ "qərar vermədinizsə\n"
-#~ "(Məsələn, İXV (ISP) və DNS nƶmrələri kimi)bunları\n"
-#~ "daha sonra da internete girərək ƶyrənə bilərsiniz."
-
-#~ msgid ""
-#~ "You may now enter your host name if needed. If you\n"
-#~ "don't know or are not sure what to enter, the correct informations can "
-#~ "be\n"
-#~ "obtained from your Internet Service Provider."
-#~ msgstr ""
-#~ "İndi isə ev sahibi bilgilərini girin. Ne girəcəyinizə\n"
-#~ "qerar vermədinizsə\n"
-#~ "(Məsələn, İXV (ISP) və DNS nƶmrələri kimi)bunları\n"
-#~ "daha sonra da internete girərək ƶyrənə bilərsiniz."
-
-#~ msgid ""
-#~ "You may now configure your network device.\n"
-#~ "\n"
-#~ " * IP address: if you don't know or are not sure what to enter, ask "
-#~ "your network administrator.\n"
-#~ " You should not enter an IP address if you select the option "
-#~ "\"Automatic IP\" below.\n"
-#~ "\n"
-#~ " * Netmask: \"255.255.255.0\" is generally a good choice. If you don't "
-#~ "know or are not sure what to enter,\n"
-#~ " ask your network administrator.\n"
-#~ "\n"
-#~ " * Automatic IP: if your network uses BOOTP or DHCP protocol, select "
-#~ "this option. If selected, no value is needed in\n"
-#~ " \"IP address\". If you don't know or are not sure if you need to "
-#~ "select this option, ask your network administrator."
-#~ msgstr ""
-#~ "SeƧ:\n"
-#~ "\n"
-#~ " - IP Ć¼nvanı: ʸgÉ™r IP Ć¼nvanını bilmirsinizsÉ™, sistem idarÉ™cisinÉ™ya da \n"
-#~ "Ä°nternet xidmÉ™t vericisinÉ™ danıÅın.\n"
-#~ "\n"
-#~ " - Å˛É™bÉ™kÉ™ maskası: ĆmumiyyÉ™tlÉ™ \"255.255.255.0\" yaxÅı bir seƧkidir. ʸgÉ™r "
-#~ "əmin \n"
-#~ "deyilsÉ™niz, yenÉ™ sistem idarÉ™cinizÉ™ ya da xidmÉ™t vericinizÉ™soruÅun.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Avtomatik IP : ʸgər networkunuz bootp ya da dhcp protokollarından bir "
-#~ "dənəsini \n"
-#~ "istifadÉ™ edirsÉ™ bu seƧənÉ™yi iÅarÉ™tlÉ™yin."
-
-#~ msgid ""
-#~ "You may now enter your host name if needed. If you\n"
-#~ "don't know or are not sure what to enter, ask your network administrator."
-#~ msgstr ""
-#~ "ʸgÉ™r ÅÉ™bÉ™kÉ™dÉ™ NIS iÅlÉ™dilirsÉ™, \"NIS kullan\" seƧənÉ™yini iÅarÉ™tlÉ™yin. "
-#~ "ʸgər \n"
-#~ "bilmirsinizsÉ™ sistem idarÉ™cinizÉ™ soruÅun."
-
-#~ msgid ""
-#~ "You may now enter your host name if needed. If you\n"
-#~ "don't know or are not sure what to enter, leave blank."
-#~ msgstr "İndi ev sahibi adını girin. Bilmirsinizsə boŠburaxın."
-
-#~ msgid ""
-#~ "You may now enter dialup options. If you're not sure what to enter, the\n"
-#~ "correct information can be obtained from your ISP."
-#~ msgstr ""
-#~ "Ä°ndi ƧevirmÉ™li baÄlantı seƧənÉ™klÉ™rini girÉ™ bilÉ™rsiniz. ʸgÉ™r nÉ™ yazılması "
-#~ "lazım olduÄunu\n"
-#~ "bilmirsinizsə İnternet xidmət vericinizdən lazımi bilgiləri alın."
-
-#~ msgid ""
-#~ "If you will use proxies, please configure them now. If you don't know if\n"
-#~ "you should use proxies, ask your network administrator or your ISP."
-#~ msgstr "ʸgə vəkil (proxy) verici istifadə edacəmsəniz bunları girin."
-
-#~ msgid ""
-#~ "You can install cryptographic package if your internet connection has "
-#~ "been\n"
-#~ "set up correctly. First choose a mirror where you wish to download "
-#~ "packages and\n"
-#~ "after that select the packages to install.\n"
-#~ "\n"
-#~ "\n"
-#~ "Note you have to select mirror and cryptographic packages according\n"
-#~ "to your legislation."
-#~ msgstr ""
-#~ "ʸgÉ™r Ä°nternet baÄlantınız doÄru ÅÉ™kildÉ™ qurulmuÅ isÉ™ kriptoqrafik "
-#~ "paketi \n"
-#~ "dÉ™ qura bilÉ™rsiniz. ʸvvÉ™l bir É™ks Ć¼nvanı seƧin vÉ™ daha sonra qurulacaq \n"
-#~ "paketlÉ™ri quraÅdırın."
-
-#~ msgid "You can now select your timezone according to where you live."
-#~ msgstr "Ä°ndi isÉ™ yaÅadıÄınız yerÉ™ gƶrÉ™ zaman zolaÄını seƧin."
-
-#~ msgid ""
-#~ "You can configure a local printer (connected to your computer) or remote\n"
-#~ "printer (accessible via a Unix, Netware or Microsoft Windows network)."
-#~ msgstr ""
-#~ "Siz indi yerli və ya Ƨevirməli yazıƧını qura bilərsiniz\n"
-#~ "(Unix, Netware və ya Microsoft Windows networkundakı)."
-
-#~ msgid ""
-#~ "If you wish to be able to print, please choose one printing system "
-#~ "between\n"
-#~ "CUPS and LPR.\n"
-#~ "\n"
-#~ "\n"
-#~ "CUPS is a new, powerful and flexible printing system for Unix systems "
-#~ "(CUPS\n"
-#~ "means \"Common Unix Printing System\"). It is the default printing system "
-#~ "in\n"
-#~ "Mandrake Linux.\n"
-#~ "\n"
-#~ "\n"
-#~ "LPR is the old printing system used in previous Mandrake Linux "
-#~ "distributions.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you don't have printer, click on \"None\"."
-#~ msgstr ""
-#~ "Yazdırma funksiyası istəyirsinizsə CUPS və LPR arasında seƧici\n"
-#~ "davranmalısınız.\n"
-#~ "\n"
-#~ "\n"
-#~ "CUPS yeni, gĆ¼clĆ¼ ve elastik bir Unix yazdırma sistemidir\n"
-#~ "CUPS yəni \"Common Unix Printing System\". Bu da Linuks Mandrake\n"
-#~ "də əsas yazdırma sistemidir.\n"
-#~ "\n"
-#~ "\n"
-#~ "LPR Linuks Mandrakenin kƶhne sistemidir.\n"
-#~ "\n"
-#~ "\n"
-#~ "Printeriniz yox isÉ™ \"Yox\" dĆ¼ymÉ™sinÉ™ tıqlayın."
-
-#~ msgid ""
-#~ "GNU/Linux can deal with many types of printer. Each of these types "
-#~ "requires\n"
-#~ "a different setup.\n"
-#~ "\n"
-#~ "\n"
-#~ "If your printer is physically connected to your computer, select \"Local\n"
-#~ "printer\".\n"
-#~ "\n"
-#~ "\n"
-#~ "If you want to access a printer located on a remote Unix machine, select\n"
-#~ "\"Remote printer\".\n"
-#~ "\n"
-#~ "\n"
-#~ "If you want to access a printer located on a remote Microsoft Windows "
-#~ "machine\n"
-#~ "(or on Unix machine using SMB protocol), select \"SMB/Windows 95/98/NT\"."
-#~ msgstr ""
-#~ "GNU/Linuks bir Ƨox Ƨap edici nƶvĆ¼ iÅlÉ™dÉ™ bilÉ™r. HÉ™r bir nƶv\n"
-#~ "mĆ¼xtÉ™lif quruluÅ istÉ™yÉ™r.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ƈap ediciniz fiziki olaraq kompĆ¼terinizÉ™ baÄlı isÉ™\n"
-#~ "\"Yerli Ƨap edici\"nı seƧin.\n"
-#~ "\n"
-#~ "\n"
-#~ "Unix sisteminÉ™ baÄlı Ƨap ediciyÉ™ uzaqdan baÄlanmaq istÉ™yirsinizsÉ™\n"
-#~ "\"Uzaqdan baÄlanılan Ƨap edici\".\n"
-#~ "\n"
-#~ "\n"
-#~ " MS Windows kompĆ¼terinÉ™ (vÉ™ ya SMB protokolunu\n"
-#~ "iÅlÉ™dÉ™n Unix kompĆ¼terinÉ™) baÄlı bir Ƨap ediciyÉ™ Ƨatmaq Ć¼Ć§Ć¼n\n"
-#~ "\"SMB/Windows95/98/NT\" seƧənÉ™yini iÅarÉ™tlÉ™yin."
-
-#~ msgid ""
-#~ "Please turn on your printer before continuing to let DrakX detect it.\n"
-#~ "\n"
-#~ "You have to enter some informations here.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Name of printer: the print spooler uses \"lp\" as default printer "
-#~ "name. So, you must have a printer named \"lp\".\n"
-#~ " If you have only one printer, you can use several names for it. You "
-#~ "just need to separate them by a pipe\n"
-#~ " character (a \"|\"). So, if you prefer a more meaningful name, you "
-#~ "have to put it first, eg: \"My printer|lp\".\n"
-#~ " The printer having \"lp\" in its name(s) will be the default "
-#~ "printer.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Description: this is optional but can be useful if several printers "
-#~ "are connected to your computer or if you allow\n"
-#~ " other computers to access to this printer.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Location: if you want to put some information on your\n"
-#~ " printer location, put it here (you are free to write what\n"
-#~ " you want, for example \"2nd floor\").\n"
-#~ msgstr ""
-#~ "XahiÅ edirik DrakXin tapa bilmÉ™si Ć¼Ć§Ć¼n yazıƧınızı aƧın.\n"
-#~ "\n"
-#~ "Burada bir neƧə mə'lumat verməlisiniz.\n"
-#~ "\n"
-#~ "\n"
-#~ "*Ƈap Edici adı: yazıƧılar Ć¼Ć§Ć¼n \"lp\" iÅlÉ™dilir.\n"
-#~ "Ona gƶrə də yazıƧınızın adı \"lp\" olmalıdır.\n"
-#~ "Bir neƧə Ƨap ediciniz var isə istədiyiniz adı verə bilərsiniz. Sadəcə "
-#~ "olaraq É™ aralarına boru iÅarÉ™ti \"|\" qoymalısınız.\n"
-#~ "Məsələn \"Mənim yazıƧım|lp\".\n"
-#~ "Adında \"lp\" olan Ƨap edici baÅ Ć§ap edici olacaqdır.\n"
-#~ "\n"
-#~ "\n"
-#~ "*TÉ™svir: Ä°stÉ™yÉ™ baÄlıdır. Amma bir neƧə Ƨap ediciniz var isÉ™\n"
-#~ "bir xeyli faydalı ola bilər.\n"
-#~ "\n"
-#~ "\n"
-#~ "*YerlÉ™ÅmÉ™: Ƈap Edicinin yeri haqqında istÉ™diyinizi yaza bilÉ™rsiniz."
-#~ "Məsələn, \"2ci mərtəbə\".\n"
-
-#~ msgid ""
-#~ "You need to enter some informations here.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Name of queue: the print spooler uses \"lp\" as default printer "
-#~ "name. So, you need have a printer named \"lp\".\n"
-#~ " If you have only one printer, you can use several names for it. You "
-#~ "just need to separate them by a pipe\n"
-#~ " character (a \"|\"). So, if you prefer to have a more meaningful "
-#~ "name, you have to put it first, eg: \"My printer|lp\".\n"
-#~ " The printer having \"lp\" in its name(s) will be the default "
-#~ "printer.\n"
-#~ "\n"
-#~ " \n"
-#~ " * Spool directory: it is in this directory that printing jobs are "
-#~ "stored. Keep the default choice\n"
-#~ " if you don't know what to use\n"
-#~ "\n"
-#~ "\n"
-#~ " * Printer Connection: If your printer is physically connected to your "
-#~ "computer, select \"Local printer\".\n"
-#~ " If you want to access a printer located on a remote Unix machine, "
-#~ "select \"Remote lpd printer\".\n"
-#~ "\n"
-#~ "\n"
-#~ " If you want to access a printer located on a remote Microsoft "
-#~ "Windows machine (or on Unix machine using SMB\n"
-#~ " protocol), select \"SMB/Windows 95/98/NT\".\n"
-#~ "\n"
-#~ "\n"
-#~ " If you want to acces a printer located on NetWare network, select "
-#~ "\"NetWare\".\n"
-#~ msgstr ""
-#~ "Burada bir neƧə mə'lumat verməlisiniz.\n"
-#~ "\n"
-#~ "\n"
-#~ "*Ä°stÉ™k adı: yazıƧılar Ć¼Ć§Ć¼n \"lp\" iÅlÉ™dilir.\n"
-#~ "Ona gƶrə də yazıƧınızın adı \"lp\" olmalıdır.\n"
-#~ "Bir neƧə Ƨap ediciniz var isə istədiyiniz adı verə bilərsiniz. Sadəcə "
-#~ "É™olaraq aralarına boru iÅarÉ™ti \"|\" qoymalısınız.\n"
-#~ "Məsələn \"Mənim yazıƧım|lp\".\n"
-#~ "Adında \"lp\" olan Ƨap edici baÅ Ć§ap edici olacaqdır.\n"
-#~ "\n"
-#~ "\n"
-#~ "*Saxlama qovluÄu: Ƈap Edici sifariÅlÉ™rinizi saxlanıldıÄı yer.\n"
-#~ "Mƶvzudan bixÉ™bÉ™r isÉ™niz É™sas qurÄunu seƧin.\n"
-#~ "\n"
-#~ "\n"
-#~ "*Ƈap Edici baÄlantısı: Ƈap Edici fiziki olaraq kompĆ¼terÉ™ baÄlı ise\n"
-#~ "\"Yerli Ƈap Edici\" seƧin.\n"
-#~ "Uzaq bir Unix sistemÉ™ baÄlı Ƨap edici isÉ™\"Uzaqdan idarÉ™li lpd Ƈap Edici"
-#~ "\" seƧin.\n"
-#~ "\n"
-#~ "\n"
-#~ "Uzaq SMB vericisi iÅlÉ™dÉ™n Unix vÉ™ ya Windows sisteminÉ™ baÄlıyazıƧı Ć¼Ć§Ć¼n "
-#~ "isə \"SMB/Windows 95/98/NT\" seƧin.\n"
-#~ "\n"
-#~ "\n"
-#~ "NetWare ÅÉ™bÉ™kÉ™dÉ™ yerlÉ™ÅÉ™n Ƨap edici Ć¼Ć§Ć¼n isÉ™\"NetWare\" seƧin.\n"
-
-#~ msgid ""
-#~ "Your printer has not been detected. Please enter the name of the device "
-#~ "on\n"
-#~ "which it is connected.\n"
-#~ "\n"
-#~ "\n"
-#~ "For information, most printers are connected on the first parallel port. "
-#~ "This\n"
-#~ "one is called \"/dev/lp0\" under GNU/Linux and \"LPT1\" under Microsoft "
-#~ "Windows."
-#~ msgstr ""
-#~ "Sizin Ƨap edici tapılmadı. XahiÅ edirik baÄlı olduÄu avadanlıÄın\n"
-#~ "adını girin.\n"
-#~ "\n"
-#~ "\n"
-#~ "XÉ™bÉ™riniz olsun, bir Ƨox Ƨap edici birinci paralel qapıya baÄlıdır.\n"
-#~ "Bu da GNU/Linuksda \"/dev/lp0\", Windowsda isÉ™ \"LPT1\"dir."
-
-#~ msgid "You must now select your printer in the above list."
-#~ msgstr "İndi yuxarıdakı siyahıdan Ƨap edici seƧmalisiniz."
-
-#~ msgid ""
-#~ "Please select the right options according to your printer.\n"
-#~ "Please see its documentation if you don't know what choose here.\n"
-#~ "\n"
-#~ "\n"
-#~ "You will be able to test your configuration in next step and you will be "
-#~ "able to modify it if it doesn't work as you want."
-#~ msgstr ""
-#~ "XahiÅ edirik yazıcınız Ć¼Ć§Ć¼n doÄru qurÄuları girin.\n"
-#~ "Nə seƧəcəyinizi bilmirsiniz isə sənədlərə baxın\n"
-#~ "\n"
-#~ "\n"
-#~ "Bir sonrakı addımda yazıcınızı sınaya bilərsiniz və\n"
-#~ "daha sonra da istÉ™diyiniz zaman dÉ™yiÅdirÉ™ bilÉ™r."
-
-#~ msgid ""
-#~ "You can now enter the root password for your Mandrake Linux system.\n"
-#~ "The password must be entered twice to verify that both password entries "
-#~ "are identical.\n"
-#~ "\n"
-#~ "\n"
-#~ "Root is the system's administrator and is the only user allowed to modify "
-#~ "the\n"
-#~ "system configuration. Therefore, choose this password carefully. \n"
-#~ "Unauthorized use of the root account can be extemely dangerous to the "
-#~ "integrity\n"
-#~ "of the system, its data and other system connected to it.\n"
-#~ "\n"
-#~ "\n"
-#~ "The password should be a mixture of alphanumeric characters and at least "
-#~ "8\n"
-#~ "characters long. It should never be written down.\n"
-#~ "\n"
-#~ "\n"
-#~ "Do not make the password too long or complicated, though: you must be "
-#~ "able to\n"
-#~ "remember it without too much effort."
-#~ msgstr ""
-#~ "Linuks sisteminiz Ć¼Ć§Ć¼n bir idarÉ™ci parolu verilmÉ™lidir. Bu parol\n"
-#~ "yazılıŠxətalarına meydan verməməsi və e'tibarlı olması səbəbi ilə iki "
-#~ "dəfə\n"
-#~ "girilməlidir.\n"
-#~ "\n"
-#~ "\n"
-#~ "Bu parolu diqqətli seƧməlisiniz. Sadəcə idarəi parolunu bilən \n"
-#~ "adamlar sistemi idarÉ™ vÉ™ dÉ™yiÅiklik edÉ™ bilirlÉ™r. Ayrıca idarÉ™ci \n"
-#~ "parolu ilÉ™ sistemÉ™ girÉ™n bir adam bĆ¼tĆ¼n verilÉ™ri silib, sistema zÉ™rÉ™r \n"
-#~ "verə bilər. SeƧdiyiniz parol alfanumerik xarakterlər daxil edib en az 8 "
-#~ "xarakter uzunluÄunda olmalıdır. HÉ™r hansı bir kaÄıza, dÉ™ftara qeyd\n"
-#~ "alınmamalıdır. Ƈox uzun bir parol vÉ™ ya Ƨox qarıÅıq bir parol iÅlÉ™dilir "
-#~ "isÉ™ \n"
-#~ "parolun xatırlanması ƧətinlÉ™Åir.\n"
-#~ "\n"
-#~ "\n"
-#~ "İdarəci olaraq sistemə girəcayiniz zaman, giriŠsırasında \"login\"\n"
-#~ "yazan qismə \"root\" və \"password\" yazan qismə idarəci parolunu\n"
-#~ "yazmalısınız."
-
-#~ msgid ""
-#~ "You may now create one or more \"regular\" user account(s), as\n"
-#~ "opposed to the \"privileged\" user account, root. You can create\n"
-#~ "one or more account(s) for each person you want to allow to use\n"
-#~ "the computer. Note that each user account will have its own\n"
-#~ "preferences (graphical environment, program settings, etc.)\n"
-#~ "and its own \"home directory\", in which these preferences are\n"
-#~ "stored.\n"
-#~ "\n"
-#~ "\n"
-#~ "First of all, create an account for yourself! Even if you will be the "
-#~ "only user\n"
-#~ "of the machine, you may NOT connect as root for daily use of the system: "
-#~ "it's a\n"
-#~ "very high security risk. Making the system unusable is very often a typo "
-#~ "away.\n"
-#~ "\n"
-#~ "\n"
-#~ "Therefore, you should connect to the system using the user account\n"
-#~ "you will have created here, and login as root only for administration\n"
-#~ "and maintenance purposes."
-#~ msgstr ""
-#~ "İndi bir ya da daha Ƨox adamın Linuks sisteminizi istifadə etməsinə "
-#~ "icazÉ™\n"
-#~ "verÉ™ bilÉ™rsiniz. HÉ™r istifadəƧi hesabı Ć¼Ć§Ć¼n edilÉ™n dÉ™yiÅikliklÉ™r sadÉ™cÉ™\n"
-#~ "o istifadəƧi ve istifadəƧinin \"istifadəƧi sırası\" Ć¼Ć§Ć¼n hƶkmlĆ¼ olar.\n"
-#~ "\n"
-#~ "\n"
-#~ "Sistemi sadəcə siz istifadə edeceksəniz belə ayrı bir istifadəƧi hesabı "
-#~ "aƧaraq\n"
-#~ "normal iÅler Ć¼Ć§Ć¼n bu hesabı istifadÉ™ etmÉ™lisiniz. Ä°darəƧi \"root\" "
-#~ "hesabı\n"
-#~ "gĆ¼ndÉ™lik iÅlÉ™rdÉ™ istifadÉ™ edilmÉ™mÉ™lidir. Bu bir tÉ™hlĆ¼kÉ™sizlik riski "
-#~ "tÉ™Åkil edÉ™r.\n"
-#~ "SadÉ™ bir istifadəƧi hesabı ilÉ™ iÅlÉ™mÉ™k sizi vÉ™ sistemi size qarÅı\n"
-#~ "qoruyar. İdarəci hesabı olan \"root\" sadəcə, sadə bir istifadəƧi hesabı\n"
-#~ "ilÉ™ etmÉ™yÉ™cÉ™yiniz idarÉ™ vÉ™ tÉ™mir iÅlÉ™ri Ć¼Ć§Ć¼n istifadÉ™ edilmÉ™lidir."
-
-#~ msgid ""
-#~ "Creating a boot disk is strongly recommended. If you can't\n"
-#~ "boot your computer, it's the only way to rescue your system without\n"
-#~ "reinstalling it."
-#~ msgstr ""
-#~ "BaÅlanÄıc disketi yaradılması aÅırı dÉ™rÉ™cÉ™dÉ™ tƶvsiyyÉ™ edilir.\n"
-#~ "Sistemi aƧa bilmÉ™diyiniz zaman bu, sizin Ć¼Ć§Ć¼n tÉ™k qurtuluÅ yolu olar.\n"
-#~ "Yoxsa sistemi yenidÉ™n yĆ¼klÉ™mÉ™k mÉ™cburiyyÉ™tindÉ™siniz."
-
-#~ msgid ""
-#~ "LILO and grub main options are:\n"
-#~ " - Boot device: Sets the name of the device (e.g. a hard disk\n"
-#~ "partition) that contains the boot sector. Unless you know specifically\n"
-#~ "otherwise, choose \"/dev/hda\".\n"
-#~ "\n"
-#~ "\n"
-#~ " - Delay before booting default image: Specifies the number in tenths\n"
-#~ "of a second the boot loader should wait before booting the first image.\n"
-#~ "This is useful on systems that immediately boot from the hard disk after\n"
-#~ "enabling the keyboard. The boot loader doesn't wait if \"delay\" is\n"
-#~ "omitted or is set to zero.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Video mode: This specifies the VGA text mode that should be selected\n"
-#~ "when booting. The following values are available: \n"
-#~ "\n"
-#~ " * normal: select normal 80x25 text mode.\n"
-#~ "\n"
-#~ " * <number>: use the corresponding text mode.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Clean \"/tmp\" at each boot: if you want delete all files and "
-#~ "directories\n"
-#~ "stored in \"/tmp\" when you boot your system, select this option.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Precise RAM if needed: unfortunately, there is no standard method to "
-#~ "ask the\n"
-#~ "BIOS about the amount of RAM present in your computer. As consequence, "
-#~ "Linux may\n"
-#~ "fail to detect your amount of RAM correctly. If this is the case, you "
-#~ "can\n"
-#~ "specify the correct amount or RAM here. Please note that a difference of "
-#~ "2 or 4\n"
-#~ "MB between detected memory and memory present in your system is normal."
-#~ msgstr ""
-#~ "LILO və grub ana seƧənəkləri bunlardır: \n"
-#~ "- AƧılıŠavadanlıÄı: AƧılıŠsektorunu olduÄu sabit disk bƶlmÉ™sini daxil "
-#~ "edÉ™n avadanlıÄın\n"
-#~ "adını təyin edər.\n"
-#~ "ʸgÉ™r heƧ bir Åey bilmirsinizsÉ™ \"/dev/hda\"yı seƧin.\n"
-#~ "\n"
-#~ "\n"
-#~ "- ʸsas É™ks ilÉ™ aƧmadan É™vvÉ™l gecikmÉ™: AƧılıŠsistem yĆ¼klÉ™yicisinin ilk \n"
-#~ "əksi aƧmadan əvvəl gƶzləyəcəyi zamanın, saniyənin onda biri cinsindən "
-#~ "miqdarıdır.\n"
-#~ "Bu, klaviaturanın fÉ™allaÅmasından hÉ™mÉ™n sonra sabit diskdÉ™n aƧılan "
-#~ "sistemlÉ™r Ć¼Ć§Ć¼n faydalıdır.\n"
-#~ "Sistem yĆ¼klÉ™yicisi, É™gÉ™r \"delay\" sıfır olaraq verilmiÅ isÉ™\n"
-#~ "heƧ gƶzləməz.\n"
-#~ "\n"
-#~ "\n"
-#~ "- Ekran modu: AƧılıÅda bir neƧə mÉ™tn ekran modu seƧilÉ™ bilÉ™r:\n"
-#~ " * sadə: 80x25 mətn ekran aƧılır.\n"
-#~ " * <rəqəm>: Gƶstərilənn rəqəmlərə gƶrə mətn ekran rezolyusiyası "
-#~ "quraÅdırılır.\n"
-#~ "\n"
-#~ "\n"
-#~ "- \"/tmp\"I hÉ™r aƧılıÅda tÉ™mizlÉ™: ʸgÉ™r hÉ™r aƧılıÅda \"/tmp\" cÉ™rgÉ™sindÉ™ "
-#~ "olan bĆ¼tĆ¼n\n"
-#~ "olan bĆ¼tĆ¼n cÉ™rgÉ™ vÉ™ qovluqların silinmÉ™sini istÉ™yirsinizsÉ™, bu seƧənÉ™yi "
-#~ "seƧin.\n"
-#~ "\n"
-#~ "\n"
-#~ "- Var olan RAM miqdarı: TəəsĆ¼f ki, Linuks hÉ™miÅÉ™ RAM miqdarını BIOSdan "
-#~ "dĆ¼zgĆ¼n\n"
-#~ "bir ÅÉ™kildÉ™ ƶyrÉ™nÉ™mÉ™yÉ™ bilÉ™r. Onda siz ƧzĆ¼nĆ¼z sisteminizdÉ™ olan hÉ™qiq RAM "
-#~ "miqdarını buradan\n"
-#~ "girÉ™ bilÉ™rsiniz. Yadda saxlayın ki, hÉ™qiqi RAM ilÉ™ sistemin tapdıÄı "
-#~ "miqdar arasında 2\n"
-#~ "və ya 4 MBlıq fərq ola bilər."
-
-#~ msgid ""
-#~ "SILO is a bootloader for SPARC: it is able to boot\n"
-#~ "either GNU/Linux or any other operating system present on your computer.\n"
-#~ "Normally, these other operating systems are correctly detected and\n"
-#~ "installed. If this is not the case, you can add an entry by hand in this\n"
-#~ "screen. Be careful as to choose the correct parameters.\n"
-#~ "\n"
-#~ "\n"
-#~ "You may also want not to give access to these other operating systems to\n"
-#~ "anyone, in which case you can delete the corresponding entries. But\n"
-#~ "in this case, you will need a boot disk in order to boot them!"
-#~ msgstr ""
-#~ "SILO (Linuks YĆ¼klÉ™yici) SPARC Ć¼Ć§Ć¼n bir sistem yĆ¼klÉ™yicidir: sistemi "
-#~ "Linuks\n"
-#~ "ya da kompĆ¼terinizdÉ™ki baÅqa bir É™mÉ™liyyat sistemiylÉ™ aƧa bilirlÉ™r.\n"
-#~ "ʸsasÉ™n bu digÉ™r É™mÉ™liyyat sistemlÉ™ri doÄru bir ÅÉ™kildÉ™ tÉ™sbit edilib "
-#~ "aƧılıÅa\n"
-#~ "qurula bilərlər. ʸgər bir problem olarsa, buradan əllə əlavə edilə "
-#~ "bilərlər.\n"
-#~ "Parametrlər mƶvzusunda diqqətli olun."
-
-#~ msgid ""
-#~ "SILO main options are:\n"
-#~ " - Bootloader installation: Indicate where you want to place the\n"
-#~ "information required to boot to GNU/Linux. Unless you know exactly\n"
-#~ "what you are doing, choose \"First sector of drive (MBR)\".\n"
-#~ "\n"
-#~ "\n"
-#~ " - Delay before booting default image: Specifies the number in tenths\n"
-#~ "of a second the boot loader should wait before booting the first image.\n"
-#~ "This is useful on systems that immediately boot from the hard disk after\n"
-#~ "enabling the keyboard. The boot loader doesn't wait if \"delay\" is\n"
-#~ "omitted or is set to zero."
-#~ msgstr ""
-#~ " - AƧılıŠavadanlıÄı: AƧılıŠsektorunu olduÄu sabit disk bƶlmÉ™sini daxil "
-#~ "edÉ™n avadanlıÄın\n"
-#~ "adını təyin edər.\n"
-#~ "ʸgÉ™r heƧ bir Åey bilmirsinizsÉ™ \"/dev/hda\"yı seƧin.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Ana É™ks ilÉ™ aƧmadan É™vvÉ™l gecikmÉ™: AƧılıŠsistem yĆ¼klÉ™yicisinin ilk \n"
-#~ "gƶrĆ¼nĆ¼ÅĆ¼ aƧmadan É™vvÉ™l gƶzlÉ™yÉ™cÉ™yi zamanın, saniyÉ™nin onda biri cinsindÉ™n "
-#~ "miqdarıdır.\n"
-#~ "Bu, klaviaturanın aktivlÉ™ÅmÉ™sindÉ™n hÉ™mÉ™n sonra sabit diskdÉ™n aƧılan "
-#~ "sistemlÉ™r Ć¼Ć§Ć¼n faydalıdır.\n"
-#~ "Sistem yĆ¼klÉ™yicisi, É™gÉ™r delay sıfır olaraq verilmiÅ isÉ™\n"
-#~ "heƧ gƶzləməz."
-
-#~ msgid ""
-#~ "Now it's time to configure the X Window System, which is the\n"
-#~ "core of the GNU/Linux GUI (Graphical User Interface). For this purpose,\n"
-#~ "you must configure your video card and monitor. Most of these\n"
-#~ "steps are automated, though, therefore your work may only consist\n"
-#~ "of verifying what has been done and accept the settings :)\n"
-#~ "\n"
-#~ "\n"
-#~ "When the configuration is over, X will be started (unless you\n"
-#~ "ask DrakX not to) so that you can check and see if the\n"
-#~ "settings suit you. If they don't, you can come back and\n"
-#~ "change them, as many times as necessary."
-#~ msgstr ""
-#~ "Buradan etibarÉ™n, Linuks GUI (Qrafik Ä°stifadəƧi Ara Ć¼zĆ¼) ƧəkirdÉ™yini\n"
-#~ "É™mÉ™lÉ™ gÉ™tirÉ™n X Window sistemini quracaÄıq. Buna gƶrÉ™ dÉ™ ekran kartınızı\n"
-#~ "və monitorunuzu qurmalısınız. Bu addımların Ƨoxu onsuz da avtomatik "
-#~ "olaraq\n"
-#~ "keƧilÉ™cÉ™k vÉ™ sizÉ™ sadÉ™cÉ™ olaraq tƶvsiyÉ™ edilÉ™n qurÄuları incÉ™lÉ™mÉ™k vÉ™ "
-#~ "qəbul etmək\n"
-#~ "dĆ¼ÅÉ™cÉ™k. :-)\n"
-#~ "\n"
-#~ "\n"
-#~ "QuruluÅ qurtardıÄında É™gÉ™r DrakXdÉ™n É™ksini istÉ™mÉ™diniz isÉ™ X Window \n"
-#~ "baÅlayacaqdır. QurÄuÅarınıza baxın vÉ™ yoxlayın. QurÄularınızı yoxlayaraq\n"
-#~ "uyuÅmazlıq olub olmadıÄına baxın, lazım gÉ™lirsÉ™ geriyÉ™ dƶnĆ¼n."
-
-#~ msgid ""
-#~ "If something is wrong in X configuration, use these options to correctly\n"
-#~ "configure the X Window System."
-#~ msgstr "X qurÄularında problem olarsa aÅaÄıdakı seƧənÉ™klÉ™ri istifadÉ™ edin."
-
-#~ msgid ""
-#~ "If you prefer to use a graphical login, select \"Yes\". Otherwise, "
-#~ "select\n"
-#~ "\"No\"."
-#~ msgstr ""
-#~ "ʸgÉ™r sistemÉ™ girÉ™rkÉ™n qrafik arar Ć¼zĆ¼nĆ¼n gÉ™lmÉ™sini istÉ™yirsÉ™nız isÉ™ \"BÉ™li"
-#~ "\",É™ks halda \"Xeyr\" dĆ¼ymÉ™sinÉ™ basın."
-
-#~ msgid ""
-#~ "You can choose a security level for your system. Please refer to the "
-#~ "manual for complete\n"
-#~ " information. Basically, if you don't know what to choose, keep the "
-#~ "default option.\n"
-#~ msgstr ""
-#~ "Sisteminiz Ć¼Ć§Ć¼n tÉ™hlĆ¼kÉ™sizlik sÉ™viyyÉ™sini seƧə bilÉ™rsiniz. ʸtraflı "
-#~ "mÉ™'lumat Ć¼Ć§Ć¼n xahiÅ edirik bÉ™lÉ™dƧiyÉ™\n"
-#~ " baÅ vurun. ʸsasÉ™n , nÉ™ seƧəcÉ™yinizi bilmirsiniz isÉ™ buraya heƧ "
-#~ "toxunmayın.\n"
-
-#~ msgid ""
-#~ "Your system is going to reboot.\n"
-#~ "\n"
-#~ "After rebooting, your new Mandrake Linux system will load automatically.\n"
-#~ "If you want to boot into another existing operating system, please read\n"
-#~ "the additional instructions."
-#~ msgstr ""
-#~ "İndi sistem yenidən qapanıb aƧılacaqdır.\n"
-#~ "\n"
-#~ "AƧıldıqdan sonra Linuks Mandrake avtomatik olaraq yĆ¼klÉ™nÉ™cÉ™kdir. ʸgÉ™r "
-#~ "baÅqa \n"
-#~ "bir É™mÉ™liyyat sistemi dÉ™ iÅlÉ™dÉ™cÉ™ksÉ™niz É™lavÉ™ xÉ™bÉ™rdarlıqları oxuyun."
-
-#~ msgid "Czech (Programmers)"
-#~ msgstr "Ƈex dili (Proqramcılar)"
-
-#~ msgid "Slovakian (Programmers)"
-#~ msgstr "Slovakca (Proqramcılar)"
-
-#~ msgid "Name of the profile to create:"
-#~ msgstr "Yaradılacaq profil adı:"
-
-#~ msgid "Write /etc/fstab"
-#~ msgstr "/etc/fstab-a Yaz"
-
-#~ msgid "Format all"
-#~ msgstr "Hamısını ÅÉ™killÉ™ndir"
-
-#~ msgid "After formatting all partitions,"
-#~ msgstr "BĆ¼tĆ¼n bƶlmÉ™lÉ™ri ÅÉ™killÉ™ndirdikdÉ™n sonra, "
-
-#~ msgid "all data on these partitions will be lost"
-#~ msgstr "bu bƶlmÉ™lÉ™rdÉ™ki bĆ¼tĆ¼n verilÉ™r itÉ™cÉ™kdir"
-
-#~ msgid "Reload"
-#~ msgstr "YenidÉ™n yĆ¼klÉ™"
-
-#~ msgid ""
-#~ "Do you want to generate an auto install floppy for linux replication?"
-#~ msgstr ""
-#~ "Linuks kĆ¶Ć§Ć¼rĆ¼lmÉ™si Ć¼Ć§Ć¼n bir dÉ™nÉ™ avtomatik qurulum disketi yaratmaq "
-#~ "istəyərmisiniz?"
-
-#~ msgid "ADSL configuration"
-#~ msgstr "ADSL quraÅdırılması"
-
-#~ msgid ""
-#~ "With a remote CUPS server, you do not have to configure\n"
-#~ "any printer here; printers will be automatically detected\n"
-#~ "unless you have a server on a different network; in the\n"
-#~ "latter case, you have to give the CUPS server IP address\n"
-#~ "and optionally the port number."
-#~ msgstr ""
-#~ "Uzaq CUPS vericilÉ™ri Ć¼Ć§Ć¼n heƧ bir quraÅdırmaya lĆ¼zĆ¼m yoxdur \n"
-#~ "Buradakı hər Ƨap edici avtomatik tapılacaqdır. \n"
-#~ "ʸgər uzaq Ƨap edici vericiniz var ise CUPS vercisinin \n"
-#~ "IP Ć¼nvanını vermÉ™lisiniz. Qapı nƶmrÉ™si vacib \n"
-#~ "deyil."
-
-#, fuzzy
-#~ msgid "Remote queue name missing!"
-#~ msgstr "Uzaqdakı nƶvbə adı"
-
-#, fuzzy
-#~ msgid "Command line"
-#~ msgstr "Sahə(domain) adı"
-
-#, fuzzy
-#~ msgid "Modify printer"
-#~ msgstr "Ƈap Edicisiz"
-
-#~ msgid "Network Monitoring"
-#~ msgstr "Å˛É™bÉ™kÉ™ Monitoru"
-
-#~ msgid "Profile "
-#~ msgstr "Profil "
-
-#~ msgid "Statistics"
-#~ msgstr "Statistikalar"
-
-#~ msgid "Sending Speed:"
-#~ msgstr "Yollama SĆ¼r'É™ti:"
-
-#~ msgid "Receiving Speed:"
-#~ msgstr "Alam SĆ¼r'É™ti:"
-
-#, fuzzy
-#~ msgid "Connection Time: "
-#~ msgstr "BaÄlantı nƶvĆ¼:"
-
-#~ msgid "Connecting to Internet "
-#~ msgstr "Ä°nternetÉ™ baÄlanılır"
-
-#~ msgid "Disconnecting from Internet "
-#~ msgstr "Ä°nternet ilÉ™ baÄlantını kÉ™s"
-
-#~ msgid "Disconnection from Internet failed."
-#~ msgstr "Ä°nternet ilÉ™ baÄlantı kÉ™silmÉ™si bacarılmadı."
-
-#~ msgid "Disconnection from Internet complete."
-#~ msgstr "Ä°nternet ilÉ™ baÄlantı kÉ™silmÉ™si qurtardı."
-
-#~ msgid "Connection complete."
-#~ msgstr "BaÄlantı qurtardı."
-
-#~ msgid ""
-#~ "Connection failed.\n"
-#~ "Verify your configuration in the Mandrake Control Center."
-#~ msgstr ""
-#~ "BaÄlantı iflas etdi.\n"
-#~ "QurÄularınızı Mandrake Ä°darÉ™ MÉ™rkÉ™zindÉ™n yoxlayın."
-
-#~ msgid "sent: "
-#~ msgstr "yollandı:"
-
-#~ msgid "received: "
-#~ msgstr "alındı:"
-
-#~ msgid "Default Runlevel"
-#~ msgstr "ʸsas Runlevel"
-
-#~ msgid "NetWare"
-#~ msgstr "NetWare"
-
-#~ msgid "Config file content could not be interpreted."
-#~ msgstr "QuraÅdırma faylının iƧindÉ™kilÉ™rlÉ™ oynanılmaz"
-
-#~ msgid "Unrecognized config file"
-#~ msgstr "Tanınmaz quraÅdırma faylı"
-
-#~ msgid "Adapter"
-#~ msgstr "Adapter"
-
-#, fuzzy
-#~ msgid "Disable network"
-#~ msgstr "BaÄla"
-
-#, fuzzy
-#~ msgid "Enable network"
-#~ msgstr "AƧ"
-
-#~ msgid ""
-#~ "You can now test your mouse. Use buttons and wheel to verify\n"
-#~ "if settings are good. If not, you can click on \"Cancel\" to choose "
-#~ "another\n"
-#~ "driver."
-#~ msgstr ""
-#~ "Ä°ndi siƧanı sınaya bilÉ™rsiniz. HÉ™r Åeyin yolunda olduÄunu \n"
-#~ "sınamaq Ć¼Ć§Ć¼n dĆ¼ymÉ™ vÉ™ Ƨarxı iÅlÉ™din. QurÄular yaxÅı isÉ™\n"
-#~ "problem yoxdur. ʸgÉ™r deyilsÉ™ onda \"LÉ™Äv et\"i tıqlayaraq\n"
-#~ "baÅqa siƧan sĆ¼rĆ¼cĆ¼sĆ¼ seƧə bilÉ™rsiniz."
-
-#~ msgid "DSL (or ADSL) connection"
-#~ msgstr "DSL (vÉ™ ya ADSL) baÄlantısı"
-
-#, fuzzy
-#~ msgid "Choose"
-#~ msgstr "Qapat"
-
-#~ msgid "You can specify directly the URI to access the printer with CUPS."
-#~ msgstr "CUPS ilÉ™ Ƨap ediciyÉ™ yetiÅmÉ™k Ć¼Ć§Ć¼n URIni vermÉ™lisiniz"
-
-#~ msgid "Yes, print ASCII test page"
-#~ msgstr "Bəli, ASCII sınaq səhifəsi Ƨap et"
-
-#~ msgid "Yes, print PostScript test page"
-#~ msgstr "Bəli, PostScript sınaq səhifəsi Ƨap et"
-
-#~ msgid "Paper Size"
-#~ msgstr "KaÄız BƶyĆ¼klĆ¼yĆ¼"
-
-#~ msgid "Eject page after job?"
-#~ msgstr "İŠbittikdən sonra səhifə atılsın mı?"
-
-#~ msgid "Uniprint driver options"
-#~ msgstr "Uniprint sĆ¼rĆ¼cĆ¼ seƧənÉ™klÉ™ri"
-
-#~ msgid "Color depth options"
-#~ msgstr "Rəng dərinlik seƧənəkləri"
-
-#~ msgid "Print text as PostScript?"
-#~ msgstr "Mətni PostScript olaraq yazdırsın mı?"
-
-#~ msgid "Fix stair-stepping text?"
-#~ msgstr "MÉ™tn pillÉ™li olaraq dĆ¼zÉ™ldilsin mi?"
-
-#~ msgid "Number of pages per output pages"
-#~ msgstr "Hər yekun səhifəsinin nƶmrəsi"
-
-#~ msgid "Right/Left margins in points (1/72 of inch)"
-#~ msgstr "SaÄ/Sol boÅluqlar nƶqtÉ™vi(inch'in 1/72'si"
-
-#~ msgid "Top/Bottom margins in points (1/72 of inch)"
-#~ msgstr "Ćst/Alt boÅluqlar nƶqtÉ™vi (inch'in 1/72'si)"
-
-#~ msgid "Extra GhostScript options"
-#~ msgstr "ʸlavə GhostScript seƧənəkləri"
-
-#~ msgid "Extra Text options"
-#~ msgstr "ʸlavə mətn seƧənəkləri"
-
-#~ msgid "Reverse page order"
-#~ msgstr "Tərs səhifə sıralaması"
-
-#~ msgid "Select Remote Printer Connection"
-#~ msgstr "Ƈap Edici BaÄlantısı SeƧin"
-
-#~ msgid ""
-#~ "Every printer need a name (for example lp).\n"
-#~ "Other parameters such as the description of the printer or its location\n"
-#~ "can be defined. What name should be used for this printer and\n"
-#~ "how is the printer connected?"
-#~ msgstr ""
-#~ "Hər Ƨap edicinin bir adı olmalıdır (məsələn lp).\n"
-#~ "Ƈap edicinin təsviri və yeri də gƶstərilməlidir.\n"
-#~ "Bu Ƨap edicinin adı nədir və yeri haradadır?"
-
-#~ msgid ""
-#~ "Every print queue (which print jobs are directed to) needs a\n"
-#~ "name (often lp) and a spool directory associated with it. What\n"
-#~ "name and directory should be used for this queue and how is the printer "
-#~ "connected?"
-#~ msgstr ""
-#~ "HÉ™r Ƨap edici nƶvbÉ™sinin (Ƨap edici iÅlÉ™rinin yollandıÄı yer) bir adı "
-#~ "olar \n"
-#~ "(Ƨoxunda lp) vÉ™ gƶzlÉ™mÉ™ qovluÄuna ehtiyac duyar. Bu nƶvbÉ™ Ć¼Ć§Ć¼n\n"
-#~ "hansı ad və qovluq istifadə edilsin?"
-
-#~ msgid "Name of queue"
-#~ msgstr "Nƶvbənin adı"
-
-#~ msgid "Spool directory"
-#~ msgstr "GƶzlÉ™mÉ™ qovluÄu"
-
-#~ msgid ""
-#~ "To enable a more secure system, you should select \"Use shadow file\" "
-#~ "and\n"
-#~ "\"Use MD5 passwords\"."
-#~ msgstr ""
-#~ "Daha e'tibarlı bir sistem Ć¼Ć§Ć¼n \"KƶlgÉ™ parol iÅlÉ™t\" vÉ™ \"MD5 kodlama \n"
-#~ "iÅlÉ™t\" seƧənÉ™klÉ™rini iÅarÉ™tlayin."
-
-#~ msgid ""
-#~ "If your network uses NIS, select \"Use NIS\". If you don't know, ask "
-#~ "your\n"
-#~ "network administrator."
-#~ msgstr ""
-#~ "ʸgÉ™r ÅÉ™bÉ™kÉ™dÉ™ NIS istifadÉ™ edilirsÉ™, \"NIS iÅlÉ™t\" seƧəneyini "
-#~ "iÅarÉ™tlÉ™yin. ʸgÉ™r \n"
-#~ "bilmirsinizsÉ™ sistem idarÉ™cinizÉ™ soruÅun."
-
-#~ msgid "yellow pages"
-#~ msgstr "sarı səhifələr"
-
-#~ msgid "Provider dns 1"
-#~ msgstr "Ä°XM dns 1"
-
-#~ msgid "Provider dns 2"
-#~ msgstr "Ä°XM dns 2"
-
-#~ msgid "How do you want to connect to the Internet?"
-#~ msgstr "Ä°nternetÉ™ necÉ™ baÄlanmaq istÉ™yirsiniz?"
diff --git a/perl-install/share/po/b_dump_strings.pm b/perl-install/share/po/b_dump_strings.pm
deleted file mode 100644
index f29275ecd..000000000
--- a/perl-install/share/po/b_dump_strings.pm
+++ /dev/null
@@ -1,113 +0,0 @@
-package b_dump_strings;
-
-use B qw(minus_c save_BEGINs peekop class walkoptree walkoptree_exec
- main_start main_root cstring sv_undef);
-
-BEGIN { open OUT, ">$ENV{OUTFILE}" }
-
-sub B::CV::debug {
- my ($sv) = @_;
- B::walkoptree_exec($sv->START, "debug");
-}
-
-sub B::OP::debug {
- my ($op) = @_;
-# print "OP ", class($op), " ", $op->name, "\n";
- eval {
- if ($op->name eq 'entersub') {
- $op2 = $op->first->first or return;
-
- if ($op2->name eq 'pushmark') {
- my $s = $op2->sibling->sv->PV;
- my $l;
- for ($l = $op2->sibling; ${$l->sibling}; $l = $l->sibling) {}
-
- $s =~ s/"/\\"/g;
- if ($l->first->sv->NAME eq '_') {
- print OUT qq($::pkg _("$s")\n);
- }
- }
- }
- };
-}
-sub B::RV::debug {
- my ($op) = @_;
- $op->RV->debug;
-}
-sub B::SVOP::debug {
- my ($op) = @_;
- $op->sv->debug;
-}
-sub B::PV::debug {
- my ($sv) = @_;
-# print "STRING ", $sv->PV, "\n";
-}
-sub B::IV::debug {
- my ($sv) = @_;
-# printf "IV\t%d\n", $sv->IV;
-}
-sub B::NV::debug {
- my ($sv) = @_;
-# printf "NV\t%s\n", $sv->NV;
-}
-sub B::PVIV::debug {
- my ($sv) = @_;
-# printf "IV\t%d\n", $sv->IV;
-}
-sub B::PVNV::debug {
- my ($sv) = @_;
-# printf "NV\t%s\n", $sv->NV;
-}
-sub B::AV::debug {
- my ($av) = @_;
-# print "ARRAY\n";
-}
-sub B::GV::debug {
- my ($gv) = @_;
-# printf "GV %s::%s\n", $gv->STASH->NAME, $gv->SAFENAME;
-}
-sub B::NULL::debug {
-# print "NUL\n";
-}
-sub B::SPECIAL::debug {}
-
-sub B::SV::debug { die "SV"; }
-sub B::BM::debug {
- die "BM";
-}
-sub B::PVLV::debug { die "PVLV"; }
-
-sub B::GV::pgv {
- my ($gv) = @_;
-# print $gv->NAME, "\n";
- $gv->SV->debug;
- $gv->HV->debug;
- $gv->AV->debug;
- $gv->CV->debug;
-}
-
-
-
-
-sub search {
-
-foreach my $pkg (grep { /^[a-z]/ && !/^(diagnostics|strict|attributes|main)/ } grep { /\w+::$/ } keys %main::) {
- $::pkg = $pkg;
- foreach (keys %{$main::{$pkg}}) {
- print STDERR "$pkg $_ XXXXX\n";
- local *f = *{$main::{$pkg}{$_}};
- B::svref_2object(\*f)->pgv;
- }
-}
-print STDERR "DONE\n";
-}
-
-CHECK { search() }
-INIT { exit 0 }
-
-#use lib qw(. /home/pixel/gi/perl-install);
-##use commands;
-#require '/tmp/t.pl';
-#search();
-
-1;
diff --git a/perl-install/share/po/be.po b/perl-install/share/po/be.po
deleted file mode 100644
index 617c278c6..000000000
--- a/perl-install/share/po/be.po
+++ /dev/null
@@ -1,13566 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 1999 MandrakeSoft.
-# Alexander Bokovoy <ab@avilink.net>, 2000
-# Maryia Davidouskaia <maryia@scientist.com>, 2000
-msgid ""
-msgstr ""
-"Project-Id-Version: DrakX VERSION\n"
-"POT-Creation-Date: 2002-03-11 18:29+0100\n"
-"PO-Revision-Date: 2000-09-24 12:30 +0100\n"
-"Last-Translator: Alexander Bokovoy <ab@avilink.net>\n"
-"Language-Team: be\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=windows-1251\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../Xconfigurator.pm_.c:242
-msgid "Configure all heads independently"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:243
-msgid "Use Xinerama extension"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:246
-#, fuzzy, c-format
-msgid "Configure only card \"%s\" (%s)"
-msgstr "Źąķōićóšąāąöü ģąž źąšņó"
-
-#: ../../Xconfigurator.pm_.c:249
-#, fuzzy
-msgid "Multi-head configuration"
-msgstr "÷ūņąķķå ķąńņšīéźi"
-
-#: ../../Xconfigurator.pm_.c:250
-msgid ""
-"Your system support multiple head configuration.\n"
-"What do you want to do?"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:261
-msgid "Graphic card"
-msgstr "Āiäżąźąšņą"
-
-#: ../../Xconfigurator.pm_.c:262
-msgid "Select a graphic card"
-msgstr "Ąį˙šūöå āiäżąźąšņó"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "Choose a X server"
-msgstr "Ąį˙šūöå X ńåšāåš"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "X server"
-msgstr "X ńåšāåš"
-
-#: ../../Xconfigurator.pm_.c:293
-#, fuzzy
-msgid "Choose a X driver"
-msgstr "Ąį˙šūöå X ńåšāåš"
-
-#: ../../Xconfigurator.pm_.c:293
-#, fuzzy
-msgid "X driver"
-msgstr "X ńåšāåš"
-
-#: ../../Xconfigurator.pm_.c:360 ../../Xconfigurator.pm_.c:366
-#: ../../Xconfigurator.pm_.c:416 ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s"
-msgstr "Ńåšāåš XFree86 %s"
-
-#: ../../Xconfigurator.pm_.c:363
-msgid "Which configuration of XFree do you want to have?"
-msgstr "ßźóž źąķōićóšąöūž XFree āū ęąäąåöå ąņšūģąöü?"
-
-#: ../../Xconfigurator.pm_.c:374
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"Ļąäņšūģźą 3D-ļąńźąšżķķ˙ ¢ Āąųąé ā³äżąźąšöå āūźąķąķą ņīėüź³ ¢ XFree %s.\n"
-"XFree %s ģīęą āūźąšūńņī¢āąöü ņīėüź³ 2D-ļąńźąšżķķå äė˙ ćżņąé ā³äżąźąšņū."
-
-#: ../../Xconfigurator.pm_.c:376 ../../Xconfigurator.pm_.c:409
-#, c-format
-msgid "Your card can have 3D hardware acceleration support with XFree %s."
-msgstr ""
-"Āąųą āiäżąźąšņą ģīęą ģåöü 3D-ļąńźąšżķķå, ˙źīå ļąäņšūģėiāąåööą ņīėüźi XFree %"
-"s."
-
-#: ../../Xconfigurator.pm_.c:378 ../../Xconfigurator.pm_.c:411
-#: ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s with 3D hardware acceleration"
-msgstr "XFree %s ē ļąäņšūģźąé 3D-ļąńźąšżķķ˙"
-
-#: ../../Xconfigurator.pm_.c:386 ../../Xconfigurator.pm_.c:400
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER."
-msgstr ""
-"Āąųą āiäżąźąšņą ģīęą ģåöü 3D-ļąńźąšżķķå, ˙źīå ļąäņšūģėiāąåööą ņīėüźi XFree %"
-"s.\n"
-"ĢĄÉÖÅ ĶĄ ĀĄĒÅ, ŲŅĪ ĆŻŅĄ ŻŹŃĻÅŠŪĢÅĶŅĄĖÜĶĄß ĻĄÄŅŠŪĢŹĄ I ĢĪĘĄ ĻŠŪĀÅŃÖI ÄĄ\n"
-"ĒĄĀIŃĄĶĶß ĀĄŲĄĆĄ ŹĄĢĻ'ŽŅŻŠÓ."
-
-#: ../../Xconfigurator.pm_.c:388 ../../Xconfigurator.pm_.c:402
-#, c-format
-msgid "XFree %s with EXPERIMENTAL 3D hardware acceleration"
-msgstr "XFree %s ē żźńļåšūģåķņąėüķąé ļąäņšūģźąé 3D-ļąńźąšżķķ˙"
-
-#: ../../Xconfigurator.pm_.c:397
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"Āąųą āiäżąźąšņą ģīęą ģåöü 3D-ļąńźąšżķķå, ˙źīå ļąäņšūģėiāąåööą ņīėüźi XFree %"
-"s.\n"
-"ĢĄÉÖÅ ĶĄ ĀĄĒÅ, ŲŅĪ ĆŻŅĄ ŻŹŃĻÅŠŪĢÅĶŅĄĖÜĶĄß ĻĄÄŅŠŪĢŹĄ I ĢĪĘĄ ĻŠŪĀÅŃÖI ÄĄ\n"
-"ĒĄĀIŃĄĶĶß ĀĄŲĄĆĄ ŹĄĢĻ'ŽŅŻŠÓ. Āąųą āiäżąźąšņą ļąäņšūģėiāąåööą XFree %s, ˙źi\n"
-"ėåļåé ļąäņšūģėiāąå źąšņū ē 2D-ļąńźąšżķķåģ."
-
-#: ../../Xconfigurator.pm_.c:417
-msgid "Xpmac (installation display driver)"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:421
-msgid "XFree configuration"
-msgstr "Ķąńņšīéźą XFree"
-
-#: ../../Xconfigurator.pm_.c:496
-msgid "Select the memory size of your graphic card"
-msgstr "Ļąēķą÷öå ļąģåš āiäżąļąģ˙öi"
-
-#: ../../Xconfigurator.pm_.c:550
-msgid "Choose options for server"
-msgstr "Ąį˙šūöå äąäąņźīāū˙ ķąńņšīéźi äė˙ ńåšāåšą"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Choose a monitor"
-msgstr "Ąį˙šūöå ģąķiņīš"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Monitor"
-msgstr "Ģąķiņīš"
-
-#: ../../Xconfigurator.pm_.c:577
-msgid ""
-"The two critical parameters are the vertical refresh rate, which is the "
-"rate\n"
-"at which the whole screen is refreshed, and most importantly the horizontal\n"
-"sync rate, which is the rate at which scanlines are displayed.\n"
-"\n"
-"It is VERY IMPORTANT that you do not specify a monitor type with a sync "
-"range\n"
-"that is beyond the capabilities of your monitor: you may damage your "
-"monitor.\n"
-" If in doubt, choose a conservative setting."
-msgstr ""
-"Äāą źšūņū÷ķūõ ļąšąģåņšū - ćżņą ÷ąńö³ķ˙ āåšņūźąėüķąé šąēćīšņźi, öi\n"
-"÷ąńö³ķ˙ ąäķą¢ėåķķ˙ ¢ń˙ćī żźšąķó, ą ņąźńąģą įīėåé āąęķū ļąšąģåņš -\n"
-"÷ąńö³ķ˙ ćąšūēąķņąėüķąé ńiķõšąķiēąöūi šąēćīšņźi, öi ÷ąńö³ķ˙ āūāąäó\n"
-"šąäźī¢ żźšąķó.\n"
-"\n"
-"ĀÅĖÜĢI ĀĄĘĶĄ, źąį ąįšąķū āąģi ģąķiņīš ģå¢ ÷ąńö³ķž ńiķõšąķiēąöūi, ˙źą˙\n"
-"ķå ļåšąāūųąå ōąźņū÷ķū˙ ģąć÷ūģąńöi āąųąćą ģąķiņīšó: ó ļšīöiėåćėūģ āūļąäźó\n"
-"āū ģīęąöå ńąļńąāąöü ģąķiņīš.\n"
-"Źąėi āū ńóģķ˙āąåöåń˙, ąį˙šūöå źąķńåšāąņū¢ķū˙ ķąńņšīéźi."
-
-#: ../../Xconfigurator.pm_.c:584
-msgid "Horizontal refresh rate"
-msgstr "׹ńö³ķ˙ ćąšūēąķņąėüķūé šąēćīšņźi"
-
-#: ../../Xconfigurator.pm_.c:585
-msgid "Vertical refresh rate"
-msgstr "׹ńö³ķ˙ āåšņūźąėüķąé šąēćīšņźi"
-
-#: ../../Xconfigurator.pm_.c:622
-msgid "Monitor not configured"
-msgstr "Ģąķiņīš ļąźóėü ķå ķąńņšīåķū"
-
-#: ../../Xconfigurator.pm_.c:625
-msgid "Graphic card not configured yet"
-msgstr "Āiäżąźąšņą ˙ų÷ż ķå ąäźąķōićóšąāąķą"
-
-#: ../../Xconfigurator.pm_.c:628
-msgid "Resolutions not chosen yet"
-msgstr "Ļąģåšū żźšąķó ˙ų÷ż ķå ļąēķą÷ąķū"
-
-#: ../../Xconfigurator.pm_.c:646
-msgid "Do you want to test the configuration?"
-msgstr "Öi ęąäąåöå ļšąņżńöišąāąöü ķąńņšīéźi?"
-
-#: ../../Xconfigurator.pm_.c:650
-msgid "Warning: testing this graphic card may freeze your computer"
-msgstr "Ļąļ˙šżäęąķķå: ņżńöišąāąķķå ķą ćżņąé āiäżąźąšöå ķåį˙ńļå÷ķą"
-
-#: ../../Xconfigurator.pm_.c:653
-msgid "Test of the configuration"
-msgstr "Ļšąāåšźą ļąšąģåņšą¢ ķąńņšīéźi"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid ""
-"\n"
-"try to change some parameters"
-msgstr ""
-"\n"
-"ļąńļšąįóéöå ēģ˙ķiöü ķåźąņīšū˙ ļąšąģåņšū"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid "An error has occurred:"
-msgstr "Ļąģūėźą:"
-
-#: ../../Xconfigurator.pm_.c:731
-#, c-format
-msgid "Leaving in %d seconds"
-msgstr "Ēąńņąėīń˙ %d ńåźóķäą¢"
-
-#: ../../Xconfigurator.pm_.c:742
-msgid "Is this the correct setting?"
-msgstr "Ćżņą äąźėąäķū˙ ļąšąģåņšū ķąńņšīéźi?"
-
-#: ../../Xconfigurator.pm_.c:751
-msgid "An error has occurred, try to change some parameters"
-msgstr "Ąņšūģąķą ļąģūėźą, ļąńļšąįóéöå ēģ˙ķiöü ļąšąģåņšū"
-
-#: ../../Xconfigurator.pm_.c:822
-msgid "Resolution"
-msgstr "Ļąģåšū żźšąķó"
-
-#: ../../Xconfigurator.pm_.c:874
-msgid "Choose the resolution and the color depth"
-msgstr "Āūįąš ļąģåšą¢ żźšąķó i ćėūįiķi źīėåšó"
-
-#: ../../Xconfigurator.pm_.c:876
-#, c-format
-msgid "Graphic card: %s"
-msgstr "Āiäżąźąšņą: %s"
-
-#: ../../Xconfigurator.pm_.c:877
-#, c-format
-msgid "XFree86 server: %s"
-msgstr "Ńåšāåš XFree86: %s"
-
-#: ../../Xconfigurator.pm_.c:891 ../../diskdrake/interactive.pm_.c:259
-#: ../../install_steps_interactive.pm_.c:208
-#, fuzzy
-msgid "More"
-msgstr "Ļåšąķīń"
-
-#: ../../Xconfigurator.pm_.c:891 ../../install_gtk.pm_.c:84
-#: ../../install_steps_gtk.pm_.c:328 ../../interactive.pm_.c:127
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_http.pm_.c:104
-#: ../../interactive_newt.pm_.c:170 ../../interactive_stdio.pm_.c:141
-#: ../../interactive_stdio.pm_.c:142 ../../my_gtk.pm_.c:686
-#: ../../my_gtk.pm_.c:1019 ../../my_gtk.pm_.c:1041
-#: ../../standalone/drakbackup_.c:2298 ../../standalone/drakbackup_.c:2369
-#: ../../standalone/drakbackup_.c:2385
-msgid "Ok"
-msgstr "Īź"
-
-#: ../../Xconfigurator.pm_.c:893 ../../network/netconnect.pm_.c:169
-#: ../../printerdrake.pm_.c:2470 ../../standalone/draknet_.c:275
-#: ../../standalone/draknet_.c:278
-#, fuzzy
-msgid "Expert Mode"
-msgstr "Żźńļåšņ"
-
-#: ../../Xconfigurator.pm_.c:894
-msgid "Show all"
-msgstr "Ļąźąēąöü óńø"
-
-#: ../../Xconfigurator.pm_.c:939
-msgid "Resolutions"
-msgstr "Ļąģåšū żźšąķó"
-
-#: ../../Xconfigurator.pm_.c:1509
-#, c-format
-msgid "Keyboard layout: %s\n"
-msgstr "Ņūļ źėąāi˙ņóšū: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1510
-#, c-format
-msgid "Mouse type: %s\n"
-msgstr "Ņūļ ģūųū: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1511
-#, c-format
-msgid "Mouse device: %s\n"
-msgstr "Ģūų: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1512
-#, c-format
-msgid "Monitor: %s\n"
-msgstr "Ģąķiņīš: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1513
-#, c-format
-msgid "Monitor HorizSync: %s\n"
-msgstr "׹ńö³ķ˙ ćąš.šąēć. ģąķiņīšó: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1514
-#, c-format
-msgid "Monitor VertRefresh: %s\n"
-msgstr "׹ńö³ķ˙ āåšņ.šąēć. ģąķiņīšó: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1515
-#, c-format
-msgid "Graphic card: %s\n"
-msgstr "Āiäżąźąšņą: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1516
-#, fuzzy, c-format
-msgid "Graphic card identification: %s\n"
-msgstr "Āiäżąźąšņą: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1517
-#, c-format
-msgid "Graphic memory: %s kB\n"
-msgstr "Āiäżąļąģ˙öü: %s Źį\n"
-
-#: ../../Xconfigurator.pm_.c:1519
-#, c-format
-msgid "Color depth: %s\n"
-msgstr "Ļąšąģåņšū ćėūįiķi źīėåšó: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1520
-#, c-format
-msgid "Resolution: %s\n"
-msgstr "Ļąģåšū żźšąķó: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1522
-#, c-format
-msgid "XFree86 server: %s\n"
-msgstr "Ńåšāåš XFree86: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1523
-#, c-format
-msgid "XFree86 driver: %s\n"
-msgstr "Ńåšāåš XFree86: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1541
-msgid "Preparing X-Window configuration"
-msgstr "Ļąäšūõņī¢źą ķąńņšīéźi X-Window"
-
-#: ../../Xconfigurator.pm_.c:1561
-msgid "What do you want to do?"
-msgstr "Ųņī āū ęąäąåöå ēšąįiöü?"
-
-#: ../../Xconfigurator.pm_.c:1566
-msgid "Change Monitor"
-msgstr "Ēģ˙ķiöü ģąķiņīš"
-
-#: ../../Xconfigurator.pm_.c:1567
-msgid "Change Graphic card"
-msgstr "Ēģ˙ķiöü āiäżąźąšņó"
-
-#: ../../Xconfigurator.pm_.c:1570
-msgid "Change Server options"
-msgstr "Ēģ˙ķiöü ķąńņšīéźi Ńåšāåšó"
-
-#: ../../Xconfigurator.pm_.c:1571
-msgid "Change Resolution"
-msgstr "Ēģ˙ķiöü ļąģåšū żźšąķó"
-
-#: ../../Xconfigurator.pm_.c:1572
-msgid "Show information"
-msgstr "Iķōąšģąöū˙"
-
-#: ../../Xconfigurator.pm_.c:1573
-msgid "Test again"
-msgstr "Ļšąāåšūöü ˙ų÷ż šąē"
-
-#: ../../Xconfigurator.pm_.c:1574 ../../printerdrake.pm_.c:2473
-#: ../../standalone/logdrake_.c:225
-msgid "Quit"
-msgstr "Āūõąä"
-
-#: ../../Xconfigurator.pm_.c:1582
-#, c-format
-msgid ""
-"Keep the changes?\n"
-"Current configuration is:\n"
-"\n"
-"%s"
-msgstr ""
-"Ö³ ęąäąåöå Āū ēąõąāąöü ēģ˙ķåķķ³?\n"
-"Į˙ćó÷ą˙ źąķō³ćóšąöū˙:\n"
-"\n"
-"%s"
-
-#: ../../Xconfigurator.pm_.c:1603
-msgid "X at startup"
-msgstr "Ēąļóńź X ļšū ńņąšöå ńińņżģū"
-
-#: ../../Xconfigurator.pm_.c:1604
-msgid ""
-"I can set up your computer to automatically start X upon booting.\n"
-"Would you like X to start when you reboot?"
-msgstr ""
-"Ģīęķą ķąńņšīiöü ńińņżģó äė˙ ą¢ņąģąņū÷ķąćą ēąļóńźó X ļąńė˙ ńņąšņó ńińņżģū.\n"
-"Ęąäąåöå, źąį X ńņąšņąāą¢ ļšū šżńņąšöå?"
-
-#: ../../Xconfigurator.pm_.c:1610
-#, c-format
-msgid "Please relog into %s to activate the changes"
-msgstr "Źąėi ėąńźą, ļåšąéäēiöå ¢ %s äė˙ ąźņūāąöūi ēģ˙ķåķķ˙¢"
-
-#: ../../Xconfigurator.pm_.c:1625
-msgid "Please log out and then use Ctrl-Alt-BackSpace"
-msgstr "Źąėi ėąńźą, āūéäēiöå, ą ļīņūģ ńźąšūńņąéöå Ctrl-Alt-BackSpace"
-
-#: ../../Xconfigurator_consts.pm_.c:6
-msgid "256 colors (8 bits)"
-msgstr "256 źīėåšą¢ (8 įiņą¢)"
-
-#: ../../Xconfigurator_consts.pm_.c:7
-msgid "32 thousand colors (15 bits)"
-msgstr "32 ņūń˙÷ū źīėåšą¢ (15 įiņą¢)"
-
-#: ../../Xconfigurator_consts.pm_.c:8
-msgid "65 thousand colors (16 bits)"
-msgstr "65 ņūń˙÷ źīėåšą¢ (16 įiņą¢)"
-
-#: ../../Xconfigurator_consts.pm_.c:9
-msgid "16 million colors (24 bits)"
-msgstr "16 ģiėüøķą¢ źīėåšą¢ (24 įiņū)"
-
-#: ../../Xconfigurator_consts.pm_.c:10
-msgid "4 billion colors (32 bits)"
-msgstr "4 ģiėi˙šäą źīėåšą¢ (24 įiņū)"
-
-#: ../../Xconfigurator_consts.pm_.c:113
-msgid "256 kB"
-msgstr "256 Źį"
-
-#: ../../Xconfigurator_consts.pm_.c:114
-msgid "512 kB"
-msgstr "512 Źį"
-
-#: ../../Xconfigurator_consts.pm_.c:115
-msgid "1 MB"
-msgstr "1 Ģį"
-
-#: ../../Xconfigurator_consts.pm_.c:116
-msgid "2 MB"
-msgstr "2 Ģį"
-
-#: ../../Xconfigurator_consts.pm_.c:117
-msgid "4 MB"
-msgstr "4 Ģį"
-
-#: ../../Xconfigurator_consts.pm_.c:118
-msgid "8 MB"
-msgstr "8 Ģį"
-
-#: ../../Xconfigurator_consts.pm_.c:119
-#, fuzzy
-msgid "16 MB"
-msgstr "1 Ģį"
-
-#: ../../Xconfigurator_consts.pm_.c:120
-#, fuzzy
-msgid "32 MB"
-msgstr "2 Ģį"
-
-#: ../../Xconfigurator_consts.pm_.c:121
-#, fuzzy
-msgid "64 MB or more"
-msgstr "16 Ģį öi įīėåé"
-
-#: ../../Xconfigurator_consts.pm_.c:129
-msgid "Standard VGA, 640x480 at 60 Hz"
-msgstr "Ńņąķäąšņķū VGA, 640x480 ļšū 60 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:130
-msgid "Super VGA, 800x600 at 56 Hz"
-msgstr "Super VGA, 800x600 ļšū 56 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:131
-msgid "8514 Compatible, 1024x768 at 87 Hz interlaced (no 800x600)"
-msgstr "Ńóģåńķū ē 8514, 1024x768 ļšū 87 Hz ļšąēšąäźīāą (ķ˙ģą 800x600)"
-
-#: ../../Xconfigurator_consts.pm_.c:132
-msgid "Super VGA, 1024x768 at 87 Hz interlaced, 800x600 at 56 Hz"
-msgstr "Super VGA, 1024x768 ļši 87 Hz ļšąēšąäźīāą, 800x600 ļšū 56 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:133
-msgid "Extended Super VGA, 800x600 at 60 Hz, 640x480 at 72 Hz"
-msgstr "Extended Super VGA, 800x600 ļšū 60 Hz, 640x480 ļšū 72 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:134
-msgid "Non-Interlaced SVGA, 1024x768 at 60 Hz, 800x600 at 72 Hz"
-msgstr "Ķåļšąēšąäźīāą SVGA, 1024x768 ļšū 60 Hz, 800x600 ļšū 72 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:135
-msgid "High Frequency SVGA, 1024x768 at 70 Hz"
-msgstr "Āūńīź÷ąńö³ķøāū SVGA, 1024x768 ļšū 70 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:136
-msgid "Multi-frequency that can do 1280x1024 at 60 Hz"
-msgstr "Ųģąņ÷ąńö³ķøāū, ˙źi ēäīėüķū ļąäņšūģėiāąöü 1280x1024 ļšū 60 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:137
-msgid "Multi-frequency that can do 1280x1024 at 74 Hz"
-msgstr "Ųģąņ÷ąńö³ķøāū, ˙źi ēäīėüķū ļąäņšūģėiāąöü 1280x1024 ļšū 74 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:138
-msgid "Multi-frequency that can do 1280x1024 at 76 Hz"
-msgstr "Ųģąņ÷ąńö³ķøāū, ˙źi ēäīėüķū ļąäņšūģėiāąöü 1280x1024 ļšū 76 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:139
-msgid "Monitor that can do 1600x1200 at 70 Hz"
-msgstr "Ģąķiņīš, ˙źi ēäīėüķū ļąäņšūģėiāąöü 1600x1200 ļšū 70 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:140
-msgid "Monitor that can do 1600x1200 at 76 Hz"
-msgstr "Ģąķiņīš, ˙źi ēäīėüķū ļąäņšūģėiāąöü 1600x1200 ļšū 76 Hz"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141
-msgid "First sector of boot partition"
-msgstr "Ļåšųū ńåźņąš ēąćšóēą÷ķąćą šąēäēåėó"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141 ../../any.pm_.c:218
-msgid "First sector of drive (MBR)"
-msgstr "Ļåšųū ńåźņąš ļšūėąäū (MBR)"
-
-#: ../../any.pm_.c:120
-msgid "SILO Installation"
-msgstr "Óńņąė˙āąķķå SILO"
-
-#: ../../any.pm_.c:121 ../../any.pm_.c:134
-msgid "Where do you want to install the bootloader?"
-msgstr "Źóäū āū ęąäąåöå ¢ńņąė˙āąöü ļą÷ąņźīāū ēąćšóē÷ūź?"
-
-#: ../../any.pm_.c:133
-msgid "LILO/grub Installation"
-msgstr "Óńņąė˙āąķķå LILO/GRUB"
-
-#: ../../any.pm_.c:145 ../../any.pm_.c:159
-msgid "SILO"
-msgstr "SILO"
-
-#: ../../any.pm_.c:147
-msgid "LILO with text menu"
-msgstr ""
-
-#: ../../any.pm_.c:148 ../../any.pm_.c:159
-msgid "LILO with graphical menu"
-msgstr ""
-
-#: ../../any.pm_.c:151
-msgid "Grub"
-msgstr "Grub"
-
-#: ../../any.pm_.c:155
-msgid "Boot from DOS/Windows (loadlin)"
-msgstr ""
-
-#: ../../any.pm_.c:157 ../../any.pm_.c:159
-msgid "Yaboot"
-msgstr "Yaboot"
-
-#: ../../any.pm_.c:166 ../../any.pm_.c:198
-msgid "Bootloader main options"
-msgstr "Ćąėī¢ķū˙ īļöūi ļą÷ąņźīāąćą ēąćšóē÷ūźó"
-
-#: ../../any.pm_.c:167 ../../any.pm_.c:199
-#, fuzzy
-msgid "Bootloader to use"
-msgstr "Ćąėī¢ķū˙ īļöūi ļą÷ąņźīāąćą ēąćšóē÷ūźó"
-
-#: ../../any.pm_.c:169
-msgid "Bootloader installation"
-msgstr "Óńņąė˙āąķķå ēąćšóē÷ūźó"
-
-#: ../../any.pm_.c:171 ../../any.pm_.c:201
-msgid "Boot device"
-msgstr "Ēąćšóēą÷ķą˙ ļšūėąäą"
-
-#: ../../any.pm_.c:172
-msgid "LBA (doesn't work on old BIOSes)"
-msgstr "LBA (ķå ļšąöóå ļšū ńņąšūõ āåšńi˙õ BIOS)"
-
-#: ../../any.pm_.c:173
-msgid "Compact"
-msgstr "Źąģļąźņķą"
-
-#: ../../any.pm_.c:173
-msgid "compact"
-msgstr "źąģļąźņķą"
-
-#: ../../any.pm_.c:174 ../../any.pm_.c:298
-msgid "Video mode"
-msgstr "Āiäżą-šżęūģ"
-
-#: ../../any.pm_.c:176
-msgid "Delay before booting default image"
-msgstr "Ēąņšūģźą ļåšąä ēąćšóēźąé āīįšąēó ļą äąģą¢ėåķķž"
-
-#: ../../any.pm_.c:178 ../../any.pm_.c:796
-#: ../../install_steps_interactive.pm_.c:1115 ../../network/modem.pm_.c:48
-#: ../../printerdrake.pm_.c:708 ../../printerdrake.pm_.c:806
-#: ../../standalone/draknet_.c:625
-msgid "Password"
-msgstr "Ļąšīėü"
-
-#: ../../any.pm_.c:179 ../../any.pm_.c:797
-#: ../../install_steps_interactive.pm_.c:1116
-msgid "Password (again)"
-msgstr "Ļą¢ņąšūöå ļąšīėü"
-
-#: ../../any.pm_.c:180
-msgid "Restrict command line options"
-msgstr "Ąįģåęąāąķķå īļöū˙¢ źąģąķäķąćą šąäźą"
-
-#: ../../any.pm_.c:180
-msgid "restrict"
-msgstr "ąįģåęąāąķķå"
-
-#: ../../any.pm_.c:182
-msgid "Clean /tmp at each boot"
-msgstr "Ą÷ūų÷ąöü /tmp ļšū źīęķąé ēąćšóēöū"
-
-#: ../../any.pm_.c:183
-#, c-format
-msgid "Precise RAM size if needed (found %d MB)"
-msgstr "Ļąēķą÷öå äąźėąäķū ļąģåš RAM (ēķīéäēåķą %d Mį)"
-
-#: ../../any.pm_.c:185
-msgid "Enable multi profiles"
-msgstr "Äąńņóļķą ųģąņ ļšīōiė˙¢"
-
-#: ../../any.pm_.c:189
-msgid "Give the ram size in MB"
-msgstr "Ļąēķą÷öå ļąģåš RAM ó Mį"
-
-#: ../../any.pm_.c:191
-msgid ""
-"Option ``Restrict command line options'' is of no use without a password"
-msgstr ""
-"Īļöū˙ ``Ąįģåęąāąķķå īļöū˙¢ źąģąķäķąćą šąäźó'' ķå āūźąšūńņī¢āąåööą įåē ļąšīė˙"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../diskdrake/interactive.pm_.c:1135
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "Please try again"
-msgstr "Ļąńļšąįóéöå ˙ų÷ż šąē"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "The passwords do not match"
-msgstr "Ļąšīėi ķå ńóļąäąžöü"
-
-#: ../../any.pm_.c:200
-msgid "Init Message"
-msgstr ""
-
-#: ../../any.pm_.c:202
-msgid "Open Firmware Delay"
-msgstr ""
-
-#: ../../any.pm_.c:203
-msgid "Kernel Boot Timeout"
-msgstr ""
-
-#: ../../any.pm_.c:204
-msgid "Enable CD Boot?"
-msgstr ""
-
-#: ../../any.pm_.c:205
-msgid "Enable OF Boot?"
-msgstr ""
-
-#: ../../any.pm_.c:206
-#, fuzzy
-msgid "Default OS?"
-msgstr "Ļą äąģą¢ėåķķž"
-
-#: ../../any.pm_.c:240
-msgid ""
-"You decided to install the bootloader on a partition.\n"
-"This implies you already have a bootloader on the hard drive you boot (eg: "
-"System Commander).\n"
-"\n"
-"On which drive are you booting?"
-msgstr ""
-
-#: ../../any.pm_.c:255
-msgid ""
-"Here are the different entries.\n"
-"You can add some more or change the existing ones."
-msgstr ""
-"Ó ģåķž ģąžööą ķąńņóļķū˙ ļóķźņū.\n"
-"Āū ģīęąöå äąäąöü ˙ų÷ż, ąėüįī ēģ˙ķiöü ińķóž÷ū˙."
-
-#: ../../any.pm_.c:265 ../../standalone/drakbackup_.c:752
-#: ../../standalone/drakbackup_.c:861 ../../standalone/drakfont_.c:789
-#: ../../standalone/drakfont_.c:826
-msgid "Add"
-msgstr "Äąäąöü"
-
-#: ../../any.pm_.c:265 ../../any.pm_.c:784 ../../diskdrake/hd_gtk.pm_.c:153
-#: ../../diskdrake/removable.pm_.c:27 ../../diskdrake/smbnfs_gtk.pm_.c:86
-#: ../../interactive_http.pm_.c:153
-msgid "Done"
-msgstr "Ēšīįėåķą"
-
-#: ../../any.pm_.c:265
-#, fuzzy
-msgid "Modify"
-msgstr "Ēģ˙ķiöü RAID"
-
-#: ../../any.pm_.c:273
-msgid "Which type of entry do you want to add?"
-msgstr "ßźi ņūļ ļóķźņą ęąäąåöå äąäąöü?"
-
-#: ../../any.pm_.c:274 ../../standalone/drakbackup_.c:895
-msgid "Linux"
-msgstr "Linux"
-
-#: ../../any.pm_.c:274
-msgid "Other OS (SunOS...)"
-msgstr "Iķųą˙ ĄŃ (SunOS,...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (MacOS...)"
-msgstr "Iķųą˙ ĄŃ (MacOS,...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (windows...)"
-msgstr "Iķųą˙ ĄŃ (windows...)"
-
-#: ../../any.pm_.c:294
-msgid "Image"
-msgstr "Āīįšąē"
-
-#: ../../any.pm_.c:295 ../../any.pm_.c:306
-msgid "Root"
-msgstr "Root"
-
-#: ../../any.pm_.c:296 ../../any.pm_.c:325
-msgid "Append"
-msgstr "Äąėó÷ūöü"
-
-#: ../../any.pm_.c:300
-msgid "Initrd"
-msgstr "Initrd"
-
-#: ../../any.pm_.c:301
-msgid "Read-write"
-msgstr "×ūņąķķå-ēąļiń"
-
-#: ../../any.pm_.c:308
-msgid "Table"
-msgstr "Ņąįėiöą"
-
-#: ../../any.pm_.c:309
-msgid "Unsafe"
-msgstr "Ķåķąäēåéķą"
-
-#: ../../any.pm_.c:316 ../../any.pm_.c:321 ../../any.pm_.c:324
-msgid "Label"
-msgstr "Ģåņźą"
-
-#: ../../any.pm_.c:318 ../../any.pm_.c:329
-msgid "Default"
-msgstr "Ļą äąģą¢ėåķķž"
-
-#: ../../any.pm_.c:326
-#, fuzzy
-msgid "Initrd-size"
-msgstr "Initrd"
-
-#: ../../any.pm_.c:328
-msgid "NoVideo"
-msgstr ""
-
-#: ../../any.pm_.c:336
-msgid "Remove entry"
-msgstr "Āūäąėiöü ēąļiń"
-
-#: ../../any.pm_.c:339
-msgid "Empty label not allowed"
-msgstr "Ļóńņą˙ ģåņźą ķå äąēāąė˙åööą"
-
-#: ../../any.pm_.c:340
-msgid "You must specify a kernel image"
-msgstr ""
-
-#: ../../any.pm_.c:340
-#, fuzzy
-msgid "You must specify a root partition"
-msgstr "Āū ļąāiķķū ģåöü šąēäēåė swap"
-
-#: ../../any.pm_.c:341
-msgid "This label is already used"
-msgstr "Ćżņą˙ ģåņźą ¢ęī āūźąšūńņī¢āąåööą"
-
-#: ../../any.pm_.c:656
-#, c-format
-msgid "Found %s %s interfaces"
-msgstr "Ēķīéäēåķū %s %s iķņżšōåéńū"
-
-#: ../../any.pm_.c:657
-msgid "Do you have another one?"
-msgstr "Öi øńöü ó āąń iķųū?"
-
-#: ../../any.pm_.c:658
-#, c-format
-msgid "Do you have any %s interfaces?"
-msgstr "Öi øńöü ó āąń %s iķņżšōåéń?"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:832 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "No"
-msgstr "Ķå"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:831 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "Yes"
-msgstr "Ņąź"
-
-#: ../../any.pm_.c:661
-msgid "See hardware info"
-msgstr "Ćė. ąļińąķķå ąįńņąė˙āąķķ˙"
-
-#. -PO: the first %s is the card type (scsi, network, sound,...)
-#. -PO: the second is the vendor+model name
-#: ../../any.pm_.c:695
-#, c-format
-msgid "Installing driver for %s card %s"
-msgstr "Óńņąė˙āąķķå äšąéāåšó äė˙ %s źąšņū %s"
-
-#: ../../any.pm_.c:696
-#, c-format
-msgid "(module %s)"
-msgstr "(ģīäóėü %s)"
-
-#. -PO: the %s is the driver type (scsi, network, sound,...)
-#: ../../any.pm_.c:707
-#, c-format
-msgid "Which %s driver should I try?"
-msgstr "ßźi äšąéāåš %s ļąńļšąįąāąöü?"
-
-#: ../../any.pm_.c:715
-#, c-format
-msgid ""
-"In some cases, the %s driver needs to have extra information to work\n"
-"properly, although it normally works fine without. Would you like to "
-"specify\n"
-"extra options for it or allow the driver to probe your machine for the\n"
-"information it needs? Occasionally, probing will hang a computer, but it "
-"should\n"
-"not cause any damage."
-msgstr ""
-"Ó ķåźąņīšūõ āūļąäźąõ %s äšąéāåšó ļąņšżįķą ķåźąņīšą˙ äąäąņźīāą˙ iķōąšģąöū˙,\n"
-"ąėå ēāū÷ąéķą ćżņą ķå ļąņšąįóåööą. Öi ķå ęąäąåöå āū ēąäąöü äė˙ ˙ćī\n"
-"äąäąņźīāū˙ īļöūi, öi äąēāīėiöå äšąéāåšó ļšąņżńöišąāąöü ģąųūķó\n"
-"¢ ļīųóźąõ ķåąįõīäķąé iķōąšģąöūi? Ģąć÷ūģą, ņżńöišąāąķķå ļšūā˙äēå\n"
-"äą ńļūķåķķ˙ źąģļ'žņżšó, ąėå ˙ķī ķi÷īćą ķå ńąļńóå."
-
-#: ../../any.pm_.c:720
-msgid "Autoprobe"
-msgstr "Ą¢ņąļīųóź"
-
-#: ../../any.pm_.c:720
-msgid "Specify options"
-msgstr "Ļąēķą÷öå ļąšąģåņšū"
-
-#: ../../any.pm_.c:725
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Note that any address should be entered with the prefix 0x like '0x123'"
-msgstr ""
-
-#: ../../any.pm_.c:731
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Options are in format ``name=value name2=value2 ...''.\n"
-"For instance, ``io=0x300 irq=7''"
-msgstr ""
-"Āū ķå ģīęąöå ēąäąöü īļöūi ģīäóėž %s.\n"
-"Īļöūi - ó ōąšģąöå ``iģ˙=ēķą÷żķķå iģ˙2=ēķą÷żķķå2 ...''.\n"
-"Ķąļšūźėąä, ``io=0x300 irq=7''"
-
-#: ../../any.pm_.c:734
-msgid "Module options:"
-msgstr "Īļöūi ģīäóėž:"
-
-#: ../../any.pm_.c:745
-#, c-format
-msgid ""
-"Loading module %s failed.\n"
-"Do you want to try again with other parameters?"
-msgstr ""
-"Ēąćšóēźą ģīäóėž %s ķå ļšąéųėą.\n"
-"Ęąäąåöå ļąńļšąįąāąöü ē iķųūģi ļąšąģåņšąģi?"
-
-#: ../../any.pm_.c:761
-msgid "access to X programs"
-msgstr ""
-
-#: ../../any.pm_.c:762
-msgid "access to rpm tools"
-msgstr ""
-
-#: ../../any.pm_.c:763
-msgid "allow \"su\""
-msgstr ""
-
-#: ../../any.pm_.c:764
-msgid "access to administrative files"
-msgstr ""
-
-#: ../../any.pm_.c:769
-#, c-format
-msgid "(already added %s)"
-msgstr "(óęī äąäąäēåķą %s)"
-
-#: ../../any.pm_.c:774
-msgid "This password is too simple"
-msgstr "Ćżņū ļąšīėü ēąķąäņą ļšīńņū"
-
-#: ../../any.pm_.c:775
-msgid "Please give a user name"
-msgstr "Źąėi ėąńźą, óā˙äēiöå iģ˙ źąšūńņąėüķiźó"
-
-#: ../../any.pm_.c:776
-msgid ""
-"The user name must contain only lower cased letters, numbers, `-' and `_'"
-msgstr ""
-"Iģ˙ źąšūńņąėüķiźó ļąāiķķą ēģ˙ų÷ąöü ėiņąšū ņīėüźi ķą ķięķiģ šżćińņšū, \n"
-"ėi÷įū, `-' i `_'"
-
-#: ../../any.pm_.c:777
-msgid "This user name is already added"
-msgstr "Ćżņą iģ˙ źąšūńņąėüķiźó ¢ęī äąäąäēåķą"
-
-#: ../../any.pm_.c:781
-msgid "Add user"
-msgstr "Äąäąöü źąšūńņąėüķiźą"
-
-#: ../../any.pm_.c:782
-#, c-format
-msgid ""
-"Enter a user\n"
-"%s"
-msgstr ""
-"Óā˙äēiöå iģ˙ źąšūńņąėüķiźó\n"
-"%s"
-
-#: ../../any.pm_.c:783
-msgid "Accept user"
-msgstr "Ļšūķ˙öü źąšūńņąėüķiźą"
-
-#: ../../any.pm_.c:794
-msgid "Real name"
-msgstr "Óėąńķąå iģ˙"
-
-#: ../../any.pm_.c:795 ../../printerdrake.pm_.c:707
-#: ../../printerdrake.pm_.c:805
-msgid "User name"
-msgstr "Iģ˙ źąšūńņąėüķiźó:"
-
-#: ../../any.pm_.c:798
-msgid "Shell"
-msgstr "Ąįąėīķźą:"
-
-#: ../../any.pm_.c:800
-msgid "Icon"
-msgstr "Ļiźņąćšąģą"
-
-#: ../../any.pm_.c:828
-msgid "Autologin"
-msgstr "Ą¢ņąģąņū÷ķū ¢āąõīä ó ńińņżģó"
-
-#: ../../any.pm_.c:829
-#, fuzzy
-msgid ""
-"I can set up your computer to automatically log on one user.\n"
-"Do you want to use this feature?"
-msgstr ""
-"Ģīęķą ķąńņšīiöü ńińņżģó äė˙ ą¢ņąģąņū÷ķąćą ¢āąõīäó ¢ ńińņżģó äė˙\n"
-"ąäķąćī źąšūńņąėüķiźą. Źąėi Āū ķå ęąäąåöå ćżņąćą, ķąöińķiöå \"Ąäģåķą\"."
-
-#: ../../any.pm_.c:833
-msgid "Choose the default user:"
-msgstr "Ąį˙šūöå ąńķī¢ķąćą źąšūńņąėüķiźą:"
-
-#: ../../any.pm_.c:834
-msgid "Choose the window manager to run:"
-msgstr "Ąį˙šūöå ģżķżäęąš āīźķą¢:"
-
-#: ../../any.pm_.c:849
-#, fuzzy
-msgid "Please choose a language to use."
-msgstr "Źąėi ėąńźą, ąį˙šūöå ģīāó äė˙ źąšūńņąķķ˙."
-
-#: ../../any.pm_.c:851
-msgid "You can choose other languages that will be available after install"
-msgstr "Āū ģīęąöå ąįšąöü ³ķųū˙ ģīāū, ˙źi˙ įóäóöü äąńņóļķū ļąńė˙ ¢ńņąė˙āąķķ˙"
-
-#: ../../any.pm_.c:863 ../../install_steps_interactive.pm_.c:719
-#: ../../standalone/drakxtv_.c:54
-msgid "All"
-msgstr "Óńø"
-
-#: ../../any.pm_.c:955
-#, fuzzy
-msgid "Allow all users"
-msgstr "Äąäąöü źąšūńņąėüķiźą"
-
-#: ../../any.pm_.c:955 ../../install_steps_interactive.pm_.c:521
-msgid "Custom"
-msgstr "Ļą āūįąšó"
-
-#: ../../any.pm_.c:955
-#, fuzzy
-msgid "No sharing"
-msgstr "׹źąåööą"
-
-#: ../../any.pm_.c:965 ../../network/smbnfs.pm_.c:45
-#, fuzzy, c-format
-msgid "The package %s needs to be installed. Do you want to install it?"
-msgstr "Āūįąš ļąźåņą¢ äė˙ ¢ńņąė˙āąķķ˙"
-
-#: ../../any.pm_.c:968
-msgid "You can export using NFS or Samba. Which one do you want"
-msgstr ""
-
-#: ../../any.pm_.c:976 ../../network/smbnfs.pm_.c:49
-#, c-format
-msgid "Mandatory package %s is missing"
-msgstr ""
-
-#: ../../any.pm_.c:982
-msgid ""
-"Do you want to allow users to export some directories in their home?\n"
-"Allowing this will permit users to simply click on \"Share\" in konqueror "
-"and nautilus.\n"
-"\n"
-"\"Custom\" permit a per-user granularity.\n"
-msgstr ""
-
-#: ../../any.pm_.c:996 ../../bootlook.pm_.c:161
-#: ../../diskdrake/smbnfs_gtk.pm_.c:85 ../../install_steps_gtk.pm_.c:464
-#: ../../install_steps_gtk.pm_.c:522 ../../install_steps_interactive.pm_.c:594
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_stdio.pm_.c:141
-#: ../../my_gtk.pm_.c:687 ../../my_gtk.pm_.c:690 ../../my_gtk.pm_.c:1019
-#: ../../network/netconnect.pm_.c:47 ../../printerdrake.pm_.c:1586
-#: ../../standalone/drakautoinst_.c:204 ../../standalone/drakbackup_.c:2264
-#: ../../standalone/drakbackup_.c:2289 ../../standalone/drakbackup_.c:2310
-#: ../../standalone/drakbackup_.c:2331 ../../standalone/drakbackup_.c:2349
-#: ../../standalone/drakbackup_.c:2397 ../../standalone/drakbackup_.c:2417
-#: ../../standalone/drakbackup_.c:2436 ../../standalone/drakfont_.c:767
-#: ../../standalone/drakgw_.c:721 ../../standalone/draknet_.c:116
-#: ../../standalone/draknet_.c:148 ../../standalone/draknet_.c:290
-#: ../../standalone/draknet_.c:538 ../../standalone/draknet_.c:680
-#: ../../standalone/logdrake_.c:225 ../../standalone/logdrake_.c:512
-#: ../../standalone/tinyfirewall_.c:65
-msgid "Cancel"
-msgstr "Ąäģåķą"
-
-#: ../../any.pm_.c:996
-msgid "Launch userdrake"
-msgstr ""
-
-#: ../../any.pm_.c:998
-msgid ""
-"The per-user sharing uses the group \"fileshare\". \n"
-"You can use userdrake to add a user in this group."
-msgstr ""
-
-#: ../../any.pm_.c:1035
-msgid "Welcome To Crackers"
-msgstr "Ńąšäż÷ķą ēąļšąųąåģ ó Crackers"
-
-#: ../../any.pm_.c:1036
-msgid "Poor"
-msgstr "Ēóń³ģ ńėąįū"
-
-#: ../../any.pm_.c:1037 ../../mouse.pm_.c:31
-msgid "Standard"
-msgstr "Ńņąķäąšņķū"
-
-#: ../../any.pm_.c:1038
-msgid "High"
-msgstr "Āūńīźi"
-
-#: ../../any.pm_.c:1039
-#, fuzzy
-msgid "Higher"
-msgstr "Āūńīźi"
-
-#: ../../any.pm_.c:1040
-msgid "Paranoid"
-msgstr "Ļąšąķąiäąėüķū"
-
-#: ../../any.pm_.c:1043
-msgid ""
-"This level is to be used with care. It makes your system more easy to use,\n"
-"but very sensitive: it must not be used for a machine connected to others\n"
-"or to the Internet. There is no password access."
-msgstr ""
-"Ćżņū óēšīāåķü ķåąįõīäķą āūźąšūńņī¢āąöü ē ąńö˙šīćąé. Ńińņżģą įóäēå ļšąńöåé\n"
-"ó źąšūńņąķķi, ąėå i įīėüų ÷óņķąé: ćżņū óēšīāåķü į˙ńļåźi ķåėüćą "
-"āūźąšūńņī¢āąöü\n"
-"ķą ģąųūķąõ, ˙źi˙ äąėó÷ąķū äą ńåņźi öi äą Internet. Óāąõīä ķå ąįąšīķåķū "
-"ļąšīėåģ."
-
-#: ../../any.pm_.c:1046
-msgid ""
-"Password are now enabled, but use as a networked computer is still not "
-"recommended."
-msgstr ""
-"Ļąšīėü ēąšąē óźėž÷ąķū, ąėå āūźąšūńņąķķå źąģļ'žņżšó ¢ ˙źąńöi ńåņźąāąćą\n"
-"ņąźńąģą ķå šżźąģåķäąāąķą."
-
-#: ../../any.pm_.c:1047
-#, fuzzy
-msgid ""
-"This is the standard security recommended for a computer that will be used "
-"to connect to the Internet as a client."
-msgstr ""
-"Ćżņą ńņąķäąšņķū óēšīāåķü į˙ńļåźi, ˙źi šżźąģåķäąāąķū äė˙ źąģļ'žņżšó,\n"
-"˙źi äąėó÷ąķū äą Internet ó ˙źąńöi źėiåķņó. Äąäąķū˙ ķīāū˙ ļšąāåšźi\n"
-"į˙ńļåźi."
-
-#: ../../any.pm_.c:1048
-msgid ""
-"There are already some restrictions, and more automatic checks are run every "
-"night."
-msgstr ""
-
-#: ../../any.pm_.c:1049
-#, fuzzy
-msgid ""
-"With this security level, the use of this system as a server becomes "
-"possible.\n"
-"The security is now high enough to use the system as a server which accept\n"
-"connections from many clients. Note: if your machine is only a client on the "
-"Internet, you should better choose a lower level."
-msgstr ""
-"Ķą ćżņąģ óēšī¢ķå į˙ńļåźi ģąć÷ūģą āūźąšūńņąķķå ńińņżģū ¢ ˙źąńöi\n"
-"ńåšāåšó. Óēšīāåķü į˙ńļåźi äąńņąņźīāą āūńīźi äė˙ šąįīņū\n"
-"ńåšāåšó, ˙źi äąļóńźąå ēėó÷żķķi ńą ųģąņėiźiģi źėiåķņąģi."
-
-#: ../../any.pm_.c:1052
-#, fuzzy
-msgid ""
-"Based on the previous level, but the system is entirely closed.\n"
-"Security features are at their maximum."
-msgstr ""
-"Ļšūģąžööą ¢ėąńöiāąńöi 4 óēšī¢ķ˙, ąėå ēąšąē ńińņżģą ļī¢ķąńöž ēą÷ūķåķą.\n"
-"Ļąšąģåņšū į˙ńļåźi ¢ńņąķī¢ėåķū ķą ģąźńiģóģ."
-
-#: ../../any.pm_.c:1058
-msgid "Choose security level"
-msgstr "Óēšīāåķü į˙ńļåźi"
-
-#: ../../any.pm_.c:1061
-#, fuzzy
-msgid "Security level"
-msgstr "Ķąńņšīéźi ¢ēšī¢ķ˙ į˙ńļåźi"
-
-#: ../../any.pm_.c:1063
-#, fuzzy
-msgid "Use libsafe for servers"
-msgstr "Ąį˙šūöå äąäąņźīāū˙ ķąńņšīéźi äė˙ ńåšāåšą"
-
-#: ../../any.pm_.c:1064
-msgid ""
-"A library which defends against buffer overflow and format string attacks."
-msgstr ""
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#: ../../bootloader.pm_.c:355
-#, c-format
-msgid ""
-"Welcome to %s the operating system chooser!\n"
-"\n"
-"Choose an operating system in the list above or\n"
-"wait %d seconds for default boot.\n"
-"\n"
-msgstr ""
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:928
-msgid "Welcome to GRUB the operating system chooser!"
-msgstr "Welcome to GRUB the operating system chooser!"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:931
-#, c-format
-msgid "Use the %c and %c keys for selecting which entry is highlighted."
-msgstr "Use the %c and %c keys for selecting which entry is highlighted."
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:934
-msgid "Press enter to boot the selected OS, 'e' to edit the"
-msgstr "Press enter to boot the selected OS, 'e' to edit the"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:937
-msgid "commands before booting, or 'c' for a command-line."
-msgstr "commands before booting, or 'c' for a command-line."
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:940
-#, c-format
-msgid "The highlighted entry will be booted automatically in %d seconds."
-msgstr "The highlighted entry will be booted automatically in %d seconds."
-
-#: ../../bootloader.pm_.c:944
-msgid "not enough room in /boot"
-msgstr "Ķå õąļąå äūńźąāąé ļšąńņīšū ¢ /boot"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#. -PO: so you may need to put them in English or in a different language if MS-windows doesn't exist in your language
-#: ../../bootloader.pm_.c:1044
-msgid "Desktop"
-msgstr "Ļšąöī¢ķū ńņīė"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#: ../../bootloader.pm_.c:1046
-msgid "Start Menu"
-msgstr "Ńņąšņąāąå ģåķž"
-
-#: ../../bootloader.pm_.c:1065
-#, fuzzy, c-format
-msgid "You can't install the bootloader on a %s partition\n"
-msgstr "Źóäū āū ęąäąåöå ¢ńņąė˙āąöü ļą÷ąņźīāū ēąćšóē÷ūź?"
-
-#: ../../bootlook.pm_.c:46
-msgid "no help implemented yet.\n"
-msgstr ""
-
-#: ../../bootlook.pm_.c:62
-#, fuzzy
-msgid "Boot Style Configuration"
-msgstr "Ķąńņšīéźą ģąäżģó"
-
-#: ../../bootlook.pm_.c:79 ../../standalone/logdrake_.c:101
-#, fuzzy
-msgid "/_File"
-msgstr "Ōąéėū:\n"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "/File/_Quit"
-msgstr ""
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "<control>Q"
-msgstr ""
-
-#: ../../bootlook.pm_.c:91
-msgid "NewStyle Categorizing Monitor"
-msgstr ""
-
-#: ../../bootlook.pm_.c:92
-#, fuzzy
-msgid "NewStyle Monitor"
-msgstr "Ģąķiņīš"
-
-#: ../../bootlook.pm_.c:93
-#, fuzzy
-msgid "Traditional Monitor"
-msgstr "Ēģ˙ķiöü ģąķiņīš"
-
-#: ../../bootlook.pm_.c:94
-msgid "Traditional Gtk+ Monitor"
-msgstr ""
-
-#: ../../bootlook.pm_.c:95
-msgid "Launch Aurora at boot time"
-msgstr ""
-
-#: ../../bootlook.pm_.c:98
-#, fuzzy
-msgid "Lilo/grub mode"
-msgstr "Šżęūģ ēėó÷żķķ˙"
-
-#: ../../bootlook.pm_.c:98
-#, fuzzy
-msgid "Yaboot mode"
-msgstr "Ēąćšóēą÷ķą˙ ļšūėąäą"
-
-#: ../../bootlook.pm_.c:104
-#, fuzzy, c-format
-msgid ""
-"You are currently using %s as Boot Manager.\n"
-"Click on Configure to launch the setup wizard."
-msgstr "Ńóģåńķąå Iķņżšķżņ-ēėó÷żķķå"
-
-#: ../../bootlook.pm_.c:106 ../../standalone/drakbackup_.c:1467
-#: ../../standalone/drakbackup_.c:1478 ../../standalone/drakgw_.c:715
-#: ../../standalone/tinyfirewall_.c:59
-#, fuzzy
-msgid "Configure"
-msgstr "Ķąńņšīéźą X Window"
-
-#: ../../bootlook.pm_.c:141
-msgid "System mode"
-msgstr ""
-
-#: ../../bootlook.pm_.c:143
-msgid "Launch the X-Window system at start"
-msgstr ""
-
-#: ../../bootlook.pm_.c:148
-msgid "No, I don't want autologin"
-msgstr ""
-
-#: ../../bootlook.pm_.c:150
-msgid "Yes, I want autologin with this (user, desktop)"
-msgstr ""
-
-#: ../../bootlook.pm_.c:160 ../../network/netconnect.pm_.c:102
-#: ../../standalone/drakbackup_.c:2441 ../../standalone/drakbackup_.c:3345
-#: ../../standalone/drakfont_.c:532 ../../standalone/drakfont_.c:655
-#: ../../standalone/drakfont_.c:719 ../../standalone/drakfont_.c:765
-#: ../../standalone/draknet_.c:109 ../../standalone/draknet_.c:141
-#: ../../standalone/draknet_.c:297 ../../standalone/draknet_.c:436
-#: ../../standalone/draknet_.c:522 ../../standalone/draknet_.c:565
-#: ../../standalone/draknet_.c:666 ../../standalone/logdrake_.c:505
-msgid "OK"
-msgstr ""
-
-#: ../../bootlook.pm_.c:229
-#, c-format
-msgid "can not open /etc/inittab for reading: %s"
-msgstr ""
-
-#: ../../common.pm_.c:94
-msgid "GB"
-msgstr ""
-
-#: ../../common.pm_.c:94
-msgid "KB"
-msgstr ""
-
-#: ../../common.pm_.c:94
-msgid "MB"
-msgstr "Ģį"
-
-#: ../../common.pm_.c:102
-msgid "TB"
-msgstr ""
-
-#: ../../common.pm_.c:110
-#, c-format
-msgid "%d minutes"
-msgstr "%d õāiėiķ"
-
-#: ../../common.pm_.c:112
-msgid "1 minute"
-msgstr "1 õāiėiķą"
-
-#: ../../common.pm_.c:114
-#, c-format
-msgid "%d seconds"
-msgstr "%d ńåźóķäą¢"
-
-#: ../../common.pm_.c:159
-#, fuzzy
-msgid "Can't make screenshots before partitioning"
-msgstr "Äąäąöü šąēäēåė ķåģąć÷ūģą"
-
-#: ../../common.pm_.c:166
-#, fuzzy, c-format
-msgid "Screenshots will be available after install in %s"
-msgstr "Āū ģīęąöå ąįšąöü ³ķųū˙ ģīāū, ˙źi˙ įóäóöü äąńņóļķū ļąńė˙ ¢ńņąė˙āąķķ˙"
-
-#: ../../crypto.pm_.c:12 ../../crypto.pm_.c:26 ../../standalone/drakxtv_.c:50
-msgid "France"
-msgstr "Ōšąķöū˙"
-
-#: ../../crypto.pm_.c:13
-msgid "Costa Rica"
-msgstr ""
-
-#: ../../crypto.pm_.c:14 ../../crypto.pm_.c:27
-#, fuzzy
-msgid "Belgium"
-msgstr "Įåėüćiéńźi"
-
-#: ../../crypto.pm_.c:15 ../../crypto.pm_.c:28
-msgid "Czech Republic"
-msgstr ""
-
-#: ../../crypto.pm_.c:16 ../../crypto.pm_.c:29
-msgid "Germany"
-msgstr "Ķ˙ģåöźi"
-
-#: ../../crypto.pm_.c:17 ../../crypto.pm_.c:30
-#, fuzzy
-msgid "Greece"
-msgstr "Ćšż÷ąńźi"
-
-#: ../../crypto.pm_.c:18 ../../crypto.pm_.c:31
-#, fuzzy
-msgid "Norway"
-msgstr "Ķąšāåęńźi"
-
-#: ../../crypto.pm_.c:19 ../../crypto.pm_.c:32
-#, fuzzy
-msgid "Sweden"
-msgstr "Ćė."
-
-#: ../../crypto.pm_.c:20 ../../crypto.pm_.c:34
-msgid "Netherlands"
-msgstr ""
-
-#: ../../crypto.pm_.c:21 ../../crypto.pm_.c:35 ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "Italy"
-msgstr "Iņąėü˙ķńźi"
-
-#: ../../crypto.pm_.c:22 ../../crypto.pm_.c:36
-#, fuzzy
-msgid "Austria"
-msgstr "ļąńė˙äī¢ķą˙"
-
-#: ../../crypto.pm_.c:33 ../../crypto.pm_.c:67
-msgid "United States"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:94
-msgid "Please make a backup of your data first"
-msgstr "Ļą-ļåšųąå, ēšąįiöå šżēåšāīāóž źīļiž āąųūõ äąäēåķūõ"
-
-#: ../../diskdrake/hd_gtk.pm_.c:94 ../../diskdrake/interactive.pm_.c:891
-#: ../../diskdrake/interactive.pm_.c:900 ../../diskdrake/interactive.pm_.c:954
-msgid "Read carefully!"
-msgstr "×ūņąéöå ¢āąęėiāą!"
-
-#: ../../diskdrake/hd_gtk.pm_.c:97
-msgid ""
-"If you plan to use aboot, be carefull to leave a free space (2048 sectors is "
-"enough)\n"
-"at the beginning of the disk"
-msgstr ""
-"Źąėi āū ļėąķóåöå āūźąšūńņī¢āąöü boot āīįėąńöü, ņąäū šąēģ˙ńöiöå ˙å\n"
-" ķå äąėåé ēą 2048 ńåźņąšī¢ ąä ļą÷ąņźó äūńźą"
-
-#: ../../diskdrake/hd_gtk.pm_.c:116 ../../diskdrake/interactive.pm_.c:325
-#: ../../diskdrake/interactive.pm_.c:340 ../../diskdrake/smbnfs_gtk.pm_.c:45
-#: ../../install_steps.pm_.c:75 ../../install_steps_interactive.pm_.c:67
-#: ../../install_steps_interactive.pm_.c:356 ../../interactive_http.pm_.c:119
-#: ../../interactive_http.pm_.c:120 ../../standalone/diskdrake_.c:84
-msgid "Error"
-msgstr "Ļąģūėźą"
-
-#: ../../diskdrake/hd_gtk.pm_.c:151
-msgid "Wizard"
-msgstr "Ģąéńņąš ńņāąšżķķ˙"
-
-#: ../../diskdrake/hd_gtk.pm_.c:181 ../../diskdrake/removable_gtk.pm_.c:24
-msgid "Choose action"
-msgstr "Ąį˙šūöå äēå˙ķķå"
-
-#: ../../diskdrake/hd_gtk.pm_.c:185
-msgid ""
-"You have one big FAT partition\n"
-"(generally used by MicroSoft Dos/Windows).\n"
-"I suggest you first resize that partition\n"
-"(click on it, then click on \"Resize\")"
-msgstr ""
-"Ēąšąē āū ģąåöå ņīėüźi ąäēiķ ā˙ėiźi šąēäēåė FAT\n"
-"(˙ź³ ēāū÷ąéķą āūźąšūńņī¢āąå MS Dos/Windows).\n"
-"Ļšąļąķóž, ļą-ļåšųąå, ēģ˙ķiöü ļąģåšū šąēäēåėą\n"
-"(źėiźķiöå ķą ˙ćī, ą ļīņūģ ķą \"ēģ˙ķåķķå ļąģåšą¢\")"
-
-#: ../../diskdrake/hd_gtk.pm_.c:188
-msgid "Please click on a partition"
-msgstr "Ķąö³ńķ³öå ķą šąēäēåė"
-
-#: ../../diskdrake/hd_gtk.pm_.c:202 ../../diskdrake/smbnfs_gtk.pm_.c:67
-#: ../../install_steps_gtk.pm_.c:523
-msgid "Details"
-msgstr "Ļąäšąį˙ēķąńöi"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Ext2"
-msgstr "Ext2"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "FAT"
-msgstr "FAT"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "HFS"
-msgstr "HFS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-#, fuzzy
-msgid "Journalised FS"
-msgstr "ļąģūėźą ģąķöišąāąķķ˙"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "SunOS"
-msgstr "SunOS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Swap"
-msgstr "Swap"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../diskdrake/interactive.pm_.c:1050
-msgid "Empty"
-msgstr "Ļóńņą"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../install_steps_gtk.pm_.c:379
-#: ../../install_steps_gtk.pm_.c:439 ../../mouse.pm_.c:162
-#: ../../services.pm_.c:157 ../../standalone/drakbackup_.c:944
-msgid "Other"
-msgstr "²ķųū˙"
-
-#: ../../diskdrake/hd_gtk.pm_.c:325
-msgid "Filesystem types:"
-msgstr "Ņūļū ōąéėąāūõ ńińņżģą¢:"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:386
-msgid "Create"
-msgstr "Ńņāąšūöü"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:365
-#: ../../diskdrake/interactive.pm_.c:499 ../../diskdrake/removable.pm_.c:26
-#: ../../diskdrake/removable.pm_.c:49 ../../diskdrake/removable_gtk.pm_.c:17
-msgid "Type"
-msgstr "Ņūļ"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/hd_gtk.pm_.c:344
-#, c-format
-msgid "Use ``%s'' instead"
-msgstr "Āūźąšūńņī¢āąéöå ``%s'' ēąģåńņ"
-
-#: ../../diskdrake/hd_gtk.pm_.c:344 ../../diskdrake/interactive.pm_.c:374
-msgid "Delete"
-msgstr "Ēķių÷ūöü"
-
-#: ../../diskdrake/hd_gtk.pm_.c:348
-msgid "Use ``Unmount'' first"
-msgstr "Ńļą÷ąņźó ēšąįiöå ``Unmount''"
-
-#: ../../diskdrake/hd_gtk.pm_.c:349 ../../diskdrake/interactive.pm_.c:491
-#, c-format
-msgid ""
-"After changing type of partition %s, all data on this partition will be lost"
-msgstr "Óńå äąäēåķū˙ ¢ šąēäēåėå %s įóäóöü ńņšą÷ąķū ļąńė˙ ēģåķū ˙ćī ņūļó"
-
-#: ../../diskdrake/interactive.pm_.c:171
-#, fuzzy
-msgid "Choose a partition"
-msgstr "Ąį˙šūöå äēå˙ķķå"
-
-#: ../../diskdrake/interactive.pm_.c:171
-#, fuzzy
-msgid "Choose another partition"
-msgstr "Ńņāąšżķķå ķīāąćą šąēäēåėó"
-
-#: ../../diskdrake/interactive.pm_.c:196
-#, fuzzy
-msgid "Exit"
-msgstr "Ext2"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to expert mode"
-msgstr "Šżęūģ żźńļåšņó"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to normal mode"
-msgstr "Ēāū÷ąéķū šżęūģ"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Undo"
-msgstr "Ąäźąņ"
-
-#: ../../diskdrake/interactive.pm_.c:237
-msgid "Continue anyway?"
-msgstr "Ńąļšą¢äū ļšąö˙ćāąöü?"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without saving"
-msgstr "Āūéńöi įåē ēąõąāąķķ˙"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without writing the partition table?"
-msgstr "Āūéńöi įåē ēąļińó ņąįėiöū šąēäēåėą¢"
-
-#: ../../diskdrake/interactive.pm_.c:247
-#, fuzzy
-msgid "Do you want to save /etc/fstab modifications"
-msgstr "Öi ęąäąåöå ļšąņżńöišąāąöü ķąńņšīéźi?"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Auto allocate"
-msgstr "Šąēģåšźąāąöü ą¢ņąģąņū÷ķą"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Clear all"
-msgstr "Ą÷ūńöiöü óńø"
-
-#: ../../diskdrake/interactive.pm_.c:262
-#, fuzzy
-msgid "Hard drive information"
-msgstr "Iķōąšģąöū˙"
-
-#: ../../diskdrake/interactive.pm_.c:283
-msgid "All primary partitions are used"
-msgstr "Óńå ļåšųąńķū˙ šąēäēåėū āūźąšūńņąķū"
-
-#: ../../diskdrake/interactive.pm_.c:284
-msgid "I can't add any more partition"
-msgstr "Äąäąöü šąēäēåė ķåģąć÷ūģą"
-
-#: ../../diskdrake/interactive.pm_.c:285
-msgid ""
-"To have more partitions, please delete one to be able to create an extended "
-"partition"
-msgstr ""
-"Źąį ēšąįiöü įīėüų šąēäåėą¢, āūäąėiöå ąäēiķ i ńņāąšūöå ļąųūšąķū šąēäēåė "
-"(extended)"
-
-#: ../../diskdrake/interactive.pm_.c:295
-#, fuzzy
-msgid "Save partition table"
-msgstr "Ēąļiń ņąįėiöū šąēäēåėą¢"
-
-#: ../../diskdrake/interactive.pm_.c:296
-#, fuzzy
-msgid "Restore partition table"
-msgstr "Äąäąņźīāą˙ ņąįėiöą šąēäēåėą¢"
-
-#: ../../diskdrake/interactive.pm_.c:297
-msgid "Rescue partition table"
-msgstr "Äąäąņźīāą˙ ņąįėiöą šąēäēåėą¢"
-
-#: ../../diskdrake/interactive.pm_.c:299
-#, fuzzy
-msgid "Reload partition table"
-msgstr "Äąäąņźīāą˙ ņąįėiöą šąēäēåėą¢"
-
-#: ../../diskdrake/interactive.pm_.c:304
-#, fuzzy
-msgid "Removable media automounting"
-msgstr "Ą¢ņąģąķöišąāąķķå ēģåķķūõ ķąēąļąųāąėüķ³źą¢"
-
-#: ../../diskdrake/interactive.pm_.c:313 ../../diskdrake/interactive.pm_.c:333
-msgid "Select file"
-msgstr "Ąį˙šūöå ōąéė"
-
-#: ../../diskdrake/interactive.pm_.c:320
-msgid ""
-"The backup partition table has not the same size\n"
-"Still continue?"
-msgstr ""
-"Ņąįėiöą šąēģ˙ų÷żķķ˙ šżēåšāīāąćą äūńźó ģąå iķųū ļąģåš\n"
-"Ļšąö˙ćāąöü äąėåé?"
-
-#: ../../diskdrake/interactive.pm_.c:334
-msgid "Warning"
-msgstr "Óāąćą!"
-
-#: ../../diskdrake/interactive.pm_.c:335
-msgid ""
-"Insert a floppy in drive\n"
-"All data on this floppy will be lost"
-msgstr ""
-"Óńņą¢öå äūńźåņó ¢ äūńźąāīä\n"
-"Óńå äąäēåķū˙ ķą ćżņąé äūńźåöå įóäóöü ńņšą÷ąķū"
-
-#: ../../diskdrake/interactive.pm_.c:346
-msgid "Trying to rescue partition table"
-msgstr "Ļąńļšąįóåģ āūšąņąāąöü ņąįėiöó šąēäēåėą¢"
-
-#: ../../diskdrake/interactive.pm_.c:352
-#, fuzzy
-msgid "Detailed information"
-msgstr "Iķōąšģąöū˙"
-
-#: ../../diskdrake/interactive.pm_.c:364 ../../diskdrake/interactive.pm_.c:534
-#: ../../diskdrake/interactive.pm_.c:554 ../../diskdrake/removable.pm_.c:24
-#: ../../diskdrake/removable_gtk.pm_.c:15 ../../diskdrake/smbnfs_gtk.pm_.c:83
-msgid "Mount point"
-msgstr "Źšīļźą ģąķöišąāąķķ˙"
-
-#: ../../diskdrake/interactive.pm_.c:366 ../../diskdrake/removable.pm_.c:25
-#: ../../diskdrake/removable_gtk.pm_.c:16 ../../diskdrake/smbnfs_gtk.pm_.c:84
-msgid "Options"
-msgstr "Īļöūi"
-
-#: ../../diskdrake/interactive.pm_.c:367 ../../diskdrake/interactive.pm_.c:621
-msgid "Resize"
-msgstr "Ēģ˙ķåķķå ļąģåšą¢"
-
-#: ../../diskdrake/interactive.pm_.c:368 ../../diskdrake/interactive.pm_.c:674
-msgid "Move"
-msgstr "Ļåšąķīń"
-
-#: ../../diskdrake/interactive.pm_.c:369
-msgid "Format"
-msgstr "Ōąšģąņąāąķķå"
-
-#: ../../diskdrake/interactive.pm_.c:370 ../../diskdrake/smbnfs_gtk.pm_.c:80
-msgid "Mount"
-msgstr "Ģąķöišąāąķķå"
-
-#: ../../diskdrake/interactive.pm_.c:371
-msgid "Add to RAID"
-msgstr "Äąäąöü äą RAID"
-
-#: ../../diskdrake/interactive.pm_.c:372
-msgid "Add to LVM"
-msgstr "Äąäąöü äą LVM"
-
-#: ../../diskdrake/interactive.pm_.c:373 ../../diskdrake/smbnfs_gtk.pm_.c:79
-msgid "Unmount"
-msgstr "Šąēģąķöišąāąöü"
-
-#: ../../diskdrake/interactive.pm_.c:375
-msgid "Remove from RAID"
-msgstr "Āūäąėiöü ē RAID"
-
-#: ../../diskdrake/interactive.pm_.c:376
-msgid "Remove from LVM"
-msgstr "Āūäąėiöü ē LVM"
-
-#: ../../diskdrake/interactive.pm_.c:377
-msgid "Modify RAID"
-msgstr "Ēģ˙ķiöü RAID"
-
-#: ../../diskdrake/interactive.pm_.c:378
-msgid "Use for loopback"
-msgstr "Āūźąšūńņī¢āąöü äė˙ āišņóąėüķąé ōąéėąāąé ńińņżģū"
-
-#: ../../diskdrake/interactive.pm_.c:417
-msgid "Create a new partition"
-msgstr "Ńņāąšżķķå ķīāąćą šąēäēåėó"
-
-#: ../../diskdrake/interactive.pm_.c:420
-msgid "Start sector: "
-msgstr "Ļą÷ąņźīāū ńåźņąš:"
-
-#: ../../diskdrake/interactive.pm_.c:422 ../../diskdrake/interactive.pm_.c:773
-msgid "Size in MB: "
-msgstr "Ļąģåš ó Ģį:"
-
-#: ../../diskdrake/interactive.pm_.c:423 ../../diskdrake/interactive.pm_.c:774
-msgid "Filesystem type: "
-msgstr "Ņūļ ōąéėąāąé ńińņżģū:"
-
-#: ../../diskdrake/interactive.pm_.c:424
-#: ../../diskdrake/interactive.pm_.c:1034
-#: ../../diskdrake/interactive.pm_.c:1108
-msgid "Mount point: "
-msgstr "Ļóķźņ ģąķöišąāąķķ˙:"
-
-#: ../../diskdrake/interactive.pm_.c:428
-msgid "Preference: "
-msgstr "Ļąšąģåņšū: "
-
-#: ../../diskdrake/interactive.pm_.c:472
-#, fuzzy
-msgid "Remove the loopback file?"
-msgstr "Ōąšģąņąāąķķå āišņóąėüķąćą šąēäēåėó %s"
-
-#: ../../diskdrake/interactive.pm_.c:497
-msgid "Change partition type"
-msgstr "Ēģ˙ķiöü ņūļ šąēäēåėó"
-
-#: ../../diskdrake/interactive.pm_.c:498 ../../diskdrake/removable.pm_.c:48
-#, fuzzy
-msgid "Which filesystem do you want?"
-msgstr "ßźóž ńińņżģó äšóźó Āū ęąäąåöå āūźąšūńņī¢āąöü?"
-
-#: ../../diskdrake/interactive.pm_.c:502
-msgid "Switching from ext2 to ext3"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:532
-#, c-format
-msgid "Where do you want to mount loopback file %s?"
-msgstr "Źóäū āū ęąäąåöå ģąķöišąāąöü āišņóąėüķóž ļšūėąäó %s?"
-
-#: ../../diskdrake/interactive.pm_.c:533 ../../diskdrake/interactive.pm_.c:553
-#, c-format
-msgid "Where do you want to mount device %s?"
-msgstr "Źóäū āū ęąäąåöå ģąķöišąāąöü ļšūėąäó %s?"
-
-#: ../../diskdrake/interactive.pm_.c:539
-msgid ""
-"Can't unset mount point as this partition is used for loop back.\n"
-"Remove the loopback first"
-msgstr ""
-"Ķåėüćą ¢ńņąė˙āąöü ļóķźņ ģąķöišąāąķķ˙, ņąģó ųņī šąēäåė āūźąšūńņī¢āąåööą äė˙\n"
-"āišņóąėüķąé ōąéėąāąé ńińņżģū.\n"
-"Ńļą÷ąņźó āūäąėiöå āišņóąėüķóž ńińņżģó"
-
-#: ../../diskdrake/interactive.pm_.c:577
-msgid "Computing FAT filesystem bounds"
-msgstr "Ļąäė³ź ģåęą¢ ōąéėąāąé ńińņżģū FAT"
-
-#: ../../diskdrake/interactive.pm_.c:577 ../../diskdrake/interactive.pm_.c:636
-#: ../../install_interactive.pm_.c:130
-msgid "Resizing"
-msgstr "Ēģ˙ķåķķå ļąģåšą¢"
-
-#: ../../diskdrake/interactive.pm_.c:609
-#, fuzzy
-msgid "This partition is not resizeable"
-msgstr "Ļąģåšū ˙źīćą šąēäēåėą āū ęąäąåöå ēģ˙ķiöü?"
-
-#: ../../diskdrake/interactive.pm_.c:614
-msgid "All data on this partition should be backed-up"
-msgstr "Óńå äąäēåķū˙ ¢ ćżņūģ šąēäēåėå ļąāiķķū įūöü ēąšõiāąāąķū˙"
-
-#: ../../diskdrake/interactive.pm_.c:616
-#, c-format
-msgid "After resizing partition %s, all data on this partition will be lost"
-msgstr "Óńå äąäēåķū˙ ¢ šąēäēåėå %s įóäóöü ńņšą÷ąķū"
-
-#: ../../diskdrake/interactive.pm_.c:621
-msgid "Choose the new size"
-msgstr "Āūįąš ķīāūõ ļąģåšą¢"
-
-#: ../../diskdrake/interactive.pm_.c:622
-#, fuzzy
-msgid "New size in MB: "
-msgstr "Ļąģåš ó Ģį:"
-
-#: ../../diskdrake/interactive.pm_.c:675
-msgid "Which disk do you want to move it to?"
-msgstr "Ķą ˙źi äūńź ļåšąķåńö³?"
-
-#: ../../diskdrake/interactive.pm_.c:676
-msgid "Sector"
-msgstr "Ńåźņąš"
-
-#: ../../diskdrake/interactive.pm_.c:677
-msgid "Which sector do you want to move it to?"
-msgstr "Ķą ˙źi ńåźņąš ļåšąķåńö³?"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving"
-msgstr "Ļåšąķīń³ģ"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving partition..."
-msgstr "Ļåšąķīń³ööą šąēäēåė..."
-
-#: ../../diskdrake/interactive.pm_.c:697
-msgid "Choose an existing RAID to add to"
-msgstr "Ąį˙šūöå ińķóž÷ū RAID äė˙ äąäąķķ˙"
-
-#: ../../diskdrake/interactive.pm_.c:698 ../../diskdrake/interactive.pm_.c:716
-msgid "new"
-msgstr "ķīāū"
-
-#: ../../diskdrake/interactive.pm_.c:714
-msgid "Choose an existing LVM to add to"
-msgstr "Āūį˙šūöå ińķóž÷ū LVM äė˙ äąįą¢ėåķķ˙"
-
-#: ../../diskdrake/interactive.pm_.c:719
-msgid "LVM name?"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:759
-msgid "This partition can't be used for loopback"
-msgstr "Ćżņū šąēäēåė ķå ģīęą įūöü āūźąšūńņąķū ļąä āišņóąėüķóž ōąéėąāóž ńińņżģó"
-
-#: ../../diskdrake/interactive.pm_.c:771
-msgid "Loopback"
-msgstr "Āišņóąėüķą˙ ōąéėąāą˙ ńińņżģą (loopback)"
-
-#: ../../diskdrake/interactive.pm_.c:772
-msgid "Loopback file name: "
-msgstr "Iģ˙ āišņóąėüķąćą šąēäēåėó"
-
-#: ../../diskdrake/interactive.pm_.c:777
-#, fuzzy
-msgid "Give a file name"
-msgstr "Óėąńķąå iģ˙"
-
-#: ../../diskdrake/interactive.pm_.c:780
-msgid "File already used by another loopback, choose another one"
-msgstr ""
-"Ōąéė óęī āūźąšūńņī¢āąåööą iķųąé āišņóąėüķąé ńińņżģąé. Źąėi ėąńźą, \n"
-"ąį˙šūöå iķųóž ķąēāó"
-
-#: ../../diskdrake/interactive.pm_.c:781
-msgid "File already exists. Use it?"
-msgstr "Ōąéė óęī ińķóå. Āūźąšūńņąöü ˙ćī?"
-
-#: ../../diskdrake/interactive.pm_.c:804
-#, fuzzy
-msgid "Mount options"
-msgstr "Īļöūi ģīäóėž:"
-
-#: ../../diskdrake/interactive.pm_.c:811
-msgid "Various"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:874
-msgid "device"
-msgstr "ļšūėąäą"
-
-#: ../../diskdrake/interactive.pm_.c:875
-msgid "level"
-msgstr "óēšīāåķü"
-
-#: ../../diskdrake/interactive.pm_.c:876
-msgid "chunk size"
-msgstr "ļąģåš įėīźó"
-
-#: ../../diskdrake/interactive.pm_.c:891
-msgid "Be careful: this operation is dangerous."
-msgstr "Įóäēüöå óāąęėiāū. Ćżņóž ąļåšąöūž ķåėüćą ąäģ˙ķiöü"
-
-#: ../../diskdrake/interactive.pm_.c:906
-#, fuzzy
-msgid "What type of partitioning?"
-msgstr "ßźi ņūļ äšóźąšźi āū ģąåöå?"
-
-#: ../../diskdrake/interactive.pm_.c:924
-msgid ""
-"Sorry I won't accept to create /boot so far onto the drive (on a cylinder > "
-"1024).\n"
-"Either you use LILO and it won't work, or you don't use LILO and you don't "
-"need /boot"
-msgstr ""
-"Ļšąįą÷öå, ąėå ķåėüćą ńņāąšūöü /boot ķą ćżņūģ äūńźó (ķą öūėiķäšū > 1024).\n"
-"Źąė³ āū äóģąåöå āūźąšūńņī¢āąöü LILO - ņąäū ćżņą ķå įóäēå ļšąöąāąöü, LILO ķå "
-"āūźąšūńņī¢āąåöą, ņąäū /boot ķå ļąņšżįķū."
-
-#: ../../diskdrake/interactive.pm_.c:928
-msgid ""
-"The partition you've selected to add as root (/) is physically located "
-"beyond\n"
-"the 1024th cylinder of the hard drive, and you have no /boot partition.\n"
-"If you plan to use the LILO boot manager, be careful to add a /boot partition"
-msgstr ""
-"Ąįšąķū äė˙ äąäąņźó ¢ ˙źąńöi źąšąķøāąćą (/) šąēäēåė ōiēi÷ķą ēķąõīäēiöą äąėåé\n"
-"1024-ćą öūėiķäšó ęīšńņźąćą äūńźó, ą ¢ āąń ķ˙ģą šąēäēåėó /boot .\n"
-"Źąėi įóäēå āūźąšūńņī¢āąööą äūńļå÷ąš ēąćšóēźi LILO, ķå ēąļąģ˙ņąéöå äąäąöü\n"
-"šąēäēåė /boot"
-
-#: ../../diskdrake/interactive.pm_.c:934
-msgid ""
-"You've selected a software RAID partition as root (/).\n"
-"No bootloader is able to handle this without a /boot partition.\n"
-"So be careful to add a /boot partition"
-msgstr ""
-"Āū ąįšąėi RAID šąēäēåė ˙ź źąšąķøāū.\n"
-"Ķ˙ģą ēąćšóē÷ūźó, ˙źi į ēąćšóēi¢ń˙ įåē /boot šąēäēåėą.\n"
-"Äąäąéöå šąēäåė /boot, źąėi ėąńźą."
-
-#: ../../diskdrake/interactive.pm_.c:954
-#, c-format
-msgid "Partition table of drive %s is going to be written to disk!"
-msgstr "Ņąįėiöą šąēģ˙ų÷żķķ˙ ļšūėąäū %s įóäēå ēąļińąķą ķą äūńź!"
-
-#: ../../diskdrake/interactive.pm_.c:958
-msgid "You'll need to reboot before the modification can take place"
-msgstr "Źąį ēģ˙ķåķķi ¢ńņóļiėi ¢ äēå˙ķķå, ķåīįõīäķą ļåšąēąćšóēiööą"
-
-#: ../../diskdrake/interactive.pm_.c:969
-#, c-format
-msgid "After formatting partition %s, all data on this partition will be lost"
-msgstr "Óńå äąäēåķūå ¢ šąēäēåėå %s įóäóöü ńņšą÷ąķū ļąńė˙ ōąšģąņąāąķķ˙"
-
-#: ../../diskdrake/interactive.pm_.c:971
-msgid "Formatting"
-msgstr "Ōąšģąņąāąķķå"
-
-#: ../../diskdrake/interactive.pm_.c:972
-#, c-format
-msgid "Formatting loopback file %s"
-msgstr "Ōąšģąņąāąķķå āišņóąėüķąćą šąēäēåėó %s"
-
-#: ../../diskdrake/interactive.pm_.c:973
-#: ../../install_steps_interactive.pm_.c:465
-#, c-format
-msgid "Formatting partition %s"
-msgstr "Ōąšģąņąāąķķå šąēäēåėó %s"
-
-#: ../../diskdrake/interactive.pm_.c:984
-#, fuzzy
-msgid "Hide files"
-msgstr "mkraid ķå ļšąöąēäīėüķū"
-
-#: ../../diskdrake/interactive.pm_.c:984
-#, fuzzy
-msgid "Move files to the new partition"
-msgstr "Ķå õąļąå ļšąńņīšū äė˙ ńņāąšżķķ˙ ķīāūõ šąēäēåėą¢"
-
-#: ../../diskdrake/interactive.pm_.c:985
-#, c-format
-msgid ""
-"Directory %s already contain some data\n"
-"(%s)"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:996
-#, fuzzy
-msgid "Moving files to the new partition"
-msgstr "Ķå õąļąå ļšąńņīšū äė˙ ńņāąšżķķ˙ ķīāūõ šąēäēåėą¢"
-
-#: ../../diskdrake/interactive.pm_.c:1000
-#, c-format
-msgid "Copying %s"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1004
-#, fuzzy, c-format
-msgid "Removing %s"
-msgstr "Ļąģåšū żźšąķó: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1014
-#, c-format
-msgid "partition %s is now known as %s"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1035
-#: ../../diskdrake/interactive.pm_.c:1094
-msgid "Device: "
-msgstr "Ļšūėąäą:"
-
-#: ../../diskdrake/interactive.pm_.c:1036
-#, c-format
-msgid "DOS drive letter: %s (just a guess)\n"
-msgstr "Ėiņąšą äė˙ DOS-äūńźó: %s (ķą¢ćąä)\n"
-
-#: ../../diskdrake/interactive.pm_.c:1040
-#: ../../diskdrake/interactive.pm_.c:1048
-#: ../../diskdrake/interactive.pm_.c:1112
-msgid "Type: "
-msgstr "Ņūļ: "
-
-#: ../../diskdrake/interactive.pm_.c:1044
-msgid "Name: "
-msgstr "Iģ˙: "
-
-#: ../../diskdrake/interactive.pm_.c:1052
-#, c-format
-msgid "Start: sector %s\n"
-msgstr "Ļą÷ąņąź: ńåźņąš %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1053
-#, c-format
-msgid "Size: %s"
-msgstr "Ļąģåš: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1055
-#, c-format
-msgid ", %s sectors"
-msgstr ", %s ńåźņąšą¢"
-
-#: ../../diskdrake/interactive.pm_.c:1057
-#, fuzzy, c-format
-msgid "Cylinder %d to %d\n"
-msgstr "Öūėiķäšū ē %d ļą %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1058
-msgid "Formatted\n"
-msgstr "Ōąšģąņąāąķķå\n"
-
-#: ../../diskdrake/interactive.pm_.c:1059
-msgid "Not formatted\n"
-msgstr "Ķå ąäōąšģąņąāąķą\n"
-
-#: ../../diskdrake/interactive.pm_.c:1060
-msgid "Mounted\n"
-msgstr "Ēąģąķöišąāąķą\n"
-
-#: ../../diskdrake/interactive.pm_.c:1061
-#, c-format
-msgid "RAID md%s\n"
-msgstr "RAID md%s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1063
-#, fuzzy, c-format
-msgid ""
-"Loopback file(s):\n"
-" %s\n"
-msgstr "Ōąéė(ū) āišņóąėüķąé ōąéėąāąé ńińņżģū: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1064
-msgid ""
-"Partition booted by default\n"
-" (for MS-DOS boot, not for lilo)\n"
-msgstr ""
-"Ēąćšóēą÷ķū šąēäēåė ļą äąģą¢ėåķķž\n"
-" (äė˙ ēąćšóēźi MS-DOS, ą ķå äė˙ lilo)\n"
-
-#: ../../diskdrake/interactive.pm_.c:1066
-#, c-format
-msgid "Level %s\n"
-msgstr "Óēšīāåķü %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1067
-#, c-format
-msgid "Chunk size %s\n"
-msgstr "Ļąģåš ōšąćģåķņó %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1068
-#, c-format
-msgid "RAID-disks %s\n"
-msgstr "RAID-äūńźi %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1070
-#, c-format
-msgid "Loopback file name: %s"
-msgstr "Iģ˙ ōąéėó āišņóąėüķąé ōąéėąāąé ńińņżģū: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1073
-msgid ""
-"\n"
-"Chances are, this partition is\n"
-"a Driver partition, you should\n"
-"probably leave it alone.\n"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1076
-msgid ""
-"\n"
-"This special Bootstrap\n"
-"partition is for\n"
-"dual-booting your system.\n"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1095
-#, c-format
-msgid "Size: %s\n"
-msgstr "Ļąģåš: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1096
-#, c-format
-msgid "Geometry: %s cylinders, %s heads, %s sectors\n"
-msgstr "Ćåąģåņšū˙: %s öūėiķäšą¢, %s ćąėīāąź, %s ńåźņąšą¢\n"
-
-#: ../../diskdrake/interactive.pm_.c:1097
-msgid "Info: "
-msgstr "Iķōąšģąöū˙: "
-
-#: ../../diskdrake/interactive.pm_.c:1098
-#, c-format
-msgid "LVM-disks %s\n"
-msgstr "LVM-äūńźi %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1099
-#, c-format
-msgid "Partition table type: %s\n"
-msgstr "Ņūļ ņąįėiöū šąēäēåėą¢: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1100
-#, c-format
-msgid "on bus %d id %d\n"
-msgstr "ķą ųūķå %d id %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1114
-#, c-format
-msgid "Options: %s"
-msgstr "Īļöūi: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1130
-#, fuzzy
-msgid "Filesystem encryption key"
-msgstr "Ņūļ ōąéėąāąé ńińņżģū:"
-
-#: ../../diskdrake/interactive.pm_.c:1131
-msgid "Choose your filesystem encryption key"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1134
-#, fuzzy, c-format
-msgid "This encryption key is too simple (must be at least %d characters long)"
-msgstr ""
-"Ćżņū ļąšīėü ēąķąäņą ļšīńņū (˙ćī äą¢ęūķ˙ ļąāiķķą įūöü ķå ģåķåé ēą %d ėiņąšą¢)"
-
-#: ../../diskdrake/interactive.pm_.c:1135
-#, fuzzy
-msgid "The encryption keys do not match"
-msgstr "Ļąšīėi ķå ńóļąäąžöü"
-
-#: ../../diskdrake/interactive.pm_.c:1138
-msgid "Encryption key"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1139
-msgid "Encryption key (again)"
-msgstr ""
-
-#: ../../diskdrake/removable.pm_.c:47
-#, fuzzy
-msgid "Change type"
-msgstr "Ēģ˙ķiöü ņūļ šąēäēåėó"
-
-#: ../../diskdrake/removable_gtk.pm_.c:28
-#, fuzzy
-msgid "Please click on a media"
-msgstr "Ķąö³ńķ³öå ķą šąēäēåė"
-
-#: ../../diskdrake/smbnfs_gtk.pm_.c:165
-#, fuzzy
-msgid "Search servers"
-msgstr "DNS ńåšāåš"
-
-#: ../../fs.pm_.c:485 ../../fs.pm_.c:495 ../../fs.pm_.c:499 ../../fs.pm_.c:503
-#: ../../fs.pm_.c:507 ../../fs.pm_.c:511
-#, c-format
-msgid "%s formatting of %s failed"
-msgstr "%s ļąģūėźą ōąšģąņąāąķķ˙ %s"
-
-#: ../../fs.pm_.c:548
-#, c-format
-msgid "I don't know how to format %s in type %s"
-msgstr "Ķå āåäąž ˙ź ąäōąšģąņąāąöü %s ē ņūļąģ %s"
-
-#: ../../fs.pm_.c:620 ../../fs.pm_.c:649 ../../fs.pm_.c:655
-#, c-format
-msgid "mounting partition %s in directory %s failed"
-msgstr ""
-
-#: ../../fs.pm_.c:640
-#, c-format
-msgid "fsck failed with exit code %d or signal %d"
-msgstr ""
-
-#: ../../fs.pm_.c:670 ../../partition_table.pm_.c:596
-#, c-format
-msgid "error unmounting %s: %s"
-msgstr "ļąģūėźą šąēģąķöišąāąķķ˙ %s: %s"
-
-#: ../../fsedit.pm_.c:21
-msgid "simple"
-msgstr ""
-
-#: ../../fsedit.pm_.c:25
-msgid "with /usr"
-msgstr ""
-
-#: ../../fsedit.pm_.c:30
-msgid "server"
-msgstr "ńåšāåš"
-
-#: ../../fsedit.pm_.c:467
-#, fuzzy
-msgid "You can't use JFS for partitions smaller than 16MB"
-msgstr "Āū ķå ģīęąöå šąēįiāąöü ķą šąēäåėū, ļąģåš ˙źiõ ģåķåé ēą 16 Ģį"
-
-#: ../../fsedit.pm_.c:468
-msgid "You can't use ReiserFS for partitions smaller than 32MB"
-msgstr "Āū ķå ģīęąöå šąēįiāąöü ķą šąēäåėū, ļąģåš ˙źiõ ģåķåé ēą 32 Ģį"
-
-#: ../../fsedit.pm_.c:477
-msgid "Mount points must begin with a leading /"
-msgstr "Ļóķźņ ģąķöišąāąķķ˙ ļąāiķåķ ļą÷ūķąööą ē /"
-
-#: ../../fsedit.pm_.c:478
-#, c-format
-msgid "There is already a partition with mount point %s\n"
-msgstr "Óęī øńöü šąēäēåė ē ļóķźņąģ ģąķöišąāąķķ˙ %s\n"
-
-#: ../../fsedit.pm_.c:482
-#, c-format
-msgid "You can't use a LVM Logical Volume for mount point %s"
-msgstr ""
-
-#: ../../fsedit.pm_.c:484
-msgid "This directory should remain within the root filesystem"
-msgstr "Ćżņū źąņąėīć ļąā³ķåķ ēķąõīäē³ööą ¢ķóņšū źąšąķøāąé ōąéėąāąé ń³ńņżģū"
-
-#: ../../fsedit.pm_.c:486
-msgid "You need a true filesystem (ext2, reiserfs) for this mount point\n"
-msgstr ""
-"Āąģ ķåąįõīäķą ēąäąöü ļšąāiėüķū ņūļ ōąéėąāąé ńińņżģū (ext2, reiserfs)\n"
-"äė˙ ćżņąé źšīļźi ģąķöišąāąķķ˙\n"
-
-#: ../../fsedit.pm_.c:488
-#, fuzzy, c-format
-msgid "You can't use an encrypted file system for mount point %s"
-msgstr ""
-"Āąģ ķåąįõīäķą ēąäąöü ļšąāiėüķū ņūļ ōąéėąāąé ńińņżģū (ext2, reiserfs)\n"
-"äė˙ ćżņąé źšīļźi ģąķöišąāąķķ˙\n"
-
-#: ../../fsedit.pm_.c:546
-#, fuzzy
-msgid "Not enough free space for auto-allocating"
-msgstr "Ķå õąļąå ļšąńņīšū äė˙ ńņāąšżķķ˙ ķīāūõ šąēäēåėą¢"
-
-#: ../../fsedit.pm_.c:548
-msgid "Nothing to do"
-msgstr ""
-
-#: ../../fsedit.pm_.c:612
-#, c-format
-msgid "Error opening %s for writing: %s"
-msgstr "Ļąģūėźą ąäźšūöö˙ %s äė˙ ēąļińó: %s"
-
-#: ../../fsedit.pm_.c:697
-msgid ""
-"An error has occurred - no valid devices were found on which to create new "
-"filesystems. Please check your hardware for the cause of this problem"
-msgstr ""
-"Ļąģūėźą: äė˙ ńņāąšżķķ˙ ķīāūõ ōąéėąāūõ ńińņżģą¢ ķå ēķąéäēåķū ąäļąāåäķū˙ \n"
-"ļšūėąäū. Ļšąāåšöå ąįńņąė˙āąķķå äė˙ ļīųóźó iģąāåšķąé ļšū÷ūķū."
-
-#: ../../fsedit.pm_.c:720
-msgid "You don't have any partitions!"
-msgstr "Āū ķå ńņāąšūėi ąķi˙źiõ šąēäēåėą¢!"
-
-#: ../../help.pm_.c:13
-msgid ""
-"GNU/Linux is a multiuser system, and this means that each user can have his\n"
-"own preferences, his own files and so on. You can read the ``User Guide''\n"
-"to learn more. But unlike \"root\", which is the administrator, the users\n"
-"you will add here will not be entitled to change anything except their own\n"
-"files and their own configuration. You will have to create at least one\n"
-"regular user for yourself. That account is where you should log in for\n"
-"routine use. Although it is very practical to log in as \"root\" everyday,\n"
-"it may also be very dangerous! The slightest mistake could mean that your\n"
-"system would not work any more. If you make a serious mistake as a regular\n"
-"user, you may only lose some information, but not the entire system.\n"
-"\n"
-"First, you have to enter your real name. This is not mandatory, of course\n"
-"as you can actually enter whatever you want. DrakX will then take the first\n"
-"word you have entered in the box and will bring it over to the \"User\n"
-"name\". This is the name this particular user will use to log onto the\n"
-"system. You can change it. You then have to enter a password here. A\n"
-"non-privileged (regular) user's password is not as crucial as \"root\"' one\n"
-"from a security point of view, but that is no reason to neglect it: after\n"
-"all, your files are at risk.\n"
-"\n"
-"If you click on \"Accept user\", you can then add as many as you want. Add\n"
-"a user for each one of your friends: your father or your sister, for\n"
-"example. When you finish adding all the users you want, select \"Done\".\n"
-"\n"
-"Clicking the \"Advanced\" button allows you to change the default \"shell\"\n"
-"for that user (bash by default)."
-msgstr ""
-
-#: ../../help.pm_.c:41
-#, fuzzy
-msgid ""
-"Listed above are the existing Linux partitions detected on your hard 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"
-"able to install enough software. If you want to store your data on a\n"
-"separate partition, you will also need to create a partition for \"/home\"\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 drive type\", \"hard 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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
-"\"second lowest SCSI ID\", etc."
-msgstr ""
-"Äąėåé ąäēķą÷ąķū óńå ³ńķóž÷ū˙ šąēäēåėū Linux, ēķīéäēåķū˙ ķą āąųūģ äūńźó,\n"
-" ˙ź³˙ ēšīįėåķū ģąéńņšąģ āūėó÷żķķ˙ äūńźą¢. Āū ģīęąöå ļąź³ķóöü ³õ ņąź ³ "
-"āūźąšūńņ¢āąöü\n"
-" äąėåé, įī ˙ķū äīįšą ļąäūõīäē˙öü äė˙ ēāū÷ąéķąćą āūźąšūńņąķķ˙. Źąė³ āū\n"
-" ¢ķīń³öå ēģåķū, āū ļąā³ķķū, āūėó÷ūöü õąö˙ šąēäēåė (\"/\"). Šąį³öå\n"
-" šąēäēåė ķå āåėüģ³ ģąėūģ, įī ¢ ąäāąšīņķūģ āūļąäźó āū ķ˙ ēäīėååöå óńņąė˙āąöü\n"
-" äąńņąņźīāą ļšąćšąģķąćą ēąįåńļ˙÷żķķ˙.Źąė³ āū ęąäąåöå ēąõąāąöü āąųū˙ "
-"äąäēåķū˙\n"
-" ķą ąńīįķūģ šąēäēåėå, āū ļąā³ķķū ąįšąöü ļóķźņ ģąķö³šąāąķķ˙ \"/home\".\n"
-"\n"
-"Źīęķū šąēäēåė ļąēķą÷ąķū ķąńņóļķūģ ÷ūķąģ \"²ģ˙\", \"Ńāīéńņāū\".\n"
-"\n"
-"\n"
-"\"²ģ˙\" źąäąāąķą ņąź - \"ņūļ äūńźó\", \"ķóģąš äūńźó\", \"ķóģąš šąēäēåėó\" \n"
-"(ķąļšūźėąä, \"hda1\").\n"
-"\n"
-"\n"
-"\"Ņūļ äūńźó\" źąäąāąķū ˙ź \"hd\", źąė³ ćżņą IDE, ³ \"sd\" źąė³ SCSI.\n"
-" * \"ą\" \"master\" ķą ļåšųąńķūģ źąķąėå IDE \n"
-" * \"b\" \"slave\" ķą ļåšųąńķūģ źąķąėå IDE\n"
-" * \"c\" \"master\" ķą äšóćąńķūģ źąķąėå IDE\n"
-" * \"d\" \"slave\" ķą äšóćąńķūģ źąķąėå IDE\n"
-"\n"
-"\n"
-"Äė˙ SCSI äūńźą¢ - \"a\" ćżņą \"ļåšųąńķū ęīšńź³ äūńź\", \"b\" - \"äšóćąńķū "
-"ęīšńź³ äūńź\", ³ ć.ä."
-
-#: ../../help.pm_.c:72
-msgid ""
-"The Mandrake Linux 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."
-msgstr ""
-
-#: ../../help.pm_.c:77
-msgid ""
-"It is now time to specify which programs you wish to install on your\n"
-"system. There are thousands of packages available for Mandrake Linux, 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"
-"be asked to specify the CDs you currently have (in Expert mode only). Check\n"
-"the CD labels and highlight the boxes corresponding to the CDs you have\n"
-"available for installation. Click \"OK\" when you are ready to continue.\n"
-"\n"
-"Packages are sorted in groups corresponding to a particular use of your\n"
-"machine. The groups themselves are sorted into four sections:\n"
-"\n"
-" * \"Workstation\": if you plan to use your machine as a workstation, "
-"select\n"
-"one or more of the corresponding groups;\n"
-"\n"
-" * \"Development\": if your machine is to be used for programming, choose\n"
-"the desired group(s);\n"
-"\n"
-" * \"Server\": if your machine is intended to be a server, you will be able\n"
-"to select which of the most common services you wish to install on your\n"
-"machine;\n"
-"\n"
-" * \"Graphical Environment\": finally, this is where you will choose your\n"
-"preferred graphical environment. At least one must be selected if you want\n"
-"to have a graphical workstation!\n"
-"\n"
-"Moving the mouse cursor over a group name will display a short explanatory\n"
-"text about that group. If you deselect all groups when performing a regular\n"
-"installation (by opposition to an upgrade), a dialog will pop up proposing\n"
-"different options for a minimal installation:\n"
-"\n"
-" * \"With X\": install the fewer packages possible to have a working\n"
-"graphical desktop;\n"
-"\n"
-" * \"With basic documentation\": installs the base system plus basic\n"
-"utilities and their documentation. This installation is suitable for\n"
-"setting up a server;\n"
-"\n"
-" * \"Truly minimal install\": will install the strict minimum necessary to\n"
-"get a working Linux system, in command line only. This installation is\n"
-"about 65Mb large.\n"
-"\n"
-"You can check the \"Individual package selection\" box, which is useful if\n"
-"you are familiar with the packages being offered or if you want to have\n"
-"total control over what will be installed.\n"
-"\n"
-"If you started the installation in \"Upgrade\" mode, you can unselect all\n"
-"groups to avoid installing any new package. This is useful for repairing or\n"
-"updating an existing system."
-msgstr ""
-
-#: ../../help.pm_.c:128
-msgid ""
-"Finally, depending on whether or not you selected individual packages, you\n"
-"will be presented a tree containing all packages classified by groups and\n"
-"subgroups. While browsing the tree, you can select entire groups,\n"
-"subgroups, or individual packages.\n"
-"\n"
-"Whenever you select a package on the tree, a description appears on the\n"
-"right. When your selection is finished, click the \"Install\" button which\n"
-"will then launch the installation process. Depending on the speed of your\n"
-"hardware and the number of packages that need to be installed, it may take\n"
-"a while to complete the process. An estimate of the time it will take to\n"
-"install everything is displayed on the screen, to help you gauge if there\n"
-"is sufficient time to enjoy a cup of coffee.\n"
-"\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 Mandrake Linux, 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 Mandrake Linux 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"
-"default. !!\n"
-"\n"
-"The \"Automatic dependencies\" option simply disables the warning dialog\n"
-"which appears whenever the installer automatically selects a package. This\n"
-"occurs because it has determined that it needs to satisfy a dependency with\n"
-"another package in order to successfully complete the installation.\n"
-"\n"
-"The tiny floppy disk icon at the bottom of the list allows to load the\n"
-"package list chosen during a previous installation. Clicking on this icon\n"
-"will ask you to insert a floppy disk previously created at the end of\n"
-"another installation. See the second tip of last step on how to create such\n"
-"a floppy."
-msgstr ""
-
-#: ../../help.pm_.c:164
-msgid ""
-"You are now proposed to set up your Internet/network connection. If you\n"
-"wish to connect your computer to the Internet or to a local network, click\n"
-"\"OK\". The autodetection of network devices and modem will be launched. If\n"
-"this detection fails, uncheck the \"Use auto detection\" box next time. You\n"
-"may also choose not to configure the network, or do it later; in that case,\n"
-"simply click the \"Cancel\" button.\n"
-"\n"
-"Available connections are: traditional modem, ISDN modem, ADSL connection,\n"
-"cable modem, and finally a simple LAN connection (Ethernet).\n"
-"\n"
-"Here, we will not detail each configuration. Simply make sure that you have\n"
-"all the parameters from your Internet Service Provider or system\n"
-"administrator.\n"
-"\n"
-"You can consult the ``User Guide'' chapter about Internet connections for\n"
-"details about the configuration, or simply wait until your system is\n"
-"installed and use the program described there to configure your connection.\n"
-"\n"
-"If you wish to configure the network later after installation, or if you\n"
-"are finished configuring your network connection, click \"Cancel\"."
-msgstr ""
-
-#: ../../help.pm_.c:186
-msgid ""
-"You may now choose which services you wish to start at boot time.\n"
-"\n"
-"Here are presented all the services available with the current\n"
-"installation. Review them carefully and uncheck those which are not always\n"
-"needed at boot time.\n"
-"\n"
-"You can get a short explanatory text about a service by selecting a\n"
-"specific service. However, if you are not sure whether a service is useful\n"
-"or not, 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 will probably not want to start any services which you do not\n"
-"need. Please remember that several services can be dangerous if they are\n"
-"enabled on a server. In general, select only the services you really need.\n"
-"!!"
-msgstr ""
-
-#: ../../help.pm_.c:203
-msgid ""
-"GNU/Linux manages time in GMT (Greenwich Mean Time) and translates it in\n"
-"local time according to the time zone you selected. It is however possible\n"
-"to deactivate this by deselecting \"Hardware clock set to GMT\" so that the\n"
-"hardware clock is the same as the system clock. This is useful when the\n"
-"machine is hosting another operating system like Windows.\n"
-"\n"
-"The \"Automatic time synchronization\" option will automatically regulate\n"
-"the clock by connecting to a remote time server on the Internet. In the\n"
-"list that is presented, choose a server located near you. Of course you\n"
-"must have a working Internet connection for this feature to work. It will\n"
-"actually install on your machine a time server which can be optionally used\n"
-"by other machines on your local network."
-msgstr ""
-
-#: ../../help.pm_.c:217
-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 Mandrake Linux rely. In this section, DrakX\n"
-"will try to configure X automatically.\n"
-"\n"
-"It is extremely rare for it to fail, unless the hardware is very old (or\n"
-"very new). If it succeeds, it will start X automatically with the best\n"
-"resolution possible, depending on the size of the monitor. A window will\n"
-"then appear and ask you if you can see it.\n"
-"\n"
-"If you are doing an \"Expert\" installation, you will enter the X\n"
-"configuration wizard. See the corresponding section of the manual for more\n"
-"information about this wizard.\n"
-"\n"
-"If you can see the message during the test, and answer \"Yes\", then DrakX\n"
-"will proceed to the next step. If you cannot see the message, it simply\n"
-"means that the configuration was wrong and the test will automatically end\n"
-"after 10 seconds, restoring the screen."
-msgstr ""
-
-#: ../../help.pm_.c:237
-msgid ""
-"The first time you try the X configuration, you may not be very satisfied\n"
-"with its display (screen is too small, shifted left or right...). Hence,\n"
-"even if X starts up correctly, DrakX then asks you if the configuration\n"
-"suits you. It will also propose to change it by displaying a list of valid\n"
-"modes it could find, asking you to select one.\n"
-"\n"
-"As a last resort, if you still cannot get X to work, choose \"Change\n"
-"graphics card\", select \"Unlisted card\", and when prompted on which\n"
-"server, choose \"FBDev\". This is a failsafe option which works with any\n"
-"modern graphics card. Then choose \"Test again\" to be sure."
-msgstr ""
-
-#: ../../help.pm_.c:249
-msgid ""
-"Finally, you will be asked whether you want to see the graphical interface\n"
-"at boot. Note this question will be asked even if you chose not to test the\n"
-"configuration. Obviously, you want to answer \"No\" if your machine is to\n"
-"act as a server, or if you were not successful in getting the display\n"
-"configured."
-msgstr ""
-
-#: ../../help.pm_.c:256
-msgid ""
-"The Mandrake LinuxCD-ROM has a built-in rescue mode. You can access it by\n"
-"booting from the CD-ROM, press the >>F1<< key at boot and type >>rescue<<\n"
-"at the prompt. But in case your computer cannot boot from the CD-ROM, you\n"
-"should come back to this step for help in at least two situations:\n"
-"\n"
-" * when installing the bootloader, DrakX will rewrite the boot sector (MBR)\n"
-"of your main disk (unless you are using another boot manager), to allow you\n"
-"to start up with either Windows or GNU/Linux (assuming you have Windows in\n"
-"your system). If you need to reinstall Windows, the Microsoft install\n"
-"process will rewrite the boot sector, and then you will not be able to\n"
-"start GNU/Linux!\n"
-"\n"
-" * if a problem arises and you cannot start up GNU/Linux from the hard "
-"disk,\n"
-"this floppy disk will be the only means of starting up GNU/Linux. It\n"
-"contains a fair number of system tools for restoring a system, which has\n"
-"crashed due to a power failure, an unfortunate typing error, a typo in a\n"
-"password, or any other reason.\n"
-"\n"
-"When you click on this step, you will be asked to enter a disk inside the\n"
-"drive. The floppy disk you will insert must be empty or contain data which\n"
-"you do not need. You will not have to format it since DrakX will rewrite\n"
-"the whole disk."
-msgstr ""
-
-#: ../../help.pm_.c:280
-#, fuzzy
-msgid ""
-"At this point, you need to choose where you want to install the Mandrake\n"
-"Linux operating system on your hard drive. If your hard drive is empty or\n"
-"if an existing operating system is using all the available space, you will\n"
-"need to partition it. Basically, partitioning a hard drive consists of\n"
-"logically dividing it to create space to install your new Mandrake Linux\n"
-"system.\n"
-"\n"
-"Because the partitioning process' effects are usually irreversible,\n"
-"partitioning can be intimidating and stressful if you are an inexperienced\n"
-"user. Fortunately, there is a wizard which simplifies this process. Before\n"
-"beginning, please consult the manual and take your time.\n"
-"\n"
-"If you are running the installation in Expert mode, you will enter\n"
-"DiskDrake, the Mandrake Linux partitioning tool, which allows you to\n"
-"fine-tune your partitions. See the DiskDrake section in the ``User Guide''.\n"
-"From the installation interface, you can use the wizards as described here\n"
-"by clicking the dialog's \"Wizard\" button.\n"
-"\n"
-"If partitions have already been defined, either from a previous\n"
-"installation or from another partitioning tool, simply select those to\n"
-"install your Linux system.\n"
-"\n"
-"If partitions are not defined, you will need to create them using the\n"
-"wizard. Depending on your hard drive configuration, several options are\n"
-"available:\n"
-"\n"
-" * \"Use free space\": this option will simply lead to an automatic\n"
-"partitioning of your blank drive(s). You will not be prompted further;\n"
-"\n"
-" * \"Use existing partition\": the wizard has detected one or more existing\n"
-"Linux partitions on your hard drive. If you want to use them, choose this\n"
-"option;\n"
-"\n"
-" * \"Use the free space on the Windows; partition\": if MicrosoftWindows is\n"
-"installed on your hard drive and takes all the space available on it, you\n"
-"have to create free space for Linux data. To do so, you can delete your\n"
-"MicrosoftWindows partition and data (see ``Erase entire disk'' or ``Expert\n"
-"mode'' solutions) or resize your MicrosoftWindows partition. Resizing can\n"
-"be performed without the loss of any data, provided you previously\n"
-"defragment the Windows partition. Backing up your data won't hurt either..\n"
-"This solution is recommended if you want to use both Mandrake Linux and\n"
-"MicrosoftWindows on the same computer.\n"
-"\n"
-" Before choosing this option, please understand that after this "
-"procedure,\n"
-"the size of your MicrosoftWindows partition will be smaller than at the\n"
-"present time. You will have less free space under MicrosoftWindows to store\n"
-"your data or to install new software;\n"
-"\n"
-" * \"Erase entire disk\": if you want to delete all data and all partitions\n"
-"present on your hard drive and replace them with your new Mandrake Linux\n"
-"system, choose this option. Be careful with this solution because you will\n"
-"not be able to revert your choice after you confirm;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Remove Windows\": this will simply erase everything on the drive and\n"
-"begin fresh, partitioning everything from scratch. All data on your disk\n"
-"will be lost;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Expert mode\": choose this option if you want to manually partition\n"
-"your hard drive. Be careful it is a powerful but dangerous choice. You can\n"
-"very easily lose all your data. Hence, do not choose this unless you know\n"
-"what you are doing."
-msgstr ""
-"Ó ćżņūģ ļóķźöå, āū ļąā³ķķū ąįšąöü äēå ķą āąųūģ ęīšńź³ģ \n"
-"äūńźó óńņąė˙āąöü ąļåšąöūéķóž ń³ńņżģó Mandrake Linux. Źąė³ äūńź ļóńņū\n"
-"ąėüįī ¢ńņąėūāąķą˙ ąļåšąöūéķą˙ ąļåšąöūéķą˙ ń³ńņżģą āūźąšūńņī¢āąå ¢ńž\n"
-"äūńźąāóž ļšąńņīšó, āū ļąā³ķķū šąēüį³öü ˙ćī ķą šąēäēåėū. Ó ąńķī¢ķūģ,\n"
-"šąēį³ööø šąēäēåėą¢ ęīšńźąćą äūńźó ńźėąäąåööą ē ėąć³÷ķąćą äē˙ėåķķ˙ ˙ćī\n"
-"äūńźąāąé ļšąńņīšū äēåė˙ ¢ńņąė˙āąķķ˙ āąųąé ķīāąé ń³ńņżģū Mandrake Linux.\n"
-"\n"
-"Ņąģó ˙ź āūķ³ź³ šąēį³öö˙ šąēäēåėą¢ ēāū÷ąéķą ķåēāąšīņķū˙, ćżņū ļšąöżń \n"
-"ģīęą įūöü ļóęąž÷ūģ ³ ķąļšóęąķūģ, źąė³ āū ķåāīļūņķū źąšūńņąėüķ³ź. Ćżņū\n"
-"ģąéńņąš ńļšąų÷ąå ćżņū ļšąöżń. Ļåšąä ņūģ ˙ź ļą÷ąöü ēā˙šķ³öåń˙, źąė³\n"
-"ėąńźą, äą äąāåäź³.\n"
-"\n"
-"Āąģ ļąņšżįķą, ńąģą ģąėą, äāą šąēäēåėū. Ļåšųū ķåļąńšżäķą äė˙ ąļåšąöūéķąé\n"
-"ń³ńņżģū, ³ äšóć³ äė˙ ā³šņóąėüķąé ļąģ˙ö³ (Swap - šąēäēåė).\n"
-"\n"
-"Źąė³ šąēäēåėū ¢ęī āūēķą÷ąķū (ó ļąļ˙šżäķ˙å ¢ńņąė˙āąķķå ö³ ³ķųūģ \n"
-"³ķńņšóģąķņąģ āūēķą÷żķķ˙ šąēäēåėą¢), āū ļąā³ķķū ąįšąöü ņū˙, ˙ź³˙ ęąäąåöå\n"
-"āūźąšūńņī¢āąöü äė˙ ¢ńņąė˙āąķķ˙ ń³ńņżģū.\n"
-"\n"
-"\n"
-"Źąė³ šąēäēåėū ķå įūė³ āūēķą÷ąķū, āū ļąā³ķķū ³õ ńņāąšūöü. Źąį ēšąį³öü \n"
-"ćżņą, ńźąšūńņąéöå ģąéńņšą, äąńņóļķąćą āūųżé. Ó ēąėåęķąńö³ ąä \n"
-"źąķō³ćóšąöū³ ęīšńņźąćą äūńźó, ģīćęą įūöü ēšīįėåķą ķąńņóļķąå:\n"
-"\n"
-"* Āūźąšūńņąķķå ³ńķóž÷ąćą šąēäēåėó: ģąéńņąš ēķąéųī¢ ąäē³ķ ö³ ķåźąėüź³.\n"
-"³ńķóž÷ūõ šąēäēåėą¢ ķą āąųūģ ęīšńź³ģ äūńźó. Źąė³ āū ęąäąåöå ³õ ēąõąāąöü,\n"
-"ąį˙šūöå ćåņóž īļöūž.\n"
-"\n"
-"\n"
-"* Ļī¢ķą˙ ą÷ūńņźą äūńźó: ąį˙šūöå ćżņą, źąė³ āū ęąäąåöå āūäąė³öü óńåäąäēåķū˙ ³ "
-"šąēäēåėū ˙ź³˙ ³ńķóžöü\n"
-" ķą āąųūģ äūńźó ³ ēąģ˙ķ³öü ķą Mandrake Linux. Įóäēöå óāąęė³āū ē ćżņąéīļöū˙é, "
-"įī ćżņū ļšąöżń ķåēāąšīņķū.\n"
-"\n"
-"\n"
-"* Āūźąšūńņąķķå āīėüķąé ļšąńņīšū ķą šąēäēåėå Windows: źąė³ MicrosoftWindows "
-"óńņąė˙āąķą ķą āąųūģ ęīšńź³ģ\n"
-" äūńźó ³ āūźąšūńņī¢āąå ¢ńž äąńņóļķóž ļšąńņīšó, āū ļąā³ķķū ńņāąšūöüāīėüķóž "
-"ļšąńņīšó äė˙ äąäēåķūõ Linux\n"
-"Źąį ēšąį³öü ćżņą, āū ģīęąöå āūäąė˙öü āąų šąēäēåė Windows ³ äąäēåķū˙(ćė."
-"\"Ą÷ūńņźą óń˙ćī äūńźó\" ąėüįī\n"
-" \"Šżęūģ żźńļåšņó\") ąėüįī ēģ˙ķ³öü ļąģåšū āąųąćą šąēäēåėó WindowsĒģ˙ķåķķå "
-"ļąģåšą¢ ģīęą įūöü āūźąķąķą\n"
-" įåē ńņšąņū äąäēåķūõ. Ćżņą˙ īļöū˙ šżźąģåķäóåööą, źąė³ āū "
-"ęąäąåöåāūźąšūńņī¢āąöü Mandrake Linux ³\n"
-" Microsoft Windows ķą ąäķūģ ³ ņūģ ęą źąģļ'žņżšū.\n"
-"\n"
-" Ļåšąä āūįąšąģ ćżņąćą, źąė³ ėąńźą, ēüā˙šķ³öå ¢āąćó, ķą ņīå, ųņīźīėüźąńüöü "
-"äąńņóļķąé āīėüķąé\n"
-" ļšąńņīšū ļąä Microsoft Windows ēģåķųūööą.\n"
-"\n"
-"\n"
-"* Šżęūģ żźńļåšņó: āū ģīęąöå ąįšąöü ćżņóž īļöūž, źąė³ āū ęąäąåöåšąēį³öü "
-"šąēäēåėū óėąńķą šóźąģ³.\n"
-" Įóäēöå ¢āąęė³āū˙ ąį³šąž÷ū ćżņą. Ćżņą˙ īļöū˙ ģąćóņķą˙ ąėå äąāīė³ķåį˙ńļå÷ķą˙, "
-"āū ģīęąöå\n"
-" ėøćźą ēćóį³öü ńāąå äąäēåķū˙. Ņąģó ķå ąį³šąéöå ćżņóž īļöūž źąė³ āūķå āåäąåöå "
-"ųņī šīį³öå."
-
-#: ../../help.pm_.c:347
-msgid ""
-"There you are. Installation is now complete and your GNU/Linux system is\n"
-"ready to use. Just click \"OK\" to reboot the system. You can start\n"
-"GNU/Linux or Windows, whichever you prefer (if you are dual-booting), as\n"
-"soon as the computer has booted up again.\n"
-"\n"
-"The \"Advanced\" button (in Expert mode only) shows two more buttons to:\n"
-"\n"
-" * \"generate auto-install floppy\": to create an installation floppy disk\n"
-"which will automatically perform a whole installation without the help of\n"
-"an operator, similar to the installation you just configured.\n"
-"\n"
-" Note that two different options are available after clicking the button:\n"
-"\n"
-" * \"Replay\". This is a partially automated installation as the\n"
-"partitioning step (and only this one) remains interactive;\n"
-"\n"
-" * \"Automated\". Fully automated installation: the hard disk is "
-"completely\n"
-"rewritten, all data is lost.\n"
-"\n"
-" This feature is very handy when installing a great number of similar\n"
-"machines. See the Auto install section on our web site;\n"
-"\n"
-" * \"Save packages selection\"(*): saves the package selection as done\n"
-"previously. Then, when doing another installation, insert the floppy inside\n"
-"the drive and run the installation going to the help screen by pressing on\n"
-"the [F1] key, and by issuing >>linux defcfg=\"floppy\"<<.\n"
-"\n"
-"(*) You need a FAT-formatted floppy (to create one under GNU/Linux, type\n"
-"\"mformat a:\")"
-msgstr ""
-
-#: ../../help.pm_.c:378
-#, fuzzy
-msgid ""
-"Any partitions that have been newly defined must be formatted for use\n"
-"(formatting means creating a filesystem).\n"
-"\n"
-"At this time, you may wish to reformat some already existing partitions to\n"
-"erase any data they contain. If you wish to do that, please select those\n"
-"partitions as well.\n"
-"\n"
-"Please note that it is 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\n"
-"reformat partitions containing data that you wish to keep (typically\n"
-"\"/home\").\n"
-"\n"
-"Please be careful when selecting partitions. After formatting, all data on\n"
-"the selected partitions will be deleted and you will not be able to recover\n"
-"any of it.\n"
-"\n"
-"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"
-"Mandrake Linux operating system installation.\n"
-"\n"
-"Click on \"Advanced\" if you wish to select partitions that will be checked\n"
-"for bad blocks on the disk."
-msgstr ""
-"Óńå šąēäēåėū, ˙ź³˙ įūė³ ņīėüź³ āūēķą÷ąķū ļąā³ķķū įūöü\n"
-"ąäōąšģąņąāąķū (ōąšģąņąāąöü - ēķą÷ūöü ńņāąšūöü ōąéėąāąž ń³ńņżģó).\n"
-"\n"
-"\n"
-"Ó ņīé ęą ÷ąń, āū ģīęąöå ļåšąōąšģąņąāąöü óęī ³ńķóž÷ū˙ šąēäēåėū, źąį ńöøšö³\n"
-"äąäēåķū˙ ˙ź³˙ ˙ķū ¢ņšūģė³āąžöü. Źąė³ āū ęąäąåöå ēšąį³öü ćżņą, ąį˙šūöå "
-"šąēäēåėū\n"
-"˙ź³˙ ęąäąåöå ąäōąšģąņąāąöü.\n"
-"\n"
-"\n"
-"Ēą¢āąęöå, āū ļąā³ķķū ļåšąōąšģąņąāąöü óńå ńņāīšąķū˙ šąēäēåėū. Āū ļąā³ķķū\n"
-"ļåšąōąšģąņąāąöü šąēäēåėū, ˙ź³˙ ¢ņšūģė³āąžöü ąļåšąöūéķóž ń³ńņżģó (ņūļó \"/"
-"\",\n"
-"\"/usr\" ö³ \"/var\"), ąėå ķå ļąā³ķķū ļåšąōąšģąņąāąöü šąēäēåėū, ˙ź³˙ "
-"óņšūģė³āąžöü\n"
-"äąäēåķū˙, ˙ź³˙ āū ęąäąåöå ēąõąāąöü (ēāū÷ąéķą /home).\n"
-"\n"
-"\n"
-"Źąė³ ėąńźą, įóäēöå ¢āąęė³āū˙, ąį³šąž÷ū šąēäēåėū, įī ļąńė˙ ōąšģąņąāąķķ˙\n"
-"óńå äąäēåķū˙ įóäóöü ķåēāąšīņķą āūäąėåķū˙.\n"
-"\n"
-"\n"
-"Ķąö³ńķ³öå \"Ņąź\" źąė³ āū ćąņīāū˙ ōąšģąņąāąöü šąēäēåė˙.\n"
-"\n"
-"\n"
-"Ķąö³ńķ³öå \"Ąäģåķą\" źąė³ ęąäąåöå ąįšąöü ³ķųū˙ šąēäēåėū äė˙ "
-"óńņąė˙āąķķ˙āąųąé\n"
-"ķīāąé ąļåšąöūéķąé ń³ńņżģū Mandrake Linux."
-
-#: ../../help.pm_.c:404
-#, fuzzy
-msgid ""
-"Your new Mandrake Linux operating system is currently being installed.\n"
-"Depending on the number of packages you will be installing and the speed of\n"
-"your computer, this operation could take from a few minutes to a\n"
-"significant amount of time.\n"
-"\n"
-"Please be patient."
-msgstr ""
-"Āąųą ķīāą˙ ąļåšąöūéķą˙ ń³ńņżģą Mandrake Linux ēąšąē óńņąėø¢āąåööą.\n"
-"Ćżņą ąļåšąöū˙ ąäūģå ļż¢ķū ÷ąń(ųņī ēąėåęūöü ąä ļąģåšó ąįšąķąćą ¢ńņąė˙āąķķ˙ ³ "
-"õóņźąńö³\n"
-" źąģļ'žņżšó) .\n"
-"\n"
-"\n"
-"Źąė³ ėąńźą, ļą÷ąźąéöå."
-
-#: ../../help.pm_.c:412
-msgid ""
-"At the time you are installing Mandrake Linux, it is likely that some\n"
-"packages have been updated since the initial release. Some bugs may have\n"
-"been fixed, and security issues solved. To allow you to benefit from these\n"
-"updates, you are now proposed to download them from the Internet. Choose\n"
-"\"Yes\" if you have a working Internet connection, or \"No\" if you prefer\n"
-"to install updated packages later.\n"
-"\n"
-"Choosing \"Yes\" displays a list of places from which updates can be\n"
-"retrieved. Choose the one nearest you. Then a package-selection tree\n"
-"appears: review the selection, and press \"Install\" to retrieve and\n"
-"install the selected package(s), or \"Cancel\" to abort."
-msgstr ""
-
-#: ../../help.pm_.c:425
-msgid ""
-"Before continuing, you should read carefully the terms of the license. It\n"
-"covers the whole Mandrake Linux 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."
-msgstr ""
-
-#: ../../help.pm_.c:432
-msgid ""
-"At this point, it is time to choose the security level desired for the\n"
-"machine. As a rule of thumb, the more exposed the machine is, and the more\n"
-"the data stored in it is crucial, the higher the security level should be.\n"
-"However, a higher security level is generally obtained at the expense of\n"
-"easiness of use. Refer to the \"msec\" chapter of the ``Reference Manual''\n"
-"to get more information about the meaning of these levels.\n"
-"\n"
-"If you do not know what to choose, keep the default option."
-msgstr ""
-
-#: ../../help.pm_.c:442
-msgid ""
-"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandrake Linux 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"
-"partitions must be defined.\n"
-"\n"
-"To create partitions, you must first select a hard 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"
-"\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"
-"\n"
-" * \"More\": gives access to additional features:\n"
-"\n"
-" * \"Save partition table\": saves the partition table to a floppy. "
-"Useful\n"
-"for later partition-table recovery if necessary. It is strongly recommended\n"
-"to perform this step;\n"
-"\n"
-" * \"Restore partition table\": allows to restore a previously saved\n"
-"partition table from floppy disk;\n"
-"\n"
-" * \"Rescue partition table\": if your partition table is damaged, you "
-"can\n"
-"try to recover it using this option. Please be careful and remember that it\n"
-"can fail;\n"
-"\n"
-" * \"Reload partition table\": discards all changes and loads your "
-"initial\n"
-"partition table;\n"
-"\n"
-" * \"Removable media automounting\": unchecking this option will force "
-"users\n"
-"to manually mount and unmount removable medias such as floppies and\n"
-"CD-ROMs.\n"
-"\n"
-" * \"Wizard\": 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 knowledge of\n"
-"partitioning;\n"
-"\n"
-" * \"Undo\": use this option to cancel your changes;\n"
-"\n"
-" * \"Toggle to normal/expert mode\": allows additional actions on "
-"partitions\n"
-"(type, options, format) and gives more information;\n"
-"\n"
-" * \"Done\": when you are finished partitioning your hard 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"
-"partitions using [Tab] and [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"
-"\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_.c:513
-#, fuzzy
-msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
-"Please choose the one you want to resize in order to install your new\n"
-"Mandrake Linux 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"
-"\"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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard 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"
-"disk or partition is called \"C:\")."
-msgstr ""
-"Ķą āąųūģ äūńźó įūėī ēķīéäēåķą įīėåé ēą ąäē³ķ šąēäēåė\n"
-"Windows. Źąė³ ėąńźą, ąį˙šūöå ņīé, ļąģåš ˙źīćą ęąäąåöå ēģ˙ķ³öü, "
-"źąįóńņąė˙āąöü\n"
-"ń³ńņżģó Mandrake Linux.\n"
-"\n"
-"\n"
-"Äė˙ iōąšģąöū³, źīęķū šąēäēåė ąäēķą÷ąķū ˙ź: \"Linux ³ģ˙\", \"Windows\n"
-"³ģ˙\" \"Cāīéńņāū\".\n"
-"\"Linux ²ģ˙\" źąäąāąķą ņąź - \"ņūļ äūńźó\", \"ķóģąš äūńźó\",\"ķóģąš "
-"šąēäēåėó\n"
-"(ķąļšūźėąä, \"hda1\").\n"
-"\n"
-"\n"
-"\"Ņūļ äūńźó\" źąäąāąķū ˙ź \"hd\", źąė³ ćżņą IDE, ³ \"sd\" źąė³ SCSI.\n"
-"\n"
-"\"Ķóģąš äūńźó\" - ń³ģāąė ļąńė˙ \"hd\" ö³ \"sd\". Äė˙ IDE äūńźą¢:\n"
-" * \"ą\" \"master\" ķą ļåšųąńķūģ źąķąėå IDE \n"
-" * \"b\" \"slave\" ķą ļåšųąńķūģ źąķąėå IDE\n"
-" * \"c\" \"master\" ķą äšóćąńķūģ źąķąėå IDE\n"
-" * \"d\" \"slave\" ķą äšóćąńķūģ źąķąėå IDE\n"
-"\n"
-"\n"
-"Äė˙ SCSI äūńźą¢ - \"a\" ćżņą \"ļåšųąńķū ęīšńź³ äūńź\", \"b\" - \"äšóćąńķū "
-"ęīšńź³ äūńź\", ³ ć.ä.\n"
-"\n"
-"\"Windows ²ģ˙\" ń³ģāąė āąųąćą äūńźó ¢ Windows (ļåšųū äūńź ö³\n"
-"šąēäēåė ļąēķą÷ąåööą ˙ź \"C:\")."
-
-#: ../../help.pm_.c:544
-msgid "Please be patient. This operation can take several minutes."
-msgstr "Źąė³ ėąńźą, ļą÷ąźąéöå. Ćżņą˙ ąļåšąöū˙ ąäūģå ļż¢ķū ÷ąń."
-
-#: ../../help.pm_.c:547
-#, fuzzy
-msgid ""
-"DrakX now needs to know if you want to perform a default (\"Recommended\")\n"
-"installation or if you want to have greater control (\"Expert\"). You can\n"
-"also choose to do a new install or an upgrade of an existing Mandrake Linux\n"
-"system:\n"
-"\n"
-" * \"Install\": completely wipes out the old system. In fact, depending on\n"
-"what currently holds your machine, you will be able to keep some old (Linux\n"
-"or other) partitions unchanged;\n"
-"\n"
-" * \"Upgrade\": this installation class allows to simply update the "
-"packages\n"
-"currently installed on your Mandrake Linux system. It keeps the current\n"
-"partitions of your hard drives as well as user configurations. All other\n"
-"configuration steps remain available with respect to plain installation;\n"
-"\n"
-" * \"Upgrade Packages Only\": this brand new class allows to upgrade an\n"
-"existing Mandrake Linux system while keeping all system configurations\n"
-"unchanged. Adding new packages to the current installation is also\n"
-"possible.\n"
-"\n"
-"Upgrades should work fine for Mandrake Linux systems starting from \"8.1\"\n"
-"release.\n"
-"\n"
-"Depending on your knowledge of GNU/Linux, select one of the following\n"
-"choices:\n"
-"\n"
-" * Recommended: choose this if you have never installed a GNU/Linux\n"
-"operating system. The installation will be very easy and you will only be\n"
-"asked a few questions;\n"
-"\n"
-" * Expert: if you have a good knowledge of GNU/Linux, you can choose this\n"
-"installation class. The expert installation will allow you to perform a\n"
-"highly-customized installation. Answering some of the questions can be\n"
-"difficult if you do not have a good knowledge of GNU/Linux, so do not\n"
-"choose this unless you know what you are doing."
-msgstr ""
-"Źąė³ ėąńźą, ķąö³ńķ³öå \"Óńņąėø¢źą\" źąė³ ķå ģąåööą ąķ³˙źąé ļąļ˙šżäķ˙éāåšń³³ "
-"Mandrake Linux\n"
-"ąėüįī āū ęąäąåöå āūźąšūńņī¢āąöü ķåźąėüź³ ąļåšąöūéķūõ ń³ńņżģą¢.\n"
-"\n"
-"\n"
-"Ó ēąėåęķąńö³ ąä āąųūõ āåäą¢ GNU/Linux, āū ģīęūöå ąįšąöü ąäē³ķ ē ķąńņóļķūõ "
-"źėąńą¢, źąį óńņąėø¢āąöü ³ ģąäūō³źąāąöü \n"
-"āąųóž ąļåšąöūéķóž ń³ńņżģó Mandrake Linux:\n"
-"\n"
-"* Šżźąģåķäąāąķą: ąį˙šūöå ćżņū źėąń, źąė³ āū ķ³źīė³ ķå ¢ńņąėø¢āąė³GNU/Linux. "
-"Óńņąė˙āąķķå įóäēå āåėüģ³ ļšīńņūģ,\n"
-" āąģ įóäēå ēąäąķą ņīėüź³ ķåźąėüź³ ļūņąķķ˙¢.\n"
-"\n"
-"\n"
-"* Ļą āūįąšó: źąė³ āū äąńņąņźīāą ēķąøģū˙ ē GNU/Linux, āū ģīęąöå ēšąį³öü āūįąš "
-"ģ³ę āūźąšūńņąķķåģ ń³ńņżģū ˙ź Ļšąöī¢ķą˙\n"
-" ńņąķöū˙, Ńåšāåš, Šąńļšąöī¢źą. Āū ļąā³ķķū įóäēåöå ąäźąēąöü ķą įīėüųóž "
-"źīėüźąńöü ļūņąķķ˙¢ ÷ūģ ļąä ÷ąń óńņąė˙āąķķ˙\n"
-" źėąńó \"Šżźąģżķäąāąķą\", ņąģó āū ļąā³ķķū āåäąöü, ˙ź ļšąöóå GNU/Linux, źąį "
-"ąįšąöü ćżņū źėąń óńņąė˙āąķķ˙.\n"
-"\n"
-"\n"
-"* Żźńļåšņ: āū ģīęąöå ąįšąöü ćżņū źėąń, źąė³ āū ģąåöå äīįšū˙ āåäū ¢ GNU/"
-"Linux. ßź ³ ļšū ¢ńņąė˙āąķķ³ źėąńó\n"
-" \"Ķąńņšīåķą\", āū ģīęąöå ēšąį³öü āūįąš ģ³ę āūźąšūńņąķķåģ ń³ńņżģū ˙ź "
-"Ļšąöī¢ķą˙ ńņąķöū˙, Ńåšāåš,\n"
-" Šąńļšąöī¢źą. Įóäēüöå āåėüģ³ ąńö˙šīęķū˙ ļåšąä ņūģ, ˙ź ąįšąöü ćżņū źėąń "
-"óńņąė˙āąķķ˙. Āū įóäēåöå ēäīėüķū˙ āūźąķąöü óńņąė˙āąķķå ¢\n"
-" ąäļąāåäķąńö³ ē āąųūģ³ ęąäąķķ˙ģ³. Ąäźąēū ķą ķåźąņīšū˙ ļūņąķķ³ ģīćóöü įūöü "
-"āåėüģ³ ńźėąäąķūģ³, źąė³ āū ķå ģąåöå äīįšūõ āåäą¢ ó GNU/Linux.\n"
-" Ņąģó ķå ąį³šąéöå ćżņū źėąń ³ķńņąė˙öū³, źąė³ āū ķå āåäąåöå ņīå, ųņī šīį³öå."
-
-#: ../../help.pm_.c:583
-msgid ""
-"Normally, DrakX selects the right keyboard for you (depending on the\n"
-"language you have chosen) and you won't even see this step. However, you\n"
-"might not have a keyboard that corresponds exactly to your language: for\n"
-"example, if you are an English speaking Swiss person, you may still want\n"
-"your keyboard to be a Swiss keyboard. Or if you speak English but are\n"
-"located in Quebec, you may find yourself in the same situation. In both\n"
-"cases, you will have to go back to this installation step and select an\n"
-"appropriate keyboard from the list.\n"
-"\n"
-"Click on the \"More\" button to be presented with the complete list of\n"
-"supported keyboards."
-msgstr ""
-
-#: ../../help.pm_.c:596
-msgid ""
-"Please choose your preferred language for installation and system usage.\n"
-"\n"
-"Clicking on the \"Advanced\" button will allow you to select other\n"
-"languages to be installed on your workstation. Selecting other languages\n"
-"will install the language-specific files for system documentation and\n"
-"applications. For example, if you will host users from Spain on your\n"
-"machine, select English as the main language in the tree view and in the\n"
-"Advanced section click on the box corresponding to \"Spanish|Spain\".\n"
-"\n"
-"Note that multiple languages may be installed. Once you have selected any\n"
-"additional locales, click the \"OK\" button to continue."
-msgstr ""
-
-#: ../../help.pm_.c:609
-msgid ""
-"DrakX generally detects the number of buttons your mouse has. If not, it\n"
-"assumes you have a two-button mouse and will set it up for third-button\n"
-"emulation. DrakX will automatically know whether it is a PS/2, serial or\n"
-"USB mouse.\n"
-"\n"
-"If you wish to specify a different type of mouse select the appropriate\n"
-"type from the provided list.\n"
-"\n"
-"If you choose a mouse other than the default, a test screen will be\n"
-"displayed. Use the buttons and wheel to verify that the settings are\n"
-"correct. If the mouse is not working well, press the space bar or [Return]\n"
-"to \"Cancel\" and choose again."
-msgstr ""
-
-#: ../../help.pm_.c:623
-msgid ""
-"Please select the correct port. For example, the \"COM1\" port under\n"
-"Windows is named \"ttyS0\" under GNU/Linux."
-msgstr ""
-
-#: ../../help.pm_.c:627
-msgid ""
-"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 choose\n"
-"not to enter a password, but we strongly advise you against this if only\n"
-"for one reason: do not think that because you booted GNU/Linux that your\n"
-"other operating systems are safe from mistakes. Since \"root\" can overcome\n"
-"all limitations and unintentionally erase all data on partitions by\n"
-"carelessly accessing the partitions themselves, it is important for it to\n"
-"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."
-msgstr ""
-
-#: ../../help.pm_.c:663
-msgid ""
-"LILO and grub are GNU/Linux bootloaders. This stage, normally, is totally\n"
-"automated. In fact, DrakX analyzes the disk boot sector and acts\n"
-"accordingly, depending on what it finds here:\n"
-"\n"
-" * if a Windows boot sector is found, it will replace it with a grub/LILO\n"
-"boot sector. Hence, you will be able to load either GNU/Linux or another\n"
-"OS;\n"
-"\n"
-" * if a grub or LILO boot sector is found, it will replace it with a new\n"
-"one.\n"
-"\n"
-"If in doubt, DrakX will display a dialog with various options.\n"
-"\n"
-" * \"Bootloader to use\": you have three choices:\n"
-"\n"
-" * \"GRUB\": if you prefer grub (text menu).\n"
-"\n"
-" * \"LILO with graphical menu\": if you prefer LILO with its graphical\n"
-"interface.\n"
-"\n"
-" * \"LILO with text menu\": if you prefer LILO with its text menu "
-"interface.\n"
-"\n"
-" * \"Boot device\": in most cases, you will not change the default\n"
-"(\"/dev/hda\"), but if you prefer, the bootloader can be installed on the\n"
-"second hard drive (\"/dev/hdb\"), or even on a floppy disk (\"/dev/fd0\");\n"
-"\n"
-" * \"Delay before booting the default image\": when rebooting the computer,\n"
-"this is the delay granted to the user to choose in the bootloader menu,\n"
-"another boot entry than the default one.\n"
-"\n"
-"!! Beware that if you choose not to install a bootloader (by selecting\n"
-"\"Cancel\" here), you must ensure that you have a way to boot your Mandrake\n"
-"Linux system! Also, be sure you know what you do before changing any of the\n"
-"options. !!\n"
-"\n"
-"Clicking the \"Advanced\" button in this dialog will offer many advanced\n"
-"options, which are reserved to the expert user.\n"
-"\n"
-"After you have configured the general bootloader parameters, the list of\n"
-"boot options which will be available at boot time will be displayed.\n"
-"\n"
-"If there is another operating system installed on your machine, it will\n"
-"automatically be added to the boot menu. Here, you can choose to fine-tune\n"
-"the existing options. Select an entry and click \"Modify\" to modify or\n"
-"remove it; \"Add\" creates a new entry; and \"Done\" goes on to the next\n"
-"installation step."
-msgstr ""
-
-#: ../../help.pm_.c:711
-#, fuzzy
-msgid ""
-"LILO (the LInux LOader) and grub are bootloaders: they are able to boot\n"
-"either GNU/Linux or any other operating system present on your computer.\n"
-"Normally, these other operating systems are correctly detected and\n"
-"installed. If this is not the case, you can add an entry by hand in this\n"
-"screen. Be careful to choose the correct parameters.\n"
-"\n"
-"You may also not want to give access to these other operating systems to\n"
-"anyone. In which case, you can delete the corresponding entries. But then,\n"
-"you will need a boot disk in order to boot those other operating systems!"
-msgstr ""
-"LILO (ąä LInux LOader) i Grub - ćżņą ēąćšóē÷ūźi. ßķū ģīćóöü ēąćšóēiöü "
-"äšóćóž\n"
-"GNU/Linux öi ėžįóž iķųóž ąļåšąöūéķóž ńińņżģó, óńņąė˙āąķóž ķą źąģļóņąšū.\n"
-"Ēāū÷ąéķą, ćżņū˙ iķųū˙ ąļåšąöūéķū˙ ńińņżģū źąšżźņķą āūēķą÷ąžööą i\n"
-"¢ńņąėø¢āąžööą. Źąėi ćżņą ķå ąņšūģąėąń˙, ņī āū ģīęąöå äąäąöü ėžįū ēąļiń\n"
-"ńąģąńņīéķą. Įóäēüöå ¢ļż¢ķåķū, ųņī āū ēąäąėi źąšżźņķū˙ ļąšąģåņšū.\n"
-"\n"
-"\n"
-"Ņąźńąģą āū ģīęąöå ļąęąäąöü i ķå äąįą¢ė˙öü iķųū˙ ąļåšąöūéķū˙ ńińņżģū.\n"
-"Ó ņąźiģ āūļąäźó ļąņšżįķą āūäąėiöü ąäļąāåäķū˙ ēąļińū. Ąėå ę ņąäū āąģ \n"
-"ļąņšżįķą įóäēå ēąćšóēą÷ķą˙ äūńźåņą, źąį ēąćšóēiööą!"
-
-#: ../../help.pm_.c:722
-#, fuzzy
-msgid ""
-"You must indicate where you wish to place the information required to boot\n"
-"to GNU/Linux.\n"
-"\n"
-"Unless you know exactly what you are doing, choose \"First sector of drive\n"
-"(MBR)\"."
-msgstr ""
-"Ķåąįõīäķą ļąēķą÷ūöü, äēå āū ęąäąåöå šąēģ˙ńöiöü iķōąšģąöūž, ˙źą˙ ķåąįõīäķą\n"
-"äė˙ ēąćšóēźi Linux.\n"
-"\n"
-"\n"
-"Źąėi āū ķå ąä÷óāąåöå ąįńąėžņķą äąźėąäķą, ųņī āū šīįiöå, \n"
-"ąį˙šūöå \"Ļåšųū ńåźņąš ķą äūńźó (MBR)\"."
-
-#: ../../help.pm_.c:729
-msgid ""
-"Here, we select a printing system for your computer. Other OSs may offer\n"
-"you one, but Mandrake Linux offers three.\n"
-"\n"
-" * \"pdq\" which means ``print, don't queue'', is the choice if you have a\n"
-"direct connection to your printer and you want to be able to panic out of\n"
-"printer jams, and you do not have networked printers. It will handle only\n"
-"very simple network cases and is somewhat slow for networks. Pick \"pdq\"\n"
-"if this is your maiden voyage to GNU/Linux. You can change your choices\n"
-"after installation by running PrinterDrake from the Mandrake Control Center\n"
-"and clicking the expert button.\n"
-"\n"
-" * \"CUPS\"``Common Unix Printing System'', is excellent at printing to "
-"your\n"
-"local printer and also halfway-around the planet. It is simple and can act\n"
-"as a server or a client for the ancient \"lpd\" printing system. Hence, it\n"
-"is compatible with the systems that went before. It can do many tricks, but\n"
-"the basic setup is almost as easy as \"pdq\". If you need this to emulate\n"
-"an \"lpd\" server, you must turn on the \"cups-lpd\" daemon. It has\n"
-"graphical front-ends for printing or choosing printer options.\n"
-"\n"
-" * \"lprNG\"``line printer daemon New Generation''. This system can do\n"
-"approximately the same things the others can do, but it will print to\n"
-"printers mounted on a Novell Network, because it supports the IPX protocol,\n"
-"and it can print directly to shell commands. If you have need of Novell or\n"
-"printing to commands without using a separate pipe construct, use lprNG.\n"
-"Otherwise, CUPS is preferable as it is simpler and better at working over\n"
-"networks."
-msgstr ""
-
-#: ../../help.pm_.c:757
-msgid ""
-"DrakX now detects any IDE device present in your computer. It will also\n"
-"scan for one or more PCI SCSI card(s) on your system. If a SCSI card is\n"
-"found, DrakX will automatically install the appropriate driver.\n"
-"\n"
-"Because hardware detection does not always detect a piece of hardware,\n"
-"DrakX will ask you to confirm if a PCI SCSI card is present. Click \"Yes\"\n"
-"if you know that there is a SCSI card installed in your machine. You will\n"
-"be presented a list of SCSI cards to choose from. Click \"No\" if you have\n"
-"no SCSI hardware. If you are unsure, you can check the list of hardware\n"
-"detected in your machine by selecting \"See hardware info\" and clicking\n"
-"\"OK\". Examine the list of hardware and then click on the \"OK\" button to\n"
-"return to the SCSI interface question.\n"
-"\n"
-"If you have to manually specify your adapter, DrakX will ask if you want to\n"
-"specify options for it. You should allow DrakX to probe the hardware for\n"
-"the card-specific options which the hardware needs to initialize. This\n"
-"usually works well.\n"
-"\n"
-"If DrakX is not able to probe for the options which need to be passed, you\n"
-"will need to provide options to the driver manually. Please review the\n"
-"``User Guide'' (chapter 3, in the ``Collecting Information on Your\n"
-"Hardware'' section) for hints on retrieving the parameters required from\n"
-"hardware documentation, from the manufacturer's web site (if you have\n"
-"Internet access) or from MicrosoftWindows (if you used this hardware with\n"
-"Windows on your system)."
-msgstr ""
-
-#: ../../help.pm_.c:784
-msgid ""
-"You can add additional entries for yaboot, either for other operating\n"
-"systems, alternate kernels, or for an emergency boot image.\n"
-"\n"
-"For other OSs, the entry consists only of a label and the \"root\"\n"
-"partition.\n"
-"\n"
-"For Linux, there are a few possible options:\n"
-"\n"
-" * Label: this is simply the name you will have to type at the yaboot "
-"prompt\n"
-"to select this boot option;\n"
-"\n"
-" * Image: this would be the name of the kernel to boot. Typically, vmlinux\n"
-"or a variation of vmlinux with an extension;\n"
-"\n"
-" * Root: the \"root\" device or ``/'' for your Linux installation;\n"
-"\n"
-" * Append: on Apple hardware, the kernel append option is used quite often\n"
-"to assist in initializing video hardware, or to enable keyboard mouse\n"
-"button emulation for the often lacking 2nd and 3rd mouse buttons on a stock\n"
-"Apple mouse. The following are some examples:\n"
-"\n"
-" video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111 "
-"hda=autotune\n"
-"\n"
-" video=atyfb:vmode:12,cmode:24 adb_buttons=103,111\n"
-"\n"
-" * Initrd: this option can be used either to load initial modules, before\n"
-"the boot device is available, or to load a ramdisk image for an emergency\n"
-"boot situation;\n"
-"\n"
-" * Initrd-size: the default ramdisk size is generally 4,096 bytes. If you\n"
-"need to allocate a large ramdisk, this option can be used;\n"
-"\n"
-" * Read-write: normally the \"root\" partition is initially brought up in\n"
-"read-only, to allow a file system check before the system becomes ``live''.\n"
-"Here, you can override this option;\n"
-"\n"
-" * NoVideo: should the Apple video hardware prove to be exceptionally\n"
-"problematic, you can select this option to boot in ``novideo'' mode, with\n"
-"native frame buffer support;\n"
-"\n"
-" * Default: selects this entry as being the default Linux selection,\n"
-"selectable by just pressing ENTER at the yaboot prompt. This entry will\n"
-"also be highlighted with a ``*'', if you press [Tab] to see the boot\n"
-"selections."
-msgstr ""
-
-#: ../../help.pm_.c:830
-msgid ""
-"Yaboot is a bootloader for NewWorld MacIntosh hardware. It is able to boot\n"
-"either GNU/Linux, MacOS or MacOSX if present on your computer. Normally,\n"
-"these other operating systems are correctly detected and installed. If this\n"
-"is not the case, you can add an entry by hand in this screen. Be careful to\n"
-"choose the correct parameters.\n"
-"\n"
-"Yaboot's main options are:\n"
-"\n"
-" * Init Message: a simple text message displayed before the boot prompt;\n"
-"\n"
-" * Boot Device: indicates where you want to place the information required\n"
-"to boot to GNU/Linux. Generally, you set up a bootstrap partition earlier\n"
-"to hold this information;\n"
-"\n"
-" * Open Firmware Delay: unlike LILO, there are two delays available with\n"
-"yaboot. The first delay is measured in seconds and at this point, you can\n"
-"choose between CD, OF boot, MacOS or Linux;\n"
-"\n"
-" * Kernel Boot Timeout: this timeout is similar to the LILO boot delay.\n"
-"After selecting Linux, you will have this delay in 0.1 second before your\n"
-"default kernel description is selected;\n"
-"\n"
-" * Enable CD Boot?: checking this option allows you to choose ``C'' for CD\n"
-"at the first boot prompt;\n"
-"\n"
-" * Enable OF Boot?: checking this option allows you to choose ``N'' for "
-"Open\n"
-"Firmware at the first boot prompt;\n"
-"\n"
-" * Default OS: you can select which OS will boot by default when the Open\n"
-"Firmware Delay expires."
-msgstr ""
-
-#: ../../help.pm_.c:862
-msgid ""
-"Here are presented various parameters concerning your machine. Depending on\n"
-"your installed hardware, you may or not, see the following entries:\n"
-"\n"
-" * \"Mouse\": check the current mouse configuration and click on the button\n"
-"to change it if necessary;\n"
-"\n"
-" * \"Keyboard\": check the current keyboard map configuration and click on\n"
-"the button to change that if necessary;\n"
-"\n"
-" * \"Timezone\": DrakX, by default, guesses your time zone from the "
-"language\n"
-"you have chosen. But here again, as for the choice of a keyboard, you may\n"
-"not be in the country for which the chosen language should correspond.\n"
-"Hence, you may need to click on the \"Timezone\" button in order to\n"
-"configure the clock according to the time zone you are in;\n"
-"\n"
-" * \"Printer\": clicking on the \"No Printer\" button will open the printer\n"
-"configuration wizard;\n"
-"\n"
-" * \"Sound card\": if a sound card is detected on your system, it is\n"
-"displayed here. No modification possible at installation time;\n"
-"\n"
-" * \"TV card\": if a TV card is detected on your system, it is displayed\n"
-"here. No modification possible at installation time;\n"
-"\n"
-" * \"ISDN card\": if an ISDN card is detected on your system, it is\n"
-"displayed here. You can click on the button to change the parameters\n"
-"associated with it."
-msgstr ""
-
-#: ../../help.pm_.c:891
-#, fuzzy
-msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandrake Linux partition. Be careful, all data present on it will be lost\n"
-"and will not be recoverable!"
-msgstr ""
-"Ąį˙šūöå ęīšńź³ äūńź ˙ź³ ęąäąåöå ą÷ūńö³öü äė˙ ¢ńņąė˙āąķķ˙\n"
-"ķīāąćą šąēäēåėó Mandrake Linux. Įóäēöå ¢āąęė³āū˙, óńå äąäēåķū˙ ķą äūńźó "
-"įóäóöü\n"
-" ēķ³ų÷ąķū ³ ³õ ķåģąć÷ūģą įóäēå ąäķąā³öü."
-
-#: ../../help.pm_.c:896
-#, fuzzy
-msgid ""
-"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"
-"any Windows data.\n"
-"\n"
-"Click on \"Cancel\" to cancel this operation without losing any data and\n"
-"partitions present on this hard drive."
-msgstr ""
-"Ķąö³ńķ³öå \"Ņąź\", źąė³ ęąäąåöå āūäąė³öü óńå äąäēåķū˙\n"
-"³ šąēäēåėū ķą ćżņūģ äūńźó. Įóäēöå óāąęė³āū˙, ļąńė˙ ćżņąé ąļåšąöū³ āū ķå\n"
-"\n"
-"ēäīėååöå ąäķąā³öü ėžįū˙ äąäēåķū˙ ³ šąēäēåėū, óė³÷āąž÷ū ³ äąäēåķū˙ Windows\n"
-"\n"
-"\n"
-"Ķąö³ńķ³öå \"Ąäģåķą\" źąį ąäģ˙ķ³öü ąļåšąöūž įåē ńņšąņū äąäēåķūõ ³ šąēäēåėą¢"
-
-#: ../../install2.pm_.c:113
-#, c-format
-msgid ""
-"Can't 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 ""
-
-#: ../../install2.pm_.c:169
-#, c-format
-msgid "You must also format %s"
-msgstr ""
-
-#: ../../install_any.pm_.c:411
-#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They don't have any known security\n"
-"issues, but some new could be found. In that case, you must make sure to "
-"upgrade\n"
-"as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
-msgstr ""
-
-#: ../../install_any.pm_.c:447
-msgid "Can't use broadcast with no NIS domain"
-msgstr "Ķåģąć÷ūģą āūźąšūńņī¢āąöü broadcast įåē äąģåķą NIS"
-
-#: ../../install_any.pm_.c:793
-#, fuzzy, c-format
-msgid "Insert a FAT formatted floppy in drive %s"
-msgstr "Óńņą¢öå äūńźåņó ¢ äūńźąāīä %s"
-
-#: ../../install_any.pm_.c:797
-msgid "This floppy is not FAT formatted"
-msgstr ""
-
-#: ../../install_any.pm_.c:809
-msgid ""
-"To use this saved packages selection, boot installation with ``linux "
-"defcfg=floppy''"
-msgstr ""
-
-#: ../../install_any.pm_.c:831 ../../partition_table.pm_.c:763
-#, c-format
-msgid "Error reading file %s"
-msgstr "Ļąģūėźą ÷ūņąķķ˙ ōąéėó %s"
-
-#: ../../install_interactive.pm_.c:23
-#, 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"
-
-#: ../../install_interactive.pm_.c:58
-msgid ""
-"You must have a root partition.\n"
-"For this, create a partition (or click on an existing one).\n"
-"Then choose action ``Mount point'' and set it to `/'"
-msgstr ""
-"Āū ļąāiķķū ģåöü źąšąķøāū šąēäēåė.\n"
-"Äė˙ ćżņąćą ńņāąšūöå šąēäēåė (ąėüįī ąäēķą÷öå ¢ęī ińķóž÷ū).\n"
-"Ļīņūģ ąį˙šūöå ``Źšīļźą ģąķöišąāąķķ˙'' i ¢ńņąķąāiöå ˙å ¢ `/'"
-
-#: ../../install_interactive.pm_.c:63
-msgid "You must have a swap partition"
-msgstr "Āū ļąāiķķū ģåöü šąēäēåė swap"
-
-#: ../../install_interactive.pm_.c:64
-msgid ""
-"You don't have a swap partition\n"
-"\n"
-"Continue anyway?"
-msgstr ""
-"Ķ˙ģą šąēäēåėą swap.\n"
-"\n"
-"Óńø ąäķī ļšąö˙ćāąöü?"
-
-#: ../../install_interactive.pm_.c:67 ../../install_steps.pm_.c:163
-#, fuzzy
-msgid "You must have a FAT partition mounted in /boot/efi"
-msgstr "Āū ļąāiķķū ģåöü šąēäēåė swap"
-
-#: ../../install_interactive.pm_.c:90
-msgid "Use free space"
-msgstr "Āūźąšūńņī¢āąöü ķåēąķ˙ņóž ļšąńņīšó"
-
-#: ../../install_interactive.pm_.c:92
-msgid "Not enough free space to allocate new partitions"
-msgstr "Ķå õąļąå ļšąńņīšū äė˙ ńņāąšżķķ˙ ķīāūõ šąēäēåėą¢"
-
-#: ../../install_interactive.pm_.c:100
-msgid "Use existing partition"
-msgstr "Āūźąšūńņī¢āąöü ińķóž÷ū šąēäēåė"
-
-#: ../../install_interactive.pm_.c:102
-msgid "There is no existing partition to use"
-msgstr "Ķ˙ģą ińķóž÷ūõ šąēäēåėą¢, ˙źi˙ ģīęķą āūźąšūńņąöü"
-
-#: ../../install_interactive.pm_.c:109
-msgid "Use the Windows partition for loopback"
-msgstr "Āūźąšūńņī¢āąöü šąēäēåė Windows äė˙ āišņóąėüķąé ōąéėąāąé ńińņżģū"
-
-#: ../../install_interactive.pm_.c:112
-#, fuzzy
-msgid "Which partition do you want to use for Linux4Win?"
-msgstr "Ļąģåšū ˙źīćą šąēäēåėą āū ęąäąåöå ēģ˙ķiöü?"
-
-#: ../../install_interactive.pm_.c:114
-msgid "Choose the sizes"
-msgstr "Āūįąš ļąģåšą¢"
-
-#: ../../install_interactive.pm_.c:115
-msgid "Root partition size in MB: "
-msgstr "Źąšąķøāū šąēäēåė ¢ Mį: "
-
-#: ../../install_interactive.pm_.c:116
-msgid "Swap partition size in MB: "
-msgstr "Ļąģåš swap šąēäēåėó ¢ Mį:"
-
-#: ../../install_interactive.pm_.c:125
-msgid "Use the free space on the Windows partition"
-msgstr "Āūźąšūńņī¢āąöü ķåēąķ˙ņóž ļšąńņīšó ķą šąēäēåėå Windows"
-
-#: ../../install_interactive.pm_.c:128
-msgid "Which partition do you want to resize?"
-msgstr "Ļąģåšū ˙źīćą šąēäēåėą āū ęąäąåöå ēģ˙ķiöü?"
-
-#: ../../install_interactive.pm_.c:130
-msgid "Computing Windows filesystem bounds"
-msgstr "Āūėi÷żķķå ģåęą¢ ōąéėąāąé ńińņżģū Windows"
-
-#: ../../install_interactive.pm_.c:133
-#, c-format
-msgid ""
-"The FAT resizer is unable to handle your partition, \n"
-"the following error occured: %s"
-msgstr ""
-"Ó ļšąćšąģū ēģåķū ļąģåšą¢ šąēäēåėą FAT ķå ąņšūģąėąń˙\n"
-"ąļšąöąāąöü Āąų šąēäēåė, ļąģūėźą: %s"
-
-#: ../../install_interactive.pm_.c:136
-msgid "Your Windows partition is too fragmented, please run ``defrag'' first"
-msgstr ""
-"Āąų šąēäēåė ē Windows ēąķąäņą ōšąćģåķņąāąķū. \n"
-"Šżźąģåķäóåģ ńļą÷ąņźó ēąļóńöiöü ļšąćšąģó ``defrag''"
-
-#: ../../install_interactive.pm_.c:137
-#, fuzzy
-msgid ""
-"WARNING!\n"
-"\n"
-"DrakX will now resize your Windows partition. Be careful:\n"
-"this operation is dangerous. If you have not already done\n"
-"so, you should first exit the installation, run scandisk\n"
-"under Windows (and optionally run defrag), then restart the\n"
-"installation. You should also backup your data.\n"
-"When sure, press Ok."
-msgstr ""
-"ÓĀĄĆĄ!\n"
-"\n"
-"DrakX ēąšąē ļąāiķåķ ēģ˙ķiöü ļąģåš āąųąćą šąēäēåėą Windows.\n"
-"Įóäēüöå ¢āąęėiāū: ćżņą˙ ąļåšąöū˙ ķåį˙ńļå÷ķą. Źąėi āū ˙ų÷ż ķå ēšąįiėi \n"
-"šżēåšāīāóž źīļiž äąäēåķūõ, ņī ńļą÷ąņźó ļąźiķüöå ļšąćšąģó ¢ńņąė˙āąķķ˙,"
-"āūźąķąéöå scandisk i defrag ķą ćżņūģ šąēäåėå, ēšąįiöå šżēåšāīāóž źīļiž\n"
-"äąäēåķūõ i ņīėüźi ļīņūģ ēķī¢ ā˙šķiöåń˙ äą ļšąćšąģū ¢ńņąė˙āąķķ˙.\n"
-"Źąėi ļąäšūõņąāąėiń˙, ķąöińķiöå Ok."
-
-#: ../../install_interactive.pm_.c:147
-msgid "Which size do you want to keep for windows on"
-msgstr "ßźóž ļšąńņīšó ēąõąāąöü äė˙ Windows?"
-
-#: ../../install_interactive.pm_.c:148
-#, c-format
-msgid "partition %s"
-msgstr "Šąēäēåė %s"
-
-#: ../../install_interactive.pm_.c:155
-#, c-format
-msgid "FAT resizing failed: %s"
-msgstr "Ą¢ņąēģ˙ķåķķå ļąģåšą¢ ķå ąņšūģąėąń˙ äė˙ šąēäēåėó FAT %s"
-
-#: ../../install_interactive.pm_.c:170
-msgid ""
-"There is no FAT partitions to resize or to use as loopback (or not enough "
-"space left)"
-msgstr ""
-"Ķå ēķīéäēåķą šąēäēåėą¢ FAT äė˙ ēģ˙ķåķķ˙ ļąģåšą¢ ąėüįī āūźąšūńņąķķ˙\n"
-"¢ ˙źąńöi āišņóąėüķąé ōąéėąāąé ńińņżģū (öi ķåäąńņąņźīāą ļšąńņīšū ķą äūńźó)"
-
-#: ../../install_interactive.pm_.c:176
-msgid "Erase entire disk"
-msgstr "Ńöøšöi äąäēåķū˙ ķą ¢ńiģ äūńźó"
-
-#: ../../install_interactive.pm_.c:176
-msgid "Remove Windows(TM)"
-msgstr "Āūäąėiöü Windows(TM)"
-
-#: ../../install_interactive.pm_.c:179
-msgid "You have more than one hard drive, which one do you install linux on?"
-msgstr "Ķą ˙źi ē ģąž÷ūõń˙ ęīšńņźiõ äūńźą¢ Āū ęąäąåöå ¢ńņąė˙āąöü Linux?"
-
-#: ../../install_interactive.pm_.c:182
-#, c-format
-msgid "ALL existing partitions and their data will be lost on drive %s"
-msgstr "Óńå ińķóž÷ū˙ šąēäēåėū ķą äūńźó %s i äąäēåķū˙ ķą iõ įóäóöü ńņšą÷ąķū"
-
-#: ../../install_interactive.pm_.c:190
-#, fuzzy
-msgid "Custom disk partitioning"
-msgstr "Āūźąšūńņī¢āąöü ińķóž÷ū šąēäēåė"
-
-#: ../../install_interactive.pm_.c:194
-msgid "Use fdisk"
-msgstr "Āūźąšūńņī¢āąöü fdisk"
-
-#: ../../install_interactive.pm_.c:197
-#, c-format
-msgid ""
-"You can now partition %s.\n"
-"When you are done, don't forget to save using `w'"
-msgstr ""
-"Āū ģīęąöå ö˙ļåš šąēįiöü āąų äūńź %s\n"
-"Ļą ēąźąķ÷żķķi ķå ēąįóäēüöåń˙ ēąõąāąöü ēģ˙ķåķķi, ńźąšūńņą¢ųū `w'"
-
-#: ../../install_interactive.pm_.c:226
-#, fuzzy
-msgid "You don't have enough free space on your Windows partition"
-msgstr "Āūźąšūńņī¢āąöü ķåēąķ˙ņóž ļšąńņīšó ķą šąēäēåėå Windows"
-
-#: ../../install_interactive.pm_.c:242
-#, fuzzy
-msgid "I can't find any room for installing"
-msgstr "Äąäąöü šąēäēåė ķåģąć÷ūģą"
-
-#: ../../install_interactive.pm_.c:246
-msgid "The DrakX Partitioning wizard found the following solutions:"
-msgstr "Ģąéńņąš ļąäšūõņī¢źi šąēäēåėą¢ DrakX ēķąéųī¢ ķąńņóļķū˙ āąšū˙ķņū:"
-
-#: ../../install_interactive.pm_.c:251
-#, c-format
-msgid "Partitioning failed: %s"
-msgstr "Ļąäšūõņī¢źą šąēäåėą¢ ķå ¢äąėąń˙: %s"
-
-#: ../../install_interactive.pm_.c:261
-msgid "Bringing up the network"
-msgstr "Äąėó÷żķķå äą ńåņźi"
-
-#: ../../install_interactive.pm_.c:266
-msgid "Bringing down the network"
-msgstr "Ąäėó÷żķķå ąä ńåņźi"
-
-#: ../../install_steps.pm_.c:76
-msgid ""
-"An error occurred, but I don't know how to handle it nicely.\n"
-"Continue at your own risk."
-msgstr ""
-"Óēķiźėą ļąģūėźą, ˙źóž ķå ąņšūģė³āąåööą źąšżźņķą ąļšąöąāąöü,\n"
-"ņąģó ļšąö˙ćāąéöå ķą ńāąž šūēūźó."
-
-#: ../../install_steps.pm_.c:205
-#, c-format
-msgid "Duplicate mount point %s"
-msgstr "Äóįė˙āąķķå ļóķźņó ģąķöišąāąķķ˙ %s"
-
-#: ../../install_steps.pm_.c:388
-msgid ""
-"Some important packages didn't get installed properly.\n"
-"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl Mandrake/RPMS/*.rpm"
-"\"\n"
-msgstr ""
-"Ķåźąņīšū˙ āąęķū˙ ļąźåņū ķå įūėi ¢ńņąė˙āąķū źąšżźņķą.\n"
-"Äšóći āąų cdrom äūńź öi āąų cdrom ģąžöü äżōåźņū.\n"
-"Ļšąāåšöå cdrom ķą āąųūģ źąģļóņąšū, āūźąšūńņī¢āąž÷ū\"rpm -qpl Mandrake/RPMS/*."
-"rpm\"\n"
-
-#: ../../install_steps.pm_.c:458
-#, c-format
-msgid "Welcome to %s"
-msgstr "ŠŠ°Ń€Š´Ń¨Ń‡Š½Š° Š·Š°ŠæŃ€Š°ŃŠ°ŠµŠ¼ Ń %s"
-
-#: ../../install_steps.pm_.c:513 ../../install_steps.pm_.c:755
-msgid "No floppy drive available"
-msgstr "Äūńźąāīä ķåäąńņóļķū"
-
-#: ../../install_steps_auto_install.pm_.c:76
-#: ../../install_steps_stdio.pm_.c:22
-#, c-format
-msgid "Entering step `%s'\n"
-msgstr "Ļåšąõīä ķą źšīź `%s'\n"
-
-#: ../../install_steps_gtk.pm_.c:148
-msgid ""
-"Your system is low on resource. You may have some problem installing\n"
-"Mandrake Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
-"press `F1' when booting on CDROM, then enter `text'."
-msgstr ""
-"Ó Āąųąé ńińņżģå ģąåööą ķåäąõīļ šżńóšńą¢, ņąģó ģąć÷ūģū ļšąįėåģū\n"
-"ļšū ¢ńņąė˙āąķķi Mandrake Linux. Ó ćżņūģ āūļąäźó ļąńļšąįóéöå ņżźńņąāóž\n"
-"ļšąćšąģó ¢ńņąė˙āąķķ˙. Äė˙ ćżņąćą ķąöińķiöå `F1' ó ÷ąń ēąćšóēźi, ą ļīņūģ\n"
-"ķąį˙šūöå `text' i ķąöińķiöå <ENTER>."
-
-#: ../../install_steps_gtk.pm_.c:159 ../../install_steps_interactive.pm_.c:224
-msgid "Install Class"
-msgstr "Źėąń Óńņąė˙āąķķ˙"
-
-#: ../../install_steps_gtk.pm_.c:162
-#, fuzzy
-msgid "Please choose one of the following classes of installation:"
-msgstr "Źąėi ėąńźą, ąį˙šūöå ąäēiķ ē źėąńą¢ óńņąė˙āąķķ˙:"
-
-#: ../../install_steps_gtk.pm_.c:228
-#, c-format
-msgid ""
-"The total size for the groups you have selected is approximately %d MB.\n"
-msgstr "Ąćóėüķū ļąģåš äė˙ ąįšąķūõ ćšóļą¢ ļšūįėiēķą šī¢ķū %d Ģį.\n"
-
-#: ../../install_steps_gtk.pm_.c:230
-#, c-format
-msgid ""
-"If you wish to install less than this size,\n"
-"select the percentage of packages that you want to install.\n"
-"\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of 100%% will install all selected packages."
-msgstr ""
-"Źąėi āū ęąäąåöå ¢ńņąė˙āąöü ģåķåé ćżņąćó ļąģåšó,\n"
-"ąį˙šūöå ąäńīņąź ļąźåņą¢, ˙źi āū ęąäąåöå ¢ńņąė˙āąöü.\n"
-"\n"
-"Ļšū ķiēźiģ ąäńīņźó įóäóöü óńņąė˙āąķū ņīėüźi ķąéįīėüų āąęķū˙ ļąźåņū,\n"
-"ą ļšū 100% įóäóöü óńņąė˙āąķū ¢ńå ąįšąķū˙ ļąźåņū."
-
-#: ../../install_steps_gtk.pm_.c:235
-#, c-format
-msgid ""
-"You have space on your disk for only %d%% of these packages.\n"
-"\n"
-"If you wish to install less than this,\n"
-"select the percentage of packages that you want to install.\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of %d%% will install as many packages as possible."
-msgstr ""
-"Ķą āąųūģ äūńźó øńöü ģåńöą ņīėüźi äė˙ %d%% ćżņūõ ļąźåņą¢.\n"
-"\n"
-"Źąėi āū ęąäąåöå ¢ńņąė˙āąöü ģåķåé ćżņąćą, ņī\n"
-"ļąēķą÷öå ąäńīņąź ļąźåņą¢ äė˙ ¢ńņąė˙āąķķ˙.\n"
-"Ļšū ģąėūģ ąäńīņźó įóäóöü óńņąė˙āąķū ķąéįīėüų āąęķū˙ ļąźåņū;\n"
-"ļšū ąäńīņźó %d%% įóäēå ¢ńņąė˙āąķą ńņīėüźi ļąźåņą¢ źīėüźi ģąć÷ūģą."
-
-#: ../../install_steps_gtk.pm_.c:241
-msgid "You will be able to choose them more specifically in the next step."
-msgstr "Įīėüų äąźėąäķū āūįąš ģīęķą įóäēå ēšąįiöü ķą ķąńņóļķūģ źšīźó."
-
-#: ../../install_steps_gtk.pm_.c:243
-msgid "Percentage of packages to install"
-msgstr "Ąäńīņąź ļąźåņą¢ äė˙ ¢ńņąė˙āąķķ˙"
-
-#: ../../install_steps_gtk.pm_.c:291 ../../install_steps_interactive.pm_.c:705
-msgid "Package Group Selection"
-msgstr "Āūįąš ćšóļū ļąźåņą¢"
-
-#: ../../install_steps_gtk.pm_.c:323 ../../install_steps_interactive.pm_.c:720
-msgid "Individual package selection"
-msgstr "Ąńąįińņū āūįąš ļąźåņą¢"
-
-#: ../../install_steps_gtk.pm_.c:346 ../../install_steps_interactive.pm_.c:645
-#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Ąćóėüķū ļąģåš: %d / %d Mį"
-
-#: ../../install_steps_gtk.pm_.c:391
-msgid "Bad package"
-msgstr "Äšżķķū ļąźåņ"
-
-#: ../../install_steps_gtk.pm_.c:392
-#, c-format
-msgid "Name: %s\n"
-msgstr "Iģ˙: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:393
-#, c-format
-msgid "Version: %s\n"
-msgstr "Āåšńi˙: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:394
-#, c-format
-msgid "Size: %d KB\n"
-msgstr "Ļąģåš: %d Kį\n"
-
-#: ../../install_steps_gtk.pm_.c:395
-#, c-format
-msgid "Importance: %s\n"
-msgstr "Ēķą÷ķąńöü: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:417
-msgid ""
-"You can't select this package as there is not enough space left to install it"
-msgstr ""
-"Āū ķå ģīęąöå āūįšąöü ćżņū ļąźåņ, ņąģó ˙ź ķå õąļąå ģåńöą äė˙ ˙ćī ¢ńņąė˙āąķķ˙"
-
-#: ../../install_steps_gtk.pm_.c:422
-msgid "The following packages are going to be installed"
-msgstr "Ķąńņóļķū˙ ļąźåņū įóäóöü äąäąķū äą ńińņżģū"
-
-#: ../../install_steps_gtk.pm_.c:423
-msgid "The following packages are going to be removed"
-msgstr "Ķąńņóļķū˙ ļąźåņū įóäóöü āūäąėåķū"
-
-#: ../../install_steps_gtk.pm_.c:435
-msgid "You can't select/unselect this package"
-msgstr "Āū ķå ģīęąöå āūėó÷ąöü ³ ąäģ˙ķ˙öü āūėó÷żķķå ćżņąćą ļąźåņó"
-
-#: ../../install_steps_gtk.pm_.c:447
-msgid "This is a mandatory package, it can't be unselected"
-msgstr "Ćżņą ąįąā˙ēźīāū ļąźåņ, ˙ćī āūėó÷żķķå ķåėüćą ąäģ˙ķiöü"
-
-#: ../../install_steps_gtk.pm_.c:449
-msgid "You can't unselect this package. It is already installed"
-msgstr "Āū ķå ģīęąöå ąäģ˙ķiöü āūėó÷żķķå ćżņąćą ļąźåņó. Øķ óęī ¢ńņąė˙āąķū"
-
-#: ../../install_steps_gtk.pm_.c:453
-msgid ""
-"This package must be upgraded\n"
-"Are you sure you want to deselect it?"
-msgstr ""
-"Ćżņū ļąźåņ ļąāiķåķ įūöü ąįķī¢ėåķū\n"
-"Āū ¢ļż¢ķåķū, ųņī õī÷ąöå ąäģ˙ķiöü āūėó÷żķķå?"
-
-#: ../../install_steps_gtk.pm_.c:457
-msgid "You can't unselect this package. It must be upgraded"
-msgstr "Āū ķå ģīęąöå ąäģ˙ķiöü āūėó÷żķķå ćżņąćą ļąźåņó. ßćī ļąņšżįķą ąįķąāiöü"
-
-#: ../../install_steps_gtk.pm_.c:462
-msgid "Show automatically selected packages"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:463 ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Install"
-msgstr "Óńņąėø¢źą"
-
-#: ../../install_steps_gtk.pm_.c:466
-#, fuzzy
-msgid "Load/Save on floppy"
-msgstr "Ēąõąāąķķå ķą äūńźåņó"
-
-#: ../../install_steps_gtk.pm_.c:467
-#, fuzzy
-msgid "Updating package selection"
-msgstr "Ąńąįińņū āūįąš ļąźåņą¢"
-
-#: ../../install_steps_gtk.pm_.c:472
-#, fuzzy
-msgid "Minimal install"
-msgstr "Āūäąėiöü ē ńińņżģū"
-
-#: ../../install_steps_gtk.pm_.c:487 ../../install_steps_interactive.pm_.c:555
-msgid "Choose the packages you want to install"
-msgstr "Āūįąš ļąźåņą¢ äė˙ ¢ńņąė˙āąķķ˙"
-
-#: ../../install_steps_gtk.pm_.c:503 ../../install_steps_interactive.pm_.c:787
-msgid "Installing"
-msgstr "Óńņąėø¢āąåģ"
-
-#: ../../install_steps_gtk.pm_.c:509
-msgid "Estimating"
-msgstr "׹źąåööą"
-
-#: ../../install_steps_gtk.pm_.c:516
-msgid "Time remaining "
-msgstr "Ēąńņąėīń˙ ÷ąńó "
-
-#: ../../install_steps_gtk.pm_.c:528
-#, fuzzy
-msgid "Please wait, preparing installation"
-msgstr "Ļąäšūõņī¢źą ¢ńņąė˙āąķüķ˙"
-
-#: ../../install_steps_gtk.pm_.c:611
-#, c-format
-msgid "%d packages"
-msgstr "%d ļąźåņą¢"
-
-#: ../../install_steps_gtk.pm_.c:616
-#, c-format
-msgid "Installing package %s"
-msgstr "Óńņąė˙āąķķå ļąźåņó %s"
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-#: ../../standalone/drakautoinst_.c:203
-msgid "Accept"
-msgstr "Ļšūķ˙öü"
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-msgid "Refuse"
-msgstr "Ąäźąēąöü"
-
-#: ../../install_steps_gtk.pm_.c:658 ../../install_steps_interactive.pm_.c:812
-#, c-format
-msgid ""
-"Change your Cd-Rom!\n"
-"\n"
-"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
-"done.\n"
-"If you don't have it, press Cancel to avoid installation from this Cd-Rom."
-msgstr ""
-"Ēģ˙ķiöå āąų Cd-Rom!\n"
-"\n"
-"Źąėi ėąńźą, óńņą¢öå Cd-Rom, ļąēķą÷ąķū \"%s\", ó āąų äūńźąāīä i ķąöińķiöå Oź "
-"ļąńė˙.\n"
-"Źąėi āū ķå ģąåöå ˙ćī, ķąöińķiöå Ąäģ˙ķiöü, źąį ąäģ˙ķiöü óńņąė˙āąķķå ē ćżņąćą "
-"Cd."
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_gtk.pm_.c:676
-#: ../../install_steps_interactive.pm_.c:824
-#: ../../install_steps_interactive.pm_.c:828
-msgid "Go on anyway?"
-msgstr "Óńø šī¢ķą ļšąö˙ćāąöü?"
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_interactive.pm_.c:824
-msgid "There was an error ordering packages:"
-msgstr "Ąņšūģąėąń˙ ļąģūėźą ¢ļąšąäźąāąķķ˙ ļąźåņą¢:"
-
-#: ../../install_steps_gtk.pm_.c:676 ../../install_steps_interactive.pm_.c:828
-msgid "There was an error installing packages:"
-msgstr "Ąņšūģąėąń˙ ļąģūėźą ¢ļąšąäźąāąķķ˙ ļąźåņą¢:"
-
-#: ../../install_steps_interactive.pm_.c:10
-msgid ""
-"\n"
-"Warning\n"
-"\n"
-"Please read carefully the terms below. If you disagree with any\n"
-"portion, you are not allowed to install the next CD media. Press 'Refuse' \n"
-"to continue the installation without using these media.\n"
-"\n"
-"\n"
-"Some components contained in the next CD media are not governed\n"
-"by the GPL License or similar agreements. Each such component is then\n"
-"governed by the terms and conditions of its own specific license. \n"
-"Please read carefully and comply with such specific licenses before \n"
-"you use or redistribute the said components. \n"
-"Such licenses will in general prevent the transfer, duplication \n"
-"(except for backup purposes), redistribution, reverse engineering, \n"
-"de-assembly, de-compilation or modification of the component. \n"
-"Any breach of agreement will immediately terminate your rights under \n"
-"the specific license. Unless the specific license terms grant you such\n"
-"rights, you usually cannot install the programs on more than one\n"
-"system, or adapt it to be used on a network. In doubt, please contact \n"
-"directly the distributor or editor of the component. \n"
-"Transfer to third parties or copying of such components including the \n"
-"documentation is usually forbidden.\n"
-"\n"
-"\n"
-"All rights to the components of the next CD media belong to their \n"
-"respective authors and are protected by intellectual property and \n"
-"copyright laws applicable to software programs.\n"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:67
-msgid "An error occurred"
-msgstr "Ąäįūėąń˙ ļąģūėźą"
-
-#: ../../install_steps_interactive.pm_.c:85
-#, fuzzy
-msgid "Do you really want to leave the installation?"
-msgstr "Öi ęąäąåöå ļšąņżńöišąāąöü ķąńņšīéźi?"
-
-#: ../../install_steps_interactive.pm_.c:108
-msgid "License agreement"
-msgstr "Ė³öżķē³éķą˙ äąģīāą"
-
-#: ../../install_steps_interactive.pm_.c:109
-msgid ""
-"Introduction\n"
-"\n"
-"The operating system and the different components available in the Mandrake "
-"Linux distribution \n"
-"shall be called the \"Software Products\" hereafter. The Software Products "
-"include, but are not \n"
-"restricted to, the set of programs, methods, rules and documentation related "
-"to the operating \n"
-"system and the different components of the Mandrake Linux distribution.\n"
-"\n"
-"\n"
-"1. License Agreement\n"
-"\n"
-"Please read carefully this document. This document is a license agreement "
-"between you and \n"
-"MandrakeSoft S.A. which applies to the Software Products.\n"
-"By installing, duplicating or using the Software Products in any manner, you "
-"explicitly \n"
-"accept and fully agree to conform to the terms and conditions of this "
-"License. \n"
-"If you disagree with any portion of the License, you are not allowed to "
-"install, duplicate or use \n"
-"the Software Products. \n"
-"Any attempt to install, duplicate or use the Software Products in a manner "
-"which does not comply \n"
-"with the terms and conditions of this License is void and will terminate "
-"your rights under this \n"
-"License. Upon termination of the License, you must immediately destroy all "
-"copies of the \n"
-"Software Products.\n"
-"\n"
-"\n"
-"2. Limited Warranty\n"
-"\n"
-"The Software Products and attached documentation are provided \"as is\", "
-"with no warranty, to the \n"
-"extent permitted by law.\n"
-"MandrakeSoft S.A. will, in no circumstances and to the extent permitted by "
-"law, be liable for any special,\n"
-"incidental, direct or indirect damages whatsoever (including without "
-"limitation damages for loss of \n"
-"business, interruption of business, financial loss, legal fees and penalties "
-"resulting from a court \n"
-"judgment, or any other consequential loss) arising out of the use or "
-"inability to use the Software \n"
-"Products, even if MandrakeSoft S.A. has been advised of the possibility or "
-"occurance of such \n"
-"damages.\n"
-"\n"
-"LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN SOME "
-"COUNTRIES\n"
-"\n"
-"To the extent permitted by law, MandrakeSoft S.A. or its distributors will, "
-"in no circumstances, be \n"
-"liable for any special, incidental, direct or indirect damages whatsoever "
-"(including without \n"
-"limitation damages for loss of business, interruption of business, financial "
-"loss, legal fees \n"
-"and penalties resulting from a court judgment, or any other consequential "
-"loss) arising out \n"
-"of the possession and use of software components or arising out of "
-"downloading software components \n"
-"from one of Mandrake Linux sites which are prohibited or restricted in some "
-"countries by local laws.\n"
-"This limited liability applies to, but is not restricted to, the strong "
-"cryptography components \n"
-"included in the Software Products.\n"
-"\n"
-"\n"
-"3. The GPL License and Related Licenses\n"
-"\n"
-"The Software Products consist of components created by different persons or "
-"entities. Most \n"
-"of these components are governed under the terms and conditions of the GNU "
-"General Public \n"
-"Licence, hereafter called \"GPL\", or of similar licenses. Most of these "
-"licenses allow you to use, \n"
-"duplicate, adapt or redistribute the components which they cover. Please "
-"read carefully the terms \n"
-"and conditions of the license agreement for each component before using any "
-"component. Any question \n"
-"on a component license should be addressed to the component author and not "
-"to MandrakeSoft.\n"
-"The programs developed by MandrakeSoft S.A. are governed by the GPL License. "
-"Documentation written \n"
-"by MandrakeSoft S.A. is governed by a specific license. Please refer to the "
-"documentation for \n"
-"further details.\n"
-"\n"
-"\n"
-"4. Intellectual Property Rights\n"
-"\n"
-"All rights to the components of the Software Products belong to their "
-"respective authors and are \n"
-"protected by intellectual property and copyright laws applicable to software "
-"programs.\n"
-"MandrakeSoft S.A. reserves its rights to modify or adapt the Software "
-"Products, as a whole or in \n"
-"parts, by all means and for all purposes.\n"
-"\"Mandrake\", \"Mandrake Linux\" and associated logos are trademarks of "
-"MandrakeSoft S.A. \n"
-"\n"
-"\n"
-"5. Governing Laws \n"
-"\n"
-"If any portion of this agreement is held void, illegal or inapplicable by a "
-"court judgment, this \n"
-"portion is excluded from this contract. You remain bound by the other "
-"applicable sections of the \n"
-"agreement.\n"
-"The terms and conditions of this License are governed by the Laws of "
-"France.\n"
-"All disputes on the terms of this license will preferably be settled out of "
-"court. As a last \n"
-"resort, the dispute will be referred to the appropriate Courts of Law of "
-"Paris - France.\n"
-"For any question on this document, please contact MandrakeSoft S.A. \n"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:205
-#: ../../install_steps_interactive.pm_.c:1045
-#: ../../standalone/keyboarddrake_.c:28
-msgid "Keyboard"
-msgstr "Źėąāi˙ņóšą"
-
-#: ../../install_steps_interactive.pm_.c:206
-#, fuzzy
-msgid "Please choose your keyboard layout."
-msgstr "Źąėi ėąńźą, ąį˙šūöå ņūļ źėąāi˙ņóšū."
-
-#: ../../install_steps_interactive.pm_.c:207
-msgid "Here is the full list of keyboards available"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:224
-msgid "Which installation class do you want?"
-msgstr "ßźi źėąń óńņąė˙āąķķ˙ āū ęąäąåöå?"
-
-#: ../../install_steps_interactive.pm_.c:226
-#, fuzzy
-msgid "Install/Update"
-msgstr "Óńņąėø¢źą"
-
-#: ../../install_steps_interactive.pm_.c:226
-#, fuzzy
-msgid "Is this an install or an update?"
-msgstr "Ąį˙šūöå ¢ńņąė˙āąķķå öi ąįķą¢ėåķķå"
-
-#: ../../install_steps_interactive.pm_.c:235
-msgid "Recommended"
-msgstr "Šżźąģåķäąāąķą"
-
-#: ../../install_steps_interactive.pm_.c:238
-#: ../../install_steps_interactive.pm_.c:241
-msgid "Expert"
-msgstr "Żźńļåšņ"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Upgrade"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-#, fuzzy
-msgid "Upgrade packages only"
-msgstr "Ąńąįińņū āūįąš ļąźåņą¢"
-
-#: ../../install_steps_interactive.pm_.c:266
-#, fuzzy
-msgid "Please choose the type of your mouse."
-msgstr "źąėi ėąńźą, ļąēķą÷öå ņūļ āąųąé ģūųū."
-
-#: ../../install_steps_interactive.pm_.c:272 ../../standalone/mousedrake_.c:65
-msgid "Mouse Port"
-msgstr "Ļīšņ ģūųū"
-
-#: ../../install_steps_interactive.pm_.c:273 ../../standalone/mousedrake_.c:66
-msgid "Please choose on which serial port your mouse is connected to."
-msgstr "Źąėi ėąńźą, ļąēķą÷öå ļīńė˙äī¢ķū ļīšņ, äą ˙źīćą ļąäźėž÷ąķą āąųą˙ ģūų."
-
-#: ../../install_steps_interactive.pm_.c:281
-msgid "Buttons emulation"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:283
-msgid "Button 2 Emulation"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:284
-msgid "Button 3 Emulation"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "Configuring PCMCIA cards..."
-msgstr "Ķąńņšīéźą źąšņ PCMCIA ..."
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "PCMCIA"
-msgstr "PCMCIA"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "Configuring IDE"
-msgstr "Ķąńņšīéźą IDE"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "IDE"
-msgstr "IDE"
-
-#: ../../install_steps_interactive.pm_.c:327
-msgid "no available partitions"
-msgstr "ķ˙ģą äąńņóļķūõ šąēäēåėą¢"
-
-#: ../../install_steps_interactive.pm_.c:330
-msgid "Scanning partitions to find mount points"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:338
-msgid "Choose the mount points"
-msgstr "Ąį˙šūöå ļóķźņū ģąķöišąāąķķ˙"
-
-#: ../../install_steps_interactive.pm_.c:357
-#, c-format
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I can try to go on blanking bad partitions (ALL DATA will be lost!).\n"
-"The other solution is to disallow DrakX to modify the partition table.\n"
-"(the error is %s)\n"
-"\n"
-"Do you agree to loose all the partitions?\n"
-msgstr ""
-"Ņąįėiöą šąēäēåėą¢ ķå ÷ūņąåööą, ˙ķą ēąķąäņą ńąļńąāąķą˙ äė˙ ģåķ˙ :(\n"
-"Ļąńļšąįóž ińöi äąėåé i įóäó ļšąļóńźąöü äšżķķū˙ šąēäēåėū (Óńå ÄĄÄÅĒÅĶŪß\n"
-"įóäóöü ńņšą÷ąķū!). Iķųąå šąųżķķå ķå äąēāīėiöü DrakX ēģ˙ķiöü ņąįėiöó "
-"šąēäēåėą¢.\n"
-"(ļąģūėźą ¢ %s)\n"
-"\n"
-"Öi ęąäąåöå ńņšąöiöü óńå šąēäēåėū?\n"
-
-#: ../../install_steps_interactive.pm_.c:370
-msgid ""
-"DiskDrake failed to read correctly the partition table.\n"
-"Continue at your own risk!"
-msgstr ""
-"DiskDrake ķå ēģīć ļšąāiėüķą ļšą÷ūņąöü ņąįėiöó šąäēåėą¢.\n"
-"Ļšąö˙ćāąéöå ņīėüźi ķą ńāąž šūēūźó!"
-
-#: ../../install_steps_interactive.pm_.c:386
-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 ""
-
-#: ../../install_steps_interactive.pm_.c:395
-#, fuzzy
-msgid "No root partition found to perform an upgrade"
-msgstr "Źąšąķøāū šąēäēåė ķå ēķīéäēåķū"
-
-#: ../../install_steps_interactive.pm_.c:396
-msgid "Root Partition"
-msgstr "Źąšąķøāū šąēäēåė"
-
-#: ../../install_steps_interactive.pm_.c:397
-msgid "What is the root partition (/) of your system?"
-msgstr "ßźi šąäēåė źąšąķøāū (/) äė˙ āąųąé ńińņżģū?"
-
-#: ../../install_steps_interactive.pm_.c:411
-msgid "You need to reboot for the partition table modifications to take place"
-msgstr "Źąį ģąäūōiźąöū˙ ņąįėiöū šąēäēåėą¢ ēäåéńķiėąń˙, ļąņšżįķą ļåšąēąćšóēźą."
-
-#: ../../install_steps_interactive.pm_.c:435
-msgid "Choose the partitions you want to format"
-msgstr "Āūįąš šąēäēåėą¢ äė˙ ōąšģąņąāąķķ˙"
-
-#: ../../install_steps_interactive.pm_.c:436
-msgid "Check bad blocks?"
-msgstr "Ļšąāåšūöü ķą ķą˙¢ķąńöü äšżķķūõ įėīźą¢?"
-
-#: ../../install_steps_interactive.pm_.c:462
-msgid "Formatting partitions"
-msgstr "Ōąšģąņąāąķķ˙ šąēäēåėą¢"
-
-#: ../../install_steps_interactive.pm_.c:464
-#, c-format
-msgid "Creating and formatting file %s"
-msgstr "Ńņāąšżķķå i ōąšģąņąāąķķå ōąéėą %s"
-
-#: ../../install_steps_interactive.pm_.c:467
-msgid "Not enough swap to fulfill installation, please add some"
-msgstr ""
-"Ķå õąļąå ģåńöą ¢ įóōåšū ļąäźą÷źi (swap) äė˙ ¢ńņąė˙āąķķ˙, ļąā˙ėi÷öå ˙ćī."
-
-#: ../../install_steps_interactive.pm_.c:473
-msgid "Looking for available packages"
-msgstr "Ļšąćė˙ä äąńņóļķūõ ļąźåņą¢"
-
-#: ../../install_steps_interactive.pm_.c:479
-msgid "Finding packages to upgrade"
-msgstr "Ļīųóź ļąźåņą¢ äė˙ ąįķą¢ėåķķ˙"
-
-#: ../../install_steps_interactive.pm_.c:496
-#, c-format
-msgid ""
-"Your system has not enough space left for installation or upgrade (%d > %d)"
-msgstr ""
-"Āąųą ńińņżģą ķå ģąå äąńņąźīāą ģåńöą äė˙ ¢ńņąė˙āąķķ˙ öi ąįķą¢ėåķķ˙ (%d > %d)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Complete (%dMB)"
-msgstr "Ļī¢ķū (%dMį)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Minimum (%dMB)"
-msgstr "Ģiķiģąėüķū (%dMį)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Recommended (%dMB)"
-msgstr "Šżźąģåķäąāąķą (%dĢį)"
-
-#: ../../install_steps_interactive.pm_.c:568
-msgid ""
-"Please choose load or save package selection on floppy.\n"
-"The format is the same as auto_install generated floppies."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:571
-#, fuzzy
-msgid "Load from floppy"
-msgstr "Ąäķą¢ėåķķå ē äūńźåņū"
-
-#: ../../install_steps_interactive.pm_.c:573
-#, fuzzy
-msgid "Loading from floppy"
-msgstr "Ąäķą¢ėåķķå ē äūńźåņū"
-
-#: ../../install_steps_interactive.pm_.c:573
-#, fuzzy
-msgid "Package selection"
-msgstr "Āūįąš ćšóļū ļąźåņą¢"
-
-#: ../../install_steps_interactive.pm_.c:578
-#, fuzzy
-msgid "Insert a floppy containing package selection"
-msgstr "Óńņą¢öå äūńźåņó ¢ äūńźąāīä %s"
-
-#: ../../install_steps_interactive.pm_.c:590
-msgid "Save on floppy"
-msgstr "Ēąõąāąķķå ķą äūńźåņó"
-
-#: ../../install_steps_interactive.pm_.c:658
-msgid "Selected size is larger than available space"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:671
-#, fuzzy
-msgid "Type of install"
-msgstr "Āūįąš ļąźåņą¢ äė˙ óńņąė˙āąķķ˙"
-
-#: ../../install_steps_interactive.pm_.c:672
-msgid ""
-"You haven't selected any group of packages.\n"
-"Please choose the minimal installation you want:"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:675
-#, fuzzy
-msgid "With X"
-msgstr "׹źąéöå"
-
-#: ../../install_steps_interactive.pm_.c:677
-msgid "With basic documentation (recommended!)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:678
-msgid "Truly minimal install (especially no urpmi)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:762
-msgid ""
-"If you have all the CDs in the list below, click Ok.\n"
-"If you have none of those CDs, click Cancel.\n"
-"If only some CDs are missing, unselect them, then click Ok."
-msgstr ""
-"Źąėi āū ģąåöå ¢ńå CD äūńźi ńą ńļińą ķiężé, ķąöińķiöå Īź.\n"
-"Źąėi āū ķå ģąåöå ąķi āīäķąćą ē ćżņūõ CD äūńźą¢, ķąöińķiöå Ąäģ˙ķiöü.\n"
-"Źąėi ķåźąņīšūõ ē CD äūńźą¢ ķå ģąåöå, ąäģ˙ķiöå iõ āūäē˙ėåķķå i ķąöińķiöå Īź."
-
-#: ../../install_steps_interactive.pm_.c:767
-#, c-format
-msgid "Cd-Rom labeled \"%s\""
-msgstr "Cd-Rom ļąēķą÷ąķū \"%s\""
-
-#: ../../install_steps_interactive.pm_.c:787
-msgid "Preparing installation"
-msgstr "Ļąäšūõņī¢źą ¢ńņąė˙āąķüķ˙"
-
-#: ../../install_steps_interactive.pm_.c:796
-#, c-format
-msgid ""
-"Installing package %s\n"
-"%d%%"
-msgstr ""
-"Óńņąė˙āąķķå ļąźåņó %s\n"
-"%d%%"
-
-#: ../../install_steps_interactive.pm_.c:842
-msgid "Post-install configuration"
-msgstr "Ķąńņšīéźą ļąńė˙ ¢ńņąė˙āąķķ˙"
-
-#: ../../install_steps_interactive.pm_.c:848
-#, fuzzy, c-format
-msgid "Please insert the Boot floppy used in drive %s"
-msgstr "Óńņą¢öå äūńźåņó ¢ äūńźąāīä %s"
-
-#: ../../install_steps_interactive.pm_.c:854
-#, fuzzy, c-format
-msgid "Please insert the Update Modules floppy in drive %s"
-msgstr "Óńņą¢öå äūńźåņó ¢ äūńźąāīä %s"
-
-#: ../../install_steps_interactive.pm_.c:874
-msgid ""
-"You have now the possibility to download software aimed for encryption.\n"
-"\n"
-"WARNING:\n"
-"\n"
-"Due to different general requirements applicable to these software and "
-"imposed\n"
-"by various jurisdictions, customer and/or end user of theses software "
-"should\n"
-"ensure that the laws of his/their jurisdiction allow him/them to download, "
-"stock\n"
-"and/or use these software.\n"
-"\n"
-"In addition customer and/or end user shall particularly be aware to not "
-"infringe\n"
-"the laws of his/their jurisdiction. Should customer and/or end user not\n"
-"respect the provision of these applicable laws, he/they will incure serious\n"
-"sanctions.\n"
-"\n"
-"In no event shall Mandrakesoft nor its manufacturers and/or suppliers be "
-"liable\n"
-"for special, indirect or incidental damages whatsoever (including, but not\n"
-"limited to loss of profits, business interruption, loss of commercial data "
-"and\n"
-"other pecuniary losses, and eventual liabilities and indemnification to be "
-"paid\n"
-"pursuant to a court decision) arising out of use, possession, or the sole\n"
-"downloading of these software, to which customer and/or end user could\n"
-"eventually have access after having sign up the present agreement.\n"
-"\n"
-"\n"
-"For any queries relating to these agreement, please contact \n"
-"Mandrakesoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA"
-msgstr ""
-"Ēąšąē āū ģąåöå ģąć÷ūģąńöü ēąćšóēiöü ļšąćšąģū äė˙ ųūōšąāąķķ˙.\n"
-"\n"
-"ÓĀĄĆĄ:\n"
-"\n"
-"Ē-ēą ąćóėüķūõ ąįģåęąāąķķ˙¢ ķą ļšąćšąģū ćżņźąćą šīäó i šīēķūõ ļąķ˙öö˙¢\n"
-"ó šīēķūõ ēąźīķąäą¢ńņāąõ, ļšąäąāåö i/ąėüįī źąšūńņąėüķiź ćżņūõ ļšąćšąģ "
-"ļąāiķåķ\n"
-"óļż¢ķiööą ¢ ņūģ, ųņī ēąźīķū ˙ćī/iõ äē˙šęąāą¢ äąēāąė˙žöü ēąćšóęąöü, "
-"ēąõī¢āąöü\n"
-"i/ąėüįī āūźąšūńņī¢āąöü ćżņū˙ ļšąćšąģū.\n"
-"\n"
-"Ąźšąģ˙ ņąćī, ļšąäąāåö i/ąėüįī źąšūńņąėüķiź ļąāiķķū įūöü óļż¢ķåķū, ųņī ķå "
-"ļąšóųąžöü\n"
-"ēąźīķą¢ ńāąøé źšąiķū. Źąėi ļšąäąāåö i/ąėüįī źąšūńņąėüķiź ļąšóųąå ćżņū˙\n"
-"ēąźīķū, ˙źi˙ ģīćóöü įūöü ńźąšūńņąķū˙ ńóļšąöü ˙ćī, øķ/˙ķū ķ˙ńå ąäźąēķąńöü\n"
-"\n"
-"Ķi ¢ ˙źiģ šąēå ķi Mandrakesoft, ķi ˙å āūźąķą¢öū i ļąńņą¢ų÷ūźi ķå ąäźąēāąžöü\n"
-"ēą ķåļąńšżäķóž, ķåļšąģóž ąėüįī āūļąäźīāóž ųźīäó (ųņī óźėž÷ąå, ąėå \n"
-"ķå ąįģ˙ęī¢āąåööą ńņšą÷ąķūģ³ ļšūįūņźąģ, ļąšóųżķķå įiēķżńó, ńņšąņąé "
-"źąģåšöūéķūõ \n"
-"äąäēåķūõ i iķųūģi ńņšąņąģi, ą ņąźńąģą ģąć÷ūģūģi ńąķźöū˙ģi i ųņšąōąģi, ˙źi˙ \n"
-"ķąėåęūöü āūļėąöiöü ļą ļąńņąķīāå ńóäó), ˙źi˙ āūö˙źąžöü ē źąšūńņąķķ˙, \n"
-"āąėīäąķķ˙, ąėüįī ļšīńņą ēąćšóēźi ē ńåņźi ļšąćšąģ, äą ˙źiõ ļšąäąāåö ąėüįī\n"
-"źąšūńņąėüķiź ąņšūģąėi äīńņóļ ļąńė˙ ļąäļińąķķ˙ ćżņąćą ļąćąäķåķķ˙.\n"
-"\n"
-"Ćżņąå ļąćąäķåķķå ¢ ļåšųóž ÷ąšćó ąäźąēāąå ēąźīķąäą¢ńņāó Ōšąķöūi, ēą "
-"āūźėž÷żķķåģ\n"
-"āūļąäźą¢, ˙źi˙ ńļåöū˙ėüķą šżćėąģåķņóžööą ģ˙ńöīāūģ ēąźīķąäą¢ńņāąģ ó ģåęąõ\n"
-"ćšąģąäē˙ķńźąćą ļšąāą. Ąäķąź äąäēåķąå ļąćąäķåķķå źąņżćąšū÷ķą ąįā˙šćąå ėžįū˙\n"
-"ķåńóąäķīńiķū ēąźīķąäą¢ńņāą¢, ļšūķöūļą¢, ąėüįī ļšūģ˙ķåķķå ąä ļšīöiėåćėąćą.\n"
-"Ņąźiģ ÷ūķąģ, ēąźīķū Ōšąķöūi įóäóöü ļšżāąėišąāąöü ķąä ėžįūģi iķųūģi "
-"ģ˙ńöīāūģi\n"
-"ēąźīķąģi.\n"
-"\n"
-"Ē ėžįūģi ļūņąķķ˙ģi, ˙źi˙ äąņū÷ąööą äąäēåķķąćą ļąćąäķåķķ˙, ēā˙šņąéöåń˙: \n"
-"Mandrakesoft\n"
-"43, rue d'Aboukir\n"
-"75002 Paris\n"
-"FRANCE"
-
-#: ../../install_steps_interactive.pm_.c:912
-msgid ""
-"You have now the possibility to download updated packages that have\n"
-"been released after the distribution has been made available.\n"
-"\n"
-"You will get security fixes or bug fixes, but you need to have an\n"
-"Internet connection configured to proceed.\n"
-"\n"
-"Do you want to install the updates ?"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:926
-#, fuzzy
-msgid "Contacting Mandrake Linux web site to get the list of available mirrors"
-msgstr "Ńóā˙ēü ē ėžšąģ äė˙ ąņšūģąķķ˙ ńļińó äąńņóļķūõ ļąźåņą¢"
-
-#: ../../install_steps_interactive.pm_.c:931
-msgid "Choose a mirror from which to get the packages"
-msgstr "Āūįąš ėžńņšą äė˙ ąņšūģąķķ˙ ļąźåņą¢"
-
-#: ../../install_steps_interactive.pm_.c:940
-msgid "Contacting the mirror to get the list of available packages"
-msgstr "Ńóā˙ēü ē ėžšąģ äė˙ ąņšūģąķķ˙ ńļińó äąńņóļķūõ ļąźåņą¢"
-
-#: ../../install_steps_interactive.pm_.c:967
-msgid "Which is your timezone?"
-msgstr "ßźi āąų ÷ąńąāū ļī˙ń?"
-
-#: ../../install_steps_interactive.pm_.c:972
-#, fuzzy
-msgid "Hardware clock set to GMT"
-msgstr "Āąų ńińņżģķū ćąäēiķķiź óńņąė˙āąķū ķą GMT?"
-
-#: ../../install_steps_interactive.pm_.c:973
-msgid "Automatic time synchronization (using NTP)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:980
-#, fuzzy
-msgid "NTP Server"
-msgstr "NIS ńåšāåš:"
-
-#: ../../install_steps_interactive.pm_.c:1014
-#: ../../install_steps_interactive.pm_.c:1022
-msgid "Remote CUPS server"
-msgstr "Ąääąėåķū ńåšāåš CUPS"
-
-#: ../../install_steps_interactive.pm_.c:1015
-#, fuzzy
-msgid "No printer"
-msgstr "Iģ˙ äšóźąšźi"
-
-#: ../../install_steps_interactive.pm_.c:1032
-#, fuzzy
-msgid "Do you have an ISA sound card?"
-msgstr "Öi øńöü ó āąń iķųū?"
-
-#: ../../install_steps_interactive.pm_.c:1034
-msgid "Run \"sndconfig\" after installation to configure your sound card"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1036
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1041 ../../steps.pm_.c:27
-msgid "Summary"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1044
-#, fuzzy
-msgid "Mouse"
-msgstr "Ļīšņ ģūųū"
-
-#: ../../install_steps_interactive.pm_.c:1046
-msgid "Timezone"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1047 ../../printerdrake.pm_.c:2276
-#: ../../printerdrake.pm_.c:2354
-msgid "Printer"
-msgstr "Ļšūķņżš"
-
-#: ../../install_steps_interactive.pm_.c:1049
-#, fuzzy
-msgid "ISDN card"
-msgstr "Óķóņšąķą˙ ISDN źąšņą"
-
-#: ../../install_steps_interactive.pm_.c:1052
-#: ../../install_steps_interactive.pm_.c:1054
-#, fuzzy
-msgid "Sound card"
-msgstr "Ńņąķäąšņķū"
-
-#: ../../install_steps_interactive.pm_.c:1056
-msgid "TV card"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1094
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1122
-msgid "LDAP"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1095
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1131
-#, fuzzy
-msgid "NIS"
-msgstr "Āūźąšūńņī¢āąöü NIS"
-
-#: ../../install_steps_interactive.pm_.c:1096
-#: ../../install_steps_interactive.pm_.c:1118
-#, fuzzy
-msgid "Local files"
-msgstr "Ėąźąėüķū ļšūķņżš"
-
-#: ../../install_steps_interactive.pm_.c:1105
-#: ../../install_steps_interactive.pm_.c:1106 ../../steps.pm_.c:24
-msgid "Set root password"
-msgstr "Ļąšīėü äė˙ root"
-
-#: ../../install_steps_interactive.pm_.c:1107
-msgid "No password"
-msgstr "Ķ˙ģą ļąšīėž"
-
-#: ../../install_steps_interactive.pm_.c:1112
-#, c-format
-msgid "This password is too simple (must be at least %d characters long)"
-msgstr ""
-"Ćżņū ļąšīėü ēąķąäņą ļšīńņū (˙ćī äą¢ęūķ˙ ļąāiķķą įūöü ķå ģåķåé ēą %d ėiņąšą¢)"
-
-#: ../../install_steps_interactive.pm_.c:1118 ../../network/modem.pm_.c:49
-#: ../../standalone/draknet_.c:626 ../../standalone/logdrake_.c:172
-msgid "Authentication"
-msgstr "Ą¢ņżķņūōiźąöū˙"
-
-#: ../../install_steps_interactive.pm_.c:1126
-#, fuzzy
-msgid "Authentication LDAP"
-msgstr "Ą¢ņżķņūōiźąöū˙"
-
-#: ../../install_steps_interactive.pm_.c:1127
-msgid "LDAP Base dn"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1128
-#, fuzzy
-msgid "LDAP Server"
-msgstr "ńåšāåš"
-
-#: ../../install_steps_interactive.pm_.c:1134
-#, fuzzy
-msgid "Authentication NIS"
-msgstr "Ą¢ņżķņūōiźąöū˙ NIS"
-
-#: ../../install_steps_interactive.pm_.c:1135
-msgid "NIS Domain"
-msgstr "NIS Domain"
-
-#: ../../install_steps_interactive.pm_.c:1136
-msgid "NIS Server"
-msgstr "NIS ńåšāåš:"
-
-#: ../../install_steps_interactive.pm_.c:1171
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"SILO on your system, or another operating system removes SILO, or SILO "
-"doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures.\n"
-"\n"
-"If you want to create a bootdisk for your system, insert a floppy in the "
-"first\n"
-"drive and press \"Ok\"."
-msgstr ""
-"Ē äąļąģīćąé ēąćšóēą÷ķąćą äūńźą āū ēģīęąöå ēąćšóęąöü Linux ķåēąėåęķą ąä\n"
-" ńņąķäąšņķąćą ēąćšóē÷ūźą. Ćżņą ģīęą įūöü ˙źąńķą, źąėi āū ķå ęąäąåöå \n"
-"¢ńņąėø¢āąöü SILO, źąėi iķųą˙ ąļåšąöūéķą˙ ńińņżģą āūäąė˙å SILO, öi SILO ķå \n"
-"ģīęą ļšąöąāąöü ó āąųąé źąķōićóšąöūi. Ēąćšóēą÷ķū äūńź ņąźńąģą ģīęą įūöü \n"
-"āūźąšūńņąķ ńóģåńķą ē āūšąņąāąėüķąé äūńźåņąé Mandrake Linux, ˙źą˙ āåėüģi \n"
-"ļąėåć÷ūöü āūšąņąāąķķå ńińņżģū ļąńė˙ ēįīž.\n"
-"\n"
-"Źąėi ęąäąåöå ńņāąšūöü ēąćšóēą÷ķū äūńź ēąšąē, óńņą¢öå äūńźåņó ¢ ļåšųū\n"
-"äūńźąāīä i ķąöińķiöå \"Ok\"."
-
-#: ../../install_steps_interactive.pm_.c:1187
-msgid "First floppy drive"
-msgstr "Ļåšųū äūńźąāīä"
-
-#: ../../install_steps_interactive.pm_.c:1188
-msgid "Second floppy drive"
-msgstr "Äšóći äūńźąāīä"
-
-#: ../../install_steps_interactive.pm_.c:1189 ../../printerdrake.pm_.c:1848
-msgid "Skip"
-msgstr "Ļšąļóńöiöü"
-
-#: ../../install_steps_interactive.pm_.c:1194
-#, c-format
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"LILO (or grub) on your system, or another operating system removes LILO, or "
-"LILO doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures. Would you like to create a bootdisk for your system?\n"
-"%s"
-msgstr ""
-"Ē äąļąģīćąé ēąćšóēą÷ķąćą äūńźó āū ēģīęąöå ēąćšóęąöü Linux ņąźńąģą ˙ź i \n"
-"ńņąķäąšņķūģ ēąćšóē÷ūźąģ. Ćżņą ģīęą įūöü ˙źąńķą, źąėi āū ķå ęąäąåöå \n"
-"¢ńņąėø¢āąöü LILO (öi Grub), źąėi iķųą˙ ąļåšąöūéķą˙ ńińņżģą āūäąė˙å LILO,\n"
-"öi LILO ķå ģīęą ļšąöąāąöü ó āąųąé źąķōićóšąöūi. Ēąćšóēą÷ķū äūńź ņąźńąģą "
-"ģīęą\n"
-"įūöü āūźąšūńņąķū ńóģåńķą ē šąģīķņķąé äūńźåņąé Mandrake Linux, ˙źą˙ āåėüģi \n"
-"ļąėåć÷ūöü āūšąņąāąķķå ńińņżģū ļąńė˙ ēįīž.\n"
-"\n"
-"Ęąäąåöå ńņāąšūöü ēąćšóēą÷ķū äūńź ēąšąē?\n"
-"%s"
-
-#: ../../install_steps_interactive.pm_.c:1200
-msgid ""
-"\n"
-"\n"
-"(WARNING! You're using XFS for your root partition,\n"
-"creating a bootdisk on a 1.44 Mb floppy will probably fail,\n"
-"because XFS needs a very large driver)."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1208
-msgid "Sorry, no floppy drive available"
-msgstr "Āūįą÷ąéöå, ąėå äūńźąāīä ķåäąńņóļķū"
-
-#: ../../install_steps_interactive.pm_.c:1212
-msgid "Choose the floppy drive you want to use to make the bootdisk"
-msgstr "Ąį˙šūöå äūńźąāīä, ó ˙źiģ įóäēå ńņāąšąööą ēąćšóēą÷ķą˙ äūńźåņą"
-
-#: ../../install_steps_interactive.pm_.c:1216
-#, fuzzy, c-format
-msgid "Insert a floppy in %s"
-msgstr "Óńņą¢öå äūńźåņó ¢ äūńźąāīä %s"
-
-#: ../../install_steps_interactive.pm_.c:1219
-msgid "Creating bootdisk"
-msgstr "Ńņāąšżķķå ēąćšóēą÷ķąé äūńźåņū"
-
-#: ../../install_steps_interactive.pm_.c:1226
-msgid "Preparing bootloader"
-msgstr "Ļąäšūõņī¢źą ēąćšóē÷ūźą"
-
-#: ../../install_steps_interactive.pm_.c:1237
-msgid ""
-"You appear to have an OldWorld or Unknown\n"
-" machine, the yaboot bootloader will not work for you.\n"
-"The install will continue, but you'll\n"
-" need to use BootX to boot your machine"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1243
-msgid "Do you want to use aboot?"
-msgstr "Āū ęąäąåöå āūźąšūńņī¢āąöü aboot?"
-
-#: ../../install_steps_interactive.pm_.c:1246
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Ļąģūėźą ¢ńņąė˙āąķķ˙ ąboot, \n"
-"ńļšąįąāąöü óńņąėø¢āąöü, ķåćėåäē˙÷ū ķą ģąć÷ūģąńöü ļąšóųżķķ˙ ļåšųąćą šąēäåėó?"
-
-#: ../../install_steps_interactive.pm_.c:1253
-#, fuzzy
-msgid "Installing bootloader"
-msgstr "Óńņąė˙āąķķå ēąćšóē÷ūźó"
-
-#: ../../install_steps_interactive.pm_.c:1259
-msgid "Installation of bootloader failed. The following error occured:"
-msgstr "Ļšąöżń óńņąė˙āąķķ˙ ēąćšóē÷ūźą ķå ąņšūģą¢ń˙. Óēķiźėą ķąńņóļķą˙ ļąģūėźą:"
-
-#: ../../install_steps_interactive.pm_.c:1267
-#, c-format
-msgid ""
-"You may need to change your Open Firmware boot-device to\n"
-" enable the bootloader. If you don't 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\n"
-"At your next boot you should see the bootloader prompt."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1311
-#: ../../standalone/drakautoinst_.c:81
-#, c-format
-msgid "Insert a blank floppy in drive %s"
-msgstr "Óńņą¢öå äūńźåņó ¢ äūńźąāīä %s"
-
-#: ../../install_steps_interactive.pm_.c:1315
-#: ../../standalone/drakautoinst_.c:83
-msgid "Creating auto install floppy"
-msgstr "Ńņāąšżķķå äūńźåņū äė˙ ¢ńņąė˙āąķķ˙"
-
-#: ../../install_steps_interactive.pm_.c:1326
-msgid ""
-"Some steps are not completed.\n"
-"\n"
-"Do you really want to quit now?"
-msgstr ""
-"Ķåźąņīšū˙ źšīźi ķå ēąāåšųąķū.\n"
-"Āū ńąļšą¢äū ęąäąåöå āūéńöi ēąšąē?"
-
-#: ../../install_steps_interactive.pm_.c:1337
-msgid ""
-"Congratulations, installation is complete.\n"
-"Remove the boot media and press return to reboot.\n"
-"\n"
-"\n"
-"For information on fixes which are available for this release of Mandrake "
-"Linux,\n"
-"consult the Errata available from:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/82errata.php3\n"
-"\n"
-"\n"
-"Information on configuring your system is available in the post\n"
-"install chapter of the Official Mandrake Linux User's Guide."
-msgstr ""
-"Āiķųóåģ, óńņąė˙āąķķå ēąāåšųąķą.\n"
-"Āūäąėiöå ēąćšóēą÷ķū äūńź i ķąöińķiöå enter äė˙ ļåšąēąćšóēźi.\n"
-"\n"
-"\n"
-"Ēą iķōąšģąöū˙é ļšą ēģ˙ķåķķi äąäēåķąćą āūļóńźó Mandrake Linux,\n"
-"ēā˙šņąéöåńü ķą \n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/82errata.php3\n"
-"\n"
-"\n"
-"Iķōąšģąöū˙ ļą ķąńņšīéźå āąųąé ńińņżģū øńņü ¢ ļąńė˙-¢ńņąėøāą÷ķąé\n"
-"ćėąāå āąųąćą Äąļąģīęķiźą Źąšūńņąėüķiźó ē Ąōiöūéķąćą Mandrake Linux."
-
-#: ../../install_steps_interactive.pm_.c:1354
-#, fuzzy
-msgid "Generate auto install floppy"
-msgstr "Ńņāąšżķķå äūńźåņū äė˙ ¢ńņąė˙āąķķ˙"
-
-#: ../../install_steps_interactive.pm_.c:1356
-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 ""
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Automated"
-msgstr "Ą¢ņąģąņū÷ķū"
-
-#: ../../install_steps_interactive.pm_.c:1361
-#, fuzzy
-msgid "Replay"
-msgstr "Ļåšąēąćšóēiöü"
-
-#: ../../install_steps_interactive.pm_.c:1364
-#, fuzzy
-msgid "Save packages selection"
-msgstr "Ąńąįińņū āūįąš ļąźåņą¢"
-
-#: ../../install_steps_newt.pm_.c:22
-#, c-format
-msgid "Mandrake Linux Installation %s"
-msgstr "Óńņąė˙āąķķå Mandrake Linux %s"
-
-#: ../../install_steps_newt.pm_.c:34
-msgid ""
-" <Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen "
-msgstr ""
-" <Tab>/<Alt-Tab> ļąģię żėåģåķņąģi | <Space> āūįąš | <F12> ķąńņóļķū żźšąķ "
-
-#: ../../interactive.pm_.c:87
-msgid "kdesu missing"
-msgstr ""
-
-#: ../../interactive.pm_.c:89 ../../interactive.pm_.c:100
-msgid "consolehelper missing"
-msgstr ""
-
-#: ../../interactive.pm_.c:152
-#, fuzzy
-msgid "Choose a file"
-msgstr "Ąį˙šūöå äēå˙ķķå"
-
-#: ../../interactive.pm_.c:314
-msgid "Advanced"
-msgstr ""
-
-#: ../../interactive.pm_.c:315
-msgid "Basic"
-msgstr ""
-
-#: ../../interactive.pm_.c:386
-msgid "Please wait"
-msgstr "Źąėi ėąńźą, ļą÷ąźąéöå"
-
-#: ../../interactive_gtk.pm_.c:605 ../../services.pm_.c:222
-msgid "Info"
-msgstr "Iķōąšģąöū˙"
-
-#: ../../interactive_gtk.pm_.c:715
-msgid "Expand Tree"
-msgstr "Šąēćąšķóöü äšżāą"
-
-#: ../../interactive_gtk.pm_.c:716
-msgid "Collapse Tree"
-msgstr "Ēćąšķóöü äšżāą"
-
-#: ../../interactive_gtk.pm_.c:717
-msgid "Toggle between flat and group sorted"
-msgstr "Ļåšąźėž÷żķķå ļąģię óļąšąäźąāąķķåģ ļą ćšóļå i ąńīįźąõ"
-
-#: ../../interactive_stdio.pm_.c:29 ../../interactive_stdio.pm_.c:147
-msgid "Bad choice, try again\n"
-msgstr "Äšżķķū āūįąš, ļąńļšąįóéöå ˙ų÷å\n"
-
-#: ../../interactive_stdio.pm_.c:30 ../../interactive_stdio.pm_.c:148
-#, c-format
-msgid "Your choice? (default %s) "
-msgstr "Āąų āūįąš? (ēģī¢÷ąķķå %s) "
-
-#: ../../interactive_stdio.pm_.c:52
-#, c-format
-msgid ""
-"Entries you'll have to fill:\n"
-"%s"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:68
-#, fuzzy, c-format
-msgid "Your choice? (0/1, default `%s') "
-msgstr "Āąų āūįąš? (ēģī¢÷ąķķå %s) "
-
-#: ../../interactive_stdio.pm_.c:93
-#, fuzzy, c-format
-msgid "Button `%s': %s"
-msgstr "Īļöūi: %s"
-
-#: ../../interactive_stdio.pm_.c:94
-#, fuzzy
-msgid "Do you want to click on this button? "
-msgstr "Āū ęąäąåöå āūźąšūńņī¢āąöü aboot?"
-
-#: ../../interactive_stdio.pm_.c:103
-#, fuzzy, c-format
-msgid "Your choice? (default `%s'%s) "
-msgstr "Āąų āūįąš? (ēģī¢÷ąķķå %s) "
-
-#: ../../interactive_stdio.pm_.c:121
-#, c-format
-msgid "=> There are many things to choose from (%s).\n"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:124
-msgid ""
-"Please choose the first number of the 10-range you wish to edit,\n"
-"or just hit Enter to proceed.\n"
-"Your choice? "
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:137
-#, c-format
-msgid ""
-"=> Notice, a label changed:\n"
-"%s"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:144
-msgid "Re-submit"
-msgstr ""
-
-#: ../../keyboard.pm_.c:174 ../../keyboard.pm_.c:205
-msgid "Czech (QWERTZ)"
-msgstr "×åųńźi (QWERTZ)"
-
-#: ../../keyboard.pm_.c:175 ../../keyboard.pm_.c:207
-msgid "German"
-msgstr "Ķ˙ģåöźi"
-
-#: ../../keyboard.pm_.c:176
-msgid "Dvorak"
-msgstr "Dvorak"
-
-#: ../../keyboard.pm_.c:177 ../../keyboard.pm_.c:214
-msgid "Spanish"
-msgstr "Ińļąķńźi"
-
-#: ../../keyboard.pm_.c:178 ../../keyboard.pm_.c:215
-msgid "Finnish"
-msgstr "Ōiķńźi"
-
-#: ../../keyboard.pm_.c:179 ../../keyboard.pm_.c:216
-msgid "French"
-msgstr "Ōšąķöóēńźi"
-
-#: ../../keyboard.pm_.c:180 ../../keyboard.pm_.c:241
-msgid "Norwegian"
-msgstr "Ķąšāåęńźi"
-
-#: ../../keyboard.pm_.c:181
-msgid "Polish"
-msgstr "Ļīėüńźi"
-
-#: ../../keyboard.pm_.c:182 ../../keyboard.pm_.c:249
-msgid "Russian"
-msgstr "Šóńźi"
-
-#: ../../keyboard.pm_.c:184 ../../keyboard.pm_.c:251
-msgid "Swedish"
-msgstr "Ųāåöźi"
-
-#: ../../keyboard.pm_.c:185 ../../keyboard.pm_.c:266
-msgid "UK keyboard"
-msgstr "UK źėąāi˙ņóšą"
-
-#: ../../keyboard.pm_.c:186 ../../keyboard.pm_.c:267
-msgid "US keyboard"
-msgstr "US źėąāi˙ņóšą"
-
-#: ../../keyboard.pm_.c:188
-#, fuzzy
-msgid "Albanian"
-msgstr "Išąķńźi"
-
-#: ../../keyboard.pm_.c:189
-msgid "Armenian (old)"
-msgstr "Ąšģ˙ķńźi (ńņąšū)"
-
-#: ../../keyboard.pm_.c:190
-msgid "Armenian (typewriter)"
-msgstr "Ąšģ˙ķńźi (typewriter)"
-
-#: ../../keyboard.pm_.c:191
-msgid "Armenian (phonetic)"
-msgstr "Ąšģ˙ķńźi (ōąķåņū÷ķū)"
-
-#: ../../keyboard.pm_.c:196
-msgid "Azerbaidjani (latin)"
-msgstr "Ąēåšįąéäęąķńź³ (latin)"
-
-#: ../../keyboard.pm_.c:198
-msgid "Belgian"
-msgstr "Įåėüćiéńźi"
-
-#: ../../keyboard.pm_.c:199
-#, fuzzy
-msgid "Bulgarian (phonetic)"
-msgstr "Ąšģ˙ķńźi (ōąķåņū÷ķū)"
-
-#: ../../keyboard.pm_.c:200
-#, fuzzy
-msgid "Bulgarian (BDS)"
-msgstr "Įąėćąšńźi"
-
-#: ../../keyboard.pm_.c:201
-msgid "Brazilian (ABNT-2)"
-msgstr "Įšąēiėüńźi (ABNT-2)"
-
-#: ../../keyboard.pm_.c:202
-msgid "Belarusian"
-msgstr "Įåėąšóńź³"
-
-#: ../../keyboard.pm_.c:203
-msgid "Swiss (German layout)"
-msgstr "Ųāåéöąšńźi (Ķ˙ģåöźą˙ šąńźėąäźą)"
-
-#: ../../keyboard.pm_.c:204
-msgid "Swiss (French layout)"
-msgstr "Ųāåéöąšńźi (Ōšąķöóēńźą˙ šąńźėąäźą)"
-
-#: ../../keyboard.pm_.c:206
-msgid "Czech (QWERTY)"
-msgstr "×åųńźi (QWERTY)"
-
-#: ../../keyboard.pm_.c:208
-msgid "German (no dead keys)"
-msgstr "Ķ˙ģåöźi (ķ˙ģą ēąįėąźišąāąķūõ źėąāių)"
-
-#: ../../keyboard.pm_.c:209
-msgid "Danish"
-msgstr "Äąöźi"
-
-#: ../../keyboard.pm_.c:210
-msgid "Dvorak (US)"
-msgstr "Dvorak (US)"
-
-#: ../../keyboard.pm_.c:211
-msgid "Dvorak (Norwegian)"
-msgstr "Dvorak (Ķąšāåęńźi)"
-
-#: ../../keyboard.pm_.c:212
-#, fuzzy
-msgid "Dvorak (Swedish)"
-msgstr "Dvorak (US)"
-
-#: ../../keyboard.pm_.c:213
-msgid "Estonian"
-msgstr "Żńņīķńźi"
-
-#: ../../keyboard.pm_.c:217
-msgid "Georgian (\"Russian\" layout)"
-msgstr "Ćšóēiķńźi (\"Šóńźą˙\" šąńźėąäźą)"
-
-#: ../../keyboard.pm_.c:218
-msgid "Georgian (\"Latin\" layout)"
-msgstr "Ćšóēiķńźi (\"Ėąöiķńźą˙\" šąńźėąäźą)"
-
-#: ../../keyboard.pm_.c:219
-msgid "Greek"
-msgstr "Ćšż÷ąńźi"
-
-#: ../../keyboard.pm_.c:220
-msgid "Hungarian"
-msgstr "Ģąäü˙šńźi"
-
-#: ../../keyboard.pm_.c:221
-msgid "Croatian"
-msgstr "Õąšāąöźi"
-
-#: ../../keyboard.pm_.c:222
-msgid "Israeli"
-msgstr "I¢šūņ"
-
-#: ../../keyboard.pm_.c:223
-msgid "Israeli (Phonetic)"
-msgstr "I¢šūņ (ōąķåņū÷ķū)"
-
-#: ../../keyboard.pm_.c:224
-msgid "Iranian"
-msgstr "Išąķńźi"
-
-#: ../../keyboard.pm_.c:225
-msgid "Icelandic"
-msgstr "Ińėąķäńźi"
-
-#: ../../keyboard.pm_.c:226
-msgid "Italian"
-msgstr "Iņąėü˙ķńźi"
-
-#: ../../keyboard.pm_.c:228
-msgid "Japanese 106 keys"
-msgstr "ßļīķńźi 106 źėąāių"
-
-#: ../../keyboard.pm_.c:231
-#, fuzzy
-msgid "Korean keyboard"
-msgstr "UK źėąāi˙ņóšą"
-
-#: ../../keyboard.pm_.c:232
-msgid "Latin American"
-msgstr "Ėąöiķą-Ąģåšūźąķńźi"
-
-#: ../../keyboard.pm_.c:233
-msgid "Lithuanian AZERTY (old)"
-msgstr "Ėiņī¢ńźi AZERTY (ńņąšū)"
-
-#: ../../keyboard.pm_.c:235
-msgid "Lithuanian AZERTY (new)"
-msgstr "Ėiņī¢ńźi AZERTY (ķīāū)"
-
-#: ../../keyboard.pm_.c:236
-msgid "Lithuanian \"number row\" QWERTY"
-msgstr "Ėiņī¢ńźi \"ķóģąš šąäźą\" QWERTY"
-
-#: ../../keyboard.pm_.c:237
-msgid "Lithuanian \"phonetic\" QWERTY"
-msgstr "Ėiņī¢ńźi \"ōąķåņū÷ķū\" QWERTY"
-
-#: ../../keyboard.pm_.c:238
-#, fuzzy
-msgid "Latvian"
-msgstr "Šąēģåšźąāąķķå"
-
-#: ../../keyboard.pm_.c:239
-msgid "Macedonian"
-msgstr ""
-
-#: ../../keyboard.pm_.c:240
-msgid "Dutch"
-msgstr "Ćąėąķäńźi"
-
-#: ../../keyboard.pm_.c:242
-msgid "Polish (qwerty layout)"
-msgstr "Ļīėüńźi (ńņąķäąšņķą˙ šąńźėąäźą)"
-
-#: ../../keyboard.pm_.c:243
-msgid "Polish (qwertz layout)"
-msgstr "Ļīėüńźi (qwertz šąńźėąäźą)"
-
-#: ../../keyboard.pm_.c:244
-msgid "Portuguese"
-msgstr "Ļąšņóćąėüńźi"
-
-#: ../../keyboard.pm_.c:245
-msgid "Canadian (Quebec)"
-msgstr "Źąķąäńźi (Źāåįżź)"
-
-#: ../../keyboard.pm_.c:247
-#, fuzzy
-msgid "Romanian (qwertz)"
-msgstr "Šóńźi (ß-Ā-Å-Š-Ņ-Č)"
-
-#: ../../keyboard.pm_.c:248
-#, fuzzy
-msgid "Romanian (qwerty)"
-msgstr "Šóńźi (ß-Ā-Å-Š-Ņ-Č)"
-
-#: ../../keyboard.pm_.c:250
-msgid "Russian (Yawerty)"
-msgstr "Šóńźi (ß-Ā-Å-Š-Ņ-Č)"
-
-#: ../../keyboard.pm_.c:252
-msgid "Slovenian"
-msgstr "Ńėąāåķńźi"
-
-#: ../../keyboard.pm_.c:253
-msgid "Slovakian (QWERTZ)"
-msgstr "Ńėąāąöźi (QWERTZ)"
-
-#: ../../keyboard.pm_.c:254
-msgid "Slovakian (QWERTY)"
-msgstr "Ńėąāąöźi (QWERTY)"
-
-#: ../../keyboard.pm_.c:256
-#, fuzzy
-msgid "Serbian (cyrillic)"
-msgstr "Ąēåšįąéäęąķńź³ (ź³šūė³öą)"
-
-#: ../../keyboard.pm_.c:258
-#, fuzzy
-msgid "Tamil"
-msgstr "Ņąįėiöą"
-
-#: ../../keyboard.pm_.c:259
-msgid "Thai keyboard"
-msgstr "Ņąéńźą˙ źėąāi˙ņóšą"
-
-#: ../../keyboard.pm_.c:261
-#, fuzzy
-msgid "Tajik keyboard"
-msgstr "Ņąéńźą˙ źėąāi˙ņóšą"
-
-#: ../../keyboard.pm_.c:262
-msgid "Turkish (traditional \"F\" model)"
-msgstr "Ņóšżöźi (ņšąäūöūøķą˙ \"F\" ģąäżėü)"
-
-#: ../../keyboard.pm_.c:263
-msgid "Turkish (modern \"Q\" model)"
-msgstr "Ņóšżöźi (ńó÷ąńķą˙ \"Q\" ģąäżėü)"
-
-#: ../../keyboard.pm_.c:265
-msgid "Ukrainian"
-msgstr "Óźšąiķńźi"
-
-#: ../../keyboard.pm_.c:268
-msgid "US keyboard (international)"
-msgstr "US źėąāi˙ņóšą (ģięķąšīäķą˙)"
-
-#: ../../keyboard.pm_.c:269
-msgid "Vietnamese \"numeric row\" QWERTY"
-msgstr "Āüåņķąģńźi \"ķóģąš šąäźą\" QWERTY"
-
-#: ../../keyboard.pm_.c:270
-#, fuzzy
-msgid "Yugoslavian (latin)"
-msgstr "Ąēåšįąéäęąķńź³ (latin)"
-
-#: ../../keyboard.pm_.c:278
-msgid "Right Alt key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:279
-msgid "Both Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:280
-msgid "Control and Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:281
-msgid "CapsLock key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:282
-msgid "Ctrl and Alt keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:283
-msgid "Alt and Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:284
-msgid "\"Menu\" key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:285
-msgid "Left \"Windows\" key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:286
-msgid "Right \"Windows\" key"
-msgstr ""
-
-#: ../../loopback.pm_.c:32
-#, c-format
-msgid "Circular mounts %s\n"
-msgstr "Ģąķöišąāąķķå äūńźó %s\n"
-
-#: ../../lvm.pm_.c:88
-msgid "Remove the logical volumes first\n"
-msgstr ""
-
-#: ../../modules.pm_.c:826
-msgid ""
-"PCMCIA support no longer exist for 2.2 kernels. Please use a 2.4 kernel."
-msgstr ""
-
-#: ../../mouse.pm_.c:25
-msgid "Sun - Mouse"
-msgstr "Sun - Ģūų"
-
-#: ../../mouse.pm_.c:32
-msgid "Logitech MouseMan+"
-msgstr "Logitech MouseMan+"
-
-#: ../../mouse.pm_.c:33
-#, fuzzy
-msgid "Generic PS2 Wheel Mouse"
-msgstr "Ēāū÷ąéķą˙ ģūų ē 2 źķīļźąģ³"
-
-#: ../../mouse.pm_.c:34
-msgid "GlidePoint"
-msgstr "GlidePoint"
-
-#: ../../mouse.pm_.c:36 ../../mouse.pm_.c:63
-msgid "Kensington Thinking Mouse"
-msgstr "Kensington Thinking Mouse"
-
-#: ../../mouse.pm_.c:37 ../../mouse.pm_.c:59
-msgid "Genius NetMouse"
-msgstr "Genius NetMouse"
-
-#: ../../mouse.pm_.c:38
-msgid "Genius NetScroll"
-msgstr "Genius NetScroll"
-
-#: ../../mouse.pm_.c:43 ../../mouse.pm_.c:68
-#, fuzzy
-msgid "1 button"
-msgstr "2 źķīļźi"
-
-#: ../../mouse.pm_.c:44 ../../mouse.pm_.c:51
-msgid "Generic 2 Button Mouse"
-msgstr "Ēāū÷ąéķą˙ ģūų ē 2 źķīļźąģ³"
-
-#: ../../mouse.pm_.c:45
-msgid "Generic"
-msgstr "Ąćóėüķū"
-
-#: ../../mouse.pm_.c:46
-msgid "Wheel"
-msgstr "Ē źīėąģ"
-
-#: ../../mouse.pm_.c:49
-msgid "serial"
-msgstr "ļąńė˙äī¢ķą˙"
-
-#: ../../mouse.pm_.c:52
-msgid "Generic 3 Button Mouse"
-msgstr "Ēāū÷ąéķą˙ ģūų ē 3 źķīļźąģ³"
-
-#: ../../mouse.pm_.c:53
-msgid "Microsoft IntelliMouse"
-msgstr "Microsoft IntelliMouse"
-
-#: ../../mouse.pm_.c:54
-msgid "Logitech MouseMan"
-msgstr "Logitech MouseMan"
-
-#: ../../mouse.pm_.c:55
-msgid "Mouse Systems"
-msgstr "Mouse Systems"
-
-#: ../../mouse.pm_.c:57
-msgid "Logitech CC Series"
-msgstr "Logitech CC Series"
-
-#: ../../mouse.pm_.c:58
-msgid "Logitech MouseMan+/FirstMouse+"
-msgstr "Logitech MouseMan+/FirstMouse+"
-
-#: ../../mouse.pm_.c:60
-msgid "MM Series"
-msgstr "MM Series"
-
-#: ../../mouse.pm_.c:61
-msgid "MM HitTablet"
-msgstr "MM HitTablet"
-
-#: ../../mouse.pm_.c:62
-msgid "Logitech Mouse (serial, old C7 type)"
-msgstr "Logitech Mouse (ļąńė˙äī¢ķą˙, ńņąšū ņūļ C7)"
-
-#: ../../mouse.pm_.c:66
-#, fuzzy
-msgid "busmouse"
-msgstr "Ķ˙ģą ģūųū"
-
-#: ../../mouse.pm_.c:69
-msgid "2 buttons"
-msgstr "2 źķīļźi"
-
-#: ../../mouse.pm_.c:70
-msgid "3 buttons"
-msgstr "3 źķīļźi"
-
-#: ../../mouse.pm_.c:73
-msgid "none"
-msgstr "ķ˙ģą"
-
-#: ../../mouse.pm_.c:75
-msgid "No mouse"
-msgstr "Ķ˙ģą ģūųū"
-
-#: ../../mouse.pm_.c:499
-msgid "Please test the mouse"
-msgstr "Źąė³ ėąńźą, ēšąį³öå ķåźąėüź³ šóõą¢ ģūųųó."
-
-#: ../../mouse.pm_.c:500
-#, fuzzy
-msgid "To activate the mouse,"
-msgstr "Źąė³ ėąńźą, ēšąį³öå ķåźąėüź³ šóõą¢ ģūųųó."
-
-#: ../../mouse.pm_.c:501
-msgid "MOVE YOUR WHEEL!"
-msgstr "Šóųöå źīėąģ ģūųū!"
-
-#: ../../my_gtk.pm_.c:651
-msgid "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"
-msgstr ""
-
-#: ../../my_gtk.pm_.c:686
-#, fuzzy
-msgid "Finish"
-msgstr "Ōiķńźi"
-
-#: ../../my_gtk.pm_.c:686 ../../printerdrake.pm_.c:1588
-msgid "Next ->"
-msgstr "Äąėåé ->"
-
-#: ../../my_gtk.pm_.c:687 ../../printerdrake.pm_.c:1586
-msgid "<- Previous"
-msgstr ""
-
-#: ../../my_gtk.pm_.c:1019
-msgid "Is this correct?"
-msgstr "Ćżņą äąźėąäķą?"
-
-#: ../../network/adsl.pm_.c:19 ../../network/ethernet.pm_.c:36
-msgid "Connect to the Internet"
-msgstr "Äąėó÷żķķå äą Iķņżšķżņó"
-
-#: ../../network/adsl.pm_.c:20
-msgid ""
-"The most common way to connect with adsl is pppoe.\n"
-"Some connections use pptp, a few ones use dhcp.\n"
-"If you don't know, choose 'use pppoe'"
-msgstr ""
-
-#: ../../network/adsl.pm_.c:22
-msgid "Alcatel speedtouch usb"
-msgstr ""
-
-#: ../../network/adsl.pm_.c:22
-msgid "use dhcp"
-msgstr ""
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pppoe"
-msgstr "āūźąšūńņī¢āąöü pppoe"
-
-#: ../../network/adsl.pm_.c:22
-#, fuzzy
-msgid "use pptp"
-msgstr "āūźąšūńņī¢āąöü pppoe"
-
-#: ../../network/ethernet.pm_.c:37
-msgid ""
-"Which dhcp client do you want to use?\n"
-"Default is dhcpcd"
-msgstr ""
-"ßźi dhcp źėiåķņ āū ļėąķóåöå āūźąšūńņī¢āąöü?\n"
-"Ļą ēģī¢÷ąķķž, ćżņą dhcpcd"
-
-#: ../../network/ethernet.pm_.c:88
-#, fuzzy
-msgid ""
-"No ethernet network adapter has been detected on your system.\n"
-"I cannot set up this connection type."
-msgstr ""
-"Ķi āīäķū ethernet ńåņźąāū ąäąļņąš ó āąųąé ńińņżģå ķå āūēķą÷ąķū. Źąėi ėąńźą, "
-"ńźąšūńņąéöå źąķōićóšąöūéķū iķńņšóģżķņ."
-
-#: ../../network/ethernet.pm_.c:92 ../../standalone/drakgw_.c:252
-msgid "Choose the network interface"
-msgstr "Ļąēķą÷öå ńåņźąāū iķņżšōåéń"
-
-#: ../../network/ethernet.pm_.c:93
-msgid ""
-"Please choose which network adapter you want to use to connect to Internet"
-msgstr ""
-"Źąėi ėąńźą, ļąēķą÷öå ńåņźąāū ąäąļņąš, ˙źi ļėąķóåöå āūźąšūńņī¢āąöü äė˙ "
-"äąėó÷żķķ˙ äą iķņżšķżņ"
-
-#: ../../network/ethernet.pm_.c:178
-msgid "no network card found"
-msgstr "ńåņźąāą˙ źąšņą ķå ēķīéäēåķą"
-
-#: ../../network/ethernet.pm_.c:202 ../../network/network.pm_.c:360
-msgid "Configuring network"
-msgstr "Ķąńņšīéźą ńåņźi"
-
-#: ../../network/ethernet.pm_.c:203
-msgid ""
-"Please enter your host name if you know it.\n"
-"Some DHCP servers require the hostname to work.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''."
-msgstr ""
-"Óā˙äēiöå iģ˙ ńāąøé ģąųūķū (host).\n"
-"Iģ˙ āąųąé ģąųūķū ļąāiķķą įūöü ēąäąäēåķą ļī¢ķąńöž,\n"
-"ķąļšūźėąä ``mybox.mylab.myco.com''.\n"
-"Āū ģīęąöå ņąźńąģą ¢āåńöi IP ąäšąń ųėžēó, źąėi øķ ó āąń øńöü."
-
-#: ../../network/ethernet.pm_.c:207 ../../network/network.pm_.c:365
-msgid "Host name"
-msgstr "Iģ˙ ģąųūķū"
-
-#: ../../network/isdn.pm_.c:21 ../../network/isdn.pm_.c:44
-#: ../../network/netconnect.pm_.c:95 ../../network/netconnect.pm_.c:109
-#: ../../network/netconnect.pm_.c:164 ../../network/netconnect.pm_.c:175
-#: ../../network/netconnect.pm_.c:202 ../../network/netconnect.pm_.c:225
-#: ../../network/netconnect.pm_.c:233
-#, fuzzy
-msgid "Network Configuration Wizard"
-msgstr "Źąķōićóšąöū˙ ńåņźi"
-
-#: ../../network/isdn.pm_.c:22
-#, fuzzy
-msgid "External ISDN modem"
-msgstr "Óķóņšąķą˙ ISDN źąšņą"
-
-#: ../../network/isdn.pm_.c:22
-msgid "Internal ISDN card"
-msgstr "Óķóņšąķą˙ ISDN źąšņą"
-
-#: ../../network/isdn.pm_.c:22
-msgid "What kind is your ISDN connection?"
-msgstr "ßźi ņūļ āąųąćą ISDN ēėó÷żķķ˙?"
-
-#: ../../network/isdn.pm_.c:45
-msgid ""
-"Which ISDN configuration do you prefer?\n"
-"\n"
-"* The Old configuration uses isdn4net. It contains powerfull\n"
-" tools, but is tricky to configure, and not standard.\n"
-"\n"
-"* The New configuration is easier to understand, more\n"
-" standard, but with less tools.\n"
-"\n"
-"We recommand the light configuration.\n"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:54
-#, fuzzy
-msgid "New configuration (isdn-light)"
-msgstr "Ēķīéäēåķą ń³ńņżģą ńåņźąāąé į˙ńļåź³ (firewall)!"
-
-#: ../../network/isdn.pm_.c:54
-#, fuzzy
-msgid "Old configuration (isdn4net)"
-msgstr "Ēķīéäēåķą ń³ńņżģą ńåņźąāąé į˙ńļåź³ (firewall)!"
-
-#: ../../network/isdn.pm_.c:170 ../../network/isdn.pm_.c:188
-#: ../../network/isdn.pm_.c:198 ../../network/isdn.pm_.c:205
-#: ../../network/isdn.pm_.c:215
-msgid "ISDN Configuration"
-msgstr "Ķąńņšīéźą ISDN"
-
-#: ../../network/isdn.pm_.c:170
-msgid ""
-"Select your provider.\n"
-" If it's not in the list, choose Unlisted"
-msgstr ""
-"Ąį˙šūöå āąųąćą ļšąāąéäąšą.\n"
-"źąėi ˙ćī ķ˙ģą ¢ ćżņūģ ńļińå, ąį˙šūöå ņūļ ``Iķųū''"
-
-#: ../../network/isdn.pm_.c:183
-msgid "Europe protocol"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:183
-#, fuzzy
-msgid "Europe protocol (EDSS1)"
-msgstr "Å¢šīļą (EDSS1)"
-
-#: ../../network/isdn.pm_.c:185
-#, fuzzy
-msgid "Protocol for the rest of the world"
-msgstr "Ļąäźėž÷żķķå"
-
-#: ../../network/isdn.pm_.c:185
-#, fuzzy
-msgid ""
-"Protocol for the rest of the world \n"
-" no D-Channel (leased lines)"
-msgstr ""
-"Ļąäźėž÷żķķå \n"
-" ķå ļšąē D-źąķąė (āūėó÷ąķū˙ źąķąėū)"
-
-#: ../../network/isdn.pm_.c:189
-msgid "Which protocol do you want to use ?"
-msgstr "ßźi ļšąņąźīė āū ęąäąåöå āūźąšūńņī¢āąöü?"
-
-#: ../../network/isdn.pm_.c:199
-msgid "What kind of card do you have?"
-msgstr "ßźi ņūļ źąšņū āū ģąåöå?"
-
-#: ../../network/isdn.pm_.c:200
-msgid "I don't know"
-msgstr "Ķå ā˙äīģą"
-
-#: ../../network/isdn.pm_.c:200
-msgid "ISA / PCMCIA"
-msgstr "ISA / PCMCIA"
-
-#: ../../network/isdn.pm_.c:200
-msgid "PCI"
-msgstr "PCI"
-
-#: ../../network/isdn.pm_.c:206
-msgid ""
-"\n"
-"If you have an ISA card, the values on the next screen should be right.\n"
-"\n"
-"If you have a PCMCIA card, you have to know the irq and io of your card.\n"
-msgstr ""
-"\n"
-"Źąėi āū ģąåöå ISA źąšņó, āåėi÷ūķi ķą ķąńņóļķūģ żźšąķå ļąāiķķū įūöü "
-"ńąļšą¢äķūģi.\n"
-"\n"
-"Źąėi āū ģąåöå PCMCIA źąšņó, āū ļąāiķķū āåäąöü irq i io āąųąé źąšņū.\n"
-
-#: ../../network/isdn.pm_.c:210
-msgid "Abort"
-msgstr "Ąäģ˙ķiöü"
-
-#: ../../network/isdn.pm_.c:210
-msgid "Continue"
-msgstr "Ļšąö˙ćķóöü"
-
-#: ../../network/isdn.pm_.c:216
-msgid "Which is your ISDN card ?"
-msgstr "ßźą˙ ¢ āąń ISDN źąšņą?"
-
-#: ../../network/isdn.pm_.c:235
-msgid ""
-"I have detected an ISDN PCI Card, but I don't know the type. Please select "
-"one PCI card on the next screen."
-msgstr ""
-"Āūēķą÷ąķą ISDN PCI źąšņą, ąėå ķåā˙äīģū ˙å ņūļ. Źąėi ėąńźą, ļąēķą÷öå PCI "
-"źąšņó ķą ķąńņóļķūģ żźšąķå."
-
-#: ../../network/isdn.pm_.c:244
-msgid "No ISDN PCI card found. Please select one on the next screen."
-msgstr "Źąšņą ISDN PCI ķå ēķīéäēåķą. Źąėi ėąńźą, ļąēķą÷öå ķą ķąńņóļķūģ żźšąķå."
-
-#: ../../network/modem.pm_.c:39
-msgid "Please choose which serial port your modem is connected to."
-msgstr "Äą ˙źīćą ļąńė˙äī¢ķąćą ļīšņó äąėó÷ąķū ģąäżģ?"
-
-#: ../../network/modem.pm_.c:44
-msgid "Dialup options"
-msgstr "Ļąšąģåņšū źąģóņąāąķąćą ēėó÷żķķ˙ (Dialup)"
-
-#: ../../network/modem.pm_.c:45 ../../standalone/draknet_.c:622
-msgid "Connection name"
-msgstr "Iģ˙ ēėó÷żķķ˙"
-
-#: ../../network/modem.pm_.c:46 ../../standalone/draknet_.c:623
-msgid "Phone number"
-msgstr "Ķóģąš ņżėåōīķó"
-
-#: ../../network/modem.pm_.c:47 ../../standalone/draknet_.c:624
-msgid "Login ID"
-msgstr "Iģ˙ (login ID)"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "CHAP"
-msgstr "CHAP"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "PAP"
-msgstr "PAP"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Script-based"
-msgstr "ķą ąńķīāå ńźšūļņó"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Terminal-based"
-msgstr "ķą ąńķīāå ņżšģiķąėó"
-
-#: ../../network/modem.pm_.c:50 ../../standalone/draknet_.c:627
-msgid "Domain name"
-msgstr "Iģ˙ äąģåķó"
-
-#: ../../network/modem.pm_.c:51 ../../standalone/draknet_.c:628
-#, fuzzy
-msgid "First DNS Server (optional)"
-msgstr "Ļåšųū ńåšāåš DNS"
-
-#: ../../network/modem.pm_.c:52 ../../standalone/draknet_.c:629
-#, fuzzy
-msgid "Second DNS Server (optional)"
-msgstr "Äšóći ńåšāåš DNS:"
-
-#: ../../network/netconnect.pm_.c:34
-msgid ""
-"\n"
-"You can disconnect or reconfigure your connection."
-msgstr ""
-"\n"
-"Āū ģīęąöå ąäźėž÷ūööą ö³ ļåšąźąķō³ćóšąāąöü āąųąå ēėó÷żķķå."
-
-#: ../../network/netconnect.pm_.c:34 ../../network/netconnect.pm_.c:37
-#, fuzzy
-msgid ""
-"\n"
-"You can reconfigure your connection."
-msgstr ""
-"\n"
-"Āū ģīęąöå ąäźėž÷ūööą ö³ ļåšąźąķō³ćóšąāąöü āąųąå ēėó÷żķķå."
-
-#: ../../network/netconnect.pm_.c:34
-#, fuzzy
-msgid "You are currently connected to internet."
-msgstr "ßź āū ļėąķóåöå äąėó÷ūööą äą Iķņżšķżņó?"
-
-#: ../../network/netconnect.pm_.c:37
-#, fuzzy
-msgid ""
-"\n"
-"You can connect to Internet or reconfigure your connection."
-msgstr ""
-"\n"
-"Āū ģīęąöå ąäźėž÷ūööą ö³ ļåšąźąķō³ćóšąāąöü āąųąå ēėó÷żķķå."
-
-#: ../../network/netconnect.pm_.c:37
-#, fuzzy
-msgid "You are not currently connected to Internet."
-msgstr "ßź āū ļėąķóåöå äąėó÷ūööą äą Iķņżšķżņó?"
-
-#: ../../network/netconnect.pm_.c:41
-#, fuzzy
-msgid "Connect"
-msgstr "Iģ˙ ēėó÷żķķ˙"
-
-#: ../../network/netconnect.pm_.c:43
-#, fuzzy
-msgid "Disconnect"
-msgstr "Ķąńņšīéźą ISDN"
-
-#: ../../network/netconnect.pm_.c:45
-#, fuzzy
-msgid "Configure the connection"
-msgstr "Ķąńņšīéźą ńåņźi"
-
-#: ../../network/netconnect.pm_.c:50
-msgid "Internet connection & configuration"
-msgstr "Iķņżšķżņ ēėó÷żķķå i źąķōićóšąöū˙"
-
-#: ../../network/netconnect.pm_.c:100
-#, fuzzy, c-format
-msgid "We are now going to configure the %s connection."
-msgstr ""
-"\n"
-"Āū ģīęąöå ąäźėž÷ūööą ö³ ļåšąźąķō³ćóšąāąöü āąųąå ēėó÷żķķå."
-
-#: ../../network/netconnect.pm_.c:109
-#, fuzzy, c-format
-msgid ""
-"\n"
-"\n"
-"\n"
-"We are now going to configure the %s connection.\n"
-"\n"
-"\n"
-"Press OK to continue."
-msgstr ""
-"\n"
-"Āū ģīęąöå ąäźėž÷ūööą ö³ ļåšąźąķō³ćóšąāąöü āąųąå ēėó÷żķķå."
-
-#: ../../network/netconnect.pm_.c:138 ../../network/netconnect.pm_.c:252
-#: ../../network/netconnect.pm_.c:271 ../../network/tools.pm_.c:57
-msgid "Network Configuration"
-msgstr "Źąķōićóšąöū˙ ńåņźi"
-
-#: ../../network/netconnect.pm_.c:139
-msgid ""
-"Because you are doing a network installation, your network is already "
-"configured.\n"
-"Click on Ok to keep your configuration, or cancel to reconfigure your "
-"Internet & Network connection.\n"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:165
-msgid ""
-"Welcome to The Network Configuration Wizard\n"
-"\n"
-"We are about to configure your internet/network connection.\n"
-"If you don't want to use the auto detection, deselect the checkbox.\n"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:167
-#, fuzzy
-msgid "Choose the profile to configure"
-msgstr "Ąį˙šūöå ąńķī¢ķąćą źąšūńņąėüķiźą:"
-
-#: ../../network/netconnect.pm_.c:168
-msgid "Use auto detection"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:175
-msgid "Detecting devices..."
-msgstr "Āūēķą÷żķķå ļšūėąäą¢..."
-
-#: ../../network/netconnect.pm_.c:186 ../../network/netconnect.pm_.c:195
-msgid "Normal modem connection"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:186 ../../network/netconnect.pm_.c:195
-#, fuzzy, c-format
-msgid "detected on port %s"
-msgstr "Äóįė˙āąķķå ļóķźņó ģąķöišąāąķķ˙ %s"
-
-#: ../../network/netconnect.pm_.c:187 ../../network/netconnect.pm_.c:196
-#, fuzzy
-msgid "ISDN connection"
-msgstr "Ķąńņšīéźą ISDN"
-
-#: ../../network/netconnect.pm_.c:187 ../../network/netconnect.pm_.c:196
-#, c-format
-msgid "detected %s"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:188 ../../network/netconnect.pm_.c:197
-#, fuzzy
-msgid "ADSL connection"
-msgstr "Šąēģåšźąāąķķå"
-
-#: ../../network/netconnect.pm_.c:188 ../../network/netconnect.pm_.c:197
-#, fuzzy, c-format
-msgid "detected on interface %s"
-msgstr "Ńåņźąāū iķņżšōåéń"
-
-#: ../../network/netconnect.pm_.c:189 ../../network/netconnect.pm_.c:198
-#, fuzzy
-msgid "Cable connection"
-msgstr "Ēėó÷żķķå ļšūķņżšó"
-
-#: ../../network/netconnect.pm_.c:189 ../../network/netconnect.pm_.c:198
-#, fuzzy
-msgid "cable connection detected"
-msgstr "Ēėó÷żķķå ļšūķņżšó"
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-#, fuzzy
-msgid "LAN connection"
-msgstr "Šąēģåšźąāąķķå"
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-msgid "ethernet card(s) detected"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:202
-#, fuzzy
-msgid "Choose the connection you want to configure"
-msgstr "Ąį˙šūöå iķńņšóģåķņ, ˙źi ęąäąåöå ńźąšūńņąöü"
-
-#: ../../network/netconnect.pm_.c:226
-msgid ""
-"You have configured multiple ways to connect to the Internet.\n"
-"Choose the one you want to use.\n"
-"\n"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:227
-#, fuzzy
-msgid "Internet connection"
-msgstr "Ńóģåńķąå Iķņżšķżņ-ēėó÷żķķå"
-
-#: ../../network/netconnect.pm_.c:233
-msgid "Do you want to start the connection at boot?"
-msgstr "Āū ęąäąåöå, źąį ćżņąå ēėó÷żķķå ńņąšņąāąėą ļšū ēąćšóēöū?"
-
-#: ../../network/netconnect.pm_.c:247
-#, fuzzy
-msgid "Network configuration"
-msgstr "Źąķōićóšąöū˙ ńåņźi"
-
-#: ../../network/netconnect.pm_.c:248
-msgid "The network needs to be restarted"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:252
-#, fuzzy, c-format
-msgid ""
-"A problem occured while restarting the network: \n"
-"\n"
-"%s"
-msgstr "Öi ęąäąåöå ļšąņżńöišąāąöü ķąńņšīéźi?"
-
-#: ../../network/netconnect.pm_.c:261
-msgid ""
-"Congratulations, the network and Internet configuration is finished.\n"
-"The configuration will now be applied to your system.\n"
-"\n"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:265
-msgid ""
-"After this is done, we recommend that you restart your X environment to "
-"avoid any hostname-related problems."
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:266
-msgid ""
-"Problems occured during configuration.\n"
-"Test your connection via net_monitor or mcc. If your connection doesn't "
-"work, you might want to relaunch the configuration"
-msgstr ""
-
-#: ../../network/network.pm_.c:292
-msgid ""
-"WARNING: This device has been previously configured to connect to the "
-"Internet.\n"
-"Simply accept to keep this device configured.\n"
-"Modifying the fields below will override this configuration."
-msgstr ""
-
-#: ../../network/network.pm_.c:297
-msgid ""
-"Please enter the IP configuration for this machine.\n"
-"Each item should be entered as an IP address in dotted-decimal\n"
-"notation (for example, 1.2.3.4)."
-msgstr ""
-"Źąėi ėąńźą, óā˙äēiöå IP źąķōićóšąöūž äė˙ āąųąé ģąųūķū.\n"
-"Źīęķū ļóķźņ ļąāiķåķ įūöü ēąļī¢ķåķū ˙ź IP ąäšąń ¢ äēåń˙ņźīāą-źšīļźąāąé \n"
-"ķąņąöūi (ķąļšūźėąä, 1.2.3.4)."
-
-#: ../../network/network.pm_.c:306 ../../network/network.pm_.c:307
-#, c-format
-msgid "Configuring network device %s"
-msgstr "Ķąńņšīéźą ńåņźąāąé ļšūėąäū %s"
-
-#: ../../network/network.pm_.c:307
-#, fuzzy, c-format
-msgid " (driver %s)"
-msgstr "Ńåšāåš XFree86: %s\n"
-
-#: ../../network/network.pm_.c:309 ../../standalone/draknet_.c:232
-#: ../../standalone/draknet_.c:468
-msgid "IP address"
-msgstr "IP ąäšąń"
-
-#: ../../network/network.pm_.c:310 ../../standalone/draknet_.c:469
-msgid "Netmask"
-msgstr "Ģąńźą ńåņźi"
-
-#: ../../network/network.pm_.c:311
-msgid "(bootp/dhcp)"
-msgstr "(bootp/dhcp)"
-
-#: ../../network/network.pm_.c:311
-msgid "Automatic IP"
-msgstr "Ą¢ņąģąņū÷ķū IP"
-
-#: ../../network/network.pm_.c:332 ../../printerdrake.pm_.c:712
-msgid "IP address should be in format 1.2.3.4"
-msgstr "IP ąäšąń ļąāiķåķ įūöü ó ōąšģąöå 1.2.3.4"
-
-#: ../../network/network.pm_.c:361
-msgid ""
-"Please enter your host name.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''.\n"
-"You may also enter the IP address of the gateway if you have one"
-msgstr ""
-"Óā˙äēiöå iģ˙ ńāąøé ģąųūķū (host).\n"
-"Iģ˙ āąųąé ģąųūķū ļąāiķķą įūöü ēąäąäēåķą ļī¢ķąńöž,\n"
-"ķąļšūźėąä ``mybox.mylab.myco.com''.\n"
-"Āū ģīęąöå ņąźńąģą ¢āåńöi IP ąäšąń ųėžēó, źąėi øķ ó āąń øńöü."
-
-#: ../../network/network.pm_.c:366
-msgid "DNS server"
-msgstr "DNS ńåšāåš"
-
-#: ../../network/network.pm_.c:367
-#, c-format
-msgid "Gateway (e.g. %s)"
-msgstr ""
-
-#: ../../network/network.pm_.c:369
-msgid "Gateway device"
-msgstr "Ļšūėąäą-ųėžē"
-
-#: ../../network/network.pm_.c:381
-msgid "Proxies configuration"
-msgstr "Ķąńņšīéźą proxy źżųóž÷ūõ ńåšāåšą¢"
-
-#: ../../network/network.pm_.c:382
-msgid "HTTP proxy"
-msgstr "HTTP proxy"
-
-#: ../../network/network.pm_.c:383
-msgid "FTP proxy"
-msgstr "FTP proxy"
-
-#: ../../network/network.pm_.c:384
-msgid "Track network card id (usefull for laptops)"
-msgstr ""
-
-#: ../../network/network.pm_.c:387
-msgid "Proxy should be http://..."
-msgstr "Proxy ļąāiķåķ įūöü http://..."
-
-#: ../../network/network.pm_.c:388
-msgid "Proxy should be ftp://..."
-msgstr "Proxy ļąāiķåķ įūöü ftp://..."
-
-#: ../../network/tools.pm_.c:39
-msgid "Internet configuration"
-msgstr "Ķąńņšīéźą ēėó÷żķķ˙ ē Iķņżšķżņąģ"
-
-#: ../../network/tools.pm_.c:40
-msgid "Do you want to try to connect to the Internet now?"
-msgstr "Öi ęąäąåöå ēąšąē ļąńļšąįąāąöü äąėó÷ūööą äą Iķņżšķżņó?"
-
-#: ../../network/tools.pm_.c:44 ../../standalone/draknet_.c:197
-#, fuzzy
-msgid "Testing your connection..."
-msgstr "ßźi ņūļ āąųąćą ISDN ēėó÷żķķ˙?"
-
-#: ../../network/tools.pm_.c:50
-#, fuzzy
-msgid "The system is now connected to Internet."
-msgstr "ßź āū ļėąķóåöå äąėó÷ūööą äą Iķņżšķżņó?"
-
-#: ../../network/tools.pm_.c:51
-msgid "For Security reason, it will be disconnected now."
-msgstr ""
-
-#: ../../network/tools.pm_.c:52
-#, fuzzy
-msgid ""
-"The system doesn't seem to be connected to internet.\n"
-"Try to reconfigure your connection."
-msgstr ""
-"\n"
-"Āū ģīęąöå ąäźėž÷ūööą ö³ ļåšąźąķō³ćóšąāąöü āąųąå ēėó÷żķķå."
-
-#: ../../network/tools.pm_.c:76
-msgid "Connection Configuration"
-msgstr "Ķąńņšīéźą äąėó÷żķķ˙ äą Iķņżšķżņó"
-
-#: ../../network/tools.pm_.c:77
-msgid "Please fill or check the field below"
-msgstr "Źąėi ėąńźą, ēąļī¢ķiöå öi ļąēķą÷öå ļīėå ķiężé"
-
-#: ../../network/tools.pm_.c:79 ../../standalone/draknet_.c:608
-msgid "Card IRQ"
-msgstr "IRQ źąšņū"
-
-#: ../../network/tools.pm_.c:80 ../../standalone/draknet_.c:609
-msgid "Card mem (DMA)"
-msgstr "Ąäšąńū ļąģ˙ö³ źąšņū (DMA)"
-
-#: ../../network/tools.pm_.c:81 ../../standalone/draknet_.c:610
-msgid "Card IO"
-msgstr "IO źąšņū"
-
-#: ../../network/tools.pm_.c:82 ../../standalone/draknet_.c:611
-msgid "Card IO_0"
-msgstr "IO_0 źąšņū"
-
-#: ../../network/tools.pm_.c:83 ../../standalone/draknet_.c:612
-msgid "Card IO_1"
-msgstr "IO_1 źąšņū"
-
-#: ../../network/tools.pm_.c:84 ../../standalone/draknet_.c:613
-msgid "Your personal phone number"
-msgstr "Āąų ąńąįińņū ņżėåōīķķū ķóģąš"
-
-#: ../../network/tools.pm_.c:85 ../../standalone/draknet_.c:614
-msgid "Provider name (ex provider.net)"
-msgstr "Iģ˙ ļšąāąéäąšó, ķąļšūźėąä ļšąāąéäąš.net"
-
-#: ../../network/tools.pm_.c:86 ../../standalone/draknet_.c:615
-msgid "Provider phone number"
-msgstr "Ķóģąš ņżėåōīķó ļšąāąéäąšą"
-
-#: ../../network/tools.pm_.c:87 ../../standalone/draknet_.c:616
-#, fuzzy
-msgid "Provider dns 1 (optional)"
-msgstr "DNS 1 ļšąāąéäąšó"
-
-#: ../../network/tools.pm_.c:88 ../../standalone/draknet_.c:617
-#, fuzzy
-msgid "Provider dns 2 (optional)"
-msgstr "DNS 2 ļšąāąéäąšó"
-
-#: ../../network/tools.pm_.c:89
-#, fuzzy
-msgid "Choose your country"
-msgstr "Āūįąš źėąāi˙ņóšū"
-
-#: ../../network/tools.pm_.c:90 ../../standalone/draknet_.c:620
-msgid "Dialing mode"
-msgstr "Šżęūģ ēėó÷żķķ˙"
-
-#: ../../network/tools.pm_.c:91 ../../standalone/draknet_.c:632
-#, fuzzy
-msgid "Connection speed"
-msgstr "Iģ˙ ēėó÷żķķ˙"
-
-#: ../../network/tools.pm_.c:92 ../../standalone/draknet_.c:633
-#, fuzzy
-msgid "Connection timeout (in sec)"
-msgstr "Iģ˙ ēėó÷żķķ˙"
-
-#: ../../network/tools.pm_.c:93 ../../standalone/draknet_.c:618
-msgid "Account Login (user name)"
-msgstr "Iģ˙ äė˙ ¢āąõīäó (iģ˙ źąšūńņąėüķiźó)"
-
-#: ../../network/tools.pm_.c:94 ../../standalone/draknet_.c:619
-msgid "Account Password"
-msgstr "Ļąšīėü äė˙ ¢āąõīäó"
-
-#: ../../partition_table.pm_.c:600
-msgid "mount failed: "
-msgstr "ļąģūėźą ģąķöišąāąķķ˙: "
-
-#: ../../partition_table.pm_.c:664
-msgid "Extended partition not supported on this platform"
-msgstr "Ļąųūšąķū šąēäēåė ķå ļąäņšūģėiāąåööą ćżņąé ļėąņōīšģąé"
-
-#: ../../partition_table.pm_.c:682
-msgid ""
-"You have a hole in your partition table but I can't use it.\n"
-"The only solution is to move your primary partitions to have the hole next "
-"to the extended partitions"
-msgstr ""
-"Āū ģąåöå äēišźó ¢ ņąįėiöū šąäēåėą¢, ąėå ˙ ķå ģąž ģąć÷ūģąńöi ˙å ńźąšūńņąöü.\n"
-"Ąäēiķū āūõąä ó ņūģ, źąį ļåšąģ˙ńöiöü ļåšųąńķū˙ šąēäēåėū ņąź, źąį äēišźą iųėą\n"
-"ąäšąēó ēą ļąųūšąķūģ (extended) šąēäēåėąģ"
-
-#: ../../partition_table.pm_.c:770
-#, c-format
-msgid "Restoring from file %s failed: %s"
-msgstr "Ąäķą¢ėåķķå ē ōąéėą %s ķå ąņšūģąėąń˙: %s"
-
-#: ../../partition_table.pm_.c:772
-msgid "Bad backup file"
-msgstr "Äšżķķū ōąéė šżēåšāīāąé źīļii"
-
-#: ../../partition_table.pm_.c:794
-#, c-format
-msgid "Error writing to file %s"
-msgstr "Ļąģūėźą ēąļińó ¢ ōąéė %s"
-
-#: ../../partition_table_raw.pm_.c:186
-msgid ""
-"Something bad is happening on your drive. \n"
-"A test to check the integrity of data has failed. \n"
-"It means writing anything on the disk will end up with random trash"
-msgstr ""
-
-#: ../../pkgs.pm_.c:24
-msgid "must have"
-msgstr "ļąāiķķū ģåöü"
-
-#: ../../pkgs.pm_.c:25
-msgid "important"
-msgstr "āąęķą"
-
-#: ../../pkgs.pm_.c:26
-msgid "very nice"
-msgstr "āåėüģi äīįšą"
-
-#: ../../pkgs.pm_.c:27
-msgid "nice"
-msgstr "äīįšą"
-
-#: ../../pkgs.pm_.c:28
-msgid "maybe"
-msgstr "ģīęą įūöü"
-
-#: ../../printer.pm_.c:23
-msgid "CUPS - Common Unix Printing System"
-msgstr ""
-
-#: ../../printer.pm_.c:24
-msgid "LPRng - LPR New Generation"
-msgstr ""
-
-#: ../../printer.pm_.c:25
-msgid "LPD - Line Printer Daemon"
-msgstr ""
-
-#: ../../printer.pm_.c:26
-msgid "PDQ - Print, Don't Queue"
-msgstr ""
-
-#: ../../printer.pm_.c:32 ../../printer.pm_.c:871
-msgid "CUPS"
-msgstr ""
-
-#: ../../printer.pm_.c:33
-msgid "LPRng"
-msgstr ""
-
-#: ../../printer.pm_.c:34
-msgid "LPD"
-msgstr ""
-
-#: ../../printer.pm_.c:35
-msgid "PDQ"
-msgstr ""
-
-#: ../../printer.pm_.c:47
-msgid "Local printer"
-msgstr "Ėąźąėüķū ļšūķņżš"
-
-#: ../../printer.pm_.c:48
-msgid "Remote printer"
-msgstr "Ąääąėåķū ļšūķņżš"
-
-#: ../../printer.pm_.c:49
-#, fuzzy
-msgid "Printer on remote CUPS server"
-msgstr "Ąääąėåķū ńåšāåš CUPS"
-
-#: ../../printer.pm_.c:50 ../../printerdrake.pm_.c:734
-#, fuzzy
-msgid "Printer on remote lpd server"
-msgstr "Ąääąėåķū ńåšāåš lpd"
-
-#: ../../printer.pm_.c:51
-msgid "Network printer (TCP/Socket)"
-msgstr "Ńåņźąāū ļšūķņżš (TCP/Socket)"
-
-#: ../../printer.pm_.c:52
-#, fuzzy
-msgid "Printer on SMB/Windows 95/98/NT server"
-msgstr "SMB/Windows 95/98/NT"
-
-#: ../../printer.pm_.c:53
-#, fuzzy
-msgid "Printer on NetWare server"
-msgstr "Ńåšāåš äšóźó"
-
-#: ../../printer.pm_.c:54 ../../printerdrake.pm_.c:738
-#, fuzzy
-msgid "Enter a printer device URI"
-msgstr "URI ļšūķņżšó"
-
-#: ../../printer.pm_.c:55
-msgid "Pipe job into a command"
-msgstr ""
-
-#: ../../printer.pm_.c:504 ../../printer.pm_.c:695 ../../printer.pm_.c:1017
-#: ../../printerdrake.pm_.c:1665 ../../printerdrake.pm_.c:2730
-msgid "Unknown model"
-msgstr ""
-
-#: ../../printer.pm_.c:532
-#, fuzzy
-msgid "Local Printers"
-msgstr "Ėąźąėüķū ļšūķņżš"
-
-#: ../../printer.pm_.c:534 ../../printer.pm_.c:872
-#, fuzzy
-msgid "Remote Printers"
-msgstr "Ąääąėåķū ļšūķņżš"
-
-#: ../../printer.pm_.c:541 ../../printerdrake.pm_.c:248
-#, c-format
-msgid " on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printer.pm_.c:544 ../../printerdrake.pm_.c:250
-#, c-format
-msgid ", USB printer \\/*%s"
-msgstr ""
-
-#: ../../printer.pm_.c:549
-#, c-format
-msgid ", multi-function device on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printer.pm_.c:552
-msgid ", multi-function device on USB"
-msgstr ""
-
-#: ../../printer.pm_.c:554
-msgid ", multi-function device on HP JetDirect"
-msgstr ""
-
-#: ../../printer.pm_.c:556
-msgid ", multi-function device"
-msgstr ""
-
-#: ../../printer.pm_.c:559
-#, fuzzy, c-format
-msgid ", printing to %s"
-msgstr "Ļąģūėźą ēąļińó ¢ ōąéė %s"
-
-#: ../../printer.pm_.c:561
-#, c-format
-msgid "on LPD server \"%s\", printer \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:563
-#, c-format
-msgid ", TCP/IP host \"%s\", port %s"
-msgstr ""
-
-#: ../../printer.pm_.c:567
-#, c-format
-msgid "on Windows server \"%s\", share \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:571
-#, c-format
-msgid "on Novell server \"%s\", printer \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:573
-#, c-format
-msgid ", using command %s"
-msgstr ""
-
-#: ../../printer.pm_.c:692 ../../printerdrake.pm_.c:1136
-msgid "Raw printer (No driver)"
-msgstr ""
-
-#: ../../printer.pm_.c:841
-#, fuzzy, c-format
-msgid "(on %s)"
-msgstr "(ģīäóėü %s)"
-
-#: ../../printer.pm_.c:843
-msgid "(on this machine)"
-msgstr ""
-
-#: ../../printer.pm_.c:868
-#, fuzzy, c-format
-msgid "On CUPS server \"%s\""
-msgstr "IP ńåšāåšą SMB"
-
-#: ../../printer.pm_.c:874 ../../printerdrake.pm_.c:2391
-#: ../../printerdrake.pm_.c:2402 ../../printerdrake.pm_.c:2618
-#: ../../printerdrake.pm_.c:2670 ../../printerdrake.pm_.c:2697
-#: ../../printerdrake.pm_.c:2867 ../../printerdrake.pm_.c:2869
-msgid " (Default)"
-msgstr " (Ļą äąģą¢ėåķķž)"
-
-#: ../../printerdrake.pm_.c:22
-msgid "Select Printer Connection"
-msgstr "Āūįąš ņūļó ēėó÷żķķ˙ ļšūķņżšó"
-
-#: ../../printerdrake.pm_.c:23
-msgid "How is the printer connected?"
-msgstr "ßź ļšūķņąš äąėó÷ąķū?"
-
-#: ../../printerdrake.pm_.c:25
-#, fuzzy
-msgid ""
-"\n"
-"Printers on remote CUPS servers you do not have to configure here; these "
-"printers will be automatically detected."
-msgstr ""
-"Ąääąėåķū CUPS ńåšāåš ķå ļąņšąįóå ąä Āąń ķąńņšīéź³ ļšūķņżšó\n"
-"ķą ćżņąé ģąųūķå, øķ įóäēå ēķīéäēåķū ą¢ņąģąņū÷ķą.\n"
-"Źąė³ Āū ķå ¢ļż¢ķåķū, ąį˙šūöå \"Ąääąėåķū ńåšāåš CUPS\"."
-
-#: ../../printerdrake.pm_.c:69 ../../printerdrake.pm_.c:2454
-#, fuzzy
-msgid "CUPS configuration"
-msgstr "Ķąńņšīéźą"
-
-#: ../../printerdrake.pm_.c:70 ../../printerdrake.pm_.c:2455
-#, fuzzy
-msgid "Specify CUPS server"
-msgstr "Ąääąėåķū ńåšāåš CUPS"
-
-#: ../../printerdrake.pm_.c:71
-msgid ""
-"To get access to printers on remote CUPS servers in your local network you "
-"do not have to configure anything; the CUPS servers inform your machine "
-"automatically about their printers. All printers currently known to your "
-"machine are listed in the \"Remote printers\" section in the main window of "
-"Printerdrake. When your CUPS server is not in your local network, you have "
-"to enter the CUPS server IP address and optionally the port number to get "
-"the printer information from the server, otherwise leave these fields blank."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:72
-msgid ""
-"\n"
-"Normally, CUPS is automatically configured according to your network "
-"environment, so that you can access the printers on the CUPS servers in your "
-"local network. If this does not work correctly, turn off \"Automatic CUPS "
-"configuration\" and edit your file /etc/cups/cupsd.conf manually. Do not "
-"forget to restart CUPS afterwards (command: \"service cups restart\")."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:76
-#, fuzzy
-msgid "The IP address should look like 192.168.1.20"
-msgstr "IP ąäšąń ļąāiķåķ įūöü ó ōąšģąöå 1.2.3.4"
-
-#: ../../printerdrake.pm_.c:80 ../../printerdrake.pm_.c:862
-msgid "The port number should be an integer!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:87
-#, fuzzy
-msgid "CUPS server IP"
-msgstr "IP ńåšāåšą SMB"
-
-#: ../../printerdrake.pm_.c:88 ../../printerdrake.pm_.c:855
-msgid "Port"
-msgstr "Ļīšņ"
-
-#: ../../printerdrake.pm_.c:90
-#, fuzzy
-msgid "Automatic CUPS configuration"
-msgstr "Ķąńņšīéźą ģąäżģó"
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-#, fuzzy
-msgid "Detecting devices ..."
-msgstr "Āūēķą÷żķķå ļšūėąäą¢..."
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-msgid "Test ports"
-msgstr "Ļšąāåšźą ļąšņī¢"
-
-#: ../../printerdrake.pm_.c:167 ../../printerdrake.pm_.c:2437
-#: ../../printerdrake.pm_.c:2556
-#, fuzzy
-msgid "Add a new printer"
-msgstr "Iģ˙ äšóźąšźi"
-
-#: ../../printerdrake.pm_.c:168
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard allows you to install local or remote printers to be used from "
-"this machine and also from other machines in the network.\n"
-"\n"
-"It asks you for all necessary information to set up the printer and gives "
-"you access to all available printer drivers, driver options, and printer "
-"connection types."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:176 ../../printerdrake.pm_.c:203
-#: ../../printerdrake.pm_.c:378 ../../printerdrake.pm_.c:393
-#: ../../printerdrake.pm_.c:403 ../../printerdrake.pm_.c:466
-#, fuzzy
-msgid "Local Printer"
-msgstr "Ėąźąėüķū ļšūķņżš"
-
-#: ../../printerdrake.pm_.c:177
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard will help you to install your printer(s) connected to this "
-"computer.\n"
-"\n"
-"Please plug in your printer(s) on this computer and turn it/them on. Click "
-"on \"Next\" when you are ready, and on \"Cancel\" when you do not want to "
-"set up your printer(s) now.\n"
-"\n"
-"Note that some computers can crash during the printer auto-detection, turn "
-"off \"Auto-detect printers\" to do a printer installation without auto-"
-"detection. Use the \"Expert Mode\" of printerdrake when you want to set up "
-"printing on a remote printer if printerdrake does not list it automatically."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:186
-#, fuzzy
-msgid "Auto-detect printers"
-msgstr "Ąääąėåķū ļšūķņżš"
-
-#: ../../printerdrake.pm_.c:204
-msgid ""
-"\n"
-"Congratulations, your printer is now installed and configured!\n"
-"\n"
-"You can print using the \"Print\" command of your application (usually in "
-"the \"File\" menu).\n"
-"\n"
-"If you want to add, remove, or rename a printer, or if you want to change "
-"the default option settings (paper input tray, printout quality, ...), "
-"select \"Printer\" in the \"Hardware\" section of the Mandrake Control "
-"Center."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:223
-msgid "Auto-Detection of Printers"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:224
-msgid ""
-"Printerdrake is able to auto-detect your locally connected parallel and USB "
-"printers for you, but note that on some systems the auto-detection CAN "
-"FREEZE YOUR SYSTEM AND THIS CAN LEAD TO CORRUPTED FILE SYSTEMS! So do it ON "
-"YOUR OWN RISK!\n"
-"\n"
-"Do you really want to get your printers auto-detected?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:227 ../../printerdrake.pm_.c:229
-#: ../../printerdrake.pm_.c:230
-#, fuzzy
-msgid "Do auto-detection"
-msgstr "Ąääąėåķū ļšūķņżš"
-
-#: ../../printerdrake.pm_.c:228
-#, fuzzy
-msgid "Set up printer manually"
-msgstr "Ąääąėåķū ļšūķņżš"
-
-#: ../../printerdrake.pm_.c:256
-#, fuzzy, c-format
-msgid "Detected %s"
-msgstr "Äóįė˙āąķķå ļóķźņó ģąķöišąāąķķ˙ %s"
-
-#: ../../printerdrake.pm_.c:260 ../../printerdrake.pm_.c:287
-#: ../../printerdrake.pm_.c:306
-#, c-format
-msgid "Printer on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:262 ../../printerdrake.pm_.c:289
-#: ../../printerdrake.pm_.c:311
-#, c-format
-msgid "USB printer \\/*%s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:379
-msgid ""
-"No local printer found! To manually install a printer enter a device name/"
-"file name in the input line (Parallel Ports: /dev/lp0, /dev/lp1, ..., "
-"equivalent to LPT1:, LPT2:, ..., 1st USB printer: /dev/usb/lp0, 2nd USB "
-"printer: /dev/usb/lp1, ...)."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:383
-#, fuzzy
-msgid "You must enter a device or file name!"
-msgstr "URI ļšūķņżšó"
-
-#: ../../printerdrake.pm_.c:394
-#, fuzzy
-msgid ""
-"No local printer found!\n"
-"\n"
-msgstr "Ėąźąėüķū ļšūķņżš"
-
-#: ../../printerdrake.pm_.c:395
-msgid ""
-"Network printers can only be installed after the installation. Choose "
-"\"Hardware\" and then \"Printer\" in the Mandrake Control Center."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:396
-msgid ""
-"To install network printers, click \"Cancel\", switch to the \"Expert Mode"
-"\", and click \"Add a new printer\" again."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:407
-msgid ""
-"The following printer was auto-detected, if it is not the one you want to "
-"configure, enter a device name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:408
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up or enter a device name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:410
-msgid ""
-"The following printer was auto-detected. The configuration of the printer "
-"will work fully automatically. If your printer was not correctly detected or "
-"if you prefer a customized printer configuration, turn on \"Manual "
-"configuration\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:411
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up. The configuration of the printer will work fully "
-"automatically. If your printer was not correctly detected or if you prefer a "
-"customized printer configuration, turn on \"Manual configuration\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:413
-msgid ""
-"Please choose the port where your printer is connected to or enter a device "
-"name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:414
-#, fuzzy
-msgid "Please choose the port where your printer is connected to."
-msgstr "Äą ˙źīćą ļąńė˙äī¢ķąćą ļīšņó äąėó÷ąķū ģąäżģ?"
-
-#: ../../printerdrake.pm_.c:416
-msgid ""
-" (Parallel Ports: /dev/lp0, /dev/lp1, ..., equivalent to LPT1:, LPT2:, ..., "
-"1st USB printer: /dev/usb/lp0, 2nd USB printer: /dev/usb/lp1, ...)."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:421
-#, fuzzy
-msgid "You must choose/enter a printer/device!"
-msgstr "URI ļšūķņżšó"
-
-#: ../../printerdrake.pm_.c:441
-#, fuzzy
-msgid "Manual configuration"
-msgstr "Ķąńņšīéźą"
-
-#: ../../printerdrake.pm_.c:467
-msgid ""
-"Is your printer a multi-function device from HP (OfficeJet, PSC, PhotoSmart, "
-"LaserJet 1100/1200/1220/3200/3300 with scanner)?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:482
-#, fuzzy
-msgid "Installing HPOJ package..."
-msgstr "Óńņąė˙āąķķå ļąźåņó %s"
-
-#: ../../printerdrake.pm_.c:487
-msgid "Checking device and configuring HPOJ ..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:505
-#, fuzzy
-msgid "Installing SANE package..."
-msgstr "Óńņąė˙āąķķå ļąźåņó %s"
-
-#: ../../printerdrake.pm_.c:517
-msgid "Scanning on your HP multi-function device"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:534
-#, fuzzy
-msgid "Making printer port available for CUPS ..."
-msgstr "×ūņąž įąēó äąäēåķūõ äšąéāåšī¢ CUPS"
-
-#: ../../printerdrake.pm_.c:544 ../../printerdrake.pm_.c:1018
-#: ../../printerdrake.pm_.c:1132
-#, fuzzy
-msgid "Reading printer database ..."
-msgstr "×ūņąž įąēó äąäēåķūõ äšąéāåšī¢ CUPS"
-
-#: ../../printerdrake.pm_.c:624
-msgid "Remote lpd Printer Options"
-msgstr "Īļöūi ąääąėåķąćą ļšūķņżšó lpd"
-
-#: ../../printerdrake.pm_.c:625
-#, fuzzy
-msgid ""
-"To use a remote lpd printer, you need to supply the hostname of the printer "
-"server and the printer name on that server."
-msgstr ""
-"Äė˙ ķąńņšīéźi ąääąėåķąé ÷ąšći äšóźó āąģ ļąņšżįķą\n"
-"ļąēķą÷ūöü iģ˙ ąääąėåķąćą ńåšāåšą i iģ˙ ÷ąšći äšóźó,\n"
-"ó ˙źóž ąääąėåķū ńåšāåš įóäēå ąäļšą¢ė˙öü ēąäąķķi."
-
-#: ../../printerdrake.pm_.c:626
-#, fuzzy
-msgid "Remote host name"
-msgstr "Ąääąėåķū āóēåė"
-
-#: ../../printerdrake.pm_.c:627
-#, fuzzy
-msgid "Remote printer name"
-msgstr "Ąääąėåķū ļšūķņżš"
-
-#: ../../printerdrake.pm_.c:630
-#, fuzzy
-msgid "Remote host name missing!"
-msgstr "Ąääąėåķū āóēåė"
-
-#: ../../printerdrake.pm_.c:634
-#, fuzzy
-msgid "Remote printer name missing!"
-msgstr "Ąääąėåķū āóēåė"
-
-#: ../../printerdrake.pm_.c:702
-msgid "SMB (Windows 9x/NT) Printer Options"
-msgstr "Īļöūi ļšūķņżšó SMB (Windows 9x/NT)"
-
-#: ../../printerdrake.pm_.c:703
-#, fuzzy
-msgid ""
-"To print to a SMB printer, you need to provide the SMB host name (Note! It "
-"may be different from its TCP/IP hostname!) and possibly the IP address of "
-"the print server, as well as the share name for the printer you wish to "
-"access and any applicable user name, password, and workgroup information."
-msgstr ""
-"Äė˙ äšóźó ķą ļšūķņżšū SMB ķåąįõīäķą ļąēķą÷ūöü iģ˙ õīńņó SMB (ķå ēą¢ńøäū "
-"ńóļąäąå ē iģåķåģ ó ńåņöū TCP/IP) i ąäšąń IP ńåšāåšą äšóźó, ą ņąźńąģą iģ˙ "
-"šżńóšńó, ˙źi ńļąėó÷ąķū ē āūįšąķūģ ļšūķņżšąģ, iģ˙ źąšūńņąėüķiźó, ļąšīėü i "
-"iķōąšģąöūž ąį ļšąöī¢ķąé ćšóļå."
-
-#: ../../printerdrake.pm_.c:704
-msgid "SMB server host"
-msgstr "Iģ˙ ńåšāåšó SMB"
-
-#: ../../printerdrake.pm_.c:705
-msgid "SMB server IP"
-msgstr "IP ńåšāåšą SMB"
-
-#: ../../printerdrake.pm_.c:706
-msgid "Share name"
-msgstr "Iģ˙ äė˙ šąēģåšźąāąķąćą šżńóšńó"
-
-#: ../../printerdrake.pm_.c:709
-msgid "Workgroup"
-msgstr "Ļšąöī¢ķą˙ ćšóļą"
-
-#: ../../printerdrake.pm_.c:716
-msgid "Either the server name or the server's IP must be given!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:720
-msgid "Samba share name missing!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:725
-msgid "SECURITY WARNING!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:726
-#, c-format
-msgid ""
-"You are about to set up printing to a Windows account with password. Due to "
-"a fault in the architecture of the Samba client software the password is put "
-"in clear text into the command line of the Samba client used to transmit the "
-"print job to the Windows server. So it is possible for every user on this "
-"machine to display the password on the screen by issuing commands as \"ps "
-"auxwww\".\n"
-"\n"
-"We recommend to make use of one of the following alternatives (in all cases "
-"you have to make sure that only machines from your local network have access "
-"to your Windows server, for example by means of a firewall):\n"
-"\n"
-"Use a password-less account on your Windows server, as the \"GUEST\" account "
-"or a special account dedicated for printing. Do not remove the password "
-"protection from a personal account or the administrator account.\n"
-"\n"
-"Set up your Windows server to make the printer available under the LPD "
-"protocol. Then set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:736
-#, c-format
-msgid ""
-"Set up your Windows server to make the printer available under the IPP "
-"protocol and set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:739
-msgid ""
-"Connect your printer to a Linux server and let your Windows machine(s) "
-"connect to it as a client.\n"
-"\n"
-"Do you really want to continue setting up this printer as you are doing now?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:801
-msgid "NetWare Printer Options"
-msgstr "Īļöūi ļšūķņżšó NetWare"
-
-#: ../../printerdrake.pm_.c:802
-#, fuzzy
-msgid ""
-"To print on a NetWare printer, you need to provide the NetWare print server "
-"name (Note! it may be different from its TCP/IP hostname!) as well as the "
-"print queue name for the printer you wish to access and any applicable user "
-"name and password."
-msgstr ""
-"Äė˙ äšóźó ķą ļšūķņżšū NetWare ķåąįõīäķą ļąēķą÷ūöü iģ˙ ńåšāåšó äšóźó NetWare "
-"(ķå ēą¢ńøäū ńóļąäąå ē iģåķåģ ó ńåņöū TCP/IP) i iģ˙ ÷ąšći äšóźó, ˙źą˙ "
-"ąäļąā˙äąå ąįšąķąģó ļšūķņżšó, ą ņąźńąģą iģ˙ źąšūńņąėüķiźó i ļąšīėü."
-
-#: ../../printerdrake.pm_.c:803
-msgid "Printer Server"
-msgstr "Ńåšāåš äšóźó"
-
-#: ../../printerdrake.pm_.c:804
-msgid "Print Queue Name"
-msgstr "Iģ˙ ÷ąšći äšóźó"
-
-#: ../../printerdrake.pm_.c:809
-msgid "NCP server name missing!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:813
-msgid "NCP queue name missing!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:852
-#, fuzzy
-msgid "TCP/Socket Printer Options"
-msgstr "Īļöūi ńīźåņó ļšūķņżšó"
-
-#: ../../printerdrake.pm_.c:853
-#, fuzzy
-msgid ""
-"To print to a TCP or socket printer, you need to provide the host name of "
-"the printer and optionally the port number. On HP JetDirect servers the port "
-"number is usually 9100, on other servers it can vary. See the manual of your "
-"hardware."
-msgstr ""
-"Źąį äšóźąāąöü ļšąē ńīźåņ äšóźąšźi, āąģ ķåąįõīäķą ēąį˙ńļå÷ūöü\n"
-"iģ˙ ļšūķņżšó i ģąć÷ūģą ˙ćī ķóģąš ļīšņó."
-
-#: ../../printerdrake.pm_.c:854
-#, fuzzy
-msgid "Printer host name"
-msgstr "Iģ˙ ļšūķņżšó"
-
-#: ../../printerdrake.pm_.c:858
-#, fuzzy
-msgid "Printer host name missing!"
-msgstr "Iģ˙ ļšūķņżšó"
-
-#: ../../printerdrake.pm_.c:887 ../../printerdrake.pm_.c:889
-msgid "Printer Device URI"
-msgstr "URI ļšūķņżšó"
-
-#: ../../printerdrake.pm_.c:888
-msgid ""
-"You can specify directly the URI to access the printer. The URI must fulfill "
-"either the CUPS or the Foomatic specifications. Note that not all URI types "
-"are supported by all the spoolers."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:903
-msgid "A valid URI must be entered!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1004
-msgid ""
-"Every printer needs a name (for example \"printer\"). The Description and "
-"Location fields do not need to be filled in. They are comments for the users."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1005
-msgid "Name of printer"
-msgstr "Iģ˙ äšóźąšźi"
-
-#: ../../printerdrake.pm_.c:1006
-msgid "Description"
-msgstr "Ąļińąķķå"
-
-#: ../../printerdrake.pm_.c:1007
-msgid "Location"
-msgstr "Šąēģåšźąāąķķå"
-
-#: ../../printerdrake.pm_.c:1021
-#, fuzzy
-msgid "Preparing printer database ..."
-msgstr "×ūņąž įąēó äąäēåķūõ äšąéāåšī¢ CUPS"
-
-#: ../../printerdrake.pm_.c:1112
-#, fuzzy
-msgid "Your printer model"
-msgstr "Ąääąėåķū ļšūķņżš"
-
-#: ../../printerdrake.pm_.c:1113
-#, c-format
-msgid ""
-"Printerdrake has compared the model name resulting from the printer auto-"
-"detection with the models listed in its printer database to find the best "
-"match. This choice can be wrong, especially when your printer is not listed "
-"at all in the database. So check whether the choice is correct and click "
-"\"The model is correct\" if so and if not, click \"Select model manually\" "
-"so that you can choose your printer model manually on the next screen.\n"
-"\n"
-"For your printer Printerdrake has found:\n"
-"\n"
-"%s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1118 ../../printerdrake.pm_.c:1121
-#, fuzzy
-msgid "The model is correct"
-msgstr "Ćżņą äąźėąäķą?"
-
-#: ../../printerdrake.pm_.c:1119 ../../printerdrake.pm_.c:1120
-#: ../../printerdrake.pm_.c:1123
-#, fuzzy
-msgid "Select model manually"
-msgstr "Ąääąėåķū ļšūķņżš"
-
-#: ../../printerdrake.pm_.c:1139
-#, fuzzy
-msgid "Printer model selection"
-msgstr "Ēėó÷żķķå ļšūķņżšó"
-
-#: ../../printerdrake.pm_.c:1140
-#, fuzzy
-msgid "Which printer model do you have?"
-msgstr "ßźi ņūļ äšóźąšźi āū ģąåöå?"
-
-#: ../../printerdrake.pm_.c:1141
-msgid ""
-"\n"
-"\n"
-"Please check whether Printerdrake did the auto-detection of your printer "
-"model correctly. Search the correct model in the list when the cursor is "
-"standing on a wrong model or on \"Raw printer\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1144
-msgid ""
-"If your printer is not listed, choose a compatible (see printer manual) or a "
-"similar one."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1220
-#, fuzzy
-msgid "OKI winprinter configuration"
-msgstr "Ķąńņšīéźą ēėó÷żķķ˙ ē Iķņżšķżņąģ"
-
-#: ../../printerdrake.pm_.c:1221
-msgid ""
-"You are configuring an OKI laser winprinter. These printers\n"
-"use a very special communication protocol and therefore they work only when "
-"connected to the first parallel port. When your printer is connected to "
-"another port or to a print server box please connect the printer to the "
-"first parallel port before you print a test page. Otherwise the printer will "
-"not work. Your connection type setting will be ignored by the driver."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1264 ../../printerdrake.pm_.c:1291
-#, fuzzy
-msgid "Lexmark inkjet configuration"
-msgstr "Ķąńņšīéźą ēėó÷żķķ˙ ē Iķņżšķżņąģ"
-
-#: ../../printerdrake.pm_.c:1265
-msgid ""
-"The inkjet printer drivers provided by Lexmark only support local printers, "
-"no printers on remote machines or print server boxes. Please connect your "
-"printer to a local port or configure it on the machine where it is connected "
-"to."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1292
-msgid ""
-"To be able to print with your Lexmark inkjet and this configuration, you "
-"need the inkjet printer drivers provided by Lexmark (http://www.lexmark."
-"com/). Go to the US site and click on the \"Drivers\" button. Then choose "
-"your model and afterwards \"Linux\" as operating system. The drivers come as "
-"RPM packages or shell scripts with interactive graphical installation. You "
-"do not need to do this configuration by the graphical frontends. Cancel "
-"directly after the license agreement. Then print printhead alignment pages "
-"with \"lexmarkmaintain\" and adjust the head alignment settings with this "
-"program."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1508
-msgid ""
-"Printer default settings\n"
-"\n"
-"You should make sure that the page size and the ink type/printing mode (if "
-"available) and also the hardware configuration of laser printers (memory, "
-"duplex unit, extra trays) are set correctly. Note that with a very high "
-"printout quality/resolution printing can get substantially slower."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1517
-#, c-format
-msgid "Option %s must be an integer number!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1521
-#, c-format
-msgid "Option %s must be a number!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1526
-#, c-format
-msgid "Option %s out of range!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1565
-#, fuzzy, c-format
-msgid ""
-"Do you want to set this printer (\"%s\")\n"
-"as the default printer?"
-msgstr "Ęąäąåöå ļšąņżńöišąāąöü äšóź?"
-
-#: ../../printerdrake.pm_.c:1582
-#, fuzzy
-msgid "Test pages"
-msgstr "Ļšąāåšźą ļąšņī¢"
-
-#: ../../printerdrake.pm_.c:1583
-msgid ""
-"Please select the test pages you want to print.\n"
-"Note: the photo test page can take a rather long time to get printed and on "
-"laser printers with too low memory it can even not come out. In most cases "
-"it is enough to print the standard test page."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1587
-#, fuzzy
-msgid "No test pages"
-msgstr "Ņąź, ķąäšóźąāąöü ąįåäēāå ńņąšīķźi ņżźńņó"
-
-#: ../../printerdrake.pm_.c:1588
-#, fuzzy
-msgid "Print"
-msgstr "Ļšūķņżš"
-
-#: ../../printerdrake.pm_.c:1590
-#, fuzzy
-msgid "Standard test page"
-msgstr "Ńņąķäąšņķū"
-
-#: ../../printerdrake.pm_.c:1593
-msgid "Alternative test page (Letter)"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1596
-#, fuzzy
-msgid "Alternative test page (A4)"
-msgstr "Äšóź ņżńņąāūõ ńņąšīķąź"
-
-#: ../../printerdrake.pm_.c:1598
-#, fuzzy
-msgid "Photo test page"
-msgstr "Äšóź ņżńņąāūõ ńņąšīķąź"
-
-#: ../../printerdrake.pm_.c:1602
-#, fuzzy
-msgid "Do not print any test page"
-msgstr "Äšóź ņżńņąāūõ ńņąšīķąź"
-
-#: ../../printerdrake.pm_.c:1610 ../../printerdrake.pm_.c:1747
-msgid "Printing test page(s)..."
-msgstr "Äšóź ņżńņąāūõ ńņąšīķąź"
-
-#: ../../printerdrake.pm_.c:1635
-#, fuzzy, c-format
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-"Printing status:\n"
-"%s\n"
-"\n"
-msgstr ""
-"Ņżńņąāū˙ ńņąšīķźi ąäļšą¢ėåķū äżģąķó äšóźó.\n"
-"Ļåšąä ņūģ, ˙ź ļšūķņżš ēąļšąöóå, ģīęą ļšąéńöi ļż¢ķū ÷ąń.\n"
-"Ńņąņóń äšóźó:\n"
-"%s\n"
-"\n"
-"Øķ ļšąöóå ķąšģąėüķą?"
-
-#: ../../printerdrake.pm_.c:1639
-#, fuzzy
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-msgstr ""
-"Ņżńņąāū˙ ńņąšīķźi ąäļšą¢ėåķū äżģąķó äšóźó.\n"
-"Ļåšąä ņūģ, ˙ź ļšūķņżš ēąļšąöóå, ģīęą ļšąéńöi ļż¢ķū ÷ąń.\n"
-"Øķ ļšąöóå ķąšģąėüķą?"
-
-#: ../../printerdrake.pm_.c:1646
-msgid "Did it work properly?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1667 ../../printerdrake.pm_.c:2732
-#, fuzzy
-msgid "Raw printer"
-msgstr "Iģ˙ äšóźąšźi"
-
-#: ../../printerdrake.pm_.c:1685
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) you can either use "
-"the command \"%s <file>\" or a graphical printing tool: \"xpp <file>\" or "
-"\"kprinter <file>\". The graphical tools allow you to choose the printer and "
-"to modify the option settings easily.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1687
-msgid ""
-"These commands you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications, but here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1690 ../../printerdrake.pm_.c:1706
-#: ../../printerdrake.pm_.c:1716
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" command also allows to modify the option settings for a "
-"particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\". "
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1693 ../../printerdrake.pm_.c:1732
-#, c-format
-msgid ""
-"To know about the options available for the current printer read either the "
-"list shown below or click on the \"Print option list\" button.%s\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1696
-msgid ""
-"Here is a list of the available printing options for the current printer:\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1701 ../../printerdrake.pm_.c:1711
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\".\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1703 ../../printerdrake.pm_.c:1713
-#: ../../printerdrake.pm_.c:1723
-msgid ""
-"This command you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications. But here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1708 ../../printerdrake.pm_.c:1718
-msgid ""
-"To get a list of the options available for the current printer click on the "
-"\"Print option list\" button."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1721
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\" or \"%s <file>\".\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1725
-msgid ""
-"You can also use the graphical interface \"xpdq\" for setting options and "
-"handling printing jobs.\n"
-"If you are using KDE as desktop environment you have a \"panic button\", an "
-"icon on the desktop, labeled with \"STOP Printer!\", which stops all print "
-"jobs immediately when you click it. This is for example useful for paper "
-"jams.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1729
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" and \"%s\" commands also allow to modify the option settings for "
-"a particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\".\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1738 ../../printerdrake.pm_.c:1744
-#: ../../printerdrake.pm_.c:1745 ../../printerdrake.pm_.c:1746
-#: ../../printerdrake.pm_.c:2716 ../../standalone/drakbackup_.c:754
-#: ../../standalone/drakbackup_.c:2458 ../../standalone/drakfont_.c:577
-#: ../../standalone/drakfont_.c:791
-#, fuzzy
-msgid "Close"
-msgstr "Ļīšņ ģūųū"
-
-#: ../../printerdrake.pm_.c:1741 ../../printerdrake.pm_.c:1753
-#, fuzzy, c-format
-msgid "Printing/Scanning on \"%s\""
-msgstr "Ąäėó÷żķķå ąä ńåņźi"
-
-#: ../../printerdrake.pm_.c:1742 ../../printerdrake.pm_.c:1754
-#, fuzzy, c-format
-msgid "Printing on the printer \"%s\""
-msgstr "Ąäėó÷żķķå ąä ńåņźi"
-
-#: ../../printerdrake.pm_.c:1744
-#, fuzzy
-msgid "Print option list"
-msgstr "Īļöūi ļšūķņżšó"
-
-#: ../../printerdrake.pm_.c:1766
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan with \"scanimage\" (\"scanimage -d hp:%s\" to specify "
-"the scanner when you have more than one) from the command line or with the "
-"graphical interfaces \"xscanimage\" or \"xsane\". If you are using the GIMP, "
-"you can also scan by choosing the appropriate point in the \"File\"/\"Acquire"
-"\" menu. Call also \"man scanimage\" and \"man sane-hp\" on the command line "
-"to get more information.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1772
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan from the command line with \"ptal-hp %s scan ...\". "
-"Scanning via a graphical interface or from the GIMP is not supported yet for "
-"your device. More information you will find in the \"/usr/share/doc/hpoj-0.8/"
-"ptal-hp-scan.html\" file on your system. If you have an HP LaserJet 1100 or "
-"1200 you can only scan when you have the scanner option installed.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1794 ../../printerdrake.pm_.c:2221
-#: ../../printerdrake.pm_.c:2485 ../../standalone/printerdrake_.c:49
-#, fuzzy
-msgid "Reading printer data ..."
-msgstr "×ūņąž įąēó äąäēåķūõ äšąéāåšī¢ CUPS"
-
-#: ../../printerdrake.pm_.c:1814 ../../printerdrake.pm_.c:1842
-#: ../../printerdrake.pm_.c:1877
-#, fuzzy
-msgid "Transfer printer configuration"
-msgstr "Ķąńņšīéźą ēėó÷żķķ˙ ē Iķņżšķżņąģ"
-
-#: ../../printerdrake.pm_.c:1815
-#, c-format
-msgid ""
-"You can copy the printer configuration which you have done for the spooler %"
-"s to %s, your current spooler. All the configuration data (printer name, "
-"description, location, connection type, and default option settings) is "
-"overtaken, but jobs will not be transferred.\n"
-"Not all queues can be transferred due to the following reasons:\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1818
-msgid ""
-"CUPS does not support printers on Novell servers or printers sending the "
-"data into a free-formed command.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1820
-msgid ""
-"PDQ only supports local printers, remote LPD printers, and Socket/TCP "
-"printers.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1822
-msgid "LPD and LPRng do not support IPP printers.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1824
-msgid ""
-"In addition, queues not created with this program or \"foomatic-configure\" "
-"cannot be transferred."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1825
-msgid ""
-"\n"
-"Also printers configured with the PPD files provided by their manufacturers "
-"or with native CUPS drivers cannot be transferred."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1826
-msgid ""
-"\n"
-"Mark the printers which you want to transfer and click \n"
-"\"Transfer\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1829
-msgid "Do not transfer printers"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1830 ../../printerdrake.pm_.c:1847
-msgid "Transfer"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1843
-#, c-format
-msgid ""
-"A printer named \"%s\" already exists under %s. \n"
-"Click \"Transfer\" to overwrite it.\n"
-"You can also type a new name or skip this printer."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1851
-msgid "Name of printer should contain only letters, numbers and the underscore"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1856
-#, c-format
-msgid ""
-"The printer \"%s\" already exists,\n"
-"do you really want to overwrite its configuration?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1864
-#, fuzzy
-msgid "New printer name"
-msgstr "Iģ˙ äšóźąšźi"
-
-#: ../../printerdrake.pm_.c:1867
-#, c-format
-msgid "Transferring %s ..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1878
-#, c-format
-msgid ""
-"You have transferred your former default printer (\"%s\"), Should it be also "
-"the default printer under the new printing system %s?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1887
-#, fuzzy
-msgid "Refreshing printer data ..."
-msgstr "×ūņąž įąēó äąäēåķūõ äšąéāåšī¢ CUPS"
-
-#: ../../printerdrake.pm_.c:1895 ../../printerdrake.pm_.c:1966
-#: ../../printerdrake.pm_.c:1978
-#, fuzzy
-msgid "Configuration of a remote printer"
-msgstr "Ķąńņšīéźą ļšūķņżšó"
-
-#: ../../printerdrake.pm_.c:1896
-#, fuzzy
-msgid "Starting network ..."
-msgstr "ßźi ņūļ āąųąćą ISDN ēėó÷żķķ˙?"
-
-#: ../../printerdrake.pm_.c:1930 ../../printerdrake.pm_.c:1934
-#: ../../printerdrake.pm_.c:1936
-#, fuzzy
-msgid "Configure the network now"
-msgstr "Ķąńņšīéźą ńåņźi"
-
-#: ../../printerdrake.pm_.c:1931
-#, fuzzy
-msgid "Network functionality not configured"
-msgstr "Ģąķiņīš ļąźóėü ķå ķąńņšīåķū"
-
-#: ../../printerdrake.pm_.c:1932
-msgid ""
-"You are going to configure a remote printer. This needs working network "
-"access, but your network is not configured yet. If you go on without network "
-"configuration, you will not be able to use the printer which you are "
-"configuring now. How do you want to proceed?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1935
-#, fuzzy
-msgid "Go on without configuring the network"
-msgstr "Ķąńņšīéźą ńåņźi"
-
-#: ../../printerdrake.pm_.c:1968
-msgid ""
-"The network configuration done during the installation cannot be started "
-"now. Please check whether the network gets accessable after booting your "
-"system and correct the configuration using the Mandrake Control Center, "
-"section \"Network & Internet\"/\"Connection\", and afterwards set up the "
-"printer, also using the Mandrake Control Center, section \"Hardware\"/"
-"\"Printer\""
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1969
-msgid ""
-"The network access was not running and could not be started. Please check "
-"your configuration and your hardware. Then try to configure your remote "
-"printer again."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1979
-#, fuzzy
-msgid "Restarting printing system ..."
-msgstr "ßźóž ńińņżģó äšóźó Āū ęąäąåöå āūźąšūńņī¢āąöü?"
-
-#: ../../printerdrake.pm_.c:2017
-#, fuzzy
-msgid "high"
-msgstr "Āūńīźi"
-
-#: ../../printerdrake.pm_.c:2017
-#, fuzzy
-msgid "paranoid"
-msgstr "Ļąšąķąiäąėüķū"
-
-#: ../../printerdrake.pm_.c:2018
-#, c-format
-msgid "Installing a printing system in the %s security level"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2019
-#, c-format
-msgid ""
-"You are about to install the printing system %s on a system running in the %"
-"s security level.\n"
-"\n"
-"This printing system runs a daemon (background process) which waits for "
-"print jobs and handles them. This daemon is also accessable by remote "
-"machines through the network and so it is a possible point for attacks. "
-"Therefore only a few selected daemons are started by default in this "
-"security level.\n"
-"\n"
-"Do you really want to configure printing on this machine?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2051
-#, fuzzy
-msgid "Starting the printing system at boot time"
-msgstr "ßźóž ńińņżģó äšóźó Āū ęąäąåöå āūźąšūńņī¢āąöü?"
-
-#: ../../printerdrake.pm_.c:2052
-#, c-format
-msgid ""
-"The printing system (%s) will not be started automatically when the machine "
-"is booted.\n"
-"\n"
-"It is possible that the automatic starting was turned off by changing to a "
-"higher security level, because the printing system is a potential point for "
-"attacks.\n"
-"\n"
-"Do you want to have the automatic starting of the printing system turned on "
-"again?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2075 ../../printerdrake.pm_.c:2113
-#: ../../printerdrake.pm_.c:2143 ../../printerdrake.pm_.c:2176
-#: ../../printerdrake.pm_.c:2281
-msgid "Checking installed software..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2117
-msgid "Removing LPRng..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2147
-msgid "Removing LPD..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2205
-#, fuzzy
-msgid "Select Printer Spooler"
-msgstr "Āūįąš ņūļó ēėó÷żķķ˙ ļšūķņżšó"
-
-#: ../../printerdrake.pm_.c:2206
-#, fuzzy
-msgid "Which printing system (spooler) do you want to use?"
-msgstr "ßźóž ńińņżģó äšóźó Āū ęąäąåöå āūźąšūńņī¢āąöü?"
-
-#: ../../printerdrake.pm_.c:2239
-#, fuzzy, c-format
-msgid "Configuring printer \"%s\" ..."
-msgstr "Ķąńņšīéźą ļšūķņżšó"
-
-#: ../../printerdrake.pm_.c:2252
-#, fuzzy
-msgid "Installing Foomatic ..."
-msgstr "Óńņąė˙āąķķå ļąźåņó %s"
-
-#: ../../printerdrake.pm_.c:2309 ../../printerdrake.pm_.c:2348
-#: ../../printerdrake.pm_.c:2733 ../../printerdrake.pm_.c:2803
-msgid "Printer options"
-msgstr "Īļöūi ļšūķņżšó"
-
-#: ../../printerdrake.pm_.c:2318
-#, fuzzy
-msgid "Preparing PrinterDrake ..."
-msgstr "×ūņąž įąēó äąäēåķūõ äšąéāåšī¢ CUPS"
-
-#: ../../printerdrake.pm_.c:2335 ../../printerdrake.pm_.c:2890
-#, fuzzy
-msgid "Configuring applications..."
-msgstr "Ķąńņšīéźą ļšūķņżšó"
-
-#: ../../printerdrake.pm_.c:2355
-#, fuzzy
-msgid "Would you like to configure printing?"
-msgstr "Ęąäąåöå ķąńņšīiöü ļšūķņżš?"
-
-#: ../../printerdrake.pm_.c:2367
-msgid "Printing system: "
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2415
-#, fuzzy
-msgid "Printerdrake"
-msgstr "Ļšūķņżš"
-
-#: ../../printerdrake.pm_.c:2419
-#, fuzzy
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; to view information about it; "
-"or to make a printer on a remote CUPS server available for Star Office/"
-"OpenOffice.org."
-msgstr ""
-"Ņóņ ēģ˙ų÷ąžööą ÷żšći äšóźó.\n"
-"Āū ģīęąöå äąäąöü ˙ų÷ż, ąėüįī ēģ˙ķiöü ińķóž÷ū˙."
-
-#: ../../printerdrake.pm_.c:2420
-#, fuzzy
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; or to view information about "
-"it."
-msgstr ""
-"Ņóņ ēģ˙ų÷ąžööą ÷żšći äšóźó.\n"
-"Āū ģīęąöå äąäąöü ˙ų÷ż, ąėüįī ēģ˙ķiöü ińķóž÷ū˙."
-
-#: ../../printerdrake.pm_.c:2446
-msgid "Refresh printer list (to display all available remote CUPS printers)"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2464
-#, fuzzy
-msgid "Change the printing system"
-msgstr "Ķąńņšīéźą ńåņźi"
-
-#: ../../printerdrake.pm_.c:2469 ../../standalone/draknet_.c:278
-#, fuzzy
-msgid "Normal Mode"
-msgstr "Ēāū÷ąéķū"
-
-#: ../../printerdrake.pm_.c:2625 ../../printerdrake.pm_.c:2675
-#: ../../printerdrake.pm_.c:2884
-#, fuzzy
-msgid "Do you want to configure another printer?"
-msgstr "Öi ęąäąåöå ļšąņżńöišąāąöü ķąńņšīéźi?"
-
-#: ../../printerdrake.pm_.c:2711
-#, fuzzy
-msgid "Modify printer configuration"
-msgstr "Ķąńņšīéźą ēėó÷żķķ˙ ē Iķņżšķżņąģ"
-
-#: ../../printerdrake.pm_.c:2713
-#, fuzzy, c-format
-msgid ""
-"Printer %s\n"
-"What do you want to modify on this printer?"
-msgstr "Öi ęąäąåöå ļšąņżńöišąāąöü ķąńņšīéźi?"
-
-#: ../../printerdrake.pm_.c:2717
-msgid "Do it!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2722 ../../printerdrake.pm_.c:2777
-#, fuzzy
-msgid "Printer connection type"
-msgstr "Ńóģåńķąå Iķņżšķżņ-ēėó÷żķķå"
-
-#: ../../printerdrake.pm_.c:2723 ../../printerdrake.pm_.c:2781
-#, fuzzy
-msgid "Printer name, description, location"
-msgstr "Ēėó÷żķķå ļšūķņżšó"
-
-#: ../../printerdrake.pm_.c:2725 ../../printerdrake.pm_.c:2796
-msgid "Printer manufacturer, model, driver"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2726 ../../printerdrake.pm_.c:2797
-msgid "Printer manufacturer, model"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2735 ../../printerdrake.pm_.c:2807
-msgid "Set this printer as the default"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2737 ../../printerdrake.pm_.c:2812
-msgid "Add this printer to Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2738 ../../printerdrake.pm_.c:2821
-msgid "Remove this printer from Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2739 ../../printerdrake.pm_.c:2830
-#, fuzzy
-msgid "Print test pages"
-msgstr "Äšóź ņżńņąāūõ ńņąšīķąź"
-
-#: ../../printerdrake.pm_.c:2740 ../../printerdrake.pm_.c:2832
-#, fuzzy
-msgid "Know how to use this printer"
-msgstr "Öi ęąäąåöå ļšąņżńöišąāąöü ķąńņšīéźi?"
-
-#: ../../printerdrake.pm_.c:2742 ../../printerdrake.pm_.c:2834
-#, fuzzy
-msgid "Remove printer"
-msgstr "Ąääąėåķū ļšūķņżš"
-
-#: ../../printerdrake.pm_.c:2786
-#, fuzzy, c-format
-msgid "Removing old printer \"%s\" ..."
-msgstr "×ūņąž įąēó äąäēåķūõ äšąéāåšī¢ CUPS"
-
-#: ../../printerdrake.pm_.c:2810
-#, fuzzy
-msgid "Default printer"
-msgstr "Ėąźąėüķū ļšūķņżš"
-
-#: ../../printerdrake.pm_.c:2811
-#, c-format
-msgid "The printer \"%s\" is set as the default printer now."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2815 ../../printerdrake.pm_.c:2818
-msgid "Adding printer to Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2816
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully added to Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2819
-#, c-format
-msgid "Failed to add the printer \"%s\" to Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2824 ../../printerdrake.pm_.c:2827
-msgid "Removing printer from Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2825
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully removed from Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2828
-#, c-format
-msgid "Failed to remove the printer \"%s\" from Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2836
-#, fuzzy, c-format
-msgid "Do you really want to remove the printer \"%s\"?"
-msgstr "Öi ęąäąåöå ļšąņżńöišąāąöü ķąńņšīéźi?"
-
-#: ../../printerdrake.pm_.c:2838
-#, fuzzy, c-format
-msgid "Removing printer \"%s\" ..."
-msgstr "×ūņąž įąēó äąäēåķūõ äšąéāåšī¢ CUPS"
-
-#: ../../proxy.pm_.c:29 ../../proxy.pm_.c:37 ../../proxy.pm_.c:58
-#: ../../proxy.pm_.c:78
-#, fuzzy
-msgid "Proxy configuration"
-msgstr "Ķąńņšīéźą proxy źżųóž÷ūõ ńåšāåšą¢"
-
-#: ../../proxy.pm_.c:30
-msgid ""
-"Welcome to the proxy configuration utility.\n"
-"\n"
-"Here, you'll be able to set up your http and ftp proxies\n"
-"with or without login and password\n"
-msgstr ""
-
-#: ../../proxy.pm_.c:38
-msgid ""
-"Please fill in the http proxy informations\n"
-"Leave it blank if you don't want an http proxy"
-msgstr ""
-
-#: ../../proxy.pm_.c:39 ../../proxy.pm_.c:60
-msgid "URL"
-msgstr ""
-
-#: ../../proxy.pm_.c:40 ../../proxy.pm_.c:61
-#, fuzzy
-msgid "port"
-msgstr "Ļīšņ"
-
-#: ../../proxy.pm_.c:44
-#, fuzzy
-msgid "Url should begin with 'http:'"
-msgstr "Proxy ļąāiķåķ įūöü http://..."
-
-#: ../../proxy.pm_.c:48 ../../proxy.pm_.c:69
-msgid "The port part should be numeric"
-msgstr ""
-
-#: ../../proxy.pm_.c:59
-msgid ""
-"Please fill in the ftp proxy informations\n"
-"Leave it blank if you don't want an ftp proxy"
-msgstr ""
-
-#: ../../proxy.pm_.c:65
-#, fuzzy
-msgid "Url should begin with 'ftp:'"
-msgstr "Proxy ļąāiķåķ įūöü ftp://..."
-
-#: ../../proxy.pm_.c:79
-msgid ""
-"Please enter proxy login and password, if any.\n"
-"Leave it blank if you don't want login/passwd"
-msgstr ""
-
-#: ../../proxy.pm_.c:80
-#, fuzzy
-msgid "login"
-msgstr "Ą¢ņąģąņū÷ķū ¢āąõīä ó ńińņżģó"
-
-#: ../../proxy.pm_.c:82
-#, fuzzy
-msgid "password"
-msgstr "Ļąšīėü"
-
-#: ../../proxy.pm_.c:84
-#, fuzzy
-msgid "re-type password"
-msgstr "Ķ˙ģą ļąšīėž"
-
-#: ../../proxy.pm_.c:88
-#, fuzzy
-msgid "The passwords don't match. Try again!"
-msgstr "Ļąšīėi ķå ńóļąäąžöü"
-
-#: ../../raid.pm_.c:35
-#, c-format
-msgid "Can't add a partition to _formatted_ RAID md%d"
-msgstr "Ķå ąņšūģėiāąåööą äąäąöü šąēäēåė ķą _ąäōąšģąöišąāąķū_ RAID md%d"
-
-#: ../../raid.pm_.c:111
-#, c-format
-msgid "Can't write file %s"
-msgstr "Ķå ąņšūģėiāąåööą ēąļiń ó ōąéė %s"
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed"
-msgstr "mkraid ķå ļšąöąēäīėüķū"
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed (maybe raidtools are missing?)"
-msgstr "mkraid ķå ļšąöąēäīėüķū (ģīęą raid ļšūėąäū ąäńóņķi÷ąžöü?)"
-
-#: ../../raid.pm_.c:152
-#, c-format
-msgid "Not enough partitions for RAID level %d\n"
-msgstr "Ķåäąńņąņźīāą šąēäēåėą¢ äė˙ RAID óēšī¢ķ˙ %d\n"
-
-#: ../../services.pm_.c:14
-msgid "Launch the ALSA (Advanced Linux Sound Architecture) sound system"
-msgstr ""
-
-#: ../../services.pm_.c:15
-msgid "Anacron a periodic command scheduler."
-msgstr "Anacron, ļåšū˙äū÷ķū źąģąķäķū ļėąķąāąėüķiź."
-
-#: ../../services.pm_.c:16
-msgid ""
-"apmd is used for monitoring batery status and logging it via syslog.\n"
-"It can also be used for shutting down the machine when the battery is low."
-msgstr ""
-"ampd āūźąšūńņī¢āąåööą äė˙ ąäńėåęāąķķ˙ ńņąņóńó įąņąšżi i ā˙äēåķķ˙ "
-"ńņąņūńņūźi.\n"
-"ßćī ģīęķą āūźąšūńņī¢āąöü äė˙ āūźėž÷żķķ˙ ģąųūķū ļšū ķiēźiģ ēąšąäēå įąņąšżi."
-
-#: ../../services.pm_.c:18
-msgid ""
-"Runs commands scheduled by the at command at the time specified when\n"
-"at was run, and runs batch commands when the load average is low enough."
-msgstr ""
-"Źąģąķäū, ˙źi˙ āūźīķāąžööą, ōiźńóžööą ļą źąģąķäēå i ÷ąńå ˙å āūźąķąķķ˙\n"
-"i āūźīķāąžööą ćšóļū źąģąķä, źąėi ēąćšóēźą ļąģ˙öi ķiężé äąńņąņźīāąé."
-
-#: ../../services.pm_.c:20
-msgid ""
-"cron is a standard UNIX program that runs user-specified programs\n"
-"at periodic scheduled times. vixie cron adds a number of features to the "
-"basic\n"
-"UNIX cron, including better security and more powerful configuration options."
-msgstr ""
-"cron - ńņąķäąšņķą˙ UNIX ļšąćšąģą, ˙źą˙ āūźīķāąå ļšąćšąģū źąšūńņąėüķiźą\n"
-"ļšąē ļąēķą÷ąķū˙ ļåšū˙äū ÷ąńó. Vixie cron äąäąå šąä äąļą¢ķåķķ˙¢ äą "
-"ńņąķäąšņķąćą\n"
-"UNIX cron, óźėž÷ąž÷ū ėåļųū ¢ēšīāåķü į˙ńļåźi i ģīöķū˙ źąķōićóšąöūéķū˙ īļöūi."
-
-#: ../../services.pm_.c:23
-msgid ""
-"GPM adds mouse support to text-based Linux applications such the\n"
-"Midnight Commander. It also allows mouse-based console cut-and-paste "
-"operations,\n"
-"and includes support for pop-up menus on the console."
-msgstr ""
-"GPM äąäąå ļąäņšūģźó ģūųū äą ļšąćšąģą¢, ˙źi˙ ļšąöóžöü ó ņżźńņąāūģ šżęūģå,\n"
-"ņąźiõ ˙ź Midnight Commander. Ćżņą äąēāąė˙å āūźąšūńņī¢āąöü ģūų ļšū "
-"źąļišąāąķķi i ¢ńņą¢öū,\n"
-"i ¢źėž÷ąå ļąäņšūģźó ¢ńļėūāąž÷ūõ (pop-up) ģåķž ¢ ņżźńņąāūģ šżęūģå."
-
-#: ../../services.pm_.c:26
-msgid ""
-"HardDrake runs a hardware probe, and optionally configures\n"
-"new/changed hardware."
-msgstr ""
-
-#: ../../services.pm_.c:28 ../../standalone/logdrake_.c:412
-msgid ""
-"Apache is a World Wide Web server. It is used to serve HTML files and CGI."
-msgstr ""
-"Apache - ćżņą World Wide Web ńåšāåš. Øķ āūźąšūńņī¢ēāąåöą äė˙ ąįńėóćī¢āąķķ˙\n"
-"HTML ōąéėą¢ i CGI."
-
-#: ../../services.pm_.c:29
-msgid ""
-"The internet superserver daemon (commonly called inetd) starts a\n"
-"variety of other internet services as needed. It is responsible for "
-"starting\n"
-"many services, including telnet, ftp, rsh, and rlogin. Disabling inetd "
-"disables\n"
-"all of the services it is responsible for."
-msgstr ""
-"Iķņżšķżņ ńóļåšńåšāåš-äżģąķ (ēąāåööą inetd) ēąļóńźąå ļšū ńņąšöå \n"
-"źīėüźąńöü šīēķūõ iķņżšķżņ ńėóęįą¢, ˙źi˙ ķåąįõīäķū. ßćī ģīęķą āūźąšūńņī¢āąöü "
-"äė˙ ļóńźó\n"
-"ųģąņė³ź³õ ńėóęįą¢, óźėž÷ąž÷ū telnet, ftp, rsh i rlogin. Įėąźóž÷ū inetd, "
-"įėąźóåģ\n"
-"óńå ńėóęįū, ēą ˙źi˙ øķ ąäźąēāąå."
-
-#: ../../services.pm_.c:33
-msgid ""
-"Launch packet filtering for Linux kernel 2.2 series, to set\n"
-"up a firewall to protect your machine from network attacks."
-msgstr ""
-
-#: ../../services.pm_.c:35
-msgid ""
-"This package loads the selected keyboard map as set in\n"
-"/etc/sysconfig/keyboard. This can be selected using the kbdconfig utility.\n"
-"You should leave this enabled for most machines."
-msgstr ""
-"Ćżņū ļąźåņ ēąćšóęąå ąįšąķóž šąńźėąäźó źėąāi˙ņóšū ˙ź ķąįīš ē\n"
-"/etc/sysconfig/keyboard. Øķą ģīęą įūöü ąįšąķą ņąźńąģą ē äąļąģīćąé "
-"kbdconfig.\n"
-"Āū ģīęąöå ēšąįiöü äąńņóļķąé ˙å äė˙ ųģąņė³ź³õ ģąųūķą¢."
-
-#: ../../services.pm_.c:38
-msgid ""
-"Automatic regeneration of kernel header in /boot for\n"
-"/usr/include/linux/{autoconf,version}.h"
-msgstr ""
-
-#: ../../services.pm_.c:40
-msgid "Automatic detection and configuration of hardware at boot."
-msgstr ""
-
-#: ../../services.pm_.c:41
-msgid ""
-"Linuxconf will sometimes arrange to perform various tasks\n"
-"at boot-time to maintain the system configuration."
-msgstr ""
-
-#: ../../services.pm_.c:43
-msgid ""
-"lpd is the print daemon required for lpr to work properly. It is\n"
-"basically a server that arbitrates print jobs to printer(s)."
-msgstr ""
-"lpd - ćżņū äżģąķ äšóźó, ļąņšżįķū äė˙ źąšżźņķąé ļšąöū lpr. Ćżņą\n"
-"ńåšāåš, ˙źi źišóå ļšąöąé ļšūķņżšó(ą¢)."
-
-#: ../../services.pm_.c:45
-msgid ""
-"Linux Virtual Server, used to build a high-performance and highly\n"
-"available server."
-msgstr ""
-
-#: ../../services.pm_.c:47 ../../standalone/logdrake_.c:413
-#, fuzzy
-msgid ""
-"named (BIND) is a Domain Name Server (DNS) that is used to resolve host "
-"names to IP addresses."
-msgstr ""
-"named (BIND) - ćżņą ńåšāåš äąģåķķūõ iģøķą¢, ˙źi āūźąšūńņī¢āąåööą äė˙\n"
-"ļåšąźėąäąķķ˙ iģøķ āóēėī¢ ó IP ąäšąńū."
-
-#: ../../services.pm_.c:48
-msgid ""
-"Mounts and unmounts all Network File System (NFS), SMB (Lan\n"
-"Manager/Windows), and NCP (NetWare) mount points."
-msgstr ""
-"Ģąķöišąāąöü i šąēģąķöišąāąöü óńå ńåņźąāū˙ ōąéėąāū˙ ńińņżģū (NFS),\n"
-" SMB (Lan Manager/Windows) i NCP (Netware) ļóķźņū ģąķöišąāąķķ˙."
-
-#: ../../services.pm_.c:50
-msgid ""
-"Activates/Deactivates all network interfaces configured to start\n"
-"at boot time."
-msgstr ""
-"Ąźņūāiēąāąöü/äżąźņūāiēąāąöü óńå ńåņźąāū˙ iķņżšōåéńū, ńźąķōićóšąāąķū˙ äė˙\n"
-"ńņąšņó ļšū ēąćšóēöū ńińņżģū."
-
-#: ../../services.pm_.c:52
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP networks.\n"
-"This service provides NFS server functionality, which is configured via the\n"
-"/etc/exports file."
-msgstr ""
-"NFS - ćżņą ā˙äīģū ļšąņąźīė äė˙ äīńņóļó äą ōąéėą¢ ļšąē TCP/IP ńåņźi.\n"
-"Ćżņą˙ ńėóęįą ēąį˙ńļå÷āąåööą NFS ńåšāåšąģ, ˙źi źąķōićóšūšóåöą ļšąē\n"
-"/etc/exports ōąéė."
-
-#: ../../services.pm_.c:55
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP\n"
-"networks. This service provides NFS file locking functionality."
-msgstr ""
-"NFS - ćżņą ā˙äīģū ļšąņąźīė äė˙ äīńņóļó äą ōąéėą¢ ļšąē TCP/IP\n"
-"ńåņźi. Ćżņą˙ ńėóęįą ¢ļėūāąå ķą ķą˙¢ķąńöü ńóā˙ēi ļąģię NFS ōąéėąģi."
-
-#: ../../services.pm_.c:57
-msgid ""
-"Automatically switch on numlock key locker under console\n"
-"and XFree at boot."
-msgstr ""
-
-#: ../../services.pm_.c:59
-msgid "Support the OKI 4w and compatible winprinters."
-msgstr ""
-
-#: ../../services.pm_.c:60
-msgid ""
-"PCMCIA support is usually to support things like ethernet and\n"
-"modems in laptops. It won't get started unless configured so it is safe to "
-"have\n"
-"it installed on machines that don't need it."
-msgstr ""
-"Ļąäņšūģźą PCMCIA - ćżņą ēāū÷ąéķą ļąäņšūģźą ņąźiõ šż÷ą¢, ˙ź Ethernet i\n"
-"ģąäżģū ¢ ķą¢ņįóźąõ. Āąģ ķ˙ģą ķåąįõīäķąńöi źąķōićóšąāąöü iõ, źąėi ķą āąųąé\n"
-"ģąųūķå iõ ķ˙ģą, öi ˙ķą ķå ķą¢ņįóź."
-
-#: ../../services.pm_.c:63
-msgid ""
-"The portmapper manages RPC connections, which are used by\n"
-"protocols such as NFS and NIS. The portmap server must be running on "
-"machines\n"
-"which act as servers for protocols which make use of the RPC mechanism."
-msgstr ""
-"Portmapper (ąćė˙äąėüķiź ļąšņī¢) źišóå RPC ēėó÷żķķ˙ģi, ˙źi˙ ēāū÷ąéķą\n"
-"āūźąšūńņī¢āąžööą ņąźiģi ļšąņąźīėąģi ˙ź NFS i NIS. Portmap ńåšāåš ļąāiķåķ "
-"āūźīķāąööą\n"
-"ķą ģąųūķąõ ˙źi˙ ļšąöóžöü ˙ź ńåšāåšū äė˙ ļšąņąźīėą¢, ˙źi˙ ńźąšūńņī¢āąžöü RPC."
-
-#: ../../services.pm_.c:66 ../../standalone/logdrake_.c:415
-#, fuzzy
-msgid ""
-"Postfix is a Mail Transport Agent, which is the program that moves mail from "
-"one machine to another."
-msgstr ""
-"Postfix - ćżņą ļąųņīāū ņšąķńļąšņķū ąćåķņ, ļšąćšąģą, ˙źą˙\n"
-"ļåšąģ˙ų÷ąå ļīųņó ē ąäķīé ģąųūķū ķą éķųóž."
-
-#: ../../services.pm_.c:67
-msgid ""
-"Saves and restores system entropy pool for higher quality random\n"
-"number generation."
-msgstr ""
-"Ēąõąāąöü i ąäķąāiöü ńińņżģķū żķņšąļiéķū ļóė äė˙ āūńīźąé ˙źąńöi\n"
-"ćåķåšąöū³ āūļąäźīāūõ ė³źą¢."
-
-#: ../../services.pm_.c:69
-msgid ""
-"Assign raw devices to block devices (such as hard drive\n"
-"partitions), for the use of applications such as Oracle"
-msgstr ""
-
-#: ../../services.pm_.c:71
-msgid ""
-"The routed daemon allows for automatic IP router table updated via\n"
-"the RIP protocol. While RIP is widely used on small networks, more complex\n"
-"routing protocols are needed for complex networks."
-msgstr ""
-"Äżģąķ ģąšųšóņūēąöūi äąēāąė˙å äūķąģi÷ķūģ ņąįėiöąģ IP ģąšųšóņūēąöūi\n"
-"ąäķą¢ė˙ööą ļšąē RIP ļšąņąźīė. RIP āūźąšūńņī¢āąåööą ¢ ģąėūõ ńåņźąõ, įīėüų\n"
-"ńźėąäąķū˙ ļšąņąźīėū ģąšųšóņūēąöūi - ó ā˙ėiźiõ ńåņźąõ."
-
-#: ../../services.pm_.c:74
-msgid ""
-"The rstat protocol allows users on a network to retrieve\n"
-"performance metrics for any machine on that network."
-msgstr ""
-"Ļšąņąźīė rstat äąēāąė˙å źąšūńņąėüķiźąģ ńåņźi ąņšūģėiāąöü\n"
-"ļąģåšū ķąćšóēźi äė˙ źīęķąé ģąųūķū ńåņźi."
-
-#: ../../services.pm_.c:76
-msgid ""
-"The rusers protocol allows users on a network to identify who is\n"
-"logged in on other responding machines."
-msgstr ""
-"Ļšąņąźīė rusers äąēāąė˙å źąšūńņąėüķiźąģ ńåņźi āūēķą÷ąöü, õņī\n"
-"¢āąéųī¢ i ļšąöóå ķą ģąųūķąõ ¢ ńåņöū."
-
-#: ../../services.pm_.c:78
-msgid ""
-"The rwho protocol lets remote users get a list of all of the users\n"
-"logged into a machine running the rwho daemon (similiar to finger)."
-msgstr ""
-"Ļšąņąźīė rwho äąå ģąć÷ūģąńöü źąšūńņąėüķiźąģ ąņšūģąöü ńļiń ¢ńiõ\n"
-"źąšūńņąėüķiźą¢, óāąéųī¢ųūõ ķą ģąųūķó, āūźąķą¢ rwho äżģąķ (ļąäīįķū ķą finger)."
-
-#: ../../services.pm_.c:80
-msgid "Launch the sound system on your machine"
-msgstr ""
-
-#: ../../services.pm_.c:81
-msgid ""
-"Syslog is the facility by which many daemons use to log messages\n"
-"to various system log files. It is a good idea to always run syslog."
-msgstr ""
-"Syslog - ćżņą ńšīäąź, ē äąļąģīćąé ˙źīćą ģķīći˙ äżģąķū ēąļińāąžöü "
-"ļąāåäąģėåķķi\n"
-"¢ šīēķū˙ ōąéėū ńņąņūńņūźi. Ćżņą āåėüģi äīįšą äė˙ ąćė˙äó ļšąöū šīēķūõ ńėóęįą¢."
-
-#: ../../services.pm_.c:83
-msgid "Load the drivers for your usb devices."
-msgstr ""
-
-#: ../../services.pm_.c:84
-#, fuzzy
-msgid "Starts the X Font Server (this is mandatory for XFree to run)."
-msgstr "Ēąļóńźąå i ļšūļūķ˙å X Font Server ļšū ēąćšóēöū i āūźėž÷żķķi."
-
-#: ../../services.pm_.c:110 ../../services.pm_.c:152
-msgid "Choose which services should be automatically started at boot time"
-msgstr "Ąį˙šūöå, ˙źi˙ ńåšāińū ēąļóńźąöü ą¢ņąģąņū÷ķą ļšū ēąćšóēöū"
-
-#: ../../services.pm_.c:122
-#, fuzzy
-msgid "Printing"
-msgstr "Ļšūķņżš"
-
-#: ../../services.pm_.c:123
-#, fuzzy
-msgid "Internet"
-msgstr "öiźąāą"
-
-#: ../../services.pm_.c:126
-msgid "File sharing"
-msgstr ""
-
-#: ../../services.pm_.c:128 ../../standalone/drakbackup_.c:934
-#, fuzzy
-msgid "System"
-msgstr "Mouse Systems"
-
-#: ../../services.pm_.c:133
-#, fuzzy
-msgid "Remote Administration"
-msgstr "Īļöūi ąääąėåķąćą ļšūķņżšó lpd"
-
-#: ../../services.pm_.c:141
-#, fuzzy
-msgid "Database Server"
-msgstr "Ńåšāåš äšóźó"
-
-#: ../../services.pm_.c:170
-#, c-format
-msgid "Services: %d activated for %d registered"
-msgstr ""
-
-#: ../../services.pm_.c:186
-#, fuzzy
-msgid "Services"
-msgstr "ļšūėąäą"
-
-#: ../../services.pm_.c:198
-#, fuzzy
-msgid "running"
-msgstr "Óāąćą!"
-
-#: ../../services.pm_.c:198
-#, fuzzy
-msgid "stopped"
-msgstr "Äąėó÷ūöü"
-
-#: ../../services.pm_.c:212
-msgid "Services and deamons"
-msgstr ""
-
-#: ../../services.pm_.c:217
-msgid ""
-"No additional information\n"
-"about this service, sorry."
-msgstr ""
-
-#: ../../services.pm_.c:224
-#, fuzzy
-msgid "On boot"
-msgstr "Yaboot"
-
-#: ../../services.pm_.c:236
-#, fuzzy
-msgid "Start"
-msgstr "Ńņąšņąāąå ģåķž"
-
-#: ../../services.pm_.c:236
-#, fuzzy
-msgid "Stop"
-msgstr "Ńåźņąš"
-
-#: ../../share/advertising/00-thanks.pl_.c:9
-msgid "Thank you for choosing Mandrake Linux 8.2"
-msgstr ""
-
-#: ../../share/advertising/00-thanks.pl_.c:10
-msgid "Welcome to the Open Source world"
-msgstr ""
-
-#: ../../share/advertising/00-thanks.pl_.c:11
-msgid ""
-"The success of MandrakeSoft is based upon the principle of Free Software. "
-"Your new operating system is the result of collaborative work on the part of "
-"the worldwide Linux Community"
-msgstr ""
-
-#: ../../share/advertising/01-gnu.pl_.c:9
-#, fuzzy
-msgid "Join the Free Software world"
-msgstr "Ļąäźėž÷żķķå"
-
-#: ../../share/advertising/01-gnu.pl_.c:10
-msgid ""
-"Get to know the Open Source community and become a member. Learn, teach, and "
-"help others by joining the many discussion forums that you will find in our "
-"\"Community\" webpages"
-msgstr ""
-
-#: ../../share/advertising/02-internet.pl_.c:9
-#, fuzzy
-msgid "Internet and Messaging"
-msgstr "Ķąńņšīéźą ēėó÷żķķ˙ ē Iķņżšķżņąģ"
-
-#: ../../share/advertising/02-internet.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best software to access everything the "
-"Internet has to offer: Surf the web & view animations with Mozilla and "
-"Konqueror, exchange email & organize your personal information with "
-"Evolution and Kmail, and much more"
-msgstr ""
-
-#: ../../share/advertising/03-graphic.pl_.c:9
-#, fuzzy
-msgid "Multimedia and Graphics"
-msgstr "Ģóėüņūģåäū˙ - Ćšąō³źą"
-
-#: ../../share/advertising/03-graphic.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 lets you push your multimedia computer to its limits! Use "
-"the latest software to play music and audio files, edit and organize your "
-"images and photos, watch TV and videos, and much more"
-msgstr ""
-
-#: ../../share/advertising/04-develop.pl_.c:9
-#, fuzzy
-msgid "Development"
-msgstr "šąńļšąöī¢ų÷ūź"
-
-#: ../../share/advertising/04-develop.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 is the ultimate development platform. Discover the power "
-"of the GNU gcc compiler as well as the best Open Source development "
-"environments"
-msgstr ""
-
-#: ../../share/advertising/05-contcenter.pl_.c:9
-#, fuzzy
-msgid "Mandrake Control Center"
-msgstr "Äąėó÷żķķå äą Iķņżšķżņó"
-
-#: ../../share/advertising/05-contcenter.pl_.c:10
-msgid ""
-"The Mandrake Linux 8.2 Control Center is a one-stop location for fully "
-"customizing and configuring your Mandrake system"
-msgstr ""
-
-#: ../../share/advertising/06-user.pl_.c:9
-#, fuzzy
-msgid "User interfaces"
-msgstr "Ńåņźąāū iķņżšōåéń"
-
-#: ../../share/advertising/06-user.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides 11 different graphical desktop environments and "
-"window managers to choose from including GNOME 1.4, KDE 2.2.2, Window Maker "
-"0.8, and the rest"
-msgstr ""
-
-#: ../../share/advertising/07-server.pl_.c:9
-#, fuzzy
-msgid "Server Software"
-msgstr "Iģ˙ ńåšāåšó SMB"
-
-#: ../../share/advertising/07-server.pl_.c:10
-msgid ""
-"Transform your machine into a powerful server with just a few clicks of the "
-"mouse: Web server, email, firewall, router, file and print server, ..."
-msgstr ""
-
-#: ../../share/advertising/08-games.pl_.c:9
-msgid "Games"
-msgstr "Ēąįąāū"
-
-#: ../../share/advertising/08-games.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best Open Source games - arcade, action, "
-"cards, sports, strategy, ..."
-msgstr ""
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:9
-msgid "MandrakeCampus"
-msgstr ""
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:10
-msgid ""
-"Would you like to learn Linux simply, quickly, and for free? MandrakeSoft "
-"provides free Linux training, as well as a way to test your progress, at "
-"MandrakeCampus -- our online training center"
-msgstr ""
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:9
-#, fuzzy
-msgid "MandrakeExpert"
-msgstr "żźńļåšņ"
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:10
-msgid ""
-"Quality support from the Linux Community, and from MandrakeSoft, is just "
-"around the corner. And if you're already a Linux veteran, become an \"Expert"
-"\" and share your knowledge at our support website"
-msgstr ""
-
-#: ../../share/advertising/11-consul.pl_.c:9
-msgid "MandrakeConsulting"
-msgstr ""
-
-#: ../../share/advertising/11-consul.pl_.c:10
-msgid ""
-"For all of your IT projects, our consultants are ready to analyze your "
-"requirements and offer a customized solution. Benefit from MandrakeSoft's "
-"vast experience as a Linux producer to provide a true IT alternative for "
-"your business organization"
-msgstr ""
-
-#: ../../share/advertising/12-MDKstore.pl_.c:9
-#, fuzzy
-msgid "MandrakeStore"
-msgstr "ąįąā˙ēźīāą"
-
-#: ../../share/advertising/12-MDKstore.pl_.c:10
-msgid ""
-"A full range of Linux solutions, as well as special offers on products and "
-"'goodies', are available online at our e-store"
-msgstr ""
-
-#: ../../share/advertising/13-Nvert.pl_.c:9
-msgid ""
-"For more information on MandrakeSoft's Professional Services and commercial "
-"offerings, please see the following web page:"
-msgstr ""
-
-#: ../../share/advertising/13-Nvert.pl_.c:11
-msgid "http://www.mandrakesoft.com/sales/contact"
-msgstr ""
-
-#: ../../standalone.pm_.c:25
-#, fuzzy
-msgid "Installing packages..."
-msgstr "Óńņąė˙āąķķå ļąźåņó %s"
-
-#: ../../standalone/diskdrake_.c:85
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I'll try to go on blanking bad partitions"
-msgstr ""
-"Ņąįėiöą šąēäēåėą¢ ķå ÷ūņąåööą, ˙ķą ēąķąäņą ńąļńąāąķą äė˙ ģåķ˙ :(\n"
-"Ļąńļšąįóž ińöi äąėåé i įóäó ļšąļóńźąöü äšżķķū˙ šąēäēåėū"
-
-#: ../../standalone/drakautoinst_.c:45
-#, fuzzy
-msgid "Error!"
-msgstr "Ļąģūėźą"
-
-#: ../../standalone/drakautoinst_.c:46
-#, c-format
-msgid "I can't find needed image file `%s'."
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:48
-#, fuzzy
-msgid "Auto Install Configurator"
-msgstr "Ķąńņšīéźą ļąńė˙ ¢ńņąė˙āąķķ˙"
-
-#: ../../standalone/drakautoinst_.c:49
-msgid ""
-"You are about to configure an Auto Install floppy. This feature is somewhat "
-"dangerous and must be used circumspectly.\n"
-"\n"
-"With that feature, you will be able to replay the installation you've "
-"performed on this computer, being interactively prompted for some steps, in "
-"order to change their values.\n"
-"\n"
-"For maximum safety, the partitioning and formatting will never be performed "
-"automatically, whatever you chose during the install of this computer.\n"
-"\n"
-"Do you want to continue?"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:71
-#, fuzzy
-msgid "Automatic Steps Configuration"
-msgstr "Ķąńņšīéźą ģąäżģó"
-
-#: ../../standalone/drakautoinst_.c:72
-msgid ""
-"Please choose for each step whether it will replay like your install, or it "
-"will be manual"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:145
-msgid ""
-"\n"
-"Welcome.\n"
-"\n"
-"The parameters of the auto-install are available in the sections on the left"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:243 ../../standalone/drakgw_.c:671
-#: ../../standalone/scannerdrake_.c:106
-msgid "Congratulations!"
-msgstr "Ļšūģ³öå āiķųąāąķķi!"
-
-#: ../../standalone/drakautoinst_.c:244
-msgid ""
-"The floppy has been successfully generated.\n"
-"You may now replay your installation."
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:282
-#, fuzzy
-msgid "Auto Install"
-msgstr "Óńņąėø¢źą"
-
-#: ../../standalone/drakautoinst_.c:352
-#, fuzzy
-msgid "Add an item"
-msgstr "Äąäąöü źąšūńņąėüķiźą"
-
-#: ../../standalone/drakautoinst_.c:359
-#, fuzzy
-msgid "Remove the last item"
-msgstr "Ōąšģąņąāąķķå āišņóąėüķąćą šąēäēåėó %s"
-
-#: ../../standalone/drakbackup_.c:448 ../../standalone/drakbackup_.c:451
-#: ../../standalone/drakbackup_.c:455
-msgid ""
-"***********************************************************************\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:449
-msgid ""
-"\n"
-" DrakBackup Report \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:450
-msgid ""
-"\n"
-" DrakBackup Daemon Report\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:453
-msgid ""
-"\n"
-"\n"
-"***********************************************************************\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:454
-msgid ""
-"\n"
-" DrakBackup Report Details\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:476
-msgid "total progess"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:555 ../../standalone/drakbackup_.c:602
-msgid "Backup system files..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:603 ../../standalone/drakbackup_.c:667
-#, fuzzy
-msgid "Hard Disk Backup files..."
-msgstr "Äšżķķū ōąéė šżēåšāīāąé źīļii"
-
-#: ../../standalone/drakbackup_.c:615
-#, fuzzy
-msgid "Backup User files..."
-msgstr "Äšżķķū ōąéė šżēåšāīāąé źīļii"
-
-#: ../../standalone/drakbackup_.c:616
-msgid "Hard Disk Backup Progress..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:666
-#, fuzzy
-msgid "Backup Other files..."
-msgstr "Äšżķķū ōąéė šżēåšāīāąé źīļii"
-
-#: ../../standalone/drakbackup_.c:674
-#, c-format
-msgid ""
-"file list send by FTP : %s\n"
-" "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:677
-msgid ""
-"\n"
-"(!) FTP connexion problem: It was not possible to send your backup files by "
-"FTP.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:687
-msgid "(!) Error during mail sending. \n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:728 ../../standalone/drakbackup_.c:739
-#: ../../standalone/drakbackup_.c:750 ../../standalone/drakfont_.c:787
-#, fuzzy
-msgid "File Selection"
-msgstr "Āūįąš ćšóļū ļąźåņą¢"
-
-#: ../../standalone/drakbackup_.c:755
-msgid "Select the files or directories and click on 'Add'"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:790
-msgid ""
-"\n"
-"Please check all options that you need.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:791
-msgid ""
-"These options can backup and restore all files in your /etc directory.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:792
-msgid "Backup your System files. ( /etc directory )"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:793
-msgid "Use incremental backup (do not replace old backups)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:794
-msgid "Do not include critical files (passwd, group, fstab)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:795
-msgid ""
-"With this option you will be able to restore any version\n"
-" of your /etc directory."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:812
-#, fuzzy
-msgid "Please check all users that you want to include in your backup."
-msgstr "Āūįąš ļąźåņą¢ äė˙ ¢ńņąė˙āąķķ˙"
-
-#: ../../standalone/drakbackup_.c:839
-msgid "Do not include the browser cache"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:840 ../../standalone/drakbackup_.c:864
-msgid "Use Incremental Backups (do not replace old backups)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:862 ../../standalone/drakfont_.c:827
-#, fuzzy
-msgid "Remove Selected"
-msgstr "Āūäąėiöü ÷ąšćó äšóźó"
-
-#: ../../standalone/drakbackup_.c:900
-#, fuzzy
-msgid "Windows (FAT32)"
-msgstr "Āūäąėiöü Windows(TM)"
-
-#: ../../standalone/drakbackup_.c:939
-#, fuzzy
-msgid "Users"
-msgstr "Iģ˙ źąšūńņąėüķiźó:"
-
-#: ../../standalone/drakbackup_.c:964
-msgid "Use FTP connection to backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:967
-#, fuzzy
-msgid "Please enter the host name or IP."
-msgstr "Źąė³ ėąńźą, ēšąį³öå ķåźąėüź³ šóõą¢ ģūųųó."
-
-#: ../../standalone/drakbackup_.c:972
-msgid ""
-"Please enter the directory to\n"
-" put the backup on this host."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:977
-#, fuzzy
-msgid "Please enter your login"
-msgstr "Ļąńļšąįóéöå ˙ų÷ż šąē"
-
-#: ../../standalone/drakbackup_.c:982
-#, fuzzy
-msgid "Please enter your password"
-msgstr "Ļąńļšąįóéöå ˙ų÷ż šąē"
-
-#: ../../standalone/drakbackup_.c:988
-#, fuzzy
-msgid "Remember this password"
-msgstr "Ķ˙ģą ļąšīėž"
-
-#: ../../standalone/drakbackup_.c:1052 ../../standalone/drakbackup_.c:2048
-#, fuzzy
-msgid "FTP Connection"
-msgstr "Šąēģåšźąāąķķå"
-
-#: ../../standalone/drakbackup_.c:1059 ../../standalone/drakbackup_.c:2056
-#, fuzzy
-msgid "Secure Connection"
-msgstr "Āūįąš ņūļó ēėó÷żķķ˙ ļšūķņżšó"
-
-#: ../../standalone/drakbackup_.c:1085 ../../standalone/drakbackup_.c:2889
-msgid "Use CD/DVDROM to backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1088 ../../standalone/drakbackup_.c:2893
-#, fuzzy
-msgid "Please choose your CD space"
-msgstr "Źąėi ėąńźą, ąį˙šūöå ņūļ źėąāi˙ņóšū."
-
-#: ../../standalone/drakbackup_.c:1094 ../../standalone/drakbackup_.c:2905
-#, fuzzy
-msgid "Please check if you are using CDRW media"
-msgstr "Ķąö³ńķ³öå ķą šąēäēåė"
-
-#: ../../standalone/drakbackup_.c:1100 ../../standalone/drakbackup_.c:2911
-msgid "Please check if you want to erase your CDRW before"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1106
-#, fuzzy
-msgid ""
-"Please check if you want to include\n"
-" install boot on your CD."
-msgstr "Āūįąš ļąźåņą¢ äė˙ ¢ńņąė˙āąķķ˙"
-
-#: ../../standalone/drakbackup_.c:1112
-msgid ""
-"Please enter your CD Writer device name\n"
-" ex: 0,1,0"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1153
-#, fuzzy
-msgid "Use tape to backup"
-msgstr "Äšżķķū ōąéė šżēåšāīāąé źīļii"
-
-#: ../../standalone/drakbackup_.c:1156
-msgid "Please enter the device name to use for backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1162 ../../standalone/drakbackup_.c:1203
-#: ../../standalone/drakbackup_.c:2013
-msgid ""
-"Please enter the maximum size\n"
-" allowed for Drakbackup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1195 ../../standalone/drakbackup_.c:2005
-#, fuzzy
-msgid "Please enter the directory to save:"
-msgstr "Źąė³ ėąńźą, ēšąį³öå ķåźąėüź³ šóõą¢ ģūųųó."
-
-#: ../../standalone/drakbackup_.c:1209 ../../standalone/drakbackup_.c:2019
-#, fuzzy
-msgid "Use quota for backup files."
-msgstr "Äšżķķū ōąéė šżēåšāīāąé źīļii"
-
-#: ../../standalone/drakbackup_.c:1267
-#, fuzzy
-msgid "Network"
-msgstr "Ńåņźą:"
-
-#: ../../standalone/drakbackup_.c:1272
-msgid "CDROM / DVDROM"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1277
-msgid "HardDrive / NFS"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1297 ../../standalone/drakbackup_.c:1301
-#: ../../standalone/drakbackup_.c:1305
-msgid "hourly"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1298 ../../standalone/drakbackup_.c:1302
-#: ../../standalone/drakbackup_.c:1305
-msgid "daily"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1299 ../../standalone/drakbackup_.c:1303
-#: ../../standalone/drakbackup_.c:1305
-msgid "weekly"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1300 ../../standalone/drakbackup_.c:1304
-#: ../../standalone/drakbackup_.c:1305
-msgid "monthly"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1312
-#, fuzzy
-msgid "Use daemon"
-msgstr "Iģ˙ źąšūńņąėüķiźó:"
-
-#: ../../standalone/drakbackup_.c:1317
-#, fuzzy
-msgid ""
-"Please choose the time \n"
-"interval between each backup"
-msgstr "Āūįąš ļąźåņą¢ äė˙ ¢ńņąė˙āąķķ˙"
-
-#: ../../standalone/drakbackup_.c:1323
-#, fuzzy
-msgid ""
-"Please choose the\n"
-"media for backup."
-msgstr "Źąėi ėąńźą, ąį˙šūöå ģīāó äė˙ źąšūńņąķķ˙."
-
-#: ../../standalone/drakbackup_.c:1327
-#, fuzzy
-msgid "Use Hard Drive with daemon"
-msgstr "Āūźąšūńņī¢āąöü ąļņūģiēąöūž ęīšńņźąćą äūńźó?"
-
-#: ../../standalone/drakbackup_.c:1329
-#, fuzzy
-msgid "Use FTP with daemon"
-msgstr "Āūźąšūńņī¢āąöü ąļņūģiēąöūž ęīšńņźąćą äūńźó?"
-
-#: ../../standalone/drakbackup_.c:1333
-msgid "Please be sure that the cron daemon is included in your services."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1369
-msgid "Send mail report after each backup to :"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1411
-#, fuzzy
-msgid "What"
-msgstr "׹źąéöå"
-
-#: ../../standalone/drakbackup_.c:1416
-#, fuzzy
-msgid "Where"
-msgstr "Ē źīėąģ"
-
-#: ../../standalone/drakbackup_.c:1421
-#, fuzzy
-msgid "When"
-msgstr "Ē źīėąģ"
-
-#: ../../standalone/drakbackup_.c:1426
-#, fuzzy
-msgid "More Options"
-msgstr "Īļöūi ģīäóėž:"
-
-#: ../../standalone/drakbackup_.c:1445 ../../standalone/drakbackup_.c:2801
-#, fuzzy
-msgid "Drakbackup Configuration"
-msgstr "Źąķōićóšąöū˙ ńåņźi"
-
-#: ../../standalone/drakbackup_.c:1463
-#, fuzzy
-msgid "Please choose where you want to backup"
-msgstr "Āūįąš ļąźåņą¢ äė˙ ¢ńņąė˙āąķķ˙"
-
-#: ../../standalone/drakbackup_.c:1465
-msgid "on Hard Drive"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1476
-#, fuzzy
-msgid "across Network"
-msgstr "Ńåņźą:"
-
-#: ../../standalone/drakbackup_.c:1540
-#, fuzzy
-msgid "Please choose what you want to backup"
-msgstr "Āūįąš ļąźåņą¢ äė˙ ¢ńņąė˙āąķķ˙"
-
-#: ../../standalone/drakbackup_.c:1541
-#, fuzzy
-msgid "Backup system"
-msgstr "Ķąńņš. ōąéėąāūõ ńińņżģą¢"
-
-#: ../../standalone/drakbackup_.c:1542
-msgid "Backup Users"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1545
-msgid "Select user manually"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1627
-msgid ""
-"\n"
-"Backup Sources: \n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1628
-msgid ""
-"\n"
-"- System Files:\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1630
-msgid ""
-"\n"
-"- User Files:\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1632
-msgid ""
-"\n"
-"- Other Files:\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1634
-#, c-format
-msgid ""
-"\n"
-"- Save on Hard drive on path : %s\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1635
-#, c-format
-msgid ""
-"\n"
-"- Save on FTP on host : %s\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1636
-#, c-format
-msgid ""
-"\t\t user name: %s\n"
-"\t\t on path: %s \n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1637
-#, fuzzy
-msgid ""
-"\n"
-"- Options:\n"
-msgstr "Īļöūi"
-
-#: ../../standalone/drakbackup_.c:1638
-msgid "\tDo not include System Files\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1639
-msgid "\tBackups use tar and bzip2\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1640
-msgid "\tBackups use tar and gzip\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1641
-#, c-format
-msgid ""
-"\n"
-"- Daemon (%s) include :\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1642
-msgid "\t-Hard drive.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1643
-msgid "\t-CDROM.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1644
-msgid "\t-Network by FTP.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1645
-msgid "\t-Network by SSH.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1647
-msgid "No configuration, please click Wizard or Advanced.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1652
-msgid ""
-"List of data to restore:\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1753
-msgid ""
-"List of data corrupted:\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1755
-#, fuzzy
-msgid "Please uncheck or remove it on next time."
-msgstr "Äą ˙źīćą ļąńė˙äī¢ķąćą ļīšņó äąėó÷ąķū ģąäżģ?"
-
-#: ../../standalone/drakbackup_.c:1765
-msgid "Backup files are corrupted"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1786
-msgid " All your selectionned data have been "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1787
-#, c-format
-msgid " Successfuly Restored on %s "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1886
-#, fuzzy
-msgid " Restore Configuration "
-msgstr "Źąķōićóšąöū˙ ńåņźi"
-
-#: ../../standalone/drakbackup_.c:1904
-msgid "OK to restore the other files."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1922
-msgid "User list to restore (only the most recent date per user is important)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1972
-#, fuzzy
-msgid "Backup the system files before:"
-msgstr "Äšżķķū ōąéė šżēåšāīāąé źīļii"
-
-#: ../../standalone/drakbackup_.c:1974
-#, fuzzy
-msgid "please choose the date to restore"
-msgstr "źąėi ėąńźą, ļąēķą÷öå ņūļ āąųąé ģūųū."
-
-#: ../../standalone/drakbackup_.c:2002
-#, fuzzy
-msgid "Use Hard Disk to backup"
-msgstr "Äšżķķū ōąéė šżēåšāīāąé źīļii"
-
-#: ../../standalone/drakbackup_.c:2083
-#, fuzzy
-msgid "Restore from Hard Disk."
-msgstr "Ąäķą¢ėåķķå ē äūńźåņū"
-
-#: ../../standalone/drakbackup_.c:2085
-msgid "Please enter the directory where backups are stored"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2143
-#, fuzzy
-msgid "Select another media to restore from"
-msgstr "źąėi ėąńźą, ļąēķą÷öå ņūļ āąųąé ģūųū."
-
-#: ../../standalone/drakbackup_.c:2145
-#, fuzzy
-msgid "Other Media"
-msgstr "²ķųū˙"
-
-#: ../../standalone/drakbackup_.c:2151
-#, fuzzy
-msgid "Restore system"
-msgstr "Óńņąė˙āąķķå ńińņżģū"
-
-#: ../../standalone/drakbackup_.c:2152
-#, fuzzy
-msgid "Restore Users"
-msgstr "Ąäķą¢ėåķķå ē ōąéėó"
-
-#: ../../standalone/drakbackup_.c:2153
-#, fuzzy
-msgid "Restore Other"
-msgstr "Ąäķą¢ėåķķå ē ōąéėó"
-
-#: ../../standalone/drakbackup_.c:2155
-msgid "select path to restore (instead of / )"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2159
-msgid "Do new backup before restore (only for incremental backups.)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2160
-msgid "Remove user directories before restore."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2217
-msgid "Restore all backups"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2225
-#, fuzzy
-msgid "Custom Restore"
-msgstr "Ļą āūįąšó"
-
-#: ../../standalone/drakbackup_.c:2266 ../../standalone/drakbackup_.c:2291
-#: ../../standalone/drakbackup_.c:2312 ../../standalone/drakbackup_.c:2333
-#: ../../standalone/drakbackup_.c:2351 ../../standalone/drakbackup_.c:2383
-#: ../../standalone/drakbackup_.c:2399 ../../standalone/drakbackup_.c:2419
-#: ../../standalone/drakbackup_.c:2438 ../../standalone/drakbackup_.c:2460
-#: ../../standalone/drakfont_.c:575
-msgid "Help"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2269 ../../standalone/drakbackup_.c:2296
-#: ../../standalone/drakbackup_.c:2315 ../../standalone/drakbackup_.c:2336
-#: ../../standalone/drakbackup_.c:2354 ../../standalone/drakbackup_.c:2402
-#: ../../standalone/drakbackup_.c:2422 ../../standalone/drakbackup_.c:2441
-msgid "Previous"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2271 ../../standalone/drakbackup_.c:2338
-#: ../../standalone/logdrake_.c:224
-#, fuzzy
-msgid "Save"
-msgstr "Ńņąšņąāąå ģåķž"
-
-#: ../../standalone/drakbackup_.c:2317
-#, fuzzy
-msgid "Build Backup"
-msgstr "Äšżķķū ōąéė šżēåšāīāąé źīļii"
-
-#: ../../standalone/drakbackup_.c:2356 ../../standalone/drakbackup_.c:3033
-#, fuzzy
-msgid "Restore"
-msgstr "Ąäķą¢ėåķķå ē ōąéėó"
-
-#: ../../standalone/drakbackup_.c:2404 ../../standalone/drakbackup_.c:2424
-#: ../../standalone/drakbackup_.c:2445
-#, fuzzy
-msgid "Next"
-msgstr "Ņżźńņ"
-
-#: ../../standalone/drakbackup_.c:2478
-msgid ""
-"Please Build backup before to restore it...\n"
-" or verify that your path to save is correct."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2499
-msgid ""
-"Error durind sendmail\n"
-" your report mail was not sent\n"
-" Please configure sendmail"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2522
-#, fuzzy
-msgid "Package List to Install"
-msgstr "Āūįąš ļąźåņą¢"
-
-#: ../../standalone/drakbackup_.c:2550
-msgid ""
-"Error durind sending file via FTP.\n"
-" Please correct your FTP configuration."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2573
-#, fuzzy
-msgid "Please select data to restore..."
-msgstr "Źąėi ėąńźą, ąį˙šūöå ģīāó äė˙ źąšūńņąķķ˙."
-
-#: ../../standalone/drakbackup_.c:2594
-#, fuzzy
-msgid "Please select media for backup..."
-msgstr "Źąėi ėąńźą, ąį˙šūöå ģīāó äė˙ źąšūńņąķķ˙."
-
-#: ../../standalone/drakbackup_.c:2616
-#, fuzzy
-msgid "Please select data to backup..."
-msgstr "Źąėi ėąńźą, ąį˙šūöå ģīāó äė˙ źąšūńņąķķ˙."
-
-#: ../../standalone/drakbackup_.c:2638
-msgid ""
-"No configuration file found \n"
-"please click Wizard or Advanced."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2659
-msgid "Under Devel ... please wait."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2739
-#, fuzzy
-msgid "Backup system files"
-msgstr "Äšżķķū ōąéė šżēåšāīāąé źīļii"
-
-#: ../../standalone/drakbackup_.c:2741
-#, fuzzy
-msgid "Backup user files"
-msgstr "Äšżķķū ōąéė šżēåšāīāąé źīļii"
-
-#: ../../standalone/drakbackup_.c:2743
-#, fuzzy
-msgid "Backup other files"
-msgstr "Äšżķķū ōąéė šżēåšāīāąé źīļii"
-
-#: ../../standalone/drakbackup_.c:2745 ../../standalone/drakbackup_.c:2776
-msgid "Total Progress"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2767
-msgid "files sending by FTP"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2771
-#, fuzzy
-msgid "Sending files..."
-msgstr "Ēąõąāąķķå ¢ ōąéė"
-
-#: ../../standalone/drakbackup_.c:2841
-msgid "Data list to include on CDROM."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2899
-#, fuzzy
-msgid "Please enter the cd writer speed"
-msgstr "Źąė³ ėąńźą, ēšąį³öå ķåźąėüź³ šóõą¢ ģūųųó."
-
-#: ../../standalone/drakbackup_.c:2917
-msgid "Please enter your CD Writer device name (ex: 0,1,0)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2923
-#, fuzzy
-msgid "Please check if you want to include install boot on your CD."
-msgstr "Āūįąš ļąźåņą¢ äė˙ ¢ńņąė˙āąķķ˙"
-
-#: ../../standalone/drakbackup_.c:2989
-#, fuzzy
-msgid "Backup Now from configuration file"
-msgstr "Źąķōićóšąöū˙ ńåņźi"
-
-#: ../../standalone/drakbackup_.c:2999
-#, fuzzy
-msgid "View Backup Configuration."
-msgstr "Źąķōićóšąöū˙ ńåņźi"
-
-#: ../../standalone/drakbackup_.c:3020
-#, fuzzy
-msgid "Wizard Configuration"
-msgstr "Ķąńņšīéźą"
-
-#: ../../standalone/drakbackup_.c:3024
-#, fuzzy
-msgid "Advanced Configuration"
-msgstr "Ēąźąķ÷żķķå ķąńņšīéźi"
-
-#: ../../standalone/drakbackup_.c:3028
-#, fuzzy
-msgid "Backup Now"
-msgstr "Ķąńņš. ōąéėąāūõ ńińņżģą¢"
-
-#: ../../standalone/drakbackup_.c:3053
-msgid "Drakbackup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3104
-msgid ""
-"options description:\n"
-"\n"
-" In this step Drakbackup allow you to change:\n"
-"\n"
-" - The compression mode:\n"
-" \n"
-" If you check bzip2 compression, you will compress\n"
-" your data better than gzip (about 2-10 %).\n"
-" This option is not checked by default because\n"
-" this compression mode needs more time ( about 1000% more).\n"
-" \n"
-" - The update mode:\n"
-"\n"
-" This option will update your backup, but this\n"
-" option is not really useful because you need to\n"
-" decompress your backup before you can update it.\n"
-" \n"
-" - the .backupignore mode:\n"
-"\n"
-" Like with cvs, Drakbackup will ignore all references\n"
-" included in .backupignore files in each directories.\n"
-" ex: \n"
-" /*> cat .backupignore*/\n"
-" *.o\n"
-" *~\n"
-" ...\n"
-" \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3134
-msgid ""
-"\n"
-" Some errors during sendmail are caused by \n"
-" a bad configuration of postfix. To solve it you have to\n"
-" set myhostname or mydomain in /etc/postfix/main.cf\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3142
-msgid ""
-"options description:\n"
-"\n"
-" - Backup system files:\n"
-" \n"
-"\tThis option allows you to backup your /etc directory,\n"
-"\twhich contains all configuration files. Please be\n"
-"\tcareful during the restore step to not overwrite:\n"
-"\t\t/etc/passwd \n"
-"\t\t/etc/group \n"
-"\t\t/etc/fstab\n"
-"\n"
-" - Backup User files: \n"
-"\n"
-"\tThis option allows you select all users that you want \n"
-"\tto backup.\n"
-"\tTo preserve disk space, it is recommended that you \n"
-"\tdo not include web browser's cache.\n"
-"\n"
-" - Backup Other files: \n"
-"\n"
-"\tThis option allows you to add more data to save.\n"
-"\tWith the other backup it's not possible at the \n"
-"\tmoment to select select incremental backup.\t\t\n"
-" \n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerful \n"
-"\toption for backup. This option allows you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed afterward.\n"
-"\tThen you will be able, during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this option all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3181
-msgid ""
-"restore description:\n"
-" \n"
-"Only the most recent date will be used ,because with incremental \n"
-"backups it is necesarry to restore one by one each older backups.\n"
-"\n"
-"So if you don't like to restore an user please unselect all his\n"
-"check box.\n"
-"\n"
-"Otherwise, you are able to select only one of this\n"
-"\n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerfull \n"
-"\toption to use backup, this option allow you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed after.\n"
-"\tSo you will be able during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this options all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3207 ../../standalone/drakbackup_.c:3282
-msgid ""
-" Copyright (C) 2001 MandrakeSoft by DUPONT Sebastien <dupont_s\\@epita.fr>"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3209 ../../standalone/drakbackup_.c:3284
-msgid ""
-" This program is free software; you can redistribute it and/or modify\n"
-" it under the terms of the GNU General Public License as published by\n"
-" the Free Software Foundation; either version 2, or (at your option)\n"
-" any later version.\n"
-"\n"
-" This program is distributed in the hope that it will be useful,\n"
-" but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-" GNU General Public License for more details.\n"
-"\n"
-" You should have received a copy of the GNU General Public License\n"
-" along with this program; if not, write to the Free Software\n"
-" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3223
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select: \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, DrakBackup will remove \n"
-" your original directory and verify that all \n"
-" backup files are not corrupted. It is recommended \n"
-" you do a last backup before restoring.\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3261
-msgid ""
-"options description:\n"
-"\n"
-"Please be careful when you are using ftp backup, because only \n"
-"backups that are already built are sent to the server.\n"
-"So at the moment, you need to build the backup on your hard \n"
-"drive before sending it to the server.\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3270
-msgid ""
-"\n"
-"Restore Backup Problems:\n"
-"\n"
-"During the restore step, Drakbackup will verify all your\n"
-"backup files before restoring them.\n"
-"Before the restore, Drakbackup will remove \n"
-"your original directory, and you will loose all your \n"
-"data. It is important to be careful and not modify the \n"
-"backup data files by hand.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3298
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, Drakbackup will remove\n"
-" your original directory and verify that all\n"
-" backup files are not corrupted. It is recommended\n"
-" you do a last backup before restoring.\n"
-" \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakboot_.c:58
-#, c-format
-msgid "Installation of %s failed. The following error occured:"
-msgstr "Óńņąė˙āąķķå %s ķå ąņšūģąėąń˙. Óēķiźėą ķąńņóļķą˙ ļąģūėźą:"
-
-#: ../../standalone/drakfont_.c:229
-msgid "Search installed fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:231
-msgid "Unselect fonts installed"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:252
-msgid "parse all fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:253
-#, fuzzy
-msgid "no fonts found"
-msgstr "Ķå ēķąéųėi %s"
-
-#: ../../standalone/drakfont_.c:261 ../../standalone/drakfont_.c:303
-#: ../../standalone/drakfont_.c:352 ../../standalone/drakfont_.c:410
-#: ../../standalone/drakfont_.c:417 ../../standalone/drakfont_.c:443
-#: ../../standalone/drakfont_.c:455 ../../standalone/drakfont_.c:468
-#, fuzzy
-msgid "done"
-msgstr "Ēšīįėåķą"
-
-#: ../../standalone/drakfont_.c:265
-msgid "could not find any font in your mounted partitions"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:301
-msgid "Reselect correct fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:304
-msgid "could not find any font.\n"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:327
-msgid "Search fonts in installed list"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:350
-#, fuzzy
-msgid "Fonts copy"
-msgstr "Ōąšģąņąāąöü äūńźåņó"
-
-#: ../../standalone/drakfont_.c:353
-#, fuzzy
-msgid "True Type fonts installation"
-msgstr "Ļąäšūõņī¢źą ¢ńņąė˙āąķüķ˙"
-
-#: ../../standalone/drakfont_.c:357
-msgid "please wait during ttmkfdir..."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:359
-msgid "True Type install done"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:366 ../../standalone/drakfont_.c:382
-msgid "Fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:370 ../../standalone/drakfont_.c:386
-#: ../../standalone/drakfont_.c:406
-msgid "type1inst building"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:375 ../../standalone/drakfont_.c:390
-msgid "Ghostscript referencing"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:397
-msgid "ttf fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:401
-msgid "pfm fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:411
-msgid "Suppress temporary Files"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:414
-#, fuzzy
-msgid "Restart XFS"
-msgstr "ąįģåęąāąķķå"
-
-#: ../../standalone/drakfont_.c:453 ../../standalone/drakfont_.c:463
-msgid "Suppress Fonts Files"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:465
-#, fuzzy
-msgid "xfs restart"
-msgstr "ąįģåęąāąķķå"
-
-#: ../../standalone/drakfont_.c:472 ../../standalone/drakfont_.c:760
-msgid ""
-"Before installing any fonts, be sure that you have the right to use and "
-"install them on your system.\n"
-"\n"
-"-You can install the fonts using the normal way. In rare cases, bogus fonts "
-"may hang up your X Server."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:547
-#, fuzzy
-msgid "Fonts Importation"
-msgstr "Ōąšģąņąāąķķå šąēäēåėą¢"
-
-#: ../../standalone/drakfont_.c:562
-msgid "Get Windows Fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:564
-#, fuzzy
-msgid "Uninstall Fonts"
-msgstr "Āūäąėåķķå āūįšąķūõ RPM-ļąźåņą¢ ē ńińņżģū"
-
-#: ../../standalone/drakfont_.c:568
-#, fuzzy
-msgid "Advanced Options"
-msgstr "Ēąźąķ÷żķķå ķąńņšīéźi"
-
-#: ../../standalone/drakfont_.c:570
-#, fuzzy
-msgid "Font List"
-msgstr "Źšīļźą ģąķöišąāąķķ˙"
-
-#: ../../standalone/drakfont_.c:739
-#, fuzzy
-msgid "Choose the applications that will support the fonts :"
-msgstr "Āūįąš šąēäēåėą¢ äė˙ ōąšģąņąāąķķ˙"
-
-#: ../../standalone/drakfont_.c:743
-msgid "Ghostscript"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:747
-#, fuzzy
-msgid "StarOffice"
-msgstr "äīįšą"
-
-#: ../../standalone/drakfont_.c:751
-#, fuzzy
-msgid "Abiword"
-msgstr "Ąäģ˙ķiöü"
-
-#: ../../standalone/drakfont_.c:755
-#, fuzzy
-msgid "Generic Printers"
-msgstr "Ļšūķņżš"
-
-#: ../../standalone/drakfont_.c:792
-msgid "Select the font file or directory and click on 'Add'"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:828
-#, fuzzy
-msgid "Install List"
-msgstr "Óńņąė˙āąķķå ńińņżģū"
-
-#: ../../standalone/drakfont_.c:858
-msgid "click here if you are sure."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:860
-msgid "here if no."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:897
-msgid "Unselected All"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:899
-#, fuzzy
-msgid "Selected All"
-msgstr "Ąį˙šūöå ōąéė"
-
-#: ../../standalone/drakfont_.c:901
-#, fuzzy
-msgid "Remove List"
-msgstr "Ąääąėåķū ļšūķņżš"
-
-#: ../../standalone/drakfont_.c:919 ../../standalone/drakfont_.c:939
-msgid "Initials tests"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:920
-#, fuzzy
-msgid "Copy fonts on your system"
-msgstr "Ó āąųąé ń³ńņżģå ķ˙ģą ķiāīäķąćą ńåņźąāąćą ąäąļņąšą!"
-
-#: ../../standalone/drakfont_.c:921
-msgid "Install & convert Fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:922
-#, fuzzy
-msgid "Post Install"
-msgstr "Óńņąėø¢źą"
-
-#: ../../standalone/drakfont_.c:940
-#, fuzzy
-msgid "Remove fonts on your system"
-msgstr "Ó āąųąé ń³ńņżģå ķ˙ģą ķiāīäķąćą ńåņźąāąćą ąäąļņąšą!"
-
-#: ../../standalone/drakfont_.c:941
-#, fuzzy
-msgid "Post Uninstall"
-msgstr "Ēąźąķ÷żķķå ¢ńņąė˙āąķķ˙"
-
-#: ../../standalone/drakgw_.c:43 ../../standalone/drakgw_.c:200
-msgid "Internet Connection Sharing"
-msgstr "Ńóģåńķąå Iķņżšķżņ-ēėó÷żķķå"
-
-#: ../../standalone/drakgw_.c:138
-msgid "Internet Connection Sharing currently enabled"
-msgstr "Ńóģåńķąå Iķņżšķżņ-ēėó÷żķķå ēąšąē ģąć÷ūģą"
-
-#: ../../standalone/drakgw_.c:139
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently enabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:143
-#, fuzzy
-msgid "disable"
-msgstr "Ņąįėiöą"
-
-#: ../../standalone/drakgw_.c:143 ../../standalone/drakgw_.c:168
-msgid "dismiss"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:143 ../../standalone/drakgw_.c:168
-#, fuzzy
-msgid "reconfigure"
-msgstr "Ķąńņšīéźą X Window"
-
-#: ../../standalone/drakgw_.c:146
-#, fuzzy
-msgid "Disabling servers..."
-msgstr "Āūēķą÷żķķå ļšūėąäą¢..."
-
-#: ../../standalone/drakgw_.c:154
-#, fuzzy
-msgid "Internet connection sharing is now disabled."
-msgstr "Ńóģåńķąå Iķņżšķżņ-ēėó÷żķķå ēąšąē ēąįąšīķåķą"
-
-#: ../../standalone/drakgw_.c:163
-msgid "Internet Connection Sharing currently disabled"
-msgstr "Ńóģåńķąå Iķņżšķżņ-ēėó÷żķķå ēąšąē ēąįąšīķåķą"
-
-#: ../../standalone/drakgw_.c:164
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently disabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:168
-#, fuzzy
-msgid "enable"
-msgstr "Ņąįėiöą"
-
-#: ../../standalone/drakgw_.c:175
-msgid "Enabling servers..."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:180
-#, fuzzy
-msgid "Internet connection sharing is now enabled."
-msgstr "Ńóģåńķąå Iķņżšķżņ-ēėó÷żķķå ēąšąē ģąć÷ūģą"
-
-#: ../../standalone/drakgw_.c:201
-#, fuzzy
-msgid ""
-"You are about to configure your computer to share its Internet connection.\n"
-"With that feature, other computers on your local network will be able to use "
-"this computer's Internet connection.\n"
-"\n"
-"Note: you need a dedicated Network Adapter to set up a Local Area Network "
-"(LAN)."
-msgstr ""
-"Āąų źąģļ'žņąš ģīęą įūöü ńźąķō³ćóšąāąķū ķą ńóģåńķąå āūźąšūńņąķķå\n"
-" ²ķņżšķżņó (Internet Connection Sharing)?\n"
-"\n"
-"Ēą¢āąćą: āąģ ļąņšżįķū ńåņźąāū ąäąļņąš äė˙ ļąäźėž÷żķķ˙ äą ĖĀŃ.\n"
-"\n"
-"Āū ęąäąåöå óńņąė˙āąöü ńóģåńķū äīńņóļ äą Internet?"
-
-#: ../../standalone/drakgw_.c:227
-#, c-format
-msgid "Interface %s (using module %s)"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:228
-#, fuzzy, c-format
-msgid "Interface %s"
-msgstr "Ńåņźąāū iķņżšōåéń"
-
-#: ../../standalone/drakgw_.c:236
-msgid "No network adapter on your system!"
-msgstr "Ó āąųąé ń³ńņżģå ķ˙ģą ķiāīäķąćą ńåņźąāąćą ąäąļņąšą!"
-
-#: ../../standalone/drakgw_.c:237
-msgid ""
-"No ethernet network adapter has been detected on your system. Please run the "
-"hardware configuration tool."
-msgstr ""
-"Ķi āīäķū ethernet ńåņźąāū ąäąļņąš ó āąųąé ńińņżģå ķå āūēķą÷ąķū. Źąėi ėąńźą, "
-"ńźąšūńņąéöå źąķōićóšąöūéķū iķńņšóģżķņ."
-
-#: ../../standalone/drakgw_.c:243
-msgid "Network interface"
-msgstr "Ńåņźąāū iķņżšōåéń"
-
-#: ../../standalone/drakgw_.c:244
-#, c-format
-msgid ""
-"There is only one configured network adapter on your system:\n"
-"\n"
-"%s\n"
-"\n"
-"I am about to setup your Local Area Network with that adapter."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:253
-msgid ""
-"Please choose what network adapter will be connected to your Local Area "
-"Network."
-msgstr ""
-"Źąėi ėąńźą, ąį˙šūöå ńåņźąāū ąäąļņąš, ˙ź³ įóäēå āūźąšūńņąķū äė˙ äąėó÷żķķ˙ äą "
-"āąųąé ėąźąėüķąé ńåņźi."
-
-#: ../../standalone/drakgw_.c:271
-#, fuzzy
-msgid "Network interface already configured"
-msgstr "Ģąķiņīš ļąźóėü ķå ķąńņšīåķū"
-
-#: ../../standalone/drakgw_.c:272
-#, c-format
-msgid ""
-"Warning, the network adapter (%s) is already configured.\n"
-"\n"
-"Do you want an automatic re-configuration?\n"
-"\n"
-"You can do it manually but you need to know what you're doing."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:277
-#, fuzzy
-msgid "Automatic reconfiguration"
-msgstr "Ķąńņšīéźą ģąäżģó"
-
-#: ../../standalone/drakgw_.c:278
-#, fuzzy
-msgid "Show current interface configuration"
-msgstr "Ķąńņšīéźą ēėó÷żķķ˙ ē Iķņżšķżņąģ"
-
-#: ../../standalone/drakgw_.c:280
-#, c-format
-msgid ""
-"Current configuration of `%s':\n"
-"\n"
-"Network: %s\n"
-"IP address: %s\n"
-"IP attribution: %s\n"
-"Driver: %s"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:292
-msgid ""
-"I can keep your current configuration and assume you already set up a DHCP "
-"server; in that case please verify I correctly read the C-Class Network that "
-"you use for your local network; I will not reconfigure it and I will not "
-"touch your DHCP server configuration.\n"
-"\n"
-"Else, I can reconfigure your interface and (re)configure a DHCP server for "
-"you.\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:297
-msgid "C-Class Local Network"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:298
-#, fuzzy
-msgid "(This) DHCP Server IP"
-msgstr "IP ńåšāåšą SMB"
-
-#: ../../standalone/drakgw_.c:299
-msgid "Re-configure interface and DHCP server"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:306
-msgid "The Local Network did not finish with `.0', bailing out."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:317
-#, c-format
-msgid "Potential LAN address conflict found in current config of %s!\n"
-msgstr "Ļąņżķöūéķū ąäšąń ĖĀŃ źąķōėiźņóå ē į˙ćó÷ąé źąķōićóšąöū˙é %s!\n"
-
-#: ../../standalone/drakgw_.c:325 ../../standalone/drakgw_.c:331
-msgid "Firewalling configuration detected!"
-msgstr "Ēķīéäēåķą ń³ńņżģą ńåņźąāąé į˙ńļåź³ (firewall)!"
-
-#: ../../standalone/drakgw_.c:326 ../../standalone/drakgw_.c:332
-msgid ""
-"Warning! An existing firewalling configuration has been detected. You may "
-"need some manual fix after installation."
-msgstr ""
-"Óāąćą! Ēķīéäēåķą ³ńķóž÷ą˙ ńińņżģą ńåņźąāąé į˙ńļåźi (firewall). Āąģ ģąć÷ūģą "
-"ńļąņšżį³ööą ńźąšżźņąāąöü ˙å ļąńė˙ ¢ńņąė˙āąķķ˙."
-
-#: ../../standalone/drakgw_.c:340
-#, fuzzy
-msgid "Configuring..."
-msgstr "Ķąńņšīéźą IDE"
-
-#: ../../standalone/drakgw_.c:341
-msgid "Configuring scripts, installing software, starting servers..."
-msgstr "Źąķō³ćóšąöū˙ ńöżķąšą¢, óńņąė˙āąķķå ĻĒ, ēąļóńź ńėóęįą¢..."
-
-#: ../../standalone/drakgw_.c:378
-#, c-format
-msgid "Problems installing package %s"
-msgstr "Ļšąįėåģū ē óńņąė˙āąķķåģ ļąźåņó %s"
-
-#: ../../standalone/drakgw_.c:672
-msgid ""
-"Everything has been configured.\n"
-"You may now share Internet connection with other computers on your Local "
-"Area Network, using automatic network configuration (DHCP)."
-msgstr ""
-"Óńå ąäźąķō³ćóšąāąķą.\n"
-"Ēąšąē āū ģīęąöå ńóģåńķą āūźąšūńņī¢āąöü ļąäźėž÷żķķå äą Internet\n"
-"ē ³ķųūģ³ źąģļ'žņżšąģ³ ¢ āąųąé ĖĀŃ, źąšūńņąž÷ūń˙ ą¢ņąģąņū÷ķūģ\n"
-"źąķō³ćóšąāąķķåģ (DHCP)."
-
-#: ../../standalone/drakgw_.c:689
-msgid "The setup has already been done, but it's currently disabled."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:690
-msgid "The setup has already been done, and it's currently enabled."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:691
-#, fuzzy
-msgid "No Internet Connection Sharing has ever been configured."
-msgstr "Ńóģåńķąå Iķņżšķżņ-ēėó÷żķķå ēąšąē ģąć÷ūģą"
-
-#: ../../standalone/drakgw_.c:696
-#, fuzzy
-msgid "Internet connection sharing configuration"
-msgstr "Iķņżšķżņ ēėó÷żķķå i źąķōićóšąöū˙"
-
-#: ../../standalone/drakgw_.c:703
-#, fuzzy, c-format
-msgid ""
-"Welcome to the Internet Connection Sharing utility!\n"
-"\n"
-"%s\n"
-"\n"
-"Click on Configure to launch the setup wizard."
-msgstr "Ńóģåńķąå Iķņżšķżņ-ēėó÷żķķå"
-
-#: ../../standalone/draknet_.c:80
-#, fuzzy, c-format
-msgid "Network configuration (%d adapters)"
-msgstr "Źąķōićóšąöū˙ ńåņźi"
-
-#: ../../standalone/draknet_.c:87 ../../standalone/draknet_.c:595
-#, fuzzy
-msgid "Profile: "
-msgstr "ļąģūėźą ģąķöišąāąķķ˙: "
-
-#: ../../standalone/draknet_.c:95
-msgid "Del profile..."
-msgstr ""
-
-#: ../../standalone/draknet_.c:101
-msgid "Profile to delete:"
-msgstr ""
-
-#: ../../standalone/draknet_.c:129
-msgid "New profile..."
-msgstr ""
-
-#: ../../standalone/draknet_.c:135
-msgid ""
-"Name of the profile to create (the new profile is created as a copy of the "
-"current one) :"
-msgstr ""
-
-#: ../../standalone/draknet_.c:161
-#, fuzzy
-msgid "Hostname: "
-msgstr "Iģ˙ ģąųūķū"
-
-#: ../../standalone/draknet_.c:168
-msgid "Internet access"
-msgstr ""
-
-#: ../../standalone/draknet_.c:181
-#, fuzzy
-msgid "Type:"
-msgstr "Ņūļ: "
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-msgid "Gateway:"
-msgstr "Ųėžē:"
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-msgid "Interface:"
-msgstr ""
-
-#: ../../standalone/draknet_.c:195
-msgid "Status:"
-msgstr ""
-
-#: ../../standalone/draknet_.c:202
-msgid "Wait please"
-msgstr ""
-
-#: ../../standalone/draknet_.c:220
-#, fuzzy
-msgid "Configure Internet Access..."
-msgstr "Ķąńņšīéźą ńėóęįą¢"
-
-#: ../../standalone/draknet_.c:227 ../../standalone/draknet_.c:449
-#, fuzzy
-msgid "LAN configuration"
-msgstr "Ķąńņšīéźą ADSL"
-
-#: ../../standalone/draknet_.c:232
-#, fuzzy
-msgid "Driver"
-msgstr "ńåšāåš"
-
-#: ../../standalone/draknet_.c:232
-#, fuzzy
-msgid "Interface"
-msgstr "Ńåņźąāū iķņżšōåéń"
-
-#: ../../standalone/draknet_.c:232
-msgid "Protocol"
-msgstr ""
-
-#: ../../standalone/draknet_.c:232
-#, fuzzy
-msgid "State"
-msgstr "Ńņąšņąāąå ģåķž"
-
-#: ../../standalone/draknet_.c:244
-#, fuzzy
-msgid "Configure Local Area Network..."
-msgstr "Ķąńņšīéźą ėąźąėüķąé ńåņźi"
-
-#: ../../standalone/draknet_.c:256
-msgid "Click here to launch the wizard ->"
-msgstr ""
-
-#: ../../standalone/draknet_.c:257
-msgid "Wizard..."
-msgstr "Ģąéńņąš ńņāąšżķķ˙..."
-
-#: ../../standalone/draknet_.c:283
-msgid "Apply"
-msgstr ""
-
-#: ../../standalone/draknet_.c:302
-#, fuzzy
-msgid "Please Wait... Applying the configuration"
-msgstr "Ļšąāåšźą ļąšąģåņšą¢ ķąńņšīéźi"
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-#, fuzzy
-msgid "Connected"
-msgstr "Iģ˙ ēėó÷żķķ˙"
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-#, fuzzy
-msgid "Not connected"
-msgstr "Šąēģåšźąāąķķå"
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Connect..."
-msgstr ""
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Disconnect..."
-msgstr ""
-
-#: ../../standalone/draknet_.c:404
-msgid ""
-"Warning, another Internet connection has been detected, maybe using your "
-"network"
-msgstr ""
-
-#: ../../standalone/draknet_.c:431
-msgid ""
-"You don't have any configured interface.\n"
-"Configure them first by clicking on 'Configure'"
-msgstr ""
-
-#: ../../standalone/draknet_.c:453
-#, fuzzy
-msgid "LAN Configuration"
-msgstr "Ķąńņšīéźą"
-
-#: ../../standalone/draknet_.c:464
-#, c-format
-msgid "Adapter %s: %s"
-msgstr ""
-
-#: ../../standalone/draknet_.c:470
-msgid "Boot Protocol"
-msgstr ""
-
-#: ../../standalone/draknet_.c:471
-msgid "Started on boot"
-msgstr ""
-
-#: ../../standalone/draknet_.c:472
-msgid "DHCP client"
-msgstr ""
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-#, fuzzy
-msgid "activate now"
-msgstr "Ąźņū¢ķū"
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-#, fuzzy
-msgid "deactivate now"
-msgstr "Ąźņū¢ķū"
-
-#: ../../standalone/draknet_.c:503
-msgid ""
-"This interface has not been configured yet.\n"
-"Launch the configuration wizard in the main window"
-msgstr ""
-
-#: ../../standalone/draknet_.c:560
-msgid ""
-"You don't have any internet connection.\n"
-"Create one first by clicking on 'Configure'"
-msgstr ""
-
-#: ../../standalone/draknet_.c:584
-#, fuzzy
-msgid "Internet connection configuration"
-msgstr "Iķņżšķżņ ēėó÷żķķå i źąķōićóšąöū˙"
-
-#: ../../standalone/draknet_.c:588
-#, fuzzy
-msgid "Internet Connection Configuration"
-msgstr "Iķņżšķżņ ēėó÷żķķå i źąķōićóšąöū˙"
-
-#: ../../standalone/draknet_.c:597
-#, fuzzy
-msgid "Connection type: "
-msgstr "Iģ˙ ēėó÷żķķ˙"
-
-#: ../../standalone/draknet_.c:603
-msgid "Parameters"
-msgstr ""
-
-#: ../../standalone/draknet_.c:621
-msgid "Gateway"
-msgstr "Ųėžē"
-
-#: ../../standalone/draknet_.c:630
-msgid "Ethernet Card"
-msgstr ""
-
-#: ../../standalone/draknet_.c:631
-msgid "DHCP Client"
-msgstr ""
-
-#: ../../standalone/draksec_.c:31
-msgid "Setting security level"
-msgstr "Ķąńņšīéźi ¢ēšī¢ķ˙ į˙ńļåźi"
-
-#: ../../standalone/drakxconf_.c:47
-#, fuzzy
-msgid "Control Center"
-msgstr "Äąėó÷żķķå äą Iķņżšķżņó"
-
-#: ../../standalone/drakxconf_.c:48
-msgid "Choose the tool you want to use"
-msgstr "Ąį˙šūöå iķńņšóģåķņ, ˙źi ęąäąåöå ńźąšūńņąöü"
-
-#: ../../standalone/drakxtv_.c:48
-#, fuzzy
-msgid "Canada (cable)"
-msgstr "Źąķąäńźi (Źāåįżź)"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (bcast)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (cable)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (cable-hrc)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:49
-msgid "China (bcast)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:49
-msgid "Japan (bcast)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:49
-msgid "Japan (cable)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "East Europe"
-msgstr "Å¢šīļą"
-
-#: ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "Ireland"
-msgstr "Ińėąķäńźi"
-
-#: ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "West Europe"
-msgstr "Å¢šīļą"
-
-#: ../../standalone/drakxtv_.c:51
-#, fuzzy
-msgid "Australia"
-msgstr "ļąńė˙äī¢ķą˙"
-
-#: ../../standalone/drakxtv_.c:51
-msgid "Newzealand"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:52
-msgid "South Africa"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:53
-msgid "Argentina"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:58
-msgid ""
-"Please,\n"
-"type in your tv norm and country"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:60
-msgid "TV norm :"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:61
-msgid "Area :"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:65
-msgid "Scanning for TV channels in progress ..."
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:72
-msgid "Scanning for TV channels"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:83
-msgid "No TV Card detected!"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:84
-msgid ""
-"No TV Card has been detected on your machine. Please verify that a Linux-"
-"supported Video/TV Card is correctly plugged in.\n"
-"\n"
-"\n"
-"You can visit our hardware database at:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/hardware.php3"
-msgstr ""
-
-#: ../../standalone/keyboarddrake_.c:16
-msgid "usage: keyboarddrake [--expert] [keyboard]\n"
-msgstr ""
-
-#: ../../standalone/keyboarddrake_.c:29
-msgid "Please, choose your keyboard layout."
-msgstr "Źąėi ėąńźą, ąį˙šūöå ņūļ źėąāi˙ņóšū."
-
-#: ../../standalone/keyboarddrake_.c:36
-msgid "Do you want the BackSpace to return Delete in console?"
-msgstr "Āū ęąäąåöå źąį BackSpace ļšąöąāą¢ ó źąķńīė³ ˙ź Delete?"
-
-#: ../../standalone/livedrake_.c:24
-#, fuzzy
-msgid "Change Cd-Rom"
-msgstr "Ēģ˙ķiöü ļąģåšū żźšąķó"
-
-#: ../../standalone/livedrake_.c:25
-#, fuzzy
-msgid ""
-"Please insert the Installation Cd-Rom in your drive and press Ok when done.\n"
-"If you don't have it, press Cancel to avoid live upgrade."
-msgstr ""
-"Ēģ˙ķiöå āąų Cd-Rom!\n"
-"\n"
-"Źąėi ėąńźą, óńņą¢öå Cd-Rom, ļąēķą÷ąķū \"%s\", ó āąų äūńźąāīä i ķąöińķiöå Oź "
-"ļąńė˙.\n"
-"Źąėi āū ķå ģąåöå ˙ćī, ķąöińķiöå Ąäģ˙ķiöü, źąį ąäģ˙ķiöü óńņąė˙āąķķå ē ćżņąćą "
-"Cd."
-
-#: ../../standalone/livedrake_.c:35
-msgid "Unable to start live upgrade !!!\n"
-msgstr "Ķåģąć÷ūģą ēąļóńö³öü live upgrade !!!\n"
-
-#: ../../standalone/localedrake_.c:32
-msgid "The change is done, but to be effective you must logout"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:85 ../../standalone/logdrake_.c:501
-msgid "logdrake"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:95
-msgid "Show only for the selected day"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:102
-msgid "/File/_New"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:102
-msgid "<control>N"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:103
-msgid "/File/_Open"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:103
-msgid "<control>O"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:104
-msgid "/File/_Save"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:104
-msgid "<control>S"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:105
-msgid "/File/Save _As"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:106
-msgid "/File/-"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:108
-msgid "/_Options"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:109
-msgid "/Options/Test"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:110
-msgid "/_Help"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:111
-msgid "/Help/_About..."
-msgstr ""
-
-#: ../../standalone/logdrake_.c:118
-msgid "-misc-fixed-medium-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:119
-msgid "-misc-fixed-bold-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:173
-#, fuzzy
-msgid "User"
-msgstr "Iģ˙ źąšūńņąėüķiźó:"
-
-#: ../../standalone/logdrake_.c:174
-#, fuzzy
-msgid "Messages"
-msgstr "Ļšąāåšźą ļąšņī¢"
-
-#: ../../standalone/logdrake_.c:175
-msgid "Syslog"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:176
-msgid "Mandrake Tools Explanations"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:179
-msgid "search"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:185
-msgid "A tool to monitor your logs"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:186
-msgid "Settings"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:191
-msgid "matching"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:192
-msgid "but not matching"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:196
-msgid "Choose file"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:201
-msgid "Calendar"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:211
-msgid "Content of the file"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:215 ../../standalone/logdrake_.c:390
-msgid "Mail/SMS alert"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:268
-#, c-format
-msgid "please wait, parsing file: %s"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:405
-#, fuzzy
-msgid "Mail/SMS alert configuration"
-msgstr "Ķąńņšīéźą ADSL"
-
-#: ../../standalone/logdrake_.c:406
-msgid ""
-"Welcome to the mail/SMS configuration utility.\n"
-"\n"
-"Here, you'll be able to set up the alert system.\n"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:414
-msgid "proftpd"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:417
-#, fuzzy
-msgid "sshd"
-msgstr "öåķü"
-
-#: ../../standalone/logdrake_.c:418
-msgid "webmin"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:419
-#, fuzzy
-msgid "xinetd"
-msgstr "Ext2"
-
-#: ../../standalone/logdrake_.c:422
-#, fuzzy
-msgid "service setting"
-msgstr "ļšūėąäą"
-
-#: ../../standalone/logdrake_.c:423
-msgid ""
-"You will receive an alert if one of the selected service is no more running"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:433
-#, fuzzy
-msgid "load setting"
-msgstr "ōąšģąņąāąķķå"
-
-#: ../../standalone/logdrake_.c:434
-msgid "You will receive an alert if the load is higher than this value"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:447
-#, fuzzy
-msgid "alert configuration"
-msgstr "Ķąńņšīéźą"
-
-#: ../../standalone/logdrake_.c:448
-msgid "Configure the way the system will alert you"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:478
-msgid "Save as.."
-msgstr ""
-
-#: ../../standalone/mousedrake_.c:49
-msgid "Please, choose the type of your mouse."
-msgstr "źąėi ėąńźą, ļąēķą÷öå ņūļ āąųąé ģūųū."
-
-#: ../../standalone/mousedrake_.c:59
-msgid "no serial_usb found\n"
-msgstr "serial_usb ķå ēķīéäēåķ\n"
-
-#: ../../standalone/mousedrake_.c:63
-msgid "Emulate third button?"
-msgstr "Żģóė˙āąöü ņšżöžž źķīļźó?"
-
-#: ../../standalone/scannerdrake_.c:53
-#, c-format
-msgid "%s found on %s, configure it ?"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:60
-#, fuzzy
-msgid "Select a scanner"
-msgstr "Ąį˙šūöå āiäżąźąšņó"
-
-#: ../../standalone/scannerdrake_.c:80
-#, c-format
-msgid "This %s scanner is unsupported"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:94
-#, c-format
-msgid ""
-"Scannerdrake was not able to detect your %s scanner.\n"
-"Please select the device where your scanner is plugged"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:96
-#, fuzzy
-msgid "choose device"
-msgstr "Ēąćšóēą÷ķą˙ ļšūėąäą"
-
-#: ../../standalone/scannerdrake_.c:102
-#, c-format
-msgid ""
-"This %s scanner must be configured by printerdrake.\n"
-"You can launch printerdrake from the Mandrake Control Center in Hardware "
-"section."
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:107
-#, c-format
-msgid ""
-"Your %s scanner has been configured.\n"
-"You may now scan documents using ``XSane'' from Multimedia/Graphics in the "
-"applications menu."
-msgstr ""
-
-#: ../../standalone/tinyfirewall_.c:31
-#, fuzzy
-msgid "Firewalling Configuration"
-msgstr "Ēķīéäēåķą ń³ńņżģą ńåņźąāąé į˙ńļåź³ (firewall)!"
-
-#: ../../standalone/tinyfirewall_.c:44
-#, fuzzy
-msgid "Firewalling configuration"
-msgstr "Ēķīéäēåķą ń³ńņżģą ńåņźąāąé į˙ńļåź³ (firewall)!"
-
-#: ../../standalone/tinyfirewall_.c:79
-msgid ""
-"Firewalling\n"
-"\n"
-"You already have set up a firewall.\n"
-"Click on Configure to change or remove the firewall"
-msgstr ""
-
-#: ../../standalone/tinyfirewall_.c:83
-msgid ""
-"Firewalling\n"
-"\n"
-"Click on Configure to set up a standard firewall"
-msgstr ""
-
-#: ../../steps.pm_.c:14
-msgid "Choose your language"
-msgstr "Āūįąš ģīāū"
-
-#: ../../steps.pm_.c:15
-msgid "Select installation class"
-msgstr "Źėąń óńņąė˙āąķķ˙"
-
-#: ../../steps.pm_.c:16
-msgid "Hard drive detection"
-msgstr "Āūēķą÷żķķå ęīšńņźąćą äūńźó"
-
-#: ../../steps.pm_.c:17
-msgid "Configure mouse"
-msgstr "Ķąńņšīéźą ģūųū"
-
-#: ../../steps.pm_.c:18
-msgid "Choose your keyboard"
-msgstr "Āūįąš źėąāi˙ņóšū"
-
-#: ../../steps.pm_.c:19
-#, fuzzy
-msgid "Security"
-msgstr "źó÷ąšąāū"
-
-#: ../../steps.pm_.c:20
-msgid "Setup filesystems"
-msgstr "Ķąńņš. ōąéėąāūõ ńińņżģą¢"
-
-#: ../../steps.pm_.c:21
-msgid "Format partitions"
-msgstr "Ōąšģąņąāąķķå šąēäēåėą¢"
-
-#: ../../steps.pm_.c:22
-msgid "Choose packages to install"
-msgstr "Āūįąš ļąźåņą¢"
-
-#: ../../steps.pm_.c:23
-msgid "Install system"
-msgstr "Óńņąė˙āąķķå ńińņżģū"
-
-#: ../../steps.pm_.c:25
-msgid "Add a user"
-msgstr "Äąäąöü źąšūńņąėüķiźą"
-
-#: ../../steps.pm_.c:26
-msgid "Configure networking"
-msgstr "Ķąńņšīéźą ńåņźi"
-
-#: ../../steps.pm_.c:28
-msgid "Configure services"
-msgstr "Ķąńņšīéźą ńėóęįą¢"
-
-#: ../../steps.pm_.c:29
-msgid "Install bootloader"
-msgstr "Óńņąė˙āąķķå ēąćšóē÷ūźó"
-
-#: ../../steps.pm_.c:31
-msgid "Create a bootdisk"
-msgstr "Ńņāąšūöü ēąćš. äūńź"
-
-#: ../../steps.pm_.c:33
-msgid "Configure X"
-msgstr "Ķąńņšīéźą X Window"
-
-#: ../../steps.pm_.c:34
-#, fuzzy
-msgid "Install system updates"
-msgstr "Óńņąė˙āąķķå ńińņżģū"
-
-#: ../../steps.pm_.c:35
-msgid "Exit install"
-msgstr "Ēąźąķ÷żķķå ¢ńņąė˙āąķķ˙"
-
-#: ../../tinyfirewall.pm_.c:9
-msgid ""
-"tinyfirewall configurator\n"
-"\n"
-"This configures a personal firewall for this Mandrake Linux machine.\n"
-"For a powerful dedicated firewall solution, please look to the\n"
-"specialized MandrakeSecurity Firewall distribution."
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:14
-msgid ""
-"We'll now ask you questions about which services you'd like to allow\n"
-"the Internet to connect to. Please think carefully about these\n"
-"questions, as your computer's security is important.\n"
-"\n"
-"Please, if you're not currently using one of these services, firewall\n"
-"it off. You can change this configuration anytime you like by\n"
-"re-running this application!"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:21
-msgid ""
-"Are you running a web server on this machine that you need the whole\n"
-"Internet to see? If you are running a webserver that only needs to be\n"
-"accessed by this machine, you can safely answer NO here.\n"
-"\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:26
-msgid ""
-"Are you running a name server on this machine? If you didn't set one\n"
-"up to give away IP and zone information to the whole Internet, please\n"
-"answer no.\n"
-"\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:31
-msgid ""
-"Do you want to allow incoming Secure Shell (ssh) connections? This\n"
-"is a telnet-replacement that you might use to login. If you're using\n"
-"telnet now, you should definitely switch to ssh. telnet is not\n"
-"encrypted -- so some attackers can steal your password if you use\n"
-"it. ssh is encrypted and doesn't allow for this eavesdropping."
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:36
-msgid ""
-"Do you want to allow incoming telnet connections?\n"
-"This is horribly unsafe, as we explained in the previous screen. We\n"
-"strongly recommend answering No here and using ssh in place of\n"
-"telnet.\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:41
-msgid ""
-"Are you running an FTP server here that you need accessible to the\n"
-"Internet? If you are, we strongly recommend that you only use it for\n"
-"Anonymous transfers. Any passwords sent by FTP can be stolen by some\n"
-"attackers, since FTP also uses no encryption for transferring passwords.\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:46
-msgid ""
-"Are you running a mail server here? If you're sending you \n"
-"messages through pine, mutt or any other text-based mail client,\n"
-"you probably are. Otherwise, you should firewall this off.\n"
-"\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:51
-msgid ""
-"Are you running a POP or IMAP server here? This would\n"
-"be used to host non-web-based mail accounts for people via \n"
-"this machine.\n"
-"\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:56
-msgid ""
-"You appear to be running a 2.2 kernel. If your network IP\n"
-"is automatically set by a computer in your home or office \n"
-"(dynamically assigned), we need to allow for this. Is\n"
-"this the case?\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:61
-msgid ""
-"Is your computer getting time syncronized to another computer?\n"
-"Mostly, this is used by medium-large Unix/Linux organizations\n"
-"to synchronize time for logging and such. If you're not part\n"
-"of a larger office and haven't heard of this, you probably \n"
-"aren't."
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:66
-msgid ""
-"Configuration complete. May we write these changes to disk?\n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:82
-#, c-format
-msgid "Can't open %s: %s\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:84
-#, fuzzy, c-format
-msgid "Can't open %s for writing: %s\n"
-msgstr "Ļąģūėźą ąäźšūöö˙ %s äė˙ ēąļińó: %s"
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "No I don't need DHCP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "Yes I need DHCP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "No I don't need NTP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "Yes I need NTP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-msgid "Don't Save"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-#: ../../tinyfirewall.pm_.c:206
-msgid "Save & Quit"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:197 ../../tinyfirewall.pm_.c:201
-#, fuzzy
-msgid "Firewall Configuration Wizard"
-msgstr "Źąķōićóšąöū˙ ńåņźi"
-
-#: ../../tinyfirewall.pm_.c:199
-msgid "No (firewall this off from the internet)"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:200
-msgid "Yes (allow this through the firewall)"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:232
-#, fuzzy
-msgid "Please Wait... Verifying installed packages"
-msgstr "Ļąäšūõņī¢źą ¢ńņąė˙āąķüķ˙"
-
-#: ../../tinyfirewall.pm_.c:238
-#, c-format
-msgid ""
-"Failure installing the needed packages : %s and Bastille.\n"
-" Try to install them manually."
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Web/FTP"
-msgstr ""
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Network Computer (client)"
-msgstr "Ńåņźąāū ļšūķņżš (socket)"
-
-#: ../../share/compssUsers:999
-msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr ""
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Office"
-msgstr "äīįšą"
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Gnome Workstation"
-msgstr "Ķąāóźīāū˙ ļšūźėąäąķķ³"
-
-#: ../../share/compssUsers:999
-msgid "Tools for your Palm Pilot or your Visor"
-msgstr "²ķńņšóģåķņąėüķū˙ ńšīäź³ äė˙ Palm Pilot ³ Visor"
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Workstation"
-msgstr "Ķąāóźīāū˙ ļšūźėąäąķķ³"
-
-#: ../../share/compssUsers:999
-msgid "Firewall/Router"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Domain Name and Network Information Server"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-"Īō³ńķū˙ ļšąćšąģū: ļšąöżńąšū ńėīāą¢ (kword, abiword), żėåźņšīķū˙ ņąįė³öū, "
-"ąćė˙äąėüķ³ź³ pdf-ōąéėą¢, ³ ć.ä."
-
-#: ../../share/compssUsers:999
-msgid "Audio-related tools: mp3 or midi players, mixers, etc"
-msgstr "Ą¢äūøńšīäź³: ļšąéćšąāąėüķ³ź³ mp3 ³ midi, ģ³źųąšū ³ ć.ä."
-
-#: ../../share/compssUsers:999
-msgid "Books and Howto's on Linux and Free Software"
-msgstr "ķ³ć³ ³ Howto ļą Linux ³ Free Software"
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "KDE Workstation"
-msgstr "Ķąāóźīāū˙ ļšūźėąäąķķ³"
-
-#: ../../share/compssUsers:999
-msgid "Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Video"
-msgstr "Ģóėüņūģåäū˙ - ā³äżą"
-
-#: ../../share/compssUsers:999
-msgid "Set of tools for mail, news, web, file transfer, and chat"
-msgstr "Ķąįīš ³ķńņšóģåķņą¢ äė˙ ļīųņū, ķąā³ķą¢, web'ó, ļåšąäą÷ū ōąéėą¢, ³ chat"
-
-#: ../../share/compssUsers:999
-msgid "Database"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "PostgreSQL or MySQL database server"
-msgstr ""
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Tools to ease the configuration of your computer"
-msgstr "Öi ęąäąåöå ļšąņżńöišąāąöü ķąńņšīéźi?"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Sound"
-msgstr "Ģóėüņūģåäū˙ - ćóź"
-
-#: ../../share/compssUsers:999
-msgid "Utilities"
-msgstr "Óö³ė³ņū"
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Documentation"
-msgstr "Ą¢ņżķņūōiźąöū˙"
-
-#: ../../share/compssUsers:999
-msgid "Console Tools"
-msgstr "Źąķńīėüķū˙ ³ķńņšóģåķņąėüķū˙ ńšīäź³"
-
-#: ../../share/compssUsers:999
-msgid "Postfix mail server, Inn news server"
-msgstr ""
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Internet station"
-msgstr "Ķąńņšīéźą ēėó÷żķķ˙ ē Iķņżšķżņąģ"
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Multimedia station"
-msgstr "Ģóėüņūģåäū˙ - ćóź"
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Configuration"
-msgstr "Ķąńņšīéźą"
-
-#: ../../share/compssUsers:999
-msgid "More Graphical Desktops (Gnome, IceWM)"
-msgstr "Ųģąņ ćšąō³÷ķūõ ģżķąäężšą¢ Ļšąöī¢ķūõ ńņąėī¢(Gnome, IceWM)"
-
-#: ../../share/compssUsers:999
-msgid ""
-"The K Desktop Environment, the basic graphical environment with a collection "
-"of accompanying tools"
-msgstr ""
-"The K Desktop Environment - ąńķī¢ķąå ćšąō³÷ķąå ąń˙šīäēå ē źąėåźöū˙é "
-"³ķńņšóģåķņąėüķūõ ńšīäźą¢"
-
-#: ../../share/compssUsers:999
-msgid "Graphical Environment"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Apache, Pro-ftpd"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Tools to create and burn CD's"
-msgstr "²ķńņšóģåķņąėüķū˙ ńšīäź³ ńņāąšżķüķ˙ CD"
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Office Workstation"
-msgstr "Ķąāóźīāū˙ ļšūźėąäąķķ³"
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Server"
-msgstr "ńåšāåš"
-
-#: ../../share/compssUsers:999
-msgid "Gnome, Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Graphics programs such as The Gimp"
-msgstr "Ćšąō³÷ķū˙ ļšąćšąģū ņūļó The Gimp"
-
-#: ../../share/compssUsers:999
-msgid "DNS/NIS "
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "C and C++ development libraries, programs and include files"
-msgstr "Į³įė³˙ņżź³ ³ ļšąćšąģū äė˙ šąńļšąöī¢ź³ ķą Ń ³ Ń++"
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Network Computer server"
-msgstr "Ńåņźąāū ļšūķņżš (socket)"
-
-#: ../../share/compssUsers:999
-msgid "Mail/Groupware/News"
-msgstr ""
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Game station"
-msgstr "Ģóėüņūģåäū˙ - ćóź"
-
-#: ../../share/compssUsers:999
-msgid "Video players and editors"
-msgstr "Šżäąźņąšū ³ ļšąéćšąāąėüķ³ź³ ā³äżą"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Graphics"
-msgstr "Ģóėüņūģåäū˙ - Ćšąō³źą"
-
-#: ../../share/compssUsers:999
-msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr "Ēąįą¢ė˙ėüķū˙ ļšąćšąģū: ąšźąäū, ńņšąņżć³³ ³ ć.ä."
-
-#: ../../share/compssUsers:999
-msgid ""
-"Set of tools to read and send mail and news (pine, mutt, tin..) and to "
-"browse the Web"
-msgstr ""
-"Ļšūźėąäąķķ³ äė˙ ÷ūņąķķ˙ ³ ąäļšą¢ź³ ļīųņū ³ ķąā³ķą¢ (pine, mutt, tin...), "
-"Web ąćė˙äąėüķ³ź³"
-
-#: ../../share/compssUsers:999
-msgid "Archiving, emulators, monitoring"
-msgstr "Ąšõ³āąņąšū, żģóė˙ņąšū, ģąķ³ņīšūķć"
-
-#: ../../share/compssUsers:999
-msgid "Personal Finance"
-msgstr "Ļåšńąķąėüķū˙ ō³ķąķńū"
-
-#: ../../share/compssUsers:999
-msgid ""
-"A graphical environment with user-friendly set of applications and desktop "
-"tools"
-msgstr ""
-"Ćšąō³÷ķąå ąń˙šīäēå ńą ēšó÷ķūģ äēåė˙ āūźąšūńņąķķ˙ ķąįīšąģ ļšūźėąäąķķ˙¢ ³ "
-"³ķńņšóģåķņąėüķūõ ńšīäźą¢"
-
-#: ../../share/compssUsers:999
-msgid "Clients for different protocols including ssh"
-msgstr ""
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Internet gateway"
-msgstr "Ķąńņšīéźą ēėó÷żķķ˙ ē Iķņżšķżņąģ"
-
-#: ../../share/compssUsers:999
-msgid "Sound and video playing/editing programs"
-msgstr "Šżäąźņąšū ³ ļšąéćšąāąėüķ³ź³ ćóźó ³ ā³äżą"
-
-#: ../../share/compssUsers:999
-msgid "Other Graphical Desktops"
-msgstr "²ķųū˙ ćšąō³÷ķū˙ Ļšąöī¢ķū˙ ńņąėū"
-
-#: ../../share/compssUsers:999
-msgid "Editors, shells, file tools, terminals"
-msgstr "Šżäąźņąšū, ąįąėīķź³, ņżšģ³ķąėū"
-
-#: ../../share/compssUsers:999
-msgid "Programs to manage your finance, such as gnucash"
-msgstr "Ļšąćšąģū ź³šąāąķķ˙ āąųūģ³ ō³ķąķńąģ³, ņūļó gnucash"
-
-#: ../../share/compssUsers:999
-msgid "Personal Information Management"
-msgstr "Ģżķąäęąš ąńąį³ńņąé ³ķōąšģąöū³"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - CD Burning"
-msgstr "Ģóėüņūģåäū˙ - Ńņāąšżķķå CD"
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Scientific Workstation"
-msgstr "Ķąāóźīāū˙ ļšūźėąäąķķ³"
-
-#, fuzzy
-#~ msgid "About"
-#~ msgstr "Ąäģ˙ķiöü"
-
-#~ msgid "$f-$g %s)"
-#~ msgstr "$f-$g %s)"
-
-#~ msgid "None"
-#~ msgstr "Ķ˙ģą"
-
-#, fuzzy
-#~ msgid "Choose a default printer!"
-#~ msgstr "Ąį˙šūöå ąńķī¢ķąćą źąšūńņąėüķiźą:"
-
-#, fuzzy
-#~ msgid "Apply/Re-read printers"
-#~ msgstr "Ąääąėåķū ļšūķņżš"
-
-#~ msgid "You may now provide its options to module %s."
-#~ msgstr "Āū ķå ģīęąöå ēąäąöü īļöūi ģīäóėž %s."
-
-#~ msgid "mount failed"
-#~ msgstr "ļąģūėźą ģąķöišąāąķķ˙"
-
-#~ msgid "Low"
-#~ msgstr "Ńėąįū"
-
-#~ msgid "Medium"
-#~ msgstr "Ń˙šżäķi"
-
-#~ msgid ""
-#~ "Few improvements for this security level, the main one is that there are\n"
-#~ "more security warnings and checks."
-#~ msgstr ""
-#~ "Ćżņū óēšīāåķü į˙ńļåźi ģąå ųżšąć ļąė˙ļųżķķ˙¢, ó ļåšųóž ÷ąšćó\n"
-#~ "ļąā˙ėi÷ūėąń˙ źīėüźąńöü ļšąāåšąź i ļąļ˙šżäęąķķ˙¢."
-
-#, fuzzy
-#~ msgid "Art and Multimedia"
-#~ msgstr "Ģóėüņūģåäū˙"
-
-#, fuzzy
-#~ msgid "Export"
-#~ msgstr "Żźńļåšņ"
-
-#, fuzzy
-#~ msgid "Connect to Internet"
-#~ msgstr "Äąėó÷żķķå äą Iķņżšķżņó"
-
-#, fuzzy
-#~ msgid "Disconnect from Internet"
-#~ msgstr "Äąėó÷żķķå äą Iķņżšķżņó"
-
-#, fuzzy
-#~ msgid "Detected %s, do you want to set it up?"
-#~ msgstr "Ķą ˙źi äūńź ļåšąķåńö³?"
-
-#, fuzzy
-#~ msgid "Please choose the printer you want to set up."
-#~ msgstr "Āūįąš ļąźåņą¢ äė˙ ¢ńņąė˙āąķķ˙"
-
-#, fuzzy
-#~ msgid "Infos"
-#~ msgstr "Iķōąšģąöū˙"
-
-#, fuzzy
-#~ msgid "Windows Importation"
-#~ msgstr "Ķąāóźīāū˙ ļšūźėąäąķķ³"
-
-#, fuzzy
-#~ msgid ""
-#~ "Apache is a World Wide Web server. It is used to serve HTML files and "
-#~ "CGI."
-#~ msgstr ""
-#~ "Apache - ćżņą World Wide Web ńåšāåš. Øķ āūźąšūńņī¢ēāąåöą äė˙ "
-#~ "ąįńėóćī¢āąķķ˙\n"
-#~ "HTML ōąéėą¢ i CGI."
-
-#~ msgid ""
-#~ "named (BIND) is a Domain Name Server (DNS) that is used to resolve\n"
-#~ "host names to IP addresses."
-#~ msgstr ""
-#~ "named (BIND) - ćżņą ńåšāåš äąģåķķūõ iģøķą¢, ˙źi āūźąšūńņī¢āąåööą äė˙\n"
-#~ "ļåšąźėąäąķķ˙ iģøķ āóēėī¢ ó IP ąäšąńū."
-
-#, fuzzy
-#~ msgid ""
-#~ "Please choose the desired printer/printer port.\n"
-#~ "\n"
-#~ msgstr "źąėi ėąńźą, ļąēķą÷öå ņūļ āąųąé ģūųū."
-
-#, fuzzy
-#~ msgid "\\@quit"
-#~ msgstr "Āūõąä"
-
-#, fuzzy
-#~ msgid "Removable media"
-#~ msgstr "Ą¢ņąģąķöišąāąķķå ēģåķķūõ ķąēąļąųāąėüķ³źą¢"
-
-#~ msgid "Active"
-#~ msgstr "Ąźņū¢ķū"
-
-#, fuzzy
-#~ msgid "No X"
-#~ msgstr "Ķå"
-
-#~ msgid "A printer, model \"%s\", has been detected on "
-#~ msgstr "Ļšūķņżš ģąäżėi \"%s\" ēķīéäēåķū ķą "
-
-#~ msgid "Local Printer Device"
-#~ msgstr "Ėąźąėüķū ļšūķņżš"
-
-#~ msgid "Printer Device"
-#~ msgstr "Ļīšņ ļšūķņżšó"
-
-#, fuzzy
-#~ msgid "Printer(s) on remote CUPS server(s)"
-#~ msgstr "Ąääąėåķū ńåšāåš CUPS"
-
-#, fuzzy
-#~ msgid "Printer(s) on remote server(s)"
-#~ msgstr "Ąääąėåķū ńåšāåš CUPS"
-
-#, fuzzy
-#~ msgid " Linux "
-#~ msgstr "Linux"
-
-#, fuzzy
-#~ msgid " System "
-#~ msgstr "Mouse Systems"
-
-#, fuzzy
-#~ msgid " Other "
-#~ msgstr "²ķųū˙"
-
-#, fuzzy
-#~ msgid "please choose your CD space"
-#~ msgstr "Źąėi ėąńźą, ąį˙šūöå ņūļ źėąāi˙ņóšū."
-
-#, fuzzy
-#~ msgid " Please check if you are using CDRW media"
-#~ msgstr "Ķąö³ńķ³öå ķą šąēäēåė"
-
-#, fuzzy
-#~ msgid " Tape "
-#~ msgstr "Ņūļ: "
-
-#, fuzzy
-#~ msgid " Use .backupignore files"
-#~ msgstr "Äšżķķū ōąéė šżēåšāīāąé źīļii"
-
-#, fuzzy
-#~ msgid "Configure it"
-#~ msgstr "Ķąńņšīéźą X Window"
-
-#, fuzzy
-#~ msgid "on Tape Device"
-#~ msgstr "Ļīšņ ļšūķņżšó"
-
-#, fuzzy
-#~ msgid " Cancel "
-#~ msgstr "Ąäģåķą"
-
-#, fuzzy
-#~ msgid " Ok "
-#~ msgstr "Īź"
-
-#, fuzzy
-#~ msgid "close"
-#~ msgstr "Ļīšņ ģūųū"
-
-#, fuzzy
-#~ msgid "toto"
-#~ msgstr "Root"
-
-#, fuzzy
-#~ msgid "Starting your connection..."
-#~ msgstr "ßźi ņūļ āąųąćą ISDN ēėó÷żķķ˙?"
-
-#, fuzzy
-#~ msgid "Closing your connection..."
-#~ msgstr "ßźi ņūļ āąųąćą ISDN ēėó÷żķķ˙?"
-
-#, fuzzy
-#~ msgid "The system is now disconnected."
-#~ msgstr "ßź āū ļėąķóåöå äąėó÷ūööą äą Iķņżšķżņó?"
-
-#~ msgid "Choose the size you want to install"
-#~ msgstr "Ąį˙šūöå ļąęąäąķū ļąģåš óńņąė˙āąķķ˙"
-
-#~ msgid "Total size: "
-#~ msgstr "Ąćóėüķū ļąģåš: "
-
-#~ msgid "Please wait, "
-#~ msgstr "Ļą÷ąźąéöå, źąėi ėąńźą, "
-
-#~ msgid "Total time "
-#~ msgstr "Ąćóėüķū ÷ąń "
-
-#~ msgid "Use existing configuration for X11?"
-#~ msgstr "Āūźąšūńņąöü ińķóž÷óž ķąńņšīéźó äė˙ X11?"
-
-#~ msgid ""
-#~ "What device is your printer connected to \n"
-#~ "(note that /dev/lp0 is equivalent to LPT1:)?\n"
-#~ msgstr ""
-#~ "Äą ˙źīćą ļīšņó äąėó÷ąķū āąų ļšūķņżš \n"
-#~ "(/dev/lp0 żźāiāąėåķņķū LPT1:)?\n"
-
-#~ msgid "$_"
-#~ msgstr "$_"
-
-#, fuzzy
-#~ msgid ""
-#~ "Warning, the network adapter is already configured. I will reconfigure it."
-#~ msgstr ""
-#~ "Óāąćą, ńåņźąāū ąäąļņąš ńźąķōićóšąāąķū.\n"
-#~ "Öi ęąäąåöå ļåšąźąķōićóšąāąöü ˙ćī?"
-
-#~ msgid "New"
-#~ msgstr "Ķīāū"
-
-#, fuzzy
-#~ msgid "Remote"
-#~ msgstr "Ēķių÷ūöü"
-
-#, fuzzy
-#~ msgid ""
-#~ "Please click on a button above\n"
-#~ "\n"
-#~ "Or use \"New\""
-#~ msgstr "Ķąö³ńķ³öå ķą šąēäēåė"
-
-#~ msgid "Ambiguity (%s), be more precise\n"
-#~ msgstr "Ķåāūēķą÷ąķąńöü (%s), įóäēüöå äąźėąäķū˙\n"
-
-#~ msgid " ? (default %s) "
-#~ msgstr " ? (ēģī¢÷ąķķå %s) "
-
-#~ msgid "Your choice? (default %s enter `none' for none) "
-#~ msgstr "Āąų āūįąš? (ēģī¢÷ąķķå %s. Óā˙äēiöå `none' ļšū ąäńóņķąńöi) "
-
-#, fuzzy
-#~ msgid "Do you want to restart the network"
-#~ msgstr "Öi ęąäąåöå ļšąņżńöišąāąöü ķąńņšīéźi?"
-
-#~ msgid ""
-#~ "\n"
-#~ "Do you agree?"
-#~ msgstr ""
-#~ "\n"
-#~ "Āū ēćīäķū˙?"
-
-#, fuzzy
-#~ msgid ""
-#~ "Unless you know specifically otherwise, the usual choice is \"/dev/hda\"\n"
-#~ "(primary master IDE disk) or \"/dev/sda\" (first SCSI disk)."
-#~ msgstr ""
-#~ "Źąėi āū ķå āåäąåöå äąźėąäķą, äūź ēāū÷ąéķūģ āūįąšąģ ē'˙¢ė˙åööą \"/dev/hda"
-#~ "\"\n"
-#~ "(ļåšųąńķū ģąéńņąš IDE äūńź) öi \"/dev/sda\" (ļåšųū SCSI äūńź)."
-
-#, fuzzy
-#~ msgid "Connection timeout (in sec) [ beta, not yet implemented ]"
-#~ msgstr "Iģ˙ ēėó÷żķķ˙"
-
-#, fuzzy
-#~ msgid "Could not set \"%s\" as the default printer!"
-#~ msgstr "Ąį˙šūöå ąńķī¢ķąćą źąšūńņąėüķiźą:"
-
-#, fuzzy
-#~ msgid "Test the mouse here."
-#~ msgstr "Źąė³ ėąńźą, ēšąį³öå ķåźąėüź³ šóõą¢ ģūųųó."
-
-#~ msgid ""
-#~ "You need to accept the terms of the above license to continue "
-#~ "installation.\n"
-#~ "\n"
-#~ "\n"
-#~ "Please click on \"Accept\" if you agree with its terms.\n"
-#~ "\n"
-#~ "\n"
-#~ "Please click on \"Refuse\" if you disagree with its terms. Installation "
-#~ "will end without modifying your current\n"
-#~ "configuration."
-#~ msgstr ""
-#~ "Āū ļąā³ķķū ļšūķ˙öü óģīāū ė³öżķē³³, źąį ļšąö˙ćķóöü óńņąė˙āąķüķå.\n"
-#~ "\n"
-#~ "\n"
-#~ "Źąė³ ėąńźą, ķąö³ńķ³öå \"Ļšūķ˙öü\", źąė³ āū ēćīäķū˙ ē óģīāąģ³ ė³öżķē³³.\n"
-#~ "\n"
-#~ "\n"
-#~ "Źąė³ ėąńźą, ķąö³ńķ³öå \"Ąäāåšćķóöü\", źąė³ āū ķå ēćīäķū˙ ē óģīāąģ³ "
-#~ "ė³öåķē³³.Óńņąė˙āąķķå įóäēå ńźīķ÷ąķą\n"
-#~ "į˙ē ēģåķą¢ āąųąé į˙ćó÷ąé źąķō³ćóšąöū³."
-
-#~ msgid "Choose the layout corresponding to your keyboard from the list above"
-#~ msgstr "Ąį˙šūöå šąńźėąäźó ńāąøé źėąāi˙ņóšū ē ļšūāåäēåķąćą ńļińó"
-
-#~ msgid ""
-#~ "If you wish other languages (than the one you choose at\n"
-#~ "beginning of installation) will be available after installation, please "
-#~ "chose\n"
-#~ "them in list above. If you want select all, you just need to select \"All"
-#~ "\"."
-#~ msgstr ""
-#~ "Źąė³ āū ęąäąåöå źąį ļąńė˙ ¢ńņąė˙āąķķ˙ įūė³ äąńņóļķū ³ķųū˙ ģīāū\n"
-#~ "(ąźšąģ˙ ņīé, ˙źóž āū ¢ęī ąįšąė³ ķąļą÷ąņźó ¢ńņąė˙āąķķ˙), źąė³ "
-#~ "ėąńźąąį˙šūöå\n"
-#~ "³õ ē āūųżé ļšūāåäēåķąćą ńļ³ńó. Źąė³ āū ęąäąåöå ąįšąöü óńø ķąö³ńķ³öå \"Óńå"
-#~ "\"."
-
-#~ msgid ""
-#~ "Select:\n"
-#~ "\n"
-#~ " - Customized: If you are familiar enough with GNU/Linux, you may then "
-#~ "choose\n"
-#~ " the primary usage for your machine. See below for details.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Expert: This supposes that you are fluent with GNU/Linux and want to\n"
-#~ " perform a highly customized installation. As for a \"Customized\"\n"
-#~ " installation class, you will be able to select the usage for your "
-#~ "system.\n"
-#~ " But please, please, DO NOT CHOOSE THIS UNLESS YOU KNOW WHAT YOU ARE "
-#~ "DOING!"
-#~ msgstr ""
-#~ "Ąį˙šūöå: \n"
-#~ "\n"
-#~ " - Ļą āūįąšó: Ćżņū šżęūģ šżźąģåķäóåööą ¢ ņūģ āūļąäźó, źąėi āū "
-#~ "ļšąöąāąėi \n"
-#~ " šąķåé ē GNU/Linux, i ēģīęąöå ńąģi āūįšąöü ķåąįõīäķū˙\n"
-#~ " ļąźåņū i ąįńņąė˙āąķķå äė˙ āąųąćą źąģļ'žņąšó. Ćė˙äēiöå ķiężé "
-#~ "ļąäšąį˙ēķąńö³.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Żźńļåšņ: Āūįąš ćżņąćą šżęūģó ńāåä÷ūöü, ųņī āū ńāąįīäķą āąėīäąåöå GNU/"
-#~ "Linux\n"
-#~ " i ęąäąåöå āūźąšūńņī¢āąöü āåėüģi äżņąėøāąå ńņąė˙āąķķå. ßź i ¢ "
-#~ "āūļąäźó \n"
-#~ " \"Ļą āūįąšó\"āąģ ļąņšżįķą įóäēå āūįšąöü ķåąįõīäķū˙ ļšąćšąģū i \n"
-#~ " ąįńņąė˙āąķķå āąųąćą źąģļóņąšó.\n"
-#~ " Źąėi ėąńźą, ĶÅ ĀŪĮIŠĄÉÖÅ ĆŻŅŪ ŠŻĘŪĢ, ŹĄĖI ĶÅ ĻŻĶÅĶŪ, ŲŅĪ ŠĪĮIÖÅ "
-#~ "ĻŠĄĀIĖÜĶĄ!"
-
-#~ msgid ""
-#~ "You can now choose individually all the packages you\n"
-#~ "wish to install.\n"
-#~ "\n"
-#~ "\n"
-#~ "You can expand or collapse the tree by clicking on options in the left "
-#~ "corner of\n"
-#~ "the packages window.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you prefer to see packages sorted in alphabetic order, click on the "
-#~ "icon\n"
-#~ "\"Toggle flat and group sorted\".\n"
-#~ "\n"
-#~ "\n"
-#~ "If you want not to be warned on dependencies, click on \"Automatic\n"
-#~ "dependencies\". If you do this, note that unselecting one package may "
-#~ "silently\n"
-#~ "unselect several other packages which depend on it."
-#~ msgstr ""
-#~ "Ēąšąē āū ģąęąöå āūį³šąöü ³ķäūā³äóąėķą óńå ļąźåņū, ˙ź³˙ ęąäąåöå\n"
-#~ "óńņąė˙āąöü.\n"
-#~ "\n"
-#~ "\n"
-#~ "Āū ģīęąöå šąēćīšņāąöü ³ ēćąšņąöü äšżāą ļąźåņą¢, ķąö³ńźąž÷ū ķąīļöū³\n"
-#~ "ó ėåāūģ źóöå āąźķą ļąźåņą¢.\n"
-#~ "\n"
-#~ "\n"
-#~ "Źąė³ āū ęąäąåöå įą÷ūöü ļąźåņū ó ąėōąā³ņķūģ ļąšąäźó, ķąö³ńķ³öå īļöūž\n"
-#~ "\"Ńąšņūšąāąöü\".\n"
-#~ "\n"
-#~ "\n"
-#~ "Źąė³ āū ķå ęąäąåöå ąņšūģė³āąöü ļąļ˙šżäęąķķ³ ąäķīńķą ēąėåęķąńö˙¢, \n"
-#~ "ķąö³ńķ³öå \"Ēąėåęķąńö³ ą¢ņąģąņū÷ķą\". Źąė³ āū ēšīį³öå ćżņą, ēą¢āąęöå, "
-#~ "ųņī\n"
-#~ "ųņī ķå āūįąš ąäķąćī ļąźåņó ā˙äēå äą ķåģąć÷ūģąńö³ āūįšąöü ļąźåņū,\n"
-#~ "˙ź³˙ ąä ˙ćī ēąėåęąöü."
-
-#, fuzzy
-#~ msgid ""
-#~ "If you have all the CDs in the list above, click Ok. If you have\n"
-#~ "none of those CDs, click Cancel. If only some CDs are missing, unselect "
-#~ "them,\n"
-#~ "then click Ok."
-#~ msgstr ""
-#~ "Źąėi āū ģąåöå ¢ńå CD äūńźi ńą ńļińą ķiężé, ķąöińķiöå Īź.\n"
-#~ "Źąėi āū ķå ģąåöå ąķi āīäķąćą ē ćżņūõ CD äūńźą¢, ķąöińķiöå Ąäģ˙ķiöü.\n"
-#~ "Źąėi ķåźąņīšūõ ē CD äūńźą¢ ķå ģąåöå, ąäģ˙ķiöå iõ āūäē˙ėåķķå i ķąöińķiöå "
-#~ "Īź."
-
-#~ msgid ""
-#~ "If you wish to connect your computer to the Internet or\n"
-#~ "to a local network please choose the correct option. Please turn on your "
-#~ "device\n"
-#~ "before choosing the correct option to let DrakX detect it automatically.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you do not have any connection to the Internet or a local network, "
-#~ "choose\n"
-#~ "\"Disable networking\".\n"
-#~ "\n"
-#~ "\n"
-#~ "If you wish to configure the network later after installation or if you "
-#~ "have\n"
-#~ "finished to configure your network connection, choose \"Done\"."
-#~ msgstr ""
-#~ "Źąė³ āū ęąäąåöå ļąäźėž÷ūöü āąų źīģļ'žņąš äą Internet ö³ ĖĀŃ, źąė³ ėąńźą,\n"
-#~ "ąį˙šūöå ļšąā³ėüķóž īļöūž. Óźėž÷ūöå āąųó ļšūėąäó ļåšąä āūįąšąģ ļšąā³ėüķąé "
-#~ "īļöū³, DrakXēķīéäēå ćżņą\n"
-#~ "ą¢ņąģąņū÷ķą\n"
-#~ "\n"
-#~ "\n"
-#~ "Źąė³ āąģ ķå ļąņšżįķą ļąäźėž÷żķķå äą Internet ö³ ĖĀŃ, ķąö³ńķ³öå\n"
-#~ "\"Ąäźėž÷ūöü ļąäņšūģźó ńåņź³\".\n"
-#~ "Źąė³ āū ęąäąåöå ąäźąķō³ćóšąāąöü ńåņźó ļąńė˙ ¢ńņąė˙āąķķ˙ ö³ āū "
-#~ "¢ęīńźīķ÷ūė³\n"
-#~ "˙å źąķō³ćóšąāąķķå, ķąö³ńķ³öå \"Āūźąķąöü\"."
-
-#~ msgid ""
-#~ "No modem has been detected. Please select the serial port on which it is "
-#~ "plugged.\n"
-#~ "\n"
-#~ "\n"
-#~ "For information, the first serial port (called \"COM1\" under Microsoft\n"
-#~ "Windows) is called \"ttyS0\" under Linux."
-#~ msgstr ""
-#~ "Ģąäżģ ķå ēķīéäēåķū. Ąį˙šūöå ļąńė˙äī¢ķū ļīšņ äą ˙źīćą øķ ļąäźėž÷ąķū.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ļåšųū ļąńė˙äī¢ķū ļīšņ (ēāąķū \"COM1\" ó Microsoft Windows) ēąāåööą\n"
-#~ "\"ttyS0\" ó Linux."
-
-#~ msgid ""
-#~ "You may now enter dialup options. If you don't know\n"
-#~ "or are not sure what to enter, the correct informations can be obtained "
-#~ "from\n"
-#~ "your Internet Service Provider. If you do not enter the DNS (name "
-#~ "server)\n"
-#~ "information here, this information will be obtained from your Internet "
-#~ "Service\n"
-#~ "Provider at connection time."
-#~ msgstr ""
-#~ "Ēąšąē āū ģīęąöå ¢āåńö³ ļąšąģåņšū ąääąėåķąćą ļąäėž÷żķķ˙.\n"
-#~ "Źąė³ āū ķå āåäąåöå ö³ ķå ¢ļż¢ķåķū ųņī ņšżįą ¢āåńö³, ńļūņąéöåń˙ ó "
-#~ "ńāąéćī²nternet\n"
-#~ "ļšąāąéäżšó. Źąė³ āū ķå ¢āīäē³öå ³ķōąšģąöūž ąį DNS ńåšāåšąõ, ˙ķą įóäēå \n"
-#~ "ąņšūģąķą ļąä ÷ąń ēėó÷żķķ˙ ē āąųūģ Internet-ļšąāąéäżšąģ."
-
-#~ msgid ""
-#~ "If your modem is an external modem, please turn on it now to let DrakX "
-#~ "detect it automatically."
-#~ msgstr ""
-#~ "Źąė³ ¢ āąń āīķźąāū ģąäżģ, źąė³ ėąńźą, óźėž÷ūöå ˙ćī, ³ ļīņūģ DrakXēķīéēå "
-#~ "˙ćī ą¢ņąģąņū÷ķą."
-
-#~ msgid "Please turn on your modem and choose the correct one."
-#~ msgstr "Źąė³ ėąńźą, óźėž÷ūöå ģąäżģ ³ ąį˙šūöå ļšąā³ėķū."
-
-#~ msgid ""
-#~ "If you are not sure if informations above are\n"
-#~ "correct or if you don't know or are not sure what to enter, the correct\n"
-#~ "informations can be obtained from your Internet Service Provider. If you "
-#~ "do not\n"
-#~ "enter the DNS (name server) information here, this information will be "
-#~ "obtained\n"
-#~ "from your Internet Service Provider at connection time."
-#~ msgstr ""
-#~ "Źąė³ āū ķå óļż¢ķåķū, ö³ ē'˙¢ė˙åööą āūųżé ļšūāåäēåķą˙\n"
-#~ "³ķōąšģąöū˙ źąšżźņķąé ö³ āū ķå āåäąåöå ąėüįī ķ˙¢ļż¢ķåķū˙ ųņī ņšżįą óāåńö³\n"
-#~ "ļšąāčėüķą˙\n"
-#~ "³ķōąšģąöū˙ ģīęą įūöü ąņšūģąķą ąä āąųąćą ļšąāąéäżšó Internet. Źąė³ āū ķå\n"
-#~ "¢āīäē³öå ³ķōąšģąöūž ąį DNS, ćżņą˙ ³ķōąšģąöū˙ įóäēå ąņšūģąķą ąä āąųąćą\n"
-#~ "ļšąāąéäżšó ļąä ÷ąń ēėó÷żķķ˙."
-
-#, fuzzy
-#~ msgid ""
-#~ "You may now enter your host name if needed. If you\n"
-#~ "don't know or are not sure what to enter, the correct informations can "
-#~ "be\n"
-#~ "obtained from your Internet Service Provider."
-#~ msgstr ""
-#~ "Ēąšąē ģīęķą ¢āåńöi ļąšąģåņšū ēėó÷żķķ˙ ļšąē ģąäżģ (dialup). Źąėi āū\n"
-#~ "ķå āåäąåöå, ųņī ļąņšżįķą ļińąöü,\n"
-#~ "ļąńļšąįóéöå ąņšūģąöü äąźėąäķóž iķōąšģąöūž ¢ ńāąéćī ļšąāąéäżšó Internet "
-#~ "(ISP)."
-
-#, fuzzy
-#~ msgid ""
-#~ "You may now enter your host name if needed. If you\n"
-#~ "don't know or are not sure what to enter, ask your network administrator."
-#~ msgstr ""
-#~ "Źąė³ ķåąįõīäķą, āū ģąęąöå óāåńö³ ³ģ˙ āąųąćą õąńņą. Źąė³ āū\n"
-#~ "ķå āåäąåöå ö³ ķå ¢ļå¢ķåķū˙, ųņī ņšżįą ¢āąäē³öü. Ļąź³ķöå ļīėå ļóńņūģ."
-
-#~ msgid ""
-#~ "You may now enter your host name if needed. If you\n"
-#~ "don't know or are not sure what to enter, leave blank."
-#~ msgstr ""
-#~ "Źąė³ ķåąįõīäķą, āū ģąęąöå óāåńö³ ³ģ˙ āąųąćą õąńņą. Źąė³ āū\n"
-#~ "ķå āåäąåöå ö³ ķå ¢ļå¢ķåķū˙, ųņī ņšżįą ¢āąäē³öü. Ļąź³ķöå ļīėå ļóńņūģ."
-
-#~ msgid ""
-#~ "You may now enter dialup options. If you're not sure what to enter, the\n"
-#~ "correct information can be obtained from your ISP."
-#~ msgstr ""
-#~ "Ēąšąē ģīęķą ¢āåńöi ļąšąģåņšū ēėó÷żķķ˙ ļšąē ģąäżģ (dialup). Źąėi āū\n"
-#~ "ķå āåäąåöå, ųņī ļąņšżįķą ļińąöü,\n"
-#~ "ļąńļšąįóéöå ąņšūģąöü äąźėąäķóž iķōąšģąöūž ¢ ńāąéćī ļšąāąéäżšó Internet "
-#~ "(ISP)."
-
-#~ msgid ""
-#~ "If you will use proxies, please configure them now. If you don't know if\n"
-#~ "you should use proxies, ask your network administrator or your ISP."
-#~ msgstr ""
-#~ "Źąėi āū ēįišąåöåń˙ āūźąšūńņī¢āąöü proxy, iõ ąäšąńū ģīęķą ¢āåńöi ēąšąē.\n"
-#~ "Źąėi āū ķå āåäąåöå, ąį ÷ūģ iäēå šąēģīāą, ēā˙šķiöåń˙ äą ąäģiķińņšąņąšą\n"
-#~ "ńåņźi öi äą Internet-ļšąāąéäżšó."
-
-#~ msgid "You can now select your timezone according to where you live."
-#~ msgstr "Ēąšąē āū ģīęąöå ąįšąöü ÷ąńąāū ļī˙ń ēćīäķą ē ģåńöąģ ęūõąšńņāą."
-
-#~ msgid ""
-#~ "You can configure a local printer (connected to your computer) or remote\n"
-#~ "printer (accessible via a Unix, Netware or Microsoft Windows network)."
-#~ msgstr ""
-#~ "Āū ģīęąöå źąķō³ćóšąāąöü ėąźąėüķū ļšūķņżš (ēėó÷ąķū ē āąųūģ źąģļ'žņąšąģ)\n"
-#~ "ö³ ąääąėåķū ļšūķņżš (äąńņóļķū ļšąē Unix, Netware ö³ ńåņźó MS Windows)."
-
-#~ msgid ""
-#~ "If you wish to be able to print, please choose one printing system "
-#~ "between\n"
-#~ "CUPS and LPR.\n"
-#~ "\n"
-#~ "\n"
-#~ "CUPS is a new, powerful and flexible printing system for Unix systems "
-#~ "(CUPS\n"
-#~ "means \"Common Unix Printing System\"). It is the default printing system "
-#~ "in\n"
-#~ "Mandrake Linux.\n"
-#~ "\n"
-#~ "\n"
-#~ "LPR is the old printing system used in previous Mandrake Linux "
-#~ "distributions.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you don't have printer, click on \"None\"."
-#~ msgstr ""
-#~ "Źąė³ āū ęąäąåöå ģåöü äšóź, źąė³ ėąńźą, ąį˙šūöå ąäķó ē ń³ńņżģą¢ äšóźó\n"
-#~ "CUPS ö³ LPR.\n"
-#~ "\n"
-#~ "\n"
-#~ "CUPS ćżņą ķīāą˙, ģąćóņķą˙ ³ ćķóņźą˙ ń³ńņżģą äšóźó äė˙ Unix ń³ńņżģą¢ "
-#~ "(CUPS\n"
-#~ "- \"Common Unix Printing System\"). Ćżņą ń³ńņżģą äšóźó ļą ēģī¢÷ąķķž¢\n"
-#~ "ąļåšąöūéķąé ń³ńņżģå Mandrake Linux.\n"
-#~ "\n"
-#~ "\n"
-#~ "LPR - ńņąšą˙ ń³ńņżģą äšóźó ¢ ļąļ˙šżäķ³õ āåšń³˙õ äūńņšūįžņūāóMandrake "
-#~ "Linux.\n"
-#~ "\n"
-#~ "\n"
-#~ "Źąė³ āū ķå ģąåöå ļšūķņżšó, ķąö³ńķ³öå \"Ķ˙ģą\"."
-
-#~ msgid ""
-#~ "GNU/Linux can deal with many types of printer. Each of these types "
-#~ "requires\n"
-#~ "a different setup.\n"
-#~ "\n"
-#~ "\n"
-#~ "If your printer is physically connected to your computer, select \"Local\n"
-#~ "printer\".\n"
-#~ "\n"
-#~ "\n"
-#~ "If you want to access a printer located on a remote Unix machine, select\n"
-#~ "\"Remote printer\".\n"
-#~ "\n"
-#~ "\n"
-#~ "If you want to access a printer located on a remote Microsoft Windows "
-#~ "machine\n"
-#~ "(or on Unix machine using SMB protocol), select \"SMB/Windows 95/98/NT\"."
-#~ msgstr ""
-#~ "GNU/Linux ģīęą ļšąöąāąöü ńą ųģąņė³ź³ģ³ ņūļąģ³ ļšūķņżšą¢. Źīęķū ē źąņīšūõ\n"
-#~ "ļąņšąįóå šīēķąå ¢ńņąė˙āąķķå.\n"
-#~ "\n"
-#~ "\n"
-#~ "Źąė³ ļšūķņąš ō³ē³÷ą ļąäźėž÷ąķū äą źąģļ'žņåšó, ąį˙šūöå \"Ėąźąėüķū\n"
-#~ "ļšūķņżš\".\n"
-#~ "\n"
-#~ "\n"
-#~ "Źąė³ ļšūķņąš ļąäźėž÷ąķū äą ąääąėåķąé Unix ģąųūķū, ąį˙šūöå\n"
-#~ "\"Ąääąėåķū ļšūķņżš\".\n"
-#~ "\n"
-#~ "\n"
-#~ "Źąė³ ļšūķņżš ļąäźėž÷ąķū äą ąääąėåķąé ģąųūķū Microsoft Windows (ö³ äą "
-#~ "Unix\n"
-#~ "ģąųūķū, ˙źą˙ āūźąšūńņī¢āąå ļšąņąźīė SMB), ąį˙šūöå \"SMB/Windows 95/98/NT"
-#~ "\"."
-
-#~ msgid ""
-#~ "Please turn on your printer before continuing to let DrakX detect it.\n"
-#~ "\n"
-#~ "You have to enter some informations here.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Name of printer: the print spooler uses \"lp\" as default printer "
-#~ "name. So, you must have a printer named \"lp\".\n"
-#~ " If you have only one printer, you can use several names for it. You "
-#~ "just need to separate them by a pipe\n"
-#~ " character (a \"|\"). So, if you prefer a more meaningful name, you "
-#~ "have to put it first, eg: \"My printer|lp\".\n"
-#~ " The printer having \"lp\" in its name(s) will be the default "
-#~ "printer.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Description: this is optional but can be useful if several printers "
-#~ "are connected to your computer or if you allow\n"
-#~ " other computers to access to this printer.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Location: if you want to put some information on your\n"
-#~ " printer location, put it here (you are free to write what\n"
-#~ " you want, for example \"2nd floor\").\n"
-#~ msgstr ""
-#~ "Źąė³ ėąńźą ¢źėž÷ūöå āąų ļšūķņąš ļåšąä ļšąö˙ćąģ,³ DrakX ēķīéäēå ˙ćī.\n"
-#~ "\n"
-#~ "Āū ļąā³ķķū ¢āåńüö³ ķåźąņīšóž ³ķōąšģąöūž.\n"
-#~ "\n"
-#~ "\n"
-#~ " * ²ģ˙ ļšūķņżšó: ÷ąšćą ļšūķņżšó āūźąšūńņī¢āąå ļą ēģī¢÷ąķķž ³ģ˙ \"lp\"˙ź "
-#~ "³ģ˙ ļšūķņżšó\n"
-#~ "Ņąź, āū ļąā³ķķū ģåöü ļšūķņąš ēāąķū \"lp\".\n"
-#~ " Źąė³ āū ģąåöå ņīėüź³ ąäē³ķ ļšūķņąš, āū ģīęąöå ģåöü äė˙ ˙ćī "
-#~ "ķåźąėüź³ķąēāą¢. Āū ņīėüź³ ļąā³ķķū ąääē˙ė³öü ³õ ė³÷įąé źąķąėó ( \"|\").\n"
-#~ " Ņąź, źąė³ ėžį³öå įīėüų ³ķōąšģąöūéķū˙ ķąēāū, āū ļąā³ķķū óńņąāą³öü "
-#~ "ńļ˙šųą ˙å , ļšūźė.: \"My printer|lp\".\n"
-#~ " Ļšūķņżš ē ³ģåģ \"lp\" įóäēå ēąäąäēåķū ļšūķņżšąģ ļą ēģī¢÷ąķķž.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Ąļ³ńąķķå: ćżņą ķåąįąā˙ēźīāą, ąėå ģīęą įūöü źąšūńķą, źąė³ ķåźąėüź³ "
-#~ "ļšūķņżšą¢ ēėó÷ąķū ēāąųūģ źąģļ'žņåšąģ ö³ āū ķå\n"
-#~ " äąēāąė˙åöå äīńņóļ ³ķųūģ źąģļ'žņåšąģ äą ćżņąćą ļšūķņżšó.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Šąēģ˙ų÷żķķå: źąė³ āū ęąäąåöå šąēģ˙ńöiöü ļż¢ķóž ³ķōąšģąöūž ąäķīńķą\n"
-#~ " šąēģ˙ų÷żķķ˙ ļšūķņżšą, óńņą¢öå ˙å ńžäū (āū āīėüķū˙ ļ³ńąöü óńø ųņī\n"
-#~ " ēą¢ćīäķą, ķąļšūźėąä \"2nd floor\").\n"
-
-#~ msgid ""
-#~ "You need to enter some informations here.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Name of queue: the print spooler uses \"lp\" as default printer "
-#~ "name. So, you need have a printer named \"lp\".\n"
-#~ " If you have only one printer, you can use several names for it. You "
-#~ "just need to separate them by a pipe\n"
-#~ " character (a \"|\"). So, if you prefer to have a more meaningful "
-#~ "name, you have to put it first, eg: \"My printer|lp\".\n"
-#~ " The printer having \"lp\" in its name(s) will be the default "
-#~ "printer.\n"
-#~ "\n"
-#~ " \n"
-#~ " * Spool directory: it is in this directory that printing jobs are "
-#~ "stored. Keep the default choice\n"
-#~ " if you don't know what to use\n"
-#~ "\n"
-#~ "\n"
-#~ " * Printer Connection: If your printer is physically connected to your "
-#~ "computer, select \"Local printer\".\n"
-#~ " If you want to access a printer located on a remote Unix machine, "
-#~ "select \"Remote lpd printer\".\n"
-#~ "\n"
-#~ "\n"
-#~ " If you want to access a printer located on a remote Microsoft "
-#~ "Windows machine (or on Unix machine using SMB\n"
-#~ " protocol), select \"SMB/Windows 95/98/NT\".\n"
-#~ "\n"
-#~ "\n"
-#~ " If you want to acces a printer located on NetWare network, select "
-#~ "\"NetWare\".\n"
-#~ msgstr ""
-#~ "Ņóņ āū ļąā³ķķū óāåńö³ ķåźąņīšóž ³ķōąšģąöūž.\n"
-#~ "\n"
-#~ "\n"
-#~ " * ²ģ˙ ÷ąšć³: āūźąšūńņī¢āąåööą \"lp\" ˙ź ³ģ˙ ļšūķņżšó ļą ēģī¢÷ąķķž. "
-#~ "Ņąź, āū ļąā³ķķū ģåöü ļšūķņżš ēāąķū \"lp\".\n"
-#~ " Źąė³ āū ģąåöå ņīėüź³ ąäē³ķ ļšūķņąš, āū ģīęąöå ģåöü äė˙ ˙ćī "
-#~ "ķåźąėüź³ķąēāą¢. Āū ņīėüź³ ļąā³ķķū ąääē˙ė³öü ³õ ė³÷įąé źąķąėó ( \"|\").\n"
-#~ " Ņąź, źąė³ ėžį³öå įīėüų ³ķōąšģąöūéķū˙ ķąēāū, āū ļąā³ķķū óńņąāą³öü "
-#~ "ńļ˙šųą ˙å , ļšūźė.: \"My printer|lp\".\n"
-#~ " Ļšūķņżš ē ³ģåģ \"lp\" įóäēå ēąäąäēåķū ļšūķņżšąģ ļą ēģī¢÷ąķķž.\n"
-#~ "\n"
-#~ " \n"
-#~ " * Äūšūźņīšū˙ spool: ó øé ēķąõīäē˙ööą ēąģīāū ķą āūźąķąķķå äšóźó. "
-#~ "Ēąõąāąéöå ąįšąķąå\n"
-#~ " ļą ēģī¢÷ąķķž, źąė³ ķå āåäąåöå ˙ź ćżņūģ źąšūńņąööą.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Ļąäźėž÷żķķå ļšūķņżšó: źąė³ ļšūķņżš ō³ē³÷ķą ēėó÷ąķū ē źąģļ'žņåšąģ, "
-#~ "ąį˙šūöå \"Ėąźąėüķū ļšūķņżš\".\n"
-#~ " Źąė³ ļšūķņżš ļąäźėž÷ąķū äą ąääąėåķąé Unix ģąųūķū, ąį˙šūöå \"Ąääąėåķū "
-#~ "lpd ļšūķņżš\".\n"
-#~ "\n"
-#~ "\n"
-#~ " Źąė³ āū ļšūķņżš ļąäźėž÷ąķū äą ąääąėåķąé ģąųūķū MS Windows (ö³ äą "
-#~ "Unix ģąųūķū, ˙źą˙ āūźąšūńņī¢āąå ļšąņąźīė SMB,\n"
-#~ " ąį˙šūöå \"SMB/Windows 95/98/NT\".\n"
-#~ "\n"
-#~ "\n"
-#~ " Źąė³ ļšūķņąš ļąäźėž÷ąķū äą ńåņź³ NetWare, ąį˙šūöå \"NetWare\".\n"
-
-#~ msgid ""
-#~ "Your printer has not been detected. Please enter the name of the device "
-#~ "on\n"
-#~ "which it is connected.\n"
-#~ "\n"
-#~ "\n"
-#~ "For information, most printers are connected on the first parallel port. "
-#~ "This\n"
-#~ "one is called \"/dev/lp0\" under GNU/Linux and \"LPT1\" under Microsoft "
-#~ "Windows."
-#~ msgstr ""
-#~ "Āąų ļšūķņąš ķå įū¢ ēķīéäēåķū. Źąė³ ėąńźą ¢ā˙äē³öå ³ģ˙ ļšūėąäū äą ˙źīé øķ\n"
-#~ "ļąäźėž÷ąķū.\n"
-#~ "\n"
-#~ "\n"
-#~ "Įīėüųąńü ļšūķņąšą¢ ļąäźėž÷ąžööą äą ļåšųąćą ļąšąėåėüķąćą ļīšņó.Øķ\n"
-#~ "ēąāåööą \"/dev/lp0\" ó GNU/Linux ³ \"LPT1\" ó Microsoft Windows."
-
-#~ msgid "You must now select your printer in the above list."
-#~ msgstr "Āū ļąā³ķķū ąįšąöü āąų ļšūķņąš ńą ńļ³ńó."
-
-#~ msgid ""
-#~ "Please select the right options according to your printer.\n"
-#~ "Please see its documentation if you don't know what choose here.\n"
-#~ "\n"
-#~ "\n"
-#~ "You will be able to test your configuration in next step and you will be "
-#~ "able to modify it if it doesn't work as you want."
-#~ msgstr ""
-#~ "Źąė³ ėąńźą, ąį˙šūöå ļšąā³ėķū˙ īļöū³ ¢ ąäļąāåäķąńüö³ āąųąģó ļšūķņąšó.\n"
-#~ "Źąė³ ėąńźą,ćė˙äē³öå äąźóģåķņąöūž źąė³ ķå āåäąåöå ųņī ąįšąöü.\n"
-#~ "\n"
-#~ "\n"
-#~ "Źąė³ āū ęąäąåöå, āū įóäēåöå ēäīėüķū˙ ļšąņżńņąāąöü āąųóž źąķō³ćóšąöūž\n"
-#~ "ķą ķąńņóļķūģ źšīźó ³ ēüģ˙ķ³öü ˙å."
-
-#~ msgid ""
-#~ "You may now create one or more \"regular\" user account(s), as\n"
-#~ "opposed to the \"privileged\" user account, root. You can create\n"
-#~ "one or more account(s) for each person you want to allow to use\n"
-#~ "the computer. Note that each user account will have its own\n"
-#~ "preferences (graphical environment, program settings, etc.)\n"
-#~ "and its own \"home directory\", in which these preferences are\n"
-#~ "stored.\n"
-#~ "\n"
-#~ "\n"
-#~ "First of all, create an account for yourself! Even if you will be the "
-#~ "only user\n"
-#~ "of the machine, you may NOT connect as root for daily use of the system: "
-#~ "it's a\n"
-#~ "very high security risk. Making the system unusable is very often a typo "
-#~ "away.\n"
-#~ "\n"
-#~ "\n"
-#~ "Therefore, you should connect to the system using the user account\n"
-#~ "you will have created here, and login as root only for administration\n"
-#~ "and maintenance purposes."
-#~ msgstr ""
-#~ "Ēąšąē āū ģīęąöå ńņāąšūöü ąäēiķ ąėüįī ķåźąėüźi \"ēāū÷ąéķūõ\" óėiźīāūõ "
-#~ "ēąļińą¢\n"
-#~ "źąšūńņąėüķiźą¢. Äė˙ źīęķąćą źąšūńņąėüķiźą ģąć÷ūģą ńņāąšūöü ļą ąäķąģó öi "
-#~ "ķåźąėüźi\n"
-#~ "¢ėiźīāūõ ēąļińą¢. Äė˙ źīęķąćą ¢ėiźīāąćą ēąļińó ńņāąšąžööą ¢ėąńķū˙ "
-#~ "ķąńņšīéźi\n"
-#~ "(ćšąōi÷ķąå ąńń˙šīääēå, ķąńņšīéźi ļšąćšąģ,...) i ¢ėąńķū \"õąņķi źąņąėąć"
-#~ "\",\n"
-#~ "ó ˙źiģ ēąõī¢āąžööą ćżņū˙ ķąńņšīéźi.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ļą-ļåšųąå, ńņāąšūöå ¢āąõīä äė˙ ń˙įå! Ķąāąņ źąėi āū įóäēåöå ąäēiķūģ\n"
-#~ "źąšūńņąėüķiźąģ ćżņąé ģąųūķū, ķå šżźąģåķäóåööą óāąõīäēiöü ē ļšąāąģi\n"
-#~ "ńóļåšźąšūńņąėüķiźó äė˙ ųņīäēøķķąé ļšąöū: ćżņą ēąķąäņą ā˙ėiźą˙ ļąćšīēą\n"
-#~ "į˙ńļåźi. Ģąć÷ūģą ēķių÷ūöü ńińņżģó ēāū÷ąéķąé ļąģūėźąé äšóźó.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ņąģó ¢āąõīäēiöü ó ńińņżģó ķåąįõīäķą ē ļšąāąģi ēāū÷ąéķąćą źąšūńņąėüķiźó,\n"
-#~ "˙źīćą āū ēąšąē i ńņāīšūöå, ą ¢āąõīäēiöü ē ļšąāąģi root ķåąįõīäķą ņīėüźi\n"
-#~ "ē ģżņąģi ąäģiķińņšūšąāąķķ˙ i ąįńėóćī¢āąķķ˙ ńińņżģū."
-
-#~ msgid ""
-#~ "Creating a boot disk is strongly recommended. If you can't\n"
-#~ "boot your computer, it's the only way to rescue your system without\n"
-#~ "reinstalling it."
-#~ msgstr ""
-#~ "Ńņāąšżķķå boot äūńźó ńņšīćą šżźąģåķäąāąķą! Źąė³ āū ķå ēģīęąöå\n"
-#~ "ēąćšóē³öü āąų źąģļ'žņąš, äūź ćżņą āąų ąäē³ķū ńļīńąį ąäķąā³öü\n"
-#~ "ń³ņżģū įåē åéķąćą ļåšą¢ńņąė˙āąķüķ˙."
-
-#, fuzzy
-#~ msgid ""
-#~ "LILO and grub main options are:\n"
-#~ " - Boot device: Sets the name of the device (e.g. a hard disk\n"
-#~ "partition) that contains the boot sector. Unless you know specifically\n"
-#~ "otherwise, choose \"/dev/hda\".\n"
-#~ "\n"
-#~ "\n"
-#~ " - Delay before booting default image: Specifies the number in tenths\n"
-#~ "of a second the boot loader should wait before booting the first image.\n"
-#~ "This is useful on systems that immediately boot from the hard disk after\n"
-#~ "enabling the keyboard. The boot loader doesn't wait if \"delay\" is\n"
-#~ "omitted or is set to zero.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Video mode: This specifies the VGA text mode that should be selected\n"
-#~ "when booting. The following values are available: \n"
-#~ "\n"
-#~ " * normal: select normal 80x25 text mode.\n"
-#~ "\n"
-#~ " * <number>: use the corresponding text mode.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Clean \"/tmp\" at each boot: if you want delete all files and "
-#~ "directories\n"
-#~ "stored in \"/tmp\" when you boot your system, select this option.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Precise RAM if needed: unfortunately, there is no standard method to "
-#~ "ask the\n"
-#~ "BIOS about the amount of RAM present in your computer. As consequence, "
-#~ "Linux may\n"
-#~ "fail to detect your amount of RAM correctly. If this is the case, you "
-#~ "can\n"
-#~ "specify the correct amount or RAM here. Please note that a difference of "
-#~ "2 or 4\n"
-#~ "MB between detected memory and memory present in your system is normal."
-#~ msgstr ""
-#~ "Ąńķī¢ķū˙ ļąšąģåņšū SILO:\n"
-#~ " - Óńņąė˙āąķķå ēąćšóē÷ūźó: Ąį˙šūöå ģåńöą, äēå āū ęąäąåöå ēģåńöiöü\n"
-#~ "iķōąšģąöūž, ļąņšżįķóž äė˙ ēąćšóēźi GNU/Linux. Źąėi ķå ¢ļż¢ķåķū, ųņī\n"
-#~ "šīįiöå ļšąāiėüķą, ąį˙šūöå \"Ļåšųū ńåźņąš äūńźą (MBR)\".\n"
-#~ "\n"
-#~ "\n"
-#~ " - Ēąņšūģźą ļą ēģī¢÷ąķķž ļåšąä ēąćšóēźąé āīįšąēó: Ēąäąå ÷ąń ó äē˙ń˙ņūõ\n"
-#~ "ńåźóķäū, ķą ļšąö˙ćó ˙źīćą ēąćšóē÷ūź ÷ąźąå ļåšąä ēąćšóēźąé āīįšąēó ļą "
-#~ "ēģī¢÷ąķķž.\n"
-#~ "Ćżņū ļąšąģåņąš źąšūńķū äė˙ ńińņżģą¢, ˙źi˙ ąäšąēó ēąćšóęąžööą ē ęīšńņźąćą\n"
-#~ "äūńźó ąäšąēó ąļąńė˙ ¢źėž÷żķķ˙ źėąāi˙ņóšū. Ēąćšóē÷ūź ķå ÷ąźąå, źąėi "
-#~ "\"ēąņšūģźą\"\n"
-#~ "\"ēąņšūģźą\" ķå įóäēå ļąēķą÷ąķą öi óńņąė˙āąķą ķą ķīėü."
-
-#~ msgid ""
-#~ "SILO is a bootloader for SPARC: it is able to boot\n"
-#~ "either GNU/Linux or any other operating system present on your computer.\n"
-#~ "Normally, these other operating systems are correctly detected and\n"
-#~ "installed. If this is not the case, you can add an entry by hand in this\n"
-#~ "screen. Be careful as to choose the correct parameters.\n"
-#~ "\n"
-#~ "\n"
-#~ "You may also want not to give access to these other operating systems to\n"
-#~ "anyone, in which case you can delete the corresponding entries. But\n"
-#~ "in this case, you will need a boot disk in order to boot them!"
-#~ msgstr ""
-#~ "SILO - ćżņū ēąćšóē÷ūź äė˙ SPARC. Øķ ģīęą ēąćšóēiöü äšóćóž\n"
-#~ "GNU/Linux öi ėžįóž iķųóž ąļåšąöūéķóž ńińņżģó, óńņąė˙āąķóž ķą źąģļóņąšū.\n"
-#~ "Ēāū÷ąéķą, ćżņū˙ iķųū˙ ąļåšąöūéķū˙ ńińņżģū źąšżźņķą āūēķą÷ąžööą i\n"
-#~ "¢ńņąėø¢āąžööą. Źąėi ćżņą ķå ąņšūģąėąń˙, ņī āū ģīęąöå äąäąöü ėžįū ēąļiń\n"
-#~ "ńąģąńņīéķą. Įóäēüöå ¢ļż¢ķåķū, ųņī āū ēąäąėi źąšżźņķū˙ ļąšąģåņšū.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ņąźńąģą āū ģīęąöå ļąęąäąöü i ķå äąäāąöü iķųū˙ ąļåšąöūéķū˙ ńińņżģū.\n"
-#~ "Ó ņąźiģ āūļąäźó ļąņšżįķą āūäąėiöü ąäļąāåäķū˙ ēąļińū. Ąėå ę ņąäū āąģ \n"
-#~ "įóäēå ļąņšżįķū iķńņąė˙öūéķū äūńź, źąį ēąćšóēiööą."
-
-#~ msgid ""
-#~ "SILO main options are:\n"
-#~ " - Bootloader installation: Indicate where you want to place the\n"
-#~ "information required to boot to GNU/Linux. Unless you know exactly\n"
-#~ "what you are doing, choose \"First sector of drive (MBR)\".\n"
-#~ "\n"
-#~ "\n"
-#~ " - Delay before booting default image: Specifies the number in tenths\n"
-#~ "of a second the boot loader should wait before booting the first image.\n"
-#~ "This is useful on systems that immediately boot from the hard disk after\n"
-#~ "enabling the keyboard. The boot loader doesn't wait if \"delay\" is\n"
-#~ "omitted or is set to zero."
-#~ msgstr ""
-#~ "Ąńķī¢ķū˙ ļąšąģåņšū SILO:\n"
-#~ " - Óńņąė˙āąķķå ēąćšóē÷ūźó: Ąį˙šūöå ģåńöą, äēå āū ęąäąåöå ēģåńöiöü\n"
-#~ "iķōąšģąöūž, ļąņšżįķóž äė˙ ēąćšóēźi GNU/Linux. Źąėi ķå ¢ļż¢ķåķū, ųņī\n"
-#~ "šīįiöå ļšąāiėüķą, ąį˙šūöå \"Ļåšųū ńåźņąš äūńźą (MBR)\".\n"
-#~ "\n"
-#~ "\n"
-#~ " - Ēąņšūģźą ļą ēģī¢÷ąķķž ļåšąä ēąćšóēźąé āīįšąēó: Ēąäąå ÷ąń ó äē˙ń˙ņūõ\n"
-#~ "ńåźóķäū, ķą ļšąö˙ćó ˙źīćą ēąćšóē÷ūź ÷ąźąå ļåšąä ēąćšóēźąé āīįšąēó ļą "
-#~ "ēģī¢÷ąķķž.\n"
-#~ "Ćżņū ļąšąģåņąš źąšūńķū äė˙ ńińņżģą¢, ˙źi˙ ąäšąēó ēąćšóęąžööą ē ęīšńņźąćą\n"
-#~ "äūńźó ąäšąēó ąļąńė˙ ¢źėž÷żķķ˙ źėąāi˙ņóšū. Ēąćšóē÷ūź ķå ÷ąźąå, źąėi "
-#~ "\"ēąņšūģźą\"\n"
-#~ "\"ēąņšūģźą\" ķå įóäēå ļąēķą÷ąķą öi óńņąė˙āąķą ķą ķīėü."
-
-#~ msgid ""
-#~ "Now it's time to configure the X Window System, which is the\n"
-#~ "core of the GNU/Linux GUI (Graphical User Interface). For this purpose,\n"
-#~ "you must configure your video card and monitor. Most of these\n"
-#~ "steps are automated, though, therefore your work may only consist\n"
-#~ "of verifying what has been done and accept the settings :)\n"
-#~ "\n"
-#~ "\n"
-#~ "When the configuration is over, X will be started (unless you\n"
-#~ "ask DrakX not to) so that you can check and see if the\n"
-#~ "settings suit you. If they don't, you can come back and\n"
-#~ "change them, as many times as necessary."
-#~ msgstr ""
-#~ "Ēąšąē ģąć÷ūģą ķąńņšīiöü X Window System, ˙źą˙ ē'˙¢ė˙åööą\n"
-#~ "ąńķīāąé Linux GUI (Ćšąōi÷ķū Iķņżšōåéń Źąšūńņąėüķiźą). Äēåė˙ ćżņąćą\n"
-#~ "ļąņšżįķą ķąńņšīiöü āiäżąźąšņó i ģąķiņīš. Įīėüųą˙ ÷ąńņźą ćżņūõ źšīźą¢\n"
-#~ "ą¢ņąģąņūēąāąķą, ņąģó āąųą ļšąöą ģīęą ēąźėž÷ąööą ¢ ļšąāåšöū\n"
-#~ "āūķiźą¢ ķąńņšīéźi i ļąäöāåšäęąķķž ąįšąķūõ ļąšąģåņšą¢ :)\n"
-#~ "\n"
-#~ "Źąėi źąķōićóšąāąķķå ēąāåšųūööą, įóäēå ēąļóų÷ąķū X (źąėi āū ķå\n"
-#~ "ļąļšīńiöå DrakX ķå šąįiöü ćżņąćą), źąį āū ēģąćėi ļšąāåšūöü, öi ēćīäķū\n"
-#~ "āū ē ķąńņšīéźąģi. Źąėi ķå, ņī ēą¢ńøäū ģąć÷ūģą ā˙šķóööą i ēģ˙ķ˙öü iõ\n"
-#~ "źīėüźi āąģ ļąņšżįķą."
-
-#~ msgid ""
-#~ "If something is wrong in X configuration, use these options to correctly\n"
-#~ "configure the X Window System."
-#~ msgstr ""
-#~ "Źąėi ķåųņą ķå ņąź ē ķąńņšīéźąé X, ńźąšūńņąéöå ćżņū˙ ļąšąģåņšū äė˙ \n"
-#~ "źąšżźņķąé ķąńņšīéźi X Window System."
-
-#~ msgid ""
-#~ "If you prefer to use a graphical login, select \"Yes\". Otherwise, "
-#~ "select\n"
-#~ "\"No\"."
-#~ msgstr ""
-#~ "Źąėi āū ąääąåöå ļåšąāąćó ćšąōi÷ķąģó ¢āąõīäó (login), ąį˙šūöå \"Ņąź\". "
-#~ "Iķąźų - \n"
-#~ "\"Ķå\"."
-
-#~ msgid ""
-#~ "Your system is going to reboot.\n"
-#~ "\n"
-#~ "After rebooting, your new Mandrake Linux system will load automatically.\n"
-#~ "If you want to boot into another existing operating system, please read\n"
-#~ "the additional instructions."
-#~ msgstr ""
-#~ "Ńińņżģą ēįišąåööą ļåšąēąćšóēiööą.\n"
-#~ "\n"
-#~ "Ļąńė˙ ļåšąēąćšóēźi, āąųą ķīāą˙ ńińņżģą Mandrake Linux ēąćšóēiööą "
-#~ "ą¢ņąģąņū÷ķą.\n"
-#~ "Źąėi āū ęąäąåöå ļåšąēąćšóēiöą ļąä iķųóž ąļåšąöūéķóž ńińņżģó, ÷ūņąéöå \n"
-#~ "äąäąņźīāū˙ iķńņšóźöūi."
-
-#~ msgid "Write /etc/fstab"
-#~ msgstr "Ēąļiń /etc/fstab"
-
-#~ msgid "Format all"
-#~ msgstr "Ōąšģąņąāąöü óńø"
-
-#~ msgid "After formatting all partitions,"
-#~ msgstr "Ļąńė˙ ōąšģąņąāąķķ˙ ¢ńiõ šąēäēåėą¢,"
-
-#~ msgid "all data on these partitions will be lost"
-#~ msgstr "óńå äąäēåķū˙ ¢ ćżņūõ šąēäēåėąõ įóäóöü ńņšą÷ąķū"
-
-#~ msgid "Reload"
-#~ msgstr "Ļåšąēąćšóēiöü"
-
-#~ msgid ""
-#~ "Do you want to generate an auto install floppy for linux replication?"
-#~ msgstr ""
-#~ "Öi ęąäąåöå āū ńņāąšūöü ą¢ņą¢ńņąėøāą÷ķū ōėīļi-äūńź äė˙ šåļėiźąöūi linux?"
-
-#~ msgid "ADSL configuration"
-#~ msgstr "Ķąńņšīéźą ADSL"
-
-#, fuzzy
-#~ msgid ""
-#~ "With a remote CUPS server, you do not have to configure\n"
-#~ "any printer here; printers will be automatically detected\n"
-#~ "unless you have a server on a different network; in the\n"
-#~ "latter case, you have to give the CUPS server IP address\n"
-#~ "and optionally the port number."
-#~ msgstr ""
-#~ "Ąääąėåķū CUPS ńåšāåš ķå ļąņšąįóå ąä Āąń ķąńņšīéź³ ļšūķņżšó\n"
-#~ "ķą ćżņąé ģąųūķå, øķ įóäēå ēķīéäēåķū ą¢ņąģąņū÷ķą.\n"
-#~ "Źąė³ Āū ķå ¢ļż¢ķåķū, ąį˙šūöå \"Ąääąėåķū ńåšāåš CUPS\"."
-
-#~ msgid "Remote queue"
-#~ msgstr "Ąääąėåķą˙ ÷ąšćą äšóźó"
-
-#, fuzzy
-#~ msgid "Remote queue name missing!"
-#~ msgstr "Ąääąėåķą˙ ÷ąšćą äšóźó"
-
-#, fuzzy
-#~ msgid "Command line"
-#~ msgstr "Iģ˙ äąģåķó"
-
-#, fuzzy
-#~ msgid "Modify printer"
-#~ msgstr "Iģ˙ äšóźąšźi"
-
-#, fuzzy
-#~ msgid "Network Monitoring"
-#~ msgstr "Źąķōićóšąöū˙ ńåņźi"
-
-#, fuzzy
-#~ msgid "Profile "
-#~ msgstr "ļąģūėźą ģąķöišąāąķķ˙: "
-
-#, fuzzy
-#~ msgid "Connection Time: "
-#~ msgstr "Iģ˙ ēėó÷żķķ˙"
-
-#, fuzzy
-#~ msgid "Connecting to Internet "
-#~ msgstr "Äąėó÷żķķå äą Iķņżšķżņó"
-
-#, fuzzy
-#~ msgid "Disconnecting from Internet "
-#~ msgstr "Äąėó÷żķķå äą Iķņżšķżņó"
-
-#, fuzzy
-#~ msgid "Disconnection from Internet failed."
-#~ msgstr "Äąėó÷żķķå äą Iķņżšķżņó"
-
-#, fuzzy
-#~ msgid "Disconnection from Internet complete."
-#~ msgstr "Äąėó÷żķķå äą Iķņżšķżņó"
-
-#, fuzzy
-#~ msgid "Connection complete."
-#~ msgstr "Iģ˙ ēėó÷żķķ˙"
-
-#, fuzzy
-#~ msgid "Default Runlevel"
-#~ msgstr "Ļą äąģą¢ėåķķž"
-
-#~ msgid "NetWare"
-#~ msgstr "NetWare"
-
-#~ msgid "Config file content could not be interpreted."
-#~ msgstr "Ķå ąņšūģė³āąåööą ąļšąöąāąöü ēģåńņ ōąéėą ķąńņšīåź."
-
-#~ msgid "Disable network"
-#~ msgstr "Ēšąįiöü ķåąźņū¢ķūģ ńåņźąāąå ēėó÷żķķå"
-
-#, fuzzy
-#~ msgid "Enable network"
-#~ msgstr "Ēšąįiöü ķåąźņū¢ķūģ ńåņźąāąå ēėó÷żķķå"
-
-#~ msgid ""
-#~ "You can now test your mouse. Use buttons and wheel to verify\n"
-#~ "if settings are good. If not, you can click on \"Cancel\" to choose "
-#~ "another\n"
-#~ "driver."
-#~ msgstr ""
-#~ "Ēąšąē āū ģīęąöå ąäņżńņąāąöü āąųó ģūų. Ķąö³ńźąéöå ķą źķīļź³ ³\n"
-#~ "šóųöå źīėą. Źąė³ óńņąė˙āąķķ³ ļąģūėźīāū˙ ķąö³ńķ³öå \"Ąäģåķą\" źąį "
-#~ "óńņąė˙āąöü\n"
-#~ "³ķųū äšąéāåš."
-
-#, fuzzy
-#~ msgid "Choose"
-#~ msgstr "Ļīšņ ģūųū"
-
-#~ msgid "You can specify directly the URI to access the printer with CUPS."
-#~ msgstr "Āū ģīęąöå āūēķą÷ūöü ķą¢ļšīńņ URI źąį äąėó÷ūööą äą äšóźąšźi ē CUPS."
-
-#~ msgid "Yes, print ASCII test page"
-#~ msgstr "Ņąź, ķąäšóźąāąöü ńņąšīķźó ņżźńņó ASCII"
-
-#~ msgid "Yes, print PostScript test page"
-#~ msgstr "Ņąź, ķąäšóźąāąöü ńņąšīķźó ņżźńņó PostScript"
-
-#~ msgid "Paper Size"
-#~ msgstr "Ļąģåšū ļąļåšū"
-
-#~ msgid "Eject page after job?"
-#~ msgstr "Āūųņóšõāąöü ļąļåšó ļąńė˙ äšóźó?"
-
-#~ msgid "Uniprint driver options"
-#~ msgstr "Ļąšąģåņšū äšąéāåšó Uniprint"
-
-#~ msgid "Color depth options"
-#~ msgstr "Ļąšąģåņšū ćėūįiķi źīėåšó"
-
-#~ msgid "Print text as PostScript?"
-#~ msgstr "Äšóźąāąöü ņżźńņ ˙ź PostScript?"
-
-#~ msgid "Fix stair-stepping text?"
-#~ msgstr "Źąšżźņąāąöü ļšūńņóļźąāū ņżźńņ?"
-
-#~ msgid "Number of pages per output pages"
-#~ msgstr "Ķóģąš ńņąšīķźi ąä źīėüźąńöi ķąäšóźąāąķūõ ńņąšīķąź"
-
-#~ msgid "Right/Left margins in points (1/72 of inch)"
-#~ msgstr "Ļšąāąå/ėåāąå ļąėi ¢ źšīļźąõ (1/72 äēžéģą)"
-
-#~ msgid "Top/Bottom margins in points (1/72 of inch)"
-#~ msgstr "Āåšõķ˙å/Ķięķ˙å ļąėi ¢ źšīļźąõ (1/72 äēžéģą)"
-
-#~ msgid "Extra GhostScript options"
-#~ msgstr "Äąäąņźīāū˙ īļöūi GhostScript"
-
-#~ msgid "Extra Text options"
-#~ msgstr "Äąäąņźīāū˙ ļąšąģåņšū ņżźńņó"
-
-#~ msgid "Reverse page order"
-#~ msgstr "Ąäāąšīņķū ļąšąäąź ńņąšīķąź"
-
-#~ msgid "Select Remote Printer Connection"
-#~ msgstr "Āūįąš ņūļó ēėó÷żķķ˙ ē ąääąėåķūģ ļšūķņżšąģ"
-
-#~ msgid ""
-#~ "Every printer need a name (for example lp).\n"
-#~ "Other parameters such as the description of the printer or its location\n"
-#~ "can be defined. What name should be used for this printer and\n"
-#~ "how is the printer connected?"
-#~ msgstr ""
-#~ "Źīęķą˙ ÷ąšćą äšóźó, ó ˙źóž ąäļšą¢ė˙žööą ēąäąķķi äė˙ äšóźó, ļąņšąįóå "
-#~ "ļąēķą÷żķķ˙ iģ˙ (ēāū÷ąéķą lp). Äšóći˙ ļąšąģåņšū, ņąźi˙ ˙ź ąļińąķķå "
-#~ "äšóźąšźi öi\n"
-#~ " ˙ćī šąēģåšźąāąķķå, ģīćóöü įūöü ļąēķą÷ąķū. ßźīå iģ˙ äą äšąźóšźi āū "
-#~ "įóäēåöå\n"
-#~ "ńźąšūńņī¢āąöü i ˙ź ćżņą˙ äšóźąšźą äąėó÷ąåööą?"
-
-#~ msgid ""
-#~ "Every print queue (which print jobs are directed to) needs a\n"
-#~ "name (often lp) and a spool directory associated with it. What\n"
-#~ "name and directory should be used for this queue and how is the printer "
-#~ "connected?"
-#~ msgstr ""
-#~ "Źīęķą˙ ÷ąšćą äšóźó, ó ˙źóž ąäļšą¢ė˙žööą ēąäąķķi äė˙ äšóźó, ļąņšąįóå "
-#~ "ļąēķą÷żķķ˙ iģ˙ (ēāū÷ąéķą lp) i ńļąėó÷ąķąćą ē øž źąņąėīćó ńļóėiķćó. "
-#~ "Ļąēķą÷öå iģ˙ i źąņąėīć äė˙ ÷ąšći."
-
-#~ msgid "Name of queue"
-#~ msgstr "Iģ˙ ÷ąšći äšóźó"
-
-#~ msgid "Spool directory"
-#~ msgstr "Äūšżźņīšū˙ ńļóėiķćó"
-
-#, fuzzy
-#~ msgid "Disable"
-#~ msgstr "Ņąįėiöą"
-
-#, fuzzy
-#~ msgid "Enable"
-#~ msgstr "Ņąįėiöą"
-
-#~ msgid ""
-#~ "To enable a more secure system, you should select \"Use shadow file\" "
-#~ "and\n"
-#~ "\"Use MD5 passwords\"."
-#~ msgstr ""
-#~ "Źąį óēģąöķiöü į˙ńļåźó ńińņżģū, ķåąįõīäķą ąįšąöü \"Ńźąšūńņąöü ńõąāąķū ōąéė"
-#~ "\"\n"
-#~ "i \"Ńźąšūńņąöü ļąšīėi MD5\"."
-
-#~ msgid ""
-#~ "If your network uses NIS, select \"Use NIS\". If you don't know, ask "
-#~ "your\n"
-#~ "network administrator."
-#~ msgstr ""
-#~ "Źąėi ¢ āąųąé ńåņöū āūźąšūńņī¢āąåööą NIS, ąį˙šūöå \"Ńźąšūńņī¢āąöü NIS\". "
-#~ "Źąėi\n"
-#~ "ķå āåäąåöå, ēąļūņąéöå ąäģiķińņšąņąšą ńåņźi."
-
-#~ msgid "yellow pages"
-#~ msgstr "ęī¢ņū˙ ńņąšīķźi"
-
-#, fuzzy
-#~ msgid "Light configuration"
-#~ msgstr "Ķąńņšīéźą ADSL"
-
-#~ msgid "Provider dns 1"
-#~ msgstr "DNS 1 ļšąāąéäąšó"
-
-#~ msgid "Provider dns 2"
-#~ msgstr "DNS 2 ļšąāąéäąšó"
-
-#~ msgid "How do you want to connect to the Internet?"
-#~ msgstr "ßź āū ļėąķóåöå äąėó÷ūööą äą Iķņżšķżņó?"
-
-#, fuzzy
-#~ msgid "Selected size %d%s"
-#~ msgstr "Ąį˙šūöå ōąéė"
-
-#, fuzzy
-#~ msgid "Opening your connection..."
-#~ msgstr "ßźi ņūļ āąųąćą ISDN ēėó÷żķķ˙?"
-
-#, fuzzy
-#~ msgid "Configure..."
-#~ msgstr "Ķąńņšīéźą IDE"
-
-#, fuzzy
-#~ msgid "Configuration de Lilo/Grub"
-#~ msgstr "Ķąńņšīéźą: Äąäąöü źšūķiöó"
-
-#~ msgid "This startup script try to load your modules for your usb mouse."
-#~ msgstr " Ćżņū ļóńźąāū ńźšūļņ ąäķą¢ė˙å ¢ńå ģīäóėi äė˙ usb ģūųū."
-
-#, fuzzy
-#~ msgid "Boot style configuration"
-#~ msgstr "Ķąńņšīéźą ļąńė˙ ¢ńņąė˙āąķķ˙"
-
-#, fuzzy
-#~ msgid ""
-#~ "Now that your Internet connection is configured,\n"
-#~ "your computer can be configured to share its Internet connection.\n"
-#~ "Note: you need a dedicated Network Adapter to set up a Local Area Network "
-#~ "(LAN).\n"
-#~ "\n"
-#~ "Would you like to setup the Internet Connection Sharing?\n"
-#~ msgstr ""
-#~ "Āąų źąģļ'žņąš ģīęą įūöü ńźąķō³ćóšąāąķū ķą ńóģåńķąå āūźąšūńņąķķå\n"
-#~ " ²ķņżšķżņó (Internet Connection Sharing)?\n"
-#~ "\n"
-#~ "Ēą¢āąćą: āąģ ļąņšżįķū ńåņźąāū ąäąļņąš äė˙ ļąäźėž÷żķķ˙ äą ĖĀŃ.\n"
-#~ "\n"
-#~ "Āū ęąäąåöå óńņąė˙āąöü ńóģåńķū äīńņóļ äą Internet?"
-
-#~ msgid "Automatic dependencies"
-#~ msgstr "Ļšąāåšźą ēąėåęķąńö˙¢"
-
-#~ msgid "Configure LILO/GRUB"
-#~ msgstr "Ķąńņšīéźą LILO/GRUB"
-
-#~ msgid "Create a boot floppy"
-#~ msgstr "Ńņāąšūöü ēąćš. äūńź"
-
-#~ msgid "Choice"
-#~ msgstr "Āūįąš"
-
-#, fuzzy
-#~ msgid "gMonitor"
-#~ msgstr "Ģąķiņīš"
-
-#~ msgid "Miscellaneous"
-#~ msgstr "Šīēķąå"
-
-#~ msgid "Miscellaneous questions"
-#~ msgstr "Äąäąņźīāū˙ ļūņąķķi"
-
-#~ msgid "Can't use supermount in high security level"
-#~ msgstr "Ķå ģąćó āūźąšūńņī¢āąöü ģąķöišąāąķķå ļšū āūńīźiģ óēšī¢ķi į˙ńļåźi"
-
-#~ msgid ""
-#~ "beware: IN THIS SECURITY LEVEL, ROOT LOGIN AT CONSOLE IS NOT ALLOWED!\n"
-#~ "If you want to be root, you have to login as a user and then use \"su\".\n"
-#~ "More generally, do not expect to use your machine for anything but as a "
-#~ "server.\n"
-#~ "You have been warned."
-#~ msgstr ""
-#~ "Ēąńö˙šīćą: ĻŠŪ ĀŪŃĪŹIĢ ÓĒŠĪĶI ĮßŃĻÅŹI ĀĄÕĪÄ ßŹ ROOT Ē ŹĄĶŃĪĖI ĶÅ "
-#~ "ÄĄĒĀĄĖßÅÖÖĄ!\n"
-#~ "Źąėi āū ęąäąåöå ¢āąõīäēiöü ˙ź root, óāąõīäēüöå ˙ź źąšūńņąėüķiź, ēąņūģ \n"
-#~ "āūźīķāąéöå \"su\".Ó ņąźiģ āūļąäźó, ģīęąöå āūźąšūńņī¢āąöü ģąųūķó ķå äė˙ "
-#~ "¢ń˙ćī,\n"
-#~ "ą ņīėüźi ˙ź ńåšāåš.\n"
-#~ "Ģąéöå ķą ¢āąēå, ųņī āū įūėi ļąļ˙šżäęąķū˙."
-
-#~ msgid ""
-#~ "Be carefull, having numlock enabled causes a lot of keystrokes to\n"
-#~ "give digits instead of normal letters (eg: pressing `p' gives `6')"
-#~ msgstr ""
-#~ "Įóäēüöå ¢āąęėiāū, óźėž÷żķķå NumLock ģīęą ļšūāåńöi äą ļąģūėźīāąé\n"
-#~ "ļšąöū źėąāi˙ņóšū (ķąļšūźėąä, ķąöińź ķą `p' äąå `6')."
-
-#, fuzzy
-#~ msgid "Actions"
-#~ msgstr "Šąēģåšźąāąķķå"
-
-#~ msgid "Scientific applications"
-#~ msgstr "Ķąāóźīāū˙ ļšūźėąäąķķ³"
-
-#~ msgid "First DNS Server"
-#~ msgstr "Ļåšųū ńåšāåš DNS"
-
-#~ msgid "Second DNS Server"
-#~ msgstr "Äšóći ńåšāåš DNS:"
-
-#, fuzzy
-#~ msgid "using module"
-#~ msgstr "Šżęūģ ēėó÷żķķ˙"
-
-#~ msgid "%s is already in use"
-#~ msgstr "%s óęī āūźąšūńņī¢āąåööą"
-
-#~ msgid "%s: This is not a root partition, please select another one."
-#~ msgstr "%s: Ćżņą ķå źąšąķøāū šąēäēåė, źąėi ėąńźą ąį˙šūöå iķųū."
-
-#~ msgid "(may cause data corruption)"
-#~ msgstr "(ģīęą āūēāąöü ēķių÷żķķå äąäēåķūõ)"
-
-#~ msgid ", %U MB"
-#~ msgstr ", %U MB"
-
-#~ msgid "ASCII MieMouse"
-#~ msgstr "ASCII MieMouse"
-
-#~ msgid "ASCII MieMouse (serial)"
-#~ msgstr "ASCII MieMouse (ļąńė˙äī¢ķą˙)"
-
-#~ msgid "ATI Bus Mouse"
-#~ msgstr "ATI Bus Mouse"
-
-#~ msgid "Add location of packages"
-#~ msgstr "Äąäąöü źšūķiöó ļąźåņą¢"
-
-#~ msgid "After %s partition %s,"
-#~ msgstr "Ļąńė˙ %s šąēįåéöå %s,"
-
-#~ msgid "Alcatel modem"
-#~ msgstr "Ģąäżģ Alcatel"
-
-#~ msgid ""
-#~ "Any partitions that have been newly defined must be formatted for\n"
-#~ "use (formatting meaning creating a filesystem). At this time, you may\n"
-#~ "wish to re-format some already existing partitions to erase the data\n"
-#~ "they contain. Note: it is not necessary to re-format pre-existing\n"
-#~ "partitions, particularly if they contain files or data you wish to keep.\n"
-#~ "Typically retained are /home and /usr/local."
-#~ msgstr ""
-#~ "Óńå āūēķą÷ąķū˙ šąēäēåėū ļąāiķķū įūöü ąäōąšģąņąāąķū äė˙ āūźąšūńņąķķ˙\n"
-#~ "(ōąšģąņąāąķķå ēķą÷ūöü ńņāąšżķķå ōąéėąāąé ńińņżģū). Ó ćżņąé ńiņóąöūi\n"
-#~ "ģīęķą ļåšąōąņąāąöü óęī ińķóž÷ū˙ šąēäēåėū äēåė˙ ēķių÷żķķ˙ äąäēåķūõ,\n"
-#~ "˙źi˙ ēķąõīäē˙ööą ķą iõ. Ēą¢āąćą: ōąšģąņąāąöü ińķóž÷ū˙ šąēäēåėū ķå "
-#~ "ąįąā˙ēźīāą,\n"
-#~ "ąńąįėiāą źąėi ˙ķū ēģ˙ų÷ąžöü ōąéėū i äąäēåķū˙, ˙źi˙ āū ęąäąåöå ēąõąāąöü.\n"
-#~ "Ēāū÷ąéķą ēąõī¢āąžöü /home i /usr/local."
-
-#~ msgid "Apple ADB Mouse"
-#~ msgstr "Apple ADB Ģūų"
-
-#~ msgid "Apple ADB Mouse (2 Buttons)"
-#~ msgstr "Apple ADB Ģūų (2 źķīļźi)"
-
-#~ msgid "Apple ADB Mouse (3+ Buttons)"
-#~ msgstr "Apple ADB Ģūų (3 źķīļźi öi įīėåé)"
-
-#~ msgid "Apple USB Mouse"
-#~ msgstr "Apple USB Ģūų"
-
-#~ msgid "Apple USB Mouse (2 Buttons)"
-#~ msgstr "Apple USB Ģūų (2 źķīļźi)"
-
-#~ msgid "Apple USB Mouse (3+ Buttons)"
-#~ msgstr "Apple USB Ģūųü (3 źķīļźi öi įīėåé)"
-
-#~ msgid ""
-#~ "Are you sure you are an expert? \n"
-#~ "You will be allowed to make powerful but dangerous things here.\n"
-#~ "\n"
-#~ "You will be asked questions such as: ``Use shadow file for passwords?'',\n"
-#~ "are you ready to answer that kind of questions?"
-#~ msgstr ""
-#~ "Āū ¢ļż¢ķåķū, ųņī ēģīęąöå ļšąö˙ćķóöü ļšąöżń óńņąė˙āąķķ˙ ˙ź żźńļåšņ?\n"
-#~ "Ó ćżņūģ āūļąäźó Āū įóäēåöå ģåöü įīėüųū źąķņšīėü ķąä ļšąöżńąģ "
-#~ "óńņąė˙āąķķ˙,\n"
-#~ "ąėå āūķiźi ļąģūėźi ģīćóöü įūöü ōąņąėüķū˙.\n"
-#~ "\n"
-#~ "Āąģ įóäóöü ēąäąäēåķū, ķąļšūźėąä, ņąźi˙ ļūņąķķi: ``Öi āūźąšūńņī¢āąöü "
-#~ "öåķ˙āū\n"
-#~ "ōąéė ļąšīė˙¢?'' Öi ļąäšūõņąāąķū āū äą ąäźąēó ķą ćżņū˙ ļūņąķķi?"
-
-#~ msgid ""
-#~ "At this point, you may choose what partition(s) to use to install\n"
-#~ "your Mandrake Linux system if they have been already defined (from a\n"
-#~ "previous install of GNU/Linux or from another partitioning tool). In "
-#~ "other\n"
-#~ "cases, hard drive partitions must be defined. This operation consists of\n"
-#~ "logically dividing the computer's hard drive capacity into separate\n"
-#~ "areas for use.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you have to create new partitions, use \"Auto allocate\" to "
-#~ "automatically\n"
-#~ "create partitions for GNU/Linux. You can select the disk for partitioning "
-#~ "by\n"
-#~ "clicking on \"hda\" for the first IDE drive,\n"
-#~ "\"hdb\" for the second or \"sda\" for the first SCSI drive and so on.\n"
-#~ "\n"
-#~ "\n"
-#~ "Two common partition are: the root partition (/), which is the starting\n"
-#~ "point of the filesystem's directory hierarchy, and /boot, which contains\n"
-#~ "all files necessary to start the operating system when the\n"
-#~ "computer is first turned on.\n"
-#~ "\n"
-#~ "\n"
-#~ "Because the effects of this process are usually irreversible, "
-#~ "partitioning\n"
-#~ "can be intimidating and stressful to the unexperienced user. DiskDrake\n"
-#~ "simplifies the process so that it must not be. Consult the documentation\n"
-#~ "and take your time before proceeding.\n"
-#~ "\n"
-#~ "\n"
-#~ "You can reach any option using the keyboard: navigate through the "
-#~ "partitions\n"
-#~ "using Tab and Up/Down arrows. 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"
-#~ msgstr ""
-#~ "Ēąšąē ģīęķą āūēķą÷ūöü, ˙źi˙ šąēäēåėū āūźąšūńņī¢āąöü äė˙ ¢ńņąė˙āąķķ˙\n"
-#~ "āąųąé ńińņżģū Mandrake Linux, źąėi ˙ķū ¢ęī įūėi ēąäąäēåķū (ļšū "
-#~ "ļąļ˙šżäķ³ģ\n"
-#~ "¢ńņąė˙āąķķ³ Linux ąėüįī iķųąé ļšąöżäóšąé šąēįiöö˙). Ó iķųūõ āūļąäźąõ\n"
-#~ "šąēäēåėū ęīšńņźąćą äūńźó ļąāiķķū įūöü ļąēķą÷ąķū. Ćżņą ąļåšąöū˙ ńźėąäąåööą "
-#~ "ē\n"
-#~ "ėąći÷ķąćą šąēįiöö˙ äūńźąāąé ļšąńņīšū źąģļ'žņżšó ķą ķåźąėüźi\n"
-#~ "āīįėąńöåé āūźąšūńņąķķ˙.\n"
-#~ "\n"
-#~ "\n"
-#~ "Źąėi āū ļėąķóåöå ńņāąšąöü ķīāū˙ šąēäēåėū, ņąäū ģīęąöå ńźąšūńņąöü šżęūģ\n"
-#~ "\"Ą¢ņą šąēģ˙ų÷żķķå\", źąį ą¢ņąģąņū÷ķą ńņāąšūöü šąēäēåėū GNU/Linux. Āū "
-#~ "ģīęąöå\n"
-#~ "ļąēķą÷ūöü äūńź äė˙ šąēįiöö˙, ķąöińķó¢ųū ķą \"hda\" äė˙ ļåšųąćą IDE "
-#~ "äūńźó,\n"
-#~ "\"hdb\" äė˙ äšóćīćą äūńźó öi \"sda\" äė˙ ļåšųąćą SCSI äūńźó i ć.ä.\n"
-#~ "\n"
-#~ "\n"
-#~ "Äāą ēāū÷ąéķū˙ šąēäēåėū ķąńņóļķū˙: źąšżķķū šąēäēåė (/), ˙źi ē'˙¢ė˙åööą "
-#~ "ļą÷ąņźīāūģ\n"
-#~ "ļóķźņąģ iåšąšõii źąņąėąćą¢ ōąéėąāąé ńińņżģū, i /boot, ˙źi ēģ˙ų÷ąå ¢ńå\n"
-#~ "ōąéėū, ķåąįõīäķū˙ äė˙ ēąļóńźó ąļåšąöūéķąé ńińņżģū ļšū ¢źėž÷żķķi "
-#~ "źąģļ'žņżšó.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ļąźīėüźi āūķiźi ćżņąćą ļšąöżńó ēāū÷ąéķą ķåēāąšīņķū˙, šąēįiööø ķą "
-#~ "šąēäēåėū\n"
-#~ "ģīęą ķąļąėīõąöü ķąāi÷źą. DiskDrake ńļšąų÷ąå ćżņū ļšąöżń, ņąģó ķąļšóęąķķå\n"
-#~ "ļąāiķķą ēķiģąööą. Ļąćė˙äēiöå äąźóģåķņąöūž i ļąäšūõņóéöåń˙ ąäšąēó.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ņąźńąģą ėžįóž ąļåšąöūž ķąä šąēäēåėąģ āū ģīęąöå āūźąķąöąü ē äąļąģīćąé\n"
-#~ "źėąāi˙ņóšū, ķąļšūźėąä ļåšąģ˙ų÷ąööą ļąģię šąēäēåėąģi ē äąļąģīćąé źėąāiųą¢ "
-#~ "Tab\n"
-#~ "i Up/Down. Źąėi šąēäēåė ąįšąķū, āū ģīęąöå āūźąšūńņī¢āąöü:\n"
-#~ "\n"
-#~ "- Ctrl-c źąį ńņāąšūöü ķīāū šąēäēåė (źąėi ļąļ˙šżäķå ąįšąķū ļóńņū "
-#~ "šąēäēåė)\n"
-#~ "\n"
-#~ "- Ctrl-d źąį āūäąėiöü šąēäēåė\n"
-#~ "\n"
-#~ "- Ctrl-m źąį ļąēķą÷ūöü ļóķźņ ģąķöišąāąķķ˙.\n"
-
-#~ msgid "Auto install floppy"
-#~ msgstr "Ą¢ņą³ķńņąė˙öū˙ ōėīļi"
-
-#~ msgid "Automatic resolutions"
-#~ msgstr "Ą¢ņąģąņū÷ķąå āūēķą÷żķķå ļąģåšą¢ żźšąķó"
-
-#~ msgid "Automatical resolutions search"
-#~ msgstr "Ą¢ņąģąņū÷ķū ļīųóź ļąģåšą¢ żźšąķó"
-
-#~ msgid "Available packages"
-#~ msgstr "Äąńņóļķū˙ ļąźåņū"
-
-#~ msgid "Bad kickstart file %s (failed %s)"
-#~ msgstr "Äšżķķū ńņąšņąāū (kickstart) ōąéė %s (ļąģūėźą %s)"
-
-#~ msgid "Category"
-#~ msgstr "Źąņżćīšū˙"
-
-#~ msgid ""
-#~ "Chat (IRC or instant messaging) programs such as xchat, licq, gaim, and "
-#~ "file transfer tools"
-#~ msgstr ""
-#~ "Ļšąćšąģū Chat (IRC or instant messaging), ņūļó xchat, licq, gaim ³ ć.ä."
-
-#~ msgid "Checking dependencies"
-#~ msgstr "Ļšąāåšźą ēąėåęķąńö˙¢"
-
-#~ msgid ""
-#~ "Choose \"Install\" if there are no previous versions of GNU/Linux\n"
-#~ "installed, or if you wish to use multiple distributions or versions.\n"
-#~ "\n"
-#~ "Choose \"Rescue\" if you wish to rescue a previous version of Mandrake "
-#~ "Linux:\n"
-#~ "%s or %s.\n"
-#~ "\n"
-#~ "\n"
-#~ "Select:\n"
-#~ "\n"
-#~ " - Recommended: If you have never installed GNU/Linux before, choose "
-#~ "this.\n"
-#~ "\n"
-#~ " - Customized: If you are familiar enough with GNU/Linux, you may then "
-#~ "choose\n"
-#~ " the primary usage for your machine. See below for details.\n"
-#~ "\n"
-#~ " - Expert: This supposes that you are fluent with GNU/Linux and want to\n"
-#~ " perform a highly customized installation. As for a \"Customized\"\n"
-#~ " installation class, you will be able to select the usage for your "
-#~ "system.\n"
-#~ " But please, please, DO NOT CHOOSE THIS UNLESS YOU KNOW WHAT YOU ARE "
-#~ "DOING!\n"
-#~ msgstr ""
-#~ "Ąį˙šūöå \"Óńņąė˙āąöü\", źąėi ¢ āąń ˙ų÷ż ķå ¢ńņąė˙āąķą ķi āīäķąé āåšńii\n"
-#~ "GNU/Linux, ąėüįī, źąėi āū ęąäąåöå āūźąšūńņī¢āąöü ķåźąėüźi āåšńi˙¢ öi "
-#~ "äūńņšūįóņūāą¢.\n"
-#~ "\n"
-#~ "Ąį˙šūöå \"Āūšąņąāąöü\", źąėi āū ęąäąåöå āūšąņąāąöü ķåļšąöóž÷óž ļąļ˙šżäķžž "
-#~ "āåšńiž Mandrake Linux:\n"
-#~ "%s ąėüįī %s.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ąį˙šūöå:\n"
-#~ "\n"
-#~ " - Šżźąģåķäóåööą: Źąėi āū šąķåé ķiźīėi ķå ¢ńņąėø¢āąėi \n"
-#~ " GNU/Linux, āūį˙šūöå ćżņū šżęūģ.\n"
-#~ "\n"
-#~ " - Ļą āūįąšó: Ćżņū šżęūģ šżźąģåķäóåööą ¢ ņūģ āūļąäźó, źąėi āū "
-#~ "ļšąöąāąėi \n"
-#~ " šąķåé ē GNU/Linux, i ēģīęąöå ńąģi āūįšąöü ķåąįõīäķū˙\n"
-#~ " ļąźåņū i ąįńņąė˙āąķķå äė˙ āąųąćą źąģļóņąšó. Ćė˙äēiöå ķiężé "
-#~ "ļąäšąį˙ēķąńö³.\n"
-#~ "\n"
-#~ " - Żźńļåšņ: Āūįąš ćżņąćą šżęūģó ńāåä÷ūöü, ųņī āū ńāąįīäķą āąėīäąåöå GNU/"
-#~ "Linux\n"
-#~ " i ęąäąåöå āūźąšūńņī¢āąöü āåėüģi äżņąėøāąå ńņąė˙āąķķå. ßź i ¢ "
-#~ "āūļąäźó\n"
-#~ " \"Ļą āūįąšó\"āąģ ļąņšżįķą įóäēå āūįšąöü ķåąįõīäķū˙ ļšąćšąģū i \n"
-#~ " ąįńņąė˙āąķķå āąųąćą źąģļóņąšó.\n"
-#~ " Źąėi ėąńźą, ĶÅ ĄĮIŠĄÉÖÅ ĆŻŅŪ ŠŻĘŪĢ, ŹĄĖI ĶÅ ĻŻĶÅĶŪ, ŲŅĪ ŠĪĮIÖÅ "
-#~ "ĻŠĄĀIĖÜĶĄ!\n"
-
-#~ msgid ""
-#~ "Choose \"Install\" if there are no previous versions of GNU/Linux\n"
-#~ "installed, or if you wish to use multiple distributions or versions.\n"
-#~ "\n"
-#~ "Choose \"Rescue\" if you wish to rescue a version of Mandrake Linux "
-#~ "already installed.\n"
-#~ "\n"
-#~ "\n"
-#~ "Select:\n"
-#~ "\n"
-#~ " - Recommended: If you have never installed GNU/Linux before, choose "
-#~ "this.\n"
-#~ "\n"
-#~ " - Customized: If you are familiar enough with GNU/Linux, you may then "
-#~ "choose\n"
-#~ " the primary usage for your machine. See below for details.\n"
-#~ "\n"
-#~ " - Expert: This supposes that you are fluent with GNU/Linux and want to\n"
-#~ " perform a highly customized installation. As for a \"Customized\"\n"
-#~ " installation class, you will be able to select the usage for your "
-#~ "system.\n"
-#~ " But please, please, DO NOT CHOOSE THIS UNLESS YOU KNOW WHAT YOU ARE "
-#~ "DOING!\n"
-#~ msgstr ""
-#~ "Ąį˙šūöå \"Óńņąė˙āąöü\", źąėi ¢ āąń ˙ų÷ż ķå ¢ńņąė˙āąķą ķi ąäķīé āåšńii\n"
-#~ "GNU/Linux, ąėüįī, źąėi āū ęąäąåöå āūźąšūńņī¢āąöü ķåźąėüźi āåšńi˙¢ öi "
-#~ "äūńņšūįóņūāą¢.\n"
-#~ "\n"
-#~ "Ąį˙šūöå \"Āūšąņąāąöü\", źąėi āū ęąäąåöå āūšąņąāąöü ķåļšąöóž÷óž ļąļ˙šżäķžž "
-#~ "āåšńiž Mandrake Linux:\n"
-#~ "\n"
-#~ "\n"
-#~ "Ąį˙šūöå:\n"
-#~ "\n"
-#~ " - Šżźąģåķäóåööą: Źąėi āū šąķåé ķiźīėi ķå ¢ńņąėø¢āąėi \n"
-#~ " GNU/Linux, ąį˙šūöå ćżņū šżęūģ.\n"
-#~ "\n"
-#~ " - Ļą āūįąšó: Ćżņū šżęūģ šżźąģåķäóåööą ¢ ņūģ āūļąäźó, źąėi āū "
-#~ "ļšąöąāąėi \n"
-#~ " šąķåé ē GNU/Linux, i ēäīėååöå ńąģi āūįšąöü ķåąįõīäķū˙\n"
-#~ " ļąźåņū i ąįńņąė˙āąķķå äė˙ āąųąćą źąģļóņąšó. Ćė˙äēiöå ķiężé "
-#~ "ļąäšąį˙ēķąńö³.\n"
-#~ "\n"
-#~ " - Żźńļåšņ: Āūįąš ćżņąćą šżęūģó ńāåä÷ūöü, ųņī āū ńāąįīäķą āąėīäąåöå GNU/"
-#~ "Linux\n"
-#~ " i ęąäąåöå āūźąšūńņī¢āąöü āåėüģi äżņąėøāąå ńņąė˙āąķķå. ßź i ¢ "
-#~ "āūļąäźó \n"
-#~ " \"Ļą āūįąšó\"āąģ ļąņšżįķą įóäēå āūįšąöü ķåąįõīäķū˙ ļšąćšąģū i \n"
-#~ " ąįńņąė˙āąķķå āąųąćą źąģļóņąšó.\n"
-#~ " Źąėi ėąńźą, ĶÅ ĄĮIŠĄÉÖÅ ĆŻŅŪ ŠŻĘŪĢ, ŹĄĖI ĶÅ ĻŻĶÅĶŪ, ŲŅĪ ŠĪĮIÖÅ "
-#~ "ĻŠĄĀIĖÜĶĄ!\n"
-
-#~ msgid ""
-#~ "Choose \"Install\" if there are no previous versions of Linux\n"
-#~ "installed, or if you wish to use multiple distributions or versions.\n"
-#~ "\n"
-#~ "\n"
-#~ "Choose \"Upgrade\" if you wish to update a previous version of Mandrake\n"
-#~ "Linux: 5.1 (Venice), 5.2 (Leloo), 5.3 (Festen), 6.0 (Venus), 6.1\n"
-#~ "(Helios) or Gold 2000."
-#~ msgstr ""
-#~ "Ąį˙šūöå \"Óńņąė˙āąķķå\", źąėi ķ˙ģą ¢ńņąė˙āąķūõ šąķåé āåšń³˙¢ Linux,\n"
-#~ "ąėüįī źąėi ęąäąåöå āūźąšūńņī¢āąöü ķåźąėüźi äūńņšūįóņūāą¢ ąėüįī āåšńū˙¢.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ąį˙šūöå \"Ąįķąāiöü\" źąėi āū ęąäąåöå ąįķąāiöü ļąļ˙šżäķžž āåšńiž\n"
-#~ "Mandrake Linux: 5.1 (Venice), 5.2 (Leeloo), 5.3 (Festen), 6.0 (Venus),\n"
-#~ "6.1 (Helios) ąėüįī Gold 2000."
-
-#~ msgid "Collapse all"
-#~ msgstr "Ēćąšķóöü óńø"
-
-#~ msgid "Communication facilities"
-#~ msgstr "Ńšīäź³ źąģóķ³źąöū˙¢"
-
-#~ msgid "Configure LAN"
-#~ msgstr "Ķąńņšīéźą ńåņźi (ĖĀŃ)"
-
-#~ msgid "Configure timezone"
-#~ msgstr "Ķąńņšīéźą ÷ąńąāīćą ļī˙ńó"
-
-#~ msgid "Confirm Password"
-#~ msgstr "Ļąäöāåšäēiöü ļąšīėü"
-
-#~ msgid "Connect to Internet using Cable"
-#~ msgstr "Äąėó÷ūööą äą Iķņżšķżņ ļšąē źąįåėü (ńåņźó)"
-
-#~ msgid "Connect to Internet using DSL (or ADSL)"
-#~ msgstr "Äąėó÷ūööą äą iķņżšķżņ ļšąē DSL (öi ADSL)"
-
-#~ msgid "Connect to Internet using ISDN"
-#~ msgstr "Ēėó÷żķķå ē iķņżšķżņ ļą ISDN"
-
-#~ msgid "Connect to Internet with a normal modem"
-#~ msgstr "Ēėó÷żķķå ē iķņżšķżņ ļšąē ēāū÷ąéķū ģąäżģ"
-
-#~ msgid "Could not install bind RPM with urpmi."
-#~ msgstr "Ķå ąņšūģė³āąåööą ¢ńņąė˙āąöü RPM ``bind'' ē äąļąģīćąé urpmi."
-
-#~ msgid "Could not install caching-nameserver RPM with urpmi."
-#~ msgstr ""
-#~ "Ķå ąņšūģė³āąåööą ¢ńņąė˙āąöü RPM źżųóž÷ąćą ńåšāåšó ³ģøķą¢ ē äąļąģīćąé "
-#~ "urpmi."
-
-#~ msgid "Could not install dhcp RPM with urpmi."
-#~ msgstr "Ķå ąņšūģė³āąåööą ¢ńņąė˙āąöü RPM ``dhcp'' ē äąļąģīćąé urpmi."
-
-#~ msgid "Could not install ipchains RPM with urpmi."
-#~ msgstr "Ķå ąņšūģė³āąåööą ¢ńņąė˙āąöü RPM ``ipchains'' ē äąļąģīćąé urpmi."
-
-#~ msgid "Could not install linuxconf RPM with urpmi."
-#~ msgstr "Ķå ąņšūģė³āąåööą ¢ńņąė˙āąöü RPM ``linuxconf'' ē äąļąģīćąé urpmi."
-
-#~ msgid "Cryptographic"
-#~ msgstr "Źšūļņąćšąōi˙"
-
-#~ msgid "Customized"
-#~ msgstr "Ļą āūįąšó"
-
-#~ msgid "Czech"
-#~ msgstr "×åųńźi"
-
-#~ msgid "Databases clients and servers (mysql and postgresql)"
-#~ msgstr "Ńåšāåšū ³ źė³åķņū įąēą¢ äąäēåķūõ (mysql and postgresql)"
-
-#~ msgid "Directory"
-#~ msgstr "Źąņąėīć"
-
-#~ msgid "Do not set up networking"
-#~ msgstr "Ķå ¢ńņąėø¢āąöü ńåņźó"
-
-#~ msgid "Do you want to configure a ISDN connection for your system?"
-#~ msgstr "Öi ęąäąåöå āū ķąńņšīiöü ISDN ēėó÷żķķå ¢ āąųąé ńińņżģå?"
-
-#~ msgid ""
-#~ "Do you want to configure a dialup connection with modem for your system?"
-#~ msgstr "Öi ęąäąåöå āū ķąńņšīiöü źąģóņąāąķąå ēėó÷żķķå ļšąē ģąäżģ äą ńińņżģū?"
-
-#~ msgid "Do you want to configure a local network for your system?"
-#~ msgstr "Öi ęąäąåöå āū ķąńņšīiöü ńåņźąāóž źąķōićóšąöūž āąųąé ńińņżģū?"
-
-#~ msgid "Downloading cryptographic packages"
-#~ msgstr "Ēąćšóēźą źšūļņąćšąōi÷ķūõ ļąźåņą¢"
-
-#~ msgid ""
-#~ "DrakX will attempt at first to look for one or more PCI\n"
-#~ "SCSI adapter(s). If it finds it (or them) and knows which driver(s)\n"
-#~ "to use, it will insert it (them) automatically.\n"
-#~ "\n"
-#~ "\n"
-#~ "If your SCSI adapter is an ISA board, or is a PCI board but DrakX\n"
-#~ "doesn't know which driver to use for this card, or if you have no\n"
-#~ "SCSI adapters at all, you will then be prompted on whether you have\n"
-#~ "one or not. If you have none, answer \"No\". If you have one or more,\n"
-#~ "answer \"Yes\". A list of drivers will then pop up, from which you\n"
-#~ "will have to select one.\n"
-#~ "\n"
-#~ "\n"
-#~ "After you have selected the driver, DrakX will ask if you\n"
-#~ "want to specify options for it. First, try and let the driver\n"
-#~ "probe for the hardware: it usually works fine.\n"
-#~ "\n"
-#~ "\n"
-#~ "If not, do not forget the information on your hardware that you\n"
-#~ "could get from your documentation or from Windows (if you have it\n"
-#~ "on your system), as suggested by the installation guide. These\n"
-#~ "are the options you will need to provide to the driver."
-#~ msgstr ""
-#~ "DrakX ńļą÷ąņźó ļąńļšąįóå ēķąéöi ąäēiķ öi ķåźąėüźi ąäąļņżšą¢ PCI\n"
-#~ "i SCSI. Źąėi ąäąļņżš ēķīéäēåķ, i DrakX ā˙äīģą, ˙źi äšąéāåš\n"
-#~ "äė˙ ˙ćī ļąņšżįķū, ćżņą˙ ļšūėąäą įóäēå äąėó÷ąķą ą¢ņąģąņū÷ķą.\n"
-#~ "\n"
-#~ "Źąėi āū ģąåöå SCSI ąäąļņżš ķą ISA-, ąėüįī PCI-źąšöå, ąėå DrakX ķå āåäąå\n"
-#~ "˙źi äšąéāåš ńźąšūńņąöü ē ćżņąé źąšņąé, öi DrakX ėč÷ūöü, ųņī āū ķå ģąåöå\n"
-#~ "SCSI ąäąļņżšą¢ ķąāīćóė, ó āąń ēąļūņąžöü, öi øńöü øķ ó āąń ąėüįī ķå.\n"
-#~ "Źąėi ¢ āąń ˙ćī ķ˙ģą, ąäźąēāąéöå \"Ķå\". Źąėi øńņü ąäēiķ öi ķåźąėüźi,\n"
-#~ "ąäźąēāąéöå \"Ņąź\". Ļąńė˙ ćżņąćą ē'˙āiööą ńļiń äšąéāåšą¢, ē ˙źiõ āąģ\n"
-#~ "ļąņšżįķą įóäēå āūįšąöü ļąäūõīäē˙÷ū.\n"
-#~ "\n"
-#~ "Ļąńė˙ āūįąšó äšąéāåšó, DrakX ēąļūņąå, öi ķå ęąäąåöå āū ēąäąöü\n"
-#~ "äė˙ ˙ćī äąäąņźīāū˙ ķąńņšīéźi. Ńļą÷ąņźó ķ˙õąé äšąéāåš ļšąāåšūöü "
-#~ "ąįńņąė˙āąķķå:\n"
-#~ "ēāū÷ąéķą ¢ńø ļšąöóå äīįšą.\n"
-#~ "\n"
-#~ "Ó ąäāąšīņķūģ āūļąäźó, ķå ēąįūāąéöåń˙ ļšą iķōąšģąöūž ąį ąįńņąė˙āąķķi, "
-#~ "˙źóž\n"
-#~ "ģīęķą ąņšūģąöü ąä Windows (źąėi ˙ķą ļšūńóņķi÷ąå ¢ āąųąé ńińņżģå), ą "
-#~ "ņąźńąģą\n"
-#~ "ļšą äąļąģīęķiź ļą ¢ńņąķķ³ ćżņąé ļšūėąäū. ßķū ēģ˙ų÷ąžöü ņū˙ ķąńņšīéźi, "
-#~ "˙źi˙\n"
-#~ "ķåąįõīäķą ēąäąöü äšąéāåšó."
-
-#~ msgid ""
-#~ "DrakX will generate config files for both XFree 3.3 and XFree 4.0.\n"
-#~ "By default, the 4.0 server is used unless your card is not supported.\n"
-#~ "\n"
-#~ "Do you want to keep XFree 3.3?"
-#~ msgstr ""
-#~ "DrakX ńņāīšūöü źąķōićóšąöūéķū˙ ōąéėū äė˙ XFree 3.3 i XFree 4.0.\n"
-#~ "Ļą äąģą¢ėåķķž āūźąšūńņī¢āąåööą ńåšāåš 4.0. Źąėi Āąųą āiäżąźąšņą ķå\n"
-#~ "ļąäņšūģėiāąåööą iģ, ņąäū ģīęķą āūźąšūńņąöü ńåšāåš 3.3.\n"
-#~ "Öi ęąäąåööå āū ļąźiķóöü XFree 3.3 ¢ ńińņżģå?"
-
-#~ msgid "ECI modem"
-#~ msgstr "Ģąäżģ ECI"
-
-#~ msgid "Enable num lock at startup"
-#~ msgstr "Óźėž÷żķķå num lock ļšū ńņąšöå"
-
-#~ msgid ""
-#~ "Enter a floppy to create an HTP enabled boot\n"
-#~ "(all data on floppy will be lost)"
-#~ msgstr ""
-#~ "Óńņą¢öå äūńźåņó äė˙ ēąļińó ēąćšóē÷ūźó ē HTP\n"
-#~ "(óńå äąäēåķū˙ ķą ćżņąé äūńźåöå įóäóöü ēķių÷ąķū)"
-
-#~ msgid "Everything configured!"
-#~ msgstr "ńø ńźąķōićóšąāąķą!"
-
-#~ msgid "Everything has been configured.\n"
-#~ msgstr "Óńø ńźąķōićóšąāąķą.\n"
-
-#~ msgid "Expand all"
-#~ msgstr "Šąēćąšķóöü óńø"
-
-#~ msgid ""
-#~ "Failed to create an HTP boot floppy.\n"
-#~ "You may have to restart installation and give ``%s'' at the prompt"
-#~ msgstr ""
-#~ "Ķå ąņšūģąėąńü ńņāąšūöü ēąćš. äūńźåņó ē HTP.\n"
-#~ "Ģąć÷ūģą, ļąņšżįķą ļåšąēąļóńöiöü óńņąė˙āąķķå ē ``%s'' ó ēąļšąųżķķi"
-
-#~ msgid "Find Package"
-#~ msgstr "Ļīųóź ļąźåņą¢"
-
-#~ msgid "Find Package containing file"
-#~ msgstr "Ēķąéńöi ļąźåņ, ˙źi ģąå ōąéė"
-
-#~ msgid "Finding leaves"
-#~ msgstr "Ļīųóź ėińņī¢"
-
-#~ msgid "Finding leaves takes some time"
-#~ msgstr "Ļīųóź ėińņī¢ ļąņšąįóå ķåźąņīšū ÷ąń"
-
-#~ msgid ""
-#~ "For FTP and HTTP, you need to give the location for hdlist\n"
-#~ "It must be relative to the URL above"
-#~ msgstr ""
-#~ "Äė˙ FTP i HTTP, āū ļąāiķķū ļąēķą÷ūöü šąēģ˙ų÷żķķå hdlist\n"
-#~ "Ēąäąāąéöå ąäķīńķą šąķåé ļąēķą÷ąķąćą URL"
-
-#~ msgid "Forget the changes?"
-#~ msgstr "Ēąįūöü ēģ˙ķåķķi?"
-
-#~ msgid ""
-#~ "GNU/Linux can deal with many types of printer. Each of these\n"
-#~ "types require a different setup. Note however that the print\n"
-#~ "spooler uses 'lp' as the default printer name; so you\n"
-#~ "must have one printer with such a name; but you can give\n"
-#~ "several names, separated by '|' characters, to a printer.\n"
-#~ "So, if you prefer to have a more meaningful name you just have\n"
-#~ "to put it first, eg: \"My Printer|lp\".\n"
-#~ "The printer having \"lp\" in its name(s) will be the default printer.\n"
-#~ "\n"
-#~ "\n"
-#~ "If your printer is physically connected to your computer, select\n"
-#~ "\"Local printer\". You will then have to tell which port your\n"
-#~ "printer is connected to, and select the appropriate filter.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you want to access a printer located on a remote Unix machine,\n"
-#~ "you will have to select \"Remote lpd\". In order to make\n"
-#~ "it work, no username or password is required, but you will need\n"
-#~ "to know the name of the printing queue on this server.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you want to access a SMB printer (which means, a printer located\n"
-#~ "on a remote Windows 9x/NT machine), you will have to specify its\n"
-#~ "SMB name (which is not its TCP/IP name), and possibly its IP address,\n"
-#~ "plus the username, workgroup and password required in order to\n"
-#~ "access the printer, and of course the name of the printer. The same goes\n"
-#~ "for a NetWare printer, except that you need no workgroup information."
-#~ msgstr ""
-#~ "Linux ģīęą ļšąöąāąöü ńą ųģąņėiźiģi ņūļąģi äšóźąāąėüķūõ ļšūėąäą¢. Źīęķū ē "
-#~ "ćżņūõ\n"
-#~ "ņūļą¢ ļąņšąįóå šīēķąćą ¢ńņąė˙āąķķ˙.\n"
-#~ "\n"
-#~ "\n"
-#~ "Źąėi āąųą ļšūėąäą äė˙ äšóźąāąķķ˙ äąėó÷ąķą ķåļąńšżäķą äą ćżņąćą "
-#~ "źąģļ'žņżšó,\n"
-#~ "ąį˙šūöå \"Ėąźąėüķū ļšūķņżš\". Āąģ įóäēå ļąņšżįķą āūēķą÷ūöü, äą ˙źīćą "
-#~ "ļīšņó\n"
-#~ "äąėó÷ąķą ļšūėąäą i āūįšąöü ļąäūõīäē˙÷ū ōiėüņš.\n"
-#~ "\n"
-#~ "\n"
-#~ "Źąėi āū ęąäąåöå ąņšūģąöü äīńņóļ äą ļšūķņżšó, ˙źi ēķąõīäēiööą ķą "
-#~ "ąääąėåķąé\n"
-#~ "ģąųūķå Unix, ķåąįõīäķą āūįšąöü \"Ąääąėåķą˙ ÷ąšćą lpd\". Źąį ļšūģóńiöü "
-#~ "˙ćī\n"
-#~ "ļšąöąāąöü, iģ˙ i ļąšīėü ķå ļąņšżįķū, ąėå ķåąįõīäķą āåäąöü iģ˙ ÷ąšći "
-#~ "äšóźó\n"
-#~ "ķą ćżņąģ ńåšāåšū.\n"
-#~ "\n"
-#~ "\n"
-#~ "Äė˙ äīńņóļó äą ļšūķņżšó SMB (˙źi ēķąõīäēiööą ķą ąääąėåķąé ģąųūķå\n"
-#~ "Windows 9x/NT/2000 öi Unix ē ńåšāåšąģ Samba), ķåąįõīäķą āåäąöü ˙ćī iģ˙\n"
-#~ "SMB (˙źīå ģīęą ķå ńóļąäąöü ē ˙ćī iģåķåģ ó ńåņźi TCP/IP), i, ģąć÷ūģą,\n"
-#~ "˙ćī IP ąäšąń i iģ˙ źąšūńņąėüķiźó, šąįī÷ąé ćšóļū i ļąšīėü äīńņóļó äą\n"
-#~ "ļšūķņżšó, ą ņąźńąģą iģ˙ ļšūķņżšó. Ņīå ę ńąģąå i äė˙ ļšūķņżšó\n"
-#~ "NetWare, ņīėüźi ķå ļąņšąįóåööą iķōąšģąöū˙ ąį ļšąöīóķąé ćšóļå."
-
-#~ msgid "Genius NetMouse (serial)"
-#~ msgstr "Genius NetMouse (ļąńė˙äī¢ķą˙)"
-
-#~ msgid "Genius NetMouse Pro"
-#~ msgstr "Genius NetMouse Pro"
-
-#~ msgid "Germany (1TR6)"
-#~ msgstr "Ķ˙ģåöźi (1TR6)"
-
-#~ msgid "Give a name (eg: `extra', `commercial')"
-#~ msgstr "Äąéöå iģ˙ (ķąļš.: `extra', `commercial')"
-
-#~ msgid "Going to install %d MB. You can choose to install more programs"
-#~ msgstr ""
-#~ "Įóäēå ¢ńņąė˙āąķą %d Mį. Ģīęķą ąįšąöü įīėüų ļšąćšąģą¢ äė˙ ¢ńņąė˙āąķķ˙."
-
-#~ msgid "Going to remove entry %s"
-#~ msgstr "Įóäēåģ āūäąė˙öü ļóķźņ %s"
-
-#~ msgid ""
-#~ "Here are the following entries in SILO.\n"
-#~ "You can add some more or change the existing ones."
-#~ msgstr ""
-#~ "SILO ēģ˙ų÷ąå ķąńņóļķū˙ ļóķźņū.\n"
-#~ "Āū ģīęąöå äąäąöü ˙ų÷ż, ąėüįī ēģ˙ķiöü ińķóž÷ū˙."
-
-#~ msgid ""
-#~ "I can try to find the available resolutions (eg: 800x600).\n"
-#~ "Sometimes, though, it may hang the machine.\n"
-#~ "Do you want to try?"
-#~ msgstr ""
-#~ "Ģīęķą ļąńļšąįąāąöü ēķąéńöi äąńņóļķū˙ ļąģåšū żźšąķó (ķąļš.: 800x600).\n"
-#~ "Ó āåėüģi šżäźiģ āūļąäźó ćżņą ģīęą ļšūāåńöi äą ńļūķåķķ˙ źąģļ'žņąšó .\n"
-#~ "Ęąäąåöå ļąńļšąįąāąöü?"
-
-#~ msgid "I have found an ISDN Card:\n"
-#~ msgstr "Ēķąéųėi ISDN źąšņó:\n"
-
-#~ msgid ""
-#~ "I need to configure your network adapter to be able to connect to "
-#~ "internet."
-#~ msgstr ""
-#~ "Ķåąįõīäķą ąäźąķōićóšąāąöü āąųó ńåņźąāóž źąšņó, źąį ģąć÷ūģą įūėī äąėó÷ūööą "
-#~ "äą Iķņżšķżņó."
-
-#~ msgid ""
-#~ "If DrakX failed to find your mouse, or if you want to\n"
-#~ "check what it has done, you will be presented the list of mice\n"
-#~ "above.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you agree with DrakX's settings, just click 'Ok'.\n"
-#~ "Otherwise you may choose the mouse that more closely matches your own\n"
-#~ "from the menu above.\n"
-#~ "\n"
-#~ "\n"
-#~ "In case of a serial mouse, you will also have to tell DrakX\n"
-#~ "which serial port it is connected to."
-#~ msgstr ""
-#~ "Źąėi DrakX ļšąāiėüķą ēķąéųī¢ āąųó ģūų, ļšīńņą āūį˙šūöå ē ģåķž\n"
-#~ "iķųū ļóķźņ. Ó ļšīöiėåćėūģ āūļąäźó ąį˙šūöå ļąäūõīäē˙÷ū āąšū˙ķņ\n"
-#~ "äšąéāåšó ģūųū ńą ńļińó āūųżé.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ó āūļąäźó ģūųū, ˙źą˙ äąėó÷ąķą äą ļąńė˙äī¢ķąćą ļīšņó, āąģ ļąņšąįóåööą "
-#~ "ļąāåäąģiöü\n"
-#~ "DrakX ļšąāiėüķū ķóģąš ļąńė˙äī¢ķąćą ļīšņó, äą ˙źīćą ˙ķą äąėó÷ąķą."
-
-#~ msgid ""
-#~ "If your adsl modem is an Alcatel one, choose Alcatel. Otherwise, ECI."
-#~ msgstr ""
-#~ "Źąėi āąų ADSL ģąäżģ ąäķą ē ģąäżė˙¢ Alcatel, ļąēķą÷öå Alcatel. Ó iķųūģ "
-#~ "āūļąäźó - ECI."
-
-#~ msgid "In which country are you located ?"
-#~ msgstr "ßźą˙ źšąiķą āąųąćą šąēģ˙ų÷żķķ˙?"
-
-#~ msgid "Install/Rescue"
-#~ msgstr "Óńņąė˙āąķķå/Āūšąņąāąķķå"
-
-#~ msgid "Installation of SILO failed. The following error occured:"
-#~ msgstr "Óńņąė˙āąķķå SILO ķå ąņšūģąėąń˙. Óēķiźėą ķąńņóļķą˙ ļąģūėźą:"
-
-#~ msgid "Installed packages"
-#~ msgstr "Óńņąė˙āąķū˙ ļąźåņū"
-
-#~ msgid "It is necessary to restart installation booting on the floppy"
-#~ msgstr "Ķåąįõīäķą ļåšąēąļóńöiöü óńņąė˙āąķķå i ēąćšóēiööą ē äūńźåņū"
-
-#~ msgid "It is necessary to restart installation with the new parameters"
-#~ msgstr "Ķåąįõīäķą ļåšąēąļóńöiöü óńņąė˙āąķķå ē ķīāūģi ļąšąģåņšąģi"
-
-#~ msgid ""
-#~ "It is strongly recommended that you answer \"Yes\" here. If you install\n"
-#~ "Microsoft Windows at a later date it will overwrite the boot sector.\n"
-#~ "Unless you have made a bootdisk as suggested, you will not be able to\n"
-#~ "boot into GNU/Linux any more."
-#~ msgstr ""
-#~ "Ķąńņīéėiāą šżźąģåķäóåģ ąäźąēąöü ņóņ \"Ņąź\"! Āīńü ķąļšūźėąä, źąėi āū\n"
-#~ "ļåšą¢ńņąėžåöå Windows, ˙ķą ļåšąēąļiųą ēąćšóēą÷ķū ńåźņąš.\n"
-#~ "Źąėi āū ķå ńņāąšūėi ēąćšóēą÷ķū äūńź, āū įīėüų ķå ēäīėååöå ēąćšóēiöü\n"
-#~ "Linux!"
-
-#~ msgid "Kensington Thinking Mouse (serial)"
-#~ msgstr "Kensington Thinking Mouse (ļąńė˙äī¢ķą˙)"
-
-#~ msgid ""
-#~ "LILO (the LInux LOader) can boot Linux and other operating systems.\n"
-#~ "Normally they are correctly detected during installation. If you don't\n"
-#~ "see yours detected, you can add one or more now.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you don't want that everybody could access at one of them, you can "
-#~ "remove\n"
-#~ "it now (a boot disk will be needed to boot it)."
-#~ msgstr ""
-#~ "LILO (LInux LOader) ģīęą ēąćšóęąöü Linux i iķųū˙ ąļåšąöūéķū˙ ńińņżģū.\n"
-#~ "Ēāū÷ąéķą ˙ķū źąšżźņķą ēķąõīäē˙ööą ļšū ¢ńņąė˙āąķķ³. Źąėi āū ķå ¢įą÷ūėi\n"
-#~ "ņūõ ńińņżģ, ˙źi˙ įūėi ¢ńņąė˙āąķū ķą ģąųūķå, āū ģīęąöå äąäąöü ēąšąē\n"
-#~ "ąäķó ē iõ ąėüįī ķåźąėüźi.\n"
-#~ "\n"
-#~ "\n"
-#~ "Źąėi āū ķå ęąäąåöå, źąį óńå ģåėi äīńņóļ äą ąäķīé ē iõ, āūäąėiöå ˙å ēąšąē\n"
-#~ "(äēåė˙ ˙å ēąćšóēźi ļąņšąįóåööą ēąćšóēą÷ķū äūńź)."
-
-#~ msgid "Linear (needed for some SCSI drives)"
-#~ msgstr "Ėiķåéķą (ķåąįõīäķą äė˙ ķåźąņīšūõ ąäąļņżšą¢ SCSI)"
-
-#~ msgid ""
-#~ "Linux does not yet fully support ultra dma 66 HPT.\n"
-#~ "As a work-around i can make a custom floppy giving access the hard drive "
-#~ "on ide2 and ide3"
-#~ msgstr ""
-#~ "Linux ļąźóėü ˙ų÷ż ķå öąėźąģ ļąäņšūģėiāąå ultra dma 66 HPT.\n"
-#~ "ßź āąšū˙ķņ, ģąćó ńņāąšūöü äūńźåņó, ˙źą˙ ēąį˙ńļå÷ūöü äīńņóļ äą äūńźó ķą "
-#~ "ide2 i ide3"
-
-#~ msgid "Local LAN"
-#~ msgstr "Ėąźąėüķą˙ ńåņźą"
-
-#~ msgid "Local Printer Device (URI)"
-#~ msgstr "Ėąźąėüķū ļšūķņżš (URI)"
-
-#~ msgid ""
-#~ "Local networking has already been configured.\n"
-#~ "Do you want to:"
-#~ msgstr ""
-#~ "Ķąńņšīéźi ėąźąėüķąé ńåņźi óęī ēąäąäēåķū.\n"
-#~ "Öi ęąäąåöå Āū:"
-
-#~ msgid "Logitech Bus Mouse"
-#~ msgstr "Logitech Bus Mouse"
-
-#~ msgid "Logitech MouseMan+/FirstMouse+ (serial)"
-#~ msgstr "Logitech MouseMan+/FirstMouse+ (ļąńė˙äī¢ķą˙)"
-
-#~ msgid "Logitech MouseMan/FirstMouse (serial)"
-#~ msgstr "Logitech MouseMan/FirstMouse (ļąńė˙äī¢ķą˙)"
-
-#~ msgid "MD5"
-#~ msgstr "MD5"
-
-#~ msgid "Microsoft Bus Mouse"
-#~ msgstr "Microsoft Bus Mouse"
-
-#~ msgid "Microsoft IntelliMouse (serial)"
-#~ msgstr "Microsoft IntelliMouse (ļąńė˙äī¢ķą˙)"
-
-#~ msgid "Microsoft Rev 2.1A or higher (serial)"
-#~ msgstr "Microsoft Rev 2.1A ąėüįī āūųåé (ļąńė˙äī¢ķą˙)"
-
-#~ msgid "Microsoft compatible (serial)"
-#~ msgstr "Microsoft ńóģ˙ńöiģą˙ (ļąńė˙äī¢ķą˙)"
-
-#~ msgid "Move your wheel!"
-#~ msgstr "Ļąāåšķ³öå źīėą ģūųū"
-
-#~ msgid "No cdrom available (nothing in /mnt/cdrom)"
-#~ msgstr "cdrom ķåäąńņóļķū (ķi÷īćą ķ˙ģą ¢ /mnt/cdrom)"
-
-#~ msgid "No match"
-#~ msgstr "Ķå ēķīéäēåķą"
-
-#~ msgid "No more match"
-#~ msgstr "Įīėüų ķå ēķīéäēåķą"
-
-#~ msgid ""
-#~ "No valid modes found\n"
-#~ "Try with another video card or monitor"
-#~ msgstr ""
-#~ "Ļąäūõīäē˙÷ū˙ šżęūģū ķå ēķīéäēåķū.\n"
-#~ "Ļąńļšąįóéöå āūįšąöü iķųóž āiäżąźąšņó öi ģąķiņīš"
-
-#~ msgid "Other countries"
-#~ msgstr "Iķųū˙ źšąiķū"
-
-#~ msgid "Package"
-#~ msgstr "Ļąźåņ"
-
-#~ msgid "Password:"
-#~ msgstr "Ļąšīėü:"
-
-#~ msgid "Please choose a partition to use as your root partition."
-#~ msgstr "ßźi šąēäēåė äūńźą ęąäąåöå āūźąšūńņī¢āąöü ó ˙źąńöi źąšąķøāąćą?"
-
-#~ msgid ""
-#~ "Please choose which network adaptater do you want to use to connect to "
-#~ "internet.\n"
-#~ "If you don't know, choose eth0.\n"
-#~ msgstr ""
-#~ "Źąėi ėąńźą, ļąēķą÷öå ńåņźąāū ąäąļņąš, ˙źi āū įóäēåöå āūźąšūńņī¢āąöü äēåė˙ "
-#~ "äąėó÷żķķ˙ äą Iķņżšķżņó.\n"
-#~ "Źąėi ķå āåäąåöå, ļąēķą÷öå eth0.\n"
-
-#~ msgid "Please submit the following information"
-#~ msgstr "Ļšąäńņą¢öå ķąńņóļķóž iķōąšģąöūž"
-
-#~ msgid "Reconfigure local network"
-#~ msgstr "Ļåšąźąķōićóšąāąöü ėąźąėüķóž ńåņźó"
-
-#~ msgid "Regexp"
-#~ msgstr "Regexp"
-
-#~ msgid "Rescue"
-#~ msgstr "Āūšąņąāąķķå"
-
-#~ msgid "SILO main options"
-#~ msgstr "Ćąėī¢ķū˙ īļöūi SILO"
-
-#~ msgid "Sciences"
-#~ msgstr "Ķąāóźīāąå"
-
-#~ msgid "Search"
-#~ msgstr "Ļīųóź"
-
-#~ msgid "Searching root partition."
-#~ msgstr "Ļīųóź źąšąķøāąćą šąäēåėą."
-
-#~ msgid "Select the size you want to install"
-#~ msgstr "Ąį˙šūöå ļąęąäąķū ļąģåš óńņąė˙āąķķ˙"
-
-#~ msgid ""
-#~ "Select:\n"
-#~ "\n"
-#~ " - Recommended: If you have never installed Linux before.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Customized: If you are familiar with Linux, you will be able to \n"
-#~ "select the usage for the installed system between normal, development or\n"
-#~ "server. Choose \"Normal\" for a general purpose installation of your\n"
-#~ "computer. You may choose \"Development\" if you will be using the "
-#~ "computer\n"
-#~ "primarily for software development, or choose \"Server\" if you wish to\n"
-#~ "install a general purpose server (for mail, printing...).\n"
-#~ "\n"
-#~ "\n"
-#~ " - Expert: If you are fluent with GNU/Linux and want to perform\n"
-#~ "a highly customized installation, this Install Class is for you. You "
-#~ "will\n"
-#~ "be able to select the usage of your installed system as for \"Customized"
-#~ "\"."
-#~ msgstr ""
-#~ "Ąį˙šūöå:\n"
-#~ "\n"
-#~ " - Šżźąģåķäóåööą: Źąėi āū šąķåé ķiźīėi ķå ¢ńņąėø¢āąėi Linux.\n"
-#~ "\n"
-#~ " - Ļą āūįąšó: Źąėi āū ēķąøģū˙ ē Linux, ņī ģīęķą ąįšąöü ķąńņóļķū˙ \n"
-#~ "ńļīńąįū āūźąšūńņąķķ˙ ńińņżģū: ķąšģąėüķū, äė˙ šąńļšąöī¢ų÷ūźą, ąėüįī\n"
-#~ "ńåšāåš. Ąį˙šūöå \"Ēāū÷ąéķū\" äė˙ ¢ńņąė˙āąķķ˙ ńińņżģū ąćóėüķąćą "
-#~ "ļšūēķą÷żķķ˙.\n"
-#~ "Šżęūģ \"Äė˙ šąńļšąöī¢źi\" ļšūēķą÷ąķū äė˙ ņūõ, õņī āūźąšūńņī¢āąå "
-#~ "źąģļ'žņżš\n"
-#~ "ģåķąāiņą äė˙ šąńļšąöī¢źi ļšąćšąģą¢. Źąėi āū ęąäąåöå ¢ńņąė˙āąöü ńåšāåš "
-#~ "ąćóėüķąćą\n"
-#~ "ļšūēķą÷żķķ˙ (äė˙ ļīųņū, äšóźó, ...), ņąäū ąį˙šūöå \"Ńåšāåš\".\n"
-#~ "\n"
-#~ "\n"
-#~ " - Żźńļåšņ: Źąėi āū ńāąįīäķą āąėīäąåöå GNU/Linux i ęąäąåöå ļšąāåńöi\n"
-#~ "¢ńņąė˙āąķķå ē ļąćėūįėåķķąé ķąńņšīéźąé, ćżņū Źėąń Óńņąė˙āąķķ˙ - äė˙ āąń.\n"
-#~ "Āū ņąźńąģą ēģīęąöå ąįšąöü ļšūēķą÷żķķå ńińņżģū, ˙ź ó āąšū˙ķöå \"Ļą āūįąšó"
-#~ "\"."
-
-#~ msgid "Setup SCSI"
-#~ msgstr "Ķąńņšīéźą SCSI"
-
-#~ msgid "Show less"
-#~ msgstr "Ļąźąēąöü ģåķåé"
-
-#~ msgid "Show more"
-#~ msgstr "Ļąźąēąöü įīėåé"
-
-#~ msgid "Show only leaves"
-#~ msgstr "Ļąźąēąöü óńå ėińņū"
-
-#~ msgid "Shutting down"
-#~ msgstr "Āūźėž÷żķķå źąģļ'žņżšó"
-
-#~ msgid "Size: %d MB"
-#~ msgstr "Ļąģåš: %d MB"
-
-#~ msgid "Size: %d MB\n"
-#~ msgstr "Ļąģåš: %d MB\n"
-
-#~ msgid "Size: %s MB"
-#~ msgstr "Ļąģåš: %s Mį"
-
-#~ msgid "Slovakian"
-#~ msgstr "Ńėąāąöźi"
-
-#~ msgid "Small(%dMB)"
-#~ msgstr "Ģąėū (%dMį)"
-
-#~ msgid "Socket"
-#~ msgstr "Ńīźåņ"
-
-#~ msgid "Sort by"
-#~ msgstr "Óļąšąäźąāąöü ļą"
-
-#~ msgid "Take over the hard drive"
-#~ msgstr "Āūźąšūńņī¢āąöü óńž äūńźąāóž ļšąńņīšó"
-
-#~ msgid "The following packages are going to be uninstalled"
-#~ msgstr "Ķąńņóļķū˙ ļąźåņū įóäóöü āūäąėåķū ē ńińņżģū"
-
-#~ msgid ""
-#~ "The packages selected are now being installed. This operation\n"
-#~ "should take a few minutes unless you have chosen to upgrade an\n"
-#~ "existing system, in that case it can take more time even before\n"
-#~ "upgrade starts."
-#~ msgstr ""
-#~ "Ēąšąē ļą÷ķåööą ¢ńņąė˙āąķüķ˙ ąįšąķūõ ļąźåņą¢. Ćżņą˙ ąļåšąöū˙ ąäūģå\n"
-#~ "ķåźąėüźi õāiėiķą¢ ÷ąńó, źąėi āū ķå ąįšąėi ąįķą¢ėåķķå ińķóž÷ąé ńińņżģū,\n"
-#~ "įī ó ąļīųķiģ āūļąäźó ųģąņ ÷ąńó ļąņšąįóåööą ˙ų÷ż äą ļą÷ąņźó ąįķą¢ėåķķ˙\n"
-#~ "źąį ļšąąķąėiēąāąöü ńińņżģó."
-
-#~ msgid "This label is already in use"
-#~ msgstr "Ćżņą˙ ģåņźą ¢ęī āūźąšūńņī¢āąåööą"
-
-#~ msgid ""
-#~ "This section is dedicated to configuring a local area\n"
-#~ "network (LAN) or a modem.\n"
-#~ "\n"
-#~ "Choose \"Local LAN\" and DrakX will\n"
-#~ "try to find an Ethernet adapter on your machine. PCI adapters\n"
-#~ "should be found and initialized automatically.\n"
-#~ "However, if your peripheral is ISA, autodetection will not work,\n"
-#~ "and you will have to choose a driver from the list that will appear "
-#~ "then.\n"
-#~ "\n"
-#~ "\n"
-#~ "As for SCSI adapters, you can let the driver probe for the adapter\n"
-#~ "in the first time, otherwise you will have to specify the options\n"
-#~ "to the driver that you will have fetched from documentation of your\n"
-#~ "hardware.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you install a Mandrake Linux system on a machine which is part\n"
-#~ "of an already existing network, the network administrator will\n"
-#~ "have given you all necessary information (IP address, network\n"
-#~ "submask or netmask for short, and hostname). If you're setting\n"
-#~ "up a private network at home for example, you should choose\n"
-#~ "addresses.\n"
-#~ "\n"
-#~ "\n"
-#~ "Choose \"Dialup with modem\" and the Internet connection with\n"
-#~ "a modem will be configured. DrakX will try to find your modem,\n"
-#~ "if it fails you will have to select the right serial port where\n"
-#~ "your modem is connected to."
-#~ msgstr ""
-#~ "Ćżņū šąēäēåė ļšūńāå÷ąķū ķąńņšīéöū ėąźąėüķąé ńåņźi,\n"
-#~ "(LAN), ąėüįī ģąäżģą. \n"
-#~ "\n"
-#~ "Ąį˙šūöå \"Ėąźąėüķą˙ ńåņźą\" i DrakX ļąńļšąįóå ēķąéöi\n"
-#~ "ķą āąųąé ģąųūķå ąäąļņżš Ethernet. Ąäąļņżšū PCI ļąāiķķū įūöü ēķīéäēåķū\n"
-#~ "i ķąńņšīåķū ą¢ņąģąņū÷ķą. Ąäķąź, ļšū ńźąšūńņąķķi ISA,\n"
-#~ "ą¢ņąēķąõīäęąķķå ķå ļšąöóå, i āąģ ļšūéäēåööą āūįišąöü äšąéāåš\n"
-#~ "ńą ńļińó, ˙źi ē'˙āiööą ļåšąä āą÷ūģą ¢ ćżņūģ āūļąäźó.\n"
-#~ "\n"
-#~ "\n"
-#~ "ßź i äė˙ ąäąļņżšą¢ SCSI, āū ģīęąöå äąēāīėiöü äšąéāåšó ļšąāåšūöü\n"
-#~ "ļšūėąäó ńąģąńņīéķą, iķąźų ļšūéäēåööą ēąäąāąöü äšąéāåšó ķąńņšīéźi,\n"
-#~ "˙źi˙ āū ēķīéäēåööå ¢ äąźóģåķņąöūi ļą āąųąģó ąįńņąė˙āąķķž.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ļšū ¢ńņąė˙āąķķ³ Mandrake Linux ķą źąģļ'žņżš, ˙źi ļšąöóå āą ¢ęī\n"
-#~ "ķąėąäęąķąé ńåņöū, ąäģiķińņšąņąšó ńåņźi ļšūéäēåööą ļąāåäąģiöü\n"
-#~ "āąģ óńž ķåąįõīäķóž iķōąšģąöūž (IP ąäšąń, ģąńźą ļąäńåņźi\n"
-#~ "öi ńźąšī÷ąķą ļąäģąńźą, i iģ˙ õąńņą). Źąėi āū ńņāąšąåöå\n"
-#~ "ļšūāąņķóž ńåņźó, ķąļšūźėąä äīģą, āū ļąāiķķū āūįšąöü\n"
-#~ "óńå ķąńņšīéźi ńąģąńņīéķą.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ąį˙šūöå \"Ēėó÷żķķå ļšąē ģąäżģ\" äė˙ ķąńņšīéźi ēėó÷żķķ˙\n"
-#~ "ē ńóńāåņķąé ćėąįąėüķąé ńåņźąé Internet ļšąē ģąäżģ. DrakX ļąńļšąįóå\n"
-#~ "ēķąéńöi āąų ģąäżģ, ąėå źąėi ¢ ˙ćī ćżņą ķå ąņšūģąåööą, āąģ įóäēå\n"
-#~ "ļąņšżįķą ńąģąńņīéķą ļąēķą÷ūöü ńåšūéķū ļīšņ, äą ˙źīćą äąėó÷ąķū ģąäżģ."
-
-#~ msgid ""
-#~ "Time (secs) of inactivity after which\n"
-#~ "it hangs up. (leave blank to disable it)"
-#~ msgstr ""
-#~ "׹ń (ń˙ź) ķåąźņū¢ķąńöi, ļąńė˙ ˙źīćą\n"
-#~ "āåųąöü ńėóõą¢źó. (Ļąźiķüöå ļóńņīå, źąį ąäģ˙ķiöü)"
-
-#~ msgid ""
-#~ "To find the available resolutions I will try different ones.\n"
-#~ "Your screen will blink...\n"
-#~ "You can switch if off if you want, you'll hear a beep when it's over"
-#~ msgstr ""
-#~ "Äė˙ ļīųóźó ļąäūõīäē˙÷ūõ ļąģåšą¢ żźšąķó ēąšąē ļąńļšąįóåģ šīēķū˙ šżęūģū. \n"
-#~ "Āąų żźšąķ įóäēå ģićąöü... Źąėi āąģ ķå ļąäąįąåööą ģićąķķå, ˙ćī ģīęķą \n"
-#~ "ąäźėž÷ūöü, ņąäū ļąńė˙ ēąźąķ÷żķķ˙ įóäēå ÷óāąöü ćóäīź."
-
-#~ msgid "Toggle between Installed and Available"
-#~ msgstr "Ļåšąźėž÷ūöü Óńņąė˙āąķą/Äąńņóļķą"
-
-#~ msgid "Too many packages chosen: %dMB doesn't fit in %dMB"
-#~ msgstr "Āūįšąķą ēąųģąņ ļąźåņą¢: %dMį ķå ¢ėąēiöü ó %dMį"
-
-#~ msgid "Tree"
-#~ msgstr "Äšżāą"
-
-#~ msgid "Try to find %s devices?"
-#~ msgstr "Ļąńļšąįąāąöü ēķąéńöi %s ļšūėąäū?"
-
-#~ msgid "Try to find PCI devices?"
-#~ msgstr "Ļąńļšąįąāąöü ēķąéńöi PCI ļšūėąäū?"
-
-#~ msgid "Try to find PCMCIA cards?"
-#~ msgstr "Ļąńļšąįąāąöü ēķąéńöi źąšņū PCMCIA?"
-
-#~ msgid "Try to find a modem?"
-#~ msgstr "Ļąńļšąįąāąöü ēķąéńöi ģąäżģ?"
-
-#~ msgid "URI for Local printer"
-#~ msgstr "URI äė˙ ėąźąėüķąćą ļšūķņżšó"
-
-#~ msgid "URL of the directory containing the RPMs"
-#~ msgstr "URL źąņąėīćą, ˙źi ēģ˙ų÷ąå RPM"
-
-#~ msgid "USB Mouse (3 buttons or more)"
-#~ msgstr "USB Ģūų (3 źķīļźi öi įīėåé)"
-
-#~ msgid "Update location"
-#~ msgstr "Ēģ˙ķiöü źšūķiöó"
-
-#~ msgid "Updating the RPMs base"
-#~ msgstr "Ąäķą¢ėåķķå įąēū ļąźåņą¢ RPM"
-
-#~ msgid "Use MD5 passwords"
-#~ msgstr "Āūźąšūńņī¢āąöü ļąšīėi MD5"
-
-#~ msgid "Use diskdrake"
-#~ msgstr "Āūźąšūńņī¢āąöü DiskDrake"
-
-#~ msgid "Use shadow file"
-#~ msgstr "Āūźąšūńņī¢āąöü öåķ˙āū ōąéė"
-
-#~ msgid "User name:"
-#~ msgstr "Iģ˙ źąšūńņąėüķiźó:"
-
-#~ msgid ""
-#~ "What URI device is your printer connected to\n"
-#~ "(note that parallel:/dev/lp0 is equivalent to LPT1:)?"
-#~ msgstr ""
-#~ "Äą ˙źīćą ļīšņó äąėó÷ąķū āąų ļšūķņżš \n"
-#~ "(/dev/lp0 żźāiāąėåķņķū LPT1:)?"
-
-#~ msgid "What are looking for?"
-#~ msgstr "Ųņī āū ęąäąåöå ēķąéńö³?"
-
-#~ msgid "What do you wish to do?"
-#~ msgstr "Ųņī āū õī÷ąöå ēšąįiöü?"
-
-#~ msgid "What is the type of your mouse?"
-#~ msgstr "ßźi ņūļ āąųąé ģūųū?"
-
-#~ msgid "What is your keyboard layout?"
-#~ msgstr "ßźi ņūļ āąųąé źėąāi˙ņóšū?"
-
-#~ msgid "What is your system used for?"
-#~ msgstr "Äēåė˙ ÷ąćī Āū įóäēåöå āūźąšūńņī¢āąöü ń³ńņżģó?"
-
-#~ msgid "What usage do you want?"
-#~ msgstr "ßźīå āūźąšūńņąķķå ąįišąåöå?"
-
-#~ msgid "Which bootloader(s) do you want to use?"
-#~ msgstr "ßźi ļą÷ąņźīāū ēąćšóē÷ūź āū ęąäąåöå āūźąšūńņī¢āąöü?"
-
-#~ msgid "Which file are you looking for?"
-#~ msgstr "ßźi ōąéė āū ųóźąåöå?"
-
-#~ msgid "Which package are looking for"
-#~ msgstr "ßźi˙ ļąźåņū ųóźąåģ"
-
-#~ msgid "Which partition type do you want?"
-#~ msgstr "ßźi ņūļ šąēäēåėó āąģ ļąņšżįķū?"
-
-#~ msgid "Which serial port is your mouse connected to?"
-#~ msgstr "Äą ˙źīćą ļīńė˙äī¢ķąćą ļīšņó äąėó÷ąķą āąųą ģūų?"
-
-#~ msgid "You don't have any enough room for Lnx4win"
-#~ msgstr "Ó āąń ķå õąļąå ģåńöą äė˙ Lnx4win"
-
-#~ msgid "You don't have any windows partitions!"
-#~ msgstr "Āū ķå ģąåöå ąķi˙źiõ Windows šąēäēåėą¢!"
-
-#~ msgid ""
-#~ "You may now select the packages you wish to install.\n"
-#~ "\n"
-#~ "\n"
-#~ "First you can select group of package to install or upgrade. After that\n"
-#~ "you can select more packages according to the total size you wish to\n"
-#~ "select.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you are in expert mode, you can select packages individually.\n"
-#~ "Please note that some packages require the installation of others.\n"
-#~ "These are referred to as package dependencies. The packages you select,\n"
-#~ "and the packages they require will be automatically selected for\n"
-#~ "install. It is impossible to install a package without installing all\n"
-#~ "of its dependencies."
-#~ msgstr ""
-#~ "Ēąšąē ģīęķą ąįšąöü ļąźåņū ļšąćšąģ, ˙źi˙ āū ęąäąåöå ¢ńņąė˙āąöü.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ļą-ļåšųąå, āū ģīęąöå ąįšąöü ćšóļó ļąźåņą¢ źąį óńņąė˙āąöü öi ąįķąāiöü. "
-#~ "Ļąńė˙\n"
-#~ "āū ģīęąöå ąäēķą÷ūöü įīėüų ļąźåņą¢ ó ąäļąāåäķąńöi ē ˙ćóėüķūģ ļąģåšąģ, ˙źi\n"
-#~ "āū ęąäąåöå ąįšąöü.\n"
-#~ "\n"
-#~ "\n"
-#~ "Źąėi āū ļšąöóåöå ¢ šżęūģå żźńļåšņó, ņąäū ļąźåņū ģīęķą ąįišąöü "
-#~ "iķäūāiäóąėüķą.\n"
-#~ "Ģąéöå ķą ¢āąēå, ųņī ķåźąņīšū˙ ļąźåņū ļąņšąįóžöü óńņąė˙āąķķ˙ iķųūõ "
-#~ "ļąźåņą¢.\n"
-#~ "Ćżņą ēąāåööą ēąėåęķąńööž ļąźåņą¢. Ļąźåņū, ˙źi˙ āū ąįšąėi, i ļąźåņū,\n"
-#~ "ąä ˙źiõ ˙ķū ēąėåęąöü, įóäóöü ą¢ņąģąņū÷ķą ąįšąķū äēåė˙ ¢ńņąė˙āąķķ˙.\n"
-#~ "Ķåģąć÷ūģą ¢ńņąė˙āąöü ļąźåņ äą ¢ńņąė˙āąķķ˙ ¢ńiõ ļąźåņą¢, ąä ˙źiõ øķ "
-#~ "ēąėåęūöü."
-
-#~ msgid ""
-#~ "Your computer can be configured to share its Internet connection.\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Āąų źąźģļ'žņżš ģīęą įūöü ńźąķōićóšąāąķū äą ńóģåńķąćą Iķņżšķżņ-ēėó÷żķķ˙.\n"
-
-#~ msgid "automagic"
-#~ msgstr "ą¢ņąģąći÷ķū"
-
-#~ msgid "beginner"
-#~ msgstr "ļą÷ūķąž÷ū"
-
-#~ msgid "brunette"
-#~ msgstr "įšóķåņ"
-
-#~ msgid "changing type of"
-#~ msgstr "Ēģ˙ķåķķå ņūļó"
-
-#~ msgid "default"
-#~ msgstr "Ļą äąģą¢ėåķķž"
-
-#~ msgid "dhcp-client"
-#~ msgstr "dhcp-client"
-
-#~ msgid "dhcpxd"
-#~ msgstr "dhcpxd"
-
-#~ msgid "don't use pppoe"
-#~ msgstr "ķå āūźąšūńņī¢āąöü pppoe"
-
-#~ msgid "girl"
-#~ msgstr "äē˙¢÷ūķą"
-
-#~ msgid "i18n (important)"
-#~ msgstr "i18n (āąęķą)"
-
-#~ msgid "i18n (nice)"
-#~ msgstr "i18n (äīįšą)"
-
-#~ msgid "i18n (very nice)"
-#~ msgstr "i18n (āåėüģi äīįšą)"
-
-#~ msgid "linear"
-#~ msgstr "Ėiķåéķą"
-
-#~ msgid "loopback"
-#~ msgstr "Āišņóąėüķą˙ ōąéėąāą˙ ńińņżģą (loopback)"
-
-#~ msgid "nfs mount failed"
-#~ msgstr "ļąģūėźą ģąķöišąāąķķ˙ nfs"
-
-#~ msgid "pptp alcatel"
-#~ msgstr "pptp alcatel"
-
-#~ msgid "pump"
-#~ msgstr "pump"
-
-#~ msgid ""
-#~ "rpmdrake is currently in ``low memory'' mode.\n"
-#~ "I'm going to relaunch rpmdrake to allow searching files"
-#~ msgstr ""
-#~ "rpmdrake ēąšąē ó šżęūģå ``low memory''.\n"
-#~ "rpmdrake įóäēå ļåšąēąļóų÷ąķū äēåė˙ ēąįåńļ˙÷żķķ˙ ļīųóźó ōąéėą¢"
-
-#~ msgid "tie"
-#~ msgstr "ćąėüųņóź"
-
-#~ msgid "woman-blond"
-#~ msgstr "ęąķ÷ūķą-įėąķäūķźą"
diff --git a/perl-install/share/po/bg.po b/perl-install/share/po/bg.po
deleted file mode 100644
index 7bea7e548..000000000
--- a/perl-install/share/po/bg.po
+++ /dev/null
@@ -1,13898 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 1999, 2000 MandrakeSoft
-# Elena Radeva <ely@triada.bg>, 1999.
-# Pavel Cholakov <pavel@linux.home.bg>, 1999.
-# Boyan Ivanov <boyan17@bulgaria.com>, 1999, 2000
-# Bozhan Boiadzhiev <bozhan@plov.omega.bg>, 2000
-# Valery Dachev <valery@zonebg.com>, 2000, 2001
-#
-# Bulgarians on Linux use windows-1251 encoding
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: DrakX VERSION\n"
-"POT-Creation-Date: 2002-03-11 18:29+0100\n"
-"PO-Revision-Date: 2000-08-15 15:29+0200\n"
-"Last-Translator: Valery Dachev <valery@zonebg.com>\n"
-"Language-Team: Bulgarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=windows-1251\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../Xconfigurator.pm_.c:242
-msgid "Configure all heads independently"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:243
-msgid "Use Xinerama extension"
-msgstr "Čēļīėēāąé šąēųčšåķčåņī Xinerama"
-
-#: ../../Xconfigurator.pm_.c:246
-#, c-format
-msgid "Configure only card \"%s\" (%s)"
-msgstr "Ķąńņšīéźą ńąģī ķą źąšņą \"%s\" (%s)"
-
-#: ../../Xconfigurator.pm_.c:249
-msgid "Multi-head configuration"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:250
-msgid ""
-"Your system support multiple head configuration.\n"
-"What do you want to do?"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:261
-msgid "Graphic card"
-msgstr "Ćšąōč÷ķą źąšņą"
-
-#: ../../Xconfigurator.pm_.c:262
-msgid "Select a graphic card"
-msgstr "Čēįåšåņå ćšąōč÷ķą źąšņą"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "Choose a X server"
-msgstr "Čēįåšåņå X ńśšāśš"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "X server"
-msgstr "X ńśšāśš"
-
-#: ../../Xconfigurator.pm_.c:293
-#, fuzzy
-msgid "Choose a X driver"
-msgstr "Čēįåšåņå X ńśšāśš"
-
-#: ../../Xconfigurator.pm_.c:293
-#, fuzzy
-msgid "X driver"
-msgstr "X ńśšāśš"
-
-#: ../../Xconfigurator.pm_.c:360 ../../Xconfigurator.pm_.c:366
-#: ../../Xconfigurator.pm_.c:416 ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s"
-msgstr "XFree %s"
-
-#: ../../Xconfigurator.pm_.c:363
-msgid "Which configuration of XFree do you want to have?"
-msgstr "Źī˙ ķąńņšīéźą ķą XFree čńźąņå äą čģąņå ?"
-
-#: ../../Xconfigurator.pm_.c:374
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"Źąšņąņą āč ģīęå äą čģą ļīääšśęźą ķą õąšäóåšķī 3D óńźīšåķčå, ķī ńąģī ń Xfree %"
-"s.\n"
-"Źąšņąņą āč ńå ļīääśšęą īņ XFree %s, źīéņī ģīęå äą čģą ļī-äīįšą ļīääšśęźą ķą "
-"2D."
-
-#: ../../Xconfigurator.pm_.c:376 ../../Xconfigurator.pm_.c:409
-#, c-format
-msgid "Your card can have 3D hardware acceleration support with XFree %s."
-msgstr "Źąšņąņą āč ģīęå äą čģą ļīääšśęźą ķą õąšäóåšķī 3D óńźīšåķčå ā XFree %s."
-
-#: ../../Xconfigurator.pm_.c:378 ../../Xconfigurator.pm_.c:411
-#: ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s with 3D hardware acceleration"
-msgstr "XFree %s ń õąšäóåšķī 3D óńźīšåķčå"
-
-#: ../../Xconfigurator.pm_.c:386 ../../Xconfigurator.pm_.c:400
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER."
-msgstr ""
-"Źąšņąņą āč ģīęå äą čģą ļīääšśęźą ķą õąšäóåšķī 3D óńźīšåķčå ń XFree %s.\n"
-"ĪŅĮÅĖÅĘÅŅÅ, ×Å ŅĪĀĄ Å ÅŹŃĻÅŠČĢÅĶŅĄĖĶĄ ĻĪÄÄŠŚĘŹĄ Č ŹĪĢĻŽŅŚŠŚŅ ĀČ ĢĪĘÅ ÄĄ "
-"ĒĄĮČÅ."
-
-#: ../../Xconfigurator.pm_.c:388 ../../Xconfigurator.pm_.c:402
-#, c-format
-msgid "XFree %s with EXPERIMENTAL 3D hardware acceleration"
-msgstr "XFree %s ń ÅŹŃĻÅŠČĢÅĶŅĄĖĶO õąšäóåšķī 3D óńźīšåķčå"
-
-#: ../../Xconfigurator.pm_.c:397
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"Źąšņąņą āč ģīęå äą čģą ļīääšśęźą ķą õąšäóåšķī 3D óńźīšåķčå, ķī ńąģī ń XFree %"
-"s,\n"
-"ĪŅĮÅĖÅĘÅŅÅ, ×Å ŅĪĀĄ Å ÅŹŃĻÅŠČĢÅĶŅĄĖĶĄ ĻĪÄÄŠŚĘŹĄ Č ĢĪĘÅ ÄĄ ĒĄĮČÅ ŹĪĢĻŽŅŚŠĄ "
-"ĀČ.\n"
-"Źąšņąņą āč ńå ļīääśšęą īņ XFree %s, źīéņī ģīęå äą čģą ļī-äīįšą ļīääšśęźą ķą "
-"2D."
-
-#: ../../Xconfigurator.pm_.c:417
-msgid "Xpmac (installation display driver)"
-msgstr "Xpmac (čķńņąėąöč˙ ćšąōč÷åķ äšąéāåš)"
-
-#: ../../Xconfigurator.pm_.c:421
-msgid "XFree configuration"
-msgstr "Ķąńņšīéźą ķą XFree"
-
-#: ../../Xconfigurator.pm_.c:496
-msgid "Select the memory size of your graphic card"
-msgstr "Čēįåšåņå źąļąöčņåņ ķą ļąģåņņą ķą ćšąōč÷ķąņą ńč źąšņą"
-
-#: ../../Xconfigurator.pm_.c:550
-msgid "Choose options for server"
-msgstr "Čēįåšåņå īļöčč ēą ńśšāśšą"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Choose a monitor"
-msgstr "Čēįåšåņå ģīķčņīš"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Monitor"
-msgstr "Ģīķčņīš"
-
-#: ../../Xconfigurator.pm_.c:577
-msgid ""
-"The two critical parameters are the vertical refresh rate, which is the "
-"rate\n"
-"at which the whole screen is refreshed, and most importantly the horizontal\n"
-"sync rate, which is the rate at which scanlines are displayed.\n"
-"\n"
-"It is VERY IMPORTANT that you do not specify a monitor type with a sync "
-"range\n"
-"that is beyond the capabilities of your monitor: you may damage your "
-"monitor.\n"
-" If in doubt, choose a conservative setting."
-msgstr ""
-"Äāąņą źščņč÷ķč ļąšąģåņśšą ńą āåšņčźąėķąņą ńźīšīńņ ķą āśēńņąķīā˙āąķå, źī˙ņī "
-"īņšąē˙āą ńźīšīńņņą, \n"
-"ń źī˙ņī öåėč˙ņ åźšąķ ńå āśēńņąķīā˙āą, č ķąé-āąęķīņī - õīščēīķņąėķąņą\n"
-"ńčķõšīķčēąöčīķķą ńźīšīńņ, źī˙ņī īņšąē˙āą ńźīšīńņņą, ń źī˙ņī ńå čēļčńāąņ "
-"õīščēīķņąėķčņå ėčķčč.\n"
-"\n"
-"ĢĶĪĆĪ Å ĀĄĘĶĪ äą čēįåšåņå ņąźąāą ńčķõšīķčēąöčīķķąņą ńźīšīńņ, źī˙ņī äą "
-"īņćīāąš˙ ķą āśēģīęķīńņčņå ķą Āąųč˙ ģīķčņīš - ā ļšīņčāåķ ńėó÷ąé ģīęåņå äą "
-"ļīāšåäčņå ģīķčņīšą ńč.\n"
-" Ąźī čģąņå ķ˙źąźāč ńśģķåķč˙, čēįåšåņå źīķńåšāąņčāķą ķąńņšīéźą."
-
-#: ../../Xconfigurator.pm_.c:584
-msgid "Horizontal refresh rate"
-msgstr "Õīščēīķņąėķą ńźīšīńņ ķą āśēńņąķīā˙āąķå"
-
-#: ../../Xconfigurator.pm_.c:585
-msgid "Vertical refresh rate"
-msgstr "Āåšņčźąėķą ńźīšīńņ ķą āśēńņąķīā˙āąķå"
-
-#: ../../Xconfigurator.pm_.c:622
-msgid "Monitor not configured"
-msgstr "Ģīķčņīšśņ ķå å ķąńņšīåķ"
-
-#: ../../Xconfigurator.pm_.c:625
-msgid "Graphic card not configured yet"
-msgstr "Ćšąōč÷ķąņą źąšņą āńå īłå ķå å ķąńņšīåķą"
-
-#: ../../Xconfigurator.pm_.c:628
-msgid "Resolutions not chosen yet"
-msgstr "Īłå ķå å čēįšąķą šąēäåėčņåėķą ńļīńīįķīńņ"
-
-#: ../../Xconfigurator.pm_.c:646
-msgid "Do you want to test the configuration?"
-msgstr "Čńźąņå ėč äą ņåńņāąņå ķąńņšīéźčņå?"
-
-#: ../../Xconfigurator.pm_.c:650
-msgid "Warning: testing this graphic card may freeze your computer"
-msgstr ""
-"Āķčģąķčå: ņåńņāąķåņī ķą ņąēč ćšąōč÷ķą źąšņą ģīęå äą \"ēąģšąēč\" źīģļžņśšą āč"
-
-#: ../../Xconfigurator.pm_.c:653
-msgid "Test of the configuration"
-msgstr "Ļšīāåšźą ķą ķąńņšīéźąņą"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid ""
-"\n"
-"try to change some parameters"
-msgstr ""
-"\n"
-"īļčņąéņå ńå äą ļšīģåķčņå ķ˙źīč ļąšąģåņšč"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid "An error has occurred:"
-msgstr "Ļī˙āč ńå ćšåųźą:"
-
-#: ../../Xconfigurator.pm_.c:731
-#, c-format
-msgid "Leaving in %d seconds"
-msgstr "Čēõīä äī %d ńåźóķäč"
-
-#: ../../Xconfigurator.pm_.c:742
-msgid "Is this the correct setting?"
-msgstr "Āåšķč ėč ńą ķąńņšīéźčņå ?"
-
-#: ../../Xconfigurator.pm_.c:751
-msgid "An error has occurred, try to change some parameters"
-msgstr "Ļī˙āč ńå ćšåųźą, īļčņąéņå ńå äą ļšīģåķčņå ķ˙źīč ļąšąģåņšč"
-
-#: ../../Xconfigurator.pm_.c:822
-msgid "Resolution"
-msgstr "Šąēäåėčņåėķą ńļīńīįķīńņ"
-
-#: ../../Xconfigurator.pm_.c:874
-msgid "Choose the resolution and the color depth"
-msgstr "Čēįåšåņå šąēäåėčņåėķą ńļīńīįķīńņ č äśėįī÷čķą ķą öāåņīāåņå"
-
-#: ../../Xconfigurator.pm_.c:876
-#, c-format
-msgid "Graphic card: %s"
-msgstr "Ćšąōč÷ķą źąšņą: %s"
-
-#: ../../Xconfigurator.pm_.c:877
-#, c-format
-msgid "XFree86 server: %s"
-msgstr "XFree86 ńśšāśš: %s"
-
-#: ../../Xconfigurator.pm_.c:891 ../../diskdrake/interactive.pm_.c:259
-#: ../../install_steps_interactive.pm_.c:208
-msgid "More"
-msgstr "Īłå"
-
-#: ../../Xconfigurator.pm_.c:891 ../../install_gtk.pm_.c:84
-#: ../../install_steps_gtk.pm_.c:328 ../../interactive.pm_.c:127
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_http.pm_.c:104
-#: ../../interactive_newt.pm_.c:170 ../../interactive_stdio.pm_.c:141
-#: ../../interactive_stdio.pm_.c:142 ../../my_gtk.pm_.c:686
-#: ../../my_gtk.pm_.c:1019 ../../my_gtk.pm_.c:1041
-#: ../../standalone/drakbackup_.c:2298 ../../standalone/drakbackup_.c:2369
-#: ../../standalone/drakbackup_.c:2385
-msgid "Ok"
-msgstr "Ok"
-
-#: ../../Xconfigurator.pm_.c:893 ../../network/netconnect.pm_.c:169
-#: ../../printerdrake.pm_.c:2470 ../../standalone/draknet_.c:275
-#: ../../standalone/draknet_.c:278
-msgid "Expert Mode"
-msgstr "Åźńļåšņåķ šåęčģ"
-
-#: ../../Xconfigurator.pm_.c:894
-msgid "Show all"
-msgstr "Ļīźąęč āńč÷źč"
-
-#: ../../Xconfigurator.pm_.c:939
-msgid "Resolutions"
-msgstr "Šąēäåėčņåėķą ńļīńīįķīńņ"
-
-#: ../../Xconfigurator.pm_.c:1509
-#, c-format
-msgid "Keyboard layout: %s\n"
-msgstr "Ņčļ źėąāčąņóšą: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1510
-#, c-format
-msgid "Mouse type: %s\n"
-msgstr "Ņčļ ģčųźą: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1511
-#, c-format
-msgid "Mouse device: %s\n"
-msgstr "Óńņšīéńņāī ķą ģčųźąņą: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1512
-#, c-format
-msgid "Monitor: %s\n"
-msgstr "Ģīķčņīš: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1513
-#, c-format
-msgid "Monitor HorizSync: %s\n"
-msgstr "Õīščēīķņąėķą ńčķõšīķčēąöč˙ ķą ģīķčņīšą: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1514
-#, c-format
-msgid "Monitor VertRefresh: %s\n"
-msgstr "Āåšņčźąėķī īļšåńķ˙āąķå ķą ģīķčņīšą: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1515
-#, c-format
-msgid "Graphic card: %s\n"
-msgstr "Ćšąōč÷ķą źąšņą: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1516
-#, c-format
-msgid "Graphic card identification: %s\n"
-msgstr "Čäåķņčōčźąöč˙ ķą ćšąōč÷ķąņą źąšņą: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1517
-#, c-format
-msgid "Graphic memory: %s kB\n"
-msgstr "Ćšąōč÷ķą ļąģåņ: %s kB\n"
-
-#: ../../Xconfigurator.pm_.c:1519
-#, c-format
-msgid "Color depth: %s\n"
-msgstr "Äśėįī÷čķą ķą öāåņą: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1520
-#, c-format
-msgid "Resolution: %s\n"
-msgstr "Šąēäåėčņåėķą ńļīńīįķīńņ: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1522
-#, c-format
-msgid "XFree86 server: %s\n"
-msgstr "XFree86 ńśšāśš: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1523
-#, c-format
-msgid "XFree86 driver: %s\n"
-msgstr "XFree86 äšąéāåš: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1541
-msgid "Preparing X-Window configuration"
-msgstr "Ļīäćīņīāźą ēą ķąńņšīéāąķå ķą X-Window"
-
-#: ../../Xconfigurator.pm_.c:1561
-msgid "What do you want to do?"
-msgstr "Źąźāī čńźąņå äą ķąļšąāčņå?"
-
-#: ../../Xconfigurator.pm_.c:1566
-msgid "Change Monitor"
-msgstr "Ļšīģåķåņå ģīķčņīšą"
-
-#: ../../Xconfigurator.pm_.c:1567
-msgid "Change Graphic card"
-msgstr "Ļšīģåķåņå ćšąōč÷ķąņą źąšņą"
-
-#: ../../Xconfigurator.pm_.c:1570
-msgid "Change Server options"
-msgstr "Ļšīģåķåņå īļöččņå ķą ńśšāśšą"
-
-#: ../../Xconfigurator.pm_.c:1571
-msgid "Change Resolution"
-msgstr "Ļšīģåķåņå šąēäåėčņåėķąņą ńļīńīįķīńņ"
-
-#: ../../Xconfigurator.pm_.c:1572
-msgid "Show information"
-msgstr "Ļīźąęč čķōīšģąöč˙ņą"
-
-#: ../../Xconfigurator.pm_.c:1573
-msgid "Test again"
-msgstr "Ņåńņāąé īņķīāī"
-
-#: ../../Xconfigurator.pm_.c:1574 ../../printerdrake.pm_.c:2473
-#: ../../standalone/logdrake_.c:225
-msgid "Quit"
-msgstr "Čēėčēąķå"
-
-#: ../../Xconfigurator.pm_.c:1582
-#, c-format
-msgid ""
-"Keep the changes?\n"
-"Current configuration is:\n"
-"\n"
-"%s"
-msgstr ""
-"Äą ēąļąē˙ ėč ļšīģåķčņå ?\n"
-"Ņåźółąņą ķąńņšīéźą å:\n"
-"\n"
-"%s"
-
-#: ../../Xconfigurator.pm_.c:1603
-msgid "X at startup"
-msgstr "X ļšč ńņąšņčšąķå ķą ńčńņåģąņą"
-
-#: ../../Xconfigurator.pm_.c:1604
-msgid ""
-"I can set up your computer to automatically start X upon booting.\n"
-"Would you like X to start when you reboot?"
-msgstr ""
-"Kīģļžņśšą āč ģīęå ąāņīģąņč÷ķī, äą āėåēå ā X ļšč ńņąšņčšąķå.\n"
-"Čńźąņå ėč X äą ńå ńņąšņčšą, źīćąņī šåńņąšņčšąņå ńčńņåģąņą?"
-
-#: ../../Xconfigurator.pm_.c:1610
-#, c-format
-msgid "Please relog into %s to activate the changes"
-msgstr "Ģīė˙ āėåēņå īņķīāī ā %s, ēą äą ąźņčāčšąņå ļšīģåķčņå"
-
-#: ../../Xconfigurator.pm_.c:1625
-msgid "Please log out and then use Ctrl-Alt-BackSpace"
-msgstr "Ģīė˙ čēėåēņå īņ ńåńč˙ņą č čēļīėēāąéņå Ctrl-Alt-BackSpace"
-
-#: ../../Xconfigurator_consts.pm_.c:6
-msgid "256 colors (8 bits)"
-msgstr "256 öā˙ņą (8 įčņą)"
-
-#: ../../Xconfigurator_consts.pm_.c:7
-msgid "32 thousand colors (15 bits)"
-msgstr "32 õčė˙äč öā˙ņą (15 įčņą)"
-
-#: ../../Xconfigurator_consts.pm_.c:8
-msgid "65 thousand colors (16 bits)"
-msgstr "65 õčė˙äč öā˙ņą (16 įčņą)"
-
-#: ../../Xconfigurator_consts.pm_.c:9
-msgid "16 million colors (24 bits)"
-msgstr "16 ģčėčīķą öā˙ņą (24 įčņą)"
-
-#: ../../Xconfigurator_consts.pm_.c:10
-msgid "4 billion colors (32 bits)"
-msgstr "4 ģčėčąšäą öā˙ņą (32 įčņą)"
-
-#: ../../Xconfigurator_consts.pm_.c:113
-msgid "256 kB"
-msgstr "256 ŹĮ"
-
-#: ../../Xconfigurator_consts.pm_.c:114
-msgid "512 kB"
-msgstr "512 ŹĮ"
-
-#: ../../Xconfigurator_consts.pm_.c:115
-msgid "1 MB"
-msgstr "1 ĢĮ"
-
-#: ../../Xconfigurator_consts.pm_.c:116
-msgid "2 MB"
-msgstr "2 ĢĮ"
-
-#: ../../Xconfigurator_consts.pm_.c:117
-msgid "4 MB"
-msgstr "4 ĢĮ"
-
-#: ../../Xconfigurator_consts.pm_.c:118
-msgid "8 MB"
-msgstr "8 ĢĮ"
-
-#: ../../Xconfigurator_consts.pm_.c:119
-msgid "16 MB"
-msgstr "16 ĢĮ"
-
-#: ../../Xconfigurator_consts.pm_.c:120
-msgid "32 MB"
-msgstr "32 ĢĮ"
-
-#: ../../Xconfigurator_consts.pm_.c:121
-msgid "64 MB or more"
-msgstr "64 ĢĮ čėč ļīāå÷å"
-
-#: ../../Xconfigurator_consts.pm_.c:129
-msgid "Standard VGA, 640x480 at 60 Hz"
-msgstr "Standard VGA, 640x480 ķą 60 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:130
-msgid "Super VGA, 800x600 at 56 Hz"
-msgstr "Super VGA, 800x600 ķą 56 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:131
-msgid "8514 Compatible, 1024x768 at 87 Hz interlaced (no 800x600)"
-msgstr "8514-ńśāģåńņčģ, 1024x768 ķą 87 Hz interlaced (ķ˙ģą 800x600)"
-
-#: ../../Xconfigurator_consts.pm_.c:132
-msgid "Super VGA, 1024x768 at 87 Hz interlaced, 800x600 at 56 Hz"
-msgstr "Super VGA, 1024x768 ķą 87 Hz interlaced, 800x600 ķą 56 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:133
-msgid "Extended Super VGA, 800x600 at 60 Hz, 640x480 at 72 Hz"
-msgstr "Extended Super VGA, 800x600 ķą 60 Hz, 640x480 ķą 72 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:134
-msgid "Non-Interlaced SVGA, 1024x768 at 60 Hz, 800x600 at 72 Hz"
-msgstr "Non-Interlaced SVGA, 1024x768 ķą 60 Hz, 800x600 ķą 72 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:135
-msgid "High Frequency SVGA, 1024x768 at 70 Hz"
-msgstr "Āčńīźī÷åńņīņåķ SVGA, 1024x768 ķą 70 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:136
-msgid "Multi-frequency that can do 1280x1024 at 60 Hz"
-msgstr "Ģķīćī÷åńņīņåķ ģīķčņīš, źīéņī äīńņčćą 1280x1024 ķą 60 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:137
-msgid "Multi-frequency that can do 1280x1024 at 74 Hz"
-msgstr "Ģķīćī÷åńņīņåķ ģīķčņīš, źīéņī äīńņčćą 1280x1024 ķą 74 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:138
-msgid "Multi-frequency that can do 1280x1024 at 76 Hz"
-msgstr "Ģķīćī÷åńņīņåķ ģīķčņīš, źīéņī äīńņčćą 1280x1024 ķą 76 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:139
-msgid "Monitor that can do 1600x1200 at 70 Hz"
-msgstr "Ģīķčņīš, źīéņī äīńņčćą 1600x1200 ķą 70 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:140
-msgid "Monitor that can do 1600x1200 at 76 Hz"
-msgstr "Ģīķčņīš, źīéņī äīńņčćą 1600x1200 ķą 76 Hz"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141
-msgid "First sector of boot partition"
-msgstr "Ļśšāč ńåźņīš īņ ńņąšņčšąłč˙ ńå ä˙ė"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141 ../../any.pm_.c:218
-msgid "First sector of drive (MBR)"
-msgstr "Ļśšāč˙ņ ńåźņīš īņ äšąéāą (MBR)"
-
-#: ../../any.pm_.c:120
-msgid "SILO Installation"
-msgstr "SILO čķńņąėąöč˙"
-
-#: ../../any.pm_.c:121 ../../any.pm_.c:134
-msgid "Where do you want to install the bootloader?"
-msgstr "Źśäå čńźąņå äą čķńņąėčšąņå bootloader-ą?"
-
-#: ../../any.pm_.c:133
-msgid "LILO/grub Installation"
-msgstr "LILO/grub čķńņąėąöč˙"
-
-#: ../../any.pm_.c:145 ../../any.pm_.c:159
-msgid "SILO"
-msgstr "SILO"
-
-#: ../../any.pm_.c:147
-msgid "LILO with text menu"
-msgstr "LILO ń ņåźńņīāī ģåķž"
-
-#: ../../any.pm_.c:148 ../../any.pm_.c:159
-msgid "LILO with graphical menu"
-msgstr "LILO ń ćšąōč÷ķī ģåķž"
-
-#: ../../any.pm_.c:151
-msgid "Grub"
-msgstr "Grub"
-
-#: ../../any.pm_.c:155
-msgid "Boot from DOS/Windows (loadlin)"
-msgstr "Ńņąšņčšąķå īņ DOS/Windows (loadlin)"
-
-#: ../../any.pm_.c:157 ../../any.pm_.c:159
-msgid "Yaboot"
-msgstr "Yaboot"
-
-#: ../../any.pm_.c:166 ../../any.pm_.c:198
-msgid "Bootloader main options"
-msgstr "Īļöčč ķą ēąšåęäąłąņą ļšīćšąģą"
-
-#: ../../any.pm_.c:167 ../../any.pm_.c:199
-msgid "Bootloader to use"
-msgstr "Čēļīėēāąķą ēąšåęäąłąņą ļšīćšąģą"
-
-#: ../../any.pm_.c:169
-msgid "Bootloader installation"
-msgstr "Bootloader čķńņąėąöč˙"
-
-#: ../../any.pm_.c:171 ../../any.pm_.c:201
-msgid "Boot device"
-msgstr "Ńņąšņčšąłī óńņšīéńņāī"
-
-#: ../../any.pm_.c:172
-msgid "LBA (doesn't work on old BIOSes)"
-msgstr "LBA (ķå šąįīņč ķą ńņąšč BIOS-č)"
-
-#: ../../any.pm_.c:173
-msgid "Compact"
-msgstr "Źīģļąźņåķ"
-
-#: ../../any.pm_.c:173
-msgid "compact"
-msgstr "źīģļąźņåķ"
-
-#: ../../any.pm_.c:174 ../../any.pm_.c:298
-msgid "Video mode"
-msgstr "Āčäåī šåęčģ"
-
-#: ../../any.pm_.c:176
-msgid "Delay before booting default image"
-msgstr "Ēąįąā˙ķå ļšåäč ńņąšņčšąķåņī ķą default ä˙ėą"
-
-#: ../../any.pm_.c:178 ../../any.pm_.c:796
-#: ../../install_steps_interactive.pm_.c:1115 ../../network/modem.pm_.c:48
-#: ../../printerdrake.pm_.c:708 ../../printerdrake.pm_.c:806
-#: ../../standalone/draknet_.c:625
-msgid "Password"
-msgstr "Ļąšīėą"
-
-#: ../../any.pm_.c:179 ../../any.pm_.c:797
-#: ../../install_steps_interactive.pm_.c:1116
-msgid "Password (again)"
-msgstr "Ļąšīėą (īņķīāī)"
-
-#: ../../any.pm_.c:180
-msgid "Restrict command line options"
-msgstr "Īćšąķč÷č īļöččņå, ēąäąāąķč īņ źīģąķäķč˙ šåä"
-
-#: ../../any.pm_.c:180
-msgid "restrict"
-msgstr "īćšąķč÷č"
-
-#: ../../any.pm_.c:182
-msgid "Clean /tmp at each boot"
-msgstr "Ļī÷čńņāąķå ķą /tmp ļšč āń˙źī ēąšåęäąķå"
-
-#: ../../any.pm_.c:183
-#, c-format
-msgid "Precise RAM size if needed (found %d MB)"
-msgstr "Ņī÷åķ šąēģåš ķą RAM-ļąģåņņą, ąźī å ķåīįõīäčģī (ķąģåšåķč %d MB)"
-
-#: ../../any.pm_.c:185
-msgid "Enable multi profiles"
-msgstr "Āźėž÷č ģķīćī ļšīōčėč"
-
-#: ../../any.pm_.c:189
-msgid "Give the ram size in MB"
-msgstr "Äąéņå šąēģåšą RAM-ļąģåņ ā Mb"
-
-#: ../../any.pm_.c:191
-msgid ""
-"Option ``Restrict command line options'' is of no use without a password"
-msgstr "Īļöč˙ņą ``Īćšąķč÷č īļöččņå īņ źīģąķäķč˙ šåä'' å įåēļīėåēķą įåē ļąšīėą"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../diskdrake/interactive.pm_.c:1135
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "Please try again"
-msgstr "Ģīė˙, īļčņąéņå īņķīāī"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "The passwords do not match"
-msgstr "Ļąšīėčņå ķą ńśāļąäąņ"
-
-#: ../../any.pm_.c:200
-msgid "Init Message"
-msgstr "Ńņąšņīāī ńśīįłåķčå"
-
-#: ../../any.pm_.c:202
-msgid "Open Firmware Delay"
-msgstr "Čē÷ąźāąķå ķą Open Firmware"
-
-#: ../../any.pm_.c:203
-msgid "Kernel Boot Timeout"
-msgstr "Čē÷ąźāąķå ēą ńņąšņčšąķå ķą ˙äšīņī"
-
-#: ../../any.pm_.c:204
-msgid "Enable CD Boot?"
-msgstr "Ńņąšņčšąķå īņ CD ?"
-
-#: ../../any.pm_.c:205
-msgid "Enable OF Boot?"
-msgstr "Ńņąšņčšąķå īņ OF ?"
-
-#: ../../any.pm_.c:206
-msgid "Default OS?"
-msgstr "ĪŃ ļī ļīäšąēįčšąķå ?"
-
-#: ../../any.pm_.c:240
-msgid ""
-"You decided to install the bootloader on a partition.\n"
-"This implies you already have a bootloader on the hard drive you boot (eg: "
-"System Commander).\n"
-"\n"
-"On which drive are you booting?"
-msgstr ""
-
-#: ../../any.pm_.c:255
-msgid ""
-"Here are the different entries.\n"
-"You can add some more or change the existing ones."
-msgstr ""
-"Ņīāą ńą šąēėč÷ķčņå ēąļčńč.\n"
-"Ģīęåņå äą äīįąāčņå īłå čėč äą ļšīģåķčņå ńśłåńņāóāąłčņå."
-
-#: ../../any.pm_.c:265 ../../standalone/drakbackup_.c:752
-#: ../../standalone/drakbackup_.c:861 ../../standalone/drakfont_.c:789
-#: ../../standalone/drakfont_.c:826
-msgid "Add"
-msgstr "Äīįąāč"
-
-#: ../../any.pm_.c:265 ../../any.pm_.c:784 ../../diskdrake/hd_gtk.pm_.c:153
-#: ../../diskdrake/removable.pm_.c:27 ../../diskdrake/smbnfs_gtk.pm_.c:86
-#: ../../interactive_http.pm_.c:153
-msgid "Done"
-msgstr "Ćīņīāī"
-
-#: ../../any.pm_.c:265
-msgid "Modify"
-msgstr "Ģīäčōčöčšąé"
-
-#: ../../any.pm_.c:273
-msgid "Which type of entry do you want to add?"
-msgstr "Źąźśā ņčļ čķōīšģąöč˙ čńźąņå äą ļščįąāčņå"
-
-#: ../../any.pm_.c:274 ../../standalone/drakbackup_.c:895
-msgid "Linux"
-msgstr "Linux"
-
-#: ../../any.pm_.c:274
-msgid "Other OS (SunOS...)"
-msgstr "Äšóćą ĪŃ (SunOS...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (MacOS...)"
-msgstr "Äšóćą ĪŃ (MacOS...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (windows...)"
-msgstr "Äšóćą ĪŃ (Windows...)"
-
-#: ../../any.pm_.c:294
-msgid "Image"
-msgstr "Īįšąē"
-
-#: ../../any.pm_.c:295 ../../any.pm_.c:306
-msgid "Root"
-msgstr "Ćėąāåķ"
-
-#: ../../any.pm_.c:296 ../../any.pm_.c:325
-msgid "Append"
-msgstr "Äīļśėāąķå"
-
-#: ../../any.pm_.c:300
-msgid "Initrd"
-msgstr "Initrd"
-
-#: ../../any.pm_.c:301
-msgid "Read-write"
-msgstr "×åņåķå-ēąļčń"
-
-#: ../../any.pm_.c:308
-msgid "Table"
-msgstr "Ņąįėčöą"
-
-#: ../../any.pm_.c:309
-msgid "Unsafe"
-msgstr "Īļąńåķ"
-
-#: ../../any.pm_.c:316 ../../any.pm_.c:321 ../../any.pm_.c:324
-msgid "Label"
-msgstr "Åņčźåņ"
-
-#: ../../any.pm_.c:318 ../../any.pm_.c:329
-msgid "Default"
-msgstr "Ļī ļīäšąēįčšąķå"
-
-#: ../../any.pm_.c:326
-msgid "Initrd-size"
-msgstr "Initrd-ćīėåģčķą"
-
-#: ../../any.pm_.c:328
-msgid "NoVideo"
-msgstr "Įåē ćšąōčźą"
-
-#: ../../any.pm_.c:336
-msgid "Remove entry"
-msgstr "Ļšåģąõķč ēąļčń"
-
-#: ../../any.pm_.c:339
-msgid "Empty label not allowed"
-msgstr "Ļšąēåķ åņčźåņ ķå å šąēšåųåķ"
-
-#: ../../any.pm_.c:340
-msgid "You must specify a kernel image"
-msgstr ""
-
-#: ../../any.pm_.c:340
-#, fuzzy
-msgid "You must specify a root partition"
-msgstr "Ņš˙įāą äą čģąņå swap-ä˙ė"
-
-#: ../../any.pm_.c:341
-msgid "This label is already used"
-msgstr "Ņīēč åņčźåņ āå÷å ńå čēļīėēāą"
-
-#: ../../any.pm_.c:656
-#, c-format
-msgid "Found %s %s interfaces"
-msgstr "Ķąģåšåķč ńą %s %s čķņåšōåéńč"
-
-#: ../../any.pm_.c:657
-msgid "Do you have another one?"
-msgstr "Čģąņå ėč äšóć(č) ?"
-
-#: ../../any.pm_.c:658
-#, c-format
-msgid "Do you have any %s interfaces?"
-msgstr "Čģąņå ėč ķ˙źąźśā %s čķņåšōåéń?"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:832 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "No"
-msgstr "Ķå"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:831 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "Yes"
-msgstr "Äą"
-
-#: ../../any.pm_.c:661
-msgid "See hardware info"
-msgstr "Āčę õąšäóåšķąņą čķōīšģąöč˙"
-
-#. -PO: the first %s is the card type (scsi, network, sound,...)
-#. -PO: the second is the vendor+model name
-#: ../../any.pm_.c:695
-#, c-format
-msgid "Installing driver for %s card %s"
-msgstr "Čķńņąėčšąķå ķą äšąéāåš ēą %s ļėąņźą %s"
-
-#: ../../any.pm_.c:696
-#, c-format
-msgid "(module %s)"
-msgstr "(ģīäóė %s)"
-
-#. -PO: the %s is the driver type (scsi, network, sound,...)
-#: ../../any.pm_.c:707
-#, c-format
-msgid "Which %s driver should I try?"
-msgstr "Źīé %s äšąéāåš äą ļšīįāąģ ?"
-
-#: ../../any.pm_.c:715
-#, c-format
-msgid ""
-"In some cases, the %s driver needs to have extra information to work\n"
-"properly, although it normally works fine without. Would you like to "
-"specify\n"
-"extra options for it or allow the driver to probe your machine for the\n"
-"information it needs? Occasionally, probing will hang a computer, but it "
-"should\n"
-"not cause any damage."
-msgstr ""
-"Ā ķ˙źīč ńėó÷ąč, %s äšąéāåšśņ ńå ķóęäąå īņ äīļśėķčņåėķą čķōīšģąöč˙, ēą\n"
-"äą šąįīņč źīšåźņķī, āśļšåźč ÷å ķīšģąėķī šąįīņč č įåē ķå˙. Ęåėąåņå ėč "
-"äąļīäąäåņå\n"
-"äīļśėķčņåėķč īļöčč ēą ķåćī čėč äą šąēšåųčņå ķą äšąéāåšą äą ļīņśšńč "
-"čķōīšģąöč˙ņą\n"
-"īņ źī˙ņī ńå ķóęäąå ? Ļī ļščķöčļ ņīāą ģīęå äą ēąįčå źīģļžņśšą āč, ķī ķ˙ģą äą "
-"ćī ļīāšåäč."
-
-#: ../../any.pm_.c:720
-msgid "Autoprobe"
-msgstr "Ąāņīģąņč÷ķī ēąńč÷ąķå"
-
-#: ../../any.pm_.c:720
-msgid "Specify options"
-msgstr "Ēąäąé īļöčč"
-
-#: ../../any.pm_.c:725
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Note that any address should be entered with the prefix 0x like '0x123'"
-msgstr ""
-
-#: ../../any.pm_.c:731
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Options are in format ``name=value name2=value2 ...''.\n"
-"For instance, ``io=0x300 irq=7''"
-msgstr ""
-"Ńåćą ģīęåņå äą ļīäąäåņå īļöččņå ģó äī ģīäóėą %s.\n"
-"Īļöččņå ńą āśā ōīšģąņ ``čģå=ńņīéķīńņ čģå2=ńņīéķīńņ2 ...''.\n"
-"Ķąļščģåš: ``io=0x300 irq=7''"
-
-#: ../../any.pm_.c:734
-msgid "Module options:"
-msgstr "Īļöčč ķą ģīäóėą:"
-
-#: ../../any.pm_.c:745
-#, c-format
-msgid ""
-"Loading module %s failed.\n"
-"Do you want to try again with other parameters?"
-msgstr ""
-"Ēąšåęäąķåņī ķą ģīäóėą %s ķå óńļ˙.\n"
-"Čńźąņå ėč äą īļčņąņå īņķīāī ń äšóćč ļąšąģåņšč ?"
-
-#: ../../any.pm_.c:761
-msgid "access to X programs"
-msgstr ""
-
-#: ../../any.pm_.c:762
-msgid "access to rpm tools"
-msgstr ""
-
-#: ../../any.pm_.c:763
-msgid "allow \"su\""
-msgstr ""
-
-#: ../../any.pm_.c:764
-msgid "access to administrative files"
-msgstr ""
-
-#: ../../any.pm_.c:769
-#, c-format
-msgid "(already added %s)"
-msgstr "(āå÷å ļščįąāčõ %s)"
-
-#: ../../any.pm_.c:774
-msgid "This password is too simple"
-msgstr "Ņąēč ļąšīėą å ļšåźąėåķī ļšīńņą"
-
-#: ../../any.pm_.c:775
-msgid "Please give a user name"
-msgstr "Ģīė˙, ēąäąéņå ļīņšåįčņåėńźī čģå"
-
-#: ../../any.pm_.c:776
-msgid ""
-"The user name must contain only lower cased letters, numbers, `-' and `_'"
-msgstr ""
-"Ļīņšåįčņåėńźīņī čģå ģīęå äą āźėž÷āą ńąģī ģąėźč įóźāč, ķīģåšą, `-' č `_'"
-
-#: ../../any.pm_.c:777
-msgid "This user name is already added"
-msgstr "Ņīāą ļīņšåįčņåėńźī čģå å āå÷å äīįąāåķī"
-
-#: ../../any.pm_.c:781
-msgid "Add user"
-msgstr "Äīįąāč ļīņšåįčņåė"
-
-#: ../../any.pm_.c:782
-#, c-format
-msgid ""
-"Enter a user\n"
-"%s"
-msgstr ""
-"Āśāåäåņå ļīņšåįčņåė\n"
-"%s"
-
-#: ../../any.pm_.c:783
-msgid "Accept user"
-msgstr "Ļščåģč ļīņšåįčņåė"
-
-#: ../../any.pm_.c:794
-msgid "Real name"
-msgstr "Čńņčķńźī čģå"
-
-#: ../../any.pm_.c:795 ../../printerdrake.pm_.c:707
-#: ../../printerdrake.pm_.c:805
-msgid "User name"
-msgstr "Ļīņšåįčņåėńźī čģå"
-
-#: ../../any.pm_.c:798
-msgid "Shell"
-msgstr "Ųåė"
-
-#: ../../any.pm_.c:800
-msgid "Icon"
-msgstr "Čźīķą"
-
-#: ../../any.pm_.c:828
-msgid "Autologin"
-msgstr "Autologin"
-
-#: ../../any.pm_.c:829
-msgid ""
-"I can set up your computer to automatically log on one user.\n"
-"Do you want to use this feature?"
-msgstr ""
-"Ģīćą äą ķąńņšī˙ źīģļžņśšą āč äą āėčēąķå ā ńčńņåģąņą ąāņīģąņč÷ķī źąņī ķ˙źīé "
-"ļīņšåįčņåė.\n"
-"Čńźąņå ėč ņąēč āśēģīęķīńņ ?"
-
-#: ../../any.pm_.c:833
-msgid "Choose the default user:"
-msgstr "Čēįåšåņå ļīäšąēįčšął ńå ļīņšåįčņåė :"
-
-#: ../../any.pm_.c:834
-msgid "Choose the window manager to run:"
-msgstr "Čēįåšåņå Windows Manager ēą ńņąšņčšąķå:"
-
-#: ../../any.pm_.c:849
-#, fuzzy
-msgid "Please choose a language to use."
-msgstr "Ģīė˙, čēįåšåņå čēļīėēāąķ åēčź."
-
-#: ../../any.pm_.c:851
-msgid "You can choose other languages that will be available after install"
-msgstr "Ģīęåņå äą čēįåšåņå äšóćč åēčöč, źīčņī łå įśäąņ ķąėčöå ńėåäčķńņąėąöč˙ņą"
-
-#: ../../any.pm_.c:863 ../../install_steps_interactive.pm_.c:719
-#: ../../standalone/drakxtv_.c:54
-msgid "All"
-msgstr "Āńč÷źč"
-
-#: ../../any.pm_.c:955
-#, fuzzy
-msgid "Allow all users"
-msgstr "Äīįąā˙ķå ķą ļīņšåįčņåė"
-
-#: ../../any.pm_.c:955 ../../install_steps_interactive.pm_.c:521
-msgid "Custom"
-msgstr "Źėčåķņńźą"
-
-#: ../../any.pm_.c:955
-#, fuzzy
-msgid "No sharing"
-msgstr "Ļīäåė˙ķå ķą ōąéėīāå"
-
-#: ../../any.pm_.c:965 ../../network/smbnfs.pm_.c:45
-#, fuzzy, c-format
-msgid "The package %s needs to be installed. Do you want to install it?"
-msgstr ""
-"Ņīēč ļąźåņ ņš˙įāą äą įśäå īįķīāåķ\n"
-"Ńčćóšķč ėč ńņå, ÷å čńźąņå äą ćī čēźėž÷čņå ?"
-
-#: ../../any.pm_.c:968
-msgid "You can export using NFS or Samba. Which one do you want"
-msgstr ""
-
-#: ../../any.pm_.c:976 ../../network/smbnfs.pm_.c:49
-#, c-format
-msgid "Mandatory package %s is missing"
-msgstr ""
-
-#: ../../any.pm_.c:982
-msgid ""
-"Do you want to allow users to export some directories in their home?\n"
-"Allowing this will permit users to simply click on \"Share\" in konqueror "
-"and nautilus.\n"
-"\n"
-"\"Custom\" permit a per-user granularity.\n"
-msgstr ""
-
-#: ../../any.pm_.c:996 ../../bootlook.pm_.c:161
-#: ../../diskdrake/smbnfs_gtk.pm_.c:85 ../../install_steps_gtk.pm_.c:464
-#: ../../install_steps_gtk.pm_.c:522 ../../install_steps_interactive.pm_.c:594
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_stdio.pm_.c:141
-#: ../../my_gtk.pm_.c:687 ../../my_gtk.pm_.c:690 ../../my_gtk.pm_.c:1019
-#: ../../network/netconnect.pm_.c:47 ../../printerdrake.pm_.c:1586
-#: ../../standalone/drakautoinst_.c:204 ../../standalone/drakbackup_.c:2264
-#: ../../standalone/drakbackup_.c:2289 ../../standalone/drakbackup_.c:2310
-#: ../../standalone/drakbackup_.c:2331 ../../standalone/drakbackup_.c:2349
-#: ../../standalone/drakbackup_.c:2397 ../../standalone/drakbackup_.c:2417
-#: ../../standalone/drakbackup_.c:2436 ../../standalone/drakfont_.c:767
-#: ../../standalone/drakgw_.c:721 ../../standalone/draknet_.c:116
-#: ../../standalone/draknet_.c:148 ../../standalone/draknet_.c:290
-#: ../../standalone/draknet_.c:538 ../../standalone/draknet_.c:680
-#: ../../standalone/logdrake_.c:225 ../../standalone/logdrake_.c:512
-#: ../../standalone/tinyfirewall_.c:65
-msgid "Cancel"
-msgstr "Īņģ˙ķą"
-
-#: ../../any.pm_.c:996
-msgid "Launch userdrake"
-msgstr ""
-
-#: ../../any.pm_.c:998
-msgid ""
-"The per-user sharing uses the group \"fileshare\". \n"
-"You can use userdrake to add a user in this group."
-msgstr ""
-
-#: ../../any.pm_.c:1035
-msgid "Welcome To Crackers"
-msgstr "Äīįšå äīųėč ļšč Cracker-čņå"
-
-#: ../../any.pm_.c:1036
-msgid "Poor"
-msgstr "Ėīųī"
-
-#: ../../any.pm_.c:1037 ../../mouse.pm_.c:31
-msgid "Standard"
-msgstr "Ńņąķäąšņķą"
-
-#: ../../any.pm_.c:1038
-msgid "High"
-msgstr "Āčńīźī"
-
-#: ../../any.pm_.c:1039
-#, fuzzy
-msgid "Higher"
-msgstr "Āčńīźī"
-
-#: ../../any.pm_.c:1040
-msgid "Paranoid"
-msgstr "Ļąšąķīč÷ķī"
-
-#: ../../any.pm_.c:1043
-msgid ""
-"This level is to be used with care. It makes your system more easy to use,\n"
-"but very sensitive: it must not be used for a machine connected to others\n"
-"or to the Internet. There is no password access."
-msgstr ""
-"Ņīāą ķčāī ńå čēļīėēāą ń āķčģąķčå. Ņīāą źąšą ńčńņåģąņą āč ļī-ėåńķą ēą\n"
-"óļīņšåįą, ķī å ļī-÷óāńņāčņåėķī: ķå ņš˙įāą äą įśäå čēļīėēāąķą ķą ģąųčķč\n"
-"ńāśšēąķč ń äšóćč čėč ļī Čķņåšķåņ. Ķ˙ģą äīńņśļ ń ļąšīėč."
-
-#: ../../any.pm_.c:1046
-msgid ""
-"Password are now enabled, but use as a networked computer is still not "
-"recommended."
-msgstr ""
-"Ļąšīėąņą ńåćą å āźėž÷åķą, ķī čēļīėēāąķåņī źąņī ģšåęīā źīģļžņśš ķå å "
-"ļšåļīšś÷čņåėķī."
-
-#: ../../any.pm_.c:1047
-#, fuzzy
-msgid ""
-"This is the standard security recommended for a computer that will be used "
-"to connect to the Internet as a client."
-msgstr ""
-"Ņīāą å ńņąķäąšņķąņą ńčćóšķīńņ ļšåļīšś÷čņåėķą ēą źīģļžņśš, źīéņī łå įśäå\n"
-"čēļīėēāąķ äą ńå ńāśšēāą źśģ Čķņåšķåņ źąņī źėčåķņ. Čģą ļšīāåšźč ķą "
-"ńčćóšķīńņņą. "
-
-#: ../../any.pm_.c:1048
-msgid ""
-"There are already some restrictions, and more automatic checks are run every "
-"night."
-msgstr ""
-
-#: ../../any.pm_.c:1049
-#, fuzzy
-msgid ""
-"With this security level, the use of this system as a server becomes "
-"possible.\n"
-"The security is now high enough to use the system as a server which accept\n"
-"connections from many clients. Note: if your machine is only a client on the "
-"Internet, you should better choose a lower level."
-msgstr ""
-"Ń ņīāą ķčāī ķą ńčćóšķīńņ, ļīėēāąķåņī ķą ńčńņåģąņą źąņī ńśšāśš ńņąāą "
-"āśēģīęķī.\n"
-"Ńčćóšķīńņņą ńåćą å äīńņąņś÷ķī ćīė˙ģą äą ńå čēļīėēāą ńčńņåģąņą źąņī\n"
-"ńśšāśš ļščåģął āšśēźč īņ ģķīćī źėčåķņč. "
-
-#: ../../any.pm_.c:1052
-#, fuzzy
-msgid ""
-"Based on the previous level, but the system is entirely closed.\n"
-"Security features are at their maximum."
-msgstr ""
-"Čēįčšąģå 4-ņī ķčāī, ķī ńčńņåģąņą å ķąļśėķī ēąņāīšåķą.\n"
-"Ķčāīņī ķą ńčćóšķīńņ å ķą ģąźńčģóģą ńč."
-
-#: ../../any.pm_.c:1058
-msgid "Choose security level"
-msgstr "Čēįåšåņå ķčāī ķą ńčćóšķīńņ"
-
-#: ../../any.pm_.c:1061
-msgid "Security level"
-msgstr "Ķčāī ķą ńčćóšķīńņ"
-
-#: ../../any.pm_.c:1063
-msgid "Use libsafe for servers"
-msgstr "Čēļīėēāąéņå libsafe ēą ńśšāśšč"
-
-#: ../../any.pm_.c:1064
-msgid ""
-"A library which defends against buffer overflow and format string attacks."
-msgstr ""
-"Įčįėčīņåźą, źī˙ņī īńčćóš˙āą ēąłčņą īņ aņąźč ń ļšåļśėāąķå ķą įóōåš č ōīšģąņķč "
-"ńņščķćīāå."
-
-# NOTE: this message will be displayed at boot time; that is
-# only the ascii charset will be available on most machines
-# so use only 7bit for this message (and do transliteration or
-# leave it in English, as it is the best for your language)
-#
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#: ../../bootloader.pm_.c:355
-#, c-format
-msgid ""
-"Welcome to %s the operating system chooser!\n"
-"\n"
-"Choose an operating system in the list above or\n"
-"wait %d seconds for default boot.\n"
-"\n"
-msgstr ""
-"Welcome to %s the operating system chooser!\n"
-"\n"
-"Choose an operating system in the list above or\n"
-"wait %d seconds for default boot.\n"
-"\n"
-
-# NOTE: this message will be displayed by grub at boot time; that is
-# using the BIOS font; that means cp437 charset on 99.99% of PC computers
-# out there. It is the nsuggested that for non latin languages an ascii
-# transliteration be used; or maybe the english text be used; as it is best
-#
-# The lines must fit on screen, aka length < 80
-# and only one line per string for the GRUB messages
-#
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:928
-msgid "Welcome to GRUB the operating system chooser!"
-msgstr "Welcome to GRUB the operating system chooser!"
-
-# NOTE: this message will be displayed by grub at boot time; that is
-# using the BIOS font; that means cp437 charset on 99.99% of PC computers
-# out there. It is the nsuggested that for non latin languages an ascii
-# transliteration be used; or maybe the english text be used; as it is best
-#
-# The lines must fit on screen, aka length < 80
-# and only one line per string for the GRUB messages
-#
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:931
-#, c-format
-msgid "Use the %c and %c keys for selecting which entry is highlighted."
-msgstr "Use the %c and %c keys for selecting which entry is highlighted."
-
-# NOTE: this message will be displayed by grub at boot time; that is
-# using the BIOS font; that means cp437 charset on 99.99% of PC computers
-# out there. It is the nsuggested that for non latin languages an ascii
-# transliteration be used; or maybe the english text be used; as it is best
-#
-# The lines must fit on screen, aka length < 80
-# and only one line per string for the GRUB messages
-#
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:934
-msgid "Press enter to boot the selected OS, 'e' to edit the"
-msgstr "Press enter to boot the selected OS, 'e' to edit the"
-
-# NOTE: this message will be displayed by grub at boot time; that is
-# using the BIOS font; that means cp437 charset on 99.99% of PC computers
-# out there. It is the nsuggested that for non latin languages an ascii
-# transliteration be used; or maybe the english text be used; as it is best
-#
-# The lines must fit on screen, aka length < 80
-# and only one line per string for the GRUB messages
-#
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:937
-msgid "commands before booting, or 'c' for a command-line."
-msgstr "commands before booting, or 'c' for a command-line."
-
-# NOTE: this message will be displayed by grub at boot time; that is
-# using the BIOS font; that means cp437 charset on 99.99% of PC computers
-# out there. It is the nsuggested that for non latin languages an ascii
-# transliteration be used; or maybe the english text be used; as it is best
-#
-# The lines must fit on screen, aka length < 80
-# and only one line per string for the GRUB messages
-#
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:940
-#, c-format
-msgid "The highlighted entry will be booted automatically in %d seconds."
-msgstr "The highlighted entry will be booted automatically in %d seconds."
-
-#: ../../bootloader.pm_.c:944
-msgid "not enough room in /boot"
-msgstr "ķ˙ģą äīńņąņś÷ķī ģ˙ńņī ēą /boot"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#. -PO: so you may need to put them in English or in a different language if MS-windows doesn't exist in your language
-#: ../../bootloader.pm_.c:1044
-msgid "Desktop"
-msgstr "Äåńźņīļ"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#: ../../bootloader.pm_.c:1046
-msgid "Start Menu"
-msgstr "Ńņąšņīāī Ģåķž"
-
-#: ../../bootloader.pm_.c:1065
-#, c-format
-msgid "You can't install the bootloader on a %s partition\n"
-msgstr "Ķå ģīęåņå äą čķńņąėčšąņå bootloader ķą ä˙ėą %s\n"
-
-#: ../../bootlook.pm_.c:46
-msgid "no help implemented yet.\n"
-msgstr "ķ˙ģą āśāåäåķą ļīģīł īłå.\n"
-
-#: ../../bootlook.pm_.c:62
-msgid "Boot Style Configuration"
-msgstr "Ķąńņšīéźą ķą ķą÷čķą ķą ńņąšņčšąķå"
-
-#: ../../bootlook.pm_.c:79 ../../standalone/logdrake_.c:101
-msgid "/_File"
-msgstr "/_Ōąéėīāå"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "/File/_Quit"
-msgstr "/Ōąéė/_Čēõīä"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "<control>Q"
-msgstr "<źīķņšīė>Q"
-
-#: ../../bootlook.pm_.c:91
-msgid "NewStyle Categorizing Monitor"
-msgstr "NewStyle źąņåćīščēčšąķ ģīķčņīš"
-
-#: ../../bootlook.pm_.c:92
-msgid "NewStyle Monitor"
-msgstr "NewStyle ģīķčņīš"
-
-#: ../../bootlook.pm_.c:93
-msgid "Traditional Monitor"
-msgstr "Īįčźķīāåķ ģīķčņīš"
-
-#: ../../bootlook.pm_.c:94
-msgid "Traditional Gtk+ Monitor"
-msgstr "Īįčźķīāåķ Gtk+ ģīķčņīš"
-
-#: ../../bootlook.pm_.c:95
-msgid "Launch Aurora at boot time"
-msgstr "Ļóńķč Aurora ļšč ńņąšņčšąķå"
-
-#: ../../bootlook.pm_.c:98
-msgid "Lilo/grub mode"
-msgstr "Šåęčģ ķą Lilo/grub"
-
-#: ../../bootlook.pm_.c:98
-msgid "Yaboot mode"
-msgstr "Šåęčģ ķą Yaboot"
-
-#: ../../bootlook.pm_.c:104
-#, c-format
-msgid ""
-"You are currently using %s as Boot Manager.\n"
-"Click on Configure to launch the setup wizard."
-msgstr ""
-"Ā ģīģåķņą čēļīėēāąņå %s źąņī ļšīćšąģą ēą ńņąšņčšąķå.\n"
-"Öśźķåņå ķą Ķąńņšīé, ēą äą ńņąšņčšąņå óńņąķīā˙āąłč˙ ģąćüīńķčź."
-
-#: ../../bootlook.pm_.c:106 ../../standalone/drakbackup_.c:1467
-#: ../../standalone/drakbackup_.c:1478 ../../standalone/drakgw_.c:715
-#: ../../standalone/tinyfirewall_.c:59
-msgid "Configure"
-msgstr "Ķąńņšīé"
-
-#: ../../bootlook.pm_.c:141
-msgid "System mode"
-msgstr "Ńčńņåģåķ šåęčģ"
-
-#: ../../bootlook.pm_.c:143
-msgid "Launch the X-Window system at start"
-msgstr "Ļóńķč X-Window ńčńņåģąņą ļšč ńņąšņčšąķå"
-
-#: ../../bootlook.pm_.c:148
-msgid "No, I don't want autologin"
-msgstr "Ķå, ķå čńźąģ autologin"
-
-#: ../../bootlook.pm_.c:150
-msgid "Yes, I want autologin with this (user, desktop)"
-msgstr "Äą, čńźąģ autologin ń ņīāą (ļīņšåįčņåė, äåńźņīļ)"
-
-#: ../../bootlook.pm_.c:160 ../../network/netconnect.pm_.c:102
-#: ../../standalone/drakbackup_.c:2441 ../../standalone/drakbackup_.c:3345
-#: ../../standalone/drakfont_.c:532 ../../standalone/drakfont_.c:655
-#: ../../standalone/drakfont_.c:719 ../../standalone/drakfont_.c:765
-#: ../../standalone/draknet_.c:109 ../../standalone/draknet_.c:141
-#: ../../standalone/draknet_.c:297 ../../standalone/draknet_.c:436
-#: ../../standalone/draknet_.c:522 ../../standalone/draknet_.c:565
-#: ../../standalone/draknet_.c:666 ../../standalone/logdrake_.c:505
-msgid "OK"
-msgstr "OK"
-
-#: ../../bootlook.pm_.c:229
-#, c-format
-msgid "can not open /etc/inittab for reading: %s"
-msgstr "ķå ģīćą äą īņāīš˙ /etc/inittab ēą ÷åņåķå: %s"
-
-#: ../../common.pm_.c:94
-msgid "GB"
-msgstr "ĆĮ"
-
-#: ../../common.pm_.c:94
-msgid "KB"
-msgstr "ŹĮ"
-
-#: ../../common.pm_.c:94
-msgid "MB"
-msgstr "ĢĮ"
-
-#: ../../common.pm_.c:102
-msgid "TB"
-msgstr "ŅĮ"
-
-#: ../../common.pm_.c:110
-#, c-format
-msgid "%d minutes"
-msgstr "%d ģčķóņč"
-
-#: ../../common.pm_.c:112
-msgid "1 minute"
-msgstr "1 ģčķóņą"
-
-#: ../../common.pm_.c:114
-#, c-format
-msgid "%d seconds"
-msgstr "%d ńåźóķäč"
-
-#: ../../common.pm_.c:159
-#, fuzzy
-msgid "Can't make screenshots before partitioning"
-msgstr "Ķå ģīćą äą äīįąā˙ ļīāå÷å ä˙ėīāå"
-
-#: ../../common.pm_.c:166
-#, fuzzy, c-format
-msgid "Screenshots will be available after install in %s"
-msgstr "Ģīęåņå äą čēįåšåņå äšóćč åēčöč, źīčņī łå įśäąņ ķąėčöå ńėåäčķńņąėąöč˙ņą"
-
-#: ../../crypto.pm_.c:12 ../../crypto.pm_.c:26 ../../standalone/drakxtv_.c:50
-msgid "France"
-msgstr "Ōšąķöč˙"
-
-#: ../../crypto.pm_.c:13
-msgid "Costa Rica"
-msgstr ""
-
-#: ../../crypto.pm_.c:14 ../../crypto.pm_.c:27
-#, fuzzy
-msgid "Belgium"
-msgstr "Įåėćčéńźą"
-
-#: ../../crypto.pm_.c:15 ../../crypto.pm_.c:28
-msgid "Czech Republic"
-msgstr ""
-
-#: ../../crypto.pm_.c:16 ../../crypto.pm_.c:29
-#, fuzzy
-msgid "Germany"
-msgstr "Ķåģńźą"
-
-#: ../../crypto.pm_.c:17 ../../crypto.pm_.c:30
-#, fuzzy
-msgid "Greece"
-msgstr "Ćšśöźą"
-
-#: ../../crypto.pm_.c:18 ../../crypto.pm_.c:31
-#, fuzzy
-msgid "Norway"
-msgstr "Ķīšāåęźą"
-
-#: ../../crypto.pm_.c:19 ../../crypto.pm_.c:32
-#, fuzzy
-msgid "Sweden"
-msgstr "Āčę"
-
-#: ../../crypto.pm_.c:20 ../../crypto.pm_.c:34
-msgid "Netherlands"
-msgstr ""
-
-#: ../../crypto.pm_.c:21 ../../crypto.pm_.c:35 ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "Italy"
-msgstr "Čņąėčąķńźą"
-
-#: ../../crypto.pm_.c:22 ../../crypto.pm_.c:36
-#, fuzzy
-msgid "Austria"
-msgstr "ńåščéķą"
-
-#: ../../crypto.pm_.c:33 ../../crypto.pm_.c:67
-msgid "United States"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:94
-msgid "Please make a backup of your data first"
-msgstr "Ļśšāī ńśēäąéņå backup ķą ńāīčņå äąķķč"
-
-#: ../../diskdrake/hd_gtk.pm_.c:94 ../../diskdrake/interactive.pm_.c:891
-#: ../../diskdrake/interactive.pm_.c:900 ../../diskdrake/interactive.pm_.c:954
-msgid "Read carefully!"
-msgstr "Ļšī÷åņåņå āķčģąņåėķī !"
-
-#: ../../diskdrake/hd_gtk.pm_.c:97
-msgid ""
-"If you plan to use aboot, be carefull to leave a free space (2048 sectors is "
-"enough)\n"
-"at the beginning of the disk"
-msgstr ""
-"Ąźī ńģ˙ņąņå äą čēļīėēāąņå aboot, īńņąāåņå ńāīįīäķī ļšīńņšąķńņāī (2048 "
-"ńåźņīšą\n"
-"ńą äīńņąņś÷ķč) ā ķą÷ąėīņī ķą äčńźą"
-
-#: ../../diskdrake/hd_gtk.pm_.c:116 ../../diskdrake/interactive.pm_.c:325
-#: ../../diskdrake/interactive.pm_.c:340 ../../diskdrake/smbnfs_gtk.pm_.c:45
-#: ../../install_steps.pm_.c:75 ../../install_steps_interactive.pm_.c:67
-#: ../../install_steps_interactive.pm_.c:356 ../../interactive_http.pm_.c:119
-#: ../../interactive_http.pm_.c:120 ../../standalone/diskdrake_.c:84
-msgid "Error"
-msgstr "Ćšåųźą"
-
-#: ../../diskdrake/hd_gtk.pm_.c:151
-msgid "Wizard"
-msgstr "Ģąćüīńķčź"
-
-#: ../../diskdrake/hd_gtk.pm_.c:181 ../../diskdrake/removable_gtk.pm_.c:24
-msgid "Choose action"
-msgstr "Čēįåšåņå äåéńņāčå"
-
-#: ../../diskdrake/hd_gtk.pm_.c:185
-msgid ""
-"You have one big FAT partition\n"
-"(generally used by MicroSoft Dos/Windows).\n"
-"I suggest you first resize that partition\n"
-"(click on it, then click on \"Resize\")"
-msgstr ""
-"Čģąņå åäčķ ćīė˙ģ FAT ä˙ė\n"
-"(ļī ļščķöčļ ńå ļīėēāąņ īņ Microsoft Dos/Windows).\n"
-"Ļšåäėąćąģ ļśšāī äą ļšīģåķčņå ćīėåģčķąņą ķą ņīēč ä˙ė\n"
-"(łšąźķåņå āśšõó ķåćī, ą ńėåä ņīāą łšąźķåņå āśšõó \"Ļšīģåķč ćīėåģčķąņą\")"
-
-#: ../../diskdrake/hd_gtk.pm_.c:188
-msgid "Please click on a partition"
-msgstr "Ģīė˙, öśźķåņå ķą ä˙ėą"
-
-#: ../../diskdrake/hd_gtk.pm_.c:202 ../../diskdrake/smbnfs_gtk.pm_.c:67
-#: ../../install_steps_gtk.pm_.c:523
-msgid "Details"
-msgstr "Ļīäšīįķīńņč"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Ext2"
-msgstr "Ext2"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "FAT"
-msgstr "FAT"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "HFS"
-msgstr "HFS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Journalised FS"
-msgstr "Ęóšķąėķą FS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "SunOS"
-msgstr "SunOS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Swap"
-msgstr "Swap"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../diskdrake/interactive.pm_.c:1050
-msgid "Empty"
-msgstr "Ļšąēåķ"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../install_steps_gtk.pm_.c:379
-#: ../../install_steps_gtk.pm_.c:439 ../../mouse.pm_.c:162
-#: ../../services.pm_.c:157 ../../standalone/drakbackup_.c:944
-msgid "Other"
-msgstr "Äšóćą"
-
-#: ../../diskdrake/hd_gtk.pm_.c:325
-msgid "Filesystem types:"
-msgstr "Āčäīāå ōąéėīāą ńčńņåģą:"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:386
-msgid "Create"
-msgstr "Ńśēäąé"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:365
-#: ../../diskdrake/interactive.pm_.c:499 ../../diskdrake/removable.pm_.c:26
-#: ../../diskdrake/removable.pm_.c:49 ../../diskdrake/removable_gtk.pm_.c:17
-msgid "Type"
-msgstr "Āčä"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/hd_gtk.pm_.c:344
-#, c-format
-msgid "Use ``%s'' instead"
-msgstr "Āģåńņī ņīāą čēļīėēāąéņå ``%s''"
-
-#: ../../diskdrake/hd_gtk.pm_.c:344 ../../diskdrake/interactive.pm_.c:374
-msgid "Delete"
-msgstr "Čēņščé"
-
-#: ../../diskdrake/hd_gtk.pm_.c:348
-msgid "Use ``Unmount'' first"
-msgstr "Ļśšāī čēļīėēāąéņå 'Äåģīķņčšąķå'"
-
-#: ../../diskdrake/hd_gtk.pm_.c:349 ../../diskdrake/interactive.pm_.c:491
-#, c-format
-msgid ""
-"After changing type of partition %s, all data on this partition will be lost"
-msgstr ""
-"Ńėåä ļšīģ˙ķą ķą ņčļą ķą ä˙ėą %s, āńč÷źč äąķķč āśšõó ķåćī łå įśäąņ ēąćóįåķč"
-
-#: ../../diskdrake/interactive.pm_.c:171
-msgid "Choose a partition"
-msgstr "Čēįåšåņå ä˙ė"
-
-#: ../../diskdrake/interactive.pm_.c:171
-msgid "Choose another partition"
-msgstr "Čēįåšåņå äšóć ä˙ė"
-
-#: ../../diskdrake/interactive.pm_.c:196
-msgid "Exit"
-msgstr "Čēėåē"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to expert mode"
-msgstr "Ļšåģčķč ā Åźńļåšņåķ šåęčģ"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to normal mode"
-msgstr "Ļšåģčķč ā Ķīšģąėåķ šåęčģ"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Undo"
-msgstr "Āśšķč"
-
-#: ../../diskdrake/interactive.pm_.c:237
-msgid "Continue anyway?"
-msgstr "Ļšīäśėęåķčå āśļšåźč āńč÷źī ?"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without saving"
-msgstr "Čēõīä įåē ēąļčń"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without writing the partition table?"
-msgstr "Čēõīä, įåē äą ēąļčń ķą ņąįėčöąņą ķą ä˙ėīāåņå ?"
-
-#: ../../diskdrake/interactive.pm_.c:247
-msgid "Do you want to save /etc/fstab modifications"
-msgstr "Čńźąņå ėč äą ēąļąēčņå ļšīģåķčņå ā /etc/fstab"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Auto allocate"
-msgstr "Ąāņīģąņč÷ķī ńśēäąāąķå"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Clear all"
-msgstr "Čē÷čńņč āńč÷źī"
-
-#: ../../diskdrake/interactive.pm_.c:262
-msgid "Hard drive information"
-msgstr "Čķōīšģąöč˙ņą ēą ņāśšäč˙ äčńź"
-
-#: ../../diskdrake/interactive.pm_.c:283
-msgid "All primary partitions are used"
-msgstr "Āńč÷źč ļśšāč÷ķč ä˙ėīāå ńå čēļīėēāąņ"
-
-#: ../../diskdrake/interactive.pm_.c:284
-msgid "I can't add any more partition"
-msgstr "Ķå ģīćą äą äīįąā˙ ļīāå÷å ä˙ėīāå"
-
-#: ../../diskdrake/interactive.pm_.c:285
-msgid ""
-"To have more partitions, please delete one to be able to create an extended "
-"partition"
-msgstr ""
-"Ąźī čńźąņå īłå ä˙ėīāå, ģīė˙ čēņščéņå åäčķ, ēą äą ģīęåņå äą ńśēäąäåņå åäčķ "
-"šąēųčšåķ ä˙ė"
-
-#: ../../diskdrake/interactive.pm_.c:295
-msgid "Save partition table"
-msgstr "Ēąļąēč ņąįėčöąņą ń ä˙ėīāåņå"
-
-#: ../../diskdrake/interactive.pm_.c:296
-msgid "Restore partition table"
-msgstr "Āśēńņąķīāč ņąįėčöąņą ń ä˙ėīāåņå"
-
-#: ../../diskdrake/interactive.pm_.c:297
-msgid "Rescue partition table"
-msgstr "Ńļąń˙āąķå ņąįėčöąņą ń ä˙ėīāåņå"
-
-#: ../../diskdrake/interactive.pm_.c:299
-msgid "Reload partition table"
-msgstr "Ļšåēąšåäč ņąįėčöąņą ń ä˙ėīāåņå"
-
-#: ../../diskdrake/interactive.pm_.c:304
-msgid "Removable media automounting"
-msgstr "Ąāņīģąņč÷ķī ģīķņčšąķå ķą ńģåķ˙åģ ķīńčņåė"
-
-#: ../../diskdrake/interactive.pm_.c:313 ../../diskdrake/interactive.pm_.c:333
-msgid "Select file"
-msgstr "Čēįåšåņå ōąéė"
-
-#: ../../diskdrake/interactive.pm_.c:320
-msgid ""
-"The backup partition table has not the same size\n"
-"Still continue?"
-msgstr ""
-"Šåēåšāķąņą ņąįėčöą ķą ä˙ėīāåņå ķå å ńśń ńśłąņą ćīėåģčķą\n"
-"Äą ļšīäśėęą ėč āńå ļąź ?"
-
-#: ../../diskdrake/interactive.pm_.c:334
-msgid "Warning"
-msgstr "Ļšåäóļšåęäåķčå"
-
-#: ../../diskdrake/interactive.pm_.c:335
-msgid ""
-"Insert a floppy in drive\n"
-"All data on this floppy will be lost"
-msgstr ""
-"Ńėīęåņå äčńźåņą āśā ōėīļčņī\n"
-"Āńč÷źč äąķķč, ķąģčšąłč ńå āśšõó äčńźåņąņą, łå įśäąņ ēąćóįåķč"
-
-#: ../../diskdrake/interactive.pm_.c:346
-msgid "Trying to rescue partition table"
-msgstr "Īļčņāąģ ńå äą ńļąń˙ ņąįėčöąņą ķą ä˙ėīāåņå"
-
-#: ../../diskdrake/interactive.pm_.c:352
-msgid "Detailed information"
-msgstr "Ļīäšīįķą čķōīšģąöč˙"
-
-#: ../../diskdrake/interactive.pm_.c:364 ../../diskdrake/interactive.pm_.c:534
-#: ../../diskdrake/interactive.pm_.c:554 ../../diskdrake/removable.pm_.c:24
-#: ../../diskdrake/removable_gtk.pm_.c:15 ../../diskdrake/smbnfs_gtk.pm_.c:83
-msgid "Mount point"
-msgstr "Ģ˙ńņī ķą ģīķņčšąķå"
-
-#: ../../diskdrake/interactive.pm_.c:366 ../../diskdrake/removable.pm_.c:25
-#: ../../diskdrake/removable_gtk.pm_.c:16 ../../diskdrake/smbnfs_gtk.pm_.c:84
-msgid "Options"
-msgstr "Īļöčč"
-
-#: ../../diskdrake/interactive.pm_.c:367 ../../diskdrake/interactive.pm_.c:621
-msgid "Resize"
-msgstr "Ļšīģåķč ćīėåģčķąņą"
-
-#: ../../diskdrake/interactive.pm_.c:368 ../../diskdrake/interactive.pm_.c:674
-msgid "Move"
-msgstr "Ļšåģåńņč"
-
-#: ../../diskdrake/interactive.pm_.c:369
-msgid "Format"
-msgstr "Ōīšģąņčšąé"
-
-#: ../../diskdrake/interactive.pm_.c:370 ../../diskdrake/smbnfs_gtk.pm_.c:80
-msgid "Mount"
-msgstr "Ģīķņčšąé"
-
-#: ../../diskdrake/interactive.pm_.c:371
-msgid "Add to RAID"
-msgstr "Ļščįąāč źśģ RAID"
-
-#: ../../diskdrake/interactive.pm_.c:372
-msgid "Add to LVM"
-msgstr "Ļščįąāč źśģ LVM"
-
-#: ../../diskdrake/interactive.pm_.c:373 ../../diskdrake/smbnfs_gtk.pm_.c:79
-msgid "Unmount"
-msgstr "Äåģīķņčšąé"
-
-#: ../../diskdrake/interactive.pm_.c:375
-msgid "Remove from RAID"
-msgstr "Ļšåģąõķč īņ RAID"
-
-#: ../../diskdrake/interactive.pm_.c:376
-msgid "Remove from LVM"
-msgstr "Ļšåģąõķč īņ LVM"
-
-#: ../../diskdrake/interactive.pm_.c:377
-msgid "Modify RAID"
-msgstr "Ģīäčōčöčšąé RAID"
-
-#: ../../diskdrake/interactive.pm_.c:378
-msgid "Use for loopback"
-msgstr "Čēļīėēāąé ēą loopback"
-
-#: ../../diskdrake/interactive.pm_.c:417
-msgid "Create a new partition"
-msgstr "Ńśēäąé ķīā ä˙ė"
-
-#: ../../diskdrake/interactive.pm_.c:420
-msgid "Start sector: "
-msgstr "Ķą÷ąėåķ ńåźņīš: "
-
-#: ../../diskdrake/interactive.pm_.c:422 ../../diskdrake/interactive.pm_.c:773
-msgid "Size in MB: "
-msgstr "Ćīėåģčķą ā MB: "
-
-#: ../../diskdrake/interactive.pm_.c:423 ../../diskdrake/interactive.pm_.c:774
-msgid "Filesystem type: "
-msgstr "Āčä ōąéėīāą ńčńņåģą: "
-
-#: ../../diskdrake/interactive.pm_.c:424
-#: ../../diskdrake/interactive.pm_.c:1034
-#: ../../diskdrake/interactive.pm_.c:1108
-msgid "Mount point: "
-msgstr "Ģ˙ńņī ķą ģīķņčšąķå: "
-
-#: ../../diskdrake/interactive.pm_.c:428
-msgid "Preference: "
-msgstr "Ļšåäļī÷čņąķčå: "
-
-#: ../../diskdrake/interactive.pm_.c:472
-msgid "Remove the loopback file?"
-msgstr "Äą ļšåģąõķą ėč loopback ōąéėą ?"
-
-#: ../../diskdrake/interactive.pm_.c:497
-msgid "Change partition type"
-msgstr "Ļšīģ˙ķą ņčļą ķą ä˙ėą"
-
-#: ../../diskdrake/interactive.pm_.c:498 ../../diskdrake/removable.pm_.c:48
-msgid "Which filesystem do you want?"
-msgstr "Źī˙ ōąéėīāą ńčńņåģą čńźąņå ?"
-
-#: ../../diskdrake/interactive.pm_.c:502
-msgid "Switching from ext2 to ext3"
-msgstr "Ļšåõīä īņ ext2 źśģ ext3"
-
-#: ../../diskdrake/interactive.pm_.c:532
-#, c-format
-msgid "Where do you want to mount loopback file %s?"
-msgstr "Źśäå čńźąņå äą ģīķņčšąņå loopback-ōąéėą %s ?"
-
-#: ../../diskdrake/interactive.pm_.c:533 ../../diskdrake/interactive.pm_.c:553
-#, c-format
-msgid "Where do you want to mount device %s?"
-msgstr "Źśäå čńźąņå äą ģīķņčšąņå óńņšīéńņāī %s ?"
-
-#: ../../diskdrake/interactive.pm_.c:539
-msgid ""
-"Can't unset mount point as this partition is used for loop back.\n"
-"Remove the loopback first"
-msgstr ""
-"Ķå ģīćą äą ģąõķą ņī÷źąņą ķą ģīķņčšąķå, ņśé źąņī ä˙ėśņ ńå čēļīėēāą ēą "
-"loopback.\n"
-"Ļśšāī ģąõķåņå loopback"
-
-#: ../../diskdrake/interactive.pm_.c:577
-msgid "Computing FAT filesystem bounds"
-msgstr "Čē÷čńė˙āąģ ćšąķčöčņå ķą fat ōąéėīāąņą ńčńņåģą"
-
-#: ../../diskdrake/interactive.pm_.c:577 ../../diskdrake/interactive.pm_.c:636
-#: ../../install_interactive.pm_.c:130
-msgid "Resizing"
-msgstr "Ļšīģ˙ķą ķą ćīėåģčķąņą"
-
-#: ../../diskdrake/interactive.pm_.c:609
-msgid "This partition is not resizeable"
-msgstr "Ćīėåģčķąņą ķą ä˙ėą ķå ģīęå äą įśäå ļšīģåķåķą"
-
-#: ../../diskdrake/interactive.pm_.c:614
-msgid "All data on this partition should be backed-up"
-msgstr "Āńč÷źč äąķķč ķą ņīēč ä˙ė ņš˙įāą äą įśäąņ ąšõčāčšąķč"
-
-#: ../../diskdrake/interactive.pm_.c:616
-#, c-format
-msgid "After resizing partition %s, all data on this partition will be lost"
-msgstr ""
-"Ńėåä ļšīģ˙ķą ćīėåģčķąņą ķą ä˙ėą %s, äąķķčte āśšõó ķåćī łå įśäąņ ēąćóįåķč"
-
-#: ../../diskdrake/interactive.pm_.c:621
-msgid "Choose the new size"
-msgstr "Čēįåšåņå ķīāą ćīėåģčķą"
-
-#: ../../diskdrake/interactive.pm_.c:622
-msgid "New size in MB: "
-msgstr "Ķīāą ćīėåģčķą ā MB: "
-
-#: ../../diskdrake/interactive.pm_.c:675
-msgid "Which disk do you want to move it to?"
-msgstr "Ķą źīé äčńź čńźąņå äą ćī ļšåģåńņčņå ?"
-
-#: ../../diskdrake/interactive.pm_.c:676
-msgid "Sector"
-msgstr "Ńåźņīš"
-
-#: ../../diskdrake/interactive.pm_.c:677
-msgid "Which sector do you want to move it to?"
-msgstr "Ķą źīé ńåźņīš čńźąņå äą ćī ļšåģåńņčņå?"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving"
-msgstr "Ģåńņåķå"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving partition..."
-msgstr "Ģåńņā˙ ä˙ėą ... "
-
-#: ../../diskdrake/interactive.pm_.c:697
-msgid "Choose an existing RAID to add to"
-msgstr "Čēįåšåņå ńśłåńņāóāął RAID ēą ļščįąā˙ķå"
-
-#: ../../diskdrake/interactive.pm_.c:698 ../../diskdrake/interactive.pm_.c:716
-msgid "new"
-msgstr "ķīā"
-
-#: ../../diskdrake/interactive.pm_.c:714
-msgid "Choose an existing LVM to add to"
-msgstr "Čēįåšåņå ńśłåńņāóāął LVM ēą ļščįąā˙ķå"
-
-#: ../../diskdrake/interactive.pm_.c:719
-msgid "LVM name?"
-msgstr "LVM čģå ?"
-
-#: ../../diskdrake/interactive.pm_.c:759
-msgid "This partition can't be used for loopback"
-msgstr "Ņīēč ä˙ė ķå ģīęå äą įśäå čēļīėēāąķ ēą loopback"
-
-#: ../../diskdrake/interactive.pm_.c:771
-msgid "Loopback"
-msgstr "Loopback"
-
-#: ../../diskdrake/interactive.pm_.c:772
-msgid "Loopback file name: "
-msgstr "Čģå ķą loopback ōąéėą: "
-
-#: ../../diskdrake/interactive.pm_.c:777
-msgid "Give a file name"
-msgstr "Äąéņå čģå ķą ōąéė"
-
-#: ../../diskdrake/interactive.pm_.c:780
-msgid "File already used by another loopback, choose another one"
-msgstr "Ōąéėśņ āå÷å ńå čēļīėēāą ņī äšóć loopback, čēįåšåņå äšóć ōąéė."
-
-#: ../../diskdrake/interactive.pm_.c:781
-msgid "File already exists. Use it?"
-msgstr "Ōąéėśņ āå÷å ńśųåńņāóāą. Äą ćī čēļīėēāąģ ėč ?"
-
-#: ../../diskdrake/interactive.pm_.c:804
-msgid "Mount options"
-msgstr "Īļöčč ēą mount:"
-
-#: ../../diskdrake/interactive.pm_.c:811
-msgid "Various"
-msgstr "Šąēėč÷ķč"
-
-#: ../../diskdrake/interactive.pm_.c:874
-msgid "device"
-msgstr "óńņšīéńņāī"
-
-#: ../../diskdrake/interactive.pm_.c:875
-msgid "level"
-msgstr "ķčāī"
-
-#: ../../diskdrake/interactive.pm_.c:876
-msgid "chunk size"
-msgstr "ćīėåģčķą ķą ļąš÷åņī"
-
-#: ../../diskdrake/interactive.pm_.c:891
-msgid "Be careful: this operation is dangerous."
-msgstr "Āķčģąķčå: ņąēč īļåšąöč˙ å īļąńķą"
-
-#: ../../diskdrake/interactive.pm_.c:906
-msgid "What type of partitioning?"
-msgstr "Źąźśā ņčļ šąēäåė˙ķå ķą ä˙ėīāå ?"
-
-#: ../../diskdrake/interactive.pm_.c:924
-msgid ""
-"Sorry I won't accept to create /boot so far onto the drive (on a cylinder > "
-"1024).\n"
-"Either you use LILO and it won't work, or you don't use LILO and you don't "
-"need /boot"
-msgstr ""
-"Ńśęąė˙āąģ, ķī ķå ģīćą äą ļščåģą äą ńśēäąģ /boot ņīėźīāą ķąāśņšå āśšõó äčńźą "
-"(āśšõó öčėčķäśš > 1024).\n"
-"Čėč čēļīėēāąņå LILO č ņī ķå šąįīņč, čėč ķå čēļīėēāąņå LILO č ķ˙ģąņå ķóęäą "
-"īņ /boot"
-
-#: ../../diskdrake/interactive.pm_.c:928
-msgid ""
-"The partition you've selected to add as root (/) is physically located "
-"beyond\n"
-"the 1024th cylinder of the hard drive, and you have no /boot partition.\n"
-"If you plan to use the LILO boot manager, be careful to add a /boot partition"
-msgstr ""
-"Ä˙ėśņ, źīéņī ńņå ģąšźčšąėč ēą root (/) å ōčēč÷åńźč šąēļīėīęåķ īņāśä\n"
-"1024-č˙ öčėčķäśš ķą ņāśšäč˙ äčńź č ķ˙ģąņå /boot ä˙ė.\n"
-"Ąźī ńģ˙ņąņå äą čēļīėēāąņå boot ģåķčäęśšą LILO, įśäåņå āķčģąņåėķč ļšč\n"
-"ļščįąā˙ķåņī ķą /boot ä˙ė"
-
-#: ../../diskdrake/interactive.pm_.c:934
-msgid ""
-"You've selected a software RAID partition as root (/).\n"
-"No bootloader is able to handle this without a /boot partition.\n"
-"So be careful to add a /boot partition"
-msgstr ""
-"Ģąšźčšąėč ńņå ńīōņóåšåķ RAID ä˙ė źąņī root (/).\n"
-"Ķ˙ģą ēąšåęäąłą ļšīćšąģą, źī˙ņī äą ģīęå äą ńå ńļšąāč ń ķåćī įåē /boot ä˙ė.\n"
-"Ņąźą ÷å äīįąāåņå /boot ä˙ė"
-
-#: ../../diskdrake/interactive.pm_.c:954
-#, c-format
-msgid "Partition table of drive %s is going to be written to disk!"
-msgstr "Ņąįėčöąņą ķą ä˙ėīāåņå ķą óńņšīéńņāī %s łå įśäå ēąļčńąķą āśšõó äčńźą !"
-
-#: ../../diskdrake/interactive.pm_.c:958
-msgid "You'll need to reboot before the modification can take place"
-msgstr "Ņš˙įāą äą šåńņąšņčšąņå, ļšåäč ļšīģåķčņå äą āė˙ēąņ ā ńčėą"
-
-#: ../../diskdrake/interactive.pm_.c:969
-#, c-format
-msgid "After formatting partition %s, all data on this partition will be lost"
-msgstr "Ńėåä ōīšģąņčšąķå ķą ä˙ėą %s, āńč÷źč äąķķč āśšõó ķåćī łå įśäąņ ēąćóįåķč"
-
-#: ../../diskdrake/interactive.pm_.c:971
-msgid "Formatting"
-msgstr "Ōīšģąņčšąķå"
-
-#: ../../diskdrake/interactive.pm_.c:972
-#, c-format
-msgid "Formatting loopback file %s"
-msgstr "Ōīšģąņčšąķå ķą loopback ōąéėą %s"
-
-#: ../../diskdrake/interactive.pm_.c:973
-#: ../../install_steps_interactive.pm_.c:465
-#, c-format
-msgid "Formatting partition %s"
-msgstr "Ōīšģąņčšąķå ķą ä˙ėą %s"
-
-#: ../../diskdrake/interactive.pm_.c:984
-msgid "Hide files"
-msgstr "Ńźščé ōąéėīāåņå"
-
-#: ../../diskdrake/interactive.pm_.c:984
-msgid "Move files to the new partition"
-msgstr "Ļšåģåńņč ōąéėīāåņå ķą ķīā ä˙ė"
-
-#: ../../diskdrake/interactive.pm_.c:985
-#, c-format
-msgid ""
-"Directory %s already contain some data\n"
-"(%s)"
-msgstr ""
-"Äčšåźņīšč˙ņą %s āå÷å ńśäśšęą ķ˙źąźāč äąķķč\n"
-"(%s)"
-
-#: ../../diskdrake/interactive.pm_.c:996
-msgid "Moving files to the new partition"
-msgstr "Ļšåģåńņč ōąéėīāåņå ķą ķīā ä˙ė"
-
-#: ../../diskdrake/interactive.pm_.c:1000
-#, c-format
-msgid "Copying %s"
-msgstr "Źīļčšąķå ķą %s"
-
-#: ../../diskdrake/interactive.pm_.c:1004
-#, c-format
-msgid "Removing %s"
-msgstr "Čēņščāąķå ķą %s"
-
-#: ../../diskdrake/interactive.pm_.c:1014
-#, c-format
-msgid "partition %s is now known as %s"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1035
-#: ../../diskdrake/interactive.pm_.c:1094
-msgid "Device: "
-msgstr "Óńņšīéńņāī: "
-
-#: ../../diskdrake/interactive.pm_.c:1036
-#, c-format
-msgid "DOS drive letter: %s (just a guess)\n"
-msgstr "Įóźāą ķą óńņšīéńņāīņī ļīä DOS: %s (ļšīńņī ļšåäļīėīęåķčå)\n"
-
-#: ../../diskdrake/interactive.pm_.c:1040
-#: ../../diskdrake/interactive.pm_.c:1048
-#: ../../diskdrake/interactive.pm_.c:1112
-msgid "Type: "
-msgstr "Āčä: "
-
-#: ../../diskdrake/interactive.pm_.c:1044
-msgid "Name: "
-msgstr "Čģå: "
-
-#: ../../diskdrake/interactive.pm_.c:1052
-#, c-format
-msgid "Start: sector %s\n"
-msgstr "Ķą÷ąėī: ńåźņīš %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1053
-#, c-format
-msgid "Size: %s"
-msgstr "Šąēģåš: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1055
-#, c-format
-msgid ", %s sectors"
-msgstr ", %s ńåźņīšą"
-
-#: ../../diskdrake/interactive.pm_.c:1057
-#, fuzzy, c-format
-msgid "Cylinder %d to %d\n"
-msgstr "Īņ öčėčķäśš %d äī öčėčķäśš %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1058
-msgid "Formatted\n"
-msgstr "Ōīšģąņčšąķ\n"
-
-#: ../../diskdrake/interactive.pm_.c:1059
-msgid "Not formatted\n"
-msgstr "Ķåōīšģąņčšąķ\n"
-
-#: ../../diskdrake/interactive.pm_.c:1060
-msgid "Mounted\n"
-msgstr "Ģīķņčšąķ\n"
-
-#: ../../diskdrake/interactive.pm_.c:1061
-#, c-format
-msgid "RAID md%s\n"
-msgstr "RAID md%s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1063
-#, c-format
-msgid ""
-"Loopback file(s):\n"
-" %s\n"
-msgstr ""
-"Loopback ōąéė(īāå):\n"
-" %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1064
-msgid ""
-"Partition booted by default\n"
-" (for MS-DOS boot, not for lilo)\n"
-msgstr ""
-"Ä˙ė, źīéņī ńå ńņąšņčšą ļī ļīäšąēįčšąķå\n"
-" (ēą MS-DOS boot, ķå ēą lilo)\n"
-
-#: ../../diskdrake/interactive.pm_.c:1066
-#, c-format
-msgid "Level %s\n"
-msgstr "Ķčāī %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1067
-#, c-format
-msgid "Chunk size %s\n"
-msgstr "Šąēģåš ķą ļąš÷åņī %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1068
-#, c-format
-msgid "RAID-disks %s\n"
-msgstr "RAID-äčńźīāå %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1070
-#, c-format
-msgid "Loopback file name: %s"
-msgstr "Čģå ķą loopback ōąéėą: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1073
-msgid ""
-"\n"
-"Chances are, this partition is\n"
-"a Driver partition, you should\n"
-"probably leave it alone.\n"
-msgstr ""
-"\n"
-"Āåšī˙ņķī å ņīēč ä˙ė äą å\n"
-"Äšąéāåš-ä˙ė, ģīęå įč ņš˙įāą\n"
-"ņš˙įāą äą ćī īńņąāčņå.\n"
-
-#: ../../diskdrake/interactive.pm_.c:1076
-msgid ""
-"\n"
-"This special Bootstrap\n"
-"partition is for\n"
-"dual-booting your system.\n"
-msgstr ""
-"\n"
-"Ņąēč ńļåöčąėķą ńņąšņčšąłą\n"
-"čāčöą ķą ä˙ėą å ēą äāīéķī\n"
-"ńņąšņčšąķå ķą ńčńņåģąņą āč.\n"
-
-#: ../../diskdrake/interactive.pm_.c:1095
-#, c-format
-msgid "Size: %s\n"
-msgstr "Šąēģåš: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1096
-#, c-format
-msgid "Geometry: %s cylinders, %s heads, %s sectors\n"
-msgstr "Ćåīģåņšč˙: %s öčėčķäšč, %s ćėąāč, %s ńåźņīšč\n"
-
-#: ../../diskdrake/interactive.pm_.c:1097
-msgid "Info: "
-msgstr "Čķōīšģąöč˙: "
-
-#: ../../diskdrake/interactive.pm_.c:1098
-#, c-format
-msgid "LVM-disks %s\n"
-msgstr "LVM-äčńźīāå %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1099
-#, c-format
-msgid "Partition table type: %s\n"
-msgstr "Ņčļ ķą ņąįėčöąņą ń ä˙ėīāå: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1100
-#, c-format
-msgid "on bus %d id %d\n"
-msgstr "ķą ųčķą %d ąäšåń %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1114
-#, c-format
-msgid "Options: %s"
-msgstr "Īļöčč: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1130
-#, fuzzy
-msgid "Filesystem encryption key"
-msgstr "Āčä ōąéėīāą ńčńņåģą: "
-
-#: ../../diskdrake/interactive.pm_.c:1131
-msgid "Choose your filesystem encryption key"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1134
-#, fuzzy, c-format
-msgid "This encryption key is too simple (must be at least %d characters long)"
-msgstr "Ļąšīėąņą å ļšåźąėåķī ļšīńņą (ņš˙įāą äą įśäå äśėćą ļīķå %d ńčģāīėą)"
-
-#: ../../diskdrake/interactive.pm_.c:1135
-#, fuzzy
-msgid "The encryption keys do not match"
-msgstr "Ļąšīėčņå ķą ńśāļąäąņ"
-
-#: ../../diskdrake/interactive.pm_.c:1138
-msgid "Encryption key"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1139
-msgid "Encryption key (again)"
-msgstr ""
-
-#: ../../diskdrake/removable.pm_.c:47
-msgid "Change type"
-msgstr "Ļšīģ˙ķč ņčļą"
-
-#: ../../diskdrake/removable_gtk.pm_.c:28
-msgid "Please click on a media"
-msgstr "Ģīė˙, öśźķåņå ķą ķīńčņåė˙"
-
-#: ../../diskdrake/smbnfs_gtk.pm_.c:165
-#, fuzzy
-msgid "Search servers"
-msgstr "DNS ńśšāśš"
-
-#: ../../fs.pm_.c:485 ../../fs.pm_.c:495 ../../fs.pm_.c:499 ../../fs.pm_.c:503
-#: ../../fs.pm_.c:507 ../../fs.pm_.c:511
-#, c-format
-msgid "%s formatting of %s failed"
-msgstr "%s ōīšģąņčšąķå īņ %s ļšīāąėåķī"
-
-#: ../../fs.pm_.c:548
-#, c-format
-msgid "I don't know how to format %s in type %s"
-msgstr "ķå ēķąģ źąź äą ōīšģąņčšąģ %s ā ņčļ %s"
-
-#: ../../fs.pm_.c:620 ../../fs.pm_.c:649 ../../fs.pm_.c:655
-#, c-format
-msgid "mounting partition %s in directory %s failed"
-msgstr ""
-
-#: ../../fs.pm_.c:640
-#, c-format
-msgid "fsck failed with exit code %d or signal %d"
-msgstr "fsck čēėåēå ń čēõīäåķ źīä %d čėč ńčćķąė %d"
-
-#: ../../fs.pm_.c:670 ../../partition_table.pm_.c:596
-#, c-format
-msgid "error unmounting %s: %s"
-msgstr "ćšåųźą ļšč äåģīķņčšąķåņī ķą %s: %s"
-
-#: ../../fsedit.pm_.c:21
-msgid "simple"
-msgstr "ļšīńņ"
-
-#: ../../fsedit.pm_.c:25
-msgid "with /usr"
-msgstr ""
-
-#: ../../fsedit.pm_.c:30
-msgid "server"
-msgstr "ńśšāśš"
-
-#: ../../fsedit.pm_.c:467
-msgid "You can't use JFS for partitions smaller than 16MB"
-msgstr "Ķå ģīęåņå äą čēļīėēāąņå JFS ēą ä˙ė ļī-ģąėśź īņ 16 ĢĮ"
-
-#: ../../fsedit.pm_.c:468
-msgid "You can't use ReiserFS for partitions smaller than 32MB"
-msgstr "Ķå ģīęåņå äą čķńņąėčšąķå ReiserFS ķą ä˙ė ļī-ģąėśź īņ 32 ĢĮ"
-
-#: ../../fsedit.pm_.c:477
-msgid "Mount points must begin with a leading /"
-msgstr "Ņī÷źčņå ķą ģīķņčšąķå ņš˙įāą äą ēąļī÷āąņ ń /"
-
-#: ../../fsedit.pm_.c:478
-#, c-format
-msgid "There is already a partition with mount point %s\n"
-msgstr "Āå÷å čģą ä˙ė ń ņąēč ģ˙ńņī ķą ģīķņčšąķå %s\n"
-
-#: ../../fsedit.pm_.c:482
-#, c-format
-msgid "You can't use a LVM Logical Volume for mount point %s"
-msgstr "Ķå ģīęåņå äą čēļīėēāąņå LVM ėīćč÷åńźč ņčļ ēą ģ˙ńņī ķą ģīķņčšąķå %s"
-
-#: ../../fsedit.pm_.c:484
-msgid "This directory should remain within the root filesystem"
-msgstr "Ņąēč äčšåźņīšč˙ ņš˙įāą äą īńņąķå ā šąģźčņå ķą root ōąéėīāąņą ńčńņåģą."
-
-#: ../../fsedit.pm_.c:486
-msgid "You need a true filesystem (ext2, reiserfs) for this mount point\n"
-msgstr ""
-"Ķóęäąåņå ńå īņ čńņčķńźą ōąéėīāą ńčńņåģą (ext2, reiserfs) ēą ņąēč ņī÷źą ķą "
-"ģīķņčšąķå\n"
-
-#: ../../fsedit.pm_.c:488
-#, fuzzy, c-format
-msgid "You can't use an encrypted file system for mount point %s"
-msgstr "Ķå ģīęåņå äą čēļīėēāąņå LVM ėīćč÷åńźč ņčļ ēą ģ˙ńņī ķą ģīķņčšąķå %s"
-
-#: ../../fsedit.pm_.c:546
-#, fuzzy
-msgid "Not enough free space for auto-allocating"
-msgstr "Ķ˙ģą äīńņąņś÷ķī ģ˙ńņī ēą ąāņīģąņč÷ķī ēąåģąķå"
-
-#: ../../fsedit.pm_.c:548
-msgid "Nothing to do"
-msgstr ""
-
-#: ../../fsedit.pm_.c:612
-#, c-format
-msgid "Error opening %s for writing: %s"
-msgstr "Ćšåųźą ļšč īņāąš˙ķå ķą %s ēą ēąļčń: %s"
-
-#: ../../fsedit.pm_.c:697
-msgid ""
-"An error has occurred - no valid devices were found on which to create new "
-"filesystems. Please check your hardware for the cause of this problem"
-msgstr ""
-"Ļī˙āč ńå ćšåųźą - ķå ńą īņźščņč āąėčäķč óńņšīéńņāą, āśšõó źīčņī äą įśäąņ "
-"ńśēäąäåķč ķīāč ōąéėīāč ńčńņåģč. Ģīė˙ ļšīāåšåņå ņāśšäč˙ ńč äčńź ńč ēą "
-"ļšč÷čķąņą ēą ņīēč ļšīįėåģ"
-
-#: ../../fsedit.pm_.c:720
-msgid "You don't have any partitions!"
-msgstr "Ķ˙ģąņå ķčźąźāč ä˙ėīāå!"
-
-#: ../../help.pm_.c:13
-msgid ""
-"GNU/Linux is a multiuser system, and this means that each user can have his\n"
-"own preferences, his own files and so on. You can read the ``User Guide''\n"
-"to learn more. But unlike \"root\", which is the administrator, the users\n"
-"you will add here will not be entitled to change anything except their own\n"
-"files and their own configuration. You will have to create at least one\n"
-"regular user for yourself. That account is where you should log in for\n"
-"routine use. Although it is very practical to log in as \"root\" everyday,\n"
-"it may also be very dangerous! The slightest mistake could mean that your\n"
-"system would not work any more. If you make a serious mistake as a regular\n"
-"user, you may only lose some information, but not the entire system.\n"
-"\n"
-"First, you have to enter your real name. This is not mandatory, of course\n"
-"as you can actually enter whatever you want. DrakX will then take the first\n"
-"word you have entered in the box and will bring it over to the \"User\n"
-"name\". This is the name this particular user will use to log onto the\n"
-"system. You can change it. You then have to enter a password here. A\n"
-"non-privileged (regular) user's password is not as crucial as \"root\"' one\n"
-"from a security point of view, but that is no reason to neglect it: after\n"
-"all, your files are at risk.\n"
-"\n"
-"If you click on \"Accept user\", you can then add as many as you want. Add\n"
-"a user for each one of your friends: your father or your sister, for\n"
-"example. When you finish adding all the users you want, select \"Done\".\n"
-"\n"
-"Clicking the \"Advanced\" button allows you to change the default \"shell\"\n"
-"for that user (bash by default)."
-msgstr ""
-"GNU/Linux å ģķīćīļīņšåįčņåėńźą ńčńņåģą, źī˙ņī īēķą÷ąāą, ÷å āńåźč ļīņšåįčņåė "
-"ģīęå\n"
-"äą čģą ńāīč ļšåäļī÷åņąķč˙, ōąéėīāå č ņ.ķ.. ģīęåņå äą ļšī÷åņåņå Šśźīāīńņāīņī "
-"ķą\n"
-"Ļīņšåįčņåė˙, ēą äą ķąó÷čņå ļīāå÷å.\n"
-"Ēą šąēėčźą īņ Root, źīéņī å ąäģčķčńņšąņīšśņ, ļīņšåįčņåėčņå, źīčņī łå "
-"äīįąāčņå ņóź\n"
-"ķ˙ģą äą ģīćąņ äą ļšīģåķ˙ņ ķčłī īńāåķ ńīįńņāåķčņå ńč ōąéėīāå č ņåõķčņå "
-"ķąńņšīéźč.\n"
-"Łå ņš˙įāą äą ńśēäąäåņå ļīķå åäčķ īįčźķīāåķ ļīņšåįčņåė ēą ńåįå ńč.\n"
-"Ń ņīēč ąźąóķņ łå ņš˙įāą äą āėčēąņå ēą šóņčķķą äåéķīńņ. Āśļšåźč ņīāą "
-"ļšąźņčźąņą\n"
-"äą āėčēąņå źąņī root åęåäķåāķī, ģīęå äą įśäå ģķīćī īļąńķą ! Č ķąé-"
-"ģąėźąņąćšåųźą\n"
-"ģīęå äą īēķą÷ąāą, ÷å ńčńņåģąņą āč ķ˙ģą äą šąįīņč ļīāå÷å. Ąźī ķąļšąāčņå ķ˙źī˙ "
-"ńåščīēķą\n"
-"ćšåųźą źąņī ļīņšåįčņåė, ņīāą ģīęå ńą äą äīāåäå äī ēąćóįą ķą ÷ąńņ īņ "
-"čķōīšģąöč˙ņą,\n"
-"ķī ķå č ķą ö˙ėąņą ńčńņåģą.\n"
-"\n"
-"Ļśšāī, ņš˙įāą äą ńč āśāåäåņå čģåņī. Ņīāą ķå å ēąäśėęčņåėķī, šąēįčšą ńå, "
-"āńśłķīńņ\n"
-"ģīęåņå äą āśāåäåņå źąźāīņī č äą å. DrakX ńėåä ņīāą łå čēįåšå ļśšāąņą "
-"āśāåäåķą\n"
-"ā źóņčéźąņą äóģą č łå ćī čēźąšą źąņī ļīņšåįčņåėńźī čģå. Ņīāą å čģåņī, ń "
-"źīåņī\n"
-"āńśłķīńņ īļšåäåėåķč˙ņ ļīņšåįčņåė łå āėčēą ā ńčńņåģąņą. Ģīęåņå äą ćī "
-"ļšīģåķčņå.\n"
-"Ņš˙įāą äą āśāåäåņå č ļąšīėą ņóź. Ļąšīėąņą ķą ķåļšåāčėåćčšīāąķ (īįčźķīāåķ) "
-"ļīņšåįčņåė\n"
-"ķå å ņīėźīāą ōąņąėķą źąņī ņąēč ķą Root īņ ćėåäķą ņī÷źą ķą ńčćóšķīńņņą, ķī "
-"āńå\n"
-"ļąź ķ˙ģą ļšč÷čķą äą ˙ ļīäöåķ˙āąņą, ņśé źąņī ščńźóāąņå ōąéėīāåņå ńč.\n"
-"\n"
-"Ńėåä źąņī öśźķåņå ķą \"Ļščåģč ļīņšåįčņåė\", ģīęåņå äą äīįąāčņå źīėźīņī ńč "
-"čńźąņå.\n"
-"Äīįąāåņå ļī åäčķ ļīņšåįčņåė ēą āńåźč īņ ļšč˙ņåėčņå ńč: įąłą ńč, ńåńņšą ńč, "
-"ķąļščģåš.\n"
-"Źīćąņī ńņå äīįąāčėč āńč÷źč ļīņšåįčņåėč, źīčņī čńźąņå, öśźķåņå Ćīņīāī.\n"
-"\n"
-"Öśźķåņå ķą įóņīķą \"Ķąļšåäķč÷ąā\", ēą äą ļšīģåķčņå īįāčāźąņą ļī ļīäšąēįčšąķå "
-"ķą\n"
-"ļīņšåįčņåė˙ (bash ļī ļīäšąēįčšąķå)."
-
-#: ../../help.pm_.c:41
-msgid ""
-"Listed above are the existing Linux partitions detected on your hard 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"
-"able to install enough software. If you want to store your data on a\n"
-"separate partition, you will also need to create a partition for \"/home\"\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 drive type\", \"hard 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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
-"\"second lowest SCSI ID\", etc."
-msgstr ""
-"Ļī-ćīšå ńą čēįšīåķč ēąńå÷åķčņå Linux ä˙ėīāå ńśłåńņāóāąłč\n"
-"ķą ņāśšäč˙ āč äčńź. Ģīęåņå äą ēąļąēčņå čēįīšą ķąļšąāåķ īņ ģąćüīńķčźą, ņå ńą\n"
-"äīįšč ēą īįłą óļīņšåįą. Ąźī ćč ļšīģåķčņå, ņš˙įāą äą ļīķå äą īļšåäåėčņå\n"
-"root ä˙ė (\"/\"). Ķå čēįčšąéņå ļšåźąėåķī ģąėźč ä˙ėīāå, ēąłīņī ķ˙ģą äą "
-"ģīęåņå\n"
-"äą čķńņąėčšąņå äīńņąņś÷ķī ńīōņóåš. Ąźī čńźąņå äą ńśõšąķ˙āąņå äąķķčņå ńč ķą\n"
-"īņäåėåķ ä˙ė, ņš˙įāą äą čēįåšåņå \"/home\" (āśēģīęķī å ńąģī, ąźī čģąņå "
-"ļīāå÷å\n"
-"īņ åäčķ Linux ä˙ė).\n"
-"\n"
-"\n"
-"Ēą čķōīšģąöč˙, āńåźč ä˙ė å ļīźąēąķ, źąźņī ńėåäāą: \"Čģå\", \"Źąļąöčņåņ\".\n"
-"\n"
-"\n"
-"\"Čģåņī\" ńå źīäčšą źąźņī ńėåäāą: \"ņčļ ķą äčńźą\", \"ķīģåš ķą äčńźą\",\n"
-"\"ķīģåš ķą ä˙ė\" (ķąļščģåš, \"hda1\").\n"
-"\n"
-"\n"
-"\"Ņčļśņ ķą äčńźą\" ģīęå äą å \"hd\", ąźī å IDE ņāśšä äčńź, čėč \"sd\", ąźī "
-"å\n"
-"SCSI ņāśšä äčńź.\n"
-"\n"
-"\n"
-"\"Ķīģåšśņ ķą äčńźą\" āčķąćč å įóźāąņą ńėåä \"hd\" čėč \"sd\". Ļšč IDE "
-"äčńźīāå:\n"
-"\n"
-" * \"a\" īēķą÷ąāą \"master äčńź ķą ļśšāč˙ IDE źīķņšīėåš\",\n"
-" * \"b\" īēķą÷ąāą \"slave äčńź ķą ļśšāč˙ IDE źīķņšīėåš\",\n"
-" * \"c\" īēķą÷ąāą \"master äčńź ķą āņīšč˙ IDE źīķņšīėåš\",\n"
-" * \"d\" īēķą÷ąāą \"slave äčńź ķą āņīšč˙ IDE źīķņšīėåš\".\n"
-"\n"
-"\n"
-"Ļšč SCSI óńņšīéńņāą, \"a\" īēķą÷ąāą \"ļśšāč ņāśšä äčńź\", \"b\" īēķą÷ąāą "
-"\"āņīšč ņāśšä äčńź\" č ņ.ķ.."
-
-#: ../../help.pm_.c:72
-msgid ""
-"The Mandrake Linux 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."
-msgstr ""
-"Čķńņąėąöč˙ņą ķą Mandrake Linux å šąēļīėīęåķą ķą ķ˙źīėźī CDROM-ą. DrakX\n"
-"ēķąå äąėč čēįšąķ ļąźåņ ķå ńå ķąģčšą ķą äšóć CDROM čėč łå čēāąäč ņåźółīņī\n"
-"CD č łå āč īńņąāč äą āźąšąņå ņīāą, īņ źīåņī čģą ķóęäą."
-
-#: ../../help.pm_.c:77
-#, fuzzy
-msgid ""
-"It is now time to specify which programs you wish to install on your\n"
-"system. There are thousands of packages available for Mandrake Linux, 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"
-"be asked to specify the CDs you currently have (in Expert mode only). Check\n"
-"the CD labels and highlight the boxes corresponding to the CDs you have\n"
-"available for installation. Click \"OK\" when you are ready to continue.\n"
-"\n"
-"Packages are sorted in groups corresponding to a particular use of your\n"
-"machine. The groups themselves are sorted into four sections:\n"
-"\n"
-" * \"Workstation\": if you plan to use your machine as a workstation, "
-"select\n"
-"one or more of the corresponding groups;\n"
-"\n"
-" * \"Development\": if your machine is to be used for programming, choose\n"
-"the desired group(s);\n"
-"\n"
-" * \"Server\": if your machine is intended to be a server, you will be able\n"
-"to select which of the most common services you wish to install on your\n"
-"machine;\n"
-"\n"
-" * \"Graphical Environment\": finally, this is where you will choose your\n"
-"preferred graphical environment. At least one must be selected if you want\n"
-"to have a graphical workstation!\n"
-"\n"
-"Moving the mouse cursor over a group name will display a short explanatory\n"
-"text about that group. If you deselect all groups when performing a regular\n"
-"installation (by opposition to an upgrade), a dialog will pop up proposing\n"
-"different options for a minimal installation:\n"
-"\n"
-" * \"With X\": install the fewer packages possible to have a working\n"
-"graphical desktop;\n"
-"\n"
-" * \"With basic documentation\": installs the base system plus basic\n"
-"utilities and their documentation. This installation is suitable for\n"
-"setting up a server;\n"
-"\n"
-" * \"Truly minimal install\": will install the strict minimum necessary to\n"
-"get a working Linux system, in command line only. This installation is\n"
-"about 65Mb large.\n"
-"\n"
-"You can check the \"Individual package selection\" box, which is useful if\n"
-"you are familiar with the packages being offered or if you want to have\n"
-"total control over what will be installed.\n"
-"\n"
-"If you started the installation in \"Upgrade\" mode, you can unselect all\n"
-"groups to avoid installing any new package. This is useful for repairing or\n"
-"updating an existing system."
-msgstr ""
-"Ńåćą å ģīģåķņśņ äą īļšåäåėčņå źīč ļšīćšąģč čńźąņå äą įśäąņ čķńņąėčšąķč ķą\n"
-"ńčńņåģąņą āč. Ā Mandrake Linux äčńņščįóöč˙ņą čģą õčė˙äč ļąźåņč, ķī ķå å\n"
-"ēąäśėęčņåėķī äą ćč ēķąåņå ķąčēóńņ.\n"
-"\n"
-"Ąźī čēāśšųāąņå ńņąķäąšņķą čķńņėąöč˙ īņ CDROM, ļśšāī łå įśäåņå ļīļčņąķč źīč\n"
-"CD-ņą čģąņå (ā Åźńļåšņåķ šåęčģ). Ļšīāåšåņå ēąćėąāč˙ņą ķą CD-ņąņą č ļīńī÷åņå\n"
-"źóņčéźčņå ńśīņāåņńņāąłč ķą CD-ņąņą, ń źīčņī šąēļīėąćąņå. Öśźķåņå \"OK\",\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"
-"ļšč ļīļšąāźą čėč īįķīā˙āąķå ķą ńśłåńņāóāąłąņą ńčńņåģą."
-
-#: ../../help.pm_.c:128
-msgid ""
-"Finally, depending on whether or not you selected individual packages, you\n"
-"will be presented a tree containing all packages classified by groups and\n"
-"subgroups. While browsing the tree, you can select entire groups,\n"
-"subgroups, or individual packages.\n"
-"\n"
-"Whenever you select a package on the tree, a description appears on the\n"
-"right. When your selection is finished, click the \"Install\" button which\n"
-"will then launch the installation process. Depending on the speed of your\n"
-"hardware and the number of packages that need to be installed, it may take\n"
-"a while to complete the process. An estimate of the time it will take to\n"
-"install everything is displayed on the screen, to help you gauge if there\n"
-"is sufficient time to enjoy a cup of coffee.\n"
-"\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 Mandrake Linux, 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 Mandrake Linux 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"
-"default. !!\n"
-"\n"
-"The \"Automatic dependencies\" option simply disables the warning dialog\n"
-"which appears whenever the installer automatically selects a package. This\n"
-"occurs because it has determined that it needs to satisfy a dependency with\n"
-"another package in order to successfully complete the installation.\n"
-"\n"
-"The tiny floppy disk icon at the bottom of the list allows to load the\n"
-"package list chosen during a previous installation. Clicking on this icon\n"
-"will ask you to insert a floppy disk previously created at the end of\n"
-"another installation. See the second tip of last step on how to create such\n"
-"a floppy."
-msgstr ""
-"Ķąźšą˙, ā ēąāčńčģīńņ īņ čēįīšą āč äąėč äą čēįčšąņå ļąźåņč åäčķ ļī åäčķ, łå\n"
-"āč įśäå ļšåäńņąāåķī äśšāī ńśäśšęąłī āńč÷źč ļąźåņč ļīäšåäåķč ļī ćšóļč č\n"
-"ļīäšćšóļč. Äīźąņī īįõīęäąņå äśšāīņī, ģīęåņå äą čēįåšåņå öåėč ćšóļč, "
-"ļīäćšóļč\n"
-"čėč īņäåėķč ļąźåņč.\n"
-"\n"
-"Źīćąņī ļīńī÷čņå ļąźåņ īņ äśšāīņī, łå ńå ļī˙āč īļčńąķčå āä˙ńķī. Źīćąņī\n"
-"čēįīšśņ å ļščźėž÷åķ, öśźķåņå įóņīķą \"Čķńņąėčšąé\", źīéņī łå ļóńķå ļšīöåńą\n"
-"ķą čķńņąėąöč˙. Ā ēąāčńčģīńņ īņ ńźīšīńņņą ķą õąšäóåšą āč č įšī˙ ķą ļąźåņčņå,\n"
-"źīčņī čńźąņå äą įśäąņ čķńņąėčšąķč, ļšīöåńśņ ģīęå äą īņķåģå čēāåńņķī āšåģå.\n"
-"Ī÷ąźāąķīņī āšåģå ēą ļščźėž÷āąķå ķą ļšīöåńą, ÷å įśäå ļīźąēąķī ķą åźšąņą, ēą\n"
-"äą āč ļīģīćķå äą ļšåöåķčņå äąėč čģąņå äīńņąņś÷ķī āšåģå äą ńå ķąńėąäčņå ķą\n"
-"÷ąųą źąōå.\n"
-"\n"
-"!! Ąźī å čēįšąķ ńśšāśšåķ ļąźåņ, įčėī ņī óģčųėåķī čėč ēąłīņī å ÷ąńņ īņ ö˙ėą\n"
-"ćšóļą, łå įśäåņå ļīģīėåķč ēą ļīņāśšęäåķčå, ÷å ķąčńņčķą čńźąņå ņīēč ńśšāśš\n"
-"äą įśäå čķńņąėčšąķ. Ā Mandrake Linux, āńč÷źč ńśšāśšč ņšśćāąņ ļī "
-"ļīäšąēįčšąķå\n"
-"ļšč ēąšåęäąķå.Äąęå ąźī ńą ńčćóšķč č ķ˙ģąņ čēāåńņķč ļšīįėåģč, źīćąņī\n"
-"äčńņščįóöč˙ņą ńå šąēļšīńņšąķ˙āą, ģīęå äą ńå ńėó÷č ņąźą, ÷å äą ńå ļī˙ā˙ņ\n"
-"äóļźč ā ńčćóšķīńņņą, ńėåä źąņī āåšńč˙ņą ķą Mandrake Linux å ēąāśšųåķą. Ąźī\n"
-"ķå ēķąåņå ēą źąźāī ńėóęč īļšåäåėåķą óńėóćą čėč ēąłī å čķńņąėčšąķą, öśźķåņå\n"
-"\"Ķå\". Ń öśźąķå ķą \"Äą\" łå čķńņąėčšąņå čēįšīåķč óńėóćč č ņå łå įśäąņ\n"
-"ńņąšņčšąķč ąāņīģąņč÷ķī ļī ļīäšąēįčšąķå. !!\n"
-"\n"
-"Īļöč˙ņą \"Ąāņīģąņč÷ķč ēąāčńčģīńņč\" čēźėž÷āą ļšåäóļšåäčņåėķčņå äčąėīēč,\n"
-"źīćąņī čķńņąėąņīšśņ ąāīģąņč÷ķī šåųč čēįåšå ļąźåņ. Ņīāą ńå ńėó÷āą, ēąłīņī\n"
-"å šåųčė, ÷å ńå ķóęäąå äą ēąäīāīėč ēąāčńčģīńņ ń äšóć ļąźåņ, ēą äą ļščźėž÷č\n"
-"óńļåųķī čķńņąėąöč˙ņą.\n"
-"\n"
-"Ģąėźąņą čźīķźą ķą äčńźåņźą ā äśķīņī ķą ńļčńśźą ļīēāīė˙āą äą ēąšåäčņå ńļčńśź\n"
-"ń ļąźåņč īņ ļšåäčųķą čķńņąėąöč˙. Ąźī öśźķåņå ķą ņąēč čźīķźą, łå įśäåņå\n"
-"ļīģīėåķč äą āźąšąņå äčńźåņą ńśēäąäåķą ļšåäč ņīāą ā źšą˙ ķą äšóćą "
-"čķńņąėąöč˙.\n"
-"Āčęņå āņīšąņą ļīäńźąēźą ļī āšåģå ķą ļīńėåäķąņą ńņśļźą, ēą ņīāą źąź äą\n"
-"ńśēäąäåņå ņąźąāą äčńźåņą."
-
-#: ../../help.pm_.c:164
-#, fuzzy
-msgid ""
-"You are now proposed to set up your Internet/network connection. If you\n"
-"wish to connect your computer to the Internet or to a local network, click\n"
-"\"OK\". The autodetection of network devices and modem will be launched. If\n"
-"this detection fails, uncheck the \"Use auto detection\" box next time. You\n"
-"may also choose not to configure the network, or do it later; in that case,\n"
-"simply click the \"Cancel\" button.\n"
-"\n"
-"Available connections are: traditional modem, ISDN modem, ADSL connection,\n"
-"cable modem, and finally a simple LAN connection (Ethernet).\n"
-"\n"
-"Here, we will not detail each configuration. Simply make sure that you have\n"
-"all the parameters from your Internet Service Provider or system\n"
-"administrator.\n"
-"\n"
-"You can consult the ``User Guide'' chapter about Internet connections for\n"
-"details about the configuration, or simply wait until your system is\n"
-"installed and use the program described there to configure your connection.\n"
-"\n"
-"If you wish to configure the network later after installation, or if you\n"
-"are finished configuring your network connection, click \"Cancel\"."
-msgstr ""
-"Ąźī čńźąņå äą ńāśšęåņå źīģļžņśšą ńč źśģ Čķņåšķåņ čėč źśģ ėīźąėķą ģšåęą, "
-"ģīė˙\n"
-"čēįåšåņå ļīäõīä˙łąņą īļöč˙. Ģīė˙, āźėž÷åņå óńņšīéńņāīņī ńč ļšåäč äą "
-"čēįåšåņå\n"
-"īļöč˙ņą, ēą äą äąäåņå āśēģīęķīńņ ķą DrakX äą ćī ēąńå÷å.\n"
-"\n"
-"Mandrake Linux čēāśšųāą ķąńņšīéźąņą ķą Čķņåšķåņ āšśēźąņą ļī āšåģå ķą\n"
-"čķńņąėąöč˙. Äīńņśļķčņå āšśēźč: īįčźķīāåķ ģīäåģ, ISDN ģīäåģ, ADSL āšśēźą,\n"
-"źąįåėåķ ģīäåģ č ķąźšą˙ īįčźķīāåķą LAN āšśēźą (Ethernet).\n"
-"\n"
-"Ņóź ķ˙ģą ļīäšīįķī äą šąēćėåęäąģå āń˙źą ķąńņšīéźą. Ļšīńņī įśäåņå ńčćóšķč, ÷å\n"
-"čģąņå äīńņąņś÷ķī äąķķč īņ Čķņåšķåņ äīńņąā÷čźą ńč čėč ńčńņåģķč˙\n"
-"ąäģčķńčņšąņīš.\n"
-"\n"
-"Ģīęåņå äą ńå źīķńóėņčšąņå ń ćėąāąņą ā šśźīāīäńņāīņī ēą Čķņåšķåņ āšśēźčņå ēą\n"
-"ļīäšīįķīńņč ēą ķąńņšīéźąņą čėč ļšīńņī čē÷ąźąéņå ńčńņåģąņą āč äą įśäå\n"
-"čķńņąėčšąķą č čēļīėēāąéņå ļšīćšąģąņą īļčńąķą ņąģ, ēą äą ķąńņšīčņå āšśēźąņą.\n"
-"\n"
-"Ąźī čńźąņå äą ķąńņšīčņå ģšåęąņą ļī-źśńķī ńėåä čķńņąėąöč˙ čėč ąźī ńņå "
-"ńāśšųčėč\n"
-"ń ķąńņšīéźąņą ķą ģšåęąņą, öśźķåņå \"Īņźąē\"."
-
-#: ../../help.pm_.c:186
-msgid ""
-"You may now choose which services you wish to start at boot time.\n"
-"\n"
-"Here are presented all the services available with the current\n"
-"installation. Review them carefully and uncheck those which are not always\n"
-"needed at boot time.\n"
-"\n"
-"You can get a short explanatory text about a service by selecting a\n"
-"specific service. However, if you are not sure whether a service is useful\n"
-"or not, 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 will probably not want to start any services which you do not\n"
-"need. Please remember that several services can be dangerous if they are\n"
-"enabled on a server. In general, select only the services you really need.\n"
-"!!"
-msgstr ""
-"Ńåćą ģīęåņå äą čēįåšåņå źīč óńėóćč äą ńå ļóńźąņ ļšč ńņąšņčšąķå.\n"
-"\n"
-"Ņóź ńą ļšåäńņąāåķč āńč÷źč óńėóćč, äīńņśļķč ń ķąńņī˙łąņą čķńņąėąöč˙.\n"
-"Ļšåćėåäąéņå ćč āķčģąņåėķī č čēźėž÷åņå ņåēč, źīčņī ķå āč ņš˙įāąņ āčķąćč ļšč "
-"ńņąšņčšąķå.\n"
-"\n"
-"Ģīęåņå āčäčņå źšąņśź īį˙ńķčņåėåķ ņåźńņ ēą óńėóćąņą, źąņī ļīńņąāčņå źóšīšą ķą "
-"ģčųźąņą ńč\n"
-"ķąä čģåņī ķą óńėóćąņą. Ąźī ķå ńņå ńčćóšķč, äąėč óńėóćąņą å ļīėåēķą čėč ķå, "
-"ļī-äīįšå\n"
-"å äą īńņąāčņå čēįīšą ļī ļīäšąēįčšąķå.\n"
-"\n"
-"Āķčģąāąéņå ń ņąēč ńņśļźą, ąźī ńģ˙ņąņå äą čēļīėēāąņå ģąųčķąņą ńč źąņī "
-"ńśšāśš:\n"
-"ńčćóšķī ķå įčõņå čńźąėč äą ļóńźąņå óńėóćč, īņ źīčņī ķå ńå ķóęäąåņå. Ģīė˙,\n"
-"ēąļīģķåņå, ÷å ķ˙źīč óńėóćč ģīćąņ äą įśäąņ īļąńķč, ąźī ńą āźėž÷åķč ķą "
-"ńśšāśšą.\n"
-"Ļī ļščķöčļ, čēįčšąéņå ńąģī óńėóćčņå, īņ źīčņī ķąčńņčķą ńå ķóęäąåņå."
-
-#: ../../help.pm_.c:203
-msgid ""
-"GNU/Linux manages time in GMT (Greenwich Mean Time) and translates it in\n"
-"local time according to the time zone you selected. It is however possible\n"
-"to deactivate this by deselecting \"Hardware clock set to GMT\" so that the\n"
-"hardware clock is the same as the system clock. This is useful when the\n"
-"machine is hosting another operating system like Windows.\n"
-"\n"
-"The \"Automatic time synchronization\" option will automatically regulate\n"
-"the clock by connecting to a remote time server on the Internet. In the\n"
-"list that is presented, choose a server located near you. Of course you\n"
-"must have a working Internet connection for this feature to work. It will\n"
-"actually install on your machine a time server which can be optionally used\n"
-"by other machines on your local network."
-msgstr ""
-
-#: ../../help.pm_.c:217
-#, fuzzy
-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 Mandrake Linux rely. In this section, DrakX\n"
-"will try to configure X automatically.\n"
-"\n"
-"It is extremely rare for it to fail, unless the hardware is very old (or\n"
-"very new). If it succeeds, it will start X automatically with the best\n"
-"resolution possible, depending on the size of the monitor. A window will\n"
-"then appear and ask you if you can see it.\n"
-"\n"
-"If you are doing an \"Expert\" installation, you will enter the X\n"
-"configuration wizard. See the corresponding section of the manual for more\n"
-"information about this wizard.\n"
-"\n"
-"If you can see the message during the test, and answer \"Yes\", then DrakX\n"
-"will proceed to the next step. If you cannot see the message, it simply\n"
-"means that the configuration was wrong and the test will automatically end\n"
-"after 10 seconds, restoring the screen."
-msgstr ""
-"X (īš X Window System) å ńśšöåņī ķą GNU/Linux ćšąōč÷ķč˙ čķņåšōåéń, ķą źīéņī\n"
-"ńå īńėąķ˙ņ ćšąōč÷ķčņå ńšåäč (KDE, Gnome, AfterStep, WindowMaker...) "
-"ńāśšēąķč\n"
-"ń Mandrake Linux. Ā ņąēč ńåźöč˙, DrakX łå ńå ąāņīģąņč÷ķī äą ķąńņšīč X.\n"
-"\n"
-"Čēźėž÷čņåėķī š˙äźī ńå ńėó÷āą äą ńå ļšīāąėč, īńāåķ ąźī õąšäóåšśņ ķå å ģķīćī\n"
-"ńņąš (čėč ļšåźąėåķī ķīā). Ąźī óńļåå, łå ńņąšņčšą X ąāņīģąņč÷ķī ń ķąé-"
-"äīįšąņą\n"
-"šąēäåėčņåėķą ńļīńīįķīńņ ā ēąāčńčģīńņ īņ ćīėåģčķąņą ķą ģīķčņīšą āč. Łå ńå\n"
-"ļī˙āč ļšīēīšåö, ēą äą āč ļīļčņą äąėč ćī āčęäąņå.\n"
-"\n"
-"Ąźī čēāśšųāąņå \"Åźńļåšņķą\" čķńņąėąöč˙, łå įśäåņå āśāåäåķč ā ģąćüīńķčźą ēą\n"
-"ķąńņšīéźą ķą X. Āčęņå ńśīņāåņķąņą ńåźöč˙ ķą šśźīāīäńņāīņī ēą ļīāå÷å\n"
-"čķōīšģąöč˙ ēą ģąćüīńķčźą.\n"
-"\n"
-"Ąźī āčäčņå ńśīįłåķčåņī, ķąņčńķåņå \"Äą\", ńėåä źīåņī DrakX łå ļšīäśėęč ńśń\n"
-"ńėåäāąłąņą ńņśļźą. Ąźī ķå āčäčņå ńśīįłåķčåņī, ņīāą īēķą÷ąāą, ÷å ķąńņšīéźąņą\n"
-"å ńćšåųåķą č ņåńņśņ ąāņīģąņč÷ķī łå įśäå ļščźėž÷åķ ńėåä 10 ńåźóķäč,\n"
-"āśēńņąķīā˙āąéźč åźšąķą."
-
-#: ../../help.pm_.c:237
-msgid ""
-"The first time you try the X configuration, you may not be very satisfied\n"
-"with its display (screen is too small, shifted left or right...). Hence,\n"
-"even if X starts up correctly, DrakX then asks you if the configuration\n"
-"suits you. It will also propose to change it by displaying a list of valid\n"
-"modes it could find, asking you to select one.\n"
-"\n"
-"As a last resort, if you still cannot get X to work, choose \"Change\n"
-"graphics card\", select \"Unlisted card\", and when prompted on which\n"
-"server, choose \"FBDev\". This is a failsafe option which works with any\n"
-"modern graphics card. Then choose \"Test again\" to be sure."
-msgstr ""
-"Ļśšāč˙ ļśņ, źīćąņī īļčņąņå ķąńņšīéźąņą ķą X, ģīęå įč ķ˙ģą äą ńņå äīāīėķč īņ\n"
-"īņ āčäą (åźšąķśņ å ļšåźąėåķī ģąėśź, īņģåńņåķ ķąė˙āī čėč ķąä˙ńķī...). "
-"Āśļšåźč\n"
-"ņīāą, äąęå ąźī X ņšśćķå źąņī õīšąņą, DrakX łå āč ļīļčņą äąėč ķąńņšīéźąņą āč\n"
-"äīļąäą. Ńśłī ņąźą, ÷å āč ļšåäėīęč ļšīģ˙ķą, źąņī ļīźąęå ńļčńśź ķą āąėčäķč\n"
-"šåęčģč, źīčņī å óńļ˙ė äą ķąģåšč, ń ģīėįą äą ļīńī÷čņå åäčķ.\n"
-"\n"
-"Źąņī ļīńėåäķą āśēģīęķīńņ, ąźī āńå īłå ķå ģīęåņå äą ļīäźąšąņå X, čēįåšåņå\n"
-"\"Ļšīģ˙ķą ķą ćšąōč÷ķąņą źąšņą\", ļīńī÷čņå \"Ķåčēįšīåķą źąšņą\", č, źīćąņī\n"
-"įśäåņå ļīļčņąķč źīé ńśšāśš äą įśäå čēļīėēāąķ, čēįåšåņå \"FBDev\". Ņīāą å\n"
-"įåēćšåųķą īļöč˙, źī˙ņī šąįīņč ķą āń˙źą ļī-ķīāą źąšņą. Ņīćąāą čēįåšåņå "
-"\"Īļčņąé ļąź\", ēą äą ńņå ńčćóšķč."
-
-#: ../../help.pm_.c:249
-msgid ""
-"Finally, you will be asked whether you want to see the graphical interface\n"
-"at boot. Note this question will be asked even if you chose not to test the\n"
-"configuration. Obviously, you want to answer \"No\" if your machine is to\n"
-"act as a server, or if you were not successful in getting the display\n"
-"configured."
-msgstr ""
-"Ķąźšą˙, łå įśäåņå ļīļčņąķč äąėč čńźąņå äą āčęäąņå ćšąōč÷ķč˙ čķņåšōåéń ļšč\n"
-"ēąšåęäąķå. Īņįåėåęåņå, ÷å ņīēč āśļšīń łå āč įśäå ēąäąäåķ äąęå ąźī čēįåšåņå,\n"
-"äą ķå ņåńņāąņå ķąńņšīéźąņą. Ī÷åāčäķī, įčõņå īņćīāīščėč ń \"Ķå\", ąźī "
-"ģąųčķąņą\n"
-"łå šąįīņč źąņī ńśšāśš čėč ąźī ķ˙ģą óńļåųķī ķąńņšīåķ äčńļėåé."
-
-#: ../../help.pm_.c:256
-#, fuzzy
-msgid ""
-"The Mandrake LinuxCD-ROM has a built-in rescue mode. You can access it by\n"
-"booting from the CD-ROM, press the >>F1<< key at boot and type >>rescue<<\n"
-"at the prompt. But in case your computer cannot boot from the CD-ROM, you\n"
-"should come back to this step for help in at least two situations:\n"
-"\n"
-" * when installing the bootloader, DrakX will rewrite the boot sector (MBR)\n"
-"of your main disk (unless you are using another boot manager), to allow you\n"
-"to start up with either Windows or GNU/Linux (assuming you have Windows in\n"
-"your system). If you need to reinstall Windows, the Microsoft install\n"
-"process will rewrite the boot sector, and then you will not be able to\n"
-"start GNU/Linux!\n"
-"\n"
-" * if a problem arises and you cannot start up GNU/Linux from the hard "
-"disk,\n"
-"this floppy disk will be the only means of starting up GNU/Linux. It\n"
-"contains a fair number of system tools for restoring a system, which has\n"
-"crashed due to a power failure, an unfortunate typing error, a typo in a\n"
-"password, or any other reason.\n"
-"\n"
-"When you click on this step, you will be asked to enter a disk inside the\n"
-"drive. The floppy disk you will insert must be empty or contain data which\n"
-"you do not need. You will not have to format it since DrakX will rewrite\n"
-"the whole disk."
-msgstr ""
-"Mandrake Linux CDROM-śņ čģą āćšąäåķ ńļąńčņåėåķ šåęčģ. Ģīęåņå äą ćī\n"
-"äīńņčćķåņå, źąņī ńņąšņčšąņå īņ CDROM-ą, ķąņčńķåņå źėąāčųą >>F1<< č ķąļčųåņå\n"
-">>rescue<<. Ķī ńėó÷ąé, ÷å źīģļžņśšśņ ķå ģīęå äą ńņąšņčšą īņ CDROM, łå "
-"ņš˙įāą\n"
-"äą ńå āśšķåņå źśģ ņąēč ńņśļźą ēą ļīģīł ā ļīķå äāå ńčņóąöčč:\n"
-"\n"
-" * źīćąņī čńķņąėčšąņå boot loader, DrakX łå ļšåēąļčųå ńņąšņīāč˙ ńåźņīš (MBR) "
-"ķą ćėąāķč˙ āč äčńź (īńāåķ ąźī ķå čēļīėēāąņå äšóć ńņąšņīā ģåķčäęśš), ņąźą ÷å\n"
-"äą ńņąšņčšąņå Windows čėč GNU/Linux (ąźī čģąņå Windows ā ńčńņåģąņą ńč). Ąźī\n"
-"ńå ķóęäąåņå äą ļšåčķńņąėčšąņå Windows, čķńņąėąöčīķķč˙ ļšīöåń ķą Microsoft\n"
-"łå ļšåēąļčųå ńņąšņīāč˙ ńåźņīš č ķ˙ģą äą ģīęåņå äą ļóńķåņå āąųč˙ GNU/Linux!\n"
-"\n"
-" * ąźī ńå ļī˙āč ļšīįėåģ č ķå ģīęåņå äą ļóńķåņå GNU/Linux īņ ņāśšäč˙ ńč "
-"äčńź,\n"
-"ņąēč äčńźåņą łå čģą ēą öåė ńąģī äą ńņąšņčšą GNU/Linux. Ņ˙ ńśäśšęą "
-"ēąäīāīėčņåėåķ\n"
-"įšīé ńčńņåģķč čķńņšóģåķņč ēą āśēńņąķīā˙āąķå ķą ńčńņåģą, źī˙ņī å ēąįčėą ńėåä\n"
-"ńščā ā ēąõšąķāąķåņī, ńėó÷ąéķą ćšåųźą, ćšåųźą ā ļąšīėąņą čėč ķ˙źąźāą äšóćą\n"
-"ļšč÷čķą.\n"
-"\n"
-"Źīćąņī öśźķåņå ķą ņąēč ńņśļźą, łå įśäåņå ļīģīėåķč äą ļīńņąāčņå äčńź ā\n"
-"óńņšīéńņāīņī. Äčńźåņąņą, źī˙ņī āźąšąņå, ņš˙įāą äą įśäå ļšąēķą čėč äą "
-"ńśäśšęą\n"
-"äąķķč, īņ źīčņī ķå ńå ķóęäąåņå. Ķ˙ģą ķóęäą äą ˙ ōīšģąņčšąņå, ņśé źąņī DrakX\n"
-"łå ļšåēąļčųå ö˙ėąņą äčńźåņą."
-
-#: ../../help.pm_.c:280
-#, fuzzy
-msgid ""
-"At this point, you need to choose where you want to install the Mandrake\n"
-"Linux operating system on your hard drive. If your hard drive is empty or\n"
-"if an existing operating system is using all the available space, you will\n"
-"need to partition it. Basically, partitioning a hard drive consists of\n"
-"logically dividing it to create space to install your new Mandrake Linux\n"
-"system.\n"
-"\n"
-"Because the partitioning process' effects are usually irreversible,\n"
-"partitioning can be intimidating and stressful if you are an inexperienced\n"
-"user. Fortunately, there is a wizard which simplifies this process. Before\n"
-"beginning, please consult the manual and take your time.\n"
-"\n"
-"If you are running the installation in Expert mode, you will enter\n"
-"DiskDrake, the Mandrake Linux partitioning tool, which allows you to\n"
-"fine-tune your partitions. See the DiskDrake section in the ``User Guide''.\n"
-"From the installation interface, you can use the wizards as described here\n"
-"by clicking the dialog's \"Wizard\" button.\n"
-"\n"
-"If partitions have already been defined, either from a previous\n"
-"installation or from another partitioning tool, simply select those to\n"
-"install your Linux system.\n"
-"\n"
-"If partitions are not defined, you will need to create them using the\n"
-"wizard. Depending on your hard drive configuration, several options are\n"
-"available:\n"
-"\n"
-" * \"Use free space\": this option will simply lead to an automatic\n"
-"partitioning of your blank drive(s). You will not be prompted further;\n"
-"\n"
-" * \"Use existing partition\": the wizard has detected one or more existing\n"
-"Linux partitions on your hard drive. If you want to use them, choose this\n"
-"option;\n"
-"\n"
-" * \"Use the free space on the Windows; partition\": if MicrosoftWindows is\n"
-"installed on your hard drive and takes all the space available on it, you\n"
-"have to create free space for Linux data. To do so, you can delete your\n"
-"MicrosoftWindows partition and data (see ``Erase entire disk'' or ``Expert\n"
-"mode'' solutions) or resize your MicrosoftWindows partition. Resizing can\n"
-"be performed without the loss of any data, provided you previously\n"
-"defragment the Windows partition. Backing up your data won't hurt either..\n"
-"This solution is recommended if you want to use both Mandrake Linux and\n"
-"MicrosoftWindows on the same computer.\n"
-"\n"
-" Before choosing this option, please understand that after this "
-"procedure,\n"
-"the size of your MicrosoftWindows partition will be smaller than at the\n"
-"present time. You will have less free space under MicrosoftWindows to store\n"
-"your data or to install new software;\n"
-"\n"
-" * \"Erase entire disk\": if you want to delete all data and all partitions\n"
-"present on your hard drive and replace them with your new Mandrake Linux\n"
-"system, choose this option. Be careful with this solution because you will\n"
-"not be able to revert your choice after you confirm;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Remove Windows\": this will simply erase everything on the drive and\n"
-"begin fresh, partitioning everything from scratch. All data on your disk\n"
-"will be lost;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Expert mode\": choose this option if you want to manually partition\n"
-"your hard drive. Be careful it is a powerful but dangerous choice. You can\n"
-"very easily lose all your data. Hence, do not choose this unless you know\n"
-"what you are doing."
-msgstr ""
-"Ā ņīēč ģīģåķņ ņš˙įāą čēįåšåņå źśäå ķą ņāśšäč˙ ńč äčńźą äą čķńņąėčšąņå "
-"āąųąņą\n"
-"Mandrake Linux īļåšąöčīķķą ńčńņåģą. Ąźī ņāśšäč˙ņ āč äčńź å ļšąēåķ čėč äšóćą\n"
-"īļåšąöčīķķą ńčńņåģą čēļīėēāą ö˙ėīņī ļšīńņšąķńņāī, łå ņš˙įāą äą ćī "
-"šąēäåėčņå.\n"
-"Źąēąķī ļšīńņč÷źī, šąēäåė˙ķåņī ķą ņāśšäč˙ äčńź ńå ńśńņīč ā ėīćč÷åńźī "
-"šąēäåė˙ķå\n"
-"öåė äą ńå ńśēäąäå ģ˙ńņī ēą čķńņąėąöč˙ ķą ķīāąņą Mandrake Linux ńčńņåģą.\n"
-"\n"
-"Ņśé źąņī ļšīöåńśņ ķą šąēäåė˙ķå īįčźķīāåķī å ķåīįšąņčģ, šąēäåė˙ķåņī ģīęå äą\n"
-"čēćėåęäą ļėąųåł č ńņš˙ńźął, ąźī ńņå ķåīļčņåķ ļīņšåįčņåė. Ńėąāą Įīćó, čģą\n"
-"ģąćüīńķčź, źīéņī īļšīńņ˙āą ņīēč ļšīöåń. Ļšåäč äą ēąļī÷ķåņå, źīķńóėņčšąéņå "
-"ńå\n"
-"ń šśźīāīäńņāīņī č ķå įśšēąéņå.\n"
-"\n"
-"Ąźī ļóńźąņå čķńņąėąöč˙ņą ā Åźńļåšņåķ šåęčģ, łå įśäåņå āśāåäåķč ā DiskDrake,\n"
-"šąēäåė˙łč˙ čķńņšóģåķņ ķą Mandrake Linux, źīéņī āč ļīēāīė˙āą äą äīķąńņšīčņå\n"
-"ä˙ėīāåņå ńč. Āčęņå ćėąāąņą DiskDrake īņ šśźīāīäńņāīņī. Īņ čķńņąėąöčīķķč˙\n"
-"čķņåšōåéń ģīęåņå äą čēļīėēāąņå ģąćüīńķčöčņå, źąņī ķąņčńķåņå įóņīķą\n"
-"\"Ģąćüīńķčź\" ķą äčąėīćą.\n"
-"\n"
-"Ąźī ä˙ėīāåņå ńą āå÷å īļšåäåėåķč, äąėč īņ ļšåäčųķą čķńņąėąöč˙ čėč īņ äšóć\n"
-"čńņšóģåķņ ēą šąēäåė˙ķå, ļšīńņī čēįåšåņå ķą źīé äą čķńņąėčšąņå Linux\n"
-"ńčńņåģąņą.\n"
-"\n"
-"Ąźī ä˙ėīāåņå ķå ńą īļšåäåėåķč, łå ņš˙įāą äą ńśēäąäåņå ņąźčāą čēļīėēāąéźč\n"
-"ģąćüīńķčźą. Ā ēąāčńčģīńņ īņ ķąńņšīéźąņą ķą ņāśšäč˙ äčńź, ńą āśēģīęķč "
-"ķ˙źīėźī\n"
-"īļöčč:\n"
-"\n"
-" * \"Čēļīėēāąé ńāīįīäķīņī ļšīńņšąķńņāī\": ņąēč īļöč˙ ļšīńņī łå äīāåäå ņī\n"
-"ąāņīģąņč÷ķī ļīäåė˙ķå ķą ļšąēķīņī ļšīńņšąķńņāī ķą ņāśšäč˙ āč äčńź. Ķ˙ģą äą\n"
-"įśäåņå ļčņąķč ēą ņīāą.\n"
-"\n"
-" * \"Čēļīėēāąé ńśłåńņāóāął ä˙ė\": ģąćüīńķčźśņ å ēąń˙źśė åäčķ čėč ļīāå÷å\n"
-"ńśłåńņāóāąłč Linux ä˙ėīāå ķą ņāśšäč˙ āč äčńź. Ąźī čńźąņå äą ćč čēļīėēāąņå,\n"
-"čēįåšåņå ņąēč īļöč˙.\n"
-"\n"
-" * \"Čēļīėēāąé ńāīįīäķīņī ļšīńņšąķńņāī ķą Windows ä˙ė\": ąźī čģąņå "
-"čķńņąėčšąķ\n"
-"Microsoft Windows ķą ņāśšäč˙ ńč äčńź č ņīé ēąåģą ö˙ėīņī äīńņśļķī\n"
-"ļšīńņšąķńņāī ķą ķåćī, ņš˙įāą äą īńāīįīäčņå ģ˙ńņī ēą Linux äąķķč. Ēą äą\n"
-"ķąļšąāčņåņīāą, ģīęåņå äą čēņščåņå Microsoft Windows ä˙ėą č äąķķčņå (āčęņå\n"
-"šåųåķč˙ņą \"Čēņščé öåėč˙ äčńź\" čėč \"Åźļåšņåķ šåęčģ\") čėč äą ļšīģåķčņå\n"
-"ćīėåģčķąņą ķą Microsoft Windows ä˙ėą. Ļšīģ˙ķąņą ķą ćīėåģčķąņą ģīęå äą įśäå\n"
-"čēāśšųåķą įåē ēąćóįą ķą äąķķč. Ņīāą šåųåķčå ńå ļšåļīšś÷āą, ąźī čńźąņå\n"
-"åäķīāšåģåķķī Mandrake Linux č Microsoft Windows ķą åäčķ č ńśłč źīģļžņśš.\n"
-"\n"
-" Ļšåäč äą čēįåšåņå ņąēč īļöč˙, ģīė˙, šąēįåšåņå, ÷å ńėåä ņąēč ļšīöåäóšą,\n"
-"ćīėåģčķąņą ķą Microsoft Windows ä˙ėą łå įśäå ļī-ģąėźą, īņźīėźīņī ļšåäč "
-"ņīāą.\n"
-"Łå čģąņå ļī-ģąėźī ģ˙ńņī ļīä Microsoft Windows ēą ńśõšąķ˙āąķå ķą äąķķč čėč "
-"ēą\n"
-"čķńņąėčšą ķą ķīā ńīōņóåš.\n"
-"\n"
-" * \"Čēņščé öåėč˙ äčńź\": ąźī čńźąņå äą čēņščåņå āńč÷źč äąķķč č ä˙ėīāå, "
-"źīčņī\n"
-"ńśłåńņāóāąņ ķą āąųč˙ ņāśšä äčńź č äą ćč ēąģåķčņå ń ķīāąņą Mandrake Linux\n"
-"ńčńņåģą, čēįåšåņå ņąēč īļöč˙. Įśäåņå āķčģąņåėķč ń ņīāą šåųåķč˙, ēąłīņī ķ˙ģą\n"
-"äą ģīęåņå äą āśšķåņå īįšąņķī čēįīšą ńč, ńėåä źąņī ļīņāśšäčņå.\n"
-"\n"
-" !! Ąźī čēįåšåņå ņąēč īļöč˙, āńč÷źč äąķķč ķą äčńźą āč łå įśäąņ "
-"ēąćóįåķč !!\n"
-"\n"
-" * \"Čēņščé Windows\": Ņīāą ļšīńņī łå čēņščå āńč÷źī ķą äčńźą č łå ēąļī÷ķå "
-"ķą\n"
-"÷čńņī, šąēäåė˙ķå īņ šąē. Āń˙źąźāč äąķķč ķą äčńźą āč łå įśäąņ ēąćóįåķč.\n"
-"\n"
-" !! Ąźī čēįåšåņå ņąēč īļöč˙, āńč÷źč äąķķč ķą äčńźą āč łå įśäąņ "
-"ēąćóįåķč !!\n"
-"\n"
-" * \"Åźńļåšņåķ šåęčģ\": čēįåšåņå ņąēč īļöč˙, ąźī čńźąņå šś÷ķī äą šąēäåėčņå\n"
-"ņāśšäč˙ ńč äčńź. Įśäåņå āķčģąņåėķč - ņīāą å ģīłåķ, ķī īļąńåķ čēįīš. Ģīęåņå\n"
-"ģķīćī ėåńķī äą ēąćóįčņå āńč÷źč äąķķč. Ņąźą ÷å ķå čēįčšąéņå ņīāą, ąźī ķå\n"
-"ēķąåņå źąźāī ļšąāčņå."
-
-#: ../../help.pm_.c:347
-msgid ""
-"There you are. Installation is now complete and your GNU/Linux system is\n"
-"ready to use. Just click \"OK\" to reboot the system. You can start\n"
-"GNU/Linux or Windows, whichever you prefer (if you are dual-booting), as\n"
-"soon as the computer has booted up again.\n"
-"\n"
-"The \"Advanced\" button (in Expert mode only) shows two more buttons to:\n"
-"\n"
-" * \"generate auto-install floppy\": to create an installation floppy disk\n"
-"which will automatically perform a whole installation without the help of\n"
-"an operator, similar to the installation you just configured.\n"
-"\n"
-" Note that two different options are available after clicking the button:\n"
-"\n"
-" * \"Replay\". This is a partially automated installation as the\n"
-"partitioning step (and only this one) remains interactive;\n"
-"\n"
-" * \"Automated\". Fully automated installation: the hard disk is "
-"completely\n"
-"rewritten, all data is lost.\n"
-"\n"
-" This feature is very handy when installing a great number of similar\n"
-"machines. See the Auto install section on our web site;\n"
-"\n"
-" * \"Save packages selection\"(*): saves the package selection as done\n"
-"previously. Then, when doing another installation, insert the floppy inside\n"
-"the drive and run the installation going to the help screen by pressing on\n"
-"the [F1] key, and by issuing >>linux defcfg=\"floppy\"<<.\n"
-"\n"
-"(*) You need a FAT-formatted floppy (to create one under GNU/Linux, type\n"
-"\"mformat a:\")"
-msgstr ""
-"Ą ņąźą ! Čķńņąėąöč˙ņą å ēąāśšųåķą č GNU/Linux ńčńņåģąņą āč å ćīņīāą ēą\n"
-"óļīņšåįą. Ļšīńņī öśźķåņå \"OK\", ēą äą šåńņąšņčšąņå ńčńņåģąņą. Ģīęåņå äą\n"
-"ńņąšņčšąņå GNU/Linux čėč Windows, źīåņī ļšåäļī÷čņąņå (ąźī čģąņå äāå "
-"ńčńņåģč),\n"
-"āåäķąćą ńėåä źąņī źīģļžņśšśņ ńņąšņčšą īņķīāī.\n"
-"\n"
-"Įóņīķą \"Ķąļšåäķč÷ąā\" (ńąģī ā \"Åźńļåšņåķ\") ļīźąēāą īłå äāą įóņīķą ēą:\n"
-"\n"
-" * \"ćåķåščšąķå ķą äčńźåņą ēą ąāņīģąņč÷ķą čķńņąėąöč˙\": ēą äą ńśēäąäåņå\n"
-"čķńņąėąöčīķķą äčńźåņą, źī˙ņī ńėåä ņīāą ąāņīģąņč÷ķī äą čē÷śšųāą ö˙ėąņą\n"
-"čķńņąėąöč˙ įåē ļīģīłņą ķą īļåšąņīš, ļščėč÷ąłą ķą čķńņąėąöč˙ņą, źī˙ņī ņīźó-"
-"łī\n"
-"ńņå čēāśšųčėč.\n"
-"\n"
-" Īņįåėåęåņå, ÷å äāå šąēėč÷ķč īļöčč ńą äīńņśķč, ÷šåē öśźąķå ķą įóņīķą:\n"
-"\n"
-" * \"Ļšåčćšąé\". Ņīāą å ÷ąńņč÷ķī ąāņīģąņčēčšąķą čķńņąėąöč˙ źąņī ńņśļźčņå\n"
-"ļī šąēäåė˙ķå ķą ä˙ėīāå īńņąāąņ čķņåšąźņčāķč.\n"
-"\n"
-" * \"Ąāņīģąņč÷ķą\". Ķąļśėķī ąāņīģąņč÷ķą čķńņąėąöč˙: ņāśšäč˙ņ äčńź ńå\n"
-"ļšåēąļčńāą ķąļśėķī, āń˙źąźāč äąķķč ńå ēąćóįāąņ.\n"
-"\n"
-" Ņąēč īńīįåķīńņ å ģķīćī óäīįķą, źīćąņī čķńņąėčšąņå ćīė˙ģ įšīé ļīäīįķī\n"
-"ģąųčķč. Āčęņå ńåźöč˙ņą ēą ąāņīģąņč÷ķą čķńņąėąöč˙ ķą ķąųč˙ web-ńąéņ.\n"
-"\n"
-" * \"Ēąļąēč čēįīšą ķą ļąźåņč\"(*): ēąļąēāą čēįīšą ķą ļąźåņč, ņąźą źąźņī "
-"å\n"
-"ķąļšąāåķ ļšåäč. Źīćąņī ļšąāčņå äšóćą čķńņąėąöč˙, āźąšąéņå äčńźåņąņą ā\n"
-"óńņšīéńņāīņī č ļóńķåņå čķńņąėąöč˙ņą äą āśšāč ÷šåē ļīģīłķč˙ åźšąķ, źąņī\n"
-"ķąņčńķåņå źėąāčųą [F1] č źąņī ķąļčųåņå >>linux defcfg=\"floppy\"<<.\n"
-"\n"
-"(*) Ņš˙įāą āč FAT-ōīšģąņčšąķą äčńźåņą (ēą äą ńśēäąäåņå ņąźāą ļīä GNU/Linux,\n"
-"ķąļčųåņå \"mformat a:\")"
-
-#: ../../help.pm_.c:378
-msgid ""
-"Any partitions that have been newly defined must be formatted for use\n"
-"(formatting means creating a filesystem).\n"
-"\n"
-"At this time, you may wish to reformat some already existing partitions to\n"
-"erase any data they contain. If you wish to do that, please select those\n"
-"partitions as well.\n"
-"\n"
-"Please note that it is 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\n"
-"reformat partitions containing data that you wish to keep (typically\n"
-"\"/home\").\n"
-"\n"
-"Please be careful when selecting partitions. After formatting, all data on\n"
-"the selected partitions will be deleted and you will not be able to recover\n"
-"any of it.\n"
-"\n"
-"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"
-"Mandrake Linux operating system installation.\n"
-"\n"
-"Click on \"Advanced\" if you wish to select partitions that will be checked\n"
-"for bad blocks on the disk."
-msgstr ""
-"Āńč÷źč ķīāīäåōčķčšąķč ä˙ėīāå ņš˙įāą äą įśäąņ ōīšģąņčšąķč, ēą äą ńå "
-"čēļīėēāąņ\n"
-"(ōīšģąņčšąķå īēķą÷ąāą ńśēäąāąķå ķą ōąéėīāą ńčńņåģą).\n"
-"\n"
-"Ā ņīēč ģīģåķņą ģīęå įč čńźąņå äą ļšåōīšģąņčšąņå ķ˙źīč ńśłåńņāóāąłč ä˙ėīāå, "
-"ēą\n"
-"äą čēņščåņå āń˙źąźāč äąķķč, źīčņī ńśäśšęąņ. Ąźī čńźąņå äą ćī ķąļšąāčņå, "
-"ģīė˙\n"
-"čēįåšåņå ņ˙õ.\n"
-"\n"
-"Ģīė˙, īņįåėåęåņå, ÷å ķå å ķåīįõīäčģī äą ļšåōīšģąņčšąņå āńč÷źč ä˙ėīāå\n"
-"ńśłåńņāóāąłč īņļšåäč. Ņš˙įāą äą ļšåōīšģąņčšąņå ä˙ėīāåņå ńśäśšęąłč\n"
-"īļåšąöčīķķąņą ńčńņåģą (źąņī \"/\", \"/usr\" čėč \"/var\"), ķī ņīāą ķå å\n"
-"ēąäśėęčņåėķī ēą ä˙ėīāå ńśäśšęąłč äąķķč, źīčņī čńźąņå äą ēąļąēčņå "
-"(īįčźķīāåķī\n"
-"\"/home\").\n"
-"\n"
-"Ģīė˙, įśäåņå āķčģąņåėķč, źīćąņī čēįčšąņå ä˙ėīāåņå. Ńėåä ōīšģąņčšąķå āńč÷źč\n"
-"äąķķč ķą ļīńī÷åķčņå ä˙ėīāå łå įśäąņ čēņščņč č ķ˙ģą äą ģīęåņå äą ćč\n"
-"āśēńņąķīāčņå.\n"
-"\n"
-"Öśźķåņå \"OK\", źīćąņī ńņå ćīņīāč äą ōīšģąņčšąņå äąėīāå.\n"
-"\n"
-"Öśźķåņå \"Īņźąē\", ąźī čńźąņå äą čēįåšåņå äšóćč ä˙ėīāå ēą čķńņąėąöč˙ ķą "
-"ķīāąņą\n"
-"ńč Mandrake Linux īļåšąöčīķķą ńčńņåģą.\n"
-"\n"
-"Öśźķåņå \"Ķąļšåäķč÷ąā\", ąźī čńźąņå äą čēįåšåņå ä˙ėīāå, źīčņī äą įśäąņ\n"
-"ļšīāåšåķč ēą ėīųč įėīźīāå īņ äčńźą."
-
-#: ../../help.pm_.c:404
-msgid ""
-"Your new Mandrake Linux operating system is currently being installed.\n"
-"Depending on the number of packages you will be installing and the speed of\n"
-"your computer, this operation could take from a few minutes to a\n"
-"significant amount of time.\n"
-"\n"
-"Please be patient."
-msgstr ""
-"Ķīāąņą āč Mandrake Linux īļåšąöčīķķą ńčńņåģą ā ģīģåķņą ńå čķńņąėčšą. Ņąēč\n"
-"īļåšąöč˙ įč ņš˙įāąėī äą īņķåģå ķ˙źīėźī ģčķóņč (ēąāčńč īņ čēįšąķąņą ćīėåģčķą "
-"ķą\n"
-"čķńņąėąöč˙ņą č īņ ńźīšīńņņą ķą źīģļžņśšą āč).\n"
-"\n"
-"Ģīė˙, įśäåņå ņśšļåėčāč."
-
-#: ../../help.pm_.c:412
-msgid ""
-"At the time you are installing Mandrake Linux, it is likely that some\n"
-"packages have been updated since the initial release. Some bugs may have\n"
-"been fixed, and security issues solved. To allow you to benefit from these\n"
-"updates, you are now proposed to download them from the Internet. Choose\n"
-"\"Yes\" if you have a working Internet connection, or \"No\" if you prefer\n"
-"to install updated packages later.\n"
-"\n"
-"Choosing \"Yes\" displays a list of places from which updates can be\n"
-"retrieved. Choose the one nearest you. Then a package-selection tree\n"
-"appears: review the selection, and press \"Install\" to retrieve and\n"
-"install the selected package(s), or \"Cancel\" to abort."
-msgstr ""
-
-#: ../../help.pm_.c:425
-msgid ""
-"Before continuing, you should read carefully the terms of the license. It\n"
-"covers the whole Mandrake Linux 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."
-msgstr ""
-"Ļšåäč äą ļšīäśėęčņå, ņš˙įāą āķčģąņåėķī äą ļšī÷åņåņå óńėīāč˙ņą ķą ėčöåķēą. "
-"Ņīé\n"
-"ļīźščāą ö˙ėąņą Mandrake Linux äčńņščįóöč˙, č, ąźī ķå ńņå ńśćėąńķč ń āńč÷źč "
-"óńėīāč˙\n"
-"ā ķåćī, öśźķåņå ķą įóņīķą Īņźąē. Ņīāą ķåēąįąāķī łå ļščźėž÷č čķńņąėąöč˙ņą. Ēą "
-"äą\n"
-"ļšīäśėęčņå ń čķńņąėąöč˙ņą, öśźķåņå ķą įóņīķą Ļščåģč."
-
-#: ../../help.pm_.c:432
-msgid ""
-"At this point, it is time to choose the security level desired for the\n"
-"machine. As a rule of thumb, the more exposed the machine is, and the more\n"
-"the data stored in it is crucial, the higher the security level should be.\n"
-"However, a higher security level is generally obtained at the expense of\n"
-"easiness of use. Refer to the \"msec\" chapter of the ``Reference Manual''\n"
-"to get more information about the meaning of these levels.\n"
-"\n"
-"If you do not know what to choose, keep the default option."
-msgstr ""
-"Ā ņīēč ģīģåķņ, ņš˙įāą äą čēįåšåņå ķčāīņī ķą ńčćóšķīńņ, źīåņī čńźąņå ēą\n"
-"ģąųčķąņą. Ļī ļšąāčėī, źīėźīņī ļīāå÷å ģąųčķąņą āč å äīńņśļķą č źīėźīņī "
-"ļīāå÷å\n"
-"äąķķč ńå ńśõšąķ˙āąņ ķą ķå˙, ņīėźīāą ļī-āčńīźī ņš˙įāą äą å ķčāīņī ķą "
-"ńčćóšķīńņ.\n"
-"Āśļšåźč ņīāą, āčńīźąņą ńčćóšķīńņ å ēą ńģåņźą ķą ėåźīņąņą ķą šąįīņą.\n"
-"Īįśšķåņå ńå źśģ ćėąāąņą MSEC ķą Reference Manual, ēą äą ļīėó÷čņå ļīāå÷å "
-"čķōīšģąöč˙\n"
-"ēą ēķą÷åķčåņī ķą ņåēč ķčāą.\n"
-"\n"
-"Ąźī ķå ēķąåņå źąźņī äą čēįåšåņå, čēįåšåņå īļöč˙ņą ļī ļīäšąēįčšąķå."
-
-#: ../../help.pm_.c:442
-#, fuzzy
-msgid ""
-"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandrake Linux 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"
-"partitions must be defined.\n"
-"\n"
-"To create partitions, you must first select a hard 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"
-"\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"
-"\n"
-" * \"More\": gives access to additional features:\n"
-"\n"
-" * \"Save partition table\": saves the partition table to a floppy. "
-"Useful\n"
-"for later partition-table recovery if necessary. It is strongly recommended\n"
-"to perform this step;\n"
-"\n"
-" * \"Restore partition table\": allows to restore a previously saved\n"
-"partition table from floppy disk;\n"
-"\n"
-" * \"Rescue partition table\": if your partition table is damaged, you "
-"can\n"
-"try to recover it using this option. Please be careful and remember that it\n"
-"can fail;\n"
-"\n"
-" * \"Reload partition table\": discards all changes and loads your "
-"initial\n"
-"partition table;\n"
-"\n"
-" * \"Removable media automounting\": unchecking this option will force "
-"users\n"
-"to manually mount and unmount removable medias such as floppies and\n"
-"CD-ROMs.\n"
-"\n"
-" * \"Wizard\": 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 knowledge of\n"
-"partitioning;\n"
-"\n"
-" * \"Undo\": use this option to cancel your changes;\n"
-"\n"
-" * \"Toggle to normal/expert mode\": allows additional actions on "
-"partitions\n"
-"(type, options, format) and gives more information;\n"
-"\n"
-" * \"Done\": when you are finished partitioning your hard 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"
-"partitions using [Tab] and [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"
-"\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"
-"ķą āąųąņą Mandrake Linux ńčńņåģą. Ąźī ä˙ėīāåņå āå÷å ńą īļšåäåėåķč, äąėč īņ\n"
-"ļšåäčųķą čķńņąėąöč˙ ķą GNU/Linux čėč īņ äšóć čķńņšóģåķņ ēą šąēäåė˙ķå, "
-"ģīęåņå\n"
-"äą čēļīėēāąņå ńśłåńņāóāąłčņå äąėīāå. Ā ļšīņčāåķ ńėó÷ąé ņš˙įāą äą īļšåäåėčņå\n"
-"ä˙ėīāå īņ ņāśšäč˙ äčńź.\n"
-"\n"
-"Ēą äą ńśēäąäåņå ä˙ėīāå, ņš˙įāą ļśšāī äą čēįåšåņå ņāśšä äčńź. Ģīęåņå äą\n"
-"čēįåšåņå äčńź ēą šąēäåė˙ķå, źąņī öśźķåņå ķą \"hda\" ēą ļśšāī IDE "
-"óńņšīéńņāī,\n"
-"\"hdb\" ēą āņīšīņī, \"sda\" ēą ļśšāī SCSI óńņšīéńņāī č ņ.ķ..\n"
-"\n"
-"Ēą äą šąēäåėčņå čēįšąķč˙ ņāśš äčńź, ģīęåņå äą čēļīėēāąņå ńėåäķč˙ īļöčč:\n"
-"\n"
-" * \"Čē÷čńņč āńč÷źī\": ņąēč īļöč˙ čēņščāą āńč÷źč ä˙ėīāå ķą čēįšąķč˙ äčńź.\n"
-"\n"
-" * \"Ąāņīģąņč÷ķī ńśēäąāąķå\": ņąēč īļöč˙ ļīēāīė˙āą ąāņīģąņč÷ķī äą ńśēąäåņå\n"
-"Ext2 č swap ä˙ėīāå ā ńāīįīäķīņī ļšīńņšąķńņāī ķą ņāśšäč˙ āč äčńź.\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"
-"Ģčķąāąéņå ļšåē ä˙ėīāåņå čēļīėēāąéźč [Tab} č ńņšåėźčņå ķąćīšå/ķąäīėó.\n"
-"\n"
-"Źīćąņī å čēįšąķ ä˙ė, ģīęåņå äą čēļīėēāąņå:\n"
-"\n"
-" * Ctrl-c, ēą äą ńśēäąäåņå ķīā ä˙ė (ąźī å čēįšąķ ļšąēåķ ä˙ė);\n"
-"\n"
-" * Ctrl-d, ēą äą čēņščåņå ä˙ė;\n"
-"\n"
-" * Ctrl-m, ēą äą óńņąķīāčņå ņī÷źą ķą ģīķņčšąķå.\n"
-"\n"
-"Ąźī čķńņąėčņå ķą PPC ģąųčķą, ńčćóšķī łå čńźąņå äą ńśēäąäåņå ģąėśź HFS\n"
-"\"bootstrap\" ä˙ė īņ ļīķå 1 ĢĮ, źīéņī łå įśäå čēļīėēāąņ īņ boot loader-śņ\n"
-"yaboot. Ąźī ńģ˙ņąņå äą ķąļšąāčņå ä˙ėą ļī-ćīė˙ģ, ķąļščģåš 50 ĢĮ, ģīęåņå äą "
-"ćī\n"
-"ķąģåščņå ēą ļīėåēķī ģ˙ńņī, źśäåņī äą ńśõšąķ˙āąņå ķ˙źīå ˙äšī čėč image ķą\n"
-"ramdisk ā ńėó÷ąé ķą čēāśķšåäķč ńčņóąöčč."
-
-#: ../../help.pm_.c:513
-msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
-"Please choose the one you want to resize in order to install your new\n"
-"Mandrake Linux 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"
-"\"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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard 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"
-"disk or partition is called \"C:\")."
-msgstr ""
-"Įåųå ēąńå÷åķ ļīāå÷å īņ åäčķ Microsoft Windows ä˙ė\n"
-"ķą ņāśšäč˙ āč äčńźą. Čēįåšåņå ņīēč, ÷č˙ņī äśėęčķą čńźąņå äą ļšīģåķčņå, ēą "
-"äą\n"
-"čķńņąėčšąņå Mandrake Linux īļåšąöčīķķą ńčńņåģą.\n"
-"\n"
-"\n"
-"Ēą čķōīšģąöč˙, āńåźč ä˙ė å čēįšīåķ źąźņī ńėåäāą: \"Linux čģå\", \"Windows čģå"
-"\", \"Źąļąöčņåņ\".\n"
-"\n"
-"\"Linux čģåņī\" ńå źīäčšą źąźņī ńėåäāą: \"ņčļ ķą äčńźą\", \"ķīģåš ķą äčńźą"
-"\",\n"
-"\"ķīģåš ķą ä˙ė\" (ķąļščģåš, \"hda1\").\n"
-"\n"
-"\n"
-"\"Ņčļśņ ķą äčńźą\" ģīęå äą å \"hd\", ąźī å IDE ņāśšä äčńź, čėč \"sd\", ąźī "
-"å\n"
-"SCSI ņāśšä äčńź.\n"
-"\n"
-"\n"
-"\"Ķīģåšśņ ķą äčńźą\" āčķąćč å įóźāąņą ńėåä \"hd\" čėč \"sd\". Ļšč IDE "
-"äčńźīāå:\n"
-"\n"
-" * \"a\" īēķą÷ąāą \"master äčńź ķą ļśšāč˙ IDE źīķņšīėåš\",\n"
-" * \"b\" īēķą÷ąāą \"slave äčńź ķą ļśšāč˙ IDE źīķņšīėåš\",\n"
-" * \"c\" īēķą÷ąāą \"master äčńź ķą āņīšč˙ IDE źīķņšīėåš\",\n"
-" * \"d\" īēķą÷ąāą \"slave äčńź ķą āņīšč˙ IDE źīķņšīėåš\".\n"
-"\n"
-"\n"
-"Ļšč SCSI óńņšīéńņāą, \"a\" īēķą÷ąāą \"ļśšāč ņāśšä äčńź\", \"b\" īēķą÷ąāą "
-"\"āņīšč ņāśšä äčńź\" č ņ.ķ..\n"
-"\n"
-"\"Windows čģåņī\" å įóźāąņą ķą ņāśšäč˙ āč äčńź ļīä Windows (ļśšāč˙ņ äčńź "
-"čėč\n"
-"ä˙ė ńå ķąšč÷ą \"C:\")."
-
-#: ../../help.pm_.c:544
-msgid "Please be patient. This operation can take several minutes."
-msgstr "Ģīė˙, įśäåņå ņśšļåėčāč. Ņąēč īļåšąöč˙ ģīęå äą īņķåģå ķ˙źīėźī ģčķóņč."
-
-#: ../../help.pm_.c:547
-#, fuzzy
-msgid ""
-"DrakX now needs to know if you want to perform a default (\"Recommended\")\n"
-"installation or if you want to have greater control (\"Expert\"). You can\n"
-"also choose to do a new install or an upgrade of an existing Mandrake Linux\n"
-"system:\n"
-"\n"
-" * \"Install\": completely wipes out the old system. In fact, depending on\n"
-"what currently holds your machine, you will be able to keep some old (Linux\n"
-"or other) partitions unchanged;\n"
-"\n"
-" * \"Upgrade\": this installation class allows to simply update the "
-"packages\n"
-"currently installed on your Mandrake Linux system. It keeps the current\n"
-"partitions of your hard drives as well as user configurations. All other\n"
-"configuration steps remain available with respect to plain installation;\n"
-"\n"
-" * \"Upgrade Packages Only\": this brand new class allows to upgrade an\n"
-"existing Mandrake Linux system while keeping all system configurations\n"
-"unchanged. Adding new packages to the current installation is also\n"
-"possible.\n"
-"\n"
-"Upgrades should work fine for Mandrake Linux systems starting from \"8.1\"\n"
-"release.\n"
-"\n"
-"Depending on your knowledge of GNU/Linux, select one of the following\n"
-"choices:\n"
-"\n"
-" * Recommended: choose this if you have never installed a GNU/Linux\n"
-"operating system. The installation will be very easy and you will only be\n"
-"asked a few questions;\n"
-"\n"
-" * Expert: if you have a good knowledge of GNU/Linux, you can choose this\n"
-"installation class. The expert installation will allow you to perform a\n"
-"highly-customized installation. Answering some of the questions can be\n"
-"difficult if you do not have a good knowledge of GNU/Linux, so do not\n"
-"choose this unless you know what you are doing."
-msgstr ""
-"DrakX ńåćą ņš˙įāą äą ļšīāåäå čķńņąėąöč˙ ļī ļīäšąēįčšąķå (\"Ļšåļīšś÷čņåėķą"
-"\")\n"
-"čėč ņąźąāą, źśäåņī čģąņå ļī-ćīė˙ģ źīķņšīė (\"Åźńļåšņķą\"). Āčå ńśłī ņąźą\n"
-"ģīęåņå äą čēįåšåņå äą čēāśšųčņå ķīāą čķńņąėąöč˙ čėč ķąäćšąęäąķå ķą\n"
-"ńśłåńņāóāąłą Mandrake Linux ńčńņåģą. Öśźąéźč ķą \"Čķńņąėčšąé\" łå ēąņščå\n"
-"ķąļśėķī ńņąšąņą ńčńņåģą. Čēįåšåņå \"Ķąäćšąäč\", ąźī ķąäćšąęäąņå čėč\n"
-"ļīļšąāčņå ńśłåńņāóāąłą ńčńņåģą\n"
-"\n"
-"Ģīė˙, čēįåšåņå \"Čķńņąėčšąé\", ąźī ķ˙ģąņå čķńņąėčšąķą ļšåäčųķą āåšńč ķą\n"
-"Mandrake Linux čėč ąźī čńźąņå äą čēįčšąņå ģåęäó īļåšąöčīķķč ńčńņåģč.\n"
-"\n"
-"Ģīė˙, čēįåšåņå \"Ķąäćšąäč\", ąźī čńźąņå äą ķąäćšąäčņå čėč ļīļšąāčņå āå÷å\n"
-"čķńņąėčšąķą āåšńč˙ ķą Mandrake Linux.\n"
-"\n"
-"Ā ēąāčńčģīńņ īņ ļīēķąķč˙ņą āč ļī GNU/Linux, ģīė˙, čēįåšåņå åäčķ īņ ńėåäķčņå\n"
-"āčäīāå čķńņąėąöč˙/ķąäćšąęäąķå ķą āąųąņą Mandrake Linux īļåšąöčīķķ ńčńņåģą:\n"
-"\n"
-" * Ļšåļīšś÷čņåėķą: čēįåšåņå ņīāą, ąźī ķčźīćą ķå ńņå čńķņąėčšąėč GNU/Linux\n"
-"īļåšąöčīķķą ńčńņåģą. Čķńņąėąöč˙ņą å ģķīćī ėåńķą č łå įśäåņå ļīļčņąķč ńąģī\n"
-"ķ˙źīėźī āśļšīńą.\n"
-"\n"
-" * Åźńļåšņķą:ąźī čģąņå äīįšč ļīēķąķč˙ ļī GNU/Linux, ģīęåņå äą čēįåšåņå ņīēč\n"
-"čķńņąėąöčīķåķ źėąń. Åźńļåšņķąņą čķńņąėąöč˙ łå āč ļīēāīėč äą čēāśšųčņå ģķīćī\n"
-"ļīņšåįčņåėńźą čķńņąėąöč˙. Īņćīāīščņå ķą ķ˙źīč āśļšīńč ģīęå äą ńą ņšśäč, ąźī\n"
-"ķå ļīēķąāąņå äīįšå GNU/Linux, ņąźą ÷å čēįåšåņå ņīāą, īńāåķ ąźī ķå ēķąåņå\n"
-"źąźāī ļšąāčņå."
-
-#: ../../help.pm_.c:583
-msgid ""
-"Normally, DrakX selects the right keyboard for you (depending on the\n"
-"language you have chosen) and you won't even see this step. However, you\n"
-"might not have a keyboard that corresponds exactly to your language: for\n"
-"example, if you are an English speaking Swiss person, you may still want\n"
-"your keyboard to be a Swiss keyboard. Or if you speak English but are\n"
-"located in Quebec, you may find yourself in the same situation. In both\n"
-"cases, you will have to go back to this installation step and select an\n"
-"appropriate keyboard from the list.\n"
-"\n"
-"Click on the \"More\" button to be presented with the complete list of\n"
-"supported keyboards."
-msgstr ""
-"Īįčźķīāåķī, DrakX įč ņš˙įāąėī äą čēįåšå ļšąāčėķąņą ēą āąń źėąāčąņóšą (ā "
-"ēąāčńčģīńņ\n"
-"īņ åēčźą, źīéņī ńņå čēįšąėč) č ķ˙ģą äą ńå ķąėīęč äą āčäčņå ņąēč ńņśļźą. "
-"Īįą÷å ģīęå äą\n"
-"ķ˙ģąņå źėąāčąņóšą ńśīņāåņńņāąłą ņī÷ķī ķą āąųč˙ åēčź: ķąļščģåš, ąźī ńņå "
-"ąķćėīćīāīš˙ł ųāåä,\n"
-"ģīęå įč łå čńźąņå źėąāčąņóšąņą āč äą įśäå ųāåäńźą. Čėč ąźī ćīāīščņå "
-"aķćėčéńźč, ķī ńņå\n"
-"ā Źāåįåź, ģīęå įč łå ńņå ā ńśłąņą ńčņóąöč˙. Č ā äāąņą ńėó÷ą˙, łå ņš˙įāą äą "
-"ńå āśšķåņå\n"
-"źśģ ņąēč čķńņąėąöčīķķą ńņśļźą č äą čēįåšåņå ļšąāčėķąņą źėąāčąņóšą īņ "
-"ńļčńśźą.\n"
-"\n"
-"Āńč÷źī, źīåņī ņš˙įāą äą ķąļšąāčņå, å äą ļīńī÷čņå ļšåäļī÷čņąķąņą źėąāčąņóšķą "
-"ķąšåäįą\n"
-"īņ ńļčńśźą, źīéņī łå ńå ļī˙āč ļšåä āąń.\n"
-"\n"
-"Ąźī čģąņå źėąāčąņóšą īņ åēčź šąēėč÷åķ īņ ņīēč čēļīėēāąķ ļī ļīäšąēįčšąķå, "
-"öśźķåņå\n"
-"ķą įóņīķą \"Ķąļšåäķč÷ąā\". Łå āč įśäå ļšåäīńņąāåķ ļśėåķ ńļčńśź ń "
-"ļīääśšęąķčņå źėąāčąņóšč."
-
-#: ../../help.pm_.c:596
-msgid ""
-"Please choose your preferred language for installation and system usage.\n"
-"\n"
-"Clicking on the \"Advanced\" button will allow you to select other\n"
-"languages to be installed on your workstation. Selecting other languages\n"
-"will install the language-specific files for system documentation and\n"
-"applications. For example, if you will host users from Spain on your\n"
-"machine, select English as the main language in the tree view and in the\n"
-"Advanced section click on the box corresponding to \"Spanish|Spain\".\n"
-"\n"
-"Note that multiple languages may be installed. Once you have selected any\n"
-"additional locales, click the \"OK\" button to continue."
-msgstr ""
-"Ģīė˙, öśźķåņå ķą ļšåäļī÷čņąķč˙ åēčź ķą čķńņąėąöč˙ č ńčńņåģķą óļīņšåįą.\n"
-"\n"
-"Öśźąķåņī ķą įóņīķą \"Ķąļšåäķč÷ąā\" łå āč ļīēāīėč äą čēįåšåņå äšóćč åēčöč\n"
-"äą įśäąņ čķńņąėčšąķč ķą šąįīņķąņą āč ńņąķöč˙. Čēįčšąķåņī ķą äšóćč åēčöč\n"
-"łå čķńņąėčšą ōąéėīāå ńļåöčāč÷ķč ēą åēčöčņå ēą ńčńņåģķą äīźóģåķņąöč˙ č\n"
-"ļščėīęåķč˙. Ķąļščģåš, ąźī čģąņå ļīņšåįčņåėč īņ Čēļąķč˙ ķą ģąųčķąņą ńč,\n"
-"čēįåšåņå ąķćėčéńźč źąņī ćėąāåķ åēčź ā äśšāīāčäķąņą ōīšģą č ā ńåźöč˙\n"
-"\"Ķąļšåäķč÷ąā\" öśźķåņå ķą ńčāąņą ēāåēäą ńśīņāåņńņāąłą ķą\n"
-"\"Čńļąķńźč|Čńļąķč˙\".\n"
-"Īņįåėåęåņå, ÷å ģīćąņ äą įśäąņ čķńņąėčšąķč ķ˙źīėźī åēčźą. Āåäķśę čēįšąķ\n"
-"ķ˙źąźśā ėīźąė, öśźķåņå įóņīķą \"OK\", ēą äą ļšīäśėęčņå."
-
-#: ../../help.pm_.c:609
-msgid ""
-"DrakX generally detects the number of buttons your mouse has. If not, it\n"
-"assumes you have a two-button mouse and will set it up for third-button\n"
-"emulation. DrakX will automatically know whether it is a PS/2, serial or\n"
-"USB mouse.\n"
-"\n"
-"If you wish to specify a different type of mouse select the appropriate\n"
-"type from the provided list.\n"
-"\n"
-"If you choose a mouse other than the default, a test screen will be\n"
-"displayed. Use the buttons and wheel to verify that the settings are\n"
-"correct. If the mouse is not working well, press the space bar or [Return]\n"
-"to \"Cancel\" and choose again."
-msgstr ""
-"Ļī ļīäšąēįčšąķå, DrakX ļšåäļīėąćą ÷å čģąņå äāóįóņīķķą ģčųźą č łå āźėž÷č\n"
-"ńčģóėčšąķå ķą ņšč įóņīķą. DrakX ąāņīģąņč÷ķī šąēįčšą äąėč å PS/2, ńåščéķą "
-"čėč\n"
-"USB ģčųźą.\n"
-"\n"
-"Ąźī čńźąņå äą īļšåäåėčņå äšóć ņčļ ķą ģčųźąņą, čēįåšåņå ļīäõīä˙ł īņ ńļčńśźą,\n"
-"źīéņī łå āč įśäå ļšåäńņąāåķ.\n"
-"\n"
-"Ąźī čēįåšåņå ģčųźą šąēėč÷ķą īņ ņąēč ļī ļīäšąēįčšąķå, łå āč įśäå ļšåäīńņąāåķ\n"
-"åźšąķ ēą ļšīįą. Čēļīėēāąéņå įóņīķčņå č źīėåėöåņī, ēą äą ļšīāåščņå, ÷å\n"
-"ķąńņšīéźąņą å äīšą. Ąźī ģčųźąņą ķå šąįīņč, źąźņī ņš˙įāą, ķąņčńķåņå čķņåšāąė\n"
-"čėč ŃÅ ĀŚŠĶÅŅÅ źśģ \"Īņźąē\" č čēįåšåņå ļąź."
-
-#: ../../help.pm_.c:623
-msgid ""
-"Please select the correct port. For example, the \"COM1\" port under\n"
-"Windows is named \"ttyS0\" under GNU/Linux."
-msgstr ""
-"Ģīė˙, čēįåšåņå āåšķč˙ ļīšņ. Ķąļščģåš, ļīšņśņ COM1 ļīä Windows ļīä GNU/Linux\n"
-"ńå ķąšč÷ą ttyS0."
-
-#: ../../help.pm_.c:627
-msgid ""
-"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 choose\n"
-"not to enter a password, but we strongly advise you against this if only\n"
-"for one reason: do not think that because you booted GNU/Linux that your\n"
-"other operating systems are safe from mistakes. Since \"root\" can overcome\n"
-"all limitations and unintentionally erase all data on partitions by\n"
-"carelessly accessing the partitions themselves, it is important for it to\n"
-"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."
-msgstr ""
-
-#: ../../help.pm_.c:663
-msgid ""
-"LILO and grub are GNU/Linux bootloaders. This stage, normally, is totally\n"
-"automated. In fact, DrakX analyzes the disk boot sector and acts\n"
-"accordingly, depending on what it finds here:\n"
-"\n"
-" * if a Windows boot sector is found, it will replace it with a grub/LILO\n"
-"boot sector. Hence, you will be able to load either GNU/Linux or another\n"
-"OS;\n"
-"\n"
-" * if a grub or LILO boot sector is found, it will replace it with a new\n"
-"one.\n"
-"\n"
-"If in doubt, DrakX will display a dialog with various options.\n"
-"\n"
-" * \"Bootloader to use\": you have three choices:\n"
-"\n"
-" * \"GRUB\": if you prefer grub (text menu).\n"
-"\n"
-" * \"LILO with graphical menu\": if you prefer LILO with its graphical\n"
-"interface.\n"
-"\n"
-" * \"LILO with text menu\": if you prefer LILO with its text menu "
-"interface.\n"
-"\n"
-" * \"Boot device\": in most cases, you will not change the default\n"
-"(\"/dev/hda\"), but if you prefer, the bootloader can be installed on the\n"
-"second hard drive (\"/dev/hdb\"), or even on a floppy disk (\"/dev/fd0\");\n"
-"\n"
-" * \"Delay before booting the default image\": when rebooting the computer,\n"
-"this is the delay granted to the user to choose in the bootloader menu,\n"
-"another boot entry than the default one.\n"
-"\n"
-"!! Beware that if you choose not to install a bootloader (by selecting\n"
-"\"Cancel\" here), you must ensure that you have a way to boot your Mandrake\n"
-"Linux system! Also, be sure you know what you do before changing any of the\n"
-"options. !!\n"
-"\n"
-"Clicking the \"Advanced\" button in this dialog will offer many advanced\n"
-"options, which are reserved to the expert user.\n"
-"\n"
-"After you have configured the general bootloader parameters, the list of\n"
-"boot options which will be available at boot time will be displayed.\n"
-"\n"
-"If there is another operating system installed on your machine, it will\n"
-"automatically be added to the boot menu. Here, you can choose to fine-tune\n"
-"the existing options. Select an entry and click \"Modify\" to modify or\n"
-"remove it; \"Add\" creates a new entry; and \"Done\" goes on to the next\n"
-"installation step."
-msgstr ""
-
-#: ../../help.pm_.c:711
-msgid ""
-"LILO (the LInux LOader) and grub are bootloaders: they are able to boot\n"
-"either GNU/Linux or any other operating system present on your computer.\n"
-"Normally, these other operating systems are correctly detected and\n"
-"installed. If this is not the case, you can add an entry by hand in this\n"
-"screen. Be careful to choose the correct parameters.\n"
-"\n"
-"You may also not want to give access to these other operating systems to\n"
-"anyone. In which case, you can delete the corresponding entries. But then,\n"
-"you will need a boot disk in order to boot those other operating systems!"
-msgstr ""
-"LILO (čėč LInux LOader) č Grub ńą bootloader-č: ņå ģīćą äą ńņąšņčšąņ\n"
-"GNU/Linux čėč źī˙ äą å äšóćą īļåšąöčīķķą ńčńņåģą ńśłåńņāóāąłą ķą źīģļžņśšą "
-"āč.\n"
-"Īįčźķīāåķķī, ņåēč äšóćč īļåšąöčīķķč ńčńņåģą ńå ēąńč÷ąņ č čķńņąėčšąņ\n"
-"ļšąāčėķī. Ąźī ņīāą ķå ńņąāą ļšč āąń, ģīęåņå äą äīįąā˙ņå ēąļčńč ķą šśźą ā\n"
-"ņīēč åźšąķ. Ćėåäąéņå äą čēįåšåņå āåšķč ļąšąģåņšč.\n"
-"\n"
-"\n"
-"Ģīęå äą ķå čńźąņå äą äąāąņå äīńņśļ äī ņåēč īļåšąöčīķķč ńčńņåģč ķą ķčźīé,\n"
-"ā źīéņī ńėó÷ąé ģīęåņå äą čēņščåņå ńśīņāåņķčņå ēąļčńč. Ķī ā ņąźśā ńėó÷ąé,\n"
-"łå ńå ķóęäąåņå īņ boot-äčńźåņą, ēą äą ćč ńņąšņčšąņå !"
-
-#: ../../help.pm_.c:722
-msgid ""
-"You must indicate where you wish to place the information required to boot\n"
-"to GNU/Linux.\n"
-"\n"
-"Unless you know exactly what you are doing, choose \"First sector of drive\n"
-"(MBR)\"."
-msgstr ""
-"Ņš˙įāą äą ļīńī÷čņå źśäå ęåėąåņå äą\n"
-"ļīńņąāčņå čķōīšģąöč˙ņą, ķåīįõīäčģą ēą ńņąšņčšąķåņī ķą GNU/Linux.\n"
-"\n"
-"Ąźī ķå ńņå ńčćóšķč ā ņīāą, źīåņī ļšąāčņå, čēįåšåņå \"Ļśšāč˙ ńåźņīš ķą\n"
-"óńņšīéńņāīņī (MBR)\"."
-
-#: ../../help.pm_.c:729
-msgid ""
-"Here, we select a printing system for your computer. Other OSs may offer\n"
-"you one, but Mandrake Linux offers three.\n"
-"\n"
-" * \"pdq\" which means ``print, don't queue'', is the choice if you have a\n"
-"direct connection to your printer and you want to be able to panic out of\n"
-"printer jams, and you do not have networked printers. It will handle only\n"
-"very simple network cases and is somewhat slow for networks. Pick \"pdq\"\n"
-"if this is your maiden voyage to GNU/Linux. You can change your choices\n"
-"after installation by running PrinterDrake from the Mandrake Control Center\n"
-"and clicking the expert button.\n"
-"\n"
-" * \"CUPS\"``Common Unix Printing System'', is excellent at printing to "
-"your\n"
-"local printer and also halfway-around the planet. It is simple and can act\n"
-"as a server or a client for the ancient \"lpd\" printing system. Hence, it\n"
-"is compatible with the systems that went before. It can do many tricks, but\n"
-"the basic setup is almost as easy as \"pdq\". If you need this to emulate\n"
-"an \"lpd\" server, you must turn on the \"cups-lpd\" daemon. It has\n"
-"graphical front-ends for printing or choosing printer options.\n"
-"\n"
-" * \"lprNG\"``line printer daemon New Generation''. This system can do\n"
-"approximately the same things the others can do, but it will print to\n"
-"printers mounted on a Novell Network, because it supports the IPX protocol,\n"
-"and it can print directly to shell commands. If you have need of Novell or\n"
-"printing to commands without using a separate pipe construct, use lprNG.\n"
-"Otherwise, CUPS is preferable as it is simpler and better at working over\n"
-"networks."
-msgstr ""
-
-#: ../../help.pm_.c:757
-msgid ""
-"DrakX now detects any IDE device present in your computer. It will also\n"
-"scan for one or more PCI SCSI card(s) on your system. If a SCSI card is\n"
-"found, DrakX will automatically install the appropriate driver.\n"
-"\n"
-"Because hardware detection does not always detect a piece of hardware,\n"
-"DrakX will ask you to confirm if a PCI SCSI card is present. Click \"Yes\"\n"
-"if you know that there is a SCSI card installed in your machine. You will\n"
-"be presented a list of SCSI cards to choose from. Click \"No\" if you have\n"
-"no SCSI hardware. If you are unsure, you can check the list of hardware\n"
-"detected in your machine by selecting \"See hardware info\" and clicking\n"
-"\"OK\". Examine the list of hardware and then click on the \"OK\" button to\n"
-"return to the SCSI interface question.\n"
-"\n"
-"If you have to manually specify your adapter, DrakX will ask if you want to\n"
-"specify options for it. You should allow DrakX to probe the hardware for\n"
-"the card-specific options which the hardware needs to initialize. This\n"
-"usually works well.\n"
-"\n"
-"If DrakX is not able to probe for the options which need to be passed, you\n"
-"will need to provide options to the driver manually. Please review the\n"
-"``User Guide'' (chapter 3, in the ``Collecting Information on Your\n"
-"Hardware'' section) for hints on retrieving the parameters required from\n"
-"hardware documentation, from the manufacturer's web site (if you have\n"
-"Internet access) or from MicrosoftWindows (if you used this hardware with\n"
-"Windows on your system)."
-msgstr ""
-
-#: ../../help.pm_.c:784
-msgid ""
-"You can add additional entries for yaboot, either for other operating\n"
-"systems, alternate kernels, or for an emergency boot image.\n"
-"\n"
-"For other OSs, the entry consists only of a label and the \"root\"\n"
-"partition.\n"
-"\n"
-"For Linux, there are a few possible options:\n"
-"\n"
-" * Label: this is simply the name you will have to type at the yaboot "
-"prompt\n"
-"to select this boot option;\n"
-"\n"
-" * Image: this would be the name of the kernel to boot. Typically, vmlinux\n"
-"or a variation of vmlinux with an extension;\n"
-"\n"
-" * Root: the \"root\" device or ``/'' for your Linux installation;\n"
-"\n"
-" * Append: on Apple hardware, the kernel append option is used quite often\n"
-"to assist in initializing video hardware, or to enable keyboard mouse\n"
-"button emulation for the often lacking 2nd and 3rd mouse buttons on a stock\n"
-"Apple mouse. The following are some examples:\n"
-"\n"
-" video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111 "
-"hda=autotune\n"
-"\n"
-" video=atyfb:vmode:12,cmode:24 adb_buttons=103,111\n"
-"\n"
-" * Initrd: this option can be used either to load initial modules, before\n"
-"the boot device is available, or to load a ramdisk image for an emergency\n"
-"boot situation;\n"
-"\n"
-" * Initrd-size: the default ramdisk size is generally 4,096 bytes. If you\n"
-"need to allocate a large ramdisk, this option can be used;\n"
-"\n"
-" * Read-write: normally the \"root\" partition is initially brought up in\n"
-"read-only, to allow a file system check before the system becomes ``live''.\n"
-"Here, you can override this option;\n"
-"\n"
-" * NoVideo: should the Apple video hardware prove to be exceptionally\n"
-"problematic, you can select this option to boot in ``novideo'' mode, with\n"
-"native frame buffer support;\n"
-"\n"
-" * Default: selects this entry as being the default Linux selection,\n"
-"selectable by just pressing ENTER at the yaboot prompt. This entry will\n"
-"also be highlighted with a ``*'', if you press [Tab] to see the boot\n"
-"selections."
-msgstr ""
-
-#: ../../help.pm_.c:830
-msgid ""
-"Yaboot is a bootloader for NewWorld MacIntosh hardware. It is able to boot\n"
-"either GNU/Linux, MacOS or MacOSX if present on your computer. Normally,\n"
-"these other operating systems are correctly detected and installed. If this\n"
-"is not the case, you can add an entry by hand in this screen. Be careful to\n"
-"choose the correct parameters.\n"
-"\n"
-"Yaboot's main options are:\n"
-"\n"
-" * Init Message: a simple text message displayed before the boot prompt;\n"
-"\n"
-" * Boot Device: indicates where you want to place the information required\n"
-"to boot to GNU/Linux. Generally, you set up a bootstrap partition earlier\n"
-"to hold this information;\n"
-"\n"
-" * Open Firmware Delay: unlike LILO, there are two delays available with\n"
-"yaboot. The first delay is measured in seconds and at this point, you can\n"
-"choose between CD, OF boot, MacOS or Linux;\n"
-"\n"
-" * Kernel Boot Timeout: this timeout is similar to the LILO boot delay.\n"
-"After selecting Linux, you will have this delay in 0.1 second before your\n"
-"default kernel description is selected;\n"
-"\n"
-" * Enable CD Boot?: checking this option allows you to choose ``C'' for CD\n"
-"at the first boot prompt;\n"
-"\n"
-" * Enable OF Boot?: checking this option allows you to choose ``N'' for "
-"Open\n"
-"Firmware at the first boot prompt;\n"
-"\n"
-" * Default OS: you can select which OS will boot by default when the Open\n"
-"Firmware Delay expires."
-msgstr ""
-
-#: ../../help.pm_.c:862
-msgid ""
-"Here are presented various parameters concerning your machine. Depending on\n"
-"your installed hardware, you may or not, see the following entries:\n"
-"\n"
-" * \"Mouse\": check the current mouse configuration and click on the button\n"
-"to change it if necessary;\n"
-"\n"
-" * \"Keyboard\": check the current keyboard map configuration and click on\n"
-"the button to change that if necessary;\n"
-"\n"
-" * \"Timezone\": DrakX, by default, guesses your time zone from the "
-"language\n"
-"you have chosen. But here again, as for the choice of a keyboard, you may\n"
-"not be in the country for which the chosen language should correspond.\n"
-"Hence, you may need to click on the \"Timezone\" button in order to\n"
-"configure the clock according to the time zone you are in;\n"
-"\n"
-" * \"Printer\": clicking on the \"No Printer\" button will open the printer\n"
-"configuration wizard;\n"
-"\n"
-" * \"Sound card\": if a sound card is detected on your system, it is\n"
-"displayed here. No modification possible at installation time;\n"
-"\n"
-" * \"TV card\": if a TV card is detected on your system, it is displayed\n"
-"here. No modification possible at installation time;\n"
-"\n"
-" * \"ISDN card\": if an ISDN card is detected on your system, it is\n"
-"displayed here. You can click on the button to change the parameters\n"
-"associated with it."
-msgstr ""
-
-#: ../../help.pm_.c:891
-msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandrake Linux partition. Be careful, all data present on it will be lost\n"
-"and will not be recoverable!"
-msgstr ""
-"Čēįåšåņå ņāśšäč˙ äčńź, źīéņī čńźąņå äą čēņšåņå, ēą äą\n"
-"čķńņąėčšąģ ķīāč˙ āč Mandrake Linux ä˙ė. Āķčģąķčå, āńč÷źč äąķķč ķą ķåćī łå "
-"įśäąņ ēąćóįåķč\n"
-"č ķ˙ģą äą ģīćąņ äą ńå āśēńņąķīā˙ņ."
-
-#: ../../help.pm_.c:896
-msgid ""
-"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"
-"any Windows data.\n"
-"\n"
-"Click on \"Cancel\" to cancel this operation without losing any data and\n"
-"partitions present on this hard drive."
-msgstr ""
-"Öśźķåņå \"OK\", ąźī čńźąņå äą čēņščåņå āńč÷źč äąķķč č\n"
-"ä˙ėīāå ńśłåńņāóāąłč ķą ņīēč ņāśšä äčńź. Āķčģąķčå, ńėåä öśźąķå ķą \"OK\", "
-"ķ˙ģąäą ģīęåņå äą āśēńņąķīāčņå źąźāčņī č äą įčėī äąķķč č ä˙ėīāå ńśłåńņāóāąłč "
-"ķą ņīēč ņāśšä äčńź,\n"
-"āźėž÷čņåėķī źąźāčņī č äą å Windows äąķķč.\n"
-"\n"
-"Öśźķåņå \"Īņģ˙ķą\", ēą äą īņģåķčņå ņąēč īļåšąöč˙ įåē ēąćóįą äą äąķķčņå č\n"
-"ä˙ėīāåņå ńśłåńņāóāąłč ķą ņīēč ņāśšä äčńź."
-
-#: ../../install2.pm_.c:113
-#, c-format
-msgid ""
-"Can't 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 ""
-
-#: ../../install2.pm_.c:169
-#, c-format
-msgid "You must also format %s"
-msgstr ""
-
-#: ../../install_any.pm_.c:411
-#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They don't have any known security\n"
-"issues, but some new could be found. In that case, you must make sure to "
-"upgrade\n"
-"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"
-
-#: ../../install_any.pm_.c:447
-msgid "Can't use broadcast with no NIS domain"
-msgstr "Ķå ģīęåņå äą čēļīėēāąņå broadcast įåē NIS äīģåéķ"
-
-#: ../../install_any.pm_.c:793
-#, c-format
-msgid "Insert a FAT formatted floppy in drive %s"
-msgstr "Ńėīęåņå FAT ōīšģąņčšąķą äčńźåņą ā óńņšīéńņāī %s"
-
-#: ../../install_any.pm_.c:797
-msgid "This floppy is not FAT formatted"
-msgstr "Ņąēč äčńźåņą ķå å ōīšģąņčšąķą ķą FAT"
-
-#: ../../install_any.pm_.c:809
-msgid ""
-"To use this saved packages selection, boot installation with ``linux "
-"defcfg=floppy''"
-msgstr ""
-"Ēą äą čēļīėēāąņå ēąļąēåķ čēįīš ķą ļąźåņč, ńņąšņčšąéņå čķńņąėąöč˙ņą ń ``linux "
-"defcfg=floppy''"
-
-#: ../../install_any.pm_.c:831 ../../partition_table.pm_.c:763
-#, c-format
-msgid "Error reading file %s"
-msgstr "Ćšåųźą ļšč ÷åņåķåņī ķą ōąéėą %s"
-
-#: ../../install_interactive.pm_.c:23
-#, 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"
-
-#: ../../install_interactive.pm_.c:58
-msgid ""
-"You must have a root partition.\n"
-"For this, create a partition (or click on an existing one).\n"
-"Then choose action ``Mount point'' and set it to `/'"
-msgstr ""
-"Ņš˙įāą äą čģąņå root-ä˙ė.\n"
-"Ēąņīāą ńśēäąéņå ä˙ė (čėč öśźķåņå ķą ńśłåńņāóāął).\n"
-"Ņīćąāą čēįåšåņå äåéńņāčå ``Ģ˙ńņī ķą ģīķņčšąķå'' č ćī ńėīęåņå `/'"
-
-#: ../../install_interactive.pm_.c:63
-msgid "You must have a swap partition"
-msgstr "Ņš˙įāą äą čģąņå swap-ä˙ė"
-
-#: ../../install_interactive.pm_.c:64
-msgid ""
-"You don't have a swap partition\n"
-"\n"
-"Continue anyway?"
-msgstr ""
-"Ķ˙ģąņå swap-ä˙ė\n"
-"\n"
-"Äą ļšīäśėęą ėč āńå ļąź ?"
-
-#: ../../install_interactive.pm_.c:67 ../../install_steps.pm_.c:163
-msgid "You must have a FAT partition mounted in /boot/efi"
-msgstr "Ņš˙įāą äą čģąņå FAT ä˙ė ģīķņčšąķ ā /boot/efi"
-
-#: ../../install_interactive.pm_.c:90
-msgid "Use free space"
-msgstr "Čēļīėēāąé ńāīįīäķīņī ģ˙ńņī"
-
-#: ../../install_interactive.pm_.c:92
-msgid "Not enough free space to allocate new partitions"
-msgstr "Ķ˙ģą äīńņąņś÷ķī ģ˙ńņī ēą ńśēäąāąķå ķą ķīā ä˙ė"
-
-#: ../../install_interactive.pm_.c:100
-msgid "Use existing partition"
-msgstr "Čēļīēāąķå ķą ńśłåńņāóāął ä˙ė"
-
-#: ../../install_interactive.pm_.c:102
-msgid "There is no existing partition to use"
-msgstr "Ķ˙ģą ä˙ė, źīéņī ģīćą äą čēļīėēāąģ"
-
-#: ../../install_interactive.pm_.c:109
-msgid "Use the Windows partition for loopback"
-msgstr "Čēļīėēāąé ēą Windows ä˙ėśņ ēą loopback"
-
-#: ../../install_interactive.pm_.c:112
-msgid "Which partition do you want to use for Linux4Win?"
-msgstr "Źīé ä˙ė čńźąņå äą čēļīėēāąņå ēą Linux4Win ?"
-
-#: ../../install_interactive.pm_.c:114
-msgid "Choose the sizes"
-msgstr "Čēįåšåņå ćīėåģčķčņå"
-
-#: ../../install_interactive.pm_.c:115
-msgid "Root partition size in MB: "
-msgstr "Ćīėåģčķą ķą root-ä˙ėą ā MB: "
-
-#: ../../install_interactive.pm_.c:116
-msgid "Swap partition size in MB: "
-msgstr "Ćīėåģčķą ķą swap-ä˙ėą ā MB: "
-
-#: ../../install_interactive.pm_.c:125
-msgid "Use the free space on the Windows partition"
-msgstr "Čēļīėēāąé ńāīįīäķīņī ģ˙ńņī ķą Windows ä˙ėą"
-
-#: ../../install_interactive.pm_.c:128
-msgid "Which partition do you want to resize?"
-msgstr "Źīé ä˙ė ęåėąåņå äą ļšīģåķčņå?"
-
-#: ../../install_interactive.pm_.c:130
-msgid "Computing Windows filesystem bounds"
-msgstr "Čē÷čńė˙āąģ ćšąķčöčņå ķą Windows ōąéėīāąņą ńčńņåģą"
-
-#: ../../install_interactive.pm_.c:133
-#, c-format
-msgid ""
-"The FAT resizer is unable to handle your partition, \n"
-"the following error occured: %s"
-msgstr ""
-"Ķå āśēģīęķīńņ ēą šąįīņą ń āąųč˙ FAT ä˙ė, \n"
-"ļīšąäč ļīėó÷åķąņą ćšåųźą: %s"
-
-#: ../../install_interactive.pm_.c:136
-msgid "Your Windows partition is too fragmented, please run ``defrag'' first"
-msgstr ""
-"Āąųč˙ņ Windows ä˙ė å ģķīćī ōšąćģåķņčšąķ, ģīė˙ ļśšāī ńņąšņčšąéņå ''defrag''"
-
-#: ../../install_interactive.pm_.c:137
-#, fuzzy
-msgid ""
-"WARNING!\n"
-"\n"
-"DrakX will now resize your Windows partition. Be careful:\n"
-"this operation is dangerous. If you have not already done\n"
-"so, you should first exit the installation, run scandisk\n"
-"under Windows (and optionally run defrag), then restart the\n"
-"installation. You should also backup your data.\n"
-"When sure, press Ok."
-msgstr ""
-"ĀĶČĢĄĶČÅ!\n"
-"\n"
-"DrakX ņš˙įāą äą ļšåšąēäåėč Āąųč˙ Windows ä˙ė. Įśäåņå āķčģąņåėķč: ņąēč "
-"īļåšąöč˙ å\n"
-"īļąńķą. Ąźī īłå ķå ńņå ćī ķąļšąāčėč, ņš˙įāą ļśšāī äą ļóńķåņå scandisk (č\n"
-"åāåķņóąėķī äą čēļīėēāąņå defrag) ļīä Windows āśšõó ņīēč ä˙ė, ņīćąāą \n"
-"ļīāņīšåņå čķńņąėąöčą˙ņą. Įč įčėī äīįšå äą ķąļšąāčņå ąšõčā ķą äąķķčņå ńč.\n"
-"Źīćąņī ńņå ńčćóšķč, ķąņčńķåņå ĪŹ."
-
-#: ../../install_interactive.pm_.c:147
-msgid "Which size do you want to keep for windows on"
-msgstr "Źīėźī čńźąņå äą īńņąāčņå ēą windows?"
-
-#: ../../install_interactive.pm_.c:148
-#, c-format
-msgid "partition %s"
-msgstr "ä˙ė %s"
-
-#: ../../install_interactive.pm_.c:155
-#, c-format
-msgid "FAT resizing failed: %s"
-msgstr "Ķåóńļåųķī ļšåšąēäåė˙ķå ķą FAT: %s"
-
-#: ../../install_interactive.pm_.c:170
-msgid ""
-"There is no FAT partitions to resize or to use as loopback (or not enough "
-"space left)"
-msgstr ""
-"Ķ˙ģą FAT ä˙ėīāå ēą ńģ˙ķą ķą ćīėåģčķąņą čėč ēą čēļīėēāąķå źąņī loopback (čėč "
-"ķ˙ģą äīńņąņś÷ķī ģ˙ńņī ķą äčńźą)"
-
-#: ../../install_interactive.pm_.c:176
-msgid "Erase entire disk"
-msgstr "Čēņščé öåėč˙ äčńź"
-
-#: ../../install_interactive.pm_.c:176
-msgid "Remove Windows(TM)"
-msgstr "Ļšåģąõķč Windows(TM)"
-
-#: ../../install_interactive.pm_.c:179
-msgid "You have more than one hard drive, which one do you install linux on?"
-msgstr "čģąņå ļīāå÷å īņ åäčķ ņāśšäč äčńźīāå, źīé äą čēļīėēāąģ ēą čķńņąėąöč˙ņą?"
-
-#: ../../install_interactive.pm_.c:182
-#, c-format
-msgid "ALL existing partitions and their data will be lost on drive %s"
-msgstr "ĀŃČ×ŹČ ńśłåńņāóāąłč ä˙ėīāå č äąķķčņe āśšõó ņ˙õ ķą %s łå įśäąņ ēąćóįåķč"
-
-#: ../../install_interactive.pm_.c:190
-msgid "Custom disk partitioning"
-msgstr "Źėčåķņńźī šąēäåė˙ķå ķą äčńźą"
-
-#: ../../install_interactive.pm_.c:194
-msgid "Use fdisk"
-msgstr "Čēļīėēāąé fdisk"
-
-#: ../../install_interactive.pm_.c:197
-#, c-format
-msgid ""
-"You can now partition %s.\n"
-"When you are done, don't forget to save using `w'"
-msgstr ""
-"Ńåćą ģīęåņå äą šąēäåėčņå %s.\n"
-"Źīćąņī ńņå ćīņīāč, ķå ēąįšąā˙éņå äą ēąļčųåņå čēļīėēāąéźč `w'"
-
-#: ../../install_interactive.pm_.c:226
-msgid "You don't have enough free space on your Windows partition"
-msgstr "Ķ˙ģą äīńņąņś÷ķī ńāīįīäķī ģ˙ńņī ķą ä˙ėą"
-
-#: ../../install_interactive.pm_.c:242
-msgid "I can't find any room for installing"
-msgstr "Ķå ģīćą äą ķąģåš˙ ķčźąźāī ģ˙ńņī ēą čķńņąėąöč˙"
-
-#: ../../install_interactive.pm_.c:246
-msgid "The DrakX Partitioning wizard found the following solutions:"
-msgstr "Ļīģīłķčźśņ ēą šąēäåėčķå ķą ä˙ėīāå ķą DrakX ķąģåšč ńėåäķčņå šåųåķč˙:"
-
-#: ../../install_interactive.pm_.c:251
-#, c-format
-msgid "Partitioning failed: %s"
-msgstr "Ķåóńļåųķī šąēäåė˙ķå ķą: %s"
-
-#: ../../install_interactive.pm_.c:261
-msgid "Bringing up the network"
-msgstr "Āźėž÷āąģ ģšåęąņą"
-
-#: ../../install_interactive.pm_.c:266
-msgid "Bringing down the network"
-msgstr "Čēźėž÷āąķå ķą ģšåęąņą"
-
-#: ../../install_steps.pm_.c:76
-msgid ""
-"An error occurred, but I don't know how to handle it nicely.\n"
-"Continue at your own risk."
-msgstr ""
-"Ļī˙āč ńå ćšåųźą, ķī ķå ēķąģ źąź äą ńå ńļšąā˙ ń ķå˙ äåėčźąņķī.\n"
-"Ģīęåņå äą ļšīäśėęčņå ķą ńāīé ščńź."
-
-#: ../../install_steps.pm_.c:205
-#, c-format
-msgid "Duplicate mount point %s"
-msgstr "Äóįėčšąé ņī÷źąņą ķą ģīķņčšąķå %s"
-
-#: ../../install_steps.pm_.c:388
-msgid ""
-"Some important packages didn't get installed properly.\n"
-"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl Mandrake/RPMS/*.rpm"
-"\"\n"
-msgstr ""
-"Ķ˙źīč āąęķč ļąźåņč ķå ńå čķńņąėčšąõą źąźņī ņš˙įāą.\n"
-"Čėč CDROM óńņšīéńņāīņī āč čėč źīģļąźņ äčńźą āč å äåōåźņåķ.\n"
-"Ļšīāåšåņå źīģļąźņ äčńźą ķą čķńņąėčšąķč˙ źīģļžņśš čēļīėēāąéźč \"rpm -qpl "
-"Mandrake/RPMS/*.rpm\"\n"
-
-#: ../../install_steps.pm_.c:458
-#, c-format
-msgid "Welcome to %s"
-msgstr "Äīįšå äīųėč ā %s"
-
-#: ../../install_steps.pm_.c:513 ../../install_steps.pm_.c:755
-msgid "No floppy drive available"
-msgstr "Ķ˙ģą ōėīļč óńņšīéńņāī"
-
-#: ../../install_steps_auto_install.pm_.c:76
-#: ../../install_steps_stdio.pm_.c:22
-#, c-format
-msgid "Entering step `%s'\n"
-msgstr "Ķąāėčēąģ ā åņąļ `%s'\n"
-
-#: ../../install_steps_gtk.pm_.c:148
-msgid ""
-"Your system is low on resource. You may have some problem installing\n"
-"Mandrake Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
-"press `F1' when booting on CDROM, then enter `text'."
-msgstr ""
-"Āąųąņą ńčńņåģą å ń ģąėźč šåńóšńč. Ģīęå äą čģąņå ļšīįėåģč ń čķńņąėčšąķåņī\n"
-"ķą Mandrake Linux. Ąźī ńå ļī˙āč ļšīįėåģ īļčņąéņå ń ņåźńņīāąņą čķńąėąöč˙. "
-"Ēąöåėņą,\n"
-"ķąņčńķåņå 'F1', źīćąņī ńņąšņčšąņå īņ CDROM č āśāåäåņå 'ņåüņ'."
-
-#: ../../install_steps_gtk.pm_.c:159 ../../install_steps_interactive.pm_.c:224
-msgid "Install Class"
-msgstr "Źėąń čķńņąėąöč˙"
-
-#: ../../install_steps_gtk.pm_.c:162
-#, fuzzy
-msgid "Please choose one of the following classes of installation:"
-msgstr "Ģīė˙, čēįåšåņå åäčķ īņ ńėåäķčņå źėąńīāå ķą čķńņąėąöč˙:"
-
-#: ../../install_steps_gtk.pm_.c:228
-#, c-format
-msgid ""
-"The total size for the groups you have selected is approximately %d MB.\n"
-msgstr "Īįłąņą ćīėåģčķą ķą ćšóļčņå, źīčņī ńņå ģąšźčšąėč, å īźīėī %d MB.\n"
-
-#: ../../install_steps_gtk.pm_.c:230
-#, c-format
-msgid ""
-"If you wish to install less than this size,\n"
-"select the percentage of packages that you want to install.\n"
-"\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of 100%% will install all selected packages."
-msgstr ""
-"Ąźī čńźąņå äą čķńņąėčšąņå ļī-ģąėźī īņ ņąēč ćīėåģčķą,\n"
-"čēįåšåņå ļšīöåķņ ļąźåņč, źīčņī čńźąņå äą čķńņąėčšąņå.\n"
-"\n"
-"Ļšč ķčńśź ļšīöåķņ łå ńå čķńņąėčšąņ ńąģī ķąé-āąęķčņå ļąźåņč;\n"
-"ļšč 100%% łå čķńņąėčšąņ āńč÷źč ģąšźčšąķč ļąźåņč."
-
-#: ../../install_steps_gtk.pm_.c:235
-#, c-format
-msgid ""
-"You have space on your disk for only %d%% of these packages.\n"
-"\n"
-"If you wish to install less than this,\n"
-"select the percentage of packages that you want to install.\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of %d%% will install as many packages as possible."
-msgstr ""
-"Čģąņå ģ˙ńņī ķą äčńźą ńč ńąģī ēą %d%% īņ ņåēč ļąźåņč.\n"
-"\n"
-"Ąźī čńźąņå äą čķńņąėčšąņå ļī-ģąėźī īņ ņīāą,\n"
-"čēįåšåņå ļšīöåķņ īņ ļąźåņčņå, źīčņī čķńźąņå äą čķńņąėčšąņå.\n"
-"Ļšč ķčńśź ļšīöåķņ łå ńå čķńņąėčšąņ ńąģī ķąé-āąęķčņå ļąźåņč;\n"
-"ļšč %d%% łå čķńņąėčšąņ āńč÷źč čēįšąķč ļąźåņč."
-
-#: ../../install_steps_gtk.pm_.c:241
-msgid "You will be able to choose them more specifically in the next step."
-msgstr "Łå čģąņå āśēģīęķīńņņą äą čēįåšåņå ļī-ņī÷ķī ļšč ńėåäāąłč˙ åņąļ."
-
-#: ../../install_steps_gtk.pm_.c:243
-msgid "Percentage of packages to install"
-msgstr "Ļšīöåķņ ļąźåņč ēą čķńņąėčšąķå"
-
-#: ../../install_steps_gtk.pm_.c:291 ../../install_steps_interactive.pm_.c:705
-msgid "Package Group Selection"
-msgstr "Čēįīš ķą ćšóļą ļąźåņč"
-
-#: ../../install_steps_gtk.pm_.c:323 ../../install_steps_interactive.pm_.c:720
-msgid "Individual package selection"
-msgstr "Čēįčšąķå ķą ļąźåņč åäčķ ļī åäčķ"
-
-#: ../../install_steps_gtk.pm_.c:346 ../../install_steps_interactive.pm_.c:645
-#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Īįłą ćīėåģčķą: %d / %d MB"
-
-#: ../../install_steps_gtk.pm_.c:391
-msgid "Bad package"
-msgstr "Ėīų ļąźåņ"
-
-#: ../../install_steps_gtk.pm_.c:392
-#, c-format
-msgid "Name: %s\n"
-msgstr "Čģå: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:393
-#, c-format
-msgid "Version: %s\n"
-msgstr "Āåšńč˙: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:394
-#, c-format
-msgid "Size: %d KB\n"
-msgstr "Ćīėåģčķą: %d KB\n"
-
-#: ../../install_steps_gtk.pm_.c:395
-#, c-format
-msgid "Importance: %s\n"
-msgstr "Āąęķīńņ: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:417
-msgid ""
-"You can't select this package as there is not enough space left to install it"
-msgstr ""
-"Ķå ģīęåņå äą īńņąāčņå ļąźåņą ķåģąšźčšąķ, ēąłīņī ķ˙ģąņå ģ˙ńņī äą ćī "
-"čķńņąėčšąņå"
-
-#: ../../install_steps_gtk.pm_.c:422
-msgid "The following packages are going to be installed"
-msgstr "Ńėåäķčņå ļąźåņč łå įśäąņ čķńņąėčšąķč"
-
-#: ../../install_steps_gtk.pm_.c:423
-msgid "The following packages are going to be removed"
-msgstr "Ńėåäķčņå ļąźåņč łå įśäąņ ļšåģąõķąņč"
-
-#: ../../install_steps_gtk.pm_.c:435
-msgid "You can't select/unselect this package"
-msgstr "Ķå ģīęåņå äą īņįåėåęåņå/äåīņįåėåęåņå ņīēč ļąźåņ"
-
-#: ../../install_steps_gtk.pm_.c:447
-msgid "This is a mandatory package, it can't be unselected"
-msgstr "Ņīāą å ķóęåķ ļąźåņ, ķå ģīęå äą įśäå ķåģąšźčšąķ"
-
-#: ../../install_steps_gtk.pm_.c:449
-msgid "You can't unselect this package. It is already installed"
-msgstr "Ķå ģīęåņå äą īńņąāčņå ņīēč ļąźåņ ķåģąšźčšąķ. Ņīé āå÷å å čķńņąėčšąķ"
-
-#: ../../install_steps_gtk.pm_.c:453
-msgid ""
-"This package must be upgraded\n"
-"Are you sure you want to deselect it?"
-msgstr ""
-"Ņīēč ļąźåņ ņš˙įāą äą įśäå īįķīāåķ\n"
-"Ńčćóšķč ėč ńņå, ÷å čńźąņå äą ćī čēźėž÷čņå ?"
-
-#: ../../install_steps_gtk.pm_.c:457
-msgid "You can't unselect this package. It must be upgraded"
-msgstr "Ķå ģīęåņå äą čēźėž÷čņå ņīēč ļąźåņ. Ņīé ņš˙įāą äą įśäå īįķīāåķ"
-
-#: ../../install_steps_gtk.pm_.c:462
-msgid "Show automatically selected packages"
-msgstr "Ļīźąęč ąāņīģąņč÷ķī īņįåė˙ēąķčņå ļąźåņč"
-
-#: ../../install_steps_gtk.pm_.c:463 ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Install"
-msgstr "Čķńņąėčšąé"
-
-#: ../../install_steps_gtk.pm_.c:466
-msgid "Load/Save on floppy"
-msgstr "Ēąšåäč/Ēąļąēč ķą äčńźåņą"
-
-#: ../../install_steps_gtk.pm_.c:467
-msgid "Updating package selection"
-msgstr "Īįķīā˙āąķå ķą čēįīšą ķą ļąźåņč"
-
-#: ../../install_steps_gtk.pm_.c:472
-msgid "Minimal install"
-msgstr "Ģčģčķąėķą čķńņąėąöč˙"
-
-#: ../../install_steps_gtk.pm_.c:487 ../../install_steps_interactive.pm_.c:555
-msgid "Choose the packages you want to install"
-msgstr "Čēįåšåņå ļąźåņčņå, źīčņī čńźąņå äą čķńņąėčšąņå"
-
-#: ../../install_steps_gtk.pm_.c:503 ../../install_steps_interactive.pm_.c:787
-msgid "Installing"
-msgstr "Čķńņąėčšąģ"
-
-#: ../../install_steps_gtk.pm_.c:509
-msgid "Estimating"
-msgstr "Ļšåńģ˙ņąķå"
-
-#: ../../install_steps_gtk.pm_.c:516
-msgid "Time remaining "
-msgstr "Īńņąāąłī āšåģå "
-
-#: ../../install_steps_gtk.pm_.c:528
-msgid "Please wait, preparing installation"
-msgstr "Ģīė˙, čē÷ąźąéņå, ļīäćīņā˙ķå ķą čķńņąėąöč˙ņą"
-
-#: ../../install_steps_gtk.pm_.c:611
-#, c-format
-msgid "%d packages"
-msgstr "%d ļąźåņą"
-
-#: ../../install_steps_gtk.pm_.c:616
-#, c-format
-msgid "Installing package %s"
-msgstr "Čķńņąėčšąķå ķą ļąźåņą %s"
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-#: ../../standalone/drakautoinst_.c:203
-msgid "Accept"
-msgstr "Ļščåģč"
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-msgid "Refuse"
-msgstr "Īņźąęč"
-
-#: ../../install_steps_gtk.pm_.c:658 ../../install_steps_interactive.pm_.c:812
-#, c-format
-msgid ""
-"Change your Cd-Rom!\n"
-"\n"
-"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
-"done.\n"
-"If you don't have it, press Cancel to avoid installation from this Cd-Rom."
-msgstr ""
-"Ńģåķåņå CD-ROM !\n"
-"\n"
-"Ģīė˙, ńėīęåņå CD-ROM īēąćėąāåķ \"%s\" ā óńņšīéńņāīņī č ķąņčńķåņå Ok, źīćąņī "
-"ńņå ćīņīāč.\n"
-"Ąźī ćī ķ˙ģąņå, ķąņčńķåņå Īņģ˙ķą, ēą äą čēįåćķåņå čķńņąėčšąķåņī īņ ņīēč CD-"
-"ROM."
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_gtk.pm_.c:676
-#: ../../install_steps_interactive.pm_.c:824
-#: ../../install_steps_interactive.pm_.c:828
-msgid "Go on anyway?"
-msgstr "Äą ļšīäśėęą ėč āńå ļąź ?"
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_interactive.pm_.c:824
-msgid "There was an error ordering packages:"
-msgstr "Ļī˙āč ńå ćšåųźą ļšč ļīšś÷āąķåņī ķą ļąźåņčņå:"
-
-#: ../../install_steps_gtk.pm_.c:676 ../../install_steps_interactive.pm_.c:828
-msgid "There was an error installing packages:"
-msgstr "Ļī˙āč ńå ćšåųźą ļšč čķńņąėčšąķå ķą ļąźåņčņå:"
-
-#: ../../install_steps_interactive.pm_.c:10
-msgid ""
-"\n"
-"Warning\n"
-"\n"
-"Please read carefully the terms below. If you disagree with any\n"
-"portion, you are not allowed to install the next CD media. Press 'Refuse' \n"
-"to continue the installation without using these media.\n"
-"\n"
-"\n"
-"Some components contained in the next CD media are not governed\n"
-"by the GPL License or similar agreements. Each such component is then\n"
-"governed by the terms and conditions of its own specific license. \n"
-"Please read carefully and comply with such specific licenses before \n"
-"you use or redistribute the said components. \n"
-"Such licenses will in general prevent the transfer, duplication \n"
-"(except for backup purposes), redistribution, reverse engineering, \n"
-"de-assembly, de-compilation or modification of the component. \n"
-"Any breach of agreement will immediately terminate your rights under \n"
-"the specific license. Unless the specific license terms grant you such\n"
-"rights, you usually cannot install the programs on more than one\n"
-"system, or adapt it to be used on a network. In doubt, please contact \n"
-"directly the distributor or editor of the component. \n"
-"Transfer to third parties or copying of such components including the \n"
-"documentation is usually forbidden.\n"
-"\n"
-"\n"
-"All rights to the components of the next CD media belong to their \n"
-"respective authors and are protected by intellectual property and \n"
-"copyright laws applicable to software programs.\n"
-msgstr ""
-"\n"
-"Āķčģąķčå\n"
-"\n"
-"Ģīė˙, ļšī÷åņåņå óńėīāč˙ņą ļī-äīėó. Ąźī ķå ńņå ńśćėąńķč ń ķ˙źīå īņ ņ˙õ,\n"
-"ķå ģīęåņå äą ļšīäśėęčņå čķńņąėąöč˙ņą ķą ńėåäāąłč˙ CD ķīńčņåė. Ķąņčńķåņå\n"
-"'Īņźąęč', ēą äą ļšīäśėęčņå čķńņąėąöč˙ņą įåē ņåēč ķīńčņåėč.\n"
-"\n"
-"\n"
-"Ķ˙źīč źīģļīķåķņč ńśäśšęąłč ńå ā ńėåäāąłč˙ CD ķīńčņåė ķå ńą šąēļšīńņšąķ˙āąņ\n"
-"ļīä GPL Ėčöåķēą čėč ļīäīįåķ ņąźśā. Āńåźč ņąźśā źīģļīķåķņ å ļīä óńėīāč˙ņą\n"
-"č ļīėīęåķč˙ņą ķą ńļåöčōč÷ķč˙ ģó ėčöåķē. Ģīė˙, ļšī÷åņåņå āķčģąņåėķī č čēö˙ėī\n"
-"ņåēč ńļåöčōč÷ķč ėčöåķēč ļšåäč äą čēļīėēāąņå čėč šąēļšīńņšąķ˙āąņå "
-"ńļīģåķąņčņå\n"
-"źīģļīķåķņč.\n"
-"Ņąźčāą ėčöåķēč ļī ļščķöčļ ļšåäīņāšąņ˙āą ļšåķīńą, źīļčšąķåņī (īńāåķ ń öåė\n"
-"ńśõšąķåķčå), šąēļšīńņšąķ˙āąķåņī, īįšąņķč˙ čķęåķåščķć, äåąńåģįėčšąķåņī\n"
-"äåźīģļčėąöč˙ņą čėč ģīäčōčźąöč˙ņą ķą źīģļīķåķņčņå.\n"
-"Āń˙źī ķąšóųąāąķå ķą ńļīćīäįąņą ķåēąįąāķī ļšåóńņąķīā˙āą ļšąāąņą āč ļī\n"
-"ńļåöčōč÷ķč˙ ėčöåķē. Īńāåķ ąźī ńļåöčōč÷ķč˙ ėčöåķē āč äąāą ņąźčāą ļšąāą,\n"
-"īįčźķīāåķī ķå ģīęåņå äą čķńņąėčšąņå ļšīćšąģčņå ķą ļīāå÷å īņ åäķą ńčńņåģą\n"
-"čėč äą ćč ļščćąęäąņå ēą čēļīėēāąķå ā ģšåęą. Ąźī ķå ńņå ńčćóšķč, ģīė˙\n"
-"ńāśšęåņå ńå ń äčńņščįóöč˙ čėč šåäąźņīšą ķą źīģļīķåķą.\n"
-"Ļšåõāśšė˙ķåņī ķą ņšåņč ėčöą čėč źīļčšąķåņī ķą āń˙źą źīģļīķåķņą, āźėž÷čņåėķī\n"
-"ķą äīźóģåķņąöč˙ņą, īįčźķīāåķī ńą ēąįšąķåķč.\n"
-"\n"
-"\n"
-"Āńč÷źč ļšąāą ķą źīģļīķåķņčņå īņ ńėåäāąłč˙ CD ķīńčņåė ļščķąäėåęąņ ķą\n"
-"ńśīņāåņķčņå čģ ąāņīšč č ńą ēąłčņåķč źąņī čķņåėåźņóąėķą ńīįńņāåķīńņ īņ\n"
-"ēąźīķčņå ēą ąāņīšńźč ļšąāą ļščėīęčģč ēą ńīōņóåšķčņå ļšīćšąģč.\n"
-
-#: ../../install_steps_interactive.pm_.c:67
-msgid "An error occurred"
-msgstr "Ļī˙āč ńå ćšåųźą"
-
-#: ../../install_steps_interactive.pm_.c:85
-#, fuzzy
-msgid "Do you really want to leave the installation?"
-msgstr "Ķąčńņčķą ėč čńźąņå äą ļšåģąõķåņå ļščķņåšą \"%s\" ?"
-
-#: ../../install_steps_interactive.pm_.c:108
-msgid "License agreement"
-msgstr "Ėčöåķēčīķåķ äīćīāīš"
-
-#: ../../install_steps_interactive.pm_.c:109
-msgid ""
-"Introduction\n"
-"\n"
-"The operating system and the different components available in the Mandrake "
-"Linux distribution \n"
-"shall be called the \"Software Products\" hereafter. The Software Products "
-"include, but are not \n"
-"restricted to, the set of programs, methods, rules and documentation related "
-"to the operating \n"
-"system and the different components of the Mandrake Linux distribution.\n"
-"\n"
-"\n"
-"1. License Agreement\n"
-"\n"
-"Please read carefully this document. This document is a license agreement "
-"between you and \n"
-"MandrakeSoft S.A. which applies to the Software Products.\n"
-"By installing, duplicating or using the Software Products in any manner, you "
-"explicitly \n"
-"accept and fully agree to conform to the terms and conditions of this "
-"License. \n"
-"If you disagree with any portion of the License, you are not allowed to "
-"install, duplicate or use \n"
-"the Software Products. \n"
-"Any attempt to install, duplicate or use the Software Products in a manner "
-"which does not comply \n"
-"with the terms and conditions of this License is void and will terminate "
-"your rights under this \n"
-"License. Upon termination of the License, you must immediately destroy all "
-"copies of the \n"
-"Software Products.\n"
-"\n"
-"\n"
-"2. Limited Warranty\n"
-"\n"
-"The Software Products and attached documentation are provided \"as is\", "
-"with no warranty, to the \n"
-"extent permitted by law.\n"
-"MandrakeSoft S.A. will, in no circumstances and to the extent permitted by "
-"law, be liable for any special,\n"
-"incidental, direct or indirect damages whatsoever (including without "
-"limitation damages for loss of \n"
-"business, interruption of business, financial loss, legal fees and penalties "
-"resulting from a court \n"
-"judgment, or any other consequential loss) arising out of the use or "
-"inability to use the Software \n"
-"Products, even if MandrakeSoft S.A. has been advised of the possibility or "
-"occurance of such \n"
-"damages.\n"
-"\n"
-"LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN SOME "
-"COUNTRIES\n"
-"\n"
-"To the extent permitted by law, MandrakeSoft S.A. or its distributors will, "
-"in no circumstances, be \n"
-"liable for any special, incidental, direct or indirect damages whatsoever "
-"(including without \n"
-"limitation damages for loss of business, interruption of business, financial "
-"loss, legal fees \n"
-"and penalties resulting from a court judgment, or any other consequential "
-"loss) arising out \n"
-"of the possession and use of software components or arising out of "
-"downloading software components \n"
-"from one of Mandrake Linux sites which are prohibited or restricted in some "
-"countries by local laws.\n"
-"This limited liability applies to, but is not restricted to, the strong "
-"cryptography components \n"
-"included in the Software Products.\n"
-"\n"
-"\n"
-"3. The GPL License and Related Licenses\n"
-"\n"
-"The Software Products consist of components created by different persons or "
-"entities. Most \n"
-"of these components are governed under the terms and conditions of the GNU "
-"General Public \n"
-"Licence, hereafter called \"GPL\", or of similar licenses. Most of these "
-"licenses allow you to use, \n"
-"duplicate, adapt or redistribute the components which they cover. Please "
-"read carefully the terms \n"
-"and conditions of the license agreement for each component before using any "
-"component. Any question \n"
-"on a component license should be addressed to the component author and not "
-"to MandrakeSoft.\n"
-"The programs developed by MandrakeSoft S.A. are governed by the GPL License. "
-"Documentation written \n"
-"by MandrakeSoft S.A. is governed by a specific license. Please refer to the "
-"documentation for \n"
-"further details.\n"
-"\n"
-"\n"
-"4. Intellectual Property Rights\n"
-"\n"
-"All rights to the components of the Software Products belong to their "
-"respective authors and are \n"
-"protected by intellectual property and copyright laws applicable to software "
-"programs.\n"
-"MandrakeSoft S.A. reserves its rights to modify or adapt the Software "
-"Products, as a whole or in \n"
-"parts, by all means and for all purposes.\n"
-"\"Mandrake\", \"Mandrake Linux\" and associated logos are trademarks of "
-"MandrakeSoft S.A. \n"
-"\n"
-"\n"
-"5. Governing Laws \n"
-"\n"
-"If any portion of this agreement is held void, illegal or inapplicable by a "
-"court judgment, this \n"
-"portion is excluded from this contract. You remain bound by the other "
-"applicable sections of the \n"
-"agreement.\n"
-"The terms and conditions of this License are governed by the Laws of "
-"France.\n"
-"All disputes on the terms of this license will preferably be settled out of "
-"court. As a last \n"
-"resort, the dispute will be referred to the appropriate Courts of Law of "
-"Paris - France.\n"
-"For any question on this document, please contact MandrakeSoft S.A. \n"
-msgstr ""
-"Āśāåäåņķčå\n"
-"\n"
-"Īļåšąöčīķķąņą ńčńņåģą č šąēėč÷ķčņå źīģļīķåķņč äīńņśļķč ā Mandrake Linux "
-"äčńņščįóöč˙ņą ļī-äīėó łå ńå\n"
-"ķąšč÷ąņ \"Ńīōņóåšåķ Ļšīäóźņč\". Ńīōņóåšķčņå Ļšīäóźņč āźėž÷āąņ, ķī ķå ńå "
-"īćšąķč÷ąāąņ ńąģī äī, ķąįīšą\n"
-"ļšīćšąģč, ģåņīäč, ļšąāčėą č äīźóģåķņąöč˙ īņķąń˙łą ńå äī īļåšąöčīķķąņą "
-"ńčńņåģą č šąēėč÷ķčņå\n"
-"źīģļīķåķņč ķą Mandrake Linux äčńņščįóöč˙ņą.\n"
-"\n"
-"\n"
-"1. Ėčöåķēčīķåķ äīćīāīš\n"
-"\n"
-"Ģīė˙, ļšī÷åņåņå āķčģąņåėķī ņīēč äīźóģåķņ. Ņīēč äīźóģåķņ å ėčöåķēčīķåķ "
-"äīćīāīš ģåęäó āąń č\n"
-"MandrakeSoft S.A., źīéņī ńå īņķąń˙ äī Ńīōņóåšķč˙ Ļšīäóźņ. ךåē "
-"čķńņąėčšąķåņī, źīļčšąķåņī\n"
-"čėč čēļīėēāąķåņī ķą Ńīōņóåšķč˙ Ļšīäóźņ ļī źąźśāņī č äą å ķą÷čķ āčå čēšč÷ķī "
-"ļščåģąņå č\n"
-"ķąļśėķī ńå ńśćėąń˙āąņå äą ńļąēāąņå ńšīźīāåņå č óńėīāč˙ņą ķą ņīēč Ėčöåķē.\n"
-"Ąźī ķå ńå ńśćėąń˙āąņå ń ķ˙źī˙ ÷ąńņ ķą Ėčöåķēą, ķ˙ģąņå ļšąāī äą čķńņąėčšąņå, "
-"źīļčšąņå čėč\n"
-"čēļīėēāąņå Ńīōņóåšķč˙ Ļšīäóźņ. Īļčņčņå äą ńå čķńņąėčšą, źīļčšą čėč čēļīėēāą "
-"Ńīōņóåšķč˙ Ļšīäóźņ\n"
-"ķåńśīįšąēķī ńśń ńšīźīāåņå č óńėīāč˙ņą ķą ņīēč Ėčöåķē ńå ēąįšąķ˙āąņ č ņąźčāą "
-"ļšåźšąņ˙āąņ ļšąāąņą\n"
-"āč ļī ņīēč Ėčöåķē. Ļšč ļšåźšąņ˙āąķå ķą Ėčöåķēą, ņš˙įāą ķåēąįąāķī äą "
-"óķčęņīęčņå āńč÷źč\n"
-"źīļč˙ ķą Ńīōņóåšķč˙ ėčöåķē.\n"
-"\n"
-"\n"
-"2. Īćšąķč÷åķą ćąšąķöč˙\n"
-"\n"
-"Ńīōņóåšķčņå Ļšīäóźņč č ļščėīęåķąņą äīźóģåķņąöč˙ ńå ļšåäīńņąā˙ņą \"ņąźčāą "
-"źąźāčņī ńą\", įåē ćąšąķöč˙,\n"
-"ā šąģźčņå ķą šąēšåųåķīņī īņ ēąźīķą.\n"
-"MandrakeSoft S.A., ļšč ķčźąźāč īįńņī˙ņåėńņāą č ā šąģźčņå ķą ēąźīķą, ķå å "
-"īņćīāīšķą ēą źąźāčņī äą e\n"
-"óģčųėåķč, ńėó÷ąéķč, ļšåźč čėč źīńņāåķč łåņč (āźėž÷čņåėķī ēąćóįą ķą äąķķč ēą "
-"šąįīņą, ļšåźšąņ˙āąķå ķą,\n"
-"šąįīņą, ōčķąķńīāč ēąćóįč, ēąźīķķč äąķśöč č ķąźąēąķč˙ ā šåēóėņąņ ķą ńśäåįķī "
-"šåųåķčå čėč źąźāąņī č äą å\n"
-"äšóćą ļšīčēėčēąłč īņ ņīāą ēąćóįč) ļšīčēņč÷ąłč īņ óļīņšåįąņą čėč īņ "
-"ķåāśēģīęķīńņņą äą ńå óļīņšåįč\n"
-"Ńīōņóåšķč˙ Ļšīäóźņ, äąęå ąźī MandrakeSoft S.A. äą å čēāåńņčėą ēą "
-"āśēģīęķīńņņą čėč ńėó÷āąķåņī ķą ņąźąāą ēąćóįą.\n"
-"\n"
-"ĪĆŠĄĶČ×ÅĶĄ ĪŅĆĪĀĪŠĶĪŃŅ ŃĀŚŠĒĄĶĄ Ń ĻŠČŅÅĘĄĀĄĶÅŅĪ ČĖČ ČĒĻĪĖĒĀĄĶÅŅĪ ĶĄ ĒĄĮŠĄĶÅĶ "
-"ŃĪŌŅÓÅŠ Ā ĶߏĪČ ŃŅŠĄĶČ\n"
-"\n"
-"Ā šąģźčņå ķą ēąźīķą, MandrakeSoft S.A. č ķåéķčņå äčńņščįóņīšč ķ˙ģą ļšč "
-"ķčźąźāč óńėīāč˙ äą įśäąņ\n"
-"īņćīāīšķč ēą źąźāčņī č äą įčėī óģčųėåķč, ńėó÷ąéķč, ļšåźč čėč źīńāåķč łåņč "
-"(āźėž÷čņåėķī ēąćóįą ķą äąķķč\n"
-"ēą šąįīņą, ļšåźšąņ˙āąķå ķą, šąįīņą, ōčķąķńīāč ēąćóįč, ēąźīķķč äąķśöč č "
-"ķąźąēąķč˙ ā šåēóėņąņ ķą\n"
-"ńśäåįķī šåųåķčå čėč źąźāąņī č äą å äšóćą ļšīčēėčēąłč īņ ņīāą ēąćóįč) "
-"ļšīčēņč÷ąłč īņ ļščņåęąāąķåņī\n"
-"č óļīņšåįąņą ķą ńīōņóåšķč źīģļīķåķņč č īņ čēņåćė˙ķåņī ķą ńīōņóåšķč "
-"źīģļīķåķņč īņ ńąéņīāåņå ķą Mandrake Linux,\n"
-"źīčņī ńą ēąįšąķåķč ā ķ˙źīč ńņšąķč īņ ģåńņķīņī ēąźīķīäąņåėńņāī.\n"
-"Ņąēč īćšąķč÷åķą īņćīāīšķīńņ ńå īņķąń˙ äī, ķī ķå ńąģī ēą, ģīłķčņå "
-"źščļņīćšąōńźč źīģļīķåķņč āźėž÷åķč\n"
-"ā Ńīōņóåšķč˙ Ļšīäóźņ.\n"
-"\n"
-"\n"
-"3. GPL Ėčöåķēą č ļščäšóęąāąłč ėčöåķēč\n"
-"\n"
-"Ńīōņóåšķč˙ņ Ļšīäóźņ ńå ńśńņīč īņ źīģļīķåķņč ńśēäąäåķč īņ šąēėč÷ķč õīšą čėč "
-"īšćąķčēąöčč. Ļīāå÷åņī īņ\n"
-"ņåēč źīģļīķåķņč ńå óļšąāė˙āąņ īņ ńšīźīāåņå č óńėīāč˙ņą ķą GNU Īįłč˙ Ļóįėč÷åķ "
-"Ėčöåķē, īņņóź ķąņąņśź ķąšč÷ąķ\n"
-"\"GPL\", čėč ļīäīįķč ķåģó ėčöåķēč. Ļīāå÷åņī īņ ņåēč ėčöåķēč āč ļīēāīė˙āąņ äą "
-"čēļīėēāąņå, źīļčšąņå, čėč\n"
-"šåäčńņščįóņčšąņå źīģļīķåķņčņå, źīčņī ņå ļīźščāąņ. Ģīė˙, ļšī÷åņåņå āķčģąņåėķī "
-"ńšīźīāåņå č óńėīāč˙ņą ķą\n"
-"ėčöåķēčīķķč˙ äīćīāīš ķą āńåźč źīģļīķåķņ ļšåäč äą ćī čēļīėēāąņå. Āń˙źąźāč "
-"āśļšīńč īņķīńķī ėčöåķēą\n"
-"ķą źīģļīķåķņčņå įč ņš˙įāąėī äą įśäąņ ķąńī÷åķč źśģ ńśīņāåņķč˙ čģ ąāņīš, ą ķå "
-"źśģ MandrakeSoft.\n"
-"Ļšīćšąģčņå šąēšąįīņåķč īņ MandrakeSoft S.A. ńå óļšąāė˙āąņ īņ GPL Ėčöåķēą. "
-"Äīźóģåķņąöč˙ņą ķąļčńąķą\n"
-"īņ MandrakeSoft S.A. ńå óļšąāė˙āą īņ ńļåöčąėåķ ėčöåķē. Ģīė˙, ļīćėåäķåņå "
-"äīźóģåķņąöč˙ņą ēą\n"
-"ļīāå÷å čķōīšģąöč˙.\n"
-"\n"
-"\n"
-"4. Ļšąāą ēą Čķņåėåźņóąėķą Ńīįńņāåķīńņ\n"
-"\n"
-"Āńč÷źč ļšąāą źśģ źīģļīķåķņčņå ķą Ńīōņóåšķč˙ Ļšīäóźņ ļščķąäėåęąņ ķą "
-"ńśīņāåņķčņå čģ ąāņīšč č ńą\n"
-"ēąłčņåķč īņ ēąźīķčņå ēą čķņåėåźņóąėķąņą ńīįńņāåķīńņ č ēą źīļčšąķå ļščėąćąķč "
-"ēą ńīōņóåšķčņå ļšīćšąģč.\n"
-"MandrakeSoft S.A. ēąļąēāą ļšąāīņī ńč äą ģīäčōčöčšą č ļščćīä˙āą Ńīōņóåšķč˙ "
-"Ļšīäóźņ, źąņī ö˙ėī čėč ķą\n"
-"÷ąńņč, ļī āń˙źąźśā ķą÷čģ ī ń āń˙źąźāč öåėč.\n"
-"\"Mandrake\", \"Mandrake Linux\" č ńāśšēąķčņå ėīćīņą ńą ēąļąēåķą ģąšźą ķą "
-"MandrakeSoft S.A.\n"
-"\n"
-"\n"
-"5. Óļšąāė˙āąłč Ēąźīķč\n"
-"\n"
-"Ąźī ķ˙źī˙ ÷ąńņ īņ ņīēč äīćīāīš ńå āīäč ēąįšąķåķą, ķåėåćąėķą čėč ķåļščėīęčģą "
-"ńļīšåä šåųåķčå ķą ńśä,\n"
-"ņąēč ÷ąńņ ńå čēźėž÷āą īņ äīćīāīšą. Āčå īńņąāąņå īćšąķč÷åķč īņ īńņąķąėčņå "
-"ļščėīęčģč ńåźöčč ķą äīćīāīšą.\n"
-"Ńšīźīāåņå č óńėīāč˙ņą ķą ņīēč Ėčöåķē ńå óļšąāė˙āąņ īņ Ēąźīķčņå ķą Ōšąķöč˙.\n"
-"Āńč÷źč ńļīšīāå ļī óńėīāč˙ņą ķą ņīēč ėčöåē įč įčėī äīįšå äą ńå īņķåńąņ äī "
-"ńśäą. Źąņī źšąéķą ģ˙šźą,\n"
-"ńļīšīāåņå łå įśäąņ īņķąń˙ķč äī ļīäõīä˙łč˙ ļšąāķč ńśäčėčłą ķą Ļąščę - "
-"Ōšąķöč˙.\n"
-"Ēą āń˙źąźāč āśļšīńč ļī ņīēč äīźóģåķņ, ģīė˙, ńāśšęåņå ńå ń MandrakeSoft S.A.\n"
-"\n"
-"ĒĄĮÅĖÅĘŹĄ: Ņīāą å įśėćąšńźč ļščįėčēčņåėåķ ļšåāīä ķą äīźóģåķņą, źīåņī "
-"īēķą÷ąāą, ÷å ņīé\n"
-"āåšī˙ņķī ķå å äīńņąņś÷ķī ņī÷åķ. Źąņī ļī-äīńņīāåšåķ čēņī÷ķčź ļīėēāąéņå "
-"ķåćīāč˙ īščćčķąė ķą\n"
-"ąķćėčéńźč.\n"
-
-#: ../../install_steps_interactive.pm_.c:205
-#: ../../install_steps_interactive.pm_.c:1045
-#: ../../standalone/keyboarddrake_.c:28
-msgid "Keyboard"
-msgstr "Źėąāčąņóšą"
-
-#: ../../install_steps_interactive.pm_.c:206
-#, fuzzy
-msgid "Please choose your keyboard layout."
-msgstr "Ģīė˙, čēįåšåņå ļīäšåęäąķå ķą źėąāčąņóšąņą."
-
-#: ../../install_steps_interactive.pm_.c:207
-msgid "Here is the full list of keyboards available"
-msgstr "Åņī ļśėåķ ńļčńśź ķą äīńņšśļķčņå źėąāčąņóšč"
-
-#: ../../install_steps_interactive.pm_.c:224
-msgid "Which installation class do you want?"
-msgstr "Źąźśā źėąń čķńņąėąöč˙ ęåėąåņå ?"
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Install/Update"
-msgstr "Čķńņąėčšąé/Īįķīāč"
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Is this an install or an update?"
-msgstr "Ņīāą ķīāą čķńņąėąöč˙ ėč å čėč īįķīā˙āąķå ?"
-
-#: ../../install_steps_interactive.pm_.c:235
-msgid "Recommended"
-msgstr "Ļšåļīšś÷čņåėķą"
-
-#: ../../install_steps_interactive.pm_.c:238
-#: ../../install_steps_interactive.pm_.c:241
-msgid "Expert"
-msgstr "Åźńļåšņķą"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-#, fuzzy
-msgid "Upgrade"
-msgstr "Īįķīā˙āąķå"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-#, fuzzy
-msgid "Upgrade packages only"
-msgstr "Īįķīā˙āąķå ķą čēįīšą ķą ļąźåņč"
-
-#: ../../install_steps_interactive.pm_.c:266
-#, fuzzy
-msgid "Please choose the type of your mouse."
-msgstr "Ģīė˙, čēįåšåņå ņčļ ķą ģčųźąņą."
-
-#: ../../install_steps_interactive.pm_.c:272 ../../standalone/mousedrake_.c:65
-msgid "Mouse Port"
-msgstr "Ļīšņ ķą ģčųźąņą"
-
-#: ../../install_steps_interactive.pm_.c:273 ../../standalone/mousedrake_.c:66
-msgid "Please choose on which serial port your mouse is connected to."
-msgstr "Ģīė˙, čēįåšåņå źśģ źīé ńåščåķ ļīšņ å ńāśšēąķą ģčųźąņą āč."
-
-#: ../../install_steps_interactive.pm_.c:281
-msgid "Buttons emulation"
-msgstr "Čģčņąöč˙ ķą įóņīķč"
-
-#: ../../install_steps_interactive.pm_.c:283
-msgid "Button 2 Emulation"
-msgstr "Čģčņąöč˙ ķą 2 įóņīķą"
-
-#: ../../install_steps_interactive.pm_.c:284
-msgid "Button 3 Emulation"
-msgstr "Čģčņąöč˙ ķą 3 įóņīķą"
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "Configuring PCMCIA cards..."
-msgstr "Ķąńņšīéźą ķą PCMCIA źąšņčņå ..."
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "PCMCIA"
-msgstr "PCMCIA"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "Configuring IDE"
-msgstr "Ķąńņšīéźą ķą IDE"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "IDE"
-msgstr "IDE"
-
-#: ../../install_steps_interactive.pm_.c:327
-msgid "no available partitions"
-msgstr "ķ˙ģą ä˙ėīāå ķą šąēļīėīęåķčå"
-
-#: ../../install_steps_interactive.pm_.c:330
-msgid "Scanning partitions to find mount points"
-msgstr "Ļšåņśšńāąķå ķą ä˙ėīāåņå ēą ķąģčšąķå ķą ņī÷źč ķą ģīķņčšąķå"
-
-#: ../../install_steps_interactive.pm_.c:338
-msgid "Choose the mount points"
-msgstr "Čēįåšåņå ģåńņą ēą ģīķņčšąķå"
-
-#: ../../install_steps_interactive.pm_.c:357
-#, c-format
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I can try to go on blanking bad partitions (ALL DATA will be lost!).\n"
-"The other solution is to disallow DrakX to modify the partition table.\n"
-"(the error is %s)\n"
-"\n"
-"Do you agree to loose all the partitions?\n"
-msgstr ""
-"Ķå ģīćą äą šąē÷åņą ņąįėčöąņą ķą ä˙ėīāåņå, ļšåźąėåķī å ļīāšåäåķą ēą ģåķ :(\n"
-"Ģīćą äą ńå īļčņąģ äą čē÷čńņ˙ ėīųčņå ä˙ėīāå (ĀŃČ×ŹČ ÄĄĶĶČ łå įśäąņ "
-"ēąćóįåķč!).\n"
-"Äšóćī šåųåķčå å äą ēąįšąķčņå ķą DrakX ļīļšąā˙ ņąįėčöąņą ń ä˙ėīāå.\n"
-"(ćšåųźąņą å %s)\n"
-
-#: ../../install_steps_interactive.pm_.c:370
-msgid ""
-"DiskDrake failed to read correctly the partition table.\n"
-"Continue at your own risk!"
-msgstr ""
-"DiskDrake ķå óńļ˙ äą šąē÷åņå ļšąāčėķī ņąįėčöąņą ķą ä˙ėīāåņå.\n"
-"Ļšīäśėęčņå ķą ńīįńņāåķ ščńź !"
-
-#: ../../install_steps_interactive.pm_.c:386
-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"
-
-#: ../../install_steps_interactive.pm_.c:395
-msgid "No root partition found to perform an upgrade"
-msgstr "Ķå å ķąģåšåķ ćėąāåķ ä˙ė ēą ķąäćšąęäąķå"
-
-#: ../../install_steps_interactive.pm_.c:396
-msgid "Root Partition"
-msgstr "Root ä˙ė"
-
-#: ../../install_steps_interactive.pm_.c:397
-msgid "What is the root partition (/) of your system?"
-msgstr "Źīé å root-ä˙ėśņ (/) ķą ńčńņåģąņą āč ?"
-
-#: ../../install_steps_interactive.pm_.c:411
-msgid "You need to reboot for the partition table modifications to take place"
-msgstr "Ķąėąćą ńå šą šåńņąšņčšąņå, ļšåäč ģīäčōčźąöččņå äą ļšåäčēāčźąņ åōåźņ"
-
-#: ../../install_steps_interactive.pm_.c:435
-msgid "Choose the partitions you want to format"
-msgstr "Čēįåšåņå ä˙ėīāåņå, źīčņī čńźąņå äą ōīšģąņčšąņå"
-
-#: ../../install_steps_interactive.pm_.c:436
-msgid "Check bad blocks?"
-msgstr "Ļšīāåšźą ēą ėīųč ńåźņīšč ?"
-
-#: ../../install_steps_interactive.pm_.c:462
-msgid "Formatting partitions"
-msgstr "Ōīšģąņčšąķå ķą ä˙ėowe"
-
-#: ../../install_steps_interactive.pm_.c:464
-#, c-format
-msgid "Creating and formatting file %s"
-msgstr "Ńśēäąāąķå č ōīšģąņčšąķå ķą ōąéėą %s"
-
-#: ../../install_steps_interactive.pm_.c:467
-msgid "Not enough swap to fulfill installation, please add some"
-msgstr ""
-"Ķ˙ģą äīńņąņś÷ķī swap ēą ļščźėž÷āąķå ķą čķńņąėąöč˙ņą, ģīė˙ äīįąāåņå ģąėźī"
-
-#: ../../install_steps_interactive.pm_.c:473
-msgid "Looking for available packages"
-msgstr "Ņśšń˙ ķąėč÷ķč ļąźåņč"
-
-#: ../../install_steps_interactive.pm_.c:479
-msgid "Finding packages to upgrade"
-msgstr "Ņśšń˙ ļąźåņč ēą īįķīā˙āąķå"
-
-#: ../../install_steps_interactive.pm_.c:496
-#, c-format
-msgid ""
-"Your system has not enough space left for installation or upgrade (%d > %d)"
-msgstr ""
-"Ńčńņåģąņą āč ķ˙ģą äīńņąņś÷ķī ģ˙ńņī ēą čķńņąėąöč˙ čėč īįķīā˙āąķå (%d > %d)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Complete (%dMB)"
-msgstr "Ļśėķą (%dMB)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Minimum (%dMB)"
-msgstr "Ģčķčģąėķą (%d Mb)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Recommended (%dMB)"
-msgstr "Ļšåļīšś÷čņåėķą (%dMb)"
-
-#: ../../install_steps_interactive.pm_.c:568
-msgid ""
-"Please choose load or save package selection on floppy.\n"
-"The format is the same as auto_install generated floppies."
-msgstr ""
-"Ģīęå čēįåšåņå ēąšåęäąķå čėč ēąļčń ķą čēįīšą ķą ļąźåņč ķą ōėīļč.\n"
-"Ōīšģąņśņ å ńśłč˙ņ źąņī auto_install ćåķåščšąķčņå äčńźåņč."
-
-#: ../../install_steps_interactive.pm_.c:571
-msgid "Load from floppy"
-msgstr "Ēąšåäč īņ äčńźåņą"
-
-#: ../../install_steps_interactive.pm_.c:573
-msgid "Loading from floppy"
-msgstr "Ēąšåęäąķå īņ äčńźåņą"
-
-#: ../../install_steps_interactive.pm_.c:573
-msgid "Package selection"
-msgstr "Čēįīš ķą ļąźåņč"
-
-#: ../../install_steps_interactive.pm_.c:578
-msgid "Insert a floppy containing package selection"
-msgstr "Ńėīęåņå äčńźåņą ńśäśšęąłą čēįīš ķą ļąźåņč"
-
-#: ../../install_steps_interactive.pm_.c:590
-msgid "Save on floppy"
-msgstr "Ēąļąēč ķą äčńźåņą"
-
-#: ../../install_steps_interactive.pm_.c:658
-msgid "Selected size is larger than available space"
-msgstr "Čēįšąķąņą ćīėåģčķą å ļī-ćīė˙ģą īņ äīńņśļķīņī ļšīńņšąķńņāī"
-
-#: ../../install_steps_interactive.pm_.c:671
-#, fuzzy
-msgid "Type of install"
-msgstr "Čēįåšåņå ļąźåņč ēą čķńņąėčšąķå"
-
-#: ../../install_steps_interactive.pm_.c:672
-msgid ""
-"You haven't selected any group of packages.\n"
-"Please choose the minimal installation you want:"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:675
-#, fuzzy
-msgid "With X"
-msgstr "Åäčķ ģīģåķņ"
-
-#: ../../install_steps_interactive.pm_.c:677
-msgid "With basic documentation (recommended!)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:678
-msgid "Truly minimal install (especially no urpmi)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:762
-msgid ""
-"If you have all the CDs in the list below, click Ok.\n"
-"If you have none of those CDs, click Cancel.\n"
-"If only some CDs are missing, unselect them, then click Ok."
-msgstr ""
-"Ąźī čģąņå āńč÷źč CD-ņą īņ ńļčńśźą ļī-ćīšå, ķąņčńķåņå Ok.\n"
-"Ąźī ķ˙ģąņå ķčņī åäķī īņ ņåēč CD-ņą, ķąņčńķåņå Īņģ˙ķą.\n"
-"Ąźī āč ėčļńāąņ ķ˙źīč CD-ņą, ģąõķåņå ćč, č ķąņčńķåņå Ok. "
-
-#: ../../install_steps_interactive.pm_.c:767
-#, c-format
-msgid "Cd-Rom labeled \"%s\""
-msgstr "CD-ROM īēąćėąāåķ \"%s\""
-
-#: ../../install_steps_interactive.pm_.c:787
-msgid "Preparing installation"
-msgstr "Ļīäćīņā˙ģ čķńņąėąöč˙ņą"
-
-#: ../../install_steps_interactive.pm_.c:796
-#, c-format
-msgid ""
-"Installing package %s\n"
-"%d%%"
-msgstr ""
-"Čķńņąėčšąģ ļąźåņ %s\n"
-"%d%%"
-
-#: ../../install_steps_interactive.pm_.c:842
-msgid "Post-install configuration"
-msgstr "Ńėåä čķńņąėąöčīķķą ķąńņšīéźą"
-
-#: ../../install_steps_interactive.pm_.c:848
-#, c-format
-msgid "Please insert the Boot floppy used in drive %s"
-msgstr "Ńėīęåņå ńņąšņčšąłąņą äčńźåņą ā óńņšīéńņāī %s"
-
-#: ../../install_steps_interactive.pm_.c:854
-#, c-format
-msgid "Please insert the Update Modules floppy in drive %s"
-msgstr "Ńėīęåņå äčńźåņą ēą īįķīā˙āąķå ķą ģīäóėč ā óńņšīéńņāī %s"
-
-#: ../../install_steps_interactive.pm_.c:874
-msgid ""
-"You have now the possibility to download software aimed for encryption.\n"
-"\n"
-"WARNING:\n"
-"\n"
-"Due to different general requirements applicable to these software and "
-"imposed\n"
-"by various jurisdictions, customer and/or end user of theses software "
-"should\n"
-"ensure that the laws of his/their jurisdiction allow him/them to download, "
-"stock\n"
-"and/or use these software.\n"
-"\n"
-"In addition customer and/or end user shall particularly be aware to not "
-"infringe\n"
-"the laws of his/their jurisdiction. Should customer and/or end user not\n"
-"respect the provision of these applicable laws, he/they will incure serious\n"
-"sanctions.\n"
-"\n"
-"In no event shall Mandrakesoft nor its manufacturers and/or suppliers be "
-"liable\n"
-"for special, indirect or incidental damages whatsoever (including, but not\n"
-"limited to loss of profits, business interruption, loss of commercial data "
-"and\n"
-"other pecuniary losses, and eventual liabilities and indemnification to be "
-"paid\n"
-"pursuant to a court decision) arising out of use, possession, or the sole\n"
-"downloading of these software, to which customer and/or end user could\n"
-"eventually have access after having sign up the present agreement.\n"
-"\n"
-"\n"
-"For any queries relating to these agreement, please contact \n"
-"Mandrakesoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA"
-msgstr ""
-"Ńåćą čģąņå āśēģīęķīńņņą äą ńāąėčņå ńīōņóåš ń öåė źīäčšąķå.\n"
-"\n"
-"ĀĶČĢĄĶČÅ:\n"
-"\n"
-"Ļīšąäč šąēėč÷ķčņå čēčńźāąķč˙ ļīńņąāåķč īņ ņīēč ńīōņóåš č īņ ģķīćī\n"
-"žščńäčźöčč, źėčåķņčņå č/čėč źšąéķčņå źėčåķņč ķą ņīēč ńīōņóåš ņš˙įāą\n"
-"äą įśäąņ ńčćóšķč, ÷å ķīšģąņčāķąņą įąēą čģ ļīēāīė˙āą ńāąė˙ķåņī, ļšīäąęįąņą\n"
-"č/čėč čēļīėēāąķåņī ķą ņīēč ńīōņóåš.\n"
-"\n"
-"Ā äīļśėķåķčå źėčåķņśņ č/čėč źšąéķč˙ ļīņšåįčņåė ņš˙įāą äą āķčģąāą ń ņīāą\n"
-"äąķåįč äą ķąšóųč ÷ąńņ īņ ķīšģąņčāķąņą įąēą. Źėčåķņśņ č/čėč źšąéķč˙ņ\n"
-"ļīņšåįčņåė ņš˙įāą äą óāąęąāą ļščėåęąłčņå ēąźīķč, ņśé źąņī ņīé łå ļīķåńå\n"
-"ńąķźöččņå.\n"
-"Ā ķčźąźśā ńėó÷ąé Mandrakesoft čėč ķåćīāčņå ļšīčēāīäčņåėč č/čėč\n"
-"ńļīģīłåńņāóāąņåėčņå ģó ķå ķīń˙ņ ķčźąźāą īņćīāīšķīńņ ēą źąźāčņī č äą å\n"
-"ļšåźč, źīńāåķč čėč ńėó÷ąéķč āšåäč (āźėž÷čņåėķī, ķī ķå ńąģī īćšąķč÷åķč ā\n"
-"ēąćóįąņą ķą ļīėēč, ļšåźśńāąķå ķą įčēķåń, ēąćóįą ķą źīģåšńčąėķč äąķķč č\n"
-"äšóćč ļąšč÷ķč ēąćóįč, č åāåķņóąėķč īņćīāīšķīńņč č īįåłåņåķč˙ ēą ļėąłąķå\n"
-"ļī ńśäåįķč šåųåķč˙) ļšåäčēāčźąķč īņ čēļīėēāąķåņī, ļīńņąā˙ķåņī čėč äīšč\n"
-"ńāąė˙ķåņī ķą ņīēč ńīōņóåš, äī źīéņī źėčåķņśņ č/čėč źšąéķč˙ņ ļīņšåįčņåė\n"
-"åāåķņóąėķī ģīęå äą čģą äīńņśļ ńėåä ńśćėąńčåņī ń ņīāą ńļīšąēóģåķčå.\n"
-"\n"
-"Ēą āń˙źąźāč āśļšīńč ļī ņīāą ńļīšąēóģåķčå, ģīė˙, ńāśšęåņå ńå ń \n"
-"Mandrakesoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA"
-
-#: ../../install_steps_interactive.pm_.c:912
-msgid ""
-"You have now the possibility to download updated packages that have\n"
-"been released after the distribution has been made available.\n"
-"\n"
-"You will get security fixes or bug fixes, but you need to have an\n"
-"Internet connection configured to proceed.\n"
-"\n"
-"Do you want to install the updates ?"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:926
-#, fuzzy
-msgid "Contacting Mandrake Linux web site to get the list of available mirrors"
-msgstr "Ńāśšēāąķå ń īćėåäąėķč˙ ńśšāśš ēą ļīėó÷ąāąķå ķą ńļčńśźą ń ļąźåņčņå"
-
-#: ../../install_steps_interactive.pm_.c:931
-msgid "Choose a mirror from which to get the packages"
-msgstr "Čēįåšåņå īćėåäąėåķ ńśšāśš,īņ źīéņī äą ļīėó÷čņå ļąźåņčņå"
-
-#: ../../install_steps_interactive.pm_.c:940
-msgid "Contacting the mirror to get the list of available packages"
-msgstr "Ńāśšēāąķå ń īćėåäąėķč˙ ńśšāśš ēą ļīėó÷ąāąķå ķą ńļčńśźą ń ļąźåņčņå"
-
-#: ../../install_steps_interactive.pm_.c:967
-msgid "Which is your timezone?"
-msgstr "Źī˙ å āšåģåāąņą āč ēīķą ?"
-
-#: ../../install_steps_interactive.pm_.c:972
-msgid "Hardware clock set to GMT"
-msgstr "Õąäšóåšķč˙ņ āč ÷ąńīāķčź å ķąńņšīåķ ļī GMT"
-
-#: ../../install_steps_interactive.pm_.c:973
-msgid "Automatic time synchronization (using NTP)"
-msgstr "Ąāņīģąņč÷ķą ńčķõšīķčēąöč˙ ķą āšåģåņī (čēļīėēāą NTP)"
-
-#: ../../install_steps_interactive.pm_.c:980
-msgid "NTP Server"
-msgstr "NTP ńśšāśš"
-
-#: ../../install_steps_interactive.pm_.c:1014
-#: ../../install_steps_interactive.pm_.c:1022
-msgid "Remote CUPS server"
-msgstr "Īņäąėå÷åķ CUPS ńśšāśš"
-
-#: ../../install_steps_interactive.pm_.c:1015
-msgid "No printer"
-msgstr "Ķ˙ģą ļščķņåš"
-
-#: ../../install_steps_interactive.pm_.c:1032
-#, fuzzy
-msgid "Do you have an ISA sound card?"
-msgstr "Čģąņå ėč äšóć(č) ?"
-
-#: ../../install_steps_interactive.pm_.c:1034
-msgid "Run \"sndconfig\" after installation to configure your sound card"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1036
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1041 ../../steps.pm_.c:27
-msgid "Summary"
-msgstr "Īįīįłåķčå"
-
-#: ../../install_steps_interactive.pm_.c:1044
-msgid "Mouse"
-msgstr "Ģčųźą"
-
-#: ../../install_steps_interactive.pm_.c:1046
-msgid "Timezone"
-msgstr "׹ńīāą ēīķą"
-
-#: ../../install_steps_interactive.pm_.c:1047 ../../printerdrake.pm_.c:2276
-#: ../../printerdrake.pm_.c:2354
-msgid "Printer"
-msgstr "Ļščķņåš"
-
-#: ../../install_steps_interactive.pm_.c:1049
-msgid "ISDN card"
-msgstr "ISDN źąšņą"
-
-#: ../../install_steps_interactive.pm_.c:1052
-#: ../../install_steps_interactive.pm_.c:1054
-msgid "Sound card"
-msgstr "Ēāóźīāą źąšņą"
-
-#: ../../install_steps_interactive.pm_.c:1056
-msgid "TV card"
-msgstr "TV źąšņą"
-
-#: ../../install_steps_interactive.pm_.c:1094
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1122
-msgid "LDAP"
-msgstr "LDAP"
-
-#: ../../install_steps_interactive.pm_.c:1095
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1131
-msgid "NIS"
-msgstr "NIS"
-
-#: ../../install_steps_interactive.pm_.c:1096
-#: ../../install_steps_interactive.pm_.c:1118
-msgid "Local files"
-msgstr "Ėīźąėķč ōąéėīāå"
-
-#: ../../install_steps_interactive.pm_.c:1105
-#: ../../install_steps_interactive.pm_.c:1106 ../../steps.pm_.c:24
-msgid "Set root password"
-msgstr "Āśāåäåņå ļąšīėą ēą root"
-
-#: ../../install_steps_interactive.pm_.c:1107
-msgid "No password"
-msgstr "Įåē ļąšīėą"
-
-#: ../../install_steps_interactive.pm_.c:1112
-#, c-format
-msgid "This password is too simple (must be at least %d characters long)"
-msgstr "Ļąšīėąņą å ļšåźąėåķī ļšīńņą (ņš˙įāą äą įśäå äśėćą ļīķå %d ńčģāīėą)"
-
-#: ../../install_steps_interactive.pm_.c:1118 ../../network/modem.pm_.c:49
-#: ../../standalone/draknet_.c:626 ../../standalone/logdrake_.c:172
-msgid "Authentication"
-msgstr "Čäåķņčōčźąöč˙"
-
-#: ../../install_steps_interactive.pm_.c:1126
-msgid "Authentication LDAP"
-msgstr "LDAP ąóņīščēąöč˙"
-
-#: ../../install_steps_interactive.pm_.c:1127
-msgid "LDAP Base dn"
-msgstr "LDAP Įąēīā dn"
-
-#: ../../install_steps_interactive.pm_.c:1128
-msgid "LDAP Server"
-msgstr "LDAP ńśšāśš"
-
-#: ../../install_steps_interactive.pm_.c:1134
-msgid "Authentication NIS"
-msgstr "NIS ąóņīščēąöč˙"
-
-#: ../../install_steps_interactive.pm_.c:1135
-msgid "NIS Domain"
-msgstr "NIS äīģåéķ"
-
-#: ../../install_steps_interactive.pm_.c:1136
-msgid "NIS Server"
-msgstr "NIS ńśšāśš"
-
-#: ../../install_steps_interactive.pm_.c:1171
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"SILO on your system, or another operating system removes SILO, or SILO "
-"doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures.\n"
-"\n"
-"If you want to create a bootdisk for your system, insert a floppy in the "
-"first\n"
-"drive and press \"Ok\"."
-msgstr ""
-"Źėčåķņńź˙ņ bootdisk å ķåīįõīäčģ ēą ńņąšņčšąķå ā Linux ńčńņåģąņą āč "
-"ķåēąāčńčģī\n"
-"īņ īįčźķīāåķč˙ bootloader. Ņīāą å ļīėåēķī, ąźī ķå čńźąņå äą čķńņąėčšąņå\n"
-"SILO ķą ńčńņåģąņą ńč, ąźī ķ˙źī˙ äšóćą īļåšąöčīķķą ńčńņåģą ģąõķå SILO\n"
-"čėč ąźī SILO ķå šąįīņč ń õąšäóåšķąņą āč ķąńņšīéźą. Źėčåķņńźč˙ņ bootdisk\n"
-"ģīęå äą įśäå čēļīėēāąķ ńśń\n"
-"ńļąńčņåėķč˙ņ īįšąē ķą Mandrake, óėåńķ˙āąźč āśēńņąķīā˙āąķåņī ļšč šåäźč\n"
-"ńėó÷ąč ķą ńščā.\n"
-"\n"
-"Ąźī čńźąņå äą ńśēäąäåņå bootdisk ēą āąųąņą ńčńņåģą, ļīńņąāåņå äčńźåņą ā\n"
-"ļśšāīņī óńņšīéńņāī č ķąņčńķåņå \"Ok\"."
-
-#: ../../install_steps_interactive.pm_.c:1187
-msgid "First floppy drive"
-msgstr "Ļśšāī ōėīļč óńņšīéńņāī"
-
-#: ../../install_steps_interactive.pm_.c:1188
-msgid "Second floppy drive"
-msgstr "Āņīšī ōėīļč óńņšīéńņāī"
-
-#: ../../install_steps_interactive.pm_.c:1189 ../../printerdrake.pm_.c:1848
-msgid "Skip"
-msgstr "Ļšåńźī÷č"
-
-#: ../../install_steps_interactive.pm_.c:1194
-#, c-format
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"LILO (or grub) on your system, or another operating system removes LILO, or "
-"LILO doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures. Would you like to create a bootdisk for your system?\n"
-"%s"
-msgstr ""
-"Źėčåķņńźč bootdisk å ķåīįõīäčģ ēą ńņąšņčšąķå ā Linux ńčńņåģąņą āč "
-"ķåēąāčńčģī\n"
-"īņ īįčźķīāåķąņą ēąšåęäąłą ļšīćšąģą. Ņīāą å ļīėåēķī, ąźī ķå čńźąņå äą "
-"čķńņąėčšąņå\n"
-"LILO (čėč GRUB) ķą ńčńņåģąņą ńč čėč ąźī ķ˙źī˙ äšóćą īļåšąöčīķķą ńčńņåģą "
-"ģąõķå LILO čėč LILO ķå\n"
-"šąįīņč ń õąšäóåšķąņą āč ķąńņšīéźą. Bootdisk-śņ ģīęå äą įśäå čēļīėēāąķ ńśń\n"
-"ńļąńčņåėķąņą äčńźåņą ķą Mandrake, óėåńķ˙āąłą āśēńņąķīā˙āąķåņī ļšč šåäźč\n"
-"ńėó÷ąč ķą ńščā. Čńźąņå ėč äą ńśēäąģ bootdisk ēą ńčńņåģąņą āč ?\n"
-"%s"
-
-#: ../../install_steps_interactive.pm_.c:1200
-msgid ""
-"\n"
-"\n"
-"(WARNING! You're using XFS for your root partition,\n"
-"creating a bootdisk on a 1.44 Mb floppy will probably fail,\n"
-"because XFS needs a very large driver)."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1208
-msgid "Sorry, no floppy drive available"
-msgstr "Ńśęąė˙āąģ ķ˙ģą ōėīļč"
-
-#: ../../install_steps_interactive.pm_.c:1212
-msgid "Choose the floppy drive you want to use to make the bootdisk"
-msgstr "Čēįåšåņå ōėīļč äšąéā,źśäåņī äą ķąļšąāčņå ńņąšņčšąłą äčńźåņą"
-
-#: ../../install_steps_interactive.pm_.c:1216
-#, fuzzy, c-format
-msgid "Insert a floppy in %s"
-msgstr "Ńėīęåņå äčńźåņą ā óńņšīéńņāī %s"
-
-#: ../../install_steps_interactive.pm_.c:1219
-msgid "Creating bootdisk"
-msgstr "Ńśēäąāąķå ķą ńņąšņčšąłą äčńźåņą"
-
-#: ../../install_steps_interactive.pm_.c:1226
-msgid "Preparing bootloader"
-msgstr "Ļīäćīņīāźą ķą bootloader"
-
-#: ../../install_steps_interactive.pm_.c:1237
-msgid ""
-"You appear to have an OldWorld or Unknown\n"
-" machine, the yaboot bootloader will not work for you.\n"
-"The install will continue, but you'll\n"
-" need to use BootX to boot your machine"
-msgstr ""
-"Čēćėåęäą čģąņå ńņąšīāšåģńźą čėč ķåčēāåńņķą\n"
-"ģąųčķą, ķą źī˙ņī yaboot ķ˙ģą äą ļšīšąįīņč.\n"
-"Čķńņąėąöč˙ņą łå ļšīäśėęč, ķī łå ņš˙įāą\n"
-"äą čļīėēāąņå BootX, ēą äą ńņąšņčšąņå ģąųčķąņą ńč"
-
-#: ../../install_steps_interactive.pm_.c:1243
-msgid "Do you want to use aboot?"
-msgstr "Čńźąņå ėč äą čēļīėēāąņå aboot ?"
-
-#: ../../install_steps_interactive.pm_.c:1246
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Ćšåųźą ļšč čķńņąėčšąķå ķą aboot, \n"
-"äą ńå īļčņąģ ėč äą ļšīäśėęą čķńņąėąöč˙ņą äīšč, ąźī ņīāą óķčęņīęč ļśšāč˙ ä˙ė ?"
-
-#: ../../install_steps_interactive.pm_.c:1253
-msgid "Installing bootloader"
-msgstr "Čķńņąėčšąķå ķą bootloader"
-
-#: ../../install_steps_interactive.pm_.c:1259
-msgid "Installation of bootloader failed. The following error occured:"
-msgstr "Čķńņąėąöč˙ņą ķą bootloader ļšīāąėåķą. Ļī˙āč ńå ńėåäķąņą ćšåųźą:"
-
-#: ../../install_steps_interactive.pm_.c:1267
-#, c-format
-msgid ""
-"You may need to change your Open Firmware boot-device to\n"
-" enable the bootloader. If you don't 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\n"
-"At your next boot you should see the bootloader prompt."
-msgstr ""
-"Ģīęå įč ńå ķóęäąåņå äą ļšīģåķčņå Open Firmware ńņąšņīāīņī óńņšīéńņāī,\n"
-" ēą äą ļóńķåņå ēąšåęäąłąņą ļšīćšąģą. Ąźī ķå āčęäąņå ļīäńźąēźąņą č ļšč\n"
-" šåńņąšņčšąķå, ēąäšśęņå Command-Option-O-F ļšč šåńņąšņčšąķå č āśāåäåņå:\n"
-" setenv boot-device %s,\\\\:tbxi\n"
-" Ńėåä źīåņī ķąļčųåņå: shut-down\n"
-"Ļšč ńėåäāąłīņī šåńņąšņčšąķå įč ņš˙įāąėī äą āčäåņå ļīäńźąēźąņą."
-
-#: ../../install_steps_interactive.pm_.c:1311
-#: ../../standalone/drakautoinst_.c:81
-#, c-format
-msgid "Insert a blank floppy in drive %s"
-msgstr "Ńėīęåņå ļšąēķą äčńźåņą ā óńņšīéńņāī %s"
-
-#: ../../install_steps_interactive.pm_.c:1315
-#: ../../standalone/drakautoinst_.c:83
-msgid "Creating auto install floppy"
-msgstr "Ļīäćīņā˙ģ äčńźåņą ń ąāņīģąņč÷ķą čķńņąėąöč˙"
-
-#: ../../install_steps_interactive.pm_.c:1326
-msgid ""
-"Some steps are not completed.\n"
-"\n"
-"Do you really want to quit now?"
-msgstr ""
-"Ķ˙źīč åņąļč ķå ńą ēąāśšųåķč.\n"
-"\n"
-"Ķąčńņčķą ėč čńźąņå äą čēėåēåņå ńåćą ?"
-
-#: ../../install_steps_interactive.pm_.c:1337
-msgid ""
-"Congratulations, installation is complete.\n"
-"Remove the boot media and press return to reboot.\n"
-"\n"
-"\n"
-"For information on fixes which are available for this release of Mandrake "
-"Linux,\n"
-"consult the Errata available from:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/82errata.php3\n"
-"\n"
-"\n"
-"Information on configuring your system is available in the post\n"
-"install chapter of the Official Mandrake Linux User's Guide."
-msgstr ""
-"Ļīēäšąāėåķč˙, čķńņąėąöč˙ņą å ļšåźėž÷åķą.\n"
-"Ļšåģąõķåņå ńņąšņīāīņī óńņšīéńņāī č ķąņčńåķå Enter ēą äą šåńņąšņčšąéņå.\n"
-"\n"
-"\n"
-"Ēą čķōīšģąöč˙ īņķīńķī ļīļšąāźč, ķą ņąēč āåšńč˙ ķą Mandrake Linux,\n"
-"ńå źīķńóėņčšąéņå ń Errata, ķą ąäšåń : \n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/82errata.php3\n"
-"\n"
-"\n"
-"Čķōīšģąöč˙ ēą ķąńņšīéāąķå ķą ńčńņåģąņą āč ģīęåņå äą ķąģåščņå ā\n"
-"ńėåäčķńņąėąöčīķķąņą ćėąāą īņ Official Mandrake Linux User's Guide."
-
-#: ../../install_steps_interactive.pm_.c:1354
-msgid "Generate auto install floppy"
-msgstr "Ļīäćīņāč äčńźåņą ēą ąāņīģąņč÷ķą čķńņąėąöč˙"
-
-#: ../../install_steps_interactive.pm_.c:1356
-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"
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Automated"
-msgstr "Ąāņīģąņčēčšąķ"
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Replay"
-msgstr "Ļīāņīšč"
-
-#: ../../install_steps_interactive.pm_.c:1364
-msgid "Save packages selection"
-msgstr "Ēąļąēč čēįīš ķą ļąźåņč"
-
-#: ../../install_steps_newt.pm_.c:22
-#, c-format
-msgid "Mandrake Linux Installation %s"
-msgstr "Čķńņąėąöč˙ ķą Mandrake Linux %s"
-
-#: ../../install_steps_newt.pm_.c:34
-msgid ""
-" <Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen "
-msgstr ""
-" <Tab>/<Alt-Tab> ģåęäó åėåģåķņčņå | <Space> čēįčšą | <F12> ńėåäāął åźšąķ"
-
-#: ../../interactive.pm_.c:87
-msgid "kdesu missing"
-msgstr "ėčļńāą kdesu"
-
-#: ../../interactive.pm_.c:89 ../../interactive.pm_.c:100
-msgid "consolehelper missing"
-msgstr ""
-
-#: ../../interactive.pm_.c:152
-msgid "Choose a file"
-msgstr "Čēįåšåņå ōąéė"
-
-#: ../../interactive.pm_.c:314
-msgid "Advanced"
-msgstr "Ķąļšåäķč÷ąā"
-
-#: ../../interactive.pm_.c:315
-msgid "Basic"
-msgstr ""
-
-#: ../../interactive.pm_.c:386
-msgid "Please wait"
-msgstr "Ģīė˙ čē÷ąźąéņå"
-
-#: ../../interactive_gtk.pm_.c:605 ../../services.pm_.c:222
-msgid "Info"
-msgstr "Čķōīšģąöč˙"
-
-#: ../../interactive_gtk.pm_.c:715
-msgid "Expand Tree"
-msgstr "Šąēųčšč äśšāīņī"
-
-#: ../../interactive_gtk.pm_.c:716
-msgid "Collapse Tree"
-msgstr "Čē÷čńņč äśšāīņī"
-
-#: ../../interactive_gtk.pm_.c:717
-msgid "Toggle between flat and group sorted"
-msgstr "Ļšåāźėž÷āąķå ģåęäó ķīšģąėķī č ńīšņčšąķå ļī ćšóļč"
-
-#: ../../interactive_stdio.pm_.c:29 ../../interactive_stdio.pm_.c:147
-msgid "Bad choice, try again\n"
-msgstr "Ėīų čēįīš, īļčņąéņå īņķīāī\n"
-
-#: ../../interactive_stdio.pm_.c:30 ../../interactive_stdio.pm_.c:148
-#, c-format
-msgid "Your choice? (default %s) "
-msgstr "Āąųč˙ņ čēįīš ? (ļī ļīäšąēįčšąķå å %s)"
-
-#: ../../interactive_stdio.pm_.c:52
-#, c-format
-msgid ""
-"Entries you'll have to fill:\n"
-"%s"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:68
-#, fuzzy, c-format
-msgid "Your choice? (0/1, default `%s') "
-msgstr "Āąųč˙ņ čēįīš ? (ļī ļīäšąēįčšąķå å %s)"
-
-#: ../../interactive_stdio.pm_.c:93
-#, fuzzy, c-format
-msgid "Button `%s': %s"
-msgstr "Īļöčč: %s"
-
-#: ../../interactive_stdio.pm_.c:94
-#, fuzzy
-msgid "Do you want to click on this button? "
-msgstr "Čńźąņå ėč äą čēļīėēāąņå aboot ?"
-
-#: ../../interactive_stdio.pm_.c:103
-#, fuzzy, c-format
-msgid "Your choice? (default `%s'%s) "
-msgstr "Āąųč˙ņ čēįīš ? (ļī ļīäšąēįčšąķå å %s)"
-
-#: ../../interactive_stdio.pm_.c:121
-#, c-format
-msgid "=> There are many things to choose from (%s).\n"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:124
-msgid ""
-"Please choose the first number of the 10-range you wish to edit,\n"
-"or just hit Enter to proceed.\n"
-"Your choice? "
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:137
-#, c-format
-msgid ""
-"=> Notice, a label changed:\n"
-"%s"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:144
-msgid "Re-submit"
-msgstr ""
-
-#: ../../keyboard.pm_.c:174 ../../keyboard.pm_.c:205
-msgid "Czech (QWERTZ)"
-msgstr "×åųźą (QWERTZ)"
-
-#: ../../keyboard.pm_.c:175 ../../keyboard.pm_.c:207
-msgid "German"
-msgstr "Ķåģńźą"
-
-#: ../../keyboard.pm_.c:176
-msgid "Dvorak"
-msgstr "Äāīšąź"
-
-#: ../../keyboard.pm_.c:177 ../../keyboard.pm_.c:214
-msgid "Spanish"
-msgstr "Čńļąķńźą"
-
-#: ../../keyboard.pm_.c:178 ../../keyboard.pm_.c:215
-msgid "Finnish"
-msgstr "Ōčķėąķäńźą"
-
-#: ../../keyboard.pm_.c:179 ../../keyboard.pm_.c:216
-msgid "French"
-msgstr "Ōšåķńźą"
-
-#: ../../keyboard.pm_.c:180 ../../keyboard.pm_.c:241
-msgid "Norwegian"
-msgstr "Ķīšāåęźą"
-
-#: ../../keyboard.pm_.c:181
-msgid "Polish"
-msgstr "Ļīėńźą"
-
-#: ../../keyboard.pm_.c:182 ../../keyboard.pm_.c:249
-msgid "Russian"
-msgstr "Šóńźą"
-
-#: ../../keyboard.pm_.c:184 ../../keyboard.pm_.c:251
-msgid "Swedish"
-msgstr "Ųāåäńźą"
-
-#: ../../keyboard.pm_.c:185 ../../keyboard.pm_.c:266
-msgid "UK keyboard"
-msgstr "UŹ źėąāčąņóšą"
-
-#: ../../keyboard.pm_.c:186 ../../keyboard.pm_.c:267
-msgid "US keyboard"
-msgstr "US źėąāčąņóšą"
-
-#: ../../keyboard.pm_.c:188
-msgid "Albanian"
-msgstr "Ąėįąķńźą"
-
-#: ../../keyboard.pm_.c:189
-msgid "Armenian (old)"
-msgstr "Ąšģåķńźą (ńņąšą)"
-
-#: ../../keyboard.pm_.c:190
-msgid "Armenian (typewriter)"
-msgstr "Ąšģåķńźą (ļčųåłą ģąųčķą)"
-
-#: ../../keyboard.pm_.c:191
-msgid "Armenian (phonetic)"
-msgstr "Ąšģåķńźą (ōīķåņč÷åķ)"
-
-#: ../../keyboard.pm_.c:196
-msgid "Azerbaidjani (latin)"
-msgstr "Ąēåšįąéäęąķńźą (ėąņčķčöą)"
-
-#: ../../keyboard.pm_.c:198
-msgid "Belgian"
-msgstr "Įåėćčéńźą"
-
-#: ../../keyboard.pm_.c:199
-#, fuzzy
-msgid "Bulgarian (phonetic)"
-msgstr "Ąšģåķńźą (ōīķåņč÷åķ)"
-
-#: ../../keyboard.pm_.c:200
-#, fuzzy
-msgid "Bulgarian (BDS)"
-msgstr "Įśėćąšńźą"
-
-#: ../../keyboard.pm_.c:201
-msgid "Brazilian (ABNT-2)"
-msgstr "Įšąēčėńźą (ABNT-2)"
-
-#: ../../keyboard.pm_.c:202
-msgid "Belarusian"
-msgstr "Įåėąšóńźą"
-
-#: ../../keyboard.pm_.c:203
-msgid "Swiss (German layout)"
-msgstr "Ųāåéöąšńźą (ķåģńźą ķąšåäįą)"
-
-#: ../../keyboard.pm_.c:204
-msgid "Swiss (French layout)"
-msgstr "Ųāåéöąšńźą (ōšåķńźč ķąšåäįą)"
-
-#: ../../keyboard.pm_.c:206
-msgid "Czech (QWERTY)"
-msgstr "×åųźą (QWERTY)"
-
-#: ../../keyboard.pm_.c:208
-msgid "German (no dead keys)"
-msgstr "Ķåģńźą (įåē ķåšąįīņåłč źėąāčųč)"
-
-#: ../../keyboard.pm_.c:209
-msgid "Danish"
-msgstr "Äąņńźą"
-
-#: ../../keyboard.pm_.c:210
-msgid "Dvorak (US)"
-msgstr "Äāīšąź (US)"
-
-#: ../../keyboard.pm_.c:211
-msgid "Dvorak (Norwegian)"
-msgstr "Äāīšąź (Ķīšāåęźą)"
-
-#: ../../keyboard.pm_.c:212
-#, fuzzy
-msgid "Dvorak (Swedish)"
-msgstr "Äāīšąź (US)"
-
-#: ../../keyboard.pm_.c:213
-msgid "Estonian"
-msgstr "Åńņīķńźą"
-
-#: ../../keyboard.pm_.c:217
-msgid "Georgian (\"Russian\" layout)"
-msgstr "Ćšóēčķńźą (\"Šóńźą\" ķąšåäįą)"
-
-#: ../../keyboard.pm_.c:218
-msgid "Georgian (\"Latin\" layout)"
-msgstr "Ćšóēčķńźą (\"Ėąņčķńźą\" ķąšåäįą)"
-
-#: ../../keyboard.pm_.c:219
-msgid "Greek"
-msgstr "Ćšśöźą"
-
-#: ../../keyboard.pm_.c:220
-msgid "Hungarian"
-msgstr "Óķćąšńźą"
-
-#: ../../keyboard.pm_.c:221
-msgid "Croatian"
-msgstr "Õśšāąņńźą"
-
-#: ../../keyboard.pm_.c:222
-msgid "Israeli"
-msgstr "Čēšąåėńźą"
-
-#: ../../keyboard.pm_.c:223
-msgid "Israeli (Phonetic)"
-msgstr "Čēšąåėńźą (ōīķåņč÷ķą)"
-
-#: ../../keyboard.pm_.c:224
-msgid "Iranian"
-msgstr "Čšąķńźą"
-
-#: ../../keyboard.pm_.c:225
-msgid "Icelandic"
-msgstr "Čńėąķäńźą"
-
-#: ../../keyboard.pm_.c:226
-msgid "Italian"
-msgstr "Čņąėčąķńźą"
-
-#: ../../keyboard.pm_.c:228
-msgid "Japanese 106 keys"
-msgstr "ßļīķńźą 106 źėąāčųą"
-
-#: ../../keyboard.pm_.c:231
-msgid "Korean keyboard"
-msgstr "Źīšåéńźą źėąāčąņóšą"
-
-#: ../../keyboard.pm_.c:232
-msgid "Latin American"
-msgstr "Ėąņčķīąģåščźąķńźą"
-
-#: ../../keyboard.pm_.c:233
-msgid "Lithuanian AZERTY (old)"
-msgstr "Ėčņāčéńźą AZERTY (ńņąšą)"
-
-#: ../../keyboard.pm_.c:235
-msgid "Lithuanian AZERTY (new)"
-msgstr "Ėčņāčéńźą AZERTY (ķīāą)"
-
-#: ../../keyboard.pm_.c:236
-msgid "Lithuanian \"number row\" QWERTY"
-msgstr "Ėčņāčéńźą \"÷čńėīāą šåäčöą\" QWERTY"
-
-#: ../../keyboard.pm_.c:237
-msgid "Lithuanian \"phonetic\" QWERTY"
-msgstr "Ėčņāčéńźą \"ōīķåņč÷åķ\" QWERTY"
-
-#: ../../keyboard.pm_.c:238
-msgid "Latvian"
-msgstr "Ėąņāčéńźą"
-
-#: ../../keyboard.pm_.c:239
-msgid "Macedonian"
-msgstr "Ģąźåäīķńźą"
-
-#: ../../keyboard.pm_.c:240
-msgid "Dutch"
-msgstr "Õīėąķäńźą"
-
-#: ../../keyboard.pm_.c:242
-msgid "Polish (qwerty layout)"
-msgstr "Ļīėńźą (QWERTY ķąšåäįą)"
-
-#: ../../keyboard.pm_.c:243
-msgid "Polish (qwertz layout)"
-msgstr "Ļīėńźą (QWERTZ ķąšåäįą)"
-
-#: ../../keyboard.pm_.c:244
-msgid "Portuguese"
-msgstr "Ļīšņóćąėńźą"
-
-#: ../../keyboard.pm_.c:245
-msgid "Canadian (Quebec)"
-msgstr "Źąķąäńźą (Źāåįåź)"
-
-#: ../../keyboard.pm_.c:247
-msgid "Romanian (qwertz)"
-msgstr "Šóģśķńźą (qwertz)"
-
-#: ../../keyboard.pm_.c:248
-msgid "Romanian (qwerty)"
-msgstr "Šóģśķńźą (qwerty)"
-
-#: ../../keyboard.pm_.c:250
-msgid "Russian (Yawerty)"
-msgstr "Šóńźą (Yawerty)"
-
-#: ../../keyboard.pm_.c:252
-msgid "Slovenian"
-msgstr "Ńėīāåķńźą"
-
-#: ../../keyboard.pm_.c:253
-msgid "Slovakian (QWERTZ)"
-msgstr "Ńėīāąųźą (QWERTZ)"
-
-#: ../../keyboard.pm_.c:254
-msgid "Slovakian (QWERTY)"
-msgstr "Ńėīāąųźą (QWERTY)"
-
-#: ../../keyboard.pm_.c:256
-msgid "Serbian (cyrillic)"
-msgstr "Ńšśįńźą (źčščėčöą)"
-
-#: ../../keyboard.pm_.c:258
-#, fuzzy
-msgid "Tamil"
-msgstr "Ņąįėčöą"
-
-#: ../../keyboard.pm_.c:259
-msgid "Thai keyboard"
-msgstr "Ņąéāąķńźą źėąāčąņóšą"
-
-#: ../../keyboard.pm_.c:261
-msgid "Tajik keyboard"
-msgstr "Ņąäęčźčńņąķńźą źėąāčąņóšą"
-
-#: ../../keyboard.pm_.c:262
-msgid "Turkish (traditional \"F\" model)"
-msgstr "Ņóšńźą (ņšąäčöčīķåķ \"F\" ģīäåė)"
-
-#: ../../keyboard.pm_.c:263
-msgid "Turkish (modern \"Q\" model)"
-msgstr "Ņóšńźą (ģīäåšåķ \"Q\" ģīäåė)"
-
-#: ../../keyboard.pm_.c:265
-msgid "Ukrainian"
-msgstr "Óźšąčķńźą"
-
-#: ../../keyboard.pm_.c:268
-msgid "US keyboard (international)"
-msgstr "US źėąāčąņóšą (ģåęäóķąšīäķą)"
-
-#: ../../keyboard.pm_.c:269
-msgid "Vietnamese \"numeric row\" QWERTY"
-msgstr "Āčåņķąģńźą \"÷čńėīāą šåäčöą\" QWERTY"
-
-#: ../../keyboard.pm_.c:270
-msgid "Yugoslavian (latin)"
-msgstr "Žćīńėąāńźą (ėąņčķčöą)"
-
-#: ../../keyboard.pm_.c:278
-msgid "Right Alt key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:279
-msgid "Both Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:280
-msgid "Control and Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:281
-msgid "CapsLock key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:282
-msgid "Ctrl and Alt keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:283
-msgid "Alt and Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:284
-msgid "\"Menu\" key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:285
-msgid "Left \"Windows\" key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:286
-msgid "Right \"Windows\" key"
-msgstr ""
-
-#: ../../loopback.pm_.c:32
-#, c-format
-msgid "Circular mounts %s\n"
-msgstr "\"Īģąćüīńąķ źšść\" īņ ģīķņčšąķč˙: %s\n"
-
-#: ../../lvm.pm_.c:88
-msgid "Remove the logical volumes first\n"
-msgstr "Ļśšāī ļšåģąõķč ėīćč÷ķčņå ä˙ėīāī\n"
-
-#: ../../modules.pm_.c:826
-msgid ""
-"PCMCIA support no longer exist for 2.2 kernels. Please use a 2.4 kernel."
-msgstr ""
-
-#: ../../mouse.pm_.c:25
-msgid "Sun - Mouse"
-msgstr "Ģčųźą ķą Sun"
-
-#: ../../mouse.pm_.c:32
-msgid "Logitech MouseMan+"
-msgstr "Logitech MouseMan+"
-
-#: ../../mouse.pm_.c:33
-msgid "Generic PS2 Wheel Mouse"
-msgstr "Īįčźķīāåķķą PS2 ģčųźą"
-
-#: ../../mouse.pm_.c:34
-msgid "GlidePoint"
-msgstr "GlidePoint"
-
-#: ../../mouse.pm_.c:36 ../../mouse.pm_.c:63
-msgid "Kensington Thinking Mouse"
-msgstr "Kensington THinking Mouse"
-
-#: ../../mouse.pm_.c:37 ../../mouse.pm_.c:59
-msgid "Genius NetMouse"
-msgstr "Genuis NetMouse"
-
-#: ../../mouse.pm_.c:38
-msgid "Genius NetScroll"
-msgstr "Genius NetScroll"
-
-#: ../../mouse.pm_.c:43 ../../mouse.pm_.c:68
-msgid "1 button"
-msgstr "1 įóņīķ"
-
-#: ../../mouse.pm_.c:44 ../../mouse.pm_.c:51
-msgid "Generic 2 Button Mouse"
-msgstr "Īįčźķīāåķķą 2-įóņīķķą ģčųźą"
-
-#: ../../mouse.pm_.c:45
-msgid "Generic"
-msgstr "Īįł"
-
-#: ../../mouse.pm_.c:46
-msgid "Wheel"
-msgstr "Wheel"
-
-#: ../../mouse.pm_.c:49
-msgid "serial"
-msgstr "ńåščéķą"
-
-#: ../../mouse.pm_.c:52
-msgid "Generic 3 Button Mouse"
-msgstr "Īįčźķīāåķķą 3-įóņīķķą ģčųźą"
-
-#: ../../mouse.pm_.c:53
-msgid "Microsoft IntelliMouse"
-msgstr "Microsoft IntelliMouse"
-
-#: ../../mouse.pm_.c:54
-msgid "Logitech MouseMan"
-msgstr "Logitech MouseMan"
-
-#: ../../mouse.pm_.c:55
-msgid "Mouse Systems"
-msgstr "Mouse Systems"
-
-#: ../../mouse.pm_.c:57
-msgid "Logitech CC Series"
-msgstr "Logitech CC Series"
-
-#: ../../mouse.pm_.c:58
-msgid "Logitech MouseMan+/FirstMouse+"
-msgstr "Logitech MouseMan+/FirstMouse+"
-
-#: ../../mouse.pm_.c:60
-msgid "MM Series"
-msgstr "MM Series"
-
-#: ../../mouse.pm_.c:61
-msgid "MM HitTablet"
-msgstr "MM HitTablet"
-
-#: ../../mouse.pm_.c:62
-msgid "Logitech Mouse (serial, old C7 type)"
-msgstr "Logitech Mouse (ńåščéķą, īņ ńņąšč˙ ņčļ C7)"
-
-#: ../../mouse.pm_.c:66
-msgid "busmouse"
-msgstr "BUS ģčųźą"
-
-#: ../../mouse.pm_.c:69
-msgid "2 buttons"
-msgstr "2 įóņīķą"
-
-#: ../../mouse.pm_.c:70
-msgid "3 buttons"
-msgstr "3 įóņīķą"
-
-#: ../../mouse.pm_.c:73
-msgid "none"
-msgstr "ķ˙ģą"
-
-#: ../../mouse.pm_.c:75
-msgid "No mouse"
-msgstr "Įåē ģčųźą"
-
-#: ../../mouse.pm_.c:499
-msgid "Please test the mouse"
-msgstr "Ģīė˙, ļšīįāąéņå ģčųźąņą ńč"
-
-#: ../../mouse.pm_.c:500
-msgid "To activate the mouse,"
-msgstr "Ēą äą ąźņčāčšąņå ģčųźąņą ńč,"
-
-#: ../../mouse.pm_.c:501
-msgid "MOVE YOUR WHEEL!"
-msgstr "ĮÓŅĶÅŅÅ ŅĪĻ×ÅŅĪ !"
-
-#: ../../my_gtk.pm_.c:651
-msgid "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"
-msgstr "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"
-
-#: ../../my_gtk.pm_.c:686
-msgid "Finish"
-msgstr "Ēąāśšųč"
-
-#: ../../my_gtk.pm_.c:686 ../../printerdrake.pm_.c:1588
-msgid "Next ->"
-msgstr "Ńėåäāął ->"
-
-#: ../../my_gtk.pm_.c:687 ../../printerdrake.pm_.c:1586
-msgid "<- Previous"
-msgstr "<- Ļšåäčųåķ"
-
-#: ../../my_gtk.pm_.c:1019
-msgid "Is this correct?"
-msgstr "Āńč÷źī ļšąāčėķī ėč å ?"
-
-#: ../../network/adsl.pm_.c:19 ../../network/ethernet.pm_.c:36
-msgid "Connect to the Internet"
-msgstr "Ńāśšęč ńå źśģ Čķņåšķåņ"
-
-#: ../../network/adsl.pm_.c:20
-msgid ""
-"The most common way to connect with adsl is pppoe.\n"
-"Some connections use pptp, a few ones use dhcp.\n"
-"If you don't know, choose 'use pppoe'"
-msgstr ""
-"Ķąé-÷åńņč˙ ķą÷čķ ēą ńāśšēāąķå ÷šåē ADSL å PPPOE.\n"
-"Ķ˙źīč āšśēźč čēļīėēāąņ PPTP, ą maėźī čēļīėēāąņ DHCP.\n"
-"Ąźī ķå ēķąåņå, čēįåšåņå 'čēļīėēāąé PPPOE'."
-
-#: ../../network/adsl.pm_.c:22
-msgid "Alcatel speedtouch usb"
-msgstr "Alcatel speedtouch USB"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use dhcp"
-msgstr "čēļīėēāąé DHCP"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pppoe"
-msgstr "čēļīėēāąé PPPOE"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pptp"
-msgstr "čēļīėēāąé PPPTP"
-
-#: ../../network/ethernet.pm_.c:37
-msgid ""
-"Which dhcp client do you want to use?\n"
-"Default is dhcpcd"
-msgstr ""
-"Źąźśā DHCP źėčåķņ čńźąņå äą čēļīėēāąņå ?\n"
-"Ļī ļīäšąēįčšąķå å dhcpcd ?"
-
-#: ../../network/ethernet.pm_.c:88
-msgid ""
-"No ethernet network adapter has been detected on your system.\n"
-"I cannot set up this connection type."
-msgstr ""
-"Ķå įåųå ķąģåšåķ ģšåęīā ąäąļņåš ā ńčńņåģąņą āč.\n"
-"Ķå ģīęåņå äą ķąńņšīčņå ņąźśā āčä āšśēźą."
-
-#: ../../network/ethernet.pm_.c:92 ../../standalone/drakgw_.c:252
-msgid "Choose the network interface"
-msgstr "Čēįåšåņå ģšåęīā čķņåšōåéń"
-
-#: ../../network/ethernet.pm_.c:93
-msgid ""
-"Please choose which network adapter you want to use to connect to Internet"
-msgstr "Ģīė˙, čēįåšåņå źīé ģšåęīā ąäąļņåš äą čēļīėēāąģ ēą āšśēźą źśģ Čķņåšķåņ"
-
-#: ../../network/ethernet.pm_.c:178
-msgid "no network card found"
-msgstr "ķå å īņźščņą ģšåęīāą źąšņą"
-
-#: ../../network/ethernet.pm_.c:202 ../../network/network.pm_.c:360
-msgid "Configuring network"
-msgstr "Ķąńņīéźą ķą ģšåęąņą"
-
-#: ../../network/ethernet.pm_.c:203
-msgid ""
-"Please enter your host name if you know it.\n"
-"Some DHCP servers require the hostname to work.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''."
-msgstr ""
-"Ģīė˙, āśāåäåņå čģå ķą õīńņ ąźī ćī ēķąåņå.\n"
-"Ķ˙źīé DHCP ńśšāśšč čēčńźāąņ ņīāą ēą äą šąįīņ˙ņ.\n"
-"Host čģåņī ņš˙įāą äą įóäå ķąļśėķī źāąėčōčöčšąķī čģå,\n"
-"źąņī ``mybox.mylab.myco.com''."
-
-#: ../../network/ethernet.pm_.c:207 ../../network/network.pm_.c:365
-msgid "Host name"
-msgstr "Čģå ķą õīńņ:"
-
-#: ../../network/isdn.pm_.c:21 ../../network/isdn.pm_.c:44
-#: ../../network/netconnect.pm_.c:95 ../../network/netconnect.pm_.c:109
-#: ../../network/netconnect.pm_.c:164 ../../network/netconnect.pm_.c:175
-#: ../../network/netconnect.pm_.c:202 ../../network/netconnect.pm_.c:225
-#: ../../network/netconnect.pm_.c:233
-msgid "Network Configuration Wizard"
-msgstr "Ģąćüīńķčź ēą ķąńņšīéźą ķą ģšåęąņą"
-
-#: ../../network/isdn.pm_.c:22
-msgid "External ISDN modem"
-msgstr "Āśķųåķ ISDN ģīäåģ"
-
-#: ../../network/isdn.pm_.c:22
-msgid "Internal ISDN card"
-msgstr "Āśņšåųķą ISDN źąšņą"
-
-#: ../../network/isdn.pm_.c:22
-msgid "What kind is your ISDN connection?"
-msgstr "Źąźśā å ņčļśņ ķą ISDN āšśēźąņą ?"
-
-#: ../../network/isdn.pm_.c:45
-msgid ""
-"Which ISDN configuration do you prefer?\n"
-"\n"
-"* The Old configuration uses isdn4net. It contains powerfull\n"
-" tools, but is tricky to configure, and not standard.\n"
-"\n"
-"* The New configuration is easier to understand, more\n"
-" standard, but with less tools.\n"
-"\n"
-"We recommand the light configuration.\n"
-msgstr ""
-"Źī˙ ISDN ķąńņšīéźą ļšåäļī÷čņąņå ?\n"
-"\n"
-"* Ńņąšąņą ķąńņšīéźą čēļīėēāą isdn4net. Ńśäśšęą ģīłķč čķńņšóģåķņč\n"
-" ķī å źąļščēķą ēą ķąńņšīéźą č ķå å ńņąķäąšņķą.\n"
-"\n"
-"* Ķīāąņą ķąńņšīéźą å ļī-ėåńķą ēą šąēįčšąķå, ļī ńņąķäąšņķą,\n"
-" ķī ń ļī-ģąėźī čķńņšóģåķņč.\n"
-"\n"
-"Ļšåļīšś÷āąģå āč īėåźīņåķąņą ķąńņšīéźą.\n"
-
-#: ../../network/isdn.pm_.c:54
-msgid "New configuration (isdn-light)"
-msgstr "Ķīāą ķąńņšīéźą (isdn-light)"
-
-#: ../../network/isdn.pm_.c:54
-msgid "Old configuration (isdn4net)"
-msgstr "Ńņąšą ķąńņšīéźą (isdn4net)"
-
-#: ../../network/isdn.pm_.c:170 ../../network/isdn.pm_.c:188
-#: ../../network/isdn.pm_.c:198 ../../network/isdn.pm_.c:205
-#: ../../network/isdn.pm_.c:215
-msgid "ISDN Configuration"
-msgstr "Ķąńņšīéźą ķą IDSN"
-
-#: ../../network/isdn.pm_.c:170
-msgid ""
-"Select your provider.\n"
-" If it's not in the list, choose Unlisted"
-msgstr ""
-"Ļīńī÷åņå äīńņąā÷čźą ńč.\n"
-" Ąźī ķå å ā ńļčńśźą, čēįåšåņå Unlisted"
-
-#: ../../network/isdn.pm_.c:183
-msgid "Europe protocol"
-msgstr "Ļšīņīźīė Åāšīļą"
-
-#: ../../network/isdn.pm_.c:183
-msgid "Europe protocol (EDSS1)"
-msgstr "Ļšīņīźīė Åāšīļą (EDSS1)"
-
-#: ../../network/isdn.pm_.c:185
-msgid "Protocol for the rest of the world"
-msgstr "Ļšīņīźīė ēą īńņąķąėč˙ ńā˙ņ"
-
-#: ../../network/isdn.pm_.c:185
-msgid ""
-"Protocol for the rest of the world \n"
-" no D-Channel (leased lines)"
-msgstr ""
-"Ļšīņīźīė ēą īńņąķąėč˙ ńā˙ņ\n"
-" įåē D-Źąķąė (ķąåņą ėčķč˙)"
-
-#: ../../network/isdn.pm_.c:189
-msgid "Which protocol do you want to use ?"
-msgstr "Źąźśā ļšīņīźīė ęåėąåņå äą ļšīģåķčņå ?"
-
-#: ../../network/isdn.pm_.c:199
-msgid "What kind of card do you have?"
-msgstr "Źąźśā ņčļ źąšņą čģąņå ?"
-
-#: ../../network/isdn.pm_.c:200
-msgid "I don't know"
-msgstr "Ķå ēķąģ"
-
-#: ../../network/isdn.pm_.c:200
-msgid "ISA / PCMCIA"
-msgstr "ISA / PCMCIA"
-
-#: ../../network/isdn.pm_.c:200
-msgid "PCI"
-msgstr "PCI"
-
-#: ../../network/isdn.pm_.c:206
-msgid ""
-"\n"
-"If you have an ISA card, the values on the next screen should be right.\n"
-"\n"
-"If you have a PCMCIA card, you have to know the irq and io of your card.\n"
-msgstr ""
-"\n"
-"Ąźī čģąņå ISA źąšņą, ńņīéķīńņčņå ķą ńėåäāąłč˙ åźšąķ ņš˙įāą äą ńą āåšķč.\n"
-"\n"
-"Ąźī čģąņå PCMCIA źąšņą, łå ņš˙įāą äą ēķąåņå IRC č IO ķą źąšņąņą ńč.\n"
-
-#: ../../network/isdn.pm_.c:210
-msgid "Abort"
-msgstr "Īņźąē"
-
-#: ../../network/isdn.pm_.c:210
-msgid "Continue"
-msgstr "Ķąņąņśź"
-
-#: ../../network/isdn.pm_.c:216
-msgid "Which is your ISDN card ?"
-msgstr "Źī˙ å ISDN źąšņąņą āč ?"
-
-#: ../../network/isdn.pm_.c:235
-msgid ""
-"I have detected an ISDN PCI Card, but I don't know the type. Please select "
-"one PCI card on the next screen."
-msgstr ""
-"Īņźščņą å ISDN PCI źąšņą, ķī ń ķåļīēķąņ ņčļ. Ģīė˙ čēįåšåņå ķ˙źī˙ PCI źąšņą "
-"īņ ńėåäāąłč˙ņ åźšąķ."
-
-#: ../../network/isdn.pm_.c:244
-msgid "No ISDN PCI card found. Please select one on the next screen."
-msgstr "Ķå å ķąģåšåķą ISDN PCI źąšņą. Ģīė˙ čēįåšåņå īņ ńėåäāąłč˙ņ åźšąķ."
-
-#: ../../network/modem.pm_.c:39
-msgid "Please choose which serial port your modem is connected to."
-msgstr "Ģīė˙, čēįåšåņå ńåščåķ ļīšņ źśģ źīéņī ńāśšēąķ ģīäåģśņ āč."
-
-#: ../../network/modem.pm_.c:44
-msgid "Dialup options"
-msgstr "Īļöčč ēą čēįčšąķå ļī ņåėåōīķ"
-
-#: ../../network/modem.pm_.c:45 ../../standalone/draknet_.c:622
-msgid "Connection name"
-msgstr "Čģå ķą āšśēźąņą"
-
-#: ../../network/modem.pm_.c:46 ../../standalone/draknet_.c:623
-msgid "Phone number"
-msgstr "Ņåėåōīķåķ ķīģåš"
-
-#: ../../network/modem.pm_.c:47 ../../standalone/draknet_.c:624
-msgid "Login ID"
-msgstr "Ļīņšåįčņåėńźī čģå"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "CHAP"
-msgstr "CHAP"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "PAP"
-msgstr "PAP"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Script-based"
-msgstr "Įąēčšąķą ķą ńźščļņ"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Terminal-based"
-msgstr "Įąēčšąķą ķą ņåšģčķąė"
-
-#: ../../network/modem.pm_.c:50 ../../standalone/draknet_.c:627
-msgid "Domain name"
-msgstr "Čģå ķą äīģåéķą"
-
-#: ../../network/modem.pm_.c:51 ../../standalone/draknet_.c:628
-msgid "First DNS Server (optional)"
-msgstr "Ļśšāč DNS ńśšāśš (ļī čēįīš)"
-
-#: ../../network/modem.pm_.c:52 ../../standalone/draknet_.c:629
-msgid "Second DNS Server (optional)"
-msgstr "Āņīšč DNS ńśšāśš (ļī čēįīš)"
-
-#: ../../network/netconnect.pm_.c:34
-msgid ""
-"\n"
-"You can disconnect or reconfigure your connection."
-msgstr ""
-"\n"
-"Ģīęåņå äą ńå īņāśšęåņå čėč äą ļšåķąńņšīčņå āšśēźąņą."
-
-#: ../../network/netconnect.pm_.c:34 ../../network/netconnect.pm_.c:37
-msgid ""
-"\n"
-"You can reconfigure your connection."
-msgstr ""
-"\n"
-"Ģīęåņå äą ļšåķąńņšīčņå āšśēźąņą."
-
-#: ../../network/netconnect.pm_.c:34
-msgid "You are currently connected to internet."
-msgstr "Ā ģīģåķņą ńņå ńāśšēąķč źśģ Čķņåšķåņ"
-
-#: ../../network/netconnect.pm_.c:37
-msgid ""
-"\n"
-"You can connect to Internet or reconfigure your connection."
-msgstr ""
-"\n"
-"Ģīęåņå äą ńå ńāśšęåņå źśģ Čķņåšķåņ čėč äą ļšåķąńņšīčņå āšśēźąņą."
-
-#: ../../network/netconnect.pm_.c:37
-msgid "You are not currently connected to Internet."
-msgstr "Ā ģīģåķņą ķå ńņå ńāśšēąķč źśģ Čķņåšķåņ"
-
-#: ../../network/netconnect.pm_.c:41
-msgid "Connect"
-msgstr "Ńāśšęč"
-
-#: ../../network/netconnect.pm_.c:43
-msgid "Disconnect"
-msgstr "Īņāśšęč"
-
-#: ../../network/netconnect.pm_.c:45
-#, fuzzy
-msgid "Configure the connection"
-msgstr "Ā ģīģåķņą ķąńņšīéāąģ ģšåęąņą"
-
-#: ../../network/netconnect.pm_.c:50
-msgid "Internet connection & configuration"
-msgstr "Čķņåšķåņ āšśēźą č ķąńņšīéźą"
-
-#: ../../network/netconnect.pm_.c:100
-#, c-format
-msgid "We are now going to configure the %s connection."
-msgstr "Ńåćą łå ķąńņšīčģ %s āšśēźąņą."
-
-#: ../../network/netconnect.pm_.c:109
-#, c-format
-msgid ""
-"\n"
-"\n"
-"\n"
-"We are now going to configure the %s connection.\n"
-"\n"
-"\n"
-"Press OK to continue."
-msgstr ""
-"\n"
-"\n"
-"\n"
-"Ńåćą łå ķąńņšīčģ %s āšśēźąņą.\n"
-"\n"
-"Ķąņčńķåņå OK, ēą äą ļšīäśėęčņå."
-
-#: ../../network/netconnect.pm_.c:138 ../../network/netconnect.pm_.c:252
-#: ../../network/netconnect.pm_.c:271 ../../network/tools.pm_.c:57
-msgid "Network Configuration"
-msgstr "Ķąńņšīéźą ķą ģšåęąņą"
-
-#: ../../network/netconnect.pm_.c:139
-msgid ""
-"Because you are doing a network installation, your network is already "
-"configured.\n"
-"Click on Ok to keep your configuration, or cancel to reconfigure your "
-"Internet & Network connection.\n"
-msgstr ""
-"Ņśé źąņī ļšąāčņå ģšåęīāą čķńņąėąöč˙, ģšåęąņą āč āå÷å å ķąńņšīåķą.\n"
-"Öśźķåņå Ok, ēą äą ēąļąēčņå ķąńņšīéźąņą, čėč Īņģ˙ķą, ēą äą ļšåķąńņīčņå "
-"Čķņåšķåņ č ģšåęīāąņą ńč āšśēźą.\n"
-
-#: ../../network/netconnect.pm_.c:165
-msgid ""
-"Welcome to The Network Configuration Wizard\n"
-"\n"
-"We are about to configure your internet/network connection.\n"
-"If you don't want to use the auto detection, deselect the checkbox.\n"
-msgstr ""
-"Äīįšå äīųėč ļšč ģąćüīńķčźą ēą ķąńņšīéźą ķą ģšåęą\n"
-"\n"
-"Āčå ńņå ķą ļśņ äą ķąńņšīčņå Čķņåšķåņ/ģšåęīāąņą ńč āšśēźą.\n"
-"Ąźī ķå čńźąņå äą čēļīėēāąņå ąāņīģąņč÷ķī ēąńč÷ąķå, čēźėž÷åņå źóņčéźąņą.\n"
-
-#: ../../network/netconnect.pm_.c:167
-msgid "Choose the profile to configure"
-msgstr "Čēįåšåņå ļšīōčė ēą ķąńņšīéźą"
-
-#: ../../network/netconnect.pm_.c:168
-msgid "Use auto detection"
-msgstr "Čēļīėēāąé ąāņīģąņč÷ķī ēąńč÷ąķå"
-
-#: ../../network/netconnect.pm_.c:175
-msgid "Detecting devices..."
-msgstr "Īņźščāąķå ķą óńņšīéńņāą ..."
-
-#: ../../network/netconnect.pm_.c:186 ../../network/netconnect.pm_.c:195
-msgid "Normal modem connection"
-msgstr "Īįčźķīāåķą ģīäåģķą āšśēźą"
-
-#: ../../network/netconnect.pm_.c:186 ../../network/netconnect.pm_.c:195
-#, c-format
-msgid "detected on port %s"
-msgstr "ēąńå÷åķ ķą ļīšņ %s"
-
-#: ../../network/netconnect.pm_.c:187 ../../network/netconnect.pm_.c:196
-msgid "ISDN connection"
-msgstr "ISDN āšśēźą"
-
-#: ../../network/netconnect.pm_.c:187 ../../network/netconnect.pm_.c:196
-#, c-format
-msgid "detected %s"
-msgstr "ēąńå÷åķą %s"
-
-#: ../../network/netconnect.pm_.c:188 ../../network/netconnect.pm_.c:197
-msgid "ADSL connection"
-msgstr "ADSL āšśēźą"
-
-#: ../../network/netconnect.pm_.c:188 ../../network/netconnect.pm_.c:197
-#, c-format
-msgid "detected on interface %s"
-msgstr "ēąńå÷åķ ķą čķņåšōåéń %s"
-
-#: ../../network/netconnect.pm_.c:189 ../../network/netconnect.pm_.c:198
-msgid "Cable connection"
-msgstr "Źąįåėķą āšśēźą"
-
-#: ../../network/netconnect.pm_.c:189 ../../network/netconnect.pm_.c:198
-msgid "cable connection detected"
-msgstr "ēąńå÷åķą å źąįåėķą āšśēźą"
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-msgid "LAN connection"
-msgstr "LAN āšśēźą"
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-msgid "ethernet card(s) detected"
-msgstr "ethernet źąšņč ēąńå÷åķč"
-
-#: ../../network/netconnect.pm_.c:202
-msgid "Choose the connection you want to configure"
-msgstr "Čēįåšåņå āšśēźąņą, źīéņī čńźąņå äą čēļīėēāąņå"
-
-#: ../../network/netconnect.pm_.c:226
-msgid ""
-"You have configured multiple ways to connect to the Internet.\n"
-"Choose the one you want to use.\n"
-"\n"
-msgstr ""
-"Ķąńņšīčėč ńņå ķ˙źīėźī ķą÷čķą ēą āšśēźą źśģ Čķņåšķåņ.\n"
-"Čēįåšåņå ņīēč, źīéņī čńźąņå äą čēļīėēāąņå.\n"
-"\n"
-
-#: ../../network/netconnect.pm_.c:227
-msgid "Internet connection"
-msgstr "Čķņåšķåņ āšśēźą"
-
-#: ../../network/netconnect.pm_.c:233
-msgid "Do you want to start the connection at boot?"
-msgstr "Čńźąņå ėč äą ńņąšņčšąņå āšśēźąņą ńč ļšč ēąšåęäąķå ?"
-
-#: ../../network/netconnect.pm_.c:247
-msgid "Network configuration"
-msgstr "Ķąńņšīéźą ķą ģšåęąņą"
-
-#: ../../network/netconnect.pm_.c:248
-msgid "The network needs to be restarted"
-msgstr "Ģšåęąņą ņš˙įāą äą įśäå šåńņąšņčšąķą"
-
-#: ../../network/netconnect.pm_.c:252
-#, c-format
-msgid ""
-"A problem occured while restarting the network: \n"
-"\n"
-"%s"
-msgstr ""
-"Čēķčźķą ļšīįėåģ ļšč šåńņąšņčšąķåņī ķą ģšåęąņą:\n"
-"\n"
-"%s"
-
-#: ../../network/netconnect.pm_.c:261
-msgid ""
-"Congratulations, the network and Internet configuration is finished.\n"
-"The configuration will now be applied to your system.\n"
-"\n"
-msgstr ""
-"Ļīēäšąāėåķč˙, ģšåęīāąņå č Čķņåšķåņ ķąńņšīéźąņą å ēąāśšųåķą.\n"
-"\n"
-"Ķąńņšīéźčņå łå įśäąņ ļščėīęåķč źśģ ńčńņåģąņą āč.\n"
-
-#: ../../network/netconnect.pm_.c:265
-msgid ""
-"After this is done, we recommend that you restart your X environment to "
-"avoid any hostname-related problems."
-msgstr ""
-"Ńėåä źąņī ńņąķå ņīāą, ļšåļīšś÷āąģå āč äą šåńņąšņčšąņå X\n"
-"ńšåäąņą ńč, ēą äą čēįåćķåņå ļšīįėåģč ńśń ńģ˙ķąņą čģåņī ķą õīńņą."
-
-#: ../../network/netconnect.pm_.c:266
-msgid ""
-"Problems occured during configuration.\n"
-"Test your connection via net_monitor or mcc. If your connection doesn't "
-"work, you might want to relaunch the configuration"
-msgstr ""
-
-#: ../../network/network.pm_.c:292
-msgid ""
-"WARNING: This device has been previously configured to connect to the "
-"Internet.\n"
-"Simply accept to keep this device configured.\n"
-"Modifying the fields below will override this configuration."
-msgstr ""
-"ĀĶČĢĄĶČÅ: Ņīāą óńņšīéńņāī āå÷å å ķąńņšīåķī äą ńå ńāśšēāą źśģ Čķņåšķåņ.\n"
-"Ļšīńņī ļščåģåņå, ēą äą īńņąāčņå óńņšīéńņāīņī ķąńņšīåķī.\n"
-"Ļīļšąāźąņą ķą ļīėåņąņą ļī-äīėó łå ļšåēąļčųå ņąēč ķąńņšīéźą."
-
-#: ../../network/network.pm_.c:297
-msgid ""
-"Please enter the IP configuration for this machine.\n"
-"Each item should be entered as an IP address in dotted-decimal\n"
-"notation (for example, 1.2.3.4)."
-msgstr ""
-"Ģīė˙, āśāåäåņå IP ķąńņšīéźčņå ēą ņąēč ģąųčķą.\n"
-"Āń˙źī óńņšīéńņāī ņš˙įāą äą įśäå āśāåäåķī źąņī IP ąäšåń\n"
-"ń ņī÷źīāī-äåńåņč÷ķī īēķą÷åķčå (ķąļščģåš, 1.2.3.4)."
-
-#: ../../network/network.pm_.c:306 ../../network/network.pm_.c:307
-#, c-format
-msgid "Configuring network device %s"
-msgstr "Ķąńņšīéźą ķą ģšåęīāīņī óńņšīéńņāī %s"
-
-#: ../../network/network.pm_.c:307
-#, c-format
-msgid " (driver %s)"
-msgstr " (äšąéāåš %s)"
-
-#: ../../network/network.pm_.c:309 ../../standalone/draknet_.c:232
-#: ../../standalone/draknet_.c:468
-msgid "IP address"
-msgstr "IP ąäšåń"
-
-#: ../../network/network.pm_.c:310 ../../standalone/draknet_.c:469
-msgid "Netmask"
-msgstr "Ģšåęīāą ģąńźą"
-
-#: ../../network/network.pm_.c:311
-msgid "(bootp/dhcp)"
-msgstr "(bootp/dhcp)"
-
-#: ../../network/network.pm_.c:311
-msgid "Automatic IP"
-msgstr "Ąāņīģąņč÷åķ IP ąäšåń"
-
-#: ../../network/network.pm_.c:332 ../../printerdrake.pm_.c:712
-msgid "IP address should be in format 1.2.3.4"
-msgstr "IP ąäšåńśņ ņš˙įāą äą įśäå āśā ōīšģąņ 1.2.3.4"
-
-#: ../../network/network.pm_.c:361
-msgid ""
-"Please enter your host name.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''.\n"
-"You may also enter the IP address of the gateway if you have one"
-msgstr ""
-"Ģīė˙, āśāåäåņå host name ēą ģąųčķąņą.\n"
-"Host čģåņī ņš˙įāą äą įóäå ķąļśėķī źāąėčōčöčšąķī čģå,\n"
-"źąņī ``mybox.mylab.myco.com''.\n"
-"Ģīęåņå ńśłī äą āśāåäåņå IP ąäšåńą ķą Āąųč˙ gateway, ąźī čģąņå ņąźśā"
-
-#: ../../network/network.pm_.c:366
-msgid "DNS server"
-msgstr "DNS ńśšāśš"
-
-#: ../../network/network.pm_.c:367
-#, c-format
-msgid "Gateway (e.g. %s)"
-msgstr ""
-
-#: ../../network/network.pm_.c:369
-msgid "Gateway device"
-msgstr "Gateway óńņšīéńņāī"
-
-#: ../../network/network.pm_.c:381
-msgid "Proxies configuration"
-msgstr "Ķąńņšīéźą ķą proxy"
-
-#: ../../network/network.pm_.c:382
-msgid "HTTP proxy"
-msgstr "HTTP proxy"
-
-#: ../../network/network.pm_.c:383
-msgid "FTP proxy"
-msgstr "FTP proxy"
-
-#: ../../network/network.pm_.c:384
-msgid "Track network card id (usefull for laptops)"
-msgstr "Ļšīńėåä˙āąķå ķą ID ķą ģšåęīāąņą źąšņą (ļīėåēķī ļšč ėąļņīļč)"
-
-#: ../../network/network.pm_.c:387
-msgid "Proxy should be http://..."
-msgstr "Proxy-ńśšāśšą ņš˙įāą äą å http://..."
-
-#: ../../network/network.pm_.c:388
-msgid "Proxy should be ftp://..."
-msgstr "Proxy-ńśšāśšą ņš˙įāą äą å ftp://..."
-
-#: ../../network/tools.pm_.c:39
-msgid "Internet configuration"
-msgstr "Ķąńņšīéźą ķą Čķņåšķåņ"
-
-#: ../../network/tools.pm_.c:40
-msgid "Do you want to try to connect to the Internet now?"
-msgstr "Čńźąņå ėč ńåćą äą īļčņąņå āšśēźą źśģ Čķņåšķåņ ?"
-
-#: ../../network/tools.pm_.c:44 ../../standalone/draknet_.c:197
-msgid "Testing your connection..."
-msgstr "Čēļšīįāąķå ķą āšśēźąņą..."
-
-#: ../../network/tools.pm_.c:50
-msgid "The system is now connected to Internet."
-msgstr "Ńčńņåģąņą ā ģīģåķņą å ńāśšēąķą źśģ Čķņåšķåņ."
-
-#: ../../network/tools.pm_.c:51
-msgid "For Security reason, it will be disconnected now."
-msgstr "Ēą āąųą ńčćóšķīńņ, ńåćą ņ˙ łå įśäåņå īņāśšēąķą."
-
-#: ../../network/tools.pm_.c:52
-msgid ""
-"The system doesn't seem to be connected to internet.\n"
-"Try to reconfigure your connection."
-msgstr ""
-"Ńčńņåģąņą ķå čēćėåęäą ńāśšēąķą źśģ Čķņåšķåņ.\n"
-"Īļčņąéņå ńå äą ļšåķąńņšīčņå āšśēźąņą."
-
-#: ../../network/tools.pm_.c:76
-msgid "Connection Configuration"
-msgstr "Ķąńņšīéźą ķą āšśēźąņą"
-
-#: ../../network/tools.pm_.c:77
-msgid "Please fill or check the field below"
-msgstr "Ģīė˙, ļīļśėķåņå čėč ļšīāåšåņå ļīėåņī ļī-äīėó"
-
-#: ../../network/tools.pm_.c:79 ../../standalone/draknet_.c:608
-msgid "Card IRQ"
-msgstr "IRQ ķą źąšņąņą"
-
-#: ../../network/tools.pm_.c:80 ../../standalone/draknet_.c:609
-msgid "Card mem (DMA)"
-msgstr "Ļąģåņ (DMA) ķą źąšņąņą"
-
-#: ../../network/tools.pm_.c:81 ../../standalone/draknet_.c:610
-msgid "Card IO"
-msgstr "IO ķą źąšņąņą"
-
-#: ../../network/tools.pm_.c:82 ../../standalone/draknet_.c:611
-msgid "Card IO_0"
-msgstr "IO_0 ķą źąšņąņą"
-
-#: ../../network/tools.pm_.c:83 ../../standalone/draknet_.c:612
-msgid "Card IO_1"
-msgstr "IO_1 ķą źąšņąņą"
-
-#: ../../network/tools.pm_.c:84 ../../standalone/draknet_.c:613
-msgid "Your personal phone number"
-msgstr "Ėč÷ķč˙ āč ņåėåōīķåķ ķīģåš"
-
-#: ../../network/tools.pm_.c:85 ../../standalone/draknet_.c:614
-msgid "Provider name (ex provider.net)"
-msgstr "Čģå ķą äīńņąā÷čźą (ķąļš. provider.net)"
-
-#: ../../network/tools.pm_.c:86 ../../standalone/draknet_.c:615
-msgid "Provider phone number"
-msgstr "Ņåėåōīķåķ ķīģåš ķą äīńņąā÷čźą"
-
-#: ../../network/tools.pm_.c:87 ../../standalone/draknet_.c:616
-msgid "Provider dns 1 (optional)"
-msgstr "1-āč DNS ķą äīńņąā÷čźą (ļī ęåėąķčå)"
-
-#: ../../network/tools.pm_.c:88 ../../standalone/draknet_.c:617
-msgid "Provider dns 2 (optional)"
-msgstr "2-šč DNS ķą äīńņąā÷čźą (ļī ęåėąķčå)"
-
-#: ../../network/tools.pm_.c:89
-msgid "Choose your country"
-msgstr "Čēįåšåņå ńņšąķąņą ńč"
-
-#: ../../network/tools.pm_.c:90 ../../standalone/draknet_.c:620
-msgid "Dialing mode"
-msgstr "Šåęčģ ķą ķąįčšąķå"
-
-#: ../../network/tools.pm_.c:91 ../../standalone/draknet_.c:632
-msgid "Connection speed"
-msgstr "Ńźīšīńņ ķą āšśēźąņą"
-
-#: ../../network/tools.pm_.c:92 ../../standalone/draknet_.c:633
-msgid "Connection timeout (in sec)"
-msgstr "Timeout ķą āšśēźąņą (ā ńåź)"
-
-#: ../../network/tools.pm_.c:93 ../../standalone/draknet_.c:618
-msgid "Account Login (user name)"
-msgstr "Čģå ķą ąźąóķņą (ļīņåįčņåėńźī čģå)"
-
-#: ../../network/tools.pm_.c:94 ../../standalone/draknet_.c:619
-msgid "Account Password"
-msgstr "Ļąšīėą ķą ąźąóķņą"
-
-#: ../../partition_table.pm_.c:600
-msgid "mount failed: "
-msgstr "ģīķņčšąķåņī ķå óńļ˙: "
-
-#: ../../partition_table.pm_.c:664
-msgid "Extended partition not supported on this platform"
-msgstr "Šąēųčšåķč ä˙ėīāå ķå ńå ļīääśšęąņ ķą ņąēč ļėąņōīšģą"
-
-#: ../../partition_table.pm_.c:682
-msgid ""
-"You have a hole in your partition table but I can't use it.\n"
-"The only solution is to move your primary partitions to have the hole next "
-"to the extended partitions"
-msgstr ""
-"Čģąņå ļšąēķčķą ā ņąįėčöąņą ń ä˙ėīāåņå, ķī ķå ģīćą äą ˙ čēļīėēāąģ.\n"
-"Åäčķńņāåķč˙ņ ķą÷čķ å äą ļšåģåńņčņå ćėąāķčņå ńč ä˙ėīāå, ēą äą čģąņå ļšąēķī "
-"ģ˙ńņī ńėåä extended-ä˙ėīāåņå"
-
-#: ../../partition_table.pm_.c:770
-#, c-format
-msgid "Restoring from file %s failed: %s"
-msgstr "Āśēńņąķīā˙āąķåņī īņ ōąéėą %s ķå óńļ˙: %s"
-
-#: ../../partition_table.pm_.c:772
-msgid "Bad backup file"
-msgstr "Ėīų backup-ōąéė"
-
-#: ../../partition_table.pm_.c:794
-#, c-format
-msgid "Error writing to file %s"
-msgstr "Ćšåųźą ļšč ēąļčń āśā ōąéėą %s"
-
-#: ../../partition_table_raw.pm_.c:186
-msgid ""
-"Something bad is happening on your drive. \n"
-"A test to check the integrity of data has failed. \n"
-"It means writing anything on the disk will end up with random trash"
-msgstr ""
-"Ķåłī ėīųī ńņąāą ń óńņšīéńņāīņī āč.\n"
-"Ņåńņą ēą öåėīńņ ķą äąķķčņå ļšīļąäķą.\n"
-"Ņīāą ēķą÷č, ÷å ļčńąķåņī ķą źąźāīņī č įčėī ļī äčńźą łå ļšåāšśłą\n"
-"ļšīčēāīėķī ā įīźėóź"
-
-#: ../../pkgs.pm_.c:24
-msgid "must have"
-msgstr "ķóęåķ"
-
-#: ../../pkgs.pm_.c:25
-msgid "important"
-msgstr "āąęåķ"
-
-#: ../../pkgs.pm_.c:26
-msgid "very nice"
-msgstr "ģķīćī äīįśš"
-
-#: ../../pkgs.pm_.c:27
-msgid "nice"
-msgstr "äīįśš"
-
-#: ../../pkgs.pm_.c:28
-msgid "maybe"
-msgstr "ńņąāą"
-
-#: ../../printer.pm_.c:23
-msgid "CUPS - Common Unix Printing System"
-msgstr "CUPS - Īįłą Unix Ļščķņåšķą Ńčńņåģą"
-
-#: ../../printer.pm_.c:24
-msgid "LPRng - LPR New Generation"
-msgstr "LPRng - LPR Ķīāī ļīźīėåķčå"
-
-#: ../../printer.pm_.c:25
-msgid "LPD - Line Printer Daemon"
-msgstr "LPD - Ėčķååķ Ļščķņåšåķ Äåģīķ"
-
-#: ../../printer.pm_.c:26
-msgid "PDQ - Print, Don't Queue"
-msgstr "PDQ - Ļå÷ąņąé, Įåē Īļąųźą"
-
-#: ../../printer.pm_.c:32 ../../printer.pm_.c:871
-msgid "CUPS"
-msgstr "CUPS"
-
-#: ../../printer.pm_.c:33
-msgid "LPRng"
-msgstr "LPRng"
-
-#: ../../printer.pm_.c:34
-msgid "LPD"
-msgstr "LPD"
-
-#: ../../printer.pm_.c:35
-msgid "PDQ"
-msgstr "PDQ"
-
-#: ../../printer.pm_.c:47
-msgid "Local printer"
-msgstr "Ėīźąėåķ ļščķņåš"
-
-#: ../../printer.pm_.c:48
-msgid "Remote printer"
-msgstr "Īņäąėå÷åķ ļščķņåš"
-
-#: ../../printer.pm_.c:49
-msgid "Printer on remote CUPS server"
-msgstr "Ļščķņåš ķą īņäąėå÷åķ CUPS ńśšāśš"
-
-#: ../../printer.pm_.c:50 ../../printerdrake.pm_.c:734
-msgid "Printer on remote lpd server"
-msgstr "Ļščķņåš ķą īņäąėå÷åķ LPD ńśšāśš"
-
-#: ../../printer.pm_.c:51
-msgid "Network printer (TCP/Socket)"
-msgstr "Ģšåęīā ļščķņåš (TCP/Socket)"
-
-#: ../../printer.pm_.c:52
-msgid "Printer on SMB/Windows 95/98/NT server"
-msgstr "Ļščķņåš ķą SMB/Windows 95/98/NT ńśšāśš"
-
-#: ../../printer.pm_.c:53
-msgid "Printer on NetWare server"
-msgstr "Ļščķņåš ķą NetWare ńśšāśš"
-
-#: ../../printer.pm_.c:54 ../../printerdrake.pm_.c:738
-msgid "Enter a printer device URI"
-msgstr "Āśāåäåņå URI ķą ļå÷ąņąłī óńņšīéńņāī"
-
-#: ../../printer.pm_.c:55
-msgid "Pipe job into a command"
-msgstr "Ļšåźąšąé šąįīņąņą ļšåē źīģąķäą"
-
-#: ../../printer.pm_.c:504 ../../printer.pm_.c:695 ../../printer.pm_.c:1017
-#: ../../printerdrake.pm_.c:1665 ../../printerdrake.pm_.c:2730
-msgid "Unknown model"
-msgstr "Ķåčēāåńņåķ ģīäåė"
-
-#: ../../printer.pm_.c:532
-#, fuzzy
-msgid "Local Printers"
-msgstr "Ėīźąėåķ ļščķņåš"
-
-#: ../../printer.pm_.c:534 ../../printer.pm_.c:872
-#, fuzzy
-msgid "Remote Printers"
-msgstr "Īņäąėå÷åķ ļščķņåš"
-
-#: ../../printer.pm_.c:541 ../../printerdrake.pm_.c:248
-#, c-format
-msgid " on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printer.pm_.c:544 ../../printerdrake.pm_.c:250
-#, c-format
-msgid ", USB printer \\/*%s"
-msgstr ""
-
-#: ../../printer.pm_.c:549
-#, c-format
-msgid ", multi-function device on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printer.pm_.c:552
-msgid ", multi-function device on USB"
-msgstr ""
-
-#: ../../printer.pm_.c:554
-msgid ", multi-function device on HP JetDirect"
-msgstr ""
-
-#: ../../printer.pm_.c:556
-msgid ", multi-function device"
-msgstr ""
-
-#: ../../printer.pm_.c:559
-#, fuzzy, c-format
-msgid ", printing to %s"
-msgstr "Ćšåųźą ļšč ēąļčń āśā ōąéėą %s"
-
-#: ../../printer.pm_.c:561
-#, c-format
-msgid "on LPD server \"%s\", printer \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:563
-#, c-format
-msgid ", TCP/IP host \"%s\", port %s"
-msgstr ""
-
-#: ../../printer.pm_.c:567
-#, c-format
-msgid "on Windows server \"%s\", share \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:571
-#, c-format
-msgid "on Novell server \"%s\", printer \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:573
-#, c-format
-msgid ", using command %s"
-msgstr ""
-
-#: ../../printer.pm_.c:692 ../../printerdrake.pm_.c:1136
-msgid "Raw printer (No driver)"
-msgstr ""
-
-#: ../../printer.pm_.c:841
-#, c-format
-msgid "(on %s)"
-msgstr "(ķą %s)"
-
-#: ../../printer.pm_.c:843
-msgid "(on this machine)"
-msgstr "(ķą ņąēč ģąųčķą)"
-
-#: ../../printer.pm_.c:868
-#, fuzzy, c-format
-msgid "On CUPS server \"%s\""
-msgstr "IP ķą CUPS ńśšāśšą"
-
-#: ../../printer.pm_.c:874 ../../printerdrake.pm_.c:2391
-#: ../../printerdrake.pm_.c:2402 ../../printerdrake.pm_.c:2618
-#: ../../printerdrake.pm_.c:2670 ../../printerdrake.pm_.c:2697
-#: ../../printerdrake.pm_.c:2867 ../../printerdrake.pm_.c:2869
-msgid " (Default)"
-msgstr " (Ļī ļīäšąēįčšąķå)"
-
-#: ../../printerdrake.pm_.c:22
-msgid "Select Printer Connection"
-msgstr "Čēįåšåņå āšśēźą źśģ ļščķņåšą"
-
-#: ../../printerdrake.pm_.c:23
-msgid "How is the printer connected?"
-msgstr "Źąź å ńāśšēąķ ļščķņåšśņ ?"
-
-#: ../../printerdrake.pm_.c:25
-#, fuzzy
-msgid ""
-"\n"
-"Printers on remote CUPS servers you do not have to configure here; these "
-"printers will be automatically detected."
-msgstr ""
-"\n"
-"Īņäąėå÷åķčņå ķą CUPS ńśšāśš ļščķņåšč ķå ņš˙įāą äą ķąńņšīéāąņå\n"
-"ņóź; ņåēč ļščķņåšč łå įśäąņ ēąńå÷åķč ąāņīģąņč÷ķī. Ģīė˙,\n"
-"čēįåšåņå \"Ļščķņåš ķą īņäąėå÷åķ CUPS ńśšāśš\" ā ņīēč ńėó÷ąé."
-
-#: ../../printerdrake.pm_.c:69 ../../printerdrake.pm_.c:2454
-#, fuzzy
-msgid "CUPS configuration"
-msgstr "Ķąńņšīéźą"
-
-#: ../../printerdrake.pm_.c:70 ../../printerdrake.pm_.c:2455
-#, fuzzy
-msgid "Specify CUPS server"
-msgstr "Īņäąėå÷åķ CUPS ńśšāśš"
-
-#: ../../printerdrake.pm_.c:71
-#, fuzzy
-msgid ""
-"To get access to printers on remote CUPS servers in your local network you "
-"do not have to configure anything; the CUPS servers inform your machine "
-"automatically about their printers. All printers currently known to your "
-"machine are listed in the \"Remote printers\" section in the main window of "
-"Printerdrake. When your CUPS server is not in your local network, you have "
-"to enter the CUPS server IP address and optionally the port number to get "
-"the printer information from the server, otherwise leave these fields blank."
-msgstr ""
-"Ń īņäąėå÷åķčņå CUPS ńśšāśšč, ķ˙ģą ķóęäą äą ķąńņšīéāąņą źąźśāņī\n"
-"č äą įčėī ļščķņåš ņóź; CUPS ńśšāśščņå čķōīšģčšąņ ąāņīģąņč÷ķī ģąųčķąņą\n"
-"ēą ņåõķčņå ļščķņåšč. Āńč÷źč ļščķņåšč čēāåńņķč ķą ģąųčķąņą āč\n"
-"ńą čēšåäåķč ā ļīėåņī \"Ļščķņåš ļī ļīšäšąēįčšąķå\". Čēįåšåņå\n"
-"ļščķņåš ļī ļīäšąēįčšąķå ēą ģąųčķąņą ńč īņ ņąģ č öśźķåņå ķą įóņīķą\n"
-"\"Ļščėīęč/Ļšåļšī÷åņč ļščķņåščņå\". Öśźķåņå ķą ńśłč˙ įóņīķ, ēą äą\n"
-"īļšåńķčņå ńļčńśźą (ģīęå äą īņķåģå äī 30 ńåźóķäč ńėåä ļóńźąķåņī\n"
-"ķą CUPS, äīźąņī āńč÷źč īņäąėå÷åķč ļščķņåšč ńņąķąņ āčäčģč).\n"
-"Źīćąņī CUPS ńśšāśš å ķą äšóćą ģšåęą, ņš˙įāą äą äąäåņå IP ąäšåń č,\n"
-"åāåķņóėąķī ķīģåš ķą ļīšņ ķą CUPS ńśšāśšą, ēą äą āēåģåņå čķōīšģąöč˙\n"
-"ēą ļščķņåšą īņ ńśšāśšą, čķą÷å īńņąāåņå ļīėåņī ļšąēķī."
-
-#: ../../printerdrake.pm_.c:72
-#, fuzzy
-msgid ""
-"\n"
-"Normally, CUPS is automatically configured according to your network "
-"environment, so that you can access the printers on the CUPS servers in your "
-"local network. If this does not work correctly, turn off \"Automatic CUPS "
-"configuration\" and edit your file /etc/cups/cupsd.conf manually. Do not "
-"forget to restart CUPS afterwards (command: \"service cups restart\")."
-msgstr ""
-"\n"
-"Īįčźķīāåķī, CUPS ąāņīģąņč÷ķī ńå ķąńņšīéāą ńļīšåä ģšåęīāąņą ńšåäą,\n"
-"ņąźą ÷å äą čģąņå äīńņśļ äī ļščķņåščņå ķą CUPS ńśšāśšą ā ėīźąėķąņą\n"
-"āč ģšåęą. Ąźī ķå ńšąįīņč źąźņī ņš˙įāą, čēźėž÷åņå \"Ąāņīģąņč÷ķą\n"
-"CUPS ķąńņšīéźą\" č ļīļšąāåņå ōąéėą /etc/cups/cupsd.conf šś÷ķī. Ķå\n"
-"ēąįšąā˙éņå äą šåńņąšņčšąņå CUPS ńėåä ņīāą (źīģąķäą: \"service\n"
-"cups restart\")."
-
-#: ../../printerdrake.pm_.c:76
-msgid "The IP address should look like 192.168.1.20"
-msgstr "IP ąäšåńśņ ņš˙įāą äą įśäå āśā ōīšģąņ 192.168.1.20"
-
-#: ../../printerdrake.pm_.c:80 ../../printerdrake.pm_.c:862
-msgid "The port number should be an integer!"
-msgstr "Ķīģåšśņ ķą ļīšņą ņš˙įāą äą å ö˙ėī ÷čńėī !"
-
-#: ../../printerdrake.pm_.c:87
-msgid "CUPS server IP"
-msgstr "IP ķą CUPS ńśšāśšą"
-
-#: ../../printerdrake.pm_.c:88 ../../printerdrake.pm_.c:855
-msgid "Port"
-msgstr "Ļīšņ"
-
-#: ../../printerdrake.pm_.c:90
-msgid "Automatic CUPS configuration"
-msgstr "Ąāņīģąņč÷ķą ķąńņšīéźą ķą CUPS"
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-msgid "Detecting devices ..."
-msgstr "Ēąńč÷ąķå ķą óńņšīéńņāą ..."
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-msgid "Test ports"
-msgstr "Ņåńņāąķå ļīšņīāåņå"
-
-#: ../../printerdrake.pm_.c:167 ../../printerdrake.pm_.c:2437
-#: ../../printerdrake.pm_.c:2556
-#, fuzzy
-msgid "Add a new printer"
-msgstr "Äīįąāč ļščķņåš"
-
-#: ../../printerdrake.pm_.c:168
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard allows you to install local or remote printers to be used from "
-"this machine and also from other machines in the network.\n"
-"\n"
-"It asks you for all necessary information to set up the printer and gives "
-"you access to all available printer drivers, driver options, and printer "
-"connection types."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:176 ../../printerdrake.pm_.c:203
-#: ../../printerdrake.pm_.c:378 ../../printerdrake.pm_.c:393
-#: ../../printerdrake.pm_.c:403 ../../printerdrake.pm_.c:466
-#, fuzzy
-msgid "Local Printer"
-msgstr "Ėīźąėåķ ļščķņåš"
-
-#: ../../printerdrake.pm_.c:177
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard will help you to install your printer(s) connected to this "
-"computer.\n"
-"\n"
-"Please plug in your printer(s) on this computer and turn it/them on. Click "
-"on \"Next\" when you are ready, and on \"Cancel\" when you do not want to "
-"set up your printer(s) now.\n"
-"\n"
-"Note that some computers can crash during the printer auto-detection, turn "
-"off \"Auto-detect printers\" to do a printer installation without auto-"
-"detection. Use the \"Expert Mode\" of printerdrake when you want to set up "
-"printing on a remote printer if printerdrake does not list it automatically."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:186
-#, fuzzy
-msgid "Auto-detect printers"
-msgstr "Īņäąėå÷åķ ļščķņåš"
-
-#: ../../printerdrake.pm_.c:204
-msgid ""
-"\n"
-"Congratulations, your printer is now installed and configured!\n"
-"\n"
-"You can print using the \"Print\" command of your application (usually in "
-"the \"File\" menu).\n"
-"\n"
-"If you want to add, remove, or rename a printer, or if you want to change "
-"the default option settings (paper input tray, printout quality, ...), "
-"select \"Printer\" in the \"Hardware\" section of the Mandrake Control "
-"Center."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:223
-msgid "Auto-Detection of Printers"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:224
-msgid ""
-"Printerdrake is able to auto-detect your locally connected parallel and USB "
-"printers for you, but note that on some systems the auto-detection CAN "
-"FREEZE YOUR SYSTEM AND THIS CAN LEAD TO CORRUPTED FILE SYSTEMS! So do it ON "
-"YOUR OWN RISK!\n"
-"\n"
-"Do you really want to get your printers auto-detected?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:227 ../../printerdrake.pm_.c:229
-#: ../../printerdrake.pm_.c:230
-#, fuzzy
-msgid "Do auto-detection"
-msgstr "Čēļīėēāąé ąāņīģąņč÷ķī ēąńč÷ąķå"
-
-#: ../../printerdrake.pm_.c:228
-#, fuzzy
-msgid "Set up printer manually"
-msgstr "Čģå ķą īņäąėå÷åķ ļščķņåš"
-
-#: ../../printerdrake.pm_.c:256
-#, fuzzy, c-format
-msgid "Detected %s"
-msgstr "ēąńå÷åķą %s"
-
-#: ../../printerdrake.pm_.c:260 ../../printerdrake.pm_.c:287
-#: ../../printerdrake.pm_.c:306
-#, c-format
-msgid "Printer on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:262 ../../printerdrake.pm_.c:289
-#: ../../printerdrake.pm_.c:311
-#, c-format
-msgid "USB printer \\/*%s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:379
-msgid ""
-"No local printer found! To manually install a printer enter a device name/"
-"file name in the input line (Parallel Ports: /dev/lp0, /dev/lp1, ..., "
-"equivalent to LPT1:, LPT2:, ..., 1st USB printer: /dev/usb/lp0, 2nd USB "
-"printer: /dev/usb/lp1, ...)."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:383
-#, fuzzy
-msgid "You must enter a device or file name!"
-msgstr "Āśāåäåņå URI ķą ļå÷ąņąłī óńņšīéńņāī"
-
-#: ../../printerdrake.pm_.c:394
-#, fuzzy
-msgid ""
-"No local printer found!\n"
-"\n"
-msgstr "Ėīźąėåķ ļščķņåš"
-
-#: ../../printerdrake.pm_.c:395
-msgid ""
-"Network printers can only be installed after the installation. Choose "
-"\"Hardware\" and then \"Printer\" in the Mandrake Control Center."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:396
-msgid ""
-"To install network printers, click \"Cancel\", switch to the \"Expert Mode"
-"\", and click \"Add a new printer\" again."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:407
-msgid ""
-"The following printer was auto-detected, if it is not the one you want to "
-"configure, enter a device name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:408
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up or enter a device name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:410
-msgid ""
-"The following printer was auto-detected. The configuration of the printer "
-"will work fully automatically. If your printer was not correctly detected or "
-"if you prefer a customized printer configuration, turn on \"Manual "
-"configuration\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:411
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up. The configuration of the printer will work fully "
-"automatically. If your printer was not correctly detected or if you prefer a "
-"customized printer configuration, turn on \"Manual configuration\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:413
-msgid ""
-"Please choose the port where your printer is connected to or enter a device "
-"name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:414
-#, fuzzy
-msgid "Please choose the port where your printer is connected to."
-msgstr "Ģīė˙, čēįåšåņå ńåščåķ ļīšņ źśģ źīéņī ńāśšēąķ ģīäåģśņ āč."
-
-#: ../../printerdrake.pm_.c:416
-msgid ""
-" (Parallel Ports: /dev/lp0, /dev/lp1, ..., equivalent to LPT1:, LPT2:, ..., "
-"1st USB printer: /dev/usb/lp0, 2nd USB printer: /dev/usb/lp1, ...)."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:421
-#, fuzzy
-msgid "You must choose/enter a printer/device!"
-msgstr "Āśāåäåņå URI ķą ļå÷ąņąłī óńņšīéńņāī"
-
-#: ../../printerdrake.pm_.c:441
-#, fuzzy
-msgid "Manual configuration"
-msgstr "Ķąńņšīéźą ķą öāåņīāå"
-
-#: ../../printerdrake.pm_.c:467
-msgid ""
-"Is your printer a multi-function device from HP (OfficeJet, PSC, PhotoSmart, "
-"LaserJet 1100/1200/1220/3200/3300 with scanner)?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:482
-#, fuzzy
-msgid "Installing HPOJ package..."
-msgstr "Čķńņąėčšąķå ķą ļąźåņč ..."
-
-#: ../../printerdrake.pm_.c:487
-msgid "Checking device and configuring HPOJ ..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:505
-#, fuzzy
-msgid "Installing SANE package..."
-msgstr "Čķńņąėčšąķå ķą ļąźåņč ..."
-
-#: ../../printerdrake.pm_.c:517
-msgid "Scanning on your HP multi-function device"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:534
-#, fuzzy
-msgid "Making printer port available for CUPS ..."
-msgstr "×åņåķå ķą įąēąņą äąķķč īņ ļščķņåšč ..."
-
-#: ../../printerdrake.pm_.c:544 ../../printerdrake.pm_.c:1018
-#: ../../printerdrake.pm_.c:1132
-msgid "Reading printer database ..."
-msgstr "×åņåķå ķą įąēąņą äąķķč īņ ļščķņåšč ..."
-
-#: ../../printerdrake.pm_.c:624
-msgid "Remote lpd Printer Options"
-msgstr "Īļöčč ķą īņäąėå÷åķ lpd-ļščķņåš"
-
-#: ../../printerdrake.pm_.c:625
-#, fuzzy
-msgid ""
-"To use a remote lpd printer, you need to supply the hostname of the printer "
-"server and the printer name on that server."
-msgstr ""
-"Ēą äą čēļīėēāąņå īņäąėå÷åķ lpd ļščķņåš, ņš˙įāą\n"
-"äą ļšåäīńņąāčņå čģåķąņą ķą õīńņą ķą ļščķņåšķč˙ ńśšāśš č\n"
-"čģåņī ķą ļščķņåšą ķą ņīēč ńśšāśš."
-
-#: ../../printerdrake.pm_.c:626
-msgid "Remote host name"
-msgstr "Čģå ķą īņäąėå÷åķ õīńņ"
-
-#: ../../printerdrake.pm_.c:627
-msgid "Remote printer name"
-msgstr "Čģå ķą īņäąėå÷åķ ļščķņåš"
-
-#: ../../printerdrake.pm_.c:630
-msgid "Remote host name missing!"
-msgstr "Ėčļńāą čģå ķą čģå ķą õīńņ !"
-
-#: ../../printerdrake.pm_.c:634
-msgid "Remote printer name missing!"
-msgstr "Ėčļńāą čģå ķą īņäąėå÷åķ ļščķņåš !"
-
-#: ../../printerdrake.pm_.c:702
-msgid "SMB (Windows 9x/NT) Printer Options"
-msgstr "Ķąńņšīéźč ķą SMB (Windows 9x/NT) ļščķņåš"
-
-#: ../../printerdrake.pm_.c:703
-#, fuzzy
-msgid ""
-"To print to a SMB printer, you need to provide the SMB host name (Note! It "
-"may be different from its TCP/IP hostname!) and possibly the IP address of "
-"the print server, as well as the share name for the printer you wish to "
-"access and any applicable user name, password, and workgroup information."
-msgstr ""
-"Ēą äą ļå÷ąņąņå ķą SMB ļščķņåš, ņš˙įāą äą äąäåņå čģåņī\n"
-"ķą SMB õīńņą (Ēąįåėåęźą ! Ņī ģīęå äą å šąēėč÷ķī īņ TCP/IP õīńņą !)\n"
-"č āśēģīęķī IP ąäšåńą ķą ļščķņåšńźč˙ ńśšāśš, źąźņī č īįłīņī čģå ķą\n"
-"ļščķņåšą, äī źīéņī čńźąņå äīńņśļ č ļīäõīä˙łī čģåķ, ļąšīėą č čķōīšģąöč˙\n"
-"ēą šąįīņķąņą ćšóļą."
-
-#: ../../printerdrake.pm_.c:704
-msgid "SMB server host"
-msgstr "Õīńņ ķą SMB ńśšāśš"
-
-#: ../../printerdrake.pm_.c:705
-msgid "SMB server IP"
-msgstr "IP ķą SMB ńśšāśš:"
-
-#: ../../printerdrake.pm_.c:706
-msgid "Share name"
-msgstr "Īįłī čģå"
-
-#: ../../printerdrake.pm_.c:709
-msgid "Workgroup"
-msgstr "Šąįīņķą ćšóļą"
-
-#: ../../printerdrake.pm_.c:716
-msgid "Either the server name or the server's IP must be given!"
-msgstr "Ņš˙įāą äą įśäąņ ēąäąäåķč č čģåņī č IP ąäšåńą ķą ńśšāśšą !"
-
-#: ../../printerdrake.pm_.c:720
-msgid "Samba share name missing!"
-msgstr "Ėčļńāą čģå ķą SAMBA share !"
-
-#: ../../printerdrake.pm_.c:725
-msgid "SECURITY WARNING!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:726
-#, c-format
-msgid ""
-"You are about to set up printing to a Windows account with password. Due to "
-"a fault in the architecture of the Samba client software the password is put "
-"in clear text into the command line of the Samba client used to transmit the "
-"print job to the Windows server. So it is possible for every user on this "
-"machine to display the password on the screen by issuing commands as \"ps "
-"auxwww\".\n"
-"\n"
-"We recommend to make use of one of the following alternatives (in all cases "
-"you have to make sure that only machines from your local network have access "
-"to your Windows server, for example by means of a firewall):\n"
-"\n"
-"Use a password-less account on your Windows server, as the \"GUEST\" account "
-"or a special account dedicated for printing. Do not remove the password "
-"protection from a personal account or the administrator account.\n"
-"\n"
-"Set up your Windows server to make the printer available under the LPD "
-"protocol. Then set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:736
-#, c-format
-msgid ""
-"Set up your Windows server to make the printer available under the IPP "
-"protocol and set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:739
-msgid ""
-"Connect your printer to a Linux server and let your Windows machine(s) "
-"connect to it as a client.\n"
-"\n"
-"Do you really want to continue setting up this printer as you are doing now?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:801
-msgid "NetWare Printer Options"
-msgstr "Īļöčč ēą NetWare ļščķņåš"
-
-#: ../../printerdrake.pm_.c:802
-#, fuzzy
-msgid ""
-"To print on a NetWare printer, you need to provide the NetWare print server "
-"name (Note! it may be different from its TCP/IP hostname!) as well as the "
-"print queue name for the printer you wish to access and any applicable user "
-"name and password."
-msgstr ""
-"Ēą äą ļå÷ąņčņå ķą NetWare ļščķņåš ,ņš˙įāą äą ēķąåņå čģåī ģó č āśēģīęķī\n"
-"ąäšåńą ķą ńśšāśšą, źąźņī č čģåņī ķą īļąųźąņą,ļīņšåįčņåėńźīņī čģå,ļąšīėą."
-
-#: ../../printerdrake.pm_.c:803
-msgid "Printer Server"
-msgstr "Ńśšāśš ķą ļščķņåšą"
-
-#: ../../printerdrake.pm_.c:804
-msgid "Print Queue Name"
-msgstr "Čģå ķą ļå÷ąņķąņą īļąųźąņą"
-
-#: ../../printerdrake.pm_.c:809
-msgid "NCP server name missing!"
-msgstr "Ėčļńāą čģå ķą NCP ńśšāśš !"
-
-#: ../../printerdrake.pm_.c:813
-msgid "NCP queue name missing!"
-msgstr "Ėčļńāą čģå ķą NCP īļąųźą !"
-
-#: ../../printerdrake.pm_.c:852
-#, fuzzy
-msgid "TCP/Socket Printer Options"
-msgstr "Īļöčč ķą Socket ļščķņåš"
-
-#: ../../printerdrake.pm_.c:853
-#, fuzzy
-msgid ""
-"To print to a TCP or socket printer, you need to provide the host name of "
-"the printer and optionally the port number. On HP JetDirect servers the port "
-"number is usually 9100, on other servers it can vary. See the manual of your "
-"hardware."
-msgstr ""
-"Ēą äą ļå÷ąņąņå ķą socket ļščķņåš, ņš˙įāą äą ļšåäīńņąāčņå\n"
-"čģåņī ķą õīńņą ķą ļščķņåšą č, åāåķņóąėķī, ķīģåš ķą ļīšņ.\n"
-"Ķą HP JetDirect ńśšāśšč, ķīģåšśņ ķą ļīšņą īįčźķīāåķķī å 9100,\n"
-"ķą äšóćč ńśšāśšč ģīęå äą āąščšą. Āčęņå šśźīāīńņāīņī ķą\n"
-"õąšäóåšą ńč."
-
-#: ../../printerdrake.pm_.c:854
-msgid "Printer host name"
-msgstr "Čģå ķą õīńņ ķą ļščķņåšą"
-
-#: ../../printerdrake.pm_.c:858
-msgid "Printer host name missing!"
-msgstr "Ėčļńāą čģå ķą õīńņ ķą ļščķņåša !"
-
-#: ../../printerdrake.pm_.c:887 ../../printerdrake.pm_.c:889
-msgid "Printer Device URI"
-msgstr "Ļå÷ąņąłī óńņšīéńņāī URI"
-
-#: ../../printerdrake.pm_.c:888
-msgid ""
-"You can specify directly the URI to access the printer. The URI must fulfill "
-"either the CUPS or the Foomatic specifications. Note that not all URI types "
-"are supported by all the spoolers."
-msgstr ""
-"Ņš˙įāą äčšåźņķī äą īļšåäåėčņå URI ēą äīńņśļ äī ļščķņåšą. URI ņš˙įāą äą "
-"čēļśėķč čėč CUPS čėč Foomatic ńļåöčōčźąöččņå. Īņįåėåęåņå, ÷å ķå āńč÷źč "
-"ņčļīāå URI ńå ļīääšśšęąņ īņ spooler-čņå."
-
-#: ../../printerdrake.pm_.c:903
-msgid "A valid URI must be entered!"
-msgstr "Ņš˙įāą äą įśäå āśāåäåķ āąėčäåķ URI !"
-
-#: ../../printerdrake.pm_.c:1004
-#, fuzzy
-msgid ""
-"Every printer needs a name (for example \"printer\"). The Description and "
-"Location fields do not need to be filled in. They are comments for the users."
-msgstr ""
-"Āńåźč ļščķņåš ńå ķóęäąå īņ čģå (ķąļščģåš lp).\n"
-"Ļīėåņąņą Īļčńąķčå č Ģåńņīļīėīęå ķå ņš˙įāą äą įśäąņ\n"
-"ļīļśėāąķč. Čģą źīģåķņąšč ēą ļīņšåįčņåėčņå."
-
-#: ../../printerdrake.pm_.c:1005
-msgid "Name of printer"
-msgstr "Čģå ķą ļščķņåš"
-
-#: ../../printerdrake.pm_.c:1006
-msgid "Description"
-msgstr "Īļčńąķčå"
-
-#: ../../printerdrake.pm_.c:1007
-msgid "Location"
-msgstr "Ģåńņīļīėīęåķčå"
-
-#: ../../printerdrake.pm_.c:1021
-msgid "Preparing printer database ..."
-msgstr "Ļīäćīņā˙ķå ķą įąēąņą äąķķč īņ ļščķņåšč ..."
-
-#: ../../printerdrake.pm_.c:1112
-#, fuzzy
-msgid "Your printer model"
-msgstr "Čģå ķą īņäąėå÷åķ ļščķņåš"
-
-#: ../../printerdrake.pm_.c:1113
-#, c-format
-msgid ""
-"Printerdrake has compared the model name resulting from the printer auto-"
-"detection with the models listed in its printer database to find the best "
-"match. This choice can be wrong, especially when your printer is not listed "
-"at all in the database. So check whether the choice is correct and click "
-"\"The model is correct\" if so and if not, click \"Select model manually\" "
-"so that you can choose your printer model manually on the next screen.\n"
-"\n"
-"For your printer Printerdrake has found:\n"
-"\n"
-"%s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1118 ../../printerdrake.pm_.c:1121
-#, fuzzy
-msgid "The model is correct"
-msgstr "Āńč÷źī ļšąāčėķī ėč å ?"
-
-#: ../../printerdrake.pm_.c:1119 ../../printerdrake.pm_.c:1120
-#: ../../printerdrake.pm_.c:1123
-#, fuzzy
-msgid "Select model manually"
-msgstr "Čģå ķą īņäąėå÷åķ ļščķņåš"
-
-#: ../../printerdrake.pm_.c:1139
-msgid "Printer model selection"
-msgstr "Čēįīš ģīäåė ķą ļščķņåšą"
-
-#: ../../printerdrake.pm_.c:1140
-msgid "Which printer model do you have?"
-msgstr "Źąźśā ģīäåė ļščķņåš čģąņå ?"
-
-#: ../../printerdrake.pm_.c:1141
-msgid ""
-"\n"
-"\n"
-"Please check whether Printerdrake did the auto-detection of your printer "
-"model correctly. Search the correct model in the list when the cursor is "
-"standing on a wrong model or on \"Raw printer\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1144
-msgid ""
-"If your printer is not listed, choose a compatible (see printer manual) or a "
-"similar one."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1220
-msgid "OKI winprinter configuration"
-msgstr "Ķąńņšīéźč ķą OKI Winprinter"
-
-#: ../../printerdrake.pm_.c:1221
-msgid ""
-"You are configuring an OKI laser winprinter. These printers\n"
-"use a very special communication protocol and therefore they work only when "
-"connected to the first parallel port. When your printer is connected to "
-"another port or to a print server box please connect the printer to the "
-"first parallel port before you print a test page. Otherwise the printer will "
-"not work. Your connection type setting will be ignored by the driver."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1264 ../../printerdrake.pm_.c:1291
-msgid "Lexmark inkjet configuration"
-msgstr "Ķąńņšīéźą ķą Lexmark inkjet"
-
-#: ../../printerdrake.pm_.c:1265
-#, fuzzy
-msgid ""
-"The inkjet printer drivers provided by Lexmark only support local printers, "
-"no printers on remote machines or print server boxes. Please connect your "
-"printer to a local port or configure it on the machine where it is connected "
-"to."
-msgstr ""
-"Inkjet ļščķņåšķčņå äšąéāåšč ļšåäīńņąāåķč īņ Lexmark ļīääśšęąņ\n"
-"ńąģī ėīźąėķč ļščķņåšč, įåē ļščķņåšč ķą īņäąėå÷åķč ģąųčķč čėč\n"
-"ļščķņåšķč ģąųčķč. Ģīė˙, ńāśšęåņå ļščķņåšą ńč ķą ėīźąėåķ ļīšņ\n"
-"čėč ćī ķąńņšīéņå ķą ģąųčķąņą, źśģ źī˙ņī å ńāśšēąķ."
-
-#: ../../printerdrake.pm_.c:1292
-msgid ""
-"To be able to print with your Lexmark inkjet and this configuration, you "
-"need the inkjet printer drivers provided by Lexmark (http://www.lexmark."
-"com/). Go to the US site and click on the \"Drivers\" button. Then choose "
-"your model and afterwards \"Linux\" as operating system. The drivers come as "
-"RPM packages or shell scripts with interactive graphical installation. You "
-"do not need to do this configuration by the graphical frontends. Cancel "
-"directly after the license agreement. Then print printhead alignment pages "
-"with \"lexmarkmaintain\" and adjust the head alignment settings with this "
-"program."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1508
-#, fuzzy
-msgid ""
-"Printer default settings\n"
-"\n"
-"You should make sure that the page size and the ink type/printing mode (if "
-"available) and also the hardware configuration of laser printers (memory, "
-"duplex unit, extra trays) are set correctly. Note that with a very high "
-"printout quality/resolution printing can get substantially slower."
-msgstr ""
-"Ķąńņšīéźč ķą ļščķņåšą ļī ļīäšąēįčšąķå\n"
-"Ņš˙įāą äą ńņå ńčćóšķč, ÷å ćīėåģčķąņą ķą ńņšąķčöąņą\n"
-"č ņčļą ķą ģąńņčėīņī (ąźī čģą) ńą ķąńņšīåķč ļšąāčėķī.\n"
-"Īņįåėåęåņå, ÷å ļšč ģķīćī āčńīźī źą÷åńņī ķą čēõīäą ķą\n"
-"ļščķņåšą, ņīé ģīęå ēķą÷čņåėķī äą ńå ēąįąāč."
-
-#: ../../printerdrake.pm_.c:1517
-#, c-format
-msgid "Option %s must be an integer number!"
-msgstr "Ķąńņšīéźąņą %s ņš˙įāą äą å ö˙ėī ÷čńėī !"
-
-#: ../../printerdrake.pm_.c:1521
-#, c-format
-msgid "Option %s must be a number!"
-msgstr "Ķąńņšīéźąņą %s ņš˙įāą äą å ÷čńėī !"
-
-#: ../../printerdrake.pm_.c:1526
-#, c-format
-msgid "Option %s out of range!"
-msgstr "Īļöč˙ņą %s å čēāśķ ćšąķčöčņå !"
-
-#: ../../printerdrake.pm_.c:1565
-#, c-format
-msgid ""
-"Do you want to set this printer (\"%s\")\n"
-"as the default printer?"
-msgstr ""
-"Čńźąņå ėč äą ķąńņšīčņå ņīēč ļščķņåš (\"%s\")\n"
-"źąņī ļščķņåš ļī ļīäšąēįčšąķå ?"
-
-#: ../../printerdrake.pm_.c:1582
-msgid "Test pages"
-msgstr "Ņåńņīāč ńņšąķčöč"
-
-#: ../../printerdrake.pm_.c:1583
-#, fuzzy
-msgid ""
-"Please select the test pages you want to print.\n"
-"Note: the photo test page can take a rather long time to get printed and on "
-"laser printers with too low memory it can even not come out. In most cases "
-"it is enough to print the standard test page."
-msgstr ""
-"Ģīė˙, čēįåšåņå ņåńņīāą ńņšąķčöą ēą ļå÷ąņ.\n"
-"Ēąįåėåęźą: ņåńņīāąņą ńņšąķčöą ēą ńķčģźą ģīęå äą īņķåģå äīńņą äśėćī\n"
-"āšåģå äą ńå čēļå÷ąņą č ķą ėąēåšķč ļščķņåšč ń ģąėźī ļąģåņ ģīęå āśīįłå\n"
-"äą ķå čēėåēå. Ā ļīāå÷åņī ńėó÷ąč å äīńņąņś÷ķą ńņąķäąšņķą ņåńņīāą ńņšąķčöą."
-
-#: ../../printerdrake.pm_.c:1587
-msgid "No test pages"
-msgstr "Įåē ņåńņīāč ńņšąķčöč"
-
-#: ../../printerdrake.pm_.c:1588
-msgid "Print"
-msgstr "Ļå÷ąņ"
-
-#: ../../printerdrake.pm_.c:1590
-msgid "Standard test page"
-msgstr "Ńņąķäąšņķą ņåńņīāą ńņšąķčöą"
-
-#: ../../printerdrake.pm_.c:1593
-msgid "Alternative test page (Letter)"
-msgstr "Ąėņåšķąņčāķą ņåńņīāą ńņšąķčöą (Ļčńģī)"
-
-#: ../../printerdrake.pm_.c:1596
-msgid "Alternative test page (A4)"
-msgstr "Ąėņåšķąņčāķą ņåńņīāą ńņšąķčöą (Ą4)"
-
-#: ../../printerdrake.pm_.c:1598
-msgid "Photo test page"
-msgstr "Ņåńņīāą ńņšąķčöą ńśń ńķčģźą"
-
-#: ../../printerdrake.pm_.c:1602
-#, fuzzy
-msgid "Do not print any test page"
-msgstr "Īņļå÷ąņāąķå ķą ņåńņīāč ńņšąķčöč"
-
-#: ../../printerdrake.pm_.c:1610 ../../printerdrake.pm_.c:1747
-msgid "Printing test page(s)..."
-msgstr "Īņļå÷ąņāąķå ķą ņåńņīā(ąņą/čņå) ńņšąķčö(ą/č) ..."
-
-#: ../../printerdrake.pm_.c:1635
-#, c-format
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-"Printing status:\n"
-"%s\n"
-"\n"
-msgstr ""
-"Ņåńņīāčņå ńņšąķčöč ńą čēļšąņåķč źśģ ļščķņåšą.\n"
-"Ģīęå äą īņķåģå ģąėźī āšåģå ļšåäč ļščķņåšą äą ēąļī÷ķå.\n"
-"Ńśńņī˙ķčå ķą ļå÷ąņą:\n"
-"%s\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:1639
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-msgstr ""
-"Ņåńņīāčņå ńņšąķčöč ńą čēļšąņåķč źśģ ļščķņåšķą.\n"
-"Ģīęå äą īņķåģå ģąėźī āšåģå ļšåäč ļščķņåšą äą ēąļī÷ķå.\n"
-
-#: ../../printerdrake.pm_.c:1646
-msgid "Did it work properly?"
-msgstr "Ļšīšąįīņč ėč źąźņī ņš˙įāą ?"
-
-#: ../../printerdrake.pm_.c:1667 ../../printerdrake.pm_.c:2732
-msgid "Raw printer"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1685
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) you can either use "
-"the command \"%s <file>\" or a graphical printing tool: \"xpp <file>\" or "
-"\"kprinter <file>\". The graphical tools allow you to choose the printer and "
-"to modify the option settings easily.\n"
-msgstr ""
-"Ēą äą čēļå÷ąņąņå ōąéė īņ źīģąķäķč˙ šåä (ņåšģčķąėåķ ļšīēīšåö), ģīęåņå čėč äą "
-"čēļīėēāąņå źīģąķäąņą \"%s <file>\" čėč ćšąōč÷ķč˙ ļå÷ąņął čķńņšóģåķņ: \"xpp "
-"<file>\" čėč \"kprinter <file>\". Ćšąōč÷ķčņå čķńņšóģåķņč āč ļīēāīė˙āąņ äą "
-"čēįčšąņå ļščķņåšą č äą ļīļšąā˙ņå ėåńķī ķąńņšīéźčņå ķą īļöččņå.\n"
-
-#: ../../printerdrake.pm_.c:1687
-msgid ""
-"These commands you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications, but here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-"Ģīęåņå äą čēļīėēāąņå ņąēč źīģąķäą č ā ļīėåņī \"Źīģąķäą ēą ļå÷ąņ\" ķą "
-"ļå÷ąņķčņå äčąėīēč ā ģķīī ļščėīęåķč˙. Ķī ņ¢ź ķå ļīńņąā˙éņå čģåņī ķą ōąéėą, "
-"ēąłīņī ņī ńå ļīäąāą īņ ļščėīęåķčåņī.\n"
-
-#: ../../printerdrake.pm_.c:1690 ../../printerdrake.pm_.c:1706
-#: ../../printerdrake.pm_.c:1716
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" command also allows to modify the option settings for a "
-"particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\". "
-msgstr ""
-"\n"
-"Źīģąķäąņą \"%s\" ńśłī ņąźą āč ļīēāīė˙āą äą ļīļšąāčņå ķąńņšīéźčņå ķą īļöččņå "
-"ēą īļšåäåėåķą šąįīņą ķą ļščķņåšą. Ļšīńņī äīįąāåņå öåėąķčņå ķąńņšīéźč źśģ "
-"źīģąķäķč˙ šåä, ķąļš. \"%s <file>\". "
-
-#: ../../printerdrake.pm_.c:1693 ../../printerdrake.pm_.c:1732
-#, fuzzy, c-format
-msgid ""
-"To know about the options available for the current printer read either the "
-"list shown below or click on the \"Print option list\" button.%s\n"
-"\n"
-msgstr ""
-"Ēą äą āčäčņå ńļčńśź ķą äīńņśļķčņå īļöčč ēą ņåźółč˙ ļščķņåš, čėč ļšī÷åņåņå "
-"ńļčńśźą ļīźąēąķ ļī-äīėó čėč öśźķåņå ķą įóņīķą \"Ńļčńśź ń īļöčč ēą ļå÷ąņ\".\n"
-
-#: ../../printerdrake.pm_.c:1696
-msgid ""
-"Here is a list of the available printing options for the current printer:\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1701 ../../printerdrake.pm_.c:1711
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\".\n"
-msgstr ""
-"Ēą äą čēļå÷ąņąņå ōąéė īņ źīģąķäķč˙ šåä (ņåšģčķąėåķ ļšīēīšåö) čēļīėēāąéņå "
-"źīģąķäąņą \"%s <file>\".\n"
-
-#: ../../printerdrake.pm_.c:1703 ../../printerdrake.pm_.c:1713
-#: ../../printerdrake.pm_.c:1723
-msgid ""
-"This command you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications. But here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-"Ģīęåņå äą čēļīėēāąņå ņąēč źīģąķäą č ā ļīėåņī \"Źīģąķäą ēą ļå÷ąņ\" ķą "
-"ļå÷ąņķčņå äčąėīēč ā ģķīćī ļščėīęåķč˙. Ķī ņóź ķå ļīńņąā˙éņå čģåņī ķą ōąéėą, "
-"ēąłīņī ņī ńå ļīäąāą īņ ļščėīęåķčåņī.\n"
-
-#: ../../printerdrake.pm_.c:1708 ../../printerdrake.pm_.c:1718
-#, fuzzy
-msgid ""
-"To get a list of the options available for the current printer click on the "
-"\"Print option list\" button."
-msgstr ""
-"Ēą äą āčäčņå ńļčńśź ń äīńņśļķčņå īļöčč ēą ņåźółč˙ ļščķņåš, öśźķåņå ķą įóņīķą "
-"\"Ńļčńśź ń īļöčč ēą ļå÷ąņ\".\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:1721
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\" or \"%s <file>\".\n"
-msgstr ""
-"Ēą äą īņļå÷ąņąņå ōąéė īņ źīģąķäķč˙ šåä (ņåšģčķąėåķ ļšīēīšåö), čēļīėēāąéņå "
-"źīģąķäąņą \"%s <file>\" čėč \"%s <file>\".\n"
-
-#: ../../printerdrake.pm_.c:1725
-msgid ""
-"You can also use the graphical interface \"xpdq\" for setting options and "
-"handling printing jobs.\n"
-"If you are using KDE as desktop environment you have a \"panic button\", an "
-"icon on the desktop, labeled with \"STOP Printer!\", which stops all print "
-"jobs immediately when you click it. This is for example useful for paper "
-"jams.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1729
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" and \"%s\" commands also allow to modify the option settings for "
-"a particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\".\n"
-msgstr ""
-"\n"
-"Źīģąķäčņå \"%s\" č \"%s\" ńśłī ņąźą ļīēāīė˙āąņ äą ļīļšąā˙ņå čēįšąķčņå "
-"ķąńņšīéźč ēą īļšåäåėåķą šąįīņą ķą ļščķņåšą. Ļšīńņī äīįąāåņå čńźąķčņå "
-"ķąńņšīéźč źśģ źīģąķäķč˙ šåä, ķąļš. \"%s <file>\".\n"
-
-#: ../../printerdrake.pm_.c:1738 ../../printerdrake.pm_.c:1744
-#: ../../printerdrake.pm_.c:1745 ../../printerdrake.pm_.c:1746
-#: ../../printerdrake.pm_.c:2716 ../../standalone/drakbackup_.c:754
-#: ../../standalone/drakbackup_.c:2458 ../../standalone/drakfont_.c:577
-#: ../../standalone/drakfont_.c:791
-msgid "Close"
-msgstr "Ēąņāīšč"
-
-#: ../../printerdrake.pm_.c:1741 ../../printerdrake.pm_.c:1753
-#, fuzzy, c-format
-msgid "Printing/Scanning on \"%s\""
-msgstr "Ļå÷ąņąķå ķą ļščķņåš \"%s\""
-
-#: ../../printerdrake.pm_.c:1742 ../../printerdrake.pm_.c:1754
-#, c-format
-msgid "Printing on the printer \"%s\""
-msgstr "Ļå÷ąņąķå ķą ļščķņåš \"%s\""
-
-#: ../../printerdrake.pm_.c:1744
-msgid "Print option list"
-msgstr "Ńļčńśź ń ļščķņåšķč īļöčč"
-
-#: ../../printerdrake.pm_.c:1766
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan with \"scanimage\" (\"scanimage -d hp:%s\" to specify "
-"the scanner when you have more than one) from the command line or with the "
-"graphical interfaces \"xscanimage\" or \"xsane\". If you are using the GIMP, "
-"you can also scan by choosing the appropriate point in the \"File\"/\"Acquire"
-"\" menu. Call also \"man scanimage\" and \"man sane-hp\" on the command line "
-"to get more information.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1772
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan from the command line with \"ptal-hp %s scan ...\". "
-"Scanning via a graphical interface or from the GIMP is not supported yet for "
-"your device. More information you will find in the \"/usr/share/doc/hpoj-0.8/"
-"ptal-hp-scan.html\" file on your system. If you have an HP LaserJet 1100 or "
-"1200 you can only scan when you have the scanner option installed.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1794 ../../printerdrake.pm_.c:2221
-#: ../../printerdrake.pm_.c:2485 ../../standalone/printerdrake_.c:49
-msgid "Reading printer data ..."
-msgstr "×åņåķå ķą äąķķč īņ ļščķņåšą ..."
-
-#: ../../printerdrake.pm_.c:1814 ../../printerdrake.pm_.c:1842
-#: ../../printerdrake.pm_.c:1877
-msgid "Transfer printer configuration"
-msgstr "Ļšåķīń ķą ķąńņšīéźą ķą ļščķņåš"
-
-#: ../../printerdrake.pm_.c:1815
-#, fuzzy, c-format
-msgid ""
-"You can copy the printer configuration which you have done for the spooler %"
-"s to %s, your current spooler. All the configuration data (printer name, "
-"description, location, connection type, and default option settings) is "
-"overtaken, but jobs will not be transferred.\n"
-"Not all queues can be transferred due to the following reasons:\n"
-msgstr ""
-"Ģīęåņå äą źīļčšąņå ķąńņšīéźčņå ķą ļščķņåšą, źīčņī ńņå čēāśšųčėč\n"
-"ēą spoller %s ķą %s, ņåźółč˙ spooler. Ö˙ėąņą čķōīšģąöč˙ ēą ķąńņšīéźčņå\n"
-"(čģå ķå ļščķņåš, īļčńąķčå, ģåńņīļīėīęåķčå, āčä ķą āšśēźąņą č\n"
-"ķąńņšīéźč ļī ļīäšąēįčšąķå) ńå ļšåēąļčńāąņ, ķī šąįīņčņå ķå ńå\n"
-"ļšåõāśšė˙ņ.\n"
-"Ķå āńč÷źč īļąųźč ģīćąņ äą įśäąņ ļšåõāśšėåķč ļī ńėåäķčņå ļšč÷čķč:\n"
-
-#: ../../printerdrake.pm_.c:1818
-#, fuzzy
-msgid ""
-"CUPS does not support printers on Novell servers or printers sending the "
-"data into a free-formed command.\n"
-msgstr ""
-"CUPS ķå ļīääśšęą ļščķņåšč ķą Novell ńśšāśšč čėč ļščķņåšč\n"
-"čēļšąłąłč äąķķč āśā ńāīįīäķī-čēćšąäåķą źīģąķäą.\n"
-
-#: ../../printerdrake.pm_.c:1820
-#, fuzzy
-msgid ""
-"PDQ only supports local printers, remote LPD printers, and Socket/TCP "
-"printers.\n"
-msgstr ""
-"PDQ ļīääśšęą ńąģī ėīźąėķč ļščķņåšč, īņäąėå÷åķč LPD ļščķņåšč\n"
-"č Socket/TCP ļščķņåšč.\n"
-
-#: ../../printerdrake.pm_.c:1822
-msgid "LPD and LPRng do not support IPP printers.\n"
-msgstr "LPD č LPRng ķå ļīääśšęą IPP ļščķņåšč.\n"
-
-#: ../../printerdrake.pm_.c:1824
-#, fuzzy
-msgid ""
-"In addition, queues not created with this program or \"foomatic-configure\" "
-"cannot be transferred."
-msgstr ""
-"Źąņī äīļśėķåķčå, īļąųźčņå ķå ńśēäąäåķč ń ņąēč ļšīćšąģą\n"
-"čėč \"foomatic-configure\" ķå ģīćąņ äą įśäąņ ļšåõāśšė˙ķč."
-
-#: ../../printerdrake.pm_.c:1825
-#, fuzzy
-msgid ""
-"\n"
-"Also printers configured with the PPD files provided by their manufacturers "
-"or with native CUPS drivers cannot be transferred."
-msgstr ""
-"\n"
-"Ńśłī ņąźą, ļščķņåšč ķąńņšīåķč ń PPD ōąéėīāå ļšåäīńņąāåķč\n"
-"īņ ļšīčēāīäčņåėčņå čģ čėč ń īščćčķąėķč CUPS äšąéāåšč ķå\n"
-"ģīćąņ äą įśäąņ ļšåõāśšė˙ķč."
-
-#: ../../printerdrake.pm_.c:1826
-msgid ""
-"\n"
-"Mark the printers which you want to transfer and click \n"
-"\"Transfer\"."
-msgstr ""
-"\n"
-"Īņįåėåęåņå ļščķņåščņå, źīčņī čńźąņå äą ļšåõāśšėčņå č öśźķåņå\n"
-"\"Ļšåõāśšėč\"."
-
-#: ../../printerdrake.pm_.c:1829
-msgid "Do not transfer printers"
-msgstr "Ķå ļšåõāśšė˙é ļščķņåšč"
-
-#: ../../printerdrake.pm_.c:1830 ../../printerdrake.pm_.c:1847
-msgid "Transfer"
-msgstr "Ļšåõāśšėč"
-
-#: ../../printerdrake.pm_.c:1843
-#, c-format
-msgid ""
-"A printer named \"%s\" already exists under %s. \n"
-"Click \"Transfer\" to overwrite it.\n"
-"You can also type a new name or skip this printer."
-msgstr ""
-"Ļščķņåš ń čģå \"%s\" āå÷å ńśłåńņāóāą ā %s.\n"
-"Öśźķåņå \"Ļšåõāśšėč\", ēą äą ćī ļšåēąļčųåņå.\n"
-"Ģīęåņå ńśłī ņąźą äą ķąļčųåņå ķīāī čģå čėč äą ļšīļóńķņå ļščķņåšą."
-
-#: ../../printerdrake.pm_.c:1851
-msgid "Name of printer should contain only letters, numbers and the underscore"
-msgstr "Čģåņī ķą ļščķņåšą ņš˙įāą äą ńśäśšęą ńąģī įóźāč, ÷čńėą č ļīä÷åšņąāźą"
-
-#: ../../printerdrake.pm_.c:1856
-#, c-format
-msgid ""
-"The printer \"%s\" already exists,\n"
-"do you really want to overwrite its configuration?"
-msgstr ""
-"Ļščķņåšśņ \"%s\" āå÷å ńśłåńņāóāą,\n"
-"ķąčńņčķą ėč čńźąņå äą ļšåēąļčųåņå ķąńņšīéźąņą ?"
-
-#: ../../printerdrake.pm_.c:1864
-msgid "New printer name"
-msgstr "Ķīāī čģå ķą ļščķņåš"
-
-#: ../../printerdrake.pm_.c:1867
-#, c-format
-msgid "Transferring %s ..."
-msgstr "Ļšåõāśšė˙ķå ķą %s ..."
-
-#: ../../printerdrake.pm_.c:1878
-#, fuzzy, c-format
-msgid ""
-"You have transferred your former default printer (\"%s\"), Should it be also "
-"the default printer under the new printing system %s?"
-msgstr ""
-"Ļšåõāśšėčėč ńņå ļščķņåš ļī ļīäšąēįčšąķå (\"%s\"),\n"
-"Čńźąņå ėč äą ćī īńņąāčņå ļī ļīäšąēįčšąķå ā ķīāąņą\n"
-"ļščķņåšķą ńčńņåģą %s ?"
-
-#: ../../printerdrake.pm_.c:1887
-msgid "Refreshing printer data ..."
-msgstr "Īļšåńķ˙āąķå ķą äąķķčņå īņ ļščķņåšą ..."
-
-#: ../../printerdrake.pm_.c:1895 ../../printerdrake.pm_.c:1966
-#: ../../printerdrake.pm_.c:1978
-msgid "Configuration of a remote printer"
-msgstr "Ķąńņšīéźą ķą īņäąėå÷åķ ļščķņåš"
-
-#: ../../printerdrake.pm_.c:1896
-msgid "Starting network ..."
-msgstr "Ńņąšņčšąķå ģšåęąņą ...."
-
-#: ../../printerdrake.pm_.c:1930 ../../printerdrake.pm_.c:1934
-#: ../../printerdrake.pm_.c:1936
-msgid "Configure the network now"
-msgstr "Ā ģīģåķņą ķąńņšīéāąģ ģšåęąņą"
-
-#: ../../printerdrake.pm_.c:1931
-msgid "Network functionality not configured"
-msgstr "Ōóķźöčīķąėķīńņņą ķą ģšåęąņą ķå å ķąńņšīåķą"
-
-#: ../../printerdrake.pm_.c:1932
-msgid ""
-"You are going to configure a remote printer. This needs working network "
-"access, but your network is not configured yet. If you go on without network "
-"configuration, you will not be able to use the printer which you are "
-"configuring now. How do you want to proceed?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1935
-msgid "Go on without configuring the network"
-msgstr "Ļšīäśėęč įåē ķąńņīéźą ķą ģšåęąņą"
-
-#: ../../printerdrake.pm_.c:1968
-msgid ""
-"The network configuration done during the installation cannot be started "
-"now. Please check whether the network gets accessable after booting your "
-"system and correct the configuration using the Mandrake Control Center, "
-"section \"Network & Internet\"/\"Connection\", and afterwards set up the "
-"printer, also using the Mandrake Control Center, section \"Hardware\"/"
-"\"Printer\""
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1969
-#, fuzzy
-msgid ""
-"The network access was not running and could not be started. Please check "
-"your configuration and your hardware. Then try to configure your remote "
-"printer again."
-msgstr ""
-"Ķ˙ģąųå äīńņśļ äī ģšåęąņą č ņąźśā ķå ģīęåųå äą įśäå\n"
-"óńņąķīāåķ. Ģīė˙, ļšīāåšåņå ķąńņšīéźąņą č õąšäóåšą\n"
-"ńč. Ņīćąāą īļčņąéņå äą ķąńņšīčņå īņäąėå÷åķč˙ ļščķņåš\n"
-"īņķīāī."
-
-#: ../../printerdrake.pm_.c:1979
-msgid "Restarting printing system ..."
-msgstr "Šåńņąšņčšąķå ķą ļščķņåšķąņą ńčńņåģą"
-
-#: ../../printerdrake.pm_.c:2017
-msgid "high"
-msgstr "āčńīźī"
-
-#: ../../printerdrake.pm_.c:2017
-msgid "paranoid"
-msgstr "ļąšąķīč÷ķī"
-
-#: ../../printerdrake.pm_.c:2018
-#, c-format
-msgid "Installing a printing system in the %s security level"
-msgstr "Čķńņąėčšąķå ķą ļščķņåšķąņą ńčńņåģą ā %s ķčāī ķą ńčćóšķīńņ"
-
-#: ../../printerdrake.pm_.c:2019
-#, c-format
-msgid ""
-"You are about to install the printing system %s on a system running in the %"
-"s security level.\n"
-"\n"
-"This printing system runs a daemon (background process) which waits for "
-"print jobs and handles them. This daemon is also accessable by remote "
-"machines through the network and so it is a possible point for attacks. "
-"Therefore only a few selected daemons are started by default in this "
-"security level.\n"
-"\n"
-"Do you really want to configure printing on this machine?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2051
-msgid "Starting the printing system at boot time"
-msgstr "Ńņąšņčšąķå ķą ļščķņåšķąņą ńčńņåģą ļšč ńņąšņčšąķå"
-
-#: ../../printerdrake.pm_.c:2052
-#, c-format
-msgid ""
-"The printing system (%s) will not be started automatically when the machine "
-"is booted.\n"
-"\n"
-"It is possible that the automatic starting was turned off by changing to a "
-"higher security level, because the printing system is a potential point for "
-"attacks.\n"
-"\n"
-"Do you want to have the automatic starting of the printing system turned on "
-"again?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2075 ../../printerdrake.pm_.c:2113
-#: ../../printerdrake.pm_.c:2143 ../../printerdrake.pm_.c:2176
-#: ../../printerdrake.pm_.c:2281
-msgid "Checking installed software..."
-msgstr "Ļšīāåšźą ķą čķńņąėčšąķč˙ ńīōņóåš..."
-
-#: ../../printerdrake.pm_.c:2117
-msgid "Removing LPRng..."
-msgstr "Čēņščāąķå ķą LPRng..."
-
-#: ../../printerdrake.pm_.c:2147
-msgid "Removing LPD..."
-msgstr "Čēņščāąķå ķą LPD..."
-
-#: ../../printerdrake.pm_.c:2205
-msgid "Select Printer Spooler"
-msgstr "Čēįåšåņå ļščķņåšåķ spooler"
-
-#: ../../printerdrake.pm_.c:2206
-msgid "Which printing system (spooler) do you want to use?"
-msgstr "Źī˙ ļščķņåšķą ńčńņåģą (spooler) čēźąņå äą čēļīėēāąņå ?"
-
-#: ../../printerdrake.pm_.c:2239
-#, c-format
-msgid "Configuring printer \"%s\" ..."
-msgstr "Ķąńņšīéźą ķą ļščķņåšą \"%s\" ..."
-
-#: ../../printerdrake.pm_.c:2252
-#, fuzzy
-msgid "Installing Foomatic ..."
-msgstr "Čķńņąėčšąķå ķą ļąźåņč ..."
-
-#: ../../printerdrake.pm_.c:2309 ../../printerdrake.pm_.c:2348
-#: ../../printerdrake.pm_.c:2733 ../../printerdrake.pm_.c:2803
-msgid "Printer options"
-msgstr "Īļöčč ķą ļščķņåšą"
-
-#: ../../printerdrake.pm_.c:2318
-msgid "Preparing PrinterDrake ..."
-msgstr "Ļīäćīņā˙ķå ķą PinterDrake ..."
-
-#: ../../printerdrake.pm_.c:2335 ../../printerdrake.pm_.c:2890
-#, fuzzy
-msgid "Configuring applications..."
-msgstr "Ķąńņšīéźą ķą ļščķņåšą \"%s\" ..."
-
-#: ../../printerdrake.pm_.c:2355
-msgid "Would you like to configure printing?"
-msgstr "Čńźąņå ėč äą ķąńņšīčņå ļå÷ąņą ?"
-
-#: ../../printerdrake.pm_.c:2367
-msgid "Printing system: "
-msgstr "Ļå÷ąņķą ńčńņåģą: "
-
-#: ../../printerdrake.pm_.c:2415
-#, fuzzy
-msgid "Printerdrake"
-msgstr "Ļščķņåš"
-
-#: ../../printerdrake.pm_.c:2419
-#, fuzzy
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; to view information about it; "
-"or to make a printer on a remote CUPS server available for Star Office/"
-"OpenOffice.org."
-msgstr ""
-"Ńėåäķčņå ļščķņåšč ńą ķąńņšīåķč.\n"
-"Öśźķåņå ķą åäčķ īņ ņ˙õ, ēą äą ćī šåäąźņčšąņå\n"
-"čėč ēą äą ļīėó÷čņå čķōīšģąöč˙ ēą ķåćī, čėč\n"
-"āśšõó \"Äīįąāč Ļščķņåš\", ēą äą äīįąāčņå ķīā ļščķņåš."
-
-#: ../../printerdrake.pm_.c:2420
-#, fuzzy
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; or to view information about "
-"it."
-msgstr ""
-"Ńėåäķčņå ļščķņåšč ńą ķąńņšīåķč.\n"
-"Öśźķåņå ķą åäčķ īņ ņ˙õ, ēą äą ćī šåäąźņčšąņå\n"
-"čėč ēą äą ļīėó÷čņå čķōīšģąöč˙ ēą ķåćī, čėč\n"
-"āśšõó \"Äīįąāč Ļščķņåš\", ēą äą äīįąāčņå ķīā ļščķņåš."
-
-#: ../../printerdrake.pm_.c:2446
-msgid "Refresh printer list (to display all available remote CUPS printers)"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2464
-#, fuzzy
-msgid "Change the printing system"
-msgstr "Ķąńņīéźą ķą ģšåęąņą"
-
-#: ../../printerdrake.pm_.c:2469 ../../standalone/draknet_.c:278
-msgid "Normal Mode"
-msgstr "Ķīšģąėåķ šåęčģ"
-
-#: ../../printerdrake.pm_.c:2625 ../../printerdrake.pm_.c:2675
-#: ../../printerdrake.pm_.c:2884
-msgid "Do you want to configure another printer?"
-msgstr "Čńźąņå ėč äą ķąńņšīčņå äšóć ļščķņåš ?"
-
-#: ../../printerdrake.pm_.c:2711
-msgid "Modify printer configuration"
-msgstr "Ļīļšąāč ķąńņšīéźčņå ķą ļščķņåš"
-
-#: ../../printerdrake.pm_.c:2713
-#, fuzzy, c-format
-msgid ""
-"Printer %s\n"
-"What do you want to modify on this printer?"
-msgstr ""
-"Ļščķņåš %s: %s %s\n"
-"Źąźāī čńźąņå äą ļīļšąāčņå ļī ņīēč ļščķņåš ?"
-
-#: ../../printerdrake.pm_.c:2717
-msgid "Do it!"
-msgstr "Äąāąé !"
-
-#: ../../printerdrake.pm_.c:2722 ../../printerdrake.pm_.c:2777
-msgid "Printer connection type"
-msgstr "Ņčļ ķą āšśēźąņą źśģ ļščķņåšą"
-
-#: ../../printerdrake.pm_.c:2723 ../../printerdrake.pm_.c:2781
-msgid "Printer name, description, location"
-msgstr "Čģå ķą ļščķņåšą, īļčńąķčå, ģåńņīļīėīęåķčå"
-
-#: ../../printerdrake.pm_.c:2725 ../../printerdrake.pm_.c:2796
-msgid "Printer manufacturer, model, driver"
-msgstr "Ļšīčēāīäčņåė ķą ļščķņåšą, ģīäåė, äšąéāåš"
-
-#: ../../printerdrake.pm_.c:2726 ../../printerdrake.pm_.c:2797
-msgid "Printer manufacturer, model"
-msgstr "Ļšīčēāīäčņåė ķą ļščķņåšą, ģīäåė"
-
-#: ../../printerdrake.pm_.c:2735 ../../printerdrake.pm_.c:2807
-msgid "Set this printer as the default"
-msgstr "Īļšåäåėč ņīēč ļščķņåš ēą ļīėēāąķå ļī ļīäšąēįčšąķå"
-
-#: ../../printerdrake.pm_.c:2737 ../../printerdrake.pm_.c:2812
-msgid "Add this printer to Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2738 ../../printerdrake.pm_.c:2821
-msgid "Remove this printer from Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2739 ../../printerdrake.pm_.c:2830
-msgid "Print test pages"
-msgstr "Īņļå÷ąņāąķå ķą ņåńņīāč ńņšąķčöč"
-
-#: ../../printerdrake.pm_.c:2740 ../../printerdrake.pm_.c:2832
-#, fuzzy
-msgid "Know how to use this printer"
-msgstr "Čńźąņå ėč äą ķąńņšīčņå äšóć ļščķņåš ?"
-
-#: ../../printerdrake.pm_.c:2742 ../../printerdrake.pm_.c:2834
-msgid "Remove printer"
-msgstr "Ļšåģąõāąķå ķą ļščķņåšą"
-
-#: ../../printerdrake.pm_.c:2786
-#, c-format
-msgid "Removing old printer \"%s\" ..."
-msgstr "Čēņščāąķå ķą ńņąš ļščķņåš \"%s\" ..."
-
-#: ../../printerdrake.pm_.c:2810
-msgid "Default printer"
-msgstr "Ļščķņåš ļī ļīäšąēįčšąķå"
-
-#: ../../printerdrake.pm_.c:2811
-#, c-format
-msgid "The printer \"%s\" is set as the default printer now."
-msgstr "Ļščķņåšśņ \"%s\" āå÷å å īļšåäåėåķ ēą ļīėēāąķå ļī ļīäšąēįčšąķå."
-
-#: ../../printerdrake.pm_.c:2815 ../../printerdrake.pm_.c:2818
-msgid "Adding printer to Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2816
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully added to Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2819
-#, c-format
-msgid "Failed to add the printer \"%s\" to Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2824 ../../printerdrake.pm_.c:2827
-msgid "Removing printer from Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2825
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully removed from Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2828
-#, c-format
-msgid "Failed to remove the printer \"%s\" from Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2836
-#, c-format
-msgid "Do you really want to remove the printer \"%s\"?"
-msgstr "Ķąčńņčķą ėč čńźąņå äą ļšåģąõķåņå ļščķņåšą \"%s\" ?"
-
-#: ../../printerdrake.pm_.c:2838
-#, c-format
-msgid "Removing printer \"%s\" ..."
-msgstr "Čēņščāąķå ķą ļščķņåšą \"%s\" ..."
-
-#: ../../proxy.pm_.c:29 ../../proxy.pm_.c:37 ../../proxy.pm_.c:58
-#: ../../proxy.pm_.c:78
-msgid "Proxy configuration"
-msgstr "Proxy ķąńņšīéźą"
-
-#: ../../proxy.pm_.c:30
-msgid ""
-"Welcome to the proxy configuration utility.\n"
-"\n"
-"Here, you'll be able to set up your http and ftp proxies\n"
-"with or without login and password\n"
-msgstr ""
-"Äīįšå äīųėč ā ķąńņšīéźąņą ķą Proxy.\n"
-"\n"
-"Ņóź łå ģīęåņå äą óńņąķīāčņå āąųčņå HTTP č FTP proxy\n"
-"ńśń čėč įåē ļīņšåįčņåėńźī čģå č ļąšīėą\n"
-
-#: ../../proxy.pm_.c:38
-msgid ""
-"Please fill in the http proxy informations\n"
-"Leave it blank if you don't want an http proxy"
-msgstr ""
-"Ģīė˙, ļīļśėķåņå čķōīšģąöč˙ņą ēą HTTP proxy.\n"
-"Īńņąāåņå ļšąēķī, ąźī ķå čńźąņå HTTP proxy."
-
-#: ../../proxy.pm_.c:39 ../../proxy.pm_.c:60
-msgid "URL"
-msgstr "URL"
-
-#: ../../proxy.pm_.c:40 ../../proxy.pm_.c:61
-msgid "port"
-msgstr "ļīšņ"
-
-#: ../../proxy.pm_.c:44
-msgid "Url should begin with 'http:'"
-msgstr "URL ņš˙įāą äą å ēąļī÷āą ń 'http:'"
-
-#: ../../proxy.pm_.c:48 ../../proxy.pm_.c:69
-msgid "The port part should be numeric"
-msgstr "Ķīģåšśņ ķą ļīšņ ņš˙įāą äą å öčōšą"
-
-#: ../../proxy.pm_.c:59
-msgid ""
-"Please fill in the ftp proxy informations\n"
-"Leave it blank if you don't want an ftp proxy"
-msgstr ""
-"Ģīė˙, ļīļśėķåņå čķōīšģąöč˙ņą ēą FTP proxy.\n"
-"Īńņąāåņå ļšąēķī, ąźī ķå čńźąņå FTP proxy."
-
-#: ../../proxy.pm_.c:65
-msgid "Url should begin with 'ftp:'"
-msgstr "URL ņš˙įāą äą ēąļī÷āą ń 'ftp:'"
-
-#: ../../proxy.pm_.c:79
-msgid ""
-"Please enter proxy login and password, if any.\n"
-"Leave it blank if you don't want login/passwd"
-msgstr ""
-"Ģīė˙, āśāåäåņå čģå č ļąšīėą ēą proxy, ąźī čģą.\n"
-"Īńņąāåņå ļšąēķī, ąźī ķå čńźąņå čģå/ļąšīėą"
-
-#: ../../proxy.pm_.c:80
-msgid "login"
-msgstr "ļīņšåįčņåėńźī čģå"
-
-#: ../../proxy.pm_.c:82
-msgid "password"
-msgstr "ļąšīėą"
-
-#: ../../proxy.pm_.c:84
-msgid "re-type password"
-msgstr "īłå āåäķśę ļąšīėą"
-
-#: ../../proxy.pm_.c:88
-msgid "The passwords don't match. Try again!"
-msgstr "Ļąšīėčņå ķą ńśāļąäąņ. Īļčņąéņå ļąź !"
-
-#: ../../raid.pm_.c:35
-#, c-format
-msgid "Can't add a partition to _formatted_ RAID md%d"
-msgstr "Ķå ģīćą äą ļščįąā˙ ä˙ė źśģ _ōīšģąņčšąķ_ RAID md%d"
-
-#: ../../raid.pm_.c:111
-#, c-format
-msgid "Can't write file %s"
-msgstr "Ōąéėśņ %s ķå ģīęå äą įśäå ēąļčńąķ"
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed"
-msgstr "mkraid ļšīļąäķą"
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed (maybe raidtools are missing?)"
-msgstr "mkraid ļšīļąäķą (ģīęå įč raidtools ėčļńāąņ ?)"
-
-#: ../../raid.pm_.c:152
-#, c-format
-msgid "Not enough partitions for RAID level %d\n"
-msgstr "Ķ˙ģą äīńņąņś÷ķī ä˙ėīāå ēą RAID ķčāī %d\n"
-
-#: ../../services.pm_.c:14
-msgid "Launch the ALSA (Advanced Linux Sound Architecture) sound system"
-msgstr "Ļóńķč ALSA (Advanced Linux Sound Architecture) ēāóźīāąņą ńčńņåģą"
-
-#: ../../services.pm_.c:15
-msgid "Anacron a periodic command scheduler."
-msgstr "Anacrton - ļåščīäč÷ķī čēļśėķ˙āąķå ķą źīģąķäč ļī šąēļčńąķčå."
-
-#: ../../services.pm_.c:16
-msgid ""
-"apmd is used for monitoring batery status and logging it via syslog.\n"
-"It can also be used for shutting down the machine when the battery is low."
-msgstr ""
-"apmd ńå čēļīėēāą ēą ķąįėžäåķčå ķą įąņåšč˙ņą č ēąļčńāąéźč ńņąņóńą ÷šåē\n"
-"syslog. Ģīęå ńśłī äą ńå čēļīėēāą ēą ńļčšąķå ķą ģąųčķąņą, źīćąņī įąņåšč˙ņą å "
-"čēņīłåķą."
-
-#: ../../services.pm_.c:18
-msgid ""
-"Runs commands scheduled by the at command at the time specified when\n"
-"at was run, and runs batch commands when the load average is low enough."
-msgstr ""
-"Ļóńźą źīģąķäč ļī šąēļčńąķčå āśā āšåģå īļšåäåėåķī īņ źīģąķäąņą at č ļóńźą\n"
-"ķąįīš īņ äšóćč, źīćąņī ķąņīāąšåķīńņņą ńļąäķå äīńņąņś÷ķī."
-
-#: ../../services.pm_.c:20
-msgid ""
-"cron is a standard UNIX program that runs user-specified programs\n"
-"at periodic scheduled times. vixie cron adds a number of features to the "
-"basic\n"
-"UNIX cron, including better security and more powerful configuration options."
-msgstr ""
-"cron å ńņąķäąšņķą UNIX ļšīćšąģą, źī˙ņī ļåščīäč÷ķī ļóńźą īļšåäåėåķč ļšīćšąģč\n"
-"ļī šąēļčńąķčå. vixie cron äīįąā˙ ģķīęåńņāī ļšåčģółåńņāą ķąä ņåēč ķą ļšīńņč˙\n"
-"UNIX cron, āźėž÷čņåėķī ļī-äīįšą ńčćóšķīńņ č ģīłķč ķąńņšīéāąłč īļöčč."
-
-#: ../../services.pm_.c:23
-msgid ""
-"GPM adds mouse support to text-based Linux applications such the\n"
-"Midnight Commander. It also allows mouse-based console cut-and-paste "
-"operations,\n"
-"and includes support for pop-up menus on the console."
-msgstr ""
-"GPM äīįąā˙ ļīääšśęźą ķą ģčųźą ā ņåźńņīāī-įąēčšąķčņå Linux ļščėīęåķč˙ źąņī\n"
-"Midnight Commander. Ńśłī ņąźą ļīēāīė˙āą įąēčšąķčņå ķą ģčųźą źīķēīėč\n"
-"šåęč-č-ėåļč īļåšąöčč, č āźėž÷āą ļīääšśęźą ķą čēźą÷ąłč ģåķžņą ķą źīēīėąņą."
-
-#: ../../services.pm_.c:26
-msgid ""
-"HardDrake runs a hardware probe, and optionally configures\n"
-"new/changed hardware."
-msgstr ""
-"HardDrake ļšąāč ļšīįč ķą õąšäóåšą, č åāåķņóąėķī ķąńņšīéāą\n"
-"ķīā/ļšīģåķåķ õąšäóåš."
-
-#: ../../services.pm_.c:28 ../../standalone/logdrake_.c:412
-msgid ""
-"Apache is a World Wide Web server. It is used to serve HTML files and CGI."
-msgstr ""
-"Apache å World Wide Web (WWW) ńśšāśš. Ņīé ńėóęč äą īįšąįīņāą ķą HTML "
-"ōąéėīāå\n"
-"č CGI."
-
-#: ../../services.pm_.c:29
-msgid ""
-"The internet superserver daemon (commonly called inetd) starts a\n"
-"variety of other internet services as needed. It is responsible for "
-"starting\n"
-"many services, including telnet, ftp, rsh, and rlogin. Disabling inetd "
-"disables\n"
-"all of the services it is responsible for."
-msgstr ""
-"Internet superserver daemon (÷åńņī ķąšč÷ąķ inetd) ļóńźą šąēėč÷ķč äšóćč\n"
-"Čķņåšķåņ óńėóćč. Ņīé īņćīāąš˙ ēą ļóńźąķåņī ķą ģķīćī óńėóćč īņ šīäą ķą\n"
-"telnet, ftp, rsh č rlogin. Čēźėž÷āąķåņī ķą inetd čēźėž÷āą āńč÷źč óńėóćč,\n"
-"ēą źīčņī īņćīāąš˙."
-
-#: ../../services.pm_.c:33
-msgid ""
-"Launch packet filtering for Linux kernel 2.2 series, to set\n"
-"up a firewall to protect your machine from network attacks."
-msgstr ""
-"Āźėž÷č ōčėņščšąķåņī ķą ļąźåņč ēą Linux ˙äšą ńåšč˙ 2.2, ēą\n"
-"ķąńņšīźą ķą ēąłčņķąņą ńņåķą, s cel ēąłčņąāą ķą ģąųčķąņą āč īņ\n"
-"ģšåęīāč ąņąźč."
-
-#: ../../services.pm_.c:35
-msgid ""
-"This package loads the selected keyboard map as set in\n"
-"/etc/sysconfig/keyboard. This can be selected using the kbdconfig utility.\n"
-"You should leave this enabled for most machines."
-msgstr ""
-"Ņīēč ļąźåņ ēąšåęäą ģąšźčšąķąņą źėąāčąņóšķą ķąšåäįą ā /etc/sysconfig/"
-"keyboard.\n"
-"Ņ˙ ģīęå äą įśäå čēįšąķą ń čķńņšóģåķņą kbdconfig. Ņš˙įāą äą īńņąāčņå "
-"ņīāąāźėž÷åķī ēą ļīāå÷åņī ģąųčķč."
-
-#: ../../services.pm_.c:38
-msgid ""
-"Automatic regeneration of kernel header in /boot for\n"
-"/usr/include/linux/{autoconf,version}.h"
-msgstr ""
-"Ąāņīģąņč÷ķī šåćåķåščšąķå ķą header-čņå ķą ąäšīņī, ā /boot ēą\n"
-"/usr/include/linux/{autoconf,version}.h"
-
-#: ../../services.pm_.c:40
-msgid "Automatic detection and configuration of hardware at boot."
-msgstr "Ąāņīģąņč÷ķī ēąńč÷ąķå č ķąńņšīéźą ķą õąšäóåšą ļšč ńņąšņčšąķå."
-
-#: ../../services.pm_.c:41
-msgid ""
-"Linuxconf will sometimes arrange to perform various tasks\n"
-"at boot-time to maintain the system configuration."
-msgstr ""
-"Linuxconf ļīķ˙źīćą óšåęäą čēāśšųāąķåņī ķą šąēėč÷ķč ēąäą÷č\n"
-"ļšč ńņąšņčšąķå ēą ļīääšśęźą ķą ńčńņåģķąņą ķąńņšīéźą."
-
-#: ../../services.pm_.c:43
-msgid ""
-"lpd is the print daemon required for lpr to work properly. It is\n"
-"basically a server that arbitrates print jobs to printer(s)."
-msgstr ""
-"lpd å äåģīķą ēą ļå÷ąņ ķåīįõīäčģ ķą lpr äą šąįīņč ķīšģąėķī. Ņīé ļšīńņī å\n"
-"ńśšāśš, źīéņī īļšåäåė˙ šąįīņčņå ēą ļå÷ąņ ķą ļščķņåš(ą/čņå)."
-
-#: ../../services.pm_.c:45
-msgid ""
-"Linux Virtual Server, used to build a high-performance and highly\n"
-"available server."
-msgstr ""
-"Linux Virtual Server ńå čēļīėēāą ēą čēćšąęäąķå ķą āčńīźīļšīčēāīäčņåėåķ\n"
-"č äīįšå äīńņśļåķ ńśšāśš."
-
-#: ../../services.pm_.c:47 ../../standalone/logdrake_.c:413
-#, fuzzy
-msgid ""
-"named (BIND) is a Domain Name Server (DNS) that is used to resolve host "
-"names to IP addresses."
-msgstr ""
-"named (BIND) å Domain Name Server (DNS), źīéņī ńå čēļīėēāą äą ļšåāśšķå\n"
-"čģåņī ķą õīńņą äī IP ąäšåń."
-
-#: ../../services.pm_.c:48
-msgid ""
-"Mounts and unmounts all Network File System (NFS), SMB (Lan\n"
-"Manager/Windows), and NCP (NetWare) mount points."
-msgstr ""
-"Ģīķņčšą č äåģīķņčšą āń˙źąźāč Network File System (NFS), SMB (LAN\n"
-"Manager/Windows), č NCP (NetWare)."
-
-#: ../../services.pm_.c:50
-msgid ""
-"Activates/Deactivates all network interfaces configured to start\n"
-"at boot time."
-msgstr ""
-"Ąźņčāčšą/äåąźņčāčšą āńč÷źč ģšåęīāč čķņåšōåéńč, ķąńņšīåķč äą ńå ļóńźąņ\n"
-"ļšč ńņąšņčšąķå ķą ģąųčķąņą."
-
-#: ../../services.pm_.c:52
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP networks.\n"
-"This service provides NFS server functionality, which is configured via the\n"
-"/etc/exports file."
-msgstr ""
-"NFS å ļīļóė˙šåķ ļšīņīźīė ēą īįģåķ ķą ōąéėīāå ļī TCP/IP ģšåęč.\n"
-"Ņąēč óńėóćą īńčćóš˙āą ōóķźöčīķąėķīńņņą ķą NFS ńśšāśšą, źīéņī ńå ķąńņšīéāą\n"
-"÷šåē ōąéėą /etc/exports."
-
-#: ../../services.pm_.c:55
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP\n"
-"networks. This service provides NFS file locking functionality."
-msgstr ""
-"NFS å ļīļóė˙šåķ ļšīņīźīė ēą īįģåķ ķą ōąéėīāå ļī TCP/IP ģšåęč.\n"
-"Ņąēč óńėóćą īńčćóš˙āą ōóķźöčīķąėķīńņņą ķą ēąźėž÷āąķåņī ķą NFS ōąéėīāåņå."
-
-#: ../../services.pm_.c:57
-msgid ""
-"Automatically switch on numlock key locker under console\n"
-"and XFree at boot."
-msgstr ""
-"Ąāņīģąņč÷ķī āźėž÷āąķå ķą numlock źėąāčųą ļīä źīķēīėą č\n"
-"XFree ļšč ńņąšņčņąķå."
-
-#: ../../services.pm_.c:59
-msgid "Support the OKI 4w and compatible winprinters."
-msgstr "Ļīääšśęźą ķą OKI 4w č ńśāģåńņčģč win-ļščķņåšč."
-
-#: ../../services.pm_.c:60
-msgid ""
-"PCMCIA support is usually to support things like ethernet and\n"
-"modems in laptops. It won't get started unless configured so it is safe to "
-"have\n"
-"it installed on machines that don't need it."
-msgstr ""
-"PCMCIA ļīääśšęźąņą īįčźķīāåķķī ļīääśšęą ķåłą źąņī ethernet č ģīäåģč ā\n"
-"laptop-č. Ņīāą ķ˙ģą äą ńå ńņąšņčšą ļšåäč äą įśäå ķąńņšīåķ, ņąźą ÷å å\n"
-"ļī-äīįšå äą ˙ čģąņå čķńņąėčšąķą ķą ģąųčķč, źīčņī ķå ńå ķóęäą˙ņ īņ ķå˙."
-
-#: ../../services.pm_.c:63
-msgid ""
-"The portmapper manages RPC connections, which are used by\n"
-"protocols such as NFS and NIS. The portmap server must be running on "
-"machines\n"
-"which act as servers for protocols which make use of the RPC mechanism."
-msgstr ""
-"portmapper ńå ńļšąā˙ ń RPC āšśēźč, źīčņī ńå čēļīėēāąņ īņ ļšīņīźīėč źąņī\n"
-"NFS č NIS. portmap ńśšāśšą ņš˙įāą äą å ļóńķąņ ķą ģąųčķč, źīčņī šąįīņ˙ņ źąņī\n"
-"ńśšāśš ēą ļšīņīźīėč, źīčņī ńå ķóęäą˙ņ äą čēļīėēāąņ RPC ģåõąķčēśģ."
-
-#: ../../services.pm_.c:66 ../../standalone/logdrake_.c:415
-#, fuzzy
-msgid ""
-"Postfix is a Mail Transport Agent, which is the program that moves mail from "
-"one machine to another."
-msgstr ""
-"Postfix å Main Transport Agent (MTA), źīéņī å ļšīćšąģą źī˙ņī ļšåķąń˙\n"
-"ļīųą īņ ģąųčķą ķą ģąųčķą."
-
-#: ../../services.pm_.c:67
-msgid ""
-"Saves and restores system entropy pool for higher quality random\n"
-"number generation."
-msgstr ""
-"Ēąļąēāą č āśēńņąķīā˙ņą ļīņīźą ķą ńčńņåģķą åķņšīļč˙ ēą ļī-ćīė˙ģī źą÷åńņāī\n"
-"ķą ļšīčēāīėķī ćåķåščšąķå ķą ÷čńėą."
-
-#: ../../services.pm_.c:69
-msgid ""
-"Assign raw devices to block devices (such as hard drive\n"
-"partitions), for the use of applications such as Oracle"
-msgstr ""
-"Ńāśšęč ÷čńņč äšąéāåšč ń įėīźīāč óńņšīéńņāą (źąņī ä˙ėīāå\n"
-"ķą ņāśšäč˙ äčńź), ēą óļīņšåį˙ņą īņ ļščėīęåķč˙ źąņī Oracle"
-
-#: ../../services.pm_.c:71
-msgid ""
-"The routed daemon allows for automatic IP router table updated via\n"
-"the RIP protocol. While RIP is widely used on small networks, more complex\n"
-"routing protocols are needed for complex networks."
-msgstr ""
-"touted äåģīķą ļīēāīė˙āą ņąįėčöą ēą IP šóņčšąķå ąāņīģąņč÷ķī īįķīā˙āąķą ÷šåē\n"
-"RIP ļšīņīźīėą. Äīźąņī RIP å ųčšīźī čēļīėēāąķą ēą ģąėźč ģšåęč, ēą ļī-ńėīęķč\n"
-"ļšīņīźīėč ēą šóņčšąķå ńą ķóęķč ēą ńėīęķč ģšåęč. "
-
-#: ../../services.pm_.c:74
-msgid ""
-"The rstat protocol allows users on a network to retrieve\n"
-"performance metrics for any machine on that network."
-msgstr ""
-"rstat ļšīņīźīėą ļīēāīė˙āą ķą ģšåęīāčņå ļīņšåįčņåėč äą čēāėč÷ąņ\n"
-"ļąšąģåņščņå ķą āśēģīęķīńņčņå ēą āń˙źą ģąųčķą ķą ģšåęąņą."
-
-#: ../../services.pm_.c:76
-msgid ""
-"The rusers protocol allows users on a network to identify who is\n"
-"logged in on other responding machines."
-msgstr ""
-"rusers ļšīņīźīėą ļīēāīė˙āą ķą ģšåęīāčņå ļīņšåįčņåėč äą ļšīāåš˙āąņ źīé å\n"
-"āė˙ēśė ķą äšóćą īņćīāąš˙łąņą ģąųčķą."
-
-#: ../../services.pm_.c:78
-msgid ""
-"The rwho protocol lets remote users get a list of all of the users\n"
-"logged into a machine running the rwho daemon (similiar to finger)."
-msgstr ""
-"rwho ļšīņīźīėą ļīēāīė˙āą ķą īņäąėå÷åķč ļīņšåįčņåėč äą ńå ńäīįč˙ņ ńśń ńļčńśź\n"
-"ķą āńč÷źč ļīņšåįčņåėč āėåēėč ķą ģąųčķą ń šąįīņåł rwho äåģīķ (ļīäīįåķ ķą "
-"finger)."
-
-#: ../../services.pm_.c:80
-msgid "Launch the sound system on your machine"
-msgstr "Ļóńķźąķå ēāóźīāąņą ńčńņåģą ķą ģąųčķąņą āč"
-
-#: ../../services.pm_.c:81
-msgid ""
-"Syslog is the facility by which many daemons use to log messages\n"
-"to various system log files. It is a good idea to always run syslog."
-msgstr ""
-"Syslog å ļšīćšąģą źī˙ņī ģķīćī äåģīķč čēļīėēāąņ äą ēąļąēāąņ ńśīįłåķč˙ ā\n"
-"šąēėč÷ķč ńčńņåģķč ōąéėīāå (ėīćīāå). Äīįšå å ļīńņī˙ķķī äą ˙ čģąņå šąįīņåłą."
-
-#: ../../services.pm_.c:83
-msgid "Load the drivers for your usb devices."
-msgstr "Ēąšåęäąķå äšąéāåšč ēą āąųčņå USB óńņšīéńņāą."
-
-#: ../../services.pm_.c:84
-msgid "Starts the X Font Server (this is mandatory for XFree to run)."
-msgstr "Ńņąšņčšą X Font Server (ņīāą å ēąäśėęčņåėķī, ēą äą ņšśćķå XFree)."
-
-#: ../../services.pm_.c:110 ../../services.pm_.c:152
-msgid "Choose which services should be automatically started at boot time"
-msgstr "Čēįčšą óńėóćčņå, źīčņī ņš˙įāą äą ńå ļóńķąņ ļšč ļóńźąķå ķą ģąųčķąņą"
-
-#: ../../services.pm_.c:122
-msgid "Printing"
-msgstr "Ļå÷ąņąķå"
-
-#: ../../services.pm_.c:123
-msgid "Internet"
-msgstr "Čķņåšķåņ"
-
-#: ../../services.pm_.c:126
-msgid "File sharing"
-msgstr "Ļīäåė˙ķå ķą ōąéėīāå"
-
-#: ../../services.pm_.c:128 ../../standalone/drakbackup_.c:934
-msgid "System"
-msgstr "Ńčńņåģą"
-
-#: ../../services.pm_.c:133
-msgid "Remote Administration"
-msgstr "Īņäąėå÷åķą ąäģčķčńņšąöč˙"
-
-#: ../../services.pm_.c:141
-msgid "Database Server"
-msgstr "Ńśšāśš Įąēč-äąķķč"
-
-#: ../../services.pm_.c:170
-#, c-format
-msgid "Services: %d activated for %d registered"
-msgstr "Óńėóćč: %d ąźņčāčšąķč īņ %d šåćčńņščšąķč"
-
-#: ../../services.pm_.c:186
-msgid "Services"
-msgstr "Óńėóćč"
-
-#: ../../services.pm_.c:198
-msgid "running"
-msgstr "ńņąšņčšąķå"
-
-#: ../../services.pm_.c:198
-msgid "stopped"
-msgstr "ńļš˙ķą"
-
-#: ../../services.pm_.c:212
-msgid "Services and deamons"
-msgstr "Óńėóčćč č äåģīķč"
-
-#: ../../services.pm_.c:217
-msgid ""
-"No additional information\n"
-"about this service, sorry."
-msgstr ""
-"Ķ˙ģą äīļśėķčņåėķą čķōīšģąöč˙\n"
-"ēą ņąēč óńėóćą, ńśęåė˙āąģ."
-
-#: ../../services.pm_.c:224
-msgid "On boot"
-msgstr "Ļšč ēąšåęäąķå"
-
-#: ../../services.pm_.c:236
-#, fuzzy
-msgid "Start"
-msgstr "Ńśńņī˙ķčå"
-
-#: ../../services.pm_.c:236
-#, fuzzy
-msgid "Stop"
-msgstr "Ńåźņīš"
-
-#: ../../share/advertising/00-thanks.pl_.c:9
-msgid "Thank you for choosing Mandrake Linux 8.2"
-msgstr ""
-
-#: ../../share/advertising/00-thanks.pl_.c:10
-msgid "Welcome to the Open Source world"
-msgstr ""
-
-#: ../../share/advertising/00-thanks.pl_.c:11
-msgid ""
-"The success of MandrakeSoft is based upon the principle of Free Software. "
-"Your new operating system is the result of collaborative work on the part of "
-"the worldwide Linux Community"
-msgstr ""
-
-#: ../../share/advertising/01-gnu.pl_.c:9
-#, fuzzy
-msgid "Join the Free Software world"
-msgstr "Ļšīņīźīė ēą īńņąķąėč˙ ńā˙ņ"
-
-#: ../../share/advertising/01-gnu.pl_.c:10
-msgid ""
-"Get to know the Open Source community and become a member. Learn, teach, and "
-"help others by joining the many discussion forums that you will find in our "
-"\"Community\" webpages"
-msgstr ""
-
-#: ../../share/advertising/02-internet.pl_.c:9
-#, fuzzy
-msgid "Internet and Messaging"
-msgstr "Čķņåšķåņ äīńņśļ"
-
-#: ../../share/advertising/02-internet.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best software to access everything the "
-"Internet has to offer: Surf the web & view animations with Mozilla and "
-"Konqueror, exchange email & organize your personal information with "
-"Evolution and Kmail, and much more"
-msgstr ""
-
-#: ../../share/advertising/03-graphic.pl_.c:9
-#, fuzzy
-msgid "Multimedia and Graphics"
-msgstr "Ģóėņčģåäč˙ - Ćšąōčźą"
-
-#: ../../share/advertising/03-graphic.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 lets you push your multimedia computer to its limits! Use "
-"the latest software to play music and audio files, edit and organize your "
-"images and photos, watch TV and videos, and much more"
-msgstr ""
-
-#: ../../share/advertising/04-develop.pl_.c:9
-msgid "Development"
-msgstr "Šąēšąįīņźą"
-
-#: ../../share/advertising/04-develop.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 is the ultimate development platform. Discover the power "
-"of the GNU gcc compiler as well as the best Open Source development "
-"environments"
-msgstr ""
-
-#: ../../share/advertising/05-contcenter.pl_.c:9
-#, fuzzy
-msgid "Mandrake Control Center"
-msgstr "Źīķņšīėåķ öåķņśš"
-
-#: ../../share/advertising/05-contcenter.pl_.c:10
-msgid ""
-"The Mandrake Linux 8.2 Control Center is a one-stop location for fully "
-"customizing and configuring your Mandrake system"
-msgstr ""
-
-#: ../../share/advertising/06-user.pl_.c:9
-#, fuzzy
-msgid "User interfaces"
-msgstr "Ģšåęīā čķņåšōåéń"
-
-#: ../../share/advertising/06-user.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides 11 different graphical desktop environments and "
-"window managers to choose from including GNOME 1.4, KDE 2.2.2, Window Maker "
-"0.8, and the rest"
-msgstr ""
-
-#: ../../share/advertising/07-server.pl_.c:9
-#, fuzzy
-msgid "Server Software"
-msgstr "Õīńņ ķą SMB ńśšāśš"
-
-#: ../../share/advertising/07-server.pl_.c:10
-msgid ""
-"Transform your machine into a powerful server with just a few clicks of the "
-"mouse: Web server, email, firewall, router, file and print server, ..."
-msgstr ""
-
-#: ../../share/advertising/08-games.pl_.c:9
-msgid "Games"
-msgstr "Čćšč"
-
-#: ../../share/advertising/08-games.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best Open Source games - arcade, action, "
-"cards, sports, strategy, ..."
-msgstr ""
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:9
-msgid "MandrakeCampus"
-msgstr ""
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:10
-msgid ""
-"Would you like to learn Linux simply, quickly, and for free? MandrakeSoft "
-"provides free Linux training, as well as a way to test your progress, at "
-"MandrakeCampus -- our online training center"
-msgstr ""
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:9
-#, fuzzy
-msgid "MandrakeExpert"
-msgstr "Åźńļåšņķą"
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:10
-msgid ""
-"Quality support from the Linux Community, and from MandrakeSoft, is just "
-"around the corner. And if you're already a Linux veteran, become an \"Expert"
-"\" and share your knowledge at our support website"
-msgstr ""
-
-#: ../../share/advertising/11-consul.pl_.c:9
-msgid "MandrakeConsulting"
-msgstr ""
-
-#: ../../share/advertising/11-consul.pl_.c:10
-msgid ""
-"For all of your IT projects, our consultants are ready to analyze your "
-"requirements and offer a customized solution. Benefit from MandrakeSoft's "
-"vast experience as a Linux producer to provide a true IT alternative for "
-"your business organization"
-msgstr ""
-
-#: ../../share/advertising/12-MDKstore.pl_.c:9
-#, fuzzy
-msgid "MandrakeStore"
-msgstr "ēąäśėęčņåėåķ"
-
-#: ../../share/advertising/12-MDKstore.pl_.c:10
-msgid ""
-"A full range of Linux solutions, as well as special offers on products and "
-"'goodies', are available online at our e-store"
-msgstr ""
-
-#: ../../share/advertising/13-Nvert.pl_.c:9
-msgid ""
-"For more information on MandrakeSoft's Professional Services and commercial "
-"offerings, please see the following web page:"
-msgstr ""
-
-#: ../../share/advertising/13-Nvert.pl_.c:11
-msgid "http://www.mandrakesoft.com/sales/contact"
-msgstr ""
-
-#: ../../standalone.pm_.c:25
-msgid "Installing packages..."
-msgstr "Čķńņąėčšąķå ķą ļąźåņč ..."
-
-#: ../../standalone/diskdrake_.c:85
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I'll try to go on blanking bad partitions"
-msgstr ""
-"Ķå ģīćą äą šąē÷åņą ņąįėčöąņą ķą ä˙ėīāåņå, ļšåźąėåķī å ļīāšåäåķą :(\n"
-"Łå ńå īļčņąģ äą ļšīäśėęą äą šąē÷čńņāąģ ėīųčņå ä˙ėīāå"
-
-#: ../../standalone/drakautoinst_.c:45
-msgid "Error!"
-msgstr "Ćšåųźą !"
-
-#: ../../standalone/drakautoinst_.c:46
-#, c-format
-msgid "I can't find needed image file `%s'."
-msgstr "Ķå ģīćą äą ķąģåš˙ ķóęķą źąšņčķźą `%s'."
-
-#: ../../standalone/drakautoinst_.c:48
-msgid "Auto Install Configurator"
-msgstr "Ķąńņšīé÷čź ķą ąāņīģąņč÷ķą čńķņąėąöč˙"
-
-#: ../../standalone/drakautoinst_.c:49
-msgid ""
-"You are about to configure an Auto Install floppy. This feature is somewhat "
-"dangerous and must be used circumspectly.\n"
-"\n"
-"With that feature, you will be able to replay the installation you've "
-"performed on this computer, being interactively prompted for some steps, in "
-"order to change their values.\n"
-"\n"
-"For maximum safety, the partitioning and formatting will never be performed "
-"automatically, whatever you chose during the install of this computer.\n"
-"\n"
-"Do you want to continue?"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:71
-msgid "Automatic Steps Configuration"
-msgstr "Ķąńņšīéźą ķą ąāņīģąņč÷ķčņå ńņśļźč"
-
-#: ../../standalone/drakautoinst_.c:72
-msgid ""
-"Please choose for each step whether it will replay like your install, or it "
-"will be manual"
-msgstr ""
-"Ģīė˙, čēįåšåņå ēą āń˙źą ńņśļźą, äąėč łå ńå ļšåčćšąå źąņī ļšč čķńņąėąöč˙ņą, "
-"čėč łå įśäå šś÷ķą"
-
-#: ../../standalone/drakautoinst_.c:145
-msgid ""
-"\n"
-"Welcome.\n"
-"\n"
-"The parameters of the auto-install are available in the sections on the left"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:243 ../../standalone/drakgw_.c:671
-#: ../../standalone/scannerdrake_.c:106
-msgid "Congratulations!"
-msgstr "Ļīēäšąāėåķč˙ !"
-
-#: ../../standalone/drakautoinst_.c:244
-msgid ""
-"The floppy has been successfully generated.\n"
-"You may now replay your installation."
-msgstr ""
-"Äčńźåņąņą å óńļåųķī ńśēäąäåķą.\n"
-"Ńåćą ģīęåņå äą ļšåčćšąåņå čķńņąėąöč˙ņą."
-
-#: ../../standalone/drakautoinst_.c:282
-#, fuzzy
-msgid "Auto Install"
-msgstr "Čķńņąėčšąé"
-
-#: ../../standalone/drakautoinst_.c:352
-#, fuzzy
-msgid "Add an item"
-msgstr "Äīįąā˙ķå ķą ļīņšåįčņåė"
-
-#: ../../standalone/drakautoinst_.c:359
-#, fuzzy
-msgid "Remove the last item"
-msgstr "Äą ļšåģąõķą ėč loopback ōąéėą ?"
-
-#: ../../standalone/drakbackup_.c:448 ../../standalone/drakbackup_.c:451
-#: ../../standalone/drakbackup_.c:455
-msgid ""
-"***********************************************************************\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:449
-msgid ""
-"\n"
-" DrakBackup Report \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:450
-msgid ""
-"\n"
-" DrakBackup Daemon Report\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:453
-msgid ""
-"\n"
-"\n"
-"***********************************************************************\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:454
-msgid ""
-"\n"
-" DrakBackup Report Details\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:476
-msgid "total progess"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:555 ../../standalone/drakbackup_.c:602
-msgid "Backup system files..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:603 ../../standalone/drakbackup_.c:667
-#, fuzzy
-msgid "Hard Disk Backup files..."
-msgstr "Ėīų backup-ōąéė"
-
-#: ../../standalone/drakbackup_.c:615
-#, fuzzy
-msgid "Backup User files..."
-msgstr "Ėīų backup-ōąéė"
-
-#: ../../standalone/drakbackup_.c:616
-msgid "Hard Disk Backup Progress..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:666
-#, fuzzy
-msgid "Backup Other files..."
-msgstr "Ėīų backup-ōąéė"
-
-#: ../../standalone/drakbackup_.c:674
-#, c-format
-msgid ""
-"file list send by FTP : %s\n"
-" "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:677
-msgid ""
-"\n"
-"(!) FTP connexion problem: It was not possible to send your backup files by "
-"FTP.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:687
-msgid "(!) Error during mail sending. \n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:728 ../../standalone/drakbackup_.c:739
-#: ../../standalone/drakbackup_.c:750 ../../standalone/drakfont_.c:787
-#, fuzzy
-msgid "File Selection"
-msgstr "Čēįīš ķą ļąźåņč"
-
-#: ../../standalone/drakbackup_.c:755
-msgid "Select the files or directories and click on 'Add'"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:790
-msgid ""
-"\n"
-"Please check all options that you need.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:791
-msgid ""
-"These options can backup and restore all files in your /etc directory.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:792
-msgid "Backup your System files. ( /etc directory )"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:793
-msgid "Use incremental backup (do not replace old backups)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:794
-msgid "Do not include critical files (passwd, group, fstab)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:795
-msgid ""
-"With this option you will be able to restore any version\n"
-" of your /etc directory."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:812
-#, fuzzy
-msgid "Please check all users that you want to include in your backup."
-msgstr "Ģīė˙, čēįåšåņå ļąźåņčņå, źīčņī čńźąņå äą čķńņąėčšąņå."
-
-#: ../../standalone/drakbackup_.c:839
-msgid "Do not include the browser cache"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:840 ../../standalone/drakbackup_.c:864
-msgid "Use Incremental Backups (do not replace old backups)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:862 ../../standalone/drakfont_.c:827
-#, fuzzy
-msgid "Remove Selected"
-msgstr "Čēņščāąķå ķą īļąųźąņą"
-
-#: ../../standalone/drakbackup_.c:900
-#, fuzzy
-msgid "Windows (FAT32)"
-msgstr "Ļšåģąõķč Windows(TM)"
-
-#: ../../standalone/drakbackup_.c:939
-#, fuzzy
-msgid "Users"
-msgstr "Ļīņšåįčņåėńźī čģå"
-
-#: ../../standalone/drakbackup_.c:964
-msgid "Use FTP connection to backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:967
-#, fuzzy
-msgid "Please enter the host name or IP."
-msgstr "Ģīė˙, ļšīįāąéņå ģčųźąņą ńč"
-
-#: ../../standalone/drakbackup_.c:972
-msgid ""
-"Please enter the directory to\n"
-" put the backup on this host."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:977
-#, fuzzy
-msgid "Please enter your login"
-msgstr "Ģīė˙, īļčņąéņå īņķīāī"
-
-#: ../../standalone/drakbackup_.c:982
-#, fuzzy
-msgid "Please enter your password"
-msgstr "Ģīė˙, īļčņąéņå īņķīāī"
-
-#: ../../standalone/drakbackup_.c:988
-#, fuzzy
-msgid "Remember this password"
-msgstr "īłå āåäķśę ļąšīėą"
-
-#: ../../standalone/drakbackup_.c:1052 ../../standalone/drakbackup_.c:2048
-#, fuzzy
-msgid "FTP Connection"
-msgstr "LAN āšśēźą"
-
-#: ../../standalone/drakbackup_.c:1059 ../../standalone/drakbackup_.c:2056
-#, fuzzy
-msgid "Secure Connection"
-msgstr "Čēįåšåņå āšśēźą źśģ ļščķņåšą"
-
-#: ../../standalone/drakbackup_.c:1085 ../../standalone/drakbackup_.c:2889
-msgid "Use CD/DVDROM to backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1088 ../../standalone/drakbackup_.c:2893
-#, fuzzy
-msgid "Please choose your CD space"
-msgstr "Ģīė˙, čēįåšåņå ļīäšåęäąķå ķą źėąāčąņóšąņą."
-
-#: ../../standalone/drakbackup_.c:1094 ../../standalone/drakbackup_.c:2905
-#, fuzzy
-msgid "Please check if you are using CDRW media"
-msgstr "Ģīė˙, öśźķåņå ķą ķīńčņåė˙"
-
-#: ../../standalone/drakbackup_.c:1100 ../../standalone/drakbackup_.c:2911
-msgid "Please check if you want to erase your CDRW before"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1106
-#, fuzzy
-msgid ""
-"Please check if you want to include\n"
-" install boot on your CD."
-msgstr "Ģīė˙, čēįåšåņå ļąźåņčņå, źīčņī čńźąņå äą čķńņąėčšąņå."
-
-#: ../../standalone/drakbackup_.c:1112
-msgid ""
-"Please enter your CD Writer device name\n"
-" ex: 0,1,0"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1153
-#, fuzzy
-msgid "Use tape to backup"
-msgstr "Ėīų backup-ōąéė"
-
-#: ../../standalone/drakbackup_.c:1156
-msgid "Please enter the device name to use for backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1162 ../../standalone/drakbackup_.c:1203
-#: ../../standalone/drakbackup_.c:2013
-msgid ""
-"Please enter the maximum size\n"
-" allowed for Drakbackup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1195 ../../standalone/drakbackup_.c:2005
-#, fuzzy
-msgid "Please enter the directory to save:"
-msgstr "Ģīė˙, ļšīįāąéņå ģčųźąņą ńč"
-
-#: ../../standalone/drakbackup_.c:1209 ../../standalone/drakbackup_.c:2019
-#, fuzzy
-msgid "Use quota for backup files."
-msgstr "Ėīų backup-ōąéė"
-
-#: ../../standalone/drakbackup_.c:1267
-#, fuzzy
-msgid "Network"
-msgstr "Ģšåęīā čķņåšōåéń"
-
-#: ../../standalone/drakbackup_.c:1272
-msgid "CDROM / DVDROM"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1277
-msgid "HardDrive / NFS"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1297 ../../standalone/drakbackup_.c:1301
-#: ../../standalone/drakbackup_.c:1305
-msgid "hourly"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1298 ../../standalone/drakbackup_.c:1302
-#: ../../standalone/drakbackup_.c:1305
-msgid "daily"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1299 ../../standalone/drakbackup_.c:1303
-#: ../../standalone/drakbackup_.c:1305
-msgid "weekly"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1300 ../../standalone/drakbackup_.c:1304
-#: ../../standalone/drakbackup_.c:1305
-msgid "monthly"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1312
-#, fuzzy
-msgid "Use daemon"
-msgstr "Ļīņšåįčņåėńźī čģå"
-
-#: ../../standalone/drakbackup_.c:1317
-#, fuzzy
-msgid ""
-"Please choose the time \n"
-"interval between each backup"
-msgstr "Ģīė˙, čēįåšåņå ļąźåņčņå, źīčņī čńźąņå äą čķńņąėčšąņå."
-
-#: ../../standalone/drakbackup_.c:1323
-#, fuzzy
-msgid ""
-"Please choose the\n"
-"media for backup."
-msgstr "Ģīė˙, čēįåšåņå čēļīėēāąķ åēčź."
-
-#: ../../standalone/drakbackup_.c:1327
-#, fuzzy
-msgid "Use Hard Drive with daemon"
-msgstr "Čńźąņå ėč īļņčģčēąöč˙ ķą äčńźīāåņå ?"
-
-#: ../../standalone/drakbackup_.c:1329
-#, fuzzy
-msgid "Use FTP with daemon"
-msgstr "Čńźąņå ėč īļņčģčēąöč˙ ķą äčńźīāåņå ?"
-
-#: ../../standalone/drakbackup_.c:1333
-msgid "Please be sure that the cron daemon is included in your services."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1369
-msgid "Send mail report after each backup to :"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1411
-#, fuzzy
-msgid "What"
-msgstr "Åäčķ ģīģåķņ"
-
-#: ../../standalone/drakbackup_.c:1416
-#, fuzzy
-msgid "Where"
-msgstr "Wheel"
-
-#: ../../standalone/drakbackup_.c:1421
-#, fuzzy
-msgid "When"
-msgstr "Wheel"
-
-#: ../../standalone/drakbackup_.c:1426
-#, fuzzy
-msgid "More Options"
-msgstr "Īļöčč ķą ģīäóėą:"
-
-#: ../../standalone/drakbackup_.c:1445 ../../standalone/drakbackup_.c:2801
-#, fuzzy
-msgid "Drakbackup Configuration"
-msgstr "Ķąńņšīéźą ķą ģšåęąņą"
-
-#: ../../standalone/drakbackup_.c:1463
-#, fuzzy
-msgid "Please choose where you want to backup"
-msgstr "Ģīė˙, čēįåšåņå ļąźåņčņå, źīčņī čńźąņå äą čķńņąėčšąņå."
-
-#: ../../standalone/drakbackup_.c:1465
-msgid "on Hard Drive"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1476
-msgid "across Network"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1540
-#, fuzzy
-msgid "Please choose what you want to backup"
-msgstr "Ģīė˙, čēįåšåņå ļąźåņčņå, źīčņī čńźąņå äą čķńņąėčšąņå."
-
-#: ../../standalone/drakbackup_.c:1541
-#, fuzzy
-msgid "Backup system"
-msgstr "Ōąéėīāč ńčńņåģč"
-
-#: ../../standalone/drakbackup_.c:1542
-msgid "Backup Users"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1545
-msgid "Select user manually"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1627
-msgid ""
-"\n"
-"Backup Sources: \n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1628
-msgid ""
-"\n"
-"- System Files:\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1630
-msgid ""
-"\n"
-"- User Files:\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1632
-msgid ""
-"\n"
-"- Other Files:\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1634
-#, c-format
-msgid ""
-"\n"
-"- Save on Hard drive on path : %s\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1635
-#, c-format
-msgid ""
-"\n"
-"- Save on FTP on host : %s\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1636
-#, c-format
-msgid ""
-"\t\t user name: %s\n"
-"\t\t on path: %s \n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1637
-#, fuzzy
-msgid ""
-"\n"
-"- Options:\n"
-msgstr "Īļöčč"
-
-#: ../../standalone/drakbackup_.c:1638
-msgid "\tDo not include System Files\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1639
-msgid "\tBackups use tar and bzip2\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1640
-msgid "\tBackups use tar and gzip\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1641
-#, c-format
-msgid ""
-"\n"
-"- Daemon (%s) include :\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1642
-msgid "\t-Hard drive.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1643
-msgid "\t-CDROM.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1644
-msgid "\t-Network by FTP.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1645
-msgid "\t-Network by SSH.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1647
-msgid "No configuration, please click Wizard or Advanced.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1652
-msgid ""
-"List of data to restore:\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1753
-msgid ""
-"List of data corrupted:\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1755
-#, fuzzy
-msgid "Please uncheck or remove it on next time."
-msgstr "Ģīė˙, čēįåšåņå ńåščåķ ļīšņ źśģ źīéņī ńāśšēąķ ģīäåģśņ āč."
-
-#: ../../standalone/drakbackup_.c:1765
-msgid "Backup files are corrupted"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1786
-msgid " All your selectionned data have been "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1787
-#, c-format
-msgid " Successfuly Restored on %s "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1886
-#, fuzzy
-msgid " Restore Configuration "
-msgstr "Ķąńņšīéźą ķą ģšåęąņą"
-
-#: ../../standalone/drakbackup_.c:1904
-msgid "OK to restore the other files."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1922
-msgid "User list to restore (only the most recent date per user is important)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1972
-#, fuzzy
-msgid "Backup the system files before:"
-msgstr "Ėīų backup-ōąéė"
-
-#: ../../standalone/drakbackup_.c:1974
-#, fuzzy
-msgid "please choose the date to restore"
-msgstr "Ģīė˙, čēįåšåņå ņčļ ķą ģčųźąņą."
-
-#: ../../standalone/drakbackup_.c:2002
-#, fuzzy
-msgid "Use Hard Disk to backup"
-msgstr "Ėīų backup-ōąéė"
-
-#: ../../standalone/drakbackup_.c:2083
-#, fuzzy
-msgid "Restore from Hard Disk."
-msgstr "Āśēńņąķīāč īņ äčńźåņą"
-
-#: ../../standalone/drakbackup_.c:2085
-msgid "Please enter the directory where backups are stored"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2143
-#, fuzzy
-msgid "Select another media to restore from"
-msgstr "Ģīė˙, čēįåšåņå ņčļ ķą ģčųźąņą."
-
-#: ../../standalone/drakbackup_.c:2145
-#, fuzzy
-msgid "Other Media"
-msgstr "Äšóćą"
-
-#: ../../standalone/drakbackup_.c:2151
-#, fuzzy
-msgid "Restore system"
-msgstr "Čķńņąėčšąķå ķą ńčńņåģąņą"
-
-#: ../../standalone/drakbackup_.c:2152
-#, fuzzy
-msgid "Restore Users"
-msgstr "Āśēńņąķīāč īņ ōąéė"
-
-#: ../../standalone/drakbackup_.c:2153
-#, fuzzy
-msgid "Restore Other"
-msgstr "Āśēńņąķīāč īņ ōąéė"
-
-#: ../../standalone/drakbackup_.c:2155
-msgid "select path to restore (instead of / )"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2159
-msgid "Do new backup before restore (only for incremental backups.)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2160
-msgid "Remove user directories before restore."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2217
-msgid "Restore all backups"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2225
-#, fuzzy
-msgid "Custom Restore"
-msgstr "Źėčåķņńźą"
-
-#: ../../standalone/drakbackup_.c:2266 ../../standalone/drakbackup_.c:2291
-#: ../../standalone/drakbackup_.c:2312 ../../standalone/drakbackup_.c:2333
-#: ../../standalone/drakbackup_.c:2351 ../../standalone/drakbackup_.c:2383
-#: ../../standalone/drakbackup_.c:2399 ../../standalone/drakbackup_.c:2419
-#: ../../standalone/drakbackup_.c:2438 ../../standalone/drakbackup_.c:2460
-#: ../../standalone/drakfont_.c:575
-#, fuzzy
-msgid "Help"
-msgstr "/_Ļīģīł"
-
-#: ../../standalone/drakbackup_.c:2269 ../../standalone/drakbackup_.c:2296
-#: ../../standalone/drakbackup_.c:2315 ../../standalone/drakbackup_.c:2336
-#: ../../standalone/drakbackup_.c:2354 ../../standalone/drakbackup_.c:2402
-#: ../../standalone/drakbackup_.c:2422 ../../standalone/drakbackup_.c:2441
-#, fuzzy
-msgid "Previous"
-msgstr "<- Ļšåäčųåķ"
-
-#: ../../standalone/drakbackup_.c:2271 ../../standalone/drakbackup_.c:2338
-#: ../../standalone/logdrake_.c:224
-#, fuzzy
-msgid "Save"
-msgstr "Ńśńņī˙ķčå"
-
-#: ../../standalone/drakbackup_.c:2317
-#, fuzzy
-msgid "Build Backup"
-msgstr "Ėīų backup-ōąéė"
-
-#: ../../standalone/drakbackup_.c:2356 ../../standalone/drakbackup_.c:3033
-#, fuzzy
-msgid "Restore"
-msgstr "Āśēńņąķīāč īņ ōąéė"
-
-#: ../../standalone/drakbackup_.c:2404 ../../standalone/drakbackup_.c:2424
-#: ../../standalone/drakbackup_.c:2445
-#, fuzzy
-msgid "Next"
-msgstr "Ņåźńņ"
-
-#: ../../standalone/drakbackup_.c:2478
-msgid ""
-"Please Build backup before to restore it...\n"
-" or verify that your path to save is correct."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2499
-msgid ""
-"Error durind sendmail\n"
-" your report mail was not sent\n"
-" Please configure sendmail"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2522
-#, fuzzy
-msgid "Package List to Install"
-msgstr "Ļąźåņč ēą čķńņąėčšąķå"
-
-#: ../../standalone/drakbackup_.c:2550
-msgid ""
-"Error durind sending file via FTP.\n"
-" Please correct your FTP configuration."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2573
-#, fuzzy
-msgid "Please select data to restore..."
-msgstr "Ģīė˙, čēįåšåņå čēļīėēāąķ åēčź."
-
-#: ../../standalone/drakbackup_.c:2594
-#, fuzzy
-msgid "Please select media for backup..."
-msgstr "Ģīė˙, čēįåšåņå čēļīėēāąķ åēčź."
-
-#: ../../standalone/drakbackup_.c:2616
-#, fuzzy
-msgid "Please select data to backup..."
-msgstr "Ģīė˙, čēįåšåņå čēļīėēāąķ åēčź."
-
-#: ../../standalone/drakbackup_.c:2638
-msgid ""
-"No configuration file found \n"
-"please click Wizard or Advanced."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2659
-msgid "Under Devel ... please wait."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2739
-#, fuzzy
-msgid "Backup system files"
-msgstr "Ėīų backup-ōąéė"
-
-#: ../../standalone/drakbackup_.c:2741
-#, fuzzy
-msgid "Backup user files"
-msgstr "Ėīų backup-ōąéė"
-
-#: ../../standalone/drakbackup_.c:2743
-#, fuzzy
-msgid "Backup other files"
-msgstr "Ėīų backup-ōąéė"
-
-#: ../../standalone/drakbackup_.c:2745 ../../standalone/drakbackup_.c:2776
-msgid "Total Progress"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2767
-msgid "files sending by FTP"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2771
-#, fuzzy
-msgid "Sending files..."
-msgstr "Ēąļąēč āśā ōąéė"
-
-#: ../../standalone/drakbackup_.c:2841
-msgid "Data list to include on CDROM."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2899
-#, fuzzy
-msgid "Please enter the cd writer speed"
-msgstr "Ģīė˙, ļšīįāąéņå ģčųźąņą ńč"
-
-#: ../../standalone/drakbackup_.c:2917
-msgid "Please enter your CD Writer device name (ex: 0,1,0)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2923
-#, fuzzy
-msgid "Please check if you want to include install boot on your CD."
-msgstr "Ģīė˙, čēįåšåņå ļąźåņčņå, źīčņī čńźąņå äą čķńņąėčšąņå."
-
-#: ../../standalone/drakbackup_.c:2989
-#, fuzzy
-msgid "Backup Now from configuration file"
-msgstr "Ķąńņšīéźą ķą ģšåęąņą"
-
-#: ../../standalone/drakbackup_.c:2999
-#, fuzzy
-msgid "View Backup Configuration."
-msgstr "Ķąńņšīéźą ķą ģšåęąņą"
-
-#: ../../standalone/drakbackup_.c:3020
-#, fuzzy
-msgid "Wizard Configuration"
-msgstr "Ķąńņšīéźą"
-
-#: ../../standalone/drakbackup_.c:3024
-#, fuzzy
-msgid "Advanced Configuration"
-msgstr "Ķąńņšīéźą ķą ėīźąėķą ģšåęą"
-
-#: ../../standalone/drakbackup_.c:3028
-#, fuzzy
-msgid "Backup Now"
-msgstr "Ōąéėīāč ńčńņåģč"
-
-#: ../../standalone/drakbackup_.c:3053
-msgid "Drakbackup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3104
-msgid ""
-"options description:\n"
-"\n"
-" In this step Drakbackup allow you to change:\n"
-"\n"
-" - The compression mode:\n"
-" \n"
-" If you check bzip2 compression, you will compress\n"
-" your data better than gzip (about 2-10 %).\n"
-" This option is not checked by default because\n"
-" this compression mode needs more time ( about 1000% more).\n"
-" \n"
-" - The update mode:\n"
-"\n"
-" This option will update your backup, but this\n"
-" option is not really useful because you need to\n"
-" decompress your backup before you can update it.\n"
-" \n"
-" - the .backupignore mode:\n"
-"\n"
-" Like with cvs, Drakbackup will ignore all references\n"
-" included in .backupignore files in each directories.\n"
-" ex: \n"
-" /*> cat .backupignore*/\n"
-" *.o\n"
-" *~\n"
-" ...\n"
-" \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3134
-msgid ""
-"\n"
-" Some errors during sendmail are caused by \n"
-" a bad configuration of postfix. To solve it you have to\n"
-" set myhostname or mydomain in /etc/postfix/main.cf\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3142
-msgid ""
-"options description:\n"
-"\n"
-" - Backup system files:\n"
-" \n"
-"\tThis option allows you to backup your /etc directory,\n"
-"\twhich contains all configuration files. Please be\n"
-"\tcareful during the restore step to not overwrite:\n"
-"\t\t/etc/passwd \n"
-"\t\t/etc/group \n"
-"\t\t/etc/fstab\n"
-"\n"
-" - Backup User files: \n"
-"\n"
-"\tThis option allows you select all users that you want \n"
-"\tto backup.\n"
-"\tTo preserve disk space, it is recommended that you \n"
-"\tdo not include web browser's cache.\n"
-"\n"
-" - Backup Other files: \n"
-"\n"
-"\tThis option allows you to add more data to save.\n"
-"\tWith the other backup it's not possible at the \n"
-"\tmoment to select select incremental backup.\t\t\n"
-" \n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerful \n"
-"\toption for backup. This option allows you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed afterward.\n"
-"\tThen you will be able, during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this option all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3181
-msgid ""
-"restore description:\n"
-" \n"
-"Only the most recent date will be used ,because with incremental \n"
-"backups it is necesarry to restore one by one each older backups.\n"
-"\n"
-"So if you don't like to restore an user please unselect all his\n"
-"check box.\n"
-"\n"
-"Otherwise, you are able to select only one of this\n"
-"\n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerfull \n"
-"\toption to use backup, this option allow you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed after.\n"
-"\tSo you will be able during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this options all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3207 ../../standalone/drakbackup_.c:3282
-msgid ""
-" Copyright (C) 2001 MandrakeSoft by DUPONT Sebastien <dupont_s\\@epita.fr>"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3209 ../../standalone/drakbackup_.c:3284
-msgid ""
-" This program is free software; you can redistribute it and/or modify\n"
-" it under the terms of the GNU General Public License as published by\n"
-" the Free Software Foundation; either version 2, or (at your option)\n"
-" any later version.\n"
-"\n"
-" This program is distributed in the hope that it will be useful,\n"
-" but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-" GNU General Public License for more details.\n"
-"\n"
-" You should have received a copy of the GNU General Public License\n"
-" along with this program; if not, write to the Free Software\n"
-" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3223
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select: \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, DrakBackup will remove \n"
-" your original directory and verify that all \n"
-" backup files are not corrupted. It is recommended \n"
-" you do a last backup before restoring.\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3261
-msgid ""
-"options description:\n"
-"\n"
-"Please be careful when you are using ftp backup, because only \n"
-"backups that are already built are sent to the server.\n"
-"So at the moment, you need to build the backup on your hard \n"
-"drive before sending it to the server.\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3270
-msgid ""
-"\n"
-"Restore Backup Problems:\n"
-"\n"
-"During the restore step, Drakbackup will verify all your\n"
-"backup files before restoring them.\n"
-"Before the restore, Drakbackup will remove \n"
-"your original directory, and you will loose all your \n"
-"data. It is important to be careful and not modify the \n"
-"backup data files by hand.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3298
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, Drakbackup will remove\n"
-" your original directory and verify that all\n"
-" backup files are not corrupted. It is recommended\n"
-" you do a last backup before restoring.\n"
-" \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakboot_.c:58
-#, c-format
-msgid "Installation of %s failed. The following error occured:"
-msgstr "Čķńņąėąöč˙ņą ķą %s ļšīāąėåķą. Ļī˙āč ńå ńėåäķąņą ćšåųźą:"
-
-#: ../../standalone/drakfont_.c:229
-msgid "Search installed fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:231
-msgid "Unselect fonts installed"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:252
-msgid "parse all fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:253
-#, fuzzy
-msgid "no fonts found"
-msgstr "%s ķå å ķąģåšåķī"
-
-#: ../../standalone/drakfont_.c:261 ../../standalone/drakfont_.c:303
-#: ../../standalone/drakfont_.c:352 ../../standalone/drakfont_.c:410
-#: ../../standalone/drakfont_.c:417 ../../standalone/drakfont_.c:443
-#: ../../standalone/drakfont_.c:455 ../../standalone/drakfont_.c:468
-#, fuzzy
-msgid "done"
-msgstr "Ćīņīāī"
-
-#: ../../standalone/drakfont_.c:265
-msgid "could not find any font in your mounted partitions"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:301
-msgid "Reselect correct fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:304
-msgid "could not find any font.\n"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:327
-msgid "Search fonts in installed list"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:350
-#, fuzzy
-msgid "Fonts copy"
-msgstr "Ōīšģąņčšąé äčńźåņąņą"
-
-#: ../../standalone/drakfont_.c:353
-#, fuzzy
-msgid "True Type fonts installation"
-msgstr "Ļīäćīņā˙ģ čķńņąėąöč˙ņą"
-
-#: ../../standalone/drakfont_.c:357
-msgid "please wait during ttmkfdir..."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:359
-msgid "True Type install done"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:366 ../../standalone/drakfont_.c:382
-msgid "Fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:370 ../../standalone/drakfont_.c:386
-#: ../../standalone/drakfont_.c:406
-msgid "type1inst building"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:375 ../../standalone/drakfont_.c:390
-msgid "Ghostscript referencing"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:397
-msgid "ttf fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:401
-msgid "pfm fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:411
-msgid "Suppress temporary Files"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:414
-#, fuzzy
-msgid "Restart XFS"
-msgstr "ńņąšņčšąé ćī"
-
-#: ../../standalone/drakfont_.c:453 ../../standalone/drakfont_.c:463
-msgid "Suppress Fonts Files"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:465
-#, fuzzy
-msgid "xfs restart"
-msgstr "īćšąķč÷č"
-
-#: ../../standalone/drakfont_.c:472 ../../standalone/drakfont_.c:760
-msgid ""
-"Before installing any fonts, be sure that you have the right to use and "
-"install them on your system.\n"
-"\n"
-"-You can install the fonts using the normal way. In rare cases, bogus fonts "
-"may hang up your X Server."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:547
-#, fuzzy
-msgid "Fonts Importation"
-msgstr "Ōīšģąņčšąķå ķą ä˙ėīāå"
-
-#: ../../standalone/drakfont_.c:562
-msgid "Get Windows Fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:564
-#, fuzzy
-msgid "Uninstall Fonts"
-msgstr "Äåčķńņąėčšąģ ļąźåņą"
-
-#: ../../standalone/drakfont_.c:568
-#, fuzzy
-msgid "Advanced Options"
-msgstr "Ķąńņšīéźą ķą ėīźąėķą ģšåęą"
-
-#: ../../standalone/drakfont_.c:570
-#, fuzzy
-msgid "Font List"
-msgstr "Ģ˙ńņī ķą ģīķņčšąķå"
-
-#: ../../standalone/drakfont_.c:739
-#, fuzzy
-msgid "Choose the applications that will support the fonts :"
-msgstr "Čēįåšåņå ä˙ėīāåņå, źīčņī čńźąņå äą ōīšģąņčšąņå"
-
-#: ../../standalone/drakfont_.c:743
-msgid "Ghostscript"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:747
-#, fuzzy
-msgid "StarOffice"
-msgstr "Īōčń"
-
-#: ../../standalone/drakfont_.c:751
-#, fuzzy
-msgid "Abiword"
-msgstr "Īņźąē"
-
-#: ../../standalone/drakfont_.c:755
-#, fuzzy
-msgid "Generic Printers"
-msgstr "Ļščķņåš"
-
-#: ../../standalone/drakfont_.c:792
-msgid "Select the font file or directory and click on 'Add'"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:828
-#, fuzzy
-msgid "Install List"
-msgstr "Čķńņąėčšąķå ķą ńčńņåģąņą"
-
-#: ../../standalone/drakfont_.c:858
-msgid "click here if you are sure."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:860
-msgid "here if no."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:897
-msgid "Unselected All"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:899
-#, fuzzy
-msgid "Selected All"
-msgstr "Čēįåšåņå ōąéė"
-
-#: ../../standalone/drakfont_.c:901
-#, fuzzy
-msgid "Remove List"
-msgstr "Ļšåģąõāąķå ķą ļščķņåšą"
-
-#: ../../standalone/drakfont_.c:919 ../../standalone/drakfont_.c:939
-#, fuzzy
-msgid "Initials tests"
-msgstr "Ńņąšņīāī ńśīįłåķčå"
-
-#: ../../standalone/drakfont_.c:920
-#, fuzzy
-msgid "Copy fonts on your system"
-msgstr "Ķ˙ģąņå ģšåęīā ąäąļņåš!"
-
-#: ../../standalone/drakfont_.c:921
-msgid "Install & convert Fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:922
-#, fuzzy
-msgid "Post Install"
-msgstr "Čķńņąėčšąé"
-
-#: ../../standalone/drakfont_.c:940
-#, fuzzy
-msgid "Remove fonts on your system"
-msgstr "Ķ˙ģąņå ģšåęīā ąäąļņåš!"
-
-#: ../../standalone/drakfont_.c:941
-#, fuzzy
-msgid "Post Uninstall"
-msgstr "Čēõīä īņ čķńņąėąöčīķķąņą ļšīćšąģą"
-
-#: ../../standalone/drakgw_.c:43 ../../standalone/drakgw_.c:200
-msgid "Internet Connection Sharing"
-msgstr "Ńļīäåė˙ķå ķą āšśēźąņą ń Čķņåšķåņ"
-
-#: ../../standalone/drakgw_.c:138
-msgid "Internet Connection Sharing currently enabled"
-msgstr "Ńļīäåė˙ķåņī ķą āšśēźąņą źśģ Čķņåšķåņ å āå÷å ąźņčāčšąķī"
-
-#: ../../standalone/drakgw_.c:139
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently enabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-"Óńņąķīāźąņą ķą Ńļīäåė˙ķåņī ķą Čķņåšķåņ āšśēźąņą å ēąāśšųåķą.\n"
-"Ā ģīģåķņą å āźėž÷åķą.\n"
-"\n"
-"Źąźāī čńźąņå äą ķąļšąāčņå ?"
-
-#: ../../standalone/drakgw_.c:143
-msgid "disable"
-msgstr "čēźėž÷č"
-
-#: ../../standalone/drakgw_.c:143 ../../standalone/drakgw_.c:168
-msgid "dismiss"
-msgstr "īńņąāč"
-
-#: ../../standalone/drakgw_.c:143 ../../standalone/drakgw_.c:168
-msgid "reconfigure"
-msgstr "ļšåķąńņšīéźą"
-
-#: ../../standalone/drakgw_.c:146
-msgid "Disabling servers..."
-msgstr "Čēźėž÷āąķå ķą ńśšāśšč ..."
-
-#: ../../standalone/drakgw_.c:154
-msgid "Internet connection sharing is now disabled."
-msgstr "Ńļīäåė˙ķåņī ķą Čķņåšķåņ āšśēźąņą ā ģīģåķņą å čēźėž÷åķī."
-
-#: ../../standalone/drakgw_.c:163
-msgid "Internet Connection Sharing currently disabled"
-msgstr "Ńļīäåė˙ķåņī ķą Čķņåšķåņ āšśēźąņą å čēźėž÷åķī."
-
-#: ../../standalone/drakgw_.c:164
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently disabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-"Óńņąķīāźąņą ķą Ńļīäåė˙ķåņī ķą Čķņåšķåņ āšśēźąņą å āå÷å ēąāśšųåķą.\n"
-"Ā ģīģåķņą å čēźėž÷åķą.\n"
-"\n"
-"Źąźāī čńźąņå äą ķąļšąāčņå ?"
-
-#: ../../standalone/drakgw_.c:168
-msgid "enable"
-msgstr "āźėž÷č"
-
-#: ../../standalone/drakgw_.c:175
-msgid "Enabling servers..."
-msgstr "Āźėž÷āąķå ķą ńśšāśšč ..."
-
-#: ../../standalone/drakgw_.c:180
-msgid "Internet connection sharing is now enabled."
-msgstr "Ńļīäåė˙ķåņī ķą Čķņåšķåņ ā ģīģåķņą å āźėž÷åķī."
-
-#: ../../standalone/drakgw_.c:201
-msgid ""
-"You are about to configure your computer to share its Internet connection.\n"
-"With that feature, other computers on your local network will be able to use "
-"this computer's Internet connection.\n"
-"\n"
-"Note: you need a dedicated Network Adapter to set up a Local Area Network "
-"(LAN)."
-msgstr ""
-"Ķą ļśņ ńņå äą ķąńņšīčņå źīģļžņśšą ńč ņąźą, ÷å äą ļīäåė˙ Čķņåšķåņ āšśēźąņą\n"
-"ńč. Ń ņąēč āśēģīęķīńņ, äšóćč źīģļžņšč ā ėīźąėķąņą āč ģšåęą łå ģīćąņ äą\n"
-"čēļīėēāąņ Čķņåšķåņ āšśēźąņą ķą ņīēč źīģļžņśš.\n"
-"\n"
-"Īņįåėåęåņå: ņš˙įāą āč īņäåėåķ ēą ņīāą ģšåęīā ąäąļņåš, ēą äą óńņąķīāčņå "
-"āśņšåųķąņą ńč ģšåęą (LAN)."
-
-#: ../../standalone/drakgw_.c:227
-#, c-format
-msgid "Interface %s (using module %s)"
-msgstr "Čķņåšōåéń %s (čēļīėēāął ģīäóė %s)"
-
-#: ../../standalone/drakgw_.c:228
-#, c-format
-msgid "Interface %s"
-msgstr "Čķņåšōåéń %s"
-
-#: ../../standalone/drakgw_.c:236
-msgid "No network adapter on your system!"
-msgstr "Ķ˙ģąņå ģšåęīā ąäąļņåš!"
-
-#: ../../standalone/drakgw_.c:237
-msgid ""
-"No ethernet network adapter has been detected on your system. Please run the "
-"hardware configuration tool."
-msgstr ""
-"Ā ńčńņåģąņą ķå å īņźščņ ethernet ģšåęīā ąäąļņåš. Ģīė˙, ńņąšņčšąéņå "
-"čķńņšóģåķņą ēą ķąńņšīéźą ķą õąšäóåš."
-
-#: ../../standalone/drakgw_.c:243
-msgid "Network interface"
-msgstr "Ģšåęīā čķņåšōåéń"
-
-#: ../../standalone/drakgw_.c:244
-#, c-format
-msgid ""
-"There is only one configured network adapter on your system:\n"
-"\n"
-"%s\n"
-"\n"
-"I am about to setup your Local Area Network with that adapter."
-msgstr ""
-"Ā ńčńņåģąņą āč čģą ńąģī åäčķ ķąńņšīåķ ģšåęīā ąäąļņåš:\n"
-"\n"
-"%s\n"
-"\n"
-"Ńģ˙ņąģ äą óńņąķīā˙ ėīźąėķąņą āč ģšåęą ķą ņīēč ąäąļņåš."
-
-#: ../../standalone/drakgw_.c:253
-msgid ""
-"Please choose what network adapter will be connected to your Local Area "
-"Network."
-msgstr ""
-"Ģīė˙ čēįåšåņå źīé ģšåęīā ąäąļņåš äą įśäå āźėž÷åķ źśģ ėīźąėķąņą āč ģšåęą."
-
-#: ../../standalone/drakgw_.c:271
-#, fuzzy
-msgid "Network interface already configured"
-msgstr "Ōóķźöčīķąėķīńņņą ķą ģšåęąņą ķå å ķąńņšīåķą"
-
-#: ../../standalone/drakgw_.c:272
-#, c-format
-msgid ""
-"Warning, the network adapter (%s) is already configured.\n"
-"\n"
-"Do you want an automatic re-configuration?\n"
-"\n"
-"You can do it manually but you need to know what you're doing."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:277
-#, fuzzy
-msgid "Automatic reconfiguration"
-msgstr "Ąāņīģąņč÷ķą ķąńņšīéźą ķą CUPS"
-
-#: ../../standalone/drakgw_.c:278
-#, fuzzy
-msgid "Show current interface configuration"
-msgstr "Ļīļšąāč ķąńņšīéźčņå ķą ļščķņåš"
-
-#: ../../standalone/drakgw_.c:280
-#, c-format
-msgid ""
-"Current configuration of `%s':\n"
-"\n"
-"Network: %s\n"
-"IP address: %s\n"
-"IP attribution: %s\n"
-"Driver: %s"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:292
-msgid ""
-"I can keep your current configuration and assume you already set up a DHCP "
-"server; in that case please verify I correctly read the C-Class Network that "
-"you use for your local network; I will not reconfigure it and I will not "
-"touch your DHCP server configuration.\n"
-"\n"
-"Else, I can reconfigure your interface and (re)configure a DHCP server for "
-"you.\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:297
-msgid "C-Class Local Network"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:298
-#, fuzzy
-msgid "(This) DHCP Server IP"
-msgstr "IP ķą CUPS ńśšāśšą"
-
-#: ../../standalone/drakgw_.c:299
-msgid "Re-configure interface and DHCP server"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:306
-msgid "The Local Network did not finish with `.0', bailing out."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:317
-#, c-format
-msgid "Potential LAN address conflict found in current config of %s!\n"
-msgstr "Āśēģīęåķ źīķōčźņ ń ąäšåńčņå ā LAN ń ķąńņšīéźąņą ķą %s!\n"
-
-#: ../../standalone/drakgw_.c:325 ../../standalone/drakgw_.c:331
-msgid "Firewalling configuration detected!"
-msgstr "Īņźščņą å ķąńņšīéźą ķą Ēąłčņķą Ńņåķą !"
-
-#: ../../standalone/drakgw_.c:326 ../../standalone/drakgw_.c:332
-msgid ""
-"Warning! An existing firewalling configuration has been detected. You may "
-"need some manual fix after installation."
-msgstr ""
-"Āķčģąķčå ! Īņźščņą å ķąńņšīéźą ķą Ēąłčņķą Ńņåķą. Ģīęå äą ńå ķąėīęč ķ˙źąźāą "
-"šś÷ķą ļīļšąāźą ńėåä čķńņąėąöč˙ņą."
-
-#: ../../standalone/drakgw_.c:340
-msgid "Configuring..."
-msgstr "Ķąńņšīéźą ..."
-
-#: ../../standalone/drakgw_.c:341
-msgid "Configuring scripts, installing software, starting servers..."
-msgstr ""
-"Ķąńņšīéāąłč ńźščļņīāå, čķńņąėčšąķå ķą ńīōņóåš, ńņąšņčšąķå ķą ńśšāśšč..."
-
-#: ../../standalone/drakgw_.c:378
-#, c-format
-msgid "Problems installing package %s"
-msgstr "Ļšīįėåģč ń čķńņąėčšąķåņī ķą ļąźåņą %s"
-
-#: ../../standalone/drakgw_.c:672
-msgid ""
-"Everything has been configured.\n"
-"You may now share Internet connection with other computers on your Local "
-"Area Network, using automatic network configuration (DHCP)."
-msgstr ""
-"Āńč÷źī å ķąńņšīåķī.\n"
-"Ńåćą ģīęåņå äą ńļīäåėčņå Čķņåšķåņ āšśēźąņą ńč ń äšóćč źīģļžņšč ā ėīźąėķąņą "
-"āč ģšåęą čēļīėēāąéźč ąāņīģąņč÷ķą ģšåęīāą ķąńņšīéźą (DHCP)."
-
-#: ../../standalone/drakgw_.c:689
-msgid "The setup has already been done, but it's currently disabled."
-msgstr "Óńņąķīāźąņą āå÷å å ķąļšąāåķą, ķī ā ģīģåķņą å čēźėž÷åķą."
-
-#: ../../standalone/drakgw_.c:690
-msgid "The setup has already been done, and it's currently enabled."
-msgstr "Óńņąķīāźąņą āå÷å å ķąļšąāåķą č ā ģīģåķņą å āźėž÷åķą."
-
-#: ../../standalone/drakgw_.c:691
-msgid "No Internet Connection Sharing has ever been configured."
-msgstr "Ķ˙ģą ķąńņšīéāąķī ńļīäåė˙ķå ķą Čķņåšķåņ āšśēźąņą."
-
-#: ../../standalone/drakgw_.c:696
-msgid "Internet connection sharing configuration"
-msgstr "Ķąńņšīéźą ķą ńļīäåė˙ķåņī ķą Čķņåšķåņ āšśēźąņą"
-
-#: ../../standalone/drakgw_.c:703
-#, c-format
-msgid ""
-"Welcome to the Internet Connection Sharing utility!\n"
-"\n"
-"%s\n"
-"\n"
-"Click on Configure to launch the setup wizard."
-msgstr ""
-"Äīįšå äīųėč ā čķńņšóģåķņą ēą ńļīäåė˙ķå ķą Čķņåšķåņ āšśēźąņą !\n"
-"\n"
-"%s\n"
-"\n"
-"Öśźķåņå ``Ķąńņšīé'', ąźī čńźąņå äą ńņąšņčšąķå óńņąķīā˙āąłč˙ ģąćüīńķčź."
-
-#: ../../standalone/draknet_.c:80
-#, c-format
-msgid "Network configuration (%d adapters)"
-msgstr "Ķąńņšīéźą ķą ģšåęąņą (%d ąäąļņåšą)"
-
-#: ../../standalone/draknet_.c:87 ../../standalone/draknet_.c:595
-msgid "Profile: "
-msgstr "Ļšīōčė: "
-
-#: ../../standalone/draknet_.c:95
-msgid "Del profile..."
-msgstr "Čēņšīé ļšīōčė ..."
-
-#: ../../standalone/draknet_.c:101
-msgid "Profile to delete:"
-msgstr "Ļšīōčė ēą čēņščāąķå:"
-
-#: ../../standalone/draknet_.c:129
-msgid "New profile..."
-msgstr "Ķīā ļšīōčė ..."
-
-#: ../../standalone/draknet_.c:135
-msgid ""
-"Name of the profile to create (the new profile is created as a copy of the "
-"current one) :"
-msgstr ""
-"Čģå ķą ńśēäąāąķč˙ ļšīōčė (ķīāč˙ņ ļšīōčė ńå ńśēäąāą źąņī źīļčå ķą ņåźółč˙):"
-
-#: ../../standalone/draknet_.c:161
-msgid "Hostname: "
-msgstr "Čģå ķą õīńņ:"
-
-#: ../../standalone/draknet_.c:168
-msgid "Internet access"
-msgstr "Čķņåšķåņ äīńņśļ"
-
-#: ../../standalone/draknet_.c:181
-msgid "Type:"
-msgstr "Ņčļ: "
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-msgid "Gateway:"
-msgstr "Gateway:"
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-msgid "Interface:"
-msgstr "Čķņåšōåéń:"
-
-#: ../../standalone/draknet_.c:195
-msgid "Status:"
-msgstr "Ńśńņī˙ķčå:"
-
-#: ../../standalone/draknet_.c:202
-msgid "Wait please"
-msgstr ""
-
-#: ../../standalone/draknet_.c:220
-msgid "Configure Internet Access..."
-msgstr "Ķąńņšīéźą ķą Čķņåšķåņ äīńņśļą ..."
-
-#: ../../standalone/draknet_.c:227 ../../standalone/draknet_.c:449
-msgid "LAN configuration"
-msgstr "Ķąńņšīéźą ķą LAN"
-
-#: ../../standalone/draknet_.c:232
-msgid "Driver"
-msgstr "Äšąéāåš"
-
-#: ../../standalone/draknet_.c:232
-msgid "Interface"
-msgstr "Čķņåšōåéń"
-
-#: ../../standalone/draknet_.c:232
-msgid "Protocol"
-msgstr "Ļšīņīźīė"
-
-#: ../../standalone/draknet_.c:232
-msgid "State"
-msgstr "Ńśńņī˙ķčå"
-
-#: ../../standalone/draknet_.c:244
-msgid "Configure Local Area Network..."
-msgstr "Ķąńņīéźą ķą ėīźąėķą ģšåęą ..."
-
-#: ../../standalone/draknet_.c:256
-msgid "Click here to launch the wizard ->"
-msgstr "Öśźķåņå ņóź, ēą äą ńņąšņčšąņå ģąćüīńķčźą ->"
-
-#: ../../standalone/draknet_.c:257
-msgid "Wizard..."
-msgstr "Ģąćüīńķčź..."
-
-#: ../../standalone/draknet_.c:283
-msgid "Apply"
-msgstr "Ļščėīęč"
-
-#: ../../standalone/draknet_.c:302
-msgid "Please Wait... Applying the configuration"
-msgstr "Ģīė˙, ļī÷ąźąéņå ... Ļščėąćąķå ķą ķąńņšīéźčņå"
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-msgid "Connected"
-msgstr "Ńāśšēąķ"
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-msgid "Not connected"
-msgstr "Ķå ńāśšēąķ"
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Connect..."
-msgstr "Ńāśšēāąķå ..."
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Disconnect..."
-msgstr "Īņāśšēāąķå ..."
-
-#: ../../standalone/draknet_.c:404
-msgid ""
-"Warning, another Internet connection has been detected, maybe using your "
-"network"
-msgstr ""
-
-#: ../../standalone/draknet_.c:431
-msgid ""
-"You don't have any configured interface.\n"
-"Configure them first by clicking on 'Configure'"
-msgstr ""
-"Ķ˙ģąņå ķąńņšīåķ čķņåšōåéń.\n"
-"Ķąńņšīéņå ćč ļšåäč ņīāą, źąņī öśźķåņå ķą 'Ķąńņšīéźą'"
-
-#: ../../standalone/draknet_.c:453
-msgid "LAN Configuration"
-msgstr "Ķąńņšīéźą ķą ėīźąėķą ģšåęą"
-
-#: ../../standalone/draknet_.c:464
-#, c-format
-msgid "Adapter %s: %s"
-msgstr "Ąäąļņåš %s: %s"
-
-#: ../../standalone/draknet_.c:470
-msgid "Boot Protocol"
-msgstr "Ńņąšņčšął ļšīņīźīė"
-
-#: ../../standalone/draknet_.c:471
-msgid "Started on boot"
-msgstr "Ļóńķąņ ļšč ńņąšņčšąķå"
-
-#: ../../standalone/draknet_.c:472
-msgid "DHCP client"
-msgstr "DHCP źėčåķņ"
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-msgid "activate now"
-msgstr "ąźņčāčšąé ńåćą"
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-msgid "deactivate now"
-msgstr "äåąźņčāčšąé ńåćą"
-
-#: ../../standalone/draknet_.c:503
-msgid ""
-"This interface has not been configured yet.\n"
-"Launch the configuration wizard in the main window"
-msgstr ""
-
-#: ../../standalone/draknet_.c:560
-msgid ""
-"You don't have any internet connection.\n"
-"Create one first by clicking on 'Configure'"
-msgstr ""
-"Ķ˙ģąņå Internet āšśēźą.\n"
-"Ńśēäąéņå ņąźąāą, źąņī öśźķåņå ķą 'Ķąńņšīé'"
-
-#: ../../standalone/draknet_.c:584
-msgid "Internet connection configuration"
-msgstr "Ķąńņšīéźą ķą Čķņåšķåņ āšśēźą"
-
-#: ../../standalone/draknet_.c:588
-msgid "Internet Connection Configuration"
-msgstr "Ķąńņšīéźą ķą Čķņåšķåņ āšśēźą"
-
-#: ../../standalone/draknet_.c:597
-msgid "Connection type: "
-msgstr "Ņčļ ķą āšśēźąņą: "
-
-#: ../../standalone/draknet_.c:603
-msgid "Parameters"
-msgstr "Ļąšąģåņšč"
-
-#: ../../standalone/draknet_.c:621
-msgid "Gateway"
-msgstr "Gateway"
-
-#: ../../standalone/draknet_.c:630
-msgid "Ethernet Card"
-msgstr "Ethernet źąšņą"
-
-#: ../../standalone/draknet_.c:631
-msgid "DHCP Client"
-msgstr "DHCP źėčåķņ"
-
-#: ../../standalone/draksec_.c:31
-msgid "Setting security level"
-msgstr "Čēįåšåņå ķčāī ķą ńčćóšķīńņ"
-
-#: ../../standalone/drakxconf_.c:47
-msgid "Control Center"
-msgstr "Źīķņšīėåķ öåķņśš"
-
-#: ../../standalone/drakxconf_.c:48
-msgid "Choose the tool you want to use"
-msgstr "Čēįåšåņå čķńņšóģåķņą, źīéņī čńźąņå äą čēļīėēāąņå"
-
-#: ../../standalone/drakxtv_.c:48
-#, fuzzy
-msgid "Canada (cable)"
-msgstr "Źąķąäńźą (Źāåįåź)"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (bcast)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (cable)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (cable-hrc)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:49
-msgid "China (bcast)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:49
-msgid "Japan (bcast)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:49
-msgid "Japan (cable)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "East Europe"
-msgstr "Åāšīļą"
-
-#: ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "Ireland"
-msgstr "Čńėąķäńźą"
-
-#: ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "West Europe"
-msgstr "Åāšīļą"
-
-#: ../../standalone/drakxtv_.c:51
-#, fuzzy
-msgid "Australia"
-msgstr "ńåščéķą"
-
-#: ../../standalone/drakxtv_.c:51
-msgid "Newzealand"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:52
-msgid "South Africa"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:53
-msgid "Argentina"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:58
-msgid ""
-"Please,\n"
-"type in your tv norm and country"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:60
-msgid "TV norm :"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:61
-msgid "Area :"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:65
-msgid "Scanning for TV channels in progress ..."
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:72
-msgid "Scanning for TV channels"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:83
-msgid "No TV Card detected!"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:84
-msgid ""
-"No TV Card has been detected on your machine. Please verify that a Linux-"
-"supported Video/TV Card is correctly plugged in.\n"
-"\n"
-"\n"
-"You can visit our hardware database at:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/hardware.php3"
-msgstr ""
-
-#: ../../standalone/keyboarddrake_.c:16
-msgid "usage: keyboarddrake [--expert] [keyboard]\n"
-msgstr "óļīņšåįą: keyboarddrake [--expert] [keyboard]\n"
-
-#: ../../standalone/keyboarddrake_.c:29
-msgid "Please, choose your keyboard layout."
-msgstr "Ģīė˙, čēįåšåņå ļīäšåęäąķå ķą źėąāčąņóšąņą."
-
-#: ../../standalone/keyboarddrake_.c:36
-msgid "Do you want the BackSpace to return Delete in console?"
-msgstr "Čńźąņå ėč BackSpace äą ļīäąāą Delete ķą źīķēīėąņą ?"
-
-#: ../../standalone/livedrake_.c:24
-msgid "Change Cd-Rom"
-msgstr "Ńģ˙ķą ķą CD-ROM"
-
-#: ../../standalone/livedrake_.c:25
-msgid ""
-"Please insert the Installation Cd-Rom in your drive and press Ok when done.\n"
-"If you don't have it, press Cancel to avoid live upgrade."
-msgstr ""
-"Ģīė˙, ńėīęåņå Čķńņąėąöčīķķč˙ CD-ROM ā óńņšīéńņāīņī č ķąņčńķåņå Ok, źīćąņī "
-"ńņå ćīņīāč.\n"
-"Ąźī ćī ķ˙ģąņå, ķąņčńķåņå Īņģ˙ķą, ēą äą čēįåćķåņå čķńņąėčšąķåņī īņ ņīēč CD-"
-"ROM."
-
-#: ../../standalone/livedrake_.c:35
-msgid "Unable to start live upgrade !!!\n"
-msgstr "Ķå ģīćą äą ļóńķą īįķīā˙āąķåņī !!!\n"
-
-#: ../../standalone/localedrake_.c:32
-msgid "The change is done, but to be effective you must logout"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:85 ../../standalone/logdrake_.c:501
-msgid "logdrake"
-msgstr "ėīćäšåéź"
-
-#: ../../standalone/logdrake_.c:95
-msgid "Show only for the selected day"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:102
-msgid "/File/_New"
-msgstr "/Ōąéė/_Ķīā"
-
-#: ../../standalone/logdrake_.c:102
-msgid "<control>N"
-msgstr "<źīķņšīė>N"
-
-#: ../../standalone/logdrake_.c:103
-msgid "/File/_Open"
-msgstr "/Ōąéė/_Īņāīšč"
-
-#: ../../standalone/logdrake_.c:103
-msgid "<control>O"
-msgstr "<źīķņšīė>O"
-
-#: ../../standalone/logdrake_.c:104
-msgid "/File/_Save"
-msgstr "/Ōąéė/_Ēąļčń"
-
-#: ../../standalone/logdrake_.c:104
-msgid "<control>S"
-msgstr "<źīķņšīė>S"
-
-#: ../../standalone/logdrake_.c:105
-msgid "/File/Save _As"
-msgstr "/Ōąéė/Ēąļčųč _Źąņī"
-
-#: ../../standalone/logdrake_.c:106
-msgid "/File/-"
-msgstr "/Ōąéė/-"
-
-#: ../../standalone/logdrake_.c:108
-msgid "/_Options"
-msgstr "/_Īļöčč"
-
-#: ../../standalone/logdrake_.c:109
-msgid "/Options/Test"
-msgstr "/Īļöčč/Ņåńņ"
-
-#: ../../standalone/logdrake_.c:110
-msgid "/_Help"
-msgstr "/_Ļīģīł"
-
-#: ../../standalone/logdrake_.c:111
-msgid "/Help/_About..."
-msgstr "/Ļīģīł/_Ēą..."
-
-#: ../../standalone/logdrake_.c:118
-msgid "-misc-fixed-medium-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:119
-msgid "-misc-fixed-bold-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:173
-#, fuzzy
-msgid "User"
-msgstr "Ļīņšåįčņåėńźī čģå"
-
-#: ../../standalone/logdrake_.c:174
-#, fuzzy
-msgid "Messages"
-msgstr "ńśīįłåķč˙"
-
-#: ../../standalone/logdrake_.c:175
-#, fuzzy
-msgid "Syslog"
-msgstr "ńčńņåģåķ ėīć"
-
-#: ../../standalone/logdrake_.c:176
-msgid "Mandrake Tools Explanations"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:179
-msgid "search"
-msgstr "ņśšńč"
-
-#: ../../standalone/logdrake_.c:185
-msgid "A tool to monitor your logs"
-msgstr "Čķńņšóģåķņ ēą ļšåćėåęäąķå ķą āąųčņå ėīć ōąéėīāå"
-
-#: ../../standalone/logdrake_.c:186
-msgid "Settings"
-msgstr "Ķąńņšīéźč"
-
-#: ../../standalone/logdrake_.c:191
-msgid "matching"
-msgstr "ńśāļąäåķčå"
-
-#: ../../standalone/logdrake_.c:192
-msgid "but not matching"
-msgstr "ķī ķå ńśāļąäą"
-
-#: ../../standalone/logdrake_.c:196
-msgid "Choose file"
-msgstr "Čēįåšåņå ōąéė"
-
-#: ../../standalone/logdrake_.c:201
-msgid "Calendar"
-msgstr "Źąėåķäąš"
-
-#: ../../standalone/logdrake_.c:211
-msgid "Content of the file"
-msgstr "Ńśäśšęąķčå ķą ōąéėą"
-
-#: ../../standalone/logdrake_.c:215 ../../standalone/logdrake_.c:390
-msgid "Mail/SMS alert"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:268
-#, fuzzy, c-format
-msgid "please wait, parsing file: %s"
-msgstr "ģīė˙ čē÷ąźąéņå, ļšąā˙ šąēįīš ķą ōąéė: %s"
-
-#: ../../standalone/logdrake_.c:405
-#, fuzzy
-msgid "Mail/SMS alert configuration"
-msgstr "Ķąńņšīéźą ķą LILO/Grub"
-
-#: ../../standalone/logdrake_.c:406
-#, fuzzy
-msgid ""
-"Welcome to the mail/SMS configuration utility.\n"
-"\n"
-"Here, you'll be able to set up the alert system.\n"
-msgstr ""
-"Äīįšå äīųėč ā ķąńņšīéźąņą ķą Proxy.\n"
-"\n"
-"Ņóź łå ģīęåņå äą óńņąķīāčņå āąųčņå HTTP č FTP proxy\n"
-"ńśń čėč įåē ļīņšåįčņåėńźī čģå č ļąšīėą\n"
-
-#: ../../standalone/logdrake_.c:414
-#, fuzzy
-msgid "proftpd"
-msgstr "Apache č Pro-ftpd"
-
-#: ../../standalone/logdrake_.c:417
-#, fuzzy
-msgid "sshd"
-msgstr "shadow"
-
-#: ../../standalone/logdrake_.c:418
-msgid "webmin"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:419
-#, fuzzy
-msgid "xinetd"
-msgstr "Čēėåē"
-
-#: ../../standalone/logdrake_.c:422
-#, fuzzy
-msgid "service setting"
-msgstr "čķņåšåńåķ"
-
-#: ../../standalone/logdrake_.c:423
-msgid ""
-"You will receive an alert if one of the selected service is no more running"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:433
-#, fuzzy
-msgid "load setting"
-msgstr "Ōīšģąņčšąķå"
-
-#: ../../standalone/logdrake_.c:434
-msgid "You will receive an alert if the load is higher than this value"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:447
-#, fuzzy
-msgid "alert configuration"
-msgstr "Ķąńņšīéźą ķą öāåņīāå"
-
-#: ../../standalone/logdrake_.c:448
-msgid "Configure the way the system will alert you"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:478
-msgid "Save as.."
-msgstr "Ēąļąēč źąņī..."
-
-#: ../../standalone/mousedrake_.c:49
-msgid "Please, choose the type of your mouse."
-msgstr "Ģīė˙, čēįåšåņå ņčļ ķą ģčųźąņą."
-
-#: ../../standalone/mousedrake_.c:59
-msgid "no serial_usb found\n"
-msgstr "ķå å ķąģåšåķ serial_usb\n"
-
-#: ../../standalone/mousedrake_.c:63
-msgid "Emulate third button?"
-msgstr "Äą ńčģóėčšąģ ėč ņšåņč įóņīķ ?"
-
-#: ../../standalone/scannerdrake_.c:53
-#, c-format
-msgid "%s found on %s, configure it ?"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:60
-#, fuzzy
-msgid "Select a scanner"
-msgstr "Čēįåšåņå ćšąōč÷ķą źąšņą"
-
-#: ../../standalone/scannerdrake_.c:80
-#, c-format
-msgid "This %s scanner is unsupported"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:94
-#, c-format
-msgid ""
-"Scannerdrake was not able to detect your %s scanner.\n"
-"Please select the device where your scanner is plugged"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:96
-#, fuzzy
-msgid "choose device"
-msgstr "Ńņąšņčšąłī óńņšīéńņāī"
-
-#: ../../standalone/scannerdrake_.c:102
-#, c-format
-msgid ""
-"This %s scanner must be configured by printerdrake.\n"
-"You can launch printerdrake from the Mandrake Control Center in Hardware "
-"section."
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:107
-#, c-format
-msgid ""
-"Your %s scanner has been configured.\n"
-"You may now scan documents using ``XSane'' from Multimedia/Graphics in the "
-"applications menu."
-msgstr ""
-
-#: ../../standalone/tinyfirewall_.c:31
-msgid "Firewalling Configuration"
-msgstr "Ķąńņšīéźą ķą Ēąłčņķą Ńņåķą"
-
-#: ../../standalone/tinyfirewall_.c:44
-msgid "Firewalling configuration"
-msgstr "Ķąńņšīéźą ķą Ēąłčņķą Ńņåķą"
-
-#: ../../standalone/tinyfirewall_.c:79
-msgid ""
-"Firewalling\n"
-"\n"
-"You already have set up a firewall.\n"
-"Click on Configure to change or remove the firewall"
-msgstr ""
-"Ēąłčņķą ńņåķą\n"
-"\n"
-"Āå÷å ńņå ķąńņšīčėč ēąłčņķą ńņåķą.\n"
-"Öśźķåņå Ķąńņšīé, ēą äą óńņąķīāčņå ńņąķäąšņķą ēąłčņķą ńņåķą"
-
-#: ../../standalone/tinyfirewall_.c:83
-msgid ""
-"Firewalling\n"
-"\n"
-"Click on Configure to set up a standard firewall"
-msgstr ""
-"Ēąłčņķą ńņåķą\n"
-"\n"
-"Öśźķåņå Ķąńņšīé, ēą äą óńņąķīāčņå ńņąķäąšņķą ēąłčņķą ńņåķą"
-
-#: ../../steps.pm_.c:14
-msgid "Choose your language"
-msgstr "Čēįīš ķą åēčź"
-
-#: ../../steps.pm_.c:15
-msgid "Select installation class"
-msgstr "Čēįīš ķą źėąń čķńņąėąöč˙"
-
-#: ../../steps.pm_.c:16
-msgid "Hard drive detection"
-msgstr "Ēąńč÷ąķå ķą äčńźīāåņå"
-
-#: ../../steps.pm_.c:17
-msgid "Configure mouse"
-msgstr "Ķąńņšīéźą ķą ģčųźą"
-
-#: ../../steps.pm_.c:18
-msgid "Choose your keyboard"
-msgstr "Čēįīš ķą źėąāčąņóšą"
-
-#: ../../steps.pm_.c:19
-msgid "Security"
-msgstr "Ńčćóšķīńņ"
-
-#: ../../steps.pm_.c:20
-msgid "Setup filesystems"
-msgstr "Ōąéėīāč ńčńņåģč"
-
-#: ../../steps.pm_.c:21
-msgid "Format partitions"
-msgstr "Ōīšģąņčšąķå ķą ä˙ėīāå"
-
-#: ../../steps.pm_.c:22
-msgid "Choose packages to install"
-msgstr "Ļąźåņč ēą čķńņąėčšąķå"
-
-#: ../../steps.pm_.c:23
-msgid "Install system"
-msgstr "Čķńņąėčšąķå ķą ńčńņåģąņą"
-
-#: ../../steps.pm_.c:25
-msgid "Add a user"
-msgstr "Äīįąā˙ķå ķą ļīņšåįčņåė"
-
-#: ../../steps.pm_.c:26
-msgid "Configure networking"
-msgstr "Ķąńņīéźą ķą ģšåęąņą"
-
-#: ../../steps.pm_.c:28
-msgid "Configure services"
-msgstr "Ķąńņšīéźą ķą óńėóćčņå"
-
-#: ../../steps.pm_.c:29
-msgid "Install bootloader"
-msgstr "Čķńņąėčšąķå ķą bootloader"
-
-#: ../../steps.pm_.c:31
-msgid "Create a bootdisk"
-msgstr "Ńśēäąāąķå ķą boot-äčńźåņą"
-
-#: ../../steps.pm_.c:33
-msgid "Configure X"
-msgstr "Ķąńņšīéźą ķą Õ"
-
-#: ../../steps.pm_.c:34
-#, fuzzy
-msgid "Install system updates"
-msgstr "Čķńņąėčšąķå ķą ńčńņåģąņą"
-
-#: ../../steps.pm_.c:35
-msgid "Exit install"
-msgstr "Čēõīä īņ čķńņąėąöčīķķąņą ļšīćšąģą"
-
-#: ../../tinyfirewall.pm_.c:9
-msgid ""
-"tinyfirewall configurator\n"
-"\n"
-"This configures a personal firewall for this Mandrake Linux machine.\n"
-"For a powerful dedicated firewall solution, please look to the\n"
-"specialized MandrakeSecurity Firewall distribution."
-msgstr ""
-"Ķąńņšīé÷čź ēą ģąėźą ēąłčņķą ńņåķą\n"
-"\n"
-"Ņīāą ķąńņšīéāą ļåšńīķąėķą ēąłčņķą ńņåķą ēą ņąēč Mandrake Linux ģąųčķą.\n"
-"Ēą ģīłķī ļīńņāåņåķī ķą ēąłčņąņą šåųåķčå, ģīėå, ļīćėåäķåņå ńļåöčąėčēčšąķąņą\n"
-"MandrakeSecurity Firewall äčńņščįóöč˙."
-
-#: ../../tinyfirewall.pm_.c:14
-msgid ""
-"We'll now ask you questions about which services you'd like to allow\n"
-"the Internet to connect to. Please think carefully about these\n"
-"questions, as your computer's security is important.\n"
-"\n"
-"Please, if you're not currently using one of these services, firewall\n"
-"it off. You can change this configuration anytime you like by\n"
-"re-running this application!"
-msgstr ""
-"Ńåćą łå āč ēąäąäåģ āśļšīńč ēą ņīāą, źśģ źīč óńėóćč įčõņå čńźąėč äą\n"
-"ļīēāīėčņå ķą Čķņåšķåņ äą ńāśšēāą. Ģīė˙, ļīģčńėåņå āķčģąņåėķī ļī\n"
-"ņåēč āśļšīńč, ņśé źąņī ńčćóšķīńņņą ķą źīģļžņśšą āč å āąęķą.\n"
-"\n"
-"Ģīė˙, ąźī ā ģīģåķņą ķå čēļīėēāąņå ķ˙źī˙ īņ óńėóćčņå, ēąłčņåņå ˙.\n"
-"Ģīęåņå äą ļšīģåķčņå ķąńņšīéźąņą ļī āń˙źī āšåģå, ąźī čńźąņå, źąņī\n"
-"ńņąšņčšąņå īņķīāī ņīāą ļščėīęåķčå !"
-
-#: ../../tinyfirewall.pm_.c:21
-msgid ""
-"Are you running a web server on this machine that you need the whole\n"
-"Internet to see? If you are running a webserver that only needs to be\n"
-"accessed by this machine, you can safely answer NO here.\n"
-"\n"
-msgstr ""
-"Čēļīėēāąņå ėč Web ńśšāśš ķą ņąēč ģąųčķą, źīéņī čńźąņå öåėč˙ņ Čķņåšķåņ\n"
-"ēą āčęäą ? Ąźī čēļīėēāąņå, źīéņī ņš˙įāą äą įśäå äīńņśļåķ īņ ņąēč ģąųčķą,\n"
-"ģīęåņå ńļīźīéķī äą īņćīāīščņå ń Ķå ņóź.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:26
-msgid ""
-"Are you running a name server on this machine? If you didn't set one\n"
-"up to give away IP and zone information to the whole Internet, please\n"
-"answer no.\n"
-"\n"
-msgstr ""
-"Čēļīėēāąņå ėč Name ńśšāśš ķą ņąēč ģąųčķą ? Ąźī ķå čńźąņå äą ļšåäīńņąā˙ņå\n"
-"čķōīšģąöč˙ ēą IP-ņą č ēīķč ķą öåėč˙ Čķņåšķåņ, ģīė˙, īņćīāīšåņå Ķå.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:31
-msgid ""
-"Do you want to allow incoming Secure Shell (ssh) connections? This\n"
-"is a telnet-replacement that you might use to login. If you're using\n"
-"telnet now, you should definitely switch to ssh. telnet is not\n"
-"encrypted -- so some attackers can steal your password if you use\n"
-"it. ssh is encrypted and doesn't allow for this eavesdropping."
-msgstr ""
-"Čńźąņå ėč äą šąēšåųčņå āõīä˙łč Secure SHell (SSH) āšśēźč ? Ņīāą å\n"
-"ēąģåńņčņåė ķą telnet, źīéņī ģīęåņå äą čēļīėēāąņå ēą āėčēąķå. Ąźī ā\n"
-"ģīģåķņą čēļīėēāąņå telnet, īļšåäåėåķī ņš˙įāą äą ļšåģčķåņå źśģ SSH.\n"
-"Telnet ķå å źščļņčšąķ -- ņąźą ÷å ķ˙źīč ąņąźóāąłč ģīćąņ äą īņźšąäķąņ\n"
-"ļąšīėąņą āč, ąźī ćī čēļīėēāąņå. SSH å źščļņčšąķ č čēźėž÷āą ņąźąāą\n"
-"čēäśķźą."
-
-#: ../../tinyfirewall.pm_.c:36
-msgid ""
-"Do you want to allow incoming telnet connections?\n"
-"This is horribly unsafe, as we explained in the previous screen. We\n"
-"strongly recommend answering No here and using ssh in place of\n"
-"telnet.\n"
-msgstr ""
-"Čńźąņå ėč äą ļīēāīėčņå āõīä˙łč telnet āšśēźč ?\n"
-"Ņīāą å óęąńķī ķåńčćóšķī, źąźņī īį˙ńķčõģå ā ļšåäčųķč˙ åźšąķ. Ńčėķī\n"
-"āč ļšåļīšś÷āąģå äą īņćīāīščņå Ķå ņóź č äą čēļīėēāąņå SSH āģåńņī\n"
-"telnet.\n"
-
-#: ../../tinyfirewall.pm_.c:41
-msgid ""
-"Are you running an FTP server here that you need accessible to the\n"
-"Internet? If you are, we strongly recommend that you only use it for\n"
-"Anonymous transfers. Any passwords sent by FTP can be stolen by some\n"
-"attackers, since FTP also uses no encryption for transferring passwords.\n"
-msgstr ""
-"Čģąņå ėč FTP ńśšāśš ņóź, źīéņī ņš˙įāą äą å äīńņśļåķ ēą Čķņåšķåņ ?\n"
-"Ąźī čģąņå, ńčėķī āč ļšåļīšś÷āąģå äą ćī čēļīėēāąņå ēą ąķīķčģķč ņšąķńōåšč.\n"
-"Āńč÷źč ļąšīėč čēļšąłąķč ļī FTP ģīćąņ äą įśäąņ īņźšąäķąņč īņ ąņąźóāąłą\n"
-"ėč÷ķīńņ, ņśé źąņī FTP ķå čēļīėēāą źščļņīćšąōč˙ ēą ļšåõāśšė˙ķåņī čģ.\n"
-
-#: ../../tinyfirewall.pm_.c:46
-msgid ""
-"Are you running a mail server here? If you're sending you \n"
-"messages through pine, mutt or any other text-based mail client,\n"
-"you probably are. Otherwise, you should firewall this off.\n"
-"\n"
-msgstr ""
-"Čģąņå ėč ļīłåķńźč ńśšāśš ņóź ? Ąźī čēļšąłąņå ńśīįłåķč˙ņą ńč\n"
-"÷šåē pine, mutt čėč źąźśāņī č äą å äšóć ņåźńņīā ļīłåķńźč źėčåķņ,\n"
-"ģīęå įč čģąņå. Ā ļšīņčāåķ ńėó÷ąé, ņš˙įāą äą ēąłčņčņå ņīāą.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:51
-msgid ""
-"Are you running a POP or IMAP server here? This would\n"
-"be used to host non-web-based mail accounts for people via \n"
-"this machine.\n"
-"\n"
-msgstr ""
-"Čģąņå ėč POP čėč IMAP ńśšāśš ņóź ? Ņīāą ģīęå äą įśäå\n"
-"čēļīėēāąķī äą ļščžņ˙āąķå ķą ķå-web-įąēčšąķč ļīłåķńźč ąźąóķņč\n"
-"ļšåē ņąēč ģąųčķą.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:56
-msgid ""
-"You appear to be running a 2.2 kernel. If your network IP\n"
-"is automatically set by a computer in your home or office \n"
-"(dynamically assigned), we need to allow for this. Is\n"
-"this the case?\n"
-msgstr ""
-"Ń˙źąų čēļīėēāąņå 2.2 ˙äšī. Ąźī ģšåęīāīņī IP ąāņīģąņč÷ķī ńå\n"
-"īļšåäåė˙ īņ źīģļžņśš ó āąń čėč ā īōčńą (äčķąģč÷ķī ļīńņąā˙ķī),\n"
-"ņš˙įāą äą ļīēāīėčģ ņīāą. Ņąźśā ėč å ńėó÷ą˙ ?\n"
-
-#: ../../tinyfirewall.pm_.c:61
-msgid ""
-"Is your computer getting time syncronized to another computer?\n"
-"Mostly, this is used by medium-large Unix/Linux organizations\n"
-"to synchronize time for logging and such. If you're not part\n"
-"of a larger office and haven't heard of this, you probably \n"
-"aren't."
-msgstr ""
-"Āšåģåņī ķą źīģļžņśšą āč ńčķõšīķčēčšą ėč ńå ń äšóć źīģļžņśš ?\n"
-"Ņīāą ćėąāķī ńå čēļīėēāą ā ńšåäķī-ćīėåģč Unix/Linux īšćąķčēąöčč,\n"
-"ēą äą ńč ńčķõšīķčēčšą āšåģåņī ēą ēąļčńāąķå ķą ńņąņóńą č ņąźčāą šąįīņč.\n"
-"Ąźī ķå ńņå ÷ąńņ īņ ļī-ćīė˙ģ īōčń č ķå ńņå ÷óāąėč ēą ņąźīāą ķåłī,\n"
-"ģīęå įč ķå āč ņš˙įāą."
-
-#: ../../tinyfirewall.pm_.c:66
-msgid ""
-"Configuration complete. May we write these changes to disk?\n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-"Ķąńņšīéźąņą ēąāśšųåķą. Äą ēąļčųåģ ėč ļšīģåķčņå ķą äčńźą ?\n"
-"\n"
-"\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:82
-#, c-format
-msgid "Can't open %s: %s\n"
-msgstr "Ķå ģīćą äą īņāīš˙ %s: %s\n"
-
-#: ../../tinyfirewall.pm_.c:84
-#, c-format
-msgid "Can't open %s for writing: %s\n"
-msgstr "Ķå ģīćą äą īņāīš˙ %s ēą ēąļčń: %s\n"
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "No I don't need DHCP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "Yes I need DHCP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "No I don't need NTP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "Yes I need NTP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-msgid "Don't Save"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-#: ../../tinyfirewall.pm_.c:206
-msgid "Save & Quit"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:197 ../../tinyfirewall.pm_.c:201
-#, fuzzy
-msgid "Firewall Configuration Wizard"
-msgstr "Ķąńņšīéźą ķą Ēąłčņķą Ńņåķą"
-
-#: ../../tinyfirewall.pm_.c:199
-msgid "No (firewall this off from the internet)"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:200
-msgid "Yes (allow this through the firewall)"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:232
-#, fuzzy
-msgid "Please Wait... Verifying installed packages"
-msgstr "Ģīė˙, čē÷ąźąéņå, ļīäćīņā˙ķå ķą čķńņąėąöč˙ņą"
-
-#: ../../tinyfirewall.pm_.c:238
-#, c-format
-msgid ""
-"Failure installing the needed packages : %s and Bastille.\n"
-" Try to install them manually."
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Web/FTP"
-msgstr "Ńśšāśš, Web/FTP"
-
-#: ../../share/compssUsers:999
-msgid "Network Computer (client)"
-msgstr "Ģšåęīā źīģļžņśš (źėčåķņ)"
-
-#: ../../share/compssUsers:999
-msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr "NFS ńśšāśš, SMB ńśšāśš, Proxy ńśšāśš, SSH ńśšāśš"
-
-#: ../../share/compssUsers:999
-msgid "Office"
-msgstr "Īōčń"
-
-#: ../../share/compssUsers:999
-msgid "Gnome Workstation"
-msgstr "Gnome šąįīņķą ńņąķöč˙"
-
-#: ../../share/compssUsers:999
-msgid "Tools for your Palm Pilot or your Visor"
-msgstr "Čķńņšóģåķņč ēą āąųč˙ Palm Pilot čėč Visor-ą āč"
-
-#: ../../share/compssUsers:999
-msgid "Workstation"
-msgstr "Šąįīņķą ńņąķöč˙"
-
-#: ../../share/compssUsers:999
-msgid "Firewall/Router"
-msgstr "Ńśšāśš, Firewall/Šóņåš"
-
-#: ../../share/compssUsers:999
-msgid "Domain Name and Network Information Server"
-msgstr "Čģå ķą äīģåéķ č Ģšåęīā Čķōīšģąöčīķåķ Ńśšāśš"
-
-#: ../../share/compssUsers:999
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-"Īōčń ļšīćšąģč: word-ļšīöåńīšč (kword, abiword), ņąįėčöč (kspread, gnumeric), "
-"ļšåćėåä ķą PDF, č ņ.ķ."
-
-#: ../../share/compssUsers:999
-msgid "Audio-related tools: mp3 or midi players, mixers, etc"
-msgstr "Čķńņšóģåķņč ēą ąóäčī: MP3 čėč MIDI ļėåéśšč, ģčźńåšč, č ņ.ķ. "
-
-#: ../../share/compssUsers:999
-msgid "Books and Howto's on Linux and Free Software"
-msgstr "Źķčćč č HOTWO-ņą ēą Linux č ńāīįīäķč˙ ńīōņóåš"
-
-#: ../../share/compssUsers:999
-msgid "KDE Workstation"
-msgstr "KDE šąįīņķą ńņąķöč˙"
-
-#: ../../share/compssUsers:999
-msgid "Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm, Window Maker, Enlightenment, Fvwm č ņ.ķ."
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Video"
-msgstr "Ģóėņčģåäč˙ - Āčäåī"
-
-#: ../../share/compssUsers:999
-msgid "Set of tools for mail, news, web, file transfer, and chat"
-msgstr "Ķąįīš īņ čķńņšóģåķņč ēą ļīłą, ķīāčķč, web, ōąéėīā ņšąķńōåš, č ÷ąņ"
-
-#: ../../share/compssUsers:999
-msgid "Database"
-msgstr "Ńśšāśš, Įąēč-äąķķč"
-
-#: ../../share/compssUsers:999
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL čėč MySQL ńśšāśš ēą įąēč-äąķķč"
-
-#: ../../share/compssUsers:999
-msgid "Tools to ease the configuration of your computer"
-msgstr "Čķńņšóģåķņč ēą óėåńķ˙āąķå ķąńņšīéźąņą ķą źīģļžņśšą āč"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Sound"
-msgstr "Ģóņčģåäč˙ - Ēāóź"
-
-#: ../../share/compssUsers:999
-msgid "Utilities"
-msgstr "Čķńņšóģåķņč"
-
-#: ../../share/compssUsers:999
-msgid "Documentation"
-msgstr "Äīźóģåķņąöč˙"
-
-#: ../../share/compssUsers:999
-msgid "Console Tools"
-msgstr "Źīķēīėķč čķńņšóģåķņč"
-
-#: ../../share/compssUsers:999
-msgid "Postfix mail server, Inn news server"
-msgstr "Postfix ļīłåķńźč ńśšāśš, Inn ķīāčķąšńźč ńśšāśš"
-
-#: ../../share/compssUsers:999
-msgid "Internet station"
-msgstr "Čķņåšķåņ ńņąķöč˙"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia station"
-msgstr "Ģóņčģåäčéķą ńņąķöč˙"
-
-#: ../../share/compssUsers:999
-msgid "Configuration"
-msgstr "Ķąńņšīéźą"
-
-#: ../../share/compssUsers:999
-msgid "More Graphical Desktops (Gnome, IceWM)"
-msgstr "Īłå ćšąōč÷ķč desktop-č (Gnome, IceWM)"
-
-#: ../../share/compssUsers:999
-msgid ""
-"The K Desktop Environment, the basic graphical environment with a collection "
-"of accompanying tools"
-msgstr ""
-"The K Desktop Environment, ļšīńņą ńšåäą ń źīėåźöč˙ īņ ļščäšóęąāąłč "
-"čķńņšóģåķņč"
-
-#: ../../share/compssUsers:999
-msgid "Graphical Environment"
-msgstr "Ćšąōč÷ķą ńšåäą"
-
-#: ../../share/compssUsers:999
-msgid "Apache, Pro-ftpd"
-msgstr "Apache č Pro-ftpd"
-
-#: ../../share/compssUsers:999
-msgid "Tools to create and burn CD's"
-msgstr "Čķńņšóģåķņč ēą ńśēäąāąķå č īļč÷ąķå ķą CD-ņą"
-
-#: ../../share/compssUsers:999
-msgid "Office Workstation"
-msgstr "Īōčńķą šąįīņķą ńņąķöč˙"
-
-#: ../../share/compssUsers:999
-msgid "Server"
-msgstr "Ńśšāśš"
-
-#: ../../share/compssUsers:999
-msgid "Gnome, Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Gnome, Icewm, Window Maker, Enlightenment, Fvwm, č ņ.ķ."
-
-#: ../../share/compssUsers:999
-msgid "Graphics programs such as The Gimp"
-msgstr "Ćšąōč÷ķč ļšīćšąģč źąņī The Gimp"
-
-#: ../../share/compssUsers:999
-msgid "DNS/NIS "
-msgstr "FND/NIS"
-
-#: ../../share/compssUsers:999
-msgid "C and C++ development libraries, programs and include files"
-msgstr "Įčįėčīņåźč ēą šąēšąįīņźą ķą C č C++, ļšīćšąģč č include ōąéėīāå"
-
-#: ../../share/compssUsers:999
-msgid "Network Computer server"
-msgstr "Ģšåęīā źīģļžņśš, ńśšāśš"
-
-#: ../../share/compssUsers:999
-msgid "Mail/Groupware/News"
-msgstr "Ńśšāśš, Ļīłą/Groupware/Ķīāčķč"
-
-#: ../../share/compssUsers:999
-msgid "Game station"
-msgstr "Čćšąėķą ńņąķöč˙"
-
-#: ../../share/compssUsers:999
-msgid "Video players and editors"
-msgstr "Āčäåī ļėåéśšč č šåäąźņīšč"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Graphics"
-msgstr "Ģóėņčģåäč˙ - Ćšąōčźą"
-
-#: ../../share/compssUsers:999
-msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr "Ēąįąāķč ļšīćšąģč: ąšźąäķč čćšč, čćšč ķą ģąńą, ńņšąņåćčč č ņ.ķ."
-
-#: ../../share/compssUsers:999
-msgid ""
-"Set of tools to read and send mail and news (pine, mutt, tin..) and to "
-"browse the Web"
-msgstr ""
-"Ķąįīš īņ čķńņšóģåķņč ēą ÷åņåķå č čēļšąłąķå ķą ļīłą č ķīāčķč (pine, mutt, "
-"tin..) č ēą īįčźąė˙ķå čē Ģšåęąņą"
-
-#: ../../share/compssUsers:999
-msgid "Archiving, emulators, monitoring"
-msgstr "Ąšõčāčšąųč, åģóėąöč˙, ķąįėžäåķčå"
-
-#: ../../share/compssUsers:999
-msgid "Personal Finance"
-msgstr "Ėč÷ķč ōčķąķńč"
-
-#: ../../share/compssUsers:999
-msgid ""
-"A graphical environment with user-friendly set of applications and desktop "
-"tools"
-msgstr ""
-"Ćšąōč÷ķą ńšåäą ń ļīņšåįčņåėńźč ķąįīš īņ ļščėīęåķč˙ č desktop čķńņšóģåķņč"
-
-#: ../../share/compssUsers:999
-msgid "Clients for different protocols including ssh"
-msgstr "Źėčåķņč ēą šąēėč÷ķč ļšīņīźīėč āźėž÷čņåėķī SSH"
-
-#: ../../share/compssUsers:999
-msgid "Internet gateway"
-msgstr "Čķņåšķåņ gateway"
-
-#: ../../share/compssUsers:999
-msgid "Sound and video playing/editing programs"
-msgstr "Ļšīćšąģč ēą ļóńźąķå/ļīļšąā˙ķå ķą ēāóź č āčäåī"
-
-#: ../../share/compssUsers:999
-msgid "Other Graphical Desktops"
-msgstr "Äšóćč ćšąōč÷ķč desktop-č"
-
-#: ../../share/compssUsers:999
-msgid "Editors, shells, file tools, terminals"
-msgstr "Šåäąźņīšč, ųåėīāå, ōąéėīāč čķńņščģåķņč, ņåšģčķąėč"
-
-#: ../../share/compssUsers:999
-msgid "Programs to manage your finance, such as gnucash"
-msgstr "Ļšīćšąģč ēą īįšąįīņźą ķą ōčķąķńč, źąņī gnucash"
-
-#: ../../share/compssUsers:999
-msgid "Personal Information Management"
-msgstr "Īįšąįīņźą ķą ėč÷ķą čķōīšģąöč˙"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - CD Burning"
-msgstr "Ģóėņčģåäč˙ - īļč÷ąķå ķą CD"
-
-#: ../../share/compssUsers:999
-msgid "Scientific Workstation"
-msgstr "Ķąó÷ķą šąįīņķą ńņąķöč˙"
-
-#, fuzzy
-#~ msgid "About"
-#~ msgstr "Īņźąē"
-
-#, fuzzy
-#~ msgid "-adobe-utopia-medium-r-normal-*-12-*-*-*-p-*-iso8859-*,*-r-*"
-#~ msgstr "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"
-
-#~ msgid ""
-#~ "Can't access kernel modules corresponding to your kernel (file %s is "
-#~ "missing)"
-#~ msgstr ""
-#~ "Ķå ģīćą äą īńśłåńņā˙ äīńņśļ äī ģīäóėčņå ķą ˙äšīņī ńśīņāåņńāąłč ķą ˙äšīņī "
-#~ "āč (ōąéėśņ %s ėčļńāą)"
-
-#~ msgid "$f-$g %s)"
-#~ msgstr "$f-$g %s)"
-
-#~ msgid "None"
-#~ msgstr "Ķčźąźśā"
-
-#~ msgid "Choose a default printer!"
-#~ msgstr "Čēįåšåņå ļščķņåš ļī ļīäšąēįčšąķå"
-
-#~ msgid "Apply/Re-read printers"
-#~ msgstr "Ļščėąćąķå/Ļšåļšī÷čņ ķą ļščķņåščņå"
-
-#~ msgid "You may now provide its options to module %s."
-#~ msgstr "Ńåćą ģīęåņå äą ļīäąäåņå īļöččņå ģó źśģ ģīäóėą %s."
-
-#~ msgid "mount failed"
-#~ msgstr "ģīķņčšąķåņī ķå óńļ˙"
-
-#~ msgid "Low"
-#~ msgstr "Ńėąįī"
-
-#~ msgid "Medium"
-#~ msgstr "Ńšåäåķī"
-
-#~ msgid ""
-#~ "Few improvements for this security level, the main one is that there are\n"
-#~ "more security warnings and checks."
-#~ msgstr ""
-#~ "Ķ˙źīč ļīäīįšåķč˙ ēą ņīāą ķčāī ķą ńčćóšķīńņ. Ćėąāķīņī å, ÷å čģą ļīāå÷å\n"
-#~ "ļšåäóļšåęäåķč˙ č ļšīāåšźč ēą ńčćóšķīńņ."
-
-#, fuzzy
-#~ msgid "Art and Multimedia"
-#~ msgstr "Ģóėņčģåäč˙"
-
-#~ msgid "Boot mode"
-#~ msgstr "Šåęčģ ķą ńņąšņčšąķå"
-
-#, fuzzy
-#~ msgid "Export"
-#~ msgstr "Åźńļåšņķą"
-
-#, fuzzy
-#~ msgid ""
-#~ "To know about the options available for the current printer read either "
-#~ "the list shown below or click on the \"Print option list\" button. %s\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Ēą äą āčäčņå ńļčńśź ķą äīńņśļķčņå īļöčč ēą ņåźółč˙ ļščķņåš, čėč ļšī÷åņåņå "
-#~ "ńļčńśźą ļīźąēąķ ļī-äīėó čėč öśźķåņå ķą įóņīķą \"Ńļčńśź ń īļöčč ēą ļå÷ąņ"
-#~ "\".\n"
-
-#~ msgid ""
-#~ "GNU/Linux manages time in GMT (Greenwich Mean Time) and translates it in\n"
-#~ "local time according to the time zone you selected."
-#~ msgstr ""
-#~ "GNU/Linux šąįīņč ń āšåģå ļī GMT (Āšåģå ļī Ćščķóč÷)\n"
-#~ "č ćī ļšåāåęäą ā ėīźąėķī āšåģå ā ēąāčńčģīńņ īņ ēīķąņą, źī˙ņī ńņå čēįšąėč."
-
-#~ msgid "Connect to Internet"
-#~ msgstr "Ńāśšęč ńå źśģ Čķņåšķåņ"
-
-#~ msgid "Disconnect from Internet"
-#~ msgstr "Īņāśšęč ńå īņ Čķņåšķåņ"
-
-#~ msgid "Configure network connection (LAN or Internet)"
-#~ msgstr "Ķąńņšīéźą ķą ģšåęīāąņą āšśēźą (LAN čėč Čķņåšķåņ)"
-
-#, fuzzy
-#~ msgid "Detected %s, do you want to set it up?"
-#~ msgstr "Ķą źīé äčńź čńźąņå äą ćī ļšåģåńņčņå ?"
-
-#, fuzzy
-#~ msgid "Please choose the printer you want to set up."
-#~ msgstr "Ģīė˙, čēįåšåņå ļąźåņčņå, źīčņī čńźąņå äą čķńņąėčšąņå."
-
-#, fuzzy
-#~ msgid "Infos"
-#~ msgstr "Čķōīšģąöč˙"
-
-#, fuzzy
-#~ msgid "Windows Importation"
-#~ msgstr "Gnome šąįīņķą ńņąķöč˙"
-
-#~ msgid "authentification"
-#~ msgstr "óäīńņīāåš˙āąķå"
-
-#~ msgid "user"
-#~ msgstr "ļīņšåįčņåė"
-
-#, fuzzy
-#~ msgid ""
-#~ "Apache is a World Wide Web server. It is used to serve HTML files and "
-#~ "CGI."
-#~ msgstr ""
-#~ "Apache å World Wide Web (WWW) ńśšāśš. Ņīé ńėóęč äą īįšąįīņāą ķą HTML "
-#~ "ōąéėīāå\n"
-#~ "č CGI."
-
-#~ msgid ""
-#~ "named (BIND) is a Domain Name Server (DNS) that is used to resolve\n"
-#~ "host names to IP addresses."
-#~ msgstr ""
-#~ "named (BIND) å Domain Name Server (DNS), źīéņī ńå čēļīėēāą äą ļšåāśšķå\n"
-#~ "čģåņī ķą õīńņą äī IP ąäšåń."
-
-#, fuzzy
-#~ msgid ""
-#~ "Please choose the desired printer/printer port.\n"
-#~ "\n"
-#~ msgstr "Ģīė˙, čēįåšåņå ņčļ ķą ģčųźąņą."
-
-#~ msgid "Scanning available nfs shared resource"
-#~ msgstr "Ņśšńåķå ķą äīńņśļķč NFS ńļīäåėåķč šåńóšńč"
-
-#~ msgid "Scanning available nfs shared resource of server %s"
-#~ msgstr "Ņśšńåķå ēą äīńņśļķč NFS šåńóšńč ķą ńśšāśš %s"
-
-#~ msgid "Scanning available samba shared resource"
-#~ msgstr "Ńźąķčšąķå ķą äīńņśļķčņå SAMBA ļīäåėåķč šåńóšńč"
-
-#~ msgid "Scanning available samba shared resource of server %s"
-#~ msgstr "Ńźąķčšąķå ķą äīńņśļķčņå SAMBA ļīäåėåķč šåńóšńč ķą ńśšāśš %s"
-
-#, fuzzy
-#~ msgid "\\@quit"
-#~ msgstr "Čēõīä"
-
-#~ msgid "Removable media"
-#~ msgstr "Ńģåķ˙åģ ķīńčņåė"
-
-#~ msgid "Active"
-#~ msgstr "Ąźņčāčšąé"
-
-#, fuzzy
-#~ msgid "No X"
-#~ msgstr "Ķå"
-
-#~ msgid "A printer, model \"%s\", has been detected on "
-#~ msgstr "Ļščķņåš īņ ģīäåėą \"%s\", å ķąģåšåķ ķą "
-
-#~ msgid "Local Printer Device"
-#~ msgstr "Ėīźąėķī ļå÷ąņąłī óńņšīéńņāī"
-
-#~ msgid "Printer Device"
-#~ msgstr "Ļå÷ąņąłī óńņšīéńņāī"
-
-#~ msgid "Device/file name missing!"
-#~ msgstr "Ėčļńāą čģå ķą óńņšīéńņāī/ōąéė !"
-
-#~ msgid "Printer(s) on remote CUPS server(s)"
-#~ msgstr "Ļščķņåš(č) ķą īņäąėå÷åķ(č) CUPS ńśšāśš(č)"
-
-#~ msgid "Printer(s) on remote server(s)"
-#~ msgstr "Ļščķņåš(č) ķą īņäąėå÷åķ(č) ńśšāśš(č)"
-
-#, fuzzy
-#~ msgid " Linux "
-#~ msgstr "Linux"
-
-#, fuzzy
-#~ msgid " System "
-#~ msgstr "Ńčńņåģą"
-
-#, fuzzy
-#~ msgid " Other "
-#~ msgstr "Äšóćą"
-
-#, fuzzy
-#~ msgid "please choose your CD space"
-#~ msgstr "Ģīė˙, čēįåšåņå ļīäšåęäąķå ķą źėąāčąņóšąņą."
-
-#, fuzzy
-#~ msgid " Please check if you are using CDRW media"
-#~ msgstr "Ģīė˙, öśźķåņå ķą ķīńčņåė˙"
-
-#, fuzzy
-#~ msgid " Tape "
-#~ msgstr "Āčä: "
-
-#, fuzzy
-#~ msgid " Use .backupignore files"
-#~ msgstr "Ėīų backup-ōąéė"
-
-#, fuzzy
-#~ msgid "Configure it"
-#~ msgstr "Ķąńņšīéźą ķą Õ"
-
-#, fuzzy
-#~ msgid "on Tape Device"
-#~ msgstr "Ļå÷ąņąłī óńņšīéńņāī"
-
-#, fuzzy
-#~ msgid " Cancel "
-#~ msgstr "Īņģ˙ķą"
-
-#, fuzzy
-#~ msgid " Ok "
-#~ msgstr "Ok"
-
-#, fuzzy
-#~ msgid "close"
-#~ msgstr "Ēąņāīšč"
-
-#~ msgid "Starting your connection..."
-#~ msgstr "Ńņąšņčšąķå ķą āšśēźąņą ...."
-
-#~ msgid "Closing your connection..."
-#~ msgstr "Ēąņāąš˙ķå ķą āšśēźąņą āč ..."
-
-#~ msgid ""
-#~ "The connection is not closed.\n"
-#~ "Try to do it manually by running\n"
-#~ "/etc/sysconfig/network-scripts/net_cnx_down\n"
-#~ "in root."
-#~ msgstr ""
-#~ "Āšśēźąņą ķå å ēąņāīšåķą.\n"
-#~ "Īļčņąéņå ńå äą ćī ķąļšąāčņå šś÷ķī, źąņī ńņąšņčšąņå\n"
-#~ "/etc/sysconfig/network-scripts/net_cnx_down\n"
-#~ "źąņī root."
-
-#~ msgid "The system is now disconnected."
-#~ msgstr "Ńčńņåģąņą ā ģīģåķņą ķå å ńāśšēąķą."
-
-#~ msgid "Choose the size you want to install"
-#~ msgstr "Čēįåšåņå ćīėåģčķąņą, źī˙ņī čńźąņå äą čķńņąėčšąņå"
-
-#~ msgid "Total size: "
-#~ msgstr "Īįłą ćīėåģčķą: "
-
-#~ msgid "Please wait, "
-#~ msgstr "Ģīė˙, čē÷ąźąéņå, "
-
-#~ msgid "Total time "
-#~ msgstr "Īįłą ļšīäśėęčņåėķīńņ "
-
-#~ msgid "Use existing configuration for X11?"
-#~ msgstr "Äą čēļīėēāąģ ėč ńåćąųķąņą ķąńņšīéźą ķą X11 ?"
-
-#~ msgid ""
-#~ "What device is your printer connected to \n"
-#~ "(note that /dev/lp0 is equivalent to LPT1:)?\n"
-#~ msgstr ""
-#~ "Źśäå å ńāśšēąķ āąųč˙ ļščķņåš \n"
-#~ "(ēąįåėåęźą: /dev/lp0 å åźāčāąėåķņķī ķą LPT1) ?\n"
-
-#~ msgid "%s"
-#~ msgstr "%s"
-
-#~ msgid ""
-#~ "Warning, the network adapter is already configured. I will reconfigure it."
-#~ msgstr "Āķčģąķčå, ģšåęīāč˙ņ ąäąļņåš āå÷å å ķąńņšīåķ. Łå ćī ļšåķąńņšī˙."
-
-#~ msgid "New"
-#~ msgstr "Ķīā"
-
-#~ msgid "Remote"
-#~ msgstr "Īņäąėå÷åķ"
-
-#~ msgid ""
-#~ "Please click on a button above\n"
-#~ "\n"
-#~ "Or use \"New\""
-#~ msgstr ""
-#~ "Ģīė˙, öśźķåņå ķą įóņīķą ļī-ćīšå\n"
-#~ "\n"
-#~ "Čėč čēļīėēāąéņå \"Ķīā\""
-
-#~ msgid "Use \"New\""
-#~ msgstr "Čēļīėēāąéņå \"Ķīā\""
-
-#~ msgid "If the list above doesn't contain the wanted entry, enter it here:"
-#~ msgstr "Ąźī ńļčńśźśņ ļī-ćīšå ķå ńśäśšęą čńźąķč˙ åėåģåķņ, āśāåäåņå ćī ņóź:"
-
-#~ msgid "Shared resource"
-#~ msgstr "Ļīäåėåķč šåńóšńč"
-
-#~ msgid "Ambiguity (%s), be more precise\n"
-#~ msgstr "..... (%s), įśäåņå ļī-ņī÷åķ\n"
-
-#~ msgid " ? (default %s) "
-#~ msgstr " ? (ļī ļīäšąēįčšąķå å %s)"
-
-#~ msgid "Your choice? (default %s enter `none' for none) "
-#~ msgstr "Āąųč˙ņ čēįīš ? (ļī ļīäšąēįčšąķå %s, āśāåäåņå 'none' ēą ķčźīé)"
-
-#~ msgid "can not open /etc/sysconfig/autologin for reading: %s"
-#~ msgstr "ķå ģīćą äą īņāīš˙ /etc/sysconfig/autologin ēą ÷åņåķå: %s"
-
-#~ msgid "Do you want to restart the network"
-#~ msgstr "Čńźąņå ėč äą šåńņąšņčšąģ ģšåęąņą ?"
-
-#~ msgid ""
-#~ "\n"
-#~ "Do you agree?"
-#~ msgstr ""
-#~ "\n"
-#~ "Ńśćėąńķč ėč ńņå ?"
-
-#~ msgid "I'm about to restart the network device:\n"
-#~ msgstr "Ķą ļśņ ńśģ äą šåńņąšņčšąģ ģšåęīāīņī óńņšīéńņāī:\n"
-
-#~ msgid "I'm about to restart the network device %s. Do you agree?"
-#~ msgstr ""
-#~ "Ķą ļśņ ńśģ äą šåńņąšņčšąģ ģšåęīāīņī óńņšīéńņāī %s. Ńśćėąńķč ėč ńņå ?"
-
-#~ msgid ""
-#~ "Unless you know specifically otherwise, the usual choice is \"/dev/hda\"\n"
-#~ "(primary master IDE disk) or \"/dev/sda\" (first SCSI disk)."
-#~ msgstr ""
-#~ "Īńāåķ ąźī ķå ńņå ńčćóšķč ā īįšąņķīņī, īįčźķīāåķč˙ čēįīš å \"/dev/hda\"\n"
-#~ "(ļśšāč āīäåłī IDE äčńź) čėč \"/dev/sda\" (ļśšāč SCSI äčńź)."
-
-#~ msgid ""
-#~ "The following printers are configured.\n"
-#~ "You can add some more or modify the existing ones."
-#~ msgstr ""
-#~ "Ńėåäķčņå ļščķņåšč ńą ķąńņšīåķč.\n"
-#~ "Ģīęåņå äīįąāčņå īłå čėč äą ļšīģåķčņå ńśłåńņāóāąłčņå."
-
-#~ msgid ""
-#~ "\n"
-#~ "If you continue, I will shut down your %s environnement"
-#~ msgstr ""
-#~ "\n"
-#~ "Ąźī ļšīäśėęčņå, łå ńļšą %s ńšåäąņą āč"
-
-#~ msgid ""
-#~ "\n"
-#~ "Warning:\n"
-#~ "Applying the changes while running may crash your X environnement."
-#~ msgstr ""
-#~ "\n"
-#~ "Āķčģąķčå:\n"
-#~ "Ļščėąćąéźč ķą ļšīģåķčå ļī āšåģå ķą šąįīņą ģīęå äą ńśńčļå X ńšåäąņą āč."
-
-#~ msgid "%s is already in use"
-#~ msgstr "Åņčźåņśņ %s ńå čēļīėēāą āå÷å"
-
-#~ msgid "(may cause data corruption)"
-#~ msgstr "(ģīęå äą ļšč÷čķč ēąćóįą ķą äąķķč)"
-
-#~ msgid "A command line must be entered!"
-#~ msgstr "Ņš˙įāą äą āśāåäåņå źīģąķäåķ šåä !"
-
-#~ msgid "ADSL configuration"
-#~ msgstr "Ķąńņšīéźą ķą ADSL"
-
-#~ msgid "Adapter"
-#~ msgstr "Ąäąļņåš"
-
-#~ msgid "Add location of packages"
-#~ msgstr "Äīįąāč ģ˙ńņī ķą ļąźåņčņå"
-
-#~ msgid "After formatting all partitions,"
-#~ msgstr "Ńėåä ōīšģąņčšąķå ķą āńč÷źč ä˙ėīāå,"
-
-#~ msgid "Alcatel modem"
-#~ msgstr "Ģīäåģ Alcatel"
-
-#~ msgid ""
-#~ "Are you sure you are an expert? \n"
-#~ "You will be allowed to make powerful but dangerous things here.\n"
-#~ "\n"
-#~ "You will be asked questions such as: ``Use shadow file for passwords?'',\n"
-#~ "are you ready to answer that kind of questions?"
-#~ msgstr ""
-#~ "Ńčćóšķč ėč ńņå, ÷å ńņå åźńļåšņ ?\n"
-#~ "Ņóź łå āč įśäąņ ļīēāīėåķč ģīłķč, ķī īļąńķč ķåłą.\n"
-#~ "Ąźī Āč įśäå ēąäąäåķ āśļšīń: ``Use shadow file for passwords?'',\n"
-#~ "łå ģīęåņå ėč äą ćī šąįåšåņå č īņćīāīščņå?"
-
-#~ msgid "Auto install floppy"
-#~ msgstr "Ąāņīģąņč÷ķī čķńņąėčšąķå īņ ōėīļč"
-
-#~ msgid "Automatic dependencies"
-#~ msgstr "Ąāņīģąņč÷ķč ēąāčńčģīńņč"
-
-#~ msgid "Available packages"
-#~ msgstr "Ķąėč÷ķč ļąźåņč"
-
-#~ msgid ""
-#~ "Be carefull, having numlock enabled causes a lot of keystrokes to\n"
-#~ "give digits instead of normal letters (eg: pressing `p' gives `6')"
-#~ msgstr ""
-#~ "Āķčģąķčå, ąźī å āźėž÷åķ numlock ģīęå äą äīāåäå äī čēāåęäąķåņī ķą\n"
-#~ "÷čńėą āģåńņī įóźāč (ķąļščģåš: ķąņčńźąéźč 'p' äąāą '6')"
-
-#~ msgid "Boot style configuration"
-#~ msgstr "Ķąńņšīéźą ķą ķą÷čķą ķą ńņąšņčšąķå"
-
-#~ msgid "CUPS starting"
-#~ msgstr "Ńņąšņčšąķå ķą CUPS"
-
-#~ msgid "Can't use supermount in high security level"
-#~ msgstr "Ķå ģīęå äą čēļīėēāąņå supermount ļšč āčńīźī ķčāī ķą ńčćóšķīńņ"
-
-#~ msgid "Category"
-#~ msgstr "Źąņåćīšč˙"
-
-#~ msgid ""
-#~ "Chat (IRC or instant messaging) programs such as xchat, licq, gaim, and "
-#~ "file transfer tools"
-#~ msgstr ""
-#~ "׹ņ (IRC čėč ģīģåķņķč ńśīįłåķč˙) ļšīćšąģč źąņī xchat, licq, gaim č "
-#~ "čķńņšóģåķņč ēą ņšąķńōåš ķą ōąéėīāå"
-
-#~ msgid "Checking dependencies"
-#~ msgstr "Ļšīāåš˙āąģ ēąāčńčģīńņčņå"
-
-#~ msgid "Choice"
-#~ msgstr "Čēįīš"
-
-#~ msgid "Choose"
-#~ msgstr "Čēįåšč"
-
-#~ msgid "Choose the layout corresponding to your keyboard from the list above"
-#~ msgstr "Čēįåšåņå åēčźśņ ķą źėąāčąņóšąņą āč īņ ńļčńśźą ļī-äīėó"
-
-#~ msgid "Collapse all"
-#~ msgstr "Čē÷čńņč āńč÷źī"
-
-#~ msgid "Color depth options"
-#~ msgstr "Īļöčč ēą äśėįī÷čķą ķą öāåņą"
-
-#~ msgid "Command line"
-#~ msgstr "Źīģąķäåķ šåä"
-
-#~ msgid "Communication facilities"
-#~ msgstr "Čķńņšóģåķņč ēą źīģóķčźąöč˙"
-
-#~ msgid "Config file content could not be interpreted."
-#~ msgstr "Ńśäśšęąķčåņī ķą ķąńņšīéāąłč˙ ōąéė ķå ģīęå äą įśäå šąēįšąķī."
-
-#~ msgid "Configuration de Lilo/Grub"
-#~ msgstr "Ķąńņšīéźą ķą Lilo/Grub"
-
-#~ msgid "Configure LILO/GRUB"
-#~ msgstr "Ķąńņšīéźą ķą LILO/GRUB"
-
-#~ msgid "Configure local network"
-#~ msgstr "Ķąńņīéźą ķą ėīźąėķąņą ģšåęą"
-
-#~ msgid "Configure the Internet connection / Configure local Network"
-#~ msgstr "Ķąńņšīéźą ķą Čķņåšķåņ āšśēźąņą / Ķąńņšīéźą ķą ėīźąėķąņą ģšåęą"
-
-#~ msgid "Configure timezone"
-#~ msgstr "Ķąńņšīéźą ķą ÷ąńīāą ēīķą"
-
-#~ msgid "Configure..."
-#~ msgstr "Ķąńņšīé ..."
-
-#~ msgid "Confirm Password"
-#~ msgstr "Ļīņāśšęäåķčå ķą ļąšīėąņą"
-
-#~ msgid "Connecting to Internet "
-#~ msgstr "Ńāśšēāąķå źśģ Čķņåšķåņ "
-
-#~ msgid "Connection Time: "
-#~ msgstr "Āšåģå ķą āšśēźąņą: "
-
-#~ msgid "Connection complete."
-#~ msgstr "Ńāšśēāąķåņī čēāśšųåķī."
-
-#~ msgid ""
-#~ "Connection failed.\n"
-#~ "Verify your configuration in the Mandrake Control Center."
-#~ msgstr ""
-#~ "Ńāśšēāąķåņī ķå óńļ˙.\n"
-#~ "Ļšīāåšåņå ķąńņšīéźąņą ā Mandrake Control Center."
-
-#~ msgid "Connection timeout (in sec) [ beta, not yet implemented ]"
-#~ msgstr "Timeout ķą āšśēźąņą (ā ńåź) [ įåņą, ķå å āźąšąķī ]"
-
-#~ msgid "Could not set \"%s\" as the default printer!"
-#~ msgstr "Ķå ģīęąõ äą īļšåäåė˙ \"%s\" ēą ļīėēāąķå ļī ļīäšąēįčšąķå !"
-
-#~ msgid "Create a boot floppy"
-#~ msgstr "Ńśēäąāąķå ķą boot-äčńźåņą"
-
-#~ msgid ""
-#~ "Creating a boot disk is strongly recommended. If you can't\n"
-#~ "boot your computer, it's the only way to rescue your system without\n"
-#~ "reinstalling it."
-#~ msgstr ""
-#~ "Ńśēäąāąķåņī ķą boot äčńźåņą å ńčėķī ļšåļīšś÷čņåėķī. Ąźī ķå\n"
-#~ "ģīęåņå äą ńņąšņčšąņå źīģļžņśšą ńč, ņīāą å åäčķńņāåķč˙ ķą÷čķ äą\n"
-#~ "ńļąńčņå ńčńņåģąņą įåē ļšåčķńņąėąöč˙."
-
-#~ msgid "Customized"
-#~ msgstr "Ńļåöčąėčēčšąķą"
-
-#~ msgid "Czech (Programmers)"
-#~ msgstr "×åųźą (Ļšīćšąģčńņč)"
-
-#~ msgid "DNS/DHCP "
-#~ msgstr "Ńśšāśš, DNS/DHCP "
-
-#~ msgid "DSL (or ADSL) connection"
-#~ msgstr "DSL (čėč ADSL) āšśēźą"
-
-#~ msgid "Databases clients and servers (mysql and postgresql)"
-#~ msgstr "Źėčåķņč č ńśšāśš ķą įąēč äąķķč (MySQL č PostgreSQL)"
-
-#~ msgid "Default Runlevel"
-#~ msgstr "Runlevel ļī ļīäšąēįčšąķå"
-
-#~ msgid "Development C/C++"
-#~ msgstr "Šąēšąįīņźą ķą C/C++"
-
-#~ msgid "Development, Database"
-#~ msgstr "Šąēšąįīņźą, Įąēč-äąķķč"
-
-#~ msgid "Development, Integrated Environment"
-#~ msgstr "Šąēšąįīņźą, Čķņåćščšąķą ńšåäą"
-
-#~ msgid "Development, Standard tools"
-#~ msgstr "Šąēšąįīņźą, Ńņąķäąšņķč čķńņšóģåķņč"
-
-#~ msgid "Directory"
-#~ msgstr "Äčšåźņīšč˙"
-
-#~ msgid "Disable"
-#~ msgstr "Čēźėž÷č"
-
-#~ msgid "Disable Internet Connection"
-#~ msgstr "Čēźėž÷āąķå ķą Čķņåšķåņ āšśēźą"
-
-#~ msgid "Disable network"
-#~ msgstr "Čēźėž÷āąķå ķą ģšåęąņą"
-
-#~ msgid "Disconnecting from Internet "
-#~ msgstr "Īņāśšēāąķå īņ Čķņåšķåņ "
-
-#~ msgid "Disconnection from Internet complete."
-#~ msgstr "Īņāśšēāąķåņī īņ Čķņåšķåņ čēāśšųåķī."
-
-#~ msgid "Disconnection from Internet failed."
-#~ msgstr "Īņāśšēāąķåņī īņ Čķņåšķåņ ķå óńļ˙."
-
-#~ msgid ""
-#~ "Do you want to generate an auto install floppy for linux replication?"
-#~ msgstr ""
-#~ "Čńźąņå ėč äą ńśēäąģ ąāņīģąņč÷ķī čķńņąėčšąłą äčńźåņą ēą Linux šåļėčźąöč˙?"
-
-#~ msgid "ECI modem"
-#~ msgstr "Ģīäåģ ECI"
-
-#~ msgid "Eject page after job?"
-#~ msgstr "Čēźąšāąķå ńņšąķčöąņą ńėåä ļå÷ąņ ?"
-
-#~ msgid "Enable"
-#~ msgstr "Āźėž÷č"
-
-#~ msgid "Enable network"
-#~ msgstr "Āźėž÷āąķå ķą ģšåęąņą"
-
-#~ msgid "Enable num lock at startup"
-#~ msgstr "Ēąäåéńņāąķå Num Lock-ą ļšč ēąšåęäąķå"
-
-#~ msgid ""
-#~ "Every print queue (which print jobs are directed to) needs a\n"
-#~ "name (often lp) and a spool directory associated with it. What\n"
-#~ "name and directory should be used for this queue and how is the printer "
-#~ "connected?"
-#~ msgstr ""
-#~ "Āń˙źą īļąųźą ēą ļå÷ąņ (źśäåņī ńå ķąńī÷āąņ šąįīņčņå ēą ļå÷ąņ) ńå ķóęäąå\n"
-#~ "īņ čģå (īįčźķīāåķī lp) č spool-äčšåźņīšč˙ ńāśšēāąķą ń ķå˙. Źīå\n"
-#~ "čģå ķą äčšåźņīšč˙ äą įśäå čēļīėēāąķī ēą ņąēč īļąųźą č źąź ńå ńāśšēąķ "
-#~ "ļščķņåšą ?"
-
-#~ msgid ""
-#~ "Every printer need a name (for example lp).\n"
-#~ "Other parameters such as the description of the printer or its location\n"
-#~ "can be defined. What name should be used for this printer and\n"
-#~ "how is the printer connected?"
-#~ msgstr ""
-#~ "Āńåźč ļščķņåš ńå ķóęäąå īņ čģå (ķąļščģåš, \"lp\").\n"
-#~ "Äšóćč ļąšąģåņšč źąņī īļčńąķčå ķą ļščķņåšą čėč ģåńņīļīėīęåķčåņī ģó ģīćąņ "
-#~ "äą\n"
-#~ "įśäąņ īļšåäåėåķč. Źąźāī čģå äą įśäå čēļīėēāąķī ēą ņīēč ļščķņåš č\n"
-#~ "źąź å ńāśšēąķ ņīé ?"
-
-#~ msgid "Expand all"
-#~ msgstr "Šąēųčšč āńč÷źī"
-
-#~ msgid "Extra GhostScript options"
-#~ msgstr "Äīļśėķčņåėķč GhostScript īļöčč"
-
-#~ msgid "Extra Text options"
-#~ msgstr "Äīļśėķčņåėķč īļöčč ēą ņåźńņ"
-
-#~ msgid "File/Print/Samba"
-#~ msgstr "Ńśšāśš, Ōąéėīā/Ļščķņåšåķ/Samba"
-
-#~ msgid "Find Package"
-#~ msgstr "Ķąģåšč ļąźåņ"
-
-#~ msgid "Find Package containing file"
-#~ msgstr "Ķąģåšč ļąźåņ ńśäśšęął ōąéė"
-
-#~ msgid "Finding leaves"
-#~ msgstr "Ķąģčšąķå ķą ėčńņąņą"
-
-#~ msgid "Finding leaves takes some time"
-#~ msgstr "Ķąģčšąķåņī ķą ėčńņą īņķåģą ģąėźī āšåģå"
-
-#~ msgid "First DNS Server"
-#~ msgstr "Ļśšāč DNS ńśšāśš"
-
-#~ msgid "Fix stair-stepping text?"
-#~ msgstr "Ļīļšąāźą ķą stair-stepping ņåźńņ ?"
-
-#~ msgid ""
-#~ "For FTP and HTTP, you need to give the location for hdlist\n"
-#~ "It must be relative to the URL above"
-#~ msgstr ""
-#~ "Ēą FTP č HTTP, łå ņš˙įāą äą äąäåņå ģ˙ńņī ēą hdlist\n"
-#~ "Ņī ņš˙įāą äą ļščėč÷ą ķą URL-ņī īņćīšå"
-
-#~ msgid "Format all"
-#~ msgstr "Ōīšģąņčšąé āńč÷źī"
-
-#~ msgid ""
-#~ "GNU/Linux can deal with many types of printer. Each of these types "
-#~ "requires\n"
-#~ "a different setup.\n"
-#~ "\n"
-#~ "\n"
-#~ "If your printer is physically connected to your computer, select \"Local\n"
-#~ "printer\".\n"
-#~ "\n"
-#~ "\n"
-#~ "If you want to access a printer located on a remote Unix machine, select\n"
-#~ "\"Remote printer\".\n"
-#~ "\n"
-#~ "\n"
-#~ "If you want to access a printer located on a remote Microsoft Windows "
-#~ "machine\n"
-#~ "(or on Unix machine using SMB protocol), select \"SMB/Windows 95/98/NT\"."
-#~ msgstr ""
-#~ "GNU/Linux ģīęå äą ļīääśšęą ķ˙źīėźī ņčļą ļščķņåšč. Āńåźč īņ ņåēč ņčļīāå\n"
-#~ "čēčńźāą šąēėč÷ķą óńņąķīāźą.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ąźī ļščķņåšśņ å ōčēč÷åńźč ńāśšēąķ źśģ źīģļžņśšą āč, čēįåšåņå \"Ėīźąėåķ\n"
-#~ "ļščķņåš\".\n"
-#~ "\n"
-#~ "\n"
-#~ "Ąźī čńźąņå äīńņśļ äī ļščķņåš ķąģčšął ńå ķą īņäąėå÷åķą Unix ģąųčķą, "
-#~ "čēįåšåņå\n"
-#~ "\"Īņäąėå÷åķ ļščķņåš\".\n"
-#~ "\n"
-#~ "\n"
-#~ "Ąźī čńźąņå äīńņśļ äī ļščķņåš ķąģčšął ńå ķą īņäąėå÷åķą Microsoft Windows "
-#~ "ģąųčķą\n"
-#~ "(čėč ķą Unix ģąųčķą čēļīėēāąłą SMB ļšīņīźīė), čēįåšåņå \"SMB/Windows "
-#~ "95/98/NT\"."
-
-#~ msgid "Give a name (eg: `extra', `commercial')"
-#~ msgstr "Äąéņå čģå (ķąļš.: `extra', `commercial')"
-
-#~ msgid "Gnome"
-#~ msgstr "Gnome"
-
-#~ msgid "Going to remove entry %s"
-#~ msgstr "Ļšåģąõāąķå ķą ēąļčńą %s"
-
-#~ msgid "Graphics Manipulation"
-#~ msgstr "Īįšąįīņźą ķą ćšąōčźą"
-
-#~ msgid "How do you want to connect to the Internet?"
-#~ msgstr "Źąź čńźąņå äą ńå ńāśšęåņå źśģ Čķņåšķåņ ?"
-
-#~ msgid "I have found an ISDN Card:\n"
-#~ msgstr "Ķąģåšåõ ISDN źąšņą:\n"
-
-#~ msgid ""
-#~ "If something is wrong in X configuration, use these options to correctly\n"
-#~ "configure the X Window System."
-#~ msgstr ""
-#~ "Ąźī ķåłī ķå å ķąšåä ń ķąńņšīéźąņą ķą X, čēļīėēāąéņå ņåēč īļöčč ēą\n"
-#~ "ļšąāčėķą ķąńņšīéźą ķą X Window ńčńņåģąņą."
-
-#~ msgid ""
-#~ "If you are not sure if informations above are\n"
-#~ "correct or if you don't know or are not sure what to enter, the correct\n"
-#~ "informations can be obtained from your Internet Service Provider. If you "
-#~ "do not\n"
-#~ "enter the DNS (name server) information here, this information will be "
-#~ "obtained\n"
-#~ "from your Internet Service Provider at connection time."
-#~ msgstr ""
-#~ "Ąźī ķå ńņå ńčćóšķč äąėč čķōīšģąöč˙ņą ļī-ćīšå å ā˙šķą\n"
-#~ "čėč ąźī ķå ēķąåņå čėč ķå ńņå ńčćóšķč źąźāī äą āśāåäåņå, ā˙šķą čķōīšģąöč˙\n"
-#~ "ģīęå äą įśäå āēåņą īņ Čķņåšķåņ äīńņąā÷čźą āč. Ąźī ķå āśāåäåņå čķōīšģąöč˙ "
-#~ "ēą\n"
-#~ "DNS (name server), ņ˙ łå įśäå āēåņą īņ Čķņåšķåņ äīńņąā÷čźą āč ļī āšåģå "
-#~ "ķą\n"
-#~ "ńāśšēāąķå."
-
-#~ msgid ""
-#~ "If you have all the CDs in the list above, click Ok. If you have\n"
-#~ "none of those CDs, click Cancel. If only some CDs are missing, unselect "
-#~ "them,\n"
-#~ "then click Ok."
-#~ msgstr ""
-#~ "Ąźī čģąņå āńč÷źč CD-ņą īņ ńļčńśźą ļī-ćīšå, ķąņčńķåņå Ok. Ąźī ķ˙ģąņå\n"
-#~ "ķčņī åäķī īņ ņåēč CD-ņą, ķąņčńķåņå Īņģ˙ķą. Ąźī āč ėčļńāąņ ķ˙źīč CD-ņą, "
-#~ "čēźėž÷åņå ćč,\n"
-#~ "č ķąņčńķåņå Ok."
-
-#~ msgid ""
-#~ "If you prefer to use a graphical login, select \"Yes\". Otherwise, "
-#~ "select\n"
-#~ "\"No\"."
-#~ msgstr ""
-#~ "Ąźī ļšåäļī÷čņąņå äą čēļīėēāąņå ćšąōč÷ķī āėčēąķå, čēįåšåņå \"Äą\". Ā\n"
-#~ "ļšīņčāåķ ńėó÷ąé, čēįåšåņå \"Ķå\"."
-
-#~ msgid ""
-#~ "If you will use proxies, please configure them now. If you don't know if\n"
-#~ "you should use proxies, ask your network administrator or your ISP."
-#~ msgstr ""
-#~ "Ąźī łå čēļīėēāąņå proxy ńśšāśšč, ģīė˙, ķąńņšīéņå ćč ńåćą. Ąźī ķåēķąåņå,\n"
-#~ "ļīļčņąéņå ģšåęīāč˙ ąäģčķčńņšąņīš čėč Čķņåšķåņ äīńņąā÷čźą ńč."
-
-#~ msgid ""
-#~ "If you wish other languages (than the one you choose at\n"
-#~ "beginning of installation) will be available after installation, please "
-#~ "chose\n"
-#~ "them in list above. If you want select all, you just need to select \"All"
-#~ "\"."
-#~ msgstr ""
-#~ "Ąźī čńźąņå äšóćč åēčöč (īńāåķ ņīēč, źīéņī čēįšąõņå ļšåäč\n"
-#~ "ķą÷ąėīņī ķą čķńņąėąöč˙ņą), źīčņī äą įśäąņ äīńņśļķč ńėåä čķńņąėąöč˙ņą, "
-#~ "ģīė˙, čēįåšåņå\n"
-#~ "ćč īņ ńļčńśźą ļī-ćīšå. Ąźī čńźąņå äą ćč čēįåšåņå āńč÷źč, ļšīńņī čēįåšåņå "
-#~ "\"Āńč÷źč\"."
-
-#~ msgid ""
-#~ "If you wish to be able to print, please choose one printing system "
-#~ "between\n"
-#~ "CUPS and LPR.\n"
-#~ "\n"
-#~ "\n"
-#~ "CUPS is a new, powerful and flexible printing system for Unix systems "
-#~ "(CUPS\n"
-#~ "means \"Common Unix Printing System\"). It is the default printing system "
-#~ "in\n"
-#~ "Mandrake Linux.\n"
-#~ "\n"
-#~ "\n"
-#~ "LPR is the old printing system used in previous Mandrake Linux "
-#~ "distributions.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you don't have printer, click on \"None\"."
-#~ msgstr ""
-#~ "Ąźī čńźąņå äą ģīęåņå äą ļå÷ąņąņå, ģīė˙, čēįåšåņå ńčńņåģą ēą ļå÷ąņ "
-#~ "čēģåęäó\n"
-#~ "CUPS č LPR.\n"
-#~ "\n"
-#~ "\n"
-#~ "CUPS å ķīāą, ģīłķą č ćśāźąāą ńčńņåģą ēą ļå÷ąņ ēą Unix ńčńņåģč (CUPS\n"
-#~ "ļšīčēėčēą īņ \"Īįłą Unix Ļą÷ąņķą Ńčńņåģą\"). Ņīāą å ńčńņåģąņą ēą ļå÷ąņ ļī "
-#~ "ļīäšąēįčšąķå ā\n"
-#~ "Mandrake Linux.\n"
-#~ "\n"
-#~ "\n"
-#~ "LPR å ńņąšąņą ńčńņåģą ēą ļå÷ąņ, čēļīėēāąķą ļšåäčųķčņå Mandrake Linux "
-#~ "äčńņščįóöčč.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ąźī ķ˙ģąņå ļščķņåš, öśźķåņå \"Ķčźąźśā\"."
-
-#~ msgid ""
-#~ "If you wish to connect your computer to the Internet or\n"
-#~ "to a local network please choose the correct option. Please turn on your "
-#~ "device\n"
-#~ "before choosing the correct option to let DrakX detect it automatically.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you do not have any connection to the Internet or a local network, "
-#~ "choose\n"
-#~ "\"Disable networking\".\n"
-#~ "\n"
-#~ "\n"
-#~ "If you wish to configure the network later after installation, or if you "
-#~ "have\n"
-#~ "finished to configure your network connection, choose \"Done\"."
-#~ msgstr ""
-#~ "Ąźī čńźąņå äą ńāśšęčņå źīģļžņśšą ńč źśģ Čķņåšķåņ čėč źśģ\n"
-#~ "ėīźąėķą ģšåęą, ģīė˙, čēįåšåņå ļīäõīä˙łąņą īļöč˙. Ģīė˙, āźėž÷åņå "
-#~ "óńņšīéńņāīņī\n"
-#~ "ļšåäč äą čēįåšåņå ļīäõīä˙łąņą īļöč˙, ēą äą ļīēāīėčņå ķą DrakX äą ćī "
-#~ "ēąńå÷å ąāņīģąņč÷ķī.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ąźī ķ˙ģąņå ķčźąźāą āšśēźą źśģ Čķņåšķåņ čėč źśģ ėīźąėķą ģšåęą, čēįåšåņå\n"
-#~ "\"Čēźėž÷āąķå ķą ģšåęąņą\".\n"
-#~ "\n"
-#~ "\n"
-#~ "Ąźī čńźąņå äą ķąńņšīčņå ģšåęąņą ļī-źśńķī, ńėåä čķńņąėąöč˙ņą, čėč ńņå "
-#~ "ļščźėž÷čėč ń ķąńņšīéźąņą ķą ģšåęąņą, čēįåšåņå \"Ćīņīāī\"."
-
-#~ msgid ""
-#~ "If your adsl modem is an Alcatel one, choose Alcatel. Otherwise, ECI."
-#~ msgstr ""
-#~ "Ąźī ADSL ģīäåģśņ āč å Alcatel, čēįåšåņå Alcatel. Čķą÷å, čēįåšåņå ECI."
-
-#~ msgid ""
-#~ "If your modem is an external modem, please turn on it now to let DrakX "
-#~ "detect it automatically."
-#~ msgstr ""
-#~ "Ąźī ģīäåģśņ āč å āśķųåķ, ģīęå, āźėž÷åņå ćī ńåćą, ēą äą ļīēāīėčņå ķą DrakX "
-#~ "äą ćī ēąńå÷å ąāņīģąņč÷ķī."
-
-#~ msgid ""
-#~ "If your network uses the LDAP (or NIS) protocol for authentication, "
-#~ "select\n"
-#~ "\"LDAP\" (or \"NIS\") as authentication. If you don't know, ask your "
-#~ "network\n"
-#~ "administrator.\n"
-#~ "\n"
-#~ "If your computer is not connected to any administrated network, you may "
-#~ "want to\n"
-#~ "choose \"Local files\" for authentication."
-#~ msgstr ""
-#~ "Ąźī ģšåęąņą āč čēļīėēāą LDAP (čėč NIS) ļīšīņźīė ēą ąóņīščēąöč˙, čēįåšåņå\n"
-#~ "\"LDAP\" (čėč \"NIS\") ēą ąóņīščēąöč˙. Ąźī ķå ēķąåņå, ļīļčņąéņå ģšåęīāč˙ "
-#~ "ńč\n"
-#~ "ąäģčķčńņšąņīš.\n"
-#~ "\n"
-#~ "Ąźī źīģļžņśšśņ āč ķå å ńāśšēąķ źśģ ąäģčķčńņščšąķą ģšåęą, ģīęå įč łå "
-#~ "čńźąņå\n"
-#~ "äą čēįåšåņå \"Ėīźąėķč ōąéėīāå\" ēą ąóņīščēąöč˙."
-
-#~ msgid ""
-#~ "If your network uses NIS, select \"Use NIS\". If you don't know, ask "
-#~ "your\n"
-#~ "network administrator."
-#~ msgstr ""
-#~ "Ąźī ģšåęąņą āč čēļīėēāą NIS, čēįåšåņå \"Čēļīėēāąé NIS\". Ąźī ķå ēķąåņå,\n"
-#~ "ļīļčņąéņå ģšåęīāč˙ ąäģčķčńņšąņīš."
-
-#~ msgid "In which country are you located ?"
-#~ msgstr "Ā źī˙ ńņšąķą ńå ķąģčšąņå ?"
-
-#~ msgid "Installed packages"
-#~ msgstr "Čķńņąėčšąķč ļąźåņč"
-
-#~ msgid "Internet Tools"
-#~ msgstr "Čķņåšķåņ Čķńņšóģåķņč"
-
-#~ msgid "Internet/Network access"
-#~ msgstr "Čķņåšķåņ/Ģšåęīā äīńņśļ"
-
-#~ msgid "KDE"
-#~ msgstr "KDE"
-
-#~ msgid "KDE, QT, Gnome, GTK+"
-#~ msgstr "KDE, QT, Gnome, GTK+"
-
-#~ msgid ""
-#~ "LILO and grub main options are:\n"
-#~ " - Boot device: Sets the name of the device (e.g. a hard disk\n"
-#~ "partition) that contains the boot sector. Unless you know specifically\n"
-#~ "otherwise, choose \"/dev/hda\".\n"
-#~ "\n"
-#~ "\n"
-#~ " - Delay before booting default image: Specifies the number in tenths\n"
-#~ "of a second the boot loader should wait before booting the first image.\n"
-#~ "This is useful on systems that immediately boot from the hard disk after\n"
-#~ "enabling the keyboard. The boot loader doesn't wait if \"delay\" is\n"
-#~ "omitted or is set to zero.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Video mode: This specifies the VGA text mode that should be selected\n"
-#~ "when booting. The following values are available: \n"
-#~ "\n"
-#~ " * normal: select normal 80x25 text mode.\n"
-#~ "\n"
-#~ " * <number>: use the corresponding text mode.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Clean \"/tmp\" at each boot: if you want delete all files and "
-#~ "directories\n"
-#~ "stored in \"/tmp\" when you boot your system, select this option.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Precise RAM if needed: unfortunately, there is no standard method to "
-#~ "ask the\n"
-#~ "BIOS about the amount of RAM present in your computer. As consequence, "
-#~ "Linux may\n"
-#~ "fail to detect your amount of RAM correctly. If this is the case, you "
-#~ "can\n"
-#~ "specify the correct amount or RAM here. Please note that a difference of "
-#~ "2 or 4\n"
-#~ "MB between detected memory and memory present in your system is normal."
-#~ msgstr ""
-#~ "Ćėąāķčņå īļöčč ķą LILO č GRUB ńą:\n"
-#~ " - Boot óńņšīéńņāī: Īļšåäåė˙ čģåņī ķą óńņšīéńņāīņī (ņ.å. ä˙ė īņ õąšä\n"
-#~ "äčńźą), źīéņī ńśäśšęą boot ńåźņīšą. Čēįåšåņå \"/dev/hda\", īńāåķ ąźī ķå\n"
-#~ "ńņå ńčćóšķč ā äšóćī.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Čē÷ąźāąķå ļšåäč ńņąšņčšąķå ķą ļīäšąēįčšąłč˙ ńå īįšąē: Īļšåäåė˙ "
-#~ "äåńåņčņå\n"
-#~ "īņ ńåźóķäąņą, źīčņī ēąšåęäąłą ļšīćšąģą äą čē÷ąźą ļšåäč ļóńźąķåņī ķą "
-#~ "ļśšāč˙\n"
-#~ "īįšąē. Ļīėåēķī å ēą ńčńņåģč, źīčņī ńņąšņčšąņ īņ äčńźą āåäķąćą ńėåä "
-#~ "āźėž÷āąķå\n"
-#~ "ķą źėąāčąņóšąņą. Ēąšåęäąłąņą ļšīćšąģą ķå ÷ąźą, ąźī \"delay\" å\n"
-#~ "ļšīļóńķąņ čėč å ķóėą.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Āčäåī šåęčģ: Ņīāą īļšåäåė˙ ņåźńņīāč˙ VGA šåęčģ, źīéņī äą įśäå čēįšąķ\n"
-#~ "ļšč ķą÷ąėķī ēąšåęäąķå. Āśēģīęķč ńą ńėåäķčņå ńņīéķīńņč:\n"
-#~ " * normal: čēįčšą īįčźķīāåķ 80x25 ņåźńņīā šåęčģ.\n"
-#~ "\n"
-#~ " * <number>: čēļīėēāą ńśīņāåņķč˙ ņåźńņīā šåęčģ.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Ļī÷čńņāąķå ķą \"/tmp\" ļšč ēąšåęäąķå: ąźī čńźąņå äą ńå čēņščāąņ "
-#~ "āńč÷źč\n"
-#~ "ōąéėīāå č äčšåźņīščč ńśõšąķ˙āąķč ā \"/tmp\", źīćąņī ēąšåęäąņå ńčńņåģąņą "
-#~ "ńč,\n"
-#~ "čēįåšåņå ņąēč īļöč˙.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Ņī÷ķī RAM, ąźī å ķóęķī: ēą ńśęąėåķčå, ķ˙ģą ńņąķäąšņåķ ģåņīä, äą ńå\n"
-#~ "ļīļčņą BIOS ēą īįåģą ķą RAM ā źīģļžņśšą. Źąņī ļīńėåäńņāčå, GNU/Linux "
-#~ "ģīęå\n"
-#~ "äą ķå óńļåå äą ēąńå÷å ļšąāčėķī īįåģą ķą RAM. Ąźī å ņąźśā ńėó÷ą˙, ņóź\n"
-#~ "ģīęåņå äą ēąäąäåņå ņī÷ķč˙ īįåģ ķą RAM. Ģīė˙, īņįåėåęåņå ÷å īņ 2 čėč 4 MB\n"
-#~ "ģåęäó ēąńå÷åķąņą č ļščńśńņāąłąņą RAM å ķīšģąėķą."
-
-#~ msgid ""
-#~ "Local networking has already been configured.\n"
-#~ "Do you want to:"
-#~ msgstr ""
-#~ "Ėīźąėķąņą ģšåęą āå÷å å ķąńņšīåķą.\n"
-#~ "Čńźąņå ėč äą:"
-
-#~ msgid "MD5"
-#~ msgstr "MD5"
-
-#~ msgid "Miscellaneous"
-#~ msgstr "Äīļśėķčņåėķč"
-
-#~ msgid "Miscellaneous questions"
-#~ msgstr "Äīļśėķčņåėķč āśļšīńč"
-
-#~ msgid "Modify printer"
-#~ msgstr "Ļīļšąāč ļščķņåš"
-
-#~ msgid "Name of queue"
-#~ msgstr "Čģå ķą īļąųźą"
-
-#~ msgid "Name of the profile to create:"
-#~ msgstr "Čģå ķą ńśēäąāąķč˙ ļšīōčė:"
-
-#~ msgid "NetWare"
-#~ msgstr "NetWare"
-
-#~ msgid "Network Monitoring"
-#~ msgstr "Ķąįėžäąāąķå ķą ģšåęąņą"
-
-#~ msgid "Network adaptater 1 (eth0):"
-#~ msgstr "Ģšåęīā ļščķņåš 1 (eth0):"
-
-#~ msgid "No cdrom available (nothing in /mnt/cdrom)"
-#~ msgstr "Ķ˙ģą CDROM (ķ˙ģą ķčłī ā /mnt/cdrom)"
-
-#~ msgid "No match"
-#~ msgstr "Ķ˙ģą ńśāļąäåķč˙"
-
-#~ msgid ""
-#~ "No modem has been detected. Please select the serial port on which it is "
-#~ "plugged.\n"
-#~ "\n"
-#~ "\n"
-#~ "For information, the first serial port (called \"COM1\" under Microsoft\n"
-#~ "Windows) is called \"ttyS0\" under Linux."
-#~ msgstr ""
-#~ "Ķå įåųå īņźščņ ģīäåģ. Ģīė˙, ļīńī÷åņå ńåščéķč˙ ļīšņ, źśģ źīéņī å ńāśšēąķ.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ēą čķōīšģąöč˙, ļśšāč˙ņ ńåščåķ ļīšņ (ķąšč÷ąķ \"COM1\" ļīä Microsoft\n"
-#~ "Windows) ńå ķąšč÷ą \"ttyS0\" ļīä Linux."
-
-#~ msgid "No more match"
-#~ msgstr "Ķ˙ģą ļīāå÷å ńśāļąäåķč˙"
-
-#~ msgid ""
-#~ "Now it's time to configure the X Window System, which is the\n"
-#~ "core of the GNU/Linux GUI (Graphical User Interface). For this purpose,\n"
-#~ "you must configure your video card and monitor. Most of these\n"
-#~ "steps are automated, though, therefore your work may only consist\n"
-#~ "of verifying what has been done and accept the settings :)\n"
-#~ "\n"
-#~ "\n"
-#~ "When the configuration is over, X will be started (unless you\n"
-#~ "ask DrakX not to) so that you can check and see if the\n"
-#~ "settings suit you. If they don't, you can come back and\n"
-#~ "change them, as many times as necessary."
-#~ msgstr ""
-#~ "Ńåćą å āšåģå äą ķąńņšīčņå X Window System, źī˙ņī å ˙äšīņī ķą \n"
-#~ "GNU/Linux GUI (Ćšąōč÷åķ Ļīšåįčņåėńźč Čķņåšōåéń). Ēą ņąēč öåė ņš˙įāą äą\n"
-#~ "ķąńņšīčņå āčäåīźąšņąņą č ģīķčņīšą ńč. Ļī-ćīė˙ģąņą ÷ąńņ īņ ńņśļźčņå ńą\n"
-#~ "ąāņīģąņčēčšąķč, ņąźą ÷å šąįīņąņą āč ģīęå įč łå ńå ńśńņīč ńąģī īņ "
-#~ "ļšīāåšźą\n"
-#~ "źąźāī å ķąļšąāåķī č ļščåģąķåņī ķą ķąńņšīéźčņå :)\n"
-#~ "\n"
-#~ "\n"
-#~ "Źīćąņī ķąńņšīéźąņą ēąāśšųč, X łå įśäå ńņąšņčšąķ (īńāåķ ąźī ķå óźąęåņå ķą\n"
-#~ "DrakX äą ķå ćī ļšąāč), ēą äą ļšīāåščņå äąėč ķąńņšīéźčņå āč óńņšīéāąņ. "
-#~ "Ąźī\n"
-#~ "ķå āč óńņšīéāąņ, ģīęåņå äą ńå āšśłąņå č äą ćč ļšīģåķ˙ņå, źīėźīņī ļśņč āč\n"
-#~ "å ķåīįõīäčģī."
-
-#~ msgid ""
-#~ "Now that your Internet connection is configured,\n"
-#~ "your computer can be configured to share its Internet connection.\n"
-#~ "Note: you need a dedicated Network Adapter to set up a Local Area Network "
-#~ "(LAN).\n"
-#~ "\n"
-#~ "Would you like to setup the Internet Connection Sharing?\n"
-#~ msgstr ""
-#~ "Ńåćą, ńėåä źąņī Čķņåšķåņ āšśēźąņą āč å ķąńņšīåķą,\n"
-#~ "źīģļžņśšśņ āč ģīęå äą įśäå ķąńņšīåķ ķą ńļīäåė˙ Čķņåšķåņ āšśēźąņą ńč.\n"
-#~ "Īņįåėåęåņå: ēą ņīāą āč ņš˙įāą óńņąķīāåķ īņäåėåķ ģšåęīā ąäąļņåš, ēą äą "
-#~ "óńņąķīāčņå āśņšåųķąņą ńč ģšåęą (LAN).\n"
-
-#~ msgid "Number of pages per output pages"
-#~ msgstr "Įšīé ńņšąķčöč ēą čēõīäķč ńņšąķčöč"
-
-#~ msgid "Opening your connection..."
-#~ msgstr "Īņāąš˙ķå ķą āšśēźąņą āč ..."
-
-#~ msgid "Other countries"
-#~ msgstr "Äšóćč ńņšąķč"
-
-#~ msgid "Package"
-#~ msgstr "Ļąźåņą"
-
-#~ msgid "Paper Size"
-#~ msgstr "Šąēģåš ķą õąšņč˙ņą"
-
-#~ msgid ""
-#~ "Please choose your preferred language for installation and system usage."
-#~ msgstr "Čēįåšåņå ļšåäļī÷čņąķ åēčź ēą čķńņąėąöč˙ č ńčńņåģķī čēļīėēāąķå."
-
-#~ msgid ""
-#~ "Please select the right options according to your printer.\n"
-#~ "Please see its documentation if you don't know what choose here.\n"
-#~ "\n"
-#~ "\n"
-#~ "You will be able to test your configuration in next step and you will be "
-#~ "able to modify it if it doesn't work as you want."
-#~ msgstr ""
-#~ "Ģīė˙, čēįåšåņå ļīäõīä˙łč ēą ļščķņåšą āč ķąńņīéźč.\n"
-#~ "Ģīė˙, ļīćėåäķåņå äīźóģåķņąöč˙ņą, ąźī ķå ēķąåņå źąźāī äą čēįåšåņå ņóź.\n"
-#~ "\n"
-#~ "\n"
-#~ "Łå ģīęåņå äą čēļšīįāąņå ķąńņšīéźąņą ā ńėåäāąłąņą ńņśļźą č äą ˙ ńģåķčņå, "
-#~ "ąźī ķå šąįīņč źąźņī ņš˙įāą."
-
-#~ msgid "Please submit the following information"
-#~ msgstr "Ģīė˙, čēļšąņåņå ńėåäķąņą čķōīšģąöč˙"
-
-#~ msgid "Please turn on your modem and choose the correct one."
-#~ msgstr "Ģīė˙, āźėž÷åņå ģīäåģą ńč č čēįåšåņå ļīäõīä˙łč˙."
-
-#~ msgid ""
-#~ "Please turn on your printer before continuing to let DrakX detect it.\n"
-#~ "\n"
-#~ "You have to enter some informations here.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Name of printer: the print spooler uses \"lp\" as default printer "
-#~ "name. So, you must have a printer named \"lp\".\n"
-#~ " If you have only one printer, you can use several names for it. You "
-#~ "just need to separate them by a pipe\n"
-#~ " character (a \"|\"). So, if you prefer a more meaningful name, you "
-#~ "have to put it first, eg: \"My printer|lp\".\n"
-#~ " The printer having \"lp\" in its name(s) will be the default "
-#~ "printer.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Description: this is optional but can be useful if several printers "
-#~ "are connected to your computer or if you allow\n"
-#~ " other computers to access to this printer.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Location: if you want to put some information on your\n"
-#~ " printer location, put it here (you are free to write what\n"
-#~ " you want, for example \"2nd floor\").\n"
-#~ msgstr ""
-#~ "Ģīė˙, āźėž÷åņå ļščķņåšą ńč ļšåäč äą ļšīäśėęčņå, ēą äą ļīēāīėčņå ķą DrakX "
-#~ "äą\n"
-#~ "ćī ēąńå÷å.\n"
-#~ "\n"
-#~ "Ņš˙įāą äą āśāåäåņå ķ˙źąźāą čķōīšģąöč˙ ņóź.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Čģå ķą ļščķņåš: ļī ļīäšąēįčšąķå, ļå÷ąņķč˙ spooler čēļīėēāą \"lp\" "
-#~ "źąņī čģå ķą ļščķņåš. Ņąźą ÷å ņš˙įāą äą čģąņå\n"
-#~ "ļščķņåš ķąšå÷åķ \"lp\".\n"
-#~ " Ąźī čģąņå ńąģī åäčķ ļščķņåš, ģīęåņå äą čēļīėēāąņå ķ˙źīėźī čģåķą ēą "
-#~ "ķåćī. Ņš˙įāą ńąģī äą ćč īņäåėčņå ń pipe\n"
-#~ " ńčģāīėą (\"|\"). Ņąźą ÷å, ąźī ļšåäļī÷čņąņå ļī-ńģčńėåķī čģå, ģīęåņå "
-#~ "äą ćī ńėīęčņå ļśšāī, ķąļš. \"My printer|lp\".\n"
-#~ " Ļščķņåšśņ ńśäśšęął \"lp\" ā čģåņī(ąņą) ńč łå ńå ļīėēāą ļī "
-#~ "ļīäšąēįčšąķå.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Īļčńąķčå: Ņīāą å ķåēąäśėęčņåėķī, ķī ģīęå äą å ļīėåēķī, ąźī čģą "
-#~ "ķ˙źīėźī ļščķņåšą ńāśšēąķč źśģ źīģļžņśšą āč čėč ąźī\n"
-#~ " šąēšåųąāąņå äīńņśļ äī ķåćī ķą äšóćč źīģļžņšč.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Ģåńņīļīėīęåķčå: ąźī čńźąņå äą äąäåņå čķōīšģąöč˙ ēą ģåńņīļīėīęåķčåņī\n"
-#~ " ķą ļščķņåšą ńč, ķąļšąāåņå ćī ņóź (ģīęåņå äą ķąļčųåņå źąźāīņī ńč "
-#~ "čńźąņå,\n"
-#~ " ķąļščģåš \"2-šč åņąę\").\n"
-
-#~ msgid "Press next to continue."
-#~ msgstr "Ķąņčńķåņå Ńėåäāął, ēą äą ļšīäśėęčņå."
-
-#~ msgid "Print text as PostScript?"
-#~ msgstr "Ļå÷ąņąé ņåźńņą źąņī PostScript ?"
-
-#~ msgid "Profile "
-#~ msgstr "Ļšīōčė "
-
-#~ msgid "Provider dns 1"
-#~ msgstr "1-āč DNS ķą äīńņąā÷čźą"
-
-#~ msgid "Provider dns 2"
-#~ msgstr "2-šč DNS ķą äīńņąā÷čźą"
-
-#~ msgid "Python, Perl, libraries, tools"
-#~ msgstr "Python, Perl, įčįėčīņåźč, čķńņšóģåķņč"
-
-#~ msgid "Receiving Speed:"
-#~ msgstr "Ńźīšīńņ ķą ļščåģąķå: "
-
-#~ msgid "Reconfigure using wizard..."
-#~ msgstr "Ļšåķąńņšīé čēļīėēāąéźč ģąćüīńķčź ..."
-
-#~ msgid "Regexp"
-#~ msgstr "Regexp"
-
-#~ msgid "Reload"
-#~ msgstr "Ļšåēąšåęäąķå"
-
-#~ msgid "Remote queue"
-#~ msgstr "Īņäąėå÷åķī čģå ķą īļąųźą"
-
-#~ msgid "Remote queue name missing!"
-#~ msgstr "Ėčļńāą čģå ķą īļąųźąņą !"
-
-#~ msgid "Reverse page order"
-#~ msgstr "Īįśšķč šåäą ķą ńņšąķčöčņå"
-
-#~ msgid "Right/Left margins in points (1/72 of inch)"
-#~ msgstr "Äåńåķ/Ė˙ā śćśė ā ņī÷źč (1/72 ķą čķ÷)"
-
-#~ msgid ""
-#~ "SILO is a bootloader for SPARC: it is able to boot\n"
-#~ "either GNU/Linux or any other operating system present on your computer.\n"
-#~ "Normally, these other operating systems are correctly detected and\n"
-#~ "installed. If this is not the case, you can add an entry by hand in this\n"
-#~ "screen. Be careful as to choose the correct parameters.\n"
-#~ "\n"
-#~ "\n"
-#~ "You may also want not to give access to these other operating systems to\n"
-#~ "anyone, in which case you can delete the corresponding entries. But\n"
-#~ "in this case, you will need a boot disk in order to boot them!"
-#~ msgstr ""
-#~ "SILO å bootloader ēą SPARC: ņoé ģīęå äą ńņąšņčšą\n"
-#~ "GNU/Linux čėč źī˙ äą å äšóćą īļåšąöčīķķą ńčńņåģą, ńśłåńņāóāąłą ķą "
-#~ "źīģļžņśšą āč.\n"
-#~ "Īįčźķīāåķķī, ņåēč äšóćč īļåšąöčīķķč ńčńņåģą ńå ēąńč÷ąņ č čķńņąėčšąņ\n"
-#~ "ļšąāčėķī. Ąźī ņīāą ķå ńņąāą ļšč āąń, ģīęåņå äą äīįąā˙ņå ēąļčńč ķą šśźą ā\n"
-#~ "ņīēč åźšąķ. Ćėåäąéņå äą čēįåšåņå āåšķč ļąšąģåņšč.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ģīęå äą ķå čńźąņå äą äąāąņå äīńņśļ äī ņåēč īļåšąöčīķķč ńčńņåģč ķą ķčźīé,\n"
-#~ "ā źīéņī ńėó÷ąé ģīęåņå äą čēņščåņå ńśīņāåņķčņå ēąļčńč. Ķī ā ņąźśā ńėó÷ąé,\n"
-#~ "łå ńå ķóęäąåņå īņ boot-äčńźåņą, ēą äą ćč ńņąšņčšąņå !"
-
-#~ msgid ""
-#~ "SILO main options are:\n"
-#~ " - Bootloader installation: Indicate where you want to place the\n"
-#~ "information required to boot to GNU/Linux. Unless you know exactly\n"
-#~ "what you are doing, choose \"First sector of drive (MBR)\".\n"
-#~ "\n"
-#~ "\n"
-#~ " - Delay before booting default image: Specifies the number in tenths\n"
-#~ "of a second the boot loader should wait before booting the first image.\n"
-#~ "This is useful on systems that immediately boot from the hard disk after\n"
-#~ "enabling the keyboard. The boot loader doesn't wait if \"delay\" is\n"
-#~ "omitted or is set to zero."
-#~ msgstr ""
-#~ "Ćėąāķčņå īļöčč ķą SILO ńą:\n"
-#~ " - bootloader čķńņąėąöč˙: ļīźąēāą, źśäåņī čńźąņå äą ļīńņąāčņå "
-#~ "čķōīšģąöč˙ņą\n"
-#~ "ķåīįõīäčģą ēą ńņąšņčšąķåņī ķą GNU/Linux. Īńāåķ ąźī ķå ēķąåņå ņī÷ķī źąźāī\n"
-#~ "ļšąāčņå, čēįåšåņå \"Ļśšāč ńåźņīš ķą óńņšīéńņāīņī (MBR)\".\n"
-#~ "\n"
-#~ "\n"
-#~ " - Čē÷ąźāąķå ļšåäč ńņąšņčšąķå ķą ļīäšąēįčšąłč˙ ńå īįšąē: Īļšåäåė˙ "
-#~ "äåńåņčņå\n"
-#~ "īņ ńåźóķäąņą, źīčņī ēąšåęäąłą ļšīćšąģą äą čē÷ąźą ļšåäč ļóńźąķåņī ķą "
-#~ "ļśšāč˙\n"
-#~ "īįšąē. Ļīėåēķī å ēą ńčńņåģč, źīčņī ńņąšņčšąņ īņ äčńźą āåäķąćą ńėåä źąņī\n"
-#~ "ńå āźėž÷č źėąāčąņóšąņą. Ēąšåęäąłąņą ļšīćšąģą ķå ÷ąźą, ąźī \"delay\" å\n"
-#~ "ļšīļóńķąņ čėč å ķóėą."
-
-#~ msgid "Sciences"
-#~ msgstr "Ķąóźč"
-
-#~ msgid "Scientific applications"
-#~ msgstr "Ķąó÷ķč ļščėīęåķč˙"
-
-#~ msgid "Search"
-#~ msgstr "Ņśšńč"
-
-#~ msgid "Second DNS Server"
-#~ msgstr "Āņīšč DNS ńśšāśš"
-
-#~ msgid "Select Remote Printer Connection"
-#~ msgstr "Čēįåšåņå āšśēźą źśģ īņäąėå÷åķč˙ ļščķņåš"
-
-#~ msgid "Select the size you want to install"
-#~ msgstr "Čēįåšåņå šąēģåšą, źīéņī čńźąņå äą čķńņąėčšąģ"
-
-#~ msgid ""
-#~ "Select:\n"
-#~ "\n"
-#~ " - Customized: If you are familiar enough with GNU/Linux, you may then "
-#~ "choose\n"
-#~ " the primary usage for your machine. See below for details.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Expert: This supposes that you are fluent with GNU/Linux and want to\n"
-#~ " perform a highly customized installation. As for a \"Customized\"\n"
-#~ " installation class, you will be able to select the usage for your "
-#~ "system.\n"
-#~ " But please, please, DO NOT CHOOSE THIS UNLESS YOU KNOW WHAT YOU ARE "
-#~ "DOING!"
-#~ msgstr ""
-#~ "Čēįåšåņå:\n"
-#~ "\n"
-#~ " - Ńļåöčąėčēčšąķą: Ąźī ńņå äīńņąņś÷ķī ēąļīēķąņ ń GNU/Linux, łå ģīęåņå äą "
-#~ "čēįåšåņå\n"
-#~ " ćėąāķīņī ļšåäķąēķą÷åķčå ķą ģąųčķąņą ńč. Āčęņå ļī-äīėó ēą "
-#~ "ļīäšīįķīńņč.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Åźńļåšņķą: Ņīāą ļšåäļīėąćą, ÷å ńņå ķą \"ņč\" ń GNU/Linux č čńźąņå äą\n"
-#~ " ķąļšąāčņå āčńīźī ńļåöčąėčēčšąķą čķńņąėąöč˙. Źąźņī č ā "
-#~ "\"Ńļåöčąėčēčšąķč˙\"\n"
-#~ " čķńņąėąöčīķåķ źėąń, łå ģīęåņå äą čēįåšåņå óļīņšåįąņą ķą ńčńņåģąņą "
-#~ "ńč.\n"
-#~ " Ķī ģīė˙, ģīė˙, ĶÅ ČĒĮČŠĄÉŅÅ ŅĪĀĄ, ĪŃĀÅĶ ĄŹĪ ĶÅ ĒĶĄÅŅÅ ŹĄŹĀĪ ĻŠĄĀČŅÅ!"
-
-#~ msgid "Selected size %d%s"
-#~ msgstr "Čēįåšåņå ćīėåģčķą %d%s"
-
-#~ msgid "Sending Speed:"
-#~ msgstr "Ńźīšīńņ ķą čēļšąłąķå: "
-
-#~ msgid "Show only leaves"
-#~ msgstr "Ļīźąęč ńąģī ėčńņąņą"
-
-#~ msgid "Slovakian (Programmers)"
-#~ msgstr "Ńėīāąųźą (Ļšīćšąģčńņč)"
-
-#~ msgid "Sorry, the mail configuration is not yet implemented. Be patient."
-#~ msgstr ""
-#~ "Ńśęåė˙āąģ, ķąńņšīéźąņą ķą ļīłąņą īłå ķå å āśāåäåķą. Įśäåņå ņśšļåėčāč."
-
-#~ msgid "Sort by"
-#~ msgstr "Ńīšņčšąé ļī"
-
-#~ msgid "Spool directory"
-#~ msgstr "Spool-äčšåźņīšč˙"
-
-#~ msgid "Spooler: "
-#~ msgstr "Spooler: "
-
-#~ msgid "Statistics"
-#~ msgstr "Ńņąņčńņčźč"
-
-#~ msgid "Test the mouse here."
-#~ msgstr "Čēļšīįāąéņå ģčųźąņą ńč ņóź."
-
-#~ msgid ""
-#~ "The Mandrake Linux spreads among several CDROMs. It may be that drakX "
-#~ "has\n"
-#~ "selected packages on another CDROM than the installation CDROM, and when "
-#~ "it\n"
-#~ "needs that you put another one into the drive, it will eject the current "
-#~ "CDROM\n"
-#~ "and ask you for another one."
-#~ msgstr ""
-#~ "Mandrake Linux å šąēļīėīęåķ ķą ķ˙źīėźī CDROM-ą. Ģīęå äą ńå īźąęå, ÷å "
-#~ "DrakX\n"
-#~ "å čēįšąė ļąźåņč ķą CDROM, šąēėč÷åķ īņ čķńņąėąöčīķķč˙ CDROM, č, źīćąņī ģó\n"
-#~ "ļīņš˙įāą äą ćī ńėīęčņå ā óńņšīéńņāīņī, ņīé łå čēźąšą ņåźółč˙ CDROM č łå "
-#~ "āč\n"
-#~ "ļīčńźą äšóć."
-
-#~ msgid "The following packages are going to be uninstalled"
-#~ msgstr "Ńėåäķčņå ļąźåņč łå įśäąņ äåčķńņąėčšąķč"
-
-#~ msgid "This startup script try to load your modules for your usb mouse."
-#~ msgstr "Ņīēč ńņąšņīā ńźščļņ ńå īļčņāą äą ēąšåäč ģīäóėč usb ģčųźąņą āč."
-
-#~ msgid ""
-#~ "To enable a more secure system, you should select \"Use shadow file\" "
-#~ "and\n"
-#~ "\"Use MD5 passwords\"."
-#~ msgstr ""
-#~ "Ēą ļī-ńčćóšķą ńčńņåģą, ņš˙įāą äą čēįåšåņå \"Čēļīėēāąé shadow ōąéė\"\n"
-#~ "č \"Čēļīėēāąé MD5 ļąšīėč\"."
-
-#~ msgid "Toggle between Installed and Available"
-#~ msgstr "Ļšåāźėž÷āąķå ģåęäó Čķńņąėčšąķ č Ķąėč÷åķ"
-
-#~ msgid "Top/Bottom margins in points (1/72 of inch)"
-#~ msgstr "Ćīšåķ/Äīėåķ śćśė ā ņī÷źč (1/72 ķą čķ÷)"
-
-#~ msgid "Tree"
-#~ msgstr "Äśšāī"
-
-#~ msgid "Try to find a modem?"
-#~ msgstr "Äą ńå īļčņąģ ėč äą īņźšč˙ ģīäåģ ?"
-
-#~ msgid "URL of the directory containing the RPMs"
-#~ msgstr "URL ķą äčšåźņīšč˙ņą ńśäśšęąłą RPM"
-
-#~ msgid "Uniprint driver options"
-#~ msgstr "Īļöčč ēą Uniprint äšąéāåš"
-
-#~ msgid "Unrecognized config file"
-#~ msgstr "Ķåšąēļīēķąņ ķąńņšīéāął ōąéė"
-
-#~ msgid "Update location"
-#~ msgstr "Īįķīāč ģ˙ńņīņī"
-
-#~ msgid "Updating the RPMs base"
-#~ msgstr "Īįķīā˙āąķå ķą RPM įąēąņą"
-
-#~ msgid "Use MD5 passwords"
-#~ msgstr "Čēļīėēāąé MD5 ļąšīėč"
-
-#~ msgid "Use diskdrake"
-#~ msgstr "Čēļīėēāąé diskdrake"
-
-#~ msgid "Use shadow file"
-#~ msgstr "Čēļīėēāąé shadow ōąéė"
-
-#~ msgid ""
-#~ "Welcome to The Network Configuration Wizard.\n"
-#~ "Which components do you want to configure?\n"
-#~ msgstr ""
-#~ "Äīįšå äīųėč ā Ģąćüīńķčźą ēą ģšåęīāą ķąńņšīéźą.\n"
-#~ "Źīč źīģļīķåķņč čńźąņå äą ķąńņšīčņå ?\n"
-
-#~ msgid "What are looking for?"
-#~ msgstr "Źąźāī ņśšń˙ņ?"
-
-#~ msgid "What is your system used for?"
-#~ msgstr "Ēą źąźāī ńå óļīņšåį˙āą ńčńņåģąņą āč ?"
-
-#~ msgid "Which bootloader(s) do you want to use?"
-#~ msgstr "Źąźāą ļšīćšąģą ēą ķą÷ąėķī ēąšåęäąķå čńźąņå äą čēļīėēāąņå?"
-
-#~ msgid "Which file are you looking for?"
-#~ msgstr "Źīé ōąéė ņśšńčņå?"
-
-#~ msgid "Which package are looking for"
-#~ msgstr "Źīé ļąźåņ ņśšń˙ņ"
-
-#~ msgid "Which serial port is your mouse connected to?"
-#~ msgstr "Źśģ źīé ńåščåķ ļīšņ å ńāśšēąķą ģčųźąņą āč ?"
-
-#~ msgid ""
-#~ "With a remote CUPS server, you do not have to configure\n"
-#~ "any printer here; printers will be automatically detected\n"
-#~ "unless you have a server on a different network; in the\n"
-#~ "latter case, you have to give the CUPS server IP address\n"
-#~ "and optionally the port number."
-#~ msgstr ""
-#~ "Ń īņäąėå÷åķ CUPS ńśšāśš, ķå āč ńå ķąėąćą äą ķąńņšīéāąņå źąźśāņī\n"
-#~ "č äą įčėī ļščķņåš ņóź; ļščķņåščņå ńąģč łå įśäąņ ēąńå÷åķč,\n"
-#~ "īńāåķ ąźī ķ˙ģąņå ńśšāśš ķą äšóćą ģšåęą; ā ļīńėåäķč˙ ńėó÷ąé,\n"
-#~ "łå ņš˙įāą äą ļšåäīńņąāčņå IP ąäšåń č åāåķņóąėķī ļīšņ ķą\n"
-#~ "CUPS ńśšāśšą."
-
-#~ msgid "Write /etc/fstab"
-#~ msgstr "Ēąļčųč /etc/fstab"
-
-#~ msgid "Yes, print ASCII test page"
-#~ msgstr "Äą, īņļå÷ąņąé ASCII ņåńņīāą ńņšąķčöą"
-
-#~ msgid "Yes, print PostScript test page"
-#~ msgstr "Äą, īņļå÷ąņąé PostScript ņåńņīāą ńņšąķčöą"
-
-#~ msgid ""
-#~ "You can choose a security level for your system. Please refer to the "
-#~ "manual for complete\n"
-#~ " information. Basically, if you don't know what to choose, keep the "
-#~ "default option.\n"
-#~ msgstr ""
-#~ "Ģīęåņå äą čēįåšåņå ķčāī ķą ńčćóšķīńņ ķą ńčńņåģąņą ńč. Ģīė˙, īįśšķåņå ńå "
-#~ "źśģ šśźīāīäńņāīņī ēą\n"
-#~ "čķōīšģąöč˙. Ķąźšąņźī, ąźī ķå ēķąåņå źąźāī äą čēįåšåņå, īńņąāåņå ņīāą ļī "
-#~ "ļīäšąēįčšąķå.\n"
-
-#~ msgid ""
-#~ "You can configure a local printer (connected to your computer) or remote\n"
-#~ "printer (accessible via a Unix, Netware or Microsoft Windows network)."
-#~ msgstr ""
-#~ "Ģīęåņå äą ķąńņšīčņå ėīźąėåķ ļščķņåš (ńāśšēąķ źśģ ģąųčķąņą āč) čėč "
-#~ "īņäąėå÷åķ\n"
-#~ "ļščķņåš (äīńņśļåķ ÷šåē Unix, Netware čėč Microsoft Windows ģšåęą)."
-
-#~ msgid ""
-#~ "You can install cryptographic package if your internet connection has "
-#~ "been\n"
-#~ "set up correctly. First choose a mirror where you wish to download "
-#~ "packages and\n"
-#~ "after that select the packages to install.\n"
-#~ "\n"
-#~ "\n"
-#~ "Note you have to select mirror and cryptographic packages according\n"
-#~ "to your legislation."
-#~ msgstr ""
-#~ "Ģīęåņå äą čķńņąėčšąņå źščļņīćšąōńźč ļąźåņč, ąźī Čķņåšķåņ āšśēźąņą āč å\n"
-#~ "ķąņšīåķą źąźņī ņš˙įāą. Ļśšāī čēįåšåņå īćėåäąėåķ ńąéņ, īņ źśäåņī čēźąņå äą "
-#~ "čēņåćė˙ņå\n"
-#~ "ļąźåņč, ńėåä ņīāą ģąšźčšąéņå ļąźåņčņå ēą čķńņąėčšąķå.\n"
-#~ "\n"
-#~ "\n"
-#~ "Īņįåėåęåņå, ÷å ņš˙įāą äą čēįåšåņå īćėåäąėåķ ńąéņ č źščļņīćšąōńźč ļąźåņč,\n"
-#~ "ńśīįšąēķī āąųåņī ēąźīķīäąņåėńņāī."
-
-#~ msgid ""
-#~ "You can now choose individually all the packages you\n"
-#~ "wish to install.\n"
-#~ "\n"
-#~ "\n"
-#~ "You can expand or collapse the tree by clicking on options in the left "
-#~ "corner of\n"
-#~ "the packages window.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you prefer to see packages sorted in alphabetic order, click on the "
-#~ "icon\n"
-#~ "\"Toggle flat and group sorted\".\n"
-#~ "\n"
-#~ "\n"
-#~ "If you want not to be warned on dependencies, click on \"Automatic\n"
-#~ "dependencies\". If you do this, note that unselecting one package may "
-#~ "silently\n"
-#~ "unselect several other packages which depend on it."
-#~ msgstr ""
-#~ "Ńåćą ģīęåņå äą čēįåšåņå ļīīņäåėķī āńč÷źč ļąźåņč, źīčņī\n"
-#~ "čńźąņå äą čķńņąėčšąņå.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ģīęåņå äą šąēųčščņå čėč ńāčåņå äśšāīņī, źąņī öśźķåņå ķą īļöččņå ā ėåāč˙ "
-#~ "śćśė\n"
-#~ "ķą ļšīēīšåöą ń ļąźåņčņå.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ąźī ļšåäļī÷čņąņå äą āčäčņå ļąźåņčņå ļīäšåäåķč ā ąēįó÷åķ šåä, öśźķåņå ķą\n"
-#~ "čźīķąņą \"Ļšåāźėž÷āąķå ģåęäó ķåńīšņčšąķč č ńīšņčšąķč ļī ćšóļč\".\n"
-#~ "\n"
-#~ "\n"
-#~ "Ąźī ķå čńźąņå äą įśäåņå ļšåäóļšåęäąāąķč ēą ēąāčńčģīńņč, öśźķåņå "
-#~ "\"Ąāņīģąņč÷ķč ēąāčńčģīńņč\".\n"
-#~ "Ąźī ķąļšąāčņå ņīāą, īņįåėåęåņå ÷å čēźėž÷āąķåņī ķą åäčķ ļąźåņ ģīęå "
-#~ "ņčõīģśėźīģ\n"
-#~ "äą čēźėž÷č ķ˙źīč äšóćč ļąźåņč, źīčņī ēąāčń˙ņ īņ ķåćī."
-
-#~ msgid ""
-#~ "You can now enter the root password for your Mandrake Linux system.\n"
-#~ "The password must be entered twice to verify that both password entries "
-#~ "are identical.\n"
-#~ "\n"
-#~ "\n"
-#~ "Root is the system's administrator and is the only user allowed to modify "
-#~ "the\n"
-#~ "system configuration. Therefore, choose this password carefully. \n"
-#~ "Unauthorized use of the root account can be extemely dangerous to the "
-#~ "integrity\n"
-#~ "of the system, its data and other system connected to it.\n"
-#~ "\n"
-#~ "\n"
-#~ "The password should be a mixture of alphanumeric characters and at least "
-#~ "8\n"
-#~ "characters long. It should never be written down.\n"
-#~ "\n"
-#~ "\n"
-#~ "Do not make the password too long or complicated, though: you must be "
-#~ "able to\n"
-#~ "remember it without too much effort."
-#~ msgstr ""
-#~ "Ńåćą ģīęåņå äą āśāåäåņå root ļąšīėąņą ķą Mandrake Linux ńčńņåģąņą.\n"
-#~ "Ļąšīėąņą ņš˙įāą äą įśäå āśāåäåäą äāą ļśņč ēą ļšīāåšźą, ÷å ļąšīėčņå ńą "
-#~ "čäåķņč÷ķč.\n"
-#~ "\n"
-#~ "\n"
-#~ "Root å ńčńņåģķč˙ņ ąäģčķčńņšąņīš čėč åäčķńņāåķč˙ ļīņšåįčņåė, ķą źīéņī å "
-#~ "ļīēāīėåķī\n"
-#~ "äą ļīļšąā˙ ķąńņšīéāąłčņå ōąéėīāå. Ēąņīāą čēįåšåņå ļąšīėąņą āķčģąņåėķī.\n"
-#~ "Ķåļīēāīėåķą óļīņšåįą ķą root ąźąóķņą ģīęå äą įśäå čēźėźž÷čņåėķī īļąńķī ēą "
-#~ "öåėīńņņą\n"
-#~ "ķą ńčńņåģąņą, äąķķčņå č č äšóćčņå ńčńņåģč ńāśšēąķč źśģ ķå˙.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ļąšīėąņą ņš˙įāą äą å ńģåńčöą īņ ąēįó÷ķč ńčģāīėč č äą å äśėćą ķąé-ģąėźī 8\n"
-#~ "ńčģāīėą. Ķčźīćą ķå ņš˙įāą äą ńč ˙ ēąļčńāąņå.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ķå ļšąāåņå ļąšīėąņą ļšåźąėåķī äśėćą čėč ńėīęķą, āśļšåźč ņīāą: ņš˙įāą äą "
-#~ "ģīęåņå\n"
-#~ "äą ˙ ēąļīģķčņå įåē ģķīćī óńčėč˙."
-
-#~ msgid ""
-#~ "You can now select some miscellaneous options for your system.\n"
-#~ "\n"
-#~ "* Use hard drive optimizations: this option can improve hard disk "
-#~ "performance but is only for advanced users. Some buggy\n"
-#~ " chipsets can ruin your data, so beware. Note that the kernel has a "
-#~ "builtin blacklist of drives and chipsets, but if\n"
-#~ " you want to avoid bad surprises, leave this option unset.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Choose security level: you can choose a security level for your system. "
-#~ "Please refer to the manual for complete\n"
-#~ " information. Basically, if you don't know what to choose, keep the "
-#~ "default option.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Precise RAM if needed: unfortunately, there is no standard method to "
-#~ "ask the BIOS about the amount of RAM present in\n"
-#~ " your computer. As consequence, Linux may fail to detect your amount of "
-#~ "RAM correctly. If this is the case, you can\n"
-#~ " specify the correct amount or RAM here. Please note that a difference "
-#~ "of 2 or 4 MB between detected memory and memory\n"
-#~ " present in your system is normal.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Removable media automounting: if you would prefer not to manually mount "
-#~ "removable media (CD-Rom, floppy, Zip, etc.) by\n"
-#~ " typing \"mount\" and \"umount\", select this option.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Clean \"/tmp\" at each boot: if you want delete all files and "
-#~ "directories stored in \"/tmp\" when you boot your system,\n"
-#~ " select this option.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Enable num lock at startup: if you want NumLock key enabled after "
-#~ "booting, select this option. Please note that you\n"
-#~ " should not enable this option on laptops and that NumLock may or may "
-#~ "not work under X."
-#~ msgstr ""
-#~ "Ńåćą ģīęåņå äą čēįåšåņå ķ˙źīč äīļśėķčņåėķč īļöčč ēą ńčńņåģąņą ńč.\n"
-#~ "\n"
-#~ "* Čēļīėēāąķå īļņčģčēąöčč ēą ņāśšäč˙ äčńź: ņąēč īļöč˙ ģīęå äą ļīäīįšč "
-#~ "šąįīņąņą ķą ņāśšäč˙ āč äčńźą, ķī å ńąģī ēą ķąļšåäķąėč\n"
-#~ " ļīņåšåįčņåėč: ķ˙źīč ķåäīä˙ėąķč ÷čļńåņč ģīćąņ äą ńśńčļ˙ņ äąķķčņå āč, "
-#~ "ņąźą ÷å āķčģąāąéņå. Īņįåėåęåņå, ÷å ˙äšīņī čģą\n"
-#~ " āćšąäåķ ÷åšåķ ńļčńśź īņ óńņšīéńņāą č ÷čļńåņč, ķī, ąźī čńźąņå äą "
-#~ "čēįåćķåņå ėīųč čēķåķąäč, īńņąāåņå ņąēč īļöč˙ čēźėž÷åķą.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Čēįåšåņå ķčāī ķą ńčćóšķīńņ: ģīęåņå äą čēįåšåņå ķčāī ķą ńčćóšķīńņ ēą "
-#~ "ńčńņåģąņą\n"
-#~ " ńč. Ģīė˙, īįśšķåņå ńå źśģ šśźīāīäńņāīņī ēą ļśėķą čķōīšģąöč˙. Ļšīńņī, "
-#~ "ąźī\n"
-#~ " ķå ēķąåņå źąźāī äą čēįåšåņå, īńņąāåņå ņīāą ļī ļīäšąēįčšąķå.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Ņī÷ķī RAM, ąźī å ķóęķī: ēą ńśęąėåķčå, ķ˙ģą ńņąķäąšņåķ ģåņīä, äą ńå "
-#~ "ļīļčņą BIOS ēą īįåģą ķą RAM ā źīģļžņśšą. Źąņī\n"
-#~ " ļīńėåäńņāčå, GNU/Linux ģīęå äą ķå óńļåå äą ēąńå÷å ļšąāčėķī īįåģą ķą "
-#~ "RAM. Ąźī å ņąźśā ńėó÷ą˙, ņóź ģīęåņå äą\n"
-#~ " ēąäąäåņå ņī÷ķč˙ īįåģ ķą RAM. Ģīė˙, īņįåėåęåņå ÷å īņ 2 čėč 4 MB ģåęäó "
-#~ "ēąńå÷åķąņą č ļščńśńņāąłąņą RAM å ķīšģąėķą.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Ąāņīģąņč÷ķī ģīķņčšąķå ķą ļšåķīńčģč óńņšīéńņāą: ąźī ļšåäļī÷čņąņå äą ķå "
-#~ "ģīķņčšąņå šś÷ķī ļšåķīńčģč óńņšīéńņāą (CD-ROM,\n"
-#~ " ōėīļč, Zip č ņ.ķ.) ļčųåéźč \"mount\" č \"umount\", čēįåšåņå ņąēč "
-#~ "īļöč˙.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Ļī÷čńņāąķå ķą \"/tmp\" ļšč ēąšåęäąķå: ąźī čńźąņå äą ńå čēņščāąņ āńč÷źč "
-#~ "ōąéėīāå č äčšåźņīščč ńśõšąķ˙āąķč ā \"/tmp\",\n"
-#~ " źīćąņī ēąšåęäąņå ńčńņåģąņą ńč, čēįåšåņå ņąēč īļöč˙.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Āźėž÷āąķå ķą NumLock ļšč ēąšåęäąķå: ąźī čńźąņå äą ńå āźėž÷āą NumLock "
-#~ "ļšč ńņąšņčšąķå, čēįåšåņå ņąēč īļöč˙. Ģīė˙, īņįåėåęåņå ÷å\n"
-#~ " ķå ņš˙įāą äą āźėž÷āąņå ņąēč īļöč˙ ļšč ėąļņīļč č ÷å ģīęå č äą ķå šąįīņč "
-#~ "ļīä X)."
-
-#~ msgid "You can now select your timezone according to where you live."
-#~ msgstr "Ńåćą ģīęåņå äą ļīńī÷čņå āšåģåāąņą ēīķą ńļš˙ģī ģåńņīęčāååķåņī ńč."
-
-#~ msgid ""
-#~ "You can now test your mouse. Use buttons and wheel to verify\n"
-#~ "if settings are good. If not, you can click on \"Cancel\" to choose "
-#~ "another\n"
-#~ "driver."
-#~ msgstr ""
-#~ "Ńåćą ģīęåņå äą čēļšīįāąņå ģčųźąņą ńč. Čēļīėēāąéņå įóņīķą č ņīļ÷åņī, ēą "
-#~ "äą\n"
-#~ "ļšīāåščņå äąėč ķąńņšīéźčņå ńą ķąšåä. Ąźī ķå, ģīęåņå äą öśźķåņå \"Īņģ˙ķą"
-#~ "\",\n"
-#~ "ēą äą čēįåšåņå äšóć äšąéāåš."
-
-#~ msgid ""
-#~ "You can now test your mouse. Use buttons and wheel to verify\n"
-#~ "if settings are good. If not, you can click on \"Cancel\" to choose "
-#~ "another\n"
-#~ "driver.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you are installing on an Apple machine with a 1-button mouse, you "
-#~ "will\n"
-#~ "be given the opportunity to define some keyboard keys to emulate the 2nd\n"
-#~ "and 3rd mouse buttons. This will allow you to be able to access the "
-#~ "full\n"
-#~ "functionality of the mouse in both the Linux console and the X Window "
-#~ "GUI.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you have an ADB mouse, please select USB, as the Linux kernel will "
-#~ "take\n"
-#~ "care of mapping your mouse hardware correctly."
-#~ msgstr ""
-#~ "Ńåćą ģīęåņå äą čēļšīįāąņå ģčųźąņą ńč. Čēļīėēāąéņå įóņīķčņå č źīėåėöåņī, "
-#~ "ēą\n"
-#~ "äą ļšīāåščäą äąėč ķąńņšīéźčņå ńą ķąšåä. Ąźī ķå ńą, öśźķåņå ķą \"Īņźąē\", "
-#~ "ēą\n"
-#~ "äą čēįåšåņå äšóć äšąéāåš.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ąźī čķńņąėčšąņå ķą Apple ģąųčķą ń åäķīįóņīķķą ģčųźą, łå čģąņå āśēģīęķīńņ "
-#~ "äą\n"
-#~ "īļšåäåėčņå źėąāčųč īņ źėąāčąņóšąņą, äą ńčģóėčšąņ 2-šč č 3-ņč įóņīķ ķą\n"
-#~ "ģčųźąņą. Ņīāą łå āč äąäå äīńņśļ äī ļśėķąņą ōóķźöčīķąėķīńņ ķą ģčųźąņą ā "
-#~ "Linux\n"
-#~ "źīķēīėąņą, č ā X Windows GUI.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ąźī čģąņå ADB ģčųźą, ģīė˙, čēįåšåņå USB, ņśé źąņī Linux ˙äšīņī łå ńå "
-#~ "ļīćščęč\n"
-#~ "äą čēļīėēāą ģčųźąņą źąźņī ņš˙įāą."
-
-#~ msgid "You can specify directly the URI to access the printer with CUPS."
-#~ msgstr "Ģīęåņå äą īļšåäåėčņå ķąļšąāī URI ēą äīńņśļ äī ļščķņåšą ń CUPS."
-
-#~ msgid ""
-#~ "You may now configure your network device.\n"
-#~ "\n"
-#~ " * IP address: if you don't know or are not sure what to enter, ask "
-#~ "your network administrator.\n"
-#~ " You should not enter an IP address if you select the option "
-#~ "\"Automatic IP\" below.\n"
-#~ "\n"
-#~ " * Netmask: \"255.255.255.0\" is generally a good choice. If you don't "
-#~ "know or are not sure what to enter,\n"
-#~ " ask your network administrator.\n"
-#~ "\n"
-#~ " * Automatic IP: if your network uses BOOTP or DHCP protocol, select "
-#~ "this option. If selected, no value is needed in\n"
-#~ " \"IP address\". If you don't know or are not sure if you need to "
-#~ "select this option, ask your network administrator."
-#~ msgstr ""
-#~ "Ńåćą ģīęåņå äą ķąńņšīčņå ģšåęīāīņī ńč óńņšīéńņāī.\n"
-#~ "\n"
-#~ " * IP ąäšåń: ąźī ķå ēķąåņå čėč ķå ńņå ńčćóšķč źąźāī äą āśāåäåņå, "
-#~ "ļīļčņąéņå ģšåęīāčå ńč ąäģčķčńņšąņīš.\n"
-#~ " Ķå ņš˙įāą äą āśāåęäąņå IP ąäšåń, ąźī čēįåšåņå īļöč˙ņą \"Ąāņīģąņč÷ķī IP"
-#~ "\", ļī-äīėó.\n"
-#~ "\n"
-#~ " * Ģšåęīāą ģąńźą: \"255.255.255.0\" īįčźķīāåķķī å äīįśš čēįīš. Ąźī ķå "
-#~ "ēķąåņå čėč ķå ńņå ńčćóšķč źąźāī äą āśāåäåņå, ļīļčņąéņå ģšåęīāč˙ ńč "
-#~ "ąäģčķčńņšąņīš.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Ąāņīģąņč÷ķī IP: Ąźī ģšåęąņą āč čēļīėēāą BOOTP čėč DHCP ļšīņīźīė, "
-#~ "čēįåšåņå ņąēč īļöč˙. Ąźī å čēįåšąķą, ķå ńå ķóęäąåņå\n"
-#~ " īņ ńņīéķīńņ ēą \"IP ąäšåń\". Ąźī ķå ēķąåņå čėč ķå ńņå ńčćóšķč źąźāī "
-#~ "ņš˙įāą äą āśāåäåņå, ļīļčņąéņå ģšåęīāč˙ ńč ąäģčķčńņšąņīš."
-
-#~ msgid ""
-#~ "You may now create one or more \"regular\" user account(s), as\n"
-#~ "opposed to the \"privileged\" user account, root. You can create\n"
-#~ "one or more account(s) for each person you want to allow to use\n"
-#~ "the computer. Note that each user account will have its own\n"
-#~ "preferences (graphical environment, program settings, etc.)\n"
-#~ "and its own \"home directory\", in which these preferences are\n"
-#~ "stored.\n"
-#~ "\n"
-#~ "\n"
-#~ "First of all, create an account for yourself! Even if you will be the "
-#~ "only user\n"
-#~ "of the machine, you may NOT connect as root for daily use of the system: "
-#~ "it's a\n"
-#~ "very high security risk. Making the system unusable is very often a typo "
-#~ "away.\n"
-#~ "\n"
-#~ "\n"
-#~ "Therefore, you should connect to the system using the user account\n"
-#~ "you will have created here, and login as root only for administration\n"
-#~ "and maintenance purposes."
-#~ msgstr ""
-#~ "Ńåćą ģīęåņå äą ńśēäąäåņå åäčķ čėč ļīāå÷å \"īįčźķīāåķč\" ļīņšåįčņåėńźč\n"
-#~ "ąźąóķņč, źąņī ļšīņčāīļīėīęķīńņ ķą \"ļščāčėåćčšīāąķč˙\" ļīņšåįčņåėńźč\n"
-#~ "ąźąóķņ \"root\". Ģīęåņå äą ńśēäąäåņå ļī åäčķ čėč ļīāå÷å ēą āńåźč, źīéņī\n"
-#~ "įčõņå čńźąėč äą ļīėēāą źīģļžņśšą āč. Īņįåėåęåņå ÷å āńåźč ąźąóķņ łå čģą\n"
-#~ "ńāīčņå ļšåäļī÷čņąķč˙ (ćšąōč÷ķą ńšåäą, ļšīćšąģķč ķąńņšīéźč č ņ.ķ.)\n"
-#~ "č äą ķąńņšīč ńāī˙ņą \"Home\" äčšåźņīšč˙, źśäåņī äą ēąļčńāą ņåēč\n"
-#~ "ńāīč ļšåäļī÷čņąķč˙.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ļśšāī ńśēäąéņå ąźąóķņ ēą ńåįå ńč. Äąęå č äą ńņå åäčķńņāåķč˙ņ ļīņšåįčņåė,\n"
-#~ "čēļīėēāąķåņī ķą ąäģčķčńņšąņīšńźč˙ ąźąóķņ ēą āńåźčäķåāķą óļīņšåįą å "
-#~ "īļąńķī.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ēąņīāą āėčēąéņå ń ļīņšåįčņåėńźč˙ ńč ąźąóķņ ā ńčńņåģąņą č, ńąģī ąźī āč ńå\n"
-#~ "ķąėīęč, čēļīėēāąéņå ąäģčķčńņšąņīšńźč˙ ąźąóķņ."
-
-#~ msgid ""
-#~ "You may now enter dialup options. If you don't know\n"
-#~ "or are not sure what to enter, the correct informations can be obtained "
-#~ "from\n"
-#~ "your Internet Service Provider. If you do not enter the DNS (name "
-#~ "server)\n"
-#~ "information here, this information will be obtained from your Internet "
-#~ "Service\n"
-#~ "Provider at connection time."
-#~ msgstr ""
-#~ "Ńåćą ģīęåņå äą āśāåäåņå dialup īļöččņå. Ąźī ķå ēķąåņå\n"
-#~ "čėč ķå ńņå ńčćóšķč źąźāī äą āśāåäåņå, ļīäõīä˙łą čķōīšģąöč˙ ģīęå äą įśäå "
-#~ "āēåņą\n"
-#~ "īņ Čķņåšķåņ äīńņąā÷čźą āč. Ąźī ķå āśāåäåņå čķōīšģąöč˙ ēą DNS (name "
-#~ "server)\n"
-#~ "ņóź, ņąēč čķōīšģąöč˙ łå įśäå āēåņą Čķņåšķåņ äīńņąā÷čźą āč ļī āšåģå ķą\n"
-#~ "ńāśšēāąķå."
-
-#~ msgid ""
-#~ "You may now enter dialup options. If you're not sure what to enter, the\n"
-#~ "correct information can be obtained from your ISP."
-#~ msgstr ""
-#~ "Ńåćą ģīęåņå äą āśāåäåņå īļöččņå ēą ķąįčšąķå. Ąźī ķå ńņå ńčćóšķč,\n"
-#~ "ļšąāčėķą čķōīšģąöč˙ ģīęåņå äą ļīėó÷čņå īņ Čķņåšķåņ äīńņąā÷čźą ńč."
-
-#~ msgid ""
-#~ "You may now enter your host name if needed. If you\n"
-#~ "don't know or are not sure what to enter, ask your network administrator."
-#~ msgstr ""
-#~ "Ńåćą ģīęåņå äą āśāåäåņå čģåņī ķą õīńņą ńč. Ąźī ķå ēķąåņå\n"
-#~ "čėč ķå ńņå ńčćóšķč źąźāī äą āśāåäåņå, ļīļčņąéņå ģšåęīāč˙ ńč ąäģčķčńņšąņīš."
-
-#~ msgid ""
-#~ "You may now enter your host name if needed. If you\n"
-#~ "don't know or are not sure what to enter, leave blank."
-#~ msgstr ""
-#~ "Ńåćą ģīęåņå äą āśāåäåņå čģåņī ķą õīńņą ńč, ąźī ņš˙įāą. Ąźī\n"
-#~ "ķå ēķąåņå čėč ķå ńņå ńčćóšķč źąźāī äą āśāåäåņå, īńņąāåņå ćī ļšąēķī."
-
-#~ msgid ""
-#~ "You may now enter your host name if needed. If you\n"
-#~ "don't know or are not sure what to enter, the correct informations can "
-#~ "be\n"
-#~ "obtained from your Internet Service Provider."
-#~ msgstr ""
-#~ "Ńåćą ģīęåņå äą āśāåäåņå čģåņī ķą õīńņą ńč, ąźī āč ņš˙įāą. Ąźī ķå\n"
-#~ "ēķąåņå čėč ķå ńņå ńčćóšķč źąźāī ņš˙įāą äą āśāåäåņå, ń ļšąāčėķą "
-#~ "čķōīšģąöč˙\n"
-#~ "ģīęåņå äą ńå ńäīįčåņå īņ Čķņåšķåņ äīńņąā÷čźą ńč."
-
-#~ msgid ""
-#~ "You may now select the group of packages you wish to\n"
-#~ "install or upgrade.\n"
-#~ "\n"
-#~ "\n"
-#~ "DrakX will then check whether you have enough room to install them all. "
-#~ "If not,\n"
-#~ "it will warn you about it. If you want to go on anyway, it will proceed "
-#~ "onto the\n"
-#~ "installation of all selected groups but will drop some packages of "
-#~ "lesser\n"
-#~ "interest. At the bottom of the list you can select the option \n"
-#~ "\"Individual package selection\"; in this case you will have to browse "
-#~ "through\n"
-#~ "more than 1000 packages..."
-#~ msgstr ""
-#~ "Ńåćą ģīęåņå ńą ģąšźčšąņå ćšóļą ļąźåņč, źī˙ņī čńźąņå äą\n"
-#~ "čķńņąėčšąņå čėč īįķīāčņå.\n"
-#~ "\n"
-#~ "DrakX łå ļšīāåšč äąėč čģąņå äīńņąņś÷ķī ģ˙ńņī ēą čķńņąėčšąķåņī čģ. Ąźī "
-#~ "ķ˙ģąņå,\n"
-#~ "ņīé łå āč ļšåäóļšåäč ēą ņīāą. Ąźī čńźąņå äą ļšīäśėęčņå āśļšåźč ņīāą, łå "
-#~ "ļšīäśėęč\n"
-#~ "čķńņąėąöč˙ņą ķą āńč÷źč ģąšźčšąķč ćšóļč, ķī łå ļšīļóńķå ļī-ģąėīāąęķčņå "
-#~ "ļąźåņč.\n"
-#~ "Ā äśķīņī ķą ńļčńśźą ģīęåņå äą ģąšźčšąņå īļöč˙ņą \"Čķäčāčäóąėåķ čēįīš ķą "
-#~ "ļąźåņč\";\n"
-#~ "ā ņīēč ńėó÷ąé, łå ņš˙įāą äą īįõīäčņå ļīāå÷å īņ 1000 ļąźåņą ..."
-
-#~ msgid ""
-#~ "You must now define your machine usage. Choices are:\n"
-#~ "\n"
-#~ "\t* Workstation: this the ideal choice if you intend to use your machine "
-#~ "primarily for everyday use, at office or\n"
-#~ "\t at home.\n"
-#~ "\n"
-#~ "\n"
-#~ "\t* Development: if you intend to use your machine primarily for software "
-#~ "development, it is the good choice. You\n"
-#~ "\t will then have a complete collection of software installed in order "
-#~ "to compile, debug and format source code,\n"
-#~ "\t or create software packages.\n"
-#~ "\n"
-#~ "\n"
-#~ "\t* Server: if you intend to use this machine as a server, it is the good "
-#~ "choice. Either a file server (NFS or\n"
-#~ "\t SMB), a print server (Unix style or Microsoft Windows style), an "
-#~ "authentication server (NIS), a database\n"
-#~ "\t server and so on. As such, do not expect any gimmicks (KDE, GNOME, "
-#~ "etc.) to be installed."
-#~ msgstr ""
-#~ "Ńåćą ņš˙įāą äą īļšåäåėčņå ļšåäķąēķą÷åķčåņī ķą ģąųčķąņą ńč. Āśēģīęķīńņčņå "
-#~ "ńą:\n"
-#~ "\n"
-#~ "\t* Šąįīņķą ńņąķöč˙: ņīāą å čäåąėķč˙ čēįīš, ąźī āśēķąģåš˙āąņå äą "
-#~ "čēļīėēāąņå ģąųčķąņą ńč ćėąāķī ēą åęåäķåāķą óļīņšåįą ā\n"
-#~ "\t īōčńą čėč ó äīģą.\n"
-#~ "\n"
-#~ "\n"
-#~ "\t* Šąēšąįīņźą: ąźī āśēķąģåš˙āąņå äą čēļīėēāąņå ģąųčķąņą ńč ćėąāķī ēą "
-#~ "šąēšąįīņźą ķą ńīōóåš, ņīāą å äīįśš čēįīš.\n"
-#~ "\t Ņīćąāą łå čģąņå čķńņąėčšąķ ļśėåķ ķąįīš īņ ńīōņóåš, ēą äą źīģļčėčšąņå, "
-#~ "īņźščāąņå įśćīāå č ōīšģąņčšąņå čēõīäåķ źīä,\n"
-#~ "\t čėč äą ńśēäąāąņå ńīōóåšķč ļąźåņč.\n"
-#~ "\n"
-#~ "\n"
-#~ "\t* Ńśšāśš: ąźī āśēķąģåš˙āąņå äą čēļīėēāąņå ņąēč ģąųčķą ēą ńśšāśš, ņīāą å "
-#~ "äīįšč˙ņ čēįīš. Āźėž÷āą ōąéėīā ńśšāśš\n"
-#~ "\t (NFS čėč SMB), ńśšāśš ēą ļå÷ąņ (Unix-ńźč čėč Microsoft Windows-ńźč), "
-#~ "ńśšāśš ēą ąóņīščēąöč˙ (NIS), ńśšāśš ēą\n"
-#~ "\t įąēč-äąķķč č ņ.ķ.. Źąņī ņąźśā, ķå ī÷ąźāąéņå čķńņąėčšąķč źąźāčņī č äą "
-#~ "å ųąščķčč (KDE, GNOME, č ņ.ķ.)."
-
-#~ msgid ""
-#~ "You must now define your machine usage. Choices are:\n"
-#~ "\n"
-#~ "* Workstation: this the ideal choice if you intend to use your machine "
-#~ "primarily for everyday use, at office or\n"
-#~ " at home.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Development: if you intend to use your machine primarily for software "
-#~ "development, it is the good choice. You\n"
-#~ " will then have a complete collection of software installed in order to "
-#~ "compile, debug and format source code,\n"
-#~ " or create software packages.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Server: if you intend to use this machine as a server, it is the good "
-#~ "choice. Either a file server (NFS or\n"
-#~ " SMB), a print server (Unix style or Microsoft Windows style), an "
-#~ "authentication server (NIS), a database\n"
-#~ " server and so on. As such, do not expect any gimmicks (KDE, GNOME, "
-#~ "etc.) to be installed."
-#~ msgstr ""
-#~ "Ńåćą ņš˙įāą äą īļšåäåėčņå ļšåäķąēķą÷åķčåņī ķą ģąųčķąņą ńč. Āśēģīęķīńņčņå "
-#~ "ńą:\n"
-#~ "\n"
-#~ "* Šąįīņķą ńņąķöč˙: ņīāą å čäåąėķč˙ čēįīš, ąźī āśēķąģåš˙āąņå äą čēļīėēāąņå "
-#~ "ģąųčķąņą ńč ćėąāķī ēą åęåäķåāķą óļīņšåįą ā\n"
-#~ " īōčńą čėč ó äīģą.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Šąēšąįīņźą: ąźī āśēķąģåš˙āąņå äą čēļīėēāąņå ģąųčķąņą ńč ćėąāķī ēą "
-#~ "šąēšąįīņźą ķą ńīōóåš, ņīāą å äīįśš čēįīš.\n"
-#~ " Ņīćąāą łå čģąņå čķńņąėčšąķ ļśėåķ ķąįīš īņ ńīōņóåš, ēą äą źīģļčėčšąņå, "
-#~ "īņźščāąņå įśćīāå č ōīšģąņčšąņå čēõīäåķ źīä,\n"
-#~ " čėč äą ńśēäąāąņå ńīōóåšķč ļąźåņč.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Ńśšāśš: ąźī āśēķąģåš˙āąņå äą čēļīėēāąņå ņąēč ģąųčķą ēą ńśšāśš, ņīāą å "
-#~ "äīįšč˙ņ čēįīš. Āźėž÷āą ōąéėīā ńśšāśš\n"
-#~ " (NFS čėč SMB), ńśšāśš ēą ļå÷ąņ (Unix-ńźč čėč Microsoft Windows-ńźč), "
-#~ "ńśšāśš ēą ąóņīščēąöč˙ (NIS), ńśšāśš ēą\n"
-#~ " įąēč-äąķķč č ņ.ķ.. Źąņī ņąźśā, ķå ī÷ąźāąéņå čķńņąėčšąķč źąźāčņī č äą å "
-#~ "ųąščķčč (KDE, GNOME, č ņ.ķ.)."
-
-#~ msgid "You must now select your printer in the above list."
-#~ msgstr "Ńåćą ģīęåņå äą čēįåšåņå ļščķņåš īņ ńļčńśźą ļī-ćīšå."
-
-#~ msgid ""
-#~ "You need to accept the terms of the above license to continue "
-#~ "installation.\n"
-#~ "\n"
-#~ "\n"
-#~ "Please click on \"Accept\" if you agree with its terms.\n"
-#~ "\n"
-#~ "\n"
-#~ "Please click on \"Refuse\" if you disagree with its terms. Installation "
-#~ "will end without modifying your current\n"
-#~ "configuration."
-#~ msgstr ""
-#~ "Ņš˙įāą äą ļščåģåņå óńėīāč˙ņą ķą ėčöåķēą ļī-ćīšå, ēą äą ļšīäśėęč "
-#~ "čķńņąėąöč˙ņą.\n"
-#~ "\n"
-#~ "\n"
-#~ "Öśźķåņå \"Ļščåģč\", ąźī ńņå ńśćėąńķč ń óńėīāč˙ņą ģó.\n"
-#~ "\n"
-#~ "\n"
-#~ "Öśźķåņå \"Īņźąęč\", ąźī ķå ńņå ńśćėąńķč ń óńėīāč˙ņą ģó. Čķńņąėąöč˙ņą łå "
-#~ "ļščźėž÷č įåē ļšīģ˙ķą ķą ķąńņī˙łąņą\n"
-#~ "ķąńņšīéźą."
-
-#~ msgid ""
-#~ "You need to enter some informations here.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Name of queue: the print spooler uses \"lp\" as default printer "
-#~ "name. So, you need have a printer named \"lp\".\n"
-#~ " If you have only one printer, you can use several names for it. You "
-#~ "just need to separate them by a pipe\n"
-#~ " character (a \"|\"). So, if you prefer to have a more meaningful "
-#~ "name, you have to put it first, eg: \"My printer|lp\".\n"
-#~ " The printer having \"lp\" in its name(s) will be the default "
-#~ "printer.\n"
-#~ "\n"
-#~ " \n"
-#~ " * Spool directory: it is in this directory that printing jobs are "
-#~ "stored. Keep the default choice\n"
-#~ " if you don't know what to use\n"
-#~ "\n"
-#~ "\n"
-#~ " * Printer Connection: If your printer is physically connected to your "
-#~ "computer, select \"Local printer\".\n"
-#~ " If you want to access a printer located on a remote Unix machine, "
-#~ "select \"Remote lpd printer\".\n"
-#~ "\n"
-#~ "\n"
-#~ " If you want to access a printer located on a remote Microsoft "
-#~ "Windows machine (or on Unix machine using SMB\n"
-#~ " protocol), select \"SMB/Windows 95/98/NT\".\n"
-#~ "\n"
-#~ "\n"
-#~ " If you want to acces a printer located on NetWare network, select "
-#~ "\"NetWare\".\n"
-#~ msgstr ""
-#~ "Ņš˙įāą äą āśāåäåņå ķ˙źąźāą čķōīšģąöč˙ ņóź.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Čģå ķą ļščķņåš: ļī ļīäšąēįčšąķå, ļå÷ąņķč˙ spooler čēļīėēāą \"lp\" "
-#~ "źąņī čģå ķą ļščķņåš. Ņąźą ÷å ņš˙įāą äą čģąņå\n"
-#~ "ļščķņåš ķąšå÷åķ \"lp\".\n"
-#~ " Ąźī čģąņå ńąģī åäčķ ļščķņåš, ģīęåņå äą čēļīėēāąņå ķ˙źīėźī čģåķą ēą "
-#~ "ķåćī. Ļšīńņī ņš˙įāą äą ćč īņäåėčņå ń pipe\n"
-#~ " ńčģāīėą (\"|\"). Ņąźą ÷å, ąźī ļšåäļī÷čņąņå ļī-ńģčńėåķī čģå, ģīęåņå "
-#~ "äą ćī ńėīęčņå ļśšāī, ķąļš. \"My printer|lp\".\n"
-#~ " Ļščķņåšśņ ńśäśšęął \"lp\" ā čģåņī(ąņą) ńč, łå ńå ļīėēāą ļī "
-#~ "ļīäšąēįčšąķå.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Spool äčšåźņīšč˙: ņīāą å äčšåźņīšč˙ņą, źśäåņī ńå ńśõšąķ˙āąņ šąįīņčņå "
-#~ "ēą ļå÷ąņ. Īńņąāåņå ńņīéķīńņņą\n"
-#~ " ļī ļīäšąēįčšąķå, īńāåķ ąźī ķå ēķąåņå źąźāī äą čēļīėēāąņå\n"
-#~ "\n"
-#~ "\n"
-#~ " * Āšśēźą źśģ ļščķņåš: Ąźī ļščķņåšśņ āč å ōčēč÷åńźč ńāśšēąķ źśģ "
-#~ "źīģļžņśšą āč, čēįåšåņå \"Ėīźąėåķ ļščķņåš\".\n"
-#~ " Ąźī čńźąņå äīńņśļ äī ļščķņåš ķąģčšął ńå ķą īņäąėå÷åķą Unix ģąųčķą, "
-#~ "čēįåšåņå \"Īņäąėå÷åķ LPD ļščķņåš\".\n"
-#~ "\n"
-#~ "\n"
-#~ " Ąźī čńźąņå äīńņśļ äī ļščķņåš ķąģčšął ńå ķą īņäąėå÷åķą Microsoft "
-#~ "Windows ģąųčķą (čėč ķą Unix ģąųčķą ļīėēāąłą SMB\n"
-#~ " ļšīņīźīė), čēįåšåņå \"SMB/Windows 95/98/NT\".\n"
-#~ "\n"
-#~ "\n"
-#~ " Ąźī čńźąņå äīńņśļ äī ļščķņåš ķąģčšął ńå ķą NetWare ģšåęą, čēįåšåņå "
-#~ "\"NetWare\".\n"
-
-#~ msgid ""
-#~ "Your printer has not been detected. Please enter the name of the device "
-#~ "on\n"
-#~ "which it is connected.\n"
-#~ "\n"
-#~ "\n"
-#~ "For information, most printers are connected on the first parallel port. "
-#~ "This\n"
-#~ "one is called \"/dev/lp0\" under GNU/Linux and \"LPT1\" under Microsoft "
-#~ "Windows."
-#~ msgstr ""
-#~ "Ļščķņåšśņ āč įåųå ēąńå÷åķ. Ģīė˙, āśāåäåņå čģåņī ķą óńņšīéńņāīņī, ķą "
-#~ "źīåņī\n"
-#~ "å ńāśšēąķ.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ēą čķōīšģąöč˙, ļīāå÷åņī ļščķņåšč ńą ńāśšēąķč ķą ļśšāč˙ ļąšąėåėåķ ļīšņ. "
-#~ "Ņīēč\n"
-#~ "ńå ķąšč÷ą \"/dev/lp0\" ļīä GNU/Linux č \"LPT1\" ļīä Microsoft Windows."
-
-#~ msgid ""
-#~ "Your system is going to reboot.\n"
-#~ "\n"
-#~ "After rebooting, your new Mandrake Linux system will load automatically.\n"
-#~ "If you want to boot into another existing operating system, please read\n"
-#~ "the additional instructions."
-#~ msgstr ""
-#~ "Ńčńņåģąņą āč łå ńå šåńņąšņčšą.\n"
-#~ "\n"
-#~ "Ńėåä źąņī šåńņąšņčšą, āąųąņą ķīāą Mandrake Linux ńčńņåģą łå ńå ēąšåäč\n"
-#~ "ąāņīģąņč÷ķī. Ąźī čńźąņå äą ļóńķåņå äšóćą ńśłåńņāóāąłą īļåšąöčīķķą "
-#~ "ńčńņåģą,\n"
-#~ "ļšī÷åņåņå äīļśėķčņåėķčņå čķńņšóźöčč."
-
-#~ msgid "all data on these partitions will be lost"
-#~ msgstr "āńč÷źč äąķķč āśšõó ņ˙õ łå įśäąņ ēąćóįåķč"
-
-#~ msgid ""
-#~ "beware: IN THIS SECURITY LEVEL, ROOT LOGIN AT CONSOLE IS NOT ALLOWED!\n"
-#~ "If you want to be root, you have to login as a user and then use \"su\".\n"
-#~ "More generally, do not expect to use your machine for anything but as a "
-#~ "server.\n"
-#~ "You have been warned."
-#~ msgstr ""
-#~ "āķčģąķčå: Ā ŅĪĀĄ ĶČĀĪ ĶĄ ŃČĆÓŠĶĪŃŅ, ROOT ĀĖČĒĄĶÅŅĪ ĶĄ ŹĪĶĒĪĖĄŅĄ ĶÅ Å "
-#~ "ĻĪĒĀĪĖÅĶĪ !\n"
-#~ "Ąźī čńźąņå äą ńņå root, ņš˙įāą äą āėåēåņå źąņī ļīņšåįčņåė č ņīćąāą äą "
-#~ "čēļīėēāąņå \"su\".\n"
-#~ "Źąņī ö˙ėī, ķå ī÷ąźāąéņå äą čēļīėēāąņå ģąųčķąņą ńč ēą ķåłī äšóćī, īńāåķ ēą "
-#~ "ńśšāśš.Į˙õņå ļšåäóļšåäåķ."
-
-#~ msgid "cannot fork: "
-#~ msgstr "ķå ģīćą äą ńå īņäåė˙: "
-
-#~ msgid "default"
-#~ msgstr "ļī ļīäšąēįčšąķå"
-
-#~ msgid "don't use pppoe"
-#~ msgstr "ķå čēļīėēāąé PPPOE"
-
-#~ msgid "gMonitor"
-#~ msgstr "gMonitor"
-
-#~ msgid "horizontal nice looking aurora"
-#~ msgstr "Õīščēīķņąėķą äīįšå-čēćėåęäąłą aurora"
-
-#~ msgid "i18n (important)"
-#~ msgstr "i18n (āąęåķ)"
-
-#~ msgid "i18n (nice)"
-#~ msgstr "i18n (äīįśš)"
-
-#~ msgid "i18n (very nice)"
-#~ msgstr "i18n (ģķīćī äīįśš)"
-
-#~ msgid "loopback"
-#~ msgstr "loopback"
-
-#~ msgid "not connected"
-#~ msgstr "ķå ńāśšēąķ"
-
-#~ msgid "received: "
-#~ msgstr "ļīėó÷åķč: "
-
-#~ msgid ""
-#~ "rpmdrake is currently in ``low memory'' mode.\n"
-#~ "I'm going to relaunch rpmdrake to allow searching files"
-#~ msgstr ""
-#~ "rpmdrake å ā šåęčģ ķą ``ģąėźī ļąģåņ''.\n"
-#~ "Łå ļóńķą īņķīāī rpmdrake, ēą äą šąēšåųą ņśšńåķåņī ķą ōąéėīāå"
-
-#~ msgid "sent: "
-#~ msgstr "čēļšąņåķč: "
-
-#~ msgid "using module"
-#~ msgstr "čēļīėēāąķå ķą ģīäóė"
-
-#~ msgid "vertical traditional aurora"
-#~ msgstr "Īįčźķīāåķą āåšņčźąėķą aurora"
-
-#~ msgid "yellow pages"
-#~ msgstr "ęśėņč ńņšąķčöč"
diff --git a/perl-install/share/po/br.po b/perl-install/share/po/br.po
deleted file mode 100644
index f210d9039..000000000
--- a/perl-install/share/po/br.po
+++ /dev/null
@@ -1,12284 +0,0 @@
-# DrakX e Brezhoneg.
-# Copyright (C) 1999-2002 MandrakeSoft
-# Thierry Vignaud <tvignaud@mandrakesoft.com>, 1999-2002
-# JaƱ-Mai Drapier <jan-mai.drapier@mail.dotcom.fr>, 1999-2000
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: DrakX 8.2\n"
-"POT-Creation-Date: 2002-06-13 15:54+0200\n"
-"PO-Revision-Date: 2002-01-28 22:41GMT\n"
-"Last-Translator: Thierry Vignaud <tvignaud@mandrakesoft.com>\n"
-"Language-Team: Brezhoneg <ofisk@wanadoo.fr>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../Xconfigurator.pm_.c:243
-msgid "Configure all heads independently"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:244
-msgid "Use Xinerama extension"
-msgstr "Implijit Xinemara"
-
-#: ../../Xconfigurator.pm_.c:247
-#, c-format
-msgid "Configure only card \"%s\" (%s)"
-msgstr "Kefluniadur hep ken kartenn \"%s\" (%s)"
-
-#: ../../Xconfigurator.pm_.c:250
-#, fuzzy
-msgid "Multi-head configuration"
-msgstr "o lenn ar c'hefluniadur"
-
-#: ../../Xconfigurator.pm_.c:251
-msgid ""
-"Your system support multiple head configuration.\n"
-"What do you want to do?"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:262
-msgid "Graphics card"
-msgstr "Kartenn c'hrafek"
-
-#: ../../Xconfigurator.pm_.c:263
-msgid "Select a graphics card"
-msgstr "Diuzit ur gartenn c'hrafek"
-
-#: ../../Xconfigurator.pm_.c:287
-msgid "Choose a X server"
-msgstr "Dibabit ur servijer X"
-
-#: ../../Xconfigurator.pm_.c:287
-msgid "X server"
-msgstr "servijer X"
-
-#: ../../Xconfigurator.pm_.c:294
-msgid "Choose a X driver"
-msgstr "Dibabit ur sturier X"
-
-#: ../../Xconfigurator.pm_.c:294
-msgid "X driver"
-msgstr "Sturier X"
-
-#: ../../Xconfigurator.pm_.c:361 ../../Xconfigurator.pm_.c:367
-#: ../../Xconfigurator.pm_.c:417 ../../Xconfigurator.pm_.c:1510
-#, c-format
-msgid "XFree %s"
-msgstr "XFree %s"
-
-#: ../../Xconfigurator.pm_.c:364
-#, fuzzy
-msgid "Which configuration of XFree do you want to have?"
-msgstr "Pe seurt enmont a vennit ouzhpennaƱ"
-
-#: ../../Xconfigurator.pm_.c:375
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:377 ../../Xconfigurator.pm_.c:410
-#, c-format
-msgid "Your card can have 3D hardware acceleration support with XFree %s."
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:379 ../../Xconfigurator.pm_.c:412
-#: ../../Xconfigurator.pm_.c:1510
-#, c-format
-msgid "XFree %s with 3D hardware acceleration"
-msgstr "XFree %s gant 3D"
-
-#: ../../Xconfigurator.pm_.c:387 ../../Xconfigurator.pm_.c:401
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER."
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:389 ../../Xconfigurator.pm_.c:403
-#, c-format
-msgid "XFree %s with EXPERIMENTAL 3D hardware acceleration"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:398
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:418
-msgid "Xpmac (installation display driver)"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:422
-msgid "XFree configuration"
-msgstr "Staliadur XFree86"
-
-#: ../../Xconfigurator.pm_.c:497
-msgid "Select the memory size of your graphics card"
-msgstr "Diuzit ment memor ho kartenn c'hrafek"
-
-#: ../../Xconfigurator.pm_.c:551
-msgid "Choose options for server"
-msgstr "Dibabit dibarzhoĆ¹ ar servijer"
-
-#: ../../Xconfigurator.pm_.c:575
-msgid "Choose a monitor"
-msgstr "Dibabit ur skramm"
-
-#: ../../Xconfigurator.pm_.c:575
-msgid "Monitor"
-msgstr "Skramm"
-
-#: ../../Xconfigurator.pm_.c:578
-msgid ""
-"The two critical parameters are the vertical refresh rate, which is the "
-"rate\n"
-"at which the whole screen is refreshed, and most importantly the horizontal\n"
-"sync rate, which is the rate at which scanlines are displayed.\n"
-"\n"
-"It is VERY IMPORTANT that you do not specify a monitor type with a sync "
-"range\n"
-"that is beyond the capabilities of your monitor: you may damage your "
-"monitor.\n"
-" If in doubt, choose a conservative setting."
-msgstr ""
-"An div arventenn dreistpouezus a zo ar feur freskaat a-serzh, da lavaret eo "
-"ar\n"
-"feur ma vez freskaet ar skramm a-bezh, ha pouezusuc'h c'hoazh ar feur "
-"kempredaƱ\n"
-"a-led, da lavaret eo ar feur ma vez diskwelet linennoĆ¹ skubaƱ.\n"
-"\n"
-"HOLLBOUEZHUS eo deoc'h na spisaat ur seurt skramm gant ur feur kempredaƱ\n"
-"a zo en tu-hont da varregezh ho skrammĀ : gallout a rafe gwastaƱ ho skramm\n"
-" M'hoc'h eus douetaƱs, dibabit ur c'hefluniadur fur."
-
-#: ../../Xconfigurator.pm_.c:585
-msgid "Horizontal refresh rate"
-msgstr "Feur freskaat a-led"
-
-#: ../../Xconfigurator.pm_.c:586
-msgid "Vertical refresh rate"
-msgstr "Feur freskaat a-serzh"
-
-#: ../../Xconfigurator.pm_.c:623
-msgid "Monitor not configured"
-msgstr "Skramm ket kefluniet"
-
-#: ../../Xconfigurator.pm_.c:626
-msgid "Graphics card not configured yet"
-msgstr "Kartenn c'hrafek ket kefluniet c'hoazh"
-
-#: ../../Xconfigurator.pm_.c:629
-msgid "Resolutions not chosen yet"
-msgstr "SpisterioĆ¹ ket dibabet c'hoazh"
-
-#: ../../Xconfigurator.pm_.c:647
-msgid "Do you want to test the configuration?"
-msgstr "Mennout a rit amprouiƱ ar c'hefluniadur ?"
-
-#: ../../Xconfigurator.pm_.c:651
-#, fuzzy
-msgid "Warning: testing this graphics card may freeze your computer"
-msgstr "Da ziwallĀ : arvarus eo amprouiƱ ar gartenn c'hrafek-maƱ"
-
-#: ../../Xconfigurator.pm_.c:654
-msgid "Test of the configuration"
-msgstr "AmprouiƱ ar c'hefluniadur"
-
-#: ../../Xconfigurator.pm_.c:693 ../../Xconfigurator.pm_.c:705
-msgid ""
-"\n"
-"try to change some parameters"
-msgstr ""
-"\n"
-"klaskit kemmaƱ arventennoĆ¹ 'zo"
-
-#: ../../Xconfigurator.pm_.c:693 ../../Xconfigurator.pm_.c:705
-msgid "An error occurred:"
-msgstr "C'hoarvezet eo ur faziĀ :"
-
-#: ../../Xconfigurator.pm_.c:734
-#, c-format
-msgid "Leaving in %d seconds"
-msgstr "Kuitaat e %d eilenn"
-
-#: ../../Xconfigurator.pm_.c:745
-msgid "Is this the correct setting?"
-msgstr "Ha reizh eo ar c'hefluniadur ?"
-
-#: ../../Xconfigurator.pm_.c:754
-msgid "An error occurred, try to change some parameters"
-msgstr "C'hoarvezet eo ur fazi, klaskit kemmaƱ arventennoĆ¹ 'zo"
-
-#: ../../Xconfigurator.pm_.c:825
-msgid "Resolution"
-msgstr "Spister"
-
-#: ../../Xconfigurator.pm_.c:877
-msgid "Choose the resolution and the color depth"
-msgstr "Dibabit ar spister ha donder al livioĆ¹"
-
-#: ../../Xconfigurator.pm_.c:879
-#, c-format
-msgid "Graphics card: %s"
-msgstr "Kartenn c'hrafekĀ : %s"
-
-#: ../../Xconfigurator.pm_.c:880
-#, c-format
-msgid "XFree86 server: %s"
-msgstr "Servijer XFree86Ā : %s"
-
-#: ../../Xconfigurator.pm_.c:894 ../../diskdrake/interactive.pm_.c:259
-#: ../../install_steps_interactive.pm_.c:208
-#, fuzzy
-msgid "More"
-msgstr "Dilec'hiaƱ"
-
-#: ../../Xconfigurator.pm_.c:894 ../../install_gtk.pm_.c:84
-#: ../../install_steps_gtk.pm_.c:328 ../../interactive.pm_.c:127
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_http.pm_.c:104
-#: ../../interactive_newt.pm_.c:170 ../../interactive_stdio.pm_.c:141
-#: ../../interactive_stdio.pm_.c:142 ../../my_gtk.pm_.c:701
-#: ../../my_gtk.pm_.c:1034 ../../my_gtk.pm_.c:1056
-#: ../../standalone/drakbackup_.c:2288 ../../standalone/drakbackup_.c:2359
-#: ../../standalone/drakbackup_.c:2375
-msgid "Ok"
-msgstr "Mat eo"
-
-#: ../../Xconfigurator.pm_.c:896 ../../network/netconnect.pm_.c:173
-#: ../../printerdrake.pm_.c:2473 ../../standalone/drakfloppy_.c:146
-#: ../../standalone/draknet_.c:275 ../../standalone/draknet_.c:278
-msgid "Expert Mode"
-msgstr "Mod mailh"
-
-#: ../../Xconfigurator.pm_.c:897
-msgid "Show all"
-msgstr "Diskouez pep tra"
-
-#: ../../Xconfigurator.pm_.c:942
-msgid "Resolutions"
-msgstr "SpisterioĆ¹"
-
-#: ../../Xconfigurator.pm_.c:1512
-#, c-format
-msgid "Keyboard layout: %s\n"
-msgstr "Reizhadur ar stokellaouegĀ : %s\n"
-
-#: ../../Xconfigurator.pm_.c:1513
-#, c-format
-msgid "Mouse type: %s\n"
-msgstr "Seurt logodennĀ : %s\n"
-
-#: ../../Xconfigurator.pm_.c:1514
-#, c-format
-msgid "Mouse device: %s\n"
-msgstr "Trobarzhell al logodennĀ : %s\n"
-
-#: ../../Xconfigurator.pm_.c:1515
-#, c-format
-msgid "Monitor: %s\n"
-msgstr "SkrammĀ : %s\n"
-
-#: ../../Xconfigurator.pm_.c:1516
-#, c-format
-msgid "Monitor HorizSync: %s\n"
-msgstr "KempredA-led ar skrammĀ : %s\n"
-
-#: ../../Xconfigurator.pm_.c:1517
-#, c-format
-msgid "Monitor VertRefresh: %s\n"
-msgstr "FreskA-serzh ar skrammĀ : %s\n"
-
-#: ../../Xconfigurator.pm_.c:1518
-#, c-format
-msgid "Graphics card: %s\n"
-msgstr "Kartenn c'hrafekĀ : %s\n"
-
-#: ../../Xconfigurator.pm_.c:1519
-#, c-format
-msgid "Graphics card identification: %s\n"
-msgstr "Anavezoud kartenn c'hrafekĀ : %s\n"
-
-#: ../../Xconfigurator.pm_.c:1520
-#, c-format
-msgid "Graphics memory: %s kB\n"
-msgstr "Memor c'hrafekĀ : %s ko\n"
-
-#: ../../Xconfigurator.pm_.c:1522
-#, c-format
-msgid "Color depth: %s\n"
-msgstr "Donder liv: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1523
-#, c-format
-msgid "Resolution: %s\n"
-msgstr "Spister: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1525
-#, c-format
-msgid "XFree86 server: %s\n"
-msgstr "Servijer XFree86Ā : %s\n"
-
-#: ../../Xconfigurator.pm_.c:1526
-#, c-format
-msgid "XFree86 driver: %s\n"
-msgstr "Sturier XFree86Ā : %s\n"
-
-#: ../../Xconfigurator.pm_.c:1544
-msgid "Preparing X-Window configuration"
-msgstr "O prientiƱ kefluniadur X-Window"
-
-#: ../../Xconfigurator.pm_.c:1564
-msgid "What do you want to do?"
-msgstr "Petra a vennit ober ? "
-
-#: ../../Xconfigurator.pm_.c:1569
-msgid "Change Monitor"
-msgstr "KemmaƱ ar skramm"
-
-#: ../../Xconfigurator.pm_.c:1570
-msgid "Change Graphics card"
-msgstr "KemmaƱ ar gartenn c'hrafek"
-
-#: ../../Xconfigurator.pm_.c:1573
-msgid "Change Server options"
-msgstr "KemmaƱ dibarzhoĆ¹ ar servijer"
-
-#: ../../Xconfigurator.pm_.c:1574
-msgid "Change Resolution"
-msgstr "KemmaƱ ar spister"
-
-#: ../../Xconfigurator.pm_.c:1575
-msgid "Show information"
-msgstr "Diskouez titouroĆ¹"
-
-#: ../../Xconfigurator.pm_.c:1576
-msgid "Test again"
-msgstr "AmprouiƱ adarre"
-
-#: ../../Xconfigurator.pm_.c:1577 ../../printerdrake.pm_.c:2476
-#: ../../standalone/logdrake_.c:225
-msgid "Quit"
-msgstr "Kuitaat"
-
-#: ../../Xconfigurator.pm_.c:1585
-#, fuzzy, c-format
-msgid ""
-"Keep the changes?\n"
-"The current configuration is:\n"
-"\n"
-"%s"
-msgstr "Derc'hel ar c'hefluniadur IP o ren"
-
-#: ../../Xconfigurator.pm_.c:1606
-msgid "Graphical interface at startup"
-msgstr "X pa loc'her"
-
-#: ../../Xconfigurator.pm_.c:1607
-msgid ""
-"I can setup your computer to automatically start the graphical interface "
-"(XFree) upon booting.\n"
-"Would you like XFree to start when you reboot?"
-msgstr ""
-"KefluniaƱ ho urzhiataer evit laƱsaƱ X ent emgefreek pa loc'ho a c'hellaƱ.\n"
-"Mennout a rit laƱsaƱ X pa adloc'hit ?"
-
-#: ../../Xconfigurator.pm_.c:1613
-#, c-format
-msgid "Please relog into %s to activate the changes"
-msgstr "Adereit ouzh %s evit bevaat ar c'hemmoĆ¹ mar plij"
-
-#: ../../Xconfigurator.pm_.c:1628
-msgid "Please log out and then use Ctrl-Alt-BackSpace"
-msgstr "Dizereit mar plij ha neuze implijit Ctrl-Alt-WarGil"
-
-#: ../../Xconfigurator_consts.pm_.c:6
-msgid "256 colors (8 bits)"
-msgstr "256 liv (8 bit)"
-
-#: ../../Xconfigurator_consts.pm_.c:7
-msgid "32 thousand colors (15 bits)"
-msgstr "32 mil liv (15 bit)"
-
-#: ../../Xconfigurator_consts.pm_.c:8
-msgid "65 thousand colors (16 bits)"
-msgstr "65 mil liv (16 bit)"
-
-#: ../../Xconfigurator_consts.pm_.c:9
-msgid "16 million colors (24 bits)"
-msgstr "16 milion a livioĆ¹ (24 bit)"
-
-#: ../../Xconfigurator_consts.pm_.c:10
-msgid "4 billion colors (32 bits)"
-msgstr "4 miliard a livioĆ¹ (32 bit)"
-
-#: ../../Xconfigurator_consts.pm_.c:113
-msgid "256 kB"
-msgstr "256 ko"
-
-#: ../../Xconfigurator_consts.pm_.c:114
-msgid "512 kB"
-msgstr "512 ko"
-
-#: ../../Xconfigurator_consts.pm_.c:115
-msgid "1 MB"
-msgstr "1 Mo"
-
-#: ../../Xconfigurator_consts.pm_.c:116
-msgid "2 MB"
-msgstr "2 Mo"
-
-#: ../../Xconfigurator_consts.pm_.c:117
-msgid "4 MB"
-msgstr "4 Mo"
-
-#: ../../Xconfigurator_consts.pm_.c:118
-msgid "8 MB"
-msgstr "8 Mo"
-
-#: ../../Xconfigurator_consts.pm_.c:119
-msgid "16 MB"
-msgstr "16 Mo"
-
-#: ../../Xconfigurator_consts.pm_.c:120
-msgid "32 MB"
-msgstr "32 Mo"
-
-#: ../../Xconfigurator_consts.pm_.c:121
-msgid "64 MB or more"
-msgstr "64 Mo pe vuioc'h"
-
-#: ../../Xconfigurator_consts.pm_.c:129
-msgid "Standard VGA, 640x480 at 60 Hz"
-msgstr "VGA standard, 640x480 da 60 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:130
-msgid "Super VGA, 800x600 at 56 Hz"
-msgstr "Gour-VGA, 800x600 da 56 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:131
-msgid "8514 Compatible, 1024x768 at 87 Hz interlaced (no 800x600)"
-msgstr "Kenglotus 8514, 1024x768 da 87 Hz pebeilet (800x600 ebet)"
-
-#: ../../Xconfigurator_consts.pm_.c:132
-msgid "Super VGA, 1024x768 at 87 Hz interlaced, 800x600 at 56 Hz"
-msgstr "Gour-VGA, 1024x768 da 87 Hz pebeilet, 800x600 da 56 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:133
-msgid "Extended Super VGA, 800x600 at 60 Hz, 640x480 at 72 Hz"
-msgstr "Gour-VGA astennet, 800x600 da 60 Hz, 640x480 da 72 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:134
-msgid "Non-Interlaced SVGA, 1024x768 at 60 Hz, 800x600 at 72 Hz"
-msgstr "G-VGA nann-pebeilet, 1024x768 da 60 Hz, 800x600 da 72 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:135
-msgid "High Frequency SVGA, 1024x768 at 70 Hz"
-msgstr "G-VGA talm uhel, 1024x768 da 70 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:136
-msgid "Multi-frequency that can do 1280x1024 at 60 Hz"
-msgstr "Lies-talm a c'hell ober 1280x1024 da 60 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:137
-msgid "Multi-frequency that can do 1280x1024 at 74 Hz"
-msgstr "Lies-talm a c'hell ober 1280x1024 da 74 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:138
-msgid "Multi-frequency that can do 1280x1024 at 76 Hz"
-msgstr "Lies-talm a c'hell ober 1280x1024 da 76 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:139
-msgid "Monitor that can do 1600x1200 at 70 Hz"
-msgstr "Skramm a c'hell ober 1600x1200 da 70 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:140
-msgid "Monitor that can do 1600x1200 at 76 Hz"
-msgstr "Skramm a c'hell ober 1600x1200 da 76 Hz"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141
-msgid "First sector of boot partition"
-msgstr "Rann gentaƱ ar parzhadur loc'haƱ"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141 ../../any.pm_.c:218
-msgid "First sector of drive (MBR)"
-msgstr "Rann gentaƱ ar bladenn (MBR)"
-
-#: ../../any.pm_.c:120
-msgid "SILO Installation"
-msgstr "Staliadur SILO"
-
-#: ../../any.pm_.c:121 ../../any.pm_.c:134
-msgid "Where do you want to install the bootloader?"
-msgstr "Pelec'h e mennit staliaƱ ar c'harger loc'haƱ ?"
-
-#: ../../any.pm_.c:133
-msgid "LILO/grub Installation"
-msgstr "Staliadur LILO/grub"
-
-#: ../../any.pm_.c:145 ../../any.pm_.c:159
-msgid "SILO"
-msgstr "SILO"
-
-#: ../../any.pm_.c:147
-msgid "LILO with text menu"
-msgstr "LILO gant meuziad skrid"
-
-#: ../../any.pm_.c:148 ../../any.pm_.c:159
-msgid "LILO with graphical menu"
-msgstr "LILO gant meuziad c'hrafek"
-
-#: ../../any.pm_.c:151
-msgid "Grub"
-msgstr "Grub"
-
-#: ../../any.pm_.c:155
-msgid "Boot from DOS/Windows (loadlin)"
-msgstr "Loc'haƱ abaoe DOS/Windows (loadlin)"
-
-#: ../../any.pm_.c:157 ../../any.pm_.c:159
-msgid "Yaboot"
-msgstr "Yaboot"
-
-#: ../../any.pm_.c:166 ../../any.pm_.c:198
-msgid "Bootloader main options"
-msgstr "DibarzhoĆ¹ pennaƱ ar c'harger loc'haƱ"
-
-#: ../../any.pm_.c:167 ../../any.pm_.c:199
-msgid "Bootloader to use"
-msgstr "C'harger loc'haƱ da implijout"
-
-#: ../../any.pm_.c:169
-msgid "Bootloader installation"
-msgstr "Staliadur c'harger loc'haƱ"
-
-#: ../../any.pm_.c:171 ../../any.pm_.c:201
-msgid "Boot device"
-msgstr "Trobarzhell loc'haƱ"
-
-#: ../../any.pm_.c:172
-msgid "LBA (doesn't work on old BIOSes)"
-msgstr "LBA (ne da ket en-dro gant BIOSoĆ¹ kozh)"
-
-#: ../../any.pm_.c:173
-msgid "Compact"
-msgstr "Fetis"
-
-#: ../../any.pm_.c:173
-msgid "compact"
-msgstr "fetis"
-
-#: ../../any.pm_.c:174 ../../any.pm_.c:298
-msgid "Video mode"
-msgstr "Mod video"
-
-#: ../../any.pm_.c:176
-msgid "Delay before booting default image"
-msgstr "Gedvezh kent loc'haƱ ar skeudenn dre ziouer"
-
-#: ../../any.pm_.c:178 ../../any.pm_.c:796
-#: ../../install_steps_interactive.pm_.c:1087 ../../network/modem.pm_.c:48
-#: ../../printerdrake.pm_.c:710 ../../printerdrake.pm_.c:808
-#: ../../standalone/draknet_.c:625
-msgid "Password"
-msgstr "Tremenger"
-
-#: ../../any.pm_.c:179 ../../any.pm_.c:797
-#: ../../install_steps_interactive.pm_.c:1088
-msgid "Password (again)"
-msgstr "Tremenger (adarre)"
-
-#: ../../any.pm_.c:180
-msgid "Restrict command line options"
-msgstr "Strishaat dibarzhoĆ¹ al linenn urzhiaƱ"
-
-#: ../../any.pm_.c:180
-msgid "restrict"
-msgstr "strishaat"
-
-#: ../../any.pm_.c:182
-msgid "Clean /tmp at each boot"
-msgstr "SkaraƱ /tmp bep ma loc'her"
-
-#: ../../any.pm_.c:183
-#, c-format
-msgid "Precise RAM size if needed (found %d MB)"
-msgstr "Spisait ment ar memor vev diouzh ret (kavet %d Mo)"
-
-#: ../../any.pm_.c:185
-msgid "Enable multi profiles"
-msgstr "Aotren lies trolinenn"
-
-#: ../../any.pm_.c:189
-msgid "Give the ram size in MB"
-msgstr "Roit ment ar memor vev e Mo"
-
-#: ../../any.pm_.c:191
-msgid ""
-"Option ``Restrict command line options'' is of no use without a password"
-msgstr "Didalvout eo ``Strishaat dibarzhoĆ¹ al linenn urzhiaƱ'' hep tremenger"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../diskdrake/interactive.pm_.c:1143
-#: ../../install_steps_interactive.pm_.c:1082
-msgid "Please try again"
-msgstr "Klaskit adarre mar plij"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../install_steps_interactive.pm_.c:1082
-msgid "The passwords do not match"
-msgstr "An tremegerioĆ¹ ne glot ket"
-
-#: ../../any.pm_.c:200
-msgid "Init Message"
-msgstr ""
-
-#: ../../any.pm_.c:202
-msgid "Open Firmware Delay"
-msgstr ""
-
-#: ../../any.pm_.c:203
-msgid "Kernel Boot Timeout"
-msgstr ""
-
-#: ../../any.pm_.c:204
-msgid "Enable CD Boot?"
-msgstr ""
-
-#: ../../any.pm_.c:205
-msgid "Enable OF Boot?"
-msgstr ""
-
-#: ../../any.pm_.c:206
-msgid "Default OS?"
-msgstr "RK dre ziouer"
-
-#: ../../any.pm_.c:240
-msgid ""
-"You decided to install the bootloader on a partition.\n"
-"This implies you already have a bootloader on the hard drive you boot (eg: "
-"System Commander).\n"
-"\n"
-"On which drive are you booting?"
-msgstr ""
-
-#: ../../any.pm_.c:255
-msgid ""
-"Here are the entries on your boot menu so far.\n"
-"You can add some more or change the existing ones."
-msgstr ""
-"Setu da heul an enmontoĆ¹ liesseurt.\n"
-"Gallout a rit ouzhpennaƱ lod pe gemmaƱ a re a zo."
-
-#: ../../any.pm_.c:265 ../../standalone/drakbackup_.c:741
-#: ../../standalone/drakbackup_.c:850 ../../standalone/drakfont_.c:790
-#: ../../standalone/drakfont_.c:827
-msgid "Add"
-msgstr "OuzhpennaƱ"
-
-#: ../../any.pm_.c:265 ../../any.pm_.c:784 ../../diskdrake/hd_gtk.pm_.c:153
-#: ../../diskdrake/removable.pm_.c:27 ../../diskdrake/smbnfs_gtk.pm_.c:86
-#: ../../interactive_http.pm_.c:153
-msgid "Done"
-msgstr "Graet"
-
-#: ../../any.pm_.c:265
-msgid "Modify"
-msgstr "KemmaƱ"
-
-#: ../../any.pm_.c:273
-msgid "Which type of entry do you want to add?"
-msgstr "Pe seurt enmont a vennit ouzhpennaƱ"
-
-#: ../../any.pm_.c:274 ../../standalone/drakbackup_.c:884
-msgid "Linux"
-msgstr "Linux"
-
-#: ../../any.pm_.c:274
-msgid "Other OS (SunOS...)"
-msgstr "ReizhiadoĆ¹ (SunOS...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (MacOS...)"
-msgstr "ReizhiadoĆ¹ (MacOS...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (windows...)"
-msgstr "ReizhiadoĆ¹ (windows...)"
-
-#: ../../any.pm_.c:294
-msgid "Image"
-msgstr "Skeudenn"
-
-#: ../../any.pm_.c:295 ../../any.pm_.c:306
-msgid "Root"
-msgstr "Gwrizienn"
-
-#: ../../any.pm_.c:296 ../../any.pm_.c:325
-msgid "Append"
-msgstr "OuzhpennaƱ"
-
-#: ../../any.pm_.c:300
-msgid "Initrd"
-msgstr "Initrd"
-
-#: ../../any.pm_.c:301
-msgid "Read-write"
-msgstr "Lenn-skrivaƱ "
-
-#: ../../any.pm_.c:308
-msgid "Table"
-msgstr "Taolenn"
-
-#: ../../any.pm_.c:309
-msgid "Unsafe"
-msgstr "Arvarus"
-
-#: ../../any.pm_.c:316 ../../any.pm_.c:321 ../../any.pm_.c:324
-msgid "Label"
-msgstr "Skridennad"
-
-#: ../../any.pm_.c:318 ../../any.pm_.c:329
-msgid "Default"
-msgstr "Dre ziouer"
-
-#: ../../any.pm_.c:326
-msgid "Initrd-size"
-msgstr "Ment an Initrd"
-
-#: ../../any.pm_.c:328
-msgid "NoVideo"
-msgstr "N'ev ket video"
-
-#: ../../any.pm_.c:336
-msgid "Remove entry"
-msgstr "Dilemel an enmont"
-
-#: ../../any.pm_.c:339
-msgid "Empty label not allowed"
-msgstr "Berzet eo ar skridennadoĆ¹ goullo"
-
-#: ../../any.pm_.c:340
-msgid "You must specify a kernel image"
-msgstr ""
-
-#: ../../any.pm_.c:340
-#, fuzzy
-msgid "You must specify a root partition"
-msgstr "Ret eo deoc'h kaout ur parzhadur disloaƱ"
-
-#: ../../any.pm_.c:341
-msgid "This label is already used"
-msgstr "En implij eo ar skridennad-se endeo"
-
-#: ../../any.pm_.c:656
-#, c-format
-msgid "Found %s %s interfaces"
-msgstr "Kavet etrefas %s %s"
-
-#: ../../any.pm_.c:657
-msgid "Do you have another one?"
-msgstr "Hag un all hoc'h eus ?"
-
-#: ../../any.pm_.c:658
-#, c-format
-msgid "Do you have any %s interfaces?"
-msgstr "Hag un etrefas %s bennak a zo ganeoc'h ?"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:832 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1033
-msgid "No"
-msgstr "Ket"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:831 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1033
-msgid "Yes"
-msgstr "Ya"
-
-#: ../../any.pm_.c:661
-msgid "See hardware info"
-msgstr "Gwelet titouroĆ¹ periantel"
-
-#. -PO: the first %s is the card type (scsi, network, sound,...)
-#. -PO: the second is the vendor+model name
-#: ../../any.pm_.c:695
-#, c-format
-msgid "Installing driver for %s card %s"
-msgstr "O staliaƱ ur sturier evit kartenn %s %s"
-
-#: ../../any.pm_.c:696
-#, c-format
-msgid "(module %s)"
-msgstr "(mollad %s)"
-
-#. -PO: the %s is the driver type (scsi, network, sound,...)
-#: ../../any.pm_.c:707
-#, c-format
-msgid "Which %s driver should I try?"
-msgstr "Pe sturier %s a zlefen amprouiƱ ?"
-
-#: ../../any.pm_.c:715
-#, c-format
-msgid ""
-"In some cases, the %s driver needs to have extra information to work\n"
-"properly, although it normally works fine without. Would you like to "
-"specify\n"
-"extra options for it or allow the driver to probe your machine for the\n"
-"information it needs? Occasionally, probing will hang a computer, but it "
-"should\n"
-"not cause any damage."
-msgstr ""
-"E degouezhoĆ¹ 'zo, ar sturier %s en deus ezhomm titouroĆ¹ ouzhpenn evit mont\n"
-"en-dro reizh, daoust ma da en-dro mat hepto peurvuiaƱ. Ha mennout a rit "
-"spisaat\n"
-"dibaboĆ¹ ouzphenn evitaƱ, pe aotren d'ar sturier amprouiƱ ho penvek evit\n"
-"an titouroĆ¹ en deus ezhomm ? A-wechoĆ¹, amprouiƱ a c'hell sac'haƱ un "
-"urzhiataer,\n"
-"hogen ne raio reuz ebet."
-
-#: ../../any.pm_.c:720
-msgid "Autoprobe"
-msgstr "EmbrouiƱ"
-
-#: ../../any.pm_.c:720
-msgid "Specify options"
-msgstr "Spisait dibarzhoĆ¹"
-
-#: ../../any.pm_.c:725
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Note that any address should be entered with the prefix 0x like '0x123'"
-msgstr ""
-
-#: ../../any.pm_.c:731
-#, c-format
-msgid ""
-"You may now provide options to module %s.\n"
-"Options are in format ``name=value name2=value2 ...''.\n"
-"For instance, ``io=0x300 irq=7''"
-msgstr ""
-"BremaƱ e c'hellit pourvezaƱ e zibarzhoĆ¹ d'ar mollad %s.\n"
-"Diouzh ar furmad ``anv=talvoud anv2=talvoud2...'' eo an dibaboĆ¹.\n"
-"Da skouer, ``io=0x300 irq=7''"
-
-#: ../../any.pm_.c:734
-msgid "Module options:"
-msgstr "DibarzhoĆ¹ ar molladĀ :"
-
-#: ../../any.pm_.c:745
-#, c-format
-msgid ""
-"Loading module %s failed.\n"
-"Do you want to try again with other parameters?"
-msgstr ""
-"KargaƱ ar mollad %s a zo sac'het.\n"
-"Mennout a rit klask adarre gant arventennoĆ¹ all ?"
-
-#: ../../any.pm_.c:761
-msgid "access to X programs"
-msgstr ""
-
-#: ../../any.pm_.c:762
-msgid "access to rpm tools"
-msgstr ""
-
-#: ../../any.pm_.c:763
-msgid "allow \"su\""
-msgstr ""
-
-#: ../../any.pm_.c:764
-msgid "access to administrative files"
-msgstr ""
-
-#: ../../any.pm_.c:769
-#, c-format
-msgid "(already added %s)"
-msgstr "(ouzhpennet %s endeo)"
-
-#: ../../any.pm_.c:774
-msgid "This password is too simple"
-msgstr "Re eeun eo an tremeger"
-
-#: ../../any.pm_.c:775
-msgid "Please give a user name"
-msgstr "Roit un anv arveriad mar plij"
-
-#: ../../any.pm_.c:776
-msgid ""
-"The user name must contain only lower cased letters, numbers, `-' and `_'"
-msgstr ""
-"An anv arveriad a zle bezaƱ ennaƱ lizherennoĆ¹ munut, sifroĆ¹, `-' ha `_' "
-"hepken"
-
-#: ../../any.pm_.c:777
-msgid "This user name is already added"
-msgstr "En implij eo an anv arveriad-se endeo"
-
-#: ../../any.pm_.c:781
-msgid "Add user"
-msgstr "OuzhpennaƱ un arveriad"
-
-#: ../../any.pm_.c:782
-#, c-format
-msgid ""
-"Enter a user\n"
-"%s"
-msgstr ""
-"Skrivit un arveriad\n"
-"%s"
-
-#: ../../any.pm_.c:783
-msgid "Accept user"
-msgstr "Aotren an arveriad"
-
-#: ../../any.pm_.c:794
-msgid "Real name"
-msgstr "Anv gwirion"
-
-#: ../../any.pm_.c:795 ../../printerdrake.pm_.c:709
-#: ../../printerdrake.pm_.c:807
-msgid "User name"
-msgstr "Anv arveriad"
-
-#: ../../any.pm_.c:798
-msgid "Shell"
-msgstr "Shell"
-
-#: ../../any.pm_.c:800
-msgid "Icon"
-msgstr "Arlun"
-
-#: ../../any.pm_.c:828
-msgid "Autologin"
-msgstr "Autologin"
-
-#: ../../any.pm_.c:829
-#, fuzzy
-msgid ""
-"I can set up your computer to automatically log on one user.\n"
-"Do you want to use this feature?"
-msgstr ""
-"KefluniaƱ ho urzhiataer evit laƱsaƱ X ent emgefreek pa loc'ho a c'hellaƱ.\n"
-"Mennout a rit laƱsaƱ X pa adloc'hit ?"
-
-#: ../../any.pm_.c:833
-msgid "Choose the default user:"
-msgstr "Dibabit ar arveriad dre ziouer"
-
-#: ../../any.pm_.c:834
-#, fuzzy
-msgid "Choose the window manager to run:"
-msgstr "Dibabit ar benveg a vennit staliaƱ"
-
-#: ../../any.pm_.c:849
-msgid "Please choose a language to use."
-msgstr "Diuzit ar yezh da implijout, mar plij."
-
-#: ../../any.pm_.c:851
-msgid ""
-"Mandrake Linux can support multiple languages. Select\n"
-"the languages you would like to install. They will be available\n"
-"when your installation is complete and you restart your system."
-msgstr "Gallout a rit dibab yezhoĆ¹ all hag a vo hegerz goude staliaƱ"
-
-#: ../../any.pm_.c:865 ../../install_steps_interactive.pm_.c:689
-#: ../../standalone/drakxtv_.c:78
-msgid "All"
-msgstr "An holl"
-
-#: ../../any.pm_.c:957
-msgid "Allow all users"
-msgstr "AotreiƱ an holl dud"
-
-#: ../../any.pm_.c:957
-msgid "Custom"
-msgstr "PersonelaƱ"
-
-#: ../../any.pm_.c:957
-msgid "No sharing"
-msgstr "N'ev ket lodaƱ"
-
-#: ../../any.pm_.c:967 ../../network/smbnfs.pm_.c:45
-#, fuzzy, c-format
-msgid "The package %s needs to be installed. Do you want to install it?"
-msgstr ""
-"Bremanaet e tle bezaƱ ar pabak-maƱ\n"
-"Ha sur oc'h e mennit e ziuzaƱ ?"
-
-#: ../../any.pm_.c:970
-msgid ""
-"You can export using NFS or Samba. Please select which you'd like to use."
-msgstr ""
-
-#: ../../any.pm_.c:978 ../../network/smbnfs.pm_.c:49
-#, c-format
-msgid "Mandatory package %s is missing"
-msgstr ""
-
-#: ../../any.pm_.c:984
-msgid ""
-"Would you like to allow users to share some of their directories?\n"
-"Allowing this will permit users to simply click on \"Share\" in konqueror "
-"and nautilus.\n"
-"\n"
-"\"Custom\" permit a per-user granularity.\n"
-msgstr ""
-
-#: ../../any.pm_.c:998 ../../bootlook.pm_.c:161
-#: ../../diskdrake/smbnfs_gtk.pm_.c:85 ../../install_steps_gtk.pm_.c:464
-#: ../../install_steps_gtk.pm_.c:522 ../../install_steps_interactive.pm_.c:564
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_stdio.pm_.c:141
-#: ../../my_gtk.pm_.c:702 ../../my_gtk.pm_.c:705 ../../my_gtk.pm_.c:1034
-#: ../../network/netconnect.pm_.c:47 ../../printerdrake.pm_.c:1588
-#: ../../standalone/drakautoinst_.c:204 ../../standalone/drakbackup_.c:2254
-#: ../../standalone/drakbackup_.c:2279 ../../standalone/drakbackup_.c:2300
-#: ../../standalone/drakbackup_.c:2321 ../../standalone/drakbackup_.c:2339
-#: ../../standalone/drakbackup_.c:2387 ../../standalone/drakbackup_.c:2407
-#: ../../standalone/drakbackup_.c:2426 ../../standalone/drakfloppy_.c:235
-#: ../../standalone/drakfloppy_.c:384 ../../standalone/drakfont_.c:768
-#: ../../standalone/drakgw_.c:598 ../../standalone/draknet_.c:116
-#: ../../standalone/draknet_.c:148 ../../standalone/draknet_.c:290
-#: ../../standalone/draknet_.c:538 ../../standalone/draknet_.c:680
-#: ../../standalone/logdrake_.c:225 ../../standalone/logdrake_.c:527
-#: ../../standalone/tinyfirewall_.c:65
-msgid "Cancel"
-msgstr "NullaƱ"
-
-#: ../../any.pm_.c:998
-msgid "Launch userdrake"
-msgstr ""
-
-#: ../../any.pm_.c:1000
-msgid ""
-"The per-user sharing uses the group \"fileshare\". \n"
-"You can use userdrake to add a user in this group."
-msgstr ""
-
-#: ../../any.pm_.c:1037
-msgid "Welcome To Crackers"
-msgstr "Bezit deuet mat, preizherien !"
-
-#: ../../any.pm_.c:1038
-msgid "Poor"
-msgstr "Paour"
-
-#: ../../any.pm_.c:1039 ../../mouse.pm_.c:31
-msgid "Standard"
-msgstr "Skouer"
-
-#: ../../any.pm_.c:1040
-msgid "High"
-msgstr "Uhel"
-
-#: ../../any.pm_.c:1041
-#, fuzzy
-msgid "Higher"
-msgstr "Uhel"
-
-#: ../../any.pm_.c:1042
-msgid "Paranoid"
-msgstr "Ankeniet"
-
-#: ../../any.pm_.c:1045
-msgid ""
-"This level is to be used with care. It makes your system more easy to use,\n"
-"but very sensitive: it must not be used for a machine connected to others\n"
-"or to the Internet. There is no password access."
-msgstr ""
-"Ret eo implijout al live-maƱ gant evezh. Ober a ra d'ho reizhiad bezaƱ\n"
-"aesoc'h da implijout, hogen kizidig-treĀ : arabat e implj evit un ardivink\n"
-"kevreet ouzh lod all pe ouzh ar genrouedad. N'eus ket a haeziƱ dre dremenger."
-
-#: ../../any.pm_.c:1048
-msgid ""
-"Password are now enabled, but use as a networked computer is still not "
-"recommended."
-msgstr ""
-"Gweredekaet eo bremaƱ an tremenger, hogen dierbedet eo c'hoazh an implij en "
-"ur rouedad"
-
-#: ../../any.pm_.c:1049
-#, fuzzy
-msgid ""
-"This is the standard security recommended for a computer that will be used "
-"to connect to the Internet as a client."
-msgstr ""
-"Setu al live surentez standard a vez erbedet evit un urzhiataer a vo "
-"implijet\n"
-"evit kevreaƱ evel arval ouzh ar Genrouedad. BremaƱ ez eus gwiriadennoĆ¹ "
-"surentez."
-
-#: ../../any.pm_.c:1050
-msgid ""
-"There are already some restrictions, and more automatic checks are run every "
-"night."
-msgstr ""
-
-#: ../../any.pm_.c:1051
-#, fuzzy
-msgid ""
-"With this security level, the use of this system as a server becomes "
-"possible.\n"
-"The security is now high enough to use the system as a server which can "
-"accept\n"
-"connections from many clients. Note: if your machine is only a client on the "
-"Internet, you should better choose a lower level."
-msgstr ""
-"Gant al live surentez-maƱ e teu posupl implijout ar reizhiad-maƱ evel ur "
-"servijer.\n"
-"Uhel a-walc'h eo bremaƱ ar surentez evit implijout ar reizhiad evel ur "
-"servijer\n"
-"o tigemer kevreadennoĆ¹ a-berzh arvaloĆ¹ niverus."
-
-#: ../../any.pm_.c:1054
-#, fuzzy
-msgid ""
-"This is similar to the previous level, but the system is entirely closed and "
-"security features are at their maximum."
-msgstr ""
-"Kemer a reomp arc'hweloĆ¹ al live 4, hogen bremaƱ eo peurserret ar reizhiad.\n"
-"Arc'hweloĆ¹ surentez a zo en o muiaƱ"
-
-#: ../../any.pm_.c:1059
-msgid "Please choose the desired security level."
-msgstr "Dibabit al live surentez"
-
-#: ../../any.pm_.c:1062
-msgid "Security level"
-msgstr "Live surentez"
-
-#: ../../any.pm_.c:1064
-msgid "Use libsafe for servers"
-msgstr "Implijit libsafe gant ar servijer"
-
-#: ../../any.pm_.c:1065
-msgid ""
-"A library which defends against buffer overflow and format string attacks."
-msgstr ""
-
-#: ../../any.pm_.c:1067
-msgid "Security user (login or email)"
-msgstr ""
-
-# NOTE: this message will be displayed at boot time; that is
-# only the ascii charset will be available on most machines
-# so use only 7bit for this message (and do transliteration or
-# leave it in English, as it is the best for your language)
-#
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#: ../../bootloader.pm_.c:354
-#, c-format
-msgid ""
-"Welcome to %s the operating system chooser!\n"
-"\n"
-"Choose an operating system in the list above or\n"
-"wait %d seconds for default boot.\n"
-"\n"
-msgstr ""
-"Degemer mat e %s, an dibaber reizhiad oberian~ !\n"
-"\n"
-"Dibabit an dibaber reizhiad pe\n"
-"gortozit %d eilennoĆ¹\n"
-"\n"
-
-# NOTE: this message will be displayed by grub at boot time; that is
-# using the BIOS font; that means cp437 charset on 99.99% of PC computers
-# out there. It is the nsuggested that for non latin languages an ascii
-# transliteration be used; or maybe the english text be used; as it is best
-#
-# The lines must fit on screen, aka length < 80
-# and only one line per string for the GRUB messages
-#
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:910
-msgid "Welcome to GRUB the operating system chooser!"
-msgstr "Degemer mat e GRUB an dibaber reizhiad oberiaĀ¤ !"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:913
-#, c-format
-msgid "Use the %c and %c keys for selecting which entry is highlighted."
-msgstr "Implijit ar stokelloĆ¹ %c ha %c evit diuz pe enmont zo war wel"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:916
-msgid "Press enter to boot the selected OS, 'e' to edit the"
-msgstr "Stokit enkas evit loc'haĀ¤ ar RK diuzet, 'e' evit aozaĀ¤ an"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:919
-msgid "commands before booting, or 'c' for a command-line."
-msgstr "urzhiadoĀ— kent loc'haĀ¤, pe 'c' evit ul linenn-urzhiaĀ¤."
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:922
-#, c-format
-msgid "The highlighted entry will be booted automatically in %d seconds."
-msgstr "An enmont war wel a vo loc'het ent emgefreek e %d eilenn."
-
-#: ../../bootloader.pm_.c:926
-msgid "not enough room in /boot"
-msgstr ""
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#. -PO: so you may need to put them in English or in a different language if MS-windows doesn't exist in your language
-#: ../../bootloader.pm_.c:1026
-msgid "Desktop"
-msgstr "Gorretaol"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#: ../../bootloader.pm_.c:1028
-msgid "Start Menu"
-msgstr "Meuziad LaƱsaƱ"
-
-#: ../../bootloader.pm_.c:1047
-#, fuzzy, c-format
-msgid "You can't install the bootloader on a %s partition\n"
-msgstr "Pelec'h e mennit staliaƱ ar c'harger loc'haƱ ?"
-
-#: ../../bootlook.pm_.c:46
-msgid "no help implemented yet.\n"
-msgstr "N'ev ket skoazell.\n"
-
-#: ../../bootlook.pm_.c:62
-#, fuzzy
-msgid "Boot Style Configuration"
-msgstr "Kefluniadur goude staliaƱ"
-
-#: ../../bootlook.pm_.c:79 ../../standalone/drakfloppy_.c:82
-#: ../../standalone/logdrake_.c:101
-msgid "/_File"
-msgstr "/_Restr"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/drakfloppy_.c:83
-#: ../../standalone/logdrake_.c:107
-msgid "/File/_Quit"
-msgstr "/Restr/_Kuitaat"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/drakfloppy_.c:83
-#: ../../standalone/logdrake_.c:107
-msgid "<control>Q"
-msgstr ""
-
-#: ../../bootlook.pm_.c:91
-msgid "NewStyle Categorizing Monitor"
-msgstr ""
-
-#: ../../bootlook.pm_.c:92
-#, fuzzy
-msgid "NewStyle Monitor"
-msgstr "Skramm"
-
-#: ../../bootlook.pm_.c:93
-#, fuzzy
-msgid "Traditional Monitor"
-msgstr "KemmaƱ ar skramm"
-
-#: ../../bootlook.pm_.c:94
-msgid "Traditional Gtk+ Monitor"
-msgstr ""
-
-#: ../../bootlook.pm_.c:95
-msgid "Launch Aurora at boot time"
-msgstr ""
-
-#: ../../bootlook.pm_.c:98
-#, fuzzy
-msgid "Lilo/grub mode"
-msgstr "Anv domani"
-
-#: ../../bootlook.pm_.c:98
-#, fuzzy
-msgid "Yaboot mode"
-msgstr "Trobarzhell loc'haƱ"
-
-#: ../../bootlook.pm_.c:104
-#, fuzzy, c-format
-msgid ""
-"You are currently using %s as your boot manager.\n"
-"Click on Configure to launch the setup wizard."
-msgstr "Lugerezh ar voullerez"
-
-#: ../../bootlook.pm_.c:106 ../../standalone/drakbackup_.c:1457
-#: ../../standalone/drakbackup_.c:1468 ../../standalone/drakgw_.c:592
-#: ../../standalone/tinyfirewall_.c:59
-msgid "Configure"
-msgstr "KefluniaƱ"
-
-#: ../../bootlook.pm_.c:141
-msgid "System mode"
-msgstr ""
-
-#: ../../bootlook.pm_.c:143
-msgid "Launch the graphical environment when your system starts"
-msgstr ""
-
-#: ../../bootlook.pm_.c:148
-msgid "No, I don't want autologin"
-msgstr ""
-
-#: ../../bootlook.pm_.c:150
-msgid "Yes, I want autologin with this (user, desktop)"
-msgstr ""
-
-#: ../../bootlook.pm_.c:160 ../../network/netconnect.pm_.c:102
-#: ../../standalone/drakbackup_.c:2431 ../../standalone/drakbackup_.c:3335
-#: ../../standalone/drakfloppy_.c:377 ../../standalone/drakfont_.c:537
-#: ../../standalone/drakfont_.c:658 ../../standalone/drakfont_.c:721
-#: ../../standalone/drakfont_.c:766 ../../standalone/draknet_.c:109
-#: ../../standalone/draknet_.c:141 ../../standalone/draknet_.c:297
-#: ../../standalone/draknet_.c:436 ../../standalone/draknet_.c:522
-#: ../../standalone/draknet_.c:565 ../../standalone/draknet_.c:666
-#: ../../standalone/logdrake_.c:520
-msgid "OK"
-msgstr "YA"
-
-#: ../../bootlook.pm_.c:229
-#, c-format
-msgid "can not open /etc/inittab for reading: %s"
-msgstr ""
-
-#: ../../common.pm_.c:94
-msgid "GB"
-msgstr "Go"
-
-#: ../../common.pm_.c:94
-msgid "KB"
-msgstr "Ko"
-
-#: ../../common.pm_.c:94
-msgid "MB"
-msgstr "Mo"
-
-#: ../../common.pm_.c:102
-msgid "TB"
-msgstr "To"
-
-#: ../../common.pm_.c:110
-#, c-format
-msgid "%d minutes"
-msgstr "%d munutennoĆ¹"
-
-#: ../../common.pm_.c:112
-msgid "1 minute"
-msgstr "1 munutenn"
-
-#: ../../common.pm_.c:114
-#, c-format
-msgid "%d seconds"
-msgstr "%d eilenn"
-
-#: ../../common.pm_.c:159
-#, fuzzy
-msgid "Can't make screenshots before partitioning"
-msgstr "N'hellan ouzpennaƱ parzhadur ebet ken"
-
-#: ../../common.pm_.c:166
-#, fuzzy, c-format
-msgid "Screenshots will be available after install in %s"
-msgstr "Gallout a rit dibab yezhoĆ¹ all hag a vo hegerz goude staliaƱ"
-
-#: ../../crypto.pm_.c:12 ../../crypto.pm_.c:26 ../../network/tools.pm_.c:113
-msgid "France"
-msgstr "Gall"
-
-#: ../../crypto.pm_.c:13
-msgid "Costa Rica"
-msgstr ""
-
-#: ../../crypto.pm_.c:14 ../../crypto.pm_.c:27 ../../network/tools.pm_.c:116
-msgid "Belgium"
-msgstr "Beljik"
-
-#: ../../crypto.pm_.c:15 ../../crypto.pm_.c:28
-msgid "Czech Republic"
-msgstr "Tchek"
-
-#: ../../crypto.pm_.c:16 ../../crypto.pm_.c:29
-msgid "Germany"
-msgstr "Alaman"
-
-#: ../../crypto.pm_.c:17 ../../crypto.pm_.c:30
-msgid "Greece"
-msgstr "Gres"
-
-#: ../../crypto.pm_.c:18 ../../crypto.pm_.c:31
-msgid "Norway"
-msgstr "Norvegek"
-
-#: ../../crypto.pm_.c:19 ../../crypto.pm_.c:32
-msgid "Sweden"
-msgstr "Suis"
-
-#: ../../crypto.pm_.c:20 ../../crypto.pm_.c:34 ../../network/tools.pm_.c:114
-msgid "Netherlands"
-msgstr ""
-
-#: ../../crypto.pm_.c:21 ../../crypto.pm_.c:35 ../../network/tools.pm_.c:115
-#: ../../standalone/drakxtv_.c:74
-msgid "Italy"
-msgstr "Italian"
-
-#: ../../crypto.pm_.c:22 ../../crypto.pm_.c:36
-#, fuzzy
-msgid "Austria"
-msgstr "a-steud"
-
-#: ../../crypto.pm_.c:33 ../../crypto.pm_.c:67 ../../network/tools.pm_.c:117
-msgid "United States"
-msgstr "Amerika"
-
-#: ../../diskdrake/hd_gtk.pm_.c:94
-msgid "Please make a backup of your data first"
-msgstr "Gwarezit ho roadoĆ¹ da gentaƱ mar plij"
-
-#: ../../diskdrake/hd_gtk.pm_.c:94 ../../diskdrake/interactive.pm_.c:899
-#: ../../diskdrake/interactive.pm_.c:908 ../../diskdrake/interactive.pm_.c:962
-msgid "Read carefully!"
-msgstr "Lennit aketus !"
-
-#: ../../diskdrake/hd_gtk.pm_.c:97
-msgid ""
-"If you plan to use aboot, be carefull to leave a free space (2048 sectors is "
-"enough)\n"
-"at the beginning of the disk"
-msgstr ""
-"M'emaoc'h e soƱj implijout aboot, taolit evezh leuskel un egor dieub (2048 "
-"rann\n"
-"a zo a-walc'h) e deroĆ¹ ar bladenn"
-
-#: ../../diskdrake/hd_gtk.pm_.c:116 ../../diskdrake/interactive.pm_.c:325
-#: ../../diskdrake/interactive.pm_.c:340 ../../diskdrake/smbnfs_gtk.pm_.c:45
-#: ../../install_steps.pm_.c:75 ../../install_steps_interactive.pm_.c:67
-#: ../../install_steps_interactive.pm_.c:356 ../../interactive_http.pm_.c:119
-#: ../../interactive_http.pm_.c:120 ../../standalone/diskdrake_.c:84
-msgid "Error"
-msgstr "Fazi"
-
-#: ../../diskdrake/hd_gtk.pm_.c:151
-msgid "Wizard"
-msgstr "Skoazeller"
-
-#: ../../diskdrake/hd_gtk.pm_.c:181 ../../diskdrake/removable_gtk.pm_.c:24
-msgid "Choose action"
-msgstr "Dibabit un obererezh"
-
-#: ../../diskdrake/hd_gtk.pm_.c:185
-msgid ""
-"You have one big FAT partition\n"
-"(generally used by MicroSoft Dos/Windows).\n"
-"I suggest you first resize that partition\n"
-"(click on it, then click on \"Resize\")"
-msgstr ""
-"Ur mell barzhadur FAT hoc'h eus\n"
-"(implijet gant MicroSoft Dos/Windows peurliesaƱ).\n"
-"AliaƱ a ran ouzoc'h adventaƱ ar parzhadur-se\n"
-"(klikit warni, da c'houde klikit war \"AdventaƱ\")"
-
-#
-#: ../../diskdrake/hd_gtk.pm_.c:188
-msgid "Please click on a partition"
-msgstr "Klikit war ur parzhadur mar plij"
-
-#: ../../diskdrake/hd_gtk.pm_.c:202 ../../diskdrake/smbnfs_gtk.pm_.c:67
-#: ../../install_steps_gtk.pm_.c:523
-msgid "Details"
-msgstr "MunudoĆ¹"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Ext2"
-msgstr "Ext2"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "FAT"
-msgstr "FAT"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "HFS"
-msgstr "HFS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-#, fuzzy
-msgid "Journalised FS"
-msgstr "marc'haƱ sac'het"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "SunOS"
-msgstr "SunOS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Swap"
-msgstr "DisloaƱ"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../diskdrake/interactive.pm_.c:1058
-msgid "Empty"
-msgstr "Goullo"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../install_steps_gtk.pm_.c:379
-#: ../../install_steps_gtk.pm_.c:439 ../../mouse.pm_.c:162
-#: ../../services.pm_.c:157 ../../standalone/drakbackup_.c:933
-msgid "Other"
-msgstr "All"
-
-#: ../../diskdrake/hd_gtk.pm_.c:325
-msgid "Filesystem types:"
-msgstr "Seurt ar reizhiadoĆ¹ restroĆ¹Ā :"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:386
-msgid "Create"
-msgstr "KrouiƱ"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:365
-#: ../../diskdrake/interactive.pm_.c:499 ../../diskdrake/removable.pm_.c:26
-#: ../../diskdrake/removable.pm_.c:49 ../../diskdrake/removable_gtk.pm_.c:17
-msgid "Type"
-msgstr "Seurt"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/hd_gtk.pm_.c:344
-#, c-format
-msgid "Use ``%s'' instead"
-msgstr "Grit kentoc'h gant ``%s''"
-
-#: ../../diskdrake/hd_gtk.pm_.c:344 ../../diskdrake/interactive.pm_.c:374
-msgid "Delete"
-msgstr "Dilemel"
-
-#: ../../diskdrake/hd_gtk.pm_.c:348
-msgid "Use ``Unmount'' first"
-msgstr "Implijit ``Divarc'haƱ'' da gentaƱ"
-
-#: ../../diskdrake/hd_gtk.pm_.c:349 ../../diskdrake/interactive.pm_.c:491
-#, c-format
-msgid ""
-"After changing type of partition %s, all data on this partition will be lost"
-msgstr ""
-"Goude kemmaƱ seurt ar parzhadur %s, holl roadoĆ¹ ar parzhadur-se a vo kollet"
-
-#: ../../diskdrake/interactive.pm_.c:171
-msgid "Choose a partition"
-msgstr "Dibabit un parzhadur"
-
-#: ../../diskdrake/interactive.pm_.c:171
-msgid "Choose another partition"
-msgstr "Dibabit un parzhadur all"
-
-#: ../../diskdrake/interactive.pm_.c:196
-msgid "Exit"
-msgstr "Kuitaat"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to expert mode"
-msgstr "Tremen er mod mailh"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to normal mode"
-msgstr "Tremen er mod boas"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Undo"
-msgstr "Dizober"
-
-#: ../../diskdrake/interactive.pm_.c:237
-msgid "Continue anyway?"
-msgstr "Kenderc'hel evelato ?"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without saving"
-msgstr "Kuitaat hep enrollaƱ"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without writing the partition table?"
-msgstr "Kuitaat hep skrivaƱ an daolenn barzhaƱ ?"
-
-#: ../../diskdrake/interactive.pm_.c:247
-#, fuzzy
-msgid "Do you want to save /etc/fstab modifications"
-msgstr "Mennout a rit amprouiƱ ar c'hefluniadur ?"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Auto allocate"
-msgstr "Ac'hubiƱ ent emgefreek"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Clear all"
-msgstr "SkaraƱ an holl"
-
-#: ../../diskdrake/interactive.pm_.c:262
-#, fuzzy
-msgid "Hard drive information"
-msgstr "DinoiƱ ar bladenn galet"
-
-#: ../../diskdrake/interactive.pm_.c:283
-msgid "All primary partitions are used"
-msgstr "Ac'hubet eo an holl barzhadurioĆ¹ kentaƱ renk"
-
-#: ../../diskdrake/interactive.pm_.c:284
-msgid "I can't add any more partition"
-msgstr "N'hellan ouzpennaƱ parzhadur ebet ken"
-
-#: ../../diskdrake/interactive.pm_.c:285
-msgid ""
-"To have more partitions, please delete one to be able to create an extended "
-"partition"
-msgstr ""
-"Evit kaout muioc'h a barzhadurioĆ¹, lamit unan evit ma c'hellot krouiƱ ur "
-"parzhadur astennet mar plij"
-
-#: ../../diskdrake/interactive.pm_.c:295
-#, fuzzy
-msgid "Save partition table"
-msgstr "SkrivaƱ an daolenn barzhaƱ"
-
-#: ../../diskdrake/interactive.pm_.c:296
-#, fuzzy
-msgid "Restore partition table"
-msgstr "Taolenn barzhaƱ saveteerezh"
-
-#: ../../diskdrake/interactive.pm_.c:297
-msgid "Rescue partition table"
-msgstr "Taolenn barzhaƱ saveteerezh"
-
-#: ../../diskdrake/interactive.pm_.c:299
-#, fuzzy
-msgid "Reload partition table"
-msgstr "Taolenn barzhaƱ saveteerezh"
-
-#: ../../diskdrake/interactive.pm_.c:304
-#, fuzzy
-msgid "Removable media automounting"
-msgstr "Emvarc'haƱ ar skoroĆ¹ lem/laka"
-
-#: ../../diskdrake/interactive.pm_.c:313 ../../diskdrake/interactive.pm_.c:333
-msgid "Select file"
-msgstr "Diuzit ar restr"
-
-#: ../../diskdrake/interactive.pm_.c:320
-msgid ""
-"The backup partition table has not the same size\n"
-"Still continue?"
-msgstr ""
-"N'eo ket heƱvel ment an daolenn barzhaƱ gwarezet\n"
-"Kenderc'hel memestra ?"
-
-#: ../../diskdrake/interactive.pm_.c:334
-msgid "Warning"
-msgstr "Ho evezh"
-
-#: ../../diskdrake/interactive.pm_.c:335
-msgid ""
-"Insert a floppy in drive\n"
-"All data on this floppy will be lost"
-msgstr ""
-"Lakait ur bladennig el lenner\n"
-"Kollet e vo holl roadoĆ¹ ar bladennig-se"
-
-#: ../../diskdrake/interactive.pm_.c:346
-msgid "Trying to rescue partition table"
-msgstr "O klask assevel an daolenn barzhaƱ"
-
-#: ../../diskdrake/interactive.pm_.c:352
-#, fuzzy
-msgid "Detailed information"
-msgstr "Diskouez titouroĆ¹"
-
-#: ../../diskdrake/interactive.pm_.c:364 ../../diskdrake/interactive.pm_.c:535
-#: ../../diskdrake/interactive.pm_.c:562 ../../diskdrake/removable.pm_.c:24
-#: ../../diskdrake/removable_gtk.pm_.c:15 ../../diskdrake/smbnfs_gtk.pm_.c:83
-msgid "Mount point"
-msgstr "Poent marc'haƱ"
-
-#: ../../diskdrake/interactive.pm_.c:366 ../../diskdrake/removable.pm_.c:25
-#: ../../diskdrake/removable_gtk.pm_.c:16 ../../diskdrake/smbnfs_gtk.pm_.c:84
-#, fuzzy
-msgid "Options"
-msgstr "Parzhadur"
-
-#: ../../diskdrake/interactive.pm_.c:367 ../../diskdrake/interactive.pm_.c:629
-msgid "Resize"
-msgstr "AdventaƱ"
-
-#: ../../diskdrake/interactive.pm_.c:368 ../../diskdrake/interactive.pm_.c:682
-msgid "Move"
-msgstr "Dilec'hiaƱ"
-
-#: ../../diskdrake/interactive.pm_.c:369
-msgid "Format"
-msgstr "FurmadiƱ"
-
-#: ../../diskdrake/interactive.pm_.c:370 ../../diskdrake/smbnfs_gtk.pm_.c:80
-msgid "Mount"
-msgstr "Marc'haƱ"
-
-#: ../../diskdrake/interactive.pm_.c:371
-msgid "Add to RAID"
-msgstr "OuzhpennaƱ da RAID"
-
-#: ../../diskdrake/interactive.pm_.c:372
-msgid "Add to LVM"
-msgstr "OuzhpennaƱ da LVM"
-
-#: ../../diskdrake/interactive.pm_.c:373 ../../diskdrake/smbnfs_gtk.pm_.c:79
-msgid "Unmount"
-msgstr "Divarc'haƱ"
-
-#: ../../diskdrake/interactive.pm_.c:375
-msgid "Remove from RAID"
-msgstr "Lemel diwar RAID"
-
-#: ../../diskdrake/interactive.pm_.c:376
-msgid "Remove from LVM"
-msgstr "Lemel diwar LVM"
-
-#: ../../diskdrake/interactive.pm_.c:377
-msgid "Modify RAID"
-msgstr "KemmaƱ RAID"
-
-#: ../../diskdrake/interactive.pm_.c:378
-msgid "Use for loopback"
-msgstr "Implij da saveteiƱ"
-
-#: ../../diskdrake/interactive.pm_.c:417
-msgid "Create a new partition"
-msgstr "KrouiƱ ur parzhadur nevez"
-
-#: ../../diskdrake/interactive.pm_.c:420
-msgid "Start sector: "
-msgstr "Rann kregiƱĀ : "
-
-#: ../../diskdrake/interactive.pm_.c:422 ../../diskdrake/interactive.pm_.c:781
-msgid "Size in MB: "
-msgstr "Ment e MoĀ : "
-
-#: ../../diskdrake/interactive.pm_.c:423 ../../diskdrake/interactive.pm_.c:782
-msgid "Filesystem type: "
-msgstr "Seurt ar reizhiad restroĆ¹Ā : "
-
-#: ../../diskdrake/interactive.pm_.c:424
-#: ../../diskdrake/interactive.pm_.c:1042
-#: ../../diskdrake/interactive.pm_.c:1116
-msgid "Mount point: "
-msgstr "Poent marc'haƱĀ : "
-
-#: ../../diskdrake/interactive.pm_.c:428
-msgid "Preference: "
-msgstr "DibarzhĀ : "
-
-#: ../../diskdrake/interactive.pm_.c:472
-#, fuzzy
-msgid "Remove the loopback file?"
-msgstr "O furmadiƱ ar restr saveteiƱ %s"
-
-#: ../../diskdrake/interactive.pm_.c:497
-msgid "Change partition type"
-msgstr "KemmaƱ seurt ar parzhadur"
-
-#: ../../diskdrake/interactive.pm_.c:498 ../../diskdrake/removable.pm_.c:48
-#, fuzzy
-msgid "Which filesystem do you want?"
-msgstr "Pe seurt parzhadur a vennit ?"
-
-#: ../../diskdrake/interactive.pm_.c:502
-msgid "Switching from ext2 to ext3"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:533
-#, c-format
-msgid "Where do you want to mount loopback file %s?"
-msgstr "Pelec'h e mennit marc'haƱ ar restr saveteiƱ %s ?"
-
-#: ../../diskdrake/interactive.pm_.c:534 ../../diskdrake/interactive.pm_.c:561
-#, c-format
-msgid "Where do you want to mount device %s?"
-msgstr "Pelec'h e mennit marc'haƱ an drobarzhell %s ?"
-
-#: ../../diskdrake/interactive.pm_.c:540
-msgid ""
-"Can't unset mount point as this partition is used for loop back.\n"
-"Remove the loopback first"
-msgstr ""
-"N'hellan ket dizober ar poent marc'haƱ dre m'eo implijet ar parzhadur-se\n"
-"evit saveteiƱ. Lamit ar saveteiƱ da gentaƱ"
-
-#: ../../diskdrake/interactive.pm_.c:585
-msgid "Computing FAT filesystem bounds"
-msgstr "O jediƱ bevennoĆ¹ ar reizhiad restroĆ¹ FAT"
-
-#: ../../diskdrake/interactive.pm_.c:585 ../../diskdrake/interactive.pm_.c:644
-#: ../../install_interactive.pm_.c:130
-msgid "Resizing"
-msgstr "Oc'h adventaƱ"
-
-#: ../../diskdrake/interactive.pm_.c:617
-#, fuzzy
-msgid "This partition is not resizeable"
-msgstr "Pe seurt parzhadur a vennit ?"
-
-#: ../../diskdrake/interactive.pm_.c:622
-msgid "All data on this partition should be backed-up"
-msgstr "Mat e vije gwareziƱ holl roadoĆ¹ ar parzhadur-se"
-
-#: ../../diskdrake/interactive.pm_.c:624
-#, c-format
-msgid "After resizing partition %s, all data on this partition will be lost"
-msgstr "Goude adventaƱ ar parzhadur %s e vo kollet holl roadoĆ¹ ar parzhadur-se"
-
-#: ../../diskdrake/interactive.pm_.c:629
-msgid "Choose the new size"
-msgstr "Dibabit ar ment nevez"
-
-#: ../../diskdrake/interactive.pm_.c:630
-msgid "New size in MB: "
-msgstr "Ment nevez e MoĀ : "
-
-#: ../../diskdrake/interactive.pm_.c:683
-msgid "Which disk do you want to move it to?"
-msgstr "Da beseurt pladenn e mennit dilec'hiaƱ ?"
-
-#: ../../diskdrake/interactive.pm_.c:684
-msgid "Sector"
-msgstr "Rann"
-
-#: ../../diskdrake/interactive.pm_.c:685
-msgid "Which sector do you want to move it to?"
-msgstr "Da beseurt rann e mennit dilec'hiaƱ ?"
-
-#: ../../diskdrake/interactive.pm_.c:688
-msgid "Moving"
-msgstr "O tilec'hiaƱ"
-
-#: ../../diskdrake/interactive.pm_.c:688
-msgid "Moving partition..."
-msgstr "O tilec'hiaƱ ur parzhadur..."
-
-#: ../../diskdrake/interactive.pm_.c:705
-msgid "Choose an existing RAID to add to"
-msgstr "Dibabit da be RAID ouzhpennaƱ"
-
-#: ../../diskdrake/interactive.pm_.c:706 ../../diskdrake/interactive.pm_.c:724
-msgid "new"
-msgstr "nevez"
-
-#: ../../diskdrake/interactive.pm_.c:722
-msgid "Choose an existing LVM to add to"
-msgstr "Dibabit da be LVM ouzhpennaƱ"
-
-#: ../../diskdrake/interactive.pm_.c:727
-msgid "LVM name?"
-msgstr "Anv LVM?"
-
-#: ../../diskdrake/interactive.pm_.c:767
-msgid "This partition can't be used for loopback"
-msgstr "N'heller ket implijout ar parzhadur-maƱ evit saveteiƱ"
-
-#: ../../diskdrake/interactive.pm_.c:779
-msgid "Loopback"
-msgstr "SaveteiƱ"
-
-#: ../../diskdrake/interactive.pm_.c:780
-msgid "Loopback file name: "
-msgstr "Anv ar restr saveteiƱĀ : "
-
-#: ../../diskdrake/interactive.pm_.c:785
-#, fuzzy
-msgid "Give a file name"
-msgstr "Anv gwirion"
-
-#: ../../diskdrake/interactive.pm_.c:788
-msgid "File already used by another loopback, choose another one"
-msgstr "Restr implijet gant ur saveteiƱ all endeo, dibabit unan all"
-
-#: ../../diskdrake/interactive.pm_.c:789
-msgid "File already exists. Use it?"
-msgstr "Ar restr a zo endeo. E implijout ?"
-
-#: ../../diskdrake/interactive.pm_.c:812
-msgid "Mount options"
-msgstr "DibarzhoĆ¹ marc'haƱ"
-
-#: ../../diskdrake/interactive.pm_.c:819
-msgid "Various"
-msgstr "A bep sort"
-
-#: ../../diskdrake/interactive.pm_.c:882 ../../standalone/drakfloppy_.c:104
-msgid "device"
-msgstr "trobarzhell"
-
-#: ../../diskdrake/interactive.pm_.c:883
-msgid "level"
-msgstr "live"
-
-#: ../../diskdrake/interactive.pm_.c:884
-msgid "chunk size"
-msgstr "ment diaoz"
-
-#: ../../diskdrake/interactive.pm_.c:899
-msgid "Be careful: this operation is dangerous."
-msgstr "Bezit war evezhĀ : arvarus eo an obererezh-maƱ."
-
-#: ../../diskdrake/interactive.pm_.c:914
-#, fuzzy
-msgid "What type of partitioning?"
-msgstr "Peseurt moullerez hoc'h eus ?"
-
-#: ../../diskdrake/interactive.pm_.c:932
-msgid ""
-"Sorry I won't accept to create /boot so far onto the drive (on a cylinder > "
-"1024).\n"
-"Either you use LILO and it won't work, or you don't use LILO and you don't "
-"need /boot"
-msgstr ""
-"Ma zigarezit na asantiƱ krouiƱ /boot ken pell war ar bladenn (war ur granenn "
-"> 1024).\n"
-"Pe e implijit LILO ha ne daio ket en-dro, pe ne rit ket ha n'hoc'h eus ket "
-"ezhomm a /boot"
-
-#: ../../diskdrake/interactive.pm_.c:936
-msgid ""
-"The partition you've selected to add as root (/) is physically located "
-"beyond\n"
-"the 1024th cylinder of the hard drive, and you have no /boot partition.\n"
-"If you plan to use the LILO boot manager, be careful to add a /boot partition"
-msgstr ""
-"Lec'hiet eo ar parzhadur hoc'h eus diuzet da ouzphennaƱ evel gwrizienn (/) "
-"en tu-hont\n"
-"d'ar 1024vet kranenn eus ar bladenn galet, ha n'hoc'h eus ket a barzhadur /"
-"boot.\n"
-"Ma vennit implijout ar merour loc'haƱ LILO, taolit pled da ouzhpennaƱ ur "
-"parzhadur /boot"
-
-#: ../../diskdrake/interactive.pm_.c:942
-msgid ""
-"You've selected a software RAID partition as root (/).\n"
-"No bootloader is able to handle this without a /boot partition.\n"
-"So be careful to add a /boot partition"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:962
-#, c-format
-msgid "Partition table of drive %s is going to be written to disk!"
-msgstr "War-nes bezaƱ skrivet war bladenn eo taolenn barzhaƱ an ardivink %s !"
-
-#: ../../diskdrake/interactive.pm_.c:966
-msgid "You'll need to reboot before the modification can take place"
-msgstr "Ret e vo deoc'h adloc'haƱ a-raok ma talvezo ar c'hemm"
-
-#: ../../diskdrake/interactive.pm_.c:977
-#, c-format
-msgid "After formatting partition %s, all data on this partition will be lost"
-msgstr ""
-"Goude furmadiƱ ar parzhadur %s, holl roadoĆ¹ ar parzhadur-se a vo kollet"
-
-#: ../../diskdrake/interactive.pm_.c:979
-msgid "Formatting"
-msgstr "O furmadiƱ"
-
-#: ../../diskdrake/interactive.pm_.c:980
-#, c-format
-msgid "Formatting loopback file %s"
-msgstr "O furmadiƱ ar restr saveteiƱ %s"
-
-#: ../../diskdrake/interactive.pm_.c:981
-#: ../../install_steps_interactive.pm_.c:465
-#, c-format
-msgid "Formatting partition %s"
-msgstr "O furmadiƱ ar parzhadur %s"
-
-#: ../../diskdrake/interactive.pm_.c:992
-#, fuzzy
-msgid "Hide files"
-msgstr "mkraid sac'het"
-
-#: ../../diskdrake/interactive.pm_.c:992
-#, fuzzy
-msgid "Move files to the new partition"
-msgstr "KrouiƱ ur parzhadur nevez"
-
-#: ../../diskdrake/interactive.pm_.c:993
-#, c-format
-msgid ""
-"Directory %s already contains data\n"
-"(%s)"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1004
-#, fuzzy
-msgid "Moving files to the new partition"
-msgstr "KrouiƱ ur parzhadur nevez"
-
-#: ../../diskdrake/interactive.pm_.c:1008
-#, c-format
-msgid "Copying %s"
-msgstr "AdskrivaƱ %s"
-
-#: ../../diskdrake/interactive.pm_.c:1012
-#, fuzzy, c-format
-msgid "Removing %s"
-msgstr "SpisterioĆ¹"
-
-#: ../../diskdrake/interactive.pm_.c:1022
-#, c-format
-msgid "partition %s is now known as %s"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1043
-#: ../../diskdrake/interactive.pm_.c:1102
-msgid "Device: "
-msgstr "TrobarzhellĀ : "
-
-#: ../../diskdrake/interactive.pm_.c:1044
-#, c-format
-msgid "DOS drive letter: %s (just a guess)\n"
-msgstr "Lizher ar bladenn DOSĀ : %s (diwar varteze hepken)\n"
-
-#: ../../diskdrake/interactive.pm_.c:1048
-#: ../../diskdrake/interactive.pm_.c:1056
-#: ../../diskdrake/interactive.pm_.c:1120
-msgid "Type: "
-msgstr "SeurtĀ : "
-
-#: ../../diskdrake/interactive.pm_.c:1052
-msgid "Name: "
-msgstr "Anv: "
-
-#: ../../diskdrake/interactive.pm_.c:1060
-#, c-format
-msgid "Start: sector %s\n"
-msgstr "O kregiƱĀ : rann %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1061
-#, c-format
-msgid "Size: %s"
-msgstr "Ment: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1063
-#, c-format
-msgid ", %s sectors"
-msgstr ", %s rann"
-
-#: ../../diskdrake/interactive.pm_.c:1065
-#, fuzzy, c-format
-msgid "Cylinder %d to %d\n"
-msgstr "Kranenn %d da granenn %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1066
-msgid "Formatted\n"
-msgstr "Furmadet\n"
-
-#: ../../diskdrake/interactive.pm_.c:1067
-msgid "Not formatted\n"
-msgstr "Ket furmadet\n"
-
-#: ../../diskdrake/interactive.pm_.c:1068
-msgid "Mounted\n"
-msgstr "Marc'het\n"
-
-#: ../../diskdrake/interactive.pm_.c:1069
-#, c-format
-msgid "RAID md%s\n"
-msgstr "RAID md%s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1071
-#, fuzzy, c-format
-msgid ""
-"Loopback file(s):\n"
-" %s\n"
-msgstr "Restr(oĆ¹) saveteiƱĀ : %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1072
-msgid ""
-"Partition booted by default\n"
-" (for MS-DOS boot, not for lilo)\n"
-msgstr ""
-"Parzhadur loc'het dre ziouer\n"
-" (evit loc'haƱ MS-DOS, ket evit lilo)\n"
-
-#: ../../diskdrake/interactive.pm_.c:1074
-#, c-format
-msgid "Level %s\n"
-msgstr "Live %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1075
-#, c-format
-msgid "Chunk size %s\n"
-msgstr "Ment diaoz %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1076
-#, c-format
-msgid "RAID-disks %s\n"
-msgstr "PladennoĆ¹ RAID %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1078
-#, c-format
-msgid "Loopback file name: %s"
-msgstr "Anv ar restr saveteiƱĀ : %s"
-
-#: ../../diskdrake/interactive.pm_.c:1081
-msgid ""
-"\n"
-"Chances are, this partition is\n"
-"a Driver partition, you should\n"
-"probably leave it alone.\n"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1084
-msgid ""
-"\n"
-"This special Bootstrap\n"
-"partition is for\n"
-"dual-booting your system.\n"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1103
-#, c-format
-msgid "Size: %s\n"
-msgstr "Ment: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1104
-#, c-format
-msgid "Geometry: %s cylinders, %s heads, %s sectors\n"
-msgstr "MentoniezhĀ : %s kranenn, %s penn, %s rann\n"
-
-#: ../../diskdrake/interactive.pm_.c:1105
-msgid "Info: "
-msgstr "TitouroĆ¹: "
-
-#: ../../diskdrake/interactive.pm_.c:1106
-#, c-format
-msgid "LVM-disks %s\n"
-msgstr "PladennoĆ¹ LVM %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1107
-#, c-format
-msgid "Partition table type: %s\n"
-msgstr "Seurt taolenn barzhaƱĀ : %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1108
-#, c-format
-msgid "on bus %d id %d\n"
-msgstr "war bus %d Nn %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1122
-#, fuzzy, c-format
-msgid "Options: %s"
-msgstr "Parzhadur"
-
-#: ../../diskdrake/interactive.pm_.c:1138
-#, fuzzy
-msgid "Filesystem encryption key"
-msgstr "Seurt ar reizhiad restroĆ¹Ā : "
-
-#: ../../diskdrake/interactive.pm_.c:1139
-msgid "Choose your filesystem encryption key"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1142
-#, fuzzy, c-format
-msgid "This encryption key is too simple (must be at least %d characters long)"
-msgstr "Re eeun eo an tremenger-se (%d arouezenn a zo ret d'an nebeutaƱ)"
-
-#: ../../diskdrake/interactive.pm_.c:1143
-#, fuzzy
-msgid "The encryption keys do not match"
-msgstr "An tremegerioĆ¹ ne glot ket"
-
-#: ../../diskdrake/interactive.pm_.c:1146
-msgid "Encryption key"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1147
-msgid "Encryption key (again)"
-msgstr ""
-
-#: ../../diskdrake/removable.pm_.c:47
-#, fuzzy
-msgid "Change type"
-msgstr "KemmaƱ seurt ar parzhadur"
-
-#
-#: ../../diskdrake/removable_gtk.pm_.c:28
-#, fuzzy
-msgid "Please click on a medium"
-msgstr "Klikit war ur parzhadur mar plij"
-
-#: ../../diskdrake/smbnfs_gtk.pm_.c:165
-#, fuzzy
-msgid "Search servers"
-msgstr "Servijer DNS"
-
-#: ../../fs.pm_.c:485 ../../fs.pm_.c:495 ../../fs.pm_.c:499 ../../fs.pm_.c:503
-#: ../../fs.pm_.c:507 ../../fs.pm_.c:511
-#, c-format
-msgid "%s formatting of %s failed"
-msgstr "furmadiƱ er seurt %s eus %s a zo sac'het"
-
-#: ../../fs.pm_.c:548
-#, c-format
-msgid "I don't know how to format %s in type %s"
-msgstr "N'ouzon ket penaos furmadiƱ %s er seurt %s"
-
-#: ../../fs.pm_.c:620 ../../fs.pm_.c:649 ../../fs.pm_.c:655
-#, c-format
-msgid "mounting partition %s in directory %s failed"
-msgstr ""
-
-#: ../../fs.pm_.c:640
-#, c-format
-msgid "fsck failed with exit code %d or signal %d"
-msgstr ""
-
-#: ../../fs.pm_.c:670 ../../partition_table.pm_.c:596
-#, c-format
-msgid "error unmounting %s: %s"
-msgstr "fazi en ur zivarc'haƱ %sĀ : %s"
-
-#: ../../fsedit.pm_.c:21
-msgid "simple"
-msgstr "eeun"
-
-#: ../../fsedit.pm_.c:25
-msgid "with /usr"
-msgstr "gant /usr"
-
-#: ../../fsedit.pm_.c:30
-msgid "server"
-msgstr "servijer"
-
-#: ../../fsedit.pm_.c:467
-msgid "You can't use JFS for partitions smaller than 16MB"
-msgstr ""
-
-#: ../../fsedit.pm_.c:468
-msgid "You can't use ReiserFS for partitions smaller than 32MB"
-msgstr ""
-
-#: ../../fsedit.pm_.c:477
-msgid "Mount points must begin with a leading /"
-msgstr "PoentoĆ¹ marc'haƱ a rank kregiƱ gant /"
-
-#: ../../fsedit.pm_.c:478
-#, c-format
-msgid "There is already a partition with mount point %s\n"
-msgstr "Bez' ez eus ur parzhadur e boent marc'haƱ %s endeo\n"
-
-#: ../../fsedit.pm_.c:482
-#, c-format
-msgid "You can't use a LVM Logical Volume for mount point %s"
-msgstr ""
-
-#: ../../fsedit.pm_.c:484
-msgid "This directory should remain within the root filesystem"
-msgstr ""
-
-#: ../../fsedit.pm_.c:486
-msgid ""
-"You need a true filesystem (ext2/ext3, reiserfs, xfs, or jfs) for this mount "
-"point\n"
-msgstr ""
-
-#: ../../fsedit.pm_.c:488
-#, c-format
-msgid "You can't use an encrypted file system for mount point %s"
-msgstr ""
-
-#: ../../fsedit.pm_.c:546
-msgid "Not enough free space for auto-allocating"
-msgstr ""
-
-#: ../../fsedit.pm_.c:548
-msgid "Nothing to do"
-msgstr ""
-
-#: ../../fsedit.pm_.c:612
-#, c-format
-msgid "Error opening %s for writing: %s"
-msgstr "Fazi en ur zigeriƱ %s evit skrivaƱĀ : %s"
-
-#: ../../fsedit.pm_.c:697
-msgid ""
-"An error occurred - no valid devices were found on which to create new "
-"filesystems. Please check your hardware for the cause of this problem"
-msgstr ""
-"C'hoarvezet ez eus ur fazi - n'eus bet kavet trobarzhell reizh ebet a-benn "
-"krouiƱ reizhiadoĆ¹ restroĆ¹ nevez warni. Gwiriit abeg ar gudenn-maƱ en ho "
-"ardivinkaj mar plij "
-
-#: ../../fsedit.pm_.c:720
-msgid "You don't have any partitions!"
-msgstr "N'hoc'h eus parzhadur ebet !"
-
-#: ../../help.pm_.c:13
-msgid ""
-"GNU/Linux is a multiuser system, and this means that each user can have his\n"
-"own preferences, his own files and so on. You can read the ``User Guide''\n"
-"to learn more. But unlike \"root\", which is the administrator, the users\n"
-"you will add here will not be entitled to change anything except their own\n"
-"files and their own configuration. You will have to create at least one\n"
-"regular user for yourself. That account is where you should log in for\n"
-"routine use. Although it is very practical to log in as \"root\" everyday,\n"
-"it may also be very dangerous! The slightest mistake could mean that your\n"
-"system would not work any more. If you make a serious mistake as a regular\n"
-"user, you may only lose some information, but not the entire system.\n"
-"\n"
-"First, you have to enter your real name. This is not mandatory, of course\n"
-"as you can actually enter whatever you want. DrakX will then take the first\n"
-"word you have entered in the box and will bring it over to the \"User\n"
-"name\". This is the name this particular user will use to log onto the\n"
-"system. You can change it. You then have to enter a password here. A\n"
-"non-privileged (regular) user's password is not as crucial as \"root\"' one\n"
-"from a security point of view, but that is no reason to neglect it: after\n"
-"all, your files are at risk.\n"
-"\n"
-"If you click on \"Accept user\", you can then add as many as you want. Add\n"
-"a user for each one of your friends: your father or your sister, for\n"
-"example. When you finish adding all the users you want, select \"Done\".\n"
-"\n"
-"Clicking the \"Advanced\" button allows you to change the default \"shell\"\n"
-"for that user (bash by default)."
-msgstr ""
-
-#: ../../help.pm_.c:41
-msgid ""
-"Listed above are the existing Linux partitions detected on your hard 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"
-"able to install enough software. If you want to store your data on a\n"
-"separate partition, you will also need to create a partition for \"/home\"\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 drive type\", \"hard 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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
-"\"second lowest SCSI ID\", etc."
-msgstr ""
-
-#: ../../help.pm_.c:72
-msgid ""
-"The Mandrake Linux 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."
-msgstr ""
-
-#: ../../help.pm_.c:77
-msgid ""
-"It is now time to specify which programs you wish to install on your\n"
-"system. There are thousands of packages available for Mandrake Linux, 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"
-"be asked to specify the CDs you currently have (in Expert mode only). Check\n"
-"the CD labels and highlight the boxes corresponding to the CDs you have\n"
-"available for installation. Click \"OK\" when you are ready to continue.\n"
-"\n"
-"Packages are sorted in groups corresponding to a particular use of your\n"
-"machine. The groups themselves are sorted into four sections:\n"
-"\n"
-" * \"Workstation\": if you plan to use your machine as a workstation, "
-"select\n"
-"one or more of the corresponding groups;\n"
-"\n"
-" * \"Development\": if your machine is to be used for programming, choose\n"
-"the desired group(s);\n"
-"\n"
-" * \"Server\": if your machine is intended to be a server, you will be able\n"
-"to select which of the most common services you wish to install on your\n"
-"machine;\n"
-"\n"
-" * \"Graphical Environment\": finally, this is where you will choose your\n"
-"preferred graphical environment. At least one must be selected if you want\n"
-"to have a graphical workstation!\n"
-"\n"
-"Moving the mouse cursor over a group name will display a short explanatory\n"
-"text about that group. If you deselect all groups when performing a regular\n"
-"installation (by opposition to an upgrade), a dialog will pop up proposing\n"
-"different options for a minimal installation:\n"
-"\n"
-" * \"With X\": install the fewer packages possible to have a working\n"
-"graphical desktop;\n"
-"\n"
-" * \"With basic documentation\": installs the base system plus basic\n"
-"utilities and their documentation. This installation is suitable for\n"
-"setting up a server;\n"
-"\n"
-" * \"Truly minimal install\": will install the strict minimum necessary to\n"
-"get a working Linux system, in command line only. This installation is\n"
-"about 65Mb large.\n"
-"\n"
-"You can check the \"Individual package selection\" box, which is useful if\n"
-"you are familiar with the packages being offered or if you want to have\n"
-"total control over what will be installed.\n"
-"\n"
-"If you started the installation in \"Upgrade\" mode, you can unselect all\n"
-"groups to avoid installing any new package. This is useful for repairing or\n"
-"updating an existing system."
-msgstr ""
-
-#: ../../help.pm_.c:128
-msgid ""
-"Finally, depending on whether or not you selected individual packages, you\n"
-"will be presented a tree containing all packages classified by groups and\n"
-"subgroups. While browsing the tree, you can select entire groups,\n"
-"subgroups, or individual packages.\n"
-"\n"
-"Whenever you select a package on the tree, a description appears on the\n"
-"right. When your selection is finished, click the \"Install\" button which\n"
-"will then launch the installation process. Depending on the speed of your\n"
-"hardware and the number of packages that need to be installed, it may take\n"
-"a while to complete the process. An estimate of the time it will take to\n"
-"install everything is displayed on the screen, to help you gauge if there\n"
-"is sufficient time to enjoy a cup of coffee.\n"
-"\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 Mandrake Linux, 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 Mandrake Linux 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"
-"default. !!\n"
-"\n"
-"The \"Automatic dependencies\" option simply disables the warning dialog\n"
-"which appears whenever the installer automatically selects a package. This\n"
-"occurs because it has determined that it needs to satisfy a dependency with\n"
-"another package in order to successfully complete the installation.\n"
-"\n"
-"The tiny floppy disk icon at the bottom of the list allows to load the\n"
-"package list chosen during a previous installation. Clicking on this icon\n"
-"will ask you to insert a floppy disk previously created at the end of\n"
-"another installation. See the second tip of last step on how to create such\n"
-"a floppy."
-msgstr ""
-
-#: ../../help.pm_.c:164
-msgid ""
-"You are now proposed to set up your Internet/network connection. If you\n"
-"wish to connect your computer to the Internet or to a local network, click\n"
-"\"OK\". The autodetection of network devices and modem will be launched. If\n"
-"this detection fails, uncheck the \"Use auto detection\" box next time. You\n"
-"may also choose not to configure the network, or do it later; in that case,\n"
-"simply click the \"Cancel\" button.\n"
-"\n"
-"Available connections are: traditional modem, ISDN modem, ADSL connection,\n"
-"cable modem, and finally a simple LAN connection (Ethernet).\n"
-"\n"
-"Here, we will not detail each configuration. Simply make sure that you have\n"
-"all the parameters from your Internet Service Provider or system\n"
-"administrator.\n"
-"\n"
-"You can consult the ``User Guide'' chapter about Internet connections for\n"
-"details about the configuration, or simply wait until your system is\n"
-"installed and use the program described there to configure your connection.\n"
-"\n"
-"If you wish to configure the network later after installation, or if you\n"
-"are finished configuring your network connection, click \"Cancel\"."
-msgstr ""
-
-#: ../../help.pm_.c:186
-#, fuzzy
-msgid ""
-"You may now choose which services you wish to start at boot time.\n"
-"\n"
-"Here are presented all the services available with the current\n"
-"installation. Review them carefully and uncheck those which are not always\n"
-"needed at boot time.\n"
-"\n"
-"You can get a short explanatory text about a service by selecting a\n"
-"specific service. However, if you are not sure whether a service is useful\n"
-"or not, 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 will probably not want to start any services which you do not\n"
-"need. Please remember that several services can be dangerous if they are\n"
-"enabled on a server. In general, select only the services you really need.\n"
-"!!"
-msgstr ""
-"BremaƱ e c'hellit diuz pe servijoĆ¹ a vennit e vije laƱset pa loc'her.\n"
-"Pa zeu ho logodenn war un draez, ul lagadenn skoazell a zeuio war wel hag\n"
-"a zisplego pal ar servij-se.\n"
-"\n"
-"Bezit aketuz-kenaƱ el lankad-maƱ ma vennit implijout ho ardivink evel ur\n"
-"servijerĀ : mennout a rit emichaƱs chom hep loc'haƱ kement servij n'ho peus "
-"ket\n"
-"c'hoant."
-
-#: ../../help.pm_.c:203
-msgid ""
-"GNU/Linux manages time in GMT (Greenwich Mean Time) and translates it in\n"
-"local time according to the time zone you selected. It is however possible\n"
-"to deactivate this by deselecting \"Hardware clock set to GMT\" so that the\n"
-"hardware clock is the same as the system clock. This is useful when the\n"
-"machine is hosting another operating system like Windows.\n"
-"\n"
-"The \"Automatic time synchronization\" option will automatically regulate\n"
-"the clock by connecting to a remote time server on the Internet. In the\n"
-"list that is presented, choose a server located near you. Of course you\n"
-"must have a working Internet connection for this feature to work. It will\n"
-"actually install on your machine a time server which can be optionally used\n"
-"by other machines on your local network."
-msgstr ""
-
-#: ../../help.pm_.c:217
-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 Mandrake Linux rely. In this section, DrakX\n"
-"will try to configure X automatically.\n"
-"\n"
-"It is extremely rare for it to fail, unless the hardware is very old (or\n"
-"very new). If it succeeds, it will start X automatically with the best\n"
-"resolution possible, depending on the size of the monitor. A window will\n"
-"then appear and ask you if you can see it.\n"
-"\n"
-"If you are doing an \"Expert\" installation, you will enter the X\n"
-"configuration wizard. See the corresponding section of the manual for more\n"
-"information about this wizard.\n"
-"\n"
-"If you can see the message during the test, and answer \"Yes\", then DrakX\n"
-"will proceed to the next step. If you cannot see the message, it simply\n"
-"means that the configuration was wrong and the test will automatically end\n"
-"after 10 seconds, restoring the screen."
-msgstr ""
-
-#: ../../help.pm_.c:237
-msgid ""
-"The first time you try the X configuration, you may not be very satisfied\n"
-"with its display (screen is too small, shifted left or right...). Hence,\n"
-"even if X starts up correctly, DrakX then asks you if the configuration\n"
-"suits you. It will also propose to change it by displaying a list of valid\n"
-"modes it could find, asking you to select one.\n"
-"\n"
-"As a last resort, if you still cannot get X to work, choose \"Change\n"
-"graphics card\", select \"Unlisted card\", and when prompted on which\n"
-"server, choose \"FBDev\". This is a failsafe option which works with any\n"
-"modern graphics card. Then choose \"Test again\" to be sure."
-msgstr ""
-
-#: ../../help.pm_.c:249
-msgid ""
-"Finally, you will be asked whether you want to see the graphical interface\n"
-"at boot. Note this question will be asked even if you chose not to test the\n"
-"configuration. Obviously, you want to answer \"No\" if your machine is to\n"
-"act as a server, or if you were not successful in getting the display\n"
-"configured."
-msgstr ""
-
-#: ../../help.pm_.c:256
-msgid ""
-"The Mandrake LinuxCD-ROM has a built-in rescue mode. You can access it by\n"
-"booting from the CD-ROM, press the >>F1<< key at boot and type >>rescue<<\n"
-"at the prompt. But in case your computer cannot boot from the CD-ROM, you\n"
-"should come back to this step for help in at least two situations:\n"
-"\n"
-" * when installing the bootloader, DrakX will rewrite the boot sector (MBR)\n"
-"of your main disk (unless you are using another boot manager), to allow you\n"
-"to start up with either Windows or GNU/Linux (assuming you have Windows in\n"
-"your system). If you need to reinstall Windows, the Microsoft install\n"
-"process will rewrite the boot sector, and then you will not be able to\n"
-"start GNU/Linux!\n"
-"\n"
-" * if a problem arises and you cannot start up GNU/Linux from the hard "
-"disk,\n"
-"this floppy disk will be the only means of starting up GNU/Linux. It\n"
-"contains a fair number of system tools for restoring a system, which has\n"
-"crashed due to a power failure, an unfortunate typing error, a typo in a\n"
-"password, or any other reason.\n"
-"\n"
-"When you click on this step, you will be asked to enter a disk inside the\n"
-"drive. The floppy disk you will insert must be empty or contain data which\n"
-"you do not need. You will not have to format it since DrakX will rewrite\n"
-"the whole disk."
-msgstr ""
-
-#: ../../help.pm_.c:280
-msgid ""
-"At this point, you need to choose where you want to install the Mandrake\n"
-"Linux operating system on your hard drive. If your hard drive is empty or\n"
-"if an existing operating system is using all the available space, you will\n"
-"need to partition it. Basically, partitioning a hard drive consists of\n"
-"logically dividing it to create space to install your new Mandrake Linux\n"
-"system.\n"
-"\n"
-"Because the partitioning process' effects are usually irreversible,\n"
-"partitioning can be intimidating and stressful if you are an inexperienced\n"
-"user. Fortunately, there is a wizard which simplifies this process. Before\n"
-"beginning, please consult the manual and take your time.\n"
-"\n"
-"If you are running the installation in Expert mode, you will enter\n"
-"DiskDrake, the Mandrake Linux partitioning tool, which allows you to\n"
-"fine-tune your partitions. See the DiskDrake section in the ``User Guide''.\n"
-"From the installation interface, you can use the wizards as described here\n"
-"by clicking the dialog's \"Wizard\" button.\n"
-"\n"
-"If partitions have already been defined, either from a previous\n"
-"installation or from another partitioning tool, simply select those to\n"
-"install your Linux system.\n"
-"\n"
-"If partitions are not defined, you will need to create them using the\n"
-"wizard. Depending on your hard drive configuration, several options are\n"
-"available:\n"
-"\n"
-" * \"Use free space\": this option will simply lead to an automatic\n"
-"partitioning of your blank drive(s). You will not be prompted further;\n"
-"\n"
-" * \"Use existing partition\": the wizard has detected one or more existing\n"
-"Linux partitions on your hard drive. If you want to use them, choose this\n"
-"option;\n"
-"\n"
-" * \"Use the free space on the Windows; partition\": if MicrosoftWindows is\n"
-"installed on your hard drive and takes all the space available on it, you\n"
-"have to create free space for Linux data. To do so, you can delete your\n"
-"MicrosoftWindows partition and data (see ``Erase entire disk'' or ``Expert\n"
-"mode'' solutions) or resize your MicrosoftWindows partition. Resizing can\n"
-"be performed without the loss of any data, provided you previously\n"
-"defragment the Windows partition. Backing up your data won't hurt either..\n"
-"This solution is recommended if you want to use both Mandrake Linux and\n"
-"MicrosoftWindows on the same computer.\n"
-"\n"
-" Before choosing this option, please understand that after this "
-"procedure,\n"
-"the size of your MicrosoftWindows partition will be smaller than at the\n"
-"present time. You will have less free space under MicrosoftWindows to store\n"
-"your data or to install new software;\n"
-"\n"
-" * \"Erase entire disk\": if you want to delete all data and all partitions\n"
-"present on your hard drive and replace them with your new Mandrake Linux\n"
-"system, choose this option. Be careful with this solution because you will\n"
-"not be able to revert your choice after you confirm;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Remove Windows\": this will simply erase everything on the drive and\n"
-"begin fresh, partitioning everything from scratch. All data on your disk\n"
-"will be lost;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Expert mode\": choose this option if you want to manually partition\n"
-"your hard drive. Be careful it is a powerful but dangerous choice. You can\n"
-"very easily lose all your data. Hence, do not choose this unless you know\n"
-"what you are doing."
-msgstr ""
-
-#: ../../help.pm_.c:347
-msgid ""
-"There you are. Installation is now complete and your GNU/Linux system is\n"
-"ready to use. Just click \"OK\" to reboot the system. You can start\n"
-"GNU/Linux or Windows, whichever you prefer (if you are dual-booting), as\n"
-"soon as the computer has booted up again.\n"
-"\n"
-"The \"Advanced\" button (in Expert mode only) shows two more buttons to:\n"
-"\n"
-" * \"generate auto-install floppy\": to create an installation floppy disk\n"
-"which will automatically perform a whole installation without the help of\n"
-"an operator, similar to the installation you just configured.\n"
-"\n"
-" Note that two different options are available after clicking the button:\n"
-"\n"
-" * \"Replay\". This is a partially automated installation as the\n"
-"partitioning step (and only this one) remains interactive;\n"
-"\n"
-" * \"Automated\". Fully automated installation: the hard disk is "
-"completely\n"
-"rewritten, all data is lost.\n"
-"\n"
-" This feature is very handy when installing a great number of similar\n"
-"machines. See the Auto install section on our web site;\n"
-"\n"
-" * \"Save packages selection\"(*): saves the package selection as done\n"
-"previously. Then, when doing another installation, insert the floppy inside\n"
-"the drive and run the installation going to the help screen by pressing on\n"
-"the [F1] key, and by issuing >>linux defcfg=\"floppy\"<<.\n"
-"\n"
-"(*) You need a FAT-formatted floppy (to create one under GNU/Linux, type\n"
-"\"mformat a:\")"
-msgstr ""
-
-#: ../../help.pm_.c:378
-msgid ""
-"Any partitions that have been newly defined must be formatted for use\n"
-"(formatting means creating a filesystem).\n"
-"\n"
-"At this time, you may wish to reformat some already existing partitions to\n"
-"erase any data they contain. If you wish to do that, please select those\n"
-"partitions as well.\n"
-"\n"
-"Please note that it is 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\n"
-"reformat partitions containing data that you wish to keep (typically\n"
-"\"/home\").\n"
-"\n"
-"Please be careful when selecting partitions. After formatting, all data on\n"
-"the selected partitions will be deleted and you will not be able to recover\n"
-"any of it.\n"
-"\n"
-"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"
-"Mandrake Linux operating system installation.\n"
-"\n"
-"Click on \"Advanced\" if you wish to select partitions that will be checked\n"
-"for bad blocks on the disk."
-msgstr ""
-
-#: ../../help.pm_.c:404
-#, fuzzy
-msgid ""
-"Your new Mandrake Linux operating system is currently being installed.\n"
-"Depending on the number of packages you will be installing and the speed of\n"
-"your computer, this operation could take from a few minutes to a\n"
-"significant amount of time.\n"
-"\n"
-"Please be patient."
-msgstr "Gortozit mar plij"
-
-#: ../../help.pm_.c:412
-msgid ""
-"At the time you are installing Mandrake Linux, it is likely that some\n"
-"packages have been updated since the initial release. Some bugs may have\n"
-"been fixed, and security issues solved. To allow you to benefit from these\n"
-"updates, you are now proposed to download them from the Internet. Choose\n"
-"\"Yes\" if you have a working Internet connection, or \"No\" if you prefer\n"
-"to install updated packages later.\n"
-"\n"
-"Choosing \"Yes\" displays a list of places from which updates can be\n"
-"retrieved. Choose the one nearest you. Then a package-selection tree\n"
-"appears: review the selection, and press \"Install\" to retrieve and\n"
-"install the selected package(s), or \"Cancel\" to abort."
-msgstr ""
-
-#: ../../help.pm_.c:425
-msgid ""
-"Before continuing, you should read carefully the terms of the license. It\n"
-"covers the whole Mandrake Linux 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."
-msgstr ""
-
-#: ../../help.pm_.c:432
-msgid ""
-"At this point, it is time to choose the security level desired for the\n"
-"machine. As a rule of thumb, the more exposed the machine is, and the more\n"
-"the data stored in it is crucial, the higher the security level should be.\n"
-"However, a higher security level is generally obtained at the expense of\n"
-"easiness of use. Refer to the \"msec\" chapter of the ``Reference Manual''\n"
-"to get more information about the meaning of these levels.\n"
-"\n"
-"If you do not know what to choose, keep the default option."
-msgstr ""
-
-#: ../../help.pm_.c:442
-msgid ""
-"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandrake Linux 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"
-"partitions must be defined.\n"
-"\n"
-"To create partitions, you must first select a hard 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"
-"\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"
-"\n"
-" * \"More\": gives access to additional features:\n"
-"\n"
-" * \"Save partition table\": saves the partition table to a floppy. "
-"Useful\n"
-"for later partition-table recovery if necessary. It is strongly recommended\n"
-"to perform this step;\n"
-"\n"
-" * \"Restore partition table\": allows to restore a previously saved\n"
-"partition table from floppy disk;\n"
-"\n"
-" * \"Rescue partition table\": if your partition table is damaged, you "
-"can\n"
-"try to recover it using this option. Please be careful and remember that it\n"
-"can fail;\n"
-"\n"
-" * \"Reload partition table\": discards all changes and loads your "
-"initial\n"
-"partition table;\n"
-"\n"
-" * \"Removable media automounting\": unchecking this option will force "
-"users\n"
-"to manually mount and unmount removable medias such as floppies and\n"
-"CD-ROMs.\n"
-"\n"
-" * \"Wizard\": 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 knowledge of\n"
-"partitioning;\n"
-"\n"
-" * \"Undo\": use this option to cancel your changes;\n"
-"\n"
-" * \"Toggle to normal/expert mode\": allows additional actions on "
-"partitions\n"
-"(type, options, format) and gives more information;\n"
-"\n"
-" * \"Done\": when you are finished partitioning your hard 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"
-"partitions using [Tab] and [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"
-"\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_.c:513
-msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
-"Please choose the one you want to resize in order to install your new\n"
-"Mandrake Linux 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"
-"\"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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard 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"
-"disk or partition is called \"C:\")."
-msgstr ""
-
-#: ../../help.pm_.c:544
-#, fuzzy
-msgid "Please be patient. This operation can take several minutes."
-msgstr "Gortozit mar plij."
-
-#: ../../help.pm_.c:547
-msgid ""
-"DrakX now needs to know if you want to perform a default (\"Recommended\")\n"
-"installation or if you want to have greater control (\"Expert\"). You can\n"
-"also choose to do a new install or an upgrade of an existing Mandrake Linux\n"
-"system:\n"
-"\n"
-" * \"Install\": completely wipes out the old system. In fact, depending on\n"
-"what currently holds your machine, you will be able to keep some old (Linux\n"
-"or other) partitions unchanged;\n"
-"\n"
-" * \"Upgrade\": this installation class allows to simply update the "
-"packages\n"
-"currently installed on your Mandrake Linux system. It keeps the current\n"
-"partitions of your hard drives as well as user configurations. All other\n"
-"configuration steps remain available with respect to plain installation;\n"
-"\n"
-" * \"Upgrade Packages Only\": this brand new class allows to upgrade an\n"
-"existing Mandrake Linux system while keeping all system configurations\n"
-"unchanged. Adding new packages to the current installation is also\n"
-"possible.\n"
-"\n"
-"Upgrades should work fine for Mandrake Linux systems starting from \"8.1\"\n"
-"release.\n"
-"\n"
-"Depending on your knowledge of GNU/Linux, select one of the following\n"
-"choices:\n"
-"\n"
-" * Recommended: choose this if you have never installed a GNU/Linux\n"
-"operating system. The installation will be very easy and you will only be\n"
-"asked a few questions;\n"
-"\n"
-" * Expert: if you have a good knowledge of GNU/Linux, you can choose this\n"
-"installation class. The expert installation will allow you to perform a\n"
-"highly-customized installation. Answering some of the questions can be\n"
-"difficult if you do not have a good knowledge of GNU/Linux, so do not\n"
-"choose this unless you know what you are doing."
-msgstr ""
-
-#: ../../help.pm_.c:583
-msgid ""
-"Normally, DrakX selects the right keyboard for you (depending on the\n"
-"language you have chosen) and you won't even see this step. However, you\n"
-"might not have a keyboard that corresponds exactly to your language: for\n"
-"example, if you are an English speaking Swiss person, you may still want\n"
-"your keyboard to be a Swiss keyboard. Or if you speak English but are\n"
-"located in Quebec, you may find yourself in the same situation. In both\n"
-"cases, you will have to go back to this installation step and select an\n"
-"appropriate keyboard from the list.\n"
-"\n"
-"Click on the \"More\" button to be presented with the complete list of\n"
-"supported keyboards."
-msgstr ""
-
-#: ../../help.pm_.c:596
-msgid ""
-"Please choose your preferred language for installation and system usage.\n"
-"\n"
-"Clicking on the \"Advanced\" button will allow you to select other\n"
-"languages to be installed on your workstation. Selecting other languages\n"
-"will install the language-specific files for system documentation and\n"
-"applications. For example, if you will host users from Spain on your\n"
-"machine, select English as the main language in the tree view and in the\n"
-"Advanced section click on the box corresponding to \"Spanish|Spain\".\n"
-"\n"
-"Note that multiple languages may be installed. Once you have selected any\n"
-"additional locales, click the \"OK\" button to continue."
-msgstr ""
-
-#: ../../help.pm_.c:609
-msgid ""
-"DrakX generally detects the number of buttons your mouse has. If not, it\n"
-"assumes you have a two-button mouse and will set it up for third-button\n"
-"emulation. DrakX will automatically know whether it is a PS/2, serial or\n"
-"USB mouse.\n"
-"\n"
-"If you wish to specify a different type of mouse select the appropriate\n"
-"type from the provided list.\n"
-"\n"
-"If you choose a mouse other than the default, a test screen will be\n"
-"displayed. Use the buttons and wheel to verify that the settings are\n"
-"correct. If the mouse is not working well, press the space bar or [Return]\n"
-"to \"Cancel\" and choose again."
-msgstr ""
-
-#: ../../help.pm_.c:623
-#, fuzzy
-msgid ""
-"Please select the correct port. For example, the \"COM1\" port under\n"
-"Windows is named \"ttyS0\" under GNU/Linux."
-msgstr ""
-"Diuzit ar porzh a zere mar plij. Da skouer, porzh COM1 dindan MS Windows\n"
-"a vez anvet ttyS0 gant Linux."
-
-#: ../../help.pm_.c:627
-msgid ""
-"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 choose\n"
-"not to enter a password, but we strongly advise you against this if only\n"
-"for one reason: do not think that because you booted GNU/Linux that your\n"
-"other operating systems are safe from mistakes. Since \"root\" can overcome\n"
-"all limitations and unintentionally erase all data on partitions by\n"
-"carelessly accessing the partitions themselves, it is important for it to\n"
-"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."
-msgstr ""
-
-#: ../../help.pm_.c:663
-msgid ""
-"LILO and grub are GNU/Linux bootloaders. This stage, normally, is totally\n"
-"automated. In fact, DrakX analyzes the disk boot sector and acts\n"
-"accordingly, depending on what it finds here:\n"
-"\n"
-" * if a Windows boot sector is found, it will replace it with a grub/LILO\n"
-"boot sector. Hence, you will be able to load either GNU/Linux or another\n"
-"OS;\n"
-"\n"
-" * if a grub or LILO boot sector is found, it will replace it with a new\n"
-"one.\n"
-"\n"
-"If in doubt, DrakX will display a dialog with various options.\n"
-"\n"
-" * \"Bootloader to use\": you have three choices:\n"
-"\n"
-" * \"GRUB\": if you prefer grub (text menu).\n"
-"\n"
-" * \"LILO with graphical menu\": if you prefer LILO with its graphical\n"
-"interface.\n"
-"\n"
-" * \"LILO with text menu\": if you prefer LILO with its text menu "
-"interface.\n"
-"\n"
-" * \"Boot device\": in most cases, you will not change the default\n"
-"(\"/dev/hda\"), but if you prefer, the bootloader can be installed on the\n"
-"second hard drive (\"/dev/hdb\"), or even on a floppy disk (\"/dev/fd0\");\n"
-"\n"
-" * \"Delay before booting the default image\": when rebooting the computer,\n"
-"this is the delay granted to the user to choose in the bootloader menu,\n"
-"another boot entry than the default one.\n"
-"\n"
-"!! Beware that if you choose not to install a bootloader (by selecting\n"
-"\"Cancel\" here), you must ensure that you have a way to boot your Mandrake\n"
-"Linux system! Also, be sure you know what you do before changing any of the\n"
-"options. !!\n"
-"\n"
-"Clicking the \"Advanced\" button in this dialog will offer many advanced\n"
-"options, which are reserved to the expert user.\n"
-"\n"
-"After you have configured the general bootloader parameters, the list of\n"
-"boot options which will be available at boot time will be displayed.\n"
-"\n"
-"If there is another operating system installed on your machine, it will\n"
-"automatically be added to the boot menu. Here, you can choose to fine-tune\n"
-"the existing options. Select an entry and click \"Modify\" to modify or\n"
-"remove it; \"Add\" creates a new entry; and \"Done\" goes on to the next\n"
-"installation step."
-msgstr ""
-
-#: ../../help.pm_.c:711
-#, fuzzy
-msgid ""
-"LILO (the LInux LOader) and grub are bootloaders: they are able to boot\n"
-"either GNU/Linux or any other operating system present on your computer.\n"
-"Normally, these other operating systems are correctly detected and\n"
-"installed. If this is not the case, you can add an entry by hand in this\n"
-"screen. Be careful to choose the correct parameters.\n"
-"\n"
-"You may also not want to give access to these other operating systems to\n"
-"anyone. In which case, you can delete the corresponding entries. But then,\n"
-"you will need a boot disk in order to boot those other operating systems!"
-msgstr ""
-"LILO (the LInux LOader) ha Grub a zo kargerien loc'haƱĀ : barrek int da "
-"loc'haƱ\n"
-"pe Linux pe forzh pe reizhiad korvoiƱ all bezaƱt war ho urzhiataer.\n"
-"PeurvuiaƱ, ar reizhiadoĆ¹ korvoiƱ all-se a vez dinoet ha staliet reizh.\n"
-"Ma n'eo ket kont evel-hen, gallout a rit ouzhpennaƱ un enmont gant an dorn\n"
-"er skramm-maƱ. Taolit pled da zibab an arventennoĆ¹ reizh.\n"
-"\n"
-"\n"
-"Gallout a rafec'h ivez mennout na lakaat hegerz hini ebet eus ar reizhiadoĆ¹\n"
-"korvoiƱ-se, neuze n'hoc'h eus ken nemet dilemel an enmontoĆ¹ a zegouezh. "
-"Hogen\n"
-"neuze e vo ret deoc'h kaout ur bladennig loc'haƱ evit loc'haƱ anezho."
-
-#: ../../help.pm_.c:722
-#, fuzzy
-msgid ""
-"You must indicate where you wish to place the information required to boot\n"
-"to GNU/Linux.\n"
-"\n"
-"Unless you know exactly what you are doing, choose \"First sector of drive\n"
-"(MBR)\"."
-msgstr ""
-"Ret eo deoc'h menegiƱ pelec'h e mennit\n"
-"lec'hiaƱ an titouroĆ¹ ret evit loc'haƱ Linux.\n"
-"\n"
-"\n"
-"Nemet ma ouifec'h resis ar pezh a rit, dibabit \"Rann gentaƱ\n"
-"ar bladenn (MBR)\"."
-
-#: ../../help.pm_.c:729
-msgid ""
-"Here, we select a printing system for your computer. Other OSs may offer\n"
-"you one, but Mandrake Linux offers three.\n"
-"\n"
-" * \"pdq\" which means ``print, don't queue'', is the choice if you have a\n"
-"direct connection to your printer and you want to be able to panic out of\n"
-"printer jams, and you do not have networked printers. It will handle only\n"
-"very simple network cases and is somewhat slow for networks. Pick \"pdq\"\n"
-"if this is your maiden voyage to GNU/Linux. You can change your choices\n"
-"after installation by running PrinterDrake from the Mandrake Control Center\n"
-"and clicking the expert button.\n"
-"\n"
-" * \"CUPS\"``Common Unix Printing System'', is excellent at printing to "
-"your\n"
-"local printer and also halfway-around the planet. It is simple and can act\n"
-"as a server or a client for the ancient \"lpd\" printing system. Hence, it\n"
-"is compatible with the systems that went before. It can do many tricks, but\n"
-"the basic setup is almost as easy as \"pdq\". If you need this to emulate\n"
-"an \"lpd\" server, you must turn on the \"cups-lpd\" daemon. It has\n"
-"graphical front-ends for printing or choosing printer options.\n"
-"\n"
-" * \"lprNG\"``line printer daemon New Generation''. This system can do\n"
-"approximately the same things the others can do, but it will print to\n"
-"printers mounted on a Novell Network, because it supports the IPX protocol,\n"
-"and it can print directly to shell commands. If you have need of Novell or\n"
-"printing to commands without using a separate pipe construct, use lprNG.\n"
-"Otherwise, CUPS is preferable as it is simpler and better at working over\n"
-"networks."
-msgstr ""
-
-#: ../../help.pm_.c:757
-msgid ""
-"DrakX now detects any IDE device present in your computer. It will also\n"
-"scan for one or more PCI SCSI card(s) on your system. If a SCSI card is\n"
-"found, DrakX will automatically install the appropriate driver.\n"
-"\n"
-"Because hardware detection does not always detect a piece of hardware,\n"
-"DrakX will ask you to confirm if a PCI SCSI card is present. Click \"Yes\"\n"
-"if you know that there is a SCSI card installed in your machine. You will\n"
-"be presented a list of SCSI cards to choose from. Click \"No\" if you have\n"
-"no SCSI hardware. If you are unsure, you can check the list of hardware\n"
-"detected in your machine by selecting \"See hardware info\" and clicking\n"
-"\"OK\". Examine the list of hardware and then click on the \"OK\" button to\n"
-"return to the SCSI interface question.\n"
-"\n"
-"If you have to manually specify your adapter, DrakX will ask if you want to\n"
-"specify options for it. You should allow DrakX to probe the hardware for\n"
-"the card-specific options which the hardware needs to initialize. This\n"
-"usually works well.\n"
-"\n"
-"If DrakX is not able to probe for the options which need to be passed, you\n"
-"will need to provide options to the driver manually. Please review the\n"
-"``User Guide'' (chapter 3, in the ``Collecting Information on Your\n"
-"Hardware'' section) for hints on retrieving the parameters required from\n"
-"hardware documentation, from the manufacturer's web site (if you have\n"
-"Internet access) or from MicrosoftWindows (if you used this hardware with\n"
-"Windows on your system)."
-msgstr ""
-
-#: ../../help.pm_.c:784
-msgid ""
-"You can add additional entries for yaboot, either for other operating\n"
-"systems, alternate kernels, or for an emergency boot image.\n"
-"\n"
-"For other OSs, the entry consists only of a label and the \"root\"\n"
-"partition.\n"
-"\n"
-"For Linux, there are a few possible options:\n"
-"\n"
-" * Label: this is simply the name you will have to type at the yaboot "
-"prompt\n"
-"to select this boot option;\n"
-"\n"
-" * Image: this would be the name of the kernel to boot. Typically, vmlinux\n"
-"or a variation of vmlinux with an extension;\n"
-"\n"
-" * Root: the \"root\" device or ``/'' for your Linux installation;\n"
-"\n"
-" * Append: on Apple hardware, the kernel append option is used quite often\n"
-"to assist in initializing video hardware, or to enable keyboard mouse\n"
-"button emulation for the often lacking 2nd and 3rd mouse buttons on a stock\n"
-"Apple mouse. The following are some examples:\n"
-"\n"
-" video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111 "
-"hda=autotune\n"
-"\n"
-" video=atyfb:vmode:12,cmode:24 adb_buttons=103,111\n"
-"\n"
-" * Initrd: this option can be used either to load initial modules, before\n"
-"the boot device is available, or to load a ramdisk image for an emergency\n"
-"boot situation;\n"
-"\n"
-" * Initrd-size: the default ramdisk size is generally 4,096 bytes. If you\n"
-"need to allocate a large ramdisk, this option can be used;\n"
-"\n"
-" * Read-write: normally the \"root\" partition is initially brought up in\n"
-"read-only, to allow a file system check before the system becomes ``live''.\n"
-"Here, you can override this option;\n"
-"\n"
-" * NoVideo: should the Apple video hardware prove to be exceptionally\n"
-"problematic, you can select this option to boot in ``novideo'' mode, with\n"
-"native frame buffer support;\n"
-"\n"
-" * Default: selects this entry as being the default Linux selection,\n"
-"selectable by just pressing ENTER at the yaboot prompt. This entry will\n"
-"also be highlighted with a ``*'', if you press [Tab] to see the boot\n"
-"selections."
-msgstr ""
-
-#: ../../help.pm_.c:830
-msgid ""
-"Yaboot is a bootloader for NewWorld MacIntosh hardware. It is able to boot\n"
-"either GNU/Linux, MacOS or MacOSX if present on your computer. Normally,\n"
-"these other operating systems are correctly detected and installed. If this\n"
-"is not the case, you can add an entry by hand in this screen. Be careful to\n"
-"choose the correct parameters.\n"
-"\n"
-"Yaboot's main options are:\n"
-"\n"
-" * Init Message: a simple text message displayed before the boot prompt;\n"
-"\n"
-" * Boot Device: indicates where you want to place the information required\n"
-"to boot to GNU/Linux. Generally, you set up a bootstrap partition earlier\n"
-"to hold this information;\n"
-"\n"
-" * Open Firmware Delay: unlike LILO, there are two delays available with\n"
-"yaboot. The first delay is measured in seconds and at this point, you can\n"
-"choose between CD, OF boot, MacOS or Linux;\n"
-"\n"
-" * Kernel Boot Timeout: this timeout is similar to the LILO boot delay.\n"
-"After selecting Linux, you will have this delay in 0.1 second before your\n"
-"default kernel description is selected;\n"
-"\n"
-" * Enable CD Boot?: checking this option allows you to choose ``C'' for CD\n"
-"at the first boot prompt;\n"
-"\n"
-" * Enable OF Boot?: checking this option allows you to choose ``N'' for "
-"Open\n"
-"Firmware at the first boot prompt;\n"
-"\n"
-" * Default OS: you can select which OS will boot by default when the Open\n"
-"Firmware Delay expires."
-msgstr ""
-
-#: ../../help.pm_.c:862
-msgid ""
-"Here are presented various parameters concerning your machine. Depending on\n"
-"your installed hardware, you may or not, see the following entries:\n"
-"\n"
-" * \"Mouse\": check the current mouse configuration and click on the button\n"
-"to change it if necessary;\n"
-"\n"
-" * \"Keyboard\": check the current keyboard map configuration and click on\n"
-"the button to change that if necessary;\n"
-"\n"
-" * \"Timezone\": DrakX, by default, guesses your time zone from the "
-"language\n"
-"you have chosen. But here again, as for the choice of a keyboard, you may\n"
-"not be in the country for which the chosen language should correspond.\n"
-"Hence, you may need to click on the \"Timezone\" button in order to\n"
-"configure the clock according to the time zone you are in;\n"
-"\n"
-" * \"Printer\": clicking on the \"No Printer\" button will open the printer\n"
-"configuration wizard;\n"
-"\n"
-" * \"Sound card\": if a sound card is detected on your system, it is\n"
-"displayed here. No modification possible at installation time;\n"
-"\n"
-" * \"TV card\": if a TV card is detected on your system, it is displayed\n"
-"here. No modification possible at installation time;\n"
-"\n"
-" * \"ISDN card\": if an ISDN card is detected on your system, it is\n"
-"displayed here. You can click on the button to change the parameters\n"
-"associated with it."
-msgstr ""
-
-#: ../../help.pm_.c:891
-msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandrake Linux partition. Be careful, all data present on it will be lost\n"
-"and will not be recoverable!"
-msgstr ""
-
-#: ../../help.pm_.c:896
-msgid ""
-"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"
-"any Windows data.\n"
-"\n"
-"Click on \"Cancel\" to cancel this operation without losing any data and\n"
-"partitions present on this hard drive."
-msgstr ""
-
-#: ../../install2.pm_.c:113
-#, c-format
-msgid ""
-"Can't 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 ""
-
-#: ../../install2.pm_.c:169
-#, c-format
-msgid "You must also format %s"
-msgstr ""
-
-#: ../../install_any.pm_.c:411
-#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They don't have any known security\n"
-"issues, but some new could be found. In that case, you must make sure to "
-"upgrade\n"
-"as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
-msgstr ""
-
-#: ../../install_any.pm_.c:447
-msgid "Can't use broadcast with no NIS domain"
-msgstr "N'hellaƱ ket implijout ar skignaƱ hep domani NIS"
-
-#: ../../install_any.pm_.c:794
-#, fuzzy, c-format
-msgid "Insert a FAT formatted floppy in drive %s"
-msgstr "Lakait ur bladennig el lenner %s"
-
-#: ../../install_any.pm_.c:798
-msgid "This floppy is not FAT formatted"
-msgstr ""
-
-#: ../../install_any.pm_.c:810
-msgid ""
-"To use this saved packages selection, boot installation with ``linux "
-"defcfg=floppy''"
-msgstr ""
-
-#: ../../install_any.pm_.c:832 ../../partition_table.pm_.c:763
-#, c-format
-msgid "Error reading file %s"
-msgstr "Fazi en ur lenn ar restr %s"
-
-#: ../../install_interactive.pm_.c:23
-#, c-format
-msgid ""
-"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
-"You can find some information about them at: %s"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:58
-msgid ""
-"You must have a root partition.\n"
-"For this, create a partition (or click on an existing one).\n"
-"Then choose action ``Mount point'' and set it to `/'"
-msgstr ""
-"Ret eo deoc'h kaout ur parzhadur gwrizienn.\n"
-"Evit se, krouit ur parzhadur (pe glikit war unan a zo c'hoazh).\n"
-"Da c'houde dibabit an ober ``Poent marc'haƱ'' ha lakait anezhaƱ da `/'"
-
-#: ../../install_interactive.pm_.c:63
-msgid "You must have a swap partition"
-msgstr "Ret eo deoc'h kaout ur parzhadur disloaƱ"
-
-#: ../../install_interactive.pm_.c:64
-msgid ""
-"You don't have a swap partition.\n"
-"\n"
-"Continue anyway?"
-msgstr ""
-"N'hoc'h eus ket a barzhadur disloaƱ\n"
-"\n"
-"Kenderc'hel evelato ?"
-
-#: ../../install_interactive.pm_.c:67 ../../install_steps.pm_.c:163
-#, fuzzy
-msgid "You must have a FAT partition mounted in /boot/efi"
-msgstr "Ret eo deoc'h kaout ur parzhadur disloaƱ"
-
-#: ../../install_interactive.pm_.c:90
-#, fuzzy
-msgid "Use free space"
-msgstr "Implij da saveteiƱ"
-
-#: ../../install_interactive.pm_.c:92
-msgid "Not enough free space to allocate new partitions"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:100
-#, fuzzy
-msgid "Use existing partitions"
-msgstr "O furmadiƱ parzhadurioĆ¹"
-
-#: ../../install_interactive.pm_.c:102
-#, fuzzy
-msgid "There is no existing partition to use"
-msgstr "O klask assevel an daolenn barzhaƱ"
-
-#: ../../install_interactive.pm_.c:109
-#, fuzzy
-msgid "Use the Windows partition for loopback"
-msgstr "Implij da saveteiƱ"
-
-#: ../../install_interactive.pm_.c:112
-#, fuzzy
-msgid "Which partition do you want to use for Linux4Win?"
-msgstr "Pe barzhadur a vennit implijout evit lakaat Linux4Win ?"
-
-#: ../../install_interactive.pm_.c:114
-msgid "Choose the sizes"
-msgstr "Dibabit ar mentoĆ¹"
-
-#: ../../install_interactive.pm_.c:115
-msgid "Root partition size in MB: "
-msgstr "Ment ar parzhadur gwrizienn e MoĀ : "
-
-#: ../../install_interactive.pm_.c:116
-msgid "Swap partition size in MB: "
-msgstr "Ment ar parzhadur disloaƱ e MoĀ : "
-
-#: ../../install_interactive.pm_.c:125
-msgid "Use the free space on the Windows partition"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:128
-#, fuzzy
-msgid "Which partition do you want to resize?"
-msgstr "Pe seurt parzhadur a vennit ?"
-
-#: ../../install_interactive.pm_.c:130
-#, fuzzy
-msgid "Resizing Windows partition"
-msgstr "O jediƱ bevennoĆ¹ ar reizhiad restroĆ¹ FAT"
-
-#: ../../install_interactive.pm_.c:133
-#, c-format
-msgid ""
-"The FAT resizer is unable to handle your partition, \n"
-"the following error occured: %s"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:136
-msgid ""
-"Your Windows partition is too fragmented. Please reboot your computer under "
-"Windows, run the ``defrag'' utility, then restart the Mandrake Linux "
-"installation."
-msgstr ""
-
-#: ../../install_interactive.pm_.c:137
-#, fuzzy
-msgid ""
-"WARNING!\n"
-"\n"
-"DrakX will now resize your Windows partition. Be careful:\n"
-"this operation is dangerous. If you have not already done\n"
-"so, you should first exit the installation, run scandisk\n"
-"under Windows (and optionally run defrag), then restart the\n"
-"installation. You should also backup your data.\n"
-"When sure, press Ok."
-msgstr ""
-"HO EVEZH !\n"
-"\n"
-"Ezhomm en deus DrakX adventaƱ ho parzhadur Windows bremaƱ. Bezit war "
-"evezhĀ :\n"
-"arvarus eo an obererezh-se. Ma n'hoc'h eus ket graet c'hoazh, gwelloc'h e\n"
-"vije deoc'h seveniƱ da gentaƱ scandisk (ha diouzh ret seveniƱ defrag) war "
-"ar\n"
-"parzhadur-se, ha gwareziƱ ho roadoĆ¹. Pa vezit sur, gwaskit \"Mat eo\""
-
-#: ../../install_interactive.pm_.c:147
-#, fuzzy
-msgid "Which size do you want to keep for Windows on"
-msgstr "Da beseurt rann e mennit dilec'hiaƱ ?"
-
-#: ../../install_interactive.pm_.c:148
-#, c-format
-msgid "partition %s"
-msgstr "parzhadur %s"
-
-#: ../../install_interactive.pm_.c:155
-#, fuzzy, c-format
-msgid "FAT resizing failed: %s"
-msgstr "AdventaƱ ent emgefreek sac'het"
-
-#: ../../install_interactive.pm_.c:170
-msgid ""
-"There is no FAT partition to resize or to use as loopback (or not enough "
-"space left)"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:176
-msgid "Erase entire disk"
-msgstr "Chetan an holl planedenn"
-
-#: ../../install_interactive.pm_.c:176
-msgid "Remove Windows(TM)"
-msgstr "Chetan Windows(TM)"
-
-#: ../../install_interactive.pm_.c:179
-msgid "You have more than one hard drive, which one do you install linux on?"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:182
-#, fuzzy, c-format
-msgid "ALL existing partitions and their data will be lost on drive %s"
-msgstr "Goude adventaƱ ar parzhadur %s e vo kollet holl roadoĆ¹ ar parzhadur-se"
-
-#: ../../install_interactive.pm_.c:190
-#, fuzzy
-msgid "Custom disk partitioning"
-msgstr "O furmadiƱ parzhadurioĆ¹"
-
-#: ../../install_interactive.pm_.c:194
-msgid "Use fdisk"
-msgstr "Implijit fdisk"
-
-#: ../../install_interactive.pm_.c:197
-#, fuzzy, c-format
-msgid ""
-"You can now partition %s.\n"
-"When you are done, don't forget to save using `w'"
-msgstr ""
-"Gallout a rit bremaƱ parzhaƱ ho pladenn galet %s\n"
-"Pa 'z eo graet, na zisoƱjit ket enrollaƱ dre implijout `w'"
-
-#: ../../install_interactive.pm_.c:226
-#, fuzzy
-msgid "You don't have enough free space on your Windows partition"
-msgstr "N'hoc'h eus parzhadur windows ebet !"
-
-#: ../../install_interactive.pm_.c:242
-#, fuzzy
-msgid "I can't find any room for installing"
-msgstr "N'hellan ouzpennaƱ parzhadur ebet ken"
-
-#: ../../install_interactive.pm_.c:246
-msgid "The DrakX Partitioning wizard found the following solutions:"
-msgstr ""
-
-#: ../../install_interactive.pm_.c:251
-#, fuzzy, c-format
-msgid "Partitioning failed: %s"
-msgstr "Seurt taolenn barzhaƱĀ : %s\n"
-
-#: ../../install_interactive.pm_.c:261
-msgid "Bringing up the network"
-msgstr "O laƱsaƱ ar rouedad"
-
-#: ../../install_interactive.pm_.c:266
-msgid "Bringing down the network"
-msgstr "O tizenaouiƱ ar rouedad"
-
-#: ../../install_steps.pm_.c:76
-msgid ""
-"An error occurred, but I don't know how to handle it nicely.\n"
-"Continue at your own risk."
-msgstr ""
-"Degouezhet ez eus ur fazi, hogen n'ouzon ket e veraƱ naet.\n"
-"Kendalc'hit war ho mar."
-
-#: ../../install_steps.pm_.c:205
-#, c-format
-msgid "Duplicate mount point %s"
-msgstr "Poent marc'haƱ doubl %s"
-
-#: ../../install_steps.pm_.c:388
-msgid ""
-"Some important packages didn't get installed properly.\n"
-"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl Mandrake/RPMS/*.rpm"
-"\"\n"
-msgstr ""
-
-#: ../../install_steps.pm_.c:458
-#, c-format
-msgid "Welcome to %s"
-msgstr "Degemer e %s"
-
-#: ../../install_steps.pm_.c:513 ../../install_steps.pm_.c:755
-msgid "No floppy drive available"
-msgstr "Lenner pladennig hegerz ebet"
-
-#: ../../install_steps_auto_install.pm_.c:76
-#: ../../install_steps_stdio.pm_.c:22
-#, c-format
-msgid "Entering step `%s'\n"
-msgstr "O kregiƱ gant al lankad `%s'\n"
-
-#: ../../install_steps_gtk.pm_.c:148
-msgid ""
-"Your system is low on resources. You may have some problem installing\n"
-"Mandrake Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
-"press `F1' when booting on CDROM, then enter `text'."
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:159 ../../install_steps_interactive.pm_.c:224
-msgid "Install Class"
-msgstr "Renkad staliaƱ"
-
-#: ../../install_steps_gtk.pm_.c:162
-#, fuzzy
-msgid "Please choose one of the following classes of installation:"
-msgstr "Dibabit unan eus ar renkadoĆ¹ staliaƱ a-heul mar plijĀ :"
-
-#: ../../install_steps_gtk.pm_.c:228
-#, c-format
-msgid ""
-"The total size for the groups you have selected is approximately %d MB.\n"
-msgstr "Ment hollek ar strolladoĆ¹ hoc'h eus diuzet a zo war-dro %d Mo.\n"
-
-#: ../../install_steps_gtk.pm_.c:230
-#, c-format
-msgid ""
-"If you wish to install less than this size,\n"
-"select the percentage of packages that you want to install.\n"
-"\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of 100%% will install all selected packages."
-msgstr ""
-"Ma vennit staliaƱ nebeutoc'h eget ar ment-se,\n"
-"diuzit an dregantad a bakadoĆ¹ a vennit staliaƱ.\n"
-"\n"
-"Un dregantad izel a stalio hepken ar pakadoĆ¹ pouezusaƱ;\n"
-"un dregantad a 100%% a stalio an holl bakadoĆ¹ diuzet."
-
-#: ../../install_steps_gtk.pm_.c:235
-#, c-format
-msgid ""
-"You have space on your disk for only %d%% of these packages.\n"
-"\n"
-"If you wish to install less than this,\n"
-"select the percentage of packages that you want to install.\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of %d%% will install as many packages as possible."
-msgstr ""
-"N'eus egor war ho pladenn nemet evit %d%% eus ar pakadoĆ¹-se.\n"
-"\n"
-"Ma vennit staliaƱ nebeutoc'h eget se,\n"
-"diuzit an dregantad a bakadoĆ¹ a vennit staliaƱ.\n"
-"Un dregantad izel a stalio hepken ar pakadoĆ¹ pouezusaƱ;\n"
-"un dregantad a %d%% a stalio kement a bakadoĆ¹ ma 'z eus tu."
-
-#: ../../install_steps_gtk.pm_.c:241
-msgid "You will be able to choose them more specifically in the next step."
-msgstr "Tu vo deoc'h o dibab spisoc'h el lankad a zeu."
-
-#: ../../install_steps_gtk.pm_.c:243
-msgid "Percentage of packages to install"
-msgstr "Dregantad a bakadoĆ¹ da staliaƱ"
-
-#: ../../install_steps_gtk.pm_.c:291 ../../install_steps_interactive.pm_.c:675
-msgid "Package Group Selection"
-msgstr "Diuzadenn strollad pakadoĆ¹"
-
-#: ../../install_steps_gtk.pm_.c:323 ../../install_steps_interactive.pm_.c:690
-msgid "Individual package selection"
-msgstr "Diuz pakadoĆ¹ unan hag unan"
-
-#: ../../install_steps_gtk.pm_.c:346 ../../install_steps_interactive.pm_.c:615
-#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Ment hollekĀ : %d / %d Mo"
-
-#: ../../install_steps_gtk.pm_.c:391
-msgid "Bad package"
-msgstr "Pakad siek"
-
-#: ../../install_steps_gtk.pm_.c:392
-#, c-format
-msgid "Name: %s\n"
-msgstr "AnvĀ : %s\n"
-
-#: ../../install_steps_gtk.pm_.c:393
-#, c-format
-msgid "Version: %s\n"
-msgstr "StummĀ : %s\n"
-
-#: ../../install_steps_gtk.pm_.c:394
-#, c-format
-msgid "Size: %d KB\n"
-msgstr "MentĀ : %d Ko\n"
-
-#: ../../install_steps_gtk.pm_.c:395
-#, c-format
-msgid "Importance: %s\n"
-msgstr "TalvoudegezhĀ : %s\n"
-
-#: ../../install_steps_gtk.pm_.c:417
-#, fuzzy
-msgid ""
-"You can't select this package as there is not enough space left to install it"
-msgstr "N'hellit ket andiuz ar pakad-maƱ. Staliet eo endo"
-
-#: ../../install_steps_gtk.pm_.c:422
-#, fuzzy
-msgid "The following packages are going to be installed"
-msgstr "Ar pakadoĆ¹ a-heul a zo war-nes bezaƱ distaliet"
-
-#: ../../install_steps_gtk.pm_.c:423
-#, fuzzy
-msgid "The following packages are going to be removed"
-msgstr "Ar pakadoĆ¹ a-heul a zo war-nes bezaƱ staliet/lamet"
-
-#: ../../install_steps_gtk.pm_.c:435
-msgid "You can't select/unselect this package"
-msgstr "N'hellit ket diuz/andiuz ar pakad-maƱ"
-
-#: ../../install_steps_gtk.pm_.c:447
-msgid "This is a mandatory package, it can't be unselected"
-msgstr "HemaƱ a zo ur pakad ret, n'hell ket bezaƱ andiuzet"
-
-#: ../../install_steps_gtk.pm_.c:449
-msgid "You can't unselect this package. It is already installed"
-msgstr "N'hellit ket andiuz ar pakad-maƱ. Staliet eo endo"
-
-#: ../../install_steps_gtk.pm_.c:453
-msgid ""
-"This package must be upgraded.\n"
-"Are you sure you want to deselect it?"
-msgstr ""
-"Bremanaet e tle bezaƱ ar pabak-maƱ\n"
-"Ha sur oc'h e mennit e ziuzaƱ ?"
-
-#: ../../install_steps_gtk.pm_.c:457
-msgid "You can't unselect this package. It must be upgraded"
-msgstr "N'hellit ket andiuz ar pakad-maƱ. Ret eo dezhaƱ bezaƱ bremanaet"
-
-#: ../../install_steps_gtk.pm_.c:462
-msgid "Show automatically selected packages"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:463 ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Install"
-msgstr "StaliaƱ"
-
-#: ../../install_steps_gtk.pm_.c:466
-#, fuzzy
-msgid "Load/Save on floppy"
-msgstr "EnrollaƱ war bladennig"
-
-#: ../../install_steps_gtk.pm_.c:467
-#, fuzzy
-msgid "Updating package selection"
-msgstr "Diuz pakadoĆ¹ unan hag unan"
-
-#: ../../install_steps_gtk.pm_.c:472
-#, fuzzy
-msgid "Minimal install"
-msgstr "DistaliaƱ"
-
-#: ../../install_steps_gtk.pm_.c:487 ../../install_steps_interactive.pm_.c:525
-msgid "Choose the packages you want to install"
-msgstr "Dibabit ar pakadoĆ¹ a vennit staliaƱ"
-
-#: ../../install_steps_gtk.pm_.c:503 ../../install_steps_interactive.pm_.c:757
-msgid "Installing"
-msgstr "O staliaƱ"
-
-#: ../../install_steps_gtk.pm_.c:509
-msgid "Estimating"
-msgstr "O vrasjediƱ"
-
-#: ../../install_steps_gtk.pm_.c:516
-msgid "Time remaining "
-msgstr "Amzer a chom"
-
-#: ../../install_steps_gtk.pm_.c:528
-msgid "Please wait, preparing installation..."
-msgstr "Gortozit mar plij, o prientiƱ ar staliadur"
-
-#: ../../install_steps_gtk.pm_.c:611
-#, c-format
-msgid "%d packages"
-msgstr "%d pakad"
-
-#: ../../install_steps_gtk.pm_.c:616
-#, c-format
-msgid "Installing package %s"
-msgstr "O staliaƱ ar pakad %s"
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:781
-#: ../../standalone/drakautoinst_.c:203
-msgid "Accept"
-msgstr "Aotren"
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:781
-#, fuzzy
-msgid "Refuse"
-msgstr "AdventaƱ"
-
-#: ../../install_steps_gtk.pm_.c:658 ../../install_steps_interactive.pm_.c:782
-#, c-format
-msgid ""
-"Change your Cd-Rom!\n"
-"\n"
-"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
-"done.\n"
-"If you don't have it, press Cancel to avoid installation from this Cd-Rom."
-msgstr ""
-"Kemmit ho Cd-Rom!\n"
-"\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."
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_gtk.pm_.c:676
-#: ../../install_steps_interactive.pm_.c:794
-#: ../../install_steps_interactive.pm_.c:798
-msgid "Go on anyway?"
-msgstr "Kenderc'hel evelato ?"
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_interactive.pm_.c:794
-msgid "There was an error ordering packages:"
-msgstr "Ur fazi a zo bet en ur rummaƱ pakadoĆ¹Ā :"
-
-#: ../../install_steps_gtk.pm_.c:676 ../../install_steps_interactive.pm_.c:798
-msgid "There was an error installing packages:"
-msgstr "Ur fazi a zo bet en ur staliaƱ ar pakadoĆ¹Ā :"
-
-#: ../../install_steps_interactive.pm_.c:10
-msgid ""
-"\n"
-"Warning\n"
-"\n"
-"Please read carefully the terms below. If you disagree with any\n"
-"portion, you are not allowed to install the next CD media. Press 'Refuse' \n"
-"to continue the installation without using these media.\n"
-"\n"
-"\n"
-"Some components contained in the next CD media are not governed\n"
-"by the GPL License or similar agreements. Each such component is then\n"
-"governed by the terms and conditions of its own specific license. \n"
-"Please read carefully and comply with such specific licenses before \n"
-"you use or redistribute the said components. \n"
-"Such licenses will in general prevent the transfer, duplication \n"
-"(except for backup purposes), redistribution, reverse engineering, \n"
-"de-assembly, de-compilation or modification of the component. \n"
-"Any breach of agreement will immediately terminate your rights under \n"
-"the specific license. Unless the specific license terms grant you such\n"
-"rights, you usually cannot install the programs on more than one\n"
-"system, or adapt it to be used on a network. In doubt, please contact \n"
-"directly the distributor or editor of the component. \n"
-"Transfer to third parties or copying of such components including the \n"
-"documentation is usually forbidden.\n"
-"\n"
-"\n"
-"All rights to the components of the next CD media belong to their \n"
-"respective authors and are protected by intellectual property and \n"
-"copyright laws applicable to software programs.\n"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:67
-msgid "An error occurred"
-msgstr "Ur fazi a zo bet"
-
-#: ../../install_steps_interactive.pm_.c:85
-#, fuzzy
-msgid "Do you really want to leave the installation?"
-msgstr "Mennout a rit amprouiƱ ar c'hefluniadur ?"
-
-#: ../../install_steps_interactive.pm_.c:108
-msgid "License agreement"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:109
-msgid ""
-"Introduction\n"
-"\n"
-"The operating system and the different components available in the Mandrake "
-"Linux distribution \n"
-"shall be called the \"Software Products\" hereafter. The Software Products "
-"include, but are not \n"
-"restricted to, the set of programs, methods, rules and documentation related "
-"to the operating \n"
-"system and the different components of the Mandrake Linux distribution.\n"
-"\n"
-"\n"
-"1. License Agreement\n"
-"\n"
-"Please read this document carefully. This document is a license agreement "
-"between you and \n"
-"MandrakeSoft S.A. which applies to the Software Products.\n"
-"By installing, duplicating or using the Software Products in any manner, you "
-"explicitly \n"
-"accept and fully agree to conform to the terms and conditions of this "
-"License. \n"
-"If you disagree with any portion of the License, you are not allowed to "
-"install, duplicate or use \n"
-"the Software Products. \n"
-"Any attempt to install, duplicate or use the Software Products in a manner "
-"which does not comply \n"
-"with the terms and conditions of this License is void and will terminate "
-"your rights under this \n"
-"License. Upon termination of the License, you must immediately destroy all "
-"copies of the \n"
-"Software Products.\n"
-"\n"
-"\n"
-"2. Limited Warranty\n"
-"\n"
-"The Software Products and attached documentation are provided \"as is\", "
-"with no warranty, to the \n"
-"extent permitted by law.\n"
-"MandrakeSoft S.A. will, in no circumstances and to the extent permitted by "
-"law, be liable for any special,\n"
-"incidental, direct or indirect damages whatsoever (including without "
-"limitation damages for loss of \n"
-"business, interruption of business, financial loss, legal fees and penalties "
-"resulting from a court \n"
-"judgment, or any other consequential loss) arising out of the use or "
-"inability to use the Software \n"
-"Products, even if MandrakeSoft S.A. has been advised of the possibility or "
-"occurance of such \n"
-"damages.\n"
-"\n"
-"LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN SOME "
-"COUNTRIES\n"
-"\n"
-"To the extent permitted by law, MandrakeSoft S.A. or its distributors will, "
-"in no circumstances, be \n"
-"liable for any special, incidental, direct or indirect damages whatsoever "
-"(including without \n"
-"limitation damages for loss of business, interruption of business, financial "
-"loss, legal fees \n"
-"and penalties resulting from a court judgment, or any other consequential "
-"loss) arising out \n"
-"of the possession and use of software components or arising out of "
-"downloading software components \n"
-"from one of Mandrake Linux sites which are prohibited or restricted in some "
-"countries by local laws.\n"
-"This limited liability applies to, but is not restricted to, the strong "
-"cryptography components \n"
-"included in the Software Products.\n"
-"\n"
-"\n"
-"3. The GPL License and Related Licenses\n"
-"\n"
-"The Software Products consist of components created by different persons or "
-"entities. Most \n"
-"of these components are governed under the terms and conditions of the GNU "
-"General Public \n"
-"Licence, hereafter called \"GPL\", or of similar licenses. Most of these "
-"licenses allow you to use, \n"
-"duplicate, adapt or redistribute the components which they cover. Please "
-"read carefully the terms \n"
-"and conditions of the license agreement for each component before using any "
-"component. Any question \n"
-"on a component license should be addressed to the component author and not "
-"to MandrakeSoft.\n"
-"The programs developed by MandrakeSoft S.A. are governed by the GPL License. "
-"Documentation written \n"
-"by MandrakeSoft S.A. is governed by a specific license. Please refer to the "
-"documentation for \n"
-"further details.\n"
-"\n"
-"\n"
-"4. Intellectual Property Rights\n"
-"\n"
-"All rights to the components of the Software Products belong to their "
-"respective authors and are \n"
-"protected by intellectual property and copyright laws applicable to software "
-"programs.\n"
-"MandrakeSoft S.A. reserves its rights to modify or adapt the Software "
-"Products, as a whole or in \n"
-"parts, by all means and for all purposes.\n"
-"\"Mandrake\", \"Mandrake Linux\" and associated logos are trademarks of "
-"MandrakeSoft S.A. \n"
-"\n"
-"\n"
-"5. Governing Laws \n"
-"\n"
-"If any portion of this agreement is held void, illegal or inapplicable by a "
-"court judgment, this \n"
-"portion is excluded from this contract. You remain bound by the other "
-"applicable sections of the \n"
-"agreement.\n"
-"The terms and conditions of this License are governed by the Laws of "
-"France.\n"
-"All disputes on the terms of this license will preferably be settled out of "
-"court. As a last \n"
-"resort, the dispute will be referred to the appropriate Courts of Law of "
-"Paris - France.\n"
-"For any question on this document, please contact MandrakeSoft S.A. \n"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:205
-#: ../../install_steps_interactive.pm_.c:1017
-#: ../../standalone/keyboarddrake_.c:28
-msgid "Keyboard"
-msgstr "Stokellaoueg"
-
-#: ../../install_steps_interactive.pm_.c:206
-#, fuzzy
-msgid "Please choose your keyboard layout."
-msgstr "Dibabit reizhadur ho stokellaoueg, mar plij."
-
-#: ../../install_steps_interactive.pm_.c:207
-#, fuzzy
-msgid "Here is the full list of keyboards available"
-msgstr "stokellaoueg"
-
-#: ../../install_steps_interactive.pm_.c:224
-msgid "Which installation class do you want?"
-msgstr "Pe renkad staliaƱ a fell deoc'h ?"
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Install/Update"
-msgstr "StaliaƱ/Bremanaat"
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Is this an install or an update?"
-msgstr "Hag ur staliadur pe ur bremanadur eo ?"
-
-#: ../../install_steps_interactive.pm_.c:235
-msgid "Recommended"
-msgstr "Erbedet"
-
-#: ../../install_steps_interactive.pm_.c:238
-#: ../../install_steps_interactive.pm_.c:241
-msgid "Expert"
-msgstr "Mailh"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Upgrade"
-msgstr "Bremanaat"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Upgrade packages only"
-msgstr "Bremanaat pakadoĆ¹ hep ken"
-
-#: ../../install_steps_interactive.pm_.c:266
-msgid "Please choose the type of your mouse."
-msgstr "Dibabit seurt ho logodenn, mar plij."
-
-#: ../../install_steps_interactive.pm_.c:272 ../../standalone/mousedrake_.c:65
-msgid "Mouse Port"
-msgstr "Porzh al logodenn"
-
-#: ../../install_steps_interactive.pm_.c:273 ../../standalone/mousedrake_.c:66
-msgid "Please choose on which serial port your mouse is connected to."
-msgstr "Dibabit ar porzh a-steud m'eo luget ho logodenn outaƱ, mar plij."
-
-#: ../../install_steps_interactive.pm_.c:281
-msgid "Buttons emulation"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:283
-msgid "Button 2 Emulation"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:284
-msgid "Button 3 Emulation"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "Configuring PCMCIA cards..."
-msgstr "O kefluniaƱ kartennoĆ¹ PCMCIA..."
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "PCMCIA"
-msgstr "PCMCIA"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "Configuring IDE"
-msgstr "KefluniaƱ IDE"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "IDE"
-msgstr "IDE"
-
-#: ../../install_steps_interactive.pm_.c:327
-msgid "No partition available"
-msgstr "parzhadur hegerz ebet"
-
-#: ../../install_steps_interactive.pm_.c:330
-msgid "Scanning partitions to find mount points"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:338
-msgid "Choose the mount points"
-msgstr "Dibabit at poentoĆ¹ marc'haƱ"
-
-#: ../../install_steps_interactive.pm_.c:357
-#, fuzzy, c-format
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I can try to go on, erasing over bad partitions (ALL DATA will be lost!).\n"
-"The other solution is to not allow DrakX to modify the partition table.\n"
-"(the error is %s)\n"
-"\n"
-"Do you agree to loose all the partitions?\n"
-msgstr ""
-"N'hellaƱ ket lenn ho taolenn barzhaƱ, re vrein eo evidon :(\n"
-"Klask a rin kenderc'hel en ur ziverkaƱ ar parzhadurioĆ¹ siek"
-
-#: ../../install_steps_interactive.pm_.c:370
-msgid ""
-"DiskDrake failed to read correctly the partition table.\n"
-"Continue at your own risk!"
-msgstr ""
-"Ne c'hellas ket DiskDrake lenn ent reizh an daolenn barzhaƱ.\n"
-"Kendalc'hit war ho mar !"
-
-#: ../../install_steps_interactive.pm_.c:386
-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 ""
-
-#: ../../install_steps_interactive.pm_.c:395
-#, fuzzy
-msgid "No root partition found to perform an upgrade"
-msgstr "Parzhadur gwrizienn kavet ebet"
-
-#: ../../install_steps_interactive.pm_.c:396
-msgid "Root Partition"
-msgstr "Parzhadur gwrizienn"
-
-#: ../../install_steps_interactive.pm_.c:397
-msgid "What is the root partition (/) of your system?"
-msgstr "Pehini eo parzhadur gwrizienn (/) ho reizhiad ?"
-
-#: ../../install_steps_interactive.pm_.c:411
-msgid "You need to reboot for the partition table modifications to take place"
-msgstr "Ret eo deoc'h adloc'haƱ evit ma talvezo kemmoĆ¹ an daolenn barzhaƱ"
-
-#: ../../install_steps_interactive.pm_.c:435
-msgid "Choose the partitions you want to format"
-msgstr "Dibabit ar parzhadur a vennit furmadiƱ"
-
-#: ../../install_steps_interactive.pm_.c:436
-msgid "Check bad blocks?"
-msgstr "GwiriaƱ ar bloc'hoĆ¹ siek ?"
-
-#: ../../install_steps_interactive.pm_.c:462
-msgid "Formatting partitions"
-msgstr "O furmadiƱ parzhadurioĆ¹"
-
-#: ../../install_steps_interactive.pm_.c:464
-#, c-format
-msgid "Creating and formatting file %s"
-msgstr "O krouiƱ hag o furmadiƱ ar restr saveteiƱ %s"
-
-#: ../../install_steps_interactive.pm_.c:467
-msgid "Not enough swap space to fulfill installation, please add some"
-msgstr "Ket a-walc'h a zisloaƱ evit peurstaliaƱ, kreskit anezhaƱ mar plij"
-
-#: ../../install_steps_interactive.pm_.c:473
-msgid "Looking for available packages..."
-msgstr "O klask ar pakadoĆ¹ hegerz"
-
-#: ../../install_steps_interactive.pm_.c:479
-msgid "Finding packages to upgrade..."
-msgstr "O kavout pakadoĆ¹ da vremanaat"
-
-#: ../../install_steps_interactive.pm_.c:496
-#, fuzzy, c-format
-msgid ""
-"Your system does not have enough space left for installation or upgrade (%d "
-"> %d)"
-msgstr "Ho reizhiad n'eus ket wa-walc'h a egor evit staliaƱ pe vremanaat"
-
-#: ../../install_steps_interactive.pm_.c:538
-msgid ""
-"Please choose load or save package selection on floppy.\n"
-"The format is the same as auto_install generated floppies."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:541
-msgid "Load from floppy"
-msgstr "Assevel adalek ar pladennig"
-
-#: ../../install_steps_interactive.pm_.c:543
-msgid "Loading from floppy"
-msgstr "AssevelaƱ adalek ar pladennig"
-
-#: ../../install_steps_interactive.pm_.c:543
-msgid "Package selection"
-msgstr "Diuzadenn pakadoĆ¹"
-
-#: ../../install_steps_interactive.pm_.c:548
-#, fuzzy
-msgid "Insert a floppy containing package selection"
-msgstr "Lakait ur bladennig el lenner %s"
-
-#: ../../install_steps_interactive.pm_.c:560
-msgid "Save on floppy"
-msgstr "EnrollaƱ war bladennig"
-
-#: ../../install_steps_interactive.pm_.c:628
-msgid "Selected size is larger than available space"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:641
-#, fuzzy
-msgid "Type of install"
-msgstr "Dibabit pakadoĆ¹ da staliaƱ"
-
-#: ../../install_steps_interactive.pm_.c:642
-msgid ""
-"You haven't selected any group of packages.\n"
-"Please choose the minimal installation you want:"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:645
-msgid "With X"
-msgstr "Gant X"
-
-#: ../../install_steps_interactive.pm_.c:647
-msgid "With basic documentation (recommended!)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:648
-msgid "Truly minimal install (especially no urpmi)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:732
-msgid ""
-"If you have all the CDs in the list below, click Ok.\n"
-"If you have none of those CDs, click Cancel.\n"
-"If only some CDs are missing, unselect them, then click Ok."
-msgstr ""
-"M'hoc'h eus an holl CDoĆ¹ er roll a-is, gwaskit Mat eo.\n"
-"Ma n'hoc'h eus hini eus ar CDoĆ¹-se, gwaskit NullaƱ.\n"
-"Ma fazi deoc'h lod eus ar CDoĆ¹, andiuzit anezho ha gwaskit Mat eo."
-
-#: ../../install_steps_interactive.pm_.c:737
-#, c-format
-msgid "Cd-Rom labeled \"%s\""
-msgstr "Cd-Rom skridennet \"%s\""
-
-#: ../../install_steps_interactive.pm_.c:757
-msgid "Preparing installation"
-msgstr "O prientiƱ ar staliadur"
-
-#: ../../install_steps_interactive.pm_.c:766
-#, c-format
-msgid ""
-"Installing package %s\n"
-"%d%%"
-msgstr ""
-"O staliaƱ ar pakad %s\n"
-"%d%%"
-
-#: ../../install_steps_interactive.pm_.c:812
-msgid "Post-install configuration"
-msgstr "Kefluniadur goude staliaƱ"
-
-#: ../../install_steps_interactive.pm_.c:818
-#, fuzzy, c-format
-msgid "Please insert the Boot floppy used in drive %s"
-msgstr "Lakait ur bladennig el lenner %s"
-
-#: ../../install_steps_interactive.pm_.c:824
-#, fuzzy, c-format
-msgid "Please insert the Update Modules floppy in drive %s"
-msgstr "Lakait ur bladennig gwerc'h el lenner %s"
-
-#: ../../install_steps_interactive.pm_.c:844
-msgid ""
-"You now have the opportunity to download encryption software.\n"
-"\n"
-"WARNING:\n"
-"\n"
-"Due to different general requirements applicable to these software and "
-"imposed\n"
-"by various jurisdictions, customer and/or end user of theses software "
-"should\n"
-"ensure that the laws of his/their jurisdiction allow him/them to download, "
-"stock\n"
-"and/or use these software.\n"
-"\n"
-"In addition customer and/or end user shall particularly be aware to not "
-"infringe\n"
-"the laws of his/their jurisdiction. Should customer and/or end user not\n"
-"respect the provision of these applicable laws, he/they will incure serious\n"
-"sanctions.\n"
-"\n"
-"In no event shall Mandrakesoft nor its manufacturers and/or suppliers be "
-"liable\n"
-"for special, indirect or incidental damages whatsoever (including, but not\n"
-"limited to loss of profits, business interruption, loss of commercial data "
-"and\n"
-"other pecuniary losses, and eventual liabilities and indemnification to be "
-"paid\n"
-"pursuant to a court decision) arising out of use, possession, or the sole\n"
-"downloading of these software, to which customer and/or end user could\n"
-"eventually have access after having sign up the present agreement.\n"
-"\n"
-"\n"
-"For any queries relating to these agreement, please contact \n"
-"Mandrakesoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA"
-msgstr ""
-"Tu zo deoc'h bremaƱ ezkargaƱ meziantoĆ¹ gouestlet d'ar rinegouriezh.\n"
-"\n"
-"HO EVEZHĀ :\n"
-"\n"
-"Abalamour m'eo disheƱvel ar pennaennoĆ¹ meur o talvezout evit ar meziantoĆ¹-"
-"maƱ hervez\n"
-"gwiraouriezhoĆ¹ disheƱvel, ret eo d'an arval ha/pe arveriad en diwezh ar "
-"meziantoĆ¹-maƱ\n"
-"gwiriaƱ eo aotreet da ezskargaƱ, mirout ha/pe implijout ar meziantoĆ¹-maƱ\n"
-"gouez d'al lezennoĆ¹ en e/he gwiraouriezh.\n"
-"\n"
-"Ouzhpenn an arval ha/pe arveriad en diwezh a rank bezaƱ war evezh chom hep "
-"terriƱ\n"
-"lezennoĆ¹ e/he gwiraouriezh. Ma c'hoarvezfe gant an arval ha/pe arveriad\n"
-"en diwezh na zoujaƱ ouzh termenoĆ¹ lezennoĆ¹ o talvezout, e telezfe kastizoĆ¹\n"
-"kriz.\n"
-"\n"
-"E nep degouezh ne vo dalc'het Mandrakesoft nag e oberatourien na/pe e "
-"bourvezerien\n"
-"atebek eus nep gaou dibar, ameeun pe zarvoudus a c'hoarvezfe (ha pa vefe\n"
-"zoken e-touez traoĆ¹ all koll gounid, arsav aferioĆ¹, koll roadoĆ¹ kenwerzhel "
-"ha\n"
-"kolloĆ¹ arc'hant all, hag atebegezh pe zigoll diouzh an dro da vezaƱ paeet\n"
-"da heul ur barnadeg) o tont diouzh implij, perc'hennaƱ, pe zoken ezkargaƱ\n"
-"ar meziantoĆ¹-maƱ, a c'hellfe an arval ha/pe arveriad en diwezh bezaƱ\n"
-"grataet goude bezaƱ sinet an emglev-maƱ.\n"
-"\n"
-"\n"
-"Evit forzh pe c'houlenn a-zivout an emglevioĆ¹-se, darempredit mar plij\n"
-"Mandrakesoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"SUA"
-
-#: ../../install_steps_interactive.pm_.c:883
-msgid ""
-"You now have the opportunity to download updated packages. These packages\n"
-"have been released 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 ""
-
-#: ../../install_steps_interactive.pm_.c:898
-#, fuzzy
-msgid ""
-"Contacting Mandrake Linux web site to get the list of available mirrors..."
-msgstr "O taremprediƱ ar melezour evit kaout roll ar pakadoĆ¹ hegerz"
-
-#: ../../install_steps_interactive.pm_.c:903
-msgid "Choose a mirror from which to get the packages"
-msgstr "Dibabit ur melezour da dapout ar pakadoĆ¹ diwarnaƱ"
-
-#: ../../install_steps_interactive.pm_.c:912
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "O taremprediƱ ar melezour evit kaout roll ar pakadoĆ¹ hegerz"
-
-#: ../../install_steps_interactive.pm_.c:939
-msgid "Which is your timezone?"
-msgstr "Pe seurt a vo ho takad-eur ?"
-
-#: ../../install_steps_interactive.pm_.c:944
-#, fuzzy
-msgid "Hardware clock set to GMT"
-msgstr "Ha war GMT eo lakaet ho eurier periantel ?"
-
-#: ../../install_steps_interactive.pm_.c:945
-msgid "Automatic time synchronization (using NTP)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:952
-msgid "NTP Server"
-msgstr "Servijer NTP"
-
-#: ../../install_steps_interactive.pm_.c:986
-#: ../../install_steps_interactive.pm_.c:994
-#, fuzzy
-msgid "Remote CUPS server"
-msgstr "Steud a-bell"
-
-#: ../../install_steps_interactive.pm_.c:987
-#, fuzzy
-msgid "No printer"
-msgstr "Moullerez lec'hel"
-
-#: ../../install_steps_interactive.pm_.c:1004
-#, fuzzy
-msgid "Do you have an ISA sound card?"
-msgstr "Hag un all hoc'h eus ?"
-
-#: ../../install_steps_interactive.pm_.c:1006
-msgid "Run \"sndconfig\" after installation to configure your sound card"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1008
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1013 ../../steps.pm_.c:27
-msgid "Summary"
-msgstr "Evit diverriƱ"
-
-#: ../../install_steps_interactive.pm_.c:1016
-msgid "Mouse"
-msgstr "Logodenn"
-
-#: ../../install_steps_interactive.pm_.c:1018
-msgid "Timezone"
-msgstr "Takad-eur"
-
-#: ../../install_steps_interactive.pm_.c:1019 ../../printerdrake.pm_.c:2279
-#: ../../printerdrake.pm_.c:2357
-msgid "Printer"
-msgstr "Moullerez"
-
-#: ../../install_steps_interactive.pm_.c:1021
-msgid "ISDN card"
-msgstr "Kartenn ISDN"
-
-#: ../../install_steps_interactive.pm_.c:1024
-#: ../../install_steps_interactive.pm_.c:1026
-msgid "Sound card"
-msgstr "Kartenn son"
-
-#: ../../install_steps_interactive.pm_.c:1028
-msgid "TV card"
-msgstr "Kartenn pellwel"
-
-#: ../../install_steps_interactive.pm_.c:1066
-#: ../../install_steps_interactive.pm_.c:1090
-#: ../../install_steps_interactive.pm_.c:1094
-msgid "LDAP"
-msgstr "LDAP"
-
-#: ../../install_steps_interactive.pm_.c:1067
-#: ../../install_steps_interactive.pm_.c:1090
-#: ../../install_steps_interactive.pm_.c:1103
-msgid "NIS"
-msgstr "NIS"
-
-#: ../../install_steps_interactive.pm_.c:1068
-#: ../../install_steps_interactive.pm_.c:1090
-msgid "Local files"
-msgstr "RestroĆ¹ lec'hel"
-
-#: ../../install_steps_interactive.pm_.c:1077
-#: ../../install_steps_interactive.pm_.c:1078 ../../steps.pm_.c:24
-msgid "Set root password"
-msgstr "TermeniƱ tremenger root"
-
-#: ../../install_steps_interactive.pm_.c:1079
-msgid "No password"
-msgstr "Tremenger ebet"
-
-#: ../../install_steps_interactive.pm_.c:1084
-#, c-format
-msgid "This password is too short (it must be at least %d characters long)"
-msgstr "Re eeun eo an tremenger-se (%d arouezenn a zo ret d'an nebeutaƱ)"
-
-#: ../../install_steps_interactive.pm_.c:1090 ../../network/modem.pm_.c:49
-#: ../../standalone/draknet_.c:626 ../../standalone/logdrake_.c:172
-msgid "Authentication"
-msgstr "Dilesadur"
-
-#: ../../install_steps_interactive.pm_.c:1098
-#, fuzzy
-msgid "Authentication LDAP"
-msgstr "Dilesadur"
-
-#: ../../install_steps_interactive.pm_.c:1099
-msgid "LDAP Base dn"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1100
-msgid "LDAP Server"
-msgstr "Servijer LDAP"
-
-#: ../../install_steps_interactive.pm_.c:1106
-msgid "Authentication NIS"
-msgstr "Dilesadur NIS"
-
-#: ../../install_steps_interactive.pm_.c:1107
-msgid "NIS Domain"
-msgstr "Domani NIS"
-
-#: ../../install_steps_interactive.pm_.c:1108
-msgid "NIS Server"
-msgstr "Servijer NIS"
-
-#: ../../install_steps_interactive.pm_.c:1143
-#, fuzzy
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"SILO on your system, or another operating system removes SILO, or SILO "
-"doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures.\n"
-"\n"
-"If you want to create a bootdisk for your system, insert a floppy in the "
-"first\n"
-"drive and press \"Ok\"."
-msgstr ""
-"Ur bladenn loc'haƱ neuziet a ro un tu da loc'haƱ ho reizhiad Linux hep "
-"bezaƱ\n"
-"dindan beli ar c'harger loc'haƱ boas. Talvoudus eo ma ne mennit ket staliaƱ "
-"LILO\n"
-"(pe grub) war ho reizhiad, pe ma skarzh ur reizhiad oberiaƱ LILO, pe ma ne\n"
-"da ket en-dro LILO war ho kefluniadur periantel. Ur bladenn loc'haƱ neuziet\n"
-"a c'hell ivez bezaƱ implijet gant ar skeudenn saveteiƱ Mandrake, en ur "
-"aesaat an\n"
-"assevel pa vefec'h sac'het grevus. Mennout a rit krouiƱ ur bladenn loc'haƱ "
-"evit\n"
-"ho reizhiad ?"
-
-#: ../../install_steps_interactive.pm_.c:1159
-msgid "First floppy drive"
-msgstr "Lenner pladennig kentaƱ"
-
-#: ../../install_steps_interactive.pm_.c:1160
-msgid "Second floppy drive"
-msgstr "Eil lenner pladennig"
-
-#: ../../install_steps_interactive.pm_.c:1161 ../../printerdrake.pm_.c:1851
-msgid "Skip"
-msgstr "Tremen e-biou"
-
-#: ../../install_steps_interactive.pm_.c:1166
-#, c-format
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"LILO (or grub) on your system, or another operating system removes LILO, or "
-"LILO doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures. Would you like to create a bootdisk for your system?\n"
-"%s"
-msgstr ""
-"Ur bladenn loc'haƱ neuziet a ro un tu da loc'haƱ ho reizhiad Linux hep "
-"bezaƱ\n"
-"dindan beli ar c'harger loc'haƱ boas. Talvoudus eo ma ne mennit ket staliaƱ "
-"LILO\n"
-"(pe grub) war ho reizhiad, pe ma skarzh ur reizhiad oberiaƱ LILO, pe ma ne\n"
-"da ket en-dro LILO war ho kefluniadur periantel. Ur bladenn loc'haƱ neuziet\n"
-"a c'hell ivez bezaƱ implijet gant ar skeudenn saveteiƱ Mandrake, en ur "
-"aesaat an\n"
-"assevel pa vefec'h sac'het grevus. Mennout a rit krouiƱ ur bladenn loc'haƱ "
-"evit\n"
-"ho reizhiad ?\n"
-"%s"
-
-#: ../../install_steps_interactive.pm_.c:1172
-msgid ""
-"\n"
-"\n"
-"(WARNING! You're using XFS for your root partition,\n"
-"creating a bootdisk on a 1.44 Mb floppy will probably fail,\n"
-"because XFS needs a very large driver)."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1180
-msgid "Sorry, no floppy drive available"
-msgstr "Ho tigarez, lenner pladennig hegerz ebet"
-
-#: ../../install_steps_interactive.pm_.c:1184
-msgid "Choose the floppy drive you want to use to make the bootdisk"
-msgstr ""
-"Dibabit al lenner pladennig a vennit implijout evit ober ar bladenn loc'haƱ"
-
-#: ../../install_steps_interactive.pm_.c:1188
-#, fuzzy, c-format
-msgid "Insert a floppy in %s"
-msgstr "Lakait ur bladennig el lenner %s"
-
-#: ../../install_steps_interactive.pm_.c:1191
-msgid "Creating bootdisk..."
-msgstr "O krouiƱ ar bladenn loc'haƱ"
-
-#: ../../install_steps_interactive.pm_.c:1198
-msgid "Preparing bootloader..."
-msgstr "O prientiƱ ar c'harger loc'haƱ"
-
-#: ../../install_steps_interactive.pm_.c:1209
-msgid ""
-"You appear to have an OldWorld or Unknown\n"
-" machine, the yaboot bootloader will not work for you.\n"
-"The install will continue, but you'll\n"
-" need to use BootX to boot your machine"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1215
-msgid "Do you want to use aboot?"
-msgstr "Mennout a rit implijout aboot?"
-
-#: ../../install_steps_interactive.pm_.c:1218
-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Ʊ ?"
-
-#: ../../install_steps_interactive.pm_.c:1225
-msgid "Installing bootloader"
-msgstr "StaliaƱ ar c'harger loc'haƱ"
-
-#: ../../install_steps_interactive.pm_.c:1231
-#, fuzzy
-msgid "Installation of bootloader failed. The following error occured:"
-msgstr "Staliadur LILO a zo sac'het. Degouezhet eo ar fazi a heulĀ :"
-
-#: ../../install_steps_interactive.pm_.c:1239
-#, c-format
-msgid ""
-"You may need to change your Open Firmware boot-device to\n"
-" enable the bootloader. If you don't 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\n"
-"At your next boot you should see the bootloader prompt."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1283
-#: ../../standalone/drakautoinst_.c:81
-#, c-format
-msgid "Insert a blank floppy in drive %s"
-msgstr "Lakait ur bladennig gwerc'h el lenner %s"
-
-#: ../../install_steps_interactive.pm_.c:1287
-msgid "Creating auto install floppy..."
-msgstr "O krouiƱ ur bladennig staliaƱ emgefreek"
-
-#: ../../install_steps_interactive.pm_.c:1298
-msgid ""
-"Some steps are not completed.\n"
-"\n"
-"Do you really want to quit now?"
-msgstr ""
-"LankadoĆ¹ 'zo n'int ket peurc'hraet.\n"
-"\n"
-"Mennout a rit kuitaat da vat bremaƱ ?"
-
-#: ../../install_steps_interactive.pm_.c:1309
-msgid ""
-"Congratulations, installation is complete.\n"
-"Remove the boot media and press return to reboot.\n"
-"\n"
-"\n"
-"For information on fixes which are available for this release of Mandrake "
-"Linux,\n"
-"consult the Errata available from:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/82errata.php3\n"
-"\n"
-"\n"
-"Information on configuring your system is available in the post\n"
-"install chapter of the Official Mandrake Linux User's Guide."
-msgstr ""
-"Gourc'hemennoĆ¹, peurc'hraet eo ar staliadur.\n"
-"Lamit ar bladenn loc'haƱ ha gwaskit enkas evit adloc'haƱ.\n"
-"\n"
-"\n"
-"Evit titouroĆ¹ war palastroĆ¹ hegerz evit stumm-maƱ Mandrake Linux,\n"
-"sellit ouzh ar meneger fazioĆ¹ hegerz e \n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/82errata.php3\n"
-"\n"
-"\n"
-"TitouroĆ¹ war gefluniaƱ ho reizhiad a zo hegerz e rannbennad Goude\n"
-"StaliaƱ Sturier ofisiel an Arveriad Mandrake Linux."
-
-#: ../../install_steps_interactive.pm_.c:1326
-#, fuzzy
-msgid "Generate auto install floppy"
-msgstr "O krouiƱ ur bladennig staliaƱ emgefreek"
-
-#: ../../install_steps_interactive.pm_.c:1328
-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 ""
-
-#: ../../install_steps_interactive.pm_.c:1333
-msgid "Automated"
-msgstr "Emgefreek"
-
-#: ../../install_steps_interactive.pm_.c:1333
-#, fuzzy
-msgid "Replay"
-msgstr "AdkargaƱ"
-
-#: ../../install_steps_interactive.pm_.c:1336
-#, fuzzy
-msgid "Save packages selection"
-msgstr "Diuz pakadoĆ¹ unan hag unan"
-
-#: ../../install_steps_newt.pm_.c:22
-#, c-format
-msgid "Mandrake Linux Installation %s"
-msgstr "Staliadur Mandrake Linux %s"
-
-#: ../../install_steps_newt.pm_.c:34
-msgid ""
-" <Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen "
-msgstr ""
-" <Tab>/<Alt-Tab> etre elfennoĆ¹ | <Esaouenn> a ziuz | <F12> skramm a heul "
-
-#: ../../interactive.pm_.c:87
-msgid "kdesu missing"
-msgstr "kdesu mank"
-
-#: ../../interactive.pm_.c:89 ../../interactive.pm_.c:100
-msgid "consolehelper missing"
-msgstr ""
-
-#: ../../interactive.pm_.c:152
-msgid "Choose a file"
-msgstr "Dibabit ur restr"
-
-#: ../../interactive.pm_.c:314
-msgid "Advanced"
-msgstr "Barek"
-
-#: ../../interactive.pm_.c:315
-#, fuzzy
-msgid "Basic"
-msgstr "Diazez"
-
-#: ../../interactive.pm_.c:386
-msgid "Please wait"
-msgstr "Gortozit mar plij"
-
-#: ../../interactive_stdio.pm_.c:29 ../../interactive_stdio.pm_.c:147
-msgid "Bad choice, try again\n"
-msgstr "Dibab fall, klaskit adarre\n"
-
-#: ../../interactive_stdio.pm_.c:30 ../../interactive_stdio.pm_.c:148
-#, c-format
-msgid "Your choice? (default %s) "
-msgstr "Ho tibab ? (%s dre ziouer)"
-
-#: ../../interactive_stdio.pm_.c:52
-#, c-format
-msgid ""
-"Entries you'll have to fill:\n"
-"%s"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:68
-#, fuzzy, c-format
-msgid "Your choice? (0/1, default `%s') "
-msgstr "Ho tibab ? (%s dre ziouer)"
-
-#: ../../interactive_stdio.pm_.c:93
-#, c-format
-msgid "Button `%s': %s"
-msgstr "Nozel `%s': %s"
-
-#: ../../interactive_stdio.pm_.c:94
-#, fuzzy
-msgid "Do you want to click on this button?"
-msgstr "Mennout a rit implijout SILO ?"
-
-#: ../../interactive_stdio.pm_.c:103
-msgid " enter `void' for void entry"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:103
-#, fuzzy, c-format
-msgid "Your choice? (default `%s'%s) "
-msgstr "Ho tibab ? (%s dre ziouer)"
-
-#: ../../interactive_stdio.pm_.c:121
-#, c-format
-msgid "=> There are many things to choose from (%s).\n"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:124
-msgid ""
-"Please choose the first number of the 10-range you wish to edit,\n"
-"or just hit Enter to proceed.\n"
-"Your choice? "
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:137
-#, c-format
-msgid ""
-"=> Notice, a label changed:\n"
-"%s"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:144
-msgid "Re-submit"
-msgstr ""
-
-#: ../../keyboard.pm_.c:197 ../../keyboard.pm_.c:228
-msgid "Czech (QWERTZ)"
-msgstr "Tchek (QWERTZ)"
-
-#: ../../keyboard.pm_.c:198 ../../keyboard.pm_.c:230
-msgid "German"
-msgstr "Alaman"
-
-#: ../../keyboard.pm_.c:199
-msgid "Dvorak"
-msgstr "Dvorak"
-
-#: ../../keyboard.pm_.c:200 ../../keyboard.pm_.c:237
-msgid "Spanish"
-msgstr "Spagnol"
-
-#: ../../keyboard.pm_.c:201 ../../keyboard.pm_.c:238
-msgid "Finnish"
-msgstr "Finnek"
-
-#: ../../keyboard.pm_.c:202 ../../keyboard.pm_.c:239
-msgid "French"
-msgstr "Gall"
-
-#: ../../keyboard.pm_.c:203 ../../keyboard.pm_.c:264
-msgid "Norwegian"
-msgstr "Norvegek"
-
-#: ../../keyboard.pm_.c:204
-msgid "Polish"
-msgstr "Polonek"
-
-#: ../../keyboard.pm_.c:205 ../../keyboard.pm_.c:272
-msgid "Russian"
-msgstr "Rusiek"
-
-#: ../../keyboard.pm_.c:207 ../../keyboard.pm_.c:274
-msgid "Swedish"
-msgstr "Svedek"
-
-#: ../../keyboard.pm_.c:208 ../../keyboard.pm_.c:289
-msgid "UK keyboard"
-msgstr "Stokellaoueg RU"
-
-#: ../../keyboard.pm_.c:209 ../../keyboard.pm_.c:290
-msgid "US keyboard"
-msgstr "Stokellaoueg SUA"
-
-#: ../../keyboard.pm_.c:211
-#, fuzzy
-msgid "Albanian"
-msgstr "Ukrainiek"
-
-#: ../../keyboard.pm_.c:212
-msgid "Armenian (old)"
-msgstr "Armeniek (kozh)"
-
-#: ../../keyboard.pm_.c:213
-msgid "Armenian (typewriter)"
-msgstr "Armeniek (skriverez)"
-
-#: ../../keyboard.pm_.c:214
-msgid "Armenian (phonetic)"
-msgstr "Armeniek (soniadel)"
-
-#: ../../keyboard.pm_.c:219
-msgid "Azerbaidjani (latin)"
-msgstr "Azerbaidjanek (latin)"
-
-#: ../../keyboard.pm_.c:221
-msgid "Belgian"
-msgstr "Belgian"
-
-#: ../../keyboard.pm_.c:222
-#, fuzzy
-msgid "Bulgarian (phonetic)"
-msgstr "Armeniek (soniadel)"
-
-#: ../../keyboard.pm_.c:223
-msgid "Bulgarian (BDS)"
-msgstr "Bulgarek (BDS)"
-
-#: ../../keyboard.pm_.c:224
-msgid "Brazilian (ABNT-2)"
-msgstr "Brasilek (ABNT-2)"
-
-#: ../../keyboard.pm_.c:225
-#, fuzzy
-msgid "Belarusian"
-msgstr "Bulgarek"
-
-#: ../../keyboard.pm_.c:226
-msgid "Swiss (German layout)"
-msgstr "Suis (reizhadur alaman)"
-
-#: ../../keyboard.pm_.c:227
-msgid "Swiss (French layout)"
-msgstr "Suis (reizhadur gall)"
-
-#: ../../keyboard.pm_.c:229
-msgid "Czech (QWERTY)"
-msgstr "Tchek (QWERTY)"
-
-#: ../../keyboard.pm_.c:231
-msgid "German (no dead keys)"
-msgstr "Alaman (stokell marv ebet)"
-
-#: ../../keyboard.pm_.c:232
-msgid "Danish"
-msgstr "Danek"
-
-#: ../../keyboard.pm_.c:233
-msgid "Dvorak (US)"
-msgstr "Dvorak (US)"
-
-#: ../../keyboard.pm_.c:234
-msgid "Dvorak (Norwegian)"
-msgstr "Dvorak (Norvegek)"
-
-#: ../../keyboard.pm_.c:235
-msgid "Dvorak (Swedish)"
-msgstr "Dvorak (Svedek)"
-
-#: ../../keyboard.pm_.c:236
-msgid "Estonian"
-msgstr "Estoniek"
-
-#: ../../keyboard.pm_.c:240
-msgid "Georgian (\"Russian\" layout)"
-msgstr "Jorjiek (reizhadur \"Rusiek\")"
-
-#: ../../keyboard.pm_.c:241
-msgid "Georgian (\"Latin\" layout)"
-msgstr "Jorjiek (reizhadur \"Latin\")"
-
-#: ../../keyboard.pm_.c:242
-msgid "Greek"
-msgstr "Gresian"
-
-#: ../../keyboard.pm_.c:243
-msgid "Hungarian"
-msgstr "Hungarian"
-
-#: ../../keyboard.pm_.c:244
-msgid "Croatian"
-msgstr "Kroatek"
-
-#: ../../keyboard.pm_.c:245
-msgid "Israeli"
-msgstr "Israelian"
-
-#: ../../keyboard.pm_.c:246
-msgid "Israeli (Phonetic)"
-msgstr "Israelian (soniadel)"
-
-#: ../../keyboard.pm_.c:247
-#, fuzzy
-msgid "Iranian"
-msgstr "Ukrainiek"
-
-#: ../../keyboard.pm_.c:248
-msgid "Icelandic"
-msgstr "Islandek"
-
-#: ../../keyboard.pm_.c:249
-msgid "Italian"
-msgstr "Italian"
-
-#: ../../keyboard.pm_.c:251
-msgid "Japanese 106 keys"
-msgstr ""
-
-#: ../../keyboard.pm_.c:254
-#, fuzzy
-msgid "Korean keyboard"
-msgstr "Reizhadur Stokellaoueg RU"
-
-#: ../../keyboard.pm_.c:255
-msgid "Latin American"
-msgstr "Amerikan Latin"
-
-#: ../../keyboard.pm_.c:256
-msgid "Lithuanian AZERTY (old)"
-msgstr "Lituaniek AZERTY (kozh)"
-
-#: ../../keyboard.pm_.c:258
-msgid "Lithuanian AZERTY (new)"
-msgstr "Lituaniek AZERTY (nevez)"
-
-#: ../../keyboard.pm_.c:259
-msgid "Lithuanian \"number row\" QWERTY"
-msgstr "Lituaniek QUERTY \"linenn sifroĆ¹\""
-
-#: ../../keyboard.pm_.c:260
-msgid "Lithuanian \"phonetic\" QWERTY"
-msgstr "Lituaniek QUERTY \"soniadel\""
-
-#: ../../keyboard.pm_.c:261
-#, fuzzy
-msgid "Latvian"
-msgstr "TitouroĆ¹"
-
-#: ../../keyboard.pm_.c:262
-msgid "Macedonian"
-msgstr "Makedonia"
-
-#: ../../keyboard.pm_.c:263
-msgid "Dutch"
-msgstr "Hollandek"
-
-#: ../../keyboard.pm_.c:265
-msgid "Polish (qwerty layout)"
-msgstr "Polonek (reizhadur qwerty)"
-
-#: ../../keyboard.pm_.c:266
-msgid "Polish (qwertz layout)"
-msgstr "Polonek (reizhadur qwerty)"
-
-#: ../../keyboard.pm_.c:267
-msgid "Portuguese"
-msgstr "Portugalek"
-
-#: ../../keyboard.pm_.c:268
-msgid "Canadian (Quebec)"
-msgstr "Kanadian (Kebek)"
-
-#: ../../keyboard.pm_.c:270
-#, fuzzy
-msgid "Romanian (qwertz)"
-msgstr "Rusiek (Yawerty)"
-
-#: ../../keyboard.pm_.c:271
-#, fuzzy
-msgid "Romanian (qwerty)"
-msgstr "Rusiek (Yawerty)"
-
-#: ../../keyboard.pm_.c:273
-msgid "Russian (Yawerty)"
-msgstr "Rusiek (Yawerty)"
-
-#: ../../keyboard.pm_.c:275
-msgid "Slovenian"
-msgstr "Slovek"
-
-#: ../../keyboard.pm_.c:276
-msgid "Slovakian (QWERTZ)"
-msgstr "Slovakek (QWERTZ)"
-
-#: ../../keyboard.pm_.c:277
-msgid "Slovakian (QWERTY)"
-msgstr "Slovakek (QWERTY)"
-
-#: ../../keyboard.pm_.c:279
-#, fuzzy
-msgid "Serbian (cyrillic)"
-msgstr "Yougoslaviek (reizhadur latin)"
-
-#: ../../keyboard.pm_.c:281
-#, fuzzy
-msgid "Tamil"
-msgstr "Taolenn"
-
-#: ../../keyboard.pm_.c:282
-msgid "Thai keyboard"
-msgstr "Stokellaoueg Thai"
-
-#: ../../keyboard.pm_.c:284
-#, fuzzy
-msgid "Tajik keyboard"
-msgstr "Stokellaoueg Thai"
-
-#: ../../keyboard.pm_.c:285
-msgid "Turkish (traditional \"F\" model)"
-msgstr "Turkek (hengounel doare \"F\")"
-
-#: ../../keyboard.pm_.c:286
-msgid "Turkish (modern \"Q\" model)"
-msgstr "Turkek (arnevez doare \"Q\")"
-
-#: ../../keyboard.pm_.c:288
-msgid "Ukrainian"
-msgstr "Ukrainiek"
-
-#: ../../keyboard.pm_.c:291
-msgid "US keyboard (international)"
-msgstr "Stokellaoueg SUA (etrevroadel)"
-
-#: ../../keyboard.pm_.c:292
-#, fuzzy
-msgid "Vietnamese \"numeric row\" QWERTY"
-msgstr "Lituaniek QUERTY \"linenn sifroĆ¹\""
-
-#: ../../keyboard.pm_.c:293
-msgid "Yugoslavian (latin)"
-msgstr "Yougoslaviek (latin)"
-
-#: ../../keyboard.pm_.c:301
-msgid "Right Alt key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:302
-msgid "Both Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:303
-msgid "Control and Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:304
-msgid "CapsLock key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:305
-msgid "Ctrl and Alt keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:306
-msgid "Alt and Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:307
-msgid "\"Menu\" key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:308
-msgid "Left \"Windows\" key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:309
-msgid "Right \"Windows\" key"
-msgstr ""
-
-#: ../../loopback.pm_.c:32
-#, c-format
-msgid "Circular mounts %s\n"
-msgstr "Marc'haƱ kelc'hiek %s\n"
-
-#: ../../lvm.pm_.c:88
-msgid "Remove the logical volumes first\n"
-msgstr ""
-
-#: ../../modules.pm_.c:832
-msgid ""
-"PCMCIA support no longer exist for 2.2 kernels. Please use a 2.4 kernel."
-msgstr ""
-
-#: ../../mouse.pm_.c:25
-msgid "Sun - Mouse"
-msgstr "Logodenn Sun"
-
-#: ../../mouse.pm_.c:32
-msgid "Logitech MouseMan+"
-msgstr "Logitech MouseMan+"
-
-#: ../../mouse.pm_.c:33
-msgid "Generic PS2 Wheel Mouse"
-msgstr "Logodenn rummel PS2 rodellek"
-
-#: ../../mouse.pm_.c:34
-msgid "GlidePoint"
-msgstr "GlidePoint"
-
-#: ../../mouse.pm_.c:36 ../../mouse.pm_.c:63
-msgid "Kensington Thinking Mouse"
-msgstr "Logodenn Kensington Thinking"
-
-#: ../../mouse.pm_.c:37 ../../mouse.pm_.c:59
-msgid "Genius NetMouse"
-msgstr "Genius NetMouse"
-
-#: ../../mouse.pm_.c:38
-msgid "Genius NetScroll"
-msgstr "Genius NetScroll"
-
-#: ../../mouse.pm_.c:43 ../../mouse.pm_.c:68
-msgid "1 button"
-msgstr "1 nozelenn"
-
-#: ../../mouse.pm_.c:44 ../../mouse.pm_.c:51
-msgid "Generic 2 Button Mouse"
-msgstr "Logodenn rummel 2 nozelenn"
-
-#: ../../mouse.pm_.c:45
-msgid "Generic"
-msgstr "Rummel"
-
-#: ../../mouse.pm_.c:46
-msgid "Wheel"
-msgstr "Rodel"
-
-#: ../../mouse.pm_.c:49
-msgid "serial"
-msgstr "a-steud"
-
-#: ../../mouse.pm_.c:52
-msgid "Generic 3 Button Mouse"
-msgstr "Logodenn rummel 3 nozelenn"
-
-#: ../../mouse.pm_.c:53
-msgid "Microsoft IntelliMouse"
-msgstr "Microsoft IntelliMouse"
-
-#: ../../mouse.pm_.c:54
-msgid "Logitech MouseMan"
-msgstr "Logitech MouseMan+/FirstMouse+"
-
-#: ../../mouse.pm_.c:55
-msgid "Mouse Systems"
-msgstr "Mouse Systems"
-
-#: ../../mouse.pm_.c:57
-msgid "Logitech CC Series"
-msgstr "Logitech doare CC"
-
-#: ../../mouse.pm_.c:58
-msgid "Logitech MouseMan+/FirstMouse+"
-msgstr "Logitech MouseMan+/FirstMouse+"
-
-#: ../../mouse.pm_.c:60
-msgid "MM Series"
-msgstr "Doare MM"
-
-#: ../../mouse.pm_.c:61
-msgid "MM HitTablet"
-msgstr "MM HitTablet"
-
-#: ../../mouse.pm_.c:62
-msgid "Logitech Mouse (serial, old C7 type)"
-msgstr "Logodenn Logitech (a-steud, seurt C7 kozh)"
-
-#: ../../mouse.pm_.c:66
-msgid "busmouse"
-msgstr "Logodenn bus"
-
-#: ../../mouse.pm_.c:69
-msgid "2 buttons"
-msgstr "2 nozelenn"
-
-#: ../../mouse.pm_.c:70
-msgid "3 buttons"
-msgstr "3 nozelenn"
-
-#: ../../mouse.pm_.c:73
-msgid "none"
-msgstr "ebet"
-
-#: ../../mouse.pm_.c:75
-msgid "No mouse"
-msgstr "Logodenn ebet"
-
-#: ../../mouse.pm_.c:499
-#, fuzzy
-msgid "Please test the mouse"
-msgstr "Dibabit seurt ho logodenn, mar plij."
-
-#: ../../mouse.pm_.c:500
-#, fuzzy
-msgid "To activate the mouse,"
-msgstr "Dibabit seurt ho logodenn, mar plij."
-
-#: ../../mouse.pm_.c:501
-msgid "MOVE YOUR WHEEL!"
-msgstr "FIĆ‘V HO RODELL !"
-
-#: ../../my_gtk.pm_.c:666
-msgid "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"
-msgstr "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"
-
-#: ../../my_gtk.pm_.c:701
-msgid "Finish"
-msgstr "Disoc'h"
-
-#: ../../my_gtk.pm_.c:701 ../../printerdrake.pm_.c:1590
-msgid "Next ->"
-msgstr "A heul ->"
-
-#: ../../my_gtk.pm_.c:702 ../../printerdrake.pm_.c:1588
-msgid "<- Previous"
-msgstr "<- Diaraog"
-
-#: ../../my_gtk.pm_.c:1034
-msgid "Is this correct?"
-msgstr "Ha reizh eo ?"
-
-#: ../../my_gtk.pm_.c:1098 ../../services.pm_.c:222
-msgid "Info"
-msgstr "TitouroĆ¹"
-
-#: ../../my_gtk.pm_.c:1119
-msgid "Expand Tree"
-msgstr "Astenn ar wezenn"
-
-#: ../../my_gtk.pm_.c:1120
-msgid "Collapse Tree"
-msgstr "PlegaƱ ar wezenn"
-
-#: ../../my_gtk.pm_.c:1121
-msgid "Toggle between flat and group sorted"
-msgstr "GwintaƱ etre kompez ha rummet dre strollad"
-
-#: ../../network/adsl.pm_.c:19 ../../network/ethernet.pm_.c:36
-#, fuzzy
-msgid "Connect to the Internet"
-msgstr "Anv ar gevreadenn"
-
-#: ../../network/adsl.pm_.c:20
-msgid ""
-"The most common way to connect with adsl is pppoe.\n"
-"Some connections use pptp, a few ones use dhcp.\n"
-"If you don't know, choose 'use pppoe'"
-msgstr ""
-
-#: ../../network/adsl.pm_.c:22
-msgid "Alcatel speedtouch usb"
-msgstr ""
-
-#: ../../network/adsl.pm_.c:22
-msgid "use dhcp"
-msgstr "implijit dhcp"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pppoe"
-msgstr "implijit pppoe"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pptp"
-msgstr "implijit pptp"
-
-#: ../../network/ethernet.pm_.c:37
-#, fuzzy
-msgid ""
-"Which dhcp client do you want to use?\n"
-"Default is dhcpcd"
-msgstr "Pe seurt parzhadur a vennit ?"
-
-#: ../../network/ethernet.pm_.c:88
-msgid ""
-"No ethernet network adapter has been detected on your system.\n"
-"I cannot set up this connection type."
-msgstr ""
-
-#: ../../network/ethernet.pm_.c:92 ../../standalone/drakgw_.c:248
-#, fuzzy
-msgid "Choose the network interface"
-msgstr "Dibabit ar ment nevez"
-
-#: ../../network/ethernet.pm_.c:93
-#, fuzzy
-msgid ""
-"Please choose which network adapter you want to use to connect to Internet"
-msgstr "Dibabit ar porzh a-steud m'eo luget ho logodenn outaƱ, mar plij."
-
-#: ../../network/ethernet.pm_.c:178
-msgid "no network card found"
-msgstr "kartenn rouedad kavet ebet"
-
-#: ../../network/ethernet.pm_.c:202 ../../network/network.pm_.c:364
-msgid "Configuring network"
-msgstr "KefluniaƱ ar rouedad"
-
-#: ../../network/ethernet.pm_.c:203
-#, fuzzy
-msgid ""
-"Please enter your host name if you know it.\n"
-"Some DHCP servers require the hostname to work.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''."
-msgstr ""
-"Roit ho anv ostiz mar plij.\n"
-"Un anv peurzoareet a zlefe bezaƱ hini o ostiz,\n"
-"evel ``mabenveg.mastal.makomp.com''.\n"
-"Gallout a rit ivez reiƱ chomlec'h IP an dreuzell m'hoc'h eus unan"
-
-#: ../../network/ethernet.pm_.c:207 ../../network/network.pm_.c:369
-msgid "Host name"
-msgstr "Anv an ostiz"
-
-#: ../../network/isdn.pm_.c:21 ../../network/isdn.pm_.c:44
-#: ../../network/netconnect.pm_.c:95 ../../network/netconnect.pm_.c:109
-#: ../../network/netconnect.pm_.c:164 ../../network/netconnect.pm_.c:179
-#: ../../network/netconnect.pm_.c:206 ../../network/netconnect.pm_.c:229
-#: ../../network/netconnect.pm_.c:237
-#, fuzzy
-msgid "Network Configuration Wizard"
-msgstr "Kefluniadur ar rouedad"
-
-#: ../../network/isdn.pm_.c:22
-#, fuzzy
-msgid "External ISDN modem"
-msgstr "Mailh"
-
-#: ../../network/isdn.pm_.c:22
-msgid "Internal ISDN card"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:22
-#, fuzzy
-msgid "What kind is your ISDN connection?"
-msgstr "Ouzh pe borzh a-steud eo luget ho logodenn ?"
-
-#: ../../network/isdn.pm_.c:45
-msgid ""
-"Which ISDN configuration do you prefer?\n"
-"\n"
-"* The Old configuration uses isdn4net. It contains powerfull\n"
-" tools, but is tricky to configure, and not standard.\n"
-"\n"
-"* The New configuration is easier to understand, more\n"
-" standard, but with less tools.\n"
-"\n"
-"We recommand the light configuration.\n"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:54
-#, fuzzy
-msgid "New configuration (isdn-light)"
-msgstr "o lenn ar c'hefluniadur"
-
-#: ../../network/isdn.pm_.c:54
-#, fuzzy
-msgid "Old configuration (isdn4net)"
-msgstr "o lenn ar c'hefluniadur"
-
-#: ../../network/isdn.pm_.c:170 ../../network/isdn.pm_.c:188
-#: ../../network/isdn.pm_.c:198 ../../network/isdn.pm_.c:205
-#: ../../network/isdn.pm_.c:215
-msgid "ISDN Configuration"
-msgstr "Kefluniadur ISDN"
-
-#: ../../network/isdn.pm_.c:170
-msgid ""
-"Select your provider.\n"
-"If it isn't listed, choose Unlisted."
-msgstr ""
-
-#: ../../network/isdn.pm_.c:183
-msgid "Europe protocol"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:183
-msgid "Europe protocol (EDSS1)"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:185
-#, fuzzy
-msgid "Protocol for the rest of the world"
-msgstr "AmprouiƱ ar c'hefluniadur"
-
-#: ../../network/isdn.pm_.c:185
-msgid ""
-"Protocol for the rest of the world\n"
-"No D-Channel (leased lines)"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:189
-#, fuzzy
-msgid "Which protocol do you want to use?"
-msgstr "Pe seurt parzhadur a vennit ?"
-
-#: ../../network/isdn.pm_.c:199
-#, fuzzy
-msgid "What kind of card do you have?"
-msgstr "Peseurt moullerez hoc'h eus ?"
-
-#: ../../network/isdn.pm_.c:200
-msgid "I don't know"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:200
-msgid "ISA / PCMCIA"
-msgstr "ISA / PCMCIA"
-
-#: ../../network/isdn.pm_.c:200
-msgid "PCI"
-msgstr "PCI"
-
-#: ../../network/isdn.pm_.c:206
-msgid ""
-"\n"
-"If you have an ISA card, the values on the next screen should be right.\n"
-"\n"
-"If you have a PCMCIA card, you have to know the \"irq\" and \"io\" of your "
-"card.\n"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:210
-msgid "Abort"
-msgstr "Dilaoskel"
-
-#: ../../network/isdn.pm_.c:210
-#, fuzzy
-msgid "Continue"
-msgstr "Kenderc'hel evelato ?"
-
-#: ../../network/isdn.pm_.c:216
-#, fuzzy
-msgid "Which is your ISDN card?"
-msgstr "Pehini eo ho takad-eur ?"
-
-#: ../../network/isdn.pm_.c:235
-msgid ""
-"I have detected an ISDN PCI card, but I don't know its type. Please select a "
-"PCI card on the next screen."
-msgstr ""
-
-#: ../../network/isdn.pm_.c:244
-msgid "No ISDN PCI card found. Please select one on the next screen."
-msgstr ""
-
-#: ../../network/modem.pm_.c:39
-msgid "Please choose which serial port your modem is connected to."
-msgstr "Dibabit ouzh pe borzh a-steud eo luget ho modem, mar plij."
-
-#: ../../network/modem.pm_.c:44
-msgid "Dialup options"
-msgstr "DibarzhoĆ¹ sifrennaƱ"
-
-#: ../../network/modem.pm_.c:45 ../../standalone/draknet_.c:622
-msgid "Connection name"
-msgstr "Anv ar gevreadenn"
-
-#: ../../network/modem.pm_.c:46 ../../standalone/draknet_.c:623
-#, fuzzy
-msgid "Phone number"
-msgstr "Niverenn bellgomz"
-
-#: ../../network/modem.pm_.c:47 ../../standalone/draknet_.c:624
-msgid "Login ID"
-msgstr "Anv ereaƱ"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "CHAP"
-msgstr "CHAP"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "PAP"
-msgstr "PAP"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Script-based"
-msgstr "Diazezet war ur skrid"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Terminal-based"
-msgstr "Diazezet war un dermenell"
-
-#: ../../network/modem.pm_.c:50 ../../standalone/draknet_.c:627
-msgid "Domain name"
-msgstr "Anv ar domani"
-
-#: ../../network/modem.pm_.c:51 ../../standalone/draknet_.c:628
-msgid "First DNS Server (optional)"
-msgstr "Servijer DNS kentaƱ (da zilenn)"
-
-#: ../../network/modem.pm_.c:52 ../../standalone/draknet_.c:629
-msgid "Second DNS Server (optional)"
-msgstr "Eil servijer DNS (da zilenn)"
-
-#: ../../network/netconnect.pm_.c:34
-msgid ""
-"\n"
-"You can disconnect or reconfigure your connection."
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:34 ../../network/netconnect.pm_.c:37
-#, fuzzy
-msgid ""
-"\n"
-"You can reconfigure your connection."
-msgstr "KefluniaƱ ur rouedad"
-
-#: ../../network/netconnect.pm_.c:34
-#, fuzzy
-msgid "You are currently connected to internet."
-msgstr "Da beseurt pladenn e mennit dilec'hiaƱ ?"
-
-#: ../../network/netconnect.pm_.c:37
-#, fuzzy
-msgid ""
-"\n"
-"You can connect to Internet or reconfigure your connection."
-msgstr "Anv ar gevreadenn"
-
-#: ../../network/netconnect.pm_.c:37
-#, fuzzy
-msgid "You are not currently connected to Internet."
-msgstr "Da beseurt pladenn e mennit dilec'hiaƱ ?"
-
-#: ../../network/netconnect.pm_.c:41
-#, fuzzy
-msgid "Connect"
-msgstr "Anv ar gevreadenn"
-
-#: ../../network/netconnect.pm_.c:43
-#, fuzzy
-msgid "Disconnect"
-msgstr "Lugerezh ar voullerez"
-
-#: ../../network/netconnect.pm_.c:45
-#, fuzzy
-msgid "Configure the connection"
-msgstr "KefluniaƱ ur rouedad"
-
-#: ../../network/netconnect.pm_.c:50
-#, fuzzy
-msgid "Internet connection & configuration"
-msgstr "Lugerezh ar voullerez"
-
-#: ../../network/netconnect.pm_.c:100
-#, fuzzy, c-format
-msgid "We are now going to configure the %s connection."
-msgstr "KefluniaƱ ur rouedad"
-
-#: ../../network/netconnect.pm_.c:109
-#, fuzzy, c-format
-msgid ""
-"\n"
-"\n"
-"\n"
-"We are now going to configure the %s connection.\n"
-"\n"
-"\n"
-"Press OK to continue."
-msgstr "KefluniaƱ ur rouedad"
-
-#: ../../network/netconnect.pm_.c:138 ../../network/netconnect.pm_.c:256
-#: ../../network/netconnect.pm_.c:276 ../../network/tools.pm_.c:63
-msgid "Network Configuration"
-msgstr "Kefluniadur ar rouedad"
-
-#: ../../network/netconnect.pm_.c:139
-msgid ""
-"Because you are doing a network installation, your network is already "
-"configured.\n"
-"Click on Ok to keep your configuration, or cancel to reconfigure your "
-"Internet & Network connection.\n"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:165
-msgid ""
-"Welcome to The Network Configuration Wizard.\n"
-"\n"
-"We are about to configure your internet/network connection.\n"
-"If you don't want to use the auto detection, deselect the checkbox.\n"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:171
-#, fuzzy
-msgid "Choose the profile to configure"
-msgstr "Dibabit ar ment nevez"
-
-#: ../../network/netconnect.pm_.c:172
-msgid "Use auto detection"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:179 ../../printerdrake.pm_.c:145
-msgid "Detecting devices..."
-msgstr "O tinoiƱ trobarzhelloĆ¹..."
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-#, fuzzy
-msgid "Normal modem connection"
-msgstr "KefluniaƱ ur rouedad"
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-#, fuzzy, c-format
-msgid "detected on port %s"
-msgstr "Poent marc'haƱ doubl %s"
-
-#: ../../network/netconnect.pm_.c:191 ../../network/netconnect.pm_.c:200
-#, fuzzy
-msgid "ISDN connection"
-msgstr "Lugerezh ar voullerez"
-
-#: ../../network/netconnect.pm_.c:191 ../../network/netconnect.pm_.c:200
-#, c-format
-msgid "detected %s"
-msgstr "kavoutet %s"
-
-#: ../../network/netconnect.pm_.c:192 ../../network/netconnect.pm_.c:201
-#, fuzzy
-msgid "ADSL connection"
-msgstr "Lugerezh ar voullerez"
-
-#: ../../network/netconnect.pm_.c:192 ../../network/netconnect.pm_.c:201
-#, c-format
-msgid "detected on interface %s"
-msgstr "kavoutet war %s"
-
-#: ../../network/netconnect.pm_.c:193 ../../network/netconnect.pm_.c:202
-#, fuzzy
-msgid "Cable connection"
-msgstr "Lugerezh ar voullerez"
-
-#: ../../network/netconnect.pm_.c:193 ../../network/netconnect.pm_.c:202
-#, fuzzy
-msgid "cable connection detected"
-msgstr "Lugerezh ar voullerez"
-
-#: ../../network/netconnect.pm_.c:194 ../../network/netconnect.pm_.c:203
-#, fuzzy
-msgid "LAN connection"
-msgstr "Lugerezh ar voullerez"
-
-#: ../../network/netconnect.pm_.c:194 ../../network/netconnect.pm_.c:203
-msgid "ethernet card(s) detected"
-msgstr "kartenn(oĆ¹) ethernet kavoutet"
-
-#: ../../network/netconnect.pm_.c:206
-#, fuzzy
-msgid "Choose the connection you want to configure"
-msgstr "Dibabit ar benveg a vennit staliaƱ"
-
-#: ../../network/netconnect.pm_.c:230
-msgid ""
-"You have configured multiple ways to connect to the Internet.\n"
-"Choose the one you want to use.\n"
-"\n"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:231
-#, fuzzy
-msgid "Internet connection"
-msgstr "Lugerezh ar voullerez"
-
-#: ../../network/netconnect.pm_.c:237
-#, fuzzy
-msgid "Do you want to start the connection at boot?"
-msgstr "Mennout a rit implijout aboot ?"
-
-#: ../../network/netconnect.pm_.c:251
-#, fuzzy
-msgid "Network configuration"
-msgstr "Kefluniadur ar rouedad"
-
-#: ../../network/netconnect.pm_.c:252
-msgid "The network needs to be restarted"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:256
-#, fuzzy, c-format
-msgid ""
-"A problem occured while restarting the network: \n"
-"\n"
-"%s"
-msgstr "Mennout a rit amprouiƱ ar c'hefluniadur ?"
-
-#: ../../network/netconnect.pm_.c:266
-msgid ""
-"Congratulations, the network and Internet configuration is finished.\n"
-"The configuration will now be applied to your system.\n"
-"\n"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:270
-msgid ""
-"After this is done, we recommend that you restart your X environment to "
-"avoid any hostname-related problems."
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:271
-msgid ""
-"Problems occured during configuration.\n"
-"Test your connection via net_monitor or mcc. If your connection doesn't "
-"work, you might want to relaunch the configuration."
-msgstr ""
-
-#: ../../network/network.pm_.c:293
-msgid ""
-"WARNING: this device has been previously configured to connect to the "
-"Internet.\n"
-"Simply accept to keep this device configured.\n"
-"Modifying the fields below will override this configuration."
-msgstr ""
-
-#: ../../network/network.pm_.c:298
-msgid ""
-"Please enter the IP configuration for this machine.\n"
-"Each item should be entered as an IP address in dotted-decimal\n"
-"notation (for example, 1.2.3.4)."
-msgstr ""
-"Skrivit ar c'hefluniadur IP evit ar benveg-maƱ mar plij.\n"
-"Pep mellad a zlefe bezaƱ skrivet evel ur chomlec'h IP e stumm\n"
-"sifroĆ¹ dekvel pikoĆ¹ etrezo (da skouer 1.2.3.4)."
-
-#: ../../network/network.pm_.c:308 ../../network/network.pm_.c:309
-#, c-format
-msgid "Configuring network device %s"
-msgstr "O kefluniaƱ an drobarzhell rouedad %s"
-
-#: ../../network/network.pm_.c:309
-#, fuzzy, c-format
-msgid " (driver %s)"
-msgstr "Servijer XFree86Ā : %s\n"
-
-#: ../../network/network.pm_.c:311 ../../standalone/draknet_.c:232
-#: ../../standalone/draknet_.c:468
-msgid "IP address"
-msgstr "Chomlec'h IP"
-
-#: ../../network/network.pm_.c:312 ../../standalone/draknet_.c:469
-msgid "Netmask"
-msgstr "Maskl rouedad"
-
-#: ../../network/network.pm_.c:313
-msgid "(bootp/dhcp)"
-msgstr "(bootp/dhcp)"
-
-#: ../../network/network.pm_.c:313
-msgid "Automatic IP"
-msgstr "IP emgefreek"
-
-#: ../../network/network.pm_.c:314
-#, fuzzy
-msgid "Start at boot"
-msgstr "KrouiƱ ur bladennig loc'haƱ"
-
-#: ../../network/network.pm_.c:335 ../../printerdrake.pm_.c:714
-msgid "IP address should be in format 1.2.3.4"
-msgstr "Er furmad 1.2.3.4 e tlefe bezaƱ ar chomlec'h IP"
-
-#: ../../network/network.pm_.c:365
-msgid ""
-"Please enter your host name.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''.\n"
-"You may also enter the IP address of the gateway if you have one"
-msgstr ""
-"Roit ho anv ostiz mar plij.\n"
-"Un anv peurzoareet a zlefe bezaƱ hini o ostiz,\n"
-"evel ``mabenveg.mastal.makomp.com''.\n"
-"Gallout a rit ivez reiƱ chomlec'h IP an dreuzell m'hoc'h eus unan"
-
-#: ../../network/network.pm_.c:370
-msgid "DNS server"
-msgstr "Servijer DNS"
-
-#: ../../network/network.pm_.c:371
-#, c-format
-msgid "Gateway (e.g. %s)"
-msgstr ""
-
-#: ../../network/network.pm_.c:373
-msgid "Gateway device"
-msgstr "Trobarzhell an dreuzell"
-
-#: ../../network/network.pm_.c:385
-#, fuzzy
-msgid "Proxies configuration"
-msgstr "Kefluniadur goude staliaƱ"
-
-#: ../../network/network.pm_.c:386
-msgid "HTTP proxy"
-msgstr "Proksi HTTP"
-
-#: ../../network/network.pm_.c:387
-msgid "FTP proxy"
-msgstr "Proksi FTP"
-
-#: ../../network/network.pm_.c:388
-msgid "Track network card id (useful for laptops)"
-msgstr ""
-
-#: ../../network/network.pm_.c:391
-msgid "Proxy should be http://..."
-msgstr "http://... a zlefe bezaƱ ar proksi"
-
-#: ../../network/network.pm_.c:392
-msgid "Proxy should be ftp://..."
-msgstr "ftp://... a zlefe bezaƱ ar proksi"
-
-#: ../../network/tools.pm_.c:41
-#, fuzzy
-msgid "Internet configuration"
-msgstr "KefluniaƱ ar proksioĆ¹"
-
-#: ../../network/tools.pm_.c:42
-#, fuzzy
-msgid "Do you want to try to connect to the Internet now?"
-msgstr "Mennout a rit amprouiƱ ar c'hefluniadur ?"
-
-#: ../../network/tools.pm_.c:46 ../../standalone/draknet_.c:197
-#, fuzzy
-msgid "Testing your connection..."
-msgstr "KefluniaƱ ur rouedad"
-
-#: ../../network/tools.pm_.c:56
-#, fuzzy
-msgid "The system is now connected to Internet."
-msgstr "Da beseurt pladenn e mennit dilec'hiaƱ ?"
-
-#: ../../network/tools.pm_.c:57
-msgid "For security reason, it will be disconnected now."
-msgstr ""
-
-#: ../../network/tools.pm_.c:58
-#, fuzzy
-msgid ""
-"The system doesn't seem to be connected to internet.\n"
-"Try to reconfigure your connection."
-msgstr "Anv ar gevreadenn"
-
-#: ../../network/tools.pm_.c:82
-#, fuzzy
-msgid "Connection Configuration"
-msgstr "KefluniaƱ ar proksioĆ¹"
-
-#: ../../network/tools.pm_.c:83
-msgid "Please fill or check the field below"
-msgstr ""
-
-#: ../../network/tools.pm_.c:85 ../../standalone/draknet_.c:608
-msgid "Card IRQ"
-msgstr "IRQ kartenn"
-
-#: ../../network/tools.pm_.c:86 ../../standalone/draknet_.c:609
-msgid "Card mem (DMA)"
-msgstr "Memor kartenn (DMA)"
-
-#: ../../network/tools.pm_.c:87 ../../standalone/draknet_.c:610
-msgid "Card IO"
-msgstr "IO kartenn"
-
-#: ../../network/tools.pm_.c:88 ../../standalone/draknet_.c:611
-msgid "Card IO_0"
-msgstr "IO_0 kartenn"
-
-#: ../../network/tools.pm_.c:89 ../../standalone/draknet_.c:612
-msgid "Card IO_1"
-msgstr "IO_1 kartenn"
-
-#: ../../network/tools.pm_.c:90 ../../standalone/draknet_.c:613
-msgid "Your personal phone number"
-msgstr ""
-
-#: ../../network/tools.pm_.c:91 ../../standalone/draknet_.c:614
-msgid "Provider name (ex provider.net)"
-msgstr ""
-
-#: ../../network/tools.pm_.c:92 ../../standalone/draknet_.c:615
-#, fuzzy
-msgid "Provider phone number"
-msgstr "Niverenn bellgomz"
-
-#: ../../network/tools.pm_.c:93 ../../standalone/draknet_.c:616
-msgid "Provider dns 1 (optional)"
-msgstr "DibarzhoĆ¹ ar voullerez (da zilenn)"
-
-#: ../../network/tools.pm_.c:94 ../../standalone/draknet_.c:617
-msgid "Provider dns 2 (optional)"
-msgstr "DibarzhoĆ¹ ar voullerez (da zilenn)"
-
-#: ../../network/tools.pm_.c:95
-#, fuzzy
-msgid "Choose your country"
-msgstr "Dibabit ho stokellaoueg"
-
-#: ../../network/tools.pm_.c:96 ../../standalone/draknet_.c:620
-#, fuzzy
-msgid "Dialing mode"
-msgstr "Anv domani"
-
-#: ../../network/tools.pm_.c:97 ../../standalone/draknet_.c:632
-#, fuzzy
-msgid "Connection speed"
-msgstr "Anv ar gevreadenn"
-
-#: ../../network/tools.pm_.c:98 ../../standalone/draknet_.c:633
-#, fuzzy
-msgid "Connection timeout (in sec)"
-msgstr "Anv ar gevreadenn"
-
-#: ../../network/tools.pm_.c:99 ../../standalone/draknet_.c:618
-#, fuzzy
-msgid "Account Login (user name)"
-msgstr "Poent marc'haƱ"
-
-#: ../../network/tools.pm_.c:100 ../../standalone/draknet_.c:619
-#, fuzzy
-msgid "Account Password"
-msgstr "Tremenger"
-
-#: ../../network/tools.pm_.c:118
-msgid "United Kingdom"
-msgstr ""
-
-#: ../../partition_table.pm_.c:600
-msgid "mount failed: "
-msgstr "marc'haƱ sac'hetĀ : "
-
-#: ../../partition_table.pm_.c:664
-msgid "Extended partition not supported on this platform"
-msgstr ""
-
-#: ../../partition_table.pm_.c:682
-msgid ""
-"You have a hole in your partition table but I can't use it.\n"
-"The only solution is to move your primary partitions to have the hole next "
-"to the extended partitions."
-msgstr ""
-"Un toull a zo en ho taolenn barzhaƱ hogen n'hellan ket e implijout.\n"
-"FiƱval ar parzhadurioĆ¹ kentaƱ derez evit ma vo an toull stok ouzh ar "
-"parzhadurioĆ¹ astennet eo an diskoulm"
-
-#: ../../partition_table.pm_.c:770
-#, c-format
-msgid "Restoring from file %s failed: %s"
-msgstr "Assevel adalek ar restr %s sac'het %s"
-
-#: ../../partition_table.pm_.c:772
-msgid "Bad backup file"
-msgstr "Restr gwareziƱ siek"
-
-#: ../../partition_table.pm_.c:794
-#, c-format
-msgid "Error writing to file %s"
-msgstr "Fazi en ur skrivaƱ er restr %s"
-
-#: ../../partition_table_raw.pm_.c:186
-msgid ""
-"Something bad is happening on your drive. \n"
-"A test to check the integrity of data has failed. \n"
-"It means writing anything on the disk will end up with random trash"
-msgstr ""
-
-#: ../../pkgs.pm_.c:24
-msgid "must have"
-msgstr "a rankfec'h kaout"
-
-#: ../../pkgs.pm_.c:25
-msgid "important"
-msgstr "a-bouez"
-
-#: ../../pkgs.pm_.c:26
-msgid "very nice"
-msgstr "brav-tre"
-
-#: ../../pkgs.pm_.c:27
-msgid "nice"
-msgstr "brav"
-
-#: ../../pkgs.pm_.c:28
-msgid "maybe"
-msgstr "marteze"
-
-#: ../../printer.pm_.c:23
-msgid "CUPS - Common Unix Printing System"
-msgstr ""
-
-#: ../../printer.pm_.c:24
-msgid "LPRng - LPR New Generation"
-msgstr ""
-
-#: ../../printer.pm_.c:25
-msgid "LPD - Line Printer Daemon"
-msgstr ""
-
-#: ../../printer.pm_.c:26
-msgid "PDQ - Print, Don't Queue"
-msgstr ""
-
-#: ../../printer.pm_.c:32 ../../printer.pm_.c:871
-msgid "CUPS"
-msgstr "CUPS"
-
-#: ../../printer.pm_.c:33
-msgid "LPRng"
-msgstr "LPRng"
-
-#: ../../printer.pm_.c:34
-msgid "LPD"
-msgstr "LPD"
-
-#: ../../printer.pm_.c:35
-msgid "PDQ"
-msgstr "PDQ"
-
-#: ../../printer.pm_.c:47
-msgid "Local printer"
-msgstr "Moullerez lec'hel"
-
-#: ../../printer.pm_.c:48
-#, fuzzy
-msgid "Remote printer"
-msgstr "DibarzhoĆ¹ ar voullerez lpd a-bell"
-
-#: ../../printer.pm_.c:49
-#, fuzzy
-msgid "Printer on remote CUPS server"
-msgstr "Steud a-bell"
-
-#: ../../printer.pm_.c:50 ../../printerdrake.pm_.c:736
-#, fuzzy
-msgid "Printer on remote lpd server"
-msgstr "lpd a-bell"
-
-#: ../../printer.pm_.c:51
-#, fuzzy
-msgid "Network printer (TCP/Socket)"
-msgstr "DibarzhoĆ¹ ar voullerez NetWare"
-
-#: ../../printer.pm_.c:52
-#, fuzzy
-msgid "Printer on SMB/Windows 95/98/NT server"
-msgstr "SMB/Windows 95/98/NT"
-
-#: ../../printer.pm_.c:53
-#, fuzzy
-msgid "Printer on NetWare server"
-msgstr "Servijer moullaƱ"
-
-#: ../../printer.pm_.c:54 ../../printerdrake.pm_.c:740
-#, fuzzy
-msgid "Enter a printer device URI"
-msgstr "Trobarzhell ar voullerez"
-
-#: ../../printer.pm_.c:55
-msgid "Pipe job into a command"
-msgstr ""
-
-#: ../../printer.pm_.c:504 ../../printer.pm_.c:695 ../../printer.pm_.c:1017
-#: ../../printerdrake.pm_.c:1667 ../../printerdrake.pm_.c:2733
-msgid "Unknown model"
-msgstr ""
-
-#: ../../printer.pm_.c:532
-msgid "Local Printers"
-msgstr "MoullerezioĆ¹ lec'hel"
-
-#: ../../printer.pm_.c:534 ../../printer.pm_.c:872
-msgid "Remote Printers"
-msgstr "Moullerezio* a-bell"
-
-#: ../../printer.pm_.c:541 ../../printerdrake.pm_.c:248
-#, c-format
-msgid " on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printer.pm_.c:544 ../../printerdrake.pm_.c:250
-#, c-format
-msgid ", USB printer \\/*%s"
-msgstr ", Mouluriez USB \\/*%s"
-
-#: ../../printer.pm_.c:549
-#, c-format
-msgid ", multi-function device on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printer.pm_.c:552
-msgid ", multi-function device on USB"
-msgstr ""
-
-#: ../../printer.pm_.c:554
-msgid ", multi-function device on HP JetDirect"
-msgstr ""
-
-#: ../../printer.pm_.c:556
-msgid ", multi-function device"
-msgstr ""
-
-#: ../../printer.pm_.c:559
-#, fuzzy, c-format
-msgid ", printing to %s"
-msgstr "Fazi en ur skrivaƱ er restr %s"
-
-#: ../../printer.pm_.c:561
-#, c-format
-msgid "on LPD server \"%s\", printer \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:563
-#, c-format
-msgid ", TCP/IP host \"%s\", port %s"
-msgstr ""
-
-#: ../../printer.pm_.c:567
-#, c-format
-msgid "on Windows server \"%s\", share \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:571
-#, c-format
-msgid "on Novell server \"%s\", printer \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:573
-#, c-format
-msgid ", using command %s"
-msgstr ""
-
-#: ../../printer.pm_.c:692 ../../printerdrake.pm_.c:1138
-msgid "Raw printer (No driver)"
-msgstr ""
-
-#: ../../printer.pm_.c:841
-#, fuzzy, c-format
-msgid "(on %s)"
-msgstr "(mollad %s)"
-
-#: ../../printer.pm_.c:843
-msgid "(on this machine)"
-msgstr ""
-
-#: ../../printer.pm_.c:868
-#, fuzzy, c-format
-msgid "On CUPS server \"%s\""
-msgstr "IP ar servijer SMB"
-
-#: ../../printer.pm_.c:874 ../../printerdrake.pm_.c:2394
-#: ../../printerdrake.pm_.c:2405 ../../printerdrake.pm_.c:2621
-#: ../../printerdrake.pm_.c:2673 ../../printerdrake.pm_.c:2700
-#: ../../printerdrake.pm_.c:2870 ../../printerdrake.pm_.c:2872
-msgid " (Default)"
-msgstr " (Dre ziouer)"
-
-#: ../../printerdrake.pm_.c:22
-msgid "Select Printer Connection"
-msgstr "Diuzit lugerezh ar voullerez"
-
-#: ../../printerdrake.pm_.c:23
-msgid "How is the printer connected?"
-msgstr "Penaos eo luget ar voullerez ?"
-
-#: ../../printerdrake.pm_.c:25
-msgid ""
-"\n"
-"Printers on remote CUPS servers you do not have to configure here; these "
-"printers will be automatically detected."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:69 ../../printerdrake.pm_.c:2457
-#, fuzzy
-msgid "CUPS configuration"
-msgstr "Kefluniadur"
-
-#: ../../printerdrake.pm_.c:70 ../../printerdrake.pm_.c:2458
-#, fuzzy
-msgid "Specify CUPS server"
-msgstr "Steud a-bell"
-
-#: ../../printerdrake.pm_.c:71
-msgid ""
-"To get access to printers on remote CUPS servers in your local network you "
-"do not have to configure anything; the CUPS servers inform your machine "
-"automatically about their printers. All printers currently known to your "
-"machine are listed in the \"Remote printers\" section in the main window of "
-"Printerdrake. When your CUPS server is not in your local network, you have "
-"to enter the CUPS server IP address and optionally the port number to get "
-"the printer information from the server, otherwise leave these fields blank."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:72
-msgid ""
-"\n"
-"Normally, CUPS is automatically configured according to your network "
-"environment, so that you can access the printers on the CUPS servers in your "
-"local network. If this does not work correctly, turn off \"Automatic CUPS "
-"configuration\" and edit your file /etc/cups/cupsd.conf manually. Do not "
-"forget to restart CUPS afterwards (command: \"service cups restart\")."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:76
-#, fuzzy
-msgid "The IP address should look like 192.168.1.20"
-msgstr "Er furmad 1.2.3.4 e tlefe bezaƱ ar chomlec'h IP"
-
-#: ../../printerdrake.pm_.c:80 ../../printerdrake.pm_.c:864
-msgid "The port number should be an integer!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:87
-#, fuzzy
-msgid "CUPS server IP"
-msgstr "IP ar servijer SMB"
-
-#: ../../printerdrake.pm_.c:88 ../../printerdrake.pm_.c:857
-#, fuzzy
-msgid "Port"
-msgstr "Paour"
-
-#: ../../printerdrake.pm_.c:90
-#, fuzzy
-msgid "Automatic CUPS configuration"
-msgstr "Kefluniadur goude staliaƱ"
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-msgid "Test ports"
-msgstr "AmprouiƱ ar porzhioĆ¹"
-
-#: ../../printerdrake.pm_.c:167 ../../printerdrake.pm_.c:2440
-#: ../../printerdrake.pm_.c:2559
-#, fuzzy
-msgid "Add a new printer"
-msgstr "Moullerez lec'hel"
-
-#: ../../printerdrake.pm_.c:168
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard allows you to install local or remote printers to be used from "
-"this machine and also from other machines in the network.\n"
-"\n"
-"It asks you for all necessary information to set up the printer and gives "
-"you access to all available printer drivers, driver options, and printer "
-"connection types."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:176 ../../printerdrake.pm_.c:203
-#: ../../printerdrake.pm_.c:378 ../../printerdrake.pm_.c:393
-#: ../../printerdrake.pm_.c:403 ../../printerdrake.pm_.c:466
-msgid "Local Printer"
-msgstr "Moullerez lec'hel"
-
-#: ../../printerdrake.pm_.c:177
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard will help you to install your printer(s) connected to this "
-"computer.\n"
-"\n"
-"Please plug in your printer(s) on this computer and turn it/them on. Click "
-"on \"Next\" when you are ready, and on \"Cancel\" when you do not want to "
-"set up your printer(s) now.\n"
-"\n"
-"Note that some computers can crash during the printer auto-detection, turn "
-"off \"Auto-detect printers\" to do a printer installation without auto-"
-"detection. Use the \"Expert Mode\" of printerdrake when you want to set up "
-"printing on a remote printer if printerdrake does not list it automatically."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:186
-#, fuzzy
-msgid "Auto-detect printers"
-msgstr "DibarzhoĆ¹ ar voullerez lpd a-bell"
-
-#: ../../printerdrake.pm_.c:204
-msgid ""
-"\n"
-"Congratulations, your printer is now installed and configured!\n"
-"\n"
-"You can print using the \"Print\" command of your application (usually in "
-"the \"File\" menu).\n"
-"\n"
-"If you want to add, remove, or rename a printer, or if you want to change "
-"the default option settings (paper input tray, printout quality, ...), "
-"select \"Printer\" in the \"Hardware\" section of the Mandrake Control "
-"Center."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:223
-msgid "Auto-Detection of Printers"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:224
-msgid ""
-"Printerdrake is able to auto-detect your locally connected parallel and USB "
-"printers for you, but note that on some systems the auto-detection CAN "
-"FREEZE YOUR SYSTEM AND THIS CAN LEAD TO CORRUPTED FILE SYSTEMS! So do it ON "
-"YOUR OWN RISK!\n"
-"\n"
-"Do you really want to get your printers auto-detected?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:227 ../../printerdrake.pm_.c:229
-#: ../../printerdrake.pm_.c:230
-#, fuzzy
-msgid "Do auto-detection"
-msgstr "Dilesadur"
-
-#: ../../printerdrake.pm_.c:228
-#, fuzzy
-msgid "Set up printer manually"
-msgstr "DibarzhoĆ¹ ar voullerez lpd a-bell"
-
-#: ../../printerdrake.pm_.c:256
-#, fuzzy, c-format
-msgid "Detected %s"
-msgstr "Poent marc'haƱ doubl %s"
-
-#: ../../printerdrake.pm_.c:260 ../../printerdrake.pm_.c:287
-#: ../../printerdrake.pm_.c:306
-#, c-format
-msgid "Printer on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:262 ../../printerdrake.pm_.c:289
-#: ../../printerdrake.pm_.c:311
-#, c-format
-msgid "USB printer \\/*%s"
-msgstr "Moullerez USB \\/*%s"
-
-#: ../../printerdrake.pm_.c:379
-msgid ""
-"No local printer found! To manually install a printer enter a device name/"
-"file name in the input line (Parallel Ports: /dev/lp0, /dev/lp1, ..., "
-"equivalent to LPT1:, LPT2:, ..., 1st USB printer: /dev/usb/lp0, 2nd USB "
-"printer: /dev/usb/lp1, ...)."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:383
-#, fuzzy
-msgid "You must enter a device or file name!"
-msgstr "Trobarzhell ar voullerez"
-
-#: ../../printerdrake.pm_.c:394
-msgid ""
-"No local printer found!\n"
-"\n"
-msgstr "N'ev ket Moullerez lec'hel!\n"
-
-#: ../../printerdrake.pm_.c:395
-msgid ""
-"Network printers can only be installed after the installation. Choose "
-"\"Hardware\" and then \"Printer\" in the Mandrake Control Center."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:396
-msgid ""
-"To install network printers, click \"Cancel\", switch to the \"Expert Mode"
-"\", and click \"Add a new printer\" again."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:407
-msgid ""
-"The following printer was auto-detected, if it is not the one you want to "
-"configure, enter a device name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:408
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up or enter a device name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:410
-msgid ""
-"The following printer was auto-detected. The configuration of the printer "
-"will work fully automatically. If your printer was not correctly detected or "
-"if you prefer a customized printer configuration, turn on \"Manual "
-"configuration\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:411
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up. The configuration of the printer will work fully "
-"automatically. If your printer was not correctly detected or if you prefer a "
-"customized printer configuration, turn on \"Manual configuration\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:413
-msgid ""
-"Please choose the port where your printer is connected to or enter a device "
-"name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:414
-#, fuzzy
-msgid "Please choose the port where your printer is connected to."
-msgstr "Dibabit ouzh pe borzh a-steud eo luget ho modem, mar plij."
-
-#: ../../printerdrake.pm_.c:416
-msgid ""
-" (Parallel Ports: /dev/lp0, /dev/lp1, ..., equivalent to LPT1:, LPT2:, ..., "
-"1st USB printer: /dev/usb/lp0, 2nd USB printer: /dev/usb/lp1, ...)."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:421
-#, fuzzy
-msgid "You must choose/enter a printer/device!"
-msgstr "Trobarzhell ar voullerez"
-
-#: ../../printerdrake.pm_.c:441
-#, fuzzy
-msgid "Manual configuration"
-msgstr "KefluniaƱ ar proksioĆ¹"
-
-#: ../../printerdrake.pm_.c:467
-msgid ""
-"Is your printer a multi-function device from HP (OfficeJet, PSC, LaserJet "
-"1100/1200/1220/3200/3300 with scanner), an HP PhotoSmart P100 or 1315 or an "
-"HP LaserJet 2200?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:484
-#, fuzzy
-msgid "Installing HPOJ package..."
-msgstr "O staliaƱ ar pakad %s"
-
-#: ../../printerdrake.pm_.c:489
-msgid "Checking device and configuring HPOJ..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:507
-#, fuzzy
-msgid "Installing SANE package..."
-msgstr "O staliaƱ ar pakad %s"
-
-#: ../../printerdrake.pm_.c:519
-msgid "Scanning on your HP multi-function device"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:536
-msgid "Making printer port available for CUPS..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:546 ../../printerdrake.pm_.c:1020
-#: ../../printerdrake.pm_.c:1134
-msgid "Reading printer database..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:626
-msgid "Remote lpd Printer Options"
-msgstr "DibarzhoĆ¹ ar voullerez lpd a-bell"
-
-#: ../../printerdrake.pm_.c:627
-#, fuzzy
-msgid ""
-"To use a remote lpd printer, you need to supply the hostname of the printer "
-"server and the printer name on that server."
-msgstr ""
-"A-benn implijout ur steud moulaƱ lpd a-bell, ret eo deoc'h\n"
-"pourvezaƱ anv ostiz ar servijer moullaƱ hag anv as steud\n"
-"war ar servijer-se ma zlefe bezaƱ kaset an dleadoĆ¹ moullaƱ."
-
-#: ../../printerdrake.pm_.c:628
-#, fuzzy
-msgid "Remote host name"
-msgstr "Anv an ostiz a-bell"
-
-#: ../../printerdrake.pm_.c:629
-#, fuzzy
-msgid "Remote printer name"
-msgstr "DibarzhoĆ¹ ar voullerez lpd a-bell"
-
-#: ../../printerdrake.pm_.c:632
-#, fuzzy
-msgid "Remote host name missing!"
-msgstr "Anv an ostiz a-bell"
-
-#: ../../printerdrake.pm_.c:636
-#, fuzzy
-msgid "Remote printer name missing!"
-msgstr "Anv an ostiz a-bell"
-
-#: ../../printerdrake.pm_.c:704
-msgid "SMB (Windows 9x/NT) Printer Options"
-msgstr "DibarzhoĆ¹ moullaƱ SMB (Windows 9x/NT)"
-
-#: ../../printerdrake.pm_.c:705
-#, fuzzy
-msgid ""
-"To print to a SMB printer, you need to provide the SMB host name (Note! It "
-"may be different from its TCP/IP hostname!) and possibly the IP address of "
-"the print server, as well as the share name for the printer you wish to "
-"access and any applicable user name, password, and workgroup information."
-msgstr ""
-"Evit moullaƱ war ur voullerez SMB eo ret deoc'h pourvezaƱ\n"
-"anv an ostiz SMB (Ho evezh ! DisheƱvel e c'hell bezaƱ diouzh\n"
-"e anv ostiz TCP/IP !) ha marteze chomlec'h IP ar servijer moullaƱ,\n"
-"kement hag anv rannet ar voullerez a glaskit tizhout ha ne vern pe\n"
-"ditour a anv arveriad, tremenger ha strollad labour en implij."
-
-#: ../../printerdrake.pm_.c:706
-msgid "SMB server host"
-msgstr "Anv ar servijer SMB"
-
-#: ../../printerdrake.pm_.c:707
-msgid "SMB server IP"
-msgstr "IP ar servijer SMB"
-
-#: ../../printerdrake.pm_.c:708
-msgid "Share name"
-msgstr "Anv rannet"
-
-#: ../../printerdrake.pm_.c:711
-msgid "Workgroup"
-msgstr "Strollad labour"
-
-#: ../../printerdrake.pm_.c:718
-msgid "Either the server name or the server's IP must be given!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:722
-msgid "Samba share name missing!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:727
-msgid "SECURITY WARNING!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:728
-#, c-format
-msgid ""
-"You are about to set up printing to a Windows account with password. Due to "
-"a fault in the architecture of the Samba client software the password is put "
-"in clear text into the command line of the Samba client used to transmit the "
-"print job to the Windows server. So it is possible for every user on this "
-"machine to display the password on the screen by issuing commands as \"ps "
-"auxwww\".\n"
-"\n"
-"We recommend to make use of one of the following alternatives (in all cases "
-"you have to make sure that only machines from your local network have access "
-"to your Windows server, for example by means of a firewall):\n"
-"\n"
-"Use a password-less account on your Windows server, as the \"GUEST\" account "
-"or a special account dedicated for printing. Do not remove the password "
-"protection from a personal account or the administrator account.\n"
-"\n"
-"Set up your Windows server to make the printer available under the LPD "
-"protocol. Then set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:738
-#, c-format
-msgid ""
-"Set up your Windows server to make the printer available under the IPP "
-"protocol and set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:741
-msgid ""
-"Connect your printer to a Linux server and let your Windows machine(s) "
-"connect to it as a client.\n"
-"\n"
-"Do you really want to continue setting up this printer as you are doing now?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:803
-msgid "NetWare Printer Options"
-msgstr "DibarzhoĆ¹ ar voullerez NetWare"
-
-#: ../../printerdrake.pm_.c:804
-#, fuzzy
-msgid ""
-"To print on a NetWare printer, you need to provide the NetWare print server "
-"name (Note! it may be different from its TCP/IP hostname!) as well as the "
-"print queue name for the printer you wish to access and any applicable user "
-"name and password."
-msgstr ""
-"Evit moullaƱ war ur voullerez NetWare eo ret deoc'h pourvezaƱ anv ar\n"
-"servijer moullaƱ NetWare (Ho evezh ! DisheƱvel e c'hell bezaƱ diouzh e\n"
-"anv ostiz TCP/IP !) kement hag anv ar steud moullaƱ evit ar voullerez\n"
-"a glaskit tizhout ha ne vern pe anv arveriad ha tremenger en implij."
-
-#: ../../printerdrake.pm_.c:805
-msgid "Printer Server"
-msgstr "Servijer moullaƱ"
-
-#: ../../printerdrake.pm_.c:806
-msgid "Print Queue Name"
-msgstr "Anv ar steud moullaƱ"
-
-#: ../../printerdrake.pm_.c:811
-msgid "NCP server name missing!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:815
-msgid "NCP queue name missing!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:854
-#, fuzzy
-msgid "TCP/Socket Printer Options"
-msgstr "DibarzhoĆ¹ ar voullerez NetWare"
-
-#: ../../printerdrake.pm_.c:855
-msgid ""
-"To print to a TCP or socket printer, you need to provide the host name of "
-"the printer and optionally the port number. On HP JetDirect servers the port "
-"number is usually 9100, on other servers it can vary. See the manual of your "
-"hardware."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:856
-msgid "Printer host name"
-msgstr "Anv ar voullerez"
-
-#: ../../printerdrake.pm_.c:860
-#, fuzzy
-msgid "Printer host name missing!"
-msgstr "DibarzhoĆ¹ ar voullerez"
-
-#: ../../printerdrake.pm_.c:889 ../../printerdrake.pm_.c:891
-#, fuzzy
-msgid "Printer Device URI"
-msgstr "Trobarzhell ar voullerez"
-
-#: ../../printerdrake.pm_.c:890
-msgid ""
-"You can specify directly the URI to access the printer. The URI must fulfill "
-"either the CUPS or the Foomatic specifications. Note that not all URI types "
-"are supported by all the spoolers."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:905
-msgid "A valid URI must be entered!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1006
-msgid ""
-"Every printer needs a name (for example \"printer\"). The Description and "
-"Location fields do not need to be filled in. They are comments for the users."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1007
-msgid "Name of printer"
-msgstr "Anv ar moullerez"
-
-#: ../../printerdrake.pm_.c:1008
-#, fuzzy
-msgid "Description"
-msgstr "Spisait dibarzhoĆ¹"
-
-#: ../../printerdrake.pm_.c:1009
-#, fuzzy
-msgid "Location"
-msgstr "TitouroĆ¹"
-
-#: ../../printerdrake.pm_.c:1023
-msgid "Preparing printer database..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1114
-#, fuzzy
-msgid "Your printer model"
-msgstr "DibarzhoĆ¹ ar voullerez lpd a-bell"
-
-#: ../../printerdrake.pm_.c:1115
-#, c-format
-msgid ""
-"Printerdrake has compared the model name resulting from the printer auto-"
-"detection with the models listed in its printer database to find the best "
-"match. This choice can be wrong, especially when your printer is not listed "
-"at all in the database. So check whether the choice is correct and click "
-"\"The model is correct\" if so and if not, click \"Select model manually\" "
-"so that you can choose your printer model manually on the next screen.\n"
-"\n"
-"For your printer Printerdrake has found:\n"
-"\n"
-"%s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1120 ../../printerdrake.pm_.c:1123
-#, fuzzy
-msgid "The model is correct"
-msgstr "Ha reizh eo ?"
-
-#: ../../printerdrake.pm_.c:1121 ../../printerdrake.pm_.c:1122
-#: ../../printerdrake.pm_.c:1125
-#, fuzzy
-msgid "Select model manually"
-msgstr "DibarzhoĆ¹ ar voullerez lpd a-bell"
-
-#: ../../printerdrake.pm_.c:1141
-#, fuzzy
-msgid "Printer model selection"
-msgstr "Lugerezh ar voullerez"
-
-#: ../../printerdrake.pm_.c:1142
-#, fuzzy
-msgid "Which printer model do you have?"
-msgstr "Peseurt moullerez hoc'h eus ?"
-
-#: ../../printerdrake.pm_.c:1143
-msgid ""
-"\n"
-"\n"
-"Please check whether Printerdrake did the auto-detection of your printer "
-"model correctly. Search the correct model in the list when the cursor is "
-"standing on a wrong model or on \"Raw printer\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1146
-msgid ""
-"If your printer is not listed, choose a compatible (see printer manual) or a "
-"similar one."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1222
-#, fuzzy
-msgid "OKI winprinter configuration"
-msgstr "KefluniaƱ ar modem"
-
-#: ../../printerdrake.pm_.c:1223
-msgid ""
-"You are configuring an OKI laser winprinter. These printers\n"
-"use a very special communication protocol and therefore they work only when "
-"connected to the first parallel port. When your printer is connected to "
-"another port or to a print server box please connect the printer to the "
-"first parallel port before you print a test page. Otherwise the printer will "
-"not work. Your connection type setting will be ignored by the driver."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1266 ../../printerdrake.pm_.c:1293
-#, fuzzy
-msgid "Lexmark inkjet configuration"
-msgstr "KefluniaƱ ar proksioĆ¹"
-
-#: ../../printerdrake.pm_.c:1267
-msgid ""
-"The inkjet printer drivers provided by Lexmark only support local printers, "
-"no printers on remote machines or print server boxes. Please connect your "
-"printer to a local port or configure it on the machine where it is connected "
-"to."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1294
-msgid ""
-"To be able to print with your Lexmark inkjet and this configuration, you "
-"need the inkjet printer drivers provided by Lexmark (http://www.lexmark."
-"com/). Go to the US site and click on the \"Drivers\" button. Then choose "
-"your model and afterwards \"Linux\" as operating system. The drivers come as "
-"RPM packages or shell scripts with interactive graphical installation. You "
-"do not need to do this configuration by the graphical frontends. Cancel "
-"directly after the license agreement. Then print printhead alignment pages "
-"with \"lexmarkmaintain\" and adjust the head alignment settings with this "
-"program."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1510
-msgid ""
-"Printer default settings\n"
-"\n"
-"You should make sure that the page size and the ink type/printing mode (if "
-"available) and also the hardware configuration of laser printers (memory, "
-"duplex unit, extra trays) are set correctly. Note that with a very high "
-"printout quality/resolution printing can get substantially slower."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1519
-#, c-format
-msgid "Option %s must be an integer number!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1523
-#, c-format
-msgid "Option %s must be a number!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1528
-#, c-format
-msgid "Option %s out of range!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1567
-#, fuzzy, c-format
-msgid ""
-"Do you want to set this printer (\"%s\")\n"
-"as the default printer?"
-msgstr "Ha mennout a rit amprouiƱ moullaƱ skrid ?"
-
-#: ../../printerdrake.pm_.c:1584
-#, fuzzy
-msgid "Test pages"
-msgstr "AmprouiƱ ar porzhioĆ¹"
-
-#: ../../printerdrake.pm_.c:1585
-msgid ""
-"Please select the test pages you want to print.\n"
-"Note: the photo test page can take a rather long time to get printed and on "
-"laser printers with too low memory it can even not come out. In most cases "
-"it is enough to print the standard test page."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1589
-#, fuzzy
-msgid "No test pages"
-msgstr "Ya, moullit an div bajenn arnod"
-
-#: ../../printerdrake.pm_.c:1590
-#, fuzzy
-msgid "Print"
-msgstr "Moullerez"
-
-#: ../../printerdrake.pm_.c:1592
-#, fuzzy
-msgid "Standard test page"
-msgstr "Diorren"
-
-#: ../../printerdrake.pm_.c:1595
-msgid "Alternative test page (Letter)"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1598
-#, fuzzy
-msgid "Alternative test page (A4)"
-msgstr "O voullaƱ pajenn(oĆ¹) skrid..."
-
-#: ../../printerdrake.pm_.c:1600
-#, fuzzy
-msgid "Photo test page"
-msgstr "O voullaƱ pajenn(oĆ¹) skrid..."
-
-#: ../../printerdrake.pm_.c:1604
-#, fuzzy
-msgid "Do not print any test page"
-msgstr "O voullaƱ pajenn(oĆ¹) skrid..."
-
-#: ../../printerdrake.pm_.c:1612 ../../printerdrake.pm_.c:1749
-msgid "Printing test page(s)..."
-msgstr "O voullaƱ pajenn(oĆ¹) skrid..."
-
-#: ../../printerdrake.pm_.c:1637
-#, fuzzy, c-format
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-"Printing status:\n"
-"%s\n"
-"\n"
-msgstr ""
-"Pajenn(oĆ¹) arnod zo bet kaset d'an diaoul moullaƱ.\n"
-"Ur pennadig e c'hell padout a-raok ma loc'hfe a voullerez.\n"
-"Stad ar moullaƱĀ :\n"
-"%s\n"
-"\n"
-"Ha mont a ra en-dro reizh ?"
-
-#: ../../printerdrake.pm_.c:1641
-#, fuzzy
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-msgstr ""
-"Pajenn(oĆ¹) arnod zo bet kaset d'an diaoul moullaƱ.\n"
-"Ur pennadig e c'hell padout a-raok ma loc'hfe a voullerez.\n"
-"Ha mont a ra en-dro reizh ?"
-
-#: ../../printerdrake.pm_.c:1648
-msgid "Did it work properly?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1669 ../../printerdrake.pm_.c:2735
-#, fuzzy
-msgid "Raw printer"
-msgstr "Moullerez lec'hel"
-
-#: ../../printerdrake.pm_.c:1687
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) you can either use "
-"the command \"%s <file>\" or a graphical printing tool: \"xpp <file>\" or "
-"\"kprinter <file>\". The graphical tools allow you to choose the printer and "
-"to modify the option settings easily.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1689
-msgid ""
-"These commands you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications, but here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1692 ../../printerdrake.pm_.c:1708
-#: ../../printerdrake.pm_.c:1718
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" command also allows to modify the option settings for a "
-"particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\". "
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1695 ../../printerdrake.pm_.c:1734
-#, c-format
-msgid ""
-"To know about the options available for the current printer read either the "
-"list shown below or click on the \"Print option list\" button.%s\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1698
-msgid ""
-"Here is a list of the available printing options for the current printer:\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1703 ../../printerdrake.pm_.c:1713
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\".\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1705 ../../printerdrake.pm_.c:1715
-#: ../../printerdrake.pm_.c:1725
-msgid ""
-"This command you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications. But here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1710 ../../printerdrake.pm_.c:1720
-msgid ""
-"To get a list of the options available for the current printer click on the "
-"\"Print option list\" button."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1723
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\" or \"%s <file>\".\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1727
-msgid ""
-"You can also use the graphical interface \"xpdq\" for setting options and "
-"handling printing jobs.\n"
-"If you are using KDE as desktop environment you have a \"panic button\", an "
-"icon on the desktop, labeled with \"STOP Printer!\", which stops all print "
-"jobs immediately when you click it. This is for example useful for paper "
-"jams.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1731
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" and \"%s\" commands also allow to modify the option settings for "
-"a particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\".\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1740 ../../printerdrake.pm_.c:1746
-#: ../../printerdrake.pm_.c:1747 ../../printerdrake.pm_.c:1748
-#: ../../printerdrake.pm_.c:2719 ../../standalone/drakbackup_.c:743
-#: ../../standalone/drakbackup_.c:2448 ../../standalone/drakfont_.c:580
-#: ../../standalone/drakfont_.c:792
-#, fuzzy
-msgid "Close"
-msgstr "Logodenn USB"
-
-#: ../../printerdrake.pm_.c:1743 ../../printerdrake.pm_.c:1755
-#, fuzzy, c-format
-msgid "Printing/Scanning on \"%s\""
-msgstr "O tizenaouiƱ ar rouedad"
-
-#: ../../printerdrake.pm_.c:1744 ../../printerdrake.pm_.c:1756
-#, fuzzy, c-format
-msgid "Printing on the printer \"%s\""
-msgstr "O tizenaouiƱ ar rouedad"
-
-#: ../../printerdrake.pm_.c:1746
-#, fuzzy
-msgid "Print option list"
-msgstr "DibarzhoĆ¹ ar voullerez"
-
-#: ../../printerdrake.pm_.c:1768
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan with \"scanimage\" (\"scanimage -d hp:%s\" to specify "
-"the scanner when you have more than one) from the command line or with the "
-"graphical interfaces \"xscanimage\" or \"xsane\". If you are using the GIMP, "
-"you can also scan by choosing the appropriate point in the \"File\"/\"Acquire"
-"\" menu. Call also \"man scanimage\" and \"man sane-hp\" on the command line "
-"to get more information.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1775
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan from the command line with \"ptal-hp %s scan ...\". "
-"Scanning via a graphical interface or from the GIMP is not supported yet for "
-"your device. More information you will find in the \"/usr/share/doc/hpoj-0.8/"
-"ptal-hp-scan.html\" file on your system. If you have an HP LaserJet 1100 or "
-"1200 you can only scan when you have the scanner option installed.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1797 ../../printerdrake.pm_.c:2224
-#: ../../printerdrake.pm_.c:2488
-msgid "Reading printer data..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1817 ../../printerdrake.pm_.c:1845
-#: ../../printerdrake.pm_.c:1880
-#, fuzzy
-msgid "Transfer printer configuration"
-msgstr "KefluniaƱ ar proksioĆ¹"
-
-#: ../../printerdrake.pm_.c:1818
-#, c-format
-msgid ""
-"You can copy the printer configuration which you have done for the spooler %"
-"s to %s, your current spooler. All the configuration data (printer name, "
-"description, location, connection type, and default option settings) is "
-"overtaken, but jobs will not be transferred.\n"
-"Not all queues can be transferred due to the following reasons:\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1821
-msgid ""
-"CUPS does not support printers on Novell servers or printers sending the "
-"data into a free-formed command.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1823
-msgid ""
-"PDQ only supports local printers, remote LPD printers, and Socket/TCP "
-"printers.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1825
-msgid "LPD and LPRng do not support IPP printers.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1827
-msgid ""
-"In addition, queues not created with this program or \"foomatic-configure\" "
-"cannot be transferred."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1828
-msgid ""
-"\n"
-"Also printers configured with the PPD files provided by their manufacturers "
-"or with native CUPS drivers cannot be transferred."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1829
-msgid ""
-"\n"
-"Mark the printers which you want to transfer and click \n"
-"\"Transfer\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1832
-msgid "Do not transfer printers"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1833 ../../printerdrake.pm_.c:1850
-msgid "Transfer"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1846
-#, c-format
-msgid ""
-"A printer named \"%s\" already exists under %s. \n"
-"Click \"Transfer\" to overwrite it.\n"
-"You can also type a new name or skip this printer."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1854
-msgid "Name of printer should contain only letters, numbers and the underscore"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1859
-#, c-format
-msgid ""
-"The printer \"%s\" already exists,\n"
-"do you really want to overwrite its configuration?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1867
-#, fuzzy
-msgid "New printer name"
-msgstr "Moullerez lec'hel"
-
-#: ../../printerdrake.pm_.c:1870
-#, c-format
-msgid "Transferring %s..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1881
-#, c-format
-msgid ""
-"You have transferred your former default printer (\"%s\"), Should it be also "
-"the default printer under the new printing system %s?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1890
-msgid "Refreshing printer data..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1898 ../../printerdrake.pm_.c:1969
-#: ../../printerdrake.pm_.c:1981
-#, fuzzy
-msgid "Configuration of a remote printer"
-msgstr "KefluniaƱ ar voullerez"
-
-#: ../../printerdrake.pm_.c:1899
-#, fuzzy
-msgid "Starting network..."
-msgstr "KefluniaƱ ur rouedad"
-
-#: ../../printerdrake.pm_.c:1933 ../../printerdrake.pm_.c:1937
-#: ../../printerdrake.pm_.c:1939
-#, fuzzy
-msgid "Configure the network now"
-msgstr "KefluniaƱ ur rouedad"
-
-#: ../../printerdrake.pm_.c:1934
-#, fuzzy
-msgid "Network functionality not configured"
-msgstr "Skramm ket kefluniet"
-
-#: ../../printerdrake.pm_.c:1935
-msgid ""
-"You are going to configure a remote printer. This needs working network "
-"access, but your network is not configured yet. If you go on without network "
-"configuration, you will not be able to use the printer which you are "
-"configuring now. How do you want to proceed?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1938
-#, fuzzy
-msgid "Go on without configuring the network"
-msgstr "KefluniaƱ ar rouedad"
-
-#: ../../printerdrake.pm_.c:1971
-msgid ""
-"The network configuration done during the installation cannot be started "
-"now. Please check whether the network gets accessable after booting your "
-"system and correct the configuration using the Mandrake Control Center, "
-"section \"Network & Internet\"/\"Connection\", and afterwards set up the "
-"printer, also using the Mandrake Control Center, section \"Hardware\"/"
-"\"Printer\""
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1972
-msgid ""
-"The network access was not running and could not be started. Please check "
-"your configuration and your hardware. Then try to configure your remote "
-"printer again."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1982
-#, fuzzy
-msgid "Restarting printing system..."
-msgstr "DibarzhoĆ¹ ar voullerez lpd a-bell"
-
-#: ../../printerdrake.pm_.c:2020
-#, fuzzy
-msgid "high"
-msgstr "Uhel"
-
-#: ../../printerdrake.pm_.c:2020
-#, fuzzy
-msgid "paranoid"
-msgstr "Ankeniet"
-
-#: ../../printerdrake.pm_.c:2021
-#, c-format
-msgid "Installing a printing system in the %s security level"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2022
-#, c-format
-msgid ""
-"You are about to install the printing system %s on a system running in the %"
-"s security level.\n"
-"\n"
-"This printing system runs a daemon (background process) which waits for "
-"print jobs and handles them. This daemon is also accessable by remote "
-"machines through the network and so it is a possible point for attacks. "
-"Therefore only a few selected daemons are started by default in this "
-"security level.\n"
-"\n"
-"Do you really want to configure printing on this machine?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2054
-msgid "Starting the printing system at boot time"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2055
-#, c-format
-msgid ""
-"The printing system (%s) will not be started automatically when the machine "
-"is booted.\n"
-"\n"
-"It is possible that the automatic starting was turned off by changing to a "
-"higher security level, because the printing system is a potential point for "
-"attacks.\n"
-"\n"
-"Do you want to have the automatic starting of the printing system turned on "
-"again?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2078 ../../printerdrake.pm_.c:2116
-#: ../../printerdrake.pm_.c:2146 ../../printerdrake.pm_.c:2179
-#: ../../printerdrake.pm_.c:2284
-msgid "Checking installed software..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2120
-msgid "Removing LPRng..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2150
-msgid "Removing LPD..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2208
-#, fuzzy
-msgid "Select Printer Spooler"
-msgstr "Diuzit lugerezh ar voullerez"
-
-#: ../../printerdrake.pm_.c:2209
-#, fuzzy
-msgid "Which printing system (spooler) do you want to use?"
-msgstr "Pe seurt parzhadur a vennit ?"
-
-#: ../../printerdrake.pm_.c:2242
-#, fuzzy, c-format
-msgid "Configuring printer \"%s\"..."
-msgstr "KefluniaƱ ar voullerez"
-
-#: ../../printerdrake.pm_.c:2255
-#, fuzzy
-msgid "Installing Foomatic..."
-msgstr "O staliaƱ ar pakad %s"
-
-#: ../../printerdrake.pm_.c:2312 ../../printerdrake.pm_.c:2351
-#: ../../printerdrake.pm_.c:2736 ../../printerdrake.pm_.c:2806
-msgid "Printer options"
-msgstr "DibarzhoĆ¹ ar voullerez"
-
-#: ../../printerdrake.pm_.c:2321
-msgid "Preparing PrinterDrake..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2338 ../../printerdrake.pm_.c:2893
-#, fuzzy
-msgid "Configuring applications..."
-msgstr "KefluniaƱ ar voullerez"
-
-#: ../../printerdrake.pm_.c:2358
-#, fuzzy
-msgid "Would you like to configure printing?"
-msgstr "Mennout a rit kefluniaƱ ur voullerez ?"
-
-#: ../../printerdrake.pm_.c:2370
-msgid "Printing system: "
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2418
-#, fuzzy
-msgid "Printerdrake"
-msgstr "Moullerez"
-
-#: ../../printerdrake.pm_.c:2422
-#, fuzzy
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; to view information about it; "
-"or to make a printer on a remote CUPS server available for Star Office/"
-"OpenOffice.org."
-msgstr ""
-"Setu da heul ar steudadoĆ¹ moullaƱ.\n"
-"Gallout a rit ouzhpennaƱ lod pe gemmaƱ a re a zo."
-
-#: ../../printerdrake.pm_.c:2423
-#, fuzzy
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; or to view information about "
-"it."
-msgstr ""
-"Setu da heul ar steudadoĆ¹ moullaƱ.\n"
-"Gallout a rit ouzhpennaƱ lod pe gemmaƱ a re a zo."
-
-#: ../../printerdrake.pm_.c:2449
-msgid "Refresh printer list (to display all available remote CUPS printers)"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2467
-#, fuzzy
-msgid "Change the printing system"
-msgstr "KefluniaƱ ur rouedad"
-
-#: ../../printerdrake.pm_.c:2472 ../../standalone/draknet_.c:278
-#, fuzzy
-msgid "Normal Mode"
-msgstr "Boas"
-
-#: ../../printerdrake.pm_.c:2628 ../../printerdrake.pm_.c:2678
-#: ../../printerdrake.pm_.c:2887
-#, fuzzy
-msgid "Do you want to configure another printer?"
-msgstr "Mennout a rit amprouiƱ ar c'hefluniadur ?"
-
-#: ../../printerdrake.pm_.c:2714
-#, fuzzy
-msgid "Modify printer configuration"
-msgstr "KefluniaƱ ar modem"
-
-#: ../../printerdrake.pm_.c:2716
-#, fuzzy, c-format
-msgid ""
-"Printer %s\n"
-"What do you want to modify on this printer?"
-msgstr "Mennout a rit amprouiƱ ar c'hefluniadur ?"
-
-#: ../../printerdrake.pm_.c:2720
-msgid "Do it!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2725 ../../printerdrake.pm_.c:2780
-#, fuzzy
-msgid "Printer connection type"
-msgstr "Lugerezh ar voullerez"
-
-#: ../../printerdrake.pm_.c:2726 ../../printerdrake.pm_.c:2784
-#, fuzzy
-msgid "Printer name, description, location"
-msgstr "Lugerezh ar voullerez"
-
-#: ../../printerdrake.pm_.c:2728 ../../printerdrake.pm_.c:2799
-msgid "Printer manufacturer, model, driver"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2729 ../../printerdrake.pm_.c:2800
-msgid "Printer manufacturer, model"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2738 ../../printerdrake.pm_.c:2810
-msgid "Set this printer as the default"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2740 ../../printerdrake.pm_.c:2815
-msgid "Add this printer to Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2741 ../../printerdrake.pm_.c:2824
-msgid "Remove this printer from Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2742 ../../printerdrake.pm_.c:2833
-#, fuzzy
-msgid "Print test pages"
-msgstr "O voullaƱ pajenn(oĆ¹) skrid..."
-
-#: ../../printerdrake.pm_.c:2743 ../../printerdrake.pm_.c:2835
-#, fuzzy
-msgid "Know how to use this printer"
-msgstr "Mennout a rit amprouiƱ ar c'hefluniadur ?"
-
-#: ../../printerdrake.pm_.c:2745 ../../printerdrake.pm_.c:2837
-#, fuzzy
-msgid "Remove printer"
-msgstr "DibarzhoĆ¹ ar voullerez lpd a-bell"
-
-#: ../../printerdrake.pm_.c:2789
-#, fuzzy, c-format
-msgid "Removing old printer \"%s\"..."
-msgstr "DibarzhoĆ¹ ar voullerez lpd a-bell"
-
-#: ../../printerdrake.pm_.c:2813
-#, fuzzy
-msgid "Default printer"
-msgstr "Moullerez lec'hel"
-
-#: ../../printerdrake.pm_.c:2814
-#, c-format
-msgid "The printer \"%s\" is set as the default printer now."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2818 ../../printerdrake.pm_.c:2821
-msgid "Adding printer to Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2819
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully added to Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2822
-#, c-format
-msgid "Failed to add the printer \"%s\" to Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2827 ../../printerdrake.pm_.c:2830
-msgid "Removing printer from Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2828
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully removed from Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2831
-#, c-format
-msgid "Failed to remove the printer \"%s\" from Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2839
-#, fuzzy, c-format
-msgid "Do you really want to remove the printer \"%s\"?"
-msgstr "Mennout a rit amprouiƱ ar c'hefluniadur ?"
-
-#: ../../printerdrake.pm_.c:2841
-#, fuzzy, c-format
-msgid "Removing printer \"%s\"..."
-msgstr "DibarzhoĆ¹ ar voullerez lpd a-bell"
-
-#: ../../proxy.pm_.c:29 ../../proxy.pm_.c:37 ../../proxy.pm_.c:58
-#: ../../proxy.pm_.c:78
-#, fuzzy
-msgid "Proxy configuration"
-msgstr "Kefluniadur goude staliaƱ"
-
-#: ../../proxy.pm_.c:30
-msgid ""
-"Welcome to the proxy configuration utility.\n"
-"\n"
-"Here, you'll be able to set up your http and ftp proxies\n"
-"with or without login and password\n"
-msgstr ""
-
-#: ../../proxy.pm_.c:38
-msgid ""
-"Please fill in the http proxy informations\n"
-"Leave it blank if you don't want an http proxy"
-msgstr ""
-
-#: ../../proxy.pm_.c:39 ../../proxy.pm_.c:60
-msgid "URL"
-msgstr "URL"
-
-#: ../../proxy.pm_.c:40 ../../proxy.pm_.c:61
-#, fuzzy
-msgid "port"
-msgstr "Paour"
-
-#: ../../proxy.pm_.c:44
-#, fuzzy
-msgid "Url should begin with 'http:'"
-msgstr "http://... a zlefe bezaƱ ar proksi"
-
-#: ../../proxy.pm_.c:48 ../../proxy.pm_.c:69
-msgid "The port part should be numeric"
-msgstr ""
-
-#: ../../proxy.pm_.c:59
-msgid ""
-"Please fill in the ftp proxy informations\n"
-"Leave it blank if you don't want an ftp proxy"
-msgstr ""
-
-#: ../../proxy.pm_.c:65
-#, fuzzy
-msgid "Url should begin with 'ftp:'"
-msgstr "ftp://... a zlefe bezaƱ ar proksi"
-
-#: ../../proxy.pm_.c:79
-msgid ""
-"Please enter proxy login and password, if any.\n"
-"Leave it blank if you don't want login/passwd"
-msgstr ""
-
-#: ../../proxy.pm_.c:80
-#, fuzzy
-msgid "login"
-msgstr "Belgian"
-
-#: ../../proxy.pm_.c:82
-#, fuzzy
-msgid "password"
-msgstr "Tremenger"
-
-#: ../../proxy.pm_.c:84
-#, fuzzy
-msgid "re-type password"
-msgstr "Tremenger ebet"
-
-#: ../../proxy.pm_.c:88
-#, fuzzy
-msgid "The passwords don't match. Try again!"
-msgstr "An tremegerioĆ¹ ne glot ket"
-
-#: ../../raid.pm_.c:35
-#, c-format
-msgid "Can't add a partition to _formatted_ RAID md%d"
-msgstr "N'hellan ket ouzhpennaƱ ur parzhadur da RAID md%d _furmadet_"
-
-#: ../../raid.pm_.c:111
-#, c-format
-msgid "Can't write file %s"
-msgstr "N'hellan ket skrivaƱ e %s"
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed"
-msgstr "mkraid sac'het"
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed (maybe raidtools are missing?)"
-msgstr "mkraid sac'het (raidtools a vank emichaƱs ?)"
-
-#: ../../raid.pm_.c:152
-#, c-format
-msgid "Not enough partitions for RAID level %d\n"
-msgstr "Ket a-walc'h a parzhadurioĆ¹ evit RAID live %d\n"
-
-#: ../../services.pm_.c:14
-msgid "Launch the ALSA (Advanced Linux Sound Architecture) sound system"
-msgstr ""
-
-#: ../../services.pm_.c:15
-msgid "Anacron a periodic command scheduler."
-msgstr "Anacron, ur steuƱvaer urzhiadoĆ¹ mareadek."
-
-#: ../../services.pm_.c:16
-msgid ""
-"apmd is used for monitoring batery status and logging it via syslog.\n"
-"It can also be used for shutting down the machine when the battery is low."
-msgstr ""
-"servijout a ra apmd evit evezhiaƱ stad an daspugner hag he enrollaƱ dre "
-"syslog.\n"
-"Gallout a ra ivez servijout da lazhaƱ an ardivink pa vez izel an daspugner."
-
-#: ../../services.pm_.c:18
-msgid ""
-"Runs commands scheduled by the at command at the time specified when\n"
-"at was run, and runs batch commands when the load average is low enough."
-msgstr ""
-"SeveniƱ an urzhiadoĆ¹ steuƱvaet gant an urzhiad at d'ar pred laket pa 'z eo\n"
-"bet sevenet at, ha seveniƱ urzhiadoĆ¹ dre lod pa 'z eo izel a-walc'h ar garg."
-
-#: ../../services.pm_.c:20
-msgid ""
-"cron is a standard UNIX program that runs user-specified programs\n"
-"at periodic scheduled times. vixie cron adds a number of features to the "
-"basic\n"
-"UNIX cron, including better security and more powerful configuration options."
-msgstr ""
-"Ur goulev standard UNIX eo cron evit seveniƱ goulevioĆ¹ diouzh c'hoant an\n"
-"arveriaded da goulzoĆ¹ mareadek steuƱvaet. vixie cron a ouzhpenn kalzig a "
-"arc'hweloĆ¹\n"
-"d'ar cron UNIX diazez, en o zouez surentez ha dibarzhoĆ¹ kefluniaƱ gwelloc'h."
-
-#: ../../services.pm_.c:23
-msgid ""
-"GPM adds mouse support to text-based Linux applications such the\n"
-"Midnight Commander. It also allows mouse-based console cut-and-paste "
-"operations,\n"
-"and includes support for pop-up menus on the console."
-msgstr ""
-"GPM a zegas implij al logodenn d'an arloadoĆ¹ Linux mod-skrid evel\n"
-"Midnight Commander. ReiƱ a ra tu da seveniƱ obererezhoĆ¹ troc'haƱ-ha-pegaƱ,\n"
-"ha skor evit meuziadoĆ¹ kemperzhel war al letrin."
-
-#: ../../services.pm_.c:26
-msgid ""
-"HardDrake runs a hardware probe, and optionally configures\n"
-"new/changed hardware."
-msgstr ""
-
-#: ../../services.pm_.c:28 ../../standalone/logdrake_.c:414
-msgid ""
-"Apache is a World Wide Web server. It is used to serve HTML files and CGI."
-msgstr ""
-"Ur servijer evit ar Gwiad Bedel eo Apache. Implijet e vez evit servijaƱ\n"
-"restroĆ¹ HTML ha CGI."
-
-#: ../../services.pm_.c:29
-msgid ""
-"The internet superserver daemon (commonly called inetd) starts a\n"
-"variety of other internet services as needed. It is responsible for "
-"starting\n"
-"many services, including telnet, ftp, rsh, and rlogin. Disabling inetd "
-"disables\n"
-"all of the services it is responsible for."
-msgstr ""
-"An diaoul gourservijer kenrouedad (anvet inetd ordinal) a loc'h ur\n"
-"bochad a servijoĆ¹ kenrouedad all diouzh an ezhomm. E karg loc'haƱ meur a "
-"servijoĆ¹\n"
-"eo, en o zouez telnet, ftp, rsh, and rlogin. DizoberiaƱ inetd a zizoberia\n"
-"an holl servijoĆ¹ m'eo eƱ atebek warno."
-
-#: ../../services.pm_.c:33
-msgid ""
-"Launch packet filtering for Linux kernel 2.2 series, to set\n"
-"up a firewall to protect your machine from network attacks."
-msgstr ""
-
-#: ../../services.pm_.c:35
-msgid ""
-"This package loads the selected keyboard map as set in\n"
-"/etc/sysconfig/keyboard. This can be selected using the kbdconfig utility.\n"
-"You should leave this enabled for most machines."
-msgstr ""
-"Ar pakad-maƱ a garg ar stokellaoueg diuzet evel termenet e\n"
-"/etc/sysconfig/keyboard. Dre ar maveg kbdconfig e c'hell bezaƱ diuzet\n"
-"kement-se. Gwell deoc'h leuskel se gweredekaet war darn vuiaƱ an ardivinkoĆ¹."
-
-#: ../../services.pm_.c:38
-msgid ""
-"Automatic regeneration of kernel header in /boot for\n"
-"/usr/include/linux/{autoconf,version}.h"
-msgstr ""
-
-#: ../../services.pm_.c:40
-msgid "Automatic detection and configuration of hardware at boot."
-msgstr ""
-
-#: ../../services.pm_.c:41
-msgid ""
-"Linuxconf will sometimes arrange to perform various tasks\n"
-"at boot-time to maintain the system configuration."
-msgstr ""
-
-#: ../../services.pm_.c:43
-msgid ""
-"lpd is the print daemon required for lpr to work properly. It is\n"
-"basically a server that arbitrates print jobs to printer(s)."
-msgstr ""
-"An diaoul moullaƱ ret evit ma dafez en-ro reizh lpr eo lpd. Dre vras\n"
-"ez eo ur servijer a vera dleadoĆ¹ moullaƱ evir ar voullerez(ed)."
-
-#: ../../services.pm_.c:45
-msgid ""
-"Linux Virtual Server, used to build a high-performance and highly\n"
-"available server."
-msgstr ""
-
-#: ../../services.pm_.c:47 ../../standalone/logdrake_.c:415
-#, fuzzy
-msgid ""
-"named (BIND) is a Domain Name Server (DNS) that is used to resolve host "
-"names to IP addresses."
-msgstr ""
-"named (BIND) a zo ur Servijer AnvioĆ¹ Domani (DNS) a zo implijet evit\n"
-"amdreiƱ anvioĆ¹ ostiz e chomlec'hioĆ¹ IP."
-
-#: ../../services.pm_.c:48
-msgid ""
-"Mounts and unmounts all Network File System (NFS), SMB (Lan\n"
-"Manager/Windows), and NCP (NetWare) mount points."
-msgstr ""
-"Evit marc'haƱ ha divarc'haƱ poentoĆ¹ marc'haƱ an holl ReizhiadoĆ¹ RestroĆ¹\n"
-"Rouedad (NFS), SMB (Lan Manager/Windows) ha NCP (NetWare)."
-
-#: ../../services.pm_.c:50
-msgid ""
-"Activates/Deactivates all network interfaces configured to start\n"
-"at boot time."
-msgstr ""
-"Oberia/Dizoberia an holl etrefasoĆ¹ rouedad kefluniet da laƱsaƱ\n"
-"da vare al loc'haƱ."
-
-#: ../../services.pm_.c:52
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP networks.\n"
-"This service provides NFS server functionality, which is configured via the\n"
-"/etc/exports file."
-msgstr ""
-"NFS a zo ur c'homenad brudet evit rannaƱ restroĆ¹ dre rouedadoĆ¹ TCP/IP.\n"
-"Ar servij-maƱ a bourvez arc'hweloĆ¹ ur servijer NFS, a vez kefluniaet dre ar\n"
-"restr /etc/exports."
-
-#: ../../services.pm_.c:55
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP\n"
-"networks. This service provides NFS file locking functionality."
-msgstr ""
-"NFS a zo ur c'homenad brudet evit rannaƱ restroĆ¹ dre rouedadoĆ¹\n"
-"TCP/IP. Ar servij-maƱ a bourvez un arc'hwel morailhaƱ restroĆ¹ NFS."
-
-#: ../../services.pm_.c:57
-msgid ""
-"Automatically switch on numlock key locker under console\n"
-"and XFree at boot."
-msgstr ""
-
-#: ../../services.pm_.c:59
-msgid "Support the OKI 4w and compatible winprinters."
-msgstr ""
-
-#: ../../services.pm_.c:60
-msgid ""
-"PCMCIA support is usually to support things like ethernet and\n"
-"modems in laptops. It won't get started unless configured so it is safe to "
-"have\n"
-"it installed on machines that don't need it."
-msgstr ""
-"SkoraƱ PCMCIA a zegas an tu da implijonut traoĆ¹ evel ethernet ha modemoĆ¹\n"
-"e urzhiataeroĆ¹ hezoug. Ne vo ket kroget hep bezaƱ bet kefluniet, rak-se eo "
-"diarvar\n"
-"e staliaƱ war ardivinkoĆ¹ n'o deus ket ezhomm anezhaƱ."
-
-#: ../../services.pm_.c:63
-msgid ""
-"The portmapper manages RPC connections, which are used by\n"
-"protocols such as NFS and NIS. The portmap server must be running on "
-"machines\n"
-"which act as servers for protocols which make use of the RPC mechanism."
-msgstr ""
-"Ar c'hartenner porzhioĆ¹ a vera kevreadennoĆ¹ RPC, a zo implijet gant\n"
-"komenadoĆ¹ evel NFS ha NIS. Ar servijer kartenn-porzhioĆ¹ a rankfe mont en-"
-"dro\n"
-"war ardivinkoĆ¹ anezho servijerien komenadoĆ¹ a implij ar reizhiad RPC."
-
-#: ../../services.pm_.c:66 ../../standalone/logdrake_.c:417
-#, fuzzy
-msgid ""
-"Postfix is a Mail Transport Agent, which is the program that moves mail from "
-"one machine to another."
-msgstr ""
-"Ur Gwazour Treuzdougen Postel eo Postfix, a zo ar goulev a\n"
-"zilech posteloĆ¹ etre un ardivink hag un all."
-
-#: ../../services.pm_.c:67
-msgid ""
-"Saves and restores system entropy pool for higher quality random\n"
-"number generation."
-msgstr ""
-"Enroll hag assav poul dizurzh ar reizhiad evit genel niveroĆ¹\n"
-"dargouezhek gant gwelloc'h perzhded."
-
-#: ../../services.pm_.c:69
-msgid ""
-"Assign raw devices to block devices (such as hard drive\n"
-"partitions), for the use of applications such as Oracle"
-msgstr ""
-
-#: ../../services.pm_.c:71
-msgid ""
-"The routed daemon allows for automatic IP router table updated via\n"
-"the RIP protocol. While RIP is widely used on small networks, more complex\n"
-"routing protocols are needed for complex networks."
-msgstr ""
-"An diaoul routed a ro an tu da vremanaat ent emgefreek an taolenn henchaƱ\n"
-"IP dre ar c'homenad RIP. Tra ma vez implijet aliesig RIP war rouedadoĆ¹ "
-"bihan,\n"
-"ezhomm a zo komenadoĆ¹ henchaƱ kemplezhoc'h evit rouedadoĆ¹ rouestlet."
-
-#: ../../services.pm_.c:74
-msgid ""
-"The rstat protocol allows users on a network to retrieve\n"
-"performance metrics for any machine on that network."
-msgstr ""
-"Ar c'homenad rstat a ro tu da implijerien ur rouedad da zastum\n"
-"muzulioĆ¹ barregezh diwar ne vern pe ardivink er rouedad-se."
-
-#: ../../services.pm_.c:76
-msgid ""
-"The rusers protocol allows users on a network to identify who is\n"
-"logged in on other responding machines."
-msgstr ""
-"Ar c'homenad rusers a ro tu da implijerien ur rouedad da anavezout piv\n"
-"a zo kevreet ouzh ardivinkoĆ¹ all a respont."
-
-#: ../../services.pm_.c:78
-msgid ""
-"The rwho protocol lets remote users get a list of all of the users\n"
-"logged into a machine running the rwho daemon (similiar to finger)."
-msgstr ""
-"Ar c'homenad rwho a bourchas da implijerien a-bell roll an holl arveriaded a "
-"zo\n"
-"kevreet ouzh un ardivink ma da en-dro warnaƱ an diaoul rwhod (heƱvel ouzh "
-"finger)."
-
-#: ../../services.pm_.c:80
-msgid "Launch the sound system on your machine"
-msgstr ""
-
-#: ../../services.pm_.c:81
-msgid ""
-"Syslog is the facility by which many daemons use to log messages\n"
-"to various system log files. It is a good idea to always run syslog."
-msgstr ""
-"Syslog a zo ur gwazerezh ma enroll drezaƱ an diaouled niverus o "
-"c'hemennadoĆ¹\n"
-"e kerzhlevrioĆ¹ liesseurt ar reizhiad. Ur mennozh mat eo seveniƱ ingal syslog."
-
-#: ../../services.pm_.c:83
-msgid "Load the drivers for your usb devices."
-msgstr ""
-
-#: ../../services.pm_.c:84
-#, fuzzy
-msgid "Starts the X Font Server (this is mandatory for XFree to run)."
-msgstr ""
-"Enaou ha dizenaou ar servijer FontoĆ¹ X da vare al loc'haƱ hag al lazhaƱ."
-
-#: ../../services.pm_.c:110 ../../services.pm_.c:152
-msgid "Choose which services should be automatically started at boot time"
-msgstr "Dibabit pe servijoĆ¹ a zlefe bezaƱ laƱset ent emgefreek pa loc'her"
-
-#: ../../services.pm_.c:122
-#, fuzzy
-msgid "Printing"
-msgstr "Moullerez"
-
-#: ../../services.pm_.c:123
-#, fuzzy
-msgid "Internet"
-msgstr "dedennus"
-
-#: ../../services.pm_.c:126
-msgid "File sharing"
-msgstr ""
-
-#: ../../services.pm_.c:128 ../../standalone/drakbackup_.c:923
-#, fuzzy
-msgid "System"
-msgstr "Reizhiad/Diazez"
-
-#: ../../services.pm_.c:133
-#, fuzzy
-msgid "Remote Administration"
-msgstr "DibarzhoĆ¹ ar voullerez lpd a-bell"
-
-#: ../../services.pm_.c:141
-#, fuzzy
-msgid "Database Server"
-msgstr "StlennvonioĆ¹"
-
-#: ../../services.pm_.c:170
-#, c-format
-msgid "Services: %d activated for %d registered"
-msgstr ""
-
-#: ../../services.pm_.c:186
-#, fuzzy
-msgid "Services"
-msgstr "trobarzhell"
-
-#: ../../services.pm_.c:198
-#, fuzzy
-msgid "running"
-msgstr "Ho evezh"
-
-#: ../../services.pm_.c:198
-#, fuzzy
-msgid "stopped"
-msgstr "OuzhpennaƱ"
-
-#: ../../services.pm_.c:212
-msgid "Services and deamons"
-msgstr ""
-
-#: ../../services.pm_.c:217
-msgid ""
-"No additional information\n"
-"about this service, sorry."
-msgstr ""
-
-#: ../../services.pm_.c:224
-#, fuzzy
-msgid "On boot"
-msgstr "Gwrizienn"
-
-#: ../../services.pm_.c:236
-#, fuzzy
-msgid "Start"
-msgstr "Meuziad LaƱsaƱ"
-
-#: ../../services.pm_.c:236
-#, fuzzy
-msgid "Stop"
-msgstr "Rann"
-
-#: ../../share/advertising/00-thanks.pl_.c:9
-msgid "Thank you for choosing Mandrake Linux 8.2"
-msgstr ""
-
-#: ../../share/advertising/00-thanks.pl_.c:10
-msgid "Welcome to the Open Source world"
-msgstr ""
-
-#: ../../share/advertising/00-thanks.pl_.c:11
-msgid ""
-"The success of MandrakeSoft is based upon the principle of Free Software. "
-"Your new operating system is the result of collaborative work on the part of "
-"the worldwide Linux Community"
-msgstr ""
-
-#: ../../share/advertising/01-gnu.pl_.c:9
-#, fuzzy
-msgid "Join the Free Software world"
-msgstr "AmprouiƱ ar c'hefluniadur"
-
-#: ../../share/advertising/01-gnu.pl_.c:10
-msgid ""
-"Get to know the Open Source community and become a member. Learn, teach, and "
-"help others by joining the many discussion forums that you will find in our "
-"\"Community\" webpages"
-msgstr ""
-
-#: ../../share/advertising/02-internet.pl_.c:9
-#, fuzzy
-msgid "Internet and Messaging"
-msgstr "dedennus"
-
-#: ../../share/advertising/02-internet.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best software to access everything the "
-"Internet has to offer: Surf the web & view animations with Mozilla and "
-"Konqueror, exchange email & organize your personal information with "
-"Evolution and Kmail, and much more"
-msgstr ""
-
-#: ../../share/advertising/03-graphic.pl_.c:9
-#, fuzzy
-msgid "Multimedia and Graphics"
-msgstr "Liesvedia"
-
-#: ../../share/advertising/03-graphic.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 lets you push your multimedia computer to its limits! Use "
-"the latest software to play music and audio files, edit and organize your "
-"images and photos, watch TV and videos, and much more"
-msgstr ""
-
-#: ../../share/advertising/04-develop.pl_.c:9
-msgid "Development"
-msgstr "Diorren"
-
-#: ../../share/advertising/04-develop.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 is the ultimate development platform. Discover the power "
-"of the GNU gcc compiler as well as the best Open Source development "
-"environments"
-msgstr ""
-
-#: ../../share/advertising/05-contcenter.pl_.c:9
-#, fuzzy
-msgid "Mandrake Control Center"
-msgstr "Anv ar gevreadenn"
-
-#: ../../share/advertising/05-contcenter.pl_.c:10
-msgid ""
-"The Mandrake Linux 8.2 Control Center is a one-stop location for fully "
-"customizing and configuring your Mandrake system"
-msgstr ""
-
-#: ../../share/advertising/06-user.pl_.c:9
-#, fuzzy
-msgid "User interfaces"
-msgstr "Etrefas arveriad/X"
-
-#: ../../share/advertising/06-user.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides 11 different graphical desktop environments and "
-"window managers to choose from including GNOME 1.4, KDE 2.2.2, Window Maker "
-"0.8, and the rest"
-msgstr ""
-
-#: ../../share/advertising/07-server.pl_.c:9
-#, fuzzy
-msgid "Server Software"
-msgstr "Anv ar servijer SMB"
-
-#: ../../share/advertising/07-server.pl_.c:10
-msgid ""
-"Transform your machine into a powerful server with just a few clicks of the "
-"mouse: Web server, email, firewall, router, file and print server, ..."
-msgstr ""
-
-#: ../../share/advertising/08-games.pl_.c:9
-msgid "Games"
-msgstr "C'hoarioĆ¹"
-
-#: ../../share/advertising/08-games.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best Open Source games - arcade, action, "
-"cards, sports, strategy, ..."
-msgstr ""
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:9
-msgid "MandrakeCampus"
-msgstr "MandrakeCampus"
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:10
-msgid ""
-"Would you like to learn Linux simply, quickly, and for free? MandrakeSoft "
-"provides free Linux training, as well as a way to test your progress, at "
-"MandrakeCampus -- our online training center"
-msgstr ""
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:9
-msgid "MandrakeExpert"
-msgstr "MandrakeExpert"
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:10
-msgid ""
-"Quality support from the Linux Community, and from MandrakeSoft, is just "
-"around the corner. And if you're already a Linux veteran, become an \"Expert"
-"\" and share your knowledge at our support website"
-msgstr ""
-
-#: ../../share/advertising/11-consul.pl_.c:9
-msgid "MandrakeConsulting"
-msgstr "MandrakeConsulting"
-
-#: ../../share/advertising/11-consul.pl_.c:10
-msgid ""
-"For all of your IT projects, our consultants are ready to analyze your "
-"requirements and offer a customized solution. Benefit from MandrakeSoft's "
-"vast experience as a Linux producer to provide a true IT alternative for "
-"your business organization"
-msgstr ""
-
-#: ../../share/advertising/12-MDKstore.pl_.c:9
-msgid "MandrakeStore"
-msgstr "MandrakeStore"
-
-#: ../../share/advertising/12-MDKstore.pl_.c:10
-msgid ""
-"A full range of Linux solutions, as well as special offers on products and "
-"'goodies', are available online at our e-store"
-msgstr ""
-
-#: ../../share/advertising/13-Nvert.pl_.c:9
-msgid ""
-"For more information on MandrakeSoft's Professional Services and commercial "
-"offerings, please see the following web page:"
-msgstr ""
-
-#: ../../share/advertising/13-Nvert.pl_.c:11
-msgid "http://www.mandrakesoft.com/sales/contact"
-msgstr ""
-
-#: ../../standalone.pm_.c:25
-msgid "Installing packages..."
-msgstr "O staliaƱ pakadoĆ¹..."
-
-#: ../../standalone/diskdrake_.c:85
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I'll try to go on blanking bad partitions"
-msgstr ""
-"N'hellaƱ ket lenn ho taolenn barzhaƱ, re vrein eo evidon :(\n"
-"Klask a rin kenderc'hel en ur ziverkaƱ ar parzhadurioĆ¹ siek"
-
-#: ../../standalone/drakautoinst_.c:45
-msgid "Error!"
-msgstr "Fazi!"
-
-#: ../../standalone/drakautoinst_.c:46
-#, c-format
-msgid "I can't find needed image file `%s'."
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:48
-#, fuzzy
-msgid "Auto Install Configurator"
-msgstr "Kefluniadur goude staliaƱ"
-
-#: ../../standalone/drakautoinst_.c:49
-msgid ""
-"You are about to configure an Auto Install floppy. This feature is somewhat "
-"dangerous and must be used circumspectly.\n"
-"\n"
-"With that feature, you will be able to replay the installation you've "
-"performed on this computer, being interactively prompted for some steps, in "
-"order to change their values.\n"
-"\n"
-"For maximum safety, the partitioning and formatting will never be performed "
-"automatically, whatever you chose during the install of this computer.\n"
-"\n"
-"Do you want to continue?"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:71
-#, fuzzy
-msgid "Automatic Steps Configuration"
-msgstr "Kefluniadur goude staliaƱ"
-
-#: ../../standalone/drakautoinst_.c:72
-msgid ""
-"Please choose for each step whether it will replay like your install, or it "
-"will be manual"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:83
-#, fuzzy
-msgid "Creating auto install floppy"
-msgstr "O krouiƱ ur bladennig staliaƱ emgefreek"
-
-#: ../../standalone/drakautoinst_.c:145
-msgid ""
-"\n"
-"Welcome.\n"
-"\n"
-"The parameters of the auto-install are available in the sections on the left"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:243 ../../standalone/drakgw_.c:548
-#: ../../standalone/scannerdrake_.c:106
-msgid "Congratulations!"
-msgstr "Gourc'hemennoĆ¹!"
-
-#: ../../standalone/drakautoinst_.c:244
-msgid ""
-"The floppy has been successfully generated.\n"
-"You may now replay your installation."
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:282
-#, fuzzy
-msgid "Auto Install"
-msgstr "StaliaƱ"
-
-#: ../../standalone/drakautoinst_.c:352
-#, fuzzy
-msgid "Add an item"
-msgstr "OuzhpennaƱ un arveriad"
-
-#: ../../standalone/drakautoinst_.c:359
-#, fuzzy
-msgid "Remove the last item"
-msgstr "O furmadiƱ ar restr saveteiƱ %s"
-
-#: ../../standalone/drakbackup_.c:438
-msgid ""
-"\n"
-" DrakBackup Report \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:439
-msgid ""
-"\n"
-" DrakBackup Daemon Report\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:443
-msgid ""
-"\n"
-" DrakBackup Report Details\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:465
-msgid "total progess"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:544 ../../standalone/drakbackup_.c:591
-msgid "Backup system files..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:592 ../../standalone/drakbackup_.c:656
-#, fuzzy
-msgid "Hard Disk Backup files..."
-msgstr "Restr gwareziƱ siek"
-
-#: ../../standalone/drakbackup_.c:604
-#, fuzzy
-msgid "Backup User files..."
-msgstr "Restr gwareziƱ siek"
-
-#: ../../standalone/drakbackup_.c:605
-msgid "Hard Disk Backup Progress..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:655
-#, fuzzy
-msgid "Backup Other files..."
-msgstr "Restr gwareziƱ siek"
-
-#: ../../standalone/drakbackup_.c:663
-#, c-format
-msgid ""
-"file list send by FTP : %s\n"
-" "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:666
-msgid ""
-"\n"
-" FTP connexion problem: It was not possible to send your backup files by "
-"FTP.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:676
-#, fuzzy
-msgid " Error during mail sending. \n"
-msgstr "Fazi en ur lenn ar restr %s"
-
-#: ../../standalone/drakbackup_.c:717 ../../standalone/drakbackup_.c:728
-#: ../../standalone/drakbackup_.c:739 ../../standalone/drakfont_.c:788
-#, fuzzy
-msgid "File Selection"
-msgstr "Diuzadenn strollad pakadoĆ¹"
-
-#: ../../standalone/drakbackup_.c:744
-msgid "Select the files or directories and click on 'Add'"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:779
-msgid ""
-"\n"
-"Please check all options that you need.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:780
-msgid ""
-"These options can backup and restore all files in your /etc directory.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:781
-msgid "Backup your System files. ( /etc directory )"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:782
-msgid "Use incremental backup (do not replace old backups)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:783
-msgid "Do not include critical files (passwd, group, fstab)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:784
-msgid ""
-"With this option you will be able to restore any version\n"
-" of your /etc directory."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:801
-#, fuzzy
-msgid "Please check all users that you want to include in your backup."
-msgstr "Dibabit ar pakadoĆ¹ a vennit staliaƱ, mar plij."
-
-#: ../../standalone/drakbackup_.c:828
-msgid "Do not include the browser cache"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:829 ../../standalone/drakbackup_.c:853
-msgid "Use Incremental Backups (do not replace old backups)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:851 ../../standalone/drakfont_.c:828
-#, fuzzy
-msgid "Remove Selected"
-msgstr "Lemel ar steudad"
-
-#: ../../standalone/drakbackup_.c:889
-msgid "Windows (FAT32)"
-msgstr "Windows (FAT32)"
-
-#: ../../standalone/drakbackup_.c:928
-#, fuzzy
-msgid "Users"
-msgstr "Anv arveriad"
-
-#: ../../standalone/drakbackup_.c:954
-msgid "Use FTP connection to backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:957
-#, fuzzy
-msgid "Please enter the host name or IP."
-msgstr "Dibabit seurt ho logodenn, mar plij."
-
-#: ../../standalone/drakbackup_.c:962
-msgid ""
-"Please enter the directory to\n"
-" put the backup on this host."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:967
-#, fuzzy
-msgid "Please enter your login"
-msgstr "Klaskit adarre mar plij"
-
-#: ../../standalone/drakbackup_.c:972
-#, fuzzy
-msgid "Please enter your password"
-msgstr "Klaskit adarre mar plij"
-
-#: ../../standalone/drakbackup_.c:978
-#, fuzzy
-msgid "Remember this password"
-msgstr "Tremenger ebet"
-
-#: ../../standalone/drakbackup_.c:1042 ../../standalone/drakbackup_.c:2038
-#, fuzzy
-msgid "FTP Connection"
-msgstr "Lugerezh ar voullerez"
-
-#: ../../standalone/drakbackup_.c:1049 ../../standalone/drakbackup_.c:2046
-#, fuzzy
-msgid "Secure Connection"
-msgstr "Diuzit lugerezh ar voullerez"
-
-#: ../../standalone/drakbackup_.c:1075 ../../standalone/drakbackup_.c:2879
-msgid "Use CD/DVDROM to backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1078 ../../standalone/drakbackup_.c:2883
-#, fuzzy
-msgid "Please choose your CD space"
-msgstr "Dibabit reizhadur ho stokellaoueg, mar plij."
-
-#
-#: ../../standalone/drakbackup_.c:1084 ../../standalone/drakbackup_.c:2895
-#, fuzzy
-msgid "Please check if you are using CDRW media"
-msgstr "Klikit war ur parzhadur mar plij"
-
-#: ../../standalone/drakbackup_.c:1090 ../../standalone/drakbackup_.c:2901
-msgid "Please check if you want to erase your CDRW before"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1096
-#, fuzzy
-msgid ""
-"Please check if you want to include\n"
-" install boot on your CD."
-msgstr "Dibabit ar pakadoĆ¹ a vennit staliaƱ, mar plij."
-
-#: ../../standalone/drakbackup_.c:1102
-msgid ""
-"Please enter your CD Writer device name\n"
-" ex: 0,1,0"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1143
-#, fuzzy
-msgid "Use tape to backup"
-msgstr "Restr gwareziƱ siek"
-
-#: ../../standalone/drakbackup_.c:1146
-msgid "Please enter the device name to use for backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1152 ../../standalone/drakbackup_.c:1193
-#: ../../standalone/drakbackup_.c:2003
-msgid ""
-"Please enter the maximum size\n"
-" allowed for Drakbackup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1185 ../../standalone/drakbackup_.c:1995
-#, fuzzy
-msgid "Please enter the directory to save:"
-msgstr "Dibabit seurt ho logodenn, mar plij."
-
-#: ../../standalone/drakbackup_.c:1199 ../../standalone/drakbackup_.c:2009
-#, fuzzy
-msgid "Use quota for backup files."
-msgstr "Restr gwareziƱ siek"
-
-#: ../../standalone/drakbackup_.c:1257
-#, fuzzy
-msgid "Network"
-msgstr "Taolenn"
-
-#: ../../standalone/drakbackup_.c:1267
-msgid "HardDrive / NFS"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1287 ../../standalone/drakbackup_.c:1291
-#: ../../standalone/drakbackup_.c:1295
-msgid "hourly"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1288 ../../standalone/drakbackup_.c:1292
-#: ../../standalone/drakbackup_.c:1295
-msgid "daily"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1289 ../../standalone/drakbackup_.c:1293
-#: ../../standalone/drakbackup_.c:1295
-msgid "weekly"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1290 ../../standalone/drakbackup_.c:1294
-#: ../../standalone/drakbackup_.c:1295
-msgid "monthly"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1302
-#, fuzzy
-msgid "Use daemon"
-msgstr "Anv arveriad"
-
-#: ../../standalone/drakbackup_.c:1307
-#, fuzzy
-msgid ""
-"Please choose the time \n"
-"interval between each backup"
-msgstr "Dibabit ar pakadoĆ¹ a vennit staliaƱ, mar plij."
-
-#: ../../standalone/drakbackup_.c:1313
-#, fuzzy
-msgid ""
-"Please choose the\n"
-"media for backup."
-msgstr "Diuzit ar yezh da implijout, mar plij."
-
-#: ../../standalone/drakbackup_.c:1317
-#, fuzzy
-msgid "Use Hard Drive with daemon"
-msgstr "Implijout gwelladur ar bladenn galet ?"
-
-#: ../../standalone/drakbackup_.c:1319
-#, fuzzy
-msgid "Use FTP with daemon"
-msgstr "Rouedad/Diaouled"
-
-#: ../../standalone/drakbackup_.c:1323
-msgid "Please be sure that the cron daemon is included in your services."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1359
-msgid "Send mail report after each backup to :"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1401
-msgid "What"
-msgstr "Petra"
-
-#: ../../standalone/drakbackup_.c:1406
-msgid "Where"
-msgstr "Pelec'h"
-
-#: ../../standalone/drakbackup_.c:1411
-msgid "When"
-msgstr "Pa"
-
-#: ../../standalone/drakbackup_.c:1416
-#, fuzzy
-msgid "More Options"
-msgstr "DibarzhoĆ¹ ar molladĀ :"
-
-#: ../../standalone/drakbackup_.c:1435 ../../standalone/drakbackup_.c:2791
-#, fuzzy
-msgid "Drakbackup Configuration"
-msgstr "Kefluniadur ar rouedad"
-
-#: ../../standalone/drakbackup_.c:1453
-#, fuzzy
-msgid "Please choose where you want to backup"
-msgstr "Dibabit ar pakadoĆ¹ a vennit staliaƱ, mar plij."
-
-#: ../../standalone/drakbackup_.c:1455
-msgid "on Hard Drive"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1466
-msgid "across Network"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1530
-#, fuzzy
-msgid "Please choose what you want to backup"
-msgstr "Dibabit ar pakadoĆ¹ a vennit staliaƱ, mar plij."
-
-#: ../../standalone/drakbackup_.c:1531
-#, fuzzy
-msgid "Backup system"
-msgstr "KefluniaƱ reizhiadoĆ¹ restroĆ¹"
-
-#: ../../standalone/drakbackup_.c:1532
-msgid "Backup Users"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1535
-msgid "Select user manually"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1617
-msgid ""
-"\n"
-"Backup Sources: \n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1618
-msgid ""
-"\n"
-"- System Files:\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1620
-msgid ""
-"\n"
-"- User Files:\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1622
-msgid ""
-"\n"
-"- Other Files:\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1624
-#, c-format
-msgid ""
-"\n"
-"- Save on Hard drive on path : %s\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1625
-#, c-format
-msgid ""
-"\n"
-"- Save on FTP on host : %s\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1626
-#, c-format
-msgid ""
-"\t\t user name: %s\n"
-"\t\t on path: %s \n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1627
-#, fuzzy
-msgid ""
-"\n"
-"- Options:\n"
-msgstr "Parzhadur"
-
-#: ../../standalone/drakbackup_.c:1628
-msgid "\tDo not include System Files\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1629
-msgid "\tBackups use tar and bzip2\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1630
-msgid "\tBackups use tar and gzip\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1631
-#, c-format
-msgid ""
-"\n"
-"- Daemon (%s) include :\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1632
-msgid "\t-Hard drive.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1633
-msgid "\t-CDROM.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1634
-msgid "\t-Network by FTP.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1635
-msgid "\t-Network by SSH.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1637
-msgid "No configuration, please click Wizard or Advanced.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1642
-msgid ""
-"List of data to restore:\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1743
-msgid ""
-"List of data corrupted:\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1745
-#, fuzzy
-msgid "Please uncheck or remove it on next time."
-msgstr "Dibabit ouzh pe borzh a-steud eo luget ho modem, mar plij."
-
-#: ../../standalone/drakbackup_.c:1755
-msgid "Backup files are corrupted"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1776
-msgid " All your selectionned data have been "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1777
-#, c-format
-msgid " Successfuly Restored on %s "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1876
-#, fuzzy
-msgid " Restore Configuration "
-msgstr "Kefluniadur ar rouedad"
-
-#: ../../standalone/drakbackup_.c:1894
-msgid "OK to restore the other files."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1912
-msgid "User list to restore (only the most recent date per user is important)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1962
-#, fuzzy
-msgid "Backup the system files before:"
-msgstr "Restr gwareziƱ siek"
-
-#: ../../standalone/drakbackup_.c:1964
-#, fuzzy
-msgid "please choose the date to restore"
-msgstr "Dibabit seurt ho logodenn, mar plij."
-
-#: ../../standalone/drakbackup_.c:1992
-#, fuzzy
-msgid "Use Hard Disk to backup"
-msgstr "Restr gwareziƱ siek"
-
-#: ../../standalone/drakbackup_.c:2073
-#, fuzzy
-msgid "Restore from Hard Disk."
-msgstr "Assevel adalek ar pladennig"
-
-#: ../../standalone/drakbackup_.c:2075
-msgid "Please enter the directory where backups are stored"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2133
-#, fuzzy
-msgid "Select another media to restore from"
-msgstr "Dibabit seurt ho logodenn, mar plij."
-
-#: ../../standalone/drakbackup_.c:2135
-#, fuzzy
-msgid "Other Media"
-msgstr "All"
-
-#: ../../standalone/drakbackup_.c:2141
-#, fuzzy
-msgid "Restore system"
-msgstr "StaliaƱ ar reizhiad"
-
-#: ../../standalone/drakbackup_.c:2142
-#, fuzzy
-msgid "Restore Users"
-msgstr "AdaozaƱ adalek ar restr"
-
-#: ../../standalone/drakbackup_.c:2143
-#, fuzzy
-msgid "Restore Other"
-msgstr "AdaozaƱ adalek ar restr"
-
-#: ../../standalone/drakbackup_.c:2145
-msgid "select path to restore (instead of / )"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2149
-msgid "Do new backup before restore (only for incremental backups.)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2150
-msgid "Remove user directories before restore."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2207
-msgid "Restore all backups"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2215
-#, fuzzy
-msgid "Custom Restore"
-msgstr "Neuziet"
-
-#: ../../standalone/drakbackup_.c:2256 ../../standalone/drakbackup_.c:2281
-#: ../../standalone/drakbackup_.c:2302 ../../standalone/drakbackup_.c:2323
-#: ../../standalone/drakbackup_.c:2341 ../../standalone/drakbackup_.c:2373
-#: ../../standalone/drakbackup_.c:2389 ../../standalone/drakbackup_.c:2409
-#: ../../standalone/drakbackup_.c:2428 ../../standalone/drakbackup_.c:2450
-#: ../../standalone/drakfont_.c:578
-msgid "Help"
-msgstr "Skoazell"
-
-#: ../../standalone/drakbackup_.c:2259 ../../standalone/drakbackup_.c:2286
-#: ../../standalone/drakbackup_.c:2305 ../../standalone/drakbackup_.c:2326
-#: ../../standalone/drakbackup_.c:2344 ../../standalone/drakbackup_.c:2392
-#: ../../standalone/drakbackup_.c:2412 ../../standalone/drakbackup_.c:2431
-msgid "Previous"
-msgstr "Diaraog"
-
-#: ../../standalone/drakbackup_.c:2261 ../../standalone/drakbackup_.c:2328
-#: ../../standalone/logdrake_.c:224
-msgid "Save"
-msgstr "EnrollaƱ"
-
-#: ../../standalone/drakbackup_.c:2307
-#, fuzzy
-msgid "Build Backup"
-msgstr "Restr gwareziƱ siek"
-
-#: ../../standalone/drakbackup_.c:2346 ../../standalone/drakbackup_.c:3023
-#, fuzzy
-msgid "Restore"
-msgstr "AdaozaƱ adalek ar restr"
-
-#: ../../standalone/drakbackup_.c:2394 ../../standalone/drakbackup_.c:2414
-#: ../../standalone/drakbackup_.c:2435
-msgid "Next"
-msgstr "A heul"
-
-#: ../../standalone/drakbackup_.c:2468
-msgid ""
-"Please Build backup before to restore it...\n"
-" or verify that your path to save is correct."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2489
-msgid ""
-"Error durind sendmail\n"
-" your report mail was not sent\n"
-" Please configure sendmail"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2512
-#, fuzzy
-msgid "Package List to Install"
-msgstr "Dibabit pakadoĆ¹ da staliaƱ"
-
-#: ../../standalone/drakbackup_.c:2540
-msgid ""
-"Error durind sending file via FTP.\n"
-" Please correct your FTP configuration."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2563
-#, fuzzy
-msgid "Please select data to restore..."
-msgstr "Diuzit ar yezh da implijout, mar plij."
-
-#: ../../standalone/drakbackup_.c:2584
-#, fuzzy
-msgid "Please select media for backup..."
-msgstr "Diuzit ar yezh da implijout, mar plij."
-
-#: ../../standalone/drakbackup_.c:2606
-#, fuzzy
-msgid "Please select data to backup..."
-msgstr "Diuzit ar yezh da implijout, mar plij."
-
-#: ../../standalone/drakbackup_.c:2628
-msgid ""
-"No configuration file found \n"
-"please click Wizard or Advanced."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2649
-msgid "Under Devel ... please wait."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2729
-#, fuzzy
-msgid "Backup system files"
-msgstr "Restr gwareziƱ siek"
-
-#: ../../standalone/drakbackup_.c:2731
-#, fuzzy
-msgid "Backup user files"
-msgstr "Restr gwareziƱ siek"
-
-#: ../../standalone/drakbackup_.c:2733
-#, fuzzy
-msgid "Backup other files"
-msgstr "Restr gwareziƱ siek"
-
-#: ../../standalone/drakbackup_.c:2735 ../../standalone/drakbackup_.c:2766
-msgid "Total Progress"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2757
-msgid "files sending by FTP"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2761
-#, fuzzy
-msgid "Sending files..."
-msgstr "EnrollaƱ er restr"
-
-#: ../../standalone/drakbackup_.c:2831
-msgid "Data list to include on CDROM."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2889
-#, fuzzy
-msgid "Please enter the cd writer speed"
-msgstr "Dibabit seurt ho logodenn, mar plij."
-
-#: ../../standalone/drakbackup_.c:2907
-msgid "Please enter your CD Writer device name (ex: 0,1,0)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2913
-#, fuzzy
-msgid "Please check if you want to include install boot on your CD."
-msgstr "Dibabit ar pakadoĆ¹ a vennit staliaƱ, mar plij."
-
-#: ../../standalone/drakbackup_.c:2979
-#, fuzzy
-msgid "Backup Now from configuration file"
-msgstr "Kefluniadur ar rouedad"
-
-#: ../../standalone/drakbackup_.c:2989
-#, fuzzy
-msgid "View Backup Configuration."
-msgstr "Kefluniadur ar rouedad"
-
-#: ../../standalone/drakbackup_.c:3010
-#, fuzzy
-msgid "Wizard Configuration"
-msgstr "Kefluniadur"
-
-#: ../../standalone/drakbackup_.c:3014
-#, fuzzy
-msgid "Advanced Configuration"
-msgstr "Kefluniadur"
-
-#: ../../standalone/drakbackup_.c:3018
-#, fuzzy
-msgid "Backup Now"
-msgstr "KefluniaƱ reizhiadoĆ¹ restroĆ¹"
-
-#: ../../standalone/drakbackup_.c:3043
-msgid "Drakbackup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3094
-msgid ""
-"options description:\n"
-"\n"
-" In this step Drakbackup allow you to change:\n"
-"\n"
-" - The compression mode:\n"
-" \n"
-" If you check bzip2 compression, you will compress\n"
-" your data better than gzip (about 2-10 %).\n"
-" This option is not checked by default because\n"
-" this compression mode needs more time ( about 1000% more).\n"
-" \n"
-" - The update mode:\n"
-"\n"
-" This option will update your backup, but this\n"
-" option is not really useful because you need to\n"
-" decompress your backup before you can update it.\n"
-" \n"
-" - the .backupignore mode:\n"
-"\n"
-" Like with cvs, Drakbackup will ignore all references\n"
-" included in .backupignore files in each directories.\n"
-" ex: \n"
-" /*> cat .backupignore*/\n"
-" *.o\n"
-" *~\n"
-" ...\n"
-" \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3124
-msgid ""
-"\n"
-" Some errors during sendmail are caused by \n"
-" a bad configuration of postfix. To solve it you have to\n"
-" set myhostname or mydomain in /etc/postfix/main.cf\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3132
-msgid ""
-"options description:\n"
-"\n"
-" - Backup system files:\n"
-" \n"
-"\tThis option allows you to backup your /etc directory,\n"
-"\twhich contains all configuration files. Please be\n"
-"\tcareful during the restore step to not overwrite:\n"
-"\t\t/etc/passwd \n"
-"\t\t/etc/group \n"
-"\t\t/etc/fstab\n"
-"\n"
-" - Backup User files: \n"
-"\n"
-"\tThis option allows you select all users that you want \n"
-"\tto backup.\n"
-"\tTo preserve disk space, it is recommended that you \n"
-"\tdo not include web browser's cache.\n"
-"\n"
-" - Backup Other files: \n"
-"\n"
-"\tThis option allows you to add more data to save.\n"
-"\tWith the other backup it's not possible at the \n"
-"\tmoment to select select incremental backup.\t\t\n"
-" \n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerful \n"
-"\toption for backup. This option allows you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed afterward.\n"
-"\tThen you will be able, during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this option all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3171
-msgid ""
-"restore description:\n"
-" \n"
-"Only the most recent date will be used ,because with incremental \n"
-"backups it is necesarry to restore one by one each older backups.\n"
-"\n"
-"So if you don't like to restore an user please unselect all his\n"
-"check box.\n"
-"\n"
-"Otherwise, you are able to select only one of this\n"
-"\n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerfull \n"
-"\toption to use backup, this option allow you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed after.\n"
-"\tSo you will be able during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this options all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3197 ../../standalone/drakbackup_.c:3272
-msgid ""
-" Copyright (C) 2001 MandrakeSoft by DUPONT Sebastien <dupont_s\\@epita.fr>"
-msgstr ""
-"Copyright (C) 2001 MandrakeSoft gant DUPONT Sebastien <dupont_s\\@epita.fr>"
-
-#: ../../standalone/drakbackup_.c:3199 ../../standalone/drakbackup_.c:3274
-msgid ""
-" This program is free software; you can redistribute it and/or modify\n"
-" it under the terms of the GNU General Public License as published by\n"
-" the Free Software Foundation; either version 2, or (at your option)\n"
-" any later version.\n"
-"\n"
-" This program is distributed in the hope that it will be useful,\n"
-" but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-" GNU General Public License for more details.\n"
-"\n"
-" You should have received a copy of the GNU General Public License\n"
-" along with this program; if not, write to the Free Software\n"
-" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3213
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select: \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, DrakBackup will remove \n"
-" your original directory and verify that all \n"
-" backup files are not corrupted. It is recommended \n"
-" you do a last backup before restoring.\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3251
-msgid ""
-"options description:\n"
-"\n"
-"Please be careful when you are using ftp backup, because only \n"
-"backups that are already built are sent to the server.\n"
-"So at the moment, you need to build the backup on your hard \n"
-"drive before sending it to the server.\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3260
-msgid ""
-"\n"
-"Restore Backup Problems:\n"
-"\n"
-"During the restore step, Drakbackup will verify all your\n"
-"backup files before restoring them.\n"
-"Before the restore, Drakbackup will remove \n"
-"your original directory, and you will loose all your \n"
-"data. It is important to be careful and not modify the \n"
-"backup data files by hand.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3288
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, Drakbackup will remove\n"
-" your original directory and verify that all\n"
-" backup files are not corrupted. It is recommended\n"
-" you do a last backup before restoring.\n"
-" \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakboot_.c:58
-#, c-format
-msgid "Installation of %s failed. The following error occured:"
-msgstr "Staliadur %s a zo sac'het. Degouezhet eo ar fazi a heulĀ :"
-
-#: ../../standalone/drakfloppy_.c:64
-msgid "usage: drakfloppy\n"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:68
-#, fuzzy
-msgid "-misc-Fixed-Medium-r-*-*-*-140-*-*-*-*-*-*,*"
-msgstr "-misc-fixed-medium-r-*-*-*-100-*-*-*-*-*-*,*"
-
-#: ../../standalone/drakfloppy_.c:69
-#, fuzzy
-msgid "Module name"
-msgstr "DibarzhoĆ¹ ar molladĀ :"
-
-#: ../../standalone/drakfloppy_.c:69
-#, fuzzy
-msgid "Size"
-msgstr "Ment: %s"
-
-#: ../../standalone/drakfloppy_.c:74 ../../standalone/drakfloppy_.c:373
-#, fuzzy
-msgid "drakfloppy"
-msgstr "Assevel adalek ar pladennig"
-
-#: ../../standalone/drakfloppy_.c:91
-#, fuzzy
-msgid "boot disk creation"
-msgstr "DibarzhoĆ¹ ar voullerez lpd a-bell"
-
-#: ../../standalone/drakfloppy_.c:99 ../../standalone/drakfloppy_.c:112
-msgid "default"
-msgstr "dre ziouer"
-
-#: ../../standalone/drakfloppy_.c:115
-#, c-format
-msgid "DrakFloppy Error: %s"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:126
-#, fuzzy
-msgid "kernel version"
-msgstr "KefluniaƱ ar proksioĆ¹"
-
-#: ../../standalone/drakfloppy_.c:132
-#, fuzzy
-msgid "General"
-msgstr "Rummel"
-
-#: ../../standalone/drakfloppy_.c:137
-#, fuzzy
-msgid "Expert Area"
-msgstr "Mod mailh"
-
-#: ../../standalone/drakfloppy_.c:140
-msgid "mkinitrd optional arguments"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:141
-#, fuzzy
-msgid "Add a module"
-msgstr "OuzhpennaƱ un arveriad"
-
-#: ../../standalone/drakfloppy_.c:161
-#, fuzzy
-msgid "force"
-msgstr "Dilec'hiaƱ"
-
-#: ../../standalone/drakfloppy_.c:162
-msgid "if needed"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:163
-msgid "omit scsi modules"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:164
-msgid "omit raid modules"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:200
-#, fuzzy
-msgid "Remove a module"
-msgstr "EilpennaƱ urzh ar pajennoĆ¹"
-
-#: ../../standalone/drakfloppy_.c:222
-msgid "Output"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:234
-msgid "Build the disk"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:422
-#, c-format
-msgid "Be sure a media is present for the device %s"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:427
-#, c-format
-msgid ""
-"There is no medium or it is write-protected for device %s.\n"
-"Please insert one."
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:429
-#, c-format
-msgid "Unable to fork: %s"
-msgstr ""
-
-#: ../../standalone/drakfloppy_.c:433
-#, c-format
-msgid ""
-"Unable to close properly mkbootdisk: \n"
-" %s \n"
-" %s"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:230
-msgid "Search installed fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:232
-msgid "Unselect fonts installed"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:253
-msgid "parse all fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:254
-#, fuzzy
-msgid "no fonts found"
-msgstr "%s ket kavet"
-
-#: ../../standalone/drakfont_.c:262 ../../standalone/drakfont_.c:304
-#: ../../standalone/drakfont_.c:353 ../../standalone/drakfont_.c:413
-#: ../../standalone/drakfont_.c:422 ../../standalone/drakfont_.c:448
-#: ../../standalone/drakfont_.c:460 ../../standalone/drakfont_.c:473
-#, fuzzy
-msgid "done"
-msgstr "Graet"
-
-#: ../../standalone/drakfont_.c:266
-msgid "could not find any font in your mounted partitions"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:302
-msgid "Reselect correct fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:305
-msgid "could not find any font.\n"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:328
-msgid "Search fonts in installed list"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:351
-#, fuzzy
-msgid "Fonts copy"
-msgstr "FurmadiƱ ar bladennig"
-
-#: ../../standalone/drakfont_.c:354
-#, fuzzy
-msgid "True Type fonts installation"
-msgstr "O prientiƱ ar staliadur"
-
-#: ../../standalone/drakfont_.c:358
-msgid "please wait during ttmkfdir..."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:362
-msgid "True Type install done"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:369 ../../standalone/drakfont_.c:385
-msgid "Fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:373 ../../standalone/drakfont_.c:389
-#: ../../standalone/drakfont_.c:409
-msgid "type1inst building"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:378 ../../standalone/drakfont_.c:393
-msgid "Ghostscript referencing"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:400
-msgid "ttf fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:404
-msgid "pfm fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:414
-msgid "Suppress temporary Files"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:417
-msgid "Restart XFS"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:458 ../../standalone/drakfont_.c:468
-msgid "Suppress Fonts Files"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:470
-#, fuzzy
-msgid "xfs restart"
-msgstr "strishaat"
-
-#: ../../standalone/drakfont_.c:477 ../../standalone/drakfont_.c:761
-msgid ""
-"Before installing any fonts, be sure that you have the right to use and "
-"install them on your system.\n"
-"\n"
-"-You can install the fonts using the normal way. In rare cases, bogus fonts "
-"may hang up your X Server."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:551
-#, fuzzy
-msgid "Fonts Importation"
-msgstr "FurmadiƱ parzhadurioĆ¹"
-
-#: ../../standalone/drakfont_.c:566
-msgid "Get Windows Fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:568
-#, fuzzy
-msgid "Uninstall Fonts"
-msgstr "O tistaliaƱ ar RPMoĆ¹"
-
-#: ../../standalone/drakfont_.c:571
-#, fuzzy
-msgid "Advanced Options"
-msgstr "Kefluniadur"
-
-#: ../../standalone/drakfont_.c:573
-#, fuzzy
-msgid "Font List"
-msgstr "Poent marc'haƱ"
-
-#: ../../standalone/drakfont_.c:740
-#, fuzzy
-msgid "Choose the applications that will support the fonts :"
-msgstr "Dibabit ar parzhadur a vennit furmadiƱ"
-
-#: ../../standalone/drakfont_.c:744
-msgid "Ghostscript"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:748
-#, fuzzy
-msgid "StarOffice"
-msgstr "Burev"
-
-#: ../../standalone/drakfont_.c:752
-msgid "Abiword"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:756
-#, fuzzy
-msgid "Generic Printers"
-msgstr "Moullerez"
-
-#: ../../standalone/drakfont_.c:793
-msgid "Select the font file or directory and click on 'Add'"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:829
-#, fuzzy
-msgid "Install List"
-msgstr "StaliaƱ ar reizhiad"
-
-#: ../../standalone/drakfont_.c:859
-msgid "click here if you are sure."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:860
-msgid "here if no."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:896
-msgid "Unselected All"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:897
-#, fuzzy
-msgid "Selected All"
-msgstr "Diuzit ar restr"
-
-#: ../../standalone/drakfont_.c:898
-#, fuzzy
-msgid "Remove List"
-msgstr "DibarzhoĆ¹ ar voullerez lpd a-bell"
-
-#: ../../standalone/drakfont_.c:915 ../../standalone/drakfont_.c:935
-msgid "Initials tests"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:916
-msgid "Copy fonts on your system"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:917
-msgid "Install & convert Fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:918
-#, fuzzy
-msgid "Post Install"
-msgstr "StaliaƱ"
-
-#: ../../standalone/drakfont_.c:936
-msgid "Remove fonts on your system"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:937
-#, fuzzy
-msgid "Post Uninstall"
-msgstr "Dilezel ar staliadur"
-
-#: ../../standalone/drakgw_.c:43 ../../standalone/drakgw_.c:196
-#, fuzzy
-msgid "Internet Connection Sharing"
-msgstr "Lugerezh ar voullerez"
-
-#: ../../standalone/drakgw_.c:122
-msgid "Sorry, we support only 2.4 kernels."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:134
-msgid "Internet Connection Sharing currently enabled"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:135
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently enabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:139
-#, fuzzy
-msgid "disable"
-msgstr "Taolenn"
-
-#: ../../standalone/drakgw_.c:139 ../../standalone/drakgw_.c:164
-msgid "dismiss"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:139 ../../standalone/drakgw_.c:164
-#, fuzzy
-msgid "reconfigure"
-msgstr "KefluniaƱ X"
-
-#: ../../standalone/drakgw_.c:142
-#, fuzzy
-msgid "Disabling servers..."
-msgstr "O tinoiƱ trobarzhelloĆ¹..."
-
-#: ../../standalone/drakgw_.c:150
-#, fuzzy
-msgid "Internet connection sharing is now disabled."
-msgstr "Lugerezh ar voullerez"
-
-#: ../../standalone/drakgw_.c:159
-msgid "Internet Connection Sharing currently disabled"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:160
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently disabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:164
-#, fuzzy
-msgid "enable"
-msgstr "Taolenn"
-
-#: ../../standalone/drakgw_.c:171
-msgid "Enabling servers..."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:176
-#, fuzzy
-msgid "Internet connection sharing is now enabled."
-msgstr "Lugerezh ar voullerez"
-
-#: ../../standalone/drakgw_.c:197
-msgid ""
-"You are about to configure your computer to share its Internet connection.\n"
-"With that feature, other computers on your local network will be able to use "
-"this computer's Internet connection.\n"
-"\n"
-"Note: you need a dedicated Network Adapter to set up a Local Area Network "
-"(LAN)."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:223
-#, c-format
-msgid "Interface %s (using module %s)"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:224
-#, fuzzy, c-format
-msgid "Interface %s"
-msgstr "dedennus"
-
-#: ../../standalone/drakgw_.c:232
-msgid "No network adapter on your system!"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:233
-msgid ""
-"No ethernet network adapter has been detected on your system. Please run the "
-"hardware configuration tool."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:239
-msgid "Network interface"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:240
-#, c-format
-msgid ""
-"There is only one configured network adapter on your system:\n"
-"\n"
-"%s\n"
-"\n"
-"I am about to setup your Local Area Network with that adapter."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:249
-msgid ""
-"Please choose what network adapter will be connected to your Local Area "
-"Network."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:267
-#, fuzzy
-msgid "Network interface already configured"
-msgstr "Skramm ket kefluniet"
-
-#: ../../standalone/drakgw_.c:268
-#, c-format
-msgid ""
-"Warning, the network adapter (%s) is already configured.\n"
-"\n"
-"Do you want an automatic re-configuration?\n"
-"\n"
-"You can do it manually but you need to know what you're doing."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:273
-#, fuzzy
-msgid "Automatic reconfiguration"
-msgstr "Kefluniadur goude staliaƱ"
-
-#: ../../standalone/drakgw_.c:274
-#, fuzzy
-msgid "Show current interface configuration"
-msgstr "KefluniaƱ ar modem"
-
-#: ../../standalone/drakgw_.c:276
-#, c-format
-msgid ""
-"Current configuration of `%s':\n"
-"\n"
-"Network: %s\n"
-"IP address: %s\n"
-"IP attribution: %s\n"
-"Driver: %s"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:288
-msgid ""
-"I can keep your current configuration and assume you already set up a DHCP "
-"server; in that case please verify I correctly read the C-Class Network that "
-"you use for your local network; I will not reconfigure it and I will not "
-"touch your DHCP server configuration.\n"
-"\n"
-"Else, I can reconfigure your interface and (re)configure a DHCP server for "
-"you.\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:293
-msgid "C-Class Local Network"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:294
-#, fuzzy
-msgid "(This) DHCP Server IP"
-msgstr "IP ar servijer SMB"
-
-#: ../../standalone/drakgw_.c:295
-msgid "Re-configure interface and DHCP server"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:302
-msgid "The Local Network did not finish with `.0', bailing out."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:313
-#, c-format
-msgid "Potential LAN address conflict found in current config of %s!\n"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:321
-#, fuzzy
-msgid "Firewalling configuration detected!"
-msgstr "o lenn ar c'hefluniadur"
-
-#: ../../standalone/drakgw_.c:322
-msgid ""
-"Warning! An existing firewalling configuration has been detected. You may "
-"need some manual fix after installation."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:329
-#, fuzzy
-msgid "Configuring..."
-msgstr "KefluniaƱ IDE"
-
-#: ../../standalone/drakgw_.c:330
-msgid "Configuring scripts, installing software, starting servers..."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:366
-#, fuzzy, c-format
-msgid "Problems installing package %s"
-msgstr "O staliaƱ ar pakad %s"
-
-#: ../../standalone/drakgw_.c:549
-msgid ""
-"Everything has been configured.\n"
-"You may now share Internet connection with other computers on your Local "
-"Area Network, using automatic network configuration (DHCP)."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:566
-msgid "The setup has already been done, but it's currently disabled."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:567
-msgid "The setup has already been done, and it's currently enabled."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:568
-#, fuzzy
-msgid "No Internet Connection Sharing has ever been configured."
-msgstr "Lugerezh ar voullerez"
-
-#: ../../standalone/drakgw_.c:573
-#, fuzzy
-msgid "Internet connection sharing configuration"
-msgstr "Lugerezh ar voullerez"
-
-#: ../../standalone/drakgw_.c:580
-#, fuzzy, c-format
-msgid ""
-"Welcome to the Internet Connection Sharing utility!\n"
-"\n"
-"%s\n"
-"\n"
-"Click on Configure to launch the setup wizard."
-msgstr "Lugerezh ar voullerez"
-
-#: ../../standalone/draknet_.c:80
-#, fuzzy, c-format
-msgid "Network configuration (%d adapters)"
-msgstr "Kefluniadur ar rouedad"
-
-#: ../../standalone/draknet_.c:87 ../../standalone/draknet_.c:595
-#, fuzzy
-msgid "Profile: "
-msgstr "marc'haƱ sac'hetĀ : "
-
-#: ../../standalone/draknet_.c:95
-msgid "Del profile..."
-msgstr ""
-
-#: ../../standalone/draknet_.c:101
-msgid "Profile to delete:"
-msgstr ""
-
-#: ../../standalone/draknet_.c:129
-msgid "New profile..."
-msgstr ""
-
-#: ../../standalone/draknet_.c:135
-msgid ""
-"Name of the profile to create (the new profile is created as a copy of the "
-"current one) :"
-msgstr ""
-
-#: ../../standalone/draknet_.c:161
-#, fuzzy
-msgid "Hostname: "
-msgstr "Anv an ostizĀ : "
-
-#: ../../standalone/draknet_.c:168
-#, fuzzy
-msgid "Internet access"
-msgstr "dedennus"
-
-#: ../../standalone/draknet_.c:181
-#, fuzzy
-msgid "Type:"
-msgstr "SeurtĀ : "
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-msgid "Gateway:"
-msgstr "TreuzellĀ : "
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-#, fuzzy
-msgid "Interface:"
-msgstr "dedennus"
-
-#: ../../standalone/draknet_.c:195
-msgid "Status:"
-msgstr ""
-
-#: ../../standalone/draknet_.c:202
-msgid "Wait please"
-msgstr ""
-
-#: ../../standalone/draknet_.c:220
-#, fuzzy
-msgid "Configure Internet Access..."
-msgstr "KefluniaƱ servijoĆ¹"
-
-#: ../../standalone/draknet_.c:227 ../../standalone/draknet_.c:449
-#, fuzzy
-msgid "LAN configuration"
-msgstr "Kefluniadur"
-
-#: ../../standalone/draknet_.c:232
-#, fuzzy
-msgid "Driver"
-msgstr "Servijer"
-
-#: ../../standalone/draknet_.c:232
-#, fuzzy
-msgid "Interface"
-msgstr "dedennus"
-
-#: ../../standalone/draknet_.c:232
-msgid "Protocol"
-msgstr ""
-
-#: ../../standalone/draknet_.c:232
-#, fuzzy
-msgid "State"
-msgstr "Meuziad LaƱsaƱ"
-
-#: ../../standalone/draknet_.c:244
-#, fuzzy
-msgid "Configure Local Area Network..."
-msgstr "KefluniaƱ ur rouedad"
-
-#: ../../standalone/draknet_.c:256
-msgid "Click here to launch the wizard ->"
-msgstr ""
-
-#: ../../standalone/draknet_.c:257
-msgid "Wizard..."
-msgstr "Skoazeller..."
-
-#: ../../standalone/draknet_.c:283
-msgid "Apply"
-msgstr ""
-
-#: ../../standalone/draknet_.c:302
-#, fuzzy
-msgid "Please Wait... Applying the configuration"
-msgstr "AmprouiƱ ar c'hefluniadur"
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-#, fuzzy
-msgid "Connected"
-msgstr "Anv ar gevreadenn"
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-#, fuzzy
-msgid "Not connected"
-msgstr "Lugerezh ar voullerez"
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Connect..."
-msgstr ""
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Disconnect..."
-msgstr ""
-
-#: ../../standalone/draknet_.c:404
-msgid ""
-"Warning, another Internet connection has been detected, maybe using your "
-"network"
-msgstr ""
-
-#: ../../standalone/draknet_.c:431
-msgid ""
-"You don't have any configured interface.\n"
-"Configure them first by clicking on 'Configure'"
-msgstr ""
-
-#: ../../standalone/draknet_.c:453
-#, fuzzy
-msgid "LAN Configuration"
-msgstr "Kefluniadur"
-
-#: ../../standalone/draknet_.c:464
-#, c-format
-msgid "Adapter %s: %s"
-msgstr ""
-
-#: ../../standalone/draknet_.c:470
-msgid "Boot Protocol"
-msgstr ""
-
-#: ../../standalone/draknet_.c:471
-msgid "Started on boot"
-msgstr ""
-
-#: ../../standalone/draknet_.c:472
-msgid "DHCP client"
-msgstr ""
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-#, fuzzy
-msgid "activate now"
-msgstr "Bevaat"
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-#, fuzzy
-msgid "deactivate now"
-msgstr "Bevaat"
-
-#: ../../standalone/draknet_.c:503
-msgid ""
-"This interface has not been configured yet.\n"
-"Launch the configuration wizard in the main window"
-msgstr ""
-
-#: ../../standalone/draknet_.c:560
-msgid ""
-"You don't have any internet connection.\n"
-"Create one first by clicking on 'Configure'"
-msgstr ""
-
-#: ../../standalone/draknet_.c:584
-#, fuzzy
-msgid "Internet connection configuration"
-msgstr "Lugerezh ar voullerez"
-
-#: ../../standalone/draknet_.c:588
-#, fuzzy
-msgid "Internet Connection Configuration"
-msgstr "Lugerezh ar voullerez"
-
-#: ../../standalone/draknet_.c:597
-#, fuzzy
-msgid "Connection type: "
-msgstr "Anv ar gevreadenn"
-
-#: ../../standalone/draknet_.c:603
-msgid "Parameters"
-msgstr ""
-
-#: ../../standalone/draknet_.c:621
-msgid "Gateway"
-msgstr "Treuzell"
-
-#: ../../standalone/draknet_.c:630
-msgid "Ethernet Card"
-msgstr ""
-
-#: ../../standalone/draknet_.c:631
-msgid "DHCP Client"
-msgstr ""
-
-#: ../../standalone/draksec_.c:51
-msgid "Setting security level"
-msgstr "O termeniƱ al live surentez"
-
-#: ../../standalone/draksec_.c:57
-#, fuzzy
-msgid "Setting security user"
-msgstr "O termeniƱ al live surentez"
-
-#: ../../standalone/drakxconf_.c:47
-#, fuzzy
-msgid "Control Center"
-msgstr "Anv ar gevreadenn"
-
-#: ../../standalone/drakxconf_.c:48
-msgid "Choose the tool you want to use"
-msgstr "Dibabit ar benveg a vennit staliaƱ"
-
-#: ../../standalone/drakxtv_.c:55
-msgid ""
-"XawTV isn't installed!\n"
-"\n"
-"\n"
-"If you do have a TV card but DrakX has neither detected it (no bttv\n"
-"module in \"/etc/modules\") nor installed xawtv, please send the\n"
-"results of \"lspcidrake -v -f\" to \"install\\@mandrakesoft.com\"\n"
-"with subject \"undetected TV card\".\n"
-"\n"
-"\n"
-"You can install it by typing \"urpmi xawtv\" as root, in a console."
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:72
-#, fuzzy
-msgid "Canada (cable)"
-msgstr "Kanadian (Kebek)"
-
-#: ../../standalone/drakxtv_.c:72
-msgid "USA (broadcast)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:72
-msgid "USA (cable)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:72
-msgid "USA (cable-hrc)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:73
-msgid "China (broadcast)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:73
-msgid "Japan (broadcast)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:73
-msgid "Japan (cable)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:74
-msgid "East Europe"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:74
-#, fuzzy
-msgid "France [SECAM]"
-msgstr "Gall"
-
-#: ../../standalone/drakxtv_.c:74
-#, fuzzy
-msgid "Ireland"
-msgstr "Islandek"
-
-#: ../../standalone/drakxtv_.c:74
-msgid "West Europe"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:75
-#, fuzzy
-msgid "Australia"
-msgstr "a-steud"
-
-#: ../../standalone/drakxtv_.c:75
-msgid "Newzealand"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:76
-msgid "South Africa"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:77
-msgid "Argentina"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:113
-msgid ""
-"Please,\n"
-"type in your tv norm and country"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:115
-msgid "TV norm :"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:116
-msgid "Area :"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:120
-msgid "Scanning for TV channels in progress ..."
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:128
-msgid "Scanning for TV channels"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:131
-#, fuzzy
-msgid "There was an error while scanning for TV channels"
-msgstr "Ur fazi a zo bet en ur staliaƱ ar pakadoĆ¹Ā :"
-
-#: ../../standalone/drakxtv_.c:132
-msgid "XawTV isn't installed!"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:135
-msgid "Have a nice day!"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:136
-msgid "Now, you can run xawtv (under X Window!) !\n"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:148
-msgid "No TV Card detected!"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:149
-msgid ""
-"No TV Card has been detected on your machine. Please verify that a Linux-"
-"supported Video/TV Card is correctly plugged in.\n"
-"\n"
-"\n"
-"You can visit our hardware database at:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/hardware.php3"
-msgstr ""
-
-#: ../../standalone/keyboarddrake_.c:16
-msgid "usage: keyboarddrake [--expert] [keyboard]\n"
-msgstr ""
-
-#: ../../standalone/keyboarddrake_.c:29
-msgid "Please, choose your keyboard layout."
-msgstr "Dibabit reizhadur ho stokellaoueg, mar plij."
-
-#: ../../standalone/keyboarddrake_.c:36
-msgid "Do you want the BackSpace to return Delete in console?"
-msgstr ""
-
-#: ../../standalone/livedrake_.c:24
-#, fuzzy
-msgid "Change Cd-Rom"
-msgstr "KemmaƱ ar spister"
-
-#: ../../standalone/livedrake_.c:25
-#, fuzzy
-msgid ""
-"Please insert the Installation Cd-Rom in your drive and press Ok when done.\n"
-"If you don't have it, press Cancel to avoid live upgrade."
-msgstr ""
-"Kemmit ho Cd-Rom!\n"
-"\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."
-
-#: ../../standalone/livedrake_.c:35
-msgid "Unable to start live upgrade !!!\n"
-msgstr ""
-
-#: ../../standalone/localedrake_.c:32
-msgid "The change is done, but to be effective you must logout"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:85 ../../standalone/logdrake_.c:516
-msgid "logdrake"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:95
-msgid "Show only for the selected day"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:102
-#, fuzzy
-msgid "/File/_New"
-msgstr "RestroĆ¹Ā :\n"
-
-#: ../../standalone/logdrake_.c:102
-msgid "<control>N"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:103
-msgid "/File/_Open"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:103
-msgid "<control>O"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:104
-msgid "/File/_Save"
-msgstr "/Restr/_EnrollaƱ"
-
-#: ../../standalone/logdrake_.c:104
-msgid "<control>S"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:105
-msgid "/File/Save _As"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:106
-msgid "/File/-"
-msgstr "/Restr/-"
-
-#: ../../standalone/logdrake_.c:108
-#, fuzzy
-msgid "/_Options"
-msgstr "Parzhadur"
-
-#: ../../standalone/logdrake_.c:109
-#, fuzzy
-msgid "/Options/Test"
-msgstr "Parzhadur"
-
-#: ../../standalone/logdrake_.c:110
-msgid "/_Help"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:111
-msgid "/Help/_About..."
-msgstr ""
-
-#: ../../standalone/logdrake_.c:118
-msgid "-misc-fixed-medium-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr "-misc-fixed-medium-r-*-*-*-100-*-*-*-*-*-*,*"
-
-#: ../../standalone/logdrake_.c:119
-msgid "-misc-fixed-bold-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr "-misc-fixed-bold-r-*-*-*-100-*-*-*-*-*-*,*"
-
-#: ../../standalone/logdrake_.c:173
-#, fuzzy
-msgid "User"
-msgstr "Anv arveriad"
-
-#: ../../standalone/logdrake_.c:174
-#, fuzzy
-msgid "Messages"
-msgstr "AmprouiƱ ar porzhioĆ¹"
-
-#: ../../standalone/logdrake_.c:175
-msgid "Syslog"
-msgstr "Syslog"
-
-#: ../../standalone/logdrake_.c:176
-msgid "Mandrake Tools Explanations"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:179
-#, fuzzy
-msgid "search"
-msgstr "Klask"
-
-#: ../../standalone/logdrake_.c:185
-msgid "A tool to monitor your logs"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:186
-msgid "Settings"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:191
-#, fuzzy
-msgid "matching"
-msgstr "O vrasjediƱ"
-
-#: ../../standalone/logdrake_.c:192
-msgid "but not matching"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:196
-#, fuzzy
-msgid "Choose file"
-msgstr "Dibabit un obererezh"
-
-#: ../../standalone/logdrake_.c:201
-msgid "Calendar"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:211
-#, fuzzy
-msgid "Content of the file"
-msgstr "Anv ar gevreadenn"
-
-#: ../../standalone/logdrake_.c:215 ../../standalone/logdrake_.c:392
-msgid "Mail/SMS alert"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:268
-#, fuzzy, c-format
-msgid "please wait, parsing file: %s"
-msgstr "O prientiƱ ar staliadur"
-
-#: ../../standalone/logdrake_.c:407
-#, fuzzy
-msgid "Mail/SMS alert configuration"
-msgstr "KefluniaƱ ar proksioĆ¹"
-
-#: ../../standalone/logdrake_.c:408
-msgid ""
-"Welcome to the mail/SMS configuration utility.\n"
-"\n"
-"Here, you'll be able to set up the alert system.\n"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:416
-msgid "proftpd"
-msgstr "proftpd"
-
-#: ../../standalone/logdrake_.c:419
-msgid "sshd"
-msgstr "sshd"
-
-#: ../../standalone/logdrake_.c:420
-msgid "webmin"
-msgstr "webmin"
-
-#: ../../standalone/logdrake_.c:421
-msgid "xinetd"
-msgstr "xinetd"
-
-#: ../../standalone/logdrake_.c:424
-#, fuzzy
-msgid "service setting"
-msgstr "dedennus"
-
-#: ../../standalone/logdrake_.c:425
-msgid ""
-"You will receive an alert if one of the selected service is no more running"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:435
-#, fuzzy
-msgid "load setting"
-msgstr "O furmadiƱ"
-
-#: ../../standalone/logdrake_.c:436
-msgid "You will receive an alert if the load is higher than this value"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:449
-#, fuzzy
-msgid "alert configuration"
-msgstr "KefluniaƱ ar proksioĆ¹"
-
-#: ../../standalone/logdrake_.c:450
-msgid "Configure the way the system will alert you"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:493
-#, fuzzy
-msgid "Save as.."
-msgstr "Meuziad LaƱsaƱ"
-
-#: ../../standalone/mousedrake_.c:49
-msgid "Please, choose the type of your mouse."
-msgstr "Dibabit seurt ho logodenn, mar plij."
-
-#: ../../standalone/mousedrake_.c:59
-msgid "no serial_usb found\n"
-msgstr "serial_usb kavet ebet\n"
-
-#: ../../standalone/mousedrake_.c:63
-msgid "Emulate third button?"
-msgstr "Kendarvan an trede nozelenn ?"
-
-#: ../../standalone/printerdrake_.c:49
-#, fuzzy
-msgid "Reading printer data ..."
-msgstr "DibarzhoĆ¹ ar voullerez lpd a-bell"
-
-#: ../../standalone/scannerdrake_.c:42
-#, fuzzy
-msgid "Detecting devices ..."
-msgstr "O tinoiƱ trobarzhelloĆ¹..."
-
-#: ../../standalone/scannerdrake_.c:53
-#, c-format
-msgid "%s found on %s, configure it ?"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:60
-#, fuzzy
-msgid "Select a scanner"
-msgstr "Diuzit ur gartenn c'hrafek"
-
-#: ../../standalone/scannerdrake_.c:80
-#, c-format
-msgid "This %s scanner is unsupported"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:94
-#, c-format
-msgid ""
-"Scannerdrake was not able to detect your %s scanner.\n"
-"Please select the device where your scanner is plugged"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:96
-#, fuzzy
-msgid "choose device"
-msgstr "Trobarzhell loc'haƱ"
-
-#: ../../standalone/scannerdrake_.c:102
-#, c-format
-msgid ""
-"This %s scanner must be configured by printerdrake.\n"
-"You can launch printerdrake from the Mandrake Control Center in Hardware "
-"section."
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:107
-#, c-format
-msgid ""
-"Your %s scanner has been configured.\n"
-"You may now scan documents using ``XSane'' from Multimedia/Graphics in the "
-"applications menu."
-msgstr ""
-
-#: ../../standalone/tinyfirewall_.c:31
-#, fuzzy
-msgid "Firewalling Configuration"
-msgstr "o lenn ar c'hefluniadur"
-
-#: ../../standalone/tinyfirewall_.c:44
-#, fuzzy
-msgid "Firewalling configuration"
-msgstr "o lenn ar c'hefluniadur"
-
-#: ../../standalone/tinyfirewall_.c:79
-msgid ""
-"Firewalling\n"
-"\n"
-"You already have set up a firewall.\n"
-"Click on Configure to change or remove the firewall"
-msgstr ""
-
-#: ../../standalone/tinyfirewall_.c:83
-msgid ""
-"Firewalling\n"
-"\n"
-"Click on Configure to set up a standard firewall"
-msgstr ""
-
-#: ../../steps.pm_.c:14
-msgid "Choose your language"
-msgstr "Dibabit ho yezh"
-
-#: ../../steps.pm_.c:15
-msgid "Select installation class"
-msgstr "Diuzit renkad ar staliadur"
-
-#: ../../steps.pm_.c:16
-msgid "Hard drive detection"
-msgstr "DinoiƱ ar bladenn galet"
-
-#: ../../steps.pm_.c:17
-msgid "Configure mouse"
-msgstr "KefluniaƱ al logodenn"
-
-#: ../../steps.pm_.c:18
-msgid "Choose your keyboard"
-msgstr "Dibabit ho stokellaoueg"
-
-#: ../../steps.pm_.c:19
-#, fuzzy
-msgid "Security"
-msgstr "rodellek"
-
-#: ../../steps.pm_.c:20
-msgid "Setup filesystems"
-msgstr "KefluniaƱ reizhiadoĆ¹ restroĆ¹"
-
-#: ../../steps.pm_.c:21
-msgid "Format partitions"
-msgstr "FurmadiƱ parzhadurioĆ¹"
-
-#: ../../steps.pm_.c:22
-msgid "Choose packages to install"
-msgstr "Dibabit pakadoĆ¹ da staliaƱ"
-
-#: ../../steps.pm_.c:23
-msgid "Install system"
-msgstr "StaliaƱ ar reizhiad"
-
-#: ../../steps.pm_.c:25
-msgid "Add a user"
-msgstr "OuzhpennaƱ un arveriad"
-
-#: ../../steps.pm_.c:26
-msgid "Configure networking"
-msgstr "KefluniaƱ ur rouedad"
-
-#: ../../steps.pm_.c:28
-msgid "Configure services"
-msgstr "KefluniaƱ servijoĆ¹"
-
-#: ../../steps.pm_.c:29
-msgid "Install bootloader"
-msgstr "StaliaƱ ar c'harger loc'haƱ"
-
-#: ../../steps.pm_.c:31
-msgid "Create a bootdisk"
-msgstr "KrouiƱ ur bladennig loc'haƱ"
-
-#: ../../steps.pm_.c:33
-msgid "Configure X"
-msgstr "KefluniaƱ X"
-
-#: ../../steps.pm_.c:34
-#, fuzzy
-msgid "Install system updates"
-msgstr "StaliaƱ ar reizhiad"
-
-#: ../../steps.pm_.c:35
-msgid "Exit install"
-msgstr "Dilezel ar staliadur"
-
-#: ../../tinyfirewall.pm_.c:9
-msgid ""
-"tinyfirewall configurator\n"
-"\n"
-"This configures a personal firewall for this Mandrake Linux machine.\n"
-"For a powerful dedicated firewall solution, please look to the\n"
-"specialized MandrakeSecurity Firewall distribution."
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:14
-msgid ""
-"We'll now ask you questions about which services you'd like to allow\n"
-"the Internet to connect to. Please think carefully about these\n"
-"questions, as your computer's security is important.\n"
-"\n"
-"Please, if you're not currently using one of these services, firewall\n"
-"it off. You can change this configuration anytime you like by\n"
-"re-running this application!"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:21
-msgid ""
-"Are you running a web server on this machine that you need the whole\n"
-"Internet to see? If you are running a webserver that only needs to be\n"
-"accessed by this machine, you can safely answer NO here.\n"
-"\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:26
-msgid ""
-"Are you running a name server on this machine? If you didn't set one\n"
-"up to give away IP and zone information to the whole Internet, please\n"
-"answer no.\n"
-"\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:31
-msgid ""
-"Do you want to allow incoming Secure Shell (ssh) connections? This\n"
-"is a telnet-replacement that you might use to login. If you're using\n"
-"telnet now, you should definitely switch to ssh. telnet is not\n"
-"encrypted -- so some attackers can steal your password if you use\n"
-"it. ssh is encrypted and doesn't allow for this eavesdropping."
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:36
-msgid ""
-"Do you want to allow incoming telnet connections?\n"
-"This is horribly unsafe, as we explained in the previous screen. We\n"
-"strongly recommend answering No here and using ssh in place of\n"
-"telnet.\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:41
-msgid ""
-"Are you running an FTP server here that you need accessible to the\n"
-"Internet? If you are, we strongly recommend that you only use it for\n"
-"Anonymous transfers. Any passwords sent by FTP can be stolen by some\n"
-"attackers, since FTP also uses no encryption for transferring passwords.\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:46
-msgid ""
-"Are you running a mail server here? If you're sending you \n"
-"messages through pine, mutt or any other text-based mail client,\n"
-"you probably are. Otherwise, you should firewall this off.\n"
-"\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:51
-msgid ""
-"Are you running a POP or IMAP server here? This would\n"
-"be used to host non-web-based mail accounts for people via \n"
-"this machine.\n"
-"\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:56
-msgid ""
-"You appear to be running a 2.2 kernel. If your network IP\n"
-"is automatically set by a computer in your home or office \n"
-"(dynamically assigned), we need to allow for this. Is\n"
-"this the case?\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:61
-msgid ""
-"Is your computer getting time syncronized to another computer?\n"
-"Mostly, this is used by medium-large Unix/Linux organizations\n"
-"to synchronize time for logging and such. If you're not part\n"
-"of a larger office and haven't heard of this, you probably \n"
-"aren't."
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:66
-msgid ""
-"Configuration complete. May we write these changes to disk?\n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:82
-#, c-format
-msgid "Can't open %s: %s\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:84
-#, fuzzy, c-format
-msgid "Can't open %s for writing: %s\n"
-msgstr "Fazi en ur zigeriƱ %s evit skrivaƱĀ : %s"
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "No I don't need DHCP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "Yes I need DHCP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "No I don't need NTP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "Yes I need NTP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-msgid "Don't Save"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-#: ../../tinyfirewall.pm_.c:206
-msgid "Save & Quit"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:197 ../../tinyfirewall.pm_.c:201
-#, fuzzy
-msgid "Firewall Configuration Wizard"
-msgstr "o lenn ar c'hefluniadur"
-
-#: ../../tinyfirewall.pm_.c:199
-msgid "No (firewall this off from the internet)"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:200
-msgid "Yes (allow this through the firewall)"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:232
-#, fuzzy
-msgid "Please Wait... Verifying installed packages"
-msgstr "Gortozit mar plij, o prientiƱ ar staliadur"
-
-#: ../../tinyfirewall.pm_.c:238
-#, c-format
-msgid ""
-"Failure installing the needed packages : %s and Bastille.\n"
-" Try to install them manually."
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Web/FTP"
-msgstr ""
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Network Computer (client)"
-msgstr "DibarzhoĆ¹ ar voullerez NetWare"
-
-#: ../../share/compssUsers:999
-msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Office"
-msgstr "Burev"
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Gnome Workstation"
-msgstr "TitouroĆ¹"
-
-#: ../../share/compssUsers:999
-msgid "Tools for your Palm Pilot or your Visor"
-msgstr ""
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Workstation"
-msgstr "TitouroĆ¹"
-
-#: ../../share/compssUsers:999
-msgid "Firewall/Router"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Domain Name and Network Information Server"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Audio-related tools: mp3 or midi players, mixers, etc"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Books and Howto's on Linux and Free Software"
-msgstr ""
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "KDE Workstation"
-msgstr "TitouroĆ¹"
-
-#: ../../share/compssUsers:999
-msgid "Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr ""
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Multimedia - Video"
-msgstr "Liesvedia"
-
-#: ../../share/compssUsers:999
-msgid "Set of tools for mail, news, web, file transfer, and chat"
-msgstr ""
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Database"
-msgstr "StlennvonioĆ¹"
-
-#: ../../share/compssUsers:999
-msgid "PostgreSQL or MySQL database server"
-msgstr ""
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Tools to ease the configuration of your computer"
-msgstr "Mennout a rit amprouiƱ ar c'hefluniadur ?"
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Multimedia - Sound"
-msgstr "Liesvedia"
-
-#: ../../share/compssUsers:999
-msgid "Documentation"
-msgstr "Teuliadur"
-
-#: ../../share/compssUsers:999
-msgid "Console Tools"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Postfix mail server, Inn news server"
-msgstr ""
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Internet station"
-msgstr "KefluniaƱ ar proksioĆ¹"
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Multimedia station"
-msgstr "Liesvedia"
-
-#: ../../share/compssUsers:999
-msgid "Configuration"
-msgstr "Kefluniadur"
-
-#: ../../share/compssUsers:999
-msgid "More Graphical Desktops (Gnome, IceWM)"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid ""
-"The K Desktop Environment, the basic graphical environment with a collection "
-"of accompanying tools"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Graphical Environment"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Apache, Pro-ftpd"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Tools to create and burn CD's"
-msgstr ""
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Office Workstation"
-msgstr "TitouroĆ¹"
-
-#: ../../share/compssUsers:999
-msgid "Server"
-msgstr "Servijer"
-
-#: ../../share/compssUsers:999
-msgid "Gnome, Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Graphics programs such as The Gimp"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "DNS/NIS "
-msgstr "DNS/NIS"
-
-#: ../../share/compssUsers:999
-msgid "C and C++ development libraries, programs and include files"
-msgstr ""
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Network Computer server"
-msgstr "DibarzhoĆ¹ ar voullerez NetWare"
-
-#: ../../share/compssUsers:999
-msgid "Mail/Groupware/News"
-msgstr ""
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Game station"
-msgstr "Teuliadur"
-
-#: ../../share/compssUsers:999
-msgid "Video players and editors"
-msgstr ""
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Multimedia - Graphics"
-msgstr "Liesvedia"
-
-#: ../../share/compssUsers:999
-msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid ""
-"Set of tools to read and send mail and news (pine, mutt, tin..) and to "
-"browse the Web"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Personal Finance"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid ""
-"A graphical environment with user-friendly set of applications and desktop "
-"tools"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Clients for different protocols including ssh"
-msgstr ""
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Internet gateway"
-msgstr "dedennus"
-
-#: ../../share/compssUsers:999
-msgid "Sound and video playing/editing programs"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Other Graphical Desktops"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Editors, shells, file tools, terminals"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Programs to manage your finance, such as gnucash"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Personal Information Management"
-msgstr ""
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Multimedia - CD Burning"
-msgstr "Liesvedia"
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Scientific Workstation"
-msgstr "TitouroĆ¹"
-
-#~ msgid "Complete (%dMB)"
-#~ msgstr "Boas (%dMo)"
-
-#~ msgid "Minimum (%dMB)"
-#~ msgstr "BihanaƱ (%d Mo)"
-
-#~ msgid "Recommended (%dMB)"
-#~ msgstr "Erbedet (%dMo)"
-
-#~ msgid "CDROM / DVDROM"
-#~ msgstr "CDROM / DVDROM"
-
-#, fuzzy
-#~ msgid "Utilities"
-#~ msgstr "MavegoĆ¹/Skrid"
-
-#, fuzzy
-#~ msgid "About"
-#~ msgstr "Marc'haƱ"
-
-#~ msgid "-adobe-utopia-medium-r-normal-*-12-*-*-*-p-*-iso8859-*,*-r-*"
-#~ msgstr "-adobe-utopia-medium-r-normal-*-12-*-*-*-p-*-iso8859-*,*-r-*"
-
-#~ msgid "$f-$g %s)"
-#~ msgstr "$f-$g %s)"
-
-#~ msgid "None"
-#~ msgstr "Ebet"
-
-#, fuzzy
-#~ msgid "Choose a default printer!"
-#~ msgstr "Dibabit ar ment nevez"
-
-#, fuzzy
-#~ msgid "Apply/Re-read printers"
-#~ msgstr "DibarzhoĆ¹ ar voullerez lpd a-bell"
-
-#~ msgid "You may now provide options to module %s."
-#~ msgstr "BremaƱ e c'hellit pourvezaƱ e zibarzhoĆ¹ d'ar mollad %s"
-
-#~ msgid "mount failed"
-#~ msgstr "marc'haƱ sac'het"
-
-#~ msgid "Low"
-#~ msgstr "Izel"
-
-#~ msgid "Medium"
-#~ msgstr "Etre"
-
-#~ msgid ""
-#~ "Few improvements for this security level, the main one is that there are\n"
-#~ "more security warnings and checks."
-#~ msgstr ""
-#~ "Nebeut a wellaenoĆ¹ evit al live surentez-maƱ, an hini pouezusaƱ eo bezaƱ\n"
-#~ "muioc'h a evezhiadennoĆ¹ hag a wiriadennoĆ¹ surentez."
-
-#, fuzzy
-#~ msgid "Art and Multimedia"
-#~ msgstr "Liesvedia"
-
-#, fuzzy
-#~ msgid "Export"
-#~ msgstr "Mailh"
-
-#, fuzzy
-#~ msgid ""
-#~ "GNU/Linux manages time in GMT (Greenwich Mean Time) and translates it in\n"
-#~ "local time according to the time zone you selected."
-#~ msgstr ""
-#~ "BremaƱ e c'hellit diuz ho takad-eur diouzh al lec'h ma chomit ennaƱ.\n"
-#~ "\n"
-#~ "\n"
-#~ "Linux a vera an eur e GMT pe \"Greenwich Mean Time\" hag e amdreiƱ a ra\n"
-#~ "en eur lec'hel hervez an takad-eur hoc'h eus diuzet."
-
-#, fuzzy
-#~ msgid "Connect to Internet"
-#~ msgstr "Anv ar gevreadenn"
-
-#, fuzzy
-#~ msgid "Disconnect from Internet"
-#~ msgstr "Anv ar gevreadenn"
-
-#, fuzzy
-#~ msgid "Configure network connection (LAN or Internet)"
-#~ msgstr "KefluniaƱ ur rouedad"
-
-#, fuzzy
-#~ msgid "Detected %s, do you want to set it up?"
-#~ msgstr "Da beseurt pladenn e mennit dilec'hiaƱ ?"
-
-#, fuzzy
-#~ msgid "Please choose the printer you want to set up."
-#~ msgstr "Dibabit ar pakadoĆ¹ a vennit staliaƱ, mar plij."
-
-#, fuzzy
-#~ msgid "Infos"
-#~ msgstr "TitouroĆ¹"
-
-#, fuzzy
-#~ msgid "Windows Importation"
-#~ msgstr "TitouroĆ¹"
-
-#, fuzzy
-#~ msgid "user"
-#~ msgstr "Anv arveriad"
-
-#, fuzzy
-#~ msgid ""
-#~ "Apache is a World Wide Web server. It is used to serve HTML files and "
-#~ "CGI."
-#~ msgstr ""
-#~ "Ur servijer evit ar Gwiad Bedel eo Apache. Implijet e vez evit servijaƱ\n"
-#~ "restroĆ¹ HTML ha CGI."
-
-#~ msgid ""
-#~ "named (BIND) is a Domain Name Server (DNS) that is used to resolve\n"
-#~ "host names to IP addresses."
-#~ msgstr ""
-#~ "named (BIND) a zo ur Servijer AnvioĆ¹ Domani (DNS) a zo implijet evit\n"
-#~ "amdreiƱ anvioĆ¹ ostiz e chomlec'hioĆ¹ IP."
-
-#, fuzzy
-#~ msgid ""
-#~ "Please choose the desired printer/printer port.\n"
-#~ "\n"
-#~ msgstr "Dibabit seurt ho logodenn, mar plij."
-
-#~ msgid "Active"
-#~ msgstr "Bevaat"
-
-#~ msgid "A printer, model \"%s\", has been detected on "
-#~ msgstr "Ur voullerez, doare \"%s\", zo bet dinoet war "
-
-#~ msgid "Local Printer Device"
-#~ msgstr "Trobarzhell voullerez lec'hel"
-
-#~ msgid "Printer Device"
-#~ msgstr "Trobarzhell ar voullerez"
-
-#~ msgid "Choose the size you want to install"
-#~ msgstr "Dibabit ar ment a vennit staliaƱ"
-
-#~ msgid "Total size: "
-#~ msgstr "Ment hollekĀ : "
-
-#~ msgid "Please wait, "
-#~ msgstr "Gortozit mar plij,"
-
-#~ msgid "Total time "
-#~ msgstr "Amzer hollek"
-
-#~ msgid "Use existing configuration for X11?"
-#~ msgstr "Implijout ar c'hefluniadur o ren evit X11 ?"
-
-#~ msgid ""
-#~ "What device is your printer connected to \n"
-#~ "(note that /dev/lp0 is equivalent to LPT1:)?\n"
-#~ msgstr ""
-#~ "Ouzh pe drobarzhell eo luget ho moullerez \n"
-#~ "(taolit evezh /dev/lp0 a zo kevatal da LPT1:) ?\n"
-
-#~ msgid "New"
-#~ msgstr "Nevez"
-
-#~ msgid "Ambiguity (%s), be more precise\n"
-#~ msgstr "Amsklaer (%s), bezit spisoc'h\n"
-
-#~ msgid " ? (default %s) "
-#~ msgstr "? (%s dre ziouer)"
-
-#~ msgid "Your choice? (default %s enter `none' for none) "
-#~ msgstr "Ho tibab ? (%s dre ziouer, skrivit `none' evit hini ebet)"
-
-#~ msgid "Choose the layout corresponding to your keyboard from the list above"
-#~ msgstr "Dibabit ar reizhadur a glot gant ho stokellaoueg er roll a-us"
-
-#~ msgid ""
-#~ "Select:\n"
-#~ "\n"
-#~ " - Customized: If you are familiar enough with GNU/Linux, you may then "
-#~ "choose\n"
-#~ " the primary usage for your machine. See below for details.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Expert: This supposes that you are fluent with GNU/Linux and want to\n"
-#~ " perform a highly customized installation. As for a \"Customized\"\n"
-#~ " installation class, you will be able to select the usage for your "
-#~ "system.\n"
-#~ " But please, please, DO NOT CHOOSE THIS UNLESS YOU KNOW WHAT YOU ARE "
-#~ "DOING!"
-#~ msgstr ""
-#~ "DiuzitĀ :\n"
-#~ "\n"
-#~ " - NeuzietĀ : Ma 'z oc'h kustumet a-walc'h gant GNU/Linux, tu vo neuze "
-#~ "deoc'h\n"
-#~ " dibab an implij pennaƱ evit ho ardivink. Sellit a-is evit munudoĆ¹.\n"
-#~ "\n"
-#~ "\n"
-#~ " - MailhĀ : Ma 'z oc'h en ho pleud gant GNU/Linux ha mennet da seveniƱ\n"
-#~ " ur staliadur neuziet-tre. Evel evit ar renkad staliaƱ \"Neuziet\" e "
-#~ "vo\n"
-#~ " tu deoc'h diuz an implij evit hor reizhiad.\n"
-#~ " Hogen mar plij, NA ZIBABIT KET SE NEMET MA OUZIT PEZH EMAOC'H OC'H "
-#~ "OBERĀ !"
-
-#, fuzzy
-#~ msgid ""
-#~ "You must now define your machine usage. Choices are:\n"
-#~ "\n"
-#~ "\t* Workstation: this the ideal choice if you intend to use your machine "
-#~ "primarily for everyday use, at office or\n"
-#~ "\t at home.\n"
-#~ "\n"
-#~ "\n"
-#~ "\t* Development: if you intend to use your machine primarily for software "
-#~ "development, it is the good choice. You\n"
-#~ "\t will then have a complete collection of software installed in order "
-#~ "to compile, debug and format source code,\n"
-#~ "\t or create software packages.\n"
-#~ "\n"
-#~ "\n"
-#~ "\t* Server: if you intend to use this machine as a server, it is the good "
-#~ "choice. Either a file server (NFS or\n"
-#~ "\t SMB), a print server (Unix style or Microsoft Windows style), an "
-#~ "authentication server (NIS), a database\n"
-#~ "\t server and so on. As such, do not expect any gimmicks (KDE, GNOME, "
-#~ "etc.) to be installed."
-#~ msgstr ""
-#~ "An dibaboĆ¹ liessek evit implij ho ardivink (en ur c'houlakaat neuze hoc'h "
-#~ "eus\n"
-#~ "dibabet pe \"Neuziet\" pe \"Mailh\" da renkad staliaƱ) a zo evel a-"
-#~ "heulĀ :\n"
-#~ "\n"
-#~ " - BoasĀ : dibabit se ma 'z oc'h mennet da implijout ho ardivink dreist-"
-#~ "holl\n"
-#~ " evit un implij pemdeziek (labour burev, aozerezh grafikoĆ¹ hag all). "
-#~ "Na\n"
-#~ " c'hortozit ket e vije staliaet nep kempuner, maveg diorren h.a.\n"
-#~ "\n"
-#~ " - DiorrenĀ : evel m'hen diskouez an anv. Dibabit se ma 'z oc'h mennet "
-#~ "da\n"
-#~ " implijout ho ardivink dreist-holl evit diorren meziantoĆ¹. Neuze ho po "
-#~ "un\n"
-#~ " heuliad klok a meziantoĆ¹ staliet a-benn kempunaƱ, dizraenaƱ ha "
-#~ "furmadiƱ\n"
-#~ " kod tarzh, pe grouiƱ pakadoĆ¹ meziantel.\n"
-#~ "\n"
-#~ " - ServijerĀ : dibabit se m'eo gouestlet an ardivink a stalhit Mandrake "
-#~ "Linux\n"
-#~ " warnaƱ da vezaƱ impliet evel servijer. ur servijer restroĆ¹ (NFS pe "
-#~ "SMB),\n"
-#~ " ur servijer moullaƱ (moullaƱ diouzh komenad Unix lp (line printer) pe "
-#~ "zoare\n"
-#~ " Windows SMB), ur servijer dilesadur (NIS), ur servijer stlennvon hag "
-#~ "all.\n"
-#~ " Da heul, na c'hortozit staliadur tamm kinkladur ebet (KDE, "
-#~ "GNOME...).\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "You may now select the group of packages you wish to\n"
-#~ "install or upgrade.\n"
-#~ "\n"
-#~ "\n"
-#~ "DrakX will then check whether you have enough room to install them all. "
-#~ "If not,\n"
-#~ "it will warn you about it. If you want to go on anyway, it will proceed "
-#~ "onto the\n"
-#~ "installation of all selected groups but will drop some packages of "
-#~ "lesser\n"
-#~ "interest. At the bottom of the list you can select the option \n"
-#~ "\"Individual package selection\"; in this case you will have to browse "
-#~ "through\n"
-#~ "more than 1000 packages..."
-#~ msgstr ""
-#~ "Gallout a rit bremaƱ diuz ar strollad pakadoĆ¹ a vennit\n"
-#~ "staliaƱ pe vremanaat.\n"
-#~ "\n"
-#~ "DrakX a glasko neuze hag-eƱ hoc'h eus egor a-walc'h evit staliaƱ an holl "
-#~ "anezho.\n"
-#~ "Ma n'hoc'h eus ket, e kemenno deoc'h. Ma vennit kenderc'hel evelato, e "
-#~ "seveno staliadur\n"
-#~ "an holl strolladoĆ¹ diuzet hogen e laosko pakadoĆ¹ 'zo dezho nebeutoc'h a\n"
-#~ "dalvoudegezh. E traoƱ ar roll e c'hellit diuz an dibarzh\n"
-#~ "\"Diuz pakadoĆ¹ unan hag unan\" ; en degouezh-se e vo ret deoc'h furchal\n"
-#~ "a-dreuz tremen 1000 pakad..."
-
-#, fuzzy
-#~ msgid ""
-#~ "You may now enter your host name if needed. If you\n"
-#~ "don't know or are not sure what to enter, the correct informations can "
-#~ "be\n"
-#~ "obtained from your Internet Service Provider."
-#~ msgstr ""
-#~ "Gallout a rit bremaƱ skrivaƱ dibarzhoĆ¹ sifrennaƱ. Ma n'oc'h ket sur "
-#~ "petra\n"
-#~ "skrivaƱ, an titouroĆ¹ reizh ho po digant ho PMG."
-
-#, fuzzy
-#~ msgid ""
-#~ "You may now configure your network device.\n"
-#~ "\n"
-#~ " * IP address: if you don't know or are not sure what to enter, ask "
-#~ "your network administrator.\n"
-#~ " You should not enter an IP address if you select the option "
-#~ "\"Automatic IP\" below.\n"
-#~ "\n"
-#~ " * Netmask: \"255.255.255.0\" is generally a good choice. If you don't "
-#~ "know or are not sure what to enter,\n"
-#~ " ask your network administrator.\n"
-#~ "\n"
-#~ " * Automatic IP: if your network uses BOOTP or DHCP protocol, select "
-#~ "this option. If selected, no value is needed in\n"
-#~ " \"IP address\". If you don't know or are not sure if you need to "
-#~ "select this option, ask your network administrator."
-#~ msgstr ""
-#~ "SkrivitĀ :\n"
-#~ "\n"
-#~ " - Chomlec'h IPĀ : m'eo dianav deoc'h, goulennit digant merour ho "
-#~ "rouedad.\n"
-#~ "\n"
-#~ "\n"
-#~ " - RouedmasklĀ : \"255.255.255.0\" a zo peurvuiaƱ un dibab mat. M'hoc'h "
-#~ "eus\n"
-#~ "douetaƱs, goulennit digant merour ho rouedad.\n"
-#~ "\n"
-#~ "\n"
-#~ " - IP emgefreekĀ : Ma ra ho rouedad gant ar c'homenad bootp pe dhcp, "
-#~ "diuzit \n"
-#~ "an dibarzh-se. Ma vez diuzet, n'eus ezhomm talvoud ebet er \"Chomlec'h IP"
-#~ "\".\n"
-#~ "M'hoc'h eus douetaƱs, goulennit digant merour ho rouedad.\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "You may now enter your host name if needed. If you\n"
-#~ "don't know or are not sure what to enter, ask your network administrator."
-#~ msgstr ""
-#~ "Ma implij ho rouedad NIS, diuzit \"Implijout NIS\". Ma ne ouzit ket, "
-#~ "goulennit\n"
-#~ "digant merour ho rouedad."
-
-#~ msgid ""
-#~ "You may now enter dialup options. If you're not sure what to enter, the\n"
-#~ "correct information can be obtained from your ISP."
-#~ msgstr ""
-#~ "Gallout a rit bremaƱ skrivaƱ dibarzhoĆ¹ sifrennaƱ. Ma n'oc'h ket sur "
-#~ "petra\n"
-#~ "skrivaƱ, an titouroĆ¹ reizh ho po digant ho PMG."
-
-#~ msgid ""
-#~ "If you will use proxies, please configure them now. If you don't know if\n"
-#~ "you should use proxies, ask your network administrator or your ISP."
-#~ msgstr ""
-#~ "Ma implijit proksioĆ¹, keflugnit anezho bremaƱ mar plij. Ma ne ouzit ket "
-#~ "hag\n"
-#~ "e rankit implijout proksioĆ¹, goulennit digant merour ho rouedad pe ho PMG."
-
-#, fuzzy
-#~ msgid ""
-#~ "You can install cryptographic package if your internet connection has "
-#~ "been\n"
-#~ "set up correctly. First choose a mirror where you wish to download "
-#~ "packages and\n"
-#~ "after that select the packages to install.\n"
-#~ "\n"
-#~ "\n"
-#~ "Note you have to select mirror and cryptographic packages according\n"
-#~ "to your legislation."
-#~ msgstr ""
-#~ "StaliaƱ pakadoĆ¹ rinegouriezh a c'hellit m'eo bet kefluniet reizh ho\n"
-#~ "kevreadenn ouzh ar Genrouedad. Dibabit da gentaƱ ur melezour a vennit "
-#~ "ezkargaƱ\n"
-#~ "pakadoĆ¹ diwarnaƱ ha da c'houde diuzit ar pakadoĆ¹ da staliaƱ.\n"
-#~ "\n"
-#~ "Taolit evezh e rankit diuz ar melezour hag ar rinegouriezh hervez al\n"
-#~ "lezennoĆ¹ o ren du-se."
-
-#~ msgid ""
-#~ "You may now create one or more \"regular\" user account(s), as\n"
-#~ "opposed to the \"privileged\" user account, root. You can create\n"
-#~ "one or more account(s) for each person you want to allow to use\n"
-#~ "the computer. Note that each user account will have its own\n"
-#~ "preferences (graphical environment, program settings, etc.)\n"
-#~ "and its own \"home directory\", in which these preferences are\n"
-#~ "stored.\n"
-#~ "\n"
-#~ "\n"
-#~ "First of all, create an account for yourself! Even if you will be the "
-#~ "only user\n"
-#~ "of the machine, you may NOT connect as root for daily use of the system: "
-#~ "it's a\n"
-#~ "very high security risk. Making the system unusable is very often a typo "
-#~ "away.\n"
-#~ "\n"
-#~ "\n"
-#~ "Therefore, you should connect to the system using the user account\n"
-#~ "you will have created here, and login as root only for administration\n"
-#~ "and maintenance purposes."
-#~ msgstr ""
-#~ "BremaƱ e c'hellit krouiƱ unan pe vuioc'h a gont(oĆ¹) arveriad \"boutin\",\n"
-#~ "dre enebiez ouzh ar gont arveriad \"dreistwiriet\", root hec'h anv. "
-#~ "Gallout\n"
-#~ "a rit krouiƱ unan pe vuioc'h a gont(oĆ¹) evit kement den a fell deoc'h\n"
-#~ "aotren da implijout an urzhiataer. Taolit evezh pep kont arveriad he\n"
-#~ "devo he dibarzhoĆ¹ dezhi (endro grafikel, kefluniadur ar goulevioĆ¹,\n"
-#~ "h.a.) hag he renkell \"Er-gĆŖr\" dezhi, ma vo enrollet an dibarzhoĆ¹-se\n"
-#~ "enni.\n"
-#~ "\n"
-#~ "\n"
-#~ "Da gentaƱ holl, krouit ur gont evidoc'h-chwi ! Ha pa vefec'h arveriad "
-#~ "nemetaƱ\n"
-#~ "an ardivink, ARABAT deoc'h ereaƱ evel root evit implij pemdeziek ar "
-#~ "reizhiadĀ : \n"
-#~ "arvarus-kenaƱ eo a-fet surentez. Ur fazi stokell a zo a-walc'h evit "
-#~ "lakaat\n"
-#~ "boud ho reizhiad.\n"
-#~ "\n"
-#~ "\n"
-#~ "Gant se, gwelloc'h vije deoc'h ereaƱ ouzh ar reizhiad en ur implijout ar\n"
-#~ "gont arveriad ho po krouet amaƱ, hag ereaƱ evel root evit kefridioĆ¹ a\n"
-#~ "vererezh ha trezerc'hel hepken."
-
-#, fuzzy
-#~ msgid ""
-#~ "LILO and grub main options are:\n"
-#~ " - Boot device: Sets the name of the device (e.g. a hard disk\n"
-#~ "partition) that contains the boot sector. Unless you know specifically\n"
-#~ "otherwise, choose \"/dev/hda\".\n"
-#~ "\n"
-#~ "\n"
-#~ " - Delay before booting default image: Specifies the number in tenths\n"
-#~ "of a second the boot loader should wait before booting the first image.\n"
-#~ "This is useful on systems that immediately boot from the hard disk after\n"
-#~ "enabling the keyboard. The boot loader doesn't wait if \"delay\" is\n"
-#~ "omitted or is set to zero.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Video mode: This specifies the VGA text mode that should be selected\n"
-#~ "when booting. The following values are available: \n"
-#~ "\n"
-#~ " * normal: select normal 80x25 text mode.\n"
-#~ "\n"
-#~ " * <number>: use the corresponding text mode.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Clean \"/tmp\" at each boot: if you want delete all files and "
-#~ "directories\n"
-#~ "stored in \"/tmp\" when you boot your system, select this option.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Precise RAM if needed: unfortunately, there is no standard method to "
-#~ "ask the\n"
-#~ "BIOS about the amount of RAM present in your computer. As consequence, "
-#~ "Linux may\n"
-#~ "fail to detect your amount of RAM correctly. If this is the case, you "
-#~ "can\n"
-#~ "specify the correct amount or RAM here. Please note that a difference of "
-#~ "2 or 4\n"
-#~ "MB between detected memory and memory present in your system is normal."
-#~ msgstr ""
-#~ "Setu dibaboĆ¹ pennaƱ LILO ha grubĀ :\n"
-#~ " - Trobarzhell loc'haƱĀ : a dermen anv an drobarzhell (da sk. parzhadur\n"
-#~ "ur bladenn galet) a zo enni ar rann loc'haƱ. Nemet ma ouifec'h a-zevri\n"
-#~ "ez eo disheƱvel, dibabit \"/dev/hda\".\n"
-#~ "\n"
-#~ "\n"
-#~ " - Gedvezh a-raok loc'haƱ ar skeudenn dre ziouerĀ : a spisa an niver a\n"
-#~ "zekvet eilennoĆ¹ a rankfe gortoz ar c'harger loc'haƱ kent loc'haƱ ar "
-#~ "skeudenn\n"
-#~ "gentaƱ. Talvoudus eo war reizhiadoĆ¹ a loc'h diouzhtu adalek ar bladenn "
-#~ "galet\n"
-#~ "goude bezaƱ enaouet ar stokellaoueg. Ne gortoz ket ar c'harger loc'haƱ "
-#~ "m'eo\n"
-#~ "disoƱjet \"gedvezh\" pe dermenet da mann.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Mod videoĀ : a spisa ar mod skrid VGA a rankfe bezaƱ diuzet pa "
-#~ "loc'her.\n"
-#~ "An talvoudoĆ¹ a heul a zo hegerzĀ :\n"
-#~ " * boasĀ : a ziuz ar mod skrid 80x25 boas.\n"
-#~ " * <niver>Ā : a implij ar mod skrid a zegouezh."
-
-#, fuzzy
-#~ msgid ""
-#~ "Now it's time to configure the X Window System, which is the\n"
-#~ "core of the GNU/Linux GUI (Graphical User Interface). For this purpose,\n"
-#~ "you must configure your video card and monitor. Most of these\n"
-#~ "steps are automated, though, therefore your work may only consist\n"
-#~ "of verifying what has been done and accept the settings :)\n"
-#~ "\n"
-#~ "\n"
-#~ "When the configuration is over, X will be started (unless you\n"
-#~ "ask DrakX not to) so that you can check and see if the\n"
-#~ "settings suit you. If they don't, you can come back and\n"
-#~ "change them, as many times as necessary."
-#~ msgstr ""
-#~ "BremaƱ eo poent kefluniaƱ ar reizhiad X Window, a zo kraonienn\n"
-#~ "EGA (Etrefas Grafikel Arveriad) Linux. Evit ar c'hefridi-se, ret eo\n"
-#~ "deoc'h kefluniaƱ ho kartenn grafek hag ho skramm. Emgefreek eo ar bras\n"
-#~ "eus al lankadoĆ¹-se, evelato, neuze gwiriaƱ pezh a zo bet graet hag\n"
-#~ "asantiƱ d'ar c'hefluniadur a zlefe bezaƱ ho labour :)\n"
-#~ "\n"
-#~ "\n"
-#~ "Pa 'z eo graet ar c'hefluniaƱ, laƱset e vo X (nemet ma c'houlennit\n"
-#~ "digant DrakX chom hep hen ober) e seurt ma c'hellit gwiriaƱ ha\n"
-#~ "sellet ha plijet oc'h gant an dibarzhoĆ¹. Ma n'oc'h ket, e c'hellit\n"
-#~ "mont war gil hag o c'hemmaƱ, ken lies gwech ha ma karot."
-
-#~ msgid ""
-#~ "If something is wrong in X configuration, use these options to correctly\n"
-#~ "configure the X Window System."
-#~ msgstr ""
-#~ "M'eo siek un dra bennak en ho kefluniadur X, implijit an dibarzhoĆ¹-se\n"
-#~ "a-benn kefluniaƱ reizh ar reizhiad X Window."
-
-#~ msgid ""
-#~ "If you prefer to use a graphical login, select \"Yes\". Otherwise, "
-#~ "select\n"
-#~ "\"No\"."
-#~ msgstr ""
-#~ "Ma kavit gwelloc'h implijout un ereadur grafikel, diuzit \"Ya\". Mod "
-#~ "all,\n"
-#~ "diuzit \"Ket\"."
-
-#~ msgid ""
-#~ "Your system is going to reboot.\n"
-#~ "\n"
-#~ "After rebooting, your new Mandrake Linux system will load automatically.\n"
-#~ "If you want to boot into another existing operating system, please read\n"
-#~ "the additional instructions."
-#~ msgstr ""
-#~ "EmaƱ ho reizhiad war-nes adloc'haƱ.\n"
-#~ "\n"
-#~ "Goude adloc'haƱ, kargaƱ a raio ho reizhiad Mandrake Linux nevez ent "
-#~ "emgefreek.\n"
-#~ "Ma vennit loc'haƱ ur reizhiad korvoiƱ all, lennit ar gourc'hemennoĆ¹ "
-#~ "ouzhpenn\n"
-#~ "mar plij."
-
-#~ msgid "Write /etc/fstab"
-#~ msgstr "SkrivaƱ /etc/fstab"
-
-#~ msgid "Format all"
-#~ msgstr "FurmadiƱ an holl"
-
-#~ msgid "After formatting all partitions,"
-#~ msgstr "Goude furmadiƱ an holl barzhadurioĆ¹,"
-
-#~ msgid "all data on these partitions will be lost"
-#~ msgstr "kollet e vo holl roadoĆ¹ war ar parzhadurioĆ¹-se"
-
-#~ msgid "Reload"
-#~ msgstr "AdkargaƱ"
-
-#~ msgid "Remote queue"
-#~ msgstr "Steud a-bell"
-
-#~ msgid "NetWare"
-#~ msgstr "NetWare"
-
-#~ msgid "Yes, print ASCII test page"
-#~ msgstr "Ya, moullit ur bajenn arnod ASCII"
-
-#~ msgid "Yes, print PostScript test page"
-#~ msgstr "Ya, moullit ur bajenn arnod PostScript"
-
-#~ msgid "Paper Size"
-#~ msgstr "Ment ar paper"
-
-#~ msgid "Eject page after job?"
-#~ msgstr "Stlepel ar bajenn goude moullaƱ ?"
-
-#~ msgid "Uniprint driver options"
-#~ msgstr "DibarzhoĆ¹ ar sturier Uniprint"
-
-#~ msgid "Color depth options"
-#~ msgstr "DibarzhoĆ¹ donder liv"
-
-#~ msgid "Print text as PostScript?"
-#~ msgstr "MoullaƱ skrid evel PostScript ?"
-
-#~ msgid "Fix stair-stepping text?"
-#~ msgstr "Kempenn an efed-diri ?"
-
-#~ msgid "Number of pages per output pages"
-#~ msgstr "Niver a bajennoĆ¹ dre bajenn ziskas"
-
-#~ msgid "Right/Left margins in points (1/72 of inch)"
-#~ msgstr "MarzoĆ¹ DehoĆ¹/Kleiz e poentoĆ¹ (1/72 ur meudad)"
-
-#~ msgid "Top/Bottom margins in points (1/72 of inch)"
-#~ msgstr "MarzoĆ¹ Krec'h/TraoƱ e poentoĆ¹ (1/72 ur meudad)"
-
-#~ msgid "Extra GhostScript options"
-#~ msgstr "DibarzhoĆ¹ GhostScript ouzhpenn"
-
-#~ msgid "Extra Text options"
-#~ msgstr "DibarzhoĆ¹ skrid ouzhpenn"
-
-#~ msgid ""
-#~ "Every print queue (which print jobs are directed to) needs a\n"
-#~ "name (often lp) and a spool directory associated with it. What\n"
-#~ "name and directory should be used for this queue and how is the printer "
-#~ "connected?"
-#~ msgstr ""
-#~ "Pep steud moullaƱ (m'eo kaset an dleadoĆ¹ moullaƱ davetaƱ) en deus\n"
-#~ "ezhomm un anv (lp alies) hag ur renkell spool kevret gantaƱ. Pe anv\n"
-#~ "ha renkell a zo da implijout evit ar steud-maƱ ha penaos eo luget ar "
-#~ "voullerrez ?"
-
-#~ msgid "Name of queue"
-#~ msgstr "Anv ar steud"
-
-#~ msgid "Spool directory"
-#~ msgstr "Renkell ar spool"
-
-#~ msgid ""
-#~ "To enable a more secure system, you should select \"Use shadow file\" "
-#~ "and\n"
-#~ "\"Use MD5 passwords\"."
-#~ msgstr ""
-#~ "Evit sevel ur reizhiad suroc'h, gwelloc'h deoc'h diuz \"Implijout ur "
-#~ "restr kuzhet\"\n"
-#~ "hag \"Implijout tremegerioĆ¹ MD5\"."
-
-#~ msgid ""
-#~ "If your network uses NIS, select \"Use NIS\". If you don't know, ask "
-#~ "your\n"
-#~ "network administrator."
-#~ msgstr ""
-#~ "Ma implij ho rouedad NIS, diuzit \"Implijout NIS\". Ma ne ouzit ket, "
-#~ "goulennit\n"
-#~ "digant merour ho rouedad."
-
-#~ msgid "yellow pages"
-#~ msgstr "pajennoĆ¹ melen"
-
-#~ msgid "This startup script try to load your modules for your usb mouse."
-#~ msgstr "An urzhiaoueg loc'haƱ a glask kargaƱ molladoĆ¹ evit ho logodenn usb."
-
-#~ msgid "Automatic dependencies"
-#~ msgstr "Sujedigezh emgefreek"
-
-#~ msgid "Configure LILO/GRUB"
-#~ msgstr "KefluniaƱ LILO/GRUB"
-
-#~ msgid "Create a boot floppy"
-#~ msgstr "KrouiƱ ur bladennig loc'haƱ"
-
-#~ msgid "Choice"
-#~ msgstr "Dibab"
-
-#~ msgid "Miscellaneous"
-#~ msgstr "A bep seurt"
-
-#~ msgid "Miscellaneous questions"
-#~ msgstr "GoulennoĆ¹ a bep seurt"
-
-#~ msgid "Can't use supermount in high security level"
-#~ msgstr "N'hellan ket implijout supermount el live surentez uhel"
-
-#~ msgid "First DNS Server"
-#~ msgstr "Servijer DNS kentaƱ"
-
-#~ msgid "Second DNS Server"
-#~ msgstr "Eil servijer DNS"
-
-#~ msgid "loopback"
-#~ msgstr "saveteiƱ"
-
-#~ msgid "Which bootloader(s) do you want to use?"
-#~ msgstr "Pe garger(ien) loc'haƱ a vennit imlijout ?"
-
-#~ msgid "Auto install floppy"
-#~ msgstr "Pladennig staliaƱ emgefreek"
-
-#~ msgid "Try to find a modem?"
-#~ msgstr "Klask kavout ur modem ?"
-
-#~ msgid "KDE"
-#~ msgstr "KDE"
-
-#~ msgid "Configure timezone"
-#~ msgstr "KefluniaƱ an takad-eur"
-
-#~ msgid "(may cause data corruption)"
-#~ msgstr "(a c'hell breinaƱ roadoĆ¹)"
-
-#~ msgid "Enable num lock at startup"
-#~ msgstr "EnaouiƱ KrouilhNiv pa loc'her"
-
-#~ msgid "DNS server:"
-#~ msgstr "Servijer DNSĀ :"
-
-#~ msgid "Gateway device:"
-#~ msgstr "Trobarzhell an dreuzellĀ :"
-
-#~ msgid "Customized"
-#~ msgstr "Neuziet"
-
-#~ msgid "Use shadow file"
-#~ msgstr "Implijout ur restr kuzhet"
-
-#~ msgid "MD5"
-#~ msgstr "MD5"
-
-#~ msgid "Use MD5 passwords"
-#~ msgstr "Implijout tremegerioĆ¹ MD5"
-
-#~ msgid "Package"
-#~ msgstr "Pakad"
-
-#~ msgid "Tree"
-#~ msgstr "Gwezenn"
-
-#~ msgid "Sort by"
-#~ msgstr "RummaƱ dre"
-
-#~ msgid "Category"
-#~ msgstr "Rummad"
-
-#~ msgid "Installed packages"
-#~ msgstr "PakadoĆ¹ staliet"
-
-#~ msgid "Available packages"
-#~ msgstr "PakadoĆ¹ hegerz"
-
-#~ msgid "Show only leaves"
-#~ msgstr "Diskouez an delioĆ¹ hepken"
-
-#~ msgid "Expand all"
-#~ msgstr "Astenn pep tra"
-
-#~ msgid "Collapse all"
-#~ msgstr "PlegaƱ pep tra"
-
-#~ msgid "Add location of packages"
-#~ msgstr "OuzhpennaƱ lec'hiadur ar pakadoĆ¹"
-
-#~ msgid "Update location"
-#~ msgstr "Bremanaat al lec'hiadur"
-
-#~ msgid "Find Package"
-#~ msgstr "Kavout ur pakad"
-
-#~ msgid "Find Package containing file"
-#~ msgstr "Kavout ur pakad ennaƱ ur restr"
-
-#~ msgid "Toggle between Installed and Available"
-#~ msgstr "GwintaƱ etre Staliet hag Hegerz"
-
-#~ msgid "Checking dependencies"
-#~ msgstr "O wiriaƱ sujedigezhioĆ¹"
-
-#~ msgid "The following packages are going to be uninstalled"
-#~ msgstr "Ar pakadoĆ¹ a-heul a zo war-nes bezaƱ distaliet"
-
-#~ msgid "Regexp"
-#~ msgstr "Regexp"
-
-#~ msgid "Which package are looking for"
-#~ msgstr "Pe bakad a glask"
-
-#~ msgid "No match"
-#~ msgstr "Klotadur ebet"
-
-#~ msgid "No more match"
-#~ msgstr "Klotadur ouzphenn ebet"
-
-#~ msgid ""
-#~ "rpmdrake is currently in ``low memory'' mode.\n"
-#~ "I'm going to relaunch rpmdrake to allow searching files"
-#~ msgstr ""
-#~ "EmaƱ rpmdrake er mod ``memor izel'' evit poent.\n"
-#~ "AdlaƱsaƱ a rin rpmdrake tuchantik evit aotren da glask restroĆ¹"
-
-#~ msgid "Which file are you looking for?"
-#~ msgstr "Pe restr emaoc'h o klask ?"
-
-#~ msgid "What are looking for?"
-#~ msgstr "Petra emaoc'h o klask ?"
-
-#~ msgid "Give a name (eg: `extra', `commercial')"
-#~ msgstr "Roit din un anv (da sk. `ouzhpenn', `kenwerzhel')"
-
-#~ msgid "Directory"
-#~ msgstr "Renkell"
-
-#~ msgid "No cdrom available (nothing in /mnt/cdrom)"
-#~ msgstr "Cdrom hegerz ebet (netra e /mnt/cdrom)"
-
-#~ msgid "URL of the directory containing the RPMs"
-#~ msgstr "URL ar renkell enni ar RPMoĆ¹"
-
-#~ msgid ""
-#~ "For FTP and HTTP, you need to give the location for hdlist\n"
-#~ "It must be relative to the URL above"
-#~ msgstr ""
-#~ "Evit FTP hag HTTP eo ret deoc'h reiƱ lec'hiadur an hdlist\n"
-#~ "Da geƱver an URL a-us e rank bezaƱ"
-
-#~ msgid "Please submit the following information"
-#~ msgstr "Leugnit ar stlenn a-heul mar plij"
-
-#~ msgid "%s is already in use"
-#~ msgstr "War implij eo %s endeo"
-
-#~ msgid "Updating the RPMs base"
-#~ msgstr "O vremanaat an diaz RPMoĆ¹"
-
-#~ msgid "Going to remove entry %s"
-#~ msgstr "War-nes dilemel an enmont %s"
-
-#~ msgid "Finding leaves"
-#~ msgstr "O klask delioĆ¹"
-
-#~ msgid "Finding leaves takes some time"
-#~ msgstr "Klask delioĆ¹ a bad ur frapadig"
-
-#~ msgid "i18n (important)"
-#~ msgstr "i18n (a-bouez)"
-
-#~ msgid "i18n (very nice)"
-#~ msgstr "i18n (brav-tre)"
-
-#~ msgid "i18n (nice)"
-#~ msgstr "i18n (brav)"
-
-#~ msgid "Which serial port is your mouse connected to?"
-#~ msgstr "Ouzh pe borzh a-steud eo luget ho logodenn ?"
-
-#~ msgid "Czech"
-#~ msgstr "Tchek"
-
-#~ msgid "Slovakian"
-#~ msgstr "Slovakek"
-
-#~ msgid "Which partition type do you want?"
-#~ msgstr "Pe seurt parzhadur a vennit ?"
-
-#~ msgid ""
-#~ "Any partitions that have been newly defined must be formatted for\n"
-#~ "use (formatting meaning creating a filesystem). At this time, you may\n"
-#~ "wish to re-format some already existing partitions to erase the data\n"
-#~ "they contain. Note: it is not necessary to re-format pre-existing\n"
-#~ "partitions, particularly if they contain files or data you wish to keep.\n"
-#~ "Typically retained are /home and /usr/local."
-#~ msgstr ""
-#~ "Kement parzhadur a zo bet nevez termenet a zle bezaƱ furmadet a-benn\n"
-#~ "e implijout (furmadiƱ a dalvez krouiƱ ur reizhiad restroĆ¹). Er poent-se,\n"
-#~ "e c'hellit mennout adfurmadiƱ parzhadurioĆ¹ 'zo o vezaƱ endeo evit "
-#~ "diverkaƱ\n"
-#~ "ar roadoĆ¹ a zo enno. Ho evezhĀ : n'eo ket ret adfurmadiƱ parzhadurioĆ¹ o\n"
-#~ "vezaƱ endeo, dreist-holl ma 'z eus enno restroĆ¹ pe roadoĆ¹ a vennit "
-#~ "derc'hel.\n"
-#~ "SkouerioĆ¹ dibar eo /home ha /usr."
-
-#~ msgid ""
-#~ "The packages selected are now being installed. This operation\n"
-#~ "should take a few minutes unless you have chosen to upgrade an\n"
-#~ "existing system, in that case it can take more time even before\n"
-#~ "upgrade starts."
-#~ msgstr ""
-#~ "EmaƱ ar pakadoĆ¹ diuzet o vezaƱ staliaet bremaƱ. Un nebeut munut\n"
-#~ "e zlefe padout an obererezh-se nemet m'ho pije dibabet bremanaat\n"
-#~ "ur reizhiad o vezaƱ, en degouezh-se e c'hell kemer muioc'h a amzer\n"
-#~ "zoken a-raok na grogfe ar bremanaat."
-
-#~ msgid "Forget the changes?"
-#~ msgstr "DisoƱjal ar c'hemmoĆ¹"
-
-#~ msgid "What is the type of your mouse?"
-#~ msgstr "Peseurt eo ho logodenn ?"
-
-#~ msgid "Automatic resolutions"
-#~ msgstr "SpisterioĆ¹ emgefreek"
-
-#~ msgid ""
-#~ "To find the available resolutions I will try different ones.\n"
-#~ "Your screen will blink...\n"
-#~ "You can switch if off if you want, you'll hear a beep when it's over"
-#~ msgstr ""
-#~ "A-benn kavout ar spisterioĆ¹ hegerz e klaskin meur a hini.\n"
-#~ "C'hwildaƱ a raio ho skramm...\n"
-#~ "Gallout a rit e tizenaouiƱ ma fell deoc'h, klevet a rit ur bip pa vo echu"
-
-#~ msgid ""
-#~ "I can try to find the available resolutions (eg: 800x600).\n"
-#~ "Sometimes, though, it may hang the machine.\n"
-#~ "Do you want to try?"
-#~ msgstr ""
-#~ "Klask kavout ar spisterioĆ¹ hegerz a c'hellan (da sk. 800x600).\n"
-#~ "A-wechoĆ¹, evelato, e c'hell sac'haƱ an ardivink.\n"
-#~ "Mennout a rit klask ?"
-
-#~ msgid ""
-#~ "No valid modes found\n"
-#~ "Try with another video card or monitor"
-#~ msgstr ""
-#~ "Mod reizh ebet kavet\n"
-#~ "Klaskit gant ur gartenn video pe ur skramm all"
-
-#~ msgid "Automatical resolutions search"
-#~ msgstr "Klask ent emgefreek ar spisterioĆ¹"
-
-#~ msgid "Apple ADB Mouse"
-#~ msgstr "Logodenn Apple ADB"
-
-#~ msgid "Apple ADB Mouse (2 Buttons)"
-#~ msgstr "Logodenn Apple ADB (2 nozelenn)"
-
-#~ msgid "Apple ADB Mouse (3+ Buttons)"
-#~ msgstr "Logodenn Apple ADB (3 nozelenn pe vuioc'h)"
-
-#~ msgid "Apple USB Mouse"
-#~ msgstr "Logodenn Apple ADB "
-
-#~ msgid "Apple USB Mouse (2 Buttons)"
-#~ msgstr "Logodenn Apple USB (2 nozelenn)"
-
-#~ msgid "Apple USB Mouse (3+ Buttons)"
-#~ msgstr "Logodenn Apple USB (3 nozelenn pe vuioc'h)"
-
-#~ msgid "ASCII MieMouse"
-#~ msgstr "ASCII MieMouse"
-
-#~ msgid "Genius NetMouse Pro"
-#~ msgstr "Genius NetMouse Pro"
-
-#~ msgid "ATI Bus Mouse"
-#~ msgstr "Logodenn bus ATI"
-
-#~ msgid "Microsoft Bus Mouse"
-#~ msgstr "Logodenn bus Microsoft"
-
-#~ msgid "Logitech Bus Mouse"
-#~ msgstr "Logodenn bus Logitech"
-
-#~ msgid "USB Mouse (3 buttons or more)"
-#~ msgstr "Logodenn USB (3 nozelenn pe vuioc'h)"
-
-#~ msgid "Microsoft Rev 2.1A or higher (serial)"
-#~ msgstr "Microsoft Stumm 2.1A pe uheloc'h (a-steud)"
-
-#~ msgid "Logitech MouseMan+/FirstMouse+ (serial)"
-#~ msgstr "Logitech MouseMan+/FirstMouse+ (a-steud)"
-
-#~ msgid "ASCII MieMouse (serial)"
-#~ msgstr "ASCII MieMouse (a-steud)"
-
-#~ msgid "Genius NetMouse (serial)"
-#~ msgstr "Genius NetMouse (a-steud)"
-
-#~ msgid "Generic Mouse (serial)"
-#~ msgstr "Logodenn rummel (a-steud)"
-
-#~ msgid "Microsoft compatible (serial)"
-#~ msgstr "Kenglotus Microsoft (a-steud)"
-
-#~ msgid "Generic 3 Button Mouse (serial)"
-#~ msgstr "Logodenn rummel 3 nozelenn (a-steud)"
-
-#~ msgid "nfs mount failed"
-#~ msgstr "marc'haƱ NFS sac'het"
-
-#~ msgid "Cryptographic"
-#~ msgstr "Rinegouriezh"
-
-#~ msgid "Do you want to configure a local network for your system?"
-#~ msgstr "Ha mennout a rit kefluniaƱ ur rouedad lec'hel evit ho reizhiad ?"
-
-#~ msgid "Show less"
-#~ msgstr "Diskouez nebeutoc'h"
-
-#~ msgid "Show more"
-#~ msgstr "Diskouez muioc'h"
-
-#~ msgid "tie"
-#~ msgstr "frondenn"
-
-#~ msgid "brunette"
-#~ msgstr "duardez"
-
-#~ msgid "girl"
-#~ msgstr "plac'h"
-
-#~ msgid "woman-blond"
-#~ msgstr "meleganez"
-
-#~ msgid "automagic"
-#~ msgstr "emhud"
-
-#~ msgid "What is your keyboard layout?"
-#~ msgstr "Petra eo reizhadur ho stokellaoueg ?"
-
-#~ msgid "Try to find PCMCIA cards?"
-#~ msgstr "Klask kavout kartennoĆ¹ PCMCIA ?"
-
-#~ msgid "Try to find %s devices?"
-#~ msgstr "Klask kavout trobarzhelloĆ¹ %s ?"
-
-#~ msgid ""
-#~ "Do you want to configure a dialup connection with modem for your system?"
-#~ msgstr ""
-#~ "Ha mennout a rit kefluniaƱ ur gevreadenn gervel dre modem evit ho "
-#~ "reizhiad ?"
-
-#~ msgid "Try to find PCI devices?"
-#~ msgstr "Klask kavout trobarzhelloĆ¹ PCI ?"
-
-#~ msgid "Searching root partition."
-#~ msgstr "O klask ar parzhadur gwrizienn."
-
-#~ msgid "%s: This is not a root partition, please select another one."
-#~ msgstr "%sĀ : N'eo ket ur parzhadur gwrizienn, diuzit un all mar plij."
-
-#~ msgid "Please choose a partition to use as your root partition."
-#~ msgstr ""
-#~ "Dibabit ur parzhadur d'ober anezhaƱ ho parzhadur gwrizienn, mar plij."
-
-#~ msgid "You don't have any enough room for Lnx4win"
-#~ msgstr "N'hoc'h eus ket a-walc'h a egor evit Lnx4win !"
-
-#~ msgid ", %U MB"
-#~ msgstr ", %U Mo"
-
-# NOTE: this message will be displayed by lilo at boot time; that is
-# using the BIOS font; that means cp437 charset on 99.99% of PC computers
-# out there. It is the nsuggested that for non latin languages an ascii
-# transliteration be used; or maybe the english text be used; as it is best
-#
-# 'Ā¤' is the 'Ʊ' (ntilde) in cp437 encoding.
-# '\227' is the 'Ć¹' (ugrave) in cp437 encoding.
-#
-#~ msgid ""
-#~ "Welcome to LILO the operating system chooser!\n"
-#~ "\n"
-#~ "To list the possible choices, press <TAB>.\n"
-#~ "\n"
-#~ "To load one of them, write its name and press <ENTER> or wait %d seconds "
-#~ "for default boot.\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Degemer mat e LILO, an dibaber reizhiad oberiaĀ¤ !\n"
-#~ "\n"
-#~ "Evit rollaĀ¤ an dibaboĀ— aotreet, stokit <TAB>.\n"
-#~ "\n"
-#~ "Evit kargaĀ¤ unan anezho, skrivit e anv ha stokit <ENKAS> pe c'hortozit %d "
-#~ "eilenn evit al loc'haĀ¤ dre ziouer.\n"
-#~ "\n"
-
-# NOTE: this message will be displayed by SILO at boot time; that is
-# only the ascii charset will be available
-# so use only 7bit for this message
-#
-#~ msgid ""
-#~ "Welcome to SILO the operating system chooser!\n"
-#~ "\n"
-#~ "To list the possible choices, press <TAB>.\n"
-#~ "\n"
-#~ "To load one of them, write its name and press <ENTER> or\n"
-#~ "wait %d seconds for default boot.\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Degemer mat e SILO, an dibaber reizhiad oberian~ !\n"
-#~ "\n"
-#~ "Evit rollan~ an dibabou aotreet, stokit <TAB>.\n"
-#~ "\n"
-#~ "Evit kargan~ unan anezho, skrivit e anv ha stokit <ENKAS> pe c'hortozit %"
-#~ "d eilenn evit al loc'han~ dre ziouer.\n"
-#~ "\n"
-
-#~ msgid "SILO main options"
-#~ msgstr "DibarzhoĆ¹ pennaƱ SILO"
-
-#~ msgid ""
-#~ "Here are the following entries in SILO.\n"
-#~ "You can add some more or change the existing ones."
-#~ msgstr ""
-#~ "Setu da heul enmontoĆ¹ a vez e SILO.\n"
-#~ "Gallout a rit ouzhpennaƱ lod pe gemmaƱ a re a zo."
-
-#~ msgid "This label is already in use"
-#~ msgstr "War implij eo ar skridennad-se endeo"
-
-#~ msgid "Installation of SILO failed. The following error occured:"
-#~ msgstr "Staliadur SILO zo sac'het. Degouezhet eo ar fazi a heulĀ :"
-
-#~ msgid ""
-#~ "DrakX will attempt at first to look for one or more PCI\n"
-#~ "SCSI adapter(s). If it finds it (or them) and knows which driver(s)\n"
-#~ "to use, it will insert it (them) automatically.\n"
-#~ "\n"
-#~ "\n"
-#~ "If your SCSI adapter is an ISA board, or is a PCI board but DrakX\n"
-#~ "doesn't know which driver to use for this card, or if you have no\n"
-#~ "SCSI adapters at all, you will then be prompted on whether you have\n"
-#~ "one or not. If you have none, answer \"No\". If you have one or more,\n"
-#~ "answer \"Yes\". A list of drivers will then pop up, from which you\n"
-#~ "will have to select one.\n"
-#~ "\n"
-#~ "\n"
-#~ "After you have selected the driver, DrakX will ask if you\n"
-#~ "want to specify options for it. First, try and let the driver\n"
-#~ "probe for the hardware: it usually works fine.\n"
-#~ "\n"
-#~ "\n"
-#~ "If not, do not forget the information on your hardware that you\n"
-#~ "could get from your documentation or from Windows (if you have it\n"
-#~ "on your system), as suggested by the installation guide. These\n"
-#~ "are the options you will need to provide to the driver."
-#~ msgstr ""
-#~ "DrakX a glasko da gentaƱ kavout unan pe vuioc'h a azasaer SCSI PCI.\n"
-#~ "Ma gav anezhaƱ (pe anezho) ha ma oar pe sturier(ien) implijout, e (o)\n"
-#~ "enlakaat a raio ent emgefreek.\n"
-#~ "\n"
-#~ "\n"
-#~ "M'eo ho azasaer SCSI ur gartenn ISA, pe m'eo ur gartenn PCI hogen\n"
-#~ "ne oar ket DrakX pe sturier implijout evit ar gartenn-se, pe n'hoc'h eus\n"
-#~ "tamm azasaer SCSI ebet, goulennet e vo diganeoc'h neuze hag-eƱ hoc'h\n"
-#~ "eus unan pe get. Ma n'hoc'h eus hini, eilgeriit \"Ket\". M'hoc'h eus\n"
-#~ "unan pe vuioc'h, eilgeriit \"Ya\". Ur roll sturierien a zeuio neuze\n"
-#~ "war wel, a vo ret deoc'h diuz unan anezho.\n"
-#~ "\n"
-#~ "\n"
-#~ "Goude m'ho po diuzet ar sturier, DrakX a c'houlenno ma vennit spisaat\n"
-#~ "dibarzhoĆ¹ evitaƱ. Da gentaƱ, klaskit leuskel ar sturier amprouiƱ\n"
-#~ "ar periantĀ : peurliesaƱ e da mat en-dro.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ma ne ra ket, na zisoƱjit ket an titouroĆ¹ war ho periant a c'hellit\n"
-#~ "kavout en ho teuliadur pe digant Windows (m'hoc'h eus hemaƱ war ho\n"
-#~ "reizhiad), evel m'eo aliet gant ar sturlevr staliaƱ. An dibarzhoĆ¹ a\n"
-#~ "vo ret deoc'h pourvezaƱ d'ar sturier eo a zo e kaoz."
-
-#~ msgid "Shutting down"
-#~ msgstr "O tizenaouiƱ"
-
-#~ msgid "useless"
-#~ msgstr "diezhomm"
-
-#~ msgid ""
-#~ "Choose \"Install\" if there are no previous versions of Linux\n"
-#~ "installed, or if you wish to use multiple distributions or versions.\n"
-#~ "\n"
-#~ "\n"
-#~ "Choose \"Upgrade\" if you wish to update a previous version of Mandrake "
-#~ "Linux:\n"
-#~ "5.1 (Venice), 5.2 (Leloo), 5.3 (Festen), 6.0 (Venus), 6.1 (Helios), Gold "
-#~ "2000\n"
-#~ "or 7.0 (Air)."
-#~ msgstr ""
-#~ "Dibabit \"StaliaƱ\" ma n'eus ket a stumm kent Linux bet staliaet,\n"
-#~ "pe ma vennit implijout meur a stumm pe a zasparzhadenn.\n"
-#~ "\n"
-#~ "\n"
-#~ "Dibabit \"Bremanaat\" ma vennit hizivaat ur stumm kent Mandrake LinuxĀ :\n"
-#~ "5.1 (Venice), 5.2 (Leeloo), 5.3 (Festen), 6.0 (Venus), 6.1 (Helios), Gold "
-#~ "2000\n"
-#~ "pe 7.0 (Air)."
-
-#~ msgid "Creating and formatting loopback file %s"
-#~ msgstr "O krouiƱ hag o furmadiƱ ar restr saveteiƱ %s"
-
-#~ msgid "Amusements/Games"
-#~ msgstr "Dudi/C'hoarioĆ¹"
-
-#~ msgid "Applications/Archiving"
-#~ msgstr "ArloadoĆ¹/Diellerezh"
-
-#~ msgid "Applications/CPAN"
-#~ msgstr "ArloadoĆ¹/CPAN"
-
-#~ msgid "Applications/Configuration"
-#~ msgstr "ArloadoĆ¹/KefluniaƱ"
-
-#~ msgid "Applications/Engineering"
-#~ msgstr "ArloadoĆ¹/Kalvezerezh"
-
-#~ msgid "Applications/File"
-#~ msgstr "ArloadoĆ¹/Restr"
-
-#~ msgid "Applications/Finance"
-#~ msgstr "ArloadoĆ¹/Arc'hanterezh"
-
-#~ msgid "Applications/Internet"
-#~ msgstr "ArloadoĆ¹/Kenrouedad"
-
-#~ msgid "Applications/Multimedia"
-#~ msgstr "ArloadoĆ¹/Liesvedia"
-
-#~ msgid "Applications/Networking"
-#~ msgstr "ArloadoĆ¹/Rouedad"
-
-#~ msgid "Applications/Productivity"
-#~ msgstr "ArloadoĆ¹/Ampletusted"
-
-#~ msgid "Applications/Publishing/TeX"
-#~ msgstr "ArloadoĆ¹/Embann/TeX"
-
-#~ msgid "Applications/Text"
-#~ msgstr "ArloadoĆ¹/Skrid"
-
-#~ msgid "Development/Debuggers"
-#~ msgstr "Diorren/Dizraenerien"
-
-#~ msgid "Development/Languages"
-#~ msgstr "Diorren/AregoĆ¹"
-
-#~ msgid "Development/System"
-#~ msgstr "Diorren/Reizhiad"
-
-#~ msgid "Development/Tools"
-#~ msgstr "Diorren/BinvioĆ¹"
-
-#~ msgid "Extensions/Arabic"
-#~ msgstr "AstennoĆ¹/Arabeg"
-
-#~ msgid "Extensions/Chinese"
-#~ msgstr "AstennoĆ¹/Sineg"
-
-#~ msgid "Extensions/Japanese"
-#~ msgstr "AstennoĆ¹/Japaneg"
-
-#~ msgid "Libraries"
-#~ msgstr "Mezarc'hioĆ¹"
-
-#~ msgid "Networking/Utilities"
-#~ msgstr "Rouedad/MavegoĆ¹"
-
-#~ msgid "System Environment/Base"
-#~ msgstr "Endro reizhiad/Diazez"
-
-#~ msgid "System Environment/Daemons"
-#~ msgstr "Endro reizhiad/Diaouled"
-
-#~ msgid "User Interface/Desktops"
-#~ msgstr "Etrefas arveriad/Gorretaol"
-
-#~ msgid "User Interface/X Hardware Support"
-#~ msgstr "Etrefas arveriad/MeraƱ ardivinkaj X"
-
-#~ msgid "Utilities/Archiving"
-#~ msgstr "MavegoĆ¹/Diellerezh"
-
-#~ msgid "Utilities/System"
-#~ msgstr "MavegoĆ¹/Reizhiad"
-
-#~ msgid "X11/Amusements"
-#~ msgstr "X11/Dudi"
-
-#~ msgid "X11/Applications"
-#~ msgstr "X11/ArloadoĆ¹"
-
-#~ msgid "X11/Applications/Internet"
-#~ msgstr "X11/ArloadoĆ¹/Kenrouedad"
-
-#~ msgid "X11/Applications/Networking"
-#~ msgstr "X11/ArloadoĆ¹/Rouedad"
-
-#~ msgid "X11/Window Managers"
-#~ msgstr "X11/Merourien prenester"
-
-#~ msgid "Communications"
-#~ msgstr "KehentiƱ"
-
-#~ msgid "Development/C++"
-#~ msgstr "Diorren/C++"
-
-#~ msgid "Development/Databases"
-#~ msgstr "Diorren/StlennvonioĆ¹"
-
-#~ msgid "Development/Kernel"
-#~ msgstr "Diorren/KraoƱell"
-
-#~ msgid "Editors"
-#~ msgstr "Aozerien"
-
-#~ msgid "Emulators"
-#~ msgstr "Kendarvanerezh"
-
-#~ msgid "Graphics"
-#~ msgstr "Grafek"
-
-#~ msgid "Publishing"
-#~ msgstr "Embann"
-
-#~ msgid "Shells"
-#~ msgstr "ShelloĆ¹"
-
-#~ msgid "Sound"
-#~ msgstr "Son"
-
-#~ msgid "System/Fonts/True type"
-#~ msgstr "Reizhiad/NodrezhoĆ¹/True Type"
-
-#~ msgid "System/Libraries"
-#~ msgstr "Reizhiad/Mezarc'hioĆ¹"
diff --git a/perl-install/share/po/bs.po b/perl-install/share/po/bs.po
deleted file mode 100644
index c406f3c6f..000000000
--- a/perl-install/share/po/bs.po
+++ /dev/null
@@ -1,12336 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR Free Software Foundation, Inc.
-# Vedran Ljubovic <vljubovic@smartnet.ba>, 2001
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: DrakX VERSION\n"
-"POT-Creation-Date: 2002-03-11 18:29+0100\n"
-"PO-Revision-Date: 2002-02-28 20:49GMT\n"
-"Last-Translator: Vedran Ljubovic <vljubovic@smartnet.ba>\n"
-"Language-Team: Bosnian <prijevodi@lugbih.org>\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"
-
-#: ../../Xconfigurator.pm_.c:242
-msgid "Configure all heads independently"
-msgstr "KonfiguriÅi sve glave odvojeno"
-
-#: ../../Xconfigurator.pm_.c:243
-msgid "Use Xinerama extension"
-msgstr "Koristi Xinerama ekstenziju"
-
-#: ../../Xconfigurator.pm_.c:246
-#, c-format
-msgid "Configure only card \"%s\" (%s)"
-msgstr "KonfiguriÅi samo karticu \"%s\" (%s)"
-
-#: ../../Xconfigurator.pm_.c:249
-msgid "Multi-head configuration"
-msgstr "Multi-head konfiguracija"
-
-#: ../../Xconfigurator.pm_.c:250
-msgid ""
-"Your system support multiple head configuration.\n"
-"What do you want to do?"
-msgstr ""
-"VaÅ sistem podržava konfiguraciju viÅe glava.\n"
-"Šta želite uĨiniti?"
-
-#: ../../Xconfigurator.pm_.c:261
-msgid "Graphic card"
-msgstr "GrafiĨka karta"
-
-#: ../../Xconfigurator.pm_.c:262
-msgid "Select a graphic card"
-msgstr "Izaberite grafiĨku kartu"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "Choose a X server"
-msgstr "Izaberite X server"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "X server"
-msgstr "X server"
-
-#: ../../Xconfigurator.pm_.c:293
-msgid "Choose a X driver"
-msgstr "Izaberite X drajver"
-
-#: ../../Xconfigurator.pm_.c:293
-msgid "X driver"
-msgstr "X drajver"
-
-#: ../../Xconfigurator.pm_.c:360 ../../Xconfigurator.pm_.c:366
-#: ../../Xconfigurator.pm_.c:416 ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s"
-msgstr "XFree %s"
-
-#: ../../Xconfigurator.pm_.c:363
-msgid "Which configuration of XFree do you want to have?"
-msgstr "Koju konfiguraciju XFree želite imati?"
-
-#: ../../Xconfigurator.pm_.c:374
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"VaÅa kartica može imati podrÅku za 3D hardversko ubrzanje ali samo sa\n"
-"XFree %s. VaÅu karticu podržava XFree %s koji može imati bolju podrÅku za 2D."
-
-#: ../../Xconfigurator.pm_.c:376 ../../Xconfigurator.pm_.c:409
-#, c-format
-msgid "Your card can have 3D hardware acceleration support with XFree %s."
-msgstr "VaÅa kartica može imati podrÅku za 3D hardversko ubrzanje sa XFree %s."
-
-#: ../../Xconfigurator.pm_.c:378 ../../Xconfigurator.pm_.c:411
-#: ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s with 3D hardware acceleration"
-msgstr "XFree %s sa 3D hardverskim ubrzanjem"
-
-#: ../../Xconfigurator.pm_.c:386 ../../Xconfigurator.pm_.c:400
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER."
-msgstr ""
-"VaÅa kartica može imati podrÅku za 3D hardversko ubrzanje sa XFree %s,\n"
-"PAŽNJA OVO JE EKSPERIMENTALNA PODRÅ KA I MOŽE ZALEDITI VAÅ  RAÄUNAR."
-
-#: ../../Xconfigurator.pm_.c:388 ../../Xconfigurator.pm_.c:402
-#, c-format
-msgid "XFree %s with EXPERIMENTAL 3D hardware acceleration"
-msgstr "XFree %s sa EKSPERIMENTALNIM 3D hardverskim ubrzanjem"
-
-#: ../../Xconfigurator.pm_.c:397
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"VaÅa kartica može imati podrÅku za 3D hardversko ubrzanje sa XFree %s,\n"
-"PAŽNJA OVO JE EKSPERIMENTALNA PODRÅ KA I MOŽE ZALEDITI VAÅ  RAÄUNAR.\n"
-"VaÅu karticu podržava XFree %s koji može imati bolju podrÅku za 2D."
-
-#: ../../Xconfigurator.pm_.c:417
-msgid "Xpmac (installation display driver)"
-msgstr "Xpmac (installation display driver)"
-
-#: ../../Xconfigurator.pm_.c:421
-msgid "XFree configuration"
-msgstr "XFree konfiguracija"
-
-#: ../../Xconfigurator.pm_.c:496
-msgid "Select the memory size of your graphic card"
-msgstr "Izaberite veliĨinu memorije vaÅe grafiĨke karte"
-
-#: ../../Xconfigurator.pm_.c:550
-msgid "Choose options for server"
-msgstr "Izaberite opcije za server"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Choose a monitor"
-msgstr "Izaberite monitor"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Monitor"
-msgstr "Monitor"
-
-#: ../../Xconfigurator.pm_.c:577
-msgid ""
-"The two critical parameters are the vertical refresh rate, which is the "
-"rate\n"
-"at which the whole screen is refreshed, and most importantly the horizontal\n"
-"sync rate, which is the rate at which scanlines are displayed.\n"
-"\n"
-"It is VERY IMPORTANT that you do not specify a monitor type with a sync "
-"range\n"
-"that is beyond the capabilities of your monitor: you may damage your "
-"monitor.\n"
-" If in doubt, choose a conservative setting."
-msgstr ""
-"Dva kritiĨna parametra su brzina vertikalnog osvježenja, Åto je brzina\n"
-"kojom se cijeli ekran osvježava, i najvažnije brzina horizontalne\n"
-"sinhronizacije, Åto je brzina kojm se prikazuju skan-linije.\n"
-"\n"
-"VEOMA JE VAŽNO da ne navedete tip monitora Ĩiji je sinhronizacioni\n"
-"raspon izvan mogućnosti vaÅeg monitora: time možete oÅtetiti monitor.\n"
-" Ako niste sigurni, izaberite najmanju opciju."
-
-#: ../../Xconfigurator.pm_.c:584
-msgid "Horizontal refresh rate"
-msgstr "Brzina horizontalnog osvježavanja"
-
-#: ../../Xconfigurator.pm_.c:585
-msgid "Vertical refresh rate"
-msgstr "Brzina vertiaklnog osvježavanja"
-
-#: ../../Xconfigurator.pm_.c:622
-msgid "Monitor not configured"
-msgstr "Monitor nije konfigurisan"
-
-#: ../../Xconfigurator.pm_.c:625
-msgid "Graphic card not configured yet"
-msgstr "GrafiĨka karta joŠuvijek nije konfigurisana"
-
-#: ../../Xconfigurator.pm_.c:628
-msgid "Resolutions not chosen yet"
-msgstr "Rezolucije joÅ nisu odabrane"
-
-#: ../../Xconfigurator.pm_.c:646
-msgid "Do you want to test the configuration?"
-msgstr "Želite li testirati konfiguraciju?"
-
-#: ../../Xconfigurator.pm_.c:650
-msgid "Warning: testing this graphic card may freeze your computer"
-msgstr "Upozorenje: testiranje ove grafiĨke karte može zalediti raĨunar"
-
-#: ../../Xconfigurator.pm_.c:653
-msgid "Test of the configuration"
-msgstr "Testiranje konfiguracije"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid ""
-"\n"
-"try to change some parameters"
-msgstr ""
-"\n"
-"probajte izmjeniti neke parametre"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid "An error has occurred:"
-msgstr "DoÅlo je do greÅke"
-
-#: ../../Xconfigurator.pm_.c:731
-#, c-format
-msgid "Leaving in %d seconds"
-msgstr "NapuÅtam za %d sekundi"
-
-#: ../../Xconfigurator.pm_.c:742
-msgid "Is this the correct setting?"
-msgstr "Da li je ovo ispravna vrijednost?"
-
-#: ../../Xconfigurator.pm_.c:751
-msgid "An error has occurred, try to change some parameters"
-msgstr "DoÅlo je do greÅke, probajte izmjeniti neke parametre"
-
-#: ../../Xconfigurator.pm_.c:822
-msgid "Resolution"
-msgstr "Rezolucija"
-
-#: ../../Xconfigurator.pm_.c:874
-msgid "Choose the resolution and the color depth"
-msgstr "Izaberite rezoluciju i dubinu boja"
-
-#: ../../Xconfigurator.pm_.c:876
-#, c-format
-msgid "Graphic card: %s"
-msgstr "GrafiĨka karta: %s"
-
-#: ../../Xconfigurator.pm_.c:877
-#, c-format
-msgid "XFree86 server: %s"
-msgstr "XFree86 server: %s"
-
-#: ../../Xconfigurator.pm_.c:891 ../../diskdrake/interactive.pm_.c:259
-#: ../../install_steps_interactive.pm_.c:208
-msgid "More"
-msgstr "JoÅ"
-
-#: ../../Xconfigurator.pm_.c:891 ../../install_gtk.pm_.c:84
-#: ../../install_steps_gtk.pm_.c:328 ../../interactive.pm_.c:127
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_http.pm_.c:104
-#: ../../interactive_newt.pm_.c:170 ../../interactive_stdio.pm_.c:141
-#: ../../interactive_stdio.pm_.c:142 ../../my_gtk.pm_.c:686
-#: ../../my_gtk.pm_.c:1019 ../../my_gtk.pm_.c:1041
-#: ../../standalone/drakbackup_.c:2298 ../../standalone/drakbackup_.c:2369
-#: ../../standalone/drakbackup_.c:2385
-msgid "Ok"
-msgstr "Ok"
-
-#: ../../Xconfigurator.pm_.c:893 ../../network/netconnect.pm_.c:169
-#: ../../printerdrake.pm_.c:2470 ../../standalone/draknet_.c:275
-#: ../../standalone/draknet_.c:278
-msgid "Expert Mode"
-msgstr "Ekspertni mod"
-
-#: ../../Xconfigurator.pm_.c:894
-msgid "Show all"
-msgstr "Prikaži sve"
-
-#: ../../Xconfigurator.pm_.c:939
-msgid "Resolutions"
-msgstr "Rezolucije"
-
-#: ../../Xconfigurator.pm_.c:1509
-#, c-format
-msgid "Keyboard layout: %s\n"
-msgstr "Raspored tastature: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1510
-#, c-format
-msgid "Mouse type: %s\n"
-msgstr "Tip miÅa: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1511
-#, c-format
-msgid "Mouse device: %s\n"
-msgstr "UreÄ‘aj miÅa: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1512
-#, c-format
-msgid "Monitor: %s\n"
-msgstr "Monitor: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1513
-#, c-format
-msgid "Monitor HorizSync: %s\n"
-msgstr "Monitor HorizSync: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1514
-#, c-format
-msgid "Monitor VertRefresh: %s\n"
-msgstr "Monitor VertRefresh: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1515
-#, c-format
-msgid "Graphic card: %s\n"
-msgstr "GrafiĨka karta: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1516
-#, c-format
-msgid "Graphic card identification: %s\n"
-msgstr "Identifikacija grafiĨke karte: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1517
-#, c-format
-msgid "Graphic memory: %s kB\n"
-msgstr "GrafiĨka memorija: %s kB\n"
-
-#: ../../Xconfigurator.pm_.c:1519
-#, c-format
-msgid "Color depth: %s\n"
-msgstr "Dubina boja: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1520
-#, c-format
-msgid "Resolution: %s\n"
-msgstr "Rezolucija: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1522
-#, c-format
-msgid "XFree86 server: %s\n"
-msgstr "XFree86 server: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1523
-#, c-format
-msgid "XFree86 driver: %s\n"
-msgstr "XFree86 drajver: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1541
-msgid "Preparing X-Window configuration"
-msgstr "Pripremam X-Window konfiguraciju"
-
-#: ../../Xconfigurator.pm_.c:1561
-msgid "What do you want to do?"
-msgstr "Šta želite uĨiniti?"
-
-#: ../../Xconfigurator.pm_.c:1566
-msgid "Change Monitor"
-msgstr "Izmjena Monitora"
-
-#: ../../Xconfigurator.pm_.c:1567
-msgid "Change Graphic card"
-msgstr "Izmjena GrafiĨke kartice"
-
-#: ../../Xconfigurator.pm_.c:1570
-msgid "Change Server options"
-msgstr "Izmjena Server opcija"
-
-#: ../../Xconfigurator.pm_.c:1571
-msgid "Change Resolution"
-msgstr "Izmjena Rezolucije"
-
-#: ../../Xconfigurator.pm_.c:1572
-msgid "Show information"
-msgstr "Prikaži informacije"
-
-#: ../../Xconfigurator.pm_.c:1573
-msgid "Test again"
-msgstr "Testiraj ponovo"
-
-#: ../../Xconfigurator.pm_.c:1574 ../../printerdrake.pm_.c:2473
-#: ../../standalone/logdrake_.c:225
-msgid "Quit"
-msgstr "Izlaz"
-
-#: ../../Xconfigurator.pm_.c:1582
-#, c-format
-msgid ""
-"Keep the changes?\n"
-"Current configuration is:\n"
-"\n"
-"%s"
-msgstr ""
-"Zadržati izmjene?\n"
-"Trenutna konfiguracija je:\n"
-"\n"
-"%s"
-
-#: ../../Xconfigurator.pm_.c:1603
-msgid "X at startup"
-msgstr "X u startanju"
-
-#: ../../Xconfigurator.pm_.c:1604
-msgid ""
-"I can set up your computer to automatically start X upon booting.\n"
-"Would you like X to start when you reboot?"
-msgstr ""
-"Mogu podesiti vaŠraĨunar da automatski pokrene X nakon boota.\n"
-"Želite li da se X pokrene kada bootate?"
-
-#: ../../Xconfigurator.pm_.c:1610
-#, c-format
-msgid "Please relog into %s to activate the changes"
-msgstr "Molimo ponovo se prijavite na %s radi aktiviranja izmjena"
-
-#: ../../Xconfigurator.pm_.c:1625
-msgid "Please log out and then use Ctrl-Alt-BackSpace"
-msgstr "Molimo izvrÅite logout i zatim koristitite Ctrl-Alt-BackSpace"
-
-#: ../../Xconfigurator_consts.pm_.c:6
-msgid "256 colors (8 bits)"
-msgstr "256 boja (8 bita)"
-
-#: ../../Xconfigurator_consts.pm_.c:7
-msgid "32 thousand colors (15 bits)"
-msgstr "32 hiljada boja (15 bita)"
-
-#: ../../Xconfigurator_consts.pm_.c:8
-msgid "65 thousand colors (16 bits)"
-msgstr "65 hiljada boja (16 bita)"
-
-#: ../../Xconfigurator_consts.pm_.c:9
-msgid "16 million colors (24 bits)"
-msgstr "16 miliona boja (24 bita)"
-
-#: ../../Xconfigurator_consts.pm_.c:10
-msgid "4 billion colors (32 bits)"
-msgstr "4 milijarde boja (32 bita)"
-
-#: ../../Xconfigurator_consts.pm_.c:113
-msgid "256 kB"
-msgstr "256 kB"
-
-#: ../../Xconfigurator_consts.pm_.c:114
-msgid "512 kB"
-msgstr "512 kB"
-
-#: ../../Xconfigurator_consts.pm_.c:115
-msgid "1 MB"
-msgstr "1 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:116
-msgid "2 MB"
-msgstr "2 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:117
-msgid "4 MB"
-msgstr "4 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:118
-msgid "8 MB"
-msgstr "8 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:119
-msgid "16 MB"
-msgstr "16 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:120
-msgid "32 MB"
-msgstr "32 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:121
-msgid "64 MB or more"
-msgstr "64 MB ili viÅe"
-
-#: ../../Xconfigurator_consts.pm_.c:129
-msgid "Standard VGA, 640x480 at 60 Hz"
-msgstr "Standardna VGA, 640x480 na 60 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:130
-msgid "Super VGA, 800x600 at 56 Hz"
-msgstr "Super VGA, 800x600 na 56 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:131
-msgid "8514 Compatible, 1024x768 at 87 Hz interlaced (no 800x600)"
-msgstr "8514 Kompatibilna, 1024x768 na 87 Hz sa preplitanjem (bez 800x600)"
-
-#: ../../Xconfigurator_consts.pm_.c:132
-msgid "Super VGA, 1024x768 at 87 Hz interlaced, 800x600 at 56 Hz"
-msgstr "Super VGA, 1024x768 na 87 Hz sa preplitanjem, 800x600 na 56 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:133
-msgid "Extended Super VGA, 800x600 at 60 Hz, 640x480 at 72 Hz"
-msgstr "Extended Super VGA, 800x600 na 60 Hz, 640x480 na 72 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:134
-msgid "Non-Interlaced SVGA, 1024x768 at 60 Hz, 800x600 at 72 Hz"
-msgstr "Non-Interlaced SVGA, 1024x768 na 60 Hz, 800x600 na 72 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:135
-msgid "High Frequency SVGA, 1024x768 at 70 Hz"
-msgstr "High Frequency SVGA, 1024x768 na 70 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:136
-msgid "Multi-frequency that can do 1280x1024 at 60 Hz"
-msgstr "Multi-frequency koja može postići 1280x1024 na 60 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:137
-msgid "Multi-frequency that can do 1280x1024 at 74 Hz"
-msgstr "Multi-frequency koja može postići 1280x1024 na 74 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:138
-msgid "Multi-frequency that can do 1280x1024 at 76 Hz"
-msgstr "Multi-frequency koja može postići 1280x1024 na 76 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:139
-msgid "Monitor that can do 1600x1200 at 70 Hz"
-msgstr "Monitor koji može postići 1600x1200 na 70 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:140
-msgid "Monitor that can do 1600x1200 at 76 Hz"
-msgstr "Monitor koji može postići 1600x1200 na 76 Hz"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141
-msgid "First sector of boot partition"
-msgstr "Prvi sektor boot particije"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141 ../../any.pm_.c:218
-msgid "First sector of drive (MBR)"
-msgstr "Prvi sektor diska (MBR)"
-
-#: ../../any.pm_.c:120
-msgid "SILO Installation"
-msgstr "SILO instalacija"
-
-#: ../../any.pm_.c:121 ../../any.pm_.c:134
-msgid "Where do you want to install the bootloader?"
-msgstr "Gdje želite smjestiti bootloader?"
-
-#: ../../any.pm_.c:133
-msgid "LILO/grub Installation"
-msgstr "LILO/grub instalacija"
-
-#: ../../any.pm_.c:145 ../../any.pm_.c:159
-msgid "SILO"
-msgstr "SILO"
-
-#: ../../any.pm_.c:147
-msgid "LILO with text menu"
-msgstr "LILO sa tekstualnim menijem"
-
-#: ../../any.pm_.c:148 ../../any.pm_.c:159
-msgid "LILO with graphical menu"
-msgstr "LILO sa grafiĨkim menijem"
-
-#: ../../any.pm_.c:151
-msgid "Grub"
-msgstr "Grub"
-
-#: ../../any.pm_.c:155
-msgid "Boot from DOS/Windows (loadlin)"
-msgstr "Bootanje iz DOS/Windowsa (loadlin)"
-
-#: ../../any.pm_.c:157 ../../any.pm_.c:159
-msgid "Yaboot"
-msgstr "Yaboot"
-
-#: ../../any.pm_.c:166 ../../any.pm_.c:198
-msgid "Bootloader main options"
-msgstr "Glavne opcije bootloadera"
-
-#: ../../any.pm_.c:167 ../../any.pm_.c:199
-msgid "Bootloader to use"
-msgstr "Bootloader koji ćete koristiti"
-
-#: ../../any.pm_.c:169
-msgid "Bootloader installation"
-msgstr "Bootloader instalacija"
-
-#: ../../any.pm_.c:171 ../../any.pm_.c:201
-msgid "Boot device"
-msgstr "Boot uređaj"
-
-#: ../../any.pm_.c:172
-msgid "LBA (doesn't work on old BIOSes)"
-msgstr "LBA (ne radi na starim BIOSima)"
-
-#: ../../any.pm_.c:173
-msgid "Compact"
-msgstr "Kompaktno"
-
-#: ../../any.pm_.c:173
-msgid "compact"
-msgstr "kompaktno"
-
-#: ../../any.pm_.c:174 ../../any.pm_.c:298
-msgid "Video mode"
-msgstr "Video mod"
-
-#: ../../any.pm_.c:176
-msgid "Delay before booting default image"
-msgstr "Äekanje prije bootanja default preslike"
-
-#: ../../any.pm_.c:178 ../../any.pm_.c:796
-#: ../../install_steps_interactive.pm_.c:1115 ../../network/modem.pm_.c:48
-#: ../../printerdrake.pm_.c:708 ../../printerdrake.pm_.c:806
-#: ../../standalone/draknet_.c:625
-msgid "Password"
-msgstr "Å ifra"
-
-#: ../../any.pm_.c:179 ../../any.pm_.c:797
-#: ../../install_steps_interactive.pm_.c:1116
-msgid "Password (again)"
-msgstr "Å ifra (ponovo)"
-
-#: ../../any.pm_.c:180
-msgid "Restrict command line options"
-msgstr "OgraniĨi opcije komandne linije"
-
-#: ../../any.pm_.c:180
-msgid "restrict"
-msgstr "ograniĨi"
-
-#: ../../any.pm_.c:182
-msgid "Clean /tmp at each boot"
-msgstr "Äisti /tmp prilikom svakog boota"
-
-#: ../../any.pm_.c:183
-#, c-format
-msgid "Precise RAM size if needed (found %d MB)"
-msgstr "Precizna veliĨina RAMa ako je potrebno (pronađeno %d MB)"
-
-#: ../../any.pm_.c:185
-msgid "Enable multi profiles"
-msgstr "Omogući viÅe profila"
-
-#: ../../any.pm_.c:189
-msgid "Give the ram size in MB"
-msgstr "Navedite veliĨinu rama u MB"
-
-#: ../../any.pm_.c:191
-msgid ""
-"Option ``Restrict command line options'' is of no use without a password"
-msgstr "Opcija ``OgraniĨi opcije komandne linije'' je beskorisna bez Åifre"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../diskdrake/interactive.pm_.c:1135
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "Please try again"
-msgstr "Molimo pokuÅajte ponovo"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "The passwords do not match"
-msgstr "Å ifre se ne poklapaju"
-
-#: ../../any.pm_.c:200
-msgid "Init Message"
-msgstr "Init Poruka"
-
-#: ../../any.pm_.c:202
-msgid "Open Firmware Delay"
-msgstr "Otvori Ĩekanje firmware-a"
-
-#: ../../any.pm_.c:203
-msgid "Kernel Boot Timeout"
-msgstr "Kernel Boot Timeout"
-
-#: ../../any.pm_.c:204
-msgid "Enable CD Boot?"
-msgstr "Omogući boot sa CDa?"
-
-#: ../../any.pm_.c:205
-msgid "Enable OF Boot?"
-msgstr "Omogući boot sa OFa?"
-
-#: ../../any.pm_.c:206
-msgid "Default OS?"
-msgstr "Default OS?"
-
-#: ../../any.pm_.c:240
-msgid ""
-"You decided to install the bootloader on a partition.\n"
-"This implies you already have a bootloader on the hard drive you boot (eg: "
-"System Commander).\n"
-"\n"
-"On which drive are you booting?"
-msgstr ""
-
-#: ../../any.pm_.c:255
-msgid ""
-"Here are the different entries.\n"
-"You can add some more or change the existing ones."
-msgstr ""
-"Navedene su razne stavke.\n"
-"Možete dodati nove ili promjeniti postojeće."
-
-#: ../../any.pm_.c:265 ../../standalone/drakbackup_.c:752
-#: ../../standalone/drakbackup_.c:861 ../../standalone/drakfont_.c:789
-#: ../../standalone/drakfont_.c:826
-msgid "Add"
-msgstr "Dodaj"
-
-#: ../../any.pm_.c:265 ../../any.pm_.c:784 ../../diskdrake/hd_gtk.pm_.c:153
-#: ../../diskdrake/removable.pm_.c:27 ../../diskdrake/smbnfs_gtk.pm_.c:86
-#: ../../interactive_http.pm_.c:153
-msgid "Done"
-msgstr "Gotovo"
-
-#: ../../any.pm_.c:265
-msgid "Modify"
-msgstr "Izmjeni"
-
-#: ../../any.pm_.c:273
-msgid "Which type of entry do you want to add?"
-msgstr "Koju vrstu stavke želite dodati?"
-
-#: ../../any.pm_.c:274 ../../standalone/drakbackup_.c:895
-msgid "Linux"
-msgstr "Linux"
-
-#: ../../any.pm_.c:274
-msgid "Other OS (SunOS...)"
-msgstr "Ostali OSi (SunOS...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (MacOS...)"
-msgstr "Ostali OSi (MacOS...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (windows...)"
-msgstr "Ostali OSi (windows...)"
-
-#: ../../any.pm_.c:294
-msgid "Image"
-msgstr "Preslika"
-
-#: ../../any.pm_.c:295 ../../any.pm_.c:306
-msgid "Root"
-msgstr "Root"
-
-#: ../../any.pm_.c:296 ../../any.pm_.c:325
-msgid "Append"
-msgstr "Append"
-
-#: ../../any.pm_.c:300
-msgid "Initrd"
-msgstr "Initrd"
-
-#: ../../any.pm_.c:301
-msgid "Read-write"
-msgstr "Äitaj-piÅi"
-
-#: ../../any.pm_.c:308
-msgid "Table"
-msgstr "Tabela"
-
-#: ../../any.pm_.c:309
-msgid "Unsafe"
-msgstr "Nesigurno"
-
-#: ../../any.pm_.c:316 ../../any.pm_.c:321 ../../any.pm_.c:324
-msgid "Label"
-msgstr "Labela"
-
-#: ../../any.pm_.c:318 ../../any.pm_.c:329
-msgid "Default"
-msgstr "Default"
-
-#: ../../any.pm_.c:326
-msgid "Initrd-size"
-msgstr "Initrd-veliĨina"
-
-#: ../../any.pm_.c:328
-msgid "NoVideo"
-msgstr "NoVideo"
-
-#: ../../any.pm_.c:336
-msgid "Remove entry"
-msgstr "Ukloni stavku"
-
-#: ../../any.pm_.c:339
-msgid "Empty label not allowed"
-msgstr "Prazna labela nije dozvoljena"
-
-#: ../../any.pm_.c:340
-msgid "You must specify a kernel image"
-msgstr "Morate navesti image kernela"
-
-#: ../../any.pm_.c:340
-msgid "You must specify a root partition"
-msgstr "Morate navesti root particiju"
-
-#: ../../any.pm_.c:341
-msgid "This label is already used"
-msgstr "Ova labela je već u upotrebi"
-
-#: ../../any.pm_.c:656
-#, c-format
-msgid "Found %s %s interfaces"
-msgstr "Pronađeno %s %s interfejsa"
-
-#: ../../any.pm_.c:657
-msgid "Do you have another one?"
-msgstr "Imate li neki drugi?"
-
-#: ../../any.pm_.c:658
-#, c-format
-msgid "Do you have any %s interfaces?"
-msgstr "Imate li ijedan %s interfejs?"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:832 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "No"
-msgstr "Ne"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:831 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "Yes"
-msgstr "Da"
-
-#: ../../any.pm_.c:661
-msgid "See hardware info"
-msgstr "Pogledaj hardware info"
-
-#. -PO: the first %s is the card type (scsi, network, sound,...)
-#. -PO: the second is the vendor+model name
-#: ../../any.pm_.c:695
-#, c-format
-msgid "Installing driver for %s card %s"
-msgstr "Instaliram drajver za %s karticu %s"
-
-#: ../../any.pm_.c:696
-#, c-format
-msgid "(module %s)"
-msgstr "(modul %s)"
-
-#. -PO: the %s is the driver type (scsi, network, sound,...)
-#: ../../any.pm_.c:707
-#, c-format
-msgid "Which %s driver should I try?"
-msgstr "Koji %s drajver ću pokuÅati?"
-
-#: ../../any.pm_.c:715
-#, c-format
-msgid ""
-"In some cases, the %s driver needs to have extra information to work\n"
-"properly, although it normally works fine without. Would you like to "
-"specify\n"
-"extra options for it or allow the driver to probe your machine for the\n"
-"information it needs? Occasionally, probing will hang a computer, but it "
-"should\n"
-"not cause any damage."
-msgstr ""
-"U nekim sluĨajevima, %s drajver treba imati dodatne informacije za\n"
-"ispravan rad, iako on obiĨno radi dobro i bez njih. Želite li navesti neke\n"
-"ekstra opcije za njega ili dozvoliti drajveru da ispita vaŠraĨunar za sve\n"
-"informacije koje mu trebaju? Povremeno, ispitivanje može zaglaviti raĨunar,\n"
-"ali ne bi trebalo izazvati nikakvu Åtetu."
-
-#: ../../any.pm_.c:720
-msgid "Autoprobe"
-msgstr "Ispitivanje"
-
-#: ../../any.pm_.c:720
-msgid "Specify options"
-msgstr "Navedi opcije"
-
-#: ../../any.pm_.c:725
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Note that any address should be entered with the prefix 0x like '0x123'"
-msgstr ""
-"Sada možete navesti opcije za modul %s.\n"
-"Obratite pažnju da adrese trebate unositi sa prefiksom 0x kao npr. '0x123'"
-
-#: ../../any.pm_.c:731
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Options are in format ``name=value name2=value2 ...''.\n"
-"For instance, ``io=0x300 irq=7''"
-msgstr ""
-"Sada možete navesti opcije za modul %s. Opcije su u formatu ``ime=vrijednost "
-"ime2=vrijednost2 ...''.\n"
-"Na primjer, ``io=0x300 irq=7''"
-
-#: ../../any.pm_.c:734
-msgid "Module options:"
-msgstr "Opcije modula"
-
-#: ../../any.pm_.c:745
-#, c-format
-msgid ""
-"Loading module %s failed.\n"
-"Do you want to try again with other parameters?"
-msgstr ""
-"UĨitavanje modula %s nije uspjelo.\n"
-"Želite li probati opet sa drugim parametrima?"
-
-#: ../../any.pm_.c:761
-msgid "access to X programs"
-msgstr "pristup X programima"
-
-#: ../../any.pm_.c:762
-msgid "access to rpm tools"
-msgstr "pristup rpm alatima"
-
-#: ../../any.pm_.c:763
-msgid "allow \"su\""
-msgstr "dozvoli \"su\""
-
-#: ../../any.pm_.c:764
-msgid "access to administrative files"
-msgstr "pristup administrativnim datotekama"
-
-#: ../../any.pm_.c:769
-#, c-format
-msgid "(already added %s)"
-msgstr "(već dodan %s)"
-
-#: ../../any.pm_.c:774
-msgid "This password is too simple"
-msgstr "Ova Åifra je previÅe jednostavna"
-
-#: ../../any.pm_.c:775
-msgid "Please give a user name"
-msgstr "Molimo navedite korisniĨko ime"
-
-#: ../../any.pm_.c:776
-msgid ""
-"The user name must contain only lower cased letters, numbers, `-' and `_'"
-msgstr "KorisniĨko ime smije sadržati samo mala slova, brojeve, `-' i `_'"
-
-#: ../../any.pm_.c:777
-msgid "This user name is already added"
-msgstr "Ovo korisniĨko ime je već dodano"
-
-#: ../../any.pm_.c:781
-msgid "Add user"
-msgstr "Dodaj korisnika"
-
-#: ../../any.pm_.c:782
-#, c-format
-msgid ""
-"Enter a user\n"
-"%s"
-msgstr ""
-"Unesite korisnika\n"
-"%s"
-
-#: ../../any.pm_.c:783
-msgid "Accept user"
-msgstr "Prihvati korisnika"
-
-#: ../../any.pm_.c:794
-msgid "Real name"
-msgstr "Pravo ime"
-
-#: ../../any.pm_.c:795 ../../printerdrake.pm_.c:707
-#: ../../printerdrake.pm_.c:805
-msgid "User name"
-msgstr "KorisniĨko ime"
-
-#: ../../any.pm_.c:798
-msgid "Shell"
-msgstr "Shell"
-
-#: ../../any.pm_.c:800
-msgid "Icon"
-msgstr "Ikona"
-
-#: ../../any.pm_.c:828
-msgid "Autologin"
-msgstr "Autologin"
-
-#: ../../any.pm_.c:829
-msgid ""
-"I can set up your computer to automatically log on one user.\n"
-"Do you want to use this feature?"
-msgstr ""
-"Mogu podesiti vaŠraĨunar da automatski prijavi jednog korisnika.\n"
-"Želite li koristiti ovu mogućnost?"
-
-#: ../../any.pm_.c:833
-msgid "Choose the default user:"
-msgstr "Izaberite default korisnika:"
-
-#: ../../any.pm_.c:834
-msgid "Choose the window manager to run:"
-msgstr "Izaberite window manager koji će se pokretati:"
-
-#: ../../any.pm_.c:849
-msgid "Please choose a language to use."
-msgstr "Molimo izaberite jezik koji ćete koristiti."
-
-#: ../../any.pm_.c:851
-msgid "You can choose other languages that will be available after install"
-msgstr "Možete izabrati i druge jezike koji će biti dostupni nakon instalacije"
-
-#: ../../any.pm_.c:863 ../../install_steps_interactive.pm_.c:719
-#: ../../standalone/drakxtv_.c:54
-msgid "All"
-msgstr "Svi"
-
-#: ../../any.pm_.c:955
-msgid "Allow all users"
-msgstr "Dozvoli svim korisnicima"
-
-#: ../../any.pm_.c:955 ../../install_steps_interactive.pm_.c:521
-msgid "Custom"
-msgstr "RuĨno izaberi"
-
-#: ../../any.pm_.c:955
-msgid "No sharing"
-msgstr "Bez dijeljenja"
-
-#: ../../any.pm_.c:965 ../../network/smbnfs.pm_.c:45
-#, c-format
-msgid "The package %s needs to be installed. Do you want to install it?"
-msgstr "Paket %s treba biti instaliran. Da li ga želite instalirati?"
-
-#: ../../any.pm_.c:968
-msgid "You can export using NFS or Samba. Which one do you want"
-msgstr "Možete eksportovati koristeći NFS ili Sambu. Koji želite"
-
-#: ../../any.pm_.c:976 ../../network/smbnfs.pm_.c:49
-#, c-format
-msgid "Mandatory package %s is missing"
-msgstr "Nedostaje obavezan paket %s"
-
-#: ../../any.pm_.c:982
-msgid ""
-"Do you want to allow users to export some directories in their home?\n"
-"Allowing this will permit users to simply click on \"Share\" in konqueror "
-"and nautilus.\n"
-"\n"
-"\"Custom\" permit a per-user granularity.\n"
-msgstr ""
-
-#: ../../any.pm_.c:996 ../../bootlook.pm_.c:161
-#: ../../diskdrake/smbnfs_gtk.pm_.c:85 ../../install_steps_gtk.pm_.c:464
-#: ../../install_steps_gtk.pm_.c:522 ../../install_steps_interactive.pm_.c:594
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_stdio.pm_.c:141
-#: ../../my_gtk.pm_.c:687 ../../my_gtk.pm_.c:690 ../../my_gtk.pm_.c:1019
-#: ../../network/netconnect.pm_.c:47 ../../printerdrake.pm_.c:1586
-#: ../../standalone/drakautoinst_.c:204 ../../standalone/drakbackup_.c:2264
-#: ../../standalone/drakbackup_.c:2289 ../../standalone/drakbackup_.c:2310
-#: ../../standalone/drakbackup_.c:2331 ../../standalone/drakbackup_.c:2349
-#: ../../standalone/drakbackup_.c:2397 ../../standalone/drakbackup_.c:2417
-#: ../../standalone/drakbackup_.c:2436 ../../standalone/drakfont_.c:767
-#: ../../standalone/drakgw_.c:721 ../../standalone/draknet_.c:116
-#: ../../standalone/draknet_.c:148 ../../standalone/draknet_.c:290
-#: ../../standalone/draknet_.c:538 ../../standalone/draknet_.c:680
-#: ../../standalone/logdrake_.c:225 ../../standalone/logdrake_.c:512
-#: ../../standalone/tinyfirewall_.c:65
-msgid "Cancel"
-msgstr "Odustani"
-
-#: ../../any.pm_.c:996
-msgid "Launch userdrake"
-msgstr "Pokreni userdrake"
-
-#: ../../any.pm_.c:998
-msgid ""
-"The per-user sharing uses the group \"fileshare\". \n"
-"You can use userdrake to add a user in this group."
-msgstr ""
-"Dijeljenje po-korisniku koristi grupu \"fileshare\". \n"
-"Možete dodavati korisnike u ovu grupu pomoću userdrake-a."
-
-#: ../../any.pm_.c:1035
-msgid "Welcome To Crackers"
-msgstr "DobrodoÅli u Crackers"
-
-#: ../../any.pm_.c:1036
-msgid "Poor"
-msgstr "LoÅ"
-
-#: ../../any.pm_.c:1037 ../../mouse.pm_.c:31
-msgid "Standard"
-msgstr "Standard"
-
-#: ../../any.pm_.c:1038
-msgid "High"
-msgstr "Visok"
-
-#: ../../any.pm_.c:1039
-msgid "Higher"
-msgstr "ViÅi"
-
-#: ../../any.pm_.c:1040
-msgid "Paranoid"
-msgstr "ParanoiĨan"
-
-#: ../../any.pm_.c:1043
-msgid ""
-"This level is to be used with care. It makes your system more easy to use,\n"
-"but very sensitive: it must not be used for a machine connected to others\n"
-"or to the Internet. There is no password access."
-msgstr ""
-"Ovaj nivo treba koristiti pažljivo. On Ĩini vaÅ sistem lakÅim za upotrebu,\n"
-"ali vrlo osjetljivim: ne smije biti koriÅten za raĨunar koji je spojen na\n"
-"druge ili na Internet. Nema pristupa Åifrom."
-
-#: ../../any.pm_.c:1046
-msgid ""
-"Password are now enabled, but use as a networked computer is still not "
-"recommended."
-msgstr ""
-"Å ifra je sada aktivirana, ali koriÅtenje za mrežni raĨunar joÅ nije "
-"preporuĨeno."
-
-#: ../../any.pm_.c:1047
-msgid ""
-"This is the standard security recommended for a computer that will be used "
-"to connect to the Internet as a client."
-msgstr ""
-"Ovo je standardna sigurnost koja je preporuĨena za raĨunar koji će biti "
-"koriÅten za spajanje na Internet kao klijent."
-
-#: ../../any.pm_.c:1048
-msgid ""
-"There are already some restrictions, and more automatic checks are run every "
-"night."
-msgstr ""
-"Već postoje odreÄ‘ena ograniĨenja, a viÅe automatskih provjera se pokreće "
-"svaku noć."
-
-#: ../../any.pm_.c:1049
-msgid ""
-"With this security level, the use of this system as a server becomes "
-"possible.\n"
-"The security is now high enough to use the system as a server which accept\n"
-"connections from many clients. Note: if your machine is only a client on the "
-"Internet, you should better choose a lower level."
-msgstr ""
-"Sa ovim sigurnosnim nivoom, postaje moguće koristiti ovaj sistem kao "
-"server.\n"
-"Sigurnost je sada dovoljno visoka za upotrebu sistema kao servera koji "
-"prima\n"
-"konekcije sa mnogo klijenata. Napomena: ako je vaŠraĨunar samo klijent na "
-"Internetu, možda je bolje da izaberete niži nivo."
-
-#: ../../any.pm_.c:1052
-msgid ""
-"Based on the previous level, but the system is entirely closed.\n"
-"Security features are at their maximum."
-msgstr ""
-"Baziran na prethodnom nivou, ali sada je sistem potpuno zatvoren.\n"
-"Sigurnosne osobine na maksimumu."
-
-#: ../../any.pm_.c:1058
-msgid "Choose security level"
-msgstr "Izaberite nivo sigurnosti"
-
-#: ../../any.pm_.c:1061
-msgid "Security level"
-msgstr "Nivo sigurnosti"
-
-#: ../../any.pm_.c:1063
-msgid "Use libsafe for servers"
-msgstr "Koristi libsafe za servere"
-
-#: ../../any.pm_.c:1064
-msgid ""
-"A library which defends against buffer overflow and format string attacks."
-msgstr ""
-"Biblioteka koja brani od napada \"buffer overflow\" i \"format string\"."
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#: ../../bootloader.pm_.c:355
-#, c-format
-msgid ""
-"Welcome to %s the operating system chooser!\n"
-"\n"
-"Choose an operating system in the list above or\n"
-"wait %d seconds for default boot.\n"
-"\n"
-msgstr ""
-"Dobro doÅli u %s izbornik operativnog sistema!\n"
-"\n"
-"Izaberite operativni sistem na listi gore ili\n"
-"saĨekajte %d sekundi do default boota.\n"
-"\n"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:928
-msgid "Welcome to GRUB the operating system chooser!"
-msgstr "Dobro doÅli u GRUB izbornik operativnog sistema!"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:931
-#, c-format
-msgid "Use the %c and %c keys for selecting which entry is highlighted."
-msgstr "Koristite tipke %c i %c za izbor jedne od stavki."
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:934
-msgid "Press enter to boot the selected OS, 'e' to edit the"
-msgstr "Pritisnite enter za bootanje izabranog OSa, 'e' za editovanje"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:937
-msgid "commands before booting, or 'c' for a command-line."
-msgstr "komandi prije bootanja, ili 'c' za komandnu liniju."
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:940
-#, c-format
-msgid "The highlighted entry will be booted automatically in %d seconds."
-msgstr "Osvjetljene stavke će biti bootane automatski za %d sekundi."
-
-#: ../../bootloader.pm_.c:944
-msgid "not enough room in /boot"
-msgstr "nema dovoljno prostora u /boot"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#. -PO: so you may need to put them in English or in a different language if MS-windows doesn't exist in your language
-#: ../../bootloader.pm_.c:1044
-msgid "Desktop"
-msgstr "Desktop"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#: ../../bootloader.pm_.c:1046
-msgid "Start Menu"
-msgstr "Start Menu"
-
-#: ../../bootloader.pm_.c:1065
-#, c-format
-msgid "You can't install the bootloader on a %s partition\n"
-msgstr "Ne možete instalirati bootloader na %s particiju\n"
-
-#: ../../bootlook.pm_.c:46
-msgid "no help implemented yet.\n"
-msgstr "pomoć joŠnije implementirana.\n"
-
-#: ../../bootlook.pm_.c:62
-msgid "Boot Style Configuration"
-msgstr "Konfiguracija stila boota"
-
-#: ../../bootlook.pm_.c:79 ../../standalone/logdrake_.c:101
-msgid "/_File"
-msgstr "/_Datoteka"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "/File/_Quit"
-msgstr "/Datoteka/_Izlaz"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "<control>Q"
-msgstr "<control>I"
-
-#: ../../bootlook.pm_.c:91
-msgid "NewStyle Categorizing Monitor"
-msgstr "NewStyle Categorizing Monitor"
-
-#: ../../bootlook.pm_.c:92
-msgid "NewStyle Monitor"
-msgstr "NewStyle Monitor"
-
-#: ../../bootlook.pm_.c:93
-msgid "Traditional Monitor"
-msgstr "Tradicionalni Monitor"
-
-#: ../../bootlook.pm_.c:94
-msgid "Traditional Gtk+ Monitor"
-msgstr "Tradicionalni Gtk+ Monitor"
-
-#: ../../bootlook.pm_.c:95
-msgid "Launch Aurora at boot time"
-msgstr "Pokreni Aurora-u prilikom boota"
-
-#: ../../bootlook.pm_.c:98
-msgid "Lilo/grub mode"
-msgstr "Lilo/grub mod"
-
-#: ../../bootlook.pm_.c:98
-msgid "Yaboot mode"
-msgstr "Yaboot mod"
-
-#: ../../bootlook.pm_.c:104
-#, c-format
-msgid ""
-"You are currently using %s as Boot Manager.\n"
-"Click on Configure to launch the setup wizard."
-msgstr ""
-"Trenutno koristite %s kao boot manager.\n"
-"Kliknite na KonfiguriÅi kako bi se pokrenuo Ĩarobnjak za podeÅavanje."
-
-#: ../../bootlook.pm_.c:106 ../../standalone/drakbackup_.c:1467
-#: ../../standalone/drakbackup_.c:1478 ../../standalone/drakgw_.c:715
-#: ../../standalone/tinyfirewall_.c:59
-msgid "Configure"
-msgstr "KonfiguriÅi"
-
-#: ../../bootlook.pm_.c:141
-msgid "System mode"
-msgstr "Sistem mod"
-
-#: ../../bootlook.pm_.c:143
-msgid "Launch the X-Window system at start"
-msgstr "Pokreni X-Window sistem na startu"
-
-#: ../../bootlook.pm_.c:148
-msgid "No, I don't want autologin"
-msgstr "Ne, ne želim da se autologiram"
-
-#: ../../bootlook.pm_.c:150
-msgid "Yes, I want autologin with this (user, desktop)"
-msgstr "Da, želim da se autologiram sa ovim (korisnik, desktop)"
-
-#: ../../bootlook.pm_.c:160 ../../network/netconnect.pm_.c:102
-#: ../../standalone/drakbackup_.c:2441 ../../standalone/drakbackup_.c:3345
-#: ../../standalone/drakfont_.c:532 ../../standalone/drakfont_.c:655
-#: ../../standalone/drakfont_.c:719 ../../standalone/drakfont_.c:765
-#: ../../standalone/draknet_.c:109 ../../standalone/draknet_.c:141
-#: ../../standalone/draknet_.c:297 ../../standalone/draknet_.c:436
-#: ../../standalone/draknet_.c:522 ../../standalone/draknet_.c:565
-#: ../../standalone/draknet_.c:666 ../../standalone/logdrake_.c:505
-msgid "OK"
-msgstr "OK"
-
-#: ../../bootlook.pm_.c:229
-#, c-format
-msgid "can not open /etc/inittab for reading: %s"
-msgstr "ne mogu otvoriti /etc/inittab za Ĩitanje: %s"
-
-#: ../../common.pm_.c:94
-msgid "GB"
-msgstr "GB"
-
-#: ../../common.pm_.c:94
-msgid "KB"
-msgstr "KB"
-
-#: ../../common.pm_.c:94
-msgid "MB"
-msgstr "MB"
-
-#: ../../common.pm_.c:102
-msgid "TB"
-msgstr "TB"
-
-#: ../../common.pm_.c:110
-#, c-format
-msgid "%d minutes"
-msgstr "%d minuta"
-
-#: ../../common.pm_.c:112
-msgid "1 minute"
-msgstr "1 minuta"
-
-#: ../../common.pm_.c:114
-#, c-format
-msgid "%d seconds"
-msgstr "%d sekundi"
-
-#: ../../common.pm_.c:159
-msgid "Can't make screenshots before partitioning"
-msgstr "Ne mogu napraviti screenshot prije particioniranja"
-
-#: ../../common.pm_.c:166
-#, c-format
-msgid "Screenshots will be available after install in %s"
-msgstr "Screenshotovi će biti dostupni nakon Åto instalirate u %s"
-
-#: ../../crypto.pm_.c:12 ../../crypto.pm_.c:26 ../../standalone/drakxtv_.c:50
-msgid "France"
-msgstr "Francuska"
-
-#: ../../crypto.pm_.c:13
-msgid "Costa Rica"
-msgstr "Kostarika"
-
-#: ../../crypto.pm_.c:14 ../../crypto.pm_.c:27
-msgid "Belgium"
-msgstr "Belgija"
-
-#: ../../crypto.pm_.c:15 ../../crypto.pm_.c:28
-msgid "Czech Republic"
-msgstr "ÄeÅka"
-
-#: ../../crypto.pm_.c:16 ../../crypto.pm_.c:29
-msgid "Germany"
-msgstr "NjemaĨka"
-
-#: ../../crypto.pm_.c:17 ../../crypto.pm_.c:30
-msgid "Greece"
-msgstr "GrĨka"
-
-#: ../../crypto.pm_.c:18 ../../crypto.pm_.c:31
-msgid "Norway"
-msgstr "NorveÅka"
-
-#: ../../crypto.pm_.c:19 ../../crypto.pm_.c:32
-msgid "Sweden"
-msgstr "Å vedska"
-
-#: ../../crypto.pm_.c:20 ../../crypto.pm_.c:34
-msgid "Netherlands"
-msgstr "Nizozemska"
-
-#: ../../crypto.pm_.c:21 ../../crypto.pm_.c:35 ../../standalone/drakxtv_.c:50
-msgid "Italy"
-msgstr "Italija"
-
-#: ../../crypto.pm_.c:22 ../../crypto.pm_.c:36
-msgid "Austria"
-msgstr "Austrija"
-
-#: ../../crypto.pm_.c:33 ../../crypto.pm_.c:67
-msgid "United States"
-msgstr "SAD"
-
-#: ../../diskdrake/hd_gtk.pm_.c:94
-msgid "Please make a backup of your data first"
-msgstr "Molimo najprije napravite backup vaÅih podataka"
-
-#: ../../diskdrake/hd_gtk.pm_.c:94 ../../diskdrake/interactive.pm_.c:891
-#: ../../diskdrake/interactive.pm_.c:900 ../../diskdrake/interactive.pm_.c:954
-msgid "Read carefully!"
-msgstr "ProĨitajte pažljivo!"
-
-#: ../../diskdrake/hd_gtk.pm_.c:97
-msgid ""
-"If you plan to use aboot, be carefull to leave a free space (2048 sectors is "
-"enough)\n"
-"at the beginning of the disk"
-msgstr ""
-"Ako planirate koristiti aboot, budite pažljivi i ostavite slobodnog prostora "
-"(2048 sektora je dovoljno)\n"
-"na poĨetku diska"
-
-#: ../../diskdrake/hd_gtk.pm_.c:116 ../../diskdrake/interactive.pm_.c:325
-#: ../../diskdrake/interactive.pm_.c:340 ../../diskdrake/smbnfs_gtk.pm_.c:45
-#: ../../install_steps.pm_.c:75 ../../install_steps_interactive.pm_.c:67
-#: ../../install_steps_interactive.pm_.c:356 ../../interactive_http.pm_.c:119
-#: ../../interactive_http.pm_.c:120 ../../standalone/diskdrake_.c:84
-msgid "Error"
-msgstr "GreÅka"
-
-#: ../../diskdrake/hd_gtk.pm_.c:151
-msgid "Wizard"
-msgstr "Äarobnjak"
-
-#: ../../diskdrake/hd_gtk.pm_.c:181 ../../diskdrake/removable_gtk.pm_.c:24
-msgid "Choose action"
-msgstr "Izaberi akciju"
-
-#: ../../diskdrake/hd_gtk.pm_.c:185
-msgid ""
-"You have one big FAT partition\n"
-"(generally used by MicroSoft Dos/Windows).\n"
-"I suggest you first resize that partition\n"
-"(click on it, then click on \"Resize\")"
-msgstr ""
-"Imate jednu veliku FAT particiju\n"
-"(koju najvjerovatnije koristi MicroSoft Dos/Windows).\n"
-"Predlažem da najprije promjenite veliĨinu te particije\n"
-"(kliknite na nju, zatim na \"Promjeni veliĨinu\")"
-
-#: ../../diskdrake/hd_gtk.pm_.c:188
-msgid "Please click on a partition"
-msgstr "Molimo kliknite na particiju"
-
-#: ../../diskdrake/hd_gtk.pm_.c:202 ../../diskdrake/smbnfs_gtk.pm_.c:67
-#: ../../install_steps_gtk.pm_.c:523
-msgid "Details"
-msgstr "Detalji"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Ext2"
-msgstr "Ext2"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "FAT"
-msgstr "FAT"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "HFS"
-msgstr "HFS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Journalised FS"
-msgstr "Journalised FS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "SunOS"
-msgstr "SunOS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Swap"
-msgstr "Swap"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../diskdrake/interactive.pm_.c:1050
-msgid "Empty"
-msgstr "Prazno"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../install_steps_gtk.pm_.c:379
-#: ../../install_steps_gtk.pm_.c:439 ../../mouse.pm_.c:162
-#: ../../services.pm_.c:157 ../../standalone/drakbackup_.c:944
-msgid "Other"
-msgstr "Ostalo"
-
-#: ../../diskdrake/hd_gtk.pm_.c:325
-msgid "Filesystem types:"
-msgstr "Tipovi file sistema:"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:386
-msgid "Create"
-msgstr "Kreiraj"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:365
-#: ../../diskdrake/interactive.pm_.c:499 ../../diskdrake/removable.pm_.c:26
-#: ../../diskdrake/removable.pm_.c:49 ../../diskdrake/removable_gtk.pm_.c:17
-msgid "Type"
-msgstr "Tip"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/hd_gtk.pm_.c:344
-#, c-format
-msgid "Use ``%s'' instead"
-msgstr "Koristite ``%s'' umjesto toga"
-
-#: ../../diskdrake/hd_gtk.pm_.c:344 ../../diskdrake/interactive.pm_.c:374
-msgid "Delete"
-msgstr "ObriÅi"
-
-#: ../../diskdrake/hd_gtk.pm_.c:348
-msgid "Use ``Unmount'' first"
-msgstr "Najprije koristite ``Demontiraj''"
-
-#: ../../diskdrake/hd_gtk.pm_.c:349 ../../diskdrake/interactive.pm_.c:491
-#, c-format
-msgid ""
-"After changing type of partition %s, all data on this partition will be lost"
-msgstr ""
-"Nakon promjene tipa particije %s, svi podaci na ovoj particiji će biti "
-"izgubljeni"
-
-#: ../../diskdrake/interactive.pm_.c:171
-msgid "Choose a partition"
-msgstr "Izaberi particiju"
-
-#: ../../diskdrake/interactive.pm_.c:171
-msgid "Choose another partition"
-msgstr "Izaberi drugu particiju"
-
-#: ../../diskdrake/interactive.pm_.c:196
-msgid "Exit"
-msgstr "Izlaz"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to expert mode"
-msgstr "Prebaci u ekspertni mod"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to normal mode"
-msgstr "Prebaci u normalni mod"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Undo"
-msgstr "PoniÅti"
-
-#: ../../diskdrake/interactive.pm_.c:237
-msgid "Continue anyway?"
-msgstr "Svejedno nastavljate?"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without saving"
-msgstr "Izlaz bez spaÅavanja"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without writing the partition table?"
-msgstr "Izlazite bez pisanja tabele particija?"
-
-#: ../../diskdrake/interactive.pm_.c:247
-msgid "Do you want to save /etc/fstab modifications"
-msgstr "Želite li spasiti izmjene /etc/fstab"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Auto allocate"
-msgstr "Auto alokacija"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Clear all"
-msgstr "ObriÅi sve"
-
-#: ../../diskdrake/interactive.pm_.c:262
-msgid "Hard drive information"
-msgstr "Informacije o hard disku"
-
-#: ../../diskdrake/interactive.pm_.c:283
-msgid "All primary partitions are used"
-msgstr "Sve primarne particije su u upotrebi"
-
-#: ../../diskdrake/interactive.pm_.c:284
-msgid "I can't add any more partition"
-msgstr "Ne mogu dodati viÅe particija"
-
-#: ../../diskdrake/interactive.pm_.c:285
-msgid ""
-"To have more partitions, please delete one to be able to create an extended "
-"partition"
-msgstr ""
-"Da biste imali joÅ particija, molimo pobriÅite jednu kako bi se mogla "
-"kreirati extended particija"
-
-#: ../../diskdrake/interactive.pm_.c:295
-msgid "Save partition table"
-msgstr "Snimi tabelu particija"
-
-#: ../../diskdrake/interactive.pm_.c:296
-msgid "Restore partition table"
-msgstr "Vrati tabelu particija"
-
-#: ../../diskdrake/interactive.pm_.c:297
-msgid "Rescue partition table"
-msgstr "Spasi tabelu particija"
-
-#: ../../diskdrake/interactive.pm_.c:299
-msgid "Reload partition table"
-msgstr "Ponovo uĨitaj tabelu particija"
-
-#: ../../diskdrake/interactive.pm_.c:304
-msgid "Removable media automounting"
-msgstr "Automatsko montiranje izmjenjivog medija"
-
-#: ../../diskdrake/interactive.pm_.c:313 ../../diskdrake/interactive.pm_.c:333
-msgid "Select file"
-msgstr "Izaberite datoteku"
-
-#: ../../diskdrake/interactive.pm_.c:320
-msgid ""
-"The backup partition table has not the same size\n"
-"Still continue?"
-msgstr ""
-"Backup tabela particija nema istu veliĨinu\n"
-"Ipak nastavljate?"
-
-#: ../../diskdrake/interactive.pm_.c:334
-msgid "Warning"
-msgstr "Upozorenje"
-
-#: ../../diskdrake/interactive.pm_.c:335
-msgid ""
-"Insert a floppy in drive\n"
-"All data on this floppy will be lost"
-msgstr ""
-"Ubacite disketu u jedinicu\n"
-"Svi podaci na toj disketi će biti izgubljeni"
-
-#: ../../diskdrake/interactive.pm_.c:346
-msgid "Trying to rescue partition table"
-msgstr "PokuÅavam da spasim tabelu particija"
-
-#: ../../diskdrake/interactive.pm_.c:352
-msgid "Detailed information"
-msgstr "Detaljne informacije"
-
-#: ../../diskdrake/interactive.pm_.c:364 ../../diskdrake/interactive.pm_.c:534
-#: ../../diskdrake/interactive.pm_.c:554 ../../diskdrake/removable.pm_.c:24
-#: ../../diskdrake/removable_gtk.pm_.c:15 ../../diskdrake/smbnfs_gtk.pm_.c:83
-msgid "Mount point"
-msgstr "TaĨka montiranja"
-
-#: ../../diskdrake/interactive.pm_.c:366 ../../diskdrake/removable.pm_.c:25
-#: ../../diskdrake/removable_gtk.pm_.c:16 ../../diskdrake/smbnfs_gtk.pm_.c:84
-msgid "Options"
-msgstr "Opcije"
-
-#: ../../diskdrake/interactive.pm_.c:367 ../../diskdrake/interactive.pm_.c:621
-msgid "Resize"
-msgstr "Promjeni veliĨinu"
-
-#: ../../diskdrake/interactive.pm_.c:368 ../../diskdrake/interactive.pm_.c:674
-msgid "Move"
-msgstr "PremjeÅtanje"
-
-#: ../../diskdrake/interactive.pm_.c:369
-msgid "Format"
-msgstr "Formatiraj"
-
-#: ../../diskdrake/interactive.pm_.c:370 ../../diskdrake/smbnfs_gtk.pm_.c:80
-msgid "Mount"
-msgstr "Montiraj"
-
-#: ../../diskdrake/interactive.pm_.c:371
-msgid "Add to RAID"
-msgstr "Dodaj na RAID"
-
-#: ../../diskdrake/interactive.pm_.c:372
-msgid "Add to LVM"
-msgstr "Dodaj na LVM"
-
-#: ../../diskdrake/interactive.pm_.c:373 ../../diskdrake/smbnfs_gtk.pm_.c:79
-msgid "Unmount"
-msgstr "Demontiraj"
-
-#: ../../diskdrake/interactive.pm_.c:375
-msgid "Remove from RAID"
-msgstr "Ukloni sa RAIDa"
-
-#: ../../diskdrake/interactive.pm_.c:376
-msgid "Remove from LVM"
-msgstr "Ukloni sa LVMa"
-
-#: ../../diskdrake/interactive.pm_.c:377
-msgid "Modify RAID"
-msgstr "Modificiraj RAID"
-
-#: ../../diskdrake/interactive.pm_.c:378
-msgid "Use for loopback"
-msgstr "Koristi za loopback"
-
-#: ../../diskdrake/interactive.pm_.c:417
-msgid "Create a new partition"
-msgstr "Napravi novu particiju"
-
-#: ../../diskdrake/interactive.pm_.c:420
-msgid "Start sector: "
-msgstr "PoĨetni sektor: "
-
-#: ../../diskdrake/interactive.pm_.c:422 ../../diskdrake/interactive.pm_.c:773
-msgid "Size in MB: "
-msgstr "VeliĨina u MB: "
-
-#: ../../diskdrake/interactive.pm_.c:423 ../../diskdrake/interactive.pm_.c:774
-msgid "Filesystem type: "
-msgstr "Tip datoteĨnog sistema: "
-
-#: ../../diskdrake/interactive.pm_.c:424
-#: ../../diskdrake/interactive.pm_.c:1034
-#: ../../diskdrake/interactive.pm_.c:1108
-msgid "Mount point: "
-msgstr "TaĨka montiranja: "
-
-#: ../../diskdrake/interactive.pm_.c:428
-msgid "Preference: "
-msgstr "Preference: "
-
-#: ../../diskdrake/interactive.pm_.c:472
-msgid "Remove the loopback file?"
-msgstr "Ukloniti loopback datoteku?"
-
-#: ../../diskdrake/interactive.pm_.c:497
-msgid "Change partition type"
-msgstr "Izmjena tipa particije"
-
-#: ../../diskdrake/interactive.pm_.c:498 ../../diskdrake/removable.pm_.c:48
-msgid "Which filesystem do you want?"
-msgstr "Koji datoteĨni sistem želite?"
-
-#: ../../diskdrake/interactive.pm_.c:502
-msgid "Switching from ext2 to ext3"
-msgstr "Prebacujem sa ext2 na ext3"
-
-#: ../../diskdrake/interactive.pm_.c:532
-#, c-format
-msgid "Where do you want to mount loopback file %s?"
-msgstr "Gdje želite montirati loopback datoteku %s?"
-
-#: ../../diskdrake/interactive.pm_.c:533 ../../diskdrake/interactive.pm_.c:553
-#, c-format
-msgid "Where do you want to mount device %s?"
-msgstr "Gdje želite montirati uređaj %s?"
-
-#: ../../diskdrake/interactive.pm_.c:539
-msgid ""
-"Can't unset mount point as this partition is used for loop back.\n"
-"Remove the loopback first"
-msgstr ""
-"Ne mogu izmjeniti taĨku montiranja jer se ova particija koristi za "
-"loopback.\n"
-"Najprije uklonite loopback"
-
-#: ../../diskdrake/interactive.pm_.c:577
-msgid "Computing FAT filesystem bounds"
-msgstr "IzraĨunavam granice FAT filesistema"
-
-#: ../../diskdrake/interactive.pm_.c:577 ../../diskdrake/interactive.pm_.c:636
-#: ../../install_interactive.pm_.c:130
-msgid "Resizing"
-msgstr "Mijenjam veliĨinu"
-
-#: ../../diskdrake/interactive.pm_.c:609
-msgid "This partition is not resizeable"
-msgstr "Ovoj particiji ne možete mijenjati veliĨinu"
-
-#: ../../diskdrake/interactive.pm_.c:614
-msgid "All data on this partition should be backed-up"
-msgstr "Svi podaci na toj particiji bi trebali biti backupovani"
-
-#: ../../diskdrake/interactive.pm_.c:616
-#, c-format
-msgid "After resizing partition %s, all data on this partition will be lost"
-msgstr ""
-"Nakon promjene veliĨine particije %s, svi podaci na njoj će biti izgubljeni"
-
-#: ../../diskdrake/interactive.pm_.c:621
-msgid "Choose the new size"
-msgstr "Izaberite novu veliĨinu"
-
-#: ../../diskdrake/interactive.pm_.c:622
-msgid "New size in MB: "
-msgstr "Nova veliĨina u MB: "
-
-#: ../../diskdrake/interactive.pm_.c:675
-msgid "Which disk do you want to move it to?"
-msgstr "Na koji disk je želite premjestiti?"
-
-#: ../../diskdrake/interactive.pm_.c:676
-msgid "Sector"
-msgstr "Sektor"
-
-#: ../../diskdrake/interactive.pm_.c:677
-msgid "Which sector do you want to move it to?"
-msgstr "Na koji sektor je želite premjestiti?"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving"
-msgstr "PremjeÅtam"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving partition..."
-msgstr "PremjeÅtam particiju..."
-
-#: ../../diskdrake/interactive.pm_.c:697
-msgid "Choose an existing RAID to add to"
-msgstr "Izaberite postojeći RAID na koji ćete dodati"
-
-#: ../../diskdrake/interactive.pm_.c:698 ../../diskdrake/interactive.pm_.c:716
-msgid "new"
-msgstr "novi"
-
-#: ../../diskdrake/interactive.pm_.c:714
-msgid "Choose an existing LVM to add to"
-msgstr "Izaberite postojeći LVM na koji ćete dodati"
-
-#: ../../diskdrake/interactive.pm_.c:719
-msgid "LVM name?"
-msgstr "Naziv LVMa?"
-
-#: ../../diskdrake/interactive.pm_.c:759
-msgid "This partition can't be used for loopback"
-msgstr "Ova particija se ne može koristiti za loopback"
-
-#: ../../diskdrake/interactive.pm_.c:771
-msgid "Loopback"
-msgstr "Loopback"
-
-#: ../../diskdrake/interactive.pm_.c:772
-msgid "Loopback file name: "
-msgstr "Naziv loopback datoteke: "
-
-#: ../../diskdrake/interactive.pm_.c:777
-msgid "Give a file name"
-msgstr "Dajte naziv datoteke"
-
-#: ../../diskdrake/interactive.pm_.c:780
-msgid "File already used by another loopback, choose another one"
-msgstr "Datoteku već koristi drugi loopback, izaberite drugo ime"
-
-#: ../../diskdrake/interactive.pm_.c:781
-msgid "File already exists. Use it?"
-msgstr "Datoteka već postoji. Želite li je koristiti?"
-
-#: ../../diskdrake/interactive.pm_.c:804
-msgid "Mount options"
-msgstr "Opcije montiranja"
-
-#: ../../diskdrake/interactive.pm_.c:811
-msgid "Various"
-msgstr "Razni"
-
-#: ../../diskdrake/interactive.pm_.c:874
-msgid "device"
-msgstr "uređaj"
-
-#: ../../diskdrake/interactive.pm_.c:875
-msgid "level"
-msgstr "nivo"
-
-#: ../../diskdrake/interactive.pm_.c:876
-msgid "chunk size"
-msgstr "veliĨina chunka"
-
-#: ../../diskdrake/interactive.pm_.c:891
-msgid "Be careful: this operation is dangerous."
-msgstr "Budite oprezni: ova operacija je opasna"
-
-#: ../../diskdrake/interactive.pm_.c:906
-msgid "What type of partitioning?"
-msgstr "Koju vrstu particioniranja?"
-
-#: ../../diskdrake/interactive.pm_.c:924
-msgid ""
-"Sorry I won't accept to create /boot so far onto the drive (on a cylinder > "
-"1024).\n"
-"Either you use LILO and it won't work, or you don't use LILO and you don't "
-"need /boot"
-msgstr ""
-"Žalim, ali ipak neću prihvatiti kreiranje /boot particije ovdje (na cilindru "
-">1024).\n"
-"Ili ćete koristiti LILO i stvar neće raditi, ili nećete koristiti LILO pa "
-"vam ne treba ni /boot"
-
-#: ../../diskdrake/interactive.pm_.c:928
-msgid ""
-"The partition you've selected to add as root (/) is physically located "
-"beyond\n"
-"the 1024th cylinder of the hard drive, and you have no /boot partition.\n"
-"If you plan to use the LILO boot manager, be careful to add a /boot partition"
-msgstr ""
-"Particija koju ste izabrali da dodate kao root (/) je fiziĨki locirana "
-"iznad\n"
-"1024og cilindra hard diska, tako da nemate /boot particiju.\n"
-"Ako planirate koristiti LILO boot manager, pazite da dodate /boot particiju"
-
-#: ../../diskdrake/interactive.pm_.c:934
-msgid ""
-"You've selected a software RAID partition as root (/).\n"
-"No bootloader is able to handle this without a /boot partition.\n"
-"So be careful to add a /boot partition"
-msgstr ""
-"Izabrali ste softversku RAID particiju kao root (/).\n"
-"Nijedan bootloader nije u mogućnosti da rukuje sa ovim bez /boot particije.\n"
-"Pazite da dodate /boot particiju"
-
-#: ../../diskdrake/interactive.pm_.c:954
-#, c-format
-msgid "Partition table of drive %s is going to be written to disk!"
-msgstr "Tabela particija za uređaj %s će biti zapisana na disk!"
-
-#: ../../diskdrake/interactive.pm_.c:958
-msgid "You'll need to reboot before the modification can take place"
-msgstr ""
-"Biće potrebno da rebootate prije nego Åto izmjene mogu stupiti na snagu"
-
-#: ../../diskdrake/interactive.pm_.c:969
-#, c-format
-msgid "After formatting partition %s, all data on this partition will be lost"
-msgstr ""
-"Nakon formatiranja particije %s, svi podaci na toj particiji će biti "
-"izgubljeni"
-
-#: ../../diskdrake/interactive.pm_.c:971
-msgid "Formatting"
-msgstr "Formatiram"
-
-#: ../../diskdrake/interactive.pm_.c:972
-#, c-format
-msgid "Formatting loopback file %s"
-msgstr "Formatiram loopback datoteku %s"
-
-#: ../../diskdrake/interactive.pm_.c:973
-#: ../../install_steps_interactive.pm_.c:465
-#, c-format
-msgid "Formatting partition %s"
-msgstr "Formatiram particiju %s"
-
-#: ../../diskdrake/interactive.pm_.c:984
-msgid "Hide files"
-msgstr "Sakrij datoteke"
-
-#: ../../diskdrake/interactive.pm_.c:984
-msgid "Move files to the new partition"
-msgstr "Prebaci datoteke na novu particiju"
-
-#: ../../diskdrake/interactive.pm_.c:985
-#, c-format
-msgid ""
-"Directory %s already contain some data\n"
-"(%s)"
-msgstr ""
-"Direktorij %s već sadrži neke podatke\n"
-"(%s)"
-
-#: ../../diskdrake/interactive.pm_.c:996
-msgid "Moving files to the new partition"
-msgstr "PremjeÅtam datoteke na novu particiju"
-
-#: ../../diskdrake/interactive.pm_.c:1000
-#, c-format
-msgid "Copying %s"
-msgstr "Kopiram %s"
-
-#: ../../diskdrake/interactive.pm_.c:1004
-#, c-format
-msgid "Removing %s"
-msgstr "Uklanjam %s"
-
-#: ../../diskdrake/interactive.pm_.c:1014
-#, c-format
-msgid "partition %s is now known as %s"
-msgstr "particija %s je od sada poznata kao %s"
-
-#: ../../diskdrake/interactive.pm_.c:1035
-#: ../../diskdrake/interactive.pm_.c:1094
-msgid "Device: "
-msgstr "Uređaj: "
-
-#: ../../diskdrake/interactive.pm_.c:1036
-#, c-format
-msgid "DOS drive letter: %s (just a guess)\n"
-msgstr "DOS slovo uređaja: %s (pretpostavka)\n"
-
-#: ../../diskdrake/interactive.pm_.c:1040
-#: ../../diskdrake/interactive.pm_.c:1048
-#: ../../diskdrake/interactive.pm_.c:1112
-msgid "Type: "
-msgstr "Tip: "
-
-#: ../../diskdrake/interactive.pm_.c:1044
-msgid "Name: "
-msgstr "Ime: "
-
-#: ../../diskdrake/interactive.pm_.c:1052
-#, c-format
-msgid "Start: sector %s\n"
-msgstr "PoĨetak: sector %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1053
-#, c-format
-msgid "Size: %s"
-msgstr "VeliĨina: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1055
-#, c-format
-msgid ", %s sectors"
-msgstr ", %s sektora"
-
-#: ../../diskdrake/interactive.pm_.c:1057
-#, c-format
-msgid "Cylinder %d to %d\n"
-msgstr "Cilindar %d do %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1058
-msgid "Formatted\n"
-msgstr "Formatirana\n"
-
-#: ../../diskdrake/interactive.pm_.c:1059
-msgid "Not formatted\n"
-msgstr "Nije formatirana\n"
-
-#: ../../diskdrake/interactive.pm_.c:1060
-msgid "Mounted\n"
-msgstr "Montirana\n"
-
-#: ../../diskdrake/interactive.pm_.c:1061
-#, c-format
-msgid "RAID md%s\n"
-msgstr "RAID md%s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1063
-#, c-format
-msgid ""
-"Loopback file(s):\n"
-" %s\n"
-msgstr ""
-"Loopback datoteka(e):\n"
-" %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1064
-msgid ""
-"Partition booted by default\n"
-" (for MS-DOS boot, not for lilo)\n"
-msgstr ""
-"Particija koja se boota po defaultu\n"
-" (za MS-DOS boot, ne za lilo)\n"
-
-#: ../../diskdrake/interactive.pm_.c:1066
-#, c-format
-msgid "Level %s\n"
-msgstr "Nivo %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1067
-#, c-format
-msgid "Chunk size %s\n"
-msgstr "VeliĨina chunka %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1068
-#, c-format
-msgid "RAID-disks %s\n"
-msgstr "RAID-diskovi %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1070
-#, c-format
-msgid "Loopback file name: %s"
-msgstr "Naziv loopback datoteke: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1073
-msgid ""
-"\n"
-"Chances are, this partition is\n"
-"a Driver partition, you should\n"
-"probably leave it alone.\n"
-msgstr ""
-"\n"
-"Postoji mogućnost da je ova\n"
-"particija Driver particija, vjerovatno\n"
-"biste je trebali ostaviti na miru.\n"
-
-#: ../../diskdrake/interactive.pm_.c:1076
-msgid ""
-"\n"
-"This special Bootstrap\n"
-"partition is for\n"
-"dual-booting your system.\n"
-msgstr ""
-"\n"
-"Ova posebna Bootstrap\n"
-"particija je za\n"
-"dvojni boot vaÅeg sistema.\n"
-
-#: ../../diskdrake/interactive.pm_.c:1095
-#, c-format
-msgid "Size: %s\n"
-msgstr "VeliĨina: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1096
-#, c-format
-msgid "Geometry: %s cylinders, %s heads, %s sectors\n"
-msgstr "Geometrija: %s cilindara, %s glava, %s sektora\n"
-
-#: ../../diskdrake/interactive.pm_.c:1097
-msgid "Info: "
-msgstr "Info: "
-
-#: ../../diskdrake/interactive.pm_.c:1098
-#, c-format
-msgid "LVM-disks %s\n"
-msgstr "LVM-diskovi %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1099
-#, c-format
-msgid "Partition table type: %s\n"
-msgstr "Tip tabele particija: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1100
-#, c-format
-msgid "on bus %d id %d\n"
-msgstr "na busu %d id %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1114
-#, c-format
-msgid "Options: %s"
-msgstr "Opcije: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1130
-msgid "Filesystem encryption key"
-msgstr "KljuĨ za kodiranje datoteĨnog sistema"
-
-#: ../../diskdrake/interactive.pm_.c:1131
-msgid "Choose your filesystem encryption key"
-msgstr "Izaberite vaŠkljuĨ za kodiranje datoteĨnog sistema"
-
-#: ../../diskdrake/interactive.pm_.c:1134
-#, c-format
-msgid "This encryption key is too simple (must be at least %d characters long)"
-msgstr ""
-"Ova Åifra je previÅe jednostavna (mora biti duga najmanje %d karaktera)"
-
-#: ../../diskdrake/interactive.pm_.c:1135
-msgid "The encryption keys do not match"
-msgstr "Å ifre se ne poklapaju"
-
-#: ../../diskdrake/interactive.pm_.c:1138
-msgid "Encryption key"
-msgstr "Å ifra"
-
-#: ../../diskdrake/interactive.pm_.c:1139
-msgid "Encryption key (again)"
-msgstr "Å ifra (joÅ jednom)"
-
-#: ../../diskdrake/removable.pm_.c:47
-msgid "Change type"
-msgstr "Promjeni tip"
-
-#: ../../diskdrake/removable_gtk.pm_.c:28
-msgid "Please click on a media"
-msgstr "Molimo kliknite na medij"
-
-#: ../../diskdrake/smbnfs_gtk.pm_.c:165
-msgid "Search servers"
-msgstr "Traži servere"
-
-#: ../../fs.pm_.c:485 ../../fs.pm_.c:495 ../../fs.pm_.c:499 ../../fs.pm_.c:503
-#: ../../fs.pm_.c:507 ../../fs.pm_.c:511
-#, c-format
-msgid "%s formatting of %s failed"
-msgstr "%s formatiranje %s nije uspjelo"
-
-#: ../../fs.pm_.c:548
-#, c-format
-msgid "I don't know how to format %s in type %s"
-msgstr "Ne znam kako formatirati %s tipa %s"
-
-#: ../../fs.pm_.c:620 ../../fs.pm_.c:649 ../../fs.pm_.c:655
-#, c-format
-msgid "mounting partition %s in directory %s failed"
-msgstr "montiranje particije %s u direktoriju %s nije uspjelo"
-
-#: ../../fs.pm_.c:640
-#, c-format
-msgid "fsck failed with exit code %d or signal %d"
-msgstr "fsck nije uspio, izlazni kod %d ili signal %d"
-
-#: ../../fs.pm_.c:670 ../../partition_table.pm_.c:596
-#, c-format
-msgid "error unmounting %s: %s"
-msgstr "greÅka u demontiranju %s: %s"
-
-#: ../../fsedit.pm_.c:21
-msgid "simple"
-msgstr "jednostavno"
-
-#: ../../fsedit.pm_.c:25
-msgid "with /usr"
-msgstr "sa /usr"
-
-#: ../../fsedit.pm_.c:30
-msgid "server"
-msgstr "server"
-
-#: ../../fsedit.pm_.c:467
-msgid "You can't use JFS for partitions smaller than 16MB"
-msgstr "Ne možete koristiti JFS za particije manje od 16MB"
-
-#: ../../fsedit.pm_.c:468
-msgid "You can't use ReiserFS for partitions smaller than 32MB"
-msgstr "Ne možete koristiti ReiserFS za particije manje od 32MB"
-
-#: ../../fsedit.pm_.c:477
-msgid "Mount points must begin with a leading /"
-msgstr "TaĨke montiranja moraju poĨinjati sa /"
-
-#: ../../fsedit.pm_.c:478
-#, c-format
-msgid "There is already a partition with mount point %s\n"
-msgstr "Već postoji particija sa taĨkom montiranja %s\n"
-
-#: ../../fsedit.pm_.c:482
-#, c-format
-msgid "You can't use a LVM Logical Volume for mount point %s"
-msgstr "Ne možete koristiti LVM logiĨki volumen za taĨku montiranja %s"
-
-#: ../../fsedit.pm_.c:484
-msgid "This directory should remain within the root filesystem"
-msgstr "Ovaj direktorij treba ostati unutar korijenskog file sistema"
-
-#: ../../fsedit.pm_.c:486
-msgid "You need a true filesystem (ext2, reiserfs) for this mount point\n"
-msgstr ""
-"Potreban vam je pravi file sistem (ext2, reiserfs) za ovu taĨku montiranja\n"
-
-#: ../../fsedit.pm_.c:488
-#, c-format
-msgid "You can't use an encrypted file system for mount point %s"
-msgstr "Ne možete koristiti kriptovani datoteĨni sistem za taĨku montiranja %s"
-
-#: ../../fsedit.pm_.c:546
-msgid "Not enough free space for auto-allocating"
-msgstr "Nema dovoljno prostora za auto-alokaciju"
-
-#: ../../fsedit.pm_.c:548
-msgid "Nothing to do"
-msgstr "Nemam Åta da radim"
-
-#: ../../fsedit.pm_.c:612
-#, c-format
-msgid "Error opening %s for writing: %s"
-msgstr "GreÅka u otvaranju %s za pisanje: %s"
-
-#: ../../fsedit.pm_.c:697
-msgid ""
-"An error has occurred - no valid devices were found on which to create new "
-"filesystems. Please check your hardware for the cause of this problem"
-msgstr ""
-"DoÅlo je do greÅke - nije pronaÄ‘en nijedan ispravan ureÄ‘aj na kojem se mogu "
-"kreirati novi file sistemi. Molimo provjerite vaŠhardware i pronađite uzrok "
-"greÅke"
-
-#: ../../fsedit.pm_.c:720
-msgid "You don't have any partitions!"
-msgstr "Nemate nijednu particiju!"
-
-#: ../../help.pm_.c:13
-msgid ""
-"GNU/Linux is a multiuser system, and this means that each user can have his\n"
-"own preferences, his own files and so on. You can read the ``User Guide''\n"
-"to learn more. But unlike \"root\", which is the administrator, the users\n"
-"you will add here will not be entitled to change anything except their own\n"
-"files and their own configuration. You will have to create at least one\n"
-"regular user for yourself. That account is where you should log in for\n"
-"routine use. Although it is very practical to log in as \"root\" everyday,\n"
-"it may also be very dangerous! The slightest mistake could mean that your\n"
-"system would not work any more. If you make a serious mistake as a regular\n"
-"user, you may only lose some information, but not the entire system.\n"
-"\n"
-"First, you have to enter your real name. This is not mandatory, of course\n"
-"as you can actually enter whatever you want. DrakX will then take the first\n"
-"word you have entered in the box and will bring it over to the \"User\n"
-"name\". This is the name this particular user will use to log onto the\n"
-"system. You can change it. You then have to enter a password here. A\n"
-"non-privileged (regular) user's password is not as crucial as \"root\"' one\n"
-"from a security point of view, but that is no reason to neglect it: after\n"
-"all, your files are at risk.\n"
-"\n"
-"If you click on \"Accept user\", you can then add as many as you want. Add\n"
-"a user for each one of your friends: your father or your sister, for\n"
-"example. When you finish adding all the users you want, select \"Done\".\n"
-"\n"
-"Clicking the \"Advanced\" button allows you to change the default \"shell\"\n"
-"for that user (bash by default)."
-msgstr ""
-"GNU/Linux is a multiuser system, and this means that each user can have his\n"
-"own preferences, his own files and so on. You can read the ``User Guide''\n"
-"to learn more. But unlike \"root\", which is the administrator, the users\n"
-"you will add here will not be entitled to change anything except their own\n"
-"files and their own configuration. You will have to create at least one\n"
-"regular user for yourself. That account is where you should log in for\n"
-"routine use. Although it is very practical to log in as \"root\" everyday,\n"
-"it may also be very dangerous! The slightest mistake could mean that your\n"
-"system would not work any more. If you make a serious mistake as a regular\n"
-"user, you may only lose some information, but not the entire system.\n"
-"\n"
-"First, you have to enter your real name. This is not mandatory, of course\n"
-"as you can actually enter whatever you want. DrakX will then take the first\n"
-"word you have entered in the box and will bring it over to the \"User\n"
-"name\". This is the name this particular user will use to log onto the\n"
-"system. You can change it. You then have to enter a password here. A\n"
-"non-privileged (regular) user's password is not as crucial as \"root\"' one\n"
-"from a security point of view, but that is no reason to neglect it: after\n"
-"all, your files are at risk.\n"
-"\n"
-"If you click on \"Accept user\", you can then add as many as you want. Add\n"
-"a user for each one of your friends: your father or your sister, for\n"
-"example. When you finish adding all the users you want, select \"Done\".\n"
-"\n"
-"Clicking the \"Advanced\" button allows you to change the default \"shell\"\n"
-"for that user (bash by default)."
-
-#: ../../help.pm_.c:41
-msgid ""
-"Listed above are the existing Linux partitions detected on your hard 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"
-"able to install enough software. If you want to store your data on a\n"
-"separate partition, you will also need to create a partition for \"/home\"\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 drive type\", \"hard 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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard 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"
-"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"
-"able to install enough software. If you want to store your data on a\n"
-"separate partition, you will also need to create a partition for \"/home\"\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 drive type\", \"hard 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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
-"\"second lowest SCSI ID\", etc."
-
-#: ../../help.pm_.c:72
-msgid ""
-"The Mandrake Linux 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."
-msgstr ""
-"Mandrake Linux instalacija se prostire na nekoliko CDova. DrakX zna da li "
-"je\n"
-"neki paket smjeÅten na drugom CDu i on će izbaciti trenutni CD i zamoliti "
-"vas\n"
-"da ubacite neki drugi po potrebi."
-
-#: ../../help.pm_.c:77
-msgid ""
-"It is now time to specify which programs you wish to install on your\n"
-"system. There are thousands of packages available for Mandrake Linux, 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"
-"be asked to specify the CDs you currently have (in Expert mode only). Check\n"
-"the CD labels and highlight the boxes corresponding to the CDs you have\n"
-"available for installation. Click \"OK\" when you are ready to continue.\n"
-"\n"
-"Packages are sorted in groups corresponding to a particular use of your\n"
-"machine. The groups themselves are sorted into four sections:\n"
-"\n"
-" * \"Workstation\": if you plan to use your machine as a workstation, "
-"select\n"
-"one or more of the corresponding groups;\n"
-"\n"
-" * \"Development\": if your machine is to be used for programming, choose\n"
-"the desired group(s);\n"
-"\n"
-" * \"Server\": if your machine is intended to be a server, you will be able\n"
-"to select which of the most common services you wish to install on your\n"
-"machine;\n"
-"\n"
-" * \"Graphical Environment\": finally, this is where you will choose your\n"
-"preferred graphical environment. At least one must be selected if you want\n"
-"to have a graphical workstation!\n"
-"\n"
-"Moving the mouse cursor over a group name will display a short explanatory\n"
-"text about that group. If you deselect all groups when performing a regular\n"
-"installation (by opposition to an upgrade), a dialog will pop up proposing\n"
-"different options for a minimal installation:\n"
-"\n"
-" * \"With X\": install the fewer packages possible to have a working\n"
-"graphical desktop;\n"
-"\n"
-" * \"With basic documentation\": installs the base system plus basic\n"
-"utilities and their documentation. This installation is suitable for\n"
-"setting up a server;\n"
-"\n"
-" * \"Truly minimal install\": will install the strict minimum necessary to\n"
-"get a working Linux system, in command line only. This installation is\n"
-"about 65Mb large.\n"
-"\n"
-"You can check the \"Individual package selection\" box, which is useful if\n"
-"you are familiar with the packages being offered or if you want to have\n"
-"total control over what will be installed.\n"
-"\n"
-"If you started the installation in \"Upgrade\" mode, you can unselect all\n"
-"groups to avoid installing any new package. This is useful for repairing or\n"
-"updating an existing system."
-msgstr ""
-"It is now time to specify which programs you wish to install on your\n"
-"system. There are thousands of packages available for Mandrake Linux, 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"
-"be asked to specify the CDs you currently have (in Expert mode only). Check\n"
-"the CD labels and highlight the boxes corresponding to the CDs you have\n"
-"available for installation. Click \"OK\" when you are ready to continue.\n"
-"\n"
-"Packages are sorted in groups corresponding to a particular use of your\n"
-"machine. The groups themselves are sorted into four sections:\n"
-"\n"
-" * \"Workstation\": if you plan to use your machine as a workstation, "
-"select\n"
-"one or more of the corresponding groups;\n"
-"\n"
-" * \"Development\": if the machine is to be used for programming, choose "
-"the\n"
-"desired group(s);\n"
-"\n"
-" * \"Server\": if your machine is intended to be a server, you will be able\n"
-"to select which of the most common services you wish to install on your\n"
-"machine;\n"
-"\n"
-" * \"Graphical Environment\": finally, this is where you will choose your\n"
-"preferred graphical environment. At least one must be selected if you want\n"
-"to have a graphical workstation!\n"
-"\n"
-"Moving the mouse cursor over a group name will display a short explanatory\n"
-"text about that group. If you deselect all groups when performing a regular\n"
-"installation (by opposition to an upgrade), a dialog will pop up proposing\n"
-"different options for a minimal installation:\n"
-"\n"
-" * \"With X\": install the fewer packages possible to have a working\n"
-"graphical desktop;\n"
-"\n"
-" * \"With basic documentation\" Installs the base system plus basic\n"
-"utilities and their documentation. This installation is suitable for\n"
-"setting up a server.\n"
-"\n"
-" * \"Truly minimal install\": will install the strict minimum necessary to\n"
-"get a working Linux system, in command line only. This installation is\n"
-"about 65Mb large.\n"
-"\n"
-"You can check the \"Individual package selection\" box, which is useful if\n"
-"you are familiar with the packages being offered or if you want to have\n"
-"total control over what will be installed.\n"
-"\n"
-"If you started the installation in \"Upgrade\" mode, you can unselect all\n"
-"groups to avoid installing any new package. This is useful for repairing or\n"
-"updating an existing system."
-
-#: ../../help.pm_.c:128
-msgid ""
-"Finally, depending on whether or not you selected individual packages, you\n"
-"will be presented a tree containing all packages classified by groups and\n"
-"subgroups. While browsing the tree, you can select entire groups,\n"
-"subgroups, or individual packages.\n"
-"\n"
-"Whenever you select a package on the tree, a description appears on the\n"
-"right. When your selection is finished, click the \"Install\" button which\n"
-"will then launch the installation process. Depending on the speed of your\n"
-"hardware and the number of packages that need to be installed, it may take\n"
-"a while to complete the process. An estimate of the time it will take to\n"
-"install everything is displayed on the screen, to help you gauge if there\n"
-"is sufficient time to enjoy a cup of coffee.\n"
-"\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 Mandrake Linux, 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 Mandrake Linux 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"
-"default. !!\n"
-"\n"
-"The \"Automatic dependencies\" option simply disables the warning dialog\n"
-"which appears whenever the installer automatically selects a package. This\n"
-"occurs because it has determined that it needs to satisfy a dependency with\n"
-"another package in order to successfully complete the installation.\n"
-"\n"
-"The tiny floppy disk icon at the bottom of the list allows to load the\n"
-"package list chosen during a previous installation. Clicking on this icon\n"
-"will ask you to insert a floppy disk previously created at the end of\n"
-"another installation. See the second tip of last step on how to create such\n"
-"a floppy."
-msgstr ""
-"Finally, depending on whether or not you selected individual packages, you\n"
-"will be presented a tree containing all packages classified by groups and\n"
-"subgroups. While browsing the tree, you can select entire groups,\n"
-"subgroups, or individual packages.\n"
-"\n"
-"Whenever you select a package on the tree, a description appears on the\n"
-"right. When your selection is finished, click the \"Install\" button which\n"
-"will then launch the installation process. Depending on the speed of your\n"
-"hardware and the number of packages that need to be installed, it may take\n"
-"a while to complete the process. An estimate of the time it will take to\n"
-"install everything is displayed on the screen, to help you gauge if there\n"
-"is sufficient time to enjoy a cup of coffee.\n"
-"\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 Mandrake Linux, 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 Mandrake Linux 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"
-"default. !!\n"
-"\n"
-"The \"Automatic dependencies\" option simply disables the warning dialog\n"
-"which appears whenever the installer automatically selects a package. This\n"
-"occurs because it has determined that it needs to satisfy a dependency with\n"
-"another package in order to successfully complete the installation.\n"
-"\n"
-"The tiny floppy disk icon at the bottom of the list allows to load the\n"
-"package list chosen during a previous installation. Clicking on this icon\n"
-"will ask you to insert a floppy disk previously created at the end of\n"
-"another installation. See the second tip of last step on how to create such\n"
-"a floppy."
-
-#: ../../help.pm_.c:164
-msgid ""
-"You are now proposed to set up your Internet/network connection. If you\n"
-"wish to connect your computer to the Internet or to a local network, click\n"
-"\"OK\". The autodetection of network devices and modem will be launched. If\n"
-"this detection fails, uncheck the \"Use auto detection\" box next time. You\n"
-"may also choose not to configure the network, or do it later; in that case,\n"
-"simply click the \"Cancel\" button.\n"
-"\n"
-"Available connections are: traditional modem, ISDN modem, ADSL connection,\n"
-"cable modem, and finally a simple LAN connection (Ethernet).\n"
-"\n"
-"Here, we will not detail each configuration. Simply make sure that you have\n"
-"all the parameters from your Internet Service Provider or system\n"
-"administrator.\n"
-"\n"
-"You can consult the ``User Guide'' chapter about Internet connections for\n"
-"details about the configuration, or simply wait until your system is\n"
-"installed and use the program described there to configure your connection.\n"
-"\n"
-"If you wish to configure the network later after installation, or if you\n"
-"are finished configuring your network connection, click \"Cancel\"."
-msgstr ""
-"You are now proposed to set up your Internet/network connection. If you\n"
-"wishto connect your computer to the Internet or to a local network, click\n"
-"\"OK\". The autodetection of network devices and modem will be launched. If\n"
-"this detection fails, uncheck the \"Use auto detection\" box next time. You\n"
-"may also choose not to configure the network, or do it later; in that case,\n"
-"simply click the \"Cancel\" button.\n"
-"\n"
-"Available connections are: traditional modem, ISDN modem, ADSL connection,\n"
-"cable modem, and finally a simple LAN connection (Ethernet).\n"
-"\n"
-"Here, we will not detail each configuration. Simply make sure that you have\n"
-"all the parameters from your Internet Service Provider or system\n"
-"administrator.\n"
-"\n"
-"You can consult the ``User Guide'' chapter about Internet connections for\n"
-"details about the configuration, or simply wait until your system is\n"
-"installed and use the program described there to configure your connection.\n"
-"\n"
-"If you wish to configure the network later after installation, or if you\n"
-"are finished configuring your network connection, click \"Cancel\"."
-
-#: ../../help.pm_.c:186
-msgid ""
-"You may now choose which services you wish to start at boot time.\n"
-"\n"
-"Here are presented all the services available with the current\n"
-"installation. Review them carefully and uncheck those which are not always\n"
-"needed at boot time.\n"
-"\n"
-"You can get a short explanatory text about a service by selecting a\n"
-"specific service. However, if you are not sure whether a service is useful\n"
-"or not, 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 will probably not want to start any services which you do not\n"
-"need. Please remember that several services can be dangerous if they are\n"
-"enabled on a server. In general, select only the services you really need.\n"
-"!!"
-msgstr ""
-"Sada možete izabrati koje servise želite pokretati prilikom boota.\n"
-"\n"
-"Ovdje su predstavljeni svi servisi koji su dostupni u trenutnoj\n"
-"instalaciji. Pregledajte ih pažljivo i iskljuĨite sve one koji nisu "
-"potrebni\n"
-"prilikom boota.\n"
-"\n"
-"Kada izaberete servis dobićete kratki tekst koji objaÅnjava taj servis\n"
-"Ipak, ako niste sigurni da li je servis koristan ili ne, sigurnije je da ne\n"
-"mijenjate predloženi izbor.\n"
-"\n"
-"!! Budite vrlo pažljivi sa ovim korakom ako namjeravate koristiti vaŠ"
-"raĨunar\n"
-"kao server: vjerovatno ne želite da pokrenete neke servise koji vam ne\n"
-"trebaju. Molimo vas da zapamtite da pojedini servisi mogu biti opasni\n"
-"ako su aktivni na serveru. Općenito, izaberite samo one servise koji vam\n"
-"stvarno trebaju. !!"
-
-#: ../../help.pm_.c:203
-msgid ""
-"GNU/Linux manages time in GMT (Greenwich Mean Time) and translates it in\n"
-"local time according to the time zone you selected. It is however possible\n"
-"to deactivate this by deselecting \"Hardware clock set to GMT\" so that the\n"
-"hardware clock is the same as the system clock. This is useful when the\n"
-"machine is hosting another operating system like Windows.\n"
-"\n"
-"The \"Automatic time synchronization\" option will automatically regulate\n"
-"the clock by connecting to a remote time server on the Internet. In the\n"
-"list that is presented, choose a server located near you. Of course you\n"
-"must have a working Internet connection for this feature to work. It will\n"
-"actually install on your machine a time server which can be optionally used\n"
-"by other machines on your local network."
-msgstr ""
-"GNU/Linux manages time in GMT (Greenwich Mean Time) and translates it in\n"
-"local time according to the time zone you selected. It is however possible\n"
-"to deactivate this by deselecting \"Hardware clock set to GMT\" so that the\n"
-"hardware clock is the same as the system clock. This is useful when the\n"
-"machine is hosting another operating system like Windows.\n"
-"\n"
-"The \"Automatic time synchronization\" option will automatically regulate\n"
-"the clock by connecting to a remote time server on the internet. In the\n"
-"list that is presented, choose a server located near you. Of course you\n"
-"must have a working internet connection for this feature to function. It\n"
-"will actually install on your machine a time server that can be optionally\n"
-"used by other machines on your local network."
-
-#: ../../help.pm_.c:217
-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 Mandrake Linux rely. In this section, DrakX\n"
-"will try to configure X automatically.\n"
-"\n"
-"It is extremely rare for it to fail, unless the hardware is very old (or\n"
-"very new). If it succeeds, it will start X automatically with the best\n"
-"resolution possible, depending on the size of the monitor. A window will\n"
-"then appear and ask you if you can see it.\n"
-"\n"
-"If you are doing an \"Expert\" installation, you will enter the X\n"
-"configuration wizard. See the corresponding section of the manual for more\n"
-"information about this wizard.\n"
-"\n"
-"If you can see the message during the test, and answer \"Yes\", then DrakX\n"
-"will proceed to the next step. If you cannot see the message, it simply\n"
-"means that the configuration was wrong and the test will automatically end\n"
-"after 10 seconds, restoring the screen."
-msgstr ""
-"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 Mandrake Linux rely. In this section, DrakX\n"
-"will try to configure X automatically.\n"
-"\n"
-"It is extremely rare for it to fail, unless the hardware is very old (or\n"
-"very new). If it succeeds, it will start X automatically with the best\n"
-"resolution possible, depending on the size of the monitor. A window will\n"
-"then appear and ask you if you can see it.\n"
-"\n"
-"If you are doing an \"Expert\" installation, you will enter the X\n"
-"configuration wizard. See the corresponding section of the manual for more\n"
-"information about this wizard.\n"
-"\n"
-"If you can see the message during the test, and answer \"Yes\", then DrakX\n"
-"will proceed to the next step. If you cannot see the message, it simply\n"
-"means that the configuration was wrong and the test will automatically end\n"
-"after 10 seconds, restoring the screen."
-
-#: ../../help.pm_.c:237
-msgid ""
-"The first time you try the X configuration, you may not be very satisfied\n"
-"with its display (screen is too small, shifted left or right...). Hence,\n"
-"even if X starts up correctly, DrakX then asks you if the configuration\n"
-"suits you. It will also propose to change it by displaying a list of valid\n"
-"modes it could find, asking you to select one.\n"
-"\n"
-"As a last resort, if you still cannot get X to work, choose \"Change\n"
-"graphics card\", select \"Unlisted card\", and when prompted on which\n"
-"server, choose \"FBDev\". This is a failsafe option which works with any\n"
-"modern graphics card. Then choose \"Test again\" to be sure."
-msgstr ""
-"The first time you try the X configuration, you may not be very satisfied\n"
-"with its display (screen is too small, shifted left or right...). Hence,\n"
-"even if X starts up correctly, DrakX then asks you if the configuration\n"
-"suits you. It will also propose to change it by displaying a list of valid\n"
-"modes it could find, asking you to select one.\n"
-"\n"
-"As a last resort, if you still cannot get X to work, choose \"Change\n"
-"graphics card\", select \"Unlisted card\", and when prompted on which\n"
-"server, choose \"FBDev\". This is a failsafe option which works with any\n"
-"modern graphics card. Then choose \"Test again\" to be sure."
-
-#: ../../help.pm_.c:249
-msgid ""
-"Finally, you will be asked whether you want to see the graphical interface\n"
-"at boot. Note this question will be asked even if you chose not to test the\n"
-"configuration. Obviously, you want to answer \"No\" if your machine is to\n"
-"act as a server, or if you were not successful in getting the display\n"
-"configured."
-msgstr ""
-"Finally, you will be asked whether you want to see the graphical interface\n"
-"at boot. Note this question will be asked even if you chose not to test the\n"
-"configuration. Obviously, you want to answer \"No\" if your machine is to\n"
-"act as a server, or if you were not successful in getting the display\n"
-"configured."
-
-#: ../../help.pm_.c:256
-msgid ""
-"The Mandrake LinuxCD-ROM has a built-in rescue mode. You can access it by\n"
-"booting from the CD-ROM, press the >>F1<< key at boot and type >>rescue<<\n"
-"at the prompt. But in case your computer cannot boot from the CD-ROM, you\n"
-"should come back to this step for help in at least two situations:\n"
-"\n"
-" * when installing the bootloader, DrakX will rewrite the boot sector (MBR)\n"
-"of your main disk (unless you are using another boot manager), to allow you\n"
-"to start up with either Windows or GNU/Linux (assuming you have Windows in\n"
-"your system). If you need to reinstall Windows, the Microsoft install\n"
-"process will rewrite the boot sector, and then you will not be able to\n"
-"start GNU/Linux!\n"
-"\n"
-" * if a problem arises and you cannot start up GNU/Linux from the hard "
-"disk,\n"
-"this floppy disk will be the only means of starting up GNU/Linux. It\n"
-"contains a fair number of system tools for restoring a system, which has\n"
-"crashed due to a power failure, an unfortunate typing error, a typo in a\n"
-"password, or any other reason.\n"
-"\n"
-"When you click on this step, you will be asked to enter a disk inside the\n"
-"drive. The floppy disk you will insert must be empty or contain data which\n"
-"you do not need. You will not have to format it since DrakX will rewrite\n"
-"the whole disk."
-msgstr ""
-"The Mandrake Linux CD-ROM has a built-in rescue mode. You can access it by\n"
-"booting from the CD-ROM, press the >>F1<< key at boot and type >>rescue<<\n"
-"at the prompt. But in case your computer cannot boot from the CD-ROM, you\n"
-"should come back to this step for help in at least two situations:\n"
-"\n"
-" * when installing the boot loader, DrakX will rewrite the boot sector "
-"(MBR)\n"
-"of your main disk (unless you are using another boot manager) so that you\n"
-"can start up with either Windows or GNU/Linux (assuming you have Windows in\n"
-"your system). If you need to reinstall Windows, the Microsoft install\n"
-"process will rewrite the boot sector, and then you will not be able to\n"
-"start GNU/Linux!\n"
-"\n"
-" * if a problem arises and you cannot start up GNU/Linux from the hard "
-"disk,\n"
-"this floppy disk will be the only means of starting up GNU/Linux. It\n"
-"contains a fair number of system tools for restoring a system, which has\n"
-"crashed due to a power failure, an unfortunate typing error, a typo in a\n"
-"password, or any other reason.\n"
-"\n"
-"When you click on this step, you will be asked to enter a disk inside the\n"
-"drive. The floppy disk you will insert must be empty or contain data which\n"
-"you do not need. You will not have to format it since DrakX will rewrite\n"
-"the whole disk."
-
-#: ../../help.pm_.c:280
-msgid ""
-"At this point, you need to choose where you want to install the Mandrake\n"
-"Linux operating system on your hard drive. If your hard drive is empty or\n"
-"if an existing operating system is using all the available space, you will\n"
-"need to partition it. Basically, partitioning a hard drive consists of\n"
-"logically dividing it to create space to install your new Mandrake Linux\n"
-"system.\n"
-"\n"
-"Because the partitioning process' effects are usually irreversible,\n"
-"partitioning can be intimidating and stressful if you are an inexperienced\n"
-"user. Fortunately, there is a wizard which simplifies this process. Before\n"
-"beginning, please consult the manual and take your time.\n"
-"\n"
-"If you are running the installation in Expert mode, you will enter\n"
-"DiskDrake, the Mandrake Linux partitioning tool, which allows you to\n"
-"fine-tune your partitions. See the DiskDrake section in the ``User Guide''.\n"
-"From the installation interface, you can use the wizards as described here\n"
-"by clicking the dialog's \"Wizard\" button.\n"
-"\n"
-"If partitions have already been defined, either from a previous\n"
-"installation or from another partitioning tool, simply select those to\n"
-"install your Linux system.\n"
-"\n"
-"If partitions are not defined, you will need to create them using the\n"
-"wizard. Depending on your hard drive configuration, several options are\n"
-"available:\n"
-"\n"
-" * \"Use free space\": this option will simply lead to an automatic\n"
-"partitioning of your blank drive(s). You will not be prompted further;\n"
-"\n"
-" * \"Use existing partition\": the wizard has detected one or more existing\n"
-"Linux partitions on your hard drive. If you want to use them, choose this\n"
-"option;\n"
-"\n"
-" * \"Use the free space on the Windows; partition\": if MicrosoftWindows is\n"
-"installed on your hard drive and takes all the space available on it, you\n"
-"have to create free space for Linux data. To do so, you can delete your\n"
-"MicrosoftWindows partition and data (see ``Erase entire disk'' or ``Expert\n"
-"mode'' solutions) or resize your MicrosoftWindows partition. Resizing can\n"
-"be performed without the loss of any data, provided you previously\n"
-"defragment the Windows partition. Backing up your data won't hurt either..\n"
-"This solution is recommended if you want to use both Mandrake Linux and\n"
-"MicrosoftWindows on the same computer.\n"
-"\n"
-" Before choosing this option, please understand that after this "
-"procedure,\n"
-"the size of your MicrosoftWindows partition will be smaller than at the\n"
-"present time. You will have less free space under MicrosoftWindows to store\n"
-"your data or to install new software;\n"
-"\n"
-" * \"Erase entire disk\": if you want to delete all data and all partitions\n"
-"present on your hard drive and replace them with your new Mandrake Linux\n"
-"system, choose this option. Be careful with this solution because you will\n"
-"not be able to revert your choice after you confirm;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Remove Windows\": this will simply erase everything on the drive and\n"
-"begin fresh, partitioning everything from scratch. All data on your disk\n"
-"will be lost;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Expert mode\": choose this option if you want to manually partition\n"
-"your hard drive. Be careful it is a powerful but dangerous choice. You can\n"
-"very easily lose all your data. Hence, do not choose this unless you know\n"
-"what you are doing."
-msgstr ""
-"Na ovom mjestu trebate izabrati gdje želite instalirati Linux Mandrake\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"
-"Mandrake Linux sistema.\n"
-"\n"
-"PoÅto su efekti particioniranja obiĨno nepovratni, particioniranje može\n"
-"biti zastraÅujuće i stresno ako ste neiskusan korisnik. Srećom, postoji\n"
-"Ĩarobnjak koji pojednostavljuje taj proces. Prije zapoĨinjanja, molimo\n"
-"konsultirajte priruĨnik i nemojte žuriti.\n"
-"\n"
-"Ako instalirate koristeći Ekspertni mod, ući ćete u DiskDrake, Mandrake\n"
-"Linux alat za particioniranje, koji vam omogućava da fino podesite vaÅe\n"
-"particije. Pogledajte priruĨnik, poglavlje o DiskDrake-u. Na instalacionom\n"
-"suĨelju možete koristiti Ĩarobnjake kao Åto je opisano tamo, klikajući na\n"
-"dugme Äarobnjak.\n"
-"\n"
-"Ako su particije već definirane (tokom neke ranije instalacije ili pomoću\n"
-"nekog drugog alata za particioniranje), sve Åto trebate jeste da ih "
-"izaberete\n"
-"za instalaciju vaÅeg Linux sistema.\n"
-"\n"
-"Ako particije nisu već definirane, trebate ih kreirati koristeći Ĩarobnjak.\n"
-"Ovisno o konfiguraciji vaÅeg hard diska, može biti dostupno nekoliko\n"
-"mogućnosti:\n"
-"\n"
-" * Koristi slobodan prostor: jednostavno vodi na automatsko particioniranje\n"
-"vaÅeg praznog diska (diskova). Neće biti postavljana nikakva daljnja "
-"pitanja.\n"
-"\n"
-" * Koristi postojeću particiju: Ĩarobnjak je detektovao jednu ili viÅe "
-"postojećih\n"
-"Linux particija na vaÅem hard disku. Ako ih želite zadržati, izaberite ovu\n"
-"opciju.\n"
-"\n"
-" * Koristi slobodan prostor na Windows particiji: ako je na vaÅem hard\n"
-"disku instaliran Microsoft Windows koji je zauzeo sav slobodan prostor,\n"
-"moraćete napraviti neÅto slobodnog prostora za Linux. To možete uĨiniti\n"
-"briÅući vaÅu Microsoft Windows particiju zajedno sa podacima (vidi opcije\n"
-"\"PobriÅi Ĩitav disk\" ili \"Ekspertni mod\") ili možete promjeniti veliĨinu "
-"vaÅe\n"
-"Microsoft Windows particije. Promjena veliĨine se može izvrÅiti bez gubitka\n"
-"podataka. Ova mogućnost je preporuĨena ako namjeravate koristiti i Linux\n"
-"Mandrake i Microsoft Windows na istom raĨunaru.\n"
-"\n"
-" Prije izbora ove opcije, molimo da imate na umu da će veliĨina vaÅe\n"
-"Microsoft Windows particije biti manja nego trenutno. To znaĨi da će "
-"Microsoft\n"
-"Windows prijavljivati da imate manje prostora za smjeÅtaj podataka ili "
-"instaliranje\n"
-"novog softwarea.\n"
-"\n"
-" * PobriÅi Ĩitav disk: ako želite da obriÅete sve podatke i sve particije\n"
-"koje su prisutne na vaÅem hard disku i umjesto njih postavite vaÅ novi "
-"Linux\n"
-"Mandrake sistem, možete izabrati ovu opciju. Budite oprezni sa ovom\n"
-"mogućnoÅću, jer nećete moći poniÅtiti vaÅ izbor nakon potvrde.\n"
-"\n"
-" !! Ako izaberete ovu opciju, svi podaci na vaÅem disku će biti "
-"izgubljeni. !!\n"
-"\n"
-" * Ukloni Windows: ovo će jednostavno pobrisati sve na disku i poĨeti od\n"
-"poĨetka, particionirajući ga. Svi podatci na vaÅem disku će biti "
-"izgubljeni.\n"
-"\n"
-" !! Ako izaberete ovu opciju, svi podaci na vaÅem disku će biti "
-"izgubljeni. !!\n"
-"\n"
-" * Ekspertni mod: ako želite da ruĨno particionirate vaŠhard disk, "
-"izaberite ovu\n"
-"opciju. Budite oprezni - to je moćan, ali i opasan izbor. Vrlo lako možete\n"
-"izgubiti sve vaÅe podatke. Zato nemojte birati ovu opciju sem ako ste "
-"sigurni\n"
-"Åta radite."
-
-#: ../../help.pm_.c:347
-msgid ""
-"There you are. Installation is now complete and your GNU/Linux system is\n"
-"ready to use. Just click \"OK\" to reboot the system. You can start\n"
-"GNU/Linux or Windows, whichever you prefer (if you are dual-booting), as\n"
-"soon as the computer has booted up again.\n"
-"\n"
-"The \"Advanced\" button (in Expert mode only) shows two more buttons to:\n"
-"\n"
-" * \"generate auto-install floppy\": to create an installation floppy disk\n"
-"which will automatically perform a whole installation without the help of\n"
-"an operator, similar to the installation you just configured.\n"
-"\n"
-" Note that two different options are available after clicking the button:\n"
-"\n"
-" * \"Replay\". This is a partially automated installation as the\n"
-"partitioning step (and only this one) remains interactive;\n"
-"\n"
-" * \"Automated\". Fully automated installation: the hard disk is "
-"completely\n"
-"rewritten, all data is lost.\n"
-"\n"
-" This feature is very handy when installing a great number of similar\n"
-"machines. See the Auto install section on our web site;\n"
-"\n"
-" * \"Save packages selection\"(*): saves the package selection as done\n"
-"previously. Then, when doing another installation, insert the floppy inside\n"
-"the drive and run the installation going to the help screen by pressing on\n"
-"the [F1] key, and by issuing >>linux defcfg=\"floppy\"<<.\n"
-"\n"
-"(*) You need a FAT-formatted floppy (to create one under GNU/Linux, type\n"
-"\"mformat a:\")"
-msgstr ""
-"There you are. Installation is now complete and your GNU/Linux system is\n"
-"ready to use. Just click \"OK\" to reboot the system. You can start\n"
-"GNU/Linux or Windows, whichever you prefer (if you are dual-booting), as\n"
-"soon as the computer has booted up again.\n"
-"\n"
-"The \"Advanced\" button (in Expert mode only) shows two more buttons to:\n"
-"\n"
-" * \"generate auto-install floppy\": to create an installation floppy disk\n"
-"which will automatically perform a whole installation without the help of\n"
-"an operator, similar to the installation you just configured.\n"
-"\n"
-" Note that two different options are available after clicking the button:\n"
-"\n"
-" * \"Replay\". This is a partially automated install as the partitioning\n"
-"step (and only this one) remains interactive.\n"
-"\n"
-" * \"Automated\". Fully automated install: the hard disk is completely\n"
-"rewritten, all data is lost.\n"
-"\n"
-" This feature is very handy when installing a great number of similar\n"
-"machines. See the Auto install section at our web site.\n"
-"\n"
-" * \"Save packages selection\"(*): saves the packages selection as made\n"
-"previously. Then, when doing another installation, insert the floppy inside\n"
-"the driver and run the installation going to the help screen by pressing on\n"
-"the [F1] key, and by issuing >>linux defcfg=\"floppy\"<<.\n"
-"\n"
-"(*) You need a FAT-formatted floppy (to create one under GNU/Linux, type\n"
-"\"mformat a:\")"
-
-#: ../../help.pm_.c:378
-msgid ""
-"Any partitions that have been newly defined must be formatted for use\n"
-"(formatting means creating a filesystem).\n"
-"\n"
-"At this time, you may wish to reformat some already existing partitions to\n"
-"erase any data they contain. If you wish to do that, please select those\n"
-"partitions as well.\n"
-"\n"
-"Please note that it is 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\n"
-"reformat partitions containing data that you wish to keep (typically\n"
-"\"/home\").\n"
-"\n"
-"Please be careful when selecting partitions. After formatting, all data on\n"
-"the selected partitions will be deleted and you will not be able to recover\n"
-"any of it.\n"
-"\n"
-"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"
-"Mandrake Linux operating system installation.\n"
-"\n"
-"Click on \"Advanced\" if you wish to select partitions that will be checked\n"
-"for bad blocks on the disk."
-msgstr ""
-"Sve particije koje su upravo definisane moraju biti formatirane kako bi se\n"
-"mogle koristiti (formatiranje znaĨi kreiranje datoteĨnog sistema). \n"
-"\n"
-"U ovom trenutku možda ćete poželjeti da reformatirate neke već postojeće\n"
-"particije kako biste pobrisali podatke koje sadrže. Ako želite to uĨiniti, "
-"molim\n"
-"takođe izaberite te particije koje želite da formatirate.\n"
-"\n"
-"Molim obratite pažnju da nije neophodno formatirati sve postojeće "
-"particije.\n"
-"Morate reformatirati particije koje sadrže operativni sistem (kao Åto su\n"
-"\"/\", \"/usr\" ili \"var\") ali ne morate reformatirati particije koje "
-"sadrže\n"
-"podatke koje želite zadržati (tipiĨno /home).\n"
-"\n"
-"Molimo da pažljivo izaberete particije. Nakon formatiranja, svi podaci na\n"
-"odabranim particijama će biti pobrisani i nećete biti u mogućnosti da ih\n"
-"povratite.\n"
-"\n"
-"Kliknite na OK kada budete spremni za formatiranje particija.\n"
-"\n"
-"Kliknite na Odustani ako želite da izaberete druge particije za instalaciju\n"
-"vaÅeg novog Linux-Mandrake operativnog sistema.\n"
-"\n"
-"Kliknite na Napredno da izaberete particije koje želite provjeriti radi\n"
-"loÅih blokova."
-
-#: ../../help.pm_.c:404
-msgid ""
-"Your new Mandrake Linux operating system is currently being installed.\n"
-"Depending on the number of packages you will be installing and the speed of\n"
-"your computer, this operation could take from a few minutes to a\n"
-"significant amount of time.\n"
-"\n"
-"Please be patient."
-msgstr ""
-"VaÅ novi Linux-Mandrake operativni sistem se trenutno intalira. Ovisno o\n"
-"broju paketa koje želite instalirati i brzini vaÅeg raĨunara, ova operacija\n"
-"bi mogla trajati nekoliko minuta ali i znaĨajno duže.\n"
-"\n"
-"Molim da imate strpljenja."
-
-#: ../../help.pm_.c:412
-msgid ""
-"At the time you are installing Mandrake Linux, it is likely that some\n"
-"packages have been updated since the initial release. Some bugs may have\n"
-"been fixed, and security issues solved. To allow you to benefit from these\n"
-"updates, you are now proposed to download them from the Internet. Choose\n"
-"\"Yes\" if you have a working Internet connection, or \"No\" if you prefer\n"
-"to install updated packages later.\n"
-"\n"
-"Choosing \"Yes\" displays a list of places from which updates can be\n"
-"retrieved. Choose the one nearest you. Then a package-selection tree\n"
-"appears: review the selection, and press \"Install\" to retrieve and\n"
-"install the selected package(s), or \"Cancel\" to abort."
-msgstr ""
-"At the time you are installing Mandrake Linux, it is likely that some\n"
-"packages have been updated since the initial release. Some bug-fixes may\n"
-"have been fixed, and security issues solved. To allow you to benefit from\n"
-"this updates you are now proposed to download them from the internet.\n"
-"Choose \"Yes\" if you have a working internet connection, or \"No\" if you\n"
-"prefer to install updated packages later.\n"
-"\n"
-"Choosing \"Yes\" displays a list of places from which updates can be\n"
-"retrieved. Choose the one nearer to you. Then a packages selection tree\n"
-"appears: review the selection, and press \"Install\" to retrieve and\n"
-"install the selected package or \"Cancel\" to abort."
-
-#: ../../help.pm_.c:425
-msgid ""
-"Before continuing, you should read carefully the terms of the license. It\n"
-"covers the whole Mandrake Linux 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."
-msgstr ""
-"Prije nego Åto nastavimo, trebate pažljivo proĨitati uvjete licence. Ona\n"
-"pokriva cijelu Mandrake Linux distribuciju, pa ako se ne slažete sa svim\n"
-"uvjetima u njoj, kliknite na dugme Odbij, Åto će automatski zavrÅiti "
-"instalaciju.\n"
-"Da biste nastavili sa instalacijom, kliknite na dugme Prihvati."
-
-#: ../../help.pm_.c:432
-msgid ""
-"At this point, it is time to choose the security level desired for the\n"
-"machine. As a rule of thumb, the more exposed the machine is, and the more\n"
-"the data stored in it is crucial, the higher the security level should be.\n"
-"However, a higher security level is generally obtained at the expense of\n"
-"easiness of use. Refer to the \"msec\" chapter of the ``Reference Manual''\n"
-"to get more information about the meaning of these levels.\n"
-"\n"
-"If you do not know what to choose, keep the default option."
-msgstr ""
-"At this point, it is time to choose the security level desired for the\n"
-"machine. As a rule of thumb, the more exposed the machine is, and the more\n"
-"the data stored in it is crucial, the higher the security level should be.\n"
-"However, a higher security level is generally obtained at the expense of\n"
-"easiness of use. Refer to the \"msec\" chapter of the ``Reference Manual''\n"
-"to get more information about the meaning of these levels.\n"
-"\n"
-"If you do not know what to choose, keep the default option."
-
-#: ../../help.pm_.c:442
-msgid ""
-"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandrake Linux 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"
-"partitions must be defined.\n"
-"\n"
-"To create partitions, you must first select a hard 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"
-"\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"
-"\n"
-" * \"More\": gives access to additional features:\n"
-"\n"
-" * \"Save partition table\": saves the partition table to a floppy. "
-"Useful\n"
-"for later partition-table recovery if necessary. It is strongly recommended\n"
-"to perform this step;\n"
-"\n"
-" * \"Restore partition table\": allows to restore a previously saved\n"
-"partition table from floppy disk;\n"
-"\n"
-" * \"Rescue partition table\": if your partition table is damaged, you "
-"can\n"
-"try to recover it using this option. Please be careful and remember that it\n"
-"can fail;\n"
-"\n"
-" * \"Reload partition table\": discards all changes and loads your "
-"initial\n"
-"partition table;\n"
-"\n"
-" * \"Removable media automounting\": unchecking this option will force "
-"users\n"
-"to manually mount and unmount removable medias such as floppies and\n"
-"CD-ROMs.\n"
-"\n"
-" * \"Wizard\": 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 knowledge of\n"
-"partitioning;\n"
-"\n"
-" * \"Undo\": use this option to cancel your changes;\n"
-"\n"
-" * \"Toggle to normal/expert mode\": allows additional actions on "
-"partitions\n"
-"(type, options, format) and gives more information;\n"
-"\n"
-" * \"Done\": when you are finished partitioning your hard 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"
-"partitions using [Tab] and [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"
-"\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 what partition(s) will be used for the\n"
-"installation of your Mandrake Linux system. If partitions have been already\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"
-"partitions must be defined.\n"
-"\n"
-"To create partitions, you must first select a hard 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"
-"\n"
-" * \"Clear all\": this option deletes all partitions on the selected hard\n"
-"drive.\n"
-"\n"
-" * \"Auto allocate\": this option allows you to automatically create Ext2\n"
-"and swap partitions in free space of your hard drive.\n"
-"\n"
-" * \"More\": gives access to additional features:\n"
-"\n"
-" * \"Save partition table\": saves the partition table to a floppy. "
-"Useful\n"
-"for later partition-table recovery if necessary. It is strongly recommended\n"
-"to perform this step.\n"
-"\n"
-" * \"Restore partition table\": allows to restore a previously saved\n"
-"partition table from floppy disk.\n"
-"\n"
-" * \"Rescue partition table\": if your partition table is damaged, you "
-"can\n"
-"try to recover it using this option. Please be careful and remember that it\n"
-"can fail.\n"
-"\n"
-" * \"Reload partition table\": discards all changes and load your "
-"initial\n"
-"partitions table.\n"
-"\n"
-" * \"removable media automounting\": unchecking this option will force "
-"users\n"
-"to manually mount and unmount removable medias such as floppies and\n"
-"CD-ROMs.\n"
-"\n"
-" * \"Wizard\": 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 knowledge of\n"
-"partitioning.\n"
-"\n"
-" * \"Undo\": use this option to cancel your changes.\n"
-"\n"
-" * \"Toggle to normal/expert mode\": allows additional actions on "
-"partitions\n"
-"(Type, options, format) and gives more information.\n"
-"\n"
-" * \"Done\": when you have finished partitioning your hard drive, this will\n"
-"save your changes back to disc.\n"
-"\n"
-"Note: you can reach any option using the keyboard. Navigate through the\n"
-"partitions using [Tab] and [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 chapter ext2fs 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"
-"boot loader. 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_.c:513
-msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
-"Please choose the one you want to resize in order to install your new\n"
-"Mandrake Linux 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"
-"\"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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard 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"
-"disk or partition is called \"C:\")."
-msgstr ""
-"More than one Microsoft Windows partition has been detected on your hard\n"
-"drive. Please choose the one you want to resize in order to install your\n"
-"new Mandrake Linux 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"
-"\"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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard 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"
-"disk or partition is called \"C:\")."
-
-#: ../../help.pm_.c:544
-msgid "Please be patient. This operation can take several minutes."
-msgstr ""
-"Molimo da imate strpljenja. Ova operacija može potrajati nekoliko minuta."
-
-#: ../../help.pm_.c:547
-msgid ""
-"DrakX now needs to know if you want to perform a default (\"Recommended\")\n"
-"installation or if you want to have greater control (\"Expert\"). You can\n"
-"also choose to do a new install or an upgrade of an existing Mandrake Linux\n"
-"system:\n"
-"\n"
-" * \"Install\": completely wipes out the old system. In fact, depending on\n"
-"what currently holds your machine, you will be able to keep some old (Linux\n"
-"or other) partitions unchanged;\n"
-"\n"
-" * \"Upgrade\": this installation class allows to simply update the "
-"packages\n"
-"currently installed on your Mandrake Linux system. It keeps the current\n"
-"partitions of your hard drives as well as user configurations. All other\n"
-"configuration steps remain available with respect to plain installation;\n"
-"\n"
-" * \"Upgrade Packages Only\": this brand new class allows to upgrade an\n"
-"existing Mandrake Linux system while keeping all system configurations\n"
-"unchanged. Adding new packages to the current installation is also\n"
-"possible.\n"
-"\n"
-"Upgrades should work fine for Mandrake Linux systems starting from \"8.1\"\n"
-"release.\n"
-"\n"
-"Depending on your knowledge of GNU/Linux, select one of the following\n"
-"choices:\n"
-"\n"
-" * Recommended: choose this if you have never installed a GNU/Linux\n"
-"operating system. The installation will be very easy and you will only be\n"
-"asked a few questions;\n"
-"\n"
-" * Expert: if you have a good knowledge of GNU/Linux, you can choose this\n"
-"installation class. The expert installation will allow you to perform a\n"
-"highly-customized installation. Answering some of the questions can be\n"
-"difficult if you do not have a good knowledge of GNU/Linux, so do not\n"
-"choose this unless you know what you are doing."
-msgstr ""
-"DrakX sada mora znati da li želite obaviti podrazumjevanu instalaciju\n"
-"(\"PreporuĨeno\") ili želite da imate veću kontrolu (\"Ekspert\"). Takođe\n"
-"imate izbor između instalacije novog ili unaprijeđenja postojećeg\n"
-"Mandrake Linux sistema. \n"
-"\n"
-" * \"Instaliraj\" Potpuno briÅe raniji sistem. U stvari, ovisno o tome\n"
-"Åta trenutno sadrži vaÅ raĨunar, možda ćete moći zadržati neke stare\n"
-"particije (Linux i druge) bez ikakvih izmjena.\n"
-"\n"
-" * \"Unaprijedi\" Ova klasa instalacije vam omogućuje da jednostavno\n"
-"unaprijedite pakete trenutno instalirane na vaÅem Mandrake Linux sistemu.\n"
-"Ona zadržava trenutne particije vaÅih hard diskova kao i postavke "
-"korisnika.\n"
-"Svi drugi koraci instalacije ostaju dostupni kao i u obiĨnoj instalaciji.\n"
-"\n"
-" * \"Unaprijedi samo pakete\" Ova potpuno nova klasa vam omogućuje da\n"
-"unaprijedite postojeći Mandrake Linux sistem pri Ĩemu ćete saĨuvati svu\n"
-"sistemsku konfiguraciju bez izmjena. Dodavanje novih paketa trenutnoj\n"
-"instalaciji je također moguće.\n"
-"\n"
-"UnaprijeÄ‘enja bi trebala raditi fino za Mandrake Linux sisteme poĨevÅi\n"
-"od verzije \"8.1\".\n"
-"\n"
-"Ovisno o vaÅem poznavnaju GNU/Linuxa, molim izaberite jedan od sljedećih\n"
-"naĨina za instalaciju ili update vaÅeg Mandrake Linux operativnog sistema:\n"
-"\n"
-" * PreporuĨeno: ako nikada niste instalirali GNU/Linux operativni sistem,\n"
-"izaberite ovo. Instalacija će biti veoma jednostavna i biće vam postavljeno\n"
-"svega par pitanja.\n"
-"\n"
-" * Ekspert: ako imate dobro znanje GNU/Linuxa, možete odabrati ovu klasu\n"
-"instalacije. Ekspertna instalacija vam omogućuje da obavite visoko "
-"prilagođenu\n"
-"instalaciju. Odgovor na neka pitanja može biti vrlo težak ako nemate dobro\n"
-"poznavanje GNU/Linuxa, zato nemojte birati ovo sem ako znate Åta radite."
-
-#: ../../help.pm_.c:583
-msgid ""
-"Normally, DrakX selects the right keyboard for you (depending on the\n"
-"language you have chosen) and you won't even see this step. However, you\n"
-"might not have a keyboard that corresponds exactly to your language: for\n"
-"example, if you are an English speaking Swiss person, you may still want\n"
-"your keyboard to be a Swiss keyboard. Or if you speak English but are\n"
-"located in Quebec, you may find yourself in the same situation. In both\n"
-"cases, you will have to go back to this installation step and select an\n"
-"appropriate keyboard from the list.\n"
-"\n"
-"Click on the \"More\" button to be presented with the complete list of\n"
-"supported keyboards."
-msgstr ""
-"Normally, DrakX selects the right keyboard for you (depending on the\n"
-"language you have chosen) and you will not even see this step. However, you\n"
-"might not have a keyboard that corresponds exactly to your language: for\n"
-"example, if you are an English speaking Swiss person, you may still want\n"
-"your keyboard to be a Swiss keyboard. Or if you speak English but are\n"
-"located in Quebec, you may find yourself in the same situation. In both\n"
-"cases, you will have to go back to this installation step and select an\n"
-"appropriate keyboard from the list.\n"
-"\n"
-"Click on the \"More\" button to be presented with the complete list of\n"
-"supported keyboards."
-
-#: ../../help.pm_.c:596
-msgid ""
-"Please choose your preferred language for installation and system usage.\n"
-"\n"
-"Clicking on the \"Advanced\" button will allow you to select other\n"
-"languages to be installed on your workstation. Selecting other languages\n"
-"will install the language-specific files for system documentation and\n"
-"applications. For example, if you will host users from Spain on your\n"
-"machine, select English as the main language in the tree view and in the\n"
-"Advanced section click on the box corresponding to \"Spanish|Spain\".\n"
-"\n"
-"Note that multiple languages may be installed. Once you have selected any\n"
-"additional locales, click the \"OK\" button to continue."
-msgstr ""
-"Please choose your preferred language for installation and system usage.\n"
-"\n"
-"Clicking on the \"Advanced\" button will allow you to select other\n"
-"languages to be installed on your workstation. Selecting other languages\n"
-"will install the language-specific files for system documentation and\n"
-"applications. For example, if you will host users from Spain on your\n"
-"machine, select English as the main language in the tree view and in the\n"
-"Advanced section click on the grey star corresponding to \"Spanish|Spain\".\n"
-"\n"
-"Note that multiple languages may be installed. Once you have selected any\n"
-"additional locales click the \"OK\" button to continue."
-
-#: ../../help.pm_.c:609
-msgid ""
-"DrakX generally detects the number of buttons your mouse has. If not, it\n"
-"assumes you have a two-button mouse and will set it up for third-button\n"
-"emulation. DrakX will automatically know whether it is a PS/2, serial or\n"
-"USB mouse.\n"
-"\n"
-"If you wish to specify a different type of mouse select the appropriate\n"
-"type from the provided list.\n"
-"\n"
-"If you choose a mouse other than the default, a test screen will be\n"
-"displayed. Use the buttons and wheel to verify that the settings are\n"
-"correct. If the mouse is not working well, press the space bar or [Return]\n"
-"to \"Cancel\" and choose again."
-msgstr ""
-"By default, DrakX assumes you have a two-button mouse and will set it up\n"
-"for third-button emulation. DrakX will automatically know whether it is a\n"
-"PS/2, serial or USB mouse.\n"
-"\n"
-"If you wish to specify a different type of mouse select the appropriate\n"
-"type from the list provided.\n"
-"\n"
-"If you choose a mouse other than the default you will be presented with a\n"
-"mouse test screen. Use the buttons and wheel to verify that the settings\n"
-"are good. If the mouse is not working correctly press the space bar or\n"
-"[Return] to \"Cancel\" and choose again."
-
-#: ../../help.pm_.c:623
-msgid ""
-"Please select the correct port. For example, the \"COM1\" port under\n"
-"Windows is named \"ttyS0\" under GNU/Linux."
-msgstr ""
-"Molimo izaberite ispravan port. Na primjer, \"COM1\" port pod MS\n"
-"Windowsom se zove \"ttyS0\" pod GNU/Linuxom."
-
-#: ../../help.pm_.c:627
-msgid ""
-"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 choose\n"
-"not to enter a password, but we strongly advise you against this if only\n"
-"for one reason: do not think that because you booted GNU/Linux that your\n"
-"other operating systems are safe from mistakes. Since \"root\" can overcome\n"
-"all limitations and unintentionally erase all data on partitions by\n"
-"carelessly accessing the partitions themselves, it is important for it to\n"
-"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."
-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 choose\n"
-"not to enter a password, but we strongly advise you against this if onlynfor "
-"one reason: do not think that because you booted GNU/Linux that your\n"
-"other operating systems are safe from mistakes. Since \"root\" can overcome\n"
-"all limitations and unintentionally erase all data on partitions by\n"
-"carelessly accessing the partitions themselves, it is important for it to\n"
-"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_.c:663
-msgid ""
-"LILO and grub are GNU/Linux bootloaders. This stage, normally, is totally\n"
-"automated. In fact, DrakX analyzes the disk boot sector and acts\n"
-"accordingly, depending on what it finds here:\n"
-"\n"
-" * if a Windows boot sector is found, it will replace it with a grub/LILO\n"
-"boot sector. Hence, you will be able to load either GNU/Linux or another\n"
-"OS;\n"
-"\n"
-" * if a grub or LILO boot sector is found, it will replace it with a new\n"
-"one.\n"
-"\n"
-"If in doubt, DrakX will display a dialog with various options.\n"
-"\n"
-" * \"Bootloader to use\": you have three choices:\n"
-"\n"
-" * \"GRUB\": if you prefer grub (text menu).\n"
-"\n"
-" * \"LILO with graphical menu\": if you prefer LILO with its graphical\n"
-"interface.\n"
-"\n"
-" * \"LILO with text menu\": if you prefer LILO with its text menu "
-"interface.\n"
-"\n"
-" * \"Boot device\": in most cases, you will not change the default\n"
-"(\"/dev/hda\"), but if you prefer, the bootloader can be installed on the\n"
-"second hard drive (\"/dev/hdb\"), or even on a floppy disk (\"/dev/fd0\");\n"
-"\n"
-" * \"Delay before booting the default image\": when rebooting the computer,\n"
-"this is the delay granted to the user to choose in the bootloader menu,\n"
-"another boot entry than the default one.\n"
-"\n"
-"!! Beware that if you choose not to install a bootloader (by selecting\n"
-"\"Cancel\" here), you must ensure that you have a way to boot your Mandrake\n"
-"Linux system! Also, be sure you know what you do before changing any of the\n"
-"options. !!\n"
-"\n"
-"Clicking the \"Advanced\" button in this dialog will offer many advanced\n"
-"options, which are reserved to the expert user.\n"
-"\n"
-"After you have configured the general bootloader parameters, the list of\n"
-"boot options which will be available at boot time will be displayed.\n"
-"\n"
-"If there is another operating system installed on your machine, it will\n"
-"automatically be added to the boot menu. Here, you can choose to fine-tune\n"
-"the existing options. Select an entry and click \"Modify\" to modify or\n"
-"remove it; \"Add\" creates a new entry; and \"Done\" goes on to the next\n"
-"installation step."
-msgstr ""
-"LILO and grub are boot loaders for GNU/Linux. This stage, normally, is\n"
-"automated. In fact, DrakX analyzes the disk boot sector and acts\n"
-"accordingly, depending on what it finds here:\n"
-"\n"
-" * if a Windows boot sector is found, it will replace it with a grub/LILO\n"
-"boot sector. Hence, you will be able to load either GNU/Linux or another\n"
-"OS;\n"
-"\n"
-" * if a grub or LILO boot sector is found, it will replace it with a new\n"
-"one.\n"
-"\n"
-"If in doubt, DrakX will display a dialog with various options.\n"
-"\n"
-" * \"Boot loader to use\": you have three choices:\n"
-"\n"
-" * \"GRUB\": if you prefer grub (text menu).\n"
-"\n"
-" * \"LILO with graphical menu\": if you prefer LILO with its graphical\n"
-"interface.\n"
-"\n"
-" * \"LILO with text menu\": if you prefer LILO with its text menu "
-"interface.\n"
-"\n"
-" * \"Boot device\": in most cases, you will not change the default\n"
-"(\"/dev/hda\"), but if you prefer, the boot loader can be installed on the\n"
-"second hard drive (\"/dev/hdb\"), or even on a floppy disk (\"/dev/fd0\").\n"
-"\n"
-" * \"Delay before booting the default image\": when rebooting the computer,\n"
-"this is the delay granted to the user to choose - in the boot loader menu,\n"
-"another boot entry than the default one.\n"
-"\n"
-"!! Beware that if you choose not to install a boot loader (by selecting\n"
-"\"Cancel\" here), you must ensure that you have a way to boot your Mandrake\n"
-"Linux system! Also be sure you know what you do before changing any of the\n"
-"options. !!\n"
-"\n"
-"Clicking the \"Advanced\" button in this dialog will offer many advanced\n"
-"options, which are reserved to the expert user.\n"
-"\n"
-"After you have configured the general boot-loader parameters, you are\n"
-"presented the list of boot options that will be available at boot time.\n"
-"\n"
-"If there is another operating system installed on your machine, it will be\n"
-"automatically added to the boot menu. Here, you can choose to fine-tune the\n"
-"existing options. Select an entry and click \"Modify\" to modify or remove\n"
-"it; \"Add\" creates a new entry; and \"Done\" goes on to the next\n"
-"installation step."
-
-#: ../../help.pm_.c:711
-msgid ""
-"LILO (the LInux LOader) and grub are bootloaders: they are able to boot\n"
-"either GNU/Linux or any other operating system present on your computer.\n"
-"Normally, these other operating systems are correctly detected and\n"
-"installed. If this is not the case, you can add an entry by hand in this\n"
-"screen. Be careful to choose the correct parameters.\n"
-"\n"
-"You may also not want to give access to these other operating systems to\n"
-"anyone. In which case, you can delete the corresponding entries. But then,\n"
-"you will need a boot disk in order to boot those other operating systems!"
-msgstr ""
-"LILO (the LInux LOader) and grub are bootloaders: they are able to boot\n"
-"either GNU/Linux or any other operating system present on your computer.\n"
-"Normally, these other operating systems are correctly detected and\n"
-"installed. If this is not the case, you can add an entry by hand in this\n"
-"screen. Be careful to choose the correct parameters.\n"
-"\n"
-"You may also not want to give access to these other operating systems to\n"
-"anyone. In which case, you can delete the corresponding entries. But then,\n"
-"you will need a boot disk in order to boot those other operating systems!"
-
-#: ../../help.pm_.c:722
-msgid ""
-"You must indicate where you wish to place the information required to boot\n"
-"to GNU/Linux.\n"
-"\n"
-"Unless you know exactly what you are doing, choose \"First sector of drive\n"
-"(MBR)\"."
-msgstr ""
-"Morate navesti gdje želite smjestiti informacije koje su potrebne za\n"
-"bootanje GNU/Linuxa.\n"
-"\n"
-"Izaberite \"Prvi sektor na disku (MBR)\" sem ako znate taĨno Åta radite."
-
-#: ../../help.pm_.c:729
-msgid ""
-"Here, we select a printing system for your computer. Other OSs may offer\n"
-"you one, but Mandrake Linux offers three.\n"
-"\n"
-" * \"pdq\" which means ``print, don't queue'', is the choice if you have a\n"
-"direct connection to your printer and you want to be able to panic out of\n"
-"printer jams, and you do not have networked printers. It will handle only\n"
-"very simple network cases and is somewhat slow for networks. Pick \"pdq\"\n"
-"if this is your maiden voyage to GNU/Linux. You can change your choices\n"
-"after installation by running PrinterDrake from the Mandrake Control Center\n"
-"and clicking the expert button.\n"
-"\n"
-" * \"CUPS\"``Common Unix Printing System'', is excellent at printing to "
-"your\n"
-"local printer and also halfway-around the planet. It is simple and can act\n"
-"as a server or a client for the ancient \"lpd\" printing system. Hence, it\n"
-"is compatible with the systems that went before. It can do many tricks, but\n"
-"the basic setup is almost as easy as \"pdq\". If you need this to emulate\n"
-"an \"lpd\" server, you must turn on the \"cups-lpd\" daemon. It has\n"
-"graphical front-ends for printing or choosing printer options.\n"
-"\n"
-" * \"lprNG\"``line printer daemon New Generation''. This system can do\n"
-"approximately the same things the others can do, but it will print to\n"
-"printers mounted on a Novell Network, because it supports the IPX protocol,\n"
-"and it can print directly to shell commands. If you have need of Novell or\n"
-"printing to commands without using a separate pipe construct, use lprNG.\n"
-"Otherwise, CUPS is preferable as it is simpler and better at working over\n"
-"networks."
-msgstr ""
-"Here, we select a printing system for your computer. Other OSs may offer\n"
-"you one, but Mandrake Linux offers three.\n"
-"\n"
-" * \"pdq\" which means ``print, don't queue'', is the choice if you have a\n"
-"direct connection to your printer and you want to be able to panic out of\n"
-"printer jams, and you do not have networked printers. It will handle only\n"
-"very simple network cases and is somewhat slow for networks. Pick \"pdq\"\n"
-"if this is your maiden voyage to GNU/Linux. You can change your choices\n"
-"after installation by running PrinterDrake from the Mandrake Control "
-"Centernand clicking the expert button.\n"
-"\n"
-" * \"CUPS\"``Common Unix Printing System'', is excellent at printing to "
-"your\n"
-"local printer and also halfway-around the planet. It is simple and can act\n"
-"as a server or a client for the ancient \"lpd\" printing system. Hence, it\n"
-"is compatible with the systems that went before. It can do many tricks, but\n"
-"the basic setup is almost as easy as \"pdq\". If you need this to emulate\n"
-"an \"lpd\" server, you must turn on the \"cups-lpd\" daemon. It has\n"
-"graphical front-ends for printing or choosing printer options.\n"
-"\n"
-" * \"lprNG\"``line printer daemon New Generation''. This system can do\n"
-"approximately the same things the others can do, but it will print to\n"
-"printers mounted on a Novell Network, because it supports the IPX protocol,\n"
-"and it can print directly to shell commands. If you have need of Novell or\n"
-"printing to commands without using a separate pipe construct, use lprNG.\n"
-"Otherwise, CUPS is preferable as it is simpler and better at working over\n"
-"networks."
-
-#: ../../help.pm_.c:757
-msgid ""
-"DrakX now detects any IDE device present in your computer. It will also\n"
-"scan for one or more PCI SCSI card(s) on your system. If a SCSI card is\n"
-"found, DrakX will automatically install the appropriate driver.\n"
-"\n"
-"Because hardware detection does not always detect a piece of hardware,\n"
-"DrakX will ask you to confirm if a PCI SCSI card is present. Click \"Yes\"\n"
-"if you know that there is a SCSI card installed in your machine. You will\n"
-"be presented a list of SCSI cards to choose from. Click \"No\" if you have\n"
-"no SCSI hardware. If you are unsure, you can check the list of hardware\n"
-"detected in your machine by selecting \"See hardware info\" and clicking\n"
-"\"OK\". Examine the list of hardware and then click on the \"OK\" button to\n"
-"return to the SCSI interface question.\n"
-"\n"
-"If you have to manually specify your adapter, DrakX will ask if you want to\n"
-"specify options for it. You should allow DrakX to probe the hardware for\n"
-"the card-specific options which the hardware needs to initialize. This\n"
-"usually works well.\n"
-"\n"
-"If DrakX is not able to probe for the options which need to be passed, you\n"
-"will need to provide options to the driver manually. Please review the\n"
-"``User Guide'' (chapter 3, in the ``Collecting Information on Your\n"
-"Hardware'' section) for hints on retrieving the parameters required from\n"
-"hardware documentation, from the manufacturer's web site (if you have\n"
-"Internet access) or from MicrosoftWindows (if you used this hardware with\n"
-"Windows on your system)."
-msgstr ""
-"DrakX sada pronalazi sve IDE ureÄ‘aje prisutne na vaÅem raĨunaru. TakoÄ‘er\n"
-"će pretražiti sistem za jednu ili viÅe PCI SCSI kartica. Ako SCSI kartica "
-"bude\n"
-"pronađena, DrakX će automatski instalirati odgovarajući drajver.\n"
-"\n"
-"Budući da pronalaženje hardware-a ponekad ne uspjeva pronaći neki dio\n"
-"hardware-a, DrakX će pitati za potvrdu da li imate SCSI karticu ili ne.\n"
-"Kliknite Da ako znate da postoji SCSI kartica instalirana na vaÅem "
-"raĨunaru.\n"
-"Biće vam predstavljena lista SCSI kartica koje možete izabrati. Kliknite Ne\n"
-"ako nemate nikakav SCSI hardware. Ako niste sigurni, možete pregledati "
-"listu\n"
-"hardware u vaÅem raĨunaru tako Åto ćete izabrati \"Vidi hardware info\" i "
-"kliknuti\n"
-"na OK. Pretražite listu hardware-a i zatim kliknite na dugme OK kako bi se\n"
-"vratili na pitanje o SCSI-ju.\n"
-"\n"
-"Ako morate ruĨno odabrati adapter, DrakX će vas pitati da li želite navesti\n"
-"neke opcije za njega. Trebate dopustiti DrakXu da ispita hardware za\n"
-"neke opcije specifiĨne za tu karticu. Ovo obiĨno radi dobro.\n"
-"\n"
-"Ako DrakX ne može ispitati opcije koje trebaju biti proslijeđene, moraćete\n"
-"ruĨno navesti opcije za drajver. Molimo pogledajte PriruĨnik za koriÅtenje\n"
-"/User Guide/ (poglavlje 3, sekcija \"Prikupljanje informacija o vaÅem "
-"hardveru\")\n"
-"za napomene o pribavljanju ovih informacija iz hardverske dokumentacije,\n"
-"sa web stranice proizvođaĨa (ako imate internet pristup) ili iz Microsoft\n"
-"Windowsa (ako ga imate na vaÅem sistemu)."
-
-#: ../../help.pm_.c:784
-msgid ""
-"You can add additional entries for yaboot, either for other operating\n"
-"systems, alternate kernels, or for an emergency boot image.\n"
-"\n"
-"For other OSs, the entry consists only of a label and the \"root\"\n"
-"partition.\n"
-"\n"
-"For Linux, there are a few possible options:\n"
-"\n"
-" * Label: this is simply the name you will have to type at the yaboot "
-"prompt\n"
-"to select this boot option;\n"
-"\n"
-" * Image: this would be the name of the kernel to boot. Typically, vmlinux\n"
-"or a variation of vmlinux with an extension;\n"
-"\n"
-" * Root: the \"root\" device or ``/'' for your Linux installation;\n"
-"\n"
-" * Append: on Apple hardware, the kernel append option is used quite often\n"
-"to assist in initializing video hardware, or to enable keyboard mouse\n"
-"button emulation for the often lacking 2nd and 3rd mouse buttons on a stock\n"
-"Apple mouse. The following are some examples:\n"
-"\n"
-" video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111 "
-"hda=autotune\n"
-"\n"
-" video=atyfb:vmode:12,cmode:24 adb_buttons=103,111\n"
-"\n"
-" * Initrd: this option can be used either to load initial modules, before\n"
-"the boot device is available, or to load a ramdisk image for an emergency\n"
-"boot situation;\n"
-"\n"
-" * Initrd-size: the default ramdisk size is generally 4,096 bytes. If you\n"
-"need to allocate a large ramdisk, this option can be used;\n"
-"\n"
-" * Read-write: normally the \"root\" partition is initially brought up in\n"
-"read-only, to allow a file system check before the system becomes ``live''.\n"
-"Here, you can override this option;\n"
-"\n"
-" * NoVideo: should the Apple video hardware prove to be exceptionally\n"
-"problematic, you can select this option to boot in ``novideo'' mode, with\n"
-"native frame buffer support;\n"
-"\n"
-" * Default: selects this entry as being the default Linux selection,\n"
-"selectable by just pressing ENTER at the yaboot prompt. This entry will\n"
-"also be highlighted with a ``*'', if you press [Tab] to see the boot\n"
-"selections."
-msgstr ""
-"You can add additional entries for yaboot, either for other operating\n"
-"systems, alternate kernels, or for an emergency boot image.\n"
-"\n"
-"For other OSs, the entry consists only of a label and the root partition.\n"
-"\n"
-"For Linux, there are a few possible options:\n"
-"\n"
-" * Label: this is simply the name you will have to type at the yaboot "
-"prompt\n"
-"to select this boot option;\n"
-"\n"
-" * Image: this would be the name of the kernel to boot. Typically, vmlinux\n"
-"or a variation of vmlinux with an extension;\n"
-"\n"
-" * Root: the \"root\" device or \"/\" for your Linux installation.\n"
-"\n"
-" * Append: on Apple hardware, the kernel append option is used quite often\n"
-"to assist in initializing video hardware, or to enable keyboard mouse\n"
-"button emulation for the often lacking 2nd and 3rd mouse buttons on a stock\n"
-"Apple mouse. The following are some examples:\n"
-"\n"
-" video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111 "
-"hda=autotune\n"
-"\n"
-" video=atyfb:vmode:12,cmode:24 adb_buttons=103,111\n"
-"\n"
-" * Initrd: this option can be used either to load initial modules, before\n"
-"the boot device is available, or to load a ramdisk image for an emergency\n"
-"boot situation;\n"
-"\n"
-" * Initrd-size: the default ramdisk size is generally 4,096 bytes. If you\n"
-"need to allocate a large ramdisk, this option can be used;\n"
-"\n"
-" * Read-write: normally the \"root\" partition is initially brought up in\n"
-"read-only, to allow a file system check before the system becomes ``live''.\n"
-"Here, you can override this option;\n"
-"\n"
-" * NoVideo: should the Apple video hardware prove to be exceptionally\n"
-"problematic, you can select this option to boot in ``novideo'' mode, with\n"
-"native frame buffer support;\n"
-"\n"
-" * Default: selects this entry as being the default Linux selection,\n"
-"selectable by just pressing ENTER at the yaboot prompt. This entry will\n"
-"also be highlighted with a ``*'', if you press [Tab] to see the boot\n"
-"selections."
-
-#: ../../help.pm_.c:830
-msgid ""
-"Yaboot is a bootloader for NewWorld MacIntosh hardware. It is able to boot\n"
-"either GNU/Linux, MacOS or MacOSX if present on your computer. Normally,\n"
-"these other operating systems are correctly detected and installed. If this\n"
-"is not the case, you can add an entry by hand in this screen. Be careful to\n"
-"choose the correct parameters.\n"
-"\n"
-"Yaboot's main options are:\n"
-"\n"
-" * Init Message: a simple text message displayed before the boot prompt;\n"
-"\n"
-" * Boot Device: indicates where you want to place the information required\n"
-"to boot to GNU/Linux. Generally, you set up a bootstrap partition earlier\n"
-"to hold this information;\n"
-"\n"
-" * Open Firmware Delay: unlike LILO, there are two delays available with\n"
-"yaboot. The first delay is measured in seconds and at this point, you can\n"
-"choose between CD, OF boot, MacOS or Linux;\n"
-"\n"
-" * Kernel Boot Timeout: this timeout is similar to the LILO boot delay.\n"
-"After selecting Linux, you will have this delay in 0.1 second before your\n"
-"default kernel description is selected;\n"
-"\n"
-" * Enable CD Boot?: checking this option allows you to choose ``C'' for CD\n"
-"at the first boot prompt;\n"
-"\n"
-" * Enable OF Boot?: checking this option allows you to choose ``N'' for "
-"Open\n"
-"Firmware at the first boot prompt;\n"
-"\n"
-" * Default OS: you can select which OS will boot by default when the Open\n"
-"Firmware Delay expires."
-msgstr ""
-"Yaboot is a boot loader for NewWorld MacIntosh hardware. It is able to boot\n"
-"either GNU/Linux, MacOS or MacOSX if present on your computer. Normally,\n"
-"these other operating systems are correctly detected and installed. If this\n"
-"is not the case, you can add an entry by hand in this screen. Be careful as\n"
-"to choose the correct parameters.\n"
-"\n"
-"Yaboot's main options are:\n"
-"\n"
-" * Init Message: a simple text message that is displayed before the boot\n"
-"prompt.\n"
-"\n"
-" * Boot Device: indicate where you want to place the information required "
-"to\n"
-"boot to GNU/Linux. Generally, you setup a bootstrap partition earlier to\n"
-"hold this information.\n"
-"\n"
-" * Open Firmware Delay: unlike LILO, there are two delays available with\n"
-"yaboot. The first delay is measured in seconds and at this point, you can\n"
-"choose between CD, OF boot, MacOS or Linux.\n"
-"\n"
-" * Kernel Boot Timeout: this timeout is similar to the LILO boot delay.\n"
-"After selecting Linux, you will have this delay in 0.1 second before your\n"
-"default kernel description is selected.\n"
-"\n"
-" * Enable CD Boot?: checking this option allows you to choose \"C\" for CD\n"
-"at the first boot prompt.\n"
-"\n"
-" * Enable OF Boot?: checking this option allows you to choose \"N\" for "
-"Open\n"
-"Firmware at the first boot prompt.\n"
-"\n"
-" * Default OS: you can select which OS will boot by default when the Open\n"
-"Firmware Delay expires."
-
-#: ../../help.pm_.c:862
-msgid ""
-"Here are presented various parameters concerning your machine. Depending on\n"
-"your installed hardware, you may or not, see the following entries:\n"
-"\n"
-" * \"Mouse\": check the current mouse configuration and click on the button\n"
-"to change it if necessary;\n"
-"\n"
-" * \"Keyboard\": check the current keyboard map configuration and click on\n"
-"the button to change that if necessary;\n"
-"\n"
-" * \"Timezone\": DrakX, by default, guesses your time zone from the "
-"language\n"
-"you have chosen. But here again, as for the choice of a keyboard, you may\n"
-"not be in the country for which the chosen language should correspond.\n"
-"Hence, you may need to click on the \"Timezone\" button in order to\n"
-"configure the clock according to the time zone you are in;\n"
-"\n"
-" * \"Printer\": clicking on the \"No Printer\" button will open the printer\n"
-"configuration wizard;\n"
-"\n"
-" * \"Sound card\": if a sound card is detected on your system, it is\n"
-"displayed here. No modification possible at installation time;\n"
-"\n"
-" * \"TV card\": if a TV card is detected on your system, it is displayed\n"
-"here. No modification possible at installation time;\n"
-"\n"
-" * \"ISDN card\": if an ISDN card is detected on your system, it is\n"
-"displayed here. You can click on the button to change the parameters\n"
-"associated with it."
-msgstr ""
-"Here are presented various parameters concerning your machine. Depending on\n"
-"your installed hardware, you may - or not, see the following entries:\n"
-"\n"
-" * \"Mouse\": check the current mouse configuration and click on the button\n"
-"to change it if necessary.\n"
-"\n"
-" * \"Keyboard\": check the current keyboard map configuration and click on\n"
-"the button to change that if necessary.\n"
-"\n"
-" * \"Timezone\": DrakX, by default, guesses your time zone from the "
-"language\n"
-"you have chosen. But here again, as for the choice of a keyboard, you may\n"
-"not be in the country for which the chosen language should correspond.\n"
-"Hence, you may need to click on the \"Timezone\" button in order to\n"
-"configure the clock according to the time zone you are in.\n"
-"\n"
-" * \"Printer\": clicking on the \"No Printer\" button will open the printer\n"
-"configuration wizard.\n"
-"\n"
-" * \"Sound card\": if a sound card is detected on your system, it is\n"
-"displayed here. No modification possible at installation time.\n"
-"\n"
-" * \"TV card\": if a TV card is detected on your system, it is displayed\n"
-"here. No modification possible at installation time.\n"
-"\n"
-" * \"ISDN card\": if an ISDN card is detected on your system, it is\n"
-"displayed here. You can click on the button to change the parameters\n"
-"associated to it."
-
-#: ../../help.pm_.c:891
-msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandrake Linux partition. Be careful, all data present on it will be lost\n"
-"and will not be recoverable!"
-msgstr ""
-"Izaberite hard disk koji želite obrisati kako biste instalirali vaÅu novu "
-"Mandrake\n"
-"Linux particiju. Budite pažljivi, svi podaci koji se nalaze na njemu će "
-"biti\n"
-"izgubljeni i neće se moći vratiti!"
-
-#: ../../help.pm_.c:896
-msgid ""
-"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"
-"any Windows data.\n"
-"\n"
-"Click on \"Cancel\" to cancel this operation without losing any data and\n"
-"partitions present on this hard 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"
-"any Windows data.\n"
-"\n"
-"Click on \"Cancel\" to cancel this operation without losing any data and\n"
-"partitions present on this hard drive."
-
-#: ../../install2.pm_.c:113
-#, c-format
-msgid ""
-"Can't 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 ""
-
-#: ../../install2.pm_.c:169
-#, c-format
-msgid "You must also format %s"
-msgstr "Morate također formatirati i %s"
-
-#: ../../install_any.pm_.c:411
-#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They don't have any known security\n"
-"issues, but some new could be found. In that case, you must make sure to "
-"upgrade\n"
-"as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
-msgstr ""
-"Izabrali ste sljedeći server (servere): %s\n"
-"\n"
-"\n"
-"Ovi serveri su aktivirani automatski. Oni nemaju nikakvih poznatih "
-"sigurnosnih\n"
-"problema, ali možda će biti pronađeni neki novi. U tom sluĨaju, morate ih\n"
-"unaprijediti Åto prije bude moguće.\n"
-"\n"
-"\n"
-"Da li zaista želite instalirati ove servere?\n"
-
-#: ../../install_any.pm_.c:447
-msgid "Can't use broadcast with no NIS domain"
-msgstr "Ne mogu koristiti broadcast bez NIS domene"
-
-#: ../../install_any.pm_.c:793
-#, c-format
-msgid "Insert a FAT formatted floppy in drive %s"
-msgstr "Ubacite FAT formatiranu disketu u jedinicu %s"
-
-#: ../../install_any.pm_.c:797
-msgid "This floppy is not FAT formatted"
-msgstr "Ova disketa nije FAT (DOS/Windows) formatirana"
-
-#: ../../install_any.pm_.c:809
-msgid ""
-"To use this saved packages selection, boot installation with ``linux "
-"defcfg=floppy''"
-msgstr ""
-"Da koristite ovaj izbor spaÅenih paketa, bootajte instalaciju sa ``linux "
-"defcfg=floppy''"
-
-#: ../../install_any.pm_.c:831 ../../partition_table.pm_.c:763
-#, c-format
-msgid "Error reading file %s"
-msgstr "GreÅka u Ĩitanju datoteke %s"
-
-#: ../../install_interactive.pm_.c:23
-#, c-format
-msgid ""
-"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
-"You can find some information about them at: %s"
-msgstr ""
-"Neki dio hardware-a na vaÅem raĨunaru zahtjeva ``posjedovane'' drajvere za "
-"rad.\n"
-"Možete naći viÅe podataka o njima na: %s"
-
-#: ../../install_interactive.pm_.c:58
-msgid ""
-"You must have a root partition.\n"
-"For this, create a partition (or click on an existing one).\n"
-"Then choose action ``Mount point'' and set it to `/'"
-msgstr ""
-"Morate imati root particiju.\n"
-"Za ovo, kreirajte particiju (ili kliknite na neku od postojećih).\n"
-"Zatim izaberite ``TaĨka montiranja'' i postavite ga na `/'"
-
-#: ../../install_interactive.pm_.c:63
-msgid "You must have a swap partition"
-msgstr "Morate imati swap particiju"
-
-#: ../../install_interactive.pm_.c:64
-msgid ""
-"You don't have a swap partition\n"
-"\n"
-"Continue anyway?"
-msgstr ""
-"Nemate nijednu swap particiju\n"
-"\n"
-"Svejedno nastavi?"
-
-#: ../../install_interactive.pm_.c:67 ../../install_steps.pm_.c:163
-msgid "You must have a FAT partition mounted in /boot/efi"
-msgstr "Morate imati FAT particiju montiranu na /boot/efi"
-
-#: ../../install_interactive.pm_.c:90
-msgid "Use free space"
-msgstr "Koristi slobodan prostor"
-
-#: ../../install_interactive.pm_.c:92
-msgid "Not enough free space to allocate new partitions"
-msgstr "Nema dovoljno slobodnog prostora za pravljenje novih particija"
-
-#: ../../install_interactive.pm_.c:100
-msgid "Use existing partition"
-msgstr "Koristi postojeću particiju"
-
-#: ../../install_interactive.pm_.c:102
-msgid "There is no existing partition to use"
-msgstr "Nema nijedne postojeće particije za upotrebu"
-
-#: ../../install_interactive.pm_.c:109
-msgid "Use the Windows partition for loopback"
-msgstr "Koristi Windows particiju za loopback"
-
-#: ../../install_interactive.pm_.c:112
-msgid "Which partition do you want to use for Linux4Win?"
-msgstr "Koju particiju želite koristiti za Linux4Win?"
-
-#: ../../install_interactive.pm_.c:114
-msgid "Choose the sizes"
-msgstr "Izaberite veliĨine"
-
-#: ../../install_interactive.pm_.c:115
-msgid "Root partition size in MB: "
-msgstr "VeliĨina root particije u MB:"
-
-#: ../../install_interactive.pm_.c:116
-msgid "Swap partition size in MB: "
-msgstr "VeliĨina swap particije u MB:"
-
-#: ../../install_interactive.pm_.c:125
-msgid "Use the free space on the Windows partition"
-msgstr "Koristi slobodan prostor na Windows particiji"
-
-#: ../../install_interactive.pm_.c:128
-msgid "Which partition do you want to resize?"
-msgstr "Kojoj particiji želite promjeniti veliĨinu?"
-
-#: ../../install_interactive.pm_.c:130
-msgid "Computing Windows filesystem bounds"
-msgstr "IzraĨunavam granice Windows datoteĨnog sistema"
-
-#: ../../install_interactive.pm_.c:133
-#, c-format
-msgid ""
-"The FAT resizer is unable to handle your partition, \n"
-"the following error occured: %s"
-msgstr ""
-"FAT resizer ne može izmjeniti vaÅu particiju, \n"
-"doÅlo je do sljedeće greÅke: %s"
-
-#: ../../install_interactive.pm_.c:136
-msgid "Your Windows partition is too fragmented, please run ``defrag'' first"
-msgstr ""
-"VaÅa Windows particija je previÅe fragmentirana, molimo prvo pokrenite "
-"``defrag'' "
-
-#: ../../install_interactive.pm_.c:137
-msgid ""
-"WARNING!\n"
-"\n"
-"DrakX will now resize your Windows partition. Be careful:\n"
-"this operation is dangerous. If you have not already done\n"
-"so, you should first exit the installation, run scandisk\n"
-"under Windows (and optionally run defrag), then restart the\n"
-"installation. You should also backup your data.\n"
-"When sure, press Ok."
-msgstr ""
-"UPOZORENJE!\n"
-"\n"
-"DrakX će sada promjeniti veliĨinu vaÅe Windows particije. Budite pažljivi, "
-"ova\n"
-"operacija je opasna. Ako to već niste uradili, najprije napustite "
-"instalaciju,\n"
-"pokrenite scandisk pod Windowsom (opcionalno pokrenite defrag), zatim\n"
-"ponovo pokrenite instalaciju. Također biste trebali spasiti sve podatke.\n"
-"Kada ste sigurni, kliknite na Ok."
-
-#: ../../install_interactive.pm_.c:147
-msgid "Which size do you want to keep for windows on"
-msgstr "Koju veliĨinu želite da saĨuvate za windows na"
-
-#: ../../install_interactive.pm_.c:148
-#, c-format
-msgid "partition %s"
-msgstr "particiji %s"
-
-#: ../../install_interactive.pm_.c:155
-#, c-format
-msgid "FAT resizing failed: %s"
-msgstr "FAT promjena veliĨine nije uspjela: %s"
-
-#: ../../install_interactive.pm_.c:170
-msgid ""
-"There is no FAT partitions to resize or to use as loopback (or not enough "
-"space left)"
-msgstr ""
-"Ne postoji nijedna FAT particija za promjenu veliĨine ili upotrebu za "
-"loopback (ili nije ostalo dovoljno prostora)"
-
-#: ../../install_interactive.pm_.c:176
-msgid "Erase entire disk"
-msgstr "PobriÅi Ĩitav disk"
-
-#: ../../install_interactive.pm_.c:176
-msgid "Remove Windows(TM)"
-msgstr "Ukloni Windows(TM)"
-
-#: ../../install_interactive.pm_.c:179
-msgid "You have more than one hard drive, which one do you install linux on?"
-msgstr "Imate viÅe od jednog hard diska, na koji želite instalirati linux?"
-
-#: ../../install_interactive.pm_.c:182
-#, c-format
-msgid "ALL existing partitions and their data will be lost on drive %s"
-msgstr ""
-"SVE postojeće particije i podaci na njima će biti izgubljeni na disku %s"
-
-#: ../../install_interactive.pm_.c:190
-msgid "Custom disk partitioning"
-msgstr "RuĨno particioniranje diska"
-
-#: ../../install_interactive.pm_.c:194
-msgid "Use fdisk"
-msgstr "Koristi fdisk"
-
-#: ../../install_interactive.pm_.c:197
-#, c-format
-msgid ""
-"You can now partition %s.\n"
-"When you are done, don't forget to save using `w'"
-msgstr ""
-"Sada možete particionirati %s.\n"
-"Kada zavrÅite, ne zaboravite spasiti sa `w'"
-
-#: ../../install_interactive.pm_.c:226
-msgid "You don't have enough free space on your Windows partition"
-msgstr "Nemate dovoljno slobodnog prostora na vaÅoj Windows particiji"
-
-#: ../../install_interactive.pm_.c:242
-msgid "I can't find any room for installing"
-msgstr "Ne mogu naći dovoljno prostora za instalaciju"
-
-#: ../../install_interactive.pm_.c:246
-msgid "The DrakX Partitioning wizard found the following solutions:"
-msgstr "DrakX Particioni Ĩarobnjak je naÅao sljedeća rjeÅenja:"
-
-#: ../../install_interactive.pm_.c:251
-#, c-format
-msgid "Partitioning failed: %s"
-msgstr "Particioniranje nije uspjelo: %s"
-
-#: ../../install_interactive.pm_.c:261
-msgid "Bringing up the network"
-msgstr "Pokrećem mrežu"
-
-#: ../../install_interactive.pm_.c:266
-msgid "Bringing down the network"
-msgstr "Zaustavljam mrežu"
-
-#: ../../install_steps.pm_.c:76
-msgid ""
-"An error occurred, but I don't know how to handle it nicely.\n"
-"Continue at your own risk."
-msgstr ""
-"DoÅlo je do greÅke, ali ne znam kako da je rijeÅim fino.\n"
-"Nastavite na vlastiti rizik."
-
-#: ../../install_steps.pm_.c:205
-#, c-format
-msgid "Duplicate mount point %s"
-msgstr "Dvostruka taĨka montiranja %s"
-
-#: ../../install_steps.pm_.c:388
-msgid ""
-"Some important packages didn't get installed properly.\n"
-"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl Mandrake/RPMS/*.rpm"
-"\"\n"
-msgstr ""
-"Neki bitni paketi nisu ispravno instalirani.\n"
-"Ili je neispravan vaŠcdrom uređaj ili vaŠcdrom medij.\n"
-"Provjerite cdrom na instaliranom raĨunaru koristeći \"rpm -qpl Mandrake/RPMS/"
-"*.rpm\"\n"
-
-#: ../../install_steps.pm_.c:458
-#, c-format
-msgid "Welcome to %s"
-msgstr "Dobro doÅli u %s"
-
-#: ../../install_steps.pm_.c:513 ../../install_steps.pm_.c:755
-msgid "No floppy drive available"
-msgstr "Nema pogodne disketne jedinice"
-
-#: ../../install_steps_auto_install.pm_.c:76
-#: ../../install_steps_stdio.pm_.c:22
-#, c-format
-msgid "Entering step `%s'\n"
-msgstr "Prelazim na korak `%s'\n"
-
-#: ../../install_steps_gtk.pm_.c:148
-msgid ""
-"Your system is low on resource. You may have some problem installing\n"
-"Mandrake Linux. 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 nizak nivo resursa. Možda imate neki problem sa instalacijom\n"
-"Mandrake Linuxa. Ako se ovo desi, možete pokuÅati tekstualnu instalaciju. Za "
-"ovo,\n"
-"pritisnite `F1' prilikom bootanja na CDROMu, zatim unesite `text'."
-
-#: ../../install_steps_gtk.pm_.c:159 ../../install_steps_interactive.pm_.c:224
-msgid "Install Class"
-msgstr "Klasa instalacije"
-
-#: ../../install_steps_gtk.pm_.c:162
-msgid "Please choose one of the following classes of installation:"
-msgstr "Molimo izaberite jednu od sljedećih klasa instalacije:"
-
-#: ../../install_steps_gtk.pm_.c:228
-#, c-format
-msgid ""
-"The total size for the groups you have selected is approximately %d MB.\n"
-msgstr "Ukupna veliĨina grupa koje ste izabrali je otprilike %d MB.\n"
-
-#: ../../install_steps_gtk.pm_.c:230
-#, c-format
-msgid ""
-"If you wish to install less than this size,\n"
-"select the percentage of packages that you want to install.\n"
-"\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of 100%% will install all selected packages."
-msgstr ""
-"Ako želite da instalirate manje od ove veliĨine,\n"
-"izaberite procenat paketa koje želite instalirati.\n"
-"\n"
-"Nizak procenat će instalirati samo one najbitnije pakete;\n"
-"procenat 100%% će instalirati sve izabrane pakete."
-
-#: ../../install_steps_gtk.pm_.c:235
-#, c-format
-msgid ""
-"You have space on your disk for only %d%% of these packages.\n"
-"\n"
-"If you wish to install less than this,\n"
-"select the percentage of packages that you want to install.\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of %d%% will install as many packages as possible."
-msgstr ""
-"Na disku imate mjesta samo za %d%% ovih paketa.\n"
-"\n"
-"Ako želite da instalirate manje od ovoga,\n"
-"izaberite procenat paketa koje želite da instalirate.\n"
-"Nizak procenat će instalirati samo one najbitnije pakete;\n"
-"procenat %d%% će instalirati najveći mogući broj paketa."
-
-#: ../../install_steps_gtk.pm_.c:241
-msgid "You will be able to choose them more specifically in the next step."
-msgstr ""
-"Na idućem koraku ćete biti u mogućnosti da ih izaberete neÅto preciznije."
-
-#: ../../install_steps_gtk.pm_.c:243
-msgid "Percentage of packages to install"
-msgstr "Procenat paketa za instalaciju"
-
-#: ../../install_steps_gtk.pm_.c:291 ../../install_steps_interactive.pm_.c:705
-msgid "Package Group Selection"
-msgstr "Izbor grupe paketa"
-
-#: ../../install_steps_gtk.pm_.c:323 ../../install_steps_interactive.pm_.c:720
-msgid "Individual package selection"
-msgstr "Izbor pojedinaĨnih paketa"
-
-#: ../../install_steps_gtk.pm_.c:346 ../../install_steps_interactive.pm_.c:645
-#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Ukupna veliĨina: %d / %d MB"
-
-#: ../../install_steps_gtk.pm_.c:391
-msgid "Bad package"
-msgstr "Neispravan paket"
-
-#: ../../install_steps_gtk.pm_.c:392
-#, c-format
-msgid "Name: %s\n"
-msgstr "Ime: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:393
-#, c-format
-msgid "Version: %s\n"
-msgstr "Verzija: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:394
-#, c-format
-msgid "Size: %d KB\n"
-msgstr "VeliĨina: %d KB\n"
-
-#: ../../install_steps_gtk.pm_.c:395
-#, c-format
-msgid "Importance: %s\n"
-msgstr "ZnaĨaj: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:417
-msgid ""
-"You can't 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"
-
-#: ../../install_steps_gtk.pm_.c:422
-msgid "The following packages are going to be installed"
-msgstr "Sljedeći paketi će biti instalirani"
-
-#: ../../install_steps_gtk.pm_.c:423
-msgid "The following packages are going to be removed"
-msgstr "Sljedeći paketi će biti uklonjeni"
-
-#: ../../install_steps_gtk.pm_.c:435
-msgid "You can't select/unselect this package"
-msgstr "Ne možete izabrati/iskljuĨiti ovaj paket"
-
-#: ../../install_steps_gtk.pm_.c:447
-msgid "This is a mandatory package, it can't be unselected"
-msgstr "Ovo je obavezan paket, ne može biti iskljuĨen"
-
-#: ../../install_steps_gtk.pm_.c:449
-msgid "You can't unselect this package. It is already installed"
-msgstr "Ne možete iskljuĨiti ovaj paket. On je već instaliran"
-
-#: ../../install_steps_gtk.pm_.c:453
-msgid ""
-"This package must be upgraded\n"
-"Are you sure you want to deselect it?"
-msgstr ""
-"Ovaj paket mora biti unaprijeđen\n"
-"Jeste li sigurni da ga želite iskljuĨiti?"
-
-#: ../../install_steps_gtk.pm_.c:457
-msgid "You can't unselect this package. It must be upgraded"
-msgstr "Ne možete iskljuĨiti ovaj paket. On mora biti unaprijeđen"
-
-#: ../../install_steps_gtk.pm_.c:462
-msgid "Show automatically selected packages"
-msgstr "Automatski prikaži izabrane pakete"
-
-#: ../../install_steps_gtk.pm_.c:463 ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Install"
-msgstr "Instalacija"
-
-#: ../../install_steps_gtk.pm_.c:466
-msgid "Load/Save on floppy"
-msgstr "UĨitaj/Spasi na disketu"
-
-#: ../../install_steps_gtk.pm_.c:467
-msgid "Updating package selection"
-msgstr "Osvježavam izbor paketa"
-
-#: ../../install_steps_gtk.pm_.c:472
-msgid "Minimal install"
-msgstr "Minimalna instalacija"
-
-#: ../../install_steps_gtk.pm_.c:487 ../../install_steps_interactive.pm_.c:555
-msgid "Choose the packages you want to install"
-msgstr "Izaberite pakete koje želite instalirati"
-
-#: ../../install_steps_gtk.pm_.c:503 ../../install_steps_interactive.pm_.c:787
-msgid "Installing"
-msgstr "Instaliram"
-
-#: ../../install_steps_gtk.pm_.c:509
-msgid "Estimating"
-msgstr "Procjenjujem"
-
-#: ../../install_steps_gtk.pm_.c:516
-msgid "Time remaining "
-msgstr "Preostalo vremena "
-
-#: ../../install_steps_gtk.pm_.c:528
-msgid "Please wait, preparing installation"
-msgstr "Molimo saĨekajte, pripremam instalaciju"
-
-#: ../../install_steps_gtk.pm_.c:611
-#, c-format
-msgid "%d packages"
-msgstr "%d paketa"
-
-#: ../../install_steps_gtk.pm_.c:616
-#, c-format
-msgid "Installing package %s"
-msgstr "Instaliram paket %s"
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-#: ../../standalone/drakautoinst_.c:203
-msgid "Accept"
-msgstr "Prihvati"
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-msgid "Refuse"
-msgstr "Odbij"
-
-#: ../../install_steps_gtk.pm_.c:658 ../../install_steps_interactive.pm_.c:812
-#, c-format
-msgid ""
-"Change your Cd-Rom!\n"
-"\n"
-"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
-"done.\n"
-"If you don't have it, press Cancel to avoid installation from this Cd-Rom."
-msgstr ""
-"Promjenite vaÅ CD-ROM!\n"
-"\n"
-"Molimo ubacite CD oznaĨen sa \"%s\" u vaŠCD-ROM uređaj i pritisnite Ok kad "
-"ste spremni.\n"
-"Ako ga nemate, pritisnite Odustani da biste izbjegli instaliranje sa ovog CD-"
-"ROMa."
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_gtk.pm_.c:676
-#: ../../install_steps_interactive.pm_.c:824
-#: ../../install_steps_interactive.pm_.c:828
-msgid "Go on anyway?"
-msgstr "Svejedno nastavi?"
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_interactive.pm_.c:824
-msgid "There was an error ordering packages:"
-msgstr "DoÅlo je do greÅke pri naruĨivanju paketa:"
-
-#: ../../install_steps_gtk.pm_.c:676 ../../install_steps_interactive.pm_.c:828
-msgid "There was an error installing packages:"
-msgstr "DoÅlo je do greÅke kod instaliranja paketa:"
-
-#: ../../install_steps_interactive.pm_.c:10
-msgid ""
-"\n"
-"Warning\n"
-"\n"
-"Please read carefully the terms below. If you disagree with any\n"
-"portion, you are not allowed to install the next CD media. Press 'Refuse' \n"
-"to continue the installation without using these media.\n"
-"\n"
-"\n"
-"Some components contained in the next CD media are not governed\n"
-"by the GPL License or similar agreements. Each such component is then\n"
-"governed by the terms and conditions of its own specific license. \n"
-"Please read carefully and comply with such specific licenses before \n"
-"you use or redistribute the said components. \n"
-"Such licenses will in general prevent the transfer, duplication \n"
-"(except for backup purposes), redistribution, reverse engineering, \n"
-"de-assembly, de-compilation or modification of the component. \n"
-"Any breach of agreement will immediately terminate your rights under \n"
-"the specific license. Unless the specific license terms grant you such\n"
-"rights, you usually cannot install the programs on more than one\n"
-"system, or adapt it to be used on a network. In doubt, please contact \n"
-"directly the distributor or editor of the component. \n"
-"Transfer to third parties or copying of such components including the \n"
-"documentation is usually forbidden.\n"
-"\n"
-"\n"
-"All rights to the components of the next CD media belong to their \n"
-"respective authors and are protected by intellectual property and \n"
-"copyright laws applicable to software programs.\n"
-msgstr ""
-"\n"
-"Warning\n"
-"\n"
-"Please read carefully the terms below. If you disagree with any\n"
-"portion, you are not allowed to install the next CD media. Press 'Refuse' \n"
-"to continue the installation without using these media.\n"
-"\n"
-"\n"
-"Some components contained in the next CD media are not governed\n"
-"by the GPL License or similar agreements. Each such component is then\n"
-"governed by the terms and conditions of its own specific license. \n"
-"Please read carefully and comply with such specific licenses before \n"
-"you use or redistribute the said components. \n"
-"Such licenses will in general prevent the transfer, duplication \n"
-"(except for backup purposes), redistribution, reverse engineering, \n"
-"de-assembly, de-compilation or modification of the component. \n"
-"Any breach of agreement will immediately terminate your rights under \n"
-"the specific license. Unless the specific license terms grant you such\n"
-"rights, you usually cannot install the programs on more than one\n"
-"system, or adapt it to be used on a network. In doubt, please contact \n"
-"directly the distributor or editor of the component. \n"
-"Transfer to third parties or copying of such components including the \n"
-"documentation is usually forbidden.\n"
-"\n"
-"\n"
-"All rights to the components of the next CD media belong to their \n"
-"respective authors and are protected by intellectual property and \n"
-"copyright laws applicable to software programs.\n"
-
-#: ../../install_steps_interactive.pm_.c:67
-msgid "An error occurred"
-msgstr "DoÅlo je do greÅke"
-
-#: ../../install_steps_interactive.pm_.c:85
-msgid "Do you really want to leave the installation?"
-msgstr "Da li zaista želite napustiti instalaciju?"
-
-#: ../../install_steps_interactive.pm_.c:108
-msgid "License agreement"
-msgstr "Licencni ugovor"
-
-#: ../../install_steps_interactive.pm_.c:109
-msgid ""
-"Introduction\n"
-"\n"
-"The operating system and the different components available in the Mandrake "
-"Linux distribution \n"
-"shall be called the \"Software Products\" hereafter. The Software Products "
-"include, but are not \n"
-"restricted to, the set of programs, methods, rules and documentation related "
-"to the operating \n"
-"system and the different components of the Mandrake Linux distribution.\n"
-"\n"
-"\n"
-"1. License Agreement\n"
-"\n"
-"Please read carefully this document. This document is a license agreement "
-"between you and \n"
-"MandrakeSoft S.A. which applies to the Software Products.\n"
-"By installing, duplicating or using the Software Products in any manner, you "
-"explicitly \n"
-"accept and fully agree to conform to the terms and conditions of this "
-"License. \n"
-"If you disagree with any portion of the License, you are not allowed to "
-"install, duplicate or use \n"
-"the Software Products. \n"
-"Any attempt to install, duplicate or use the Software Products in a manner "
-"which does not comply \n"
-"with the terms and conditions of this License is void and will terminate "
-"your rights under this \n"
-"License. Upon termination of the License, you must immediately destroy all "
-"copies of the \n"
-"Software Products.\n"
-"\n"
-"\n"
-"2. Limited Warranty\n"
-"\n"
-"The Software Products and attached documentation are provided \"as is\", "
-"with no warranty, to the \n"
-"extent permitted by law.\n"
-"MandrakeSoft S.A. will, in no circumstances and to the extent permitted by "
-"law, be liable for any special,\n"
-"incidental, direct or indirect damages whatsoever (including without "
-"limitation damages for loss of \n"
-"business, interruption of business, financial loss, legal fees and penalties "
-"resulting from a court \n"
-"judgment, or any other consequential loss) arising out of the use or "
-"inability to use the Software \n"
-"Products, even if MandrakeSoft S.A. has been advised of the possibility or "
-"occurance of such \n"
-"damages.\n"
-"\n"
-"LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN SOME "
-"COUNTRIES\n"
-"\n"
-"To the extent permitted by law, MandrakeSoft S.A. or its distributors will, "
-"in no circumstances, be \n"
-"liable for any special, incidental, direct or indirect damages whatsoever "
-"(including without \n"
-"limitation damages for loss of business, interruption of business, financial "
-"loss, legal fees \n"
-"and penalties resulting from a court judgment, or any other consequential "
-"loss) arising out \n"
-"of the possession and use of software components or arising out of "
-"downloading software components \n"
-"from one of Mandrake Linux sites which are prohibited or restricted in some "
-"countries by local laws.\n"
-"This limited liability applies to, but is not restricted to, the strong "
-"cryptography components \n"
-"included in the Software Products.\n"
-"\n"
-"\n"
-"3. The GPL License and Related Licenses\n"
-"\n"
-"The Software Products consist of components created by different persons or "
-"entities. Most \n"
-"of these components are governed under the terms and conditions of the GNU "
-"General Public \n"
-"Licence, hereafter called \"GPL\", or of similar licenses. Most of these "
-"licenses allow you to use, \n"
-"duplicate, adapt or redistribute the components which they cover. Please "
-"read carefully the terms \n"
-"and conditions of the license agreement for each component before using any "
-"component. Any question \n"
-"on a component license should be addressed to the component author and not "
-"to MandrakeSoft.\n"
-"The programs developed by MandrakeSoft S.A. are governed by the GPL License. "
-"Documentation written \n"
-"by MandrakeSoft S.A. is governed by a specific license. Please refer to the "
-"documentation for \n"
-"further details.\n"
-"\n"
-"\n"
-"4. Intellectual Property Rights\n"
-"\n"
-"All rights to the components of the Software Products belong to their "
-"respective authors and are \n"
-"protected by intellectual property and copyright laws applicable to software "
-"programs.\n"
-"MandrakeSoft S.A. reserves its rights to modify or adapt the Software "
-"Products, as a whole or in \n"
-"parts, by all means and for all purposes.\n"
-"\"Mandrake\", \"Mandrake Linux\" and associated logos are trademarks of "
-"MandrakeSoft S.A. \n"
-"\n"
-"\n"
-"5. Governing Laws \n"
-"\n"
-"If any portion of this agreement is held void, illegal or inapplicable by a "
-"court judgment, this \n"
-"portion is excluded from this contract. You remain bound by the other "
-"applicable sections of the \n"
-"agreement.\n"
-"The terms and conditions of this License are governed by the Laws of "
-"France.\n"
-"All disputes on the terms of this license will preferably be settled out of "
-"court. As a last \n"
-"resort, the dispute will be referred to the appropriate Courts of Law of "
-"Paris - France.\n"
-"For any question on this document, please contact MandrakeSoft S.A. \n"
-msgstr ""
-"Introduction\n"
-"\n"
-"The operating system and the different components available in the Mandrake "
-"Linux distribution \n"
-"shall be called the \"Software Products\" hereafter. The Software Products "
-"include, but are not \n"
-"restricted to, the set of programs, methods, rules and documentation related "
-"to the operating \n"
-"system and the different components of the Mandrake Linux distribution.\n"
-"\n"
-"\n"
-"1. License Agreement\n"
-"\n"
-"Please read carefully this document. This document is a license agreement "
-"between you and \n"
-"MandrakeSoft S.A. which applies to the Software Products.\n"
-"By installing, duplicating or using the Software Products in any manner, you "
-"explicitly \n"
-"accept and fully agree to conform to the terms and conditions of this "
-"License. \n"
-"If you disagree with any portion of the License, you are not allowed to "
-"install, duplicate or use \n"
-"the Software Products. \n"
-"Any attempt to install, duplicate or use the Software Products in a manner "
-"which does not comply \n"
-"with the terms and conditions of this License is void and will terminate "
-"your rights under this \n"
-"License. Upon termination of the License, you must immediately destroy all "
-"copies of the \n"
-"Software Products.\n"
-"\n"
-"\n"
-"2. Limited Warranty\n"
-"\n"
-"The Software Products and attached documentation are provided \"as is\", "
-"with no warranty, to the \n"
-"extent permitted by law.\n"
-"MandrakeSoft S.A. will, in no circumstances and to the extent permitted by "
-"law, be liable for any special,\n"
-"incidental, direct or indirect damages whatsoever (including without "
-"limitation damages for loss of \n"
-"business, interruption of business, financial loss, legal fees and penalties "
-"resulting from a court \n"
-"judgment, or any other consequential loss) arising out of the use or "
-"inability to use the Software \n"
-"Products, even if MandrakeSoft S.A. has been advised of the possibility or "
-"occurance of such \n"
-"damages.\n"
-"\n"
-"LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN SOME "
-"COUNTRIES\n"
-"\n"
-"To the extent permitted by law, MandrakeSoft S.A. or its distributors will, "
-"in no circumstances, be \n"
-"liable for any special, incidental, direct or indirect damages whatsoever "
-"(including without \n"
-"limitation damages for loss of business, interruption of business, financial "
-"loss, legal fees \n"
-"and penalties resulting from a court judgment, or any other consequential "
-"loss) arising out \n"
-"of the possession and use of software components or arising out of "
-"downloading software components \n"
-"from one of Mandrake Linux sites which are prohibited or restricted in some "
-"countries by local laws.\n"
-"This limited liability applies to, but is not restricted to, the strong "
-"cryptography components \n"
-"included in the Software Products.\n"
-"\n"
-"\n"
-"3. The GPL License and Related Licenses\n"
-"\n"
-"The Software Products consist of components created by different persons or "
-"entities. Most \n"
-"of these components are governed under the terms and conditions of the GNU "
-"General Public \n"
-"Licence, hereafter called \"GPL\", or of similar licenses. Most of these "
-"licenses allow you to use, \n"
-"duplicate, adapt or redistribute the components which they cover. Please "
-"read carefully the terms \n"
-"and conditions of the license agreement for each component before using any "
-"component. Any question \n"
-"on a component license should be addressed to the component author and not "
-"to MandrakeSoft.\n"
-"The programs developed by MandrakeSoft S.A. are governed by the GPL License. "
-"Documentation written \n"
-"by MandrakeSoft S.A. is governed by a specific license. Please refer to the "
-"documentation for \n"
-"further details.\n"
-"\n"
-"\n"
-"4. Intellectual Property Rights\n"
-"\n"
-"All rights to the components of the Software Products belong to their "
-"respective authors and are \n"
-"protected by intellectual property and copyright laws applicable to software "
-"programs.\n"
-"MandrakeSoft S.A. reserves its rights to modify or adapt the Software "
-"Products, as a whole or in \n"
-"parts, by all means and for all purposes.\n"
-"\"Mandrake\", \"Mandrake Linux\" and associated logos are trademarks of "
-"MandrakeSoft S.A. \n"
-"\n"
-"\n"
-"5. Governing Laws \n"
-"\n"
-"If any portion of this agreement is held void, illegal or inapplicable by a "
-"court judgment, this \n"
-"portion is excluded from this contract. You remain bound by the other "
-"applicable sections of the \n"
-"agreement.\n"
-"The terms and conditions of this License are governed by the Laws of "
-"France.\n"
-"All disputes on the terms of this license will preferably be settled out of "
-"court. As a last \n"
-"resort, the dispute will be referred to the appropriate Courts of Law of "
-"Paris - France.\n"
-"For any question on this document, please contact MandrakeSoft S.A. \n"
-
-#: ../../install_steps_interactive.pm_.c:205
-#: ../../install_steps_interactive.pm_.c:1045
-#: ../../standalone/keyboarddrake_.c:28
-msgid "Keyboard"
-msgstr "Tastatura"
-
-#: ../../install_steps_interactive.pm_.c:206
-msgid "Please choose your keyboard layout."
-msgstr "Molimo izaberite izgled vaÅe tastature."
-
-#: ../../install_steps_interactive.pm_.c:207
-msgid "Here is the full list of keyboards available"
-msgstr "Ovdje je puna lista svih dostupnih tastatura"
-
-#: ../../install_steps_interactive.pm_.c:224
-msgid "Which installation class do you want?"
-msgstr "Koju klasu instalacije želite?"
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Install/Update"
-msgstr "Instaliraj/Unaprijedi"
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Is this an install or an update?"
-msgstr "Da li je ovo instalacija ili update?"
-
-#: ../../install_steps_interactive.pm_.c:235
-msgid "Recommended"
-msgstr "PreporuĨeno"
-
-#: ../../install_steps_interactive.pm_.c:238
-#: ../../install_steps_interactive.pm_.c:241
-msgid "Expert"
-msgstr "Ekspert"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Upgrade"
-msgstr "Unaprijedi"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Upgrade packages only"
-msgstr "Unaprijedi samo pakete"
-
-#: ../../install_steps_interactive.pm_.c:266
-msgid "Please choose the type of your mouse."
-msgstr "Molimo izaberite vrstu vaÅeg miÅa."
-
-#: ../../install_steps_interactive.pm_.c:272 ../../standalone/mousedrake_.c:65
-msgid "Mouse Port"
-msgstr "Port miÅa"
-
-#: ../../install_steps_interactive.pm_.c:273 ../../standalone/mousedrake_.c:66
-msgid "Please choose on which serial port your mouse is connected to."
-msgstr "Molimo izaberite na kojem serijskom portu je spojen vaÅ miÅ."
-
-#: ../../install_steps_interactive.pm_.c:281
-msgid "Buttons emulation"
-msgstr "Emulacija tipki"
-
-#: ../../install_steps_interactive.pm_.c:283
-msgid "Button 2 Emulation"
-msgstr "Emulacija 2 dugmeta"
-
-#: ../../install_steps_interactive.pm_.c:284
-msgid "Button 3 Emulation"
-msgstr "Emulacija 3 dugmeta"
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "Configuring PCMCIA cards..."
-msgstr "PodeÅavam PCMCIA kartice..."
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "PCMCIA"
-msgstr "PCMCIA"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "Configuring IDE"
-msgstr "PodeÅavam IDE"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "IDE"
-msgstr "IDE"
-
-#: ../../install_steps_interactive.pm_.c:327
-msgid "no available partitions"
-msgstr "nema dostupnih particija"
-
-#: ../../install_steps_interactive.pm_.c:330
-msgid "Scanning partitions to find mount points"
-msgstr "Pretražujem particije da nađem taĨke montiranja"
-
-#: ../../install_steps_interactive.pm_.c:338
-msgid "Choose the mount points"
-msgstr "Izaberite taĨke montiranja"
-
-#: ../../install_steps_interactive.pm_.c:357
-#, c-format
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I can try to go on blanking bad partitions (ALL DATA will be lost!).\n"
-"The other solution is to disallow DrakX to modify the partition table.\n"
-"(the error is %s)\n"
-"\n"
-"Do you agree to loose all the partitions?\n"
-msgstr ""
-"Ne mogu proĨitati vaÅu tabelu particija, previÅe je oÅtećena za mene :(\n"
-"Mogu pokuÅati da pobriÅem loÅe particije (SVI PODACI će biti izgubljeni!).\n"
-"Drugo rjeÅenje je da onemogućim DrakX da mijenja tabelu particija.\n"
-"(greÅka je %s)\n"
-"\n"
-"Slažete li se sa gubitkom svih particija?\n"
-
-#: ../../install_steps_interactive.pm_.c:370
-msgid ""
-"DiskDrake failed to read correctly the partition table.\n"
-"Continue at your own risk!"
-msgstr ""
-"DiskDrake nije uspio ispravno proĨitati tabelu particija.\n"
-"Nastavljate na vlastiti rizik!"
-
-#: ../../install_steps_interactive.pm_.c:386
-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 dovoljno slobodnog prostora za 1 MB bootstrap! Instalacija će "
-"nastaviti, ali da biste bootali vaÅ sistem, morate kreirati bootstrap "
-"particiju u DiskDrake-u"
-
-#: ../../install_steps_interactive.pm_.c:395
-msgid "No root partition found to perform an upgrade"
-msgstr "Nije pronađena nijedna root particija radi unaprjeđivanja"
-
-#: ../../install_steps_interactive.pm_.c:396
-msgid "Root Partition"
-msgstr "Root particija"
-
-#: ../../install_steps_interactive.pm_.c:397
-msgid "What is the root partition (/) of your system?"
-msgstr "Å ta je root particija (/) vaÅeg sistema?"
-
-#: ../../install_steps_interactive.pm_.c:411
-msgid "You need to reboot for the partition table modifications to take place"
-msgstr "Moraćete rebootati da bi izmjene tabele particija stupile na snagu"
-
-#: ../../install_steps_interactive.pm_.c:435
-msgid "Choose the partitions you want to format"
-msgstr "Izaberite particije koje želite formatirati"
-
-#: ../../install_steps_interactive.pm_.c:436
-msgid "Check bad blocks?"
-msgstr "Provjeri loÅe blokove?"
-
-#: ../../install_steps_interactive.pm_.c:462
-msgid "Formatting partitions"
-msgstr "Formatiram particije"
-
-#: ../../install_steps_interactive.pm_.c:464
-#, c-format
-msgid "Creating and formatting file %s"
-msgstr "Kreiram i formatiram datoteku %s"
-
-#: ../../install_steps_interactive.pm_.c:467
-msgid "Not enough swap to fulfill installation, please add some"
-msgstr ""
-"Nemam dovoljno swap prostora da dovrÅim instalaciju, molimo dodajte joÅ"
-
-#: ../../install_steps_interactive.pm_.c:473
-msgid "Looking for available packages"
-msgstr "Tražim dostupne pakete"
-
-#: ../../install_steps_interactive.pm_.c:479
-msgid "Finding packages to upgrade"
-msgstr "Pronalazim pakete za unaprjeđenje"
-
-#: ../../install_steps_interactive.pm_.c:496
-#, c-format
-msgid ""
-"Your system has not enough space left for installation or upgrade (%d > %d)"
-msgstr ""
-"VaŠsistem nema dovoljno preostalog prostora za instalaciju ili unaprjeđenje "
-"(%d > %d)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Complete (%dMB)"
-msgstr "Potpuna (%dMB)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Minimum (%dMB)"
-msgstr "Minimalna (%dMB)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Recommended (%dMB)"
-msgstr "PreporuĨena (%dMB)"
-
-#: ../../install_steps_interactive.pm_.c:568
-msgid ""
-"Please choose load or save package selection on floppy.\n"
-"The format is the same as auto_install generated floppies."
-msgstr ""
-"Molimo izaberite uĨitaj ili spasi izbor paketa na disketu.\n"
-"Format je isti kao i diskete koje generiÅe auto_install"
-
-#: ../../install_steps_interactive.pm_.c:571
-msgid "Load from floppy"
-msgstr "Vrati sa diskete"
-
-#: ../../install_steps_interactive.pm_.c:573
-msgid "Loading from floppy"
-msgstr "Vraćam sa diskete"
-
-#: ../../install_steps_interactive.pm_.c:573
-msgid "Package selection"
-msgstr "Izbor paketa"
-
-#: ../../install_steps_interactive.pm_.c:578
-msgid "Insert a floppy containing package selection"
-msgstr "Ubacite disketu koja sadrži izbor paketa"
-
-#: ../../install_steps_interactive.pm_.c:590
-msgid "Save on floppy"
-msgstr "Spasi na disketu"
-
-#: ../../install_steps_interactive.pm_.c:658
-msgid "Selected size is larger than available space"
-msgstr "Izabrana veliĨina je veća od slobodnog prostora"
-
-#: ../../install_steps_interactive.pm_.c:671
-msgid "Type of install"
-msgstr "Vrsta instalacije"
-
-#: ../../install_steps_interactive.pm_.c:672
-#, fuzzy
-msgid ""
-"You haven't selected any group of packages.\n"
-"Please choose the minimal installation you want:"
-msgstr ""
-"Niste izabrali nijednu grupu paketa\n"
-"Molimo izaberite minimalnu instalaciju koju želite"
-
-#: ../../install_steps_interactive.pm_.c:675
-msgid "With X"
-msgstr "Sa X-om"
-
-#: ../../install_steps_interactive.pm_.c:677
-msgid "With basic documentation (recommended!)"
-msgstr "Sa osnovnom dokumentacijom (preporuĨeno)"
-
-#: ../../install_steps_interactive.pm_.c:678
-msgid "Truly minimal install (especially no urpmi)"
-msgstr "Stvarno minimalna instalacija (posebno bez urpmi)"
-
-#: ../../install_steps_interactive.pm_.c:762
-msgid ""
-"If you have all the CDs in the list below, click Ok.\n"
-"If you have none of those CDs, click Cancel.\n"
-"If only some CDs are missing, unselect them, then click Ok."
-msgstr ""
-"Ako imate sve CDe na listi, kliknite na Ok.\n"
-"Ako nemate nijedan od ovih CDova, kliknite na Odustani.\n"
-"Ako nedostaju samo neki CDovi, iskljuĨite ih, zatim kliknite na Ok."
-
-#: ../../install_steps_interactive.pm_.c:767
-#, c-format
-msgid "Cd-Rom labeled \"%s\""
-msgstr "CD-ROM pod oznakom \"%s\""
-
-#: ../../install_steps_interactive.pm_.c:787
-msgid "Preparing installation"
-msgstr "Pripremam instalaciju"
-
-#: ../../install_steps_interactive.pm_.c:796
-#, c-format
-msgid ""
-"Installing package %s\n"
-"%d%%"
-msgstr ""
-"Instaliram paket %s\n"
-"%d%%"
-
-#: ../../install_steps_interactive.pm_.c:842
-msgid "Post-install configuration"
-msgstr "Post-instalacijsko podeÅavanje"
-
-#: ../../install_steps_interactive.pm_.c:848
-#, c-format
-msgid "Please insert the Boot floppy used in drive %s"
-msgstr "Molimo ubacite boot disketu koja je upotrebljena u jedinicu %s"
-
-#: ../../install_steps_interactive.pm_.c:854
-#, c-format
-msgid "Please insert the Update Modules floppy in drive %s"
-msgstr "Molimo ubacite disketu Update Modula u jedinicu %s"
-
-#: ../../install_steps_interactive.pm_.c:874
-msgid ""
-"You have now the possibility to download software aimed for encryption.\n"
-"\n"
-"WARNING:\n"
-"\n"
-"Due to different general requirements applicable to these software and "
-"imposed\n"
-"by various jurisdictions, customer and/or end user of theses software "
-"should\n"
-"ensure that the laws of his/their jurisdiction allow him/them to download, "
-"stock\n"
-"and/or use these software.\n"
-"\n"
-"In addition customer and/or end user shall particularly be aware to not "
-"infringe\n"
-"the laws of his/their jurisdiction. Should customer and/or end user not\n"
-"respect the provision of these applicable laws, he/they will incure serious\n"
-"sanctions.\n"
-"\n"
-"In no event shall Mandrakesoft nor its manufacturers and/or suppliers be "
-"liable\n"
-"for special, indirect or incidental damages whatsoever (including, but not\n"
-"limited to loss of profits, business interruption, loss of commercial data "
-"and\n"
-"other pecuniary losses, and eventual liabilities and indemnification to be "
-"paid\n"
-"pursuant to a court decision) arising out of use, possession, or the sole\n"
-"downloading of these software, to which customer and/or end user could\n"
-"eventually have access after having sign up the present agreement.\n"
-"\n"
-"\n"
-"For any queries relating to these agreement, please contact \n"
-"Mandrakesoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA"
-msgstr ""
-"You have now the possibility to download software aimed for encryption.\n"
-"\n"
-"WARNING:\n"
-"\n"
-"Due to different general requirements applicable to these software and "
-"imposed\n"
-"by various jurisdictions, customer and/or end user of theses software "
-"should\n"
-"ensure that the laws of his/their jurisdiction allow him/them to download, "
-"stock\n"
-"and/or use these software.\n"
-"\n"
-"In addition customer and/or end user shall particularly be aware to not "
-"infringe\n"
-"the laws of his/their jurisdiction. Should customer and/or end user not\n"
-"respect the provision of these applicable laws, he/they will incure serious\n"
-"sanctions.\n"
-"\n"
-"In no event shall Mandrakesoft nor its manufacturers and/or suppliers be "
-"liable\n"
-"for special, indirect or incidental damages whatsoever (including, but not\n"
-"limited to loss of profits, business interruption, loss of commercial data "
-"and\n"
-"other pecuniary losses, and eventual liabilities and indemnification to be "
-"paid\n"
-"pursuant to a court decision) arising out of use, possession, or the sole\n"
-"downloading of these software, to which customer and/or end user could\n"
-"eventually have access after having sign up the present agreement.\n"
-"\n"
-"\n"
-"For any queries relating to these agreement, please contact \n"
-"Mandrakesoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA"
-
-#: ../../install_steps_interactive.pm_.c:912
-msgid ""
-"You have now the possibility to download updated packages that have\n"
-"been released after the distribution has been made available.\n"
-"\n"
-"You will get security fixes or bug fixes, but you need to have an\n"
-"Internet connection configured to proceed.\n"
-"\n"
-"Do you want to install the updates ?"
-msgstr ""
-"Sada imate mogućnost da dobavite sa interneta unaprijeđene pakete koji\n"
-"su izaÅli nakon Åto je distribucija objavljena.\n"
-"\n"
-"Dobićete sigurnosne ispravke ili ispravke bugova, ali prethodno je potrebno\n"
-"da podesite Internet konekciju.\n"
-"\n"
-"Da li želite instalirati unaprjeđenja ?"
-
-#: ../../install_steps_interactive.pm_.c:926
-msgid "Contacting Mandrake Linux web site to get the list of available mirrors"
-msgstr ""
-"Kontaktiram Mandrake Linux web stranicu da bih saznao listu dostupnih mirrora"
-
-#: ../../install_steps_interactive.pm_.c:931
-msgid "Choose a mirror from which to get the packages"
-msgstr "Izaberite mirror sa kojeg će biti dobavljeni paketi"
-
-#: ../../install_steps_interactive.pm_.c:940
-msgid "Contacting the mirror to get the list of available packages"
-msgstr "Kontaktiram mirror da bih saznao listu dostupnih paketa"
-
-#: ../../install_steps_interactive.pm_.c:967
-msgid "Which is your timezone?"
-msgstr "Koja je vaÅa vremenska zona?"
-
-#: ../../install_steps_interactive.pm_.c:972
-msgid "Hardware clock set to GMT"
-msgstr "Hardverski sat podeÅen na GMT"
-
-#: ../../install_steps_interactive.pm_.c:973
-msgid "Automatic time synchronization (using NTP)"
-msgstr "Automatska sinhronizacija vremena (koristeći NTP)"
-
-#: ../../install_steps_interactive.pm_.c:980
-msgid "NTP Server"
-msgstr "NTP server"
-
-#: ../../install_steps_interactive.pm_.c:1014
-#: ../../install_steps_interactive.pm_.c:1022
-msgid "Remote CUPS server"
-msgstr "Udaljeni CUPS server"
-
-#: ../../install_steps_interactive.pm_.c:1015
-msgid "No printer"
-msgstr "Nema ÅtampaĨa"
-
-#: ../../install_steps_interactive.pm_.c:1032
-msgid "Do you have an ISA sound card?"
-msgstr "Imate li ISA zvuĨnu karticu?"
-
-#: ../../install_steps_interactive.pm_.c:1034
-msgid "Run \"sndconfig\" after installation to configure your sound card"
-msgstr ""
-"Pokrenite \"sndconfig\" poslije instalacije kako biste podesili vaÅu zvuĨnu "
-"karticu"
-
-#: ../../install_steps_interactive.pm_.c:1036
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Nije otkrivena zvuĨna kartica. Probajte \"harddrake\" poslije instalacije"
-
-#: ../../install_steps_interactive.pm_.c:1041 ../../steps.pm_.c:27
-msgid "Summary"
-msgstr "Ukratko"
-
-#: ../../install_steps_interactive.pm_.c:1044
-msgid "Mouse"
-msgstr "MiÅ"
-
-#: ../../install_steps_interactive.pm_.c:1046
-msgid "Timezone"
-msgstr "Vremenska zona"
-
-#: ../../install_steps_interactive.pm_.c:1047 ../../printerdrake.pm_.c:2276
-#: ../../printerdrake.pm_.c:2354
-msgid "Printer"
-msgstr "ŠtampaĨ"
-
-#: ../../install_steps_interactive.pm_.c:1049
-msgid "ISDN card"
-msgstr "ISDN kartica"
-
-#: ../../install_steps_interactive.pm_.c:1052
-#: ../../install_steps_interactive.pm_.c:1054
-msgid "Sound card"
-msgstr "ZvuĨna kartica"
-
-#: ../../install_steps_interactive.pm_.c:1056
-msgid "TV card"
-msgstr "TV kartica"
-
-#: ../../install_steps_interactive.pm_.c:1094
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1122
-msgid "LDAP"
-msgstr "LDAP"
-
-#: ../../install_steps_interactive.pm_.c:1095
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1131
-msgid "NIS"
-msgstr "NIS"
-
-#: ../../install_steps_interactive.pm_.c:1096
-#: ../../install_steps_interactive.pm_.c:1118
-msgid "Local files"
-msgstr "Lokalne datoteke"
-
-#: ../../install_steps_interactive.pm_.c:1105
-#: ../../install_steps_interactive.pm_.c:1106 ../../steps.pm_.c:24
-msgid "Set root password"
-msgstr "Podesite root Åifru"
-
-#: ../../install_steps_interactive.pm_.c:1107
-msgid "No password"
-msgstr "Bez Åifre"
-
-#: ../../install_steps_interactive.pm_.c:1112
-#, c-format
-msgid "This password is too simple (must be at least %d characters long)"
-msgstr ""
-"Ova Åifra je previÅe jednostavna (mora biti duga najmanje %d karaktera)"
-
-#: ../../install_steps_interactive.pm_.c:1118 ../../network/modem.pm_.c:49
-#: ../../standalone/draknet_.c:626 ../../standalone/logdrake_.c:172
-msgid "Authentication"
-msgstr "Autentikacija"
-
-#: ../../install_steps_interactive.pm_.c:1126
-msgid "Authentication LDAP"
-msgstr "Autentikacijski LDAP"
-
-#: ../../install_steps_interactive.pm_.c:1127
-msgid "LDAP Base dn"
-msgstr "LDAP Base dn"
-
-#: ../../install_steps_interactive.pm_.c:1128
-msgid "LDAP Server"
-msgstr "LDAP Server"
-
-#: ../../install_steps_interactive.pm_.c:1134
-msgid "Authentication NIS"
-msgstr "Autentifikacija NIS"
-
-#: ../../install_steps_interactive.pm_.c:1135
-msgid "NIS Domain"
-msgstr "NIS domen"
-
-#: ../../install_steps_interactive.pm_.c:1136
-msgid "NIS Server"
-msgstr "NIS server"
-
-#: ../../install_steps_interactive.pm_.c:1171
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"SILO on your system, or another operating system removes SILO, or SILO "
-"doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures.\n"
-"\n"
-"If you want to create a bootdisk for your system, insert a floppy in the "
-"first\n"
-"drive and press \"Ok\"."
-msgstr ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"SILO on your system, or another operating system removes SILO, or SILO "
-"doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures.\n"
-"\n"
-"If you want to create a bootdisk for your system, insert a floppy in the "
-"first\n"
-"drive and press \"Ok\"."
-
-#: ../../install_steps_interactive.pm_.c:1187
-msgid "First floppy drive"
-msgstr "Prva disketna jedinica"
-
-#: ../../install_steps_interactive.pm_.c:1188
-msgid "Second floppy drive"
-msgstr "Druga disketna jedinica"
-
-#: ../../install_steps_interactive.pm_.c:1189 ../../printerdrake.pm_.c:1848
-msgid "Skip"
-msgstr "PreskoĨi"
-
-#: ../../install_steps_interactive.pm_.c:1194
-#, fuzzy, c-format
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"LILO (or grub) on your system, or another operating system removes LILO, or "
-"LILO doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures. Would you like to create a bootdisk for your system?\n"
-"%s"
-msgstr ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"LILO (or grub) on your system, or another operating system removes LILO, or "
-"LILO doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures. Would you like to create a bootdisk for your system?"
-
-#: ../../install_steps_interactive.pm_.c:1200
-msgid ""
-"\n"
-"\n"
-"(WARNING! You're using XFS for your root partition,\n"
-"creating a bootdisk on a 1.44 Mb floppy will probably fail,\n"
-"because XFS needs a very large driver)."
-msgstr ""
-"\n"
-"\n"
-"(PAŽNJA! Vi koristite XFS za vaÅu root particiju,\n"
-"pravljenje boot diskete na 1.44 Mb disketi vjerovatno neće\n"
-"raditi, poÅto XFS traži veoma velik drajver)."
-
-#: ../../install_steps_interactive.pm_.c:1208
-msgid "Sorry, no floppy drive available"
-msgstr "Žao mi je, nema dostupne disketne jedinice"
-
-#: ../../install_steps_interactive.pm_.c:1212
-msgid "Choose the floppy drive you want to use to make the bootdisk"
-msgstr ""
-"Izaberite disketnu jedinicu koju želite koristiti da napravite boot disketu"
-
-#: ../../install_steps_interactive.pm_.c:1216
-#, c-format
-msgid "Insert a floppy in %s"
-msgstr "Ubacite disketu u %s"
-
-#: ../../install_steps_interactive.pm_.c:1219
-msgid "Creating bootdisk"
-msgstr "Pravim boot disketu"
-
-#: ../../install_steps_interactive.pm_.c:1226
-msgid "Preparing bootloader"
-msgstr "Pripremam bootloader"
-
-#: ../../install_steps_interactive.pm_.c:1237
-msgid ""
-"You appear to have an OldWorld or Unknown\n"
-" machine, the yaboot bootloader will not work for you.\n"
-"The install will continue, but you'll\n"
-" need to use BootX to boot your machine"
-msgstr ""
-"Izgleda da imate OldWorld ili Unknown raĨunar,\n"
-" yaboot bootloader neće raditi kod vas.\n"
-"Instalacija će se nastaviti, ali ćete\n"
-" morati koristiti BootX za bootanje vaÅeg raĨunara"
-
-#: ../../install_steps_interactive.pm_.c:1243
-msgid "Do you want to use aboot?"
-msgstr "Da li želite koristiti aboot?"
-
-#: ../../install_steps_interactive.pm_.c:1246
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"GreÅka u instaliranju aboota, \n"
-"da li da pokuÅam nasilnu instalaciju Ĩak i ako to uniÅti prvu particiju?"
-
-#: ../../install_steps_interactive.pm_.c:1253
-msgid "Installing bootloader"
-msgstr "Instaliram bootloadera"
-
-#: ../../install_steps_interactive.pm_.c:1259
-msgid "Installation of bootloader failed. The following error occured:"
-msgstr "Instalacija bootloadera nije uspjela. DoÅlo je do sljedeće greÅke:"
-
-#: ../../install_steps_interactive.pm_.c:1267
-#, c-format
-msgid ""
-"You may need to change your Open Firmware boot-device to\n"
-" enable the bootloader. If you don't 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\n"
-"At your next boot you should see the bootloader prompt."
-msgstr ""
-"Možda ćete trebati promjeniti vaŠOpen Firmware boot uređaj\n"
-" da biste aktivirali bootloader. Ako ne vidite upit bootloadera\n"
-" prilikom bootanja, držite Command-Option-O-F prilikom boota\n"
-" i unesite:\n"
-" setenv boot-device %s,\\\\:tbxi\n"
-" Zatim kucajte: shut-down\n"
-"Prilikom idućeg boota biste trebali vidjeti upit bootloadera."
-
-#: ../../install_steps_interactive.pm_.c:1311
-#: ../../standalone/drakautoinst_.c:81
-#, c-format
-msgid "Insert a blank floppy in drive %s"
-msgstr "Ubacite praznu disketu u jedinicu %s"
-
-#: ../../install_steps_interactive.pm_.c:1315
-#: ../../standalone/drakautoinst_.c:83
-msgid "Creating auto install floppy"
-msgstr "Pravim auto instalacijsku disketu"
-
-#: ../../install_steps_interactive.pm_.c:1326
-msgid ""
-"Some steps are not completed.\n"
-"\n"
-"Do you really want to quit now?"
-msgstr ""
-"Neki koraci nisu dovrÅeni.\n"
-"\n"
-"Da li zaista želite izaći sada?"
-
-#: ../../install_steps_interactive.pm_.c:1337
-msgid ""
-"Congratulations, installation is complete.\n"
-"Remove the boot media and press return to reboot.\n"
-"\n"
-"\n"
-"For information on fixes which are available for this release of Mandrake "
-"Linux,\n"
-"consult the Errata available from:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/82errata.php3\n"
-"\n"
-"\n"
-"Information on configuring your system is available in the post\n"
-"install chapter of the Official Mandrake Linux User's Guide."
-msgstr ""
-"Äestitamo, instalacija je zavrÅena.\n"
-"Uklonite boot medij i pritisnite return za reboot.\n"
-"\n"
-"\n"
-"Za informacije o ispravkama koje su dostupne za ovu verziju Mandrake "
-"Linuxa,\n"
-"pogledajte Errata koja je dostupna na:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/82errata.php3\n"
-"\n"
-"\n"
-"Informacije o podeÅavanju vaÅeg sistema su dostupne u poglavlju\n"
-"\"nakon instalacije\" vaÅeg ZvaniĨnog Mandrake Linux priruĨnika za upotrebu."
-
-#: ../../install_steps_interactive.pm_.c:1354
-msgid "Generate auto install floppy"
-msgstr "Napravi auto instalacijsku disketu"
-
-#: ../../install_steps_interactive.pm_.c:1356
-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 preuzeti hard disk!!\n"
-"(ovo je namjenjeno za instaliranje na drugi raĨunar).\n"
-"\n"
-"Možda ćete željeti radije ponoviti instalaciju.\n"
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Automated"
-msgstr "Automatizovano"
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Replay"
-msgstr "Ponovi"
-
-#: ../../install_steps_interactive.pm_.c:1364
-msgid "Save packages selection"
-msgstr "Spasi izbor paketa"
-
-#: ../../install_steps_newt.pm_.c:22
-#, c-format
-msgid "Mandrake Linux Installation %s"
-msgstr "Mandrake Linux instalacija %s"
-
-#: ../../install_steps_newt.pm_.c:34
-msgid ""
-" <Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen "
-msgstr ""
-" <Tab>/<Alt-Tab> izmeÄ‘u elemenata | <Space> vrÅi izbor | <F12> idući ekran "
-
-#: ../../interactive.pm_.c:87
-msgid "kdesu missing"
-msgstr "kdesu nedostaje"
-
-#: ../../interactive.pm_.c:89 ../../interactive.pm_.c:100
-msgid "consolehelper missing"
-msgstr "nedostaje consolehelper"
-
-#: ../../interactive.pm_.c:152
-msgid "Choose a file"
-msgstr "Izaberi datoteku"
-
-#: ../../interactive.pm_.c:314
-msgid "Advanced"
-msgstr "Napredno"
-
-#: ../../interactive.pm_.c:315
-msgid "Basic"
-msgstr "Osnovno"
-
-#: ../../interactive.pm_.c:386
-msgid "Please wait"
-msgstr "Molimo saĨekajte"
-
-#: ../../interactive_gtk.pm_.c:605 ../../services.pm_.c:222
-msgid "Info"
-msgstr "Info"
-
-#: ../../interactive_gtk.pm_.c:715
-msgid "Expand Tree"
-msgstr "ProÅiri stablo"
-
-#: ../../interactive_gtk.pm_.c:716
-msgid "Collapse Tree"
-msgstr "Smanji stablo"
-
-#: ../../interactive_gtk.pm_.c:717
-msgid "Toggle between flat and group sorted"
-msgstr "PrekidaĨ između ravnog i grupnog sortiranja"
-
-#: ../../interactive_stdio.pm_.c:29 ../../interactive_stdio.pm_.c:147
-msgid "Bad choice, try again\n"
-msgstr "PogreÅan izbor, pokuÅajte ponovo\n"
-
-#: ../../interactive_stdio.pm_.c:30 ../../interactive_stdio.pm_.c:148
-#, c-format
-msgid "Your choice? (default %s) "
-msgstr "VaÅ izbor? (podrazumjevano %s)"
-
-#: ../../interactive_stdio.pm_.c:52
-#, c-format
-msgid ""
-"Entries you'll have to fill:\n"
-"%s"
-msgstr ""
-"Stavke koje morate popuniti:\n"
-"%s"
-
-#: ../../interactive_stdio.pm_.c:68
-#, c-format
-msgid "Your choice? (0/1, default `%s') "
-msgstr "VaÅ izbor? (0/1, podrazumjevano %s)"
-
-#: ../../interactive_stdio.pm_.c:93
-#, c-format
-msgid "Button `%s': %s"
-msgstr "Dugme '%s': %s"
-
-#: ../../interactive_stdio.pm_.c:94
-msgid "Do you want to click on this button? "
-msgstr "Da li želite kliknuti na ovo dugme?"
-
-#: ../../interactive_stdio.pm_.c:103
-#, c-format
-msgid "Your choice? (default `%s'%s) "
-msgstr "VaÅ izbor? (podrazumjevano '%s' %s)"
-
-#: ../../interactive_stdio.pm_.c:121
-#, c-format
-msgid "=> There are many things to choose from (%s).\n"
-msgstr "=> Postoji mnogo stvari od kojih možete izabrati (%s).\n"
-
-#: ../../interactive_stdio.pm_.c:124
-msgid ""
-"Please choose the first number of the 10-range you wish to edit,\n"
-"or just hit Enter to proceed.\n"
-"Your choice? "
-msgstr ""
-"Molimo unesite prvi broj od deset koji želite izmjeniti,\n"
-"ili samo pritisnite Enter za nastavak.\n"
-"VaÅ izbor?"
-
-#: ../../interactive_stdio.pm_.c:137
-#, c-format
-msgid ""
-"=> Notice, a label changed:\n"
-"%s"
-msgstr ""
-"=> Primjetite, label je promjenjena:\n"
-"%s"
-
-#: ../../interactive_stdio.pm_.c:144
-msgid "Re-submit"
-msgstr "Ponovo poÅalji"
-
-#: ../../keyboard.pm_.c:174 ../../keyboard.pm_.c:205
-msgid "Czech (QWERTZ)"
-msgstr "ÄeÅka (QWERTZ)"
-
-#: ../../keyboard.pm_.c:175 ../../keyboard.pm_.c:207
-msgid "German"
-msgstr "NjemaĨka"
-
-#: ../../keyboard.pm_.c:176
-msgid "Dvorak"
-msgstr "Dvorak"
-
-#: ../../keyboard.pm_.c:177 ../../keyboard.pm_.c:214
-msgid "Spanish"
-msgstr "Å panska"
-
-#: ../../keyboard.pm_.c:178 ../../keyboard.pm_.c:215
-msgid "Finnish"
-msgstr "Finska"
-
-#: ../../keyboard.pm_.c:179 ../../keyboard.pm_.c:216
-msgid "French"
-msgstr "Francuska"
-
-#: ../../keyboard.pm_.c:180 ../../keyboard.pm_.c:241
-msgid "Norwegian"
-msgstr "NorveÅka"
-
-#: ../../keyboard.pm_.c:181
-msgid "Polish"
-msgstr "Poljska"
-
-#: ../../keyboard.pm_.c:182 ../../keyboard.pm_.c:249
-msgid "Russian"
-msgstr "Ruska"
-
-#: ../../keyboard.pm_.c:184 ../../keyboard.pm_.c:251
-msgid "Swedish"
-msgstr "Å vedska"
-
-#: ../../keyboard.pm_.c:185 ../../keyboard.pm_.c:266
-msgid "UK keyboard"
-msgstr "UK tastatura"
-
-#: ../../keyboard.pm_.c:186 ../../keyboard.pm_.c:267
-msgid "US keyboard"
-msgstr "US tastatura"
-
-#: ../../keyboard.pm_.c:188
-msgid "Albanian"
-msgstr "Albanska"
-
-#: ../../keyboard.pm_.c:189
-msgid "Armenian (old)"
-msgstr "Armenska (stara)"
-
-#: ../../keyboard.pm_.c:190
-msgid "Armenian (typewriter)"
-msgstr "Armenska (pisaća maÅina)"
-
-#: ../../keyboard.pm_.c:191
-msgid "Armenian (phonetic)"
-msgstr "Armenska (fonetska)"
-
-#: ../../keyboard.pm_.c:196
-msgid "Azerbaidjani (latin)"
-msgstr "Azerbejdžanska (latinica)"
-
-#: ../../keyboard.pm_.c:198
-msgid "Belgian"
-msgstr "Belgijska"
-
-#: ../../keyboard.pm_.c:199
-msgid "Bulgarian (phonetic)"
-msgstr "Bugarska (fonetska)"
-
-#: ../../keyboard.pm_.c:200
-msgid "Bulgarian (BDS)"
-msgstr "Bugarska (BDS)"
-
-#: ../../keyboard.pm_.c:201
-msgid "Brazilian (ABNT-2)"
-msgstr "Brazilska (ABNT-2)"
-
-#: ../../keyboard.pm_.c:202
-msgid "Belarusian"
-msgstr "Bjeloruska"
-
-#: ../../keyboard.pm_.c:203
-msgid "Swiss (German layout)"
-msgstr "Švicarska (NjemaĨki izgled)"
-
-#: ../../keyboard.pm_.c:204
-msgid "Swiss (French layout)"
-msgstr "Å vicarska (Francuski izgled)"
-
-#: ../../keyboard.pm_.c:206
-msgid "Czech (QWERTY)"
-msgstr "ÄeÅka (QWERTY)"
-
-#: ../../keyboard.pm_.c:208
-msgid "German (no dead keys)"
-msgstr "NjemaĨka (bez mrtvih tipki)"
-
-#: ../../keyboard.pm_.c:209
-msgid "Danish"
-msgstr "Danska"
-
-#: ../../keyboard.pm_.c:210
-msgid "Dvorak (US)"
-msgstr "Dvorak (US)"
-
-#: ../../keyboard.pm_.c:211
-msgid "Dvorak (Norwegian)"
-msgstr "Dvorak (NorveÅka)"
-
-#: ../../keyboard.pm_.c:212
-msgid "Dvorak (Swedish)"
-msgstr "Dvorak (Å vedska)"
-
-#: ../../keyboard.pm_.c:213
-msgid "Estonian"
-msgstr "Estonska"
-
-#: ../../keyboard.pm_.c:217
-msgid "Georgian (\"Russian\" layout)"
-msgstr "Gruzijska (\"Ruski\" izgled)"
-
-#: ../../keyboard.pm_.c:218
-msgid "Georgian (\"Latin\" layout)"
-msgstr "Gruzijska (\"LatiniĨni\" izgled)"
-
-#: ../../keyboard.pm_.c:219
-msgid "Greek"
-msgstr "GrĨka"
-
-#: ../../keyboard.pm_.c:220
-msgid "Hungarian"
-msgstr "Mađarska"
-
-#: ../../keyboard.pm_.c:221
-msgid "Croatian"
-msgstr "Hrvatska"
-
-#: ../../keyboard.pm_.c:222
-msgid "Israeli"
-msgstr "Izraelska"
-
-#: ../../keyboard.pm_.c:223
-msgid "Israeli (Phonetic)"
-msgstr "Izraelska (Fonetska)"
-
-#: ../../keyboard.pm_.c:224
-msgid "Iranian"
-msgstr "Iranska"
-
-#: ../../keyboard.pm_.c:225
-msgid "Icelandic"
-msgstr "Islandska"
-
-#: ../../keyboard.pm_.c:226
-msgid "Italian"
-msgstr "Italijanska"
-
-#: ../../keyboard.pm_.c:228
-msgid "Japanese 106 keys"
-msgstr "Japanska 106 tipki"
-
-#: ../../keyboard.pm_.c:231
-msgid "Korean keyboard"
-msgstr "Korejanska tastatura"
-
-#: ../../keyboard.pm_.c:232
-msgid "Latin American"
-msgstr "Latino-AmeriĨka"
-
-#: ../../keyboard.pm_.c:233
-msgid "Lithuanian AZERTY (old)"
-msgstr "Litvanska AZERTY (stara)"
-
-#: ../../keyboard.pm_.c:235
-msgid "Lithuanian AZERTY (new)"
-msgstr "Litvanska AYERTY (nova)"
-
-#: ../../keyboard.pm_.c:236
-msgid "Lithuanian \"number row\" QWERTY"
-msgstr "Litvanska \"red brojeva\" QWERTY"
-
-#: ../../keyboard.pm_.c:237
-msgid "Lithuanian \"phonetic\" QWERTY"
-msgstr "Litvanska \"fonetska\" QWERTY"
-
-#: ../../keyboard.pm_.c:238
-msgid "Latvian"
-msgstr "Latvijska"
-
-#: ../../keyboard.pm_.c:239
-msgid "Macedonian"
-msgstr "Makedonska"
-
-#: ../../keyboard.pm_.c:240
-msgid "Dutch"
-msgstr "Holandska"
-
-#: ../../keyboard.pm_.c:242
-msgid "Polish (qwerty layout)"
-msgstr "Poljska (qwerty)"
-
-#: ../../keyboard.pm_.c:243
-msgid "Polish (qwertz layout)"
-msgstr "Poljska (qwertz)"
-
-#: ../../keyboard.pm_.c:244
-msgid "Portuguese"
-msgstr "Portugalska"
-
-#: ../../keyboard.pm_.c:245
-msgid "Canadian (Quebec)"
-msgstr "Kanadska (Kvebek)"
-
-#: ../../keyboard.pm_.c:247
-msgid "Romanian (qwertz)"
-msgstr "Rumunska (qwertz)"
-
-#: ../../keyboard.pm_.c:248
-msgid "Romanian (qwerty)"
-msgstr "Rumunska (qwerty)"
-
-#: ../../keyboard.pm_.c:250
-msgid "Russian (Yawerty)"
-msgstr "Ruska (Yawerty)"
-
-#: ../../keyboard.pm_.c:252
-msgid "Slovenian"
-msgstr "SlovenaĨka"
-
-#: ../../keyboard.pm_.c:253
-msgid "Slovakian (QWERTZ)"
-msgstr "SlovaĨka (QWERTZ)"
-
-#: ../../keyboard.pm_.c:254
-msgid "Slovakian (QWERTY)"
-msgstr "SlovaĨka (QWERTY)"
-
-#: ../../keyboard.pm_.c:256
-msgid "Serbian (cyrillic)"
-msgstr "Srpska (ćirilica)"
-
-#: ../../keyboard.pm_.c:258
-msgid "Tamil"
-msgstr "Tamilska"
-
-#: ../../keyboard.pm_.c:259
-msgid "Thai keyboard"
-msgstr "Tajlandska tastatura"
-
-#: ../../keyboard.pm_.c:261
-msgid "Tajik keyboard"
-msgstr "TadžiĨka tastatura"
-
-#: ../../keyboard.pm_.c:262
-msgid "Turkish (traditional \"F\" model)"
-msgstr "Turska (tradicionalni \"F\" model)"
-
-#: ../../keyboard.pm_.c:263
-msgid "Turkish (modern \"Q\" model)"
-msgstr "Turska (moderni \"Q\" model)"
-
-#: ../../keyboard.pm_.c:265
-msgid "Ukrainian"
-msgstr "Ukrajinska"
-
-#: ../../keyboard.pm_.c:268
-msgid "US keyboard (international)"
-msgstr "US tastatura (međunarodna)"
-
-#: ../../keyboard.pm_.c:269
-msgid "Vietnamese \"numeric row\" QWERTY"
-msgstr "Vjetnamska \"red brojeva\" QWERTY"
-
-#: ../../keyboard.pm_.c:270
-msgid "Yugoslavian (latin)"
-msgstr "Jugoslavenska (latiniĨno)"
-
-#: ../../keyboard.pm_.c:278
-msgid "Right Alt key"
-msgstr "Desna Alt tipka"
-
-#: ../../keyboard.pm_.c:279
-msgid "Both Shift keys simultaneously"
-msgstr "Obje Shift tipke istovremeno"
-
-#: ../../keyboard.pm_.c:280
-msgid "Control and Shift keys simultaneously"
-msgstr "Control i Shift tipka istovremeno"
-
-#: ../../keyboard.pm_.c:281
-msgid "CapsLock key"
-msgstr "CapsLock tipka"
-
-#: ../../keyboard.pm_.c:282
-msgid "Ctrl and Alt keys simultaneously"
-msgstr "Ctrl i Alt tipke istovremeno"
-
-#: ../../keyboard.pm_.c:283
-msgid "Alt and Shift keys simultaneously"
-msgstr "Alt i Shift tipke istovremeno"
-
-#: ../../keyboard.pm_.c:284
-msgid "\"Menu\" key"
-msgstr "\"Meni\" tipka"
-
-#: ../../keyboard.pm_.c:285
-msgid "Left \"Windows\" key"
-msgstr "Lijeva \"Windows\" tipka"
-
-#: ../../keyboard.pm_.c:286
-msgid "Right \"Windows\" key"
-msgstr "Desna \"Windows\" tipka"
-
-#: ../../loopback.pm_.c:32
-#, c-format
-msgid "Circular mounts %s\n"
-msgstr "Kružno montiranje %s\n"
-
-#: ../../lvm.pm_.c:88
-msgid "Remove the logical volumes first\n"
-msgstr "Najprije ukloni logiĨke volumene\n"
-
-#: ../../modules.pm_.c:826
-msgid ""
-"PCMCIA support no longer exist for 2.2 kernels. Please use a 2.4 kernel."
-msgstr ""
-"PCMCIA podrÅka za 2.2 kernele viÅe ne postoji. Molim koristite 2.4 kernel."
-
-#: ../../mouse.pm_.c:25
-msgid "Sun - Mouse"
-msgstr "Sun - Mouse"
-
-#: ../../mouse.pm_.c:32
-msgid "Logitech MouseMan+"
-msgstr "Logitech MouseMan+"
-
-#: ../../mouse.pm_.c:33
-msgid "Generic PS2 Wheel Mouse"
-msgstr "OpÅti PS2 MiÅ sa kotaĨem"
-
-#: ../../mouse.pm_.c:34
-msgid "GlidePoint"
-msgstr "GlidePoint"
-
-#: ../../mouse.pm_.c:36 ../../mouse.pm_.c:63
-msgid "Kensington Thinking Mouse"
-msgstr "Kensington Thinking Mouse"
-
-#: ../../mouse.pm_.c:37 ../../mouse.pm_.c:59
-msgid "Genius NetMouse"
-msgstr "Genius NetMouse"
-
-#: ../../mouse.pm_.c:38
-msgid "Genius NetScroll"
-msgstr "Genius NetScroll"
-
-#: ../../mouse.pm_.c:43 ../../mouse.pm_.c:68
-msgid "1 button"
-msgstr "1 dugme"
-
-#: ../../mouse.pm_.c:44 ../../mouse.pm_.c:51
-msgid "Generic 2 Button Mouse"
-msgstr "OpÅti miÅ sa 2 dugmeta"
-
-#: ../../mouse.pm_.c:45
-msgid "Generic"
-msgstr "OpÅti"
-
-#: ../../mouse.pm_.c:46
-msgid "Wheel"
-msgstr "KotaĨ"
-
-#: ../../mouse.pm_.c:49
-msgid "serial"
-msgstr "serijski"
-
-#: ../../mouse.pm_.c:52
-msgid "Generic 3 Button Mouse"
-msgstr "OpÅti miÅ sa 3 dugmeta"
-
-#: ../../mouse.pm_.c:53
-msgid "Microsoft IntelliMouse"
-msgstr "Microsoft IntelliMouse"
-
-#: ../../mouse.pm_.c:54
-msgid "Logitech MouseMan"
-msgstr "Logitech MouseMan"
-
-#: ../../mouse.pm_.c:55
-msgid "Mouse Systems"
-msgstr "Mouse Systems"
-
-#: ../../mouse.pm_.c:57
-msgid "Logitech CC Series"
-msgstr "Logitech CC Series"
-
-#: ../../mouse.pm_.c:58
-msgid "Logitech MouseMan+/FirstMouse+"
-msgstr "Logitech MouseMan+/FirstMouse+"
-
-#: ../../mouse.pm_.c:60
-msgid "MM Series"
-msgstr "MM Series"
-
-#: ../../mouse.pm_.c:61
-msgid "MM HitTablet"
-msgstr "MM HitTablet"
-
-#: ../../mouse.pm_.c:62
-msgid "Logitech Mouse (serial, old C7 type)"
-msgstr "Logitech Mouse (serijski, stari C7 tip)"
-
-#: ../../mouse.pm_.c:66
-msgid "busmouse"
-msgstr "busmouse"
-
-#: ../../mouse.pm_.c:69
-msgid "2 buttons"
-msgstr "2 dugmeta"
-
-#: ../../mouse.pm_.c:70
-msgid "3 buttons"
-msgstr "3 dugmeta"
-
-#: ../../mouse.pm_.c:73
-msgid "none"
-msgstr "nijedan"
-
-#: ../../mouse.pm_.c:75
-msgid "No mouse"
-msgstr "Bez miÅa"
-
-#: ../../mouse.pm_.c:499
-msgid "Please test the mouse"
-msgstr "Molimo testirajte miÅ"
-
-#: ../../mouse.pm_.c:500
-msgid "To activate the mouse,"
-msgstr "Da biste aktivirali miÅa,"
-
-#: ../../mouse.pm_.c:501
-msgid "MOVE YOUR WHEEL!"
-msgstr "POMJERITE VAÅ  KOTAÄ!"
-
-#: ../../my_gtk.pm_.c:651
-msgid "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"
-msgstr "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-2,*-r-*"
-
-#: ../../my_gtk.pm_.c:686
-msgid "Finish"
-msgstr "Kraj"
-
-#: ../../my_gtk.pm_.c:686 ../../printerdrake.pm_.c:1588
-msgid "Next ->"
-msgstr "Sljedeći ->"
-
-#: ../../my_gtk.pm_.c:687 ../../printerdrake.pm_.c:1586
-msgid "<- Previous"
-msgstr "<- Prethodni"
-
-#: ../../my_gtk.pm_.c:1019
-msgid "Is this correct?"
-msgstr "Da li je ovo ispravno?"
-
-#: ../../network/adsl.pm_.c:19 ../../network/ethernet.pm_.c:36
-msgid "Connect to the Internet"
-msgstr "Spoji se na Internet"
-
-#: ../../network/adsl.pm_.c:20
-msgid ""
-"The most common way to connect with adsl is pppoe.\n"
-"Some connections use pptp, a few ones use dhcp.\n"
-"If you don't know, choose 'use pppoe'"
-msgstr ""
-"NajĨeÅći naĨin za konekciju sa adsl-om je pppoe.\n"
-"Neke konekcije koriste pptp, a vrlo rijetke koriste dhcp.\n"
-"Ako ne znate, izaberite 'koristi pppoe'"
-
-#: ../../network/adsl.pm_.c:22
-msgid "Alcatel speedtouch usb"
-msgstr "Alcatel speedtouch usb"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use dhcp"
-msgstr "koristi dhcp"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pppoe"
-msgstr "koristi pppoe"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pptp"
-msgstr "koristi pptp"
-
-#: ../../network/ethernet.pm_.c:37
-msgid ""
-"Which dhcp client do you want to use?\n"
-"Default is dhcpcd"
-msgstr ""
-"Koji dhcp klijent želite koristiti?\n"
-"Podrazumjevani je dhcpcd"
-
-#: ../../network/ethernet.pm_.c:88
-msgid ""
-"No ethernet network adapter has been detected on your system.\n"
-"I cannot set up this connection type."
-msgstr ""
-"Nije pronaÄ‘en ethernet mrežni adapter na vaÅem sistemu.\n"
-"Ne mogu podesiti ovu vrstu konekcije."
-
-#: ../../network/ethernet.pm_.c:92 ../../standalone/drakgw_.c:252
-msgid "Choose the network interface"
-msgstr "Izaberite mrežni interface"
-
-#: ../../network/ethernet.pm_.c:93
-msgid ""
-"Please choose which network adapter you want to use to connect to Internet"
-msgstr ""
-"Molimo izaberite koji mrežni adapter želite koristiti za spajanje na Internet"
-
-#: ../../network/ethernet.pm_.c:178
-msgid "no network card found"
-msgstr "nije pronađena mrežna kartica"
-
-#: ../../network/ethernet.pm_.c:202 ../../network/network.pm_.c:360
-msgid "Configuring network"
-msgstr "PodeÅavam mrežu"
-
-#: ../../network/ethernet.pm_.c:203
-msgid ""
-"Please enter your host name if you know it.\n"
-"Some DHCP servers require the hostname to work.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''."
-msgstr ""
-"Molimo unesite naziv vaÅeg raĨunara ako ga znate.\n"
-"Neki DHCP serveri traže hostname kako bi radili.\n"
-"Naziv vaÅeg raĨunara bi trebao biti puno-kvalifikovani naziv,\n"
-"kao Åto je ``mojcomp.mojlab.mojafirma.com''."
-
-#: ../../network/ethernet.pm_.c:207 ../../network/network.pm_.c:365
-msgid "Host name"
-msgstr "Host name"
-
-#: ../../network/isdn.pm_.c:21 ../../network/isdn.pm_.c:44
-#: ../../network/netconnect.pm_.c:95 ../../network/netconnect.pm_.c:109
-#: ../../network/netconnect.pm_.c:164 ../../network/netconnect.pm_.c:175
-#: ../../network/netconnect.pm_.c:202 ../../network/netconnect.pm_.c:225
-#: ../../network/netconnect.pm_.c:233
-msgid "Network Configuration Wizard"
-msgstr "Äarobnjak za podeÅavanje mreže"
-
-#: ../../network/isdn.pm_.c:22
-msgid "External ISDN modem"
-msgstr "Vanjski ISDN modem"
-
-#: ../../network/isdn.pm_.c:22
-msgid "Internal ISDN card"
-msgstr "Interna ISDN kartica"
-
-#: ../../network/isdn.pm_.c:22
-msgid "What kind is your ISDN connection?"
-msgstr "Koje je vrste vaÅa ISDN konekcija?"
-
-#: ../../network/isdn.pm_.c:45
-msgid ""
-"Which ISDN configuration do you prefer?\n"
-"\n"
-"* The Old configuration uses isdn4net. It contains powerfull\n"
-" tools, but is tricky to configure, and not standard.\n"
-"\n"
-"* The New configuration is easier to understand, more\n"
-" standard, but with less tools.\n"
-"\n"
-"We recommand the light configuration.\n"
-msgstr ""
-"Koju ISDN konfiguraciju želite?\n"
-"\n"
-"* Stara konfiguracija koristi isdn4net. On sadrži moćne alate,\n"
-" ali ga je teÅko podesiti i nije standardiziran.\n"
-"\n"
-"* Novu konfiguraciju je lakÅe razumjeti, standardnija je,\n"
-" ali ima manje alata.\n"
-"\n"
-"PreporuĨujemo light konfiguraciju.\n"
-
-#: ../../network/isdn.pm_.c:54
-msgid "New configuration (isdn-light)"
-msgstr "Nova konfiguracija (isdn-light)"
-
-#: ../../network/isdn.pm_.c:54
-msgid "Old configuration (isdn4net)"
-msgstr "Stara konfiguracija (isdn4net)"
-
-#: ../../network/isdn.pm_.c:170 ../../network/isdn.pm_.c:188
-#: ../../network/isdn.pm_.c:198 ../../network/isdn.pm_.c:205
-#: ../../network/isdn.pm_.c:215
-msgid "ISDN Configuration"
-msgstr "PodeÅavanje ISDNa"
-
-#: ../../network/isdn.pm_.c:170
-msgid ""
-"Select your provider.\n"
-" If it's not in the list, choose Unlisted"
-msgstr ""
-"Izaberite vaÅeg providera.\n"
-" Ako nije na listi, izaberite Nije na listi"
-
-#: ../../network/isdn.pm_.c:183
-msgid "Europe protocol"
-msgstr "Evropski protokol"
-
-#: ../../network/isdn.pm_.c:183
-msgid "Europe protocol (EDSS1)"
-msgstr "Evropski protokol (EDSS1)"
-
-#: ../../network/isdn.pm_.c:185
-msgid "Protocol for the rest of the world"
-msgstr "Protokol za ostatak svijeta"
-
-#: ../../network/isdn.pm_.c:185
-msgid ""
-"Protocol for the rest of the world \n"
-" no D-Channel (leased lines)"
-msgstr ""
-"Protokol za ostatak svijeta \n"
-" bez D-kanala (iznajmljene linije)"
-
-#: ../../network/isdn.pm_.c:189
-msgid "Which protocol do you want to use ?"
-msgstr "Koji protokol želite koristiti?"
-
-#: ../../network/isdn.pm_.c:199
-msgid "What kind of card do you have?"
-msgstr "Koju vrstu kartice imate?"
-
-#: ../../network/isdn.pm_.c:200
-msgid "I don't know"
-msgstr "Ne znam"
-
-#: ../../network/isdn.pm_.c:200
-msgid "ISA / PCMCIA"
-msgstr "ISA / PCMCIA"
-
-#: ../../network/isdn.pm_.c:200
-msgid "PCI"
-msgstr "PCI"
-
-#: ../../network/isdn.pm_.c:206
-msgid ""
-"\n"
-"If you have an ISA card, the values on the next screen should be right.\n"
-"\n"
-"If you have a PCMCIA card, you have to know the irq and io of your card.\n"
-msgstr ""
-"\n"
-"Ako imate ISA karticu, vrijednosti na idućem ekranu bi trebale biti "
-"ispravne.\n"
-"\n"
-"Ako imate PCMCIA karticu, moraćete znati IRQ i IO vaÅe kartice.\n"
-
-#: ../../network/isdn.pm_.c:210
-msgid "Abort"
-msgstr "Prekid"
-
-#: ../../network/isdn.pm_.c:210
-msgid "Continue"
-msgstr "Nastavak"
-
-#: ../../network/isdn.pm_.c:216
-msgid "Which is your ISDN card ?"
-msgstr "Koja je vaÅa ISDN kartica ?"
-
-#: ../../network/isdn.pm_.c:235
-msgid ""
-"I have detected an ISDN PCI Card, but I don't know the type. Please select "
-"one PCI card on the next screen."
-msgstr ""
-"Otkrio sam neku ISDN PCI karticu, ali ne znam tip. Molimo izaberite neku PCI "
-"karticu na idućem ekranu."
-
-#: ../../network/isdn.pm_.c:244
-msgid "No ISDN PCI card found. Please select one on the next screen."
-msgstr ""
-"Nije pronađena nijedna ISDN PCI kartica. Molimo izaberite jednu na idućem "
-"ekranu."
-
-#: ../../network/modem.pm_.c:39
-msgid "Please choose which serial port your modem is connected to."
-msgstr "Molimo izaberite na koji serijski port je nakaĨen vaŠmodem."
-
-#: ../../network/modem.pm_.c:44
-msgid "Dialup options"
-msgstr "Opcije dialupa"
-
-#: ../../network/modem.pm_.c:45 ../../standalone/draknet_.c:622
-msgid "Connection name"
-msgstr "Naziv konekcije"
-
-#: ../../network/modem.pm_.c:46 ../../standalone/draknet_.c:623
-msgid "Phone number"
-msgstr "Broj telefona"
-
-#: ../../network/modem.pm_.c:47 ../../standalone/draknet_.c:624
-msgid "Login ID"
-msgstr "Login ID"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "CHAP"
-msgstr "CHAP"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "PAP"
-msgstr "PAP"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Script-based"
-msgstr "Skripta"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Terminal-based"
-msgstr "Terminal"
-
-#: ../../network/modem.pm_.c:50 ../../standalone/draknet_.c:627
-msgid "Domain name"
-msgstr "Ime domena"
-
-#: ../../network/modem.pm_.c:51 ../../standalone/draknet_.c:628
-msgid "First DNS Server (optional)"
-msgstr "Prvi DNS server (opcionalno)"
-
-#: ../../network/modem.pm_.c:52 ../../standalone/draknet_.c:629
-msgid "Second DNS Server (optional)"
-msgstr "Drugi DNS server (opcionalno)"
-
-#: ../../network/netconnect.pm_.c:34
-msgid ""
-"\n"
-"You can disconnect or reconfigure your connection."
-msgstr ""
-"\n"
-"Možete se diskonektovati ili prekonfigurisati vaÅu konekciju."
-
-#: ../../network/netconnect.pm_.c:34 ../../network/netconnect.pm_.c:37
-msgid ""
-"\n"
-"You can reconfigure your connection."
-msgstr ""
-"\n"
-"Možete prekonfigurisati vaÅu konekciju."
-
-#: ../../network/netconnect.pm_.c:34
-msgid "You are currently connected to internet."
-msgstr "Trenutno ste spojeni na Internet."
-
-#: ../../network/netconnect.pm_.c:37
-msgid ""
-"\n"
-"You can connect to Internet or reconfigure your connection."
-msgstr ""
-"\n"
-"Možete se spojiti na Internet ili prekonfigurisati vaÅu konekciju."
-
-#: ../../network/netconnect.pm_.c:37
-msgid "You are not currently connected to Internet."
-msgstr "Trenutno niste konektovani na Internet."
-
-#: ../../network/netconnect.pm_.c:41
-msgid "Connect"
-msgstr "Konektuj me"
-
-#: ../../network/netconnect.pm_.c:43
-msgid "Disconnect"
-msgstr "Prekini konekciju"
-
-#: ../../network/netconnect.pm_.c:45
-msgid "Configure the connection"
-msgstr "Podesi konekciju"
-
-#: ../../network/netconnect.pm_.c:50
-msgid "Internet connection & configuration"
-msgstr "Internet konekcija & podeÅavanje"
-
-#: ../../network/netconnect.pm_.c:100
-#, c-format
-msgid "We are now going to configure the %s connection."
-msgstr "Sada ćemo podesiti konekciju %s."
-
-#: ../../network/netconnect.pm_.c:109
-#, c-format
-msgid ""
-"\n"
-"\n"
-"\n"
-"We are now going to configure the %s connection.\n"
-"\n"
-"\n"
-"Press OK to continue."
-msgstr ""
-"\n"
-"\n"
-"\n"
-"Sada ćemo podesiti konekciju %s.\n"
-"\n"
-"\n"
-"Pritisnite OK za nastavak."
-
-#: ../../network/netconnect.pm_.c:138 ../../network/netconnect.pm_.c:252
-#: ../../network/netconnect.pm_.c:271 ../../network/tools.pm_.c:57
-msgid "Network Configuration"
-msgstr "PodeÅavanje mreže"
-
-#: ../../network/netconnect.pm_.c:139
-msgid ""
-"Because you are doing a network installation, your network is already "
-"configured.\n"
-"Click on Ok to keep your configuration, or cancel to reconfigure your "
-"Internet & Network connection.\n"
-msgstr ""
-"PoÅto radite mrežnu instalaciju, vaÅa mreža je već podeÅena.\n"
-"Kliknite na Ok da zadržite tu konfiguraciju ili Odustani za podeÅavanje vaÅe "
-"Internet & Mrežne konekcije.\n"
-
-#: ../../network/netconnect.pm_.c:165
-msgid ""
-"Welcome to The Network Configuration Wizard\n"
-"\n"
-"We are about to configure your internet/network connection.\n"
-"If you don't want to use the auto detection, deselect the checkbox.\n"
-msgstr ""
-"Dobro doÅli u Äarobnjak za podeÅavanje mreže\n"
-"\n"
-"Sada ćemo podesiti vaÅu internet/mrežnu konekciju.\n"
-"Ako ne želite da koristite automatsko prepoznavanje, iskljuĨite opciju.\n"
-
-#: ../../network/netconnect.pm_.c:167
-msgid "Choose the profile to configure"
-msgstr "Izaberite profil za podeÅavanje"
-
-#: ../../network/netconnect.pm_.c:168
-msgid "Use auto detection"
-msgstr "Koristi auto prepoznavanje"
-
-#: ../../network/netconnect.pm_.c:175
-msgid "Detecting devices..."
-msgstr "Prepoznajem uređaje..."
-
-#: ../../network/netconnect.pm_.c:186 ../../network/netconnect.pm_.c:195
-msgid "Normal modem connection"
-msgstr "Normalna modemska konekcija"
-
-#: ../../network/netconnect.pm_.c:186 ../../network/netconnect.pm_.c:195
-#, c-format
-msgid "detected on port %s"
-msgstr "detektovan na portu %s"
-
-#: ../../network/netconnect.pm_.c:187 ../../network/netconnect.pm_.c:196
-msgid "ISDN connection"
-msgstr "ISDN konekcija"
-
-#: ../../network/netconnect.pm_.c:187 ../../network/netconnect.pm_.c:196
-#, c-format
-msgid "detected %s"
-msgstr "detektovan %s"
-
-#: ../../network/netconnect.pm_.c:188 ../../network/netconnect.pm_.c:197
-msgid "ADSL connection"
-msgstr "ADSL konekcija"
-
-#: ../../network/netconnect.pm_.c:188 ../../network/netconnect.pm_.c:197
-#, c-format
-msgid "detected on interface %s"
-msgstr "detektovan na interfejsu %s"
-
-#: ../../network/netconnect.pm_.c:189 ../../network/netconnect.pm_.c:198
-msgid "Cable connection"
-msgstr "Kablovska konekcija"
-
-#: ../../network/netconnect.pm_.c:189 ../../network/netconnect.pm_.c:198
-msgid "cable connection detected"
-msgstr "otkrivena kablovska konekcija"
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-msgid "LAN connection"
-msgstr "LAN konekcija"
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-msgid "ethernet card(s) detected"
-msgstr "prepoznata ethernet kartica(e)"
-
-#: ../../network/netconnect.pm_.c:202
-msgid "Choose the connection you want to configure"
-msgstr "Izaberite konekciju koju želite podesiti"
-
-#: ../../network/netconnect.pm_.c:226
-msgid ""
-"You have configured multiple ways to connect to the Internet.\n"
-"Choose the one you want to use.\n"
-"\n"
-msgstr ""
-"Podesili ste nekoliko naĨina za konekciju na Internet.\n"
-"Izaberite jedan od njih koji ćete koristiti.\n"
-"\n"
-
-#: ../../network/netconnect.pm_.c:227
-msgid "Internet connection"
-msgstr "Internet konekcija"
-
-#: ../../network/netconnect.pm_.c:233
-msgid "Do you want to start the connection at boot?"
-msgstr "Da li želite pokrenuti konekciju prilikom boota?"
-
-#: ../../network/netconnect.pm_.c:247
-msgid "Network configuration"
-msgstr "PodeÅavanje mreže"
-
-#: ../../network/netconnect.pm_.c:248
-msgid "The network needs to be restarted"
-msgstr "Potrebno je restartovati mrežu"
-
-#: ../../network/netconnect.pm_.c:252
-#, c-format
-msgid ""
-"A problem occured while restarting the network: \n"
-"\n"
-"%s"
-msgstr ""
-"DoÅlo je do problema prilikom restartovanja mreže:\n"
-"\n"
-"%s"
-
-#: ../../network/netconnect.pm_.c:261
-msgid ""
-"Congratulations, the network and Internet configuration is finished.\n"
-"The configuration will now be applied to your system.\n"
-"\n"
-msgstr ""
-"Äestitamo, podeÅavanje mreže i interneta je zavrÅeno.\n"
-"\n"
-"Sada će ova konfiguracija biti primjenjena na vaŠsistem.\n"
-
-#: ../../network/netconnect.pm_.c:265
-msgid ""
-"After this is done, we recommend that you restart your X environment to "
-"avoid any hostname-related problems."
-msgstr ""
-"Nakon Åto je to gotovo, preporuĨujemo da restartujete vaÅ X\n"
-"okoliŠkako bi se izbjegao problem sa promjenom naziva raĨunara."
-
-#: ../../network/netconnect.pm_.c:266
-msgid ""
-"Problems occured during configuration.\n"
-"Test your connection via net_monitor or mcc. If your connection doesn't "
-"work, you might want to relaunch the configuration"
-msgstr ""
-"DoÅlo je do problema prilikom podeÅavanja.\n"
-"Provjerite vaÅu konekciju pomoću net_monitor ili mcc. Ako vaÅa konekcija ne "
-"radi, možete ponovo pokrenuti podeÅavanje"
-
-#: ../../network/network.pm_.c:292
-msgid ""
-"WARNING: This device has been previously configured to connect to the "
-"Internet.\n"
-"Simply accept to keep this device configured.\n"
-"Modifying the fields below will override this configuration."
-msgstr ""
-"UPOZORENJE: Ovaj ureÄ‘aj je prethodno podeÅen za konekciju na Internet.\n"
-"Samo prihvatite kako bi ovaj ureÄ‘aj ostao podeÅen.\n"
-"Izmjena polja ispod će prepisati ovu konfiguraciju."
-
-#: ../../network/network.pm_.c:297
-msgid ""
-"Please enter the IP configuration for this machine.\n"
-"Each item should be entered as an IP address in dotted-decimal\n"
-"notation (for example, 1.2.3.4)."
-msgstr ""
-"Molimo unesite IP konfiguraciju za ovaj raĨunar.\n"
-"Svaka stavka bi trebala biti unesena kao IP adresa u decimalnoj notaciji\n"
-"razdvojenoj taĨkama (npr. 1.2.3.4)."
-
-#: ../../network/network.pm_.c:306 ../../network/network.pm_.c:307
-#, c-format
-msgid "Configuring network device %s"
-msgstr "PodeÅavam mrežni ureÄ‘aj %s"
-
-#: ../../network/network.pm_.c:307
-#, c-format
-msgid " (driver %s)"
-msgstr " (drajver %s)"
-
-#: ../../network/network.pm_.c:309 ../../standalone/draknet_.c:232
-#: ../../standalone/draknet_.c:468
-msgid "IP address"
-msgstr "IP adresa"
-
-#: ../../network/network.pm_.c:310 ../../standalone/draknet_.c:469
-msgid "Netmask"
-msgstr "Netmask"
-
-#: ../../network/network.pm_.c:311
-msgid "(bootp/dhcp)"
-msgstr "(bootp/dhcp)"
-
-#: ../../network/network.pm_.c:311
-msgid "Automatic IP"
-msgstr "Automatska IP"
-
-#: ../../network/network.pm_.c:332 ../../printerdrake.pm_.c:712
-msgid "IP address should be in format 1.2.3.4"
-msgstr "IP adresa treba biti u formatu 1.2.3.4"
-
-#: ../../network/network.pm_.c:361
-msgid ""
-"Please enter your host name.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''.\n"
-"You may also enter the IP address of the gateway if you have one"
-msgstr ""
-"Molimo unesite naziv vaÅeg raĨunara ako ga znate.\n"
-"Naziv vaÅeg raĨunara bi trebao biti puno-kvalifikovani naziv,\n"
-"kao Åto je ``mojcomp.mojlab.mojafirma.com''.\n"
-"Možete također unijeti IP adresu gateway-a ako ga imate"
-
-#: ../../network/network.pm_.c:366
-msgid "DNS server"
-msgstr "DNS server"
-
-#: ../../network/network.pm_.c:367
-#, c-format
-msgid "Gateway (e.g. %s)"
-msgstr "Gateway (tj. %s)"
-
-#: ../../network/network.pm_.c:369
-msgid "Gateway device"
-msgstr "Gateway uređaj"
-
-#: ../../network/network.pm_.c:381
-msgid "Proxies configuration"
-msgstr "Konfiguracija proxija"
-
-#: ../../network/network.pm_.c:382
-msgid "HTTP proxy"
-msgstr "HTTP proxy"
-
-#: ../../network/network.pm_.c:383
-msgid "FTP proxy"
-msgstr "FTP proxy"
-
-#: ../../network/network.pm_.c:384
-msgid "Track network card id (usefull for laptops)"
-msgstr "Otkrij id mrežne karte (korisno za laptope)"
-
-#: ../../network/network.pm_.c:387
-msgid "Proxy should be http://..."
-msgstr "Proxy treba biti http://..."
-
-#: ../../network/network.pm_.c:388
-msgid "Proxy should be ftp://..."
-msgstr "Proxy treba biti ftp://..."
-
-#: ../../network/tools.pm_.c:39
-msgid "Internet configuration"
-msgstr "Internet konfiguracija"
-
-#: ../../network/tools.pm_.c:40
-msgid "Do you want to try to connect to the Internet now?"
-msgstr "Da li se želite pokuÅati spojiti na Internet sada?"
-
-#: ../../network/tools.pm_.c:44 ../../standalone/draknet_.c:197
-msgid "Testing your connection..."
-msgstr "Probavam vaÅu konekciju..."
-
-#: ../../network/tools.pm_.c:50
-msgid "The system is now connected to Internet."
-msgstr "Sistem je sada spojen na Internet."
-
-#: ../../network/tools.pm_.c:51
-msgid "For Security reason, it will be disconnected now."
-msgstr "Iz sigurnosnih razloga, sada će biti odspojen."
-
-#: ../../network/tools.pm_.c:52
-msgid ""
-"The system doesn't seem to be connected to internet.\n"
-"Try to reconfigure your connection."
-msgstr ""
-"Izgleda da sistem nije spojen na Internet.\n"
-"Probajte promjeniti postavke vaÅe konekcije."
-
-#: ../../network/tools.pm_.c:76
-msgid "Connection Configuration"
-msgstr "PodeÅavanje konekcije"
-
-#: ../../network/tools.pm_.c:77
-msgid "Please fill or check the field below"
-msgstr "Molimo ispunite ili provjerite polje ispod"
-
-#: ../../network/tools.pm_.c:79 ../../standalone/draknet_.c:608
-msgid "Card IRQ"
-msgstr "IRQ kartice"
-
-#: ../../network/tools.pm_.c:80 ../../standalone/draknet_.c:609
-msgid "Card mem (DMA)"
-msgstr "Memorija kartice (DMA)"
-
-#: ../../network/tools.pm_.c:81 ../../standalone/draknet_.c:610
-msgid "Card IO"
-msgstr "IO kartice"
-
-#: ../../network/tools.pm_.c:82 ../../standalone/draknet_.c:611
-msgid "Card IO_0"
-msgstr "IO_0 kartice"
-
-#: ../../network/tools.pm_.c:83 ../../standalone/draknet_.c:612
-msgid "Card IO_1"
-msgstr "IO_1 kartice"
-
-#: ../../network/tools.pm_.c:84 ../../standalone/draknet_.c:613
-msgid "Your personal phone number"
-msgstr "VaŠliĨni broj telefona"
-
-#: ../../network/tools.pm_.c:85 ../../standalone/draknet_.c:614
-msgid "Provider name (ex provider.net)"
-msgstr "Naziv provajdera (npr. provajder.net)"
-
-#: ../../network/tools.pm_.c:86 ../../standalone/draknet_.c:615
-msgid "Provider phone number"
-msgstr "Broj telefona provajdera"
-
-#: ../../network/tools.pm_.c:87 ../../standalone/draknet_.c:616
-msgid "Provider dns 1 (optional)"
-msgstr "Provider dns 1 (opcionalno)"
-
-#: ../../network/tools.pm_.c:88 ../../standalone/draknet_.c:617
-msgid "Provider dns 2 (optional)"
-msgstr "Provider dns 2 (opcionalno)"
-
-#: ../../network/tools.pm_.c:89
-msgid "Choose your country"
-msgstr "Izaberite vaÅu državu"
-
-#: ../../network/tools.pm_.c:90 ../../standalone/draknet_.c:620
-msgid "Dialing mode"
-msgstr "NaĨin biranja broja"
-
-#: ../../network/tools.pm_.c:91 ../../standalone/draknet_.c:632
-msgid "Connection speed"
-msgstr "Brzina konekcije"
-
-#: ../../network/tools.pm_.c:92 ../../standalone/draknet_.c:633
-msgid "Connection timeout (in sec)"
-msgstr "Timeout konekcije (u sek.)"
-
-#: ../../network/tools.pm_.c:93 ../../standalone/draknet_.c:618
-msgid "Account Login (user name)"
-msgstr "Login naloga (korisniĨko ime)"
-
-#: ../../network/tools.pm_.c:94 ../../standalone/draknet_.c:619
-msgid "Account Password"
-msgstr "Å ifra naloga"
-
-#: ../../partition_table.pm_.c:600
-msgid "mount failed: "
-msgstr "montiranje nije uspjelo: "
-
-#: ../../partition_table.pm_.c:664
-msgid "Extended partition not supported on this platform"
-msgstr "Extended particije nisu podržane na ovoj platformi"
-
-#: ../../partition_table.pm_.c:682
-msgid ""
-"You have a hole in your partition table but I can't use it.\n"
-"The only solution is to move your primary partitions to have the hole next "
-"to the extended partitions"
-msgstr ""
-"Imate rupu u vaÅoj tabeli particija li je ja ne mogu upotrijebiti.\n"
-"Jedino rjeÅenje je da pomjerite vaÅe primarne particija kako bi rupa bila "
-"pored extended particija"
-
-#: ../../partition_table.pm_.c:770
-#, c-format
-msgid "Restoring from file %s failed: %s"
-msgstr "Povratak iz datoteke %s nije uspio: %s"
-
-#: ../../partition_table.pm_.c:772
-msgid "Bad backup file"
-msgstr "LoÅa backup datoteka"
-
-#: ../../partition_table.pm_.c:794
-#, c-format
-msgid "Error writing to file %s"
-msgstr "GreÅka u pisanju datoteke: %s"
-
-#: ../../partition_table_raw.pm_.c:186
-msgid ""
-"Something bad is happening on your drive. \n"
-"A test to check the integrity of data has failed. \n"
-"It means writing anything on the disk will end up with random trash"
-msgstr ""
-"NeÅto loÅe se deÅava na vaÅem disku. \n"
-"Test integriteta podataka nije uspio. \n"
-"To znaĨi će da pisanje bilo Ĩeka na disk rezultirati smećem"
-
-#: ../../pkgs.pm_.c:24
-msgid "must have"
-msgstr "obavezno"
-
-#: ../../pkgs.pm_.c:25
-msgid "important"
-msgstr "važno"
-
-#: ../../pkgs.pm_.c:26
-msgid "very nice"
-msgstr "vrlo fino"
-
-#: ../../pkgs.pm_.c:27
-msgid "nice"
-msgstr "fino"
-
-#: ../../pkgs.pm_.c:28
-msgid "maybe"
-msgstr "možda"
-
-#: ../../printer.pm_.c:23
-msgid "CUPS - Common Unix Printing System"
-msgstr "CUPS - Common Unix Printing System"
-
-#: ../../printer.pm_.c:24
-msgid "LPRng - LPR New Generation"
-msgstr "LPRng - LPR New Generation"
-
-#: ../../printer.pm_.c:25
-msgid "LPD - Line Printer Daemon"
-msgstr "LPD - Line Printer Daemon"
-
-#: ../../printer.pm_.c:26
-msgid "PDQ - Print, Don't Queue"
-msgstr "PDQ - Print, Don't Queue"
-
-#: ../../printer.pm_.c:32 ../../printer.pm_.c:871
-msgid "CUPS"
-msgstr "CUPS"
-
-#: ../../printer.pm_.c:33
-msgid "LPRng"
-msgstr "LPRng"
-
-#: ../../printer.pm_.c:34
-msgid "LPD"
-msgstr "LPD"
-
-#: ../../printer.pm_.c:35
-msgid "PDQ"
-msgstr "PDQ"
-
-#: ../../printer.pm_.c:47
-msgid "Local printer"
-msgstr "Lokalni ÅtampaĨ"
-
-#: ../../printer.pm_.c:48
-msgid "Remote printer"
-msgstr "Udaljeni ÅtampaĨ"
-
-#: ../../printer.pm_.c:49
-msgid "Printer on remote CUPS server"
-msgstr "ŠtampaĨ na udaljenom CUPS serveru"
-
-#: ../../printer.pm_.c:50 ../../printerdrake.pm_.c:734
-msgid "Printer on remote lpd server"
-msgstr "ŠtampaĨ na udaljenom lpd serveru"
-
-#: ../../printer.pm_.c:51
-msgid "Network printer (TCP/Socket)"
-msgstr "Mrežni ÅtampaĨ (TCP/Socket)"
-
-#: ../../printer.pm_.c:52
-msgid "Printer on SMB/Windows 95/98/NT server"
-msgstr "ŠtampaĨ na SMB/Windows 95/98/NT serveru"
-
-#: ../../printer.pm_.c:53
-msgid "Printer on NetWare server"
-msgstr "ŠtampaĨ na NetWare serveru"
-
-#: ../../printer.pm_.c:54 ../../printerdrake.pm_.c:738
-msgid "Enter a printer device URI"
-msgstr "Unesite URI ureÄ‘aja ÅtampaĨa"
-
-#: ../../printer.pm_.c:55
-msgid "Pipe job into a command"
-msgstr "Spoji zadatak na komandu"
-
-#: ../../printer.pm_.c:504 ../../printer.pm_.c:695 ../../printer.pm_.c:1017
-#: ../../printerdrake.pm_.c:1665 ../../printerdrake.pm_.c:2730
-msgid "Unknown model"
-msgstr "Nepoznat model"
-
-#: ../../printer.pm_.c:532
-msgid "Local Printers"
-msgstr "Lokalni ÅtampaĨi"
-
-#: ../../printer.pm_.c:534 ../../printer.pm_.c:872
-msgid "Remote Printers"
-msgstr "Udaljeni ÅtampaĨi"
-
-#: ../../printer.pm_.c:541 ../../printerdrake.pm_.c:248
-#, c-format
-msgid " on parallel port \\/*%s"
-msgstr " na paralelnom portu \\/*%s"
-
-#: ../../printer.pm_.c:544 ../../printerdrake.pm_.c:250
-#, c-format
-msgid ", USB printer \\/*%s"
-msgstr ", USB ÅtampaĨ \\/*%s"
-
-#: ../../printer.pm_.c:549
-#, c-format
-msgid ", multi-function device on parallel port \\/*%s"
-msgstr ", viÅenamjenski ureÄ‘aj na paralelnom portu \\/*%s"
-
-#: ../../printer.pm_.c:552
-msgid ", multi-function device on USB"
-msgstr ", viÅenamjenski ureÄ‘aj na USBu"
-
-#: ../../printer.pm_.c:554
-msgid ", multi-function device on HP JetDirect"
-msgstr ", viÅenamjenski ureÄ‘aj na HP JetDirect"
-
-#: ../../printer.pm_.c:556
-msgid ", multi-function device"
-msgstr ", viÅenamjenski ureÄ‘aj"
-
-#: ../../printer.pm_.c:559
-#, c-format
-msgid ", printing to %s"
-msgstr ", Åtampa u %s"
-
-#: ../../printer.pm_.c:561
-#, c-format
-msgid "on LPD server \"%s\", printer \"%s\""
-msgstr "na LPD serveru \"%s\", ÅtampaĨ \"%s\""
-
-#: ../../printer.pm_.c:563
-#, c-format
-msgid ", TCP/IP host \"%s\", port %s"
-msgstr ", TCP/IP host \"%s\", port %s"
-
-#: ../../printer.pm_.c:567
-#, c-format
-msgid "on Windows server \"%s\", share \"%s\""
-msgstr "na Windows serveru \"%s\", share \"%s\""
-
-#: ../../printer.pm_.c:571
-#, c-format
-msgid "on Novell server \"%s\", printer \"%s\""
-msgstr "na Novell serveru \"%s\", ÅtampaĨ \"%s\""
-
-#: ../../printer.pm_.c:573
-#, c-format
-msgid ", using command %s"
-msgstr ", koristeći komandu %s"
-
-#: ../../printer.pm_.c:692 ../../printerdrake.pm_.c:1136
-msgid "Raw printer (No driver)"
-msgstr "Sirovo Åtampanje (Bez drajvera)"
-
-#: ../../printer.pm_.c:841
-#, c-format
-msgid "(on %s)"
-msgstr "(na %s)"
-
-#: ../../printer.pm_.c:843
-msgid "(on this machine)"
-msgstr "(na ovom raĨunaru)"
-
-#: ../../printer.pm_.c:868
-#, c-format
-msgid "On CUPS server \"%s\""
-msgstr "Na CUPS serveru \"%s\""
-
-#: ../../printer.pm_.c:874 ../../printerdrake.pm_.c:2391
-#: ../../printerdrake.pm_.c:2402 ../../printerdrake.pm_.c:2618
-#: ../../printerdrake.pm_.c:2670 ../../printerdrake.pm_.c:2697
-#: ../../printerdrake.pm_.c:2867 ../../printerdrake.pm_.c:2869
-msgid " (Default)"
-msgstr " (Default)"
-
-#: ../../printerdrake.pm_.c:22
-msgid "Select Printer Connection"
-msgstr "Izaberi konekciju ÅtampaĨa"
-
-#: ../../printerdrake.pm_.c:23
-msgid "How is the printer connected?"
-msgstr "Kako je ÅtampaĨ povezan na raĨunar?"
-
-#: ../../printerdrake.pm_.c:25
-msgid ""
-"\n"
-"Printers on remote CUPS servers you do not have to configure here; these "
-"printers will be automatically detected."
-msgstr ""
-"\n"
-"Ovdje ne morate podeÅavati ÅtampaĨe na udaljenim CUPS serverima;\n"
-"ovi ÅtampaĨi će biti automatski prepoznati."
-
-#: ../../printerdrake.pm_.c:69 ../../printerdrake.pm_.c:2454
-msgid "CUPS configuration"
-msgstr "PodeÅavanje CUPSa"
-
-#: ../../printerdrake.pm_.c:70 ../../printerdrake.pm_.c:2455
-msgid "Specify CUPS server"
-msgstr "Navedite CUPS server"
-
-#: ../../printerdrake.pm_.c:71
-msgid ""
-"To get access to printers on remote CUPS servers in your local network you "
-"do not have to configure anything; the CUPS servers inform your machine "
-"automatically about their printers. All printers currently known to your "
-"machine are listed in the \"Remote printers\" section in the main window of "
-"Printerdrake. When your CUPS server is not in your local network, you have "
-"to enter the CUPS server IP address and optionally the port number to get "
-"the printer information from the server, otherwise leave these fields blank."
-msgstr ""
-"Da biste dobili pristup ÅtampaĨima na udaljenim CUPS serverima u vaÅoj "
-"lokalnoj mreži, ne morate podeÅavati niÅta; CUPS serveri automatski "
-"informiÅu vaÅ raĨunar o svojim ÅtampaĨima. Svi ÅtampaĨi koji su trenutno "
-"poznati vaÅem raĨunaru su izlistani u odjeljku \"Udaljeni ÅtampaĨi\" glavnog "
-"prozora Printerdrake-a. Ako vaŠCUPS server nije u lokalnoj mrežu, morate "
-"unijeti IP adresu CUPS servera i eventualno broj porta kako biste dobili "
-"informacije o ÅtampaĨima sa servera, inaĨe ostavite ova polja praznim."
-
-#: ../../printerdrake.pm_.c:72
-msgid ""
-"\n"
-"Normally, CUPS is automatically configured according to your network "
-"environment, so that you can access the printers on the CUPS servers in your "
-"local network. If this does not work correctly, turn off \"Automatic CUPS "
-"configuration\" and edit your file /etc/cups/cupsd.conf manually. Do not "
-"forget to restart CUPS afterwards (command: \"service cups restart\")."
-msgstr ""
-"\n"
-"Normally, CUPS is automatically configured according to your network "
-"environment, so that you can access the printers on the CUPS servers in your "
-"local network. If this does not work correctly, turn off \"Automatic CUPS "
-"configuration\" and edit your file /etc/cups/cupsd.conf manually. Do not "
-"forget to restart CUPS afterwards (command: \"service cups restart\")."
-
-#: ../../printerdrake.pm_.c:76
-msgid "The IP address should look like 192.168.1.20"
-msgstr "IP adresa treba biti u formatu 192.168.1.20"
-
-#: ../../printerdrake.pm_.c:80 ../../printerdrake.pm_.c:862
-msgid "The port number should be an integer!"
-msgstr "Broj porta treba biti cijeli broj!"
-
-#: ../../printerdrake.pm_.c:87
-msgid "CUPS server IP"
-msgstr "IP CUPS servera"
-
-#: ../../printerdrake.pm_.c:88 ../../printerdrake.pm_.c:855
-msgid "Port"
-msgstr "Port"
-
-#: ../../printerdrake.pm_.c:90
-msgid "Automatic CUPS configuration"
-msgstr "Automatska konfiguracija CUPSa"
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-msgid "Detecting devices ..."
-msgstr "Prepoznajem uređaje ..."
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-msgid "Test ports"
-msgstr "Testiraj portove"
-
-#: ../../printerdrake.pm_.c:167 ../../printerdrake.pm_.c:2437
-#: ../../printerdrake.pm_.c:2556
-msgid "Add a new printer"
-msgstr "Dodaj novi ÅtampaĨ"
-
-#: ../../printerdrake.pm_.c:168
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard allows you to install local or remote printers to be used from "
-"this machine and also from other machines in the network.\n"
-"\n"
-"It asks you for all necessary information to set up the printer and gives "
-"you access to all available printer drivers, driver options, and printer "
-"connection types."
-msgstr ""
-"\n"
-"Dobro doÅli u Äarobnjak za podeÅavanje ÅtampaĨa\n"
-"\n"
-"Ovaj Ĩarobnjak vam omogućuje da instalirate lokalne ili udaljene ÅtampaĨe "
-"koji će biti koriÅteni sa ovog raĨunara, a takoÄ‘er i sa drugih raĨunara na "
-"mreži.\n"
-"\n"
-"On će od vas tražiti sve potrebne informacije kako bi ÅtampaĨ bio podeÅen, a "
-"vama omogućen pristup svim dostupnim drajverima, opcijama drajvera i vrstama "
-"konekcije ÅtampaĨa."
-
-#: ../../printerdrake.pm_.c:176 ../../printerdrake.pm_.c:203
-#: ../../printerdrake.pm_.c:378 ../../printerdrake.pm_.c:393
-#: ../../printerdrake.pm_.c:403 ../../printerdrake.pm_.c:466
-msgid "Local Printer"
-msgstr "Lokalni ÅtampaĨ"
-
-#: ../../printerdrake.pm_.c:177
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard will help you to install your printer(s) connected to this "
-"computer.\n"
-"\n"
-"Please plug in your printer(s) on this computer and turn it/them on. Click "
-"on \"Next\" when you are ready, and on \"Cancel\" when you do not want to "
-"set up your printer(s) now.\n"
-"\n"
-"Note that some computers can crash during the printer auto-detection, turn "
-"off \"Auto-detect printers\" to do a printer installation without auto-"
-"detection. Use the \"Expert Mode\" of printerdrake when you want to set up "
-"printing on a remote printer if printerdrake does not list it automatically."
-msgstr ""
-"\n"
-"Dobro doÅli u Äarobnjak za podeÅavanje ÅtampaĨa\n"
-"\n"
-"Ovaj Ĩarobnjak će vam pomoći da instalirate vaÅ(e) ÅtampaĨ(e) koji su "
-"povezani na ovaj raĨunar.\n"
-"\n"
-"Molim ukljuĨite ÅtampaĨ(e) na ovom raĨunaru i ukljuĨite ih. Kliknite na "
-"dugme \"Dalje\" kada budete spremni, a na \"Odustani\" ako ne želite da "
-"podesite vaÅe ÅtampaĨe sada.\n"
-"\n"
-"Obratite pažnju da neki raĨunari mogu krahirati tokom automatskog "
-"prepoznavanja ÅtampaĨa. IskljuĨite opciju \"Automatski prepoznaj ÅtampaĨe\" "
-"ako je ovo sluĨaj kod vas. Koristite \"Ekspertni mod\" printerdrake-a ako "
-"želite da podesite Åtampanje na udaljenom ÅtampaĨu a printerdrake ga ne "
-"izlista automatski."
-
-#: ../../printerdrake.pm_.c:186
-msgid "Auto-detect printers"
-msgstr "Automatski prepoznaj ÅtampaĨe"
-
-#: ../../printerdrake.pm_.c:204
-msgid ""
-"\n"
-"Congratulations, your printer is now installed and configured!\n"
-"\n"
-"You can print using the \"Print\" command of your application (usually in "
-"the \"File\" menu).\n"
-"\n"
-"If you want to add, remove, or rename a printer, or if you want to change "
-"the default option settings (paper input tray, printout quality, ...), "
-"select \"Printer\" in the \"Hardware\" section of the Mandrake Control "
-"Center."
-msgstr ""
-"\n"
-"Äestitamo, vaÅ ÅtampaĨ je sada instaliran i podeÅen!\n"
-"\n"
-"Možete Åtampati koristeći komandu \"Å tampaj\" u vaÅoj aplikaciji (obiĨno se "
-"nalazi u meniju \"Datoteka).\n"
-"\n"
-"Ako želite dodati, ukloniti ili promjeniti ime ÅtampaĨa, ili ako želite "
-"promjeniti neke podrazumjevane postavke (ulazni put papira, kvaliteta "
-"Åtampe...), izaberite opciju \"Å tampaĨ\" u \"Hardware\" sekciji Mandrake "
-"Kontrolnog centra."
-
-#: ../../printerdrake.pm_.c:223
-msgid "Auto-Detection of Printers"
-msgstr "Automatsko prepoznavanje ÅtampaĨa"
-
-#: ../../printerdrake.pm_.c:224
-msgid ""
-"Printerdrake is able to auto-detect your locally connected parallel and USB "
-"printers for you, but note that on some systems the auto-detection CAN "
-"FREEZE YOUR SYSTEM AND THIS CAN LEAD TO CORRUPTED FILE SYSTEMS! So do it ON "
-"YOUR OWN RISK!\n"
-"\n"
-"Do you really want to get your printers auto-detected?"
-msgstr ""
-"Printerdrake može automatski prepoznati ÅtampaĨe koji su spojeni lokalno "
-"putem paralelne ili USB veze, ali zapamtite da na nekim sistemima automatsko "
-"prepoznavanje MOŽE ZALEDITI VAÅ  SISTEM, Å TO MOŽE VODITI DO OÅ TEÄENJA "
-"DATOTEÄNIH SISTEMA! Zato ovo radite NA VAÅ U ODGOVORNOST!\n"
-"\n"
-"Da li zaista želite da vaÅi ÅtampaĨi budu prepoznati automatski?"
-
-#: ../../printerdrake.pm_.c:227 ../../printerdrake.pm_.c:229
-#: ../../printerdrake.pm_.c:230
-msgid "Do auto-detection"
-msgstr "Koristi auto prepoznavanje"
-
-#: ../../printerdrake.pm_.c:228
-msgid "Set up printer manually"
-msgstr "RuĨno podesite ÅtampaĨ"
-
-#: ../../printerdrake.pm_.c:256
-#, c-format
-msgid "Detected %s"
-msgstr "Detektovan %s"
-
-#: ../../printerdrake.pm_.c:260 ../../printerdrake.pm_.c:287
-#: ../../printerdrake.pm_.c:306
-#, c-format
-msgid "Printer on parallel port \\/*%s"
-msgstr "ŠtampaĨ na paralelnom portu \\/*%s"
-
-#: ../../printerdrake.pm_.c:262 ../../printerdrake.pm_.c:289
-#: ../../printerdrake.pm_.c:311
-#, c-format
-msgid "USB printer \\/*%s"
-msgstr "USB ÅtampaĨ \\/*%s"
-
-#: ../../printerdrake.pm_.c:379
-msgid ""
-"No local printer found! To manually install a printer enter a device name/"
-"file name in the input line (Parallel Ports: /dev/lp0, /dev/lp1, ..., "
-"equivalent to LPT1:, LPT2:, ..., 1st USB printer: /dev/usb/lp0, 2nd USB "
-"printer: /dev/usb/lp1, ...)."
-msgstr ""
-"Nije pronaÄ‘en nijedan lokalni ÅtampaĨ! Ako želite ruĨno instalirati ÅtampaĨ, "
-"unesite ime uređaja / ime datoteke na ulaznu liniju (Paralelni portovi: /dev/"
-"lp0, /dev/lp1, ..., ekvivalentno LPT1:, LPT2:, ..., prvi USB ÅtampaĨ: /dev/"
-"usb/lp0, drugi USB ÅtampaĨ: /dev/usb/lp1, ...)."
-
-#: ../../printerdrake.pm_.c:383
-msgid "You must enter a device or file name!"
-msgstr "Morate unijeti naziv uređaja ili datoteke!"
-
-#: ../../printerdrake.pm_.c:394
-msgid ""
-"No local printer found!\n"
-"\n"
-msgstr ""
-"Nije pronaÄ‘en nijedan lokalni ÅtampaĨ!\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:395
-msgid ""
-"Network printers can only be installed after the installation. Choose "
-"\"Hardware\" and then \"Printer\" in the Mandrake Control Center."
-msgstr ""
-"Mrežni ÅtampaĨi mogu biti instalirani samo nakon zavrÅetka instalacije. "
-"Izaberite \"Hardware\" i zatim \"ŠtampaĨ\" u Mandrake Kontrolnom centru."
-
-#: ../../printerdrake.pm_.c:396
-msgid ""
-"To install network printers, click \"Cancel\", switch to the \"Expert Mode"
-"\", and click \"Add a new printer\" again."
-msgstr ""
-"Da instalirate mrežne ÅtampaĨe, kliknite na \"Odustani\", prebacite na "
-"\"Ekspert mod\" i kliknite ponovo na \"Dodaj novi ÅtampaĨ\"."
-
-#: ../../printerdrake.pm_.c:407
-msgid ""
-"The following printer was auto-detected, if it is not the one you want to "
-"configure, enter a device name/file name in the input line"
-msgstr ""
-"Sljedeći ÅtampaĨ je prepoznat automatski: ako to nije onaj koji želite "
-"podesiti, uneiste naziv uređaja / naziv datoteke u ulaznu liniju"
-
-#: ../../printerdrake.pm_.c:408
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up or enter a device name/file name in the input line"
-msgstr ""
-"Ovo je lista svih automatski prepoznatih ÅtampaĨa. Molimo izaberite ÅtampaĨ "
-"koji želite podesiti ili unesite naziv uređaja / naziv datoteke na ulaznu "
-"liniju"
-
-#: ../../printerdrake.pm_.c:410
-msgid ""
-"The following printer was auto-detected. The configuration of the printer "
-"will work fully automatically. If your printer was not correctly detected or "
-"if you prefer a customized printer configuration, turn on \"Manual "
-"configuration\"."
-msgstr ""
-"Sljedeći ÅtampaĨ je prepoznat automatski. PodeÅavanje ÅtampaĨa će raditi "
-"potpuno automatski. Ako vaÅ ÅtampaĨ nije ispravno prepoznat ili ako želite "
-"sami podesiti ÅtampaĨ, ukljuĨite \"RuĨno podeÅavanje\"."
-
-#: ../../printerdrake.pm_.c:411
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up. The configuration of the printer will work fully "
-"automatically. If your printer was not correctly detected or if you prefer a "
-"customized printer configuration, turn on \"Manual configuration\"."
-msgstr ""
-"Ovo je lista svih automatski prepoznatih ÅtampaĨa. Molim odaberite ÅtampaĨ "
-"koji želite podesiti. PodeÅavanje ÅtampaĨa će raditi potpuno automatski. Ako "
-"vaÅ ÅtampaĨ nije ispravno prepoznat ili ako želite sami podesiti ÅtampaĨ, "
-"ukljuĨite \"RuĨno podeÅavanje\"."
-
-#: ../../printerdrake.pm_.c:413
-msgid ""
-"Please choose the port where your printer is connected to or enter a device "
-"name/file name in the input line"
-msgstr ""
-"Molimo izaberite port na koji je vaÅ ÅtampaĨ povezan ili unesite naziv "
-"uređaja / naziv datoteke na ulaznoj liniji"
-
-#: ../../printerdrake.pm_.c:414
-msgid "Please choose the port where your printer is connected to."
-msgstr "Molimo izaberite na koji port je prikljuĨen vaÅ ÅtampaĨ."
-
-#: ../../printerdrake.pm_.c:416
-msgid ""
-" (Parallel Ports: /dev/lp0, /dev/lp1, ..., equivalent to LPT1:, LPT2:, ..., "
-"1st USB printer: /dev/usb/lp0, 2nd USB printer: /dev/usb/lp1, ...)."
-msgstr ""
-" (Paralelni portovi: /dev/lp0, /dev/lp1, ..., ekvivalentno sa LPT1:, "
-"LPT2:, ..., prvi USB ÅtampaĨ: /dev/usb/lp0, drugi USB ÅtampaĨ: /dev/usb/"
-"lp1, ...)."
-
-#: ../../printerdrake.pm_.c:421
-msgid "You must choose/enter a printer/device!"
-msgstr "Morate izabrati ili unijeti ÅtampaĨ / ureÄ‘aj!"
-
-#: ../../printerdrake.pm_.c:441
-msgid "Manual configuration"
-msgstr "RuĨno podeÅavanje"
-
-#: ../../printerdrake.pm_.c:467
-msgid ""
-"Is your printer a multi-function device from HP (OfficeJet, PSC, PhotoSmart, "
-"LaserJet 1100/1200/1220/3200/3300 with scanner)?"
-msgstr ""
-"Da li je vaÅ ÅtampaĨ viÅenamjenski ureÄ‘aj od HPa (OfficeJet, PSC, "
-"PhotoSmart, LaserJet 1100/1200/1220/3200/3300 sa skenerom)?"
-
-#: ../../printerdrake.pm_.c:482
-msgid "Installing HPOJ package..."
-msgstr "Instaliram HPOJ paket..."
-
-#: ../../printerdrake.pm_.c:487
-msgid "Checking device and configuring HPOJ ..."
-msgstr "Provjeravam ureÄ‘aj i podeÅavam HPOJ ..."
-
-#: ../../printerdrake.pm_.c:505
-msgid "Installing SANE package..."
-msgstr "Instaliram SANE paket..."
-
-#: ../../printerdrake.pm_.c:517
-msgid "Scanning on your HP multi-function device"
-msgstr "Skeniram na vaÅem HP viÅenamjenskom ureÄ‘aju"
-
-#: ../../printerdrake.pm_.c:534
-msgid "Making printer port available for CUPS ..."
-msgstr "Omogućujem CUPSu port ÅtampaĨa ..."
-
-#: ../../printerdrake.pm_.c:544 ../../printerdrake.pm_.c:1018
-#: ../../printerdrake.pm_.c:1132
-msgid "Reading printer database ..."
-msgstr "Äitam bazu podataka o ÅtampaĨima ..."
-
-#: ../../printerdrake.pm_.c:624
-msgid "Remote lpd Printer Options"
-msgstr "Opcije udaljenog lpd ÅtampaĨa"
-
-#: ../../printerdrake.pm_.c:625
-msgid ""
-"To use a remote lpd printer, you need to supply the hostname of the printer "
-"server and the printer name on that server."
-msgstr ""
-"Da biste koristili udaljeni lpd ÅtampaĨ, morate dati ime raĨunara za printer "
-"server i ime ÅtampaĨa na tom serveru."
-
-#: ../../printerdrake.pm_.c:626
-msgid "Remote host name"
-msgstr "Ime udaljenog raĨunara"
-
-#: ../../printerdrake.pm_.c:627
-msgid "Remote printer name"
-msgstr "Ime udaljenog ÅtampaĨa"
-
-#: ../../printerdrake.pm_.c:630
-msgid "Remote host name missing!"
-msgstr "Ime udaljenog raĨunara nedostaje!"
-
-#: ../../printerdrake.pm_.c:634
-msgid "Remote printer name missing!"
-msgstr "Ime udaljenog ÅtampaĨa nedostaje!"
-
-#: ../../printerdrake.pm_.c:702
-msgid "SMB (Windows 9x/NT) Printer Options"
-msgstr "Opcije SMB (Windows 9x/NT) ÅtampaĨa"
-
-#: ../../printerdrake.pm_.c:703
-msgid ""
-"To print to a SMB printer, you need to provide the SMB host name (Note! It "
-"may be different from its TCP/IP hostname!) and possibly the IP address of "
-"the print server, as well as the share name for the printer you wish to "
-"access and any applicable user name, password, and workgroup information."
-msgstr ""
-"Da biste Åtampali na SMB ÅtampaĨ, morate dati ime SMB raĨunara (Pažnja! Ono "
-"može biti razliĨito od TCP/IP imena!) i eventualno IP adresu print servera, "
-"kao i share naziv ÅtampaĨa kojem želite pristupiti i korisniĨko ime, Åifru i "
-"informacije o radnoj grupi."
-
-#: ../../printerdrake.pm_.c:704
-msgid "SMB server host"
-msgstr "SMB server ime"
-
-#: ../../printerdrake.pm_.c:705
-msgid "SMB server IP"
-msgstr "SMB server IP"
-
-#: ../../printerdrake.pm_.c:706
-msgid "Share name"
-msgstr "Share naziv"
-
-#: ../../printerdrake.pm_.c:709
-msgid "Workgroup"
-msgstr "Radna grupa"
-
-#: ../../printerdrake.pm_.c:716
-msgid "Either the server name or the server's IP must be given!"
-msgstr "Treba biti dato ili ime servera ili IP adresa servera!"
-
-#: ../../printerdrake.pm_.c:720
-msgid "Samba share name missing!"
-msgstr "Naziv samba share-a nedostaje!"
-
-#: ../../printerdrake.pm_.c:725
-msgid "SECURITY WARNING!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:726
-#, c-format
-msgid ""
-"You are about to set up printing to a Windows account with password. Due to "
-"a fault in the architecture of the Samba client software the password is put "
-"in clear text into the command line of the Samba client used to transmit the "
-"print job to the Windows server. So it is possible for every user on this "
-"machine to display the password on the screen by issuing commands as \"ps "
-"auxwww\".\n"
-"\n"
-"We recommend to make use of one of the following alternatives (in all cases "
-"you have to make sure that only machines from your local network have access "
-"to your Windows server, for example by means of a firewall):\n"
-"\n"
-"Use a password-less account on your Windows server, as the \"GUEST\" account "
-"or a special account dedicated for printing. Do not remove the password "
-"protection from a personal account or the administrator account.\n"
-"\n"
-"Set up your Windows server to make the printer available under the LPD "
-"protocol. Then set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:736
-#, c-format
-msgid ""
-"Set up your Windows server to make the printer available under the IPP "
-"protocol and set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:739
-msgid ""
-"Connect your printer to a Linux server and let your Windows machine(s) "
-"connect to it as a client.\n"
-"\n"
-"Do you really want to continue setting up this printer as you are doing now?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:801
-msgid "NetWare Printer Options"
-msgstr "Opcije NetWare ÅtampaĨa"
-
-#: ../../printerdrake.pm_.c:802
-msgid ""
-"To print on a NetWare printer, you need to provide the NetWare print server "
-"name (Note! it may be different from its TCP/IP hostname!) as well as the "
-"print queue name for the printer you wish to access and any applicable user "
-"name and password."
-msgstr ""
-"Da biste Åtampali na NetWare ÅtampaĨ, trebate dati naziv NetWare print "
-"servera (Pažnja! Ono može biti razliĨito od njegovog TCP/IP imena!) kao i "
-"naziv reda za Åtampu na ÅtampaĨu kojem želite pristupiti i eventualno "
-"korisniĨko ime i Åifru."
-
-#: ../../printerdrake.pm_.c:803
-msgid "Printer Server"
-msgstr "Printer Server"
-
-#: ../../printerdrake.pm_.c:804
-msgid "Print Queue Name"
-msgstr "Naziv reda za Åtampu"
-
-#: ../../printerdrake.pm_.c:809
-msgid "NCP server name missing!"
-msgstr "NCP naziv servera nedostaje!"
-
-#: ../../printerdrake.pm_.c:813
-msgid "NCP queue name missing!"
-msgstr "NCP naziv reda nedostaje!"
-
-#: ../../printerdrake.pm_.c:852
-msgid "TCP/Socket Printer Options"
-msgstr "TCP/socket opcije ÅtampaĨa"
-
-#: ../../printerdrake.pm_.c:853
-msgid ""
-"To print to a TCP or socket printer, you need to provide the host name of "
-"the printer and optionally the port number. On HP JetDirect servers the port "
-"number is usually 9100, on other servers it can vary. See the manual of your "
-"hardware."
-msgstr ""
-"Da biste Åtampali na TCP ili socket ÅtampaĨ, morate dati hostname ÅtampaĨa i "
-"opcionalno broj porta. Na HP JetDirect serverima broj porta je obiĨno 9100, "
-"na ostalim serverima on može varirati. Pogledajte priruĨnik vaÅeg hardware-a."
-
-#: ../../printerdrake.pm_.c:854
-msgid "Printer host name"
-msgstr "Hostname ÅtampaĨa"
-
-#: ../../printerdrake.pm_.c:858
-msgid "Printer host name missing!"
-msgstr "Hostname ÅtampaĨa nedostaje!"
-
-#: ../../printerdrake.pm_.c:887 ../../printerdrake.pm_.c:889
-msgid "Printer Device URI"
-msgstr "URI ureÄ‘aja ÅtampaĨa"
-
-#: ../../printerdrake.pm_.c:888
-msgid ""
-"You can specify directly the URI to access the printer. The URI must fulfill "
-"either the CUPS or the Foomatic specifications. Note that not all URI types "
-"are supported by all the spoolers."
-msgstr ""
-"Možete dati direktno URI za pristup ÅtampaĨu. URI mora zadovoljavati ili "
-"CUPS ili Foomatic specifikacije. Obratite pažnju da nisu svi tipovi URIja "
-"podržani od svih spoolera."
-
-#: ../../printerdrake.pm_.c:903
-msgid "A valid URI must be entered!"
-msgstr "Trebate unijeti ispravan URI!"
-
-#: ../../printerdrake.pm_.c:1004
-msgid ""
-"Every printer needs a name (for example \"printer\"). The Description and "
-"Location fields do not need to be filled in. They are comments for the users."
-msgstr ""
-"Svakom ÅtampaĨu treba dati ime (npr. \"stampac\"). Polja Opis i Lokacija "
-"nije potrebno popuniti. Oni su komentari za korisnike."
-
-#: ../../printerdrake.pm_.c:1005
-msgid "Name of printer"
-msgstr "Naziv ÅtampaĨa"
-
-#: ../../printerdrake.pm_.c:1006
-msgid "Description"
-msgstr "Opis"
-
-#: ../../printerdrake.pm_.c:1007
-msgid "Location"
-msgstr "Lokacija"
-
-#: ../../printerdrake.pm_.c:1021
-msgid "Preparing printer database ..."
-msgstr "Pripremam bazu podataka o ÅtampaĨima..."
-
-#: ../../printerdrake.pm_.c:1112
-msgid "Your printer model"
-msgstr "Model vaÅeg ÅtampaĨa"
-
-#: ../../printerdrake.pm_.c:1113
-#, c-format
-msgid ""
-"Printerdrake has compared the model name resulting from the printer auto-"
-"detection with the models listed in its printer database to find the best "
-"match. This choice can be wrong, especially when your printer is not listed "
-"at all in the database. So check whether the choice is correct and click "
-"\"The model is correct\" if so and if not, click \"Select model manually\" "
-"so that you can choose your printer model manually on the next screen.\n"
-"\n"
-"For your printer Printerdrake has found:\n"
-"\n"
-"%s"
-msgstr ""
-"Printerdrake je uporedi ime modela koje je dobijeno od automatskog "
-"prepoznavanja ÅtampaĨa sa modelima koji su navedeni u njegovoj bazi podataka "
-"kako bi naÅao najbliži. Ovaj izbor možda nije taĨan, pogotovo ako vaÅ "
-"ÅtampaĨ uopÅte nije naveden u bazi. Stoga provjerite da li je izbor ispravan "
-"i ako je tako kliknite \"Model je ispravan\", u suprotnom kliknite "
-"\"Izaberite model ruĨno\" kako biste ruĨno izabrali vaÅ model ÅtampaĨa na "
-"sljedećem ekranu.\n"
-"\n"
-"Za vaÅ ÅtampaĨ Printerdrake je naÅao:\n"
-"\n"
-"%s"
-
-#: ../../printerdrake.pm_.c:1118 ../../printerdrake.pm_.c:1121
-msgid "The model is correct"
-msgstr "Model je ispravan"
-
-#: ../../printerdrake.pm_.c:1119 ../../printerdrake.pm_.c:1120
-#: ../../printerdrake.pm_.c:1123
-msgid "Select model manually"
-msgstr "Izaberite model ruĨno"
-
-#: ../../printerdrake.pm_.c:1139
-msgid "Printer model selection"
-msgstr "Izbor modela ÅtampaĨa"
-
-#: ../../printerdrake.pm_.c:1140
-msgid "Which printer model do you have?"
-msgstr "Koji model ÅtampaĨa imate?"
-
-#: ../../printerdrake.pm_.c:1141
-msgid ""
-"\n"
-"\n"
-"Please check whether Printerdrake did the auto-detection of your printer "
-"model correctly. Search the correct model in the list when the cursor is "
-"standing on a wrong model or on \"Raw printer\"."
-msgstr ""
-"\n"
-"\n"
-"Molim provjerite da li je Printerdrake izvrÅio ispravno automatsko "
-"prepoznavanje modela vaÅeg ÅtampaĨa. Potražite ispravan model na listi ako "
-"kursor stoji na pogreÅnom modelu ili na \"Raw ÅtampaĨ\"."
-
-#: ../../printerdrake.pm_.c:1144
-msgid ""
-"If your printer is not listed, choose a compatible (see printer manual) or a "
-"similar one."
-msgstr ""
-"Ako ÅtampaĨ nije naveden, izaberite kompatibilan (pogledajte uputstva za "
-"ÅtampaĨ) ili sliĨan."
-
-#: ../../printerdrake.pm_.c:1220
-msgid "OKI winprinter configuration"
-msgstr "PodeÅavanje OKI winprinter-a"
-
-#: ../../printerdrake.pm_.c:1221
-msgid ""
-"You are configuring an OKI laser winprinter. These printers\n"
-"use a very special communication protocol and therefore they work only when "
-"connected to the first parallel port. When your printer is connected to "
-"another port or to a print server box please connect the printer to the "
-"first parallel port before you print a test page. Otherwise the printer will "
-"not work. Your connection type setting will be ignored by the driver."
-msgstr ""
-"Sada podeÅavate OK laserski winprinter. Ovi ÅtampaĨi\n"
-"koriste jedan poseban komunikacijski protokol i stoga rade samo kada su "
-"spojeni na prvom paralelnom portu. Ako je vaÅ ÅtampaĨ spojen na neki drugi "
-"port ili na print server molimo spojite ÅtampaĨ na prvi paralelni port prije "
-"nego Åto odÅtampate testnu stranicu. InaĨe ÅtampaĨ neće raditi. Drajver će "
-"ignorisati vaÅe podeÅenje tipa konekcije."
-
-#: ../../printerdrake.pm_.c:1264 ../../printerdrake.pm_.c:1291
-msgid "Lexmark inkjet configuration"
-msgstr "PodeÅavanje Lexmark inkjet-a"
-
-#: ../../printerdrake.pm_.c:1265
-msgid ""
-"The inkjet printer drivers provided by Lexmark only support local printers, "
-"no printers on remote machines or print server boxes. Please connect your "
-"printer to a local port or configure it on the machine where it is connected "
-"to."
-msgstr ""
-"Inkjet drajveri za Åtampu koje obezbjeÄ‘uje Lexmark podržavaju samo lokalne "
-"ÅtampaĨe, a ne i ÅtampaĨe na udaljenim raĨunarima ili print serverima. "
-"Molimo spojite vaÅ ÅtampaĨ na lokalni port ili ga podesite na raĨunaru na "
-"koji je spojen."
-
-#: ../../printerdrake.pm_.c:1292
-msgid ""
-"To be able to print with your Lexmark inkjet and this configuration, you "
-"need the inkjet printer drivers provided by Lexmark (http://www.lexmark."
-"com/). Go to the US site and click on the \"Drivers\" button. Then choose "
-"your model and afterwards \"Linux\" as operating system. The drivers come as "
-"RPM packages or shell scripts with interactive graphical installation. You "
-"do not need to do this configuration by the graphical frontends. Cancel "
-"directly after the license agreement. Then print printhead alignment pages "
-"with \"lexmarkmaintain\" and adjust the head alignment settings with this "
-"program."
-msgstr ""
-"Da biste mogli Åtampati sa vaÅim Lexmark inkjetom na ovoj konfiguraciji, "
-"potrebni su vam inkjet drajveri za Åtampu koje obezbjeÄ‘uje Lexmark (http://"
-"www.lexmark.com/). Idite na US stranicu i kliknite na dugme \"Drivers\". "
-"Zatim izaberite vaÅ model a zatim \"Linux\" kao operativni sistem. Drajveri "
-"dolaze u vidu RPM paketa ili shell skripte sa interaktivnom grafiĨkom "
-"instalacijom. Ne morate obaviti ovu konfiguraciju na grafiĨkom interfejsu. "
-"Odustanite odmah nakon licencnog ugovora. Zatim odÅtampaje stranice za "
-"poravnavanje glava sa \"lexmarkmaintain\" i podesite opcije poravnanja glave "
-"pomoću ovog programa."
-
-#: ../../printerdrake.pm_.c:1508
-msgid ""
-"Printer default settings\n"
-"\n"
-"You should make sure that the page size and the ink type/printing mode (if "
-"available) and also the hardware configuration of laser printers (memory, "
-"duplex unit, extra trays) are set correctly. Note that with a very high "
-"printout quality/resolution printing can get substantially slower."
-msgstr ""
-"Podrazumjevane opcije ÅtampaĨa\n"
-"\n"
-"Trebate provjeriti da su veliĨina papira i tip tinte (ako je dostupno) "
-"ispravno podeÅeni. Obratite pažnju da za voma veliku kvalitetu / rezoluciju "
-"Åtampa može postati znatno sporija."
-
-#: ../../printerdrake.pm_.c:1517
-#, c-format
-msgid "Option %s must be an integer number!"
-msgstr "Opcija %s mora biti cijeli broj!"
-
-#: ../../printerdrake.pm_.c:1521
-#, c-format
-msgid "Option %s must be a number!"
-msgstr "Opcija %s mora biti broj!"
-
-#: ../../printerdrake.pm_.c:1526
-#, c-format
-msgid "Option %s out of range!"
-msgstr "Opcija %s izvan raspona!"
-
-#: ../../printerdrake.pm_.c:1565
-#, c-format
-msgid ""
-"Do you want to set this printer (\"%s\")\n"
-"as the default printer?"
-msgstr ""
-"Da li želite da podesite ovaj ÅtampaĨ (\"%s\")\n"
-"kao podrazumjevani ÅtampaĨ?"
-
-#: ../../printerdrake.pm_.c:1582
-msgid "Test pages"
-msgstr "Testna stranica"
-
-#: ../../printerdrake.pm_.c:1583
-msgid ""
-"Please select the test pages you want to print.\n"
-"Note: the photo test page can take a rather long time to get printed and on "
-"laser printers with too low memory it can even not come out. In most cases "
-"it is enough to print the standard test page."
-msgstr ""
-"Molimo izaberite testne stranice koje ćete Åtampati.\n"
-"Pažnja: foto testna stranica može tražiti dosta vremena za Åtampu a na "
-"laserskim ÅtampaĨima sa malo memorije možda neće nikad ni izaći. U većini "
-"sluĨajeva dovoljno je odÅtampati standardnu testnu stranicu."
-
-#: ../../printerdrake.pm_.c:1587
-msgid "No test pages"
-msgstr "Nijedna testna strana"
-
-#: ../../printerdrake.pm_.c:1588
-msgid "Print"
-msgstr "Å tampaj"
-
-#: ../../printerdrake.pm_.c:1590
-msgid "Standard test page"
-msgstr "Standardna testna strana"
-
-#: ../../printerdrake.pm_.c:1593
-msgid "Alternative test page (Letter)"
-msgstr "Alternativna testna strana (Letter)"
-
-#: ../../printerdrake.pm_.c:1596
-msgid "Alternative test page (A4)"
-msgstr "Alternativna testna strana (A4)"
-
-#: ../../printerdrake.pm_.c:1598
-msgid "Photo test page"
-msgstr "Foto testna strana"
-
-#: ../../printerdrake.pm_.c:1602
-msgid "Do not print any test page"
-msgstr "Nemoj Åtampati testnu stranicu"
-
-#: ../../printerdrake.pm_.c:1610 ../../printerdrake.pm_.c:1747
-msgid "Printing test page(s)..."
-msgstr "Å tampam testnu stranicu..."
-
-#: ../../printerdrake.pm_.c:1635
-#, c-format
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-"Printing status:\n"
-"%s\n"
-"\n"
-msgstr ""
-"Testna stranica je poslana ÅtampaĨu.\n"
-"Može potrajati odreÄ‘eno vrijeme dok ÅtampaĨ krene.\n"
-"Status Åtampanja:\n"
-"%s\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:1639
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-msgstr ""
-"Testna stranica je poslana ÅtampaĨu.\n"
-"Može potrajati odreÄ‘eno vrijeme dok ÅtampaĨ krene.\n"
-
-#: ../../printerdrake.pm_.c:1646
-msgid "Did it work properly?"
-msgstr "Da li je radilo ispravno?"
-
-#: ../../printerdrake.pm_.c:1667 ../../printerdrake.pm_.c:2732
-msgid "Raw printer"
-msgstr "Sirovi ÅtampaĨ"
-
-#: ../../printerdrake.pm_.c:1685
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) you can either use "
-"the command \"%s <file>\" or a graphical printing tool: \"xpp <file>\" or "
-"\"kprinter <file>\". The graphical tools allow you to choose the printer and "
-"to modify the option settings easily.\n"
-msgstr ""
-"Za Åtampanje datoteke sa komandne linije (terminalski prozor) možete "
-"koristiti ili komandu \"%s <datoteka>\" ili grafiĨki alat za Åtampu: \"xpp "
-"<datoteka>\" ili \"kprinter <datoteka>\". GrafiĨki alati vam omogućuju da "
-"jednostavno odaberete ÅtampaĨ i izmjenite podeÅenja opcija.\n"
-
-#: ../../printerdrake.pm_.c:1687
-msgid ""
-"These commands you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications, but here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-"Ove komande možete takoÄ‘er koristiti u polju \"Komanda za Åtampu\" u "
-"dijalozima za Åtampu mnogih aplikacija, ali ovdje ne morate navesti ime "
-"datoteke jer tu datoteku obezbjeđuje sama aplikacija.\n"
-
-#: ../../printerdrake.pm_.c:1690 ../../printerdrake.pm_.c:1706
-#: ../../printerdrake.pm_.c:1716
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" command also allows to modify the option settings for a "
-"particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\". "
-msgstr ""
-"\n"
-"Komanda \"%s\" također omogućava izmjenu opcija za pojedinaĨni zadatak "
-"Åtampe. Jednostavno dodajte željena podeÅenja na komandnu liniju, npr. \"%s "
-"<datoteka>\". "
-
-#: ../../printerdrake.pm_.c:1693 ../../printerdrake.pm_.c:1732
-#, c-format
-msgid ""
-"To know about the options available for the current printer read either the "
-"list shown below or click on the \"Print option list\" button.%s\n"
-"\n"
-msgstr ""
-"Za listu opcija koje su dostupne za trenutni ÅtampaĨ ili proĨitajte listu "
-"koja je data ispod ili kliknite na dugme \"Lista opcija za Åtampu\".%s\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:1696
-msgid ""
-"Here is a list of the available printing options for the current printer:\n"
-"\n"
-msgstr ""
-"Ovo je lista mogućih opcija za Åtampu za trenutni ÅtampaĨ:\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:1701 ../../printerdrake.pm_.c:1711
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\".\n"
-msgstr ""
-"Za Åtampanje datoteke sa komandne linije (terminalski prozor) koristite "
-"komandu \"%s <datoteka>\".\n"
-
-#: ../../printerdrake.pm_.c:1703 ../../printerdrake.pm_.c:1713
-#: ../../printerdrake.pm_.c:1723
-msgid ""
-"This command you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications. But here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-"Ovu komandu takoÄ‘er možete koristiti u polju \"Komanda za Åtampu\" u "
-"dijalozima za Åtampu mnogih aplikacija. Ovdje nije potrebno navesti naziv "
-"datoteke jer tudatoteku obezbjeđuje sama aplikacija.\n"
-
-#: ../../printerdrake.pm_.c:1708 ../../printerdrake.pm_.c:1718
-msgid ""
-"To get a list of the options available for the current printer click on the "
-"\"Print option list\" button."
-msgstr ""
-"Za listu opcija koje su dostupne za trenutni ÅtampaĨ kliknite na dugme "
-"\"Lista opcija za Åtampu\"."
-
-#: ../../printerdrake.pm_.c:1721
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\" or \"%s <file>\".\n"
-msgstr ""
-"Za Åtampanje datoteke sa komandne linije (terminalski prozor) koristite "
-"komandu \"%s <datoteka>\" ili \"%s <datoteka>\".\n"
-
-#: ../../printerdrake.pm_.c:1725
-msgid ""
-"You can also use the graphical interface \"xpdq\" for setting options and "
-"handling printing jobs.\n"
-"If you are using KDE as desktop environment you have a \"panic button\", an "
-"icon on the desktop, labeled with \"STOP Printer!\", which stops all print "
-"jobs immediately when you click it. This is for example useful for paper "
-"jams.\n"
-msgstr ""
-"Možete takoÄ‘er koristiti grafiĨki interfejs \"xpdq\" za podeÅavanje opcija i "
-"upravljanje zadacima Åtampe.\n"
-"Ako koristite KDE okruženje radne povrÅine imate \"dugme za paniku\". To je "
-"ikona na radnoj povrÅini Ĩiji je naziv \"ZAUSTAVI ÅtampaĨ!\", koja "
-"zaustavlja sve zadatke Åtampe odmah kada kliknete na nju. Ovo je korisno "
-"npr. u sluĨaju zaglavljivanja papira.\n"
-
-#: ../../printerdrake.pm_.c:1729
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" and \"%s\" commands also allow to modify the option settings for "
-"a particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\".\n"
-msgstr ""
-"\n"
-"Komande \"%s\" i \"%s\" također omogućavaju izmjenu opcija za pojedinaĨni "
-"zadatak Åtampe. Jednostavno dodajte željena podeÅenja na komandnu liniju, "
-"npr. \"%s <datoteka>\".\n"
-
-#: ../../printerdrake.pm_.c:1738 ../../printerdrake.pm_.c:1744
-#: ../../printerdrake.pm_.c:1745 ../../printerdrake.pm_.c:1746
-#: ../../printerdrake.pm_.c:2716 ../../standalone/drakbackup_.c:754
-#: ../../standalone/drakbackup_.c:2458 ../../standalone/drakfont_.c:577
-#: ../../standalone/drakfont_.c:791
-msgid "Close"
-msgstr "Zatvori"
-
-#: ../../printerdrake.pm_.c:1741 ../../printerdrake.pm_.c:1753
-#, c-format
-msgid "Printing/Scanning on \"%s\""
-msgstr "Å tampam/skeniram na \"%s\""
-
-#: ../../printerdrake.pm_.c:1742 ../../printerdrake.pm_.c:1754
-#, c-format
-msgid "Printing on the printer \"%s\""
-msgstr "Å tampam na ÅtampaĨ \"%s\""
-
-#: ../../printerdrake.pm_.c:1744
-msgid "Print option list"
-msgstr "Lista opcija za Åtampu"
-
-#: ../../printerdrake.pm_.c:1766
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan with \"scanimage\" (\"scanimage -d hp:%s\" to specify "
-"the scanner when you have more than one) from the command line or with the "
-"graphical interfaces \"xscanimage\" or \"xsane\". If you are using the GIMP, "
-"you can also scan by choosing the appropriate point in the \"File\"/\"Acquire"
-"\" menu. Call also \"man scanimage\" and \"man sane-hp\" on the command line "
-"to get more information.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-"VaÅ HP viÅenamjenski ureÄ‘aj je automatski konfigurisan kako bi mogao "
-"skenirati. Sada možete skenirati sa komandne linije pomoću komande "
-"\"scanimage\" (\"scanimage -d hp:%s\" kako biste naveli scanner ako imate "
-"viÅe od jednog) ili koristeći grafiĨke okoline \"xscanimage\" ili \"xsane\". "
-"Ako koristite GIMP, možete također skenirati koristeći odgovarajuću stavku u "
-"meniju \"File\"/\"Acquire\". Za viÅe informacija, pogledajte joÅ i \"man "
-"scanimage\" i \"man sane-hp\" na komandnoj liniji.\n"
-"\n"
-"Nemojte koristiti \"scannerdrake\" za ovaj uređaj!"
-
-#: ../../printerdrake.pm_.c:1772
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan from the command line with \"ptal-hp %s scan ...\". "
-"Scanning via a graphical interface or from the GIMP is not supported yet for "
-"your device. More information you will find in the \"/usr/share/doc/hpoj-0.8/"
-"ptal-hp-scan.html\" file on your system. If you have an HP LaserJet 1100 or "
-"1200 you can only scan when you have the scanner option installed.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-"VaÅ HP viÅenamjenski ureÄ‘aj je automatski konfigurisan kako bi mogao "
-"skenirati. Sada možete skenirati sa komandne linije pomoću komande \"ptal-hp "
-"%s scan ...\". Skeniranje putem grafiĨkog interfejsa ili iz GIMPa joŠnije "
-"podržano za vaÅ ureÄ‘aj. ViÅe informacija možete naći u datoteci\"/usr/share/"
-"doc/hpoj-0.8/ptal-hp-scan.html\" na vaÅem raĨunaru. Ako imate HP LaserJet "
-"1100 ili 1200, možete skenirati samo ako ste instalirali opciju za "
-"skeniranje.\n"
-"\n"
-"Nemojte koristiti \"scannerdrake\" za ovaj uređaj!"
-
-#: ../../printerdrake.pm_.c:1794 ../../printerdrake.pm_.c:2221
-#: ../../printerdrake.pm_.c:2485 ../../standalone/printerdrake_.c:49
-msgid "Reading printer data ..."
-msgstr "Äitam podatke o ÅtampaĨu..."
-
-#: ../../printerdrake.pm_.c:1814 ../../printerdrake.pm_.c:1842
-#: ../../printerdrake.pm_.c:1877
-msgid "Transfer printer configuration"
-msgstr "PremjeÅtanje konfiguracije ÅtamapĨa"
-
-#: ../../printerdrake.pm_.c:1815
-#, c-format
-msgid ""
-"You can copy the printer configuration which you have done for the spooler %"
-"s to %s, your current spooler. All the configuration data (printer name, "
-"description, location, connection type, and default option settings) is "
-"overtaken, but jobs will not be transferred.\n"
-"Not all queues can be transferred due to the following reasons:\n"
-msgstr ""
-"Možete kopirati konfiguraciju ÅtampaĨa koju ste napravili za spooler %s u % "
-"s, vaÅ trenutni spooler. Svi podaci o konfiguraciji (naziv ÅtampaĨa, opis, "
-"lokacija, tip konekcije kao i podrazumjevane opcije) će biti preuzeti, ali "
-"zadaci Åtampe neće biti prebaĨeni.\n"
-"Svi redovi ne mogu biti prebaĨeni zbog sljedećih razloga:\n"
-
-#: ../../printerdrake.pm_.c:1818
-msgid ""
-"CUPS does not support printers on Novell servers or printers sending the "
-"data into a free-formed command.\n"
-msgstr ""
-"CUPS ne podržava ÅtampaĨe na Novell serverima ili ÅtampaĨekoji Åalju podatke "
-"u komandama slobodnog oblika.\n"
-
-#: ../../printerdrake.pm_.c:1820
-msgid ""
-"PDQ only supports local printers, remote LPD printers, and Socket/TCP "
-"printers.\n"
-msgstr ""
-"PDQ podržava samo lokalne ÅtampaĨe, udaljene LPD ÅtampaĨei Socket/TCP "
-"ÅtampaĨe.\n"
-
-#: ../../printerdrake.pm_.c:1822
-msgid "LPD and LPRng do not support IPP printers.\n"
-msgstr "LPD i LPRng ne podržavaju IPP ÅtampaĨe.\n"
-
-#: ../../printerdrake.pm_.c:1824
-msgid ""
-"In addition, queues not created with this program or \"foomatic-configure\" "
-"cannot be transferred."
-msgstr ""
-"Pored toga, redovi koji nisu kreirani ovim programom ili sa \"foomatic-"
-"configure\" ne mogu biti premjeÅteni."
-
-#: ../../printerdrake.pm_.c:1825
-msgid ""
-"\n"
-"Also printers configured with the PPD files provided by their manufacturers "
-"or with native CUPS drivers cannot be transferred."
-msgstr ""
-"\n"
-"TakoÄ‘er ÅtampaĨi konfigurisani sa PPD datotekama koje su osigurali njihovi "
-"proizvođaĨi ili sa vlastitim CUPS drajverima ne mogu biti prebaĨeni."
-
-#: ../../printerdrake.pm_.c:1826
-msgid ""
-"\n"
-"Mark the printers which you want to transfer and click \n"
-"\"Transfer\"."
-msgstr ""
-"\n"
-"OznaĨite ÅtampaĨe koje ćete prebacivati i kliknite na \n"
-"\"Prebaci\"."
-
-#: ../../printerdrake.pm_.c:1829
-msgid "Do not transfer printers"
-msgstr "Nemoj prebacivati ÅtampaĨe"
-
-#: ../../printerdrake.pm_.c:1830 ../../printerdrake.pm_.c:1847
-msgid "Transfer"
-msgstr "Prebaci"
-
-#: ../../printerdrake.pm_.c:1843
-#, c-format
-msgid ""
-"A printer named \"%s\" already exists under %s. \n"
-"Click \"Transfer\" to overwrite it.\n"
-"You can also type a new name or skip this printer."
-msgstr ""
-"ŠtampaĨ pod imenom \"%s\" već postoji pod %s: \n"
-"Kliknite na \"Prebaci\" da to prepiÅete.\n"
-"Možete takoÄ‘er unijeti novo ime ili preskoĨiti ovaj ÅtampaĨ."
-
-#: ../../printerdrake.pm_.c:1851
-msgid "Name of printer should contain only letters, numbers and the underscore"
-msgstr "Naziv ÅtampaĨa bi se trebao sastojati od slova, brojeva i donje linije"
-
-#: ../../printerdrake.pm_.c:1856
-#, c-format
-msgid ""
-"The printer \"%s\" already exists,\n"
-"do you really want to overwrite its configuration?"
-msgstr ""
-"ŠtampaĨ \"%s\" već postoji,\n"
-"da li sigurno želite prepisati ovu konfiguraciju?"
-
-#: ../../printerdrake.pm_.c:1864
-msgid "New printer name"
-msgstr "Novo ime ÅtampaĨa"
-
-#: ../../printerdrake.pm_.c:1867
-#, c-format
-msgid "Transferring %s ..."
-msgstr "Prebacujem %s ..."
-
-#: ../../printerdrake.pm_.c:1878
-#, c-format
-msgid ""
-"You have transferred your former default printer (\"%s\"), Should it be also "
-"the default printer under the new printing system %s?"
-msgstr ""
-"Prebacili ste vaÅ bivÅi podrazumjevani ÅtampaĨ (\"%s\"),Da li će to takoÄ‘er "
-"biti podrazumjevani ÅtampaĨ podnovim sistemom Åtampe %s?"
-
-#: ../../printerdrake.pm_.c:1887
-msgid "Refreshing printer data ..."
-msgstr "Osvježavam podatke o ÅtampaĨu..."
-
-#: ../../printerdrake.pm_.c:1895 ../../printerdrake.pm_.c:1966
-#: ../../printerdrake.pm_.c:1978
-msgid "Configuration of a remote printer"
-msgstr "PodeÅavanje udaljenog ÅtampaĨa"
-
-#: ../../printerdrake.pm_.c:1896
-msgid "Starting network ..."
-msgstr "Pokrećem mrežu..."
-
-#: ../../printerdrake.pm_.c:1930 ../../printerdrake.pm_.c:1934
-#: ../../printerdrake.pm_.c:1936
-msgid "Configure the network now"
-msgstr "Sada podesite mrežu"
-
-#: ../../printerdrake.pm_.c:1931
-msgid "Network functionality not configured"
-msgstr "Mrežna funkcionalnost nije podeÅena"
-
-#: ../../printerdrake.pm_.c:1932
-msgid ""
-"You are going to configure a remote printer. This needs working network "
-"access, but your network is not configured yet. If you go on without network "
-"configuration, you will not be able to use the printer which you are "
-"configuring now. How do you want to proceed?"
-msgstr ""
-"Sada ćete podesiti udaljeni ÅtampaĨ. Ovo zahtjeva aktivan pristup mreži, ali "
-"vaÅa mreža joÅ uvijek nije podeÅena. Ako želite nastaviti bez podeÅavanja "
-"mreže, nećete moći koristiti ÅtampaĨ koji sada podeÅavate. Kako želite da "
-"nastavimo?"
-
-#: ../../printerdrake.pm_.c:1935
-msgid "Go on without configuring the network"
-msgstr "Nastavi bez podeÅavanja mreže"
-
-#: ../../printerdrake.pm_.c:1968
-msgid ""
-"The network configuration done during the installation cannot be started "
-"now. Please check whether the network gets accessable after booting your "
-"system and correct the configuration using the Mandrake Control Center, "
-"section \"Network & Internet\"/\"Connection\", and afterwards set up the "
-"printer, also using the Mandrake Control Center, section \"Hardware\"/"
-"\"Printer\""
-msgstr ""
-"PodeÅavanje mreže koje je napravljeno tokom instalacije sada ne može biti "
-"pokrenuto. Molim provjerite da li će mreža postati dostupna nakon bootanja "
-"sistema i popravite podeÅenja koristeći Mandrake Kontrolni centar, sekcija "
-"\"Mreža i Internet\"/\"Konekcija\", a zatim podesite ÅtampaĨ, ponovo "
-"koristeći Mandrake Kontrolni centar, sekcija \"Hardver\"/\"ŠtampaĨ\""
-
-#: ../../printerdrake.pm_.c:1969
-msgid ""
-"The network access was not running and could not be started. Please check "
-"your configuration and your hardware. Then try to configure your remote "
-"printer again."
-msgstr ""
-"Mrežni pristup nije aktivan i nije mogao biti pokrenut. Molimo provjerite "
-"vaÅu konfiguraciju i vaÅ hardware. Onda ponovo pokuÅajte podesiti udaljeni "
-"ÅtampaĨ."
-
-#: ../../printerdrake.pm_.c:1979
-msgid "Restarting printing system ..."
-msgstr "Restartujem sistem za Åtampu ..."
-
-#: ../../printerdrake.pm_.c:2017
-msgid "high"
-msgstr "visok"
-
-#: ../../printerdrake.pm_.c:2017
-msgid "paranoid"
-msgstr "paranoiĨan"
-
-#: ../../printerdrake.pm_.c:2018
-#, c-format
-msgid "Installing a printing system in the %s security level"
-msgstr "Instaliram sistem za Åtampu na sigurnosnom nivou: %s"
-
-#: ../../printerdrake.pm_.c:2019
-#, c-format
-msgid ""
-"You are about to install the printing system %s on a system running in the %"
-"s security level.\n"
-"\n"
-"This printing system runs a daemon (background process) which waits for "
-"print jobs and handles them. This daemon is also accessable by remote "
-"machines through the network and so it is a possible point for attacks. "
-"Therefore only a few selected daemons are started by default in this "
-"security level.\n"
-"\n"
-"Do you really want to configure printing on this machine?"
-msgstr ""
-"Sada ćete instalirati sistem za Åtampu %s na sistemu koji je na sigurnosnom "
-"nivou % s.\n"
-"\n"
-"Ovaj sistem za Åtampu pokreće demon (pozadinski proces) koji Ĩeka zadatke "
-"Åtampe i rjeÅava ih. Ovom demonu takoÄ‘e mogu pristupiti drugi raĨunari putem "
-"mreže, tako da je to moguća taĨka napada. Stoga se tek rijetki od odabranih "
-"demona pokreću na ovom sigurnosnom nivou.\n"
-"\n"
-"Da li zaista želite podesiti Åtampanje na ovom raĨunaru?"
-
-#: ../../printerdrake.pm_.c:2051
-msgid "Starting the printing system at boot time"
-msgstr "Pokrećem sistem za Åtampu tokom boota"
-
-#: ../../printerdrake.pm_.c:2052
-#, c-format
-msgid ""
-"The printing system (%s) will not be started automatically when the machine "
-"is booted.\n"
-"\n"
-"It is possible that the automatic starting was turned off by changing to a "
-"higher security level, because the printing system is a potential point for "
-"attacks.\n"
-"\n"
-"Do you want to have the automatic starting of the printing system turned on "
-"again?"
-msgstr ""
-"Sistem za Åtampu (%s) se neće pokrenuti automatski prilikom boota raĨunara.\n"
-"\n"
-"Moguće je da je automatsko pokretanje iskljuĨeno prilikom promjene na viÅi "
-"nivo sigurnosni, poÅto je sistem za Åtampu moguća taĨka napada.\n"
-"\n"
-"Da li želite da ponovo ukljuĨite automatsko pokretanje sistema za Åtampu?"
-
-#: ../../printerdrake.pm_.c:2075 ../../printerdrake.pm_.c:2113
-#: ../../printerdrake.pm_.c:2143 ../../printerdrake.pm_.c:2176
-#: ../../printerdrake.pm_.c:2281
-msgid "Checking installed software..."
-msgstr "Provjeravam instalirani software..."
-
-#: ../../printerdrake.pm_.c:2117
-msgid "Removing LPRng..."
-msgstr "Uklanjam LPRng..."
-
-#: ../../printerdrake.pm_.c:2147
-msgid "Removing LPD..."
-msgstr "Uklanjam LPD..."
-
-#: ../../printerdrake.pm_.c:2205
-msgid "Select Printer Spooler"
-msgstr "Izaberite spooler ÅtampaĨa"
-
-#: ../../printerdrake.pm_.c:2206
-msgid "Which printing system (spooler) do you want to use?"
-msgstr "Koji sistem Åtampanja (spooler) želite koristiti?"
-
-#: ../../printerdrake.pm_.c:2239
-#, c-format
-msgid "Configuring printer \"%s\" ..."
-msgstr "PodeÅavam ÅtampaĨ \"%s\"..."
-
-#: ../../printerdrake.pm_.c:2252
-msgid "Installing Foomatic ..."
-msgstr "Instaliram Foomatic..."
-
-#: ../../printerdrake.pm_.c:2309 ../../printerdrake.pm_.c:2348
-#: ../../printerdrake.pm_.c:2733 ../../printerdrake.pm_.c:2803
-msgid "Printer options"
-msgstr "Opcije ÅtampaĨa"
-
-#: ../../printerdrake.pm_.c:2318
-msgid "Preparing PrinterDrake ..."
-msgstr "Pripremam PrinterDrake..."
-
-#: ../../printerdrake.pm_.c:2335 ../../printerdrake.pm_.c:2890
-msgid "Configuring applications..."
-msgstr "PodeÅavam aplikacije..."
-
-#: ../../printerdrake.pm_.c:2355
-msgid "Would you like to configure printing?"
-msgstr "Da li želite podesiti Åtampanje?"
-
-#: ../../printerdrake.pm_.c:2367
-msgid "Printing system: "
-msgstr "Sistem Åtampe: "
-
-#: ../../printerdrake.pm_.c:2415
-msgid "Printerdrake"
-msgstr "Printerdrake"
-
-#: ../../printerdrake.pm_.c:2419
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; to view information about it; "
-"or to make a printer on a remote CUPS server available for Star Office/"
-"OpenOffice.org."
-msgstr ""
-"Sljedeći ÅtampaĨi su podeÅeni. Dvokliknite na ÅtampaĨ da promjenite njegove "
-"postavke; da ga uĨinite podrazumjevanim ÅtampaĨem; da vidite informacije o "
-"njemu; ili da uĨinite ÅtampaĨ na udaljenom CUPS serveru upotrebljivim iz "
-"Star Office/OpenOffice.org-a."
-
-#: ../../printerdrake.pm_.c:2420
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; or to view information about "
-"it."
-msgstr ""
-"Sljedeli ÅtampaĨi su podeÅeni. Kliknite dva puta na neki od njih za izmjenu "
-"postavki; ako ga želite uĨiniti podrazumjevanim ÅtampaĨem; ili da biste "
-"vidjeli informacije o njemu."
-
-#: ../../printerdrake.pm_.c:2446
-msgid "Refresh printer list (to display all available remote CUPS printers)"
-msgstr ""
-"Osvježi listu ÅtampaĨa (kako bi bili prikazani svi dostupni CUPS ÅtampaĨi)"
-
-#: ../../printerdrake.pm_.c:2464
-msgid "Change the printing system"
-msgstr "Promjenite sistem Åtampe"
-
-#: ../../printerdrake.pm_.c:2469 ../../standalone/draknet_.c:278
-msgid "Normal Mode"
-msgstr "Normalni mod"
-
-#: ../../printerdrake.pm_.c:2625 ../../printerdrake.pm_.c:2675
-#: ../../printerdrake.pm_.c:2884
-msgid "Do you want to configure another printer?"
-msgstr "Želite li podesiti joÅ jedan ÅtampaĨ?"
-
-#: ../../printerdrake.pm_.c:2711
-msgid "Modify printer configuration"
-msgstr "Izmjeni konfiguraciju ÅtampaĨa"
-
-#: ../../printerdrake.pm_.c:2713
-#, c-format
-msgid ""
-"Printer %s\n"
-"What do you want to modify on this printer?"
-msgstr ""
-"ŠtampaĨ %s\n"
-"Å ta želite da izmjenite na ovom ÅtampaĨu?"
-
-#: ../../printerdrake.pm_.c:2717
-msgid "Do it!"
-msgstr "Uradi!"
-
-#: ../../printerdrake.pm_.c:2722 ../../printerdrake.pm_.c:2777
-msgid "Printer connection type"
-msgstr "Tip konekcije ÅtampaĨa"
-
-#: ../../printerdrake.pm_.c:2723 ../../printerdrake.pm_.c:2781
-msgid "Printer name, description, location"
-msgstr "Naziv ÅtampaĨa, opis, lokacija"
-
-#: ../../printerdrake.pm_.c:2725 ../../printerdrake.pm_.c:2796
-msgid "Printer manufacturer, model, driver"
-msgstr "ProizvoÄ‘aĨ ÅtampaĨa, model, drajver"
-
-#: ../../printerdrake.pm_.c:2726 ../../printerdrake.pm_.c:2797
-msgid "Printer manufacturer, model"
-msgstr "ProizvoÄ‘aĨ ÅtampaĨa, model"
-
-#: ../../printerdrake.pm_.c:2735 ../../printerdrake.pm_.c:2807
-msgid "Set this printer as the default"
-msgstr "Podesi ÅtampaĨ kao podrazumjevani"
-
-#: ../../printerdrake.pm_.c:2737 ../../printerdrake.pm_.c:2812
-msgid "Add this printer to Star Office/OpenOffice.org"
-msgstr "Dodaj ovaj ÅtampaĨ u Star Office/OpenOffice.org"
-
-#: ../../printerdrake.pm_.c:2738 ../../printerdrake.pm_.c:2821
-msgid "Remove this printer from Star Office/OpenOffice.org"
-msgstr "Ukloni ovaj ÅtampaĨ iz Star/Open Offica"
-
-#: ../../printerdrake.pm_.c:2739 ../../printerdrake.pm_.c:2830
-msgid "Print test pages"
-msgstr "Å tampaj testnu stranicu"
-
-#: ../../printerdrake.pm_.c:2740 ../../printerdrake.pm_.c:2832
-msgid "Know how to use this printer"
-msgstr "Saznaj kako koristiti ovaj ÅtampaĨ"
-
-#: ../../printerdrake.pm_.c:2742 ../../printerdrake.pm_.c:2834
-msgid "Remove printer"
-msgstr "Ukloni ÅtampaĨ"
-
-#: ../../printerdrake.pm_.c:2786
-#, c-format
-msgid "Removing old printer \"%s\" ..."
-msgstr "Uklanjam stari ÅtampaĨ \"%s\" ..."
-
-#: ../../printerdrake.pm_.c:2810
-msgid "Default printer"
-msgstr "Podrazumjevani ÅtampaĨ"
-
-#: ../../printerdrake.pm_.c:2811
-#, c-format
-msgid "The printer \"%s\" is set as the default printer now."
-msgstr "Å tampaĨ \"%s\" je sada podeÅen kao podrazumjevani ÅtampaĨ."
-
-#: ../../printerdrake.pm_.c:2815 ../../printerdrake.pm_.c:2818
-msgid "Adding printer to Star Office/OpenOffice.org"
-msgstr "Dodajem ÅtampaĨ u Star Office/OpenOffice.org"
-
-#: ../../printerdrake.pm_.c:2816
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully added to Star Office/OpenOffice.org."
-msgstr "Å tampaĨ \"%s\" je uspjeÅno dodan u Star Office/OpenOffice.org."
-
-#: ../../printerdrake.pm_.c:2819
-#, c-format
-msgid "Failed to add the printer \"%s\" to Star Office/OpenOffice.org."
-msgstr "Nisam uspio dodati ÅtampaĨ \"%s\" u Star Office/OpenOffice.org."
-
-#: ../../printerdrake.pm_.c:2824 ../../printerdrake.pm_.c:2827
-msgid "Removing printer from Star Office/OpenOffice.org"
-msgstr "Uklanjam ÅtampaĨ iz Star/Open Offica"
-
-#: ../../printerdrake.pm_.c:2825
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully removed from Star Office/OpenOffice.org."
-msgstr "Å tampaĨ \"%s\" je uspjeÅno uklonjen iz Star/Open Offica."
-
-#: ../../printerdrake.pm_.c:2828
-#, c-format
-msgid "Failed to remove the printer \"%s\" from Star Office/OpenOffice.org."
-msgstr "Nisam uspio ukloniti ÅtampaĨ \"%s\" iz Star/Open Offica."
-
-#: ../../printerdrake.pm_.c:2836
-#, c-format
-msgid "Do you really want to remove the printer \"%s\"?"
-msgstr "Da li želite da uklonite ÅtampaĨ \"%s\"?"
-
-#: ../../printerdrake.pm_.c:2838
-#, c-format
-msgid "Removing printer \"%s\" ..."
-msgstr "Uklanjam ÅtampaĨ \"%s\" ..."
-
-#: ../../proxy.pm_.c:29 ../../proxy.pm_.c:37 ../../proxy.pm_.c:58
-#: ../../proxy.pm_.c:78
-msgid "Proxy configuration"
-msgstr "PodeÅavanje proxija"
-
-#: ../../proxy.pm_.c:30
-msgid ""
-"Welcome to the proxy configuration utility.\n"
-"\n"
-"Here, you'll be able to set up your http and ftp proxies\n"
-"with or without login and password\n"
-msgstr ""
-"Dobro doÅli u alat za podeÅavanje proxija.\n"
-"qn Ovdje ćete biti u prilici da podesite vaÅe http i ftp proxije\n"
-"sa ili bez logina i Åifre\n"
-
-#: ../../proxy.pm_.c:38
-msgid ""
-"Please fill in the http proxy informations\n"
-"Leave it blank if you don't want an http proxy"
-msgstr ""
-"Molimo popunite informacije o http proxiju\n"
-"Ostavite polja praznim ako ne želite http proxy"
-
-#: ../../proxy.pm_.c:39 ../../proxy.pm_.c:60
-msgid "URL"
-msgstr "URL"
-
-#: ../../proxy.pm_.c:40 ../../proxy.pm_.c:61
-msgid "port"
-msgstr "port"
-
-#: ../../proxy.pm_.c:44
-msgid "Url should begin with 'http:'"
-msgstr "Url treba poĨinjati sa 'http:'"
-
-#: ../../proxy.pm_.c:48 ../../proxy.pm_.c:69
-msgid "The port part should be numeric"
-msgstr "Port treba biti broj"
-
-#: ../../proxy.pm_.c:59
-msgid ""
-"Please fill in the ftp proxy informations\n"
-"Leave it blank if you don't want an ftp proxy"
-msgstr ""
-"Molimo popunite informacije o ftp proxiju\n"
-"Ostavite polja praznim ako ne želite ftp proxy"
-
-#: ../../proxy.pm_.c:65
-msgid "Url should begin with 'ftp:'"
-msgstr "Url treba poĨinjati sa 'ftp:'"
-
-#: ../../proxy.pm_.c:79
-msgid ""
-"Please enter proxy login and password, if any.\n"
-"Leave it blank if you don't want login/passwd"
-msgstr ""
-"Molimo unesite login i Åifru za proxy, ako su potrebni.\n"
-"Ostavite polja praznim ako ne želite login/Åifru"
-
-#: ../../proxy.pm_.c:80
-msgid "login"
-msgstr "login"
-
-#: ../../proxy.pm_.c:82
-msgid "password"
-msgstr "Åifra"
-
-#: ../../proxy.pm_.c:84
-msgid "re-type password"
-msgstr "ponovo unesite Åifru"
-
-#: ../../proxy.pm_.c:88
-msgid "The passwords don't match. Try again!"
-msgstr "Å ifre se ne poklapaju. PokuÅajte opet!"
-
-#: ../../raid.pm_.c:35
-#, c-format
-msgid "Can't add a partition to _formatted_ RAID md%d"
-msgstr "Ne mogu dodati particiju na _formatiran_ RAID md%d"
-
-#: ../../raid.pm_.c:111
-#, c-format
-msgid "Can't write file %s"
-msgstr "Ne mogu pisati datoteku %s"
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed"
-msgstr "mkraid nije uspio"
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed (maybe raidtools are missing?)"
-msgstr "mkraid nije uspio (možda nedostaju raidtools?)"
-
-#: ../../raid.pm_.c:152
-#, c-format
-msgid "Not enough partitions for RAID level %d\n"
-msgstr "Nema dovoljno particija za RAID nivo %d\n"
-
-#: ../../services.pm_.c:14
-msgid "Launch the ALSA (Advanced Linux Sound Architecture) sound system"
-msgstr "Pokreni ALSA zvuĨni sistem (Advanced Linux Sound Architecture)"
-
-#: ../../services.pm_.c:15
-msgid "Anacron a periodic command scheduler."
-msgstr "Anacron periodiĨni pokretaĨ komandi."
-
-#: ../../services.pm_.c:16
-msgid ""
-"apmd is used for monitoring batery status and logging it via syslog.\n"
-"It can also be used for shutting down the machine when the battery is low."
-msgstr ""
-"apmd se koristi za nadgledanje statusa baterija i logovanje preko\n"
-"sysloga. TakoÄ‘er se može koristiti za gaÅenje raĨunara kada su baterije "
-"potroÅene."
-
-#: ../../services.pm_.c:18
-msgid ""
-"Runs commands scheduled by the at command at the time specified when\n"
-"at was run, and runs batch commands when the load average is low enough."
-msgstr ""
-"Pokreće komande zakazane putem at komande u vrijeme koje je zadato\n"
-"prilikom pokretanja at-a, te pokreće pozadinske komande kada je nizak "
-"prosjeĨni nivo opterećenja."
-
-#: ../../services.pm_.c:20
-msgid ""
-"cron is a standard UNIX program that runs user-specified programs\n"
-"at periodic scheduled times. vixie cron adds a number of features to the "
-"basic\n"
-"UNIX cron, including better security and more powerful configuration options."
-msgstr ""
-"cron je standardan UNIX program koji pokreće programe koje zada korisnik\n"
-"u periodiĨnim terminima. vixie cron dodaje veći broj mogućnosti osnovnom\n"
-"UNIX cronu, ukljuĨujući bolju sigurnost i moćnije opcije za podeÅavanje."
-
-#: ../../services.pm_.c:23
-msgid ""
-"GPM adds mouse support to text-based Linux applications such the\n"
-"Midnight Commander. It also allows mouse-based console cut-and-paste "
-"operations,\n"
-"and includes support for pop-up menus on the console."
-msgstr ""
-"GPM dodaje podrÅku za miÅa tekst-baziranim aplikacijama kao Åto je\n"
-"Midnight Commander. On također omogućuje konzolne isjeci/zaljepi operacije\n"
-"pomoću miÅa i ukljuĨuje podrÅku za pop-up menije na konzoli."
-
-#: ../../services.pm_.c:26
-msgid ""
-"HardDrake runs a hardware probe, and optionally configures\n"
-"new/changed hardware."
-msgstr ""
-"HardDrake pokreće probavanje hardware-a i opcionalno konfiguriÅe\n"
-"novi/izmjenjeni hardware."
-
-#: ../../services.pm_.c:28 ../../standalone/logdrake_.c:412
-msgid ""
-"Apache is a World Wide Web server. It is used to serve HTML files and CGI."
-msgstr ""
-"Apache je World Wide Web server. Koristi se za posluživanje HTML\n"
-"datoteka i CGI."
-
-#: ../../services.pm_.c:29
-msgid ""
-"The internet superserver daemon (commonly called inetd) starts a\n"
-"variety of other internet services as needed. It is responsible for "
-"starting\n"
-"many services, including telnet, ftp, rsh, and rlogin. Disabling inetd "
-"disables\n"
-"all of the services it is responsible for."
-msgstr ""
-"Demon za nadgledanje Interneta (obiĨno nazvan inetd) pokreće\n"
-"raznolike druge Internet servise po potrebi. Odgovoran je za pokretanje\n"
-"raznih servisa, kao Åto su telnet, ftp, rsh i rlogin. IskljuĨivanje inetd-a\n"
-"iskljuĨuje sve servise za koje je on nadležan."
-
-#: ../../services.pm_.c:33
-msgid ""
-"Launch packet filtering for Linux kernel 2.2 series, to set\n"
-"up a firewall to protect your machine from network attacks."
-msgstr ""
-"Pokrenite filtriranje paketa za Linux kernel seriju 2.2 kako\n"
-"biste postavili firewall i zaÅtitili vaÅ raĨunar od mrežnih napada."
-
-#: ../../services.pm_.c:35
-msgid ""
-"This package loads the selected keyboard map as set in\n"
-"/etc/sysconfig/keyboard. This can be selected using the kbdconfig utility.\n"
-"You should leave this enabled for most machines."
-msgstr ""
-"Ovaj paket uĨitava izabranu mapu tastature kao Åto je podeÅeno u\n"
-"/etc/sysconfig/keyboarc. Ovo može biti izabrano koriÅtenjem kbdconfig\n"
-"programa. Možete ovo ostaviti ukljuĨenim na većini raĨunara."
-
-#: ../../services.pm_.c:38
-msgid ""
-"Automatic regeneration of kernel header in /boot for\n"
-"/usr/include/linux/{autoconf,version}.h"
-msgstr ""
-"Automatsko regenerisanje kernel zaglavlja u /boot za\n"
-"/usr/include/linux/{autoconf,version}.h"
-
-#: ../../services.pm_.c:40
-msgid "Automatic detection and configuration of hardware at boot."
-msgstr "Automatsko prepoznavanje i podeÅavanje hardware-a tokom boota."
-
-#: ../../services.pm_.c:41
-msgid ""
-"Linuxconf will sometimes arrange to perform various tasks\n"
-"at boot-time to maintain the system configuration."
-msgstr ""
-"Linuxconf će ponekad obaviti raznolike zadatke tokom boota\n"
-"kako bi se održala sistemska konfiguracija."
-
-#: ../../services.pm_.c:43
-msgid ""
-"lpd is the print daemon required for lpr to work properly. It is\n"
-"basically a server that arbitrates print jobs to printer(s)."
-msgstr ""
-"lpd je demon za Åtampu koji je potreban da bi lpr radio ispravno.\n"
-"To je u osnovi server koji dodjeljuje zadatke Åtampe ÅtampaĨu/ima."
-
-#: ../../services.pm_.c:45
-msgid ""
-"Linux Virtual Server, used to build a high-performance and highly\n"
-"available server."
-msgstr ""
-"Linux Virtuelni Server, koristi se za izgradnju servera visokih performansi\n"
-"i dostupnosti."
-
-#: ../../services.pm_.c:47 ../../standalone/logdrake_.c:413
-msgid ""
-"named (BIND) is a Domain Name Server (DNS) that is used to resolve host "
-"names to IP addresses."
-msgstr ""
-"named (BIND) je Domain Name Server (DNS) koji se koristi za pretvaranje "
-"imena raĨunara u IP adrese."
-
-#: ../../services.pm_.c:48
-msgid ""
-"Mounts and unmounts all Network File System (NFS), SMB (Lan\n"
-"Manager/Windows), and NCP (NetWare) mount points."
-msgstr ""
-"Montira i demontira sve Network File System (NFS), SMB (Lan\n"
-"Manager/Windows) i NCP (NetWare) taĨke montiranja."
-
-#: ../../services.pm_.c:50
-msgid ""
-"Activates/Deactivates all network interfaces configured to start\n"
-"at boot time."
-msgstr ""
-"Aktivira/deaktivira sve mrežne interfejse koji su konfigurisani\n"
-"za pokretanje tokom boota."
-
-#: ../../services.pm_.c:52
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP networks.\n"
-"This service provides NFS server functionality, which is configured via the\n"
-"/etc/exports file."
-msgstr ""
-"NFS je popularan protokol za dijeljenje datoteka preko TCP/IP mreža.\n"
-"Ovaj servis omogućuje funkcionalnost NFS servera, koji je podeÅen putem\n"
-"/etc/exports datoteke."
-
-#: ../../services.pm_.c:55
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP\n"
-"networks. This service provides NFS file locking functionality."
-msgstr ""
-"NFS je popularan protokol za dijeljenje datoteka preko TCP/IP mreža.\n"
-"Ovaj servis omogućuje NFS funkcionalnost zakljuĨavanja datoteka."
-
-#: ../../services.pm_.c:57
-msgid ""
-"Automatically switch on numlock key locker under console\n"
-"and XFree at boot."
-msgstr ""
-"Automatski ukljuĨuje numlock bravu tipaka pod konzolom i\n"
-"XFree tokom boota."
-
-#: ../../services.pm_.c:59
-msgid "Support the OKI 4w and compatible winprinters."
-msgstr "PodrÅka za OK 4w i kompatibilne windows ÅtampaĨe"
-
-#: ../../services.pm_.c:60
-msgid ""
-"PCMCIA support is usually to support things like ethernet and\n"
-"modems in laptops. It won't get started unless configured so it is safe to "
-"have\n"
-"it installed on machines that don't need it."
-msgstr ""
-"PCMCIA podrÅka je obiĨno za podržavanje stvari kao Åto je\n"
-"ethernet i modemi u laptopima. Neće se pokrenuti dok se ne\n"
-"konfiguriÅe tako da je sigurno imati ga instaliranog na raĨunarima\n"
-"kojima nije potreban."
-
-#: ../../services.pm_.c:63
-msgid ""
-"The portmapper manages RPC connections, which are used by\n"
-"protocols such as NFS and NIS. The portmap server must be running on "
-"machines\n"
-"which act as servers for protocols which make use of the RPC mechanism."
-msgstr ""
-"Portmapper upravlja RPC konekcijama, koje koriste protokoli kao Åto\n"
-"su NFS i NIS. Portmap server mora raditi na raĨunarima koje služe kao\n"
-"serveri za protokole koji koriste RPC mehanizam."
-
-#: ../../services.pm_.c:66 ../../standalone/logdrake_.c:415
-msgid ""
-"Postfix is a Mail Transport Agent, which is the program that moves mail from "
-"one machine to another."
-msgstr ""
-"Postfix je Mail Transport Agent, tj. program koji Åalje poÅtu sa jednog "
-"raĨunara na drugu."
-
-#: ../../services.pm_.c:67
-msgid ""
-"Saves and restores system entropy pool for higher quality random\n"
-"number generation."
-msgstr ""
-"SpaÅava i vraća sistemski raspon entropije za veću kvalitetu\n"
-"generisanja sluĨajnih brojeva."
-
-#: ../../services.pm_.c:69
-msgid ""
-"Assign raw devices to block devices (such as hard drive\n"
-"partitions), for the use of applications such as Oracle"
-msgstr ""
-"Dodjeljuje sirove ureÄ‘aje blokovskim urećajima (kao Åto su\n"
-"particije hard diska) za upotrebu aplikacijama kao Åto je Oracle"
-
-#: ../../services.pm_.c:71
-msgid ""
-"The routed daemon allows for automatic IP router table updated via\n"
-"the RIP protocol. While RIP is widely used on small networks, more complex\n"
-"routing protocols are needed for complex networks."
-msgstr ""
-"Routed demon omogućuje da se automatska IP tabela rutiranja podeÅava\n"
-"preko RIP protokola. Mada se RIP Ĩesto koristi na malim mrežama, "
-"kompleksniji\n"
-"protokoli rutiranja su potrebni za složene mreže."
-
-#: ../../services.pm_.c:74
-msgid ""
-"The rstat protocol allows users on a network to retrieve\n"
-"performance metrics for any machine on that network."
-msgstr ""
-"rstat protokol omogućava korisnicima na mreži da dobave\n"
-"mjeru performansi za svaki raĨunar na toj mreži"
-
-#: ../../services.pm_.c:76
-msgid ""
-"The rusers protocol allows users on a network to identify who is\n"
-"logged in on other responding machines."
-msgstr ""
-"rusers protokol omogućava korisnicima na mreži da identificiraju\n"
-"ko je prijavljen na ostalim raĨunarima."
-
-#: ../../services.pm_.c:78
-msgid ""
-"The rwho protocol lets remote users get a list of all of the users\n"
-"logged into a machine running the rwho daemon (similiar to finger)."
-msgstr ""
-"rwho protokol omogućava udaljenim korisnicima da dobiju listu svih\n"
-"korisnika prijavljenih na raĨunar na kojem radi rwho demon (sliĨno fingeru)."
-
-#: ../../services.pm_.c:80
-msgid "Launch the sound system on your machine"
-msgstr "Pokreće zvuĨni sistem na vaÅem raĨunaru"
-
-#: ../../services.pm_.c:81
-msgid ""
-"Syslog is the facility by which many daemons use to log messages\n"
-"to various system log files. It is a good idea to always run syslog."
-msgstr ""
-"Syslog je pogodnost pomoću koje mnogi demoni zapisuju poruke\n"
-"u razne sistemske dnevnike. Dobra ideja je uvijek imati pokrenuti syslog."
-
-#: ../../services.pm_.c:83
-msgid "Load the drivers for your usb devices."
-msgstr "Pokreće drajvere za vaÅe usb ureÄ‘aje."
-
-#: ../../services.pm_.c:84
-msgid "Starts the X Font Server (this is mandatory for XFree to run)."
-msgstr "Pokreće X Font Server (ovo je nužno da bi XFree radio)."
-
-#: ../../services.pm_.c:110 ../../services.pm_.c:152
-msgid "Choose which services should be automatically started at boot time"
-msgstr "Izaberite koji servisi se trebaju pokretati automatski prilikom boota"
-
-#: ../../services.pm_.c:122
-msgid "Printing"
-msgstr "Å tampa"
-
-#: ../../services.pm_.c:123
-msgid "Internet"
-msgstr "Internet"
-
-#: ../../services.pm_.c:126
-msgid "File sharing"
-msgstr "Dijeljenje datoteka"
-
-#: ../../services.pm_.c:128 ../../standalone/drakbackup_.c:934
-msgid "System"
-msgstr "Sistem"
-
-#: ../../services.pm_.c:133
-msgid "Remote Administration"
-msgstr "Udaljena administracija"
-
-#: ../../services.pm_.c:141
-msgid "Database Server"
-msgstr "Server baze podataka"
-
-#: ../../services.pm_.c:170
-#, c-format
-msgid "Services: %d activated for %d registered"
-msgstr "Servisi: %d aktiviran za %d registrovan"
-
-#: ../../services.pm_.c:186
-msgid "Services"
-msgstr "Servisi"
-
-#: ../../services.pm_.c:198
-msgid "running"
-msgstr "aktivan"
-
-#: ../../services.pm_.c:198
-msgid "stopped"
-msgstr "zaustavljen"
-
-#: ../../services.pm_.c:212
-msgid "Services and deamons"
-msgstr "Servisi i demoni"
-
-#: ../../services.pm_.c:217
-msgid ""
-"No additional information\n"
-"about this service, sorry."
-msgstr ""
-"Nema dodatnih informacija\n"
-"o ovom servisu, izvinite."
-
-#: ../../services.pm_.c:224
-msgid "On boot"
-msgstr "Prilikom boota"
-
-#: ../../services.pm_.c:236
-msgid "Start"
-msgstr "Start"
-
-#: ../../services.pm_.c:236
-msgid "Stop"
-msgstr "Stop"
-
-#: ../../share/advertising/00-thanks.pl_.c:9
-msgid "Thank you for choosing Mandrake Linux 8.2"
-msgstr "Hvala vam Åto ste odabrali Mandrake Linux 8.2"
-
-#: ../../share/advertising/00-thanks.pl_.c:10
-msgid "Welcome to the Open Source world"
-msgstr "Dobro doÅli u svijet otvorenog izvornog koda"
-
-#: ../../share/advertising/00-thanks.pl_.c:11
-msgid ""
-"The success of MandrakeSoft is based upon the principle of Free Software. "
-"Your new operating system is the result of collaborative work on the part of "
-"the worldwide Linux Community"
-msgstr ""
-"Uspjeh MandrakeSofta je baziran na principima Slobodnog softvera. VaÅ novi "
-"operativni sistem je rezultat zajedniĨkog rada dijela Linux zajednice Åirom "
-"svijeta"
-
-#: ../../share/advertising/01-gnu.pl_.c:9
-msgid "Join the Free Software world"
-msgstr "Pridružite se svijetu Slobodnog softvera"
-
-#: ../../share/advertising/01-gnu.pl_.c:10
-msgid ""
-"Get to know the Open Source community and become a member. Learn, teach, and "
-"help others by joining the many discussion forums that you will find in our "
-"\"Community\" webpages"
-msgstr ""
-"Upoznajte Open Source zajednicu i postanite njen Ĩlan. UĨite, poduĨavajte i "
-"pomozite drugima tako Åto ćete pristupiti mnogim forumima za diskusiju koje "
-"ćete naći na naÅim \"Community\" stranicama"
-
-#: ../../share/advertising/02-internet.pl_.c:9
-msgid "Internet and Messaging"
-msgstr "Internet i razmjena poruka"
-
-#: ../../share/advertising/02-internet.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best software to access everything the "
-"Internet has to offer: Surf the web & view animations with Mozilla and "
-"Konqueror, exchange email & organize your personal information with "
-"Evolution and Kmail, and much more"
-msgstr ""
-"Mandrake Linux 8.2 pruža najbolji softver za pristup svemu Åto Internet "
-"pruža: Pretražujte web i pregledajte animacije pomoću Mozilla-e i "
-"Konquerora, razmjenjujte email i organizirajte vaÅe liĨne podatke pomoću "
-"Evolution i KMail-a, i mnogo drugog"
-
-#: ../../share/advertising/03-graphic.pl_.c:9
-msgid "Multimedia and Graphics"
-msgstr "Multimedija i grafika"
-
-#: ../../share/advertising/03-graphic.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 lets you push your multimedia computer to its limits! Use "
-"the latest software to play music and audio files, edit and organize your "
-"images and photos, watch TV and videos, and much more"
-msgstr ""
-"Mandrake Linux 8.2 vam omogućuje da potjerate vaŠmultimedijalni raĨunar do "
-"krajnjih granica! Koristite najnoviji softver za sluÅanje muzike i audio "
-"datoteka, mijenjajte i organizujte vaÅe slike i fotografije, gledajte TV i "
-"video-snimke i mnogo drugog"
-
-#: ../../share/advertising/04-develop.pl_.c:9
-msgid "Development"
-msgstr "Programiranje"
-
-#: ../../share/advertising/04-develop.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 is the ultimate development platform. Discover the power "
-"of the GNU gcc compiler as well as the best Open Source development "
-"environments"
-msgstr ""
-"Mandrake Linux 8.2 je najbolja platforma za razvoj aplikacija. Otkrijte moć "
-"GNU gcc kompajlera kao i najboljih razvojnih okolina koje su Open Source"
-
-#: ../../share/advertising/05-contcenter.pl_.c:9
-msgid "Mandrake Control Center"
-msgstr "Mandrake Kontrolni centar"
-
-#: ../../share/advertising/05-contcenter.pl_.c:10
-msgid ""
-"The Mandrake Linux 8.2 Control Center is a one-stop location for fully "
-"customizing and configuring your Mandrake system"
-msgstr ""
-"Mandrake Linux 8.2 Kontrolni centar je jedinstvena lokacija za puno "
-"prilagoÄ‘avanje i podeÅavanje vaÅeg Mandrake sistema"
-
-#: ../../share/advertising/06-user.pl_.c:9
-msgid "User interfaces"
-msgstr "KorisniĨki okoliÅ"
-
-#: ../../share/advertising/06-user.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides 11 different graphical desktop environments and "
-"window managers to choose from including GNOME 1.4, KDE 2.2.2, Window Maker "
-"0.8, and the rest"
-msgstr ""
-"Mandrake Linux 8.2 nudi vam na izbor 11 razliĨitih grafiĨkih desktop okolina "
-"i window managera ukljuĨujući GNOME 1.4, KDE 2.2.2, Window Maker 0.8 i druge"
-
-#: ../../share/advertising/07-server.pl_.c:9
-msgid "Server Software"
-msgstr "Serverski softver"
-
-#: ../../share/advertising/07-server.pl_.c:10
-msgid ""
-"Transform your machine into a powerful server with just a few clicks of the "
-"mouse: Web server, email, firewall, router, file and print server, ..."
-msgstr ""
-"Pretvorite vaÅ raĨunar u moćan server sa svega nekoliko klikova miÅem: Web "
-"server, email, firewall, file i print server, ..."
-
-#: ../../share/advertising/08-games.pl_.c:9
-msgid "Games"
-msgstr "Igre"
-
-#: ../../share/advertising/08-games.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best Open Source games - arcade, action, "
-"cards, sports, strategy, ..."
-msgstr ""
-"Mandrake Linux 8.2 pruža najbolje Open Source igre - arkadne, akcione, "
-"karte, sportovi, strategije, ..."
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:9
-msgid "MandrakeCampus"
-msgstr "MandrakeCampus"
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:10
-msgid ""
-"Would you like to learn Linux simply, quickly, and for free? MandrakeSoft "
-"provides free Linux training, as well as a way to test your progress, at "
-"MandrakeCampus -- our online training center"
-msgstr ""
-"Želite li nauĨiti Linux jednostavno, brzo i besplatno? MandrakeSoft vam nudi "
-"besplatno uĨenje Linuxa kao i naĨin za testiranje vaÅeg napretka na "
-"MandrakeCampus-u -- naÅem online centru za obuku"
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:9
-msgid "MandrakeExpert"
-msgstr "MandrakeExpert"
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:10
-msgid ""
-"Quality support from the Linux Community, and from MandrakeSoft, is just "
-"around the corner. And if you're already a Linux veteran, become an \"Expert"
-"\" and share your knowledge at our support website"
-msgstr ""
-"Kvalitetna podrÅka od strane Linux zajednice i MandrakeSofta nalazi se odmah "
-"iza ugla. A ako ste već Linux veteran, postanite \"Expert\" i dijelite vaÅe "
-"znanje na naÅem web sajtu za podrÅku"
-
-#: ../../share/advertising/11-consul.pl_.c:9
-msgid "MandrakeConsulting"
-msgstr "MandrakeConsulting"
-
-#: ../../share/advertising/11-consul.pl_.c:10
-msgid ""
-"For all of your IT projects, our consultants are ready to analyze your "
-"requirements and offer a customized solution. Benefit from MandrakeSoft's "
-"vast experience as a Linux producer to provide a true IT alternative for "
-"your business organization"
-msgstr ""
-"Za sve vaÅe IT projekte, naÅi konsultanti su spremni da analiziraju vaÅe "
-"potrebe i ponude prilagoÄ‘eno rjeÅenje. Iskoristite veliko iskustvo "
-"MandrakeSofta kao proizvoÄ‘aĨa Linux rjeÅenja kako biste ponudili pravu IT "
-"alternativu za vaÅ biznis"
-
-#: ../../share/advertising/12-MDKstore.pl_.c:9
-msgid "MandrakeStore"
-msgstr "MandrakeStore"
-
-#: ../../share/advertising/12-MDKstore.pl_.c:10
-msgid ""
-"A full range of Linux solutions, as well as special offers on products and "
-"'goodies', are available online at our e-store"
-msgstr ""
-"Äitav raspon Linux rjeÅenja, kao i posebne ponude za proizvode i "
-"'potrepÅtine', dostupni su u naÅoj online radnji"
-
-#: ../../share/advertising/13-Nvert.pl_.c:9
-msgid ""
-"For more information on MandrakeSoft's Professional Services and commercial "
-"offerings, please see the following web page:"
-msgstr ""
-"Za viÅe informacija o MandrakeSoftovim profesionalnim uslugama i "
-"komercijalnoj ponudi, molimo posjetite sljedeću web stranicu:"
-
-#: ../../share/advertising/13-Nvert.pl_.c:11
-msgid "http://www.mandrakesoft.com/sales/contact"
-msgstr "http://www.mandrakesoft.com/sales/contact"
-
-#: ../../standalone.pm_.c:25
-msgid "Installing packages..."
-msgstr "Instaliram pakete..."
-
-#: ../../standalone/diskdrake_.c:85
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I'll try to go on blanking bad partitions"
-msgstr ""
-"Ne mogu Ĩitati vaÅu tabelu particija, previÅe je oÅtećena za mene :(\n"
-"PokuÅaću izbrisati loÅe particije"
-
-#: ../../standalone/drakautoinst_.c:45
-msgid "Error!"
-msgstr "GreÅka!"
-
-#: ../../standalone/drakautoinst_.c:46
-#, c-format
-msgid "I can't find needed image file `%s'."
-msgstr "Ne mogu pronaći potrebnu image datoteku '%s'"
-
-#: ../../standalone/drakautoinst_.c:48
-msgid "Auto Install Configurator"
-msgstr "PodeÅavanje auto instalacije"
-
-#: ../../standalone/drakautoinst_.c:49
-msgid ""
-"You are about to configure an Auto Install floppy. This feature is somewhat "
-"dangerous and must be used circumspectly.\n"
-"\n"
-"With that feature, you will be able to replay the installation you've "
-"performed on this computer, being interactively prompted for some steps, in "
-"order to change their values.\n"
-"\n"
-"For maximum safety, the partitioning and formatting will never be performed "
-"automatically, whatever you chose during the install of this computer.\n"
-"\n"
-"Do you want to continue?"
-msgstr ""
-"Sada ćete podesiti Auto Instalacijsku disketu. Ova opcija je pomalo opasna i "
-"mora biti koriÅtena uz pažnju.\n"
-"\n"
-"Sa ovom opcijom bićete u mogućnosti da ponovite instalaciju koju ste obavili "
-"na ovom raĨunaru, pri ćemu ćete biti interaktivno upitani za neke korake, "
-"kako biste promjenili njihove vrijednosti.\n"
-"\n"
-"Za maksimalnu sigurnost, particioniranje i formatiranje nikad neće biti "
-"obavljeno automatski, bez obzira Åta izaberete tokom instalacije na ovaj "
-"raĨunar.\n"
-"\n"
-"Da li želite nastaviti?"
-
-#: ../../standalone/drakautoinst_.c:71
-msgid "Automatic Steps Configuration"
-msgstr "Automatska konfiguracija koraka"
-
-#: ../../standalone/drakautoinst_.c:72
-msgid ""
-"Please choose for each step whether it will replay like your install, or it "
-"will be manual"
-msgstr ""
-"Molimo izaberite za svaki korak da li ćete ga ponoviti kao i u vaÅoj "
-"instalaciji ili će se obaviti ruĨno"
-
-#: ../../standalone/drakautoinst_.c:145
-msgid ""
-"\n"
-"Welcome.\n"
-"\n"
-"The parameters of the auto-install are available in the sections on the left"
-msgstr ""
-"\n"
-"Dobro doÅli.\n"
-"\n"
-"Parametri automatske instalacije su dostupni u odjeljcima lijevo"
-
-#: ../../standalone/drakautoinst_.c:243 ../../standalone/drakgw_.c:671
-#: ../../standalone/scannerdrake_.c:106
-msgid "Congratulations!"
-msgstr "Äestitamo!"
-
-#: ../../standalone/drakautoinst_.c:244
-msgid ""
-"The floppy has been successfully generated.\n"
-"You may now replay your installation."
-msgstr ""
-"Disketa je uspjeÅno napravljena.\n"
-"Sada možete ponoviti vaÅu instalaciju."
-
-#: ../../standalone/drakautoinst_.c:282
-msgid "Auto Install"
-msgstr "Auto instalacija"
-
-#: ../../standalone/drakautoinst_.c:352
-msgid "Add an item"
-msgstr "Dodaj stavku"
-
-#: ../../standalone/drakautoinst_.c:359
-msgid "Remove the last item"
-msgstr "Ukloniti zadnju stavku"
-
-#: ../../standalone/drakbackup_.c:448 ../../standalone/drakbackup_.c:451
-#: ../../standalone/drakbackup_.c:455
-msgid ""
-"***********************************************************************\n"
-"\n"
-msgstr ""
-"***********************************************************************\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:449
-msgid ""
-"\n"
-" DrakBackup Report \n"
-"\n"
-msgstr ""
-"\n"
-" DrakBackup IzvjeÅtaj \n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:450
-msgid ""
-"\n"
-" DrakBackup Daemon Report\n"
-"\n"
-"\n"
-msgstr ""
-"\n"
-" DrakBackup IzvjeÅtaj o demonima\n"
-"\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:453
-msgid ""
-"\n"
-"\n"
-"***********************************************************************\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"***********************************************************************\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:454
-msgid ""
-"\n"
-" DrakBackup Report Details\n"
-"\n"
-"\n"
-msgstr ""
-"\n"
-" DrakBackup Detalji izvjeÅtaja\n"
-"\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:476
-msgid "total progess"
-msgstr "ukupno napredak"
-
-#: ../../standalone/drakbackup_.c:555 ../../standalone/drakbackup_.c:602
-msgid "Backup system files..."
-msgstr "Backup-uj sistemske datoteke..."
-
-#: ../../standalone/drakbackup_.c:603 ../../standalone/drakbackup_.c:667
-msgid "Hard Disk Backup files..."
-msgstr "Datoteke backup-a hard diska..."
-
-#: ../../standalone/drakbackup_.c:615
-msgid "Backup User files..."
-msgstr "Backup-uj korisniĨke datoteke..."
-
-#: ../../standalone/drakbackup_.c:616
-msgid "Hard Disk Backup Progress..."
-msgstr "Napredak backup-a hard diska..."
-
-#: ../../standalone/drakbackup_.c:666
-msgid "Backup Other files..."
-msgstr "Backup-uj ostale datoteke..."
-
-#: ../../standalone/drakbackup_.c:674
-#, c-format
-msgid ""
-"file list send by FTP : %s\n"
-" "
-msgstr ""
-"lista datoteka poslana putem FTPa : %s\n"
-" "
-
-#: ../../standalone/drakbackup_.c:677
-msgid ""
-"\n"
-"(!) FTP connexion problem: It was not possible to send your backup files by "
-"FTP.\n"
-msgstr ""
-"\n"
-"(!) problem sa FTP konekcijom: Nije bilo moguće poslati vaÅe backup datoteke "
-"putem FTPa.\n"
-
-#: ../../standalone/drakbackup_.c:687
-msgid "(!) Error during mail sending. \n"
-msgstr "(!) GreÅka tokom slanja poÅte. \n"
-
-#: ../../standalone/drakbackup_.c:728 ../../standalone/drakbackup_.c:739
-#: ../../standalone/drakbackup_.c:750 ../../standalone/drakfont_.c:787
-msgid "File Selection"
-msgstr "Izbor datoteka"
-
-#: ../../standalone/drakbackup_.c:755
-msgid "Select the files or directories and click on 'Add'"
-msgstr "Izaberite datoteke ili direktorije i kliknite na 'Dodaj'"
-
-#: ../../standalone/drakbackup_.c:790
-msgid ""
-"\n"
-"Please check all options that you need.\n"
-msgstr ""
-"\n"
-"Molimo ukljuĨite sve potrebne opcije.\n"
-
-#: ../../standalone/drakbackup_.c:791
-msgid ""
-"These options can backup and restore all files in your /etc directory.\n"
-msgstr ""
-"Ove opcije mogu spasiti ili vratiti sve datoteke u vaÅem /etc direktoriju.\n"
-
-#: ../../standalone/drakbackup_.c:792
-msgid "Backup your System files. ( /etc directory )"
-msgstr "Backup sistemskih datoteka. ( /etc direktorij )"
-
-#: ../../standalone/drakbackup_.c:793
-msgid "Use incremental backup (do not replace old backups)"
-msgstr "Koristi inkrementalni backup (nemoj prebrisati stare backupe)"
-
-#: ../../standalone/drakbackup_.c:794
-msgid "Do not include critical files (passwd, group, fstab)"
-msgstr "Zaobiđi kritiĨne datoteke (passwd, group, fstab)"
-
-#: ../../standalone/drakbackup_.c:795
-msgid ""
-"With this option you will be able to restore any version\n"
-" of your /etc directory."
-msgstr ""
-"Sa ovom opcijom bićete u mogućnosti da vratite bilo koju\n"
-" verziju vaÅeg /etc direktorija."
-
-#: ../../standalone/drakbackup_.c:812
-msgid "Please check all users that you want to include in your backup."
-msgstr "Molimo izaberite sve korisnike koje želite ukljuĨiti u vaŠbackup."
-
-#: ../../standalone/drakbackup_.c:839
-msgid "Do not include the browser cache"
-msgstr "Ne ukljuĨuj spremnik web preglednika"
-
-#: ../../standalone/drakbackup_.c:840 ../../standalone/drakbackup_.c:864
-msgid "Use Incremental Backups (do not replace old backups)"
-msgstr "Koristi inkrementalni backup (nemoj prebrisati stare backupe)"
-
-#: ../../standalone/drakbackup_.c:862 ../../standalone/drakfont_.c:827
-msgid "Remove Selected"
-msgstr "Ukloni izabrano"
-
-#: ../../standalone/drakbackup_.c:900
-msgid "Windows (FAT32)"
-msgstr "Windows (FAT32)"
-
-#: ../../standalone/drakbackup_.c:939
-msgid "Users"
-msgstr "Korisnici"
-
-#: ../../standalone/drakbackup_.c:964
-msgid "Use FTP connection to backup"
-msgstr "Koristi FTP vezu za backup"
-
-#: ../../standalone/drakbackup_.c:967
-msgid "Please enter the host name or IP."
-msgstr "Molimo unesite ime raĨunara ili IP."
-
-#: ../../standalone/drakbackup_.c:972
-msgid ""
-"Please enter the directory to\n"
-" put the backup on this host."
-msgstr ""
-"Molimo unesite direktorij za\n"
-" smjeÅtaj backupa na ovom raĨunaru."
-
-#: ../../standalone/drakbackup_.c:977
-msgid "Please enter your login"
-msgstr "Molimo unesite vaÅ login"
-
-#: ../../standalone/drakbackup_.c:982
-msgid "Please enter your password"
-msgstr "Molimo unesite vaÅu Åifru"
-
-#: ../../standalone/drakbackup_.c:988
-msgid "Remember this password"
-msgstr "Zapamti ovu Åifru"
-
-#: ../../standalone/drakbackup_.c:1052 ../../standalone/drakbackup_.c:2048
-msgid "FTP Connection"
-msgstr "FTP konekcija"
-
-#: ../../standalone/drakbackup_.c:1059 ../../standalone/drakbackup_.c:2056
-msgid "Secure Connection"
-msgstr "Sigurna konekcija"
-
-#: ../../standalone/drakbackup_.c:1085 ../../standalone/drakbackup_.c:2889
-msgid "Use CD/DVDROM to backup"
-msgstr "Koristi CD/DVDROM za backup"
-
-#: ../../standalone/drakbackup_.c:1088 ../../standalone/drakbackup_.c:2893
-msgid "Please choose your CD space"
-msgstr "Molimo izaberite vaÅ CD prostor"
-
-#: ../../standalone/drakbackup_.c:1094 ../../standalone/drakbackup_.c:2905
-msgid "Please check if you are using CDRW media"
-msgstr "Molim ukljuĨite ako koristite CDRW medij"
-
-#: ../../standalone/drakbackup_.c:1100 ../../standalone/drakbackup_.c:2911
-msgid "Please check if you want to erase your CDRW before"
-msgstr "Molim ukljuĨite ako želite obrisati vaŠCDRW prije"
-
-#: ../../standalone/drakbackup_.c:1106
-msgid ""
-"Please check if you want to include\n"
-" install boot on your CD."
-msgstr ""
-"Molim izaberite ako želite ukljuĨiti\n"
-" instalacijski boot na CDu."
-
-#: ../../standalone/drakbackup_.c:1112
-msgid ""
-"Please enter your CD Writer device name\n"
-" ex: 0,1,0"
-msgstr ""
-"Molim unesite naziv ureÄ‘aja vaÅeg CD Writera\n"
-" npr: 0,1,0"
-
-#: ../../standalone/drakbackup_.c:1153
-msgid "Use tape to backup"
-msgstr "Koristi traku za backup"
-
-#: ../../standalone/drakbackup_.c:1156
-msgid "Please enter the device name to use for backup"
-msgstr "Molim unesite ime uređaja kojeg ćete koristiti za backup"
-
-#: ../../standalone/drakbackup_.c:1162 ../../standalone/drakbackup_.c:1203
-#: ../../standalone/drakbackup_.c:2013
-msgid ""
-"Please enter the maximum size\n"
-" allowed for Drakbackup"
-msgstr ""
-"Molim unesite maksimalnu veliĨinu\n"
-" dozvoljenu za Draxbackup"
-
-#: ../../standalone/drakbackup_.c:1195 ../../standalone/drakbackup_.c:2005
-msgid "Please enter the directory to save:"
-msgstr "Molimo unesite direktorij za spasiti:"
-
-#: ../../standalone/drakbackup_.c:1209 ../../standalone/drakbackup_.c:2019
-msgid "Use quota for backup files."
-msgstr "Koristi quotu za backup datoteke."
-
-#: ../../standalone/drakbackup_.c:1267
-msgid "Network"
-msgstr "Mreža"
-
-#: ../../standalone/drakbackup_.c:1272
-msgid "CDROM / DVDROM"
-msgstr "CDROM / DVDROM"
-
-#: ../../standalone/drakbackup_.c:1277
-msgid "HardDrive / NFS"
-msgstr "HardDrive / NFS"
-
-#: ../../standalone/drakbackup_.c:1297 ../../standalone/drakbackup_.c:1301
-#: ../../standalone/drakbackup_.c:1305
-msgid "hourly"
-msgstr "svakog sata"
-
-#: ../../standalone/drakbackup_.c:1298 ../../standalone/drakbackup_.c:1302
-#: ../../standalone/drakbackup_.c:1305
-msgid "daily"
-msgstr "dnevno"
-
-#: ../../standalone/drakbackup_.c:1299 ../../standalone/drakbackup_.c:1303
-#: ../../standalone/drakbackup_.c:1305
-msgid "weekly"
-msgstr "sedmiĨno"
-
-#: ../../standalone/drakbackup_.c:1300 ../../standalone/drakbackup_.c:1304
-#: ../../standalone/drakbackup_.c:1305
-msgid "monthly"
-msgstr "mjeseĨno"
-
-#: ../../standalone/drakbackup_.c:1312
-msgid "Use daemon"
-msgstr "Koristi demon"
-
-#: ../../standalone/drakbackup_.c:1317
-msgid ""
-"Please choose the time \n"
-"interval between each backup"
-msgstr ""
-"Izaberite vremenski interval\n"
-"između svakog backupa"
-
-#: ../../standalone/drakbackup_.c:1323
-msgid ""
-"Please choose the\n"
-"media for backup."
-msgstr ""
-"Molim izaberite medij\n"
-"za backup."
-
-#: ../../standalone/drakbackup_.c:1327
-msgid "Use Hard Drive with daemon"
-msgstr "Koristi hard disk sa demonom"
-
-#: ../../standalone/drakbackup_.c:1329
-msgid "Use FTP with daemon"
-msgstr "Koristi FTP sa demonom"
-
-#: ../../standalone/drakbackup_.c:1333
-msgid "Please be sure that the cron daemon is included in your services."
-msgstr "Molim budite sigurni da je cron demon aktiviran u vaÅim servisima."
-
-#: ../../standalone/drakbackup_.c:1369
-msgid "Send mail report after each backup to :"
-msgstr "PoÅalji mail izvjeÅtaj nakon svakog backupa na :"
-
-#: ../../standalone/drakbackup_.c:1411
-msgid "What"
-msgstr "Å ta"
-
-#: ../../standalone/drakbackup_.c:1416
-msgid "Where"
-msgstr "Gdje"
-
-#: ../../standalone/drakbackup_.c:1421
-msgid "When"
-msgstr "Kada"
-
-#: ../../standalone/drakbackup_.c:1426
-msgid "More Options"
-msgstr "ViÅe opcija"
-
-#: ../../standalone/drakbackup_.c:1445 ../../standalone/drakbackup_.c:2801
-msgid "Drakbackup Configuration"
-msgstr "PodeÅavanje Drakbackup-a"
-
-#: ../../standalone/drakbackup_.c:1463
-msgid "Please choose where you want to backup"
-msgstr "Molimo izaberite gdje želite backupovati"
-
-#: ../../standalone/drakbackup_.c:1465
-msgid "on Hard Drive"
-msgstr "na hard disk"
-
-#: ../../standalone/drakbackup_.c:1476
-msgid "across Network"
-msgstr "preko mreže"
-
-#: ../../standalone/drakbackup_.c:1540
-msgid "Please choose what you want to backup"
-msgstr "Molim izaberite Åta želite backupovati"
-
-#: ../../standalone/drakbackup_.c:1541
-msgid "Backup system"
-msgstr "Backup sistema"
-
-#: ../../standalone/drakbackup_.c:1542
-msgid "Backup Users"
-msgstr "Backup korisnika"
-
-#: ../../standalone/drakbackup_.c:1545
-msgid "Select user manually"
-msgstr "RuĨno izaberite korisnika"
-
-#: ../../standalone/drakbackup_.c:1627
-msgid ""
-"\n"
-"Backup Sources: \n"
-msgstr ""
-"\n"
-"Izvori backup-a: \n"
-
-#: ../../standalone/drakbackup_.c:1628
-msgid ""
-"\n"
-"- System Files:\n"
-msgstr ""
-"\n"
-"- sistemske datoteke:\n"
-
-#: ../../standalone/drakbackup_.c:1630
-msgid ""
-"\n"
-"- User Files:\n"
-msgstr ""
-"\n"
-"- korisniĨke datoteke:\n"
-
-#: ../../standalone/drakbackup_.c:1632
-msgid ""
-"\n"
-"- Other Files:\n"
-msgstr ""
-"\n"
-"- ostale datoteke:\n"
-
-#: ../../standalone/drakbackup_.c:1634
-#, c-format
-msgid ""
-"\n"
-"- Save on Hard drive on path : %s\n"
-msgstr ""
-"\n"
-"- spasi na hard disku u direktoriju : %s\n"
-
-#: ../../standalone/drakbackup_.c:1635
-#, c-format
-msgid ""
-"\n"
-"- Save on FTP on host : %s\n"
-msgstr ""
-"\n"
-"- spasi na FTPu na raĨunaru : %s\n"
-
-#: ../../standalone/drakbackup_.c:1636
-#, c-format
-msgid ""
-"\t\t user name: %s\n"
-"\t\t on path: %s \n"
-msgstr ""
-"\t\t korisniĨko ime: %s\n"
-"\t\t u direktoriju: %s \n"
-
-#: ../../standalone/drakbackup_.c:1637
-msgid ""
-"\n"
-"- Options:\n"
-msgstr ""
-"\n"
-"- Opcije:\n"
-
-#: ../../standalone/drakbackup_.c:1638
-msgid "\tDo not include System Files\n"
-msgstr "\tNe ukljuĨuj sistemske datoteke\n"
-
-#: ../../standalone/drakbackup_.c:1639
-msgid "\tBackups use tar and bzip2\n"
-msgstr "\tBackupi koriste tar i bzip2\n"
-
-#: ../../standalone/drakbackup_.c:1640
-msgid "\tBackups use tar and gzip\n"
-msgstr "\tBackupi koriste tar i gzip\n"
-
-#: ../../standalone/drakbackup_.c:1641
-#, c-format
-msgid ""
-"\n"
-"- Daemon (%s) include :\n"
-msgstr ""
-"\n"
-"- Demon (%s) ukljuĨuje :\n"
-
-#: ../../standalone/drakbackup_.c:1642
-msgid "\t-Hard drive.\n"
-msgstr "\t-Hard disk.\n"
-
-#: ../../standalone/drakbackup_.c:1643
-msgid "\t-CDROM.\n"
-msgstr "\t-CDROM.\n"
-
-#: ../../standalone/drakbackup_.c:1644
-msgid "\t-Network by FTP.\n"
-msgstr "\t-Mrežu preko FTPa.\n"
-
-#: ../../standalone/drakbackup_.c:1645
-msgid "\t-Network by SSH.\n"
-msgstr "\t-Mrežu preko SSH.\n"
-
-#: ../../standalone/drakbackup_.c:1647
-msgid "No configuration, please click Wizard or Advanced.\n"
-msgstr "Bez podeÅavanja, molim kliknite na Äarobnjak ili Napredno.\n"
-
-#: ../../standalone/drakbackup_.c:1652
-msgid ""
-"List of data to restore:\n"
-"\n"
-msgstr ""
-"Lista podataka za vraćanje:\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:1753
-msgid ""
-"List of data corrupted:\n"
-"\n"
-msgstr ""
-"Lista oÅtećenih podataka:\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:1755
-msgid "Please uncheck or remove it on next time."
-msgstr "Molimo iskljuĨite ili pobriÅite ga idući put."
-
-#: ../../standalone/drakbackup_.c:1765
-msgid "Backup files are corrupted"
-msgstr "Backup datoteke su oÅtećene"
-
-#: ../../standalone/drakbackup_.c:1786
-msgid " All your selectionned data have been "
-msgstr " Svi vaÅi izabrani podaci su "
-
-#: ../../standalone/drakbackup_.c:1787
-#, c-format
-msgid " Successfuly Restored on %s "
-msgstr " uspjeÅno spaÅeni na %s "
-
-#: ../../standalone/drakbackup_.c:1886
-msgid " Restore Configuration "
-msgstr " Vrati konfiguraciju "
-
-#: ../../standalone/drakbackup_.c:1904
-msgid "OK to restore the other files."
-msgstr "OK za vraćanje ostalih datoteka."
-
-#: ../../standalone/drakbackup_.c:1922
-msgid "User list to restore (only the most recent date per user is important)"
-msgstr ""
-"Lista korisnika za vraćanje (samo najsvježiji datum po korisniku je znaĨajan)"
-
-#: ../../standalone/drakbackup_.c:1972
-msgid "Backup the system files before:"
-msgstr "Vrati sistemske datoteke prije:"
-
-#: ../../standalone/drakbackup_.c:1974
-msgid "please choose the date to restore"
-msgstr "molim izaberite datum za vraćanje"
-
-#: ../../standalone/drakbackup_.c:2002
-msgid "Use Hard Disk to backup"
-msgstr "Koristi hard disk za backup"
-
-#: ../../standalone/drakbackup_.c:2083
-msgid "Restore from Hard Disk."
-msgstr "Vrati sa hard diska"
-
-#: ../../standalone/drakbackup_.c:2085
-msgid "Please enter the directory where backups are stored"
-msgstr "Molim unesite direktorij gdje su smjeÅteni backupi"
-
-#: ../../standalone/drakbackup_.c:2143
-msgid "Select another media to restore from"
-msgstr "Izaberite drugi medij za vraćanje"
-
-#: ../../standalone/drakbackup_.c:2145
-msgid "Other Media"
-msgstr "Drugi medij"
-
-#: ../../standalone/drakbackup_.c:2151
-msgid "Restore system"
-msgstr "Vrati sistem"
-
-#: ../../standalone/drakbackup_.c:2152
-msgid "Restore Users"
-msgstr "Vrati korisnike"
-
-#: ../../standalone/drakbackup_.c:2153
-msgid "Restore Other"
-msgstr "Vrati ostalo"
-
-#: ../../standalone/drakbackup_.c:2155
-msgid "select path to restore (instead of / )"
-msgstr "izaberite stazu za vraćanje (umjesto / )"
-
-#: ../../standalone/drakbackup_.c:2159
-msgid "Do new backup before restore (only for incremental backups.)"
-msgstr "IzvrÅi novi backup prije vraćanja (samo za inkrementalni backup.)"
-
-#: ../../standalone/drakbackup_.c:2160
-msgid "Remove user directories before restore."
-msgstr "PobriÅi korisniĨke direktorije prije vraćanja."
-
-#: ../../standalone/drakbackup_.c:2217
-msgid "Restore all backups"
-msgstr "Vrati sve backupe"
-
-#: ../../standalone/drakbackup_.c:2225
-msgid "Custom Restore"
-msgstr "RuĨno vraćanje"
-
-#: ../../standalone/drakbackup_.c:2266 ../../standalone/drakbackup_.c:2291
-#: ../../standalone/drakbackup_.c:2312 ../../standalone/drakbackup_.c:2333
-#: ../../standalone/drakbackup_.c:2351 ../../standalone/drakbackup_.c:2383
-#: ../../standalone/drakbackup_.c:2399 ../../standalone/drakbackup_.c:2419
-#: ../../standalone/drakbackup_.c:2438 ../../standalone/drakbackup_.c:2460
-#: ../../standalone/drakfont_.c:575
-msgid "Help"
-msgstr "Pomoć"
-
-#: ../../standalone/drakbackup_.c:2269 ../../standalone/drakbackup_.c:2296
-#: ../../standalone/drakbackup_.c:2315 ../../standalone/drakbackup_.c:2336
-#: ../../standalone/drakbackup_.c:2354 ../../standalone/drakbackup_.c:2402
-#: ../../standalone/drakbackup_.c:2422 ../../standalone/drakbackup_.c:2441
-msgid "Previous"
-msgstr "Prethodni"
-
-#: ../../standalone/drakbackup_.c:2271 ../../standalone/drakbackup_.c:2338
-#: ../../standalone/logdrake_.c:224
-msgid "Save"
-msgstr "Spasi"
-
-#: ../../standalone/drakbackup_.c:2317
-msgid "Build Backup"
-msgstr "Izgradi backup"
-
-#: ../../standalone/drakbackup_.c:2356 ../../standalone/drakbackup_.c:3033
-msgid "Restore"
-msgstr "Vrati"
-
-#: ../../standalone/drakbackup_.c:2404 ../../standalone/drakbackup_.c:2424
-#: ../../standalone/drakbackup_.c:2445
-msgid "Next"
-msgstr "Sljedeći"
-
-#: ../../standalone/drakbackup_.c:2478
-msgid ""
-"Please Build backup before to restore it...\n"
-" or verify that your path to save is correct."
-msgstr ""
-"Molimo pokrenite Izgradi backup prije vraćanja...\n"
-" ili provjerite da li je put za spaÅavanje ispravan."
-
-#: ../../standalone/drakbackup_.c:2499
-msgid ""
-"Error durind sendmail\n"
-" your report mail was not sent\n"
-" Please configure sendmail"
-msgstr ""
-"GreÅka tokom sendmaila\n"
-" vaÅ mail izvjeÅtaj nije poslan\n"
-" Molim podesite sendmail"
-
-#: ../../standalone/drakbackup_.c:2522
-msgid "Package List to Install"
-msgstr "Lista paketa za instalaciju"
-
-#: ../../standalone/drakbackup_.c:2550
-msgid ""
-"Error durind sending file via FTP.\n"
-" Please correct your FTP configuration."
-msgstr ""
-"GreÅka tokom slanja datoteke preko FTPa.\n"
-" Molimo ispravite vaÅu FTP konfiguraciju."
-
-#: ../../standalone/drakbackup_.c:2573
-msgid "Please select data to restore..."
-msgstr "Molim izaberite podatke za vraćanje..."
-
-#: ../../standalone/drakbackup_.c:2594
-msgid "Please select media for backup..."
-msgstr "Molim izaberite medij za backup..."
-
-#: ../../standalone/drakbackup_.c:2616
-msgid "Please select data to backup..."
-msgstr "Molim izaberite podatke za backup..."
-
-#: ../../standalone/drakbackup_.c:2638
-msgid ""
-"No configuration file found \n"
-"please click Wizard or Advanced."
-msgstr ""
-"Nije pronađena konfiguraciona datoteka \n"
-"molim kliknite na Äarobnjak ili Napredno."
-
-#: ../../standalone/drakbackup_.c:2659
-msgid "Under Devel ... please wait."
-msgstr "U izradi ... molim saĨekajte."
-
-#: ../../standalone/drakbackup_.c:2739
-msgid "Backup system files"
-msgstr "Backup sistemskih datoteka"
-
-#: ../../standalone/drakbackup_.c:2741
-msgid "Backup user files"
-msgstr "Backup korisniĨkih datoteka"
-
-#: ../../standalone/drakbackup_.c:2743
-msgid "Backup other files"
-msgstr "Backup ostalih datoteka"
-
-#: ../../standalone/drakbackup_.c:2745 ../../standalone/drakbackup_.c:2776
-msgid "Total Progress"
-msgstr "Ukupan napredak"
-
-#: ../../standalone/drakbackup_.c:2767
-msgid "files sending by FTP"
-msgstr "slanje datoteka putem FTPa"
-
-#: ../../standalone/drakbackup_.c:2771
-msgid "Sending files..."
-msgstr "Å aljem datoteke..."
-
-#: ../../standalone/drakbackup_.c:2841
-msgid "Data list to include on CDROM."
-msgstr "Lista podataka koji će biti smjeÅteni na CDROM."
-
-#: ../../standalone/drakbackup_.c:2899
-msgid "Please enter the cd writer speed"
-msgstr "Molim unesite brzinu cd pisaĨa"
-
-#: ../../standalone/drakbackup_.c:2917
-msgid "Please enter your CD Writer device name (ex: 0,1,0)"
-msgstr "Molim unesite naziv ureÄ‘aja vaÅeg CD pisaĨa (ex: 0,1,0)"
-
-#: ../../standalone/drakbackup_.c:2923
-msgid "Please check if you want to include install boot on your CD."
-msgstr "Molim ukljuĨite ako želite imati instalacioni boot na vaÅem CDu."
-
-#: ../../standalone/drakbackup_.c:2989
-msgid "Backup Now from configuration file"
-msgstr "Backup-uj sada iz konfiguracijske datoteke"
-
-#: ../../standalone/drakbackup_.c:2999
-msgid "View Backup Configuration."
-msgstr "Pogledaj postavke backupa."
-
-#: ../../standalone/drakbackup_.c:3020
-msgid "Wizard Configuration"
-msgstr "Äarobnjak za podeÅavanje"
-
-#: ../../standalone/drakbackup_.c:3024
-msgid "Advanced Configuration"
-msgstr "Napredno podeÅavanje"
-
-#: ../../standalone/drakbackup_.c:3028
-msgid "Backup Now"
-msgstr "Backup-uj sada"
-
-#: ../../standalone/drakbackup_.c:3053
-msgid "Drakbackup"
-msgstr "Drakbackup"
-
-#: ../../standalone/drakbackup_.c:3104
-msgid ""
-"options description:\n"
-"\n"
-" In this step Drakbackup allow you to change:\n"
-"\n"
-" - The compression mode:\n"
-" \n"
-" If you check bzip2 compression, you will compress\n"
-" your data better than gzip (about 2-10 %).\n"
-" This option is not checked by default because\n"
-" this compression mode needs more time ( about 1000% more).\n"
-" \n"
-" - The update mode:\n"
-"\n"
-" This option will update your backup, but this\n"
-" option is not really useful because you need to\n"
-" decompress your backup before you can update it.\n"
-" \n"
-" - the .backupignore mode:\n"
-"\n"
-" Like with cvs, Drakbackup will ignore all references\n"
-" included in .backupignore files in each directories.\n"
-" ex: \n"
-" /*> cat .backupignore*/\n"
-" *.o\n"
-" *~\n"
-" ...\n"
-" \n"
-"\n"
-msgstr ""
-"options description:\n"
-"\n"
-" In this step Drakbackup allow you to change:\n"
-"\n"
-" - The compression mode:\n"
-" \n"
-" If you check bzip2 compression, you will compress\n"
-" your data better than gzip (about 2-10 %).\n"
-" This option is not checked by default because\n"
-" this compression mode needs more time ( about 1000% more).\n"
-" \n"
-" - The update mode:\n"
-"\n"
-" This option will update your backup, but this\n"
-" option is not really useful because you need to\n"
-" decompress your backup before you can update it.\n"
-" \n"
-" - the .backupignore mode:\n"
-"\n"
-" Like with cvs, Drakbackup will ignore all references\n"
-" included in .backupignore files in each directories.\n"
-" ex: \n"
-" /*> cat .backupignore*/\n"
-" *.o\n"
-" *~\n"
-" ...\n"
-" \n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3134
-msgid ""
-"\n"
-" Some errors during sendmail are caused by \n"
-" a bad configuration of postfix. To solve it you have to\n"
-" set myhostname or mydomain in /etc/postfix/main.cf\n"
-"\n"
-msgstr ""
-"\n"
-" Neke greÅke prilikom slanja poruka može izazvati \n"
-" loÅe podeÅen postfix. Ovo možete rijeÅiti tako Åto ćete\n"
-" podesiti myhostname ili mydomain u /etc/postfix/main.cf\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3142
-msgid ""
-"options description:\n"
-"\n"
-" - Backup system files:\n"
-" \n"
-"\tThis option allows you to backup your /etc directory,\n"
-"\twhich contains all configuration files. Please be\n"
-"\tcareful during the restore step to not overwrite:\n"
-"\t\t/etc/passwd \n"
-"\t\t/etc/group \n"
-"\t\t/etc/fstab\n"
-"\n"
-" - Backup User files: \n"
-"\n"
-"\tThis option allows you select all users that you want \n"
-"\tto backup.\n"
-"\tTo preserve disk space, it is recommended that you \n"
-"\tdo not include web browser's cache.\n"
-"\n"
-" - Backup Other files: \n"
-"\n"
-"\tThis option allows you to add more data to save.\n"
-"\tWith the other backup it's not possible at the \n"
-"\tmoment to select select incremental backup.\t\t\n"
-" \n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerful \n"
-"\toption for backup. This option allows you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed afterward.\n"
-"\tThen you will be able, during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this option all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-msgstr ""
-"options description:\n"
-"\n"
-" - Backup system files:\n"
-" \n"
-"\tThis option allows you to backup your /etc directory,\n"
-"\twhich contains all configuration files. Please be\n"
-"\tcareful during the restore step to not overwrite:\n"
-"\t\t/etc/passwd \n"
-"\t\t/etc/group \n"
-"\t\t/etc/fstab\n"
-"\n"
-" - Backup User files: \n"
-"\n"
-"\tThis option allows you select all users that you want \n"
-"\tto backup.\n"
-"\tTo preserve disk space, it is recommended that you \n"
-"\tdo not include web browser's cache.\n"
-"\n"
-" - Backup Other files: \n"
-"\n"
-"\tThis option allows you to add more data to save.\n"
-"\tWith the other backup it's not possible at the \n"
-"\tmoment to select select incremental backup.\t\t\n"
-" \n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerful \n"
-"\toption for backup. This option allows you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed afterward.\n"
-"\tThen you will be able, during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this option all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3181
-msgid ""
-"restore description:\n"
-" \n"
-"Only the most recent date will be used ,because with incremental \n"
-"backups it is necesarry to restore one by one each older backups.\n"
-"\n"
-"So if you don't like to restore an user please unselect all his\n"
-"check box.\n"
-"\n"
-"Otherwise, you are able to select only one of this\n"
-"\n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerfull \n"
-"\toption to use backup, this option allow you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed after.\n"
-"\tSo you will be able during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this options all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-"restore description:\n"
-" \n"
-"Only the most recent date will be used ,because with incremental \n"
-"backups it is necesarry to restore one by one each older backups.\n"
-"\n"
-"So if you don't like to restore an user please unselect all his\n"
-"check box.\n"
-"\n"
-"Otherwise, you are able to select only one of this\n"
-"\n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerfull \n"
-"\toption to use backup, this option allow you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed after.\n"
-"\tSo you will be able during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this options all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3207 ../../standalone/drakbackup_.c:3282
-msgid ""
-" Copyright (C) 2001 MandrakeSoft by DUPONT Sebastien <dupont_s\\@epita.fr>"
-msgstr ""
-" Copyright (C) 2001 MandrakeSoft by DUPONT Sebastien <dupont_s\\@epita.fr>"
-
-#: ../../standalone/drakbackup_.c:3209 ../../standalone/drakbackup_.c:3284
-msgid ""
-" This program is free software; you can redistribute it and/or modify\n"
-" it under the terms of the GNU General Public License as published by\n"
-" the Free Software Foundation; either version 2, or (at your option)\n"
-" any later version.\n"
-"\n"
-" This program is distributed in the hope that it will be useful,\n"
-" but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-" GNU General Public License for more details.\n"
-"\n"
-" You should have received a copy of the GNU General Public License\n"
-" along with this program; if not, write to the Free Software\n"
-" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
-msgstr ""
-" This program is free software; you can redistribute it and/or modify\n"
-" it under the terms of the GNU General Public License as published by\n"
-" the Free Software Foundation; either version 2, or (at your option)\n"
-" any later version.\n"
-"\n"
-" This program is distributed in the hope that it will be useful,\n"
-" but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-" GNU General Public License for more details.\n"
-"\n"
-" You should have received a copy of the GNU General Public License\n"
-" along with this program; if not, write to the Free Software\n"
-" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
-
-#: ../../standalone/drakbackup_.c:3223
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select: \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, DrakBackup will remove \n"
-" your original directory and verify that all \n"
-" backup files are not corrupted. It is recommended \n"
-" you do a last backup before restoring.\n"
-"\n"
-"\n"
-msgstr ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select: \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, DrakBackup will remove \n"
-" your original directory and verify that all \n"
-" backup files are not corrupted. It is recommended \n"
-" you do a last backup before restoring.\n"
-"\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3261
-msgid ""
-"options description:\n"
-"\n"
-"Please be careful when you are using ftp backup, because only \n"
-"backups that are already built are sent to the server.\n"
-"So at the moment, you need to build the backup on your hard \n"
-"drive before sending it to the server.\n"
-"\n"
-msgstr ""
-"options description:\n"
-"\n"
-"Please be careful when you are using ftp backup, because only \n"
-"backups that are already built are sent to the server.\n"
-"So at the moment, you need to build the backup on your hard \n"
-"drive before sending it to the server.\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3270
-msgid ""
-"\n"
-"Restore Backup Problems:\n"
-"\n"
-"During the restore step, Drakbackup will verify all your\n"
-"backup files before restoring them.\n"
-"Before the restore, Drakbackup will remove \n"
-"your original directory, and you will loose all your \n"
-"data. It is important to be careful and not modify the \n"
-"backup data files by hand.\n"
-msgstr ""
-"\n"
-"Restore Backup Problems:\n"
-"\n"
-"During the restore step, Drakbackup will verify all your\n"
-"backup files before restoring them.\n"
-"Before the restore, Drakbackup will remove \n"
-"your original directory, and you will loose all your \n"
-"data. It is important to be careful and not modify the \n"
-"backup data files by hand.\n"
-
-#: ../../standalone/drakbackup_.c:3298
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, Drakbackup will remove\n"
-" your original directory and verify that all\n"
-" backup files are not corrupted. It is recommended\n"
-" you do a last backup before restoring.\n"
-" \n"
-"\n"
-msgstr ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, Drakbackup will remove\n"
-" your original directory and verify that all\n"
-" backup files are not corrupted. It is recommended\n"
-" you do a last backup before restoring.\n"
-" \n"
-"\n"
-
-#: ../../standalone/drakboot_.c:58
-#, c-format
-msgid "Installation of %s failed. The following error occured:"
-msgstr "Instalacija %sa nije uspjela. Javila se sljedeća greÅka:"
-
-#: ../../standalone/drakfont_.c:229
-msgid "Search installed fonts"
-msgstr "Pretraži instalirane fontove"
-
-#: ../../standalone/drakfont_.c:231
-msgid "Unselect fonts installed"
-msgstr "IskljuĨi instalirane fontove"
-
-#: ../../standalone/drakfont_.c:252
-msgid "parse all fonts"
-msgstr "obradi sve fontove"
-
-#: ../../standalone/drakfont_.c:253
-msgid "no fonts found"
-msgstr "nije pronađen nijedan font"
-
-#: ../../standalone/drakfont_.c:261 ../../standalone/drakfont_.c:303
-#: ../../standalone/drakfont_.c:352 ../../standalone/drakfont_.c:410
-#: ../../standalone/drakfont_.c:417 ../../standalone/drakfont_.c:443
-#: ../../standalone/drakfont_.c:455 ../../standalone/drakfont_.c:468
-msgid "done"
-msgstr "gotovo"
-
-#: ../../standalone/drakfont_.c:265
-msgid "could not find any font in your mounted partitions"
-msgstr "ne mogu naći nijedan font na montiranim particijama"
-
-#: ../../standalone/drakfont_.c:301
-msgid "Reselect correct fonts"
-msgstr "Ponovo izaberi ispravne fontove"
-
-#: ../../standalone/drakfont_.c:304
-msgid "could not find any font.\n"
-msgstr "ne mogu naći nijedan font.\n"
-
-#: ../../standalone/drakfont_.c:327
-msgid "Search fonts in installed list"
-msgstr "Pretraži fontove na listi instaliranih"
-
-#: ../../standalone/drakfont_.c:350
-msgid "Fonts copy"
-msgstr "Kopiranje fontova"
-
-#: ../../standalone/drakfont_.c:353
-msgid "True Type fonts installation"
-msgstr "Instalacija True Type fontova"
-
-#: ../../standalone/drakfont_.c:357
-msgid "please wait during ttmkfdir..."
-msgstr "molimo saĨekajte tokom ttmkfdir..."
-
-#: ../../standalone/drakfont_.c:359
-msgid "True Type install done"
-msgstr "ZavrÅena True Type instalacija"
-
-#: ../../standalone/drakfont_.c:366 ../../standalone/drakfont_.c:382
-msgid "Fonts conversion"
-msgstr "Konverzija fontova"
-
-#: ../../standalone/drakfont_.c:370 ../../standalone/drakfont_.c:386
-#: ../../standalone/drakfont_.c:406
-msgid "type1inst building"
-msgstr "type1inst kreiranje"
-
-#: ../../standalone/drakfont_.c:375 ../../standalone/drakfont_.c:390
-msgid "Ghostscript referencing"
-msgstr "Ghostscript referenciranje"
-
-#: ../../standalone/drakfont_.c:397
-msgid "ttf fonts conversion"
-msgstr "ttf fonts konverzija"
-
-#: ../../standalone/drakfont_.c:401
-msgid "pfm fonts conversion"
-msgstr "pfm fonts konverzija"
-
-#: ../../standalone/drakfont_.c:411
-msgid "Suppress temporary Files"
-msgstr "Onemogući privremene datoteke"
-
-#: ../../standalone/drakfont_.c:414
-msgid "Restart XFS"
-msgstr "Restartuj XFS"
-
-#: ../../standalone/drakfont_.c:453 ../../standalone/drakfont_.c:463
-msgid "Suppress Fonts Files"
-msgstr "Onemogući datoteke fontova"
-
-#: ../../standalone/drakfont_.c:465
-msgid "xfs restart"
-msgstr "restart xfs-a"
-
-#: ../../standalone/drakfont_.c:472 ../../standalone/drakfont_.c:760
-msgid ""
-"Before installing any fonts, be sure that you have the right to use and "
-"install them on your system.\n"
-"\n"
-"-You can install the fonts using the normal way. In rare cases, bogus fonts "
-"may hang up your X Server."
-msgstr ""
-"Prije instaliranja fontova, provjerite da li imate dozvole da ih koristite i "
-"instalirate na va[em sistemu.\n"
-"\n"
-"-Možete instalirati fontove koristeći uobiĨajen naĨin. U rijetkim "
-"sluĨajevima, neispravni fontovi mogu zaglaviti vaŠX Server."
-
-#: ../../standalone/drakfont_.c:547
-msgid "Fonts Importation"
-msgstr "Uvoz fontova"
-
-#: ../../standalone/drakfont_.c:562
-msgid "Get Windows Fonts"
-msgstr "Preuzmi fontove iz Windowsa"
-
-#: ../../standalone/drakfont_.c:564
-msgid "Uninstall Fonts"
-msgstr "Deinstaliraj fontove"
-
-#: ../../standalone/drakfont_.c:568
-msgid "Advanced Options"
-msgstr "Napredne opcije"
-
-#: ../../standalone/drakfont_.c:570
-msgid "Font List"
-msgstr "Lista fontova"
-
-#: ../../standalone/drakfont_.c:739
-msgid "Choose the applications that will support the fonts :"
-msgstr "Izaberite aplikacije koje će podržavati fontove :"
-
-#: ../../standalone/drakfont_.c:743
-msgid "Ghostscript"
-msgstr "Ghostscript"
-
-#: ../../standalone/drakfont_.c:747
-msgid "StarOffice"
-msgstr "StarOffice"
-
-#: ../../standalone/drakfont_.c:751
-msgid "Abiword"
-msgstr "Abiword"
-
-#: ../../standalone/drakfont_.c:755
-msgid "Generic Printers"
-msgstr "Razni ÅtampaĨi"
-
-#: ../../standalone/drakfont_.c:792
-msgid "Select the font file or directory and click on 'Add'"
-msgstr "Izaberite font datoteku ili direktorij i kliknite na 'Dodaj'"
-
-#: ../../standalone/drakfont_.c:828
-msgid "Install List"
-msgstr "Lista instalacije"
-
-#: ../../standalone/drakfont_.c:858
-msgid "click here if you are sure."
-msgstr "kliknite ovdje ako ste sigurni."
-
-#: ../../standalone/drakfont_.c:860
-msgid "here if no."
-msgstr "ovdje ako ne."
-
-#: ../../standalone/drakfont_.c:897
-msgid "Unselected All"
-msgstr "NiÅta izabrano"
-
-#: ../../standalone/drakfont_.c:899
-msgid "Selected All"
-msgstr "Sve izabrano"
-
-#: ../../standalone/drakfont_.c:901
-msgid "Remove List"
-msgstr "PobriÅi listu"
-
-#: ../../standalone/drakfont_.c:919 ../../standalone/drakfont_.c:939
-msgid "Initials tests"
-msgstr "Probni inicijali"
-
-#: ../../standalone/drakfont_.c:920
-msgid "Copy fonts on your system"
-msgstr "Kopiraj fontove na sistem"
-
-#: ../../standalone/drakfont_.c:921
-msgid "Install & convert Fonts"
-msgstr "Instaliraj i konvertuj fontove"
-
-#: ../../standalone/drakfont_.c:922
-msgid "Post Install"
-msgstr "Post Install"
-
-#: ../../standalone/drakfont_.c:940
-msgid "Remove fonts on your system"
-msgstr "PobriÅi fontove sa mog sistema"
-
-#: ../../standalone/drakfont_.c:941
-msgid "Post Uninstall"
-msgstr "Post Uninstall"
-
-#: ../../standalone/drakgw_.c:43 ../../standalone/drakgw_.c:200
-msgid "Internet Connection Sharing"
-msgstr "Dijeljenje Internet konekcije"
-
-#: ../../standalone/drakgw_.c:138
-msgid "Internet Connection Sharing currently enabled"
-msgstr "Dijeljenje Internet konekcije je trenutno aktivno"
-
-#: ../../standalone/drakgw_.c:139
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently enabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-"Dijeljenje Internet konekcije je već podeÅeno. Trenutno je\n"
-"aktivno.\n"
-"\n"
-"Šta želite uraditi?"
-
-#: ../../standalone/drakgw_.c:143
-msgid "disable"
-msgstr "iskljuĨi"
-
-#: ../../standalone/drakgw_.c:143 ../../standalone/drakgw_.c:168
-msgid "dismiss"
-msgstr "otkaži"
-
-#: ../../standalone/drakgw_.c:143 ../../standalone/drakgw_.c:168
-msgid "reconfigure"
-msgstr "rekonfiguriÅi"
-
-#: ../../standalone/drakgw_.c:146
-msgid "Disabling servers..."
-msgstr "IskljuĨujem servere..."
-
-#: ../../standalone/drakgw_.c:154
-msgid "Internet connection sharing is now disabled."
-msgstr "Dijeljenje Internet konekcije je sada iskljuĨeno."
-
-#: ../../standalone/drakgw_.c:163
-msgid "Internet Connection Sharing currently disabled"
-msgstr "Dijeljenje Internet konekcije je trenutno neaktivno"
-
-#: ../../standalone/drakgw_.c:164
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently disabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-"Dijeljenje Internet konekcije je već podeÅeno. Trenutno je\n"
-"neaktivno.\n"
-"\n"
-"Šta želite uraditi?"
-
-#: ../../standalone/drakgw_.c:168
-msgid "enable"
-msgstr "ukljuĨi"
-
-#: ../../standalone/drakgw_.c:175
-msgid "Enabling servers..."
-msgstr "UkljuĨujem servere..."
-
-#: ../../standalone/drakgw_.c:180
-msgid "Internet connection sharing is now enabled."
-msgstr "Dijeljenje Internet konekcije je sada ukljuĨeno."
-
-#: ../../standalone/drakgw_.c:201
-msgid ""
-"You are about to configure your computer to share its Internet connection.\n"
-"With that feature, other computers on your local network will be able to use "
-"this computer's Internet connection.\n"
-"\n"
-"Note: you need a dedicated Network Adapter to set up a Local Area Network "
-"(LAN)."
-msgstr ""
-"Sada ćete konfigurisati vaŠraĨunar za dijeljenje Internet konekcije.\n"
-"Sa ovom opcijom, ostali raĨunari na vaÅoj lokalnoj mreži će moći koristiti "
-"Internet konekciju ovog raĨunara. \n"
-"\n"
-"Napomena: potreban vam je poseban Mrežni adapter da biste podesili Lokalnu "
-"mrežu (LAN)."
-
-#: ../../standalone/drakgw_.c:227
-#, c-format
-msgid "Interface %s (using module %s)"
-msgstr "Interfejs %s (koristeći modul %s)"
-
-#: ../../standalone/drakgw_.c:228
-#, c-format
-msgid "Interface %s"
-msgstr "Interfejs %s"
-
-#: ../../standalone/drakgw_.c:236
-msgid "No network adapter on your system!"
-msgstr "Nema mrežnog adaptera na vaÅem sistemu!"
-
-#: ../../standalone/drakgw_.c:237
-msgid ""
-"No ethernet network adapter has been detected on your system. Please run the "
-"hardware configuration tool."
-msgstr ""
-"Na vaÅem sistemu nije pronaÄ‘en nijedan ethernet mrežni adapter. Molimo "
-"pokrenite alat za podeÅavanje hardware-a."
-
-#: ../../standalone/drakgw_.c:243
-msgid "Network interface"
-msgstr "Mrežni interface"
-
-#: ../../standalone/drakgw_.c:244
-#, c-format
-msgid ""
-"There is only one configured network adapter on your system:\n"
-"\n"
-"%s\n"
-"\n"
-"I am about to setup your Local Area Network with that adapter."
-msgstr ""
-"Trenutno je samo jedan mrežni adapter podeÅen na vaÅem sistemu:\n"
-"\n"
-"%s\n"
-"\n"
-"Sada ću podesiti vaÅu Lokalnu mrežu sa ovim adapterom."
-
-#: ../../standalone/drakgw_.c:253
-msgid ""
-"Please choose what network adapter will be connected to your Local Area "
-"Network."
-msgstr ""
-"Molimo izaberite koji mrežni adapter će biti spojen na vaÅu Lokalnu mrežu."
-
-#: ../../standalone/drakgw_.c:271
-msgid "Network interface already configured"
-msgstr "Mrežni interfejs je već podeÅen"
-
-#: ../../standalone/drakgw_.c:272
-#, c-format
-msgid ""
-"Warning, the network adapter (%s) is already configured.\n"
-"\n"
-"Do you want an automatic re-configuration?\n"
-"\n"
-"You can do it manually but you need to know what you're doing."
-msgstr ""
-"Upozorenje, mrežni adapter (%s) je već podeÅen.\n"
-"\n"
-"Da li želite automatsko ponovno podeÅavanje?\n"
-"\n"
-"To možete obaviti ruĨno, ali morate znati Åta radite."
-
-#: ../../standalone/drakgw_.c:277
-msgid "Automatic reconfiguration"
-msgstr "Automatsko ponovno podeÅavanje"
-
-#: ../../standalone/drakgw_.c:278
-msgid "Show current interface configuration"
-msgstr "Prikaži postavke trenutnog interfejsa"
-
-#: ../../standalone/drakgw_.c:280
-#, c-format
-msgid ""
-"Current configuration of `%s':\n"
-"\n"
-"Network: %s\n"
-"IP address: %s\n"
-"IP attribution: %s\n"
-"Driver: %s"
-msgstr ""
-"Trenutna konfiguracija `%s':\n"
-"\n"
-"Mreža: %s\n"
-"IP adresa: %s\n"
-"IP atributi: %s\n"
-"Drajver: %s"
-
-#: ../../standalone/drakgw_.c:292
-msgid ""
-"I can keep your current configuration and assume you already set up a DHCP "
-"server; in that case please verify I correctly read the C-Class Network that "
-"you use for your local network; I will not reconfigure it and I will not "
-"touch your DHCP server configuration.\n"
-"\n"
-"Else, I can reconfigure your interface and (re)configure a DHCP server for "
-"you.\n"
-"\n"
-msgstr ""
-"Mogu zadržati trenutnu konfiguraciju i pretpostaviti da ste već podesili "
-"DHCP server; u tom sluĨaju molim provjerite da li sam ispravno proĨitao "
-"mrežu C klase koju ćete koristiti na lokalnoj mreži; neću je ponovo podesiti "
-"i neću mijenjati vaÅe postavke DHCP servera.\n"
-"\n"
-"Ako ne, mogu ponovo podesiti vaÅ interfejs i podesiti DHCP server za vas.\n"
-"\n"
-
-#: ../../standalone/drakgw_.c:297
-msgid "C-Class Local Network"
-msgstr "Lokalna mreža C klase"
-
-#: ../../standalone/drakgw_.c:298
-msgid "(This) DHCP Server IP"
-msgstr "IP adresa (ovog) DHCP servera"
-
-#: ../../standalone/drakgw_.c:299
-msgid "Re-configure interface and DHCP server"
-msgstr "Ponovo podesi interfejs i DHCP server"
-
-#: ../../standalone/drakgw_.c:306
-msgid "The Local Network did not finish with `.0', bailing out."
-msgstr "Lokalna mreža se ne zavrÅava sa `.0', izlazim."
-
-#: ../../standalone/drakgw_.c:317
-#, c-format
-msgid "Potential LAN address conflict found in current config of %s!\n"
-msgstr ""
-"Potencijalan konflikt LAN adresa pronađen u trenutnoj konfiguraciji %s!\n"
-
-#: ../../standalone/drakgw_.c:325 ../../standalone/drakgw_.c:331
-msgid "Firewalling configuration detected!"
-msgstr "Otkrivena konfiguracija firewalla!"
-
-#: ../../standalone/drakgw_.c:326 ../../standalone/drakgw_.c:332
-msgid ""
-"Warning! An existing firewalling configuration has been detected. You may "
-"need some manual fix after installation."
-msgstr ""
-"Upozorenje! Pronađena je postojeća konfiguracija firewalla. Možda će biti "
-"potrebno neko ruĨno podeÅavanje nakon instalacije."
-
-#: ../../standalone/drakgw_.c:340
-msgid "Configuring..."
-msgstr "PodeÅavam..."
-
-#: ../../standalone/drakgw_.c:341
-msgid "Configuring scripts, installing software, starting servers..."
-msgstr "PodeÅavam skripte, instaliram software, pokrećem servere..."
-
-#: ../../standalone/drakgw_.c:378
-#, c-format
-msgid "Problems installing package %s"
-msgstr "Problemi tokom instaliranja paketa %s"
-
-#: ../../standalone/drakgw_.c:672
-msgid ""
-"Everything has been configured.\n"
-"You may now share Internet connection with other computers on your Local "
-"Area Network, using automatic network configuration (DHCP)."
-msgstr ""
-"Sve je konfigurisano.\n"
-"Sada možete dijeliti Internet konekciju sa ostalim raĨunarima na vaÅoj "
-"lokalnoj mreži, koristeći automatsku mrežnu konfiguraciju (DHCP)."
-
-#: ../../standalone/drakgw_.c:689
-msgid "The setup has already been done, but it's currently disabled."
-msgstr "PodeÅavanje je već zavrÅeno, ali je trenutno iskljuĨeno."
-
-#: ../../standalone/drakgw_.c:690
-msgid "The setup has already been done, and it's currently enabled."
-msgstr "PodeÅavanje je već zavrÅeno i trenutno je ukljuĨeno."
-
-#: ../../standalone/drakgw_.c:691
-msgid "No Internet Connection Sharing has ever been configured."
-msgstr "Dijeljenje Internet konekcije nije nikad podeÅeno."
-
-#: ../../standalone/drakgw_.c:696
-msgid "Internet connection sharing configuration"
-msgstr "PodeÅavanje dijeljenja Internet konekcije"
-
-#: ../../standalone/drakgw_.c:703
-#, c-format
-msgid ""
-"Welcome to the Internet Connection Sharing utility!\n"
-"\n"
-"%s\n"
-"\n"
-"Click on Configure to launch the setup wizard."
-msgstr ""
-"DobrodoÅli u alat za Dijeljenje Internet konekcije!\n"
-"\n"
-"%s\n"
-"\n"
-"Kliknite na Podesi da pokrenete Ĩarobnjak."
-
-#: ../../standalone/draknet_.c:80
-#, c-format
-msgid "Network configuration (%d adapters)"
-msgstr "PodeÅavanje mreže (%d adaptera)"
-
-#: ../../standalone/draknet_.c:87 ../../standalone/draknet_.c:595
-msgid "Profile: "
-msgstr "Profil:"
-
-#: ../../standalone/draknet_.c:95
-msgid "Del profile..."
-msgstr "BriÅi profil..."
-
-#: ../../standalone/draknet_.c:101
-msgid "Profile to delete:"
-msgstr "Profil za brisanje:"
-
-#: ../../standalone/draknet_.c:129
-msgid "New profile..."
-msgstr "Novi profil..."
-
-#: ../../standalone/draknet_.c:135
-msgid ""
-"Name of the profile to create (the new profile is created as a copy of the "
-"current one) :"
-msgstr ""
-"Naziv profila koji će biti kreiran (novi profil je kreiran kao kopija "
-"postojećeg) :"
-
-#: ../../standalone/draknet_.c:161
-msgid "Hostname: "
-msgstr "Hostname: "
-
-#: ../../standalone/draknet_.c:168
-msgid "Internet access"
-msgstr "Pristup Internetu"
-
-#: ../../standalone/draknet_.c:181
-msgid "Type:"
-msgstr "Tip:"
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-msgid "Gateway:"
-msgstr "Gateway:"
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-msgid "Interface:"
-msgstr "Interfejs:"
-
-#: ../../standalone/draknet_.c:195
-msgid "Status:"
-msgstr "Status:"
-
-#: ../../standalone/draknet_.c:202
-msgid "Wait please"
-msgstr "Molim saĨekajte"
-
-#: ../../standalone/draknet_.c:220
-msgid "Configure Internet Access..."
-msgstr "Podesi Internet pristup..."
-
-#: ../../standalone/draknet_.c:227 ../../standalone/draknet_.c:449
-msgid "LAN configuration"
-msgstr "PodeÅavanje LANa"
-
-#: ../../standalone/draknet_.c:232
-msgid "Driver"
-msgstr "Drajver"
-
-#: ../../standalone/draknet_.c:232
-msgid "Interface"
-msgstr "Interfejs"
-
-#: ../../standalone/draknet_.c:232
-msgid "Protocol"
-msgstr "Protokol"
-
-#: ../../standalone/draknet_.c:232
-msgid "State"
-msgstr "Status"
-
-#: ../../standalone/draknet_.c:244
-msgid "Configure Local Area Network..."
-msgstr "Podesi Lokalnu mrežu..."
-
-#: ../../standalone/draknet_.c:256
-msgid "Click here to launch the wizard ->"
-msgstr "Kliknite ovdje za pokretanje Ĩarobnjaka ->"
-
-#: ../../standalone/draknet_.c:257
-msgid "Wizard..."
-msgstr "Äarobnjak..."
-
-#: ../../standalone/draknet_.c:283
-msgid "Apply"
-msgstr "Primjeni"
-
-#: ../../standalone/draknet_.c:302
-msgid "Please Wait... Applying the configuration"
-msgstr "Molimo saĨekajte... Primjenjujem konfiguraciju"
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-msgid "Connected"
-msgstr "Konektovan"
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-msgid "Not connected"
-msgstr "Nije konektovan"
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Connect..."
-msgstr "Konektuj se..."
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Disconnect..."
-msgstr "Prekini konekciju..."
-
-#: ../../standalone/draknet_.c:404
-msgid ""
-"Warning, another Internet connection has been detected, maybe using your "
-"network"
-msgstr ""
-"Upozorenje, otkrivena je druga Internet konekcija, možda preko vaÅe mreže"
-
-#: ../../standalone/draknet_.c:431
-msgid ""
-"You don't have any configured interface.\n"
-"Configure them first by clicking on 'Configure'"
-msgstr ""
-"Nemate nijedan podeÅen interfejs.\n"
-"Podesite ih prvo klikajući na 'Podesi'"
-
-#: ../../standalone/draknet_.c:453
-msgid "LAN Configuration"
-msgstr "PodeÅavanje LANa"
-
-#: ../../standalone/draknet_.c:464
-#, c-format
-msgid "Adapter %s: %s"
-msgstr "Adapter %s: %s"
-
-#: ../../standalone/draknet_.c:470
-msgid "Boot Protocol"
-msgstr "Boot protokol"
-
-#: ../../standalone/draknet_.c:471
-msgid "Started on boot"
-msgstr "Pokrenut na bootu"
-
-#: ../../standalone/draknet_.c:472
-msgid "DHCP client"
-msgstr "DHCP klijent"
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-msgid "activate now"
-msgstr "pokreni sada"
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-msgid "deactivate now"
-msgstr "zaustavi sada"
-
-#: ../../standalone/draknet_.c:503
-msgid ""
-"This interface has not been configured yet.\n"
-"Launch the configuration wizard in the main window"
-msgstr ""
-"Interfejs joÅ nije podeÅen.\n"
-"Pokrenite Ĩarobnjak za podeÅavanje u glavnom prozoru"
-
-#: ../../standalone/draknet_.c:560
-msgid ""
-"You don't have any internet connection.\n"
-"Create one first by clicking on 'Configure'"
-msgstr ""
-"Nemate nijednu Internet konekciju.\n"
-"Napravite jednu klikajući na 'Podesi'"
-
-#: ../../standalone/draknet_.c:584
-msgid "Internet connection configuration"
-msgstr "PodeÅavanje Internet konekcije"
-
-#: ../../standalone/draknet_.c:588
-msgid "Internet Connection Configuration"
-msgstr "PodeÅavanje Internet konekcije"
-
-#: ../../standalone/draknet_.c:597
-msgid "Connection type: "
-msgstr "Tip konekcije: "
-
-#: ../../standalone/draknet_.c:603
-msgid "Parameters"
-msgstr "Parametri"
-
-#: ../../standalone/draknet_.c:621
-msgid "Gateway"
-msgstr "Gateway"
-
-#: ../../standalone/draknet_.c:630
-msgid "Ethernet Card"
-msgstr "Ethernet kartica"
-
-#: ../../standalone/draknet_.c:631
-msgid "DHCP Client"
-msgstr "DHCP klijent"
-
-#: ../../standalone/draksec_.c:31
-msgid "Setting security level"
-msgstr "PodeÅavanje nivoa sigurnosti"
-
-#: ../../standalone/drakxconf_.c:47
-msgid "Control Center"
-msgstr "Kontrolni centar"
-
-#: ../../standalone/drakxconf_.c:48
-msgid "Choose the tool you want to use"
-msgstr "Izaberite alat koji želite koristiti"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "Canada (cable)"
-msgstr "Kanada (kablovska)"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (bcast)"
-msgstr "USA (bcast)"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (cable)"
-msgstr "USA (kablovska)"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (cable-hrc)"
-msgstr "USA (cable-hrc)"
-
-#: ../../standalone/drakxtv_.c:49
-msgid "China (bcast)"
-msgstr "Kina (bcast)"
-
-#: ../../standalone/drakxtv_.c:49
-msgid "Japan (bcast)"
-msgstr "Japan (bcast)"
-
-#: ../../standalone/drakxtv_.c:49
-msgid "Japan (cable)"
-msgstr "Japan (kablovska)"
-
-#: ../../standalone/drakxtv_.c:50
-msgid "East Europe"
-msgstr "IstoĨna Evropa"
-
-#: ../../standalone/drakxtv_.c:50
-msgid "Ireland"
-msgstr "Irska"
-
-#: ../../standalone/drakxtv_.c:50
-msgid "West Europe"
-msgstr "Zapadna Evropa"
-
-#: ../../standalone/drakxtv_.c:51
-msgid "Australia"
-msgstr "Australija"
-
-#: ../../standalone/drakxtv_.c:51
-msgid "Newzealand"
-msgstr "Novi Zeland"
-
-#: ../../standalone/drakxtv_.c:52
-msgid "South Africa"
-msgstr "Južna Afrika"
-
-#: ../../standalone/drakxtv_.c:53
-msgid "Argentina"
-msgstr "Argentina"
-
-#: ../../standalone/drakxtv_.c:58
-msgid ""
-"Please,\n"
-"type in your tv norm and country"
-msgstr ""
-"Molim,\n"
-"unesite vaŠtv standard i državu"
-
-#: ../../standalone/drakxtv_.c:60
-msgid "TV norm :"
-msgstr "TV standard :"
-
-#: ../../standalone/drakxtv_.c:61
-msgid "Area :"
-msgstr "Oblast :"
-
-#: ../../standalone/drakxtv_.c:65
-msgid "Scanning for TV channels in progress ..."
-msgstr "Pretraga TV kanala je u toku ..."
-
-#: ../../standalone/drakxtv_.c:72
-msgid "Scanning for TV channels"
-msgstr "Tražim TV kanale"
-
-#: ../../standalone/drakxtv_.c:83
-msgid "No TV Card detected!"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:84
-msgid ""
-"No TV Card has been detected on your machine. Please verify that a Linux-"
-"supported Video/TV Card is correctly plugged in.\n"
-"\n"
-"\n"
-"You can visit our hardware database at:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/hardware.php3"
-msgstr ""
-
-#: ../../standalone/keyboarddrake_.c:16
-msgid "usage: keyboarddrake [--expert] [keyboard]\n"
-msgstr "upotreba: keyboarddrake [--expert] [keyboard]\n"
-
-#: ../../standalone/keyboarddrake_.c:29
-msgid "Please, choose your keyboard layout."
-msgstr "Molimo izaberite izgled vaÅe tastature."
-
-#: ../../standalone/keyboarddrake_.c:36
-msgid "Do you want the BackSpace to return Delete in console?"
-msgstr "Želite li da BackSpace vrati Delete u konzoli?"
-
-#: ../../standalone/livedrake_.c:24
-msgid "Change Cd-Rom"
-msgstr "Promjenite CD-ROM"
-
-#: ../../standalone/livedrake_.c:25
-msgid ""
-"Please insert the Installation Cd-Rom in your drive and press Ok when done.\n"
-"If you don't have it, press Cancel to avoid live upgrade."
-msgstr ""
-"Molimo ubacite Instalacioni CD u vaŠCD-ROM uređaj i pritisnite Ok kad ste "
-"spremni.\n"
-"Ako ga nemate, pritisnite Odustani da bi se izbjegao live upgrade."
-
-#: ../../standalone/livedrake_.c:35
-msgid "Unable to start live upgrade !!!\n"
-msgstr "Ne mogu da pokrenem live upgrade !!!\n"
-
-#: ../../standalone/localedrake_.c:32
-msgid "The change is done, but to be effective you must logout"
-msgstr "Izmjena je napravljena, ali da bi stupila na snagu morate se odjaviti"
-
-#: ../../standalone/logdrake_.c:85 ../../standalone/logdrake_.c:501
-msgid "logdrake"
-msgstr "logdrake"
-
-#: ../../standalone/logdrake_.c:95
-msgid "Show only for the selected day"
-msgstr "Prikaži samo za izabrani dan"
-
-#: ../../standalone/logdrake_.c:102
-msgid "/File/_New"
-msgstr "/File/_New"
-
-#: ../../standalone/logdrake_.c:102
-msgid "<control>N"
-msgstr "<control>N"
-
-#: ../../standalone/logdrake_.c:103
-msgid "/File/_Open"
-msgstr "/Datoteka/_Otvori"
-
-#: ../../standalone/logdrake_.c:103
-msgid "<control>O"
-msgstr "<control>O"
-
-#: ../../standalone/logdrake_.c:104
-msgid "/File/_Save"
-msgstr "/Datoteka/_SaĨuvaj"
-
-#: ../../standalone/logdrake_.c:104
-msgid "<control>S"
-msgstr "<control>S"
-
-#: ../../standalone/logdrake_.c:105
-msgid "/File/Save _As"
-msgstr "/Datoteaka/SaĨuvaj _kao"
-
-#: ../../standalone/logdrake_.c:106
-msgid "/File/-"
-msgstr "/Datoteka/-"
-
-#: ../../standalone/logdrake_.c:108
-msgid "/_Options"
-msgstr "/_Opcije"
-
-#: ../../standalone/logdrake_.c:109
-msgid "/Options/Test"
-msgstr "/Opcije/Test"
-
-#: ../../standalone/logdrake_.c:110
-msgid "/_Help"
-msgstr "/_Pomoć"
-
-#: ../../standalone/logdrake_.c:111
-msgid "/Help/_About..."
-msgstr "/Pomoć/_O programu..."
-
-#: ../../standalone/logdrake_.c:118
-msgid "-misc-fixed-medium-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr "-misc-fixed-medium-r-*-*-*-100-*-*-*-*-*-*,*"
-
-#: ../../standalone/logdrake_.c:119
-msgid "-misc-fixed-bold-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr "-misc-fixed-bold-r-*-*-*-100-*-*-*-*-*-*,*"
-
-#: ../../standalone/logdrake_.c:173
-msgid "User"
-msgstr "Korisnik"
-
-#: ../../standalone/logdrake_.c:174
-msgid "Messages"
-msgstr "Poruke"
-
-#: ../../standalone/logdrake_.c:175
-msgid "Syslog"
-msgstr "Syslog"
-
-#: ../../standalone/logdrake_.c:176
-msgid "Mandrake Tools Explanations"
-msgstr "ObjaÅnjenja Mandrake alata"
-
-#: ../../standalone/logdrake_.c:179
-msgid "search"
-msgstr "pretraživanje"
-
-#: ../../standalone/logdrake_.c:185
-msgid "A tool to monitor your logs"
-msgstr "Alat za pregled vaÅih logova"
-
-#: ../../standalone/logdrake_.c:186
-msgid "Settings"
-msgstr "PodeÅavanja"
-
-#: ../../standalone/logdrake_.c:191
-msgid "matching"
-msgstr "matching"
-
-#: ../../standalone/logdrake_.c:192
-msgid "but not matching"
-msgstr "but not matching"
-
-#: ../../standalone/logdrake_.c:196
-msgid "Choose file"
-msgstr "Izaberi datoteku"
-
-#: ../../standalone/logdrake_.c:201
-msgid "Calendar"
-msgstr "Kalendar"
-
-#: ../../standalone/logdrake_.c:211
-msgid "Content of the file"
-msgstr "Sadržaj datoteke"
-
-#: ../../standalone/logdrake_.c:215 ../../standalone/logdrake_.c:390
-msgid "Mail/SMS alert"
-msgstr "Mail/SMS obavijest"
-
-#: ../../standalone/logdrake_.c:268
-#, c-format
-msgid "please wait, parsing file: %s"
-msgstr "molim saĨekajte, parsiram datoteku: %s"
-
-#: ../../standalone/logdrake_.c:405
-msgid "Mail/SMS alert configuration"
-msgstr "PodeÅavanje Mail/SMS obavijesti"
-
-#: ../../standalone/logdrake_.c:406
-msgid ""
-"Welcome to the mail/SMS configuration utility.\n"
-"\n"
-"Here, you'll be able to set up the alert system.\n"
-msgstr ""
-"Dobro doÅli u aplikaciju za podeÅavanje mail/SMSa.\n"
-"\n"
-"Ovdje možete podesiti sistem obavjeÅtavanja.\n"
-
-#: ../../standalone/logdrake_.c:414
-msgid "proftpd"
-msgstr "proftpd"
-
-#: ../../standalone/logdrake_.c:417
-msgid "sshd"
-msgstr "sshd"
-
-#: ../../standalone/logdrake_.c:418
-msgid "webmin"
-msgstr "webmin"
-
-#: ../../standalone/logdrake_.c:419
-msgid "xinetd"
-msgstr "xinetd"
-
-#: ../../standalone/logdrake_.c:422
-msgid "service setting"
-msgstr "postavke servisa"
-
-#: ../../standalone/logdrake_.c:423
-msgid ""
-"You will receive an alert if one of the selected service is no more running"
-msgstr ""
-"Možete primiti obavjeÅtenje ako neki od izabranih servisa prestane raditi"
-
-#: ../../standalone/logdrake_.c:433
-msgid "load setting"
-msgstr "postavka opterećenja"
-
-#: ../../standalone/logdrake_.c:434
-msgid "You will receive an alert if the load is higher than this value"
-msgstr ""
-"Primićete upozorenje ako je opterećenje (system load) veće od ove vrijednosti"
-
-#: ../../standalone/logdrake_.c:447
-msgid "alert configuration"
-msgstr "postavka upozorenja"
-
-#: ../../standalone/logdrake_.c:448
-msgid "Configure the way the system will alert you"
-msgstr "Podesite naĨin na koji će vas sistem obavijestiti"
-
-#: ../../standalone/logdrake_.c:478
-msgid "Save as.."
-msgstr "SaĨuvaj kao..."
-
-#: ../../standalone/mousedrake_.c:49
-msgid "Please, choose the type of your mouse."
-msgstr "Molimo izaberite vrstu vaÅeg miÅa."
-
-#: ../../standalone/mousedrake_.c:59
-msgid "no serial_usb found\n"
-msgstr "nije pronađen serial_usb\n"
-
-#: ../../standalone/mousedrake_.c:63
-msgid "Emulate third button?"
-msgstr "Emuliraj treće dugme?"
-
-#: ../../standalone/scannerdrake_.c:53
-#, c-format
-msgid "%s found on %s, configure it ?"
-msgstr "%s je pronađen na %s, podesi ga ?"
-
-#: ../../standalone/scannerdrake_.c:60
-msgid "Select a scanner"
-msgstr "Izaberite skener"
-
-#: ../../standalone/scannerdrake_.c:80
-#, c-format
-msgid "This %s scanner is unsupported"
-msgstr "Ovaj %s skener nije podržan"
-
-#: ../../standalone/scannerdrake_.c:94
-#, c-format
-msgid ""
-"Scannerdrake was not able to detect your %s scanner.\n"
-"Please select the device where your scanner is plugged"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:96
-#, fuzzy
-msgid "choose device"
-msgstr "Boot uređaj"
-
-#: ../../standalone/scannerdrake_.c:102
-#, c-format
-msgid ""
-"This %s scanner must be configured by printerdrake.\n"
-"You can launch printerdrake from the Mandrake Control Center in Hardware "
-"section."
-msgstr ""
-"Ovaj %s skener se mora podesiti iz printerdrake-a.\n"
-"Možete pokrenuti printerdrake iz Mandrake Kontrolnog centra u odjeljku "
-"Hardware."
-
-#: ../../standalone/scannerdrake_.c:107
-#, c-format
-msgid ""
-"Your %s scanner has been configured.\n"
-"You may now scan documents using ``XSane'' from Multimedia/Graphics in the "
-"applications menu."
-msgstr ""
-
-#: ../../standalone/tinyfirewall_.c:31
-msgid "Firewalling Configuration"
-msgstr "PodeÅavanje firewalla"
-
-#: ../../standalone/tinyfirewall_.c:44
-msgid "Firewalling configuration"
-msgstr "PodeÅavanje firewalla"
-
-#: ../../standalone/tinyfirewall_.c:79
-msgid ""
-"Firewalling\n"
-"\n"
-"You already have set up a firewall.\n"
-"Click on Configure to change or remove the firewall"
-msgstr ""
-"Firewall\n"
-"\n"
-"Već ste podesili firewall.\n"
-"Kliknite na Podesi kako bi se izmjenio ili uklonio firewall"
-
-#: ../../standalone/tinyfirewall_.c:83
-msgid ""
-"Firewalling\n"
-"\n"
-"Click on Configure to set up a standard firewall"
-msgstr ""
-"Firewall\n"
-"\n"
-"Kliknite na Podesi za podeÅavanje standardnog firewalla"
-
-#: ../../steps.pm_.c:14
-msgid "Choose your language"
-msgstr "Izaberite svoj jezik"
-
-#: ../../steps.pm_.c:15
-msgid "Select installation class"
-msgstr "Izaberite klasu instalacije"
-
-#: ../../steps.pm_.c:16
-msgid "Hard drive detection"
-msgstr "Prepoznavanje hard diska"
-
-#: ../../steps.pm_.c:17
-msgid "Configure mouse"
-msgstr "PodeÅavanje miÅa"
-
-#: ../../steps.pm_.c:18
-msgid "Choose your keyboard"
-msgstr "Izaberite vaÅu tastaturu"
-
-#: ../../steps.pm_.c:19
-msgid "Security"
-msgstr "Sigurnost"
-
-#: ../../steps.pm_.c:20
-msgid "Setup filesystems"
-msgstr "PodeÅavanje datoteĨnih sistema"
-
-#: ../../steps.pm_.c:21
-msgid "Format partitions"
-msgstr "Formatiranje particija"
-
-#: ../../steps.pm_.c:22
-msgid "Choose packages to install"
-msgstr "Izaberite pakete za instalaciju"
-
-#: ../../steps.pm_.c:23
-msgid "Install system"
-msgstr "Sistem instalacije"
-
-#: ../../steps.pm_.c:25
-msgid "Add a user"
-msgstr "Dodajte korisnika"
-
-#: ../../steps.pm_.c:26
-msgid "Configure networking"
-msgstr "PodeÅavanje mreže"
-
-#: ../../steps.pm_.c:28
-msgid "Configure services"
-msgstr "PodeÅavanje servisa"
-
-#: ../../steps.pm_.c:29
-msgid "Install bootloader"
-msgstr "Instalacija bootloadera"
-
-#: ../../steps.pm_.c:31
-msgid "Create a bootdisk"
-msgstr "Napravite boot disketu"
-
-#: ../../steps.pm_.c:33
-msgid "Configure X"
-msgstr "PodeÅavanje X"
-
-#: ../../steps.pm_.c:34
-msgid "Install system updates"
-msgstr "Instaliraj sistemske update"
-
-#: ../../steps.pm_.c:35
-msgid "Exit install"
-msgstr "Napusti instalaciju"
-
-#: ../../tinyfirewall.pm_.c:9
-msgid ""
-"tinyfirewall configurator\n"
-"\n"
-"This configures a personal firewall for this Mandrake Linux machine.\n"
-"For a powerful dedicated firewall solution, please look to the\n"
-"specialized MandrakeSecurity Firewall distribution."
-msgstr ""
-"tinyfirewall podeÅavaĨ\n"
-"\n"
-"On podeÅava liĨni firewall za ovaj Mandrake Linux raĨunar.\n"
-"Za moćnu soluciju posebnog firewalla, molimo pogledajte\n"
-"specijaliziranu MandrakeSecurity Firewall distribuciju."
-
-#: ../../tinyfirewall.pm_.c:14
-msgid ""
-"We'll now ask you questions about which services you'd like to allow\n"
-"the Internet to connect to. Please think carefully about these\n"
-"questions, as your computer's security is important.\n"
-"\n"
-"Please, if you're not currently using one of these services, firewall\n"
-"it off. You can change this configuration anytime you like by\n"
-"re-running this application!"
-msgstr ""
-"Sada ćemo vam postaviti pitanja o servisima kojima želite dozvoliti\n"
-"pristup sa Interneta. Molimo razmislite pažljivo o ovim pitanjima,\n"
-"jer je sigurnost vaÅeg raĨunara bitna.\n"
-"\n"
-"Molimo vas, ako trenutno ne koristite neki od ovih servisa, iskljuĨite\n"
-"ga firewallom. Možete izmjeniti ove postavke kad god želite ponovnim\n"
-"pokretanjem ove aplikacije!"
-
-#: ../../tinyfirewall.pm_.c:21
-msgid ""
-"Are you running a web server on this machine that you need the whole\n"
-"Internet to see? If you are running a webserver that only needs to be\n"
-"accessed by this machine, you can safely answer NO here.\n"
-"\n"
-msgstr ""
-"Da li imate pokrenut web server na ovom raĨunaru za koji želite da ga\n"
-"cijeli Internet vidi? Ako imate pokrenut webserver kojem ćete pristupati\n"
-"samo sa ovog raĨunara, možete slobodno ovdje odgovoriti NE.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:26
-msgid ""
-"Are you running a name server on this machine? If you didn't set one\n"
-"up to give away IP and zone information to the whole Internet, please\n"
-"answer no.\n"
-"\n"
-msgstr ""
-"Da li imate pokrenut name server (DNS) na ovom raĨunaru? Ako niste\n"
-"podesili DNS radi davanja informacija o IP i zoni cijelom Internetu, \n"
-"molimo vas odgovorite ne.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:31
-msgid ""
-"Do you want to allow incoming Secure Shell (ssh) connections? This\n"
-"is a telnet-replacement that you might use to login. If you're using\n"
-"telnet now, you should definitely switch to ssh. telnet is not\n"
-"encrypted -- so some attackers can steal your password if you use\n"
-"it. ssh is encrypted and doesn't allow for this eavesdropping."
-msgstr ""
-"Da li želite da dozvolite ulazne Secure Shell (ssh) konekcije? Ovo\n"
-"je zamjena za telnet koju možete koristiti za prijavu. Ako sada koristite\n"
-"telnet, definitivno trebate preći na ssh. Telnet nije kriptovan, tako\n"
-"da neki napadaĨi mogu ukrasti vaÅu Åifru ako ga koristite. ssh je\n"
-"kriptovan i ne dozvoljava ovo prisluÅkivanje."
-
-#: ../../tinyfirewall.pm_.c:36
-msgid ""
-"Do you want to allow incoming telnet connections?\n"
-"This is horribly unsafe, as we explained in the previous screen. We\n"
-"strongly recommend answering No here and using ssh in place of\n"
-"telnet.\n"
-msgstr ""
-"Da li želite dozvoliti ulazne telnet konekcije?\n"
-"Ovo je užasno nesigurno, kao Åto je objaÅnjeno na prethodnom\n"
-"ekranu. Strogo preporuĨujemo da odgovorite Ne ovdje i koristite\n"
-"ssh umjesto telneta.\n"
-
-#: ../../tinyfirewall.pm_.c:41
-msgid ""
-"Are you running an FTP server here that you need accessible to the\n"
-"Internet? If you are, we strongly recommend that you only use it for\n"
-"Anonymous transfers. Any passwords sent by FTP can be stolen by some\n"
-"attackers, since FTP also uses no encryption for transferring passwords.\n"
-msgstr ""
-"Da li imate pokrenut FTP server za koji želite da je pristupaĨan sa\n"
-"Interneta? Ako da, onda strogo preporuĨujemo da ga koristite samo\n"
-"za anonimne transfere. Bilo koju Åifru koja je poslana putem FTPa\n"
-"mogu ukrasti napadaĨi, poÅto FTP takoÄ‘er ne koristi kriptovanje.\n"
-
-#: ../../tinyfirewall.pm_.c:46
-msgid ""
-"Are you running a mail server here? If you're sending you \n"
-"messages through pine, mutt or any other text-based mail client,\n"
-"you probably are. Otherwise, you should firewall this off.\n"
-"\n"
-msgstr ""
-"Da li imate pokrenut mail server ovdje? Ako Åaljete poruke\n"
-"kroz pine, mutt ili neki drugi tekst-bazirani mail klijent, onda\n"
-"vjerovatno imate. U suprotnom, trebali biste iskljuĨiti ovo \n"
-"firewallom.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:51
-msgid ""
-"Are you running a POP or IMAP server here? This would\n"
-"be used to host non-web-based mail accounts for people via \n"
-"this machine.\n"
-"\n"
-msgstr ""
-"Da li imate pokrenut POP ili IMAP server ovdje? Ovo bi\n"
-"bilo koriÅteno za smjeÅtaj ne-web-baziranih mail naloga\n"
-"za ljude na ovom raĨunaru.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:56
-msgid ""
-"You appear to be running a 2.2 kernel. If your network IP\n"
-"is automatically set by a computer in your home or office \n"
-"(dynamically assigned), we need to allow for this. Is\n"
-"this the case?\n"
-msgstr ""
-"Äini se da koristite 2.2 kernel. Ako je vaÅa mrežna IP\n"
-"automatski podeÅena putem raĨunara u vaÅoj kući ili\n"
-"uredu (dinamiĨki dodjeljena), moramo ovo dozvoliti. Da\n"
-"li je ovo sluĨaj?\n"
-
-#: ../../tinyfirewall.pm_.c:61
-msgid ""
-"Is your computer getting time syncronized to another computer?\n"
-"Mostly, this is used by medium-large Unix/Linux organizations\n"
-"to synchronize time for logging and such. If you're not part\n"
-"of a larger office and haven't heard of this, you probably \n"
-"aren't."
-msgstr ""
-"Da li vaŠraĨunar sinhronizuje vrijeme sa drugim raĨunarom?\n"
-"NajĨeÅće, ovo se koristi u srednje velikim Unix/Linux organizacijama\n"
-"za sinhronizaciju vremena za pravljenje dnevnika i sliĨno. Ako\n"
-"niste dio većeg ureda i niste Ĩuli za ovo, onda vjerovatno\n"
-"ovo nije sluĨaj."
-
-#: ../../tinyfirewall.pm_.c:66
-msgid ""
-"Configuration complete. May we write these changes to disk?\n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-"PodeÅavanje zavrÅeno. Možemo li zapisati ove izmjene na disk?\n"
-"\n"
-"\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:82
-#, c-format
-msgid "Can't open %s: %s\n"
-msgstr "Ne mogu otvoriti %s: %s\n"
-
-#: ../../tinyfirewall.pm_.c:84
-#, c-format
-msgid "Can't open %s for writing: %s\n"
-msgstr "Ne mogu otvoriti %s za pisanje: %s\n"
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "No I don't need DHCP"
-msgstr "Ne, ne treba mi DHCP"
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "Yes I need DHCP"
-msgstr "Da, treba mi DHCP"
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "No I don't need NTP"
-msgstr "Ne, ne treba mi NTP"
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "Yes I need NTP"
-msgstr "Da, treba mi NTP"
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-msgid "Don't Save"
-msgstr "Nemoj snimiti"
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-#: ../../tinyfirewall.pm_.c:206
-msgid "Save & Quit"
-msgstr "Snimi i izađi"
-
-#: ../../tinyfirewall.pm_.c:197 ../../tinyfirewall.pm_.c:201
-msgid "Firewall Configuration Wizard"
-msgstr "Äarobnjak za podeÅavanje firewalla"
-
-#: ../../tinyfirewall.pm_.c:199
-msgid "No (firewall this off from the internet)"
-msgstr "Ne (iskljuĨi pristup sa interneta)"
-
-#: ../../tinyfirewall.pm_.c:200
-msgid "Yes (allow this through the firewall)"
-msgstr "Da (dozovoli pristup sa interneta)"
-
-#: ../../tinyfirewall.pm_.c:232
-msgid "Please Wait... Verifying installed packages"
-msgstr "Molim saĨekajte... Provjeravam instalirane pakete"
-
-#: ../../tinyfirewall.pm_.c:238
-#, c-format
-msgid ""
-"Failure installing the needed packages : %s and Bastille.\n"
-" Try to install them manually."
-msgstr ""
-"GreÅka prilikom instaliranja paketa : %s i Bastille.\n"
-" PokuÅajte ih instalirati ruĨno."
-
-#: ../../share/compssUsers:999
-msgid "Web/FTP"
-msgstr "Web/FTP"
-
-#: ../../share/compssUsers:999
-msgid "Network Computer (client)"
-msgstr "Mrežni raĨunar (klijent)"
-
-#: ../../share/compssUsers:999
-msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr "NFS server, SMB server, Proxy server, ssh server"
-
-#: ../../share/compssUsers:999
-msgid "Office"
-msgstr "Ured"
-
-#: ../../share/compssUsers:999
-msgid "Gnome Workstation"
-msgstr "Gnome Radna stanica"
-
-#: ../../share/compssUsers:999
-msgid "Tools for your Palm Pilot or your Visor"
-msgstr "Alati za vaÅ Palm Pilot ili Visor"
-
-#: ../../share/compssUsers:999
-msgid "Workstation"
-msgstr "Radna stanica"
-
-#: ../../share/compssUsers:999
-msgid "Firewall/Router"
-msgstr "Firewall/Router"
-
-#: ../../share/compssUsers:999
-msgid "Domain Name and Network Information Server"
-msgstr "Domain Name i Network Information Server"
-
-#: ../../share/compssUsers:999
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-"Uredski programi: obrada teksta (kword, abiword), tabliĨni alati (kspread, "
-"gnumeric), pdf preglednici itd."
-
-#: ../../share/compssUsers:999
-msgid "Audio-related tools: mp3 or midi players, mixers, etc"
-msgstr "Alati vezani za zvuk: mp3 ili midi playeri, mixeri itd."
-
-#: ../../share/compssUsers:999
-msgid "Books and Howto's on Linux and Free Software"
-msgstr "Knjige i Howto-i na temu Linuxa i Slobodnog Software-a"
-
-#: ../../share/compssUsers:999
-msgid "KDE Workstation"
-msgstr "KDE Radna stanica"
-
-#: ../../share/compssUsers:999
-msgid "Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm, Window Maker, Enlightenment, Fvwm, itd."
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Video"
-msgstr "Multimedija - Video"
-
-#: ../../share/compssUsers:999
-msgid "Set of tools for mail, news, web, file transfer, and chat"
-msgstr "Skup alata za mail, news, web, prenos datoteka i chat"
-
-#: ../../share/compssUsers:999
-msgid "Database"
-msgstr "Baze podataka"
-
-#: ../../share/compssUsers:999
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL ili MySQL baza podataka"
-
-#: ../../share/compssUsers:999
-msgid "Tools to ease the configuration of your computer"
-msgstr "Alati za lakÅe podeÅavanje raĨunara"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Sound"
-msgstr "Multimedija - Zvuk"
-
-#: ../../share/compssUsers:999
-msgid "Utilities"
-msgstr "Korisni programi"
-
-#: ../../share/compssUsers:999
-msgid "Documentation"
-msgstr "Dokumentacija"
-
-#: ../../share/compssUsers:999
-msgid "Console Tools"
-msgstr "Alati za konzolu"
-
-#: ../../share/compssUsers:999
-msgid "Postfix mail server, Inn news server"
-msgstr "Postfix mail server, Inn news server"
-
-#: ../../share/compssUsers:999
-msgid "Internet station"
-msgstr "Internet stanica"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia station"
-msgstr "Multimedijalna stanica"
-
-#: ../../share/compssUsers:999
-msgid "Configuration"
-msgstr "PodeÅavanje"
-
-#: ../../share/compssUsers:999
-msgid "More Graphical Desktops (Gnome, IceWM)"
-msgstr "Druge grafiĨke okoline (Gnome, IceWM)"
-
-#: ../../share/compssUsers:999
-msgid ""
-"The K Desktop Environment, the basic graphical environment with a collection "
-"of accompanying tools"
-msgstr ""
-"K Desktop Environment, osnovno grafiĨko okruženje sa izborom pratećih alata"
-
-#: ../../share/compssUsers:999
-msgid "Graphical Environment"
-msgstr "GrafiĨko okruženje"
-
-#: ../../share/compssUsers:999
-msgid "Apache, Pro-ftpd"
-msgstr "Apache, Pro-ftpd"
-
-#: ../../share/compssUsers:999
-msgid "Tools to create and burn CD's"
-msgstr "Alati za pravljenje i prženje CDova"
-
-#: ../../share/compssUsers:999
-msgid "Office Workstation"
-msgstr "Uredska radna stanica"
-
-#: ../../share/compssUsers:999
-msgid "Server"
-msgstr "Server"
-
-#: ../../share/compssUsers:999
-msgid "Gnome, Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Gnome, Icewm, Window Maker, Enlightenment, Fvwm, itd."
-
-#: ../../share/compssUsers:999
-msgid "Graphics programs such as The Gimp"
-msgstr "GrafiĨki programi kao Åto je Gimp"
-
-#: ../../share/compssUsers:999
-msgid "DNS/NIS "
-msgstr "DNS/NIS "
-
-#: ../../share/compssUsers:999
-msgid "C and C++ development libraries, programs and include files"
-msgstr "C i C++ razvojne biblioteke, programi i include datoteke"
-
-#: ../../share/compssUsers:999
-msgid "Network Computer server"
-msgstr "Network Computer server"
-
-#: ../../share/compssUsers:999
-msgid "Mail/Groupware/News"
-msgstr "Mail/Groupware/News"
-
-#: ../../share/compssUsers:999
-msgid "Game station"
-msgstr "Stanica za igru"
-
-#: ../../share/compssUsers:999
-msgid "Video players and editors"
-msgstr "Video playeri i editori"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Graphics"
-msgstr "Multimedija - Grafika"
-
-#: ../../share/compssUsers:999
-msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr "Zabavni programi: arkadne igre, igre za tablu, strategije itd."
-
-#: ../../share/compssUsers:999
-msgid ""
-"Set of tools to read and send mail and news (pine, mutt, tin..) and to "
-"browse the Web"
-msgstr ""
-"Skup alata za Ĩitanje i slanje poÅte i news-a (pine, mutt, tin...) i "
-"pregledanje Weba"
-
-#: ../../share/compssUsers:999
-msgid "Archiving, emulators, monitoring"
-msgstr "Arhiviranje, emulatori, nadzor"
-
-#: ../../share/compssUsers:999
-msgid "Personal Finance"
-msgstr "LiĨne finansije"
-
-#: ../../share/compssUsers:999
-msgid ""
-"A graphical environment with user-friendly set of applications and desktop "
-"tools"
-msgstr ""
-"GrafiĨki okoliŠsa skupom korisniĨki orjentisanih aplikacija i alata za "
-"radnu povrÅinu"
-
-#: ../../share/compssUsers:999
-msgid "Clients for different protocols including ssh"
-msgstr "Klijenti za razne protokole ukljuĨujući ssh"
-
-#: ../../share/compssUsers:999
-msgid "Internet gateway"
-msgstr "Internet gateway"
-
-#: ../../share/compssUsers:999
-msgid "Sound and video playing/editing programs"
-msgstr "Programi za pregled i editovanje zvuka i videa"
-
-#: ../../share/compssUsers:999
-msgid "Other Graphical Desktops"
-msgstr "Ostale grafiĨke okoline"
-
-#: ../../share/compssUsers:999
-msgid "Editors, shells, file tools, terminals"
-msgstr "Editori, ljuske, datoteĨni alati, terminali"
-
-#: ../../share/compssUsers:999
-msgid "Programs to manage your finance, such as gnucash"
-msgstr "Programi za upravljanje vaÅim finansijama, kao Åto je gnucash"
-
-#: ../../share/compssUsers:999
-msgid "Personal Information Management"
-msgstr "Upravljanje liĨnim informacijama"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - CD Burning"
-msgstr "Multimedija - Prženje CDa"
-
-#: ../../share/compssUsers:999
-msgid "Scientific Workstation"
-msgstr "Znanstvena radna stanica"
-
-#~ msgid "About"
-#~ msgstr "O programu"
-
-#~ msgid " Help "
-#~ msgstr " Pomoć "
-
-#~ msgid "-adobe-utopia-medium-r-normal-*-12-*-*-*-p-*-iso8859-*,*-r-*"
-#~ msgstr "-adobe-utopia-medium-r-normal-*-12-*-*-*-p-*-iso8859-2,*-r-*"
-
-#~ msgid ""
-#~ "Can't access kernel modules corresponding to your kernel (file %s is "
-#~ "missing)"
-#~ msgstr ""
-#~ "Ne mogu pristupiti kernel modulima koji odgovaraju vaÅem kernelu "
-#~ "(nedostaje datoteka %s)"
-
-#~ msgid "$f-$g %s)"
-#~ msgstr "$f-$g %s)"
-
-#~ msgid "None"
-#~ msgstr "Nijedan"
-
-#~ msgid "Choose a default printer!"
-#~ msgstr "Izaberite default ÅtampaĨ!"
-
-#~ msgid ""
-#~ "With remote CUPS servers, you do not have to configure any printer here; "
-#~ "CUPS servers inform your machine automatically about their printers. All "
-#~ "printers known to your machine currently are listed in the \"Default "
-#~ "printer\" field. Choose the default printer for your machine there and "
-#~ "click the \"Apply/Re-read printers\" button. Click the same button to "
-#~ "refresh the list (it can take up to 30 seconds after the start of CUPS "
-#~ "until all remote printers are visible). When your CUPS server is in a "
-#~ "different network, you have to give the CUPS server IP address and "
-#~ "optionally the port number to get the printer information from the "
-#~ "server, otherwise leave these fields blank."
-#~ msgstr ""
-#~ "Sa udaljenim CUPS serverom, ne morate podeÅavati nijedan\n"
-#~ "ÅtampaĨ ovdje; CUPS serveri obavjeÅtavaju vaÅ raĨunar automatski\n"
-#~ "o svojim ÅtampaĨima. Svi ÅtampaĨi koji su trenutno poznati vaÅem\n"
-#~ "raĨunaru su izlistani u polju \"Podrazumjevani ÅtampaĨ\". Izaberite "
-#~ "podrazumjevani\n"
-#~ "ÅtampaĨ za vaÅ raĨunar ovdje i kliknite na dugme \"Primjeni/Ponovo\n"
-#~ "proĨitaj ÅtampaĨe\". Kliknite na isto dugme za osvježavanje liste (može\n"
-#~ "trajati do 30 sekundi nakon pokretanja CUPSa dok svi udaljeni ÅtampaĨi\n"
-#~ "ne postanu vidljivi). Kada je vaŠCUPS server u razliĨitoj mreži, morate "
-#~ "dati\n"
-#~ "IP adresu CUPS servera i eventualno broj porta kako bi se dobavile "
-#~ "informacije\n"
-#~ "o ÅtampaĨima sa servera, inaĨe ostavite ova polja praznim."
-
-#~ msgid "Apply/Re-read printers"
-#~ msgstr "Primjeni/Ponovo proĨitaj ÅtampaĨe"
-
-#~ msgid "Configure printing system"
-#~ msgstr "PodeÅavanje sistema Åtampe"
diff --git a/perl-install/share/po/ca.po b/perl-install/share/po/ca.po
deleted file mode 100644
index 0663d463f..000000000
--- a/perl-install/share/po/ca.po
+++ /dev/null
@@ -1,14978 +0,0 @@
-# drakX translation to Catalan
-# Copyright (C) 1999 Free Software Foundation, Inc.
-# Copyright (c) 1999 MandrakeSoft
-# Copyright (c) 1999-2001 Softcatalą
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: DrakX VERSION\n"
-"POT-Creation-Date: 2002-03-11 18:29+0100\n"
-"PO-Revision-Date: 2001-04-10 23:29+0200\n"
-"Last-Translator: Softcatalą <traddrake@softcatala.org>\n"
-"Language-Team: Catalan\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../Xconfigurator.pm_.c:242
-msgid "Configure all heads independently"
-msgstr "Configura tots els capēals independentment"
-
-#: ../../Xconfigurator.pm_.c:243
-msgid "Use Xinerama extension"
-msgstr "Utilitza l'extensió Xinerama"
-
-#: ../../Xconfigurator.pm_.c:246
-#, c-format
-msgid "Configure only card \"%s\" (%s)"
-msgstr "Configura només la targeta \"%s\" (%s)"
-
-#: ../../Xconfigurator.pm_.c:249
-msgid "Multi-head configuration"
-msgstr "Configuració Multi-head"
-
-#: ../../Xconfigurator.pm_.c:250
-msgid ""
-"Your system support multiple head configuration.\n"
-"What do you want to do?"
-msgstr ""
-"El vostre sistema permet l'śs d'una configuració de mśltiples capēals.\n"
-"Quč voleu fer?"
-
-#: ../../Xconfigurator.pm_.c:261
-msgid "Graphic card"
-msgstr "Targeta grąfica"
-
-#: ../../Xconfigurator.pm_.c:262
-msgid "Select a graphic card"
-msgstr "Seleccioneu una targeta grąfica"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "Choose a X server"
-msgstr "Escolliu un servidor X"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "X server"
-msgstr "Servidor X"
-
-#: ../../Xconfigurator.pm_.c:293
-#, fuzzy
-msgid "Choose a X driver"
-msgstr "Escolliu un servidor X"
-
-#: ../../Xconfigurator.pm_.c:293
-#, fuzzy
-msgid "X driver"
-msgstr "Servidor X"
-
-#: ../../Xconfigurator.pm_.c:360 ../../Xconfigurator.pm_.c:366
-#: ../../Xconfigurator.pm_.c:416 ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s"
-msgstr "XFree %s"
-
-#: ../../Xconfigurator.pm_.c:363
-msgid "Which configuration of XFree do you want to have?"
-msgstr "Quina configuració de l'XFree voleu tenir?"
-
-#: ../../Xconfigurator.pm_.c:374
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"La vostra targeta pot tenir acceleració 3D de maquinari, perņ només amb "
-"l'Xfree %s.\n"
-"L'XFree %s, que pot tenir un suport millor en 2D, suporta la vostra targeta."
-
-#: ../../Xconfigurator.pm_.c:376 ../../Xconfigurator.pm_.c:409
-#, c-format
-msgid "Your card can have 3D hardware acceleration support with XFree %s."
-msgstr ""
-"La vostra targeta pot tenir acceleració 3D de maquinari amb l'Xfree %s."
-
-#: ../../Xconfigurator.pm_.c:378 ../../Xconfigurator.pm_.c:411
-#: ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s with 3D hardware acceleration"
-msgstr "Xfree %s amb acceleració 3D de maquinari"
-
-#: ../../Xconfigurator.pm_.c:386 ../../Xconfigurator.pm_.c:400
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER."
-msgstr ""
-"La vostra targeta pot tenir acceleració 3D de maquinari amb l'Xfree %s,\n"
-"TINGUEU EN COMPTE QUE ES TRACTA D'UN SUPORT EXPERIMENTAL; L'ORDINADOR ES POT "
-"PENJAR."
-
-#: ../../Xconfigurator.pm_.c:388 ../../Xconfigurator.pm_.c:402
-#, c-format
-msgid "XFree %s with EXPERIMENTAL 3D hardware acceleration"
-msgstr "XFree %s amb acceleració 3D de maquinari EXPERIMENTAL"
-
-#: ../../Xconfigurator.pm_.c:397
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"La vostra targeta pot tenir acceleració 3D de maquinari, perņ només amb "
-"l'Xfree %s,\n"
-"TINGUEU EN COMPTE QUE ES TRACTA D'UN SUPORT EXPERIMENTAL; L'ORDINADOR ES POT "
-"PENJAR.\n"
-"L'XFree %s, que pot tenir un suport millor en 2D, suporta la vostra targeta."
-
-#: ../../Xconfigurator.pm_.c:417
-msgid "Xpmac (installation display driver)"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:421
-msgid "XFree configuration"
-msgstr "Configuració de l'XFree"
-
-#: ../../Xconfigurator.pm_.c:496
-msgid "Select the memory size of your graphic card"
-msgstr "Seleccioneu la mida de memņria de la vostra targeta grąfica"
-
-#: ../../Xconfigurator.pm_.c:550
-msgid "Choose options for server"
-msgstr "Escolliu les opcions per al servidor"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Choose a monitor"
-msgstr "Escolliu un monitor"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Monitor"
-msgstr "Monitor"
-
-#: ../../Xconfigurator.pm_.c:577
-msgid ""
-"The two critical parameters are the vertical refresh rate, which is the "
-"rate\n"
-"at which the whole screen is refreshed, and most importantly the horizontal\n"
-"sync rate, which is the rate at which scanlines are displayed.\n"
-"\n"
-"It is VERY IMPORTANT that you do not specify a monitor type with a sync "
-"range\n"
-"that is beyond the capabilities of your monitor: you may damage your "
-"monitor.\n"
-" If in doubt, choose a conservative setting."
-msgstr ""
-"Els dos parąmetres més importants son la velocitat de refresc vertical, que\n"
-"és la velocitat a quč es refresca tota la pantalla, i el més important, la\n"
-"velocitat de sincronització horitzontal, que és la velocitat a quč es\n"
-"visualitzen les lķnies d'exploració.\n"
-"\n"
-"És MOLT IMPORTANT que no especifiqueu un tipus de monitor amb un abast\n"
-"de sincronització superior a les possibilitats del vostre monitor, perquč\n"
-"el podrķeu fer malbé.\n"
-"En cas de dubte, sigueu conservador amb aquest parąmetre."
-
-#: ../../Xconfigurator.pm_.c:584
-msgid "Horizontal refresh rate"
-msgstr "Velocitat de refresc horitzontal"
-
-#: ../../Xconfigurator.pm_.c:585
-msgid "Vertical refresh rate"
-msgstr "Velocitat de refresc vertical"
-
-#: ../../Xconfigurator.pm_.c:622
-msgid "Monitor not configured"
-msgstr "El monitor no estą configurat"
-
-#: ../../Xconfigurator.pm_.c:625
-msgid "Graphic card not configured yet"
-msgstr "La targeta grąfica encara no estą configurada"
-
-#: ../../Xconfigurator.pm_.c:628
-msgid "Resolutions not chosen yet"
-msgstr "Encara no s'han escollit les resolucions"
-
-#: ../../Xconfigurator.pm_.c:646
-msgid "Do you want to test the configuration?"
-msgstr "Voleu comprovar la configuració?"
-
-#: ../../Xconfigurator.pm_.c:650
-msgid "Warning: testing this graphic card may freeze your computer"
-msgstr ""
-"Avķs: la comprovació d'aquesta targeta grąfica pot penjar-vos l'ordinador"
-
-#: ../../Xconfigurator.pm_.c:653
-msgid "Test of the configuration"
-msgstr "Comprova la configuració"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid ""
-"\n"
-"try to change some parameters"
-msgstr ""
-"\n"
-"intenteu canviar alguns parąmetres"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid "An error has occurred:"
-msgstr "S'ha produļt un error:"
-
-#: ../../Xconfigurator.pm_.c:731
-#, c-format
-msgid "Leaving in %d seconds"
-msgstr "Sortida en %d segons"
-
-#: ../../Xconfigurator.pm_.c:742
-msgid "Is this the correct setting?"
-msgstr "És aquest el parąmetre corrcte?"
-
-#: ../../Xconfigurator.pm_.c:751
-msgid "An error has occurred, try to change some parameters"
-msgstr "S'ha produļt un error, intenteu canviar alguns parąmetres"
-
-#: ../../Xconfigurator.pm_.c:822
-msgid "Resolution"
-msgstr "Resolució"
-
-#: ../../Xconfigurator.pm_.c:874
-msgid "Choose the resolution and the color depth"
-msgstr "Escolliu la resolució i la profunditat de color"
-
-#: ../../Xconfigurator.pm_.c:876
-#, c-format
-msgid "Graphic card: %s"
-msgstr "Targeta grąfica: %s"
-
-#: ../../Xconfigurator.pm_.c:877
-#, c-format
-msgid "XFree86 server: %s"
-msgstr "Servidor xFree86: %s"
-
-#: ../../Xconfigurator.pm_.c:891 ../../diskdrake/interactive.pm_.c:259
-#: ../../install_steps_interactive.pm_.c:208
-msgid "More"
-msgstr "Més"
-
-#: ../../Xconfigurator.pm_.c:891 ../../install_gtk.pm_.c:84
-#: ../../install_steps_gtk.pm_.c:328 ../../interactive.pm_.c:127
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_http.pm_.c:104
-#: ../../interactive_newt.pm_.c:170 ../../interactive_stdio.pm_.c:141
-#: ../../interactive_stdio.pm_.c:142 ../../my_gtk.pm_.c:686
-#: ../../my_gtk.pm_.c:1019 ../../my_gtk.pm_.c:1041
-#: ../../standalone/drakbackup_.c:2298 ../../standalone/drakbackup_.c:2369
-#: ../../standalone/drakbackup_.c:2385
-msgid "Ok"
-msgstr "D'acord"
-
-#: ../../Xconfigurator.pm_.c:893 ../../network/netconnect.pm_.c:169
-#: ../../printerdrake.pm_.c:2470 ../../standalone/draknet_.c:275
-#: ../../standalone/draknet_.c:278
-msgid "Expert Mode"
-msgstr "Mode expert"
-
-#: ../../Xconfigurator.pm_.c:894
-msgid "Show all"
-msgstr "Mostra'ls tots"
-
-#: ../../Xconfigurator.pm_.c:939
-msgid "Resolutions"
-msgstr "Resolucions"
-
-#: ../../Xconfigurator.pm_.c:1509
-#, c-format
-msgid "Keyboard layout: %s\n"
-msgstr "Disposició del teclat: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1510
-#, c-format
-msgid "Mouse type: %s\n"
-msgstr "Tipus de ratolķ: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1511
-#, c-format
-msgid "Mouse device: %s\n"
-msgstr "Dispositiu del ratolķ: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1512
-#, c-format
-msgid "Monitor: %s\n"
-msgstr "Monitor: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1513
-#, c-format
-msgid "Monitor HorizSync: %s\n"
-msgstr "Sincronització horitzontal del monitor: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1514
-#, c-format
-msgid "Monitor VertRefresh: %s\n"
-msgstr "Refresc vertical del monitor: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1515
-#, c-format
-msgid "Graphic card: %s\n"
-msgstr "Targeta grąfica: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1516
-#, fuzzy, c-format
-msgid "Graphic card identification: %s\n"
-msgstr "Targeta grąfica: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1517
-#, c-format
-msgid "Graphic memory: %s kB\n"
-msgstr "Memņria grąfica: %s kB\n"
-
-#: ../../Xconfigurator.pm_.c:1519
-#, c-format
-msgid "Color depth: %s\n"
-msgstr "Profunditat del color: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1520
-#, c-format
-msgid "Resolution: %s\n"
-msgstr "Resolució: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1522
-#, c-format
-msgid "XFree86 server: %s\n"
-msgstr "Servidor xFree86: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1523
-#, c-format
-msgid "XFree86 driver: %s\n"
-msgstr "Controlador de l'xFree86: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1541
-msgid "Preparing X-Window configuration"
-msgstr "S'estą preparant la configuració de l'X-Window"
-
-#: ../../Xconfigurator.pm_.c:1561
-msgid "What do you want to do?"
-msgstr "Quč voleu fer?"
-
-#: ../../Xconfigurator.pm_.c:1566
-msgid "Change Monitor"
-msgstr "Canvia el monitor"
-
-#: ../../Xconfigurator.pm_.c:1567
-msgid "Change Graphic card"
-msgstr "Canvia la targeta grąfica"
-
-#: ../../Xconfigurator.pm_.c:1570
-msgid "Change Server options"
-msgstr "Canvia les opcions del servidor"
-
-#: ../../Xconfigurator.pm_.c:1571
-msgid "Change Resolution"
-msgstr "Canvia la resolució"
-
-#: ../../Xconfigurator.pm_.c:1572
-msgid "Show information"
-msgstr "Mostra la informació"
-
-#: ../../Xconfigurator.pm_.c:1573
-msgid "Test again"
-msgstr "Torna-ho a comprovar"
-
-#: ../../Xconfigurator.pm_.c:1574 ../../printerdrake.pm_.c:2473
-#: ../../standalone/logdrake_.c:225
-msgid "Quit"
-msgstr "Surt"
-
-#: ../../Xconfigurator.pm_.c:1582
-#, c-format
-msgid ""
-"Keep the changes?\n"
-"Current configuration is:\n"
-"\n"
-"%s"
-msgstr ""
-"Voleu conservar els canvis?La configuració actual és:\n"
-"\n"
-"%s"
-
-#: ../../Xconfigurator.pm_.c:1603
-msgid "X at startup"
-msgstr "X a l'inici"
-
-#: ../../Xconfigurator.pm_.c:1604
-msgid ""
-"I can set up your computer to automatically start X upon booting.\n"
-"Would you like X to start when you reboot?"
-msgstr ""
-"Puc configurar el vostre ordinador de manera que executi X automąticament "
-"durant l'arrencada.\n"
-"Voleu que X s'iniciļ quan torneu a arrencar l'ordinador?"
-
-#: ../../Xconfigurator.pm_.c:1610
-#, c-format
-msgid "Please relog into %s to activate the changes"
-msgstr "Si us plau, torneu a entrar a %s per activar els canvis"
-
-#: ../../Xconfigurator.pm_.c:1625
-msgid "Please log out and then use Ctrl-Alt-BackSpace"
-msgstr "Si us plau, sortiu i utilitzeu Ctrl-Alt-Enrere"
-
-#: ../../Xconfigurator_consts.pm_.c:6
-msgid "256 colors (8 bits)"
-msgstr "256 colors (8 bits)"
-
-#: ../../Xconfigurator_consts.pm_.c:7
-msgid "32 thousand colors (15 bits)"
-msgstr "32.768 colors (15 bits)"
-
-#: ../../Xconfigurator_consts.pm_.c:8
-msgid "65 thousand colors (16 bits)"
-msgstr "65.536 colors (16 bits)"
-
-#: ../../Xconfigurator_consts.pm_.c:9
-msgid "16 million colors (24 bits)"
-msgstr "16 milions de colors (24 bits)"
-
-#: ../../Xconfigurator_consts.pm_.c:10
-msgid "4 billion colors (32 bits)"
-msgstr "4.294 milions de colors (32 bits)"
-
-#: ../../Xconfigurator_consts.pm_.c:113
-msgid "256 kB"
-msgstr "256 kB"
-
-#: ../../Xconfigurator_consts.pm_.c:114
-msgid "512 kB"
-msgstr "512 kB"
-
-#: ../../Xconfigurator_consts.pm_.c:115
-msgid "1 MB"
-msgstr "1 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:116
-msgid "2 MB"
-msgstr "2 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:117
-msgid "4 MB"
-msgstr "4 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:118
-msgid "8 MB"
-msgstr "8 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:119
-#, fuzzy
-msgid "16 MB"
-msgstr "1 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:120
-#, fuzzy
-msgid "32 MB"
-msgstr "2 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:121
-#, fuzzy
-msgid "64 MB or more"
-msgstr "16 MB o més"
-
-#: ../../Xconfigurator_consts.pm_.c:129
-msgid "Standard VGA, 640x480 at 60 Hz"
-msgstr "VGA estąndard, 640x480 a 60 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:130
-msgid "Super VGA, 800x600 at 56 Hz"
-msgstr "Super VGA, 800x600 a 60 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:131
-msgid "8514 Compatible, 1024x768 at 87 Hz interlaced (no 800x600)"
-msgstr "Compatible 8514, 1024x768 a 87 Hz entrellaēada (no 800x600)"
-
-#: ../../Xconfigurator_consts.pm_.c:132
-msgid "Super VGA, 1024x768 at 87 Hz interlaced, 800x600 at 56 Hz"
-msgstr "Super VGA, 1024x768 a 87 Hz entrellaēada, 800x600 a 56 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:133
-msgid "Extended Super VGA, 800x600 at 60 Hz, 640x480 at 72 Hz"
-msgstr "Super VGA ampliada, 800x600 a 60 Hz, 640x480 a 72 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:134
-msgid "Non-Interlaced SVGA, 1024x768 at 60 Hz, 800x600 at 72 Hz"
-msgstr "SVGA no entrellaēada, 1024x768 a 60 Hz, 800x600 a 72 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:135
-msgid "High Frequency SVGA, 1024x768 at 70 Hz"
-msgstr "SVGA d'alta freqüčncia, 1024x768 a 70 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:136
-msgid "Multi-frequency that can do 1280x1024 at 60 Hz"
-msgstr "Multi-freqüčncia que pot fer 1280x1024 a 60 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:137
-msgid "Multi-frequency that can do 1280x1024 at 74 Hz"
-msgstr "Multi-freqüčncia que pot fer 1280x1024 a 74 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:138
-msgid "Multi-frequency that can do 1280x1024 at 76 Hz"
-msgstr "Multi-freqüčncia que pot fer 1280x1024 a 76 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:139
-msgid "Monitor that can do 1600x1200 at 70 Hz"
-msgstr "Monitor que pot fer 1600x1200 a 70 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:140
-msgid "Monitor that can do 1600x1200 at 76 Hz"
-msgstr "Monitor que pot fer 1600x1200 a 76 Hz"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141
-msgid "First sector of boot partition"
-msgstr "Primer sector de la partició d'arrencada"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141 ../../any.pm_.c:218
-msgid "First sector of drive (MBR)"
-msgstr "Primer sector de la unitat (MBR)"
-
-#: ../../any.pm_.c:120
-msgid "SILO Installation"
-msgstr "Instal·lació del SILO"
-
-#: ../../any.pm_.c:121 ../../any.pm_.c:134
-msgid "Where do you want to install the bootloader?"
-msgstr "On voleu instal·lar el carregador d'arrencada?"
-
-#: ../../any.pm_.c:133
-msgid "LILO/grub Installation"
-msgstr "Instal·lació del LILO/grub"
-
-#: ../../any.pm_.c:145 ../../any.pm_.c:159
-msgid "SILO"
-msgstr "SILO"
-
-#: ../../any.pm_.c:147
-msgid "LILO with text menu"
-msgstr "LILO amb menś de text"
-
-#: ../../any.pm_.c:148 ../../any.pm_.c:159
-msgid "LILO with graphical menu"
-msgstr "LILO amb menś grąfic"
-
-#: ../../any.pm_.c:151
-msgid "Grub"
-msgstr "Grub"
-
-#: ../../any.pm_.c:155
-msgid "Boot from DOS/Windows (loadlin)"
-msgstr "Arrencada des de DOS/Windows (loadlin)"
-
-#: ../../any.pm_.c:157 ../../any.pm_.c:159
-msgid "Yaboot"
-msgstr "Yaboot"
-
-#: ../../any.pm_.c:166 ../../any.pm_.c:198
-msgid "Bootloader main options"
-msgstr "Opcions principals del carregador d'arrencada"
-
-#: ../../any.pm_.c:167 ../../any.pm_.c:199
-msgid "Bootloader to use"
-msgstr "Carregador d'arrencada a utilitzar"
-
-#: ../../any.pm_.c:169
-msgid "Bootloader installation"
-msgstr "Instal·lació del carregador d'arrencada"
-
-#: ../../any.pm_.c:171 ../../any.pm_.c:201
-msgid "Boot device"
-msgstr "Dispositiu d'arrencada"
-
-#: ../../any.pm_.c:172
-msgid "LBA (doesn't work on old BIOSes)"
-msgstr "LBA (no funciona en BIOS antics)"
-
-#: ../../any.pm_.c:173
-msgid "Compact"
-msgstr "Compacte"
-
-#: ../../any.pm_.c:173
-msgid "compact"
-msgstr "compacte"
-
-#: ../../any.pm_.c:174 ../../any.pm_.c:298
-msgid "Video mode"
-msgstr "Mode de vķdeo"
-
-#: ../../any.pm_.c:176
-msgid "Delay before booting default image"
-msgstr "Demora abans d'arrencar la imatge predeterminada"
-
-#: ../../any.pm_.c:178 ../../any.pm_.c:796
-#: ../../install_steps_interactive.pm_.c:1115 ../../network/modem.pm_.c:48
-#: ../../printerdrake.pm_.c:708 ../../printerdrake.pm_.c:806
-#: ../../standalone/draknet_.c:625
-msgid "Password"
-msgstr "Contrasenya"
-
-#: ../../any.pm_.c:179 ../../any.pm_.c:797
-#: ../../install_steps_interactive.pm_.c:1116
-msgid "Password (again)"
-msgstr "Contrasenya (un altre cop)"
-
-#: ../../any.pm_.c:180
-msgid "Restrict command line options"
-msgstr "Limita les opcions de la lķnia d'ordres"
-
-#: ../../any.pm_.c:180
-msgid "restrict"
-msgstr "limita"
-
-#: ../../any.pm_.c:182
-msgid "Clean /tmp at each boot"
-msgstr "Buida /tmp en cada arrencada"
-
-#: ../../any.pm_.c:183
-#, c-format
-msgid "Precise RAM size if needed (found %d MB)"
-msgstr "Mida exacta de la RAM, si cal (s'han trobat %d MB)"
-
-#: ../../any.pm_.c:185
-msgid "Enable multi profiles"
-msgstr "Habilita perfils mśltiples"
-
-#: ../../any.pm_.c:189
-msgid "Give the ram size in MB"
-msgstr "Introduļu la mida de la RAM en Mb"
-
-#: ../../any.pm_.c:191
-msgid ""
-"Option ``Restrict command line options'' is of no use without a password"
-msgstr ""
-"L'opció ``Limita les opcions de la lķnia d'ordres'' no té cap śs sense una "
-"contrasenya"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../diskdrake/interactive.pm_.c:1135
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "Please try again"
-msgstr "Si us plau, torneu-ho a intentar"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "The passwords do not match"
-msgstr "Les contrasenyes no coincideixen"
-
-#: ../../any.pm_.c:200
-msgid "Init Message"
-msgstr "Missatge d'inicialització"
-
-#: ../../any.pm_.c:202
-msgid "Open Firmware Delay"
-msgstr "Demora de firmware obert"
-
-#: ../../any.pm_.c:203
-msgid "Kernel Boot Timeout"
-msgstr "Temps mąxim d'arrencada del nucli"
-
-#: ../../any.pm_.c:204
-msgid "Enable CD Boot?"
-msgstr "Voleu habilitar l'arrencada des de CD?"
-
-#: ../../any.pm_.c:205
-msgid "Enable OF Boot?"
-msgstr "Voleu habilitar l'arrencada des d'OF?"
-
-#: ../../any.pm_.c:206
-msgid "Default OS?"
-msgstr "OS per defecte?"
-
-#: ../../any.pm_.c:240
-msgid ""
-"You decided to install the bootloader on a partition.\n"
-"This implies you already have a bootloader on the hard drive you boot (eg: "
-"System Commander).\n"
-"\n"
-"On which drive are you booting?"
-msgstr ""
-
-#: ../../any.pm_.c:255
-msgid ""
-"Here are the different entries.\n"
-"You can add some more or change the existing ones."
-msgstr ""
-"Aquestes són les diferents entrades.\n"
-"Podeu afegir-ne algunes més o canviar-ne les existents."
-
-#: ../../any.pm_.c:265 ../../standalone/drakbackup_.c:752
-#: ../../standalone/drakbackup_.c:861 ../../standalone/drakfont_.c:789
-#: ../../standalone/drakfont_.c:826
-msgid "Add"
-msgstr "Afegeix"
-
-#: ../../any.pm_.c:265 ../../any.pm_.c:784 ../../diskdrake/hd_gtk.pm_.c:153
-#: ../../diskdrake/removable.pm_.c:27 ../../diskdrake/smbnfs_gtk.pm_.c:86
-#: ../../interactive_http.pm_.c:153
-msgid "Done"
-msgstr "Fet"
-
-#: ../../any.pm_.c:265
-#, fuzzy
-msgid "Modify"
-msgstr "Modifica el RAID"
-
-#: ../../any.pm_.c:273
-msgid "Which type of entry do you want to add?"
-msgstr "Quin tipus d'entrada voleu afegir?"
-
-#: ../../any.pm_.c:274 ../../standalone/drakbackup_.c:895
-msgid "Linux"
-msgstr "Linux"
-
-#: ../../any.pm_.c:274
-msgid "Other OS (SunOS...)"
-msgstr "Un altre SO (SunOS...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (MacOS...)"
-msgstr "Un altre SO (MacOS...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (windows...)"
-msgstr "Un altre SO (Windows...)"
-
-#: ../../any.pm_.c:294
-msgid "Image"
-msgstr "Imatge"
-
-#: ../../any.pm_.c:295 ../../any.pm_.c:306
-msgid "Root"
-msgstr "Arrel"
-
-#: ../../any.pm_.c:296 ../../any.pm_.c:325
-msgid "Append"
-msgstr "Afegeix"
-
-#: ../../any.pm_.c:300
-msgid "Initrd"
-msgstr "Initrd"
-
-#: ../../any.pm_.c:301
-msgid "Read-write"
-msgstr "Lectura-escriptura"
-
-#: ../../any.pm_.c:308
-msgid "Table"
-msgstr "Taula"
-
-#: ../../any.pm_.c:309
-msgid "Unsafe"
-msgstr "No segur"
-
-#: ../../any.pm_.c:316 ../../any.pm_.c:321 ../../any.pm_.c:324
-msgid "Label"
-msgstr "Etiqueta"
-
-#: ../../any.pm_.c:318 ../../any.pm_.c:329
-msgid "Default"
-msgstr "Predeterminat"
-
-#: ../../any.pm_.c:326
-msgid "Initrd-size"
-msgstr "Initrd-size"
-
-#: ../../any.pm_.c:328
-msgid "NoVideo"
-msgstr "NoVideo"
-
-#: ../../any.pm_.c:336
-msgid "Remove entry"
-msgstr "Elimina l'entrada"
-
-#: ../../any.pm_.c:339
-msgid "Empty label not allowed"
-msgstr "No es permet una etiqueta buida"
-
-#: ../../any.pm_.c:340
-msgid "You must specify a kernel image"
-msgstr ""
-
-#: ../../any.pm_.c:340
-#, fuzzy
-msgid "You must specify a root partition"
-msgstr "Heu de tenir una partició d'intercanvi"
-
-#: ../../any.pm_.c:341
-msgid "This label is already used"
-msgstr "Aquesta etiqueta ja estą en śs"
-
-# #msgid "Found %s %s interfaces"
-# #msgstr "S'han trobat interfķcies %2$s %1$s"
-#: ../../any.pm_.c:656
-#, fuzzy, c-format
-msgid "Found %s %s interfaces"
-msgstr "S'han trobat interfķcies %2$s %1$s"
-
-#: ../../any.pm_.c:657
-msgid "Do you have another one?"
-msgstr "En teniu una altra?"
-
-#: ../../any.pm_.c:658
-#, c-format
-msgid "Do you have any %s interfaces?"
-msgstr "Teniu alguna interfķcie %s?"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:832 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "No"
-msgstr "No"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:831 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "Yes"
-msgstr "Sķ"
-
-#: ../../any.pm_.c:661
-msgid "See hardware info"
-msgstr "Mira la informació del maquinari"
-
-#. -PO: the first %s is the card type (scsi, network, sound,...)
-#. -PO: the second is the vendor+model name
-#: ../../any.pm_.c:695
-#, c-format
-msgid "Installing driver for %s card %s"
-msgstr "S'estą instal·lant el programa de control per a la targeta %s %s"
-
-#: ../../any.pm_.c:696
-#, c-format
-msgid "(module %s)"
-msgstr "(mņdul %s)"
-
-#. -PO: the %s is the driver type (scsi, network, sound,...)
-#: ../../any.pm_.c:707
-#, c-format
-msgid "Which %s driver should I try?"
-msgstr "Quin programa de control %s he de provar?"
-
-#: ../../any.pm_.c:715
-#, c-format
-msgid ""
-"In some cases, the %s driver needs to have extra information to work\n"
-"properly, although it normally works fine without. Would you like to "
-"specify\n"
-"extra options for it or allow the driver to probe your machine for the\n"
-"information it needs? Occasionally, probing will hang a computer, but it "
-"should\n"
-"not cause any damage."
-msgstr ""
-"En alguns casos, el programa de control %s necessita informació addicional\n"
-"per funcionar correctament, tot i que normalment funciona bé sense ella.\n"
-"Voleu especificar opcions addicionals o deixar que el programa de control\n"
-"cerqui al vostre ordinador la informació que necessita? Aquesta recerca\n"
-"podria blocar l'ordinador, perņ aixņ no causaria cap dany."
-
-#: ../../any.pm_.c:720
-msgid "Autoprobe"
-msgstr "Exploració automątica"
-
-#: ../../any.pm_.c:720
-msgid "Specify options"
-msgstr "Especifica les opcions"
-
-#: ../../any.pm_.c:725
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Note that any address should be entered with the prefix 0x like '0x123'"
-msgstr ""
-
-#: ../../any.pm_.c:731
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Options are in format ``name=value name2=value2 ...''.\n"
-"For instance, ``io=0x300 irq=7''"
-msgstr ""
-"Ara podeu proporcionar les seves opcions per al mņdul %s.\n"
-"Les opcions estan amb el format ``nom=valor nom2=valor2 ...''.\n"
-"Per exemple, ``io=0x300 irq=7''"
-
-#: ../../any.pm_.c:734
-msgid "Module options:"
-msgstr "Opcions del mņdul:"
-
-#: ../../any.pm_.c:745
-#, c-format
-msgid ""
-"Loading module %s failed.\n"
-"Do you want to try again with other parameters?"
-msgstr ""
-"Ha fallat la cąrrega del mņdul %s.\n"
-"Voleu tornar-ho a intentar amb altres parąmetres?"
-
-#: ../../any.pm_.c:761
-msgid "access to X programs"
-msgstr ""
-
-#: ../../any.pm_.c:762
-msgid "access to rpm tools"
-msgstr ""
-
-#: ../../any.pm_.c:763
-msgid "allow \"su\""
-msgstr ""
-
-#: ../../any.pm_.c:764
-msgid "access to administrative files"
-msgstr ""
-
-#: ../../any.pm_.c:769
-#, c-format
-msgid "(already added %s)"
-msgstr "(ja s'ha afegit %s)"
-
-#: ../../any.pm_.c:774
-msgid "This password is too simple"
-msgstr "Aquesta contrasenya és massa senzilla"
-
-#: ../../any.pm_.c:775
-msgid "Please give a user name"
-msgstr "Si us plau, introduļu un nom d'usuari"
-
-#: ../../any.pm_.c:776
-msgid ""
-"The user name must contain only lower cased letters, numbers, `-' and `_'"
-msgstr ""
-"El nom d'usuari només pot contenir lletres en minśscula, nśmeros, `-' i `_'"
-
-#: ../../any.pm_.c:777
-msgid "This user name is already added"
-msgstr "Aquest nom d'usuari ja s'ha afegit"
-
-#: ../../any.pm_.c:781
-msgid "Add user"
-msgstr "Afegeix un usuari"
-
-#: ../../any.pm_.c:782
-#, c-format
-msgid ""
-"Enter a user\n"
-"%s"
-msgstr ""
-"Introduļu un usuari\n"
-"%s"
-
-#: ../../any.pm_.c:783
-msgid "Accept user"
-msgstr "Accepta l'usuari"
-
-#: ../../any.pm_.c:794
-msgid "Real name"
-msgstr "Nom real"
-
-#: ../../any.pm_.c:795 ../../printerdrake.pm_.c:707
-#: ../../printerdrake.pm_.c:805
-msgid "User name"
-msgstr "Nom d'usuari"
-
-#: ../../any.pm_.c:798
-msgid "Shell"
-msgstr "Shell"
-
-#: ../../any.pm_.c:800
-msgid "Icon"
-msgstr "Icona"
-
-#: ../../any.pm_.c:828
-msgid "Autologin"
-msgstr "Entrada automątica"
-
-#: ../../any.pm_.c:829
-#, fuzzy
-msgid ""
-"I can set up your computer to automatically log on one user.\n"
-"Do you want to use this feature?"
-msgstr ""
-"Puc configurar el vostre ordinador de manera que entri automąticament amb un "
-"nom d'usuari.\n"
-"Si no voleu utilitzar aquesta caracterķstica, feu clic al botó Cancel·la."
-
-#: ../../any.pm_.c:833
-msgid "Choose the default user:"
-msgstr "Escolliu l'usuari per omissió:"
-
-#: ../../any.pm_.c:834
-msgid "Choose the window manager to run:"
-msgstr "Escolliu el gestor de finestres per executar:"
-
-#: ../../any.pm_.c:849
-#, fuzzy
-msgid "Please choose a language to use."
-msgstr "Si us plau, trieu un idioma per utilitzar."
-
-#: ../../any.pm_.c:851
-msgid "You can choose other languages that will be available after install"
-msgstr ""
-"Podeu seleccionar altres idiomes, que quedaran disponibles després de la "
-"instal·lació"
-
-#: ../../any.pm_.c:863 ../../install_steps_interactive.pm_.c:719
-#: ../../standalone/drakxtv_.c:54
-msgid "All"
-msgstr "Tots"
-
-#: ../../any.pm_.c:955
-#, fuzzy
-msgid "Allow all users"
-msgstr "Afegeix un usuari"
-
-#: ../../any.pm_.c:955 ../../install_steps_interactive.pm_.c:521
-msgid "Custom"
-msgstr "Personalitzada"
-
-#: ../../any.pm_.c:955
-#, fuzzy
-msgid "No sharing"
-msgstr "S'estą iniciant el CUPS"
-
-#: ../../any.pm_.c:965 ../../network/smbnfs.pm_.c:45
-#, fuzzy, c-format
-msgid "The package %s needs to be installed. Do you want to install it?"
-msgstr "Quins paquets voleu instal·lar"
-
-#: ../../any.pm_.c:968
-msgid "You can export using NFS or Samba. Which one do you want"
-msgstr ""
-
-#: ../../any.pm_.c:976 ../../network/smbnfs.pm_.c:49
-#, c-format
-msgid "Mandatory package %s is missing"
-msgstr ""
-
-#: ../../any.pm_.c:982
-msgid ""
-"Do you want to allow users to export some directories in their home?\n"
-"Allowing this will permit users to simply click on \"Share\" in konqueror "
-"and nautilus.\n"
-"\n"
-"\"Custom\" permit a per-user granularity.\n"
-msgstr ""
-
-#: ../../any.pm_.c:996 ../../bootlook.pm_.c:161
-#: ../../diskdrake/smbnfs_gtk.pm_.c:85 ../../install_steps_gtk.pm_.c:464
-#: ../../install_steps_gtk.pm_.c:522 ../../install_steps_interactive.pm_.c:594
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_stdio.pm_.c:141
-#: ../../my_gtk.pm_.c:687 ../../my_gtk.pm_.c:690 ../../my_gtk.pm_.c:1019
-#: ../../network/netconnect.pm_.c:47 ../../printerdrake.pm_.c:1586
-#: ../../standalone/drakautoinst_.c:204 ../../standalone/drakbackup_.c:2264
-#: ../../standalone/drakbackup_.c:2289 ../../standalone/drakbackup_.c:2310
-#: ../../standalone/drakbackup_.c:2331 ../../standalone/drakbackup_.c:2349
-#: ../../standalone/drakbackup_.c:2397 ../../standalone/drakbackup_.c:2417
-#: ../../standalone/drakbackup_.c:2436 ../../standalone/drakfont_.c:767
-#: ../../standalone/drakgw_.c:721 ../../standalone/draknet_.c:116
-#: ../../standalone/draknet_.c:148 ../../standalone/draknet_.c:290
-#: ../../standalone/draknet_.c:538 ../../standalone/draknet_.c:680
-#: ../../standalone/logdrake_.c:225 ../../standalone/logdrake_.c:512
-#: ../../standalone/tinyfirewall_.c:65
-msgid "Cancel"
-msgstr "Cancel·la"
-
-#: ../../any.pm_.c:996
-msgid "Launch userdrake"
-msgstr ""
-
-#: ../../any.pm_.c:998
-msgid ""
-"The per-user sharing uses the group \"fileshare\". \n"
-"You can use userdrake to add a user in this group."
-msgstr ""
-
-#: ../../any.pm_.c:1035
-msgid "Welcome To Crackers"
-msgstr "Benvinguts, crackers"
-
-#: ../../any.pm_.c:1036
-msgid "Poor"
-msgstr "Pobre"
-
-#: ../../any.pm_.c:1037 ../../mouse.pm_.c:31
-msgid "Standard"
-msgstr "Estąndard"
-
-#: ../../any.pm_.c:1038
-msgid "High"
-msgstr "Alt"
-
-#: ../../any.pm_.c:1039
-#, fuzzy
-msgid "Higher"
-msgstr "Alt"
-
-#: ../../any.pm_.c:1040
-msgid "Paranoid"
-msgstr "Paranoic"
-
-#: ../../any.pm_.c:1043
-msgid ""
-"This level is to be used with care. It makes your system more easy to use,\n"
-"but very sensitive: it must not be used for a machine connected to others\n"
-"or to the Internet. There is no password access."
-msgstr ""
-"Aquest nivell s'ha d'utilitzar amb cura. Fa el vostre sistema molt més "
-"fącil\n"
-"d'utilitzar, perņ també molt sensible: no s'ha d'utilitzar en un ordinador\n"
-"connectat a d'altres o a Internet. No s'hi accedeix mitjanēant contrasenya."
-
-#: ../../any.pm_.c:1046
-msgid ""
-"Password are now enabled, but use as a networked computer is still not "
-"recommended."
-msgstr ""
-"Ara, la contrasenya estą habilitada, perņ l'śs com a ordinador de xarxa "
-"segueix sense ser recomanable."
-
-#: ../../any.pm_.c:1047
-#, fuzzy
-msgid ""
-"This is the standard security recommended for a computer that will be used "
-"to connect to the Internet as a client."
-msgstr ""
-"Aquesta és la seguretat estąndard recomanada per a un ordinador que\n"
-"s'utilitzarą per connectar-se a Internet com a client. Ara hi ha "
-"comprovacions de seguretat."
-
-#: ../../any.pm_.c:1048
-msgid ""
-"There are already some restrictions, and more automatic checks are run every "
-"night."
-msgstr ""
-
-#: ../../any.pm_.c:1049
-#, fuzzy
-msgid ""
-"With this security level, the use of this system as a server becomes "
-"possible.\n"
-"The security is now high enough to use the system as a server which accept\n"
-"connections from many clients. Note: if your machine is only a client on the "
-"Internet, you should better choose a lower level."
-msgstr ""
-"Amb aquest nivell de seguretat, la utilització d'aquest sistema com a\n"
-"servidor esdevé possible.\n"
-"La seguretat és ara prou alta com per utilitzar el sistema com a servidor\n"
-"que accepti connexions de molts clients. "
-
-#: ../../any.pm_.c:1052
-#, fuzzy
-msgid ""
-"Based on the previous level, but the system is entirely closed.\n"
-"Security features are at their maximum."
-msgstr ""
-"Assumim les caracterķstiques del nivell 4, perņ ara el sistema estą\n"
-"totalment tancat.\n"
-"Les caracterķstiques de seguretat estan al mąxim."
-
-#: ../../any.pm_.c:1058
-msgid "Choose security level"
-msgstr "Escolliu el nivell de seguretat"
-
-#: ../../any.pm_.c:1061
-#, fuzzy
-msgid "Security level"
-msgstr "S'estą establint el nivell de seguretat"
-
-#: ../../any.pm_.c:1063
-#, fuzzy
-msgid "Use libsafe for servers"
-msgstr "Escolliu les opcions per al servidor"
-
-#: ../../any.pm_.c:1064
-msgid ""
-"A library which defends against buffer overflow and format string attacks."
-msgstr ""
-
-# NOTE: this message will be displayed at boot time; that is
-# only the ascii charset will be available on most machines
-# so use only 7bit for this message (and do transliteration or
-# leave it in English, as it is the best for your language)
-#
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#: ../../bootloader.pm_.c:355
-#, c-format
-msgid ""
-"Welcome to %s the operating system chooser!\n"
-"\n"
-"Choose an operating system in the list above or\n"
-"wait %d seconds for default boot.\n"
-"\n"
-msgstr ""
-"Benvingut al %s, el selector de sistema operatiu!\n"
-"\n"
-"Trieu un sistema operatiu de la lista superior, o espereu\n"
-"%d segons per arrencar en el sistema operatiu predeterminat.\n"
-"\n"
-
-# NOTE: this message will be displayed by grub at boot time; that is
-# using the BIOS font; that means cp437 charset on 99.99% of PC computers
-# out there. It is the nsuggested that for non latin languages an ascii
-# transliteration be used; or maybe the english text be used; as it is best
-#
-# The lines must fit on screen, aka length < 80
-# and only one line per string for the GRUB messages
-#
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:928
-msgid "Welcome to GRUB the operating system chooser!"
-msgstr "Benvingut al GRUB, el selector de sistema operatiu!"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:931
-#, c-format
-msgid "Use the %c and %c keys for selecting which entry is highlighted."
-msgstr ""
-"Utilitzeu les tecles %c i %c per seleccionar quina posició estą ressaltada."
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:934
-msgid "Press enter to boot the selected OS, 'e' to edit the"
-msgstr "Premeu Intro per arrencar el SO seleccionat, 'e' per editar les"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:937
-msgid "commands before booting, or 'c' for a command-line."
-msgstr "ordres prčvies a l'arrencada, o 'c' per obtenir una lķnia d'ordres."
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:940
-#, c-format
-msgid "The highlighted entry will be booted automatically in %d seconds."
-msgstr "La posició ressaltada arrencarą automąticament dintre de %d segons."
-
-#: ../../bootloader.pm_.c:944
-msgid "not enough room in /boot"
-msgstr "no hi ha prou espai a /boot"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#. -PO: so you may need to put them in English or in a different language if MS-windows doesn't exist in your language
-#: ../../bootloader.pm_.c:1044
-msgid "Desktop"
-msgstr "Escriptori"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#: ../../bootloader.pm_.c:1046
-msgid "Start Menu"
-msgstr "Menś Inici"
-
-#: ../../bootloader.pm_.c:1065
-#, fuzzy, c-format
-msgid "You can't install the bootloader on a %s partition\n"
-msgstr "On voleu instal·lar el carregador d'arrencada?"
-
-#: ../../bootlook.pm_.c:46
-msgid "no help implemented yet.\n"
-msgstr "encara no s'ha implementat cap ajuda.\n"
-
-#: ../../bootlook.pm_.c:62
-msgid "Boot Style Configuration"
-msgstr "Configuració del tipus d'arrencada"
-
-#: ../../bootlook.pm_.c:79 ../../standalone/logdrake_.c:101
-msgid "/_File"
-msgstr "/_Fitxer"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "/File/_Quit"
-msgstr "/Fitxer/_Surt"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "<control>Q"
-msgstr "<control>Q"
-
-#: ../../bootlook.pm_.c:91
-msgid "NewStyle Categorizing Monitor"
-msgstr "Monitor de categorització NewStyle"
-
-#: ../../bootlook.pm_.c:92
-msgid "NewStyle Monitor"
-msgstr "Monitor NewStyle"
-
-#: ../../bootlook.pm_.c:93
-msgid "Traditional Monitor"
-msgstr "Monitor tradicional"
-
-#: ../../bootlook.pm_.c:94
-msgid "Traditional Gtk+ Monitor"
-msgstr "Monitor Gtk+ tradicional"
-
-#: ../../bootlook.pm_.c:95
-msgid "Launch Aurora at boot time"
-msgstr "Executa l'Aurora durant l'arrencada"
-
-#: ../../bootlook.pm_.c:98
-msgid "Lilo/grub mode"
-msgstr "Mode LILO/Grub"
-
-#: ../../bootlook.pm_.c:98
-msgid "Yaboot mode"
-msgstr "Mode Yaboot"
-
-#: ../../bootlook.pm_.c:104
-#, fuzzy, c-format
-msgid ""
-"You are currently using %s as Boot Manager.\n"
-"Click on Configure to launch the setup wizard."
-msgstr ""
-"Benvingut a la utilitat de compartició de la connexió a Internet!\n"
-"\n"
-"%s\n"
-"\n"
-"Feu clic a Configura per executar l'auxiliar de configuració."
-
-#: ../../bootlook.pm_.c:106 ../../standalone/drakbackup_.c:1467
-#: ../../standalone/drakbackup_.c:1478 ../../standalone/drakgw_.c:715
-#: ../../standalone/tinyfirewall_.c:59
-msgid "Configure"
-msgstr "Configura"
-
-#: ../../bootlook.pm_.c:141
-msgid "System mode"
-msgstr "Mode de sistema"
-
-#: ../../bootlook.pm_.c:143
-msgid "Launch the X-Window system at start"
-msgstr "Executa el sistema X-Window en iniciar"
-
-#: ../../bootlook.pm_.c:148
-msgid "No, I don't want autologin"
-msgstr "No, no vull l'entrada automątica"
-
-#: ../../bootlook.pm_.c:150
-msgid "Yes, I want autologin with this (user, desktop)"
-msgstr "Sķ, vull l'entrada automątica amb aquest (usuari, escriptori)"
-
-#: ../../bootlook.pm_.c:160 ../../network/netconnect.pm_.c:102
-#: ../../standalone/drakbackup_.c:2441 ../../standalone/drakbackup_.c:3345
-#: ../../standalone/drakfont_.c:532 ../../standalone/drakfont_.c:655
-#: ../../standalone/drakfont_.c:719 ../../standalone/drakfont_.c:765
-#: ../../standalone/draknet_.c:109 ../../standalone/draknet_.c:141
-#: ../../standalone/draknet_.c:297 ../../standalone/draknet_.c:436
-#: ../../standalone/draknet_.c:522 ../../standalone/draknet_.c:565
-#: ../../standalone/draknet_.c:666 ../../standalone/logdrake_.c:505
-msgid "OK"
-msgstr "D'acord"
-
-#: ../../bootlook.pm_.c:229
-#, c-format
-msgid "can not open /etc/inittab for reading: %s"
-msgstr "no es pot obrir /etc/inittab per a lectura: %s"
-
-#: ../../common.pm_.c:94
-msgid "GB"
-msgstr "GB"
-
-#: ../../common.pm_.c:94
-msgid "KB"
-msgstr "kB"
-
-#: ../../common.pm_.c:94
-msgid "MB"
-msgstr "MB"
-
-#: ../../common.pm_.c:102
-msgid "TB"
-msgstr "TB"
-
-#: ../../common.pm_.c:110
-#, c-format
-msgid "%d minutes"
-msgstr "%d minuts"
-
-#: ../../common.pm_.c:112
-msgid "1 minute"
-msgstr "1 minute"
-
-#: ../../common.pm_.c:114
-#, c-format
-msgid "%d seconds"
-msgstr "%d segons"
-
-#: ../../common.pm_.c:159
-#, fuzzy
-msgid "Can't make screenshots before partitioning"
-msgstr "No puc afegir cap més partició"
-
-#: ../../common.pm_.c:166
-#, fuzzy, c-format
-msgid "Screenshots will be available after install in %s"
-msgstr ""
-"Podeu seleccionar altres idiomes, que quedaran disponibles després de la "
-"instal·lació"
-
-#: ../../crypto.pm_.c:12 ../../crypto.pm_.c:26 ../../standalone/drakxtv_.c:50
-msgid "France"
-msgstr "Franēa"
-
-#: ../../crypto.pm_.c:13
-msgid "Costa Rica"
-msgstr ""
-
-#: ../../crypto.pm_.c:14 ../../crypto.pm_.c:27
-#, fuzzy
-msgid "Belgium"
-msgstr "Belga"
-
-#: ../../crypto.pm_.c:15 ../../crypto.pm_.c:28
-msgid "Czech Republic"
-msgstr ""
-
-#: ../../crypto.pm_.c:16 ../../crypto.pm_.c:29
-msgid "Germany"
-msgstr "Alemany"
-
-#: ../../crypto.pm_.c:17 ../../crypto.pm_.c:30
-#, fuzzy
-msgid "Greece"
-msgstr "Grec"
-
-#: ../../crypto.pm_.c:18 ../../crypto.pm_.c:31
-#, fuzzy
-msgid "Norway"
-msgstr "Noruec"
-
-#: ../../crypto.pm_.c:19 ../../crypto.pm_.c:32
-#, fuzzy
-msgid "Sweden"
-msgstr "Consulteu"
-
-#: ../../crypto.pm_.c:20 ../../crypto.pm_.c:34
-msgid "Netherlands"
-msgstr ""
-
-#: ../../crypto.pm_.c:21 ../../crypto.pm_.c:35 ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "Italy"
-msgstr "Italią"
-
-#: ../../crypto.pm_.c:22 ../../crypto.pm_.c:36
-#, fuzzy
-msgid "Austria"
-msgstr "sčrie"
-
-#: ../../crypto.pm_.c:33 ../../crypto.pm_.c:67
-msgid "United States"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:94
-msgid "Please make a backup of your data first"
-msgstr "Si us plau, feu primer una cņpia de seguretat de les vostres dades"
-
-#: ../../diskdrake/hd_gtk.pm_.c:94 ../../diskdrake/interactive.pm_.c:891
-#: ../../diskdrake/interactive.pm_.c:900 ../../diskdrake/interactive.pm_.c:954
-msgid "Read carefully!"
-msgstr "Llegiu-ho atentament!"
-
-#: ../../diskdrake/hd_gtk.pm_.c:97
-msgid ""
-"If you plan to use aboot, be carefull to leave a free space (2048 sectors is "
-"enough)\n"
-"at the beginning of the disk"
-msgstr ""
-"Si penseu utilitzar aboot, assegureu-vos de deixar espai lliure (amb 2.048\n"
-"sectors n'hi ha prou) al comenēament del disc"
-
-#: ../../diskdrake/hd_gtk.pm_.c:116 ../../diskdrake/interactive.pm_.c:325
-#: ../../diskdrake/interactive.pm_.c:340 ../../diskdrake/smbnfs_gtk.pm_.c:45
-#: ../../install_steps.pm_.c:75 ../../install_steps_interactive.pm_.c:67
-#: ../../install_steps_interactive.pm_.c:356 ../../interactive_http.pm_.c:119
-#: ../../interactive_http.pm_.c:120 ../../standalone/diskdrake_.c:84
-msgid "Error"
-msgstr "Error"
-
-#: ../../diskdrake/hd_gtk.pm_.c:151
-msgid "Wizard"
-msgstr "Assistent"
-
-#: ../../diskdrake/hd_gtk.pm_.c:181 ../../diskdrake/removable_gtk.pm_.c:24
-msgid "Choose action"
-msgstr "Trieu una acció"
-
-#: ../../diskdrake/hd_gtk.pm_.c:185
-msgid ""
-"You have one big FAT partition\n"
-"(generally used by MicroSoft Dos/Windows).\n"
-"I suggest you first resize that partition\n"
-"(click on it, then click on \"Resize\")"
-msgstr ""
-"Teniu una partició FAT gran\n"
-"(utilitzada normalment pel DOS/Windows de Microsoft).\n"
-"Suggereixo que primer en canvieu la mida\n"
-"(feu-hi clic i després feu clic a \"Canvia la mida\")"
-
-#: ../../diskdrake/hd_gtk.pm_.c:188
-msgid "Please click on a partition"
-msgstr "Si us plau, feu clic a una partició "
-
-#: ../../diskdrake/hd_gtk.pm_.c:202 ../../diskdrake/smbnfs_gtk.pm_.c:67
-#: ../../install_steps_gtk.pm_.c:523
-msgid "Details"
-msgstr "Detalls"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Ext2"
-msgstr "Ext2"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "FAT"
-msgstr "FAT"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "HFS"
-msgstr "HFS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-#, fuzzy
-msgid "Journalised FS"
-msgstr "ha fallat el muntatge"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "SunOS"
-msgstr "SunOS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Swap"
-msgstr "Intercanvia"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../diskdrake/interactive.pm_.c:1050
-msgid "Empty"
-msgstr "Buit"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../install_steps_gtk.pm_.c:379
-#: ../../install_steps_gtk.pm_.c:439 ../../mouse.pm_.c:162
-#: ../../services.pm_.c:157 ../../standalone/drakbackup_.c:944
-msgid "Other"
-msgstr "Altres"
-
-#: ../../diskdrake/hd_gtk.pm_.c:325
-msgid "Filesystem types:"
-msgstr "Tipus de sistema de fitxers"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:386
-msgid "Create"
-msgstr "Crea"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:365
-#: ../../diskdrake/interactive.pm_.c:499 ../../diskdrake/removable.pm_.c:26
-#: ../../diskdrake/removable.pm_.c:49 ../../diskdrake/removable_gtk.pm_.c:17
-msgid "Type"
-msgstr "Tipus"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/hd_gtk.pm_.c:344
-#, c-format
-msgid "Use ``%s'' instead"
-msgstr "Utilitzeu ``%s'' al seu lloc"
-
-#: ../../diskdrake/hd_gtk.pm_.c:344 ../../diskdrake/interactive.pm_.c:374
-msgid "Delete"
-msgstr "Suprimeix"
-
-#: ../../diskdrake/hd_gtk.pm_.c:348
-msgid "Use ``Unmount'' first"
-msgstr "Utilitzeu primer ``Unmount''"
-
-#: ../../diskdrake/hd_gtk.pm_.c:349 ../../diskdrake/interactive.pm_.c:491
-#, c-format
-msgid ""
-"After changing type of partition %s, all data on this partition will be lost"
-msgstr ""
-"Després de canviar el tipus de la partició %s, se'n perdran totes les dades"
-
-#: ../../diskdrake/interactive.pm_.c:171
-#, fuzzy
-msgid "Choose a partition"
-msgstr "Trieu una acció"
-
-#: ../../diskdrake/interactive.pm_.c:171
-#, fuzzy
-msgid "Choose another partition"
-msgstr "Crea una nova partició"
-
-#: ../../diskdrake/interactive.pm_.c:196
-#, fuzzy
-msgid "Exit"
-msgstr "Ext2"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to expert mode"
-msgstr "Normal > Expert"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to normal mode"
-msgstr "Expert > Normal"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Undo"
-msgstr "Desfés"
-
-#: ../../diskdrake/interactive.pm_.c:237
-msgid "Continue anyway?"
-msgstr "Voleu continuar igualment?"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without saving"
-msgstr "Surt sense desar"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without writing the partition table?"
-msgstr "Voleu sortir sense desar la taula de particions?"
-
-#: ../../diskdrake/interactive.pm_.c:247
-#, fuzzy
-msgid "Do you want to save /etc/fstab modifications"
-msgstr "Voleu comprovar la configuració?"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Auto allocate"
-msgstr "Assigna automąticament"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Clear all"
-msgstr "Buida-ho tot"
-
-#: ../../diskdrake/interactive.pm_.c:262
-#, fuzzy
-msgid "Hard drive information"
-msgstr "Informació del correu"
-
-#: ../../diskdrake/interactive.pm_.c:283
-msgid "All primary partitions are used"
-msgstr "S'utilitzen totes les particions primąries"
-
-#: ../../diskdrake/interactive.pm_.c:284
-msgid "I can't add any more partition"
-msgstr "No puc afegir cap més partició"
-
-#: ../../diskdrake/interactive.pm_.c:285
-msgid ""
-"To have more partitions, please delete one to be able to create an extended "
-"partition"
-msgstr ""
-"Per tenir més particions, suprimiu-ne una per poder crear una partició "
-"ampliada"
-
-#: ../../diskdrake/interactive.pm_.c:295
-#, fuzzy
-msgid "Save partition table"
-msgstr "Escriu la taula de particions"
-
-#: ../../diskdrake/interactive.pm_.c:296
-#, fuzzy
-msgid "Restore partition table"
-msgstr "Rescata la taula de particions"
-
-#: ../../diskdrake/interactive.pm_.c:297
-msgid "Rescue partition table"
-msgstr "Rescata la taula de particions"
-
-#: ../../diskdrake/interactive.pm_.c:299
-#, fuzzy
-msgid "Reload partition table"
-msgstr "Rescata la taula de particions"
-
-#: ../../diskdrake/interactive.pm_.c:304
-#, fuzzy
-msgid "Removable media automounting"
-msgstr "Muntatge automątic del suport extraļble"
-
-#: ../../diskdrake/interactive.pm_.c:313 ../../diskdrake/interactive.pm_.c:333
-msgid "Select file"
-msgstr "Seleccioneu el fitxer"
-
-#: ../../diskdrake/interactive.pm_.c:320
-msgid ""
-"The backup partition table has not the same size\n"
-"Still continue?"
-msgstr ""
-"La cņpia de seguretat de la taula de particions no té la mateixa mida\n"
-"Voleu continuar igualment?"
-
-#: ../../diskdrake/interactive.pm_.c:334
-msgid "Warning"
-msgstr "Advertčncia"
-
-#: ../../diskdrake/interactive.pm_.c:335
-msgid ""
-"Insert a floppy in drive\n"
-"All data on this floppy will be lost"
-msgstr ""
-"Inseriu un disquet a la unitat\n"
-"Se'n perdran totes les dades"
-
-#: ../../diskdrake/interactive.pm_.c:346
-msgid "Trying to rescue partition table"
-msgstr "S'estą intentant rescatar la taula de particions"
-
-#: ../../diskdrake/interactive.pm_.c:352
-#, fuzzy
-msgid "Detailed information"
-msgstr "Informació del correu"
-
-#: ../../diskdrake/interactive.pm_.c:364 ../../diskdrake/interactive.pm_.c:534
-#: ../../diskdrake/interactive.pm_.c:554 ../../diskdrake/removable.pm_.c:24
-#: ../../diskdrake/removable_gtk.pm_.c:15 ../../diskdrake/smbnfs_gtk.pm_.c:83
-msgid "Mount point"
-msgstr "Punt de muntatge"
-
-#: ../../diskdrake/interactive.pm_.c:366 ../../diskdrake/removable.pm_.c:25
-#: ../../diskdrake/removable_gtk.pm_.c:16 ../../diskdrake/smbnfs_gtk.pm_.c:84
-msgid "Options"
-msgstr "Opcions"
-
-#: ../../diskdrake/interactive.pm_.c:367 ../../diskdrake/interactive.pm_.c:621
-msgid "Resize"
-msgstr "Canvia la mida"
-
-#: ../../diskdrake/interactive.pm_.c:368 ../../diskdrake/interactive.pm_.c:674
-msgid "Move"
-msgstr "Mou"
-
-#: ../../diskdrake/interactive.pm_.c:369
-msgid "Format"
-msgstr "Formata"
-
-#: ../../diskdrake/interactive.pm_.c:370 ../../diskdrake/smbnfs_gtk.pm_.c:80
-msgid "Mount"
-msgstr "Munta"
-
-#: ../../diskdrake/interactive.pm_.c:371
-msgid "Add to RAID"
-msgstr "Afegeix al RAID"
-
-#: ../../diskdrake/interactive.pm_.c:372
-msgid "Add to LVM"
-msgstr "Afegeix al LVM"
-
-#: ../../diskdrake/interactive.pm_.c:373 ../../diskdrake/smbnfs_gtk.pm_.c:79
-msgid "Unmount"
-msgstr "Desmunta"
-
-#: ../../diskdrake/interactive.pm_.c:375
-msgid "Remove from RAID"
-msgstr "Elimina del RAID"
-
-#: ../../diskdrake/interactive.pm_.c:376
-msgid "Remove from LVM"
-msgstr "Elimina del LVM"
-
-#: ../../diskdrake/interactive.pm_.c:377
-msgid "Modify RAID"
-msgstr "Modifica el RAID"
-
-#: ../../diskdrake/interactive.pm_.c:378
-msgid "Use for loopback"
-msgstr "Utilitza per a loopback"
-
-#: ../../diskdrake/interactive.pm_.c:417
-msgid "Create a new partition"
-msgstr "Crea una nova partició"
-
-#: ../../diskdrake/interactive.pm_.c:420
-msgid "Start sector: "
-msgstr "sector d'inici: "
-
-#: ../../diskdrake/interactive.pm_.c:422 ../../diskdrake/interactive.pm_.c:773
-msgid "Size in MB: "
-msgstr "Mida en MB: "
-
-#: ../../diskdrake/interactive.pm_.c:423 ../../diskdrake/interactive.pm_.c:774
-msgid "Filesystem type: "
-msgstr "Tipus de sistema de fitxers: "
-
-#: ../../diskdrake/interactive.pm_.c:424
-#: ../../diskdrake/interactive.pm_.c:1034
-#: ../../diskdrake/interactive.pm_.c:1108
-msgid "Mount point: "
-msgstr "Punt de muntatge: "
-
-#: ../../diskdrake/interactive.pm_.c:428
-msgid "Preference: "
-msgstr "Preferčncia: "
-
-#: ../../diskdrake/interactive.pm_.c:472
-#, fuzzy
-msgid "Remove the loopback file?"
-msgstr "S'estą formatant el fitxer de loopback %s"
-
-#: ../../diskdrake/interactive.pm_.c:497
-msgid "Change partition type"
-msgstr "Canvia el tipus de partició"
-
-#: ../../diskdrake/interactive.pm_.c:498 ../../diskdrake/removable.pm_.c:48
-msgid "Which filesystem do you want?"
-msgstr "Quin sistema de fitxers voleu?"
-
-#: ../../diskdrake/interactive.pm_.c:502
-msgid "Switching from ext2 to ext3"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:532
-#, c-format
-msgid "Where do you want to mount loopback file %s?"
-msgstr "On voleu muntar el fitxer de loopback %s?"
-
-#: ../../diskdrake/interactive.pm_.c:533 ../../diskdrake/interactive.pm_.c:553
-#, c-format
-msgid "Where do you want to mount device %s?"
-msgstr "On voleu muntar el dispositiu %s?"
-
-#: ../../diskdrake/interactive.pm_.c:539
-msgid ""
-"Can't unset mount point as this partition is used for loop back.\n"
-"Remove the loopback first"
-msgstr ""
-"No es pot anul·lar el punt de muntatge, perquč aquesta partició\n"
-"s'utilitza per al loopback. Elimineu primer el loopback"
-
-#: ../../diskdrake/interactive.pm_.c:577
-msgid "Computing FAT filesystem bounds"
-msgstr "S'estan calculant els lķmits del sistema de fitxers de la FAT"
-
-#: ../../diskdrake/interactive.pm_.c:577 ../../diskdrake/interactive.pm_.c:636
-#: ../../install_interactive.pm_.c:130
-msgid "Resizing"
-msgstr "S'estą canviant la mida"
-
-#: ../../diskdrake/interactive.pm_.c:609
-msgid "This partition is not resizeable"
-msgstr "No es pot canviar la mida d'aquesta partició"
-
-#: ../../diskdrake/interactive.pm_.c:614
-msgid "All data on this partition should be backed-up"
-msgstr "Cal fer una cņpia de seguretat de totes les dades d'aquesta partició"
-
-#: ../../diskdrake/interactive.pm_.c:616
-#, c-format
-msgid "After resizing partition %s, all data on this partition will be lost"
-msgstr ""
-"Després de canviar la mida de la partició %s, se'n perdran totes les dades"
-
-#: ../../diskdrake/interactive.pm_.c:621
-msgid "Choose the new size"
-msgstr "Escolliu la nova mida"
-
-#: ../../diskdrake/interactive.pm_.c:622
-#, fuzzy
-msgid "New size in MB: "
-msgstr "Mida en MB: "
-
-#: ../../diskdrake/interactive.pm_.c:675
-msgid "Which disk do you want to move it to?"
-msgstr "A quin disc us voleu desplaēar?"
-
-#: ../../diskdrake/interactive.pm_.c:676
-msgid "Sector"
-msgstr "Sector"
-
-#: ../../diskdrake/interactive.pm_.c:677
-msgid "Which sector do you want to move it to?"
-msgstr "A quin sector us voleu desplaēar?"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving"
-msgstr "S'estą desplaēant"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving partition..."
-msgstr "S'estą desplaēant la partició..."
-
-#: ../../diskdrake/interactive.pm_.c:697
-msgid "Choose an existing RAID to add to"
-msgstr "Escolliu un RAID existent al qual afegir"
-
-#: ../../diskdrake/interactive.pm_.c:698 ../../diskdrake/interactive.pm_.c:716
-msgid "new"
-msgstr "nou"
-
-#: ../../diskdrake/interactive.pm_.c:714
-msgid "Choose an existing LVM to add to"
-msgstr "Escolliu un LVM existent al qual afegir"
-
-#: ../../diskdrake/interactive.pm_.c:719
-msgid "LVM name?"
-msgstr "Nom LVM?"
-
-#: ../../diskdrake/interactive.pm_.c:759
-msgid "This partition can't be used for loopback"
-msgstr "Aquesta partició no es pot utilitzar per al loopback"
-
-#: ../../diskdrake/interactive.pm_.c:771
-msgid "Loopback"
-msgstr "Loopback"
-
-#: ../../diskdrake/interactive.pm_.c:772
-msgid "Loopback file name: "
-msgstr "Nom del fitxer de loopback: "
-
-#: ../../diskdrake/interactive.pm_.c:777
-#, fuzzy
-msgid "Give a file name"
-msgstr "Nom real"
-
-#: ../../diskdrake/interactive.pm_.c:780
-msgid "File already used by another loopback, choose another one"
-msgstr "Un altre loopback ja estą utilitzant el fitxer, escolliu-ne un altre"
-
-#: ../../diskdrake/interactive.pm_.c:781
-msgid "File already exists. Use it?"
-msgstr "El fitxer ja existeix. El voleu utilitzar?"
-
-#: ../../diskdrake/interactive.pm_.c:804
-#, fuzzy
-msgid "Mount options"
-msgstr "Opcions del mņdul:"
-
-#: ../../diskdrake/interactive.pm_.c:811
-msgid "Various"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:874
-msgid "device"
-msgstr "dispositiu"
-
-#: ../../diskdrake/interactive.pm_.c:875
-msgid "level"
-msgstr "nivell"
-
-#: ../../diskdrake/interactive.pm_.c:876
-msgid "chunk size"
-msgstr "mida del tros"
-
-#: ../../diskdrake/interactive.pm_.c:891
-msgid "Be careful: this operation is dangerous."
-msgstr "Aneu amb compte: aquesta operació és perillosa."
-
-#: ../../diskdrake/interactive.pm_.c:906
-msgid "What type of partitioning?"
-msgstr "Quin tipus de particionament?"
-
-#: ../../diskdrake/interactive.pm_.c:924
-msgid ""
-"Sorry I won't accept to create /boot so far onto the drive (on a cylinder > "
-"1024).\n"
-"Either you use LILO and it won't work, or you don't use LILO and you don't "
-"need /boot"
-msgstr ""
-"Fins al moment no puc acceptar crear el /boot a la unitat (a un cilindre > "
-"1024).\n"
-"O esteu utilitzant LILO, i no funcionarą, o no l'esteu utilitzant i no "
-"necessiteu el /boot"
-
-#: ../../diskdrake/interactive.pm_.c:928
-msgid ""
-"The partition you've selected to add as root (/) is physically located "
-"beyond\n"
-"the 1024th cylinder of the hard drive, and you have no /boot partition.\n"
-"If you plan to use the LILO boot manager, be careful to add a /boot partition"
-msgstr ""
-"La partició que heu seleccionat per afegir com a arrel (/) estą ubicada "
-"fķsicament més enllą del cilindre nŗ 1024 del disc dur, i no teniu cap "
-"partició /boot.\n"
-"Si teniu previst utilitzar el gestor d'arrencada LILO, penseu d'afegir una "
-"partició /boot"
-
-#: ../../diskdrake/interactive.pm_.c:934
-msgid ""
-"You've selected a software RAID partition as root (/).\n"
-"No bootloader is able to handle this without a /boot partition.\n"
-"So be careful to add a /boot partition"
-msgstr ""
-"Heu seleccionat una partició de programari RAID com a arrel (/).\n"
-"Aixņ no ho pot gestionar cap carregador d'arrencada sense una partició /"
-"boot.\n"
-"Per tant, assegureu-vos d'afegir una partició /boot"
-
-#: ../../diskdrake/interactive.pm_.c:954
-#, c-format
-msgid "Partition table of drive %s is going to be written to disk!"
-msgstr "La taula de particions de la unitat %s s'escriurą al disc!"
-
-#: ../../diskdrake/interactive.pm_.c:958
-msgid "You'll need to reboot before the modification can take place"
-msgstr ""
-"Us caldrą tornar a arrencar per tal que les modificacions tinguin efecte"
-
-#: ../../diskdrake/interactive.pm_.c:969
-#, c-format
-msgid "After formatting partition %s, all data on this partition will be lost"
-msgstr "Després de formatar la partició %s, se'n perdran totes les dades"
-
-#: ../../diskdrake/interactive.pm_.c:971
-msgid "Formatting"
-msgstr "S'estą formatant"
-
-#: ../../diskdrake/interactive.pm_.c:972
-#, c-format
-msgid "Formatting loopback file %s"
-msgstr "S'estą formatant el fitxer de loopback %s"
-
-#: ../../diskdrake/interactive.pm_.c:973
-#: ../../install_steps_interactive.pm_.c:465
-#, c-format
-msgid "Formatting partition %s"
-msgstr "S'estą formatant la partició %s"
-
-#: ../../diskdrake/interactive.pm_.c:984
-#, fuzzy
-msgid "Hide files"
-msgstr "l'mkraid ha fallit"
-
-#: ../../diskdrake/interactive.pm_.c:984
-#, fuzzy
-msgid "Move files to the new partition"
-msgstr "No hi ha prou espai lliure per assignar noves particions"
-
-#: ../../diskdrake/interactive.pm_.c:985
-#, c-format
-msgid ""
-"Directory %s already contain some data\n"
-"(%s)"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:996
-#, fuzzy
-msgid "Moving files to the new partition"
-msgstr "No hi ha prou espai lliure per assignar noves particions"
-
-#: ../../diskdrake/interactive.pm_.c:1000
-#, c-format
-msgid "Copying %s"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1004
-#, fuzzy, c-format
-msgid "Removing %s"
-msgstr "Resolució: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1014
-#, c-format
-msgid "partition %s is now known as %s"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1035
-#: ../../diskdrake/interactive.pm_.c:1094
-msgid "Device: "
-msgstr "Dispositiu: "
-
-#: ../../diskdrake/interactive.pm_.c:1036
-#, c-format
-msgid "DOS drive letter: %s (just a guess)\n"
-msgstr "Lletra d'unitat del DOS: %s (només és una suposició)\n"
-
-#: ../../diskdrake/interactive.pm_.c:1040
-#: ../../diskdrake/interactive.pm_.c:1048
-#: ../../diskdrake/interactive.pm_.c:1112
-msgid "Type: "
-msgstr "Tipus: "
-
-#: ../../diskdrake/interactive.pm_.c:1044
-msgid "Name: "
-msgstr "Nom: "
-
-#: ../../diskdrake/interactive.pm_.c:1052
-#, c-format
-msgid "Start: sector %s\n"
-msgstr "Inici: sector %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1053
-#, c-format
-msgid "Size: %s"
-msgstr "Mida: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1055
-#, c-format
-msgid ", %s sectors"
-msgstr ", %s sectors"
-
-#: ../../diskdrake/interactive.pm_.c:1057
-#, fuzzy, c-format
-msgid "Cylinder %d to %d\n"
-msgstr "Cilindre %d a cilindre %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1058
-msgid "Formatted\n"
-msgstr "Formatat\n"
-
-#: ../../diskdrake/interactive.pm_.c:1059
-msgid "Not formatted\n"
-msgstr "Sense formatar\n"
-
-#: ../../diskdrake/interactive.pm_.c:1060
-msgid "Mounted\n"
-msgstr "Muntat\n"
-
-#: ../../diskdrake/interactive.pm_.c:1061
-#, c-format
-msgid "RAID md%s\n"
-msgstr "RAID md%s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1063
-#, fuzzy, c-format
-msgid ""
-"Loopback file(s):\n"
-" %s\n"
-msgstr "Fitxer(s) de loopback: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1064
-msgid ""
-"Partition booted by default\n"
-" (for MS-DOS boot, not for lilo)\n"
-msgstr ""
-"La partició s'ha arrencat per defecte\n"
-" (per a l'arrencada de l'MS-DOS, no per a LILO)\n"
-
-#: ../../diskdrake/interactive.pm_.c:1066
-#, c-format
-msgid "Level %s\n"
-msgstr "Nivell %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1067
-#, c-format
-msgid "Chunk size %s\n"
-msgstr "Mida del tros %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1068
-#, c-format
-msgid "RAID-disks %s\n"
-msgstr "Discs RAID %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1070
-#, c-format
-msgid "Loopback file name: %s"
-msgstr "Nom del fitxer de loopback: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1073
-msgid ""
-"\n"
-"Chances are, this partition is\n"
-"a Driver partition, you should\n"
-"probably leave it alone.\n"
-msgstr ""
-"\n"
-"És possible que aquesta partició sigui\n"
-"una partició de programa de control;\n"
-"és millor que no la toqueu.\n"
-
-#: ../../diskdrake/interactive.pm_.c:1076
-msgid ""
-"\n"
-"This special Bootstrap\n"
-"partition is for\n"
-"dual-booting your system.\n"
-msgstr ""
-"\n"
-"Aquesta partició Bootstrap\n"
-"especial és per arrencar\n"
-"el vostre sistema en dual.\n"
-
-#: ../../diskdrake/interactive.pm_.c:1095
-#, c-format
-msgid "Size: %s\n"
-msgstr "Mida: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1096
-#, c-format
-msgid "Geometry: %s cylinders, %s heads, %s sectors\n"
-msgstr "Geometria: %s cilindres, %s capēals, %s sectors\n"
-
-#: ../../diskdrake/interactive.pm_.c:1097
-msgid "Info: "
-msgstr "Informació: "
-
-#: ../../diskdrake/interactive.pm_.c:1098
-#, c-format
-msgid "LVM-disks %s\n"
-msgstr "Discs LVM %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1099
-#, c-format
-msgid "Partition table type: %s\n"
-msgstr "Tipus de taula de particions: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1100
-#, c-format
-msgid "on bus %d id %d\n"
-msgstr "al bus %d id %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1114
-#, c-format
-msgid "Options: %s"
-msgstr "Opcions: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1130
-#, fuzzy
-msgid "Filesystem encryption key"
-msgstr "Tipus de sistema de fitxers: "
-
-#: ../../diskdrake/interactive.pm_.c:1131
-msgid "Choose your filesystem encryption key"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1134
-#, fuzzy, c-format
-msgid "This encryption key is too simple (must be at least %d characters long)"
-msgstr ""
-"Aquesta contrasenya és massa senzilla (ha de tenir com a mķnim %d carącters)"
-
-#: ../../diskdrake/interactive.pm_.c:1135
-#, fuzzy
-msgid "The encryption keys do not match"
-msgstr "Les contrasenyes no coincideixen"
-
-#: ../../diskdrake/interactive.pm_.c:1138
-msgid "Encryption key"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1139
-msgid "Encryption key (again)"
-msgstr ""
-
-#: ../../diskdrake/removable.pm_.c:47
-#, fuzzy
-msgid "Change type"
-msgstr "Canvia el tipus de partició"
-
-#: ../../diskdrake/removable_gtk.pm_.c:28
-#, fuzzy
-msgid "Please click on a media"
-msgstr "Si us plau, feu clic a una partició "
-
-#: ../../diskdrake/smbnfs_gtk.pm_.c:165
-#, fuzzy
-msgid "Search servers"
-msgstr "servidor DNS"
-
-#: ../../fs.pm_.c:485 ../../fs.pm_.c:495 ../../fs.pm_.c:499 ../../fs.pm_.c:503
-#: ../../fs.pm_.c:507 ../../fs.pm_.c:511
-#, c-format
-msgid "%s formatting of %s failed"
-msgstr "%s formatatge de %s ha fallat"
-
-#: ../../fs.pm_.c:548
-#, c-format
-msgid "I don't know how to format %s in type %s"
-msgstr "no sé com formatar %s amb el tipus %s"
-
-#: ../../fs.pm_.c:620 ../../fs.pm_.c:649 ../../fs.pm_.c:655
-#, c-format
-msgid "mounting partition %s in directory %s failed"
-msgstr ""
-
-#: ../../fs.pm_.c:640
-#, c-format
-msgid "fsck failed with exit code %d or signal %d"
-msgstr ""
-
-#: ../../fs.pm_.c:670 ../../partition_table.pm_.c:596
-#, c-format
-msgid "error unmounting %s: %s"
-msgstr "s'ha produļt un error en muntar %s: %s"
-
-#: ../../fsedit.pm_.c:21
-msgid "simple"
-msgstr "senzill"
-
-#: ../../fsedit.pm_.c:25
-msgid "with /usr"
-msgstr ""
-
-#: ../../fsedit.pm_.c:30
-msgid "server"
-msgstr "servidor"
-
-#: ../../fsedit.pm_.c:467
-msgid "You can't use JFS for partitions smaller than 16MB"
-msgstr "No podeu utilitzar el JFS per a particions inferiors a 16 MB"
-
-#: ../../fsedit.pm_.c:468
-msgid "You can't use ReiserFS for partitions smaller than 32MB"
-msgstr "No podeu utilitzar el ReiserFS per a particions inferiors a 32 MB"
-
-#: ../../fsedit.pm_.c:477
-msgid "Mount points must begin with a leading /"
-msgstr "Els punts de muntatge han de comenēar amb una /"
-
-#: ../../fsedit.pm_.c:478
-#, c-format
-msgid "There is already a partition with mount point %s\n"
-msgstr "Ja hi ha una partició amb el punt de muntatge %s\n"
-
-#: ../../fsedit.pm_.c:482
-#, c-format
-msgid "You can't use a LVM Logical Volume for mount point %s"
-msgstr "No podeu utilitzar un volum lņgic LVM per al punt de muntatge %s"
-
-#: ../../fsedit.pm_.c:484
-msgid "This directory should remain within the root filesystem"
-msgstr "Aquest directori s'ha de mantenir dins del sistema de fitxers de root"
-
-#: ../../fsedit.pm_.c:486
-msgid "You need a true filesystem (ext2, reiserfs) for this mount point\n"
-msgstr ""
-"Necessiteu un sistema de fitxers real (ext2, reiserfs) per a aquest punt de "
-"muntatge\n"
-
-#: ../../fsedit.pm_.c:488
-#, fuzzy, c-format
-msgid "You can't use an encrypted file system for mount point %s"
-msgstr "No podeu utilitzar un volum lņgic LVM per al punt de muntatge %s"
-
-#: ../../fsedit.pm_.c:546
-#, fuzzy
-msgid "Not enough free space for auto-allocating"
-msgstr "No hi ha prou espai per a l'assignació automątica"
-
-#: ../../fsedit.pm_.c:548
-msgid "Nothing to do"
-msgstr ""
-
-#: ../../fsedit.pm_.c:612
-#, c-format
-msgid "Error opening %s for writing: %s"
-msgstr "S'ha produļt un error en obrir %s per escriure: %s"
-
-#: ../../fsedit.pm_.c:697
-msgid ""
-"An error has occurred - no valid devices were found on which to create new "
-"filesystems. Please check your hardware for the cause of this problem"
-msgstr ""
-"S'ha produļt un error: no s'han trobat dispositius vąlids on crear nous "
-"sistemes de fitxers. Si us plau, comproveu el vostre maquinari per trobar el "
-"problema"
-
-#: ../../fsedit.pm_.c:720
-msgid "You don't have any partitions!"
-msgstr "No teniu cap partició!"
-
-#: ../../help.pm_.c:13
-msgid ""
-"GNU/Linux is a multiuser system, and this means that each user can have his\n"
-"own preferences, his own files and so on. You can read the ``User Guide''\n"
-"to learn more. But unlike \"root\", which is the administrator, the users\n"
-"you will add here will not be entitled to change anything except their own\n"
-"files and their own configuration. You will have to create at least one\n"
-"regular user for yourself. That account is where you should log in for\n"
-"routine use. Although it is very practical to log in as \"root\" everyday,\n"
-"it may also be very dangerous! The slightest mistake could mean that your\n"
-"system would not work any more. If you make a serious mistake as a regular\n"
-"user, you may only lose some information, but not the entire system.\n"
-"\n"
-"First, you have to enter your real name. This is not mandatory, of course\n"
-"as you can actually enter whatever you want. DrakX will then take the first\n"
-"word you have entered in the box and will bring it over to the \"User\n"
-"name\". This is the name this particular user will use to log onto the\n"
-"system. You can change it. You then have to enter a password here. A\n"
-"non-privileged (regular) user's password is not as crucial as \"root\"' one\n"
-"from a security point of view, but that is no reason to neglect it: after\n"
-"all, your files are at risk.\n"
-"\n"
-"If you click on \"Accept user\", you can then add as many as you want. Add\n"
-"a user for each one of your friends: your father or your sister, for\n"
-"example. When you finish adding all the users you want, select \"Done\".\n"
-"\n"
-"Clicking the \"Advanced\" button allows you to change the default \"shell\"\n"
-"for that user (bash by default)."
-msgstr ""
-
-#: ../../help.pm_.c:41
-msgid ""
-"Listed above are the existing Linux partitions detected on your hard 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"
-"able to install enough software. If you want to store your data on a\n"
-"separate partition, you will also need to create a partition for \"/home\"\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 drive type\", \"hard 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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard 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 a la\n"
-"vostra unitat de disc dur. Podeu conservar les eleccions fetes per "
-"l'assistent,\n"
-"són adequades per a un śs normal. Si les canvieu, heu de definir una "
-"partició\n"
-"root (\"/\"); no escolliu una partició massa petita, o no podreu instal·lar\n"
-"prou programari. Si voleu emmagatzemar les dades en una altra partició, "
-"també\n"
-"haureu de seleccionar una \"/home\" (només si teniu més d'una partició de\n"
-"Linux).\n"
-"\n"
-"\n"
-"Per a la vostra informació, cada partició estą identificada d'aquesta "
-"manera: \"Nom\", \"Capacitat\".\n"
-"\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"
-"\n"
-"\n"
-"\"Tipus d'unitat de disc\" és \"hd\" si la vostre unitat de disc és IDE i "
-"\"sd\"\n"
-"si és SCSI.\n"
-"\n"
-"\n"
-"\"Nśmero de la unitat de disc\" és sempre una lletra després d'\"hd\" o \"sd"
-"\".\n"
-"Amb unitats de disc IDE:\n"
-"\n"
-" * \"a\" significa \"unitat de disc mestre en el controlador IDE primari"
-"\",\n"
-"\n"
-" * \"b\" significa \"unitat de disc esclava en el controlador IDE primari"
-"\",\n"
-"\n"
-" * \"c\" significa \"unitat de disc mestre en el controlador IDE secundari"
-"\",\n"
-"\n"
-" * \"d\" significa \"unitat de disc esclava en el controlador IDE secundari"
-"\".\n"
-"\n"
-"\n"
-"Amb les unitats de disc SCSI, una \"a\" significa \"unitat primąria de disc"
-"\", una \"b\" significa \"unitat secundąria de disc\", etc..."
-
-#: ../../help.pm_.c:72
-msgid ""
-"The Mandrake Linux 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."
-msgstr ""
-
-#: ../../help.pm_.c:77
-msgid ""
-"It is now time to specify which programs you wish to install on your\n"
-"system. There are thousands of packages available for Mandrake Linux, 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"
-"be asked to specify the CDs you currently have (in Expert mode only). Check\n"
-"the CD labels and highlight the boxes corresponding to the CDs you have\n"
-"available for installation. Click \"OK\" when you are ready to continue.\n"
-"\n"
-"Packages are sorted in groups corresponding to a particular use of your\n"
-"machine. The groups themselves are sorted into four sections:\n"
-"\n"
-" * \"Workstation\": if you plan to use your machine as a workstation, "
-"select\n"
-"one or more of the corresponding groups;\n"
-"\n"
-" * \"Development\": if your machine is to be used for programming, choose\n"
-"the desired group(s);\n"
-"\n"
-" * \"Server\": if your machine is intended to be a server, you will be able\n"
-"to select which of the most common services you wish to install on your\n"
-"machine;\n"
-"\n"
-" * \"Graphical Environment\": finally, this is where you will choose your\n"
-"preferred graphical environment. At least one must be selected if you want\n"
-"to have a graphical workstation!\n"
-"\n"
-"Moving the mouse cursor over a group name will display a short explanatory\n"
-"text about that group. If you deselect all groups when performing a regular\n"
-"installation (by opposition to an upgrade), a dialog will pop up proposing\n"
-"different options for a minimal installation:\n"
-"\n"
-" * \"With X\": install the fewer packages possible to have a working\n"
-"graphical desktop;\n"
-"\n"
-" * \"With basic documentation\": installs the base system plus basic\n"
-"utilities and their documentation. This installation is suitable for\n"
-"setting up a server;\n"
-"\n"
-" * \"Truly minimal install\": will install the strict minimum necessary to\n"
-"get a working Linux system, in command line only. This installation is\n"
-"about 65Mb large.\n"
-"\n"
-"You can check the \"Individual package selection\" box, which is useful if\n"
-"you are familiar with the packages being offered or if you want to have\n"
-"total control over what will be installed.\n"
-"\n"
-"If you started the installation in \"Upgrade\" mode, you can unselect all\n"
-"groups to avoid installing any new package. This is useful for repairing or\n"
-"updating an existing system."
-msgstr ""
-
-#: ../../help.pm_.c:128
-msgid ""
-"Finally, depending on whether or not you selected individual packages, you\n"
-"will be presented a tree containing all packages classified by groups and\n"
-"subgroups. While browsing the tree, you can select entire groups,\n"
-"subgroups, or individual packages.\n"
-"\n"
-"Whenever you select a package on the tree, a description appears on the\n"
-"right. When your selection is finished, click the \"Install\" button which\n"
-"will then launch the installation process. Depending on the speed of your\n"
-"hardware and the number of packages that need to be installed, it may take\n"
-"a while to complete the process. An estimate of the time it will take to\n"
-"install everything is displayed on the screen, to help you gauge if there\n"
-"is sufficient time to enjoy a cup of coffee.\n"
-"\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 Mandrake Linux, 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 Mandrake Linux 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"
-"default. !!\n"
-"\n"
-"The \"Automatic dependencies\" option simply disables the warning dialog\n"
-"which appears whenever the installer automatically selects a package. This\n"
-"occurs because it has determined that it needs to satisfy a dependency with\n"
-"another package in order to successfully complete the installation.\n"
-"\n"
-"The tiny floppy disk icon at the bottom of the list allows to load the\n"
-"package list chosen during a previous installation. Clicking on this icon\n"
-"will ask you to insert a floppy disk previously created at the end of\n"
-"another installation. See the second tip of last step on how to create such\n"
-"a floppy."
-msgstr ""
-
-#: ../../help.pm_.c:164
-msgid ""
-"You are now proposed to set up your Internet/network connection. If you\n"
-"wish to connect your computer to the Internet or to a local network, click\n"
-"\"OK\". The autodetection of network devices and modem will be launched. If\n"
-"this detection fails, uncheck the \"Use auto detection\" box next time. You\n"
-"may also choose not to configure the network, or do it later; in that case,\n"
-"simply click the \"Cancel\" button.\n"
-"\n"
-"Available connections are: traditional modem, ISDN modem, ADSL connection,\n"
-"cable modem, and finally a simple LAN connection (Ethernet).\n"
-"\n"
-"Here, we will not detail each configuration. Simply make sure that you have\n"
-"all the parameters from your Internet Service Provider or system\n"
-"administrator.\n"
-"\n"
-"You can consult the ``User Guide'' chapter about Internet connections for\n"
-"details about the configuration, or simply wait until your system is\n"
-"installed and use the program described there to configure your connection.\n"
-"\n"
-"If you wish to configure the network later after installation, or if you\n"
-"are finished configuring your network connection, click \"Cancel\"."
-msgstr ""
-
-#: ../../help.pm_.c:186
-msgid ""
-"You may now choose which services you wish to start at boot time.\n"
-"\n"
-"Here are presented all the services available with the current\n"
-"installation. Review them carefully and uncheck those which are not always\n"
-"needed at boot time.\n"
-"\n"
-"You can get a short explanatory text about a service by selecting a\n"
-"specific service. However, if you are not sure whether a service is useful\n"
-"or not, 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 will probably not want to start any services which you do not\n"
-"need. Please remember that several services can be dangerous if they are\n"
-"enabled on a server. In general, select only the services you really need.\n"
-"!!"
-msgstr ""
-"Ara podeu triar quins serveis voleu que s'iniciļn durant l'arrencada.\n"
-"\n"
-"\n"
-"Quan el ratolķ passi sobre un element apareixerą un petit globus d'ajuda "
-"que\n"
-"explica la finalitat del servei.\n"
-"\n"
-"\n"
-"Aneu especialment amb cura en aquest pas si penseu utilitzar l'ordinador "
-"com\n"
-"a servidor: segurament no us interessarą iniciar serveis que no necessiteu.\n"
-"Recordeu que hi ha diversos serveis que poden ser perillosos si s'habiliten\n"
-"en un servidor.\n"
-"En general, seleccioneu només els serveis que realment necessiteu."
-
-#: ../../help.pm_.c:203
-msgid ""
-"GNU/Linux manages time in GMT (Greenwich Mean Time) and translates it in\n"
-"local time according to the time zone you selected. It is however possible\n"
-"to deactivate this by deselecting \"Hardware clock set to GMT\" so that the\n"
-"hardware clock is the same as the system clock. This is useful when the\n"
-"machine is hosting another operating system like Windows.\n"
-"\n"
-"The \"Automatic time synchronization\" option will automatically regulate\n"
-"the clock by connecting to a remote time server on the Internet. In the\n"
-"list that is presented, choose a server located near you. Of course you\n"
-"must have a working Internet connection for this feature to work. It will\n"
-"actually install on your machine a time server which can be optionally used\n"
-"by other machines on your local network."
-msgstr ""
-
-#: ../../help.pm_.c:217
-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 Mandrake Linux rely. In this section, DrakX\n"
-"will try to configure X automatically.\n"
-"\n"
-"It is extremely rare for it to fail, unless the hardware is very old (or\n"
-"very new). If it succeeds, it will start X automatically with the best\n"
-"resolution possible, depending on the size of the monitor. A window will\n"
-"then appear and ask you if you can see it.\n"
-"\n"
-"If you are doing an \"Expert\" installation, you will enter the X\n"
-"configuration wizard. See the corresponding section of the manual for more\n"
-"information about this wizard.\n"
-"\n"
-"If you can see the message during the test, and answer \"Yes\", then DrakX\n"
-"will proceed to the next step. If you cannot see the message, it simply\n"
-"means that the configuration was wrong and the test will automatically end\n"
-"after 10 seconds, restoring the screen."
-msgstr ""
-
-#: ../../help.pm_.c:237
-msgid ""
-"The first time you try the X configuration, you may not be very satisfied\n"
-"with its display (screen is too small, shifted left or right...). Hence,\n"
-"even if X starts up correctly, DrakX then asks you if the configuration\n"
-"suits you. It will also propose to change it by displaying a list of valid\n"
-"modes it could find, asking you to select one.\n"
-"\n"
-"As a last resort, if you still cannot get X to work, choose \"Change\n"
-"graphics card\", select \"Unlisted card\", and when prompted on which\n"
-"server, choose \"FBDev\". This is a failsafe option which works with any\n"
-"modern graphics card. Then choose \"Test again\" to be sure."
-msgstr ""
-
-#: ../../help.pm_.c:249
-msgid ""
-"Finally, you will be asked whether you want to see the graphical interface\n"
-"at boot. Note this question will be asked even if you chose not to test the\n"
-"configuration. Obviously, you want to answer \"No\" if your machine is to\n"
-"act as a server, or if you were not successful in getting the display\n"
-"configured."
-msgstr ""
-
-#: ../../help.pm_.c:256
-msgid ""
-"The Mandrake LinuxCD-ROM has a built-in rescue mode. You can access it by\n"
-"booting from the CD-ROM, press the >>F1<< key at boot and type >>rescue<<\n"
-"at the prompt. But in case your computer cannot boot from the CD-ROM, you\n"
-"should come back to this step for help in at least two situations:\n"
-"\n"
-" * when installing the bootloader, DrakX will rewrite the boot sector (MBR)\n"
-"of your main disk (unless you are using another boot manager), to allow you\n"
-"to start up with either Windows or GNU/Linux (assuming you have Windows in\n"
-"your system). If you need to reinstall Windows, the Microsoft install\n"
-"process will rewrite the boot sector, and then you will not be able to\n"
-"start GNU/Linux!\n"
-"\n"
-" * if a problem arises and you cannot start up GNU/Linux from the hard "
-"disk,\n"
-"this floppy disk will be the only means of starting up GNU/Linux. It\n"
-"contains a fair number of system tools for restoring a system, which has\n"
-"crashed due to a power failure, an unfortunate typing error, a typo in a\n"
-"password, or any other reason.\n"
-"\n"
-"When you click on this step, you will be asked to enter a disk inside the\n"
-"drive. The floppy disk you will insert must be empty or contain data which\n"
-"you do not need. You will not have to format it since DrakX will rewrite\n"
-"the whole disk."
-msgstr ""
-
-#: ../../help.pm_.c:280
-msgid ""
-"At this point, you need to choose where you want to install the Mandrake\n"
-"Linux operating system on your hard drive. If your hard drive is empty or\n"
-"if an existing operating system is using all the available space, you will\n"
-"need to partition it. Basically, partitioning a hard drive consists of\n"
-"logically dividing it to create space to install your new Mandrake Linux\n"
-"system.\n"
-"\n"
-"Because the partitioning process' effects are usually irreversible,\n"
-"partitioning can be intimidating and stressful if you are an inexperienced\n"
-"user. Fortunately, there is a wizard which simplifies this process. Before\n"
-"beginning, please consult the manual and take your time.\n"
-"\n"
-"If you are running the installation in Expert mode, you will enter\n"
-"DiskDrake, the Mandrake Linux partitioning tool, which allows you to\n"
-"fine-tune your partitions. See the DiskDrake section in the ``User Guide''.\n"
-"From the installation interface, you can use the wizards as described here\n"
-"by clicking the dialog's \"Wizard\" button.\n"
-"\n"
-"If partitions have already been defined, either from a previous\n"
-"installation or from another partitioning tool, simply select those to\n"
-"install your Linux system.\n"
-"\n"
-"If partitions are not defined, you will need to create them using the\n"
-"wizard. Depending on your hard drive configuration, several options are\n"
-"available:\n"
-"\n"
-" * \"Use free space\": this option will simply lead to an automatic\n"
-"partitioning of your blank drive(s). You will not be prompted further;\n"
-"\n"
-" * \"Use existing partition\": the wizard has detected one or more existing\n"
-"Linux partitions on your hard drive. If you want to use them, choose this\n"
-"option;\n"
-"\n"
-" * \"Use the free space on the Windows; partition\": if MicrosoftWindows is\n"
-"installed on your hard drive and takes all the space available on it, you\n"
-"have to create free space for Linux data. To do so, you can delete your\n"
-"MicrosoftWindows partition and data (see ``Erase entire disk'' or ``Expert\n"
-"mode'' solutions) or resize your MicrosoftWindows partition. Resizing can\n"
-"be performed without the loss of any data, provided you previously\n"
-"defragment the Windows partition. Backing up your data won't hurt either..\n"
-"This solution is recommended if you want to use both Mandrake Linux and\n"
-"MicrosoftWindows on the same computer.\n"
-"\n"
-" Before choosing this option, please understand that after this "
-"procedure,\n"
-"the size of your MicrosoftWindows partition will be smaller than at the\n"
-"present time. You will have less free space under MicrosoftWindows to store\n"
-"your data or to install new software;\n"
-"\n"
-" * \"Erase entire disk\": if you want to delete all data and all partitions\n"
-"present on your hard drive and replace them with your new Mandrake Linux\n"
-"system, choose this option. Be careful with this solution because you will\n"
-"not be able to revert your choice after you confirm;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Remove Windows\": this will simply erase everything on the drive and\n"
-"begin fresh, partitioning everything from scratch. All data on your disk\n"
-"will be lost;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Expert mode\": choose this option if you want to manually partition\n"
-"your hard drive. Be careful it is a powerful but dangerous choice. You can\n"
-"very easily lose all your data. Hence, do not choose this unless you know\n"
-"what you are doing."
-msgstr ""
-"Ara és quan heu de decidir en quin lloc del vostre disc dur voleu "
-"instal·lar\n"
-"el sistema operatiu Mandrake Linux. Si el disc és buit, o si un sistema\n"
-"operatiu existent n'utilitza tot l'espai disponible, us caldrą particionar-\n"
-"lo. Bąsicament, particionar un disc dur consisteix en dividir-lo de manera\n"
-"lņgica per crear espai on instal·lar el nou sistema Mandrake Linux.\n"
-"\n"
-"\n"
-"Atčs que els efectes d'aquest procés solen ser irreversibles, el "
-"particionament \n"
-"us pot espantar si sou un usuari sense experičncia.\n"
-"Aquest assistent simplifica aquest procés; abans de comenēar, consulteu el\n"
-"manual i preneu-vos el temps que calgui.\n"
-"\n"
-"\n"
-"Necessiteu, com a mķnim, dues particions, una per al sistema operatiu en\n"
-"si i l'altra per a la memņria virtual (anomenada també \"Intercanvi\").\n"
-"\n"
-"\n"
-"Si les particions ja s'han definit (en una instal·lació anterior o "
-"mitjanēant\n"
-"una altra eina de particionament), només caldrą que seleccioneu les que "
-"voleu\n"
-"utilitzar per instal·lar el sistema Linux.\n"
-"\n"
-"\n"
-"Si les particions encara no s'han definit, les heu de crear.\n"
-"Per fer-ho, utilitzeu l'assistent que trobareu més amunt; segons la\n"
-"configuració del vostre disc dur, hi ha diverses solucions possibles:\n"
-"\n"
-"* Utilitzar una partició existent: l'assistent ha detectat al vostre\n"
-"disc dur una o més particions de Linux existents. Si voleu conservar-les,\n"
-"escolliu aquesta opció.\n"
-"\n"
-"\n"
-"* Esborrar completament el disc: si voleu suprimir totes les dades i\n"
-"particions que teniu al disc dur i substituir-les pel sistema Linux-\n"
-"Mandrake, podeu escollir aquesta opció. Aneu amb compte, perņ, perquč,\n"
-"un cop la confirmeu, no podreu fer-vos enrere.\n"
-"\n"
-"\n"
-"* Utilitzar l'espai lliure de la partició del Windows: si teniu el "
-"Microsoft\n"
-"Windows instal·lat al disc dur i n'ocupa tot l'espai diponible, us hi "
-"caldrą\n"
-"crear espai lliure per a les dades del Linux. Per fer-ho, podeu suprimir la\n"
-"partició i les dades del Windows (consulteu les opcions \"Esborrar "
-"completament\n"
-"el disc\" o \"Mode expert\") o canviar la mida de la partició del Windows;\n"
-"aquest canvi de mida es pot dur a terme sense cap pčrdua de dades. Aquesta\n"
-"opció és la més recomanable si voleu utilitzar tant el Mandrake Linux com "
-"el\n"
-"Microsoft Windows al mateix ordinador.\n"
-"\n"
-"\n"
-" Abans de decidir-vos per aquesta opció, tingueu en compte que la mida\n"
-"de la partició del Microsoft Windows serą més petita que ara. Aixņ "
-"significa\n"
-"que tindreu menys espai lliure per emmagatzemar-hi dades o instal·lar-hi "
-"més\n"
-"programari.\n"
-"\n"
-"\n"
-"* Mode expert: si voleu particionar el disc dur manualment, podeu triar\n"
-"aquesta opció. Aneu amb compte, perquč és molt potent perņ també perillosa;\n"
-"podeu perdre fącilment totes les dades. Per tant, no trieu aquesta opció "
-"tret\n"
-"que sapigueu exactament quč esteu fent."
-
-#: ../../help.pm_.c:347
-msgid ""
-"There you are. Installation is now complete and your GNU/Linux system is\n"
-"ready to use. Just click \"OK\" to reboot the system. You can start\n"
-"GNU/Linux or Windows, whichever you prefer (if you are dual-booting), as\n"
-"soon as the computer has booted up again.\n"
-"\n"
-"The \"Advanced\" button (in Expert mode only) shows two more buttons to:\n"
-"\n"
-" * \"generate auto-install floppy\": to create an installation floppy disk\n"
-"which will automatically perform a whole installation without the help of\n"
-"an operator, similar to the installation you just configured.\n"
-"\n"
-" Note that two different options are available after clicking the button:\n"
-"\n"
-" * \"Replay\". This is a partially automated installation as the\n"
-"partitioning step (and only this one) remains interactive;\n"
-"\n"
-" * \"Automated\". Fully automated installation: the hard disk is "
-"completely\n"
-"rewritten, all data is lost.\n"
-"\n"
-" This feature is very handy when installing a great number of similar\n"
-"machines. See the Auto install section on our web site;\n"
-"\n"
-" * \"Save packages selection\"(*): saves the package selection as done\n"
-"previously. Then, when doing another installation, insert the floppy inside\n"
-"the drive and run the installation going to the help screen by pressing on\n"
-"the [F1] key, and by issuing >>linux defcfg=\"floppy\"<<.\n"
-"\n"
-"(*) You need a FAT-formatted floppy (to create one under GNU/Linux, type\n"
-"\"mformat a:\")"
-msgstr ""
-
-#: ../../help.pm_.c:378
-#, fuzzy
-msgid ""
-"Any partitions that have been newly defined must be formatted for use\n"
-"(formatting means creating a filesystem).\n"
-"\n"
-"At this time, you may wish to reformat some already existing partitions to\n"
-"erase any data they contain. If you wish to do that, please select those\n"
-"partitions as well.\n"
-"\n"
-"Please note that it is 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\n"
-"reformat partitions containing data that you wish to keep (typically\n"
-"\"/home\").\n"
-"\n"
-"Please be careful when selecting partitions. After formatting, all data on\n"
-"the selected partitions will be deleted and you will not be able to recover\n"
-"any of it.\n"
-"\n"
-"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"
-"Mandrake Linux operating system installation.\n"
-"\n"
-"Click on \"Advanced\" if you wish to select partitions that will be checked\n"
-"for bad blocks on the disk."
-msgstr ""
-"Les particions que s'acaben de definir s'han de formatar per poder-les\n"
-"utilitzar. El formatatge consisteix en crear-hi un sistema de fitxers).\n"
-"\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 les\n"
-"particions que voleu formatar.\n"
-"\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 contenen el sistema\n"
-"operatiu (com ara \"/\", \"/usr\" o \"/var\"), perņ no les que contenen "
-"dades\n"
-"que voleu conservar (habitualment, /home).\n"
-"\n"
-"\n"
-"Aneu amb compte en seleccionar les particions; després del formatatge, "
-"totes\n"
-"les dades s'hauran suprimit i no en podreu recuperar cap.\n"
-"\n"
-"\n"
-"Feu clic a \"D'acord\" quan estigueu a punt per formatar les particions.\n"
-"\n"
-"\n"
-"Feu clic a \"Cancel·la\" si voleu seleccionar altres particions per "
-"instal·lar\n"
-"el nou sistema Mandrake Linux."
-
-#: ../../help.pm_.c:404
-msgid ""
-"Your new Mandrake Linux operating system is currently being installed.\n"
-"Depending on the number of packages you will be installing and the speed of\n"
-"your computer, this operation could take from a few minutes to a\n"
-"significant amount of time.\n"
-"\n"
-"Please be patient."
-msgstr ""
-"El nou sistema operatiu Mandrake Linux s'estą instal·lant. Aquesta\n"
-"operació trigarą uns quants minuts (dependrą de la mida total que\n"
-"hagueu escollit instal·lar i de la velocitat del vostre ordinador).\n"
-"\n"
-"Si us plau, tingueu pacičncia."
-
-#: ../../help.pm_.c:412
-msgid ""
-"At the time you are installing Mandrake Linux, it is likely that some\n"
-"packages have been updated since the initial release. Some bugs may have\n"
-"been fixed, and security issues solved. To allow you to benefit from these\n"
-"updates, you are now proposed to download them from the Internet. Choose\n"
-"\"Yes\" if you have a working Internet connection, or \"No\" if you prefer\n"
-"to install updated packages later.\n"
-"\n"
-"Choosing \"Yes\" displays a list of places from which updates can be\n"
-"retrieved. Choose the one nearest you. Then a package-selection tree\n"
-"appears: review the selection, and press \"Install\" to retrieve and\n"
-"install the selected package(s), or \"Cancel\" to abort."
-msgstr ""
-
-#: ../../help.pm_.c:425
-msgid ""
-"Before continuing, you should read carefully the terms of the license. It\n"
-"covers the whole Mandrake Linux 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."
-msgstr ""
-
-#: ../../help.pm_.c:432
-msgid ""
-"At this point, it is time to choose the security level desired for the\n"
-"machine. As a rule of thumb, the more exposed the machine is, and the more\n"
-"the data stored in it is crucial, the higher the security level should be.\n"
-"However, a higher security level is generally obtained at the expense of\n"
-"easiness of use. Refer to the \"msec\" chapter of the ``Reference Manual''\n"
-"to get more information about the meaning of these levels.\n"
-"\n"
-"If you do not know what to choose, keep the default option."
-msgstr ""
-
-#: ../../help.pm_.c:442
-#, fuzzy
-msgid ""
-"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandrake Linux 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"
-"partitions must be defined.\n"
-"\n"
-"To create partitions, you must first select a hard 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"
-"\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"
-"\n"
-" * \"More\": gives access to additional features:\n"
-"\n"
-" * \"Save partition table\": saves the partition table to a floppy. "
-"Useful\n"
-"for later partition-table recovery if necessary. It is strongly recommended\n"
-"to perform this step;\n"
-"\n"
-" * \"Restore partition table\": allows to restore a previously saved\n"
-"partition table from floppy disk;\n"
-"\n"
-" * \"Rescue partition table\": if your partition table is damaged, you "
-"can\n"
-"try to recover it using this option. Please be careful and remember that it\n"
-"can fail;\n"
-"\n"
-" * \"Reload partition table\": discards all changes and loads your "
-"initial\n"
-"partition table;\n"
-"\n"
-" * \"Removable media automounting\": unchecking this option will force "
-"users\n"
-"to manually mount and unmount removable medias such as floppies and\n"
-"CD-ROMs.\n"
-"\n"
-" * \"Wizard\": 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 knowledge of\n"
-"partitioning;\n"
-"\n"
-" * \"Undo\": use this option to cancel your changes;\n"
-"\n"
-" * \"Toggle to normal/expert mode\": allows additional actions on "
-"partitions\n"
-"(type, options, format) and gives more information;\n"
-"\n"
-" * \"Done\": when you are finished partitioning your hard 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"
-"partitions using [Tab] and [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"
-"\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 sistems Mandrake Linux. Si ja s'han definit les particions "
-"(amb\n"
-"una instal·lació anterior de GNU/Linux o mitjanēant una altra eina de\n"
-"particionament), podeu utilitzar les particiones existents. En cas "
-"contrari,\n"
-"s'han de definir particions al disc dur.\n"
-"\n"
-"\n"
-"Per crear particions, primer heu de seleccionar un disc dur. Podeu "
-"seleccionar\n"
-"el disc que s'ha de particionar fent clic a \"hda\" per a la primera unitat\n"
-"IDE, \"hdb\" per a la segona o \"sda\" per a la primera unitat SCSI, etc.\n"
-"\n"
-"\n"
-"Per particionar el disc dur seleccionat, podeu utilitzar aquestes opcions:\n"
-"\n"
-" * Buidar-ho tot: aquesta opció suprimeix totes les particions que hi ha\n"
-"al disc dur seleccionat.\n"
-"\n"
-"\n"
-" * Assignació automątica: aquesta opció us permet crear automąticament "
-"les\n"
-"particions Ext2 i Intercanvi en l'espai lliure del disc dur.\n"
-"\n"
-"\n"
-" * Rescatar la taula de particions: si la taula de particions estą\n"
-"malmesa, podeu intentar recuperar-la mitjanēant aquesta opció. Aneu\n"
-"amb compte i penseu que aixņ pot fallar.\n"
-"\n"
-"\n"
-" * Desfer: podeu utilitzar aquesta opció per anul·lar els canvis.\n"
-"\n"
-"\n"
-" * Tornar a carregar: podeu utilitzar aquesta opció si voleu desfer\n"
-"tots els canvis i carregar la taula de particions inicial.\n"
-"\n"
-"\n"
-" * Assistent: Si voleu utilitzar un assistent per particionar el disc "
-"dur,\n"
-"podeu utilitzar aquesta opció, que és la més recomanable si no teniu massa\n"
-"experičncia en particionament.\n"
-"\n"
-"\n"
-" * Restaurar des de disquet: si, en una instal·lació anterior, vau desar\n"
-"la taula de particions en un disquet, podeu recuperar-la mitjanēant aquesta\n"
-"opció.\n"
-"\n"
-"\n"
-" * Desar en disquet: si voleu desar la taula de particions en un disquet\n"
-"per poder-la recuperar, podeu utilitzar aquesta opció. És molt recomanable\n"
-"que l'utilitzeu.\n"
-"\n"
-"\n"
-" * Fet: quan hagueu acabat de particionar el disc dur, utilizeu aquesta\n"
-"opció per desar els canvis.\n"
-"\n"
-"\n"
-"Per a la vostra informació, podeu accedir a qualsevol opció mitjanēant el "
-"teclat:\n"
-"moveu-vos per les particions amb la tecles Tab i Fletxa amunt/Fletxa avall.\n"
-"\n"
-"\n"
-"Quan s'ha seleccionat una partició, podeu utilitzar:\n"
-"\n"
-" * Ctrl+C per crear una nova partició (quan se n'ha seleccionat\n"
-"una de buida)\n"
-"\n"
-" * Ctrl+D per suprimir una partició\n"
-"\n"
-" * Ctrl+M per definir el punt de muntatge\n"
-" \n"
-"\n"
-" \n"
-"Si esteu fent la instal·lació en un ordinador PPC, potser 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 una imatge\n"
-"del disc RAM per a situacions d'emergčncia durant l'arrencada."
-
-#: ../../help.pm_.c:513
-#, fuzzy
-msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
-"Please choose the one you want to resize in order to install your new\n"
-"Mandrake Linux 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"
-"\"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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard 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"
-"disk or partition is called \"C:\")."
-msgstr ""
-"S'ha detectat més d'una partició de Microsoft Windows en la unitat de disc.\n"
-"Si us plau, trieu quina d'elles voleu redimensionar per instal·lar el nou\n"
-"sistema operatiu Mandrake Linux.\n"
-"\n"
-"\n"
-"Per a la vostra informació, cada partició estą identificada d'aquesta "
-"manera; \"Nom Linux\", \"Nom\n"
-"Windows\" \"Capacitat\".\n"
-"\n"
-"\"Nom Linux\" es compon de: \"tipus d'unitat de disc\", \"nśmero d'unitat de "
-"disc\",\n"
-"\"nśmero de la partició\" (per exemple, \"hda1\").\n"
-"\n"
-"\n"
-"\"Tipus d'unitat de disc\" és \"hd\" si la vostre unitat de disc és IDE i "
-"\"sd\"\n"
-"si és SCSI.\n"
-"\n"
-"\n"
-"\"Nśmero de la unitat de disc\" és sempre una lletra després d'\"hd\" o \"sd"
-"\".\n"
-"Amb unitats de disc IDE:\n"
-"\n"
-" * \"a\" significa \"unitat de disc mestre en el controlador IDE primari"
-"\",\n"
-"\n"
-" * \"b\" significa \"unitat de disc esclava en el controlador IDE primari"
-"\",\n"
-"\n"
-" * \"c\" significa \"unitat de disc mestre en el controlador IDE secundari"
-"\",\n"
-"\n"
-" * \"d\" significa \"unitat de disc esclava en el controlador IDE secundari"
-"\".\n"
-"\n"
-"\n"
-"Amb les unitats de disc SCSI, una \"a\" significa \"unitat primąria de disc"
-"\", una \"b\" significa \"unitat secundąria de disc\", etc...\n"
-"\n"
-"\"Nom Windows\" és la lletra de la vostra unitat de disc sota Windows (el "
-"primer disc o partició s'anomena \"C:\")."
-
-#: ../../help.pm_.c:544
-msgid "Please be patient. This operation can take several minutes."
-msgstr ""
-"Si us plau, tingueu pacičncia. Aquesta operació pot trigar diversos minuts."
-
-#: ../../help.pm_.c:547
-#, fuzzy
-msgid ""
-"DrakX now needs to know if you want to perform a default (\"Recommended\")\n"
-"installation or if you want to have greater control (\"Expert\"). You can\n"
-"also choose to do a new install or an upgrade of an existing Mandrake Linux\n"
-"system:\n"
-"\n"
-" * \"Install\": completely wipes out the old system. In fact, depending on\n"
-"what currently holds your machine, you will be able to keep some old (Linux\n"
-"or other) partitions unchanged;\n"
-"\n"
-" * \"Upgrade\": this installation class allows to simply update the "
-"packages\n"
-"currently installed on your Mandrake Linux system. It keeps the current\n"
-"partitions of your hard drives as well as user configurations. All other\n"
-"configuration steps remain available with respect to plain installation;\n"
-"\n"
-" * \"Upgrade Packages Only\": this brand new class allows to upgrade an\n"
-"existing Mandrake Linux system while keeping all system configurations\n"
-"unchanged. Adding new packages to the current installation is also\n"
-"possible.\n"
-"\n"
-"Upgrades should work fine for Mandrake Linux systems starting from \"8.1\"\n"
-"release.\n"
-"\n"
-"Depending on your knowledge of GNU/Linux, select one of the following\n"
-"choices:\n"
-"\n"
-" * Recommended: choose this if you have never installed a GNU/Linux\n"
-"operating system. The installation will be very easy and you will only be\n"
-"asked a few questions;\n"
-"\n"
-" * Expert: if you have a good knowledge of GNU/Linux, you can choose this\n"
-"installation class. The expert installation will allow you to perform a\n"
-"highly-customized installation. Answering some of the questions can be\n"
-"difficult if you do not have a good knowledge of GNU/Linux, so do not\n"
-"choose this unless you know what you are doing."
-msgstr ""
-"Escolliu \"Instal·lació\" si no teniu cap versió anterior de Mandrake Linux\n"
-"instal·lada a l'ordinador o si voleu utilitzar diversos sistemes operatius.\n"
-"\n"
-"\n"
-"Escolliu \"Actualització\" si voleu actualitzar un versió de Mandrake Linux "
-"que ja estą instal·lada.\n"
-"\n"
-"\n"
-"Segons els vostres coneixements de GNU/Linux, podeu escollir un dels "
-"nivells\n"
-"següents d'instal·lació o actualització del sistema operatiu Mandrake "
-"Linux:\n"
-"\n"
-"* Recomanada: si mai no heu instal·lat un sistema operatiu GNU/Linux,\n"
-"escolliu aquest. La instal·lació serą molt fącil i només se us faran\n"
-"unes poques preguntes.\n"
-"\n"
-"\n"
-"* Personalitzada: si coneixeu prou el GNU/Linux, podeu escollir l'śs\n"
-"principal (estació de treball, servidor, desenvolupament) del vostre\n"
-"sistema. Haureu de respondre més preguntes que en la instal·lació\n"
-"\"Recomanada\", de manera que, si escolliu aquest tipus d'instal·lació,\n"
-"haureu de saber com funciona el GNU/Linux.\n"
-"\n"
-"\n"
-"* Per a experts: si domineu el GNU/Linux, trieu aquest tipus\n"
-"d'instal·lació. Com en el cas de la instal·lació \"Personalitzada\"\n"
-"podreu escollir l'śs principal del vostre ordinador (estació de treball,\n"
-"servidor, desenvolupament). Aneu amb molt de compte abans de triar aquest\n"
-"tipus d'instal·lació; podreu realitzar una instal·lació altament\n"
-"personalitzada.\n"
-" La resposta a algunes preguntes pot ser molt difķcil si no teniu sņlids\n"
-"coneixements de GNU/Linux. Per tant, no escolliu aquest tipus "
-"d'instal·lació\n"
-"tret que sapigueu quč esteu fent."
-
-#: ../../help.pm_.c:583
-msgid ""
-"Normally, DrakX selects the right keyboard for you (depending on the\n"
-"language you have chosen) and you won't even see this step. However, you\n"
-"might not have a keyboard that corresponds exactly to your language: for\n"
-"example, if you are an English speaking Swiss person, you may still want\n"
-"your keyboard to be a Swiss keyboard. Or if you speak English but are\n"
-"located in Quebec, you may find yourself in the same situation. In both\n"
-"cases, you will have to go back to this installation step and select an\n"
-"appropriate keyboard from the list.\n"
-"\n"
-"Click on the \"More\" button to be presented with the complete list of\n"
-"supported keyboards."
-msgstr ""
-
-#: ../../help.pm_.c:596
-msgid ""
-"Please choose your preferred language for installation and system usage.\n"
-"\n"
-"Clicking on the \"Advanced\" button will allow you to select other\n"
-"languages to be installed on your workstation. Selecting other languages\n"
-"will install the language-specific files for system documentation and\n"
-"applications. For example, if you will host users from Spain on your\n"
-"machine, select English as the main language in the tree view and in the\n"
-"Advanced section click on the box corresponding to \"Spanish|Spain\".\n"
-"\n"
-"Note that multiple languages may be installed. Once you have selected any\n"
-"additional locales, click the \"OK\" button to continue."
-msgstr ""
-
-#: ../../help.pm_.c:609
-msgid ""
-"DrakX generally detects the number of buttons your mouse has. If not, it\n"
-"assumes you have a two-button mouse and will set it up for third-button\n"
-"emulation. DrakX will automatically know whether it is a PS/2, serial or\n"
-"USB mouse.\n"
-"\n"
-"If you wish to specify a different type of mouse select the appropriate\n"
-"type from the provided list.\n"
-"\n"
-"If you choose a mouse other than the default, a test screen will be\n"
-"displayed. Use the buttons and wheel to verify that the settings are\n"
-"correct. If the mouse is not working well, press the space bar or [Return]\n"
-"to \"Cancel\" and choose again."
-msgstr ""
-
-#: ../../help.pm_.c:623
-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 en MS\n"
-"Windows s'anomena ttyS0 en GNU/Linux."
-
-#: ../../help.pm_.c:627
-msgid ""
-"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 choose\n"
-"not to enter a password, but we strongly advise you against this if only\n"
-"for one reason: do not think that because you booted GNU/Linux that your\n"
-"other operating systems are safe from mistakes. Since \"root\" can overcome\n"
-"all limitations and unintentionally erase all data on partitions by\n"
-"carelessly accessing the partitions themselves, it is important for it to\n"
-"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."
-msgstr ""
-
-#: ../../help.pm_.c:663
-msgid ""
-"LILO and grub are GNU/Linux bootloaders. This stage, normally, is totally\n"
-"automated. In fact, DrakX analyzes the disk boot sector and acts\n"
-"accordingly, depending on what it finds here:\n"
-"\n"
-" * if a Windows boot sector is found, it will replace it with a grub/LILO\n"
-"boot sector. Hence, you will be able to load either GNU/Linux or another\n"
-"OS;\n"
-"\n"
-" * if a grub or LILO boot sector is found, it will replace it with a new\n"
-"one.\n"
-"\n"
-"If in doubt, DrakX will display a dialog with various options.\n"
-"\n"
-" * \"Bootloader to use\": you have three choices:\n"
-"\n"
-" * \"GRUB\": if you prefer grub (text menu).\n"
-"\n"
-" * \"LILO with graphical menu\": if you prefer LILO with its graphical\n"
-"interface.\n"
-"\n"
-" * \"LILO with text menu\": if you prefer LILO with its text menu "
-"interface.\n"
-"\n"
-" * \"Boot device\": in most cases, you will not change the default\n"
-"(\"/dev/hda\"), but if you prefer, the bootloader can be installed on the\n"
-"second hard drive (\"/dev/hdb\"), or even on a floppy disk (\"/dev/fd0\");\n"
-"\n"
-" * \"Delay before booting the default image\": when rebooting the computer,\n"
-"this is the delay granted to the user to choose in the bootloader menu,\n"
-"another boot entry than the default one.\n"
-"\n"
-"!! Beware that if you choose not to install a bootloader (by selecting\n"
-"\"Cancel\" here), you must ensure that you have a way to boot your Mandrake\n"
-"Linux system! Also, be sure you know what you do before changing any of the\n"
-"options. !!\n"
-"\n"
-"Clicking the \"Advanced\" button in this dialog will offer many advanced\n"
-"options, which are reserved to the expert user.\n"
-"\n"
-"After you have configured the general bootloader parameters, the list of\n"
-"boot options which will be available at boot time will be displayed.\n"
-"\n"
-"If there is another operating system installed on your machine, it will\n"
-"automatically be added to the boot menu. Here, you can choose to fine-tune\n"
-"the existing options. Select an entry and click \"Modify\" to modify or\n"
-"remove it; \"Add\" creates a new entry; and \"Done\" goes on to the next\n"
-"installation step."
-msgstr ""
-
-#: ../../help.pm_.c:711
-msgid ""
-"LILO (the LInux LOader) and grub are bootloaders: they are able to boot\n"
-"either GNU/Linux or any other operating system present on your computer.\n"
-"Normally, these other operating systems are correctly detected and\n"
-"installed. If this is not the case, you can add an entry by hand in this\n"
-"screen. Be careful to choose the correct parameters.\n"
-"\n"
-"You may also not want to give access to these other operating systems to\n"
-"anyone. In which case, you can delete the corresponding entries. But then,\n"
-"you will need a boot disk in order to boot those other operating systems!"
-msgstr ""
-"El LILO (Linux Loader, carregador de Linux) i el Grub són carregadors\n"
-"d'arrencada: poden arrencar el GNU/Linux o qualsevol altre sistema operatiu\n"
-"que tingueu a l'ordinador. Normalment, aquests altres sistemes operatius\n"
-"es detecten i instal·len correctament, perņ si no és aixķ, podeu afegir-los\n"
-"manualment en aquesta pantalla. Aneu amb compte de triar els parąmetres\n"
-"correctes.\n"
-"\n"
-"\n"
-"També és possible que no volgueu donar accés a tothom a aquests sistemes\n"
-"operatius; en aquest cas podeu suprimir les entrades corresponents, perņ\n"
-"aleshores us caldrą un disc d'arrencada per poder-los arrencar!"
-
-#: ../../help.pm_.c:722
-msgid ""
-"You must indicate where you wish to place the information required to boot\n"
-"to GNU/Linux.\n"
-"\n"
-"Unless you know exactly what you are doing, choose \"First sector of drive\n"
-"(MBR)\"."
-msgstr ""
-"Heu d'indicar on voleu situar la informació necessąria per\n"
-"arrencar el GNU/Linux.\n"
-"\n"
-"\n"
-"Tret que sabeu exactament quč esteu fent, escolliu \"Primer sector\n"
-"de la unitat (MBR)\"."
-
-#: ../../help.pm_.c:729
-msgid ""
-"Here, we select a printing system for your computer. Other OSs may offer\n"
-"you one, but Mandrake Linux offers three.\n"
-"\n"
-" * \"pdq\" which means ``print, don't queue'', is the choice if you have a\n"
-"direct connection to your printer and you want to be able to panic out of\n"
-"printer jams, and you do not have networked printers. It will handle only\n"
-"very simple network cases and is somewhat slow for networks. Pick \"pdq\"\n"
-"if this is your maiden voyage to GNU/Linux. You can change your choices\n"
-"after installation by running PrinterDrake from the Mandrake Control Center\n"
-"and clicking the expert button.\n"
-"\n"
-" * \"CUPS\"``Common Unix Printing System'', is excellent at printing to "
-"your\n"
-"local printer and also halfway-around the planet. It is simple and can act\n"
-"as a server or a client for the ancient \"lpd\" printing system. Hence, it\n"
-"is compatible with the systems that went before. It can do many tricks, but\n"
-"the basic setup is almost as easy as \"pdq\". If you need this to emulate\n"
-"an \"lpd\" server, you must turn on the \"cups-lpd\" daemon. It has\n"
-"graphical front-ends for printing or choosing printer options.\n"
-"\n"
-" * \"lprNG\"``line printer daemon New Generation''. This system can do\n"
-"approximately the same things the others can do, but it will print to\n"
-"printers mounted on a Novell Network, because it supports the IPX protocol,\n"
-"and it can print directly to shell commands. If you have need of Novell or\n"
-"printing to commands without using a separate pipe construct, use lprNG.\n"
-"Otherwise, CUPS is preferable as it is simpler and better at working over\n"
-"networks."
-msgstr ""
-
-#: ../../help.pm_.c:757
-#, fuzzy
-msgid ""
-"DrakX now detects any IDE device present in your computer. It will also\n"
-"scan for one or more PCI SCSI card(s) on your system. If a SCSI card is\n"
-"found, DrakX will automatically install the appropriate driver.\n"
-"\n"
-"Because hardware detection does not always detect a piece of hardware,\n"
-"DrakX will ask you to confirm if a PCI SCSI card is present. Click \"Yes\"\n"
-"if you know that there is a SCSI card installed in your machine. You will\n"
-"be presented a list of SCSI cards to choose from. Click \"No\" if you have\n"
-"no SCSI hardware. If you are unsure, you can check the list of hardware\n"
-"detected in your machine by selecting \"See hardware info\" and clicking\n"
-"\"OK\". Examine the list of hardware and then click on the \"OK\" button to\n"
-"return to the SCSI interface question.\n"
-"\n"
-"If you have to manually specify your adapter, DrakX will ask if you want to\n"
-"specify options for it. You should allow DrakX to probe the hardware for\n"
-"the card-specific options which the hardware needs to initialize. This\n"
-"usually works well.\n"
-"\n"
-"If DrakX is not able to probe for the options which need to be passed, you\n"
-"will need to provide options to the driver manually. Please review the\n"
-"``User Guide'' (chapter 3, in the ``Collecting Information on Your\n"
-"Hardware'' section) for hints on retrieving the parameters required from\n"
-"hardware documentation, from the manufacturer's web site (if you have\n"
-"Internet access) or from MicrosoftWindows (if you used this hardware with\n"
-"Windows on your system)."
-msgstr ""
-"El DrakX intentarą trobar el(s) adaptador(s) SCSI PCI. \n"
-"Si en troba, i sap quin programa de control utilitzar, el(s)\n"
-"instal·larą automąticament.\n"
-"\n"
-"\n"
-"Si no teniu cap adaptador SCSI, un adaptador SCSI ISA, o un\n"
-"adaptador SCSI PCI que el DrakX no reconegui, se us demanarą si teniu\n"
-"un adaptador SCSI al sistema. Si no en teniu cap, simplement feu clic a \"No"
-"\". Si feu\n"
-"clic a \"Sķ\", apareixerą una llista de programes de control on podreu\n"
-"seleccionar l'adaptador concret.\n"
-"\n"
-"\n"
-"Si heu hagut de seleccionar l'adaptador manualment, el DrakX us preguntarą\n"
-"si voleu indicar opcions per a ell. Convé que deixeu que el DrakX comprovi\n"
-"el maquinari per a les opcions; aixņ sol funcionar bé.\n"
-"\n"
-"\n"
-"Si no, us caldrą proporcionar les opcions al programa de control. Consulteu\n"
-"el capķtol 3 de la Guia de l'usuari, secció \"Informació obtinguda del\n"
-"maquinari\" per saber com treure aquesta informació de la documentació del\n"
-"maquinari, del lloc web del fabricant (si teniu accés a Internet) o del\n"
-"Microsoft Windows (si el teniu al sistema)."
-
-#: ../../help.pm_.c:784
-#, fuzzy
-msgid ""
-"You can add additional entries for yaboot, either for other operating\n"
-"systems, alternate kernels, or for an emergency boot image.\n"
-"\n"
-"For other OSs, the entry consists only of a label and the \"root\"\n"
-"partition.\n"
-"\n"
-"For Linux, there are a few possible options:\n"
-"\n"
-" * Label: this is simply the name you will have to type at the yaboot "
-"prompt\n"
-"to select this boot option;\n"
-"\n"
-" * Image: this would be the name of the kernel to boot. Typically, vmlinux\n"
-"or a variation of vmlinux with an extension;\n"
-"\n"
-" * Root: the \"root\" device or ``/'' for your Linux installation;\n"
-"\n"
-" * Append: on Apple hardware, the kernel append option is used quite often\n"
-"to assist in initializing video hardware, or to enable keyboard mouse\n"
-"button emulation for the often lacking 2nd and 3rd mouse buttons on a stock\n"
-"Apple mouse. The following are some examples:\n"
-"\n"
-" video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111 "
-"hda=autotune\n"
-"\n"
-" video=atyfb:vmode:12,cmode:24 adb_buttons=103,111\n"
-"\n"
-" * Initrd: this option can be used either to load initial modules, before\n"
-"the boot device is available, or to load a ramdisk image for an emergency\n"
-"boot situation;\n"
-"\n"
-" * Initrd-size: the default ramdisk size is generally 4,096 bytes. If you\n"
-"need to allocate a large ramdisk, this option can be used;\n"
-"\n"
-" * Read-write: normally the \"root\" partition is initially brought up in\n"
-"read-only, to allow a file system check before the system becomes ``live''.\n"
-"Here, you can override this option;\n"
-"\n"
-" * NoVideo: should the Apple video hardware prove to be exceptionally\n"
-"problematic, you can select this option to boot in ``novideo'' mode, with\n"
-"native frame buffer support;\n"
-"\n"
-" * Default: selects this entry as being the default Linux selection,\n"
-"selectable by just pressing ENTER at the yaboot prompt. This entry will\n"
-"also be highlighted with a ``*'', if you press [Tab] to see the boot\n"
-"selections."
-msgstr ""
-"Podeu afegir entrades addicionals per al yaboot, ja sigui per a altres\n"
-"sistemes operatius, nuclis alternatius, o per a una imatge per a arrencades\n"
-"d'emergčncia.\n"
-"\n"
-"\n"
-"Per a altres OS, l'entrada només consta d'una etiqueta i de la partició "
-"arrel.\n"
-"\n"
-"\n"
-"Per al Linux, hi ha algunes opcions possibles: \n"
-"\n"
-"\n"
-" - Label: és només el nom a indicar a l'indicador del yaboot per\n"
-"seleccionar aquesta opció d'arrencada.\n"
-"\n"
-"\n"
-" - Image: el nom del nucli a arrencar. Normalment, vmlinux o una\n"
-"variació de vmlinux amb una extensió.\n"
-"\n"
-"\n"
-" - Rool: el dispositiu arrel o '/' per a la instal·lació del Linux.\n"
-"\n"
-"\n"
-" \n"
-" - Append: en maquinari Apple, l'opció d'addició de nuclis s'utilitza\n"
-"forēa sovint per auxiliar en la inicialització de maquinari de vķdeo o per\n"
-"habilitar l'emulació del botó del ratolķ de teclat per als 2n i 3r botons,\n"
-"que sovint no existeixen, d'un ratolķ Apple convencional. Alguns exemples\n"
-"d'aixņ són:\n"
-"\n"
-"\n"
-"\t video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111 "
-"hda=autotune\n"
-"\n"
-"\t video=atyfb:vmode:12,cmode:24 adb_buttons=103,111 \n"
-"\n"
-"\n"
-" \n"
-" - Initrd: aquesta opció es pot utilitzar per carregar els mņduls "
-"inicials,\n"
-"abans que el dispostiu d'arrencada estigui disponible, o per tornar a "
-"carregar\n"
-"una imatge de disc RAM en una situació d'arrencada d'emergčncia.\n"
-"\n"
-"\n"
-" - Initrd-size: la mida per defecte del disc RAM sol ser de 4.096 bytes. Si "
-"necessiteu assignar un disc RAM gran, podeu utilitzar aquesta opció.\n"
-"\n"
-"\n"
-" - Read-write: normalment, la partició 'root' es tracta inicialment com "
-"només de lectura per permetre una comprovació del sistema de fitxers abans "
-"que el sistema esdevingui 'viu'; podeu substituir aquesta opció aquķ.\n"
-"\n"
-"\n"
-" - NoVideo: en cas que el maquinari de vķdeo de Apple resulti sigui\n"
-"especialment problemątic, podeu seleccionar aquesta opció per arrencar\n"
-"en mode 'no-vķdeo', amb el suport nadiu per a memņria intermčdia de marcs.\n"
-"\n"
-"\n"
-" - Default: selecciona aquesta entrada com a selecció per defecte del\n"
-"Linux; se selecciona prement simplement Retorn a l'indicador del yaboot.\n"
-"Aquesta opció també es ressaltarą amb un '*' si premeu Tab per veure les\n"
-"seleccions d'arrencada."
-
-#: ../../help.pm_.c:830
-#, fuzzy
-msgid ""
-"Yaboot is a bootloader for NewWorld MacIntosh hardware. It is able to boot\n"
-"either GNU/Linux, MacOS or MacOSX if present on your computer. Normally,\n"
-"these other operating systems are correctly detected and installed. If this\n"
-"is not the case, you can add an entry by hand in this screen. Be careful to\n"
-"choose the correct parameters.\n"
-"\n"
-"Yaboot's main options are:\n"
-"\n"
-" * Init Message: a simple text message displayed before the boot prompt;\n"
-"\n"
-" * Boot Device: indicates where you want to place the information required\n"
-"to boot to GNU/Linux. Generally, you set up a bootstrap partition earlier\n"
-"to hold this information;\n"
-"\n"
-" * Open Firmware Delay: unlike LILO, there are two delays available with\n"
-"yaboot. The first delay is measured in seconds and at this point, you can\n"
-"choose between CD, OF boot, MacOS or Linux;\n"
-"\n"
-" * Kernel Boot Timeout: this timeout is similar to the LILO boot delay.\n"
-"After selecting Linux, you will have this delay in 0.1 second before your\n"
-"default kernel description is selected;\n"
-"\n"
-" * Enable CD Boot?: checking this option allows you to choose ``C'' for CD\n"
-"at the first boot prompt;\n"
-"\n"
-" * Enable OF Boot?: checking this option allows you to choose ``N'' for "
-"Open\n"
-"Firmware at the first boot prompt;\n"
-"\n"
-" * Default OS: you can select which OS will boot by default when the Open\n"
-"Firmware Delay expires."
-msgstr ""
-"El Yaboot és un carregador d'arrencada per a maquinari NewWorld MacIntosh.\n"
-"Pot arrencar tant el GNU/Linux com el MacOS o el MacOSX, si és que els "
-"teniu\n"
-"a l'ordinador. Normalment, aquests altres sistemes operatius es detecten i\n"
-"instal·len correctament; si no és aixķ, perņ, en aquesta pantalla podeu\n"
-"afegir una entrada manualment. Aneu amb compte de triar els parąmetres\n"
-"correctes.\n"
-"\n"
-"\n"
-"Les opcions principals del Yaboot són:\n"
-"\n"
-"\n"
-" - Missatge d'inicialització: un senzill missatge de text que apareix "
-"abans\n"
-"de l'indicador d'arrencada.\n"
-"\n"
-"\n"
-" - Dispositiu d'arrencada: indica on voleu situar la informació necessąria\n"
-"per arrencar el GNU/Linux. Normalment, haureu configurat abans una partició\n"
-"bootstrap que contindrą aquesta informació.\n"
-"\n"
-"\n"
-" - Demora de l'Open Firmware: a diferčncia del LILO, amb el Yaboot hi ha\n"
-"dues demores disponibles. La primera d'elles es mesura en segons i, en "
-"aquest\n"
-"punt, podeu triar entre CD, arrencada OF, MacOS o Linux.\n"
-"\n"
-"\n"
-" - Temps mąxim d'arrencada del nucli: aquest temps mąxim és similar a la "
-"demora d'arrencada del LILO. Després de seleccionar el Linux tindreu aquesta "
-"demora en 0,1 segons abans que se seleccioni la descripció per defecte del "
-"nucli.\n"
-"\n"
-"\n"
-" - Habilitar l'arrencada des de CD?: si activeu aquesta opció podreu triar\n"
-"'C' per a CD al primer indicador de l'arrencada.\n"
-"\n"
-"\n"
-" - Habilitar l'arrencada OF?: si activeu aquesta opció podreu triar 'N' "
-"per\n"
-"Open Firmware al primer indicador de l'arrencada.\n"
-"\n"
-"\n"
-" - OS per defecte: podeu seleccionar amb quin OS, per defecte, s'arrencarą\n"
-"quan la demora de l'Open Firmware venci."
-
-#: ../../help.pm_.c:862
-msgid ""
-"Here are presented various parameters concerning your machine. Depending on\n"
-"your installed hardware, you may or not, see the following entries:\n"
-"\n"
-" * \"Mouse\": check the current mouse configuration and click on the button\n"
-"to change it if necessary;\n"
-"\n"
-" * \"Keyboard\": check the current keyboard map configuration and click on\n"
-"the button to change that if necessary;\n"
-"\n"
-" * \"Timezone\": DrakX, by default, guesses your time zone from the "
-"language\n"
-"you have chosen. But here again, as for the choice of a keyboard, you may\n"
-"not be in the country for which the chosen language should correspond.\n"
-"Hence, you may need to click on the \"Timezone\" button in order to\n"
-"configure the clock according to the time zone you are in;\n"
-"\n"
-" * \"Printer\": clicking on the \"No Printer\" button will open the printer\n"
-"configuration wizard;\n"
-"\n"
-" * \"Sound card\": if a sound card is detected on your system, it is\n"
-"displayed here. No modification possible at installation time;\n"
-"\n"
-" * \"TV card\": if a TV card is detected on your system, it is displayed\n"
-"here. No modification possible at installation time;\n"
-"\n"
-" * \"ISDN card\": if an ISDN card is detected on your system, it is\n"
-"displayed here. You can click on the button to change the parameters\n"
-"associated with it."
-msgstr ""
-
-#: ../../help.pm_.c:891
-msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandrake Linux partition. Be careful, all data present on it will be lost\n"
-"and will not be recoverable!"
-msgstr ""
-"Escolliu el disc dur que voleu buidar per instal·lar la nova partició "
-"Linux-\n"
-"Mandrake. Aneu amb compte, se'n perdran totes les dades i no es podran "
-"recuperar."
-
-#: ../../help.pm_.c:896
-msgid ""
-"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"
-"any Windows data.\n"
-"\n"
-"Click on \"Cancel\" to cancel this operation without losing any data and\n"
-"partitions present on this hard drive."
-msgstr ""
-"Feu clic a \"D'acord\" si voleu suprimir totes les dades i\n"
-"particions que hi ha en aquesta unitat de disc. Aneu amb compte, perquč, un "
-"cop hagueu fet clic a \"D'acord\", no podreu recuperar cap dada ni partició "
-"del disc,\n"
-"incloent las dades de Windows.\n"
-"\n"
-"\n"
-"Feu clic a \"Cancel·la\" per anul·lar aquesta operació sense perdre cap "
-"dada\n"
-"ni partició d'aquest disc."
-
-#: ../../install2.pm_.c:113
-#, c-format
-msgid ""
-"Can't 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 ""
-
-#: ../../install2.pm_.c:169
-#, c-format
-msgid "You must also format %s"
-msgstr ""
-
-#: ../../install_any.pm_.c:411
-#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They don't have any known security\n"
-"issues, but some new could be found. In that case, you must make sure to "
-"upgrade\n"
-"as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
-msgstr ""
-
-#: ../../install_any.pm_.c:447
-msgid "Can't use broadcast with no NIS domain"
-msgstr "No es pot utilitzar l'emissió sense un domini NIS"
-
-#: ../../install_any.pm_.c:793
-#, c-format
-msgid "Insert a FAT formatted floppy in drive %s"
-msgstr "Inseriu un disquet formatat amb FAT a la unitat %s"
-
-#: ../../install_any.pm_.c:797
-msgid "This floppy is not FAT formatted"
-msgstr "Aquest disquet no estą formatat en FAT"
-
-#: ../../install_any.pm_.c:809
-msgid ""
-"To use this saved packages selection, boot installation with ``linux "
-"defcfg=floppy''"
-msgstr ""
-"Per utilitzar aquesta selecció de paquets desada, arrenqueu la instal·lació "
-"amb ``linux defcfg=floppy''"
-
-#: ../../install_any.pm_.c:831 ../../partition_table.pm_.c:763
-#, c-format
-msgid "Error reading file %s"
-msgstr "S'ha produļt un error en llegir el fitxer %s"
-
-#: ../../install_interactive.pm_.c:23
-#, c-format
-msgid ""
-"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
-"You can find some information about them at: %s"
-msgstr ""
-"Part del maquinari del vostre ordinador necessita programes de control\n"
-"``registrats'' per poder funcionar. En podeu trobar informació a: %s"
-
-#: ../../install_interactive.pm_.c:58
-msgid ""
-"You must have a root partition.\n"
-"For this, create a partition (or click on an existing one).\n"
-"Then choose action ``Mount point'' and set it to `/'"
-msgstr ""
-"Heu de tenir una partició arrel.\n"
-"Per fer-ho, creeu una partició (o feu clic a una d'existent).\n"
-"Després, trieu l'acció ``Punt de muntatge'' i doneu-li el valor '/'"
-
-#: ../../install_interactive.pm_.c:63
-msgid "You must have a swap partition"
-msgstr "Heu de tenir una partició d'intercanvi"
-
-#: ../../install_interactive.pm_.c:64
-msgid ""
-"You don't have a swap partition\n"
-"\n"
-"Continue anyway?"
-msgstr ""
-"No teniu cap partició d'intercanvi\n"
-"\n"
-"Voleu continuar igualment?"
-
-#: ../../install_interactive.pm_.c:67 ../../install_steps.pm_.c:163
-#, fuzzy
-msgid "You must have a FAT partition mounted in /boot/efi"
-msgstr "Heu de tenir una partició d'intercanvi"
-
-#: ../../install_interactive.pm_.c:90
-msgid "Use free space"
-msgstr "Utilitza l'espai lliure"
-
-#: ../../install_interactive.pm_.c:92
-msgid "Not enough free space to allocate new partitions"
-msgstr "No hi ha prou espai lliure per assignar noves particions"
-
-#: ../../install_interactive.pm_.c:100
-msgid "Use existing partition"
-msgstr "Utilitza la partició existent"
-
-#: ../../install_interactive.pm_.c:102
-msgid "There is no existing partition to use"
-msgstr "No existeix cap partició per utilitzar"
-
-#: ../../install_interactive.pm_.c:109
-msgid "Use the Windows partition for loopback"
-msgstr "Utilitza la particio Windows per al loopback"
-
-#: ../../install_interactive.pm_.c:112
-msgid "Which partition do you want to use for Linux4Win?"
-msgstr "Quina partició voleu utilitzar per al Linux4Win?"
-
-#: ../../install_interactive.pm_.c:114
-msgid "Choose the sizes"
-msgstr "Escolliu les mides"
-
-#: ../../install_interactive.pm_.c:115
-msgid "Root partition size in MB: "
-msgstr "Mida de la partició arrel en MB: "
-
-#: ../../install_interactive.pm_.c:116
-msgid "Swap partition size in MB: "
-msgstr "Mida de la partició d'intercanvi en MB: "
-
-#: ../../install_interactive.pm_.c:125
-msgid "Use the free space on the Windows partition"
-msgstr "Utilitza l'espai lliure de la partició de Windows"
-
-#: ../../install_interactive.pm_.c:128
-msgid "Which partition do you want to resize?"
-msgstr "A quina partició voleu canviar la mida?"
-
-#: ../../install_interactive.pm_.c:130
-msgid "Computing Windows filesystem bounds"
-msgstr "S'estan calculant els lķmits del sistema de fitxers de Windows"
-
-#: ../../install_interactive.pm_.c:133
-#, c-format
-msgid ""
-"The FAT resizer is unable to handle your partition, \n"
-"the following error occured: %s"
-msgstr ""
-"El redimensionador de la FAT no pot gestionar la vostra partició, \n"
-"s'ha produļt l'error següent: %s"
-
-#: ../../install_interactive.pm_.c:136
-msgid "Your Windows partition is too fragmented, please run ``defrag'' first"
-msgstr ""
-"La partició de Windows estą massa fragmentada; si us plau, executeu "
-"``defrag'' primer"
-
-#: ../../install_interactive.pm_.c:137
-#, fuzzy
-msgid ""
-"WARNING!\n"
-"\n"
-"DrakX will now resize your Windows partition. Be careful:\n"
-"this operation is dangerous. If you have not already done\n"
-"so, you should first exit the installation, run scandisk\n"
-"under Windows (and optionally run defrag), then restart the\n"
-"installation. You should also backup your data.\n"
-"When sure, press Ok."
-msgstr ""
-"ATENCIÓ!\n"
-"\n"
-"Ara, el DrakX canviarą la mida de la vostra partició de Windows. Aneu amb\n"
-"compte: aquesta operació és perillosa. Si encara no ho heu fet, sortiu de "
-"la\n"
-"instal·lació, executeu l'Scandisk sota Windows (i potser també el Defrag), "
-"i\n"
-"torneu a comenēar la instal·lació. Feu també una cņpia de seguretat de les\n"
-"vostres dades.\n"
-"Quan estigueu segur, premeu D'acord."
-
-#: ../../install_interactive.pm_.c:147
-msgid "Which size do you want to keep for windows on"
-msgstr "Quina mida voleu deixar per a la partició de Windows?"
-
-#: ../../install_interactive.pm_.c:148
-#, c-format
-msgid "partition %s"
-msgstr "partició %s"
-
-#: ../../install_interactive.pm_.c:155
-#, c-format
-msgid "FAT resizing failed: %s"
-msgstr "Ha fallat la redimensió de la FAT: %s"
-
-#: ../../install_interactive.pm_.c:170
-msgid ""
-"There is no FAT partitions to resize or to use as loopback (or not enough "
-"space left)"
-msgstr ""
-"No hi ha particions FAT a quč canviar la mida o per utilitzar-les com a "
-"loopback (o no queda prou espai)"
-
-#: ../../install_interactive.pm_.c:176
-msgid "Erase entire disk"
-msgstr "Esborra el disc complet"
-
-#: ../../install_interactive.pm_.c:176
-msgid "Remove Windows(TM)"
-msgstr "Elimina el Windows(TM)"
-
-#: ../../install_interactive.pm_.c:179
-msgid "You have more than one hard drive, which one do you install linux on?"
-msgstr "Teniu més d'un disc dur; en quin voleu instal·lar el Linux?"
-
-#: ../../install_interactive.pm_.c:182
-#, c-format
-msgid "ALL existing partitions and their data will be lost on drive %s"
-msgstr ""
-"Es perdran TOTES les particions, i les dades que contenen, de la unitat %s"
-
-#: ../../install_interactive.pm_.c:190
-msgid "Custom disk partitioning"
-msgstr "Particionament personalitzat de disc"
-
-#: ../../install_interactive.pm_.c:194
-msgid "Use fdisk"
-msgstr "Utilitza l'fdisk"
-
-#: ../../install_interactive.pm_.c:197
-#, c-format
-msgid ""
-"You can now partition %s.\n"
-"When you are done, don't forget to save using `w'"
-msgstr ""
-"Ara podeu fer les particions a %s.\n"
-"Quan acabeu, no oblideu desar-les utiltzant `w'"
-
-#: ../../install_interactive.pm_.c:226
-msgid "You don't have enough free space on your Windows partition"
-msgstr "No teniu prou espai lliure a la partició de Windows"
-
-#: ../../install_interactive.pm_.c:242
-msgid "I can't find any room for installing"
-msgstr "No puc trobar espai per a la instal·lació"
-
-#: ../../install_interactive.pm_.c:246
-msgid "The DrakX Partitioning wizard found the following solutions:"
-msgstr ""
-"L'assistent de particionament del DrakX ha trobat les solucions següents:"
-
-#: ../../install_interactive.pm_.c:251
-#, c-format
-msgid "Partitioning failed: %s"
-msgstr "Ha fallat el particionament: %s"
-
-#: ../../install_interactive.pm_.c:261
-msgid "Bringing up the network"
-msgstr "S'estą activant la xarxa"
-
-#: ../../install_interactive.pm_.c:266
-msgid "Bringing down the network"
-msgstr "S'estą desactivant la xarxa"
-
-#: ../../install_steps.pm_.c:76
-msgid ""
-"An error occurred, but I don't know how to handle it nicely.\n"
-"Continue at your own risk."
-msgstr ""
-"S'ha produļt un error, perņ no sé com gestionar-lo correctament.\n"
-"Si continueu, és sota la vostra responsabilitat."
-
-#: ../../install_steps.pm_.c:205
-#, c-format
-msgid "Duplicate mount point %s"
-msgstr "Duplica el punt de muntatge %s"
-
-#: ../../install_steps.pm_.c:388
-msgid ""
-"Some important packages didn't get installed properly.\n"
-"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl Mandrake/RPMS/*.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 "
-"Mandrake/RPMS/*.rpm\"\n"
-
-#: ../../install_steps.pm_.c:458
-#, c-format
-msgid "Welcome to %s"
-msgstr "Benvingut a %s"
-
-#: ../../install_steps.pm_.c:513 ../../install_steps.pm_.c:755
-msgid "No floppy drive available"
-msgstr "No hi ha cap unitat de disquet disponible"
-
-#: ../../install_steps_auto_install.pm_.c:76
-#: ../../install_steps_stdio.pm_.c:22
-#, c-format
-msgid "Entering step `%s'\n"
-msgstr "S'estą introduint el pas `%s'\n"
-
-#: ../../install_steps_gtk.pm_.c:148
-msgid ""
-"Your system is low on resource. You may have some problem installing\n"
-"Mandrake Linux. 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 Mandrake Linux. 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'"
-
-#: ../../install_steps_gtk.pm_.c:159 ../../install_steps_interactive.pm_.c:224
-msgid "Install Class"
-msgstr "Tipus d'instal·lació"
-
-#: ../../install_steps_gtk.pm_.c:162
-#, fuzzy
-msgid "Please choose one of the following classes of installation:"
-msgstr "Si us plau, trieu un dels tipus d'instal·lació següents:"
-
-#: ../../install_steps_gtk.pm_.c:228
-#, c-format
-msgid ""
-"The total size for the groups you have selected is approximately %d MB.\n"
-msgstr ""
-"La mida total dels grups que heu seleccionat es d'aproximadament %d MB.\n"
-
-#: ../../install_steps_gtk.pm_.c:230
-#, c-format
-msgid ""
-"If you wish to install less than this size,\n"
-"select the percentage of packages that you want to install.\n"
-"\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of 100%% will install all selected packages."
-msgstr ""
-"Si no voleu instal·lar tants MB, seleccioneu el percentatge de paquets\n"
-"que voleu instal·lar.\n"
-"\n"
-"Un percentatge baix instal·larą només els paquets més importants;\n"
-"un percentatge del 100%% instal·larą tots els paquets seleccionats."
-
-#: ../../install_steps_gtk.pm_.c:235
-#, c-format
-msgid ""
-"You have space on your disk for only %d%% of these packages.\n"
-"\n"
-"If you wish to install less than this,\n"
-"select the percentage of packages that you want to install.\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of %d%% will install as many packages as possible."
-msgstr ""
-"Només teniu prou espai al disc per a %d%% d'aquests paquets.\n"
-"\n"
-"Si en voleu instal·lar menys, seleccioneu el percentatge de paquets\n"
-"que voleu instal·lar.\n"
-"Un percentatge baix instal·larą només els paquets més importants;\n"
-"un percentatge del %d%% instal·larą tants paquets com sigui possible."
-
-#: ../../install_steps_gtk.pm_.c:241
-msgid "You will be able to choose them more specifically in the next step."
-msgstr "Podreu fer una elecció més concreta al pas següent"
-
-#: ../../install_steps_gtk.pm_.c:243
-msgid "Percentage of packages to install"
-msgstr "Percentatge de paquets per instal·lar"
-
-#: ../../install_steps_gtk.pm_.c:291 ../../install_steps_interactive.pm_.c:705
-msgid "Package Group Selection"
-msgstr "Selecció del grup de paquets"
-
-#: ../../install_steps_gtk.pm_.c:323 ../../install_steps_interactive.pm_.c:720
-msgid "Individual package selection"
-msgstr "Selecció individual de paquets"
-
-#: ../../install_steps_gtk.pm_.c:346 ../../install_steps_interactive.pm_.c:645
-#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Mida total: %d / %d MB"
-
-#: ../../install_steps_gtk.pm_.c:391
-msgid "Bad package"
-msgstr "Paquet incorrecte"
-
-#: ../../install_steps_gtk.pm_.c:392
-#, c-format
-msgid "Name: %s\n"
-msgstr "Nom: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:393
-#, c-format
-msgid "Version: %s\n"
-msgstr "Versió: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:394
-#, c-format
-msgid "Size: %d KB\n"
-msgstr "Mida: %d kB\n"
-
-#: ../../install_steps_gtk.pm_.c:395
-#, c-format
-msgid "Importance: %s\n"
-msgstr "Importąncia: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:417
-msgid ""
-"You can't 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"
-
-#: ../../install_steps_gtk.pm_.c:422
-msgid "The following packages are going to be installed"
-msgstr "Ara s'instal·laran els paquets següents"
-
-#: ../../install_steps_gtk.pm_.c:423
-msgid "The following packages are going to be removed"
-msgstr "Ara s'eliminaran els paquets següents"
-
-#: ../../install_steps_gtk.pm_.c:435
-msgid "You can't select/unselect this package"
-msgstr "No podeu seleccionar/desseleccionar aquest paquet"
-
-#: ../../install_steps_gtk.pm_.c:447
-msgid "This is a mandatory package, it can't be unselected"
-msgstr "Aquest paquet és obligatori; no es pot deseleccionar"
-
-#: ../../install_steps_gtk.pm_.c:449
-msgid "You can't unselect this package. It is already installed"
-msgstr "No podeu desseleccionar aquest paquet; ja estą instal·lat"
-
-#: ../../install_steps_gtk.pm_.c:453
-msgid ""
-"This package must be upgraded\n"
-"Are you sure you want to deselect it?"
-msgstr ""
-"Aquest paquet s'ha d'actualitzar\n"
-"Esteu segur que voleu desseleccionar-lo?"
-
-#: ../../install_steps_gtk.pm_.c:457
-msgid "You can't unselect this package. It must be upgraded"
-msgstr "No podeu desseleccionar aquest paquet; s'ha d'actualitzar"
-
-#: ../../install_steps_gtk.pm_.c:462
-msgid "Show automatically selected packages"
-msgstr "Mostra automąticament els paquets seleccionats"
-
-#: ../../install_steps_gtk.pm_.c:463 ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Install"
-msgstr "Instal·la"
-
-#: ../../install_steps_gtk.pm_.c:466
-#, fuzzy
-msgid "Load/Save on floppy"
-msgstr "Desa al disquet"
-
-#: ../../install_steps_gtk.pm_.c:467
-#, fuzzy
-msgid "Updating package selection"
-msgstr "Desa la selecció de paquets"
-
-#: ../../install_steps_gtk.pm_.c:472
-#, fuzzy
-msgid "Minimal install"
-msgstr "Desinstal·la"
-
-#: ../../install_steps_gtk.pm_.c:487 ../../install_steps_interactive.pm_.c:555
-msgid "Choose the packages you want to install"
-msgstr "Escolliu els paquets que voleu instal·lar"
-
-#: ../../install_steps_gtk.pm_.c:503 ../../install_steps_interactive.pm_.c:787
-msgid "Installing"
-msgstr "S'estą instal·lant"
-
-#: ../../install_steps_gtk.pm_.c:509
-msgid "Estimating"
-msgstr "S'estą estimant"
-
-#: ../../install_steps_gtk.pm_.c:516
-msgid "Time remaining "
-msgstr "Temps restant "
-
-#: ../../install_steps_gtk.pm_.c:528
-msgid "Please wait, preparing installation"
-msgstr "Si us plau, espereu, s'estą preparant la instal·lació"
-
-#: ../../install_steps_gtk.pm_.c:611
-#, c-format
-msgid "%d packages"
-msgstr "%d paquets"
-
-#: ../../install_steps_gtk.pm_.c:616
-#, c-format
-msgid "Installing package %s"
-msgstr "S'estą instal·lant el paquet %s"
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-#: ../../standalone/drakautoinst_.c:203
-msgid "Accept"
-msgstr "Accepta"
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-msgid "Refuse"
-msgstr "Rebutja"
-
-#: ../../install_steps_gtk.pm_.c:658 ../../install_steps_interactive.pm_.c:812
-#, c-format
-msgid ""
-"Change your Cd-Rom!\n"
-"\n"
-"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
-"done.\n"
-"If you don't have it, press Cancel to avoid installation from this Cd-Rom."
-msgstr ""
-"Canvieu el vostre CD-ROM!\n"
-"\n"
-"Si us plau, inseriu el CD-ROM etiquetat com \"%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."
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_gtk.pm_.c:676
-#: ../../install_steps_interactive.pm_.c:824
-#: ../../install_steps_interactive.pm_.c:828
-msgid "Go on anyway?"
-msgstr "Voleu seguir igualment?"
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_interactive.pm_.c:824
-msgid "There was an error ordering packages:"
-msgstr "S'ha produļt un error en ordenar els paquets"
-
-#: ../../install_steps_gtk.pm_.c:676 ../../install_steps_interactive.pm_.c:828
-msgid "There was an error installing packages:"
-msgstr "S'ha produļt un error en instal·lar els paquets"
-
-#: ../../install_steps_interactive.pm_.c:10
-msgid ""
-"\n"
-"Warning\n"
-"\n"
-"Please read carefully the terms below. If you disagree with any\n"
-"portion, you are not allowed to install the next CD media. Press 'Refuse' \n"
-"to continue the installation without using these media.\n"
-"\n"
-"\n"
-"Some components contained in the next CD media are not governed\n"
-"by the GPL License or similar agreements. Each such component is then\n"
-"governed by the terms and conditions of its own specific license. \n"
-"Please read carefully and comply with such specific licenses before \n"
-"you use or redistribute the said components. \n"
-"Such licenses will in general prevent the transfer, duplication \n"
-"(except for backup purposes), redistribution, reverse engineering, \n"
-"de-assembly, de-compilation or modification of the component. \n"
-"Any breach of agreement will immediately terminate your rights under \n"
-"the specific license. Unless the specific license terms grant you such\n"
-"rights, you usually cannot install the programs on more than one\n"
-"system, or adapt it to be used on a network. In doubt, please contact \n"
-"directly the distributor or editor of the component. \n"
-"Transfer to third parties or copying of such components including the \n"
-"documentation is usually forbidden.\n"
-"\n"
-"\n"
-"All rights to the components of the next CD media belong to their \n"
-"respective authors and are protected by intellectual property and \n"
-"copyright laws applicable to software programs.\n"
-msgstr ""
-"\n"
-"Warning\n"
-"\n"
-"Si us plau, llegiu atentament les cląusules següents. Si no esteu\n"
-"d'acord amb qualsevol d'elles, no esteu autoritzat a instal·lar\n"
-"els CD següents. Premeu 'Rebutja-ho' per continuar la instal·lació\n"
-"sense utilitzar aquests CD.\n"
-"\n"
-"\n"
-"Alguns dels components que s'inclouen en aquest CD no estan\n"
-"regits per la llicčncia GPL o acords semblants. Cada un d'aquests\n"
-"components es regeix per les cląusules i condicions de la seva\n"
-"prņpia llicčncia especķfica. Si us plau, llegiu atentament i\n"
-"accepteu aquestes llicčncies especķfiques abans d'utilitzar o\n"
-"redistribuir els components esmentats. En general, aquestes\n"
-"llicčncies impedeixen la transferčncia, duplicació (excepte amb\n"
-"la finalitat de fer-ne cņpies de seguretat), redistribució,\n"
-"enginyeria inversa, deassemblatge, decompilació o modificació del\n"
-"component. Qualsevol violació de l'acord finalitzarą immediatament\n"
-"els vostres drets sobre la llicčncia especķfica. Tret que la\n"
-"llicčncia especķfica us en garanteixi els drets, normalment no\n"
-"podreu instal·lar els programes en més d'un sistema, ni adaptar-lo\n"
-"per utilitzar-lo en una xarxa. En cas de dubte, poseu-vos en\n"
-"contacte directament amb el distribuļdor o editor del component.\n"
-"La transferčncia a terceres parts i la cņpia d'aquests components,\n"
-"incloent la documentació, estan normalments prohibides.\n"
-"\n"
-"\n"
-"Tots els drets sobre els components del CD següent pretanyen als\n"
-"seus autors respectius i estan protegits per les lleis de\n"
-"propietat intel·lectual i de copyright aplicables als programes\n"
-"informątics.\n"
-
-#: ../../install_steps_interactive.pm_.c:67
-msgid "An error occurred"
-msgstr "S'ha produļt un error"
-
-#: ../../install_steps_interactive.pm_.c:85
-#, fuzzy
-msgid "Do you really want to leave the installation?"
-msgstr "Voleu reiniciar la xarxa"
-
-#: ../../install_steps_interactive.pm_.c:108
-msgid "License agreement"
-msgstr "Acord de llicčncia"
-
-#: ../../install_steps_interactive.pm_.c:109
-msgid ""
-"Introduction\n"
-"\n"
-"The operating system and the different components available in the Mandrake "
-"Linux distribution \n"
-"shall be called the \"Software Products\" hereafter. The Software Products "
-"include, but are not \n"
-"restricted to, the set of programs, methods, rules and documentation related "
-"to the operating \n"
-"system and the different components of the Mandrake Linux distribution.\n"
-"\n"
-"\n"
-"1. License Agreement\n"
-"\n"
-"Please read carefully this document. This document is a license agreement "
-"between you and \n"
-"MandrakeSoft S.A. which applies to the Software Products.\n"
-"By installing, duplicating or using the Software Products in any manner, you "
-"explicitly \n"
-"accept and fully agree to conform to the terms and conditions of this "
-"License. \n"
-"If you disagree with any portion of the License, you are not allowed to "
-"install, duplicate or use \n"
-"the Software Products. \n"
-"Any attempt to install, duplicate or use the Software Products in a manner "
-"which does not comply \n"
-"with the terms and conditions of this License is void and will terminate "
-"your rights under this \n"
-"License. Upon termination of the License, you must immediately destroy all "
-"copies of the \n"
-"Software Products.\n"
-"\n"
-"\n"
-"2. Limited Warranty\n"
-"\n"
-"The Software Products and attached documentation are provided \"as is\", "
-"with no warranty, to the \n"
-"extent permitted by law.\n"
-"MandrakeSoft S.A. will, in no circumstances and to the extent permitted by "
-"law, be liable for any special,\n"
-"incidental, direct or indirect damages whatsoever (including without "
-"limitation damages for loss of \n"
-"business, interruption of business, financial loss, legal fees and penalties "
-"resulting from a court \n"
-"judgment, or any other consequential loss) arising out of the use or "
-"inability to use the Software \n"
-"Products, even if MandrakeSoft S.A. has been advised of the possibility or "
-"occurance of such \n"
-"damages.\n"
-"\n"
-"LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN SOME "
-"COUNTRIES\n"
-"\n"
-"To the extent permitted by law, MandrakeSoft S.A. or its distributors will, "
-"in no circumstances, be \n"
-"liable for any special, incidental, direct or indirect damages whatsoever "
-"(including without \n"
-"limitation damages for loss of business, interruption of business, financial "
-"loss, legal fees \n"
-"and penalties resulting from a court judgment, or any other consequential "
-"loss) arising out \n"
-"of the possession and use of software components or arising out of "
-"downloading software components \n"
-"from one of Mandrake Linux sites which are prohibited or restricted in some "
-"countries by local laws.\n"
-"This limited liability applies to, but is not restricted to, the strong "
-"cryptography components \n"
-"included in the Software Products.\n"
-"\n"
-"\n"
-"3. The GPL License and Related Licenses\n"
-"\n"
-"The Software Products consist of components created by different persons or "
-"entities. Most \n"
-"of these components are governed under the terms and conditions of the GNU "
-"General Public \n"
-"Licence, hereafter called \"GPL\", or of similar licenses. Most of these "
-"licenses allow you to use, \n"
-"duplicate, adapt or redistribute the components which they cover. Please "
-"read carefully the terms \n"
-"and conditions of the license agreement for each component before using any "
-"component. Any question \n"
-"on a component license should be addressed to the component author and not "
-"to MandrakeSoft.\n"
-"The programs developed by MandrakeSoft S.A. are governed by the GPL License. "
-"Documentation written \n"
-"by MandrakeSoft S.A. is governed by a specific license. Please refer to the "
-"documentation for \n"
-"further details.\n"
-"\n"
-"\n"
-"4. Intellectual Property Rights\n"
-"\n"
-"All rights to the components of the Software Products belong to their "
-"respective authors and are \n"
-"protected by intellectual property and copyright laws applicable to software "
-"programs.\n"
-"MandrakeSoft S.A. reserves its rights to modify or adapt the Software "
-"Products, as a whole or in \n"
-"parts, by all means and for all purposes.\n"
-"\"Mandrake\", \"Mandrake Linux\" and associated logos are trademarks of "
-"MandrakeSoft S.A. \n"
-"\n"
-"\n"
-"5. Governing Laws \n"
-"\n"
-"If any portion of this agreement is held void, illegal or inapplicable by a "
-"court judgment, this \n"
-"portion is excluded from this contract. You remain bound by the other "
-"applicable sections of the \n"
-"agreement.\n"
-"The terms and conditions of this License are governed by the Laws of "
-"France.\n"
-"All disputes on the terms of this license will preferably be settled out of "
-"court. As a last \n"
-"resort, the dispute will be referred to the appropriate Courts of Law of "
-"Paris - France.\n"
-"For any question on this document, please contact MandrakeSoft S.A. \n"
-msgstr ""
-"Introducció\n"
-"\n"
-"D'ara endavant, hom es referirą al sistema operatiu i als diferents\n"
-"components disponibles en la distribució Mandrake Linux com als\n"
-"\"Productes de programari\". Els Productes de programari inclouen,\n"
-"perņ no estan restringits a, el conjunt de programes, mčtodes, regles\n"
-"i documentació relativa al sistema operatiu i els diferents\n"
-"components de la distribució Mandrake Linux.\n"
-"\n"
-"\n"
-"1. Acord de llicčncia\n"
-"\n"
-"Si us plau, llegiu atentament aquest document. Aquest document és un\n"
-"acord de llicčncia entre la vostra persona i MandrakeSoft S.A., que\n"
-"s'aplica als Productes de programari. Pel fet d'instal·lar, duplicar\n"
-"o utilitzar els Productes de programari en qualsevol forma esteu\n"
-"acceptant explķcitament, i expressant el vostre acord a, avenir-vos a\n"
-"les cląusules i condicions d'aquesta Llicčncia. Si no esteu d'acord\n"
-"amb qualsevol part de la Llicčncia, no esteu autoritzat a instal·lar,\n"
-"duplicar o utilitzar els Productes de programari. Qualsevol intent\n"
-"d'instal·lar, duplicar o utilitzar els Productes de programari en una\n"
-"forma que no s'adapti a les cląusules i condicions d'aquesta\n"
-"Llicčncia, és nul i finalitzarą els vostres drets sobre la mateixa.\n"
-"En finalitzar-se la Llicčncia, heu de destruir immediatament totes\n"
-"les cņpies dels Productes de programari.\n"
-"\n"
-"\n"
-"2. Garantia limitada\n"
-"\n"
-"Els Productes de programari i documentació adjunta es subministren\n"
-"\"tal com són\", sense cap garantia, fins al punt permés per la llei.\n"
-"MandrakeSoft S.A. no serą, sota cap circumstąncia, i fins al punt\n"
-"permés per la llei, responsable de cap dany especial, incidental ni\n"
-"directe (incloent, sense limitar-se a, els danys per pčrdua de\n"
-"negocis, interrupció de negocis, pčrdues financeres, multes i costes\n"
-"judicials, o qualsevol altre dany que resultin d'un judici, o\n"
-"qualsevol altre pčrdua d'importąncia) que resulti de l'śs o de la\n"
-"impossibilitat d'utilitzar els Productes de programari, fins i tot si\n"
-"MandrakeSoft S.A. ha estat avisat de la possibilitat que\n"
-"s'esdevinguin aquests danys.\n"
-"\n"
-"RESPONSABILITAT LIMITADA RELATIVA A LA POSSESSIÓ O UTILITZACIÓ DE PROGRAMARI "
-"PROHIBIT EN ALGUNS PAĻSOS\n"
-"\n"
-"Fins al punt permés per la llei, MandrakeSoft S.A. o els seus\n"
-"distribuļdors no seran, sota cap circumstąncia, responsables de cap\n"
-"dany especial, incidental ni directe (incloent, sense limitar-se a,\n"
-"els danys per pčrdua de negocis, interrupció de negocis, pčrdues\n"
-"financeres, multes i costes judicials, o qualsevol altre dany que\n"
-"resultin d'un judici, o qualsevol altre pčrdua d'importąncia) que\n"
-"resulti de la possessió i utilització dels components de programari o\n"
-"de la seva descąrrega des d'un dels llocs de Mandrake Linux, que\n"
-"estiguin prohibides o restringides en alguns paļsos per les lleis\n"
-"locals. Aquesta responsabilitat limitada s'aplica, perņ no estą\n"
-"limitada a, els potents components criptogrąfics inclosos als\n"
-"Productes de programari.\n"
-"\n"
-"\n"
-"3. la llicčncia GPL i llicčncies relacionades\n"
-"\n"
-"Els Productes de programari consisteixen en components creats per\n"
-"diferents persones o entitats. La majoria d'aquests components es\n"
-"regeixen per les cląusules i condicions de la Llicčncia General\n"
-"Pśblica de GNU, a la qual d'ara endavant hom s'hi referirą com a\n"
-"\"GPL\", o de llicčncies similars. la majoria d'aquestes llicčncies\n"
-"us permeten duplicar, adaptar o redistribuir els components que\n"
-"cobreixen. Si us plau, llegiu atentament les cląusules i condicions\n"
-"de l'acord de llicčncia de cada component abans d'utilitzar-lo.\n"
-"Qualsevol pregunta sobre la lllicčncia d'un component s'ha d'adreēar\n"
-"al seu autor i no a MandrakeSoft.\n"
-"Els programes desenvolupats per MandrakeSoft S.A. es regeixen per la\n"
-"llicčncia GPL.La documentació escrita per MandrakeSoft S.A. estą regida per "
-"una\n"
-"llicčncia especķfica; consulteu la documentació per a més\n"
-"informació.\n"
-"\n"
-"\n"
-"4. Drets sobre la propietat intel·lectual\n"
-"\n"
-"Tots els drets sobre els components dels Productes de programari\n"
-"pertanyen als seus autors respectius i estan protegits per les lleis\n"
-"de propietat intel·lectual i de copyright aplicables als programes\n"
-"informątics.\n"
-"MandrakeSoft S.A. es reserva els drets de modificar o adaptar els\n"
-"Productes de programari, totalment o parcialment, per tots els\n"
-"mitjans i amb totes les finalitats.\n"
-"\"Mandrake\", \"Mandrake Linux\" i els logotips associats son marques\n"
-"registrades de MandrakeSoft S.A.\n"
-"\n"
-"\n"
-"5. Lleis rectores \n"
-"\n"
-"Si qualsevol part d'aquest acord és declarat nul, il·legal o\n"
-"inaplicable per un tribunal, aquesta part s'exclourą del contracte.\n"
-"Seguiu obligat, perņ, per les altres seccions aplicables de\n"
-"l'acord.\n"
-"Les cląusules i condicions d'aquesta Llicčncia es regeixen per les\n"
-"lleis de Franēa.\n"
-"Tots els litigis sobre les cląusules d'aquesta llicčncia es dirimiran\n"
-"preferiblement fora dels tribunals. Com a śltim recurs, el litigi es\n"
-"portarą als tribunals competents de Parķs, Franēa.\n"
-"Per a qualsevol tema relacionat amb aquest document, poseu-vos en\n"
-"contacte amb MandrakeSoft S.A.\n"
-
-#: ../../install_steps_interactive.pm_.c:205
-#: ../../install_steps_interactive.pm_.c:1045
-#: ../../standalone/keyboarddrake_.c:28
-msgid "Keyboard"
-msgstr "Teclat"
-
-#: ../../install_steps_interactive.pm_.c:206
-#, fuzzy
-msgid "Please choose your keyboard layout."
-msgstr "Si us plau, selecioneu la disposició del vostre teclat."
-
-#: ../../install_steps_interactive.pm_.c:207
-msgid "Here is the full list of keyboards available"
-msgstr "Aquesta és la llista completa de teclats disponibles"
-
-#: ../../install_steps_interactive.pm_.c:224
-msgid "Which installation class do you want?"
-msgstr "Quin tipus d'instal·lació voleu?"
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Install/Update"
-msgstr "Instal·la/Actualitza"
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Is this an install or an update?"
-msgstr "Es tracta d'una instal·lació o d'una actualització?"
-
-#: ../../install_steps_interactive.pm_.c:235
-msgid "Recommended"
-msgstr "Recomanada"
-
-#: ../../install_steps_interactive.pm_.c:238
-#: ../../install_steps_interactive.pm_.c:241
-msgid "Expert"
-msgstr "Expert"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-#, fuzzy
-msgid "Upgrade"
-msgstr "Actualitza"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-#, fuzzy
-msgid "Upgrade packages only"
-msgstr "Desa la selecció de paquets"
-
-#: ../../install_steps_interactive.pm_.c:266
-#, fuzzy
-msgid "Please choose the type of your mouse."
-msgstr "Si us plau, seleccioneu el vostre tipus de ratolķ."
-
-#: ../../install_steps_interactive.pm_.c:272 ../../standalone/mousedrake_.c:65
-msgid "Mouse Port"
-msgstr "Port del ratolķ"
-
-#: ../../install_steps_interactive.pm_.c:273 ../../standalone/mousedrake_.c:66
-msgid "Please choose on which serial port your mouse is connected to."
-msgstr ""
-"Si us plau, seleccioneu el port sčrie a quč estą connectat el vostre ratolķ."
-
-#: ../../install_steps_interactive.pm_.c:281
-msgid "Buttons emulation"
-msgstr "Emulació dels botons"
-
-#: ../../install_steps_interactive.pm_.c:283
-msgid "Button 2 Emulation"
-msgstr "Emulació del botó 2"
-
-#: ../../install_steps_interactive.pm_.c:284
-msgid "Button 3 Emulation"
-msgstr "Emulació del botó 3"
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "Configuring PCMCIA cards..."
-msgstr "S'estan configurant les targetes PCMCIA..."
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "PCMCIA"
-msgstr "PCMCIA"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "Configuring IDE"
-msgstr "S'estą configurant l'IDE"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "IDE"
-msgstr "IDE"
-
-#: ../../install_steps_interactive.pm_.c:327
-msgid "no available partitions"
-msgstr "no hi ha particions disponibles"
-
-#: ../../install_steps_interactive.pm_.c:330
-msgid "Scanning partitions to find mount points"
-msgstr "S'estan explorant les particions per trobar els punts de muntatge"
-
-#: ../../install_steps_interactive.pm_.c:338
-msgid "Choose the mount points"
-msgstr "Escolliu els punts de muntatge"
-
-#: ../../install_steps_interactive.pm_.c:357
-#, c-format
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I can try to go on blanking bad partitions (ALL DATA will be lost!).\n"
-"The other solution is to disallow DrakX to modify the partition table.\n"
-"(the error is %s)\n"
-"\n"
-"Do you agree to loose all the partitions?\n"
-msgstr ""
-"No puc llegir la vostra taula de particions, estą massa malmesa per a mi :(\n"
-"Intentaré seguir, buidant les particions incorrectes (es perdran TOTES LES "
-"DADES!).\n"
-"L'altra solució és impedir al DrakX que modifiqui la taula de particions.\n"
-"(l'error és %s)\n"
-
-#: ../../install_steps_interactive.pm_.c:370
-msgid ""
-"DiskDrake failed to read correctly the partition table.\n"
-"Continue at your own risk!"
-msgstr ""
-"El DiskDrake no ha pogut llegir correctament la taula de particions.\n"
-"Si continueu, és sota la vostra responsabilitat!"
-
-#: ../../install_steps_interactive.pm_.c:386
-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 ""
-
-#: ../../install_steps_interactive.pm_.c:395
-#, fuzzy
-msgid "No root partition found to perform an upgrade"
-msgstr "No s'ha trobat cap partició arrel"
-
-#: ../../install_steps_interactive.pm_.c:396
-msgid "Root Partition"
-msgstr "Partició arrel"
-
-#: ../../install_steps_interactive.pm_.c:397
-msgid "What is the root partition (/) of your system?"
-msgstr "Quina és la partició arrel (/) del vostre sistema?"
-
-#: ../../install_steps_interactive.pm_.c:411
-msgid "You need to reboot for the partition table modifications to take place"
-msgstr ""
-"Us caldrą tornar a arrencar per tal que les modificacions de la taula de "
-"particions tinguin efecte"
-
-#: ../../install_steps_interactive.pm_.c:435
-msgid "Choose the partitions you want to format"
-msgstr "Escolliu les particions que voleu formatar"
-
-#: ../../install_steps_interactive.pm_.c:436
-msgid "Check bad blocks?"
-msgstr "Voleu comprovar els blocs incorrectes?"
-
-#: ../../install_steps_interactive.pm_.c:462
-msgid "Formatting partitions"
-msgstr "S'estan formatant les particions"
-
-#: ../../install_steps_interactive.pm_.c:464
-#, c-format
-msgid "Creating and formatting file %s"
-msgstr "S'estą creant i formatant el fitxer %s"
-
-#: ../../install_steps_interactive.pm_.c:467
-msgid "Not enough swap to fulfill installation, please add some"
-msgstr ""
-"No hi ha prou intercanvi per completar la instal·lació; si us plau, afegiu-ne"
-
-#: ../../install_steps_interactive.pm_.c:473
-msgid "Looking for available packages"
-msgstr "S'estan cercant els paquets disponibles"
-
-#: ../../install_steps_interactive.pm_.c:479
-msgid "Finding packages to upgrade"
-msgstr "S'estan cercant els paquets a actualitzar"
-
-#: ../../install_steps_interactive.pm_.c:496
-#, c-format
-msgid ""
-"Your system has not enough space left for installation or upgrade (%d > %d)"
-msgstr ""
-"Al vostre sistema no li queda prou espai per a la instal·lació o "
-"actualització (%d > %d)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Complete (%dMB)"
-msgstr "Completa (%dMB)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Minimum (%dMB)"
-msgstr "Mķnima (%dMB)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Recommended (%dMB)"
-msgstr "Recomanada (%dMB)"
-
-#: ../../install_steps_interactive.pm_.c:568
-msgid ""
-"Please choose load or save package selection on floppy.\n"
-"The format is the same as auto_install generated floppies."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:571
-#, fuzzy
-msgid "Load from floppy"
-msgstr "Restaura des del disquet"
-
-#: ../../install_steps_interactive.pm_.c:573
-#, fuzzy
-msgid "Loading from floppy"
-msgstr "Restaura des del disquet"
-
-#: ../../install_steps_interactive.pm_.c:573
-#, fuzzy
-msgid "Package selection"
-msgstr "Selecció del grup de paquets"
-
-#: ../../install_steps_interactive.pm_.c:578
-#, fuzzy
-msgid "Insert a floppy containing package selection"
-msgstr "Inseriu un disquet a la unitat %s"
-
-#: ../../install_steps_interactive.pm_.c:590
-msgid "Save on floppy"
-msgstr "Desa al disquet"
-
-#: ../../install_steps_interactive.pm_.c:658
-msgid "Selected size is larger than available space"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:671
-#, fuzzy
-msgid "Type of install"
-msgstr "Escolliu el paquet a instal·lar"
-
-#: ../../install_steps_interactive.pm_.c:672
-msgid ""
-"You haven't selected any group of packages.\n"
-"Please choose the minimal installation you want:"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:675
-#, fuzzy
-msgid "With X"
-msgstr "Espera"
-
-#: ../../install_steps_interactive.pm_.c:677
-msgid "With basic documentation (recommended!)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:678
-msgid "Truly minimal install (especially no urpmi)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:762
-msgid ""
-"If you have all the CDs in the list below, click Ok.\n"
-"If you have none of those CDs, click Cancel.\n"
-"If only some CDs are missing, unselect them, then click Ok."
-msgstr ""
-"Si teniu tots els CD de la llista inferior, feu clic a D'acord.\n"
-"Si no teniu cap d'aquests CD, feu clic a Cancel·la.\n"
-"Si només falten alguns CD, desseleccioneu-los i feu clic a D'acord."
-
-#: ../../install_steps_interactive.pm_.c:767
-#, c-format
-msgid "Cd-Rom labeled \"%s\""
-msgstr "CD-ROM etiquetat com \"%s\""
-
-#: ../../install_steps_interactive.pm_.c:787
-msgid "Preparing installation"
-msgstr "S'estą preparant la instal·lació"
-
-#: ../../install_steps_interactive.pm_.c:796
-#, c-format
-msgid ""
-"Installing package %s\n"
-"%d%%"
-msgstr ""
-"S'estą instal·lant el paquet %s\n"
-"%d%%"
-
-#: ../../install_steps_interactive.pm_.c:842
-msgid "Post-install configuration"
-msgstr "Publica la configuració de la instal·lació "
-
-#: ../../install_steps_interactive.pm_.c:848
-#, fuzzy, c-format
-msgid "Please insert the Boot floppy used in drive %s"
-msgstr "Inseriu un disquet a la unitat %s"
-
-#: ../../install_steps_interactive.pm_.c:854
-#, fuzzy, c-format
-msgid "Please insert the Update Modules floppy in drive %s"
-msgstr "Inseriu un disquet en blanc a la unitat %s"
-
-#: ../../install_steps_interactive.pm_.c:874
-msgid ""
-"You have now the possibility to download software aimed for encryption.\n"
-"\n"
-"WARNING:\n"
-"\n"
-"Due to different general requirements applicable to these software and "
-"imposed\n"
-"by various jurisdictions, customer and/or end user of theses software "
-"should\n"
-"ensure that the laws of his/their jurisdiction allow him/them to download, "
-"stock\n"
-"and/or use these software.\n"
-"\n"
-"In addition customer and/or end user shall particularly be aware to not "
-"infringe\n"
-"the laws of his/their jurisdiction. Should customer and/or end user not\n"
-"respect the provision of these applicable laws, he/they will incure serious\n"
-"sanctions.\n"
-"\n"
-"In no event shall Mandrakesoft nor its manufacturers and/or suppliers be "
-"liable\n"
-"for special, indirect or incidental damages whatsoever (including, but not\n"
-"limited to loss of profits, business interruption, loss of commercial data "
-"and\n"
-"other pecuniary losses, and eventual liabilities and indemnification to be "
-"paid\n"
-"pursuant to a court decision) arising out of use, possession, or the sole\n"
-"downloading of these software, to which customer and/or end user could\n"
-"eventually have access after having sign up the present agreement.\n"
-"\n"
-"\n"
-"For any queries relating to these agreement, please contact \n"
-"Mandrakesoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA"
-msgstr ""
-"Ara teniu la possibilitat de descarregar programari destinat al xifratge.\n"
-"\n"
-"AVĶS:\n"
-"Degut a diversos requeriments generals aplicables a aquest programari, i\n"
-"imposats per diverses jurisdiccions, el client i/o l'usuari final d'aquest\n"
-"programari s'ha(n) d'assegurar que les lleis de la(es) seva(es)\n"
-"jurisdicció(ns) li(els) permeten descarregar-lo, emmagatzemar-lo i/o\n"
-"utilitzar-lo.\n"
-"\n"
-"A mes, el client i/o l'usuari final ha(n) de tenir especialment en compte\n"
-"que no ha(n) d'infrigir les lleis de la(es) seva(es) jurisdicció(ns). Si\n"
-"el client i/o l'usuari final no respecta(en) les disposicions d'aquestes\n"
-"lleis, pot(den) ser severament sancionat(s).\n"
-"\n"
-"Mandrakesoft i els seus fabricants i/o proveļdors no seran en cap cas\n"
-"responsables de cap dany especial, indirecte o incidental (incloent,\n"
-"perņ sense limitar-se a, la pčrdua de beneficis, interrupció del negoci,\n"
-"pčrdua de dades comercials i altres pčrdues econņmiques, i eventuals\n"
-"responsabilitats i idemnitzacions que s'hagin de pagar per sentčncia\n"
-"judicial) derivat de l'śs, la possessió o la simple descąrrega d'aquest\n"
-"programari, al qual el client i/o l'usuari final pugui(n), eventualment,\n"
-"tenir accés després d'haver signat el present acord.\n"
-"\n"
-"Per a qualsevol consulta relativa a aquest acord, podeu adreēar-vos a \n"
-"Mandrakesoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA"
-
-#: ../../install_steps_interactive.pm_.c:912
-msgid ""
-"You have now the possibility to download updated packages that have\n"
-"been released after the distribution has been made available.\n"
-"\n"
-"You will get security fixes or bug fixes, but you need to have an\n"
-"Internet connection configured to proceed.\n"
-"\n"
-"Do you want to install the updates ?"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:926
-#, fuzzy
-msgid "Contacting Mandrake Linux web site to get the list of available mirrors"
-msgstr ""
-"S'estą contactant amb el mirror per obtenir la llista dels paquets "
-"disponibles"
-
-#: ../../install_steps_interactive.pm_.c:931
-msgid "Choose a mirror from which to get the packages"
-msgstr "Escolliu un mirror al qual aconseguir els paquets"
-
-#: ../../install_steps_interactive.pm_.c:940
-msgid "Contacting the mirror to get the list of available packages"
-msgstr ""
-"S'estą contactant amb el mirror per obtenir la llista dels paquets "
-"disponibles"
-
-#: ../../install_steps_interactive.pm_.c:967
-msgid "Which is your timezone?"
-msgstr "En quina zona horąria us trobeu?"
-
-#: ../../install_steps_interactive.pm_.c:972
-#, fuzzy
-msgid "Hardware clock set to GMT"
-msgstr "El rellotge del vostre ordinador estą regulat a GMT?"
-
-#: ../../install_steps_interactive.pm_.c:973
-msgid "Automatic time synchronization (using NTP)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:980
-#, fuzzy
-msgid "NTP Server"
-msgstr "Servidor NIS"
-
-#: ../../install_steps_interactive.pm_.c:1014
-#: ../../install_steps_interactive.pm_.c:1022
-msgid "Remote CUPS server"
-msgstr "Servidor CUPS remot"
-
-#: ../../install_steps_interactive.pm_.c:1015
-msgid "No printer"
-msgstr "Cap impressora"
-
-#: ../../install_steps_interactive.pm_.c:1032
-#, fuzzy
-msgid "Do you have an ISA sound card?"
-msgstr "En teniu una altra?"
-
-#: ../../install_steps_interactive.pm_.c:1034
-msgid "Run \"sndconfig\" after installation to configure your sound card"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1036
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1041 ../../steps.pm_.c:27
-msgid "Summary"
-msgstr "Resum"
-
-#: ../../install_steps_interactive.pm_.c:1044
-msgid "Mouse"
-msgstr "Ratolķ"
-
-#: ../../install_steps_interactive.pm_.c:1046
-msgid "Timezone"
-msgstr "Zona horąria"
-
-#: ../../install_steps_interactive.pm_.c:1047 ../../printerdrake.pm_.c:2276
-#: ../../printerdrake.pm_.c:2354
-msgid "Printer"
-msgstr "Impressora"
-
-#: ../../install_steps_interactive.pm_.c:1049
-msgid "ISDN card"
-msgstr "Targeta XDSI"
-
-#: ../../install_steps_interactive.pm_.c:1052
-#: ../../install_steps_interactive.pm_.c:1054
-msgid "Sound card"
-msgstr "Targeta de so"
-
-#: ../../install_steps_interactive.pm_.c:1056
-msgid "TV card"
-msgstr "Targeta de TV"
-
-#: ../../install_steps_interactive.pm_.c:1094
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1122
-msgid "LDAP"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1095
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1131
-#, fuzzy
-msgid "NIS"
-msgstr "Utilitza el NIS"
-
-#: ../../install_steps_interactive.pm_.c:1096
-#: ../../install_steps_interactive.pm_.c:1118
-#, fuzzy
-msgid "Local files"
-msgstr "Impressora local"
-
-#: ../../install_steps_interactive.pm_.c:1105
-#: ../../install_steps_interactive.pm_.c:1106 ../../steps.pm_.c:24
-msgid "Set root password"
-msgstr "Contrasenya de 'root'"
-
-#: ../../install_steps_interactive.pm_.c:1107
-msgid "No password"
-msgstr "Sense contrasenya"
-
-#: ../../install_steps_interactive.pm_.c:1112
-#, c-format
-msgid "This password is too simple (must be at least %d characters long)"
-msgstr ""
-"Aquesta contrasenya és massa senzilla (ha de tenir com a mķnim %d carącters)"
-
-#: ../../install_steps_interactive.pm_.c:1118 ../../network/modem.pm_.c:49
-#: ../../standalone/draknet_.c:626 ../../standalone/logdrake_.c:172
-msgid "Authentication"
-msgstr "Autenticació"
-
-#: ../../install_steps_interactive.pm_.c:1126
-#, fuzzy
-msgid "Authentication LDAP"
-msgstr "Autenticació"
-
-#: ../../install_steps_interactive.pm_.c:1127
-msgid "LDAP Base dn"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1128
-#, fuzzy
-msgid "LDAP Server"
-msgstr "Servidor"
-
-#: ../../install_steps_interactive.pm_.c:1134
-#, fuzzy
-msgid "Authentication NIS"
-msgstr "NIS d'autenticació"
-
-#: ../../install_steps_interactive.pm_.c:1135
-msgid "NIS Domain"
-msgstr "Domini del NIS"
-
-#: ../../install_steps_interactive.pm_.c:1136
-msgid "NIS Server"
-msgstr "Servidor NIS"
-
-#: ../../install_steps_interactive.pm_.c:1171
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"SILO on your system, or another operating system removes SILO, or SILO "
-"doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures.\n"
-"\n"
-"If you want to create a bootdisk for your system, insert a floppy in the "
-"first\n"
-"drive and press \"Ok\"."
-msgstr ""
-"Un disc d'arrencada personalitzat proporciona una manera d'arrencar el "
-"vostre\n"
-"sistema Linux sense dependre del carregador d'arrencada normal. Aixņ és "
-"śtil\n"
-"si no voleu instal·lar el SILO al sistema, o si un altre sistema operatiu\n"
-"elimina el SILO, o si el SILO no funciona amb la vostra configuració de\n"
-"maquinari. Un disc d'arrencada personalitzat també es pot utilitzar amb la\n"
-"imatge de rescat del Mandrake, facilitant molt la recuperació de fallides\n"
-"serioses del sistema.\n"
-"\n"
-"Si voleu crear un disc d'arrencada per al vostre sistema, inseriu un disquet "
-"a la primera unitat i premeu \"D'acord\"."
-
-#: ../../install_steps_interactive.pm_.c:1187
-msgid "First floppy drive"
-msgstr "Primera unitat de disquet"
-
-#: ../../install_steps_interactive.pm_.c:1188
-msgid "Second floppy drive"
-msgstr "Segona unitat de disquet"
-
-#: ../../install_steps_interactive.pm_.c:1189 ../../printerdrake.pm_.c:1848
-msgid "Skip"
-msgstr "Omet"
-
-#: ../../install_steps_interactive.pm_.c:1194
-#, c-format
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"LILO (or grub) on your system, or another operating system removes LILO, or "
-"LILO doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures. Would you like to create a bootdisk for your system?\n"
-"%s"
-msgstr ""
-"Un disc d'arrencada personalitzat proporciona una manera d'arrencar el "
-"vostre\n"
-"sistema Linux sense dependre del carregador d'arrencada normal. Aixņ és "
-"śtil\n"
-"si no voleu instal·lar el LILO (o el grub) al sistema, o si un altre sistema "
-"operatiu\n"
-"elimina el LILO, o si el LILO no funciona amb la vostra configuració de\n"
-"maquinari. Un disc d'arrencada personalitzat també es pot utilitzar amb la\n"
-"imatge de rescat del Mandrake, facilitant molt la recuperació de fallides\n"
-"serioses del sistema. Voleu crear un disc d'arrencada per al vostre "
-"sistema?\n"
-"%s"
-
-#: ../../install_steps_interactive.pm_.c:1200
-msgid ""
-"\n"
-"\n"
-"(WARNING! You're using XFS for your root partition,\n"
-"creating a bootdisk on a 1.44 Mb floppy will probably fail,\n"
-"because XFS needs a very large driver)."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1208
-msgid "Sorry, no floppy drive available"
-msgstr "No hi ha cap unitat de disquet disponible"
-
-#: ../../install_steps_interactive.pm_.c:1212
-msgid "Choose the floppy drive you want to use to make the bootdisk"
-msgstr ""
-"Escolliu la unitat de disquet que voleu utilitzar per crear el disc "
-"d'arrencada"
-
-#: ../../install_steps_interactive.pm_.c:1216
-#, fuzzy, c-format
-msgid "Insert a floppy in %s"
-msgstr "Inseriu un disquet a la unitat %s"
-
-#: ../../install_steps_interactive.pm_.c:1219
-msgid "Creating bootdisk"
-msgstr "S'estą creant el disc d'arrencada"
-
-#: ../../install_steps_interactive.pm_.c:1226
-msgid "Preparing bootloader"
-msgstr "S'estą preparant el carregador d'arrencada"
-
-#: ../../install_steps_interactive.pm_.c:1237
-msgid ""
-"You appear to have an OldWorld or Unknown\n"
-" machine, the yaboot bootloader will not work for you.\n"
-"The install will continue, but you'll\n"
-" need to use BootX to boot your machine"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1243
-msgid "Do you want to use aboot?"
-msgstr "Voleu utilitzar l'aboot?"
-
-#: ../../install_steps_interactive.pm_.c:1246
-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ó?"
-
-#: ../../install_steps_interactive.pm_.c:1253
-#, fuzzy
-msgid "Installing bootloader"
-msgstr "Instal·la el LILO"
-
-#: ../../install_steps_interactive.pm_.c:1259
-msgid "Installation of bootloader failed. The following error occured:"
-msgstr ""
-"Ha fallat la instal·lació del carregador d'arrencada. S'ha produļt l'error "
-"següent:"
-
-#: ../../install_steps_interactive.pm_.c:1267
-#, fuzzy, c-format
-msgid ""
-"You may need to change your Open Firmware boot-device to\n"
-" enable the bootloader. If you don't 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\n"
-"At your next boot you should see the bootloader prompt."
-msgstr ""
-"Potser us caldrą canviar el dispositiu d'arrencada Open Firware per\n"
-" habilitar el carregador d'arencada. Si no veieu l'indicador del\n"
-" carregador d'arrencada en tornar a arrencar, premeu Command-Option-O-F\n"
-" en tornar a arrencar i introduļu:\n"
-" setenv boot-device $of_boot,\\\\:tbxi\n"
-" Després, escriviu: shut-down\n"
-"En l'arrencada següent heu de veure l'indicador del carregador d'arrencada."
-
-#: ../../install_steps_interactive.pm_.c:1311
-#: ../../standalone/drakautoinst_.c:81
-#, c-format
-msgid "Insert a blank floppy in drive %s"
-msgstr "Inseriu un disquet en blanc a la unitat %s"
-
-#: ../../install_steps_interactive.pm_.c:1315
-#: ../../standalone/drakautoinst_.c:83
-msgid "Creating auto install floppy"
-msgstr "S'estą creant el diquet d'instal·lació automątica"
-
-#: ../../install_steps_interactive.pm_.c:1326
-msgid ""
-"Some steps are not completed.\n"
-"\n"
-"Do you really want to quit now?"
-msgstr ""
-"Alguns passos no s'han completat.\n"
-"\n"
-"Segur que voleu sortir ara?"
-
-#: ../../install_steps_interactive.pm_.c:1337
-msgid ""
-"Congratulations, installation is complete.\n"
-"Remove the boot media and press return to reboot.\n"
-"\n"
-"\n"
-"For information on fixes which are available for this release of Mandrake "
-"Linux,\n"
-"consult the Errata available from:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/82errata.php3\n"
-"\n"
-"\n"
-"Information on configuring your system is available in the post\n"
-"install chapter of the Official Mandrake Linux User's Guide."
-msgstr ""
-"Felicitats! La instal·lació ha acabat.\n"
-"Traieu el suport d'arrencada i premeu Intro per tornar a arrencar.\n"
-"\n"
-"\n"
-"Trobareu la solució als problemes coneguts d'aquesta versió del\n"
-"Mandrake Linux a la fe d'errates que hi ha a \n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/82errata.php3\n"
-"\n"
-"\n"
-"La informació sobre com configurar el vostre sistema estą disponible a\n"
-"l'śltim capķtol d'instal·lació de la Guia Oficial de l'Usuari del\n"
-"Mandrake Linux."
-
-#: ../../install_steps_interactive.pm_.c:1354
-msgid "Generate auto install floppy"
-msgstr "Genera un disquet per a la instal·lació automątica"
-
-#: ../../install_steps_interactive.pm_.c:1356
-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 es desitja, 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 una altra caixa).\n"
-"\n"
-"Potser preferireu repetir la instal·lació.\n"
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Automated"
-msgstr "Automątica"
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Replay"
-msgstr "Repeteix"
-
-#: ../../install_steps_interactive.pm_.c:1364
-msgid "Save packages selection"
-msgstr "Desa la selecció de paquets"
-
-#: ../../install_steps_newt.pm_.c:22
-#, c-format
-msgid "Mandrake Linux Installation %s"
-msgstr "Instal·lació del Mandrake Linux %s"
-
-#: ../../install_steps_newt.pm_.c:34
-msgid ""
-" <Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen "
-msgstr ""
-" <Tab>/<Alt-Tab> entre elements | <Espai> selecciona | <F12> pant. següent"
-
-#: ../../interactive.pm_.c:87
-msgid "kdesu missing"
-msgstr "El kdesu no hi és"
-
-#: ../../interactive.pm_.c:89 ../../interactive.pm_.c:100
-msgid "consolehelper missing"
-msgstr ""
-
-#: ../../interactive.pm_.c:152
-#, fuzzy
-msgid "Choose a file"
-msgstr "Trieu una acció"
-
-#: ../../interactive.pm_.c:314
-msgid "Advanced"
-msgstr "Avanēat"
-
-#: ../../interactive.pm_.c:315
-msgid "Basic"
-msgstr ""
-
-#: ../../interactive.pm_.c:386
-msgid "Please wait"
-msgstr "Si us plau, espereu"
-
-#: ../../interactive_gtk.pm_.c:605 ../../services.pm_.c:222
-msgid "Info"
-msgstr "Informació"
-
-#: ../../interactive_gtk.pm_.c:715
-msgid "Expand Tree"
-msgstr "Expandeix l'arbre"
-
-#: ../../interactive_gtk.pm_.c:716
-msgid "Collapse Tree"
-msgstr "Redueix l'arbre"
-
-#: ../../interactive_gtk.pm_.c:717
-msgid "Toggle between flat and group sorted"
-msgstr "Commuta entre pla i ordenat per grups"
-
-#: ../../interactive_stdio.pm_.c:29 ../../interactive_stdio.pm_.c:147
-msgid "Bad choice, try again\n"
-msgstr "Elecció incorrecta, torneu-ho a intentar\n"
-
-#: ../../interactive_stdio.pm_.c:30 ../../interactive_stdio.pm_.c:148
-#, c-format
-msgid "Your choice? (default %s) "
-msgstr "La vostra elecció? (predeterminat %s)"
-
-#: ../../interactive_stdio.pm_.c:52
-#, c-format
-msgid ""
-"Entries you'll have to fill:\n"
-"%s"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:68
-#, fuzzy, c-format
-msgid "Your choice? (0/1, default `%s') "
-msgstr "La vostra elecció? (predeterminat %s)"
-
-#: ../../interactive_stdio.pm_.c:93
-#, fuzzy, c-format
-msgid "Button `%s': %s"
-msgstr "Opcions: %s"
-
-#: ../../interactive_stdio.pm_.c:94
-#, fuzzy
-msgid "Do you want to click on this button? "
-msgstr "Voleu utilitzar l'aboot?"
-
-#: ../../interactive_stdio.pm_.c:103
-#, fuzzy, c-format
-msgid "Your choice? (default `%s'%s) "
-msgstr "La vostra elecció? (predeterminat %s)"
-
-#: ../../interactive_stdio.pm_.c:121
-#, c-format
-msgid "=> There are many things to choose from (%s).\n"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:124
-msgid ""
-"Please choose the first number of the 10-range you wish to edit,\n"
-"or just hit Enter to proceed.\n"
-"Your choice? "
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:137
-#, c-format
-msgid ""
-"=> Notice, a label changed:\n"
-"%s"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:144
-msgid "Re-submit"
-msgstr ""
-
-#: ../../keyboard.pm_.c:174 ../../keyboard.pm_.c:205
-msgid "Czech (QWERTZ)"
-msgstr "Txec (QWERTZ)"
-
-#: ../../keyboard.pm_.c:175 ../../keyboard.pm_.c:207
-msgid "German"
-msgstr "Alemany"
-
-#: ../../keyboard.pm_.c:176
-msgid "Dvorak"
-msgstr "Dvorak"
-
-#: ../../keyboard.pm_.c:177 ../../keyboard.pm_.c:214
-msgid "Spanish"
-msgstr "Espanyol"
-
-#: ../../keyboard.pm_.c:178 ../../keyboard.pm_.c:215
-msgid "Finnish"
-msgstr "Finčs"
-
-#: ../../keyboard.pm_.c:179 ../../keyboard.pm_.c:216
-msgid "French"
-msgstr "Francčs"
-
-#: ../../keyboard.pm_.c:180 ../../keyboard.pm_.c:241
-msgid "Norwegian"
-msgstr "Noruec"
-
-#: ../../keyboard.pm_.c:181
-msgid "Polish"
-msgstr "Polončs"
-
-#: ../../keyboard.pm_.c:182 ../../keyboard.pm_.c:249
-msgid "Russian"
-msgstr "Rus"
-
-#: ../../keyboard.pm_.c:184 ../../keyboard.pm_.c:251
-msgid "Swedish"
-msgstr "Suec"
-
-#: ../../keyboard.pm_.c:185 ../../keyboard.pm_.c:266
-msgid "UK keyboard"
-msgstr "Teclat RU"
-
-#: ../../keyboard.pm_.c:186 ../../keyboard.pm_.c:267
-msgid "US keyboard"
-msgstr "Teclat EU"
-
-#: ../../keyboard.pm_.c:188
-#, fuzzy
-msgid "Albanian"
-msgstr "Iranią"
-
-#: ../../keyboard.pm_.c:189
-msgid "Armenian (old)"
-msgstr "Armeni (antic)"
-
-#: ../../keyboard.pm_.c:190
-msgid "Armenian (typewriter)"
-msgstr "Armeni (mąquina d'escriure)"
-
-#: ../../keyboard.pm_.c:191
-msgid "Armenian (phonetic)"
-msgstr "Armeni (fončtic)"
-
-#: ../../keyboard.pm_.c:196
-msgid "Azerbaidjani (latin)"
-msgstr "Azerbaidjančs (llatķ)"
-
-#: ../../keyboard.pm_.c:198
-msgid "Belgian"
-msgstr "Belga"
-
-#: ../../keyboard.pm_.c:199
-#, fuzzy
-msgid "Bulgarian (phonetic)"
-msgstr "Armeni (fončtic)"
-
-#: ../../keyboard.pm_.c:200
-#, fuzzy
-msgid "Bulgarian (BDS)"
-msgstr "Bślgar"
-
-#: ../../keyboard.pm_.c:201
-msgid "Brazilian (ABNT-2)"
-msgstr "Brasiler (ABNT-2)"
-
-#: ../../keyboard.pm_.c:202
-msgid "Belarusian"
-msgstr "Bielorśs"
-
-#: ../../keyboard.pm_.c:203
-msgid "Swiss (German layout)"
-msgstr "Suķs (disposició alemanya)"
-
-#: ../../keyboard.pm_.c:204
-msgid "Swiss (French layout)"
-msgstr "Suķs (disposició francesa)"
-
-#: ../../keyboard.pm_.c:206
-msgid "Czech (QWERTY)"
-msgstr "Txec (QWERTY)"
-
-#: ../../keyboard.pm_.c:208
-msgid "German (no dead keys)"
-msgstr "Alemany (sense tecles inoperatives)"
-
-#: ../../keyboard.pm_.c:209
-msgid "Danish"
-msgstr "Dančs"
-
-#: ../../keyboard.pm_.c:210
-msgid "Dvorak (US)"
-msgstr "Dvorak (EU)"
-
-#: ../../keyboard.pm_.c:211
-msgid "Dvorak (Norwegian)"
-msgstr "Dvorak (Noruec)"
-
-#: ../../keyboard.pm_.c:212
-#, fuzzy
-msgid "Dvorak (Swedish)"
-msgstr "Dvorak (EU)"
-
-#: ../../keyboard.pm_.c:213
-msgid "Estonian"
-msgstr "Estonią"
-
-#: ../../keyboard.pm_.c:217
-msgid "Georgian (\"Russian\" layout)"
-msgstr "Georgią (disposició \"russa\")"
-
-#: ../../keyboard.pm_.c:218
-msgid "Georgian (\"Latin\" layout)"
-msgstr "Georgią (disposició \"llatina\")"
-
-#: ../../keyboard.pm_.c:219
-msgid "Greek"
-msgstr "Grec"
-
-#: ../../keyboard.pm_.c:220
-msgid "Hungarian"
-msgstr "Hongarčs"
-
-#: ../../keyboard.pm_.c:221
-msgid "Croatian"
-msgstr "Croata"
-
-#: ../../keyboard.pm_.c:222
-msgid "Israeli"
-msgstr "Israelią"
-
-#: ../../keyboard.pm_.c:223
-msgid "Israeli (Phonetic)"
-msgstr "Israelią (fončtic)"
-
-#: ../../keyboard.pm_.c:224
-msgid "Iranian"
-msgstr "Iranią"
-
-#: ../../keyboard.pm_.c:225
-msgid "Icelandic"
-msgstr "Islandčs"
-
-#: ../../keyboard.pm_.c:226
-msgid "Italian"
-msgstr "Italią"
-
-#: ../../keyboard.pm_.c:228
-msgid "Japanese 106 keys"
-msgstr "Japončs de 106 tecles"
-
-#: ../../keyboard.pm_.c:231
-msgid "Korean keyboard"
-msgstr "Teclat coreą"
-
-#: ../../keyboard.pm_.c:232
-msgid "Latin American"
-msgstr "Espanyol sud-americą"
-
-#: ../../keyboard.pm_.c:233
-msgid "Lithuanian AZERTY (old)"
-msgstr "Lituą AZERTY (antic)"
-
-#: ../../keyboard.pm_.c:235
-msgid "Lithuanian AZERTY (new)"
-msgstr "Lituą AZERTY (nou)"
-
-#: ../../keyboard.pm_.c:236
-msgid "Lithuanian \"number row\" QWERTY"
-msgstr "Lituą \"fila de nśmeros\" QWERTY"
-
-#: ../../keyboard.pm_.c:237
-msgid "Lithuanian \"phonetic\" QWERTY"
-msgstr "Lituą \"fončtic\" QWERTY"
-
-#: ../../keyboard.pm_.c:238
-#, fuzzy
-msgid "Latvian"
-msgstr "Ubicació"
-
-#: ../../keyboard.pm_.c:239
-msgid "Macedonian"
-msgstr "Macedoni"
-
-#: ../../keyboard.pm_.c:240
-msgid "Dutch"
-msgstr "Holandčs"
-
-#: ../../keyboard.pm_.c:242
-msgid "Polish (qwerty layout)"
-msgstr "Polončs (disposició qwerty)"
-
-#: ../../keyboard.pm_.c:243
-msgid "Polish (qwertz layout)"
-msgstr "Polončs (disposició qwertz)"
-
-#: ../../keyboard.pm_.c:244
-msgid "Portuguese"
-msgstr "Portugučs"
-
-#: ../../keyboard.pm_.c:245
-msgid "Canadian (Quebec)"
-msgstr "Canadenc (Quebec)"
-
-#: ../../keyboard.pm_.c:247
-#, fuzzy
-msgid "Romanian (qwertz)"
-msgstr "Rus (Yawerty)"
-
-#: ../../keyboard.pm_.c:248
-#, fuzzy
-msgid "Romanian (qwerty)"
-msgstr "Rus (Yawerty)"
-
-#: ../../keyboard.pm_.c:250
-msgid "Russian (Yawerty)"
-msgstr "Rus (Yawerty)"
-
-#: ../../keyboard.pm_.c:252
-msgid "Slovenian"
-msgstr "Eslovč"
-
-#: ../../keyboard.pm_.c:253
-msgid "Slovakian (QWERTZ)"
-msgstr "Eslovac (QWERTZ)"
-
-#: ../../keyboard.pm_.c:254
-msgid "Slovakian (QWERTY)"
-msgstr "Eslovac (QWERTY)"
-
-#: ../../keyboard.pm_.c:256
-#, fuzzy
-msgid "Serbian (cyrillic)"
-msgstr "Azerbaidjančs (cirķl·lic)"
-
-#: ../../keyboard.pm_.c:258
-#, fuzzy
-msgid "Tamil"
-msgstr "Taula"
-
-#: ../../keyboard.pm_.c:259
-msgid "Thai keyboard"
-msgstr "Teclat tai"
-
-#: ../../keyboard.pm_.c:261
-#, fuzzy
-msgid "Tajik keyboard"
-msgstr "Teclat tai"
-
-#: ../../keyboard.pm_.c:262
-msgid "Turkish (traditional \"F\" model)"
-msgstr "Turc (tradicional, model \"F\")"
-
-#: ../../keyboard.pm_.c:263
-msgid "Turkish (modern \"Q\" model)"
-msgstr "Turc (modern, model \"Q\")"
-
-#: ../../keyboard.pm_.c:265
-msgid "Ukrainian"
-msgstr "Ucraļnčs"
-
-#: ../../keyboard.pm_.c:268
-msgid "US keyboard (international)"
-msgstr "Teclat EU (internacional)"
-
-#: ../../keyboard.pm_.c:269
-msgid "Vietnamese \"numeric row\" QWERTY"
-msgstr "Vietnamita \"fila numčrica\" QWERTY"
-
-#: ../../keyboard.pm_.c:270
-#, fuzzy
-msgid "Yugoslavian (latin)"
-msgstr "Iugoslau (llatķ/cirķl·lic)"
-
-#: ../../keyboard.pm_.c:278
-msgid "Right Alt key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:279
-msgid "Both Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:280
-msgid "Control and Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:281
-msgid "CapsLock key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:282
-msgid "Ctrl and Alt keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:283
-msgid "Alt and Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:284
-msgid "\"Menu\" key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:285
-msgid "Left \"Windows\" key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:286
-msgid "Right \"Windows\" key"
-msgstr ""
-
-#: ../../loopback.pm_.c:32
-#, c-format
-msgid "Circular mounts %s\n"
-msgstr "Muntatges circulars %s\n"
-
-#: ../../lvm.pm_.c:88
-msgid "Remove the logical volumes first\n"
-msgstr "Elimineu primer els volums lņgics\n"
-
-#: ../../modules.pm_.c:826
-msgid ""
-"PCMCIA support no longer exist for 2.2 kernels. Please use a 2.4 kernel."
-msgstr ""
-
-#: ../../mouse.pm_.c:25
-msgid "Sun - Mouse"
-msgstr "Sun - Mouse"
-
-#: ../../mouse.pm_.c:32
-msgid "Logitech MouseMan+"
-msgstr "Logitech MouseMan+"
-
-#: ../../mouse.pm_.c:33
-msgid "Generic PS2 Wheel Mouse"
-msgstr "Rató de bola PS2 genčric"
-
-#: ../../mouse.pm_.c:34
-msgid "GlidePoint"
-msgstr "GlidePoint"
-
-#: ../../mouse.pm_.c:36 ../../mouse.pm_.c:63
-msgid "Kensington Thinking Mouse"
-msgstr "Kensington Thinking Mouse"
-
-#: ../../mouse.pm_.c:37 ../../mouse.pm_.c:59
-msgid "Genius NetMouse"
-msgstr "Genius NetMouse"
-
-#: ../../mouse.pm_.c:38
-msgid "Genius NetScroll"
-msgstr "Genius NetScroll"
-
-#: ../../mouse.pm_.c:43 ../../mouse.pm_.c:68
-msgid "1 button"
-msgstr "1 botó"
-
-#: ../../mouse.pm_.c:44 ../../mouse.pm_.c:51
-msgid "Generic 2 Button Mouse"
-msgstr "Generic 2 Button Mouse"
-
-#: ../../mouse.pm_.c:45
-msgid "Generic"
-msgstr "General"
-
-#: ../../mouse.pm_.c:46
-msgid "Wheel"
-msgstr "De bola"
-
-#: ../../mouse.pm_.c:49
-msgid "serial"
-msgstr "sčrie"
-
-#: ../../mouse.pm_.c:52
-msgid "Generic 3 Button Mouse"
-msgstr "Generic 3 Button Mouse"
-
-#: ../../mouse.pm_.c:53
-msgid "Microsoft IntelliMouse"
-msgstr "Microsoft IntelliMouse"
-
-#: ../../mouse.pm_.c:54
-msgid "Logitech MouseMan"
-msgstr "Logitech MouseMan"
-
-#: ../../mouse.pm_.c:55
-msgid "Mouse Systems"
-msgstr "Mouse Systems"
-
-#: ../../mouse.pm_.c:57
-msgid "Logitech CC Series"
-msgstr "Logitech CC Series"
-
-#: ../../mouse.pm_.c:58
-msgid "Logitech MouseMan+/FirstMouse+"
-msgstr "Logitech MouseMan+/FirstMouse+"
-
-#: ../../mouse.pm_.c:60
-msgid "MM Series"
-msgstr "MM Series"
-
-#: ../../mouse.pm_.c:61
-msgid "MM HitTablet"
-msgstr "MM HitTablet"
-
-#: ../../mouse.pm_.c:62
-msgid "Logitech Mouse (serial, old C7 type)"
-msgstr "Logitech Mouse (sčrie, tipus C7 antic)"
-
-#: ../../mouse.pm_.c:66
-msgid "busmouse"
-msgstr "busmouse"
-
-#: ../../mouse.pm_.c:69
-msgid "2 buttons"
-msgstr "2 botons"
-
-#: ../../mouse.pm_.c:70
-msgid "3 buttons"
-msgstr "3 botons"
-
-#: ../../mouse.pm_.c:73
-msgid "none"
-msgstr "cap"
-
-#: ../../mouse.pm_.c:75
-msgid "No mouse"
-msgstr "Cap ratolķ"
-
-#: ../../mouse.pm_.c:499
-msgid "Please test the mouse"
-msgstr "Si us plau, comproveu el ratolķ."
-
-#: ../../mouse.pm_.c:500
-msgid "To activate the mouse,"
-msgstr "Per activar el ratolķ,"
-
-#: ../../mouse.pm_.c:501
-msgid "MOVE YOUR WHEEL!"
-msgstr "MOVEU LA BOLA!"
-
-#: ../../my_gtk.pm_.c:651
-msgid "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"
-msgstr ""
-
-#: ../../my_gtk.pm_.c:686
-msgid "Finish"
-msgstr "Finčs"
-
-#: ../../my_gtk.pm_.c:686 ../../printerdrake.pm_.c:1588
-msgid "Next ->"
-msgstr "Següent ->"
-
-#: ../../my_gtk.pm_.c:687 ../../printerdrake.pm_.c:1586
-msgid "<- Previous"
-msgstr "<- Anterior"
-
-#: ../../my_gtk.pm_.c:1019
-msgid "Is this correct?"
-msgstr "Aixņ és correcte?"
-
-#: ../../network/adsl.pm_.c:19 ../../network/ethernet.pm_.c:36
-msgid "Connect to the Internet"
-msgstr "Connecta't a internet"
-
-#: ../../network/adsl.pm_.c:20
-msgid ""
-"The most common way to connect with adsl is pppoe.\n"
-"Some connections use pptp, a few ones use dhcp.\n"
-"If you don't know, choose 'use pppoe'"
-msgstr ""
-"La manera més habitual de connectar amb ADSL és pppoe.\n"
-"Algunes connexions utilitzen pptp, unes poques utilitzen dhcp.\n"
-"Si no ho sabeu, escolliu 'utilitza pppoe'"
-
-#: ../../network/adsl.pm_.c:22
-msgid "Alcatel speedtouch usb"
-msgstr ""
-
-#: ../../network/adsl.pm_.c:22
-msgid "use dhcp"
-msgstr "utilitza dhcp"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pppoe"
-msgstr "utilitza pppoe"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pptp"
-msgstr "utilitza pptp"
-
-#: ../../network/ethernet.pm_.c:37
-msgid ""
-"Which dhcp client do you want to use?\n"
-"Default is dhcpcd"
-msgstr ""
-"Quin client dhcp voleu utilitzar?\n"
-"El predeterminat és dhcpcd"
-
-#: ../../network/ethernet.pm_.c:88
-msgid ""
-"No ethernet network adapter has been detected on your system.\n"
-"I cannot set up this connection type."
-msgstr ""
-"No s'ha detectat cap adaptador de xarxa ethernet al sistema.\n"
-"No puc configurar aquest tipus de connexió."
-
-#: ../../network/ethernet.pm_.c:92 ../../standalone/drakgw_.c:252
-msgid "Choose the network interface"
-msgstr "Escolliu la interfķcie de xarxa"
-
-#: ../../network/ethernet.pm_.c:93
-msgid ""
-"Please choose which network adapter you want to use to connect to Internet"
-msgstr ""
-"Si us plau, seleccioneu quin adaptador de xarxa voleu utilitzar per\n"
-"connectar-vos a Internet."
-
-#: ../../network/ethernet.pm_.c:178
-msgid "no network card found"
-msgstr "no s'ha trobat cap targeta de xarxa"
-
-#: ../../network/ethernet.pm_.c:202 ../../network/network.pm_.c:360
-msgid "Configuring network"
-msgstr "S'estą configurant la xarxa"
-
-#: ../../network/ethernet.pm_.c:203
-msgid ""
-"Please enter your host name if you know it.\n"
-"Some DHCP servers require the hostname to work.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''."
-msgstr ""
-"Si us plau, introduļu el nom del vostre ordinador central, si el sabeu.\n"
-"Alguns servidors DHCP necessiten que aquest nom funcioni.\n"
-"El nom ha de ser complet,\n"
-"com ara ``mybox.mylab.myco.com''."
-
-#: ../../network/ethernet.pm_.c:207 ../../network/network.pm_.c:365
-msgid "Host name"
-msgstr "Nom de l'ordinador central"
-
-#: ../../network/isdn.pm_.c:21 ../../network/isdn.pm_.c:44
-#: ../../network/netconnect.pm_.c:95 ../../network/netconnect.pm_.c:109
-#: ../../network/netconnect.pm_.c:164 ../../network/netconnect.pm_.c:175
-#: ../../network/netconnect.pm_.c:202 ../../network/netconnect.pm_.c:225
-#: ../../network/netconnect.pm_.c:233
-msgid "Network Configuration Wizard"
-msgstr "Assistent de configuració de xarxa"
-
-#: ../../network/isdn.pm_.c:22
-msgid "External ISDN modem"
-msgstr "Mņdem XDSI extern"
-
-#: ../../network/isdn.pm_.c:22
-msgid "Internal ISDN card"
-msgstr "Targeta XDSI interna"
-
-#: ../../network/isdn.pm_.c:22
-msgid "What kind is your ISDN connection?"
-msgstr "Quin tipus de connexió XDSI teniu?"
-
-#: ../../network/isdn.pm_.c:45
-msgid ""
-"Which ISDN configuration do you prefer?\n"
-"\n"
-"* The Old configuration uses isdn4net. It contains powerfull\n"
-" tools, but is tricky to configure, and not standard.\n"
-"\n"
-"* The New configuration is easier to understand, more\n"
-" standard, but with less tools.\n"
-"\n"
-"We recommand the light configuration.\n"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:54
-#, fuzzy
-msgid "New configuration (isdn-light)"
-msgstr "S'ha detectat la configuració del sistema de tallafocs!"
-
-#: ../../network/isdn.pm_.c:54
-#, fuzzy
-msgid "Old configuration (isdn4net)"
-msgstr "S'ha detectat la configuració del sistema de tallafocs!"
-
-#: ../../network/isdn.pm_.c:170 ../../network/isdn.pm_.c:188
-#: ../../network/isdn.pm_.c:198 ../../network/isdn.pm_.c:205
-#: ../../network/isdn.pm_.c:215
-msgid "ISDN Configuration"
-msgstr "Configuració de l'XDSI"
-
-#: ../../network/isdn.pm_.c:170
-msgid ""
-"Select your provider.\n"
-" If it's not in the list, choose Unlisted"
-msgstr ""
-"Seleccioneu el vostre proveļdor.\n"
-" Si no és a la llista, seleccioneu No és a la llista"
-
-#: ../../network/isdn.pm_.c:183
-#, fuzzy
-msgid "Europe protocol"
-msgstr "Protocol d'arrencada"
-
-#: ../../network/isdn.pm_.c:183
-#, fuzzy
-msgid "Europe protocol (EDSS1)"
-msgstr "Europa (EDSS1)"
-
-#: ../../network/isdn.pm_.c:185
-#, fuzzy
-msgid "Protocol for the rest of the world"
-msgstr "Resta del món"
-
-#: ../../network/isdn.pm_.c:185
-#, fuzzy
-msgid ""
-"Protocol for the rest of the world \n"
-" no D-Channel (leased lines)"
-msgstr ""
-"Resta del món \n"
-" cap canal D (lķnies llogades)"
-
-#: ../../network/isdn.pm_.c:189
-msgid "Which protocol do you want to use ?"
-msgstr "Quin protocol voleu utilitzar?"
-
-#: ../../network/isdn.pm_.c:199
-msgid "What kind of card do you have?"
-msgstr "Quin tipus de targeta teniu?"
-
-#: ../../network/isdn.pm_.c:200
-msgid "I don't know"
-msgstr "No sé"
-
-#: ../../network/isdn.pm_.c:200
-msgid "ISA / PCMCIA"
-msgstr "ISA / PCMCIA"
-
-#: ../../network/isdn.pm_.c:200
-msgid "PCI"
-msgstr "PCI"
-
-#: ../../network/isdn.pm_.c:206
-msgid ""
-"\n"
-"If you have an ISA card, the values on the next screen should be right.\n"
-"\n"
-"If you have a PCMCIA card, you have to know the irq and io of your card.\n"
-msgstr ""
-"\n"
-"Si teniu una targeta ISA, els valors de la pantalla següent han de ser "
-"correctes.\n"
-"\n"
-"Si teniu una targeta PCMCIA, us en cal saber l'irq i l'io.\n"
-
-#: ../../network/isdn.pm_.c:210
-msgid "Abort"
-msgstr "Interromp"
-
-#: ../../network/isdn.pm_.c:210
-msgid "Continue"
-msgstr "Continua"
-
-#: ../../network/isdn.pm_.c:216
-msgid "Which is your ISDN card ?"
-msgstr "Quina targeta XDSI teniu ?"
-
-#: ../../network/isdn.pm_.c:235
-msgid ""
-"I have detected an ISDN PCI Card, but I don't know the type. Please select "
-"one PCI card on the next screen."
-msgstr ""
-"He detectat una targeta PCI XDSI, perņ no en conec el tipus. Si us plau, "
-"seleccioneu una targeta PCI a la pantalla següent."
-
-#: ../../network/isdn.pm_.c:244
-msgid "No ISDN PCI card found. Please select one on the next screen."
-msgstr ""
-"No s'ha trobat cap targeta PCI XDSI. Si us plau, seleccioneu-ne una a la "
-"pantalla següent"
-
-#: ../../network/modem.pm_.c:39
-msgid "Please choose which serial port your modem is connected to."
-msgstr ""
-"Si us plau, seleccioneu el port sčrie al qual teniu connectat el mņdem."
-
-#: ../../network/modem.pm_.c:44
-msgid "Dialup options"
-msgstr "Opcions de marcatge"
-
-#: ../../network/modem.pm_.c:45 ../../standalone/draknet_.c:622
-msgid "Connection name"
-msgstr "Nom de la connexió"
-
-#: ../../network/modem.pm_.c:46 ../../standalone/draknet_.c:623
-msgid "Phone number"
-msgstr "Nśmero de telčfon"
-
-#: ../../network/modem.pm_.c:47 ../../standalone/draknet_.c:624
-msgid "Login ID"
-msgstr "ID d'entrada"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "CHAP"
-msgstr "CHAP"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "PAP"
-msgstr "PAP"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Script-based"
-msgstr "Basat en script"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Terminal-based"
-msgstr "Basat en terminal"
-
-#: ../../network/modem.pm_.c:50 ../../standalone/draknet_.c:627
-msgid "Domain name"
-msgstr "Nom de domini"
-
-#: ../../network/modem.pm_.c:51 ../../standalone/draknet_.c:628
-msgid "First DNS Server (optional)"
-msgstr "Primer servidor DNS (opcional)"
-
-#: ../../network/modem.pm_.c:52 ../../standalone/draknet_.c:629
-msgid "Second DNS Server (optional)"
-msgstr "Segon servidor DNS (opcional)"
-
-#: ../../network/netconnect.pm_.c:34
-msgid ""
-"\n"
-"You can disconnect or reconfigure your connection."
-msgstr ""
-"\n"
-"Podeu desconnectar-vos o tornar a configurar la connexió."
-
-#: ../../network/netconnect.pm_.c:34 ../../network/netconnect.pm_.c:37
-msgid ""
-"\n"
-"You can reconfigure your connection."
-msgstr ""
-"\n"
-"Podeu tornar a configurar la connexió."
-
-#: ../../network/netconnect.pm_.c:34
-msgid "You are currently connected to internet."
-msgstr "Ara mateix esteu connectat a Internet."
-
-#: ../../network/netconnect.pm_.c:37
-msgid ""
-"\n"
-"You can connect to Internet or reconfigure your connection."
-msgstr ""
-"\n"
-"Podeu connectar-vos a Internet o tornar a configurar la connexió."
-
-#: ../../network/netconnect.pm_.c:37
-msgid "You are not currently connected to Internet."
-msgstr "Ara mateix no esteu connectat a Internet."
-
-#: ../../network/netconnect.pm_.c:41
-msgid "Connect"
-msgstr "Connecta"
-
-#: ../../network/netconnect.pm_.c:43
-msgid "Disconnect"
-msgstr "Desconnecta"
-
-#: ../../network/netconnect.pm_.c:45
-#, fuzzy
-msgid "Configure the connection"
-msgstr "Configura una connexió per cable"
-
-#: ../../network/netconnect.pm_.c:50
-msgid "Internet connection & configuration"
-msgstr "Connexió i configuració d'Internet"
-
-#: ../../network/netconnect.pm_.c:100
-#, fuzzy, c-format
-msgid "We are now going to configure the %s connection."
-msgstr ""
-"\n"
-"Podeu desconnectar-vos o tornar a configurar la connexió."
-
-#: ../../network/netconnect.pm_.c:109
-#, fuzzy, c-format
-msgid ""
-"\n"
-"\n"
-"\n"
-"We are now going to configure the %s connection.\n"
-"\n"
-"\n"
-"Press OK to continue."
-msgstr ""
-"\n"
-"Podeu desconnectar-vos o tornar a configurar la connexió."
-
-#: ../../network/netconnect.pm_.c:138 ../../network/netconnect.pm_.c:252
-#: ../../network/netconnect.pm_.c:271 ../../network/tools.pm_.c:57
-msgid "Network Configuration"
-msgstr "Configuració de xarxa"
-
-#: ../../network/netconnect.pm_.c:139
-msgid ""
-"Because you are doing a network installation, your network is already "
-"configured.\n"
-"Click on Ok to keep your configuration, or cancel to reconfigure your "
-"Internet & Network connection.\n"
-msgstr ""
-"Atčs que esteu realitzant una instal·lació de xarxa, ja teniu la xarxa "
-"configurada.\n"
-"Feu clic a D'acord per conservar la configuració, o a Cancel·la per tornar a "
-"configurar la connexió a Internet i xarxa.\n"
-
-#: ../../network/netconnect.pm_.c:165
-msgid ""
-"Welcome to The Network Configuration Wizard\n"
-"\n"
-"We are about to configure your internet/network connection.\n"
-"If you don't want to use the auto detection, deselect the checkbox.\n"
-msgstr ""
-"Benvingut a l'Auxiliar de configuració a xarxa\n"
-"\n"
-"Ara configurarem la connexió a Internet/xarxa.\n"
-"Si no voleu utilitzar la detecció automątica, desactiveu el quadre de "
-"verificació.\n"
-
-#: ../../network/netconnect.pm_.c:167
-msgid "Choose the profile to configure"
-msgstr "Escolliu el perfil per configurar"
-
-#: ../../network/netconnect.pm_.c:168
-msgid "Use auto detection"
-msgstr "Utilitza la detecció automątica"
-
-#: ../../network/netconnect.pm_.c:175
-msgid "Detecting devices..."
-msgstr "S'estan detectant els dispositius..."
-
-#: ../../network/netconnect.pm_.c:186 ../../network/netconnect.pm_.c:195
-msgid "Normal modem connection"
-msgstr "Connexió normal per mņdem"
-
-#: ../../network/netconnect.pm_.c:186 ../../network/netconnect.pm_.c:195
-#, c-format
-msgid "detected on port %s"
-msgstr "detectat al port %s"
-
-#: ../../network/netconnect.pm_.c:187 ../../network/netconnect.pm_.c:196
-msgid "ISDN connection"
-msgstr "Connexió XDSI"
-
-#: ../../network/netconnect.pm_.c:187 ../../network/netconnect.pm_.c:196
-#, c-format
-msgid "detected %s"
-msgstr "s'ha detectat %s"
-
-#: ../../network/netconnect.pm_.c:188 ../../network/netconnect.pm_.c:197
-#, fuzzy
-msgid "ADSL connection"
-msgstr "Connexió LAN"
-
-#: ../../network/netconnect.pm_.c:188 ../../network/netconnect.pm_.c:197
-#, c-format
-msgid "detected on interface %s"
-msgstr "detectat a la interfķcie %s"
-
-#: ../../network/netconnect.pm_.c:189 ../../network/netconnect.pm_.c:198
-msgid "Cable connection"
-msgstr "Connexió de cable"
-
-#: ../../network/netconnect.pm_.c:189 ../../network/netconnect.pm_.c:198
-#, fuzzy
-msgid "cable connection detected"
-msgstr "Connexió de cable"
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-msgid "LAN connection"
-msgstr "Connexió LAN"
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-msgid "ethernet card(s) detected"
-msgstr "s'han detectat una o diverses targetes Ethernet"
-
-#: ../../network/netconnect.pm_.c:202
-#, fuzzy
-msgid "Choose the connection you want to configure"
-msgstr "Escolliu l'eina que voleu utilitzar "
-
-#: ../../network/netconnect.pm_.c:226
-msgid ""
-"You have configured multiple ways to connect to the Internet.\n"
-"Choose the one you want to use.\n"
-"\n"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:227
-#, fuzzy
-msgid "Internet connection"
-msgstr "Connexió a Internet compartida"
-
-#: ../../network/netconnect.pm_.c:233
-msgid "Do you want to start the connection at boot?"
-msgstr "Voleu iniciar la connexió en arrencar?"
-
-#: ../../network/netconnect.pm_.c:247
-msgid "Network configuration"
-msgstr "Configuració de xarxa"
-
-#: ../../network/netconnect.pm_.c:248
-msgid "The network needs to be restarted"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:252
-#, c-format
-msgid ""
-"A problem occured while restarting the network: \n"
-"\n"
-"%s"
-msgstr ""
-"S'ha produļt un problema en reiniciar la xarxa: \n"
-"\n"
-"%s"
-
-#: ../../network/netconnect.pm_.c:261
-msgid ""
-"Congratulations, the network and Internet configuration is finished.\n"
-"The configuration will now be applied to your system.\n"
-"\n"
-msgstr ""
-"Felicitats, la configuració de xarxa i Internet ha finalitzat.\n"
-"\n"
-"Ara s'aplicarą la configuració al sistema.\n"
-
-#: ../../network/netconnect.pm_.c:265
-msgid ""
-"After this is done, we recommend that you restart your X environment to "
-"avoid any hostname-related problems."
-msgstr ""
-"Després d'aixņ, és recomanable que reinicieu l'entorn X per\n"
-"evitar problemes deguts al canvi de nom de l'ordinador central."
-
-#: ../../network/netconnect.pm_.c:266
-msgid ""
-"Problems occured during configuration.\n"
-"Test your connection via net_monitor or mcc. If your connection doesn't "
-"work, you might want to relaunch the configuration"
-msgstr ""
-
-#: ../../network/network.pm_.c:292
-msgid ""
-"WARNING: This device has been previously configured to connect to the "
-"Internet.\n"
-"Simply accept to keep this device configured.\n"
-"Modifying the fields below will override this configuration."
-msgstr ""
-"ATENCIÓ: Aquest dispositiu ja es va configurar per connectar-se a Internet.\n"
-"Només cal que accepteu mantenir-lo configurat.\n"
-"Si modifiqueu els camps inferiors, sobreescriureu aquesta configuració."
-
-#: ../../network/network.pm_.c:297
-msgid ""
-"Please enter the IP configuration for this machine.\n"
-"Each item should be entered as an IP address in dotted-decimal\n"
-"notation (for example, 1.2.3.4)."
-msgstr ""
-"Si us plau, introduļu la configuració IP d'aquest ordinador.\n"
-"S'ha d'introduir cada element com a una adreēa IP amb notació decimal amb\n"
-"punts (per exemple, 1.2.3.4)."
-
-#: ../../network/network.pm_.c:306 ../../network/network.pm_.c:307
-#, c-format
-msgid "Configuring network device %s"
-msgstr "S'estą configurant el dispositiu de xarxa %s"
-
-#: ../../network/network.pm_.c:307
-#, c-format
-msgid " (driver %s)"
-msgstr " (programa de control %s)"
-
-#: ../../network/network.pm_.c:309 ../../standalone/draknet_.c:232
-#: ../../standalone/draknet_.c:468
-msgid "IP address"
-msgstr "Adreēa IP"
-
-#: ../../network/network.pm_.c:310 ../../standalone/draknet_.c:469
-msgid "Netmask"
-msgstr "Submąscara de la xarxa"
-
-#: ../../network/network.pm_.c:311
-msgid "(bootp/dhcp)"
-msgstr "(bootp/dhcp)"
-
-#: ../../network/network.pm_.c:311
-msgid "Automatic IP"
-msgstr "IP automątic"
-
-#: ../../network/network.pm_.c:332 ../../printerdrake.pm_.c:712
-msgid "IP address should be in format 1.2.3.4"
-msgstr "L'adreēa IP ha d'estar amb el format 1.2.3.4"
-
-#: ../../network/network.pm_.c:361
-msgid ""
-"Please enter your host name.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''.\n"
-"You may also enter the IP address of the gateway if you have one"
-msgstr ""
-"Si us plau, introduļu el nom del vostre ordinador central.\n"
-"Aquest nom ha de ser complet, com ara\n"
-"``mybox.mylab.myco.com''.\n"
-"També podeu introduir l'adreēa IP de la passarel·la, si en teniu una"
-
-#: ../../network/network.pm_.c:366
-msgid "DNS server"
-msgstr "servidor DNS"
-
-#: ../../network/network.pm_.c:367
-#, c-format
-msgid "Gateway (e.g. %s)"
-msgstr ""
-
-#: ../../network/network.pm_.c:369
-msgid "Gateway device"
-msgstr "Dispositiu de la passarel·la"
-
-#: ../../network/network.pm_.c:381
-msgid "Proxies configuration"
-msgstr "Configuració dels proxys"
-
-#: ../../network/network.pm_.c:382
-msgid "HTTP proxy"
-msgstr "Proxy HTTP"
-
-#: ../../network/network.pm_.c:383
-msgid "FTP proxy"
-msgstr "Proxy FTP"
-
-#: ../../network/network.pm_.c:384
-msgid "Track network card id (usefull for laptops)"
-msgstr ""
-
-#: ../../network/network.pm_.c:387
-msgid "Proxy should be http://..."
-msgstr "El proxy ha de ser http://..."
-
-#: ../../network/network.pm_.c:388
-msgid "Proxy should be ftp://..."
-msgstr "El proxy ha de ser ftp://..."
-
-#: ../../network/tools.pm_.c:39
-msgid "Internet configuration"
-msgstr "Configuració d'Internet"
-
-#: ../../network/tools.pm_.c:40
-msgid "Do you want to try to connect to the Internet now?"
-msgstr "Voleu intentar connectar-vos a Internet ara?"
-
-#: ../../network/tools.pm_.c:44 ../../standalone/draknet_.c:197
-msgid "Testing your connection..."
-msgstr "S'estą comprovant la vostra conexió..."
-
-#: ../../network/tools.pm_.c:50
-msgid "The system is now connected to Internet."
-msgstr "Ara, el sistema estą connectat a Internet."
-
-#: ../../network/tools.pm_.c:51
-msgid "For Security reason, it will be disconnected now."
-msgstr "Per raons de seguretat, ara es desconnectarą."
-
-#: ../../network/tools.pm_.c:52
-msgid ""
-"The system doesn't seem to be connected to internet.\n"
-"Try to reconfigure your connection."
-msgstr ""
-"No sembla que el sistema estigui connectat a Internet.\n"
-"Intenteu tornar a configurar la connexió."
-
-#: ../../network/tools.pm_.c:76
-msgid "Connection Configuration"
-msgstr "Configuració de la connexió"
-
-#: ../../network/tools.pm_.c:77
-msgid "Please fill or check the field below"
-msgstr "Si us plau, ompliu o marqueu el camp inferior"
-
-#: ../../network/tools.pm_.c:79 ../../standalone/draknet_.c:608
-msgid "Card IRQ"
-msgstr "Targeta IRQ"
-
-#: ../../network/tools.pm_.c:80 ../../standalone/draknet_.c:609
-msgid "Card mem (DMA)"
-msgstr "Targeta de memņria (DMA)"
-
-#: ../../network/tools.pm_.c:81 ../../standalone/draknet_.c:610
-msgid "Card IO"
-msgstr "Targeta d'E/S"
-
-#: ../../network/tools.pm_.c:82 ../../standalone/draknet_.c:611
-msgid "Card IO_0"
-msgstr "Targeta d'E/S_0"
-
-#: ../../network/tools.pm_.c:83 ../../standalone/draknet_.c:612
-msgid "Card IO_1"
-msgstr "Targeta d'E/S_1"
-
-#: ../../network/tools.pm_.c:84 ../../standalone/draknet_.c:613
-msgid "Your personal phone number"
-msgstr "El vostre telčfon particular"
-
-#: ../../network/tools.pm_.c:85 ../../standalone/draknet_.c:614
-msgid "Provider name (ex provider.net)"
-msgstr "Nom del proveļdor (p.ex. proveidor.net)"
-
-#: ../../network/tools.pm_.c:86 ../../standalone/draknet_.c:615
-msgid "Provider phone number"
-msgstr "Nśmero de telčfon del proveļdor"
-
-#: ../../network/tools.pm_.c:87 ../../standalone/draknet_.c:616
-msgid "Provider dns 1 (optional)"
-msgstr "DNS 1 del proveļdor (opcional)"
-
-#: ../../network/tools.pm_.c:88 ../../standalone/draknet_.c:617
-msgid "Provider dns 2 (optional)"
-msgstr "DNS 2 del proveļdor (opcional)"
-
-#: ../../network/tools.pm_.c:89
-#, fuzzy
-msgid "Choose your country"
-msgstr "Escolliu el vostre teclat"
-
-#: ../../network/tools.pm_.c:90 ../../standalone/draknet_.c:620
-msgid "Dialing mode"
-msgstr "Mode de marcatge"
-
-#: ../../network/tools.pm_.c:91 ../../standalone/draknet_.c:632
-#, fuzzy
-msgid "Connection speed"
-msgstr "Tipus de connexió: "
-
-#: ../../network/tools.pm_.c:92 ../../standalone/draknet_.c:633
-#, fuzzy
-msgid "Connection timeout (in sec)"
-msgstr "Tipus de connexió: "
-
-#: ../../network/tools.pm_.c:93 ../../standalone/draknet_.c:618
-msgid "Account Login (user name)"
-msgstr "Entrada del compte (nom d'usuari)"
-
-#: ../../network/tools.pm_.c:94 ../../standalone/draknet_.c:619
-msgid "Account Password"
-msgstr "Contrasenya del compte"
-
-#: ../../partition_table.pm_.c:600
-msgid "mount failed: "
-msgstr "ha fallat el muntatge: "
-
-#: ../../partition_table.pm_.c:664
-msgid "Extended partition not supported on this platform"
-msgstr "Aquesta plataforma no suporta particions esteses"
-
-#: ../../partition_table.pm_.c:682
-msgid ""
-"You have a hole in your partition table but I can't use it.\n"
-"The only solution is to move your primary partitions to have the hole next "
-"to the extended partitions"
-msgstr ""
-"Hi ha un forat a la vostra taula de particions, perņ no puc utilitzar-lo.\n"
-"L'śnica solució és moure les particions primąries per fer que el forat quedi "
-"contigu a les particions ampliades"
-
-#: ../../partition_table.pm_.c:770
-#, c-format
-msgid "Restoring from file %s failed: %s"
-msgstr "Ha fallat la restauració del fitxer %s: %s"
-
-#: ../../partition_table.pm_.c:772
-msgid "Bad backup file"
-msgstr "Fitxer de cņpia de seguretat incorrecte"
-
-#: ../../partition_table.pm_.c:794
-#, c-format
-msgid "Error writing to file %s"
-msgstr "S'ha produļt un error en escriure al fitxer %s"
-
-#: ../../partition_table_raw.pm_.c:186
-msgid ""
-"Something bad is happening on your drive. \n"
-"A test to check the integrity of data has failed. \n"
-"It means writing anything on the disk will end up with random trash"
-msgstr ""
-"Alguna cosa no va bé en la vostra unitat. \n"
-"Ha fallat una comprovació de la integritat de les dades. \n"
-"Aixņ vol dir que qualsevol cosa que s'escrigui al disc acabarą feta malbé"
-
-#: ../../pkgs.pm_.c:24
-msgid "must have"
-msgstr "ha de tenir"
-
-#: ../../pkgs.pm_.c:25
-msgid "important"
-msgstr "important"
-
-#: ../../pkgs.pm_.c:26
-msgid "very nice"
-msgstr "molt bonic"
-
-#: ../../pkgs.pm_.c:27
-msgid "nice"
-msgstr "bonic"
-
-#: ../../pkgs.pm_.c:28
-msgid "maybe"
-msgstr "potser"
-
-#: ../../printer.pm_.c:23
-msgid "CUPS - Common Unix Printing System"
-msgstr ""
-
-#: ../../printer.pm_.c:24
-msgid "LPRng - LPR New Generation"
-msgstr ""
-
-#: ../../printer.pm_.c:25
-msgid "LPD - Line Printer Daemon"
-msgstr ""
-
-#: ../../printer.pm_.c:26
-msgid "PDQ - Print, Don't Queue"
-msgstr ""
-
-#: ../../printer.pm_.c:32 ../../printer.pm_.c:871
-msgid "CUPS"
-msgstr ""
-
-#: ../../printer.pm_.c:33
-msgid "LPRng"
-msgstr ""
-
-#: ../../printer.pm_.c:34
-msgid "LPD"
-msgstr ""
-
-#: ../../printer.pm_.c:35
-msgid "PDQ"
-msgstr ""
-
-#: ../../printer.pm_.c:47
-msgid "Local printer"
-msgstr "Impressora local"
-
-#: ../../printer.pm_.c:48
-msgid "Remote printer"
-msgstr "Impressora remota"
-
-#: ../../printer.pm_.c:49
-#, fuzzy
-msgid "Printer on remote CUPS server"
-msgstr "Servidor CUPS remot"
-
-#: ../../printer.pm_.c:50 ../../printerdrake.pm_.c:734
-#, fuzzy
-msgid "Printer on remote lpd server"
-msgstr "Servidor lpd remot"
-
-#: ../../printer.pm_.c:51
-msgid "Network printer (TCP/Socket)"
-msgstr "Impressora de xarxa (TCP/sņcol)"
-
-#: ../../printer.pm_.c:52
-#, fuzzy
-msgid "Printer on SMB/Windows 95/98/NT server"
-msgstr "SMB/Windows 95/98/NT"
-
-#: ../../printer.pm_.c:53
-#, fuzzy
-msgid "Printer on NetWare server"
-msgstr "Servidor de la impressora"
-
-#: ../../printer.pm_.c:54 ../../printerdrake.pm_.c:738
-#, fuzzy
-msgid "Enter a printer device URI"
-msgstr "Dispositiu URI d'impressora"
-
-#: ../../printer.pm_.c:55
-msgid "Pipe job into a command"
-msgstr ""
-
-#: ../../printer.pm_.c:504 ../../printer.pm_.c:695 ../../printer.pm_.c:1017
-#: ../../printerdrake.pm_.c:1665 ../../printerdrake.pm_.c:2730
-msgid "Unknown model"
-msgstr ""
-
-#: ../../printer.pm_.c:532
-#, fuzzy
-msgid "Local Printers"
-msgstr "Impressora local"
-
-#: ../../printer.pm_.c:534 ../../printer.pm_.c:872
-#, fuzzy
-msgid "Remote Printers"
-msgstr "Impressora remota"
-
-#: ../../printer.pm_.c:541 ../../printerdrake.pm_.c:248
-#, c-format
-msgid " on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printer.pm_.c:544 ../../printerdrake.pm_.c:250
-#, c-format
-msgid ", USB printer \\/*%s"
-msgstr ""
-
-#: ../../printer.pm_.c:549
-#, c-format
-msgid ", multi-function device on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printer.pm_.c:552
-msgid ", multi-function device on USB"
-msgstr ""
-
-#: ../../printer.pm_.c:554
-msgid ", multi-function device on HP JetDirect"
-msgstr ""
-
-#: ../../printer.pm_.c:556
-msgid ", multi-function device"
-msgstr ""
-
-#: ../../printer.pm_.c:559
-#, fuzzy, c-format
-msgid ", printing to %s"
-msgstr "S'ha produļt un error en escriure al fitxer %s"
-
-#: ../../printer.pm_.c:561
-#, c-format
-msgid "on LPD server \"%s\", printer \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:563
-#, c-format
-msgid ", TCP/IP host \"%s\", port %s"
-msgstr ""
-
-#: ../../printer.pm_.c:567
-#, c-format
-msgid "on Windows server \"%s\", share \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:571
-#, c-format
-msgid "on Novell server \"%s\", printer \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:573
-#, c-format
-msgid ", using command %s"
-msgstr ""
-
-#: ../../printer.pm_.c:692 ../../printerdrake.pm_.c:1136
-msgid "Raw printer (No driver)"
-msgstr ""
-
-#: ../../printer.pm_.c:841
-#, fuzzy, c-format
-msgid "(on %s)"
-msgstr "(mņdul %s)"
-
-#: ../../printer.pm_.c:843
-msgid "(on this machine)"
-msgstr ""
-
-#: ../../printer.pm_.c:868
-#, fuzzy, c-format
-msgid "On CUPS server \"%s\""
-msgstr "IP del servidor CUPS"
-
-#: ../../printer.pm_.c:874 ../../printerdrake.pm_.c:2391
-#: ../../printerdrake.pm_.c:2402 ../../printerdrake.pm_.c:2618
-#: ../../printerdrake.pm_.c:2670 ../../printerdrake.pm_.c:2697
-#: ../../printerdrake.pm_.c:2867 ../../printerdrake.pm_.c:2869
-msgid " (Default)"
-msgstr " (Predeterminat)"
-
-#: ../../printerdrake.pm_.c:22
-msgid "Select Printer Connection"
-msgstr "Seleccioneu la connexió de la impressora"
-
-#: ../../printerdrake.pm_.c:23
-msgid "How is the printer connected?"
-msgstr "Com estą connectada la impressora?"
-
-#: ../../printerdrake.pm_.c:25
-#, fuzzy
-msgid ""
-"\n"
-"Printers on remote CUPS servers you do not have to configure here; these "
-"printers will be automatically detected."
-msgstr ""
-"Amb un servidor CUPS remot, aquķ no us cal configurar cap\n"
-"impressora; les impressores es detectaran automąticament.\n"
-"En cas de dubte, seleccioneu \"Servidor CUPS remot\"."
-
-#: ../../printerdrake.pm_.c:69 ../../printerdrake.pm_.c:2454
-#, fuzzy
-msgid "CUPS configuration"
-msgstr "Configuració de la LAN"
-
-#: ../../printerdrake.pm_.c:70 ../../printerdrake.pm_.c:2455
-#, fuzzy
-msgid "Specify CUPS server"
-msgstr "Servidor CUPS remot"
-
-#: ../../printerdrake.pm_.c:71
-msgid ""
-"To get access to printers on remote CUPS servers in your local network you "
-"do not have to configure anything; the CUPS servers inform your machine "
-"automatically about their printers. All printers currently known to your "
-"machine are listed in the \"Remote printers\" section in the main window of "
-"Printerdrake. When your CUPS server is not in your local network, you have "
-"to enter the CUPS server IP address and optionally the port number to get "
-"the printer information from the server, otherwise leave these fields blank."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:72
-msgid ""
-"\n"
-"Normally, CUPS is automatically configured according to your network "
-"environment, so that you can access the printers on the CUPS servers in your "
-"local network. If this does not work correctly, turn off \"Automatic CUPS "
-"configuration\" and edit your file /etc/cups/cupsd.conf manually. Do not "
-"forget to restart CUPS afterwards (command: \"service cups restart\")."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:76
-#, fuzzy
-msgid "The IP address should look like 192.168.1.20"
-msgstr "L'adreēa IP ha d'estar amb el format 1.2.3.4"
-
-#: ../../printerdrake.pm_.c:80 ../../printerdrake.pm_.c:862
-#, fuzzy
-msgid "The port number should be an integer!"
-msgstr "El nśmero de port ha de ser numčric"
-
-#: ../../printerdrake.pm_.c:87
-msgid "CUPS server IP"
-msgstr "IP del servidor CUPS"
-
-#: ../../printerdrake.pm_.c:88 ../../printerdrake.pm_.c:855
-msgid "Port"
-msgstr "Port"
-
-#: ../../printerdrake.pm_.c:90
-#, fuzzy
-msgid "Automatic CUPS configuration"
-msgstr "Configuració del tipus d'arrencada"
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-#, fuzzy
-msgid "Detecting devices ..."
-msgstr "S'estan detectant els dispositius..."
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-msgid "Test ports"
-msgstr "Ports de comprovació"
-
-#: ../../printerdrake.pm_.c:167 ../../printerdrake.pm_.c:2437
-#: ../../printerdrake.pm_.c:2556
-#, fuzzy
-msgid "Add a new printer"
-msgstr "Cap impressora"
-
-#: ../../printerdrake.pm_.c:168
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard allows you to install local or remote printers to be used from "
-"this machine and also from other machines in the network.\n"
-"\n"
-"It asks you for all necessary information to set up the printer and gives "
-"you access to all available printer drivers, driver options, and printer "
-"connection types."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:176 ../../printerdrake.pm_.c:203
-#: ../../printerdrake.pm_.c:378 ../../printerdrake.pm_.c:393
-#: ../../printerdrake.pm_.c:403 ../../printerdrake.pm_.c:466
-#, fuzzy
-msgid "Local Printer"
-msgstr "Impressora local"
-
-#: ../../printerdrake.pm_.c:177
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard will help you to install your printer(s) connected to this "
-"computer.\n"
-"\n"
-"Please plug in your printer(s) on this computer and turn it/them on. Click "
-"on \"Next\" when you are ready, and on \"Cancel\" when you do not want to "
-"set up your printer(s) now.\n"
-"\n"
-"Note that some computers can crash during the printer auto-detection, turn "
-"off \"Auto-detect printers\" to do a printer installation without auto-"
-"detection. Use the \"Expert Mode\" of printerdrake when you want to set up "
-"printing on a remote printer if printerdrake does not list it automatically."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:186
-#, fuzzy
-msgid "Auto-detect printers"
-msgstr "Impressora remota"
-
-#: ../../printerdrake.pm_.c:204
-msgid ""
-"\n"
-"Congratulations, your printer is now installed and configured!\n"
-"\n"
-"You can print using the \"Print\" command of your application (usually in "
-"the \"File\" menu).\n"
-"\n"
-"If you want to add, remove, or rename a printer, or if you want to change "
-"the default option settings (paper input tray, printout quality, ...), "
-"select \"Printer\" in the \"Hardware\" section of the Mandrake Control "
-"Center."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:223
-msgid "Auto-Detection of Printers"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:224
-msgid ""
-"Printerdrake is able to auto-detect your locally connected parallel and USB "
-"printers for you, but note that on some systems the auto-detection CAN "
-"FREEZE YOUR SYSTEM AND THIS CAN LEAD TO CORRUPTED FILE SYSTEMS! So do it ON "
-"YOUR OWN RISK!\n"
-"\n"
-"Do you really want to get your printers auto-detected?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:227 ../../printerdrake.pm_.c:229
-#: ../../printerdrake.pm_.c:230
-#, fuzzy
-msgid "Do auto-detection"
-msgstr "Utilitza la detecció automątica"
-
-#: ../../printerdrake.pm_.c:228
-#, fuzzy
-msgid "Set up printer manually"
-msgstr "Impressora remota"
-
-#: ../../printerdrake.pm_.c:256
-#, fuzzy, c-format
-msgid "Detected %s"
-msgstr "s'ha detectat %s"
-
-#: ../../printerdrake.pm_.c:260 ../../printerdrake.pm_.c:287
-#: ../../printerdrake.pm_.c:306
-#, c-format
-msgid "Printer on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:262 ../../printerdrake.pm_.c:289
-#: ../../printerdrake.pm_.c:311
-#, c-format
-msgid "USB printer \\/*%s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:379
-msgid ""
-"No local printer found! To manually install a printer enter a device name/"
-"file name in the input line (Parallel Ports: /dev/lp0, /dev/lp1, ..., "
-"equivalent to LPT1:, LPT2:, ..., 1st USB printer: /dev/usb/lp0, 2nd USB "
-"printer: /dev/usb/lp1, ...)."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:383
-#, fuzzy
-msgid "You must enter a device or file name!"
-msgstr "Dispositiu URI d'impressora"
-
-#: ../../printerdrake.pm_.c:394
-#, fuzzy
-msgid ""
-"No local printer found!\n"
-"\n"
-msgstr "Impressora local"
-
-#: ../../printerdrake.pm_.c:395
-msgid ""
-"Network printers can only be installed after the installation. Choose "
-"\"Hardware\" and then \"Printer\" in the Mandrake Control Center."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:396
-msgid ""
-"To install network printers, click \"Cancel\", switch to the \"Expert Mode"
-"\", and click \"Add a new printer\" again."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:407
-msgid ""
-"The following printer was auto-detected, if it is not the one you want to "
-"configure, enter a device name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:408
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up or enter a device name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:410
-msgid ""
-"The following printer was auto-detected. The configuration of the printer "
-"will work fully automatically. If your printer was not correctly detected or "
-"if you prefer a customized printer configuration, turn on \"Manual "
-"configuration\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:411
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up. The configuration of the printer will work fully "
-"automatically. If your printer was not correctly detected or if you prefer a "
-"customized printer configuration, turn on \"Manual configuration\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:413
-msgid ""
-"Please choose the port where your printer is connected to or enter a device "
-"name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:414
-#, fuzzy
-msgid "Please choose the port where your printer is connected to."
-msgstr ""
-"Si us plau, seleccioneu el port sčrie al qual teniu connectat el mņdem."
-
-#: ../../printerdrake.pm_.c:416
-msgid ""
-" (Parallel Ports: /dev/lp0, /dev/lp1, ..., equivalent to LPT1:, LPT2:, ..., "
-"1st USB printer: /dev/usb/lp0, 2nd USB printer: /dev/usb/lp1, ...)."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:421
-#, fuzzy
-msgid "You must choose/enter a printer/device!"
-msgstr "Dispositiu URI d'impressora"
-
-#: ../../printerdrake.pm_.c:441
-#, fuzzy
-msgid "Manual configuration"
-msgstr "Configuració"
-
-#: ../../printerdrake.pm_.c:467
-msgid ""
-"Is your printer a multi-function device from HP (OfficeJet, PSC, PhotoSmart, "
-"LaserJet 1100/1200/1220/3200/3300 with scanner)?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:482
-#, fuzzy
-msgid "Installing HPOJ package..."
-msgstr "S'estą instal·lant el paquet %s"
-
-#: ../../printerdrake.pm_.c:487
-msgid "Checking device and configuring HPOJ ..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:505
-#, fuzzy
-msgid "Installing SANE package..."
-msgstr "S'estą instal·lant el paquet %s"
-
-#: ../../printerdrake.pm_.c:517
-msgid "Scanning on your HP multi-function device"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:534
-#, fuzzy
-msgid "Making printer port available for CUPS ..."
-msgstr "S'estą llegint la base de dades de controladors CUPS..."
-
-#: ../../printerdrake.pm_.c:544 ../../printerdrake.pm_.c:1018
-#: ../../printerdrake.pm_.c:1132
-#, fuzzy
-msgid "Reading printer database ..."
-msgstr "S'estą llegint la base de dades de controladors CUPS..."
-
-#: ../../printerdrake.pm_.c:624
-msgid "Remote lpd Printer Options"
-msgstr "Opcions de la impressora lpd remota"
-
-#: ../../printerdrake.pm_.c:625
-#, fuzzy
-msgid ""
-"To use a remote lpd printer, you need to supply the hostname of the printer "
-"server and the printer name on that server."
-msgstr ""
-"Per poder utilitzar una cua d'impressió lpd remota, necessiteu proporcionar\n"
-"el nom de l'ordinador central del servidor de la impressora i el nom de la\n"
-"cua d'aquest servidor on s'hi han de situar les tasques."
-
-#: ../../printerdrake.pm_.c:626
-#, fuzzy
-msgid "Remote host name"
-msgstr "Nom de l'ordinador central remot"
-
-#: ../../printerdrake.pm_.c:627
-#, fuzzy
-msgid "Remote printer name"
-msgstr "Impressora remota"
-
-#: ../../printerdrake.pm_.c:630
-#, fuzzy
-msgid "Remote host name missing!"
-msgstr "Nom de l'ordinador central remot"
-
-#: ../../printerdrake.pm_.c:634
-#, fuzzy
-msgid "Remote printer name missing!"
-msgstr "Nom de l'ordinador central remot"
-
-#: ../../printerdrake.pm_.c:702
-msgid "SMB (Windows 9x/NT) Printer Options"
-msgstr "Opcions de la impressora SMB (Windows 9x/NT)"
-
-#: ../../printerdrake.pm_.c:703
-#, fuzzy
-msgid ""
-"To print to a SMB printer, you need to provide the SMB host name (Note! It "
-"may be different from its TCP/IP hostname!) and possibly the IP address of "
-"the print server, as well as the share name for the printer you wish to "
-"access and any applicable user name, password, and workgroup information."
-msgstr ""
-"Per poder imprimir a una impressora SMB, heu d'indicar el nom de\n"
-"l'ordinador central SMB (tingueu en compte que pot ser diferent del seu nom\n"
-"TCP/IP) i possiblement l'adreēa IP del servidor d'impressió, aixķ com el "
-"nom\n"
-"de compartició de la impressora a quč voleu accedir i el nom d'usuari,\n"
-"contrasenya i informació de grup si són necessaris."
-
-#: ../../printerdrake.pm_.c:704
-msgid "SMB server host"
-msgstr "Ordinador central del servidor SMB"
-
-#: ../../printerdrake.pm_.c:705
-msgid "SMB server IP"
-msgstr "IP del servidor SMB"
-
-#: ../../printerdrake.pm_.c:706
-msgid "Share name"
-msgstr "Nom de compartició"
-
-#: ../../printerdrake.pm_.c:709
-msgid "Workgroup"
-msgstr "Grup de treball"
-
-#: ../../printerdrake.pm_.c:716
-msgid "Either the server name or the server's IP must be given!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:720
-msgid "Samba share name missing!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:725
-msgid "SECURITY WARNING!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:726
-#, c-format
-msgid ""
-"You are about to set up printing to a Windows account with password. Due to "
-"a fault in the architecture of the Samba client software the password is put "
-"in clear text into the command line of the Samba client used to transmit the "
-"print job to the Windows server. So it is possible for every user on this "
-"machine to display the password on the screen by issuing commands as \"ps "
-"auxwww\".\n"
-"\n"
-"We recommend to make use of one of the following alternatives (in all cases "
-"you have to make sure that only machines from your local network have access "
-"to your Windows server, for example by means of a firewall):\n"
-"\n"
-"Use a password-less account on your Windows server, as the \"GUEST\" account "
-"or a special account dedicated for printing. Do not remove the password "
-"protection from a personal account or the administrator account.\n"
-"\n"
-"Set up your Windows server to make the printer available under the LPD "
-"protocol. Then set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:736
-#, c-format
-msgid ""
-"Set up your Windows server to make the printer available under the IPP "
-"protocol and set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:739
-msgid ""
-"Connect your printer to a Linux server and let your Windows machine(s) "
-"connect to it as a client.\n"
-"\n"
-"Do you really want to continue setting up this printer as you are doing now?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:801
-msgid "NetWare Printer Options"
-msgstr "Opcions de la impressora NetWare"
-
-#: ../../printerdrake.pm_.c:802
-#, fuzzy
-msgid ""
-"To print on a NetWare printer, you need to provide the NetWare print server "
-"name (Note! it may be different from its TCP/IP hostname!) as well as the "
-"print queue name for the printer you wish to access and any applicable user "
-"name and password."
-msgstr ""
-"Per poder imprimir a una impressora NetWare, heu de proporcionar el nom del\n"
-"servidor d'impressió NetWare (tingueu en compte que pot ser diferent del "
-"nom\n"
-"TCP/IP del seu ordinador central), aixķ com el nom de la cua d'impressió de\n"
-"la impressora a quč voleu accedir i el nom d'usuari i contrasenya si són\n"
-"necessaris."
-
-#: ../../printerdrake.pm_.c:803
-msgid "Printer Server"
-msgstr "Servidor de la impressora"
-
-#: ../../printerdrake.pm_.c:804
-msgid "Print Queue Name"
-msgstr "Nom de la cua d'impressió"
-
-#: ../../printerdrake.pm_.c:809
-msgid "NCP server name missing!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:813
-msgid "NCP queue name missing!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:852
-#, fuzzy
-msgid "TCP/Socket Printer Options"
-msgstr "Opcions de la impressora de sņcol"
-
-#: ../../printerdrake.pm_.c:853
-#, fuzzy
-msgid ""
-"To print to a TCP or socket printer, you need to provide the host name of "
-"the printer and optionally the port number. On HP JetDirect servers the port "
-"number is usually 9100, on other servers it can vary. See the manual of your "
-"hardware."
-msgstr ""
-"Per imprimir a una impressora de sņcol, heu d'indicar el nom de l'ordinador\n"
-"central de la impressora i, opcionalment, el nśmero de port."
-
-#: ../../printerdrake.pm_.c:854
-#, fuzzy
-msgid "Printer host name"
-msgstr "Nom de l'ordinador central de la impressora"
-
-#: ../../printerdrake.pm_.c:858
-#, fuzzy
-msgid "Printer host name missing!"
-msgstr "Nom de l'ordinador central de la impressora"
-
-#: ../../printerdrake.pm_.c:887 ../../printerdrake.pm_.c:889
-msgid "Printer Device URI"
-msgstr "Dispositiu URI d'impressora"
-
-#: ../../printerdrake.pm_.c:888
-msgid ""
-"You can specify directly the URI to access the printer. The URI must fulfill "
-"either the CUPS or the Foomatic specifications. Note that not all URI types "
-"are supported by all the spoolers."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:903
-msgid "A valid URI must be entered!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1004
-msgid ""
-"Every printer needs a name (for example \"printer\"). The Description and "
-"Location fields do not need to be filled in. They are comments for the users."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1005
-msgid "Name of printer"
-msgstr "Nom de la impressora"
-
-#: ../../printerdrake.pm_.c:1006
-msgid "Description"
-msgstr "Descripció"
-
-#: ../../printerdrake.pm_.c:1007
-msgid "Location"
-msgstr "Ubicació"
-
-#: ../../printerdrake.pm_.c:1021
-#, fuzzy
-msgid "Preparing printer database ..."
-msgstr "S'estą llegint la base de dades de controladors CUPS..."
-
-#: ../../printerdrake.pm_.c:1112
-#, fuzzy
-msgid "Your printer model"
-msgstr "Impressora remota"
-
-#: ../../printerdrake.pm_.c:1113
-#, c-format
-msgid ""
-"Printerdrake has compared the model name resulting from the printer auto-"
-"detection with the models listed in its printer database to find the best "
-"match. This choice can be wrong, especially when your printer is not listed "
-"at all in the database. So check whether the choice is correct and click "
-"\"The model is correct\" if so and if not, click \"Select model manually\" "
-"so that you can choose your printer model manually on the next screen.\n"
-"\n"
-"For your printer Printerdrake has found:\n"
-"\n"
-"%s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1118 ../../printerdrake.pm_.c:1121
-#, fuzzy
-msgid "The model is correct"
-msgstr "Aixņ és correcte?"
-
-#: ../../printerdrake.pm_.c:1119 ../../printerdrake.pm_.c:1120
-#: ../../printerdrake.pm_.c:1123
-#, fuzzy
-msgid "Select model manually"
-msgstr "Impressora remota"
-
-#: ../../printerdrake.pm_.c:1139
-#, fuzzy
-msgid "Printer model selection"
-msgstr "Connexió de la impressora"
-
-#: ../../printerdrake.pm_.c:1140
-#, fuzzy
-msgid "Which printer model do you have?"
-msgstr "Quin tipus d'impressora teniu?"
-
-#: ../../printerdrake.pm_.c:1141
-msgid ""
-"\n"
-"\n"
-"Please check whether Printerdrake did the auto-detection of your printer "
-"model correctly. Search the correct model in the list when the cursor is "
-"standing on a wrong model or on \"Raw printer\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1144
-msgid ""
-"If your printer is not listed, choose a compatible (see printer manual) or a "
-"similar one."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1220
-#, fuzzy
-msgid "OKI winprinter configuration"
-msgstr "Configuració del mņdem"
-
-#: ../../printerdrake.pm_.c:1221
-msgid ""
-"You are configuring an OKI laser winprinter. These printers\n"
-"use a very special communication protocol and therefore they work only when "
-"connected to the first parallel port. When your printer is connected to "
-"another port or to a print server box please connect the printer to the "
-"first parallel port before you print a test page. Otherwise the printer will "
-"not work. Your connection type setting will be ignored by the driver."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1264 ../../printerdrake.pm_.c:1291
-#, fuzzy
-msgid "Lexmark inkjet configuration"
-msgstr "Configuració d'Internet"
-
-#: ../../printerdrake.pm_.c:1265
-msgid ""
-"The inkjet printer drivers provided by Lexmark only support local printers, "
-"no printers on remote machines or print server boxes. Please connect your "
-"printer to a local port or configure it on the machine where it is connected "
-"to."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1292
-msgid ""
-"To be able to print with your Lexmark inkjet and this configuration, you "
-"need the inkjet printer drivers provided by Lexmark (http://www.lexmark."
-"com/). Go to the US site and click on the \"Drivers\" button. Then choose "
-"your model and afterwards \"Linux\" as operating system. The drivers come as "
-"RPM packages or shell scripts with interactive graphical installation. You "
-"do not need to do this configuration by the graphical frontends. Cancel "
-"directly after the license agreement. Then print printhead alignment pages "
-"with \"lexmarkmaintain\" and adjust the head alignment settings with this "
-"program."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1508
-msgid ""
-"Printer default settings\n"
-"\n"
-"You should make sure that the page size and the ink type/printing mode (if "
-"available) and also the hardware configuration of laser printers (memory, "
-"duplex unit, extra trays) are set correctly. Note that with a very high "
-"printout quality/resolution printing can get substantially slower."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1517
-#, c-format
-msgid "Option %s must be an integer number!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1521
-#, c-format
-msgid "Option %s must be a number!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1526
-#, c-format
-msgid "Option %s out of range!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1565
-#, fuzzy, c-format
-msgid ""
-"Do you want to set this printer (\"%s\")\n"
-"as the default printer?"
-msgstr "Voleu comprovar la impressió?"
-
-#: ../../printerdrake.pm_.c:1582
-#, fuzzy
-msgid "Test pages"
-msgstr "Ports de comprovació"
-
-#: ../../printerdrake.pm_.c:1583
-msgid ""
-"Please select the test pages you want to print.\n"
-"Note: the photo test page can take a rather long time to get printed and on "
-"laser printers with too low memory it can even not come out. In most cases "
-"it is enough to print the standard test page."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1587
-#, fuzzy
-msgid "No test pages"
-msgstr "Sķ, imprimeix ambdues pągines de prova"
-
-#: ../../printerdrake.pm_.c:1588
-#, fuzzy
-msgid "Print"
-msgstr "Impressora"
-
-#: ../../printerdrake.pm_.c:1590
-#, fuzzy
-msgid "Standard test page"
-msgstr "Eines estąndard"
-
-#: ../../printerdrake.pm_.c:1593
-msgid "Alternative test page (Letter)"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1596
-#, fuzzy
-msgid "Alternative test page (A4)"
-msgstr "S'esta(n) imprimint la(es) pągina(es) de prova... "
-
-#: ../../printerdrake.pm_.c:1598
-#, fuzzy
-msgid "Photo test page"
-msgstr "S'esta(n) imprimint la(es) pągina(es) de prova... "
-
-#: ../../printerdrake.pm_.c:1602
-#, fuzzy
-msgid "Do not print any test page"
-msgstr "S'esta(n) imprimint la(es) pągina(es) de prova... "
-
-#: ../../printerdrake.pm_.c:1610 ../../printerdrake.pm_.c:1747
-msgid "Printing test page(s)..."
-msgstr "S'esta(n) imprimint la(es) pągina(es) de prova... "
-
-#: ../../printerdrake.pm_.c:1635
-#, fuzzy, c-format
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-"Printing status:\n"
-"%s\n"
-"\n"
-msgstr ""
-"La(es) pągina(es) de prova s'ha(n) enviat al procés d'impressió.\n"
-"Degut a aixņ, pot passar un cert temps abans no comenci la impressió.\n"
-"Estat de la impressió:\n"
-"%s\n"
-"\n"
-"Funciona correctament?"
-
-#: ../../printerdrake.pm_.c:1639
-#, fuzzy
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-msgstr ""
-"La(es) pągina(es) de prova s'ha(n) enviat al procés d'impressió.\n"
-"Degut a aixņ, pot passar un cert temps abans no comenci la impressió.\n"
-"Funciona correctament?"
-
-#: ../../printerdrake.pm_.c:1646
-msgid "Did it work properly?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1667 ../../printerdrake.pm_.c:2732
-#, fuzzy
-msgid "Raw printer"
-msgstr "Cap impressora"
-
-#: ../../printerdrake.pm_.c:1685
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) you can either use "
-"the command \"%s <file>\" or a graphical printing tool: \"xpp <file>\" or "
-"\"kprinter <file>\". The graphical tools allow you to choose the printer and "
-"to modify the option settings easily.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1687
-msgid ""
-"These commands you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications, but here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1690 ../../printerdrake.pm_.c:1706
-#: ../../printerdrake.pm_.c:1716
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" command also allows to modify the option settings for a "
-"particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\". "
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1693 ../../printerdrake.pm_.c:1732
-#, c-format
-msgid ""
-"To know about the options available for the current printer read either the "
-"list shown below or click on the \"Print option list\" button.%s\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1696
-msgid ""
-"Here is a list of the available printing options for the current printer:\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1701 ../../printerdrake.pm_.c:1711
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\".\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1703 ../../printerdrake.pm_.c:1713
-#: ../../printerdrake.pm_.c:1723
-msgid ""
-"This command you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications. But here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1708 ../../printerdrake.pm_.c:1718
-msgid ""
-"To get a list of the options available for the current printer click on the "
-"\"Print option list\" button."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1721
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\" or \"%s <file>\".\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1725
-msgid ""
-"You can also use the graphical interface \"xpdq\" for setting options and "
-"handling printing jobs.\n"
-"If you are using KDE as desktop environment you have a \"panic button\", an "
-"icon on the desktop, labeled with \"STOP Printer!\", which stops all print "
-"jobs immediately when you click it. This is for example useful for paper "
-"jams.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1729
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" and \"%s\" commands also allow to modify the option settings for "
-"a particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\".\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1738 ../../printerdrake.pm_.c:1744
-#: ../../printerdrake.pm_.c:1745 ../../printerdrake.pm_.c:1746
-#: ../../printerdrake.pm_.c:2716 ../../standalone/drakbackup_.c:754
-#: ../../standalone/drakbackup_.c:2458 ../../standalone/drakfont_.c:577
-#: ../../standalone/drakfont_.c:791
-msgid "Close"
-msgstr "Tanca"
-
-#: ../../printerdrake.pm_.c:1741 ../../printerdrake.pm_.c:1753
-#, fuzzy, c-format
-msgid "Printing/Scanning on \"%s\""
-msgstr "S'estą desactivant la xarxa"
-
-#: ../../printerdrake.pm_.c:1742 ../../printerdrake.pm_.c:1754
-#, fuzzy, c-format
-msgid "Printing on the printer \"%s\""
-msgstr "S'estą desactivant la xarxa"
-
-#: ../../printerdrake.pm_.c:1744
-#, fuzzy
-msgid "Print option list"
-msgstr "Opcions de la impressora"
-
-#: ../../printerdrake.pm_.c:1766
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan with \"scanimage\" (\"scanimage -d hp:%s\" to specify "
-"the scanner when you have more than one) from the command line or with the "
-"graphical interfaces \"xscanimage\" or \"xsane\". If you are using the GIMP, "
-"you can also scan by choosing the appropriate point in the \"File\"/\"Acquire"
-"\" menu. Call also \"man scanimage\" and \"man sane-hp\" on the command line "
-"to get more information.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1772
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan from the command line with \"ptal-hp %s scan ...\". "
-"Scanning via a graphical interface or from the GIMP is not supported yet for "
-"your device. More information you will find in the \"/usr/share/doc/hpoj-0.8/"
-"ptal-hp-scan.html\" file on your system. If you have an HP LaserJet 1100 or "
-"1200 you can only scan when you have the scanner option installed.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1794 ../../printerdrake.pm_.c:2221
-#: ../../printerdrake.pm_.c:2485 ../../standalone/printerdrake_.c:49
-#, fuzzy
-msgid "Reading printer data ..."
-msgstr "S'estą llegint la base de dades de controladors CUPS..."
-
-#: ../../printerdrake.pm_.c:1814 ../../printerdrake.pm_.c:1842
-#: ../../printerdrake.pm_.c:1877
-#, fuzzy
-msgid "Transfer printer configuration"
-msgstr "Configuració d'Internet"
-
-#: ../../printerdrake.pm_.c:1815
-#, c-format
-msgid ""
-"You can copy the printer configuration which you have done for the spooler %"
-"s to %s, your current spooler. All the configuration data (printer name, "
-"description, location, connection type, and default option settings) is "
-"overtaken, but jobs will not be transferred.\n"
-"Not all queues can be transferred due to the following reasons:\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1818
-msgid ""
-"CUPS does not support printers on Novell servers or printers sending the "
-"data into a free-formed command.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1820
-msgid ""
-"PDQ only supports local printers, remote LPD printers, and Socket/TCP "
-"printers.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1822
-msgid "LPD and LPRng do not support IPP printers.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1824
-msgid ""
-"In addition, queues not created with this program or \"foomatic-configure\" "
-"cannot be transferred."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1825
-msgid ""
-"\n"
-"Also printers configured with the PPD files provided by their manufacturers "
-"or with native CUPS drivers cannot be transferred."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1826
-msgid ""
-"\n"
-"Mark the printers which you want to transfer and click \n"
-"\"Transfer\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1829
-msgid "Do not transfer printers"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1830 ../../printerdrake.pm_.c:1847
-msgid "Transfer"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1843
-#, c-format
-msgid ""
-"A printer named \"%s\" already exists under %s. \n"
-"Click \"Transfer\" to overwrite it.\n"
-"You can also type a new name or skip this printer."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1851
-msgid "Name of printer should contain only letters, numbers and the underscore"
-msgstr ""
-"El nom de la impressora només pot constar de lletres, nśmeros i el carącter "
-"de subratllat"
-
-#: ../../printerdrake.pm_.c:1856
-#, c-format
-msgid ""
-"The printer \"%s\" already exists,\n"
-"do you really want to overwrite its configuration?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1864
-#, fuzzy
-msgid "New printer name"
-msgstr "Cap impressora"
-
-#: ../../printerdrake.pm_.c:1867
-#, c-format
-msgid "Transferring %s ..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1878
-#, c-format
-msgid ""
-"You have transferred your former default printer (\"%s\"), Should it be also "
-"the default printer under the new printing system %s?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1887
-#, fuzzy
-msgid "Refreshing printer data ..."
-msgstr "S'estą llegint la base de dades de controladors CUPS..."
-
-#: ../../printerdrake.pm_.c:1895 ../../printerdrake.pm_.c:1966
-#: ../../printerdrake.pm_.c:1978
-#, fuzzy
-msgid "Configuration of a remote printer"
-msgstr "Configura la impressora"
-
-#: ../../printerdrake.pm_.c:1896
-#, fuzzy
-msgid "Starting network ..."
-msgstr "S'estą comprovant la vostra conexió..."
-
-#: ../../printerdrake.pm_.c:1930 ../../printerdrake.pm_.c:1934
-#: ../../printerdrake.pm_.c:1936
-#, fuzzy
-msgid "Configure the network now"
-msgstr "Configura la xarxa"
-
-#: ../../printerdrake.pm_.c:1931
-#, fuzzy
-msgid "Network functionality not configured"
-msgstr "El monitor no estą configurat"
-
-#: ../../printerdrake.pm_.c:1932
-msgid ""
-"You are going to configure a remote printer. This needs working network "
-"access, but your network is not configured yet. If you go on without network "
-"configuration, you will not be able to use the printer which you are "
-"configuring now. How do you want to proceed?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1935
-#, fuzzy
-msgid "Go on without configuring the network"
-msgstr "S'estą configurant la xarxa"
-
-#: ../../printerdrake.pm_.c:1968
-msgid ""
-"The network configuration done during the installation cannot be started "
-"now. Please check whether the network gets accessable after booting your "
-"system and correct the configuration using the Mandrake Control Center, "
-"section \"Network & Internet\"/\"Connection\", and afterwards set up the "
-"printer, also using the Mandrake Control Center, section \"Hardware\"/"
-"\"Printer\""
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1969
-msgid ""
-"The network access was not running and could not be started. Please check "
-"your configuration and your hardware. Then try to configure your remote "
-"printer again."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1979
-#, fuzzy
-msgid "Restarting printing system ..."
-msgstr "Quin sistema d'impressió voleu utilitzar?"
-
-#: ../../printerdrake.pm_.c:2017
-#, fuzzy
-msgid "high"
-msgstr "Alt"
-
-#: ../../printerdrake.pm_.c:2017
-#, fuzzy
-msgid "paranoid"
-msgstr "Paranoic"
-
-#: ../../printerdrake.pm_.c:2018
-#, c-format
-msgid "Installing a printing system in the %s security level"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2019
-#, c-format
-msgid ""
-"You are about to install the printing system %s on a system running in the %"
-"s security level.\n"
-"\n"
-"This printing system runs a daemon (background process) which waits for "
-"print jobs and handles them. This daemon is also accessable by remote "
-"machines through the network and so it is a possible point for attacks. "
-"Therefore only a few selected daemons are started by default in this "
-"security level.\n"
-"\n"
-"Do you really want to configure printing on this machine?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2051
-#, fuzzy
-msgid "Starting the printing system at boot time"
-msgstr "Quin sistema d'impressió voleu utilitzar?"
-
-#: ../../printerdrake.pm_.c:2052
-#, c-format
-msgid ""
-"The printing system (%s) will not be started automatically when the machine "
-"is booted.\n"
-"\n"
-"It is possible that the automatic starting was turned off by changing to a "
-"higher security level, because the printing system is a potential point for "
-"attacks.\n"
-"\n"
-"Do you want to have the automatic starting of the printing system turned on "
-"again?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2075 ../../printerdrake.pm_.c:2113
-#: ../../printerdrake.pm_.c:2143 ../../printerdrake.pm_.c:2176
-#: ../../printerdrake.pm_.c:2281
-msgid "Checking installed software..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2117
-msgid "Removing LPRng..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2147
-msgid "Removing LPD..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2205
-#, fuzzy
-msgid "Select Printer Spooler"
-msgstr "Seleccioneu la connexió de la impressora"
-
-#: ../../printerdrake.pm_.c:2206
-#, fuzzy
-msgid "Which printing system (spooler) do you want to use?"
-msgstr "Quin sistema d'impressió voleu utilitzar?"
-
-#: ../../printerdrake.pm_.c:2239
-#, fuzzy, c-format
-msgid "Configuring printer \"%s\" ..."
-msgstr "Configura la impressora"
-
-#: ../../printerdrake.pm_.c:2252
-#, fuzzy
-msgid "Installing Foomatic ..."
-msgstr "S'estą instal·lant el paquet %s"
-
-#: ../../printerdrake.pm_.c:2309 ../../printerdrake.pm_.c:2348
-#: ../../printerdrake.pm_.c:2733 ../../printerdrake.pm_.c:2803
-msgid "Printer options"
-msgstr "Opcions de la impressora"
-
-#: ../../printerdrake.pm_.c:2318
-#, fuzzy
-msgid "Preparing PrinterDrake ..."
-msgstr "S'estą llegint la base de dades de controladors CUPS..."
-
-#: ../../printerdrake.pm_.c:2335 ../../printerdrake.pm_.c:2890
-#, fuzzy
-msgid "Configuring applications..."
-msgstr "Configura la impressora"
-
-#: ../../printerdrake.pm_.c:2355
-#, fuzzy
-msgid "Would you like to configure printing?"
-msgstr "Voleu configurar una impressora?"
-
-#: ../../printerdrake.pm_.c:2367
-msgid "Printing system: "
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2415
-msgid "Printerdrake"
-msgstr "Printerdrake"
-
-#: ../../printerdrake.pm_.c:2419
-#, fuzzy
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; to view information about it; "
-"or to make a printer on a remote CUPS server available for Star Office/"
-"OpenOffice.org."
-msgstr ""
-"Aquestes són les cues d'impressió següents.\n"
-"Podeu afegir-ne algunes més o canviar-ne les existents."
-
-#: ../../printerdrake.pm_.c:2420
-#, fuzzy
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; or to view information about "
-"it."
-msgstr ""
-"Aquestes són les cues d'impressió següents.\n"
-"Podeu afegir-ne algunes més o canviar-ne les existents."
-
-#: ../../printerdrake.pm_.c:2446
-msgid "Refresh printer list (to display all available remote CUPS printers)"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2464
-#, fuzzy
-msgid "Change the printing system"
-msgstr "Configura la xarxa"
-
-#: ../../printerdrake.pm_.c:2469 ../../standalone/draknet_.c:278
-msgid "Normal Mode"
-msgstr "Mode normal"
-
-#: ../../printerdrake.pm_.c:2625 ../../printerdrake.pm_.c:2675
-#: ../../printerdrake.pm_.c:2884
-#, fuzzy
-msgid "Do you want to configure another printer?"
-msgstr "Voleu comprovar la configuració?"
-
-#: ../../printerdrake.pm_.c:2711
-#, fuzzy
-msgid "Modify printer configuration"
-msgstr "Configuració del mņdem"
-
-#: ../../printerdrake.pm_.c:2713
-#, fuzzy, c-format
-msgid ""
-"Printer %s\n"
-"What do you want to modify on this printer?"
-msgstr "Voleu comprovar la configuració?"
-
-#: ../../printerdrake.pm_.c:2717
-msgid "Do it!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2722 ../../printerdrake.pm_.c:2777
-#, fuzzy
-msgid "Printer connection type"
-msgstr "Connexió a Internet compartida"
-
-#: ../../printerdrake.pm_.c:2723 ../../printerdrake.pm_.c:2781
-#, fuzzy
-msgid "Printer name, description, location"
-msgstr "Connexió de la impressora"
-
-#: ../../printerdrake.pm_.c:2725 ../../printerdrake.pm_.c:2796
-msgid "Printer manufacturer, model, driver"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2726 ../../printerdrake.pm_.c:2797
-msgid "Printer manufacturer, model"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2735 ../../printerdrake.pm_.c:2807
-msgid "Set this printer as the default"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2737 ../../printerdrake.pm_.c:2812
-msgid "Add this printer to Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2738 ../../printerdrake.pm_.c:2821
-msgid "Remove this printer from Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2739 ../../printerdrake.pm_.c:2830
-#, fuzzy
-msgid "Print test pages"
-msgstr "S'esta(n) imprimint la(es) pągina(es) de prova... "
-
-#: ../../printerdrake.pm_.c:2740 ../../printerdrake.pm_.c:2832
-#, fuzzy
-msgid "Know how to use this printer"
-msgstr "Voleu comprovar la configuració?"
-
-#: ../../printerdrake.pm_.c:2742 ../../printerdrake.pm_.c:2834
-#, fuzzy
-msgid "Remove printer"
-msgstr "Impressora remota"
-
-#: ../../printerdrake.pm_.c:2786
-#, fuzzy, c-format
-msgid "Removing old printer \"%s\" ..."
-msgstr "S'estą llegint la base de dades de controladors CUPS..."
-
-#: ../../printerdrake.pm_.c:2810
-#, fuzzy
-msgid "Default printer"
-msgstr "Impressora local"
-
-#: ../../printerdrake.pm_.c:2811
-#, c-format
-msgid "The printer \"%s\" is set as the default printer now."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2815 ../../printerdrake.pm_.c:2818
-msgid "Adding printer to Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2816
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully added to Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2819
-#, c-format
-msgid "Failed to add the printer \"%s\" to Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2824 ../../printerdrake.pm_.c:2827
-msgid "Removing printer from Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2825
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully removed from Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2828
-#, c-format
-msgid "Failed to remove the printer \"%s\" from Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2836
-#, fuzzy, c-format
-msgid "Do you really want to remove the printer \"%s\"?"
-msgstr "Voleu reiniciar la xarxa"
-
-#: ../../printerdrake.pm_.c:2838
-#, fuzzy, c-format
-msgid "Removing printer \"%s\" ..."
-msgstr "S'estą llegint la base de dades de controladors CUPS..."
-
-#: ../../proxy.pm_.c:29 ../../proxy.pm_.c:37 ../../proxy.pm_.c:58
-#: ../../proxy.pm_.c:78
-#, fuzzy
-msgid "Proxy configuration"
-msgstr "Configuració dels proxys"
-
-#: ../../proxy.pm_.c:30
-msgid ""
-"Welcome to the proxy configuration utility.\n"
-"\n"
-"Here, you'll be able to set up your http and ftp proxies\n"
-"with or without login and password\n"
-msgstr ""
-
-#: ../../proxy.pm_.c:38
-msgid ""
-"Please fill in the http proxy informations\n"
-"Leave it blank if you don't want an http proxy"
-msgstr ""
-
-#: ../../proxy.pm_.c:39 ../../proxy.pm_.c:60
-msgid "URL"
-msgstr ""
-
-#: ../../proxy.pm_.c:40 ../../proxy.pm_.c:61
-#, fuzzy
-msgid "port"
-msgstr "Port"
-
-#: ../../proxy.pm_.c:44
-#, fuzzy
-msgid "Url should begin with 'http:'"
-msgstr "El proxy ha de ser http://..."
-
-#: ../../proxy.pm_.c:48 ../../proxy.pm_.c:69
-#, fuzzy
-msgid "The port part should be numeric"
-msgstr "El nśmero de port ha de ser numčric"
-
-#: ../../proxy.pm_.c:59
-msgid ""
-"Please fill in the ftp proxy informations\n"
-"Leave it blank if you don't want an ftp proxy"
-msgstr ""
-
-#: ../../proxy.pm_.c:65
-#, fuzzy
-msgid "Url should begin with 'ftp:'"
-msgstr "El proxy ha de ser ftp://..."
-
-#: ../../proxy.pm_.c:79
-msgid ""
-"Please enter proxy login and password, if any.\n"
-"Leave it blank if you don't want login/passwd"
-msgstr ""
-
-#: ../../proxy.pm_.c:80
-#, fuzzy
-msgid "login"
-msgstr "Entrada automątica"
-
-#: ../../proxy.pm_.c:82
-#, fuzzy
-msgid "password"
-msgstr "Contrasenya"
-
-#: ../../proxy.pm_.c:84
-#, fuzzy
-msgid "re-type password"
-msgstr "Sense contrasenya"
-
-#: ../../proxy.pm_.c:88
-#, fuzzy
-msgid "The passwords don't match. Try again!"
-msgstr "Les contrasenyes no coincideixen"
-
-#: ../../raid.pm_.c:35
-#, c-format
-msgid "Can't add a partition to _formatted_ RAID md%d"
-msgstr "No es pot afegir una partició a un RAID _formatat_ md%d"
-
-#: ../../raid.pm_.c:111
-#, c-format
-msgid "Can't write file %s"
-msgstr "No es pot escriure al fitxer %s"
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed"
-msgstr "l'mkraid ha fallit"
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed (maybe raidtools are missing?)"
-msgstr "l'mkraid ha fallit (potser manquen eines del RAID?)"
-
-#: ../../raid.pm_.c:152
-#, c-format
-msgid "Not enough partitions for RAID level %d\n"
-msgstr "No hi ha prou particions per al nivell RAID %d\n"
-
-#: ../../services.pm_.c:14
-msgid "Launch the ALSA (Advanced Linux Sound Architecture) sound system"
-msgstr ""
-
-#: ../../services.pm_.c:15
-msgid "Anacron a periodic command scheduler."
-msgstr "Anacron, un programador d'ordres periņdiques."
-
-#: ../../services.pm_.c:16
-msgid ""
-"apmd is used for monitoring batery status and logging it via syslog.\n"
-"It can also be used for shutting down the machine when the battery is low."
-msgstr ""
-"L'apmd s'utilitza per monitoritzar l'estat de la bateria i registrar-lo "
-"mitjanēant el registre del sistema.\n"
-"També es pot utilitzar per apagar l'ordinador quan queda poca bateria."
-
-#: ../../services.pm_.c:18
-msgid ""
-"Runs commands scheduled by the at command at the time specified when\n"
-"at was run, and runs batch commands when the load average is low enough."
-msgstr ""
-"Executa les ordres programades per l'ordre 'at' a l'hora que es va\n"
-"especificar en executar 'at', i executa les ordres 'batch' quan la\n"
-"mitjana de cąrrega és prou baixa."
-
-#: ../../services.pm_.c:20
-msgid ""
-"cron is a standard UNIX program that runs user-specified programs\n"
-"at periodic scheduled times. vixie cron adds a number of features to the "
-"basic\n"
-"UNIX cron, including better security and more powerful configuration options."
-msgstr ""
-"El cron és un programa UNIX estąndard que executa programes determinats\n"
-"per l'usuari en hores programades. El vixie cron afegeix un cert nombre de\n"
-"caracterķstiques al cron bąsic, incloent seguretat millorada i opcions\n"
-"de configuració més potents."
-
-#: ../../services.pm_.c:23
-msgid ""
-"GPM adds mouse support to text-based Linux applications such the\n"
-"Midnight Commander. It also allows mouse-based console cut-and-paste "
-"operations,\n"
-"and includes support for pop-up menus on the console."
-msgstr ""
-"El GPM afegeix suport de ratolķ a aplicacions Linux basades en text, com ara "
-"el Midnight Commander. També permet operacions de tallar i enganxar amb el "
-"ratolķ, i inclou suport de menśs desplegables a la consola."
-
-#: ../../services.pm_.c:26
-msgid ""
-"HardDrake runs a hardware probe, and optionally configures\n"
-"new/changed hardware."
-msgstr ""
-
-#: ../../services.pm_.c:28 ../../standalone/logdrake_.c:412
-msgid ""
-"Apache is a World Wide Web server. It is used to serve HTML files and CGI."
-msgstr ""
-"L'Apache és un servidor de World Wide Web. S'utilitza per servir fitxers\n"
-"HTML i CGI."
-
-#: ../../services.pm_.c:29
-msgid ""
-"The internet superserver daemon (commonly called inetd) starts a\n"
-"variety of other internet services as needed. It is responsible for "
-"starting\n"
-"many services, including telnet, ftp, rsh, and rlogin. Disabling inetd "
-"disables\n"
-"all of the services it is responsible for."
-msgstr ""
-"El procés superservidor d'Internet (conegut normalment com 'inetd') inicia\n"
-"altres serveis d'Internet a mesura que es van necessitant. És el "
-"responsable\n"
-"d'iniciar molts serveis, incloent el telnet, l'ftp, l'rsh i l'rlogin. Si\n"
-"s'inhabilita l'inetd s'inhabiliten tots els serveis de quč és responsable."
-
-#: ../../services.pm_.c:33
-msgid ""
-"Launch packet filtering for Linux kernel 2.2 series, to set\n"
-"up a firewall to protect your machine from network attacks."
-msgstr ""
-
-#: ../../services.pm_.c:35
-msgid ""
-"This package loads the selected keyboard map as set in\n"
-"/etc/sysconfig/keyboard. This can be selected using the kbdconfig utility.\n"
-"You should leave this enabled for most machines."
-msgstr ""
-"Aquest paquet carrega el mapa de teclat seleccionat segons s'ha definit\n"
-"a /etc/sysconfig/keyboard. Aixņ es pot seleccionar mitjanēant la utilitat\n"
-"kbdconfig.\n"
-"Per a la majoria d'ordinadors, s'ha de deixar habilitat."
-
-#: ../../services.pm_.c:38
-msgid ""
-"Automatic regeneration of kernel header in /boot for\n"
-"/usr/include/linux/{autoconf,version}.h"
-msgstr ""
-
-#: ../../services.pm_.c:40
-msgid "Automatic detection and configuration of hardware at boot."
-msgstr ""
-
-#: ../../services.pm_.c:41
-msgid ""
-"Linuxconf will sometimes arrange to perform various tasks\n"
-"at boot-time to maintain the system configuration."
-msgstr ""
-
-#: ../../services.pm_.c:43
-msgid ""
-"lpd is the print daemon required for lpr to work properly. It is\n"
-"basically a server that arbitrates print jobs to printer(s)."
-msgstr ""
-"L'lpd és el procés d'impressió necessari per a que l'lpr funcioni\n"
-"correctament. Bąsicament, es tracta d'un servidor que assigna les\n"
-"tasques d'impressió a la(es) impressora(es)."
-
-#: ../../services.pm_.c:45
-msgid ""
-"Linux Virtual Server, used to build a high-performance and highly\n"
-"available server."
-msgstr ""
-
-#: ../../services.pm_.c:47 ../../standalone/logdrake_.c:413
-#, fuzzy
-msgid ""
-"named (BIND) is a Domain Name Server (DNS) that is used to resolve host "
-"names to IP addresses."
-msgstr ""
-"named (BIND) és un servidor de noms de domini (DNS) que s'utiilitza\n"
-"per convertir noms d'ordinadors centrals en adreces IP."
-
-#: ../../services.pm_.c:48
-msgid ""
-"Mounts and unmounts all Network File System (NFS), SMB (Lan\n"
-"Manager/Windows), and NCP (NetWare) mount points."
-msgstr ""
-"Munta i desmunta tots els punts de muntatge dels sistemes de fitxers\n"
-"de xarxa (NFS), SMB (gestor de xarxes d'ąrea local/Windows) i NCP (NetWare)."
-
-#: ../../services.pm_.c:50
-msgid ""
-"Activates/Deactivates all network interfaces configured to start\n"
-"at boot time."
-msgstr ""
-"Activa/Desactiva totes les interfķcies de xarxa configurades per\n"
-"iniciar-se durant l'arrencada."
-
-#: ../../services.pm_.c:52
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP networks.\n"
-"This service provides NFS server functionality, which is configured via the\n"
-"/etc/exports file."
-msgstr ""
-"L'NFS és un popular protocol de compartició de fitxers en xarxes TCP/IP.\n"
-"Aquest servei proporciona la funcionalitat del servidor NFS, que es\n"
-"configura mitjanēant el fitxer /etc/exports."
-
-#: ../../services.pm_.c:55
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP\n"
-"networks. This service provides NFS file locking functionality."
-msgstr ""
-"L'NFS és un popular protocol de compartició de fitxers en xarxes TCP/IP\n"
-"Aquest servei proporciona la funcionalitat de blocatge del fitxer NFS."
-
-#: ../../services.pm_.c:57
-msgid ""
-"Automatically switch on numlock key locker under console\n"
-"and XFree at boot."
-msgstr ""
-
-#: ../../services.pm_.c:59
-msgid "Support the OKI 4w and compatible winprinters."
-msgstr ""
-
-#: ../../services.pm_.c:60
-msgid ""
-"PCMCIA support is usually to support things like ethernet and\n"
-"modems in laptops. It won't get started unless configured so it is safe to "
-"have\n"
-"it installed on machines that don't need it."
-msgstr ""
-"El suport PCMCIA serveix normalment per suportar coses com ara l'ethernet\n"
-"i els mņdems en portątils. No s'iniciarą tret que es configuri, de manera\n"
-"que no hi ha problema per instal·lar-lo en ordinadors que no el necessiten."
-
-#: ../../services.pm_.c:63
-msgid ""
-"The portmapper manages RPC connections, which are used by\n"
-"protocols such as NFS and NIS. The portmap server must be running on "
-"machines\n"
-"which act as servers for protocols which make use of the RPC mechanism."
-msgstr ""
-"El portmapper gestiona les connexions RPC, que són utilitzades per\n"
-"protocols com ara l'NFS i l'NIS. El servidor portmap s'ha d'estar\n"
-"executant en ordinadors que actuen com a servidors per a protocols que\n"
-"utilitzen el mecanisme RPC."
-
-#: ../../services.pm_.c:66 ../../standalone/logdrake_.c:415
-#, fuzzy
-msgid ""
-"Postfix is a Mail Transport Agent, which is the program that moves mail from "
-"one machine to another."
-msgstr ""
-"El Postfix és un agent de transport de correu, que és el programa que\n"
-"passa el correu d'un ordinador a un altre."
-
-#: ../../services.pm_.c:67
-msgid ""
-"Saves and restores system entropy pool for higher quality random\n"
-"number generation."
-msgstr ""
-"Desa i recupera el generador d'entropia del sistema per a\n"
-"la generació de nombres aleatoris d'una més alta qualitat."
-
-#: ../../services.pm_.c:69
-msgid ""
-"Assign raw devices to block devices (such as hard drive\n"
-"partitions), for the use of applications such as Oracle"
-msgstr ""
-
-#: ../../services.pm_.c:71
-msgid ""
-"The routed daemon allows for automatic IP router table updated via\n"
-"the RIP protocol. While RIP is widely used on small networks, more complex\n"
-"routing protocols are needed for complex networks."
-msgstr ""
-"El procés 'routed' permet que la taula d'encaminadors IP automątics\n"
-"s'actualitzi mitjanēant el protocol RIP. Mentre que el RIP s'utilitza\n"
-"ąmpliament en xarxes petites, les xarxes complexes necessiten protocols\n"
-"d'encaminament més complexs."
-
-#: ../../services.pm_.c:74
-msgid ""
-"The rstat protocol allows users on a network to retrieve\n"
-"performance metrics for any machine on that network."
-msgstr ""
-"El protocol rstat permet que els usuaris d'una xarxa recuperin\n"
-"mčtrics de funcionament de qualsevol ordinador de la mateixa."
-
-#: ../../services.pm_.c:76
-msgid ""
-"The rusers protocol allows users on a network to identify who is\n"
-"logged in on other responding machines."
-msgstr ""
-"El protocol rusers permet que els usuaris d'una xarxa identifiquin\n"
-"qui estą connectat en altres ordinadors de la mateixa."
-
-#: ../../services.pm_.c:78
-msgid ""
-"The rwho protocol lets remote users get a list of all of the users\n"
-"logged into a machine running the rwho daemon (similiar to finger)."
-msgstr ""
-"El protocol rwho permet que els usuaris remots obtinguin una llista\n"
-"de tots els usuaris que estįn connectats a un ordinador que estą\n"
-"executant el procés rwho (similar al finger)."
-
-#: ../../services.pm_.c:80
-#, fuzzy
-msgid "Launch the sound system on your machine"
-msgstr "Executa el sistema X-Window en iniciar"
-
-#: ../../services.pm_.c:81
-msgid ""
-"Syslog is the facility by which many daemons use to log messages\n"
-"to various system log files. It is a good idea to always run syslog."
-msgstr ""
-"El syslog és el sistema que utilitzen molts processos per registrar\n"
-"missatges en diversos fitxers de registre del sistema. És aconsellable\n"
-"executar-lo sempre."
-
-#: ../../services.pm_.c:83
-msgid "Load the drivers for your usb devices."
-msgstr ""
-
-#: ../../services.pm_.c:84
-#, fuzzy
-msgid "Starts the X Font Server (this is mandatory for XFree to run)."
-msgstr "Inicia i atura l'X Font Server en arrencar i apagar l'ordinador."
-
-#: ../../services.pm_.c:110 ../../services.pm_.c:152
-msgid "Choose which services should be automatically started at boot time"
-msgstr ""
-"Escolliu els serveis que s'han d'iniciar automąticament durant l'arrencada"
-
-#: ../../services.pm_.c:122
-#, fuzzy
-msgid "Printing"
-msgstr "Impressora"
-
-#: ../../services.pm_.c:123
-msgid "Internet"
-msgstr "Internet"
-
-#: ../../services.pm_.c:126
-msgid "File sharing"
-msgstr ""
-
-#: ../../services.pm_.c:128 ../../standalone/drakbackup_.c:934
-#, fuzzy
-msgid "System"
-msgstr "Mode de sistema"
-
-#: ../../services.pm_.c:133
-#, fuzzy
-msgid "Remote Administration"
-msgstr "Opcions de la impressora lpd remota"
-
-#: ../../services.pm_.c:141
-#, fuzzy
-msgid "Database Server"
-msgstr "Servidor, base de dades"
-
-#: ../../services.pm_.c:170
-#, c-format
-msgid "Services: %d activated for %d registered"
-msgstr ""
-
-#: ../../services.pm_.c:186
-#, fuzzy
-msgid "Services"
-msgstr "dispositiu"
-
-#: ../../services.pm_.c:198
-msgid "running"
-msgstr "s'estą executant"
-
-#: ../../services.pm_.c:198
-msgid "stopped"
-msgstr "aturat"
-
-#: ../../services.pm_.c:212
-msgid "Services and deamons"
-msgstr "Serveis i dimonis"
-
-#: ../../services.pm_.c:217
-msgid ""
-"No additional information\n"
-"about this service, sorry."
-msgstr ""
-"Malauradament no hi ha més informació\n"
-"sobre aquest servei."
-
-#: ../../services.pm_.c:224
-msgid "On boot"
-msgstr "En arrencar"
-
-#: ../../services.pm_.c:236
-#, fuzzy
-msgid "Start"
-msgstr "Estat:"
-
-#: ../../services.pm_.c:236
-#, fuzzy
-msgid "Stop"
-msgstr "Sector"
-
-#: ../../share/advertising/00-thanks.pl_.c:9
-msgid "Thank you for choosing Mandrake Linux 8.2"
-msgstr ""
-
-#: ../../share/advertising/00-thanks.pl_.c:10
-msgid "Welcome to the Open Source world"
-msgstr ""
-
-#: ../../share/advertising/00-thanks.pl_.c:11
-msgid ""
-"The success of MandrakeSoft is based upon the principle of Free Software. "
-"Your new operating system is the result of collaborative work on the part of "
-"the worldwide Linux Community"
-msgstr ""
-
-#: ../../share/advertising/01-gnu.pl_.c:9
-#, fuzzy
-msgid "Join the Free Software world"
-msgstr "Resta del món"
-
-#: ../../share/advertising/01-gnu.pl_.c:10
-msgid ""
-"Get to know the Open Source community and become a member. Learn, teach, and "
-"help others by joining the many discussion forums that you will find in our "
-"\"Community\" webpages"
-msgstr ""
-
-#: ../../share/advertising/02-internet.pl_.c:9
-#, fuzzy
-msgid "Internet and Messaging"
-msgstr "Accés a Internet"
-
-#: ../../share/advertising/02-internet.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best software to access everything the "
-"Internet has to offer: Surf the web & view animations with Mozilla and "
-"Konqueror, exchange email & organize your personal information with "
-"Evolution and Kmail, and much more"
-msgstr ""
-
-#: ../../share/advertising/03-graphic.pl_.c:9
-#, fuzzy
-msgid "Multimedia and Graphics"
-msgstr "Multimčdia - Grąfics"
-
-#: ../../share/advertising/03-graphic.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 lets you push your multimedia computer to its limits! Use "
-"the latest software to play music and audio files, edit and organize your "
-"images and photos, watch TV and videos, and much more"
-msgstr ""
-
-#: ../../share/advertising/04-develop.pl_.c:9
-msgid "Development"
-msgstr "Desenvolupament"
-
-#: ../../share/advertising/04-develop.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 is the ultimate development platform. Discover the power "
-"of the GNU gcc compiler as well as the best Open Source development "
-"environments"
-msgstr ""
-
-#: ../../share/advertising/05-contcenter.pl_.c:9
-#, fuzzy
-msgid "Mandrake Control Center"
-msgstr "Control Center"
-
-#: ../../share/advertising/05-contcenter.pl_.c:10
-msgid ""
-"The Mandrake Linux 8.2 Control Center is a one-stop location for fully "
-"customizing and configuring your Mandrake system"
-msgstr ""
-
-#: ../../share/advertising/06-user.pl_.c:9
-#, fuzzy
-msgid "User interfaces"
-msgstr "Interfķcie de la xarxa"
-
-#: ../../share/advertising/06-user.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides 11 different graphical desktop environments and "
-"window managers to choose from including GNOME 1.4, KDE 2.2.2, Window Maker "
-"0.8, and the rest"
-msgstr ""
-
-#: ../../share/advertising/07-server.pl_.c:9
-#, fuzzy
-msgid "Server Software"
-msgstr "Ordinador central del servidor SMB"
-
-#: ../../share/advertising/07-server.pl_.c:10
-msgid ""
-"Transform your machine into a powerful server with just a few clicks of the "
-"mouse: Web server, email, firewall, router, file and print server, ..."
-msgstr ""
-
-#: ../../share/advertising/08-games.pl_.c:9
-msgid "Games"
-msgstr "Jocs"
-
-#: ../../share/advertising/08-games.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best Open Source games - arcade, action, "
-"cards, sports, strategy, ..."
-msgstr ""
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:9
-msgid "MandrakeCampus"
-msgstr ""
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:10
-msgid ""
-"Would you like to learn Linux simply, quickly, and for free? MandrakeSoft "
-"provides free Linux training, as well as a way to test your progress, at "
-"MandrakeCampus -- our online training center"
-msgstr ""
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:9
-#, fuzzy
-msgid "MandrakeExpert"
-msgstr "expert"
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:10
-msgid ""
-"Quality support from the Linux Community, and from MandrakeSoft, is just "
-"around the corner. And if you're already a Linux veteran, become an \"Expert"
-"\" and share your knowledge at our support website"
-msgstr ""
-
-#: ../../share/advertising/11-consul.pl_.c:9
-msgid "MandrakeConsulting"
-msgstr ""
-
-#: ../../share/advertising/11-consul.pl_.c:10
-msgid ""
-"For all of your IT projects, our consultants are ready to analyze your "
-"requirements and offer a customized solution. Benefit from MandrakeSoft's "
-"vast experience as a Linux producer to provide a true IT alternative for "
-"your business organization"
-msgstr ""
-
-#: ../../share/advertising/12-MDKstore.pl_.c:9
-#, fuzzy
-msgid "MandrakeStore"
-msgstr "obligatori"
-
-#: ../../share/advertising/12-MDKstore.pl_.c:10
-msgid ""
-"A full range of Linux solutions, as well as special offers on products and "
-"'goodies', are available online at our e-store"
-msgstr ""
-
-#: ../../share/advertising/13-Nvert.pl_.c:9
-msgid ""
-"For more information on MandrakeSoft's Professional Services and commercial "
-"offerings, please see the following web page:"
-msgstr ""
-
-#: ../../share/advertising/13-Nvert.pl_.c:11
-msgid "http://www.mandrakesoft.com/sales/contact"
-msgstr ""
-
-#: ../../standalone.pm_.c:25
-#, fuzzy
-msgid "Installing packages..."
-msgstr "S'estą instal·lant el paquet %s"
-
-#: ../../standalone/diskdrake_.c:85
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I'll try to go on blanking bad partitions"
-msgstr ""
-"No puc llegir la vostra taula de particions, estą massa malmesa per a mi :(\n"
-"Intentaré seguir buidant les particions incorrectes"
-
-#: ../../standalone/drakautoinst_.c:45
-#, fuzzy
-msgid "Error!"
-msgstr "Error"
-
-#: ../../standalone/drakautoinst_.c:46
-#, c-format
-msgid "I can't find needed image file `%s'."
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:48
-#, fuzzy
-msgid "Auto Install Configurator"
-msgstr "Publica la configuració de la instal·lació "
-
-#: ../../standalone/drakautoinst_.c:49
-msgid ""
-"You are about to configure an Auto Install floppy. This feature is somewhat "
-"dangerous and must be used circumspectly.\n"
-"\n"
-"With that feature, you will be able to replay the installation you've "
-"performed on this computer, being interactively prompted for some steps, in "
-"order to change their values.\n"
-"\n"
-"For maximum safety, the partitioning and formatting will never be performed "
-"automatically, whatever you chose during the install of this computer.\n"
-"\n"
-"Do you want to continue?"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:71
-#, fuzzy
-msgid "Automatic Steps Configuration"
-msgstr "Configuració del tipus d'arrencada"
-
-#: ../../standalone/drakautoinst_.c:72
-msgid ""
-"Please choose for each step whether it will replay like your install, or it "
-"will be manual"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:145
-msgid ""
-"\n"
-"Welcome.\n"
-"\n"
-"The parameters of the auto-install are available in the sections on the left"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:243 ../../standalone/drakgw_.c:671
-#: ../../standalone/scannerdrake_.c:106
-msgid "Congratulations!"
-msgstr "Felicitats!"
-
-#: ../../standalone/drakautoinst_.c:244
-msgid ""
-"The floppy has been successfully generated.\n"
-"You may now replay your installation."
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:282
-#, fuzzy
-msgid "Auto Install"
-msgstr "Instal·la"
-
-#: ../../standalone/drakautoinst_.c:352
-#, fuzzy
-msgid "Add an item"
-msgstr "Afegeix un usuari"
-
-#: ../../standalone/drakautoinst_.c:359
-#, fuzzy
-msgid "Remove the last item"
-msgstr "S'estą formatant el fitxer de loopback %s"
-
-#: ../../standalone/drakbackup_.c:448 ../../standalone/drakbackup_.c:451
-#: ../../standalone/drakbackup_.c:455
-msgid ""
-"***********************************************************************\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:449
-msgid ""
-"\n"
-" DrakBackup Report \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:450
-msgid ""
-"\n"
-" DrakBackup Daemon Report\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:453
-msgid ""
-"\n"
-"\n"
-"***********************************************************************\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:454
-msgid ""
-"\n"
-" DrakBackup Report Details\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:476
-msgid "total progess"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:555 ../../standalone/drakbackup_.c:602
-msgid "Backup system files..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:603 ../../standalone/drakbackup_.c:667
-#, fuzzy
-msgid "Hard Disk Backup files..."
-msgstr "Fitxer de cņpia de seguretat incorrecte"
-
-#: ../../standalone/drakbackup_.c:615
-#, fuzzy
-msgid "Backup User files..."
-msgstr "Fitxer de cņpia de seguretat incorrecte"
-
-#: ../../standalone/drakbackup_.c:616
-msgid "Hard Disk Backup Progress..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:666
-#, fuzzy
-msgid "Backup Other files..."
-msgstr "Fitxer de cņpia de seguretat incorrecte"
-
-#: ../../standalone/drakbackup_.c:674
-#, c-format
-msgid ""
-"file list send by FTP : %s\n"
-" "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:677
-msgid ""
-"\n"
-"(!) FTP connexion problem: It was not possible to send your backup files by "
-"FTP.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:687
-msgid "(!) Error during mail sending. \n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:728 ../../standalone/drakbackup_.c:739
-#: ../../standalone/drakbackup_.c:750 ../../standalone/drakfont_.c:787
-#, fuzzy
-msgid "File Selection"
-msgstr "Selecció del grup de paquets"
-
-#: ../../standalone/drakbackup_.c:755
-msgid "Select the files or directories and click on 'Add'"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:790
-msgid ""
-"\n"
-"Please check all options that you need.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:791
-msgid ""
-"These options can backup and restore all files in your /etc directory.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:792
-msgid "Backup your System files. ( /etc directory )"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:793
-msgid "Use incremental backup (do not replace old backups)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:794
-msgid "Do not include critical files (passwd, group, fstab)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:795
-msgid ""
-"With this option you will be able to restore any version\n"
-" of your /etc directory."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:812
-#, fuzzy
-msgid "Please check all users that you want to include in your backup."
-msgstr "Si us plau, escolliu els paquets que voleu instal·lar"
-
-#: ../../standalone/drakbackup_.c:839
-msgid "Do not include the browser cache"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:840 ../../standalone/drakbackup_.c:864
-msgid "Use Incremental Backups (do not replace old backups)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:862 ../../standalone/drakfont_.c:827
-#, fuzzy
-msgid "Remove Selected"
-msgstr "Elimina la cua"
-
-#: ../../standalone/drakbackup_.c:900
-#, fuzzy
-msgid "Windows (FAT32)"
-msgstr "Elimina el Windows(TM)"
-
-#: ../../standalone/drakbackup_.c:939
-#, fuzzy
-msgid "Users"
-msgstr "Nom d'usuari"
-
-#: ../../standalone/drakbackup_.c:964
-msgid "Use FTP connection to backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:967
-#, fuzzy
-msgid "Please enter the host name or IP."
-msgstr "Si us plau, comproveu el ratolķ."
-
-#: ../../standalone/drakbackup_.c:972
-msgid ""
-"Please enter the directory to\n"
-" put the backup on this host."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:977
-#, fuzzy
-msgid "Please enter your login"
-msgstr "Si us plau, torneu-ho a intentar"
-
-#: ../../standalone/drakbackup_.c:982
-#, fuzzy
-msgid "Please enter your password"
-msgstr "Si us plau, torneu-ho a intentar"
-
-#: ../../standalone/drakbackup_.c:988
-#, fuzzy
-msgid "Remember this password"
-msgstr "Sense contrasenya"
-
-#: ../../standalone/drakbackup_.c:1052 ../../standalone/drakbackup_.c:2048
-#, fuzzy
-msgid "FTP Connection"
-msgstr "Connexió LAN"
-
-#: ../../standalone/drakbackup_.c:1059 ../../standalone/drakbackup_.c:2056
-#, fuzzy
-msgid "Secure Connection"
-msgstr "Seleccioneu la connexió de la impressora"
-
-#: ../../standalone/drakbackup_.c:1085 ../../standalone/drakbackup_.c:2889
-msgid "Use CD/DVDROM to backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1088 ../../standalone/drakbackup_.c:2893
-#, fuzzy
-msgid "Please choose your CD space"
-msgstr "Si us plau, selecioneu la disposició del vostre teclat."
-
-#: ../../standalone/drakbackup_.c:1094 ../../standalone/drakbackup_.c:2905
-#, fuzzy
-msgid "Please check if you are using CDRW media"
-msgstr "Si us plau, feu clic a una partició "
-
-#: ../../standalone/drakbackup_.c:1100 ../../standalone/drakbackup_.c:2911
-msgid "Please check if you want to erase your CDRW before"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1106
-#, fuzzy
-msgid ""
-"Please check if you want to include\n"
-" install boot on your CD."
-msgstr "Si us plau, escolliu els paquets que voleu instal·lar"
-
-#: ../../standalone/drakbackup_.c:1112
-msgid ""
-"Please enter your CD Writer device name\n"
-" ex: 0,1,0"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1153
-#, fuzzy
-msgid "Use tape to backup"
-msgstr "Fitxer de cņpia de seguretat incorrecte"
-
-#: ../../standalone/drakbackup_.c:1156
-msgid "Please enter the device name to use for backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1162 ../../standalone/drakbackup_.c:1203
-#: ../../standalone/drakbackup_.c:2013
-msgid ""
-"Please enter the maximum size\n"
-" allowed for Drakbackup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1195 ../../standalone/drakbackup_.c:2005
-#, fuzzy
-msgid "Please enter the directory to save:"
-msgstr "Si us plau, comproveu el ratolķ."
-
-#: ../../standalone/drakbackup_.c:1209 ../../standalone/drakbackup_.c:2019
-#, fuzzy
-msgid "Use quota for backup files."
-msgstr "Fitxer de cņpia de seguretat incorrecte"
-
-#: ../../standalone/drakbackup_.c:1267
-#, fuzzy
-msgid "Network"
-msgstr "Xarxa:"
-
-#: ../../standalone/drakbackup_.c:1272
-msgid "CDROM / DVDROM"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1277
-msgid "HardDrive / NFS"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1297 ../../standalone/drakbackup_.c:1301
-#: ../../standalone/drakbackup_.c:1305
-msgid "hourly"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1298 ../../standalone/drakbackup_.c:1302
-#: ../../standalone/drakbackup_.c:1305
-msgid "daily"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1299 ../../standalone/drakbackup_.c:1303
-#: ../../standalone/drakbackup_.c:1305
-msgid "weekly"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1300 ../../standalone/drakbackup_.c:1304
-#: ../../standalone/drakbackup_.c:1305
-msgid "monthly"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1312
-#, fuzzy
-msgid "Use daemon"
-msgstr "Nom d'usuari"
-
-#: ../../standalone/drakbackup_.c:1317
-#, fuzzy
-msgid ""
-"Please choose the time \n"
-"interval between each backup"
-msgstr "Si us plau, escolliu els paquets que voleu instal·lar"
-
-#: ../../standalone/drakbackup_.c:1323
-#, fuzzy
-msgid ""
-"Please choose the\n"
-"media for backup."
-msgstr "Si us plau, trieu un idioma per utilitzar."
-
-#: ../../standalone/drakbackup_.c:1327
-#, fuzzy
-msgid "Use Hard Drive with daemon"
-msgstr "Voleu utilitzar l'optimització del disc dur?"
-
-#: ../../standalone/drakbackup_.c:1329
-#, fuzzy
-msgid "Use FTP with daemon"
-msgstr "Voleu utilitzar l'optimització del disc dur?"
-
-#: ../../standalone/drakbackup_.c:1333
-msgid "Please be sure that the cron daemon is included in your services."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1369
-msgid "Send mail report after each backup to :"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1411
-#, fuzzy
-msgid "What"
-msgstr "Espera"
-
-#: ../../standalone/drakbackup_.c:1416
-#, fuzzy
-msgid "Where"
-msgstr "De bola"
-
-#: ../../standalone/drakbackup_.c:1421
-#, fuzzy
-msgid "When"
-msgstr "De bola"
-
-#: ../../standalone/drakbackup_.c:1426
-#, fuzzy
-msgid "More Options"
-msgstr "Opcions del mņdul:"
-
-#: ../../standalone/drakbackup_.c:1445 ../../standalone/drakbackup_.c:2801
-#, fuzzy
-msgid "Drakbackup Configuration"
-msgstr "Configuració de xarxa"
-
-#: ../../standalone/drakbackup_.c:1463
-#, fuzzy
-msgid "Please choose where you want to backup"
-msgstr "Si us plau, escolliu els paquets que voleu instal·lar"
-
-#: ../../standalone/drakbackup_.c:1465
-msgid "on Hard Drive"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1476
-#, fuzzy
-msgid "across Network"
-msgstr "Xarxa:"
-
-#: ../../standalone/drakbackup_.c:1540
-#, fuzzy
-msgid "Please choose what you want to backup"
-msgstr "Si us plau, escolliu els paquets que voleu instal·lar"
-
-#: ../../standalone/drakbackup_.c:1541
-#, fuzzy
-msgid "Backup system"
-msgstr "Sistemes de fitxers"
-
-#: ../../standalone/drakbackup_.c:1542
-msgid "Backup Users"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1545
-msgid "Select user manually"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1627
-msgid ""
-"\n"
-"Backup Sources: \n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1628
-msgid ""
-"\n"
-"- System Files:\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1630
-msgid ""
-"\n"
-"- User Files:\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1632
-msgid ""
-"\n"
-"- Other Files:\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1634
-#, c-format
-msgid ""
-"\n"
-"- Save on Hard drive on path : %s\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1635
-#, c-format
-msgid ""
-"\n"
-"- Save on FTP on host : %s\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1636
-#, c-format
-msgid ""
-"\t\t user name: %s\n"
-"\t\t on path: %s \n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1637
-#, fuzzy
-msgid ""
-"\n"
-"- Options:\n"
-msgstr "Opcions"
-
-#: ../../standalone/drakbackup_.c:1638
-msgid "\tDo not include System Files\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1639
-msgid "\tBackups use tar and bzip2\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1640
-msgid "\tBackups use tar and gzip\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1641
-#, c-format
-msgid ""
-"\n"
-"- Daemon (%s) include :\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1642
-msgid "\t-Hard drive.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1643
-msgid "\t-CDROM.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1644
-msgid "\t-Network by FTP.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1645
-msgid "\t-Network by SSH.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1647
-msgid "No configuration, please click Wizard or Advanced.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1652
-msgid ""
-"List of data to restore:\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1753
-msgid ""
-"List of data corrupted:\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1755
-#, fuzzy
-msgid "Please uncheck or remove it on next time."
-msgstr ""
-"Si us plau, seleccioneu el port sčrie al qual teniu connectat el mņdem."
-
-#: ../../standalone/drakbackup_.c:1765
-msgid "Backup files are corrupted"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1786
-msgid " All your selectionned data have been "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1787
-#, c-format
-msgid " Successfuly Restored on %s "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1886
-#, fuzzy
-msgid " Restore Configuration "
-msgstr "Configuració de xarxa"
-
-#: ../../standalone/drakbackup_.c:1904
-msgid "OK to restore the other files."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1922
-msgid "User list to restore (only the most recent date per user is important)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1972
-#, fuzzy
-msgid "Backup the system files before:"
-msgstr "Fitxer de cņpia de seguretat incorrecte"
-
-#: ../../standalone/drakbackup_.c:1974
-#, fuzzy
-msgid "please choose the date to restore"
-msgstr "Si us plau, seleccioneu el vostre tipus de ratolķ."
-
-#: ../../standalone/drakbackup_.c:2002
-#, fuzzy
-msgid "Use Hard Disk to backup"
-msgstr "Fitxer de cņpia de seguretat incorrecte"
-
-#: ../../standalone/drakbackup_.c:2083
-#, fuzzy
-msgid "Restore from Hard Disk."
-msgstr "Restaura des del disquet"
-
-#: ../../standalone/drakbackup_.c:2085
-msgid "Please enter the directory where backups are stored"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2143
-#, fuzzy
-msgid "Select another media to restore from"
-msgstr "Si us plau, seleccioneu el vostre tipus de ratolķ."
-
-#: ../../standalone/drakbackup_.c:2145
-#, fuzzy
-msgid "Other Media"
-msgstr "Altres"
-
-#: ../../standalone/drakbackup_.c:2151
-#, fuzzy
-msgid "Restore system"
-msgstr "Instal·la el sistema"
-
-#: ../../standalone/drakbackup_.c:2152
-#, fuzzy
-msgid "Restore Users"
-msgstr "Restaura des del fitxer"
-
-#: ../../standalone/drakbackup_.c:2153
-#, fuzzy
-msgid "Restore Other"
-msgstr "Restaura des del fitxer"
-
-#: ../../standalone/drakbackup_.c:2155
-msgid "select path to restore (instead of / )"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2159
-msgid "Do new backup before restore (only for incremental backups.)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2160
-msgid "Remove user directories before restore."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2217
-msgid "Restore all backups"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2225
-#, fuzzy
-msgid "Custom Restore"
-msgstr "Personalitzada"
-
-#: ../../standalone/drakbackup_.c:2266 ../../standalone/drakbackup_.c:2291
-#: ../../standalone/drakbackup_.c:2312 ../../standalone/drakbackup_.c:2333
-#: ../../standalone/drakbackup_.c:2351 ../../standalone/drakbackup_.c:2383
-#: ../../standalone/drakbackup_.c:2399 ../../standalone/drakbackup_.c:2419
-#: ../../standalone/drakbackup_.c:2438 ../../standalone/drakbackup_.c:2460
-#: ../../standalone/drakfont_.c:575
-#, fuzzy
-msgid "Help"
-msgstr "/_Ajuda"
-
-#: ../../standalone/drakbackup_.c:2269 ../../standalone/drakbackup_.c:2296
-#: ../../standalone/drakbackup_.c:2315 ../../standalone/drakbackup_.c:2336
-#: ../../standalone/drakbackup_.c:2354 ../../standalone/drakbackup_.c:2402
-#: ../../standalone/drakbackup_.c:2422 ../../standalone/drakbackup_.c:2441
-#, fuzzy
-msgid "Previous"
-msgstr "<- Anterior"
-
-#: ../../standalone/drakbackup_.c:2271 ../../standalone/drakbackup_.c:2338
-#: ../../standalone/logdrake_.c:224
-#, fuzzy
-msgid "Save"
-msgstr "Estat:"
-
-#: ../../standalone/drakbackup_.c:2317
-#, fuzzy
-msgid "Build Backup"
-msgstr "Fitxer de cņpia de seguretat incorrecte"
-
-#: ../../standalone/drakbackup_.c:2356 ../../standalone/drakbackup_.c:3033
-#, fuzzy
-msgid "Restore"
-msgstr "Restaura des del fitxer"
-
-#: ../../standalone/drakbackup_.c:2404 ../../standalone/drakbackup_.c:2424
-#: ../../standalone/drakbackup_.c:2445
-#, fuzzy
-msgid "Next"
-msgstr "Text"
-
-#: ../../standalone/drakbackup_.c:2478
-msgid ""
-"Please Build backup before to restore it...\n"
-" or verify that your path to save is correct."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2499
-msgid ""
-"Error durind sendmail\n"
-" your report mail was not sent\n"
-" Please configure sendmail"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2522
-#, fuzzy
-msgid "Package List to Install"
-msgstr "Paquets a instal·lar"
-
-#: ../../standalone/drakbackup_.c:2550
-msgid ""
-"Error durind sending file via FTP.\n"
-" Please correct your FTP configuration."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2573
-#, fuzzy
-msgid "Please select data to restore..."
-msgstr "Si us plau, trieu un idioma per utilitzar."
-
-#: ../../standalone/drakbackup_.c:2594
-#, fuzzy
-msgid "Please select media for backup..."
-msgstr "Si us plau, trieu un idioma per utilitzar."
-
-#: ../../standalone/drakbackup_.c:2616
-#, fuzzy
-msgid "Please select data to backup..."
-msgstr "Si us plau, trieu un idioma per utilitzar."
-
-#: ../../standalone/drakbackup_.c:2638
-msgid ""
-"No configuration file found \n"
-"please click Wizard or Advanced."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2659
-msgid "Under Devel ... please wait."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2739
-#, fuzzy
-msgid "Backup system files"
-msgstr "Fitxer de cņpia de seguretat incorrecte"
-
-#: ../../standalone/drakbackup_.c:2741
-#, fuzzy
-msgid "Backup user files"
-msgstr "Fitxer de cņpia de seguretat incorrecte"
-
-#: ../../standalone/drakbackup_.c:2743
-#, fuzzy
-msgid "Backup other files"
-msgstr "Fitxer de cņpia de seguretat incorrecte"
-
-#: ../../standalone/drakbackup_.c:2745 ../../standalone/drakbackup_.c:2776
-msgid "Total Progress"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2767
-msgid "files sending by FTP"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2771
-#, fuzzy
-msgid "Sending files..."
-msgstr "Desa al fitxer"
-
-#: ../../standalone/drakbackup_.c:2841
-msgid "Data list to include on CDROM."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2899
-#, fuzzy
-msgid "Please enter the cd writer speed"
-msgstr "Si us plau, comproveu el ratolķ."
-
-#: ../../standalone/drakbackup_.c:2917
-msgid "Please enter your CD Writer device name (ex: 0,1,0)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2923
-#, fuzzy
-msgid "Please check if you want to include install boot on your CD."
-msgstr "Si us plau, escolliu els paquets que voleu instal·lar"
-
-#: ../../standalone/drakbackup_.c:2989
-#, fuzzy
-msgid "Backup Now from configuration file"
-msgstr "Configuració de xarxa"
-
-#: ../../standalone/drakbackup_.c:2999
-#, fuzzy
-msgid "View Backup Configuration."
-msgstr "Configuració de xarxa"
-
-#: ../../standalone/drakbackup_.c:3020
-#, fuzzy
-msgid "Wizard Configuration"
-msgstr "Configuració de la LAN"
-
-#: ../../standalone/drakbackup_.c:3024
-#, fuzzy
-msgid "Advanced Configuration"
-msgstr "Configuració de la LAN"
-
-#: ../../standalone/drakbackup_.c:3028
-#, fuzzy
-msgid "Backup Now"
-msgstr "Sistemes de fitxers"
-
-#: ../../standalone/drakbackup_.c:3053
-msgid "Drakbackup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3104
-msgid ""
-"options description:\n"
-"\n"
-" In this step Drakbackup allow you to change:\n"
-"\n"
-" - The compression mode:\n"
-" \n"
-" If you check bzip2 compression, you will compress\n"
-" your data better than gzip (about 2-10 %).\n"
-" This option is not checked by default because\n"
-" this compression mode needs more time ( about 1000% more).\n"
-" \n"
-" - The update mode:\n"
-"\n"
-" This option will update your backup, but this\n"
-" option is not really useful because you need to\n"
-" decompress your backup before you can update it.\n"
-" \n"
-" - the .backupignore mode:\n"
-"\n"
-" Like with cvs, Drakbackup will ignore all references\n"
-" included in .backupignore files in each directories.\n"
-" ex: \n"
-" /*> cat .backupignore*/\n"
-" *.o\n"
-" *~\n"
-" ...\n"
-" \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3134
-msgid ""
-"\n"
-" Some errors during sendmail are caused by \n"
-" a bad configuration of postfix. To solve it you have to\n"
-" set myhostname or mydomain in /etc/postfix/main.cf\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3142
-msgid ""
-"options description:\n"
-"\n"
-" - Backup system files:\n"
-" \n"
-"\tThis option allows you to backup your /etc directory,\n"
-"\twhich contains all configuration files. Please be\n"
-"\tcareful during the restore step to not overwrite:\n"
-"\t\t/etc/passwd \n"
-"\t\t/etc/group \n"
-"\t\t/etc/fstab\n"
-"\n"
-" - Backup User files: \n"
-"\n"
-"\tThis option allows you select all users that you want \n"
-"\tto backup.\n"
-"\tTo preserve disk space, it is recommended that you \n"
-"\tdo not include web browser's cache.\n"
-"\n"
-" - Backup Other files: \n"
-"\n"
-"\tThis option allows you to add more data to save.\n"
-"\tWith the other backup it's not possible at the \n"
-"\tmoment to select select incremental backup.\t\t\n"
-" \n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerful \n"
-"\toption for backup. This option allows you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed afterward.\n"
-"\tThen you will be able, during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this option all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3181
-msgid ""
-"restore description:\n"
-" \n"
-"Only the most recent date will be used ,because with incremental \n"
-"backups it is necesarry to restore one by one each older backups.\n"
-"\n"
-"So if you don't like to restore an user please unselect all his\n"
-"check box.\n"
-"\n"
-"Otherwise, you are able to select only one of this\n"
-"\n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerfull \n"
-"\toption to use backup, this option allow you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed after.\n"
-"\tSo you will be able during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this options all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3207 ../../standalone/drakbackup_.c:3282
-msgid ""
-" Copyright (C) 2001 MandrakeSoft by DUPONT Sebastien <dupont_s\\@epita.fr>"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3209 ../../standalone/drakbackup_.c:3284
-msgid ""
-" This program is free software; you can redistribute it and/or modify\n"
-" it under the terms of the GNU General Public License as published by\n"
-" the Free Software Foundation; either version 2, or (at your option)\n"
-" any later version.\n"
-"\n"
-" This program is distributed in the hope that it will be useful,\n"
-" but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-" GNU General Public License for more details.\n"
-"\n"
-" You should have received a copy of the GNU General Public License\n"
-" along with this program; if not, write to the Free Software\n"
-" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3223
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select: \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, DrakBackup will remove \n"
-" your original directory and verify that all \n"
-" backup files are not corrupted. It is recommended \n"
-" you do a last backup before restoring.\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3261
-msgid ""
-"options description:\n"
-"\n"
-"Please be careful when you are using ftp backup, because only \n"
-"backups that are already built are sent to the server.\n"
-"So at the moment, you need to build the backup on your hard \n"
-"drive before sending it to the server.\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3270
-msgid ""
-"\n"
-"Restore Backup Problems:\n"
-"\n"
-"During the restore step, Drakbackup will verify all your\n"
-"backup files before restoring them.\n"
-"Before the restore, Drakbackup will remove \n"
-"your original directory, and you will loose all your \n"
-"data. It is important to be careful and not modify the \n"
-"backup data files by hand.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3298
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, Drakbackup will remove\n"
-" your original directory and verify that all\n"
-" backup files are not corrupted. It is recommended\n"
-" you do a last backup before restoring.\n"
-" \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakboot_.c:58
-#, c-format
-msgid "Installation of %s failed. The following error occured:"
-msgstr "Ha fallat la instal·lació del %s. S'ha produļt l'error següent:"
-
-#: ../../standalone/drakfont_.c:229
-msgid "Search installed fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:231
-msgid "Unselect fonts installed"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:252
-msgid "parse all fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:253
-#, fuzzy
-msgid "no fonts found"
-msgstr "no s'ha trobat %s"
-
-#: ../../standalone/drakfont_.c:261 ../../standalone/drakfont_.c:303
-#: ../../standalone/drakfont_.c:352 ../../standalone/drakfont_.c:410
-#: ../../standalone/drakfont_.c:417 ../../standalone/drakfont_.c:443
-#: ../../standalone/drakfont_.c:455 ../../standalone/drakfont_.c:468
-#, fuzzy
-msgid "done"
-msgstr "Fet"
-
-#: ../../standalone/drakfont_.c:265
-msgid "could not find any font in your mounted partitions"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:301
-msgid "Reselect correct fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:304
-msgid "could not find any font.\n"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:327
-msgid "Search fonts in installed list"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:350
-#, fuzzy
-msgid "Fonts copy"
-msgstr "Formata el disquet"
-
-#: ../../standalone/drakfont_.c:353
-#, fuzzy
-msgid "True Type fonts installation"
-msgstr "S'estą preparant la instal·lació"
-
-#: ../../standalone/drakfont_.c:357
-msgid "please wait during ttmkfdir..."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:359
-msgid "True Type install done"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:366 ../../standalone/drakfont_.c:382
-msgid "Fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:370 ../../standalone/drakfont_.c:386
-#: ../../standalone/drakfont_.c:406
-msgid "type1inst building"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:375 ../../standalone/drakfont_.c:390
-msgid "Ghostscript referencing"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:397
-msgid "ttf fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:401
-msgid "pfm fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:411
-msgid "Suppress temporary Files"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:414
-#, fuzzy
-msgid "Restart XFS"
-msgstr "limita"
-
-#: ../../standalone/drakfont_.c:453 ../../standalone/drakfont_.c:463
-msgid "Suppress Fonts Files"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:465
-#, fuzzy
-msgid "xfs restart"
-msgstr "limita"
-
-#: ../../standalone/drakfont_.c:472 ../../standalone/drakfont_.c:760
-msgid ""
-"Before installing any fonts, be sure that you have the right to use and "
-"install them on your system.\n"
-"\n"
-"-You can install the fonts using the normal way. In rare cases, bogus fonts "
-"may hang up your X Server."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:547
-#, fuzzy
-msgid "Fonts Importation"
-msgstr "Formata les particions"
-
-#: ../../standalone/drakfont_.c:562
-msgid "Get Windows Fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:564
-#, fuzzy
-msgid "Uninstall Fonts"
-msgstr "S'estan desinstal·lant els RPM"
-
-#: ../../standalone/drakfont_.c:568
-#, fuzzy
-msgid "Advanced Options"
-msgstr "Configuració de la LAN"
-
-#: ../../standalone/drakfont_.c:570
-#, fuzzy
-msgid "Font List"
-msgstr "Punt de muntatge"
-
-#: ../../standalone/drakfont_.c:739
-#, fuzzy
-msgid "Choose the applications that will support the fonts :"
-msgstr "Escolliu les particions que voleu formatar"
-
-#: ../../standalone/drakfont_.c:743
-msgid "Ghostscript"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:747
-#, fuzzy
-msgid "StarOffice"
-msgstr "Oficina"
-
-#: ../../standalone/drakfont_.c:751
-#, fuzzy
-msgid "Abiword"
-msgstr "Interromp"
-
-#: ../../standalone/drakfont_.c:755
-#, fuzzy
-msgid "Generic Printers"
-msgstr "Impressora"
-
-#: ../../standalone/drakfont_.c:792
-msgid "Select the font file or directory and click on 'Add'"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:828
-#, fuzzy
-msgid "Install List"
-msgstr "Instal·la el sistema"
-
-#: ../../standalone/drakfont_.c:858
-msgid "click here if you are sure."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:860
-msgid "here if no."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:897
-msgid "Unselected All"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:899
-#, fuzzy
-msgid "Selected All"
-msgstr "Seleccioneu el fitxer"
-
-#: ../../standalone/drakfont_.c:901
-#, fuzzy
-msgid "Remove List"
-msgstr "Impressora remota"
-
-#: ../../standalone/drakfont_.c:919 ../../standalone/drakfont_.c:939
-#, fuzzy
-msgid "Initials tests"
-msgstr "Missatge d'inicialització"
-
-#: ../../standalone/drakfont_.c:920
-#, fuzzy
-msgid "Copy fonts on your system"
-msgstr "No teniu cap adaptador de xarxa al sistema!"
-
-#: ../../standalone/drakfont_.c:921
-msgid "Install & convert Fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:922
-#, fuzzy
-msgid "Post Install"
-msgstr "Instal·la"
-
-#: ../../standalone/drakfont_.c:940
-#, fuzzy
-msgid "Remove fonts on your system"
-msgstr "No teniu cap adaptador de xarxa al sistema!"
-
-#: ../../standalone/drakfont_.c:941
-#, fuzzy
-msgid "Post Uninstall"
-msgstr "Surt de la instal·lació"
-
-#: ../../standalone/drakgw_.c:43 ../../standalone/drakgw_.c:200
-msgid "Internet Connection Sharing"
-msgstr "Connexió a Internet compartida"
-
-#: ../../standalone/drakgw_.c:138
-msgid "Internet Connection Sharing currently enabled"
-msgstr "La connexió a Internet compartida estą habilitada"
-
-#: ../../standalone/drakgw_.c:139
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently enabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-"La configuració de la connexió compartida a Internet ja s'ha dut a terme.\n"
-"Ara estą habilitada.\n"
-"\n"
-"Quč voleu fer?"
-
-#: ../../standalone/drakgw_.c:143
-msgid "disable"
-msgstr "inhabilita"
-
-#: ../../standalone/drakgw_.c:143 ../../standalone/drakgw_.c:168
-msgid "dismiss"
-msgstr "deixa-ho córrer"
-
-#: ../../standalone/drakgw_.c:143 ../../standalone/drakgw_.c:168
-msgid "reconfigure"
-msgstr "torna a configurar"
-
-#: ../../standalone/drakgw_.c:146
-msgid "Disabling servers..."
-msgstr "S'estan inhabilitant els servidors..."
-
-#: ../../standalone/drakgw_.c:154
-msgid "Internet connection sharing is now disabled."
-msgstr "Ara, la compartició de la connexió a Internet estą inhabilitada."
-
-#: ../../standalone/drakgw_.c:163
-msgid "Internet Connection Sharing currently disabled"
-msgstr "La connexió a Internet compartida estą inhabilitada"
-
-#: ../../standalone/drakgw_.c:164
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently disabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-"La configuració de la connexió compartida a Internet ja s'ha dut a terme.\n"
-"Ara estą inhabilitada.\n"
-"\n"
-"Quč voleu fer?"
-
-#: ../../standalone/drakgw_.c:168
-msgid "enable"
-msgstr "habilita"
-
-#: ../../standalone/drakgw_.c:175
-msgid "Enabling servers..."
-msgstr "S'estan habilitant els servidors..."
-
-#: ../../standalone/drakgw_.c:180
-msgid "Internet connection sharing is now enabled."
-msgstr "Ara, la connexió compartida a Internet estą habilitada."
-
-#: ../../standalone/drakgw_.c:201
-msgid ""
-"You are about to configure your computer to share its Internet connection.\n"
-"With that feature, other computers on your local network will be able to use "
-"this computer's Internet connection.\n"
-"\n"
-"Note: you need a dedicated Network Adapter to set up a Local Area Network "
-"(LAN)."
-msgstr ""
-"Ara configurareu l'ordinador per tal que comparteixi la connexió a "
-"Internet.\n"
-"Amb aquesta caracterķstica, altres ordinadors de la vostra xarxa local\n"
-"podran utilitzar la connexió a Internet d'aquest ordinador.\n"
-"\n"
-"Nota: per configurar una xarxa d'ąrea local (LAN), us cal un adaptador de "
-"xarxa dedicat."
-
-#: ../../standalone/drakgw_.c:227
-#, c-format
-msgid "Interface %s (using module %s)"
-msgstr "Interfķcie %s (utilitzant el mņdul %s)"
-
-#: ../../standalone/drakgw_.c:228
-#, c-format
-msgid "Interface %s"
-msgstr "Interfķcie %s"
-
-#: ../../standalone/drakgw_.c:236
-msgid "No network adapter on your system!"
-msgstr "No teniu cap adaptador de xarxa al sistema!"
-
-#: ../../standalone/drakgw_.c:237
-msgid ""
-"No ethernet network adapter has been detected on your system. Please run the "
-"hardware configuration tool."
-msgstr ""
-"No s'ha detectat cap adaptador de xarxa ethernet al sistema. Si us plau, "
-"executeu l'eina de configuració de maquinari."
-
-#: ../../standalone/drakgw_.c:243
-msgid "Network interface"
-msgstr "Interfķcie de la xarxa"
-
-#: ../../standalone/drakgw_.c:244
-#, c-format
-msgid ""
-"There is only one configured network adapter on your system:\n"
-"\n"
-"%s\n"
-"\n"
-"I am about to setup your Local Area Network with that adapter."
-msgstr ""
-"Només teniu un adaptador de xarxa configurat al sistema:\n"
-"\n"
-"%s\n"
-"\n"
-"Ara configuraré la vostra xarxa d'ąrea local amb aquest adaptador."
-
-#: ../../standalone/drakgw_.c:253
-msgid ""
-"Please choose what network adapter will be connected to your Local Area "
-"Network."
-msgstr ""
-"Si us plau, escolliu l'adaptador de xarxa que es connectarą\n"
-"a la vostra xarxa d'ąrea local."
-
-#: ../../standalone/drakgw_.c:271
-#, fuzzy
-msgid "Network interface already configured"
-msgstr "El monitor no estą configurat"
-
-#: ../../standalone/drakgw_.c:272
-#, c-format
-msgid ""
-"Warning, the network adapter (%s) is already configured.\n"
-"\n"
-"Do you want an automatic re-configuration?\n"
-"\n"
-"You can do it manually but you need to know what you're doing."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:277
-#, fuzzy
-msgid "Automatic reconfiguration"
-msgstr "Configuració del tipus d'arrencada"
-
-#: ../../standalone/drakgw_.c:278
-#, fuzzy
-msgid "Show current interface configuration"
-msgstr "Configuració del mņdem"
-
-#: ../../standalone/drakgw_.c:280
-#, c-format
-msgid ""
-"Current configuration of `%s':\n"
-"\n"
-"Network: %s\n"
-"IP address: %s\n"
-"IP attribution: %s\n"
-"Driver: %s"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:292
-msgid ""
-"I can keep your current configuration and assume you already set up a DHCP "
-"server; in that case please verify I correctly read the C-Class Network that "
-"you use for your local network; I will not reconfigure it and I will not "
-"touch your DHCP server configuration.\n"
-"\n"
-"Else, I can reconfigure your interface and (re)configure a DHCP server for "
-"you.\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:297
-msgid "C-Class Local Network"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:298
-#, fuzzy
-msgid "(This) DHCP Server IP"
-msgstr "IP del servidor CUPS"
-
-#: ../../standalone/drakgw_.c:299
-msgid "Re-configure interface and DHCP server"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:306
-msgid "The Local Network did not finish with `.0', bailing out."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:317
-#, c-format
-msgid "Potential LAN address conflict found in current config of %s!\n"
-msgstr ""
-"S'ha trobat un conflicte potencial d'adreēa LAN en la configuració actual de "
-"%s!\n"
-
-#: ../../standalone/drakgw_.c:325 ../../standalone/drakgw_.c:331
-msgid "Firewalling configuration detected!"
-msgstr "S'ha detectat la configuració del sistema de tallafocs!"
-
-#: ../../standalone/drakgw_.c:326 ../../standalone/drakgw_.c:332
-msgid ""
-"Warning! An existing firewalling configuration has been detected. You may "
-"need some manual fix after installation."
-msgstr ""
-"Atenció! S'ha detectat una configuració existent del sistema de tallafocs. "
-"Potser us caldrą fer algun ajustament manual després de la instal·lació."
-
-#: ../../standalone/drakgw_.c:340
-msgid "Configuring..."
-msgstr "S'estą configurant..."
-
-#: ../../standalone/drakgw_.c:341
-msgid "Configuring scripts, installing software, starting servers..."
-msgstr ""
-"S'estan configurant les seqüčncies, instal·lant el programari, iniciant els "
-"servidors..."
-
-#: ../../standalone/drakgw_.c:378
-#, c-format
-msgid "Problems installing package %s"
-msgstr "Hi ha hagut problemes en instal·lar el paquet %s"
-
-#: ../../standalone/drakgw_.c:672
-msgid ""
-"Everything has been configured.\n"
-"You may now share Internet connection with other computers on your Local "
-"Area Network, using automatic network configuration (DHCP)."
-msgstr ""
-"Ja estą tot configurat.\n"
-"Ara podeu compartir la connexió a Internet amb altres ordinadors de la "
-"vostra xarxa d'ąrea local utilitzant la configuració automątica de xarxa "
-"(DHCP)."
-
-#: ../../standalone/drakgw_.c:689
-msgid "The setup has already been done, but it's currently disabled."
-msgstr "La configuració ja s'ha realitzat, perņ ara estą inhabilitada."
-
-#: ../../standalone/drakgw_.c:690
-msgid "The setup has already been done, and it's currently enabled."
-msgstr "La configuració ja s'ha realitzat i ara estą habilitada."
-
-#: ../../standalone/drakgw_.c:691
-msgid "No Internet Connection Sharing has ever been configured."
-msgstr "No s'ha configurat mai cap connexió compartida a Internet."
-
-#: ../../standalone/drakgw_.c:696
-msgid "Internet connection sharing configuration"
-msgstr "Configuració de la compartició de la connexió a Internet"
-
-#: ../../standalone/drakgw_.c:703
-#, c-format
-msgid ""
-"Welcome to the Internet Connection Sharing utility!\n"
-"\n"
-"%s\n"
-"\n"
-"Click on Configure to launch the setup wizard."
-msgstr ""
-"Benvingut a la utilitat de compartició de la connexió a Internet!\n"
-"\n"
-"%s\n"
-"\n"
-"Feu clic a Configura per executar l'auxiliar de configuració."
-
-#: ../../standalone/draknet_.c:80
-#, c-format
-msgid "Network configuration (%d adapters)"
-msgstr "Configuració de xarxa (%d adaptadors)"
-
-#: ../../standalone/draknet_.c:87 ../../standalone/draknet_.c:595
-msgid "Profile: "
-msgstr "Perfil: "
-
-#: ../../standalone/draknet_.c:95
-msgid "Del profile..."
-msgstr "Suprimeix el perfil..."
-
-#: ../../standalone/draknet_.c:101
-msgid "Profile to delete:"
-msgstr "Perfil a suprimir:"
-
-#: ../../standalone/draknet_.c:129
-msgid "New profile..."
-msgstr "Perfil nou..."
-
-#: ../../standalone/draknet_.c:135
-msgid ""
-"Name of the profile to create (the new profile is created as a copy of the "
-"current one) :"
-msgstr ""
-
-#: ../../standalone/draknet_.c:161
-msgid "Hostname: "
-msgstr "Nom de l'ordinador central: "
-
-#: ../../standalone/draknet_.c:168
-msgid "Internet access"
-msgstr "Accés a Internet"
-
-#: ../../standalone/draknet_.c:181
-msgid "Type:"
-msgstr "Tipus:"
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-msgid "Gateway:"
-msgstr "Passarel·la:"
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-msgid "Interface:"
-msgstr "Intefķcie:"
-
-#: ../../standalone/draknet_.c:195
-msgid "Status:"
-msgstr "Estat:"
-
-#: ../../standalone/draknet_.c:202
-msgid "Wait please"
-msgstr ""
-
-#: ../../standalone/draknet_.c:220
-msgid "Configure Internet Access..."
-msgstr "Configura l'accés a Internet..."
-
-#: ../../standalone/draknet_.c:227 ../../standalone/draknet_.c:449
-msgid "LAN configuration"
-msgstr "Configuració de la LAN"
-
-#: ../../standalone/draknet_.c:232
-msgid "Driver"
-msgstr "Programa de control"
-
-#: ../../standalone/draknet_.c:232
-msgid "Interface"
-msgstr "Interfķcie"
-
-#: ../../standalone/draknet_.c:232
-msgid "Protocol"
-msgstr "Protocol"
-
-#: ../../standalone/draknet_.c:232
-#, fuzzy
-msgid "State"
-msgstr "Estat:"
-
-#: ../../standalone/draknet_.c:244
-msgid "Configure Local Area Network..."
-msgstr "Configura la xarxa d'ąrea local..."
-
-#: ../../standalone/draknet_.c:256
-msgid "Click here to launch the wizard ->"
-msgstr ""
-
-#: ../../standalone/draknet_.c:257
-msgid "Wizard..."
-msgstr "Assistent..."
-
-#: ../../standalone/draknet_.c:283
-msgid "Apply"
-msgstr "Aplica"
-
-#: ../../standalone/draknet_.c:302
-msgid "Please Wait... Applying the configuration"
-msgstr "Si us plau, espereu... s'estą aplicant la configuració"
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-msgid "Connected"
-msgstr "Connectat"
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-msgid "Not connected"
-msgstr "Sense connexió"
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Connect..."
-msgstr "Connecta..."
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Disconnect..."
-msgstr "Desconnecta..."
-
-#: ../../standalone/draknet_.c:404
-msgid ""
-"Warning, another Internet connection has been detected, maybe using your "
-"network"
-msgstr ""
-
-#: ../../standalone/draknet_.c:431
-msgid ""
-"You don't have any configured interface.\n"
-"Configure them first by clicking on 'Configure'"
-msgstr ""
-
-#: ../../standalone/draknet_.c:453
-msgid "LAN Configuration"
-msgstr "Configuració de la LAN"
-
-#: ../../standalone/draknet_.c:464
-#, c-format
-msgid "Adapter %s: %s"
-msgstr "Adaptador %s: %s"
-
-#: ../../standalone/draknet_.c:470
-msgid "Boot Protocol"
-msgstr "Protocol d'arrencada"
-
-#: ../../standalone/draknet_.c:471
-msgid "Started on boot"
-msgstr "Iniciat en l'arrencada"
-
-#: ../../standalone/draknet_.c:472
-msgid "DHCP client"
-msgstr "Client DHCP"
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-#, fuzzy
-msgid "activate now"
-msgstr "Actiu"
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-#, fuzzy
-msgid "deactivate now"
-msgstr "Actiu"
-
-#: ../../standalone/draknet_.c:503
-msgid ""
-"This interface has not been configured yet.\n"
-"Launch the configuration wizard in the main window"
-msgstr ""
-
-#: ../../standalone/draknet_.c:560
-msgid ""
-"You don't have any internet connection.\n"
-"Create one first by clicking on 'Configure'"
-msgstr ""
-
-#: ../../standalone/draknet_.c:584
-msgid "Internet connection configuration"
-msgstr "Configuració de la connexió a Internet"
-
-#: ../../standalone/draknet_.c:588
-msgid "Internet Connection Configuration"
-msgstr "Configuració de la connexió a Internet"
-
-#: ../../standalone/draknet_.c:597
-msgid "Connection type: "
-msgstr "Tipus de connexió: "
-
-#: ../../standalone/draknet_.c:603
-msgid "Parameters"
-msgstr "Parąmetres"
-
-#: ../../standalone/draknet_.c:621
-msgid "Gateway"
-msgstr "Passarel·la"
-
-#: ../../standalone/draknet_.c:630
-msgid "Ethernet Card"
-msgstr "Targeta Ethernet"
-
-#: ../../standalone/draknet_.c:631
-msgid "DHCP Client"
-msgstr "Client DHCP"
-
-#: ../../standalone/draksec_.c:31
-msgid "Setting security level"
-msgstr "S'estą establint el nivell de seguretat"
-
-#: ../../standalone/drakxconf_.c:47
-msgid "Control Center"
-msgstr "Control Center"
-
-#: ../../standalone/drakxconf_.c:48
-msgid "Choose the tool you want to use"
-msgstr "Escolliu l'eina que voleu utilitzar "
-
-#: ../../standalone/drakxtv_.c:48
-#, fuzzy
-msgid "Canada (cable)"
-msgstr "Canadenc (Quebec)"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (bcast)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (cable)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (cable-hrc)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:49
-msgid "China (bcast)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:49
-msgid "Japan (bcast)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:49
-msgid "Japan (cable)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "East Europe"
-msgstr "Europa"
-
-#: ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "Ireland"
-msgstr "Islandčs"
-
-#: ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "West Europe"
-msgstr "Europa"
-
-#: ../../standalone/drakxtv_.c:51
-#, fuzzy
-msgid "Australia"
-msgstr "sčrie"
-
-#: ../../standalone/drakxtv_.c:51
-msgid "Newzealand"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:52
-msgid "South Africa"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:53
-msgid "Argentina"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:58
-msgid ""
-"Please,\n"
-"type in your tv norm and country"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:60
-msgid "TV norm :"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:61
-msgid "Area :"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:65
-msgid "Scanning for TV channels in progress ..."
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:72
-msgid "Scanning for TV channels"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:83
-msgid "No TV Card detected!"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:84
-msgid ""
-"No TV Card has been detected on your machine. Please verify that a Linux-"
-"supported Video/TV Card is correctly plugged in.\n"
-"\n"
-"\n"
-"You can visit our hardware database at:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/hardware.php3"
-msgstr ""
-
-#: ../../standalone/keyboarddrake_.c:16
-msgid "usage: keyboarddrake [--expert] [keyboard]\n"
-msgstr "sintaxi: keyboarddrake [--expert] [teclat]\n"
-
-#: ../../standalone/keyboarddrake_.c:29
-msgid "Please, choose your keyboard layout."
-msgstr "Si us plau, selecioneu la disposició del vostre teclat."
-
-#: ../../standalone/keyboarddrake_.c:36
-msgid "Do you want the BackSpace to return Delete in console?"
-msgstr "Voleu que la tecla Enrere efectuļ un Suprimeix en la consola?"
-
-#: ../../standalone/livedrake_.c:24
-msgid "Change Cd-Rom"
-msgstr "Canvieu el CD-ROM"
-
-#: ../../standalone/livedrake_.c:25
-msgid ""
-"Please insert the Installation Cd-Rom in your drive and press Ok when done.\n"
-"If you don't have it, press Cancel to avoid live upgrade."
-msgstr ""
-"Si us plau, inseriu el CD-ROM d'instal·lació a la unitat i després\n"
-"premeu D'acord.\n"
-"Si no el teniu, premeu Cancel·la per evitar la instal·lació en directe."
-
-#: ../../standalone/livedrake_.c:35
-msgid "Unable to start live upgrade !!!\n"
-msgstr "No es pot iniciar l'actualització en directe !!!\n"
-
-#: ../../standalone/localedrake_.c:32
-msgid "The change is done, but to be effective you must logout"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:85 ../../standalone/logdrake_.c:501
-msgid "logdrake"
-msgstr "logdrake"
-
-#: ../../standalone/logdrake_.c:95
-#, fuzzy
-msgid "Show only for the selected day"
-msgstr "Mostr-ho només per a avui"
-
-#: ../../standalone/logdrake_.c:102
-msgid "/File/_New"
-msgstr "/Fitxer/_Nou"
-
-#: ../../standalone/logdrake_.c:102
-msgid "<control>N"
-msgstr "<control>N"
-
-#: ../../standalone/logdrake_.c:103
-msgid "/File/_Open"
-msgstr "/Fitxer/_Obre"
-
-#: ../../standalone/logdrake_.c:103
-msgid "<control>O"
-msgstr "<control>O"
-
-#: ../../standalone/logdrake_.c:104
-msgid "/File/_Save"
-msgstr "/Fitxer/_Desa"
-
-#: ../../standalone/logdrake_.c:104
-msgid "<control>S"
-msgstr "<control>S"
-
-#: ../../standalone/logdrake_.c:105
-msgid "/File/Save _As"
-msgstr "/Fitxer/_Anomena i desa"
-
-#: ../../standalone/logdrake_.c:106
-msgid "/File/-"
-msgstr "/Fitxer/-"
-
-#: ../../standalone/logdrake_.c:108
-msgid "/_Options"
-msgstr "/_Opcions"
-
-#: ../../standalone/logdrake_.c:109
-msgid "/Options/Test"
-msgstr "/Opcions/Prova"
-
-#: ../../standalone/logdrake_.c:110
-msgid "/_Help"
-msgstr "/_Ajuda"
-
-#: ../../standalone/logdrake_.c:111
-msgid "/Help/_About..."
-msgstr "/Ajuda/_Quant a..."
-
-#: ../../standalone/logdrake_.c:118
-msgid "-misc-fixed-medium-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr "-misc-fixed-medium-r-*-*-*-100-*-*-*-*-*-*,*"
-
-#: ../../standalone/logdrake_.c:119
-msgid "-misc-fixed-bold-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr "-misc-fixed-bold-r-*-*-*-100-*-*-*-*-*-*,*"
-
-#: ../../standalone/logdrake_.c:173
-#, fuzzy
-msgid "User"
-msgstr "Nom d'usuari"
-
-#: ../../standalone/logdrake_.c:174
-#, fuzzy
-msgid "Messages"
-msgstr "missatges"
-
-#: ../../standalone/logdrake_.c:175
-#, fuzzy
-msgid "Syslog"
-msgstr "syslog"
-
-#: ../../standalone/logdrake_.c:176
-msgid "Mandrake Tools Explanations"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:179
-msgid "search"
-msgstr "cerca"
-
-#: ../../standalone/logdrake_.c:185
-msgid "A tool to monitor your logs"
-msgstr "Eina per veure els registres"
-
-#: ../../standalone/logdrake_.c:186
-msgid "Settings"
-msgstr "Parąmetres"
-
-#: ../../standalone/logdrake_.c:191
-msgid "matching"
-msgstr "que coincideixin amb"
-
-#: ../../standalone/logdrake_.c:192
-msgid "but not matching"
-msgstr "perņ que no coincideixein amb"
-
-#: ../../standalone/logdrake_.c:196
-msgid "Choose file"
-msgstr "Escolliu el fitxer"
-
-#: ../../standalone/logdrake_.c:201
-msgid "Calendar"
-msgstr "Calendari"
-
-#: ../../standalone/logdrake_.c:211
-msgid "Content of the file"
-msgstr "Contingut del fitxer"
-
-#: ../../standalone/logdrake_.c:215 ../../standalone/logdrake_.c:390
-msgid "Mail/SMS alert"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:268
-#, c-format
-msgid "please wait, parsing file: %s"
-msgstr "si us plau, espereu, s'estą analitzant el fitxer: %s"
-
-#: ../../standalone/logdrake_.c:405
-#, fuzzy
-msgid "Mail/SMS alert configuration"
-msgstr "Configuració de la LAN"
-
-#: ../../standalone/logdrake_.c:406
-msgid ""
-"Welcome to the mail/SMS configuration utility.\n"
-"\n"
-"Here, you'll be able to set up the alert system.\n"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:414
-#, fuzzy
-msgid "proftpd"
-msgstr "Apache i Pro-ftpd"
-
-#: ../../standalone/logdrake_.c:417
-#, fuzzy
-msgid "sshd"
-msgstr "ombra"
-
-#: ../../standalone/logdrake_.c:418
-msgid "webmin"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:419
-#, fuzzy
-msgid "xinetd"
-msgstr "Ext2"
-
-#: ../../standalone/logdrake_.c:422
-#, fuzzy
-msgid "service setting"
-msgstr "interessant"
-
-#: ../../standalone/logdrake_.c:423
-msgid ""
-"You will receive an alert if one of the selected service is no more running"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:433
-#, fuzzy
-msgid "load setting"
-msgstr "s'estą formatant"
-
-#: ../../standalone/logdrake_.c:434
-msgid "You will receive an alert if the load is higher than this value"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:447
-#, fuzzy
-msgid "alert configuration"
-msgstr "Configuració"
-
-#: ../../standalone/logdrake_.c:448
-msgid "Configure the way the system will alert you"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:478
-msgid "Save as.."
-msgstr "Anomena i desa..."
-
-#: ../../standalone/mousedrake_.c:49
-msgid "Please, choose the type of your mouse."
-msgstr "Si us plau, seleccioneu el vostre tipus de ratolķ."
-
-#: ../../standalone/mousedrake_.c:59
-msgid "no serial_usb found\n"
-msgstr "no s'ha trobat cap serial_usb\n"
-
-#: ../../standalone/mousedrake_.c:63
-msgid "Emulate third button?"
-msgstr "Voleu emular el tercer botó?"
-
-#: ../../standalone/scannerdrake_.c:53
-#, c-format
-msgid "%s found on %s, configure it ?"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:60
-#, fuzzy
-msgid "Select a scanner"
-msgstr "Seleccioneu una targeta grąfica"
-
-#: ../../standalone/scannerdrake_.c:80
-#, c-format
-msgid "This %s scanner is unsupported"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:94
-#, c-format
-msgid ""
-"Scannerdrake was not able to detect your %s scanner.\n"
-"Please select the device where your scanner is plugged"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:96
-#, fuzzy
-msgid "choose device"
-msgstr "Dispositiu d'arrencada"
-
-#: ../../standalone/scannerdrake_.c:102
-#, c-format
-msgid ""
-"This %s scanner must be configured by printerdrake.\n"
-"You can launch printerdrake from the Mandrake Control Center in Hardware "
-"section."
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:107
-#, c-format
-msgid ""
-"Your %s scanner has been configured.\n"
-"You may now scan documents using ``XSane'' from Multimedia/Graphics in the "
-"applications menu."
-msgstr ""
-
-#: ../../standalone/tinyfirewall_.c:31
-msgid "Firewalling Configuration"
-msgstr "Configuració del sistema de tallafocs"
-
-#: ../../standalone/tinyfirewall_.c:44
-msgid "Firewalling configuration"
-msgstr "Configuració del sistema de tallafocs"
-
-#: ../../standalone/tinyfirewall_.c:79
-msgid ""
-"Firewalling\n"
-"\n"
-"You already have set up a firewall.\n"
-"Click on Configure to change or remove the firewall"
-msgstr ""
-"Sistema de tallafocs\n"
-"\n"
-"Ja heu configurat un tallafocs.\n"
-"Feu clic a Configura per canviar o eliminar el tallafoc"
-
-#: ../../standalone/tinyfirewall_.c:83
-msgid ""
-"Firewalling\n"
-"\n"
-"Click on Configure to set up a standard firewall"
-msgstr ""
-"Sistema de tallafocs\n"
-"\n"
-"Feu clic a Configura per configurar un tallafocs estąndard"
-
-#: ../../steps.pm_.c:14
-msgid "Choose your language"
-msgstr "Escolliu el vostre idioma"
-
-#: ../../steps.pm_.c:15
-msgid "Select installation class"
-msgstr "Tipus d'instal·lació"
-
-#: ../../steps.pm_.c:16
-msgid "Hard drive detection"
-msgstr "Detecció del disc dur"
-
-#: ../../steps.pm_.c:17
-msgid "Configure mouse"
-msgstr "Configura el ratolķ"
-
-#: ../../steps.pm_.c:18
-msgid "Choose your keyboard"
-msgstr "Escolliu el vostre teclat"
-
-#: ../../steps.pm_.c:19
-msgid "Security"
-msgstr "Seguretat"
-
-#: ../../steps.pm_.c:20
-msgid "Setup filesystems"
-msgstr "Sistemes de fitxers"
-
-#: ../../steps.pm_.c:21
-msgid "Format partitions"
-msgstr "Formata les particions"
-
-#: ../../steps.pm_.c:22
-msgid "Choose packages to install"
-msgstr "Paquets a instal·lar"
-
-#: ../../steps.pm_.c:23
-msgid "Install system"
-msgstr "Instal·la el sistema"
-
-#: ../../steps.pm_.c:25
-msgid "Add a user"
-msgstr "Afegeix un usuari"
-
-#: ../../steps.pm_.c:26
-msgid "Configure networking"
-msgstr "Configura la xarxa"
-
-#: ../../steps.pm_.c:28
-msgid "Configure services"
-msgstr "Configura els serveis"
-
-#: ../../steps.pm_.c:29
-msgid "Install bootloader"
-msgstr "Instal·la el LILO"
-
-#: ../../steps.pm_.c:31
-msgid "Create a bootdisk"
-msgstr "Crea un disc d'arrencada"
-
-#: ../../steps.pm_.c:33
-msgid "Configure X"
-msgstr "Configura l'X"
-
-#: ../../steps.pm_.c:34
-#, fuzzy
-msgid "Install system updates"
-msgstr "Instal·la el sistema"
-
-#: ../../steps.pm_.c:35
-msgid "Exit install"
-msgstr "Surt de la instal·lació"
-
-#: ../../tinyfirewall.pm_.c:9
-msgid ""
-"tinyfirewall configurator\n"
-"\n"
-"This configures a personal firewall for this Mandrake Linux machine.\n"
-"For a powerful dedicated firewall solution, please look to the\n"
-"specialized MandrakeSecurity Firewall distribution."
-msgstr ""
-"Configurador del tinyfirewall\n"
-"\n"
-"Amb aixņ es configura un tallafocs personal per a aquest ordinador Linux "
-"Mandrake.\n"
-"Per a una potent solució de tallafocs dedicada, consulteu si us plau la "
-"distribució especialitzada MandrakeSecurity Firewall."
-
-#: ../../tinyfirewall.pm_.c:14
-msgid ""
-"We'll now ask you questions about which services you'd like to allow\n"
-"the Internet to connect to. Please think carefully about these\n"
-"questions, as your computer's security is important.\n"
-"\n"
-"Please, if you're not currently using one of these services, firewall\n"
-"it off. You can change this configuration anytime you like by\n"
-"re-running this application!"
-msgstr ""
-"Ara us farem preguntes sobre els serveis a quč voleu autoritzar que\n"
-"Internet us connecti. Si us plau, penseu-hi a fons perquč la seguretat\n"
-"del vostre ordinador és important.\n"
-"\n"
-"Si us plau, si un moment donat no esteu utilitzant algun d'aquests serveis,\n"
-"desactiveu-ne el tallafocs. Podeu canviar aquesta configuració sempre que\n"
-"vulgueu tornant a executar aquesta aplicació!"
-
-#: ../../tinyfirewall.pm_.c:21
-msgid ""
-"Are you running a web server on this machine that you need the whole\n"
-"Internet to see? If you are running a webserver that only needs to be\n"
-"accessed by this machine, you can safely answer NO here.\n"
-"\n"
-msgstr ""
-"Esteu executant un servidor de web en aquest ordinador que necessiteu que\n"
-"pugui veure tothom a Internet? Si esteu executant un servidor de web a quč\n"
-"només ha d'accedir aquest ordinador, aquķ podeu respondre tranquil·lament "
-"NO.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:26
-msgid ""
-"Are you running a name server on this machine? If you didn't set one\n"
-"up to give away IP and zone information to the whole Internet, please\n"
-"answer no.\n"
-"\n"
-msgstr ""
-"Esteu executant un servidor de noms en aquest ordinador? Si no n'heu\n"
-"configurat cap per proporcionar la IP i la informació de zona a tothom a\n"
-"Internet, si us plau responeu NO.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:31
-msgid ""
-"Do you want to allow incoming Secure Shell (ssh) connections? This\n"
-"is a telnet-replacement that you might use to login. If you're using\n"
-"telnet now, you should definitely switch to ssh. telnet is not\n"
-"encrypted -- so some attackers can steal your password if you use\n"
-"it. ssh is encrypted and doesn't allow for this eavesdropping."
-msgstr ""
-"Voleu autoritzar les connexions Secure Shell (ssh) d'entrada? Es tracta\n"
-"d'una substitució del Telnet que podeu utilitzar per entrar. Si ara esteu\n"
-"utilitzant el Telnet, passeu-vos a l'ssh sense cap mena de dubte; el\n"
-"Telnet no estą xifrat, de manera que us poden robar la contrasenya si\n"
-"l'utilitzeu, mentre que l'ssh estą xifrat i no permet cap mena d'intercepció."
-
-#: ../../tinyfirewall.pm_.c:36
-msgid ""
-"Do you want to allow incoming telnet connections?\n"
-"This is horribly unsafe, as we explained in the previous screen. We\n"
-"strongly recommend answering No here and using ssh in place of\n"
-"telnet.\n"
-msgstr ""
-"Voleu autoritzar les connexions Telnet d'entrada?\n"
-"Aixņ és tremendament insegur, com hem dit a la pantalla anterior. Us\n"
-"recomanem vivament que respongueu No aquķ i que utilitzeu l'ssh en comptes\n"
-"del Telnet.\n"
-
-#: ../../tinyfirewall.pm_.c:41
-msgid ""
-"Are you running an FTP server here that you need accessible to the\n"
-"Internet? If you are, we strongly recommend that you only use it for\n"
-"Anonymous transfers. Any passwords sent by FTP can be stolen by some\n"
-"attackers, since FTP also uses no encryption for transferring passwords.\n"
-msgstr ""
-"Esteu executant un servidor d'FTP que necessiteu que sigui accessible a\n"
-"Internet? Si és aixķ, us recomanen vivament que només l'utilitzeu per a\n"
-"transferčncies anņnimes, ja que qualsevol contrasenya que s'envia per FTP\n"
-"pot ser robada, atčs que l'FTP no utilitza xifratge per a la transferčncia\n"
-"de contrasenyes.\n"
-
-#: ../../tinyfirewall.pm_.c:46
-msgid ""
-"Are you running a mail server here? If you're sending you \n"
-"messages through pine, mutt or any other text-based mail client,\n"
-"you probably are. Otherwise, you should firewall this off.\n"
-"\n"
-msgstr ""
-"Esteu executant un servidor de correu? Si esteu enviant els missatges\n"
-"a través del pine, el mutt o qualsevol altre client de correu basat en\n"
-"text, probablement és aixķ. En cas contrari, desactiveu-ne el tallafocs.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:51
-msgid ""
-"Are you running a POP or IMAP server here? This would\n"
-"be used to host non-web-based mail accounts for people via \n"
-"this machine.\n"
-"\n"
-msgstr ""
-"Esteu executant un servidor POP o IMAP? Aixņ s'utilitzaria\n"
-"per allotjar comptes de correu dels usuaris, no basats en web,\n"
-"mitjanēant aquest ordinador.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:56
-msgid ""
-"You appear to be running a 2.2 kernel. If your network IP\n"
-"is automatically set by a computer in your home or office \n"
-"(dynamically assigned), we need to allow for this. Is\n"
-"this the case?\n"
-msgstr ""
-"Sembla que esteu utilitzant un nucli 2.2. Si l'ordinador de\n"
-"casa o de l'oficina estableix automąticament la IP de la vostra\n"
-"xarxa (assignació dinąmica), us cal autoritzar aixņ. És aquest el cas?\n"
-
-#: ../../tinyfirewall.pm_.c:61
-msgid ""
-"Is your computer getting time syncronized to another computer?\n"
-"Mostly, this is used by medium-large Unix/Linux organizations\n"
-"to synchronize time for logging and such. If you're not part\n"
-"of a larger office and haven't heard of this, you probably \n"
-"aren't."
-msgstr ""
-"El vostre ordinador estą sincronitzat pel que fa al temps amb un altre?\n"
-"Normalment, aixņ ho utilitzen organitzacions Unix/Linux mitjanes-grans\n"
-"per sincronitzar el temps de les entrades i coses aixķ. Si no sou una part\n"
-"d'una oficina gran i no heu sentit parlar d'aixņ, probablement no us trobeu\n"
-"en aquest cas."
-
-#: ../../tinyfirewall.pm_.c:66
-msgid ""
-"Configuration complete. May we write these changes to disk?\n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-"La configuració estą completa. Podem desar aquests canvis al disc?\n"
-"\n"
-"\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:82
-#, c-format
-msgid "Can't open %s: %s\n"
-msgstr "No es pot obrir %s: %s\n"
-
-#: ../../tinyfirewall.pm_.c:84
-#, c-format
-msgid "Can't open %s for writing: %s\n"
-msgstr "No s'ha pogut obrir %s per escriure-hi: %s\n"
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "No I don't need DHCP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "Yes I need DHCP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "No I don't need NTP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "Yes I need NTP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-msgid "Don't Save"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-#: ../../tinyfirewall.pm_.c:206
-msgid "Save & Quit"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:197 ../../tinyfirewall.pm_.c:201
-#, fuzzy
-msgid "Firewall Configuration Wizard"
-msgstr "Configuració del sistema de tallafocs"
-
-#: ../../tinyfirewall.pm_.c:199
-msgid "No (firewall this off from the internet)"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:200
-msgid "Yes (allow this through the firewall)"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:232
-#, fuzzy
-msgid "Please Wait... Verifying installed packages"
-msgstr "Si us plau, espereu, s'estą preparant la instal·lació"
-
-#: ../../tinyfirewall.pm_.c:238
-#, c-format
-msgid ""
-"Failure installing the needed packages : %s and Bastille.\n"
-" Try to install them manually."
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Web/FTP"
-msgstr "Servidor, Web/FTP"
-
-#: ../../share/compssUsers:999
-msgid "Network Computer (client)"
-msgstr "Ordinador de xarxa (client)"
-
-#: ../../share/compssUsers:999
-msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr "Servidor NFS, Servidor SMB, Servidor intermediari, Servidor SSH"
-
-#: ../../share/compssUsers:999
-msgid "Office"
-msgstr "Oficina"
-
-#: ../../share/compssUsers:999
-msgid "Gnome Workstation"
-msgstr "Estació de treball GNOME"
-
-#: ../../share/compssUsers:999
-msgid "Tools for your Palm Pilot or your Visor"
-msgstr "Eines per al Palm Pilot o per al Visor"
-
-#: ../../share/compssUsers:999
-msgid "Workstation"
-msgstr "Estació de treball"
-
-#: ../../share/compssUsers:999
-msgid "Firewall/Router"
-msgstr "Servidor, Tallafoc/Encaminador"
-
-#: ../../share/compssUsers:999
-msgid "Domain Name and Network Information Server"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-"Programes d'ofimątica: processadors de textos (kword, abiword), gestors de "
-"fulls de cąlcul (kspread, gnumeric), visualitzadors pdf, etc."
-
-#: ../../share/compssUsers:999
-msgid "Audio-related tools: mp3 or midi players, mixers, etc"
-msgstr "Eines d'ąudio: reproductors d'mp3 o midi, mescladors, etc."
-
-#: ../../share/compssUsers:999
-msgid "Books and Howto's on Linux and Free Software"
-msgstr "Llibres i Com es fa... sobre el Linux i el programari lliure"
-
-#: ../../share/compssUsers:999
-msgid "KDE Workstation"
-msgstr "Estació de treball KDE"
-
-#: ../../share/compssUsers:999
-msgid "Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm, Window Maker, Enlightenment, Fvwm, etc"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Video"
-msgstr "Multimčdia - Vķdeo"
-
-#: ../../share/compssUsers:999
-msgid "Set of tools for mail, news, web, file transfer, and chat"
-msgstr ""
-"Conjunt d'eines per al correu, notķcies, web, transferčncia de fitxers i xat"
-
-#: ../../share/compssUsers:999
-msgid "Database"
-msgstr "Servidor, base de dades"
-
-#: ../../share/compssUsers:999
-msgid "PostgreSQL or MySQL database server"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Tools to ease the configuration of your computer"
-msgstr "Eines per facilitar la configuració de l'ordinador"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Sound"
-msgstr "Multimčdia - So"
-
-#: ../../share/compssUsers:999
-msgid "Utilities"
-msgstr "Utilitats"
-
-#: ../../share/compssUsers:999
-msgid "Documentation"
-msgstr "Documentació"
-
-#: ../../share/compssUsers:999
-msgid "Console Tools"
-msgstr "Eines de consola"
-
-#: ../../share/compssUsers:999
-msgid "Postfix mail server, Inn news server"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Internet station"
-msgstr "Estació d'Internet"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia station"
-msgstr "Estació multimčdia"
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Configuration"
-msgstr "Configuració de la LAN"
-
-#: ../../share/compssUsers:999
-msgid "More Graphical Desktops (Gnome, IceWM)"
-msgstr "Més escriptoris grąfics (Gnome, IceWM)"
-
-#: ../../share/compssUsers:999
-msgid ""
-"The K Desktop Environment, the basic graphical environment with a collection "
-"of accompanying tools"
-msgstr "Entorn d'escriptori K, l'entorn grąfic bąsic que inclou diverses eines"
-
-#: ../../share/compssUsers:999
-msgid "Graphical Environment"
-msgstr "Entorn grąfic"
-
-#: ../../share/compssUsers:999
-msgid "Apache, Pro-ftpd"
-msgstr "Apache i Pro-ftpd"
-
-#: ../../share/compssUsers:999
-msgid "Tools to create and burn CD's"
-msgstr "Eines per crear i gravar CD"
-
-#: ../../share/compssUsers:999
-msgid "Office Workstation"
-msgstr "Estació de treball Office"
-
-#: ../../share/compssUsers:999
-msgid "Server"
-msgstr "Servidor"
-
-#: ../../share/compssUsers:999
-msgid "Gnome, Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Gnome, Icewm, Window Maker, Enlightenment, Fvwm, etc."
-
-#: ../../share/compssUsers:999
-msgid "Graphics programs such as The Gimp"
-msgstr "Programes grąfics com ara el Gimp"
-
-#: ../../share/compssUsers:999
-msgid "DNS/NIS "
-msgstr "DNS/NIS "
-
-#: ../../share/compssUsers:999
-msgid "C and C++ development libraries, programs and include files"
-msgstr "Biblioteques de desenvolupament C i C++, programes i fitxers inclosos"
-
-#: ../../share/compssUsers:999
-msgid "Network Computer server"
-msgstr "Servidor d'ordinador de xarxa"
-
-#: ../../share/compssUsers:999
-msgid "Mail/Groupware/News"
-msgstr "Servidor, Correu/Groupware/Notķcies"
-
-#: ../../share/compssUsers:999
-msgid "Game station"
-msgstr "Estació de jocs"
-
-#: ../../share/compssUsers:999
-msgid "Video players and editors"
-msgstr "Reproductors i editors de vķdeo"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Graphics"
-msgstr "Multimčdia - Grąfics"
-
-#: ../../share/compssUsers:999
-msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr "Programes d'entreteniment: acció, jocs de taula, estratčgia, etc."
-
-#: ../../share/compssUsers:999
-msgid ""
-"Set of tools to read and send mail and news (pine, mutt, tin..) and to "
-"browse the Web"
-msgstr ""
-"Conjunt d'eines per llegir i enviar correu i notķcies (pine, mutt, tin...) i "
-"per navegar pel Web"
-
-#: ../../share/compssUsers:999
-msgid "Archiving, emulators, monitoring"
-msgstr "Arxivament, emuladors, monitorització"
-
-#: ../../share/compssUsers:999
-msgid "Personal Finance"
-msgstr "Comptabilitat personal"
-
-#: ../../share/compssUsers:999
-msgid ""
-"A graphical environment with user-friendly set of applications and desktop "
-"tools"
-msgstr ""
-"Entorn grąfic amb un conjunt d'aplicacions i eines d'escriptori fącil "
-"d'utilitzar"
-
-#: ../../share/compssUsers:999
-msgid "Clients for different protocols including ssh"
-msgstr "Clients per a diferents protocols, incloent l'ssh"
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Internet gateway"
-msgstr "Accés a Internet"
-
-#: ../../share/compssUsers:999
-msgid "Sound and video playing/editing programs"
-msgstr "Programes de reproducció/edició de so i vķdeo"
-
-#: ../../share/compssUsers:999
-msgid "Other Graphical Desktops"
-msgstr "Altres escriptoris grąfics"
-
-#: ../../share/compssUsers:999
-msgid "Editors, shells, file tools, terminals"
-msgstr "Editors, intčrprets d'ordres, eines de fitxer, terminals"
-
-#: ../../share/compssUsers:999
-msgid "Programs to manage your finance, such as gnucash"
-msgstr "Programes per gestionar els vostres comptes, com ara el gnucash"
-
-#: ../../share/compssUsers:999
-msgid "Personal Information Management"
-msgstr "Gestió d'informació personal"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - CD Burning"
-msgstr "Multimčdia - Gravació de CD"
-
-#: ../../share/compssUsers:999
-msgid "Scientific Workstation"
-msgstr "Estació cientķfica de treball"
-
-#, fuzzy
-#~ msgid "About"
-#~ msgstr "Interromp"
-
-#~ msgid "$f-$g %s)"
-#~ msgstr "$f-$g %s)"
-
-#~ msgid "None"
-#~ msgstr "Cap"
-
-#, fuzzy
-#~ msgid "Choose a default printer!"
-#~ msgstr "Escolliu l'usuari per omissió:"
-
-#, fuzzy
-#~ msgid "Apply/Re-read printers"
-#~ msgstr "Impressora remota"
-
-#~ msgid "You may now provide its options to module %s."
-#~ msgstr "Ara podeu proporcionar les seves opcions per al mņdul %s."
-
-#~ msgid "mount failed"
-#~ msgstr "ha fallat el muntatge"
-
-#~ msgid "Low"
-#~ msgstr "Baix"
-
-#~ msgid "Medium"
-#~ msgstr "Mitją"
-
-#~ msgid ""
-#~ "Few improvements for this security level, the main one is that there are\n"
-#~ "more security warnings and checks."
-#~ msgstr ""
-#~ "Poques millores per a aquest nivell de seguretat; la principal és que hi "
-#~ "ha\n"
-#~ "més avisos i comprovacions de seguretat."
-
-#, fuzzy
-#~ msgid "Art and Multimedia"
-#~ msgstr "Multimčdia"
-
-#~ msgid "Boot mode"
-#~ msgstr "Mode d'arrencada"
-
-#, fuzzy
-#~ msgid "Export"
-#~ msgstr "Expert"
-
-#~ msgid ""
-#~ "GNU/Linux manages time in GMT (Greenwich Mean Time) and translates it in\n"
-#~ "local time according to the time zone you selected."
-#~ msgstr ""
-#~ "El GNU/Linux gestiona l'hora en GMT (Hora de Greenwich) i la\n"
-#~ "tradueix a l'hora local segons la zona horąria seleccionada."
-
-#~ msgid "Connect to Internet"
-#~ msgstr "Connecta't a Internet"
-
-#~ msgid "Disconnect from Internet"
-#~ msgstr "Desconnecta't d'Internet"
-
-#~ msgid "Configure network connection (LAN or Internet)"
-#~ msgstr "Configura la connexió de xarxa (LAN o Internet)"
-
-#, fuzzy
-#~ msgid "Detected %s, do you want to set it up?"
-#~ msgstr "A quin disc us voleu desplaēar?"
-
-#, fuzzy
-#~ msgid "Please choose the printer you want to set up."
-#~ msgstr "Si us plau, escolliu els paquets que voleu instal·lar"
-
-#, fuzzy
-#~ msgid "Infos"
-#~ msgstr "Informació"
-
-#, fuzzy
-#~ msgid "Windows Importation"
-#~ msgstr "Estació de treball GNOME"
-
-#~ msgid "authentification"
-#~ msgstr "autenticació"
-
-#~ msgid "user"
-#~ msgstr "usuari"
-
-#, fuzzy
-#~ msgid ""
-#~ "Apache is a World Wide Web server. It is used to serve HTML files and "
-#~ "CGI."
-#~ msgstr ""
-#~ "L'Apache és un servidor de World Wide Web. S'utilitza per servir fitxers\n"
-#~ "HTML i CGI."
-
-#~ msgid ""
-#~ "named (BIND) is a Domain Name Server (DNS) that is used to resolve\n"
-#~ "host names to IP addresses."
-#~ msgstr ""
-#~ "named (BIND) és un servidor de noms de domini (DNS) que s'utiilitza\n"
-#~ "per convertir noms d'ordinadors centrals en adreces IP."
-
-#, fuzzy
-#~ msgid ""
-#~ "Please choose the desired printer/printer port.\n"
-#~ "\n"
-#~ msgstr "Si us plau, seleccioneu el vostre tipus de ratolķ."
-
-#, fuzzy
-#~ msgid "\\@quit"
-#~ msgstr "Surt"
-
-#, fuzzy
-#~ msgid "Removable media"
-#~ msgstr "Muntatge automątic del suport extraļble"
-
-#~ msgid "Active"
-#~ msgstr "Actiu"
-
-#, fuzzy
-#~ msgid "No X"
-#~ msgstr "No"
-
-#~ msgid "A printer, model \"%s\", has been detected on "
-#~ msgstr "S'ha detectat una impressora, model \"%s\", a"
-
-#~ msgid "Local Printer Device"
-#~ msgstr "Dispositiu de la impressora local"
-
-#~ msgid "Printer Device"
-#~ msgstr "Dispositiu d'impressora"
-
-#, fuzzy
-#~ msgid "Printer(s) on remote CUPS server(s)"
-#~ msgstr "Servidor CUPS remot"
-
-#, fuzzy
-#~ msgid "Printer(s) on remote server(s)"
-#~ msgstr "Servidor CUPS remot"
-
-#, fuzzy
-#~ msgid " Linux "
-#~ msgstr "Linux"
-
-#, fuzzy
-#~ msgid " System "
-#~ msgstr "Mode de sistema"
-
-#, fuzzy
-#~ msgid " Other "
-#~ msgstr "Altres"
-
-#, fuzzy
-#~ msgid "please choose your CD space"
-#~ msgstr "Si us plau, selecioneu la disposició del vostre teclat."
-
-#, fuzzy
-#~ msgid " Please check if you are using CDRW media"
-#~ msgstr "Si us plau, feu clic a una partició "
-
-#, fuzzy
-#~ msgid " Tape "
-#~ msgstr "Tipus: "
-
-#, fuzzy
-#~ msgid " Use .backupignore files"
-#~ msgstr "Fitxer de cņpia de seguretat incorrecte"
-
-#, fuzzy
-#~ msgid "Configure it"
-#~ msgstr "Configura l'X"
-
-#, fuzzy
-#~ msgid "on Tape Device"
-#~ msgstr "Dispositiu d'impressora"
-
-#, fuzzy
-#~ msgid " Cancel "
-#~ msgstr "Cancel·la"
-
-#, fuzzy
-#~ msgid " Ok "
-#~ msgstr "D'acord"
-
-#, fuzzy
-#~ msgid "close"
-#~ msgstr "Tanca"
-
-#, fuzzy
-#~ msgid "toto"
-#~ msgstr "toot"
-
-#, fuzzy
-#~ msgid "Starting your connection..."
-#~ msgstr "S'estą comprovant la vostra conexió..."
-
-#~ msgid "Closing your connection..."
-#~ msgstr "S'estą tancant la connexió..."
-
-#~ msgid ""
-#~ "The connection is not closed.\n"
-#~ "Try to do it manually by running\n"
-#~ "/etc/sysconfig/network-scripts/net_cnx_down\n"
-#~ "in root."
-#~ msgstr ""
-#~ "La connexió no estą tancada.\n"
-#~ "Intenteu fer-ho manualment executant\n"
-#~ "/etc/sysconfig/network-scripts/net_cnx_down\n"
-#~ "a root."
-
-#~ msgid "The system is now disconnected."
-#~ msgstr "Ara, el sistema estą desconnectat."
-
-#~ msgid "Choose the size you want to install"
-#~ msgstr "Escolliu la mida que voleu instal·lar"
-
-#~ msgid "Total size: "
-#~ msgstr "Mida total: "
-
-#~ msgid "Please wait, "
-#~ msgstr "Si us plau, espereu, "
-
-#~ msgid "Total time "
-#~ msgstr "Temps total "
-
-#~ msgid "Use existing configuration for X11?"
-#~ msgstr "Voleu utilitzar la configuració existent per a X11?"
-
-#~ msgid ""
-#~ "What device is your printer connected to \n"
-#~ "(note that /dev/lp0 is equivalent to LPT1:)?\n"
-#~ msgstr ""
-#~ "A quin dispositiu estą connectada la vostra impressora?\n"
-#~ "(tingueu en compte que /dev/lp0 equival a LPT1:)\n"
-
-#~ msgid "$_"
-#~ msgstr "$_"
-
-#~ msgid ""
-#~ "Warning, the network adapter is already configured. I will reconfigure it."
-#~ msgstr ""
-#~ "Compte, l'adaptador de xarxa ja estą configurat. El tornaré a configurar."
-
-#~ msgid "New"
-#~ msgstr "Nou"
-
-#, fuzzy
-#~ msgid "Remote"
-#~ msgstr "Elimina"
-
-#, fuzzy
-#~ msgid ""
-#~ "Please click on a button above\n"
-#~ "\n"
-#~ "Or use \"New\""
-#~ msgstr "Si us plau, feu clic a una partició "
-
-#~ msgid "Ambiguity (%s), be more precise\n"
-#~ msgstr "Ambigüitat (%s), sigueu més precķs\n"
-
-#~ msgid " ? (default %s) "
-#~ msgstr " ? (predeterminat %s) "
-
-#~ msgid "Your choice? (default %s enter `none' for none) "
-#~ msgstr "La vostra elecció? (predeterminat %s introduļu `cap' per a cap) "
-
-#~ msgid "can not open /etc/sysconfig/autologin for reading: %s"
-#~ msgstr "no es pot obrir /etc/sysconfig/autologin per a lectura: %s"
-
-#~ msgid "Do you want to restart the network"
-#~ msgstr "Voleu reiniciar la xarxa"
-
-#~ msgid ""
-#~ "\n"
-#~ "Do you agree?"
-#~ msgstr ""
-#~ "\n"
-#~ "Hi esteu d'acord?"
-
-#~ msgid "I'm about to restart the network device:\n"
-#~ msgstr "Ara reiniciaré el dispositiu de xarxa:\n"
-
-#~ msgid "I'm about to restart the network device %s. Do you agree?"
-#~ msgstr "Ara reiniciaré el dispositiu de xarxa %s. Hi esteu d'acord?"
-
-#, fuzzy
-#~ msgid ""
-#~ "Unless you know specifically otherwise, the usual choice is \"/dev/hda\"\n"
-#~ "(primary master IDE disk) or \"/dev/sda\" (first SCSI disk)."
-#~ msgstr ""
-#~ "Tret que sapigueu expressament que s'ha d'indicar una altra cosa, "
-#~ "l'elecció\n"
-#~ "habitual és \"/dev/hda\" (el disc IDE mestre primari) o bé \"/dev/sda\"\n"
-#~ "(el primer disc SCSI)."
-
-#, fuzzy
-#~ msgid "Connection timeout (in sec) [ beta, not yet implemented ]"
-#~ msgstr "Tipus de connexió: "
-
-#, fuzzy
-#~ msgid "Could not set \"%s\" as the default printer!"
-#~ msgstr "Escolliu l'usuari per omissió:"
-
-#, fuzzy
-#~ msgid "Test the mouse here."
-#~ msgstr "Si us plau, comproveu el ratolķ."
-
-#~ msgid ""
-#~ "Please choose your preferred language for installation and system usage."
-#~ msgstr ""
-#~ "Escolliu l'idioma que voleu utilitzar per a la instal·lació i per a l'śs "
-#~ "del sistema."
-
-#~ msgid ""
-#~ "You need to accept the terms of the above license to continue "
-#~ "installation.\n"
-#~ "\n"
-#~ "\n"
-#~ "Please click on \"Accept\" if you agree with its terms.\n"
-#~ "\n"
-#~ "\n"
-#~ "Please click on \"Refuse\" if you disagree with its terms. Installation "
-#~ "will end without modifying your current\n"
-#~ "configuration."
-#~ msgstr ""
-#~ "Heu d'acceptar els termes de la llicčncia de més amunt per poder "
-#~ "continuar la instal·lació.\n"
-#~ "\n"
-#~ "\n"
-#~ "Si us plau, feu clic a \"Accepto\" si hi esteu d'acord.\n"
-#~ "\n"
-#~ "\n"
-#~ "Feu clic a \"No accpeto\" si no hi esteu d'acord. La instal·lació "
-#~ "finalitzarą sense modificar la instal·lació actual."
-
-#~ msgid "Choose the layout corresponding to your keyboard from the list above"
-#~ msgstr "Escolliu el vostre tipus de teclat de la llista inferior"
-
-#~ msgid ""
-#~ "If you wish other languages (than the one you choose at\n"
-#~ "beginning of installation) will be available after installation, please "
-#~ "chose\n"
-#~ "them in list above. If you want select all, you just need to select \"All"
-#~ "\"."
-#~ msgstr ""
-#~ "Si desitgeu que altres idiomes (a més del que vau triar en\n"
-#~ "iniciar la instal·lació) estiguin disponibles després de la "
-#~ "instal·lació,\n"
-#~ "escolliu-los de la llista de més amunt. Si els voleu seleccionar tots,\n"
-#~ "només cal que seleccioneu \"Tots\"."
-
-#~ msgid ""
-#~ "Select:\n"
-#~ "\n"
-#~ " - Customized: If you are familiar enough with GNU/Linux, you may then "
-#~ "choose\n"
-#~ " the primary usage for your machine. See below for details.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Expert: This supposes that you are fluent with GNU/Linux and want to\n"
-#~ " perform a highly customized installation. As for a \"Customized\"\n"
-#~ " installation class, you will be able to select the usage for your "
-#~ "system.\n"
-#~ " But please, please, DO NOT CHOOSE THIS UNLESS YOU KNOW WHAT YOU ARE "
-#~ "DOING!"
-#~ msgstr ""
-#~ "Seleccioneu:\n"
-#~ "\n"
-#~ " - Personalitzada: Si esteu familiaritzat amb el Linux, podreu\n"
-#~ "triar l'śs del sistema instal·lat entre Normal, Desenvolupament o\n"
-#~ "Servidor. Trieu \"Normal\" per a una instal·lació per a un śs\n"
-#~ "general del vostre ordinador, \"Desenvolupament\" si utilitzareu\n"
-#~ "l'ordinador principalment per a desenvolupament de programari,\n"
-#~ "o \"Servidor\" si voleu instal·lar un servidor convencional (per\n"
-#~ "a correu, impressions...).\n"
-#~ "\n"
-#~ "\n"
-#~ " - Per a experts: Si domineu el GNU/Linux i voleu realitzar una\n"
-#~ "instal·lació totalment personalitzada, aquest és el vostre\n"
-#~ "tipus d'instal·lació. Podreu seleccionar l'śs del vostre sistema\n"
-#~ "com a \"Personalitzada\"."
-
-#~ msgid ""
-#~ "You must now define your machine usage. Choices are:\n"
-#~ "\n"
-#~ "* Workstation: this the ideal choice if you intend to use your machine "
-#~ "primarily for everyday use, at office or\n"
-#~ " at home.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Development: if you intend to use your machine primarily for software "
-#~ "development, it is the good choice. You\n"
-#~ " will then have a complete collection of software installed in order to "
-#~ "compile, debug and format source code,\n"
-#~ " or create software packages.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Server: if you intend to use this machine as a server, it is the good "
-#~ "choice. Either a file server (NFS or\n"
-#~ " SMB), a print server (Unix style or Microsoft Windows style), an "
-#~ "authentication server (NIS), a database\n"
-#~ " server and so on. As such, do not expect any gimmicks (KDE, GNOME, "
-#~ "etc.) to be installed."
-#~ msgstr ""
-#~ "Ara heu de decidir com utilitzareu l'ordinador. Les opcions són:\n"
-#~ "\n"
-#~ "* Estació de treball: l'elecció ideal si penseu utilitzar l'ordinador "
-#~ "bąsicament per a l'śs quotidią, a la feina o\n"
-#~ " a casa.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Desenvolupament: si penseu utilitzar l'ordinador bąsicament per a "
-#~ "desenvolupament de programari, aquesta és l'elecció ideal.\n"
-#~ " Tindreu instal·lada una completa col·lecció de programari per poder "
-#~ "compilar, depurar i formatar codi font,\n"
-#~ " o crear paquets de programari.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Servidor: si penseu utilitzar l'ordinador com a servidor, aquesta és "
-#~ "l'elecció ideal, ja sigui un servidor de fitxers (NFS o\n"
-#~ " SMB), un servidor d'impressió (tipus Unix o Microsoft Windows), un "
-#~ "servidor d'autenticació (NIS), un servidor\n"
-#~ " de bases de dades, etc. En canvi, no espereu que se us instal·lin coses "
-#~ "com ara el KDE, el GNOME, etc.)"
-
-#~ msgid ""
-#~ "You may now select the group of packages you wish to\n"
-#~ "install or upgrade.\n"
-#~ "\n"
-#~ "\n"
-#~ "DrakX will then check whether you have enough room to install them all. "
-#~ "If not,\n"
-#~ "it will warn you about it. If you want to go on anyway, it will proceed "
-#~ "onto the\n"
-#~ "installation of all selected groups but will drop some packages of "
-#~ "lesser\n"
-#~ "interest. At the bottom of the list you can select the option \n"
-#~ "\"Individual package selection\"; in this case you will have to browse "
-#~ "through\n"
-#~ "more than 1000 packages..."
-#~ msgstr ""
-#~ "Ara podeu seleccionar el grup de paquets que voleu instal·lar o "
-#~ "actualitzar.\n"
-#~ "\n"
-#~ "\n"
-#~ "El DrakX comprovarą si teniu prou espai per instal·lar-los tots i, si no, "
-#~ "us\n"
-#~ "ho avisarą. Si voleu seguir igualment, continuarą amb la instal·lació de "
-#~ "tots\n"
-#~ "els grups seleccionats perņ no n'instal·larą alguns de menys interčs. Al "
-#~ "final\n"
-#~ "de la llista podeu seleccionar l'opció \"Selecció individual de paquets"
-#~ "\", i\n"
-#~ "en aquest cas haureu de navegar per més de 1.000 paquets..."
-
-#~ msgid ""
-#~ "You can now choose individually all the packages you\n"
-#~ "wish to install.\n"
-#~ "\n"
-#~ "\n"
-#~ "You can expand or collapse the tree by clicking on options in the left "
-#~ "corner of\n"
-#~ "the packages window.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you prefer to see packages sorted in alphabetic order, click on the "
-#~ "icon\n"
-#~ "\"Toggle flat and group sorted\".\n"
-#~ "\n"
-#~ "\n"
-#~ "If you want not to be warned on dependencies, click on \"Automatic\n"
-#~ "dependencies\". If you do this, note that unselecting one package may "
-#~ "silently\n"
-#~ "unselect several other packages which depend on it."
-#~ msgstr ""
-#~ "Ara podeu triar individualment tots els paquets que voleu instal·lar.\n"
-#~ "\n"
-#~ "\n"
-#~ "Podeu expandir o reduir l'arbre fent clic a les opcions del racó esquerre "
-#~ "de la finestra de paquets.\n"
-#~ "\n"
-#~ "\n"
-#~ "Si preferiu veure els paquets ordenats alfabčticament, feu clic a la "
-#~ "icona\n"
-#~ "\"Commuta entre ordenació plana i per grups\".\n"
-#~ "\n"
-#~ "\n"
-#~ "Si no voleu ser avisat pel que fa a les dependčncies, feu clic a "
-#~ "\"Dependčncies\n"
-#~ "automątiques\". Si ho feu, tingueu en compte que el fet de "
-#~ "desseleccionar\n"
-#~ "un paquet pot causar la desselecció d'altres paquets que en depenen, i "
-#~ "no\n"
-#~ "us n'assabentareu."
-
-#~ msgid ""
-#~ "If you have all the CDs in the list above, click Ok. If you have\n"
-#~ "none of those CDs, click Cancel. If only some CDs are missing, unselect "
-#~ "them,\n"
-#~ "then click Ok."
-#~ msgstr ""
-#~ "Si teniu tots els CD de la llista superior, feu clic a D'acord.\n"
-#~ "Si no teniu cap d'aquests CD, feu clic a Cancel·la.\n"
-#~ "Si només falten alguns CD, desseleccioneu-los i feu clic a D'acord."
-
-#~ msgid ""
-#~ "If you wish to connect your computer to the Internet or\n"
-#~ "to a local network please choose the correct option. Please turn on your "
-#~ "device\n"
-#~ "before choosing the correct option to let DrakX detect it automatically.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you do not have any connection to the Internet or a local network, "
-#~ "choose\n"
-#~ "\"Disable networking\".\n"
-#~ "\n"
-#~ "\n"
-#~ "If you wish to configure the network later after installation, or if you "
-#~ "have\n"
-#~ "finished to configure your network connection, choose \"Done\"."
-#~ msgstr ""
-#~ "Si voleu connectar l'ordinador a Internet o a una xarxa local, "
-#~ "seleccioneu\n"
-#~ "l'opció corresponent, perņ abans recordeu engegar el dispositiu per tal "
-#~ "que\n"
-#~ "el DrakX el detecti automąticament.\n"
-#~ "\n"
-#~ "\n"
-#~ "Si no teniu connexió a Internet ni a cap xarxa local, escolliu "
-#~ "\"Inhabilita el servei de xarxa\".\n"
-#~ "\n"
-#~ "\n"
-#~ "Si voleu configurar la xarxa més endavant, després de la instal·lació, o "
-#~ "si\n"
-#~ "heu acabat la configuració de la connexió de xarxa, trieu \"Fet\"."
-
-#~ msgid ""
-#~ "No modem has been detected. Please select the serial port on which it is "
-#~ "plugged.\n"
-#~ "\n"
-#~ "\n"
-#~ "For information, the first serial port (called \"COM1\" under Microsoft\n"
-#~ "Windows) is called \"ttyS0\" under Linux."
-#~ msgstr ""
-#~ "No s'ha detectat cap mņdem. Si us plau, seleccioneu el port sčrie on estą "
-#~ "connectat.\n"
-#~ "\n"
-#~ "\n"
-#~ "Per a la vostra informació, el primer port sčrie (anomenat \"COM1\" en "
-#~ "Microsoft Windows) s'anomena \"ttyS0\" en Linux."
-
-#~ msgid ""
-#~ "You may now enter dialup options. If you don't know\n"
-#~ "or are not sure what to enter, the correct informations can be obtained "
-#~ "from\n"
-#~ "your Internet Service Provider. If you do not enter the DNS (name "
-#~ "server)\n"
-#~ "information here, this information will be obtained from your Internet "
-#~ "Service\n"
-#~ "Provider at connection time."
-#~ msgstr ""
-#~ "Ara podeu introduir les opcions de marcatge. Si no sabeu quč heu "
-#~ "d'introduir,\n"
-#~ "o si no n'esteu segur, podreu aconseguir la informació necessąria del "
-#~ "vostre\n"
-#~ "proveļdor d'Internet. Si no introduļu aquķ la informació del DNS "
-#~ "(servidor de\n"
-#~ "noms), aquesta informació s'obtindrą del proveļdor en el moment de "
-#~ "connectar."
-
-#~ msgid ""
-#~ "If your modem is an external modem, please turn on it now to let DrakX "
-#~ "detect it automatically."
-#~ msgstr ""
-#~ "Si el mņdem que teniu és extern, engegueu-lo per tal que el DrakX el "
-#~ "detecti automąticament."
-
-#~ msgid "Please turn on your modem and choose the correct one."
-#~ msgstr "Si us plau, engegueu el mņdem i trieu-ne el correcte."
-
-#~ msgid ""
-#~ "If you are not sure if informations above are\n"
-#~ "correct or if you don't know or are not sure what to enter, the correct\n"
-#~ "informations can be obtained from your Internet Service Provider. If you "
-#~ "do not\n"
-#~ "enter the DNS (name server) information here, this information will be "
-#~ "obtained\n"
-#~ "from your Internet Service Provider at connection time."
-#~ msgstr ""
-#~ "Si no esteu segur de si la informació de més amunt és correcta, si no "
-#~ "sabeu\n"
-#~ "quč introduir o si no n'esteu segur, podreu aconseguir la informació\n"
-#~ "necessąria del vostre proveļdor d'Internet. Si no introduļu aquķ la\n"
-#~ "informació del DNS (servidor de noms), aquesta informació s'obtindrą del\n"
-#~ "proveļdor en el moment de connectar."
-
-#~ msgid ""
-#~ "You may now enter your host name if needed. If you\n"
-#~ "don't know or are not sure what to enter, the correct informations can "
-#~ "be\n"
-#~ "obtained from your Internet Service Provider."
-#~ msgstr ""
-#~ "Ara podeu introduir el nom del vostre ordinador central. Si no esteu "
-#~ "segur del que hi\n"
-#~ "heu d'introduir, el vostre proveļdor us en donarą la informació correcta."
-
-#~ msgid ""
-#~ "You may now configure your network device.\n"
-#~ "\n"
-#~ " * IP address: if you don't know or are not sure what to enter, ask "
-#~ "your network administrator.\n"
-#~ " You should not enter an IP address if you select the option "
-#~ "\"Automatic IP\" below.\n"
-#~ "\n"
-#~ " * Netmask: \"255.255.255.0\" is generally a good choice. If you don't "
-#~ "know or are not sure what to enter,\n"
-#~ " ask your network administrator.\n"
-#~ "\n"
-#~ " * Automatic IP: if your network uses BOOTP or DHCP protocol, select "
-#~ "this option. If selected, no value is needed in\n"
-#~ " \"IP address\". If you don't know or are not sure if you need to "
-#~ "select this option, ask your network administrator."
-#~ msgstr ""
-#~ "Ara podeu configurar el voste dispositiu de xarxa.\n"
-#~ "\n"
-#~ " * Adreēa IP: si no la sabeu, o no n'esteu segur, pregunteu-la a "
-#~ "l'administrador de la xarxa.\n"
-#~ " No heu d'introduir cap adreēa IP si més avall seleccioneu l'opció "
-#~ "\"IP automątica\".\n"
-#~ "\n"
-#~ " * Mąscara de la xarxa: Normalment, \"255.255.255.0\" és una bona "
-#~ "elecció. Si no n'esteu segur, consulteu-ho a l'administrador de la "
-#~ "xarxa.\n"
-#~ "\n"
-#~ " * IP automątica: si la vostra xarxa utilitza els protocols BOOTP o "
-#~ "DHCP,\n"
-#~ "seleccioneu aquesta opció. Si es selecciona, no cal cap valor per a "
-#~ "\"Adreēa IP\". Si no n'esteu segur, consulteu-ho a l'administrador de la "
-#~ "xarxa."
-
-#~ msgid ""
-#~ "You may now enter your host name if needed. If you\n"
-#~ "don't know or are not sure what to enter, ask your network administrator."
-#~ msgstr ""
-#~ "Ara podeu introduir el nom del vostre ordinador central, si cal. Si no "
-#~ "el\n"
-#~ "sabeu, o no esteu segur de quč heu d'introduir, consulteu a "
-#~ "l'administrador de la xarxa."
-
-#~ msgid ""
-#~ "You may now enter your host name if needed. If you\n"
-#~ "don't know or are not sure what to enter, leave blank."
-#~ msgstr ""
-#~ "Ara podeu introduir el nom del vostre ordinador central, si cal. Si no\n"
-#~ "el sabeu, o si esteu segur de quč introduir, deixeu-ho en blanc."
-
-#~ msgid ""
-#~ "You may now enter dialup options. If you're not sure what to enter, the\n"
-#~ "correct information can be obtained from your ISP."
-#~ msgstr ""
-#~ "Ara podeu introduir les opcions de marcatge. Si no esteu segur del que "
-#~ "hi\n"
-#~ "heu d'introduir, el vostre proveļdor us en donarą la informació correcta."
-
-#~ msgid ""
-#~ "If you will use proxies, please configure them now. If you don't know if\n"
-#~ "you should use proxies, ask your network administrator or your ISP."
-#~ msgstr ""
-#~ "Si teniu previst utilitzar proxys, configureu-los ara. Si no sabeu si\n"
-#~ "n'utilitzareu, consulteu-ho a l'administrador de la xarxa o al vostre\n"
-#~ "proveļdor."
-
-#~ msgid ""
-#~ "You can install cryptographic package if your internet connection has "
-#~ "been\n"
-#~ "set up correctly. First choose a mirror where you wish to download "
-#~ "packages and\n"
-#~ "after that select the packages to install.\n"
-#~ "\n"
-#~ "\n"
-#~ "Note you have to select mirror and cryptographic packages according\n"
-#~ "to your legislation."
-#~ msgstr ""
-#~ "Podeu instal·lar el paquet criptogrąfic si la vostra connexió a Internet\n"
-#~ "s'ha configurat correctament. Escolliu primer una rčpilca des de la qual\n"
-#~ "vulgueu descarregar paquets i després seleccioneu els paquets a "
-#~ "instal·lar.\n"
-#~ "\n"
-#~ "\n"
-#~ "Tingueu en compte que heu de seleccionar la rčplica i els paquets\n"
-#~ "criptogrąfics segons la vostra legislació."
-
-#~ msgid "You can now select your timezone according to where you live."
-#~ msgstr "Ara podeu seleccionar la zona horąria segons el lloc on viviu."
-
-#~ msgid ""
-#~ "You can configure a local printer (connected to your computer) or remote\n"
-#~ "printer (accessible via a Unix, Netware or Microsoft Windows network)."
-#~ msgstr ""
-#~ "Podeu configurar una impressora local (connectada al vostre ordinador) o\n"
-#~ "remota (accessible mitjanēant una xarxa Unix, Netware o Microsoft "
-#~ "Windows)."
-
-#~ msgid ""
-#~ "If you wish to be able to print, please choose one printing system "
-#~ "between\n"
-#~ "CUPS and LPR.\n"
-#~ "\n"
-#~ "\n"
-#~ "CUPS is a new, powerful and flexible printing system for Unix systems "
-#~ "(CUPS\n"
-#~ "means \"Common Unix Printing System\"). It is the default printing system "
-#~ "in\n"
-#~ "Mandrake Linux.\n"
-#~ "\n"
-#~ "\n"
-#~ "LPR is the old printing system used in previous Mandrake Linux "
-#~ "distributions.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you don't have printer, click on \"None\"."
-#~ msgstr ""
-#~ "Si voleu imprimir, trieu un sistema de impressió entre CUPS i LPR.\n"
-#~ "\n"
-#~ "\n"
-#~ "El CUPS és un nou sistema d'impressió, potent i flexible, per a sistemes "
-#~ "Unix\n"
-#~ "(CUPS significa \"Common Unix Printing System\"). És el sistema "
-#~ "d'impressió\n"
-#~ "per defecte en Mandrake Linux.\n"
-#~ "\n"
-#~ "\n"
-#~ "L'LPR és l'antic sistema d'impressió utilitzat en distribucions anteriors "
-#~ "de\n"
-#~ "Mandrake Linux distributions.\n"
-#~ "\n"
-#~ "\n"
-#~ "Si no teniu impressora, feu clic a \"Cap\"."
-
-#~ msgid ""
-#~ "GNU/Linux can deal with many types of printer. Each of these types "
-#~ "requires\n"
-#~ "a different setup.\n"
-#~ "\n"
-#~ "\n"
-#~ "If your printer is physically connected to your computer, select \"Local\n"
-#~ "printer\".\n"
-#~ "\n"
-#~ "\n"
-#~ "If you want to access a printer located on a remote Unix machine, select\n"
-#~ "\"Remote printer\".\n"
-#~ "\n"
-#~ "\n"
-#~ "If you want to access a printer located on a remote Microsoft Windows "
-#~ "machine\n"
-#~ "(or on Unix machine using SMB protocol), select \"SMB/Windows 95/98/NT\"."
-#~ msgstr ""
-#~ "El GNU/Linux pot treballar amb molts tipus d'impressores, perņ cada un\n"
-#~ "d'aquests tipus requereix una configuració diferent.\n"
-#~ "\n"
-#~ "\n"
-#~ "Si teniu la impressora connectada fķsicament a l'ordinador, seleccioneu\n"
-#~ "\"Impressora local\".\n"
-#~ "\n"
-#~ "\n"
-#~ "Si voleu accedir a una impressora que es troba en un ordinador Unix "
-#~ "remot,\n"
-#~ "seleccioneu \"Impressora remota\".\n"
-#~ "\n"
-#~ "\n"
-#~ "Si voleu accedir a una impressora que es troba en un ordinador Microsoft\n"
-#~ "Windows remot (o en un ordinador Unix que utilitza el protocol SMB),\n"
-#~ "seleccioneu \"SMB/Windows 95/98/NT\"."
-
-#~ msgid ""
-#~ "Please turn on your printer before continuing to let DrakX detect it.\n"
-#~ "\n"
-#~ "You have to enter some informations here.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Name of printer: the print spooler uses \"lp\" as default printer "
-#~ "name. So, you must have a printer named \"lp\".\n"
-#~ " If you have only one printer, you can use several names for it. You "
-#~ "just need to separate them by a pipe\n"
-#~ " character (a \"|\"). So, if you prefer a more meaningful name, you "
-#~ "have to put it first, eg: \"My printer|lp\".\n"
-#~ " The printer having \"lp\" in its name(s) will be the default "
-#~ "printer.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Description: this is optional but can be useful if several printers "
-#~ "are connected to your computer or if you allow\n"
-#~ " other computers to access to this printer.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Location: if you want to put some information on your\n"
-#~ " printer location, put it here (you are free to write what\n"
-#~ " you want, for example \"2nd floor\").\n"
-#~ msgstr ""
-#~ "Si us plau, engegueu la impressora abans de continuar per tal que el "
-#~ "DrakX\n"
-#~ "la pugui detectar.\n"
-#~ "\n"
-#~ "Aquķ heu d'introduir algunes dades.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Nom de la impressora: l'spool d'impressió utilitza \"lp\" com a nom "
-#~ "per\n"
-#~ "omissió de la impressora. Per tant, heu de tenir una impressora "
-#~ "anomenada\n"
-#~ "\"lp\".\n"
-#~ " Si només teniu una impressora, podeu donar-li diversos;\n"
-#~ "noms; només cal que els separeu amb el carącter \"|\". Per tant,\n"
-#~ "si preferiu un nom més expressiu, l'heu d'indicar en primer lloc\n"
-#~ "(per exemple: \"La meva impressora|lp\").\n"
-#~ " La impressora que contingui \"lp\" al(s) nom(s) serą la impressora "
-#~ "per omissió.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Descripció: és opcional, perņ pot ser śtil si teniu diverses\n"
-#~ "impressores connectades a l'ordinador o si permeteu que altres\n"
-#~ "ordinadors accedeixin a aquesta impressora.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Ubicació: si voleu incloure informació sobre la ubicació de la\n"
-#~ "impressora, feu-ho aquķ (podeu escriure el que vulgueu, (per exemple,\n"
-#~ "\"2n pis\").\n"
-
-#~ msgid ""
-#~ "You need to enter some informations here.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Name of queue: the print spooler uses \"lp\" as default printer "
-#~ "name. So, you need have a printer named \"lp\".\n"
-#~ " If you have only one printer, you can use several names for it. You "
-#~ "just need to separate them by a pipe\n"
-#~ " character (a \"|\"). So, if you prefer to have a more meaningful "
-#~ "name, you have to put it first, eg: \"My printer|lp\".\n"
-#~ " The printer having \"lp\" in its name(s) will be the default "
-#~ "printer.\n"
-#~ "\n"
-#~ " \n"
-#~ " * Spool directory: it is in this directory that printing jobs are "
-#~ "stored. Keep the default choice\n"
-#~ " if you don't know what to use\n"
-#~ "\n"
-#~ "\n"
-#~ " * Printer Connection: If your printer is physically connected to your "
-#~ "computer, select \"Local printer\".\n"
-#~ " If you want to access a printer located on a remote Unix machine, "
-#~ "select \"Remote lpd printer\".\n"
-#~ "\n"
-#~ "\n"
-#~ " If you want to access a printer located on a remote Microsoft "
-#~ "Windows machine (or on Unix machine using SMB\n"
-#~ " protocol), select \"SMB/Windows 95/98/NT\".\n"
-#~ "\n"
-#~ "\n"
-#~ " If you want to acces a printer located on NetWare network, select "
-#~ "\"NetWare\".\n"
-#~ msgstr ""
-#~ "Aquķ heu d'introduir algunes dades.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Nom de la cua: l'spool d'impressió utilitza \"lp\" com a nom per\n"
-#~ "omissió de la impressora. Per tant, heu de tenir una impressora "
-#~ "anomenada\n"
-#~ "\"lp\".\n"
-#~ " Si només teniu una impressora, podeu donar-li diversos;\n"
-#~ "noms; només cal que els separeu amb el carącter \"|\". Per tant,\n"
-#~ "si preferiu un nom més expressiu, l'heu d'indicar en primer lloc\n"
-#~ "(per exemple: \"La meva impressora|lp\").\n"
-#~ " La impressora que contingui \"lp\" al(s) nom(s) serą la impressora "
-#~ "per omissió.\n"
-#~ "\n"
-#~ " \n"
-#~ " * Directori d'spool: les tasques d'impressió s'emmagatzemen en aquest "
-#~ "directori.Conserveu la opció predeterminada si no sabeu quina utilitzar\n"
-#~ "\n"
-#~ "\n"
-#~ " * Printer Connection: If your printer is physically connected to your "
-#~ "computer, select \"Local printer\".\n"
-#~ " Si voleu accedir a una impressora que es troba en un ordinador Unix\n"
-#~ "remot, seleccioneu \"Impressora lpd remota\".\n"
-#~ "\n"
-#~ "\n"
-#~ " Si voleu accedir a una impressora que es troba en un ordinador\n"
-#~ "Microsoft Windows remot (o en un ordinador Unix que utilitza el protocol\n"
-#~ "SMB), seleccioneu \"SMB/Windows 95/98/NT\".\n"
-#~ "\n"
-#~ " Si voleu accedir a una impressora que es troba en una xarxa "
-#~ "NetWare,\n"
-#~ "seleccioneu \"NetWare\".\n"
-
-#~ msgid ""
-#~ "Your printer has not been detected. Please enter the name of the device "
-#~ "on\n"
-#~ "which it is connected.\n"
-#~ "\n"
-#~ "\n"
-#~ "For information, most printers are connected on the first parallel port. "
-#~ "This\n"
-#~ "one is called \"/dev/lp0\" under GNU/Linux and \"LPT1\" under Microsoft "
-#~ "Windows."
-#~ msgstr ""
-#~ "No s'ha detectat la vostra impressora. Si us plau, introduļu el nom del\n"
-#~ "dispositiu a quč estą connectada.\n"
-#~ "\n"
-#~ "\n"
-#~ "Per a la vostra informació, la majoria d'impressores estan connectades "
-#~ "al\n"
-#~ "primer port paral·lel, que s'anomena \"/dev/lp0\" en GNU/Linux i \"LPT1"
-#~ "\"\n"
-#~ "en Microsoft Windows."
-
-#~ msgid "You must now select your printer in the above list."
-#~ msgstr "Ara heu de seleccionar la vostra impressora a la llista superior."
-
-#~ msgid ""
-#~ "Please select the right options according to your printer.\n"
-#~ "Please see its documentation if you don't know what choose here.\n"
-#~ "\n"
-#~ "\n"
-#~ "You will be able to test your configuration in next step and you will be "
-#~ "able to modify it if it doesn't work as you want."
-#~ msgstr ""
-#~ "Si us plau, seleccioneu les opcions correctes segons la vostra "
-#~ "impressora;\n"
-#~ "consulteu-ne la documentació si no sabeu quč heu de seleccionar.\n"
-#~ "\n"
-#~ "\n"
-#~ "Podreu comprovar la configuració en el pas següent i modificar-la si no\n"
-#~ "funciona exactament com voleu."
-
-#~ msgid ""
-#~ "You can now enter the root password for your Mandrake Linux system.\n"
-#~ "The password must be entered twice to verify that both password entries "
-#~ "are identical.\n"
-#~ "\n"
-#~ "\n"
-#~ "Root is the system's administrator and is the only user allowed to modify "
-#~ "the\n"
-#~ "system configuration. Therefore, choose this password carefully. \n"
-#~ "Unauthorized use of the root account can be extemely dangerous to the "
-#~ "integrity\n"
-#~ "of the system, its data and other system connected to it.\n"
-#~ "\n"
-#~ "\n"
-#~ "The password should be a mixture of alphanumeric characters and at least "
-#~ "8\n"
-#~ "characters long. It should never be written down.\n"
-#~ "\n"
-#~ "\n"
-#~ "Do not make the password too long or complicated, though: you must be "
-#~ "able to\n"
-#~ "remember it without too much effort."
-#~ msgstr ""
-#~ "Ara podeu introduir la contrasenya de l'usuari 'root' del vostre\n"
-#~ "sistema Mandrake Linux. Ho heu de fer dos cops per verificar que\n"
-#~ "ambdues introduccions són idčntiques.\n"
-#~ "\n"
-#~ "\n"
-#~ "L'usuari 'root' és l'administrador del sistema, i és l'śnic\n"
-#~ "autoritzat per modificar la configuració del sistema; per tant,\n"
-#~ "trieu amb molta cura aquesta contrasenya. L'śs no autoritzat del\n"
-#~ "compte 'root' pot ser extremadament perillós per a la integritat\n"
-#~ "del sistema, per a les seves dades, i per a altres sistema que hi\n"
-#~ "estan connectats.\n"
-#~ "\n"
-#~ "\n"
-#~ "La contrasenya s'ha de crear amb diversos carącters alfanumčrics, ha de\n"
-#~ "tenir una llargada mķnima de 8 carącters, i mai no s'ha d'anotar enlloc.\n"
-#~ "\n"
-#~ "\n"
-#~ "No obstant aixņ, no creeu una contrasenya excessivament llarga o\n"
-#~ "complicada: heu de poder recordar-la sense problemes."
-
-#~ msgid ""
-#~ "You may now create one or more \"regular\" user account(s), as\n"
-#~ "opposed to the \"privileged\" user account, root. You can create\n"
-#~ "one or more account(s) for each person you want to allow to use\n"
-#~ "the computer. Note that each user account will have its own\n"
-#~ "preferences (graphical environment, program settings, etc.)\n"
-#~ "and its own \"home directory\", in which these preferences are\n"
-#~ "stored.\n"
-#~ "\n"
-#~ "\n"
-#~ "First of all, create an account for yourself! Even if you will be the "
-#~ "only user\n"
-#~ "of the machine, you may NOT connect as root for daily use of the system: "
-#~ "it's a\n"
-#~ "very high security risk. Making the system unusable is very often a typo "
-#~ "away.\n"
-#~ "\n"
-#~ "\n"
-#~ "Therefore, you should connect to the system using the user account\n"
-#~ "you will have created here, and login as root only for administration\n"
-#~ "and maintenance purposes."
-#~ msgstr ""
-#~ "Ara podeu crear un o més comptes \"normals\" d'usuari, en\n"
-#~ "contraposició al compte \"privilegiat\", el 'root'. Podeu crear\n"
-#~ "un o més comptes per a cada una de les persones a qui permetreu\n"
-#~ "utilitzar l'ordinador. Tingueu en compte que cada compte d'usuari\n"
-#~ "tindrą les seves prņpies preferčncies (entorn grąfic, parąmetres\n"
-#~ "del programa. etc.) i el seu propi \"directori inicial\", on\n"
-#~ "s'emmagatzemen aquestes preferčncies.\n"
-#~ "\n"
-#~ "\n"
-#~ "Primer de tot, creeu-vos un compte propi! Encara que sigueu l'śnic\n"
-#~ "usuari de l'ordinador, NO us connecteu com a 'root'\n"
-#~ "per a l'śs quotidią del sistema: és un risc de seguretat molt alt.\n"
-#~ "Tot sovint, fer el sistema inutilitzable depčn d'un simple error\n"
-#~ "tipogrąfic.\n"
-#~ "\n"
-#~ "\n"
-#~ "Per tant, connecteu-vos al sistema amb el compte d'usuari que heu\n"
-#~ "creat, i entreu-hi com a 'root' només per a tasques d'administració\n"
-#~ "i manteniment."
-
-#~ msgid ""
-#~ "Creating a boot disk is strongly recommended. If you can't\n"
-#~ "boot your computer, it's the only way to rescue your system without\n"
-#~ "reinstalling it."
-#~ msgstr ""
-#~ "És molt recomanable crear un disc d'arrencada. Si no podeu arrencar "
-#~ "l'ordinador,\n"
-#~ "és l'śnica manera de solucionar-ho sense haver de reinstal·lar-ho tot."
-
-#~ msgid ""
-#~ "LILO and grub main options are:\n"
-#~ " - Boot device: Sets the name of the device (e.g. a hard disk\n"
-#~ "partition) that contains the boot sector. Unless you know specifically\n"
-#~ "otherwise, choose \"/dev/hda\".\n"
-#~ "\n"
-#~ "\n"
-#~ " - Delay before booting default image: Specifies the number in tenths\n"
-#~ "of a second the boot loader should wait before booting the first image.\n"
-#~ "This is useful on systems that immediately boot from the hard disk after\n"
-#~ "enabling the keyboard. The boot loader doesn't wait if \"delay\" is\n"
-#~ "omitted or is set to zero.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Video mode: This specifies the VGA text mode that should be selected\n"
-#~ "when booting. The following values are available: \n"
-#~ "\n"
-#~ " * normal: select normal 80x25 text mode.\n"
-#~ "\n"
-#~ " * <number>: use the corresponding text mode.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Clean \"/tmp\" at each boot: if you want delete all files and "
-#~ "directories\n"
-#~ "stored in \"/tmp\" when you boot your system, select this option.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Precise RAM if needed: unfortunately, there is no standard method to "
-#~ "ask the\n"
-#~ "BIOS about the amount of RAM present in your computer. As consequence, "
-#~ "Linux may\n"
-#~ "fail to detect your amount of RAM correctly. If this is the case, you "
-#~ "can\n"
-#~ "specify the correct amount or RAM here. Please note that a difference of "
-#~ "2 or 4\n"
-#~ "MB between detected memory and memory present in your system is normal."
-#~ msgstr ""
-#~ "Les opcions principals del LILO i del Grub són:\n"
-#~ " - Dispositiu d'arrencada: Defineix el nom del dispositiu (p.\n"
-#~ "ex., una partició del disc dur) que conté el sector d'arrencada.\n"
-#~ "Tret que sapigueu expressament que s'ha d'indicar una altra cosa,\n"
-#~ "trieu \"/dev/hda\".\n"
-#~ "\n"
-#~ "\n"
-#~ " - Temps d'espera abans d'arrencar la imatge per defecte: Especifica el\n"
-#~ "temps, en dčcimes de segon, que el carregador d'arrencada ha\n"
-#~ "d'esperar abans de carregar la primera imatge.\n"
-#~ "Aixņ és śtil en sistemes que arrenquen immediatament des del disc\n"
-#~ "dur després d'habilitar el teclat. El carregador d'arrencada no\n"
-#~ "esperarą si s'omet el \"temps d'espera\" o si se li dóna el valor zero.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Mode de vķdeo: Amb aixņ s'especifica el mode de text VGA que\n"
-#~ "cal seleccionar en arrencar. Es poden utilitzar els valors\n"
-#~ "següents:\n"
-#~ " * normal: selecciona el mode de text 80x25 normal.\n"
-#~ " * <nśmero>: utilitza el mode de text corresponent.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Neteja de \"/tmp\" en cada arrencada: si voleu suprimir tots els "
-#~ "fitxers i\n"
-#~ "directoris emmagatzemats a \"/tmp\" en arrencar el sistame, seleccioneu\n"
-#~ "aquesta opció.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Si cal, indicació de la mida exacta de la RAM: malauradament, no hi "
-#~ "cap\n"
-#~ "mčtode estąndard per preguntar al BIOS la quantitat de RAM que teniu a\n"
-#~ "l'ordinador. Per tant, és possible que el Linux no pugui detectar\n"
-#~ "correctament la quantitat de RAM instal·lada. Si és aquest el cas, en "
-#~ "podeu\n"
-#~ "indicar aquķ la quantitat correcta, perņ penseu que una diferčncia de 2 o "
-#~ "4\n"
-#~ "MB entre la memņria detectada i la memņria real és normal."
-
-#~ msgid ""
-#~ "SILO is a bootloader for SPARC: it is able to boot\n"
-#~ "either GNU/Linux or any other operating system present on your computer.\n"
-#~ "Normally, these other operating systems are correctly detected and\n"
-#~ "installed. If this is not the case, you can add an entry by hand in this\n"
-#~ "screen. Be careful as to choose the correct parameters.\n"
-#~ "\n"
-#~ "\n"
-#~ "You may also want not to give access to these other operating systems to\n"
-#~ "anyone, in which case you can delete the corresponding entries. But\n"
-#~ "in this case, you will need a boot disk in order to boot them!"
-#~ msgstr ""
-#~ "El SILO és un carregador d'arrencada per a l'SPARC: pot arrencar el\n"
-#~ "GNU/Linux o qualsevol altre sistema operatiu que tingueu a l'ordinador.\n"
-#~ "Normalment, aquests altres sistemes operatius es detecten i instal·len\n"
-#~ "correctament, perņ si no és aixķ, podeu afegir-los manualment en aquesta\n"
-#~ "pantalla. Aneu amb compte de triar els parąmetres correctes.\n"
-#~ "\n"
-#~ "\n"
-#~ "També és possible que no volgueu donar accés a tothom a aquests sistemes\n"
-#~ "operatius; en aquest cas podeu suprimir les entrades corresponents, perņ\n"
-#~ "aleshores us caldrą un disc d'arrencada per poder-los arrencar!"
-
-#~ msgid ""
-#~ "SILO main options are:\n"
-#~ " - Bootloader installation: Indicate where you want to place the\n"
-#~ "information required to boot to GNU/Linux. Unless you know exactly\n"
-#~ "what you are doing, choose \"First sector of drive (MBR)\".\n"
-#~ "\n"
-#~ "\n"
-#~ " - Delay before booting default image: Specifies the number in tenths\n"
-#~ "of a second the boot loader should wait before booting the first image.\n"
-#~ "This is useful on systems that immediately boot from the hard disk after\n"
-#~ "enabling the keyboard. The boot loader doesn't wait if \"delay\" is\n"
-#~ "omitted or is set to zero."
-#~ msgstr ""
-#~ "Les opcions principals del SILO són:\n"
-#~ " - Instal·lació del carregador d'arrencada: indica on voleu situar la\n"
-#~ "informació necessąria per arrencar el GNU/Linux. Tret que sapigueu\n"
-#~ "exactament quč esteu fent, seleccioneu \"Primer sector de la unitat\n"
-#~ "(MBR)\".\n"
-#~ " \n"
-#~ "\n"
-#~ " - Temps d'espera abans d'arrencar la imatge per defecte: Especifica el\n"
-#~ "temps, en dčcimes de segon, que el carregador d'arrencada ha\n"
-#~ "d'esperar abans de carregar la primera imatge.\n"
-#~ "Aixņ és śtil en sistemes que arrenquen immediatament des del disc\n"
-#~ "dur després d'habilitar el teclat. El carregador d'arrencada no\n"
-#~ "esperarą si s'omet el \"temps d'espera\" o si se li dóna el valor zero."
-
-#~ msgid ""
-#~ "Now it's time to configure the X Window System, which is the\n"
-#~ "core of the GNU/Linux GUI (Graphical User Interface). For this purpose,\n"
-#~ "you must configure your video card and monitor. Most of these\n"
-#~ "steps are automated, though, therefore your work may only consist\n"
-#~ "of verifying what has been done and accept the settings :)\n"
-#~ "\n"
-#~ "\n"
-#~ "When the configuration is over, X will be started (unless you\n"
-#~ "ask DrakX not to) so that you can check and see if the\n"
-#~ "settings suit you. If they don't, you can come back and\n"
-#~ "change them, as many times as necessary."
-#~ msgstr ""
-#~ "Ara cal configurar el sistema X Window, que és el nucli del GUI\n"
-#~ "(Interfķcie grąfica d'usuari) del GNU/Linux. Per a aixņ, heu de\n"
-#~ "configurar la vostra targeta grąfica i el monitor. No obstant\n"
-#~ "aixņ, la majoria d'aquests passos estan automatitzats, aixķ que pot\n"
-#~ "ser que la vostra feina es limiti a verificar quč s'ha fet i a\n"
-#~ "acceptar els parąmetres :)\n"
-#~ "\n"
-#~ "\n"
-#~ "Quan la configuració hagi acabat s'iniciarą X (tret que demaneu al\n"
-#~ "Drakx que no ho faci), i podreu verificar si els parąmetres us\n"
-#~ "convenen. Si no, podreu tornar enrere i canviar-los tantes vegades\n"
-#~ "com calgui."
-
-#~ msgid ""
-#~ "If something is wrong in X configuration, use these options to correctly\n"
-#~ "configure the X Window System."
-#~ msgstr ""
-#~ "Si hi ha algun problema a la configuració X, utilitzeu aquestes opcions\n"
-#~ "per configurar correctament l'X Window System."
-
-#~ msgid ""
-#~ "If you prefer to use a graphical login, select \"Yes\". Otherwise, "
-#~ "select\n"
-#~ "\"No\"."
-#~ msgstr ""
-#~ "Si preferiu utilitzar una entrada grąfica, seleccioneu \"Sķ\". En cas\n"
-#~ "contrari, seleccioneu \"No\"."
-
-#~ msgid ""
-#~ "You can choose a security level for your system. Please refer to the "
-#~ "manual for complete\n"
-#~ " information. Basically, if you don't know what to choose, keep the "
-#~ "default option.\n"
-#~ msgstr ""
-#~ "Podeu triar un nivell de seguretat per al vostre sistema. Si us plau,\n"
-#~ "consulteu el manual per obtenir informació completa. Bąsicament, si no\n"
-#~ "sabeu quč triar, conserveu l'opció per defecte.\n"
-
-#~ msgid ""
-#~ "Your system is going to reboot.\n"
-#~ "\n"
-#~ "After rebooting, your new Mandrake Linux system will load automatically.\n"
-#~ "If you want to boot into another existing operating system, please read\n"
-#~ "the additional instructions."
-#~ msgstr ""
-#~ "Ara, el sistema es tornarą a arrencar.\n"
-#~ "\n"
-#~ "Després d'aixņ, el sistema Mandrake Linux es carregarą\n"
-#~ "automąticament. Si voleu arrencar un altre sistema operatiu existent,\n"
-#~ "llegiu les instruccions addicionals."
-
-#~ msgid "Czech (Programmers)"
-#~ msgstr "Txec (Programadors)"
-
-#~ msgid "Slovakian (Programmers)"
-#~ msgstr "Eslovac (Programadors)"
-
-#~ msgid "Name of the profile to create:"
-#~ msgstr "Nom del perfil a crear:"
-
-#~ msgid "Write /etc/fstab"
-#~ msgstr "Escriu a /etc/fstab"
-
-#~ msgid "Format all"
-#~ msgstr "Formata-ho tot"
-
-#~ msgid "After formatting all partitions,"
-#~ msgstr "Després de formatar totes les particions,"
-
-#~ msgid "all data on these partitions will be lost"
-#~ msgstr "totes les dades d'aquestes particions s'hauran perdut"
-
-#~ msgid "Reload"
-#~ msgstr "Torna a carregar"
-
-#~ msgid ""
-#~ "Do you want to generate an auto install floppy for linux replication?"
-#~ msgstr ""
-#~ "Voleu generar un disquet d'instal·lació automątica per fer cņpies del "
-#~ "Linux?"
-
-#~ msgid "ADSL configuration"
-#~ msgstr "Configuració de l'ADSL"
-
-#~ msgid ""
-#~ "With a remote CUPS server, you do not have to configure\n"
-#~ "any printer here; printers will be automatically detected\n"
-#~ "unless you have a server on a different network; in the\n"
-#~ "latter case, you have to give the CUPS server IP address\n"
-#~ "and optionally the port number."
-#~ msgstr ""
-#~ "Amb un servidor CUPS remot, aquķ no us cal configurar cap\n"
-#~ "impressora; les impressores es detectaran automąticament,\n"
-#~ "tret que tingueu un servidor en una altra xarxa; en aquest\n"
-#~ "cas, heu d'indicar l'adreēa IP, i opcionalment el nśmero de\n"
-#~ "port, al servidor CUPS."
-
-#~ msgid "Remote queue"
-#~ msgstr "Cua remota"
-
-#, fuzzy
-#~ msgid "Remote queue name missing!"
-#~ msgstr "Cua remota"
-
-#, fuzzy
-#~ msgid "Command line"
-#~ msgstr "Nom de domini"
-
-#, fuzzy
-#~ msgid "Modify printer"
-#~ msgstr "Cap impressora"
-
-#~ msgid "Network Monitoring"
-#~ msgstr "Monitorització de la xarxa"
-
-#~ msgid "Profile "
-#~ msgstr "Perfil "
-
-#~ msgid "Statistics"
-#~ msgstr "Estadķstiques"
-
-#~ msgid "Sending Speed:"
-#~ msgstr "S'estą enviant la velocitat: "
-
-#~ msgid "Receiving Speed:"
-#~ msgstr "S'estą rebent la velocitat: "
-
-#, fuzzy
-#~ msgid "Connection Time: "
-#~ msgstr "Tipus de connexió: "
-
-#~ msgid "Connecting to Internet "
-#~ msgstr "S'estą establint la connexió a Internet"
-
-#~ msgid "Disconnecting from Internet "
-#~ msgstr "S'estą realitzant la desconnexió d'Internet"
-
-#~ msgid "Disconnection from Internet failed."
-#~ msgstr "No s'ha pogut realitzar la desconnexió d'Internet"
-
-#~ msgid "Disconnection from Internet complete."
-#~ msgstr "La desconnexió d'Internet ha finalitzat"
-
-#~ msgid "Connection complete."
-#~ msgstr "La connexió ha finalitzat."
-
-#~ msgid ""
-#~ "Connection failed.\n"
-#~ "Verify your configuration in the Mandrake Control Center."
-#~ msgstr ""
-#~ "No s'ha pogut establir la connexió.\n"
-#~ "Comproveu la configuració al Centre de control de Mandrake."
-
-#~ msgid "sent: "
-#~ msgstr "enviat: "
-
-#~ msgid "received: "
-#~ msgstr "rebut: "
-
-#, fuzzy
-#~ msgid "average"
-#~ msgstr "escombraries"
-
-#, fuzzy
-#~ msgid "Default Runlevel"
-#~ msgstr "Predeterminat"
-
-#~ msgid "NetWare"
-#~ msgstr "NetWare"
-
-#~ msgid "Config file content could not be interpreted."
-#~ msgstr "No s'ha pogut interpretar el contingut del fitxer de configuració."
-
-#~ msgid "Unrecognized config file"
-#~ msgstr "Fitxer de configuració no reconegut"
-
-#~ msgid "Adapter"
-#~ msgstr "Adaptador"
-
-#~ msgid "Disable network"
-#~ msgstr "Inhabilita el sistema de xarxa"
-
-#, fuzzy
-#~ msgid "Enable network"
-#~ msgstr "Inhabilita el sistema de xarxa"
-
-#~ msgid ""
-#~ "You can now test your mouse. Use buttons and wheel to verify\n"
-#~ "if settings are good. If not, you can click on \"Cancel\" to choose "
-#~ "another\n"
-#~ "driver."
-#~ msgstr ""
-#~ "Ara podeu provar el ratolķ. Utilitzeu els botons i la bola per comprovar "
-#~ "que\n"
-#~ "els parąmetres són correctes; si no ho són, feu clic a \"Cancel·la\" per\n"
-#~ "seleccionar un altre controlador."
-
-#~ msgid "DSL (or ADSL) connection"
-#~ msgstr "Connexió per DSL (o ADSL)"
-
-#, fuzzy
-#~ msgid "Choose"
-#~ msgstr "Tanca"
-
-#~ msgid "You can specify directly the URI to access the printer with CUPS."
-#~ msgstr ""
-#~ "Podeu indicar directament l'URI per accedir a la impressora amb CUPS."
-
-#~ msgid "Yes, print ASCII test page"
-#~ msgstr "Sķ, imprimeix una pągina ASCII de prova"
-
-#~ msgid "Yes, print PostScript test page"
-#~ msgstr "Sķ, imprimeix una pągina PostScript de prova"
-
-#~ msgid "Paper Size"
-#~ msgstr "Mida del paper"
-
-#~ msgid "Eject page after job?"
-#~ msgstr "Voleu expulsar la pągina després de la tasca?"
-
-#~ msgid "Uniprint driver options"
-#~ msgstr "Opcions del programa de control Uniprint"
-
-#~ msgid "Color depth options"
-#~ msgstr "Opcions de profunditat del color"
-
-#~ msgid "Print text as PostScript?"
-#~ msgstr "Voleu imprimir el text com a PostScript?"
-
-#~ msgid "Fix stair-stepping text?"
-#~ msgstr "Voleu ajustar el text 'stair-stepping'?"
-
-#~ msgid "Number of pages per output pages"
-#~ msgstr "Nombre de pągines per pągines de sortida"
-
-#~ msgid "Right/Left margins in points (1/72 of inch)"
-#~ msgstr "Marges dret/esquerra en punts (1/72 de polzada)"
-
-#~ msgid "Top/Bottom margins in points (1/72 of inch)"
-#~ msgstr "Marges superior/inferior en punts (1/72 de polzada)"
-
-#~ msgid "Extra GhostScript options"
-#~ msgstr "opcions addicionals del GhostScript"
-
-#~ msgid "Extra Text options"
-#~ msgstr "Opcions addicionals per al text"
-
-#~ msgid "Reverse page order"
-#~ msgstr "Inverteix l'ordre de les pągines"
-
-#~ msgid "Select Remote Printer Connection"
-#~ msgstr "Seleccioneu la connexió de la impressora remota"
-
-#~ msgid ""
-#~ "Every printer need a name (for example lp).\n"
-#~ "Other parameters such as the description of the printer or its location\n"
-#~ "can be defined. What name should be used for this printer and\n"
-#~ "how is the printer connected?"
-#~ msgstr ""
-#~ "Cada impressora necessita un nom (p.ex. lp).\n"
-#~ "Es poden definir altres parąmetres, com ara la descripció de la "
-#~ "impressora\n"
-#~ "o la seva ubicació. Quin nom cal utilitzar per a aquesta impressora, i "
-#~ "com\n"
-#~ "estą connectada?"
-
-#~ msgid ""
-#~ "Every print queue (which print jobs are directed to) needs a\n"
-#~ "name (often lp) and a spool directory associated with it. What\n"
-#~ "name and directory should be used for this queue and how is the printer "
-#~ "connected?"
-#~ msgstr ""
-#~ "Cada cua d'impressió (a quč s'adrecen les tasques d'impressió) necessita\n"
-#~ "un nom (sovint lp) i un directori d'spool associada amb ell. Quin nom i\n"
-#~ "directori cal utilitzar per a aquesta cua, i com estą connectada la "
-#~ "impressora?"
-
-#~ msgid "Name of queue"
-#~ msgstr "Nom de la cua"
-
-#~ msgid "Spool directory"
-#~ msgstr "Directori d'spool"
-
-#~ msgid "Disable"
-#~ msgstr "Inhabilita"
-
-#~ msgid "Enable"
-#~ msgstr "Habilita"
-
-#~ msgid ""
-#~ "To enable a more secure system, you should select \"Use shadow file\" "
-#~ "and\n"
-#~ "\"Use MD5 passwords\"."
-#~ msgstr ""
-#~ "Per habilitar un sistema més segur, seleccioneu \"Utilitza el\n"
-#~ "fitxer d'ombra\" i \"Utilitza les contrasenyes MD5\"."
-
-#~ msgid ""
-#~ "If your network uses NIS, select \"Use NIS\". If you don't know, ask "
-#~ "your\n"
-#~ "network administrator."
-#~ msgstr ""
-#~ "Si la vostra xarxa utilitza NIS, seleccioneu \"Utilitza NIS\". Si no ho\n"
-#~ "sabeu, consulteu a l'administrador de la xarxa."
-
-#~ msgid "yellow pages"
-#~ msgstr "pągines grogues"
-
-#, fuzzy
-#~ msgid "Light configuration"
-#~ msgstr "Configuració de la LAN"
-
-#~ msgid "Provider dns 1"
-#~ msgstr "DNS 1 del proveļdor"
-
-#~ msgid "Provider dns 2"
-#~ msgstr "DNS 2 del proveļdor"
-
-#~ msgid "How do you want to connect to the Internet?"
-#~ msgstr "Com us voleu connectar a Internet?"
-
-#~ msgid "cannot fork: "
-#~ msgstr "no es pot bifurcar: "
-
-#~ msgid "Configure..."
-#~ msgstr "Configura..."
-
-#~ msgid "Selected size %d%s"
-#~ msgstr "S'ha seleccionat la mida %d%s"
-
-#~ msgid "Opening your connection..."
-#~ msgstr "S'estą obrint la connexió..."
-
-#~ msgid "This startup script try to load your modules for your usb mouse."
-#~ msgstr "Aquest script d'inici intenta carregar els mņduls del ratolķ USB."
-
-#~ msgid "Configuration de Lilo/Grub"
-#~ msgstr "Configuració del LILO/Grub"
-
-#~ msgid "Boot style configuration"
-#~ msgstr "Configuració del tipus d'arrencada"
-
-#~ msgid ""
-#~ "Now that your Internet connection is configured,\n"
-#~ "your computer can be configured to share its Internet connection.\n"
-#~ "Note: you need a dedicated Network Adapter to set up a Local Area Network "
-#~ "(LAN).\n"
-#~ "\n"
-#~ "Would you like to setup the Internet Connection Sharing?\n"
-#~ msgstr ""
-#~ "Ara que ja teniu configurada la connexió a Internet,\n"
-#~ "podeu configurar l'ordinador per tal que la comparteixi.\n"
-#~ "Nota: per configurar una xarxa d'ąrea local (LAN), us cal un adaptador de "
-#~ "xarxa dedicat.\n"
-#~ "\n"
-#~ "Voleu configurar la connexió a Internet compartida?\n"
-
-#~ msgid "Welcome to the Internet Connection Sharing utility!"
-#~ msgstr "Benvingut a la utilitat de compartició de la connexió a Internet!"
-
-#~ msgid "Automatic dependencies"
-#~ msgstr "Dependčncies automątiques"
-
-#~ msgid "Configure LILO/GRUB"
-#~ msgstr "Configura el LILO/GRUB"
-
-#~ msgid "Create a boot floppy"
-#~ msgstr "Crea un disquet d'arrencada"
-
-#~ msgid "Choice"
-#~ msgstr "Elecció"
-
-#~ msgid "horizontal nice looking aurora"
-#~ msgstr "aurora horitzontal amb bon aspecte"
-
-#~ msgid "vertical traditional aurora"
-#~ msgstr "aurora vertical tradicional"
-
-#~ msgid "gMonitor"
-#~ msgstr "gMonitor"
-
-#~ msgid ""
-#~ "You can now select some miscellaneous options for your system.\n"
-#~ "\n"
-#~ "* Use hard drive optimizations: this option can improve hard disk "
-#~ "performance but is only for advanced users. Some buggy\n"
-#~ " chipsets can ruin your data, so beware. Note that the kernel has a "
-#~ "builtin blacklist of drives and chipsets, but if\n"
-#~ " you want to avoid bad surprises, leave this option unset.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Choose security level: you can choose a security level for your system. "
-#~ "Please refer to the manual for complete\n"
-#~ " information. Basically, if you don't know what to choose, keep the "
-#~ "default option.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Precise RAM if needed: unfortunately, there is no standard method to "
-#~ "ask the BIOS about the amount of RAM present in\n"
-#~ " your computer. As consequence, Linux may fail to detect your amount of "
-#~ "RAM correctly. If this is the case, you can\n"
-#~ " specify the correct amount or RAM here. Please note that a difference "
-#~ "of 2 or 4 MB between detected memory and memory\n"
-#~ " present in your system is normal.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Removable media automounting: if you would prefer not to manually mount "
-#~ "removable media (CD-Rom, floppy, Zip, etc.) by\n"
-#~ " typing \"mount\" and \"umount\", select this option.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Clean \"/tmp\" at each boot: if you want delete all files and "
-#~ "directories stored in \"/tmp\" when you boot your system,\n"
-#~ " select this option.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Enable num lock at startup: if you want NumLock key enabled after "
-#~ "booting, select this option. Please note that you\n"
-#~ " should not enable this option on laptops and that NumLock may or may "
-#~ "not work under X."
-#~ msgstr ""
-#~ "Ara podeu seleccionar diverses opcions per al vostre sistema.\n"
-#~ "\n"
-#~ "* Utilització de l'optimització del disc dur: Aquesta opció pot millorar "
-#~ "el\n"
-#~ "rendiment del disc dur, perņ és només per a usuaris avanēats. Alguns "
-#~ "xips\n"
-#~ "amb errors poden fer malbé les vostres dades, aixķ que aneu amb compte. "
-#~ "El\n"
-#~ "nucli inclou una \"llista negra\" d'unitats i jocs de xips, perņ, si "
-#~ "voleu\n"
-#~ "evitar-vos sorpreses desagradables, no activeu aquesta opció.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Selecció d'un nivell de seguretat: Podeu escollir un nivell de\n"
-#~ "seguretat per al sistema. Si us plau, consulteu el manual per a més\n"
-#~ "informació. Bąsicament, si no n'esteu segur, trieu l'opció "
-#~ "predeterminada.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Si cal, indicació de la mida exacta de la RAM: malauradament, no hi "
-#~ "cap\n"
-#~ "mčtode estąndard per preguntar al BIOS la quantitat de RAM que hi ha a\n"
-#~ "l'ordinador. Per tant, és possible que el Linux no pugui detectar\n"
-#~ "correctament la quantitat de RAM instal·lada. Si és aquest el cas, en "
-#~ "podeu\n"
-#~ "indicar aquķ la quantitat correcta, perņ penseu que una diferčncia de 2 o "
-#~ "4\n"
-#~ "MB entre la memņria detectada i la memņria real és normal.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Muntatge automątic de suports extraļbles: Si preferiu no haver\n"
-#~ "de muntar manualment les unitats extraļbles (CD-ROM, disquet, Zip)\n"
-#~ "escrivint \"mount\" i \"umount\", seleccioneu aquesta opció.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Neteja de \"/tmp\" en cada arrencada: si voleu suprimir tots els "
-#~ "fitxers\n"
-#~ "i directoris que hi ha emmagatzemats a \"/tmp\" quan arranqueu el "
-#~ "sistema,\n"
-#~ "seleccioneu aquesta opció.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Habilitació de BlocNum a l'inici: Si voleu que BlocNum s'habiliti "
-#~ "després\n"
-#~ "de l'arrencada, seleccioneu aquesta opció. Tingueu en compte que no heu\n"
-#~ "d'habilitar aquesta opció en portątils i que BlocNum pot funcionar o pot "
-#~ "no\n"
-#~ "funcionar sota X."
-
-#~ msgid "Sorry, the mail configuration is not yet implemented. Be patient."
-#~ msgstr ""
-#~ "Si us plau, tingueu pacičncia; la configuració del correu encara no estą "
-#~ "implementada."
-
-#~ msgid ""
-#~ "Welcome to The Network Configuration Wizard.\n"
-#~ "Which components do you want to configure?\n"
-#~ msgstr ""
-#~ "Benvingut a l'Auxiliar de configuració de la xarxa.\n"
-#~ "Quins components voleu configurar?\n"
-
-#~ msgid "Internet/Network access"
-#~ msgstr "Accés a Internet/xarxa"
-
-#~ msgid "Miscellaneous"
-#~ msgstr "Miscel·ląnia"
-
-#~ msgid "Miscellaneous questions"
-#~ msgstr "Preguntes diverses"
-
-#~ msgid "Can't use supermount in high security level"
-#~ msgstr "No es pot utilitzar supermount en un nivell d'alta seguretat"
-
-#~ msgid ""
-#~ "beware: IN THIS SECURITY LEVEL, ROOT LOGIN AT CONSOLE IS NOT ALLOWED!\n"
-#~ "If you want to be root, you have to login as a user and then use \"su\".\n"
-#~ "More generally, do not expect to use your machine for anything but as a "
-#~ "server.\n"
-#~ "You have been warned."
-#~ msgstr ""
-#~ "Atenció: EN AQUEST NIVELL DE SEGURETAT NO ES POT ENTRAR COM A ROOT A LA "
-#~ "CONSOLA!\n"
-#~ "Si voleu ser root, heu d'entrar com a usuari i aleshores utilitzar \"su"
-#~ "\".\n"
-#~ "En general, no espereu utilitzar l'ordinador per a altre cosa que com a "
-#~ "servidor.\n"
-#~ "Esteu avisat."
-
-#~ msgid ""
-#~ "Be carefull, having numlock enabled causes a lot of keystrokes to\n"
-#~ "give digits instead of normal letters (eg: pressing `p' gives `6')"
-#~ msgstr ""
-#~ "Aneu amb compte; si teniu BlocNśm habilitat, moltes tecles donaran\n"
-#~ "nśmeros en comptes de lletres (p.ex., si premeu la `p' obtindreu un `6')"
-
-#~ msgid "not connected"
-#~ msgstr "sense connexió"
-
-#~ msgid "Scientific applications"
-#~ msgstr "Aplicacions cientķfiques"
-
-#~ msgid "File/Print/Samba"
-#~ msgstr "Servidor, Fitxer/Impressió/Samba"
-
-#~ msgid "DNS/DHCP "
-#~ msgstr "Servidor, DNS/DHCP "
-
-#~ msgid "First DNS Server"
-#~ msgstr "Servidor DNS primari"
-
-#~ msgid "Second DNS Server"
-#~ msgstr "Servidor DNS secundari"
-
-#~ msgid "using module"
-#~ msgstr "s'estą utilitzant el mņdul"
-
-#~ msgid "Development, Database"
-#~ msgstr "Desenvolupament, base de dades"
-
-#~ msgid "Development, Integrated Environment"
-#~ msgstr "Desenvolupament, entorn integrat"
-
-#~ msgid "Development, Standard tools"
-#~ msgstr "Desenvolupament, eines estąndard"
-
-#~ msgid ""
-#~ "\n"
-#~ "Warning:\n"
-#~ "Applying the changes while running may crash your X environnement."
-#~ msgstr ""
-#~ "\n"
-#~ "Avķs:\n"
-#~ "Si apliquu els canvis durant l'execució, és possible que l'entorn X "
-#~ "caigui."
-
-#~ msgid ""
-#~ "\n"
-#~ "If you continue, I will shut down your %s environnement"
-#~ msgstr ""
-#~ "\n"
-#~ "Si continueu, tancaré l'entorn %s"
-
-#~ msgid "loopback"
-#~ msgstr "loopback"
-
-#~ msgid "Which bootloader(s) do you want to use?"
-#~ msgstr "Quin(s) carregador(s) d'arrencada voleu utilitzar?"
-
-#~ msgid "Auto install floppy"
-#~ msgstr "Disquet d'instal·lació automątica"
-
-#~ msgid "Try to find a modem?"
-#~ msgstr "Voleu que intenti trobar un mņdem?"
-
-#~ msgid "Configure an ISDN connection"
-#~ msgstr "Configura una connexió per XDSI"
-
-#~ msgid "Disable Internet Connection"
-#~ msgstr "Inhabilita la connexió a Internet"
-
-#~ msgid "Configure local network"
-#~ msgstr "Configura la xarxa local"
-
-#~ msgid "Configure the Internet connection / Configure local Network"
-#~ msgstr "Configura la connexió a Internet / Configura la xarxa local"
-
-#~ msgid ""
-#~ "Local networking has already been configured.\n"
-#~ "Do you want to:"
-#~ msgstr ""
-#~ "La xarxa local ja s'ha configurat.\n"
-#~ "Voleu:"
-
-#~ msgid "Graphics Manipulation"
-#~ msgstr "Manipulació de grąfics"
-
-#~ msgid "Sciences"
-#~ msgstr "Cičncies"
-
-#~ msgid ""
-#~ "Chat (IRC or instant messaging) programs such as xchat, licq, gaim, and "
-#~ "file transfer tools"
-#~ msgstr ""
-#~ "Programes de xat (IRC o missatgeria instantąnia) com ara xchat, licq, "
-#~ "gaim, i eines de transferčncia de fitxers"
-
-#~ msgid "Communication facilities"
-#~ msgstr "Instal·lacions de comunicació"
-
-#~ msgid "KDE"
-#~ msgstr "KDE"
-
-#~ msgid "Gnome"
-#~ msgstr "Gnome"
-
-#~ msgid "Internet Tools"
-#~ msgstr "Eines d'Internet"
-
-#~ msgid "Databases clients and servers (mysql and postgresql)"
-#~ msgstr "Clients de bases de dades i servidors (mysql i postgresql)"
-
-#~ msgid "Development C/C++"
-#~ msgstr "Desenvolupament C/C++"
-
-#~ msgid "Configure timezone"
-#~ msgstr "Zona horąria"
-
-#~ msgid "(may cause data corruption)"
-#~ msgstr "(pot malmetre les dades)"
-
-#~ msgid "Enable num lock at startup"
-#~ msgstr "Habilita la tecla Bloc Num en iniciar"
-
-#~ msgid "Confirm Password"
-#~ msgstr "Confirmeu la contrasenya"
-
-#~ msgid "default"
-#~ msgstr "predeterminat"
-
-#~ msgid "What is your system used for?"
-#~ msgstr "Amb quina finalitat utilitzeu el sistema?"
-
-#~ msgid "Select the size you want to install"
-#~ msgstr "Seleccioneu la mida que voleu instal·lar"
-
-#~ msgid "Use diskdrake"
-#~ msgstr "Utilitza el diskdrake"
-
-#~ msgid "Customized"
-#~ msgstr "Personalitzada"
-
-#~ msgid ""
-#~ "Are you sure you are an expert? \n"
-#~ "You will be allowed to make powerful but dangerous things here.\n"
-#~ "\n"
-#~ "You will be asked questions such as: ``Use shadow file for passwords?'',\n"
-#~ "are you ready to answer that kind of questions?"
-#~ msgstr ""
-#~ "Esteu segur que sou un expert? \n"
-#~ "Aquķ podreu fer coses molt potents, perņ també perilloses.\n"
-#~ "\n"
-#~ "Us preguntaran coses com: ``Voleu utilitzar un fitxer d'ombres per a les "
-#~ "contrasenyes?'',\n"
-#~ "Sou capaē de respondre aquest tipus de preguntes?"
-
-#~ msgid "Use shadow file"
-#~ msgstr "Utilitza el fitxer d'ombra"
-
-#~ msgid "MD5"
-#~ msgstr "MD5"
-
-#~ msgid "Use MD5 passwords"
-#~ msgstr "Utilitza les contrasenyes MD5"
-
-#~ msgid "Search"
-#~ msgstr "Cerca"
-
-#~ msgid "Package"
-#~ msgstr "Paquet"
-
-#~ msgid "Tree"
-#~ msgstr "Arbre"
-
-#~ msgid "Sort by"
-#~ msgstr "Ordena per"
-
-#~ msgid "Category"
-#~ msgstr "Categoria"
-
-#~ msgid "Installed packages"
-#~ msgstr "Paquets instal·lats"
-
-#~ msgid "Available packages"
-#~ msgstr "Paquets disponibles"
-
-#~ msgid "Show only leaves"
-#~ msgstr "Mostra només les fulles"
-
-#~ msgid "Expand all"
-#~ msgstr "Expandeix-ho tot"
-
-#~ msgid "Collapse all"
-#~ msgstr "Redueix-ho tot"
-
-#~ msgid "Add location of packages"
-#~ msgstr "Afegeix la ubicació dels paquets"
-
-#~ msgid "Update location"
-#~ msgstr "Actualitza la ubicació"
-
-#~ msgid "Find Package"
-#~ msgstr "Cerca el paquet"
-
-#~ msgid "Find Package containing file"
-#~ msgstr "Cerca el paquet que conté el fitxer"
-
-#~ msgid "Toggle between Installed and Available"
-#~ msgstr "Commuta entre Instal·lats i Disponibles"
-
-#~ msgid "Checking dependencies"
-#~ msgstr "S'estan comprovant les dependčncies"
-
-#~ msgid "The following packages are going to be uninstalled"
-#~ msgstr "Ara es desinstal·laran els paquets següents"
-
-#~ msgid "Regexp"
-#~ msgstr "Regexp"
-
-#~ msgid "Which package are looking for"
-#~ msgstr "Quin paquet esteu cercant"
-
-#~ msgid "No match"
-#~ msgstr "Cap coincidčncia"
-
-#~ msgid "No more match"
-#~ msgstr "Cap altra coincidčncia"
-
-#~ msgid ""
-#~ "rpmdrake is currently in ``low memory'' mode.\n"
-#~ "I'm going to relaunch rpmdrake to allow searching files"
-#~ msgstr ""
-#~ "Actualment, l'rpmdrake estą en el mode ``poca memņria''.\n"
-#~ "Ara tornaré a reiniciar l'rpmdrake per permetre la recerca de fitxers"
-
-#~ msgid "Which file are you looking for?"
-#~ msgstr "Quin fitxer esteu cercant?"
-
-#~ msgid "What are looking for?"
-#~ msgstr "Quč esteu cercant?"
-
-#~ msgid "Give a name (eg: `extra', `commercial')"
-#~ msgstr "Introduļu un nom (p.ex. `extra', `comercial')"
-
-#~ msgid "Directory"
-#~ msgstr "Directori"
-
-#~ msgid "No cdrom available (nothing in /mnt/cdrom)"
-#~ msgstr "No hi ha cap CD-ROM disponible (no hi ha res a /mnt/cdrom)"
-
-#~ msgid "URL of the directory containing the RPMs"
-#~ msgstr "L'URL del directori que conté els RPM"
-
-#~ msgid ""
-#~ "For FTP and HTTP, you need to give the location for hdlist\n"
-#~ "It must be relative to the URL above"
-#~ msgstr ""
-#~ "Per a FTP i HTTP, us cal introduir la ubicació de hdlist\n"
-#~ "Ha de ser relativa a l'URL superior"
-
-#~ msgid "Please submit the following information"
-#~ msgstr "Si us plau, trameteu la informació següent"
-
-#~ msgid "%s is already in use"
-#~ msgstr "%s ja és en śs"
-
-#~ msgid "Updating the RPMs base"
-#~ msgstr "S'estą actualitzant la base dels RPM"
-
-#~ msgid "Going to remove entry %s"
-#~ msgstr "Ara s'eliminarą l'entrada %s"
-
-#~ msgid "Finding leaves"
-#~ msgstr "S'estan cercant les fulles"
-
-#~ msgid "Finding leaves takes some time"
-#~ msgstr "Cal una mica de temps per cercar les fulles"
-
-#~ msgid "I have found an ISDN Card:\n"
-#~ msgstr "He trobat una targeta XDSI:\n"
-
-#~ msgid "Other countries"
-#~ msgstr "Altres paļsos"
-
-#~ msgid "In which country are you located ?"
-#~ msgstr "A quin paķs us trobeu?"
-
-#~ msgid "Alcatel modem"
-#~ msgstr "Mņdem Alcatel"
-
-#~ msgid "ECI modem"
-#~ msgstr "Mņdem ECI"
-
-#~ msgid ""
-#~ "If your adsl modem is an Alcatel one, choose Alcatel. Otherwise, ECI."
-#~ msgstr ""
-#~ "Si el vostre mņdem adsl és un mņdem Alcatel, seleccioneu Alcatel. Si no, "
-#~ "ECI."
-
-#~ msgid "don't use pppoe"
-#~ msgstr "no utilitzis pppoe"
-
-#~ msgid "i18n (important)"
-#~ msgstr "i18n (important)"
-
-#~ msgid "i18n (very nice)"
-#~ msgstr "i18n (molt bonic)"
-
-#~ msgid "i18n (nice)"
-#~ msgstr "i18n (bonic)"
-
-#~ msgid "Which serial port is your mouse connected to?"
-#~ msgstr "A quin port sčrie estą connectat el vostre ratolķ?"
-
-#~ msgid "KDE, QT, Gnome, GTK+"
-#~ msgstr "KDE, QT, Gnome, GTK+"
-
-#~ msgid "Python, Perl, libraries, tools"
-#~ msgstr "Python, Perl, biblioteques, eines"
-
-#~ msgid "Czech"
-#~ msgstr "Txec"
-
-#~ msgid "Slovakian"
-#~ msgstr "Eslovac"
-
-#~ msgid "Could not install ipchains RPM with urpmi."
-#~ msgstr "No s'ha pogut instal·lar el RPM d'ipchains amb l'urpmi."
-
-#~ msgid "Could not install dhcp RPM with urpmi."
-#~ msgstr "No s'ha pogut instal·lar el RPM de dhcp amb l'urpmi."
-
-#~ msgid "Could not install linuxconf RPM with urpmi."
-#~ msgstr "No s'ha pogut instal·lar el RPM de linuxconf amb l'urpmi."
-
-#~ msgid "Could not install bind RPM with urpmi."
-#~ msgstr "No s'ha pogut instal·lar el RPM de bind amb l'urpmi."
-
-#~ msgid "Could not install caching-nameserver RPM with urpmi."
-#~ msgstr "No s'ha pogut instal·lar el RPM de caching-nameserver amb l'urpmi"
-
-#~ msgid "Reconfigure local network"
-#~ msgstr "Torna a configurar la xarxa local"
-
-#~ msgid ""
-#~ " Introduction\n"
-#~ "\n"
-#~ "The operating system and the different components available in the "
-#~ "Mandrake Linux distribution \n"
-#~ "shall be called the \"Software Products\" hereafter. The Software "
-#~ "Products include, but are not \n"
-#~ "restricted to, the set of programs, methods, rules and documentation "
-#~ "related to the operating \n"
-#~ "system and the different components of the Mandrake Linux distribution.\n"
-#~ "\n"
-#~ "\n"
-#~ "1. License Agreement\n"
-#~ "\n"
-#~ "Please read carefully this document. This document is a license agreement "
-#~ "between you and \n"
-#~ "MandrakeSoft S.A., 43, rue d'Aboukir, 75002 Paris - France, which applies "
-#~ "to the Software Products.\n"
-#~ "By installing, duplicating or using the Software Products in any manner, "
-#~ "you explicitly \n"
-#~ "accept and fully agree to conform to the terms and conditions of this "
-#~ "License. \n"
-#~ "If you disagree with any portion of the License, you are not allowed to "
-#~ "install, duplicate or use \n"
-#~ "the Software Products. \n"
-#~ "Any attempt to install, duplicate or use the Software Products in a "
-#~ "manner which does not comply \n"
-#~ "with the terms and conditions of this License is void and will terminate "
-#~ "your rights under this \n"
-#~ "License. Upon termination of the License, you must immediately destroy "
-#~ "all copies of the \n"
-#~ "Software Products.\n"
-#~ "\n"
-#~ "\n"
-#~ "2. The GPL License and Related Licenses\n"
-#~ "\n"
-#~ "The Software Products consist of components created by different persons "
-#~ "or entities. Most \n"
-#~ "of these components are governed under the terms and conditions of the "
-#~ "GNU General Public \n"
-#~ "Licence, hereafter called \"GPL\", or of similar licenses. Most of these "
-#~ "licenses allow you to use, \n"
-#~ "duplicate, adapt or redistribute the components which they cover. Please "
-#~ "read carefully the terms \n"
-#~ "and conditions of the license agreement for each component before using "
-#~ "any component. Any question \n"
-#~ "on a component license should be addressed to the component author and "
-#~ "not to MandrakeSoft.\n"
-#~ "The programs developed by MandrakeSoft S.A. are governed by the GPL "
-#~ "License. Documentation written \n"
-#~ "by MandrakeSoft S.A. is governed by a specific license. Please refer to "
-#~ "the documentation for \n"
-#~ "further details.\n"
-#~ "Some versions of the Software Products may contain components which are "
-#~ "not governed by the GPL \n"
-#~ "License or similar agreements. Each such component is then governed by "
-#~ "the terms and conditions \n"
-#~ "of its own specific license. Please read carefully and comply with such "
-#~ "specific licenses before \n"
-#~ "you install, use or redistribute the said components. Such licenses will "
-#~ "in general prevent the \n"
-#~ "transfer, duplication (except for backup purposes), redistribution, "
-#~ "reverse engineering, \n"
-#~ "de-assembly, \n"
-#~ "de-compilation or modification of the component. Any breach of agreement "
-#~ "will immediately terminate \n"
-#~ "your rights under the specific license. Unless the specific license terms "
-#~ "grant you such rights, \n"
-#~ "you usually cannot install the programs on more than one system, or adapt "
-#~ "it to be used on a \n"
-#~ "network. \n"
-#~ "In doubt, please contact directly the distributor or editor of the "
-#~ "component. Transfer to third \n"
-#~ "parties or copying of such components including the documentation is "
-#~ "usually forbidden.\n"
-#~ "\n"
-#~ "\n"
-#~ "3. Intellectual Property Rights\n"
-#~ "\n"
-#~ "All rights to the components of the Software Products belong to their "
-#~ "respective authors and are \n"
-#~ "protected by intellectual property and copyright laws applicable to "
-#~ "software programs.\n"
-#~ "MandrakeSoft S.A. reserves its rights to modify or adapt the Software "
-#~ "Products, as a whole or in \n"
-#~ "parts,\n"
-#~ "by all means and for all purposes.\n"
-#~ "\"Mandrake\", \"Mandrake Linux\" and associated logos are trademarks of "
-#~ "MandrakeSoft S.A. All rights \n"
-#~ "are \n"
-#~ "reserved. The duplication is forbidden without prior written consent by "
-#~ "MandrakeSoft S.A.\n"
-#~ "\n"
-#~ "\n"
-#~ "4. Limited Warranty\n"
-#~ "\n"
-#~ "The Software Products and attached documentation are provided \"as is\", "
-#~ "with no warranty, to the \n"
-#~ "extent permitted by law. Should the Software Products be defective, "
-#~ "MandrakeSoft S.A. will at its \n"
-#~ "own will either replace the Software Products, or reimburse the paid "
-#~ "fee.\n"
-#~ "This limited warranty is void if you fail to comply to the "
-#~ "recommendations, instructions and \n"
-#~ "conditions \n"
-#~ "of use listed in the documentation or license agreements of the Software "
-#~ "Products.\n"
-#~ "To the extent permitted by law, MandrakeSoft S.A. will in no "
-#~ "circumstances be liable for any \n"
-#~ "special, \n"
-#~ "incidental, direct or indirect damages whatsoever (including without "
-#~ "limitation damages for loss of \n"
-#~ "business, interruption of business, financial loss, legal fees and "
-#~ "penalties resulting from a court \n"
-#~ "judgement, or any other consequential loss) arising out of the use or "
-#~ "inability to use the \n"
-#~ "Software \n"
-#~ "Products, even if MandrakeSoft S.A. has been advised of the possibility "
-#~ "or occurance of such \n"
-#~ "damages.\n"
-#~ "\n"
-#~ "LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN "
-#~ "SOME COUNTRIES\n"
-#~ "\n"
-#~ "To the extent permitted by law, MandrakeSoft S.A. or its distributors "
-#~ "will, in no circumstances, be \n"
-#~ "liable for any special, incidental, direct or indirect damages whatsoever "
-#~ "(including without \n"
-#~ "limitation \n"
-#~ "damages for loss of business, interruption of business, financial loss, "
-#~ "legal fees and penalties \n"
-#~ "resulting from a court judgement, or any other consequential loss) "
-#~ "arising out of the possession \n"
-#~ "and \n"
-#~ "use of software components or arising out of downloading software "
-#~ "components from one of \n"
-#~ "Mandrake Linux \n"
-#~ "sites which are prohibited or restricted in some countries by local "
-#~ "laws. This limited liability \n"
-#~ "applies to, but is not restricted to, the strong cryptography components "
-#~ "included in the Software \n"
-#~ "Products.\n"
-#~ "\n"
-#~ "\n"
-#~ "5. Governing Laws \n"
-#~ "\n"
-#~ "If any portion of this agreement is held void, illegal or inapplicable by "
-#~ "a court judgement, this \n"
-#~ "portion is excluded from this contract. You remain bound by the other "
-#~ "applicable sections of the \n"
-#~ "agreement.\n"
-#~ "The terms and conditions of this License are governed by the Laws of "
-#~ "France.\n"
-#~ "All disputes on the terms of this license will preferably be settled out "
-#~ "of court. As a last \n"
-#~ "resort, \n"
-#~ "the dispute will be referred to the appropriate Courts of Law of Paris - "
-#~ "France.\n"
-#~ "For any question on this document, please contact MandrakeSoft S.A., \n"
-#~ "43, rue d'Aboukir, 75002 Paris - France\n"
-#~ msgstr ""
-#~ " Introducció\n"
-#~ "\n"
-#~ "D'ara endavant, el sistema operatiu i els diferents components que "
-#~ "s'inclouen\n"
-#~ "a la distribució Mandrake Linux s'anomenaran els \"Productes de programari"
-#~ "\".\n"
-#~ "Els Productes de programari inclouen, perņ no es limiten a, el conjunt "
-#~ "de\n"
-#~ "programes, mčtodes, regles i documentació relativa al sistema operatiu i "
-#~ "als\n"
-#~ "diferents components de la distribució Mandrake Linux.\n"
-#~ "\n"
-#~ "\n"
-#~ "1. Acord de Llicčncia\n"
-#~ "\n"
-#~ "Si us plau, llegiu aquest document atentament. Aquest document és un "
-#~ "acord\n"
-#~ "de llicčncia entre vós i MandrakeSoft S.A., 43, rue d'Aboukir, 75002 "
-#~ "Parķs,\n"
-#~ "Franēa, que s'aplica als Productes de programari.\n"
-#~ "Pel fet d'instal·lar, duplicar o utilitzar els Productes de programari, "
-#~ "en \n"
-#~ "qualsevol manera, accepteu i esteu totalment d'acord, de manera "
-#~ "explķcita, en\n"
-#~ "sometre-us als termes i condicions d'aquesta Llicčncia. Si no esteu "
-#~ "d'acord amb\n"
-#~ "qualsevol part d'aquesta Llicčncia, no esteu autoritzat a instal·lar, "
-#~ "duplicar\n"
-#~ "ni utilitzar els Productes de programari. Qualsevol intent d'instal·lar,\n"
-#~ "duplicar o utilitzar els Productes de programari d'una manera no conforme "
-#~ "als\n"
-#~ "termes i condicions d'aquesta Llicčncia és invąlid i conclourą els "
-#~ "vostres\n"
-#~ "drets sota aquesta Llicčncia. En concloure la Llicčncia, heu de destruir\n"
-#~ "immediatament totes les cņpies dels Productes de programari.\n"
-#~ "\n"
-#~ "\n"
-#~ "2. la Llicčncia GPL i Llicčncies relacionades\n"
-#~ "\n"
-#~ "Els Productes de programari són components creats per diferents persones "
-#~ "o\n"
-#~ "entitats. La majoria d'aquests components estan coberts pels termes i\n"
-#~ "condicions de la Llicčncia General Pśblica de GNU (d'ara endavant \"GPL"
-#~ "\"), o\n"
-#~ "de llicčncies similars. La majoria d'aquestes llicčncies us permeten "
-#~ "utilitzar,\n"
-#~ "duplicar, adaptar o redistribuir els components que cobreixen. Si us "
-#~ "plau,\n"
-#~ "llegiu atentament els termes i condicions de l'acord de llicčncia de "
-#~ "cada\n"
-#~ "component abans d'utilitzar-lo. Qualsevol pregunta sobre un component "
-#~ "s'ha\n"
-#~ "d'adreēar al seu autor i no a MandrakeSoft. Els programes desenvolupats "
-#~ "per\n"
-#~ "MandrakeSoft S.A. estan coberts per la Llicčncia GPL. La documentació "
-#~ "escrita\n"
-#~ "per MandrakeSoft S.A. estą coberta per una llicčncia especķfica. Si us "
-#~ "plau,\n"
-#~ "consulteu la documentació per a més informació. Algunes versions dels "
-#~ "Productes\n"
-#~ "de programari poden incloure components que no estiguin coberts per la\n"
-#~ "Llicčncia GPL o llicčncies similars; en aquest cas, cada un d'aquests\n"
-#~ "components estarą cobert pels termes i condicions de la seva prņpia "
-#~ "llicčncia\n"
-#~ "especķfica. Si us plau, llegiu atentament i respecteu aquestes "
-#~ "llicčncies\n"
-#~ "especķfiques abans d'instal·lar, utilitzar o redistribuir els components\n"
-#~ "esmentats. En general, aquestes llicčncies impediran la transferčncia,\n"
-#~ "duplicació (excepte amb la finalitat de fer cņpies de seguretat),\n"
-#~ "redistribució, enginyeria inversa, desensamblatge, decompilació o "
-#~ "modificació\n"
-#~ "del component. Qualsevol ruptura de l'acord conclourą immediatament els "
-#~ "vostres\n"
-#~ "drets sota la llicčncia especķfica. Tret que els termes de la llicčncia\n"
-#~ "especķfica us ho autoritzin, normalment no podreu instal·lar els "
-#~ "programes en\n"
-#~ "més d'un sistema ni adaptar-lo per al seu śs en xarxa. Si hi teniu "
-#~ "dubtes,\n"
-#~ "poseu-vos en contacte directament amb el distribuļdor o editor del "
-#~ "component.\n"
-#~ "Normalment, estą prohibida la transferčncia a terceres parts i la cņpia\n"
-#~ "d'aquests components, incloent la documentació.\n"
-#~ "\n"
-#~ "\n"
-#~ "3. Drets de propietat intel·lectual\n"
-#~ "\n"
-#~ "Tots els drets dels components dels Productes de programari pertanyen als "
-#~ "seus\n"
-#~ "autors respectius i estan protegits per la propietat intel·lectual i les "
-#~ "lleis\n"
-#~ "de copyright aplicables al programari. MandrakeSoft S.A. es reserva els "
-#~ "drets\n"
-#~ "de modificar o adaptar els Productes de programari, ja sigui parcialment "
-#~ "o\n"
-#~ "totalment, per tots els mitjans i per a totes les finalitats. \"Mandrake"
-#~ "\",\n"
-#~ "\"Mandrake Linux\" i els logotips associats son marques registrades de\n"
-#~ "MandrakeSoft S.A. Tots els drets reservats. Es prohibeix la duplicació "
-#~ "sense\n"
-#~ "consentiment previ per escrit de MandrakeSoft S.A.\n"
-#~ "\n"
-#~ "\n"
-#~ "4. Garantia limitada\n"
-#~ "\n"
-#~ "Els Productes de programari i la documentació que s'hi adjunta es "
-#~ "subministren\n"
-#~ "\"tal com són\", sense cap garantia, fins al punt permčs per la llei. En "
-#~ "cas\n"
-#~ "que els Productes de programari siguin defectuosos, MandrakeSoft S.A., a\n"
-#~ "criteri seu, decidirą si reemplaēa els Productes de programari o si en\n"
-#~ "reemborsa el preu pagat. Aquesta garantia limitada és nul·la si no "
-#~ "compliu les\n"
-#~ "recomanacions, instruccions i condicions d'śs que s'indiquen a la "
-#~ "documentació\n"
-#~ "o als acords de llicčncia dels Productes de programari. Fins al punt "
-#~ "permčs per\n"
-#~ "la llei, MandrakeSoft S.A. no serą, en cap circumstąncia, responsable de "
-#~ "cap\n"
-#~ "dany especial, incidental, directe o indirecte (incloent, perņ sense "
-#~ "limitar-se\n"
-#~ "a, danys per pčrdua de negocis, interrupció de negocis, pčrdues "
-#~ "financeres,\n"
-#~ "honoraris i multes legals que resultin per un judici i qualsevol altre "
-#~ "pčrdua\n"
-#~ "important) que resulti de l'śs o impossibilitat d'utilitzar els Productes "
-#~ "de\n"
-#~ "programari, fins i tot si s'ha notificat a MandrakeSoft S.A. la "
-#~ "possibilitat de\n"
-#~ "que es produeixin aquests danys.\n"
-#~ "\n"
-#~ "RESPONSABILITAT LIMITADA LLIGADA A LA POSESSIÓ O UTILITZACIÓ DE "
-#~ "PROGRAMARI PROHIBIT EN ALGUNES PAĻSOS\n"
-#~ "\n"
-#~ "Fins al put permčs per la llei, MandrakeSoft S.A. i els seus "
-#~ "distribuļdors no\n"
-#~ "seran, sota cap circumstąncia, responsables de cap dany especial, "
-#~ "incidental,\n"
-#~ "directe o indirecte (incloent, perņ sense limitar-se a, danys per pčrdua "
-#~ "de\n"
-#~ "negocis, interrupció de negocis, pčrdues financeres, honoraris i multes "
-#~ "legals\n"
-#~ "que resultin per un judici i qualsevol altre pčrdua important) que "
-#~ "resultin de\n"
-#~ "la possessió i śs de components de programari o de la descąrrega de "
-#~ "components\n"
-#~ "de programari d'algun dels llocs web de Mandrake Linux que estiguin "
-#~ "prohibits o\n"
-#~ "restringits en alguns paļsos per lleis locals. Aquesta responsabilitat "
-#~ "limitada\n"
-#~ "s'aplica, perņ no estą restringida a, els potents components de "
-#~ "criptografia\n"
-#~ "inclosos en els Productes de programari.\n"
-#~ "\n"
-#~ "\n"
-#~ "5. Lleis aplicables \n"
-#~ "\n"
-#~ "Si qualsevol part d'aquest acord és declarat nul, il·legal o inaplicable "
-#~ "en un\n"
-#~ "judici, aquesta part s'exclou del contracte, perņ seguiu obligat per les "
-#~ "altres\n"
-#~ "seccions aplicables de l'acord. Els termes i condicions d'aquesta "
-#~ "Llicčncia\n"
-#~ "estan coberts per les lleis de Franēa. Preferiblement, tots els desacords "
-#~ "sobre\n"
-#~ "els termes d'aquesta Llicčncia es resoldran fora dels tribunals. Com a "
-#~ "śltim\n"
-#~ "recurs, el plet es dirimirą en els tribunals de Parķs, Franēa.\n"
-#~ "Per a qualsevol pregunta sobre aquest document, poseu-vos en contacte "
-#~ "amb\n"
-#~ "MandrakeSoft S.A., 43, rue d'Aboukir, 75002 Parķs, Franēa.\n"
-
-#~ msgid ""
-#~ "Your computer can be configured to share its Internet connection.\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Es pot configurar el vostre ordinador per tal que comparteixi la connexió "
-#~ "a Internet.\n"
-#~ "\n"
-
-#~ msgid "Everything has been configured.\n"
-#~ msgstr "S'ha configurat tot.\n"
-
-#~ msgid "Connect to Internet with a normal modem"
-#~ msgstr "Connecta't a Internet amb un mņdem normal"
-
-#~ msgid "Connect to Internet using ISDN"
-#~ msgstr "Connecta't a Internet mitjanēant XDSI"
-
-#~ msgid "Connect to Internet using DSL (or ADSL)"
-#~ msgstr "Connecta't a Internet mitjanēant DSL (o ADSL)"
-
-#~ msgid "Connect to Internet using Cable"
-#~ msgstr "Connecta't a Internet mitjanēant cable"
-
-#~ msgid ""
-#~ "Time (secs) of inactivity after which\n"
-#~ "it hangs up. (leave blank to disable it)"
-#~ msgstr ""
-#~ "Temps (en segons) d'inactivitat després del qual\n"
-#~ "penjarą (deixeu-ho en blanc per inhabilitar-ho)."
-
-#~ msgid "Germany (1TR6)"
-#~ msgstr "Alemanya (1TR6)"
-
-#~ msgid "What do you wish to do?"
-#~ msgstr "Quč voleu fer?"
-
-#~ msgid "Install/Rescue"
-#~ msgstr "Instal·la/Rescata"
-
-#~ msgid "Rescue"
-#~ msgstr "Rescata"
-
-#~ msgid "Which partition type do you want?"
-#~ msgstr "Quin tipus de partició voleu?"
-
-#~ msgid ""
-#~ "Choose \"Install\" if there are no previous versions of GNU/Linux\n"
-#~ "installed, or if you wish to use multiple distributions or versions.\n"
-#~ "\n"
-#~ "Choose \"Rescue\" if you wish to rescue a version of Mandrake Linux "
-#~ "already installed.\n"
-#~ "\n"
-#~ "\n"
-#~ "Select:\n"
-#~ "\n"
-#~ " - Recommended: If you have never installed GNU/Linux before, choose "
-#~ "this.\n"
-#~ "\n"
-#~ " - Customized: If you are familiar enough with GNU/Linux, you may then "
-#~ "choose\n"
-#~ " the primary usage for your machine. See below for details.\n"
-#~ "\n"
-#~ " - Expert: This supposes that you are fluent with GNU/Linux and want to\n"
-#~ " perform a highly customized installation. As for a \"Customized\"\n"
-#~ " installation class, you will be able to select the usage for your "
-#~ "system.\n"
-#~ " But please, please, DO NOT CHOOSE THIS UNLESS YOU KNOW WHAT YOU ARE "
-#~ "DOING!\n"
-#~ msgstr ""
-#~ "Escolliu \"Instal·lació\" si no hi ha instal·lada cap versió anterior de "
-#~ "GNU/Linux,\n"
-#~ "o si voleu utilitzar diverses distribucions o versions.\n"
-#~ "\n"
-#~ "Escolliu \"Rescat\" si voleu rescatar una versió anterior de\n"
-#~ "Mandrake Linux ja instal·lada.\n"
-#~ "\n"
-#~ "\n"
-#~ "Seleccioneu:\n"
-#~ "\n"
-#~ " - Recomanada: Si mai no heu instal·lat el GNU/Linux,\n"
-#~ " escolliu aquesta opció.\n"
-#~ " - Personalitzada: Si esteu prou familiaritzat amb el GNU/Linux, podeu\n"
-#~ " triar l'śs principal del vostre ordinador. Consulteu-ne els detalls\n"
-#~ " més avall.\n"
-#~ "\n"
-#~ " - Per a experts: S'assumeix que domineu el GNU/Linux i voleu realitzar "
-#~ "una\n"
-#~ " instal·lació altament personalitzada. Com en el cas del tipus\n"
-#~ " d'instal·lació \"Personalitzada\", podreu seleccionar l'śs del "
-#~ "vostre\n"
-#~ " sistema.\n"
-#~ " Perņ, si us plau, sobretot NO TRIEU AQUESTA OPCIÓ TRET QUE SAPIGUEU "
-#~ "QUČ ESTEU FENT!\n"
-
-#~ msgid ""
-#~ "At this point, you may choose what partition(s) to use to install\n"
-#~ "your Mandrake Linux system if they have been already defined (from a\n"
-#~ "previous install of GNU/Linux or from another partitioning tool). In "
-#~ "other\n"
-#~ "cases, hard drive partitions must be defined. This operation consists of\n"
-#~ "logically dividing the computer's hard drive capacity into separate\n"
-#~ "areas for use.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you have to create new partitions, use \"Auto allocate\" to "
-#~ "automatically\n"
-#~ "create partitions for GNU/Linux. You can select the disk for partitioning "
-#~ "by\n"
-#~ "clicking on \"hda\" for the first IDE drive,\n"
-#~ "\"hdb\" for the second or \"sda\" for the first SCSI drive and so on.\n"
-#~ "\n"
-#~ "\n"
-#~ "Two common partition are: the root partition (/), which is the starting\n"
-#~ "point of the filesystem's directory hierarchy, and /boot, which contains\n"
-#~ "all files necessary to start the operating system when the\n"
-#~ "computer is first turned on.\n"
-#~ "\n"
-#~ "\n"
-#~ "Because the effects of this process are usually irreversible, "
-#~ "partitioning\n"
-#~ "can be intimidating and stressful to the unexperienced user. DiskDrake\n"
-#~ "simplifies the process so that it must not be. Consult the documentation\n"
-#~ "and take your time before proceeding.\n"
-#~ "\n"
-#~ "\n"
-#~ "You can reach any option using the keyboard: navigate through the "
-#~ "partitions\n"
-#~ "using Tab and Up/Down arrows. 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"
-#~ msgstr ""
-#~ "En aquest moment podeu decidir quina(es) partició(ns) voleu utilitzar\n"
-#~ "per instal·lar el sistema Mandrake Linux, si és que ja es va(n)\n"
-#~ "definir (en una instal·lació anterior del GNU/Linux o mitjanēant una\n"
-#~ "altra eina de partició). En altres casos, s'han de definir les\n"
-#~ "particions del disc dur: aquesta operació consisteix en dividir el\n"
-#~ "disc dur de l'ordinador en ąrees lņgiques separades.\n"
-#~ "\n"
-#~ "\n"
-#~ "Si heu de crear noves particions, utilitzeu \"Assignació\n"
-#~ "automątica\" per crear particions per al GNU/Linux de manera automątica.\n"
-#~ "Podeu triar el disc on s'hi han de fer les particions fent clic a\n"
-#~ "\"hda\" per a la primera unitat IDE, \"hdb\" per a la segona, o\n"
-#~ "\"sda\" per a la primera unitat SCSI, i aixķ successivament.\n"
-#~ "\n"
-#~ "\n"
-#~ "Dues particions habituals són: la partició root (/), que és el punt\n"
-#~ "d'inici de la jerarquia de directoris del sistema de fitxers, i\n"
-#~ "/boot, que conté tots els fitxers necessaris per iniciar el sistema\n"
-#~ "operatiu quan s'arrenca l'ordinador per primer cop.\n"
-#~ "\n"
-#~ "\n"
-#~ "Donat que aquest procés sol ser irreversible, la partició d'un disc\n"
-#~ "és sovint un procés que espanta als usuaris sense experičncia, perņ\n"
-#~ "el DiskDrake simplifica molt aquest procés. Consulteu la documentació\n"
-#~ "i preneu-vos tant temps com sigui necessari abans de realitzar la\n"
-#~ "partició.\n"
-#~ "\n"
-#~ "Podeu accedir a qualsevol opció mitjanēant el teclat: desplaceu-vos per "
-#~ "les particions amb el tabulador i les fletxes amunt i avall. Quan se "
-#~ "selecciona una partició, podeu utilitzar:\n"
-#~ "\n"
-#~ "- Ctrl-c per crear una nova partició (quan se selecciona una partició "
-#~ "buida)\n"
-#~ "\n"
-#~ "- Ctrl-d per suprimir una partició\n"
-#~ "\n"
-#~ "- Ctrl-m per definir el punt de muntatge\n"
-
-#~ msgid ""
-#~ "Any partitions that have been newly defined must be formatted for\n"
-#~ "use (formatting meaning creating a filesystem). At this time, you may\n"
-#~ "wish to re-format some already existing partitions to erase the data\n"
-#~ "they contain. Note: it is not necessary to re-format pre-existing\n"
-#~ "partitions, particularly if they contain files or data you wish to keep.\n"
-#~ "Typically retained are /home and /usr/local."
-#~ msgstr ""
-#~ "Cal formatar les particions que s'acaben de definir per poder-les\n"
-#~ "utilitzar ('formatar' significa 'crear un sistema de fitxers').\n"
-#~ "En aquest punt podeu, si voleu, tornar a formatar particions\n"
-#~ "existents per eliminar les dades que contenen. Nota: no és\n"
-#~ "necessari tornar a formatar les particions existents, especialment\n"
-#~ "si contenen fitxers o dades que voleu conservar.\n"
-#~ "Els directoris que es solen conservar són /home i /usr/local."
-
-#~ msgid ""
-#~ "The packages selected are now being installed. This operation\n"
-#~ "should take a few minutes unless you have chosen to upgrade an\n"
-#~ "existing system, in that case it can take more time even before\n"
-#~ "upgrade starts."
-#~ msgstr ""
-#~ "Ara s'estan instal·lant els paquets seleccionats. Aquesta operació\n"
-#~ "trigarą pocs minuts, tret que hagueu escollit actualitzar un\n"
-#~ "sistema existent; en aquest cas trigarą més temps, fins i tot\n"
-#~ "abans que s'iniciļ la instal·lació."
-
-#~ msgid ""
-#~ "If DrakX failed to find your mouse, or if you want to\n"
-#~ "check what it has done, you will be presented the list of mice\n"
-#~ "above.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you agree with DrakX's settings, just click 'Ok'.\n"
-#~ "Otherwise you may choose the mouse that more closely matches your own\n"
-#~ "from the menu above.\n"
-#~ "\n"
-#~ "\n"
-#~ "In case of a serial mouse, you will also have to tell DrakX\n"
-#~ "which serial port it is connected to."
-#~ msgstr ""
-#~ "Si el DrakX no ha pogut trobar el ratolķ, o si voleu comprovar quč\n"
-#~ "ha fet, a la part superior apareixerą la llista de ratolins.\n"
-#~ "\n"
-#~ "\n"
-#~ "Si esteu d'acord amb els parąmetres del DrakX, feu clic a 'D'acord'.\n"
-#~ "Si no, escolliu, al menś superior, el tipus de ratolķ que us sembli més "
-#~ "semblant al vostre.\n"
-#~ "\n"
-#~ "\n"
-#~ "Si es tracta d'un ratolķ sčrie, també us caldrą indicar al DrakX a\n"
-#~ "quin port sčrie estą connectat."
-
-#~ msgid ""
-#~ "This section is dedicated to configuring a local area\n"
-#~ "network (LAN) or a modem.\n"
-#~ "\n"
-#~ "Choose \"Local LAN\" and DrakX will\n"
-#~ "try to find an Ethernet adapter on your machine. PCI adapters\n"
-#~ "should be found and initialized automatically.\n"
-#~ "However, if your peripheral is ISA, autodetection will not work,\n"
-#~ "and you will have to choose a driver from the list that will appear "
-#~ "then.\n"
-#~ "\n"
-#~ "\n"
-#~ "As for SCSI adapters, you can let the driver probe for the adapter\n"
-#~ "in the first time, otherwise you will have to specify the options\n"
-#~ "to the driver that you will have fetched from documentation of your\n"
-#~ "hardware.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you install a Mandrake Linux system on a machine which is part\n"
-#~ "of an already existing network, the network administrator will\n"
-#~ "have given you all necessary information (IP address, network\n"
-#~ "submask or netmask for short, and hostname). If you're setting\n"
-#~ "up a private network at home for example, you should choose\n"
-#~ "addresses.\n"
-#~ "\n"
-#~ "\n"
-#~ "Choose \"Dialup with modem\" and the Internet connection with\n"
-#~ "a modem will be configured. DrakX will try to find your modem,\n"
-#~ "if it fails you will have to select the right serial port where\n"
-#~ "your modem is connected to."
-#~ msgstr ""
-#~ "Aquesta secció estą dedicada a la configuració d'una xarxa local\n"
-#~ "(LAN) o d'un mņdem.\n"
-#~ "\n"
-#~ "Escolliu \"LAN local\" i el DrakX intentarą trobar un adaptador\n"
-#~ "Ethernet al vostre ordinador. El sistema trobarą i inicialitzarą\n"
-#~ "automąticament els adaptadors PCI.\n"
-#~ "No obstant aixņ, si el vostre perifčric és ISA, la detecció\n"
-#~ "no funcionarą, i us caldrą escollir un programa de control a la\n"
-#~ "llista que apareixerą.\n"
-#~ "\n"
-#~ "\n"
-#~ "Com en el cas dels adaptadors SCSI, podeu deixar que, d'entrada,\n"
-#~ "el programa de control comprovi l'adaptador; si no ho feu aixķ, us\n"
-#~ "caldrą especificar les opcions del programa de control que haureu\n"
-#~ "d'anar a buscar a la documentació del vostre maquinari.\n"
-#~ "\n"
-#~ "\n"
-#~ "Si instal·leu un sistema Mandrake Linux en un ordinador que forma\n"
-#~ "part d'una xarxa existent, l'administrador de la xarxa us haurą de\n"
-#~ "facilitar la informació necessąria (l'adreēa IP, la submąscara de\n"
-#~ "xarxa i el nom de l'ordinador central). Si esteu configurant una\n"
-#~ "xarxa privada, com ara a casa, haureu d'escollir les adreces.\n"
-#~ "\n"
-#~ "\n"
-#~ "Escolliu \"Marcatge amb mņdem\" i es configurarą la connexió a\n"
-#~ "Internet amb un mņdem. El DrakX intentarą trobar el mņdem, perņ,\n"
-#~ "si no se'n surt, us caldrą seleccionar el port sčrie al qual estą\n"
-#~ "connectat."
-
-#~ msgid ""
-#~ "GNU/Linux can deal with many types of printer. Each of these\n"
-#~ "types require a different setup. Note however that the print\n"
-#~ "spooler uses 'lp' as the default printer name; so you\n"
-#~ "must have one printer with such a name; but you can give\n"
-#~ "several names, separated by '|' characters, to a printer.\n"
-#~ "So, if you prefer to have a more meaningful name you just have\n"
-#~ "to put it first, eg: \"My Printer|lp\".\n"
-#~ "The printer having \"lp\" in its name(s) will be the default printer.\n"
-#~ "\n"
-#~ "\n"
-#~ "If your printer is physically connected to your computer, select\n"
-#~ "\"Local printer\". You will then have to tell which port your\n"
-#~ "printer is connected to, and select the appropriate filter.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you want to access a printer located on a remote Unix machine,\n"
-#~ "you will have to select \"Remote lpd\". In order to make\n"
-#~ "it work, no username or password is required, but you will need\n"
-#~ "to know the name of the printing queue on this server.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you want to access a SMB printer (which means, a printer located\n"
-#~ "on a remote Windows 9x/NT machine), you will have to specify its\n"
-#~ "SMB name (which is not its TCP/IP name), and possibly its IP address,\n"
-#~ "plus the username, workgroup and password required in order to\n"
-#~ "access the printer, and of course the name of the printer. The same goes\n"
-#~ "for a NetWare printer, except that you need no workgroup information."
-#~ msgstr ""
-#~ "El GNU/Linux pot treballar amb molts tipus d'impressores. Per a cada\n"
-#~ "un d'aquests tipus, perņ, cal una configuració diferent. Tingueu\n"
-#~ "en compte, perņ, que l'spooler utilitza 'lp' com a nom d'impressora\n"
-#~ "per defecte, de manera que heu de tenir una impressora amb aquest nom.\n"
-#~ "No obstant aixņ, podeu donar diferents noms a una impressora, separant-\n"
-#~ "los amb el carącter '|'. D'aquesta manera, si voleu donar-li un nom més\n"
-#~ "aclaridor només us caldrą indicar-lo en primer lloc, p.ex. \"La meva\n"
-#~ "impressora|lp\".\n"
-#~ "La impressora que contingui \"lp\" al(s) nom(s) serą la impressora per\n"
-#~ "defecte\n"
-#~ "\n"
-#~ "\n"
-#~ "Si la vostra impressora estą connectada directament a l'ordinador,\n"
-#~ "seleccioneu \"Impressora local\". Haureu d'indicar a quin port\n"
-#~ "estą connectada i seleccionar-ne el filtre corresponent.\n"
-#~ "\n"
-#~ "\n"
-#~ "Si voleu accedir a una impressora que es troba a un ordinador Unix\n"
-#~ "remot, seleccioneu \"lpd remot\". Per poder-la fer funcionar no\n"
-#~ "cal cap nom d'usuari ni contrasenya, perņ us caldrą saber el nom\n"
-#~ "de la cua d'impressió del servidor remot.\n"
-#~ "\n"
-#~ "\n"
-#~ "Si voleu accedir a una impressora SMB (és a dir, una impressora\n"
-#~ "que es troba a un ordinador remot amb Windows 9x/NT), per poder-ho\n"
-#~ "fer haureu d'indicar el seu nom SMB (que no és el seu nom TCP/IP)\n"
-#~ "i possiblement la seva adreēa IP, nom d'usuari, grup de treball,\n"
-#~ "contrasenya, i, evidentment, el nom de la impressora. El mateix\n"
-#~ "per a una impressora NetWare, perņ en aquest cas no us caldrą la\n"
-#~ "informació del grup de treball."
-
-#~ msgid ""
-#~ "It is strongly recommended that you answer \"Yes\" here. If you install\n"
-#~ "Microsoft Windows at a later date it will overwrite the boot sector.\n"
-#~ "Unless you have made a bootdisk as suggested, you will not be able to\n"
-#~ "boot into GNU/Linux any more."
-#~ msgstr ""
-#~ "És molt recomanable que respongueu \"Sķ\" aquķ. Si més endavant\n"
-#~ "instal·leu Microsoft Windows, sobreescriurą el sector d'arrencada.\n"
-#~ "Tret que hagueu fet el disc d'arrencada com es\n"
-#~ "recomana, ja no podreu tornar a arrencar el GNU/Linux."
-
-#~ msgid "Move your wheel!"
-#~ msgstr "Moveu la bola!"
-
-#~ msgid "Forget the changes?"
-#~ msgstr "Voleu descartar els canvis?"
-
-#~ msgid "What is the type of your mouse?"
-#~ msgstr "De quin tipus és el vostre ratolķ?"
-
-#~ msgid "Automatic resolutions"
-#~ msgstr "Resolucions automątiques"
-
-#~ msgid ""
-#~ "To find the available resolutions I will try different ones.\n"
-#~ "Your screen will blink...\n"
-#~ "You can switch if off if you want, you'll hear a beep when it's over"
-#~ msgstr ""
-#~ "Per saber quines resolucions estan disponibles, en provaré algunes.\n"
-#~ "La pantalla parpellejarą...\n"
-#~ "Ho podeu desactivar si voleu; sentireu un avķs sonor quan estigui llest"
-
-#~ msgid ""
-#~ "I can try to find the available resolutions (eg: 800x600).\n"
-#~ "Sometimes, though, it may hang the machine.\n"
-#~ "Do you want to try?"
-#~ msgstr ""
-#~ "Puc mirar de trobar les resolucions disponibles (p.ex. 800x600).\n"
-#~ "De vegades, perņ, aixņ pot penjar l'ordinador.\n"
-#~ "Us hi voleu arriscar?"
-
-#~ msgid ""
-#~ "No valid modes found\n"
-#~ "Try with another video card or monitor"
-#~ msgstr ""
-#~ "No s'han trobat modes vąlids\n"
-#~ "Intenteu-ho amb una altra targeta de vķdeo o monitor"
-
-#~ msgid "Automatical resolutions search"
-#~ msgstr "Recerca automątica de resolucions"
-
-#~ msgid "dhcpd"
-#~ msgstr "dhcpd"
-
-#~ msgid "pump"
-#~ msgstr "pump"
-
-#~ msgid "dhcpxd"
-#~ msgstr "dhcpxd"
-
-#~ msgid "dhcp-client"
-#~ msgstr "dhcp-client"
-
-#~ msgid "Apple ADB Mouse"
-#~ msgstr "Apple ADB Mouse"
-
-#~ msgid "Apple ADB Mouse (2 Buttons)"
-#~ msgstr "Apple ADB Mouse (2 botons)"
-
-#~ msgid "Apple ADB Mouse (3+ Buttons)"
-#~ msgstr "Apple ADB Mouse (3 o més botons)"
-
-#~ msgid "Apple USB Mouse"
-#~ msgstr "Apple USB Mouse"
-
-#~ msgid "Apple USB Mouse (2 Buttons)"
-#~ msgstr "Apple USB Mouse (2 botons)"
-
-#~ msgid "Apple USB Mouse (3+ Buttons)"
-#~ msgstr "Apple USB Mouse (3 o més botons)"
-
-#~ msgid "ASCII MieMouse"
-#~ msgstr "ASCII MieMouse"
-
-#~ msgid "Genius NetMouse Pro"
-#~ msgstr "Genius NetMouse Pro"
-
-#~ msgid "ATI Bus Mouse"
-#~ msgstr "ATI Bus Mouse"
-
-#~ msgid "Microsoft Bus Mouse"
-#~ msgstr "Microsoft Bus Mouse"
-
-#~ msgid "Logitech Bus Mouse"
-#~ msgstr "Logitech Bus Mouse"
-
-#~ msgid "USB Mouse (3 buttons or more)"
-#~ msgstr "USB Mouse (3 o més botons)"
-
-#~ msgid "Microsoft Rev 2.1A or higher (serial)"
-#~ msgstr "Microsoft Rev 2.1A o superior (sčrie)"
-
-#~ msgid "Logitech MouseMan+/FirstMouse+ (serial)"
-#~ msgstr "Logitech MouseMan+/FirstMouse+ (sčrie)"
-
-#~ msgid "ASCII MieMouse (serial)"
-#~ msgstr "ASCII MieMouse (sčrie)"
-
-#~ msgid "Genius NetMouse (serial)"
-#~ msgstr "Genius NetMouse (sčrie)"
-
-#~ msgid "Generic Mouse (serial)"
-#~ msgstr "Generic Mouse (sčrie)"
-
-#~ msgid "Microsoft compatible (serial)"
-#~ msgstr "Compatible Microsoft (sčrie)"
-
-#~ msgid "Generic 3 Button Mouse (serial)"
-#~ msgstr "Ratolķ Generic de 3 botons (sčrie)"
-
-#~ msgid "Kensington Thinking Mouse (serial)"
-#~ msgstr "Ratolķ Kensington Thinking (sčrie)"
-
-#~ msgid ""
-#~ "I need to configure your network adapter to be able to connect to "
-#~ "internet."
-#~ msgstr ""
-#~ "Necessito configurar el vostre adaptador de xarxa por poder connectar a "
-#~ "Internet."
-
-#~ msgid "nfs mount failed"
-#~ msgstr "ha fallat el muntatge de l'nfs"
-
-#~ msgid "Socket"
-#~ msgstr "Sņcol"
-
-#~ msgid ""
-#~ "DrakX will generate config files for both XFree 3.3 and XFree 4.0.\n"
-#~ "By default, the 4.0 server is used unless your card is not supported.\n"
-#~ "\n"
-#~ "Do you want to keep XFree 3.3?"
-#~ msgstr ""
-#~ "El DrakX generarą els fitxers de configuració tant per a l'XFree 3.3 com "
-#~ "per a l'Xfree 4.0.\n"
-#~ "Per defecte, s'utilitza el servidor 4.0, tret que no funcioni per a la "
-#~ "vostra targeta.\n"
-#~ "\n"
-#~ "Voleu conservar l'Xfree 3.3?"
-
-#~ msgid "tie"
-#~ msgstr "llaē"
-
-#~ msgid "brunette"
-#~ msgstr "morena"
-
-#~ msgid "girl"
-#~ msgstr "noia"
-
-#~ msgid "woman-blond"
-#~ msgstr "dona-rossa"
-
-#~ msgid "automagic"
-#~ msgstr "automagic"
-
-#~ msgid "Cryptographic"
-#~ msgstr "Criptogrąfic"
-
-#~ msgid "Take over the hard drive"
-#~ msgstr "Encarrega't del disc dur"
-
-#~ msgid "Do not set up networking"
-#~ msgstr "No configuris la xarxa"
-
-#~ msgid "Do you want to configure a local network for your system?"
-#~ msgstr "Voleu configurar la xarxa local per al vostre sistema?"
-
-#~ msgid "Have you been provided with a hostname?"
-#~ msgstr "Us han donat un nom d'ordinador central?"
-
-#~ msgid "Show less"
-#~ msgstr "Mostra'n menys"
-
-#~ msgid "Show more"
-#~ msgstr "Mostra'n més"
-
-#~ msgid "URI for Local printer"
-#~ msgstr "URI per a la impressora local"
-
-#~ msgid "URI for Network printer"
-#~ msgstr "URI per a la impressora de xarxa"
-
-#~ msgid "Local Printer Device (URI)"
-#~ msgstr "Dispositiu de la impressora local (URI)"
-
-#~ msgid ""
-#~ "What URI device is your printer connected to\n"
-#~ "(note that parallel:/dev/lp0 is equivalent to LPT1:)?"
-#~ msgstr ""
-#~ "A quin dispositiu URI estą connectada la vostra impressora?\n"
-#~ "(tingueu en compte que parallel:/dev/lp0 equival a LPT1:)"
-
-#~ msgid "Network Printer Options (URI)"
-#~ msgstr "Opcions de la impressora de xarxa (URI)"
-
-#~ msgid ""
-#~ "Choose the right Device URI for a network printer or a local file. "
-#~ "Examples:\n"
-#~ " file:/path/to/filename.prn\n"
-#~ " http://hostname:631/ipp/port1\n"
-#~ " ipp://hostname/ipp/port1\n"
-#~ " lpq://hostname/queue\n"
-#~ " socket://hostname\n"
-#~ " socket://hostname:9100"
-#~ msgstr ""
-#~ "Seleccioneu l'URI de dispositiu correcte per a una impressora de xarxa o "
-#~ "un fitxer local. Exemples:\n"
-#~ " file:/camķ/al/nomdefitxer.prn\n"
-#~ " http://ordinadorcentral:631/ipp/port1\n"
-#~ " ipp://ordinadorcentral/ipp/port1\n"
-#~ " lpq://ordinadorcentral/cua\n"
-#~ " socket://ordinadorcentral\n"
-#~ " socket://ordinadorcentral:9100"
-
-#~ msgid "Local Area Network specification"
-#~ msgstr "Especificació de la xarxa d'ąrea local"
-
-#~ msgid "You may now decide which class C network to use.\n"
-#~ msgstr "Ara podeu decidir quina xarxa de classe C voleu utilitzar.\n"
-
-#~ msgid "Internet Connection Sharing - setup of %s"
-#~ msgstr "Connexió a Internet compartida: configuració de %s"
-
-#~ msgid ""
-#~ "The following interface is about to be configured:\n"
-#~ "\n"
-#~ "%s\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Ara es configurarą la interfķcie següent:\n"
-#~ "\n"
-#~ "%s\n"
-#~ "\n"
-
-#~ msgid "Everything configured!"
-#~ msgstr "S'ha configurat tot!"
-
-#~ msgid "What is your keyboard layout?"
-#~ msgstr "Quina és la disposició del vostre teclat?"
-
-#~ msgid "Try to find PCMCIA cards?"
-#~ msgstr "Voleu que intenti trobar targetes PCMCIA?"
-
-#~ msgid "Try to find %s devices?"
-#~ msgstr "Voleu que intenti trobar els dispositius %s?"
-
-#~ msgid ""
-#~ "Do you want to configure a dialup connection with modem for your system?"
-#~ msgstr ""
-#~ "Voleu configurar el marcatge amb xarxa per mņdem per al vostre sistema?"
-
-#~ msgid "Try to find PCI devices?"
-#~ msgstr "Voleu que intenti trobar dispositius PCI?"
-
-#~ msgid "Searching root partition."
-#~ msgstr "S'estą cercant la partició arrel."
-
-#~ msgid "%s: This is not a root partition, please select another one."
-#~ msgstr ""
-#~ "%s: Aquesta partició no és arrel; si us plau, seleccioneu-ne una altra."
-
-#~ msgid "Please choose a partition to use as your root partition."
-#~ msgstr "Si us plau, seleccioneu una partició per utilitzar-la com a arrel."
-
-#~ msgid "You don't have any windows partitions!"
-#~ msgstr "No teniu cap partició de Windows!"
-
-#~ msgid "You don't have any enough room for Lnx4win"
-#~ msgstr "No teniu prou espai per al Lnx4win"
-
-#~ msgid ", %U MB"
-#~ msgstr ", %U MB"
-
-# NOTE: this message will be displayed by lilo at boot time; that is
-# using the BIOS font; that means cp437 charset on 99.99% of PC computers
-# out there. It is the nsuggested that for non latin languages an ascii
-# transliteration be used; or maybe the english text be used; as it is best
-#
-#~ msgid ""
-#~ "Welcome to LILO the operating system chooser!\n"
-#~ "\n"
-#~ "To list the possible choices, press <TAB>.\n"
-#~ "\n"
-#~ "To load one of them, write its name and press <ENTER> or wait %d seconds "
-#~ "for default boot.\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Benvingut al LILO, la utilitat que us permet triar el sistema operatiu!\n"
-#~ "\n"
-#~ "Per obtenir una llista de les eleccions possibles, premeu <TAB>.\n"
-#~ "\n"
-#~ "Per carregar-ne una, escriviu-ne el nom i premeu <INTRO> o espereu %d "
-#~ "segons\n"
-#~ "fins a l'arrencada predeterminada.\n"
-
-# NOTE: this message will be displayed by SILO at boot time; that is
-# only the ascii charset will be available
-# so use only 7bit for this message
-#
-#~ msgid ""
-#~ "Welcome to SILO the operating system chooser!\n"
-#~ "\n"
-#~ "To list the possible choices, press <TAB>.\n"
-#~ "\n"
-#~ "To load one of them, write its name and press <ENTER> or\n"
-#~ "wait %d seconds for default boot.\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Benvingut al SILO, la utilitat que us permet triar el sistema operatiu!\n"
-#~ "\n"
-#~ "Per obtenir una llista de les eleccions possibles, premeu <TAB>.\n"
-#~ "\n"
-#~ "Per carregar-ne una, escriviu-ne el nom i premeu <INTRO> o espereu %d "
-#~ "segons\n"
-#~ "fins a l'arrencada predeterminada.\n"
-
-#~ msgid "SILO main options"
-#~ msgstr "Opcions principals del SILO"
-
-#~ msgid ""
-#~ "Here are the following entries in SILO.\n"
-#~ "You can add some more or change the existing ones."
-#~ msgstr ""
-#~ "Aquestes són les entrades següents del SILO.\n"
-#~ "Podeu afegir-ne algunes més o canviar-ne les existents."
-
-#~ msgid "This label is already in use"
-#~ msgstr "Aquesta etiqueta ja estą en śs"
-
-#~ msgid "Installation of SILO failed. The following error occured:"
-#~ msgstr "Ha fallat la instal·lació del SILO. S'ha produļt l'error següent:"
-
-#~ msgid ""
-#~ "DrakX will attempt at first to look for one or more PCI\n"
-#~ "SCSI adapter(s). If it finds it (or them) and knows which driver(s)\n"
-#~ "to use, it will insert it (them) automatically.\n"
-#~ "\n"
-#~ "\n"
-#~ "If your SCSI adapter is an ISA board, or is a PCI board but DrakX\n"
-#~ "doesn't know which driver to use for this card, or if you have no\n"
-#~ "SCSI adapters at all, you will then be prompted on whether you have\n"
-#~ "one or not. If you have none, answer \"No\". If you have one or more,\n"
-#~ "answer \"Yes\". A list of drivers will then pop up, from which you\n"
-#~ "will have to select one.\n"
-#~ "\n"
-#~ "\n"
-#~ "After you have selected the driver, DrakX will ask if you\n"
-#~ "want to specify options for it. First, try and let the driver\n"
-#~ "probe for the hardware: it usually works fine.\n"
-#~ "\n"
-#~ "\n"
-#~ "If not, do not forget the information on your hardware that you\n"
-#~ "could get from your documentation or from Windows (if you have it\n"
-#~ "on your system), as suggested by the installation guide. These\n"
-#~ "are the options you will need to provide to the driver."
-#~ msgstr ""
-#~ "En primer lloc, el DrakX intentarą trobar un o més adaptadors SCSI\n"
-#~ "PCI. Si en troba, i sap quin(s) programa(es) de control utilitzar,\n"
-#~ "l'inserirą o els inserirą automąticament.\n"
-#~ "\n"
-#~ "\n"
-#~ "Si el vostre adaptador SCSI és una targeta ISA, o si és PCI perņ\n"
-#~ "el DrakX no sap amb quin programa de control ha d'utilitzar-la, o\n"
-#~ "si no teniu cap adaptador SCSI, se us preguntarą si en teniu un o\n"
-#~ "no. Si no en teniu cap, respongueu \"No\". Si en teniu un o més,\n"
-#~ "respongueu \"Sķ\". Apareixerą una llista de programes de control,\n"
-#~ "de la qual n'haureu de triar un.\n"
-#~ "\n"
-#~ "\n"
-#~ "Un cop hagueu triat el programa de control, el DrakX us preguntarą\n"
-#~ "si voleu establir-ne les opcions. Primer, perņ, deixeu que el\n"
-#~ "programa de control explori el maquinari: normalment funciona bé.\n"
-#~ "\n"
-#~ "\n"
-#~ "Si no, no oblideu la informació sobre el vostre maquinari que\n"
-#~ "pugueu aconseguir a la documentació o al Windows (si el teniu al\n"
-#~ "sistema), com aconsella la guia d'instal·lació. Aquestes són les\n"
-#~ "opcions que haureu de proporcionar al programa de control."
-
-#~ msgid "Shutting down"
-#~ msgstr "S'estą tancant l'ordinador"
-
-#~ msgid ""
-#~ "Some true type fonts from windows have been found on your computer.\n"
-#~ "Do you want to use them? Be sure you have the right to use them under "
-#~ "Linux."
-#~ msgstr ""
-#~ "S'han trobat alguns tipus de lletra \"true type\" del Windows a "
-#~ "l'ordinador.\n"
-#~ "Voleu utilitzar-les? Assegureu-vos que esteu autoritzat a utilitzar-les "
-#~ "sota Linux."
-
-#~ msgid "useless"
-#~ msgstr "inśtil"
-
-#~ msgid ""
-#~ "Choose \"Install\" if there are no previous versions of Linux\n"
-#~ "installed, or if you wish to use multiple distributions or versions.\n"
-#~ "\n"
-#~ "\n"
-#~ "Choose \"Upgrade\" if you wish to update a previous version of Mandrake "
-#~ "Linux:\n"
-#~ "5.1 (Venice), 5.2 (Leloo), 5.3 (Festen), 6.0 (Venus), 6.1 (Helios), Gold "
-#~ "2000\n"
-#~ "or 7.0 (Air)."
-#~ msgstr ""
-#~ "Escolliu \"Instal·la\" si no hi ha instal·lada cap versió anterior de "
-#~ "Linux,\n"
-#~ "o si voleu utilitzar diverses distribucions o versions.\n"
-#~ "\n"
-#~ "\n"
-#~ "Escolliu \"Actualització\" si voleu actualitzar una versió anterior de\n"
-#~ "Mandrake Linux: 5.1 (Venice), 5.2 (Leeloo), 5.3 (Festen) 6.0 (Venus),\n"
-#~ "6.1 (Helios), Gold 2000 o 7.0 (Air)."
-
-#~ msgid ""
-#~ "(a user ``mandrake'' with password ``mandrake'' has been automatically "
-#~ "added)"
-#~ msgstr ""
-#~ "(s'ha afegit automąticament un usuari ``mandrake'' amb contrasenya "
-#~ "``mandrake'')"
-
-#~ msgid "Do you want to use LILO?"
-#~ msgstr "Voleu utilitzar el LILO?"
-
-#~ msgid ""
-#~ "You may now select the packages you wish to install.\n"
-#~ "\n"
-#~ "\n"
-#~ "First you can select group of package to install or upgrade. After that\n"
-#~ "you can select more packages according to the total size you wish to\n"
-#~ "select.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you are in expert mode, you can select packages individually.\n"
-#~ "Please note that some packages require the installation of others.\n"
-#~ "These are referred to as package dependencies. The packages you select,\n"
-#~ "and the packages they require will be automatically selected for\n"
-#~ "install. It is impossible to install a package without installing all\n"
-#~ "of its dependencies."
-#~ msgstr ""
-#~ "Ara podeu seleccionar els paquets que voleu instal·lar.\n"
-#~ "\n"
-#~ "\n"
-#~ "En primer lloc, podeu seleccionar el grup del paquet a instal·lar\n"
-#~ "o actualitzar. Després, podeu seleccionar més paquets segons la\n"
-#~ "mida total que voleu seleccionar.\n"
-#~ "\n"
-#~ "\n"
-#~ "Si treballeu amb el mode expert, podeu seleccionar els paquets\n"
-#~ "individualment.\n"
-#~ "Tingueu en compte, perņ, que alguns paquets necessiten que altres\n"
-#~ "també estiguin instal·lats.\n"
-#~ "Aixņ s'anomena 'dependčncia de paquets'. Els paquets que\n"
-#~ "seleccioneu, i els que aquests necessitin, es seleccionaran\n"
-#~ "automąticament per a la instal·lació. No és possible instal·lar un\n"
-#~ "paquet sense instal·lar-ne tots els dependents."
-
-#~ msgid ""
-#~ "LILO (the LInux LOader) can boot Linux and other operating systems.\n"
-#~ "Normally they are correctly detected during installation. If you don't\n"
-#~ "see yours detected, you can add one or more now.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you don't want that everybody could access at one of them, you can "
-#~ "remove\n"
-#~ "it now (a boot disk will be needed to boot it)."
-#~ msgstr ""
-#~ "El LILO (el carregador de Linux) pot arrencar el Linux i altres sistemes\n"
-#~ "operatius, que normalment es detecten correctament durant la "
-#~ "instal·lació.\n"
-#~ "Si veieu que el vostre no s'ha detectat, ara podeu afegir-ne un o més.\n"
-#~ "\n"
-#~ "\n"
-#~ "Si no voleu que tothom pugui accedir a algun d'ells, podeu\n"
-#~ "eliminar-lo ara (caldrą un disc d'arrencada per arrencar-lo)."
-
-#~ msgid ""
-#~ "Now that you've selected desired groups, please choose \n"
-#~ "how many packages you want, ranging from minimal to full \n"
-#~ "installation of each selected groups."
-#~ msgstr ""
-#~ "Ara que ja heu seleccionat els grups desitjats, seleccioneu \n"
-#~ "quants paquets voleu, ordenant-los des de la instal·lació mķnima \n"
-#~ "fins a la instal·lació completa de cadascun dels grups seleccionats."
-
-#~ msgid ""
-#~ "You need %dMB for a full install of the groups you selected.\n"
-#~ "You can go on anyway, but be warned that you won't get all packages"
-#~ msgstr ""
-#~ "Us calen %dMB per a una instalació completa dels grups que heu "
-#~ "seleccionat.\n"
-#~ "Podeu continuar igualment, perņ tingueu en compte que no tindreu tots els "
-#~ "paquets"
-
-#~ msgid "Choose other CD to install"
-#~ msgstr "Escolliu un altre CD per instal·lar"
-
-#~ msgid ""
-#~ "Select:\n"
-#~ "\n"
-#~ " - Recommended: If you have never installed Linux before.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Customized: If you are familiar with Linux, you will be able to \n"
-#~ "select the usage for the installed system between normal, development or\n"
-#~ "server. Choose \"Normal\" for a general purpose installation of your\n"
-#~ "computer. You may choose \"Development\" if you will be using the "
-#~ "computer\n"
-#~ "primarily for software development, or choose \"Server\" if you wish to\n"
-#~ "install a general purpose server (for mail, printing...).\n"
-#~ "\n"
-#~ "\n"
-#~ " - Expert: If you are fluent with GNU/Linux and want to perform\n"
-#~ "a highly customized installation, this Install Class is for you. You "
-#~ "will\n"
-#~ "be able to select the usage of your installed system as for \"Customized"
-#~ "\"."
-#~ msgstr ""
-#~ "Seleccioneu:\n"
-#~ "\n"
-#~ " - Recomanada: Si mai no heu instal·lat el Linux.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Personalitzada: Si esteu familiaritzat amb el Linux, podreu\n"
-#~ "triar l'śs del sistema instal·lat entre Normal, Desenvolupament o\n"
-#~ "Servidor. Trieu \"Normal\" per a una instal·lació per a un śs\n"
-#~ "general del vostre ordinador, \"Desenvolupament\" si utilitzareu\n"
-#~ "l'ordinador principalment per a desenvolupament de programari,\n"
-#~ "o \"Servidor\" si voleu instal·lar un servidor convencional (per\n"
-#~ "a correu, impressions...).\n"
-#~ "\n"
-#~ "\n"
-#~ " - Per a experts: Si domineu el GNU/Linux i voleu realitzar una\n"
-#~ "instal·lació totalment personalitzada, aquest és el vostre\n"
-#~ "tipus d'instal·lació. Podreu seleccionar l'śs del vostre sistema\n"
-#~ "com a \"Personalitzada\"."
-
-#~ msgid "Downloading cryptographic packages"
-#~ msgstr "S'estan descarregant els paquets criptogrąfics"
-
-#~ msgid "Setup SCSI"
-#~ msgstr "Configura el SCSI"
-
-#~ msgid "Installation CD Nr %s"
-#~ msgstr "CD d'instal·lació Nr %s"
-
-#~ msgid ""
-#~ "Update installation image!\n"
-#~ "\n"
-#~ "Ask your system administrator or reboot to update your installation image "
-#~ "to include\n"
-#~ "the Cd-Rom image labelled \"%s\". Press Ok if image has been updated or "
-#~ "press Cancel\n"
-#~ "to avoid installation from this Cd-Rom image."
-#~ msgstr ""
-#~ "Actualitzeu la imatge de la instal·lació!\n"
-#~ "\n"
-#~ "Consulteu a l'administrador del sistema o torneu a arrencar per "
-#~ "actualitzar\n"
-#~ "la imatge de la instal·lació per incloure la imatge en CD-ROM etiquetada "
-#~ "com\n"
-#~ "\"%s\". Premeu D'acord si la imatge s'ha actualitzat o premeu Cancel·la "
-#~ "per\n"
-#~ "no fer la instal·lació des d'aquesta imatge en Cd-ROM."
-
-#~ msgid "Which language do you want?"
-#~ msgstr "Quin idioma voleu?"
-
-#~ msgid "Hurt me plenty"
-#~ msgstr "Fes-me molt de mal"
-
-#~ msgid "What usage do you want?"
-#~ msgstr "Quina utilització voleu?"
-
-#~ msgid "Choose install or upgrade"
-#~ msgstr "Instal·lació o actualització"
-
-#~ msgid "Enter a floppy (all data will be lost)"
-#~ msgstr ""
-#~ "Inseriu un disquet a la unitat\n"
-#~ "(Se'n perdran totes les dades)"
-
-#~ msgid "Going to install %d MB. You can choose to install more programs"
-#~ msgstr "Ara s'instal·laran %d MB. Podeu triar instal·lar més programes"
-
-#~ msgid "Too many packages chosen: %dMB doesn't fit in %dMB"
-#~ msgstr "S'han escollit massa paquets: %dMB no cap a %dMB"
-
-#~ msgid "Bad kickstart file %s (failed %s)"
-#~ msgstr "Fitxer d'inici rąpid %s incorrecte (ha fallat %s)"
-
-#~ msgid "Size: %s MB"
-#~ msgstr "Mida: %s MB"
-
-#~ msgid "US Keyboard"
-#~ msgstr "Teclat EU"
-
-#~ msgid "resizing"
-#~ msgstr "s'estą canviant la mida"
-
-#~ msgid "changing type of"
-#~ msgstr "s'estą canviant el tipus de"
-
-#~ msgid "After %s partition %s,"
-#~ msgstr "Després de %s partició %s,"
-
-#~ msgid "linear"
-#~ msgstr "lineal"
-
-#~ msgid "Linear (needed for some SCSI drives)"
-#~ msgstr "Lineal (necessari per a algunes unitats SCSI)"
-
-#~ msgid "beginner"
-#~ msgstr "principiant"
-
-#~ msgid "developer"
-#~ msgstr "desenvolupador"
-
-#~ msgid "Password:"
-#~ msgstr "Contrasenya:"
-
-#~ msgid "User name:"
-#~ msgstr "Nom d'usuari:"
-
-#~ msgid ""
-#~ "Failed to create an HTP boot floppy.\n"
-#~ "You may have to restart installation and give ``%s'' at the prompt"
-#~ msgstr ""
-#~ "No s'ha pogut crear un disquet d'arrencada HTP.\n"
-#~ "Potser us caldrą reiniciar la instal·lació i introduir \"%s\" a "
-#~ "l'indicador"
-
-#~ msgid "It is necessary to restart installation with the new parameters"
-#~ msgstr "Cal reiniciar la instal·lació amb els nous parąmetres"
-
-#~ msgid "It is necessary to restart installation booting on the floppy"
-#~ msgstr "Cal reiniciar la instal·lació arrencant des del disquet"
-
-#~ msgid ""
-#~ "Enter a floppy to create an HTP enabled boot\n"
-#~ "(all data on floppy will be lost)"
-#~ msgstr ""
-#~ "Introduļu un disquet per una arrencada habilitada per a HTP\n"
-#~ "(es perdran totes les dades del disquet)"
-
-#~ msgid ""
-#~ "Linux does not yet fully support ultra dma 66.\n"
-#~ "As a work-around i can make a custom floppy giving access the hard drive "
-#~ "on ide2 and ide3"
-#~ msgstr ""
-#~ "El Linux encara no suporta completament l'ultra dma 66.\n"
-#~ "Com a alternativa, puc fer un disquet personalitzat que doni accés a tot "
-#~ "el disc dur a ide2 i ide3"
-
-#~ msgid "A entry %s already exists"
-#~ msgstr "Ja existeix una entrada %s"
-
-#~ msgid "Installation CD Nr 1"
-#~ msgstr "CD d'instal·lació Nr 1"
-
-#~ msgid "Local LAN"
-#~ msgstr "LAN local"
diff --git a/perl-install/share/po/cs.po b/perl-install/share/po/cs.po
deleted file mode 100644
index 3b88dd7d4..000000000
--- a/perl-install/share/po/cs.po
+++ /dev/null
@@ -1,12241 +0,0 @@
-# Czech messages for DrakX.
-# Copyright (C) 1999 Free Software Foundation, Inc.
-# Copyright (C) 1999 MandrakeSoft
-# Vladimķr Marek <vlmarek@volny.cz>, 2000
-# Radek Vybiral <Radek.Vybiral@vsb.cz>, 2000
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: DrakX VERSION\n"
-"POT-Creation-Date: 2002-03-11 18:29+0100\n"
-"PO-Revision-Date: 2002-03-13 14:25GMT+0100\n"
-"Last-Translator: Radek Vybķral <Radek.Vybiral@vsb.cz>\n"
-"Language-Team: Czech <cs@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-2\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 0.9.5\n"
-
-#: ../../Xconfigurator.pm_.c:242
-msgid "Configure all heads independently"
-msgstr "Konfigurovat v¹echny monitory nezįvisle"
-
-#: ../../Xconfigurator.pm_.c:243
-msgid "Use Xinerama extension"
-msgstr "Pou¾ķt roz¹ķųenķ Xinerama"
-
-#: ../../Xconfigurator.pm_.c:246
-#, c-format
-msgid "Configure only card \"%s\" (%s)"
-msgstr "Konfigurovat pouze kartu \"%s\" (%s)"
-
-#: ../../Xconfigurator.pm_.c:249
-msgid "Multi-head configuration"
-msgstr "Konfigurace dvou monitorł"
-
-#: ../../Xconfigurator.pm_.c:250
-msgid ""
-"Your system support multiple head configuration.\n"
-"What do you want to do?"
-msgstr ""
-"Vį¹ systém podporuje zobrazenķ na dvou monitorech.\n"
-"Co chcete dģlat?"
-
-#: ../../Xconfigurator.pm_.c:261
-msgid "Graphic card"
-msgstr "Grafickį karta"
-
-#: ../../Xconfigurator.pm_.c:262
-msgid "Select a graphic card"
-msgstr "Zvolte typ va¹ķ grafické karty"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "Choose a X server"
-msgstr "Zvolte X server"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "X server"
-msgstr "X server"
-
-#: ../../Xconfigurator.pm_.c:293
-msgid "Choose a X driver"
-msgstr "Zvolte ovladač pro X server"
-
-#: ../../Xconfigurator.pm_.c:293
-msgid "X driver"
-msgstr "Ovladač pro X"
-
-#: ../../Xconfigurator.pm_.c:360 ../../Xconfigurator.pm_.c:366
-#: ../../Xconfigurator.pm_.c:416 ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s"
-msgstr "XFree %s"
-
-#: ../../Xconfigurator.pm_.c:363
-msgid "Which configuration of XFree do you want to have?"
-msgstr "Které XFree by jste chtģli pou¾ķt?"
-
-#: ../../Xconfigurator.pm_.c:374
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"Va¹e karta podporuje 3D akceleraci, ale pouze s XFree %s.\n"
-"Pokud pou¾ijete XFree %s, mł¾ete na druhou stranu dosįhnout lep¹ķch vżsledkł "
-"ve 2D."
-
-#: ../../Xconfigurator.pm_.c:376 ../../Xconfigurator.pm_.c:409
-#, c-format
-msgid "Your card can have 3D hardware acceleration support with XFree %s."
-msgstr "S XFree %s mł¾e va¹e karta vyu¾ķt 3D hardwarové akcelerace."
-
-#: ../../Xconfigurator.pm_.c:378 ../../Xconfigurator.pm_.c:411
-#: ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s with 3D hardware acceleration"
-msgstr "XFree %s s hardwarovou 3D akceleracķ"
-
-#: ../../Xconfigurator.pm_.c:386 ../../Xconfigurator.pm_.c:400
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER."
-msgstr ""
-"S XFree %s mł¾e va¹e karta vyu¾ķt 3D hardwarové akcelerace.\n"
-" TOTO JE POUZE EXPERIMENTĮLNĶ VERZE, A MŁ®E VÉST K NESTABILITĢ SYSTÉMU."
-
-#: ../../Xconfigurator.pm_.c:388 ../../Xconfigurator.pm_.c:402
-#, c-format
-msgid "XFree %s with EXPERIMENTAL 3D hardware acceleration"
-msgstr "XFree %s s EXPERIMENTĮLNĶ 3D hardwarovou akceleracķ"
-
-#: ../../Xconfigurator.pm_.c:397
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"Va¹e karta podporuje 3D akceleraci, ale pouze s XFree %s,\n"
-"TOTO JE POUZE EXPERIMENTĮLNĶ VERZE, A MŁ®E VÉST K NESTABILITĢ SYSTÉMU.\n"
-"Va¹e karta je podporovįna i v XFree %s, kde mł¾e mķt lep¹ķ podporu pro 2D."
-
-#: ../../Xconfigurator.pm_.c:417
-msgid "Xpmac (installation display driver)"
-msgstr "Xpmac (instalačnķ ovladač pro obrazovku)"
-
-#: ../../Xconfigurator.pm_.c:421
-msgid "XFree configuration"
-msgstr "Nastavenķ XFree"
-
-#: ../../Xconfigurator.pm_.c:496
-msgid "Select the memory size of your graphic card"
-msgstr "Kolik pamģti je na va¹ķ grafické kartģ ?"
-
-#: ../../Xconfigurator.pm_.c:550
-msgid "Choose options for server"
-msgstr "Zvolte mo¾nosti pro danż X server"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Choose a monitor"
-msgstr "Zvolte typ svého monitoru"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Monitor"
-msgstr "Monitor"
-
-#: ../../Xconfigurator.pm_.c:577
-msgid ""
-"The two critical parameters are the vertical refresh rate, which is the "
-"rate\n"
-"at which the whole screen is refreshed, and most importantly the horizontal\n"
-"sync rate, which is the rate at which scanlines are displayed.\n"
-"\n"
-"It is VERY IMPORTANT that you do not specify a monitor type with a sync "
-"range\n"
-"that is beyond the capabilities of your monitor: you may damage your "
-"monitor.\n"
-" If in doubt, choose a conservative setting."
-msgstr ""
-"Dva rozhodujķcķ parametry jsou: vertikįlnķ synchronizačnķ frekvence, co¾ je\n"
-"frekvence, kterou je obnovovįna celį obrazovka, a frekvence ųįdkové\n"
-" synchronizace (horiz. sync. rate), co¾ je frekvence jakou jsou zobrazovįny\n"
-"jednotlivé mikroųįdky (scanline).\n"
-"\n"
-"Je VELMI DŁLE®ITÉ abyste nezvolili typ monitoru se schopnostmi vy¹¹ķmi ne¾ "
-"mį\n"
-"vį¹ monitor, proto¾e byste si ho tķm mohli po¹kodit. Jestli¾e si nejste "
-"jistķ\n"
-"zvolte radģji typ s ni¾¹ķmi schopnostmi."
-
-#: ../../Xconfigurator.pm_.c:584
-msgid "Horizontal refresh rate"
-msgstr "Horizontįlnķ(ųįdkovį) synchronizace"
-
-#: ../../Xconfigurator.pm_.c:585
-msgid "Vertical refresh rate"
-msgstr "Vertikįlnķ(obrazovkovį) synchronizace"
-
-#: ../../Xconfigurator.pm_.c:622
-msgid "Monitor not configured"
-msgstr "Monitor nenķ nastaven"
-
-#: ../../Xconfigurator.pm_.c:625
-msgid "Graphic card not configured yet"
-msgstr "Grafickį karta je¹tģ nenķ nastavena"
-
-#: ../../Xconfigurator.pm_.c:628
-msgid "Resolutions not chosen yet"
-msgstr "Je¹tģ nejsou zvolena rozli¹enķ"
-
-#: ../../Xconfigurator.pm_.c:646
-msgid "Do you want to test the configuration?"
-msgstr "Chcete si vyzkou¹et nastavenķ?"
-
-#: ../../Xconfigurator.pm_.c:650
-msgid "Warning: testing this graphic card may freeze your computer"
-msgstr "Varovįnķ: na této grafické kartģ je testovįnķ nebezpečné"
-
-#: ../../Xconfigurator.pm_.c:653
-msgid "Test of the configuration"
-msgstr "Vyzkou¹et nastavenķ"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid ""
-"\n"
-"try to change some parameters"
-msgstr ""
-"\n"
-"zkuste zmģnit nģkteré parametry"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid "An error has occurred:"
-msgstr "Vyskytla se tato chyba:"
-
-#: ../../Xconfigurator.pm_.c:731
-#, c-format
-msgid "Leaving in %d seconds"
-msgstr "Test skončķ automaticky za %d sekund"
-
-#: ../../Xconfigurator.pm_.c:742
-msgid "Is this the correct setting?"
-msgstr "Je to sprįvné nastavenķ?"
-
-#: ../../Xconfigurator.pm_.c:751
-msgid "An error has occurred, try to change some parameters"
-msgstr "Vyskytla se chyba, zkuste zmģnit nģkteré parametry"
-
-#: ../../Xconfigurator.pm_.c:822
-msgid "Resolution"
-msgstr "Rozli¹enķ"
-
-#: ../../Xconfigurator.pm_.c:874
-msgid "Choose the resolution and the color depth"
-msgstr "Vyberte si rozli¹enķ a barevnou hloubku"
-
-#: ../../Xconfigurator.pm_.c:876
-#, c-format
-msgid "Graphic card: %s"
-msgstr "Grafickį karta: %s"
-
-#: ../../Xconfigurator.pm_.c:877
-#, c-format
-msgid "XFree86 server: %s"
-msgstr "XFree86 server: %s"
-
-#: ../../Xconfigurator.pm_.c:891 ../../diskdrake/interactive.pm_.c:259
-#: ../../install_steps_interactive.pm_.c:208
-msgid "More"
-msgstr "Vķce"
-
-#: ../../Xconfigurator.pm_.c:891 ../../install_gtk.pm_.c:84
-#: ../../install_steps_gtk.pm_.c:328 ../../interactive.pm_.c:127
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_http.pm_.c:104
-#: ../../interactive_newt.pm_.c:170 ../../interactive_stdio.pm_.c:141
-#: ../../interactive_stdio.pm_.c:142 ../../my_gtk.pm_.c:686
-#: ../../my_gtk.pm_.c:1019 ../../my_gtk.pm_.c:1041
-#: ../../standalone/drakbackup_.c:2298 ../../standalone/drakbackup_.c:2369
-#: ../../standalone/drakbackup_.c:2385
-msgid "Ok"
-msgstr "Ok"
-
-#: ../../Xconfigurator.pm_.c:893 ../../network/netconnect.pm_.c:169
-#: ../../printerdrake.pm_.c:2470 ../../standalone/draknet_.c:275
-#: ../../standalone/draknet_.c:278
-msgid "Expert Mode"
-msgstr "Expertnķ re¾im"
-
-#: ../../Xconfigurator.pm_.c:894
-msgid "Show all"
-msgstr "Ukįzat v¹e"
-
-#: ../../Xconfigurator.pm_.c:939
-msgid "Resolutions"
-msgstr "Rozli¹enķ"
-
-#: ../../Xconfigurator.pm_.c:1509
-#, c-format
-msgid "Keyboard layout: %s\n"
-msgstr "Rozlo¾enķ klįvesnice: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1510
-#, c-format
-msgid "Mouse type: %s\n"
-msgstr "Typ my¹i: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1511
-#, c-format
-msgid "Mouse device: %s\n"
-msgstr "Pųķpojenķ my¹i: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1512
-#, c-format
-msgid "Monitor: %s\n"
-msgstr "Monitor: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1513
-#, c-format
-msgid "Monitor HorizSync: %s\n"
-msgstr "Horizontįlnķ frekvence monitoru: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1514
-#, c-format
-msgid "Monitor VertRefresh: %s\n"
-msgstr "Vertikįlnķ frekvence monitoru: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1515
-#, c-format
-msgid "Graphic card: %s\n"
-msgstr "Grafickį karta: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1516
-#, c-format
-msgid "Graphic card identification: %s\n"
-msgstr "Identifikace grafické karty: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1517
-#, c-format
-msgid "Graphic memory: %s kB\n"
-msgstr "Pamģ» na gr. kartģ: %s kB\n"
-
-#: ../../Xconfigurator.pm_.c:1519
-#, c-format
-msgid "Color depth: %s\n"
-msgstr "Barevnį hloubka: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1520
-#, c-format
-msgid "Resolution: %s\n"
-msgstr "Rozli¹enķ: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1522
-#, c-format
-msgid "XFree86 server: %s\n"
-msgstr "XFree86 server: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1523
-#, c-format
-msgid "XFree86 driver: %s\n"
-msgstr "XFree86 ovladač: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1541
-msgid "Preparing X-Window configuration"
-msgstr "Pųipravuji nastavenķ X-Window"
-
-#: ../../Xconfigurator.pm_.c:1561
-msgid "What do you want to do?"
-msgstr "Co chcete dģlat?"
-
-#: ../../Xconfigurator.pm_.c:1566
-msgid "Change Monitor"
-msgstr "Zmģnit monitor"
-
-#: ../../Xconfigurator.pm_.c:1567
-msgid "Change Graphic card"
-msgstr "Zmģnit grafickou kartu"
-
-#: ../../Xconfigurator.pm_.c:1570
-msgid "Change Server options"
-msgstr "Zmģnit parametry X Serveru"
-
-#: ../../Xconfigurator.pm_.c:1571
-msgid "Change Resolution"
-msgstr "Zmģnit rozli¹enķ"
-
-#: ../../Xconfigurator.pm_.c:1572
-msgid "Show information"
-msgstr "Zobrazit informace"
-
-#: ../../Xconfigurator.pm_.c:1573
-msgid "Test again"
-msgstr "Znovu vyzkou¹et nastavenķ X"
-
-#: ../../Xconfigurator.pm_.c:1574 ../../printerdrake.pm_.c:2473
-#: ../../standalone/logdrake_.c:225
-msgid "Quit"
-msgstr "Konec"
-
-#: ../../Xconfigurator.pm_.c:1582
-#, c-format
-msgid ""
-"Keep the changes?\n"
-"Current configuration is:\n"
-"\n"
-"%s"
-msgstr ""
-"Zachovat zmģny?\n"
-"Aktuįlnķ konfigurace je:\n"
-"\n"
-"%s"
-
-#: ../../Xconfigurator.pm_.c:1603
-msgid "X at startup"
-msgstr "Spou¹tķ se X"
-
-#: ../../Xconfigurator.pm_.c:1604
-msgid ""
-"I can set up your computer to automatically start X upon booting.\n"
-"Would you like X to start when you reboot?"
-msgstr ""
-"Mł¾u nastavit vį¹ počķtač tak, aby automaticky spustil X pųi startu.\n"
-"Chcete aby počķtač po zapnutķ spustil grafickż re¾im?"
-
-#: ../../Xconfigurator.pm_.c:1610
-#, c-format
-msgid "Please relog into %s to activate the changes"
-msgstr "Pro aktivaci zmģn se prosķm znovu pųihlaste na %s"
-
-#: ../../Xconfigurator.pm_.c:1625
-msgid "Please log out and then use Ctrl-Alt-BackSpace"
-msgstr "Prosķm odhlaste se a pak stisknģte Ctrl-Alt-Backspace"
-
-#: ../../Xconfigurator_consts.pm_.c:6
-msgid "256 colors (8 bits)"
-msgstr "256 barev (8 bitł)"
-
-#: ../../Xconfigurator_consts.pm_.c:7
-msgid "32 thousand colors (15 bits)"
-msgstr "32 tisķc barev (15 bitł)"
-
-#: ../../Xconfigurator_consts.pm_.c:8
-msgid "65 thousand colors (16 bits)"
-msgstr "65 tisķc barev (16 bitł)"
-
-#: ../../Xconfigurator_consts.pm_.c:9
-msgid "16 million colors (24 bits)"
-msgstr "16 miliónł barev (24 bitł)"
-
-#: ../../Xconfigurator_consts.pm_.c:10
-msgid "4 billion colors (32 bits)"
-msgstr "4 miliardy barev (32 bitł)"
-
-#: ../../Xconfigurator_consts.pm_.c:113
-msgid "256 kB"
-msgstr "256 kB"
-
-#: ../../Xconfigurator_consts.pm_.c:114
-msgid "512 kB"
-msgstr "512 kB"
-
-#: ../../Xconfigurator_consts.pm_.c:115
-msgid "1 MB"
-msgstr "1 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:116
-msgid "2 MB"
-msgstr "2 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:117
-msgid "4 MB"
-msgstr "4 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:118
-msgid "8 MB"
-msgstr "8 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:119
-msgid "16 MB"
-msgstr "16 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:120
-msgid "32 MB"
-msgstr "32 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:121
-msgid "64 MB or more"
-msgstr "64 MB nebo vķce"
-
-#: ../../Xconfigurator_consts.pm_.c:129
-msgid "Standard VGA, 640x480 at 60 Hz"
-msgstr "Klasické VGA, 640x480 pųi 60 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:130
-msgid "Super VGA, 800x600 at 56 Hz"
-msgstr "Super VGA, 800x600 pųi 56 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:131
-msgid "8514 Compatible, 1024x768 at 87 Hz interlaced (no 800x600)"
-msgstr "Kompatibilnķ s 8514, 1024x768 pųi 87 Hz proklįdanģ (ne 800x600)"
-
-#: ../../Xconfigurator_consts.pm_.c:132
-msgid "Super VGA, 1024x768 at 87 Hz interlaced, 800x600 at 56 Hz"
-msgstr "Super VGA, 1024x768 pųi 87 Hz proklįdanģ, 800x600 pųi 56 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:133
-msgid "Extended Super VGA, 800x600 at 60 Hz, 640x480 at 72 Hz"
-msgstr "Lep¹ķ Super VGA, 800x600 pųi 60 Hz, 640x480 pųi 72 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:134
-msgid "Non-Interlaced SVGA, 1024x768 at 60 Hz, 800x600 at 72 Hz"
-msgstr "Neproklįdanį SVGA, 1024x768 pųi 60 Hz, 800x600 pųi 72 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:135
-msgid "High Frequency SVGA, 1024x768 at 70 Hz"
-msgstr "Vysokofrekvenčnķ SVGA, 1027x768 pųi 70 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:136
-msgid "Multi-frequency that can do 1280x1024 at 60 Hz"
-msgstr "Multifrekvenčnķ kterż umķ 1280x1024 pųi 60 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:137
-msgid "Multi-frequency that can do 1280x1024 at 74 Hz"
-msgstr "Multifrekvenčnķ, kterż umķ 1280x1024 pųi 74 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:138
-msgid "Multi-frequency that can do 1280x1024 at 76 Hz"
-msgstr "Multifrekvenčnķ, kterż umķ 1280x1024 pųi 76 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:139
-msgid "Monitor that can do 1600x1200 at 70 Hz"
-msgstr "Monitor, kterż umķ 1600x1200 pųi 70 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:140
-msgid "Monitor that can do 1600x1200 at 76 Hz"
-msgstr "Monitor, kterż umķ 1600x1200 pųi 76 Hz"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141
-msgid "First sector of boot partition"
-msgstr "Prvnķ sektor zavįdģcķho diskového oddķlu"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141 ../../any.pm_.c:218
-msgid "First sector of drive (MBR)"
-msgstr "Prvnķ sektor disku (MBR)"
-
-#: ../../any.pm_.c:120
-msgid "SILO Installation"
-msgstr "Instalace SILO"
-
-#: ../../any.pm_.c:121 ../../any.pm_.c:134
-msgid "Where do you want to install the bootloader?"
-msgstr "Kam chcete nainstalovat zavįdģcķ program?"
-
-#: ../../any.pm_.c:133
-msgid "LILO/grub Installation"
-msgstr "Instalace LILO/Grub"
-
-#: ../../any.pm_.c:145 ../../any.pm_.c:159
-msgid "SILO"
-msgstr "SILO"
-
-#: ../../any.pm_.c:147
-msgid "LILO with text menu"
-msgstr "LILO s textovou nabķdkou"
-
-#: ../../any.pm_.c:148 ../../any.pm_.c:159
-msgid "LILO with graphical menu"
-msgstr "LILO s grafickou nabķdkou"
-
-#: ../../any.pm_.c:151
-msgid "Grub"
-msgstr "Grub"
-
-#: ../../any.pm_.c:155
-msgid "Boot from DOS/Windows (loadlin)"
-msgstr "Spu¹tģnķ s DOS/Windows (loadlin)"
-
-#: ../../any.pm_.c:157 ../../any.pm_.c:159
-msgid "Yaboot"
-msgstr "Yaboot"
-
-#: ../../any.pm_.c:166 ../../any.pm_.c:198
-msgid "Bootloader main options"
-msgstr "Zįkladnķ nastavenķ zavįdģcķho programu"
-
-#: ../../any.pm_.c:167 ../../any.pm_.c:199
-msgid "Bootloader to use"
-msgstr "Zavįdģcķ program"
-
-#: ../../any.pm_.c:169
-msgid "Bootloader installation"
-msgstr "Instalace zavįdģcķho programu"
-
-#: ../../any.pm_.c:171 ../../any.pm_.c:201
-msgid "Boot device"
-msgstr "Startovacķ zaųķzenķ"
-
-#: ../../any.pm_.c:172
-msgid "LBA (doesn't work on old BIOSes)"
-msgstr "LBA (nefunguje se starżm BIOSem)"
-
-#: ../../any.pm_.c:173
-msgid "Compact"
-msgstr "Kompaktnķ"
-
-#: ../../any.pm_.c:173
-msgid "compact"
-msgstr "kompaktnķ"
-
-#: ../../any.pm_.c:174 ../../any.pm_.c:298
-msgid "Video mode"
-msgstr "Textovż re¾im"
-
-#: ../../any.pm_.c:176
-msgid "Delay before booting default image"
-msgstr "Prodleva pųed automatickżm spu¹tģnķm"
-
-#: ../../any.pm_.c:178 ../../any.pm_.c:796
-#: ../../install_steps_interactive.pm_.c:1115 ../../network/modem.pm_.c:48
-#: ../../printerdrake.pm_.c:708 ../../printerdrake.pm_.c:806
-#: ../../standalone/draknet_.c:625
-msgid "Password"
-msgstr "Heslo"
-
-#: ../../any.pm_.c:179 ../../any.pm_.c:797
-#: ../../install_steps_interactive.pm_.c:1116
-msgid "Password (again)"
-msgstr "Heslo (podruhé)"
-
-#: ../../any.pm_.c:180
-msgid "Restrict command line options"
-msgstr "Omezenķ nastavenķ z pųķkazové ųįdky"
-
-#: ../../any.pm_.c:180
-msgid "restrict"
-msgstr "omezenķ"
-
-#: ../../any.pm_.c:182
-msgid "Clean /tmp at each boot"
-msgstr "Vyčistit /tmp pųi ka¾dém startu"
-
-#: ../../any.pm_.c:183
-#, c-format
-msgid "Precise RAM size if needed (found %d MB)"
-msgstr "Pokud je tųeba, upųesnģte velikost pamģti (nalezeno %d MB)"
-
-#: ../../any.pm_.c:185
-msgid "Enable multi profiles"
-msgstr "Povolit vķce profilł"
-
-#: ../../any.pm_.c:189
-msgid "Give the ram size in MB"
-msgstr "Zadejte velikost pamģti v MB"
-
-#: ../../any.pm_.c:191
-msgid ""
-"Option ``Restrict command line options'' is of no use without a password"
-msgstr ""
-"Volba ''Omezenķ nastavenķ z pųķkazové ųįdky'' je bezpųedmģtné bez hesla"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../diskdrake/interactive.pm_.c:1135
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "Please try again"
-msgstr "Zkuste to znovu, prosķm"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "The passwords do not match"
-msgstr "Hesla nejsou shodnį"
-
-#: ../../any.pm_.c:200
-msgid "Init Message"
-msgstr "Śvodnķ zprįva"
-
-#: ../../any.pm_.c:202
-msgid "Open Firmware Delay"
-msgstr "Prodleva pro firmware"
-
-#: ../../any.pm_.c:203
-msgid "Kernel Boot Timeout"
-msgstr "Prodleva pųi spu¹tģnķ"
-
-#: ../../any.pm_.c:204
-msgid "Enable CD Boot?"
-msgstr "Povolit spu¹tģnķ z CD?"
-
-#: ../../any.pm_.c:205
-msgid "Enable OF Boot?"
-msgstr "Povolit zavadģč OF?"
-
-#: ../../any.pm_.c:206
-msgid "Default OS?"
-msgstr "Vżchozķ OS?"
-
-#: ../../any.pm_.c:240
-msgid ""
-"You decided to install the bootloader on a partition.\n"
-"This implies you already have a bootloader on the hard drive you boot (eg: "
-"System Commander).\n"
-"\n"
-"On which drive are you booting?"
-msgstr ""
-"Rozhodli jste se nainstalovat zavadģč systému na oddķl.\n"
-"To znamenį, ¾e ji¾ zavadģč na disku, ze kterého spou¹tķte systém nģjakż je "
-"(napų. System Commander).\n"
-"\n"
-"Ze kterého disku spou¹tķte systém?"
-
-#: ../../any.pm_.c:255
-msgid ""
-"Here are the different entries.\n"
-"You can add some more or change the existing ones."
-msgstr ""
-"Tady jsou v¹echny zįznamy.\n"
-"Mł¾ete pųidat dal¹ķ nebo zmģnit stįvajķcķ."
-
-#: ../../any.pm_.c:265 ../../standalone/drakbackup_.c:752
-#: ../../standalone/drakbackup_.c:861 ../../standalone/drakfont_.c:789
-#: ../../standalone/drakfont_.c:826
-msgid "Add"
-msgstr "Pųidat"
-
-#: ../../any.pm_.c:265 ../../any.pm_.c:784 ../../diskdrake/hd_gtk.pm_.c:153
-#: ../../diskdrake/removable.pm_.c:27 ../../diskdrake/smbnfs_gtk.pm_.c:86
-#: ../../interactive_http.pm_.c:153
-msgid "Done"
-msgstr "Hotovo"
-
-#: ../../any.pm_.c:265
-msgid "Modify"
-msgstr "Zmģnit"
-
-#: ../../any.pm_.c:273
-msgid "Which type of entry do you want to add?"
-msgstr "Jakż typ zįznamu chcete pųidat?"
-
-#: ../../any.pm_.c:274 ../../standalone/drakbackup_.c:895
-msgid "Linux"
-msgstr "Linux"
-
-#: ../../any.pm_.c:274
-msgid "Other OS (SunOS...)"
-msgstr "Jinż systém (SunOs...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (MacOS...)"
-msgstr "Jinż systém (MacOs...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (windows...)"
-msgstr "Jinż systém (Windows...)"
-
-#: ../../any.pm_.c:294
-msgid "Image"
-msgstr "Obraz(image)"
-
-#: ../../any.pm_.c:295 ../../any.pm_.c:306
-msgid "Root"
-msgstr "Koųenovż(root)"
-
-#: ../../any.pm_.c:296 ../../any.pm_.c:325
-msgid "Append"
-msgstr "Pųipojit"
-
-#: ../../any.pm_.c:300
-msgid "Initrd"
-msgstr "Initrd"
-
-#: ../../any.pm_.c:301
-msgid "Read-write"
-msgstr "Pro čtenķ i zįpis"
-
-#: ../../any.pm_.c:308
-msgid "Table"
-msgstr "Tabulka"
-
-#: ../../any.pm_.c:309
-msgid "Unsafe"
-msgstr "Nejistż"
-
-#: ../../any.pm_.c:316 ../../any.pm_.c:321 ../../any.pm_.c:324
-msgid "Label"
-msgstr "Značka"
-
-#: ../../any.pm_.c:318 ../../any.pm_.c:329
-msgid "Default"
-msgstr "Vżchozķ"
-
-#: ../../any.pm_.c:326
-msgid "Initrd-size"
-msgstr "Initrd-velikost"
-
-#: ../../any.pm_.c:328
-msgid "NoVideo"
-msgstr "Bez Videa"
-
-#: ../../any.pm_.c:336
-msgid "Remove entry"
-msgstr "Odstranit zįznam"
-
-#: ../../any.pm_.c:339
-msgid "Empty label not allowed"
-msgstr "Prįzdnį značka nenķ povolena"
-
-#: ../../any.pm_.c:340
-msgid "You must specify a kernel image"
-msgstr "Musķte zadat soubor s jįdrem"
-
-#: ../../any.pm_.c:340
-msgid "You must specify a root partition"
-msgstr "Musķte zadat koųenovż oddķl"
-
-#: ../../any.pm_.c:341
-msgid "This label is already used"
-msgstr "Tato značka se ji¾ pou¾ķvį"
-
-#: ../../any.pm_.c:656
-#, c-format
-msgid "Found %s %s interfaces"
-msgstr "Na¹el jsem %s %s rozhranķ"
-
-#: ../../any.pm_.c:657
-msgid "Do you have another one?"
-msgstr "Mįte je¹tģ nģjaké jiné?"
-
-#: ../../any.pm_.c:658
-#, c-format
-msgid "Do you have any %s interfaces?"
-msgstr "Mįte nģjaké %s rozhranķ?"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:832 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "No"
-msgstr "Ne"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:831 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "Yes"
-msgstr "Ano"
-
-#: ../../any.pm_.c:661
-msgid "See hardware info"
-msgstr "Ukįzat informace o hardware"
-
-#. -PO: the first %s is the card type (scsi, network, sound,...)
-#. -PO: the second is the vendor+model name
-#: ../../any.pm_.c:695
-#, c-format
-msgid "Installing driver for %s card %s"
-msgstr "Instaluji ovladač pro %s kartu %s"
-
-#: ../../any.pm_.c:696
-#, c-format
-msgid "(module %s)"
-msgstr "(modul %s)"
-
-#. -PO: the %s is the driver type (scsi, network, sound,...)
-#: ../../any.pm_.c:707
-#, c-format
-msgid "Which %s driver should I try?"
-msgstr "Kterż %s ovladač mįm zkusit?"
-
-#: ../../any.pm_.c:715
-#, c-format
-msgid ""
-"In some cases, the %s driver needs to have extra information to work\n"
-"properly, although it normally works fine without. Would you like to "
-"specify\n"
-"extra options for it or allow the driver to probe your machine for the\n"
-"information it needs? Occasionally, probing will hang a computer, but it "
-"should\n"
-"not cause any damage."
-msgstr ""
-"V nģkterżch pųķpadech potųebuje ovladač %s pro svoji sprįvnou funkci dal¹ķ\n"
-"informace, pųesto¾e normįlnģ funguje i bez nich. Chtģli byste zadat\n"
-"nģjaké doplņujķcķ mo¾nosti, nebo radģji nechįte ovladač samostatnģ "
-"prozkoumat\n"
-"hardware va¹eho počķtače, aby zķskal informace které potųebuje? Zkoumįnķ\n"
-"hardware mł¾e ve vyjķmečnżch pųķpadech zpłsobit zamrznutķ počķtače, ale "
-"nemģlo\n"
-"by v ¾įdném pųķpadģ zpłsobit jiné ¹kody."
-
-#: ../../any.pm_.c:720
-msgid "Autoprobe"
-msgstr "Automatické prozkoumįnķ"
-
-#: ../../any.pm_.c:720
-msgid "Specify options"
-msgstr "Zadejte mo¾nosti"
-
-#: ../../any.pm_.c:725
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Note that any address should be entered with the prefix 0x like '0x123'"
-msgstr ""
-"Nynķ lze zadat volby pro pųķslu¹nż modul %s.\n"
-"Pozn.: ka¾dį adresa by mģla bżt ve tvaru 0x napų. '0x123'"
-
-#: ../../any.pm_.c:731
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Options are in format ``name=value name2=value2 ...''.\n"
-"For instance, ``io=0x300 irq=7''"
-msgstr ""
-"Nynķ mł¾ete poskytnout modulu %s dal¹ķ parametry.\n"
-"Volby se zadįvajķ ve tvaru ''jméno=hodnota jméno2=hodnota2 ...''.\n"
-"Napųķklad, ''io=0x300 irq=7''"
-
-#: ../../any.pm_.c:734
-msgid "Module options:"
-msgstr "Volby modulu:"
-
-#: ../../any.pm_.c:745
-#, c-format
-msgid ""
-"Loading module %s failed.\n"
-"Do you want to try again with other parameters?"
-msgstr ""
-"Spu¹tģnķ modulu %s selhalo.\n"
-"Chcete to zkusit s jinżmi parametry?"
-
-#: ../../any.pm_.c:761
-msgid "access to X programs"
-msgstr "pųķstup k programłm v X prostųedķ"
-
-#: ../../any.pm_.c:762
-msgid "access to rpm tools"
-msgstr "pųķstup k rpm nįstrojłm"
-
-#: ../../any.pm_.c:763
-msgid "allow \"su\""
-msgstr "povolit \"su\""
-
-#: ../../any.pm_.c:764
-msgid "access to administrative files"
-msgstr "pųķstup k administrativnķm souborłm"
-
-#: ../../any.pm_.c:769
-#, c-format
-msgid "(already added %s)"
-msgstr "(u¾ byl pųidįn %s)"
-
-#: ../../any.pm_.c:774
-msgid "This password is too simple"
-msgstr "Toto heslo je pųķli¹ jednoduché"
-
-#: ../../any.pm_.c:775
-msgid "Please give a user name"
-msgstr "Prosķm zadejte u¾ivatelské jméno"
-
-#: ../../any.pm_.c:776
-msgid ""
-"The user name must contain only lower cased letters, numbers, `-' and `_'"
-msgstr "U¾ivatelské jméno mł¾e obsahovat pouze malį pķsmena, čķsla, '-' a '_'"
-
-#: ../../any.pm_.c:777
-msgid "This user name is already added"
-msgstr "Toto u¾ivatelské jméno u¾ bylo pųidįno"
-
-#: ../../any.pm_.c:781
-msgid "Add user"
-msgstr "Pųidat u¾ivatele"
-
-#: ../../any.pm_.c:782
-#, c-format
-msgid ""
-"Enter a user\n"
-"%s"
-msgstr ""
-"Zadejte u¾ivatele\n"
-"%s"
-
-#: ../../any.pm_.c:783
-msgid "Accept user"
-msgstr "Vytvoųit u¾ivatele"
-
-#: ../../any.pm_.c:794
-msgid "Real name"
-msgstr "Skutečné jméno"
-
-#: ../../any.pm_.c:795 ../../printerdrake.pm_.c:707
-#: ../../printerdrake.pm_.c:805
-msgid "User name"
-msgstr "U¾ivatelské jméno"
-
-#: ../../any.pm_.c:798
-msgid "Shell"
-msgstr "Shell"
-
-#: ../../any.pm_.c:800
-msgid "Icon"
-msgstr "Ikona"
-
-#: ../../any.pm_.c:828
-msgid "Autologin"
-msgstr "Automatické pųihlį¹enķ"
-
-#: ../../any.pm_.c:829
-msgid ""
-"I can set up your computer to automatically log on one user.\n"
-"Do you want to use this feature?"
-msgstr ""
-"Mł¾u nastavit vį¹ počķtač tak, aby automaticky pųihlįsil vybraného "
-"u¾ivatele.\n"
-"Chcete pou¾ķt tuto mo¾nost?"
-
-#: ../../any.pm_.c:833
-msgid "Choose the default user:"
-msgstr "Zvolte standardnķho u¾ivatele :"
-
-#: ../../any.pm_.c:834
-msgid "Choose the window manager to run:"
-msgstr "Vyberte si, kterż sprįvce oken mį bżt spou¹tģn:"
-
-#: ../../any.pm_.c:849
-msgid "Please choose a language to use."
-msgstr "Prosķm zvolte si jazyk, kterż chcete pou¾ķvat."
-
-#: ../../any.pm_.c:851
-msgid "You can choose other languages that will be available after install"
-msgstr "Mł¾ete si zvolit dal¹ķ jazyky, které budou dostupné po instalaci"
-
-#: ../../any.pm_.c:863 ../../install_steps_interactive.pm_.c:719
-#: ../../standalone/drakxtv_.c:54
-msgid "All"
-msgstr "V¹echno"
-
-#: ../../any.pm_.c:955
-msgid "Allow all users"
-msgstr "Povolit v¹em u¾ivatelłm"
-
-#: ../../any.pm_.c:955 ../../install_steps_interactive.pm_.c:521
-msgid "Custom"
-msgstr "Vlastnķ"
-
-#: ../../any.pm_.c:955
-msgid "No sharing"
-msgstr "Nesdķlet"
-
-#: ../../any.pm_.c:965 ../../network/smbnfs.pm_.c:45
-#, c-format
-msgid "The package %s needs to be installed. Do you want to install it?"
-msgstr "Balķček %s musķ bżt nainstalovįn. Chcete ho nainstalovat?"
-
-#: ../../any.pm_.c:968
-msgid "You can export using NFS or Samba. Which one do you want"
-msgstr "Nynķ lze provést export pųes NFS nebo Samba protokol. Kterż chcete"
-
-#: ../../any.pm_.c:976 ../../network/smbnfs.pm_.c:49
-#, c-format
-msgid "Mandatory package %s is missing"
-msgstr "Chybķ potųebnż balķček %s"
-
-#: ../../any.pm_.c:982
-msgid ""
-"Do you want to allow users to export some directories in their home?\n"
-"Allowing this will permit users to simply click on \"Share\" in konqueror "
-"and nautilus.\n"
-"\n"
-"\"Custom\" permit a per-user granularity.\n"
-msgstr ""
-"Chcete povolit u¾ivatelłm, aby si mohli sdķlet adresįųe ve svém domovském "
-"adresįųi?\n"
-"Pokud to povolķte, u¾ivatelłm stačķ pouze kliknout na \"Sdķlet\" v "
-"aplikacķch konqueror a nautilus.\n"
-"\n"
-"Lze také provést \"Vlastnķ\" povolenķ pro jednotlivé u¾ivatele.\n"
-
-#: ../../any.pm_.c:996 ../../bootlook.pm_.c:161
-#: ../../diskdrake/smbnfs_gtk.pm_.c:85 ../../install_steps_gtk.pm_.c:464
-#: ../../install_steps_gtk.pm_.c:522 ../../install_steps_interactive.pm_.c:594
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_stdio.pm_.c:141
-#: ../../my_gtk.pm_.c:687 ../../my_gtk.pm_.c:690 ../../my_gtk.pm_.c:1019
-#: ../../network/netconnect.pm_.c:47 ../../printerdrake.pm_.c:1586
-#: ../../standalone/drakautoinst_.c:204 ../../standalone/drakbackup_.c:2264
-#: ../../standalone/drakbackup_.c:2289 ../../standalone/drakbackup_.c:2310
-#: ../../standalone/drakbackup_.c:2331 ../../standalone/drakbackup_.c:2349
-#: ../../standalone/drakbackup_.c:2397 ../../standalone/drakbackup_.c:2417
-#: ../../standalone/drakbackup_.c:2436 ../../standalone/drakfont_.c:767
-#: ../../standalone/drakgw_.c:721 ../../standalone/draknet_.c:116
-#: ../../standalone/draknet_.c:148 ../../standalone/draknet_.c:290
-#: ../../standalone/draknet_.c:538 ../../standalone/draknet_.c:680
-#: ../../standalone/logdrake_.c:225 ../../standalone/logdrake_.c:512
-#: ../../standalone/tinyfirewall_.c:65
-msgid "Cancel"
-msgstr "Zru¹it"
-
-#: ../../any.pm_.c:996
-msgid "Launch userdrake"
-msgstr "Spustit userdrake"
-
-#: ../../any.pm_.c:998
-msgid ""
-"The per-user sharing uses the group \"fileshare\". \n"
-"You can use userdrake to add a user in this group."
-msgstr ""
-"Sdķlenķ mezi u¾ivateli pou¾ķvį skupinu \"fileshare\". \n"
-"U¾ivatele lze do této skupiny pųidat pomocķ nįstroje userdrake."
-
-#: ../../any.pm_.c:1035
-msgid "Welcome To Crackers"
-msgstr "Dveųe dokoųįn"
-
-#: ../../any.pm_.c:1036
-msgid "Poor"
-msgstr "Slabį"
-
-#: ../../any.pm_.c:1037 ../../mouse.pm_.c:31
-msgid "Standard"
-msgstr "Standardnķ"
-
-#: ../../any.pm_.c:1038
-msgid "High"
-msgstr "Vysokį"
-
-#: ../../any.pm_.c:1039
-msgid "Higher"
-msgstr "Vy¹¹ķ"
-
-#: ../../any.pm_.c:1040
-msgid "Paranoid"
-msgstr "Paranoidnķ"
-
-#: ../../any.pm_.c:1043
-msgid ""
-"This level is to be used with care. It makes your system more easy to use,\n"
-"but very sensitive: it must not be used for a machine connected to others\n"
-"or to the Internet. There is no password access."
-msgstr ""
-"Tato śroveņ musķ bżt pou¾ita s rozmyslem. Sice mł¾ete snadnģji pou¾ķvat "
-"svłj\n"
-"systém, ale na druhou stranu je velmi citlivż: Nesmķ bżt pou¾it pro\n"
-"počķtač pųipojenż k Internetu. Pro pųihlį¹enķ nenķ zapotųebķ ¾įdné heslo."
-
-#: ../../any.pm_.c:1046
-msgid ""
-"Password are now enabled, but use as a networked computer is still not "
-"recommended."
-msgstr ""
-"Hesla jsou nynķ aktivnķ, ale stįle nedoporučuji pou¾ķt tento počķtač na sķti."
-
-#: ../../any.pm_.c:1047
-msgid ""
-"This is the standard security recommended for a computer that will be used "
-"to connect to the Internet as a client."
-msgstr ""
-"Toto je standardnķ śroveņ zabezpečenķ pro počķtač, kterż je pou¾ķvįn jako "
-"klient pro pųipojenķ k internetu."
-
-#: ../../any.pm_.c:1048
-msgid ""
-"There are already some restrictions, and more automatic checks are run every "
-"night."
-msgstr ""
-"Existujķ zde nģkterį omezenķ a ka¾dou noc jsou spu¹tģny automatické testy."
-
-#: ../../any.pm_.c:1049
-msgid ""
-"With this security level, the use of this system as a server becomes "
-"possible.\n"
-"The security is now high enough to use the system as a server which accept\n"
-"connections from many clients. Note: if your machine is only a client on the "
-"Internet, you should better choose a lower level."
-msgstr ""
-"S touto bezpečnostnķ śrovnķ je mo¾né pou¾ķvat počķtač jako server.\n"
-"Bezpečnost je nynķ dostatečnį pro server s pųipojenķm mnoha klientł.\n"
-"Poznįmka: pokud je počķtač pou¾ķvįn pouze jako klient pro pųipojenķ k "
-"Internetu, je lep¹ķ zvolit ni¾¹ķ śroveņ."
-
-#: ../../any.pm_.c:1052
-msgid ""
-"Based on the previous level, but the system is entirely closed.\n"
-"Security features are at their maximum."
-msgstr ""
-"Tato śroveņ mį vlastnosti pųedchozķ śrovnģ, ale systém je śplnģ uzavųen.\n"
-"Zabezpečenķ je nastaveno na maximum."
-
-#: ../../any.pm_.c:1058
-msgid "Choose security level"
-msgstr "Zvolte si śroveņ zabezpečenķ"
-
-#: ../../any.pm_.c:1061
-msgid "Security level"
-msgstr "Śroveņ zabezpečenķ"
-
-#: ../../any.pm_.c:1063
-msgid "Use libsafe for servers"
-msgstr "Pou¾ķt libsafe pro servery"
-
-#: ../../any.pm_.c:1064
-msgid ""
-"A library which defends against buffer overflow and format string attacks."
-msgstr ""
-"Knihovna, které zabraņuje śtokłm proti pųetečenķ bufferu nebo proti ¹patnému "
-"formįtovįnķ ųetģzcł."
-
-# NOTE: this message will be displayed at boot time; that is
-# only the ascii charset will be available on most machines
-# so use only 7bit for this message (and do transliteration or
-# leave it in English, as it is the best for your language)
-#
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#: ../../bootloader.pm_.c:355
-#, c-format
-msgid ""
-"Welcome to %s the operating system chooser!\n"
-"\n"
-"Choose an operating system in the list above or\n"
-"wait %d seconds for default boot.\n"
-"\n"
-msgstr ""
-"Vita Vas %s, program pro start operacniho systemu!\n"
-"\n"
-"Vyberte si ze seznamu operacnich systemu nize nebo\n"
-"pockejte %d vterin pro automaticky start.\n"
-"\n"
-
-# NOTE: this message will be displayed by grub at boot time; that is
-# using the BIOS font; that means cp437 charset on 99.99% of PC computers
-# out there. It is the nsuggested that for non latin languages an ascii
-# transliteration be used; or maybe the english text be used; as it is best
-#
-# The lines must fit on screen, aka length < 80
-#
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:928
-msgid "Welcome to GRUB the operating system chooser!"
-msgstr "Vita Vas GRUB, program pro vyber operacniho systemu"
-
-# NOTE: this message will be displayed by grub at boot time; that is
-# using the BIOS font; that means cp437 charset on 99.99% of PC computers
-# out there. It is the nsuggested that for non latin languages an ascii
-# transliteration be used; or maybe the english text be used; as it is best
-#
-# The lines must fit on screen, aka length < 80
-#
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:931
-#, c-format
-msgid "Use the %c and %c keys for selecting which entry is highlighted."
-msgstr "Pro vyber polozek pouzijte klavesy %c a %c."
-
-# NOTE: this message will be displayed by grub at boot time; that is
-# using the BIOS font; that means cp437 charset on 99.99% of PC computers
-# out there. It is the nsuggested that for non latin languages an ascii
-# transliteration be used; or maybe the english text be used; as it is best
-#
-# The lines must fit on screen, aka length < 80
-#
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:934
-msgid "Press enter to boot the selected OS, 'e' to edit the"
-msgstr "Stisknete ENTER pro start vybraného OS, 'e' pro upravu"
-
-# NOTE: this message will be displayed by grub at boot time; that is
-# using the BIOS font; that means cp437 charset on 99.99% of PC computers
-# out there. It is the nsuggested that for non latin languages an ascii
-# transliteration be used; or maybe the english text be used; as it is best
-#
-# The lines must fit on screen, aka length < 80
-#
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:937
-msgid "commands before booting, or 'c' for a command-line."
-msgstr "spoustecich parametru, nebo 'c' pro prikazovou radku."
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:940
-#, c-format
-msgid "The highlighted entry will be booted automatically in %d seconds."
-msgstr "Vybrana polozka bude automaticky spustena za %d sekund."
-
-#: ../../bootloader.pm_.c:944
-msgid "not enough room in /boot"
-msgstr "nenķ dost mķsta v adresįųi /boot"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#. -PO: so you may need to put them in English or in a different language if MS-windows doesn't exist in your language
-#: ../../bootloader.pm_.c:1044
-msgid "Desktop"
-msgstr "Pracovnķ plocha"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#: ../../bootloader.pm_.c:1046
-msgid "Start Menu"
-msgstr "Nabķdka Start"
-
-#: ../../bootloader.pm_.c:1065
-#, c-format
-msgid "You can't install the bootloader on a %s partition\n"
-msgstr "Zavįdģcķ program nelze nainstalovat na oddķl %s\n"
-
-#: ../../bootlook.pm_.c:46
-msgid "no help implemented yet.\n"
-msgstr "nįpovģda zatķm nedostupnį.\n"
-
-#: ../../bootlook.pm_.c:62
-msgid "Boot Style Configuration"
-msgstr "Nastavenķ stylu zavįdģnķ"
-
-#: ../../bootlook.pm_.c:79 ../../standalone/logdrake_.c:101
-msgid "/_File"
-msgstr "_Soubor"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "/File/_Quit"
-msgstr "/Soubor/_Konec"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "<control>Q"
-msgstr "<control>K"
-
-#: ../../bootlook.pm_.c:91
-msgid "NewStyle Categorizing Monitor"
-msgstr "Novģj¹ķ zatųķdģnż monitor "
-
-#: ../../bootlook.pm_.c:92
-msgid "NewStyle Monitor"
-msgstr "Novģj¹ķ monitor"
-
-#: ../../bootlook.pm_.c:93
-msgid "Traditional Monitor"
-msgstr "Tradičnķ monitor"
-
-#: ../../bootlook.pm_.c:94
-msgid "Traditional Gtk+ Monitor"
-msgstr "Tradičnķ Gtk+ monitor"
-
-#: ../../bootlook.pm_.c:95
-msgid "Launch Aurora at boot time"
-msgstr "Spustit Auroru pųi startu"
-
-#: ../../bootlook.pm_.c:98
-msgid "Lilo/grub mode"
-msgstr "Re¾im Lilo/Grub"
-
-#: ../../bootlook.pm_.c:98
-msgid "Yaboot mode"
-msgstr "Re¾im Yaboot"
-
-#: ../../bootlook.pm_.c:104
-#, c-format
-msgid ""
-"You are currently using %s as Boot Manager.\n"
-"Click on Configure to launch the setup wizard."
-msgstr ""
-"Jako sprįvce spou¹tģnķ nynķ pou¾ķvįte %s.\n"
-"Pokud chcete spustit prłvodce nastavenķm, kliknģte na Konfigurovat."
-
-#: ../../bootlook.pm_.c:106 ../../standalone/drakbackup_.c:1467
-#: ../../standalone/drakbackup_.c:1478 ../../standalone/drakgw_.c:715
-#: ../../standalone/tinyfirewall_.c:59
-msgid "Configure"
-msgstr "Konfigurovat"
-
-#: ../../bootlook.pm_.c:141
-msgid "System mode"
-msgstr "Systémovż re¾im"
-
-#: ../../bootlook.pm_.c:143
-msgid "Launch the X-Window system at start"
-msgstr "Spustit X-Window pųi startu"
-
-#: ../../bootlook.pm_.c:148
-msgid "No, I don't want autologin"
-msgstr "Ne, nechci automatické pųihlį¹enķ"
-
-#: ../../bootlook.pm_.c:150
-msgid "Yes, I want autologin with this (user, desktop)"
-msgstr "Ano, chci automatické pųihlį¹enķ s tķmto (u¾ivatelem, desktopem)"
-
-#: ../../bootlook.pm_.c:160 ../../network/netconnect.pm_.c:102
-#: ../../standalone/drakbackup_.c:2441 ../../standalone/drakbackup_.c:3345
-#: ../../standalone/drakfont_.c:532 ../../standalone/drakfont_.c:655
-#: ../../standalone/drakfont_.c:719 ../../standalone/drakfont_.c:765
-#: ../../standalone/draknet_.c:109 ../../standalone/draknet_.c:141
-#: ../../standalone/draknet_.c:297 ../../standalone/draknet_.c:436
-#: ../../standalone/draknet_.c:522 ../../standalone/draknet_.c:565
-#: ../../standalone/draknet_.c:666 ../../standalone/logdrake_.c:505
-msgid "OK"
-msgstr "OK"
-
-#: ../../bootlook.pm_.c:229
-#, c-format
-msgid "can not open /etc/inittab for reading: %s"
-msgstr "nelze otevųķt /etc/inittab pro čtenķ: %s"
-
-#: ../../common.pm_.c:94
-msgid "GB"
-msgstr "GB"
-
-#: ../../common.pm_.c:94
-msgid "KB"
-msgstr "KB"
-
-#: ../../common.pm_.c:94
-msgid "MB"
-msgstr "MB"
-
-#: ../../common.pm_.c:102
-msgid "TB"
-msgstr "TB"
-
-#: ../../common.pm_.c:110
-#, c-format
-msgid "%d minutes"
-msgstr "%d minut(y)"
-
-#: ../../common.pm_.c:112
-msgid "1 minute"
-msgstr "1 minuta"
-
-#: ../../common.pm_.c:114
-#, c-format
-msgid "%d seconds"
-msgstr "%d sekund"
-
-#: ../../common.pm_.c:159
-msgid "Can't make screenshots before partitioning"
-msgstr "Nelze provést sejmutķ obrazovky pųed rozdģlenķm diskł"
-
-#: ../../common.pm_.c:166
-#, c-format
-msgid "Screenshots will be available after install in %s"
-msgstr "Sejmuté obrazovvky budou dostupné po instalaci v adresįųi %s"
-
-#: ../../crypto.pm_.c:12 ../../crypto.pm_.c:26 ../../standalone/drakxtv_.c:50
-msgid "France"
-msgstr "Francie"
-
-#: ../../crypto.pm_.c:13
-msgid "Costa Rica"
-msgstr "Costa Rica"
-
-#: ../../crypto.pm_.c:14 ../../crypto.pm_.c:27
-msgid "Belgium"
-msgstr "Belgie"
-
-#: ../../crypto.pm_.c:15 ../../crypto.pm_.c:28
-msgid "Czech Republic"
-msgstr "Českį republika"
-
-#: ../../crypto.pm_.c:16 ../../crypto.pm_.c:29
-msgid "Germany"
-msgstr "Nģmecko"
-
-#: ../../crypto.pm_.c:17 ../../crypto.pm_.c:30
-msgid "Greece"
-msgstr "Ųecko"
-
-#: ../../crypto.pm_.c:18 ../../crypto.pm_.c:31
-msgid "Norway"
-msgstr "Norsko"
-
-#: ../../crypto.pm_.c:19 ../../crypto.pm_.c:32
-msgid "Sweden"
-msgstr "©védsko"
-
-#: ../../crypto.pm_.c:20 ../../crypto.pm_.c:34
-msgid "Netherlands"
-msgstr "Nizozemķ"
-
-#: ../../crypto.pm_.c:21 ../../crypto.pm_.c:35 ../../standalone/drakxtv_.c:50
-msgid "Italy"
-msgstr "Itįlie"
-
-#: ../../crypto.pm_.c:22 ../../crypto.pm_.c:36
-msgid "Austria"
-msgstr "Rakousko"
-
-#: ../../crypto.pm_.c:33 ../../crypto.pm_.c:67
-msgid "United States"
-msgstr "Spojené stįty americké"
-
-#: ../../diskdrake/hd_gtk.pm_.c:94
-msgid "Please make a backup of your data first"
-msgstr "Zįlohujte si nejdųķv svį data, prosķm"
-
-#: ../../diskdrake/hd_gtk.pm_.c:94 ../../diskdrake/interactive.pm_.c:891
-#: ../../diskdrake/interactive.pm_.c:900 ../../diskdrake/interactive.pm_.c:954
-msgid "Read carefully!"
-msgstr "Čtģte pozornģ!"
-
-#: ../../diskdrake/hd_gtk.pm_.c:97
-msgid ""
-"If you plan to use aboot, be carefull to leave a free space (2048 sectors is "
-"enough)\n"
-"at the beginning of the disk"
-msgstr ""
-"Jestli¾e chcete pou¾ķvat aboot, musķte nechat volné mķsto na začįtku disku\n"
-"(2048 sektorł stačķ)"
-
-#: ../../diskdrake/hd_gtk.pm_.c:116 ../../diskdrake/interactive.pm_.c:325
-#: ../../diskdrake/interactive.pm_.c:340 ../../diskdrake/smbnfs_gtk.pm_.c:45
-#: ../../install_steps.pm_.c:75 ../../install_steps_interactive.pm_.c:67
-#: ../../install_steps_interactive.pm_.c:356 ../../interactive_http.pm_.c:119
-#: ../../interactive_http.pm_.c:120 ../../standalone/diskdrake_.c:84
-msgid "Error"
-msgstr "Chyba"
-
-#: ../../diskdrake/hd_gtk.pm_.c:151
-msgid "Wizard"
-msgstr "Prłvodce"
-
-#: ../../diskdrake/hd_gtk.pm_.c:181 ../../diskdrake/removable_gtk.pm_.c:24
-msgid "Choose action"
-msgstr "Co udģlįte ?"
-
-#: ../../diskdrake/hd_gtk.pm_.c:185
-msgid ""
-"You have one big FAT partition\n"
-"(generally used by MicroSoft Dos/Windows).\n"
-"I suggest you first resize that partition\n"
-"(click on it, then click on \"Resize\")"
-msgstr ""
-"Mįte jeden velikż oddķl FAT\n"
-"(vģt¹inou pou¾ķvanż Microsoft Dos/Windows).\n"
-"Doporučuji vįm nejprve zmen¹it tento oddķl\n"
-"(klepnģte na nģj a potom na\n"
-"\"Zmģnit velikost\")"
-
-#: ../../diskdrake/hd_gtk.pm_.c:188
-msgid "Please click on a partition"
-msgstr "Prosķm klepnģte na oddķl"
-
-#: ../../diskdrake/hd_gtk.pm_.c:202 ../../diskdrake/smbnfs_gtk.pm_.c:67
-#: ../../install_steps_gtk.pm_.c:523
-msgid "Details"
-msgstr "Detaily"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Ext2"
-msgstr "Ext2"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "FAT"
-msgstr "FAT"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "HFS"
-msgstr "HFS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Journalised FS"
-msgstr "®urnįlovacķ FS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "SunOS"
-msgstr "SunOs"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Swap"
-msgstr "Odklįdacķ (swap)"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../diskdrake/interactive.pm_.c:1050
-msgid "Empty"
-msgstr "Prįzdnż"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../install_steps_gtk.pm_.c:379
-#: ../../install_steps_gtk.pm_.c:439 ../../mouse.pm_.c:162
-#: ../../services.pm_.c:157 ../../standalone/drakbackup_.c:944
-msgid "Other"
-msgstr "Dal¹ķ"
-
-#: ../../diskdrake/hd_gtk.pm_.c:325
-msgid "Filesystem types:"
-msgstr "Souborové systémy:"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:386
-msgid "Create"
-msgstr "Vytvoųit"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:365
-#: ../../diskdrake/interactive.pm_.c:499 ../../diskdrake/removable.pm_.c:26
-#: ../../diskdrake/removable.pm_.c:49 ../../diskdrake/removable_gtk.pm_.c:17
-msgid "Type"
-msgstr "Zmģnit typ"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/hd_gtk.pm_.c:344
-#, c-format
-msgid "Use ``%s'' instead"
-msgstr "Mķsto toho pou¾ijte ``%s''"
-
-#: ../../diskdrake/hd_gtk.pm_.c:344 ../../diskdrake/interactive.pm_.c:374
-msgid "Delete"
-msgstr "Smazat"
-
-#: ../../diskdrake/hd_gtk.pm_.c:348
-msgid "Use ``Unmount'' first"
-msgstr "Nejprve pou¾ijte ``Odpojit''"
-
-#: ../../diskdrake/hd_gtk.pm_.c:349 ../../diskdrake/interactive.pm_.c:491
-#, c-format
-msgid ""
-"After changing type of partition %s, all data on this partition will be lost"
-msgstr "Tķm ¾e zmģnķte typ oddķlu %s pųijdete o v¹echna jeho data"
-
-#: ../../diskdrake/interactive.pm_.c:171
-msgid "Choose a partition"
-msgstr "Vyberte oddķl"
-
-#: ../../diskdrake/interactive.pm_.c:171
-msgid "Choose another partition"
-msgstr "Vyberte jinż oddķl"
-
-#: ../../diskdrake/interactive.pm_.c:196
-msgid "Exit"
-msgstr "Konec"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to expert mode"
-msgstr "Pųepnout se do módu 'expert'"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to normal mode"
-msgstr "Pųepnout se do módu 'normįlnķ'"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Undo"
-msgstr "Zpģt"
-
-#: ../../diskdrake/interactive.pm_.c:237
-msgid "Continue anyway?"
-msgstr "Pųesto chcete pokračovat?"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without saving"
-msgstr "Konec bez ulo¾enķ"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without writing the partition table?"
-msgstr "Chcete skončit bez zapsįnķ do tabulky oddķlł?"
-
-#: ../../diskdrake/interactive.pm_.c:247
-msgid "Do you want to save /etc/fstab modifications"
-msgstr "Chcete ulo¾it modifikaci souboru /etc/fstab?"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Auto allocate"
-msgstr "Automaticky rozmķstit"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Clear all"
-msgstr "V¹e smazat"
-
-#: ../../diskdrake/interactive.pm_.c:262
-msgid "Hard drive information"
-msgstr "Informace o hardisku"
-
-#: ../../diskdrake/interactive.pm_.c:283
-msgid "All primary partitions are used"
-msgstr "V¹echny primįrnķ oddķly (partitions) jsou pou¾ķvįny"
-
-#: ../../diskdrake/interactive.pm_.c:284
-msgid "I can't add any more partition"
-msgstr "Nemł¾u pųidat ¾įdnż dal¹ķ oddķl"
-
-#: ../../diskdrake/interactive.pm_.c:285
-msgid ""
-"To have more partitions, please delete one to be able to create an extended "
-"partition"
-msgstr ""
-"Abyste mohli mķt vķce oddķlł, musķte smazat jeden existujķcķ a na jeho "
-"mķstģ\n"
-"vytvoųit roz¹ķųenż(extended) oddķl"
-
-#: ../../diskdrake/interactive.pm_.c:295
-msgid "Save partition table"
-msgstr "Ulo¾it tabulku oddķlł"
-
-#: ../../diskdrake/interactive.pm_.c:296
-msgid "Restore partition table"
-msgstr "Obnovit tabulku oddķlł"
-
-#: ../../diskdrake/interactive.pm_.c:297
-msgid "Rescue partition table"
-msgstr "Zįchrana tabulky oddķlł"
-
-#: ../../diskdrake/interactive.pm_.c:299
-msgid "Reload partition table"
-msgstr "Znovu načķst tabulku oddķlł"
-
-#: ../../diskdrake/interactive.pm_.c:304
-msgid "Removable media automounting"
-msgstr "Automatické pųipojovįnķ pro vyjķmatelnį média"
-
-#: ../../diskdrake/interactive.pm_.c:313 ../../diskdrake/interactive.pm_.c:333
-msgid "Select file"
-msgstr "Zvolit soubor"
-
-#: ../../diskdrake/interactive.pm_.c:320
-msgid ""
-"The backup partition table has not the same size\n"
-"Still continue?"
-msgstr ""
-"Zįlo¾nķ tabulka oddķlł nemį stejnou velikost\n"
-"Chcete pųesto chcete pokračovat?"
-
-#: ../../diskdrake/interactive.pm_.c:334
-msgid "Warning"
-msgstr "Varovįnķ"
-
-#: ../../diskdrake/interactive.pm_.c:335
-msgid ""
-"Insert a floppy in drive\n"
-"All data on this floppy will be lost"
-msgstr ""
-"Vlo¾te disketu do mechaniky\n"
-"V¹echna data na této disketģ budou smazįna"
-
-#: ../../diskdrake/interactive.pm_.c:346
-msgid "Trying to rescue partition table"
-msgstr "Pokou¹ķm se obnovit tabulku oddķlł"
-
-#: ../../diskdrake/interactive.pm_.c:352
-msgid "Detailed information"
-msgstr "Podrobné informace"
-
-#: ../../diskdrake/interactive.pm_.c:364 ../../diskdrake/interactive.pm_.c:534
-#: ../../diskdrake/interactive.pm_.c:554 ../../diskdrake/removable.pm_.c:24
-#: ../../diskdrake/removable_gtk.pm_.c:15 ../../diskdrake/smbnfs_gtk.pm_.c:83
-msgid "Mount point"
-msgstr "Pųķpojnż bod"
-
-#: ../../diskdrake/interactive.pm_.c:366 ../../diskdrake/removable.pm_.c:25
-#: ../../diskdrake/removable_gtk.pm_.c:16 ../../diskdrake/smbnfs_gtk.pm_.c:84
-msgid "Options"
-msgstr "Volby"
-
-#: ../../diskdrake/interactive.pm_.c:367 ../../diskdrake/interactive.pm_.c:621
-msgid "Resize"
-msgstr "Zmģnit velikost"
-
-#: ../../diskdrake/interactive.pm_.c:368 ../../diskdrake/interactive.pm_.c:674
-msgid "Move"
-msgstr "Pųesunout"
-
-#: ../../diskdrake/interactive.pm_.c:369
-msgid "Format"
-msgstr "Formįtovat"
-
-#: ../../diskdrake/interactive.pm_.c:370 ../../diskdrake/smbnfs_gtk.pm_.c:80
-msgid "Mount"
-msgstr "Pųipojit"
-
-#: ../../diskdrake/interactive.pm_.c:371
-msgid "Add to RAID"
-msgstr "Pųidat do RAIDu"
-
-#: ../../diskdrake/interactive.pm_.c:372
-msgid "Add to LVM"
-msgstr "Pųidat do LVMu"
-
-#: ../../diskdrake/interactive.pm_.c:373 ../../diskdrake/smbnfs_gtk.pm_.c:79
-msgid "Unmount"
-msgstr "Odpojit"
-
-#: ../../diskdrake/interactive.pm_.c:375
-msgid "Remove from RAID"
-msgstr "Odebrat z RAIDu"
-
-#: ../../diskdrake/interactive.pm_.c:376
-msgid "Remove from LVM"
-msgstr "Odebrat z LVMu"
-
-#: ../../diskdrake/interactive.pm_.c:377
-msgid "Modify RAID"
-msgstr "Zmģnit RAID"
-
-#: ../../diskdrake/interactive.pm_.c:378
-msgid "Use for loopback"
-msgstr "Pou¾ķt loopback"
-
-#: ../../diskdrake/interactive.pm_.c:417
-msgid "Create a new partition"
-msgstr "Vytvoųit novż oddķl"
-
-#: ../../diskdrake/interactive.pm_.c:420
-msgid "Start sector: "
-msgstr "Počįtečnķ sektor: "
-
-#: ../../diskdrake/interactive.pm_.c:422 ../../diskdrake/interactive.pm_.c:773
-msgid "Size in MB: "
-msgstr "Velikost v MB: "
-
-#: ../../diskdrake/interactive.pm_.c:423 ../../diskdrake/interactive.pm_.c:774
-msgid "Filesystem type: "
-msgstr "Souborovż systém: "
-
-#: ../../diskdrake/interactive.pm_.c:424
-#: ../../diskdrake/interactive.pm_.c:1034
-#: ../../diskdrake/interactive.pm_.c:1108
-msgid "Mount point: "
-msgstr "Adresįų pųipojenķ (mount point): "
-
-#: ../../diskdrake/interactive.pm_.c:428
-msgid "Preference: "
-msgstr "Nastavenķ: "
-
-#: ../../diskdrake/interactive.pm_.c:472
-msgid "Remove the loopback file?"
-msgstr "Odstranit soubor loopbacku?"
-
-#: ../../diskdrake/interactive.pm_.c:497
-msgid "Change partition type"
-msgstr "Zmģnit typ oddķlu"
-
-#: ../../diskdrake/interactive.pm_.c:498 ../../diskdrake/removable.pm_.c:48
-msgid "Which filesystem do you want?"
-msgstr "Kterż souborovż systém chcete pou¾ķt?"
-
-#: ../../diskdrake/interactive.pm_.c:502
-msgid "Switching from ext2 to ext3"
-msgstr "Pųepķnįm z ext2 na ext3"
-
-#: ../../diskdrake/interactive.pm_.c:532
-#, c-format
-msgid "Where do you want to mount loopback file %s?"
-msgstr "Kam chcete pųipojit loopback %s?"
-
-#: ../../diskdrake/interactive.pm_.c:533 ../../diskdrake/interactive.pm_.c:553
-#, c-format
-msgid "Where do you want to mount device %s?"
-msgstr "Kam chcete pųipojit zaųķzenķ %s?"
-
-#: ../../diskdrake/interactive.pm_.c:539
-msgid ""
-"Can't unset mount point as this partition is used for loop back.\n"
-"Remove the loopback first"
-msgstr ""
-"Nemł¾u smazat pųķpojnż bod, proto¾e tento oddķl je pou¾ķvįn pro loopback.\n"
-"Odstraņte nejprve loopback"
-
-#: ../../diskdrake/interactive.pm_.c:577
-msgid "Computing FAT filesystem bounds"
-msgstr "Počķtįm hranice souborového systému fat"
-
-#: ../../diskdrake/interactive.pm_.c:577 ../../diskdrake/interactive.pm_.c:636
-#: ../../install_interactive.pm_.c:130
-msgid "Resizing"
-msgstr "Mģnķm velikost"
-
-#: ../../diskdrake/interactive.pm_.c:609
-msgid "This partition is not resizeable"
-msgstr "Na tomto diskovém oddķlu nelze mģnit velikost"
-
-#: ../../diskdrake/interactive.pm_.c:614
-msgid "All data on this partition should be backed-up"
-msgstr "V¹echna data z tohoto oddķlu by mģla bżt zįlohovįna"
-
-#: ../../diskdrake/interactive.pm_.c:616
-#, c-format
-msgid "After resizing partition %s, all data on this partition will be lost"
-msgstr "Kdy¾ zmģnķte velikost oddķlu %s, ztratķte tķm v¹echna jeho data"
-
-#: ../../diskdrake/interactive.pm_.c:621
-msgid "Choose the new size"
-msgstr "Zvolte novou velikost"
-
-#: ../../diskdrake/interactive.pm_.c:622
-msgid "New size in MB: "
-msgstr "Novį velikost v MB: "
-
-#: ../../diskdrake/interactive.pm_.c:675
-msgid "Which disk do you want to move it to?"
-msgstr "Na kterż disk chcete oddķl pųesunout?"
-
-#: ../../diskdrake/interactive.pm_.c:676
-msgid "Sector"
-msgstr "Sektor"
-
-#: ../../diskdrake/interactive.pm_.c:677
-msgid "Which sector do you want to move it to?"
-msgstr "Na kterż sektor chcete oddķl pųesunout?"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving"
-msgstr "Pųesouvįm"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving partition..."
-msgstr "Pųesouvįm oddķl..."
-
-#: ../../diskdrake/interactive.pm_.c:697
-msgid "Choose an existing RAID to add to"
-msgstr "Zvolte existujķcķ RAID pro pųidįnķ"
-
-#: ../../diskdrake/interactive.pm_.c:698 ../../diskdrake/interactive.pm_.c:716
-msgid "new"
-msgstr "novż"
-
-#: ../../diskdrake/interactive.pm_.c:714
-msgid "Choose an existing LVM to add to"
-msgstr "Zvolte existujķcķ LVM pro pųidįnķ"
-
-#: ../../diskdrake/interactive.pm_.c:719
-msgid "LVM name?"
-msgstr "Jméno pro LVM?"
-
-#: ../../diskdrake/interactive.pm_.c:759
-msgid "This partition can't be used for loopback"
-msgstr "Tento oddķl nemł¾e bżt pou¾it pro loopback"
-
-#: ../../diskdrake/interactive.pm_.c:771
-msgid "Loopback"
-msgstr "Loopback"
-
-#: ../../diskdrake/interactive.pm_.c:772
-msgid "Loopback file name: "
-msgstr "Nįzev souboru loopbacku:"
-
-#: ../../diskdrake/interactive.pm_.c:777
-msgid "Give a file name"
-msgstr "Zadejte jméno souboru"
-
-#: ../../diskdrake/interactive.pm_.c:780
-msgid "File already used by another loopback, choose another one"
-msgstr "Soubor u¾ je pou¾ķvįn jinżm loopbackem, zvolte si jinż"
-
-#: ../../diskdrake/interactive.pm_.c:781
-msgid "File already exists. Use it?"
-msgstr "Soubor u¾ existuje. Mįm ho pou¾ķt?"
-
-#: ../../diskdrake/interactive.pm_.c:804
-msgid "Mount options"
-msgstr "Volby pro pųipojenķ"
-
-#: ../../diskdrake/interactive.pm_.c:811
-msgid "Various"
-msgstr "Dal¹ķ"
-
-#: ../../diskdrake/interactive.pm_.c:874
-msgid "device"
-msgstr "zaųķzenķ"
-
-#: ../../diskdrake/interactive.pm_.c:875
-msgid "level"
-msgstr "śroveņ"
-
-#: ../../diskdrake/interactive.pm_.c:876
-msgid "chunk size"
-msgstr "Velikost bloku(chunk)"
-
-#: ../../diskdrake/interactive.pm_.c:891
-msgid "Be careful: this operation is dangerous."
-msgstr "Buļte opatrnķ: tato akce je nebezpečnį."
-
-#: ../../diskdrake/interactive.pm_.c:906
-msgid "What type of partitioning?"
-msgstr "Jakż typ diskového oddķlu?"
-
-#: ../../diskdrake/interactive.pm_.c:924
-msgid ""
-"Sorry I won't accept to create /boot so far onto the drive (on a cylinder > "
-"1024).\n"
-"Either you use LILO and it won't work, or you don't use LILO and you don't "
-"need /boot"
-msgstr ""
-"Promiņte, nemł¾u povolit vytvoųenķ /boot tak daleko na disku (na cylindru > "
-"1024).\n"
-"Buļto pou¾ijete LILO a nebude to fungovat, nebo nepou¾ijete LILO a tedy "
-"nepotųebujete /boot"
-
-#: ../../diskdrake/interactive.pm_.c:928
-msgid ""
-"The partition you've selected to add as root (/) is physically located "
-"beyond\n"
-"the 1024th cylinder of the hard drive, and you have no /boot partition.\n"
-"If you plan to use the LILO boot manager, be careful to add a /boot partition"
-msgstr ""
-"Oddķl kterż jste zvolili jako koųenovż (root - /) je na disku fyzicky za "
-"cylindrem 1024,\n"
-"a pųitom nemįte /boot oddķl. Jestli¾e chcete pou¾ķt sprįvce bootu (boot "
-"manager),\n"
-"pųidejte je¹tģ /boot oddķl"
-
-#: ../../diskdrake/interactive.pm_.c:934
-msgid ""
-"You've selected a software RAID partition as root (/).\n"
-"No bootloader is able to handle this without a /boot partition.\n"
-"So be careful to add a /boot partition"
-msgstr ""
-"Zvolili jste softwarovou RAID oddķl jako koųenovż oddķl (/).\n"
-"S tķm se nenķ schopnż vypoųįdat ¾įdnż zavįdģcķ program bez pou¾itķ oddķlu\n"
-"/boot. Ujistģte se prosķm, ¾e tento oddķl mįte."
-
-#: ../../diskdrake/interactive.pm_.c:954
-#, c-format
-msgid "Partition table of drive %s is going to be written to disk!"
-msgstr "Novį tabulka oddķlł na disku %s bude zapsįna!"
-
-#: ../../diskdrake/interactive.pm_.c:958
-msgid "You'll need to reboot before the modification can take place"
-msgstr "Aby se zmģny uplatnily budete muset restartovat počķtač"
-
-#: ../../diskdrake/interactive.pm_.c:969
-#, c-format
-msgid "After formatting partition %s, all data on this partition will be lost"
-msgstr "Kdy¾ naformįtujete oddķl %s, ztratķte tķm v¹echna jeho data"
-
-#: ../../diskdrake/interactive.pm_.c:971
-msgid "Formatting"
-msgstr "Formįtuji"
-
-#: ../../diskdrake/interactive.pm_.c:972
-#, c-format
-msgid "Formatting loopback file %s"
-msgstr "Formįtuji soubor loopbacku %s"
-
-#: ../../diskdrake/interactive.pm_.c:973
-#: ../../install_steps_interactive.pm_.c:465
-#, c-format
-msgid "Formatting partition %s"
-msgstr "Formįtuji oddķl %s"
-
-#: ../../diskdrake/interactive.pm_.c:984
-msgid "Hide files"
-msgstr "Schovat soubory"
-
-#: ../../diskdrake/interactive.pm_.c:984
-msgid "Move files to the new partition"
-msgstr "Pųesunout soubory na novż diskovż oddķl"
-
-#: ../../diskdrake/interactive.pm_.c:985
-#, c-format
-msgid ""
-"Directory %s already contain some data\n"
-"(%s)"
-msgstr ""
-"Adresįų %s ji¾ obsahuje nģjakį data\n"
-"(%s)"
-
-#: ../../diskdrake/interactive.pm_.c:996
-msgid "Moving files to the new partition"
-msgstr "Pųesunuji soubory na novż diskovż oddķl"
-
-#: ../../diskdrake/interactive.pm_.c:1000
-#, c-format
-msgid "Copying %s"
-msgstr "Kopķruji %s"
-
-#: ../../diskdrake/interactive.pm_.c:1004
-#, c-format
-msgid "Removing %s"
-msgstr "Odstraņuji %s"
-
-#: ../../diskdrake/interactive.pm_.c:1014
-#, c-format
-msgid "partition %s is now known as %s"
-msgstr "oddķl %s je nynķ rozpoznįn jako %s"
-
-#: ../../diskdrake/interactive.pm_.c:1035
-#: ../../diskdrake/interactive.pm_.c:1094
-msgid "Device: "
-msgstr "Zaųķzenķ: "
-
-#: ../../diskdrake/interactive.pm_.c:1036
-#, c-format
-msgid "DOS drive letter: %s (just a guess)\n"
-msgstr "Pķsmeno v DOSu: %s (jenom odhad)\n"
-
-#: ../../diskdrake/interactive.pm_.c:1040
-#: ../../diskdrake/interactive.pm_.c:1048
-#: ../../diskdrake/interactive.pm_.c:1112
-msgid "Type: "
-msgstr "Typ: "
-
-#: ../../diskdrake/interactive.pm_.c:1044
-msgid "Name: "
-msgstr "Jméno: "
-
-#: ../../diskdrake/interactive.pm_.c:1052
-#, c-format
-msgid "Start: sector %s\n"
-msgstr "Začįtek: sektor %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1053
-#, c-format
-msgid "Size: %s"
-msgstr "Velikost: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1055
-#, c-format
-msgid ", %s sectors"
-msgstr ", %s sektorł"
-
-#: ../../diskdrake/interactive.pm_.c:1057
-#, c-format
-msgid "Cylinder %d to %d\n"
-msgstr "Od cylindru %d do cylindru %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1058
-msgid "Formatted\n"
-msgstr "Naformįtovanż\n"
-
-#: ../../diskdrake/interactive.pm_.c:1059
-msgid "Not formatted\n"
-msgstr "Nenaformįtovanż\n"
-
-#: ../../diskdrake/interactive.pm_.c:1060
-msgid "Mounted\n"
-msgstr "Pųipojenż\n"
-
-#: ../../diskdrake/interactive.pm_.c:1061
-#, c-format
-msgid "RAID md%s\n"
-msgstr "RAID md%s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1063
-#, c-format
-msgid ""
-"Loopback file(s):\n"
-" %s\n"
-msgstr ""
-"Loopback soubor(y): \n"
-" %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1064
-msgid ""
-"Partition booted by default\n"
-" (for MS-DOS boot, not for lilo)\n"
-msgstr ""
-"Standardnķ startovacķ oddķl\n"
-" (Pro MS-DOS, ne pro LILO)\n"
-
-#: ../../diskdrake/interactive.pm_.c:1066
-#, c-format
-msgid "Level %s\n"
-msgstr "Śroveņ %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1067
-#, c-format
-msgid "Chunk size %s\n"
-msgstr "Velikost bloku(chunk) %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1068
-#, c-format
-msgid "RAID-disks %s\n"
-msgstr "RAID disky %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1070
-#, c-format
-msgid "Loopback file name: %s"
-msgstr "Loopback soubor: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1073
-msgid ""
-"\n"
-"Chances are, this partition is\n"
-"a Driver partition, you should\n"
-"probably leave it alone.\n"
-msgstr ""
-"\n"
-"Tento oddķl je oddķl\n"
-"s ovladači, je lep¹ķ\n"
-"no nechat neporu¹enż.\n"
-
-#: ../../diskdrake/interactive.pm_.c:1076
-msgid ""
-"\n"
-"This special Bootstrap\n"
-"partition is for\n"
-"dual-booting your system.\n"
-msgstr ""
-"\n"
-"Tento speciįlnķ Boostrap\n"
-"oddķl je pro spu¹tģnķ\n"
-"dal¹ķho systému.\n"
-
-#: ../../diskdrake/interactive.pm_.c:1095
-#, c-format
-msgid "Size: %s\n"
-msgstr "Velikost: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1096
-#, c-format
-msgid "Geometry: %s cylinders, %s heads, %s sectors\n"
-msgstr "Geometrie: %s cylindrł, %s hlav, %s sektorł\n"
-
-#: ../../diskdrake/interactive.pm_.c:1097
-msgid "Info: "
-msgstr "Informace: "
-
-#: ../../diskdrake/interactive.pm_.c:1098
-#, c-format
-msgid "LVM-disks %s\n"
-msgstr "LVM disky %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1099
-#, c-format
-msgid "Partition table type: %s\n"
-msgstr "Typ tabulky oddķlł: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1100
-#, c-format
-msgid "on bus %d id %d\n"
-msgstr "na sbģrnici %d id %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1114
-#, c-format
-msgid "Options: %s"
-msgstr "Volby: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1130
-msgid "Filesystem encryption key"
-msgstr "Klķč pro kryptovanż souborovż systém"
-
-#: ../../diskdrake/interactive.pm_.c:1131
-msgid "Choose your filesystem encryption key"
-msgstr "Vyberte si kryptovacķ klķč pro souborovż systém"
-
-#: ../../diskdrake/interactive.pm_.c:1134
-#, c-format
-msgid "This encryption key is too simple (must be at least %d characters long)"
-msgstr "Tento klķč je pųķli¹ jednoduchż (musķ bżt alespoņ %d znakł dlouhż)"
-
-#: ../../diskdrake/interactive.pm_.c:1135
-msgid "The encryption keys do not match"
-msgstr "Kryptovacķ klķče se neshodujķ"
-
-#: ../../diskdrake/interactive.pm_.c:1138
-msgid "Encryption key"
-msgstr "Kryptovacķ klķč"
-
-#: ../../diskdrake/interactive.pm_.c:1139
-msgid "Encryption key (again)"
-msgstr "Kryptovacķ klķč (znovu)"
-
-#: ../../diskdrake/removable.pm_.c:47
-msgid "Change type"
-msgstr "Zmģnit typ"
-
-#: ../../diskdrake/removable_gtk.pm_.c:28
-msgid "Please click on a media"
-msgstr "Prosķm klepnģte na zdroj"
-
-#: ../../diskdrake/smbnfs_gtk.pm_.c:165
-msgid "Search servers"
-msgstr "Vyhledat servery"
-
-#: ../../fs.pm_.c:485 ../../fs.pm_.c:495 ../../fs.pm_.c:499 ../../fs.pm_.c:503
-#: ../../fs.pm_.c:507 ../../fs.pm_.c:511
-#, c-format
-msgid "%s formatting of %s failed"
-msgstr "%s formįtovįnķ %s skončilo chybou"
-
-#: ../../fs.pm_.c:548
-#, c-format
-msgid "I don't know how to format %s in type %s"
-msgstr "nevķm jak naformįtovat %s na typ %s"
-
-#: ../../fs.pm_.c:620 ../../fs.pm_.c:649 ../../fs.pm_.c:655
-#, c-format
-msgid "mounting partition %s in directory %s failed"
-msgstr "pųipojenķ oddķlu %s v adresįųi %s selhalo"
-
-#: ../../fs.pm_.c:640
-#, c-format
-msgid "fsck failed with exit code %d or signal %d"
-msgstr "selhal bģh fsck s nįvratovżm kódem %d nebo signįlem %d"
-
-#: ../../fs.pm_.c:670 ../../partition_table.pm_.c:596
-#, c-format
-msgid "error unmounting %s: %s"
-msgstr "chyba odpojovįnķ %s: %s"
-
-#: ../../fsedit.pm_.c:21
-msgid "simple"
-msgstr "jednoduchż"
-
-#: ../../fsedit.pm_.c:25
-msgid "with /usr"
-msgstr "s /usr"
-
-#: ../../fsedit.pm_.c:30
-msgid "server"
-msgstr "server"
-
-#: ../../fsedit.pm_.c:467
-msgid "You can't use JFS for partitions smaller than 16MB"
-msgstr "Nemł¾ete pou¾ķt JFS pro oddķl men¹ķ ne¾ 16MB"
-
-#: ../../fsedit.pm_.c:468
-msgid "You can't use ReiserFS for partitions smaller than 32MB"
-msgstr "Nemł¾ete pou¾ķt ReiserFS pro oddķl men¹ķ ne¾ 32MB"
-
-#: ../../fsedit.pm_.c:477
-msgid "Mount points must begin with a leading /"
-msgstr "Pųķpojné body (mount points) musķ začķnat '/'"
-
-#: ../../fsedit.pm_.c:478
-#, c-format
-msgid "There is already a partition with mount point %s\n"
-msgstr "Oddķl s pųķpojnżm bodem %s u¾ existuje\n"
-
-#: ../../fsedit.pm_.c:482
-#, c-format
-msgid "You can't use a LVM Logical Volume for mount point %s"
-msgstr "Nelze pou¾ķt LVM Logického disku na pųipojenż bod %s"
-
-#: ../../fsedit.pm_.c:484
-msgid "This directory should remain within the root filesystem"
-msgstr "Tento adresįų musķ kromģ koųenového souborového systému złstat"
-
-#: ../../fsedit.pm_.c:486
-msgid "You need a true filesystem (ext2, reiserfs) for this mount point\n"
-msgstr ""
-"Pro tento pųķpojnż bod potųebujete opravdovż souborovż systém (Ext2, "
-"ReiserFS)\n"
-
-#: ../../fsedit.pm_.c:488
-#, c-format
-msgid "You can't use an encrypted file system for mount point %s"
-msgstr "Nelze pou¾ķt kryptovanż souborovż systém na pųipojenż bod %s"
-
-#: ../../fsedit.pm_.c:546
-msgid "Not enough free space for auto-allocating"
-msgstr "Nenķ dostatek mķsta pro automatické rozdģlenķ disku"
-
-#: ../../fsedit.pm_.c:548
-msgid "Nothing to do"
-msgstr "Nic nedģlat"
-
-#: ../../fsedit.pm_.c:612
-#, c-format
-msgid "Error opening %s for writing: %s"
-msgstr "Chyba pųi otevķrįnķ %s pro zįpis: %s"
-
-#: ../../fsedit.pm_.c:697
-msgid ""
-"An error has occurred - no valid devices were found on which to create new "
-"filesystems. Please check your hardware for the cause of this problem"
-msgstr ""
-"Stala se chyba - nebylo nalezeno ¾įdné zaųķzenķ na kterém by se daly "
-"vytvoųit nové souborové systémy. Zkontrolujte prosķm hardware"
-
-#: ../../fsedit.pm_.c:720
-msgid "You don't have any partitions!"
-msgstr "Nemįte ¾įdné oddķly!"
-
-#: ../../help.pm_.c:13
-msgid ""
-"GNU/Linux is a multiuser system, and this means that each user can have his\n"
-"own preferences, his own files and so on. You can read the ``User Guide''\n"
-"to learn more. But unlike \"root\", which is the administrator, the users\n"
-"you will add here will not be entitled to change anything except their own\n"
-"files and their own configuration. You will have to create at least one\n"
-"regular user for yourself. That account is where you should log in for\n"
-"routine use. Although it is very practical to log in as \"root\" everyday,\n"
-"it may also be very dangerous! The slightest mistake could mean that your\n"
-"system would not work any more. If you make a serious mistake as a regular\n"
-"user, you may only lose some information, but not the entire system.\n"
-"\n"
-"First, you have to enter your real name. This is not mandatory, of course\n"
-"as you can actually enter whatever you want. DrakX will then take the first\n"
-"word you have entered in the box and will bring it over to the \"User\n"
-"name\". This is the name this particular user will use to log onto the\n"
-"system. You can change it. You then have to enter a password here. A\n"
-"non-privileged (regular) user's password is not as crucial as \"root\"' one\n"
-"from a security point of view, but that is no reason to neglect it: after\n"
-"all, your files are at risk.\n"
-"\n"
-"If you click on \"Accept user\", you can then add as many as you want. Add\n"
-"a user for each one of your friends: your father or your sister, for\n"
-"example. When you finish adding all the users you want, select \"Done\".\n"
-"\n"
-"Clicking the \"Advanced\" button allows you to change the default \"shell\"\n"
-"for that user (bash by default)."
-msgstr ""
-"GNU/Linux je vķceu¾ivatelskż systém, co¾ znamenį, ¾e ka¾dż u¾ivatel mł¾e "
-"mķt\n"
-"své vlastnķ nastavenķ, soubory atd. Vķce se dočtete v \"Pųķručce u¾ivatele"
-"\".\n"
-"Na rozdķl od u¾ivatele root, kterż se sprįvcem počķtače, u¾ivatelé, kteųķ "
-"jsou\n"
-"zde vytvoųeni, nemajķ oprįvnģnķ mģnit nic kromģ svżch souborł a nastavenķ.\n"
-"Doporučuje se vytvoųit śčet pro minimįlnģ jednoho regulérnķho u¾ivatele.\n"
-"Tento śčet se pou¾ķvį na v¹echny bģ¾né śkoly. Ačkoliv je velmi praktické\n"
-"pųihla¹ovat se ka¾dż den jako u¾ivatel Root, je to také velmi nebezpečné!\n"
-"Jedna malį chyba mł¾e zpłsobit to, ¾e celż operačnķ systém nebude funkčnķ.\n"
-"Pokud udģlįte chybu jako normįlnķ u¾ivatel, mł¾ete pųijķt o soubory, ale "
-"nepo¹kodķ\n"
-"se celż systém.\n"
-"\n"
-"Jako prvnķ zadejte reįlné jméno. Nenķ to povinné, tak¾e mł¾ete zadat co "
-"chcete\n"
-"a drakX pou¾ije prvnķ slovo jako u¾ivatelské jméno, pod kterżm se bude "
-"u¾ivatel\n"
-"hlįsit do systému. Je mo¾né ho nįslednģ zmģnit. Dįle se zadįvį heslo pro\n"
-"u¾ivatele. Volba hesla pro normįlnķ u¾ivatele sice nenķ tak kritickį jako\n"
-"pro sprįvce, ale i tak se doporučuje nepodceņovat bezpečnost.\n"
-"\n"
-"Pokud kliknete na \"Pųidat u¾ivatele\", mł¾ete tak pųidįvat u¾ivatelł kolik\n"
-"potųebujete, napų. své pųįtelé, śčet pro otce či sestru. Pokud mįte v¹echny\n"
-"u¾ivatele vytvoųeny, kliknģte na \"Hotovo\". \n"
-"\n"
-"Kliknutķm na tlačķtko \"Roz¹ķųené\" mł¾ete pro novż śčet zmģnit shell, "
-"kterż\n"
-"u¾ivatel bude pou¾ķvat (vżchozķ je bash)."
-
-#: ../../help.pm_.c:41
-msgid ""
-"Listed above are the existing Linux partitions detected on your hard 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"
-"able to install enough software. If you want to store your data on a\n"
-"separate partition, you will also need to create a partition for \"/home\"\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 drive type\", \"hard 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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
-"\"second lowest SCSI ID\", etc."
-msgstr ""
-"Ka¾dż oddķl vypsanż nķ¾e mį: \"Jméno\", \"Velikost\".\n"
-"\n"
-"\"Jméno\" je slo¾eno nįsledovnģ: \"typ pevného disku\", \"čķslo disku\",\n"
-"\"čķslo oddķlu\". (napųķklad \"hda1\").\n"
-"\n"
-"Pokud mįte IDE disky, pak je \"typ pevného disku\" \"hd\", pokud mįte SCSI,\n"
-"označenķ bude \"sd\".\n"
-"\n"
-"\"Čķslo disku\" je v¾dy pķsmeno za \"hd\" nebo \"sd\". Pro IDE disky je "
-"takto:\n"
-"\n"
-" * \"a\" znamenį \"master disk na primįrnķm IDE ųadiči\",\n"
-"\n"
-" * \"b\" znamenį \"slave disk na primįrnķm IDE ųadiči\",\n"
-"\n"
-" * \"c\" znamenį \"master disk na sekundįrnķm IDE ųadiči\",\n"
-"\n"
-" * \"d\" znamenį \"slave disk na sekundįrnķm IDE ųadiči\".\n"
-"\n"
-"Pro SCSI disky platķ, ¾e \"a\" je \"nejmen¹ķ SCSI ID\", \"b\" je \"druhé\n"
-"nejmen¹ķ SCSI ID\" atd."
-
-#: ../../help.pm_.c:72
-msgid ""
-"The Mandrake Linux 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."
-msgstr ""
-"Distribuce Mandrake Linux je slo¾ena z nģkolika CD. Instalačnķ program vķ,\n"
-"na kterém disku je umķstģn jakż soubor a v pųķpadģ potųeby vysune CD a "
-"vy¾įdį\n"
-"si vżmģnu CD za jiné."
-
-#: ../../help.pm_.c:77
-msgid ""
-"It is now time to specify which programs you wish to install on your\n"
-"system. There are thousands of packages available for Mandrake Linux, 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"
-"be asked to specify the CDs you currently have (in Expert mode only). Check\n"
-"the CD labels and highlight the boxes corresponding to the CDs you have\n"
-"available for installation. Click \"OK\" when you are ready to continue.\n"
-"\n"
-"Packages are sorted in groups corresponding to a particular use of your\n"
-"machine. The groups themselves are sorted into four sections:\n"
-"\n"
-" * \"Workstation\": if you plan to use your machine as a workstation, "
-"select\n"
-"one or more of the corresponding groups;\n"
-"\n"
-" * \"Development\": if your machine is to be used for programming, choose\n"
-"the desired group(s);\n"
-"\n"
-" * \"Server\": if your machine is intended to be a server, you will be able\n"
-"to select which of the most common services you wish to install on your\n"
-"machine;\n"
-"\n"
-" * \"Graphical Environment\": finally, this is where you will choose your\n"
-"preferred graphical environment. At least one must be selected if you want\n"
-"to have a graphical workstation!\n"
-"\n"
-"Moving the mouse cursor over a group name will display a short explanatory\n"
-"text about that group. If you deselect all groups when performing a regular\n"
-"installation (by opposition to an upgrade), a dialog will pop up proposing\n"
-"different options for a minimal installation:\n"
-"\n"
-" * \"With X\": install the fewer packages possible to have a working\n"
-"graphical desktop;\n"
-"\n"
-" * \"With basic documentation\": installs the base system plus basic\n"
-"utilities and their documentation. This installation is suitable for\n"
-"setting up a server;\n"
-"\n"
-" * \"Truly minimal install\": will install the strict minimum necessary to\n"
-"get a working Linux system, in command line only. This installation is\n"
-"about 65Mb large.\n"
-"\n"
-"You can check the \"Individual package selection\" box, which is useful if\n"
-"you are familiar with the packages being offered or if you want to have\n"
-"total control over what will be installed.\n"
-"\n"
-"If you started the installation in \"Upgrade\" mode, you can unselect all\n"
-"groups to avoid installing any new package. This is useful for repairing or\n"
-"updating an existing system."
-msgstr ""
-"V této chvķli je mo¾né si vybrat, které programy chcete nainstalovat.\n"
-"Mandrake Linux obsahuje témģų tisķc balķčkł s programy a určitģ nebudete\n"
-"potųebovat v¹echny.\n"
-"\n"
-"Pokud instalujete z CDROM, budete nejprve dotįzįni na to, jakį CD mįte\n"
-"(pouze Expertnķ re¾im). Označte ty CD, kterį mįte a kterį chcete pou¾ķt \n"
-"pro instalaci. Po vżbģru kliknģte na \"OK\".\n"
-"\n"
-"Balķčky jsou rozdģleny do skupin, které odpovķdajķ tomu, jak je nejčastģji\n"
-"počķtač pou¾ķvįn. Skupiny jsou umķstģny do čtyųech sekcķ:\n"
-"\n"
-" * \"Pracovnķ stanice\": pokud plįnujete pou¾ķvat počķtač pųevį¾nģ na\n"
-"bģ¾nou prįci, vyberte si z dal¹ķch skupin odpovķdajķcķ balķčky.\n"
-"\n"
-" * \"Vżvoj\": pokud budete na počķtači programovat, mł¾ete si z této\n"
-"sekce vybrat dal¹ķ skupiny.\n"
-"\n"
-" * \"Server\": pokud bude počķtač provozovįn jako server, mįte mo¾nost\n"
-"vybrat si ty nejbģ¾nģj¹ķ slu¾by, které chcete nainstalovat.\n"
-"\n"
-" * \"Grafickį prostųedķ\": pokud preferujete grafické prostųedķ, zde je\n"
-"nabķdka nģkolika prostųedķ, ze které si musķte vybrat nejménģ jedno,\n"
-"aby bylo mo¾né grafické prostųedķ nainstalovat.\n"
-"\n"
-"Pokud pųejedete my¹ķ nad skupinou, objevķ se krįtkż text, kterż vysvģtluje,\n"
-"co je obsahem dané skupiny. Pokud nevyberete pųi instalaci ¾įdnou skupinu,\n"
-"zobrazķ se otįzka na instalaci nģkolika typł minimįlnķ instalace:\n"
-"\n"
-" * \"Podpora X\" Provede instalaci minimįlnķ podpory pro prostųedķ X-"
-"Window.\n"
-"\n"
-" * \"Se zįkladnķ dokumentacķ\" Nainstaluje systém se zįkladnķmi programy a "
-"jejich dokumentacķ. Tento typ je vhodnż pro instalaci serveru.\n"
-"\n"
-" * \"Minimįlnķ instalace\" Nainstaluje se opravdu nezbytné minimum aby bylo "
-"mo¾né provozovat Linux z pųķkazové ųįdky. Instalace zabere asi 65MB.\n"
-"\n"
-"Pokud zatrhnete volbu \"Vlastnķ vżbģr balķčkł\", zobrazķ se seznam v¹ech\n"
-"balķčkł, které je mo¾no nainstalovat. Je to dobré v tom pųķpadģ, ¾e chcete\n"
-"mķt kontrolu nad tķm, co se bude instalovat.\n"
-"\n"
-"Pokud jste spustili instalaci v re¾imu \"Aktualizace\", mł¾ete zru¹it vżbģr\n"
-"danżch skupin, čķm¾ zabrįnķte instalaci novżch balķčkł. To je u¾itečné\n"
-"pro pųķpad opravy existujķcķho systému."
-
-#: ../../help.pm_.c:128
-msgid ""
-"Finally, depending on whether or not you selected individual packages, you\n"
-"will be presented a tree containing all packages classified by groups and\n"
-"subgroups. While browsing the tree, you can select entire groups,\n"
-"subgroups, or individual packages.\n"
-"\n"
-"Whenever you select a package on the tree, a description appears on the\n"
-"right. When your selection is finished, click the \"Install\" button which\n"
-"will then launch the installation process. Depending on the speed of your\n"
-"hardware and the number of packages that need to be installed, it may take\n"
-"a while to complete the process. An estimate of the time it will take to\n"
-"install everything is displayed on the screen, to help you gauge if there\n"
-"is sufficient time to enjoy a cup of coffee.\n"
-"\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 Mandrake Linux, 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 Mandrake Linux 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"
-"default. !!\n"
-"\n"
-"The \"Automatic dependencies\" option simply disables the warning dialog\n"
-"which appears whenever the installer automatically selects a package. This\n"
-"occurs because it has determined that it needs to satisfy a dependency with\n"
-"another package in order to successfully complete the installation.\n"
-"\n"
-"The tiny floppy disk icon at the bottom of the list allows to load the\n"
-"package list chosen during a previous installation. Clicking on this icon\n"
-"will ask you to insert a floppy disk previously created at the end of\n"
-"another installation. See the second tip of last step on how to create such\n"
-"a floppy."
-msgstr ""
-"V zįvislosti na tom, zda jste zvolili individuįlnķ vżbģt balķčkł, nabķdne\n"
-"se stromovį struktura, obsahujķcķ v¹echny balķčky organizované do skupin.\n"
-"Pųi prochįzenķ stromu mł¾ete vybrat jednotlivé balķčky nebo celé skupiny.\n"
-"\n"
-"Pokud vyberete balķček nebo skupinu, v pravé čįsti se objevķ popis.\n"
-"Pokud mįte vżbģr hotovż, kliknģte na tlačķtko \"Instalovat\", které spustķ\n"
-"instalačnķ proces. Doba trvįnķ instalace zįvisķ počtu balķčkł a na "
-"rychlosti\n"
-"va¹eho počķtače. Zbżvajķcķ čas je zobrazovįn na obrazovce, tak¾e mįte\n"
-"odhad na to, zda si stihnete dįt ¹įlek kįvy. :-)\n"
-"\n"
-"Pokud mezi vybranżmi balķčky jsou serverové programy, zobrazķ se dotaz na "
-"to,\n"
-"zda opravdu chcete tyto servery nainstalovat. V distribuci Mandrake Linux\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"
-"Pokud nevķte, k čemu jsou určeny nģkteré serverové slu¾by, kliknģte na \"Ne"
-"\".\n"
-"Kliknutķm na \"Ano\" se dané slu¾by nainstalujķ a spustķ pųi startu!\n"
-"\n"
-"Volba \"Automatické zįvislosti\" odstraņuje varovné hlį¹enķ, které se "
-"objevķ\n"
-"v¾dy, kdy¾ vyberete balķček, kterż mį dal¹ķ zįvislosti a instalačnķ program\n"
-"tak musķ vybrat dal¹ķ potųebné balķčky.\n"
-"\n"
-"Malį ikonka diskety umo¾ņuje nahrįt ji¾ pųedtķm vybranż seznam balķčkł.\n"
-"Kliknģte na ikonu a vlo¾te disketu s ulo¾enżm vżbģrem. V poslednķm kroku\n"
-"bude nįvod, jak si tuto disketu vytvoųit."
-
-#: ../../help.pm_.c:164
-msgid ""
-"You are now proposed to set up your Internet/network connection. If you\n"
-"wish to connect your computer to the Internet or to a local network, click\n"
-"\"OK\". The autodetection of network devices and modem will be launched. If\n"
-"this detection fails, uncheck the \"Use auto detection\" box next time. You\n"
-"may also choose not to configure the network, or do it later; in that case,\n"
-"simply click the \"Cancel\" button.\n"
-"\n"
-"Available connections are: traditional modem, ISDN modem, ADSL connection,\n"
-"cable modem, and finally a simple LAN connection (Ethernet).\n"
-"\n"
-"Here, we will not detail each configuration. Simply make sure that you have\n"
-"all the parameters from your Internet Service Provider or system\n"
-"administrator.\n"
-"\n"
-"You can consult the ``User Guide'' chapter about Internet connections for\n"
-"details about the configuration, or simply wait until your system is\n"
-"installed and use the program described there to configure your connection.\n"
-"\n"
-"If you wish to configure the network later after installation, or if you\n"
-"are finished configuring your network connection, click \"Cancel\"."
-msgstr ""
-"V tomto kroku se provede nastavenķ pųipojenķ k internetu/sķti. Pokud chcete\n"
-"pųipojit svłj počķtač k mķstnķ sķti nebo k internetu, klepnģte na \"OK\"\n"
-"a spustķ se automatickį detekce sķ»ové karty nebo modemu. Pokud tato\n"
-"detekce sel¾e, odznačte pųi dal¹ķm pokusu \"Pou¾ķt automatickou detekci"
-"\"Pokud nechcete nynķ nastavit sķ» nebo to chcete provést pozdģji, "
-"jednodu¹e\n"
-"klepnģte na tlačķtko \"Zru¹it\".\n"
-"Zpłsoby pųipojenķ jsou: tradičnķ modem, ISDN modem, ADSL spojenķ, kabelovż\n"
-"modem a konečnģ klasické pųipojenķ do LAN sķtģ (Ethernet).\n"
-"\n"
-"Ujistģte se, ¾e mįte v¹echny dostupné informace pro pųipojenķ od svého\n"
-"poskytovatele pųipojenķ nebo od sprįvce sķtģ. \n"
-"\n"
-"Vķce informacķ naleznete v pųķslu¹né kapitole v manuįlu, nebo mł¾ete systém\n"
-"nainstalovat a pou¾ķt programy na konfiguraci pųipojenķ pozdģji.\n"
-"\n"
-"Pokud nemįte ¾įdné pųipojenķ k internetu ani k mķstnķ sķti, klepnģte na\n"
-"\"Zru¹it\"."
-
-#: ../../help.pm_.c:186
-msgid ""
-"You may now choose which services you wish to start at boot time.\n"
-"\n"
-"Here are presented all the services available with the current\n"
-"installation. Review them carefully and uncheck those which are not always\n"
-"needed at boot time.\n"
-"\n"
-"You can get a short explanatory text about a service by selecting a\n"
-"specific service. However, if you are not sure whether a service is useful\n"
-"or not, 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 will probably not want to start any services which you do not\n"
-"need. Please remember that several services can be dangerous if they are\n"
-"enabled on a server. In general, select only the services you really need.\n"
-"!!"
-msgstr ""
-"Nynķ si zvolte, které slu¾by majķ bżt spu¹tģny pųi startu počķtače.\n"
-"\n"
-"Je zde seznam v¹ech slu¾eb, které jsou aktuįlnģ nainstalovįny.\n"
-"Prohlédnģte si seznam pozornģ a zru¹te ty, které nepotųebujete spou¹tģt pųi\n"
-"startu počķtače.\n"
-"\n"
-"Pokud pųejedete my¹ķ nad nģkterou polo¾kou, objevķ se malį nįpovģda\n"
-"s popisem, co danį slu¾ba dģlį. Pokud pųesnģ nevķte, zda je slu¾ba u¾itečnį\n"
-"nebo ne, je lep¹ķ ji nechat ve vżchozķm stavu.\n"
-"\n"
-"Rozva¾te, co za slu¾by spustit, zvlį¹tģ pokud budete počķtač provozovat\n"
-"jako server: nepotųebujete v¹echny slu¾by. Pamatujte, ¾e čķm vķce slu¾eb\n"
-"je spu¹tģno, tķm je vģt¹ķ nebezpečķ ne¾įdoucķho proniknutķ do počķtače.\n"
-"Tak¾e povolte opravdu jen ty slu¾by, které nezbytnģ potųebujete."
-
-#: ../../help.pm_.c:203
-msgid ""
-"GNU/Linux manages time in GMT (Greenwich Mean Time) and translates it in\n"
-"local time according to the time zone you selected. It is however possible\n"
-"to deactivate this by deselecting \"Hardware clock set to GMT\" so that the\n"
-"hardware clock is the same as the system clock. This is useful when the\n"
-"machine is hosting another operating system like Windows.\n"
-"\n"
-"The \"Automatic time synchronization\" option will automatically regulate\n"
-"the clock by connecting to a remote time server on the Internet. In the\n"
-"list that is presented, choose a server located near you. Of course you\n"
-"must have a working Internet connection for this feature to work. It will\n"
-"actually install on your machine a time server which can be optionally used\n"
-"by other machines on your local network."
-msgstr ""
-"GNU/Linux spravuje čas podle GMT (Greenwich Mean Time) a pųevįdķ ho na\n"
-"čas podle pųķslu¹né vybrané časové zóny. Toto je mo¾né zru¹it odznačenķm\n"
-"volby \"Hodiny nastaveny na GMT\" a tak budou systémové hodiny stejné jako\n"
-"hardwarové. To je dobré v tom pųķpadģ, ¾e na počķtači je jinż operačnķ "
-"systém\n"
-"typu Windows.\n"
-"\n"
-"Volba \"Automatickį synchronizace času\" provįdķ automatické nastavenķ "
-"hodin\n"
-"pųipojenķm se k časovému serveru na internetu. Vyberte si v seznamu ten "
-"server,\n"
-"kterż je vįm nejblķ¾. Je zamoųejmé, ¾e pro sprįvnou funkci musķte mķt "
-"fukčnķ\n"
-"pųipojenķ k internetu. Na počķtač se také nainstaluje časovż server, kterż\n"
-"mohou pou¾ķvat jiné počķtače ve va¹ķ lokįlnķ sķti."
-
-#: ../../help.pm_.c:217
-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 Mandrake Linux rely. In this section, DrakX\n"
-"will try to configure X automatically.\n"
-"\n"
-"It is extremely rare for it to fail, unless the hardware is very old (or\n"
-"very new). If it succeeds, it will start X automatically with the best\n"
-"resolution possible, depending on the size of the monitor. A window will\n"
-"then appear and ask you if you can see it.\n"
-"\n"
-"If you are doing an \"Expert\" installation, you will enter the X\n"
-"configuration wizard. See the corresponding section of the manual for more\n"
-"information about this wizard.\n"
-"\n"
-"If you can see the message during the test, and answer \"Yes\", then DrakX\n"
-"will proceed to the next step. If you cannot see the message, it simply\n"
-"means that the configuration was wrong and the test will automatically end\n"
-"after 10 seconds, restoring the screen."
-msgstr ""
-"X Window System (zkrįcenģ X) je srdcem grafického rozhranķ GNU/Linuxu,\n"
-"na kterém jsou provozovįny grafickį prostųedķ (KDE,Gnome,AfterStep, "
-"WindowMaker)\n"
-"V této sekci se DrakX pokusķ nakonfigurovat X automaticky.\n"
-"\n"
-"Existujķ pųķpady, kdy se automatickį detekce nezdaųķ. Je to v pųķpadech, ¾e\n"
-"je danż hardware velmi starż (nebo velmi novż). Pokud se detekce podaųķ,\n"
-"spustķ se grafické prostųedķ v nejlep¹ķm mo¾ném rozli¹enķ v zįvislosti na "
-"monitoru. Probģhne test, kdy se zobrazķ okno s otįzkou, zda je v¹e sprįvnģ\n"
-"zobrazeno.\n"
-"\n"
-"Pokud provįdķte \"Expertnķ\" instalaci, spustķ se prłvodce konfiguracķ X "
-"Window. Vķce informacķ o prłvodci naleznete v odpovķdajķcķ sekci v manuįlu.\n"
-"\n"
-"Pokud pųi testu nastavenķ uvidķte zprįvu dobųe, odpovģzte \"Yes\" a "
-"instalace\n"
-"pokračuje dal¹ķm krokem.\n"
-"Pokud nic neuvidķte, test automaticky skončķ za 10 vteųin a obnovķ se\n"
-"obrazovka."
-
-#: ../../help.pm_.c:237
-msgid ""
-"The first time you try the X configuration, you may not be very satisfied\n"
-"with its display (screen is too small, shifted left or right...). Hence,\n"
-"even if X starts up correctly, DrakX then asks you if the configuration\n"
-"suits you. It will also propose to change it by displaying a list of valid\n"
-"modes it could find, asking you to select one.\n"
-"\n"
-"As a last resort, if you still cannot get X to work, choose \"Change\n"
-"graphics card\", select \"Unlisted card\", and when prompted on which\n"
-"server, choose \"FBDev\". This is a failsafe option which works with any\n"
-"modern graphics card. Then choose \"Test again\" to be sure."
-msgstr ""
-"Mł¾e se stįt, ¾e pųi prvnķm testu nebude zvoleno nejoptimįlnģj¹ķ rozli¹enķ\n"
-"(obrazovka je pųķli¹ malį, je posunuta doprava či doleva...) V této chvķli "
-"se\n"
-"instalačnķ program dotį¾e, jaké rozli¹enķ si pųejete a nabķdne seznam\n"
-"pou¾itelnżch rozli¹enķ.\n"
-"\n"
-"Pokud se nepodaųķ X Window korektnģ spustit, vyberte se z nabķdky \"Zmģnit"
-"\"\n"
-"grafickou kartu, vyberte \"Neznįmį karta\" a pųi otįzce na vżbģr serveru "
-"odpovģzte\n"
-"\"FBDev\". Tato volba dovoluje pųi potķ¾ķch spustit X Window na v¹ech\n"
-"modernķch grafickżch kartįch. Potom \"Znova otestovat\" pro ovģųenķ."
-
-#: ../../help.pm_.c:249
-msgid ""
-"Finally, you will be asked whether you want to see the graphical interface\n"
-"at boot. Note this question will be asked even if you chose not to test the\n"
-"configuration. Obviously, you want to answer \"No\" if your machine is to\n"
-"act as a server, or if you were not successful in getting the display\n"
-"configured."
-msgstr ""
-"Poslednķ otįzka je na to, zda chcete spustit grafické prostųedķ pųi startu.\n"
-"Tato otįzka se zobrazķ i v pųķpadģ, ¾e nastavenķ pųedtķm neotestujete.\n"
-"Je zųejmé, ¾e odpovķte \"Ne\" v pųķpadģ, ¾e počķtač bude pracovat\n"
-"jako server nebo v pųķpadģ, ¾e se nepodaųilo sprįvnģ nastavit grafickou "
-"kartu."
-
-#: ../../help.pm_.c:256
-msgid ""
-"The Mandrake LinuxCD-ROM has a built-in rescue mode. You can access it by\n"
-"booting from the CD-ROM, press the >>F1<< key at boot and type >>rescue<<\n"
-"at the prompt. But in case your computer cannot boot from the CD-ROM, you\n"
-"should come back to this step for help in at least two situations:\n"
-"\n"
-" * when installing the bootloader, DrakX will rewrite the boot sector (MBR)\n"
-"of your main disk (unless you are using another boot manager), to allow you\n"
-"to start up with either Windows or GNU/Linux (assuming you have Windows in\n"
-"your system). If you need to reinstall Windows, the Microsoft install\n"
-"process will rewrite the boot sector, and then you will not be able to\n"
-"start GNU/Linux!\n"
-"\n"
-" * if a problem arises and you cannot start up GNU/Linux from the hard "
-"disk,\n"
-"this floppy disk will be the only means of starting up GNU/Linux. It\n"
-"contains a fair number of system tools for restoring a system, which has\n"
-"crashed due to a power failure, an unfortunate typing error, a typo in a\n"
-"password, or any other reason.\n"
-"\n"
-"When you click on this step, you will be asked to enter a disk inside the\n"
-"drive. The floppy disk you will insert must be empty or contain data which\n"
-"you do not need. You will not have to format it since DrakX will rewrite\n"
-"the whole disk."
-msgstr ""
-"CDROM s distribucķ Mandrake Linux mį zabudovanż zįchrannż re¾im. Mł¾ete ho\n"
-"spustit pųķmo pųi spu¹tģnķ z CD, kdy stisknete klįvesu >>F1<< a na "
-"pųķkazovż\n"
-"ųįdek napķ¹ete >>rescue<<. Pokud počķtač neumo¾ņuje bootovat z CD, potom\n"
-"v tomto kroku najdete ųe¹enķ na nįsledujķcķ situace:\n"
-"\n"
-" * pokud pou¾ķvįte zavįdģcķ program, DrakX pųepķ¹e zavįdģcķ sektor (MBR) na\n"
-"pevném disku (pokud nepou¾ķvįte jinż zavįdģcķ program) aby umo¾nil start "
-"buļ\n"
-"Windows nebo GNU/Linuxu (pokud mįte Windows na počķtači nainstalovįny).\n"
-"Pokud potųebujete Windows pųeinstalovat, instalačnķ program Microsoftu "
-"pųepķ¹e\n"
-"zavįdģcķ sektor a nemįte tak mo¾nost spustit GNU/Linux!\n"
-"\n"
-" * pokud se objevķ problémy a nenķ mo¾né spustit GNU/Linux z pevného disku,\n"
-"je disketa jedinou mo¾nostķ, jak systém spustit. Obsahuje zįkladnķ "
-"systémové\n"
-"nįstroje na obnovenķ systému buļ pųķ vżpadku napįjenķ, chybģ v hesle nebo\n"
-"z jinżch dłvodł.\n"
-"\n"
-"Pokud zvolķte tento krok, musķte vlo¾it disketu do mechaniky. Disketa musķ\n"
-"bżt prįzdnį, nebo na nķ mohou bżt data, kterį ji¾ nepotųebujete. Nįslednģ "
-"se\n"
-"provede formįt diskety a DrakX celż jejķ obsah pųepķ¹e."
-
-#: ../../help.pm_.c:280
-msgid ""
-"At this point, you need to choose where you want to install the Mandrake\n"
-"Linux operating system on your hard drive. If your hard drive is empty or\n"
-"if an existing operating system is using all the available space, you will\n"
-"need to partition it. Basically, partitioning a hard drive consists of\n"
-"logically dividing it to create space to install your new Mandrake Linux\n"
-"system.\n"
-"\n"
-"Because the partitioning process' effects are usually irreversible,\n"
-"partitioning can be intimidating and stressful if you are an inexperienced\n"
-"user. Fortunately, there is a wizard which simplifies this process. Before\n"
-"beginning, please consult the manual and take your time.\n"
-"\n"
-"If you are running the installation in Expert mode, you will enter\n"
-"DiskDrake, the Mandrake Linux partitioning tool, which allows you to\n"
-"fine-tune your partitions. See the DiskDrake section in the ``User Guide''.\n"
-"From the installation interface, you can use the wizards as described here\n"
-"by clicking the dialog's \"Wizard\" button.\n"
-"\n"
-"If partitions have already been defined, either from a previous\n"
-"installation or from another partitioning tool, simply select those to\n"
-"install your Linux system.\n"
-"\n"
-"If partitions are not defined, you will need to create them using the\n"
-"wizard. Depending on your hard drive configuration, several options are\n"
-"available:\n"
-"\n"
-" * \"Use free space\": this option will simply lead to an automatic\n"
-"partitioning of your blank drive(s). You will not be prompted further;\n"
-"\n"
-" * \"Use existing partition\": the wizard has detected one or more existing\n"
-"Linux partitions on your hard drive. If you want to use them, choose this\n"
-"option;\n"
-"\n"
-" * \"Use the free space on the Windows; partition\": if MicrosoftWindows is\n"
-"installed on your hard drive and takes all the space available on it, you\n"
-"have to create free space for Linux data. To do so, you can delete your\n"
-"MicrosoftWindows partition and data (see ``Erase entire disk'' or ``Expert\n"
-"mode'' solutions) or resize your MicrosoftWindows partition. Resizing can\n"
-"be performed without the loss of any data, provided you previously\n"
-"defragment the Windows partition. Backing up your data won't hurt either..\n"
-"This solution is recommended if you want to use both Mandrake Linux and\n"
-"MicrosoftWindows on the same computer.\n"
-"\n"
-" Before choosing this option, please understand that after this "
-"procedure,\n"
-"the size of your MicrosoftWindows partition will be smaller than at the\n"
-"present time. You will have less free space under MicrosoftWindows to store\n"
-"your data or to install new software;\n"
-"\n"
-" * \"Erase entire disk\": if you want to delete all data and all partitions\n"
-"present on your hard drive and replace them with your new Mandrake Linux\n"
-"system, choose this option. Be careful with this solution because you will\n"
-"not be able to revert your choice after you confirm;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Remove Windows\": this will simply erase everything on the drive and\n"
-"begin fresh, partitioning everything from scratch. All data on your disk\n"
-"will be lost;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Expert mode\": choose this option if you want to manually partition\n"
-"your hard drive. Be careful it is a powerful but dangerous choice. You can\n"
-"very easily lose all your data. Hence, do not choose this unless you know\n"
-"what you are doing."
-msgstr ""
-"V tomto bodģ si musķte definovat, na které diskové oddķly budete\n"
-"instalovat novż operačnķ systém Mandrake Linux. 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 Mandrake Linux.\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"
-"Pro tyto u¾ivatele je dobrż prłvodce, kterż zjednodu¹ķ danż proces.\n"
-"Je¹tģ pųed započetķm rozdģlovįnķ disku si pročtģte manuįl.\n"
-"\n"
-"Pokud mįte zvolenż Expertnķ re¾im, spustil se nįstroj na prįci s diskem: "
-"Diskdrake, kterż umo¾ņuje lépe nastavit diskové oddķly. Pokud chcete pou¾ķt\n"
-"prłvodce, kliknģte na tlačķtko \"Prłvodce\".\n"
-"\n"
-"Pokud mįte ji¾ vytvoųeny diskové oddķly z pųedchozķch instalacķ nebo\n"
-"od jinżch diskovżch nįstrojł, lze je nynķ pou¾ķt pro instalaci.\n"
-"\n"
-"Pokud nejsou definovįny ¾įdné diskové oddķly, je nutné je vytvoųit.\n"
-"K tomu slou¾ķ prłvodce, kterż nabķdne nģkolik ųe¹enķ:\n"
-"\n"
-" * \"Pou¾ķt volnż prostor\": takto se jednodu¹e automaticky disk(y) rozdģlķ\n"
-"a ji¾ se o nic nemusķte starat.\n"
-"\n"
-" * \"Pou¾ķt existujķcķ oddķly\": prłvodce detekoval jeden nebo vķce "
-"existujķcķch\n"
-"Linuxovżch oddķlł a ty nabķdne pro instalaci.\n"
-"\n"
-" * \"Pou¾ķt volné mķsto na oddķle s Windows\": pokud mįte na disku "
-"nainstalovįny\n"
-"Microsoft Windows a zabķrajķ celż disk, je mo¾né tento prostor zmen¹it \n"
-"a pou¾ķt ho pro instalaci. Zmģna velikost oddķlu je provedena bez ztrįty "
-"dat.\n"
-"Tento postup je doporučenż, pokud chcete na disku provozovat jak systém\n"
-"Linux Mandrake tak i Microsoft Windows.\n"
-"\n"
-" Pųed touto volbou si uvģdomte, ¾e velikost oddķlu s Microsoft Windows\n"
-"bude men¹ķ ne¾ je nynķ. To znamenį, ¾e budete mķt ménģ mķsta pro \n"
-"instalaci programł do Microsoft Windows.\n"
-"\n"
-" * \"Zru¹it celż disk\": pokud chcete smazat ve¹kerį data a v¹echny oddķly\n"
-"na disku a pou¾ķt je pro instalaci systému Mandrake Linux, vyberte toto\n"
-"ųe¹enķ. Zde postupujte opatrnģ, po vżbģru ji¾ nenķ mo¾né vzķt volbu zpģt.\n"
-"\n"
-" !! Pokud zvolķte tuto mo¾nost, v¹echna data na disku budou ztracena.!!\n"
-"\n"
-" * \"Odstranit Windows\": takto se jednodu¹e sma¾e celż disk a bude se "
-"instalovat\n"
-"na celż disk- V¹echna data tak budou ztracena.\n"
-"\n"
-" !! Pokud vyberete tuto volbu, ve¹kerį data budou ztracena. !!\n"
-"\n"
-" * \"Expertnķ re¾im\": pokud chcete disk rozdģlit ručnģ. Pųed touto volbou "
-"buļte\n"
-"opatrnķ, je sice mocnį, ale nebezpečnį.\n"
-"Nedoporučuje se tģm, kteųķ pųesnģ nevģdķ, co dģlajķ."
-
-#: ../../help.pm_.c:347
-msgid ""
-"There you are. Installation is now complete and your GNU/Linux system is\n"
-"ready to use. Just click \"OK\" to reboot the system. You can start\n"
-"GNU/Linux or Windows, whichever you prefer (if you are dual-booting), as\n"
-"soon as the computer has booted up again.\n"
-"\n"
-"The \"Advanced\" button (in Expert mode only) shows two more buttons to:\n"
-"\n"
-" * \"generate auto-install floppy\": to create an installation floppy disk\n"
-"which will automatically perform a whole installation without the help of\n"
-"an operator, similar to the installation you just configured.\n"
-"\n"
-" Note that two different options are available after clicking the button:\n"
-"\n"
-" * \"Replay\". This is a partially automated installation as the\n"
-"partitioning step (and only this one) remains interactive;\n"
-"\n"
-" * \"Automated\". Fully automated installation: the hard disk is "
-"completely\n"
-"rewritten, all data is lost.\n"
-"\n"
-" This feature is very handy when installing a great number of similar\n"
-"machines. See the Auto install section on our web site;\n"
-"\n"
-" * \"Save packages selection\"(*): saves the package selection as done\n"
-"previously. Then, when doing another installation, insert the floppy inside\n"
-"the drive and run the installation going to the help screen by pressing on\n"
-"the [F1] key, and by issuing >>linux defcfg=\"floppy\"<<.\n"
-"\n"
-"(*) You need a FAT-formatted floppy (to create one under GNU/Linux, type\n"
-"\"mformat a:\")"
-msgstr ""
-"Nynķ je instalace ukončena a operačnķ systém GNU/Linux je pųipraven k "
-"pou¾itķ.\n"
-"Kliknģte na \"OK\" a systém bude restartovįn. Potom mł¾ete spustit GNU/Linux "
-"nebo\n"
-"Windows, zįle¾ķ kterż preferujete\n"
-"\n"
-"Tlačķtko \"Roz¹ķųené\" zobrazķ dal¹ķ dvģ tlačķtka:\n"
-"\n"
-" * Generovat disketu pro automatickou instalaci: vytvoųķ disketu, se kterou\n"
-"lze celou instalaci opakovat bez zįsahu operįtora se stejnżmi volbami,\n"
-"které byly zvoleny pųi instalaci.\n"
-"\n"
-" Po kliknutķ na toto tlačķtko se zobrazķ dal¹ķ dvģ volby:\n"
-"\n"
-" * : Zopakovat: je to čįstečnģ automatickį instalace, kdy se potvrzuje "
-"krok\n"
-"pųi rozdģlovįnķ diskł (a pouze tento krok).\n"
-"\n"
-" * : Automaticky: plnģ automatickį instalace, data na pevném disku budou\n"
-"zru¹ena a disk pųepsįn.\n"
-"\n"
-" Tato volba je velmi u¾itečnį, kdy¾ potųebujete nainstalovat vģt¹ķ počet\n"
-"stejnżch počķtačł. Vķce o této mo¾nosti je na na¹ich WWW strįnkįch.\n"
-"\n"
-" * Ulo¾it vżbģr balķčkł(*): ulo¾ķ vżbģr balķčkł, kterż byl zvolen pųi "
-"instalaci.\n"
-"Pokud budete instalovat dal¹ķ počķtač, vlo¾te disketu do mechaniky a "
-"spus»te\n"
-"instalaci, stisknģte [F1] a napi¹te na pųķkazovż ųįdek >linux defcfg=\"floppy"
-"\"<.\n"
-"\n"
-"(*) Potųebujete disketu formįtovanou FAT (Pod Linuxem ji vytvoųķte pųķkazem\n"
-"\"mformat a:\")"
-
-#: ../../help.pm_.c:378
-msgid ""
-"Any partitions that have been newly defined must be formatted for use\n"
-"(formatting means creating a filesystem).\n"
-"\n"
-"At this time, you may wish to reformat some already existing partitions to\n"
-"erase any data they contain. If you wish to do that, please select those\n"
-"partitions as well.\n"
-"\n"
-"Please note that it is 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\n"
-"reformat partitions containing data that you wish to keep (typically\n"
-"\"/home\").\n"
-"\n"
-"Please be careful when selecting partitions. After formatting, all data on\n"
-"the selected partitions will be deleted and you will not be able to recover\n"
-"any of it.\n"
-"\n"
-"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"
-"Mandrake Linux operating system installation.\n"
-"\n"
-"Click on \"Advanced\" if you wish to select partitions that will be checked\n"
-"for bad blocks on the disk."
-msgstr ""
-"Ka¾dż novģ vytvoųenż diskovż oddķl musķ bżt pųed pou¾itķm zformįtovįn\n"
-"(formįtovįnķm se myslķ vytvoųenķ souborového systému).\n"
-"\n"
-"Nynķ lze formįtovat ji¾ existujķcķ diskové oddķly pro vymazįnķ\n"
-"v¹ech dat, kterį obsahujķ. Pokud to chcete provést, vyberte diskové oddķly\n"
-"pro pųeformįtovįnķ.\n"
-"\n"
-"Nenķ ale nutné pųeformįtovat v¹echny ji¾ existujķcķ diskové oddķly.\n"
-"Je nutné pųeformįtovat oddķly, které obsahujķ operačnķ systém (jako je \"/"
-"\",\n"
-"\"/usr\" nebo \"/var\") ale nenķ nutné pųeformįtovat oddķly, které obsahujķ\n"
-"data, kterį chcete zachovat (typicky /home).\n"
-"\n"
-"Pųi vżbģru diskovżch oddķlł, které se budou formįtovat buļte opatrnķ, "
-"v¹echna\n"
-"data na formįtovanżch oddķlech budou ztracena a nelze je ji¾ obnovit.\n"
-"\n"
-"Pokud je v¹e pųipraveno pro formįtovįnķ, kliknģte na \"OK\".\n"
-"\n"
-"Kliknģte na \"Zru¹it\" pokud chcete vybrat jiné oddķly pro instalaci\n"
-"systému Mandrake Linux.\n"
-"\n"
-"Kliknutķm na \"Roz¹ķųené\" mł¾ete vybrat, které oddķlz budou otestovįny\n"
-"na vadné bloky."
-
-#: ../../help.pm_.c:404
-msgid ""
-"Your new Mandrake Linux operating system is currently being installed.\n"
-"Depending on the number of packages you will be installing and the speed of\n"
-"your computer, this operation could take from a few minutes to a\n"
-"significant amount of time.\n"
-"\n"
-"Please be patient."
-msgstr ""
-"Nynķ začne novį instalace operačnķho systému Mandrake Linux.\n"
-"Tato operace mł¾e trvat nģkolik desķtek minut (zįle¾ķ na mno¾stvķ balķčkł,\n"
-"které jste si vybrali pro instalaci a rychlosti va¹eho počķtače).\n"
-"\n"
-"Mģjte prosķm trpģlivost a vyčkejte."
-
-#: ../../help.pm_.c:412
-msgid ""
-"At the time you are installing Mandrake Linux, it is likely that some\n"
-"packages have been updated since the initial release. Some bugs may have\n"
-"been fixed, and security issues solved. To allow you to benefit from these\n"
-"updates, you are now proposed to download them from the Internet. Choose\n"
-"\"Yes\" if you have a working Internet connection, or \"No\" if you prefer\n"
-"to install updated packages later.\n"
-"\n"
-"Choosing \"Yes\" displays a list of places from which updates can be\n"
-"retrieved. Choose the one nearest you. Then a package-selection tree\n"
-"appears: review the selection, and press \"Install\" to retrieve and\n"
-"install the selected package(s), or \"Cancel\" to abort."
-msgstr ""
-"Poka¾dé, kdy¾ instalujete Mandrake Linux, je mo¾né, ¾e nģkteré balķčky byly\n"
-"od vydįnķ distribuce aktualizovįny. Mohly to bżt opravy chyb či ųe¹enķ "
-"mo¾nżch\n"
-"bezpečnostnķch problémł. Pokud chcete vyu¾ķt prįvģ této nabķdky, je mo¾né\n"
-"je nynķ stįhnout z internetu. Zvolte \"Ano\" pokud mįte funkčnķ pųipojenķ "
-"na\n"
-"internet nebo \"Ne\" pokud budete instalovat aktualizace pozdģji.\n"
-"\n"
-"Po zvolenķ \"Ano\" se zobrazķ seznam mķst, odkud mohou bżt aktualizace "
-"zķskįny.\n"
-"Vyberte si nejbli¾¹ķ mķsto. Nįslednģ se objevķ stromovż seznam balķčkł, "
-"kterż\n"
-"je mo¾no je¹tģ upravit a stisknutķm tlačķtka \"Instalovat\" se provede "
-"sta¾enķ\n"
-"a instalace vybranżch balķčkł. Akci mł¾ete pųeru¹it klepnutķm na \"Zru¹it\"."
-
-#: ../../help.pm_.c:425
-msgid ""
-"Before continuing, you should read carefully the terms of the license. It\n"
-"covers the whole Mandrake Linux 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."
-msgstr ""
-"Pųedtķm, ne¾ budete pokračovat, pųečtģte si pozornģ podmķnky licence. Ty\n"
-"se vztahujķ k celé distribuci Mandrake Linux a pokud s nimi nesouhlasķte,\n"
-"kliknģte na tlačķtko \"Odmķtnout\". Instalace ihned skončķ. Pokud chcete "
-"pokračovat\n"
-"v instalaci, kliknģte na tlačķtko \"Potvrdit\"."
-
-#: ../../help.pm_.c:432
-msgid ""
-"At this point, it is time to choose the security level desired for the\n"
-"machine. As a rule of thumb, the more exposed the machine is, and the more\n"
-"the data stored in it is crucial, the higher the security level should be.\n"
-"However, a higher security level is generally obtained at the expense of\n"
-"easiness of use. Refer to the \"msec\" chapter of the ``Reference Manual''\n"
-"to get more information about the meaning of these levels.\n"
-"\n"
-"If you do not know what to choose, keep the default option."
-msgstr ""
-"Nynķ si vyberte śroveņ zabezpečenķ va¹eho počķtače Je zųejmé, ¾e čķm vķce "
-"je\n"
-"počķtač vyu¾ķvįn a čķm cennģj¹ķ data obsahuje, tķm je potųeba zvolit vy¹¹ķ\n"
-"śroveņ. Na druhou stranu, vy¹¹ķ śroveņ znesnadņuje nģkteré obvyklé postupy.\n"
-"Vķce informacķ o śrovnķch bezpečnosti se dočtete v kapitole MSEC v "
-"referenčnķ\n"
-"pųķručce. \n"
-"Pokud nevķte co vybrat, ponechte vżchozķ nastavenķ."
-
-#: ../../help.pm_.c:442
-msgid ""
-"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandrake Linux 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"
-"partitions must be defined.\n"
-"\n"
-"To create partitions, you must first select a hard 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"
-"\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"
-"\n"
-" * \"More\": gives access to additional features:\n"
-"\n"
-" * \"Save partition table\": saves the partition table to a floppy. "
-"Useful\n"
-"for later partition-table recovery if necessary. It is strongly recommended\n"
-"to perform this step;\n"
-"\n"
-" * \"Restore partition table\": allows to restore a previously saved\n"
-"partition table from floppy disk;\n"
-"\n"
-" * \"Rescue partition table\": if your partition table is damaged, you "
-"can\n"
-"try to recover it using this option. Please be careful and remember that it\n"
-"can fail;\n"
-"\n"
-" * \"Reload partition table\": discards all changes and loads your "
-"initial\n"
-"partition table;\n"
-"\n"
-" * \"Removable media automounting\": unchecking this option will force "
-"users\n"
-"to manually mount and unmount removable medias such as floppies and\n"
-"CD-ROMs.\n"
-"\n"
-" * \"Wizard\": 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 knowledge of\n"
-"partitioning;\n"
-"\n"
-" * \"Undo\": use this option to cancel your changes;\n"
-"\n"
-" * \"Toggle to normal/expert mode\": allows additional actions on "
-"partitions\n"
-"(type, options, format) and gives more information;\n"
-"\n"
-" * \"Done\": when you are finished partitioning your hard 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"
-"partitions using [Tab] and [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"
-"\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ųebné určit, kterż(é) oddķl(y) budou pou¾ity pro "
-"instalaci\n"
-"systému Mandrake Linux. 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"
-"Pro vytvoųenķ oddķlu musķte nejdųķve vybrat pevnż disk. Kliknģte na \n"
-"\"hda\", co¾ je prvnķ IDE disk, nebo na \"hdb\", co¾ je druhż disk,\n"
-"pųķpadnģ na \"sda\", co¾ je prvnķ SCSI disk.\n"
-"\n"
-"Pro rozdģlenķ vybraného disku mł¾ete pou¾ķt tyto volby:\n"
-"\n"
-" * \"V¹e smazat\": tato volba sma¾e v¹echny oddķly na disku.\n"
-"\n"
-" * \"Automaticky rozmķstit\": dojde k automatickému vytvoųenķ oddķlu pro\n"
-"Ext2 a swap ve volném prostoru disku.\n"
-"\n"
-" * \"Vķce\": nabķdne dal¹ķ mo¾nosti:\n"
-"\n"
-" * \"Ulo¾it tabulku na disketu\": ulo¾ķ tabulku oddķlł na disketu. To je\n"
-"vhodné pro pųķpad po¹kozenķ tabulky, kdy ji lze z této zįlohy obnovit.\n"
-"Doporučujeme vyu¾ķt tuto mo¾nost.\n"
-"\n"
-" * \"Obnovit z diskety\": obnovķ tabulku oddķlł, kterį byla ji¾ dųķve\n"
-"ulo¾ena na disketu.\n"
-"\n"
-" * \"Zįchrana tabulky oddķlł\": pokud je tabulka po¹kozena, mł¾ete se\n"
-"pokusit ji opravit. Buļte ale opatrnķ a pamatujte na to, ¾e se to nemusķ "
-"v¾dy\n"
-"podaųit.\n"
-"\n"
-" * \"Znovu načķst\": zru¹ķ v¹echny zmģny a nahraje płvodnķ tabulku oddķlł.\n"
-"\n"
-" \"pųipojovat vyjķmatelnį média\": odznačenķm této volby zpłsobķ, ¾e pųi\n"
-"pųipojovįnķ a odpojovįnķ vyjķmatelnżch médiķ jako jsou CD-ROM disky a "
-"floppy\n"
-"disky je nutné pou¾ķt ručnģ pųķkaz mount.\n"
-"\n"
-" * \"Prłvodce\": pokud nemįte dobré znalosti o rozdģlovįnķ diskł, pou¾ijte\n"
-"tuto volbu, kdy se spustķ prłvodce.\n"
-"\n"
-" * \"Odvolat\": zru¹ķ v¹echny provedené zmģny.\n"
-"\n"
-" * \"Pųepnout normįlnķ/expertnķ re¾im\": dovoluje dal¹ķ akce s oddķly\n"
-"(typ oddķlu, volby, formįtovįnķ) a zobrazķ dal¹ķ informace.\n"
-" * \"Hotovo\": pokud mįte disk rozdģlen, ulo¾ķ se zmģny na disk.\n"
-"\n"
-"Poznįmka: ka¾dou volbu je mo¾né zadat také z klįvesnice. Mezi oddķly se\n"
-"mł¾ete pohybovat pomocķ klįves [Tab] a [©ipka nahoru/¹ipka dolł].\n"
-"\n"
-"Pokud je vybrįn oddķl, lze pou¾ķt tyto volby:\n"
-"\n"
-" * Ctrl-c pro vytvoųenķ nového oddķlu (pokud je vybrįn prįzdnż oddķl);\n"
-"\n"
-" * Ctrl-d pro smazįnķ oddķlu;\n"
-"\n"
-" * Ctrl-m pro zadįnķ bodu pųipojenķ.\n"
-"\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 HPFS,\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_.c:513
-msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
-"Please choose the one you want to resize in order to install your new\n"
-"Mandrake Linux 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"
-"\"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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard 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"
-"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 zmen¹it pro novu instalaci\n"
-"systému Mandrake Linux.\n"
-"\n"
-"Ka¾dż oddķl je zobrazen nįsledovnģ: \"Jméno pro Linux\",\n"
-"\"Jméno pro Windows\", \"Velikost\".\n"
-"\n"
-"\"Jméno pro Linux\" je slo¾eno nįsledovnģ: \"typ pevného disku\",\n"
-"\"čķslo disku\", \"čķslo oddķlu\". (napųķklad \"hda1\").\n"
-"\n"
-"Pokud mįte IDE disky, pak je \"typ pevného disku\" \"hd\", pokud mįte SCSI,\n"
-"označenķ bude \"sd\".\n"
-"\n"
-"\"Čķslo disku\" je v¾dy pķsmeno za \"hd\" nebo \"sd\". Pro IDE disky je "
-"takto:\n"
-"\n"
-" * \"a\" znamenį \"master disk na primįrnķm IDE ųadiči\",\n"
-"\n"
-" * \"b\" znamenį \"slave disk na primįrnķm IDE ųadiči\",\n"
-"\n"
-" * \"c\" znamenį \"master disk na sekundįrnķm IDE ųadiči\",\n"
-"\n"
-" * \"d\" znamenį \"slave disk na sekundįrnķm IDE ųadiči\".\n"
-"\n"
-"Pro SCSI disky platķ, ¾e \"a\" je \"nejmen¹ķ SCSI ID\", \"b\" je \"druhé\n"
-"nejmen¹ķ SCSI ID\" atd.\n"
-"\n"
-"\"Jméno pro Windows\" je pķsmeno, které je pou¾ito ve Windows\n"
-"(prvnķ oddķl nebo disk mį pķsmeno \"C:\")."
-
-#: ../../help.pm_.c:544
-msgid "Please be patient. This operation can take several minutes."
-msgstr "Buļte trpģlivķ. Tato operace mł¾e trvat nģkolik minut."
-
-#: ../../help.pm_.c:547
-msgid ""
-"DrakX now needs to know if you want to perform a default (\"Recommended\")\n"
-"installation or if you want to have greater control (\"Expert\"). You can\n"
-"also choose to do a new install or an upgrade of an existing Mandrake Linux\n"
-"system:\n"
-"\n"
-" * \"Install\": completely wipes out the old system. In fact, depending on\n"
-"what currently holds your machine, you will be able to keep some old (Linux\n"
-"or other) partitions unchanged;\n"
-"\n"
-" * \"Upgrade\": this installation class allows to simply update the "
-"packages\n"
-"currently installed on your Mandrake Linux system. It keeps the current\n"
-"partitions of your hard drives as well as user configurations. All other\n"
-"configuration steps remain available with respect to plain installation;\n"
-"\n"
-" * \"Upgrade Packages Only\": this brand new class allows to upgrade an\n"
-"existing Mandrake Linux system while keeping all system configurations\n"
-"unchanged. Adding new packages to the current installation is also\n"
-"possible.\n"
-"\n"
-"Upgrades should work fine for Mandrake Linux systems starting from \"8.1\"\n"
-"release.\n"
-"\n"
-"Depending on your knowledge of GNU/Linux, select one of the following\n"
-"choices:\n"
-"\n"
-" * Recommended: choose this if you have never installed a GNU/Linux\n"
-"operating system. The installation will be very easy and you will only be\n"
-"asked a few questions;\n"
-"\n"
-" * Expert: if you have a good knowledge of GNU/Linux, you can choose this\n"
-"installation class. The expert installation will allow you to perform a\n"
-"highly-customized installation. Answering some of the questions can be\n"
-"difficult if you do not have a good knowledge of GNU/Linux, so do not\n"
-"choose this unless you know what you are doing."
-msgstr ""
-"Nynķ se instalačnķ program zeptį na to, zda chcete provést (\"Doporučenou"
-"\")\n"
-"nebo (\"Expertnķ\") instalaci, kterį dovoluje vģt¹ķ kontrolu.\n"
-"Také si zde mł¾ete vybrat, zda chcete provést novou instalaci nebo "
-"aktualizaci\n"
-"ji¾ existujķcķ verze systému Mandrake Linux.:\n"
-"\n"
-" * \"Instalovat\" Kompletnģ pųema¾e starou verzi. V zįvislosti na tom, co "
-"je\n"
-"na daném systému nainstalovįno złstanou jiné oddķly nezmģnģny.\n"
-"\n"
-" * \"Aktualizovat\" Provede aktualizaci instalovaného systému Mandrake "
-"Linux.\n"
-"Rozdģlenķ disku i ve¹kerį data u¾ivatelł złstanou zachovįna. Jinak se "
-"provede\n"
-"témģų čistį instalace.\n"
-"\n"
-" * \"Aktualizovat pouze balķčky\" Provede aktualizaci balķčkł z pųedchozķ\n"
-"verze bez dal¹ķch zmģn. Je také mo¾né nainstalovat nové balķčky.\n"
-"\n"
-"Aktualizace je bezproblémovį od verze Mandrake Linux 8.1\n"
-"\n"
-"V zįvislosti na va¹ich znalostech GNU/Linuxu si mł¾ete vybrat z "
-"nįsledujķcķch\n"
-"śrovnķ instalace operačnķho systému Mandrake Linux:\n"
-"\n"
-"* Doporučenį: volte pokud jste je¹tģ nikdy neinstalovali GNU/Linux. "
-"Instalace bude velmi jednoduchį a budete dotįzįni pouze na nģkolik otįzek.\n"
-"\n"
-"* Expertnķ: jestli¾e jste dobųe obeznįmeni s GNU/Linuxem a chcete provést\n"
-"preciznķ nastavenķ instalace, je prįvģ pro vįs tato volba. Budete si moci\n"
-"pųesnģ upravit celou instalaci. Odpovģdi na otįzky budou velmi tģ¾ké pro\n"
-"ty, kteųķ nemajķ velmi dobré znalosti GNU/Linuxu.\n"
-"Nevolte tuto volbu, pokud pųesnģ nevķte, co dģlįte."
-
-#: ../../help.pm_.c:583
-msgid ""
-"Normally, DrakX selects the right keyboard for you (depending on the\n"
-"language you have chosen) and you won't even see this step. However, you\n"
-"might not have a keyboard that corresponds exactly to your language: for\n"
-"example, if you are an English speaking Swiss person, you may still want\n"
-"your keyboard to be a Swiss keyboard. Or if you speak English but are\n"
-"located in Quebec, you may find yourself in the same situation. In both\n"
-"cases, you will have to go back to this installation step and select an\n"
-"appropriate keyboard from the list.\n"
-"\n"
-"Click on the \"More\" button to be presented with the complete list of\n"
-"supported keyboards."
-msgstr ""
-"Normįlnģ instalačnķ program zvolķ sprįvnou klįvesnici na zįkladģ zvoleného\n"
-"jazyka, tak¾e nenķ potųeba nic v tomto kroku mģnit. \n"
-"Mł¾e se ale stįt, ¾e nemįte klįvesnici, kterį odpovķdį va¹emu jazyku: "
-"napųķklad\n"
-"pokud jste anglicky hovoųķcķ ©vżcar, stejnģ chcete mķt ¹vżcarskou "
-"klįvesnici.\n"
-"Nebo pokud mluvķte anglicky ale ¾ijete v Quebecu, je to stejnż pųķpad. V "
-"obou\n"
-"pųķpadech se mł¾ete na tento instalačnķ krok a vybrat si odpovķdajķcķ\n"
-"klįvesnici ze seznamu.\n"
-"\n"
-"Pokud mįte klįvesnici pro jinż jazyk, kliknģte na tlačķtko \"Vķce\"\n"
-"a zobrazķ se kompletnķ seznam v¹ech podporovanżch rozlo¾enķ klįvesnic."
-
-#: ../../help.pm_.c:596
-msgid ""
-"Please choose your preferred language for installation and system usage.\n"
-"\n"
-"Clicking on the \"Advanced\" button will allow you to select other\n"
-"languages to be installed on your workstation. Selecting other languages\n"
-"will install the language-specific files for system documentation and\n"
-"applications. For example, if you will host users from Spain on your\n"
-"machine, select English as the main language in the tree view and in the\n"
-"Advanced section click on the box corresponding to \"Spanish|Spain\".\n"
-"\n"
-"Note that multiple languages may be installed. Once you have selected any\n"
-"additional locales, click the \"OK\" button to continue."
-msgstr ""
-"Vyberte si prosķm vįmi preferovanż jazyk, kterż se bude pou¾ķvat pųi "
-"instalaci\n"
-"a v celém systému.\n"
-"\n"
-"Tlačķtko \"Roz¹ķųené\" umo¾ņuje zvolit dal¹ķ jazyky, které budou také "
-"nainstalovįny\n"
-"a mł¾ete je pou¾ķt v systému. Pokud napųķklad na počķtači pracujķ občas "
-"lidé\n"
-"ze ©panģlska, vyberte angličtinu jako hlavnķ jazyk a pod tlačķtkem "
-"roz¹ķųené\n"
-"zatrhnģte volbu \"©panģl¹tina\".\n"
-"\n"
-"Pokud mįte jazyk vybrįn, kliknģte na \"OK\" a instalace bude pokračovat\n"
-"dal¹ķm krokem."
-
-#: ../../help.pm_.c:609
-msgid ""
-"DrakX generally detects the number of buttons your mouse has. If not, it\n"
-"assumes you have a two-button mouse and will set it up for third-button\n"
-"emulation. DrakX will automatically know whether it is a PS/2, serial or\n"
-"USB mouse.\n"
-"\n"
-"If you wish to specify a different type of mouse select the appropriate\n"
-"type from the provided list.\n"
-"\n"
-"If you choose a mouse other than the default, a test screen will be\n"
-"displayed. Use the buttons and wheel to verify that the settings are\n"
-"correct. If the mouse is not working well, press the space bar or [Return]\n"
-"to \"Cancel\" and choose again."
-msgstr ""
-"DrakX zjistil, ¾e mįte dvou tlačķtkovou my¹ a nastavķ emulaci pro tųetķ "
-"tlačķtko.\n"
-"Taky umķ rozpoznat, zda je my¹ PS/2, USB nebo sériovį.\n"
-"\n"
-"Pokud chcete zadat jinż typ my¹i, vyberte odpovķdajķcķ typ se seznamu.\n"
-"\n"
-"Pokud vyberete jinou my¹ ne¾ ta, kterį byla detekovįna, zobrazķ se "
-"testovacķ\n"
-"obrazovka. Zde otestujte jak tlačķtka tak i kolečko, zda je nastavenķ "
-"sprįvné.\n"
-"Pokud my¹ nepracuje sprįvnģ, stisknģte mezernķk nebo ENTER na \"Zru¹it\"\n"
-"a vyberte jinż typ."
-
-#: ../../help.pm_.c:623
-msgid ""
-"Please select the correct port. For example, the \"COM1\" port under\n"
-"Windows is named \"ttyS0\" under GNU/Linux."
-msgstr ""
-"Vyberte prosķm sprįvnż port. Napųķklad \"COM1\" pod MS Windows se\n"
-"v Linuxu jmenuje \"ttyS0\"."
-
-#: ../../help.pm_.c:627
-msgid ""
-"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 choose\n"
-"not to enter a password, but we strongly advise you against this if only\n"
-"for one reason: do not think that because you booted GNU/Linux that your\n"
-"other operating systems are safe from mistakes. Since \"root\" can overcome\n"
-"all limitations and unintentionally erase all data on partitions by\n"
-"carelessly accessing the partitions themselves, it is important for it to\n"
-"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."
-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 "
-"administrįtorem\n"
-"systému, je odpovģdnż za provįdģnķ aktualizacķ, pųidįvįnķ u¾ivatelł a také\n"
-"za celkovou konfiguraci 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 zkontroluje, zda nenķ pųķli¹ jednoduché. Jak vidķte, "
-"je\n"
-"mo¾né mķt śčet bez hesla, ale velmi dłraznģ doporučujeme nģjaké heslo "
-"zadat,\n"
-"z jednoho dłvodu. Nemyslete si, ¾e pokud spustķte GNU/Linux, ¾e nemł¾ete\n"
-"udģlat u¾ ¾įdnou chybu. U¾ivatel root mł¾e nenįvratnģ po¹kodit celż systém,\n"
-"vymazat potųebné soubory, atd.\n"
-"\n"
-"Zvolené heslo by se mģlo sklįdat ze znakł a čķslic a melo by bżt minimįlnģ "
-"8\n"
-"znakł dlouhé. Také nenķ dobré si ho kamkoliv poznamenįvat.\n"
-"\n"
-"Nevolte heslo pųķli¹ dlouhé nebo komplikované, bude nutné si jej pamatovat.\n"
-"\n"
-"Heslo se zadįvį dvakrįt pro ovģųenķ toho, zda nedo¹lo k pųeklepu pųi prvnķm\n"
-"pokusu. Tak je mo¾né heslo opravit a zadat dvakrįt stejné.\n"
-"\n"
-"V expertnķm re¾imu budete dotįzįni na to, zda se mį pou¾ķt autentikačnķ\n"
-"server, jako je NIS nebo LDAP.\n"
-"\n"
-"Pokud se ve va¹ķ sķti pou¾ķvį protokol LDAP (nebo NIS) pro ovģųovįnķ\n"
-"u¾ivatelł, vyberte \"LDAP\" (nebo \"NIS\"). Pokud o tom nic nevķte,\n"
-"zeptejte se administrįtora sķtģ.\n"
-"\n"
-"Pokud nenķ počķtač pųipojen do ¾įdné administrované sķtģ, zvolte\n"
-"\"Lokįlnķ soubory\" pro autentikaci."
-
-#: ../../help.pm_.c:663
-msgid ""
-"LILO and grub are GNU/Linux bootloaders. This stage, normally, is totally\n"
-"automated. In fact, DrakX analyzes the disk boot sector and acts\n"
-"accordingly, depending on what it finds here:\n"
-"\n"
-" * if a Windows boot sector is found, it will replace it with a grub/LILO\n"
-"boot sector. Hence, you will be able to load either GNU/Linux or another\n"
-"OS;\n"
-"\n"
-" * if a grub or LILO boot sector is found, it will replace it with a new\n"
-"one.\n"
-"\n"
-"If in doubt, DrakX will display a dialog with various options.\n"
-"\n"
-" * \"Bootloader to use\": you have three choices:\n"
-"\n"
-" * \"GRUB\": if you prefer grub (text menu).\n"
-"\n"
-" * \"LILO with graphical menu\": if you prefer LILO with its graphical\n"
-"interface.\n"
-"\n"
-" * \"LILO with text menu\": if you prefer LILO with its text menu "
-"interface.\n"
-"\n"
-" * \"Boot device\": in most cases, you will not change the default\n"
-"(\"/dev/hda\"), but if you prefer, the bootloader can be installed on the\n"
-"second hard drive (\"/dev/hdb\"), or even on a floppy disk (\"/dev/fd0\");\n"
-"\n"
-" * \"Delay before booting the default image\": when rebooting the computer,\n"
-"this is the delay granted to the user to choose in the bootloader menu,\n"
-"another boot entry than the default one.\n"
-"\n"
-"!! Beware that if you choose not to install a bootloader (by selecting\n"
-"\"Cancel\" here), you must ensure that you have a way to boot your Mandrake\n"
-"Linux system! Also, be sure you know what you do before changing any of the\n"
-"options. !!\n"
-"\n"
-"Clicking the \"Advanced\" button in this dialog will offer many advanced\n"
-"options, which are reserved to the expert user.\n"
-"\n"
-"After you have configured the general bootloader parameters, the list of\n"
-"boot options which will be available at boot time will be displayed.\n"
-"\n"
-"If there is another operating system installed on your machine, it will\n"
-"automatically be added to the boot menu. Here, you can choose to fine-tune\n"
-"the existing options. Select an entry and click \"Modify\" to modify or\n"
-"remove it; \"Add\" creates a new entry; and \"Done\" goes on to the next\n"
-"installation step."
-msgstr ""
-"LILO a grub jsou zavadģče systému. Tato čįst je normįlnģ plnģ automatickį.\n"
-"DrakX analyzuje boot sektor a zachovį se podle toho, co nalezne:\n"
-"\n"
-" * pokud nalezne boot sektor Windows, pųepķ¹e ho sektorem pro LILO/grub aby\n"
-"bylo mo¾né spou¹tģt jak Windows tak i Linux;\n"
-"\n"
-" * pokud nalezne boot sektor pro LILO nebo grub, tak jej pųepķ¹e.\n"
-"\n"
-"Pokud jsou nģjaké pochybnosti, je zobrazen dialog s vżbģrem mo¾nostķ.\n"
-"\n"
-" * \"Jakż spou¹tģč pou¾ķt:\" je mo¾né si vybrat:\n"
-"\n"
-" * \"GRUB\": pokud preferujete textovou verzi zavadģče Grub.\n"
-"\n"
-" * \"LILO s grafickou nabķdkou\": pokud preferujete LILO s grafickżm\n"
-"rozhranķm.\n"
-"\n"
-" * \"LILO s textovou nabķdkou\": pokud preferujete textové rozhranķ.\n"
-"\n"
-" * \"Spou¹tģcķ zaųķzenķ\": ve vģt¹inģ pųķpadł nenķ nutné mģnit vżchozķ\n"
-"nastavenķ (\"/dev/hda\"), ale lze nainstalovat zavadģč na druhż disk\n"
-"(\"/dev/hdb\") nebo dokonce na disketu (\"/dev/fd0\").\n"
-"\n"
-" * \"Prodleva pųes spu¹tģnķm\": pokud zapnete počķtač, je tķmto časem\n"
-"umo¾nģno u¾ivateli vybrat si jinż systém z nabķdky ne¾ bude zaveden vżchozķ\n"
-"systém.\n"
-"\n"
-"!! Vyvarujte se pokusł o to nenainstalovat zavadģč (vybrįnķm volby \"Zru¹it"
-"\"),\n"
-"proto¾e by mģl existovat zpłsob, jak spustit Mandrake Linux!\n"
-"Také si dobųe rozmyslete, jaké zmģny zde provįdķte !!\n"
-"\n"
-"Kliknutķm na tlačķtko \"Roz¹ķųené\" se dialog roz¹ķųķ o dal¹ķ mo¾nosti,\n"
-"vyhrazené pro znalé u¾ivatele.\n"
-"\n"
-"Mandrake Linux nainstaluje svłj vlastnķ zavadģč, kterż dovoluje spou¹tģt\n"
-"vlastnķ systém stejnģ jako dal¹ķ operačnķ systémy.\n"
-"\n"
-"Pokud mįte jinż operačnķ systém ji¾ na počķtači, automaticky ho zaųadķ do\n"
-"nabķdky pro spou¹tģnķ. Zde je mo¾né dįle doladit volby, které se pųedįvajķ "
-"tķm,\n"
-"¾e na danou nabķdkou dvakrįt poklepete, lze také pųidat dal¹ķ nabķdku\n"
-"či danou nabķdku odebrat. K dal¹ķmu kroku se dostanete kliknutķm na \"Hotovo"
-"\"."
-
-#: ../../help.pm_.c:711
-msgid ""
-"LILO (the LInux LOader) and grub are bootloaders: they are able to boot\n"
-"either GNU/Linux or any other operating system present on your computer.\n"
-"Normally, these other operating systems are correctly detected and\n"
-"installed. If this is not the case, you can add an entry by hand in this\n"
-"screen. Be careful to choose the correct parameters.\n"
-"\n"
-"You may also not want to give access to these other operating systems to\n"
-"anyone. In which case, you can delete the corresponding entries. But then,\n"
-"you will need a boot disk in order to boot those other operating systems!"
-msgstr ""
-"LILO (the LInux LOader) a grub jsou zavadģče systému, které mohou spustit\n"
-"buļ GNU/Linux nebo jinż operačnķ systém nainstalovanż na počķtači.\n"
-"Ve vģt¹inģ pųķpadł jsou tyto systému sprįvnģ detekovįny. Pokud se tak\n"
-"nestane, mįte mo¾nost je ručnģ pųidat v této obrazovce. Vģnujte opatrnost\n"
-"parametrłm, které zadįvįte.\n"
-"\n"
-"Pokud nechcete umo¾nit pųķstup k tģmto operačnķm systémłm komukoliv, mł¾ete\n"
-"je z nabķdky odstranit. Ale v tom pųķpadģ musķte mķt spou¹tģcķ disketu, ze\n"
-"které je mo¾né tento operačnķ systém spustit!"
-
-#: ../../help.pm_.c:722
-msgid ""
-"You must indicate where you wish to place the information required to boot\n"
-"to GNU/Linux.\n"
-"\n"
-"Unless you know exactly what you are doing, choose \"First sector of drive\n"
-"(MBR)\"."
-msgstr ""
-"Zde se musķte rozhodnout, kam umķstit informace potųebné pro spu¹tģnķ "
-"systému\n"
-"GNU/Linux.\n"
-"\n"
-"Pokud pųesnģ nevķte co zadat, ponechte \"Prvnķ sektor na disku (MBR)\"."
-
-#: ../../help.pm_.c:729
-msgid ""
-"Here, we select a printing system for your computer. Other OSs may offer\n"
-"you one, but Mandrake Linux offers three.\n"
-"\n"
-" * \"pdq\" which means ``print, don't queue'', is the choice if you have a\n"
-"direct connection to your printer and you want to be able to panic out of\n"
-"printer jams, and you do not have networked printers. It will handle only\n"
-"very simple network cases and is somewhat slow for networks. Pick \"pdq\"\n"
-"if this is your maiden voyage to GNU/Linux. You can change your choices\n"
-"after installation by running PrinterDrake from the Mandrake Control Center\n"
-"and clicking the expert button.\n"
-"\n"
-" * \"CUPS\"``Common Unix Printing System'', is excellent at printing to "
-"your\n"
-"local printer and also halfway-around the planet. It is simple and can act\n"
-"as a server or a client for the ancient \"lpd\" printing system. Hence, it\n"
-"is compatible with the systems that went before. It can do many tricks, but\n"
-"the basic setup is almost as easy as \"pdq\". If you need this to emulate\n"
-"an \"lpd\" server, you must turn on the \"cups-lpd\" daemon. It has\n"
-"graphical front-ends for printing or choosing printer options.\n"
-"\n"
-" * \"lprNG\"``line printer daemon New Generation''. This system can do\n"
-"approximately the same things the others can do, but it will print to\n"
-"printers mounted on a Novell Network, because it supports the IPX protocol,\n"
-"and it can print directly to shell commands. If you have need of Novell or\n"
-"printing to commands without using a separate pipe construct, use lprNG.\n"
-"Otherwise, CUPS is preferable as it is simpler and better at working over\n"
-"networks."
-msgstr ""
-"Zde si mł¾ete vybrat tiskovż systém, kterż budete pou¾ķvat. Jiné OS "
-"nabķzejķ\n"
-"jeden, Mandrake nabķzķ tųi.\n"
-"\n"
-" * \"pdq\" - co¾ znamenį 'print, don't queue' a je vhodnż tehdy, pokud "
-"nemįte\n"
-"¾įdné sķ»ové tiskįrny. Zvlįdį pouze nģkolik mo¾nostķ a tisk na nģj ze sķtģ\n"
-"je velmi pomalż. Tuto volbu lze po instalaci zmģnit spu¹tģnķm nįstroje "
-"PrinterDrake\n"
-"z ųķdķcķho centra Mandrake, pokud kliknete na tlačķtko Expert.\n"
-"\n"
-" * \"CUPS\"'Common Unix Printing System' je vynikajķcķ v tisku na lokįlnķ\n"
-"tiskįrny. Je jednoduchż a mł¾e fungovat jako klient i server pro klienty z "
-"\"lpd\"\n"
-"systému, tak¾e je s nimi kompatibilnķ. Je mo¾né nastavit spoustu voleb,\n"
-"ale zįkladnķ nastavenķ je velmi jednoduché. Pokud potųebujete emulovat\n"
-"\"lpd\" server, stači spustit démona \"cups-lpd\". Mį také grafické "
-"prostųedķ\n"
-"pro tisk a nastavenķ tiskįrny.\n"
-"\n"
-" * \"lprNG\" - 'line printer daemon New Generation'. Tento systém dokį¾e to\n"
-"co ostatnķ, ale umķ tisknout na tiskįrny pųipojené k Novell Netware, "
-"proto¾e\n"
-"podporuje IPX protokol a také umķ zpracovat pųķmo tiskové pųķkazy. Pokud\n"
-"potųebujete tisk na tiskįrnįch ze sķtģ Novell nebo tiskovż systém bez\n"
-"zvlį¹tnķ tiskové fronty, vyberte si lprNG.\n"
-"Jinak je preferovįn CUPS, proto¾e je jednodu¹¹ķ a lépe pracuje v sķtķch."
-
-#: ../../help.pm_.c:757
-msgid ""
-"DrakX now detects any IDE device present in your computer. It will also\n"
-"scan for one or more PCI SCSI card(s) on your system. If a SCSI card is\n"
-"found, DrakX will automatically install the appropriate driver.\n"
-"\n"
-"Because hardware detection does not always detect a piece of hardware,\n"
-"DrakX will ask you to confirm if a PCI SCSI card is present. Click \"Yes\"\n"
-"if you know that there is a SCSI card installed in your machine. You will\n"
-"be presented a list of SCSI cards to choose from. Click \"No\" if you have\n"
-"no SCSI hardware. If you are unsure, you can check the list of hardware\n"
-"detected in your machine by selecting \"See hardware info\" and clicking\n"
-"\"OK\". Examine the list of hardware and then click on the \"OK\" button to\n"
-"return to the SCSI interface question.\n"
-"\n"
-"If you have to manually specify your adapter, DrakX will ask if you want to\n"
-"specify options for it. You should allow DrakX to probe the hardware for\n"
-"the card-specific options which the hardware needs to initialize. This\n"
-"usually works well.\n"
-"\n"
-"If DrakX is not able to probe for the options which need to be passed, you\n"
-"will need to provide options to the driver manually. Please review the\n"
-"``User Guide'' (chapter 3, in the ``Collecting Information on Your\n"
-"Hardware'' section) for hints on retrieving the parameters required from\n"
-"hardware documentation, from the manufacturer's web site (if you have\n"
-"Internet access) or from MicrosoftWindows (if you used this hardware with\n"
-"Windows on your system)."
-msgstr ""
-"DrakX se nejdųķve pokusķ najķt v¹echny pevné disky v počķtači. Také se "
-"pokusķ\n"
-"najķt PCI SCSI adaptér(y). Pokud nģjakż(é) najde, automaticky nainstaluje\n"
-"sprįvnż ovladač.\n"
-"\n"
-"Pokud ¾įdnż nanajde, budete dotįzįni, zda vłbec mįte nģjakż SCSI adaptér.\n"
-"Odpovģzte \"Ano\" a vyberte si se seznamu adaptérł nebo odpovģzte \"Ne\","
-"jestli¾e ¾įdnż adaptér nemįte.\n"
-"Pokud pųesnģ nevķte jakż mįte, mł¾ete to zjistit kliknutķm na tlačķtko\n"
-"\"Zobrazit informace o hardware\".\n"
-"\n"
-"Pokud si vyberete ovladač, DrakX se zeptį, zda pro nģj chcete zadat nģjaké\n"
-"informace. DrakX se pokusķ inicializovat hardware s volbami, které jsou "
-"potųeba.\n"
-"Vģt¹inou to funguje dobųe.\n"
-"\n"
-"Pokud to nebude fungovat, budete muset zadat dal¹ķ informace pro ovladač.\n"
-"Pro dal¹ķ nįpovģdu se podķvejte do instalačnķ pųķručky (kapitola 3 "
-"\"Zķskįnķ\n"
-"informacķ o hardware\"), kde je popsįno, jak zķskat tyto informace z "
-"Windows\n"
-"(pokud je mįte na počķtači), z dokumentace k hardware, nebo z internetové\n"
-"strįnky vżrobce (pokud mįte pųķstup k internetu."
-
-#: ../../help.pm_.c:784
-msgid ""
-"You can add additional entries for yaboot, either for other operating\n"
-"systems, alternate kernels, or for an emergency boot image.\n"
-"\n"
-"For other OSs, the entry consists only of a label and the \"root\"\n"
-"partition.\n"
-"\n"
-"For Linux, there are a few possible options:\n"
-"\n"
-" * Label: this is simply the name you will have to type at the yaboot "
-"prompt\n"
-"to select this boot option;\n"
-"\n"
-" * Image: this would be the name of the kernel to boot. Typically, vmlinux\n"
-"or a variation of vmlinux with an extension;\n"
-"\n"
-" * Root: the \"root\" device or ``/'' for your Linux installation;\n"
-"\n"
-" * Append: on Apple hardware, the kernel append option is used quite often\n"
-"to assist in initializing video hardware, or to enable keyboard mouse\n"
-"button emulation for the often lacking 2nd and 3rd mouse buttons on a stock\n"
-"Apple mouse. The following are some examples:\n"
-"\n"
-" video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111 "
-"hda=autotune\n"
-"\n"
-" video=atyfb:vmode:12,cmode:24 adb_buttons=103,111\n"
-"\n"
-" * Initrd: this option can be used either to load initial modules, before\n"
-"the boot device is available, or to load a ramdisk image for an emergency\n"
-"boot situation;\n"
-"\n"
-" * Initrd-size: the default ramdisk size is generally 4,096 bytes. If you\n"
-"need to allocate a large ramdisk, this option can be used;\n"
-"\n"
-" * Read-write: normally the \"root\" partition is initially brought up in\n"
-"read-only, to allow a file system check before the system becomes ``live''.\n"
-"Here, you can override this option;\n"
-"\n"
-" * NoVideo: should the Apple video hardware prove to be exceptionally\n"
-"problematic, you can select this option to boot in ``novideo'' mode, with\n"
-"native frame buffer support;\n"
-"\n"
-" * Default: selects this entry as being the default Linux selection,\n"
-"selectable by just pressing ENTER at the yaboot prompt. This entry will\n"
-"also be highlighted with a ``*'', if you press [Tab] to see the boot\n"
-"selections."
-msgstr ""
-"Pro yaboot, pro dal¹ķ operačnķ systémy, pro alternativnķ jįdra nebo pro\n"
-"zįchrannż disk lze zde zadat dal¹ķ parametry.\n"
-"\n"
-"Pro jiné OS je mo¾né zadat pouze nįzev a hlavnķ oddķl.\n"
-"\n"
-"Pro Linux je nģkolik dal¹ķch mo¾nostķ:\n"
-"\n"
-" * Jmenovka: je to jednoduché jméno, které mł¾ete napsat do pųķkazového\n"
-"ųįdku pro yaboot pro zvolenķ daného systému.\n"
-"\n"
-" * Obraz: je to jmého jįdra, ze kterého se spustķ systém. Typicky je to "
-"vmlinux\n"
-"či obdoba slova vmlinux s pųķponami.\n"
-"\n"
-" * Root: koųenové zeųķzenķ \"/\" pųi instalaci Linuxu.\n"
-"\n"
-" * Pųidat volby: na počķtačķch Apple potųebuje jįdro dal¹ķ parametry, aby "
-"se\n"
-"sprįvnģ nastavil hardware pro video, či provedla emulace tlačķtek my¹i\n"
-"na klįvesnici, proto¾e my¹ u počķtače Apple nemį druhé a tųetķ tlačķtko.\n"
-"Zde jsou nģjaké pųķklady:\n"
-"\n"
-" video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111 "
-"hda=autotune\n"
-"\n"
-" video=atyfb:vmode:12,cmode:24 adb_buttons=103,111\n"
-"\n"
-" * Initrd: tato volba je určena moduly, které se musķ nahrįt do pamģti "
-"je¹tģ\n"
-"dųķve, ne¾ je pųķstupnż spou¹tģcķ oddķl, či v pųķpadģ opravy systému.\n"
-"\n"
-" * Velikost initrd: vżchozķ velikost ramdisku je 4,096 bytł. Pokud "
-"potųebujete\n"
-"vģt¹ķ velikost, zadejte sem potųebnou hodnotu.\n"
-"\n"
-" * Read-write: be¾nģ je \"root\" oddķl pųipojen nejdųķve v re¾imu pouze pro\n"
-"čtenķ, aby se provedlo otestovįnķ systému pųed tķm, ne¾ se pou¾ije pro bģh.\n"
-"Zde je mo¾né toto chovįnķ zmģnit.\n"
-"\n"
-" * Bez grafiky: grafické zaųķzenķ na počķtačķch Apple je nģkdy "
-"problematické\n"
-"a tak je mo¾né zadat tuto volbu a zvolit nativnķ podporu.\n"
-"\n"
-" * Vżchozķ: zvolķ tuto polo¾ku jako vżchozķ pro vżbģr z nabķdky, kdy stačķ\n"
-"pouze stisknout ENTER a spustķ se. Tato polo¾ka je označena \"*\" a v¹echny\n"
-"vżbģry se zobrazķ po stisknutķ tlačķtka [Tab]."
-
-#: ../../help.pm_.c:830
-msgid ""
-"Yaboot is a bootloader for NewWorld MacIntosh hardware. It is able to boot\n"
-"either GNU/Linux, MacOS or MacOSX if present on your computer. Normally,\n"
-"these other operating systems are correctly detected and installed. If this\n"
-"is not the case, you can add an entry by hand in this screen. Be careful to\n"
-"choose the correct parameters.\n"
-"\n"
-"Yaboot's main options are:\n"
-"\n"
-" * Init Message: a simple text message displayed before the boot prompt;\n"
-"\n"
-" * Boot Device: indicates where you want to place the information required\n"
-"to boot to GNU/Linux. Generally, you set up a bootstrap partition earlier\n"
-"to hold this information;\n"
-"\n"
-" * Open Firmware Delay: unlike LILO, there are two delays available with\n"
-"yaboot. The first delay is measured in seconds and at this point, you can\n"
-"choose between CD, OF boot, MacOS or Linux;\n"
-"\n"
-" * Kernel Boot Timeout: this timeout is similar to the LILO boot delay.\n"
-"After selecting Linux, you will have this delay in 0.1 second before your\n"
-"default kernel description is selected;\n"
-"\n"
-" * Enable CD Boot?: checking this option allows you to choose ``C'' for CD\n"
-"at the first boot prompt;\n"
-"\n"
-" * Enable OF Boot?: checking this option allows you to choose ``N'' for "
-"Open\n"
-"Firmware at the first boot prompt;\n"
-"\n"
-" * Default OS: you can select which OS will boot by default when the Open\n"
-"Firmware Delay expires."
-msgstr ""
-"Yaboot je zavadģč pro počķtače MacIntosh. Umo¾ņuje spou¹tģt jak GNU/Linux, "
-"MacOS tak i MacOSX, pokud jsou na počķtači nainstalovįny. Ve vģt¹inģ\n"
-"pųķpadł jsou tyto operačnķ systémy sprįvnģ detekovįny. Pokud nejsou, mł¾ete\n"
-"zde na této obrazovce pųidat zįznamy ručnģ. Dejte si ale pozor na sprįvnou\n"
-"volbu parametrł.\n"
-"\n"
-"Yaboot mį tyto hlavnķ volby:\n"
-"\n"
-" * Śvodnķ hlį¹ka: jednoduchį textovį zprįva, kterį je zobrazena pųed "
-"vżzvou.\n"
-"\n"
-" * Spou¹tģcķ zaųķzenķ: udįvį mķsto, kde jsou informace potųebné pro "
-"spu¹tģnķ\n"
-"GNU/Linuxu. Obyčejnģ je to bootstrap oddķl, kterż byl vytvoųen ji¾ pųedtķm.\n"
-"\n"
-" * Prodleva pro Firmware: narozdķl od zavadģče LILO jsou zde dvģ prodlevy.\n"
-"Prvnķ prodleva v sekundįch umo¾ņuje zvolit mezi spu¹tģnķm CD, OF boot,\n"
-"MacOS nebo Linuxu.\n"
-"\n"
-" * Prodleva pro jįdro: tato prodleva je podobnį prodlevģ pro LILO.\n"
-"Udįvį v nįsobcķch 0,1 vteųiny jak dlouho se čekį, ne¾ se zavede \n"
-"vżchozķ jįdro.\n"
-"\n"
-" * Povolit spu¹tģnķ z CD?: tato volba dovoluje pou¾ķt \"C\" pro spu¹tģnķ "
-"CD.\n"
-"\n"
-" * Povolit OF Boot?: tato volba dovoluje pou¾ķt \"N\" pro spu¹tģnķ Open "
-"Firm.\n"
-"\n"
-" * Vżchozķ OS: vyberte vżchozķ OS, kterż se spustķ po uplynutķ prodlevy."
-
-#: ../../help.pm_.c:862
-msgid ""
-"Here are presented various parameters concerning your machine. Depending on\n"
-"your installed hardware, you may or not, see the following entries:\n"
-"\n"
-" * \"Mouse\": check the current mouse configuration and click on the button\n"
-"to change it if necessary;\n"
-"\n"
-" * \"Keyboard\": check the current keyboard map configuration and click on\n"
-"the button to change that if necessary;\n"
-"\n"
-" * \"Timezone\": DrakX, by default, guesses your time zone from the "
-"language\n"
-"you have chosen. But here again, as for the choice of a keyboard, you may\n"
-"not be in the country for which the chosen language should correspond.\n"
-"Hence, you may need to click on the \"Timezone\" button in order to\n"
-"configure the clock according to the time zone you are in;\n"
-"\n"
-" * \"Printer\": clicking on the \"No Printer\" button will open the printer\n"
-"configuration wizard;\n"
-"\n"
-" * \"Sound card\": if a sound card is detected on your system, it is\n"
-"displayed here. No modification possible at installation time;\n"
-"\n"
-" * \"TV card\": if a TV card is detected on your system, it is displayed\n"
-"here. No modification possible at installation time;\n"
-"\n"
-" * \"ISDN card\": if an ISDN card is detected on your system, it is\n"
-"displayed here. You can click on the button to change the parameters\n"
-"associated with it."
-msgstr ""
-"Zde jsou shromį¾dģny rłzné informace, které se vztahujķ k tomuto počķtači.\n"
-"V zįvislosti na tom, zda je či nenķ pųķtomen danż hardware, mł¾ete ale\n"
-"nemusķte, vidģt tyto polo¾ky: \n"
-"\n"
-" * \"My¹\": pokud je zji¹tģna my¹, mł¾ete zde zmģnit jejķ nastavenķ.\n"
-"\n"
-" * \"Klįvesnice\": kliknutķm na tlačķtko lze zmģnit klįvesovou mapu.\n"
-"\n"
-" * \"Časové pįsmo\": instalačnķ program se pokusķ odhadnout časové pįsmo na\n"
-"zįkladģ vybraného jazyka. To ale nemusķ souhlasit, mł¾ete ¾ķt v jiné zemi\n"
-"a tak je zde umo¾nģno zmģnit časovou zónu, ve které se nynķ nachįzķte.\n"
-"\n"
-" * \"Tiskįrna\": Kliknutķm na tlačķtko \"Bez tiskįrny\" se spustķ prłvodce\n"
-"konfiguracķ tiskįrny.\n"
-"\n"
-" * \"Zvukovį karta\": pokud byla pųi instalaci detekovįna zvukovį karta, je\n"
-"zde zobrazena. Pųi instalaci nenķ mo¾né nic mģnit.\n"
-"\n"
-" * \"TV karta\": pokud byla detekovįna televiznķ karta, je zde zobrazena.\n"
-"Pųi instalaci nenķ mo¾né nic mģnit.\n"
-"\n"
-" * \"ISDN karta\": pokud byla detekovįna ISDN karta, je zde zobrazena.\n"
-"Kliknutķm na tlačķtko mł¾ete mģnit parametry pro tuto kartu."
-
-#: ../../help.pm_.c:891
-msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandrake Linux partition. Be careful, all data present on it will be lost\n"
-"and will not be recoverable!"
-msgstr ""
-"Vyberte disk, kterż chcete smazat pro instalaci Mandrake Linux.\n"
-"Pamatujte na to, ¾e v¹echna data budou ztracena a nelze jeji¾ obnovit!"
-
-#: ../../help.pm_.c:896
-msgid ""
-"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"
-"any Windows data.\n"
-"\n"
-"Click on \"Cancel\" to cancel this operation without losing any data and\n"
-"partitions present on this hard drive."
-msgstr ""
-"Kliknģte na \"OK\", pokud chcete smazat v¹echna data a oddķly na tomto\n"
-"pevném disku. Buļte opatrnķ, po odkliknutķ nelze obnovit ¾įdnį dųķvģj¹ķ "
-"data\n"
-"ani oddķly a to i pro Windows.\n"
-"\n"
-"Kliknutķm na \"Zru¹it\" zru¹ķte tuto operaci bez ztrįty dat a oddķlł na "
-"disku."
-
-#: ../../install2.pm_.c:113
-#, c-format
-msgid ""
-"Can't 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 ""
-"Nelze načķst moduly pro jįdro odpovķdajķcķ instalovanému jįdru (chybķ "
-"soubor\n"
-"%s), co¾ obecnģ znamenį, ¾e spou¹tģcķ disketa nemį jįdro stejné jako mį "
-"instalačnķ médium (vytvoųte prosķm novou spou¹tģcķ disketu)"
-
-#: ../../install2.pm_.c:169
-#, c-format
-msgid "You must also format %s"
-msgstr "Musķte také naformįtovat %s"
-
-#: ../../install_any.pm_.c:411
-#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They don't have any known security\n"
-"issues, but some new could be found. In that case, you must make sure to "
-"upgrade\n"
-"as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
-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"
-
-#: ../../install_any.pm_.c:447
-msgid "Can't use broadcast with no NIS domain"
-msgstr "Nelze pou¾ķt v¹esmģrové vysķlįnķ bez NIS domény"
-
-#: ../../install_any.pm_.c:793
-#, c-format
-msgid "Insert a FAT formatted floppy in drive %s"
-msgstr "Vlo¾te naformįtovanou disketu do %s"
-
-#: ../../install_any.pm_.c:797
-msgid "This floppy is not FAT formatted"
-msgstr "Tato disketa nenķ formįtovįna"
-
-#: ../../install_any.pm_.c:809
-msgid ""
-"To use this saved packages selection, boot installation with ``linux "
-"defcfg=floppy''"
-msgstr ""
-"Pokud chcete pou¾ķt ulo¾enż vżbģr balķčkł, spus»te instalaci takto: 'linux "
-"defcfg=floppy'"
-
-#: ../../install_any.pm_.c:831 ../../partition_table.pm_.c:763
-#, c-format
-msgid "Error reading file %s"
-msgstr "Chyba pųi čtenķ souboru %s"
-
-#: ../../install_interactive.pm_.c:23
-#, 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ģkterį čįst va¹eho hardware potųebuje 'speciįlnķ' ovladače, aby mohla "
-"pracovat.\n"
-"Dal¹ķ informace mł¾ete nalézt na: %s"
-
-#: ../../install_interactive.pm_.c:58
-msgid ""
-"You must have a root partition.\n"
-"For this, create a partition (or click on an existing one).\n"
-"Then choose action ``Mount point'' and set it to `/'"
-msgstr ""
-"Musķte mķt koųenovż oddķl.\n"
-"K jeho vytvoųenķ musķte zvolit jeden existujķcķ oddķl\n"
-"(nebo vytvoųit novż), zvolit 'Pųķpojnż bod'\n"
-"a nastavit ho na '/'"
-
-#: ../../install_interactive.pm_.c:63
-msgid "You must have a swap partition"
-msgstr "Musķte mķt odklįdacķ oddķl"
-
-#: ../../install_interactive.pm_.c:64
-msgid ""
-"You don't have a swap partition\n"
-"\n"
-"Continue anyway?"
-msgstr ""
-"Nemįte odklįdacķ oddķl\n"
-"\n"
-"Chcete pųesto pokračovat?"
-
-#: ../../install_interactive.pm_.c:67 ../../install_steps.pm_.c:163
-msgid "You must have a FAT partition mounted in /boot/efi"
-msgstr "Musķte mķt FAT oddķl pųipojenż na /boot/efi"
-
-#: ../../install_interactive.pm_.c:90
-msgid "Use free space"
-msgstr "Pou¾ķt volné mķsto"
-
-#: ../../install_interactive.pm_.c:92
-msgid "Not enough free space to allocate new partitions"
-msgstr "Nenķ dostatek mķsta pro vytvoųenķ nového diskového oddķlu"
-
-#: ../../install_interactive.pm_.c:100
-msgid "Use existing partition"
-msgstr "Pou¾ķt existujķcķ oddķl"
-
-#: ../../install_interactive.pm_.c:102
-msgid "There is no existing partition to use"
-msgstr "Nenķ zde ¾įdnż existujķcķ oddķl k pou¾itķ"
-
-#: ../../install_interactive.pm_.c:109
-msgid "Use the Windows partition for loopback"
-msgstr "Pou¾ķt Windows oddķl jako loopback"
-
-#: ../../install_interactive.pm_.c:112
-msgid "Which partition do you want to use for Linux4Win?"
-msgstr "Kterż diskovż oddķl chcete pou¾ķt pro Linux4Win?"
-
-#: ../../install_interactive.pm_.c:114
-msgid "Choose the sizes"
-msgstr "Zvolte velikosti"
-
-#: ../../install_interactive.pm_.c:115
-msgid "Root partition size in MB: "
-msgstr "Velikost koųenového oddķlu v MB:"
-
-#: ../../install_interactive.pm_.c:116
-msgid "Swap partition size in MB: "
-msgstr "Velikost odklįdacķho oddķlu v MB: "
-
-#: ../../install_interactive.pm_.c:125
-msgid "Use the free space on the Windows partition"
-msgstr "Pou¾ķt volné mķsto na Windows oddķlu"
-
-#: ../../install_interactive.pm_.c:128
-msgid "Which partition do you want to resize?"
-msgstr "Na kterém oddķlu chcete mģnit velikost?"
-
-#: ../../install_interactive.pm_.c:130
-msgid "Computing Windows filesystem bounds"
-msgstr "Počķtįm hranice souborového systému s Windows"
-
-#: ../../install_interactive.pm_.c:133
-#, c-format
-msgid ""
-"The FAT resizer is unable to handle your partition, \n"
-"the following error occured: %s"
-msgstr ""
-"Zmģnu velikost FAT nenķ mo¾né provést, \n"
-"vyskytla se nįsledujķcķ chyba: %s"
-
-#: ../../install_interactive.pm_.c:136
-msgid "Your Windows partition is too fragmented, please run ``defrag'' first"
-msgstr ""
-"Vį¹ diskovż oddķl s Windows je pųķli¹ fragmentovįn, pou¾ijte nejdųķve\n"
-"program 'defrag'"
-
-#: ../../install_interactive.pm_.c:137
-msgid ""
-"WARNING!\n"
-"\n"
-"DrakX will now resize your Windows partition. Be careful:\n"
-"this operation is dangerous. If you have not already done\n"
-"so, you should first exit the installation, run scandisk\n"
-"under Windows (and optionally run defrag), then restart the\n"
-"installation. You should also backup your data.\n"
-"When sure, press Ok."
-msgstr ""
-"VAROVĮNĶ!\n"
-"\n"
-"DrakX nynķ musķ zmen¹it oddķl s Windows. Buļte opatrnķ: tato operace je\n"
-"nebezpečnį. Pokud jste tak ji¾ neučinili, mģli byste nejprve ukončit "
-"instalaci,\n"
-"spustit scandisk ve Windows (popųķpadģ i defrag) a potom instalaci znovu "
-"spustit\n"
-"Také byste si mģli data zįlohovat. A¾ si budete jistķ, ¾e chcete pokračovat\n"
-"stisknģte Ok."
-
-#: ../../install_interactive.pm_.c:147
-msgid "Which size do you want to keep for windows on"
-msgstr "Jakou velikost oddķlu chcete nechat pro Windows na"
-
-#: ../../install_interactive.pm_.c:148
-#, c-format
-msgid "partition %s"
-msgstr "diskovém oddķlu %s"
-
-#: ../../install_interactive.pm_.c:155
-#, c-format
-msgid "FAT resizing failed: %s"
-msgstr "Zmģna FAT oddķlu neuspģla: %s"
-
-#: ../../install_interactive.pm_.c:170
-msgid ""
-"There is no FAT partitions to resize or to use as loopback (or not enough "
-"space left)"
-msgstr ""
-"Nejsou zde ¾įdné FAT oddķly, které by bylo mo¾né zmģnit (nebo nenķ dostatek "
-"mķsta)"
-
-#: ../../install_interactive.pm_.c:176
-msgid "Erase entire disk"
-msgstr "Smazat celż disk"
-
-#: ../../install_interactive.pm_.c:176
-msgid "Remove Windows(TM)"
-msgstr "Odstranit Windows(TM)"
-
-#: ../../install_interactive.pm_.c:179
-msgid "You have more than one hard drive, which one do you install linux on?"
-msgstr "Mįte vķce ne¾ jeden pevnż disk, na kterż chcete instalovat Linux?"
-
-#: ../../install_interactive.pm_.c:182
-#, c-format
-msgid "ALL existing partitions and their data will be lost on drive %s"
-msgstr "V©ECHNY diskové oddķly a data na disku %s budou zru¹ena"
-
-#: ../../install_interactive.pm_.c:190
-msgid "Custom disk partitioning"
-msgstr "Vlastnķ rozdģlenķ disku"
-
-#: ../../install_interactive.pm_.c:194
-msgid "Use fdisk"
-msgstr "Pou¾ķt fdisk"
-
-#: ../../install_interactive.pm_.c:197
-#, c-format
-msgid ""
-"You can now partition %s.\n"
-"When you are done, don't forget to save using `w'"
-msgstr ""
-"Nynķ mł¾ete rozdģlit vį¹ hardisk %s.\n"
-"A¾ skončķte, nezapomeņte ulo¾it zmģny pomocķ 'w'"
-
-#: ../../install_interactive.pm_.c:226
-msgid "You don't have enough free space on your Windows partition"
-msgstr "Nemįte dostatek volného mķsta na oddķlu s Windows"
-
-#: ../../install_interactive.pm_.c:242
-msgid "I can't find any room for installing"
-msgstr "Nemł¾u najķt ¾įdné volné mķsto pro instalaci"
-
-#: ../../install_interactive.pm_.c:246
-msgid "The DrakX Partitioning wizard found the following solutions:"
-msgstr "Prłvodce DrakX na¹el nįsledujķcķ ųe¹enķ:"
-
-#: ../../install_interactive.pm_.c:251
-#, c-format
-msgid "Partitioning failed: %s"
-msgstr "Vytvįųenķ diskovżch oddķlł selhalo: %s"
-
-#: ../../install_interactive.pm_.c:261
-msgid "Bringing up the network"
-msgstr "Startuji sķ»"
-
-#: ../../install_interactive.pm_.c:266
-msgid "Bringing down the network"
-msgstr "Zastavuji sķ»"
-
-#: ../../install_steps.pm_.c:76
-msgid ""
-"An error occurred, but I don't 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."
-
-#: ../../install_steps.pm_.c:205
-#, c-format
-msgid "Duplicate mount point %s"
-msgstr "Zdvojenż pųķpojnż bod %s"
-
-#: ../../install_steps.pm_.c:388
-msgid ""
-"Some important packages didn't get installed properly.\n"
-"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl Mandrake/RPMS/*.rpm"
-"\"\n"
-msgstr ""
-"Nģkteré dłle¾ité balķčky nebyly sprįvnģ nainstalované.\n"
-"Je mo¾né, ¾e je po¹kozen CD disk nebo CD-ROM mechanika.\n"
-"Zkontrolujete to pou¾itķm pųķkazu \"rpm -qpl Mandrake/RPMS/*.rpm\"\n"
-
-#: ../../install_steps.pm_.c:458
-#, c-format
-msgid "Welcome to %s"
-msgstr "Vķtį vįs %s"
-
-#: ../../install_steps.pm_.c:513 ../../install_steps.pm_.c:755
-msgid "No floppy drive available"
-msgstr "Nenķ dostupnį ¾įdnį disketovį mechanika"
-
-#: ../../install_steps_auto_install.pm_.c:76
-#: ../../install_steps_stdio.pm_.c:22
-#, c-format
-msgid "Entering step `%s'\n"
-msgstr "Začķnįm '%s'\n"
-
-#: ../../install_steps_gtk.pm_.c:148
-msgid ""
-"Your system is low on resource. You may have some problem installing\n"
-"Mandrake Linux. 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 Mandrake 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'."
-
-#: ../../install_steps_gtk.pm_.c:159 ../../install_steps_interactive.pm_.c:224
-msgid "Install Class"
-msgstr "Typ instalace"
-
-#: ../../install_steps_gtk.pm_.c:162
-msgid "Please choose one of the following classes of installation:"
-msgstr "Prosķm zvolte jednu z nįsledujķcķch instalačnķch tųķd:"
-
-#: ../../install_steps_gtk.pm_.c:228
-#, c-format
-msgid ""
-"The total size for the groups you have selected is approximately %d MB.\n"
-msgstr "Celkovį velikost zvolenżch balķčkł je pųibli¾nģ %d MB.\n"
-
-#: ../../install_steps_gtk.pm_.c:230
-#, c-format
-msgid ""
-"If you wish to install less than this size,\n"
-"select the percentage of packages that you want to install.\n"
-"\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of 100%% will install all selected packages."
-msgstr ""
-"Pokud si pųejete instalaci na men¹ķ prostor ne¾ je tento,\n"
-"zvolte si kolik procent balķčkł se mį nainstalovat.\n"
-"\n"
-"Malż počet procent nainstaluje pouze ty nejdłle¾itģj¹ķ balķčky, 100%%\n"
-"nainstaluje v¹echny zvolené."
-
-#: ../../install_steps_gtk.pm_.c:235
-#, c-format
-msgid ""
-"You have space on your disk for only %d%% of these packages.\n"
-"\n"
-"If you wish to install less than this,\n"
-"select the percentage of packages that you want to install.\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of %d%% will install as many packages as possible."
-msgstr ""
-"Na va¹em hardisku je mķsto pouze pro %d%% tģchto balķčkł.\n"
-"\n"
-"Pokud jich chcete nainstalovat je¹tģ ménģ, zvolte jinż počet\n"
-"procent. Malż počet procent nainstaluje pouze ty nejdłle¾itģj¹ķ\n"
-"balķčky, %d%% nainstaluje maximįlnķ mo¾né mno¾stvķ balķčkł."
-
-#: ../../install_steps_gtk.pm_.c:241
-msgid "You will be able to choose them more specifically in the next step."
-msgstr "Pųesnģji si budete moci vybrat v pųķ¹tķm kroku"
-
-#: ../../install_steps_gtk.pm_.c:243
-msgid "Percentage of packages to install"
-msgstr "Procent balķčkł k instalaci"
-
-#: ../../install_steps_gtk.pm_.c:291 ../../install_steps_interactive.pm_.c:705
-msgid "Package Group Selection"
-msgstr "Vżbģr skupiny balķčkł"
-
-#: ../../install_steps_gtk.pm_.c:323 ../../install_steps_interactive.pm_.c:720
-msgid "Individual package selection"
-msgstr "Vżbģr jednotlivżch balķčkł"
-
-#: ../../install_steps_gtk.pm_.c:346 ../../install_steps_interactive.pm_.c:645
-#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Celkovį velikost: %d / %d MB"
-
-#: ../../install_steps_gtk.pm_.c:391
-msgid "Bad package"
-msgstr "©patnż balķček"
-
-#: ../../install_steps_gtk.pm_.c:392
-#, c-format
-msgid "Name: %s\n"
-msgstr "Jméno: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:393
-#, c-format
-msgid "Version: %s\n"
-msgstr "Verze: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:394
-#, c-format
-msgid "Size: %d KB\n"
-msgstr "Velikost: %d kB\n"
-
-#: ../../install_steps_gtk.pm_.c:395
-#, c-format
-msgid "Importance: %s\n"
-msgstr "Dłle¾itost: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:417
-msgid ""
-"You can't select this package as there is not enough space left to install it"
-msgstr ""
-"Nemł¾ete označit tento balķček, proto¾e pro jeho instalaci nenķ dost mķsta"
-
-#: ../../install_steps_gtk.pm_.c:422
-msgid "The following packages are going to be installed"
-msgstr "Tyto balķčky budou instalovįny"
-
-#: ../../install_steps_gtk.pm_.c:423
-msgid "The following packages are going to be removed"
-msgstr "Tyto balķčky budou odebrįny"
-
-#: ../../install_steps_gtk.pm_.c:435
-msgid "You can't select/unselect this package"
-msgstr "Nemł¾ete vybrat/nevybrat tento balķček"
-
-#: ../../install_steps_gtk.pm_.c:447
-msgid "This is a mandatory package, it can't be unselected"
-msgstr "Toto je nepostradatelnż balķček, nemł¾e bżt odstranģn"
-
-#: ../../install_steps_gtk.pm_.c:449
-msgid "You can't unselect this package. It is already installed"
-msgstr "Nemł¾ete od-označit tento balķček, proto¾e je u¾ nainstalovanż"
-
-#: ../../install_steps_gtk.pm_.c:453
-msgid ""
-"This package must be upgraded\n"
-"Are you sure you want to deselect it?"
-msgstr ""
-"Tento balķček musķ bżt obnoven\n"
-"Jste si jisti, ¾e ho nechcete zvolit?"
-
-#: ../../install_steps_gtk.pm_.c:457
-msgid "You can't unselect this package. It must be upgraded"
-msgstr "Tento balķček musķ bżt obnoven, nemł¾ete ho nezvolit"
-
-#: ../../install_steps_gtk.pm_.c:462
-msgid "Show automatically selected packages"
-msgstr "Ukįzat automaticky vybrané balķčky"
-
-#: ../../install_steps_gtk.pm_.c:463 ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Install"
-msgstr "Instalovat"
-
-#: ../../install_steps_gtk.pm_.c:466
-msgid "Load/Save on floppy"
-msgstr "Ulo¾it/Nahrįt na/z disketu/y"
-
-#: ../../install_steps_gtk.pm_.c:467
-msgid "Updating package selection"
-msgstr "Aktualizuji vżbģr balķčkł"
-
-#: ../../install_steps_gtk.pm_.c:472
-msgid "Minimal install"
-msgstr "Minimįlnķ instalace"
-
-#: ../../install_steps_gtk.pm_.c:487 ../../install_steps_interactive.pm_.c:555
-msgid "Choose the packages you want to install"
-msgstr "Vyberte si balķčky, které chcete nainstalovat"
-
-#: ../../install_steps_gtk.pm_.c:503 ../../install_steps_interactive.pm_.c:787
-msgid "Installing"
-msgstr "Instaluji"
-
-#: ../../install_steps_gtk.pm_.c:509
-msgid "Estimating"
-msgstr "Odhaduji"
-
-#: ../../install_steps_gtk.pm_.c:516
-msgid "Time remaining "
-msgstr "Zbżvajķcķ čas "
-
-#: ../../install_steps_gtk.pm_.c:528
-msgid "Please wait, preparing installation"
-msgstr "Čekejte prosķm, pųipravuji instalaci"
-
-#: ../../install_steps_gtk.pm_.c:611
-#, c-format
-msgid "%d packages"
-msgstr "%d balķčkł(y)"
-
-#: ../../install_steps_gtk.pm_.c:616
-#, c-format
-msgid "Installing package %s"
-msgstr "Instaluji balķček %s"
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-#: ../../standalone/drakautoinst_.c:203
-msgid "Accept"
-msgstr "Potvrdit"
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-msgid "Refuse"
-msgstr "Odmķtnout"
-
-#: ../../install_steps_gtk.pm_.c:658 ../../install_steps_interactive.pm_.c:812
-#, c-format
-msgid ""
-"Change your Cd-Rom!\n"
-"\n"
-"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
-"done.\n"
-"If you don't have it, press Cancel to avoid installation from this Cd-Rom."
-msgstr ""
-"Vymģņte prosķm CD!\n"
-"\n"
-"Prosķm vlo¾te CD označené \"%s\" do mechaniky a stisknģte Ok.\n"
-"\n"
-"Pokud toto CD nemįte, stisknģte Zru¹it a toto CD nebude nainstalovįno."
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_gtk.pm_.c:676
-#: ../../install_steps_interactive.pm_.c:824
-#: ../../install_steps_interactive.pm_.c:828
-msgid "Go on anyway?"
-msgstr "Pųesto pokračovat?"
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_interactive.pm_.c:824
-msgid "There was an error ordering packages:"
-msgstr "Stala se chyba pųi ųazenķ balķčkł:"
-
-#: ../../install_steps_gtk.pm_.c:676 ../../install_steps_interactive.pm_.c:828
-msgid "There was an error installing packages:"
-msgstr "Stala se chyba pųi instalaci balķčkł:"
-
-#: ../../install_steps_interactive.pm_.c:10
-msgid ""
-"\n"
-"Warning\n"
-"\n"
-"Please read carefully the terms below. If you disagree with any\n"
-"portion, you are not allowed to install the next CD media. Press 'Refuse' \n"
-"to continue the installation without using these media.\n"
-"\n"
-"\n"
-"Some components contained in the next CD media are not governed\n"
-"by the GPL License or similar agreements. Each such component is then\n"
-"governed by the terms and conditions of its own specific license. \n"
-"Please read carefully and comply with such specific licenses before \n"
-"you use or redistribute the said components. \n"
-"Such licenses will in general prevent the transfer, duplication \n"
-"(except for backup purposes), redistribution, reverse engineering, \n"
-"de-assembly, de-compilation or modification of the component. \n"
-"Any breach of agreement will immediately terminate your rights under \n"
-"the specific license. Unless the specific license terms grant you such\n"
-"rights, you usually cannot install the programs on more than one\n"
-"system, or adapt it to be used on a network. In doubt, please contact \n"
-"directly the distributor or editor of the component. \n"
-"Transfer to third parties or copying of such components including the \n"
-"documentation is usually forbidden.\n"
-"\n"
-"\n"
-"All rights to the components of the next CD media belong to their \n"
-"respective authors and are protected by intellectual property and \n"
-"copyright laws applicable to software programs.\n"
-msgstr ""
-"\n"
-"Varovįnķ\n"
-"\n"
-"Pųečtģte si prosķm pozornģ nįsledujķcķ termķny. Pokud s nimi nesouhlasķte,\n"
-"nejste oprįvnģn pokračovat v instalaci nįsledujķcķm CD. Stisknģte\n"
-"\"Odmķtnout\" pro pokračovįnķ v instalaci bez tohoto média.\n"
-"\n"
-"\n"
-"Nģkteré programy na dal¹ķm CD médiu nejsou ¹ķųeny podle licence GPL či\n"
-"podobné. Ka¾dż z tģchto programł je ¹ķųen podle vlastnķ licence a podmķnek.\n"
-"Čtete pozornģ tyto licence a podmķnky pųed tķm, ne¾ začnete danż software\n"
-"pou¾ķvat nebo ¹ķųit.\n"
-"Nģkteré licence zakazujķ pųenį¹enķ, vytvįųenķ duplikatł (mimo zįlo¾nķ "
-"kopii),\n"
-"dal¹ķ ¹ķųenķ, dekompilaci, reverznķ engineering nebo modifikaci komponent.\n"
-"Ka¾dé poru¹enķ podmķnek okam¾itģ pųeru¹uje va¹e prįva podle dané licence.\n"
-"I kdy¾ dané licence dįvajķ nģjakį prįva, nenķ dovoleno instalovat danż\n"
-"program na vķce systémł, pųizpłsobovat ho provozu na sķti. V pųķpadģ\n"
-"pochybnostķ kontaktujte distributora nebo vżrobce daného programu.\n"
-"Pųenechįnķ prįv tųetķm osobįm nebo kopķrovįnķ čįsti komponent či\n"
-"dokumentace je také zakįzįno.\n"
-"\n"
-"\n"
-"V¹echna prįva na programy na dal¹ķm CD médiu patųķ jejķm prįvoplatnżm\n"
-"vlastnķkłm podle autorského zįkona.\n"
-
-#: ../../install_steps_interactive.pm_.c:67
-msgid "An error occurred"
-msgstr "Stala se chyba"
-
-#: ../../install_steps_interactive.pm_.c:85
-msgid "Do you really want to leave the installation?"
-msgstr "Chcete opravdu ukončit instalaci?"
-
-#: ../../install_steps_interactive.pm_.c:108
-msgid "License agreement"
-msgstr "Souhlas s licencķ"
-
-#: ../../install_steps_interactive.pm_.c:109
-msgid ""
-"Introduction\n"
-"\n"
-"The operating system and the different components available in the Mandrake "
-"Linux distribution \n"
-"shall be called the \"Software Products\" hereafter. The Software Products "
-"include, but are not \n"
-"restricted to, the set of programs, methods, rules and documentation related "
-"to the operating \n"
-"system and the different components of the Mandrake Linux distribution.\n"
-"\n"
-"\n"
-"1. License Agreement\n"
-"\n"
-"Please read carefully this document. This document is a license agreement "
-"between you and \n"
-"MandrakeSoft S.A. which applies to the Software Products.\n"
-"By installing, duplicating or using the Software Products in any manner, you "
-"explicitly \n"
-"accept and fully agree to conform to the terms and conditions of this "
-"License. \n"
-"If you disagree with any portion of the License, you are not allowed to "
-"install, duplicate or use \n"
-"the Software Products. \n"
-"Any attempt to install, duplicate or use the Software Products in a manner "
-"which does not comply \n"
-"with the terms and conditions of this License is void and will terminate "
-"your rights under this \n"
-"License. Upon termination of the License, you must immediately destroy all "
-"copies of the \n"
-"Software Products.\n"
-"\n"
-"\n"
-"2. Limited Warranty\n"
-"\n"
-"The Software Products and attached documentation are provided \"as is\", "
-"with no warranty, to the \n"
-"extent permitted by law.\n"
-"MandrakeSoft S.A. will, in no circumstances and to the extent permitted by "
-"law, be liable for any special,\n"
-"incidental, direct or indirect damages whatsoever (including without "
-"limitation damages for loss of \n"
-"business, interruption of business, financial loss, legal fees and penalties "
-"resulting from a court \n"
-"judgment, or any other consequential loss) arising out of the use or "
-"inability to use the Software \n"
-"Products, even if MandrakeSoft S.A. has been advised of the possibility or "
-"occurance of such \n"
-"damages.\n"
-"\n"
-"LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN SOME "
-"COUNTRIES\n"
-"\n"
-"To the extent permitted by law, MandrakeSoft S.A. or its distributors will, "
-"in no circumstances, be \n"
-"liable for any special, incidental, direct or indirect damages whatsoever "
-"(including without \n"
-"limitation damages for loss of business, interruption of business, financial "
-"loss, legal fees \n"
-"and penalties resulting from a court judgment, or any other consequential "
-"loss) arising out \n"
-"of the possession and use of software components or arising out of "
-"downloading software components \n"
-"from one of Mandrake Linux sites which are prohibited or restricted in some "
-"countries by local laws.\n"
-"This limited liability applies to, but is not restricted to, the strong "
-"cryptography components \n"
-"included in the Software Products.\n"
-"\n"
-"\n"
-"3. The GPL License and Related Licenses\n"
-"\n"
-"The Software Products consist of components created by different persons or "
-"entities. Most \n"
-"of these components are governed under the terms and conditions of the GNU "
-"General Public \n"
-"Licence, hereafter called \"GPL\", or of similar licenses. Most of these "
-"licenses allow you to use, \n"
-"duplicate, adapt or redistribute the components which they cover. Please "
-"read carefully the terms \n"
-"and conditions of the license agreement for each component before using any "
-"component. Any question \n"
-"on a component license should be addressed to the component author and not "
-"to MandrakeSoft.\n"
-"The programs developed by MandrakeSoft S.A. are governed by the GPL License. "
-"Documentation written \n"
-"by MandrakeSoft S.A. is governed by a specific license. Please refer to the "
-"documentation for \n"
-"further details.\n"
-"\n"
-"\n"
-"4. Intellectual Property Rights\n"
-"\n"
-"All rights to the components of the Software Products belong to their "
-"respective authors and are \n"
-"protected by intellectual property and copyright laws applicable to software "
-"programs.\n"
-"MandrakeSoft S.A. reserves its rights to modify or adapt the Software "
-"Products, as a whole or in \n"
-"parts, by all means and for all purposes.\n"
-"\"Mandrake\", \"Mandrake Linux\" and associated logos are trademarks of "
-"MandrakeSoft S.A. \n"
-"\n"
-"\n"
-"5. Governing Laws \n"
-"\n"
-"If any portion of this agreement is held void, illegal or inapplicable by a "
-"court judgment, this \n"
-"portion is excluded from this contract. You remain bound by the other "
-"applicable sections of the \n"
-"agreement.\n"
-"The terms and conditions of this License are governed by the Laws of "
-"France.\n"
-"All disputes on the terms of this license will preferably be settled out of "
-"court. As a last \n"
-"resort, the dispute will be referred to the appropriate Courts of Law of "
-"Paris - France.\n"
-"For any question on this document, please contact MandrakeSoft S.A. \n"
-msgstr ""
-"Uvod\n"
-"\n"
-"Operacni system a ruzne casti dostupne v distribuci Mandrake Linux jsou "
-"nazyvany \"Softwarove produkty\" (\"Software Products\"). Softwarové "
-"produkty zahrnuji, ale nejsou omezeny, na programy, metody pravidla a "
-"dokumentaci vztahujici se k operacnimu systemu a dalsim komponentam "
-"distribuce Mandrake Linux.\n"
-"\n"
-"\n"
-"1. License Agreement\n"
-"\n"
-"Please read carefully this document. This document is a license agreement "
-"between you and \n"
-"MandrakeSoft S.A. which applies to the Software Products.\n"
-"By installing, duplicating or using the Software Products in any manner, you "
-"explicitly \n"
-"accept and fully agree to conform to the terms and conditions of this "
-"License. \n"
-"If you disagree with any portion of the License, you are not allowed to "
-"install, duplicate or use \n"
-"the Software Products. \n"
-"Any attempt to install, duplicate or use the Software Products in a manner "
-"which does not comply \n"
-"with the terms and conditions of this License is void and will terminate "
-"your rights under this \n"
-"License. Upon termination of the License, you must immediately destroy all "
-"copies of the \n"
-"Software Products.\n"
-"\n"
-"\n"
-"2. Limited Warranty\n"
-"\n"
-"The Software Products and attached documentation are provided \"as is\", "
-"with no warranty, to the \n"
-"extent permitted by law.\n"
-"MandrakeSoft S.A. will, in no circumstances and to the extent permitted by "
-"law, be liable for any special,\n"
-"incidental, direct or indirect damages whatsoever (including without "
-"limitation damages for loss of \n"
-"business, interruption of business, financial loss, legal fees and penalties "
-"resulting from a court \n"
-"judgment, or any other consequential loss) arising out of the use or "
-"inability to use the Software \n"
-"Products, even if MandrakeSoft S.A. has been advised of the possibility or "
-"occurance of such \n"
-"damages.\n"
-"\n"
-"LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN SOME "
-"COUNTRIES\n"
-"\n"
-"To the extent permitted by law, MandrakeSoft S.A. or its distributors will, "
-"in no circumstances, be \n"
-"liable for any special, incidental, direct or indirect damages whatsoever "
-"(including without \n"
-"limitation damages for loss of business, interruption of business, financial "
-"loss, legal fees \n"
-"and penalties resulting from a court judgment, or any other consequential "
-"loss) arising out \n"
-"of the possession and use of software components or arising out of "
-"downloading software components \n"
-"from one of Mandrake Linux sites which are prohibited or restricted in some "
-"countries by local laws.\n"
-"This limited liability applies to, but is not restricted to, the strong "
-"cryptography components \n"
-"included in the Software Products.\n"
-"\n"
-"\n"
-"3. The GPL License and Related Licenses\n"
-"\n"
-"The Software Products consist of components created by different persons or "
-"entities. Most \n"
-"of these components are governed under the terms and conditions of the GNU "
-"General Public \n"
-"Licence, hereafter called \"GPL\", or of similar licenses. Most of these "
-"licenses allow you to use, \n"
-"duplicate, adapt or redistribute the components which they cover. Please "
-"read carefully the terms \n"
-"and conditions of the license agreement for each component before using any "
-"component. Any question \n"
-"on a component license should be addressed to the component author and not "
-"to MandrakeSoft.\n"
-"The programs developed by MandrakeSoft S.A. are governed by the GPL License. "
-"Documentation written \n"
-"by MandrakeSoft S.A. is governed by a specific license. Please refer to the "
-"documentation for \n"
-"further details.\n"
-"\n"
-"\n"
-"4. Intellectual Property Rights\n"
-"\n"
-"All rights to the components of the Software Products belong to their "
-"respective authors and are \n"
-"protected by intellectual property and copyright laws applicable to software "
-"programs.\n"
-"MandrakeSoft S.A. reserves its rights to modify or adapt the Software "
-"Products, as a whole or in \n"
-"parts, by all means and for all purposes.\n"
-"\"Mandrake\", \"Mandrake Linux\" and associated logos are trademarks of "
-"MandrakeSoft S.A. \n"
-"\n"
-"\n"
-"5. Governing Laws \n"
-"\n"
-"If any portion of this agreement is held void, illegal or inapplicable by a "
-"court judgment, this \n"
-"portion is excluded from this contract. You remain bound by the other "
-"applicable sections of the \n"
-"agreement.\n"
-"The terms and conditions of this License are governed by the Laws of "
-"France.\n"
-"All disputes on the terms of this license will preferably be settled out of "
-"court. As a last \n"
-"resort, the dispute will be referred to the appropriate Courts of Law of "
-"Paris - France.\n"
-"For any question on this document, please contact MandrakeSoft S.A. \n"
-
-#: ../../install_steps_interactive.pm_.c:205
-#: ../../install_steps_interactive.pm_.c:1045
-#: ../../standalone/keyboarddrake_.c:28
-msgid "Keyboard"
-msgstr "Klįvesnice"
-
-#: ../../install_steps_interactive.pm_.c:206
-msgid "Please choose your keyboard layout."
-msgstr "Vyberte si rozlo¾enķ va¹ķ klįvesnice."
-
-#: ../../install_steps_interactive.pm_.c:207
-msgid "Here is the full list of keyboards available"
-msgstr "Zde je kompletnķ seznam dostupnżch klįvesnic"
-
-#: ../../install_steps_interactive.pm_.c:224
-msgid "Which installation class do you want?"
-msgstr "Kterż typ instalace chcete?"
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Install/Update"
-msgstr "Instalace/Aktualizace"
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Is this an install or an update?"
-msgstr "Je to instalace nebo aktualizace?"
-
-#: ../../install_steps_interactive.pm_.c:235
-msgid "Recommended"
-msgstr "Doporučenį"
-
-#: ../../install_steps_interactive.pm_.c:238
-#: ../../install_steps_interactive.pm_.c:241
-msgid "Expert"
-msgstr "Expertnķ"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Upgrade"
-msgstr "Aktualizovat"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Upgrade packages only"
-msgstr "Aktualizovat pouze balķčky"
-
-#: ../../install_steps_interactive.pm_.c:266
-msgid "Please choose the type of your mouse."
-msgstr "Vyberte si typ va¹ķ my¹i."
-
-#: ../../install_steps_interactive.pm_.c:272 ../../standalone/mousedrake_.c:65
-msgid "Mouse Port"
-msgstr "Pųipojenķ my¹i"
-
-#: ../../install_steps_interactive.pm_.c:273 ../../standalone/mousedrake_.c:66
-msgid "Please choose on which serial port your mouse is connected to."
-msgstr "Ke kterému sériovému portu je pųipojena va¹e my¹?"
-
-#: ../../install_steps_interactive.pm_.c:281
-msgid "Buttons emulation"
-msgstr "Emulace tlačķtek"
-
-#: ../../install_steps_interactive.pm_.c:283
-msgid "Button 2 Emulation"
-msgstr "Emulace 2 tlačķtka"
-
-#: ../../install_steps_interactive.pm_.c:284
-msgid "Button 3 Emulation"
-msgstr "Emulace 3 tlačķtka"
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "Configuring PCMCIA cards..."
-msgstr "Nastavuji PCMCIA karty..."
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "PCMCIA"
-msgstr "PCMCIA"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "Configuring IDE"
-msgstr "Nastavuji IDE"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "IDE"
-msgstr "IDE"
-
-#: ../../install_steps_interactive.pm_.c:327
-msgid "no available partitions"
-msgstr "nejsou dostupné ¾įdné diskové oddķly"
-
-#: ../../install_steps_interactive.pm_.c:330
-msgid "Scanning partitions to find mount points"
-msgstr "Hledįm oddķly, které lze pųipojit"
-
-#: ../../install_steps_interactive.pm_.c:338
-msgid "Choose the mount points"
-msgstr "Zvolte si pųķpojné(mount) body"
-
-#: ../../install_steps_interactive.pm_.c:357
-#, c-format
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I can try to go on blanking bad partitions (ALL DATA will be lost!).\n"
-"The other solution is to disallow DrakX to modify the partition table.\n"
-"(the error is %s)\n"
-"\n"
-"Do you agree to loose all the partitions?\n"
-msgstr ""
-"Nemł¾u pųečķst va¹i tabulku oddķlł, je pro mģ pųķli¹ poru¹enį :(\n"
-"Mł¾u se pokusit pokračovat v či¹tģnķ ¹patnżch oddķlł (V©ECHNA\n"
-"DATA budou ztracena!). Jinį mo¾nost je zakįzat DrakX mģnit tabulku\n"
-"oddķlł (chyba je %s)\n"
-"\n"
-"Souhlasķte s tķm, ¾e pųķjdete o v¹echny oddķly?\n"
-
-#: ../../install_steps_interactive.pm_.c:370
-msgid ""
-"DiskDrake failed to read correctly the partition table.\n"
-"Continue at your own risk!"
-msgstr ""
-"DiskDrake neuspģl pųi čtenķ tabulky oddķlł.\n"
-"Pokračujte pouze na vlastnķ riziko!"
-
-#: ../../install_steps_interactive.pm_.c:386
-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"
-
-#: ../../install_steps_interactive.pm_.c:395
-msgid "No root partition found to perform an upgrade"
-msgstr "Nebyl nalezen koųenovż oddķl pro provedenķ aktualizace"
-
-#: ../../install_steps_interactive.pm_.c:396
-msgid "Root Partition"
-msgstr "Koųenovż oddķl"
-
-#: ../../install_steps_interactive.pm_.c:397
-msgid "What is the root partition (/) of your system?"
-msgstr "Kterż diskovż oddķl je koųenovż (/) ?"
-
-#: ../../install_steps_interactive.pm_.c:411
-msgid "You need to reboot for the partition table modifications to take place"
-msgstr "Musķte restartovat počķtač aby se projevily zmģny v tabulce oddķlł"
-
-#: ../../install_steps_interactive.pm_.c:435
-msgid "Choose the partitions you want to format"
-msgstr "Zvolte diskové oddķly které chcete naformįtovat"
-
-#: ../../install_steps_interactive.pm_.c:436
-msgid "Check bad blocks?"
-msgstr "Otestovat na vadné stopy?"
-
-#: ../../install_steps_interactive.pm_.c:462
-msgid "Formatting partitions"
-msgstr "Formįtuji oddķly"
-
-#: ../../install_steps_interactive.pm_.c:464
-#, c-format
-msgid "Creating and formatting file %s"
-msgstr "Vytvįųķm a formįtuji soubor %s"
-
-#: ../../install_steps_interactive.pm_.c:467
-msgid "Not enough swap to fulfill installation, please add some"
-msgstr "Nenķ dostatek odklįdacķho prostoru k instalaci, prosķm pųidejte nģjakż"
-
-#: ../../install_steps_interactive.pm_.c:473
-msgid "Looking for available packages"
-msgstr "Hledįm dostupné balķčky"
-
-#: ../../install_steps_interactive.pm_.c:479
-msgid "Finding packages to upgrade"
-msgstr "Vyhledįvįm balķčky pro aktualizaci"
-
-#: ../../install_steps_interactive.pm_.c:496
-#, c-format
-msgid ""
-"Your system has not enough space left for installation or upgrade (%d > %d)"
-msgstr ""
-"Na va¹em systému nenķ dostatek mķsta pro instalaci nebo aktualizaci (%d > %d)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Complete (%dMB)"
-msgstr "Kompletnķ (%dMB)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Minimum (%dMB)"
-msgstr "Minimįlnķ (%dMB)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Recommended (%dMB)"
-msgstr "Doporučenį (%dMB)"
-
-#: ../../install_steps_interactive.pm_.c:568
-msgid ""
-"Please choose load or save package selection on floppy.\n"
-"The format is the same as auto_install generated floppies."
-msgstr ""
-"Vyberte si, zda chcete ulo¾it nebo nahrįt vżbģr balķčkł na disketu.\n"
-"Formįt vżbģru je stejnż jako formįt automaticky generované diskety."
-
-#: ../../install_steps_interactive.pm_.c:571
-msgid "Load from floppy"
-msgstr "Nahrįt z diskety"
-
-#: ../../install_steps_interactive.pm_.c:573
-msgid "Loading from floppy"
-msgstr "Nahrįvįm z diskety"
-
-#: ../../install_steps_interactive.pm_.c:573
-msgid "Package selection"
-msgstr "Vżbģr balķčkł"
-
-#: ../../install_steps_interactive.pm_.c:578
-msgid "Insert a floppy containing package selection"
-msgstr "Vlo¾te disketu obsahujķcķ vżbģr balķčkł"
-
-#: ../../install_steps_interactive.pm_.c:590
-msgid "Save on floppy"
-msgstr "Ulo¾it na disketu"
-
-#: ../../install_steps_interactive.pm_.c:658
-msgid "Selected size is larger than available space"
-msgstr "Velikost vybranżch balķčkł je vģt¹ķ ne¾ mķsto na disku"
-
-#: ../../install_steps_interactive.pm_.c:671
-msgid "Type of install"
-msgstr "Typ instalace"
-
-#: ../../install_steps_interactive.pm_.c:672
-msgid ""
-"You haven't 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"
-
-#: ../../install_steps_interactive.pm_.c:675
-msgid "With X"
-msgstr "X prostųedķ"
-
-#: ../../install_steps_interactive.pm_.c:677
-msgid "With basic documentation (recommended!)"
-msgstr "Zįkladnķ dokumentace (doporučeno!)"
-
-#: ../../install_steps_interactive.pm_.c:678
-msgid "Truly minimal install (especially no urpmi)"
-msgstr "Opravdu minimįlnķ instalace (speciįlnģ bez urpmi)"
-
-#: ../../install_steps_interactive.pm_.c:762
-msgid ""
-"If you have all the CDs in the list below, click Ok.\n"
-"If you have none of those CDs, click Cancel.\n"
-"If only some CDs are missing, unselect them, then click Ok."
-msgstr ""
-"Pokud mįte v¹echna CD vypsanį nķ¾e, klepnģte na Ok.\n"
-"Pokud nemįte ¾įdné z nich, klepnģte na Zru¹it.\n"
-"Pokud Vįm chybķ pouze nģkteré z nich, odznačte je, a zvolte Ok."
-
-#: ../../install_steps_interactive.pm_.c:767
-#, c-format
-msgid "Cd-Rom labeled \"%s\""
-msgstr "CD-ROM označené \"%s\""
-
-#: ../../install_steps_interactive.pm_.c:787
-msgid "Preparing installation"
-msgstr "Pųipravuji instalaci"
-
-#: ../../install_steps_interactive.pm_.c:796
-#, c-format
-msgid ""
-"Installing package %s\n"
-"%d%%"
-msgstr ""
-"Instaluji balķček %s\n"
-"%d%%"
-
-#: ../../install_steps_interactive.pm_.c:842
-msgid "Post-install configuration"
-msgstr "Nastavenķ po instalaci"
-
-#: ../../install_steps_interactive.pm_.c:848
-#, c-format
-msgid "Please insert the Boot floppy used in drive %s"
-msgstr "Vlo¾te prosķm spou¹tģcķ disketu do %s"
-
-#: ../../install_steps_interactive.pm_.c:854
-#, c-format
-msgid "Please insert the Update Modules floppy in drive %s"
-msgstr "Vlo¾te prosķm disketu s moduly do %s"
-
-#: ../../install_steps_interactive.pm_.c:874
-msgid ""
-"You have now the possibility to download software aimed for encryption.\n"
-"\n"
-"WARNING:\n"
-"\n"
-"Due to different general requirements applicable to these software and "
-"imposed\n"
-"by various jurisdictions, customer and/or end user of theses software "
-"should\n"
-"ensure that the laws of his/their jurisdiction allow him/them to download, "
-"stock\n"
-"and/or use these software.\n"
-"\n"
-"In addition customer and/or end user shall particularly be aware to not "
-"infringe\n"
-"the laws of his/their jurisdiction. Should customer and/or end user not\n"
-"respect the provision of these applicable laws, he/they will incure serious\n"
-"sanctions.\n"
-"\n"
-"In no event shall Mandrakesoft nor its manufacturers and/or suppliers be "
-"liable\n"
-"for special, indirect or incidental damages whatsoever (including, but not\n"
-"limited to loss of profits, business interruption, loss of commercial data "
-"and\n"
-"other pecuniary losses, and eventual liabilities and indemnification to be "
-"paid\n"
-"pursuant to a court decision) arising out of use, possession, or the sole\n"
-"downloading of these software, to which customer and/or end user could\n"
-"eventually have access after having sign up the present agreement.\n"
-"\n"
-"\n"
-"For any queries relating to these agreement, please contact \n"
-"Mandrakesoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA"
-msgstr ""
-"Nynķ si mł¾ete stįhnout ¹ifrovacķ software.\n"
-"\n"
-"VAROVĮNĶ:\n"
-"\n"
-"Kvłli rłznżm obecnżm po¾adavkłm a naųķzenķm rłznżch soudnķch śųadł,\n"
-"vztahujķcķm se na tento druh software, by se mģl zįkaznķk a/nebo koncovż\n"
-"u¾ivatel ujistit, zda mu jeho soudnķ sprįva umo¾ņuje stįhnout si, ulo¾it\n"
-"a pou¾ķvat tento software.\n"
-"\n"
-"Zįkaznķk a/nebo koncovż u¾ivatel by si mģl bżt vģdomż toho, ¾e nesmķ\n"
-"pųestupovat zįkony své jurisdikce. Pokud zįkaznķk a/nebo koncovż u¾ivatel\n"
-"nebude respektovat ustanovenķ vztahujķcķch se zįkonł, mł¾e se vystavit\n"
-"postihu.\n"
-"\n"
-"V ka¾dém pųķpadģ se Mandrakesoft i jeho vżrobny a dodavatelé vzdįvajķ\n"
-"jakékoliv zodpovģdnosti za pųķmé i nepųķmé ¹kody (včetnģ ztrįty ziskł,\n"
-"pųeru¹enķ podnikįnķ, ztrįty obchodnķch informacķ, jako¾to i jinżch "
-"penģ¾nķch\n"
-"ztrįt a eventuįlnķch postihł, po¾adavkł na od¹kodnģnķ a ¾alob) vzniklé\n"
-"vlastnictvķm, pou¾ķvįnķm nebo pouhżm stahovįnķm tohoto software, ke kterému\n"
-"mł¾e mķt zįkaznķk a/nebo nebo koncovż u¾ivatel pųķstup kdy¾ odsouhlasķ\n"
-"tuto dohodu.\n"
-"\n"
-"\n"
-"Pokud mįje jakékoliv dotazy vztahujķcķ se k této dohodģ, kontaktujte prosķm\n"
-"Mandrakesoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA"
-
-#: ../../install_steps_interactive.pm_.c:912
-msgid ""
-"You have now the possibility to download updated packages that have\n"
-"been released after the distribution has been made available.\n"
-"\n"
-"You will get security fixes or bug fixes, but you need to have an\n"
-"Internet connection configured to proceed.\n"
-"\n"
-"Do you want to install the updates ?"
-msgstr ""
-"Nynķ mįte mo¾nost stįhnout aktualizované balķčky, které byly\n"
-"uvolnģny po vydįnķ distribuce.\n"
-"\n"
-"Mł¾ete tak zķskat bezpečnostnķ opravy či opravy chyb, ale\n"
-"potųebujete pųipojenķ k Internetu.\n"
-"\n"
-"Chcete nainstalovat aktualizace?"
-
-#: ../../install_steps_interactive.pm_.c:926
-msgid "Contacting Mandrake Linux web site to get the list of available mirrors"
-msgstr "Kontaktuji web Mandrake Linux pro zķskįnķ seznamu dostupnżch zrcadel"
-
-#: ../../install_steps_interactive.pm_.c:931
-msgid "Choose a mirror from which to get the packages"
-msgstr "Zvolte si zrcadlo(mirror) pro stahovįnķ balķčkł"
-
-#: ../../install_steps_interactive.pm_.c:940
-msgid "Contacting the mirror to get the list of available packages"
-msgstr "Stahuji ze zrcadla(mirror) seznam dostupnżch balķčkł"
-
-#: ../../install_steps_interactive.pm_.c:967
-msgid "Which is your timezone?"
-msgstr "Jaké je va¹e časové pįsmo?"
-
-#: ../../install_steps_interactive.pm_.c:972
-msgid "Hardware clock set to GMT"
-msgstr "Hardwarové hodiny nastaveny na GMT"
-
-#: ../../install_steps_interactive.pm_.c:973
-msgid "Automatic time synchronization (using NTP)"
-msgstr "Automatickį synchronizace času (pomocķ NTP)"
-
-#: ../../install_steps_interactive.pm_.c:980
-msgid "NTP Server"
-msgstr "NTP Server"
-
-#: ../../install_steps_interactive.pm_.c:1014
-#: ../../install_steps_interactive.pm_.c:1022
-msgid "Remote CUPS server"
-msgstr "Vzdįlenż CUPS server"
-
-#: ../../install_steps_interactive.pm_.c:1015
-msgid "No printer"
-msgstr "Bez tiskįrny"
-
-#: ../../install_steps_interactive.pm_.c:1032
-msgid "Do you have an ISA sound card?"
-msgstr "Mįte nģjakou zvukovou kartu na ISA sbģrnici?"
-
-#: ../../install_steps_interactive.pm_.c:1034
-msgid "Run \"sndconfig\" after installation to configure your sound card"
-msgstr "Pro nastavenķ zvukové karty spus»te po instalaci \"sndconfig\"."
-
-#: ../../install_steps_interactive.pm_.c:1036
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Nebyla nalezena zvukovį karta. Zkuste spustit po instalaci \"harddrake\"."
-
-#: ../../install_steps_interactive.pm_.c:1041 ../../steps.pm_.c:27
-msgid "Summary"
-msgstr "Souhrn"
-
-#: ../../install_steps_interactive.pm_.c:1044
-msgid "Mouse"
-msgstr "My¹"
-
-#: ../../install_steps_interactive.pm_.c:1046
-msgid "Timezone"
-msgstr "Časovį zóna"
-
-#: ../../install_steps_interactive.pm_.c:1047 ../../printerdrake.pm_.c:2276
-#: ../../printerdrake.pm_.c:2354
-msgid "Printer"
-msgstr "Tiskįrna"
-
-#: ../../install_steps_interactive.pm_.c:1049
-msgid "ISDN card"
-msgstr "ISDN karta"
-
-#: ../../install_steps_interactive.pm_.c:1052
-#: ../../install_steps_interactive.pm_.c:1054
-msgid "Sound card"
-msgstr "Zvukovį karta"
-
-#: ../../install_steps_interactive.pm_.c:1056
-msgid "TV card"
-msgstr "TV karta"
-
-#: ../../install_steps_interactive.pm_.c:1094
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1122
-msgid "LDAP"
-msgstr "LDAP"
-
-#: ../../install_steps_interactive.pm_.c:1095
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1131
-msgid "NIS"
-msgstr "NIS"
-
-#: ../../install_steps_interactive.pm_.c:1096
-#: ../../install_steps_interactive.pm_.c:1118
-msgid "Local files"
-msgstr "Lokįlnķ soubory"
-
-#: ../../install_steps_interactive.pm_.c:1105
-#: ../../install_steps_interactive.pm_.c:1106 ../../steps.pm_.c:24
-msgid "Set root password"
-msgstr "Hlavnķ(root) heslo"
-
-#: ../../install_steps_interactive.pm_.c:1107
-msgid "No password"
-msgstr "Bez hesla"
-
-#: ../../install_steps_interactive.pm_.c:1112
-#, c-format
-msgid "This password is too simple (must be at least %d characters long)"
-msgstr "Toto heslo je pųķli¹ jednoduché (musķ bżt alespoņ %d znakł dlouhé)"
-
-#: ../../install_steps_interactive.pm_.c:1118 ../../network/modem.pm_.c:49
-#: ../../standalone/draknet_.c:626 ../../standalone/logdrake_.c:172
-msgid "Authentication"
-msgstr "Ovģųenķ"
-
-#: ../../install_steps_interactive.pm_.c:1126
-msgid "Authentication LDAP"
-msgstr "Ovģųenķ pomocķ LDAP"
-
-#: ../../install_steps_interactive.pm_.c:1127
-msgid "LDAP Base dn"
-msgstr "Zįkladnķ dn pro LDAP"
-
-#: ../../install_steps_interactive.pm_.c:1128
-msgid "LDAP Server"
-msgstr "LDAP server"
-
-#: ../../install_steps_interactive.pm_.c:1134
-msgid "Authentication NIS"
-msgstr "Ovģųenķ pomocķ NIS"
-
-#: ../../install_steps_interactive.pm_.c:1135
-msgid "NIS Domain"
-msgstr "NIS Doména"
-
-#: ../../install_steps_interactive.pm_.c:1136
-msgid "NIS Server"
-msgstr "NIS Server"
-
-#: ../../install_steps_interactive.pm_.c:1171
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"SILO on your system, or another operating system removes SILO, or SILO "
-"doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures.\n"
-"\n"
-"If you want to create a bootdisk for your system, insert a floppy in the "
-"first\n"
-"drive and press \"Ok\"."
-msgstr ""
-"Pomocķ startovacķ diskety je mo¾né spustit systém Linux bez zįvislosti na\n"
-"zavadģči systému. To je u¾itečné tųeba v pųķpadģ, ¾e nechcete instalovat "
-"SILO\n"
-"na počķtač, nebo jinż operačnķ systém SILO pųepsal nebo SILO nepracuje "
-"sprįvnģ\n"
-"s hardwarovou konfiguracķ. Vlastnķ startovacķ disketa je také u¾itečnį "
-"tehdy,\n"
-"pokud je potųeba provést opravu systému po pųedchozķm selhįnķ.\n"
-"\n"
-"Pokud chcete vytvoųit startovacķ disketu, vlo¾te disketu do mechaniky\n"
-"a stisknģte \"OK\"."
-
-#: ../../install_steps_interactive.pm_.c:1187
-msgid "First floppy drive"
-msgstr "prvnķ mechaniky"
-
-#: ../../install_steps_interactive.pm_.c:1188
-msgid "Second floppy drive"
-msgstr "druhé mechaniky"
-
-#: ../../install_steps_interactive.pm_.c:1189 ../../printerdrake.pm_.c:1848
-msgid "Skip"
-msgstr "Pųeskočit"
-
-#: ../../install_steps_interactive.pm_.c:1194
-#, c-format
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"LILO (or grub) on your system, or another operating system removes LILO, or "
-"LILO doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures. Would you like to create a bootdisk for your system?\n"
-"%s"
-msgstr ""
-"Pomocķ startovacķ diskety mł¾ete spustit Linux bez pou¾itķ normįlnķho\n"
-"zavįdģcķho programu (bootloader). To je u¾itečné pokud nechcete instalovat\n"
-"LILO (nebo Grub), nebo jinż operačnķ systém odstranķ LILO, nebo LILO\n"
-"na va¹em počķtači nefunguje. Vlastnķ startovacķ disketa také mł¾e bżt\n"
-"pou¾ita spolu s \"Mandrake zįchrannżm diskem\" (rescue image), co¾ "
-"poskytuje\n"
-"śčinnou pomoc pųi havįrii systému. Chcete vytvoųit startovacķ disketu?\n"
-"%s"
-
-#: ../../install_steps_interactive.pm_.c:1200
-msgid ""
-"\n"
-"\n"
-"(WARNING! You're using XFS for your root partition,\n"
-"creating a bootdisk on a 1.44 Mb floppy will probably fail,\n"
-"because XFS needs a very large driver)."
-msgstr ""
-"\n"
-"\n"
-"(VAROVĮNĶ! Pro koųenovż oddķl pou¾ķvįte XFS, vytvoųenķ \n"
-"spou¹tģcķ diskety bude zųejmģ neśspģ¹né, proto¾e XFS\n"
-"potųebuje velmi velkż ovladač)"
-
-#: ../../install_steps_interactive.pm_.c:1208
-msgid "Sorry, no floppy drive available"
-msgstr "Bohu¾el nenķ dostupnį ¾įdnį disketovį mechanika"
-
-#: ../../install_steps_interactive.pm_.c:1212
-msgid "Choose the floppy drive you want to use to make the bootdisk"
-msgstr "Zvolte mechaniku, kde chcete vytvoųit startovacķ disketu"
-
-#: ../../install_steps_interactive.pm_.c:1216
-#, c-format
-msgid "Insert a floppy in %s"
-msgstr "Vlo¾te disketu do %s"
-
-#: ../../install_steps_interactive.pm_.c:1219
-msgid "Creating bootdisk"
-msgstr "Vytvįųķm startovacķ disketu"
-
-#: ../../install_steps_interactive.pm_.c:1226
-msgid "Preparing bootloader"
-msgstr "Pųipravuji zavįdģcķ program"
-
-#: ../../install_steps_interactive.pm_.c:1237
-msgid ""
-"You appear to have an OldWorld or Unknown\n"
-" machine, the yaboot bootloader will not work for you.\n"
-"The install will continue, but you'll\n"
-" need to use BootX to boot your machine"
-msgstr ""
-"Zdį se, ¾e mįte nģjakż neznįmż počķtač,\n"
-"na kterém nebude yaboot pracovat.\n"
-"Instalace bude pokračovat, ale budete\n"
-"potųebovat BootX pro spu¹tģnķ systému."
-
-#: ../../install_steps_interactive.pm_.c:1243
-msgid "Do you want to use aboot?"
-msgstr "Chcete pou¾ķt aboot?"
-
-#: ../../install_steps_interactive.pm_.c:1246
-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?"
-
-#: ../../install_steps_interactive.pm_.c:1253
-msgid "Installing bootloader"
-msgstr "Instaluji zavįdģcķ program"
-
-#: ../../install_steps_interactive.pm_.c:1259
-msgid "Installation of bootloader failed. The following error occured:"
-msgstr "Instalace zavįdģcķho programu neuspģla. Stala se tato chyba:"
-
-#: ../../install_steps_interactive.pm_.c:1267
-#, c-format
-msgid ""
-"You may need to change your Open Firmware boot-device to\n"
-" enable the bootloader. If you don't 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\n"
-"At your next boot you should see the bootloader prompt."
-msgstr ""
-"Mł¾ete potųebovat zmģnit startovacķ zaųķzenķ pro Open Firmware\n"
-" pro aktivaci spou¹tģcķho programu. Pokud nevidķte po spu¹tģnķ prompt,\n"
-" stisknģte pųi startu Command-Option-O-F a zadajte:\n"
-" setenv boot-device %s,\\\\:tbxi\n"
-" Potom zadejte: shut-down\n"
-"Pųi dal¹ķm spu¹tģnķ u¾ uvidķte prompt."
-
-#: ../../install_steps_interactive.pm_.c:1311
-#: ../../standalone/drakautoinst_.c:81
-#, c-format
-msgid "Insert a blank floppy in drive %s"
-msgstr "Vlo¾te prįzdnou disketu do %s"
-
-#: ../../install_steps_interactive.pm_.c:1315
-#: ../../standalone/drakautoinst_.c:83
-msgid "Creating auto install floppy"
-msgstr "Vytvįųķm disketu pro automatickou instalaci"
-
-#: ../../install_steps_interactive.pm_.c:1326
-msgid ""
-"Some steps are not completed.\n"
-"\n"
-"Do you really want to quit now?"
-msgstr ""
-"Nģkteré kroky nebyly dokončeny.\n"
-"\n"
-"Chcete opravdu nynķ skončit?"
-
-#: ../../install_steps_interactive.pm_.c:1337
-msgid ""
-"Congratulations, installation is complete.\n"
-"Remove the boot media and press return to reboot.\n"
-"\n"
-"\n"
-"For information on fixes which are available for this release of Mandrake "
-"Linux,\n"
-"consult the Errata available from:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/82errata.php3\n"
-"\n"
-"\n"
-"Information on configuring your system is available in the post\n"
-"install chapter of the Official Mandrake Linux User's Guide."
-msgstr ""
-"Gratulujeme vįm, instalace je dokončena.\n"
-"Vyjmģte startovacķ média a stisknģte return pro restart.\n"
-"\n"
-"\n"
-"Na opravy této instalace systému Mandrake Linux se lze informovat\n"
-"na strįnce Errata:\n"
-"\n"
-"\n"
-"http://www.mandrakelinux.com/en/82errata.php3\n"
-"\n"
-"\n"
-"Informace o konfiguraci systému po instalaci jsou dostupné\n"
-"v dané kapitole oficiįlnķ u¾ivatelské pųķručky pro Mandrake Linux."
-
-#: ../../install_steps_interactive.pm_.c:1354
-msgid "Generate auto install floppy"
-msgstr "Vytvoųit disketu pro automatickou instalaci"
-
-#: ../../install_steps_interactive.pm_.c:1356
-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"
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Automated"
-msgstr "Automaticky"
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Replay"
-msgstr "Zopakovat"
-
-#: ../../install_steps_interactive.pm_.c:1364
-msgid "Save packages selection"
-msgstr "Ulo¾it vżbģr jednotlivżch balķčkł"
-
-#: ../../install_steps_newt.pm_.c:22
-#, c-format
-msgid "Mandrake Linux Installation %s"
-msgstr "Mandrake Linux Instalace %s"
-
-#: ../../install_steps_newt.pm_.c:34
-msgid ""
-" <Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen "
-msgstr ""
-" <Tab>/<Alt-Tab> pųepn. mezi prvky | <Space> vżbģr | <F12> dal¹ķ obraz."
-
-#: ../../interactive.pm_.c:87
-msgid "kdesu missing"
-msgstr "chybķ kdesu"
-
-#: ../../interactive.pm_.c:89 ../../interactive.pm_.c:100
-msgid "consolehelper missing"
-msgstr "chybķ consolehelper"
-
-#: ../../interactive.pm_.c:152
-msgid "Choose a file"
-msgstr "Vyberte soubor"
-
-#: ../../interactive.pm_.c:314
-msgid "Advanced"
-msgstr "Roz¹ķųenķ"
-
-#: ../../interactive.pm_.c:315
-msgid "Basic"
-msgstr "Zįkladnķ"
-
-#: ../../interactive.pm_.c:386
-msgid "Please wait"
-msgstr "Prosķm počkejte"
-
-#: ../../interactive_gtk.pm_.c:605 ../../services.pm_.c:222
-msgid "Info"
-msgstr "Informace"
-
-#: ../../interactive_gtk.pm_.c:715
-msgid "Expand Tree"
-msgstr "Rozbal vģtev"
-
-#: ../../interactive_gtk.pm_.c:716
-msgid "Collapse Tree"
-msgstr "Sbal vģtev"
-
-#: ../../interactive_gtk.pm_.c:717
-msgid "Toggle between flat and group sorted"
-msgstr "Pųepnutķ mezi abecednķm a skupinovżm ųazenķm"
-
-#: ../../interactive_stdio.pm_.c:29 ../../interactive_stdio.pm_.c:147
-msgid "Bad choice, try again\n"
-msgstr "©patnį volba, zkuste to znovu\n"
-
-#: ../../interactive_stdio.pm_.c:30 ../../interactive_stdio.pm_.c:148
-#, c-format
-msgid "Your choice? (default %s) "
-msgstr "Va¹e volba? (vżchozķ %s) "
-
-#: ../../interactive_stdio.pm_.c:52
-#, c-format
-msgid ""
-"Entries you'll have to fill:\n"
-"%s"
-msgstr ""
-"Polo¾ky, které je potųeba vyplnit:\n"
-"%s"
-
-#: ../../interactive_stdio.pm_.c:68
-#, c-format
-msgid "Your choice? (0/1, default `%s') "
-msgstr "Va¹e volba? (0/1, vżchozķ '%s') "
-
-#: ../../interactive_stdio.pm_.c:93
-#, c-format
-msgid "Button `%s': %s"
-msgstr "Tlačķtko '%s': %s"
-
-#: ../../interactive_stdio.pm_.c:94
-msgid "Do you want to click on this button? "
-msgstr "Chcete kliknout na toto tlačķtko? "
-
-#: ../../interactive_stdio.pm_.c:103
-#, c-format
-msgid "Your choice? (default `%s'%s) "
-msgstr "Va¹e volba? (vżchozķ '%s'%s) "
-
-#: ../../interactive_stdio.pm_.c:121
-#, c-format
-msgid "=> There are many things to choose from (%s).\n"
-msgstr "=> Je zde vķce voleb, ze kterżch je mo¾né si vybrat (%s).\n"
-
-#: ../../interactive_stdio.pm_.c:124
-msgid ""
-"Please choose the first number of the 10-range you wish to edit,\n"
-"or just hit Enter to proceed.\n"
-"Your choice? "
-msgstr ""
-"Vyberte si prosķm prvnķ čķslo z vżbģru, které chcete editovat,\n"
-"nebo stisknģte Enter pro pokračovįnķ.\n"
-"Va¹e volba? "
-
-#: ../../interactive_stdio.pm_.c:137
-#, c-format
-msgid ""
-"=> Notice, a label changed:\n"
-"%s"
-msgstr ""
-"=> Oznamuji zmģnu nįvģ¹tķ:\n"
-"%s"
-
-#: ../../interactive_stdio.pm_.c:144
-msgid "Re-submit"
-msgstr "Znovu odeslat"
-
-#: ../../keyboard.pm_.c:174 ../../keyboard.pm_.c:205
-msgid "Czech (QWERTZ)"
-msgstr "České (QWERTZ)"
-
-#: ../../keyboard.pm_.c:175 ../../keyboard.pm_.c:207
-msgid "German"
-msgstr "Nģmecké"
-
-#: ../../keyboard.pm_.c:176
-msgid "Dvorak"
-msgstr "Dvoųįk"
-
-#: ../../keyboard.pm_.c:177 ../../keyboard.pm_.c:214
-msgid "Spanish"
-msgstr "©panģlské"
-
-#: ../../keyboard.pm_.c:178 ../../keyboard.pm_.c:215
-msgid "Finnish"
-msgstr "Finské"
-
-#: ../../keyboard.pm_.c:179 ../../keyboard.pm_.c:216
-msgid "French"
-msgstr "Francouzské"
-
-#: ../../keyboard.pm_.c:180 ../../keyboard.pm_.c:241
-msgid "Norwegian"
-msgstr "Norské"
-
-#: ../../keyboard.pm_.c:181
-msgid "Polish"
-msgstr "Polské"
-
-#: ../../keyboard.pm_.c:182 ../../keyboard.pm_.c:249
-msgid "Russian"
-msgstr "Ruské"
-
-#: ../../keyboard.pm_.c:184 ../../keyboard.pm_.c:251
-msgid "Swedish"
-msgstr "©védské"
-
-#: ../../keyboard.pm_.c:185 ../../keyboard.pm_.c:266
-msgid "UK keyboard"
-msgstr "UK-Britské"
-
-#: ../../keyboard.pm_.c:186 ../../keyboard.pm_.c:267
-msgid "US keyboard"
-msgstr "US-Americké"
-
-#: ../../keyboard.pm_.c:188
-msgid "Albanian"
-msgstr "Albįnské"
-
-#: ../../keyboard.pm_.c:189
-msgid "Armenian (old)"
-msgstr "Arménské (staré)"
-
-#: ../../keyboard.pm_.c:190
-msgid "Armenian (typewriter)"
-msgstr "Arménské (psacķ stroj)"
-
-#: ../../keyboard.pm_.c:191
-msgid "Armenian (phonetic)"
-msgstr "Arménské (foneticky)"
-
-#: ../../keyboard.pm_.c:196
-msgid "Azerbaidjani (latin)"
-msgstr "Įzerbajd¾įnské (latinka)"
-
-#: ../../keyboard.pm_.c:198
-msgid "Belgian"
-msgstr "Belgické"
-
-#: ../../keyboard.pm_.c:199
-msgid "Bulgarian (phonetic)"
-msgstr "Bulharské (foneticky)"
-
-#: ../../keyboard.pm_.c:200
-msgid "Bulgarian (BDS)"
-msgstr "Bulharské (BDS)"
-
-#: ../../keyboard.pm_.c:201
-msgid "Brazilian (ABNT-2)"
-msgstr "Brazilské (ABNT-2)"
-
-#: ../../keyboard.pm_.c:202
-msgid "Belarusian"
-msgstr "Bģloruské"
-
-#: ../../keyboard.pm_.c:203
-msgid "Swiss (German layout)"
-msgstr "©vżcarské (Nģmeckż styl)"
-
-#: ../../keyboard.pm_.c:204
-msgid "Swiss (French layout)"
-msgstr "©vżcarské (Francouzskż styl)"
-
-#: ../../keyboard.pm_.c:206
-msgid "Czech (QWERTY)"
-msgstr "České (QWERTY)"
-
-#: ../../keyboard.pm_.c:208
-msgid "German (no dead keys)"
-msgstr "Nģmecké (bez mrtvżch klįves)"
-
-#: ../../keyboard.pm_.c:209
-msgid "Danish"
-msgstr "Dįnské"
-
-#: ../../keyboard.pm_.c:210
-msgid "Dvorak (US)"
-msgstr "Dvoųįk (US) "
-
-#: ../../keyboard.pm_.c:211
-msgid "Dvorak (Norwegian)"
-msgstr "Dvoųįk (Norské)"
-
-#: ../../keyboard.pm_.c:212
-msgid "Dvorak (Swedish)"
-msgstr "Dvoųįk (©védské) "
-
-#: ../../keyboard.pm_.c:213
-msgid "Estonian"
-msgstr "Estonské"
-
-#: ../../keyboard.pm_.c:217
-msgid "Georgian (\"Russian\" layout)"
-msgstr "Gruzķnské (\"Ruské\" rozlo¾enķ)"
-
-#: ../../keyboard.pm_.c:218
-msgid "Georgian (\"Latin\" layout)"
-msgstr "Gruzķnské (rozlo¾enķ \"Latin\")"
-
-#: ../../keyboard.pm_.c:219
-msgid "Greek"
-msgstr "Ųecké"
-
-#: ../../keyboard.pm_.c:220
-msgid "Hungarian"
-msgstr "Maļarské"
-
-#: ../../keyboard.pm_.c:221
-msgid "Croatian"
-msgstr "Chorvatské"
-
-#: ../../keyboard.pm_.c:222
-msgid "Israeli"
-msgstr "Izraelské"
-
-#: ../../keyboard.pm_.c:223
-msgid "Israeli (Phonetic)"
-msgstr "Izraelské (foneticky)"
-
-#: ../../keyboard.pm_.c:224
-msgid "Iranian"
-msgstr "Ķrįnské"
-
-#: ../../keyboard.pm_.c:225
-msgid "Icelandic"
-msgstr "Islandské"
-
-#: ../../keyboard.pm_.c:226
-msgid "Italian"
-msgstr "Italské"
-
-#: ../../keyboard.pm_.c:228
-msgid "Japanese 106 keys"
-msgstr "Japonskį 106 klįves"
-
-#: ../../keyboard.pm_.c:231
-msgid "Korean keyboard"
-msgstr "Korejskį klįvesnice"
-
-#: ../../keyboard.pm_.c:232
-msgid "Latin American"
-msgstr "Latinsko-Americké"
-
-#: ../../keyboard.pm_.c:233
-msgid "Lithuanian AZERTY (old)"
-msgstr "Litevské AZERTY (starį)"
-
-#: ../../keyboard.pm_.c:235
-msgid "Lithuanian AZERTY (new)"
-msgstr "Litevské AZERTY (novį)"
-
-#: ../../keyboard.pm_.c:236
-msgid "Lithuanian \"number row\" QWERTY"
-msgstr "Litevské \"čķselnį ųada\" QWERTY"
-
-#: ../../keyboard.pm_.c:237
-msgid "Lithuanian \"phonetic\" QWERTY"
-msgstr "Litevské \"foneticky\" QWERTY"
-
-#: ../../keyboard.pm_.c:238
-msgid "Latvian"
-msgstr "Latevské"
-
-#: ../../keyboard.pm_.c:239
-msgid "Macedonian"
-msgstr "Makedonské"
-
-#: ../../keyboard.pm_.c:240
-msgid "Dutch"
-msgstr "Holandské"
-
-#: ../../keyboard.pm_.c:242
-msgid "Polish (qwerty layout)"
-msgstr "Polské (rozlo¾enķ QWERTY)"
-
-#: ../../keyboard.pm_.c:243
-msgid "Polish (qwertz layout)"
-msgstr "Polské (rozlo¾enķ QWERTZ)"
-
-#: ../../keyboard.pm_.c:244
-msgid "Portuguese"
-msgstr "Portugalské"
-
-#: ../../keyboard.pm_.c:245
-msgid "Canadian (Quebec)"
-msgstr "Kanadské (Quebec)"
-
-#: ../../keyboard.pm_.c:247
-msgid "Romanian (qwertz)"
-msgstr "Rumunské (qwertz)"
-
-#: ../../keyboard.pm_.c:248
-msgid "Romanian (qwerty)"
-msgstr "Rumunské (qwerty)"
-
-#: ../../keyboard.pm_.c:250
-msgid "Russian (Yawerty)"
-msgstr "Ruské (Yawerty)"
-
-#: ../../keyboard.pm_.c:252
-msgid "Slovenian"
-msgstr "Slovinské"
-
-#: ../../keyboard.pm_.c:253
-msgid "Slovakian (QWERTZ)"
-msgstr "Slovenské (QWERTZ)"
-
-#: ../../keyboard.pm_.c:254
-msgid "Slovakian (QWERTY)"
-msgstr "Slovenské (QWERTY)"
-
-#: ../../keyboard.pm_.c:256
-msgid "Serbian (cyrillic)"
-msgstr "Srbské (cyrilice)"
-
-#: ../../keyboard.pm_.c:258
-msgid "Tamil"
-msgstr "Tamilské"
-
-#: ../../keyboard.pm_.c:259
-msgid "Thai keyboard"
-msgstr "Thajské"
-
-#: ../../keyboard.pm_.c:261
-msgid "Tajik keyboard"
-msgstr "Tad¾iskį klįvesnice"
-
-#: ../../keyboard.pm_.c:262
-msgid "Turkish (traditional \"F\" model)"
-msgstr "Turecké (tradičnķ model \"F\")"
-
-#: ../../keyboard.pm_.c:263
-msgid "Turkish (modern \"Q\" model)"
-msgstr "Turecké (modernķ model \"Q\")"
-
-#: ../../keyboard.pm_.c:265
-msgid "Ukrainian"
-msgstr "Ukrajinské"
-
-#: ../../keyboard.pm_.c:268
-msgid "US keyboard (international)"
-msgstr "US (mezinįrodnķ)"
-
-#: ../../keyboard.pm_.c:269
-msgid "Vietnamese \"numeric row\" QWERTY"
-msgstr "Vietnamskį \"čķselnį ųada\" QWERTY"
-
-#: ../../keyboard.pm_.c:270
-msgid "Yugoslavian (latin)"
-msgstr "Jugoslįvské (latin)"
-
-#: ../../keyboard.pm_.c:278
-msgid "Right Alt key"
-msgstr "Pravį klįvesa Alt"
-
-#: ../../keyboard.pm_.c:279
-msgid "Both Shift keys simultaneously"
-msgstr "Obģ klįvesy Shift současnģ"
-
-#: ../../keyboard.pm_.c:280
-msgid "Control and Shift keys simultaneously"
-msgstr "Control a Shift současnģ"
-
-#: ../../keyboard.pm_.c:281
-msgid "CapsLock key"
-msgstr "Klįvesa CapsLock"
-
-#: ../../keyboard.pm_.c:282
-msgid "Ctrl and Alt keys simultaneously"
-msgstr "Ctrl a Alt současnģ"
-
-#: ../../keyboard.pm_.c:283
-msgid "Alt and Shift keys simultaneously"
-msgstr "Alt a Shift současnģ"
-
-#: ../../keyboard.pm_.c:284
-msgid "\"Menu\" key"
-msgstr "Klįvesa \"Menu\""
-
-#: ../../keyboard.pm_.c:285
-msgid "Left \"Windows\" key"
-msgstr "Levį klįvesa \"Windows\""
-
-#: ../../keyboard.pm_.c:286
-msgid "Right \"Windows\" key"
-msgstr "Pravį klįvesa \"Windows\""
-
-#: ../../loopback.pm_.c:32
-#, c-format
-msgid "Circular mounts %s\n"
-msgstr "Propletené pųķpojné body %s\n"
-
-#: ../../lvm.pm_.c:88
-msgid "Remove the logical volumes first\n"
-msgstr "Odeberte nejdųķve logické disky\n"
-
-#: ../../modules.pm_.c:826
-msgid ""
-"PCMCIA support no longer exist for 2.2 kernels. Please use a 2.4 kernel."
-msgstr ""
-"Podpora PCMCIA ji¾ nenķ dostupnį pro kernely 2.2. Pou¾ijte prosķm ųadu 2.4."
-
-#: ../../mouse.pm_.c:25
-msgid "Sun - Mouse"
-msgstr "Sun - my¹"
-
-#: ../../mouse.pm_.c:32
-msgid "Logitech MouseMan+"
-msgstr "Logitech MouseMan+"
-
-#: ../../mouse.pm_.c:33
-msgid "Generic PS2 Wheel Mouse"
-msgstr "Standardnķ PS2 my¹ s kolečkem"
-
-#: ../../mouse.pm_.c:34
-msgid "GlidePoint"
-msgstr "GlidePoint"
-
-#: ../../mouse.pm_.c:36 ../../mouse.pm_.c:63
-msgid "Kensington Thinking Mouse"
-msgstr "Kensington Thinking Mouse"
-
-#: ../../mouse.pm_.c:37 ../../mouse.pm_.c:59
-msgid "Genius NetMouse"
-msgstr "Genius NetMouse"
-
-#: ../../mouse.pm_.c:38
-msgid "Genius NetScroll"
-msgstr "Genius NetScroll"
-
-#: ../../mouse.pm_.c:43 ../../mouse.pm_.c:68
-msgid "1 button"
-msgstr "1 tlačķtko"
-
-#: ../../mouse.pm_.c:44 ../../mouse.pm_.c:51
-msgid "Generic 2 Button Mouse"
-msgstr "Standardnķ dvoutlačķtkovį my¹"
-
-#: ../../mouse.pm_.c:45
-msgid "Generic"
-msgstr "Obecnį"
-
-#: ../../mouse.pm_.c:46
-msgid "Wheel"
-msgstr "S kolečkem"
-
-#: ../../mouse.pm_.c:49
-msgid "serial"
-msgstr "Sériovį"
-
-#: ../../mouse.pm_.c:52
-msgid "Generic 3 Button Mouse"
-msgstr "Standardnķ tųķtlačķtkovį my¹"
-
-#: ../../mouse.pm_.c:53
-msgid "Microsoft IntelliMouse"
-msgstr "Microsoft IntelliMouse"
-
-#: ../../mouse.pm_.c:54
-msgid "Logitech MouseMan"
-msgstr "Logitech MouseMan"
-
-#: ../../mouse.pm_.c:55
-msgid "Mouse Systems"
-msgstr "Mouse Systems"
-
-#: ../../mouse.pm_.c:57
-msgid "Logitech CC Series"
-msgstr "Logitech série CC (sériovį)"
-
-#: ../../mouse.pm_.c:58
-msgid "Logitech MouseMan+/FirstMouse+"
-msgstr "Logitech MouseMan+/FirstMouse+"
-
-#: ../../mouse.pm_.c:60
-msgid "MM Series"
-msgstr "MM Series"
-
-#: ../../mouse.pm_.c:61
-msgid "MM HitTablet"
-msgstr "MM HitTablet"
-
-#: ../../mouse.pm_.c:62
-msgid "Logitech Mouse (serial, old C7 type)"
-msgstr "Logitech Mouse (sériovį, starż C7 typ)"
-
-#: ../../mouse.pm_.c:66
-msgid "busmouse"
-msgstr "Busmouse"
-
-#: ../../mouse.pm_.c:69
-msgid "2 buttons"
-msgstr "2 tlačķtka"
-
-#: ../../mouse.pm_.c:70
-msgid "3 buttons"
-msgstr "3 tlačķtka"
-
-#: ../../mouse.pm_.c:73
-msgid "none"
-msgstr "®įdnį"
-
-#: ../../mouse.pm_.c:75
-msgid "No mouse"
-msgstr "Bez my¹i"
-
-#: ../../mouse.pm_.c:499
-msgid "Please test the mouse"
-msgstr "Vyzkou¹ejte prosķm, zda funguje my¹"
-
-#: ../../mouse.pm_.c:500
-msgid "To activate the mouse,"
-msgstr "Vyzkou¹ejte na my¹i,"
-
-#: ../../mouse.pm_.c:501
-msgid "MOVE YOUR WHEEL!"
-msgstr "TOČIT KOLEČKEM!"
-
-#: ../../my_gtk.pm_.c:651
-msgid "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"
-msgstr "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-2,*-r-*"
-
-#: ../../my_gtk.pm_.c:686
-msgid "Finish"
-msgstr "Ukončit"
-
-#: ../../my_gtk.pm_.c:686 ../../printerdrake.pm_.c:1588
-msgid "Next ->"
-msgstr "Dal¹ķ ->"
-
-#: ../../my_gtk.pm_.c:687 ../../printerdrake.pm_.c:1586
-msgid "<- Previous"
-msgstr "<- Pųedchozķ"
-
-#: ../../my_gtk.pm_.c:1019
-msgid "Is this correct?"
-msgstr "Je to sprįvnģ?"
-
-#: ../../network/adsl.pm_.c:19 ../../network/ethernet.pm_.c:36
-msgid "Connect to the Internet"
-msgstr "Pųipojenķ k Internetu"
-
-#: ../../network/adsl.pm_.c:20
-msgid ""
-"The most common way to connect with adsl is pppoe.\n"
-"Some connections use pptp, a few ones use dhcp.\n"
-"If you don't know, choose 'use pppoe'"
-msgstr ""
-"Nejbģ¾nģji se pro pųipojenķ pomocķ adsl pou¾ķvį pppoe.\n"
-"Nģkterį pųipojenķ pou¾ķvajķ pptp, nģkterį pouze dhcp. Jestli si nejste "
-"jistķ, zvolte 'pou¾ķt pppoe'"
-
-#: ../../network/adsl.pm_.c:22
-msgid "Alcatel speedtouch usb"
-msgstr "Alcatel speedtouch usb"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use dhcp"
-msgstr "pou¾ķt dhcp"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pppoe"
-msgstr "pou¾ķt pppoe"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pptp"
-msgstr "pou¾ķt pptp"
-
-#: ../../network/ethernet.pm_.c:37
-msgid ""
-"Which dhcp client do you want to use?\n"
-"Default is dhcpcd"
-msgstr ""
-"Kterého dhcp klienta chcete pou¾ķt?\n"
-"Standardnķ je dhcpcd"
-
-#: ../../network/ethernet.pm_.c:88
-msgid ""
-"No ethernet network adapter has been detected on your system.\n"
-"I cannot set up this connection type."
-msgstr ""
-"Ve va¹em počķtači nebyl nalezen ¾įdnż sķ»ovż adaptér.\n"
-"Nemohu nastavit typ spojenķ."
-
-#: ../../network/ethernet.pm_.c:92 ../../standalone/drakgw_.c:252
-msgid "Choose the network interface"
-msgstr "Zvolte sķ»ové rozhranķ"
-
-#: ../../network/ethernet.pm_.c:93
-msgid ""
-"Please choose which network adapter you want to use to connect to Internet"
-msgstr ""
-"Vyberte si prosķm, kterż sķ»ovż adaptér chcete pou¾ķt pro pųipojenķ k "
-"internetu"
-
-#: ../../network/ethernet.pm_.c:178
-msgid "no network card found"
-msgstr "nebyla nalezena sķ»ovį karta"
-
-#: ../../network/ethernet.pm_.c:202 ../../network/network.pm_.c:360
-msgid "Configuring network"
-msgstr "Nastavuji sķ»"
-
-#: ../../network/ethernet.pm_.c:203
-msgid ""
-"Please enter your host name if you know it.\n"
-"Some DHCP servers require the hostname to work.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''."
-msgstr ""
-"Prosķm zadejte jméno va¹eho počķtače, proto¾e ho vy¾adujķ nģkteré\n"
-"DHCP servery. Toto jméno musķ bżt śplné, jako napųķklad\n"
-"'mybox.mylab.myco.com'."
-
-#: ../../network/ethernet.pm_.c:207 ../../network/network.pm_.c:365
-msgid "Host name"
-msgstr "Jméno počķtače"
-
-#: ../../network/isdn.pm_.c:21 ../../network/isdn.pm_.c:44
-#: ../../network/netconnect.pm_.c:95 ../../network/netconnect.pm_.c:109
-#: ../../network/netconnect.pm_.c:164 ../../network/netconnect.pm_.c:175
-#: ../../network/netconnect.pm_.c:202 ../../network/netconnect.pm_.c:225
-#: ../../network/netconnect.pm_.c:233
-msgid "Network Configuration Wizard"
-msgstr "Prłvodce nastavenķm sķtģ"
-
-#: ../../network/isdn.pm_.c:22
-msgid "External ISDN modem"
-msgstr "Externķ ISDN modem"
-
-#: ../../network/isdn.pm_.c:22
-msgid "Internal ISDN card"
-msgstr "Internķ ISDN karta"
-
-#: ../../network/isdn.pm_.c:22
-msgid "What kind is your ISDN connection?"
-msgstr "Jaké je va¹e ISDN pųipojenķ?"
-
-#: ../../network/isdn.pm_.c:45
-msgid ""
-"Which ISDN configuration do you prefer?\n"
-"\n"
-"* The Old configuration uses isdn4net. It contains powerfull\n"
-" tools, but is tricky to configure, and not standard.\n"
-"\n"
-"* The New configuration is easier to understand, more\n"
-" standard, but with less tools.\n"
-"\n"
-"We recommand the light configuration.\n"
-msgstr ""
-"Kterou ISDN konfiguraci preferujete?\n"
-"\n"
-"* Starou, pou¾itou pro isd4net. Ta obsahuje vżkonné nįstroje,\n"
-" ale je choulostivį na konfiguraci a nenķ standardnķ.\n"
-"\n"
-"* Novou konfiguraci, snaz¹ķ pro porozumģnķ, vķce standardnķ,\n"
-" ale s ménģ nįstroji.\n"
-"\n"
-"Doporučujeme vybrat si snaz¹ķ novou konfiguraci.\n"
-
-#: ../../network/isdn.pm_.c:54
-msgid "New configuration (isdn-light)"
-msgstr "Novį konfigurace (isdn-light)"
-
-#: ../../network/isdn.pm_.c:54
-msgid "Old configuration (isdn4net)"
-msgstr "Starį konfigurace (isdn4net)"
-
-#: ../../network/isdn.pm_.c:170 ../../network/isdn.pm_.c:188
-#: ../../network/isdn.pm_.c:198 ../../network/isdn.pm_.c:205
-#: ../../network/isdn.pm_.c:215
-msgid "ISDN Configuration"
-msgstr "Nastavenķ ISDN"
-
-#: ../../network/isdn.pm_.c:170
-msgid ""
-"Select your provider.\n"
-" If it's not in the list, choose Unlisted"
-msgstr ""
-"Vyberte si svého poskytovatele internetu.\n"
-" Pokud nenķ na seznamu, vyberte si Jinż"
-
-#: ../../network/isdn.pm_.c:183
-msgid "Europe protocol"
-msgstr "Evropskż protokol"
-
-#: ../../network/isdn.pm_.c:183
-msgid "Europe protocol (EDSS1)"
-msgstr "Evropskż protokol (EDSS1)"
-
-#: ../../network/isdn.pm_.c:185
-msgid "Protocol for the rest of the world"
-msgstr "Protokol pou¾itż ve zbytku svģta"
-
-#: ../../network/isdn.pm_.c:185
-msgid ""
-"Protocol for the rest of the world \n"
-" no D-Channel (leased lines)"
-msgstr ""
-"Protokol pou¾itż ve zbytku svģta \n"
-" ¾įdnż D-kanįl (leased lines)"
-
-#: ../../network/isdn.pm_.c:189
-msgid "Which protocol do you want to use ?"
-msgstr "Kterż protokol chcete pou¾ķt?"
-
-#: ../../network/isdn.pm_.c:199
-msgid "What kind of card do you have?"
-msgstr "Jakż typ karty mįte?"
-
-#: ../../network/isdn.pm_.c:200
-msgid "I don't know"
-msgstr "Nevķm"
-
-#: ../../network/isdn.pm_.c:200
-msgid "ISA / PCMCIA"
-msgstr "ISA / PCMCIA"
-
-#: ../../network/isdn.pm_.c:200
-msgid "PCI"
-msgstr "PCI"
-
-#: ../../network/isdn.pm_.c:206
-msgid ""
-"\n"
-"If you have an ISA card, the values on the next screen should be right.\n"
-"\n"
-"If you have a PCMCIA card, you have to know the irq and io of your card.\n"
-msgstr ""
-"\n"
-"Jestli mįte ISA kartu, mģly by bżt hodnoty na nįsledujķcķ obrazovce "
-"sprįvné.\n"
-"\n"
-"Jestli mįte PCMCIA kartu, musķte znįt jejķ IRQ a IO.\n"
-
-#: ../../network/isdn.pm_.c:210
-msgid "Abort"
-msgstr "Pųeru¹it"
-
-#: ../../network/isdn.pm_.c:210
-msgid "Continue"
-msgstr "Pokračovat"
-
-#: ../../network/isdn.pm_.c:216
-msgid "Which is your ISDN card ?"
-msgstr "Kterou z tģchto ISDN karet mįte?"
-
-#: ../../network/isdn.pm_.c:235
-msgid ""
-"I have detected an ISDN PCI Card, but I don't know the type. Please select "
-"one PCI card on the next screen."
-msgstr ""
-"Na¹el jsem ISDN PCI kartu, jejķ¾ typ ale neznįm. Prosķm zvolte si jednu z "
-"nįsledujķcķho seznamu PCI karet."
-
-#: ../../network/isdn.pm_.c:244
-msgid "No ISDN PCI card found. Please select one on the next screen."
-msgstr ""
-"Nena¹el jsem ¾įdnou ISDN PCI kartu. Prosķm zvolte si jednu z nįsledujķcķ "
-"nabķdky"
-
-#: ../../network/modem.pm_.c:39
-msgid "Please choose which serial port your modem is connected to."
-msgstr "Ke kterému sériovému portu je vį¹ modem pųipojen?"
-
-#: ../../network/modem.pm_.c:44
-msgid "Dialup options"
-msgstr "Mo¾nosti vytįčenķ"
-
-#: ../../network/modem.pm_.c:45 ../../standalone/draknet_.c:622
-msgid "Connection name"
-msgstr "Jméno pųipojenķ"
-
-#: ../../network/modem.pm_.c:46 ../../standalone/draknet_.c:623
-msgid "Phone number"
-msgstr "Telefonnķ čķslo"
-
-#: ../../network/modem.pm_.c:47 ../../standalone/draknet_.c:624
-msgid "Login ID"
-msgstr "Pųihla¹ovacķ jméno"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "CHAP"
-msgstr "CHAP"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "PAP"
-msgstr "PAP"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Script-based"
-msgstr "Podle scénįųe"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Terminal-based"
-msgstr "Pomocķ terminįlu"
-
-#: ../../network/modem.pm_.c:50 ../../standalone/draknet_.c:627
-msgid "Domain name"
-msgstr "Jméno domény"
-
-#: ../../network/modem.pm_.c:51 ../../standalone/draknet_.c:628
-msgid "First DNS Server (optional)"
-msgstr "Prvnķ DNS Server (nepovinnż)"
-
-#: ../../network/modem.pm_.c:52 ../../standalone/draknet_.c:629
-msgid "Second DNS Server (optional)"
-msgstr "Druhż DNS Server (nepovinnż)"
-
-#: ../../network/netconnect.pm_.c:34
-msgid ""
-"\n"
-"You can disconnect or reconfigure your connection."
-msgstr ""
-"\n"
-"Mł¾ete se odpojit nebo pųekonfigurovat pųipojenķ."
-
-#: ../../network/netconnect.pm_.c:34 ../../network/netconnect.pm_.c:37
-msgid ""
-"\n"
-"You can reconfigure your connection."
-msgstr ""
-"\n"
-"Mł¾ete pųekonfigurovat pųipojenķ."
-
-#: ../../network/netconnect.pm_.c:34
-msgid "You are currently connected to internet."
-msgstr "V současnosti jste pųipojeni k Internetu"
-
-#: ../../network/netconnect.pm_.c:37
-msgid ""
-"\n"
-"You can connect to Internet or reconfigure your connection."
-msgstr ""
-"\n"
-"Nemł¾ete se pųipojit k Internetu nebo pųekonfigurovat pųipojenķ."
-
-#: ../../network/netconnect.pm_.c:37
-msgid "You are not currently connected to Internet."
-msgstr "V současnosti nejste pųipojeni k Internetu."
-
-#: ../../network/netconnect.pm_.c:41
-msgid "Connect"
-msgstr "Pųipojit"
-
-#: ../../network/netconnect.pm_.c:43
-msgid "Disconnect"
-msgstr "Odpojit"
-
-#: ../../network/netconnect.pm_.c:45
-msgid "Configure the connection"
-msgstr "Nastavit pųipojenķ"
-
-#: ../../network/netconnect.pm_.c:50
-msgid "Internet connection & configuration"
-msgstr "Nastavenķ a pųipojenķ k internetu"
-
-#: ../../network/netconnect.pm_.c:100
-#, c-format
-msgid "We are now going to configure the %s connection."
-msgstr "Nynķ se pųipravuje konfigurace %s pųipojenķ."
-
-#: ../../network/netconnect.pm_.c:109
-#, c-format
-msgid ""
-"\n"
-"\n"
-"\n"
-"We are now going to configure the %s connection.\n"
-"\n"
-"\n"
-"Press OK to continue."
-msgstr ""
-"\n"
-"\n"
-"\n"
-"Nynķ se bude konfigurovat pųipojenķ %s.\n"
-"\n"
-"\n"
-"Stisknģte OK pro pokračovįnķ."
-
-#: ../../network/netconnect.pm_.c:138 ../../network/netconnect.pm_.c:252
-#: ../../network/netconnect.pm_.c:271 ../../network/tools.pm_.c:57
-msgid "Network Configuration"
-msgstr "Nastavenķ sķtģ"
-
-#: ../../network/netconnect.pm_.c:139
-msgid ""
-"Because you are doing a network installation, your network is already "
-"configured.\n"
-"Click on Ok to keep your configuration, or cancel to reconfigure your "
-"Internet & Network connection.\n"
-msgstr ""
-"Proto¾e provįdķte instalaci po sķti, je ji¾ sķ» nastavena.\n"
-"Kliknģte na Ok pro zachovįnķ nastavenķ nebo kliknģte na Zru¹it pro nové "
-"nastavenķ pųipojenķ Internetu a k sķti.\n"
-
-#: ../../network/netconnect.pm_.c:165
-msgid ""
-"Welcome to The Network Configuration Wizard\n"
-"\n"
-"We are about to configure your internet/network connection.\n"
-"If you don't want to use the auto detection, deselect the checkbox.\n"
-msgstr ""
-"Vķtį vįs prłvodce pųipojenķm k sķti\n"
-"\n"
-"Nynķ lze nastavit pųipojenķ k sķti nebo internetu.\n"
-"Pokud nechcete pou¾ķt automatickou detekci, odznačte polķčko.\n"
-
-#: ../../network/netconnect.pm_.c:167
-msgid "Choose the profile to configure"
-msgstr "Zvolte profil pro nastavenķ"
-
-#: ../../network/netconnect.pm_.c:168
-msgid "Use auto detection"
-msgstr "Pou¾ķt autodetekci"
-
-#: ../../network/netconnect.pm_.c:175
-msgid "Detecting devices..."
-msgstr "Detekuji zaųķzenķ..."
-
-#: ../../network/netconnect.pm_.c:186 ../../network/netconnect.pm_.c:195
-msgid "Normal modem connection"
-msgstr "Modemové pųipojenķ"
-
-#: ../../network/netconnect.pm_.c:186 ../../network/netconnect.pm_.c:195
-#, c-format
-msgid "detected on port %s"
-msgstr "detekovįno na portu %s"
-
-#: ../../network/netconnect.pm_.c:187 ../../network/netconnect.pm_.c:196
-msgid "ISDN connection"
-msgstr "ISDN pųipojenķ"
-
-#: ../../network/netconnect.pm_.c:187 ../../network/netconnect.pm_.c:196
-#, c-format
-msgid "detected %s"
-msgstr "detekovįno %s"
-
-#: ../../network/netconnect.pm_.c:188 ../../network/netconnect.pm_.c:197
-msgid "ADSL connection"
-msgstr "ADSL pųipojenķ"
-
-#: ../../network/netconnect.pm_.c:188 ../../network/netconnect.pm_.c:197
-#, c-format
-msgid "detected on interface %s"
-msgstr "detekovįno na rozhranķ %s"
-
-#: ../../network/netconnect.pm_.c:189 ../../network/netconnect.pm_.c:198
-msgid "Cable connection"
-msgstr "Kabelové pųipojenķ"
-
-#: ../../network/netconnect.pm_.c:189 ../../network/netconnect.pm_.c:198
-msgid "cable connection detected"
-msgstr "detekovįno kabelové pųipojenķ"
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-msgid "LAN connection"
-msgstr "Pųipojenķ k LAN"
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-msgid "ethernet card(s) detected"
-msgstr "detekovanį(é) sķ»ovį(é) karta(y)"
-
-#: ../../network/netconnect.pm_.c:202
-msgid "Choose the connection you want to configure"
-msgstr "Zvolte si pųipojenķ, které chcete nastavit"
-
-#: ../../network/netconnect.pm_.c:226
-msgid ""
-"You have configured multiple ways to connect to the Internet.\n"
-"Choose the one you want to use.\n"
-"\n"
-msgstr ""
-"Mįte nastaveno vķce zpłsobł, jak se pųipojit k Internetu.\n"
-"Vyberte si jeden, kterż chcete pou¾ķt.\n"
-"\n"
-
-#: ../../network/netconnect.pm_.c:227
-msgid "Internet connection"
-msgstr "Internetové pųipojenķ"
-
-#: ../../network/netconnect.pm_.c:233
-msgid "Do you want to start the connection at boot?"
-msgstr "Chcete se automaticky pųipojovat po startu počķtače?"
-
-#: ../../network/netconnect.pm_.c:247
-msgid "Network configuration"
-msgstr "Nastavenķ sķtģ"
-
-#: ../../network/netconnect.pm_.c:248
-msgid "The network needs to be restarted"
-msgstr "Je potųebné znovu spustit sķ»"
-
-#: ../../network/netconnect.pm_.c:252
-#, c-format
-msgid ""
-"A problem occured while restarting the network: \n"
-"\n"
-"%s"
-msgstr ""
-"Vyskytl se problém pųi restartu sķtģ: \n"
-"\n"
-"%s"
-
-#: ../../network/netconnect.pm_.c:261
-msgid ""
-"Congratulations, the network and Internet configuration is finished.\n"
-"The configuration will now be applied to your system.\n"
-"\n"
-msgstr ""
-"Gratulujeme, konfigurace sķtģ a internetu je ukončena.\n"
-"\n"
-"Konfigurace bude nynķ aktivovįna.\n"
-
-#: ../../network/netconnect.pm_.c:265
-msgid ""
-"After this is done, we recommend that you restart your X environment to "
-"avoid any hostname-related problems."
-msgstr ""
-"Doporučujeme po tomto kroku restartovat X Window,\n"
-"aby se pųede¹lo problémłm se zmģnou jména počķtače."
-
-#: ../../network/netconnect.pm_.c:266
-msgid ""
-"Problems occured during configuration.\n"
-"Test your connection via net_monitor or mcc. If your connection doesn't "
-"work, you might want to relaunch the configuration"
-msgstr ""
-"Vyskytl se problém bģhem konfigurace.\n"
-"Otestujte pųipojenķ k Internetu pomocķ net_monitor nebo mcc. Pokud nenķ "
-"spojenķ funkčnķ, bude potųeba asi znovu načķst konfiguraci"
-
-#: ../../network/network.pm_.c:292
-msgid ""
-"WARNING: This device has been previously configured to connect to the "
-"Internet.\n"
-"Simply accept to keep this device configured.\n"
-"Modifying the fields below will override this configuration."
-msgstr ""
-"VAROVĮNĶ: Toto zaųķzenķ ji¾ bylo nastaveno pro pųipojenķ k Internetu.\n"
-"Kliknģte na Ok pro zachovįnķ nastavenķ.\n"
-"Modifikace nįsledujķcķch polo¾ek pųepķ¹e toto nastavenķ."
-
-#: ../../network/network.pm_.c:297
-msgid ""
-"Please enter the IP configuration for this machine.\n"
-"Each item should be entered as an IP address in dotted-decimal\n"
-"notation (for example, 1.2.3.4)."
-msgstr ""
-"Prosķm zadejte IP nastavenķ pro tento počķtač.\n"
-"Ka¾dį polo¾ka musķ bżt zadįna jako IP adresa v 'desetinné' formģ\n"
-"(napųķklad 1.2.3.4)."
-
-#: ../../network/network.pm_.c:306 ../../network/network.pm_.c:307
-#, c-format
-msgid "Configuring network device %s"
-msgstr "Nastavuji sķ»ové zaųķzenķ %s"
-
-#: ../../network/network.pm_.c:307
-#, c-format
-msgid " (driver %s)"
-msgstr " (ovladač %s)"
-
-#: ../../network/network.pm_.c:309 ../../standalone/draknet_.c:232
-#: ../../standalone/draknet_.c:468
-msgid "IP address"
-msgstr "IP adresa"
-
-#: ../../network/network.pm_.c:310 ../../standalone/draknet_.c:469
-msgid "Netmask"
-msgstr "Maska sķtģ"
-
-#: ../../network/network.pm_.c:311
-msgid "(bootp/dhcp)"
-msgstr "(bootp/dhcp)"
-
-#: ../../network/network.pm_.c:311
-msgid "Automatic IP"
-msgstr "Automatickį IP"
-
-#: ../../network/network.pm_.c:332 ../../printerdrake.pm_.c:712
-msgid "IP address should be in format 1.2.3.4"
-msgstr "IP adresa musķ bżt ve formįtu 1.2.3.4"
-
-#: ../../network/network.pm_.c:361
-msgid ""
-"Please enter your host name.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''.\n"
-"You may also enter the IP address of the gateway if you have one"
-msgstr ""
-"Prosķm zadejte jméno va¹eho počķtače.\n"
-"Toto jméno musķ bżt śplné, jako 'mybox.mylab.myco.com'.\n"
-"Pokud pou¾ķvįte brįnu(gateway), mł¾ete také zadat jejķ adresu"
-
-#: ../../network/network.pm_.c:366
-msgid "DNS server"
-msgstr "DNS server"
-
-#: ../../network/network.pm_.c:367
-#, c-format
-msgid "Gateway (e.g. %s)"
-msgstr "Brįna (napų. %s)"
-
-#: ../../network/network.pm_.c:369
-msgid "Gateway device"
-msgstr "Zaųķzenķ brįny(gateway)"
-
-#: ../../network/network.pm_.c:381
-msgid "Proxies configuration"
-msgstr "Nastavenķ proxy"
-
-#: ../../network/network.pm_.c:382
-msgid "HTTP proxy"
-msgstr "HTTP proxy"
-
-#: ../../network/network.pm_.c:383
-msgid "FTP proxy"
-msgstr "FTP proxy"
-
-#: ../../network/network.pm_.c:384
-msgid "Track network card id (usefull for laptops)"
-msgstr "Sledovat id sķ»ové karty (u¾itečné u notebookł)"
-
-#: ../../network/network.pm_.c:387
-msgid "Proxy should be http://..."
-msgstr "Proxy by mģla bżt http://..."
-
-#: ../../network/network.pm_.c:388
-msgid "Proxy should be ftp://..."
-msgstr "Proxy by mģla bżt ftp://..."
-
-#: ../../network/tools.pm_.c:39
-msgid "Internet configuration"
-msgstr "Nastavenķ Internetu"
-
-#: ../../network/tools.pm_.c:40
-msgid "Do you want to try to connect to the Internet now?"
-msgstr "Chcete se nynķ pokusit pųipojit k internetu?"
-
-#: ../../network/tools.pm_.c:44 ../../standalone/draknet_.c:197
-msgid "Testing your connection..."
-msgstr "Testuji pųipojenķ k internetu..."
-
-#: ../../network/tools.pm_.c:50
-msgid "The system is now connected to Internet."
-msgstr "Počķtač je nynķ pųipojen k internetu"
-
-#: ../../network/tools.pm_.c:51
-msgid "For Security reason, it will be disconnected now."
-msgstr "Z bezpečnostnķch dłvodł bude spojenķ ukončeno."
-
-#: ../../network/tools.pm_.c:52
-msgid ""
-"The system doesn't seem to be connected to internet.\n"
-"Try to reconfigure your connection."
-msgstr ""
-"Nepodaųilo se pųipojit k Internetu.\n"
-"Pokuste se pųekonfigurovat dané pųipojenķ."
-
-#: ../../network/tools.pm_.c:76
-msgid "Connection Configuration"
-msgstr "Nastavenķ pųipojenķ"
-
-#: ../../network/tools.pm_.c:77
-msgid "Please fill or check the field below"
-msgstr "Prosķm vyplņte nebo zkontrolujte nįsledujķcķ śdaje"
-
-#: ../../network/tools.pm_.c:79 ../../standalone/draknet_.c:608
-msgid "Card IRQ"
-msgstr "IRQ karty"
-
-#: ../../network/tools.pm_.c:80 ../../standalone/draknet_.c:609
-msgid "Card mem (DMA)"
-msgstr "DMA karty"
-
-#: ../../network/tools.pm_.c:81 ../../standalone/draknet_.c:610
-msgid "Card IO"
-msgstr "IO karty"
-
-#: ../../network/tools.pm_.c:82 ../../standalone/draknet_.c:611
-msgid "Card IO_0"
-msgstr "IO_0 karty"
-
-#: ../../network/tools.pm_.c:83 ../../standalone/draknet_.c:612
-msgid "Card IO_1"
-msgstr "IO_1 karty"
-
-#: ../../network/tools.pm_.c:84 ../../standalone/draknet_.c:613
-msgid "Your personal phone number"
-msgstr "Va¹e osobnķ telefonnķ čķslo"
-
-#: ../../network/tools.pm_.c:85 ../../standalone/draknet_.c:614
-msgid "Provider name (ex provider.net)"
-msgstr "Jméno poskytovatele (napų provider.net)"
-
-#: ../../network/tools.pm_.c:86 ../../standalone/draknet_.c:615
-msgid "Provider phone number"
-msgstr "Telefonnķ čķslo poskytovatele"
-
-#: ../../network/tools.pm_.c:87 ../../standalone/draknet_.c:616
-msgid "Provider dns 1 (optional)"
-msgstr "DNS poskytovatele č.1 (volitelné)"
-
-#: ../../network/tools.pm_.c:88 ../../standalone/draknet_.c:617
-msgid "Provider dns 2 (optional)"
-msgstr "DNS poskytovatele č.2 (volitelné)"
-
-#: ../../network/tools.pm_.c:89
-msgid "Choose your country"
-msgstr "Vżbģr si zemi"
-
-#: ../../network/tools.pm_.c:90 ../../standalone/draknet_.c:620
-msgid "Dialing mode"
-msgstr "Typ vytįčenķ"
-
-#: ../../network/tools.pm_.c:91 ../../standalone/draknet_.c:632
-msgid "Connection speed"
-msgstr "Rychlost pųipojenķ"
-
-#: ../../network/tools.pm_.c:92 ../../standalone/draknet_.c:633
-msgid "Connection timeout (in sec)"
-msgstr "Prodleva pųipojenķ (vteųiny)"
-
-#: ../../network/tools.pm_.c:93 ../../standalone/draknet_.c:618
-msgid "Account Login (user name)"
-msgstr "Vį¹ śčet (u¾ivatelské jméno)"
-
-#: ../../network/tools.pm_.c:94 ../../standalone/draknet_.c:619
-msgid "Account Password"
-msgstr "Heslo va¹eho śčtu"
-
-#: ../../partition_table.pm_.c:600
-msgid "mount failed: "
-msgstr "chyba pųipojovįnķ: "
-
-#: ../../partition_table.pm_.c:664
-msgid "Extended partition not supported on this platform"
-msgstr "Roz¹ķųené diskové oddķly nejsou na tomto systému podporovįny"
-
-#: ../../partition_table.pm_.c:682
-msgid ""
-"You have a hole in your partition table but I can't use it.\n"
-"The only solution is to move your primary partitions to have the hole next "
-"to the extended partitions"
-msgstr ""
-"Ve tabulce diskovżch oddķlł je mezera, ale nemohu ji pou¾ķt.\n"
-"Jediné ųe¹enķ je pųesunout primįrnķ oddķly tak, abyste mģli mezeru vedle\n"
-"roz¹ķųenżch oddķlł."
-
-#: ../../partition_table.pm_.c:770
-#, c-format
-msgid "Restoring from file %s failed: %s"
-msgstr "Obnova ze souboru %s neuspģla: %s"
-
-#: ../../partition_table.pm_.c:772
-msgid "Bad backup file"
-msgstr "©patnż zįlo¾nķ soubor"
-
-#: ../../partition_table.pm_.c:794
-#, c-format
-msgid "Error writing to file %s"
-msgstr "Chyba pųi zapisovįnķ do souboru %s"
-
-#: ../../partition_table_raw.pm_.c:186
-msgid ""
-"Something bad is happening on your drive. \n"
-"A test to check the integrity of data has failed. \n"
-"It means writing anything on the disk will end up with random trash"
-msgstr ""
-"Nģco ¹patného se stalo s pevnżm diskem. \n"
-"Test na integritu dat selhal. \n"
-"To znamenį, ¾e zįpis na tento disk mł¾e skončit nepųedvķdanģ"
-
-#: ../../pkgs.pm_.c:24
-msgid "must have"
-msgstr "musķte mķt"
-
-#: ../../pkgs.pm_.c:25
-msgid "important"
-msgstr "dłle¾ité"
-
-#: ../../pkgs.pm_.c:26
-msgid "very nice"
-msgstr "nejménģ dłle¾ité"
-
-#: ../../pkgs.pm_.c:27
-msgid "nice"
-msgstr "nedłle¾ité"
-
-#: ../../pkgs.pm_.c:28
-msgid "maybe"
-msgstr "mł¾e se hodit"
-
-#: ../../printer.pm_.c:23
-msgid "CUPS - Common Unix Printing System"
-msgstr "CUPS - Tiskovż Systém pro Unix"
-
-#: ../../printer.pm_.c:24
-msgid "LPRng - LPR New Generation"
-msgstr "LPRng - LPR Nové generace"
-
-#: ../../printer.pm_.c:25
-msgid "LPD - Line Printer Daemon"
-msgstr "LPD - Démon pro tiskįrny"
-
-#: ../../printer.pm_.c:26
-msgid "PDQ - Print, Don't Queue"
-msgstr "PDQ - Tisk bez uklįdįnķ do fronty"
-
-#: ../../printer.pm_.c:32 ../../printer.pm_.c:871
-msgid "CUPS"
-msgstr "CUPS"
-
-#: ../../printer.pm_.c:33
-msgid "LPRng"
-msgstr "LPRng"
-
-#: ../../printer.pm_.c:34
-msgid "LPD"
-msgstr "LPD"
-
-#: ../../printer.pm_.c:35
-msgid "PDQ"
-msgstr "PDQ"
-
-#: ../../printer.pm_.c:47
-msgid "Local printer"
-msgstr "Mķstnķ tiskįrna"
-
-#: ../../printer.pm_.c:48
-msgid "Remote printer"
-msgstr "Vzdįlenį tiskįrna"
-
-#: ../../printer.pm_.c:49
-msgid "Printer on remote CUPS server"
-msgstr "Tiskįrna na vzdįleném CUPS serveru"
-
-#: ../../printer.pm_.c:50 ../../printerdrake.pm_.c:734
-msgid "Printer on remote lpd server"
-msgstr "Tiskįrna na vzdįlenż lpd serveru"
-
-#: ../../printer.pm_.c:51
-msgid "Network printer (TCP/Socket)"
-msgstr "Sķ»ovį tiskįrna (TCP/Socket)"
-
-#: ../../printer.pm_.c:52
-msgid "Printer on SMB/Windows 95/98/NT server"
-msgstr "Tiskįrna na serveru Windows 95/98/NT"
-
-#: ../../printer.pm_.c:53
-msgid "Printer on NetWare server"
-msgstr "Tiskįrna na Netware serveru"
-
-#: ../../printer.pm_.c:54 ../../printerdrake.pm_.c:738
-msgid "Enter a printer device URI"
-msgstr "Zadejte URI tiskového zaųķzenķ"
-
-#: ../../printer.pm_.c:55
-msgid "Pipe job into a command"
-msgstr "Poslat tiskovou ślohu do pųķkazu"
-
-#: ../../printer.pm_.c:504 ../../printer.pm_.c:695 ../../printer.pm_.c:1017
-#: ../../printerdrake.pm_.c:1665 ../../printerdrake.pm_.c:2730
-msgid "Unknown model"
-msgstr "Neznįmż model"
-
-#: ../../printer.pm_.c:532
-msgid "Local Printers"
-msgstr "Mķstnķ tiskįrny"
-
-#: ../../printer.pm_.c:534 ../../printer.pm_.c:872
-msgid "Remote Printers"
-msgstr "Vzdįlené tiskįrny"
-
-#: ../../printer.pm_.c:541 ../../printerdrake.pm_.c:248
-#, c-format
-msgid " on parallel port \\/*%s"
-msgstr " na paralelnķm portu \\/*%s"
-
-#: ../../printer.pm_.c:544 ../../printerdrake.pm_.c:250
-#, c-format
-msgid ", USB printer \\/*%s"
-msgstr ", USB tiskįrna \\/*%s"
-
-#: ../../printer.pm_.c:549
-#, c-format
-msgid ", multi-function device on parallel port \\/*%s"
-msgstr ", multifunkčnķ na paralelnķm portu \\/*%s"
-
-#: ../../printer.pm_.c:552
-msgid ", multi-function device on USB"
-msgstr ", multifunkčnķ zaųķzenķ na USB"
-
-#: ../../printer.pm_.c:554
-msgid ", multi-function device on HP JetDirect"
-msgstr ", multifunkčnķ zaųķzenķ na HP JetDirect"
-
-#: ../../printer.pm_.c:556
-msgid ", multi-function device"
-msgstr ", multifunkčnķ zaųķzenķ"
-
-#: ../../printer.pm_.c:559
-#, c-format
-msgid ", printing to %s"
-msgstr ", pųi tisku na %s"
-
-#: ../../printer.pm_.c:561
-#, c-format
-msgid "on LPD server \"%s\", printer \"%s\""
-msgstr "na LPD serveru \"%s\", tiskįrna \"%s\""
-
-#: ../../printer.pm_.c:563
-#, c-format
-msgid ", TCP/IP host \"%s\", port %s"
-msgstr ", TCP/IP hostitel \"%s\", port %s"
-
-#: ../../printer.pm_.c:567
-#, c-format
-msgid "on Windows server \"%s\", share \"%s\""
-msgstr "na serveru Windows \"%s\", sdķlenį jako \"%s\""
-
-#: ../../printer.pm_.c:571
-#, c-format
-msgid "on Novell server \"%s\", printer \"%s\""
-msgstr "na severu Novell \"%s\", tiskįrna \"%s\""
-
-#: ../../printer.pm_.c:573
-#, c-format
-msgid ", using command %s"
-msgstr ", pou¾ķvį pųķkaz %s"
-
-#: ../../printer.pm_.c:692 ../../printerdrake.pm_.c:1136
-msgid "Raw printer (No driver)"
-msgstr "Pųķmż tisk (bez ovladače)"
-
-#: ../../printer.pm_.c:841
-#, c-format
-msgid "(on %s)"
-msgstr "(na %s)"
-
-#: ../../printer.pm_.c:843
-msgid "(on this machine)"
-msgstr "(na tomto počķtači)"
-
-#: ../../printer.pm_.c:868
-#, c-format
-msgid "On CUPS server \"%s\""
-msgstr "Na serveru CUPS \"%s\""
-
-#: ../../printer.pm_.c:874 ../../printerdrake.pm_.c:2391
-#: ../../printerdrake.pm_.c:2402 ../../printerdrake.pm_.c:2618
-#: ../../printerdrake.pm_.c:2670 ../../printerdrake.pm_.c:2697
-#: ../../printerdrake.pm_.c:2867 ../../printerdrake.pm_.c:2869
-msgid " (Default)"
-msgstr " (Vżchozķ)"
-
-#: ../../printerdrake.pm_.c:22
-msgid "Select Printer Connection"
-msgstr "Zvolte pųipojenķ tiskįrny"
-
-#: ../../printerdrake.pm_.c:23
-msgid "How is the printer connected?"
-msgstr "Jak je tiskįrna pųipojena?"
-
-#: ../../printerdrake.pm_.c:25
-msgid ""
-"\n"
-"Printers on remote CUPS servers you do not have to configure here; these "
-"printers will be automatically detected."
-msgstr ""
-"\n"
-"V pųķpadģ vzdįleného CUPS serveru nemusķte nastavovat tiskįrny zde,\n"
-"tiskįrny budou automaticky detekovįny."
-
-#: ../../printerdrake.pm_.c:69 ../../printerdrake.pm_.c:2454
-msgid "CUPS configuration"
-msgstr "Nastavenķ CUPS"
-
-#: ../../printerdrake.pm_.c:70 ../../printerdrake.pm_.c:2455
-msgid "Specify CUPS server"
-msgstr "Zadejte CUPS server"
-
-#: ../../printerdrake.pm_.c:71
-msgid ""
-"To get access to printers on remote CUPS servers in your local network you "
-"do not have to configure anything; the CUPS servers inform your machine "
-"automatically about their printers. All printers currently known to your "
-"machine are listed in the \"Remote printers\" section in the main window of "
-"Printerdrake. When your CUPS server is not in your local network, you have "
-"to enter the CUPS server IP address and optionally the port number to get "
-"the printer information from the server, otherwise leave these fields blank."
-msgstr ""
-"Pųi tisku na vzdįlenż CUPS server v lokįlnķ sķti nenķ potųeba nic "
-"nastavovat, CUPS server bude automaticky informovat o jeho tiskįrnįch. "
-"V¹echny znįmé tiskįrny pro tento počķtač jsou nynķ vypsįny v poli \"Vzdįlené "
-"tiskįrny\". v hlavnķ sekci nįstroje Printerdrake. Pokud je CUPS na jiné "
-"sķti, musķte pro zķskįnķ informacķ zadat IP adresu CUPS serveru a také "
-"pųķpadnģ čķslo portu, jinak nechte toto pole prįzdné."
-
-#: ../../printerdrake.pm_.c:72
-msgid ""
-"\n"
-"Normally, CUPS is automatically configured according to your network "
-"environment, so that you can access the printers on the CUPS servers in your "
-"local network. If this does not work correctly, turn off \"Automatic CUPS "
-"configuration\" and edit your file /etc/cups/cupsd.conf manually. Do not "
-"forget to restart CUPS afterwards (command: \"service cups restart\")."
-msgstr ""
-"\n"
-"Ve vģt¹inģ pųķpadł je CUPS automaticky sprįvnģ nastaven v zįvislosti na\n"
-"sķ»ovém prostųedķ tak, aby bylo mo¾né tisknout na tiskįrnįch umķstģnżch\n"
-"na CUPS serverech v sķti. Pokud je nastavenķ nesprįvné, vypnģte\n"
-"\"Automatické nastavenķ pro CUPS\" a editujte soubor /etc/cups/cupsd.conf\n"
-"ručnģ. Nezapomeņte potom CUPS restartovat (pųķkaz: \"service cups restart\")."
-
-#: ../../printerdrake.pm_.c:76
-msgid "The IP address should look like 192.168.1.20"
-msgstr "IP adresa musķ bżt ve formįtu 192.168.1.20"
-
-#: ../../printerdrake.pm_.c:80 ../../printerdrake.pm_.c:862
-msgid "The port number should be an integer!"
-msgstr "Čķslo portu musķ bżt celé čķslo!"
-
-#: ../../printerdrake.pm_.c:87
-msgid "CUPS server IP"
-msgstr "IP adresa CUPS serveru"
-
-#: ../../printerdrake.pm_.c:88 ../../printerdrake.pm_.c:855
-msgid "Port"
-msgstr "Port"
-
-#: ../../printerdrake.pm_.c:90
-msgid "Automatic CUPS configuration"
-msgstr "Automatické nastavenķ pro CUPS"
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-msgid "Detecting devices ..."
-msgstr "Detekuji zaųķzenķ ..."
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-msgid "Test ports"
-msgstr "Otestovat porty"
-
-#: ../../printerdrake.pm_.c:167 ../../printerdrake.pm_.c:2437
-#: ../../printerdrake.pm_.c:2556
-msgid "Add a new printer"
-msgstr "Pųidat novou tiskįrnu"
-
-#: ../../printerdrake.pm_.c:168
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard allows you to install local or remote printers to be used from "
-"this machine and also from other machines in the network.\n"
-"\n"
-"It asks you for all necessary information to set up the printer and gives "
-"you access to all available printer drivers, driver options, and printer "
-"connection types."
-msgstr ""
-"\n"
-"Vķtejte v prłvodci nastavenķm tisku\n"
-"\n"
-"Tento prłvodce vįm pomł¾e nainstalovat lokįlnķ nebo vzdįlené tiskįrnu(y), "
-"které je mo¾né nįslednģ vyu¾ķt na vzdįleném počķtači na sķti.\n"
-"\n"
-"Budete dotįzįni na v¹echny potųebné informace pro nastavenķ tiskįrny, mł¾ete "
-"si vybrat se v¹ech tiskovżch ovladačł a typł pųipojenķ tiskįrny."
-
-#: ../../printerdrake.pm_.c:176 ../../printerdrake.pm_.c:203
-#: ../../printerdrake.pm_.c:378 ../../printerdrake.pm_.c:393
-#: ../../printerdrake.pm_.c:403 ../../printerdrake.pm_.c:466
-msgid "Local Printer"
-msgstr "Mķstnķ tiskįrna"
-
-#: ../../printerdrake.pm_.c:177
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard will help you to install your printer(s) connected to this "
-"computer.\n"
-"\n"
-"Please plug in your printer(s) on this computer and turn it/them on. Click "
-"on \"Next\" when you are ready, and on \"Cancel\" when you do not want to "
-"set up your printer(s) now.\n"
-"\n"
-"Note that some computers can crash during the printer auto-detection, turn "
-"off \"Auto-detect printers\" to do a printer installation without auto-"
-"detection. Use the \"Expert Mode\" of printerdrake when you want to set up "
-"printing on a remote printer if printerdrake does not list it automatically."
-msgstr ""
-"\n"
-"Vķtejte v prłvodci nastavenķm tisku\n"
-"\n"
-"Tento prłvodce vįm pomł¾e nainstalovat tiskįrnu(y), kterį je pųipojena k "
-"tomuto počķtači.\n"
-"\n"
-"Pųipojte prosķm tiskįrnu(y) k počķtači a zapnģte ji. Pokud je v¹e "
-"pųipraveno, kliknģte na tlačķtko \"Dal¹ķ\" nebo na tlačķtko \"Zru¹it\", "
-"pokud tiskįrnu nechcete nynķ nastavit.\n"
-"\n"
-"Mł¾e se stįt, ¾e nģkteré počķtače mohou zatuhnout pųi automatické detekci a "
-"tehdy lze pou¾ķt \"Expertnķ re¾im\" pro instalaci bez automatické detekce. "
-"\"Expertnķ re¾im\" pou¾ijte také tehdy, pokud chcete nastavit vzdįlenou "
-"tiskįrnu(y) a printerdrake ji/je automaticky nenabķdnul."
-
-#: ../../printerdrake.pm_.c:186
-msgid "Auto-detect printers"
-msgstr "Automatickį detekce tiskįren"
-
-#: ../../printerdrake.pm_.c:204
-msgid ""
-"\n"
-"Congratulations, your printer is now installed and configured!\n"
-"\n"
-"You can print using the \"Print\" command of your application (usually in "
-"the \"File\" menu).\n"
-"\n"
-"If you want to add, remove, or rename a printer, or if you want to change "
-"the default option settings (paper input tray, printout quality, ...), "
-"select \"Printer\" in the \"Hardware\" section of the Mandrake Control "
-"Center."
-msgstr ""
-"\n"
-"Blahopųejeme, tiskįrna je instalovįna a nastavena!\n"
-"\n"
-"Tisknout z aplikacķ lze pųķkazem \"Tisk\" (obyčejnģ v menu \"Soubor\").\n"
-"\n"
-"Pokud chcete pųidat, odebrat, pųejmenovat tiskįrnu nebo zmģnit jejķ vżchozķ "
-"hodnoty (typ zįsobnķku, kvalita tisku,...), zvolte \"Tiskįrna\" v sekci "
-"\"Hardware\" v ųķdķcķm centru Mandrake."
-
-#: ../../printerdrake.pm_.c:223
-msgid "Auto-Detection of Printers"
-msgstr "Automatickį detekce tiskįren"
-
-#: ../../printerdrake.pm_.c:224
-msgid ""
-"Printerdrake is able to auto-detect your locally connected parallel and USB "
-"printers for you, but note that on some systems the auto-detection CAN "
-"FREEZE YOUR SYSTEM AND THIS CAN LEAD TO CORRUPTED FILE SYSTEMS! So do it ON "
-"YOUR OWN RISK!\n"
-"\n"
-"Do you really want to get your printers auto-detected?"
-msgstr ""
-"Printerdrake dokį¾e automaticky detekovat tiskįrny pųipojené pųes paralelnķ "
-"nebo USB rozhranķ, ale na nģkterżch systémech mł¾e automatickį detekce "
-"ZMRAZIT SYSTÉM A TAKÉ PO©KODIT SOUBORY! Provįdķte to tedy na VLASTNĶ "
-"NEBEZPEČĶ!\n"
-"\n"
-"Chcete opravdu pou¾ķt automatickou detekci tiskįrny?"
-
-#: ../../printerdrake.pm_.c:227 ../../printerdrake.pm_.c:229
-#: ../../printerdrake.pm_.c:230
-msgid "Do auto-detection"
-msgstr "Provést autodetekci"
-
-#: ../../printerdrake.pm_.c:228
-msgid "Set up printer manually"
-msgstr "Nastavit tiskįrnu manuįlnģ"
-
-#: ../../printerdrake.pm_.c:256
-#, c-format
-msgid "Detected %s"
-msgstr "Detekovįno %s"
-
-#: ../../printerdrake.pm_.c:260 ../../printerdrake.pm_.c:287
-#: ../../printerdrake.pm_.c:306
-#, c-format
-msgid "Printer on parallel port \\/*%s"
-msgstr "Tiskįrna na paralelnķm portu \\/*%s"
-
-#: ../../printerdrake.pm_.c:262 ../../printerdrake.pm_.c:289
-#: ../../printerdrake.pm_.c:311
-#, c-format
-msgid "USB printer \\/*%s"
-msgstr "USB tiskįrna \\/*%s"
-
-#: ../../printerdrake.pm_.c:379
-msgid ""
-"No local printer found! To manually install a printer enter a device name/"
-"file name in the input line (Parallel Ports: /dev/lp0, /dev/lp1, ..., "
-"equivalent to LPT1:, LPT2:, ..., 1st USB printer: /dev/usb/lp0, 2nd USB "
-"printer: /dev/usb/lp1, ...)."
-msgstr ""
-"Lokįlnķ tiskįrna nenalezena! Pro ručnķ instalaci tiskįrny zadejte jméno "
-"zaųķzenķ/souboru do polķčka (Paralelnķ porty: /dev/lp0, /dev/lp1,... jsou "
-"ekvivalentnķ LPT1:, LPT2:, ...,prvnķ USB tiskįrna: /dev/usb/lp0, druhį USB "
-"tiskįrna: /dev/usb/lp1,...)."
-
-#: ../../printerdrake.pm_.c:383
-msgid "You must enter a device or file name!"
-msgstr "Musķte zadat zaųķzenķ nebo jméno souboru!"
-
-#: ../../printerdrake.pm_.c:394
-msgid ""
-"No local printer found!\n"
-"\n"
-msgstr ""
-"Mķstnķ tiskįrna nenalezena!\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:395
-msgid ""
-"Network printers can only be installed after the installation. Choose "
-"\"Hardware\" and then \"Printer\" in the Mandrake Control Center."
-msgstr ""
-"Sķ»ové tiskįrny mohou bżt nainstalovįny a¾ po instalaci systému. V ųķdķcķm "
-"centru Mandrake vyberte \"Hardware\" a potom \"Tiskįrna\"."
-
-#: ../../printerdrake.pm_.c:396
-msgid ""
-"To install network printers, click \"Cancel\", switch to the \"Expert Mode"
-"\", and click \"Add a new printer\" again."
-msgstr ""
-"Pro instalaci sķ»ovżch tiskįren kliknģte nejdųķve na \"Zru¹it\", pųejdģte do "
-"\"Expertnķho re¾imu\" a potom opģt kliknģte na \"Pųidat novou tiskįrnu\"."
-
-#: ../../printerdrake.pm_.c:407
-msgid ""
-"The following printer was auto-detected, if it is not the one you want to "
-"configure, enter a device name/file name in the input line"
-msgstr ""
-"Tyto tiskįrny byly automaticky detekovįny, pokud nenķ mezi nimi po¾adovanį "
-"tiskįrna, zadejte do polķčka jméno zaųķzenķ/jméno souboru"
-
-#: ../../printerdrake.pm_.c:408
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up or enter a device name/file name in the input line"
-msgstr ""
-"Zde je seznam v¹ech automaticky rozpoznanżch tiskįren. Vyberte si tiskįrnu, "
-"kterou chcete nastavit nebo zadejte do polķčka jméno zaųķzenķ/jméno souboru"
-
-#: ../../printerdrake.pm_.c:410
-msgid ""
-"The following printer was auto-detected. The configuration of the printer "
-"will work fully automatically. If your printer was not correctly detected or "
-"if you prefer a customized printer configuration, turn on \"Manual "
-"configuration\"."
-msgstr ""
-"Byla automaticky detekovįna tato tiskįrna. Konfigurace této tiskįrny je plnģ "
-"automatickį. Pokud nebyla tiskįrna sprįvnģ detekovįna nebo preferujete "
-"vlastnķ nastavenķ tisku, zvolte \"Ručnķ konfigurace\"."
-
-#: ../../printerdrake.pm_.c:411
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up. The configuration of the printer will work fully "
-"automatically. If your printer was not correctly detected or if you prefer a "
-"customized printer configuration, turn on \"Manual configuration\"."
-msgstr ""
-"Tyto tiskįrny byly automaticky detekovįny. Konfigurace tģchto tiskįren je "
-"plnģ automatickį. Pokud nebyla tiskįrna sprįvnģ detekovįna nebo preferujete "
-"vlastnķ nastavenķ tisku, zvolte \"Ručnķ konfigurace\"."
-
-#: ../../printerdrake.pm_.c:413
-msgid ""
-"Please choose the port where your printer is connected to or enter a device "
-"name/file name in the input line"
-msgstr ""
-"Vyberte si port, ke kterému je tiskįrna pųipojena nebo zadejte do polķčka "
-"jméno zaųķzenķ/jméno souboru"
-
-#: ../../printerdrake.pm_.c:414
-msgid "Please choose the port where your printer is connected to."
-msgstr "Vyberte port, ke kterému je va¹e tiskįrna pųipojena."
-
-#: ../../printerdrake.pm_.c:416
-msgid ""
-" (Parallel Ports: /dev/lp0, /dev/lp1, ..., equivalent to LPT1:, LPT2:, ..., "
-"1st USB printer: /dev/usb/lp0, 2nd USB printer: /dev/usb/lp1, ...)."
-msgstr ""
-" (Paralelnķ porty: /dev/lp0, /dev/lp1,... je ekvivalentnķ LPT1:, LPT2:, ...,"
-"prvnķ USB tiskįrna: /dev/usb/lp0, druhį USB tiskįrna: /dev/usb/lp1,...)."
-
-#: ../../printerdrake.pm_.c:421
-msgid "You must choose/enter a printer/device!"
-msgstr "Musķte vybrat/zadat tiskįrnu/zaųķzenķ!"
-
-#: ../../printerdrake.pm_.c:441
-msgid "Manual configuration"
-msgstr "Ručnķ nastavenķ"
-
-#: ../../printerdrake.pm_.c:467
-msgid ""
-"Is your printer a multi-function device from HP (OfficeJet, PSC, PhotoSmart, "
-"LaserJet 1100/1200/1220/3200/3300 with scanner)?"
-msgstr ""
-"Je va¹e tiskįrna multifunkčnķ zaųķzenķ od HP (OfficeJet, PSC, PhotoSmart "
-"LaserJet 1100/1200/1220/3200/3300 se skenerem)?"
-
-#: ../../printerdrake.pm_.c:482
-msgid "Installing HPOJ package..."
-msgstr "Instaluji balķček HPOJ..."
-
-#: ../../printerdrake.pm_.c:487
-msgid "Checking device and configuring HPOJ ..."
-msgstr "Testujķ zaųķzenķ a nastavuji HPOJ..."
-
-#: ../../printerdrake.pm_.c:505
-msgid "Installing SANE package..."
-msgstr "Instaluji balķček SANE..."
-
-#: ../../printerdrake.pm_.c:517
-msgid "Scanning on your HP multi-function device"
-msgstr "Skenovįnķ na multifunkčnķm zaųķzenķ od HP"
-
-#: ../../printerdrake.pm_.c:534
-msgid "Making printer port available for CUPS ..."
-msgstr "Zpųķstupņuji tiskovż port pro CUPS ..."
-
-#: ../../printerdrake.pm_.c:544 ../../printerdrake.pm_.c:1018
-#: ../../printerdrake.pm_.c:1132
-msgid "Reading printer database ..."
-msgstr "Načķtįm databįzi tiskįren ..."
-
-#: ../../printerdrake.pm_.c:624
-msgid "Remote lpd Printer Options"
-msgstr "Mo¾nosti vzdįlené lpd tiskįrny"
-
-#: ../../printerdrake.pm_.c:625
-msgid ""
-"To use a remote lpd printer, you need to supply the hostname of the printer "
-"server and the printer name on that server."
-msgstr ""
-"Abyste mohli pou¾ķvat vzdįlenou tiskovou frontu lpd, musķte zadat jméno "
-"tiskového serveru a jméno tiskįrny, kam mį bżt posķlįn tisk."
-
-#: ../../printerdrake.pm_.c:626
-msgid "Remote host name"
-msgstr "Jméno vzdįleného počķtače"
-
-#: ../../printerdrake.pm_.c:627
-msgid "Remote printer name"
-msgstr "Jméno vzdįlené tiskįrny"
-
-#: ../../printerdrake.pm_.c:630
-msgid "Remote host name missing!"
-msgstr "Chybķ jméno vzdįleného počķtače!"
-
-#: ../../printerdrake.pm_.c:634
-msgid "Remote printer name missing!"
-msgstr "Chybķ jméno vzdįlené tiskįrny!"
-
-#: ../../printerdrake.pm_.c:702
-msgid "SMB (Windows 9x/NT) Printer Options"
-msgstr "Mo¾nosti SMB (Windows 9x/NT) tiskįrny"
-
-#: ../../printerdrake.pm_.c:703
-msgid ""
-"To print to a SMB printer, you need to provide the SMB host name (Note! It "
-"may be different from its TCP/IP hostname!) and possibly the IP address of "
-"the print server, as well as the share name for the printer you wish to "
-"access and any applicable user name, password, and workgroup information."
-msgstr ""
-"Abyste mohli tisknout na SMB tiskįrnģ, musķte zadat jméno SMB počķtače"
-"(Pozor! To mł¾e bżt odli¹né od jeho TCP/IP jména) a mo¾nį i IP adresu "
-"tiskového serveru, jméno sdķlené tiskįrny, vhodné u¾ivatelské jméno, heslo a "
-"informace o pracovnķ skupinģ."
-
-#: ../../printerdrake.pm_.c:704
-msgid "SMB server host"
-msgstr "Jméno SMB serveru"
-
-#: ../../printerdrake.pm_.c:705
-msgid "SMB server IP"
-msgstr "IP adresa SMB serveru"
-
-#: ../../printerdrake.pm_.c:706
-msgid "Share name"
-msgstr "Sdķlené jméno"
-
-#: ../../printerdrake.pm_.c:709
-msgid "Workgroup"
-msgstr "Pracovnķ skupina"
-
-#: ../../printerdrake.pm_.c:716
-msgid "Either the server name or the server's IP must be given!"
-msgstr "Musķ bżt zadįno buļ jméno serveru nebo jeho IP adresa!"
-
-#: ../../printerdrake.pm_.c:720
-msgid "Samba share name missing!"
-msgstr "Chybķ jméno pro sdķlenķ pųes Sambu!"
-
-#: ../../printerdrake.pm_.c:725
-msgid "SECURITY WARNING!"
-msgstr "BEZPEČNOSTNĶ VAROVĮNĶ!"
-
-#: ../../printerdrake.pm_.c:726
-#, c-format
-msgid ""
-"You are about to set up printing to a Windows account with password. Due to "
-"a fault in the architecture of the Samba client software the password is put "
-"in clear text into the command line of the Samba client used to transmit the "
-"print job to the Windows server. So it is possible for every user on this "
-"machine to display the password on the screen by issuing commands as \"ps "
-"auxwww\".\n"
-"\n"
-"We recommend to make use of one of the following alternatives (in all cases "
-"you have to make sure that only machines from your local network have access "
-"to your Windows server, for example by means of a firewall):\n"
-"\n"
-"Use a password-less account on your Windows server, as the \"GUEST\" account "
-"or a special account dedicated for printing. Do not remove the password "
-"protection from a personal account or the administrator account.\n"
-"\n"
-"Set up your Windows server to make the printer available under the LPD "
-"protocol. Then set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-"Provįdķte nastavenķ tisku s śčtem na systému Windows. Kvłli chybģ v klientu "
-"protokolu Samba je heslo pųi tisku poslįno jako čistż text z pųķkazové "
-"ųadky. Je tudķ¾ mo¾né, aby kdokoliv vidģl toto heslo na obrazovce kdy¾ si "
-"zadį pųķkaz napų. \"ps auxwww\".\n"
-"\n"
-"Doporučujeme pou¾ķvat jednu z nįsledujķcķch alternativ (ve v¹ech pųķpadech "
-"je dobré mķt nastaven pųķstup pouze z počķtačł z lokįlnķ sķtģ, respektivģ za "
-"firewalem):\n"
-"\n"
-"Pou¾ķt śčet, kterż nemį nastaven ¾įdné heslo, jako je \"GUEST\" nebo "
-"speciįlnķ śčet pouze pro śčely tisku. Neodstraņujte ochranu heslem z bģ¾ného "
-"śčtu nebo dokonce z administrįtorského śčtu.\n"
-"\n"
-"Nastavte tiskįrnu na Windows serveru tak, aby fungovala pod LPD protokolem. "
-"Potom nastavte tisk na této tiskįrnģ pomocķ typy spojenķ \"%s\" v aplikaci "
-"Printerdrake.\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:736
-#, c-format
-msgid ""
-"Set up your Windows server to make the printer available under the IPP "
-"protocol and set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-"Nastavit na serveru s Windows tiskįrnu, kterį bude pųķstupnį pomocķ IPP "
-"protokolu a nastavit tisk z tohoto počķtače pomocķ spojenķ \"%s\" v aplikaci "
-"Printerdrake.\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:739
-msgid ""
-"Connect your printer to a Linux server and let your Windows machine(s) "
-"connect to it as a client.\n"
-"\n"
-"Do you really want to continue setting up this printer as you are doing now?"
-msgstr ""
-"Pųipojit tiskįrnu k Linux serveru a nechat počķtač(e) s Windows pracovat "
-"jako klienty.\n"
-"\n"
-"Chcete opravdu pokračovat v nastavenķ tiskįrny tķmto zpłsobem?"
-
-#: ../../printerdrake.pm_.c:801
-msgid "NetWare Printer Options"
-msgstr "Mo¾nosti NetWare tiskįrny"
-
-#: ../../printerdrake.pm_.c:802
-msgid ""
-"To print on a NetWare printer, you need to provide the NetWare print server "
-"name (Note! it may be different from its TCP/IP hostname!) as well as the "
-"print queue name for the printer you wish to access and any applicable user "
-"name and password."
-msgstr ""
-"Abyste mohli tisknout na NetWare tiskįrnģ, musķte zadat jméno NetWare "
-"serveru (Pozor! To mł¾e bżt odli¹né od jeho jména pro TCP/IP!), jméno "
-"tiskové fronty tiskįrny, kterou chcete pou¾ķvat, u¾ivatelské jméno a heslo."
-
-#: ../../printerdrake.pm_.c:803
-msgid "Printer Server"
-msgstr "Tiskovż server"
-
-#: ../../printerdrake.pm_.c:804
-msgid "Print Queue Name"
-msgstr "Jméno tiskové fronty"
-
-#: ../../printerdrake.pm_.c:809
-msgid "NCP server name missing!"
-msgstr "Chybķ jméno pro sdķlenķ pųes NCP!"
-
-#: ../../printerdrake.pm_.c:813
-msgid "NCP queue name missing!"
-msgstr "Chybķ jméno tiskové fronty pro NCP!"
-
-#: ../../printerdrake.pm_.c:852
-msgid "TCP/Socket Printer Options"
-msgstr "Mo¾nosti tiskįrny pro TCP/socket"
-
-#: ../../printerdrake.pm_.c:853
-msgid ""
-"To print to a TCP or socket printer, you need to provide the host name of "
-"the printer and optionally the port number. On HP JetDirect servers the port "
-"number is usually 9100, on other servers it can vary. See the manual of your "
-"hardware."
-msgstr ""
-"Abyste mohli tisknout na TCP nebo socketové tiskįrnģ, musķte zadat jméno "
-"počķtače s tiskįrnou a volitelnģ i čķslo portu. Pokud mįte HP JetDirect, "
-"port je obvykle 9100, jinak se mł¾e mģnit. Podķvejte do manuįlu k va¹emu "
-"hardware."
-
-#: ../../printerdrake.pm_.c:854
-msgid "Printer host name"
-msgstr "Jméno počķtače s tiskįrnou"
-
-#: ../../printerdrake.pm_.c:858
-msgid "Printer host name missing!"
-msgstr "Chybķ jméno počķtače s tiskįrnou!"
-
-#: ../../printerdrake.pm_.c:887 ../../printerdrake.pm_.c:889
-msgid "Printer Device URI"
-msgstr "URI Tiskového Zaųķzenķ"
-
-#: ../../printerdrake.pm_.c:888
-msgid ""
-"You can specify directly the URI to access the printer. The URI must fulfill "
-"either the CUPS or the Foomatic specifications. Note that not all URI types "
-"are supported by all the spoolers."
-msgstr ""
-"Zde lze pųķmo zadat URI pro pųķstup k tiskįrnģ. URI musķ splņovat buļ "
-"specifikaci CUPS nebo Foomatic. Taky pamatujte na to, ¾e v¹echny URI nejsou "
-"podporovįny ve v¹ech tiskovżch sprįvcķch."
-
-#: ../../printerdrake.pm_.c:903
-msgid "A valid URI must be entered!"
-msgstr "Musķ bżt zadįno sprįvné URI!"
-
-#: ../../printerdrake.pm_.c:1004
-msgid ""
-"Every printer needs a name (for example \"printer\"). The Description and "
-"Location fields do not need to be filled in. They are comments for the users."
-msgstr ""
-"Ka¾dį tiskįrna potųebuje jméno (napų. \"tiskarna\"). Popis a umķstģnķ nemusķ "
-"bżt vyplnģny. Jsou to komentįųe pouze pro u¾ivatele."
-
-#: ../../printerdrake.pm_.c:1005
-msgid "Name of printer"
-msgstr "Jméno tiskįrny"
-
-#: ../../printerdrake.pm_.c:1006
-msgid "Description"
-msgstr "Popis"
-
-#: ../../printerdrake.pm_.c:1007
-msgid "Location"
-msgstr "Umķstģnķ"
-
-#: ../../printerdrake.pm_.c:1021
-msgid "Preparing printer database ..."
-msgstr "Načķtįm databįzi tiskįren ..."
-
-#: ../../printerdrake.pm_.c:1112
-msgid "Your printer model"
-msgstr "Model tiskįrny"
-
-#: ../../printerdrake.pm_.c:1113
-#, c-format
-msgid ""
-"Printerdrake has compared the model name resulting from the printer auto-"
-"detection with the models listed in its printer database to find the best "
-"match. This choice can be wrong, especially when your printer is not listed "
-"at all in the database. So check whether the choice is correct and click "
-"\"The model is correct\" if so and if not, click \"Select model manually\" "
-"so that you can choose your printer model manually on the next screen.\n"
-"\n"
-"For your printer Printerdrake has found:\n"
-"\n"
-"%s"
-msgstr ""
-"Printerdrake provedl porovnįnķ modelu tiskįrny, kterż byl zji¹tģn pųi auto-"
-"detekci s modelem obsa¾enżm v jeho databįzi a nabķdnul nejlep¹ķ ųe¹enķ. Tato "
-"volba mł¾e bżt ¹patnį, zvlį¹» pokud nenķ tiskįrna obsa¾ena v databįzi. "
-"Zkontrolujte, zda je volba sprįvnį a klepnģte na \"Zvolenż model je sprįvnż"
-"\" a pokud nenķ, volte \"Vybrat model ručnģ\". V dal¹ķ obrazovce potom bude "
-"mo¾né vybrat model tiskįrny ručnģ.\n"
-"\n"
-"Pro va¹i tiskįrnu Printerdrake nalezl:\n"
-"\n"
-"%s"
-
-#: ../../printerdrake.pm_.c:1118 ../../printerdrake.pm_.c:1121
-msgid "The model is correct"
-msgstr "Zvolenż model je sprįvnż"
-
-#: ../../printerdrake.pm_.c:1119 ../../printerdrake.pm_.c:1120
-#: ../../printerdrake.pm_.c:1123
-msgid "Select model manually"
-msgstr "Vybrat model ručnģ"
-
-#: ../../printerdrake.pm_.c:1139
-msgid "Printer model selection"
-msgstr "Vżbģr modelu tiskįrny"
-
-#: ../../printerdrake.pm_.c:1140
-msgid "Which printer model do you have?"
-msgstr "Jakż model tiskįrny mįte?"
-
-#: ../../printerdrake.pm_.c:1141
-msgid ""
-"\n"
-"\n"
-"Please check whether Printerdrake did the auto-detection of your printer "
-"model correctly. Search the correct model in the list when the cursor is "
-"standing on a wrong model or on \"Raw printer\"."
-msgstr ""
-"\n"
-"\n"
-"Zkontrolujte prosķm, zda Printerdrake provedl automatickou detekci modelu "
-"sprįvnģ. Pokud je vyznačen nesprįvnż model, mł¾ete ho zmģnit vżbģrem ze "
-"seznamu nebo zvolte \"Raw printer\"."
-
-#: ../../printerdrake.pm_.c:1144
-msgid ""
-"If your printer is not listed, choose a compatible (see printer manual) or a "
-"similar one."
-msgstr ""
-"Pokud nenķ tiskįrna v seznamu, vyberte kompatibilnķ nebo podobnż model "
-"(podķvejte se do manuįlu)"
-
-#: ../../printerdrake.pm_.c:1220
-msgid "OKI winprinter configuration"
-msgstr "Nastavenķ pro OKI win-tiskįrnu"
-
-#: ../../printerdrake.pm_.c:1221
-msgid ""
-"You are configuring an OKI laser winprinter. These printers\n"
-"use a very special communication protocol and therefore they work only when "
-"connected to the first parallel port. When your printer is connected to "
-"another port or to a print server box please connect the printer to the "
-"first parallel port before you print a test page. Otherwise the printer will "
-"not work. Your connection type setting will be ignored by the driver."
-msgstr ""
-"Nynķ nastavujete laserovou tiskįrnu OKI winprinter. Tyto tiskįrny pou¾ķvajķ "
-"velmi specifickż komunikačnķ protokol a mohou pracovat pouze pokud jsou "
-"pųipojeny k prvnķmu paralelnķmu portu. Pokud je tiskįrna pųipojena na jinż "
-"port, nebo se tiskne pųes server, pųipojte tiskįrnu na prvnķ paralelnķ port. "
-"Jinak tisk nebude pracovat. Typ pųipojenķ bude ovladač ignorovat."
-
-#: ../../printerdrake.pm_.c:1264 ../../printerdrake.pm_.c:1291
-msgid "Lexmark inkjet configuration"
-msgstr "Nastavenķ inkoustové tiskįrny Lexmark"
-
-#: ../../printerdrake.pm_.c:1265
-msgid ""
-"The inkjet printer drivers provided by Lexmark only support local printers, "
-"no printers on remote machines or print server boxes. Please connect your "
-"printer to a local port or configure it on the machine where it is connected "
-"to."
-msgstr ""
-"Inkoustové tiskįrny dodįvané firmou Lexmark podporujķ pouze tisk na lokįlnķ "
-"tiskįrnģ, tak¾e nelze tisknout pųes vzdįlenż server. Prosķm pųipojte "
-"tiskįrnu na lokįlnķ port nebo ji nastavte na tom počķtači, ke kterému bude "
-"pųipojena."
-
-#: ../../printerdrake.pm_.c:1292
-msgid ""
-"To be able to print with your Lexmark inkjet and this configuration, you "
-"need the inkjet printer drivers provided by Lexmark (http://www.lexmark."
-"com/). Go to the US site and click on the \"Drivers\" button. Then choose "
-"your model and afterwards \"Linux\" as operating system. The drivers come as "
-"RPM packages or shell scripts with interactive graphical installation. You "
-"do not need to do this configuration by the graphical frontends. Cancel "
-"directly after the license agreement. Then print printhead alignment pages "
-"with \"lexmarkmaintain\" and adjust the head alignment settings with this "
-"program."
-msgstr ""
-"Aby bylo mo¾né tisknout na inkoustovżch tiskįrnįch od firmy Lexmark, je "
-"potųeba mķt tiskovż ovladač. Na strįnce (http://www.lexmark.com/) kliknģte "
-"na tlačķtko \"Drivers\" a vyberte vį¹ model tiskįrny. Potom zvolte Linux "
-"jako operačnķ systém. Ovladače jsou v RPM balķčcķch nebo majķ interaktivnķ "
-"instalaci. Tu ale nepotųebujete. Ukončete instalačnķ program ihned po "
-"odsouhlasenķ licence. Pak mł¾ete nastavit chovįnķ tiskové hlavy pomocķ "
-"tohoto programu."
-
-#: ../../printerdrake.pm_.c:1508
-msgid ""
-"Printer default settings\n"
-"\n"
-"You should make sure that the page size and the ink type/printing mode (if "
-"available) and also the hardware configuration of laser printers (memory, "
-"duplex unit, extra trays) are set correctly. Note that with a very high "
-"printout quality/resolution printing can get substantially slower."
-msgstr ""
-"Vżchozķ nastavenķ pro tiskįrnu\n"
-"\n"
-"Ujistģte se, ¾e typ strįnky a typ inkoustu/re¾im tisku (pokud je) a také "
-"hardwarovį konfigurace laserové tiskįrny (pamģ», duplexnķ jednotka, externķ "
-"podavač) jsou nastaveny sprįvnģ. Pųi tisku ve velmi vysoké kvalitģ/rozli¹enķ "
-"bude tisk zųejmģ pomalej¹ķ."
-
-#: ../../printerdrake.pm_.c:1517
-#, c-format
-msgid "Option %s must be an integer number!"
-msgstr "Hodnota %s musķ bżt celé čķslo!"
-
-#: ../../printerdrake.pm_.c:1521
-#, c-format
-msgid "Option %s must be a number!"
-msgstr "Hodnota %s musķ bżt čķslo!"
-
-#: ../../printerdrake.pm_.c:1526
-#, c-format
-msgid "Option %s out of range!"
-msgstr "Hodnota %s je mimo rozsah!"
-
-#: ../../printerdrake.pm_.c:1565
-#, c-format
-msgid ""
-"Do you want to set this printer (\"%s\")\n"
-"as the default printer?"
-msgstr ""
-"Chcete opravdu nastavit tiskįrnu \"%s\"\n"
-"jako vżchozķ?"
-
-#: ../../printerdrake.pm_.c:1582
-msgid "Test pages"
-msgstr "Testovacķ strįnka"
-
-#: ../../printerdrake.pm_.c:1583
-msgid ""
-"Please select the test pages you want to print.\n"
-"Note: the photo test page can take a rather long time to get printed and on "
-"laser printers with too low memory it can even not come out. In most cases "
-"it is enough to print the standard test page."
-msgstr ""
-"Vyberte si testovacķ strįnku, kterou chcete vytisknout.\n"
-"Poznįmka: tisk testovacķ strįnky s fotografiķ mł¾e trvat velmi dlouho nebo "
-"se na tiskįrnģ s mįlo pamģtķ nemusķ podaųit vłbec. Ve vģt¹inģ pųķpadł stačķ "
-"vytisknout bģ¾nou testovacķ strįnku."
-
-#: ../../printerdrake.pm_.c:1587
-msgid "No test pages"
-msgstr "Bez testovacķ strįnky"
-
-#: ../../printerdrake.pm_.c:1588
-msgid "Print"
-msgstr "Tisk"
-
-#: ../../printerdrake.pm_.c:1590
-msgid "Standard test page"
-msgstr "Standardnķ testovacķ strįnka"
-
-#: ../../printerdrake.pm_.c:1593
-msgid "Alternative test page (Letter)"
-msgstr "Alternativnķ testovacķ strįnka (letter)"
-
-#: ../../printerdrake.pm_.c:1596
-msgid "Alternative test page (A4)"
-msgstr "Alternativnķ testovacķ strįnka (A4)"
-
-#: ../../printerdrake.pm_.c:1598
-msgid "Photo test page"
-msgstr "Testovacķ strįnka s fotografiķ"
-
-#: ../../printerdrake.pm_.c:1602
-msgid "Do not print any test page"
-msgstr "Netisknout testovacķ strįnku"
-
-#: ../../printerdrake.pm_.c:1610 ../../printerdrake.pm_.c:1747
-msgid "Printing test page(s)..."
-msgstr "Tisknu testovacķ strįnku(y)"
-
-#: ../../printerdrake.pm_.c:1635
-#, c-format
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-"Printing status:\n"
-"%s\n"
-"\n"
-msgstr ""
-"Zku¹ebnķ strįnka(y) byla(y) poslįna(y) na tiskįrnu.\n"
-"Mł¾e chvilku trvat ne¾ začne tisk.\n"
-"Stav tisku:\n"
-"%s\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:1639
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-msgstr ""
-"Zku¹ebnķ strįnka byl poslįna na tiskįrnu.\n"
-"Mł¾e chvilku trvat ne¾ začne tisk.\n"
-
-#: ../../printerdrake.pm_.c:1646
-msgid "Did it work properly?"
-msgstr "Probģhl tisk sprįvnģ ?"
-
-#: ../../printerdrake.pm_.c:1667 ../../printerdrake.pm_.c:2732
-msgid "Raw printer"
-msgstr "Pųķmż tisk na tiskįrnu"
-
-#: ../../printerdrake.pm_.c:1685
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) you can either use "
-"the command \"%s <file>\" or a graphical printing tool: \"xpp <file>\" or "
-"\"kprinter <file>\". The graphical tools allow you to choose the printer and "
-"to modify the option settings easily.\n"
-msgstr ""
-"Vytisknout soubor z pųķkazové ųįdky (terminįlového okna) lze buļ pųķkazem\n"
-"\"%s<soubor>\" nebo pųes grafické nįstroje: \"xpp <soubor> nebo \"kprinter "
-"<soubor>\". Grafické nįstroje umo¾ņujķ jednodu¹e vybrat tiskįrny a mģnit "
-"jejich parametry.\n"
-
-#: ../../printerdrake.pm_.c:1687
-msgid ""
-"These commands you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications, but here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-"Tyto pųķkazy lze nastavit do polķčka \"Pųķkazy tisku\" v dialogu tisku ve "
-"vģt¹inģ aplikacķ, ale nezadįvį se zde jméno souboru, které je poka¾dé jiné v "
-"zįvislosti na dané aplikaci.\n"
-
-#: ../../printerdrake.pm_.c:1690 ../../printerdrake.pm_.c:1706
-#: ../../printerdrake.pm_.c:1716
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" command also allows to modify the option settings for a "
-"particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\". "
-msgstr ""
-"\n"
-"Pųķkaz \"%s\" dovoluje modifikovat volby pro ka¾dou tiskovou ślohu. "
-"Jednodu¹e zadejte potųebné nastavenķ do pųķkazové ųįdky, napų. \"%s<soubor>"
-"\". "
-
-#: ../../printerdrake.pm_.c:1693 ../../printerdrake.pm_.c:1732
-#, c-format
-msgid ""
-"To know about the options available for the current printer read either the "
-"list shown below or click on the \"Print option list\" button.%s\n"
-"\n"
-msgstr ""
-"V¹echny mo¾nosti pro současnou tiskįrnu jsou zobrazeny nķ¾e, nebo kliknģte "
-"na tlačķtko \"Mo¾nosti tiskįrny\".%s\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:1696
-msgid ""
-"Here is a list of the available printing options for the current printer:\n"
-"\n"
-msgstr ""
-"Zde je seznam dostupnżch voleb pro nastavenķ tisku pro aktuįlnķ tiskįrnu:\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:1701 ../../printerdrake.pm_.c:1711
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\".\n"
-msgstr ""
-"Pro vyti¹tģnķ souboru z pųķkazové ųįdky (v terminįlovém oknģ) pou¾ijte "
-"pųķkaz \"%s<soubor>\".\n"
-
-#: ../../printerdrake.pm_.c:1703 ../../printerdrake.pm_.c:1713
-#: ../../printerdrake.pm_.c:1723
-msgid ""
-"This command you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications. But here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-"Tento pųķkaz lze nastavit do polķčka \"Pųķkazy tisku\" v dialogu tisku ve "
-"vģt¹inģ aplikacķ, ale nezadįvį se zde jméno souboru, které je poka¾dé jiné v "
-"zįvislosti na dané aplikaci.\n"
-
-#: ../../printerdrake.pm_.c:1708 ../../printerdrake.pm_.c:1718
-msgid ""
-"To get a list of the options available for the current printer click on the "
-"\"Print option list\" button."
-msgstr ""
-"V¹echny mo¾nosti tisku pro současnou tiskįrnu jsou zobrazeny nķ¾e, nebo "
-"kliknģte na tlačķtko \"Mo¾nosti tiskįrny\"."
-
-#: ../../printerdrake.pm_.c:1721
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\" or \"%s <file>\".\n"
-msgstr ""
-"Pro vyti¹tģnķ souboru z pųķkazové ųįdky (v terminįlovém oknģ) pou¾ijte "
-"pųķkaz \"%s<soubor>\" nebo \"%s<soubor>\".\n"
-
-#: ../../printerdrake.pm_.c:1725
-msgid ""
-"You can also use the graphical interface \"xpdq\" for setting options and "
-"handling printing jobs.\n"
-"If you are using KDE as desktop environment you have a \"panic button\", an "
-"icon on the desktop, labeled with \"STOP Printer!\", which stops all print "
-"jobs immediately when you click it. This is for example useful for paper "
-"jams.\n"
-msgstr ""
-"Lze také pou¾ķt grafické rozhranķ \"xpdq\" pro nastavenķ mo¾nostķ a ke "
-"sprįvģtiskovżch śloh.\n"
-"Pokud pou¾ķvįte grafické prostųedķ KDE, mįte na pracovnķ plo¹e ikonu,\n"
-"pojmenovanou \"STOP Printer!\", kterż po kliknutķ ihned zastavķ "
-"v¹echnytiskové ślohy. To je vhodné tųeba pro pųķpady uvįznutķ papķru.\n"
-
-#: ../../printerdrake.pm_.c:1729
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" and \"%s\" commands also allow to modify the option settings for "
-"a particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\".\n"
-msgstr ""
-"\n"
-"Pųķkazy \"%s\" a \"%s\" dovolujķ modifikovat volby pro ka¾dou tiskovou "
-"ślohu. Jednodu¹e zadejte potųebné nastavenķ do pųķkazové ųįdky, napų. \"%"
-"s<soubor>\".\n"
-
-#: ../../printerdrake.pm_.c:1738 ../../printerdrake.pm_.c:1744
-#: ../../printerdrake.pm_.c:1745 ../../printerdrake.pm_.c:1746
-#: ../../printerdrake.pm_.c:2716 ../../standalone/drakbackup_.c:754
-#: ../../standalone/drakbackup_.c:2458 ../../standalone/drakfont_.c:577
-#: ../../standalone/drakfont_.c:791
-msgid "Close"
-msgstr "Zavųķt"
-
-#: ../../printerdrake.pm_.c:1741 ../../printerdrake.pm_.c:1753
-#, c-format
-msgid "Printing/Scanning on \"%s\""
-msgstr "Tisknu/skenuji na \"%s\""
-
-#: ../../printerdrake.pm_.c:1742 ../../printerdrake.pm_.c:1754
-#, c-format
-msgid "Printing on the printer \"%s\""
-msgstr "Tisknu na tiskįrnu \"%s\""
-
-#: ../../printerdrake.pm_.c:1744
-msgid "Print option list"
-msgstr "Mo¾nosti tiskįrny"
-
-#: ../../printerdrake.pm_.c:1766
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan with \"scanimage\" (\"scanimage -d hp:%s\" to specify "
-"the scanner when you have more than one) from the command line or with the "
-"graphical interfaces \"xscanimage\" or \"xsane\". If you are using the GIMP, "
-"you can also scan by choosing the appropriate point in the \"File\"/\"Acquire"
-"\" menu. Call also \"man scanimage\" and \"man sane-hp\" on the command line "
-"to get more information.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-"Multifunkčnķ zaųķzenķ od HP bylo nastaveno pro mo¾nost skenovįnķ. Nynķ lze "
-"skenovat pųķkazem \"scanimage\" (\"scanimage -d hp:%s\" zvolķte po¾adovanż "
-"skener) z pųķkazového ųįdku nebo z grafického prostųedķ pomocķ \"xscanimage"
-"\" nebo \"xsane\". Pokud pou¾ķvįte program GIMP, mł¾ete také skenovat "
-"vżbģrem z nabķdky \"Soubor\"/\"Zķskat\". Vķce informacķ zķskįte pųķkazem "
-"\"man scanimage\" a \"man sane-hp\".\n"
-"\n"
-"Nepou¾ķvejte pro toto zaųķzenķ \"scannerdrake\"!"
-
-#: ../../printerdrake.pm_.c:1772
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan from the command line with \"ptal-hp %s scan ...\". "
-"Scanning via a graphical interface or from the GIMP is not supported yet for "
-"your device. More information you will find in the \"/usr/share/doc/hpoj-0.8/"
-"ptal-hp-scan.html\" file on your system. If you have an HP LaserJet 1100 or "
-"1200 you can only scan when you have the scanner option installed.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-"Multifunkčnķ zaųķzenķ od HP bylo nastaveno pro mo¾nost skenovįnķ. Nynķ lze "
-"skenovat pųķkazem \"ptal-hp %s scan ...\" z pųķkazového ųįdku. Skenovįnķ z "
-"grafického prostųedķ nebo z programu GIMP nenķ zatķm na tomto zaųķzenķ "
-"podporovįno. Vķce informacķ naleznete v souboru \"/usr/share/doc/hpoj-0.8/"
-"ptal-hp-scan.html\". Pokud mįte HP LaserJet 1100 nebo 1200, lze skenovat "
-"pouze v pųķpadģ, ¾e mįte nainstalovįnu podporu pro skenovįnķ.\n"
-"\n"
-"Nepou¾ķvejte pro toto zaųķzenķ \"scannerdrake\"!"
-
-#: ../../printerdrake.pm_.c:1794 ../../printerdrake.pm_.c:2221
-#: ../../printerdrake.pm_.c:2485 ../../standalone/printerdrake_.c:49
-msgid "Reading printer data ..."
-msgstr "Načķtįm data k tisku ..."
-
-#: ../../printerdrake.pm_.c:1814 ../../printerdrake.pm_.c:1842
-#: ../../printerdrake.pm_.c:1877
-msgid "Transfer printer configuration"
-msgstr "Pųenést konfiguraci tiskįrny"
-
-#: ../../printerdrake.pm_.c:1815
-#, c-format
-msgid ""
-"You can copy the printer configuration which you have done for the spooler %"
-"s to %s, your current spooler. All the configuration data (printer name, "
-"description, location, connection type, and default option settings) is "
-"overtaken, but jobs will not be transferred.\n"
-"Not all queues can be transferred due to the following reasons:\n"
-msgstr ""
-"Konfiguraci tiskįrny, kterou jste provedli pro frontu %s lze pųenést na "
-"frontu %s, tj. na současnou frontu. V¹echna nastavenį data (jméno tiskįrny, "
-"popis, umķstģnķ, typ pųipojenķ a dal¹ķ vżchozķ nastavenķ) budou pųepsįna, "
-"ale tiskové ślohy nebudou pųeneseny.\n"
-"Ne v¹echny fronty lze pųenést z nįsledujķch dłvodł:\n"
-
-#: ../../printerdrake.pm_.c:1818
-msgid ""
-"CUPS does not support printers on Novell servers or printers sending the "
-"data into a free-formed command.\n"
-msgstr ""
-"CUPS nepodporuje tiskįrny na serverech Novell nebo tiskįrny, které posķlajķ "
-"data na skupinu pųķkazł.\n"
-
-#: ../../printerdrake.pm_.c:1820
-msgid ""
-"PDQ only supports local printers, remote LPD printers, and Socket/TCP "
-"printers.\n"
-msgstr ""
-"PDQ podporuje pouze mķstnķ tiskįrny, vzdįlené tiskįrny LPD a tisk na "
-"tiskįrny pųes sockety/TCP.\n"
-
-#: ../../printerdrake.pm_.c:1822
-msgid "LPD and LPRng do not support IPP printers.\n"
-msgstr "LPD ani LPRng nepodporujķ IPP tiskįrny.\n"
-
-#: ../../printerdrake.pm_.c:1824
-msgid ""
-"In addition, queues not created with this program or \"foomatic-configure\" "
-"cannot be transferred."
-msgstr ""
-"Tiskové fronty, které nebyly vytvoųeny tķmto programem nebo pųes \"foomatic-"
-"configure\" nelze pųenést."
-
-#: ../../printerdrake.pm_.c:1825
-msgid ""
-"\n"
-"Also printers configured with the PPD files provided by their manufacturers "
-"or with native CUPS drivers cannot be transferred."
-msgstr ""
-"\n"
-"Také tiskįrny pou¾ķvajķcķ PPD soubory od jejich vżrobcł nebo tiskįrny s "
-"nativnķmi ovladači pro CUPS nelze pųenést."
-
-#: ../../printerdrake.pm_.c:1826
-msgid ""
-"\n"
-"Mark the printers which you want to transfer and click \n"
-"\"Transfer\"."
-msgstr ""
-"\n"
-"Označte tiskįrnu, kterou chcete pųenést a stisknģte \"Pųenést\"."
-
-#: ../../printerdrake.pm_.c:1829
-msgid "Do not transfer printers"
-msgstr "Nepųenį¹et tiskįrny"
-
-#: ../../printerdrake.pm_.c:1830 ../../printerdrake.pm_.c:1847
-msgid "Transfer"
-msgstr "Pųenést"
-
-#: ../../printerdrake.pm_.c:1843
-#, c-format
-msgid ""
-"A printer named \"%s\" already exists under %s. \n"
-"Click \"Transfer\" to overwrite it.\n"
-"You can also type a new name or skip this printer."
-msgstr ""
-"Tiskįrna se jménem \"%s\" ji¾ na stranģ %s existuje.\n"
-"Kliknģte na \"Pųenést\" pro pųepsįnķ.\n"
-"Taky mł¾ete napsat nové jméno nebo ji pųeskočit."
-
-#: ../../printerdrake.pm_.c:1851
-msgid "Name of printer should contain only letters, numbers and the underscore"
-msgstr "Jméno fronty mł¾e obsahovat pouze pķsmena, čķslice a podtr¾ķtko"
-
-#: ../../printerdrake.pm_.c:1856
-#, c-format
-msgid ""
-"The printer \"%s\" already exists,\n"
-"do you really want to overwrite its configuration?"
-msgstr ""
-"Tiskįrna se jménem %s ji¾ existuje,\n"
-"chcete opravdu pųepsat jejķ konfiguraci?"
-
-#: ../../printerdrake.pm_.c:1864
-msgid "New printer name"
-msgstr "Nové jméno tiskįrny"
-
-#: ../../printerdrake.pm_.c:1867
-#, c-format
-msgid "Transferring %s ..."
-msgstr "Pųenį¹ķm %s ..."
-
-#: ../../printerdrake.pm_.c:1878
-#, c-format
-msgid ""
-"You have transferred your former default printer (\"%s\"), Should it be also "
-"the default printer under the new printing system %s?"
-msgstr ""
-"Byla pųenesena vżchozķ tiskįrna (\"%s\"). Mį se nastavit jako vżchozķ také "
-"na vzdįleném tiskovém systému %s?"
-
-#: ../../printerdrake.pm_.c:1887
-msgid "Refreshing printer data ..."
-msgstr "Občerstvuji tiskovį data ...."
-
-#: ../../printerdrake.pm_.c:1895 ../../printerdrake.pm_.c:1966
-#: ../../printerdrake.pm_.c:1978
-msgid "Configuration of a remote printer"
-msgstr "Nastavenķ vzdįlené tiskįrny"
-
-#: ../../printerdrake.pm_.c:1896
-msgid "Starting network ..."
-msgstr "Spou¹tķm sķ» ...."
-
-#: ../../printerdrake.pm_.c:1930 ../../printerdrake.pm_.c:1934
-#: ../../printerdrake.pm_.c:1936
-msgid "Configure the network now"
-msgstr "Nastavit sķ» nynķ"
-
-#: ../../printerdrake.pm_.c:1931
-msgid "Network functionality not configured"
-msgstr "Sķ» nenķ nastavena"
-
-#: ../../printerdrake.pm_.c:1932
-msgid ""
-"You are going to configure a remote printer. This needs working network "
-"access, but your network is not configured yet. If you go on without network "
-"configuration, you will not be able to use the printer which you are "
-"configuring now. How do you want to proceed?"
-msgstr ""
-"Nynķ začne konfigurace vzdįlené tiskįrny. To vy¾aduje funkčnķ sķ»ové "
-"spojenķ, ale sķ» nenķ zatķm nastavena. Pokud budete pokračovat bez nastavenķ "
-"sķtģ, nebude mo¾né pou¾ķt tiskįrnu, kterou po¾adujete. Jak chcete pokračovat?"
-
-#: ../../printerdrake.pm_.c:1935
-msgid "Go on without configuring the network"
-msgstr "Pokračovat bez nastavenķ sķtģ"
-
-#: ../../printerdrake.pm_.c:1968
-msgid ""
-"The network configuration done during the installation cannot be started "
-"now. Please check whether the network gets accessable after booting your "
-"system and correct the configuration using the Mandrake Control Center, "
-"section \"Network & Internet\"/\"Connection\", and afterwards set up the "
-"printer, also using the Mandrake Control Center, section \"Hardware\"/"
-"\"Printer\""
-msgstr ""
-"Nastavenķ sķtģ provedené pųi instalaci nelze nynķ aktivovat. Zkontrolujte, "
-"zda je sķ» dostupnį po spu¹tģnķ systému a nastavenķ opravte v ųķdķcķm centru "
-"Mandrake, v sekci \"Sķ» a Internet\"/\"Pųipojenķ\" a nįslednģ nastavte "
-"tiskįrnu také v ųķdķcķm centru v sekci \"Hardware\"/\"Tiskįrna\""
-
-#: ../../printerdrake.pm_.c:1969
-msgid ""
-"The network access was not running and could not be started. Please check "
-"your configuration and your hardware. Then try to configure your remote "
-"printer again."
-msgstr ""
-"Sķ» nefunguje a nelze ji spustit. Prosķm zkontrolujte nastavenķ hardware. "
-"Pak se opģt pokuste provést nastavenķ vzdįlené tiskįrny."
-
-#: ../../printerdrake.pm_.c:1979
-msgid "Restarting printing system ..."
-msgstr "Restartuji tiskovż systém ..."
-
-#: ../../printerdrake.pm_.c:2017
-msgid "high"
-msgstr "vysokį"
-
-#: ../../printerdrake.pm_.c:2017
-msgid "paranoid"
-msgstr "paranoidnķ"
-
-#: ../../printerdrake.pm_.c:2018
-#, c-format
-msgid "Installing a printing system in the %s security level"
-msgstr "Instaluji tiskovż systém v bezpečnostnķ śrovni %s"
-
-#: ../../printerdrake.pm_.c:2019
-#, c-format
-msgid ""
-"You are about to install the printing system %s on a system running in the %"
-"s security level.\n"
-"\n"
-"This printing system runs a daemon (background process) which waits for "
-"print jobs and handles them. This daemon is also accessable by remote "
-"machines through the network and so it is a possible point for attacks. "
-"Therefore only a few selected daemons are started by default in this "
-"security level.\n"
-"\n"
-"Do you really want to configure printing on this machine?"
-msgstr ""
-"Pokou¹ķte se instalovat tiskovż systém %s na počķtač, be¾ķcķ v bezpečnostķ "
-"śrovni %s.\n"
-"\n"
-"Tiskovż systém pracuje jako démon (proces na pozadķ), kterż čekį na tiskové "
-"ślohy a zpracovįvį je. Tento démon je také pųķstupnż ze sķtģ pro jiné "
-"počķtače, tak¾e se mł¾e stįt pųedmģtem sķ»ového śtoku. Proto je vybrįno "
-"pouze nģkolik slu¾eb, které jsou v této śrovni spu¹tģny automaticky pųi "
-"startu.\n"
-"\n"
-"Chcete opravdu nastavit tiskovż systém na tomto počķtači?"
-
-#: ../../printerdrake.pm_.c:2051
-msgid "Starting the printing system at boot time"
-msgstr "Spustit tiskovż systém pųi startu systému"
-
-#: ../../printerdrake.pm_.c:2052
-#, c-format
-msgid ""
-"The printing system (%s) will not be started automatically when the machine "
-"is booted.\n"
-"\n"
-"It is possible that the automatic starting was turned off by changing to a "
-"higher security level, because the printing system is a potential point for "
-"attacks.\n"
-"\n"
-"Do you want to have the automatic starting of the printing system turned on "
-"again?"
-msgstr ""
-"Tiskovż systém (%s) nebude automaticky spu¹tģn pųi startu počķtače.\n"
-"\n"
-"Je mo¾né, ¾e volba automatického startu byla vypnuta ve vy¹¹ķ bezpečnostnķ "
-"śrovni, proto¾e tiskovż systém je potenciįlnķ nebezpečķ pro sķ»ovż śtok.\n"
-"\n"
-"Chcete nastavit zpģt automatickż start tiskového systému?"
-
-#: ../../printerdrake.pm_.c:2075 ../../printerdrake.pm_.c:2113
-#: ../../printerdrake.pm_.c:2143 ../../printerdrake.pm_.c:2176
-#: ../../printerdrake.pm_.c:2281
-msgid "Checking installed software..."
-msgstr "Ovģųujķ nainstalovanż software..."
-
-#: ../../printerdrake.pm_.c:2117
-msgid "Removing LPRng..."
-msgstr "Odebķrįm LPRng..."
-
-#: ../../printerdrake.pm_.c:2147
-msgid "Removing LPD..."
-msgstr "Odebķrįm LPD..."
-
-#: ../../printerdrake.pm_.c:2205
-msgid "Select Printer Spooler"
-msgstr "Zvolte tiskovż systém pro tiskįrnu"
-
-#: ../../printerdrake.pm_.c:2206
-msgid "Which printing system (spooler) do you want to use?"
-msgstr "Kterż tiskovż systém chcete pou¾ķt pro tisk?"
-
-#: ../../printerdrake.pm_.c:2239
-#, c-format
-msgid "Configuring printer \"%s\" ..."
-msgstr "Nastavuji tiskįrnu \"%s\"..."
-
-#: ../../printerdrake.pm_.c:2252
-msgid "Installing Foomatic ..."
-msgstr "Instaluji Foomatic ..."
-
-#: ../../printerdrake.pm_.c:2309 ../../printerdrake.pm_.c:2348
-#: ../../printerdrake.pm_.c:2733 ../../printerdrake.pm_.c:2803
-msgid "Printer options"
-msgstr "Mo¾nosti tiskįrny"
-
-#: ../../printerdrake.pm_.c:2318
-msgid "Preparing PrinterDrake ..."
-msgstr "Pųipravuji PrinterDrake ...."
-
-#: ../../printerdrake.pm_.c:2335 ../../printerdrake.pm_.c:2890
-msgid "Configuring applications..."
-msgstr "Nastavovįnķ aplikacķ..."
-
-#: ../../printerdrake.pm_.c:2355
-msgid "Would you like to configure printing?"
-msgstr "Chtģli byste nastavit tiskįrnu?"
-
-#: ../../printerdrake.pm_.c:2367
-msgid "Printing system: "
-msgstr "Tiskovż systém: "
-
-#: ../../printerdrake.pm_.c:2415
-msgid "Printerdrake"
-msgstr "Printerdrake"
-
-#: ../../printerdrake.pm_.c:2419
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; to view information about it; "
-"or to make a printer on a remote CUPS server available for Star Office/"
-"OpenOffice.org."
-msgstr ""
-"Jsou nastaveny nįsledujķcķ tiskįrny. Dvojitżm kliknutķm na ka¾dou z nich je "
-"mo¾né je modifikovat, nastavit jako vżchozķ, zķskat o nich informace nebo je "
-"nastavit na vzdįleném CUPS serveru pro vyu¾itķ v aplikaci Star Office/"
-"OpenOffice.org."
-
-#: ../../printerdrake.pm_.c:2420
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; or to view information about "
-"it."
-msgstr ""
-"Jsou nastaveny nįsledujķcķ tiskįrny. Dvojitżm kliknutķm na ka¾dou z nich je "
-"mo¾né je modifikovat, nastavit jako vżchozķ nebo o nich zķskat informace."
-
-#: ../../printerdrake.pm_.c:2446
-msgid "Refresh printer list (to display all available remote CUPS printers)"
-msgstr "Obnovit seznam tiskįren (pro zķskįnķ v¹ech vzdįlenżch CUPS tiskįren)"
-
-#: ../../printerdrake.pm_.c:2464
-msgid "Change the printing system"
-msgstr "Zmģna tiskového systému"
-
-#: ../../printerdrake.pm_.c:2469 ../../standalone/draknet_.c:278
-msgid "Normal Mode"
-msgstr "Normįnķ re¾im"
-
-#: ../../printerdrake.pm_.c:2625 ../../printerdrake.pm_.c:2675
-#: ../../printerdrake.pm_.c:2884
-msgid "Do you want to configure another printer?"
-msgstr "Chcete nastavit dal¹ķ tiskįrnu?"
-
-#: ../../printerdrake.pm_.c:2711
-msgid "Modify printer configuration"
-msgstr "Zmģnit nastavenķ tiskįrny"
-
-#: ../../printerdrake.pm_.c:2713
-#, c-format
-msgid ""
-"Printer %s\n"
-"What do you want to modify on this printer?"
-msgstr ""
-"Tiskįrna %s\n"
-"Co chcete zmģnit na této tiskįrnģ?"
-
-#: ../../printerdrake.pm_.c:2717
-msgid "Do it!"
-msgstr "Provést!"
-
-#: ../../printerdrake.pm_.c:2722 ../../printerdrake.pm_.c:2777
-msgid "Printer connection type"
-msgstr "Typ pųipojenķ pro tiskįrnu"
-
-#: ../../printerdrake.pm_.c:2723 ../../printerdrake.pm_.c:2781
-msgid "Printer name, description, location"
-msgstr "Jméno tiskįrny, popis, umķstģnķ"
-
-#: ../../printerdrake.pm_.c:2725 ../../printerdrake.pm_.c:2796
-msgid "Printer manufacturer, model, driver"
-msgstr "Vżrobce tiskįrny, model, ovladač"
-
-#: ../../printerdrake.pm_.c:2726 ../../printerdrake.pm_.c:2797
-msgid "Printer manufacturer, model"
-msgstr "Vżrobce tiskįrny, model"
-
-#: ../../printerdrake.pm_.c:2735 ../../printerdrake.pm_.c:2807
-msgid "Set this printer as the default"
-msgstr "Nastavit tuto tiskįrnu jako vżchozķ"
-
-#: ../../printerdrake.pm_.c:2737 ../../printerdrake.pm_.c:2812
-msgid "Add this printer to Star Office/OpenOffice.org"
-msgstr "Pųidat tuto tiskįrnu do Star Office/OpenOffice.org"
-
-#: ../../printerdrake.pm_.c:2738 ../../printerdrake.pm_.c:2821
-msgid "Remove this printer from Star Office/OpenOffice.org"
-msgstr "Odebrat tiskįrnu ze Star Office/OpenOffice.org"
-
-#: ../../printerdrake.pm_.c:2739 ../../printerdrake.pm_.c:2830
-msgid "Print test pages"
-msgstr "Tisk testovacķ(ch) strįnky(nek)"
-
-#: ../../printerdrake.pm_.c:2740 ../../printerdrake.pm_.c:2832
-msgid "Know how to use this printer"
-msgstr "Nįpovģda pro tisk na této tiskįrnģ"
-
-#: ../../printerdrake.pm_.c:2742 ../../printerdrake.pm_.c:2834
-msgid "Remove printer"
-msgstr "Odebrat tiskįrnu"
-
-#: ../../printerdrake.pm_.c:2786
-#, c-format
-msgid "Removing old printer \"%s\" ..."
-msgstr "Odebķrįm starou tiskįrnu \"%s\" ..."
-
-#: ../../printerdrake.pm_.c:2810
-msgid "Default printer"
-msgstr "Vżchozķ tiskįrna"
-
-#: ../../printerdrake.pm_.c:2811
-#, c-format
-msgid "The printer \"%s\" is set as the default printer now."
-msgstr "Tiskįrna \"%s\" je nynķ nastavena jako vżchozķ."
-
-#: ../../printerdrake.pm_.c:2815 ../../printerdrake.pm_.c:2818
-msgid "Adding printer to Star Office/OpenOffice.org"
-msgstr "Pųidįvįm tiskįrnu do Star Office/OpenOffice.org"
-
-#: ../../printerdrake.pm_.c:2816
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully added to Star Office/OpenOffice.org."
-msgstr "Tiskįrna \"%s\" byla śspģ¹nģ pųidįna do Star Office/OpenOffice.org."
-
-#: ../../printerdrake.pm_.c:2819
-#, c-format
-msgid "Failed to add the printer \"%s\" to Star Office/OpenOffice.org."
-msgstr "Pųidįnķ tiskįrny \"%s\" do Star Office/OpenOffice.org se nezdaųilo."
-
-#: ../../printerdrake.pm_.c:2824 ../../printerdrake.pm_.c:2827
-msgid "Removing printer from Star Office/OpenOffice.org"
-msgstr "Odebķrįm tiskįrnu ze Star Office/OpenOffice.org"
-
-#: ../../printerdrake.pm_.c:2825
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully removed from Star Office/OpenOffice.org."
-msgstr ""
-"Tiskįrna \"%s\" byla śspģ¹nģ odebrįna z aplikace Star Office/OpenOffice.org."
-
-#: ../../printerdrake.pm_.c:2828
-#, c-format
-msgid "Failed to remove the printer \"%s\" from Star Office/OpenOffice.org."
-msgstr "Odebrįnķ tiskįrny \"%s\" ze Star Office/OpenOffice.org se nezdaųilo."
-
-#: ../../printerdrake.pm_.c:2836
-#, c-format
-msgid "Do you really want to remove the printer \"%s\"?"
-msgstr "Chcete opravdu odebrat tiskįrnu \"%s\"?"
-
-#: ../../printerdrake.pm_.c:2838
-#, c-format
-msgid "Removing printer \"%s\" ..."
-msgstr "Odebķrįm tiskįrnu \"%s\" ..."
-
-#: ../../proxy.pm_.c:29 ../../proxy.pm_.c:37 ../../proxy.pm_.c:58
-#: ../../proxy.pm_.c:78
-msgid "Proxy configuration"
-msgstr "Nastavenķ proxy"
-
-#: ../../proxy.pm_.c:30
-msgid ""
-"Welcome to the proxy configuration utility.\n"
-"\n"
-"Here, you'll be able to set up your http and ftp proxies\n"
-"with or without login and password\n"
-msgstr ""
-"Vķtejte v konfiguračnķm nįstroji pro proxy.\n"
-"\n"
-"Zde nastavujete http a ftp proxy zadįnķm\n"
-"pųidģleného pųihla¹ovacķho jména a hesla\n"
-
-#: ../../proxy.pm_.c:38
-msgid ""
-"Please fill in the http proxy informations\n"
-"Leave it blank if you don't want an http proxy"
-msgstr ""
-"Zadejte prosķm hodnoty pro http proxy\n"
-"V pųķpadģ, ¾e nemįte http proxy, ponechejte prįzdné"
-
-#: ../../proxy.pm_.c:39 ../../proxy.pm_.c:60
-msgid "URL"
-msgstr "URL"
-
-#: ../../proxy.pm_.c:40 ../../proxy.pm_.c:61
-msgid "port"
-msgstr "port"
-
-#: ../../proxy.pm_.c:44
-msgid "Url should begin with 'http:'"
-msgstr "URL by mģlo bżt 'http:'"
-
-#: ../../proxy.pm_.c:48 ../../proxy.pm_.c:69
-msgid "The port part should be numeric"
-msgstr "Čķslo portu musķ bżt numerické"
-
-#: ../../proxy.pm_.c:59
-msgid ""
-"Please fill in the ftp proxy informations\n"
-"Leave it blank if you don't want an ftp proxy"
-msgstr ""
-"Zadejte prosķm hodnoty pro ftp proxy\n"
-"V pųķpadģ, ¾e nemįte ftp proxy, ponechejte prįzdné"
-
-#: ../../proxy.pm_.c:65
-msgid "Url should begin with 'ftp:'"
-msgstr "URL by mģlo bżt 'ftp:'"
-
-#: ../../proxy.pm_.c:79
-msgid ""
-"Please enter proxy login and password, if any.\n"
-"Leave it blank if you don't want login/passwd"
-msgstr ""
-"Pokud je potųeba, zadejte prosķm pųihla¹ovacķ jméno\n"
-"a heslo. Pokud je nepotųebujete, nechte prįzdné"
-
-#: ../../proxy.pm_.c:80
-msgid "login"
-msgstr "login"
-
-#: ../../proxy.pm_.c:82
-msgid "password"
-msgstr "heslo"
-
-#: ../../proxy.pm_.c:84
-msgid "re-type password"
-msgstr "heslo znova"
-
-#: ../../proxy.pm_.c:88
-msgid "The passwords don't match. Try again!"
-msgstr "Hesla nejsou shodnį. Zkuste to znovu!"
-
-#: ../../raid.pm_.c:35
-#, c-format
-msgid "Can't add a partition to _formatted_ RAID md%d"
-msgstr "Nemł¾u pųidat oddķl do _naformįtovaného_ RAID md%d"
-
-#: ../../raid.pm_.c:111
-#, c-format
-msgid "Can't write file %s"
-msgstr "Nemł¾u zapsat soubor %s"
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed"
-msgstr "mkraid neuspģl"
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed (maybe raidtools are missing?)"
-msgstr "mkraid neuspģl (mo¾nį, ¾e chybķ raidtools?)"
-
-#: ../../raid.pm_.c:152
-#, c-format
-msgid "Not enough partitions for RAID level %d\n"
-msgstr "Nenķ dostatek oddķlł pro RAID śrovnģ %d\n"
-
-#: ../../services.pm_.c:14
-msgid "Launch the ALSA (Advanced Linux Sound Architecture) sound system"
-msgstr "Spustit zvukovż systém ALSA (Advanced Linux Sound Architecture)"
-
-#: ../../services.pm_.c:15
-msgid "Anacron a periodic command scheduler."
-msgstr "Anacron - spou¹tķ opakujķcķ se akce"
-
-#: ../../services.pm_.c:16
-msgid ""
-"apmd is used for monitoring batery status and logging it via syslog.\n"
-"It can also be used for shutting down the machine when the battery is low."
-msgstr ""
-"apmd je pou¾ķvįn pro sledovįnķ stavu baterie a zaznamenįvįnķ pųes syslog.\n"
-"Mł¾e také bżt pou¾it pro vypnutķ počķtače pųi vybité baterii."
-
-#: ../../services.pm_.c:18
-msgid ""
-"Runs commands scheduled by the at command at the time specified when\n"
-"at was run, and runs batch commands when the load average is low enough."
-msgstr ""
-"Spou¹tķ pųķkazy naplįnované pųķkazem na určitż čas pųķkazem 'at'.\n"
-"Také spou¹tķ pųķkazy pųi nķzkém vytķ¾enķ systému."
-
-#: ../../services.pm_.c:20
-msgid ""
-"cron is a standard UNIX program that runs user-specified programs\n"
-"at periodic scheduled times. vixie cron adds a number of features to the "
-"basic\n"
-"UNIX cron, including better security and more powerful configuration options."
-msgstr ""
-"cron je standardnķ Unixovż program kterż spou¹tķ u¾ivatelem zadané programy\n"
-"v pųedem definovanżch intervalech. vixie cron mį navķc mnoho vlastnostķ,\n"
-"včetnģ vy¹¹ķ bezpečnosti a vķce mo¾nostķ nastavenķ."
-
-#: ../../services.pm_.c:23
-msgid ""
-"GPM adds mouse support to text-based Linux applications such the\n"
-"Midnight Commander. It also allows mouse-based console cut-and-paste "
-"operations,\n"
-"and includes support for pop-up menus on the console."
-msgstr ""
-"GPM pųidįvį do textovżch programł podporu my¹i (napų pro Midnight "
-"Commander).\n"
-"Mł¾e také v konzoli provįdģt operace 'vyjmi' a 'vlo¾' a ovlįdat pop-up menu."
-
-#: ../../services.pm_.c:26
-msgid ""
-"HardDrake runs a hardware probe, and optionally configures\n"
-"new/changed hardware."
-msgstr ""
-"HardDrake testuje hardware a umo¾ņuje novż/zmģnģnż\n"
-"hardware nastavit"
-
-#: ../../services.pm_.c:28 ../../standalone/logdrake_.c:412
-msgid ""
-"Apache is a World Wide Web server. It is used to serve HTML files and CGI."
-msgstr "Apache je WWW server. Je pou¾ķvįn k poskytovįnķ HTML a CGI souborł."
-
-#: ../../services.pm_.c:29
-msgid ""
-"The internet superserver daemon (commonly called inetd) starts a\n"
-"variety of other internet services as needed. It is responsible for "
-"starting\n"
-"many services, including telnet, ftp, rsh, and rlogin. Disabling inetd "
-"disables\n"
-"all of the services it is responsible for."
-msgstr ""
-"Internetovż superserver démon (nazżvanż inetd) spou¹tķ mnoho ostatnķch\n"
-"internetovżch slu¾eb, tak jak jsou zapotųebķ. Odpovķdį za start napų.\n"
-"telnetu, ftp, rsh a rlogin. Pokud vypnete inetd, vypnete tķm i ostatnķ\n"
-"slu¾by které spou¹tķ."
-
-#: ../../services.pm_.c:33
-msgid ""
-"Launch packet filtering for Linux kernel 2.2 series, to set\n"
-"up a firewall to protect your machine from network attacks."
-msgstr ""
-"Spustit paketovż filtr pro jįdra ųady 2.2, kterż chrįnķ počķtač\n"
-"proti śtokłm ze sķtģ."
-
-#: ../../services.pm_.c:35
-msgid ""
-"This package loads the selected keyboard map as set in\n"
-"/etc/sysconfig/keyboard. This can be selected using the kbdconfig utility.\n"
-"You should leave this enabled for most machines."
-msgstr ""
-"Tento balķček nahraje zvolenou mapu klįvesnice definovanou\n"
-"v /etc/sysconfig/keyboard. Tu lze vybrat pomocķ nįstroje kbdconfig.\n"
-"Pro vģt¹inu počķtačł byste ji mģli nechat zapnutou."
-
-#: ../../services.pm_.c:38
-msgid ""
-"Automatic regeneration of kernel header in /boot for\n"
-"/usr/include/linux/{autoconf,version}.h"
-msgstr ""
-"Automatickį generace hlavičky jįdra v adresįųi /boot\n"
-"pro soubory /usr/include/linux/{autoconf,version}.h"
-
-#: ../../services.pm_.c:40
-msgid "Automatic detection and configuration of hardware at boot."
-msgstr "Automatickį detekce a konfigurace hardware pųi spu¹tģnķ."
-
-#: ../../services.pm_.c:41
-msgid ""
-"Linuxconf will sometimes arrange to perform various tasks\n"
-"at boot-time to maintain the system configuration."
-msgstr ""
-"Linuxconf provįdķ rłzné śkoly pųi spu¹tģnķ systému\n"
-"nutné pro sprįvu systémové konfigurace."
-
-#: ../../services.pm_.c:43
-msgid ""
-"lpd is the print daemon required for lpr to work properly. It is\n"
-"basically a server that arbitrates print jobs to printer(s)."
-msgstr ""
-"lpd je tiskovż démon, bez kterého nebude fungovat lpr (program pro tisk).\n"
-"Je to server, kterż posķlį ti¹tģné dokumenty jednotlivżm tiskįrnįm."
-
-#: ../../services.pm_.c:45
-msgid ""
-"Linux Virtual Server, used to build a high-performance and highly\n"
-"available server."
-msgstr ""
-"Linux Virtual Server pou¾ķvanż pro sestavenķ vysoce vżkonného\n"
-"a dostupného serveru."
-
-#: ../../services.pm_.c:47 ../../standalone/logdrake_.c:413
-msgid ""
-"named (BIND) is a Domain Name Server (DNS) that is used to resolve host "
-"names to IP addresses."
-msgstr ""
-"named (BIND) je doménovż (DNS) server, kterż pųeklįdį hostitelskį jména na "
-"IP adresy."
-
-#: ../../services.pm_.c:48
-msgid ""
-"Mounts and unmounts all Network File System (NFS), SMB (Lan\n"
-"Manager/Windows), and NCP (NetWare) mount points."
-msgstr ""
-"Pųipojuje a odpojuje v¹echny sķ»ové (NFS), SMB (Lan/Windows) a Netware "
-"(NCP)\n"
-"pųķpojné body (mount points)."
-
-#: ../../services.pm_.c:50
-msgid ""
-"Activates/Deactivates all network interfaces configured to start\n"
-"at boot time."
-msgstr ""
-"Aktivuje či deaktivuje v¹echny sķ»ovį rozhranķ, kterį majķ nastartovat pųi\n"
-"startu systému."
-
-#: ../../services.pm_.c:52
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP networks.\n"
-"This service provides NFS server functionality, which is configured via the\n"
-"/etc/exports file."
-msgstr ""
-"NFS je oblķbenż protokol pro sdķlenķ souborł pųes sķtģ TCP/IP.\n"
-"Tato slu¾ba poskytuje NFS server, jeho¾ nastavenķ je v /etc/exports."
-
-#: ../../services.pm_.c:55
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP\n"
-"networks. This service provides NFS file locking functionality."
-msgstr ""
-"NFS je oblķbenż protokol pro sdķlenķ souborł pųes sķtģ TCP/IP.\n"
-"Tato slu¾ba poskytuje mo¾nost uzamykįnķ souborł na NFS."
-
-#: ../../services.pm_.c:57
-msgid ""
-"Automatically switch on numlock key locker under console\n"
-"and XFree at boot."
-msgstr ""
-"Automaticky nastavķ podporu numerické klįvesnice v konzoli\n"
-"a v XFree pųi startu."
-
-#: ../../services.pm_.c:59
-msgid "Support the OKI 4w and compatible winprinters."
-msgstr "Podpora pro OKI 4w a kompatibilnķ wintiskįrny."
-
-#: ../../services.pm_.c:60
-msgid ""
-"PCMCIA support is usually to support things like ethernet and\n"
-"modems in laptops. It won't get started unless configured so it is safe to "
-"have\n"
-"it installed on machines that don't need it."
-msgstr ""
-"Podpora PCMCIA vģt¹inou znamenį podporu zaųķzenķ jako sķ»ové karty a\n"
-"modemy v laptopech. Nespustķ se pokud ji pųķmo nenastavķte, ale nenķ "
-"problém\n"
-"jķ mķt nainstalovanou i na počķtačķch, které ji nepotųebujķ."
-
-#: ../../services.pm_.c:63
-msgid ""
-"The portmapper manages RPC connections, which are used by\n"
-"protocols such as NFS and NIS. The portmap server must be running on "
-"machines\n"
-"which act as servers for protocols which make use of the RPC mechanism."
-msgstr ""
-"Portmapper spravuje RPC spojenķ, kterį jsou pou¾ķvįna protokoly jako NFS\n"
-"a NIS. Portmap server musķ bżt spu¹tģn na počķtačķch, které fungujķ jako\n"
-"servery pro protokoly, které pou¾ķvajķ mechanismus RPC."
-
-#: ../../services.pm_.c:66 ../../standalone/logdrake_.c:415
-msgid ""
-"Postfix is a Mail Transport Agent, which is the program that moves mail from "
-"one machine to another."
-msgstr "Postfix je program pro doručovįnķ po¹ty z jednoho počķtače na jinż."
-
-#: ../../services.pm_.c:67
-msgid ""
-"Saves and restores system entropy pool for higher quality random\n"
-"number generation."
-msgstr ""
-"Uklįdį a obnovuje 'stav entropie' na počķtači, co¾ je pou¾ķvįno pro\n"
-"kvalitnģj¹ķ generaci nįhodnżch čķsel."
-
-#: ../../services.pm_.c:69
-msgid ""
-"Assign raw devices to block devices (such as hard drive\n"
-"partitions), for the use of applications such as Oracle"
-msgstr ""
-"Pųiųazuje pųķmį zaųķzenķ blokovżm (napųķklad diskové oddķly)\n"
-"pro aplikace jako je Oracle"
-
-#: ../../services.pm_.c:71
-msgid ""
-"The routed daemon allows for automatic IP router table updated via\n"
-"the RIP protocol. While RIP is widely used on small networks, more complex\n"
-"routing protocols are needed for complex networks."
-msgstr ""
-"Démon routed umo¾ņuje automaticky obnovovat smģrovacķ tabulku (router "
-"table)\n"
-"pro IP adresy. K tomu pou¾ķvį protokol RIP. Zatķmco RIP je bģ¾nģ pou¾ķvįn\n"
-"v malżch sķtķch, pro slo¾itģj¹ķ sķtģ je zapotųebķ slo¾itģj¹ķ protokoly."
-
-#: ../../services.pm_.c:74
-msgid ""
-"The rstat protocol allows users on a network to retrieve\n"
-"performance metrics for any machine on that network."
-msgstr ""
-"Protokol rstat umo¾ņuje u¾ivatelłm sķtģ sledovat vytķ¾enķ jednotlivżch\n"
-"strojł pųipojenżch k sķti."
-
-#: ../../services.pm_.c:76
-msgid ""
-"The rusers protocol allows users on a network to identify who is\n"
-"logged in on other responding machines."
-msgstr ""
-"Protokol rusers umo¾ņuje u¾ivatelłm sķtģ zjistit kdo je pųihlį¹en na\n"
-"jiném počķtači."
-
-#: ../../services.pm_.c:78
-msgid ""
-"The rwho protocol lets remote users get a list of all of the users\n"
-"logged into a machine running the rwho daemon (similiar to finger)."
-msgstr ""
-"Protokol rwho umo¾ņuje vzdįlenżm(remote) u¾ivatelłm zķskat seznam\n"
-"v¹ech u¾ivatelł pųihlį¹enżch na počķtači s démonem rwho (je to podobné\n"
-"slu¾bģ finger)."
-
-#: ../../services.pm_.c:80
-msgid "Launch the sound system on your machine"
-msgstr "Spustit zvukovż systém pųi startu"
-
-#: ../../services.pm_.c:81
-msgid ""
-"Syslog is the facility by which many daemons use to log messages\n"
-"to various system log files. It is a good idea to always run syslog."
-msgstr ""
-"Syslog je program pomocķ nģho¾ zaznamenįvį mnoho démonł sprįvy do "
-"systémovżch\n"
-"log souborł. Je dobré mķt spu¹tģnż syslog."
-
-#: ../../services.pm_.c:83
-msgid "Load the drivers for your usb devices."
-msgstr "Nahrįt ovladače pro usb zaųķzenķ."
-
-#: ../../services.pm_.c:84
-msgid "Starts the X Font Server (this is mandatory for XFree to run)."
-msgstr "Startuje X Font Server (to je nezbytné pro bģh XFree)."
-
-#: ../../services.pm_.c:110 ../../services.pm_.c:152
-msgid "Choose which services should be automatically started at boot time"
-msgstr "Zvolte si, které slu¾by by mģli bżt automaticky spu¹tģny pųi startu"
-
-#: ../../services.pm_.c:122
-msgid "Printing"
-msgstr "Tisk"
-
-#: ../../services.pm_.c:123
-msgid "Internet"
-msgstr "Internet"
-
-#: ../../services.pm_.c:126
-msgid "File sharing"
-msgstr "Sdķlenķ souborł"
-
-#: ../../services.pm_.c:128 ../../standalone/drakbackup_.c:934
-msgid "System"
-msgstr "Systém"
-
-#: ../../services.pm_.c:133
-msgid "Remote Administration"
-msgstr "Vzdįlenį administrace"
-
-#: ../../services.pm_.c:141
-msgid "Database Server"
-msgstr "Databįzové servery"
-
-#: ../../services.pm_.c:170
-#, c-format
-msgid "Services: %d activated for %d registered"
-msgstr "Sku¾by: aktivovįno %d z %d registrovanżch"
-
-#: ../../services.pm_.c:186
-msgid "Services"
-msgstr "Slu¾by"
-
-#: ../../services.pm_.c:198
-msgid "running"
-msgstr "spu¹tģno"
-
-#: ../../services.pm_.c:198
-msgid "stopped"
-msgstr "zastaveno"
-
-#: ../../services.pm_.c:212
-msgid "Services and deamons"
-msgstr "Slu¾by a démoni"
-
-#: ../../services.pm_.c:217
-msgid ""
-"No additional information\n"
-"about this service, sorry."
-msgstr ""
-"Nejsou ¾įdné dal¹ķ\n"
-"informace o slu¾bģ, sorry."
-
-#: ../../services.pm_.c:224
-msgid "On boot"
-msgstr "Pųi spu¹tģnķ"
-
-#: ../../services.pm_.c:236
-msgid "Start"
-msgstr "Start"
-
-#: ../../services.pm_.c:236
-msgid "Stop"
-msgstr "Stop"
-
-#: ../../share/advertising/00-thanks.pl_.c:9
-msgid "Thank you for choosing Mandrake Linux 8.2"
-msgstr "Dģkujeme vįm, ¾e jste si vybrali Mandrake Linux 8.2"
-
-#: ../../share/advertising/00-thanks.pl_.c:10
-msgid "Welcome to the Open Source world"
-msgstr "Vķtejte do svģta Open Source"
-
-#: ../../share/advertising/00-thanks.pl_.c:11
-msgid ""
-"The success of MandrakeSoft is based upon the principle of Free Software. "
-"Your new operating system is the result of collaborative work on the part of "
-"the worldwide Linux Community"
-msgstr ""
-"Śspģch společnosti MandrakeSoft je zalo¾en na principech Svobodného "
-"Software. Tento operačnķ systém je vżsledkem spoluprįce čįsti celosvģtové "
-"Linuxové komunity"
-
-#: ../../share/advertising/01-gnu.pl_.c:9
-msgid "Join the Free Software world"
-msgstr "Pųipojte se ke svģtu Svobodného Software"
-
-#: ../../share/advertising/01-gnu.pl_.c:10
-msgid ""
-"Get to know the Open Source community and become a member. Learn, teach, and "
-"help others by joining the many discussion forums that you will find in our "
-"\"Community\" webpages"
-msgstr ""
-"Chcete vģdģt vķce o Open Source komunitģ? Stįt se také členem? Pokud chcete "
-"sdķlet své vģdomosti, pomįhat vytvįųet nįstroje, pųipojte se do diskuznķch "
-"klubł, které najdete na na¹ich strįnkįch \"Community\""
-
-#: ../../share/advertising/02-internet.pl_.c:9
-msgid "Internet and Messaging"
-msgstr "Internet a zpracovįnķ zprįv"
-
-#: ../../share/advertising/02-internet.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best software to access everything the "
-"Internet has to offer: Surf the web & view animations with Mozilla and "
-"Konqueror, exchange email & organize your personal information with "
-"Evolution and Kmail, and much more"
-msgstr ""
-"Mandrake Linux 8.2 nabķzķ ten nejlep¹ķ vżbģr software pro pųķstup ke v¹emu, "
-"co nabķzķ Internet. S pomocķ Mozilly a Konquerora mł¾ete prohlķ¾et webové "
-"strįnky a animace, ke čtenķ po¹ty a zpracovįnķ osobnķch informacķ lze pou¾ķt "
-"Evolution a Kmail a vyu¾ķt mno¾stvķ jinżch programł"
-
-#: ../../share/advertising/03-graphic.pl_.c:9
-msgid "Multimedia and Graphics"
-msgstr "Multimédia a grafika"
-
-#: ../../share/advertising/03-graphic.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 lets you push your multimedia computer to its limits! Use "
-"the latest software to play music and audio files, edit and organize your "
-"images and photos, watch TV and videos, and much more"
-msgstr ""
-"Mandrake Linux 8.2 dovoluje naplno vyu¾ķt v¹ech multimediįlnķch schopnostķ "
-"počķtače! Mł¾ete tak pųehrįvat rłzné hudebnķ soubory, editovat či kreslit "
-"obrįzky nebo fotografie, sledovat TV a video atd."
-
-#: ../../share/advertising/04-develop.pl_.c:9
-msgid "Development"
-msgstr "Vżvoj"
-
-#: ../../share/advertising/04-develop.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 is the ultimate development platform. Discover the power "
-"of the GNU gcc compiler as well as the best Open Source development "
-"environments"
-msgstr ""
-"Mandrake Linux 8.2 je vynikajķcķ platformou pro vżvoj. Mł¾ete vyu¾ķt silnż "
-"GNU gcc kompilįtor a dal¹ķ prostųedky na vżvoj Open Source aplikacķ"
-
-#: ../../share/advertising/05-contcenter.pl_.c:9
-msgid "Mandrake Control Center"
-msgstr "Ųķdķcķ centrum Mandrake"
-
-#: ../../share/advertising/05-contcenter.pl_.c:10
-msgid ""
-"The Mandrake Linux 8.2 Control Center is a one-stop location for fully "
-"customizing and configuring your Mandrake system"
-msgstr ""
-"Ųķdķcķ centrum pro Mandrake Linux 8.2 poskytuje vżkonné nįstroje na sprįvu a "
-"nastavenķ va¹eho počķtače"
-
-#: ../../share/advertising/06-user.pl_.c:9
-msgid "User interfaces"
-msgstr "U¾ivatelskį rozhranķ"
-
-#: ../../share/advertising/06-user.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides 11 different graphical desktop environments and "
-"window managers to choose from including GNOME 1.4, KDE 2.2.2, Window Maker "
-"0.8, and the rest"
-msgstr ""
-"Distribuce Mandrake Linux 8.2 nabķzķ 11 rłznżch grafickżch u¾ivatelskżch "
-"rozhranķ, včetnģ GNOME 1.4, KDE 2.2.2, Window Maker, ..."
-
-#: ../../share/advertising/07-server.pl_.c:9
-msgid "Server Software"
-msgstr "Software pro servery"
-
-#: ../../share/advertising/07-server.pl_.c:10
-msgid ""
-"Transform your machine into a powerful server with just a few clicks of the "
-"mouse: Web server, email, firewall, router, file and print server, ..."
-msgstr ""
-"Vį¹ počķtač lze nģkolika kliknutķmi my¹i zmģnit na velmi vżkonnż server: "
-"webovż server, po¹tovnķ server, firewall, router, souborovż a tiskovż server"
-
-#: ../../share/advertising/08-games.pl_.c:9
-msgid "Games"
-msgstr "Hry"
-
-#: ../../share/advertising/08-games.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best Open Source games - arcade, action, "
-"cards, sports, strategy, ..."
-msgstr ""
-"Mandrake Linux 8.2 nabķzķ ty nejlep¹ķ Open Source hry - arkįdy, akčnķ, "
-"karetnķ, sportovnķ, strategické, ..."
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:9
-msgid "MandrakeCampus"
-msgstr "MandrakeCampus"
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:10
-msgid ""
-"Would you like to learn Linux simply, quickly, and for free? MandrakeSoft "
-"provides free Linux training, as well as a way to test your progress, at "
-"MandrakeCampus -- our online training center"
-msgstr ""
-"Chcete se dozvģdģt o Linuxu jednoduchou, rychlou a snadnou cestou? "
-"Poskytujeme zdarma ¹kolenķ Linuxu, stejnģ jako testy va¹ich znalostķ "
-"prostųednictvķm online ¹kolķcķho centra MandrakeCampus"
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:9
-msgid "MandrakeExpert"
-msgstr "MandrakeExpert"
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:10
-msgid ""
-"Quality support from the Linux Community, and from MandrakeSoft, is just "
-"around the corner. And if you're already a Linux veteran, become an \"Expert"
-"\" and share your knowledge at our support website"
-msgstr ""
-"Kvalitnķ podpora jak Linuxové komunity tak z firmy MandrakeSoft je ji¾ k "
-"dispozici! Staņte se \"expertem\" a mł¾ete pomįhat jak dal¹ķm u¾ivatelłm tak "
-"také podporovat na¹e strįnky"
-
-#: ../../share/advertising/11-consul.pl_.c:9
-msgid "MandrakeConsulting"
-msgstr "MandrakeConsulting"
-
-#: ../../share/advertising/11-consul.pl_.c:10
-msgid ""
-"For all of your IT projects, our consultants are ready to analyze your "
-"requirements and offer a customized solution. Benefit from MandrakeSoft's "
-"vast experience as a Linux producer to provide a true IT alternative for "
-"your business organization"
-msgstr ""
-"Na¹i konzultanti jsou pųipraveni analyzovat po¾adavky a nabķdnout ųe¹enķ "
-"v¹ech va¹ich IT projektł. MandrakeSoft je firma, kterį mį velké zku¹enosti "
-"jako vydavatel distribucķ a nabķzķ opravdovou alternativu pro IT ųe¹enķ v "
-"podniku"
-
-#: ../../share/advertising/12-MDKstore.pl_.c:9
-msgid "MandrakeStore"
-msgstr "MandrakeStore"
-
-#: ../../share/advertising/12-MDKstore.pl_.c:10
-msgid ""
-"A full range of Linux solutions, as well as special offers on products and "
-"'goodies', are available online at our e-store"
-msgstr ""
-"Nį¹ elektronickż obchod nabķzķ velké mno¾stvķ Linuxovżch ųe¹enķ, speciįlnķ "
-"nabķdky na¹eho software a dal¹ķ 'lahłdky'"
-
-#: ../../share/advertising/13-Nvert.pl_.c:9
-msgid ""
-"For more information on MandrakeSoft's Professional Services and commercial "
-"offerings, please see the following web page:"
-msgstr ""
-"Pokud chcete zķskat vķce informacķ o profesionįlnķch slu¾bįch fy "
-"MandrakeSoft a komerčnķch nabķdkįch, podķvejte se prosķm na nķ¾e uvedenou "
-"webovou strįnku:"
-
-#: ../../share/advertising/13-Nvert.pl_.c:11
-msgid "http://www.mandrakesoft.com/sales/contact"
-msgstr "http://www.mandrakesoft.com/sales/contact"
-
-#: ../../standalone.pm_.c:25
-msgid "Installing packages..."
-msgstr "Instaluji balķčky..."
-
-#: ../../standalone/diskdrake_.c:85
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I'll try to go on blanking bad partitions"
-msgstr ""
-"Nemł¾u pųečķst va¹i tabulku oddķlł, mo¾nį je pųķli¹ naru¹enį :(\n"
-"Pokusķm se pokračovat v či¹tģnķ ¹patnżch oddķlł"
-
-#: ../../standalone/drakautoinst_.c:45
-msgid "Error!"
-msgstr "Chyba!"
-
-#: ../../standalone/drakautoinst_.c:46
-#, c-format
-msgid "I can't find needed image file `%s'."
-msgstr "Nemohu najķt potųebnż soubor '%s ' s obrazem."
-
-#: ../../standalone/drakautoinst_.c:48
-msgid "Auto Install Configurator"
-msgstr "Nastavenķ automatické instalace"
-
-#: ../../standalone/drakautoinst_.c:49
-msgid ""
-"You are about to configure an Auto Install floppy. This feature is somewhat "
-"dangerous and must be used circumspectly.\n"
-"\n"
-"With that feature, you will be able to replay the installation you've "
-"performed on this computer, being interactively prompted for some steps, in "
-"order to change their values.\n"
-"\n"
-"For maximum safety, the partitioning and formatting will never be performed "
-"automatically, whatever you chose during the install of this computer.\n"
-"\n"
-"Do you want to continue?"
-msgstr ""
-"Zde mł¾ete nastavit disketu pro automatickou instalaci. Tato volba je nģkdy "
-"nebezpečnį a mģla by se pou¾ķvat s opatrnostķ.\n"
-"\n"
-"Tato disketa dovoluje zopakovat instalaci, kterį ji¾ na tomto počķtači byla "
-"provedena s tķm, ¾e v nģkterżch krocķch lze zadat jiné hodnoty.\n"
-"\n"
-"Pro maximįlnķ bezpečnost nenķ rozdģlovįnķ diskł ani formįtovįnķ provįdģno "
-"automaticky, i pųesto, pokud to pųi instalaci zvolķte.\n"
-"\n"
-"Chcete pokračovat?"
-
-#: ../../standalone/drakautoinst_.c:71
-msgid "Automatic Steps Configuration"
-msgstr "Nastavenķ automatickżch krokł"
-
-#: ../../standalone/drakautoinst_.c:72
-msgid ""
-"Please choose for each step whether it will replay like your install, or it "
-"will be manual"
-msgstr ""
-"Vyberte prosķm, kterż z krokł instalace mį bżt proveden automaticky stejnģ "
-"jako instalačnķ program nebo bude ručnģ zadįn"
-
-#: ../../standalone/drakautoinst_.c:145
-msgid ""
-"\n"
-"Welcome.\n"
-"\n"
-"The parameters of the auto-install are available in the sections on the left"
-msgstr ""
-"\n"
-"Vķtejte.\n"
-"\n"
-"Parametry pro automatickou instalaci jsou pųķstupné v sekci nalevo"
-
-#: ../../standalone/drakautoinst_.c:243 ../../standalone/drakgw_.c:671
-#: ../../standalone/scannerdrake_.c:106
-msgid "Congratulations!"
-msgstr "Gratuluji!"
-
-#: ../../standalone/drakautoinst_.c:244
-msgid ""
-"The floppy has been successfully generated.\n"
-"You may now replay your installation."
-msgstr ""
-"Disketa byla s śspģchem vytvoųena.\n"
-"Nynķ lze provést znovu instalaci."
-
-#: ../../standalone/drakautoinst_.c:282
-msgid "Auto Install"
-msgstr "Automatickį instalace"
-
-#: ../../standalone/drakautoinst_.c:352
-msgid "Add an item"
-msgstr "Pųidat polo¾ku"
-
-#: ../../standalone/drakautoinst_.c:359
-msgid "Remove the last item"
-msgstr "Odstranit poslednķ polo¾ku"
-
-#: ../../standalone/drakbackup_.c:448 ../../standalone/drakbackup_.c:451
-#: ../../standalone/drakbackup_.c:455
-msgid ""
-"***********************************************************************\n"
-"\n"
-msgstr ""
-"***********************************************************************\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:449
-msgid ""
-"\n"
-" DrakBackup Report \n"
-"\n"
-msgstr ""
-"\n"
-" Report programu DrackBackup \n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:450
-msgid ""
-"\n"
-" DrakBackup Daemon Report\n"
-"\n"
-"\n"
-msgstr ""
-"\n"
-" Report démonu pro DrackBackup\n"
-"\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:453
-msgid ""
-"\n"
-"\n"
-"***********************************************************************\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"***********************************************************************\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:454
-msgid ""
-"\n"
-" DrakBackup Report Details\n"
-"\n"
-"\n"
-msgstr ""
-"\n"
-" Detaily o reportu pro DrackBackup\n"
-"\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:476
-msgid "total progess"
-msgstr "celkovż prłbģh"
-
-#: ../../standalone/drakbackup_.c:555 ../../standalone/drakbackup_.c:602
-msgid "Backup system files..."
-msgstr "Zįlohovat systémové soubory..."
-
-#: ../../standalone/drakbackup_.c:603 ../../standalone/drakbackup_.c:667
-msgid "Hard Disk Backup files..."
-msgstr "Zįlo¾nķ soubory pevného disku..."
-
-#: ../../standalone/drakbackup_.c:615
-msgid "Backup User files..."
-msgstr "Zįlohovat soubory u¾ivatelł..."
-
-#: ../../standalone/drakbackup_.c:616
-msgid "Hard Disk Backup Progress..."
-msgstr "Prłbģh zįlohovįnķ na pevnż disk... "
-
-#: ../../standalone/drakbackup_.c:666
-msgid "Backup Other files..."
-msgstr "Zįlohovat dal¹ķ soubory..."
-
-#: ../../standalone/drakbackup_.c:674
-#, c-format
-msgid ""
-"file list send by FTP : %s\n"
-" "
-msgstr ""
-"seznam souborł poslanż na FTP : %s\n"
-" "
-
-#: ../../standalone/drakbackup_.c:677
-msgid ""
-"\n"
-"(!) FTP connexion problem: It was not possible to send your backup files by "
-"FTP.\n"
-msgstr ""
-"\n"
-"(!) Problémy FTP spojenķ: nebylo mo¾né poslat data pro zįlohu pųes FTP.\n"
-
-#: ../../standalone/drakbackup_.c:687
-msgid "(!) Error during mail sending. \n"
-msgstr "(!) Chyba pųi posķlįnķ po¹ty. \n"
-
-#: ../../standalone/drakbackup_.c:728 ../../standalone/drakbackup_.c:739
-#: ../../standalone/drakbackup_.c:750 ../../standalone/drakfont_.c:787
-msgid "File Selection"
-msgstr "Vżbģr souboru"
-
-#: ../../standalone/drakbackup_.c:755
-msgid "Select the files or directories and click on 'Add'"
-msgstr "Vyberte soubory nebo adresįųe a kliknģte na 'Pųidat'"
-
-#: ../../standalone/drakbackup_.c:790
-msgid ""
-"\n"
-"Please check all options that you need.\n"
-msgstr ""
-"\n"
-"Zvolte prosķm v¹echny volby, které potųebujete.\n"
-
-#: ../../standalone/drakbackup_.c:791
-msgid ""
-"These options can backup and restore all files in your /etc directory.\n"
-msgstr "Tato volba zazįlohuje a obnovķ v¹echny soubory v adresįųi /etc.\n"
-
-#: ../../standalone/drakbackup_.c:792
-msgid "Backup your System files. ( /etc directory )"
-msgstr "Zįlohovat systémové soubory ( adresįų /etc )"
-
-#: ../../standalone/drakbackup_.c:793
-msgid "Use incremental backup (do not replace old backups)"
-msgstr "Pou¾ķt pųķrłstkovou zįlohu (nepųepisovat star¹ķ zįlohy)"
-
-#: ../../standalone/drakbackup_.c:794
-msgid "Do not include critical files (passwd, group, fstab)"
-msgstr "Nezahrnout kritické soubory (passwd, group, fstab)"
-
-#: ../../standalone/drakbackup_.c:795
-msgid ""
-"With this option you will be able to restore any version\n"
-" of your /etc directory."
-msgstr "Tato volba dovolķ obnovit rłzné verze adresįųe /etc."
-
-#: ../../standalone/drakbackup_.c:812
-msgid "Please check all users that you want to include in your backup."
-msgstr "Zvolte prosķm v¹echny u¾ivatele, které chcete zįlohovat."
-
-#: ../../standalone/drakbackup_.c:839
-msgid "Do not include the browser cache"
-msgstr "Nezahrnout cache prohlķ¾eče"
-
-#: ../../standalone/drakbackup_.c:840 ../../standalone/drakbackup_.c:864
-msgid "Use Incremental Backups (do not replace old backups)"
-msgstr "Pou¾ķt pųķrłstkovou zįlohu (nepųepisovat star¹ķ zįlohy)"
-
-#: ../../standalone/drakbackup_.c:862 ../../standalone/drakfont_.c:827
-msgid "Remove Selected"
-msgstr "Odstranit vybrané"
-
-#: ../../standalone/drakbackup_.c:900
-msgid "Windows (FAT32)"
-msgstr "Windows (FAT32)"
-
-#: ../../standalone/drakbackup_.c:939
-msgid "Users"
-msgstr "U¾ivatelé"
-
-#: ../../standalone/drakbackup_.c:964
-msgid "Use FTP connection to backup"
-msgstr "Pou¾ķt FTP pųipojenķ pro zįlohu"
-
-#: ../../standalone/drakbackup_.c:967
-msgid "Please enter the host name or IP."
-msgstr "Zadejte prosķm jméno počķtače nebo IP."
-
-#: ../../standalone/drakbackup_.c:972
-msgid ""
-"Please enter the directory to\n"
-" put the backup on this host."
-msgstr ""
-"Zadejte adresįų, do kterého\n"
-" bude umķstģna zįloha."
-
-#: ../../standalone/drakbackup_.c:977
-msgid "Please enter your login"
-msgstr "Zadejte své pųihla¹ovacķ jméno"
-
-#: ../../standalone/drakbackup_.c:982
-msgid "Please enter your password"
-msgstr "Zadejte své heslo"
-
-#: ../../standalone/drakbackup_.c:988
-msgid "Remember this password"
-msgstr "Pamatovat si heslo"
-
-#: ../../standalone/drakbackup_.c:1052 ../../standalone/drakbackup_.c:2048
-msgid "FTP Connection"
-msgstr "FTP pųipojenķ"
-
-#: ../../standalone/drakbackup_.c:1059 ../../standalone/drakbackup_.c:2056
-msgid "Secure Connection"
-msgstr "Bezpečné pųipojenķ"
-
-#: ../../standalone/drakbackup_.c:1085 ../../standalone/drakbackup_.c:2889
-msgid "Use CD/DVDROM to backup"
-msgstr "Pou¾ķt pro zįlohovįnķ CD/DVDROM"
-
-#: ../../standalone/drakbackup_.c:1088 ../../standalone/drakbackup_.c:2893
-msgid "Please choose your CD space"
-msgstr "Vyberte si velikost CD média"
-
-#: ../../standalone/drakbackup_.c:1094 ../../standalone/drakbackup_.c:2905
-msgid "Please check if you are using CDRW media"
-msgstr "Zvolte pokud pou¾ķvįte CDRW média"
-
-#: ../../standalone/drakbackup_.c:1100 ../../standalone/drakbackup_.c:2911
-msgid "Please check if you want to erase your CDRW before"
-msgstr "Pokud CDRW médium nejdųķve smazat, zatrhnģte"
-
-#: ../../standalone/drakbackup_.c:1106
-msgid ""
-"Please check if you want to include\n"
-" install boot on your CD."
-msgstr ""
-"Pokud chcete mķt spou¹tģcķ CD,\n"
-" zatrhnģte tuto volbu."
-
-#: ../../standalone/drakbackup_.c:1112
-msgid ""
-"Please enter your CD Writer device name\n"
-" ex: 0,1,0"
-msgstr ""
-"Zadejte jméno va¹ķ vypalovačky CD\n"
-" napų.: 1,0,0"
-
-#: ../../standalone/drakbackup_.c:1153
-msgid "Use tape to backup"
-msgstr "Pou¾ķt pįskovou jednotku"
-
-#: ../../standalone/drakbackup_.c:1156
-msgid "Please enter the device name to use for backup"
-msgstr "Zadejte jméno zaųķzenķ, na které se bude zįlohovat"
-
-#: ../../standalone/drakbackup_.c:1162 ../../standalone/drakbackup_.c:1203
-#: ../../standalone/drakbackup_.c:2013
-msgid ""
-"Please enter the maximum size\n"
-" allowed for Drakbackup"
-msgstr ""
-"Zadejte prosķm maximįlnķ velikost\n"
-" povolenou pro Drakbackup"
-
-#: ../../standalone/drakbackup_.c:1195 ../../standalone/drakbackup_.c:2005
-msgid "Please enter the directory to save:"
-msgstr "Zadejte adresįų, kam bude umķstģna zįloha:"
-
-#: ../../standalone/drakbackup_.c:1209 ../../standalone/drakbackup_.c:2019
-msgid "Use quota for backup files."
-msgstr "Pou¾ķt kvóty pro zįlo¾nķ soubory."
-
-#: ../../standalone/drakbackup_.c:1267
-msgid "Network"
-msgstr "Sķ»"
-
-#: ../../standalone/drakbackup_.c:1272
-msgid "CDROM / DVDROM"
-msgstr "CDROM / DVDROM"
-
-#: ../../standalone/drakbackup_.c:1277
-msgid "HardDrive / NFS"
-msgstr "Pevnż disk / NFS"
-
-#: ../../standalone/drakbackup_.c:1297 ../../standalone/drakbackup_.c:1301
-#: ../../standalone/drakbackup_.c:1305
-msgid "hourly"
-msgstr "ka¾dou hodinu"
-
-#: ../../standalone/drakbackup_.c:1298 ../../standalone/drakbackup_.c:1302
-#: ../../standalone/drakbackup_.c:1305
-msgid "daily"
-msgstr "ka¾dż den"
-
-#: ../../standalone/drakbackup_.c:1299 ../../standalone/drakbackup_.c:1303
-#: ../../standalone/drakbackup_.c:1305
-msgid "weekly"
-msgstr "ka¾dż tżden"
-
-#: ../../standalone/drakbackup_.c:1300 ../../standalone/drakbackup_.c:1304
-#: ../../standalone/drakbackup_.c:1305
-msgid "monthly"
-msgstr "ka¾dż mģsķc"
-
-#: ../../standalone/drakbackup_.c:1312
-msgid "Use daemon"
-msgstr "Pou¾ķt démona"
-
-#: ../../standalone/drakbackup_.c:1317
-msgid ""
-"Please choose the time \n"
-"interval between each backup"
-msgstr ""
-"Vyberte si interval mezi\n"
-"jednotlivżmi zįlohami"
-
-#: ../../standalone/drakbackup_.c:1323
-msgid ""
-"Please choose the\n"
-"media for backup."
-msgstr ""
-"Prosķm zvolte si\n"
-"médium pro zįlohy."
-
-#: ../../standalone/drakbackup_.c:1327
-msgid "Use Hard Drive with daemon"
-msgstr "Pou¾ķt pro pevnż disk démona"
-
-#: ../../standalone/drakbackup_.c:1329
-msgid "Use FTP with daemon"
-msgstr "Pou¾ķt pro sķ» démona"
-
-#: ../../standalone/drakbackup_.c:1333
-msgid "Please be sure that the cron daemon is included in your services."
-msgstr "Ujistģte se, ¾e mezi slu¾bami je pųķtomen cron démon."
-
-#: ../../standalone/drakbackup_.c:1369
-msgid "Send mail report after each backup to :"
-msgstr "Poslat report po zįloze mailem na :"
-
-#: ../../standalone/drakbackup_.c:1411
-msgid "What"
-msgstr "Co"
-
-#: ../../standalone/drakbackup_.c:1416
-msgid "Where"
-msgstr "Kde"
-
-#: ../../standalone/drakbackup_.c:1421
-msgid "When"
-msgstr "Kdy"
-
-#: ../../standalone/drakbackup_.c:1426
-msgid "More Options"
-msgstr "Dal¹ķ volby"
-
-#: ../../standalone/drakbackup_.c:1445 ../../standalone/drakbackup_.c:2801
-msgid "Drakbackup Configuration"
-msgstr "Nastavenķ pro DrakBackup"
-
-#: ../../standalone/drakbackup_.c:1463
-msgid "Please choose where you want to backup"
-msgstr "Vyberte si, prosķm, kam chcete zįlohovat."
-
-#: ../../standalone/drakbackup_.c:1465
-msgid "on Hard Drive"
-msgstr "na pevnż disk"
-
-#: ../../standalone/drakbackup_.c:1476
-msgid "across Network"
-msgstr "pųes sķ»"
-
-#: ../../standalone/drakbackup_.c:1540
-msgid "Please choose what you want to backup"
-msgstr "Prosķm vyberte si, co chcete zįlohovat"
-
-#: ../../standalone/drakbackup_.c:1541
-msgid "Backup system"
-msgstr "Zįlohovat systém"
-
-#: ../../standalone/drakbackup_.c:1542
-msgid "Backup Users"
-msgstr "Zįlohovat u¾ivatele"
-
-#: ../../standalone/drakbackup_.c:1545
-msgid "Select user manually"
-msgstr "Vybrat u¾ivatele manuįlnģ"
-
-#: ../../standalone/drakbackup_.c:1627
-msgid ""
-"\n"
-"Backup Sources: \n"
-msgstr ""
-"\n"
-"Zdroje pro zįlohu:\n"
-
-#: ../../standalone/drakbackup_.c:1628
-msgid ""
-"\n"
-"- System Files:\n"
-msgstr ""
-"\n"
-"- Systémové soubory:\n"
-
-#: ../../standalone/drakbackup_.c:1630
-msgid ""
-"\n"
-"- User Files:\n"
-msgstr ""
-"\n"
-"- Soubory u¾ivatelł:\n"
-
-#: ../../standalone/drakbackup_.c:1632
-msgid ""
-"\n"
-"- Other Files:\n"
-msgstr ""
-"\n"
-"- Dal¹ķ soubory:\n"
-
-#: ../../standalone/drakbackup_.c:1634
-#, c-format
-msgid ""
-"\n"
-"- Save on Hard drive on path : %s\n"
-msgstr ""
-"\n"
-"- Ulo¾it na pevnż disk do adresįųe: %s\n"
-
-#: ../../standalone/drakbackup_.c:1635
-#, c-format
-msgid ""
-"\n"
-"- Save on FTP on host : %s\n"
-msgstr ""
-"\n"
-"- Ulo¾it na FTP na počķtač: %s\n"
-
-#: ../../standalone/drakbackup_.c:1636
-#, c-format
-msgid ""
-"\t\t user name: %s\n"
-"\t\t on path: %s \n"
-msgstr ""
-"\t\t u¾ivatelské jméno: %s\n"
-"\t\t cesta: %s \n"
-
-#: ../../standalone/drakbackup_.c:1637
-msgid ""
-"\n"
-"- Options:\n"
-msgstr ""
-"\n"
-"- Volby:\n"
-
-#: ../../standalone/drakbackup_.c:1638
-msgid "\tDo not include System Files\n"
-msgstr "\tNezahrnout systémové soubory\n"
-
-#: ../../standalone/drakbackup_.c:1639
-msgid "\tBackups use tar and bzip2\n"
-msgstr "\tZįlohovįnķ pou¾ķvį tar a bzip2\n"
-
-#: ../../standalone/drakbackup_.c:1640
-msgid "\tBackups use tar and gzip\n"
-msgstr "\tZįlohovįnķ pou¾ķvį tar a gzip\n"
-
-#: ../../standalone/drakbackup_.c:1641
-#, c-format
-msgid ""
-"\n"
-"- Daemon (%s) include :\n"
-msgstr ""
-"\n"
-"- Démon (%s) zahrnuje :\n"
-
-#: ../../standalone/drakbackup_.c:1642
-msgid "\t-Hard drive.\n"
-msgstr "\t-Pevnż disk.\n"
-
-#: ../../standalone/drakbackup_.c:1643
-msgid "\t-CDROM.\n"
-msgstr "\t-CDROM.\n"
-
-#: ../../standalone/drakbackup_.c:1644
-msgid "\t-Network by FTP.\n"
-msgstr "\t-Sķtķ pųes FTP.\n"
-
-#: ../../standalone/drakbackup_.c:1645
-msgid "\t-Network by SSH.\n"
-msgstr "\t-Sķtķ pųes SSH.\n"
-
-#: ../../standalone/drakbackup_.c:1647
-msgid "No configuration, please click Wizard or Advanced.\n"
-msgstr "Pro prvnķ spu¹tģnķ pou¾ijte Prłvodce nebo Roz¹ķųené.\n"
-
-#: ../../standalone/drakbackup_.c:1652
-msgid ""
-"List of data to restore:\n"
-"\n"
-msgstr ""
-"Seznam dat pro obnovenķ:\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:1753
-msgid ""
-"List of data corrupted:\n"
-"\n"
-msgstr ""
-"Seznam po¹kozenżch dat:\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:1755
-msgid "Please uncheck or remove it on next time."
-msgstr "Zru¹te tuto volbu pųi dal¹ķm spu¹tģnķ."
-
-#: ../../standalone/drakbackup_.c:1765
-msgid "Backup files are corrupted"
-msgstr "Zįlo¾nķ soubory jsou po¹kozené"
-
-#: ../../standalone/drakbackup_.c:1786
-msgid " All your selectionned data have been "
-msgstr " V¹echna vybranį data byla "
-
-#: ../../standalone/drakbackup_.c:1787
-#, c-format
-msgid " Successfuly Restored on %s "
-msgstr " Śspģ¹nģ obnoveno na %s "
-
-#: ../../standalone/drakbackup_.c:1886
-msgid " Restore Configuration "
-msgstr " Obnovit konfiguraci "
-
-#: ../../standalone/drakbackup_.c:1904
-msgid "OK to restore the other files."
-msgstr "Obnovit také ostatnķ soubory."
-
-#: ../../standalone/drakbackup_.c:1922
-msgid "User list to restore (only the most recent date per user is important)"
-msgstr ""
-"Seznam u¾ivatelł pro obnovenķ (od ka¾dého bude obnovena pouze poslednķ "
-"zįloha)"
-
-#: ../../standalone/drakbackup_.c:1972
-msgid "Backup the system files before:"
-msgstr "Zįlohovat systémové soubory pųed:"
-
-#: ../../standalone/drakbackup_.c:1974
-msgid "please choose the date to restore"
-msgstr "Vyberte datum obnovenķ zįlohy"
-
-#: ../../standalone/drakbackup_.c:2002
-msgid "Use Hard Disk to backup"
-msgstr "Pou¾ķt pro zįlohovįnķ pevnż disk"
-
-#: ../../standalone/drakbackup_.c:2083
-msgid "Restore from Hard Disk."
-msgstr "Obnovit z pevného disku."
-
-#: ../../standalone/drakbackup_.c:2085
-msgid "Please enter the directory where backups are stored"
-msgstr "Zadejte adresįų, kde jsou umķstģny zįlohy"
-
-#: ../../standalone/drakbackup_.c:2143
-msgid "Select another media to restore from"
-msgstr "Vyberte dal¹ķ médium, kde jsou umķstģny zįlohy"
-
-#: ../../standalone/drakbackup_.c:2145
-msgid "Other Media"
-msgstr "Dal¹ķ média"
-
-#: ../../standalone/drakbackup_.c:2151
-msgid "Restore system"
-msgstr "Obnovit systém"
-
-#: ../../standalone/drakbackup_.c:2152
-msgid "Restore Users"
-msgstr "Obnovit u¾ivatele"
-
-#: ../../standalone/drakbackup_.c:2153
-msgid "Restore Other"
-msgstr "Obnovit ostatnķ"
-
-#: ../../standalone/drakbackup_.c:2155
-msgid "select path to restore (instead of / )"
-msgstr "vyberte cestu pro obnovu (kromģ / )"
-
-#: ../../standalone/drakbackup_.c:2159
-msgid "Do new backup before restore (only for incremental backups.)"
-msgstr "Provést novou zįlohu pųed obnovou (pouze pro pųķrłstkovou zįlohu)"
-
-#: ../../standalone/drakbackup_.c:2160
-msgid "Remove user directories before restore."
-msgstr "Odebrat adresįųe u¾ivatele pųed obnovou."
-
-#: ../../standalone/drakbackup_.c:2217
-msgid "Restore all backups"
-msgstr "Obnovit v¹echny zįlohy"
-
-#: ../../standalone/drakbackup_.c:2225
-msgid "Custom Restore"
-msgstr "Vlastnķ obnova"
-
-#: ../../standalone/drakbackup_.c:2266 ../../standalone/drakbackup_.c:2291
-#: ../../standalone/drakbackup_.c:2312 ../../standalone/drakbackup_.c:2333
-#: ../../standalone/drakbackup_.c:2351 ../../standalone/drakbackup_.c:2383
-#: ../../standalone/drakbackup_.c:2399 ../../standalone/drakbackup_.c:2419
-#: ../../standalone/drakbackup_.c:2438 ../../standalone/drakbackup_.c:2460
-#: ../../standalone/drakfont_.c:575
-msgid "Help"
-msgstr "Nįpovģda"
-
-#: ../../standalone/drakbackup_.c:2269 ../../standalone/drakbackup_.c:2296
-#: ../../standalone/drakbackup_.c:2315 ../../standalone/drakbackup_.c:2336
-#: ../../standalone/drakbackup_.c:2354 ../../standalone/drakbackup_.c:2402
-#: ../../standalone/drakbackup_.c:2422 ../../standalone/drakbackup_.c:2441
-msgid "Previous"
-msgstr "Pųedchozķ"
-
-#: ../../standalone/drakbackup_.c:2271 ../../standalone/drakbackup_.c:2338
-#: ../../standalone/logdrake_.c:224
-msgid "Save"
-msgstr "Ulo¾it"
-
-#: ../../standalone/drakbackup_.c:2317
-msgid "Build Backup"
-msgstr "Vytvoųit zįlohu"
-
-#: ../../standalone/drakbackup_.c:2356 ../../standalone/drakbackup_.c:3033
-msgid "Restore"
-msgstr "Obnovit"
-
-#: ../../standalone/drakbackup_.c:2404 ../../standalone/drakbackup_.c:2424
-#: ../../standalone/drakbackup_.c:2445
-msgid "Next"
-msgstr "Dal¹ķ"
-
-#: ../../standalone/drakbackup_.c:2478
-msgid ""
-"Please Build backup before to restore it...\n"
-" or verify that your path to save is correct."
-msgstr ""
-"Dųķve ne¾ budete obnovovat, vytvoųte zįlohu...\n"
-"nebo ovģųte, ¾e danį cesta je sprįvnį."
-
-#: ../../standalone/drakbackup_.c:2499
-msgid ""
-"Error durind sendmail\n"
-" your report mail was not sent\n"
-" Please configure sendmail"
-msgstr ""
-"Chyba pųi posķlįnķ po¹ty\n"
-" vįmi zvolenż report nebyl odeslįn\n"
-" Proveļte prosķm nastavenķ sendmailu"
-
-#: ../../standalone/drakbackup_.c:2522
-msgid "Package List to Install"
-msgstr "Seznam balķčkł pro instalaci"
-
-#: ../../standalone/drakbackup_.c:2550
-msgid ""
-"Error durind sending file via FTP.\n"
-" Please correct your FTP configuration."
-msgstr ""
-"Chyba pųi posķlįnķ souborł pųes FTP.\n"
-" Prosķm opravte nastavenķ pro FTP."
-
-#: ../../standalone/drakbackup_.c:2573
-msgid "Please select data to restore..."
-msgstr "Prosķm zvolte data pro obnovu..."
-
-#: ../../standalone/drakbackup_.c:2594
-msgid "Please select media for backup..."
-msgstr "Prosķm zvolte si médium pro zįlohy..."
-
-#: ../../standalone/drakbackup_.c:2616
-msgid "Please select data to backup..."
-msgstr "Zkontrolujte prosķm data pro zįlohovįnķ..."
-
-#: ../../standalone/drakbackup_.c:2638
-msgid ""
-"No configuration file found \n"
-"please click Wizard or Advanced."
-msgstr ""
-"Nebyl nalezen konfiguračnķ soubor, \n"
-"kliknģte na Prłvodce nebo na Roz¹ķųené."
-
-#: ../../standalone/drakbackup_.c:2659
-msgid "Under Devel ... please wait."
-msgstr "Vyvķjķ se... čekejte prosķm."
-
-#: ../../standalone/drakbackup_.c:2739
-msgid "Backup system files"
-msgstr "Zįlohovat systémové soubory"
-
-#: ../../standalone/drakbackup_.c:2741
-msgid "Backup user files"
-msgstr "Zįlohovat u¾ivatelské soubory"
-
-#: ../../standalone/drakbackup_.c:2743
-msgid "Backup other files"
-msgstr "Zįlohovat dal¹ķ soubory"
-
-#: ../../standalone/drakbackup_.c:2745 ../../standalone/drakbackup_.c:2776
-msgid "Total Progress"
-msgstr "Celkovż prłbģh"
-
-#: ../../standalone/drakbackup_.c:2767
-msgid "files sending by FTP"
-msgstr "soubory poslané pųes FTP"
-
-#: ../../standalone/drakbackup_.c:2771
-msgid "Sending files..."
-msgstr "Posķlįm soubory..."
-
-#: ../../standalone/drakbackup_.c:2841
-msgid "Data list to include on CDROM."
-msgstr "Seznam dat, kterį budou na CROM."
-
-#: ../../standalone/drakbackup_.c:2899
-msgid "Please enter the cd writer speed"
-msgstr "Zadejte rychlost vypalovacķ mechaniky"
-
-#: ../../standalone/drakbackup_.c:2917
-msgid "Please enter your CD Writer device name (ex: 0,1,0)"
-msgstr "Zadejte prosķm jméno CD vypalovačky (napų.: 1.0.0)"
-
-#: ../../standalone/drakbackup_.c:2923
-msgid "Please check if you want to include install boot on your CD."
-msgstr "Zvolte, pokud chcete mķt instalačnķ CD spustitelné."
-
-#: ../../standalone/drakbackup_.c:2989
-msgid "Backup Now from configuration file"
-msgstr "Zįlohovat z konfiguračnķho souboru"
-
-#: ../../standalone/drakbackup_.c:2999
-msgid "View Backup Configuration."
-msgstr "Prohlédnout konfiguraci zįlohy."
-
-#: ../../standalone/drakbackup_.c:3020
-msgid "Wizard Configuration"
-msgstr "Prłvodce konfiguracķ"
-
-#: ../../standalone/drakbackup_.c:3024
-msgid "Advanced Configuration"
-msgstr "Roz¹ķųenį konfigurace"
-
-#: ../../standalone/drakbackup_.c:3028
-msgid "Backup Now"
-msgstr "Zįlohovat nynķ"
-
-#: ../../standalone/drakbackup_.c:3053
-msgid "Drakbackup"
-msgstr "Drakbackup"
-
-#: ../../standalone/drakbackup_.c:3104
-msgid ""
-"options description:\n"
-"\n"
-" In this step Drakbackup allow you to change:\n"
-"\n"
-" - The compression mode:\n"
-" \n"
-" If you check bzip2 compression, you will compress\n"
-" your data better than gzip (about 2-10 %).\n"
-" This option is not checked by default because\n"
-" this compression mode needs more time ( about 1000% more).\n"
-" \n"
-" - The update mode:\n"
-"\n"
-" This option will update your backup, but this\n"
-" option is not really useful because you need to\n"
-" decompress your backup before you can update it.\n"
-" \n"
-" - the .backupignore mode:\n"
-"\n"
-" Like with cvs, Drakbackup will ignore all references\n"
-" included in .backupignore files in each directories.\n"
-" ex: \n"
-" /*> cat .backupignore*/\n"
-" *.o\n"
-" *~\n"
-" ...\n"
-" \n"
-"\n"
-msgstr ""
-"Popis voleb:\n"
-"\n"
-" V tomto kroku Drakbackup mł¾e zmģnit:\n"
-"\n"
-" - Re¾im komprese:\n"
-" \n"
-" Pokud zvolķte bzip2, budete mķt kompresi\n"
-" lep¹ķ ne¾ pomocķ gzip (okolo 2-10%).\n"
-" Tato volba nenķ zvolena jako vżchozķ, proto¾e\n"
-" vy¾aduje daleko vķce času (a¾ o 1000% vķce).\n"
-"\n"
-" - Re¾im zįlohovįnķ:\n"
-"\n"
-" Tato volba aktualizuje zįlohu, ale nenķ moc zajķmavį,\n"
-" proto¾e pųed aktualizacķ musķte nejdųķve zįlohu obnovit.\n"
-" \n"
-"- pou¾itķ souboru .backupignore:\n"
-"\n"
-" Stejnģ jako pro cvs, i pro Drakbackup lze uvést seznam\n"
-" souborł v .backupignore, které budou pųi zįlohovįnķ ignorovįny.\n"
-" napų.:\n"
-" \\$> cat .backupignore\n"
-" *.o\n"
-" *~\n"
-" ...\n"
-" \n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3134
-msgid ""
-"\n"
-" Some errors during sendmail are caused by \n"
-" a bad configuration of postfix. To solve it you have to\n"
-" set myhostname or mydomain in /etc/postfix/main.cf\n"
-"\n"
-msgstr ""
-"\n"
-" Nģkteré chyby pųi nastavenķ po¹ty jsou zpłsobeny\n"
-" ¹patnou konfiguracķ programu postfix. Pro vyųe¹enķ\n"
-" nastavte myhostname a mydomain v /etc/postfix/main.cf\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3142
-msgid ""
-"options description:\n"
-"\n"
-" - Backup system files:\n"
-" \n"
-"\tThis option allows you to backup your /etc directory,\n"
-"\twhich contains all configuration files. Please be\n"
-"\tcareful during the restore step to not overwrite:\n"
-"\t\t/etc/passwd \n"
-"\t\t/etc/group \n"
-"\t\t/etc/fstab\n"
-"\n"
-" - Backup User files: \n"
-"\n"
-"\tThis option allows you select all users that you want \n"
-"\tto backup.\n"
-"\tTo preserve disk space, it is recommended that you \n"
-"\tdo not include web browser's cache.\n"
-"\n"
-" - Backup Other files: \n"
-"\n"
-"\tThis option allows you to add more data to save.\n"
-"\tWith the other backup it's not possible at the \n"
-"\tmoment to select select incremental backup.\t\t\n"
-" \n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerful \n"
-"\toption for backup. This option allows you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed afterward.\n"
-"\tThen you will be able, during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this option all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-msgstr ""
-"popis voleb:\n"
-"\n"
-"- Zįloha systémovżch souborł:\n"
-" \n"
-"\tTato volba zįlohuje adresįų /etc, kterż obsahuje v¹echny\n"
-"\tkonfiguračnķ soubory. Dįvejte pozor pųi obnovģ na to,\n"
-"\taby se nepųepsaly soubory:\n"
-"\t\t/etc/passwd \n"
-"\t\t/etc/group \n"
-"\t\t/etc/fstab\n"
-"\n"
-" - Zįlohovat soubory u¾ivatelł:\n"
-"\n"
-"\tTato volba dovoluje vybrat v¹echny u¾ivatele, které\n"
-"\t\tchcete zįlohovat.\n"
-"\tAby se u¹etųilo mķsto na disku, nenķ dobré zahrnout cache\n"
-"\tod prohlķ¾eče.\n"
-"\n"
-" - Zįlohovat ostatnķ soubory:\n"
-"\n"
-"\tTato volba dovolķ pųidat dal¹ķ data pro zįlohovįnķ.\n"
-"\tV současnosti nenķ mo¾né pųi tomto zįlohovįnķ zvolit\n"
-"\tpųķrłstkové zįlohovįnķ.\t\n"
-"\n"
-" - Pųķrłstkové zįlohovįnķ:\n"
-"\n"
-"\tPųķrłstkové zįlohovįnķ je velmi mocnż druh zįlohovįnķ,\n"
-"\tproto¾e dovoluje zįlohovat v¹echna data pouze poprvé\n"
-"\ta dįle se zįlohujķ pouze zmģny.\n"
-"\tBģhem obnovy tak budete moci zadat, od jakého data se\n"
-"\tmajķ data obnovit.\n"
-"\tPokud nezvolķte tuto mo¾nost, bude pųi ka¾dé zįloze\n"
-"\tpųedchozķ zįloha smazįna.\n"
-"\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3181
-msgid ""
-"restore description:\n"
-" \n"
-"Only the most recent date will be used ,because with incremental \n"
-"backups it is necesarry to restore one by one each older backups.\n"
-"\n"
-"So if you don't like to restore an user please unselect all his\n"
-"check box.\n"
-"\n"
-"Otherwise, you are able to select only one of this\n"
-"\n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerfull \n"
-"\toption to use backup, this option allow you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed after.\n"
-"\tSo you will be able during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this options all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-"Popis voleb pro obnovu:\n"
-"\n"
-"Bude pou¾ita zįloha s nejaktuįlnģj¹ķm datem, proto¾e pųi\n"
-"pųķrłstkovém zįlohovįnķ je nutné provįdģt obnovu jednu\n"
-"za druhou smģrem ke star¹ķm datłm.\n"
-"\n"
-"Pokud nechcete obnovit u¾ivatele, odznačte v¹echny\n"
-"jeho za¹krtįvacķ polķčka.\n"
-"\n"
-"Jinak je mo¾né si vybrat pouze jednoho z nich\n"
-"\n"
-" - Pųķrłstkové zįlohovįnķ:\n"
-"\n"
-"\tPųķrłstkové zįlohovįnķ je velmi mocnż druh zįlohovįnķ,\n"
-"\tproto¾e dovoluje zįlohovat v¹echna data pouze poprvé\n"
-"\ta dįle se zįlohujķ pouze zmģny.\n"
-"\tBģhem obnovy tak budete moci zadat, od jakého data se\n"
-"\tmajķ data obnovit.\n"
-"\tPokud nezvolķte tuto mo¾nost, bude pųi ka¾dé zįloze\n"
-"\tpųedchozķ zįloha smazįna.\n"
-"\n"
-"\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3207 ../../standalone/drakbackup_.c:3282
-msgid ""
-" Copyright (C) 2001 MandrakeSoft by DUPONT Sebastien <dupont_s\\@epita.fr>"
-msgstr ""
-" Copyright (C) 2001 MandrakeSoft by DUPONT Sebastien <dupont_s\\@epita.fr>"
-
-#: ../../standalone/drakbackup_.c:3209 ../../standalone/drakbackup_.c:3284
-msgid ""
-" This program is free software; you can redistribute it and/or modify\n"
-" it under the terms of the GNU General Public License as published by\n"
-" the Free Software Foundation; either version 2, or (at your option)\n"
-" any later version.\n"
-"\n"
-" This program is distributed in the hope that it will be useful,\n"
-" but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-" GNU General Public License for more details.\n"
-"\n"
-" You should have received a copy of the GNU General Public License\n"
-" along with this program; if not, write to the Free Software\n"
-" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
-msgstr ""
-" Tento program je svobodnż software; mł¾ete ho ¹ķųit a/nebo modifikovat\n"
-" podle specifikace GNU General Public Licence, kterį byla publikįva\n"
-" Free Software Foundation; buļ verze 2, nebo (podle volby) pozdģj¹ķ verze.\n"
-"\n"
-" Tento program je distribuovįn s nadģjķ, ¾e bude u¾itečnż,\n"
-" ale BEZ JAKŻCHKOLIV ZĮRUK; BEZ NĮROKU NA PROFIT. Vķce detailł naleznete\n"
-" v licenci GNU General Public Licence.\n"
-"\n"
-" Kopii GNU General public Licence mł¾ete obdr¾et buļ s tķmto programem\n"
-" nebo si o nķ mł¾ete napsat na adresu Free Software Foundation, Inc.,\n"
-" 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
-
-#: ../../standalone/drakbackup_.c:3223
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select: \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, DrakBackup will remove \n"
-" your original directory and verify that all \n"
-" backup files are not corrupted. It is recommended \n"
-" you do a last backup before restoring.\n"
-"\n"
-"\n"
-msgstr ""
-"Popis:\n"
-"\n"
-" Drakbackup je nįstroj na zįlohovįnķ systému.\n"
-" Bģhem konfigurace mł¾ete vybrat: \n"
-"\t- Systémové soubory,\n"
-"\t- Soubory u¾ivatelł,\n"
-"\t- Ostatnķ soubory.\n"
-"\tnebo Celż systém a jiné (jako jsou oddķly s Windows).\n"
-"\n"
-" Drakbackup dovoluje zįlohovat na:\n"
-"\t- Pevnż disk.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (se spu¹tģnķm, zįchranou a autoinstalacķ).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Pįskovou jednotku.\n"
-"\n"
-" Drakbackup dovoluje provést obnovu do vybraného adresįųe.\n"
-"\n"
-" Jako vżchozķ jsou umķstģny v¹echny zįlohy do adresįųe\n"
-" /var/lib/drakbackup \n"
-"\n"
-" Konfiguračnķ soubor:\n"
-"\t/etc/drakconf/drakbackup/drakbackup.conf\n"
-"\n"
-"\n"
-"Postup pųi obnovģ:\n"
-"\n"
-" Pųi provįdģnķ obnovy odstranķ Drakbackup płvodnķ adresįų\n"
-" a ovģųķ, ¾e zįlohované soubory nejsou po¹kozeny.\n"
-" Doporučuje se ale provést zįlohu tģchto dat pųed provedenķm\n"
-" obnovy.\n"
-"\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3261
-msgid ""
-"options description:\n"
-"\n"
-"Please be careful when you are using ftp backup, because only \n"
-"backups that are already built are sent to the server.\n"
-"So at the moment, you need to build the backup on your hard \n"
-"drive before sending it to the server.\n"
-"\n"
-msgstr ""
-"popis voleb:\n"
-"\n"
-"Buļte opatrnķ pųi zįlohovįnķ na FTP, proto¾e na server je poslįna\n"
-"pouze ji¾ vytvoųenį zįloha.\n"
-"Je tudķ¾ vhodné nejdųķve provést zįlohu na disk pųed tķm, ne¾\n"
-"ji po¹lete na server.\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3270
-msgid ""
-"\n"
-"Restore Backup Problems:\n"
-"\n"
-"During the restore step, Drakbackup will verify all your\n"
-"backup files before restoring them.\n"
-"Before the restore, Drakbackup will remove \n"
-"your original directory, and you will loose all your \n"
-"data. It is important to be careful and not modify the \n"
-"backup data files by hand.\n"
-msgstr ""
-"\n"
-"Problémy pųi obnovģ:\n"
-"\n"
-"Pųi obnovovįnķ Drakbackup nejdųķve ovģųuje v¹echny\n"
-"zįlohované soubory.\n"
-"Pųed tķm, ne¾ je soubor obnoven, provede Drakbackup vżmaz\n"
-"płvodnķho souboru, a tak pųijdete o v¹echna data.\n"
-"Buļte proto opatrnķ a nesna¾te se modifikovat zįlohovanį\n"
-"data ručnģ.\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3298
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, Drakbackup will remove\n"
-" your original directory and verify that all\n"
-" backup files are not corrupted. It is recommended\n"
-" you do a last backup before restoring.\n"
-" \n"
-"\n"
-msgstr ""
-"Popis:\n"
-"\n"
-" Drakbackup je nįstroj na zįlohovįnķ systému.\n"
-" Bģhem konfigurace mł¾ete vybrat \n"
-"\t- Systémové soubory,\n"
-"\t- Soubory u¾ivatelł,\n"
-"\t- Ostatnķ soubory.\n"
-"\tnebo Celż systém a jiné (jako jsou oddķly s Windows).\n"
-"\n"
-" Drakbackup dovoluje zįlohovat na:\n"
-"\t- Pevnż disk.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (se spu¹tģnķm, zįchranou a autoinstalacķ).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Pįskovou jednotku.\n"
-"\n"
-" Drakbackup dovoluje provést obnovu do vybraného adresįųe.\n"
-"\n"
-" Jako vżchozķ jsou umķstģny v¹echny zįlohy do adresįųe\n"
-" /var/lib/drakbackup \n"
-"\n"
-" Konfiguračnķ soubor:\n"
-"\t/etc/drakconf/drakbackup/drakbackup.conf\n"
-"\n"
-"\n"
-"Postup pųi obnovģ:\n"
-"\n"
-" Pųi provįdģnķ obnovy odstranķ Drakbackup płvodnķ adresįų\n"
-" a ovģųķ, ¾e zįlohované soubory nejsou po¹kozeny.\n"
-" Doporučuje se ale provést zįlohu tģchto dat pųed provedenķm\n"
-" obnovy.\n"
-"\n"
-"\n"
-
-#: ../../standalone/drakboot_.c:58
-#, c-format
-msgid "Installation of %s failed. The following error occured:"
-msgstr "Instalace %s neuspģla. Stala se tato chyba:"
-
-#: ../../standalone/drakfont_.c:229
-msgid "Search installed fonts"
-msgstr "Hledįm instalované fonty"
-
-#: ../../standalone/drakfont_.c:231
-msgid "Unselect fonts installed"
-msgstr "Odznačit instalované fonty"
-
-#: ../../standalone/drakfont_.c:252
-msgid "parse all fonts"
-msgstr "zpracovįvįm v¹echny fonty"
-
-#: ../../standalone/drakfont_.c:253
-msgid "no fonts found"
-msgstr "nebyly nalezeny ¾įdné fonty"
-
-#: ../../standalone/drakfont_.c:261 ../../standalone/drakfont_.c:303
-#: ../../standalone/drakfont_.c:352 ../../standalone/drakfont_.c:410
-#: ../../standalone/drakfont_.c:417 ../../standalone/drakfont_.c:443
-#: ../../standalone/drakfont_.c:455 ../../standalone/drakfont_.c:468
-msgid "done"
-msgstr "hotovo"
-
-#: ../../standalone/drakfont_.c:265
-msgid "could not find any font in your mounted partitions"
-msgstr "nelze nalézt ¾įdné fonty v pųipojeném oddķle"
-
-#: ../../standalone/drakfont_.c:301
-msgid "Reselect correct fonts"
-msgstr "Znovu vybrat sprįvné fonty"
-
-#: ../../standalone/drakfont_.c:304
-msgid "could not find any font.\n"
-msgstr "nelze nalézt ¾įdnż font.\n"
-
-#: ../../standalone/drakfont_.c:327
-msgid "Search fonts in installed list"
-msgstr "Hledat fonty mezi instalovanżmi"
-
-#: ../../standalone/drakfont_.c:350
-msgid "Fonts copy"
-msgstr "Kopie fontu"
-
-#: ../../standalone/drakfont_.c:353
-msgid "True Type fonts installation"
-msgstr "Instalace fontł True Type"
-
-#: ../../standalone/drakfont_.c:357
-msgid "please wait during ttmkfdir..."
-msgstr "čekejte prosķm, prįvģ bģ¾ķ ttmkfdir... "
-
-#: ../../standalone/drakfont_.c:359
-msgid "True Type install done"
-msgstr "Instalace True Type fontł je dokončena"
-
-#: ../../standalone/drakfont_.c:366 ../../standalone/drakfont_.c:382
-msgid "Fonts conversion"
-msgstr "Konverze fontł"
-
-#: ../../standalone/drakfont_.c:370 ../../standalone/drakfont_.c:386
-#: ../../standalone/drakfont_.c:406
-msgid "type1inst building"
-msgstr "vytvįųķm type1inst"
-
-#: ../../standalone/drakfont_.c:375 ../../standalone/drakfont_.c:390
-msgid "Ghostscript referencing"
-msgstr "Odkazy na Ghostscript"
-
-#: ../../standalone/drakfont_.c:397
-msgid "ttf fonts conversion"
-msgstr "konverze ttf fontł"
-
-#: ../../standalone/drakfont_.c:401
-msgid "pfm fonts conversion"
-msgstr "konverze pfm fontł"
-
-#: ../../standalone/drakfont_.c:411
-msgid "Suppress temporary Files"
-msgstr "Ignorovat dočasné soubory"
-
-#: ../../standalone/drakfont_.c:414
-msgid "Restart XFS"
-msgstr "Restartovat XFS"
-
-#: ../../standalone/drakfont_.c:453 ../../standalone/drakfont_.c:463
-msgid "Suppress Fonts Files"
-msgstr "Ignorovat soubory s fonty"
-
-#: ../../standalone/drakfont_.c:465
-msgid "xfs restart"
-msgstr "restart xfs"
-
-#: ../../standalone/drakfont_.c:472 ../../standalone/drakfont_.c:760
-msgid ""
-"Before installing any fonts, be sure that you have the right to use and "
-"install them on your system.\n"
-"\n"
-"-You can install the fonts using the normal way. In rare cases, bogus fonts "
-"may hang up your X Server."
-msgstr ""
-"Pųed instalacķ fontł se ujistģte, ¾e mįte potųebnį prįva na instalacķ a "
-"pou¾ķvįnķ na systému.\n"
-"\n"
-"- Fonty lze instalovat bģ¾nżm zpłsobem. Ve vżjimečnżch pųķpadech mł¾e ¹patnż "
-"font zpłsobit zamrznutķ X serveru."
-
-#: ../../standalone/drakfont_.c:547
-msgid "Fonts Importation"
-msgstr "Zavįdģnķ fontł"
-
-#: ../../standalone/drakfont_.c:562
-msgid "Get Windows Fonts"
-msgstr "Načķst fonty z Windows"
-
-#: ../../standalone/drakfont_.c:564
-msgid "Uninstall Fonts"
-msgstr "Odinstalovat fonty"
-
-#: ../../standalone/drakfont_.c:568
-msgid "Advanced Options"
-msgstr "Roz¹ķųené volby"
-
-#: ../../standalone/drakfont_.c:570
-msgid "Font List"
-msgstr "Seznam fontł"
-
-#: ../../standalone/drakfont_.c:739
-msgid "Choose the applications that will support the fonts :"
-msgstr "Zvolte aplikace, které podporujķ fonty:"
-
-#: ../../standalone/drakfont_.c:743
-msgid "Ghostscript"
-msgstr "Ghostscript"
-
-#: ../../standalone/drakfont_.c:747
-msgid "StarOffice"
-msgstr "StarOffice"
-
-#: ../../standalone/drakfont_.c:751
-msgid "Abiword"
-msgstr "Abiword"
-
-#: ../../standalone/drakfont_.c:755
-msgid "Generic Printers"
-msgstr "Obecné tiskįrny"
-
-#: ../../standalone/drakfont_.c:792
-msgid "Select the font file or directory and click on 'Add'"
-msgstr "Vyberte soubor s fontem nebo adresįų a kliknģte na 'Pųidat'"
-
-#: ../../standalone/drakfont_.c:828
-msgid "Install List"
-msgstr "Instalovat seznam"
-
-#: ../../standalone/drakfont_.c:858
-msgid "click here if you are sure."
-msgstr "kliknģte zde, pokud jste si jisti."
-
-#: ../../standalone/drakfont_.c:860
-msgid "here if no."
-msgstr "zde pokud si nejste jisti."
-
-#: ../../standalone/drakfont_.c:897
-msgid "Unselected All"
-msgstr "Zru¹it celż vżbģr"
-
-#: ../../standalone/drakfont_.c:899
-msgid "Selected All"
-msgstr "Vybrat v¹e"
-
-#: ../../standalone/drakfont_.c:901
-msgid "Remove List"
-msgstr "Odebrat seznam"
-
-#: ../../standalone/drakfont_.c:919 ../../standalone/drakfont_.c:939
-msgid "Initials tests"
-msgstr "Śvodnķ testy"
-
-#: ../../standalone/drakfont_.c:920
-msgid "Copy fonts on your system"
-msgstr "Kopķrovat fonty do systému"
-
-#: ../../standalone/drakfont_.c:921
-msgid "Install & convert Fonts"
-msgstr "Instalovat & konvertovat fonty"
-
-#: ../../standalone/drakfont_.c:922
-msgid "Post Install"
-msgstr "Poinstalačnķ nastavenķ"
-
-#: ../../standalone/drakfont_.c:940
-msgid "Remove fonts on your system"
-msgstr "Odebrat fonty ze systému"
-
-#: ../../standalone/drakfont_.c:941
-msgid "Post Uninstall"
-msgstr "Nastavenķ po odebrįnķ"
-
-#: ../../standalone/drakgw_.c:43 ../../standalone/drakgw_.c:200
-msgid "Internet Connection Sharing"
-msgstr "Sdķlenķ Internetového Pųipojenķ"
-
-#: ../../standalone/drakgw_.c:138
-msgid "Internet Connection Sharing currently enabled"
-msgstr "Sdķlenķ Internetového pųipojenķ je zapnuto"
-
-#: ../../standalone/drakgw_.c:139
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently enabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-"Sdķlenķ internetového pųipojenķ u¾ bylo nastaveno.\n"
-"Nynķ je povoleno.\n"
-"\n"
-"Co chcete dįle dģlat?"
-
-#: ../../standalone/drakgw_.c:143
-msgid "disable"
-msgstr "vypnout"
-
-#: ../../standalone/drakgw_.c:143 ../../standalone/drakgw_.c:168
-msgid "dismiss"
-msgstr "odmķtnout"
-
-#: ../../standalone/drakgw_.c:143 ../../standalone/drakgw_.c:168
-msgid "reconfigure"
-msgstr "pųekonfigurovat"
-
-#: ../../standalone/drakgw_.c:146
-msgid "Disabling servers..."
-msgstr "Zakazuji servery..."
-
-#: ../../standalone/drakgw_.c:154
-msgid "Internet connection sharing is now disabled."
-msgstr "Sdķlenķ Internetového pųipojenķ je nynķ vypnuto."
-
-#: ../../standalone/drakgw_.c:163
-msgid "Internet Connection Sharing currently disabled"
-msgstr "Sdķlenķ Internetového pųipojenķ je vypnuto"
-
-#: ../../standalone/drakgw_.c:164
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently disabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-"Internetové sdķlenķ u¾ bylo nastaveno.\n"
-"Nynķ je vypnuto.\n"
-"\n"
-"Co chcete dįle dģlat?"
-
-#: ../../standalone/drakgw_.c:168
-msgid "enable"
-msgstr "povolit"
-
-#: ../../standalone/drakgw_.c:175
-msgid "Enabling servers..."
-msgstr "Povoluji servery..."
-
-#: ../../standalone/drakgw_.c:180
-msgid "Internet connection sharing is now enabled."
-msgstr "Sdķlenķ Internetového pųipojenķ je nynķ zapnuto."
-
-#: ../../standalone/drakgw_.c:201
-msgid ""
-"You are about to configure your computer to share its Internet connection.\n"
-"With that feature, other computers on your local network will be able to use "
-"this computer's Internet connection.\n"
-"\n"
-"Note: you need a dedicated Network Adapter to set up a Local Area Network "
-"(LAN)."
-msgstr ""
-"Vį¹ počķtač bude zkonfigurovįn pro sdķlenķ pųipojenķ na Internet.\n"
-"Tato mo¾nost umo¾ņuje pųķstup dal¹ķch počķtačł na lokįlnķ sķti do Internetu "
-"pųes tento počķtač.\n"
-"\n"
-"Pozn.: potųebujete vyhrazenż sķ»ovż adaptér pro nastavenķ lokįlnķ sķtģ (LAN)."
-
-#: ../../standalone/drakgw_.c:227
-#, c-format
-msgid "Interface %s (using module %s)"
-msgstr "Rozhranķ %s (pou¾ķvį modul %s)"
-
-#: ../../standalone/drakgw_.c:228
-#, c-format
-msgid "Interface %s"
-msgstr "Rozhranķ %s"
-
-#: ../../standalone/drakgw_.c:236
-msgid "No network adapter on your system!"
-msgstr "Ve va¹em systému nenķ ¾įdnż sķ»ovż adaptér!"
-
-#: ../../standalone/drakgw_.c:237
-msgid ""
-"No ethernet network adapter has been detected on your system. Please run the "
-"hardware configuration tool."
-msgstr ""
-"Ve va¹em počķtači nebyl nalezen ¾įdnż sķ»ovż adaptér. Spus»te prosķm program "
-"pro nastavenķ hardware."
-
-#: ../../standalone/drakgw_.c:243
-msgid "Network interface"
-msgstr "Sķ»ové rozhranķ"
-
-#: ../../standalone/drakgw_.c:244
-#, c-format
-msgid ""
-"There is only one configured network adapter on your system:\n"
-"\n"
-"%s\n"
-"\n"
-"I am about to setup your Local Area Network with that adapter."
-msgstr ""
-"Na va¹em systému je nastaveno pouze jedno sķ»ové rozhranķ:\n"
-"\n"
-"%s\n"
-"\n"
-"Na tomto adaptéru bude nastavena lokįlnķ sķ»."
-
-#: ../../standalone/drakgw_.c:253
-msgid ""
-"Please choose what network adapter will be connected to your Local Area "
-"Network."
-msgstr "Prosķm zvolte si, ke kterému sķ»ovému adaptéru bude pųipojena LAN."
-
-#: ../../standalone/drakgw_.c:271
-msgid "Network interface already configured"
-msgstr "Sķ»ové rozhranķ je ji¾ nastaveno"
-
-#: ../../standalone/drakgw_.c:272
-#, c-format
-msgid ""
-"Warning, the network adapter (%s) is already configured.\n"
-"\n"
-"Do you want an automatic re-configuration?\n"
-"\n"
-"You can do it manually but you need to know what you're doing."
-msgstr ""
-"Varovįnķ, sķ»ovż adaptér (%s) je ji¾ nastaven.\n"
-"\n"
-"Chcete ho automaticky pųenastavit?\n"
-"\n"
-"Lze to také provést ručnģ, ale musķte vģdģt, co dģlįte."
-
-#: ../../standalone/drakgw_.c:277
-msgid "Automatic reconfiguration"
-msgstr "Automatické pųenastavenķ"
-
-#: ../../standalone/drakgw_.c:278
-msgid "Show current interface configuration"
-msgstr "Zobrazit aktuįlnķ nastavenķ rozhranķ"
-
-#: ../../standalone/drakgw_.c:280
-#, c-format
-msgid ""
-"Current configuration of `%s':\n"
-"\n"
-"Network: %s\n"
-"IP address: %s\n"
-"IP attribution: %s\n"
-"Driver: %s"
-msgstr ""
-"Aktuįlnķ konfigurace pro '%s':\n"
-"\n"
-"Sķ»: %s\n"
-"IP adresa: %s\n"
-"IP atributy: %s\n"
-"Ovladač: %s"
-
-#: ../../standalone/drakgw_.c:292
-msgid ""
-"I can keep your current configuration and assume you already set up a DHCP "
-"server; in that case please verify I correctly read the C-Class Network that "
-"you use for your local network; I will not reconfigure it and I will not "
-"touch your DHCP server configuration.\n"
-"\n"
-"Else, I can reconfigure your interface and (re)configure a DHCP server for "
-"you.\n"
-"\n"
-msgstr ""
-"Mohu zachovat současnou konfiguraci a pųedpoklįdįm, ¾e mįte ji¾ nastavenż "
-"DHCP server; v takovém pųķpadģ ovģųte, ¾e je sprįvnģ nastavena lokįlnķ sķ»; "
-"nebude v nķ provedena ¾įdnį zmģna a nebude ani zmģnģn DHCP server.\n"
-"\n"
-"Jinak mohu zmģnit jak rozhranķ, tak také pųenastavit DHCP server podle "
-"potųeby.\n"
-"\n"
-
-#: ../../standalone/drakgw_.c:297
-msgid "C-Class Local Network"
-msgstr "Lokįlnķ sķ»"
-
-#: ../../standalone/drakgw_.c:298
-msgid "(This) DHCP Server IP"
-msgstr "Adresa DHCP serveru"
-
-#: ../../standalone/drakgw_.c:299
-msgid "Re-configure interface and DHCP server"
-msgstr "Pųenastavenķ rozhranķ a DHCP serveru"
-
-#: ../../standalone/drakgw_.c:306
-msgid "The Local Network did not finish with `.0', bailing out."
-msgstr "Čķslo lokįlnķ sķģ nekončķ na .0, zkou¹ķm znovu."
-
-#: ../../standalone/drakgw_.c:317
-#, c-format
-msgid "Potential LAN address conflict found in current config of %s!\n"
-msgstr "Na¹el jsem mo¾nż konflikt v současném nastavenķ LAN adresy pro %s!\n"
-
-#: ../../standalone/drakgw_.c:325 ../../standalone/drakgw_.c:331
-msgid "Firewalling configuration detected!"
-msgstr "Na¹el jsem existujķcķ nastavenķ firewallu!"
-
-#: ../../standalone/drakgw_.c:326 ../../standalone/drakgw_.c:332
-msgid ""
-"Warning! An existing firewalling configuration has been detected. You may "
-"need some manual fix after installation."
-msgstr ""
-"Varovįnķ! Bylo nalezeno existujķcķ nastavenķ firewallu. Po instalaci mł¾e "
-"bżt zapotųebķ nģjakį ručnķ śprava."
-
-#: ../../standalone/drakgw_.c:340
-msgid "Configuring..."
-msgstr "Nastavuji..."
-
-#: ../../standalone/drakgw_.c:341
-msgid "Configuring scripts, installing software, starting servers..."
-msgstr "Nastavuji skripty, instaluji software, startuji servery..."
-
-#: ../../standalone/drakgw_.c:378
-#, c-format
-msgid "Problems installing package %s"
-msgstr "Problém s instalacķ balķčku %s"
-
-#: ../../standalone/drakgw_.c:672
-msgid ""
-"Everything has been configured.\n"
-"You may now share Internet connection with other computers on your Local "
-"Area Network, using automatic network configuration (DHCP)."
-msgstr ""
-"V¹e se podaųilo nastavit.\n"
-"Nynķ lze pou¾ķt tento počķtač pro sdķlenķ pųipojenķ k Internetu pro va¹i "
-"lokįlnķ sķ», kterį pou¾ķvį automatickou konfiguraci sķtģ (DHCP)."
-
-#: ../../standalone/drakgw_.c:689
-msgid "The setup has already been done, but it's currently disabled."
-msgstr "Nastavenķ ji¾ bylo provedeno, ale nynķ je vypnuto."
-
-#: ../../standalone/drakgw_.c:690
-msgid "The setup has already been done, and it's currently enabled."
-msgstr "Nastavenķ ji¾ bylo provedeno, nynķ je povoleno."
-
-#: ../../standalone/drakgw_.c:691
-msgid "No Internet Connection Sharing has ever been configured."
-msgstr "Nenķ nastaveno ¾įdné sdķlenķ Internetového pųipojenķ."
-
-#: ../../standalone/drakgw_.c:696
-msgid "Internet connection sharing configuration"
-msgstr "Nastavenķ sdķlenķ pųipojenķ k Internetu"
-
-#: ../../standalone/drakgw_.c:703
-#, c-format
-msgid ""
-"Welcome to the Internet Connection Sharing utility!\n"
-"\n"
-"%s\n"
-"\n"
-"Click on Configure to launch the setup wizard."
-msgstr ""
-"Vķtį vįs prłvodce nastavenķm sdķlenķ pųipojenķ k Internetu!\n"
-"\n"
-"%s\n"
-"\n"
-"Kliknģte na Konfigurovat, pokud chcete spustit prłvodce nastavenķm."
-
-#: ../../standalone/draknet_.c:80
-#, c-format
-msgid "Network configuration (%d adapters)"
-msgstr "Nastavenķ sķtģ (%d adaptéry(ł))"
-
-#: ../../standalone/draknet_.c:87 ../../standalone/draknet_.c:595
-msgid "Profile: "
-msgstr "Profil: "
-
-#: ../../standalone/draknet_.c:95
-msgid "Del profile..."
-msgstr "Smazat profil..."
-
-#: ../../standalone/draknet_.c:101
-msgid "Profile to delete:"
-msgstr "Smazat profil:"
-
-#: ../../standalone/draknet_.c:129
-msgid "New profile..."
-msgstr "Novż profil..."
-
-#: ../../standalone/draknet_.c:135
-msgid ""
-"Name of the profile to create (the new profile is created as a copy of the "
-"current one) :"
-msgstr ""
-"Zadejte jméno vytvįųeného profilu (novż profil je vytvoųen jako kopie "
-"vybraného) :"
-
-#: ../../standalone/draknet_.c:161
-msgid "Hostname: "
-msgstr "Jméno počķtače: "
-
-#: ../../standalone/draknet_.c:168
-msgid "Internet access"
-msgstr "Pųķstup na Internet"
-
-#: ../../standalone/draknet_.c:181
-msgid "Type:"
-msgstr "Typ:"
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-msgid "Gateway:"
-msgstr "Brįna(gateway):"
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-msgid "Interface:"
-msgstr "Rozhranķ:"
-
-#: ../../standalone/draknet_.c:195
-msgid "Status:"
-msgstr "Status:"
-
-#: ../../standalone/draknet_.c:202
-msgid "Wait please"
-msgstr "Čekejte prosķm"
-
-#: ../../standalone/draknet_.c:220
-msgid "Configure Internet Access..."
-msgstr "Nastavuji pųķstup na Internet..."
-
-#: ../../standalone/draknet_.c:227 ../../standalone/draknet_.c:449
-msgid "LAN configuration"
-msgstr "Nastavenķ LAN"
-
-#: ../../standalone/draknet_.c:232
-msgid "Driver"
-msgstr "Ovladač"
-
-#: ../../standalone/draknet_.c:232
-msgid "Interface"
-msgstr "Rozhranķ"
-
-#: ../../standalone/draknet_.c:232
-msgid "Protocol"
-msgstr "Protokol"
-
-#: ../../standalone/draknet_.c:232
-msgid "State"
-msgstr "Status"
-
-#: ../../standalone/draknet_.c:244
-msgid "Configure Local Area Network..."
-msgstr "Nastavuji lokįlnķ sķ»..."
-
-#: ../../standalone/draknet_.c:256
-msgid "Click here to launch the wizard ->"
-msgstr "Kliknģte pro spu¹tģnķ prłvodce ->"
-
-#: ../../standalone/draknet_.c:257
-msgid "Wizard..."
-msgstr "Prłvodce..."
-
-#: ../../standalone/draknet_.c:283
-msgid "Apply"
-msgstr "Pou¾ķt"
-
-#: ../../standalone/draknet_.c:302
-msgid "Please Wait... Applying the configuration"
-msgstr "Čekejte prosķm... Aktivuji konfiguraci"
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-msgid "Connected"
-msgstr "Pųipojen"
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-msgid "Not connected"
-msgstr "Nepųipojen"
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Connect..."
-msgstr "Pųipojit..."
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Disconnect..."
-msgstr "Odpojit..."
-
-#: ../../standalone/draknet_.c:404
-msgid ""
-"Warning, another Internet connection has been detected, maybe using your "
-"network"
-msgstr "Varovįnķ, bylo detekovįno jiné pųipojenķ k Internetu, zųejmģ je to sķ»"
-
-#: ../../standalone/draknet_.c:431
-msgid ""
-"You don't have any configured interface.\n"
-"Configure them first by clicking on 'Configure'"
-msgstr ""
-"Nemįte nakonfigurovįno ¾įdné rozhranķ.\n"
-"Nastavte jej kliknutķm na 'Konfigurovat'"
-
-#: ../../standalone/draknet_.c:453
-msgid "LAN Configuration"
-msgstr "Nastavenķ LAN"
-
-#: ../../standalone/draknet_.c:464
-#, c-format
-msgid "Adapter %s: %s"
-msgstr "Adaptér %s: %s"
-
-#: ../../standalone/draknet_.c:470
-msgid "Boot Protocol"
-msgstr "Protokol o spu¹tģnķ"
-
-#: ../../standalone/draknet_.c:471
-msgid "Started on boot"
-msgstr "Spustit pųi startu"
-
-#: ../../standalone/draknet_.c:472
-msgid "DHCP client"
-msgstr "DHCP klient"
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-msgid "activate now"
-msgstr "aktivovat nynķ"
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-msgid "deactivate now"
-msgstr "deaktivovat nynķ"
-
-#: ../../standalone/draknet_.c:503
-msgid ""
-"This interface has not been configured yet.\n"
-"Launch the configuration wizard in the main window"
-msgstr ""
-"Toto rozhranķ je¹tģ nebylo nastaveno.\n"
-"Spus»te prłvodce konfiguracķ z hlavnķho okna"
-
-#: ../../standalone/draknet_.c:560
-msgid ""
-"You don't have any internet connection.\n"
-"Create one first by clicking on 'Configure'"
-msgstr ""
-"Nemįte ¾įdné pųipojenķ k Internetu.\n"
-"Vytvoųte si jej kliknutķm na 'Konfigurovat'"
-
-#: ../../standalone/draknet_.c:584
-msgid "Internet connection configuration"
-msgstr "Konfigurace pųipojenķ k internetu"
-
-#: ../../standalone/draknet_.c:588
-msgid "Internet Connection Configuration"
-msgstr "Konfigurace pųipojenķ k internetu"
-
-#: ../../standalone/draknet_.c:597
-msgid "Connection type: "
-msgstr "Typ pųipojenķ:"
-
-#: ../../standalone/draknet_.c:603
-msgid "Parameters"
-msgstr "Parametry"
-
-#: ../../standalone/draknet_.c:621
-msgid "Gateway"
-msgstr "Brįna(gateway)"
-
-#: ../../standalone/draknet_.c:630
-msgid "Ethernet Card"
-msgstr "Ethernetovį karta"
-
-#: ../../standalone/draknet_.c:631
-msgid "DHCP Client"
-msgstr "DHCP klient"
-
-#: ../../standalone/draksec_.c:31
-msgid "Setting security level"
-msgstr "Śroveņ zabezpečenķ"
-
-#: ../../standalone/drakxconf_.c:47
-msgid "Control Center"
-msgstr "Ųķdķcķ centrum"
-
-#: ../../standalone/drakxconf_.c:48
-msgid "Choose the tool you want to use"
-msgstr "Zvolte si nįstroj, kterż chcete pou¾ķt"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "Canada (cable)"
-msgstr "Kanada (kabel)"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (bcast)"
-msgstr "USA (bcast)"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (cable)"
-msgstr "USA (kabel)"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (cable-hrc)"
-msgstr "USA (cable-hrc)"
-
-#: ../../standalone/drakxtv_.c:49
-msgid "China (bcast)"
-msgstr "Čķna (bcast)"
-
-#: ../../standalone/drakxtv_.c:49
-msgid "Japan (bcast)"
-msgstr "Japonsko (bcast)"
-
-#: ../../standalone/drakxtv_.c:49
-msgid "Japan (cable)"
-msgstr "Japonsko (kabel)"
-
-#: ../../standalone/drakxtv_.c:50
-msgid "East Europe"
-msgstr "Vżchodnķ Evropa"
-
-#: ../../standalone/drakxtv_.c:50
-msgid "Ireland"
-msgstr "Irsko"
-
-#: ../../standalone/drakxtv_.c:50
-msgid "West Europe"
-msgstr "Zįpadnķ Evropa"
-
-#: ../../standalone/drakxtv_.c:51
-msgid "Australia"
-msgstr "Austrįlie"
-
-#: ../../standalone/drakxtv_.c:51
-msgid "Newzealand"
-msgstr "Novż Zéland"
-
-#: ../../standalone/drakxtv_.c:52
-msgid "South Africa"
-msgstr "Ji¾nķ Afrika"
-
-#: ../../standalone/drakxtv_.c:53
-msgid "Argentina"
-msgstr "Argentina"
-
-#: ../../standalone/drakxtv_.c:58
-msgid ""
-"Please,\n"
-"type in your tv norm and country"
-msgstr ""
-"Zadejte prosķm\n"
-"typ TV normy a zemi"
-
-#: ../../standalone/drakxtv_.c:60
-msgid "TV norm :"
-msgstr "Norma TV:"
-
-#: ../../standalone/drakxtv_.c:61
-msgid "Area :"
-msgstr "Oblast :"
-
-#: ../../standalone/drakxtv_.c:65
-msgid "Scanning for TV channels in progress ..."
-msgstr "Probķhį vyhledįvįnķ TV kanįlł ..."
-
-#: ../../standalone/drakxtv_.c:72
-msgid "Scanning for TV channels"
-msgstr "Vyhledįvįm TV kanįly"
-
-#: ../../standalone/drakxtv_.c:83
-msgid "No TV Card detected!"
-msgstr "Nebyla nalezena TV karta!"
-
-#: ../../standalone/drakxtv_.c:84
-msgid ""
-"No TV Card has been detected on your machine. Please verify that a Linux-"
-"supported Video/TV Card is correctly plugged in.\n"
-"\n"
-"\n"
-"You can visit our hardware database at:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/hardware.php3"
-msgstr ""
-"V počķtači nebyla nalezena ¾įdnį TV karta. Zkontrolujte prosķm, zda "
-"podporovanį karta je sprįvnģ zapojena.\n"
-"\n"
-"\n"
-"Databįzi hardware lze nalézt na:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/hardware.php3"
-
-#: ../../standalone/keyboarddrake_.c:16
-msgid "usage: keyboarddrake [--expert] [keyboard]\n"
-msgstr "pou¾itķ: keyboarddrake [--expert] [klįvesnice]\n"
-
-#: ../../standalone/keyboarddrake_.c:29
-msgid "Please, choose your keyboard layout."
-msgstr "Jaké je rozlo¾enķ va¹ķ klįvesnice?"
-
-#: ../../standalone/keyboarddrake_.c:36
-msgid "Do you want the BackSpace to return Delete in console?"
-msgstr "Chcete, aby se klįvesa BackSpace chovala v konzoli jako Delete?"
-
-#: ../../standalone/livedrake_.c:24
-msgid "Change Cd-Rom"
-msgstr "Vymģnit CD-ROM"
-
-#: ../../standalone/livedrake_.c:25
-msgid ""
-"Please insert the Installation Cd-Rom in your drive and press Ok when done.\n"
-"If you don't have it, press Cancel to avoid live upgrade."
-msgstr ""
-"Vlo¾te prosķm Instalačnķ CD-ROM do mechaniky a stisknģte Ok.\n"
-"Pokud CD nemįte, stisknģte Zru¹it pro pųeru¹enķ aktualizace systému."
-
-#: ../../standalone/livedrake_.c:35
-msgid "Unable to start live upgrade !!!\n"
-msgstr "Nelze spustit aktualizaci na bģ¾ķcķ systém !!!\n"
-
-#: ../../standalone/localedrake_.c:32
-msgid "The change is done, but to be effective you must logout"
-msgstr "Zmģny jsou provedeny, ale pro aktivaci je nutné provést logout"
-
-#: ../../standalone/logdrake_.c:85 ../../standalone/logdrake_.c:501
-msgid "logdrake"
-msgstr "logdrake"
-
-#: ../../standalone/logdrake_.c:95
-msgid "Show only for the selected day"
-msgstr "Zobrazit pouze pro vybranż den"
-
-#: ../../standalone/logdrake_.c:102
-msgid "/File/_New"
-msgstr "/_Soubor/_Novż"
-
-#: ../../standalone/logdrake_.c:102
-msgid "<control>N"
-msgstr "<control>N"
-
-#: ../../standalone/logdrake_.c:103
-msgid "/File/_Open"
-msgstr "/Soubor/_Otevųķt"
-
-#: ../../standalone/logdrake_.c:103
-msgid "<control>O"
-msgstr "<control>O"
-
-#: ../../standalone/logdrake_.c:104
-msgid "/File/_Save"
-msgstr "/Soubor/_Ulo¾it"
-
-#: ../../standalone/logdrake_.c:104
-msgid "<control>S"
-msgstr "<control>U"
-
-#: ../../standalone/logdrake_.c:105
-msgid "/File/Save _As"
-msgstr "/Soubor/Ulo¾it _jako"
-
-#: ../../standalone/logdrake_.c:106
-msgid "/File/-"
-msgstr "/Soubor/-"
-
-#: ../../standalone/logdrake_.c:108
-msgid "/_Options"
-msgstr "/_Volby"
-
-#: ../../standalone/logdrake_.c:109
-msgid "/Options/Test"
-msgstr "/Volby/Test"
-
-#: ../../standalone/logdrake_.c:110
-msgid "/_Help"
-msgstr "/_Nįpovģda"
-
-#: ../../standalone/logdrake_.c:111
-msgid "/Help/_About..."
-msgstr "/Nįpovģda/_O aplikaci..."
-
-#: ../../standalone/logdrake_.c:118
-msgid "-misc-fixed-medium-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr "-misc-fixed-medium-r-*-*-*-100-*-*-*-*-*-iso8859-2,*"
-
-#: ../../standalone/logdrake_.c:119
-msgid "-misc-fixed-bold-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr "-misc-fixed-bold-r-*-*-*-100-*-*-*-*-*-iso8859-2,*"
-
-#: ../../standalone/logdrake_.c:173
-msgid "User"
-msgstr "U¾ivatel"
-
-#: ../../standalone/logdrake_.c:174
-msgid "Messages"
-msgstr "Zprįvy"
-
-#: ../../standalone/logdrake_.c:175
-msgid "Syslog"
-msgstr "Syslog"
-
-#: ../../standalone/logdrake_.c:176
-msgid "Mandrake Tools Explanations"
-msgstr "Vysvģtlivky nįstrojł Mandrake Linuxu"
-
-#: ../../standalone/logdrake_.c:179
-msgid "search"
-msgstr "vyhledat"
-
-#: ../../standalone/logdrake_.c:185
-msgid "A tool to monitor your logs"
-msgstr "Nįstroj na monitorovįnķ logł"
-
-#: ../../standalone/logdrake_.c:186
-msgid "Settings"
-msgstr "Nastavenķ"
-
-#: ../../standalone/logdrake_.c:191
-msgid "matching"
-msgstr "shodnżch"
-
-#: ../../standalone/logdrake_.c:192
-msgid "but not matching"
-msgstr "neshodnżch"
-
-#: ../../standalone/logdrake_.c:196
-msgid "Choose file"
-msgstr "Vyberte soubor"
-
-#: ../../standalone/logdrake_.c:201
-msgid "Calendar"
-msgstr "Kalendįų"
-
-#: ../../standalone/logdrake_.c:211
-msgid "Content of the file"
-msgstr "Obsah souboru"
-
-#: ../../standalone/logdrake_.c:215 ../../standalone/logdrake_.c:390
-msgid "Mail/SMS alert"
-msgstr "Varovné zprįvy pųes Mail/SMS"
-
-#: ../../standalone/logdrake_.c:268
-#, c-format
-msgid "please wait, parsing file: %s"
-msgstr "čekejte prosķm, zpracovįvįm soubor: %s"
-
-#: ../../standalone/logdrake_.c:405
-msgid "Mail/SMS alert configuration"
-msgstr "Nastavenķ upozornģnķ pųes Mail/SMS"
-
-#: ../../standalone/logdrake_.c:406
-msgid ""
-"Welcome to the mail/SMS configuration utility.\n"
-"\n"
-"Here, you'll be able to set up the alert system.\n"
-msgstr ""
-"Vķtejte v konfiguraci varovnżch zprįv pųes mail/SMS.\n"
-"\n"
-"Zde lze nastavit posķlįnķ varovnżch zprįv.\n"
-
-#: ../../standalone/logdrake_.c:414
-msgid "proftpd"
-msgstr "proftpd"
-
-#: ../../standalone/logdrake_.c:417
-msgid "sshd"
-msgstr "sshd"
-
-#: ../../standalone/logdrake_.c:418
-msgid "webmin"
-msgstr "webmin"
-
-#: ../../standalone/logdrake_.c:419
-msgid "xinetd"
-msgstr "xinetd"
-
-#: ../../standalone/logdrake_.c:422
-msgid "service setting"
-msgstr "nastavenķ slu¾eb"
-
-#: ../../standalone/logdrake_.c:423
-msgid ""
-"You will receive an alert if one of the selected service is no more running"
-msgstr "Pokud jedna z vybranżch slu¾eb nepobģ¾ķ, obdr¾ķte varovnou zprįvu"
-
-#: ../../standalone/logdrake_.c:433
-msgid "load setting"
-msgstr "nahrįt volby"
-
-#: ../../standalone/logdrake_.c:434
-msgid "You will receive an alert if the load is higher than this value"
-msgstr "Pokud bude hodnota vet¹ķ ne¾ zadané čķslo, obdr¾ķte varovnou zprįvu"
-
-#: ../../standalone/logdrake_.c:447
-msgid "alert configuration"
-msgstr "nastavenķ varovįnķ"
-
-#: ../../standalone/logdrake_.c:448
-msgid "Configure the way the system will alert you"
-msgstr "Nastavuje zpłsob, jakżm bude systém posķlat varovné hlį¹ky"
-
-#: ../../standalone/logdrake_.c:478
-msgid "Save as.."
-msgstr "Ulo¾it jako..."
-
-#: ../../standalone/mousedrake_.c:49
-msgid "Please, choose the type of your mouse."
-msgstr "Jakż je typ va¹ķ my¹i?"
-
-#: ../../standalone/mousedrake_.c:59
-msgid "no serial_usb found\n"
-msgstr "nebylo nalezeno serial_usb\n"
-
-#: ../../standalone/mousedrake_.c:63
-msgid "Emulate third button?"
-msgstr "Emulovat tųetķ tlačķtko?"
-
-#: ../../standalone/scannerdrake_.c:53
-#, c-format
-msgid "%s found on %s, configure it ?"
-msgstr "%s nalezeno na %s, chcete ho nastavit?"
-
-#: ../../standalone/scannerdrake_.c:60
-msgid "Select a scanner"
-msgstr "Zvolte si skener"
-
-#: ../../standalone/scannerdrake_.c:80
-#, c-format
-msgid "This %s scanner is unsupported"
-msgstr "Skener %s nenķ podporovįn"
-
-#: ../../standalone/scannerdrake_.c:94
-#, c-format
-msgid ""
-"Scannerdrake was not able to detect your %s scanner.\n"
-"Please select the device where your scanner is plugged"
-msgstr ""
-"Scannerdrake nebyl schopen detekovat vį¹ skener %s.\n"
-"Vyberte prosķm zaųķzenķ, ke kterému je skener pųipojen"
-
-#: ../../standalone/scannerdrake_.c:96
-msgid "choose device"
-msgstr "vyberte zaųķzenķ"
-
-#: ../../standalone/scannerdrake_.c:102
-#, c-format
-msgid ""
-"This %s scanner must be configured by printerdrake.\n"
-"You can launch printerdrake from the Mandrake Control Center in Hardware "
-"section."
-msgstr ""
-"Skener %s musķ bżt nastaven pomocķ nįstroje printerdrake.\n"
-"Spustit printerdrake lze z ųķdķcķho centra Mandrake v sekci Hardware"
-
-#: ../../standalone/scannerdrake_.c:107
-#, c-format
-msgid ""
-"Your %s scanner has been configured.\n"
-"You may now scan documents using ``XSane'' from Multimedia/Graphics in the "
-"applications menu."
-msgstr ""
-"Vį¹ skener %s byl nastaven.\n"
-"Nynķ lze skenovat dokumenty pomocķ aplikace \"XSane\" z nabķdky aplikacķ "
-"Multimédia/Grafika."
-
-#: ../../standalone/tinyfirewall_.c:31
-msgid "Firewalling Configuration"
-msgstr "Konfigurace firewallu"
-
-#: ../../standalone/tinyfirewall_.c:44
-msgid "Firewalling configuration"
-msgstr "Konfigurace firewallu"
-
-#: ../../standalone/tinyfirewall_.c:79
-msgid ""
-"Firewalling\n"
-"\n"
-"You already have set up a firewall.\n"
-"Click on Configure to change or remove the firewall"
-msgstr ""
-"Firewall\n"
-"\n"
-"Firewall je ji¾ nastaven.\n"
-"Kliknģte na Konfigurovat pro zmģnu nebo odebrįnķ firewallu"
-
-#: ../../standalone/tinyfirewall_.c:83
-msgid ""
-"Firewalling\n"
-"\n"
-"Click on Configure to set up a standard firewall"
-msgstr ""
-"Firewall\n"
-"\n"
-"Kliknģte na Konfigurovat pro standardnķ firewall"
-
-#: ../../steps.pm_.c:14
-msgid "Choose your language"
-msgstr "Vżbģr jazyka"
-
-#: ../../steps.pm_.c:15
-msgid "Select installation class"
-msgstr "Volba typu instalace"
-
-#: ../../steps.pm_.c:16
-msgid "Hard drive detection"
-msgstr "Detekce hardiskł"
-
-#: ../../steps.pm_.c:17
-msgid "Configure mouse"
-msgstr "Nastavenķ my¹i"
-
-#: ../../steps.pm_.c:18
-msgid "Choose your keyboard"
-msgstr "Vżbģr klįvesnice"
-
-#: ../../steps.pm_.c:19
-msgid "Security"
-msgstr "Bezpečnost"
-
-#: ../../steps.pm_.c:20
-msgid "Setup filesystems"
-msgstr "Souborové systémy"
-
-#: ../../steps.pm_.c:21
-msgid "Format partitions"
-msgstr "Formįtovįnķ oddķlł"
-
-#: ../../steps.pm_.c:22
-msgid "Choose packages to install"
-msgstr "Vżbģr balķčkł pro instalaci"
-
-#: ../../steps.pm_.c:23
-msgid "Install system"
-msgstr "Instalace systému"
-
-#: ../../steps.pm_.c:25
-msgid "Add a user"
-msgstr "Pųidįnķ u¾ivatele"
-
-#: ../../steps.pm_.c:26
-msgid "Configure networking"
-msgstr "Nastavenķ sķtķ"
-
-#: ../../steps.pm_.c:28
-msgid "Configure services"
-msgstr "Nastavenķ slu¾eb"
-
-#: ../../steps.pm_.c:29
-msgid "Install bootloader"
-msgstr "Zavįdģcķ program"
-
-#: ../../steps.pm_.c:31
-msgid "Create a bootdisk"
-msgstr "Startovacķ disketa"
-
-#: ../../steps.pm_.c:33
-msgid "Configure X"
-msgstr "Nastavenķ X"
-
-#: ../../steps.pm_.c:34
-msgid "Install system updates"
-msgstr "Aktualizace systému"
-
-#: ../../steps.pm_.c:35
-msgid "Exit install"
-msgstr "Ukončit instalaci"
-
-#: ../../tinyfirewall.pm_.c:9
-msgid ""
-"tinyfirewall configurator\n"
-"\n"
-"This configures a personal firewall for this Mandrake Linux machine.\n"
-"For a powerful dedicated firewall solution, please look to the\n"
-"specialized MandrakeSecurity Firewall distribution."
-msgstr ""
-"Konfigurace tinyfirewallu\n"
-"\n"
-"Zde je mo¾né nastavit jednoduchż firewall pro Mandrake Linux.\n"
-"Pro vżkonné ųe¹enķ firewallu pou¾ijte specializovanou\n"
-"distribuci MandrakeSecurity Firewall."
-
-#: ../../tinyfirewall.pm_.c:14
-msgid ""
-"We'll now ask you questions about which services you'd like to allow\n"
-"the Internet to connect to. Please think carefully about these\n"
-"questions, as your computer's security is important.\n"
-"\n"
-"Please, if you're not currently using one of these services, firewall\n"
-"it off. You can change this configuration anytime you like by\n"
-"re-running this application!"
-msgstr ""
-"Nynķ budete dotįzįni v nģkolika otįzkįch na slu¾by, které chcete mķt\n"
-"pųķstupné z Internetu. Zamyslete se prosķm dobųe nad tģmito\n"
-"otįzkami, proto¾e bezpečnost počķtače je dłle¾itį.\n"
-"\n"
-"Pokud nepou¾ķvįte dįle vyjmenované slu¾by, zaka¾te je prosķm.\n"
-"Tyto volby lze kdykoliv zmģnit spu¹tģnķm této aplikace!"
-
-#: ../../tinyfirewall.pm_.c:21
-msgid ""
-"Are you running a web server on this machine that you need the whole\n"
-"Internet to see? If you are running a webserver that only needs to be\n"
-"accessed by this machine, you can safely answer NO here.\n"
-"\n"
-msgstr ""
-"Potųebujete na tomto počķtači web server, kterż je pųķstupnż\n"
-"z Internetu? Pokud potųebujete webovż server pųķstupnż pouze\n"
-"z tohoto stroje, odpovģzte na tuto otįzku Ne.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:26
-msgid ""
-"Are you running a name server on this machine? If you didn't set one\n"
-"up to give away IP and zone information to the whole Internet, please\n"
-"answer no.\n"
-"\n"
-msgstr ""
-"Pou¾ķvįte na tomto serveru jmennż server? Pokud ne a nepotųebujete\n"
-"pųedįvat jinżm počķtačłm informace o IP adresįch, odpovģzte Ne.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:31
-msgid ""
-"Do you want to allow incoming Secure Shell (ssh) connections? This\n"
-"is a telnet-replacement that you might use to login. If you're using\n"
-"telnet now, you should definitely switch to ssh. telnet is not\n"
-"encrypted -- so some attackers can steal your password if you use\n"
-"it. ssh is encrypted and doesn't allow for this eavesdropping."
-msgstr ""
-"Chcete povolit pųķchozķ ssh (Secure Shell) spojenķ? Ssh je nįhrada\n"
-"za telnet, kterį umo¾ņuje vzdįlené pųihlį¹enķ. Pokud nynķ\n"
-"pou¾ķvįte telnet, je velmi vhodné pųejķt na ssh. Telnet nenķ\n"
-"kryptovanż -- kdokoliv mł¾e zjistit heslo, pokud ho pųi telnetu\n"
-"pou¾ijete. Na rozdķl od telnetu je ssh kryptované, tak¾e nenķ\n"
-"mo¾né, aby kdokoliv zjistil heslo."
-
-#: ../../tinyfirewall.pm_.c:36
-msgid ""
-"Do you want to allow incoming telnet connections?\n"
-"This is horribly unsafe, as we explained in the previous screen. We\n"
-"strongly recommend answering No here and using ssh in place of\n"
-"telnet.\n"
-msgstr ""
-"Chcete povolit pųķchozķ spojenķ pųes telnet?\n"
-"Je to VELMI nebezpečné, tak jak u¾ bylo vysvģtleno na pųedchozķ\n"
-"obrazovce. Dłraznģ doporučujeme odpovģdģt Ne a pou¾ķt namķsto\n"
-"telnetu ssh.\n"
-
-#: ../../tinyfirewall.pm_.c:41
-msgid ""
-"Are you running an FTP server here that you need accessible to the\n"
-"Internet? If you are, we strongly recommend that you only use it for\n"
-"Anonymous transfers. Any passwords sent by FTP can be stolen by some\n"
-"attackers, since FTP also uses no encryption for transferring passwords.\n"
-msgstr ""
-"Chcete pou¾ķt FTP server, kterż bude pųķstupnż z Internetu? Pokud ano,\n"
-"je doporučeno jej pou¾ķvat pouze pro anonymnķ pųķstup. Proto¾e FTP\n"
-"pro pųķstup nepou¾ķvį ¾įdné kryptovįnķ, je mo¾né, ¾e zaslané heslo mł¾e\n"
-"zķskat kdokoliv, i potenciįlnķ śtočnķk.\n"
-
-#: ../../tinyfirewall.pm_.c:46
-msgid ""
-"Are you running a mail server here? If you're sending you \n"
-"messages through pine, mutt or any other text-based mail client,\n"
-"you probably are. Otherwise, you should firewall this off.\n"
-"\n"
-msgstr ""
-"Pou¾ķvįte mailovż server? Pokud posķlįte po¹tu pųes klienta pine,\n"
-"mutt nebo jiného textového klienta, tak zųejmģ ano. V jinżch\n"
-"pųķpadech to zaka¾te na firewallu.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:51
-msgid ""
-"Are you running a POP or IMAP server here? This would\n"
-"be used to host non-web-based mail accounts for people via \n"
-"this machine.\n"
-"\n"
-msgstr ""
-"Pou¾ķvįte na tomto serveru POP nebo IMAP? Ty se pou¾ķvajķ\n"
-"pro pųķstup lidķ k emailovżm śčtłm (ne pųes web).\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:56
-msgid ""
-"You appear to be running a 2.2 kernel. If your network IP\n"
-"is automatically set by a computer in your home or office \n"
-"(dynamically assigned), we need to allow for this. Is\n"
-"this the case?\n"
-msgstr ""
-"Pou¾ķvįte jįdro verze 2.2. Pokud je sķ»ovį IP adresa automaticky\n"
-"pųidģlena počķtači doma nebo v prįci (dynamické pųidģlenķ),\n"
-"potųebujeme tuto mo¾nost povolit. Je to tento pųķpad?\n"
-
-#: ../../tinyfirewall.pm_.c:61
-msgid ""
-"Is your computer getting time syncronized to another computer?\n"
-"Mostly, this is used by medium-large Unix/Linux organizations\n"
-"to synchronize time for logging and such. If you're not part\n"
-"of a larger office and haven't heard of this, you probably \n"
-"aren't."
-msgstr ""
-"Bude vį¹ počķtač synchronizovįn s jinżm počķtačem?\n"
-"Vģt¹inou se to pou¾ķvį v organizacķch s vģt¹ķm počtem Unix/Linux\n"
-"počķtačł pro synchronizaci logovįnķ a podobnģ. Pokud nejste\n"
-"součįstķ vģt¹ķho celku nebo jste o ničem podobném nesly¹eli,\n"
-"synchronizaci nepotųebujete."
-
-#: ../../tinyfirewall.pm_.c:66
-msgid ""
-"Configuration complete. May we write these changes to disk?\n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-"Konfigurace je hotova. Je mo¾né zapsat tyto zmģny na disk?\n"
-"\n"
-"\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:82
-#, c-format
-msgid "Can't open %s: %s\n"
-msgstr "Nelze otevųķt %s: %s\n"
-
-#: ../../tinyfirewall.pm_.c:84
-#, c-format
-msgid "Can't open %s for writing: %s\n"
-msgstr "Chyba pųi otevķrįnķ %s pro zįpis: %s\n"
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "No I don't need DHCP"
-msgstr "Ne, nepotųebuji DHCP"
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "Yes I need DHCP"
-msgstr "Ano, potųebuji DHCP"
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "No I don't need NTP"
-msgstr "Ne, nepotųebuji NTP"
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "Yes I need NTP"
-msgstr "Ano, potųebuji NTP"
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-msgid "Don't Save"
-msgstr "Neuklįdat"
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-#: ../../tinyfirewall.pm_.c:206
-msgid "Save & Quit"
-msgstr "Ulo¾it & Konec"
-
-#: ../../tinyfirewall.pm_.c:197 ../../tinyfirewall.pm_.c:201
-msgid "Firewall Configuration Wizard"
-msgstr "Prłvodce konfiguracķ firewallu"
-
-#: ../../tinyfirewall.pm_.c:199
-msgid "No (firewall this off from the internet)"
-msgstr "Ne (zakįzat na firewalu)"
-
-#: ../../tinyfirewall.pm_.c:200
-msgid "Yes (allow this through the firewall)"
-msgstr "Ano (povolit na firewalu)"
-
-#: ../../tinyfirewall.pm_.c:232
-msgid "Please Wait... Verifying installed packages"
-msgstr "Čekejte prosķm... ovģųuji nainstalované balķčky"
-
-#: ../../tinyfirewall.pm_.c:238
-#, c-format
-msgid ""
-"Failure installing the needed packages : %s and Bastille.\n"
-" Try to install them manually."
-msgstr ""
-"Selhala instalace potųebnżch balķčkł : %s a Bastille.\n"
-" Pokuste se je instalovat ručnģ."
-
-#: ../../share/compssUsers:999
-msgid "Web/FTP"
-msgstr "Web/FTP"
-
-#: ../../share/compssUsers:999
-msgid "Network Computer (client)"
-msgstr "Sķ»ovż počķtač (klient)"
-
-#: ../../share/compssUsers:999
-msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr "NFS server, SMB server, Proxy server, SSH server"
-
-#: ../../share/compssUsers:999
-msgid "Office"
-msgstr "Kancelįų"
-
-#: ../../share/compssUsers:999
-msgid "Gnome Workstation"
-msgstr "Pracovnķ stanice s Gnome"
-
-#: ../../share/compssUsers:999
-msgid "Tools for your Palm Pilot or your Visor"
-msgstr "Nįstroje pro vį¹ Palm Pilot nebo Visor"
-
-#: ../../share/compssUsers:999
-msgid "Workstation"
-msgstr "Pracovnķ stanice"
-
-#: ../../share/compssUsers:999
-msgid "Firewall/Router"
-msgstr "Firewall/Router"
-
-#: ../../share/compssUsers:999
-msgid "Domain Name and Network Information Server"
-msgstr "Doménovį jména a sķ»ovż informačnķ server"
-
-#: ../../share/compssUsers:999
-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/compssUsers:999
-msgid "Audio-related tools: mp3 or midi players, mixers, etc"
-msgstr "Nįstroje pro zvuk: pųehrįvače mp3 a midi, mixéry a dal¹ķ"
-
-#: ../../share/compssUsers:999
-msgid "Books and Howto's on Linux and Free Software"
-msgstr "Knihy a Howto o Linuxu a Free Software"
-
-#: ../../share/compssUsers:999
-msgid "KDE Workstation"
-msgstr "Pracovnķ stanice s KDE"
-
-#: ../../share/compssUsers:999
-msgid "Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm, Window Maker, Enlightenment, Fvwm a dal¹ķ"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Video"
-msgstr "Multimédia - video"
-
-#: ../../share/compssUsers:999
-msgid "Set of tools for mail, news, web, file transfer, and chat"
-msgstr "Skupina programł pro mail, newsy, web, pųenos souborł a chat"
-
-#: ../../share/compssUsers:999
-msgid "Database"
-msgstr "Databįze"
-
-#: ../../share/compssUsers:999
-msgid "PostgreSQL or MySQL database server"
-msgstr "Databįzové servery PostreSQL nebo MySQL"
-
-#: ../../share/compssUsers:999
-msgid "Tools to ease the configuration of your computer"
-msgstr "Nįstroje pro snadnou konfiguraci počķtače"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Sound"
-msgstr "Multimédia - zvuk"
-
-#: ../../share/compssUsers:999
-msgid "Utilities"
-msgstr "Utility"
-
-#: ../../share/compssUsers:999
-msgid "Documentation"
-msgstr "Dokumentace"
-
-#: ../../share/compssUsers:999
-msgid "Console Tools"
-msgstr "Konzolové nįstroje"
-
-#: ../../share/compssUsers:999
-msgid "Postfix mail server, Inn news server"
-msgstr "Po¹tovnķ server postfix, server pro news Inn"
-
-#: ../../share/compssUsers:999
-msgid "Internet station"
-msgstr "Internetovį stanice"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia station"
-msgstr "Multimédiįlnķ stanice"
-
-#: ../../share/compssUsers:999
-msgid "Configuration"
-msgstr "Nastavenķ"
-
-#: ../../share/compssUsers:999
-msgid "More Graphical Desktops (Gnome, IceWM)"
-msgstr "Dal¹ķ grafické desktopy Gnome, IceWM)"
-
-#: ../../share/compssUsers:999
-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 "
-"nįstrojł"
-
-#: ../../share/compssUsers:999
-msgid "Graphical Environment"
-msgstr "Grafické prostųedķ"
-
-#: ../../share/compssUsers:999
-msgid "Apache, Pro-ftpd"
-msgstr "Apache a Pro-ftpd"
-
-#: ../../share/compssUsers:999
-msgid "Tools to create and burn CD's"
-msgstr "Nįstroje pro vytvįųenķ a vypalovįnķ CD"
-
-#: ../../share/compssUsers:999
-msgid "Office Workstation"
-msgstr "Kancelįųskį stanice"
-
-#: ../../share/compssUsers:999
-msgid "Server"
-msgstr "Server"
-
-#: ../../share/compssUsers:999
-msgid "Gnome, Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Gnome, Icewm, Window Maker, Enlightenment, Fvwm a dal¹ķ"
-
-#: ../../share/compssUsers:999
-msgid "Graphics programs such as The Gimp"
-msgstr "Grafické programy jako napų. Gimp"
-
-#: ../../share/compssUsers:999
-msgid "DNS/NIS "
-msgstr "DNS/NIS "
-
-#: ../../share/compssUsers:999
-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/compssUsers:999
-msgid "Network Computer server"
-msgstr "Sķ»ovż server"
-
-#: ../../share/compssUsers:999
-msgid "Mail/Groupware/News"
-msgstr "Po¹ta/Groupware/News"
-
-#: ../../share/compssUsers:999
-msgid "Game station"
-msgstr "Hry"
-
-#: ../../share/compssUsers:999
-msgid "Video players and editors"
-msgstr "Pųehrįvače a editory videa"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Graphics"
-msgstr "Multimédia - grafika"
-
-#: ../../share/compssUsers:999
-msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr "Zįbavné programy: deskové hry, strategie, atd."
-
-#: ../../share/compssUsers:999
-msgid ""
-"Set of tools to read and send mail and news (pine, mutt, tin..) and to "
-"browse the Web"
-msgstr ""
-"Kolekce nįstrojł pro čtenķ a posķlanķ mailł (pine, mutt, tin..) a pro "
-"prohlķ¾enķ Webu"
-
-#: ../../share/compssUsers:999
-msgid "Archiving, emulators, monitoring"
-msgstr "Archivace, emulįtory, minitoring"
-
-#: ../../share/compssUsers:999
-msgid "Personal Finance"
-msgstr "Sprįva osobnķch financķ"
-
-#: ../../share/compssUsers:999
-msgid ""
-"A 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"
-
-#: ../../share/compssUsers:999
-msgid "Clients for different protocols including ssh"
-msgstr "Klienti pro rłzné verze protokolu ssh"
-
-#: ../../share/compssUsers:999
-msgid "Internet gateway"
-msgstr "Internetovį brįna"
-
-#: ../../share/compssUsers:999
-msgid "Sound and video playing/editing programs"
-msgstr "Programy pro pųehrįvįnķ/editaci zvuku a videa"
-
-#: ../../share/compssUsers:999
-msgid "Other Graphical Desktops"
-msgstr "Dal¹ķ grafické desktopy"
-
-#: ../../share/compssUsers:999
-msgid "Editors, shells, file tools, terminals"
-msgstr "Editory, shelly, souborové nįstroje, terminįly"
-
-#: ../../share/compssUsers:999
-msgid "Programs to manage your finance, such as gnucash"
-msgstr "Programy na sprįvu financķ jako napų. gnucash"
-
-#: ../../share/compssUsers:999
-msgid "Personal Information Management"
-msgstr "Sprįvce osobnķch informacķ (PIM)"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - CD Burning"
-msgstr "Multimédia - vypalovįnķ CD"
-
-#: ../../share/compssUsers:999
-msgid "Scientific Workstation"
-msgstr "Vģdeckį stanice"
diff --git a/perl-install/share/po/cy.po b/perl-install/share/po/cy.po
deleted file mode 100644
index 97fdf158a..000000000
--- a/perl-install/share/po/cy.po
+++ /dev/null
@@ -1,12371 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 1999 Free Software Foundation, Inc.
-# Copyright (c) 1999 MandrakeSoft
-# Dafydd Tomos <dafydd@imaginet.co.uk>, 1999
-# Rhoslyn Prys <rhoslyn.prys@ntlworld.com>, 2002
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: DrakX VERSION\n"
-"POT-Creation-Date: 2002-03-11 18:29+0100\n"
-"PO-Revision-Date: 2002-03-11 12:35-0000\n"
-"Last-Translator: Rhoslyn Prys <rhoslyn.prys@ntlworld.com>\n"
-"Language-Team: Cymraeg/Welsh <cy@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-14\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../Xconfigurator.pm_.c:242
-msgid "Configure all heads independently"
-msgstr "Ffurfweddu pob pen yn annibynnol"
-
-#: ../../Xconfigurator.pm_.c:243
-msgid "Use Xinerama extension"
-msgstr "Defnyddiwch estyniad Xinerama"
-
-#: ../../Xconfigurator.pm_.c:246
-#, c-format
-msgid "Configure only card \"%s\" (%s)"
-msgstr "Ffurfweddu cerdyn \"%s\" (%s) yn unig"
-
-#: ../../Xconfigurator.pm_.c:249
-msgid "Multi-head configuration"
-msgstr "Ffurfweddiad amlben"
-
-#: ../../Xconfigurator.pm_.c:250
-msgid ""
-"Your system support multiple head configuration.\n"
-"What do you want to do?"
-msgstr ""
-"Mae eich system yn cynnal ffurfweddiad amlben.\n"
-"Beth hoffech ei wneud?"
-
-#: ../../Xconfigurator.pm_.c:261
-msgid "Graphic card"
-msgstr "Cerdyn graffig"
-
-#: ../../Xconfigurator.pm_.c:262
-msgid "Select a graphic card"
-msgstr "Dewiswch gerdyn graffig"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "Choose a X server"
-msgstr "Dewiswch wasanaethwr X"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "X server"
-msgstr "Gwasanaethwr X"
-
-#: ../../Xconfigurator.pm_.c:293
-msgid "Choose a X driver"
-msgstr "Dewiswch yrrwr X"
-
-#: ../../Xconfigurator.pm_.c:293
-msgid "X driver"
-msgstr "Gyrrwr X"
-
-#: ../../Xconfigurator.pm_.c:360 ../../Xconfigurator.pm_.c:366
-#: ../../Xconfigurator.pm_.c:416 ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s"
-msgstr "XFree86: %s"
-
-#: ../../Xconfigurator.pm_.c:363
-msgid "Which configuration of XFree do you want to have?"
-msgstr "Pa ffurfweddiad oXFree hoffech ei gael?"
-
-#: ../../Xconfigurator.pm_.c:374
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"Mae eich cerdyn yn medru cael cefnogaeth cyflymu caledwedd 3D ond dim ond "
-"gyda XFree %s.\n"
-"Mae eich cerdyn yn cael ei gynnal gan XFree %s efallai bod gwell cefnogaeth "
-"yn 2D."
-
-#: ../../Xconfigurator.pm_.c:376 ../../Xconfigurator.pm_.c:409
-#, c-format
-msgid "Your card can have 3D hardware acceleration support with XFree %s."
-msgstr ""
-"Mae modd i'ch cerdyn gael cefnogaeth cyflymu caledwedd 3D gyda XFree %s"
-
-#: ../../Xconfigurator.pm_.c:378 ../../Xconfigurator.pm_.c:411
-#: ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s with 3D hardware acceleration"
-msgstr "XFree %s gyda cyflymu caledwedd 3D"
-
-#: ../../Xconfigurator.pm_.c:386 ../../Xconfigurator.pm_.c:400
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER."
-msgstr ""
-"Mae modd i'ch cerdyn gael cefnogaeth cyflymu caledwedd 3D gyda XFree %s \n"
-"SYLWER CEFNOGAETH ARBROFOL YW HWN AC FE ALL RHEWI EICH CYFRIFIADUR."
-
-#: ../../Xconfigurator.pm_.c:388 ../../Xconfigurator.pm_.c:402
-#, c-format
-msgid "XFree %s with EXPERIMENTAL 3D hardware acceleration"
-msgstr "XFree %s gyda cyflymu caledwedd 3D ARBROFOL"
-
-#: ../../Xconfigurator.pm_.c:397
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"Mae eich cerdyn yn medru cael cefnogaeth cyflymu caledwedd 3D ond dim ond "
-"gyda XFree %s.\n"
-"SYLWER CEFNOGAETH ARBROFOL YW HWN AC FE ALL RHEWI EICH CYFRIFIADUR.\n"
-"Mae eich cerdyn yn cael ei gynnal gan XFree %s efallai bod gwell cefnogaeth "
-"yn 2D."
-
-#: ../../Xconfigurator.pm_.c:417
-msgid "Xpmac (installation display driver)"
-msgstr "Xpmac (gyrrwr gosod dangoswr)"
-
-#: ../../Xconfigurator.pm_.c:421
-msgid "XFree configuration"
-msgstr "Ffurfweddiad XFree"
-
-#: ../../Xconfigurator.pm_.c:496
-msgid "Select the memory size of your graphic card"
-msgstr "Dewiswch faint y cof eich cerdyn graffeg"
-
-#: ../../Xconfigurator.pm_.c:550
-msgid "Choose options for server"
-msgstr "Dewiswch opsiynau ar gyfer y gwasanaethwr"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Choose a monitor"
-msgstr "Dewiswch fonitor"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Monitor"
-msgstr "Monitor"
-
-#: ../../Xconfigurator.pm_.c:577
-msgid ""
-"The two critical parameters are the vertical refresh rate, which is the "
-"rate\n"
-"at which the whole screen is refreshed, and most importantly the horizontal\n"
-"sync rate, which is the rate at which scanlines are displayed.\n"
-"\n"
-"It is VERY IMPORTANT that you do not specify a monitor type with a sync "
-"range\n"
-"that is beyond the capabilities of your monitor: you may damage your "
-"monitor.\n"
-" If in doubt, choose a conservative setting."
-msgstr ""
-"Y ddau paramedr pwysig yw'r raddfa adnewyddu fertigol, sef y raddfa mae'r\n"
-"holl sgrin yn cael ei adnewyddu, ac yn fwyaf pwysif y raddfa cydamseru\n"
-"llorweddol, sef y raddfa mae'r llinellau sganio'n cael eu dangos.\n"
-"\n"
-"Mae'r BWYSIG IAWN mad ydych yn enwi monitor gyda graddfa cydamseru\n"
-"sydd tu hwnt i allu eich monitor: mae modd difrodi eich monitor drwy wneud "
-"hynny.\n"
-"Os oes gennych amheuaeth, dewiswch raddfa is."
-
-#: ../../Xconfigurator.pm_.c:584
-msgid "Horizontal refresh rate"
-msgstr "Graddfa adfywio llorweddol"
-
-#: ../../Xconfigurator.pm_.c:585
-msgid "Vertical refresh rate"
-msgstr "Graddfa adfywio fertigol"
-
-#: ../../Xconfigurator.pm_.c:622
-msgid "Monitor not configured"
-msgstr "Monitor heb ei ffurfweddu"
-
-#: ../../Xconfigurator.pm_.c:625
-msgid "Graphic card not configured yet"
-msgstr "Cerdyn graffig heb ei ffurfweddu eto"
-
-#: ../../Xconfigurator.pm_.c:628
-msgid "Resolutions not chosen yet"
-msgstr "Cydraniad heb ei ddewis eto"
-
-#: ../../Xconfigurator.pm_.c:646
-msgid "Do you want to test the configuration?"
-msgstr "Ydych chi eisiau profi eich ffurfweddiad?"
-
-#: ../../Xconfigurator.pm_.c:650
-msgid "Warning: testing this graphic card may freeze your computer"
-msgstr "Rhybydd: gall profi'r cerdyn graffig hwn rewi eich cyfrifiadur"
-
-#: ../../Xconfigurator.pm_.c:653
-msgid "Test of the configuration"
-msgstr "Profi'r ffurfweddiad"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid ""
-"\n"
-"try to change some parameters"
-msgstr ""
-"\n"
-"ceisiwch newid rhai paramedrau"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid "An error has occurred:"
-msgstr "Digwyddodd gwall:"
-
-#: ../../Xconfigurator.pm_.c:731
-#, c-format
-msgid "Leaving in %d seconds"
-msgstr "Gadael mewn %d eiliad"
-
-#: ../../Xconfigurator.pm_.c:742
-msgid "Is this the correct setting?"
-msgstr "Ydi'r gosodiad hwn yn gywir?"
-
-#: ../../Xconfigurator.pm_.c:751
-msgid "An error has occurred, try to change some parameters"
-msgstr "Digwyddodd gwall, ceisiwch newid rhai paramedrau"
-
-#: ../../Xconfigurator.pm_.c:822
-msgid "Resolution"
-msgstr "Cydraniad"
-
-#: ../../Xconfigurator.pm_.c:874
-msgid "Choose the resolution and the color depth"
-msgstr "Dewiswch y cydraniad a'r dyfnder lliw"
-
-#: ../../Xconfigurator.pm_.c:876
-#, c-format
-msgid "Graphic card: %s"
-msgstr "Cerdyn graffeg: %s"
-
-#: ../../Xconfigurator.pm_.c:877
-#, c-format
-msgid "XFree86 server: %s"
-msgstr "Gwasanaethwr XFree86: %s"
-
-#: ../../Xconfigurator.pm_.c:891 ../../diskdrake/interactive.pm_.c:259
-#: ../../install_steps_interactive.pm_.c:208
-msgid "More"
-msgstr "Rhagor"
-
-#: ../../Xconfigurator.pm_.c:891 ../../install_gtk.pm_.c:84
-#: ../../install_steps_gtk.pm_.c:328 ../../interactive.pm_.c:127
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_http.pm_.c:104
-#: ../../interactive_newt.pm_.c:170 ../../interactive_stdio.pm_.c:141
-#: ../../interactive_stdio.pm_.c:142 ../../my_gtk.pm_.c:686
-#: ../../my_gtk.pm_.c:1019 ../../my_gtk.pm_.c:1041
-#: ../../standalone/drakbackup_.c:2298 ../../standalone/drakbackup_.c:2369
-#: ../../standalone/drakbackup_.c:2385
-msgid "Ok"
-msgstr "Iawn"
-
-#: ../../Xconfigurator.pm_.c:893 ../../network/netconnect.pm_.c:169
-#: ../../printerdrake.pm_.c:2470 ../../standalone/draknet_.c:275
-#: ../../standalone/draknet_.c:278
-msgid "Expert Mode"
-msgstr "Modd Arbennigwr"
-
-#: ../../Xconfigurator.pm_.c:894
-msgid "Show all"
-msgstr "Dangos y cyfan"
-
-#: ../../Xconfigurator.pm_.c:939
-msgid "Resolutions"
-msgstr "Cydraniadau"
-
-#: ../../Xconfigurator.pm_.c:1509
-#, c-format
-msgid "Keyboard layout: %s\n"
-msgstr "Gosodiad yr yr allweddell: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1510
-#, c-format
-msgid "Mouse type: %s\n"
-msgstr "Math o lygoden: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1511
-#, c-format
-msgid "Mouse device: %s\n"
-msgstr "Dyfais llygoden: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1512
-#, c-format
-msgid "Monitor: %s\n"
-msgstr "Monitor: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1513
-#, c-format
-msgid "Monitor HorizSync: %s\n"
-msgstr "HorizSync Monitor: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1514
-#, c-format
-msgid "Monitor VertRefresh: %s\n"
-msgstr "VertRefresh Monitor: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1515
-#, c-format
-msgid "Graphic card: %s\n"
-msgstr "Cerdyn graffeg: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1516
-#, c-format
-msgid "Graphic card identification: %s\n"
-msgstr "Dynodiad y cerdyn graffeg: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1517
-#, c-format
-msgid "Graphic memory: %s kB\n"
-msgstr "Cof graffeg: %s kB\n"
-
-#: ../../Xconfigurator.pm_.c:1519
-#, c-format
-msgid "Color depth: %s\n"
-msgstr "Dyfnder lliw: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1520
-#, c-format
-msgid "Resolution: %s\n"
-msgstr "Cydraniad: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1522
-#, c-format
-msgid "XFree86 server: %s\n"
-msgstr "GwasanaethwrXFree86: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1523
-#, c-format
-msgid "XFree86 driver: %s\n"
-msgstr "Gyrrwr XFree86: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1541
-msgid "Preparing X-Window configuration"
-msgstr "Yn parataoi cyfluniad X-Window"
-
-#: ../../Xconfigurator.pm_.c:1561
-msgid "What do you want to do?"
-msgstr "Beth ydych eisiau ei wneud?"
-
-#: ../../Xconfigurator.pm_.c:1566
-msgid "Change Monitor"
-msgstr "Newid Monitor"
-
-#: ../../Xconfigurator.pm_.c:1567
-msgid "Change Graphic card"
-msgstr "Newid cerdyn Graffeg"
-
-#: ../../Xconfigurator.pm_.c:1570
-msgid "Change Server options"
-msgstr "Dewisiadau newid Gwasanaethwr"
-
-#: ../../Xconfigurator.pm_.c:1571
-msgid "Change Resolution"
-msgstr "Newid Cydraniad"
-
-#: ../../Xconfigurator.pm_.c:1572
-msgid "Show information"
-msgstr "Dangos gwybodaeth"
-
-#: ../../Xconfigurator.pm_.c:1573
-msgid "Test again"
-msgstr "Profi eto"
-
-#: ../../Xconfigurator.pm_.c:1574 ../../printerdrake.pm_.c:2473
-#: ../../standalone/logdrake_.c:225
-msgid "Quit"
-msgstr "Gadael"
-
-#: ../../Xconfigurator.pm_.c:1582
-#, c-format
-msgid ""
-"Keep the changes?\n"
-"Current configuration is:\n"
-"\n"
-"%s"
-msgstr ""
-"Cadw'r newid?\n"
-"Y ffurfweddiad presenol yw:\n"
-"\n"
-"%s"
-
-#: ../../Xconfigurator.pm_.c:1603
-msgid "X at startup"
-msgstr "X wrth ddechrau"
-
-#: ../../Xconfigurator.pm_.c:1604
-msgid ""
-"I can set up your computer to automatically start X upon booting.\n"
-"Would you like X to start when you reboot?"
-msgstr ""
-"Hoffwn osod eich cyfrifiadur i gychwyn X yn awtomatig ar ōl cychwyn\n"
-"Hoffech chi X i ddechrau wedi i chi ail-gychwyn?"
-
-#: ../../Xconfigurator.pm_.c:1610
-#, c-format
-msgid "Please relog into %s to activate the changes"
-msgstr "Ail fewn gofnodwch i %s i wireddu'r newidiadau"
-
-#: ../../Xconfigurator.pm_.c:1625
-msgid "Please log out and then use Ctrl-Alt-BackSpace"
-msgstr "Allgofnodwch ac yna defnyddiwch Ctrl Alt-BackSpace"
-
-#: ../../Xconfigurator_consts.pm_.c:6
-msgid "256 colors (8 bits)"
-msgstr "256 lliw (8 did)"
-
-#: ../../Xconfigurator_consts.pm_.c:7
-msgid "32 thousand colors (15 bits)"
-msgstr "32 mil o liwiau (15 did)"
-
-#: ../../Xconfigurator_consts.pm_.c:8
-msgid "65 thousand colors (16 bits)"
-msgstr "65 mil o liwiau (16 did)"
-
-#: ../../Xconfigurator_consts.pm_.c:9
-msgid "16 million colors (24 bits)"
-msgstr "16 miliwn o liwiau (24 did)"
-
-#: ../../Xconfigurator_consts.pm_.c:10
-msgid "4 billion colors (32 bits)"
-msgstr "4 biliwn o liwiau (32 did)"
-
-#: ../../Xconfigurator_consts.pm_.c:113
-msgid "256 kB"
-msgstr "256 kB"
-
-#: ../../Xconfigurator_consts.pm_.c:114
-msgid "512 kB"
-msgstr "512 kB"
-
-#: ../../Xconfigurator_consts.pm_.c:115
-msgid "1 MB"
-msgstr "1 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:116
-msgid "2 MB"
-msgstr "2 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:117
-msgid "4 MB"
-msgstr "4 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:118
-msgid "8 MB"
-msgstr "8 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:119
-msgid "16 MB"
-msgstr "16 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:120
-msgid "32 MB"
-msgstr "32 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:121
-msgid "64 MB or more"
-msgstr "16 MB neu fwy"
-
-#: ../../Xconfigurator_consts.pm_.c:129
-msgid "Standard VGA, 640x480 at 60 Hz"
-msgstr "VGA safonol, 640x480 ar 60 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:130
-msgid "Super VGA, 800x600 at 56 Hz"
-msgstr "Uwch VGA, 800x600 ar 56 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:131
-msgid "8514 Compatible, 1024x768 at 87 Hz interlaced (no 800x600)"
-msgstr "Cydnaws a 8514, 1024x768 rhyngleswyd ar 87 Hz (nid 800x600)"
-
-#: ../../Xconfigurator_consts.pm_.c:132
-msgid "Super VGA, 1024x768 at 87 Hz interlaced, 800x600 at 56 Hz"
-msgstr "Super VGA, 1024x768 rhyngleswyd ar 87Hz, 800x600 ar 56 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:133
-msgid "Extended Super VGA, 800x600 at 60 Hz, 640x480 at 72 Hz"
-msgstr "Extended Super VGA, 800x600 ar 60 Hz, 640x480 ar 72 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:134
-msgid "Non-Interlaced SVGA, 1024x768 at 60 Hz, 800x600 at 72 Hz"
-msgstr "SVGA di-rygnlesig, 1024x768 ar 60 Hz, 800x600 ar 72 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:135
-msgid "High Frequency SVGA, 1024x768 at 70 Hz"
-msgstr "SVGA Amledd Uchel, 1024x768 ar 70 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:136
-msgid "Multi-frequency that can do 1280x1024 at 60 Hz"
-msgstr "Aml-amledd sydd yn medru dangos 1280x1024 ar 60 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:137
-msgid "Multi-frequency that can do 1280x1024 at 74 Hz"
-msgstr "Aml-amledd sydd yn medru dangos 1280x1024 ar 74 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:138
-msgid "Multi-frequency that can do 1280x1024 at 76 Hz"
-msgstr "Aml-amledd sydd yn medru dangos 1280x1024 ar 76 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:139
-msgid "Monitor that can do 1600x1200 at 70 Hz"
-msgstr "Monitor sydd yn medru dangos 1600x1200 ar 70 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:140
-msgid "Monitor that can do 1600x1200 at 76 Hz"
-msgstr "Monitor sydd yn medru dangos 1600x1200 ar 76 Hz"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141
-msgid "First sector of boot partition"
-msgstr "Adran gyntaf o'r rhaniad cychwyn"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141 ../../any.pm_.c:218
-msgid "First sector of drive (MBR)"
-msgstr "Adran gyntaf o'r gyrrwr (MBR)"
-
-#: ../../any.pm_.c:120
-msgid "SILO Installation"
-msgstr "Gosodiad SILO"
-
-#: ../../any.pm_.c:121 ../../any.pm_.c:134
-msgid "Where do you want to install the bootloader?"
-msgstr "Lle ydych chi eisiau gosod y llwythwr cychwyn?"
-
-#: ../../any.pm_.c:133
-msgid "LILO/grub Installation"
-msgstr "Gosodiad LILO/grub"
-
-#: ../../any.pm_.c:145 ../../any.pm_.c:159
-msgid "SILO"
-msgstr "SILO"
-
-#: ../../any.pm_.c:147
-msgid "LILO with text menu"
-msgstr "LILO gyda dewislen testun"
-
-#: ../../any.pm_.c:148 ../../any.pm_.c:159
-msgid "LILO with graphical menu"
-msgstr "Lilo gyda dewislen graffig"
-
-#: ../../any.pm_.c:151
-msgid "Grub"
-msgstr "Grub"
-
-#: ../../any.pm_.c:155
-msgid "Boot from DOS/Windows (loadlin)"
-msgstr "Cychwyn o DOS/Windows (loadlin)"
-
-#: ../../any.pm_.c:157 ../../any.pm_.c:159
-msgid "Yaboot"
-msgstr "Yaboot"
-
-#: ../../any.pm_.c:166 ../../any.pm_.c:198
-msgid "Bootloader main options"
-msgstr "Prif ddewisiadau Bootloader"
-
-#: ../../any.pm_.c:167 ../../any.pm_.c:199
-msgid "Bootloader to use"
-msgstr "Bootloader ar waith"
-
-#: ../../any.pm_.c:169
-msgid "Bootloader installation"
-msgstr "Gosodiad Bootloader"
-
-#: ../../any.pm_.c:171 ../../any.pm_.c:201
-msgid "Boot device"
-msgstr "Dyfais cychwyn"
-
-#: ../../any.pm_.c:172
-msgid "LBA (doesn't work on old BIOSes)"
-msgstr "LBA (nid yw'n gweithio gyda hen BIOSau)"
-
-#: ../../any.pm_.c:173
-msgid "Compact"
-msgstr "Cryno"
-
-#: ../../any.pm_.c:173
-msgid "compact"
-msgstr "cryno"
-
-#: ../../any.pm_.c:174 ../../any.pm_.c:298
-msgid "Video mode"
-msgstr "Modd fideo"
-
-#: ../../any.pm_.c:176
-msgid "Delay before booting default image"
-msgstr "Oedi cyn cychwyn delwedd rhagosodedig"
-
-#: ../../any.pm_.c:178 ../../any.pm_.c:796
-#: ../../install_steps_interactive.pm_.c:1115 ../../network/modem.pm_.c:48
-#: ../../printerdrake.pm_.c:708 ../../printerdrake.pm_.c:806
-#: ../../standalone/draknet_.c:625
-msgid "Password"
-msgstr "Cyfrinair"
-
-#: ../../any.pm_.c:179 ../../any.pm_.c:797
-#: ../../install_steps_interactive.pm_.c:1116
-msgid "Password (again)"
-msgstr "Cyfrinair (eto)"
-
-#: ../../any.pm_.c:180
-msgid "Restrict command line options"
-msgstr "Cyfyngu dewisiadau llinell orchymyn"
-
-#: ../../any.pm_.c:180
-msgid "restrict"
-msgstr "cyfyngu"
-
-#: ../../any.pm_.c:182
-msgid "Clean /tmp at each boot"
-msgstr "Glanhau /tmp bob tro fyddwch yn cychwyn"
-
-#: ../../any.pm_.c:183
-#, c-format
-msgid "Precise RAM size if needed (found %d MB)"
-msgstr "Union faint o RAM os oes angen (canfod %dMB)"
-
-#: ../../any.pm_.c:185
-msgid "Enable multi profiles"
-msgstr "Galluogi aml-broffil"
-
-#: ../../any.pm_.c:189
-msgid "Give the ram size in MB"
-msgstr "Rhowch maint RAM mewn MB"
-
-#: ../../any.pm_.c:191
-msgid ""
-"Option ``Restrict command line options'' is of no use without a password"
-msgstr ""
-"Dewis Nid yw 'cyfyngu dewisiadau llinell orchymyn' o werth heb gyfrinair"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../diskdrake/interactive.pm_.c:1135
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "Please try again"
-msgstr "Ceisiwch eto"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "The passwords do not match"
-msgstr "Nid yw'r cyfrineiriau'n cydfynd"
-
-#: ../../any.pm_.c:200
-msgid "Init Message"
-msgstr "Neges Init"
-
-#: ../../any.pm_.c:202
-msgid "Open Firmware Delay"
-msgstr "Agor Oedi Cadarnwedd"
-
-#: ../../any.pm_.c:203
-msgid "Kernel Boot Timeout"
-msgstr "Goramser cychwyn y cnewyllyn"
-
-#: ../../any.pm_.c:204
-msgid "Enable CD Boot?"
-msgstr "Galluogi cychwyn o CD?"
-
-#: ../../any.pm_.c:205
-msgid "Enable OF Boot?"
-msgstr "Galluogi Cychwyn OF?"
-
-#: ../../any.pm_.c:206
-msgid "Default OS?"
-msgstr "Systm Weithredu Rhagosodedig?"
-
-#: ../../any.pm_.c:240
-msgid ""
-"You decided to install the bootloader on a partition.\n"
-"This implies you already have a bootloader on the hard drive you boot (eg: "
-"System Commander).\n"
-"\n"
-"On which drive are you booting?"
-msgstr ""
-"Rydych wedi penderfynnu gosod y llwythwr cychwyn ar raniad\n"
-"Mae hyn yn awgrymu bod gennych lwythwr cychwyn ar ddisg caled eisoes: (ee "
-"System Commander).\n"
-"\n"
-"Gyda pha ddisg ydych chi'n cychwyn?"
-
-#: ../../any.pm_.c:255
-msgid ""
-"Here are the different entries.\n"
-"You can add some more or change the existing ones."
-msgstr ""
-"Dyma'r cofnodion gwahanol.\n"
-"Mae modd i chi ychwanegu rhagor neu newid y rhai presennol."
-
-#: ../../any.pm_.c:265 ../../standalone/drakbackup_.c:752
-#: ../../standalone/drakbackup_.c:861 ../../standalone/drakfont_.c:789
-#: ../../standalone/drakfont_.c:826
-msgid "Add"
-msgstr "Ychwanegu"
-
-#: ../../any.pm_.c:265 ../../any.pm_.c:784 ../../diskdrake/hd_gtk.pm_.c:153
-#: ../../diskdrake/removable.pm_.c:27 ../../diskdrake/smbnfs_gtk.pm_.c:86
-#: ../../interactive_http.pm_.c:153
-msgid "Done"
-msgstr "Gorffen"
-
-#: ../../any.pm_.c:265
-msgid "Modify"
-msgstr "Newid"
-
-#: ../../any.pm_.c:273
-msgid "Which type of entry do you want to add?"
-msgstr "Pa fath o gofnod ydych chi eisiau ei ychwanegu?"
-
-#: ../../any.pm_.c:274 ../../standalone/drakbackup_.c:895
-msgid "Linux"
-msgstr "Linux"
-
-#: ../../any.pm_.c:274
-msgid "Other OS (SunOS...)"
-msgstr "Systwmau Gweithredu eraill (SunOS..)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (MacOS...)"
-msgstr "Systemau Gweithredu Eraill (MacOS...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (windows...)"
-msgstr "Systemau gweithredu Eraill (windows...)"
-
-#: ../../any.pm_.c:294
-msgid "Image"
-msgstr "Delwedd"
-
-#: ../../any.pm_.c:295 ../../any.pm_.c:306
-msgid "Root"
-msgstr "Gwraidd"
-
-#: ../../any.pm_.c:296 ../../any.pm_.c:325
-msgid "Append"
-msgstr "Atodi"
-
-#: ../../any.pm_.c:300
-msgid "Initrd"
-msgstr "Initrd"
-
-#: ../../any.pm_.c:301
-msgid "Read-write"
-msgstr "Darllen-ysgrifennu"
-
-#: ../../any.pm_.c:308
-msgid "Table"
-msgstr "Tabl"
-
-#: ../../any.pm_.c:309
-msgid "Unsafe"
-msgstr "Anniogel"
-
-#: ../../any.pm_.c:316 ../../any.pm_.c:321 ../../any.pm_.c:324
-msgid "Label"
-msgstr "Label"
-
-#: ../../any.pm_.c:318 ../../any.pm_.c:329
-msgid "Default"
-msgstr "Rhagosodedig"
-
-#: ../../any.pm_.c:326
-msgid "Initrd-size"
-msgstr "Maint intrd"
-
-#: ../../any.pm_.c:328
-msgid "NoVideo"
-msgstr "NoVideo"
-
-#: ../../any.pm_.c:336
-msgid "Remove entry"
-msgstr "Tynnu cofnod"
-
-#: ../../any.pm_.c:339
-msgid "Empty label not allowed"
-msgstr "Nid yw label gwag yn cael ei ganiatau"
-
-#: ../../any.pm_.c:340
-msgid "You must specify a kernel image"
-msgstr "Rhaid enwi delwedd cnewyllyn"
-
-#: ../../any.pm_.c:340
-msgid "You must specify a root partition"
-msgstr "Rhaid pennu rhaniad cyfnewid"
-
-#: ../../any.pm_.c:341
-msgid "This label is already used"
-msgstr "Mae'r label hwn yn cael ei ddefnyddio eisoes"
-
-#: ../../any.pm_.c:656
-#, c-format
-msgid "Found %s %s interfaces"
-msgstr "Wedi canfod rhyngwynebau %s %s"
-
-#: ../../any.pm_.c:657
-msgid "Do you have another one?"
-msgstr "Oes gennych un arall?"
-
-#: ../../any.pm_.c:658
-#, c-format
-msgid "Do you have any %s interfaces?"
-msgstr "Oes gennych rhyngwynebau %s?"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:832 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "No"
-msgstr "Na"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:831 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "Yes"
-msgstr "Iawn"
-
-#: ../../any.pm_.c:661
-msgid "See hardware info"
-msgstr "Gweler gwyboadeth am galedwedd"
-
-#. -PO: the first %s is the card type (scsi, network, sound,...)
-#. -PO: the second is the vendor+model name
-#: ../../any.pm_.c:695
-#, c-format
-msgid "Installing driver for %s card %s"
-msgstr "Gosod gyrrwr ar gyfer cerdyn %s %s"
-
-#: ../../any.pm_.c:696
-#, c-format
-msgid "(module %s)"
-msgstr "(modiwl %s)"
-
-#. -PO: the %s is the driver type (scsi, network, sound,...)
-#: ../../any.pm_.c:707
-#, c-format
-msgid "Which %s driver should I try?"
-msgstr "Pa yrrwr %s ddylwn drio?"
-
-#: ../../any.pm_.c:715
-#, c-format
-msgid ""
-"In some cases, the %s driver needs to have extra information to work\n"
-"properly, although it normally works fine without. Would you like to "
-"specify\n"
-"extra options for it or allow the driver to probe your machine for the\n"
-"information it needs? Occasionally, probing will hang a computer, but it "
-"should\n"
-"not cause any damage."
-msgstr ""
-"Mewn rhai achosion, mae gyrrwr %s angen gwybodaeth ychwanegol i weithio'n\n"
-"gywir, er fel rheol mae'n gweithio'n iawn hebddo. Hoffech chi enwi'r "
-"dewisiadau\n"
-"ychwanegol ar ei gyfer neu adael i'r gyrrwr archwilio'r peiriant am y "
-"wybodaeth mae\n"
-"ei angen? Weithiau bydd yr archwilio'n atal y peiriant, ond ni ddylai achosi "
-"unrhyw\n"
-"ddifrod"
-
-#: ../../any.pm_.c:720
-msgid "Autoprobe"
-msgstr "Atoholi"
-
-#: ../../any.pm_.c:720
-msgid "Specify options"
-msgstr "Enwi dewisiadau"
-
-#: ../../any.pm_.c:725
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Note that any address should be entered with the prefix 0x like '0x123'"
-msgstr ""
-"Medrwch ddarparu ddewisiadau i fodiwl %s.\n"
-"Sylwer: wrth greu unrhyw gyfeiriad bydd angen defnyddio rhagddodiad 0x fel "
-"'0x123'"
-
-#: ../../any.pm_.c:731
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Options are in format ``name=value name2=value2 ...''.\n"
-"For instance, ``io=0x300 irq=7''"
-msgstr ""
-"Medrwch nawr ei ddewis i fodiwl. %s.\n"
-"Mae'r dewisiadau yn fformat ``name=value name2=value2 ...''.\n"
-"e.e, ``io=0x300 irq=7''"
-
-#: ../../any.pm_.c:734
-msgid "Module options:"
-msgstr "Dewisiadau modiwl:"
-
-#: ../../any.pm_.c:745
-#, c-format
-msgid ""
-"Loading module %s failed.\n"
-"Do you want to try again with other parameters?"
-msgstr ""
-"Methodd llwytho modiwl %s\n"
-"Hoffech chi drio eto gyda pharamedrau eraill?"
-
-#: ../../any.pm_.c:761
-msgid "access to X programs"
-msgstr "mynediad i raglenni X"
-
-#: ../../any.pm_.c:762
-msgid "access to rpm tools"
-msgstr "mynediad i offer rpm"
-
-#: ../../any.pm_.c:763
-msgid "allow \"su\""
-msgstr "caniatįu \"su\""
-
-#: ../../any.pm_.c:764
-msgid "access to administrative files"
-msgstr "mynediad i ffeiliau gweinyddol"
-
-#: ../../any.pm_.c:769
-#, c-format
-msgid "(already added %s)"
-msgstr "(wedi ychwanegu %s yn barod)"
-
-#: ../../any.pm_.c:774
-msgid "This password is too simple"
-msgstr "Mae'r cyfrinair yn rhy syml"
-
-#: ../../any.pm_.c:775
-msgid "Please give a user name"
-msgstr "Rhowch enw defnyddiwr"
-
-#: ../../any.pm_.c:776
-msgid ""
-"The user name must contain only lower cased letters, numbers, `-' and `_'"
-msgstr ""
-"Rhaid i'r enw defnyddiwr gynnwys dim ond llythrennau bach, rhifau, '-' a '_'"
-
-#: ../../any.pm_.c:777
-msgid "This user name is already added"
-msgstr "Mae'r enw defnyddiwr wedi ei ychwanegu yn barod"
-
-#: ../../any.pm_.c:781
-msgid "Add user"
-msgstr "Ychwanegu defnyddiwr"
-
-#: ../../any.pm_.c:782
-#, c-format
-msgid ""
-"Enter a user\n"
-"%s"
-msgstr ""
-"Rhowch enw defnyddiwr\n"
-"%s"
-
-#: ../../any.pm_.c:783
-msgid "Accept user"
-msgstr "Derbyn defnyddiwr"
-
-#: ../../any.pm_.c:794
-msgid "Real name"
-msgstr "Enw cywir"
-
-#: ../../any.pm_.c:795 ../../printerdrake.pm_.c:707
-#: ../../printerdrake.pm_.c:805
-msgid "User name"
-msgstr "Enw defnyddiwr"
-
-#: ../../any.pm_.c:798
-msgid "Shell"
-msgstr "Cragen"
-
-#: ../../any.pm_.c:800
-msgid "Icon"
-msgstr "Eicon"
-
-#: ../../any.pm_.c:828
-msgid "Autologin"
-msgstr "Awtomewngofnodi"
-
-#: ../../any.pm_.c:829
-msgid ""
-"I can set up your computer to automatically log on one user.\n"
-"Do you want to use this feature?"
-msgstr ""
-"Medraf osod eich cyfrifiadur i fewngofnodi'nawtomatig ar gyfer un "
-"defnyddiwr\n"
-"Hoffech chi wneud hyn?"
-
-#: ../../any.pm_.c:833
-msgid "Choose the default user:"
-msgstr "Dewis y defnyddiwr rhagosodedig:"
-
-#: ../../any.pm_.c:834
-msgid "Choose the window manager to run:"
-msgstr "Dewiswch y rheolwr ffenestr i rhedeg:"
-
-#: ../../any.pm_.c:849
-msgid "Please choose a language to use."
-msgstr "Dewiswch iaith i'w defnyddio."
-
-#: ../../any.pm_.c:851
-msgid "You can choose other languages that will be available after install"
-msgstr "Gallwch ddewis ieithoedd eraill fydd ar gael ar ōl gosod"
-
-#: ../../any.pm_.c:863 ../../install_steps_interactive.pm_.c:719
-#: ../../standalone/drakxtv_.c:54
-msgid "All"
-msgstr "Popeth"
-
-#: ../../any.pm_.c:955
-msgid "Allow all users"
-msgstr "Caniatįu pob defnyddiwr"
-
-#: ../../any.pm_.c:955 ../../install_steps_interactive.pm_.c:521
-msgid "Custom"
-msgstr "Arddull"
-
-#: ../../any.pm_.c:955
-msgid "No sharing"
-msgstr "Dim rhannu"
-
-#: ../../any.pm_.c:965 ../../network/smbnfs.pm_.c:45
-#, c-format
-msgid "The package %s needs to be installed. Do you want to install it?"
-msgstr "Rhaid i becyn %s gael ei osod. Ydych chi am ei osod?"
-
-#: ../../any.pm_.c:968
-msgid "You can export using NFS or Samba. Which one do you want"
-msgstr "Medrwch allforio gan ddefnyddio NFS neu Samba. Pa un hoffech chi"
-
-#: ../../any.pm_.c:976 ../../network/smbnfs.pm_.c:49
-#, c-format
-msgid "Mandatory package %s is missing"
-msgstr "Mae pecyn gorfodol %s ar goll"
-
-#: ../../any.pm_.c:982
-msgid ""
-"Do you want to allow users to export some directories in their home?\n"
-"Allowing this will permit users to simply click on \"Share\" in konqueror "
-"and nautilus.\n"
-"\n"
-"\"Custom\" permit a per-user granularity.\n"
-msgstr ""
-
-#: ../../any.pm_.c:996 ../../bootlook.pm_.c:161
-#: ../../diskdrake/smbnfs_gtk.pm_.c:85 ../../install_steps_gtk.pm_.c:464
-#: ../../install_steps_gtk.pm_.c:522 ../../install_steps_interactive.pm_.c:594
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_stdio.pm_.c:141
-#: ../../my_gtk.pm_.c:687 ../../my_gtk.pm_.c:690 ../../my_gtk.pm_.c:1019
-#: ../../network/netconnect.pm_.c:47 ../../printerdrake.pm_.c:1586
-#: ../../standalone/drakautoinst_.c:204 ../../standalone/drakbackup_.c:2264
-#: ../../standalone/drakbackup_.c:2289 ../../standalone/drakbackup_.c:2310
-#: ../../standalone/drakbackup_.c:2331 ../../standalone/drakbackup_.c:2349
-#: ../../standalone/drakbackup_.c:2397 ../../standalone/drakbackup_.c:2417
-#: ../../standalone/drakbackup_.c:2436 ../../standalone/drakfont_.c:767
-#: ../../standalone/drakgw_.c:721 ../../standalone/draknet_.c:116
-#: ../../standalone/draknet_.c:148 ../../standalone/draknet_.c:290
-#: ../../standalone/draknet_.c:538 ../../standalone/draknet_.c:680
-#: ../../standalone/logdrake_.c:225 ../../standalone/logdrake_.c:512
-#: ../../standalone/tinyfirewall_.c:65
-msgid "Cancel"
-msgstr "Dileu"
-
-#: ../../any.pm_.c:996
-msgid "Launch userdrake"
-msgstr "Cychwyn userdrake"
-
-#: ../../any.pm_.c:998
-msgid ""
-"The per-user sharing uses the group \"fileshare\". \n"
-"You can use userdrake to add a user in this group."
-msgstr ""
-"Mae rhannu yn ōl defnyddiwr yn defnyddio \"rhannu ffeiliau\" grwp.\n"
-"Mae modd defnyddio userdrake i ychwanegu defnyddiwr i'r grwp."
-
-#: ../../any.pm_.c:1035
-msgid "Welcome To Crackers"
-msgstr "Croeso i Crackers"
-
-#: ../../any.pm_.c:1036
-msgid "Poor"
-msgstr "Gwael"
-
-#: ../../any.pm_.c:1037 ../../mouse.pm_.c:31
-msgid "Standard"
-msgstr "Safonol"
-
-#: ../../any.pm_.c:1038
-msgid "High"
-msgstr "Uchel"
-
-#: ../../any.pm_.c:1039
-msgid "Higher"
-msgstr "Uwch"
-
-#: ../../any.pm_.c:1040
-msgid "Paranoid"
-msgstr "Paranoia"
-
-#: ../../any.pm_.c:1043
-msgid ""
-"This level is to be used with care. It makes your system more easy to use,\n"
-"but very sensitive: it must not be used for a machine connected to others\n"
-"or to the Internet. There is no password access."
-msgstr ""
-"Rhaid defnyddio'r lefel hwn a gofal. Mae'n gwneud eich system yn haws ei\n"
-"ddefnyddio ond mae'n sensitif iawn: rhaid peidio ei ddefnyddio fel peiriant "
-"i'w\n"
-"gysylltu ag eraill nag i'r Rhyngrwyd. Does dim cysylltiad drwy gyfrinair."
-
-#: ../../any.pm_.c:1046
-msgid ""
-"Password are now enabled, but use as a networked computer is still not "
-"recommended."
-msgstr ""
-"Mae'r cyfrinair wedi ei alluogi, ond ni argymellir ei ddefnyddio fel "
-"cyfrifiadur rhwydwaith."
-
-#: ../../any.pm_.c:1047
-msgid ""
-"This is the standard security recommended for a computer that will be used "
-"to connect to the Internet as a client."
-msgstr ""
-"Dyma'r safon sy'n cael ei argymell ar gyfer diogelwch cyfrifiadur fydd yn "
-"cael ei gysylltu ā'r Rhyngrwyd fel cleient."
-
-#: ../../any.pm_.c:1048
-msgid ""
-"There are already some restrictions, and more automatic checks are run every "
-"night."
-msgstr ""
-"Mae rhai cyfyngiadau, ac mae rhagor o wiriadau awtomatig yn cael eu rhedeg "
-"bob nos"
-
-#: ../../any.pm_.c:1049
-msgid ""
-"With this security level, the use of this system as a server becomes "
-"possible.\n"
-"The security is now high enough to use the system as a server which accept\n"
-"connections from many clients. Note: if your machine is only a client on the "
-"Internet, you should better choose a lower level."
-msgstr ""
-"Gyda'r lefel diogelwch hwn, mae defnydd y system fel gwasanaethwr yn "
-"bosibl.\n"
-"Mae diogelwch yn ddigon uchel i ddefnyddio'r system fel gwasanaethwr sy'n "
-"derbyn\n"
-"cysylltiad gan amryw o gleientiaid. Sylwer: os mae cleient yn unig yw eich "
-"peiriant ar y Rhyngrwyd, yna mae'n well i chi ddewis lefel is."
-
-#: ../../any.pm_.c:1052
-msgid ""
-"Based on the previous level, but the system is entirely closed.\n"
-"Security features are at their maximum."
-msgstr ""
-"Wedi ei seilio ar y lefel flaenorol, ond mae'r system yn hollol gaeėdig.\n"
-"Mae nodweddion diogelwch ar eu uchaf."
-
-#: ../../any.pm_.c:1058
-msgid "Choose security level"
-msgstr "Dewiswch lefel diogelwch"
-
-#: ../../any.pm_.c:1061
-msgid "Security level"
-msgstr "Lefel diogelwch"
-
-#: ../../any.pm_.c:1063
-msgid "Use libsafe for servers"
-msgstr "Defnyddiwch libsafe ar gyfer gwasanaethwyr"
-
-#: ../../any.pm_.c:1064
-msgid ""
-"A library which defends against buffer overflow and format string attacks."
-msgstr ""
-"Llyfrgell sy'n diogelu rhag gorlif byffer ac ymosodiadau llinellau fformatio."
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#: ../../bootloader.pm_.c:355
-#, c-format
-msgid ""
-"Welcome to %s the operating system chooser!\n"
-"\n"
-"Choose an operating system in the list above or\n"
-"wait %d seconds for default boot.\n"
-"\n"
-msgstr ""
-"Croeso i %s y dewiswrsytemau gweithredu! \n"
-"\n"
-"Dewiswch system weithredu o'r rhestr uchod neu\n"
-"arhoswch %d eiliad am gychwyn rhagosodedig\n"
-"\n"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:928
-msgid "Welcome to GRUB the operating system chooser!"
-msgstr "Croeso i GRUB, y dewiswr systemau gweithredu!"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:931
-#, c-format
-msgid "Use the %c and %c keys for selecting which entry is highlighted."
-msgstr "Defnyddiwch allweddi %c a %c i ddewis pa gofnod i'w amlygu."
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:934
-msgid "Press enter to boot the selected OS, 'e' to edit the"
-msgstr "Gwasgwch Enter i gychwyn y system weithredu, 'g' i olygu'r"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:937
-msgid "commands before booting, or 'c' for a command-line."
-msgstr "gorchmynion cyn cychwyn, neu 'o' am y llinell orchymyn."
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:940
-#, c-format
-msgid "The highlighted entry will be booted automatically in %d seconds."
-msgstr "Bydd y cofnod wedi ei amlygu'n cychwyn yn awtomatig ymhen %d eiliad."
-
-#: ../../bootloader.pm_.c:944
-msgid "not enough room in /boot"
-msgstr "dim digon o le yn /boot"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#. -PO: so you may need to put them in English or in a different language if MS-windows doesn't exist in your language
-#: ../../bootloader.pm_.c:1044
-msgid "Desktop"
-msgstr "Penbwrdd"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#: ../../bootloader.pm_.c:1046
-msgid "Start Menu"
-msgstr "Dewislen Cychwyn"
-
-#: ../../bootloader.pm_.c:1065
-#, c-format
-msgid "You can't install the bootloader on a %s partition\n"
-msgstr "Nid oes modd gosod y llwythwr cychwyn ar adran %s\n"
-
-#: ../../bootlook.pm_.c:46
-msgid "no help implemented yet.\n"
-msgstr "nid yw cymorth wedi ei weithredu eto.\n"
-
-#: ../../bootlook.pm_.c:62
-msgid "Boot Style Configuration"
-msgstr "Ffurfweddu'r Math o Gychwyn"
-
-#: ../../bootlook.pm_.c:79 ../../standalone/logdrake_.c:101
-msgid "/_File"
-msgstr "/_Ffeil"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "/File/_Quit"
-msgstr "/Ffeil/_Gadael"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "<control>Q"
-msgstr "<control>Q"
-
-#: ../../bootlook.pm_.c:91
-msgid "NewStyle Categorizing Monitor"
-msgstr "Monitor Categoreiddio Math Newydd"
-
-#: ../../bootlook.pm_.c:92
-msgid "NewStyle Monitor"
-msgstr "Monitor Math Newydd"
-
-#: ../../bootlook.pm_.c:93
-msgid "Traditional Monitor"
-msgstr "Monitor traddodiadol"
-
-#: ../../bootlook.pm_.c:94
-msgid "Traditional Gtk+ Monitor"
-msgstr "Monitor Gtk+ Traddodiadol"
-
-#: ../../bootlook.pm_.c:95
-msgid "Launch Aurora at boot time"
-msgstr "Cychwyn Auora wrth gychwyn y cyfrifiadur"
-
-#: ../../bootlook.pm_.c:98
-msgid "Lilo/grub mode"
-msgstr "Modd Lilo/grub"
-
-#: ../../bootlook.pm_.c:98
-msgid "Yaboot mode"
-msgstr "Modd Yaboot"
-
-#: ../../bootlook.pm_.c:104
-#, c-format
-msgid ""
-"You are currently using %s as Boot Manager.\n"
-"Click on Configure to launch the setup wizard."
-msgstr ""
-"Ryych yn defnyddio %s fel Rheolwr Cychwyn.\n"
-"Cliciwch Ffurfweddu i gychwyn dewin gosod"
-
-#: ../../bootlook.pm_.c:106 ../../standalone/drakbackup_.c:1467
-#: ../../standalone/drakbackup_.c:1478 ../../standalone/drakgw_.c:715
-#: ../../standalone/tinyfirewall_.c:59
-msgid "Configure"
-msgstr "Ffurfweddu"
-
-#: ../../bootlook.pm_.c:141
-msgid "System mode"
-msgstr "Modd System"
-
-#: ../../bootlook.pm_.c:143
-msgid "Launch the X-Window system at start"
-msgstr "Cychwyn y system X-Window o'r cychwyn"
-
-#: ../../bootlook.pm_.c:148
-msgid "No, I don't want autologin"
-msgstr "Na, tydw i ddim eisiau awto-mewngofnodi"
-
-#: ../../bootlook.pm_.c:150
-msgid "Yes, I want autologin with this (user, desktop)"
-msgstr "Iawn, rwyf eisiau awto-mewngofnodi gyda (defnyddiwr, penbwrdd)"
-
-#: ../../bootlook.pm_.c:160 ../../network/netconnect.pm_.c:102
-#: ../../standalone/drakbackup_.c:2441 ../../standalone/drakbackup_.c:3345
-#: ../../standalone/drakfont_.c:532 ../../standalone/drakfont_.c:655
-#: ../../standalone/drakfont_.c:719 ../../standalone/drakfont_.c:765
-#: ../../standalone/draknet_.c:109 ../../standalone/draknet_.c:141
-#: ../../standalone/draknet_.c:297 ../../standalone/draknet_.c:436
-#: ../../standalone/draknet_.c:522 ../../standalone/draknet_.c:565
-#: ../../standalone/draknet_.c:666 ../../standalone/logdrake_.c:505
-msgid "OK"
-msgstr "Iawn"
-
-#: ../../bootlook.pm_.c:229
-#, c-format
-msgid "can not open /etc/inittab for reading: %s"
-msgstr "maethu agor/etc/inittab ar gyfer darllen: %s"
-
-#: ../../common.pm_.c:94
-msgid "GB"
-msgstr "GB"
-
-#: ../../common.pm_.c:94
-msgid "KB"
-msgstr "KB"
-
-#: ../../common.pm_.c:94
-msgid "MB"
-msgstr "MB"
-
-#: ../../common.pm_.c:102
-msgid "TB"
-msgstr "TB"
-
-#: ../../common.pm_.c:110
-#, c-format
-msgid "%d minutes"
-msgstr "%d munud"
-
-#: ../../common.pm_.c:112
-msgid "1 minute"
-msgstr "1 munud"
-
-#: ../../common.pm_.c:114
-#, c-format
-msgid "%d seconds"
-msgstr "%d eiliad"
-
-#: ../../common.pm_.c:159
-msgid "Can't make screenshots before partitioning"
-msgstr "Nid wyf yn medru creu lluniau o'r sgrin cyn rhannu"
-
-#: ../../common.pm_.c:166
-#, c-format
-msgid "Screenshots will be available after install in %s"
-msgstr "Bydd lluniau o'r sgrin ar gale ar ōl gosod yn %s"
-
-#: ../../crypto.pm_.c:12 ../../crypto.pm_.c:26 ../../standalone/drakxtv_.c:50
-msgid "France"
-msgstr "Ffrainc"
-
-#: ../../crypto.pm_.c:13
-msgid "Costa Rica"
-msgstr "Costa Rica"
-
-#: ../../crypto.pm_.c:14 ../../crypto.pm_.c:27
-msgid "Belgium"
-msgstr "Gwlad Belg"
-
-#: ../../crypto.pm_.c:15 ../../crypto.pm_.c:28
-msgid "Czech Republic"
-msgstr "Gweriniaeth Tsiec"
-
-#: ../../crypto.pm_.c:16 ../../crypto.pm_.c:29
-msgid "Germany"
-msgstr "Yr Almaen"
-
-#: ../../crypto.pm_.c:17 ../../crypto.pm_.c:30
-msgid "Greece"
-msgstr "Groeg"
-
-#: ../../crypto.pm_.c:18 ../../crypto.pm_.c:31
-msgid "Norway"
-msgstr "Norwy"
-
-#: ../../crypto.pm_.c:19 ../../crypto.pm_.c:32
-msgid "Sweden"
-msgstr "Sweden"
-
-#: ../../crypto.pm_.c:20 ../../crypto.pm_.c:34
-msgid "Netherlands"
-msgstr "Yr Iseldiroedd"
-
-#: ../../crypto.pm_.c:21 ../../crypto.pm_.c:35 ../../standalone/drakxtv_.c:50
-msgid "Italy"
-msgstr "Yr Eidal"
-
-#: ../../crypto.pm_.c:22 ../../crypto.pm_.c:36
-msgid "Austria"
-msgstr "Awstria"
-
-#: ../../crypto.pm_.c:33 ../../crypto.pm_.c:67
-msgid "United States"
-msgstr "Yr Unol Daleithiau"
-
-#: ../../diskdrake/hd_gtk.pm_.c:94
-msgid "Please make a backup of your data first"
-msgstr "Gwnewch gopi wrth gefn o'ch data yn gyntaf"
-
-#: ../../diskdrake/hd_gtk.pm_.c:94 ../../diskdrake/interactive.pm_.c:891
-#: ../../diskdrake/interactive.pm_.c:900 ../../diskdrake/interactive.pm_.c:954
-msgid "Read carefully!"
-msgstr "Darllenwch yn ofalus!"
-
-#: ../../diskdrake/hd_gtk.pm_.c:97
-msgid ""
-"If you plan to use aboot, be carefull to leave a free space (2048 sectors is "
-"enough)\n"
-"at the beginning of the disk"
-msgstr ""
-"Os ydych yn bwriadu defnyddio aboot, gofalwch adael lle gwag (2048 sector yn "
-"ddigon)\n"
-"ar ddechrau'r ddisg."
-
-#: ../../diskdrake/hd_gtk.pm_.c:116 ../../diskdrake/interactive.pm_.c:325
-#: ../../diskdrake/interactive.pm_.c:340 ../../diskdrake/smbnfs_gtk.pm_.c:45
-#: ../../install_steps.pm_.c:75 ../../install_steps_interactive.pm_.c:67
-#: ../../install_steps_interactive.pm_.c:356 ../../interactive_http.pm_.c:119
-#: ../../interactive_http.pm_.c:120 ../../standalone/diskdrake_.c:84
-msgid "Error"
-msgstr "Gwall"
-
-#: ../../diskdrake/hd_gtk.pm_.c:151
-msgid "Wizard"
-msgstr "Dewin"
-
-#: ../../diskdrake/hd_gtk.pm_.c:181 ../../diskdrake/removable_gtk.pm_.c:24
-msgid "Choose action"
-msgstr "Dewiswch weithred"
-
-#: ../../diskdrake/hd_gtk.pm_.c:185
-msgid ""
-"You have one big FAT partition\n"
-"(generally used by MicroSoft Dos/Windows).\n"
-"I suggest you first resize that partition\n"
-"(click on it, then click on \"Resize\")"
-msgstr ""
-"Mae gennych un rhaniad FAT mawr\n"
-"(yn cael ei ddefnyddio gan Microsoft Dos/Windows\n"
-"Awgrymaf eich bod yn newid maint y rhaniad\n"
-"(cliciwch arno, ac yna clicio \"Newid maint\"]"
-
-#: ../../diskdrake/hd_gtk.pm_.c:188
-msgid "Please click on a partition"
-msgstr "Cliciwch ar raniad"
-
-#: ../../diskdrake/hd_gtk.pm_.c:202 ../../diskdrake/smbnfs_gtk.pm_.c:67
-#: ../../install_steps_gtk.pm_.c:523
-msgid "Details"
-msgstr "Manylion"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Ext2"
-msgstr "Ext2"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "FAT"
-msgstr "FAT"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "HFS"
-msgstr "HFS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Journalised FS"
-msgstr "jwrnaleiddiwyd FS?"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "SunOS"
-msgstr "SunOS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Swap"
-msgstr "Swap"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../diskdrake/interactive.pm_.c:1050
-msgid "Empty"
-msgstr "Gwag"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../install_steps_gtk.pm_.c:379
-#: ../../install_steps_gtk.pm_.c:439 ../../mouse.pm_.c:162
-#: ../../services.pm_.c:157 ../../standalone/drakbackup_.c:944
-msgid "Other"
-msgstr "Arall"
-
-#: ../../diskdrake/hd_gtk.pm_.c:325
-msgid "Filesystem types:"
-msgstr "Mathau ffeil-system:"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:386
-msgid "Create"
-msgstr "Creu"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:365
-#: ../../diskdrake/interactive.pm_.c:499 ../../diskdrake/removable.pm_.c:26
-#: ../../diskdrake/removable.pm_.c:49 ../../diskdrake/removable_gtk.pm_.c:17
-msgid "Type"
-msgstr "Math"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/hd_gtk.pm_.c:344
-#, c-format
-msgid "Use ``%s'' instead"
-msgstr "Defnyddiwch \"%s\" yn lle hynny"
-
-#: ../../diskdrake/hd_gtk.pm_.c:344 ../../diskdrake/interactive.pm_.c:374
-msgid "Delete"
-msgstr "Dileu"
-
-#: ../../diskdrake/hd_gtk.pm_.c:348
-msgid "Use ``Unmount'' first"
-msgstr "Defnyddiwch \"Dad-osod\" yn gyntaf"
-
-#: ../../diskdrake/hd_gtk.pm_.c:349 ../../diskdrake/interactive.pm_.c:491
-#, c-format
-msgid ""
-"After changing type of partition %s, all data on this partition will be lost"
-msgstr ""
-"Wedi newid y math o raniad %s bydd yr holl ddata ar y rhaniad yn cael ei "
-"golli"
-
-#: ../../diskdrake/interactive.pm_.c:171
-msgid "Choose a partition"
-msgstr "Dewiswch raniad"
-
-#: ../../diskdrake/interactive.pm_.c:171
-msgid "Choose another partition"
-msgstr "Dewiswch rhaniad arall"
-
-#: ../../diskdrake/interactive.pm_.c:196
-msgid "Exit"
-msgstr "Gadael"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to expert mode"
-msgstr "Cyffredinol > Arbennigwr"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to normal mode"
-msgstr "Arbennigwr > Cyffredinol"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Undo"
-msgstr "Dadwneud"
-
-#: ../../diskdrake/interactive.pm_.c:237
-msgid "Continue anyway?"
-msgstr "Parhau beth bynnag?"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without saving"
-msgstr "Gorffen heb arbed"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without writing the partition table?"
-msgstr "Gorffen heb ysgrifennu y tabl rhaniadau?"
-
-#: ../../diskdrake/interactive.pm_.c:247
-msgid "Do you want to save /etc/fstab modifications"
-msgstr "Ydych eisiau cadw newidiadau /etc/fstab"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Auto allocate"
-msgstr "Awto ddynodi"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Clear all"
-msgstr "Clirio i gyd"
-
-#: ../../diskdrake/interactive.pm_.c:262
-msgid "Hard drive information"
-msgstr "Gwybodaeth am y ddisg caled"
-
-#: ../../diskdrake/interactive.pm_.c:283
-msgid "All primary partitions are used"
-msgstr "Mae pob rhaniad cynradd wedi ei ddefnyddio"
-
-#: ../../diskdrake/interactive.pm_.c:284
-msgid "I can't add any more partition"
-msgstr "Alla'i ddim ychwanegu unrhyw raniadau ychwanegol"
-
-#: ../../diskdrake/interactive.pm_.c:285
-msgid ""
-"To have more partitions, please delete one to be able to create an extended "
-"partition"
-msgstr "I gael mwy o raniadau, dilėwch un er mwyn gallu creu rhaniad estynedig"
-
-#: ../../diskdrake/interactive.pm_.c:295
-msgid "Save partition table"
-msgstr "Cadw'r tabl rhaniad"
-
-#: ../../diskdrake/interactive.pm_.c:296
-msgid "Restore partition table"
-msgstr "Adfer y tabl rhaniad"
-
-#: ../../diskdrake/interactive.pm_.c:297
-msgid "Rescue partition table"
-msgstr "Achub y tabl rhaniadau"
-
-#: ../../diskdrake/interactive.pm_.c:299
-msgid "Reload partition table"
-msgstr "Ail-lwytho'r tabl rhaniad"
-
-#: ../../diskdrake/interactive.pm_.c:304
-msgid "Removable media automounting"
-msgstr "Cyfrwng symudadwy'n awto-osod"
-
-#: ../../diskdrake/interactive.pm_.c:313 ../../diskdrake/interactive.pm_.c:333
-msgid "Select file"
-msgstr "Dewiswch ffeil"
-
-#: ../../diskdrake/interactive.pm_.c:320
-msgid ""
-"The backup partition table has not the same size\n"
-"Still continue?"
-msgstr ""
-"Nid oes gan y tabl rhaniad wrth gefn yr un maint\n"
-"Parhau?"
-
-#: ../../diskdrake/interactive.pm_.c:334
-msgid "Warning"
-msgstr "Rhybudd"
-
-#: ../../diskdrake/interactive.pm_.c:335
-msgid ""
-"Insert a floppy in drive\n"
-"All data on this floppy will be lost"
-msgstr ""
-"Rhowch flopi yn y disg-yrrwr\n"
-"Mi fydd yr holl wybodaeth ar y fflopi yma yn gael ei ddileu"
-
-#: ../../diskdrake/interactive.pm_.c:346
-msgid "Trying to rescue partition table"
-msgstr "Yn trio achub y tabl rhaniadau"
-
-#: ../../diskdrake/interactive.pm_.c:352
-msgid "Detailed information"
-msgstr "Gwybodaeth fanwl"
-
-#: ../../diskdrake/interactive.pm_.c:364 ../../diskdrake/interactive.pm_.c:534
-#: ../../diskdrake/interactive.pm_.c:554 ../../diskdrake/removable.pm_.c:24
-#: ../../diskdrake/removable_gtk.pm_.c:15 ../../diskdrake/smbnfs_gtk.pm_.c:83
-msgid "Mount point"
-msgstr "Pwynt gosod"
-
-#: ../../diskdrake/interactive.pm_.c:366 ../../diskdrake/removable.pm_.c:25
-#: ../../diskdrake/removable_gtk.pm_.c:16 ../../diskdrake/smbnfs_gtk.pm_.c:84
-msgid "Options"
-msgstr "Dewisiadau"
-
-#: ../../diskdrake/interactive.pm_.c:367 ../../diskdrake/interactive.pm_.c:621
-msgid "Resize"
-msgstr "Newid maint"
-
-#: ../../diskdrake/interactive.pm_.c:368 ../../diskdrake/interactive.pm_.c:674
-msgid "Move"
-msgstr "Symud"
-
-#: ../../diskdrake/interactive.pm_.c:369
-msgid "Format"
-msgstr "Fformatio"
-
-#: ../../diskdrake/interactive.pm_.c:370 ../../diskdrake/smbnfs_gtk.pm_.c:80
-msgid "Mount"
-msgstr "Gosod"
-
-#: ../../diskdrake/interactive.pm_.c:371
-msgid "Add to RAID"
-msgstr "Ychwanegu i RAID"
-
-#: ../../diskdrake/interactive.pm_.c:372
-msgid "Add to LVM"
-msgstr "Ychwanegu i LVM"
-
-#: ../../diskdrake/interactive.pm_.c:373 ../../diskdrake/smbnfs_gtk.pm_.c:79
-msgid "Unmount"
-msgstr "Dad-osod"
-
-#: ../../diskdrake/interactive.pm_.c:375
-msgid "Remove from RAID"
-msgstr "Tynnu o RAID"
-
-#: ../../diskdrake/interactive.pm_.c:376
-msgid "Remove from LVM"
-msgstr "Tynnu o LVM"
-
-#: ../../diskdrake/interactive.pm_.c:377
-msgid "Modify RAID"
-msgstr "Newid RAID"
-
-#: ../../diskdrake/interactive.pm_.c:378
-msgid "Use for loopback"
-msgstr "Defnyddiwch ar gyfer cylchol"
-
-#: ../../diskdrake/interactive.pm_.c:417
-msgid "Create a new partition"
-msgstr "Creu rhaniad newydd"
-
-#: ../../diskdrake/interactive.pm_.c:420
-msgid "Start sector: "
-msgstr "Sector dechreuol: "
-
-#: ../../diskdrake/interactive.pm_.c:422 ../../diskdrake/interactive.pm_.c:773
-msgid "Size in MB: "
-msgstr "Maint mewn MB: "
-
-#: ../../diskdrake/interactive.pm_.c:423 ../../diskdrake/interactive.pm_.c:774
-msgid "Filesystem type: "
-msgstr "Math o ffeilsystem: "
-
-#: ../../diskdrake/interactive.pm_.c:424
-#: ../../diskdrake/interactive.pm_.c:1034
-#: ../../diskdrake/interactive.pm_.c:1108
-msgid "Mount point: "
-msgstr "Pwynt gosod:"
-
-#: ../../diskdrake/interactive.pm_.c:428
-msgid "Preference: "
-msgstr "Dewis"
-
-#: ../../diskdrake/interactive.pm_.c:472
-msgid "Remove the loopback file?"
-msgstr "Tynnu'r ffeil cylch-ol?"
-
-#: ../../diskdrake/interactive.pm_.c:497
-msgid "Change partition type"
-msgstr "Newid math y rhaniad"
-
-#: ../../diskdrake/interactive.pm_.c:498 ../../diskdrake/removable.pm_.c:48
-msgid "Which filesystem do you want?"
-msgstr "Pa fath o system ffeil ydych chi eisiau?"
-
-#: ../../diskdrake/interactive.pm_.c:502
-msgid "Switching from ext2 to ext3"
-msgstr "Newid o ext2 i ext3"
-
-#: ../../diskdrake/interactive.pm_.c:532
-#, c-format
-msgid "Where do you want to mount loopback file %s?"
-msgstr "Lle'r hoffech chi odod y ffeil cylch-ol %s?"
-
-#: ../../diskdrake/interactive.pm_.c:533 ../../diskdrake/interactive.pm_.c:553
-#, c-format
-msgid "Where do you want to mount device %s?"
-msgstr "Lle ydych am osod dyfais %s?"
-
-#: ../../diskdrake/interactive.pm_.c:539
-msgid ""
-"Can't unset mount point as this partition is used for loop back.\n"
-"Remove the loopback first"
-msgstr ""
-"Methu dad setio'r pwynt gosod gan fod y rhaniad yn cael ei ddefnyddio ar "
-"gyfer cylch-ol\n"
-"Tynnu'r cylch-ol yn gyntaf"
-
-#: ../../diskdrake/interactive.pm_.c:577
-msgid "Computing FAT filesystem bounds"
-msgstr "Cyfrifo ffiniau system ffeiliau FAT"
-
-#: ../../diskdrake/interactive.pm_.c:577 ../../diskdrake/interactive.pm_.c:636
-#: ../../install_interactive.pm_.c:130
-msgid "Resizing"
-msgstr "Newid maint"
-
-#: ../../diskdrake/interactive.pm_.c:609
-msgid "This partition is not resizeable"
-msgstr "Nid oes modd newid maint y rhaniad"
-
-#: ../../diskdrake/interactive.pm_.c:614
-msgid "All data on this partition should be backed-up"
-msgstr "Dylai'r holl ddata ar y rhaniad gael ei ategu"
-
-#: ../../diskdrake/interactive.pm_.c:616
-#, c-format
-msgid "After resizing partition %s, all data on this partition will be lost"
-msgstr ""
-"Ar ōl newid maint rhaniad %s, bydd yr holl ddata ar y rhaniad yma yn cael ei "
-"golli"
-
-#: ../../diskdrake/interactive.pm_.c:621
-msgid "Choose the new size"
-msgstr "Dewiswch y maint newydd"
-
-#: ../../diskdrake/interactive.pm_.c:622
-msgid "New size in MB: "
-msgstr "Maint mewn MB: "
-
-#: ../../diskdrake/interactive.pm_.c:675
-msgid "Which disk do you want to move it to?"
-msgstr "Pa ddisg hoffech chi symud iddo?"
-
-#: ../../diskdrake/interactive.pm_.c:676
-msgid "Sector"
-msgstr "Sector"
-
-#: ../../diskdrake/interactive.pm_.c:677
-msgid "Which sector do you want to move it to?"
-msgstr "Pa sector hoffech chi symud iddo?"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving"
-msgstr "Symud"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving partition..."
-msgstr "Yn symud rhaniad.."
-
-#: ../../diskdrake/interactive.pm_.c:697
-msgid "Choose an existing RAID to add to"
-msgstr "Dewis RAID presennol i ychwanegu iddo"
-
-#: ../../diskdrake/interactive.pm_.c:698 ../../diskdrake/interactive.pm_.c:716
-msgid "new"
-msgstr "newydd"
-
-#: ../../diskdrake/interactive.pm_.c:714
-msgid "Choose an existing LVM to add to"
-msgstr "Dewis LVM presennol i ychwanegu iddo"
-
-#: ../../diskdrake/interactive.pm_.c:719
-msgid "LVM name?"
-msgstr "Enw LVM"
-
-#: ../../diskdrake/interactive.pm_.c:759
-msgid "This partition can't be used for loopback"
-msgstr "Niid oes modd defnyddio'r rhaniad ar gyfer cylch-ol"
-
-#: ../../diskdrake/interactive.pm_.c:771
-msgid "Loopback"
-msgstr "Cylch-ol"
-
-#: ../../diskdrake/interactive.pm_.c:772
-msgid "Loopback file name: "
-msgstr "Enw ffeil cylch-ol"
-
-#: ../../diskdrake/interactive.pm_.c:777
-msgid "Give a file name"
-msgstr "Rhowch enw ffeil"
-
-#: ../../diskdrake/interactive.pm_.c:780
-msgid "File already used by another loopback, choose another one"
-msgstr ""
-"Mae'r ffeil yn cael ei ddweis eisoes gam gylch-ol arall, dewiswch un arall"
-
-#: ../../diskdrake/interactive.pm_.c:781
-msgid "File already exists. Use it?"
-msgstr "Mae'r ffeil yn bodoli eisoes. Defnyddiwch hwn?"
-
-#: ../../diskdrake/interactive.pm_.c:804
-msgid "Mount options"
-msgstr "Dewisiadau gosod"
-
-#: ../../diskdrake/interactive.pm_.c:811
-msgid "Various"
-msgstr "Amrywiol"
-
-#: ../../diskdrake/interactive.pm_.c:874
-msgid "device"
-msgstr "dyfais"
-
-#: ../../diskdrake/interactive.pm_.c:875
-msgid "level"
-msgstr "lefel"
-
-#: ../../diskdrake/interactive.pm_.c:876
-msgid "chunk size"
-msgstr "maint darn"
-
-#: ../../diskdrake/interactive.pm_.c:891
-msgid "Be careful: this operation is dangerous."
-msgstr "Byddwch ofalus: mae'r weithred hon yn beryglus"
-
-#: ../../diskdrake/interactive.pm_.c:906
-msgid "What type of partitioning?"
-msgstr "Pa fath o rhaniad %s"
-
-#: ../../diskdrake/interactive.pm_.c:924
-msgid ""
-"Sorry I won't accept to create /boot so far onto the drive (on a cylinder > "
-"1024).\n"
-"Either you use LILO and it won't work, or you don't use LILO and you don't "
-"need /boot"
-msgstr ""
-"Mae'n flin gen i ond ni alla'i dderbyn creu /boot mor bell o ddechrau'r disg "
-"(ar silindr > 1024).\n"
-"Naill ai nad ydych yn defnyddio LILO a ddim angen /boot neu byddwch yn "
-"defnyddio LILO a ni fydd yn gweithio."
-
-#: ../../diskdrake/interactive.pm_.c:928
-msgid ""
-"The partition you've selected to add as root (/) is physically located "
-"beyond\n"
-"the 1024th cylinder of the hard drive, and you have no /boot partition.\n"
-"If you plan to use the LILO boot manager, be careful to add a /boot partition"
-msgstr ""
-"Mae'r rhaniad rydych wedi dewis ychwanegu fel y gwraidd (/) wedi'i leoli yn "
-"bellach na 1024ed silindr eich disg a nid oes gennych rhaniad /boot.\n"
-"Os ydych yn bwriadu defnyddio y rheolwr bwtio LILO, nodwch fe ddylech greu "
-"rhaniad /boot"
-
-#: ../../diskdrake/interactive.pm_.c:934
-msgid ""
-"You've selected a software RAID partition as root (/).\n"
-"No bootloader is able to handle this without a /boot partition.\n"
-"So be careful to add a /boot partition"
-msgstr ""
-"Rydych wedi dewis meddalwedd rhannu RAID fel gwraidd (/)\n"
-"Nid oes llwythwr cychwyn yn medru trin hwn heb rhaniad /boot\n"
-"Cofiwch ychwanegu rhaniad /boot"
-
-#: ../../diskdrake/interactive.pm_.c:954
-#, c-format
-msgid "Partition table of drive %s is going to be written to disk!"
-msgstr "Mae tabl rhaniad disg-yrrwr %s am gael ei ysgrifennu i'r disg!"
-
-#: ../../diskdrake/interactive.pm_.c:958
-msgid "You'll need to reboot before the modification can take place"
-msgstr "Mi fydd angen i chi ail-fwtio cyn i'r newidiadau gymeryd lle"
-
-#: ../../diskdrake/interactive.pm_.c:969
-#, c-format
-msgid "After formatting partition %s, all data on this partition will be lost"
-msgstr ""
-"Wedi fformatio rhaniad %s, bydd yr holl ddata ar y rhaniad yn cael ei golli"
-
-#: ../../diskdrake/interactive.pm_.c:971
-msgid "Formatting"
-msgstr "Fformatio"
-
-#: ../../diskdrake/interactive.pm_.c:972
-#, c-format
-msgid "Formatting loopback file %s"
-msgstr "Yn fformatio ffeil cylch-ol %s"
-
-#: ../../diskdrake/interactive.pm_.c:973
-#: ../../install_steps_interactive.pm_.c:465
-#, c-format
-msgid "Formatting partition %s"
-msgstr "Yn fformatio rhaniad %s"
-
-#: ../../diskdrake/interactive.pm_.c:984
-msgid "Hide files"
-msgstr "Cuddio ffeiliau"
-
-#: ../../diskdrake/interactive.pm_.c:984
-msgid "Move files to the new partition"
-msgstr "Symud ffeiliau i'r rhaniad newydd"
-
-#: ../../diskdrake/interactive.pm_.c:985
-#, c-format
-msgid ""
-"Directory %s already contain some data\n"
-"(%s)"
-msgstr ""
-"Mae cyfarwyddiadur %s eisoes yn cynnwys peth data\n"
-"(%s)"
-
-#: ../../diskdrake/interactive.pm_.c:996
-msgid "Moving files to the new partition"
-msgstr "Symud ffeiliau i'r rhaniad newydd"
-
-#: ../../diskdrake/interactive.pm_.c:1000
-#, c-format
-msgid "Copying %s"
-msgstr "Copļo %s"
-
-#: ../../diskdrake/interactive.pm_.c:1004
-#, c-format
-msgid "Removing %s"
-msgstr "Tynnu %s"
-
-#: ../../diskdrake/interactive.pm_.c:1014
-#, c-format
-msgid "partition %s is now known as %s"
-msgstr "Mae rhaniad %s yn cael ei alw'n %s"
-
-#: ../../diskdrake/interactive.pm_.c:1035
-#: ../../diskdrake/interactive.pm_.c:1094
-msgid "Device: "
-msgstr "Dyfais: "
-
-#: ../../diskdrake/interactive.pm_.c:1036
-#, c-format
-msgid "DOS drive letter: %s (just a guess)\n"
-msgstr "Llythyren disg-yrrwr yn DOS: %s (dim ond dyfalu)\n"
-
-#: ../../diskdrake/interactive.pm_.c:1040
-#: ../../diskdrake/interactive.pm_.c:1048
-#: ../../diskdrake/interactive.pm_.c:1112
-msgid "Type: "
-msgstr "Math: "
-
-#: ../../diskdrake/interactive.pm_.c:1044
-msgid "Name: "
-msgstr "Enw :"
-
-#: ../../diskdrake/interactive.pm_.c:1052
-#, c-format
-msgid "Start: sector %s\n"
-msgstr "Dechrau: sector %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1053
-#, c-format
-msgid "Size: %s"
-msgstr "Maint: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1055
-#, c-format
-msgid ", %s sectors"
-msgstr ", %s sector"
-
-#: ../../diskdrake/interactive.pm_.c:1057
-#, c-format
-msgid "Cylinder %d to %d\n"
-msgstr "Silindr %d i silindr %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1058
-msgid "Formatted\n"
-msgstr "Wedi fformatio\n"
-
-#: ../../diskdrake/interactive.pm_.c:1059
-msgid "Not formatted\n"
-msgstr "Heb ei fformatio\n"
-
-#: ../../diskdrake/interactive.pm_.c:1060
-msgid "Mounted\n"
-msgstr "Gosodwyd\n"
-
-#: ../../diskdrake/interactive.pm_.c:1061
-#, c-format
-msgid "RAID md%s\n"
-msgstr "RAID md%s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1063
-#, c-format
-msgid ""
-"Loopback file(s):\n"
-" %s\n"
-msgstr ""
-"Ffeil(iau) Cylch-ol:\n"
-" %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1064
-msgid ""
-"Partition booted by default\n"
-" (for MS-DOS boot, not for lilo)\n"
-msgstr ""
-"Y rhaniad i'w bwtio fel rheol\n"
-" (ar gyfer bwt MS-DOS, nid ar gyfer lilo)\n"
-
-#: ../../diskdrake/interactive.pm_.c:1066
-#, c-format
-msgid "Level %s\n"
-msgstr "Lefel %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1067
-#, c-format
-msgid "Chunk size %s\n"
-msgstr "Maint darn %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1068
-#, c-format
-msgid "RAID-disks %s\n"
-msgstr "Disg RAID %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1070
-#, c-format
-msgid "Loopback file name: %s"
-msgstr "Enw ffeil cylch-ol: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1073
-msgid ""
-"\n"
-"Chances are, this partition is\n"
-"a Driver partition, you should\n"
-"probably leave it alone.\n"
-msgstr ""
-"\n"
-"Mwy na thebyd rhaniad Gyrrwr\n"
-"yw'r rhaniad hwn. Gwell gadael\n"
-"llonnydd iddo.\n"
-
-#: ../../diskdrake/interactive.pm_.c:1076
-msgid ""
-"\n"
-"This special Bootstrap\n"
-"partition is for\n"
-"dual-booting your system.\n"
-msgstr ""
-"\n"
-"Mae'r rhaniad Bootstrap\n"
-"hwn ar gyfer cychwyniad\n"
-"dwbl eich system\n"
-
-#: ../../diskdrake/interactive.pm_.c:1095
-#, c-format
-msgid "Size: %s\n"
-msgstr "Maint: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1096
-#, c-format
-msgid "Geometry: %s cylinders, %s heads, %s sectors\n"
-msgstr "Geometreg: %s silindr, %s pen, %s sector\n"
-
-#: ../../diskdrake/interactive.pm_.c:1097
-msgid "Info: "
-msgstr "Gwybodaeth:"
-
-#: ../../diskdrake/interactive.pm_.c:1098
-#, c-format
-msgid "LVM-disks %s\n"
-msgstr "Diag LVM %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1099
-#, c-format
-msgid "Partition table type: %s\n"
-msgstr "Math tabl rhaniad: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1100
-#, c-format
-msgid "on bus %d id %d\n"
-msgstr "ar fws %d id %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1114
-#, c-format
-msgid "Options: %s"
-msgstr "Dewisiadau: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1130
-msgid "Filesystem encryption key"
-msgstr "Allwedd amgryptio system ffeil : "
-
-#: ../../diskdrake/interactive.pm_.c:1131
-msgid "Choose your filesystem encryption key"
-msgstr "Dewiswch eich allwedd amgryptio system ffeiliau"
-
-#: ../../diskdrake/interactive.pm_.c:1134
-#, c-format
-msgid "This encryption key is too simple (must be at least %d characters long)"
-msgstr ""
-"Mae'r allwedd amgryptio'n rhy syml ( mae'n rhaid bod o leiaf %d nod o hyd)"
-
-#: ../../diskdrake/interactive.pm_.c:1135
-msgid "The encryption keys do not match"
-msgstr "Nid yw'r allweddi amgryptio'n cydfynd"
-
-#: ../../diskdrake/interactive.pm_.c:1138
-msgid "Encryption key"
-msgstr "Allwedd amgryptio"
-
-#: ../../diskdrake/interactive.pm_.c:1139
-msgid "Encryption key (again)"
-msgstr "Allwedd amgryptio (eto)"
-
-#: ../../diskdrake/removable.pm_.c:47
-msgid "Change type"
-msgstr "Newid y math"
-
-#: ../../diskdrake/removable_gtk.pm_.c:28
-msgid "Please click on a media"
-msgstr "Cliciwch ar gyfrwng"
-
-#: ../../diskdrake/smbnfs_gtk.pm_.c:165
-msgid "Search servers"
-msgstr "Chwiliwch am wasanaethwyr"
-
-#: ../../fs.pm_.c:485 ../../fs.pm_.c:495 ../../fs.pm_.c:499 ../../fs.pm_.c:503
-#: ../../fs.pm_.c:507 ../../fs.pm_.c:511
-#, c-format
-msgid "%s formatting of %s failed"
-msgstr "mi fethodd y %s fformatio o %s"
-
-#: ../../fs.pm_.c:548
-#, c-format
-msgid "I don't know how to format %s in type %s"
-msgstr "Nid wyf yn gwybod sut i fformatio %s ym math %s"
-
-#: ../../fs.pm_.c:620 ../../fs.pm_.c:649 ../../fs.pm_.c:655
-#, c-format
-msgid "mounting partition %s in directory %s failed"
-msgstr "methodd gosod rhaniad %s yng gnhyfeiriadur %s"
-
-#: ../../fs.pm_.c:640
-#, c-format
-msgid "fsck failed with exit code %d or signal %d"
-msgstr "methodd fdisk gyda cod gadael %d neu arwydd %d"
-
-#: ../../fs.pm_.c:670 ../../partition_table.pm_.c:596
-#, c-format
-msgid "error unmounting %s: %s"
-msgstr "gwall dadosod %s: %s"
-
-#: ../../fsedit.pm_.c:21
-msgid "simple"
-msgstr "syml"
-
-#: ../../fsedit.pm_.c:25
-msgid "with /usr"
-msgstr "gyda /usr"
-
-#: ../../fsedit.pm_.c:30
-msgid "server"
-msgstr "Gwasanaethwr"
-
-#: ../../fsedit.pm_.c:467
-msgid "You can't use JFS for partitions smaller than 16MB"
-msgstr "Does dim modd defnyddio JFS ar rhaniadau llai na 16MB"
-
-#: ../../fsedit.pm_.c:468
-msgid "You can't use ReiserFS for partitions smaller than 32MB"
-msgstr "Does dim modd defnyddio ReiserFS ar gyfer rhaniadau llai na 32MB"
-
-#: ../../fsedit.pm_.c:477
-msgid "Mount points must begin with a leading /"
-msgstr "Rjhaid i bwyntiau gosod gynnwys / arweiniol"
-
-#: ../../fsedit.pm_.c:478
-#, c-format
-msgid "There is already a partition with mount point %s\n"
-msgstr "Mae yna eisoes raniad gyda pwynt gosod %s\n"
-
-#: ../../fsedit.pm_.c:482
-#, c-format
-msgid "You can't use a LVM Logical Volume for mount point %s"
-msgstr "Does dim modd defnyddio Cyfrol Rhesymegol LVM ar gyfer pwynt gosod %s"
-
-#: ../../fsedit.pm_.c:484
-msgid "This directory should remain within the root filesystem"
-msgstr "Dyai'r cyfeiriadur aros o fewn y system ffeilio gwraidd"
-
-#: ../../fsedit.pm_.c:486
-msgid "You need a true filesystem (ext2, reiserfs) for this mount point\n"
-msgstr ""
-"Mae angen gwir system ffeilio (ext2, reiserfs) ar gyfer y pwynt gosod\n"
-
-#: ../../fsedit.pm_.c:488
-#, c-format
-msgid "You can't use an encrypted file system for mount point %s"
-msgstr "Does dim modd defnyddio Cyfrol Rhesymegol LVM ar gyfer pwynt gosod %s"
-
-#: ../../fsedit.pm_.c:546
-msgid "Not enough free space for auto-allocating"
-msgstr "Nid oes digon o le ar gyfer awtoddynodi"
-
-#: ../../fsedit.pm_.c:548
-msgid "Nothing to do"
-msgstr "Dim i'w wneud"
-
-#: ../../fsedit.pm_.c:612
-#, c-format
-msgid "Error opening %s for writing: %s"
-msgstr "Gwall wrth agos %s ar gyfer ysgrifennu %s"
-
-#: ../../fsedit.pm_.c:697
-msgid ""
-"An error has occurred - no valid devices were found on which to create new "
-"filesystems. Please check your hardware for the cause of this problem"
-msgstr ""
-"Digwyddodd gwall - ni chanfyddwyd dyfeisiadau dilys i greu systemau ffeil "
-"arnynt. Gwiriwch eich caledwedd am ffynhonell yr anhawster."
-
-#: ../../fsedit.pm_.c:720
-msgid "You don't have any partitions!"
-msgstr "Does gennych chi ddim rhaniadau!"
-
-#: ../../help.pm_.c:13
-msgid ""
-"GNU/Linux is a multiuser system, and this means that each user can have his\n"
-"own preferences, his own files and so on. You can read the ``User Guide''\n"
-"to learn more. But unlike \"root\", which is the administrator, the users\n"
-"you will add here will not be entitled to change anything except their own\n"
-"files and their own configuration. You will have to create at least one\n"
-"regular user for yourself. That account is where you should log in for\n"
-"routine use. Although it is very practical to log in as \"root\" everyday,\n"
-"it may also be very dangerous! The slightest mistake could mean that your\n"
-"system would not work any more. If you make a serious mistake as a regular\n"
-"user, you may only lose some information, but not the entire system.\n"
-"\n"
-"First, you have to enter your real name. This is not mandatory, of course\n"
-"as you can actually enter whatever you want. DrakX will then take the first\n"
-"word you have entered in the box and will bring it over to the \"User\n"
-"name\". This is the name this particular user will use to log onto the\n"
-"system. You can change it. You then have to enter a password here. A\n"
-"non-privileged (regular) user's password is not as crucial as \"root\"' one\n"
-"from a security point of view, but that is no reason to neglect it: after\n"
-"all, your files are at risk.\n"
-"\n"
-"If you click on \"Accept user\", you can then add as many as you want. Add\n"
-"a user for each one of your friends: your father or your sister, for\n"
-"example. When you finish adding all the users you want, select \"Done\".\n"
-"\n"
-"Clicking the \"Advanced\" button allows you to change the default \"shell\"\n"
-"for that user (bash by default)."
-msgstr ""
-"Mae GNU/Linux yn system aml-ddefnyddiwr, ac mae hyn yn golygu bod pob\n"
-"defyddiwr yn medru cael ei ddewisiadau ei hun, ei ffeiliau ei hun ac yn y "
-"blaen.\n"
-"Gallwch ddarllen yr \"User Guide\" i ddysgu mwy. Ond yn anhebyg i \"gwraidd"
-"\", sef\n"
-"y gweinyddwr, ni fydd modd i'r defnyddiwr fyddwch yn eu creu yma'n medru\n"
-"newid dim ond eu ffeiliau a'u ffurfweddiad ei hun. Bydd rhaid i chi greu un\n"
-"defnyddiwr cyffredin ar gyfer chi eich hun. Dyma'r cyfrif ddylech "
-"mewngofnodi\n"
-"iddo ar gyfer defnydd bob dydd. Er ei fod yn ymarferol iawn i fewngofnodi "
-"fel\n"
-"\"root\" gall fod yn beryglus iawn!. Gall y camgymeriad lleiaf olygu nad yw "
-"eic\n"
-"system yn gweithio ragor. Os wnewch chi gamgymeriad mawr fel defnyddiwr\n"
-"cyffredin, byddwch ond yn colli rhywfaint o wybodaeth, ac nid y system "
-"gyfan.\n"
-"Yn gyntaf rhowch eich enw go iawn. Dose dim rhaid, wrth gwrs - mae modd\n"
-"i chi rhoi beth bynnag hoffech chi. Bydd DraX yn cymryd yr enw cyntafa'i roi "
-"yn\n"
-"yr \"Enw defnyddiwr\" Dyma'r enw bydd y defnyddwr hwn yn ei ddefnyddio i\n"
-"fewngofnodi i'r system. Mae modd ei newid. Yna rhowch gyfrinair. Nid yw\n"
-"cyfrianair defnyddiwr cyffredin mor bwysig ag un \"gwraidd\" o safbwynt "
-"diogelwch\n"
-"ond nid yw hynny'n rheswm i'w esgeuluso - wedi'r cyfan mae eich ffeiliau "
-"mewn\n"
-"perygl\n"
-"\n"
-"Os wnewch chi glicio \"Derbyn Defnyddiwr\", bydd modd ychwanegu fanint\n"
-"fynnoch. Ychwanegwch ddefnyddiwr ar gyfer pob un o'ch ffrindiau: eich tad\n"
-"neu eich chwaer, e.e. Ao ōl ychwanegu'r holl ddefnyddwyr, cliciwch \"Gorffen"
-"\".\n"
-"\n"
-"Bydd clicio'r botwm \"Uwch\" yn caniatįu i chi newid y \"gragen\" "
-"rhagosodedig\n"
-"ar gyfer y defnyddiwr hwnnw (bash yw'r rhagosodedig)."
-
-#: ../../help.pm_.c:41
-msgid ""
-"Listed above are the existing Linux partitions detected on your hard 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"
-"able to install enough software. If you want to store your data on a\n"
-"separate partition, you will also need to create a partition for \"/home\"\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 drive type\", \"hard 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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard 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"
-"Gallwch gadw'r dewisiadau sydd wedi eu gwneud gan y dewin, mae'n nhw'n iawn\n"
-"ar gyfer y rhanfwyaf o osodiadau. Os ydych am wneud newidiadau, rhaid i chi "
-"ol eiaf\n"
-"ddiffinio rhaniad gwraidd (\"/\"). Peidiwch dewis rhaniad sy'n rhy fach neu "
-"fyddwch\n"
-"yn methu llwytho digon o feddalwedd. Os hoffech gadw eich data ar raniad "
-"arall,\n"
-"bydd angen i chi greu rhaniad ar gyfer \"/home\"( ond dim ond os oes mwy nag "
-"un\n"
-"rhaniad Linux ar gael)\n"
-"Mae pob rhaniad yn cael ei restri fel hyn: \"Enw\", \"Maint\".\n"
-"\n"
-"Mae \"Enw\" yn cael ei drefnu: \"math o ddisg caled\", rhif y disg caled\",\n"
-"\"rhif rhaniad\" (e.e, \"hda1\").\n"
-"\n"
-"\"Math o ddisg caled\" yw \"hdos mai disg caled IDE sydd gennych a\n"
-"\"sd\" os mai SCSI yw'r disg caled.\n"
-"\n"
-"Mae \"Rhif Disg Caled\" yn lythyren ar ōl \"hd\" neu \"sd\". Ar gyfer\n"
-"disg caled IDE mae:\n"
-"\n"
-" * \"a\" yn golygu \"prif ddisg caled ar y rheolwr IDE cyntaf\",\n"
-"\n"
-" * \"b\" yn golygu \"disg caled gwas ar y rheolwr IDE cyntaf\",\n"
-"\n"
-" * \"c\" yn golygu \"prif ddisg caled ar yr ail reolwr IDE\",\n"
-"\n"
-" * \"d\" yn golygu \"disg caled gwas ar yr ail reolwr IDE\".\n"
-"\n"
-"Gyda disgiau caled SCSI, mae \"a\" yn golygu \"ID SCSI isaf \", a \"b\" yn "
-"golygu\n"
-"\"ID SCSI ail isaf\", ag ati."
-
-#: ../../help.pm_.c:72
-msgid ""
-"The Mandrake Linux 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."
-msgstr ""
-"Mae gosodiad Mandrake Linux ar gael ar draws nifer o CD-ROM. Mae DrakX\n"
-"yn gwybod os yw pecyn penodol wedi ei leoli ar CD-ROM arall a bydd yn bwrw\n"
-"allan yr CD cyfredol a gofyn am y llall.."
-
-#: ../../help.pm_.c:77
-msgid ""
-"It is now time to specify which programs you wish to install on your\n"
-"system. There are thousands of packages available for Mandrake Linux, 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"
-"be asked to specify the CDs you currently have (in Expert mode only). Check\n"
-"the CD labels and highlight the boxes corresponding to the CDs you have\n"
-"available for installation. Click \"OK\" when you are ready to continue.\n"
-"\n"
-"Packages are sorted in groups corresponding to a particular use of your\n"
-"machine. The groups themselves are sorted into four sections:\n"
-"\n"
-" * \"Workstation\": if you plan to use your machine as a workstation, "
-"select\n"
-"one or more of the corresponding groups;\n"
-"\n"
-" * \"Development\": if your machine is to be used for programming, choose\n"
-"the desired group(s);\n"
-"\n"
-" * \"Server\": if your machine is intended to be a server, you will be able\n"
-"to select which of the most common services you wish to install on your\n"
-"machine;\n"
-"\n"
-" * \"Graphical Environment\": finally, this is where you will choose your\n"
-"preferred graphical environment. At least one must be selected if you want\n"
-"to have a graphical workstation!\n"
-"\n"
-"Moving the mouse cursor over a group name will display a short explanatory\n"
-"text about that group. If you deselect all groups when performing a regular\n"
-"installation (by opposition to an upgrade), a dialog will pop up proposing\n"
-"different options for a minimal installation:\n"
-"\n"
-" * \"With X\": install the fewer packages possible to have a working\n"
-"graphical desktop;\n"
-"\n"
-" * \"With basic documentation\": installs the base system plus basic\n"
-"utilities and their documentation. This installation is suitable for\n"
-"setting up a server;\n"
-"\n"
-" * \"Truly minimal install\": will install the strict minimum necessary to\n"
-"get a working Linux system, in command line only. This installation is\n"
-"about 65Mb large.\n"
-"\n"
-"You can check the \"Individual package selection\" box, which is useful if\n"
-"you are familiar with the packages being offered or if you want to have\n"
-"total control over what will be installed.\n"
-"\n"
-"If you started the installation in \"Upgrade\" mode, you can unselect all\n"
-"groups to avoid installing any new package. This is useful for repairing or\n"
-"updating an existing system."
-msgstr ""
-"Mae'n amser penderfynu pa raglenni rydych am eu gosod ar eich\n"
-"system. Mae yna filoedd o becynnau ar gael ar gyfer Mandrake Linux, ond\n"
-"does dim disgwyl i chi wybod amdanyn nhw i gyd.\n"
-"\n"
-"Os ydych chi'n gwneud gosodiad safonol o'r CD-ROM, bydd gofyn i chi\n"
-"ddweud pa CDau sydd gennych. Gwiriwch labeli'r CDau ac amlygu'r blychau\n"
-"sy'n cyfateb i'r CDau sydd gennych ar gyfer y gosodiad. Cliciwch \"Iawn\"\n"
-"pan ydych yn barod i barhau.\n"
-"\n"
-"Mae'r pecynnau wedi eu didoli yn grwpiau sy'n cyfateb i ddefnydd penodol\n"
-"ar eich peiriant. Mae'r grwpiau wedi eu rhannu yn bedair adran:\n"
-"\n"
-" * \"Man Gwaith\": os ydych yn bwriadu defnyddio eich peiriant fel man\n"
-"gwaith yna dewiswch un o'r grwpiau cyfatebol.\n"
-"\n"
-" * \"Datblygiadol\": os yw'r peiriant yn cael ei ddefnyddio i raglenni, "
-"dewiswch\n"
-" y grwpiau perthnasol\n"
-"\n"
-" * \"Gwasanaethwr\": os ydych am i'r peiriant gael ei ddefnyddio fel\n"
-"gwasanaethwr bydd modd i chi ddewis y gwasanaethau cyffredin rydych am\n"
-"eu cael ar eich peiriant.\n"
-"\n"
-" * \"Amgylchedd Graffigol\": dyma'r lle i ddewis eich amgylchedd graffigol.\n"
-"Rhaid dewis o leiaf un er mwyn cael man gwaith graffigol!\n"
-"\n"
-"Bydd symud cyrchwr y llygoden dros enw grwp yn amlygu esboniad byr am y\n"
-"grwp hwnnw. Os ydych wedi dad-ddewis pob grwp wrth wneud gosodiad\n"
-"arferol ac nid uwchraddiad), bydd dialog yn ymddangos a chynnig\n"
-"dewisiadau amrywiol ar gyfer y gosodiad lleiaf\n"
-"\n"
-" * \"Gyda X\" Gosod y nifer lleiaf o becynnau i gael penbwrdd graffigol\n"
-"i weithio.\n"
-"\n"
-" * \"Gyda dogfennaeth elfennol\" Gosod y system sylfaenol yn ogystal\n"
-"a gwasanaethau elfennol a'u dogfennau. Mae'r gosodiad hwn yn addas\n"
-"ar gyfer gosod gwasanaethwr.\n"
-"\n"
-" * \"Gosodiad bychan iawn\" Gosod y lleiafswm posibl i greu system Linux\n"
-"llinell orchymyn weithredol. Tua 65MB o faint.\n"
-"\n"
-"Mae clicio blwch \"Dewis pecynnau unigol\". yn ddefnyddiol os ydych\n"
-"yn gyfarwydd gyda'r pecynnau sy'n cael eu cynnig neu os ydych eisiau\n"
-"rheolaeth lwyr dros yr hyn sy'n cael ei osod\n"
-"\n"
-"Os ydych wedi cychwyn y gosodiad ym modd \"Diweddaru\", bydd modd i\n"
-" chi ddad-ddewis pob grwp er mwyn osgoi gosod unrhyw becyn newydd.\n"
-"Mae hyn yn ddefnyddiol ar gyfer trwsio neu ddiweddaru system sy'n bod "
-"eisoes.\n"
-" "
-
-#: ../../help.pm_.c:128
-msgid ""
-"Finally, depending on whether or not you selected individual packages, you\n"
-"will be presented a tree containing all packages classified by groups and\n"
-"subgroups. While browsing the tree, you can select entire groups,\n"
-"subgroups, or individual packages.\n"
-"\n"
-"Whenever you select a package on the tree, a description appears on the\n"
-"right. When your selection is finished, click the \"Install\" button which\n"
-"will then launch the installation process. Depending on the speed of your\n"
-"hardware and the number of packages that need to be installed, it may take\n"
-"a while to complete the process. An estimate of the time it will take to\n"
-"install everything is displayed on the screen, to help you gauge if there\n"
-"is sufficient time to enjoy a cup of coffee.\n"
-"\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 Mandrake Linux, 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 Mandrake Linux 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"
-"default. !!\n"
-"\n"
-"The \"Automatic dependencies\" option simply disables the warning dialog\n"
-"which appears whenever the installer automatically selects a package. This\n"
-"occurs because it has determined that it needs to satisfy a dependency with\n"
-"another package in order to successfully complete the installation.\n"
-"\n"
-"The tiny floppy disk icon at the bottom of the list allows to load the\n"
-"package list chosen during a previous installation. Clicking on this icon\n"
-"will ask you to insert a floppy disk previously created at the end of\n"
-"another installation. See the second tip of last step on how to create such\n"
-"a floppy."
-msgstr ""
-"Yn olaf, yn dibynnu ar eich dewis o becynnau unigol, bydd coeden yn cynnwys\n"
-"yr holl becynnau wedi eu dosbarthu yn ōl grwp ac is grwp. Wrth bori'r "
-"goeden,\n"
-"gallwch ddewis grwp cyfan, isgrwp neu becyn unigol.\n"
-"\n"
-"Pryd bynnag fyddwch wedi dewis pecyn ar y goeden, bydd disgrifiad yn\n"
-"ymddangos ar y dde. Pan fyddwch wedi gorffen dewis , cliciwch y botwm\n"
-" \"Gosod\" fydd yn cychwyn y drefn osod. Gan ddibynnu ar gyflymder eich\n"
-"caledwedd a'r nifer o becynnau i'w gosod, gall gymryd peth amser i'w "
-"gwblhau.\n"
-"Bydd amser tan orffen yn cael ei ddangos ar y sgrin er mwyn i chi weld a "
-"oes\n"
-"amser i wneud paned!\n"
-"\n"
-"!! Os oes pecyn gwasanaethwr 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 gwasanaethwyr\n"
-"gael eu gosod. Ym Mandrake Linux mae unrhyw wasanaethwr 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"
-"Mandrake Linux 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 cliciwch\n"
-"\"Na\". Bydd clicio \"Iawn\" yn gosod y gwasanaethau hynny a byddant yn\n"
-"cael eu cychwyn yn ddiofyn drwy ragosodiad!!\n"
-"\n"
-"Mae'r dewis \"Dibyniad Awtomatig\"yn analluogi'r deialog rhybudd sy'n\n"
-"ymddangos bob tro fydd y gosodwr yn dewis pecyn yn awtomatig.\n"
-"Mae hyn yn digwydd am ei fod wedi penderfynu ei fod angen bodloni\n"
-"dibyniad gyda phecyn arall er mwyn cwblhau'r gosodiad yn llwyddiannus\n"
-"\n"
-"Mae'r eicon disg medal bychan ar waelod y rhestr yn caniatįu llwytho'r\n"
-"rhestr pecynnau dewiswyd yn ystod gosodiad blaenorol. Bydd clicio\n"
-"ar yr eicon hwn yn gofyn i chi osod yn y peiriant disg meddal grėwyd ar\n"
-"ddiwedd gosodiad arall. Gwelwch yr ail neges o'r cam diwethaf ar sut i\n"
-"greu disg meddal o'r fath."
-
-#: ../../help.pm_.c:164
-msgid ""
-"You are now proposed to set up your Internet/network connection. If you\n"
-"wish to connect your computer to the Internet or to a local network, click\n"
-"\"OK\". The autodetection of network devices and modem will be launched. If\n"
-"this detection fails, uncheck the \"Use auto detection\" box next time. You\n"
-"may also choose not to configure the network, or do it later; in that case,\n"
-"simply click the \"Cancel\" button.\n"
-"\n"
-"Available connections are: traditional modem, ISDN modem, ADSL connection,\n"
-"cable modem, and finally a simple LAN connection (Ethernet).\n"
-"\n"
-"Here, we will not detail each configuration. Simply make sure that you have\n"
-"all the parameters from your Internet Service Provider or system\n"
-"administrator.\n"
-"\n"
-"You can consult the ``User Guide'' chapter about Internet connections for\n"
-"details about the configuration, or simply wait until your system is\n"
-"installed and use the program described there to configure your connection.\n"
-"\n"
-"If you wish to configure the network later after installation, or if you\n"
-"are finished configuring your network connection, click \"Cancel\"."
-msgstr ""
-"Dyma eich cyfle i gysylltu gyda'r rhyngrwyd/rhwydwaith.Os hoffech chi\n"
-"gysylltu eich cyfrifiadur i'r Rhyngrwyd neu i rwydwaith lleol, cliciwch\n"
-"\"Iawn\" . Bydd awtoganfod dyfeisiadan rhwwydwaith a modem yn\n"
-"cychwyn. Os yw'r canfod yn methu, dad-diciwch y blwch \"Defnyddiwch\n"
-"awto ganfod\" y tro nesaf. Mae gennych y dewis i beidio ffurfweddi eich\n"
-"rhwydwaith, neu i'w wneud rhywbryd eto. Os fell, cliciwch y botwm \"Diddymu"
-"\".\n"
-"\n"
-"Cysylltiadau posib: modem traddodiadol,modem IDSN, cyswllt ADSL,\n"
-"modem cable ac yn olaf cyswllt LAN syml (Ethernet).\n"
-"\n"
-"Byddwn ni ddim yn mynd i fanylion y ffurfweddiad yma. Gwnewch yn siwr\n"
-"fod gennych yr holl fanylion gan eich darparwr gwasanaeth rhyngrwyd (ISP)\n"
-"neu weinyddwr system\n"
-"\n"
-"Mae modd i chi edrych ar bennawd yn y llawlyfr ar gyswllt a'r Rhyngrwyd am\n"
-"fanylion ffurfweddiad, neu aros nes i'ch system gael ei osod a defnyddio'r\n"
-"rhaglen sydd yno i ffurfweddu eich cyswllt.\n"
-"\n"
-"Os ydych am ffurfweddu eich rhwydwaith yn hwyrach ar ōl y gosodiad neu\n"
-"os ydych wedi gorffen ffurfweddi eich cyswllt a'r rhwydwaith, yna cliciwch\n"
-"\" Diddymu.\"."
-
-#: ../../help.pm_.c:186
-msgid ""
-"You may now choose which services you wish to start at boot time.\n"
-"\n"
-"Here are presented all the services available with the current\n"
-"installation. Review them carefully and uncheck those which are not always\n"
-"needed at boot time.\n"
-"\n"
-"You can get a short explanatory text about a service by selecting a\n"
-"specific service. However, if you are not sure whether a service is useful\n"
-"or not, 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 will probably not want to start any services which you do not\n"
-"need. Please remember that several services can be dangerous if they are\n"
-"enabled on a server. In general, select only the services you really need.\n"
-"!!"
-msgstr ""
-"Mae modd i chi ddewis pa wasanaethau rydych am eu cychwyn\n"
-"wrth gychwyn eich cyfrifiadur.\n"
-"\n"
-"Dyma'r holl wasanaethau sydd ar gael gyda'r gosodiad cyfredol. Darllenwch\n"
-"y rhestr yn ofalus a dad-diciwch y rhai nad oes eu hangen bob tro wrth "
-"gychwyn.\n"
-"\n"
-"Mae modd cael esboniad byr am wasanaeth wrth eu dewis. Ond, os nad ydych\n"
-"yn siwr a yw'r gwasanaeth o werth neu beidio, mae'n well cadw at y drefn\n"
-"rhagosodedig\n"
-"\n"
-"!!Mae angen i chi fod yn ofalus iawn os ydych am ddefnyddio eich peiriant\n"
-"fel gwasanaethwr: mwy na thebyg na fyddwch eisiau cychwyn unrhyw\n"
-"wasanaethau nad oes eu hangen. Cofiwch bod cael nifer o wasanaethau\n"
-"wedi eu galluogi ar y gwasanaethwr, fod yn beryglus. Yn gyffredinol,\n"
-"mae'n well dewis dim ond y gwasanaethau mae'n rhaid eu cael.\n"
-"!!"
-
-#: ../../help.pm_.c:203
-msgid ""
-"GNU/Linux manages time in GMT (Greenwich Mean Time) and translates it in\n"
-"local time according to the time zone you selected. It is however possible\n"
-"to deactivate this by deselecting \"Hardware clock set to GMT\" so that the\n"
-"hardware clock is the same as the system clock. This is useful when the\n"
-"machine is hosting another operating system like Windows.\n"
-"\n"
-"The \"Automatic time synchronization\" option will automatically regulate\n"
-"the clock by connecting to a remote time server on the Internet. In the\n"
-"list that is presented, choose a server located near you. Of course you\n"
-"must have a working Internet connection for this feature to work. It will\n"
-"actually install on your machine a time server which can be optionally used\n"
-"by other machines on your local network."
-msgstr "Mae gGNU/Linux yn rheoli amser drwy GMT (Greenwich Mean Time)"
-
-#: ../../help.pm_.c:217
-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 Mandrake Linux rely. In this section, DrakX\n"
-"will try to configure X automatically.\n"
-"\n"
-"It is extremely rare for it to fail, unless the hardware is very old (or\n"
-"very new). If it succeeds, it will start X automatically with the best\n"
-"resolution possible, depending on the size of the monitor. A window will\n"
-"then appear and ask you if you can see it.\n"
-"\n"
-"If you are doing an \"Expert\" installation, you will enter the X\n"
-"configuration wizard. See the corresponding section of the manual for more\n"
-"information about this wizard.\n"
-"\n"
-"If you can see the message during the test, and answer \"Yes\", then DrakX\n"
-"will proceed to the next step. If you cannot see the message, it simply\n"
-"means that the configuration was wrong and the test will automatically end\n"
-"after 10 seconds, restoring the screen."
-msgstr ""
-"X (am X Window System) yw calon rhag wyneb graffigol GNU/Linux\n"
-"y mae pob amgylchedd graffig megis KDE, Gnome, AfterStep\n"
-"WindowMaker ag ati, sydd o fewn Mandrake Linux, yn dibynnu. Yn yr\n"
-"adran hon bydd DrakX yn ceisio ffurfweddu X yn awtomatig.\n"
-"\n"
-"Mae'n anarferol iddo fethu oni bai bod y caledwedd yn hen iawn (neu yn\n"
-"newydd iawn). Os yw'n llwyddo, bydd yn cychwyn X ar y X cydraniad\n"
-"gorau posibl yn ddibynnol ar faint y monitor. Bydd ffenestr yn ymddangos\n"
-"gan ofyn os ydych yn ei weld.\n"
-"\n"
-"Os ydych yn gwneud gosodiad \"Arbenigwr\", byddwch yn defnyddio'r \n"
-"dewin ffurfweddu X. Gwelwch yr adran gyfatebol o'r llawlyfr am ragor o\n"
-"wybodaeth am y dewin.\n"
-"\n"
-"Os ydych yn medru gweld y neges ac ateb \"Iawn\", yna bydd DrakX yn\n"
-"mynd ymlaen i'r cam nesaf. Os nad ydych yn gweld y neges mae'n golygu\n"
-"bod y ffurfweddiad yn anghywir a daw i ben ymhen 10 eiliad, gan adfer y "
-"sgrin."
-
-#: ../../help.pm_.c:237
-msgid ""
-"The first time you try the X configuration, you may not be very satisfied\n"
-"with its display (screen is too small, shifted left or right...). Hence,\n"
-"even if X starts up correctly, DrakX then asks you if the configuration\n"
-"suits you. It will also propose to change it by displaying a list of valid\n"
-"modes it could find, asking you to select one.\n"
-"\n"
-"As a last resort, if you still cannot get X to work, choose \"Change\n"
-"graphics card\", select \"Unlisted card\", and when prompted on which\n"
-"server, choose \"FBDev\". This is a failsafe option which works with any\n"
-"modern graphics card. Then choose \"Test again\" to be sure."
-msgstr ""
-"Efallai na fyddwch yn fodlon iawn gyda dagosiad ffurfweddiad X y tro\n"
-"cyntaf fyddwch yn ei ddefnyddio (sgrin yn rhy fach, i un ochr, ag ati)\n"
-"Felly mae DrakX yn gofyn i chi os yw'r ffurfweddiad yn iawn. Bydd\n"
-"hefyd yn cynnig ei newid drwy gynnig restr o foddau dilys daeth o hyd\n"
-"iddynt, i chi gael dewis un.\n"
-" \n"
-"Os nad ydych yn medru cael X i weithio, dewiswch \" Newid cerdyn graffig"
-"\",\n"
-"dewiswch \"Cerdyn heb ei restri\", ac yna wrth ddewis gwasanaethwr, dewis\n"
-"\"FBDev\". Mae hwn yn ddewis diogelwch sy'n gweithio gydag unrhyw gerdyn\n"
-"graffig modern. Dewiswch \" Profwch eto\" i fod yn siwr."
-
-#: ../../help.pm_.c:249
-msgid ""
-"Finally, you will be asked whether you want to see the graphical interface\n"
-"at boot. Note this question will be asked even if you chose not to test the\n"
-"configuration. Obviously, you want to answer \"No\" if your machine is to\n"
-"act as a server, or if you were not successful in getting the display\n"
-"configured."
-msgstr ""
-"Yn y diwedd bydd gofyn i chi ddewis os ydych am weld rhyngwyneb graffig\n"
-"wrth gychwyn y cyfrifiadur. Sylwch y bydd y cwestiwn hwn yn cael ei ofyn\n"
-"hyd yn oed os nad ydych yn dewis profi'r ffurfweddiad. Yn amlwg, byddwch\n"
-"am ateb \"Na\" os yw eich peiriant i weithredu fel gwasanaethwr, neu os\n"
-"nad oeddech yn llwyddiannus yn cael eich dangosydd i ffurfweddu'n gywir.."
-
-#: ../../help.pm_.c:256
-msgid ""
-"The Mandrake LinuxCD-ROM has a built-in rescue mode. You can access it by\n"
-"booting from the CD-ROM, press the >>F1<< key at boot and type >>rescue<<\n"
-"at the prompt. But in case your computer cannot boot from the CD-ROM, you\n"
-"should come back to this step for help in at least two situations:\n"
-"\n"
-" * when installing the bootloader, DrakX will rewrite the boot sector (MBR)\n"
-"of your main disk (unless you are using another boot manager), to allow you\n"
-"to start up with either Windows or GNU/Linux (assuming you have Windows in\n"
-"your system). If you need to reinstall Windows, the Microsoft install\n"
-"process will rewrite the boot sector, and then you will not be able to\n"
-"start GNU/Linux!\n"
-"\n"
-" * if a problem arises and you cannot start up GNU/Linux from the hard "
-"disk,\n"
-"this floppy disk will be the only means of starting up GNU/Linux. It\n"
-"contains a fair number of system tools for restoring a system, which has\n"
-"crashed due to a power failure, an unfortunate typing error, a typo in a\n"
-"password, or any other reason.\n"
-"\n"
-"When you click on this step, you will be asked to enter a disk inside the\n"
-"drive. The floppy disk you will insert must be empty or contain data which\n"
-"you do not need. You will not have to format it since DrakX will rewrite\n"
-"the whole disk."
-msgstr ""
-"Mae gan yr CD-ROM Mandrake Linux modd achub. Gallwch ei gyrraedd drwy\n"
-"gychwyn y peiriant o'r CD-ROM, gwasgu'r fysell >>F1<< o'r cychwyn a theipio\n"
-" >>rescue<<wrth yr anogwr. Ond os nad yw eich cyfrifiadur yn medru cychwyn\n"
-"drwy'r CD-ROM dylech ddod yn ōl i'r cam hwn am gymorth mewn o leiaf dwy "
-"sefyllfa:\n"
-"\n"
-" *wrth lwytho'r llwythwr cychwyn, bydd DrakX yn ailysgrifennu'r adran bwtio "
-"[MBR]\n"
-"ar eich prif ddisg [oni bai eich bod yn defnyddio rheolwr cychwyn arall] fel "
-"eich bod\n"
-"yn medru cychwyn yn Windows neu GNU/Linux [gan gymryd bod gennych Windows\n"
-"ar eich system]. Os fyddwch angen ailosod Windows, bydd proses osod "
-"Microsoft yn\n"
-"ail ysgrifennu'r adran bwtio, ac felly ni fydd modd i chi gychwyn GNU/"
-"Linux!\n"
-"\n"
-" * os oes anhawster yn codi ac nid ydych yn medru cychwyn GNU/Linux o'r "
-"ddisg\n"
-"caled, y ddisg feddal fydd yr unig ffordd i gychwyn GNU/Linux.Mae'n cynnwys\n"
-"nifer dda o offer i adfer y system, gwall teipio anffodus, camdeipio "
-"cyfrinair neu\n"
-"rhesymau eraill\n"
-"\n"
-"Pan fyddwch yn clicio ar y cam hwn, bydd gofyn i chi rhoi disg meddal yn y "
-"gyrrwr.\n"
-"Rhaid i'r ddisg fod yn wag neu fod dim gwahaniaeth colli'r data arno.Does "
-"dim\n"
-"angen ei fformatio gan y bydd DrakX yn ailysgrifennu'r holl ddisg."
-
-#: ../../help.pm_.c:280
-msgid ""
-"At this point, you need to choose where you want to install the Mandrake\n"
-"Linux operating system on your hard drive. If your hard drive is empty or\n"
-"if an existing operating system is using all the available space, you will\n"
-"need to partition it. Basically, partitioning a hard drive consists of\n"
-"logically dividing it to create space to install your new Mandrake Linux\n"
-"system.\n"
-"\n"
-"Because the partitioning process' effects are usually irreversible,\n"
-"partitioning can be intimidating and stressful if you are an inexperienced\n"
-"user. Fortunately, there is a wizard which simplifies this process. Before\n"
-"beginning, please consult the manual and take your time.\n"
-"\n"
-"If you are running the installation in Expert mode, you will enter\n"
-"DiskDrake, the Mandrake Linux partitioning tool, which allows you to\n"
-"fine-tune your partitions. See the DiskDrake section in the ``User Guide''.\n"
-"From the installation interface, you can use the wizards as described here\n"
-"by clicking the dialog's \"Wizard\" button.\n"
-"\n"
-"If partitions have already been defined, either from a previous\n"
-"installation or from another partitioning tool, simply select those to\n"
-"install your Linux system.\n"
-"\n"
-"If partitions are not defined, you will need to create them using the\n"
-"wizard. Depending on your hard drive configuration, several options are\n"
-"available:\n"
-"\n"
-" * \"Use free space\": this option will simply lead to an automatic\n"
-"partitioning of your blank drive(s). You will not be prompted further;\n"
-"\n"
-" * \"Use existing partition\": the wizard has detected one or more existing\n"
-"Linux partitions on your hard drive. If you want to use them, choose this\n"
-"option;\n"
-"\n"
-" * \"Use the free space on the Windows; partition\": if MicrosoftWindows is\n"
-"installed on your hard drive and takes all the space available on it, you\n"
-"have to create free space for Linux data. To do so, you can delete your\n"
-"MicrosoftWindows partition and data (see ``Erase entire disk'' or ``Expert\n"
-"mode'' solutions) or resize your MicrosoftWindows partition. Resizing can\n"
-"be performed without the loss of any data, provided you previously\n"
-"defragment the Windows partition. Backing up your data won't hurt either..\n"
-"This solution is recommended if you want to use both Mandrake Linux and\n"
-"MicrosoftWindows on the same computer.\n"
-"\n"
-" Before choosing this option, please understand that after this "
-"procedure,\n"
-"the size of your MicrosoftWindows partition will be smaller than at the\n"
-"present time. You will have less free space under MicrosoftWindows to store\n"
-"your data or to install new software;\n"
-"\n"
-" * \"Erase entire disk\": if you want to delete all data and all partitions\n"
-"present on your hard drive and replace them with your new Mandrake Linux\n"
-"system, choose this option. Be careful with this solution because you will\n"
-"not be able to revert your choice after you confirm;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Remove Windows\": this will simply erase everything on the drive and\n"
-"begin fresh, partitioning everything from scratch. All data on your disk\n"
-"will be lost;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Expert mode\": choose this option if you want to manually partition\n"
-"your hard drive. Be careful it is a powerful but dangerous choice. You can\n"
-"very easily lose all your data. Hence, do not choose this unless you know\n"
-"what you are doing."
-msgstr ""
-"Yn awr mae angen i chi ddewis lle ar eich disg caled i osod eich\n"
-"system weithredu Linux Mandrake. Os yw eich disg caled yn wag neu\n"
-"os oes yna system weithredol eisoes yn cymryd yr holl le sydd ar gael,\n"
-"bydd angen i chi greu rhaniadau arno.Yn y bon, mae rhannu disg caled\n"
-"yn golygu ei rhannu'n rhesymegol i greu lle i osod eich system Mandrake\n"
-"Linux newydd.\n"
-"\n"
-"Gan bo effaith y broses rannu'n ddidroi nōl gall creu rhaniadau fod yn "
-"broses\n"
-"bygythiol a straenus os ydych yn ddefnyddiwr dibrofiad. Yn ffodus, mae na\n"
-"ddewin sy'n symleiddio'r broses. Cyn cychwyn, darllenwch y llawlyfr a\n"
-"cymerwch bwyll.\n"
-"\n"
-"Os ydych yn rhedeg y gosodiad ym modd Arbenigwr, byddwch yn agor\n"
-"DiskDrake, rhaglen rhannu Mandrake Linux, sy'n caniatįu i chi wneud mān\n"
-"newidiadau i'ch rhaniadau. Gw. pennawd DiskDrake yn y llawlyfr. O'r\n"
-"rhyngwyneb gosod, gallwch ddefnyddio'r dewiniaid drwy glicio ar fotwm\n"
-"\"Dewin\" yn y ddeialog.\n"
-"\n"
-"Os oes yna raniadau wedi eu diffinio, un ai o osodiad blaenorol neu\n"
-"gan offeryn rhannu arall, dewiswch y rheini i osod eich system Linux.\n"
-"\n"
-"Os nad oes rhaniadau wedi eu diffinio, bydd angen i chi eu creu gan\n"
-"ddefnyddio'r dewin. Gan ddibynnu ar ffurfweddiad eich disg caled, mae\n"
-"nifer o ddewisiadau ar gael:\n"
-"\n"
-" * \"Defnyddiwch lle gwag\": mae'r dewis hwn yn arwain at greu rhaniadau\n"
-"awtomatig o'ch disg(iau) caled. Bydd dim cwestiynau eraill.\n"
-"\n"
-" * \"Defnyddiwch y rhaniad cyfredol\": mae'r dewin wedi canfod un neu fwy\n"
-"o raniadau Linux cyfredol ar eich disg caled. Os ydych am eu defnyddio,\n"
-"cliciwch y dewis hwn.\n"
-"\n"
-" * \"Defnyddiwch le gwag ar raniad Windows\": os yw Microsoft Windows ar\n"
-"eich disg caled ac yn cymryd y lle i gyd, bydd rhaid i chi greu lle ar gyfer "
-"data\n"
-"Linux. I wneud hynny gallwch ddileu eich rhaniad a data Microsoft Windows\n"
-"(gw. atebion\"Dileu'r ddisg gyfan\" neu \"Modd Arbenigwr) neu ail-lunio "
-"maint\n"
-"rhaniad Microsoft Windows. Mae modd ail lunio maint y rhaniad heb golli "
-"data.\n"
-"Argymhellir gwneud hyn os ydych am ddefnyddio Mandrake Linux a Microsoft\n"
-"Windows ar yr un cyfrifiadur.\n"
-"\n"
-" Cyn gwneud y dewis hwn, cofiwch y bydd maint eich rhaniad Microsoft "
-"Windows\n"
-"yn llai nag yw ar hyn o bryd. Bydd gennych llai o le yn Microsoft Windows i "
-"gadw\n"
-"data neu i osod meddalwedd newydd.\n"
-"\n"
-" * \"Dileu'r holl ddisg\" os ydych am ddileu'r holl ddata a rhaniadau "
-"presennol\n"
-"ar eich disg caled a'u cyfnewid am system Mandrake Linux, yna dewiswch hwn.\n"
-"Byddwch yn ofalus wrth wneud hyn gan na fydd modd troi'n ōl ar ōl "
-"cadarnhau.\n"
-"\n"
-" !! Os ydych yn dewis hwn, byddwch yn colli'r holl ddata ar eich disg. !!\n"
-"\n"
-" * \"Tynnu Windows\": bydd hwn yn dileu popeth o'r disg caled a chychwyn "
-"popeth\n"
-"o'r newydd, gan gynnwys creu rhaniadau newydd. Bydd yr holl ddata ar y ddisg "
-"yn\n"
-"cael ei golli\n"
-"\n"
-" !! Os ydych yn dewis hwn, byddwch yn colli'r holl ddata ar eich disg. !!\n"
-"\n"
-" * \"Modd Arbenigwr\": dewiswch hwn os ydych am rannu'r disg caled\n"
-"gyda llaw. Byddwch ofalus - mae'n ddewis pwerus a pheryglus. Mae modd\n"
-"i chi golli'ch holl ddata. Peidiwch dewis hwn oni bai eich bod yn gwybod "
-"beth\n"
-"ydych yn ei wneud."
-
-#: ../../help.pm_.c:347
-msgid ""
-"There you are. Installation is now complete and your GNU/Linux system is\n"
-"ready to use. Just click \"OK\" to reboot the system. You can start\n"
-"GNU/Linux or Windows, whichever you prefer (if you are dual-booting), as\n"
-"soon as the computer has booted up again.\n"
-"\n"
-"The \"Advanced\" button (in Expert mode only) shows two more buttons to:\n"
-"\n"
-" * \"generate auto-install floppy\": to create an installation floppy disk\n"
-"which will automatically perform a whole installation without the help of\n"
-"an operator, similar to the installation you just configured.\n"
-"\n"
-" Note that two different options are available after clicking the button:\n"
-"\n"
-" * \"Replay\". This is a partially automated installation as the\n"
-"partitioning step (and only this one) remains interactive;\n"
-"\n"
-" * \"Automated\". Fully automated installation: the hard disk is "
-"completely\n"
-"rewritten, all data is lost.\n"
-"\n"
-" This feature is very handy when installing a great number of similar\n"
-"machines. See the Auto install section on our web site;\n"
-"\n"
-" * \"Save packages selection\"(*): saves the package selection as done\n"
-"previously. Then, when doing another installation, insert the floppy inside\n"
-"the drive and run the installation going to the help screen by pressing on\n"
-"the [F1] key, and by issuing >>linux defcfg=\"floppy\"<<.\n"
-"\n"
-"(*) You need a FAT-formatted floppy (to create one under GNU/Linux, type\n"
-"\"mformat a:\")"
-msgstr ""
-"Dyna ni. Mae'r gosodiad wedi ei gwblhau ac mae eich system GNU/Linux\n"
-"yn barod i'w ddefnyddio. Cliciwch \"Iawn\" i ailgychwyn y peiriant. Mae "
-"modd\n"
-"i chi gychwyn GNU/Linux neu Windows, prun bynnag sydd orau gennych\n"
-"(os oes gennych y ddwy system ar eich peiriant), gynted ag y bydd eich\n"
-"peiriant yn ail gychwyn. \n"
-"\n"
-"Mae'r botwm \"Uwch\" yn dangos dau fotwm:\n"
-"\n"
-" *\" creu disg meddal awto-gosod\": i greu disg meddal gosod fydd yn creu\n"
-"gosodiad cyflawn heb gymorth gweithredwr, yn debyg i'r gosodiad sydd\n"
-"newydd ei ffurfweddu.\n"
-"\n"
-"Sylwer bod dau ddewis gwahanol i'w gael wedi clicio'r botwm:\n"
-"\n"
-" *\"Ail chwarae\". Gosodiad rhannol awtomatig gan bod y cam o greu rhaniad\n"
-"yn cael ei hepgor.\n"
-"\n"
-" *Awtomeiddio\".Gosodiad cwbl awtomatig: mae'r disg caled wedi ei\n"
-"ailysgrifennu'n llwyr, a'r holl ddata wedi ei golli.\n"
-"\n"
-"Mae hwn yn nodwedd ddefnyddiol iawn pan yn gosod ar nifer fawr o beiriannau\n"
-"tebyg. Gw. yr adran Auto install ar ein safle gwe.\n"
-"\n"
-" *\"Cadw'r dewis o becynnau\": mae hyn yn cadw'r dewis o becynnau wnaed\n"
-"cynt. Yna wrth wneud gosodiad arall, rhowch ddisg meddal yn y gyrrwr a "
-"rhedeg\n"
-"y gosodiad gan fynd i'r sgrin cymorth drwy wasgu'r fysell [F1], a chyflwyno\n"
-">>linux defcfg=\"disg meddal\"<<.\n"
-"\n"
-"(*) Bydd angen disg meddal wedi ei fformatio fel FAT (i greu un yn GNU/"
-"Linux,\n"
-"teipiwch \"mformat a:\")"
-
-#: ../../help.pm_.c:378
-msgid ""
-"Any partitions that have been newly defined must be formatted for use\n"
-"(formatting means creating a filesystem).\n"
-"\n"
-"At this time, you may wish to reformat some already existing partitions to\n"
-"erase any data they contain. If you wish to do that, please select those\n"
-"partitions as well.\n"
-"\n"
-"Please note that it is 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\n"
-"reformat partitions containing data that you wish to keep (typically\n"
-"\"/home\").\n"
-"\n"
-"Please be careful when selecting partitions. After formatting, all data on\n"
-"the selected partitions will be deleted and you will not be able to recover\n"
-"any of it.\n"
-"\n"
-"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"
-"Mandrake Linux operating system installation.\n"
-"\n"
-"Click on \"Advanced\" if you wish to select partitions that will be checked\n"
-"for bad blocks on the disk."
-msgstr ""
-"Rhaid i bob rhaniad sydd newydd eu henwi gael eu fformatio ar gyfer eu\n"
-"defnyddio (mae fformatio'n golygu creu system ffeilio)\n"
-"\n"
-"Efallai y byddwch eisiau ailfformatio rhai rhaniadau presennol i ddileu "
-"data\n"
-"sydd arnynt. Os ydych am wneud hynny, dewiswch y rhaniadau hynny hefyd.\n"
-"\n"
-"Sylwch nad oes angen ailfformatio'r holl raniadau sy'n bodoli eisoes. "
-"Rhaid \n"
-"ailfformatio'r rhaniadau sy'n cynnwys y system weithredu [megis \"/\",\"usr"
-"\"\n"
-"neu \"/var\") ond nid oes rhaid i chi ail fformatio rhaniadau sy'n cynnwys\n"
-"data rydych am ei gadw (e.e. \"/home\").\n"
-"\n"
-"Byddwch ofalus wrth ddewis rhaniadau. Ar ōl fformatio bydd yr holl ddata ar\n"
-"y rhaniadau'n cael eu dileu ac ni fydd modd ei adfer.\n"
-"\n"
-"Cliciwch \"Iawn\" pan ydych yn barod i fformatio rhaniadau.\n"
-"\n"
-"Cliciwch \"Dileu\" os ydych am ddewis rhaniad arall ar gyfer eich gosodiad\n"
-"Mandrake Linux newydd\n"
-"\n"
-"Cliciwch \"Uwch\" os ydych am ddewis rhaniadau i'w gwirio am flociau\n"
-"gwallus ar y ddisg."
-
-#: ../../help.pm_.c:404
-msgid ""
-"Your new Mandrake Linux operating system is currently being installed.\n"
-"Depending on the number of packages you will be installing and the speed of\n"
-"your computer, this operation could take from a few minutes to a\n"
-"significant amount of time.\n"
-"\n"
-"Please be patient."
-msgstr ""
-"Mae eich system weithredu Mandrake Linux newydd yn cael ei osod.\n"
-"Yn dibynnu ar y nifer o becynnau byddwch yn eu gosod a chyflymder\n"
-"eich cyfrifiadur, bydd yn cymryd rhwng ychydig o amser a sbel go lew.\n"
-"\n"
-"Amynedd..."
-
-#: ../../help.pm_.c:412
-msgid ""
-"At the time you are installing Mandrake Linux, it is likely that some\n"
-"packages have been updated since the initial release. Some bugs may have\n"
-"been fixed, and security issues solved. To allow you to benefit from these\n"
-"updates, you are now proposed to download them from the Internet. Choose\n"
-"\"Yes\" if you have a working Internet connection, or \"No\" if you prefer\n"
-"to install updated packages later.\n"
-"\n"
-"Choosing \"Yes\" displays a list of places from which updates can be\n"
-"retrieved. Choose the one nearest you. Then a package-selection tree\n"
-"appears: review the selection, and press \"Install\" to retrieve and\n"
-"install the selected package(s), or \"Cancel\" to abort."
-msgstr ""
-"Ar yr adeg pan fyddwch yn gosod Mandrake Linux, mae'n debygol y bydd\n"
-"rhai 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"
-"Dewiswch \"Iawn\" os oes gennych gyswllt gweithredol ā'r rhyngrwyd,\n"
-"neu \"Na\"os ydych am osod pecynnau mwy diweddar rhywbryd eto.\n"
-"\n"
-"Bydd dewis \"Iawn\" yn dangos rhestr o leoedd o le mae modd derbyn\n"
-"diweddariadau. Dewiswch yr un agosaf atoch. Yna, bydd coeden dewis\n"
-"pecynnau yn ymddangos: Wedi i chi benderfynu ar eich dewis, cliciwch\n"
-"\"Gosod\" i estyn a gosod y pecynnau hynny neu \"Diddymu\" i beidio."
-
-#: ../../help.pm_.c:425
-msgid ""
-"Before continuing, you should read carefully the terms of the license. It\n"
-"covers the whole Mandrake Linux 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."
-msgstr ""
-"Cyn parhau dylech ddarllen amodau'r drwydded yn ofalus. Mae'n ymwneud\n"
-"ā holl ddosbarthiad Mandrake Linux, ac os nad ydych yn cytuno ā'r holl\n"
-"amodau, cliciwch ar fotwm \"Gwrthod\" fydd yn terfynu'r gosodiad yn syth.\n"
-"I barhau gyda'r gosodiad, cliciwch fotwm \"Derbyn\"."
-
-#: ../../help.pm_.c:432
-msgid ""
-"At this point, it is time to choose the security level desired for the\n"
-"machine. As a rule of thumb, the more exposed the machine is, and the more\n"
-"the data stored in it is crucial, the higher the security level should be.\n"
-"However, a higher security level is generally obtained at the expense of\n"
-"easiness of use. Refer to the \"msec\" chapter of the ``Reference Manual''\n"
-"to get more information about the meaning of these levels.\n"
-"\n"
-"If you do not know what to choose, keep the default option."
-msgstr ""
-"Yma mae angen dewis lefel diogelwch ar gyfer y peiriant. Fel rheol,\n"
-"y mwyaf agored yw'r peiriant, y mwyaf pwysig yw'r data yr uchaf\n"
-"ddylai'r lefel diogelwch fod. Er hynny, mae diogelwch yn dod ar draul\n"
-"hwylustod. Gw. pennod MSEC yn y \"Reference Manual\" am\n"
-"wybodaeth ar ystyr y lefelau hyn\n"
-"\n"
-"Os nad ydych yn siwr beth i'w ddewis, dewiswch y rhagosodedig."
-
-#: ../../help.pm_.c:442
-msgid ""
-"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandrake Linux 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"
-"partitions must be defined.\n"
-"\n"
-"To create partitions, you must first select a hard 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"
-"\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"
-"\n"
-" * \"More\": gives access to additional features:\n"
-"\n"
-" * \"Save partition table\": saves the partition table to a floppy. "
-"Useful\n"
-"for later partition-table recovery if necessary. It is strongly recommended\n"
-"to perform this step;\n"
-"\n"
-" * \"Restore partition table\": allows to restore a previously saved\n"
-"partition table from floppy disk;\n"
-"\n"
-" * \"Rescue partition table\": if your partition table is damaged, you "
-"can\n"
-"try to recover it using this option. Please be careful and remember that it\n"
-"can fail;\n"
-"\n"
-" * \"Reload partition table\": discards all changes and loads your "
-"initial\n"
-"partition table;\n"
-"\n"
-" * \"Removable media automounting\": unchecking this option will force "
-"users\n"
-"to manually mount and unmount removable medias such as floppies and\n"
-"CD-ROMs.\n"
-"\n"
-" * \"Wizard\": 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 knowledge of\n"
-"partitioning;\n"
-"\n"
-" * \"Undo\": use this option to cancel your changes;\n"
-"\n"
-" * \"Toggle to normal/expert mode\": allows additional actions on "
-"partitions\n"
-"(type, options, format) and gives more information;\n"
-"\n"
-" * \"Done\": when you are finished partitioning your hard 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"
-"partitions using [Tab] and [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"
-"\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 Mandrake Linux. 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"
-"\n"
-"I greu rhaniadau, rhaid yn gyntaf ddewis disg caled. Mae modd dewis disg\n"
-"i'w rannu drwy glicio ar \"hda\" ar gyfer y ddisg IDE cyntaf., \"hdb\" ar\n"
-"gyfer yr ail, \"sda\" ar gyfer y ddisg SCSI cyntaf, ac yn y blaen.\n"
-"\n"
-"I greu'r rhaniad, mae modd defnyddio'r dewisiadau hyn:\n"
-"\n"
-" *\"Clirio'r cyfan\": mae'r dewis hwn yn dileu pob rhaniad ar ddisg.\n"
-"\n"
-" *\"Awto ddynodi\": mae'r dewis hwn yn caniatįu i chi greu'n awtomatig\n"
-"Ext2 a rhaniadau cyfnewid mewn lle gwag ar eich disg.\n"
-"\n"
-" *\"Rhagor\": yn rhoi mynediad i ragor o nodweddion:\n"
-"\n"
-" *\"Cadw'r tabl rhaniad\": mae hwn yn cadw'r tabl rhaniad i ddisg\n"
-"meddal. Mae hyn yn ddefnyddiol ar gyfer adfer tabl rhaniad, os fydd angen\n"
-"\n"
-" \"Adfer y tabl rhaniad\": mae hyn yn caniatįu adfer tabl rhaniad "
-"blaenorol\n"
-"o ddisg meddal.\n"
-"\n"
-" \"Achub y tabl rhaniad\": os yw eich tabl rhaniad wedi ei ddifrodi, mae "
-"modd\n"
-"ceisio ei adfer drwy'r dewis yma. Byddwch ofalus a chofiwch fod modd iddo\n"
-"fethu.\n"
-"\n"
-" \"Ai-lwytho'r tabl rhaniad\": mae hwn yn dileu pob newid ac yn ail "
-"lwytho'r\n"
-"tabl rhaniad gwreiddiol.\n"
-"\n"
-" *\"awto osod cyfrwng symudol\": dad-diciwch y dewis hwn i osod a dad "
-"osod\n"
-"gyda llaw, cyfryngau symudol megis disgiau meddal ac CD-ROMau\n"
-"\n"
-" *\"Dewin\": defnyddiwch y dewis hwn os ydych am ddefnyddio'r dewin i "
-"rannu\n"
-"eich disg caled. Dyma'sydd orau os nad oes gennych wybodaeth sylweddol ar\n"
-"rhannu\n"
-"\n"
-" *\"Dadwneud\": defnyddiwch y dewis hwn i ddileu eich newidiadau\n"
-"\n"
-" *\"Newid o'r modd arferol/arbenigwr\": mae hwn yn caniatįu "
-"gweithredoedd\n"
-"pellach ar raniadau. (Math, dewisiadau, fformat) ac mae'n cynnig mwy o\n"
-" wybodaeth.\n"
-"\n"
-" *\"Gorffen\":pan fyddwch wedi gorffen rhannu eich disg, bydd hwn yn cadw\n"
-" eich newidiadau yn ōl i'r ddisg\n"
-"\n"
-"Sylwer: mae modd cyrraedd y dewisiadau drwy'r bysellfwrdd. Symudwch drwy'r\n"
-" rhaniadau gan ddefnyddio [Tab] a'r saethau [I Fyny/I Lawr].\n"
-"\n"
-"Pan fydd rhaniad wedi ei ddewis, medrwch ddefnyddio:\n"
-"\n"
-" *Ctrl-c i greu rhaniad newydd (pan fo rhaniad gwag yn cael ei ddewis);\n"
-"\n"
-" *Ctrl-d i ddileu rhaniad;\n"
-"\n"
-" *Ctrl-m i greu pwynt gosod;\n"
-"\n"
-"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\" HFS\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_.c:513
-msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
-"Please choose the one you want to resize in order to install your new\n"
-"Mandrake Linux 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"
-"\"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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard 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"
-"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 Mandrake Linux newydd\n"
-"\n"
-"Mae pob rhaniad wedi ei restri fel hyn: \"Enw Linux\", \"Enw Microsoft\",\n"
-"\"Maint\".\n"
-"\n"
-"Mae \"Enw Linux\" wedi ei strwythuro fel hyn: \"math o ddisg caled\", \n"
-"\"rhif y disg caled\", \"rhif y rhaniad\" (e.e., \"hda1\").\n"
-"\n"
-"\"hd\" yw'r \"Math o ddisg caled\" os mai disg caled IDE sydd gennych\n"
-"a \"sd\" yw disg caled SCSI.\n"
-"\n"
-"Llythyren wedi'r \"hd\" neu \"sd\" yw'r \"Rhif disg caled\" bob tro.\n"
-"Gyda disgiau caled IDE:\n"
-"\n"
-" * mae \"a\" yn golygu \"prif ddisg caled ar y rheolydd IDE cyntaf\",\n"
-"\n"
-" * mae \"b\" yn golygu \"ddisg caled gwas ar y rheolydd IDE cyntaf\",\n"
-"\n"
-" * mae \"c\" yn golygu \"prif ddisg caled ar yr ail reolydd IDE\",\n"
-"\n"
-" * mae \"d\" yn golygu \"ddisg caled gwas ar yr ail reolydd IDE\",\n"
-"\n"
-"Gyda disgiau caled SCSI mae \"a\" yn golygu'r \"enw SCSI isaf\", ac mae\n"
-" \"b\" yn golygu'r \"ail enw SCSI isaf\", ag ati.\n"
-"\n"
-"Mae \"Enw Windows\" yn cyfeirio at y llythyren y disg caled o dan\n"
-" Windows (\"C:\" yw'r ddisg neu raniad cyntaf)."
-
-#: ../../help.pm_.c:544
-msgid "Please be patient. This operation can take several minutes."
-msgstr "Amynedd... Gall y weithred hon gymryd rhai munudau."
-
-#: ../../help.pm_.c:547
-msgid ""
-"DrakX now needs to know if you want to perform a default (\"Recommended\")\n"
-"installation or if you want to have greater control (\"Expert\"). You can\n"
-"also choose to do a new install or an upgrade of an existing Mandrake Linux\n"
-"system:\n"
-"\n"
-" * \"Install\": completely wipes out the old system. In fact, depending on\n"
-"what currently holds your machine, you will be able to keep some old (Linux\n"
-"or other) partitions unchanged;\n"
-"\n"
-" * \"Upgrade\": this installation class allows to simply update the "
-"packages\n"
-"currently installed on your Mandrake Linux system. It keeps the current\n"
-"partitions of your hard drives as well as user configurations. All other\n"
-"configuration steps remain available with respect to plain installation;\n"
-"\n"
-" * \"Upgrade Packages Only\": this brand new class allows to upgrade an\n"
-"existing Mandrake Linux system while keeping all system configurations\n"
-"unchanged. Adding new packages to the current installation is also\n"
-"possible.\n"
-"\n"
-"Upgrades should work fine for Mandrake Linux systems starting from \"8.1\"\n"
-"release.\n"
-"\n"
-"Depending on your knowledge of GNU/Linux, select one of the following\n"
-"choices:\n"
-"\n"
-" * Recommended: choose this if you have never installed a GNU/Linux\n"
-"operating system. The installation will be very easy and you will only be\n"
-"asked a few questions;\n"
-"\n"
-" * Expert: if you have a good knowledge of GNU/Linux, you can choose this\n"
-"installation class. The expert installation will allow you to perform a\n"
-"highly-customized installation. Answering some of the questions can be\n"
-"difficult if you do not have a good knowledge of GNU/Linux, so do not\n"
-"choose this unless you know what you are doing."
-msgstr ""
-"Mae DrakX am wybod a ydych am wneud gosodiad rhagosodedig.\n"
-"Hwn sy'n cael ei (\"Argymell\") neu a ydych eisiau mwy o reolaeth\n"
-" (\"Arbenigwr\"). Mae gennych hefyd y dewis o wneud gosodiad newydd neu\n"
-" uwchraddio system Mandrake Linux cyfredol.\n"
-"\n"
-" *\"Gosod\" Mae hwn yn dileu'r hen system yn llwyr. Mewn gwirionedd, yn\n"
-"dibynnu ar ffurf eich peiriant, bydd modd cadw rhai hen raniadau (Linux neu\n"
-"eraill) heb eu newid.\n"
-"\n"
-" *\"Uwchraddio\" Mae'r gosodiad yn caniatįu i chi uwchraddio'r pecynnau\n"
-"sydd wedi eu gosod ar eich system Mandrake Linux. Bydd yn cadw'r rhaniadau\n"
-"cyfredol ar eich disg caled yn ogystal ā ffurfweddiad defnyddwyr. Mae pob\n"
-"cam ffurfweddiad arall ar gael fel mewn gosodiad arferol.\n"
-"\n"
-" *\"Uwchraddio Pecynnau'n Unig\" Mae hwn yn ddewis newydd i ganiatįu\n"
-"uwchraddio system Mandrake Linux cyfredol tra'n cadw'r holl ffurfweddiad\n"
-"system heb ei newid. Mae ychwanegu pecynnau newydd i'r system hefyd \n"
-"yn bosibl.\n"
-"\n"
-"Dylai'r uwchraddiad weithio gyda systemau Mandrake Linux yn cychwyn\n"
-"o rifyn \"8.1\" \n"
-"\n"
-"Gan ddibynnu ar eich gwybodaeth am GNH/Linux, dewiswch un o'r canlynol:\n"
-"\n"
-" *Argymhellir: dewiswch hwn os nad ydych wedi gosod system weithredu\n"
-"GNU/Linux o'r blaen. Bydd y gosod yn hawdd a bydd ond rhaid i chi ateb\n"
-"rhai cwestiynau\n"
-"\n"
-" *Arbenigwr: os oes gennych wybodaeth drylwyr am GNU/Linux, mae modd\n"
-"i chi ddewis y math yma o osodiad. Bydd hwn yn caniatįu i chi osod y system\n"
-"yn ōl eich gofynion eich hun. Bydd ateb rhai o'r cwestiynau'n anodd os nad\n"
-"oes gennych wybodaeth drylwyr o GNU/Linux, felly peidiwch ā dewis hwn os\n"
-" nad ydych yn gwybod beth rydych yn ei wneud."
-
-#: ../../help.pm_.c:583
-msgid ""
-"Normally, DrakX selects the right keyboard for you (depending on the\n"
-"language you have chosen) and you won't even see this step. However, you\n"
-"might not have a keyboard that corresponds exactly to your language: for\n"
-"example, if you are an English speaking Swiss person, you may still want\n"
-"your keyboard to be a Swiss keyboard. Or if you speak English but are\n"
-"located in Quebec, you may find yourself in the same situation. In both\n"
-"cases, you will have to go back to this installation step and select an\n"
-"appropriate keyboard from the list.\n"
-"\n"
-"Click on the \"More\" button to be presented with the complete list of\n"
-"supported keyboards."
-msgstr ""
-"Fel arfer mae DrakX yn dewis y bysellfwrdd cywir ar eich cyfer ( gan "
-"ddibynnu pa\n"
-" iaith rydych wedi ei ddewis) ac ni fyddwch yn gweld y cam hwn. Er hynny,\n"
-"efallai nad oes gennych fysellfwrdd sy'n cyfateb yn union i'ch iaith: e.e., "
-"os ydych\n"
-"yn Americanwr sy'n siarad Cymraeg, efallai eich bod am gadw eich "
-"bysellfwrdd\n"
-"Americanaidd. Neu os ydych yn siarad Cymraeg ac yn byw yn Hong Kong mae'r\n"
-" un sefyllfa'n codi. Yn y ddwy achos bydd angen i chi fynd yn ōl i'r cam yma "
-"yn y\n"
-" gosodiad a dewis y bysellfwrdd perthnasol o'r rhestr.\n"
-"\n"
-"Cliciwch ar fotwm \"Rhagor\" i dderbyn y rhestr lawn o fysellfyrddau sy'n "
-"cael eu\n"
-" cynnal.\n"
-" "
-
-#: ../../help.pm_.c:596
-msgid ""
-"Please choose your preferred language for installation and system usage.\n"
-"\n"
-"Clicking on the \"Advanced\" button will allow you to select other\n"
-"languages to be installed on your workstation. Selecting other languages\n"
-"will install the language-specific files for system documentation and\n"
-"applications. For example, if you will host users from Spain on your\n"
-"machine, select English as the main language in the tree view and in the\n"
-"Advanced section click on the box corresponding to \"Spanish|Spain\".\n"
-"\n"
-"Note that multiple languages may be installed. Once you have selected any\n"
-"additional locales, click the \"OK\" button to continue."
-msgstr ""
-"Dewiswch eich dewis iaith ar gyfer y gosod a'r defnydd o'r system\n"
-"\n"
-"Bydd clicio ar y botwm \"Uwch\" yn caniatįu i chi ddewis ieithoedd eraill "
-"i'w\n"
-" gosod ar eich peiriant gwaith. Bydd dewis ieithoedd eraill yn gosod "
-"ffeiliau\n"
-" penodol sy'n cynnwys dogfennaeth a rhaglenni yn yr ieithoedd hynny.\n"
-"Er enghraifft, os ydych yn westeiwr ar gyfer defnyddwyr o Sbaen, dewiswch \n"
-" Gymraeg fel y brif iaith yn golwg coeden ac yn yr adran Uwch cliciwch ar "
-"y \n"
-"seren lwyd sy'n cyfateb i \"Spaeneg|Sbaen\". \n"
-"\n"
-"Sylwer bod modd gosod myw nag un iaith. Unwaith i chi ddewis unrhyw \n"
-"leoleiddiad ychwanegol cliciwch y botwm \"Iawn\" i barhau."
-
-#: ../../help.pm_.c:609
-msgid ""
-"DrakX generally detects the number of buttons your mouse has. If not, it\n"
-"assumes you have a two-button mouse and will set it up for third-button\n"
-"emulation. DrakX will automatically know whether it is a PS/2, serial or\n"
-"USB mouse.\n"
-"\n"
-"If you wish to specify a different type of mouse select the appropriate\n"
-"type from the provided list.\n"
-"\n"
-"If you choose a mouse other than the default, a test screen will be\n"
-"displayed. Use the buttons and wheel to verify that the settings are\n"
-"correct. If the mouse is not working well, press the space bar or [Return]\n"
-"to \"Cancel\" and choose again."
-msgstr ""
-"Drwy ragosodiad mae DrakX yn cymryd bod gennych lygoden dau fotwm a bydd yn "
-"ei osod i efelychu botwm tri. Bydd DrakX yn gwybod yn awtomatig p'un a'i "
-"yw'n lygoden PS/2, cyfresol neu USB.\n"
-"\n"
-" Os hoffech chi bennu math arall o lygoden, dewiswch y math priodol o'r "
-"rhestr.\n"
-"\n"
-"Os byddwch yn dewis llygoden ar wahān i'r rhagosodedig, byddwch yn gweld "
-"ffenestr profi'r llygoden. Defnyddiwch y botymau a'r olwyn i wneud yn siwr "
-"fod y gosodiadau'n gweithio. Os nad yw'r llygoden yn gweithio'n iawn pwyswch "
-"ar y bylchwr neu [Return] i \"Dileu\" a dewis eto."
-
-#: ../../help.pm_.c:623
-msgid ""
-"Please select the correct port. For example, the \"COM1\" port under\n"
-"Windows is named \"ttyS0\" under GNU/Linux."
-msgstr ""
-"Dewiswch y porth cywir. Mae porth \"COM1\" o dan MS Windows yn cael ei alw "
-"yn\n"
-"\"ttyS0\" yn GNU/Linux, e.e."
-
-#: ../../help.pm_.c:627
-msgid ""
-"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 choose\n"
-"not to enter a password, but we strongly advise you against this if only\n"
-"for one reason: do not think that because you booted GNU/Linux that your\n"
-"other operating systems are safe from mistakes. Since \"root\" can overcome\n"
-"all limitations and unintentionally erase all data on partitions by\n"
-"carelessly accessing the partitions themselves, it is important for it to\n"
-"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."
-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'r cyfrinair ar bapur - bydd yn ei gwneud hi'n rhy "
-"hawdd\n"
-" 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.\n"
-"\n"
-"Yn y modd arbenigwr, bydd gofyn os fyddwch yn cysylltu ā gwasanaethwr\n"
-"dilysu, megis NIS neu LDAPl\n"
-"\n"
-"Os yw eich rhwydwaith yn defnyddio protocol LDAP (neu NIS) ar gyfer dilysu,\n"
-" dewiswch \"LDAP\" (neu \"NIS\") fel dilyswr. Os nad ydych yn gwybod,\n"
-" gofynnwch i'ch gweinyddwr system.\n"
-"\n"
-"Os nad yw eich cyfrifiadur wedi ei gysylltu i unrhyw rwydwaith wedi ei "
-"weinyddu,\n"
-" byddwch angen dewis \"Ffeiliau lleol\" ar gyfer dilysu."
-
-#: ../../help.pm_.c:663
-msgid ""
-"LILO and grub are GNU/Linux bootloaders. This stage, normally, is totally\n"
-"automated. In fact, DrakX analyzes the disk boot sector and acts\n"
-"accordingly, depending on what it finds here:\n"
-"\n"
-" * if a Windows boot sector is found, it will replace it with a grub/LILO\n"
-"boot sector. Hence, you will be able to load either GNU/Linux or another\n"
-"OS;\n"
-"\n"
-" * if a grub or LILO boot sector is found, it will replace it with a new\n"
-"one.\n"
-"\n"
-"If in doubt, DrakX will display a dialog with various options.\n"
-"\n"
-" * \"Bootloader to use\": you have three choices:\n"
-"\n"
-" * \"GRUB\": if you prefer grub (text menu).\n"
-"\n"
-" * \"LILO with graphical menu\": if you prefer LILO with its graphical\n"
-"interface.\n"
-"\n"
-" * \"LILO with text menu\": if you prefer LILO with its text menu "
-"interface.\n"
-"\n"
-" * \"Boot device\": in most cases, you will not change the default\n"
-"(\"/dev/hda\"), but if you prefer, the bootloader can be installed on the\n"
-"second hard drive (\"/dev/hdb\"), or even on a floppy disk (\"/dev/fd0\");\n"
-"\n"
-" * \"Delay before booting the default image\": when rebooting the computer,\n"
-"this is the delay granted to the user to choose in the bootloader menu,\n"
-"another boot entry than the default one.\n"
-"\n"
-"!! Beware that if you choose not to install a bootloader (by selecting\n"
-"\"Cancel\" here), you must ensure that you have a way to boot your Mandrake\n"
-"Linux system! Also, be sure you know what you do before changing any of the\n"
-"options. !!\n"
-"\n"
-"Clicking the \"Advanced\" button in this dialog will offer many advanced\n"
-"options, which are reserved to the expert user.\n"
-"\n"
-"After you have configured the general bootloader parameters, the list of\n"
-"boot options which will be available at boot time will be displayed.\n"
-"\n"
-"If there is another operating system installed on your machine, it will\n"
-"automatically be added to the boot menu. Here, you can choose to fine-tune\n"
-"the existing options. Select an entry and click \"Modify\" to modify or\n"
-"remove it; \"Add\" creates a new entry; and \"Done\" goes on to the next\n"
-"installation step."
-msgstr ""
-"Mae LILO a grub yn llwythwyr cychwyn ar gyfer GNU/Linux. Fel rheol\n"
-"mae'r cam yma'n gwbl awtomatig. Mewn gwirionedd mae DrakX yn\n"
-"dadansoddi'r adran gychwyn ac yn gweithredu ar yr hyn mae'n ei ganfod\n"
-"yma:\n"
-" *os yw'n canfod adran gychwyn Windows mae'n gosod adran cychwyn\n"
-"grub/LILO yno yn ei le. Felly bydd modd i chi gychwyn un ai GNU/Linux\n"
-"neu system weithredu arall.\n"
-"\n"
-" *os fydd yn canfod adran gychwyn grub neu LILO, bydd yn gosod un mwy\n"
-"diweddar yn ei le.\n"
-"\n"
-"Os oes amheuaeth, bydd DrakX yn dangos blwch deialog gyda dewisiadau.\n"
-"\n"
-" * \"Llwythwr cychwyn i'w ddefnyddio\": mae gennych dri dewis:\n"
-"\n"
-" * \"GRUB\":os mae'n well gennych grub (dewislen testun)\n"
-"\n"
-" * \"LILO\" gyda dewislen raffigol\": os mae'n well gennych LILO gyda'i\n"
-"rhagwyneb graffigol.\n"
-"\n"
-" * \"LILO\" gyda dewislen raffigol\": os mae'n well gennych rhagwyneb "
-"dewislen\n"
-"testun.\n"
-"\n"
-" * \"Dyfais cychwyn\": yn y rhan fwyaf o achosion ni fyddwch yn newid\n"
-"y rhagosodedig (\"/dev/hda\"), ond os mae'n well gennych, gall y llwythwr\n"
-"cychwyn gael ei osod ar yr ail ddisg caled (\"/dev/hdb\"), neu hyd yn oed "
-"ar\n"
-"ddisg meddal (\"/dev/fd0\")\n"
-" * \"Oedi cyn cychwyn y ddelwedd rhagosodedig\": wrth ail gychwyn y "
-"cyfrifiadur\n"
-"dyma'r oedi sy'n caniatįu i'r defnyddiwr ddewis o fewn y ddewislen llwythwr "
-"cychwyn,\n"
-"llwythwr cychwyn arall yn lle'r un rhagosodedig.\n"
-"\n"
-"!!Gofalwch, os nad ydych yn gosod llwythwr cychwyn, (drwy ddewis \"Diddymu\" "
-"yma),\n"
-"rhaid i chi wneud yn siwr fod gennych fodd i gychwyn eich system Linux "
-"Mandrake.\n"
-"Hefyd, gwnewch yn siwr eich bod yn gwybod beth rydych yn ei wneud cyn newid "
-"y\n"
-"dewisiadau hyn!!\n"
-"\n"
-"Bydd clicio'r botwm \"Uwch\" yn y ddeialog yn cynnig nifer o ddewisiadau "
-"uwch,\n"
-"sydd yn cael eu cadw ar gyfer y defnyddiwr arbenigol.\n"
-"\n"
-"Wedi i chi ffurfweddi baramedrau'r llwythwr cychwyn cyffredinol, bydd rhestr "
-"o\n"
-"ddewisiadau cychwyn sydd ar gael wrth gychwyn, yn cael ei gynnig i chi.\n"
-"\n"
-"Os oes yna system weithredu arall ar eich peiriant, bydd yn cael ei "
-"ychwanegu'n\n"
-"awtomatig i'r ddewislen gychwyn. Yma cewch wneud mān newidiadau i'r "
-"dewisiadau\n"
-"presennol. Dewiswch enw a chliciwch \"Newid\" i'w newid neu ei dynnu;\n"
-"\"Ychwanegu\" i greu enw newydd; a \"Gorffen\" i fynd ymlaen i'r cam nesaf "
-"o'r gosod."
-
-#: ../../help.pm_.c:711
-msgid ""
-"LILO (the LInux LOader) and grub are bootloaders: they are able to boot\n"
-"either GNU/Linux or any other operating system present on your computer.\n"
-"Normally, these other operating systems are correctly detected and\n"
-"installed. If this is not the case, you can add an entry by hand in this\n"
-"screen. Be careful to choose the correct parameters.\n"
-"\n"
-"You may also not want to give access to these other operating systems to\n"
-"anyone. In which case, you can delete the corresponding entries. But then,\n"
-"you will need a boot disk in order to boot those other operating systems!"
-msgstr ""
-"Mae LILO (the LInux LOader) a grub yn llwythwyr cychwyn: maent yn medru\n"
-"cychwyn un ai GNU/Linux neu unrhyw system weithredu arall sy'n bresennol\n"
-"ar eich cyfrifiadur. Fel rheol mae'r systemau hyn wedi eu canfod a'u gosod "
-"yn\n"
-"gywir. Os nad yw hyn yn gywir y tro yma, mae modd i chi ychwanegu cofnod\n"
-" gyda llaw ar y sgrin hwn. Byddwch ofalus i ddewis y paramedrau cywir\n"
-"\n"
-"Efallai na fyddwch eisiau rhoi mynediad i'r systemau gweithredu hyn i neb "
-"arall\n"
-"Os felly, gallwch ddileu'r cofnodion perthnasol.Ond bydd rhaid i chi greu "
-"disg\n"
-" cychwyn ar gyfer y systemau gweithredu rheini!"
-
-#: ../../help.pm_.c:722
-msgid ""
-"You must indicate where you wish to place the information required to boot\n"
-"to GNU/Linux.\n"
-"\n"
-"Unless you know exactly what you are doing, choose \"First sector of drive\n"
-"(MBR)\"."
-msgstr ""
-"Rhaid i chi ddangos lle rydych am osod y wybodaeth angenrheidiol i gychwyn\n"
-"GNU/Linux\n"
-"Os nad ydych yn gwybod yn union beth rydych yn ei wneud, dewiswch \"First\n"
-"sector of drive (MBR)\"."
-
-#: ../../help.pm_.c:729
-msgid ""
-"Here, we select a printing system for your computer. Other OSs may offer\n"
-"you one, but Mandrake Linux offers three.\n"
-"\n"
-" * \"pdq\" which means ``print, don't queue'', is the choice if you have a\n"
-"direct connection to your printer and you want to be able to panic out of\n"
-"printer jams, and you do not have networked printers. It will handle only\n"
-"very simple network cases and is somewhat slow for networks. Pick \"pdq\"\n"
-"if this is your maiden voyage to GNU/Linux. You can change your choices\n"
-"after installation by running PrinterDrake from the Mandrake Control Center\n"
-"and clicking the expert button.\n"
-"\n"
-" * \"CUPS\"``Common Unix Printing System'', is excellent at printing to "
-"your\n"
-"local printer and also halfway-around the planet. It is simple and can act\n"
-"as a server or a client for the ancient \"lpd\" printing system. Hence, it\n"
-"is compatible with the systems that went before. It can do many tricks, but\n"
-"the basic setup is almost as easy as \"pdq\". If you need this to emulate\n"
-"an \"lpd\" server, you must turn on the \"cups-lpd\" daemon. It has\n"
-"graphical front-ends for printing or choosing printer options.\n"
-"\n"
-" * \"lprNG\"``line printer daemon New Generation''. This system can do\n"
-"approximately the same things the others can do, but it will print to\n"
-"printers mounted on a Novell Network, because it supports the IPX protocol,\n"
-"and it can print directly to shell commands. If you have need of Novell or\n"
-"printing to commands without using a separate pipe construct, use lprNG.\n"
-"Otherwise, CUPS is preferable as it is simpler and better at working over\n"
-"networks."
-msgstr ""
-"Yma byddwn yn dewis system argraffu i'ch cyfrifiadur ei ddefnyddio. Efallai\n"
-"bod systemau eraill yn cynnig un i chi, ond mae Mandrake yn cynnig tri.\n"
-"\n"
-" *pdq\" - sy'n golygu \"print, don't queue\", Hwn yw'r dewis os oes gennych "
-"gysylltiad uniongyrchol ā'ch argraffydd a'ch bod eisiau medru tynnu allan o "
-"waith argraffu pan mae'r papur wedi mynd yn sownd ac nad oes gennych "
-"argraffyddion wedi eu cysylltu drwy rwydwaith. Mae'n medru trin "
-"rhwydweithiau syml ac mae rhywfaint yn araf ar gyfer rhwydweithiau. Dewiswch "
-"\"pdq\" os mai dyma yw eich tro cyntaf yn GNU/Linux., mae modd i chi newid "
-"eich dewis ar ōl gosod drwy ddefnyddio PrinterDrake o Ganolfan Rheoli "
-"Mandrake a chlicio botwm arbenigwr\n"
-" *\"CUPS\" - \"Common Unix Printing System\". Mae hwn yn wych ar gyfer "
-"argraffu i argraffyddion lleol a hanner ffordd rownd y byd. Mae'n symlach, "
-"yn medru gweithredu fel gwasanaethwr neu cleient ar gyfer yr hen system \"lpd"
-"\",felly mae'n cydweddi ā'r systemau sydd wedi mynd o'i flaen. Mae'n gallu "
-"gwneud nifer o driciau, ond mae bron mor syml i'w osod \"pdq\". Os ydych "
-"amgen hwn i efelychu gwasanaethwr \"lpd\", yna rhaid cychwyn daemon \"cups-"
-"lpd\". Mae ganddo wyneb graffigol ar gyfer argraffu neu ddewis dewisiadau "
-"argraffu.\n"
-"\n"
-" *\"lprNG\" - \"line printer daemon New Generation\" Mae'r system yma'n "
-"medru gwneud yn fras yr un pethau a'r lleill, ond mae'n medru argraffu i "
-"argraffyddion ar Novell Network, gan ei fod yn cynnal protocol IPX, ac mae'n "
-"medru argraffu 'n uniongyrchol i orchmynion cragen.. Os oes angen Novell neu "
-"argraffu i orchmynion heb luniad peipen ar wahān, defnyddiwch lprNG. Yn "
-"gyffredinol, mae CUPS yn well am ei fod yn syml ac yn well wrth weithio ar "
-"draws rhwydwaith."
-
-#: ../../help.pm_.c:757
-msgid ""
-"DrakX now detects any IDE device present in your computer. It will also\n"
-"scan for one or more PCI SCSI card(s) on your system. If a SCSI card is\n"
-"found, DrakX will automatically install the appropriate driver.\n"
-"\n"
-"Because hardware detection does not always detect a piece of hardware,\n"
-"DrakX will ask you to confirm if a PCI SCSI card is present. Click \"Yes\"\n"
-"if you know that there is a SCSI card installed in your machine. You will\n"
-"be presented a list of SCSI cards to choose from. Click \"No\" if you have\n"
-"no SCSI hardware. If you are unsure, you can check the list of hardware\n"
-"detected in your machine by selecting \"See hardware info\" and clicking\n"
-"\"OK\". Examine the list of hardware and then click on the \"OK\" button to\n"
-"return to the SCSI interface question.\n"
-"\n"
-"If you have to manually specify your adapter, DrakX will ask if you want to\n"
-"specify options for it. You should allow DrakX to probe the hardware for\n"
-"the card-specific options which the hardware needs to initialize. This\n"
-"usually works well.\n"
-"\n"
-"If DrakX is not able to probe for the options which need to be passed, you\n"
-"will need to provide options to the driver manually. Please review the\n"
-"``User Guide'' (chapter 3, in the ``Collecting Information on Your\n"
-"Hardware'' section) for hints on retrieving the parameters required from\n"
-"hardware documentation, from the manufacturer's web site (if you have\n"
-"Internet access) or from MicrosoftWindows (if you used this hardware with\n"
-"Windows on your system)."
-msgstr ""
-"Mae DrakX yn canfod unrhyw ddyfais IDE sydd ar eich cyfrifiadur. Bydd yn\n"
-"chwilio am un neu fwy o gardiau SCSI PCI ar eich system. Os oes Cerdyn "
-"SCSI'n cael ei ganfod bydd DrakX yn awtomatig yn gosod y gyrrwr priodol.\n"
-"\n"
-"Oherwydd nad yw canfod caledwedd bob tro'n canfod darn o galedwedd, bydd\n"
-" DrakX yn gofyn i chi gadarnhau os oes cerdyn SCSI PCI yn bresennol. "
-"Cliciwch\n"
-"\"Oes\" os ydych yn gwybod bod cerdyn SCSI wedi ei osod ar eich peiriant. \n"
-"Bydd rhestr o gardiau SCSI'n ymddangos i chi ddewis un. Cliciwch \"Na\" os\n"
-"nad oes gennych galedwedd SCSI. Os nad ydych yn siwr, gallwch edrych ar y\n"
-" rhestr o galedwedd sydd wedi ei ganfod ar eich peiriant drwy ddewis\n"
-" \"Gwybodaeth am galedwedd\" a chlicio \"Iawn\". Edrychwch yn fanwl ar y\n"
-"rhestr a chlicio'r botwm \"Iawn\" i fynd yn ōl i'r cwestiwn rhag wyneb "
-"SCSI.\n"
-"\n"
-"Os ydych wedi pennu eich addaswr gyda llaw, bydd DrakX yn gofyn i chi s\n"
-" ydych am bennu dewisiadau ar ei gyfer. Dylech adael i DrakX ofyn i'r cerdyn "
-"am\n"
-" ddewisiadau penodol i'r cerdyn mae angen i'r caledwedd eu cychwyn. Mae hyn\n"
-"fel rheol yn gweithio'n dda\n"
-"\n"
-"Os nad yw DrakX yn medru holi am y dewisiadau sydd eu hangen, bydd rhaid i\n"
-" chi ddarparu'r dewisiadau gyda llaw. Darllenwch yr ``User "
-"Guide'' (pennod3,\n"
-" adran \"Collecting Information on Your Hardware\") am syniadau ar sut i "
-"gael y\n"
-" paramedrau angenrheidiol o ddogfennau'r caledwedd, o safle gwe'r "
-"gwneuthurwr\n"
-" (os oes gennych gysylltiad ā'r Rhyngrwyd) neu oddi wrth Microsoft Windows "
-"(os\n"
-" ydych wedi defnyddio'r caledwedd gyda Windows ar eich system)."
-
-#: ../../help.pm_.c:784
-msgid ""
-"You can add additional entries for yaboot, either for other operating\n"
-"systems, alternate kernels, or for an emergency boot image.\n"
-"\n"
-"For other OSs, the entry consists only of a label and the \"root\"\n"
-"partition.\n"
-"\n"
-"For Linux, there are a few possible options:\n"
-"\n"
-" * Label: this is simply the name you will have to type at the yaboot "
-"prompt\n"
-"to select this boot option;\n"
-"\n"
-" * Image: this would be the name of the kernel to boot. Typically, vmlinux\n"
-"or a variation of vmlinux with an extension;\n"
-"\n"
-" * Root: the \"root\" device or ``/'' for your Linux installation;\n"
-"\n"
-" * Append: on Apple hardware, the kernel append option is used quite often\n"
-"to assist in initializing video hardware, or to enable keyboard mouse\n"
-"button emulation for the often lacking 2nd and 3rd mouse buttons on a stock\n"
-"Apple mouse. The following are some examples:\n"
-"\n"
-" video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111 "
-"hda=autotune\n"
-"\n"
-" video=atyfb:vmode:12,cmode:24 adb_buttons=103,111\n"
-"\n"
-" * Initrd: this option can be used either to load initial modules, before\n"
-"the boot device is available, or to load a ramdisk image for an emergency\n"
-"boot situation;\n"
-"\n"
-" * Initrd-size: the default ramdisk size is generally 4,096 bytes. If you\n"
-"need to allocate a large ramdisk, this option can be used;\n"
-"\n"
-" * Read-write: normally the \"root\" partition is initially brought up in\n"
-"read-only, to allow a file system check before the system becomes ``live''.\n"
-"Here, you can override this option;\n"
-"\n"
-" * NoVideo: should the Apple video hardware prove to be exceptionally\n"
-"problematic, you can select this option to boot in ``novideo'' mode, with\n"
-"native frame buffer support;\n"
-"\n"
-" * Default: selects this entry as being the default Linux selection,\n"
-"selectable by just pressing ENTER at the yaboot prompt. This entry will\n"
-"also be highlighted with a ``*'', if you press [Tab] to see the boot\n"
-"selections."
-msgstr ""
-"Mae modd i chi gynnig cofnodion eraill ar gyfer yaboot, un ai systemau\n"
-" gweithredol eraill, cnewyll eraill, neu ddelwedd cychwyn argyfwng.\n"
-"\n"
-"Ar gyfer systemau gweithredu eraill, mae'r cofnod yn cynnwys label a'r "
-"rhaniad\n"
-" root yn unig\n"
-"\n"
-"Ar gyfer LInux, mae yna rhai dewisiadau:\n"
-"\n"
-" *Label:sef yr enw fyddwch yn ei deipio yn anogwr yaboot i ddewis y dewis\n"
-" cychwyn.\n"
-"\n"
-" *Image: hwn fydd enw'r cnewyllyn i'w gychwyn. Fel rheol, vimlinux neu\n"
-"amrywiad ohono gydag estyniad\n"
-"\n"
-" *Root: y ddyfais \"root\" neu \"/\" ar gyfer eich gosodiad Linux.\n"
-"\n"
-" *Append: ar galedwedd Apple, mae dewis atodi cnewyllyn yn cael ei\n"
-" ddefnyddio'n eithaf aml i gynorthwyo cychwyn caledwedd fideo neu i alluogi\n"
-" efelychiad o'r llygoden bysellfwrdd sydd ar goll ar yr ail a'r trydydd "
-"botwm\n"
-"llygoden llygod arferol Apple. Dyma rhai enghreifftiau:\n"
-"\n"
-" video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111 "
-"hda=autotune\n"
-"\n"
-" video=atyfb:vmode:12,cmode:24 adb_buttons=103,111\n"
-"\n"
-" * Initrd: mae modd defnyddio'r dewis hwn i un ai lwytho'r modiwlau "
-"cychwynnol,\n"
-" cydnabod y ddyfais cychwyn ar gael, neu i lwytho delwedd ramdisg ar gyfer\n"
-" cychwyn argyfwng.\n"
-"\n"
-" * Initrd-size: maint y ddelwedd ramdisg arferol yw 4,096bid. Os ydych "
-"angen\n"
-"dyrannu ramdisg mawr, mae modd defnyddio'r dewis hwn.\n"
-"\n"
-" * Read-write:fel rheol mae'r rhaniad \"root\" yn cael ei agor fel darllern "
-"yn unig, i\n"
-" ganiatįu gwiriad system ffeiliau cyn i'r system ddod yn \"fyw\". Yma mae "
-"modd\n"
-" diystyru'r dewis hwn.\n"
-"\n"
-" * NoVideo: petai caledwedd Apple yn profi i fod yn peri anhawsterau "
-"sylweddol,\n"
-" mae modd i chi ddewis cychwyn mewn modd \"novideo\", gyda chynhaliaeth\n"
-" ffrām byffer cynhenid\n"
-"\n"
-" * Default: dyma'r cyflwr rhagosodedig, dewiswch hwn drwy bwyso ENTER at\n"
-" anogwr yaboot. Bydd y cofnod hefyd wedi ei amlygu gyda \"*\", os wnewch "
-"chi\n"
-" bwyso ar [Tab] i weld dewisiadau'r cychwyn."
-
-#: ../../help.pm_.c:830
-msgid ""
-"Yaboot is a bootloader for NewWorld MacIntosh hardware. It is able to boot\n"
-"either GNU/Linux, MacOS or MacOSX if present on your computer. Normally,\n"
-"these other operating systems are correctly detected and installed. If this\n"
-"is not the case, you can add an entry by hand in this screen. Be careful to\n"
-"choose the correct parameters.\n"
-"\n"
-"Yaboot's main options are:\n"
-"\n"
-" * Init Message: a simple text message displayed before the boot prompt;\n"
-"\n"
-" * Boot Device: indicates where you want to place the information required\n"
-"to boot to GNU/Linux. Generally, you set up a bootstrap partition earlier\n"
-"to hold this information;\n"
-"\n"
-" * Open Firmware Delay: unlike LILO, there are two delays available with\n"
-"yaboot. The first delay is measured in seconds and at this point, you can\n"
-"choose between CD, OF boot, MacOS or Linux;\n"
-"\n"
-" * Kernel Boot Timeout: this timeout is similar to the LILO boot delay.\n"
-"After selecting Linux, you will have this delay in 0.1 second before your\n"
-"default kernel description is selected;\n"
-"\n"
-" * Enable CD Boot?: checking this option allows you to choose ``C'' for CD\n"
-"at the first boot prompt;\n"
-"\n"
-" * Enable OF Boot?: checking this option allows you to choose ``N'' for "
-"Open\n"
-"Firmware at the first boot prompt;\n"
-"\n"
-" * Default OS: you can select which OS will boot by default when the Open\n"
-"Firmware Delay expires."
-msgstr ""
-"Yaboot yw llwythwr cychwyn ar gyfer caledwedd NewWorld MacIntosh. Mae'n \n"
-"medru cychwyn GNU/Linux, MacOS neu MacOSX os ydynt ar eich peiriant. Fel\n"
-" rheol, mae'r systemau gweithredu hyn yn cael eu canfod yn gywir a'u gosod. "
-"Os\n"
-" nad yw hyn yn digwydd, mae modd i chi ychwanegu eu cofnod gyda llaw ar y\n"
-" sgrin hwn. Byddwch ofalus i ddewis y paramedrau cywir.\n"
-"\n"
-"Prif ddewisiadau Yaboot yw:\n"
-"\n"
-" * Cychwyn Neges: neges testun sym lsy'n cael ei ddangos cyn yr anogwr\n"
-" cychwyn\n"
-"\n"
-" * Cychwyn y Ddyfais: yn dangos lle rydych am osod y wybodaeth "
-"angenrheidiol\n"
-"i gychwyn GNU/Linux. Yn gyffredinol, byddwch wedi creu rhaniad ymlwythwr yn\n"
-" gynt, i ddal y wybodaeth.\n"
-"\n"
-" * Oediad Open Firmware: yn wahanol i LILO, mae yna ddau oediad ar gael "
-"gyda\n"
-" yaboot. Mae'r cyntaf yn cael ei fesur mewn eiliadau a dyma pryd hyn mae "
-"modd\n"
-" dewis rhwng CD, cychwyn OF, MacOS neu Linux\n"
-"\n"
-" * Oediad Cychwyn y Cnewyllyn: mae'r oediad yn debyg i oediad cychwyn LILO.\n"
-"WEdi dewis Linux, bydd oediad o 0.1 eiliad cyn bod eich cnewyllyn "
-"rhagosodedig\n"
-" yn cael ei ddewis.\n"
-"\n"
-" * Galluogi Cychwyn o'r CD?: mae dewis hwn yn caniatįu i chi ddewis \"C\" "
-"am\n"
-"CD ar anogwr y cychwyn cyntaf.\n"
-"\n"
-" * Galluogi Cychwyn OF?: mae dewis hwn yn caniatįu i chi ddewis |\"N\" am\n"
-" Open Firmware ar anogwr y cychwyn cyntaf.\n"
-"\n"
-" * System Weithredu Rhagosodedig: mae modd dewis pa system weithredu fydd\n"
-"yn cychwyn drwy ragosodiad pan ddaw'r Open Firmware i ben."
-
-#: ../../help.pm_.c:862
-msgid ""
-"Here are presented various parameters concerning your machine. Depending on\n"
-"your installed hardware, you may or not, see the following entries:\n"
-"\n"
-" * \"Mouse\": check the current mouse configuration and click on the button\n"
-"to change it if necessary;\n"
-"\n"
-" * \"Keyboard\": check the current keyboard map configuration and click on\n"
-"the button to change that if necessary;\n"
-"\n"
-" * \"Timezone\": DrakX, by default, guesses your time zone from the "
-"language\n"
-"you have chosen. But here again, as for the choice of a keyboard, you may\n"
-"not be in the country for which the chosen language should correspond.\n"
-"Hence, you may need to click on the \"Timezone\" button in order to\n"
-"configure the clock according to the time zone you are in;\n"
-"\n"
-" * \"Printer\": clicking on the \"No Printer\" button will open the printer\n"
-"configuration wizard;\n"
-"\n"
-" * \"Sound card\": if a sound card is detected on your system, it is\n"
-"displayed here. No modification possible at installation time;\n"
-"\n"
-" * \"TV card\": if a TV card is detected on your system, it is displayed\n"
-"here. No modification possible at installation time;\n"
-"\n"
-" * \"ISDN card\": if an ISDN card is detected on your system, it is\n"
-"displayed here. You can click on the button to change the parameters\n"
-"associated with it."
-msgstr ""
-"Dyma amrywiol baramedrau ynghylch eich peiriant. Yn ddibynnol ar eich\n"
-"caledwedd, mae'n bosibl i chi weld y rhain, neu beidio\n"
-"\n"
-" *\"Llygoden\": edrychwch ar ffurfweddiad presennol y llygoden a chliciwch "
-"ar y\n"
-" botwm i'w newid os oes angen.\n"
-"\n"
-" *\"Bysellfwrdd\" edrychwch ar ffurfweddiad presennol y bysellfwrdd a "
-"chliciwch\n"
-"ar y\n"
-" botwm i'w newid os oes angen.\n"
-"\n"
-" *\"Cylchfa amser\" Mae DrakX, yn dyfalu eich cylchfa amser o'r iaith "
-"rydych\n"
-" wedi ei dewis. Eto fel gyda bysellfwrdd efallai nad ydych yn y wlad sy'n "
-"cyfateb i'r\n"
-" dewis iaith. Felly, mae'n bosibl y bydd angen i chi glicio ar fotwm "
-"\"Cylchfa\n"
-" amser\" i ffurfweddi'r cloc yn ōl y gylchfa amser rydych ynddi.\n"
-"\n"
-" *\"Argraffydd\": bydd clicio ar y botwm \"Dim argraffydd\" yn agor y dewin\n"
-" ffurfweddi.\n"
-"\n"
-" *\"Cerdyn sain\": os oes cerdyn sain yn cael ei ganfod ar eich system, bydd "
-"yn\n"
-"cael ei ddangos yma. Nid oes modd creu newidiadau adeg y gosodiad.\n"
-"\n"
-" *\"Cerdyn teledu\": os oes cerdyn teledu yn cael ei ganfod ar eich system, "
-"bydd\n"
-" yn cael ei ddangos yma. Nid oes modd creu newidiadau adeg y gosodiad.\n"
-"\n"
-" *\"Cerdyn IDSN\":os oes cerdyn IDSN yn cael ei ganfod ar eich system, bydd\n"
-" yn cael ei ddangos yma. Mae modd clicio ar y botwm i newid y paramedrau\n"
-" cysylltiedig."
-
-#: ../../help.pm_.c:891
-msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandrake Linux partition. Be careful, all data present on it 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"
-"Mandrake Linux newydd. Byddwch ofalus, bydd yr holl ddata sydd arno'n\n"
-"cael ei ddileu ac ni fydd modd ei adfer!"
-
-#: ../../help.pm_.c:896
-msgid ""
-"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"
-"any Windows data.\n"
-"\n"
-"Click on \"Cancel\" to cancel this operation without losing any data and\n"
-"partitions present on this hard drive."
-msgstr ""
-"Cliciwch \"Iawn\" os ydych am ddileu'r holl ddata a rhaniadau sy'n bresennol "
-"ar y disg galed hwn. Byddwch ofalus, wedi i chi glicio \"Iawn\" ni fydd modd "
-"i chi adfer unrhyw ddata na rhaniadau presennol ar y disg caled, gan gynnwys "
-"data Windows.\n"
-"\n"
-"Cliciwch \" Diddymu\" i ddiddymu'r weithred hon heb golli unrhyw ddata a "
-"rhaniadau sy'n bresennol ar y ddisg galed."
-
-#: ../../install2.pm_.c:113
-#, c-format
-msgid ""
-"Can't 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 fodiwlau'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)"
-
-#: ../../install2.pm_.c:169
-#, c-format
-msgid "You must also format %s"
-msgstr "Rhaid fformatio %s"
-
-#: ../../install_any.pm_.c:411
-#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They don't have any known security\n"
-"issues, but some new could be found. In that case, you must make sure to "
-"upgrade\n"
-"as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
-msgstr ""
-"Rydych wedi dewis y gwasanaethwr(wyr) canlynol: %s\n"
-"\n"
-"\n"
-"Mae'r gwasanaethwyr canlynol yn cael eu cychwyn drwy ragosodiad. Nid oes "
-"ganddynt unrhyw faterion diogelwch hysbys, ond mae'n bosibl i rai ddod i'r "
-"golwg. Os felly rhaid uwchraddio gynted ag y bo modd\n"
-"\n"
-"Ydych chi wir eisiau gosod y gwasanaethwyr hyn?\n"
-
-#: ../../install_any.pm_.c:447
-msgid "Can't use broadcast with no NIS domain"
-msgstr "Methu defnyddio darlledu heb parth NIS"
-
-#: ../../install_any.pm_.c:793
-#, c-format
-msgid "Insert a FAT formatted floppy in drive %s"
-msgstr "Rhowch ddisg meddal wedi ei fformatio i FAT yng ngyrrwr %s"
-
-#: ../../install_any.pm_.c:797
-msgid "This floppy is not FAT formatted"
-msgstr "Nid yw 'r disg meddal hwn wedi ei fformatio i FAT"
-
-#: ../../install_any.pm_.c:809
-msgid ""
-"To use this saved packages selection, boot installation with ``linux "
-"defcfg=floppy''"
-msgstr ""
-"I ddefnyddio'r dewis o becynnau wedi eu cadw, cychwynnwch y gosodiad gyda "
-"``linux defcfg=floppy''"
-
-#: ../../install_any.pm_.c:831 ../../partition_table.pm_.c:763
-#, c-format
-msgid "Error reading file %s"
-msgstr "Gwall wrth ddarllen ffeil %s"
-
-#: ../../install_interactive.pm_.c:23
-#, c-format
-msgid ""
-"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
-"You can find some information about them at: %s"
-msgstr ""
-"Mae peth caledwedd ar eich cyfrifiadur angen gyrwyr \"priodol\" i weithio.\n"
-"Mae rhywfaint o wybodaeth i'w gael amdanynt yn %s"
-
-#: ../../install_interactive.pm_.c:58
-msgid ""
-"You must have a root partition.\n"
-"For this, create a partition (or click on an existing one).\n"
-"Then choose action ``Mount point'' and set it to `/'"
-msgstr ""
-"Rhaid bod gennych raniad gwraidd.\n"
-"Crėwch raniad (neu glicio ar un presennol)\n"
-"Yna dewiswch weithred \"Pwynt Gosod\" a'i osod i `/'"
-
-#: ../../install_interactive.pm_.c:63
-msgid "You must have a swap partition"
-msgstr "Rhaid cael rhaniad cyfnewid"
-
-#: ../../install_interactive.pm_.c:64
-msgid ""
-"You don't have a swap partition\n"
-"\n"
-"Continue anyway?"
-msgstr ""
-"Nid oes gennych raniad cyfnewid\n"
-"\n"
-"Parhau beth bynnag?"
-
-#: ../../install_interactive.pm_.c:67 ../../install_steps.pm_.c:163
-msgid "You must have a FAT partition mounted in /boot/efi"
-msgstr "Rhaid bod gennych raniad FAT wedi ei osod yn /boot/efi"
-
-#: ../../install_interactive.pm_.c:90
-msgid "Use free space"
-msgstr "Defnyddiwch le gwag"
-
-#: ../../install_interactive.pm_.c:92
-msgid "Not enough free space to allocate new partitions"
-msgstr "Nid oes digon o le i ddynodi rhaniadau newydd"
-
-#: ../../install_interactive.pm_.c:100
-msgid "Use existing partition"
-msgstr "Defnyddiwch y rhaniadau cyfredol"
-
-#: ../../install_interactive.pm_.c:102
-msgid "There is no existing partition to use"
-msgstr "Nid oes rhaniad cyfredol i'w ddefnyddio"
-
-#: ../../install_interactive.pm_.c:109
-msgid "Use the Windows partition for loopback"
-msgstr "Defnyddiwch rhaniad Windows ar gyfer cylch-ol"
-
-#: ../../install_interactive.pm_.c:112
-msgid "Which partition do you want to use for Linux4Win?"
-msgstr "Pa raniad hoffech chi ei ddefnyddio ar gyfer Linux4Win?"
-
-#: ../../install_interactive.pm_.c:114
-msgid "Choose the sizes"
-msgstr "Dewiswch y maint"
-
-#: ../../install_interactive.pm_.c:115
-msgid "Root partition size in MB: "
-msgstr "Maint rhaniad gwraidd mewn MB :"
-
-#: ../../install_interactive.pm_.c:116
-msgid "Swap partition size in MB: "
-msgstr "Maint rhaniad cyfnewid mewn MB: "
-
-#: ../../install_interactive.pm_.c:125
-msgid "Use the free space on the Windows partition"
-msgstr "Defnyddiwch y lle gwag ar raniad Windows"
-
-#: ../../install_interactive.pm_.c:128
-msgid "Which partition do you want to resize?"
-msgstr "Pa raniad ydych chi am newid ei faint?"
-
-#: ../../install_interactive.pm_.c:130
-msgid "Computing Windows filesystem bounds"
-msgstr "Mesur ffiniau system ffeilio Windows"
-
-#: ../../install_interactive.pm_.c:133
-#, c-format
-msgid ""
-"The FAT resizer is unable to handle your partition, \n"
-"the following error occured: %s"
-msgstr ""
-"Nid yw'r newidiwr maint FAT yn medru trin eich rhaniad.\n"
-"digwyddodd y gwall canlynol: %s"
-
-#: ../../install_interactive.pm_.c:136
-msgid "Your Windows partition is too fragmented, please run ``defrag'' first"
-msgstr "Mae eich rhaniad Windows yn rhy ysgyriog, rhedwch \"defrag\" yn gyntaf"
-
-#: ../../install_interactive.pm_.c:137
-msgid ""
-"WARNING!\n"
-"\n"
-"DrakX will now resize your Windows partition. Be careful:\n"
-"this operation is dangerous. If you have not already done\n"
-"so, you should first exit the installation, run scandisk\n"
-"under Windows (and optionally run defrag), then restart the\n"
-"installation. You should also backup your data.\n"
-"When sure, press Ok."
-msgstr ""
-"RHYBUDD!\n"
-"\n"
-"Bydd DrakX yn newid maint eich rhaniad Windows. Byddwch\n"
-"ofalus: mae gwneud hyn yn beryglus. Os nad ydych wedi\n"
-"gwneud yn barod, dylech fynd allan o'r gosod, rhedeg scandisk\n"
-"yn Windows (ac os oes modd defrag), yna ail gychwyn y gosodiad.\n"
-"Dylech hefyd wneud copi wrth gefn o'ch data.Pan rydych yn siwr, cliciwch "
-"Iawn."
-
-#: ../../install_interactive.pm_.c:147
-msgid "Which size do you want to keep for windows on"
-msgstr "Pa faint ydych am ei gadw ar gyfer Windows ar"
-
-#: ../../install_interactive.pm_.c:148
-#, c-format
-msgid "partition %s"
-msgstr "rhaniad %s"
-
-#: ../../install_interactive.pm_.c:155
-#, c-format
-msgid "FAT resizing failed: %s"
-msgstr "Methodd newid maint FAT: %s"
-
-#: ../../install_interactive.pm_.c:170
-msgid ""
-"There is no FAT partitions to resize or to use as loopback (or not enough "
-"space left)"
-msgstr ""
-"Nid oes rhaniadau FAT i newid eu maint neu i'w defnyddio fel cylch-ōl (neu "
-"nad oes digon o le ar ōl)"
-
-#: ../../install_interactive.pm_.c:176
-msgid "Erase entire disk"
-msgstr "Dileu'r ddisg gyfan"
-
-#: ../../install_interactive.pm_.c:176
-msgid "Remove Windows(TM)"
-msgstr "Tynnu Windows(TM)"
-
-#: ../../install_interactive.pm_.c:179
-msgid "You have more than one hard drive, which one do you install linux on?"
-msgstr "Mae gennych fwy nag un disg caled, ar ba un ydych am osod linux?"
-
-#: ../../install_interactive.pm_.c:182
-#, c-format
-msgid "ALL existing partitions and their data will be lost on drive %s"
-msgstr "Bydd pob rhaniad a'u data yn cael ei ddileu ar yrrwr %s"
-
-#: ../../install_interactive.pm_.c:190
-msgid "Custom disk partitioning"
-msgstr "Rhannu disg unigol"
-
-#: ../../install_interactive.pm_.c:194
-msgid "Use fdisk"
-msgstr "Defnyddiwch fdisk"
-
-#: ../../install_interactive.pm_.c:197
-#, c-format
-msgid ""
-"You can now partition %s.\n"
-"When you are done, don't forget to save using `w'"
-msgstr ""
-"Medrwch rhannu %s\n"
-"Wedi gorffen, peidiwch anghofio cadw gyda 'w'"
-
-#: ../../install_interactive.pm_.c:226
-msgid "You don't have enough free space on your Windows partition"
-msgstr "Does gennych ddim digon o le rhydd ar eich rhaniad Windows"
-
-#: ../../install_interactive.pm_.c:242
-msgid "I can't find any room for installing"
-msgstr "Methu canfod lle ar gyfer gosod"
-
-#: ../../install_interactive.pm_.c:246
-msgid "The DrakX Partitioning wizard found the following solutions:"
-msgstr "Daeth dewin Rhannu DrakX o hyd i'r atebion canlynol:"
-
-#: ../../install_interactive.pm_.c:251
-#, c-format
-msgid "Partitioning failed: %s"
-msgstr "Methodd rhannu: %s"
-
-#: ../../install_interactive.pm_.c:261
-msgid "Bringing up the network"
-msgstr "Cychwyn y rhwydwaith"
-
-#: ../../install_interactive.pm_.c:266
-msgid "Bringing down the network"
-msgstr "Cau'r rhwydwaith"
-
-#: ../../install_steps.pm_.c:76
-msgid ""
-"An error occurred, but I don't know how to handle it nicely.\n"
-"Continue at your own risk."
-msgstr ""
-"Digwyddodd gwall ond wn i ddim sut i ddelio ag ef yn dwt.\n"
-"Mae'n beryglus i barhau."
-
-#: ../../install_steps.pm_.c:205
-#, c-format
-msgid "Duplicate mount point %s"
-msgstr "Pwynt gosod dyblyg %s"
-
-#: ../../install_steps.pm_.c:388
-msgid ""
-"Some important packages didn't get installed properly.\n"
-"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl Mandrake/RPMS/*.rpm"
-"\"\n"
-msgstr ""
-"Methodd rhai pecynnau pwysig a chael eu gosod yn gywir.\n"
-"Un ai mae eich gyrrwr CD-ROM neu eich CD-ROM yn wallus.\n"
-"Gwiriwch y CD-ROM ar gyfrifiadur wedi ei osod gan ddefnyddio \"rpm -qpl "
-"Mandrake/RPMS/*.rpm\"\n"
-
-#: ../../install_steps.pm_.c:458
-#, c-format
-msgid "Welcome to %s"
-msgstr "Croeso i %s"
-
-#: ../../install_steps.pm_.c:513 ../../install_steps.pm_.c:755
-msgid "No floppy drive available"
-msgstr "Does dim gyrrwr disg meddal ar gael"
-
-#: ../../install_steps_auto_install.pm_.c:76
-#: ../../install_steps_stdio.pm_.c:22
-#, c-format
-msgid "Entering step `%s'\n"
-msgstr "Cychwyn cam '%s\"\n"
-
-#: ../../install_steps_gtk.pm_.c:148
-msgid ""
-"Your system is low on resource. You may have some problem installing\n"
-"Mandrake Linux. 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 y cewch anhawsterau wrth osod\n"
-"Mandrake Linux. Os bydd hynny'n digwydd, gallwch geisio gwneud gosodiad\n"
-"testunol. I wneud hynny, gwasgwch F1 wrth gychwyn ar y CD-ROM ac yna rhoi "
-"'text'."
-
-#: ../../install_steps_gtk.pm_.c:159 ../../install_steps_interactive.pm_.c:224
-msgid "Install Class"
-msgstr "Gosod Dosbarth"
-
-#: ../../install_steps_gtk.pm_.c:162
-msgid "Please choose one of the following classes of installation:"
-msgstr "Dewiswch un o'r dosbarthiadau canlynol o osodiad::"
-
-#: ../../install_steps_gtk.pm_.c:228
-#, c-format
-msgid ""
-"The total size for the groups you have selected is approximately %d MB.\n"
-msgstr "Cyfanswm maint y grwpiau rydych wedi eu dewis yw tua %d MB.\n"
-
-#: ../../install_steps_gtk.pm_.c:230
-#, c-format
-msgid ""
-"If you wish to install less than this size,\n"
-"select the percentage of packages that you want to install.\n"
-"\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of 100%% will install all selected packages."
-msgstr ""
-"Os hoffech chi osod llai na'r maint hwn\n"
-"dewiswch canran y pecynnau i'w gosod.\n"
-"\n"
-"Dim ond y pecynnau pwysicaf fydd yn cael eu gosod gyda chanran\n"
-"isel; tra bydd canran o 100% yn llwytho'r holl becynnau."
-
-#: ../../install_steps_gtk.pm_.c:235
-#, c-format
-msgid ""
-"You have space on your disk for only %d%% of these packages.\n"
-"\n"
-"If you wish to install less than this,\n"
-"select the percentage of packages that you want to install.\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of %d%% will install as many packages as possible."
-msgstr ""
-"Dim ond ar gyfer %d%% o'r pecynnau hyn mae gennych le.\n"
-"\n"
-"Os hoffech osod llai na hyn,\n"
-"dewiswch canran y pecynnau rydych am eu gosod.\n"
-"Dim ond y pecynnau pwysicaf fydd yn cael eu gosod gyda chanran\n"
-"isel; tra bydd canran o %d%% yn llwytho'r gymaint o becynnau ag\n"
-"y mae modd."
-
-#: ../../install_steps_gtk.pm_.c:241
-msgid "You will be able to choose them more specifically in the next step."
-msgstr "Dydd modd eu dewis yn fwy penodol yn y cam nesaf."
-
-#: ../../install_steps_gtk.pm_.c:243
-msgid "Percentage of packages to install"
-msgstr "Cyfanswm y pecynnau i'w gosod"
-
-#: ../../install_steps_gtk.pm_.c:291 ../../install_steps_interactive.pm_.c:705
-msgid "Package Group Selection"
-msgstr "Dewis y Grwp Pecyn"
-
-#: ../../install_steps_gtk.pm_.c:323 ../../install_steps_interactive.pm_.c:720
-msgid "Individual package selection"
-msgstr "Dewis pecynnau unigol."
-
-#: ../../install_steps_gtk.pm_.c:346 ../../install_steps_interactive.pm_.c:645
-#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Cyfanswm maint: %d/%d MB"
-
-#: ../../install_steps_gtk.pm_.c:391
-msgid "Bad package"
-msgstr "Pecyn gwallus"
-
-#: ../../install_steps_gtk.pm_.c:392
-#, c-format
-msgid "Name: %s\n"
-msgstr "Enw: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:393
-#, c-format
-msgid "Version: %s\n"
-msgstr "Fersiwn: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:394
-#, c-format
-msgid "Size: %d KB\n"
-msgstr "Maint: %d KB\n"
-
-#: ../../install_steps_gtk.pm_.c:395
-#, c-format
-msgid "Importance: %s\n"
-msgstr "Pwysigrwydd: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:417
-msgid ""
-"You can't 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 ol i'w osod"
-
-#: ../../install_steps_gtk.pm_.c:422
-msgid "The following packages are going to be installed"
-msgstr "Mae'r pecynnau canlynol i'w gosod"
-
-#: ../../install_steps_gtk.pm_.c:423
-msgid "The following packages are going to be removed"
-msgstr "Bydd y pecynnau canlynol yn cael eu tynnu"
-
-#: ../../install_steps_gtk.pm_.c:435
-msgid "You can't select/unselect this package"
-msgstr "Does dim modd i chi ddewis/dad-ddewis y pecyn"
-
-#: ../../install_steps_gtk.pm_.c:447
-msgid "This is a mandatory package, it can't be unselected"
-msgstr "Mae hwn yn becyn hanfodol, does dim modd ei ddad-ddewis"
-
-#: ../../install_steps_gtk.pm_.c:449
-msgid "You can't unselect this package. It is already installed"
-msgstr "Does dim mod dad-ddewis y pecyn, mae wedi ei osod yn barod"
-
-#: ../../install_steps_gtk.pm_.c:453
-msgid ""
-"This package must be upgraded\n"
-"Are you sure you want to deselect it?"
-msgstr ""
-"Rhaid i'r pecyn gael ei uwchraddio\n"
-"Ydych chi'n siwr eich bod am ei ddad-ddewis?"
-
-#: ../../install_steps_gtk.pm_.c:457
-msgid "You can't unselect this package. It must be upgraded"
-msgstr "Does dim mod dad-ddewis y pecyn hwn. Rhaid ei ddiweddaru"
-
-#: ../../install_steps_gtk.pm_.c:462
-msgid "Show automatically selected packages"
-msgstr "Dangoswch y pecynnau dewis awtomatig"
-
-#: ../../install_steps_gtk.pm_.c:463 ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Install"
-msgstr "Gosodiad"
-
-#: ../../install_steps_gtk.pm_.c:466
-msgid "Load/Save on floppy"
-msgstr "LLwytho/Cadw ar ddisg meddal"
-
-#: ../../install_steps_gtk.pm_.c:467
-msgid "Updating package selection"
-msgstr "Diweddaru'r dewis pecynnau"
-
-#: ../../install_steps_gtk.pm_.c:472
-msgid "Minimal install"
-msgstr "Gosodiad lleiaf"
-
-#: ../../install_steps_gtk.pm_.c:487 ../../install_steps_interactive.pm_.c:555
-msgid "Choose the packages you want to install"
-msgstr "Dewiswch y pecynnau hoffech chi eu gosod"
-
-#: ../../install_steps_gtk.pm_.c:503 ../../install_steps_interactive.pm_.c:787
-msgid "Installing"
-msgstr "Gosod"
-
-#: ../../install_steps_gtk.pm_.c:509
-msgid "Estimating"
-msgstr "Amcangyfrif"
-
-#: ../../install_steps_gtk.pm_.c:516
-msgid "Time remaining "
-msgstr "Amser yn weddill"
-
-#: ../../install_steps_gtk.pm_.c:528
-msgid "Please wait, preparing installation"
-msgstr "Arhoswch, paratoi'r gosodiad"
-
-#: ../../install_steps_gtk.pm_.c:611
-#, c-format
-msgid "%d packages"
-msgstr "%d pecyn"
-
-#: ../../install_steps_gtk.pm_.c:616
-#, c-format
-msgid "Installing package %s"
-msgstr "Gosod pecynnau %s"
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-#: ../../standalone/drakautoinst_.c:203
-msgid "Accept"
-msgstr "Derbyn"
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-msgid "Refuse"
-msgstr "Gwrthod"
-
-#: ../../install_steps_gtk.pm_.c:658 ../../install_steps_interactive.pm_.c:812
-#, c-format
-msgid ""
-"Change your Cd-Rom!\n"
-"\n"
-"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
-"done.\n"
-"If you don't have it, press Cancel to avoid installation from this Cd-Rom."
-msgstr ""
-"Newidiwch eich CD-ROM\n"
-"\n"
-"Rhowch yr CD-ROM sydd wedi ei labeli \"%s\" yn eich gyrrwr a chlicio Iawn\n"
-"Os nad yw gennych, cliciwch Dileu i osgoi gosod o'r CD-ROM hwn."
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_gtk.pm_.c:676
-#: ../../install_steps_interactive.pm_.c:824
-#: ../../install_steps_interactive.pm_.c:828
-msgid "Go on anyway?"
-msgstr "Mynd yn ein blaen beth bynnag?"
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_interactive.pm_.c:824
-msgid "There was an error ordering packages:"
-msgstr "Roedd gwall wrth drefnu pecynnau"
-
-#: ../../install_steps_gtk.pm_.c:676 ../../install_steps_interactive.pm_.c:828
-msgid "There was an error installing packages:"
-msgstr "Digwyddodd gwall wrth osod pecyn"
-
-#: ../../install_steps_interactive.pm_.c:10
-msgid ""
-"\n"
-"Warning\n"
-"\n"
-"Please read carefully the terms below. If you disagree with any\n"
-"portion, you are not allowed to install the next CD media. Press 'Refuse' \n"
-"to continue the installation without using these media.\n"
-"\n"
-"\n"
-"Some components contained in the next CD media are not governed\n"
-"by the GPL License or similar agreements. Each such component is then\n"
-"governed by the terms and conditions of its own specific license. \n"
-"Please read carefully and comply with such specific licenses before \n"
-"you use or redistribute the said components. \n"
-"Such licenses will in general prevent the transfer, duplication \n"
-"(except for backup purposes), redistribution, reverse engineering, \n"
-"de-assembly, de-compilation or modification of the component. \n"
-"Any breach of agreement will immediately terminate your rights under \n"
-"the specific license. Unless the specific license terms grant you such\n"
-"rights, you usually cannot install the programs on more than one\n"
-"system, or adapt it to be used on a network. In doubt, please contact \n"
-"directly the distributor or editor of the component. \n"
-"Transfer to third parties or copying of such components including the \n"
-"documentation is usually forbidden.\n"
-"\n"
-"\n"
-"All rights to the components of the next CD media belong to their \n"
-"respective authors and are protected by intellectual property and \n"
-"copyright laws applicable to software programs.\n"
-msgstr ""
-"\n"
-" Rhybudd\n"
-"\n"
-"Darllenwch yr amodau isod yn ofalus. Os ydych yn anghytuno gydag unrhyw\n"
-" ddarn, nid oes caniatād i chi osod y cyfrwng CD nesaf. Pwyswch 'Gwrthod' i\n"
-" barhau'r gosodiad heb ddefnyddio'r cyfryngau hyn.\n"
-"\n"
-"Nid yw rhai cydrannau ar y CDau canlynol yn cael eu rheoli gan Drwydded GPL\n"
-" neu gytundebau tebyg. Mae'r cydrannau hynny'n cael eu rheoli gan dermau ac\n"
-" amodau ei drwydded benodol ei hun. Darllenwch yn ofalus a chadwch at y\n"
-" trwyddedau penodol cyn defnyddio neu ddosbarthu'r cydrannau hynny.\n"
-"\n"
-"Mae'r trwyddedau hynny'n atal yn gyffredinol, drosglwyddiad, dyblygu (ar "
-"wahān i\n"
-" bwrpas cadw wrth gefn), dosbarthu, cildroi peirianyddol, dadcydosod,\n"
-" dadgrynhoi neu newid y cydrannau. Bydd unrhyw dorri ar yr amodau hyn yn\n"
-"terfynu eich hawl o dan y drwydded benodol. Oni bai ei fod yn rhoi'r hawl i "
-"chi,\n"
-"nid oes modd i chi osod y rhaglenni ar fwy nag un system na'i addasu ar "
-"gyfer\n"
-" defnydd ar rwydwaith. Os oes amheuaeth, cysylltwch yn uniongyrchol ā\n"
-"dosbarthwr neu olygydd y cydrannau hynny.\n"
-"Mae trosglwyddo i drydydd parti neu gopļo'r cydrannau hynny gan gynnwys y\n"
-" ddogfennaeth, wedi ei wahardd fel rheol\n"
-"\n"
-"Mae pob hawl i gydrannau'r cyfrwng CD nesaf yn perthyn i' hawduron "
-"perthnasol\n"
-" ac maent wedi eu hamddiffyn drwy gyfreithiau eiddo deallusol a hawlfraint "
-"sy'n\n"
-" berthynol i raglenni meddalwedd.\n"
-
-#: ../../install_steps_interactive.pm_.c:67
-msgid "An error occurred"
-msgstr "Digwyddodd gwall"
-
-#: ../../install_steps_interactive.pm_.c:85
-msgid "Do you really want to leave the installation?"
-msgstr "Ydych chi wir eisiau gadael y gosodiad?"
-
-#: ../../install_steps_interactive.pm_.c:108
-msgid "License agreement"
-msgstr "Cytundeb trwyddedu"
-
-#: ../../install_steps_interactive.pm_.c:109
-msgid ""
-"Introduction\n"
-"\n"
-"The operating system and the different components available in the Mandrake "
-"Linux distribution \n"
-"shall be called the \"Software Products\" hereafter. The Software Products "
-"include, but are not \n"
-"restricted to, the set of programs, methods, rules and documentation related "
-"to the operating \n"
-"system and the different components of the Mandrake Linux distribution.\n"
-"\n"
-"\n"
-"1. License Agreement\n"
-"\n"
-"Please read carefully this document. This document is a license agreement "
-"between you and \n"
-"MandrakeSoft S.A. which applies to the Software Products.\n"
-"By installing, duplicating or using the Software Products in any manner, you "
-"explicitly \n"
-"accept and fully agree to conform to the terms and conditions of this "
-"License. \n"
-"If you disagree with any portion of the License, you are not allowed to "
-"install, duplicate or use \n"
-"the Software Products. \n"
-"Any attempt to install, duplicate or use the Software Products in a manner "
-"which does not comply \n"
-"with the terms and conditions of this License is void and will terminate "
-"your rights under this \n"
-"License. Upon termination of the License, you must immediately destroy all "
-"copies of the \n"
-"Software Products.\n"
-"\n"
-"\n"
-"2. Limited Warranty\n"
-"\n"
-"The Software Products and attached documentation are provided \"as is\", "
-"with no warranty, to the \n"
-"extent permitted by law.\n"
-"MandrakeSoft S.A. will, in no circumstances and to the extent permitted by "
-"law, be liable for any special,\n"
-"incidental, direct or indirect damages whatsoever (including without "
-"limitation damages for loss of \n"
-"business, interruption of business, financial loss, legal fees and penalties "
-"resulting from a court \n"
-"judgment, or any other consequential loss) arising out of the use or "
-"inability to use the Software \n"
-"Products, even if MandrakeSoft S.A. has been advised of the possibility or "
-"occurance of such \n"
-"damages.\n"
-"\n"
-"LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN SOME "
-"COUNTRIES\n"
-"\n"
-"To the extent permitted by law, MandrakeSoft S.A. or its distributors will, "
-"in no circumstances, be \n"
-"liable for any special, incidental, direct or indirect damages whatsoever "
-"(including without \n"
-"limitation damages for loss of business, interruption of business, financial "
-"loss, legal fees \n"
-"and penalties resulting from a court judgment, or any other consequential "
-"loss) arising out \n"
-"of the possession and use of software components or arising out of "
-"downloading software components \n"
-"from one of Mandrake Linux sites which are prohibited or restricted in some "
-"countries by local laws.\n"
-"This limited liability applies to, but is not restricted to, the strong "
-"cryptography components \n"
-"included in the Software Products.\n"
-"\n"
-"\n"
-"3. The GPL License and Related Licenses\n"
-"\n"
-"The Software Products consist of components created by different persons or "
-"entities. Most \n"
-"of these components are governed under the terms and conditions of the GNU "
-"General Public \n"
-"Licence, hereafter called \"GPL\", or of similar licenses. Most of these "
-"licenses allow you to use, \n"
-"duplicate, adapt or redistribute the components which they cover. Please "
-"read carefully the terms \n"
-"and conditions of the license agreement for each component before using any "
-"component. Any question \n"
-"on a component license should be addressed to the component author and not "
-"to MandrakeSoft.\n"
-"The programs developed by MandrakeSoft S.A. are governed by the GPL License. "
-"Documentation written \n"
-"by MandrakeSoft S.A. is governed by a specific license. Please refer to the "
-"documentation for \n"
-"further details.\n"
-"\n"
-"\n"
-"4. Intellectual Property Rights\n"
-"\n"
-"All rights to the components of the Software Products belong to their "
-"respective authors and are \n"
-"protected by intellectual property and copyright laws applicable to software "
-"programs.\n"
-"MandrakeSoft S.A. reserves its rights to modify or adapt the Software "
-"Products, as a whole or in \n"
-"parts, by all means and for all purposes.\n"
-"\"Mandrake\", \"Mandrake Linux\" and associated logos are trademarks of "
-"MandrakeSoft S.A. \n"
-"\n"
-"\n"
-"5. Governing Laws \n"
-"\n"
-"If any portion of this agreement is held void, illegal or inapplicable by a "
-"court judgment, this \n"
-"portion is excluded from this contract. You remain bound by the other "
-"applicable sections of the \n"
-"agreement.\n"
-"The terms and conditions of this License are governed by the Laws of "
-"France.\n"
-"All disputes on the terms of this license will preferably be settled out of "
-"court. As a last \n"
-"resort, the dispute will be referred to the appropriate Courts of Law of "
-"Paris - France.\n"
-"For any question on this document, please contact MandrakeSoft S.A. \n"
-msgstr ""
-"Cyflwyniad\n"
-"\n"
-"Bydd y system weithredu a'r cydrannau gwahanol sydd o fewn dosbarthiad "
-"Mandrake Linux yn\n"
-"cael eu galw yn \"Gynnyrch Meddalwedd\" o hyn ymlaen. Mae'r Cynnyrch "
-"Meddalwedd yn\n"
-"cynnwys, ond heb eu cyfyngu, i'r casgliad o raglenni , dulliau, rheolau a "
-"dogfennau mewn\n"
-"perthynas ā'r system weithredu a chydrannau gwahanol dosbarthiad Mandrake "
-"Linux.\n"
-"\n"
-"\n"
-"1. Cytundeb Trwyddedu\n"
-"\n"
-"Darllenwch y ddogfen hon yn ofalus. Mae'r ddogfen hon yn gytundeb trwyddedu "
-"rhyngoch\n"
-"chi ā MandrakeSoft S.A,. sy'n berthnasol i'r Cynnyrch Meddalwedd.\n"
-"\n"
-"Wrth osod, dyblygu neu ddefnyddio'r Cynnyrch Meddalwedd mewn unrhyw fodd, "
-"rydych yn\n"
-"amlwg yn derbyn ac yn llawn cytuno i gadw at delerau ac amodau'r Drwydded "
-"hon.\n"
-"Os ydych yn anghytuno ag unrhyw rhan o'r cytundeb, ni chewch ganiatād i "
-"osod, dyblygu\n"
-"neu ddefnyddio'r Cynnyrch Meddalwedd.\n"
-"Bydd unrhyw ymgais i osod, dyblygu neu ddefnyddio'r Cynnyrch Meddalwedd mewn "
-"modd\n"
-"nad yw'n cyd-fynd ā thelerau ac amodau'r Drwydded yn ddi-rym a bydd yn "
-"terfynu eich\n"
-"hawliau o dan y Drwydded hon. Ar ddiwedd y Drwydded, rhaid i chi "
-"ddinistrio'n syth pob\n"
-"copi o'r Cynnyrch Meddalwedd.\n"
-"\n"
-"\n"
-"2. Gwarant Gyfyngedig\n"
-"\n"
-"Mae'r Cynnyrch Meddalwedd a'r ddogfennaeth gysylltiedig yn cael eu darparu "
-"\"fel ag y maent\",\n"
-"heb ddim gwarant, hyd y mae'r gyfraith yn caniatįu.\n"
-"Ni fydd MandrakeSoft S.A. yn gyfrifol, o dan unrhyw amgylchiad, a chyhyd ag "
-"y bydd y gyfraith yn\n"
-"caniatįu, am unrhyw iawn o gwbl, arbennig, damweiniol, uniongyrchol neu "
-"anuniongyrchol (gan\n"
-"gynnwys heb gyfyngu ar iawndal am golli busnes, tarfu ar fusnes, colled "
-"ariannol, costau cyfreithiol,\n"
-"a chosb o ganlyniad i achos llys, neu unrhyw golled o ganlyniad) yn codi o'r "
-"defnydd neu'r anallu i\n"
-"ddefnyddio'r Cynnyrch Meddalwedd, hyd yn oed os yw MandrakeSoft wedi eu "
-"cynghori o'r posibilrwydd\n"
-"o'r fath iawn.\n"
-"\n"
-"CYFRIFOLDEB CYFYNGEDIG YN GYSYLLTIEDIG GYDA'R MEDDIANT NEU'R DEFNYDD O "
-"FEDDALWEDD\n"
-" GWAHARDDEDIG MEWN RHAI GWLEDYDD\n"
-"\n"
-"Ni fydd MandrakeSoft S.A. yn gyfrifol, o dan unrhyw amgylchiad, a chyhyd y "
-"bydd y gyfraith yn caniatįu,\n"
-"i fod yn atebol am unrhyw iawn o gwbl, arbennig, damweiniol, uniongyrchol "
-"neu anuniongyrchol (gan gynnwys\n"
-"heb gyfyngu ar iawndal am golli busnes, tarfu ar fusnes, colled ariannol, "
-"costau cyfreithiol, a chosb o ganlyniad\n"
-"i achos llys, neu unrhyw golled o ganlyniad) yn codi o lwytho i lawr "
-"cydrannau meddalwedd o un o safleoedd\n"
-" Mandrake Linux, sydd wedi eu gwahardd neu eu hatal mewn rhai gwledydd gan "
-"gyfreithiau lleol. Mae'r\n"
-"cyfrifoldeb cyfyngedig hwn yn perthyn i , ond heb ei gyfyngu i'r, cydrannau "
-"cryptograffiaeth cryf sy'n cael\n"
-"eu cynnwys o fewn y Cynnyrch Meddalwedd.\n"
-"3. Trwydded GPL a Thrwyddedau Cysylltiedig\n"
-"\n"
-"Mae'r Cynnyrch Meddalwedd yn cynnwys cydrannau sydd wedi eu creu gan "
-"bersonau a endidau gwahanol.\n"
-"Mae'r rhan fwyaf o'r cydrannau hyn yn cael eu llywodraethu gan dermau ac "
-"amodau Trwydded Gyhoeddus\n"
-"Cyffredinol (General Public Licence (GPL)), GNU, fydd yn cael ei gyfeirio "
-"ato o hyn ymlaen fel \"GPL\", neu\n"
-"drwyddedau cyffelyb.. Mae'r rhan fwyaf o'r trwyddedau'n caniatįu i chi "
-"ddefnyddio, dyblygu, addasu neu\n"
-" ailddosbarthu'r cydrannau maent yn eu cynnwys. Darllenwch delerau ac amodau "
-"trwydded pob cydran cyn\n"
-"eu defnyddio. Dylai pob cwestiwn am drwydded cydran gael ei ofyn i awdur y "
-"gydran ac nid i MandrakeSoft.\n"
-"Mae'r rhaglenni ddatblygwyd gan MandrakeSoft yn cael eu llywodraethu o dan "
-"Drwydded GLP. Mae'r dogfennau\n"
-" ysgrifennwyd gan MandrakeSoft S.A. yn cael eu llywodraethu gan drwydded "
-"benodol. Darllenwch y dogfennau\n"
-"am fwy o fanylion.\n"
-"\n"
-"4. Hawliau Eiddo Deallusol\n"
-"\n"
-"Mae pob hawl cydrannau'r Cynnyrch Meddalwedd yn perthyn i'w hawduron "
-"perthnasol ac wedi eu hamddiffyn\n"
-"gan gyfreithiau eiddo deallusol a hawlfraint sy'n berthnasol i raglenni "
-"meddalwedd. Mae MandrakeSoft yn cadw\n"
-"ei hawl i newid neu addasu ei Gynnyrch Meddalwedd, yn rhannol neu yn gyfan, "
-"drwy unrhyw ddull ac ar gyfer\n"
-"unrhyw bwrpas. Mae \"Mandrake\", \"Mandrake Linux\" a'r logos cysylltiedig "
-"yn nodau masnachol sy'n\n"
-"perthyn i MandrakeSoft S.A.\n"
-"\n"
-"5. Cyfreithiau Llywodraethol\n"
-"Os bydd unrhyw rhan o'r cytundeb hwn yn cael ei ddal yn ddi-rym, "
-"anghyfreithlon neu amherthnasol gan\n"
-"benderfyniad llys, bydd y rhan yma'n cael ei dynnu o'r cytundeb hwn. Byddwch "
-"yn parhau i fod yn rhwymedig\n"
-"i adrannau cymwys o'r cytundeb.\n"
-"Mae telerau ac amodau'r Drwydded hon yn cael eu llywodraethu gan Cyfreithiau "
-"Ffrainc. Mae'n ddymunol y\n"
-"bydd pob anghytundeb ar amodau'r drwydded yn cael eu datrys y tu allan i'r "
-"llys. Fel cam olaf, bydd yranghytundeb yn cael ei drosglwyddo i'r Llysoedd "
-"Barn, Paris - Ffrainc. Am unrhyw gwestiwn ynghylch yddogfen hon cysylltwch ā "
-"MandrakeSoft S.A. \n"
-
-#: ../../install_steps_interactive.pm_.c:205
-#: ../../install_steps_interactive.pm_.c:1045
-#: ../../standalone/keyboarddrake_.c:28
-msgid "Keyboard"
-msgstr "Allweddell"
-
-#: ../../install_steps_interactive.pm_.c:206
-msgid "Please choose your keyboard layout."
-msgstr "Dewiswch gynllun eich alweddell"
-
-#: ../../install_steps_interactive.pm_.c:207
-msgid "Here is the full list of keyboards available"
-msgstr "Dyma restr lawn o'r allweddellau ar gael"
-
-#: ../../install_steps_interactive.pm_.c:224
-msgid "Which installation class do you want?"
-msgstr "Pa ddosbarth o osodiad ydych chi ei eisiau?"
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Install/Update"
-msgstr "Gosod/Diweddaru"
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Is this an install or an update?"
-msgstr "Ydi hwn yn osodiad neu diweddariad?"
-
-#: ../../install_steps_interactive.pm_.c:235
-msgid "Recommended"
-msgstr "Argymhellwyd"
-
-#: ../../install_steps_interactive.pm_.c:238
-#: ../../install_steps_interactive.pm_.c:241
-msgid "Expert"
-msgstr "Arbennigwr"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Upgrade"
-msgstr "Diweddaru"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Upgrade packages only"
-msgstr "Diweddaru'r pecynnau'n unig"
-
-#: ../../install_steps_interactive.pm_.c:266
-msgid "Please choose the type of your mouse."
-msgstr "Dewiswch math eich llygoden"
-
-#: ../../install_steps_interactive.pm_.c:272 ../../standalone/mousedrake_.c:65
-msgid "Mouse Port"
-msgstr "Porth Llygoden"
-
-#: ../../install_steps_interactive.pm_.c:273 ../../standalone/mousedrake_.c:66
-msgid "Please choose on which serial port your mouse is connected to."
-msgstr "Dewiswch ba borth cyfresol mae eich llygoden wedi cysylltu iddi"
-
-#: ../../install_steps_interactive.pm_.c:281
-msgid "Buttons emulation"
-msgstr "Efelychiad botymau"
-
-#: ../../install_steps_interactive.pm_.c:283
-msgid "Button 2 Emulation"
-msgstr "Efelychiad Botwm 2"
-
-#: ../../install_steps_interactive.pm_.c:284
-msgid "Button 3 Emulation"
-msgstr "Efelychiad Botwm 3"
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "Configuring PCMCIA cards..."
-msgstr "Ffurfweddu cardiau PCMCIA..."
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "PCMCIA"
-msgstr "PCMCIA"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "Configuring IDE"
-msgstr "Ffurfweddu IDE"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "IDE"
-msgstr "IDE"
-
-#: ../../install_steps_interactive.pm_.c:327
-msgid "no available partitions"
-msgstr "dim rhaniadau ar gael"
-
-#: ../../install_steps_interactive.pm_.c:330
-msgid "Scanning partitions to find mount points"
-msgstr "Sganio rhaniadau i ganfod pwyntiau gosod"
-
-#: ../../install_steps_interactive.pm_.c:338
-msgid "Choose the mount points"
-msgstr "Dewiswch y pwyntiau gosod"
-
-#: ../../install_steps_interactive.pm_.c:357
-#, c-format
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I can try to go on blanking bad partitions (ALL DATA will be lost!).\n"
-"The other solution is to disallow DrakX to modify the partition table.\n"
-"(the error is %s)\n"
-"\n"
-"Do you agree to loose all the partitions?\n"
-msgstr ""
-"Nid wyf yn medru darllen eich tabl rhaniad, mae'n rhy lygredig. :(\n"
-"Mae modd i mi fynd ymlaen i ddiystyru rhaniadau gwael (Bydd yr\n"
-" HOLL DDATA'n cael ei golli!). Yr ateb arall yw peidio gadael i\n"
-"DrakX newid y tabl rhaniad. (y gwall yw %s)\n"
-"\n"
-"Ydych chi'n cytuno i golli'r holl raniadau?\n"
-
-#: ../../install_steps_interactive.pm_.c:370
-msgid ""
-"DiskDrake failed to read correctly the partition table.\n"
-"Continue at your own risk!"
-msgstr ""
-"Methodd DrakX a darllen y tabl rhaniad yn gywir.\n"
-"Mae'n beryglus parhau!"
-
-#: ../../install_steps_interactive.pm_.c:386
-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 ""
-"Nid oes lle rhydd ar gyfer yr ymlwythwr 1MB! Bydd y gosodiad yn parhau, ond "
-"i gychwyn y system bydd rhaid i chi greu rhaniad ymlwythwr yn DiskDrake"
-
-#: ../../install_steps_interactive.pm_.c:395
-msgid "No root partition found to perform an upgrade"
-msgstr "Ni chanfyddwyd rhaniad gwraidd i wneud diweddariad"
-
-#: ../../install_steps_interactive.pm_.c:396
-msgid "Root Partition"
-msgstr "Rhaniad Gwraidd"
-
-#: ../../install_steps_interactive.pm_.c:397
-msgid "What is the root partition (/) of your system?"
-msgstr "Beth yw'r rhaniad gwraidd (/) ar eich system?"
-
-#: ../../install_steps_interactive.pm_.c:411
-msgid "You need to reboot for the partition table modifications to take place"
-msgstr ""
-"Bydd angen i chi ail gychwyn cyn i'r newidiadau yn eich tabl rhaniad ddigwydd"
-
-#: ../../install_steps_interactive.pm_.c:435
-msgid "Choose the partitions you want to format"
-msgstr "Dewiswch y rhaniadau rydych am eu fformatio"
-
-#: ../../install_steps_interactive.pm_.c:436
-msgid "Check bad blocks?"
-msgstr "Gwirio blociau gwallus?"
-
-#: ../../install_steps_interactive.pm_.c:462
-msgid "Formatting partitions"
-msgstr "Yn fformatio rhaniadau"
-
-#: ../../install_steps_interactive.pm_.c:464
-#, c-format
-msgid "Creating and formatting file %s"
-msgstr "Creu a fformatio ffeil %s"
-
-#: ../../install_steps_interactive.pm_.c:467
-msgid "Not enough swap to fulfill installation, please add some"
-msgstr "Dim digon o le cyfnewid i gyflawni'r gosodiad, ychwanegwch rhagor"
-
-#: ../../install_steps_interactive.pm_.c:473
-msgid "Looking for available packages"
-msgstr "Chwilio am y pecynnau sydd ar gael"
-
-#: ../../install_steps_interactive.pm_.c:479
-msgid "Finding packages to upgrade"
-msgstr "Canfod pecynnau i'w uwchraddio"
-
-#: ../../install_steps_interactive.pm_.c:496
-#, c-format
-msgid ""
-"Your system has not enough space left for installation or upgrade (%d > %d)"
-msgstr ""
-"Nid oes gan eich system ddigon o le ar ōl ar gyfer gosodiad neu uwchraddiad "
-"(%d> %d)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Complete (%dMB)"
-msgstr "Cwblhawyd (%d MB)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Minimum (%dMB)"
-msgstr "Lleiafswm (%dMB)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Recommended (%dMB)"
-msgstr "Argymhellwyd (%dMB)"
-
-#: ../../install_steps_interactive.pm_.c:568
-msgid ""
-"Please choose load or save package selection on floppy.\n"
-"The format is the same as auto_install generated floppies."
-msgstr ""
-"Dewiswch llwytho neu ddewis cadw pecyn ar ddisg meddal.\n"
-"Mae'r fformat yr un ar ddisgiau meddal wedi eu cynhyrchu drwy auto_install."
-
-#: ../../install_steps_interactive.pm_.c:571
-msgid "Load from floppy"
-msgstr "Llwytho o o ddisg meddal"
-
-#: ../../install_steps_interactive.pm_.c:573
-msgid "Loading from floppy"
-msgstr "Llwytho o ddisg meddal"
-
-#: ../../install_steps_interactive.pm_.c:573
-msgid "Package selection"
-msgstr "Dewis pecynnau"
-
-#: ../../install_steps_interactive.pm_.c:578
-msgid "Insert a floppy containing package selection"
-msgstr "Rhowch ddisg meddal yn cynnwys dewis pecynnau yn y peiriant"
-
-#: ../../install_steps_interactive.pm_.c:590
-msgid "Save on floppy"
-msgstr "Cadw ar ddisg meddal"
-
-#: ../../install_steps_interactive.pm_.c:658
-msgid "Selected size is larger than available space"
-msgstr "Mae'r maint ddewiswyd yn fwy na'r lle ar gael"
-
-#: ../../install_steps_interactive.pm_.c:671
-msgid "Type of install"
-msgstr "Math o osodiad"
-
-#: ../../install_steps_interactive.pm_.c:672
-msgid ""
-"You haven't selected any group of packages.\n"
-"Please choose the minimal installation you want:"
-msgstr ""
-"Nid ydych wedi dewis unrhyw grwpiau o becynnau.\n"
-"Dewiswch y gosodiad lleiaf rydych ei eisiau"
-
-#: ../../install_steps_interactive.pm_.c:675
-msgid "With X"
-msgstr "Gyda X"
-
-#: ../../install_steps_interactive.pm_.c:677
-msgid "With basic documentation (recommended!)"
-msgstr "Gyda dogfennaethelfennol (argymhellir!)"
-
-#: ../../install_steps_interactive.pm_.c:678
-msgid "Truly minimal install (especially no urpmi)"
-msgstr "Gosodiad bychan iawn (yn arbennig dim urpmi)"
-
-#: ../../install_steps_interactive.pm_.c:762
-msgid ""
-"If you have all the CDs in the list below, click Ok.\n"
-"If you have none of those CDs, click Cancel.\n"
-"If only some CDs are missing, unselect them, then click Ok."
-msgstr ""
-"Os yw'r holl CDau sydd yn y rhestr gennych, cliciwch Iawn.\n"
-"Os nad oes gennych un ohonynt, Cliciwch Diddymu.\n"
-"Os mae dim ond rhai CDau sydd ar goll, yna cliciwch Iawn."
-
-#: ../../install_steps_interactive.pm_.c:767
-#, c-format
-msgid "Cd-Rom labeled \"%s\""
-msgstr "Cd-Rom wedi ei labelu \"%s\""
-
-#: ../../install_steps_interactive.pm_.c:787
-msgid "Preparing installation"
-msgstr "Paratoi'r gosodiad"
-
-#: ../../install_steps_interactive.pm_.c:796
-#, c-format
-msgid ""
-"Installing package %s\n"
-"%d%%"
-msgstr ""
-"Gosod pecyn %s\n"
-"%d%%"
-
-#: ../../install_steps_interactive.pm_.c:842
-msgid "Post-install configuration"
-msgstr "Ffurfweddiad ōl osod"
-
-#: ../../install_steps_interactive.pm_.c:848
-#, c-format
-msgid "Please insert the Boot floppy used in drive %s"
-msgstr "Mewnosodwch y disg meddal Cychwyn ddefnyddiwyd yn gyrrwr %s"
-
-#: ../../install_steps_interactive.pm_.c:854
-#, c-format
-msgid "Please insert the Update Modules floppy in drive %s"
-msgstr "Rhowch y disg meddal Diweddaru Modiwlau yng ngyrrwr %s"
-
-#: ../../install_steps_interactive.pm_.c:874
-msgid ""
-"You have now the possibility to download software aimed for encryption.\n"
-"\n"
-"WARNING:\n"
-"\n"
-"Due to different general requirements applicable to these software and "
-"imposed\n"
-"by various jurisdictions, customer and/or end user of theses software "
-"should\n"
-"ensure that the laws of his/their jurisdiction allow him/them to download, "
-"stock\n"
-"and/or use these software.\n"
-"\n"
-"In addition customer and/or end user shall particularly be aware to not "
-"infringe\n"
-"the laws of his/their jurisdiction. Should customer and/or end user not\n"
-"respect the provision of these applicable laws, he/they will incure serious\n"
-"sanctions.\n"
-"\n"
-"In no event shall Mandrakesoft nor its manufacturers and/or suppliers be "
-"liable\n"
-"for special, indirect or incidental damages whatsoever (including, but not\n"
-"limited to loss of profits, business interruption, loss of commercial data "
-"and\n"
-"other pecuniary losses, and eventual liabilities and indemnification to be "
-"paid\n"
-"pursuant to a court decision) arising out of use, possession, or the sole\n"
-"downloading of these software, to which customer and/or end user could\n"
-"eventually have access after having sign up the present agreement.\n"
-"\n"
-"\n"
-"For any queries relating to these agreement, please contact \n"
-"Mandrakesoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA"
-msgstr ""
-"Mae'n awr yn bosibl i chi lwytho meddalwedd i lawr ar gyfer amgryptio.\n"
-"\n"
-"RHYBUDD:\n"
-"\n"
-"Oherwydd gofynion cyffredinol amrywiol yn berthynol i'r meddalwedd hyn ac "
-"yn\n"
-" cael eu gosod gan amrywiol awdurdodau cyfreithiol, dylai cwsmeriaid a/neu\n"
-" ddefnyddwyr terfynol wneud yn siwr fod y cyfreithau yn eu hawdurdod "
-"cyfreithiol\n"
-" yn caniatįu iddynt lwytho i lawr, cadw a/neu ddefnyddio'r feddalwedd.\n"
-"\n"
-"Yn ogystal, dylai cwsmeriaid a/neu ddefnyddwyr terfynol fod yn arbennig o\n"
-" ymwybodol i beidio ā thorri cyfraith eu hawdurdod cyfreithiol. Petai "
-"defnyddwyr\n"
-" a/neu ddefnyddwyr terfynol yn peidio parchu darpariaeth y cyfreithiau\n"
-" gweithredadwy, yna byddant yn derbyn cosb ddifrifol.\n"
-"\n"
-"Ni fydd MandrakeSoft na'i gwneuthurwyr a/neu ddarparwyr, o dan unrhyw\n"
-" amod, fod yn gyfrifol am unrhyw ddifrod, arbennig, anuniongyrchol na\n"
-"damweiniol o gwbl (gan gynnwys, ond heb ei gyfyngu i golli elw, ymyrraeth "
-"ar\n"
-" fusnes, colli data masnachol na cholledion ariannol eraill, nag ymatebion\n"
-" terfynol a digollediad i'w dalu yn sgil penderfyniad llys) yn codi o "
-"ddefnydd,\n"
-" eiddo, neu'r unig lwytho i lawr y feddalwedd, i'r hyn y gall y cwsmer a/"
-"neu'r\n"
-" defnyddiwr terfynol gael mynediad iddo yn y pen draw wedi llofnodi'r "
-"cytundeb\n"
-" presennol.\n"
-"\n"
-"\n"
-"Am unrhyw ymholiadau yn berthnasol i'r cytundebau hyn, cysylltwch ā:\n"
-"Mandrakesoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA"
-
-#: ../../install_steps_interactive.pm_.c:912
-msgid ""
-"You have now the possibility to download updated packages that have\n"
-"been released after the distribution has been made available.\n"
-"\n"
-"You will get security fixes or bug fixes, but you need to have an\n"
-"Internet connection configured to proceed.\n"
-"\n"
-"Do you want to install the updates ?"
-msgstr ""
-"Mae'n bosibl i chi llwytho i lawr y pecynnau diweddaraf sydd wedi eu ryddhau "
-"ers i'r dosbaerthiad fod ar gael.\n"
-"\n"
-"Medrwch gael atgyweiriadau diogelwch a gwallau ond mae'n rhaid i\n"
-"chi fod wedi cysyllu ā'r Rhyngrwyd i barhau.\n"
-"\n"
-"Ydych chi am osod y diweddariadau?"
-
-#: ../../install_steps_interactive.pm_.c:926
-msgid "Contacting Mandrake Linux web site to get the list of available mirrors"
-msgstr ""
-"Cysylltu ā'safle Mandrake Linux i estyn rhestr o'r drychau sydd ar gael"
-
-#: ../../install_steps_interactive.pm_.c:931
-msgid "Choose a mirror from which to get the packages"
-msgstr "Dewiswch ddrych lle mae modd estyn y pecynnau"
-
-#: ../../install_steps_interactive.pm_.c:940
-msgid "Contacting the mirror to get the list of available packages"
-msgstr "Cysylltu ā'r drych i estyn y rhestr o becynnau sydd ar gael"
-
-#: ../../install_steps_interactive.pm_.c:967
-msgid "Which is your timezone?"
-msgstr "Pa un yw eich parth amser?"
-
-#: ../../install_steps_interactive.pm_.c:972
-msgid "Hardware clock set to GMT"
-msgstr "Cloc caledwedd wedi ei osod i GMT"
-
-#: ../../install_steps_interactive.pm_.c:973
-msgid "Automatic time synchronization (using NTP)"
-msgstr "Cydweddi amser awtomatig (defnyddio NTP)"
-
-#: ../../install_steps_interactive.pm_.c:980
-msgid "NTP Server"
-msgstr "Gweinydd NTP"
-
-#: ../../install_steps_interactive.pm_.c:1014
-#: ../../install_steps_interactive.pm_.c:1022
-msgid "Remote CUPS server"
-msgstr "Gwasanaethwr CUPS pell"
-
-#: ../../install_steps_interactive.pm_.c:1015
-msgid "No printer"
-msgstr "Nid oes argraffydd"
-
-#: ../../install_steps_interactive.pm_.c:1032
-msgid "Do you have an ISA sound card?"
-msgstr "A oes gennych gerdyn sain ISA?"
-
-#: ../../install_steps_interactive.pm_.c:1034
-msgid "Run \"sndconfig\" after installation to configure your sound card"
-msgstr "Rhedwch \"sndconfig\" wedi'r gosodiad i ffurfweddu'ch cerdyn sain"
-
-#: ../../install_steps_interactive.pm_.c:1036
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr "Heb ganfod cerdyn sain. Ceisiwch \"harddrake\" wedi'r gosodiad"
-
-#: ../../install_steps_interactive.pm_.c:1041 ../../steps.pm_.c:27
-msgid "Summary"
-msgstr "Crynodeb"
-
-#: ../../install_steps_interactive.pm_.c:1044
-msgid "Mouse"
-msgstr "Llygoden"
-
-#: ../../install_steps_interactive.pm_.c:1046
-msgid "Timezone"
-msgstr "Cylchfa amser"
-
-#: ../../install_steps_interactive.pm_.c:1047 ../../printerdrake.pm_.c:2276
-#: ../../printerdrake.pm_.c:2354
-msgid "Printer"
-msgstr "Argraffydd"
-
-#: ../../install_steps_interactive.pm_.c:1049
-msgid "ISDN card"
-msgstr "Cerdyn ISDN"
-
-#: ../../install_steps_interactive.pm_.c:1052
-#: ../../install_steps_interactive.pm_.c:1054
-msgid "Sound card"
-msgstr "Cerdyn sain"
-
-#: ../../install_steps_interactive.pm_.c:1056
-msgid "TV card"
-msgstr "Cerdyn Teledu"
-
-#: ../../install_steps_interactive.pm_.c:1094
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1122
-msgid "LDAP"
-msgstr "LDAP"
-
-#: ../../install_steps_interactive.pm_.c:1095
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1131
-msgid "NIS"
-msgstr "NIS"
-
-#: ../../install_steps_interactive.pm_.c:1096
-#: ../../install_steps_interactive.pm_.c:1118
-msgid "Local files"
-msgstr "Ffeiliau lleol"
-
-#: ../../install_steps_interactive.pm_.c:1105
-#: ../../install_steps_interactive.pm_.c:1106 ../../steps.pm_.c:24
-msgid "Set root password"
-msgstr "Gosod cyfrinair gwraidd"
-
-#: ../../install_steps_interactive.pm_.c:1107
-msgid "No password"
-msgstr "Dim cyfrinair"
-
-#: ../../install_steps_interactive.pm_.c:1112
-#, c-format
-msgid "This password is too simple (must be at least %d characters long)"
-msgstr "Mae'r cyfrinair yn rhy syml ( rhaid iddo fod o leiaf %d nod o hyd)"
-
-#: ../../install_steps_interactive.pm_.c:1118 ../../network/modem.pm_.c:49
-#: ../../standalone/draknet_.c:626 ../../standalone/logdrake_.c:172
-msgid "Authentication"
-msgstr "Dilysu"
-
-#: ../../install_steps_interactive.pm_.c:1126
-msgid "Authentication LDAP"
-msgstr "Dilysu LDAP"
-
-#: ../../install_steps_interactive.pm_.c:1127
-msgid "LDAP Base dn"
-msgstr "Sail dn LDAP"
-
-#: ../../install_steps_interactive.pm_.c:1128
-msgid "LDAP Server"
-msgstr "Gwasanaethwr LDAP"
-
-#: ../../install_steps_interactive.pm_.c:1134
-msgid "Authentication NIS"
-msgstr "Dilysu LDAP"
-
-#: ../../install_steps_interactive.pm_.c:1135
-msgid "NIS Domain"
-msgstr "Parth NIS"
-
-#: ../../install_steps_interactive.pm_.c:1136
-msgid "NIS Server"
-msgstr "Gwasanaethwr NIS"
-
-#: ../../install_steps_interactive.pm_.c:1171
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"SILO on your system, or another operating system removes SILO, or SILO "
-"doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures.\n"
-"\n"
-"If you want to create a bootdisk for your system, insert a floppy in the "
-"first\n"
-"drive and press \"Ok\"."
-msgstr ""
-"Mae disg cychwyn yn darparu ffordd o gychwyn eich system Linux heb ddibynnu\n"
-"ar lwythwr cychwyn arferol. Mae hyn yn ddefnyddiol os ydych am osod SILO ar\n"
-"eich system, neu mae system weithredu arall wedi tynny SILO, neu nad yw "
-"SILO'n\n"
-"gweithio gyda eich ffurfweddiad caledwedd chi. Mae modd defnyddio disg "
-"cychwyn\n"
-" unigol hefyd gyda delwedd achub Mandrake, gan ei gwneud yn llawer haws "
-"adfer o\n"
-" fethiannau systemig sylweddol\n"
-"\n"
-"Os hoffech greu disg cychwyn ar gyfer eich system, rhowch ddisg meddal yn y "
-"gyrrwr\n"
-" cyntaf a chliciwch \"Iawn\"."
-
-#: ../../install_steps_interactive.pm_.c:1187
-msgid "First floppy drive"
-msgstr "Gyrrwr disg meddal cyntaf"
-
-#: ../../install_steps_interactive.pm_.c:1188
-msgid "Second floppy drive"
-msgstr "Ail ddisg meddal"
-
-#: ../../install_steps_interactive.pm_.c:1189 ../../printerdrake.pm_.c:1848
-msgid "Skip"
-msgstr "Hepgor"
-
-#: ../../install_steps_interactive.pm_.c:1194
-#, c-format
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"LILO (or grub) on your system, or another operating system removes LILO, or "
-"LILO doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures. Would you like to create a bootdisk for your system?\n"
-"%s"
-msgstr ""
-"Mae'r disg cychwyn addasu yn cynnig ffordd i gychwyn eich system Linux heb\n"
-"ddibynnu ar eich cychwynnwr arferol. Mae hyn yn ddefnyddiol os nad ydych am\n"
-"osod LILO (neu grub) ar eich system, neu bod system weithredu arall yn "
-"dileu\n"
-"LILO, neu nad yw LILO'n gweithio gyda'ch ffurfweddiad caledwedd.\n"
-"Mae modd defnyddio disg cychwyn addasu hefyd gyda delwedd achub Mandrake,\n"
-"gan ei gwneud yn lawer haws adfer methiannau system sylweddol. Hoffech chi\n"
-"greu disg cychwyn ar gyfer eich system?\n"
-"%s"
-
-#: ../../install_steps_interactive.pm_.c:1200
-msgid ""
-"\n"
-"\n"
-"(WARNING! You're using XFS for your root partition,\n"
-"creating a bootdisk on a 1.44 Mb floppy will probably fail,\n"
-"because XFS needs a very large driver)."
-msgstr ""
-"\n"
-"\n"
-"(RHYBUDD! Rydych yn defnyddio XFS ar gyfer eich rhaniad gwraidd,\n"
-"bydd creu disg cychwyn ar ddisg meddal 1.44Mb'n debygol o fethu,\n"
-"oherwydd mae XFS yn gofyn am yrrwr mawr iawn)."
-
-#: ../../install_steps_interactive.pm_.c:1208
-msgid "Sorry, no floppy drive available"
-msgstr "Nid oes gyrrwr disg meddal ar gael"
-
-#: ../../install_steps_interactive.pm_.c:1212
-msgid "Choose the floppy drive you want to use to make the bootdisk"
-msgstr "Dewiswch y gyrrwr disg meddal i'w ddefnyddio i greu disg cychwyn"
-
-#: ../../install_steps_interactive.pm_.c:1216
-#, c-format
-msgid "Insert a floppy in %s"
-msgstr "Rhowch ddisg meddal yn %s"
-
-#: ../../install_steps_interactive.pm_.c:1219
-msgid "Creating bootdisk"
-msgstr "Creu disg cychwyn"
-
-#: ../../install_steps_interactive.pm_.c:1226
-msgid "Preparing bootloader"
-msgstr "Paratoi llwythwr cychwyn"
-
-#: ../../install_steps_interactive.pm_.c:1237
-msgid ""
-"You appear to have an OldWorld or Unknown\n"
-" machine, the yaboot bootloader will not work for you.\n"
-"The install will continue, but you'll\n"
-" need to use BootX to boot your machine"
-msgstr ""
-"Mae'n ymddangos fod gennychbeiriant OldWorld\n"
-"neu Anhysbys ac ni fydd llwythwr cychwyn yaboot\n"
-"yn gweithio ar eich cyfer\n"
-"Bydd y gosodiad yn parhau ond bydd\n"
-"rhaid defnyddio BootX i gychwyn\n"
-"eich peiriant."
-
-#: ../../install_steps_interactive.pm_.c:1243
-msgid "Do you want to use aboot?"
-msgstr "Ydych chi eisiau defnyddio aboot?"
-
-#: ../../install_steps_interactive.pm_.c:1246
-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?"
-
-#: ../../install_steps_interactive.pm_.c:1253
-msgid "Installing bootloader"
-msgstr "Gosod llwythwr cychwyn"
-
-#: ../../install_steps_interactive.pm_.c:1259
-msgid "Installation of bootloader failed. The following error occured:"
-msgstr "Methodd gosod llwythwr cychwyn. Digwyddodd y gwall canlynol:"
-
-#: ../../install_steps_interactive.pm_.c:1267
-#, c-format
-msgid ""
-"You may need to change your Open Firmware boot-device to\n"
-" enable the bootloader. If you don't 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\n"
-"At your next boot you should see the bootloader prompt."
-msgstr ""
-"Efallai bydd angen i chi newid eich dyfais cychwyn Open Firmware\n"
-"i alluogi'r llwythwr cychwyn. Os nad ydych yn gweld anogwr y llwythwr\n"
-"cychwyn wrth ail gychwyn, gwasgwch Command-Option-O-F wrth ail\n"
-"gychwyn a theipiwch: setenv boot-device %s,\\\\:tbxi\n"
-"\n"
-" Yna teipiwch: shut-down\n"
-"Wrth gychwyn eto dylech weld anogwr y llwythwr cychwyn."
-
-#: ../../install_steps_interactive.pm_.c:1311
-#: ../../standalone/drakautoinst_.c:81
-#, c-format
-msgid "Insert a blank floppy in drive %s"
-msgstr "Rhowch ddisg meddal yng ngyrrwr %s"
-
-#: ../../install_steps_interactive.pm_.c:1315
-#: ../../standalone/drakautoinst_.c:83
-msgid "Creating auto install floppy"
-msgstr "Creu disg meddal awto gosod"
-
-#: ../../install_steps_interactive.pm_.c:1326
-msgid ""
-"Some steps are not completed.\n"
-"\n"
-"Do you really want to quit now?"
-msgstr ""
-"Nid yw rhai camau wedi eu cwblhau.\n"
-"\n"
-"Ydych chi wir eisiau gorffen?"
-
-#: ../../install_steps_interactive.pm_.c:1337
-msgid ""
-"Congratulations, installation is complete.\n"
-"Remove the boot media and press return to reboot.\n"
-"\n"
-"\n"
-"For information on fixes which are available for this release of Mandrake "
-"Linux,\n"
-"consult the Errata available from:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/82errata.php3\n"
-"\n"
-"\n"
-"Information on configuring your system is available in the post\n"
-"install chapter of the Official Mandrake Linux User's Guide."
-msgstr ""
-"Llongyfarchiadau, mae'r gosodiad wedi ei gwblhau.\n"
-"Tynnwch y cyfrwng cychwyn a gwasgu Return i ail gychwyn.\n"
-"\n"
-"\n"
-"Am wybodaeth am gywiriadau sydd ar gael ar gyfer y rhyddhad hwn o Mandrake\n"
-"Linux, cysylltwch a'r atodiad, sydd i'w gael yn:\n"
-"\n"
-"\n"
-"http://www.mandrakelinux.com/en/82errata.php3\n"
-"\n"
-"\n"
-"Mae gwybodaeth ar ffurfweddu eich system ar gael ym mhenawdau ōl osod\n"
-"yr Official Mandrake Linux User's Guide."
-
-#: ../../install_steps_interactive.pm_.c:1354
-msgid "Generate auto install floppy"
-msgstr "Creu disg meddal awto gosod"
-
-#: ../../install_steps_interactive.pm_.c:1356
-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 drosod 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"
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Automated"
-msgstr "Awtomeiddwyd"
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Replay"
-msgstr "Ail chwarae"
-
-#: ../../install_steps_interactive.pm_.c:1364
-msgid "Save packages selection"
-msgstr "Cadw'r dewis becynnau"
-
-#: ../../install_steps_newt.pm_.c:22
-#, c-format
-msgid "Mandrake Linux Installation %s"
-msgstr "Gosodiad %s Mandraks Linux"
-
-#: ../../install_steps_newt.pm_.c:34
-msgid ""
-" <Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen "
-msgstr ""
-" <Tab>/<Alt-Tab> rhwng elfennau | <Space> yn dewis | <F12> y sgrin nesaf "
-
-#: ../../interactive.pm_.c:87
-msgid "kdesu missing"
-msgstr "kdesu ar goll"
-
-#: ../../interactive.pm_.c:89 ../../interactive.pm_.c:100
-msgid "consolehelper missing"
-msgstr "consolehelper ar goll"
-
-#: ../../interactive.pm_.c:152
-msgid "Choose a file"
-msgstr "Dewis ffeil"
-
-#: ../../interactive.pm_.c:314
-msgid "Advanced"
-msgstr "Uwch"
-
-#: ../../interactive.pm_.c:315
-msgid "Basic"
-msgstr "Elfennol"
-
-#: ../../interactive.pm_.c:386
-msgid "Please wait"
-msgstr "Arhoswch"
-
-#: ../../interactive_gtk.pm_.c:605 ../../services.pm_.c:222
-msgid "Info"
-msgstr "Gwybodaeth"
-
-#: ../../interactive_gtk.pm_.c:715
-msgid "Expand Tree"
-msgstr "Estyn y goeden"
-
-#: ../../interactive_gtk.pm_.c:716
-msgid "Collapse Tree"
-msgstr "Cau'r goeden"
-
-#: ../../interactive_gtk.pm_.c:717
-msgid "Toggle between flat and group sorted"
-msgstr "Newid rhwng gwastad a'r grwp wedi ei ddidoli"
-
-#: ../../interactive_stdio.pm_.c:29 ../../interactive_stdio.pm_.c:147
-msgid "Bad choice, try again\n"
-msgstr "Dewis gwael, ceisiwch eto\n"
-
-#: ../../interactive_stdio.pm_.c:30 ../../interactive_stdio.pm_.c:148
-#, c-format
-msgid "Your choice? (default %s) "
-msgstr "Eich dewis? (rhagosodedig %s)"
-
-#: ../../interactive_stdio.pm_.c:52
-#, c-format
-msgid ""
-"Entries you'll have to fill:\n"
-"%s"
-msgstr ""
-"Gwybodaeth i'w gyflawyno:\n"
-"%s"
-
-#: ../../interactive_stdio.pm_.c:68
-#, c-format
-msgid "Your choice? (0/1, default `%s') "
-msgstr "Eich dewis? (0/1, rhagosodedig %s)"
-
-#: ../../interactive_stdio.pm_.c:93
-#, c-format
-msgid "Button `%s': %s"
-msgstr "Botwm '%s'.%s"
-
-#: ../../interactive_stdio.pm_.c:94
-msgid "Do you want to click on this button? "
-msgstr "Ydych chi eisiau clicio ar y botwm hwn?"
-
-#: ../../interactive_stdio.pm_.c:103
-#, c-format
-msgid "Your choice? (default `%s'%s) "
-msgstr "Eich dewis? (rhagosodedig `%s'%s) "
-
-#: ../../interactive_stdio.pm_.c:121
-#, c-format
-msgid "=> There are many things to choose from (%s).\n"
-msgstr "=> Mae yna lawer i ddewis o (%s).\n"
-
-#: ../../interactive_stdio.pm_.c:124
-msgid ""
-"Please choose the first number of the 10-range you wish to edit,\n"
-"or just hit Enter to proceed.\n"
-"Your choice? "
-msgstr ""
-"Dewiswch y rhif cyntaf o'r amrediad 10 rydych am ei olygu,\n"
-"neu wasgwch Enter i barhau.\n"
-"Eich dewis?"
-
-#: ../../interactive_stdio.pm_.c:137
-#, c-format
-msgid ""
-"=> Notice, a label changed:\n"
-"%s"
-msgstr ""
-"=>Hysbysiad, mae label wedi newid:\n"
-"%s"
-
-#: ../../interactive_stdio.pm_.c:144
-msgid "Re-submit"
-msgstr "Ail-gyflwyno"
-
-#: ../../keyboard.pm_.c:174 ../../keyboard.pm_.c:205
-msgid "Czech (QWERTZ)"
-msgstr "Tsiec (QWERTY)"
-
-#: ../../keyboard.pm_.c:175 ../../keyboard.pm_.c:207
-msgid "German"
-msgstr "Almaeneg"
-
-#: ../../keyboard.pm_.c:176
-msgid "Dvorak"
-msgstr "Dvorak"
-
-#: ../../keyboard.pm_.c:177 ../../keyboard.pm_.c:214
-msgid "Spanish"
-msgstr "Spaenaidd"
-
-#: ../../keyboard.pm_.c:178 ../../keyboard.pm_.c:215
-msgid "Finnish"
-msgstr "Ffinaidd"
-
-#: ../../keyboard.pm_.c:179 ../../keyboard.pm_.c:216
-msgid "French"
-msgstr "Ffrengig"
-
-#: ../../keyboard.pm_.c:180 ../../keyboard.pm_.c:241
-msgid "Norwegian"
-msgstr "Norwyaidd"
-
-#: ../../keyboard.pm_.c:181
-msgid "Polish"
-msgstr "Pwylaidd"
-
-#: ../../keyboard.pm_.c:182 ../../keyboard.pm_.c:249
-msgid "Russian"
-msgstr "Rwsiaidd"
-
-#: ../../keyboard.pm_.c:184 ../../keyboard.pm_.c:251
-msgid "Swedish"
-msgstr "Swedaidd"
-
-#: ../../keyboard.pm_.c:185 ../../keyboard.pm_.c:266
-msgid "UK keyboard"
-msgstr "Bysellfwrdd DG"
-
-#: ../../keyboard.pm_.c:186 ../../keyboard.pm_.c:267
-msgid "US keyboard"
-msgstr "Bysellfwrdd UDA"
-
-#: ../../keyboard.pm_.c:188
-msgid "Albanian"
-msgstr "Albaniaidd"
-
-#: ../../keyboard.pm_.c:189
-msgid "Armenian (old)"
-msgstr "Armenaidd (hen)"
-
-#: ../../keyboard.pm_.c:190
-msgid "Armenian (typewriter)"
-msgstr "Armenaidd (teipiadur)"
-
-#: ../../keyboard.pm_.c:191
-msgid "Armenian (phonetic)"
-msgstr "Armenaidd (ffonetig)"
-
-#: ../../keyboard.pm_.c:196
-msgid "Azerbaidjani (latin)"
-msgstr "Azerbaidjan (lladin)"
-
-#: ../../keyboard.pm_.c:198
-msgid "Belgian"
-msgstr "Belgaidd"
-
-#: ../../keyboard.pm_.c:199
-msgid "Bulgarian (phonetic)"
-msgstr "Bwlgaraidd (ffonetig)"
-
-#: ../../keyboard.pm_.c:200
-msgid "Bulgarian (BDS)"
-msgstr "Bwlgaraidd (BDS)"
-
-#: ../../keyboard.pm_.c:201
-msgid "Brazilian (ABNT-2)"
-msgstr "Brasilaidd (ABNT-2)"
-
-#: ../../keyboard.pm_.c:202
-msgid "Belarusian"
-msgstr "Belarusaidd"
-
-#: ../../keyboard.pm_.c:203
-msgid "Swiss (German layout)"
-msgstr "Swisaidd (gosodiad Almaenig)"
-
-#: ../../keyboard.pm_.c:204
-msgid "Swiss (French layout)"
-msgstr "Swisaidd (gosodiad Ffrengig)"
-
-#: ../../keyboard.pm_.c:206
-msgid "Czech (QWERTY)"
-msgstr "Tsiec (QWERTY)"
-
-#: ../../keyboard.pm_.c:208
-msgid "German (no dead keys)"
-msgstr "Almaenaidd (dim bysellau marw)"
-
-#: ../../keyboard.pm_.c:209
-msgid "Danish"
-msgstr "Danaidd"
-
-#: ../../keyboard.pm_.c:210
-msgid "Dvorak (US)"
-msgstr "Dvorak (UDA)"
-
-#: ../../keyboard.pm_.c:211
-msgid "Dvorak (Norwegian)"
-msgstr "Dvorak (Norwyaidd)"
-
-#: ../../keyboard.pm_.c:212
-msgid "Dvorak (Swedish)"
-msgstr "Dvorak (Swedaidd)"
-
-#: ../../keyboard.pm_.c:213
-msgid "Estonian"
-msgstr "Estonaidd"
-
-#: ../../keyboard.pm_.c:217
-msgid "Georgian (\"Russian\" layout)"
-msgstr "Georgaidd (gosodiad \"Rwsiaidd\")"
-
-#: ../../keyboard.pm_.c:218
-msgid "Georgian (\"Latin\" layout)"
-msgstr "Georgaidd (gosodiad \"Lladinaidd\")"
-
-#: ../../keyboard.pm_.c:219
-msgid "Greek"
-msgstr "Groegaidd"
-
-#: ../../keyboard.pm_.c:220
-msgid "Hungarian"
-msgstr "Hwngaraidd"
-
-#: ../../keyboard.pm_.c:221
-msgid "Croatian"
-msgstr "Croataidd"
-
-#: ../../keyboard.pm_.c:222
-msgid "Israeli"
-msgstr "Israelaidd"
-
-#: ../../keyboard.pm_.c:223
-msgid "Israeli (Phonetic)"
-msgstr "Israelaidd (Ffonetig)"
-
-#: ../../keyboard.pm_.c:224
-msgid "Iranian"
-msgstr "Iranaidd"
-
-#: ../../keyboard.pm_.c:225
-msgid "Icelandic"
-msgstr "Eislandaidd"
-
-#: ../../keyboard.pm_.c:226
-msgid "Italian"
-msgstr "Eidalaidd"
-
-#: ../../keyboard.pm_.c:228
-msgid "Japanese 106 keys"
-msgstr "Siapaėaidd 106 bysell"
-
-#: ../../keyboard.pm_.c:231
-msgid "Korean keyboard"
-msgstr "Bysellfwrdd Coreaidd"
-
-#: ../../keyboard.pm_.c:232
-msgid "Latin American"
-msgstr "Lladin America"
-
-#: ../../keyboard.pm_.c:233
-msgid "Lithuanian AZERTY (old)"
-msgstr "Lithuenaidd AZERTY (hen)"
-
-#: ../../keyboard.pm_.c:235
-msgid "Lithuanian AZERTY (new)"
-msgstr "Lithuenaidd AZERTY (newydd)"
-
-#: ../../keyboard.pm_.c:236
-msgid "Lithuanian \"number row\" QWERTY"
-msgstr "Lithuenaidd \"rhes rhif\" QWERTY"
-
-#: ../../keyboard.pm_.c:237
-msgid "Lithuanian \"phonetic\" QWERTY"
-msgstr "Lithuenaidd \"ffonetig\" QWERTY"
-
-#: ../../keyboard.pm_.c:238
-msgid "Latvian"
-msgstr "Latfiaidd"
-
-#: ../../keyboard.pm_.c:239
-msgid "Macedonian"
-msgstr "Macedonaidd"
-
-#: ../../keyboard.pm_.c:240
-msgid "Dutch"
-msgstr "Isalmaenaidd"
-
-#: ../../keyboard.pm_.c:242
-msgid "Polish (qwerty layout)"
-msgstr "Pwylaidd (gosodiad qwerty)"
-
-#: ../../keyboard.pm_.c:243
-msgid "Polish (qwertz layout)"
-msgstr "Pwylaidd (gosodiad qwerty)"
-
-#: ../../keyboard.pm_.c:244
-msgid "Portuguese"
-msgstr "Portiwgalaidd"
-
-#: ../../keyboard.pm_.c:245
-msgid "Canadian (Quebec)"
-msgstr "Canada (Quebec)"
-
-#: ../../keyboard.pm_.c:247
-msgid "Romanian (qwertz)"
-msgstr "Romanaidd (qwertz)"
-
-#: ../../keyboard.pm_.c:248
-msgid "Romanian (qwerty)"
-msgstr "Romanaidd (qwerty)"
-
-#: ../../keyboard.pm_.c:250
-msgid "Russian (Yawerty)"
-msgstr "Rwsiaidd (Yawerty)"
-
-#: ../../keyboard.pm_.c:252
-msgid "Slovenian"
-msgstr "Slfenaidd"
-
-#: ../../keyboard.pm_.c:253
-msgid "Slovakian (QWERTZ)"
-msgstr "Slofacaidd (QWERTZ)"
-
-#: ../../keyboard.pm_.c:254
-msgid "Slovakian (QWERTY)"
-msgstr "Slovacaidd (QWERTY)"
-
-#: ../../keyboard.pm_.c:256
-msgid "Serbian (cyrillic)"
-msgstr "Serbaidd (cyrilig)"
-
-#: ../../keyboard.pm_.c:258
-msgid "Tamil"
-msgstr "Tamil"
-
-#: ../../keyboard.pm_.c:259
-msgid "Thai keyboard"
-msgstr "Bysellfwrdd Thai"
-
-#: ../../keyboard.pm_.c:261
-msgid "Tajik keyboard"
-msgstr "Bysellfwrdd Tajig"
-
-#: ../../keyboard.pm_.c:262
-msgid "Turkish (traditional \"F\" model)"
-msgstr "Twrcaidd (model traddodiadol \"F\")"
-
-#: ../../keyboard.pm_.c:263
-msgid "Turkish (modern \"Q\" model)"
-msgstr "Twrcaidd (model modern \"Q\")"
-
-#: ../../keyboard.pm_.c:265
-msgid "Ukrainian"
-msgstr "Wcranaidd"
-
-#: ../../keyboard.pm_.c:268
-msgid "US keyboard (international)"
-msgstr "Bysellfwrdd UDA (rhyngwladol)"
-
-#: ../../keyboard.pm_.c:269
-msgid "Vietnamese \"numeric row\" QWERTY"
-msgstr "Fietnamėaidd \"rhes rhifol\" QWERTY"
-
-#: ../../keyboard.pm_.c:270
-msgid "Yugoslavian (latin)"
-msgstr "Iwgoslafaidd (lladin)"
-
-#: ../../keyboard.pm_.c:278
-msgid "Right Alt key"
-msgstr "Bysell Alt dde"
-
-#: ../../keyboard.pm_.c:279
-msgid "Both Shift keys simultaneously"
-msgstr "Y ddwy fysell Shift gyda'i gilydd"
-
-#: ../../keyboard.pm_.c:280
-msgid "Control and Shift keys simultaneously"
-msgstr "Bysellau Control a Shift gyda'i gilydd"
-
-#: ../../keyboard.pm_.c:281
-msgid "CapsLock key"
-msgstr "Bysell CapsLock"
-
-#: ../../keyboard.pm_.c:282
-msgid "Ctrl and Alt keys simultaneously"
-msgstr "Bysellau Ctrl ac Alt gyda'i gilydd"
-
-#: ../../keyboard.pm_.c:283
-msgid "Alt and Shift keys simultaneously"
-msgstr "Bysellau Alt a Shift gyda'i gilydd"
-
-#: ../../keyboard.pm_.c:284
-msgid "\"Menu\" key"
-msgstr "Bysell \"Dewislen\""
-
-#: ../../keyboard.pm_.c:285
-msgid "Left \"Windows\" key"
-msgstr "Bysell \"Windows\" chwith"
-
-#: ../../keyboard.pm_.c:286
-msgid "Right \"Windows\" key"
-msgstr "Bysell \"Windows\" de"
-
-#: ../../loopback.pm_.c:32
-#, c-format
-msgid "Circular mounts %s\n"
-msgstr "Gosodiadau cylch %s\n"
-
-#: ../../lvm.pm_.c:88
-msgid "Remove the logical volumes first\n"
-msgstr "Tynnu'r cyfrolau rhesymegol yn gyntaf\n"
-
-#: ../../modules.pm_.c:826
-msgid ""
-"PCMCIA support no longer exist for 2.2 kernels. Please use a 2.4 kernel."
-msgstr ""
-"Nid oes cefnodgaeth PCIMA yn bodoli bellach ar gyfer cnewyllyn 2.2. "
-"Defnyddiwch cnewyllyn 2.4"
-
-#: ../../mouse.pm_.c:25
-msgid "Sun - Mouse"
-msgstr "Llygoden - Sun"
-
-#: ../../mouse.pm_.c:32
-msgid "Logitech MouseMan+"
-msgstr "Logitech MouseMan+"
-
-#: ../../mouse.pm_.c:33
-msgid "Generic PS2 Wheel Mouse"
-msgstr "Llygoden Olwyn PS Generig"
-
-#: ../../mouse.pm_.c:34
-msgid "GlidePoint"
-msgstr "GlidePoint"
-
-#: ../../mouse.pm_.c:36 ../../mouse.pm_.c:63
-msgid "Kensington Thinking Mouse"
-msgstr "Kensington Thinking Mouse"
-
-#: ../../mouse.pm_.c:37 ../../mouse.pm_.c:59
-msgid "Genius NetMouse"
-msgstr "Genius NetMouse"
-
-#: ../../mouse.pm_.c:38
-msgid "Genius NetScroll"
-msgstr "Genius NetScroll"
-
-#: ../../mouse.pm_.c:43 ../../mouse.pm_.c:68
-msgid "1 button"
-msgstr "1 botwm"
-
-#: ../../mouse.pm_.c:44 ../../mouse.pm_.c:51
-msgid "Generic 2 Button Mouse"
-msgstr "Llygoden 2 Fotwm Generig"
-
-#: ../../mouse.pm_.c:45
-msgid "Generic"
-msgstr "Generig"
-
-#: ../../mouse.pm_.c:46
-msgid "Wheel"
-msgstr "Olwyn"
-
-#: ../../mouse.pm_.c:49
-msgid "serial"
-msgstr "cyfresol"
-
-#: ../../mouse.pm_.c:52
-msgid "Generic 3 Button Mouse"
-msgstr "Llygoden 3 Botwm Generig"
-
-#: ../../mouse.pm_.c:53
-msgid "Microsoft IntelliMouse"
-msgstr "Microsoft IntelliMouse"
-
-#: ../../mouse.pm_.c:54
-msgid "Logitech MouseMan"
-msgstr "Logitech MouseMan"
-
-#: ../../mouse.pm_.c:55
-msgid "Mouse Systems"
-msgstr "Systemau Llygoden"
-
-#: ../../mouse.pm_.c:57
-msgid "Logitech CC Series"
-msgstr "Logitech CC Series"
-
-#: ../../mouse.pm_.c:58
-msgid "Logitech MouseMan+/FirstMouse+"
-msgstr "Logitech MouseMan+/FirstMouse+"
-
-#: ../../mouse.pm_.c:60
-msgid "MM Series"
-msgstr "MM Series"
-
-#: ../../mouse.pm_.c:61
-msgid "MM HitTablet"
-msgstr "MM HitTablet"
-
-#: ../../mouse.pm_.c:62
-msgid "Logitech Mouse (serial, old C7 type)"
-msgstr "Llygoden Logitech (cyfresol, hen fath C7)"
-
-#: ../../mouse.pm_.c:66
-msgid "busmouse"
-msgstr "busmouse"
-
-#: ../../mouse.pm_.c:69
-msgid "2 buttons"
-msgstr "2 fotwm"
-
-#: ../../mouse.pm_.c:70
-msgid "3 buttons"
-msgstr "3 botwm"
-
-#: ../../mouse.pm_.c:73
-msgid "none"
-msgstr "dim"
-
-#: ../../mouse.pm_.c:75
-msgid "No mouse"
-msgstr "Dim llygoden"
-
-#: ../../mouse.pm_.c:499
-msgid "Please test the mouse"
-msgstr "Profwch y llygoden"
-
-#: ../../mouse.pm_.c:500
-msgid "To activate the mouse,"
-msgstr "I ysgogi'r llygoden,"
-
-#: ../../mouse.pm_.c:501
-msgid "MOVE YOUR WHEEL!"
-msgstr "SYMUDWCH YR OLWYN!"
-
-#: ../../my_gtk.pm_.c:651
-msgid "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"
-msgstr "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"
-
-#: ../../my_gtk.pm_.c:686
-msgid "Finish"
-msgstr "Gorffen"
-
-#: ../../my_gtk.pm_.c:686 ../../printerdrake.pm_.c:1588
-msgid "Next ->"
-msgstr "Nesaf ->"
-
-#: ../../my_gtk.pm_.c:687 ../../printerdrake.pm_.c:1586
-msgid "<- Previous"
-msgstr "<- Cynt"
-
-#: ../../my_gtk.pm_.c:1019
-msgid "Is this correct?"
-msgstr "Ydi hyn yn gywir?"
-
-#: ../../network/adsl.pm_.c:19 ../../network/ethernet.pm_.c:36
-msgid "Connect to the Internet"
-msgstr "Cysylltu ā'r We"
-
-#: ../../network/adsl.pm_.c:20
-msgid ""
-"The most common way to connect with adsl is pppoe.\n"
-"Some connections use pptp, a few ones use dhcp.\n"
-"If you don't know, choose 'use pppoe'"
-msgstr ""
-"Y ffordd mwyaf cyffredin i gysylltu ā adsl yw pppoe\n"
-"Mae rhai cysylltiadau'n defnyddio pptp, a rhai dhcp.\n"
-"Os nad ydych yn gwybod pa un, dewiswch pppoe."
-
-#: ../../network/adsl.pm_.c:22
-msgid "Alcatel speedtouch usb"
-msgstr "usb Alcatel Speedtouch"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use dhcp"
-msgstr "defnyddiwch dhccp"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pppoe"
-msgstr "defnyddiwch pppoe"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pptp"
-msgstr "defnyddiwch pptp"
-
-#: ../../network/ethernet.pm_.c:37
-msgid ""
-"Which dhcp client do you want to use?\n"
-"Default is dhcpcd"
-msgstr ""
-"Pa gleient dhcp ydych chi eisiau ei ddefnyddio?\n"
-"dhcpcd yw'r rhagosodedig"
-
-#: ../../network/ethernet.pm_.c:88
-msgid ""
-"No ethernet network adapter has been detected on your system.\n"
-"I cannot set up this connection type."
-msgstr ""
-"Nid oes addasydd rhwydwaith ethernet wedi ei ganfod ar eich system.\n"
-"Nid wyf yn medru gosod y math yma o gysylltiad."
-
-#: ../../network/ethernet.pm_.c:92 ../../standalone/drakgw_.c:252
-msgid "Choose the network interface"
-msgstr "Dewiswch rhag wyneb y rhwydwaith"
-
-#: ../../network/ethernet.pm_.c:93
-msgid ""
-"Please choose which network adapter you want to use to connect to Internet"
-msgstr ""
-"Dewiswch pa addaswr rhwydwaith hoffech ei ddefnyddio i gysylltu ā'r Rhyngrwyd"
-
-#: ../../network/ethernet.pm_.c:178
-msgid "no network card found"
-msgstr "heb ganfod cerdyn rhwydwaith"
-
-#: ../../network/ethernet.pm_.c:202 ../../network/network.pm_.c:360
-msgid "Configuring network"
-msgstr "Ffurfweddu'r rhwydwaith"
-
-#: ../../network/ethernet.pm_.c:203
-msgid ""
-"Please enter your host name if you know it.\n"
-"Some DHCP servers require the hostname to work.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''."
-msgstr ""
-"Rhowch eich enw gwesteiwr os ydych yn gwybod\n"
-"beth ydyw Mae rhai gwasanaethwyr angen gwybod\n"
-"yr enw gwesteiwr i weithio. Dylai eich enw gwesteiwr\n"
-"fod yn enw cymhwysol llawn megis \"fymlwch.fynesg.fyco.com\""
-
-#: ../../network/ethernet.pm_.c:207 ../../network/network.pm_.c:365
-msgid "Host name"
-msgstr "Enw gwesteiwr"
-
-#: ../../network/isdn.pm_.c:21 ../../network/isdn.pm_.c:44
-#: ../../network/netconnect.pm_.c:95 ../../network/netconnect.pm_.c:109
-#: ../../network/netconnect.pm_.c:164 ../../network/netconnect.pm_.c:175
-#: ../../network/netconnect.pm_.c:202 ../../network/netconnect.pm_.c:225
-#: ../../network/netconnect.pm_.c:233
-msgid "Network Configuration Wizard"
-msgstr "Dewin Ffurfweddu'r Rhwydwaith"
-
-#: ../../network/isdn.pm_.c:22
-msgid "External ISDN modem"
-msgstr "Modem IDSN Allanol"
-
-#: ../../network/isdn.pm_.c:22
-msgid "Internal ISDN card"
-msgstr "Cerdyn ISDN mewnol"
-
-#: ../../network/isdn.pm_.c:22
-msgid "What kind is your ISDN connection?"
-msgstr "Pa fath o gysylltiad IDSN?"
-
-#: ../../network/isdn.pm_.c:45
-msgid ""
-"Which ISDN configuration do you prefer?\n"
-"\n"
-"* The Old configuration uses isdn4net. It contains powerfull\n"
-" tools, but is tricky to configure, and not standard.\n"
-"\n"
-"* The New configuration is easier to understand, more\n"
-" standard, but with less tools.\n"
-"\n"
-"We recommand the light configuration.\n"
-msgstr ""
-"Pa ffurfweddiad IDSN sy'n well gennych?\n"
-"\n"
-"* Mae'r Hen ffurfweddiad yn defnyddio isdn4net. Mae'n\n"
-" cynnwys offer pwerus ond mae'n anodd ei ffurfweddi ac nid\n"
-"yw'n safonol. \n"
-"\n"
-" *Mae'r ffurfweddiad Newydd yn haws i'w ddeall, yn fwy safonol\n"
-" ond mae ganddo llai o offer.\n"
-"\n"
-"Rydym yn argymell y ffurfweddiad ysgafn.\n"
-
-#: ../../network/isdn.pm_.c:54
-msgid "New configuration (isdn-light)"
-msgstr "Ffurfweddiad newydd (isdn-light)"
-
-#: ../../network/isdn.pm_.c:54
-msgid "Old configuration (isdn4net)"
-msgstr "Hen ffurfweddiad (isdn4net)"
-
-#: ../../network/isdn.pm_.c:170 ../../network/isdn.pm_.c:188
-#: ../../network/isdn.pm_.c:198 ../../network/isdn.pm_.c:205
-#: ../../network/isdn.pm_.c:215
-msgid "ISDN Configuration"
-msgstr "Ffurfweddiad ISDN"
-
-#: ../../network/isdn.pm_.c:170
-msgid ""
-"Select your provider.\n"
-" If it's not in the list, choose Unlisted"
-msgstr ""
-"Dewiswch eich darparwr.\n"
-"Os nad yw ar eich rhestr, dewiswch Heb ei Restri"
-
-#: ../../network/isdn.pm_.c:183
-msgid "Europe protocol"
-msgstr "Protocol Ewrop"
-
-#: ../../network/isdn.pm_.c:183
-msgid "Europe protocol (EDSS1)"
-msgstr "Protocol Ewrop (EDSSI)"
-
-#: ../../network/isdn.pm_.c:185
-msgid "Protocol for the rest of the world"
-msgstr "Protocol ar gyfer gweddill y byd"
-
-#: ../../network/isdn.pm_.c:185
-msgid ""
-"Protocol for the rest of the world \n"
-" no D-Channel (leased lines)"
-msgstr ""
-"Protocol ar gyfer gweddill y byd\n"
-" dim D-Channel (llinell les)"
-
-#: ../../network/isdn.pm_.c:189
-msgid "Which protocol do you want to use ?"
-msgstr "Pa brotocol ydych chi eisiau ei ddefnyddio?"
-
-#: ../../network/isdn.pm_.c:199
-msgid "What kind of card do you have?"
-msgstr "Pa fath o gerdyn sydd gennych?"
-
-#: ../../network/isdn.pm_.c:200
-msgid "I don't know"
-msgstr "Dim syniad"
-
-#: ../../network/isdn.pm_.c:200
-msgid "ISA / PCMCIA"
-msgstr "ISA / PCMCIA"
-
-#: ../../network/isdn.pm_.c:200
-msgid "PCI"
-msgstr "PCI"
-
-#: ../../network/isdn.pm_.c:206
-msgid ""
-"\n"
-"If you have an ISA card, the values on the next screen should be right.\n"
-"\n"
-"If you have a PCMCIA card, you have to know the irq and io of your card.\n"
-msgstr ""
-"\n"
-"Os oes gennych gerdyn, dylai'r gwerthoedd ar y sgrin nesaf fod yn gywir.\n"
-"\n"
-"Os oes gennych gerdyn PCMCIA, rhaid i chi wybod irq ac io eich cerdyn.\n"
-
-#: ../../network/isdn.pm_.c:210
-msgid "Abort"
-msgstr "Peidio"
-
-#: ../../network/isdn.pm_.c:210
-msgid "Continue"
-msgstr "Parhau"
-
-#: ../../network/isdn.pm_.c:216
-msgid "Which is your ISDN card ?"
-msgstr "Pa un yw eich cerdyn IDSN?"
-
-#: ../../network/isdn.pm_.c:235
-msgid ""
-"I have detected an ISDN PCI Card, but I don't know the type. Please select "
-"one PCI card on the next screen."
-msgstr ""
-"Rwyf wedi canfod cerdyn IDSN, ond nid wyf yn gwybod pa fath. Dewiswch un "
-"cerdyn PCI ar y sgrin nesaf."
-
-#: ../../network/isdn.pm_.c:244
-msgid "No ISDN PCI card found. Please select one on the next screen."
-msgstr "Heb ganfod cerdyn PCI ISDN. Dewiswch un o'r sgrin nesaf."
-
-#: ../../network/modem.pm_.c:39
-msgid "Please choose which serial port your modem is connected to."
-msgstr "Dewiswch ba borth cyfresol mae eich modem wedi cysylltu iddo."
-
-#: ../../network/modem.pm_.c:44
-msgid "Dialup options"
-msgstr "Dewisiadau cyswllt ffōn"
-
-#: ../../network/modem.pm_.c:45 ../../standalone/draknet_.c:622
-msgid "Connection name"
-msgstr "Enw'r cysylltiad"
-
-#: ../../network/modem.pm_.c:46 ../../standalone/draknet_.c:623
-msgid "Phone number"
-msgstr "Rhif ffōn"
-
-#: ../../network/modem.pm_.c:47 ../../standalone/draknet_.c:624
-msgid "Login ID"
-msgstr "Dynodiad Mewngofnodi"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "CHAP"
-msgstr "CHAP"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "PAP"
-msgstr "PAP"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Script-based"
-msgstr "Seiliedig ar sgript"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Terminal-based"
-msgstr "Seiliedig ar derfynnell"
-
-#: ../../network/modem.pm_.c:50 ../../standalone/draknet_.c:627
-msgid "Domain name"
-msgstr "Enw parth"
-
-#: ../../network/modem.pm_.c:51 ../../standalone/draknet_.c:628
-msgid "First DNS Server (optional)"
-msgstr "Gwasanaethwr DNS Cyntaf (dewisol)"
-
-#: ../../network/modem.pm_.c:52 ../../standalone/draknet_.c:629
-msgid "Second DNS Server (optional)"
-msgstr "Ail Wasanaethwr DNS (dewisol)"
-
-#: ../../network/netconnect.pm_.c:34
-msgid ""
-"\n"
-"You can disconnect or reconfigure your connection."
-msgstr ""
-"\n"
-"Medrwch ddatgysylltu neu ailffurfweddu eich cyswllt"
-
-#: ../../network/netconnect.pm_.c:34 ../../network/netconnect.pm_.c:37
-msgid ""
-"\n"
-"You can reconfigure your connection."
-msgstr ""
-"\n"
-"Medrwch ailffurfweddu eich cysylltiad"
-
-#: ../../network/netconnect.pm_.c:34
-msgid "You are currently connected to internet."
-msgstr "Rydych wedi eich cysylltu ā'r rhyngrwyd."
-
-#: ../../network/netconnect.pm_.c:37
-msgid ""
-"\n"
-"You can connect to Internet or reconfigure your connection."
-msgstr ""
-"\n"
-"Medrwch gysylltu ā'r Rhyngrwyd neu ailffurfweddu eich cyswllt"
-
-#: ../../network/netconnect.pm_.c:37
-msgid "You are not currently connected to Internet."
-msgstr "Nid ydych wedi eich cysylltu ā'r rhyngrwyd."
-
-#: ../../network/netconnect.pm_.c:41
-msgid "Connect"
-msgstr "Cysylltu"
-
-#: ../../network/netconnect.pm_.c:43
-msgid "Disconnect"
-msgstr "Dadgysylltu"
-
-#: ../../network/netconnect.pm_.c:45
-msgid "Configure the connection"
-msgstr "Ffurfweddu'r gysylltiad"
-
-#: ../../network/netconnect.pm_.c:50
-msgid "Internet connection & configuration"
-msgstr "Cysylltiad ā'r rhyngrwyd a'i ffurfweddiad "
-
-#: ../../network/netconnect.pm_.c:100
-#, c-format
-msgid "We are now going to configure the %s connection."
-msgstr "Rydym am ffurfweddu cysylltiad %s"
-
-#: ../../network/netconnect.pm_.c:109
-#, c-format
-msgid ""
-"\n"
-"\n"
-"\n"
-"We are now going to configure the %s connection.\n"
-"\n"
-"\n"
-"Press OK to continue."
-msgstr ""
-"\n"
-"\n"
-"\n"
-"Rydym yn awr yn mynd i ffurfweddu cysylltiad %s.\n"
-"\n"
-"\n"
-"Pwyswch Iawn i barhau."
-
-#: ../../network/netconnect.pm_.c:138 ../../network/netconnect.pm_.c:252
-#: ../../network/netconnect.pm_.c:271 ../../network/tools.pm_.c:57
-msgid "Network Configuration"
-msgstr "Ffurfweddiad y Rhwydwaith"
-
-#: ../../network/netconnect.pm_.c:139
-msgid ""
-"Because you are doing a network installation, your network is already "
-"configured.\n"
-"Click on Ok to keep your configuration, or cancel to reconfigure your "
-"Internet & Network connection.\n"
-msgstr ""
-"Am eich bod yn gosod eich rhwydwaith, mae eich rhwydwaith eisoes wedi ei "
-"ffurfweddu\n"
-"Cliciwch Iawn i gadw eich ffurfweddiad, neu ddileu i ail ffurfweddi eich "
-"cysylltiad Rhyngrwyd a Rhwydwaith.\n"
-
-#: ../../network/netconnect.pm_.c:165
-msgid ""
-"Welcome to The Network Configuration Wizard\n"
-"\n"
-"We are about to configure your internet/network connection.\n"
-"If you don't want to use the auto detection, deselect the checkbox.\n"
-msgstr ""
-"Croeso i Ddewin Ffurfweddu'r Rhwydwaith\n"
-"\n"
-"Rydym ar fin ffurfweddi eich cysylltiad rhyngrwyd/rhwydwaith.\n"
-"Os nad ydych am ddefnyddio awto ganfod, dad-diciwch y blwch dewis.\n"
-
-#: ../../network/netconnect.pm_.c:167
-msgid "Choose the profile to configure"
-msgstr "Dewiswch broffil i'w ffurfweddu"
-
-#: ../../network/netconnect.pm_.c:168
-msgid "Use auto detection"
-msgstr "Defnyddio awto ganfod"
-
-#: ../../network/netconnect.pm_.c:175
-msgid "Detecting devices..."
-msgstr "Canfod dyfeisiadau..."
-
-#: ../../network/netconnect.pm_.c:186 ../../network/netconnect.pm_.c:195
-msgid "Normal modem connection"
-msgstr "Cysylltiad modem arferol"
-
-#: ../../network/netconnect.pm_.c:186 ../../network/netconnect.pm_.c:195
-#, c-format
-msgid "detected on port %s"
-msgstr "canfyddwyd ar borth %s"
-
-#: ../../network/netconnect.pm_.c:187 ../../network/netconnect.pm_.c:196
-msgid "ISDN connection"
-msgstr "Cysylltiad ISDN"
-
-#: ../../network/netconnect.pm_.c:187 ../../network/netconnect.pm_.c:196
-#, c-format
-msgid "detected %s"
-msgstr "canfyddwyd %s"
-
-#: ../../network/netconnect.pm_.c:188 ../../network/netconnect.pm_.c:197
-msgid "ADSL connection"
-msgstr "Cysylltiad ADSL"
-
-#: ../../network/netconnect.pm_.c:188 ../../network/netconnect.pm_.c:197
-#, c-format
-msgid "detected on interface %s"
-msgstr "canfyddwyd ar rhyngwyneb %s"
-
-#: ../../network/netconnect.pm_.c:189 ../../network/netconnect.pm_.c:198
-msgid "Cable connection"
-msgstr "Cysylltiad cebl"
-
-#: ../../network/netconnect.pm_.c:189 ../../network/netconnect.pm_.c:198
-msgid "cable connection detected"
-msgstr "canfyddwyd cysylltiad cebl"
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-msgid "LAN connection"
-msgstr "cysylltiad LAN"
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-msgid "ethernet card(s) detected"
-msgstr "cerdyn ethernet wedi ei ganfod"
-
-#: ../../network/netconnect.pm_.c:202
-msgid "Choose the connection you want to configure"
-msgstr "Dewiiwch y math o gysylltiad rydych am ei ffurfweddu"
-
-#: ../../network/netconnect.pm_.c:226
-msgid ""
-"You have configured multiple ways to connect to the Internet.\n"
-"Choose the one you want to use.\n"
-"\n"
-msgstr ""
-"Rydych wedi ffurfweddu nifer o ffyrdd i gysylltu ā'r Rhyngrwyd.\n"
-"Dewiswch ba un rydych am ei ddefnyddio.\n"
-"\n"
-
-#: ../../network/netconnect.pm_.c:227
-msgid "Internet connection"
-msgstr "Cysylltiad ā'r Rhyngrwyd"
-
-#: ../../network/netconnect.pm_.c:233
-msgid "Do you want to start the connection at boot?"
-msgstr "Ydych chi eisiau agor y cysylltiad wrth gychwyn y cyfrifiadur?"
-
-#: ../../network/netconnect.pm_.c:247
-msgid "Network configuration"
-msgstr "Ffurfweddiad y rhwydwaith"
-
-#: ../../network/netconnect.pm_.c:248
-msgid "The network needs to be restarted"
-msgstr "Rhaid ail gychwyn y rhwydwaith"
-
-#: ../../network/netconnect.pm_.c:252
-#, c-format
-msgid ""
-"A problem occured while restarting the network: \n"
-"\n"
-"%s"
-msgstr ""
-"Digwyddodd gwall wrth ail gychwyn y rhwydwaith:\n"
-"\n"
-"%s"
-
-#: ../../network/netconnect.pm_.c:261
-msgid ""
-"Congratulations, the network and Internet configuration is finished.\n"
-"The configuration will now be applied to your system.\n"
-"\n"
-msgstr ""
-"Llongyfarchiadau, mae ffurfweddiad y rhwydwaith a'r Rhyngrwyd wedi gorffen\n"
-"Bydd y ffurfweddiad yn cael ei osod ar eich system\n"
-"\n"
-
-#: ../../network/netconnect.pm_.c:265
-msgid ""
-"After this is done, we recommend that you restart your X environment to "
-"avoid any hostname-related problems."
-msgstr ""
-"Wedi i hyn gael ei wneud rydym yn argymell eich bod yn a'i gychwyn "
-"amgylchedd X i osgoi unrhyw anawsterau'n perthyn i enwau gwesteiwr.\n"
-"."
-
-#: ../../network/netconnect.pm_.c:266
-msgid ""
-"Problems occured during configuration.\n"
-"Test your connection via net_monitor or mcc. If your connection doesn't "
-"work, you might want to relaunch the configuration"
-msgstr ""
-"Digwyddod anhawsterau yn ystod y ffurfweddiad.\n"
-"Profwch eich cysylltiad drwy net_monitor neu mcc. Os nad yw eich cysylltiad "
-"yn gweithio, efallai y byddwch eisiau ailgychwyn y ffurfweddiad"
-
-#: ../../network/network.pm_.c:292
-msgid ""
-"WARNING: This device has been previously configured to connect to the "
-"Internet.\n"
-"Simply accept to keep this device configured.\n"
-"Modifying the fields below will override this configuration."
-msgstr ""
-"Rhybudd!! Cafodd y ddyfais hon ei ffurfweddu o'r blaen i gysylltu ā'r "
-"Rhyngrwyd.\n"
-"Derbyniwch y cynnig i gadw'r ddyfais wedi ei ffurfweddi.\n"
-"Bydd newid y meysydd islaw'n newid y ffurfweddiad."
-
-#: ../../network/network.pm_.c:297
-msgid ""
-"Please enter the IP configuration for this machine.\n"
-"Each item should be entered as an IP address in dotted-decimal\n"
-"notation (for example, 1.2.3.4)."
-msgstr ""
-"Rhowch ffurfweddiad IP ar gyfer y peiriant hwn\n"
-"Dylai pob eitem ei roi fel cyfeiriad IP nodiant collnod degymol\n"
-"(e.e.1.2.3.4)."
-
-#: ../../network/network.pm_.c:306 ../../network/network.pm_.c:307
-#, c-format
-msgid "Configuring network device %s"
-msgstr "Ffurfweddu dyfais rhwydwaith %s"
-
-#: ../../network/network.pm_.c:307
-#, c-format
-msgid " (driver %s)"
-msgstr " (gyrrwr %s)"
-
-#: ../../network/network.pm_.c:309 ../../standalone/draknet_.c:232
-#: ../../standalone/draknet_.c:468
-msgid "IP address"
-msgstr "Cyfeiriad IP"
-
-#: ../../network/network.pm_.c:310 ../../standalone/draknet_.c:469
-msgid "Netmask"
-msgstr "Netmask"
-
-#: ../../network/network.pm_.c:311
-msgid "(bootp/dhcp)"
-msgstr "(bootp/dhcp)"
-
-#: ../../network/network.pm_.c:311
-msgid "Automatic IP"
-msgstr "IP awtomatig"
-
-#: ../../network/network.pm_.c:332 ../../printerdrake.pm_.c:712
-msgid "IP address should be in format 1.2.3.4"
-msgstr "dylai cyfeiriad IP fod mewn fformat 1.2.3.4"
-
-#: ../../network/network.pm_.c:361
-msgid ""
-"Please enter your host name.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''.\n"
-"You may also enter the IP address of the gateway if you have one"
-msgstr ""
-"Rhowch eich enw gwesteiwr.\n"
-"Dylai eich enw gwesteiwr fod yn enw gwesteiwr llawn gymwys.\n"
-"megis \"fymlwch.fynesg.fyngho.com\".\n"
-"Medrwch hefyd gynnig eich cyfeiriad IP os oes gennych un"
-
-#: ../../network/network.pm_.c:366
-msgid "DNS server"
-msgstr "Gwasanaethwr DNS"
-
-#: ../../network/network.pm_.c:367
-#, c-format
-msgid "Gateway (e.g. %s)"
-msgstr "Mynedfa (e.e. %s)"
-
-#: ../../network/network.pm_.c:369
-msgid "Gateway device"
-msgstr "Dyfais mynedfa"
-
-#: ../../network/network.pm_.c:381
-msgid "Proxies configuration"
-msgstr "Ffurfweddiad dirprwyon"
-
-#: ../../network/network.pm_.c:382
-msgid "HTTP proxy"
-msgstr "Dirprwy HTTP"
-
-#: ../../network/network.pm_.c:383
-msgid "FTP proxy"
-msgstr "Dirprwy FTP"
-
-#: ../../network/network.pm_.c:384
-msgid "Track network card id (usefull for laptops)"
-msgstr "Dilynnwch cyfernod cerdyn rhwydwaith (defnyddiol ar gyfer gliniadur)"
-
-#: ../../network/network.pm_.c:387
-msgid "Proxy should be http://..."
-msgstr "Dylai dirprwyon fod yn gyfanrif!"
-
-#: ../../network/network.pm_.c:388
-msgid "Proxy should be ftp://..."
-msgstr "Dylai rhif porth fod yn ftp://..."
-
-#: ../../network/tools.pm_.c:39
-msgid "Internet configuration"
-msgstr "Ffurfweddiad rhyngrwyd"
-
-#: ../../network/tools.pm_.c:40
-msgid "Do you want to try to connect to the Internet now?"
-msgstr "Hoffech chi gysylltu ā'r Rhyngrwyd nawr?"
-
-#: ../../network/tools.pm_.c:44 ../../standalone/draknet_.c:197
-msgid "Testing your connection..."
-msgstr "Profi eich cysylltiad..."
-
-#: ../../network/tools.pm_.c:50
-msgid "The system is now connected to Internet."
-msgstr "Mae'r system wedi cysylltu ā'r Rhyngrwyd."
-
-#: ../../network/tools.pm_.c:51
-msgid "For Security reason, it will be disconnected now."
-msgstr "Am resymau diogelwch, bydd yn cael ei ddatgysylltu."
-
-#: ../../network/tools.pm_.c:52
-msgid ""
-"The system doesn't seem to be connected to internet.\n"
-"Try to reconfigure your connection."
-msgstr ""
-"Nid yw'n ymddangos i'ch system gysylltu ā'r rhyngrwyd.\n"
-"Ailffurfweddwch eich cysylltiad."
-
-#: ../../network/tools.pm_.c:76
-msgid "Connection Configuration"
-msgstr "Ffurfweddiad y Cysylltiad"
-
-#: ../../network/tools.pm_.c:77
-msgid "Please fill or check the field below"
-msgstr "Llanwch neu diciwch y maes islaw"
-
-#: ../../network/tools.pm_.c:79 ../../standalone/draknet_.c:608
-msgid "Card IRQ"
-msgstr "IRQ y cerdyn"
-
-#: ../../network/tools.pm_.c:80 ../../standalone/draknet_.c:609
-msgid "Card mem (DMA)"
-msgstr "Cof Cerdyn (DMA)"
-
-#: ../../network/tools.pm_.c:81 ../../standalone/draknet_.c:610
-msgid "Card IO"
-msgstr "IO'r Cerdyn"
-
-#: ../../network/tools.pm_.c:82 ../../standalone/draknet_.c:611
-msgid "Card IO_0"
-msgstr "IO_O y cerdyn"
-
-#: ../../network/tools.pm_.c:83 ../../standalone/draknet_.c:612
-msgid "Card IO_1"
-msgstr "IO_1 y cerdyn"
-
-#: ../../network/tools.pm_.c:84 ../../standalone/draknet_.c:613
-msgid "Your personal phone number"
-msgstr "Eich rhif ffōn personol"
-
-#: ../../network/tools.pm_.c:85 ../../standalone/draknet_.c:614
-msgid "Provider name (ex provider.net)"
-msgstr "Enw darparwr (eng. darparwr.net)"
-
-#: ../../network/tools.pm_.c:86 ../../standalone/draknet_.c:615
-msgid "Provider phone number"
-msgstr "Rhif ffōn y darparwr"
-
-#: ../../network/tools.pm_.c:87 ../../standalone/draknet_.c:616
-msgid "Provider dns 1 (optional)"
-msgstr "Dns 1 y darparwr (dewisol)"
-
-#: ../../network/tools.pm_.c:88 ../../standalone/draknet_.c:617
-msgid "Provider dns 2 (optional)"
-msgstr "Dns 2 y darparwr (dewisol)"
-
-#: ../../network/tools.pm_.c:89
-msgid "Choose your country"
-msgstr "Dewiswch eich gwlad"
-
-#: ../../network/tools.pm_.c:90 ../../standalone/draknet_.c:620
-msgid "Dialing mode"
-msgstr "Modd deialu"
-
-#: ../../network/tools.pm_.c:91 ../../standalone/draknet_.c:632
-msgid "Connection speed"
-msgstr "Cyflymder y cysylltiad"
-
-#: ../../network/tools.pm_.c:92 ../../standalone/draknet_.c:633
-msgid "Connection timeout (in sec)"
-msgstr "Oediad yn y cysylltiad (mewn eiliadau)"
-
-#: ../../network/tools.pm_.c:93 ../../standalone/draknet_.c:618
-msgid "Account Login (user name)"
-msgstr "Mewngofnod Cyfrif (enw defnyddiwr)"
-
-#: ../../network/tools.pm_.c:94 ../../standalone/draknet_.c:619
-msgid "Account Password"
-msgstr "Cyfrinair y Cyfrif"
-
-#: ../../partition_table.pm_.c:600
-msgid "mount failed: "
-msgstr "maethodd y gosodiad"
-
-#: ../../partition_table.pm_.c:664
-msgid "Extended partition not supported on this platform"
-msgstr "Nid yw'r rhainad estynedig yncael ei gynnal ay y platfform hwn"
-
-#: ../../partition_table.pm_.c:682
-msgid ""
-"You have a hole in your partition table but I can't use it.\n"
-"The only solution is to move your primary partitions to have the hole next "
-"to the extended partitions"
-msgstr ""
-"Mae gennych dwll yn nhabl eich rhaniad ond nid wyf yn medru ei ddefnyddio\n"
-"Yr unig ateb yw i symud eich rhaniadau cynradd fel bo'r twll nesaf at y "
-"rhaniadau estynedig "
-
-#: ../../partition_table.pm_.c:770
-#, c-format
-msgid "Restoring from file %s failed: %s"
-msgstr "Methodd adfer o ffeil %s: %s"
-
-#: ../../partition_table.pm_.c:772
-msgid "Bad backup file"
-msgstr "Ffeil wrth gefn gwallus"
-
-#: ../../partition_table.pm_.c:794
-#, c-format
-msgid "Error writing to file %s"
-msgstr "Gwall wrth ysgrifennu i ffeil %s"
-
-#: ../../partition_table_raw.pm_.c:186
-msgid ""
-"Something bad is happening on your drive. \n"
-"A test to check the integrity of data has failed. \n"
-"It means writing anything on the disk will end up with random trash"
-msgstr ""
-"Mae rhywbeth gwael yn digwydd ar eich disg.\n"
-"Mae prawf i fesur ei gyfanrwydd wedi methu. \n"
-"Nid oes gwerth ysgrifennu i'r ddisg"
-
-#: ../../pkgs.pm_.c:24
-msgid "must have"
-msgstr "rhaid cael"
-
-#: ../../pkgs.pm_.c:25
-msgid "important"
-msgstr "pwysig"
-
-#: ../../pkgs.pm_.c:26
-msgid "very nice"
-msgstr "hyfryd iawn"
-
-#: ../../pkgs.pm_.c:27
-msgid "nice"
-msgstr "hyfryd"
-
-#: ../../pkgs.pm_.c:28
-msgid "maybe"
-msgstr "efallai"
-
-#: ../../printer.pm_.c:23
-msgid "CUPS - Common Unix Printing System"
-msgstr "CUPS - Common Unix Printing System"
-
-#: ../../printer.pm_.c:24
-msgid "LPRng - LPR New Generation"
-msgstr "LPRng - LPR New Generation"
-
-#: ../../printer.pm_.c:25
-msgid "LPD - Line Printer Daemon"
-msgstr "LPD - Line Printer Daemon"
-
-#: ../../printer.pm_.c:26
-msgid "PDQ - Print, Don't Queue"
-msgstr "PDQ - Print, Don't Queue"
-
-#: ../../printer.pm_.c:32 ../../printer.pm_.c:871
-msgid "CUPS"
-msgstr "CUPS"
-
-#: ../../printer.pm_.c:33
-msgid "LPRng"
-msgstr "LPRng"
-
-#: ../../printer.pm_.c:34
-msgid "LPD"
-msgstr "LPD"
-
-#: ../../printer.pm_.c:35
-msgid "PDQ"
-msgstr "PDQ"
-
-#: ../../printer.pm_.c:47
-msgid "Local printer"
-msgstr "Argraffydd lleol"
-
-#: ../../printer.pm_.c:48
-msgid "Remote printer"
-msgstr "Argraffydd pell"
-
-#: ../../printer.pm_.c:49
-msgid "Printer on remote CUPS server"
-msgstr "Argraffydd ar wasanaethwr CUPS pell"
-
-#: ../../printer.pm_.c:50 ../../printerdrake.pm_.c:734
-msgid "Printer on remote lpd server"
-msgstr "Argraffydd ar wasanaethwr lpd pell"
-
-#: ../../printer.pm_.c:51
-msgid "Network printer (TCP/Socket)"
-msgstr "Argraffydd rhwydwaith (TCP/Soced)"
-
-#: ../../printer.pm_.c:52
-msgid "Printer on SMB/Windows 95/98/NT server"
-msgstr "Argraffydd ar wasanaethwr SMB/Windows 95/98/NT"
-
-#: ../../printer.pm_.c:53
-msgid "Printer on NetWare server"
-msgstr "Argraffydd ar wasanaethwr NetWare"
-
-#: ../../printer.pm_.c:54 ../../printerdrake.pm_.c:738
-msgid "Enter a printer device URI"
-msgstr "Rhowch URI dyfais argraffydd"
-
-#: ../../printer.pm_.c:55
-msgid "Pipe job into a command"
-msgstr "Peipio'r gwaith i orchymyn"
-
-#: ../../printer.pm_.c:504 ../../printer.pm_.c:695 ../../printer.pm_.c:1017
-#: ../../printerdrake.pm_.c:1665 ../../printerdrake.pm_.c:2730
-msgid "Unknown model"
-msgstr "Model anhysbys"
-
-#: ../../printer.pm_.c:532
-msgid "Local Printers"
-msgstr "Argraffyddion Lleol"
-
-#: ../../printer.pm_.c:534 ../../printer.pm_.c:872
-msgid "Remote Printers"
-msgstr "Argraffyddion Pell"
-
-#: ../../printer.pm_.c:541 ../../printerdrake.pm_.c:248
-#, c-format
-msgid " on parallel port \\/*%s"
-msgstr " ar borth paralel \\/\"%s"
-
-#: ../../printer.pm_.c:544 ../../printerdrake.pm_.c:250
-#, c-format
-msgid ", USB printer \\/*%s"
-msgstr ", argraffydd USB \\/\"%s"
-
-#: ../../printer.pm_.c:549
-#, c-format
-msgid ", multi-function device on parallel port \\/*%s"
-msgstr ", dyfais amlbwrpas ar borth paralel \\/\"%s"
-
-#: ../../printer.pm_.c:552
-msgid ", multi-function device on USB"
-msgstr ", dyfais amlbwrpas ar USB"
-
-#: ../../printer.pm_.c:554
-msgid ", multi-function device on HP JetDirect"
-msgstr ", dyfais amlbwrpas ar HP JetDirect"
-
-#: ../../printer.pm_.c:556
-msgid ", multi-function device"
-msgstr ",dyfais amlbwrpas"
-
-#: ../../printer.pm_.c:559
-#, c-format
-msgid ", printing to %s"
-msgstr ", argraffu i %s"
-
-#: ../../printer.pm_.c:561
-#, c-format
-msgid "on LPD server \"%s\", printer \"%s\""
-msgstr "ar wasanaethwr LPD \"%s\", argraffydd \"%s\""
-
-#: ../../printer.pm_.c:563
-#, c-format
-msgid ", TCP/IP host \"%s\", port %s"
-msgstr ", gwesteiwr TCP/IP \"%s\", porth %s"
-
-#: ../../printer.pm_.c:567
-#, c-format
-msgid "on Windows server \"%s\", share \"%s\""
-msgstr "ar wasanaethwr Windows \"%s\", rhannu \"%s\""
-
-#: ../../printer.pm_.c:571
-#, c-format
-msgid "on Novell server \"%s\", printer \"%s\""
-msgstr "ar wasanaethwr Novell \"%s\", argraffydd \"%s\""
-
-#: ../../printer.pm_.c:573
-#, c-format
-msgid ", using command %s"
-msgstr ", defnyddio gorchymyn %s"
-
-#: ../../printer.pm_.c:692 ../../printerdrake.pm_.c:1136
-msgid "Raw printer (No driver)"
-msgstr "Argraffydd crai (dim gyrrwr)"
-
-#: ../../printer.pm_.c:841
-#, c-format
-msgid "(on %s)"
-msgstr "(ar %s)"
-
-#: ../../printer.pm_.c:843
-msgid "(on this machine)"
-msgstr "(ar y peiriant hwn)"
-
-#: ../../printer.pm_.c:868
-#, c-format
-msgid "On CUPS server \"%s\""
-msgstr "Ar wasanaethwr CUPS \"%s\""
-
-#: ../../printer.pm_.c:874 ../../printerdrake.pm_.c:2391
-#: ../../printerdrake.pm_.c:2402 ../../printerdrake.pm_.c:2618
-#: ../../printerdrake.pm_.c:2670 ../../printerdrake.pm_.c:2697
-#: ../../printerdrake.pm_.c:2867 ../../printerdrake.pm_.c:2869
-msgid " (Default)"
-msgstr "(Rhagosodedig)"
-
-#: ../../printerdrake.pm_.c:22
-msgid "Select Printer Connection"
-msgstr "Dewiswch Gysylltiad Argraffydd"
-
-#: ../../printerdrake.pm_.c:23
-msgid "How is the printer connected?"
-msgstr "Sut mae'r argraffydd wedi ei gysylltu?"
-
-#: ../../printerdrake.pm_.c:25
-msgid ""
-"\n"
-"Printers on remote CUPS servers you do not have to configure here; these "
-"printers will be automatically detected."
-msgstr ""
-"\n"
-"Nid oes angen ffurfweddu argraffyddion ar wasanaethwyr CUPS pell: byddant yn "
-"cael eu canfod yn awtomatig."
-
-#: ../../printerdrake.pm_.c:69 ../../printerdrake.pm_.c:2454
-msgid "CUPS configuration"
-msgstr "Furfweddiad CUPS"
-
-#: ../../printerdrake.pm_.c:70 ../../printerdrake.pm_.c:2455
-msgid "Specify CUPS server"
-msgstr "Enwch wasanaethwr CUPS"
-
-#: ../../printerdrake.pm_.c:71
-msgid ""
-"To get access to printers on remote CUPS servers in your local network you "
-"do not have to configure anything; the CUPS servers inform your machine "
-"automatically about their printers. All printers currently known to your "
-"machine are listed in the \"Remote printers\" section in the main window of "
-"Printerdrake. When your CUPS server is not in your local network, you have "
-"to enter the CUPS server IP address and optionally the port number to get "
-"the printer information from the server, otherwise leave these fields blank."
-msgstr ""
-"Gyda gwasanaethwyr CUPS nid oes rhaid i chi ffurfweddu unrhyw argraffydd "
-"yma; mae gwasanaethwyr CUPS yn eich hysbysu'n awtomatig am eu "
-"hargraffyddion. Mae'r holl argraffyddion cyfredol sy'n hysbys i'ch peiriant "
-"yn cael eu rhestri yn adran \"Argraffyddyddion Pell\" prif ffenestr "
-"Printerdrake. Pan nad yw eich gwasanaethwr CUPS yn eich rhwydwaith lleol, "
-"rhaid rhoi i'r gwasanaethwr CUPS gyfeiriad IP ac yn ddewisol rhif y porth i "
-"dderbyn gwybodaeth am yr argraffydd gan y gwasanaethwr, neu gadewch y "
-"meysydd yn wag."
-
-#: ../../printerdrake.pm_.c:72
-msgid ""
-"\n"
-"Normally, CUPS is automatically configured according to your network "
-"environment, so that you can access the printers on the CUPS servers in your "
-"local network. If this does not work correctly, turn off \"Automatic CUPS "
-"configuration\" and edit your file /etc/cups/cupsd.conf manually. Do not "
-"forget to restart CUPS afterwards (command: \"service cups restart\")."
-msgstr ""
-"\n"
-"Fel rheol, mae CUPS yn cael ei ffurfweddu'n awtomatig yn ōl amgylchedd eich "
-"rhwydwaith, fel bo modd i chi gael mynediad at yr argraffyddion ar "
-"wasanaethwr CUPS yn eich rhwydwaith lleol. Os nad yw hyn yn gweithio'n iawn, "
-"diffoddwch \"Ffurfweddiad CUPS awtomatig\" a golygwch eich ffeil /etc/cups/"
-"cupsd.conf gyda llaw. Peidiwch anghofio ailgychwyn CUPS eto (gorchymyn: "
-"\"service cups restart\")."
-
-#: ../../printerdrake.pm_.c:76
-msgid "The IP address should look like 192.168.1.20"
-msgstr "Dylai cyfeiriad IP edrych fel 192.168.1.20"
-
-#: ../../printerdrake.pm_.c:80 ../../printerdrake.pm_.c:862
-msgid "The port number should be an integer!"
-msgstr "Dylai rhif porth fod yn gyfanrif!"
-
-#: ../../printerdrake.pm_.c:87
-msgid "CUPS server IP"
-msgstr "IP gwasanaethwr CUPS"
-
-#: ../../printerdrake.pm_.c:88 ../../printerdrake.pm_.c:855
-msgid "Port"
-msgstr "Porth"
-
-#: ../../printerdrake.pm_.c:90
-msgid "Automatic CUPS configuration"
-msgstr "Furfweddiad CUPS Awtomatig"
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-msgid "Detecting devices ..."
-msgstr "Canfod dyfeisiadau..."
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-msgid "Test ports"
-msgstr "Profwch y pyrth"
-
-#: ../../printerdrake.pm_.c:167 ../../printerdrake.pm_.c:2437
-#: ../../printerdrake.pm_.c:2556
-msgid "Add a new printer"
-msgstr "Ychwanegu argraffydd newydd"
-
-#: ../../printerdrake.pm_.c:168
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard allows you to install local or remote printers to be used from "
-"this machine and also from other machines in the network.\n"
-"\n"
-"It asks you for all necessary information to set up the printer and gives "
-"you access to all available printer drivers, driver options, and printer "
-"connection types."
-msgstr ""
-"\n"
-" Croeso i'r Dewin Gosod Argraffydd\n"
-"\n"
-"Mae'r dewin yn caniatįu i chi osod argraffyddion lleol neu bell i'w "
-"defnyddio o'r peiriant hwn a hefyd gan argraffyddion eraill ar eich "
-"rhwydwaith.\n"
-"\n"
-"Bydd yn gofyn am yr holl wybodaeth angenrheidiol i osod yr argraffydd a bydd "
-"yn rhoi mynediad i'r holl yrwyr argraffyddion sydd ar gael, dewisiadau "
-"gyrwyr a mathau o gysylltiadau argraffyddion."
-
-#: ../../printerdrake.pm_.c:176 ../../printerdrake.pm_.c:203
-#: ../../printerdrake.pm_.c:378 ../../printerdrake.pm_.c:393
-#: ../../printerdrake.pm_.c:403 ../../printerdrake.pm_.c:466
-msgid "Local Printer"
-msgstr "Argraffydd Lleol"
-
-#: ../../printerdrake.pm_.c:177
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard will help you to install your printer(s) connected to this "
-"computer.\n"
-"\n"
-"Please plug in your printer(s) on this computer and turn it/them on. Click "
-"on \"Next\" when you are ready, and on \"Cancel\" when you do not want to "
-"set up your printer(s) now.\n"
-"\n"
-"Note that some computers can crash during the printer auto-detection, turn "
-"off \"Auto-detect printers\" to do a printer installation without auto-"
-"detection. Use the \"Expert Mode\" of printerdrake when you want to set up "
-"printing on a remote printer if printerdrake does not list it automatically."
-msgstr ""
-"\n"
-"Croeso i Ddewin Gosod Argraffydd\n"
-"\n"
-"Bydd y dewin yn eich cynorthwyo i osod eich argraffydd(ion) sy'n "
-"gysylltiedig ā'r cyfrifiadur hwn.\n"
-"Cysylltwch yr argraffydd(ion) i'r cyfrifiadur a'i(u) troi mlaen. Cliciwch "
-"\"Nesaf\" pan rydych yn barod, ac ar \"Diddymu\"pan nad ydych am osod eich "
-"argraffydd(ion) ar hyn o bryd.\n"
-"\n"
-"Sylwch fod rhai cyfrifiaduron yn medru methu yn ystod awto ganfod "
-"argraffydd, diffoddwch \"Awto ganfod argraffyddion\" i osod argraffydd heb "
-"awto ganfod. Defnyddiwch \"Modd Arbenigwr\" printdrake pan fyddwch am osod "
-"argraffydd pell os nad yw printerdrake yn ei restri'n awtomatig."
-
-#: ../../printerdrake.pm_.c:186
-msgid "Auto-detect printers"
-msgstr "Awto ganfod argraffyddion"
-
-#: ../../printerdrake.pm_.c:204
-msgid ""
-"\n"
-"Congratulations, your printer is now installed and configured!\n"
-"\n"
-"You can print using the \"Print\" command of your application (usually in "
-"the \"File\" menu).\n"
-"\n"
-"If you want to add, remove, or rename a printer, or if you want to change "
-"the default option settings (paper input tray, printout quality, ...), "
-"select \"Printer\" in the \"Hardware\" section of the Mandrake Control "
-"Center."
-msgstr ""
-"\n"
-"Llongyfarchiadau, mae eich argraffydd wedi ei osod a'i ffurfweddu!\n"
-"\n"
-"Os ydych am ychwanegu, tynnu neu ailenwi argraffydd, neu os ydych am newid y "
-"gosodiadau dewis rhagosodedig (mewnflwch papur, ansawdd y printiad,...0, "
-"dewiswch \"Argraffydd\" yn adran \"Caledwedd\" Canolfan Rheoli Mandrake."
-
-#: ../../printerdrake.pm_.c:223
-msgid "Auto-Detection of Printers"
-msgstr "Awto ganfod Argraffyddion"
-
-#: ../../printerdrake.pm_.c:224
-msgid ""
-"Printerdrake is able to auto-detect your locally connected parallel and USB "
-"printers for you, but note that on some systems the auto-detection CAN "
-"FREEZE YOUR SYSTEM AND THIS CAN LEAD TO CORRUPTED FILE SYSTEMS! So do it ON "
-"YOUR OWN RISK!\n"
-"\n"
-"Do you really want to get your printers auto-detected?"
-msgstr ""
-"Mae Printerdrake yn medru awto ganfod eich argraffyddion paralel ac USB "
-"lleol, ond sylwch fod awto ganfod yn MEDRU RHEWI EICH SYSTEM AC ARWAIN AT "
-"SYSTEMAU FFEIL LLWGR! Gwnewch hyn AR EICH MENTER EICH HUN!\n"
-"\n"
-"Ydych eisiau i'ch argraffydd gael ei awto ganfod?"
-
-#: ../../printerdrake.pm_.c:227 ../../printerdrake.pm_.c:229
-#: ../../printerdrake.pm_.c:230
-msgid "Do auto-detection"
-msgstr "Defnyddio awto ganfod"
-
-#: ../../printerdrake.pm_.c:228
-msgid "Set up printer manually"
-msgstr "Gosod argraffydd gyda llaw"
-
-#: ../../printerdrake.pm_.c:256
-#, c-format
-msgid "Detected %s"
-msgstr "Canfyddwyd %s"
-
-#: ../../printerdrake.pm_.c:260 ../../printerdrake.pm_.c:287
-#: ../../printerdrake.pm_.c:306
-#, c-format
-msgid "Printer on parallel port \\/*%s"
-msgstr "Argraffydd ar borth paralel \\/\"%s"
-
-#: ../../printerdrake.pm_.c:262 ../../printerdrake.pm_.c:289
-#: ../../printerdrake.pm_.c:311
-#, c-format
-msgid "USB printer \\/*%s"
-msgstr "Argraffydd USB \\/\"%s"
-
-#: ../../printerdrake.pm_.c:379
-msgid ""
-"No local printer found! To manually install a printer enter a device name/"
-"file name in the input line (Parallel Ports: /dev/lp0, /dev/lp1, ..., "
-"equivalent to LPT1:, LPT2:, ..., 1st USB printer: /dev/usb/lp0, 2nd USB "
-"printer: /dev/usb/lp1, ...)."
-msgstr ""
-"Heb ganfod argraffydd lleol! I osod argraffydd gyda llaw, rhowch enw'r "
-"ddyfais /enw ffeil ar y llinell mewnbwn (Porth Paralel: /dev/lp0, /"
-"dev/,...., cyfatebol i LPT1:, LPT2,..., argraffydd USB 1af: /dev/usb/lp0, "
-"ail argraffydd USB: /dev/usb/lp1,...)."
-
-#: ../../printerdrake.pm_.c:383
-msgid "You must enter a device or file name!"
-msgstr "Rhaid cynnig enw dyfais neu ffeil!"
-
-#: ../../printerdrake.pm_.c:394
-msgid ""
-"No local printer found!\n"
-"\n"
-msgstr ""
-"Heb ganfood argraffydd lleol!\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:395
-msgid ""
-"Network printers can only be installed after the installation. Choose "
-"\"Hardware\" and then \"Printer\" in the Mandrake Control Center."
-msgstr ""
-"Dim ond ar ōl cwblhau'r gosodiad mae modd gosod argraffyddion rhwydwaith. "
-"Dewiswch \"Caledwedd\" ac yna \"Argraffydd\" yng Nghanolfan Rheoli Mandrake"
-
-#: ../../printerdrake.pm_.c:396
-msgid ""
-"To install network printers, click \"Cancel\", switch to the \"Expert Mode"
-"\", and click \"Add a new printer\" again."
-msgstr ""
-"I osod argraffyddion rhwydwaith, cliciwch \"Diddymu\", trowch i \"Modd "
-"Arbenigwr\", clicio \"Ychwanegu argraffydd newydd\" eto."
-
-#: ../../printerdrake.pm_.c:407
-msgid ""
-"The following printer was auto-detected, if it is not the one you want to "
-"configure, enter a device name/file name in the input line"
-msgstr ""
-"Cafodd yr argraffydd canlynol ei awto ganfod, os nad hwn yw'r un rydych am "
-"ei ffurfweddu, rhowch enw dyfais/enw ffeil ar y llinell mewnbwn."
-
-#: ../../printerdrake.pm_.c:408
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up or enter a device name/file name in the input line"
-msgstr ""
-"Dyma restr o'r holl argraffyddion gafodd eu awto ganfod. Dewiswch yr "
-"argraffydd rydych am ei osod neu rhowch enw dyfais/ffeil yn y llinell "
-"mewnbwn."
-
-#: ../../printerdrake.pm_.c:410
-msgid ""
-"The following printer was auto-detected. The configuration of the printer "
-"will work fully automatically. If your printer was not correctly detected or "
-"if you prefer a customized printer configuration, turn on \"Manual "
-"configuration\"."
-msgstr ""
-"Cafodd yr argraffydd hwn ei awto ganfod. Bydd ffurfweddi'r argraffydd yn "
-"digwydd yn awtomatig. Os na chafodd eich argraffydd ei ganfod yn gywir neu "
-"byddai'n well gennych ffurfweddiad unigryw i'ch argraffydd, cychwynnwch "
-"\"Ffurfweddiad gyda Llaw\"."
-
-#: ../../printerdrake.pm_.c:411
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up. The configuration of the printer will work fully "
-"automatically. If your printer was not correctly detected or if you prefer a "
-"customized printer configuration, turn on \"Manual configuration\"."
-msgstr ""
-"Dyma restr o'r holl argraffyddion gafodd eu awto ganfod. Dewiswch yr "
-"argraffydd rydych am ei osod. Bydd ffurfweddu'r argraffydd yn digwydd yn "
-"awtomatig. Os na chafodd eich argraffydd ei ganfod yn gywir neu byddai'n "
-"well gennych ffurfweddiad unigryw i'ch argraffydd, cychwynnwch "
-"\"Ffurfweddiad gyda Llaw\"."
-
-#: ../../printerdrake.pm_.c:413
-msgid ""
-"Please choose the port where your printer is connected to or enter a device "
-"name/file name in the input line"
-msgstr ""
-"Dewiswch y porth y mae eich argraffydd wedi cysylltu iddo neurhowch enw "
-"dyfais/ffeil ar y ninell mewnbwn"
-
-#: ../../printerdrake.pm_.c:414
-msgid "Please choose the port where your printer is connected to."
-msgstr "Dewiswch y porth mae'r argraffydd wedi cysylltu iddo."
-
-#: ../../printerdrake.pm_.c:416
-msgid ""
-" (Parallel Ports: /dev/lp0, /dev/lp1, ..., equivalent to LPT1:, LPT2:, ..., "
-"1st USB printer: /dev/usb/lp0, 2nd USB printer: /dev/usb/lp1, ...)."
-msgstr ""
-" (Pyrth paralel: /dev/lp0, /dev/lp1, ..., yn cyfateb i LPT1:, LPT2:, ..., "
-"argraffydd USB cyntaf: /dev/usb/lp0, ail argraffydd USB : /dev/usb/lp1, ...)."
-
-#: ../../printerdrake.pm_.c:421
-msgid "You must choose/enter a printer/device!"
-msgstr "Rhaid dewis/rhoi argraffydd/dyfais!"
-
-#: ../../printerdrake.pm_.c:441
-msgid "Manual configuration"
-msgstr "Ffurfweddiad gyda llaw"
-
-#: ../../printerdrake.pm_.c:467
-msgid ""
-"Is your printer a multi-function device from HP (OfficeJet, PSC, PhotoSmart, "
-"LaserJet 1100/1200/1220/3200/3300 with scanner)?"
-msgstr ""
-"A yw eich argraffydd yn ddyfais amlbwrpas gan HP (OfficeJet, PSC, "
-"PhotoSmart LaserJet 1100/1200/1220/3200/3300 gyda sganiwr)"
-
-#: ../../printerdrake.pm_.c:482
-msgid "Installing HPOJ package..."
-msgstr "Gosod pecynnau HPOJ"
-
-#: ../../printerdrake.pm_.c:487
-msgid "Checking device and configuring HPOJ ..."
-msgstr "Gwirio a ffurfweddu dyfais HPOJ..."
-
-#: ../../printerdrake.pm_.c:505
-msgid "Installing SANE package..."
-msgstr "Gosod pecynnau SANE"
-
-#: ../../printerdrake.pm_.c:517
-msgid "Scanning on your HP multi-function device"
-msgstr "Sganio eich dyfais HP aml bwrpas"
-
-#: ../../printerdrake.pm_.c:534
-msgid "Making printer port available for CUPS ..."
-msgstr "Gwneud porth argraffydd ar gael ar gyfer CUPS"
-
-#: ../../printerdrake.pm_.c:544 ../../printerdrake.pm_.c:1018
-#: ../../printerdrake.pm_.c:1132
-msgid "Reading printer database ..."
-msgstr "Darllen cronfa ddata argraffydd..."
-
-#: ../../printerdrake.pm_.c:624
-msgid "Remote lpd Printer Options"
-msgstr "Dewisiadau Argraffydd lpd Pell"
-
-#: ../../printerdrake.pm_.c:625
-msgid ""
-"To use a remote lpd printer, you need to supply the hostname of the printer "
-"server and the printer name on that server."
-msgstr ""
-"I ddefnyddio argraffydd lpd pell, rhaid darparu enw gwesteiwr gwasanaethwr "
-"yr argraffydd ac enw'r argraffydd ar y gwasanaethwr hwnnw."
-
-#: ../../printerdrake.pm_.c:626
-msgid "Remote host name"
-msgstr "Enw gwesteiwr pell"
-
-#: ../../printerdrake.pm_.c:627
-msgid "Remote printer name"
-msgstr "Enw'r argraffydd pell"
-
-#: ../../printerdrake.pm_.c:630
-msgid "Remote host name missing!"
-msgstr "Mae enw'r gwesteiwr pell ar goll!"
-
-#: ../../printerdrake.pm_.c:634
-msgid "Remote printer name missing!"
-msgstr "Mae enw'r argraffydd pell ar goll!"
-
-#: ../../printerdrake.pm_.c:702
-msgid "SMB (Windows 9x/NT) Printer Options"
-msgstr "Dewisiadau Argraffydd SMB (Windows 9x/NT)"
-
-#: ../../printerdrake.pm_.c:703
-msgid ""
-"To print to a SMB printer, you need to provide the SMB host name (Note! It "
-"may be different from its TCP/IP hostname!) and possibly the IP address of "
-"the print server, as well as the share name for the printer you wish to "
-"access and any applicable user name, password, and workgroup information."
-msgstr ""
-"I argraffu i argraffydd SMB, rhaid darparu enw gwesteiwr SMB (Sylwer! Mi all "
-"fod yn wahanol i'w enw gwesteiwr TCP/IP!) ac o bosibl cyfeiriad IP'r "
-"gwasanaethwr argraffu, yn ogystal ā'r enw rhannu ar gyfer yr argraffydd "
-"rydych am gael mynediad iddo ac unrhyw enw defnyddiwr, cyfrinair a "
-"gwybodaeth am grwp gwaith perthynol."
-
-#: ../../printerdrake.pm_.c:704
-msgid "SMB server host"
-msgstr "Gwasanaethwr gwesteiwr SMB"
-
-#: ../../printerdrake.pm_.c:705
-msgid "SMB server IP"
-msgstr "IP Gwasanaethwr SMB"
-
-#: ../../printerdrake.pm_.c:706
-msgid "Share name"
-msgstr "Rhannu enw"
-
-#: ../../printerdrake.pm_.c:709
-msgid "Workgroup"
-msgstr "Grwp gwaith"
-
-#: ../../printerdrake.pm_.c:716
-msgid "Either the server name or the server's IP must be given!"
-msgstr "Rhaid rhoi un ai enw'r gwasanaethwr neu IP'r gwasanaethwr!"
-
-#: ../../printerdrake.pm_.c:720
-msgid "Samba share name missing!"
-msgstr "Mae enw rhannu Samba ar goll!"
-
-#: ../../printerdrake.pm_.c:725
-msgid "SECURITY WARNING!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:726
-#, c-format
-msgid ""
-"You are about to set up printing to a Windows account with password. Due to "
-"a fault in the architecture of the Samba client software the password is put "
-"in clear text into the command line of the Samba client used to transmit the "
-"print job to the Windows server. So it is possible for every user on this "
-"machine to display the password on the screen by issuing commands as \"ps "
-"auxwww\".\n"
-"\n"
-"We recommend to make use of one of the following alternatives (in all cases "
-"you have to make sure that only machines from your local network have access "
-"to your Windows server, for example by means of a firewall):\n"
-"\n"
-"Use a password-less account on your Windows server, as the \"GUEST\" account "
-"or a special account dedicated for printing. Do not remove the password "
-"protection from a personal account or the administrator account.\n"
-"\n"
-"Set up your Windows server to make the printer available under the LPD "
-"protocol. Then set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:736
-#, c-format
-msgid ""
-"Set up your Windows server to make the printer available under the IPP "
-"protocol and set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:739
-msgid ""
-"Connect your printer to a Linux server and let your Windows machine(s) "
-"connect to it as a client.\n"
-"\n"
-"Do you really want to continue setting up this printer as you are doing now?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:801
-msgid "NetWare Printer Options"
-msgstr "Dewisiadau Argraffydd NetWare"
-
-#: ../../printerdrake.pm_.c:802
-msgid ""
-"To print on a NetWare printer, you need to provide the NetWare print server "
-"name (Note! it may be different from its TCP/IP hostname!) as well as the "
-"print queue name for the printer you wish to access and any applicable user "
-"name and password."
-msgstr ""
-"I argraffu ar argraffydd NetWare, rhaid i chi rhoi enw gwasanaethwr argraffu "
-"NetWare (Sylwer! gall fod yn wahanol i'w enw gwesteiwr TCP/IP) yn ogystal "
-"ā'r rhes waith argraffu am yr argraffydd rydych am gael mynediad iddo ac "
-"unrhyw enw defnyddiwr a chyfrinair perthnasol."
-
-#: ../../printerdrake.pm_.c:803
-msgid "Printer Server"
-msgstr "Gwasanaethwr Argraffydd"
-
-#: ../../printerdrake.pm_.c:804
-msgid "Print Queue Name"
-msgstr "Enw Rhes Argraffu"
-
-#: ../../printerdrake.pm_.c:809
-msgid "NCP server name missing!"
-msgstr "Mae enw gwasanaethwr NCP ar goll!"
-
-#: ../../printerdrake.pm_.c:813
-msgid "NCP queue name missing!"
-msgstr "Mae enw rhes NCP ar goll"
-
-#: ../../printerdrake.pm_.c:852
-msgid "TCP/Socket Printer Options"
-msgstr "Dewisiadau Argraffydd TCP/Soced"
-
-#: ../../printerdrake.pm_.c:853
-msgid ""
-"To print to a TCP or socket printer, you need to provide the host name of "
-"the printer and optionally the port number. On HP JetDirect servers the port "
-"number is usually 9100, on other servers it can vary. See the manual of your "
-"hardware."
-msgstr ""
-"I argraffu i argraffydd TCP neu soced, rhaid i chi ddarparu enw gwesteiwr yr "
-"argraffydd ac yn ddewisol rhif y porth. Ar wasanaethwyr HP JetDirect rhif y "
-"porth, fel rheol, yw 9100, gall amrywio ar wasanaethwyr eraill. Gweler "
-"llawlyfr eich caledwedd"
-
-#: ../../printerdrake.pm_.c:854
-msgid "Printer host name"
-msgstr "Enw'gwesteiwr yr argraffydd"
-
-#: ../../printerdrake.pm_.c:858
-msgid "Printer host name missing!"
-msgstr "Mae enw'r gwesteiwr argraffu ar goll!"
-
-#: ../../printerdrake.pm_.c:887 ../../printerdrake.pm_.c:889
-msgid "Printer Device URI"
-msgstr "URI Dyfais Argraffu"
-
-#: ../../printerdrake.pm_.c:888
-msgid ""
-"You can specify directly the URI to access the printer. The URI must fulfill "
-"either the CUPS or the Foomatic specifications. Note that not all URI types "
-"are supported by all the spoolers."
-msgstr ""
-"Medrwch enwi'n benodol URI i gael mynediad i'r argraffydd. Rhaid i'r URI "
-"gyflawni manylyn un ai CUPS neu Foomatic. Sylwer nad yw pob math o URI cyn "
-"cael eu cynnal gan bob sbwlydd ."
-
-#: ../../printerdrake.pm_.c:903
-msgid "A valid URI must be entered!"
-msgstr "Rhaid cynnig URI dilys!"
-
-#: ../../printerdrake.pm_.c:1004
-msgid ""
-"Every printer needs a name (for example \"printer\"). The Description and "
-"Location fields do not need to be filled in. They are comments for the users."
-msgstr ""
-"Mae pob argraffydd angen enw (e.e. \"argraffydd\". Nid oes angen llanw "
-"meysydd Disgrifiad a Lleoliad. Lle ar gyfer sylwadau'r defnyddiwr sydd yma."
-
-#: ../../printerdrake.pm_.c:1005
-msgid "Name of printer"
-msgstr "Enw'r argraffydd"
-
-#: ../../printerdrake.pm_.c:1006
-msgid "Description"
-msgstr "Disgrifiad"
-
-#: ../../printerdrake.pm_.c:1007
-msgid "Location"
-msgstr "Lleoliad"
-
-#: ../../printerdrake.pm_.c:1021
-msgid "Preparing printer database ..."
-msgstr "Paratoi cronfa ddata argraffydd..."
-
-#: ../../printerdrake.pm_.c:1112
-msgid "Your printer model"
-msgstr "Model eich argraffydd"
-
-#: ../../printerdrake.pm_.c:1113
-#, c-format
-msgid ""
-"Printerdrake has compared the model name resulting from the printer auto-"
-"detection with the models listed in its printer database to find the best "
-"match. This choice can be wrong, especially when your printer is not listed "
-"at all in the database. So check whether the choice is correct and click "
-"\"The model is correct\" if so and if not, click \"Select model manually\" "
-"so that you can choose your printer model manually on the next screen.\n"
-"\n"
-"For your printer Printerdrake has found:\n"
-"\n"
-"%s"
-msgstr ""
-"Mae Printerdrake wedi cymharu'r enw model yn sgil yr awto ganfod gyda'r "
-"modelau sy'n cael eu rhestri yn ei gronfa ddata i gael y cydweddiad gorau. "
-"Gall y dewis fod yn anghywir, yn arbennig os nad yw eich argraffydd yn cael "
-"ei enwi yn y gronfa ddata. Felly, edrychwch i weld ā yw'r dewis yn gywir a "
-"chliciwch \"Model cywir\" os yw ac os nad yw, cliciwch \" Dewiswch y model "
-"gyda llaw\" fel bo modd i chi ddewis eich argraffydd gyda llaw ar y sgrin "
-"nesaf.\n"
-"\n"
-"Ar gyfer eich argraffydd mae Printerdrake wedi canfod\n"
-"\n"
-"%s"
-
-#: ../../printerdrake.pm_.c:1118 ../../printerdrake.pm_.c:1121
-msgid "The model is correct"
-msgstr "Mae'r model yn gywir"
-
-#: ../../printerdrake.pm_.c:1119 ../../printerdrake.pm_.c:1120
-#: ../../printerdrake.pm_.c:1123
-msgid "Select model manually"
-msgstr "Dewiswch y model gyda llaw"
-
-#: ../../printerdrake.pm_.c:1139
-msgid "Printer model selection"
-msgstr "Dewis model yr argraffydd"
-
-#: ../../printerdrake.pm_.c:1140
-msgid "Which printer model do you have?"
-msgstr "Pa fath o argraffydd sydd gennych?"
-
-#: ../../printerdrake.pm_.c:1141
-msgid ""
-"\n"
-"\n"
-"Please check whether Printerdrake did the auto-detection of your printer "
-"model correctly. Search the correct model in the list when the cursor is "
-"standing on a wrong model or on \"Raw printer\"."
-msgstr ""
-"\n"
-"\n"
-"Gwiriwch os yw Printerdrake wedi awto ganfod eich argraffydd yn gywir. "
-"Chwiliwch am y model cywir pan fo'r cyrchwr yn sefyll ar y model anghywir "
-"neu ar \"Argraffydd bras\"."
-
-#: ../../printerdrake.pm_.c:1144
-msgid ""
-"If your printer is not listed, choose a compatible (see printer manual) or a "
-"similar one."
-msgstr ""
-"Nid yw eich argraffydd wedi ei rhestri, dewiswch un cyfatebol (gw. llawlyfr "
-"eich argraffydd) neu un tebyg."
-
-#: ../../printerdrake.pm_.c:1220
-msgid "OKI winprinter configuration"
-msgstr "Ffurfweddiad OKI winprinter "
-
-#: ../../printerdrake.pm_.c:1221
-msgid ""
-"You are configuring an OKI laser winprinter. These printers\n"
-"use a very special communication protocol and therefore they work only when "
-"connected to the first parallel port. When your printer is connected to "
-"another port or to a print server box please connect the printer to the "
-"first parallel port before you print a test page. Otherwise the printer will "
-"not work. Your connection type setting will be ignored by the driver."
-msgstr ""
-"Rydych yn ffurfweddu winprinter laser OKI. Mae'r argraffydd hwn\n"
-"yn defnyddio protocol cyfathrebu arbennig. Dim ond trwy eu cysylltu ā'r "
-"porth paralel cyntaf mae modd cael yr argraffydd hwn i weithio. Pan fo eich "
-"argraffydd wedi ei gysylltu i borth arall neu i flwch gwasanaethwr argraffu, "
-"cysylltwch yr argraffydd i'r porth paralel cyntaf cyn argraffu tudalen "
-"brawf. Os na wnewch chi hynny, ni fydd yr argraffydd yn gweithio. Bydd eich "
-"gosodiad ynghylch ymath o gysylltiad yn cael ei anwybyddu gan y gyrrwr."
-
-#: ../../printerdrake.pm_.c:1264 ../../printerdrake.pm_.c:1291
-msgid "Lexmark inkjet configuration"
-msgstr "Ffurfweddiad inkjet Lexmark"
-
-#: ../../printerdrake.pm_.c:1265
-msgid ""
-"The inkjet printer drivers provided by Lexmark only support local printers, "
-"no printers on remote machines or print server boxes. Please connect your "
-"printer to a local port or configure it on the machine where it is connected "
-"to."
-msgstr ""
-"Mae'r gyrwyr argraffydd inkjet sydd wedi eu darparu gan Lexmark yn cynnal "
-"argraffyddion lleol, yn unig. Cysylltwch eich argraffydd i borth lleol neu "
-"ffurfweddwch ef i'r peiriant mae'n gysylltiedig ag ef."
-
-#: ../../printerdrake.pm_.c:1292
-msgid ""
-"To be able to print with your Lexmark inkjet and this configuration, you "
-"need the inkjet printer drivers provided by Lexmark (http://www.lexmark."
-"com/). Go to the US site and click on the \"Drivers\" button. Then choose "
-"your model and afterwards \"Linux\" as operating system. The drivers come as "
-"RPM packages or shell scripts with interactive graphical installation. You "
-"do not need to do this configuration by the graphical frontends. Cancel "
-"directly after the license agreement. Then print printhead alignment pages "
-"with \"lexmarkmaintain\" and adjust the head alignment settings with this "
-"program."
-msgstr ""
-"I fedru argraffu gyda eich argraffydd inkjet Lexmark a'r ffurfweddiad hwn, "
-"bydd angen gyrwyr argraffydd inkjet sydd wedi eu darparu gan Lexmark (http://"
-"www.lexmark.com/). Ewch i'w safle yn yr UDA a chliciwch ar y botwm \"Drivers"
-"\". Yna dewiswch eich model ac yna \"Linux\" fel system weithredu. Mae'r "
-"gyrwyr yn dod fel pecynnau RPM neu sgriptiau cragen gyda gosodiad graffigol "
-"rhyngweithiol. Nid oes angen i chi wneud y ffurfweddiad drwy'r wyneb "
-"graffigol. Diddymwch yn syth wedi'r cytundeb trwyddedu. Yna argraffwch "
-"dudalennau'r alinio'r pen argraffu gyda \"lexmarkmaintain\" a newid "
-"gosodiadau aliniad y pen gyda'r rhaglen."
-
-#: ../../printerdrake.pm_.c:1508
-msgid ""
-"Printer default settings\n"
-"\n"
-"You should make sure that the page size and the ink type/printing mode (if "
-"available) and also the hardware configuration of laser printers (memory, "
-"duplex unit, extra trays) are set correctly. Note that with a very high "
-"printout quality/resolution printing can get substantially slower."
-msgstr ""
-"Gosodiadau rhagosodedig yr argraffydd\n"
-"\n"
-"Dylech wneud yn siwr fod maint y dudalen a'r modd math inc/argraffu (os ar "
-"gael) a hefyd bod ffurfweddiad caledwedd argraffyddion laser (cof, uned "
-"ddeublyg, blychau papur ychwanego) wedi eu gosod yn gywir. Sylwer bod fod "
-"argraffiad ansawdd/cydraniad uchel iawn yn medru arafu'r argraffu'n "
-"sylweddol.."
-
-#: ../../printerdrake.pm_.c:1517
-#, c-format
-msgid "Option %s must be an integer number!"
-msgstr "Rhaid i ddewis %s fod yn gyfanrif"
-
-#: ../../printerdrake.pm_.c:1521
-#, c-format
-msgid "Option %s must be a number!"
-msgstr "Rhaid i ddewis %s fod yn rhif!"
-
-#: ../../printerdrake.pm_.c:1526
-#, c-format
-msgid "Option %s out of range!"
-msgstr "Dewis %s allan o amrediad!"
-
-#: ../../printerdrake.pm_.c:1565
-#, c-format
-msgid ""
-"Do you want to set this printer (\"%s\")\n"
-"as the default printer?"
-msgstr ""
-"Ydych chi am osod argraffydd (\"%s\")\n"
-"fel yr argraffydd rhagosodedig?"
-
-#: ../../printerdrake.pm_.c:1582
-msgid "Test pages"
-msgstr "Tudalennau prawf"
-
-#: ../../printerdrake.pm_.c:1583
-msgid ""
-"Please select the test pages you want to print.\n"
-"Note: the photo test page can take a rather long time to get printed and on "
-"laser printers with too low memory it can even not come out. In most cases "
-"it is enough to print the standard test page."
-msgstr ""
-"Dewiswch y tudalennau prawf rydych am eu hargraffu\n"
-"Sylwer: gall y dudalen brawf llun camera gymryd cryn dipyn o amser cyn cael "
-"ei argraffu ac ar argraffydd laser heb lawer o gof mae'n bosibl na ddaw o "
-"gwbl. Yn y rhan fwyaf o achosion, mae'r prawf tudalen safonol yn ddigonol."
-
-#: ../../printerdrake.pm_.c:1587
-msgid "No test pages"
-msgstr "Dim tudalennau prawf"
-
-#: ../../printerdrake.pm_.c:1588
-msgid "Print"
-msgstr "Argraffu"
-
-#: ../../printerdrake.pm_.c:1590
-msgid "Standard test page"
-msgstr "Tudalen prawf safonnol"
-
-#: ../../printerdrake.pm_.c:1593
-msgid "Alternative test page (Letter)"
-msgstr "Prawf tudalen arall (Llythyr)"
-
-#: ../../printerdrake.pm_.c:1596
-msgid "Alternative test page (A4)"
-msgstr "Prawf tudalen arall (A4)"
-
-#: ../../printerdrake.pm_.c:1598
-msgid "Photo test page"
-msgstr "Tudalen prawf llun"
-
-#: ../../printerdrake.pm_.c:1602
-msgid "Do not print any test page"
-msgstr "Peidiwch argraffu tudalennau prawf"
-
-#: ../../printerdrake.pm_.c:1610 ../../printerdrake.pm_.c:1747
-msgid "Printing test page(s)..."
-msgstr "Argraffu tudalen(nau) prawf..."
-
-#: ../../printerdrake.pm_.c:1635
-#, c-format
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-"Printing status:\n"
-"%s\n"
-"\n"
-msgstr ""
-"Mae tudalennau prawf wedi eu hanfon i'r argraffydd.\n"
-"Gall gymryd amser cyn i'r argraffydd gychwyn.\n"
-"Statws argraffu:\n"
-"%s\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:1639
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-msgstr ""
-"Mae tudalen(nau) prawf wedi eu hanfon at yr argraffydd.\n"
-"Gall gymryd amser cyn i'r argraffydd gychwyn.\n"
-
-#: ../../printerdrake.pm_.c:1646
-msgid "Did it work properly?"
-msgstr "A weithiodd hwnnw'n iawn?"
-
-#: ../../printerdrake.pm_.c:1667 ../../printerdrake.pm_.c:2732
-msgid "Raw printer"
-msgstr "Argraffydd bras"
-
-#: ../../printerdrake.pm_.c:1685
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) you can either use "
-"the command \"%s <file>\" or a graphical printing tool: \"xpp <file>\" or "
-"\"kprinter <file>\". The graphical tools allow you to choose the printer and "
-"to modify the option settings easily.\n"
-msgstr ""
-"I argraffu ffeil o'r linell orchymyn (ffenestr derfynnell) mae modd "
-"defnyddio un ai'r gorchymyn \"%s <file>\" neu offeryn argraffu graffigol: "
-"\"xpp <file>\" neu \"kprinter <file>\". Mae'r offeryn graffigol yn caniatįu "
-"chi ddefnyddio'r argraffydd ac i newid gosodiadau dewis yn hawdd.\n"
-
-#: ../../printerdrake.pm_.c:1687
-msgid ""
-"These commands you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications, but here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-"Mae modd defnyddio'r gorchmynion hyn ym maes \"Gorchmynion Argraffu\" y "
-"deialogau argraffu mewn nifer o raglenni, ond yma nid ydynt yn darparu'r "
-"enw ffeil am fod y ffeil i'r argraffydd yn cael ei ddarparu gan y rhaglen.\n"
-
-#: ../../printerdrake.pm_.c:1690 ../../printerdrake.pm_.c:1706
-#: ../../printerdrake.pm_.c:1716
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" command also allows to modify the option settings for a "
-"particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\". "
-msgstr ""
-"\n"
-"Mae'r gorchymyn \"%s\" hefyd yn caniatau i newid y gosodiadau dewis ar gyfer "
-"tasg argraffu penodol. Ychwanegwch y gosodiadau angenrheidiol i'r llinell "
-"gorchymyn, e.e \"%s <file>\". "
-
-#: ../../printerdrake.pm_.c:1693 ../../printerdrake.pm_.c:1732
-#, c-format
-msgid ""
-"To know about the options available for the current printer read either the "
-"list shown below or click on the \"Print option list\" button.%s\n"
-"\n"
-msgstr ""
-"Er mwyn cael gwybodaeth am y dewisiadau sydd ar gael ar gyfer yr argraffydd "
-"cyfredol darllenwch un ai'r rhestr isod neu cliciwch ar y botwm \"Rhestr "
-"dewis argraffu\"%s\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:1696
-msgid ""
-"Here is a list of the available printing options for the current printer:\n"
-"\n"
-msgstr ""
-"Dyma restr o'r dewisiadau argraffu sydd ar gael ar gyfer yr argraffydd "
-"presennol:\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:1701 ../../printerdrake.pm_.c:1711
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\".\n"
-msgstr ""
-"I argraffu ffeil o'r llinell orchymyn (ffenestr terfynnell) defnyddiwch "
-"orchymyn \"%s <file>\".\n"
-
-#: ../../printerdrake.pm_.c:1703 ../../printerdrake.pm_.c:1713
-#: ../../printerdrake.pm_.c:1723
-msgid ""
-"This command you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications. But here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-"Mae modd defnyddio'r gorchymyn hwn ym maes \"Gorchymyn argraffu\" deialog "
-"nifer o raglenni. Ond peidiwch ā rhoi'r enw ffeil yma oherwydd bod y ffeil "
-"i'w argraffu wedi ei ddarparu gan y rhaglen.\n"
-
-#: ../../printerdrake.pm_.c:1708 ../../printerdrake.pm_.c:1718
-msgid ""
-"To get a list of the options available for the current printer click on the "
-"\"Print option list\" button."
-msgstr ""
-"I edrych ar y rhestr o'r dewisiadau sydd ar gael ar gyfer yr argraffydd "
-"cyfredol cliciwch ar fotwm \"Rhestr dewisiadau argraffu\"."
-
-#: ../../printerdrake.pm_.c:1721
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\" or \"%s <file>\".\n"
-msgstr ""
-"I argraffu ffeil o'r llinell orchymyn (ffenestr terfynnell) defnyddiwch y "
-"gorchymyn \"%s <file>\" or \"%s <file>\".\n"
-
-#: ../../printerdrake.pm_.c:1725
-msgid ""
-"You can also use the graphical interface \"xpdq\" for setting options and "
-"handling printing jobs.\n"
-"If you are using KDE as desktop environment you have a \"panic button\", an "
-"icon on the desktop, labeled with \"STOP Printer!\", which stops all print "
-"jobs immediately when you click it. This is for example useful for paper "
-"jams.\n"
-msgstr ""
-"Mae modd hefyd i ddefnyddio rhag wyneb graffigol \"xpdq\" i osod dewisiadau "
-"a thrin gwaith argraffu.\n"
-"\n"
-"Os ydych yn defnyddio KDE fel amgylchedd pen bwrdd mae gennych \"botwm "
-"argyfwng\", eicon ar y pen bwrdd, wedi ei labelu \"Atal yr Argraffydd!\", "
-"fydd yn stopio 'r holl waith argraffu'n syth pan fyddwch yn ei glicio. Mae "
-"hyn yn ddefnyddiol pan fydd y papur wedi mynd yn sownd, ag ati.\n"
-
-#: ../../printerdrake.pm_.c:1729
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" and \"%s\" commands also allow to modify the option settings for "
-"a particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\".\n"
-msgstr ""
-"\n"
-"Mae'r gorchmynion \"%s\" a \"%s\" hefyd yn caniatįu newid y gosodiadau dewis "
-"ar gyfer tasg argraffu penodol. Ychwanegwch y gosodiadau angenrheidiol i'r "
-"llinell gorchymyn, e.e \"%s <file>\".\n"
-
-#: ../../printerdrake.pm_.c:1738 ../../printerdrake.pm_.c:1744
-#: ../../printerdrake.pm_.c:1745 ../../printerdrake.pm_.c:1746
-#: ../../printerdrake.pm_.c:2716 ../../standalone/drakbackup_.c:754
-#: ../../standalone/drakbackup_.c:2458 ../../standalone/drakfont_.c:577
-#: ../../standalone/drakfont_.c:791
-msgid "Close"
-msgstr "Cau"
-
-#: ../../printerdrake.pm_.c:1741 ../../printerdrake.pm_.c:1753
-#, c-format
-msgid "Printing/Scanning on \"%s\""
-msgstr "Argraffu/Sganio ar \"%s\""
-
-#: ../../printerdrake.pm_.c:1742 ../../printerdrake.pm_.c:1754
-#, c-format
-msgid "Printing on the printer \"%s\""
-msgstr "Argraffu ar argraffydd \"%s\""
-
-#: ../../printerdrake.pm_.c:1744
-msgid "Print option list"
-msgstr "Rhestr ddewis argraffu"
-
-#: ../../printerdrake.pm_.c:1766
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan with \"scanimage\" (\"scanimage -d hp:%s\" to specify "
-"the scanner when you have more than one) from the command line or with the "
-"graphical interfaces \"xscanimage\" or \"xsane\". If you are using the GIMP, "
-"you can also scan by choosing the appropriate point in the \"File\"/\"Acquire"
-"\" menu. Call also \"man scanimage\" and \"man sane-hp\" on the command line "
-"to get more information.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-"Mae eich dyfais aml bwrpas HP wedi cael ei ffurfweddu'n awtomatig i fedru "
-"sganio. Mae modd i chi sganio gyda \"scanimage\" (\"scanimage -d hp:%s\" i "
-"bennu pa un os oes gennych fwy nag un) o'r llinell orchymyn neu gyda rhag "
-"wynebau graffigol \"xscanimage\" neu \"xsane\". Os ydych yn defnyddio GIMP, "
-"medrwch sganio hefyd, drwy ddewis y man priodol yn y ddewislen \"Ffeil\"/"
-"\"Cipio\". Galwch hefyd \"man scanimage\" a \"man sane-hp\" ar y linell "
-"orchymyn i dderbyn mwy o wybodaeth.\n"
-"\n"
-"Peidiwch defnyddio \"scannerdrake\" ar gyfer y ddyfais hon."
-
-#: ../../printerdrake.pm_.c:1772
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan from the command line with \"ptal-hp %s scan ...\". "
-"Scanning via a graphical interface or from the GIMP is not supported yet for "
-"your device. More information you will find in the \"/usr/share/doc/hpoj-0.8/"
-"ptal-hp-scan.html\" file on your system. If you have an HP LaserJet 1100 or "
-"1200 you can only scan when you have the scanner option installed.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-"Mae eich dyfais aml bwrpas HP wedi cael ei ffurfweddu'n awtomatig i fedru "
-"sganio. Medrwch sganio o'r llinell orchymyn gyda \"ptal-hp %s scan ...\".. "
-"Nid yw sganio drwy gyfrwng rhyng wyneb graffigol na GIMP yn cael ei gynnal "
-"eto ar gyfer eich dyfais. Mae rhagor o wybodaeth i'w gael yn ffeil \"/usr/"
-"share/doc/hpoj-0.8/ptal-hp-scan.html\" ar eich system. Os oes gennych HP "
-"LaserJet 1100 neu 1200 yna dim ond os oes gennych y dewis sganio wedi ei "
-"osod mae modd sganio.\n"
-"Peidiwch defnyddio \"scannerdrake\" ar gyfer y ddyfais hon."
-
-#: ../../printerdrake.pm_.c:1794 ../../printerdrake.pm_.c:2221
-#: ../../printerdrake.pm_.c:2485 ../../standalone/printerdrake_.c:49
-msgid "Reading printer data ..."
-msgstr "Darllen data argraffydd..."
-
-#: ../../printerdrake.pm_.c:1814 ../../printerdrake.pm_.c:1842
-#: ../../printerdrake.pm_.c:1877
-msgid "Transfer printer configuration"
-msgstr "Trosglwyddo ffurfweddiad yr argraffydd"
-
-#: ../../printerdrake.pm_.c:1815
-#, c-format
-msgid ""
-"You can copy the printer configuration which you have done for the spooler %"
-"s to %s, your current spooler. All the configuration data (printer name, "
-"description, location, connection type, and default option settings) is "
-"overtaken, but jobs will not be transferred.\n"
-"Not all queues can be transferred due to the following reasons:\n"
-msgstr ""
-"Mae modd i chi gopļo ffurfweddiad yr argraffydd fel wnaethoch o yspwlydd %s "
-"i %s eich yspwlydd cyfredol. Bydd yr holl ddata ffurfweddi (enw argraffydd, "
-"disgrifiad, lleoliad, math o gysylltiad a gosodiadau dewis rhagosodedig) yn "
-"cael eu trosi, ond ni fydd y gwaith argraffu'n cael eu trosi.\n"
-"Ni fydd yr holl waith argraffu'n cael eu trosi, am y rhesymau canlynol:\n"
-
-#: ../../printerdrake.pm_.c:1818
-msgid ""
-"CUPS does not support printers on Novell servers or printers sending the "
-"data into a free-formed command.\n"
-msgstr ""
-"Nid yw CUPS yn cefnogi argraffyddion ar wasanaethwyr Novell neu "
-"argraffyddion sy'n anfon data mewn gorchymyn ffurf -rhydd.\n"
-
-#: ../../printerdrake.pm_.c:1820
-msgid ""
-"PDQ only supports local printers, remote LPD printers, and Socket/TCP "
-"printers.\n"
-msgstr ""
-"Mae PDQ yn cynnal argraffyddion lleol, LDP pell, a Socket/TCP, yn unig.\n"
-
-#: ../../printerdrake.pm_.c:1822
-msgid "LPD and LPRng do not support IPP printers.\n"
-msgstr "Nid yw LPD na LPRng yn cynnal argraffyddion IPP.\n"
-
-#: ../../printerdrake.pm_.c:1824
-msgid ""
-"In addition, queues not created with this program or \"foomatic-configure\" "
-"cannot be transferred."
-msgstr ""
-"Yn ogystal, nid oes modd trosglwyddo rhesi grewyd gan y rhaglen hon na "
-"\"foomatic-configure\"."
-
-#: ../../printerdrake.pm_.c:1825
-msgid ""
-"\n"
-"Also printers configured with the PPD files provided by their manufacturers "
-"or with native CUPS drivers cannot be transferred."
-msgstr ""
-"\n"
-"Hefyd nid oes modd trosglwyddo argraffyddion ffurfweddwyd gyda ffeiliau PPD "
-"ddarparwyd gan eu gwneuthurwyr na gyrrwyr CUPS brodorol."
-
-#: ../../printerdrake.pm_.c:1826
-msgid ""
-"\n"
-"Mark the printers which you want to transfer and click \n"
-"\"Transfer\"."
-msgstr ""
-"\n"
-"Nodwch yr argraffydd rydych am ei drosglwddo a chliciwch\n"
-"\"Trosglwyddo\"."
-
-#: ../../printerdrake.pm_.c:1829
-msgid "Do not transfer printers"
-msgstr "Peidio trosglwyddo argraffydd"
-
-#: ../../printerdrake.pm_.c:1830 ../../printerdrake.pm_.c:1847
-msgid "Transfer"
-msgstr "Trosglwyddo"
-
-#: ../../printerdrake.pm_.c:1843
-#, c-format
-msgid ""
-"A printer named \"%s\" already exists under %s. \n"
-"Click \"Transfer\" to overwrite it.\n"
-"You can also type a new name or skip this printer."
-msgstr ""
-"Mae argraffydd o'r enw \"%s\" yn bodoli eisoes yn %s.\n"
-"Cliciwch \"Trosglwyddo\" i ysgrifennu drosto.\n"
-"Mae modd i chi osod enw newydd arno neu ei hepgor."
-
-#: ../../printerdrake.pm_.c:1851
-msgid "Name of printer should contain only letters, numbers and the underscore"
-msgstr ""
-"Dylai enw'r argraffydd gynnwys llythrennau, rhifau a'r tanlinellu, yn unig"
-
-#: ../../printerdrake.pm_.c:1856
-#, c-format
-msgid ""
-"The printer \"%s\" already exists,\n"
-"do you really want to overwrite its configuration?"
-msgstr ""
-"Mae argraffydd \"%s\" yn bodoli eisoes,\n"
-"ydych chi wir eisiau ailysgrifennu ei ffurfweddiad?"
-
-#: ../../printerdrake.pm_.c:1864
-msgid "New printer name"
-msgstr "Enw'r argraffydd newydd"
-
-#: ../../printerdrake.pm_.c:1867
-#, c-format
-msgid "Transferring %s ..."
-msgstr "Trosglwyddo %s..."
-
-#: ../../printerdrake.pm_.c:1878
-#, c-format
-msgid ""
-"You have transferred your former default printer (\"%s\"), Should it be also "
-"the default printer under the new printing system %s?"
-msgstr ""
-"Rydych wedi trosglwyddo eich argraffydd rhagosodedig blaenorol rhagosodedig "
-"(\"%s\"). A ddylai fod yn argraffydd rhagosodedig y system argraffu newydd %"
-"s ?"
-
-#: ../../printerdrake.pm_.c:1887
-msgid "Refreshing printer data ..."
-msgstr "Adnewyddu data'r argraffydd..."
-
-#: ../../printerdrake.pm_.c:1895 ../../printerdrake.pm_.c:1966
-#: ../../printerdrake.pm_.c:1978
-msgid "Configuration of a remote printer"
-msgstr "Ffurfweddiad argraffydd pell"
-
-#: ../../printerdrake.pm_.c:1896
-msgid "Starting network ..."
-msgstr "Cychwyn y rhwydwaith..."
-
-#: ../../printerdrake.pm_.c:1930 ../../printerdrake.pm_.c:1934
-#: ../../printerdrake.pm_.c:1936
-msgid "Configure the network now"
-msgstr "Ffurfweddwch y rhwydwaith"
-
-#: ../../printerdrake.pm_.c:1931
-msgid "Network functionality not configured"
-msgstr "Nid yw swyddogaethau'r rhwydwaith wedi ei ffurfweddu"
-
-#: ../../printerdrake.pm_.c:1932
-msgid ""
-"You are going to configure a remote printer. This needs working network "
-"access, but your network is not configured yet. If you go on without network "
-"configuration, you will not be able to use the printer which you are "
-"configuring now. How do you want to proceed?"
-msgstr ""
-"Ydych chi am ffurfweddi argraffydd pell. Mae hyn angen mynediad ar "
-"rwydwaith, ond nid yw eich rhwydwaith wedi ei ffurfweddu eto. Os ydych am "
-"fynd ymlaen heb ffurfweddiad rhwydwaith, ni bydd modd i chi ddefnyddio'r "
-"argraffydd rydych yn ei ffurfweddu ar hyn o bryd. Beth ydych am ei wneud?"
-
-#: ../../printerdrake.pm_.c:1935
-msgid "Go on without configuring the network"
-msgstr "Mynd yn eich blaen heb ffurfweddu'r rhwydwaith"
-
-#: ../../printerdrake.pm_.c:1968
-msgid ""
-"The network configuration done during the installation cannot be started "
-"now. Please check whether the network gets accessable after booting your "
-"system and correct the configuration using the Mandrake Control Center, "
-"section \"Network & Internet\"/\"Connection\", and afterwards set up the "
-"printer, also using the Mandrake Control Center, section \"Hardware\"/"
-"\"Printer\""
-msgstr ""
-"Nid oes modd cychwyn y ffurfweddiad rhwydwaith wnaed yn ystod y gosodiad. "
-"Gwiriwch p'un ai yw'r rhwydwaith yn darparu mynediad ar ōl cychwyn eich "
-"system a chywiro'r ffurfweddiad gan ddefnyddio Canolfan Rheoli Mandrake, "
-"adran \"Rhwydwaith a'r Rhyngrwyd\"/\"Cysylltiad\", ac yna gosod yr "
-"argraffydd, eto gan ddefnyddio Canolfan Rheoli Mandrake, adran \"Caledwedd\"/"
-"\"Argraffydd\""
-
-#: ../../printerdrake.pm_.c:1969
-msgid ""
-"The network access was not running and could not be started. Please check "
-"your configuration and your hardware. Then try to configure your remote "
-"printer again."
-msgstr ""
-"Nid oedd mynediad i'r rhwydwaith yn rhedeg ac nid oedd modd ei gychwyn. "
-"Gwiriwch eich ffurfweddiad a'ch caledwedd. Yna ceisiwch ail ffurfweddi eich "
-"argraffydd."
-
-#: ../../printerdrake.pm_.c:1979
-msgid "Restarting printing system ..."
-msgstr "Ailgychwyn system argraffu..."
-
-#: ../../printerdrake.pm_.c:2017
-msgid "high"
-msgstr "uchel"
-
-#: ../../printerdrake.pm_.c:2017
-msgid "paranoid"
-msgstr "Paranoia"
-
-#: ../../printerdrake.pm_.c:2018
-#, c-format
-msgid "Installing a printing system in the %s security level"
-msgstr "Gosod system argraffu yn lefel diogelwch %s"
-
-#: ../../printerdrake.pm_.c:2019
-#, c-format
-msgid ""
-"You are about to install the printing system %s on a system running in the %"
-"s security level.\n"
-"\n"
-"This printing system runs a daemon (background process) which waits for "
-"print jobs and handles them. This daemon is also accessable by remote "
-"machines through the network and so it is a possible point for attacks. "
-"Therefore only a few selected daemons are started by default in this "
-"security level.\n"
-"\n"
-"Do you really want to configure printing on this machine?"
-msgstr ""
-"Rydych ar fin gosod system argraffu %s ar system sy'n rhedeg lefel diogelwch "
-"%s. \n"
-"\n"
-"Mae'r system yn rhedeg daemon (proses gefndirol) sy'n aros am waith argraffu "
-"ac yna yn eu trin. Mae'r daemon hefyd yn gyraeddadwy gan beiriannau pell "
-"drwy'r rhwydwaith ac felly'n bwynt ymosod. Felly, dim ond ychydig o "
-"ddaemonau sy'n cael eu cychwyn yn rhagosodedig, ar y lefel diogelwch hwn.\n"
-"\n"
-"Ydych chi wir eisiau ffurfweddu argraffu ar y peiriant hwn?"
-
-#: ../../printerdrake.pm_.c:2051
-msgid "Starting the printing system at boot time"
-msgstr "Cychwyn y system argraffu wrth gychwyn y cyfrifiadur"
-
-#: ../../printerdrake.pm_.c:2052
-#, c-format
-msgid ""
-"The printing system (%s) will not be started automatically when the machine "
-"is booted.\n"
-"\n"
-"It is possible that the automatic starting was turned off by changing to a "
-"higher security level, because the printing system is a potential point for "
-"attacks.\n"
-"\n"
-"Do you want to have the automatic starting of the printing system turned on "
-"again?"
-msgstr ""
-"Ni fydd system argraffu (%s) yn cychwyn yn awtomatig pan fydd y peiriant yn "
-"cael ei gychwyn.\n"
-"\n"
-"Mae'n bosibl fod y cychwyn awtomatig wedi ei ddiffodd wrth newid i lefel "
-"diogelwch uwch, am fod a system argraffu'n bwynt tebygol ar gyfer "
-"ymosodiadau.\n"
-"\n"
-"Ydych chi am i'r cychwyn awtomatig gael ei droi ymlaen eto?"
-
-#: ../../printerdrake.pm_.c:2075 ../../printerdrake.pm_.c:2113
-#: ../../printerdrake.pm_.c:2143 ../../printerdrake.pm_.c:2176
-#: ../../printerdrake.pm_.c:2281
-msgid "Checking installed software..."
-msgstr "Gwirio'r meddalwedd sydd wedi ei osod..."
-
-#: ../../printerdrake.pm_.c:2117
-msgid "Removing LPRng..."
-msgstr "Tynnu LPRng..."
-
-#: ../../printerdrake.pm_.c:2147
-msgid "Removing LPD..."
-msgstr "Tynnu LPD..."
-
-#: ../../printerdrake.pm_.c:2205
-msgid "Select Printer Spooler"
-msgstr "Dewiswch Sbwlydd Argraffydd"
-
-#: ../../printerdrake.pm_.c:2206
-msgid "Which printing system (spooler) do you want to use?"
-msgstr "Pa system argraffu(sbwlydd) ydych chi am ei ddefnyddio?"
-
-#: ../../printerdrake.pm_.c:2239
-#, c-format
-msgid "Configuring printer \"%s\" ..."
-msgstr "Ffurfweddu argraffydd \"%s\" ..."
-
-#: ../../printerdrake.pm_.c:2252
-msgid "Installing Foomatic ..."
-msgstr "Gosod Foomatic..."
-
-#: ../../printerdrake.pm_.c:2309 ../../printerdrake.pm_.c:2348
-#: ../../printerdrake.pm_.c:2733 ../../printerdrake.pm_.c:2803
-msgid "Printer options"
-msgstr "Dewisiadau argraffydd"
-
-#: ../../printerdrake.pm_.c:2318
-msgid "Preparing PrinterDrake ..."
-msgstr "Paratoi PrinterDrake..."
-
-#: ../../printerdrake.pm_.c:2335 ../../printerdrake.pm_.c:2890
-msgid "Configuring applications..."
-msgstr "Ffurfweddi'u rhaglenni"
-
-#: ../../printerdrake.pm_.c:2355
-msgid "Would you like to configure printing?"
-msgstr "Hoffech chi ffurfweddu argraffu?"
-
-#: ../../printerdrake.pm_.c:2367
-msgid "Printing system: "
-msgstr "System argraffu."
-
-#: ../../printerdrake.pm_.c:2415
-msgid "Printerdrake"
-msgstr "Printerdrake"
-
-#: ../../printerdrake.pm_.c:2419
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; to view information about it; "
-"or to make a printer on a remote CUPS server available for Star Office/"
-"OpenOffice.org."
-msgstr ""
-"Mae'r argraffyddion canlynol wedi eu ffurfweddu. Cliciwch ar un i newid ei "
-"osodiadau; ei wneud yn argraffydd rhagosodedig; i edrych am wybodaeth "
-"amdano; neu i wneud argraffydd CUPS pell ar gael ar gyfer Star Office/"
-"OpenOffice.org."
-
-#: ../../printerdrake.pm_.c:2420
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; or to view information about "
-"it."
-msgstr ""
-"Mae'r argraffyddion canlynol wedi eu ffurfweddi. Cliciwch ar un i newid ei "
-"osodiadau; ei wneud yn argraffydd rhagosodedig; i edrych am wybodaeth amdano."
-
-#: ../../printerdrake.pm_.c:2446
-msgid "Refresh printer list (to display all available remote CUPS printers)"
-msgstr ""
-"Adnewyddu rhestr argraffyddion (dangos pob argraffydd CUPS pell sydd ar gael)"
-
-#: ../../printerdrake.pm_.c:2464
-msgid "Change the printing system"
-msgstr "Newidiwch y system argraffu"
-
-#: ../../printerdrake.pm_.c:2469 ../../standalone/draknet_.c:278
-msgid "Normal Mode"
-msgstr "Modd Arferol"
-
-#: ../../printerdrake.pm_.c:2625 ../../printerdrake.pm_.c:2675
-#: ../../printerdrake.pm_.c:2884
-msgid "Do you want to configure another printer?"
-msgstr "Ydych chi eisiau ffurfwedu argraffydd arall?"
-
-#: ../../printerdrake.pm_.c:2711
-msgid "Modify printer configuration"
-msgstr "Newid ffurfweddiad yr argraffydd"
-
-#: ../../printerdrake.pm_.c:2713
-#, c-format
-msgid ""
-"Printer %s\n"
-"What do you want to modify on this printer?"
-msgstr ""
-"Argraffydd %s\n"
-"Beth ydych am ei newid ar yr argraffydd hwn?"
-
-#: ../../printerdrake.pm_.c:2717
-msgid "Do it!"
-msgstr "Gwna!!"
-
-#: ../../printerdrake.pm_.c:2722 ../../printerdrake.pm_.c:2777
-msgid "Printer connection type"
-msgstr "Math o gyswllt argraffydd"
-
-#: ../../printerdrake.pm_.c:2723 ../../printerdrake.pm_.c:2781
-msgid "Printer name, description, location"
-msgstr "Enw'r argraffydd, disgrifiad, lleoliad"
-
-#: ../../printerdrake.pm_.c:2725 ../../printerdrake.pm_.c:2796
-msgid "Printer manufacturer, model, driver"
-msgstr "Gwneuthurwr yr argraffydd, model, gyrrwr"
-
-#: ../../printerdrake.pm_.c:2726 ../../printerdrake.pm_.c:2797
-msgid "Printer manufacturer, model"
-msgstr "Gwneuthurwr yr argraffydd, model"
-
-#: ../../printerdrake.pm_.c:2735 ../../printerdrake.pm_.c:2807
-msgid "Set this printer as the default"
-msgstr "Gosod yr argraffydd fel y rhagosodedig"
-
-#: ../../printerdrake.pm_.c:2737 ../../printerdrake.pm_.c:2812
-msgid "Add this printer to Star Office/OpenOffice.org"
-msgstr "Ychwanegwchyr argraffydd hwn i Star Office/OpenOffice.org"
-
-#: ../../printerdrake.pm_.c:2738 ../../printerdrake.pm_.c:2821
-msgid "Remove this printer from Star Office/OpenOffice.org"
-msgstr "Tynnwch yr argraffydd hwn o Star Office/OpenOffice.org"
-
-#: ../../printerdrake.pm_.c:2739 ../../printerdrake.pm_.c:2830
-msgid "Print test pages"
-msgstr "Argraffu tudalennau prawf"
-
-#: ../../printerdrake.pm_.c:2740 ../../printerdrake.pm_.c:2832
-msgid "Know how to use this printer"
-msgstr "Gwybod sut i ddefnyddio'r argraffydd"
-
-#: ../../printerdrake.pm_.c:2742 ../../printerdrake.pm_.c:2834
-msgid "Remove printer"
-msgstr "Tynnu argraffydd"
-
-#: ../../printerdrake.pm_.c:2786
-#, c-format
-msgid "Removing old printer \"%s\" ..."
-msgstr "Tynnu hen argraffydd \"%s\"..."
-
-#: ../../printerdrake.pm_.c:2810
-msgid "Default printer"
-msgstr "Argraffydd rhagosodedig"
-
-#: ../../printerdrake.pm_.c:2811
-#, c-format
-msgid "The printer \"%s\" is set as the default printer now."
-msgstr "Mae argraffydd \"%s\" wedi ei osod fel yr argraffydd rhagosodedig."
-
-#: ../../printerdrake.pm_.c:2815 ../../printerdrake.pm_.c:2818
-msgid "Adding printer to Star Office/OpenOffice.org"
-msgstr "Ychwanegu argraffydd i Star Office/OpenOffice.org"
-
-#: ../../printerdrake.pm_.c:2816
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully added to Star Office/OpenOffice.org."
-msgstr ""
-"Mae argraffydd \"%s\" wedi ei ychwanegu'n llwyddiannus i Star Office/"
-"OpenOffice.org."
-
-#: ../../printerdrake.pm_.c:2819
-#, c-format
-msgid "Failed to add the printer \"%s\" to Star Office/OpenOffice.org."
-msgstr ""
-"Wedi methu ag ychwanegu argraffydd \"%s\" i Star Office/OpenOffice.org."
-
-#: ../../printerdrake.pm_.c:2824 ../../printerdrake.pm_.c:2827
-msgid "Removing printer from Star Office/OpenOffice.org"
-msgstr "Tynnu'r argraffydd o Star Office/OpenOffice.org."
-
-#: ../../printerdrake.pm_.c:2825
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully removed from Star Office/OpenOffice.org."
-msgstr ""
-"Cafodd argraffydd \"%s\" ei dynnu'n llwyddiannus o Star Office/OpenOffice."
-"org."
-
-#: ../../printerdrake.pm_.c:2828
-#, c-format
-msgid "Failed to remove the printer \"%s\" from Star Office/OpenOffice.org."
-msgstr "Methwyd ā thynnu argraffydd \"%s\" o Star Office/OpenOffice.org."
-
-#: ../../printerdrake.pm_.c:2836
-#, c-format
-msgid "Do you really want to remove the printer \"%s\"?"
-msgstr "Ydych chi wir eisiau tynnu argraffydd \"%s\""
-
-#: ../../printerdrake.pm_.c:2838
-#, c-format
-msgid "Removing printer \"%s\" ..."
-msgstr "Tynnu argraffydd \"%s\"..."
-
-#: ../../proxy.pm_.c:29 ../../proxy.pm_.c:37 ../../proxy.pm_.c:58
-#: ../../proxy.pm_.c:78
-msgid "Proxy configuration"
-msgstr "Ffurfweddu dirprwy"
-
-#: ../../proxy.pm_.c:30
-msgid ""
-"Welcome to the proxy configuration utility.\n"
-"\n"
-"Here, you'll be able to set up your http and ftp proxies\n"
-"with or without login and password\n"
-msgstr ""
-"Croeso i'r gwasanaeth ffurfweddu 'r dirprwy.\n"
-"\n"
-"Yma bydd modd i chi osod eich dirprwyon http a ftp gyda\n"
-"neu heb mewngofnod a chyfrinair\n"
-
-#: ../../proxy.pm_.c:38
-msgid ""
-"Please fill in the http proxy informations\n"
-"Leave it blank if you don't want an http proxy"
-msgstr ""
-"Rhowch y wybodaethar gyfer dirprwyo http\n"
-"Gadewch hwn yn wag os nad ydych eisiau dirprwy http"
-
-#: ../../proxy.pm_.c:39 ../../proxy.pm_.c:60
-msgid "URL"
-msgstr "URL"
-
-#: ../../proxy.pm_.c:40 ../../proxy.pm_.c:61
-msgid "port"
-msgstr "porth"
-
-#: ../../proxy.pm_.c:44
-msgid "Url should begin with 'http:'"
-msgstr "Dylai'r URL ddechrau gyda \"http:\""
-
-#: ../../proxy.pm_.c:48 ../../proxy.pm_.c:69
-msgid "The port part should be numeric"
-msgstr "Dylai'r rhan porth fod yn rhifol"
-
-#: ../../proxy.pm_.c:59
-msgid ""
-"Please fill in the ftp proxy informations\n"
-"Leave it blank if you don't want an ftp proxy"
-msgstr ""
-"Llanwxh y gwybodaeth dirprwy ftp\n"
-"Gadewch yn wag os nad ydych eisiau dirprwy ftp"
-
-#: ../../proxy.pm_.c:65
-msgid "Url should begin with 'ftp:'"
-msgstr "Dylai'r URL ddechrau gyda 'ftp:'"
-
-#: ../../proxy.pm_.c:79
-msgid ""
-"Please enter proxy login and password, if any.\n"
-"Leave it blank if you don't want login/passwd"
-msgstr ""
-"Rhowch mewngofnod a chyfrinair dirprwyol, os oes angen.\n"
-"Gadwech yn wag os nad ydych am gael mewngofnod a chyfrinair"
-
-#: ../../proxy.pm_.c:80
-msgid "login"
-msgstr "mewngofnodi"
-
-#: ../../proxy.pm_.c:82
-msgid "password"
-msgstr "cyfrinair"
-
-#: ../../proxy.pm_.c:84
-msgid "re-type password"
-msgstr "aildeipiwch y gyfrinair"
-
-#: ../../proxy.pm_.c:88
-msgid "The passwords don't match. Try again!"
-msgstr "Nid yw'r cyfrineiriau'n cydweddi. Rhowch gynnig arall arni!"
-
-#: ../../raid.pm_.c:35
-#, c-format
-msgid "Can't add a partition to _formatted_ RAID md%d"
-msgstr "Methu ychwanegu rhaniad to_formatted_RAID md%d"
-
-#: ../../raid.pm_.c:111
-#, c-format
-msgid "Can't write file %s"
-msgstr "Methu ysgrifenu ffeil %s"
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed"
-msgstr "methodd mkraid"
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed (maybe raidtools are missing?)"
-msgstr "methodd mkraid (efallai bod raidtools ar goll)"
-
-#: ../../raid.pm_.c:152
-#, c-format
-msgid "Not enough partitions for RAID level %d\n"
-msgstr "Dim digon o raniadau ar gyfer RAID lefel %d\n"
-
-#: ../../services.pm_.c:14
-msgid "Launch the ALSA (Advanced Linux Sound Architecture) sound system"
-msgstr "Cychwynnwch system sain ALSA (Pensaernļaeth Sain Linux Uwch)"
-
-#: ../../services.pm_.c:15
-msgid "Anacron a periodic command scheduler."
-msgstr "Anacron trefnydd gorchymyn cyfnodol"
-
-#: ../../services.pm_.c:16
-msgid ""
-"apmd is used for monitoring batery status and logging it via syslog.\n"
-"It can also be used for shutting down the machine when the battery is low."
-msgstr ""
-"Mae apmd yn cael ei ddefnyddio i fonitro statws y batri a \n"
-"mewngofnodi drwy syslog. Mae modd ei ddefnyddio i gau'r \n"
-"peiriant pan mae'r batri'n isel."
-
-#: ../../services.pm_.c:18
-msgid ""
-"Runs commands scheduled by the at command at the time specified when\n"
-"at was run, and runs batch commands when the load average is low enough."
-msgstr ""
-"Mae'n rhedeg gorchmynion wedi eu trefnu gan y gorchymyn at ar amser wedi \n"
-"ei bennu pan oedd at yn rhedeg, gan rhedeg gorchmynion swp pan fydd \n"
-"cyfartaledd y llwyth yn ddigon isel."
-
-#: ../../services.pm_.c:20
-msgid ""
-"cron is a standard UNIX program that runs user-specified programs\n"
-"at periodic scheduled times. vixie cron adds a number of features to the "
-"basic\n"
-"UNIX cron, including better security and more powerful configuration options."
-msgstr ""
-"Mae cron yn rhaglen safonnol yn UNIX sy'n rhedeg rhaglenni sydd wedi eu \n"
-"pennu gan y defnyddiwr ar adegau penodol. Mae vixie cron yn ychwanegu \n"
-"nifer o ychwanegiadau i'r UNIX cron sylfaenol, yn cynnwys gwell diogelwch \n"
-"a dewisiadau ffurfweddu mwy pwerus."
-
-#: ../../services.pm_.c:23
-msgid ""
-"GPM adds mouse support to text-based Linux applications such the\n"
-"Midnight Commander. It also allows mouse-based console cut-and-paste "
-"operations,\n"
-"and includes support for pop-up menus on the console."
-msgstr ""
-"Mae GPM yn ychwanegu cefnogaeth ar gyfer llygoden i raglenni testun Linux \n"
-"megis, Midnight Commander. Mae hefyd yn caniatįu gweithrediadau torri a \n"
-"gludo consol llygoden, gan gynnwys cefnogaeth ar gyfer bryslenni yn y "
-"consol. "
-
-#: ../../services.pm_.c:26
-msgid ""
-"HardDrake runs a hardware probe, and optionally configures\n"
-"new/changed hardware."
-msgstr ""
-"Mae HardDrake yn rhedeg archwiliwr caledwedd, a gall yn ōl \n"
-"eich dewis, ffurfweddu caledwedd newydd neu sydd wedi newid."
-
-#: ../../services.pm_.c:28 ../../standalone/logdrake_.c:412
-msgid ""
-"Apache is a World Wide Web server. It is used to serve HTML files and CGI."
-msgstr ""
-"Mae Apache yn wasanaethwr y We Fyd Eang. Mae'n cael ei ddefnyddio "
-"iwasanaethu ffeiliau HTML a CGI."
-
-#: ../../services.pm_.c:29
-msgid ""
-"The internet superserver daemon (commonly called inetd) starts a\n"
-"variety of other internet services as needed. It is responsible for "
-"starting\n"
-"many services, including telnet, ftp, rsh, and rlogin. Disabling inetd "
-"disables\n"
-"all of the services it is responsible for."
-msgstr ""
-"Mae daemon uwchwasanaethwr rhyngrwyd (inetd) yn cychwyn nifer\n"
-"o wasanaethau rhyngrwyd eraill, yn ōl y galw. Mae'n gyfrifol am gychwyn\n"
-"nifer o wasanaethau, gan gynnwys telnet, ftp, rsh a rlogin. Mae analluogi \n"
-"inetd yn analluogi'r holl wasanaethau mae'n gyfrifol amdanynt."
-
-#: ../../services.pm_.c:33
-msgid ""
-"Launch packet filtering for Linux kernel 2.2 series, to set\n"
-"up a firewall to protect your machine from network attacks."
-msgstr ""
-"Cychwyn hidlydd pecynnau ar gyfer cnewyllyn cyfres Linux 2.2 \n"
-"i greu mur gwarchod i amddiffyn eich peiriant rhag ymosodiadau \n"
-"o'r rhwydwaith."
-
-#: ../../services.pm_.c:35
-msgid ""
-"This package loads the selected keyboard map as set in\n"
-"/etc/sysconfig/keyboard. This can be selected using the kbdconfig utility.\n"
-"You should leave this enabled for most machines."
-msgstr ""
-"Mae'r pecyn hwn yn llwytho'r map bysellfwrdd rydych wedi \n"
-"ei ddewis fel yn /etc/sysconfig/keyboard. Mae modd dewis \n"
-"hwn wrth ddefnyddio'r rhaglen wasanaethu kbdconfig. \n"
-"Dylech adael hwn wedi ei alluogi ar gyfer y rhanfwyaf o beiriannau."
-
-#: ../../services.pm_.c:38
-msgid ""
-"Automatic regeneration of kernel header in /boot for\n"
-"/usr/include/linux/{autoconf,version}.h"
-msgstr ""
-"Ailgreu awtomatic pennawd y cnewyllyn yn /boot ar\n"
-"gyfer /usr/include/linux{autoconf,version}.h"
-
-#: ../../services.pm_.c:40
-msgid "Automatic detection and configuration of hardware at boot."
-msgstr "Canfod a ffurfweddu awtomatic caledwedd wrth gychwyn y cyfrifiadur."
-
-#: ../../services.pm_.c:41
-msgid ""
-"Linuxconf will sometimes arrange to perform various tasks\n"
-"at boot-time to maintain the system configuration."
-msgstr "Bydd Linuxconf yn trefnu ar adegau i gyflawnu amrywiol"
-
-#: ../../services.pm_.c:43
-msgid ""
-"lpd is the print daemon required for lpr to work properly. It is\n"
-"basically a server that arbitrates print jobs to printer(s)."
-msgstr ""
-"Mae lpd yn ddaemon argraffu sy'n angenrheidiol i lpr weithio\n"
-"Mae'n wasanaethwr sy'n cyflafareddu gwaith argraffu i\n"
-"argraffydd (ion)."
-
-#: ../../services.pm_.c:45
-msgid ""
-"Linux Virtual Server, used to build a high-performance and highly\n"
-"available server."
-msgstr ""
-"Mae Gwasanaethwr Rhith Linux yn cael ei ddefnyddio i adeiladu \n"
-"gwasanaethwyr cyflym a chyraeddadwy."
-
-#: ../../services.pm_.c:47 ../../standalone/logdrake_.c:413
-msgid ""
-"named (BIND) is a Domain Name Server (DNS) that is used to resolve host "
-"names to IP addresses."
-msgstr ""
-"mae'r enwyd (BIND) yn Wasanaethwr Enw Parth (DNS) sy'n cael ei ddefnyddio i "
-"gydrannu enwau gwestai i'r cyfeiriadau IP."
-
-#: ../../services.pm_.c:48
-msgid ""
-"Mounts and unmounts all Network File System (NFS), SMB (Lan\n"
-"Manager/Windows), and NCP (NetWare) mount points."
-msgstr ""
-"Yn gosod a dadosod pob System Ffeil y Rhwydwaith (NFS), SMB\n"
-"(Rheolwr Rhwydwaith/Windows), a phwyntiau gosod NCP (NetWare) ."
-
-#: ../../services.pm_.c:50
-msgid ""
-"Activates/Deactivates all network interfaces configured to start\n"
-"at boot time."
-msgstr ""
-"Cychwyn/Gorffen pob rhyngwyneb rhwydwaith sydd wedi eu \n"
-"ffurfweddu i gychwyn wrth gychwyn y peiriant."
-
-#: ../../services.pm_.c:52
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP networks.\n"
-"This service provides NFS server functionality, which is configured via the\n"
-"/etc/exports file."
-msgstr ""
-"Mae NFS yn brotocol poblogaidd ar gyfer rhannu ffeiliau ar draws "
-"rhwydweithiau TCP/IP.\n"
-"Mae'r gwasanaeth yn darparu ffwythiannaeth gwasanaethwr NFS, sy;n cael ei "
-"ffurfweddu\n"
-"drwy'r ffeil /etc/exports."
-
-#: ../../services.pm_.c:55
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP\n"
-"networks. This service provides NFS file locking functionality."
-msgstr ""
-"Mae NFS yn brotocol poblogaidd ar gyfer rhannu ffeiliau \n"
-"ar draws rhwydweithiau TCP/IP. Mae'r gwasanaeth hwn \n"
-"yn darparu'r gallu i gloi ffeiliau NFS."
-
-#: ../../services.pm_.c:57
-msgid ""
-"Automatically switch on numlock key locker under console\n"
-"and XFree at boot."
-msgstr ""
-"Cychwyn clo allweddell numlock yn awtomatig yn consol \n"
-"ac XFree wrth gychwyn y peiriant."
-
-#: ../../services.pm_.c:59
-msgid "Support the OKI 4w and compatible winprinters."
-msgstr "Cynnal OKI 4w ac argraffyddion windows cyffelyb."
-
-#: ../../services.pm_.c:60
-msgid ""
-"PCMCIA support is usually to support things like ethernet and\n"
-"modems in laptops. It won't get started unless configured so it is safe to "
-"have\n"
-"it installed on machines that don't need it."
-msgstr ""
-"Mae cynhaliaeth PCMICA fel rheol ar gyfer cynnal pethau fel \n"
-"ethernet a modem mewn gliniadur. Ni fydd yn cychwyn heb ei \n"
-"ffurfweddu i wneud hynny, felly mae'n ddiogel ei gael ar beiriannau \n"
-"sydd ddim ei angen."
-
-#: ../../services.pm_.c:63
-msgid ""
-"The portmapper manages RPC connections, which are used by\n"
-"protocols such as NFS and NIS. The portmap server must be running on "
-"machines\n"
-"which act as servers for protocols which make use of the RPC mechanism."
-msgstr ""
-"Mae'r mapiwr porth (portmapper) yn rheoli cysylltiadau RPC, \n"
-"sy'n cael eu defnyddio gan brotocolau fel NFS a NIS. Rhaid i wasanaethwr "
-"porthmap\n"
-"redeg ar beiriannau sy'n gweithredu fel gwasanaethwyr ar gyfer protocolau "
-"sy'n\n"
-"gwneud defnydd o fecanwaith RPC."
-
-#: ../../services.pm_.c:66 ../../standalone/logdrake_.c:415
-msgid ""
-"Postfix is a Mail Transport Agent, which is the program that moves mail from "
-"one machine to another."
-msgstr ""
-"Mae Postfix yn Asiant Cludo E-bost (MTA), sef rhaglen sy'nsymud e-bost o un "
-"peiriant i'r llall."
-
-#: ../../services.pm_.c:67
-msgid ""
-"Saves and restores system entropy pool for higher quality random\n"
-"number generation."
-msgstr ""
-"Bydd yn cadw ac adfer system pwll entropi ar gyfer cynhyrchu rhif \n"
-"hap o ansawdd uchel."
-
-#: ../../services.pm_.c:69
-msgid ""
-"Assign raw devices to block devices (such as hard drive\n"
-"partitions), for the use of applications such as Oracle"
-msgstr "Dynodi dyfeisiadau"
-
-#: ../../services.pm_.c:71
-msgid ""
-"The routed daemon allows for automatic IP router table updated via\n"
-"the RIP protocol. While RIP is widely used on small networks, more complex\n"
-"routing protocols are needed for complex networks."
-msgstr ""
-"Mae'r daemon llwybrydd yn caniatįu i'r tabl llwybrydd IP awtomatig \n"
-"ddiweddaru drwy gyfrwng y protocol RIP. Tra bo RIP'n cael ei \n"
-"ddefnyddio'n eang ar rhwydweithiau bach, mae angen protocolau \n"
-"llwybrydd mwy cymleth ar gyfer rhwydweithiwu cymleth."
-
-#: ../../services.pm_.c:74
-msgid ""
-"The rstat protocol allows users on a network to retrieve\n"
-"performance metrics for any machine on that network."
-msgstr ""
-"Mae'r protocol rstat yn caniatįu i ddefnyddwyr rhwydwaith \n"
-"i adennill metric perfformaid unrhyw beiriant ar y rhwydwaith."
-
-#: ../../services.pm_.c:76
-msgid ""
-"The rusers protocol allows users on a network to identify who is\n"
-"logged in on other responding machines."
-msgstr ""
-"Mae protocol ruser yn caniatįu i ddefnyddwyr ar rwydwaith i adnabod\n"
-"pwy arall sydd wedi mewngofnodi ar beirianau eraill sy'n ymateb."
-
-#: ../../services.pm_.c:78
-msgid ""
-"The rwho protocol lets remote users get a list of all of the users\n"
-"logged into a machine running the rwho daemon (similiar to finger)."
-msgstr ""
-"Mae'r protocol rwho'n caniatįu i ddefnyddwyr pell gael rhestr o'r \n"
-"holl ddefnyddwyr sydd wedi mewngofnodi ar beiriant sy'n rhedeg \n"
-"daemon rwho (yn debyg i fysedd)."
-
-#: ../../services.pm_.c:80
-msgid "Launch the sound system on your machine"
-msgstr "Cychwyn y system sain ar eich peiriant"
-
-#: ../../services.pm_.c:81
-msgid ""
-"Syslog is the facility by which many daemons use to log messages\n"
-"to various system log files. It is a good idea to always run syslog."
-msgstr ""
-"Syslog yw'r modd mae llawer o daemonau'n defnyddio i gofnodi \n"
-"negeseuon i ffeiliau cofnod systemau. mae'n syniad da io rhedeg \n"
-"syslog bob tro."
-
-#: ../../services.pm_.c:83
-msgid "Load the drivers for your usb devices."
-msgstr "Llwytho'r gyrrwyr ar gyfer eich dyfeisiau usb."
-
-#: ../../services.pm_.c:84
-msgid "Starts the X Font Server (this is mandatory for XFree to run)."
-msgstr ""
-"Yn cychwyn Gwasanaethwr Ffont X (mae hyn yn orfodol i XFree i redeg).."
-
-#: ../../services.pm_.c:110 ../../services.pm_.c:152
-msgid "Choose which services should be automatically started at boot time"
-msgstr ""
-"Dewiswch pa wasanaethau ddylai gael eu cychwyn yn awtomatig wrth gychwyn y "
-"cyfrifiadur"
-
-#: ../../services.pm_.c:122
-msgid "Printing"
-msgstr "Argraffu"
-
-#: ../../services.pm_.c:123
-msgid "Internet"
-msgstr "Rhyngrwyd"
-
-#: ../../services.pm_.c:126
-msgid "File sharing"
-msgstr "Rhannu Ffeiliau"
-
-#: ../../services.pm_.c:128 ../../standalone/drakbackup_.c:934
-msgid "System"
-msgstr "System"
-
-#: ../../services.pm_.c:133
-msgid "Remote Administration"
-msgstr "Gweinyddu Pell"
-
-#: ../../services.pm_.c:141
-msgid "Database Server"
-msgstr "Gwasanaethwr Cronfa Ddata"
-
-#: ../../services.pm_.c:170
-#, c-format
-msgid "Services: %d activated for %d registered"
-msgstr "Gwasanaethau: %d wedi eu cychwyn ar gyfer %d wedi eu cofrestri"
-
-#: ../../services.pm_.c:186
-msgid "Services"
-msgstr "Gwasanaethau"
-
-#: ../../services.pm_.c:198
-msgid "running"
-msgstr "rhedeg"
-
-#: ../../services.pm_.c:198
-msgid "stopped"
-msgstr "ataliwyd"
-
-#: ../../services.pm_.c:212
-msgid "Services and deamons"
-msgstr "Gwasanaethau a daemonau"
-
-#: ../../services.pm_.c:217
-msgid ""
-"No additional information\n"
-"about this service, sorry."
-msgstr "Dim gwybodaeth ychwanegol am y gwasanaeth hwn."
-
-#: ../../services.pm_.c:224
-msgid "On boot"
-msgstr "Cychwyn"
-
-#: ../../services.pm_.c:236
-msgid "Start"
-msgstr "Cychwyn"
-
-#: ../../services.pm_.c:236
-msgid "Stop"
-msgstr "Aros"
-
-#: ../../share/advertising/00-thanks.pl_.c:9
-msgid "Thank you for choosing Mandrake Linux 8.2"
-msgstr "Diolch am ddewis Mandrake Linux 8.2"
-
-#: ../../share/advertising/00-thanks.pl_.c:10
-msgid "Welcome to the Open Source world"
-msgstr "Croeso i fyd Cod Agored"
-
-#: ../../share/advertising/00-thanks.pl_.c:11
-msgid ""
-"The success of MandrakeSoft is based upon the principle of Free Software. "
-"Your new operating system is the result of collaborative work on the part of "
-"the worldwide Linux Community"
-msgstr ""
-"Mae llwyddiant MandrakeSoft yn seiliedig ar egwyddor Meddalwedd Rhydd. Mae "
-"eich system weithredu newydd yn ganlyniad gwaith cydweithredol ar ran y "
-"Gymuned Linux byd-eang"
-
-#: ../../share/advertising/01-gnu.pl_.c:9
-msgid "Join the Free Software world"
-msgstr "Ymunwch ā byd Meddalwedd Rhydd"
-
-#: ../../share/advertising/01-gnu.pl_.c:10
-msgid ""
-"Get to know the Open Source community and become a member. Learn, teach, and "
-"help others by joining the many discussion forums that you will find in our "
-"\"Community\" webpages"
-msgstr ""
-"Dewch i adnabod y gymuned Cod Agored a dewch yn aelod. Dysgwch, addysgwch a "
-"chynorthwywch eraill drwy ymuno yn y grwpiau trafod niferus sydd i'w cael yn "
-"ein tudalennau gwe \"Cymuned\""
-
-#: ../../share/advertising/02-internet.pl_.c:9
-msgid "Internet and Messaging"
-msgstr "Y Rhygnrwyd a Negesu"
-
-#: ../../share/advertising/02-internet.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best software to access everything the "
-"Internet has to offer: Surf the web & view animations with Mozilla and "
-"Konqueror, exchange email & organize your personal information with "
-"Evolution and Kmail, and much more"
-msgstr ""
-"Mae Mandrake Linux 8.2 yn cynnig y feddalwedd orau i gael mynediad i bopeth "
-"sydd gan y Rhyngrwyd i'w gynnig. Syrffiwch y we a gwyliwch animeddiadau gyda "
-"Mozilla a Konqueror, cyfnewidiwch e-bost a threfnu eich gwybodaeth gyda "
-"Evolution a Kmail, a llawr iawn rhagor. "
-
-#: ../../share/advertising/03-graphic.pl_.c:9
-msgid "Multimedia and Graphics"
-msgstr "Amlgyfrwng a Graffigau"
-
-#: ../../share/advertising/03-graphic.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 lets you push your multimedia computer to its limits! Use "
-"the latest software to play music and audio files, edit and organize your "
-"images and photos, watch TV and videos, and much more"
-msgstr ""
-"Mae Mandrake Linux 8.2 yn caniatįu i chi wthio eich cyfrifiadur aml-gyfrwng "
-"i'r eithaf! Defnyddiwch y feddalwedd ddiweddaraf i chwarae ffeiliau "
-"cerddoriaeth a sain, golygu a threfnu eich delweddau a lluniau, gwylio "
-"teledu a fideo, a llawer iawn mwy"
-
-#: ../../share/advertising/04-develop.pl_.c:9
-msgid "Development"
-msgstr "Datblygiad"
-
-#: ../../share/advertising/04-develop.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 is the ultimate development platform. Discover the power "
-"of the GNU gcc compiler as well as the best Open Source development "
-"environments"
-msgstr ""
-"Mandrake Linux 8.2 yw'r platfform datblygu gorau. Darganfyddwch rym grynhowr "
-"gcc GNU yn ogystal ag amgylcheddau datblygiadol Cod Agored gorau oll"
-
-#: ../../share/advertising/05-contcenter.pl_.c:9
-msgid "Mandrake Control Center"
-msgstr "Canolfan Rheoli Mandrake"
-
-#: ../../share/advertising/05-contcenter.pl_.c:10
-msgid ""
-"The Mandrake Linux 8.2 Control Center is a one-stop location for fully "
-"customizing and configuring your Mandrake system"
-msgstr ""
-"Canolfan Rheoli Mandrake Linux 8.2 yw'r lleoliad canolog ar gyfer llunio a "
-"ffurfio eich system Mandrake"
-
-#: ../../share/advertising/06-user.pl_.c:9
-msgid "User interfaces"
-msgstr "Rhyngwynebau defnyddwyr"
-
-#: ../../share/advertising/06-user.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides 11 different graphical desktop environments and "
-"window managers to choose from including GNOME 1.4, KDE 2.2.2, Window Maker "
-"0.8, and the rest"
-msgstr ""
-"Mae Mandrake Linux 8.2 yn darparu 11 amgylchedd penbwrdd graffigol a "
-"rheolwyr ffenestri gwahanol i ddewis ohonynt gan gynnwys Gnome 1.4, KDE "
-"2.2.2., Window Maker 0.8, a'r gweddill"
-
-#: ../../share/advertising/07-server.pl_.c:9
-msgid "Server Software"
-msgstr "Meddalwedd Gwasanethwyr"
-
-#: ../../share/advertising/07-server.pl_.c:10
-msgid ""
-"Transform your machine into a powerful server with just a few clicks of the "
-"mouse: Web server, email, firewall, router, file and print server, ..."
-msgstr ""
-"Trowch eich peiriant i fod yn wasanaethwr pwerus gydag ychydig gliciau ar "
-"eich llygoden: gwasanaethwyr gwe, e-bost, mur gwarchod, llwybrydd, "
-"gwasanaethwr ffeil ac argraffu..."
-
-#: ../../share/advertising/08-games.pl_.c:9
-msgid "Games"
-msgstr "Gemau"
-
-#: ../../share/advertising/08-games.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best Open Source games - arcade, action, "
-"cards, sports, strategy, ..."
-msgstr ""
-"Mae Mandrake Linux 8.2 yn darparu'r gemau Cod Agored gorau - arcźd, antur, "
-"cardiau, chwaraeon, strategaeth..."
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:9
-msgid "MandrakeCampus"
-msgstr "MandrakeCampus"
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:10
-msgid ""
-"Would you like to learn Linux simply, quickly, and for free? MandrakeSoft "
-"provides free Linux training, as well as a way to test your progress, at "
-"MandrakeCampus -- our online training center"
-msgstr ""
-"Hoffech chi ddysgu Linux yn syml, yn gyflym, ac am ddim? Mae MandrakeSoft yn "
-"darparu hyfforddiant ar Linux, yn ogystal ā ffordd i fesur eich cynnydd, yn "
-"MandrakeCampus - ein canolfan hyfforddiant ar-lein"
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:9
-msgid "MandrakeExpert"
-msgstr "MandrakeExpert"
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:10
-msgid ""
-"Quality support from the Linux Community, and from MandrakeSoft, is just "
-"around the corner. And if you're already a Linux veteran, become an \"Expert"
-"\" and share your knowledge at our support website"
-msgstr ""
-"Mae cefnogaeth werthfawr gan Gymuned Linux, a chan MandrakeSoft i'w gael yn "
-"hwylus. Ac os ydych yn hen law ar Linux, cewch fod yn \"Arbenigwr\" a rhannu "
-"eich gwybodaeth ar ein safle cefnogi"
-
-#: ../../share/advertising/11-consul.pl_.c:9
-msgid "MandrakeConsulting"
-msgstr "MandrakeConsulting"
-
-#: ../../share/advertising/11-consul.pl_.c:10
-msgid ""
-"For all of your IT projects, our consultants are ready to analyze your "
-"requirements and offer a customized solution. Benefit from MandrakeSoft's "
-"vast experience as a Linux producer to provide a true IT alternative for "
-"your business organization"
-msgstr ""
-"Ar gyfer eich holl brojectau TG, mae ein hymgynghorwyr ar gael i ddadansoddi "
-"eich anghenion a chynnig atebion unigryw i chi. Medrwch fanteisio ar brofiad "
-"eang MandrakeSoft fel cynhyrchydd Linux i ddarparu ateb TG gwell i'ch busnes."
-
-#: ../../share/advertising/12-MDKstore.pl_.c:9
-msgid "MandrakeStore"
-msgstr "MandrakeStore"
-
-#: ../../share/advertising/12-MDKstore.pl_.c:10
-msgid ""
-"A full range of Linux solutions, as well as special offers on products and "
-"'goodies', are available online at our e-store"
-msgstr ""
-"Mae amrediad eang o ddarpariaeth Linux, yn ogystal ā chynigion arbennig ar "
-"gynnyrch a 'difyrrwch', ar gael ar-lein yn ein e-siop"
-
-#: ../../share/advertising/13-Nvert.pl_.c:9
-msgid ""
-"For more information on MandrakeSoft's Professional Services and commercial "
-"offerings, please see the following web page:"
-msgstr ""
-"Am ragor o wybodaeth ar Wasanaethau Profesiynol a chynigion masnachol "
-"MandrakeSoft, gwelwch y dudalen we ganlynol:"
-
-#: ../../share/advertising/13-Nvert.pl_.c:11
-msgid "http://www.mandrakesoft.com/sales/contact"
-msgstr "http://www.mandrakesoft.com/sales/contact"
-
-#: ../../standalone.pm_.c:25
-msgid "Installing packages..."
-msgstr "Gosod pecynnau..."
-
-#: ../../standalone/diskdrake_.c:85
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I'll try to go on blanking bad partitions"
-msgstr ""
-"Methu darllen eich tabl rhaniadau. Mae'n rhy lwgr i mi :[\n"
-"Af ymlaen i flancio rhaniadau gwael"
-
-#: ../../standalone/drakautoinst_.c:45
-msgid "Error!"
-msgstr "Gwall!"
-
-#: ../../standalone/drakautoinst_.c:46
-#, c-format
-msgid "I can't find needed image file `%s'."
-msgstr "Methu canfod ffeil delwedd angenrheidiol '%s'."
-
-#: ../../standalone/drakautoinst_.c:48
-msgid "Auto Install Configurator"
-msgstr "Ffurfweddwr Awto-Osod"
-
-#: ../../standalone/drakautoinst_.c:49
-msgid ""
-"You are about to configure an Auto Install floppy. This feature is somewhat "
-"dangerous and must be used circumspectly.\n"
-"\n"
-"With that feature, you will be able to replay the installation you've "
-"performed on this computer, being interactively prompted for some steps, in "
-"order to change their values.\n"
-"\n"
-"For maximum safety, the partitioning and formatting will never be performed "
-"automatically, whatever you chose during the install of this computer.\n"
-"\n"
-"Do you want to continue?"
-msgstr ""
-"Rydych ar fin ffurfweddu disg meddal Gosod Awtomatig. Mae'r nodwedd hwn "
-"braidd yn beryglus a dylid ei ddefnyddio gyda gofal.\n"
-"\n"
-"Gyda'r hodwedd hwn, bydd modd ailchwarau'r gosodiad ar y cyfrifiadur, gan "
-"eich holi'n rhyngweithiol ar gyfer rhai cammau, er mwyn newid eu "
-"gwerthoedd.\n"
-"\n"
-"Ydych chi eisiau parhau?\n"
-"?"
-
-#: ../../standalone/drakautoinst_.c:71
-msgid "Automatic Steps Configuration"
-msgstr "FFurfweddiad Camau Awtomatig"
-
-#: ../../standalone/drakautoinst_.c:72
-msgid ""
-"Please choose for each step whether it will replay like your install, or it "
-"will be manual"
-msgstr ""
-"Dewiswch ar gyfer pob cam a fydd yn ail chwarae fel eich gosodiad, neu a "
-"fydd gyda llaw"
-
-#: ../../standalone/drakautoinst_.c:145
-msgid ""
-"\n"
-"Welcome.\n"
-"\n"
-"The parameters of the auto-install are available in the sections on the left"
-msgstr ""
-"\n"
-"Croeso\n"
-"\n"
-"Mae paramedrau'r awto osod i'w cael yn yr adran ar y chwith"
-
-#: ../../standalone/drakautoinst_.c:243 ../../standalone/drakgw_.c:671
-#: ../../standalone/scannerdrake_.c:106
-msgid "Congratulations!"
-msgstr "Llongyfarchiadau!"
-
-#: ../../standalone/drakautoinst_.c:244
-msgid ""
-"The floppy has been successfully generated.\n"
-"You may now replay your installation."
-msgstr ""
-"Mae'r disg meddal wedi ei gynhyrchu'n llwyddiannus. \n"
-"Medrwch ail chwarae eich gosodiad."
-
-#: ../../standalone/drakautoinst_.c:282
-msgid "Auto Install"
-msgstr "Awto Gosod"
-
-#: ../../standalone/drakautoinst_.c:352
-msgid "Add an item"
-msgstr "Ychwanegu eitem"
-
-#: ../../standalone/drakautoinst_.c:359
-msgid "Remove the last item"
-msgstr "Tynnu'r eitem olaf"
-
-#: ../../standalone/drakbackup_.c:448 ../../standalone/drakbackup_.c:451
-#: ../../standalone/drakbackup_.c:455
-msgid ""
-"***********************************************************************\n"
-"\n"
-msgstr ""
-"***********************************************************************\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:449
-msgid ""
-"\n"
-" DrakBackup Report \n"
-"\n"
-msgstr ""
-"\n"
-" Adroddiad DrakBackup \n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:450
-msgid ""
-"\n"
-" DrakBackup Daemon Report\n"
-"\n"
-"\n"
-msgstr ""
-"\n"
-" Adroddiad Daemon DrakBackup \n"
-"\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:453
-msgid ""
-"\n"
-"\n"
-"***********************************************************************\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"***********************************************************************\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:454
-msgid ""
-"\n"
-" DrakBackup Report Details\n"
-"\n"
-"\n"
-msgstr ""
-"\n"
-" Manylion Adroddiad DrakBackup \n"
-"\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:476
-msgid "total progess"
-msgstr "cyfanswm y cynnydd"
-
-#: ../../standalone/drakbackup_.c:555 ../../standalone/drakbackup_.c:602
-msgid "Backup system files..."
-msgstr "Ffeiliau system wrth gefn"
-
-#: ../../standalone/drakbackup_.c:603 ../../standalone/drakbackup_.c:667
-msgid "Hard Disk Backup files..."
-msgstr "Ffeiliau cadw wrth gefn y Disg Caled"
-
-#: ../../standalone/drakbackup_.c:615
-msgid "Backup User files..."
-msgstr "Ffeiliau Defnyddiwr Cadw wrth Gefn..."
-
-#: ../../standalone/drakbackup_.c:616
-msgid "Hard Disk Backup Progress..."
-msgstr "Cynnydd Disg Caled wrth Gefn..."
-
-#: ../../standalone/drakbackup_.c:666
-msgid "Backup Other files..."
-msgstr "Cadw wrth gefn ffeiliau eraill..."
-
-#: ../../standalone/drakbackup_.c:674
-#, c-format
-msgid ""
-"file list send by FTP : %s\n"
-" "
-msgstr ""
-"rhestr ffeil yrrwyd gan FTP: %s\n"
-" "
-
-#: ../../standalone/drakbackup_.c:677
-msgid ""
-"\n"
-"(!) FTP connexion problem: It was not possible to send your backup files by "
-"FTP.\n"
-msgstr ""
-"\n"
-"(!) anhawster cysylltiad FTP: Nid oedd yn bosibl anfon eich ffeiliau wrth "
-"gefn drwy FTP.\n"
-
-#: ../../standalone/drakbackup_.c:687
-msgid "(!) Error during mail sending. \n"
-msgstr "(!) Gwall wrth anfon e-bost. \n"
-
-#: ../../standalone/drakbackup_.c:728 ../../standalone/drakbackup_.c:739
-#: ../../standalone/drakbackup_.c:750 ../../standalone/drakfont_.c:787
-msgid "File Selection"
-msgstr "Dewis ffeiliau"
-
-#: ../../standalone/drakbackup_.c:755
-msgid "Select the files or directories and click on 'Add'"
-msgstr "Dewiswch y ffeiliau neu gyfeiriaduron a chliciwch 'Ychwanegu'"
-
-#: ../../standalone/drakbackup_.c:790
-msgid ""
-"\n"
-"Please check all options that you need.\n"
-msgstr ""
-"\n"
-"Gwiriwch pob dewis sydd angen arnoch.\n"
-
-#: ../../standalone/drakbackup_.c:791
-msgid ""
-"These options can backup and restore all files in your /etc directory.\n"
-msgstr ""
-"Mae'r dewisiadau hyn yn medru cadw wrth gefn ac adfer pob ffeil yn eich "
-"cyfeiriadur /etc.\n"
-
-#: ../../standalone/drakbackup_.c:792
-msgid "Backup your System files. ( /etc directory )"
-msgstr "Cadw wrth gefn ffeiliau System. ( cyfeiriadur /etc )"
-
-#: ../../standalone/drakbackup_.c:793
-msgid "Use incremental backup (do not replace old backups)"
-msgstr "Cadw wrth gefn cynyddol (peidio disodli hen ffeiliau wrth gefn)"
-
-#: ../../standalone/drakbackup_.c:794
-msgid "Do not include critical files (passwd, group, fstab)"
-msgstr "Peidio cynnwys ffeiliau hanfodol (passwd, group, fstab)"
-
-#: ../../standalone/drakbackup_.c:795
-msgid ""
-"With this option you will be able to restore any version\n"
-" of your /etc directory."
-msgstr ""
-"Gyda'e dewis hwn medrwch adfer unrhyw fersiwn\n"
-"o'ch cyfeiriadur /etc."
-
-#: ../../standalone/drakbackup_.c:812
-msgid "Please check all users that you want to include in your backup."
-msgstr "Gwiriwch pob defnyddiwr rydych am eu cynnwys yn eich cadw wrth gefn."
-
-#: ../../standalone/drakbackup_.c:839
-msgid "Do not include the browser cache"
-msgstr "Peidio cynnwys storfa'r porwr"
-
-#: ../../standalone/drakbackup_.c:840 ../../standalone/drakbackup_.c:864
-msgid "Use Incremental Backups (do not replace old backups)"
-msgstr "Defnyddio Cadw wrth Gefn Cynyddol (peidio disodli hen gadw wrth gefn)"
-
-#: ../../standalone/drakbackup_.c:862 ../../standalone/drakfont_.c:827
-msgid "Remove Selected"
-msgstr "Tynnu'r Dewis"
-
-#: ../../standalone/drakbackup_.c:900
-msgid "Windows (FAT32)"
-msgstr "Windows (FAT32)"
-
-#: ../../standalone/drakbackup_.c:939
-msgid "Users"
-msgstr "Defnyddwyr"
-
-#: ../../standalone/drakbackup_.c:964
-msgid "Use FTP connection to backup"
-msgstr "Defnyddiwch cysylltiad FTP i gadw wrth gefn"
-
-#: ../../standalone/drakbackup_.c:967
-msgid "Please enter the host name or IP."
-msgstr "Rhowch enw'r gwesteiwr neu'r IP"
-
-#: ../../standalone/drakbackup_.c:972
-msgid ""
-"Please enter the directory to\n"
-" put the backup on this host."
-msgstr ""
-"Rhowch y cyfeiriadur i osod y cadw\n"
-"wrth gefn ar y gwesteiwr hwn."
-
-#: ../../standalone/drakbackup_.c:977
-msgid "Please enter your login"
-msgstr "Rhowch eich mewngofnod"
-
-#: ../../standalone/drakbackup_.c:982
-msgid "Please enter your password"
-msgstr "Rhowch eich cyfrinair"
-
-#: ../../standalone/drakbackup_.c:988
-msgid "Remember this password"
-msgstr "Cofiwch y cyfrinair"
-
-#: ../../standalone/drakbackup_.c:1052 ../../standalone/drakbackup_.c:2048
-msgid "FTP Connection"
-msgstr "Cysylltiad FTP"
-
-#: ../../standalone/drakbackup_.c:1059 ../../standalone/drakbackup_.c:2056
-msgid "Secure Connection"
-msgstr "Cysylltiad Diogel"
-
-#: ../../standalone/drakbackup_.c:1085 ../../standalone/drakbackup_.c:2889
-msgid "Use CD/DVDROM to backup"
-msgstr "Defnyddiwch yr CD/DVDROM i gadw wrth gefn"
-
-#: ../../standalone/drakbackup_.c:1088 ../../standalone/drakbackup_.c:2893
-msgid "Please choose your CD space"
-msgstr "Dewiswch eich gofod CD"
-
-#: ../../standalone/drakbackup_.c:1094 ../../standalone/drakbackup_.c:2905
-msgid "Please check if you are using CDRW media"
-msgstr "Gwiriwch os ydych yn defnyddio cyfrwng CDRW"
-
-#: ../../standalone/drakbackup_.c:1100 ../../standalone/drakbackup_.c:2911
-msgid "Please check if you want to erase your CDRW before"
-msgstr "Gwiriwch os ydych am ddileu eich CDRW cyn"
-
-#: ../../standalone/drakbackup_.c:1106
-msgid ""
-"Please check if you want to include\n"
-" install boot on your CD."
-msgstr ""
-"Gwiriwch os ydych am gynnwys\n"
-" cychwyn gosod ar eich CD"
-
-#: ../../standalone/drakbackup_.c:1112
-msgid ""
-"Please enter your CD Writer device name\n"
-" ex: 0,1,0"
-msgstr ""
-"Rhowch enw dyfais eich Ysgrifennwr CD\n"
-"ex: 0,1,0"
-
-#: ../../standalone/drakbackup_.c:1153
-msgid "Use tape to backup"
-msgstr "Defnyddiwch dāp i gadw wrth gefn"
-
-#: ../../standalone/drakbackup_.c:1156
-msgid "Please enter the device name to use for backup"
-msgstr "Rhowch enw dyfais i'w ddefnyddio ar gyfer cadw wrth gefn"
-
-#: ../../standalone/drakbackup_.c:1162 ../../standalone/drakbackup_.c:1203
-#: ../../standalone/drakbackup_.c:2013
-msgid ""
-"Please enter the maximum size\n"
-" allowed for Drakbackup"
-msgstr ""
-"Rhowch y maint mwyaf\n"
-"i'w ganiatįu ar gyfer Drakbackup"
-
-#: ../../standalone/drakbackup_.c:1195 ../../standalone/drakbackup_.c:2005
-msgid "Please enter the directory to save:"
-msgstr "Rhowch y cyfeiriadur i gadw iddo:"
-
-#: ../../standalone/drakbackup_.c:1209 ../../standalone/drakbackup_.c:2019
-msgid "Use quota for backup files."
-msgstr "Defnyddiwch y cwota ar gyfer ffeiliau wrth gefn"
-
-#: ../../standalone/drakbackup_.c:1267
-msgid "Network"
-msgstr "Rhwydwaith"
-
-#: ../../standalone/drakbackup_.c:1272
-msgid "CDROM / DVDROM"
-msgstr "CDROM / DVDROM"
-
-#: ../../standalone/drakbackup_.c:1277
-msgid "HardDrive / NFS"
-msgstr "Disg Caled / NFS"
-
-#: ../../standalone/drakbackup_.c:1297 ../../standalone/drakbackup_.c:1301
-#: ../../standalone/drakbackup_.c:1305
-msgid "hourly"
-msgstr "bob awr"
-
-#: ../../standalone/drakbackup_.c:1298 ../../standalone/drakbackup_.c:1302
-#: ../../standalone/drakbackup_.c:1305
-msgid "daily"
-msgstr "bob dydd"
-
-#: ../../standalone/drakbackup_.c:1299 ../../standalone/drakbackup_.c:1303
-#: ../../standalone/drakbackup_.c:1305
-msgid "weekly"
-msgstr "bob wythnos"
-
-#: ../../standalone/drakbackup_.c:1300 ../../standalone/drakbackup_.c:1304
-#: ../../standalone/drakbackup_.c:1305
-msgid "monthly"
-msgstr "bob mis"
-
-#: ../../standalone/drakbackup_.c:1312
-msgid "Use daemon"
-msgstr "Defnyddiwch ddaemon"
-
-#: ../../standalone/drakbackup_.c:1317
-msgid ""
-"Please choose the time \n"
-"interval between each backup"
-msgstr ""
-"Dewiswch faint o amser\n"
-"fydd rhwng pob cadw wrth gefn"
-
-#: ../../standalone/drakbackup_.c:1323
-msgid ""
-"Please choose the\n"
-"media for backup."
-msgstr ""
-"Dewiswch y cyfrwng ar\n"
-"gyfer cadw wrth gefn..."
-
-#: ../../standalone/drakbackup_.c:1327
-msgid "Use Hard Drive with daemon"
-msgstr "Defnyddiwch y Disg Caled gyda'i ddaemon"
-
-#: ../../standalone/drakbackup_.c:1329
-msgid "Use FTP with daemon"
-msgstr "Defnyddiwch FTP gyda daemon"
-
-#: ../../standalone/drakbackup_.c:1333
-msgid "Please be sure that the cron daemon is included in your services."
-msgstr ""
-"Gwnewch yn siwr bod daemon cron yn cael ei gynnwys yn eich gwasanaethau"
-
-#: ../../standalone/drakbackup_.c:1369
-msgid "Send mail report after each backup to :"
-msgstr "Anfonwch adroddiad e-bost wedi pob cadw wrth gefn i :"
-
-#: ../../standalone/drakbackup_.c:1411
-msgid "What"
-msgstr "Beth"
-
-#: ../../standalone/drakbackup_.c:1416
-msgid "Where"
-msgstr "Lle"
-
-#: ../../standalone/drakbackup_.c:1421
-msgid "When"
-msgstr "Pryd"
-
-#: ../../standalone/drakbackup_.c:1426
-msgid "More Options"
-msgstr "Dewisiadau Eraill"
-
-#: ../../standalone/drakbackup_.c:1445 ../../standalone/drakbackup_.c:2801
-msgid "Drakbackup Configuration"
-msgstr "Ffurfweddiad Drakbackup"
-
-#: ../../standalone/drakbackup_.c:1463
-msgid "Please choose where you want to backup"
-msgstr "Dewiswch i le rydych am gadw ffeiliau wrth gefn"
-
-#: ../../standalone/drakbackup_.c:1465
-msgid "on Hard Drive"
-msgstr "ar Ddisg Caled"
-
-#: ../../standalone/drakbackup_.c:1476
-msgid "across Network"
-msgstr "ar draws Rhwydwaith"
-
-#: ../../standalone/drakbackup_.c:1540
-msgid "Please choose what you want to backup"
-msgstr "Dewiswch beth rydych am ei gadw wrth gefn"
-
-#: ../../standalone/drakbackup_.c:1541
-msgid "Backup system"
-msgstr "System cadw wrth gefn"
-
-#: ../../standalone/drakbackup_.c:1542
-msgid "Backup Users"
-msgstr "Defnyddwyr Cadw wrth Gwfn"
-
-#: ../../standalone/drakbackup_.c:1545
-msgid "Select user manually"
-msgstr "Dewis defnyddwyr gyda llaw"
-
-#: ../../standalone/drakbackup_.c:1627
-msgid ""
-"\n"
-"Backup Sources: \n"
-msgstr ""
-"\n"
-"Ffynhonell Cadw wrth Gefn:\n"
-
-#: ../../standalone/drakbackup_.c:1628
-msgid ""
-"\n"
-"- System Files:\n"
-msgstr ""
-"\n"
-"- Ffeiliau System: \n"
-
-#: ../../standalone/drakbackup_.c:1630
-msgid ""
-"\n"
-"- User Files:\n"
-msgstr ""
-"\n"
-"- Ffeiliau Defnyddiwr:\n"
-
-#: ../../standalone/drakbackup_.c:1632
-msgid ""
-"\n"
-"- Other Files:\n"
-msgstr ""
-"\n"
-"- Ffeiliau Eraill: \n"
-
-#: ../../standalone/drakbackup_.c:1634
-#, c-format
-msgid ""
-"\n"
-"- Save on Hard drive on path : %s\n"
-msgstr ""
-"\n"
-"Cadw ar Ddisg caled ar lwybr: %s\n"
-
-#: ../../standalone/drakbackup_.c:1635
-#, c-format
-msgid ""
-"\n"
-"- Save on FTP on host : %s\n"
-msgstr ""
-"\n"
-"- Cadw ar FTP ar y gwesteiwr: %s\n"
-
-#: ../../standalone/drakbackup_.c:1636
-#, c-format
-msgid ""
-"\t\t user name: %s\n"
-"\t\t on path: %s \n"
-msgstr ""
-"\t\t enw defnyddiwr:%s\n"
-"\t\t ar lwybr: %s \n"
-
-#: ../../standalone/drakbackup_.c:1637
-msgid ""
-"\n"
-"- Options:\n"
-msgstr ""
-"\n"
-"-Dewisiadau:\n"
-
-#: ../../standalone/drakbackup_.c:1638
-msgid "\tDo not include System Files\n"
-msgstr "\tPeidiwch cynnwys Ffeiliau System\n"
-
-#: ../../standalone/drakbackup_.c:1639
-msgid "\tBackups use tar and bzip2\n"
-msgstr "\t Bydd Cadw wrth gefn yn defnyddio tar a bzip2\n"
-
-#: ../../standalone/drakbackup_.c:1640
-msgid "\tBackups use tar and gzip\n"
-msgstr "\tBydd Cadw wrth Gefn yn defnyddio tar a gzip\n"
-
-#: ../../standalone/drakbackup_.c:1641
-#, c-format
-msgid ""
-"\n"
-"- Daemon (%s) include :\n"
-msgstr ""
-"\n"
-"- Daemon (%s) i gynnwys :\n"
-
-#: ../../standalone/drakbackup_.c:1642
-msgid "\t-Hard drive.\n"
-msgstr "\t-Disg Caled.\n"
-
-#: ../../standalone/drakbackup_.c:1643
-msgid "\t-CDROM.\n"
-msgstr "\t-CDROM.\n"
-
-#: ../../standalone/drakbackup_.c:1644
-msgid "\t-Network by FTP.\n"
-msgstr "\t-Rhwydwaith drwy FTP.\n"
-
-#: ../../standalone/drakbackup_.c:1645
-msgid "\t-Network by SSH.\n"
-msgstr "\t-Rhwydwaith drwy SSH.\n"
-
-#: ../../standalone/drakbackup_.c:1647
-msgid "No configuration, please click Wizard or Advanced.\n"
-msgstr "Dim ffurfweddiad, cliciwch Dewin neu Uwch.\n"
-
-#: ../../standalone/drakbackup_.c:1652
-msgid ""
-"List of data to restore:\n"
-"\n"
-msgstr ""
-"Rhestr o ddata i'w adfer:\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:1753
-msgid ""
-"List of data corrupted:\n"
-"\n"
-msgstr ""
-"Rhestr o ddata llwgr:\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:1755
-msgid "Please uncheck or remove it on next time."
-msgstr "Dad-diciwch hwn neu ei dynnu'r tro nesaf."
-
-#: ../../standalone/drakbackup_.c:1765
-msgid "Backup files are corrupted"
-msgstr "Mae'r ffeiliau wrth gefn wedi eu llygru"
-
-#: ../../standalone/drakbackup_.c:1786
-msgid " All your selectionned data have been "
-msgstr " Mae eich dewis data wedi ei "
-
-#: ../../standalone/drakbackup_.c:1787
-#, c-format
-msgid " Successfuly Restored on %s "
-msgstr " Ei adfer yn Llwyddiannus ar %s "
-
-#: ../../standalone/drakbackup_.c:1886
-msgid " Restore Configuration "
-msgstr " Adfer y Furfweddiad"
-
-#: ../../standalone/drakbackup_.c:1904
-msgid "OK to restore the other files."
-msgstr "Iawn i adfer ffeiliau eraill"
-
-#: ../../standalone/drakbackup_.c:1922
-msgid "User list to restore (only the most recent date per user is important)"
-msgstr ""
-"Rhestr defnyddwyr i'w adfer ( dim ond y diweddaraf yn ōl y defnyddwyr, sy'n "
-"bwysig )"
-
-#: ../../standalone/drakbackup_.c:1972
-msgid "Backup the system files before:"
-msgstr "Cadw'r ffeiliau system wrth gefn cyn:"
-
-#: ../../standalone/drakbackup_.c:1974
-msgid "please choose the date to restore"
-msgstr "dewiswch y data i'w adfer"
-
-#: ../../standalone/drakbackup_.c:2002
-msgid "Use Hard Disk to backup"
-msgstr "Defnyddiwch y Ddisg Caled ar gyfer cadw wrth gefn"
-
-#: ../../standalone/drakbackup_.c:2083
-msgid "Restore from Hard Disk."
-msgstr "Adfer o'r Ddisg Caled."
-
-#: ../../standalone/drakbackup_.c:2085
-msgid "Please enter the directory where backups are stored"
-msgstr "Rhowch y cyfeiriadur lle mae'r ffeiliau wrth gefn yn cael eu cadw"
-
-#: ../../standalone/drakbackup_.c:2143
-msgid "Select another media to restore from"
-msgstr "Dewis cyfrwng arall i adfer ohono"
-
-#: ../../standalone/drakbackup_.c:2145
-msgid "Other Media"
-msgstr "Cyfrwng Arall"
-
-#: ../../standalone/drakbackup_.c:2151
-msgid "Restore system"
-msgstr "Adfer y system"
-
-#: ../../standalone/drakbackup_.c:2152
-msgid "Restore Users"
-msgstr "Adfer Defnyddwyr"
-
-#: ../../standalone/drakbackup_.c:2153
-msgid "Restore Other"
-msgstr "Adfer Arall"
-
-#: ../../standalone/drakbackup_.c:2155
-msgid "select path to restore (instead of / )"
-msgstr "dewis llwybr arall i adfer ( yn lle / )"
-
-#: ../../standalone/drakbackup_.c:2159
-msgid "Do new backup before restore (only for incremental backups.)"
-msgstr ""
-"Gwnewch cadw wrth gefn newydd cyn adfer ( ar gyfer cadw wrth gefn cynyddol "
-"yn unig )"
-
-#: ../../standalone/drakbackup_.c:2160
-msgid "Remove user directories before restore."
-msgstr "Tynnu cyfeiriaduron defnyddiwr cyn adfer."
-
-#: ../../standalone/drakbackup_.c:2217
-msgid "Restore all backups"
-msgstr "Adfer pob cadw wrth gefn"
-
-#: ../../standalone/drakbackup_.c:2225
-msgid "Custom Restore"
-msgstr "Adfer Dewisol"
-
-#: ../../standalone/drakbackup_.c:2266 ../../standalone/drakbackup_.c:2291
-#: ../../standalone/drakbackup_.c:2312 ../../standalone/drakbackup_.c:2333
-#: ../../standalone/drakbackup_.c:2351 ../../standalone/drakbackup_.c:2383
-#: ../../standalone/drakbackup_.c:2399 ../../standalone/drakbackup_.c:2419
-#: ../../standalone/drakbackup_.c:2438 ../../standalone/drakbackup_.c:2460
-#: ../../standalone/drakfont_.c:575
-msgid "Help"
-msgstr "Cymorth"
-
-#: ../../standalone/drakbackup_.c:2269 ../../standalone/drakbackup_.c:2296
-#: ../../standalone/drakbackup_.c:2315 ../../standalone/drakbackup_.c:2336
-#: ../../standalone/drakbackup_.c:2354 ../../standalone/drakbackup_.c:2402
-#: ../../standalone/drakbackup_.c:2422 ../../standalone/drakbackup_.c:2441
-msgid "Previous"
-msgstr "Cynt"
-
-#: ../../standalone/drakbackup_.c:2271 ../../standalone/drakbackup_.c:2338
-#: ../../standalone/logdrake_.c:224
-msgid "Save"
-msgstr "Gorffen"
-
-#: ../../standalone/drakbackup_.c:2317
-msgid "Build Backup"
-msgstr "Adeiladu Cadw wrth Gefn"
-
-#: ../../standalone/drakbackup_.c:2356 ../../standalone/drakbackup_.c:3033
-msgid "Restore"
-msgstr "Adfer"
-
-#: ../../standalone/drakbackup_.c:2404 ../../standalone/drakbackup_.c:2424
-#: ../../standalone/drakbackup_.c:2445
-msgid "Next"
-msgstr "Nesaf"
-
-#: ../../standalone/drakbackup_.c:2478
-msgid ""
-"Please Build backup before to restore it...\n"
-" or verify that your path to save is correct."
-msgstr ""
-"Crėwch gadw wrth gefn cyn ei adfer...\n"
-" neu gwiriwch fod eich llwybr i'w gadw'n gywir."
-
-#: ../../standalone/drakbackup_.c:2499
-msgid ""
-"Error durind sendmail\n"
-" your report mail was not sent\n"
-" Please configure sendmail"
-msgstr ""
-"Gwall wrth ddefnyddio sendmail\n"
-" chafodd eich adroddiad e-bost mo'i anfon\n"
-" Ffurfweddwch eich sendmail"
-
-#: ../../standalone/drakbackup_.c:2522
-msgid "Package List to Install"
-msgstr "Rhestr Pecynnau i'w Gosod"
-
-#: ../../standalone/drakbackup_.c:2550
-msgid ""
-"Error durind sending file via FTP.\n"
-" Please correct your FTP configuration."
-msgstr ""
-"Gwall wrth anfon ffeil drwy FTP.\n"
-" Cywirwch eich ffurfweddiad FTP."
-
-#: ../../standalone/drakbackup_.c:2573
-msgid "Please select data to restore..."
-msgstr "Dewiswch y data i'w adfer..."
-
-#: ../../standalone/drakbackup_.c:2594
-msgid "Please select media for backup..."
-msgstr "Dewiswch y cyfrwng ar gyfer cadw wrth gefn..."
-
-#: ../../standalone/drakbackup_.c:2616
-msgid "Please select data to backup..."
-msgstr "Dewiswch y data i'w gadw wrth gefn..."
-
-#: ../../standalone/drakbackup_.c:2638
-msgid ""
-"No configuration file found \n"
-"please click Wizard or Advanced."
-msgstr ""
-"Ni chanfyddwyd y ffeil ffurfweddu \n"
-"cliciwch Dewin neu Uwch."
-
-#: ../../standalone/drakbackup_.c:2659
-msgid "Under Devel ... please wait."
-msgstr "O dan ddatblygiad...arhoswch."
-
-#: ../../standalone/drakbackup_.c:2739
-msgid "Backup system files"
-msgstr "Ffeiliau System Cadw wrth Gefn"
-
-#: ../../standalone/drakbackup_.c:2741
-msgid "Backup user files"
-msgstr "Ffeiliau Defnyddiwr Cadw wrth Gefn"
-
-#: ../../standalone/drakbackup_.c:2743
-msgid "Backup other files"
-msgstr "Cadw'r ffeiliau eraill wrth gefn"
-
-#: ../../standalone/drakbackup_.c:2745 ../../standalone/drakbackup_.c:2776
-msgid "Total Progress"
-msgstr "Cyfanswm Cynydd"
-
-#: ../../standalone/drakbackup_.c:2767
-msgid "files sending by FTP"
-msgstr "anfon ffeil drwy FTP"
-
-#: ../../standalone/drakbackup_.c:2771
-msgid "Sending files..."
-msgstr "Anfon ffeiliau..."
-
-#: ../../standalone/drakbackup_.c:2841
-msgid "Data list to include on CDROM."
-msgstr "Rhestr data i'w gynnwys ar CDROM"
-
-#: ../../standalone/drakbackup_.c:2899
-msgid "Please enter the cd writer speed"
-msgstr "Rhowch gyflymder yr ysgrifennydd CD"
-
-#: ../../standalone/drakbackup_.c:2917
-msgid "Please enter your CD Writer device name (ex: 0,1,0)"
-msgstr "Rhowch enw dyfais eich Ysgrifennydd CD (ex: 0,1,0)"
-
-#: ../../standalone/drakbackup_.c:2923
-msgid "Please check if you want to include install boot on your CD."
-msgstr "Ticiwch os ydych eisiau cynnwys cychwyn gosod ar eich CD."
-
-#: ../../standalone/drakbackup_.c:2989
-msgid "Backup Now from configuration file"
-msgstr "Cadwch wrth Gefn eich ffeiliau ffurfweddu"
-
-#: ../../standalone/drakbackup_.c:2999
-msgid "View Backup Configuration."
-msgstr "Edrych ar Ffurfweddiad Cadw wrth Gefn"
-
-#: ../../standalone/drakbackup_.c:3020
-msgid "Wizard Configuration"
-msgstr "Ffurfweddiad y Dewin"
-
-#: ../../standalone/drakbackup_.c:3024
-msgid "Advanced Configuration"
-msgstr "Ffurfweddiad Uwch"
-
-#: ../../standalone/drakbackup_.c:3028
-msgid "Backup Now"
-msgstr "Cadw wrth Gefn Nawr"
-
-#: ../../standalone/drakbackup_.c:3053
-msgid "Drakbackup"
-msgstr "Drakbackup"
-
-#: ../../standalone/drakbackup_.c:3104
-msgid ""
-"options description:\n"
-"\n"
-" In this step Drakbackup allow you to change:\n"
-"\n"
-" - The compression mode:\n"
-" \n"
-" If you check bzip2 compression, you will compress\n"
-" your data better than gzip (about 2-10 %).\n"
-" This option is not checked by default because\n"
-" this compression mode needs more time ( about 1000% more).\n"
-" \n"
-" - The update mode:\n"
-"\n"
-" This option will update your backup, but this\n"
-" option is not really useful because you need to\n"
-" decompress your backup before you can update it.\n"
-" \n"
-" - the .backupignore mode:\n"
-"\n"
-" Like with cvs, Drakbackup will ignore all references\n"
-" included in .backupignore files in each directories.\n"
-" ex: \n"
-" /*> cat .backupignore*/\n"
-" *.o\n"
-" *~\n"
-" ...\n"
-" \n"
-"\n"
-msgstr ""
-"disgrifiad o'r dewisiadau:\n"
-"\n"
-"Yma mae Drakbackup yn caniatįu i chi newid:\n"
-"\n"
-" - Y modd cywasgu:\n"
-" \n"
-" Os wnewch chi glicio cywasgiad bzip2, byddwch yn \n"
-" cywasgu eich data'n well na gzip (tua 2-10%).\n"
-" Nid yw'r dewis wedi ei nodi drwy ragosodiad gan fod\n"
-" angen mwy o amser ar y modd cywasgu hwn (tua 1000% yn fwy).\n"
-"\n"
-"- Y modd diweddaru:\n"
-"\n"
-" Bydd y dewis hwn yn diweddaru eich caw wrth gefn, ond\n"
-" nid yw'r dewis hwn wir yn ddefnyddiol gan fo angen dadgywasgu\n"
-" eich cadw wrth gefn cyn bo modd i chi ei ddiweddaru.\n"
-" \n"
-"- Y modd .backupignore\n"
-" Fel gyda cvs, bydd Drakbackup yn anwybyddu pob cyfeiriad\n"
-" yn ffeiliau .backupignore ym mhob cyfeiriadur.\n"
-" ar wahān i: \n"
-" /*> cat .backupignore*/\n"
-" *.o\n"
-" *~\n"
-" ...\n"
-" \n"
-
-#: ../../standalone/drakbackup_.c:3134
-msgid ""
-"\n"
-" Some errors during sendmail are caused by \n"
-" a bad configuration of postfix. To solve it you have to\n"
-" set myhostname or mydomain in /etc/postfix/main.cf\n"
-"\n"
-msgstr "\n"
-
-#: ../../standalone/drakbackup_.c:3142
-msgid ""
-"options description:\n"
-"\n"
-" - Backup system files:\n"
-" \n"
-"\tThis option allows you to backup your /etc directory,\n"
-"\twhich contains all configuration files. Please be\n"
-"\tcareful during the restore step to not overwrite:\n"
-"\t\t/etc/passwd \n"
-"\t\t/etc/group \n"
-"\t\t/etc/fstab\n"
-"\n"
-" - Backup User files: \n"
-"\n"
-"\tThis option allows you select all users that you want \n"
-"\tto backup.\n"
-"\tTo preserve disk space, it is recommended that you \n"
-"\tdo not include web browser's cache.\n"
-"\n"
-" - Backup Other files: \n"
-"\n"
-"\tThis option allows you to add more data to save.\n"
-"\tWith the other backup it's not possible at the \n"
-"\tmoment to select select incremental backup.\t\t\n"
-" \n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerful \n"
-"\toption for backup. This option allows you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed afterward.\n"
-"\tThen you will be able, during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this option all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-msgstr ""
-"disgrifiad o'r dewisiadau:\n"
-"\n"
-"- Ffeiliau system Cadw wrth Gefn\n"
-" \n"
-"\tMae'r dewis hwn yn caniatįu i chi gadw wrth gefn eich\n"
-"\tcyfeiriadur /etc, sy'n cynnwys eich ffeiliau ffurfweddiad.\n"
-"\tByddwch ofalus wrth ei adfer i beidio trosysgrifo:\n"
-"\t\t/etc/passwd \n"
-"\t\t/etc/group \n"
-"\t\t/etc/fstab\n"
-"\n"
-"- Ffeiliau Defnyddiwr Cadw wrth Gefn\n"
-"\n"
-"\tMae'r dewis hwn yn caniatįu i chi ddewis pob defnyddiwr\n"
-"\trydych am gadw wrth gefn ar eu cyfer.\n"
-"\tI ddiogelu lle ar ddisg, argymhellir nad ydych yn cadw storfa'r\n"
-"\t porwr.\n"
-" \n"
-"- Cadw Ffeiliau Eraill wrth Gefn\n"
-"\n"
-"\tMae'r dewis hwn yn caniatįu i chi ychwanegu mwy\n"
-"\to ddata i'w gadw. Gyda'r cadw arall wrth gefn nid\n"
-"\tyw'n bosibl ar hyn o bryd i ddewis cadw wrth gefn\n"
-"\tcynyddol.\t\t\n"
-"\n"
-"Cadw wrth Gefn Cynyddol:\n"
-"\n"
-"\tCadw wrth Gefn Cynyddol yw'r dewis mwyaf pwerus.\n"
-"\tMae'r dewis hwn yn caniatįu i chi gadw eich data wrth\n"
-"\tgefn y tro cyntaf ac yna dim ond yr hyn sydd wedi newid.\n"
-"\tYna bydd modd i chi, yn ystod y cam o adfer, adfer eich\n"
-"\tdata o ddyddiad penodol.\n"
-"\tOs nad ydych wedi dewis hwn, bydd yr holl hen ffeiliau\n"
-"\twrth gefn yn cael eu dileu cyn pob cadw wrth gefn. \n"
-"\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3181
-msgid ""
-"restore description:\n"
-" \n"
-"Only the most recent date will be used ,because with incremental \n"
-"backups it is necesarry to restore one by one each older backups.\n"
-"\n"
-"So if you don't like to restore an user please unselect all his\n"
-"check box.\n"
-"\n"
-"Otherwise, you are able to select only one of this\n"
-"\n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerfull \n"
-"\toption to use backup, this option allow you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed after.\n"
-"\tSo you will be able during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this options all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-"disgrifad o adfer:\n"
-"\n"
-"Dim ond y ffeiliau mwyaf diweddar fydd yn cael eu defnyddio,\n"
-"oherwydd gyda candw wrth gefn cynyddol mae angen adfer\n"
-"pob cadw hyn yn unigol.\n"
-"\n"
-"Felly os nad ydych am adfer defnyddiwr dad-ddewiswch ei ddewisiadau.\n"
-"\n"
-"Ar wahan i hynny, dim ond un o rhain mae modd ei ddewis\n"
-"\n"
-"Cadw wrth Gefn Cynyddol:\n"
-"\n"
-"\tCadw wrth Gefn Cynyddol yw'r dewis mwyaf pwerus.\n"
-"\tMae'r dewis hwn yn caniatįu i chi gadw eich data wrth\n"
-"\tgefn y tro cyntaf ac yna dim ond yr hyn sydd wedi newid.\n"
-"\tYna bydd modd i chi, yn ystod y cam o adfer, adfer eich\n"
-"\tdata o ddyddiad penodol.\n"
-"\tOs nad ydych wedi dewis hwn, bydd yr holl hen ffeiliau\n"
-"\twrth gefn yn cael eu dileu cyn pob cadw wrth gefn. \n"
-"\\n\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3207 ../../standalone/drakbackup_.c:3282
-msgid ""
-" Copyright (C) 2001 MandrakeSoft by DUPONT Sebastien <dupont_s\\@epita.fr>"
-msgstr ""
-" Hawlfraint(H 2001 MandrakeSoft gan DUPONT Sebastien <dupont_s\\@epita.fr>"
-
-#: ../../standalone/drakbackup_.c:3209 ../../standalone/drakbackup_.c:3284
-msgid ""
-" This program is free software; you can redistribute it and/or modify\n"
-" it under the terms of the GNU General Public License as published by\n"
-" the Free Software Foundation; either version 2, or (at your option)\n"
-" any later version.\n"
-"\n"
-" This program is distributed in the hope that it will be useful,\n"
-" but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-" GNU General Public License for more details.\n"
-"\n"
-" You should have received a copy of the GNU General Public License\n"
-" along with this program; if not, write to the Free Software\n"
-" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
-msgstr ""
-"Mae'r rhaglen hon yn feddalwedd rhydd; medrwch ei ailddosbarthu\n"
-"a/neu ei newid o dan amodau Trwydded Gyhoeddus Gyffredinol GNU\n"
-"fel sydd wedi ei gyhoeddi gan y Free Software Foundation; un ai fersiwn\n"
-"2 neu (yn ōl eich dewis) unrhyw fersiwn diweddarach.\n"
-"\n"
-" Mae'r rhaglen yn cael ei ddosbarthu yn y gobaith y bydd yn ddefnyddiol,\n"
-" ond HEB UNRHYW WARANT; heb hyd yn oed awgrym o warant o\n"
-" FASNACHEIDDRWYDD nag ADDASRWYDD AR GYFER PWRPAS\n"
-" PENODOL. Gweler Trwydded Gyhoeddus Gyffredinol GNU am fwy o\n"
-" wybodaeth.\n"
-"\n"
-" Dylech fod wedi derbyn copi o Drwydded Gyhoeddus Gyffredinol GNU\n"
-" gyda'r rhaglen; os nad, ysgrifennwch at:\n"
-" Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,\n"
-"MA 02111-1307, USA"
-
-#: ../../standalone/drakbackup_.c:3223
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select: \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, DrakBackup will remove \n"
-" your original directory and verify that all \n"
-" backup files are not corrupted. It is recommended \n"
-" you do a last backup before restoring.\n"
-"\n"
-"\n"
-msgstr ""
-"Disgrifiad:\n"
-"\n"
-" Mae Drakbackup yn cael ei ddefnyddio i cadw\n"
-" eich ffeiliau system wrth gefn.\n"
-" Yn ystod y ffurfweddiad medrwch ddewis:\n"
-"\t- Ffeiliau system,\n"
-"\t-Ffeiliau defnyddwyr,\n"
-"\t-Ffeiliau eraill.\n"
-"\tneu Eich holl system...ac Arall (megis Rhaniadau Windows)\n"
-"\n"
-" Mae Drackbackup yn caniatįu i chi ddefnyddio:\n"
-"\t- Disg Caled.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (gyda awto gychwyn, achub ac awto osod.).\n"
-"\t- FTP.\n"
-"\t- Webdav.\n"
-"\t- Tāp.\n"
-"\n"
-" Mae Drakbackup yn caniatįu i chi adfer eich system i\n"
-" gyfeiriadur o ddewis y defnyddiwr.\n"
-"\n"
-" Yn rhagosodedig bydd ffeiliau wrth gefn yn cael eu cadw yn eich\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Ffeil ffurfweddiad:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"\n"
-"Camau wrth adfer:\n"
-" \n"
-" Yn ystod yr adfer bydd Drakbackup yn tynnu\n"
-" eich cyfeiriadur gwreiddiol a gwirio nad yw'r holl \n"
-" ffeiliau wrth gefn wedi eu llygru. Argymhellir i chi \n"
-" gadw wrth gefn cyn adfer.\n"
-"\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3261
-msgid ""
-"options description:\n"
-"\n"
-"Please be careful when you are using ftp backup, because only \n"
-"backups that are already built are sent to the server.\n"
-"So at the moment, you need to build the backup on your hard \n"
-"drive before sending it to the server.\n"
-"\n"
-msgstr ""
-"disgrifiad o'r dewisiadau:\n"
-"\n"
-"Byddwch ofalus wrth ddefnyddio cadw wrth gefn ftp, oherwydd\n"
-"dim ond ffeiliau wrth gefn sydd wedi eu hadeiladu sy'n cael eu\n"
-"hanfon at y gwasanaethwr.\n"
-"Felly, rhaid i chi adeiladu eich cadw wrth gefn ar eich disg caled\n"
-"cyn ei anfon i'r gwasanaethwr.\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3270
-msgid ""
-"\n"
-"Restore Backup Problems:\n"
-"\n"
-"During the restore step, Drakbackup will verify all your\n"
-"backup files before restoring them.\n"
-"Before the restore, Drakbackup will remove \n"
-"your original directory, and you will loose all your \n"
-"data. It is important to be careful and not modify the \n"
-"backup data files by hand.\n"
-msgstr ""
-"\n"
-"Anawsterau Adfer Ffeiliau wrth gefn\n"
-"\n"
-"Yn ystod yr adfer bydd Drakbackup yn gwirio eich holl\n"
-"ffeiliau wrth gefn cyn eu hadfer.\n"
-"Cyn adfer, bydd Drakbackup yn tynnu'r cyfeiriadur\n"
-"gwreiddiol, a byddwch yn colli eich holl ddata. Mae'n\n"
-"bwysig eich bod yn ofalus a pheidio newid y ffeiliau\n"
-"data wrth gefn gyda llaw.\n"
-
-#: ../../standalone/drakbackup_.c:3298
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, Drakbackup will remove\n"
-" your original directory and verify that all\n"
-" backup files are not corrupted. It is recommended\n"
-" you do a last backup before restoring.\n"
-" \n"
-"\n"
-msgstr ""
-"Disgrifiad:\n"
-"\n"
-" Mae Drakbackup yn cael ei ddefnyddio i cadw\n"
-" eich ffeiliau system wrth gefn.\n"
-" Yn ystod y ffurfweddiad medrwch ddewis:\n"
-"\t- Ffeiliau system,\n"
-"\t- Ffeiliau defnyddwyr,\n"
-"\t- Ffeiliau eraill.\n"
-"\tneu Eich holl system...ac Arall (megis Rhaniadau Windows)\n"
-"\n"
-" Mae Drackbackup yn caniatįu i chi ddefnyddio:\n"
-"\t- Disg Caled.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (gyda awto gychwyn, achub ac awto osod.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tāp.\n"
-"\n"
-" Mae Drakbackup yn caniatįu i chi adfer eich system i\n"
-" gyfeiriadur o ddewis y defnyddiwr.\n"
-"\n"
-" Yn rhagosodedig bydd ffeiliau wrth gefn yn cael eu cadw yn eich\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Ffeil ffurfweddiad:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"Camau wrth Adfer:\n"
-" \n"
-" Yn ystod yr adfer bydd Drakbackup yn tynnu\n"
-" eich cyfeiriadur gwreiddiol a gwirio nad yw'r holl \n"
-" ffeiliau wrth gefn wedi eu llygru. Argymhellir i chi \n"
-" gadw wrth gefn cyn adfer.\n"
-" \n"
-"\n"
-
-#: ../../standalone/drakboot_.c:58
-#, c-format
-msgid "Installation of %s failed. The following error occured:"
-msgstr "Mae gosod %s wedi methu. Digwyddodd y gwall canlynol:"
-
-#: ../../standalone/drakfont_.c:229
-msgid "Search installed fonts"
-msgstr "Chwilio am ffontiau wedi eu gosod"
-
-#: ../../standalone/drakfont_.c:231
-msgid "Unselect fonts installed"
-msgstr "Tynnu ffontiau wedi eu gosod"
-
-#: ../../standalone/drakfont_.c:252
-msgid "parse all fonts"
-msgstr "pob ffont"
-
-#: ../../standalone/drakfont_.c:253
-msgid "no fonts found"
-msgstr "heb ganfod ffontiau"
-
-#: ../../standalone/drakfont_.c:261 ../../standalone/drakfont_.c:303
-#: ../../standalone/drakfont_.c:352 ../../standalone/drakfont_.c:410
-#: ../../standalone/drakfont_.c:417 ../../standalone/drakfont_.c:443
-#: ../../standalone/drakfont_.c:455 ../../standalone/drakfont_.c:468
-msgid "done"
-msgstr "gorffen"
-
-#: ../../standalone/drakfont_.c:265
-msgid "could not find any font in your mounted partitions"
-msgstr "methu canfod unrhyw ffont yn eich rhaniad gosodedig"
-
-#: ../../standalone/drakfont_.c:301
-msgid "Reselect correct fonts"
-msgstr "Ailddewis y ffontiau cywir"
-
-#: ../../standalone/drakfont_.c:304
-msgid "could not find any font.\n"
-msgstr "methu cnafod unrhyw ffontiau.\n"
-
-#: ../../standalone/drakfont_.c:327
-msgid "Search fonts in installed list"
-msgstr "Chwilio am ffontiau yn y rhestr gosod"
-
-#: ../../standalone/drakfont_.c:350
-msgid "Fonts copy"
-msgstr "Copļo ffontiau"
-
-#: ../../standalone/drakfont_.c:353
-msgid "True Type fonts installation"
-msgstr "Gosod ffontiau True Type"
-
-#: ../../standalone/drakfont_.c:357
-msgid "please wait during ttmkfdir..."
-msgstr "arhoswch yn ystod ttmkfdir..."
-
-#: ../../standalone/drakfont_.c:359
-msgid "True Type install done"
-msgstr "Wedi gosod True Type"
-
-#: ../../standalone/drakfont_.c:366 ../../standalone/drakfont_.c:382
-msgid "Fonts conversion"
-msgstr "Trosiad ffontiau"
-
-#: ../../standalone/drakfont_.c:370 ../../standalone/drakfont_.c:386
-#: ../../standalone/drakfont_.c:406
-msgid "type1inst building"
-msgstr "adeiladu math 1inst"
-
-#: ../../standalone/drakfont_.c:375 ../../standalone/drakfont_.c:390
-msgid "Ghostscript referencing"
-msgstr "cyfeirio Ghostscript"
-
-#: ../../standalone/drakfont_.c:397
-msgid "ttf fonts conversion"
-msgstr "trosi ffontiau ttf "
-
-#: ../../standalone/drakfont_.c:401
-msgid "pfm fonts conversion"
-msgstr "trosi ffontiau pfm"
-
-#: ../../standalone/drakfont_.c:411
-msgid "Suppress temporary Files"
-msgstr "Llethu ffeiliau dros dro"
-
-#: ../../standalone/drakfont_.c:414
-msgid "Restart XFS"
-msgstr "Ail gychwyn XFS"
-
-#: ../../standalone/drakfont_.c:453 ../../standalone/drakfont_.c:463
-msgid "Suppress Fonts Files"
-msgstr "Llethu ffeiliau Ffontiau"
-
-#: ../../standalone/drakfont_.c:465
-msgid "xfs restart"
-msgstr "ail gychwyn xfs"
-
-#: ../../standalone/drakfont_.c:472 ../../standalone/drakfont_.c:760
-msgid ""
-"Before installing any fonts, be sure that you have the right to use and "
-"install them on your system.\n"
-"\n"
-"-You can install the fonts using the normal way. In rare cases, bogus fonts "
-"may hang up your X Server."
-msgstr ""
-"Cyn gosod unrhyw ffontiau, gwnewch yn siwr bod gennych yr hawl i'w defnyddio "
-"a'u gosod ar eich system.\n"
-"\n"
-"- Medrwch osod y ffontiau yn y dull arferol. Mewn achosion prin, gall "
-"ffontiau ffug rewi eich Gwasanaethwr X"
-
-#: ../../standalone/drakfont_.c:547
-msgid "Fonts Importation"
-msgstr "Mewnforio Ffontiau"
-
-#: ../../standalone/drakfont_.c:562
-msgid "Get Windows Fonts"
-msgstr "Estyn Ffontiau Windows"
-
-#: ../../standalone/drakfont_.c:564
-msgid "Uninstall Fonts"
-msgstr "Dad osod Ffontiau"
-
-#: ../../standalone/drakfont_.c:568
-msgid "Advanced Options"
-msgstr "Dewisiadau Uwch"
-
-#: ../../standalone/drakfont_.c:570
-msgid "Font List"
-msgstr "Rhestr Ffontiau"
-
-#: ../../standalone/drakfont_.c:739
-msgid "Choose the applications that will support the fonts :"
-msgstr "Dewiswch y rhaglenni fydd yn cynnal ffontiau:"
-
-#: ../../standalone/drakfont_.c:743
-msgid "Ghostscript"
-msgstr "Ghostscript"
-
-#: ../../standalone/drakfont_.c:747
-msgid "StarOffice"
-msgstr "StarOffice"
-
-#: ../../standalone/drakfont_.c:751
-msgid "Abiword"
-msgstr "Abiword"
-
-#: ../../standalone/drakfont_.c:755
-msgid "Generic Printers"
-msgstr "Argraffyddion Generig"
-
-#: ../../standalone/drakfont_.c:792
-msgid "Select the font file or directory and click on 'Add'"
-msgstr "Dewiswch ffeil neu gyfeiriadur y ffont a chlicio 'Ychwanegu'"
-
-#: ../../standalone/drakfont_.c:828
-msgid "Install List"
-msgstr "Gosod Rhestr"
-
-#: ../../standalone/drakfont_.c:858
-msgid "click here if you are sure."
-msgstr "cliciwch yma os ydych yn siwr."
-
-#: ../../standalone/drakfont_.c:860
-msgid "here if no."
-msgstr "yma os nad."
-
-#: ../../standalone/drakfont_.c:897
-msgid "Unselected All"
-msgstr "Dad ddewis Popeth"
-
-#: ../../standalone/drakfont_.c:899
-msgid "Selected All"
-msgstr "Dewis Popeth"
-
-#: ../../standalone/drakfont_.c:901
-msgid "Remove List"
-msgstr "Rhestr Tynnu"
-
-#: ../../standalone/drakfont_.c:919 ../../standalone/drakfont_.c:939
-msgid "Initials tests"
-msgstr "Prawf Init"
-
-#: ../../standalone/drakfont_.c:920
-msgid "Copy fonts on your system"
-msgstr "Copļo'r ffontiau ar eich system!"
-
-#: ../../standalone/drakfont_.c:921
-msgid "Install & convert Fonts"
-msgstr "Gosod a throsi ffontiau"
-
-#: ../../standalone/drakfont_.c:922
-msgid "Post Install"
-msgstr "Wedi'r Gosod"
-
-#: ../../standalone/drakfont_.c:940
-msgid "Remove fonts on your system"
-msgstr "Tynnu ffontiau oddi ar eich system!"
-
-#: ../../standalone/drakfont_.c:941
-msgid "Post Uninstall"
-msgstr "Wedi'r dad osod"
-
-#: ../../standalone/drakgw_.c:43 ../../standalone/drakgw_.c:200
-msgid "Internet Connection Sharing"
-msgstr "Rhannu Cysylltiad ā'r Rhyngrwyd"
-
-#: ../../standalone/drakgw_.c:138
-msgid "Internet Connection Sharing currently enabled"
-msgstr "Mae Rhannu Cysylltiad ā'r Rhyngrwyd wedi ei alluogi"
-
-#: ../../standalone/drakgw_.c:139
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently enabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-"Mae gosodiad rhannu cysylltiad a'r Rhyngrwyd wedi ei gyflawni. \n"
-"Mae wedi ei alluogi. \n"
-"\n"
-"Beth hoffech ei wneud?"
-
-#: ../../standalone/drakgw_.c:143
-msgid "disable"
-msgstr "dymunol"
-
-#: ../../standalone/drakgw_.c:143 ../../standalone/drakgw_.c:168
-msgid "dismiss"
-msgstr "gwrthod"
-
-#: ../../standalone/drakgw_.c:143 ../../standalone/drakgw_.c:168
-msgid "reconfigure"
-msgstr "ailffurfweddu"
-
-#: ../../standalone/drakgw_.c:146
-msgid "Disabling servers..."
-msgstr "Analluogi gwasanaethwyr..."
-
-#: ../../standalone/drakgw_.c:154
-msgid "Internet connection sharing is now disabled."
-msgstr "Mae rhannu cysylltiad ā'r Rhyngrwyd wedi ei analluogi."
-
-#: ../../standalone/drakgw_.c:163
-msgid "Internet Connection Sharing currently disabled"
-msgstr "Mae Rhannu Cysylltiad a'r Rhyngrwyd wedi ei analluogi"
-
-#: ../../standalone/drakgw_.c:164
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently disabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-"Mae gosodiad rhannu cysylltiad a'r Rhyngrwyd wedi ei gyflawni. \n"
-"Mae wedi ei analluogi. \n"
-"\n"
-"Beth hoffech ei wneud?"
-
-#: ../../standalone/drakgw_.c:168
-msgid "enable"
-msgstr "galluogi"
-
-#: ../../standalone/drakgw_.c:175
-msgid "Enabling servers..."
-msgstr "Galluogi gwasanaethwyr..."
-
-#: ../../standalone/drakgw_.c:180
-msgid "Internet connection sharing is now enabled."
-msgstr "Mae rhannu cysylltiad ā'r Rhyngrwyd wedi ei alluogi."
-
-#: ../../standalone/drakgw_.c:201
-msgid ""
-"You are about to configure your computer to share its Internet connection.\n"
-"With that feature, other computers on your local network will be able to use "
-"this computer's Internet connection.\n"
-"\n"
-"Note: you need a dedicated Network Adapter to set up a Local Area Network "
-"(LAN)."
-msgstr ""
-"Rydych ar fin ffurfweddu eich cyfrifiadur i rannu ei cysylltiad Rhyngrwyd\n"
-"Gyda'r nodwedd hwn bydd cyfrifiaduron eraill ar eich rhwydwaith lleol yn "
-"medru rhannu cyswllt rhyngrwyd y\n"
-"cyfrifiadur hwn.\n"
-"\n"
-"Sylwer: bydd angen Addasydd Rhwydwaith un-pwrpas i greu Rhwydwaith Lleol "
-"(LAN)."
-
-#: ../../standalone/drakgw_.c:227
-#, c-format
-msgid "Interface %s (using module %s)"
-msgstr "Rhyngwyneb %s (gan ddefnyddio modiwl %s)"
-
-#: ../../standalone/drakgw_.c:228
-#, c-format
-msgid "Interface %s"
-msgstr "Rhagwyneb %s"
-
-#: ../../standalone/drakgw_.c:236
-msgid "No network adapter on your system!"
-msgstr "Nid oes addasydd rhwydwaith ar eich system!"
-
-#: ../../standalone/drakgw_.c:237
-msgid ""
-"No ethernet network adapter has been detected on your system. Please run the "
-"hardware configuration tool."
-msgstr ""
-"Nid oes addasydd rhwydwaith ethernet wedi ei ganfod ar eich system. Rhedwch "
-"yr offeryn ffurfweddu caledwedd."
-
-#: ../../standalone/drakgw_.c:243
-msgid "Network interface"
-msgstr "Rhyngwyneb rhwydwaith"
-
-#: ../../standalone/drakgw_.c:244
-#, c-format
-msgid ""
-"There is only one configured network adapter on your system:\n"
-"\n"
-"%s\n"
-"\n"
-"I am about to setup your Local Area Network with that adapter."
-msgstr ""
-"Dim ond un addasydd rhwydwaith wedi ei ffurfweddu sydd ar eich system\n"
-"\n"
-"%s\n"
-"\n"
-"Rwyf ar fin gosod eich Rhwydwaith Lleol gyda'r addasydd hwnnw.."
-
-#: ../../standalone/drakgw_.c:253
-msgid ""
-"Please choose what network adapter will be connected to your Local Area "
-"Network."
-msgstr ""
-"Dewiswch ba addasyddion rhwydwaith fydd yn cael eu cysylltu ā'ch Rhwydwaith "
-"Lleol."
-
-#: ../../standalone/drakgw_.c:271
-msgid "Network interface already configured"
-msgstr "Mae rhag wyneb y rhwydwaith wedi ei ffurfwedu eisoes"
-
-#: ../../standalone/drakgw_.c:272
-#, c-format
-msgid ""
-"Warning, the network adapter (%s) is already configured.\n"
-"\n"
-"Do you want an automatic re-configuration?\n"
-"\n"
-"You can do it manually but you need to know what you're doing."
-msgstr ""
-"Rhybudd, mae'r addaswr rhwydwaith (%s) wedi ei ffurfweddu eisoes.\n"
-"\n"
-"Ydych chi eisiau ail ffurfweddiad awtomatig?\n"
-"\n"
-"Medrwch ei wneud gyda llaw ond mae'n rhaid i chi wybod beth ydych yn ei "
-"wneud."
-
-#: ../../standalone/drakgw_.c:277
-msgid "Automatic reconfiguration"
-msgstr "Ail ffurfweddiad awtomatig"
-
-#: ../../standalone/drakgw_.c:278
-msgid "Show current interface configuration"
-msgstr "Dangoswch y ffurfweddiad rhag wyneb cyfredol"
-
-#: ../../standalone/drakgw_.c:280
-#, c-format
-msgid ""
-"Current configuration of `%s':\n"
-"\n"
-"Network: %s\n"
-"IP address: %s\n"
-"IP attribution: %s\n"
-"Driver: %s"
-msgstr ""
-"Ffurfweddiad presennol '%s':\n"
-"\n"
-"Rhwydwaith: %s\n"
-"Cyfeiriad IP: %s\n"
-"Priodweddau IP: %s\n"
-"Gyrrwr: %s"
-
-#: ../../standalone/drakgw_.c:292
-msgid ""
-"I can keep your current configuration and assume you already set up a DHCP "
-"server; in that case please verify I correctly read the C-Class Network that "
-"you use for your local network; I will not reconfigure it and I will not "
-"touch your DHCP server configuration.\n"
-"\n"
-"Else, I can reconfigure your interface and (re)configure a DHCP server for "
-"you.\n"
-"\n"
-msgstr ""
-"Medraf gadw eich ffurfweddiad cyfredol a chymryd eich bod eisoes wedi gosod "
-"gwasanaethwr DHCP. Os felly, dilyswch fy mod wedi darllen y rhwydwaith "
-"dosbarth C rydych yn ei ddefnyddio fel eich rhwydwaith lleol, yn gywir. Ni "
-"fyddaf yn ei newid na chyffwrdd ā ffurfweddiad eich gwasanaethwr DHCP.\n"
-"\n"
-"Neu, medraf ail ffurfweddu eich rhag wyneb ac (ail)ffurfweddi gwasanaethwr "
-"DHCP ar eich cyfer.\n"
-
-#: ../../standalone/drakgw_.c:297
-msgid "C-Class Local Network"
-msgstr "Rhwydwaith Lleol Dosbarth C"
-
-#: ../../standalone/drakgw_.c:298
-msgid "(This) DHCP Server IP"
-msgstr "Gwasanaethwr DHCP IP (Hwn)"
-
-#: ../../standalone/drakgw_.c:299
-msgid "Re-configure interface and DHCP server"
-msgstr "Ail ffurfweddi rhag wyneb a gwasanaethwr DHCP"
-
-#: ../../standalone/drakgw_.c:306
-msgid "The Local Network did not finish with `.0', bailing out."
-msgstr "Nid yw'r Rhwydwaith Leol yn terfynnu gyda '.0', tynnu allan."
-
-#: ../../standalone/drakgw_.c:317
-#, c-format
-msgid "Potential LAN address conflict found in current config of %s!\n"
-msgstr ""
-"Canfuwyd gwrthdaro posib yng nghyfeiriad LAN ffurfweddiad presennol %s!\n"
-
-#: ../../standalone/drakgw_.c:325 ../../standalone/drakgw_.c:331
-msgid "Firewalling configuration detected!"
-msgstr "Wedi canfod ffurfweddiad mur gwarchod!"
-
-#: ../../standalone/drakgw_.c:326 ../../standalone/drakgw_.c:332
-msgid ""
-"Warning! An existing firewalling configuration has been detected. You may "
-"need some manual fix after installation."
-msgstr ""
-"Rhybudd! Mae ffurfweddiad mur gwarchod wedi ei ganfod. Efallai bydd angen "
-"atgyweirio gyda llaw ar ōl y gosodiad."
-
-#: ../../standalone/drakgw_.c:340
-msgid "Configuring..."
-msgstr "Ffurfweddu..."
-
-#: ../../standalone/drakgw_.c:341
-msgid "Configuring scripts, installing software, starting servers..."
-msgstr "Ffurfweddio sgriptiau, gosod meddalwedd, cychwyn gwasanaethwyr..."
-
-#: ../../standalone/drakgw_.c:378
-#, c-format
-msgid "Problems installing package %s"
-msgstr "Anhawster wrth osod pecyn %s"
-
-#: ../../standalone/drakgw_.c:672
-msgid ""
-"Everything has been configured.\n"
-"You may now share Internet connection with other computers on your Local "
-"Area Network, using automatic network configuration (DHCP)."
-msgstr ""
-"Mae popeth wedi ei ffurfweddu\n"
-"Gallwch rannu cysylltiad ā'r Rhyngrwyd gyda chyfrifiaduron eraill ar eich "
-"Rhwydwaith Lleol gan ddefnyddio ffurfweddiad rhwydwaith awtomatig (DHCP)."
-
-#: ../../standalone/drakgw_.c:689
-msgid "The setup has already been done, but it's currently disabled."
-msgstr "Mae'r gosodiad wedi ei gyflawnu, mae wedi ei anallluogi ar hyn o bryd."
-
-#: ../../standalone/drakgw_.c:690
-msgid "The setup has already been done, and it's currently enabled."
-msgstr "Mae'r gosodiad wedi ei gyflawnu, mae wedi ei allluogi ar hyn o bryd."
-
-#: ../../standalone/drakgw_.c:691
-msgid "No Internet Connection Sharing has ever been configured."
-msgstr "Nid oes Rhannu Cysylltiad ā'r Rhyngrwyd wedi eu ffurfweddu o'r blaen."
-
-#: ../../standalone/drakgw_.c:696
-msgid "Internet connection sharing configuration"
-msgstr "Ffurfweddiad rhannu cysylltiad ā'r Rhyngrwyd"
-
-#: ../../standalone/drakgw_.c:703
-#, c-format
-msgid ""
-"Welcome to the Internet Connection Sharing utility!\n"
-"\n"
-"%s\n"
-"\n"
-"Click on Configure to launch the setup wizard."
-msgstr ""
-"Croeso i'r Gwasanaeth Rhannu Cysylltiad ā'r Rhyngrwyd\n"
-"\n"
-"%s\n"
-"\n"
-"Cliciwch Ffurfweddu i gychwyn y dewin gosod."
-
-#: ../../standalone/draknet_.c:80
-#, c-format
-msgid "Network configuration (%d adapters)"
-msgstr "Ffurfweddiad y rhwydwaith (%d addasydd)"
-
-#: ../../standalone/draknet_.c:87 ../../standalone/draknet_.c:595
-msgid "Profile: "
-msgstr "Proffil:"
-
-#: ../../standalone/draknet_.c:95
-msgid "Del profile..."
-msgstr "Proffl dileu"
-
-#: ../../standalone/draknet_.c:101
-msgid "Profile to delete:"
-msgstr "Proffil i'w ddileu:"
-
-#: ../../standalone/draknet_.c:129
-msgid "New profile..."
-msgstr "Proffil newydd..."
-
-#: ../../standalone/draknet_.c:135
-msgid ""
-"Name of the profile to create (the new profile is created as a copy of the "
-"current one) :"
-msgstr ""
-"Enw'r proffil i'w greu ( mae'r proffil newydd yn cael ei greu fel copi o'r "
-"un cyfredol):"
-
-#: ../../standalone/draknet_.c:161
-msgid "Hostname: "
-msgstr "Enw gwesteiwr:"
-
-#: ../../standalone/draknet_.c:168
-msgid "Internet access"
-msgstr "Mynediad i'r Rhyngrwyd"
-
-#: ../../standalone/draknet_.c:181
-msgid "Type:"
-msgstr "Math: "
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-msgid "Gateway:"
-msgstr "Mynedfa:"
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-msgid "Interface:"
-msgstr "Rhyngwyneb:"
-
-#: ../../standalone/draknet_.c:195
-msgid "Status:"
-msgstr "Statws"
-
-#: ../../standalone/draknet_.c:202
-msgid "Wait please"
-msgstr "Arhoswch"
-
-#: ../../standalone/draknet_.c:220
-msgid "Configure Internet Access..."
-msgstr "Ffurfweddu Mynediad i'r We..."
-
-#: ../../standalone/draknet_.c:227 ../../standalone/draknet_.c:449
-msgid "LAN configuration"
-msgstr "Ffurfweddiad y Rhwydwaith Lleol"
-
-#: ../../standalone/draknet_.c:232
-msgid "Driver"
-msgstr "Gyrrwr"
-
-#: ../../standalone/draknet_.c:232
-msgid "Interface"
-msgstr "Rhyngwyneb"
-
-#: ../../standalone/draknet_.c:232
-msgid "Protocol"
-msgstr "Protocol"
-
-#: ../../standalone/draknet_.c:232
-msgid "State"
-msgstr "Stad"
-
-#: ../../standalone/draknet_.c:244
-msgid "Configure Local Area Network..."
-msgstr "Ffurfweddu'r Rhwydwaith Lleol..."
-
-#: ../../standalone/draknet_.c:256
-msgid "Click here to launch the wizard ->"
-msgstr "Cliciwch yma i gychwyn y dewin ->"
-
-#: ../../standalone/draknet_.c:257
-msgid "Wizard..."
-msgstr "Dewin..."
-
-#: ../../standalone/draknet_.c:283
-msgid "Apply"
-msgstr "Gosod"
-
-#: ../../standalone/draknet_.c:302
-msgid "Please Wait... Applying the configuration"
-msgstr "Arhoswch...Gosod y ffurfweddiad"
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-msgid "Connected"
-msgstr "Wedi cysylltu"
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-msgid "Not connected"
-msgstr "Heb gysylltu"
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Connect..."
-msgstr "Cysylltu..."
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Disconnect..."
-msgstr "Dadgysylltu..."
-
-#: ../../standalone/draknet_.c:404
-msgid ""
-"Warning, another Internet connection has been detected, maybe using your "
-"network"
-msgstr ""
-"Rhybudd, mae cysylltiad arall gyda'r rhyngrwyd wedi ei ganfod, efallai'n "
-"defnyddio eich rhwydwaith."
-
-#: ../../standalone/draknet_.c:431
-msgid ""
-"You don't have any configured interface.\n"
-"Configure them first by clicking on 'Configure'"
-msgstr ""
-"Nid oes gennych unrhyw rhagwynebau wedi\n"
-"eu ffurfweddio. Ffurfweddwch nhw'n gyntaf\n"
-"drwy glicio ar 'Ffurfweddu'"
-
-#: ../../standalone/draknet_.c:453
-msgid "LAN Configuration"
-msgstr "Ffurfweddiad Rhwydwaith Lleol (LAN)"
-
-#: ../../standalone/draknet_.c:464
-#, c-format
-msgid "Adapter %s: %s"
-msgstr "Addasydd %s: %s"
-
-#: ../../standalone/draknet_.c:470
-msgid "Boot Protocol"
-msgstr "Protocol Cychwyn"
-
-#: ../../standalone/draknet_.c:471
-msgid "Started on boot"
-msgstr "Cychwyn y peiriant"
-
-#: ../../standalone/draknet_.c:472
-msgid "DHCP client"
-msgstr "Cleient DHCP"
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-msgid "activate now"
-msgstr "cychwyn nawr"
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-msgid "deactivate now"
-msgstr "dad weithredu nawr"
-
-#: ../../standalone/draknet_.c:503
-msgid ""
-"This interface has not been configured yet.\n"
-"Launch the configuration wizard in the main window"
-msgstr ""
-"Nid yw'r rhag wyneb hwn wedi ei ffurfweddu eto.\n"
-"Cychwynnwch y dewin ffurfweddi yn y brif ffenestr."
-
-#: ../../standalone/draknet_.c:560
-msgid ""
-"You don't have any internet connection.\n"
-"Create one first by clicking on 'Configure'"
-msgstr ""
-"Nid oes gennych cysylltiad ā'r rhyngrwyd.\n"
-"Crėwch un drwy glicio ar 'Ffurfweddu'"
-
-#: ../../standalone/draknet_.c:584
-msgid "Internet connection configuration"
-msgstr "Ffurfweddiad cysylltiad ā'r Rhyngrwyd"
-
-#: ../../standalone/draknet_.c:588
-msgid "Internet Connection Configuration"
-msgstr "Ffurfweddu Cysylltiad ā'r Rhyngrwyd"
-
-#: ../../standalone/draknet_.c:597
-msgid "Connection type: "
-msgstr "Math o gyswllt:"
-
-#: ../../standalone/draknet_.c:603
-msgid "Parameters"
-msgstr "Paramedrau"
-
-#: ../../standalone/draknet_.c:621
-msgid "Gateway"
-msgstr "Mynedfa"
-
-#: ../../standalone/draknet_.c:630
-msgid "Ethernet Card"
-msgstr "Cerdyn Ethernet"
-
-#: ../../standalone/draknet_.c:631
-msgid "DHCP Client"
-msgstr "Cleient DHCP"
-
-#: ../../standalone/draksec_.c:31
-msgid "Setting security level"
-msgstr "Gosod y lefel diogelwch"
-
-#: ../../standalone/drakxconf_.c:47
-msgid "Control Center"
-msgstr "Canolfan Rheoli"
-
-#: ../../standalone/drakxconf_.c:48
-msgid "Choose the tool you want to use"
-msgstr "Dewiswch yr offeryn rydych am ei ddefnyddio"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "Canada (cable)"
-msgstr "Canada (cabl)"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (bcast)"
-msgstr "UDA (bcast)"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (cable)"
-msgstr "UDA (cabl)"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (cable-hrc)"
-msgstr "UDA (cable-hrc)"
-
-#: ../../standalone/drakxtv_.c:49
-msgid "China (bcast)"
-msgstr "Tseina (bcast)"
-
-#: ../../standalone/drakxtv_.c:49
-msgid "Japan (bcast)"
-msgstr "Siapan (bcast)"
-
-#: ../../standalone/drakxtv_.c:49
-msgid "Japan (cable)"
-msgstr "Siapan (cable)"
-
-#: ../../standalone/drakxtv_.c:50
-msgid "East Europe"
-msgstr "Dwyrain Ewrop"
-
-#: ../../standalone/drakxtv_.c:50
-msgid "Ireland"
-msgstr "Iwerddon"
-
-#: ../../standalone/drakxtv_.c:50
-msgid "West Europe"
-msgstr "Gorllewin Ewrop"
-
-#: ../../standalone/drakxtv_.c:51
-msgid "Australia"
-msgstr "Awstralia"
-
-#: ../../standalone/drakxtv_.c:51
-msgid "Newzealand"
-msgstr "Zeland Newydd"
-
-#: ../../standalone/drakxtv_.c:52
-msgid "South Africa"
-msgstr "De Affrica"
-
-#: ../../standalone/drakxtv_.c:53
-msgid "Argentina"
-msgstr "Yr Ariannin"
-
-#: ../../standalone/drakxtv_.c:58
-msgid ""
-"Please,\n"
-"type in your tv norm and country"
-msgstr "Rhowch eich safon teledu a gwlad"
-
-#: ../../standalone/drakxtv_.c:60
-msgid "TV norm :"
-msgstr "Safon Teledu:"
-
-#: ../../standalone/drakxtv_.c:61
-msgid "Area :"
-msgstr "Ardal:"
-
-#: ../../standalone/drakxtv_.c:65
-msgid "Scanning for TV channels in progress ..."
-msgstr "Wrthi'n sganio am sianeli Teledu ..."
-
-#: ../../standalone/drakxtv_.c:72
-msgid "Scanning for TV channels"
-msgstr "Sganio am Sianel Teledu"
-
-#: ../../standalone/drakxtv_.c:83
-msgid "No TV Card detected!"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:84
-msgid ""
-"No TV Card has been detected on your machine. Please verify that a Linux-"
-"supported Video/TV Card is correctly plugged in.\n"
-"\n"
-"\n"
-"You can visit our hardware database at:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/hardware.php3"
-msgstr ""
-
-#: ../../standalone/keyboarddrake_.c:16
-msgid "usage: keyboarddrake [--expert] [keyboard]\n"
-msgstr "defnydd: keyboarddrake [--expert] [keyboard]\n"
-
-#: ../../standalone/keyboarddrake_.c:29
-msgid "Please, choose your keyboard layout."
-msgstr "Dewiswch gynllun alweddell"
-
-#: ../../standalone/keyboarddrake_.c:36
-msgid "Do you want the BackSpace to return Delete in console?"
-msgstr "Ydych chi eisiau i'r Backspace ddychwelyd Dileu yny consol?"
-
-#: ../../standalone/livedrake_.c:24
-msgid "Change Cd-Rom"
-msgstr "Newid CD-Rom"
-
-#: ../../standalone/livedrake_.c:25
-msgid ""
-"Please insert the Installation Cd-Rom in your drive and press Ok when done.\n"
-"If you don't have it, press Cancel to avoid live upgrade."
-msgstr ""
-"Rhowch y CD Gosod yn eich gyrwr a chlicio Iawn ar ōl gorffen\n"
-"Os nad yw gennych, cliciwch Dileu i osgoi diweddaru."
-
-#: ../../standalone/livedrake_.c:35
-msgid "Unable to start live upgrade !!!\n"
-msgstr "Methu cychwyn diweddariad byw!!! \n"
-
-#: ../../standalone/localedrake_.c:32
-msgid "The change is done, but to be effective you must logout"
-msgstr ""
-"Mae'r newid wedi ei gyflawni, ond i fod yn effeithiol mae'n rhaid i chi "
-"allgofnodi"
-
-#: ../../standalone/logdrake_.c:85 ../../standalone/logdrake_.c:501
-msgid "logdrake"
-msgstr "logdrake"
-
-#: ../../standalone/logdrake_.c:95
-msgid "Show only for the selected day"
-msgstr "Dangos ar y diwrnod penodol yn unig"
-
-#: ../../standalone/logdrake_.c:102
-msgid "/File/_New"
-msgstr "/Ffeil/_Newydd"
-
-#: ../../standalone/logdrake_.c:102
-msgid "<control>N"
-msgstr "<control>N"
-
-#: ../../standalone/logdrake_.c:103
-msgid "/File/_Open"
-msgstr "/Ffeil/_Agor"
-
-#: ../../standalone/logdrake_.c:103
-msgid "<control>O"
-msgstr "<control>O"
-
-#: ../../standalone/logdrake_.c:104
-msgid "/File/_Save"
-msgstr "/File/_Cawd"
-
-#: ../../standalone/logdrake_.c:104
-msgid "<control>S"
-msgstr "<control>S"
-
-#: ../../standalone/logdrake_.c:105
-msgid "/File/Save _As"
-msgstr "/File/Cawd _fel"
-
-#: ../../standalone/logdrake_.c:106
-msgid "/File/-"
-msgstr "/Ffeil/-"
-
-#: ../../standalone/logdrake_.c:108
-msgid "/_Options"
-msgstr "/_Dewisiadau"
-
-#: ../../standalone/logdrake_.c:109
-msgid "/Options/Test"
-msgstr "/Dewisiadau/Test"
-
-#: ../../standalone/logdrake_.c:110
-msgid "/_Help"
-msgstr "/_Cymorth"
-
-#: ../../standalone/logdrake_.c:111
-msgid "/Help/_About..."
-msgstr "/Cymorth/_Ynghylch..."
-
-#: ../../standalone/logdrake_.c:118
-msgid "-misc-fixed-medium-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr "-misc-fixed-medium-r-*-*-*-100-*-*-*-*-*-*,*"
-
-#: ../../standalone/logdrake_.c:119
-msgid "-misc-fixed-bold-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr "-misc-fixed-bold-r-*-*-*-100-*-*-*-*-*-*,*"
-
-#: ../../standalone/logdrake_.c:173
-msgid "User"
-msgstr "Defnyddiwr"
-
-#: ../../standalone/logdrake_.c:174
-msgid "Messages"
-msgstr "Negeseuon"
-
-#: ../../standalone/logdrake_.c:175
-msgid "Syslog"
-msgstr "Syslog"
-
-#: ../../standalone/logdrake_.c:176
-msgid "Mandrake Tools Explanations"
-msgstr "Esboniadau Offer Mandrake"
-
-#: ../../standalone/logdrake_.c:179
-msgid "search"
-msgstr "chwilio"
-
-#: ../../standalone/logdrake_.c:185
-msgid "A tool to monitor your logs"
-msgstr "Offeryn i fonitro eich cofnodion"
-
-#: ../../standalone/logdrake_.c:186
-msgid "Settings"
-msgstr "Gosodiadau"
-
-#: ../../standalone/logdrake_.c:191
-msgid "matching"
-msgstr "cydweddu"
-
-#: ../../standalone/logdrake_.c:192
-msgid "but not matching"
-msgstr "ond heb fod yn cydweddu"
-
-#: ../../standalone/logdrake_.c:196
-msgid "Choose file"
-msgstr "Dewis ffeil"
-
-#: ../../standalone/logdrake_.c:201
-msgid "Calendar"
-msgstr "Calendr"
-
-#: ../../standalone/logdrake_.c:211
-msgid "Content of the file"
-msgstr "Cynnwys y ffeil"
-
-#: ../../standalone/logdrake_.c:215 ../../standalone/logdrake_.c:390
-msgid "Mail/SMS alert"
-msgstr "Rhybudd E-bost/SMS"
-
-#: ../../standalone/logdrake_.c:268
-#, c-format
-msgid "please wait, parsing file: %s"
-msgstr "arhoswch, dosbarthu ffeil: %s"
-
-#: ../../standalone/logdrake_.c:405
-msgid "Mail/SMS alert configuration"
-msgstr "Rhybudd ffurfweddiad E-bost/SMS"
-
-#: ../../standalone/logdrake_.c:406
-msgid ""
-"Welcome to the mail/SMS configuration utility.\n"
-"\n"
-"Here, you'll be able to set up the alert system.\n"
-msgstr ""
-"Croeso i'r gwasanaeth ffurfweddu e-bost/SMS\n"
-"\n"
-"Yma bydd modd i chi osod y system rhybuddio.\n"
-
-#: ../../standalone/logdrake_.c:414
-msgid "proftpd"
-msgstr "proftpd"
-
-#: ../../standalone/logdrake_.c:417
-msgid "sshd"
-msgstr "sshd"
-
-#: ../../standalone/logdrake_.c:418
-msgid "webmin"
-msgstr "webmin"
-
-#: ../../standalone/logdrake_.c:419
-msgid "xinetd"
-msgstr "xinetd"
-
-#: ../../standalone/logdrake_.c:422
-msgid "service setting"
-msgstr "gosodiad gwasanaeth"
-
-#: ../../standalone/logdrake_.c:423
-msgid ""
-"You will receive an alert if one of the selected service is no more running"
-msgstr "Byddwch yn derbyn rhybudd os na fydd un o'r gwasanaethu hyn yn rhedeg"
-
-#: ../../standalone/logdrake_.c:433
-msgid "load setting"
-msgstr "gosodiad llwyth"
-
-#: ../../standalone/logdrake_.c:434
-msgid "You will receive an alert if the load is higher than this value"
-msgstr "Byddwch yn derbyn rhybudd os yw'r llwyth yn uwch na'r gwerth hwn"
-
-#: ../../standalone/logdrake_.c:447
-msgid "alert configuration"
-msgstr "ffurfweddiad rhybudd"
-
-#: ../../standalone/logdrake_.c:448
-msgid "Configure the way the system will alert you"
-msgstr "Ffurfweddiwch y ffordd mae'r system yn eich rhybuddio"
-
-#: ../../standalone/logdrake_.c:478
-msgid "Save as.."
-msgstr "Cadw fel..."
-
-#: ../../standalone/mousedrake_.c:49
-msgid "Please, choose the type of your mouse."
-msgstr "Dewiswch math eich llygoden"
-
-#: ../../standalone/mousedrake_.c:59
-msgid "no serial_usb found\n"
-msgstr "neb ganfod serial_usb\n"
-
-#: ../../standalone/mousedrake_.c:63
-msgid "Emulate third button?"
-msgstr "Efelychu'r trydydd botwm?"
-
-#: ../../standalone/scannerdrake_.c:53
-#, c-format
-msgid "%s found on %s, configure it ?"
-msgstr "Wedi canfod %s ar %s, ei ffurfweddi?"
-
-#: ../../standalone/scannerdrake_.c:60
-msgid "Select a scanner"
-msgstr "Dewiswch sganiwr"
-
-#: ../../standalone/scannerdrake_.c:80
-#, c-format
-msgid "This %s scanner is unsupported"
-msgstr "Nid yw sganiwr %s yn cael ei gynnal"
-
-#: ../../standalone/scannerdrake_.c:94
-#, c-format
-msgid ""
-"Scannerdrake was not able to detect your %s scanner.\n"
-"Please select the device where your scanner is plugged"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:96
-#, fuzzy
-msgid "choose device"
-msgstr "Dyfais cychwyn"
-
-#: ../../standalone/scannerdrake_.c:102
-#, c-format
-msgid ""
-"This %s scanner must be configured by printerdrake.\n"
-"You can launch printerdrake from the Mandrake Control Center in Hardware "
-"section."
-msgstr ""
-"Rhaid i sganiwr %s gael ei ffurfweddu gan printerdrake.\n"
-"Medrwch gychwyn printerdrake o adran Galedwedd Canolfan Rheoli Mandrake"
-
-#: ../../standalone/scannerdrake_.c:107
-#, c-format
-msgid ""
-"Your %s scanner has been configured.\n"
-"You may now scan documents using ``XSane'' from Multimedia/Graphics in the "
-"applications menu."
-msgstr ""
-
-#: ../../standalone/tinyfirewall_.c:31
-msgid "Firewalling Configuration"
-msgstr "Ffurfweddiad Mur Gwarchod"
-
-#: ../../standalone/tinyfirewall_.c:44
-msgid "Firewalling configuration"
-msgstr "Ffurfweddiad Mur Gwarchod"
-
-#: ../../standalone/tinyfirewall_.c:79
-msgid ""
-"Firewalling\n"
-"\n"
-"You already have set up a firewall.\n"
-"Click on Configure to change or remove the firewall"
-msgstr ""
-"Mur Gwarchod\n"
-"\n"
-"Rydych eisoes wedi gosod mur gwarchod\n"
-"Cliciwch Ffurfweddu i newid neu dynnu'r mur gwarchod"
-
-#: ../../standalone/tinyfirewall_.c:83
-msgid ""
-"Firewalling\n"
-"\n"
-"Click on Configure to set up a standard firewall"
-msgstr ""
-"Mur gwarchod\n"
-"\n"
-"Cliciwch Ffurfweddu i osod mur gwarchod safonnol"
-
-#: ../../steps.pm_.c:14
-msgid "Choose your language"
-msgstr "Dewis eich iaith"
-
-#: ../../steps.pm_.c:15
-msgid "Select installation class"
-msgstr "Dewis dosbarth gosod"
-
-#: ../../steps.pm_.c:16
-msgid "Hard drive detection"
-msgstr "Canfod disg caled"
-
-#: ../../steps.pm_.c:17
-msgid "Configure mouse"
-msgstr "Ffurfweddu llygoden"
-
-#: ../../steps.pm_.c:18
-msgid "Choose your keyboard"
-msgstr "Dewis eich allweddell"
-
-#: ../../steps.pm_.c:19
-msgid "Security"
-msgstr "Diogelwch"
-
-#: ../../steps.pm_.c:20
-msgid "Setup filesystems"
-msgstr "System ffeil gosod"
-
-#: ../../steps.pm_.c:21
-msgid "Format partitions"
-msgstr "Fformatio rhaniadau"
-
-#: ../../steps.pm_.c:22
-msgid "Choose packages to install"
-msgstr "Dewis pecynnau i'w gosod"
-
-#: ../../steps.pm_.c:23
-msgid "Install system"
-msgstr "System osod"
-
-#: ../../steps.pm_.c:25
-msgid "Add a user"
-msgstr "Ychwanegu defnyddiwr"
-
-#: ../../steps.pm_.c:26
-msgid "Configure networking"
-msgstr "Ffurfweddu rhwydwaith"
-
-#: ../../steps.pm_.c:28
-msgid "Configure services"
-msgstr "Ffurfweddu gwasanaethau"
-
-#: ../../steps.pm_.c:29
-msgid "Install bootloader"
-msgstr "Gosod llwythwr cychwyn"
-
-#: ../../steps.pm_.c:31
-msgid "Create a bootdisk"
-msgstr "Creu disg cychwyn"
-
-#: ../../steps.pm_.c:33
-msgid "Configure X"
-msgstr "Ffurfweddu X"
-
-#: ../../steps.pm_.c:34
-msgid "Install system updates"
-msgstr "Diweddariadau system gosod"
-
-#: ../../steps.pm_.c:35
-msgid "Exit install"
-msgstr "Gadael gosod"
-
-#: ../../tinyfirewall.pm_.c:9
-msgid ""
-"tinyfirewall configurator\n"
-"\n"
-"This configures a personal firewall for this Mandrake Linux machine.\n"
-"For a powerful dedicated firewall solution, please look to the\n"
-"specialized MandrakeSecurity Firewall distribution."
-msgstr ""
-"ffurfweddiadur tinyfirewall\n"
-"\n"
-"Mae hwn yn ffurfweddu mur gwarchod personol ar gyfer y peiriant \n"
-"Mandrake Linux hwn. Am fur gwarchod pwrpasol pwerus, \n"
-"edrychwch ddosbarthiad arbennigol MandrakeSecurity Firewall."
-
-#: ../../tinyfirewall.pm_.c:14
-msgid ""
-"We'll now ask you questions about which services you'd like to allow\n"
-"the Internet to connect to. Please think carefully about these\n"
-"questions, as your computer's security is important.\n"
-"\n"
-"Please, if you're not currently using one of these services, firewall\n"
-"it off. You can change this configuration anytime you like by\n"
-"re-running this application!"
-msgstr ""
-"Byddwn nawr yn gofyn cwestiynnau am wasanaethau'r hoffech eu \n"
-"caniatįu i'r Rhyngrwyd gysylltu ā hwy. Meddyliwch yn ofalus am y \n"
-"cwestiynnau, mae diogelwch eich cyfrifiadur yn bwysig.\n"
-"\n"
-"Os nad ydych yn defnyddio un o'r gwasanaethau hyn \n"
-"gwarchodwch ef. Mae modd newid y ffurfweddiad pryd \n"
-"bynnag hoffech chi drwy ail redeg y rhaglen."
-
-#: ../../tinyfirewall.pm_.c:21
-msgid ""
-"Are you running a web server on this machine that you need the whole\n"
-"Internet to see? If you are running a webserver that only needs to be\n"
-"accessed by this machine, you can safely answer NO here.\n"
-"\n"
-msgstr ""
-"A ydych yn rhedeg gwasanaethwr gwe ar y peiriant hwn i'r holl\n"
-"Ryngrwyd ei weld? Os ydych yn rhedeg gwasanaethwr gwe\n"
-"sydd ar gyfer y peiriant hwn yn unig, yna atebwch NA.\n"
-
-#: ../../tinyfirewall.pm_.c:26
-msgid ""
-"Are you running a name server on this machine? If you didn't set one\n"
-"up to give away IP and zone information to the whole Internet, please\n"
-"answer no.\n"
-"\n"
-msgstr ""
-"A ydych yn rhedeg gwasanaethwr enw ar y peiriant hwn? Os nad ydych wedi\n"
-"gosod un i rhannu gwybodaeth IP a parth i'r holl Ryngrwyd, yna atebwch NA.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:31
-msgid ""
-"Do you want to allow incoming Secure Shell (ssh) connections? This\n"
-"is a telnet-replacement that you might use to login. If you're using\n"
-"telnet now, you should definitely switch to ssh. telnet is not\n"
-"encrypted -- so some attackers can steal your password if you use\n"
-"it. ssh is encrypted and doesn't allow for this eavesdropping."
-msgstr ""
-"Ydych chi am ganiatįu cysylltiadau Secure Shell (ssh)? Mewngofnod\n"
-"posib i gymryd lle telnet yw hwn. Os ydych yn defnyddio telnet, dylech wir \n"
-"newid i ssh. Nid yw telnet wedi ei amgryptio - gall rhai ymosodwyr ddwyn\n"
-"eich cyfrinair. Mae ssh wedi ei amgryptio ac nid yw'n caniatįu i eraill "
-"wrando."
-
-#: ../../tinyfirewall.pm_.c:36
-msgid ""
-"Do you want to allow incoming telnet connections?\n"
-"This is horribly unsafe, as we explained in the previous screen. We\n"
-"strongly recommend answering No here and using ssh in place of\n"
-"telnet.\n"
-msgstr ""
-"A ydych am ganiatįu cysylltiadau telnet i mewn?\n"
-"Mae hyn yn erchyll o aniogel, fel soniwyd yn y sgrin diwethaf. Rydym\n"
-" yn argymell yn gryf eich bod yn ateb Na yn fan hyn a defnyddio ssh\n"
-"yn lle telnet\n"
-
-#: ../../tinyfirewall.pm_.c:41
-msgid ""
-"Are you running an FTP server here that you need accessible to the\n"
-"Internet? If you are, we strongly recommend that you only use it for\n"
-"Anonymous transfers. Any passwords sent by FTP can be stolen by some\n"
-"attackers, since FTP also uses no encryption for transferring passwords.\n"
-msgstr ""
-"A ydych yn rhedeg gwasanaethwr FTP sydd angen cysylltiad ā'r Rhyngrwyd?\n"
-"Os ydych rydym yn argymell yn gryf eich bod yn ei ddefnyddio ar gyfer\n"
-"trosglwyddiadau anhysbys yn unig. Gall unrhyw gyfrinair sy'n cael ei anfon\n"
-"drwy FTP gael ei ddwyn, gan nad yw FTP'n defnyddio amgryptiad ar gyfer\n"
-"trosglwyddo cyfrineiriau\n"
-
-#: ../../tinyfirewall.pm_.c:46
-msgid ""
-"Are you running a mail server here? If you're sending you \n"
-"messages through pine, mutt or any other text-based mail client,\n"
-"you probably are. Otherwise, you should firewall this off.\n"
-"\n"
-msgstr ""
-"A ydych yn rhedeg gwasanaethwr e-bost? Os ydych yn\n"
-"anfon eich negeseuon drwy pine, mutt neu unrhyw gleient testun arall\n"
-"yna mae'n debyg eich bod. Oni bai am hynny, dylech ddiogelu hwn gyda\n"
-"mur gwarchod\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:51
-msgid ""
-"Are you running a POP or IMAP server here? This would\n"
-"be used to host non-web-based mail accounts for people via \n"
-"this machine.\n"
-"\n"
-msgstr ""
-"A ydych yn rhedeg gwasanaethwr POP neu IMAP? Byddai\n"
-"hyn yn cael ei ddefnyddio fel gwestai ar gyfer cyfrifon e-bost\n"
-"nad ydynt yn gysylltiedig a'r we, drwy'r peiriant hwn\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:56
-msgid ""
-"You appear to be running a 2.2 kernel. If your network IP\n"
-"is automatically set by a computer in your home or office \n"
-"(dynamically assigned), we need to allow for this. Is\n"
-"this the case?\n"
-msgstr ""
-"Mae'n ymddangos eich bod yn rhedeg cnewyllyn 2.2 Os\n"
-"yw eich rhwydwaith wedi ei greu'n awtomatig gan gyfrifiadur\n"
-"yn eich cartref neu swyddfa (neilltuad dynamigol) rhaid caniatįu\n"
-"ar gyfer hyn. Ai dyma sut mae hi?\n"
-
-#: ../../tinyfirewall.pm_.c:61
-msgid ""
-"Is your computer getting time syncronized to another computer?\n"
-"Mostly, this is used by medium-large Unix/Linux organizations\n"
-"to synchronize time for logging and such. If you're not part\n"
-"of a larger office and haven't heard of this, you probably \n"
-"aren't."
-msgstr ""
-"Ydi eich cyfrifiadur yn cydweddi amser gyda cyfrifiadur arall?\n"
-"Fel rheol, mae hyn yn cael ei ddefnyddio gan gyrff Unix/Linux\n"
-"cymhedrol-mawr i gydweddu amser ar gyfer mewngofnodi ag ati.\n"
-"Os nad ydych yn rhan o swyddfa fwy ac heb glywed am hyn, mwy\n"
-"na thebych, nid ydych."
-
-#: ../../tinyfirewall.pm_.c:66
-msgid ""
-"Configuration complete. May we write these changes to disk?\n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-"Mae furfweddiad wedi ei gwblhau. Gawn ni ysgrifennu'r newidiadau hyn i "
-"ddisg?\n"
-"\n"
-"\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:82
-#, c-format
-msgid "Can't open %s: %s\n"
-msgstr "Methu agor %s: %s\n"
-
-#: ../../tinyfirewall.pm_.c:84
-#, c-format
-msgid "Can't open %s for writing: %s\n"
-msgstr "Methu agor %s ar gyfer ysgrifennu: %s\n"
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "No I don't need DHCP"
-msgstr "Nid wyf angen DHCP"
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "Yes I need DHCP"
-msgstr "Rwyf eisiau DHCP"
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "No I don't need NTP"
-msgstr "Nid wyf angen NTP"
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "Yes I need NTP"
-msgstr "Rwyf eisiau NTP"
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-msgid "Don't Save"
-msgstr "Peidio Cadw"
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-#: ../../tinyfirewall.pm_.c:206
-msgid "Save & Quit"
-msgstr "Cadw a Gadael"
-
-#: ../../tinyfirewall.pm_.c:197 ../../tinyfirewall.pm_.c:201
-msgid "Firewall Configuration Wizard"
-msgstr "Dewin Ffurfweddu'r Mur Cadarn"
-
-#: ../../tinyfirewall.pm_.c:199
-msgid "No (firewall this off from the internet)"
-msgstr "Na ((rhowch hwn tu nōl i fur cadarn rhag y rhyngrwyd)"
-
-#: ../../tinyfirewall.pm_.c:200
-msgid "Yes (allow this through the firewall)"
-msgstr "Iawn (caniatewch hwn drwy'r mur cadarn)"
-
-#: ../../tinyfirewall.pm_.c:232
-msgid "Please Wait... Verifying installed packages"
-msgstr "Arhoswch,... Gwirio'r pecynnau sydd wedi eu gosod"
-
-#: ../../tinyfirewall.pm_.c:238
-#, c-format
-msgid ""
-"Failure installing the needed packages : %s and Bastille.\n"
-" Try to install them manually."
-msgstr ""
-"Wedi methu gosod y pecynnau angenrheidiol: %s a Bastille.\n"
-" Ceisiwch eu gosod gyda llaw."
-
-#: ../../share/compssUsers:999
-msgid "Web/FTP"
-msgstr "Gwe/FTP"
-
-#: ../../share/compssUsers:999
-msgid "Network Computer (client)"
-msgstr "Cyfrifiadur Rhwydwaith (cleient)"
-
-#: ../../share/compssUsers:999
-msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr ""
-"Gwasanaethwr NFS, gwasanaethwr SMB, gwasanaethwr dirprwyol, gwasanaethwr ssh"
-
-#: ../../share/compssUsers:999
-msgid "Office"
-msgstr "Swyddfa"
-
-#: ../../share/compssUsers:999
-msgid "Gnome Workstation"
-msgstr "Man Gwaith Gnome"
-
-#: ../../share/compssUsers:999
-msgid "Tools for your Palm Pilot or your Visor"
-msgstr "Offer ar gyfer eich Palm PiloT neu eich Visor"
-
-#: ../../share/compssUsers:999
-msgid "Workstation"
-msgstr "Man Gwaith"
-
-#: ../../share/compssUsers:999
-msgid "Firewall/Router"
-msgstr "Mur Gwarchod/Llwybrydd"
-
-#: ../../share/compssUsers:999
-msgid "Domain Name and Network Information Server"
-msgstr "Enw Parth a gwasanaethwr Gwybodaeth Rhwydwaith"
-
-#: ../../share/compssUsers:999
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-"Rhaglenni swyddfa: prosesydd geiriau (Kword, abiword, taenlenni (kspread, "
-"gnumeric), darllennydd pdf, ag ati"
-
-#: ../../share/compssUsers:999
-msgid "Audio-related tools: mp3 or midi players, mixers, etc"
-msgstr "Offer Sain: mp3 neu chwarewyr midi, cymysgwyr, ag ati"
-
-#: ../../share/compssUsers:999
-msgid "Books and Howto's on Linux and Free Software"
-msgstr "Llyfrau a Howto's ar Linux a Meddalwedd Rhydd"
-
-#: ../../share/compssUsers:999
-msgid "KDE Workstation"
-msgstr "Man Gwaith KDE"
-
-#: ../../share/compssUsers:999
-msgid "Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm, Window Maker, Enlightenment, Fvwm, ag ati"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Video"
-msgstr "Aml-gyfrwng - Fideo"
-
-#: ../../share/compssUsers:999
-msgid "Set of tools for mail, news, web, file transfer, and chat"
-msgstr ""
-"Casgliad o offer ar gyfer e-bost, newyddion, y we, trosglwyddo ffeiliau, a "
-"sgwrsio"
-
-#: ../../share/compssUsers:999
-msgid "Database"
-msgstr "Cronfa Ddata"
-
-#: ../../share/compssUsers:999
-msgid "PostgreSQL or MySQL database server"
-msgstr "Gwasanaethwr cronfa data PostgreSQL neu MySQL"
-
-#: ../../share/compssUsers:999
-msgid "Tools to ease the configuration of your computer"
-msgstr "Offer i wneud ffurfweddu'ch cyfrifiadur yn haws"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Sound"
-msgstr "Aml-gyfrwng - Sain"
-
-#: ../../share/compssUsers:999
-msgid "Utilities"
-msgstr "Gwaasanaethau"
-
-#: ../../share/compssUsers:999
-msgid "Documentation"
-msgstr "Dogfennaeth"
-
-#: ../../share/compssUsers:999
-msgid "Console Tools"
-msgstr "Offer y Consol"
-
-#: ../../share/compssUsers:999
-msgid "Postfix mail server, Inn news server"
-msgstr "Gwasanaethwr e-bost Postfix, gwasanaethwr newyddion Inn"
-
-#: ../../share/compssUsers:999
-msgid "Internet station"
-msgstr "Man Rhyngrwyd"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia station"
-msgstr "Man Aml-gyfrwng"
-
-#: ../../share/compssUsers:999
-msgid "Configuration"
-msgstr "Ffurfweddiad"
-
-#: ../../share/compssUsers:999
-msgid "More Graphical Desktops (Gnome, IceWM)"
-msgstr "Rhagor o Ben Bwrdd Graffig (Gnome, IceWM)"
-
-#: ../../share/compssUsers:999
-msgid ""
-"The K Desktop Environment, the basic graphical environment with a collection "
-"of accompanying tools"
-msgstr ""
-"KDE - Amgylchedd Penbwrdd K, yr amgylchedd graffig sylfaenol gyda chasgliad "
-"o offer"
-
-#: ../../share/compssUsers:999
-msgid "Graphical Environment"
-msgstr "Amgylchedd Graffig"
-
-#: ../../share/compssUsers:999
-msgid "Apache, Pro-ftpd"
-msgstr "Apache, Pro-ftpd"
-
-#: ../../share/compssUsers:999
-msgid "Tools to create and burn CD's"
-msgstr "Offer i greu a llosgi CDau"
-
-#: ../../share/compssUsers:999
-msgid "Office Workstation"
-msgstr "Gweithfan Swyddfa"
-
-#: ../../share/compssUsers:999
-msgid "Server"
-msgstr "Gwasanaethwr"
-
-#: ../../share/compssUsers:999
-msgid "Gnome, Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Gnome, Icewm, Window Maker, Enlightenment, Fvwm, ag ati"
-
-#: ../../share/compssUsers:999
-msgid "Graphics programs such as The Gimp"
-msgstr "Rhaglenni graffeg megis The Gimp"
-
-#: ../../share/compssUsers:999
-msgid "DNS/NIS "
-msgstr "DNS/NIS "
-
-#: ../../share/compssUsers:999
-msgid "C and C++ development libraries, programs and include files"
-msgstr "Llyfrgelloedd datblygiadol C a C++, rhaglenni a ffeiliau cynnwys"
-
-#: ../../share/compssUsers:999
-msgid "Network Computer server"
-msgstr "Gwasanaethwr Cyfrifiadur Rhwydwaith"
-
-#: ../../share/compssUsers:999
-msgid "Mail/Groupware/News"
-msgstr "E-bost/Offer Grwp/Newyddion"
-
-#: ../../share/compssUsers:999
-msgid "Game station"
-msgstr "Man chwarae"
-
-#: ../../share/compssUsers:999
-msgid "Video players and editors"
-msgstr "Chwarewyr a golygyddion fideo"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Graphics"
-msgstr "Aml-gyfrwng - Graffig"
-
-#: ../../share/compssUsers:999
-msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr "Rhaglenni difyrrwch: arcźd, byrddau, strategaeth, ag ati"
-
-#: ../../share/compssUsers:999
-msgid ""
-"Set of tools to read and send mail and news (pine, mutt, tin..) and to "
-"browse the Web"
-msgstr ""
-"Casgliad o offer i ddarllen ac anfon e-bost a newyddion (pine, mutt, tin..) "
-"ac i bori'r We"
-
-#: ../../share/compssUsers:999
-msgid "Archiving, emulators, monitoring"
-msgstr "Archifio, efelychwyr, monitro"
-
-#: ../../share/compssUsers:999
-msgid "Personal Finance"
-msgstr "Cyllid Personol"
-
-#: ../../share/compssUsers:999
-msgid ""
-"A graphical environment with user-friendly set of applications and desktop "
-"tools"
-msgstr ""
-"Amgylchedd graffig gyda chasgliad o raglenni ac offer penbwrdd hawdd eu "
-"defnyddio."
-
-#: ../../share/compssUsers:999
-msgid "Clients for different protocols including ssh"
-msgstr "Clientiaid ar gyfer protocolau amrywiol yn cynnwys ssh"
-
-#: ../../share/compssUsers:999
-msgid "Internet gateway"
-msgstr "Porth i'r rhyngrwyd"
-
-#: ../../share/compssUsers:999
-msgid "Sound and video playing/editing programs"
-msgstr "Chwarae sain a fideo/rhaglenni golygu"
-
-#: ../../share/compssUsers:999
-msgid "Other Graphical Desktops"
-msgstr "Pen Desg Graffigol Eraill"
-
-#: ../../share/compssUsers:999
-msgid "Editors, shells, file tools, terminals"
-msgstr "Golygyddion, cregyn, offer ffeilio, terfynellau"
-
-#: ../../share/compssUsers:999
-msgid "Programs to manage your finance, such as gnucash"
-msgstr "Rhaglenni i reoli eich cyllid, megis gnucash"
-
-#: ../../share/compssUsers:999
-msgid "Personal Information Management"
-msgstr "Rheoli Gwybodaeth Bersonol"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - CD Burning"
-msgstr "Aml-gyfrwng - Llosgi CD"
-
-#: ../../share/compssUsers:999
-msgid "Scientific Workstation"
-msgstr "Gweithfan Gwyddonol"
-
-#~ msgid "About"
-#~ msgstr "Allwedd amgryptio (eto)"
-
-#~ msgid " Help "
-#~ msgstr " Cymorth"
-
-#~ msgid ""
-#~ "XawTV isn't installed ...\n"
-#~ "You should install it.\n"
-#~ " Just type \"urpmi xawtv\""
-#~ msgstr ""
-#~ "Nid yw XawTV wedi ei osod ...\n"
-#~ "Dylech ei osod.\n"
-#~ " Teipiwch \"urpmi xawtv\""
diff --git a/perl-install/share/po/da.po b/perl-install/share/po/da.po
deleted file mode 100644
index 6edcd2ac1..000000000
--- a/perl-install/share/po/da.po
+++ /dev/null
@@ -1,12282 +0,0 @@
-# Danish translation of/Dansk oversęttelse af
-# Mandrake Linux DrakX.
-# Copyright (C) 1999-2001 MandrakeSoft
-#
-# In order of activity:
-# 1, Keld Simonsen <keld@dkuug.dk>, 2000-2002
-# 2, Jacob Nordfalk <nordfalk@mobilixnet.dk>, 2001-2002
-# 3, Troels Liebe Bentsen <tlb@iname.com>, 1999-2000
-# 4, Nikolaj Berg Amondsen <mr_nba@get2net.dk>, 2000
-# 5, Jacob Sparre Andersen, <sparre@sslug.dk>, 2000
-# 6, Kenneth Christiansen, <kenneth@ripen.dk>, 2000
-# 7, Jens Burkal <jburkal@get2net.dk>, 1999
-# 8, Mads Stenhuus Hansen <msh@com.dtu.dk>, 1999
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: DrakX VERSION\n"
-"POT-Creation-Date: 2002-03-11 18:29+0100\n"
-"PO-Revision-Date: 2002-03-13 13:04+0100\n"
-"Last-Translator: Keld Simonsen <keld@dkuug.dk>\n"
-"Language-Team: Danish <dansk@klid.dk>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../Xconfigurator.pm_.c:242
-msgid "Configure all heads independently"
-msgstr "Konfigurér alle skęrme uafhęngigt"
-
-#: ../../Xconfigurator.pm_.c:243
-msgid "Use Xinerama extension"
-msgstr "Brug Xinerama-udvidelse"
-
-#: ../../Xconfigurator.pm_.c:246
-#, c-format
-msgid "Configure only card \"%s\" (%s)"
-msgstr "Konfigurér kun kort \"%s\" (%s)"
-
-#: ../../Xconfigurator.pm_.c:249
-msgid "Multi-head configuration"
-msgstr "Flerskęrms-konfiguration"
-
-#: ../../Xconfigurator.pm_.c:250
-msgid ""
-"Your system support multiple head configuration.\n"
-"What do you want to do?"
-msgstr ""
-"Dit system understųtter konfiguration af flere skęrme\n"
-"Hvad vil du gųre?"
-
-#: ../../Xconfigurator.pm_.c:261
-msgid "Graphic card"
-msgstr "Grafikkort"
-
-#: ../../Xconfigurator.pm_.c:262
-msgid "Select a graphic card"
-msgstr "Vęlg et grafikkort"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "Choose a X server"
-msgstr "Vęlg en X-server"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "X server"
-msgstr "X-server"
-
-#: ../../Xconfigurator.pm_.c:293
-msgid "Choose a X driver"
-msgstr "Vęlg en X-driver"
-
-#: ../../Xconfigurator.pm_.c:293
-msgid "X driver"
-msgstr "X-driver"
-
-#: ../../Xconfigurator.pm_.c:360 ../../Xconfigurator.pm_.c:366
-#: ../../Xconfigurator.pm_.c:416 ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s"
-msgstr "XFree %s"
-
-#: ../../Xconfigurator.pm_.c:363
-msgid "Which configuration of XFree do you want to have?"
-msgstr "Hvilken konfiguration af XFree ųnsker du?"
-
-#: ../../Xconfigurator.pm_.c:374
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"Dit kort kan have 3D acceleration, men kun med XFree %s.\n"
-"Dit kort er understųttet af XFree %s som kan have bedre understųttelse i 2D."
-
-#: ../../Xconfigurator.pm_.c:376 ../../Xconfigurator.pm_.c:409
-#, c-format
-msgid "Your card can have 3D hardware acceleration support with XFree %s."
-msgstr ""
-"Dit kort kan have 3D hardware accelerations-understųttelse med XFree %s."
-
-#: ../../Xconfigurator.pm_.c:378 ../../Xconfigurator.pm_.c:411
-#: ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s with 3D hardware acceleration"
-msgstr "XFree %s med 3D hardware acceleration"
-
-#: ../../Xconfigurator.pm_.c:386 ../../Xconfigurator.pm_.c:400
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER."
-msgstr ""
-"Dit kort kan have 3D acceleration understųttelse, men kun med XFree %s,\n"
-"VIGTIGT: Dette er eksperimentelt og kan få din maskine til at låse eller gå "
-"ned."
-
-#: ../../Xconfigurator.pm_.c:388 ../../Xconfigurator.pm_.c:402
-#, c-format
-msgid "XFree %s with EXPERIMENTAL 3D hardware acceleration"
-msgstr "XFree %s med EKSPERMENTAL 3d hardware acceleration"
-
-#: ../../Xconfigurator.pm_.c:397
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"Dit kort kan have 3D acceleration understųttelse, men kun med XFree %s.\n"
-"VIGTIGT: Dette er eksperimentelt og kan få din maskine til at låse eller gå "
-"ned.\n"
-"Dit kort er understųttet af XFree %s som kan have bedre understųttelse i 2D."
-
-#: ../../Xconfigurator.pm_.c:417
-msgid "Xpmac (installation display driver)"
-msgstr "Xpmac (installations-skęrmdriver)"
-
-#: ../../Xconfigurator.pm_.c:421
-msgid "XFree configuration"
-msgstr "XFree konfiguration"
-
-#: ../../Xconfigurator.pm_.c:496
-msgid "Select the memory size of your graphic card"
-msgstr "Vęlg hukommelsesmęngde for dit grafikkort"
-
-#: ../../Xconfigurator.pm_.c:550
-msgid "Choose options for server"
-msgstr "Vęlg server-indstillinger"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Choose a monitor"
-msgstr "Vęlg en skęrmtype"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Monitor"
-msgstr "Skęrm"
-
-#: ../../Xconfigurator.pm_.c:577
-msgid ""
-"The two critical parameters are the vertical refresh rate, which is the "
-"rate\n"
-"at which the whole screen is refreshed, and most importantly the horizontal\n"
-"sync rate, which is the rate at which scanlines are displayed.\n"
-"\n"
-"It is VERY IMPORTANT that you do not specify a monitor type with a sync "
-"range\n"
-"that is beyond the capabilities of your monitor: you may damage your "
-"monitor.\n"
-" If in doubt, choose a conservative setting."
-msgstr ""
-"De to kritiske parametre er den lodrette frekvens, som angiver hvor mange "
-"gange (per sekund) hele skęrmbilledet bliver genopfrisket, og (vigtigst af "
-"alt) den vandrette frekvens, som angiver antallet af vandrette linier der "
-"kan tegnes på skęrmen hvert sekund.\n"
-"\n"
-"Det er MEGET VIGTIGT at du ikke angiver en skęrmtype med "
-"opdateringsfrekvenser, der er stųrre end din skęrms formåen: du risikerer at "
-"ųdelęgge din skęrm.\n"
-"Hvis du er i tvivl, bųr du vęlge en opsętning, som du med SIKKERHED ved\n"
-"at din skęrm kan klare."
-
-#: ../../Xconfigurator.pm_.c:584
-msgid "Horizontal refresh rate"
-msgstr "Vandret opdateringsfrekvens"
-
-#: ../../Xconfigurator.pm_.c:585
-msgid "Vertical refresh rate"
-msgstr "Lodret opdateringsfrekvens"
-
-#: ../../Xconfigurator.pm_.c:622
-msgid "Monitor not configured"
-msgstr "Skęrm ikke konfigureret"
-
-#: ../../Xconfigurator.pm_.c:625
-msgid "Graphic card not configured yet"
-msgstr "Grafikkort er endnu ikke konfigureret"
-
-#: ../../Xconfigurator.pm_.c:628
-msgid "Resolutions not chosen yet"
-msgstr "Oplųsninger ikke valgt endnu"
-
-#: ../../Xconfigurator.pm_.c:646
-msgid "Do you want to test the configuration?"
-msgstr "Ųnsker du at afprųve konfigurationen?"
-
-#: ../../Xconfigurator.pm_.c:650
-msgid "Warning: testing this graphic card may freeze your computer"
-msgstr ""
-"Advarsel: afprųvning af dette grafikkort kan få din maskine til at låse"
-
-#: ../../Xconfigurator.pm_.c:653
-msgid "Test of the configuration"
-msgstr "Test konfigurationen"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid ""
-"\n"
-"try to change some parameters"
-msgstr ""
-"\n"
-"prųv at ęndre nogle parametre"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid "An error has occurred:"
-msgstr "En fejl opstod:"
-
-#: ../../Xconfigurator.pm_.c:731
-#, c-format
-msgid "Leaving in %d seconds"
-msgstr "Vender tilbage om %d sekunder"
-
-#: ../../Xconfigurator.pm_.c:742
-msgid "Is this the correct setting?"
-msgstr "Er dette den korrekte indstilling?"
-
-#: ../../Xconfigurator.pm_.c:751
-msgid "An error has occurred, try to change some parameters"
-msgstr "En fejl opstod, prųv at ęndre nogle parametre"
-
-#: ../../Xconfigurator.pm_.c:822
-msgid "Resolution"
-msgstr "Oplųsning"
-
-#: ../../Xconfigurator.pm_.c:874
-msgid "Choose the resolution and the color depth"
-msgstr "Vęlg oplųsning og farvedybde"
-
-#: ../../Xconfigurator.pm_.c:876
-#, c-format
-msgid "Graphic card: %s"
-msgstr "Grafikkort: %s"
-
-#: ../../Xconfigurator.pm_.c:877
-#, c-format
-msgid "XFree86 server: %s"
-msgstr "XFree86-server: %s"
-
-#: ../../Xconfigurator.pm_.c:891 ../../diskdrake/interactive.pm_.c:259
-#: ../../install_steps_interactive.pm_.c:208
-msgid "More"
-msgstr "Mere"
-
-#: ../../Xconfigurator.pm_.c:891 ../../install_gtk.pm_.c:84
-#: ../../install_steps_gtk.pm_.c:328 ../../interactive.pm_.c:127
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_http.pm_.c:104
-#: ../../interactive_newt.pm_.c:170 ../../interactive_stdio.pm_.c:141
-#: ../../interactive_stdio.pm_.c:142 ../../my_gtk.pm_.c:686
-#: ../../my_gtk.pm_.c:1019 ../../my_gtk.pm_.c:1041
-#: ../../standalone/drakbackup_.c:2298 ../../standalone/drakbackup_.c:2369
-#: ../../standalone/drakbackup_.c:2385
-msgid "Ok"
-msgstr "O.k."
-
-#: ../../Xconfigurator.pm_.c:893 ../../network/netconnect.pm_.c:169
-#: ../../printerdrake.pm_.c:2470 ../../standalone/draknet_.c:275
-#: ../../standalone/draknet_.c:278
-msgid "Expert Mode"
-msgstr "Ekspert-udgave"
-
-#: ../../Xconfigurator.pm_.c:894
-msgid "Show all"
-msgstr "Vis alle"
-
-#: ../../Xconfigurator.pm_.c:939
-msgid "Resolutions"
-msgstr "Oplųsninger"
-
-#: ../../Xconfigurator.pm_.c:1509
-#, c-format
-msgid "Keyboard layout: %s\n"
-msgstr "Tastatur-type: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1510
-#, c-format
-msgid "Mouse type: %s\n"
-msgstr "Muse-type: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1511
-#, c-format
-msgid "Mouse device: %s\n"
-msgstr "Muse-enhed: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1512
-#, c-format
-msgid "Monitor: %s\n"
-msgstr "Skęrm: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1513
-#, c-format
-msgid "Monitor HorizSync: %s\n"
-msgstr "Skęrms vandrette frekvens: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1514
-#, c-format
-msgid "Monitor VertRefresh: %s\n"
-msgstr "Skęrms lodrette frekvens: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1515
-#, c-format
-msgid "Graphic card: %s\n"
-msgstr "Grafikkort: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1516
-#, c-format
-msgid "Graphic card identification: %s\n"
-msgstr "Grafikkort identifikation: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1517
-#, c-format
-msgid "Graphic memory: %s kB\n"
-msgstr "Grafik-hukommelse: %s kb\n"
-
-#: ../../Xconfigurator.pm_.c:1519
-#, c-format
-msgid "Color depth: %s\n"
-msgstr "Farvedybde: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1520
-#, c-format
-msgid "Resolution: %s\n"
-msgstr "Oplųsninger %s\n"
-
-#: ../../Xconfigurator.pm_.c:1522
-#, c-format
-msgid "XFree86 server: %s\n"
-msgstr "XFree86-server: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1523
-#, c-format
-msgid "XFree86 driver: %s\n"
-msgstr "XFree86 driver: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1541
-msgid "Preparing X-Window configuration"
-msgstr "Forbereder konfiguration af X"
-
-#: ../../Xconfigurator.pm_.c:1561
-msgid "What do you want to do?"
-msgstr "Hvad ųnsker du at gųre?"
-
-#: ../../Xconfigurator.pm_.c:1566
-msgid "Change Monitor"
-msgstr "Skift skęrmtype"
-
-#: ../../Xconfigurator.pm_.c:1567
-msgid "Change Graphic card"
-msgstr "Skift grafikkort"
-
-#: ../../Xconfigurator.pm_.c:1570
-msgid "Change Server options"
-msgstr "Foretag ęndringer i server-indstillinger"
-
-#: ../../Xconfigurator.pm_.c:1571
-msgid "Change Resolution"
-msgstr "Skift oplųsning"
-
-#: ../../Xconfigurator.pm_.c:1572
-msgid "Show information"
-msgstr "Vis information"
-
-#: ../../Xconfigurator.pm_.c:1573
-msgid "Test again"
-msgstr "Test igen"
-
-#: ../../Xconfigurator.pm_.c:1574 ../../printerdrake.pm_.c:2473
-#: ../../standalone/logdrake_.c:225
-msgid "Quit"
-msgstr "Afslut"
-
-#: ../../Xconfigurator.pm_.c:1582
-#, c-format
-msgid ""
-"Keep the changes?\n"
-"Current configuration is:\n"
-"\n"
-"%s"
-msgstr ""
-"Behold ęndringer?\n"
-"Nuvęrende konfiguration er:\n"
-"\n"
-"%s"
-
-#: ../../Xconfigurator.pm_.c:1603
-msgid "X at startup"
-msgstr "Start X ved systemstart"
-
-#: ../../Xconfigurator.pm_.c:1604
-msgid ""
-"I can set up your computer to automatically start X upon booting.\n"
-"Would you like X to start when you reboot?"
-msgstr ""
-"Jeg kan sętte din maskine op til automatisk at starte X ved\n"
-"opstart. Ųnsker du at starte X hver gang du genstarter?"
-
-#: ../../Xconfigurator.pm_.c:1610
-#, c-format
-msgid "Please relog into %s to activate the changes"
-msgstr "Log ind i %s igen for at aktivere ęndringerne"
-
-#: ../../Xconfigurator.pm_.c:1625
-msgid "Please log out and then use Ctrl-Alt-BackSpace"
-msgstr "Log ud og tryk herefter på Ctrl-Alt-Bak"
-
-#: ../../Xconfigurator_consts.pm_.c:6
-msgid "256 colors (8 bits)"
-msgstr "256 farver (8 bit)"
-
-#: ../../Xconfigurator_consts.pm_.c:7
-msgid "32 thousand colors (15 bits)"
-msgstr "32 tusinde farver (15 bit)"
-
-#: ../../Xconfigurator_consts.pm_.c:8
-msgid "65 thousand colors (16 bits)"
-msgstr "65 tusinde farver (16 bit)"
-
-#: ../../Xconfigurator_consts.pm_.c:9
-msgid "16 million colors (24 bits)"
-msgstr "16 millioner (24 bit)"
-
-#: ../../Xconfigurator_consts.pm_.c:10
-msgid "4 billion colors (32 bits)"
-msgstr "4 milliarder farver (32 bit)"
-
-#: ../../Xconfigurator_consts.pm_.c:113
-msgid "256 kB"
-msgstr "256 kb"
-
-#: ../../Xconfigurator_consts.pm_.c:114
-msgid "512 kB"
-msgstr "512 kb"
-
-#: ../../Xconfigurator_consts.pm_.c:115
-msgid "1 MB"
-msgstr "1 Mb"
-
-#: ../../Xconfigurator_consts.pm_.c:116
-msgid "2 MB"
-msgstr "2 Mb"
-
-#: ../../Xconfigurator_consts.pm_.c:117
-msgid "4 MB"
-msgstr "4 Mb"
-
-#: ../../Xconfigurator_consts.pm_.c:118
-msgid "8 MB"
-msgstr "8 Mb"
-
-#: ../../Xconfigurator_consts.pm_.c:119
-msgid "16 MB"
-msgstr "16 Mb"
-
-#: ../../Xconfigurator_consts.pm_.c:120
-msgid "32 MB"
-msgstr "32 Mb"
-
-#: ../../Xconfigurator_consts.pm_.c:121
-msgid "64 MB or more"
-msgstr "64 Mb eller mere"
-
-#: ../../Xconfigurator_consts.pm_.c:129
-msgid "Standard VGA, 640x480 at 60 Hz"
-msgstr "Standard-VGA, 640x480 ved 60 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:130
-msgid "Super VGA, 800x600 at 56 Hz"
-msgstr "Super-VGA, 800x600 ved 56 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:131
-msgid "8514 Compatible, 1024x768 at 87 Hz interlaced (no 800x600)"
-msgstr "8514 kompatibel, 1024x768 ved 87 Hz interlaced (ikke 800x600)"
-
-#: ../../Xconfigurator_consts.pm_.c:132
-msgid "Super VGA, 1024x768 at 87 Hz interlaced, 800x600 at 56 Hz"
-msgstr "Super VGA, 1024x768 ved 87 Hz interlaced, 800x600 ved 56 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:133
-msgid "Extended Super VGA, 800x600 at 60 Hz, 640x480 at 72 Hz"
-msgstr "Udvidet Super-VGA, 800x600 ved 60 Hz, 640x480 ved 72 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:134
-msgid "Non-Interlaced SVGA, 1024x768 at 60 Hz, 800x600 at 72 Hz"
-msgstr "Non-Interlaced SVGA, 1024x768 ved 60 Hz, 800x600 ved 72 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:135
-msgid "High Frequency SVGA, 1024x768 at 70 Hz"
-msgstr "Hųjfrekvens SVGA, 1024x768 ved 70 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:136
-msgid "Multi-frequency that can do 1280x1024 at 60 Hz"
-msgstr "Multi-frekvens, som kan klare 1280x1024 ved 60 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:137
-msgid "Multi-frequency that can do 1280x1024 at 74 Hz"
-msgstr "Multi-frekvens, som kan klare 1280x1024 ved 74 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:138
-msgid "Multi-frequency that can do 1280x1024 at 76 Hz"
-msgstr "Multi-frekvens, som kan klare 1280x1024 ved 76 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:139
-msgid "Monitor that can do 1600x1200 at 70 Hz"
-msgstr "Skęrm, som kan klare 1600x1200 ved 70 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:140
-msgid "Monitor that can do 1600x1200 at 76 Hz"
-msgstr "Skęrm, som kan klare 1600x1200 ved 76 Hz"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141
-msgid "First sector of boot partition"
-msgstr "Fųrste sektor af opstartspartition"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141 ../../any.pm_.c:218
-msgid "First sector of drive (MBR)"
-msgstr "Fųrste sektor på disken (MBR)"
-
-#: ../../any.pm_.c:120
-msgid "SILO Installation"
-msgstr "SILO-installering"
-
-#: ../../any.pm_.c:121 ../../any.pm_.c:134
-msgid "Where do you want to install the bootloader?"
-msgstr "Hvor vil du placere opstartsprogrammet?"
-
-#: ../../any.pm_.c:133
-msgid "LILO/grub Installation"
-msgstr "LILO/grub-installering"
-
-#: ../../any.pm_.c:145 ../../any.pm_.c:159
-msgid "SILO"
-msgstr "SILO"
-
-#: ../../any.pm_.c:147
-msgid "LILO with text menu"
-msgstr "LILO med tekstmenu"
-
-#: ../../any.pm_.c:148 ../../any.pm_.c:159
-msgid "LILO with graphical menu"
-msgstr "LILO med grafisk menu"
-
-#: ../../any.pm_.c:151
-msgid "Grub"
-msgstr "Grub"
-
-#: ../../any.pm_.c:155
-msgid "Boot from DOS/Windows (loadlin)"
-msgstr "Start fra DOS/Windows (loadlin)"
-
-#: ../../any.pm_.c:157 ../../any.pm_.c:159
-msgid "Yaboot"
-msgstr "Yaboot"
-
-#: ../../any.pm_.c:166 ../../any.pm_.c:198
-msgid "Bootloader main options"
-msgstr "Systemopstarterens hovedindstillinger"
-
-#: ../../any.pm_.c:167 ../../any.pm_.c:199
-msgid "Bootloader to use"
-msgstr "Systemopstarter der skal bruges"
-
-#: ../../any.pm_.c:169
-msgid "Bootloader installation"
-msgstr "Systemopstarterens installation"
-
-#: ../../any.pm_.c:171 ../../any.pm_.c:201
-msgid "Boot device"
-msgstr "Opstartsenhed"
-
-#: ../../any.pm_.c:172
-msgid "LBA (doesn't work on old BIOSes)"
-msgstr "LBA (virker ikke med gamle BIOS'er)"
-
-#: ../../any.pm_.c:173
-msgid "Compact"
-msgstr "Kompakt"
-
-#: ../../any.pm_.c:173
-msgid "compact"
-msgstr "kompakt"
-
-#: ../../any.pm_.c:174 ../../any.pm_.c:298
-msgid "Video mode"
-msgstr "Videoindstilling"
-
-#: ../../any.pm_.c:176
-msgid "Delay before booting default image"
-msgstr "Ventetid fųr opstart af forvalgt styresystem"
-
-#: ../../any.pm_.c:178 ../../any.pm_.c:796
-#: ../../install_steps_interactive.pm_.c:1115 ../../network/modem.pm_.c:48
-#: ../../printerdrake.pm_.c:708 ../../printerdrake.pm_.c:806
-#: ../../standalone/draknet_.c:625
-msgid "Password"
-msgstr "Adgangskode"
-
-#: ../../any.pm_.c:179 ../../any.pm_.c:797
-#: ../../install_steps_interactive.pm_.c:1116
-msgid "Password (again)"
-msgstr "Adgangskode (igen)"
-
-#: ../../any.pm_.c:180
-msgid "Restrict command line options"
-msgstr "Begręns kommandolinie-indstillinger"
-
-#: ../../any.pm_.c:180
-msgid "restrict"
-msgstr "begręns"
-
-#: ../../any.pm_.c:182
-msgid "Clean /tmp at each boot"
-msgstr "Rens /tmp ved hver systemopstart"
-
-#: ../../any.pm_.c:183
-#, c-format
-msgid "Precise RAM size if needed (found %d MB)"
-msgstr "Pręcis RAM-męngde, hvis påkręvet (fandt %d Mb)"
-
-#: ../../any.pm_.c:185
-msgid "Enable multi profiles"
-msgstr "Aktivér multiprofiler"
-
-#: ../../any.pm_.c:189
-msgid "Give the ram size in MB"
-msgstr "Angiv RAM-stųrrelse i Mb"
-
-#: ../../any.pm_.c:191
-msgid ""
-"Option ``Restrict command line options'' is of no use without a password"
-msgstr ""
-"Indstillingen ``Begręns kommandolinie-indstillinger'' er intet vęrd uden\n"
-"en adgangskode"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../diskdrake/interactive.pm_.c:1135
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "Please try again"
-msgstr "Prųv igen"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "The passwords do not match"
-msgstr "Adgangskoderne stemmer ikke overens"
-
-#: ../../any.pm_.c:200
-msgid "Init Message"
-msgstr "Init-besked"
-
-#: ../../any.pm_.c:202
-msgid "Open Firmware Delay"
-msgstr "Åben firmwareforsinkelse"
-
-#: ../../any.pm_.c:203
-msgid "Kernel Boot Timeout"
-msgstr "Ventetid fųr kerneopstart"
-
-#: ../../any.pm_.c:204
-msgid "Enable CD Boot?"
-msgstr "Skal det vęre muligt at starte fra CD?"
-
-#: ../../any.pm_.c:205
-msgid "Enable OF Boot?"
-msgstr "Skal det vęre muligt at starte fra OF?"
-
-#: ../../any.pm_.c:206
-msgid "Default OS?"
-msgstr "Forvalgt styresystem?"
-
-#: ../../any.pm_.c:240
-msgid ""
-"You decided to install the bootloader on a partition.\n"
-"This implies you already have a bootloader on the hard drive you boot (eg: "
-"System Commander).\n"
-"\n"
-"On which drive are you booting?"
-msgstr ""
-"Du besluttede at installere opstartsindlęseren på en partition.\n"
-"Dette indikerer at du allerede har en opstartsindlęser på disken som du "
-"starter op fra (fx System Commander).\n"
-"\n"
-"Hvilket drev starter du op fra?"
-
-#: ../../any.pm_.c:255
-msgid ""
-"Here are the different entries.\n"
-"You can add some more or change the existing ones."
-msgstr ""
-"Her er fųlgende typer indgange.\n"
-"Du kan tilfųje flere eller ęndre de eksisterende."
-
-#: ../../any.pm_.c:265 ../../standalone/drakbackup_.c:752
-#: ../../standalone/drakbackup_.c:861 ../../standalone/drakfont_.c:789
-#: ../../standalone/drakfont_.c:826
-msgid "Add"
-msgstr "Tilfųj"
-
-#: ../../any.pm_.c:265 ../../any.pm_.c:784 ../../diskdrake/hd_gtk.pm_.c:153
-#: ../../diskdrake/removable.pm_.c:27 ../../diskdrake/smbnfs_gtk.pm_.c:86
-#: ../../interactive_http.pm_.c:153
-msgid "Done"
-msgstr "Fęrdig"
-
-#: ../../any.pm_.c:265
-msgid "Modify"
-msgstr "Ęndr"
-
-#: ../../any.pm_.c:273
-msgid "Which type of entry do you want to add?"
-msgstr "Hvilken type ųnsker du at tilfųje"
-
-#: ../../any.pm_.c:274 ../../standalone/drakbackup_.c:895
-msgid "Linux"
-msgstr "Linux"
-
-#: ../../any.pm_.c:274
-msgid "Other OS (SunOS...)"
-msgstr "Andet styresystem (SunOS...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (MacOS...)"
-msgstr "Andet styresystem (MacOS...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (windows...)"
-msgstr "Andet styresystem (Windows...)"
-
-#: ../../any.pm_.c:294
-msgid "Image"
-msgstr "Billede"
-
-#: ../../any.pm_.c:295 ../../any.pm_.c:306
-msgid "Root"
-msgstr "Rod"
-
-#: ../../any.pm_.c:296 ../../any.pm_.c:325
-msgid "Append"
-msgstr "Vedhęft"
-
-#: ../../any.pm_.c:300
-msgid "Initrd"
-msgstr "Initrd"
-
-#: ../../any.pm_.c:301
-msgid "Read-write"
-msgstr "Lęs-skriv"
-
-#: ../../any.pm_.c:308
-msgid "Table"
-msgstr "Tabel"
-
-#: ../../any.pm_.c:309
-msgid "Unsafe"
-msgstr "Usikker"
-
-#: ../../any.pm_.c:316 ../../any.pm_.c:321 ../../any.pm_.c:324
-msgid "Label"
-msgstr "Męrkat"
-
-#: ../../any.pm_.c:318 ../../any.pm_.c:329
-msgid "Default"
-msgstr "Forvalgt"
-
-#: ../../any.pm_.c:326
-msgid "Initrd-size"
-msgstr "Initrd-stųrrelse"
-
-#: ../../any.pm_.c:328
-msgid "NoVideo"
-msgstr "Ingen video"
-
-#: ../../any.pm_.c:336
-msgid "Remove entry"
-msgstr "Fjern indgang"
-
-#: ../../any.pm_.c:339
-msgid "Empty label not allowed"
-msgstr "Tom męrkat er ikke tilladt"
-
-#: ../../any.pm_.c:340
-msgid "You must specify a kernel image"
-msgstr "Du skal angive en kerne-fil"
-
-#: ../../any.pm_.c:340
-msgid "You must specify a root partition"
-msgstr "Du skal angive en root-partition"
-
-#: ../../any.pm_.c:341
-msgid "This label is already used"
-msgstr "Denne męrkat er allerede brugt"
-
-#: ../../any.pm_.c:656
-#, c-format
-msgid "Found %s %s interfaces"
-msgstr "Fandt %s %s gręnsesnit"
-
-#: ../../any.pm_.c:657
-msgid "Do you have another one?"
-msgstr "Har du én til?"
-
-#: ../../any.pm_.c:658
-#, c-format
-msgid "Do you have any %s interfaces?"
-msgstr "Har du nogen %s gręnsesnit?"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:832 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "No"
-msgstr "Nej"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:831 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "Yes"
-msgstr "Ja"
-
-#: ../../any.pm_.c:661
-msgid "See hardware info"
-msgstr "Se info for maskinel"
-
-#. -PO: the first %s is the card type (scsi, network, sound,...)
-#. -PO: the second is the vendor+model name
-#: ../../any.pm_.c:695
-#, c-format
-msgid "Installing driver for %s card %s"
-msgstr "Installerer driver for %s kort %s"
-
-#: ../../any.pm_.c:696
-#, c-format
-msgid "(module %s)"
-msgstr "(modul %s)"
-
-#. -PO: the %s is the driver type (scsi, network, sound,...)
-#: ../../any.pm_.c:707
-#, c-format
-msgid "Which %s driver should I try?"
-msgstr "Hvilken %s driver skal jeg prųve?"
-
-#: ../../any.pm_.c:715
-#, c-format
-msgid ""
-"In some cases, the %s driver needs to have extra information to work\n"
-"properly, although it normally works fine without. Would you like to "
-"specify\n"
-"extra options for it or allow the driver to probe your machine for the\n"
-"information it needs? Occasionally, probing will hang a computer, but it "
-"should\n"
-"not cause any damage."
-msgstr ""
-"I nogen tilfęlde behųver %s driveren at have ekstra information for at "
-"virke\n"
-"ordentligt, selv om den normalt virker fint uden. Ųnsker du at angive "
-"ekstra\n"
-"parametre for den eller tillade driveren at sondere din maskine for\n"
-"den information den behųver? Af og til vil sondering stoppe maskinen, men "
-"burde\n"
-"ikke forårsage nogen skader."
-
-#: ../../any.pm_.c:720
-msgid "Autoprobe"
-msgstr "Automatisk sondering"
-
-#: ../../any.pm_.c:720
-msgid "Specify options"
-msgstr "Specificér parametre"
-
-#: ../../any.pm_.c:725
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Note that any address should be entered with the prefix 0x like '0x123'"
-msgstr ""
-"Du kan nu angive parametre til modul %s.\n"
-"Bemęrk at alle adresser bųr indtastes med foranstillet 0x, fx '0x123'"
-
-#: ../../any.pm_.c:731
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Options are in format ``name=value name2=value2 ...''.\n"
-"For instance, ``io=0x300 irq=7''"
-msgstr ""
-"Du kan nu sętte parametre til modulet %s.\n"
-"Parametrene er i formatet ``navn=vęrdi navn2=vęrdi2 ...''.\n"
-"F.eks., ``io=0x300 irq=7''"
-
-#: ../../any.pm_.c:734
-msgid "Module options:"
-msgstr "Modulindstillinger:"
-
-#: ../../any.pm_.c:745
-#, c-format
-msgid ""
-"Loading module %s failed.\n"
-"Do you want to try again with other parameters?"
-msgstr ""
-"Indlęsning af modul %s mislykkedes.\n"
-"Ųnsker du at prųve igen med andre parametre?"
-
-#: ../../any.pm_.c:761
-msgid "access to X programs"
-msgstr "adgang til X-programmer"
-
-#: ../../any.pm_.c:762
-msgid "access to rpm tools"
-msgstr "adgang til rpm-vęrktųjer"
-
-#: ../../any.pm_.c:763
-msgid "allow \"su\""
-msgstr "tillad \"su\""
-
-#: ../../any.pm_.c:764
-msgid "access to administrative files"
-msgstr "adgang til administrative filer"
-
-#: ../../any.pm_.c:769
-#, c-format
-msgid "(already added %s)"
-msgstr "(har allerede tilfųjet %s)"
-
-#: ../../any.pm_.c:774
-msgid "This password is too simple"
-msgstr "Adgangskoden er for simpel"
-
-#: ../../any.pm_.c:775
-msgid "Please give a user name"
-msgstr "Indtast et brugernavn"
-
-#: ../../any.pm_.c:776
-msgid ""
-"The user name must contain only lower cased letters, numbers, `-' and `_'"
-msgstr "Brugernavnet må kun indeholde små bogstaver, tal, `-' og `_'"
-
-#: ../../any.pm_.c:777
-msgid "This user name is already added"
-msgstr "Dette brugernavn eksisterer allerede"
-
-#: ../../any.pm_.c:781
-msgid "Add user"
-msgstr "Tilfųj bruger"
-
-#: ../../any.pm_.c:782
-#, c-format
-msgid ""
-"Enter a user\n"
-"%s"
-msgstr ""
-"Indtast en bruger\n"
-"%s"
-
-#: ../../any.pm_.c:783
-msgid "Accept user"
-msgstr "Acceptér bruger"
-
-#: ../../any.pm_.c:794
-msgid "Real name"
-msgstr "Rigtige navn"
-
-#: ../../any.pm_.c:795 ../../printerdrake.pm_.c:707
-#: ../../printerdrake.pm_.c:805
-msgid "User name"
-msgstr "Brugernavn"
-
-#: ../../any.pm_.c:798
-msgid "Shell"
-msgstr "Skal"
-
-#: ../../any.pm_.c:800
-msgid "Icon"
-msgstr "Ikon"
-
-#: ../../any.pm_.c:828
-msgid "Autologin"
-msgstr "Autologin"
-
-#: ../../any.pm_.c:829
-msgid ""
-"I can set up your computer to automatically log on one user.\n"
-"Do you want to use this feature?"
-msgstr ""
-"Jeg kan sętte din maskine op til automatisk at logge en bestemt bruger på.\n"
-"Ųnsker du at bruge denne finesse?"
-
-#: ../../any.pm_.c:833
-msgid "Choose the default user:"
-msgstr "Vęlg den forvalgte bruger:"
-
-#: ../../any.pm_.c:834
-msgid "Choose the window manager to run:"
-msgstr "Vęlg den vindueshåndtering du ųnsker at benytte:"
-
-#: ../../any.pm_.c:849
-msgid "Please choose a language to use."
-msgstr "Vęlg det sprog, der skal bruges."
-
-#: ../../any.pm_.c:851
-msgid "You can choose other languages that will be available after install"
-msgstr ""
-"Du kan vęlge andre sprog der vil vęre tilgęngelige efter installationen"
-
-#: ../../any.pm_.c:863 ../../install_steps_interactive.pm_.c:719
-#: ../../standalone/drakxtv_.c:54
-msgid "All"
-msgstr "Alt"
-
-#: ../../any.pm_.c:955
-msgid "Allow all users"
-msgstr "Tillad alle brugere"
-
-#: ../../any.pm_.c:955 ../../install_steps_interactive.pm_.c:521
-msgid "Custom"
-msgstr "Tilpasset"
-
-#: ../../any.pm_.c:955
-msgid "No sharing"
-msgstr "Ingen fildeling"
-
-#: ../../any.pm_.c:965 ../../network/smbnfs.pm_.c:45
-#, c-format
-msgid "The package %s needs to be installed. Do you want to install it?"
-msgstr "Pakken %s skal vęre installeret. Ųnsker du at installere den?"
-
-#: ../../any.pm_.c:968
-msgid "You can export using NFS or Samba. Which one do you want"
-msgstr "Du kan eksportere med NFS eller Samba. Hvilken vil du bruge"
-
-#: ../../any.pm_.c:976 ../../network/smbnfs.pm_.c:49
-#, c-format
-msgid "Mandatory package %s is missing"
-msgstr "Kręvet pakke %s mangler"
-
-#: ../../any.pm_.c:982
-msgid ""
-"Do you want to allow users to export some directories in their home?\n"
-"Allowing this will permit users to simply click on \"Share\" in konqueror "
-"and nautilus.\n"
-"\n"
-"\"Custom\" permit a per-user granularity.\n"
-msgstr ""
-"Ųnsker du at tillade brugere at eksportere nogle kataloger i deres "
-"hjemmekatalog?\n"
-"Tilladelse af dette vil sętte brugere i stand til simpelthen at klikke på "
-"'Fildeling' i konqueror og nautilus.\n"
-
-#: ../../any.pm_.c:996 ../../bootlook.pm_.c:161
-#: ../../diskdrake/smbnfs_gtk.pm_.c:85 ../../install_steps_gtk.pm_.c:464
-#: ../../install_steps_gtk.pm_.c:522 ../../install_steps_interactive.pm_.c:594
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_stdio.pm_.c:141
-#: ../../my_gtk.pm_.c:687 ../../my_gtk.pm_.c:690 ../../my_gtk.pm_.c:1019
-#: ../../network/netconnect.pm_.c:47 ../../printerdrake.pm_.c:1586
-#: ../../standalone/drakautoinst_.c:204 ../../standalone/drakbackup_.c:2264
-#: ../../standalone/drakbackup_.c:2289 ../../standalone/drakbackup_.c:2310
-#: ../../standalone/drakbackup_.c:2331 ../../standalone/drakbackup_.c:2349
-#: ../../standalone/drakbackup_.c:2397 ../../standalone/drakbackup_.c:2417
-#: ../../standalone/drakbackup_.c:2436 ../../standalone/drakfont_.c:767
-#: ../../standalone/drakgw_.c:721 ../../standalone/draknet_.c:116
-#: ../../standalone/draknet_.c:148 ../../standalone/draknet_.c:290
-#: ../../standalone/draknet_.c:538 ../../standalone/draknet_.c:680
-#: ../../standalone/logdrake_.c:225 ../../standalone/logdrake_.c:512
-#: ../../standalone/tinyfirewall_.c:65
-msgid "Cancel"
-msgstr "Annullér"
-
-#: ../../any.pm_.c:996
-msgid "Launch userdrake"
-msgstr "Start userdrake"
-
-#: ../../any.pm_.c:998
-msgid ""
-"The per-user sharing uses the group \"fileshare\". \n"
-"You can use userdrake to add a user in this group."
-msgstr ""
-"Deling per bruger bruger gruppen 'fileshare'. \n"
-"Du kan bruge userdrake til at tilfųje en bruger til denne gruppe."
-
-#: ../../any.pm_.c:1035
-msgid "Welcome To Crackers"
-msgstr "Velkommen til Crackere"
-
-#: ../../any.pm_.c:1036
-msgid "Poor"
-msgstr "Ringe"
-
-#: ../../any.pm_.c:1037 ../../mouse.pm_.c:31
-msgid "Standard"
-msgstr "Standard"
-
-#: ../../any.pm_.c:1038
-msgid "High"
-msgstr "Hųj"
-
-#: ../../any.pm_.c:1039
-msgid "Higher"
-msgstr "Hųjere"
-
-#: ../../any.pm_.c:1040
-msgid "Paranoid"
-msgstr "Paranoid"
-
-#: ../../any.pm_.c:1043
-msgid ""
-"This level is to be used with care. It makes your system more easy to use,\n"
-"but very sensitive: it must not be used for a machine connected to others\n"
-"or to the Internet. There is no password access."
-msgstr ""
-"Dette niveau skal bruges med omtanke. Det gųr dit system nemmere at bruge, "
-"men er meget sårbart: det må ikke bruges til en maskine der er i et netvęrk "
-"eller har forbindelse til Internettet. Der er ikke nogen kontrol af "
-"adgangskoder."
-
-#: ../../any.pm_.c:1046
-msgid ""
-"Password are now enabled, but use as a networked computer is still not "
-"recommended."
-msgstr ""
-"Kontrol af adgangskode er nu aktiveret, men brug som netvęrksmaskine er "
-"stadig ikke anbefalet."
-
-#: ../../any.pm_.c:1047
-msgid ""
-"This is the standard security recommended for a computer that will be used "
-"to connect to the Internet as a client."
-msgstr ""
-"Dette er standard sikkerheds-anbefalingen for en maskine\n"
-" med forbindelse til Internettet som klient. "
-
-#: ../../any.pm_.c:1048
-msgid ""
-"There are already some restrictions, and more automatic checks are run every "
-"night."
-msgstr ""
-"Der er allerede nogle begręnsninger, og flere automatiske kontroller bliver "
-"kųrt hver nat."
-
-#: ../../any.pm_.c:1049
-msgid ""
-"With this security level, the use of this system as a server becomes "
-"possible.\n"
-"The security is now high enough to use the system as a server which accept\n"
-"connections from many clients. Note: if your machine is only a client on the "
-"Internet, you should better choose a lower level."
-msgstr ""
-"Med dette sikkerhedsniveau kan brug som server komme på tale.\n"
-"Sikkerheden er nu hųj nok til at systemet kan bruges som server som tillader "
-"forbindelser fra mange klienter. Bemęrk: hvis din maskine kun er en klient "
-"på internettet bųr du hellere vęlge et lavere niveau."
-
-#: ../../any.pm_.c:1052
-msgid ""
-"Based on the previous level, but the system is entirely closed.\n"
-"Security features are at their maximum."
-msgstr ""
-"Baseret på det foregående niveau, men systemet er nu helt lukket.\n"
-"Sikkerhedsfaciliteterne er nu på deres hųjeste niveau."
-
-#: ../../any.pm_.c:1058
-msgid "Choose security level"
-msgstr "Vęlg sikkerhedniveau"
-
-#: ../../any.pm_.c:1061
-msgid "Security level"
-msgstr "Sikkerhedsniveau"
-
-#: ../../any.pm_.c:1063
-msgid "Use libsafe for servers"
-msgstr "Brug libsafe for servere"
-
-#: ../../any.pm_.c:1064
-msgid ""
-"A library which defends against buffer overflow and format string attacks."
-msgstr ""
-"Et bibliotek som beskytter mod angreb via bufferoverlųb og formatstrenge."
-
-# NOTE: this message will be displayed at boot time; that is
-# only the ascii charset will be available on most machines
-# so use only 7bit for this message (and do transliteration or
-# leave it in English, as it is the best for your language)
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#: ../../bootloader.pm_.c:355
-#, c-format
-msgid ""
-"Welcome to %s the operating system chooser!\n"
-"\n"
-"Choose an operating system in the list above or\n"
-"wait %d seconds for default boot.\n"
-"\n"
-msgstr ""
-"Velkommen til %s styresystems-vęlgeren!\n"
-"\n"
-"Vęlg et styresystem i den ovenstående liste eller\n"
-"vent %d sekunder for at starte standard.\n"
-"\n"
-
-# NOTE: this message will be displayed by grub at boot time; that is
-# using the BIOS font; that means cp437 charset on 99.99% of PC computers
-# out there. It is the suggested that for non latin languages an ascii
-# transliteration be used; or maybe the english text be used; as it is best
-#
-# The lines must fit on screen, aka length < 80
-# and only one line per string for the GRUB messages
-#
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:928
-msgid "Welcome to GRUB the operating system chooser!"
-msgstr "Velkommen til GRUB styresystemsvęlgeren!"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:931
-#, c-format
-msgid "Use the %c and %c keys for selecting which entry is highlighted."
-msgstr "Brug tasterne %c og %c til at vęlge mellem mulighederne."
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:934
-msgid "Press enter to boot the selected OS, 'e' to edit the"
-msgstr "Tryk 'enter' for at starte det valgte OS, 'e' for at redigere"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:937
-msgid "commands before booting, or 'c' for a command-line."
-msgstr "kommandoerne fųr opstart, eller 'c' for en kommandolinie."
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:940
-#, c-format
-msgid "The highlighted entry will be booted automatically in %d seconds."
-msgstr "Den fremhęvede mulighed vil blive startet automatisk om %d sekunder."
-
-#: ../../bootloader.pm_.c:944
-msgid "not enough room in /boot"
-msgstr "Ikke nok plads i /boot"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#. -PO: so you may need to put them in English or in a different language if MS-windows doesn't exist in your language
-#: ../../bootloader.pm_.c:1044
-msgid "Desktop"
-msgstr "Skrivebord"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#: ../../bootloader.pm_.c:1046
-msgid "Start Menu"
-msgstr "Start-menu"
-
-#: ../../bootloader.pm_.c:1065
-#, c-format
-msgid "You can't install the bootloader on a %s partition\n"
-msgstr "Du kan ikke installere opstartsindlęseren på en %s-partition\n"
-
-#: ../../bootlook.pm_.c:46
-msgid "no help implemented yet.\n"
-msgstr "endnu er ingen hjęlp implementeret.\n"
-
-#: ../../bootlook.pm_.c:62
-msgid "Boot Style Configuration"
-msgstr "Konfiguration af opstartsudseende"
-
-#: ../../bootlook.pm_.c:79 ../../standalone/logdrake_.c:101
-msgid "/_File"
-msgstr "/_Fil"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "/File/_Quit"
-msgstr "/Fil/_Afslut"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "<control>Q"
-msgstr "<kontrol>Q"
-
-#: ../../bootlook.pm_.c:91
-msgid "NewStyle Categorizing Monitor"
-msgstr "Katergoriserende oversigt i ny stil"
-
-#: ../../bootlook.pm_.c:92
-msgid "NewStyle Monitor"
-msgstr "Oversigt i ny stil"
-
-#: ../../bootlook.pm_.c:93
-msgid "Traditional Monitor"
-msgstr "Traditionel oversigt"
-
-#: ../../bootlook.pm_.c:94
-msgid "Traditional Gtk+ Monitor"
-msgstr "Traditionel Gtk+-oversigt"
-
-#: ../../bootlook.pm_.c:95
-msgid "Launch Aurora at boot time"
-msgstr "Start Aurora ved opstart"
-
-#: ../../bootlook.pm_.c:98
-msgid "Lilo/grub mode"
-msgstr "Lilo/grub modus"
-
-#: ../../bootlook.pm_.c:98
-msgid "Yaboot mode"
-msgstr "Yaboot modus"
-
-#: ../../bootlook.pm_.c:104
-#, c-format
-msgid ""
-"You are currently using %s as Boot Manager.\n"
-"Click on Configure to launch the setup wizard."
-msgstr ""
-"Du bruger for ųjeblikket % som opstartshåndterer.\n"
-"Klik på Konfigurér for at starte opsętnings-vejlederen."
-
-#: ../../bootlook.pm_.c:106 ../../standalone/drakbackup_.c:1467
-#: ../../standalone/drakbackup_.c:1478 ../../standalone/drakgw_.c:715
-#: ../../standalone/tinyfirewall_.c:59
-msgid "Configure"
-msgstr "Konfigurér"
-
-#: ../../bootlook.pm_.c:141
-msgid "System mode"
-msgstr "Systemmodus"
-
-#: ../../bootlook.pm_.c:143
-msgid "Launch the X-Window system at start"
-msgstr "Start X-vinduessystemet efter opstart"
-
-#: ../../bootlook.pm_.c:148
-msgid "No, I don't want autologin"
-msgstr "Nej, jeg ųnsker ikke automatisk login"
-
-#: ../../bootlook.pm_.c:150
-msgid "Yes, I want autologin with this (user, desktop)"
-msgstr "Ja, jeg ųnsker automatisk login med denne (bruger, skrivebord)"
-
-#: ../../bootlook.pm_.c:160 ../../network/netconnect.pm_.c:102
-#: ../../standalone/drakbackup_.c:2441 ../../standalone/drakbackup_.c:3345
-#: ../../standalone/drakfont_.c:532 ../../standalone/drakfont_.c:655
-#: ../../standalone/drakfont_.c:719 ../../standalone/drakfont_.c:765
-#: ../../standalone/draknet_.c:109 ../../standalone/draknet_.c:141
-#: ../../standalone/draknet_.c:297 ../../standalone/draknet_.c:436
-#: ../../standalone/draknet_.c:522 ../../standalone/draknet_.c:565
-#: ../../standalone/draknet_.c:666 ../../standalone/logdrake_.c:505
-msgid "OK"
-msgstr "OK"
-
-#: ../../bootlook.pm_.c:229
-#, c-format
-msgid "can not open /etc/inittab for reading: %s"
-msgstr "kan ikke lęse /etc/inittab: %s"
-
-#: ../../common.pm_.c:94
-msgid "GB"
-msgstr "Gb"
-
-#: ../../common.pm_.c:94
-msgid "KB"
-msgstr "Kb"
-
-#: ../../common.pm_.c:94
-msgid "MB"
-msgstr "Mb"
-
-#: ../../common.pm_.c:102
-msgid "TB"
-msgstr "Tb"
-
-#: ../../common.pm_.c:110
-#, c-format
-msgid "%d minutes"
-msgstr "%d minutter"
-
-#: ../../common.pm_.c:112
-msgid "1 minute"
-msgstr "1 minut"
-
-#: ../../common.pm_.c:114
-#, c-format
-msgid "%d seconds"
-msgstr "%d sekunder"
-
-#: ../../common.pm_.c:159
-msgid "Can't make screenshots before partitioning"
-msgstr "Kan ikke lave ųjebliksbilleder fųr partitionering"
-
-#: ../../common.pm_.c:166
-#, c-format
-msgid "Screenshots will be available after install in %s"
-msgstr "Ųjebliksbilleder vil vęre tilgęngelige efter installation i %s"
-
-#: ../../crypto.pm_.c:12 ../../crypto.pm_.c:26 ../../standalone/drakxtv_.c:50
-msgid "France"
-msgstr "Frankrig"
-
-#: ../../crypto.pm_.c:13
-msgid "Costa Rica"
-msgstr "Costa Rica"
-
-#: ../../crypto.pm_.c:14 ../../crypto.pm_.c:27
-msgid "Belgium"
-msgstr "Belgien"
-
-#: ../../crypto.pm_.c:15 ../../crypto.pm_.c:28
-msgid "Czech Republic"
-msgstr "Tjekkiet"
-
-#: ../../crypto.pm_.c:16 ../../crypto.pm_.c:29
-msgid "Germany"
-msgstr "Tyskland"
-
-#: ../../crypto.pm_.c:17 ../../crypto.pm_.c:30
-msgid "Greece"
-msgstr "Grękenland"
-
-#: ../../crypto.pm_.c:18 ../../crypto.pm_.c:31
-msgid "Norway"
-msgstr "Norge"
-
-#: ../../crypto.pm_.c:19 ../../crypto.pm_.c:32
-msgid "Sweden"
-msgstr "Sverige"
-
-#: ../../crypto.pm_.c:20 ../../crypto.pm_.c:34
-msgid "Netherlands"
-msgstr "Holland"
-
-#: ../../crypto.pm_.c:21 ../../crypto.pm_.c:35 ../../standalone/drakxtv_.c:50
-msgid "Italy"
-msgstr "Italien"
-
-#: ../../crypto.pm_.c:22 ../../crypto.pm_.c:36
-msgid "Austria"
-msgstr "Ųstrig"
-
-#: ../../crypto.pm_.c:33 ../../crypto.pm_.c:67
-msgid "United States"
-msgstr "U.S.A."
-
-#: ../../diskdrake/hd_gtk.pm_.c:94
-msgid "Please make a backup of your data first"
-msgstr "Lav gerne en sikkerhedkopi af dine data fųrst"
-
-#: ../../diskdrake/hd_gtk.pm_.c:94 ../../diskdrake/interactive.pm_.c:891
-#: ../../diskdrake/interactive.pm_.c:900 ../../diskdrake/interactive.pm_.c:954
-msgid "Read carefully!"
-msgstr "Lęs omhyggeligt!"
-
-#: ../../diskdrake/hd_gtk.pm_.c:97
-msgid ""
-"If you plan to use aboot, be carefull to leave a free space (2048 sectors is "
-"enough)\n"
-"at the beginning of the disk"
-msgstr ""
-"Hvis du planlęgger at bruge Yaboot, skal du huske at efterlade fri plads på\n"
-"begyndelsen af disken (2048 sektorer skulle vęre nok)"
-
-#: ../../diskdrake/hd_gtk.pm_.c:116 ../../diskdrake/interactive.pm_.c:325
-#: ../../diskdrake/interactive.pm_.c:340 ../../diskdrake/smbnfs_gtk.pm_.c:45
-#: ../../install_steps.pm_.c:75 ../../install_steps_interactive.pm_.c:67
-#: ../../install_steps_interactive.pm_.c:356 ../../interactive_http.pm_.c:119
-#: ../../interactive_http.pm_.c:120 ../../standalone/diskdrake_.c:84
-msgid "Error"
-msgstr "Fejl"
-
-#: ../../diskdrake/hd_gtk.pm_.c:151
-msgid "Wizard"
-msgstr "Vejleder"
-
-#: ../../diskdrake/hd_gtk.pm_.c:181 ../../diskdrake/removable_gtk.pm_.c:24
-msgid "Choose action"
-msgstr "Vęlg handling"
-
-#: ../../diskdrake/hd_gtk.pm_.c:185
-msgid ""
-"You have one big FAT partition\n"
-"(generally used by MicroSoft Dos/Windows).\n"
-"I suggest you first resize that partition\n"
-"(click on it, then click on \"Resize\")"
-msgstr ""
-"Du har én stor FAT partition.\n"
-"(normalt brugt af Microsoft Dos/Windows).\n"
-"Jeg anbefaler, at du ęndrer stųrrelsen på partitionen\n"
-"(klik på den, og klik herefter på \"Stųrrelsesęndring\")"
-
-#: ../../diskdrake/hd_gtk.pm_.c:188
-msgid "Please click on a partition"
-msgstr "Klik på en partition"
-
-#: ../../diskdrake/hd_gtk.pm_.c:202 ../../diskdrake/smbnfs_gtk.pm_.c:67
-#: ../../install_steps_gtk.pm_.c:523
-msgid "Details"
-msgstr "Detaljer"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Ext2"
-msgstr "Ext2"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "FAT"
-msgstr "FAT"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "HFS"
-msgstr "HFS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Journalised FS"
-msgstr "Journaliserende FS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "SunOS"
-msgstr "SunOS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Swap"
-msgstr "Swap"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../diskdrake/interactive.pm_.c:1050
-msgid "Empty"
-msgstr "Tom"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../install_steps_gtk.pm_.c:379
-#: ../../install_steps_gtk.pm_.c:439 ../../mouse.pm_.c:162
-#: ../../services.pm_.c:157 ../../standalone/drakbackup_.c:944
-msgid "Other"
-msgstr "Andet"
-
-#: ../../diskdrake/hd_gtk.pm_.c:325
-msgid "Filesystem types:"
-msgstr "Filsystems-typer:"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:386
-msgid "Create"
-msgstr "Opret"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:365
-#: ../../diskdrake/interactive.pm_.c:499 ../../diskdrake/removable.pm_.c:26
-#: ../../diskdrake/removable.pm_.c:49 ../../diskdrake/removable_gtk.pm_.c:17
-msgid "Type"
-msgstr "Type"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/hd_gtk.pm_.c:344
-#, c-format
-msgid "Use ``%s'' instead"
-msgstr "Benyt ``%s'' i stedet"
-
-#: ../../diskdrake/hd_gtk.pm_.c:344 ../../diskdrake/interactive.pm_.c:374
-msgid "Delete"
-msgstr "Slet"
-
-#: ../../diskdrake/hd_gtk.pm_.c:348
-msgid "Use ``Unmount'' first"
-msgstr "Benyt ``Afmontér'' fųrst"
-
-#: ../../diskdrake/hd_gtk.pm_.c:349 ../../diskdrake/interactive.pm_.c:491
-#, c-format
-msgid ""
-"After changing type of partition %s, all data on this partition will be lost"
-msgstr ""
-"Efter type-ęndring af partition %s vil alle data på denne partition gå tabt"
-
-#: ../../diskdrake/interactive.pm_.c:171
-msgid "Choose a partition"
-msgstr "Vęlg en partition"
-
-#: ../../diskdrake/interactive.pm_.c:171
-msgid "Choose another partition"
-msgstr "Vęlg en ny partition"
-
-#: ../../diskdrake/interactive.pm_.c:196
-msgid "Exit"
-msgstr "Afslut"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to expert mode"
-msgstr "Normal -> Ekspert"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to normal mode"
-msgstr "Ekspert -> Normal"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Undo"
-msgstr "Fortryd"
-
-#: ../../diskdrake/interactive.pm_.c:237
-msgid "Continue anyway?"
-msgstr "Fortsęt alligevel?"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without saving"
-msgstr "Afslut uden at gemme"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without writing the partition table?"
-msgstr "Afslut uden at skrive partitionstabellen?"
-
-#: ../../diskdrake/interactive.pm_.c:247
-msgid "Do you want to save /etc/fstab modifications"
-msgstr "Ųnsker du at gemme /etc/fstab-ęndringerne?"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Auto allocate"
-msgstr "Allokér automatisk"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Clear all"
-msgstr "Slet alt"
-
-#: ../../diskdrake/interactive.pm_.c:262
-msgid "Hard drive information"
-msgstr "Drev-information"
-
-#: ../../diskdrake/interactive.pm_.c:283
-msgid "All primary partitions are used"
-msgstr "Alle primęre partitioner er brugt"
-
-#: ../../diskdrake/interactive.pm_.c:284
-msgid "I can't add any more partition"
-msgstr "Kan ikke tilfųje flere partitioner"
-
-#: ../../diskdrake/interactive.pm_.c:285
-msgid ""
-"To have more partitions, please delete one to be able to create an extended "
-"partition"
-msgstr ""
-"For at du kan få flere partitioner, skal du slette én, så der kan oprettes "
-"en udvidet partition"
-
-#: ../../diskdrake/interactive.pm_.c:295
-msgid "Save partition table"
-msgstr "Gem partitionstabel"
-
-#: ../../diskdrake/interactive.pm_.c:296
-msgid "Restore partition table"
-msgstr "Genskaber partitionstabel"
-
-#: ../../diskdrake/interactive.pm_.c:297
-msgid "Rescue partition table"
-msgstr "Redder partitionstabel"
-
-#: ../../diskdrake/interactive.pm_.c:299
-msgid "Reload partition table"
-msgstr "Genindlęs partitionstabel"
-
-#: ../../diskdrake/interactive.pm_.c:304
-msgid "Removable media automounting"
-msgstr "Automontering af flytbare medier"
-
-#: ../../diskdrake/interactive.pm_.c:313 ../../diskdrake/interactive.pm_.c:333
-msgid "Select file"
-msgstr "Vęlg fil"
-
-#: ../../diskdrake/interactive.pm_.c:320
-msgid ""
-"The backup partition table has not the same size\n"
-"Still continue?"
-msgstr ""
-"Kopien af partitionstabellen har ikke samme stųrrelse\n"
-"Fortsęt alligevel?"
-
-#: ../../diskdrake/interactive.pm_.c:334
-msgid "Warning"
-msgstr "Advarsel"
-
-#: ../../diskdrake/interactive.pm_.c:335
-msgid ""
-"Insert a floppy in drive\n"
-"All data on this floppy will be lost"
-msgstr ""
-"Indsęt en diskette i diskettedrevet\n"
-"Alle data på disketten vil blive slettet"
-
-#: ../../diskdrake/interactive.pm_.c:346
-msgid "Trying to rescue partition table"
-msgstr "Forsųger at redde partitionstabellen"
-
-#: ../../diskdrake/interactive.pm_.c:352
-msgid "Detailed information"
-msgstr "Detaljeret information"
-
-#: ../../diskdrake/interactive.pm_.c:364 ../../diskdrake/interactive.pm_.c:534
-#: ../../diskdrake/interactive.pm_.c:554 ../../diskdrake/removable.pm_.c:24
-#: ../../diskdrake/removable_gtk.pm_.c:15 ../../diskdrake/smbnfs_gtk.pm_.c:83
-msgid "Mount point"
-msgstr "Monteringssti"
-
-#: ../../diskdrake/interactive.pm_.c:366 ../../diskdrake/removable.pm_.c:25
-#: ../../diskdrake/removable_gtk.pm_.c:16 ../../diskdrake/smbnfs_gtk.pm_.c:84
-msgid "Options"
-msgstr "Valg"
-
-#: ../../diskdrake/interactive.pm_.c:367 ../../diskdrake/interactive.pm_.c:621
-msgid "Resize"
-msgstr "Stųrrelsesęndring"
-
-#: ../../diskdrake/interactive.pm_.c:368 ../../diskdrake/interactive.pm_.c:674
-msgid "Move"
-msgstr "Flyt"
-
-#: ../../diskdrake/interactive.pm_.c:369
-msgid "Format"
-msgstr "Formatér"
-
-#: ../../diskdrake/interactive.pm_.c:370 ../../diskdrake/smbnfs_gtk.pm_.c:80
-msgid "Mount"
-msgstr "Montér"
-
-#: ../../diskdrake/interactive.pm_.c:371
-msgid "Add to RAID"
-msgstr "Tilfųj til RAID"
-
-#: ../../diskdrake/interactive.pm_.c:372
-msgid "Add to LVM"
-msgstr "Tilfųj til LVM"
-
-#: ../../diskdrake/interactive.pm_.c:373 ../../diskdrake/smbnfs_gtk.pm_.c:79
-msgid "Unmount"
-msgstr "Afmontér"
-
-#: ../../diskdrake/interactive.pm_.c:375
-msgid "Remove from RAID"
-msgstr "Fjern fra RAID"
-
-#: ../../diskdrake/interactive.pm_.c:376
-msgid "Remove from LVM"
-msgstr "Fjern fra LVM"
-
-#: ../../diskdrake/interactive.pm_.c:377
-msgid "Modify RAID"
-msgstr "Ęndr RAID"
-
-#: ../../diskdrake/interactive.pm_.c:378
-msgid "Use for loopback"
-msgstr "Loopback anvendelse"
-
-#: ../../diskdrake/interactive.pm_.c:417
-msgid "Create a new partition"
-msgstr "Opret en ny partition"
-
-#: ../../diskdrake/interactive.pm_.c:420
-msgid "Start sector: "
-msgstr "Startsektor: "
-
-#: ../../diskdrake/interactive.pm_.c:422 ../../diskdrake/interactive.pm_.c:773
-msgid "Size in MB: "
-msgstr "Stųrrelse i Mb: "
-
-#: ../../diskdrake/interactive.pm_.c:423 ../../diskdrake/interactive.pm_.c:774
-msgid "Filesystem type: "
-msgstr "Filsystemstype: "
-
-#: ../../diskdrake/interactive.pm_.c:424
-#: ../../diskdrake/interactive.pm_.c:1034
-#: ../../diskdrake/interactive.pm_.c:1108
-msgid "Mount point: "
-msgstr "Monteringssti: "
-
-#: ../../diskdrake/interactive.pm_.c:428
-msgid "Preference: "
-msgstr "Pręference: "
-
-#: ../../diskdrake/interactive.pm_.c:472
-msgid "Remove the loopback file?"
-msgstr "Fjern loopback-filen?"
-
-#: ../../diskdrake/interactive.pm_.c:497
-msgid "Change partition type"
-msgstr "Skift partitionstype"
-
-#: ../../diskdrake/interactive.pm_.c:498 ../../diskdrake/removable.pm_.c:48
-msgid "Which filesystem do you want?"
-msgstr "Hvilket filsystem ųnsker du at bruge?"
-
-#: ../../diskdrake/interactive.pm_.c:502
-msgid "Switching from ext2 to ext3"
-msgstr "Skifter fra ext2 til ext3"
-
-#: ../../diskdrake/interactive.pm_.c:532
-#, c-format
-msgid "Where do you want to mount loopback file %s?"
-msgstr "Hvor ųnsker du at montere loopback-fil %s?"
-
-#: ../../diskdrake/interactive.pm_.c:533 ../../diskdrake/interactive.pm_.c:553
-#, c-format
-msgid "Where do you want to mount device %s?"
-msgstr "Hvor ųnsker du at montere partitionen %s?"
-
-#: ../../diskdrake/interactive.pm_.c:539
-msgid ""
-"Can't unset mount point as this partition is used for loop back.\n"
-"Remove the loopback first"
-msgstr ""
-"Kan ikke fjerne monteringssti, da denne partition bliver brugt til "
-"loopback.\n"
-"Fjern loopback fųrst"
-
-#: ../../diskdrake/interactive.pm_.c:577
-msgid "Computing FAT filesystem bounds"
-msgstr "Udregner FAT-filsystemets gręnser"
-
-#: ../../diskdrake/interactive.pm_.c:577 ../../diskdrake/interactive.pm_.c:636
-#: ../../install_interactive.pm_.c:130
-msgid "Resizing"
-msgstr "Ęndrer stųrrelsen"
-
-#: ../../diskdrake/interactive.pm_.c:609
-msgid "This partition is not resizeable"
-msgstr "Stųrrelsen på denne partition kan ikke ęndres"
-
-#: ../../diskdrake/interactive.pm_.c:614
-msgid "All data on this partition should be backed-up"
-msgstr "Det bųr laves en backup af alle data på denne partition"
-
-#: ../../diskdrake/interactive.pm_.c:616
-#, c-format
-msgid "After resizing partition %s, all data on this partition will be lost"
-msgstr ""
-"Efter ęndring af stųrrelsen af partition %s vil alle data på denne partition "
-"gå tabt"
-
-#: ../../diskdrake/interactive.pm_.c:621
-msgid "Choose the new size"
-msgstr "Vęlg den nye stųrrelse"
-
-#: ../../diskdrake/interactive.pm_.c:622
-msgid "New size in MB: "
-msgstr "Ny stųrrelse i Mb: "
-
-#: ../../diskdrake/interactive.pm_.c:675
-msgid "Which disk do you want to move it to?"
-msgstr "Hvilken disk ųnsker du at flytte den til?"
-
-#: ../../diskdrake/interactive.pm_.c:676
-msgid "Sector"
-msgstr "Sektor"
-
-#: ../../diskdrake/interactive.pm_.c:677
-msgid "Which sector do you want to move it to?"
-msgstr "Hvilken sektor ųnsker du at flytte den til?"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving"
-msgstr "Flytter"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving partition..."
-msgstr "Flytter partition..."
-
-#: ../../diskdrake/interactive.pm_.c:697
-msgid "Choose an existing RAID to add to"
-msgstr "Vęlg en eksisterende RAID som skal udvides"
-
-#: ../../diskdrake/interactive.pm_.c:698 ../../diskdrake/interactive.pm_.c:716
-msgid "new"
-msgstr "ny"
-
-#: ../../diskdrake/interactive.pm_.c:714
-msgid "Choose an existing LVM to add to"
-msgstr "Vęlg en eksisterende LVM som skal udvides"
-
-#: ../../diskdrake/interactive.pm_.c:719
-msgid "LVM name?"
-msgstr "LVM-navn?"
-
-#: ../../diskdrake/interactive.pm_.c:759
-msgid "This partition can't be used for loopback"
-msgstr "Denne partition kan ikke bruges til loopback"
-
-#: ../../diskdrake/interactive.pm_.c:771
-msgid "Loopback"
-msgstr "Loopback"
-
-#: ../../diskdrake/interactive.pm_.c:772
-msgid "Loopback file name: "
-msgstr "Loopback-filnavn: "
-
-#: ../../diskdrake/interactive.pm_.c:777
-msgid "Give a file name"
-msgstr "Giv et filnavn"
-
-#: ../../diskdrake/interactive.pm_.c:780
-msgid "File already used by another loopback, choose another one"
-msgstr "Filen er allerede brugt af en anden loopback, vęlg en anden fil"
-
-#: ../../diskdrake/interactive.pm_.c:781
-msgid "File already exists. Use it?"
-msgstr "Filen findes allerede. Skal den bruges?"
-
-#: ../../diskdrake/interactive.pm_.c:804
-msgid "Mount options"
-msgstr "Modulindstillinger"
-
-#: ../../diskdrake/interactive.pm_.c:811
-msgid "Various"
-msgstr "Diverse"
-
-#: ../../diskdrake/interactive.pm_.c:874
-msgid "device"
-msgstr "enhed"
-
-#: ../../diskdrake/interactive.pm_.c:875
-msgid "level"
-msgstr "niveau"
-
-#: ../../diskdrake/interactive.pm_.c:876
-msgid "chunk size"
-msgstr "enhedsstųrrelse"
-
-#: ../../diskdrake/interactive.pm_.c:891
-msgid "Be careful: this operation is dangerous."
-msgstr "Vęr forsigtig: denne operation er farlig."
-
-#: ../../diskdrake/interactive.pm_.c:906
-msgid "What type of partitioning?"
-msgstr "Hvilken slags partitionering?"
-
-#: ../../diskdrake/interactive.pm_.c:924
-msgid ""
-"Sorry I won't accept to create /boot so far onto the drive (on a cylinder > "
-"1024).\n"
-"Either you use LILO and it won't work, or you don't use LILO and you don't "
-"need /boot"
-msgstr ""
-"Jeg kan desvęrre ikke på nuvęrende tidspunkt acceptere at oprette /boot på "
-"drevet (på en cylinder > 1024). Enten benytter du LILO, hvilket ikke vil "
-"fungere, eller du kan undlade at benytte LILO, hvilket vil betyde, at du "
-"ikke har brug for /boot"
-
-#: ../../diskdrake/interactive.pm_.c:928
-msgid ""
-"The partition you've selected to add as root (/) is physically located "
-"beyond\n"
-"the 1024th cylinder of the hard drive, and you have no /boot partition.\n"
-"If you plan to use the LILO boot manager, be careful to add a /boot partition"
-msgstr ""
-"Den partition som du har valgt som rod-partition (/) er fysisk placeret ud "
-"over cylinder nr. 1024 på harddisken, og du har ikke lavet nogen /boot "
-"partition. Hvis du ųnsker at benytte LILO, skal du oprette en /boot "
-"partition indenfor 1024-cylinder gręnsen."
-
-#: ../../diskdrake/interactive.pm_.c:934
-msgid ""
-"You've selected a software RAID partition as root (/).\n"
-"No bootloader is able to handle this without a /boot partition.\n"
-"So be careful to add a /boot partition"
-msgstr ""
-"Du har valgt en programmeret RAID-partition som rod (/).\n"
-"Ingen systemopstarter kan håndtere dette uden en /boot partition.\n"
-"Så vęr omhyggelig med at tilfųje en /boot partition"
-
-#: ../../diskdrake/interactive.pm_.c:954
-#, c-format
-msgid "Partition table of drive %s is going to be written to disk!"
-msgstr "Partitionstabellen for disk %s vil nu blive skrevet på disken!"
-
-#: ../../diskdrake/interactive.pm_.c:958
-msgid "You'll need to reboot before the modification can take place"
-msgstr "Du skal genstarte maskinen for at aktivere ęndringerne"
-
-#: ../../diskdrake/interactive.pm_.c:969
-#, c-format
-msgid "After formatting partition %s, all data on this partition will be lost"
-msgstr ""
-"Efter formatering af partitionen %s vil alle data på denne partition gå tabt"
-
-#: ../../diskdrake/interactive.pm_.c:971
-msgid "Formatting"
-msgstr "Formaterer"
-
-#: ../../diskdrake/interactive.pm_.c:972
-#, c-format
-msgid "Formatting loopback file %s"
-msgstr "Formaterer loopback-fil %s"
-
-#: ../../diskdrake/interactive.pm_.c:973
-#: ../../install_steps_interactive.pm_.c:465
-#, c-format
-msgid "Formatting partition %s"
-msgstr "Formaterer partition %s"
-
-#: ../../diskdrake/interactive.pm_.c:984
-msgid "Hide files"
-msgstr "Skjul filer"
-
-#: ../../diskdrake/interactive.pm_.c:984
-msgid "Move files to the new partition"
-msgstr "Flyt filer til den nye partition"
-
-#: ../../diskdrake/interactive.pm_.c:985
-#, c-format
-msgid ""
-"Directory %s already contain some data\n"
-"(%s)"
-msgstr ""
-"Katalog %s indeholder allerede nogen data\n"
-"(%s)"
-
-#: ../../diskdrake/interactive.pm_.c:996
-msgid "Moving files to the new partition"
-msgstr "Flytter filer til den nye partition"
-
-#: ../../diskdrake/interactive.pm_.c:1000
-#, c-format
-msgid "Copying %s"
-msgstr "Kopierer %s"
-
-#: ../../diskdrake/interactive.pm_.c:1004
-#, c-format
-msgid "Removing %s"
-msgstr "Fjerner %s"
-
-#: ../../diskdrake/interactive.pm_.c:1014
-#, c-format
-msgid "partition %s is now known as %s"
-msgstr "partition %s er nu kendt som %s"
-
-#: ../../diskdrake/interactive.pm_.c:1035
-#: ../../diskdrake/interactive.pm_.c:1094
-msgid "Device: "
-msgstr "Enhed: "
-
-#: ../../diskdrake/interactive.pm_.c:1036
-#, c-format
-msgid "DOS drive letter: %s (just a guess)\n"
-msgstr "DOS-drevbogstav: %s (bare et gęt)\n"
-
-#: ../../diskdrake/interactive.pm_.c:1040
-#: ../../diskdrake/interactive.pm_.c:1048
-#: ../../diskdrake/interactive.pm_.c:1112
-msgid "Type: "
-msgstr "Type: "
-
-#: ../../diskdrake/interactive.pm_.c:1044
-msgid "Name: "
-msgstr "Navn: "
-
-#: ../../diskdrake/interactive.pm_.c:1052
-#, c-format
-msgid "Start: sector %s\n"
-msgstr "Start: sektor %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1053
-#, c-format
-msgid "Size: %s"
-msgstr "Stųrrelse: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1055
-#, c-format
-msgid ", %s sectors"
-msgstr ", %s sektorer"
-
-#: ../../diskdrake/interactive.pm_.c:1057
-#, c-format
-msgid "Cylinder %d to %d\n"
-msgstr "Cylinder %d til %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1058
-msgid "Formatted\n"
-msgstr "Formateret\n"
-
-#: ../../diskdrake/interactive.pm_.c:1059
-msgid "Not formatted\n"
-msgstr "Ikke formateret\n"
-
-#: ../../diskdrake/interactive.pm_.c:1060
-msgid "Mounted\n"
-msgstr "Monteret\n"
-
-#: ../../diskdrake/interactive.pm_.c:1061
-#, c-format
-msgid "RAID md%s\n"
-msgstr "RAID md%s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1063
-#, c-format
-msgid ""
-"Loopback file(s):\n"
-" %s\n"
-msgstr ""
-"Loopback-fil(er):\n"
-" %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1064
-msgid ""
-"Partition booted by default\n"
-" (for MS-DOS boot, not for lilo)\n"
-msgstr ""
-"Partition som opstartes som standard\n"
-" (gęlder kun MS-DOS-opstart, ikke LILO)\n"
-
-#: ../../diskdrake/interactive.pm_.c:1066
-#, c-format
-msgid "Level %s\n"
-msgstr "Niveau %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1067
-#, c-format
-msgid "Chunk size %s\n"
-msgstr "Enhedsstųrrelse %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1068
-#, c-format
-msgid "RAID-disks %s\n"
-msgstr "RAID-diske %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1070
-#, c-format
-msgid "Loopback file name: %s"
-msgstr "Loopback-filnavn: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1073
-msgid ""
-"\n"
-"Chances are, this partition is\n"
-"a Driver partition, you should\n"
-"probably leave it alone.\n"
-msgstr ""
-"\n"
-"Denne partition er nok\n"
-"en driver-partition, du skal\n"
-"sandsynligvis lade den vęre.\n"
-
-#: ../../diskdrake/interactive.pm_.c:1076
-msgid ""
-"\n"
-"This special Bootstrap\n"
-"partition is for\n"
-"dual-booting your system.\n"
-msgstr ""
-"\n"
-"Denne specielle Bootstrap-\n"
-"partition er for at\n"
-"dual-boote dit system.\n"
-
-#: ../../diskdrake/interactive.pm_.c:1095
-#, c-format
-msgid "Size: %s\n"
-msgstr "Stųrrelse: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1096
-#, c-format
-msgid "Geometry: %s cylinders, %s heads, %s sectors\n"
-msgstr "Opbygning: %s cylindre, %s hoveder, %s sektorer\n"
-
-#: ../../diskdrake/interactive.pm_.c:1097
-msgid "Info: "
-msgstr "Info: "
-
-#: ../../diskdrake/interactive.pm_.c:1098
-#, c-format
-msgid "LVM-disks %s\n"
-msgstr "LVM-diske %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1099
-#, c-format
-msgid "Partition table type: %s\n"
-msgstr "Partitionstabel-type: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1100
-#, c-format
-msgid "on bus %d id %d\n"
-msgstr "på bus %d id %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1114
-#, c-format
-msgid "Options: %s"
-msgstr "Valg: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1130
-msgid "Filesystem encryption key"
-msgstr "Krypteringsnųgle for filsystem"
-
-#: ../../diskdrake/interactive.pm_.c:1131
-msgid "Choose your filesystem encryption key"
-msgstr "Vęlg din krypteringsnųgle for filsystemet"
-
-#: ../../diskdrake/interactive.pm_.c:1134
-#, c-format
-msgid "This encryption key is too simple (must be at least %d characters long)"
-msgstr ""
-"Denne krypteringsnųgle er for nem at gętte (skal mindst vęre på %d tegn)"
-
-#: ../../diskdrake/interactive.pm_.c:1135
-msgid "The encryption keys do not match"
-msgstr "Krypteringsnųglerne stemmer ikke overens"
-
-#: ../../diskdrake/interactive.pm_.c:1138
-msgid "Encryption key"
-msgstr "Krypteringsnųgle"
-
-#: ../../diskdrake/interactive.pm_.c:1139
-msgid "Encryption key (again)"
-msgstr "Krypteringsnųgle (igen)"
-
-#: ../../diskdrake/removable.pm_.c:47
-msgid "Change type"
-msgstr "Skift type"
-
-#: ../../diskdrake/removable_gtk.pm_.c:28
-msgid "Please click on a media"
-msgstr "Klik på et medie"
-
-#: ../../diskdrake/smbnfs_gtk.pm_.c:165
-msgid "Search servers"
-msgstr "Sųg efter servere"
-
-#: ../../fs.pm_.c:485 ../../fs.pm_.c:495 ../../fs.pm_.c:499 ../../fs.pm_.c:503
-#: ../../fs.pm_.c:507 ../../fs.pm_.c:511
-#, c-format
-msgid "%s formatting of %s failed"
-msgstr "%s formatering af %s mislykkedes"
-
-#: ../../fs.pm_.c:548
-#, c-format
-msgid "I don't know how to format %s in type %s"
-msgstr "Ved ikke hvordan man formaterer %s som type %s"
-
-#: ../../fs.pm_.c:620 ../../fs.pm_.c:649 ../../fs.pm_.c:655
-#, c-format
-msgid "mounting partition %s in directory %s failed"
-msgstr "montering af partition %s i katalog %s mislykkedes"
-
-#: ../../fs.pm_.c:640
-#, c-format
-msgid "fsck failed with exit code %d or signal %d"
-msgstr "fsck afsluttet med fejlkode %d eller signal %d"
-
-#: ../../fs.pm_.c:670 ../../partition_table.pm_.c:596
-#, c-format
-msgid "error unmounting %s: %s"
-msgstr "fejl ved afmontering af %s: %s"
-
-#: ../../fsedit.pm_.c:21
-msgid "simple"
-msgstr "simpel"
-
-#: ../../fsedit.pm_.c:25
-msgid "with /usr"
-msgstr "med /usr"
-
-#: ../../fsedit.pm_.c:30
-msgid "server"
-msgstr "server"
-
-#: ../../fsedit.pm_.c:467
-msgid "You can't use JFS for partitions smaller than 16MB"
-msgstr "Du kan ikke bruge JFS på partitioner mindre end 16Mb"
-
-#: ../../fsedit.pm_.c:468
-msgid "You can't use ReiserFS for partitions smaller than 32MB"
-msgstr "Du kan ikke bruge ReiserFS på partitioner mindre end 32Mb"
-
-#: ../../fsedit.pm_.c:477
-msgid "Mount points must begin with a leading /"
-msgstr "Monteringsstier skal begynde med /"
-
-#: ../../fsedit.pm_.c:478
-#, c-format
-msgid "There is already a partition with mount point %s\n"
-msgstr "Der findes allerede en partition med monterings-sti %s\n"
-
-#: ../../fsedit.pm_.c:482
-#, c-format
-msgid "You can't use a LVM Logical Volume for mount point %s"
-msgstr "Du kan ikke bruge et LVM logisk delarkiv for monteringspunkt %s"
-
-#: ../../fsedit.pm_.c:484
-msgid "This directory should remain within the root filesystem"
-msgstr "Dette katalog bųr ligge på rod-filsystemet"
-
-#: ../../fsedit.pm_.c:486
-msgid "You need a true filesystem (ext2, reiserfs) for this mount point\n"
-msgstr ""
-"Du skal have et rigtigt filsystem (ext2, reiserfs) til dette "
-"monteringspunkt\n"
-
-#: ../../fsedit.pm_.c:488
-#, c-format
-msgid "You can't use an encrypted file system for mount point %s"
-msgstr "Du kan ikke bruge et krypteret filsystem for monteringspunkt %s"
-
-#: ../../fsedit.pm_.c:546
-msgid "Not enough free space for auto-allocating"
-msgstr "Ikke nok fri plads til at tildele nye partitioner automatisk"
-
-#: ../../fsedit.pm_.c:548
-msgid "Nothing to do"
-msgstr "Ingenting at lave"
-
-#: ../../fsedit.pm_.c:612
-#, c-format
-msgid "Error opening %s for writing: %s"
-msgstr "Fejl ved åbning af %s for skrivning: %s"
-
-#: ../../fsedit.pm_.c:697
-msgid ""
-"An error has occurred - no valid devices were found on which to create new "
-"filesystems. Please check your hardware for the cause of this problem"
-msgstr ""
-"Der er opstået en fejl - der kunne ikke findes nogen gyldige enheder, hvor "
-"der kan oprettes nye filsystemer. Undersųg din maskine for at finde årsagen "
-"til problemet"
-
-#: ../../fsedit.pm_.c:720
-msgid "You don't have any partitions!"
-msgstr "Du har ikke nogen partitioner!"
-
-#: ../../help.pm_.c:13
-msgid ""
-"GNU/Linux is a multiuser system, and this means that each user can have his\n"
-"own preferences, his own files and so on. You can read the ``User Guide''\n"
-"to learn more. But unlike \"root\", which is the administrator, the users\n"
-"you will add here will not be entitled to change anything except their own\n"
-"files and their own configuration. You will have to create at least one\n"
-"regular user for yourself. That account is where you should log in for\n"
-"routine use. Although it is very practical to log in as \"root\" everyday,\n"
-"it may also be very dangerous! The slightest mistake could mean that your\n"
-"system would not work any more. If you make a serious mistake as a regular\n"
-"user, you may only lose some information, but not the entire system.\n"
-"\n"
-"First, you have to enter your real name. This is not mandatory, of course\n"
-"as you can actually enter whatever you want. DrakX will then take the first\n"
-"word you have entered in the box and will bring it over to the \"User\n"
-"name\". This is the name this particular user will use to log onto the\n"
-"system. You can change it. You then have to enter a password here. A\n"
-"non-privileged (regular) user's password is not as crucial as \"root\"' one\n"
-"from a security point of view, but that is no reason to neglect it: after\n"
-"all, your files are at risk.\n"
-"\n"
-"If you click on \"Accept user\", you can then add as many as you want. Add\n"
-"a user for each one of your friends: your father or your sister, for\n"
-"example. When you finish adding all the users you want, select \"Done\".\n"
-"\n"
-"Clicking the \"Advanced\" button allows you to change the default \"shell\"\n"
-"for that user (bash by default)."
-msgstr ""
-"GNU/Linux er et flerbrugersystem, og dette betyder at hver bruger kan have "
-"sine egne pręferencer, sine egne filer og så videre. Du kan lęse "
-"brugervejledningen for at lęre mere.\n"
-"Men i modsętning til root, som er administratoren, vil brugerne som du "
-"tilfųjer her ikke have lov til at ęndre nogetsomhelst undtagen deres egne "
-"filer og deres egen opsętning. Du skal oprette i det mindste én almindelig "
-"bruger til dig selv.\n"
-"Dette er den konto som du bųr bruge til almindelig brug. Selvom det er meget "
-"praktisk at logge ind som root hver dag, kan det også vęre meget farligt!\n"
-"Den mindste fejltagelse kan betyde at dit system ikke vil virke mere. Hvis "
-"du laver en alvorlig fejltagelse som almindelig bruger, vil du kun måske "
-"tabe nogen information, men ikke hele systemet.\n"
-"\n"
-"Fųrst skal du indtaste dit rigtige navn. Dette er ikke kręvet, selvfųlgelig "
-"kan du faktisk skrive hvad du vil. DrakX vil så tage det fųrste ord du skrev "
-"i boksen og og overfųre det som brugernavn. Dette er navnet, som denne "
-"bruger skal bruge for at logge ind på systemet. Du kan ęndre dette. Du skal "
-"så indtaste en adgangskode hér. Adgangskoden for en ikke-priviligeret "
-"(normal) bruger er ikke så vigtigt som det for Root fra et sikkerhedsmęssigt "
-"synspunkt, men det er ingen grund til at negligere det alligevel - når det "
-"kommer til stykket er dine filer der er i fare. Hvis du klikker på Acceptér "
-"bruger, kan du tilfųje så mange som du ųnsker. Tilfųj en bruger for hver af "
-"dine venner: fx din far og din sųster. Når du har tilfųjet alle de brugere "
-"du ųnsker, vęlg da Fęrdig.\n"
-"\n"
-"Klik på Avanceret-knappen lader dig ęndre standard-skal for denne bruger\n"
-"(bash er standard)."
-
-#: ../../help.pm_.c:41
-msgid ""
-"Listed above are the existing Linux partitions detected on your hard 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"
-"able to install enough software. If you want to store your data on a\n"
-"separate partition, you will also need to create a partition for \"/home\"\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 drive type\", \"hard 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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
-"\"second lowest SCSI ID\", etc."
-msgstr ""
-"Ovenfor er listet de eksisterende Linux-partitioner genkendt på din disk. Du "
-"kan beholde valgene gjort af vejlederen, de er velegnede til almindelig "
-"brug. Hvis du ęndrer disse valg skal du i det mindste definere en rod-"
-"partition '/'. Lad vęre med at vęlge en for lille partition, ellers vil du "
-"ikke kunne installere nok programmel. Hvis du ųnsker at lagre data på en "
-"separat partition, skal du også vęlge en '/home' (kun muligt hvis du har "
-"mere end én Linux-partition). \n"
-"Hver partition er listet som fųlger: 'Navn', 'Kapacitet'.\n"
-"\n"
-"'Navn' er kodet som fųlger: 'drevtype', 'drevnummer', "
-"'partitionsnummer' (for eksempel '/hda1').\n"
-"\n"
-"'drevtype' er 'hd' hvis dit diskdrev er et IDE drev, og 'sd' hvis det er et "
-"SCSI drev.\n"
-"\n"
-"'drevnummer' er altid et bogstav efter 'hd' eller 'sd'. For IDE drev:\n"
-"\n"
-" * 'a' betyder 'hoved-drev på den primęre IDE controller',\n"
-"\n"
-" * 'b' betyder 'slave-drev på den primęre IDE controller',\n"
-"\n"
-" * 'c' betyder 'hoved-drev på den sękundęre IDE controller',\n"
-"\n"
-" * 'd' betyder 'slave-drev på den sękundęre IDE controller'.\n"
-"\n"
-"For SCSI drev betyder 'a' det 'fųrste drev', 'b' betyder det 'andet drev', "
-"osv."
-
-#: ../../help.pm_.c:72
-msgid ""
-"The Mandrake Linux 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."
-msgstr ""
-"Mandrake Linux installationen er fordelt på flere cdrom-er. DrakX véd om en "
-"valgt pakke ligger på en anden cdrom og vil udskyde den aktuelle cd og bede "
-"dig om at isętte en anden, om nųdvendigt."
-
-#: ../../help.pm_.c:77
-msgid ""
-"It is now time to specify which programs you wish to install on your\n"
-"system. There are thousands of packages available for Mandrake Linux, 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"
-"be asked to specify the CDs you currently have (in Expert mode only). Check\n"
-"the CD labels and highlight the boxes corresponding to the CDs you have\n"
-"available for installation. Click \"OK\" when you are ready to continue.\n"
-"\n"
-"Packages are sorted in groups corresponding to a particular use of your\n"
-"machine. The groups themselves are sorted into four sections:\n"
-"\n"
-" * \"Workstation\": if you plan to use your machine as a workstation, "
-"select\n"
-"one or more of the corresponding groups;\n"
-"\n"
-" * \"Development\": if your machine is to be used for programming, choose\n"
-"the desired group(s);\n"
-"\n"
-" * \"Server\": if your machine is intended to be a server, you will be able\n"
-"to select which of the most common services you wish to install on your\n"
-"machine;\n"
-"\n"
-" * \"Graphical Environment\": finally, this is where you will choose your\n"
-"preferred graphical environment. At least one must be selected if you want\n"
-"to have a graphical workstation!\n"
-"\n"
-"Moving the mouse cursor over a group name will display a short explanatory\n"
-"text about that group. If you deselect all groups when performing a regular\n"
-"installation (by opposition to an upgrade), a dialog will pop up proposing\n"
-"different options for a minimal installation:\n"
-"\n"
-" * \"With X\": install the fewer packages possible to have a working\n"
-"graphical desktop;\n"
-"\n"
-" * \"With basic documentation\": installs the base system plus basic\n"
-"utilities and their documentation. This installation is suitable for\n"
-"setting up a server;\n"
-"\n"
-" * \"Truly minimal install\": will install the strict minimum necessary to\n"
-"get a working Linux system, in command line only. This installation is\n"
-"about 65Mb large.\n"
-"\n"
-"You can check the \"Individual package selection\" box, which is useful if\n"
-"you are familiar with the packages being offered or if you want to have\n"
-"total control over what will be installed.\n"
-"\n"
-"If you started the installation in \"Upgrade\" mode, you can unselect all\n"
-"groups to avoid installing any new package. This is useful for repairing or\n"
-"updating an existing system."
-msgstr ""
-"Det er nu tid til at angive hvilke pakker du vil installere på dit system. "
-"Der er tusindvis af pakker til dit Mandrake Linux system, og det forventes "
-"ikke at du kender dem allesammen udenad.\n"
-"\n"
-"Hvis du udfųrer en standard-installation fra cdrom vil du fųrst blive bedt "
-"om at angive de cd-er som du har nu (kun i ekspert-version). Tjek navnene på "
-"cd'erne og fremhęv boksene svarende til de cd-er du har liggende for "
-"installationen. Klik O.k. når du er klar til at fortsętte.\n"
-"\n"
-"Pakkerne er ordnet i grupper svarende til en bestemt anvendelse af din "
-"maskine. Grupperne selv er ordnet i 4 grupper:\n"
-"\n"
-" * 'Arbejdsstation': Hvis din maskine skal bruges som en arbejdsstation, "
-"vęlg da en eller flere af de tilsvarende grupper.\n"
-"\n"
-" * 'Udvikling': hvis maskinen skal bruges til programmering vęlg da de "
-"ųnskede grupper.\n"
-"\n"
-" * 'Server': hvis det er planen at maskinen skal vęre en server, er du her i "
-"stand til at vęlge de mest almindelige tjenester, som du ųnsker at se "
-"installeret på maskinen.\n"
-"\n"
-" * 'Grafisk miljų': Endelig skal du vęlge foretrukne grafiske miljų. Vęlg "
-"mindst ét, hvis du ųnsker at have en grafisk arbejdsstation!\n"
-"\n"
-"Ved flytning af musen over et gruppenavn vises en kort forklarende tekst om "
-"denne gruppe. Hvis du ikke vęlger nogen grupper ved installation (i "
-"modsętning til opgradering), vil en dialog komme frem som foreslår dig "
-"forskellige former for minimal installation: \n"
-"\n"
-" * 'Med X' Installerer de fęrrest mulige pakker for at få en fungerende "
-"grafisk arbejdsstation;\n"
-"\n"
-" * 'Med basal dokumentation' Installerer det basale system plus basale "
-"nytteprogrammer og tilhųrende dokumentation. Denne installation er passende "
-"til at sętte en server op.\n"
-"\n"
-" * 'Mindst mulige installering' Vil installere den mindst mulige nųdvendigt "
-"for at få et virkende Linux-system kun med kommandolinjer. Denne "
-"installation fylder omkring 65 Mb.\n"
-"\n"
-"Du kan afkrydse boksen 'Individuelt pakkevalg', hvilket er nyttigt, hvis du "
-"kender de tilbudte pakker godt, eller hvis du ųnsker at have fuld kontrol "
-"over hvad der skal installeres.\n"
-"\n"
-"Hvis du har startet installationen i 'Opdatering'-tilstand, kan du fravęlge "
-"alle grupper for at undgå at installere nogen nye pakker. Dette er nyttigt "
-"ved reparation eller opdatering af det eksisterende system."
-
-#: ../../help.pm_.c:128
-msgid ""
-"Finally, depending on whether or not you selected individual packages, you\n"
-"will be presented a tree containing all packages classified by groups and\n"
-"subgroups. While browsing the tree, you can select entire groups,\n"
-"subgroups, or individual packages.\n"
-"\n"
-"Whenever you select a package on the tree, a description appears on the\n"
-"right. When your selection is finished, click the \"Install\" button which\n"
-"will then launch the installation process. Depending on the speed of your\n"
-"hardware and the number of packages that need to be installed, it may take\n"
-"a while to complete the process. An estimate of the time it will take to\n"
-"install everything is displayed on the screen, to help you gauge if there\n"
-"is sufficient time to enjoy a cup of coffee.\n"
-"\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 Mandrake Linux, 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 Mandrake Linux 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"
-"default. !!\n"
-"\n"
-"The \"Automatic dependencies\" option simply disables the warning dialog\n"
-"which appears whenever the installer automatically selects a package. This\n"
-"occurs because it has determined that it needs to satisfy a dependency with\n"
-"another package in order to successfully complete the installation.\n"
-"\n"
-"The tiny floppy disk icon at the bottom of the list allows to load the\n"
-"package list chosen during a previous installation. Clicking on this icon\n"
-"will ask you to insert a floppy disk previously created at the end of\n"
-"another installation. See the second tip of last step on how to create such\n"
-"a floppy."
-msgstr ""
-"Endelig, afhęngigt af om du valgte at udvęlge individuelle pakker eller ej, "
-"vil du blive pręsenteret for et trę med alle pakker opdelt i grupper og "
-"undergrupper. Under gennembladring af tręet kan du udvęlge hele grupper, "
-"undergrupper eller bare pakker.\n"
-"\n"
-"Hver gang du udvęlger en pakke i tręet vil en beskrivelse fremkomme til "
-"hųjre. Når du har afsluttet dine udvęlgelser, så klik på Installér-knappen. "
-"Så begynder selve installationen. Afhęngig af din maskines hurtighed og "
-"antal pakker som skal installeres kan det tage et stykke tid at gųre "
-"processen fęrdig. Et skųn på tiden det tager for fęrdiggųrelse vises på "
-"skęrmen, så du kan se om der skulle vęre tid til at nyde en kop kaffe.\n"
-"\n"
-"I tilfęldet af at en server-pakke er blevet valgt enten med vilje, eller "
-"fordi den var en del af en hel gruppe, vil du blive spurgt om du virkelig "
-"ųnsker at installere disse servere. Under Linux Mandrake 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 "
-"muligt at sikkerhedshuller opdages efter at denne version af Mandrake Linux "
-"blev fęrdiggjort. Specielt hvis du ikke véd hvad det er for noget, så klik "
-"Nej her. Et klik med Ja her vil installere de nęvnte servere og de vil som "
-"standard blive startet automatisk!\n"
-"\n"
-"Automatiske afhęngigheder-valget deaktiverer simpelthen advarselsdialogen, "
-"som vises hver gang installeringsprogrammet automatisk vęlger en pakke. "
-"Dette sker fordi det er blevet beregnet at den er kręvet for at "
-"tilfredsstille en afhęngighed fra en anden pakke for at kunne fęrdiggęre en "
-"vellykket installation.\n"
-"\n"
-"Det klejne disketteikon i bunden af listen muliggųr indlęsning af en "
-"pakkeliste udvalgt ved en tidligere installation. Klik på denne ikon vil "
-"bede dig om at indsętte en diskette tidligere frembragt ved slutningen på en "
-"anden installation. Se råd nr to i det sidste trin for hvordan en sådan "
-"diskette kan laves."
-
-#: ../../help.pm_.c:164
-msgid ""
-"You are now proposed to set up your Internet/network connection. If you\n"
-"wish to connect your computer to the Internet or to a local network, click\n"
-"\"OK\". The autodetection of network devices and modem will be launched. If\n"
-"this detection fails, uncheck the \"Use auto detection\" box next time. You\n"
-"may also choose not to configure the network, or do it later; in that case,\n"
-"simply click the \"Cancel\" button.\n"
-"\n"
-"Available connections are: traditional modem, ISDN modem, ADSL connection,\n"
-"cable modem, and finally a simple LAN connection (Ethernet).\n"
-"\n"
-"Here, we will not detail each configuration. Simply make sure that you have\n"
-"all the parameters from your Internet Service Provider or system\n"
-"administrator.\n"
-"\n"
-"You can consult the ``User Guide'' chapter about Internet connections for\n"
-"details about the configuration, or simply wait until your system is\n"
-"installed and use the program described there to configure your connection.\n"
-"\n"
-"If you wish to configure the network later after installation, or if you\n"
-"are finished configuring your network connection, click \"Cancel\"."
-msgstr ""
-"Du bliver nu foreslået at opsętte din internet- eller netvęrksopkobling. "
-"Hvis du vil forbinde din maskine til internettet eller til et lokalnetvęrk "
-"så klik på 'O.k.'. Den automatiske opdagelse af netvęrksenheder og modem vil "
-"blive startet. Hvis opdagelsen mislykkes så fjern markering i boksen 'Brug "
-"automatisk detektion' nęste gang. Du kan også vęlge at ikke konfigurere "
-"netvęrket, eller gųre det senere; i så tilfęlde skal du bare klikke på "
-"'Annullér'-knappen.\n"
-"\n"
-"Mulige forbindelser er: almindeligt modem, ISDN-modem, ADSL-forbindelse, "
-"kabel-modem, og endelig en simpel LAN-forbindelse (Ethernet).\n"
-"\n"
-"Vi vil ikke her gå i detaljer med hver konfiguration. Men forsikr dig om, at "
-"du har alle parametrene fra din internetudbyder eller systemadministrator.\n"
-"\n"
-"Du kan lęse i kapitlet i håndbogen omkring internetforbindelser om detaljer "
-"omkring konfigureringen, eller simpelthen vente til dit system er "
-"installeret og så bruge programmet beskrevet dér til at konfigurere din "
-"forbindelse.\n"
-"\n"
-"Hvis du vil konfigurere netvęrket senere efter installationen, eller hvis du "
-"har afsluttet konfigureringen af din netvęrksforbindelse, vęlg da 'Fęrdig'."
-
-#: ../../help.pm_.c:186
-msgid ""
-"You may now choose which services you wish to start at boot time.\n"
-"\n"
-"Here are presented all the services available with the current\n"
-"installation. Review them carefully and uncheck those which are not always\n"
-"needed at boot time.\n"
-"\n"
-"You can get a short explanatory text about a service by selecting a\n"
-"specific service. However, if you are not sure whether a service is useful\n"
-"or not, 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 will probably not want to start any services which you do not\n"
-"need. Please remember that several services can be dangerous if they are\n"
-"enabled on a server. In general, select only the services you really need.\n"
-"!!"
-msgstr ""
-"Du kan nu vęlge hvilke tjenester du ųnsker skal startes ved opstart af "
-"maskinen.\n"
-"\n"
-"Her pręsenteres alle de tjenester, som er med i den aktuelle installation. "
-"Gennemse dem omhyggeligt og vęlg dem fra som ikke altid er nųdvendige ved "
-"opstarten.\n"
-"\n"
-"Du kan få en kort forklarende tekst om en tjeneste ved at vęlge en bestemt "
-"tjeneste. Hvis du ikke er sikker på om en tjeneste er nyttig eller ej, er "
-"det dog sikrere at bruge den foreslåede opfųrsel.\n"
-"\n"
-"Vęr specielt varsom på dette trin hvis du planlęgger at bruge maskinen som "
-"server: du vil formentlig ųnske ikke at starte nogensomhelst tjeneste op som "
-"du ikke har brug for. Husk at adskillige tjenester kan vęre farlige hvis de "
-"er aktiveret på en server. Vęlg som hovedregel kun de tjenester som du "
-"virkelig behųver."
-
-#: ../../help.pm_.c:203
-msgid ""
-"GNU/Linux manages time in GMT (Greenwich Mean Time) and translates it in\n"
-"local time according to the time zone you selected. It is however possible\n"
-"to deactivate this by deselecting \"Hardware clock set to GMT\" so that the\n"
-"hardware clock is the same as the system clock. This is useful when the\n"
-"machine is hosting another operating system like Windows.\n"
-"\n"
-"The \"Automatic time synchronization\" option will automatically regulate\n"
-"the clock by connecting to a remote time server on the Internet. In the\n"
-"list that is presented, choose a server located near you. Of course you\n"
-"must have a working Internet connection for this feature to work. It will\n"
-"actually install on your machine a time server which can be optionally used\n"
-"by other machines on your local network."
-msgstr ""
-"GNU/Linux håndterer tiden i GMT (Greenwich Mean Time) og oversętter den til "
-"lokal tid ifųlge den tidszone du har valgt. Det er imidlertid muligt at "
-"deaktivere dette ved at fravęlge 'Maskinens ur sat til GMT' så maskinens ur "
-"er det samme som systemets ur. Dette er nyttigt når maskinen også bruges til "
-"andre operativsystemer som Windows.\n"
-"\n"
-"Muligheden 'Automatisk tidssynkronisering' vil automatisk tilpasse uret ved "
-"at forbinde til en ekstern tidsserver på internettet. Vęlg en server der "
-"ligger tęt på dig i listen der pręsenteres. Selvfųlgelig skal du have en "
-"fungerende internetforbindelse for at denne facilitet kan fungere. Den vil "
-"faktisk installere en tidsserver på din maskine, som om ųnsket kan bruges af "
-"andre maskiner på dit lokalnetvęrk."
-
-#: ../../help.pm_.c:217
-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 Mandrake Linux rely. In this section, DrakX\n"
-"will try to configure X automatically.\n"
-"\n"
-"It is extremely rare for it to fail, unless the hardware is very old (or\n"
-"very new). If it succeeds, it will start X automatically with the best\n"
-"resolution possible, depending on the size of the monitor. A window will\n"
-"then appear and ask you if you can see it.\n"
-"\n"
-"If you are doing an \"Expert\" installation, you will enter the X\n"
-"configuration wizard. See the corresponding section of the manual for more\n"
-"information about this wizard.\n"
-"\n"
-"If you can see the message during the test, and answer \"Yes\", then DrakX\n"
-"will proceed to the next step. If you cannot see the message, it simply\n"
-"means that the configuration was wrong and the test will automatically end\n"
-"after 10 seconds, restoring the screen."
-msgstr ""
-"X (for X-vinduessystem) er hjertet af GNU/Linux' grafiske gręnseflade, "
-"hvilket alle de grafiske miljųer (KDE, Gnome, AfterStep, WindowMaker)...), "
-"som kommer med Mandrake Linux, bygger på. I dette afsnit vil DrakX forsųge "
-"at konfigurere X automatisk.\n"
-"\n"
-"Det er meget sjęldent at dette mislykkes for DrakX, med mindre maskinellet "
-"er meget gammelt (eller meget nyt). Hvis det lykkes, vil DrakX starte X "
-"automatisk med den bedst mulige oplųsning afhęngig af skęrmens stųrrelse. Et "
-"vindue vil så komme frem og spųrge om du kan se det.\n"
-"\n"
-"Hvis du laver en ekspert-installering, vil du komme ind i X-konfigurerings- "
-"vejlederen. Se det tilhųrende afsnit af manualen for yderligere oplysning om "
-"denne vejleder.\n"
-"\n"
-"Hvis du kan se beskeden under afprųvningen, og svarer Ja, så vil DrakX "
-"fortsętte til det nęste trin. Hvis du ikke kan se beskeden, betyder det "
-"simpelthen at konfigurationen var forkert, og testen vil automatisk "
-"afsluttes efter 10 sekunder, og genfremvise skęrmen."
-
-#: ../../help.pm_.c:237
-msgid ""
-"The first time you try the X configuration, you may not be very satisfied\n"
-"with its display (screen is too small, shifted left or right...). Hence,\n"
-"even if X starts up correctly, DrakX then asks you if the configuration\n"
-"suits you. It will also propose to change it by displaying a list of valid\n"
-"modes it could find, asking you to select one.\n"
-"\n"
-"As a last resort, if you still cannot get X to work, choose \"Change\n"
-"graphics card\", select \"Unlisted card\", and when prompted on which\n"
-"server, choose \"FBDev\". This is a failsafe option which works with any\n"
-"modern graphics card. Then choose \"Test again\" to be sure."
-msgstr ""
-"Måske er du ikke sęrligt tilfreds med det fųrste forsųg med X konfigurering "
-"(skęrmen for lille, flyttet til venstre eller hųjre...). Derfor vil DrakX "
-"spųrge dig om konfigurationen passer dig, selvom X starter op korrekt. DrakX "
-"vil også foreslå ęndringer ved at vise en liste af gyldige tilstande som den "
-"kunne finde, og så bede dig om at vęlge én. \n"
-"Som en sidste udvej, hvis du stadig ikke kan få X til at virke, vęlg da Ęndr "
-"grafikkort, vęlg Ukendt kort, og når du bliver spurgt om hvilken server du "
-"vil have, vęlg da FBDev. Dette er en fejlsikker mulighed som virker med alle "
-"moderne grafikkort. Vęlg derefter Test igen for at vęre sikker."
-
-#: ../../help.pm_.c:249
-msgid ""
-"Finally, you will be asked whether you want to see the graphical interface\n"
-"at boot. Note this question will be asked even if you chose not to test the\n"
-"configuration. Obviously, you want to answer \"No\" if your machine is to\n"
-"act as a server, or if you were not successful in getting the display\n"
-"configured."
-msgstr ""
-"Til sidst vil du blive spurgt om du ųnsker at se den grafiske gręnseflade "
-"ved opstart. Bemęrk at du vil blive spurgt om dette selvom du har valgt ikke "
-"at afprųve konfigurationen. Selvfųlgelig vil du ųnske at svare Nej, hvis din "
-"maskine skal bruges som server, eller hvis ikke lykkedes dig at få skęrmen "
-"konfigureret."
-
-#: ../../help.pm_.c:256
-msgid ""
-"The Mandrake LinuxCD-ROM has a built-in rescue mode. You can access it by\n"
-"booting from the CD-ROM, press the >>F1<< key at boot and type >>rescue<<\n"
-"at the prompt. But in case your computer cannot boot from the CD-ROM, you\n"
-"should come back to this step for help in at least two situations:\n"
-"\n"
-" * when installing the bootloader, DrakX will rewrite the boot sector (MBR)\n"
-"of your main disk (unless you are using another boot manager), to allow you\n"
-"to start up with either Windows or GNU/Linux (assuming you have Windows in\n"
-"your system). If you need to reinstall Windows, the Microsoft install\n"
-"process will rewrite the boot sector, and then you will not be able to\n"
-"start GNU/Linux!\n"
-"\n"
-" * if a problem arises and you cannot start up GNU/Linux from the hard "
-"disk,\n"
-"this floppy disk will be the only means of starting up GNU/Linux. It\n"
-"contains a fair number of system tools for restoring a system, which has\n"
-"crashed due to a power failure, an unfortunate typing error, a typo in a\n"
-"password, or any other reason.\n"
-"\n"
-"When you click on this step, you will be asked to enter a disk inside the\n"
-"drive. The floppy disk you will insert must be empty or contain data which\n"
-"you do not need. You will not have to format it since DrakX will rewrite\n"
-"the whole disk."
-msgstr ""
-"Mandrake Linux-cdrommen har en indbygget rednings-tilstand. Du kan få fat i "
-"denne ved at starte op fra cdrommen, trykke 'F1'-tasten ved opstart, og "
-"indtaste 'rescue' ved opstartsledeteksten. Men i tilfęlde af at din maskine "
-"ikke kan starte op fra cdrommen, bųr du komme tilbage til dette trin for "
-"hjęlp i mindst to situationer:\n"
-"\n"
-" * ved installering af opstartsindlęseren vil drakX genskrive "
-"opstartssektoren (MBR) på din hoveddisk (medmindre du bruger en anden "
-"opstartshåndterer) så du kan starte enten Windows eller GNU/Linux (forudsat "
-"du har Windows på dit system). Hvis du har brug for at geninstallere "
-"Windows, vil Microsoft installeringsprocessen overskrive opstartssektoren, "
-"og så vil du ikke vęre i stand til at starte GNU/Linux!\n"
-"\n"
-" * Hvis der opstår et problem, og du ikke kan starte GNU/Linux op fra "
-"harddisken, vil denne diskette vęre den eneste måde at starte GNU/Linux op "
-"på. Den indeholder et pęnt antal systemvęrktųjer til at genskabe et system "
-"som er gået ned pga. strųmsvigt, en uheldig tastefejl, en skrivefejl i en "
-"adgangskode, eller nogen anden årsag.\n"
-"\n"
-"Når du klikker på dette trin, vil du blive bedt om at indsętte en diskette i "
-"drevet. Disketten du indsętter skal vęre tom eller kun indeholde data som du "
-"ikke har brug for. Du behųver ikke formatere den, da drakX vil overskrive "
-"hele disketten."
-
-#: ../../help.pm_.c:280
-msgid ""
-"At this point, you need to choose where you want to install the Mandrake\n"
-"Linux operating system on your hard drive. If your hard drive is empty or\n"
-"if an existing operating system is using all the available space, you will\n"
-"need to partition it. Basically, partitioning a hard drive consists of\n"
-"logically dividing it to create space to install your new Mandrake Linux\n"
-"system.\n"
-"\n"
-"Because the partitioning process' effects are usually irreversible,\n"
-"partitioning can be intimidating and stressful if you are an inexperienced\n"
-"user. Fortunately, there is a wizard which simplifies this process. Before\n"
-"beginning, please consult the manual and take your time.\n"
-"\n"
-"If you are running the installation in Expert mode, you will enter\n"
-"DiskDrake, the Mandrake Linux partitioning tool, which allows you to\n"
-"fine-tune your partitions. See the DiskDrake section in the ``User Guide''.\n"
-"From the installation interface, you can use the wizards as described here\n"
-"by clicking the dialog's \"Wizard\" button.\n"
-"\n"
-"If partitions have already been defined, either from a previous\n"
-"installation or from another partitioning tool, simply select those to\n"
-"install your Linux system.\n"
-"\n"
-"If partitions are not defined, you will need to create them using the\n"
-"wizard. Depending on your hard drive configuration, several options are\n"
-"available:\n"
-"\n"
-" * \"Use free space\": this option will simply lead to an automatic\n"
-"partitioning of your blank drive(s). You will not be prompted further;\n"
-"\n"
-" * \"Use existing partition\": the wizard has detected one or more existing\n"
-"Linux partitions on your hard drive. If you want to use them, choose this\n"
-"option;\n"
-"\n"
-" * \"Use the free space on the Windows; partition\": if MicrosoftWindows is\n"
-"installed on your hard drive and takes all the space available on it, you\n"
-"have to create free space for Linux data. To do so, you can delete your\n"
-"MicrosoftWindows partition and data (see ``Erase entire disk'' or ``Expert\n"
-"mode'' solutions) or resize your MicrosoftWindows partition. Resizing can\n"
-"be performed without the loss of any data, provided you previously\n"
-"defragment the Windows partition. Backing up your data won't hurt either..\n"
-"This solution is recommended if you want to use both Mandrake Linux and\n"
-"MicrosoftWindows on the same computer.\n"
-"\n"
-" Before choosing this option, please understand that after this "
-"procedure,\n"
-"the size of your MicrosoftWindows partition will be smaller than at the\n"
-"present time. You will have less free space under MicrosoftWindows to store\n"
-"your data or to install new software;\n"
-"\n"
-" * \"Erase entire disk\": if you want to delete all data and all partitions\n"
-"present on your hard drive and replace them with your new Mandrake Linux\n"
-"system, choose this option. Be careful with this solution because you will\n"
-"not be able to revert your choice after you confirm;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Remove Windows\": this will simply erase everything on the drive and\n"
-"begin fresh, partitioning everything from scratch. All data on your disk\n"
-"will be lost;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Expert mode\": choose this option if you want to manually partition\n"
-"your hard drive. Be careful it is a powerful but dangerous choice. You can\n"
-"very easily lose all your data. Hence, do not choose this unless you know\n"
-"what you are doing."
-msgstr ""
-"Nu skal du vęlge hvor på din harddisk du vil installere dit Mandrake Linux-"
-"operativsystem. Hvis disken er tom eller et eksisterende operativsystem "
-"bruger alt pladsen på den, bliver du nųdt til at partitionere den. "
-"Partitionering vil sige at disken deles i logiske dele for at gųre plads til "
-"dit nye Mandrake Linux-system.\n"
-"\n"
-"Da en partitionering normalt ikke kan fortrydes kan det godt vęre "
-"frustrerende og stressende for nybegyndere. Heldigvis er der en vejleder som "
-"forenkler denne proces. Fųr du begynder studér da i manualen og tag den tid "
-"du skal bruge.\n"
-"\n"
-"Hvis du kųrer installeringen i ekspert-tilstand kommer du ind i Mandrake "
-"Linux' partitioneringsvęrktųj, DiskDrake. Dette vil lade dig finindstille "
-"dine partitioner. Se kapitlet om DiskDrake i manualen. Fra installations-"
-"gręnsefladen kan du bruge de vejledere som beskrevet her ved at klikke "
-"knappen 'Vejleder' på gręnsefladen.\n"
-"\n"
-"Hvis partitionerne allerede er definerede (fra en tidlige installation eller "
-"fra et andet partitions-vęrktųj), skal du bare vęlge dem for at installere "
-"dit Linux system\n"
-"\n"
-"Hvis partitionerne ikke er lavet endnu, bliver du nųdt til at oprette dem "
-"ved brug af vejlederen. Afhęngig af din disks konfiguration er flere "
-"muligheder tilstede:\n"
-"\n"
-" * 'Brug fri plads': Dette vil simpelthen fųre til en automatisk opdeling af "
-"den ledige diskplads. Du vil ikke blive spurgt om mere.\n"
-"\n"
-" * 'Brug eksisterende partition': vejlederen har fundet en eller flere "
-"eksisterende Linux-partitioner på din harddisk. Hvis du vil bruge dem, så "
-"vęlg denne mulighed.\n"
-"\n"
-" * 'Brug den fri plads på Windows-partitionen': hvis Microsoft Windows er "
-"installeret på din disk og bruger al pladsen, bliver du nųdt til at lave "
-"plads til Linux. For at gųre det kan du slette dine Microsoft Windows "
-"partitioner og data (se \"Slet hele disken\" eller \"Ekspert niveau\" ) "
-"eller ęndre stųrrelsen på din Microsoft Windows-partition. "
-"Stųrrelsesęndringen kan fortages uden tab af data. Denne lųsning er "
-"anbefalet hvis du vil bruge både Mandrake Linux 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 den er nu. Det betyder at du vil have "
-"mindre fri plads under Microsoft Windows til at gemme din data eller "
-"installere nyt programmel.\n"
-"\n"
-" * 'Slet hele disken': hvis du vil slette alle data på alle partitioner på "
-"denne disk og erstatte dem med dit nye Mandrake Linux-system, kan du vęlge "
-"denne mulighed. Vęr forsigtig med denne lųsning, du vil ikke vęre i stand "
-"til at fortryde dine ęndringer efter at du har sagt ja.\n"
-"\n"
-" !! Hvis du bruger denne mulighed vil alle data på din disk gå tabt. !!\n"
-"\n"
-" * 'Fjern Windows': dette vil simpelthen slette alt på disken og begynde fra "
-"en frisk, og partitionere fra ny. Alle data på din disk vil gå tabt.\n"
-"\n"
-" !! Hvis du bruger denne mulighed vil alle data på din disk gå tabt. !!\n"
-"\n"
-" * 'Ekspert-modus': hvis du vil partitionere disken i hånden, kan du vęlge "
-"dette alternativ. Vęr forsigtig fųr du vęlger denne lųsning. Den giver dig "
-"mange muligheder, men er også farlig. Du kan meget nemt komme til at slette "
-"alle dine data. Så lad vęre med at vęlge den lųsning med mindre du véd hvad "
-"du gųr."
-
-#: ../../help.pm_.c:347
-msgid ""
-"There you are. Installation is now complete and your GNU/Linux system is\n"
-"ready to use. Just click \"OK\" to reboot the system. You can start\n"
-"GNU/Linux or Windows, whichever you prefer (if you are dual-booting), as\n"
-"soon as the computer has booted up again.\n"
-"\n"
-"The \"Advanced\" button (in Expert mode only) shows two more buttons to:\n"
-"\n"
-" * \"generate auto-install floppy\": to create an installation floppy disk\n"
-"which will automatically perform a whole installation without the help of\n"
-"an operator, similar to the installation you just configured.\n"
-"\n"
-" Note that two different options are available after clicking the button:\n"
-"\n"
-" * \"Replay\". This is a partially automated installation as the\n"
-"partitioning step (and only this one) remains interactive;\n"
-"\n"
-" * \"Automated\". Fully automated installation: the hard disk is "
-"completely\n"
-"rewritten, all data is lost.\n"
-"\n"
-" This feature is very handy when installing a great number of similar\n"
-"machines. See the Auto install section on our web site;\n"
-"\n"
-" * \"Save packages selection\"(*): saves the package selection as done\n"
-"previously. Then, when doing another installation, insert the floppy inside\n"
-"the drive and run the installation going to the help screen by pressing on\n"
-"the [F1] key, and by issuing >>linux defcfg=\"floppy\"<<.\n"
-"\n"
-"(*) You need a FAT-formatted floppy (to create one under GNU/Linux, type\n"
-"\"mformat a:\")"
-msgstr ""
-"Vęrsgo'. Installationen en nu fęrdig og dit GNU/Linux-system er nu klar til "
-"brug. Klik bare O.k. for at genstarte systemet. Du kan starte GNU/Linux "
-"eller Windows, som du foretrękker det (hvis du har to systemer), så snart "
-"din maskine er startet op igen.\n"
-"\n"
-"Avanceret-knappen viser to ekstra knapper for at:\n"
-"\n"
-" * generere en auto-installeringsdiskette: for at oprette en installerings- "
-"diskette som automatisk vil udfųre en hel installation uden hjęlp fra en "
-"operatųr, magen til den installation du lige har konfigureret.\n"
-"\n"
-" Bemęrk at to forskellige muligheder er tilstede efter klik på knappen:\n"
-"\n"
-" * Genafspil: Dette er en delvist automatiseret installering da "
-"partitioneringstrinnet (og kun dette trin) forbliver interaktiv.\n"
-"\n"
-" * Automatisk: Fuldautomatisk installering: harddisken bliver fuldstęndig "
-"genoverskrevet, alle data forsvinder.\n"
-"\n"
-" Denne facilitet er meget nyttig ved installering af et stort antal ens "
-"maskiner. Se afsnittet om autoinstallering på vores websted.\n"
-"\n"
-" * Gem pakkevalg(*): Gemmer pakkevalget som lavet tidligere. Så når en ny "
-"installering laves, kan disketten indsęttes i drevet og installeringen kan "
-"kųres ved at bruge F1 på hjęlpeskęrmen idet der indtastes >>linux defcfg="
-"\"floppy\"<<.\n"
-"\n"
-"(*) Du skal have en diskette formateret til FAT (denne oprettes i GNU/Linux "
-"ved at skive \"mformat a:\")"
-
-#: ../../help.pm_.c:378
-msgid ""
-"Any partitions that have been newly defined must be formatted for use\n"
-"(formatting means creating a filesystem).\n"
-"\n"
-"At this time, you may wish to reformat some already existing partitions to\n"
-"erase any data they contain. If you wish to do that, please select those\n"
-"partitions as well.\n"
-"\n"
-"Please note that it is 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\n"
-"reformat partitions containing data that you wish to keep (typically\n"
-"\"/home\").\n"
-"\n"
-"Please be careful when selecting partitions. After formatting, all data on\n"
-"the selected partitions will be deleted and you will not be able to recover\n"
-"any of it.\n"
-"\n"
-"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"
-"Mandrake Linux operating system installation.\n"
-"\n"
-"Click on \"Advanced\" if you wish to select partitions that will be checked\n"
-"for bad blocks on the disk."
-msgstr ""
-"Enhver partition der netop er blevet defineret, skal formateres til brug "
-"(formatering betyder oprettelse af et filsystem).\n"
-"\n"
-"Nu kan du også ųnske at omformatere nogle allerede eksisterende partitioner "
-"for at slette de data som de indeholder. Hvis du ųnsker dette, så markér "
-"også de partitioner som du ųnsker at formatere.\n"
-"\n"
-"Bemęrk at det ikke er nųdvendigt at omformatere alle allerede eksisterende "
-"partitioner. Det er nųdvendigt at omformatere de partitioner, der indeholder "
-"operativsystemet (såsom '/', '/usr' og '/var', men du er ikke nųdt til at "
-"omformatere partitioner som du ųnsker at beholde (typisk /home).\n"
-"\n"
-"Vęr forsigtig med valg af partitioner; efter formatering vil alle data vęre "
-"slettede på de valgte partitioner, og du vil ikke kunne redde nogetsomhelst "
-"af det.\n"
-"\n"
-"Klik på 'Ok' når du er klar til at formatere partitioner.\n"
-"\n"
-"Klik på 'Annullér' hvis du ųnsker at vęlge andre partitioner til at "
-"installere dit nye Mandrake Linux operativsystem.\n"
-"\n"
-"Klik på 'Avanceret' for at vęlge partitioner som du ųnsker at tjekke for "
-"dårlige blokke."
-
-#: ../../help.pm_.c:404
-msgid ""
-"Your new Mandrake Linux operating system is currently being installed.\n"
-"Depending on the number of packages you will be installing and the speed of\n"
-"your computer, this operation could take from a few minutes to a\n"
-"significant amount of time.\n"
-"\n"
-"Please be patient."
-msgstr ""
-"Dit nye Mandrake Linux styresystem er i fęrd med at blive installeret. "
-"Afhęngig af det antal pakker, du installerer og hastigheden på din maskine "
-"kan dette tage fra nogen få minutter til en del lęngere tid. \n"
-"Hav venligst tålmodighed med dette."
-
-#: ../../help.pm_.c:412
-msgid ""
-"At the time you are installing Mandrake Linux, it is likely that some\n"
-"packages have been updated since the initial release. Some bugs may have\n"
-"been fixed, and security issues solved. To allow you to benefit from these\n"
-"updates, you are now proposed to download them from the Internet. Choose\n"
-"\"Yes\" if you have a working Internet connection, or \"No\" if you prefer\n"
-"to install updated packages later.\n"
-"\n"
-"Choosing \"Yes\" displays a list of places from which updates can be\n"
-"retrieved. Choose the one nearest you. Then a package-selection tree\n"
-"appears: review the selection, and press \"Install\" to retrieve and\n"
-"install the selected package(s), or \"Cancel\" to abort."
-msgstr ""
-"På det tidspunkt hvor du installerer Mandrake Linux er det sandsynligt at "
-"nogen af pakkerne er blevet opdaterede siden den oprindelige udgivelse. "
-"Nogle fejl er måske blevet rettet, og sikkerhedsproblemer måske lųst. Vi "
-"foreslår dig at hente disse ned fra internettet for at disse opdateringer "
-"kan komme dig til gode. Vęlg 'Ja' hvis du har en fungerende internet- "
-"forbindelse eller 'Nej' hvis du foretrękker at installere opdaterede pakker "
-"senere.\n"
-"\n"
-"Valg af 'Ja' viser en liste af steder hvorfra opdateringer kan hentes. Vęlg "
-"en der er nęr ved dig. Så vil et trę med pakkevalg fremkomme: gennemse "
-"valget og tryk 'Installér' for at modtage og installere den valgte pakke "
-"eller 'Annullér'for at afbryde."
-
-#: ../../help.pm_.c:425
-msgid ""
-"Before continuing, you should read carefully the terms of the license. It\n"
-"covers the whole Mandrake Linux 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."
-msgstr ""
-"Fųr du går videre bųr du lęse betingelserne i licensen omhyggeligt. Den "
-"omfatter hele Mandrake Linux distributionen, og hvis du ikke er enig i alle "
-"betingelserne i den, så klik på 'Nęgt'-knappen. Det vil ųjeblikkeligt "
-"afslutte installationen. For at fortsętte installationen skal du klikke på "
-"'Acceptér'-knappen."
-
-#: ../../help.pm_.c:432
-msgid ""
-"At this point, it is time to choose the security level desired for the\n"
-"machine. As a rule of thumb, the more exposed the machine is, and the more\n"
-"the data stored in it is crucial, the higher the security level should be.\n"
-"However, a higher security level is generally obtained at the expense of\n"
-"easiness of use. Refer to the \"msec\" chapter of the ``Reference Manual''\n"
-"to get more information about the meaning of these levels.\n"
-"\n"
-"If you do not know what to choose, keep the default option."
-msgstr ""
-"Nu er det tid til at vęlge det ųnskede sikkerhedsniveau for maskinen. "
-"Hovedreglen er at jo mere kendt maskinen er, og jo vigtigere data er, des "
-"hųjere bųr sikkerhedsniveauet vęre. Men et hųjere sikkerhedsniveau vindes "
-"normalt på bekostning af letheden af anvendelsen. Kig i kapitlet MSEC i "
-"referencehåndbogen for mere information om betydningen af niveauerne.\n"
-"\n"
-"Hvis du ikke véd hvad du skal vęlge, så behold den foreslåede mulighed."
-
-#: ../../help.pm_.c:442
-msgid ""
-"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandrake Linux 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"
-"partitions must be defined.\n"
-"\n"
-"To create partitions, you must first select a hard 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"
-"\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"
-"\n"
-" * \"More\": gives access to additional features:\n"
-"\n"
-" * \"Save partition table\": saves the partition table to a floppy. "
-"Useful\n"
-"for later partition-table recovery if necessary. It is strongly recommended\n"
-"to perform this step;\n"
-"\n"
-" * \"Restore partition table\": allows to restore a previously saved\n"
-"partition table from floppy disk;\n"
-"\n"
-" * \"Rescue partition table\": if your partition table is damaged, you "
-"can\n"
-"try to recover it using this option. Please be careful and remember that it\n"
-"can fail;\n"
-"\n"
-" * \"Reload partition table\": discards all changes and loads your "
-"initial\n"
-"partition table;\n"
-"\n"
-" * \"Removable media automounting\": unchecking this option will force "
-"users\n"
-"to manually mount and unmount removable medias such as floppies and\n"
-"CD-ROMs.\n"
-"\n"
-" * \"Wizard\": 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 knowledge of\n"
-"partitioning;\n"
-"\n"
-" * \"Undo\": use this option to cancel your changes;\n"
-"\n"
-" * \"Toggle to normal/expert mode\": allows additional actions on "
-"partitions\n"
-"(type, options, format) and gives more information;\n"
-"\n"
-" * \"Done\": when you are finished partitioning your hard 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"
-"partitions using [Tab] and [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"
-"\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 hvor Mandrake Linux skal installeres. Hvis partitionerne "
-"allerede er lavet, enten fra en tidligere installation af GNU/Linux eller "
-"fra et andet partitioneringsvęrktųj), kan du bruge dem. Ellers skal disk-"
-"partitionerne laves fųrst.\n"
-"\n"
-"For at lave partitioner skal du fųrst vęlge en harddisk. Du kan vęlge disken "
-"der skal partitioneres ved at trykke på \"hda\" for den fųrste IDE disk, "
-"\"hdb\" for den anden eller \"sda\" for den fųrste SCSI disk og så videre.\n"
-"\n"
-"For at partitionere den valgte disk kan du bruge disse muligheder:\n"
-"\n"
-" * 'Slet alt': Dette valg sletter alle partitioner på den valgte disk.\n"
-"\n"
-" * 'Allokér automatisk': dette valg tillader dig automatisk at lave Ext2 og "
-"swappartitioner på den fri plads på din disk.\n"
-"\n"
-"* 'Mere': giver adgang til flere faciliteter:\n"
-"\n"
-" * 'Gem partitionstabel': Gemmer din partitionstabel på en diskette. "
-"Nyttigt ved senere redning af partitionstabellen, om nųdvendigt. Det er "
-"stęrkt anbefalet at bruge dette trin.\n"
-"\n"
-" * 'Genskab partitionstabel': lader dig genskabe en tidligere gemt "
-"partitionstabel fra diskette.\n"
-"\n"
-" * 'Red partitionstabel': hvis din partitionstabel er beskadiget, kan du "
-"prųve at redde den med denne mulighed. Vęr forsigtig og husk at det kan slå "
-"fejl.\n"
-" * 'Automatisk montering af flytbart medie': fravalg af denne mulighed "
-"vil tvinge brugere til at manuelt montere og afmontere media såsom disketter "
-"og cdrommer.\n"
-"\n"
-" * 'Vejleder': Hvis du ųnsker at bruge vejlederen til at partitionere din "
-"disk, kan du bruge denne mulighed. Dette anbefales, hvis du ikke har det "
-"store kendskab til partitionering.\n"
-"\n"
-" * 'Fortryd': Du kan bruge denne mulighed for at annullere dine ęndringer.\n"
-"\n"
-" * 'Skift mellem normal og ekspert-version': giver mulighed for flere "
-"handlinger med partitioner (type, valgmuligheder, format) og giver mere "
-"information.\n"
-"\n"
-" * 'Fęrdig': når du er fęrdig med partitionering af din disk, dette vil "
-"skrive ęndringerne tilbage på disken.\n"
-"\n"
-"Bemęrk: du kan nå alle mulighederne ved at bruge tastaturet: navigér gennem "
-"partitionerne med Tab og op- og ned-pilene.\n"
-"\n"
-"Når en partition er valgt kan du bruge:\n"
-"\n"
-" * Ctrl-c for at lave en ny partition (Når en tom partition er valgt);\n"
-"\n"
-" * Ctrl-d for at slette en partition;\n"
-"\n"
-" * Ctrl-m for at sętte et monteringssti.\n"
-"\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 1MB til Yaboot-systemstarteren. Hvis du "
-"vęlger at lave partitionen en smule stųrre, f.eks. 50MB kan den vęre nyttig "
-"til at gemme en ekstra kerne og ramdisk-billede for nųdsituationer ved "
-"opstart."
-
-#: ../../help.pm_.c:513
-msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
-"Please choose the one you want to resize in order to install your new\n"
-"Mandrake Linux 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"
-"\"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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard 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"
-"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 "
-"Mandrake Linux operativsystem.\n"
-"\n"
-"Hver partition er listet som fųlger: 'Linux navn', 'Windows navn', "
-"'Kapacitet'.\n"
-"\n"
-"'Linux navn' er kodet som fųlger: 'drevtype', 'drevnummer', "
-"'partitionsnummer' (for eksempel '/hda1').\n"
-"\n"
-"'drevtype' er 'hd' hvis dit diskdrev er et IDE drev, og 'sd' hvis det er et "
-"SCSI drev.\n"
-"\n"
-"'drevnummer' er altid et bogstav efter 'hd' eller 'sd'. For IDE drev:\n"
-"\n"
-" * 'a' betyder 'hoved-drev på den primęre IDE controller',\n"
-"\n"
-" * 'b' betyder 'slave-drev på den primęre IDE controller',\n"
-"\n"
-" * 'c' betyder 'hoved-drev på den sękundęre IDE controller',\n"
-"\n"
-" * 'd' betyder 'slave-drev på den sękundęre IDE controller'.\n"
-"\n"
-"For SCSI drev betyder 'a' det 'fųrste drev', 'b' betyder det 'andet drev', "
-"osv.\n"
-"\n"
-"'Windows navn' er det bogstav som dit drev har under Windows (den fųrste\n"
-"disk eller partition kaldes 'C:')."
-
-#: ../../help.pm_.c:544
-msgid "Please be patient. This operation can take several minutes."
-msgstr "Hold ud! Dette kan tage adskillige minutter."
-
-#: ../../help.pm_.c:547
-msgid ""
-"DrakX now needs to know if you want to perform a default (\"Recommended\")\n"
-"installation or if you want to have greater control (\"Expert\"). You can\n"
-"also choose to do a new install or an upgrade of an existing Mandrake Linux\n"
-"system:\n"
-"\n"
-" * \"Install\": completely wipes out the old system. In fact, depending on\n"
-"what currently holds your machine, you will be able to keep some old (Linux\n"
-"or other) partitions unchanged;\n"
-"\n"
-" * \"Upgrade\": this installation class allows to simply update the "
-"packages\n"
-"currently installed on your Mandrake Linux system. It keeps the current\n"
-"partitions of your hard drives as well as user configurations. All other\n"
-"configuration steps remain available with respect to plain installation;\n"
-"\n"
-" * \"Upgrade Packages Only\": this brand new class allows to upgrade an\n"
-"existing Mandrake Linux system while keeping all system configurations\n"
-"unchanged. Adding new packages to the current installation is also\n"
-"possible.\n"
-"\n"
-"Upgrades should work fine for Mandrake Linux systems starting from \"8.1\"\n"
-"release.\n"
-"\n"
-"Depending on your knowledge of GNU/Linux, select one of the following\n"
-"choices:\n"
-"\n"
-" * Recommended: choose this if you have never installed a GNU/Linux\n"
-"operating system. The installation will be very easy and you will only be\n"
-"asked a few questions;\n"
-"\n"
-" * Expert: if you have a good knowledge of GNU/Linux, you can choose this\n"
-"installation class. The expert installation will allow you to perform a\n"
-"highly-customized installation. Answering some of the questions can be\n"
-"difficult if you do not have a good knowledge of GNU/Linux, so do not\n"
-"choose this unless you know what you are doing."
-msgstr ""
-"DrakX skal nu vide om du vil udfųre en standard-installation ('Anbefalet'), "
-"eller om du ųnsker at have stųrre kontrol ('Ekspert'). Du kan også vęlge om "
-"du ųnsker at udfųre en nyinstallering eller en opgradering af et "
-"eksisterende Mandrake Linux-system. \n"
-"\n"
-"* 'Installér' udraderer helt det gamle system. Afhęngigt af hvad der i "
-"ųjeblikket er på din maskine vil du dog kunne beholde nogen gamle "
-"partitioner (Linux eller andet) uęndret.\n"
-"\n"
-"* 'Opgradér' Denne installationsklasse tillader simpel opdatering af de "
-"pakker der i ųjeblikket er installeret på dit Mandrake Linux-system. Den "
-"beholder de nuvęrende partitioner på dine diskdrev så vel som opsętningen af "
-"brugere. Alle andre konfigurationstrin forbliver mulige som for almindelig "
-"installation.\n"
-"\n"
-"* 'Opgradér kun pakker' Denne spritnye installationsklasse kan opgradere et "
-"eksisterende Linux Mandrake-system idet al systemkonfiguration beholdes "
-"uęndret. Tilfųjelse af nye pakker til den nuvęrende installation vil også "
-"vęre muligt.\n"
-"\n"
-"Afhęngig af din viden om GNU/Linux kan du vęlge et af de fųlgende:\n"
-"\n"
-"* Anbefalet: hvis du aldrig har installeret et GNU/Linux-operativsystem så "
-"vęlg dette. Installationen vil vęre meget nem og du vil kun blive stillet "
-"nogen få spųrgsmål.\n"
-"\n"
-"* Ekspert: hvis du har en god viden om GNU/Linux, kan du vęlge denne "
-"installationsklasse. Ekspertinstallationen vil lade dig lave en meget "
-"tilpasset installation. Besvarelse af nogen af spųrgsmålene kan vęre meget "
-"svęrt hvis du ikke har så godt et kendskab til GNU/Linux, så lad vęre med at "
-"vęlge dette, medmindre du véd hvad du laver."
-
-#: ../../help.pm_.c:583
-msgid ""
-"Normally, DrakX selects the right keyboard for you (depending on the\n"
-"language you have chosen) and you won't even see this step. However, you\n"
-"might not have a keyboard that corresponds exactly to your language: for\n"
-"example, if you are an English speaking Swiss person, you may still want\n"
-"your keyboard to be a Swiss keyboard. Or if you speak English but are\n"
-"located in Quebec, you may find yourself in the same situation. In both\n"
-"cases, you will have to go back to this installation step and select an\n"
-"appropriate keyboard from the list.\n"
-"\n"
-"Click on the \"More\" button to be presented with the complete list of\n"
-"supported keyboards."
-msgstr ""
-"Normalt vil drakX have valgt det rigtige tastatur til dig (afhęngigt af "
-"sproget du har valgt) og du vil så ikke se dette trin. Men du har måske "
-"ikke et tastatur som svarer nųjagtigt til dit sprog: for eksempel hvis du "
-"er en engelsktalende svejtser, vil du måske stadig ųnske at dit tastatur "
-"skal vęre et svejtsisk tastatur. Eller hvis du taler engelsk men bor i "
-"Québec, er du måske i samme situation. I begge tilfęlde må du gå tilbage "
-"til dette installationstrin og vęlge et passende tastatur fra listen.\n"
-"\n"
-"Klik på 'mere'-tasten for at blive pręsenteret for den fulde \n"
-"liste af understųttede tastaturer."
-
-#: ../../help.pm_.c:596
-msgid ""
-"Please choose your preferred language for installation and system usage.\n"
-"\n"
-"Clicking on the \"Advanced\" button will allow you to select other\n"
-"languages to be installed on your workstation. Selecting other languages\n"
-"will install the language-specific files for system documentation and\n"
-"applications. For example, if you will host users from Spain on your\n"
-"machine, select English as the main language in the tree view and in the\n"
-"Advanced section click on the box corresponding to \"Spanish|Spain\".\n"
-"\n"
-"Note that multiple languages may be installed. Once you have selected any\n"
-"additional locales, click the \"OK\" button to continue."
-msgstr ""
-"Vęlg dit foretrukne sprog for brug under installation og på systemet. \n"
-"Der er en Avanceret-knap som lader dig vęlge andre sprog, der installeres "
-"på maskinen. Valg af andre sprog vil installere de sprogspecifikke filer for "
-"systemdokumentation og programmer. Hvis du for eksempel vil bevęrte folk fra "
-"Spanien på din maskine, vęlg da engelsk som hovedsproget i trę-visningen, og "
-"afkryds så i den avancerede afdeling boksen svarende til spansk|Spanien.\n"
-"\n"
-"Bemęrk at flere sprog kan installeres samtidigt. Når du er fęrdig med at "
-"vęlge yderligere sprog, så klik O.k. for at fortsętte."
-
-#: ../../help.pm_.c:609
-msgid ""
-"DrakX generally detects the number of buttons your mouse has. If not, it\n"
-"assumes you have a two-button mouse and will set it up for third-button\n"
-"emulation. DrakX will automatically know whether it is a PS/2, serial or\n"
-"USB mouse.\n"
-"\n"
-"If you wish to specify a different type of mouse select the appropriate\n"
-"type from the provided list.\n"
-"\n"
-"If you choose a mouse other than the default, a test screen will be\n"
-"displayed. Use the buttons and wheel to verify that the settings are\n"
-"correct. If the mouse is not working well, press the space bar or [Return]\n"
-"to \"Cancel\" and choose again."
-msgstr ""
-"Normalt antager drakX at du har en to-knapsmus og vil lave en opsętning hvor "
-"den tredje knap emuleres. DrakX vil automatisk vide om den er PS/2, seriel "
-"eller USB.\n"
-"\n"
-"Hvis du ųnsker en anden type mus, vęlg da den rigtige type mus fra den viste "
-"liste.\n"
-"\n"
-"Hvis du vęlger en mus forskellig fra den forvalgte, vil du blive pręsenteret "
-"for en skęrm for museafprųvning. Brug knapperne og hjulet for at efterprųve, "
-"om indstillerne er gode. Hvis musen ikke virker korrekt, tryk da på "
-"mellemrumstangenten eller vognretur for at 'Annullere' og vęlg forfra."
-
-#: ../../help.pm_.c:623
-msgid ""
-"Please select the correct port. For example, the \"COM1\" port under\n"
-"Windows is named \"ttyS0\" under GNU/Linux."
-msgstr ""
-"Vęlg den rigtige port. For eksempel er navnet for COM1-porten under MS "
-"Windows 'ttyS0' under GNU/Linux."
-
-#: ../../help.pm_.c:627
-msgid ""
-"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 choose\n"
-"not to enter a password, but we strongly advise you against this if only\n"
-"for one reason: do not think that because you booted GNU/Linux that your\n"
-"other operating systems are safe from mistakes. Since \"root\" can overcome\n"
-"all limitations and unintentionally erase all data on partitions by\n"
-"carelessly accessing the partitions themselves, it is important for it to\n"
-"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."
-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 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 det er for nemt. Som vķst kan du vęlge ikke at "
-"indtaste en adgangskode, men vi advarer dig på det kraftigste mod dette, om "
-"ikke andet med én begrundelse: tro ikke at fordi du startede GNU/Linux op, "
-"så er dine andre operativsystemer velforvarede. 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 for nemt at "
-"bryde ind i et system.\n"
-"\n"
-"Gųr dog ikke adgangskoden for lang eller 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, vil "
-"denne 'ukorrekte' adgangskode vęre kręvet når du forbinder dig til "
-"systemet.\n"
-"\n"
-"I ekspert-tilstand vil du blive spurgt om du vil koble op til en "
-"autenticerings-server, som NIS eller NDAP.\n"
-"\n"
-"Hvis dit netvęrk bruger LDAP (eller NIS)-protokollen til autentificering, "
-"vęlg da LDAP (eller NIS). Hvis du ikke véd det, så spųrg din "
-"systemadministrator.\n"
-"\n"
-"Hvis din maskine ikke er forbundet til noget administreret netvęrk, ųnsker "
-"du nok at vęlge Lokale filer for autentificering"
-
-#: ../../help.pm_.c:663
-msgid ""
-"LILO and grub are GNU/Linux bootloaders. This stage, normally, is totally\n"
-"automated. In fact, DrakX analyzes the disk boot sector and acts\n"
-"accordingly, depending on what it finds here:\n"
-"\n"
-" * if a Windows boot sector is found, it will replace it with a grub/LILO\n"
-"boot sector. Hence, you will be able to load either GNU/Linux or another\n"
-"OS;\n"
-"\n"
-" * if a grub or LILO boot sector is found, it will replace it with a new\n"
-"one.\n"
-"\n"
-"If in doubt, DrakX will display a dialog with various options.\n"
-"\n"
-" * \"Bootloader to use\": you have three choices:\n"
-"\n"
-" * \"GRUB\": if you prefer grub (text menu).\n"
-"\n"
-" * \"LILO with graphical menu\": if you prefer LILO with its graphical\n"
-"interface.\n"
-"\n"
-" * \"LILO with text menu\": if you prefer LILO with its text menu "
-"interface.\n"
-"\n"
-" * \"Boot device\": in most cases, you will not change the default\n"
-"(\"/dev/hda\"), but if you prefer, the bootloader can be installed on the\n"
-"second hard drive (\"/dev/hdb\"), or even on a floppy disk (\"/dev/fd0\");\n"
-"\n"
-" * \"Delay before booting the default image\": when rebooting the computer,\n"
-"this is the delay granted to the user to choose in the bootloader menu,\n"
-"another boot entry than the default one.\n"
-"\n"
-"!! Beware that if you choose not to install a bootloader (by selecting\n"
-"\"Cancel\" here), you must ensure that you have a way to boot your Mandrake\n"
-"Linux system! Also, be sure you know what you do before changing any of the\n"
-"options. !!\n"
-"\n"
-"Clicking the \"Advanced\" button in this dialog will offer many advanced\n"
-"options, which are reserved to the expert user.\n"
-"\n"
-"After you have configured the general bootloader parameters, the list of\n"
-"boot options which will be available at boot time will be displayed.\n"
-"\n"
-"If there is another operating system installed on your machine, it will\n"
-"automatically be added to the boot menu. Here, you can choose to fine-tune\n"
-"the existing options. Select an entry and click \"Modify\" to modify or\n"
-"remove it; \"Add\" creates a new entry; and \"Done\" goes on to the next\n"
-"installation step."
-msgstr ""
-"LILO og GRUB er opstartsindlęsere for GNU/Linux. Dette trin er normalt helt "
-"automatiseret. Faktisk vil drakX analysere opstartsektoren på disken og vil "
-"handle ud fra dette, afhęngig af hvad den finder hér:\n"
-"\n"
-" * Hvis den finder en Windows opstartssektor vil den erstatte den med en "
-"GRUB/LILO opstartssektor, så du kan starte GNU/Linux eller et andet "
-"operativsystem;\n"
-"\n"
-" * Hvis den finder en GRUB eller LILO opstartssektor vil den erstatte den "
-"med en ny;\n"
-"\n"
-"Hvis den er i tvivl vil drakX vise en dialog med forskellige muligheder.\n"
-"\n"
-" * 'Opstartsindlęser der bruges': du får her tre muligheder:\n"
-"\n"
-" * 'GRUB': hvis du foretrękker GRUB (tekstmenu).\n"
-"\n"
-" * 'LILO med grafisk menu': hvis du foretrękker LILO med "
-"grafikgręnseflade.\n"
-"\n"
-" * 'LILO med tekstmenu': hvis du foretrękker LILO med tekstgręnseflade.\n"
-"\n"
-" * 'Opstartsenhed': I de fleste tilfęlde vil det ikke vęre nųdvendigt at "
-"ęndre standard (/dev/hda), men hvis du foretrękker det, kan "
-"opstartsindlęseren installeres på det andet diskdrev (/dev/hdb), eller endda "
-"på en diskette (/dev/fd0).\n"
-"\n"
-" * 'Forsinkelse fųr opstart af standardsystem': Ved genstart af maskinen er "
-"dette den tid der gives til brugeren til at vęlge en anden opstartsindgang "
-"end standard i opstartsindlęserens menu.\n"
-"\n"
-"Vęr opmęrksom på at hvis du vęlger ikke at installere en opstartsindlęser "
-"(ved at vęlge 'Annullér' hér), skal du vęre sikker på at du har en anden "
-"måde at starte dit Mandrake Linux-system op på! Vęr også sikker på hvad du "
-"gųr hvis du ęndrer nogen af tilvalgene her!\n"
-"\n"
-"Et klik på 'Avanceret'-knappen i denne dialog vil tilbyde mange avancerede "
-"muligheder beregnet til ekspertbrugeren.\n"
-"\n"
-"Efter at du har konfigureret de generelle opstartsindlęserparametre, bliver "
-"du presenteret for listen af opstartsmuligheder som vil vęre tilstede ved "
-"opstarten.\n"
-"\n"
-"Hvis der er et andet operativsystem installeret på din maskine, vil det "
-"automatisk blive tilfųjet til opstartsmenuen. Her kan du vęlge at "
-"finindstille de eksisterende muligheder. Vęlg en indgang og klik på 'Ęndr' "
-"for at ęndre eller fjerne den; 'Tilfųj' opretter en ny indgang; og 'Fęrdig' "
-"fortsętter til det nęste installationstrin."
-
-#: ../../help.pm_.c:711
-msgid ""
-"LILO (the LInux LOader) and grub are bootloaders: they are able to boot\n"
-"either GNU/Linux or any other operating system present on your computer.\n"
-"Normally, these other operating systems are correctly detected and\n"
-"installed. If this is not the case, you can add an entry by hand in this\n"
-"screen. Be careful to choose the correct parameters.\n"
-"\n"
-"You may also not want to give access to these other operating systems to\n"
-"anyone. In which case, you can delete the corresponding entries. But then,\n"
-"you will need a boot disk in order to boot those other operating systems!"
-msgstr ""
-"LILO (LInux LOaderen) og GRUB er opstartsindlęsere: de kan starte enten GNU/"
-"Linux eller ethvert andet system op, som ligger på din maskine. Normalt "
-"bliver disse andre operativsystemer fundet korrekt og installeret. Hvis "
-"dette ikke er tilfęldet, kan du lave en indgang i hånden med denne skęrm. "
-"Vęr omhyggelig med at vęlge de korrekte parametre.\n"
-"\n"
-"Måske vil du ikke ųnske at give nogensomhelst adgang til disse andre "
-"operativsystemer. I dette tilfęlde kan du slette de tilsvarende indgange. "
-"Men så har du brug for en opstartsdiskette for at starte disse "
-"operativsystemer!"
-
-#: ../../help.pm_.c:722
-msgid ""
-"You must indicate where you wish to place the information required to boot\n"
-"to GNU/Linux.\n"
-"\n"
-"Unless you know exactly what you are doing, choose \"First sector of drive\n"
-"(MBR)\"."
-msgstr ""
-"Det er nųdvendigt at du angiver hvor du ųnsker at placere oplysningerne\n"
-"kręvet for at opstarte GNU/Linux.\n"
-"\n"
-"Med mindre du véd pręcist hvad du gųr, bųr du vęlge Fųrste sektor på drevet\n"
-"(MBR)."
-
-#: ../../help.pm_.c:729
-msgid ""
-"Here, we select a printing system for your computer. Other OSs may offer\n"
-"you one, but Mandrake Linux offers three.\n"
-"\n"
-" * \"pdq\" which means ``print, don't queue'', is the choice if you have a\n"
-"direct connection to your printer and you want to be able to panic out of\n"
-"printer jams, and you do not have networked printers. It will handle only\n"
-"very simple network cases and is somewhat slow for networks. Pick \"pdq\"\n"
-"if this is your maiden voyage to GNU/Linux. You can change your choices\n"
-"after installation by running PrinterDrake from the Mandrake Control Center\n"
-"and clicking the expert button.\n"
-"\n"
-" * \"CUPS\"``Common Unix Printing System'', is excellent at printing to "
-"your\n"
-"local printer and also halfway-around the planet. It is simple and can act\n"
-"as a server or a client for the ancient \"lpd\" printing system. Hence, it\n"
-"is compatible with the systems that went before. It can do many tricks, but\n"
-"the basic setup is almost as easy as \"pdq\". If you need this to emulate\n"
-"an \"lpd\" server, you must turn on the \"cups-lpd\" daemon. It has\n"
-"graphical front-ends for printing or choosing printer options.\n"
-"\n"
-" * \"lprNG\"``line printer daemon New Generation''. This system can do\n"
-"approximately the same things the others can do, but it will print to\n"
-"printers mounted on a Novell Network, because it supports the IPX protocol,\n"
-"and it can print directly to shell commands. If you have need of Novell or\n"
-"printing to commands without using a separate pipe construct, use lprNG.\n"
-"Otherwise, CUPS is preferable as it is simpler and better at working over\n"
-"networks."
-msgstr ""
-"Her vęlger vi et udskrivningssystem som din maskine skal bruge. Andre "
-"styresystemer tilbyder måske ét, men Mandrake tilbyder tre.\n"
-"\n"
-" * 'pdq' - som betyder 'print, don't queue' (udskriv, kų ej), er valget, "
-"hvis du har en direkte forbindelse til din printer, og du ųnsker at kunne "
-"klare printproblemer med det samme, og du ikke har nogen printere via "
-"netvęrk. Det vil kun behandle meget simple netvęrkstilfęlde, og er lidt "
-"slųvt på netvęrk. Vęlg 'pdq' hvis dette er din jomfrurejse med GNU/Linux. Du "
-"kan ęndre dit valg efter installeringen ved at kųre PrinterDrake fra "
-"Mandrakes Kontrolcenter, og klikke på ekspert-knappen.\n"
-"\n"
-" * 'CUPS' - 'Common Unix Printing System' (Fęlles printersystem for Unix) er "
-"fremragende til at udskrive på din lokale printer, og også på den, der står "
-"på den anden side af jordkloden. Det er simpelt, og kan virke som en server "
-"eller klient for det bedagede 'lpd'-printsystem, så det er kompatibelt med "
-"de tidligere systemer. Det kan mange finesser, men den basale opsętning er "
-"nęsten lige så nem som for 'pdq'. Hvis du har brug for at dette efterligner "
-"en 'lpd'-server, skal du aktivere 'cups-lpd'-dęmonen. Det har grafiske "
-"gręnseflader for udskrivning og valg af printermuligheder.\n"
-"\n"
-" * 'lprNG' - 'line printer daemon New Generation' (ny generation af "
-"linjeprinterdęmonen). Dette system kan gųre omtrent det samme som de andre, "
-"men det vil også kunne skrive til et Novell netvęrk, fordi det understųtter "
-"IPX-protokollen, og det kan udskrive direkte til skal-kommandoer. Hvis du "
-"har brug for Novell eller udskrivning til kommandoer uden at bruge en "
-"separat kanaliserings-konstruktion, så brug lprNG. Ellers er CUPS at "
-"foretrękke, da det er simplere og bedre til at fungere over netvęrk."
-
-#: ../../help.pm_.c:757
-msgid ""
-"DrakX now detects any IDE device present in your computer. It will also\n"
-"scan for one or more PCI SCSI card(s) on your system. If a SCSI card is\n"
-"found, DrakX will automatically install the appropriate driver.\n"
-"\n"
-"Because hardware detection does not always detect a piece of hardware,\n"
-"DrakX will ask you to confirm if a PCI SCSI card is present. Click \"Yes\"\n"
-"if you know that there is a SCSI card installed in your machine. You will\n"
-"be presented a list of SCSI cards to choose from. Click \"No\" if you have\n"
-"no SCSI hardware. If you are unsure, you can check the list of hardware\n"
-"detected in your machine by selecting \"See hardware info\" and clicking\n"
-"\"OK\". Examine the list of hardware and then click on the \"OK\" button to\n"
-"return to the SCSI interface question.\n"
-"\n"
-"If you have to manually specify your adapter, DrakX will ask if you want to\n"
-"specify options for it. You should allow DrakX to probe the hardware for\n"
-"the card-specific options which the hardware needs to initialize. This\n"
-"usually works well.\n"
-"\n"
-"If DrakX is not able to probe for the options which need to be passed, you\n"
-"will need to provide options to the driver manually. Please review the\n"
-"``User Guide'' (chapter 3, in the ``Collecting Information on Your\n"
-"Hardware'' section) for hints on retrieving the parameters required from\n"
-"hardware documentation, from the manufacturer's web site (if you have\n"
-"Internet access) or from MicrosoftWindows (if you used this hardware with\n"
-"Windows on your system)."
-msgstr ""
-"DrakX er nu ved at bestemme alle IDE-enheder der er tilstede på din maskine. "
-"Den vil også lede efter en eller flere PCI SCSI-kort på dit system. Hvis et "
-"SCSI-kort findes, vil DrakX automatisk installere en driver til det.\n"
-"\n"
-"Da maskineleftersųgningen nogen gange ikke vil finde et stykke udstyr, vil "
-"DrakX alligevel spųrge dig om du har et SCSI-kort installeret i din maskine. "
-"Du vil blive pręsenteret for en liste af SCSI-kort, som du kan vęlge fra. "
-"Svar Nej hvis du ikke har noget SCSI-udstyr. Hvis du ikke er sikker, kan du "
-"også tjekke listen over udstyr i din maskine ved at vęlge Se maskinelinfo og "
-"klikke O.k. Undersųg listen over udstyr og klik så på O.k.-knappen for at "
-"vende tilbage til spųrgsmålet om SCSI-udstyr.\n"
-"\n"
-"Hvis du måtte angive din kort manuelt, vil DrakX spųrge om du vil "
-"specificere nogle indstillingsmuligheder for den. Du bųr dog lade DrakX "
-"spųrge udstyret om opsętningen. Det virker som regel fint. \n"
-"Hvis DrakX ikke kan få oplysninger om indstillinger ud af udstyret, som skal "
-"bruges til opsętningen, skal du angive opsętningsinformation til driveren. "
-"Se i brugervejledningen (kapitel 3, underafsnit \"Collective informations on "
-"your hardware\") om hjęlp med at finde informationen i maskinel-"
-"dokumentationen, fra fabrikantens side (hvis du har Internet adgang) eller "
-"fra Microsoft Windows (hvis du brugte dette udstyr med Windows på dit "
-"system)."
-
-#: ../../help.pm_.c:784
-msgid ""
-"You can add additional entries for yaboot, either for other operating\n"
-"systems, alternate kernels, or for an emergency boot image.\n"
-"\n"
-"For other OSs, the entry consists only of a label and the \"root\"\n"
-"partition.\n"
-"\n"
-"For Linux, there are a few possible options:\n"
-"\n"
-" * Label: this is simply the name you will have to type at the yaboot "
-"prompt\n"
-"to select this boot option;\n"
-"\n"
-" * Image: this would be the name of the kernel to boot. Typically, vmlinux\n"
-"or a variation of vmlinux with an extension;\n"
-"\n"
-" * Root: the \"root\" device or ``/'' for your Linux installation;\n"
-"\n"
-" * Append: on Apple hardware, the kernel append option is used quite often\n"
-"to assist in initializing video hardware, or to enable keyboard mouse\n"
-"button emulation for the often lacking 2nd and 3rd mouse buttons on a stock\n"
-"Apple mouse. The following are some examples:\n"
-"\n"
-" video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111 "
-"hda=autotune\n"
-"\n"
-" video=atyfb:vmode:12,cmode:24 adb_buttons=103,111\n"
-"\n"
-" * Initrd: this option can be used either to load initial modules, before\n"
-"the boot device is available, or to load a ramdisk image for an emergency\n"
-"boot situation;\n"
-"\n"
-" * Initrd-size: the default ramdisk size is generally 4,096 bytes. If you\n"
-"need to allocate a large ramdisk, this option can be used;\n"
-"\n"
-" * Read-write: normally the \"root\" partition is initially brought up in\n"
-"read-only, to allow a file system check before the system becomes ``live''.\n"
-"Here, you can override this option;\n"
-"\n"
-" * NoVideo: should the Apple video hardware prove to be exceptionally\n"
-"problematic, you can select this option to boot in ``novideo'' mode, with\n"
-"native frame buffer support;\n"
-"\n"
-" * Default: selects this entry as being the default Linux selection,\n"
-"selectable by just pressing ENTER at the yaboot prompt. This entry will\n"
-"also be highlighted with a ``*'', if you press [Tab] to see the boot\n"
-"selections."
-msgstr ""
-"Du kan tilfųje flere valgmuligheder for Yaboot, enten til andre "
-"styresystemer, andre kerner, eller til nųd-opstart.\n"
-"\n"
-"For andre styresystemer består indgangen blot af et navn og rodpartitionen\n"
-"\n"
-"Der er for Linux nogen få valgmuligheder:\n"
-"\n"
-" * Label: dette er simpelthen navnet som du skal indtaste til ledeteksten "
-"fra Yaboot for at vęlge denne opstartsmulighed.\n"
-"\n"
-" * Image: Dette vil vęre navnet på den kerne der skal opstartes. Typisk "
-"vmlinux eller en variation på vmlinux med en endelse.\n"
-"\n"
-" * Root: root enheden eller \"/\" for din Linux installation.\n"
-"\n"
-" * Append: på Apple udstyr bruges kerne-append muligheden ganske ofte til at "
-"hjęlpe med initialisering af billedudstyr, eller til at aktivere emulering "
-"af museknapper for de ofte manglende knap 2 og knap 3 på musen på en typisk "
-"Apple mus. Det fųlgende er nogle eksempler:\n"
-"\n"
-" video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111 "
-"hda=autotune\n"
-"\n"
-" video=atyfb:vmode:12,cmode:24 adb_buttons=103,111\n"
-"\n"
-" * Initrd: denne mulighed kan bruges enten til at indlęse de fųrste moduler, "
-"fųr opstartsenheden er tilgęngelig, eller til at indlęse en ramdisk ved "
-"opstart i en nųdsituation.\n"
-"\n"
-" * Initrd-size: den almindelige stųrrelse på en ramdisk er generelt 4.096 "
-"byte. Hvis du har brug for at udlęgge en stor ramdisk kan denne mulighed "
-"bruges.\n"
-"\n"
-" * Read-write: normalt bliver rod-partitionen fųrst bragt op skrivebeskyttet "
-"for at muliggųre et filsystemstjek fųr systemet går i luften. Her kan du "
-"tilsidesętte denne opsętning.\n"
-"\n"
-" * NoVideo: skulle Apple-billedudstyret vise sig at vęre specielt "
-"problemfyldt kan du vęlge denne mulighed for at starte op i 'novideo'-"
-"tilstand, med indbygget rammebufferunderstųttelse.\n"
-"\n"
-" * Default: vęlger denne indgang som vęrende det normale Linux valg, som "
-"vęlges bare ved at trykke RETUR ved yaboots ledetekst. Denne indgang vil "
-"også blive fremhęvet med en '*', hvis du trykker Tab for at se "
-"opstartsvalgene."
-
-#: ../../help.pm_.c:830
-msgid ""
-"Yaboot is a bootloader for NewWorld MacIntosh hardware. It is able to boot\n"
-"either GNU/Linux, MacOS or MacOSX if present on your computer. Normally,\n"
-"these other operating systems are correctly detected and installed. If this\n"
-"is not the case, you can add an entry by hand in this screen. Be careful to\n"
-"choose the correct parameters.\n"
-"\n"
-"Yaboot's main options are:\n"
-"\n"
-" * Init Message: a simple text message displayed before the boot prompt;\n"
-"\n"
-" * Boot Device: indicates where you want to place the information required\n"
-"to boot to GNU/Linux. Generally, you set up a bootstrap partition earlier\n"
-"to hold this information;\n"
-"\n"
-" * Open Firmware Delay: unlike LILO, there are two delays available with\n"
-"yaboot. The first delay is measured in seconds and at this point, you can\n"
-"choose between CD, OF boot, MacOS or Linux;\n"
-"\n"
-" * Kernel Boot Timeout: this timeout is similar to the LILO boot delay.\n"
-"After selecting Linux, you will have this delay in 0.1 second before your\n"
-"default kernel description is selected;\n"
-"\n"
-" * Enable CD Boot?: checking this option allows you to choose ``C'' for CD\n"
-"at the first boot prompt;\n"
-"\n"
-" * Enable OF Boot?: checking this option allows you to choose ``N'' for "
-"Open\n"
-"Firmware at the first boot prompt;\n"
-"\n"
-" * Default OS: you can select which OS will boot by default when the Open\n"
-"Firmware Delay expires."
-msgstr ""
-"Yaboot er en systemstarter til NewWorld MacIntosh-maskinel. Den kan starte "
-"enten GNU/Linux, MacOS eller MacOSX, hvis de er til stede på din maskine. "
-"Sędvanligvis vil disse andre styresystemer blive korrekt opdaget og "
-"installeret. Hvis dette ikke skulle vęre tilfęldet kan du her tilfųje en "
-"indgang i hånden. Vęr omhyggelig med at vęlge de korrekte parametre.\n"
-"\n"
-"Yaboots hovedvalg er:\n"
-"\n"
-" * Init-besked: En enkel tekstbesked som vises fųr valg af opstart.\n"
-"\n"
-" * Opstartsenhed: Angiver hvor du ųnsker at placere informationen som er "
-"nųdvendig for at starte GNU/Linux. Du vil generelt have indstillet en "
-"bootstrap-partition tidligere til at have denne information.\n"
-"\n"
-" * Open firmwareforsinkelse: Til forskel fra LILO er der to forsinkelser "
-"mulige med yaboot. Den fųrste forsinkelse bliver målt i sekunder og du kan "
-"ved det punkt vęlge mellem CD, OF-opstart, MacOS eller Linux.\n"
-"\n"
-" * Ventetid fųr kerneopstart: Denne er lig LILO-opstartsforsinkelsen. Efter "
-"at have valgt Linux vil du have denne ventetid gange 0,1 sekunder fųr din "
-"forvalgte kernebeskrivelse bliver valgt.\n"
-"\n"
-" * Aktivér CD-opstart?: Hvis du vęlger dette valg vil du kunne trykke 'C' "
-"for CD ved det fųrste opstartsvalg.\n"
-"\n"
-" * Aktiver OF-opstart?: Hvis du vęlger dette valg vil du kunne trykke 'N' "
-"for 'Open Firmware' ved det fųrste opstartsvalg.\n"
-"\n"
-" * Forvalgt styresystem: Du kan vęlge hvilket forvalgt styresystem der skal "
-"startes når Open Firmwareforsinkelsen er udlųbet."
-
-#: ../../help.pm_.c:862
-msgid ""
-"Here are presented various parameters concerning your machine. Depending on\n"
-"your installed hardware, you may or not, see the following entries:\n"
-"\n"
-" * \"Mouse\": check the current mouse configuration and click on the button\n"
-"to change it if necessary;\n"
-"\n"
-" * \"Keyboard\": check the current keyboard map configuration and click on\n"
-"the button to change that if necessary;\n"
-"\n"
-" * \"Timezone\": DrakX, by default, guesses your time zone from the "
-"language\n"
-"you have chosen. But here again, as for the choice of a keyboard, you may\n"
-"not be in the country for which the chosen language should correspond.\n"
-"Hence, you may need to click on the \"Timezone\" button in order to\n"
-"configure the clock according to the time zone you are in;\n"
-"\n"
-" * \"Printer\": clicking on the \"No Printer\" button will open the printer\n"
-"configuration wizard;\n"
-"\n"
-" * \"Sound card\": if a sound card is detected on your system, it is\n"
-"displayed here. No modification possible at installation time;\n"
-"\n"
-" * \"TV card\": if a TV card is detected on your system, it is displayed\n"
-"here. No modification possible at installation time;\n"
-"\n"
-" * \"ISDN card\": if an ISDN card is detected on your system, it is\n"
-"displayed here. You can click on the button to change the parameters\n"
-"associated with it."
-msgstr ""
-"Her pręsenteres forskellige parametre relateret til din maskine. Afhęngig af "
-"dit installerede maskinel vil - eller vil du ikke - se de fųlgende "
-"indgange:\n"
-"\n"
-" * 'Mus': tjek den aktuelle musekonfiguration og klik på knappen for om "
-"nųdvendigt at ęndre den.\n"
-"\n"
-" * 'Tastatur': tjek den aktuelle tastaturkonfiguration og klik på knappen "
-"for om nųdvendigt at ęndre den.\n"
-"\n"
-" * 'Tidszone': DrakX gętter normalt din tidszone fra det sprog, du har "
-"valgt. Men også her, som ved valg af tastatur, er du måske ikke i det land "
-"som dit sprog indikerer, så du har måske brug for at klikke på 'Tidszone'-"
-"knappen så du kan konfigurere uret svarende til den tidszone du er i.\n"
-"\n"
-" * 'Printer': Et klik på 'Ingen printer'-knappen vil åbne vejlederen for "
-"printerkonfigurering.\n"
-"\n"
-" * 'Lydkort': Hvis et lydkort er blevet fundet på dit system, vil det blive "
-"vist her. Ingen ęndringer er mulige på installationstidspunktet.\n"
-"\n"
-" * 'Tv-kort': Hvis et tv-kort er blevet fundet på dit system, vil det blive "
-"vist her. Ingen ęndringer er mulige på installationstidspunktet.\n"
-"\n"
-" * 'ISDN-kort': Hvis et ISDN-kort er blevet fundet på dit system, vil det "
-"blive vist her. Du kan klikke på knappen for at ęndre de tilhųrende "
-"parametre."
-
-#: ../../help.pm_.c:891
-msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandrake Linux partition. Be careful, all data present on it will be lost\n"
-"and will not be recoverable!"
-msgstr ""
-"Vęlg det diskdrev som du vil slette for at installere din nye Mandrake Linux "
-"partition. Vęr forsigtig, alle data som er på der, vil gå tabt og vil ikke "
-"kunne genskabes!"
-
-#: ../../help.pm_.c:896
-msgid ""
-"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"
-"any Windows data.\n"
-"\n"
-"Click on \"Cancel\" to cancel this operation without losing any data and\n"
-"partitions present on this hard drive."
-msgstr ""
-"Klik på 'O.k.' hvis du ųnsker at slette alle data og pertitioner der ligger "
-"på dette diskdrev. Vęr omhyggelig, efter klik på O.k. vil du ikke vęre i "
-"stand til at redde nogen data eller partitioner, der ligger på dette "
-"diskdrev, inklusive alle Windows data.\n"
-"Klik på 'Annulér' for at anullere denne handling uden at tabe nogen data og "
-"partitioner der er tilstede på dette diskdrev."
-
-#: ../../install2.pm_.c:113
-#, c-format
-msgid ""
-"Can't 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 ""
-"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)"
-
-#: ../../install2.pm_.c:169
-#, c-format
-msgid "You must also format %s"
-msgstr "Du skal også formatere %s"
-
-#: ../../install_any.pm_.c:411
-#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They don't have any known security\n"
-"issues, but some new could be found. In that case, you must make sure to "
-"upgrade\n"
-"as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
-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"
-
-#: ../../install_any.pm_.c:447
-msgid "Can't use broadcast with no NIS domain"
-msgstr "Kan ikke bruge rundkastning uden noget NIS-domęne"
-
-#: ../../install_any.pm_.c:793
-#, c-format
-msgid "Insert a FAT formatted floppy in drive %s"
-msgstr "Indsęt en tom diskette i diskette-drev %s"
-
-#: ../../install_any.pm_.c:797
-msgid "This floppy is not FAT formatted"
-msgstr "Denne diskette er ikke formatteret til FAT"
-
-#: ../../install_any.pm_.c:809
-msgid ""
-"To use this saved packages selection, boot installation with ``linux "
-"defcfg=floppy''"
-msgstr ""
-"For at bruge dette gemte pakkevalg, start installationen op med``linux "
-"defcfg=floppy''"
-
-#: ../../install_any.pm_.c:831 ../../partition_table.pm_.c:763
-#, c-format
-msgid "Error reading file %s"
-msgstr "Fejl ved lęsning af filen %s"
-
-#: ../../install_interactive.pm_.c:23
-#, c-format
-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 "
-"virke.\n"
-"Du kan finde information om dem hos: %s"
-
-#: ../../install_interactive.pm_.c:58
-msgid ""
-"You must have a root partition.\n"
-"For this, create a partition (or click on an existing one).\n"
-"Then choose action ``Mount point'' and set it to `/'"
-msgstr ""
-"Du skal have en rod partition. For at få dette, lav en ny partition (eller "
-"vęlg en eksisterende).\n"
-"Vęlg så kommandoen \"Monterings-sti\" og sęt den til `/'"
-
-#: ../../install_interactive.pm_.c:63
-msgid "You must have a swap partition"
-msgstr "Du skal tildele en partition til Swap"
-
-#: ../../install_interactive.pm_.c:64
-msgid ""
-"You don't have a swap partition\n"
-"\n"
-"Continue anyway?"
-msgstr ""
-"Du har ingen Swap partition\n"
-"\n"
-"Fortsęt alligevel?"
-
-#: ../../install_interactive.pm_.c:67 ../../install_steps.pm_.c:163
-msgid "You must have a FAT partition mounted in /boot/efi"
-msgstr "Du skal have en FAT-partition monteret under /boot/efi"
-
-#: ../../install_interactive.pm_.c:90
-msgid "Use free space"
-msgstr "Brug fri plads"
-
-#: ../../install_interactive.pm_.c:92
-msgid "Not enough free space to allocate new partitions"
-msgstr "Ikke nok fri plads til at tildele nye partitioner"
-
-#: ../../install_interactive.pm_.c:100
-msgid "Use existing partition"
-msgstr "Brug eksisterende partition"
-
-#: ../../install_interactive.pm_.c:102
-msgid "There is no existing partition to use"
-msgstr "Der er ingen eksisterende partition der kan bruges"
-
-#: ../../install_interactive.pm_.c:109
-msgid "Use the Windows partition for loopback"
-msgstr "Brug Windows partitionen til Loopback"
-
-#: ../../install_interactive.pm_.c:112
-msgid "Which partition do you want to use for Linux4Win?"
-msgstr "Hvilken partition vil du benytte som Linux4Win?"
-
-#: ../../install_interactive.pm_.c:114
-msgid "Choose the sizes"
-msgstr "Vęlg stųrrelserne"
-
-#: ../../install_interactive.pm_.c:115
-msgid "Root partition size in MB: "
-msgstr "Rod-partitions stųrrelse i Mb: "
-
-#: ../../install_interactive.pm_.c:116
-msgid "Swap partition size in MB: "
-msgstr "Swap-partitions stųrrelse i Mb: "
-
-#: ../../install_interactive.pm_.c:125
-msgid "Use the free space on the Windows partition"
-msgstr "Brug den frie plads på Windows-partitionen"
-
-#: ../../install_interactive.pm_.c:128
-msgid "Which partition do you want to resize?"
-msgstr "Hvilken partition ųnsker du at ęndre stųrrelse på?"
-
-#: ../../install_interactive.pm_.c:130
-msgid "Computing Windows filesystem bounds"
-msgstr "Udregner Windows-filsystemets gręnser"
-
-#: ../../install_interactive.pm_.c:133
-#, c-format
-msgid ""
-"The FAT resizer is unable to handle your partition, \n"
-"the following error occured: %s"
-msgstr ""
-"Programmet til at ęndre stųrrelse på FAT kan ikke behandle din partition, \n"
-"den fųlgende fejl opstod: %s"
-
-#: ../../install_interactive.pm_.c:136
-msgid "Your Windows partition is too fragmented, please run ``defrag'' first"
-msgstr "Din Windows partition er for fragmenteret, kųr 'defrag' fųrst"
-
-#: ../../install_interactive.pm_.c:137
-msgid ""
-"WARNING!\n"
-"\n"
-"DrakX will now resize your Windows partition. Be careful:\n"
-"this operation is dangerous. If you have not already done\n"
-"so, you should first exit the installation, run scandisk\n"
-"under Windows (and optionally run defrag), then restart the\n"
-"installation. You should also backup your data.\n"
-"When sure, press Ok."
-msgstr ""
-"ADVARSEL!\n"
-"\n"
-"DrakX vil nu ęndre stųrrelsen på din Windows-partition. Udvis forsigtighed: "
-"denne operation er farlig. Hvis du ikke allerede har gjort det, bųr du fųrst "
-"gå ud af denne installation, kųre scandisk under Windows (og eventuelt "
-"defrag) og så genstarte installationen. Du bųr også tage en sikkerhedskopi "
-"af dine data. Tryk på Ok, hvis du er helt sikker."
-
-#: ../../install_interactive.pm_.c:147
-msgid "Which size do you want to keep for windows on"
-msgstr "Hvilken stųrrelse ųnsker du at at beholde Windows på?"
-
-#: ../../install_interactive.pm_.c:148
-#, c-format
-msgid "partition %s"
-msgstr "partition %s"
-
-#: ../../install_interactive.pm_.c:155
-#, c-format
-msgid "FAT resizing failed: %s"
-msgstr "FAT stųrrelsesęndring mislykkedes: %s"
-
-#: ../../install_interactive.pm_.c:170
-msgid ""
-"There is no FAT partitions to resize or to use as loopback (or not enough "
-"space left)"
-msgstr ""
-"Der er ingen FAT-partitioner at ęndre stųrrelse på, eller bruge som loopback "
-"(eller ikke nok plads tilbage)"
-
-#: ../../install_interactive.pm_.c:176
-msgid "Erase entire disk"
-msgstr "Slet hele disken"
-
-#: ../../install_interactive.pm_.c:176
-msgid "Remove Windows(TM)"
-msgstr "Fjern Windows(TM)"
-
-#: ../../install_interactive.pm_.c:179
-msgid "You have more than one hard drive, which one do you install linux on?"
-msgstr "Du har mere end et diskdrev, hvilken ųnsker du at installere Linux på?"
-
-#: ../../install_interactive.pm_.c:182
-#, c-format
-msgid "ALL existing partitions and their data will be lost on drive %s"
-msgstr "Alle eksisterende partitioner og deres data vil gå tabt på drev %s"
-
-#: ../../install_interactive.pm_.c:190
-msgid "Custom disk partitioning"
-msgstr "Brugerdefineret disk-opdeling"
-
-#: ../../install_interactive.pm_.c:194
-msgid "Use fdisk"
-msgstr "Brug fdisk"
-
-#: ../../install_interactive.pm_.c:197
-#, c-format
-msgid ""
-"You can now partition %s.\n"
-"When you are done, don't forget to save using `w'"
-msgstr ""
-"Du kan nu partitionere %s.\n"
-"Når du er fęrdig, så husk at gemme med 'w'"
-
-#: ../../install_interactive.pm_.c:226
-msgid "You don't have enough free space on your Windows partition"
-msgstr "Du har ikke nok fri plads på din Windows-partition"
-
-#: ../../install_interactive.pm_.c:242
-msgid "I can't find any room for installing"
-msgstr "Kan ikke finde plads til installering"
-
-#: ../../install_interactive.pm_.c:246
-msgid "The DrakX Partitioning wizard found the following solutions:"
-msgstr "DrakX partitionerings-vejlederen fandt de fųlgende lųsninger:"
-
-#: ../../install_interactive.pm_.c:251
-#, c-format
-msgid "Partitioning failed: %s"
-msgstr "Partitionering mislykkedes: %s"
-
-#: ../../install_interactive.pm_.c:261
-msgid "Bringing up the network"
-msgstr "Bringer netvęrket op"
-
-#: ../../install_interactive.pm_.c:266
-msgid "Bringing down the network"
-msgstr "Lukker netvęrket ned"
-
-#: ../../install_steps.pm_.c:76
-msgid ""
-"An error occurred, but I don't know how to handle it nicely.\n"
-"Continue at your own risk."
-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!"
-
-#: ../../install_steps.pm_.c:205
-#, c-format
-msgid "Duplicate mount point %s"
-msgstr "Duplikér monterings-sti %s"
-
-#: ../../install_steps.pm_.c:388
-msgid ""
-"Some important packages didn't get installed properly.\n"
-"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl Mandrake/RPMS/*.rpm"
-"\"\n"
-msgstr ""
-"Nogle vigtige pakker blev ikke installeret rigtigt.\n"
-"Enten er dit cdrom-drev eller din cdrom fejlbehęftet.\n"
-"Tjek cdrom'en på en fęrdiginstalleret maskine ved brug af \"rpm -qpl "
-"Mandrake/RPMS/*.rpm\"\n"
-
-#: ../../install_steps.pm_.c:458
-#, c-format
-msgid "Welcome to %s"
-msgstr "Velkommen til %s"
-
-#: ../../install_steps.pm_.c:513 ../../install_steps.pm_.c:755
-msgid "No floppy drive available"
-msgstr "Intet tilgęngeligt diskettedrev"
-
-#: ../../install_steps_auto_install.pm_.c:76
-#: ../../install_steps_stdio.pm_.c:22
-#, c-format
-msgid "Entering step `%s'\n"
-msgstr "Går til trin `%s'\n"
-
-#: ../../install_steps_gtk.pm_.c:148
-msgid ""
-"Your system is low on resource. You may have some problem installing\n"
-"Mandrake Linux. 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"
-"Mandrake 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'."
-
-#: ../../install_steps_gtk.pm_.c:159 ../../install_steps_interactive.pm_.c:224
-msgid "Install Class"
-msgstr "Installationsmetode"
-
-#: ../../install_steps_gtk.pm_.c:162
-msgid "Please choose one of the following classes of installation:"
-msgstr "Vęlg en af de fųlgende installations-måder:"
-
-#: ../../install_steps_gtk.pm_.c:228
-#, c-format
-msgid ""
-"The total size for the groups you have selected is approximately %d MB.\n"
-msgstr "Den totale stųrrelse af de grupper du har valg er cirka %d Mb.\n"
-
-#: ../../install_steps_gtk.pm_.c:230
-#, c-format
-msgid ""
-"If you wish to install less than this size,\n"
-"select the percentage of packages that you want to install.\n"
-"\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of 100%% will install all selected packages."
-msgstr ""
-"Hvis du ųnsker at installere mindre end denne stųrrelse,\n"
-"så vęlg procentdelen af pakker som du vil installere.\n"
-"\n"
-"En lav procentdel vil kun installere de vigtigste pakker;\n"
-"en procentdel på 100%% vil installere alle valgte pakker."
-
-#: ../../install_steps_gtk.pm_.c:235
-#, c-format
-msgid ""
-"You have space on your disk for only %d%% of these packages.\n"
-"\n"
-"If you wish to install less than this,\n"
-"select the percentage of packages that you want to install.\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of %d%% will install as many packages as possible."
-msgstr ""
-"Du har kun plads på din disk til %d%% af disse pakker.\n"
-"\n"
-"Hvis du ųnsker at installere mindre end denne stųrrelse,\n"
-"så vęlg procentdelen af pakker som du vil installere.\n"
-"En lav procentdel vil kun installere de vigtigste pakker;\n"
-"en procentdel på %d%% vil installere så mange pakker som muligt."
-
-#: ../../install_steps_gtk.pm_.c:241
-msgid "You will be able to choose them more specifically in the next step."
-msgstr ""
-"Du har mulighed for at vęlge dem mere pręcist i nęste installationstrin"
-
-#: ../../install_steps_gtk.pm_.c:243
-msgid "Percentage of packages to install"
-msgstr "Procentandel pakker til installation"
-
-#: ../../install_steps_gtk.pm_.c:291 ../../install_steps_interactive.pm_.c:705
-msgid "Package Group Selection"
-msgstr "Valg af pakkegrupper"
-
-#: ../../install_steps_gtk.pm_.c:323 ../../install_steps_interactive.pm_.c:720
-msgid "Individual package selection"
-msgstr "Individuelt pakkevalg"
-
-#: ../../install_steps_gtk.pm_.c:346 ../../install_steps_interactive.pm_.c:645
-#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Total stųrrelse: %d / %d Mb"
-
-#: ../../install_steps_gtk.pm_.c:391
-msgid "Bad package"
-msgstr "Dårlig pakke"
-
-#: ../../install_steps_gtk.pm_.c:392
-#, c-format
-msgid "Name: %s\n"
-msgstr "Navn: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:393
-#, c-format
-msgid "Version: %s\n"
-msgstr "Version: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:394
-#, c-format
-msgid "Size: %d KB\n"
-msgstr "Stųrrelse: %d KB\n"
-
-#: ../../install_steps_gtk.pm_.c:395
-#, c-format
-msgid "Importance: %s\n"
-msgstr "Vigtighed: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:417
-msgid ""
-"You can't 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"
-
-#: ../../install_steps_gtk.pm_.c:422
-msgid "The following packages are going to be installed"
-msgstr "De fųlgende pakker vil blive installeret"
-
-#: ../../install_steps_gtk.pm_.c:423
-msgid "The following packages are going to be removed"
-msgstr "De fųlgende pakker vil blive afinstalleret"
-
-#: ../../install_steps_gtk.pm_.c:435
-msgid "You can't select/unselect this package"
-msgstr "Du kan ikke vęlge/fravęlge denne pakke"
-
-#: ../../install_steps_gtk.pm_.c:447
-msgid "This is a mandatory package, it can't be unselected"
-msgstr "Dette er en nųdvendig pakke, den kan ikke vęlges fra"
-
-#: ../../install_steps_gtk.pm_.c:449
-msgid "You can't unselect this package. It is already installed"
-msgstr "Du kan ikke fravęlge denne pakke. Den er allerede installeret"
-
-#: ../../install_steps_gtk.pm_.c:453
-msgid ""
-"This package must be upgraded\n"
-"Are you sure you want to deselect it?"
-msgstr ""
-"Denne pakke skal opgraderes\n"
-"Er du sikker på at du vil fravęlge den?"
-
-#: ../../install_steps_gtk.pm_.c:457
-msgid "You can't unselect this package. It must be upgraded"
-msgstr "Du kan ikke fravęlge denne pakke. Den skal opgraderes"
-
-#: ../../install_steps_gtk.pm_.c:462
-msgid "Show automatically selected packages"
-msgstr "Vis automatisk valgte pakker"
-
-#: ../../install_steps_gtk.pm_.c:463 ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Install"
-msgstr "Installér"
-
-#: ../../install_steps_gtk.pm_.c:466
-msgid "Load/Save on floppy"
-msgstr "Indlęs/gem på diskette"
-
-#: ../../install_steps_gtk.pm_.c:467
-msgid "Updating package selection"
-msgstr "Opdaterer pakkevalg"
-
-#: ../../install_steps_gtk.pm_.c:472
-msgid "Minimal install"
-msgstr "Minimal installation"
-
-#: ../../install_steps_gtk.pm_.c:487 ../../install_steps_interactive.pm_.c:555
-msgid "Choose the packages you want to install"
-msgstr "Vęlg pakker som skal installeres"
-
-#: ../../install_steps_gtk.pm_.c:503 ../../install_steps_interactive.pm_.c:787
-msgid "Installing"
-msgstr "Installerer"
-
-#: ../../install_steps_gtk.pm_.c:509
-msgid "Estimating"
-msgstr "Beregnes"
-
-#: ../../install_steps_gtk.pm_.c:516
-msgid "Time remaining "
-msgstr "Resterende tid "
-
-#: ../../install_steps_gtk.pm_.c:528
-msgid "Please wait, preparing installation"
-msgstr "Vent venligst, forbereder installationen"
-
-#: ../../install_steps_gtk.pm_.c:611
-#, c-format
-msgid "%d packages"
-msgstr "%d pakker"
-
-#: ../../install_steps_gtk.pm_.c:616
-#, c-format
-msgid "Installing package %s"
-msgstr "Installerer pakke %s"
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-#: ../../standalone/drakautoinst_.c:203
-msgid "Accept"
-msgstr "Acceptér"
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-msgid "Refuse"
-msgstr "Nęgt"
-
-#: ../../install_steps_gtk.pm_.c:658 ../../install_steps_interactive.pm_.c:812
-#, c-format
-msgid ""
-"Change your Cd-Rom!\n"
-"\n"
-"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
-"done.\n"
-"If you don't have it, press Cancel to avoid installation from this Cd-Rom."
-msgstr ""
-"Skift din cdrom!\n"
-"\n"
-"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, så undgås installation fra denne cd"
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_gtk.pm_.c:676
-#: ../../install_steps_interactive.pm_.c:824
-#: ../../install_steps_interactive.pm_.c:828
-msgid "Go on anyway?"
-msgstr "Fortsęt alligevel?"
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_interactive.pm_.c:824
-msgid "There was an error ordering packages:"
-msgstr "Der opstod en fejl ved sorteringen af pakkerne:"
-
-#: ../../install_steps_gtk.pm_.c:676 ../../install_steps_interactive.pm_.c:828
-msgid "There was an error installing packages:"
-msgstr "Der opstod en fejl ved installeringen af pakkerne:"
-
-#: ../../install_steps_interactive.pm_.c:10
-msgid ""
-"\n"
-"Warning\n"
-"\n"
-"Please read carefully the terms below. If you disagree with any\n"
-"portion, you are not allowed to install the next CD media. Press 'Refuse' \n"
-"to continue the installation without using these media.\n"
-"\n"
-"\n"
-"Some components contained in the next CD media are not governed\n"
-"by the GPL License or similar agreements. Each such component is then\n"
-"governed by the terms and conditions of its own specific license. \n"
-"Please read carefully and comply with such specific licenses before \n"
-"you use or redistribute the said components. \n"
-"Such licenses will in general prevent the transfer, duplication \n"
-"(except for backup purposes), redistribution, reverse engineering, \n"
-"de-assembly, de-compilation or modification of the component. \n"
-"Any breach of agreement will immediately terminate your rights under \n"
-"the specific license. Unless the specific license terms grant you such\n"
-"rights, you usually cannot install the programs on more than one\n"
-"system, or adapt it to be used on a network. In doubt, please contact \n"
-"directly the distributor or editor of the component. \n"
-"Transfer to third parties or copying of such components including the \n"
-"documentation is usually forbidden.\n"
-"\n"
-"\n"
-"All rights to the components of the next CD media belong to their \n"
-"respective authors and are protected by intellectual property and \n"
-"copyright laws applicable to software programs.\n"
-msgstr ""
-"\n"
-"Advarsel\n"
-"\n"
-"Lęs venligst betingelserne nedenfor omhyggeligt. Hvis du ikke er enig i alt "
-"der står, må du ikke installere indholdet af CD-en. Tryk på 'Nęgt' for at "
-"fortsętte installationen uden disse cdrommer.\n"
-"\n"
-"\n"
-"Visse komponenter på den nęste CD er ikke omfattet af GPL-licensen eller "
-"andre lignende licenser. Hver enkelt komponent er derfor omfattet af de "
-"betingelser der er beskrevet i dets egen licens. Lęs derfor venligst "
-"betingelserne omhyggeligt og fųlg de opstillede betingelser når du bruger og/"
-"eller videredistribuerer komponenterne. Sådanne licenser forhindrer normalt "
-"kopiering (sikkerhedskopiering undtaget), videredistribuering, at folk "
-"skiller programmet ad, eller ęndrer i komponenterne. Ethvert brud på "
-"licensen vil ųjeblikkeligt fratage dig rettighederne beskrevet i den "
-"specifikke licens. Medmindre licensen giver dig lov hertil, vil det normalt "
-"ikke vęre tilladt at installere programmet på mere end én maskine, eller "
-"bruge det på et netvęrk. Hvis du er i tvivl, så kontakt venligst producenten "
-"af komponenten direkte. Overdragelse til tredjemand eller kopiering af "
-"sådanne komponenter inklusive dokumentationen er normalt forbudt.\n"
-"\n"
-"\n"
-"Alle rettigheder til komponenterne på CD-en tilhųrer deres respektive "
-"skabere og er beskyttet af Lov om Ophavsret.\n"
-
-#: ../../install_steps_interactive.pm_.c:67
-msgid "An error occurred"
-msgstr "Der er opstået en fejl"
-
-#: ../../install_steps_interactive.pm_.c:85
-msgid "Do you really want to leave the installation?"
-msgstr "Ųnsker du virkelig at forlade installationen?"
-
-#: ../../install_steps_interactive.pm_.c:108
-msgid "License agreement"
-msgstr "Licensaftale"
-
-# Mangler
-#: ../../install_steps_interactive.pm_.c:109
-msgid ""
-"Introduction\n"
-"\n"
-"The operating system and the different components available in the Mandrake "
-"Linux distribution \n"
-"shall be called the \"Software Products\" hereafter. The Software Products "
-"include, but are not \n"
-"restricted to, the set of programs, methods, rules and documentation related "
-"to the operating \n"
-"system and the different components of the Mandrake Linux distribution.\n"
-"\n"
-"\n"
-"1. License Agreement\n"
-"\n"
-"Please read carefully this document. This document is a license agreement "
-"between you and \n"
-"MandrakeSoft S.A. which applies to the Software Products.\n"
-"By installing, duplicating or using the Software Products in any manner, you "
-"explicitly \n"
-"accept and fully agree to conform to the terms and conditions of this "
-"License. \n"
-"If you disagree with any portion of the License, you are not allowed to "
-"install, duplicate or use \n"
-"the Software Products. \n"
-"Any attempt to install, duplicate or use the Software Products in a manner "
-"which does not comply \n"
-"with the terms and conditions of this License is void and will terminate "
-"your rights under this \n"
-"License. Upon termination of the License, you must immediately destroy all "
-"copies of the \n"
-"Software Products.\n"
-"\n"
-"\n"
-"2. Limited Warranty\n"
-"\n"
-"The Software Products and attached documentation are provided \"as is\", "
-"with no warranty, to the \n"
-"extent permitted by law.\n"
-"MandrakeSoft S.A. will, in no circumstances and to the extent permitted by "
-"law, be liable for any special,\n"
-"incidental, direct or indirect damages whatsoever (including without "
-"limitation damages for loss of \n"
-"business, interruption of business, financial loss, legal fees and penalties "
-"resulting from a court \n"
-"judgment, or any other consequential loss) arising out of the use or "
-"inability to use the Software \n"
-"Products, even if MandrakeSoft S.A. has been advised of the possibility or "
-"occurance of such \n"
-"damages.\n"
-"\n"
-"LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN SOME "
-"COUNTRIES\n"
-"\n"
-"To the extent permitted by law, MandrakeSoft S.A. or its distributors will, "
-"in no circumstances, be \n"
-"liable for any special, incidental, direct or indirect damages whatsoever "
-"(including without \n"
-"limitation damages for loss of business, interruption of business, financial "
-"loss, legal fees \n"
-"and penalties resulting from a court judgment, or any other consequential "
-"loss) arising out \n"
-"of the possession and use of software components or arising out of "
-"downloading software components \n"
-"from one of Mandrake Linux sites which are prohibited or restricted in some "
-"countries by local laws.\n"
-"This limited liability applies to, but is not restricted to, the strong "
-"cryptography components \n"
-"included in the Software Products.\n"
-"\n"
-"\n"
-"3. The GPL License and Related Licenses\n"
-"\n"
-"The Software Products consist of components created by different persons or "
-"entities. Most \n"
-"of these components are governed under the terms and conditions of the GNU "
-"General Public \n"
-"Licence, hereafter called \"GPL\", or of similar licenses. Most of these "
-"licenses allow you to use, \n"
-"duplicate, adapt or redistribute the components which they cover. Please "
-"read carefully the terms \n"
-"and conditions of the license agreement for each component before using any "
-"component. Any question \n"
-"on a component license should be addressed to the component author and not "
-"to MandrakeSoft.\n"
-"The programs developed by MandrakeSoft S.A. are governed by the GPL License. "
-"Documentation written \n"
-"by MandrakeSoft S.A. is governed by a specific license. Please refer to the "
-"documentation for \n"
-"further details.\n"
-"\n"
-"\n"
-"4. Intellectual Property Rights\n"
-"\n"
-"All rights to the components of the Software Products belong to their "
-"respective authors and are \n"
-"protected by intellectual property and copyright laws applicable to software "
-"programs.\n"
-"MandrakeSoft S.A. reserves its rights to modify or adapt the Software "
-"Products, as a whole or in \n"
-"parts, by all means and for all purposes.\n"
-"\"Mandrake\", \"Mandrake Linux\" and associated logos are trademarks of "
-"MandrakeSoft S.A. \n"
-"\n"
-"\n"
-"5. Governing Laws \n"
-"\n"
-"If any portion of this agreement is held void, illegal or inapplicable by a "
-"court judgment, this \n"
-"portion is excluded from this contract. You remain bound by the other "
-"applicable sections of the \n"
-"agreement.\n"
-"The terms and conditions of this License are governed by the Laws of "
-"France.\n"
-"All disputes on the terms of this license will preferably be settled out of "
-"court. As a last \n"
-"resort, the dispute will be referred to the appropriate Courts of Law of "
-"Paris - France.\n"
-"For any question on this document, please contact MandrakeSoft S.A. \n"
-msgstr ""
-"Introduktion\n"
-"\n"
-"Operativsystemet og de forskellige komponenter tilgęngelige i Mandrake Linux "
-"distributionen vil herefter blive kaldt \"programmelprodukter\". "
-"Programmelprodukterne inkluderer, men er ikke begręnset til: vęrktųjssęttet, "
-"metoder, regler og dokumentation.\n"
-"\n"
-"\n"
-"1. Licensaftale\n"
-"\n"
-"Lęs venligst dette dokument. Dette dokument er en licensaftale mellem dig "
-"og MandrakeSoft S.A., som gęlder til disse programmelprodukter. Ved at "
-"installere, kopiere eller bruge disse programmelprodukter accepterer du "
-"indirekte og fuldt ud denne licensaftale med dens betingelser og regler. "
-"Hvis du er uenig i nogensomhelst del af denne licens, mister du retten til "
-"at installere, kopiere eller bruge disse programmelprodukter. Hvilket som "
-"helst forsųg på at installere, kopiere eller bruge disse programmelprodukter "
-"på en måde som ikke er i overensstemmelse med betingelserne og reglerne i "
-"denne licens er ulovlig og vil betyde at du mister dine rettighedder under "
-"denne licens. Hvis dette sker, skal du med det samme ųdelęgge alle kopier "
-"af disse programmelprodukter.\n"
-"\n"
-"\n"
-"2. Begręnset garanti\n"
-"\n"
-"Disse programmelprodukter og dokumenter leveres \"som de er\", uden nogen "
-"form for garanti efter som hvad lov foreskriver. MandrakeSoft S.A. vil "
-"under ingen omstęndigheder undtagen hvad lov foreskriver vęre ansvarlig for "
-"specielle, tilfęldige, direkte eller indirekte tab af nogen art "
-"(inkluderende uden begręnsninger, skader ved tab af forretning, "
-"forstyrrelser af forretning, finansielle tab, advokatbistand, erstatninger "
-"som resultat af en retssag eller nogen anden form for tab) opstået under "
-"brugen af disse programmelprodukter eller mangel på samme, selv hvis "
-"MandrakeSoft S.A. er blevet gjort opmęrksom på mulighed for sådanne "
-"skader.\n"
-"\n"
-"BEGRĘNSET GARANTI MED HENSYN TIL REGLER OM BRUG AF FORBUDT PROGRAMMEL I "
-"VISSE LANDE\n"
-"\n"
-"Udover hvad lov foreskriver vil MandrakeSoft S.A. eller deres distributųrer "
-"under ingen omstęndigheder vęre ansvarlig for tilfęldige, direkte eller "
-"indirekte tab af nogen art (inkluderende uden begręnsninger skader ved tab "
-"af forretning, forstyrrelser af forretning, finansielle tab, "
-"advokatbistand, erstatninger som resultat af en retssag eller nogen anden "
-"form for tab) opstået under hentning eller brugen af dette programmel fra "
-"Mandrake Linux websider som er forbudt i visse lande ved lov. Denne "
-"begręnsede garanti gęlder, men er ikke begręnset til, de stęrke "
-"krypteringskomponenter inkluderet i disse programmelprodukter.\n"
-"\n"
-"\n"
-"3. GPL-licensen og relaterede licenser. \n"
-"\n"
-"Dette programmel består af komponenter lavet af forskellige personer. De "
-"fleste af disse komponenter bliver reguleret efter vilkårene og aftalerne i "
-"GNU General Public License, herefter kaldet \"GPL\", eller lignende "
-"licenser. De fleste af disse licenser tillader dig at bruge, kopiere, "
-"tilpasse eller redistribuere komponenterne, de dękker. Lęs venligst "
-"vilkårene og aftalerne i licensaftalen for hver komponent fųr du bruger det. "
-"Spųrgsmål angående en komponent bedes adresseret til komponentens forfatter "
-"og ikke til MandrakeSoft. Programmerne udviklet af MandrakeSoft S.A. bliver "
-"reguleret efter GPL-licensen. Dokumentationen skrevet af MandrakeSoft S.A. "
-"bliver reguleret efter en specifik licens. Referér venligst til "
-"dokumentationen for yderligere detaljer.\n"
-"\n"
-"\n"
-"4. Intellektuelle rettigheder \n"
-"\n"
-"Alle rettigheder til komponenterne i programmelproduktet tilhųrer deres "
-"respektive forfattere, og er beskyttet af intellektuelle rettigheds- og "
-"ophavsretslove, gęldende for programmel. MandrakeSoft S.A. forbeholder sine "
-"rettigheder til at ęndre eller tilpasse programmelprodukterne, helt eller "
-"delvist, med alle midler og til alle formål. \"Mandrake\", \"Mandrake Linux"
-"\" samt de tilhųrende logoer er varemęrker for MandrakeSoft S.A. \n"
-"\n"
-"\n"
-"5. Gęldende love \n"
-"\n"
-"Hvis dele af denne aftale bliver kendt ugyldig, ulovlig eller ubrugelig ved "
-"en domstolsafgųrelse, vil disse dele blive ekskluderet fra denne kontrakt. "
-"Du vil forblive bundet af de andre gęldende dele af aftalen. Vilkårene og "
-"aftalerne i denne licens er reguleret under fransk lov. Alle uenigheder "
-"vedrųrende vilkårene i denne licens vil fortrinsvist blive lųst udenfor "
-"domstolene. Som en sidste udvej vil uenighederne blive håndteret ved den "
-"rette domstol i Paris, Frankrig. Ved spųrgsmål omkring dette dokument, "
-"kontakt venligst MandrakeSoft S.A. \n"
-
-#: ../../install_steps_interactive.pm_.c:205
-#: ../../install_steps_interactive.pm_.c:1045
-#: ../../standalone/keyboarddrake_.c:28
-msgid "Keyboard"
-msgstr "Tastatur"
-
-#: ../../install_steps_interactive.pm_.c:206
-msgid "Please choose your keyboard layout."
-msgstr "Vęlg dit tastaturlayout."
-
-#: ../../install_steps_interactive.pm_.c:207
-msgid "Here is the full list of keyboards available"
-msgstr "Her er den komplette liste over tilgęngelige tastaturer"
-
-#: ../../install_steps_interactive.pm_.c:224
-msgid "Which installation class do you want?"
-msgstr "Hvilken installations-klasse ųnsker du?"
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Install/Update"
-msgstr "Installér/Opdatér"
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Is this an install or an update?"
-msgstr "Er dette en nyinstallation eller en opdatering?"
-
-#: ../../install_steps_interactive.pm_.c:235
-msgid "Recommended"
-msgstr "Anbefalet"
-
-#: ../../install_steps_interactive.pm_.c:238
-#: ../../install_steps_interactive.pm_.c:241
-msgid "Expert"
-msgstr "Ekspert"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Upgrade"
-msgstr "Opgradering"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Upgrade packages only"
-msgstr "Opgradér kun pakker"
-
-#: ../../install_steps_interactive.pm_.c:266
-msgid "Please choose the type of your mouse."
-msgstr "Vęlg muse-type."
-
-#: ../../install_steps_interactive.pm_.c:272 ../../standalone/mousedrake_.c:65
-msgid "Mouse Port"
-msgstr "Muse-port"
-
-#: ../../install_steps_interactive.pm_.c:273 ../../standalone/mousedrake_.c:66
-msgid "Please choose on which serial port your mouse is connected to."
-msgstr "Vęlg hvilken seriel port din mus er forbundet til."
-
-#: ../../install_steps_interactive.pm_.c:281
-msgid "Buttons emulation"
-msgstr "Emulering af knapper"
-
-#: ../../install_steps_interactive.pm_.c:283
-msgid "Button 2 Emulation"
-msgstr "Emulering af knap 2"
-
-#: ../../install_steps_interactive.pm_.c:284
-msgid "Button 3 Emulation"
-msgstr "Emulering af knap 3"
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "Configuring PCMCIA cards..."
-msgstr "Konfigurerer PCMCIA kort..."
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "PCMCIA"
-msgstr "PCMCIA"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "Configuring IDE"
-msgstr "Konfigurerer IDE"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "IDE"
-msgstr "IDE"
-
-#: ../../install_steps_interactive.pm_.c:327
-msgid "no available partitions"
-msgstr "ingen ledige partitioner"
-
-#: ../../install_steps_interactive.pm_.c:330
-msgid "Scanning partitions to find mount points"
-msgstr "Skanner partitioner for at finde monteringspunkter"
-
-#: ../../install_steps_interactive.pm_.c:338
-msgid "Choose the mount points"
-msgstr "Vęlg monterings-stierne"
-
-#: ../../install_steps_interactive.pm_.c:357
-#, c-format
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I can try to go on blanking bad partitions (ALL DATA will be lost!).\n"
-"The other solution is to disallow DrakX to modify the partition table.\n"
-"(the error is %s)\n"
-"\n"
-"Do you agree to loose all the partitions?\n"
-msgstr ""
-"Jeg kan ikke lęse din partitionstabel, den er for ųdelagt for mig :( Jeg kan "
-"forsųge fortsat at udblanke dårlige partitioner, ALLE DATA vil gå tabt. Den "
-"anden mulighed er at forbyde DrakX at ęndre partitionstabellen. (fejlen er %"
-"s)\n"
-"\n"
-"Er du indforstået med at ųdelęgge alle partitionerne?\n"
-
-#: ../../install_steps_interactive.pm_.c:370
-msgid ""
-"DiskDrake failed to read correctly the partition table.\n"
-"Continue at your own risk!"
-msgstr ""
-"DiskDrake kunne ikke lęse partitionstabellen korrekt. Fortsęt på eget ansvar!"
-
-#: ../../install_steps_interactive.pm_.c:386
-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"
-
-#: ../../install_steps_interactive.pm_.c:395
-msgid "No root partition found to perform an upgrade"
-msgstr "Ingen rodpartition fundet til opgradering"
-
-#: ../../install_steps_interactive.pm_.c:396
-msgid "Root Partition"
-msgstr "Rod-partition"
-
-#: ../../install_steps_interactive.pm_.c:397
-msgid "What is the root partition (/) of your system?"
-msgstr "Hvilken partition indeholder systemets rod-partition (/)?"
-
-#: ../../install_steps_interactive.pm_.c:411
-msgid "You need to reboot for the partition table modifications to take place"
-msgstr "Du skal genstarte for at aktivere ęndringerne i partitionstabellen"
-
-#: ../../install_steps_interactive.pm_.c:435
-msgid "Choose the partitions you want to format"
-msgstr "Vęlg partitioner der skal formateres"
-
-#: ../../install_steps_interactive.pm_.c:436
-msgid "Check bad blocks?"
-msgstr "Led efter beskadigede blokke?"
-
-#: ../../install_steps_interactive.pm_.c:462
-msgid "Formatting partitions"
-msgstr "Formaterer partitioner"
-
-#: ../../install_steps_interactive.pm_.c:464
-#, c-format
-msgid "Creating and formatting file %s"
-msgstr "Opretter og formaterer fil %s"
-
-#: ../../install_steps_interactive.pm_.c:467
-msgid "Not enough swap to fulfill installation, please add some"
-msgstr "Ikke nok swap-plads til at gennemfųre installationen, tilfųj mere"
-
-#: ../../install_steps_interactive.pm_.c:473
-msgid "Looking for available packages"
-msgstr "Leder efter tilgęngelige pakker"
-
-#: ../../install_steps_interactive.pm_.c:479
-msgid "Finding packages to upgrade"
-msgstr "Leder efter pakker som skal opgraderes"
-
-#: ../../install_steps_interactive.pm_.c:496
-#, c-format
-msgid ""
-"Your system has not enough space left for installation or upgrade (%d > %d)"
-msgstr ""
-"Dit system har ikke nok plads tilbage til en installation eller opgradering "
-"(%d > %d)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Complete (%dMB)"
-msgstr "Alting (%dMb)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Minimum (%dMB)"
-msgstr "Minimum (%d Mb)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Recommended (%dMB)"
-msgstr "Anbefalet (%d Mb)"
-
-#: ../../install_steps_interactive.pm_.c:568
-msgid ""
-"Please choose load or save package selection on floppy.\n"
-"The format is the same as auto_install generated floppies."
-msgstr ""
-"Vęlg indlęs eller gem pakkevalg på diskette.\n"
-"Formatet er det samme som for auto_install-genererede disketter."
-
-#: ../../install_steps_interactive.pm_.c:571
-msgid "Load from floppy"
-msgstr "Indlęs fra diskette"
-
-#: ../../install_steps_interactive.pm_.c:573
-msgid "Loading from floppy"
-msgstr "Indlęser fra diskette"
-
-#: ../../install_steps_interactive.pm_.c:573
-msgid "Package selection"
-msgstr "Valg af pakker"
-
-#: ../../install_steps_interactive.pm_.c:578
-msgid "Insert a floppy containing package selection"
-msgstr "Indsęt en diskette med pakkevalget"
-
-#: ../../install_steps_interactive.pm_.c:590
-msgid "Save on floppy"
-msgstr "Gem på diskette"
-
-#: ../../install_steps_interactive.pm_.c:658
-msgid "Selected size is larger than available space"
-msgstr "Valgt stųrrelse er stųrre end tilgęngelig plads"
-
-#: ../../install_steps_interactive.pm_.c:671
-msgid "Type of install"
-msgstr "Installationstype"
-
-#: ../../install_steps_interactive.pm_.c:672
-msgid ""
-"You haven't 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"
-
-#: ../../install_steps_interactive.pm_.c:675
-msgid "With X"
-msgstr "Med X"
-
-#: ../../install_steps_interactive.pm_.c:677
-msgid "With basic documentation (recommended!)"
-msgstr "Med basal dokumentation (anbefalet!)"
-
-#: ../../install_steps_interactive.pm_.c:678
-msgid "Truly minimal install (especially no urpmi)"
-msgstr "Virkelig minimal installation (specielt ingen urpmi)"
-
-#: ../../install_steps_interactive.pm_.c:762
-msgid ""
-"If you have all the CDs in the list below, click Ok.\n"
-"If you have none of those CDs, click Cancel.\n"
-"If only some CDs are missing, unselect them, then click Ok."
-msgstr ""
-"Hvis du har alle cd'erne i listen nedenunder, klik Ok.\n"
-"Hvis du ikke har nogen af disse cd'er, klik Annullér.\n"
-"Hvis kun nogen cd'er mangler, fravęlg dem, og klik så Ok."
-
-#: ../../install_steps_interactive.pm_.c:767
-#, c-format
-msgid "Cd-Rom labeled \"%s\""
-msgstr "Cdrom med etikette '%s'"
-
-#: ../../install_steps_interactive.pm_.c:787
-msgid "Preparing installation"
-msgstr "Forbereder installationen"
-
-#: ../../install_steps_interactive.pm_.c:796
-#, c-format
-msgid ""
-"Installing package %s\n"
-"%d%%"
-msgstr ""
-"Installerer pakke %s\n"
-"%d%%"
-
-#: ../../install_steps_interactive.pm_.c:842
-msgid "Post-install configuration"
-msgstr "Konfiguration efter installation"
-
-#: ../../install_steps_interactive.pm_.c:848
-#, c-format
-msgid "Please insert the Boot floppy used in drive %s"
-msgstr "Indsęt opstartsdisketten i diskette-drevet %s"
-
-#: ../../install_steps_interactive.pm_.c:854
-#, c-format
-msgid "Please insert the Update Modules floppy in drive %s"
-msgstr "Indsęt Opdater moduler-disketten i drev %s"
-
-#: ../../install_steps_interactive.pm_.c:874
-msgid ""
-"You have now the possibility to download software aimed for encryption.\n"
-"\n"
-"WARNING:\n"
-"\n"
-"Due to different general requirements applicable to these software and "
-"imposed\n"
-"by various jurisdictions, customer and/or end user of theses software "
-"should\n"
-"ensure that the laws of his/their jurisdiction allow him/them to download, "
-"stock\n"
-"and/or use these software.\n"
-"\n"
-"In addition customer and/or end user shall particularly be aware to not "
-"infringe\n"
-"the laws of his/their jurisdiction. Should customer and/or end user not\n"
-"respect the provision of these applicable laws, he/they will incure serious\n"
-"sanctions.\n"
-"\n"
-"In no event shall Mandrakesoft nor its manufacturers and/or suppliers be "
-"liable\n"
-"for special, indirect or incidental damages whatsoever (including, but not\n"
-"limited to loss of profits, business interruption, loss of commercial data "
-"and\n"
-"other pecuniary losses, and eventual liabilities and indemnification to be "
-"paid\n"
-"pursuant to a court decision) arising out of use, possession, or the sole\n"
-"downloading of these software, to which customer and/or end user could\n"
-"eventually have access after having sign up the present agreement.\n"
-"\n"
-"\n"
-"For any queries relating to these agreement, please contact \n"
-"Mandrakesoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA"
-msgstr ""
-"Du har nu mulighed for at nedlęse programmel, der bruger kryptering.\n"
-"\n"
-"ADVARSEL:\n"
-"\n"
-"Grundet forskellige krav til programmel der bruger kryptering, og påtvunget "
-"af forskellige lokale lovområder, bųr kunder og/eller slutbrugere af dette "
-"programmel sikre sig at lokale love fra dit/jeres lokalområde tillader dig/"
-"jer at nedlęse, gemme og/eller bruge dette programmel.\n"
-"\n"
-"Derudover skal kunder og/eller slutbrugere vęre opmęrksomme på ikke at bryde "
-"lokale love fra dit/jeres lokalområde. Skulle en kunde og/eller slutbruger "
-"ikke respektere det lokale områdes love, vil han/de blive udsat for seriųse "
-"sanktioner.\n"
-"\n"
-"Under ingen omstęndigheder kan Mandrakesoft eller deres producenter og/eller "
-"leverandųrer holdes ansvarlig for speciel, indirekte eller tilfęldig skade "
-"(inkluderet, men ikke begręnset til tab af overskud, forretningsafbrydelser, "
-"tab af kommercielle data og andre pekunięre tab, eventuelle risici og "
-"erstatninger der skal betales i overensstemmelse med retlig beslutning) som "
-"fųlge af brug, besiddelse eller nedlęsning af dette programmel, som kunder "
-"og/eller slutbrugere kunne få adgang til efter at have accepteret denne "
-"aftale.\n"
-"\n"
-"\n"
-"For spųrgsmål om denne aftale, vęr venlig at kontakte \n"
-"Mandrakesoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA"
-
-#: ../../install_steps_interactive.pm_.c:912
-msgid ""
-"You have now the possibility to download updated packages that have\n"
-"been released after the distribution has been made available.\n"
-"\n"
-"You will get security fixes or bug fixes, but you need to have an\n"
-"Internet connection configured to proceed.\n"
-"\n"
-"Do you want to install the updates ?"
-msgstr ""
-"Du har nu mulighed for at hente opdaterede pakker som er blevet udgivet\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"
-"\n"
-"Ųnsker du at installere opdateringerne?"
-
-#: ../../install_steps_interactive.pm_.c:926
-msgid "Contacting Mandrake Linux web site to get the list of available mirrors"
-msgstr ""
-"Kontakter Mandrake Linux netsted for at hente listen over tilgęngelige spejle"
-
-#: ../../install_steps_interactive.pm_.c:931
-msgid "Choose a mirror from which to get the packages"
-msgstr "Vęlg det spejl hvorfra pakkerne skal hentes"
-
-#: ../../install_steps_interactive.pm_.c:940
-msgid "Contacting the mirror to get the list of available packages"
-msgstr "Kontakter spejlet for at hente listen af tilgęngelige pakker"
-
-#: ../../install_steps_interactive.pm_.c:967
-msgid "Which is your timezone?"
-msgstr "Hvad er din tidszone?"
-
-#: ../../install_steps_interactive.pm_.c:972
-msgid "Hardware clock set to GMT"
-msgstr "Maskin-ur sat til GMT"
-
-#: ../../install_steps_interactive.pm_.c:973
-msgid "Automatic time synchronization (using NTP)"
-msgstr "Automatisk tidssynkronisering (ved hjęlp af NTP)"
-
-#: ../../install_steps_interactive.pm_.c:980
-msgid "NTP Server"
-msgstr "NTP-server"
-
-#: ../../install_steps_interactive.pm_.c:1014
-#: ../../install_steps_interactive.pm_.c:1022
-msgid "Remote CUPS server"
-msgstr "Ekstern CUPS server"
-
-#: ../../install_steps_interactive.pm_.c:1015
-msgid "No printer"
-msgstr "Ingen printer"
-
-#: ../../install_steps_interactive.pm_.c:1032
-msgid "Do you have an ISA sound card?"
-msgstr "Har du et ISA-lydkort?"
-
-#: ../../install_steps_interactive.pm_.c:1034
-msgid "Run \"sndconfig\" after installation to configure your sound card"
-msgstr "Kųr \"sndconfig\" efter installation for at konfigurere dit lydkort"
-
-#: ../../install_steps_interactive.pm_.c:1036
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr "Intet lydkort genkendt. Prųv at kųre \"harddrake\" efter installation"
-
-#: ../../install_steps_interactive.pm_.c:1041 ../../steps.pm_.c:27
-msgid "Summary"
-msgstr "Oversigt"
-
-#: ../../install_steps_interactive.pm_.c:1044
-msgid "Mouse"
-msgstr "Mus"
-
-#: ../../install_steps_interactive.pm_.c:1046
-msgid "Timezone"
-msgstr "Tidszone"
-
-#: ../../install_steps_interactive.pm_.c:1047 ../../printerdrake.pm_.c:2276
-#: ../../printerdrake.pm_.c:2354
-msgid "Printer"
-msgstr "Printer"
-
-#: ../../install_steps_interactive.pm_.c:1049
-msgid "ISDN card"
-msgstr "Internt ISDN-kort"
-
-#: ../../install_steps_interactive.pm_.c:1052
-#: ../../install_steps_interactive.pm_.c:1054
-msgid "Sound card"
-msgstr "Lydkort"
-
-#: ../../install_steps_interactive.pm_.c:1056
-msgid "TV card"
-msgstr "TV-kort"
-
-#: ../../install_steps_interactive.pm_.c:1094
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1122
-msgid "LDAP"
-msgstr "LDAP"
-
-#: ../../install_steps_interactive.pm_.c:1095
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1131
-msgid "NIS"
-msgstr "NIS"
-
-#: ../../install_steps_interactive.pm_.c:1096
-#: ../../install_steps_interactive.pm_.c:1118
-msgid "Local files"
-msgstr "Lokale filer"
-
-#: ../../install_steps_interactive.pm_.c:1105
-#: ../../install_steps_interactive.pm_.c:1106 ../../steps.pm_.c:24
-msgid "Set root password"
-msgstr "Sęt root-adgangskode"
-
-#: ../../install_steps_interactive.pm_.c:1107
-msgid "No password"
-msgstr "Ingen adgangskode"
-
-#: ../../install_steps_interactive.pm_.c:1112
-#, c-format
-msgid "This password is too simple (must be at least %d characters long)"
-msgstr "Dette kodeord er for nemt at gętte (det skal mindst vęre på %d tegn)"
-
-#: ../../install_steps_interactive.pm_.c:1118 ../../network/modem.pm_.c:49
-#: ../../standalone/draknet_.c:626 ../../standalone/logdrake_.c:172
-msgid "Authentication"
-msgstr "Identifikation"
-
-#: ../../install_steps_interactive.pm_.c:1126
-msgid "Authentication LDAP"
-msgstr "Autentificering LDAP"
-
-#: ../../install_steps_interactive.pm_.c:1127
-msgid "LDAP Base dn"
-msgstr "LDAP grundlęggende dn"
-
-#: ../../install_steps_interactive.pm_.c:1128
-msgid "LDAP Server"
-msgstr "LDAP-server"
-
-#: ../../install_steps_interactive.pm_.c:1134
-msgid "Authentication NIS"
-msgstr "Autentificering NIS"
-
-#: ../../install_steps_interactive.pm_.c:1135
-msgid "NIS Domain"
-msgstr "NIS-domęne"
-
-#: ../../install_steps_interactive.pm_.c:1136
-msgid "NIS Server"
-msgstr "NIS-server"
-
-#: ../../install_steps_interactive.pm_.c:1171
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"SILO on your system, or another operating system removes SILO, or SILO "
-"doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures.\n"
-"\n"
-"If you want to create a bootdisk for your system, insert a floppy in the "
-"first\n"
-"drive and press \"Ok\"."
-msgstr ""
-"En tilpasset opstartsdiskette lader dig starte Linux systemet op uden at "
-"vęre afhęngig af den normale opstarter. Det kan vęre nyttigt, hvis du ikke "
-"vil installere SILO på dit system - eller hvis et andet operativsystem "
-"fjerner SILO, eller hvis SILO ikke virker med dit maskinel. En tilpasset "
-"opstartsdiskette kan også bruges sammen med Mandrakes `rescue image', "
-"hvilket gųr det meget nemmere at reparere systemet i tilfęlde af "
-"systemnedbrud.\n"
-"\n"
-"Hvis du ųnsker at lave en opstartsdiskette til dit system, indsęt en "
-"diskette i dit fųrste diskettedrev og tryk 'Ok'."
-
-#: ../../install_steps_interactive.pm_.c:1187
-msgid "First floppy drive"
-msgstr "Fųrste diskette-drev"
-
-#: ../../install_steps_interactive.pm_.c:1188
-msgid "Second floppy drive"
-msgstr "Andet diskette-drev"
-
-#: ../../install_steps_interactive.pm_.c:1189 ../../printerdrake.pm_.c:1848
-msgid "Skip"
-msgstr "Spring over"
-
-#: ../../install_steps_interactive.pm_.c:1194
-#, c-format
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"LILO (or grub) on your system, or another operating system removes LILO, or "
-"LILO doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures. Would you like to create a bootdisk for your system?\n"
-"%s"
-msgstr ""
-"En tilpasset opstartsdiskette lader dig opstarte Linux systemet uden at vęre "
-"afhęngig af den normale opstarter. Det kan vęre nyttigt, hvis du ikke vil "
-"installere LILO (eller grub) på dit system - eller hvis et andet "
-"operativsystem fjerner LILO, eller hvis LILO ikke virker med din hardware. "
-"En tilpasset opstartsdiskette kan også bruges sammen med Mandrakes `rescue "
-"image', hvilket gųr det meget nemmere at reparere systemet i tilfęlde af "
-"systemnedbrud. \n"
-"Vil du lave en opstartsdiskette til dit system?\n"
-"%s"
-
-#: ../../install_steps_interactive.pm_.c:1200
-msgid ""
-"\n"
-"\n"
-"(WARNING! You're using XFS for your root partition,\n"
-"creating a bootdisk on a 1.44 Mb floppy will probably fail,\n"
-"because XFS needs a very large driver)."
-msgstr ""
-"\n"
-"\n"
-"(ADVARSEL! Du bruger XFS til din root-partition,\n"
-"oprettelse af en opstartsdiskette på en 1.44 Mb diskette vil formentlig\n"
-"mislykkes, fordi XFS kręver en meget stor driver)."
-
-#: ../../install_steps_interactive.pm_.c:1208
-msgid "Sorry, no floppy drive available"
-msgstr "Der er desvęrre ikke noget tilgęngeligt diskette-drev"
-
-#: ../../install_steps_interactive.pm_.c:1212
-msgid "Choose the floppy drive you want to use to make the bootdisk"
-msgstr "Vęlg det diskette-drev, du vil benytte til at lave boot-disketten"
-
-#: ../../install_steps_interactive.pm_.c:1216
-#, c-format
-msgid "Insert a floppy in %s"
-msgstr "Indsęt en diskette i %s"
-
-#: ../../install_steps_interactive.pm_.c:1219
-msgid "Creating bootdisk"
-msgstr "Oprette opstartsdiskette"
-
-#: ../../install_steps_interactive.pm_.c:1226
-msgid "Preparing bootloader"
-msgstr "Forbereder opstarter"
-
-#: ../../install_steps_interactive.pm_.c:1237
-msgid ""
-"You appear to have an OldWorld or Unknown\n"
-" machine, the yaboot bootloader will not work for you.\n"
-"The install will continue, but you'll\n"
-" need to use BootX to boot your machine"
-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 for at starte din maskine."
-
-#: ../../install_steps_interactive.pm_.c:1243
-msgid "Do you want to use aboot?"
-msgstr "Ųnsker du at bruge aboot?"
-
-#: ../../install_steps_interactive.pm_.c:1246
-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?"
-
-#: ../../install_steps_interactive.pm_.c:1253
-msgid "Installing bootloader"
-msgstr "Installerer systemopstarter"
-
-#: ../../install_steps_interactive.pm_.c:1259
-msgid "Installation of bootloader failed. The following error occured:"
-msgstr "Installation af opstarter mislykkedes. Den fųlgende fejl opstod:"
-
-#: ../../install_steps_interactive.pm_.c:1267
-#, c-format
-msgid ""
-"You may need to change your Open Firmware boot-device to\n"
-" enable the bootloader. If you don't 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\n"
-"At your next boot you should see the bootloader prompt."
-msgstr ""
-"Du behųver måske at ęndre din Åben Firmware opstartsenhed for at slå "
-"systemstarteren til. Hvis du ikke ser systemstarter-beskeden ved genstart, "
-"så hold Command-Option-O-F nede og indtast:\n"
-" setenv boot-device %s,\\\\:tbxi\n"
-" Skriv så: shut-down\n"
-"Ved nęste opstart burde du se systemstarteren."
-
-#: ../../install_steps_interactive.pm_.c:1311
-#: ../../standalone/drakautoinst_.c:81
-#, c-format
-msgid "Insert a blank floppy in drive %s"
-msgstr "Indsęt en tom diskette i drev %s"
-
-#: ../../install_steps_interactive.pm_.c:1315
-#: ../../standalone/drakautoinst_.c:83
-msgid "Creating auto install floppy"
-msgstr "Laver autoinstallations-diskette"
-
-#: ../../install_steps_interactive.pm_.c:1326
-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"
-"\n"
-"Er du sikker på du ųnsker du at lukke nu?"
-
-#: ../../install_steps_interactive.pm_.c:1337
-msgid ""
-"Congratulations, installation is complete.\n"
-"Remove the boot media and press return to reboot.\n"
-"\n"
-"\n"
-"For information on fixes which are available for this release of Mandrake "
-"Linux,\n"
-"consult the Errata available from:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/82errata.php3\n"
-"\n"
-"\n"
-"Information on configuring your system is available in the post\n"
-"install chapter of the Official Mandrake Linux User's Guide."
-msgstr ""
-"Tillykke, installationen er fęrdig.\n"
-"Fjern boot-mediet og tryk retur for at genstarte.\n"
-"\n"
-"\n"
-"For information om rettelser til denne udgivelse af Mandrake Linux, se "
-"Errata på:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/82errata.php3\n"
-"\n"
-"\n"
-"Information om konfigurering af dit system kan du finde i kapitlet om efter-"
-"installation i den Officielle Mandrake Linux Brugervejledning."
-
-#: ../../install_steps_interactive.pm_.c:1354
-msgid "Generate auto install floppy"
-msgstr "Laver autoinstallations-diskette"
-
-#: ../../install_steps_interactive.pm_.c:1356
-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"
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Automated"
-msgstr "Automatisk"
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Replay"
-msgstr "Afspil igen"
-
-#: ../../install_steps_interactive.pm_.c:1364
-msgid "Save packages selection"
-msgstr "Gem pakke-valg"
-
-#: ../../install_steps_newt.pm_.c:22
-#, c-format
-msgid "Mandrake Linux Installation %s"
-msgstr "Mandrake Linux Installation %s"
-
-#: ../../install_steps_newt.pm_.c:34
-msgid ""
-" <Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen "
-msgstr ""
-" <Tab>/<Alt-Tab> mellem elementer | <Space> vęlger | <F12> nęste skęrm "
-
-#: ../../interactive.pm_.c:87
-msgid "kdesu missing"
-msgstr "kdesu mangler"
-
-#: ../../interactive.pm_.c:89 ../../interactive.pm_.c:100
-msgid "consolehelper missing"
-msgstr "konsolhjęlper mangler"
-
-#: ../../interactive.pm_.c:152
-msgid "Choose a file"
-msgstr "Vęlg en fil"
-
-#: ../../interactive.pm_.c:314
-msgid "Advanced"
-msgstr "Avanceret"
-
-#: ../../interactive.pm_.c:315
-msgid "Basic"
-msgstr "Basal"
-
-#: ../../interactive.pm_.c:386
-msgid "Please wait"
-msgstr "Vent venligst"
-
-#: ../../interactive_gtk.pm_.c:605 ../../services.pm_.c:222
-msgid "Info"
-msgstr "Info"
-
-#: ../../interactive_gtk.pm_.c:715
-msgid "Expand Tree"
-msgstr "Udvid trę"
-
-#: ../../interactive_gtk.pm_.c:716
-msgid "Collapse Tree"
-msgstr "Sammenfold trę"
-
-#: ../../interactive_gtk.pm_.c:717
-msgid "Toggle between flat and group sorted"
-msgstr "Skift mellem flad og gruppesorteret"
-
-#: ../../interactive_stdio.pm_.c:29 ../../interactive_stdio.pm_.c:147
-msgid "Bad choice, try again\n"
-msgstr "Dårligt valg, prųv igen\n"
-
-#: ../../interactive_stdio.pm_.c:30 ../../interactive_stdio.pm_.c:148
-#, c-format
-msgid "Your choice? (default %s) "
-msgstr "Dit valg? (standard %s) "
-
-#: ../../interactive_stdio.pm_.c:52
-#, c-format
-msgid ""
-"Entries you'll have to fill:\n"
-"%s"
-msgstr ""
-"Indgange som du skal udfylde:\n"
-"%s"
-
-#: ../../interactive_stdio.pm_.c:68
-#, c-format
-msgid "Your choice? (0/1, default `%s') "
-msgstr "Dit valg? (0/1, standard '%s') "
-
-#: ../../interactive_stdio.pm_.c:93
-#, c-format
-msgid "Button `%s': %s"
-msgstr "Knap '%s': %s"
-
-#: ../../interactive_stdio.pm_.c:94
-msgid "Do you want to click on this button? "
-msgstr "Ųnsker du at klikke på denne knap?"
-
-#: ../../interactive_stdio.pm_.c:103
-#, c-format
-msgid "Your choice? (default `%s'%s) "
-msgstr "Dit valg? (standard '%s'%s) "
-
-#: ../../interactive_stdio.pm_.c:121
-#, c-format
-msgid "=> There are many things to choose from (%s).\n"
-msgstr "=> Der er mange ting at vęlge imellem (%s).\n"
-
-#: ../../interactive_stdio.pm_.c:124
-msgid ""
-"Please choose the first number of the 10-range you wish to edit,\n"
-"or just hit Enter to proceed.\n"
-"Your choice? "
-msgstr ""
-"Vęlg det fųrste tal i 10-området som du ųnsker at redigere,\n"
-"Eller tryk retur for at fortsętte.\n"
-"Dit valg? "
-
-#: ../../interactive_stdio.pm_.c:137
-#, c-format
-msgid ""
-"=> Notice, a label changed:\n"
-"%s"
-msgstr ""
-"=> Bemęrk, en etikette ęndredes:\n"
-"%s"
-
-#: ../../interactive_stdio.pm_.c:144
-msgid "Re-submit"
-msgstr "Indsend igen"
-
-#: ../../keyboard.pm_.c:174 ../../keyboard.pm_.c:205
-msgid "Czech (QWERTZ)"
-msgstr "Tjekkisk (QWERTZ)"
-
-#: ../../keyboard.pm_.c:175 ../../keyboard.pm_.c:207
-msgid "German"
-msgstr "Tysk"
-
-#: ../../keyboard.pm_.c:176
-msgid "Dvorak"
-msgstr "Dvorak"
-
-#: ../../keyboard.pm_.c:177 ../../keyboard.pm_.c:214
-msgid "Spanish"
-msgstr "Spansk"
-
-#: ../../keyboard.pm_.c:178 ../../keyboard.pm_.c:215
-msgid "Finnish"
-msgstr "Finsk"
-
-#: ../../keyboard.pm_.c:179 ../../keyboard.pm_.c:216
-msgid "French"
-msgstr "Fransk"
-
-#: ../../keyboard.pm_.c:180 ../../keyboard.pm_.c:241
-msgid "Norwegian"
-msgstr "Norsk"
-
-#: ../../keyboard.pm_.c:181
-msgid "Polish"
-msgstr "Polsk"
-
-#: ../../keyboard.pm_.c:182 ../../keyboard.pm_.c:249
-msgid "Russian"
-msgstr "Russisk"
-
-#: ../../keyboard.pm_.c:184 ../../keyboard.pm_.c:251
-msgid "Swedish"
-msgstr "Svensk"
-
-#: ../../keyboard.pm_.c:185 ../../keyboard.pm_.c:266
-msgid "UK keyboard"
-msgstr "Britisk"
-
-#: ../../keyboard.pm_.c:186 ../../keyboard.pm_.c:267
-msgid "US keyboard"
-msgstr "Amerikansk"
-
-#: ../../keyboard.pm_.c:188
-msgid "Albanian"
-msgstr "Albansk"
-
-#: ../../keyboard.pm_.c:189
-msgid "Armenian (old)"
-msgstr "Armensk (gammel)"
-
-#: ../../keyboard.pm_.c:190
-msgid "Armenian (typewriter)"
-msgstr "Armensk (skrivemaskine)"
-
-#: ../../keyboard.pm_.c:191
-msgid "Armenian (phonetic)"
-msgstr "Armensk (fonetisk)"
-
-#: ../../keyboard.pm_.c:196
-msgid "Azerbaidjani (latin)"
-msgstr "Azerbaidiansk (latin)"
-
-#: ../../keyboard.pm_.c:198
-msgid "Belgian"
-msgstr "Belgisk"
-
-#: ../../keyboard.pm_.c:199
-msgid "Bulgarian (phonetic)"
-msgstr "Bulgarsk (fonetisk)"
-
-#: ../../keyboard.pm_.c:200
-msgid "Bulgarian (BDS)"
-msgstr "Bulgarsk (BDS)"
-
-#: ../../keyboard.pm_.c:201
-msgid "Brazilian (ABNT-2)"
-msgstr "Brasiliansk (ABNT-2)"
-
-#: ../../keyboard.pm_.c:202
-msgid "Belarusian"
-msgstr "Hviderussisk"
-
-#: ../../keyboard.pm_.c:203
-msgid "Swiss (German layout)"
-msgstr "Schweizisk (Tysk layout)"
-
-#: ../../keyboard.pm_.c:204
-msgid "Swiss (French layout)"
-msgstr "Schweizisk (Fransk layout)"
-
-#: ../../keyboard.pm_.c:206
-msgid "Czech (QWERTY)"
-msgstr "Tjekkisk (QWERTY)"
-
-#: ../../keyboard.pm_.c:208
-msgid "German (no dead keys)"
-msgstr "Tysk (ingen dųde taster)"
-
-#: ../../keyboard.pm_.c:209
-msgid "Danish"
-msgstr "Dansk"
-
-#: ../../keyboard.pm_.c:210
-msgid "Dvorak (US)"
-msgstr "Dvorak (US)"
-
-#: ../../keyboard.pm_.c:211
-msgid "Dvorak (Norwegian)"
-msgstr "Dvorak (norsk)"
-
-#: ../../keyboard.pm_.c:212
-msgid "Dvorak (Swedish)"
-msgstr "Dvorak (svensk)"
-
-#: ../../keyboard.pm_.c:213
-msgid "Estonian"
-msgstr "Estisk"
-
-#: ../../keyboard.pm_.c:217
-msgid "Georgian (\"Russian\" layout)"
-msgstr "Georgisk (russisk layout)"
-
-#: ../../keyboard.pm_.c:218
-msgid "Georgian (\"Latin\" layout)"
-msgstr "Georgisk (Latin layout)"
-
-#: ../../keyboard.pm_.c:219
-msgid "Greek"
-msgstr "Gręsk"
-
-#: ../../keyboard.pm_.c:220
-msgid "Hungarian"
-msgstr "Ungarsk"
-
-#: ../../keyboard.pm_.c:221
-msgid "Croatian"
-msgstr "Kroatisk"
-
-#: ../../keyboard.pm_.c:222
-msgid "Israeli"
-msgstr "Israelsk"
-
-#: ../../keyboard.pm_.c:223
-msgid "Israeli (Phonetic)"
-msgstr "Israelsk (Fonetisk)"
-
-#: ../../keyboard.pm_.c:224
-msgid "Iranian"
-msgstr "Iransk"
-
-#: ../../keyboard.pm_.c:225
-msgid "Icelandic"
-msgstr "Islandsk"
-
-#: ../../keyboard.pm_.c:226
-msgid "Italian"
-msgstr "Italiensk"
-
-#: ../../keyboard.pm_.c:228
-msgid "Japanese 106 keys"
-msgstr "Japansk 106 taster"
-
-#: ../../keyboard.pm_.c:231
-msgid "Korean keyboard"
-msgstr "Koreansk tastatur"
-
-#: ../../keyboard.pm_.c:232
-msgid "Latin American"
-msgstr "Latinamerikansk"
-
-#: ../../keyboard.pm_.c:233
-msgid "Lithuanian AZERTY (old)"
-msgstr "Litauisk AZERTY (gammel)"
-
-#: ../../keyboard.pm_.c:235
-msgid "Lithuanian AZERTY (new)"
-msgstr "Litauisk AZERTY (ny)"
-
-#: ../../keyboard.pm_.c:236
-msgid "Lithuanian \"number row\" QWERTY"
-msgstr "Litauisk \"talrękke\" QWERTY"
-
-#: ../../keyboard.pm_.c:237
-msgid "Lithuanian \"phonetic\" QWERTY"
-msgstr "Litauisk \"fonetisk\" QWERTY"
-
-#: ../../keyboard.pm_.c:238
-msgid "Latvian"
-msgstr "Lettisk"
-
-#: ../../keyboard.pm_.c:239
-msgid "Macedonian"
-msgstr "Makedonisk"
-
-#: ../../keyboard.pm_.c:240
-msgid "Dutch"
-msgstr "Hollandsk"
-
-#: ../../keyboard.pm_.c:242
-msgid "Polish (qwerty layout)"
-msgstr "Polsk (polsk layout)"
-
-#: ../../keyboard.pm_.c:243
-msgid "Polish (qwertz layout)"
-msgstr "Polsk (polsk layout)"
-
-#: ../../keyboard.pm_.c:244
-msgid "Portuguese"
-msgstr "Portugisisk"
-
-#: ../../keyboard.pm_.c:245
-msgid "Canadian (Quebec)"
-msgstr "Canadisk (Québec)"
-
-#: ../../keyboard.pm_.c:247
-msgid "Romanian (qwertz)"
-msgstr "Russisk (qwertz)"
-
-#: ../../keyboard.pm_.c:248
-msgid "Romanian (qwerty)"
-msgstr "Russisk (qwerty)"
-
-#: ../../keyboard.pm_.c:250
-msgid "Russian (Yawerty)"
-msgstr "Russisk (Yawerty)"
-
-#: ../../keyboard.pm_.c:252
-msgid "Slovenian"
-msgstr "Slovensk"
-
-#: ../../keyboard.pm_.c:253
-msgid "Slovakian (QWERTZ)"
-msgstr "Slovakisk (QWERTZ)"
-
-#: ../../keyboard.pm_.c:254
-msgid "Slovakian (QWERTY)"
-msgstr "Slovakisk (QWERTY)"
-
-#: ../../keyboard.pm_.c:256
-msgid "Serbian (cyrillic)"
-msgstr "Serbisk (kyrillisk)"
-
-#: ../../keyboard.pm_.c:258
-msgid "Tamil"
-msgstr "Tamil"
-
-#: ../../keyboard.pm_.c:259
-msgid "Thai keyboard"
-msgstr "Thailandsk"
-
-#: ../../keyboard.pm_.c:261
-msgid "Tajik keyboard"
-msgstr "Tajik tastatur"
-
-#: ../../keyboard.pm_.c:262
-msgid "Turkish (traditional \"F\" model)"
-msgstr "Tyrkisk (traditionel \"F\" model)"
-
-#: ../../keyboard.pm_.c:263
-msgid "Turkish (modern \"Q\" model)"
-msgstr "Tyrkisk (moderne \"Q\" model)"
-
-#: ../../keyboard.pm_.c:265
-msgid "Ukrainian"
-msgstr "Ukrainsk"
-
-#: ../../keyboard.pm_.c:268
-msgid "US keyboard (international)"
-msgstr "Amerikansk (internaltionalt)"
-
-#: ../../keyboard.pm_.c:269
-msgid "Vietnamese \"numeric row\" QWERTY"
-msgstr "Vietnamesisk \"talrękke\" QWERTY"
-
-#: ../../keyboard.pm_.c:270
-msgid "Yugoslavian (latin)"
-msgstr "Jugoslavisk (latinsk)"
-
-#: ../../keyboard.pm_.c:278
-msgid "Right Alt key"
-msgstr "Hųjre alt-tast"
-
-#: ../../keyboard.pm_.c:279
-msgid "Both Shift keys simultaneously"
-msgstr "Begge taster samtidigt"
-
-#: ../../keyboard.pm_.c:280
-msgid "Control and Shift keys simultaneously"
-msgstr "Kontrol- og skiftetaster samtidigt"
-
-#: ../../keyboard.pm_.c:281
-msgid "CapsLock key"
-msgstr "CapsLock-tast"
-
-#: ../../keyboard.pm_.c:282
-msgid "Ctrl and Alt keys simultaneously"
-msgstr "Ctrl- og alt-taster samtidigt"
-
-#: ../../keyboard.pm_.c:283
-msgid "Alt and Shift keys simultaneously"
-msgstr "Alt og Shift-taster samtidigt"
-
-#: ../../keyboard.pm_.c:284
-msgid "\"Menu\" key"
-msgstr "'Menu'-tast"
-
-#: ../../keyboard.pm_.c:285
-msgid "Left \"Windows\" key"
-msgstr "Venstre Windows-tast"
-
-#: ../../keyboard.pm_.c:286
-msgid "Right \"Windows\" key"
-msgstr "Hųjre Windows-tast"
-
-#: ../../loopback.pm_.c:32
-#, c-format
-msgid "Circular mounts %s\n"
-msgstr "Cirkulęre monteringer %s\n"
-
-#: ../../lvm.pm_.c:88
-msgid "Remove the logical volumes first\n"
-msgstr "Fjern de logiske delarkiver fųrst\n"
-
-#: ../../modules.pm_.c:826
-msgid ""
-"PCMCIA support no longer exist for 2.2 kernels. Please use a 2.4 kernel."
-msgstr ""
-"PCMCIA-understųttelse eksisterer ikke lęngere for 2.2-kerner. Brug en 2.4-"
-"kerne."
-
-#: ../../mouse.pm_.c:25
-msgid "Sun - Mouse"
-msgstr "Sun-mus"
-
-#: ../../mouse.pm_.c:32
-msgid "Logitech MouseMan+"
-msgstr "Logitech MouseMan+"
-
-#: ../../mouse.pm_.c:33
-msgid "Generic PS2 Wheel Mouse"
-msgstr "Standard PS2 mus med hjul"
-
-#: ../../mouse.pm_.c:34
-msgid "GlidePoint"
-msgstr "GlidePoint"
-
-#: ../../mouse.pm_.c:36 ../../mouse.pm_.c:63
-msgid "Kensington Thinking Mouse"
-msgstr "Kensington Thinking-mus"
-
-#: ../../mouse.pm_.c:37 ../../mouse.pm_.c:59
-msgid "Genius NetMouse"
-msgstr "Genius NetMouse"
-
-#: ../../mouse.pm_.c:38
-msgid "Genius NetScroll"
-msgstr "Genius NetScroll"
-
-#: ../../mouse.pm_.c:43 ../../mouse.pm_.c:68
-msgid "1 button"
-msgstr "1 knap"
-
-#: ../../mouse.pm_.c:44 ../../mouse.pm_.c:51
-msgid "Generic 2 Button Mouse"
-msgstr "Standard 2-knaps mus"
-
-#: ../../mouse.pm_.c:45
-msgid "Generic"
-msgstr "Standard"
-
-#: ../../mouse.pm_.c:46
-msgid "Wheel"
-msgstr "Hjul"
-
-#: ../../mouse.pm_.c:49
-msgid "serial"
-msgstr "seriel"
-
-#: ../../mouse.pm_.c:52
-msgid "Generic 3 Button Mouse"
-msgstr "Standard 3-knaps mus"
-
-#: ../../mouse.pm_.c:53
-msgid "Microsoft IntelliMouse"
-msgstr "Microsoft IntelliMouse"
-
-#: ../../mouse.pm_.c:54
-msgid "Logitech MouseMan"
-msgstr "Logitech MouseMan"
-
-#: ../../mouse.pm_.c:55
-msgid "Mouse Systems"
-msgstr "Mouse Systems"
-
-#: ../../mouse.pm_.c:57
-msgid "Logitech CC Series"
-msgstr "Logitech CC Serien (seriel)"
-
-#: ../../mouse.pm_.c:58
-msgid "Logitech MouseMan+/FirstMouse+"
-msgstr "Logitech MouseMan+/FirstMouse+"
-
-#: ../../mouse.pm_.c:60
-msgid "MM Series"
-msgstr "MM Serien"
-
-#: ../../mouse.pm_.c:61
-msgid "MM HitTablet"
-msgstr "MM HitTablet"
-
-#: ../../mouse.pm_.c:62
-msgid "Logitech Mouse (serial, old C7 type)"
-msgstr "Logitech mus (seriel, gammel C7 type)"
-
-#: ../../mouse.pm_.c:66
-msgid "busmouse"
-msgstr "Busmus"
-
-#: ../../mouse.pm_.c:69
-msgid "2 buttons"
-msgstr "2 knapper"
-
-#: ../../mouse.pm_.c:70
-msgid "3 buttons"
-msgstr "3 knapper"
-
-#: ../../mouse.pm_.c:73
-msgid "none"
-msgstr "ingenting"
-
-#: ../../mouse.pm_.c:75
-msgid "No mouse"
-msgstr "Ingen mus"
-
-#: ../../mouse.pm_.c:499
-msgid "Please test the mouse"
-msgstr "Test musen"
-
-#: ../../mouse.pm_.c:500
-msgid "To activate the mouse,"
-msgstr "For at aktivere musen,"
-
-#: ../../mouse.pm_.c:501
-msgid "MOVE YOUR WHEEL!"
-msgstr "FLYT PÅ HJULET!"
-
-#: ../../my_gtk.pm_.c:651
-msgid "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"
-msgstr "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"
-
-#: ../../my_gtk.pm_.c:686
-msgid "Finish"
-msgstr "Afslut"
-
-#: ../../my_gtk.pm_.c:686 ../../printerdrake.pm_.c:1588
-msgid "Next ->"
-msgstr "Nęste ->"
-
-#: ../../my_gtk.pm_.c:687 ../../printerdrake.pm_.c:1586
-msgid "<- Previous"
-msgstr "<- Forrige"
-
-#: ../../my_gtk.pm_.c:1019
-msgid "Is this correct?"
-msgstr "Er dette korrekt?"
-
-#: ../../network/adsl.pm_.c:19 ../../network/ethernet.pm_.c:36
-msgid "Connect to the Internet"
-msgstr "Lav forbindelse til Internettet"
-
-#: ../../network/adsl.pm_.c:20
-msgid ""
-"The most common way to connect with adsl is pppoe.\n"
-"Some connections use pptp, a few ones use dhcp.\n"
-"If you don't know, choose 'use pppoe'"
-msgstr ""
-"Den mest almindelige måde at forbinde med ADSL er pppoe.\n"
-"Nogen forbindelser bruger pptp, og nogle få bruger DHCP.\n"
-"Hvis du ikke ved noget, vęlg 'brug pppoe'"
-
-#: ../../network/adsl.pm_.c:22
-msgid "Alcatel speedtouch usb"
-msgstr "Alcatel speedtouch usb"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use dhcp"
-msgstr "brug dhcp"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pppoe"
-msgstr "brug pppoe"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pptp"
-msgstr "brug pptp"
-
-#: ../../network/ethernet.pm_.c:37
-msgid ""
-"Which dhcp client do you want to use?\n"
-"Default is dhcpcd"
-msgstr ""
-"Hvilken DHCP klient ųnsker du at bruge?\n"
-"Standard er dhcpcd"
-
-#: ../../network/ethernet.pm_.c:88
-msgid ""
-"No ethernet network adapter has been detected on your system.\n"
-"I cannot set up this connection type."
-msgstr ""
-"Der blev ikke fundet nogen ethernet netvęrksadapter på dit system.\n"
-"Kan ikke sętte denne forbindelsetype op."
-
-#: ../../network/ethernet.pm_.c:92 ../../standalone/drakgw_.c:252
-msgid "Choose the network interface"
-msgstr "Vęlg netvęrksgręnsesnit"
-
-#: ../../network/ethernet.pm_.c:93
-msgid ""
-"Please choose which network adapter you want to use to connect to Internet"
-msgstr ""
-"Vęlg hvilken netvęrksadapter du ųnsker at bruge til at lave forbindelse til "
-"Internettet med."
-
-#: ../../network/ethernet.pm_.c:178
-msgid "no network card found"
-msgstr "kunne ikke finde noget netkort"
-
-#: ../../network/ethernet.pm_.c:202 ../../network/network.pm_.c:360
-msgid "Configuring network"
-msgstr "Konfigurerer netvęrk"
-
-#: ../../network/ethernet.pm_.c:203
-msgid ""
-"Please enter your host name if you know it.\n"
-"Some DHCP servers require the hostname to work.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''."
-msgstr ""
-"Indtast dit vęrtsnavn hvis du kender det.\n"
-"Nogle DHCP-servere kręver vęrtsnavnet for at fungere.\n"
-"Dit vęrtsnavn bųr vęre et fuldt kvalificeret vęrtsnavn,\n"
-"fx 'minpc.mitfirma.dk'."
-
-#: ../../network/ethernet.pm_.c:207 ../../network/network.pm_.c:365
-msgid "Host name"
-msgstr "Vęrtsnavn"
-
-#: ../../network/isdn.pm_.c:21 ../../network/isdn.pm_.c:44
-#: ../../network/netconnect.pm_.c:95 ../../network/netconnect.pm_.c:109
-#: ../../network/netconnect.pm_.c:164 ../../network/netconnect.pm_.c:175
-#: ../../network/netconnect.pm_.c:202 ../../network/netconnect.pm_.c:225
-#: ../../network/netconnect.pm_.c:233
-msgid "Network Configuration Wizard"
-msgstr "Konfigurér netvęrk"
-
-#: ../../network/isdn.pm_.c:22
-msgid "External ISDN modem"
-msgstr "Eksternt ISDN modem"
-
-#: ../../network/isdn.pm_.c:22
-msgid "Internal ISDN card"
-msgstr "Internt ISDN-kort"
-
-#: ../../network/isdn.pm_.c:22
-msgid "What kind is your ISDN connection?"
-msgstr "Hvad slags type er din ISDN-forbindelse?"
-
-#: ../../network/isdn.pm_.c:45
-msgid ""
-"Which ISDN configuration do you prefer?\n"
-"\n"
-"* The Old configuration uses isdn4net. It contains powerfull\n"
-" tools, but is tricky to configure, and not standard.\n"
-"\n"
-"* The New configuration is easier to understand, more\n"
-" standard, but with less tools.\n"
-"\n"
-"We recommand the light configuration.\n"
-msgstr ""
-"Hvilken ISDN-konfigurering foretrękker du?\n"
-"\n"
-"* Den gamle konfiguration bruger isdn4net. Det har stęrke\n"
-" vęrktųjer, men det er vanskeligt at konfigurere for en nybegynder,\n"
-" og er ikke standardbaseret.\n"
-"\n"
-"' Det nye konfigurationsvęrktųj er enklere at forstå,\n"
-" mere standardiseret, men med fęrre vęrktųjer.\n"
-"\n"
-"Vi anbefaler den nye konfiguration.\n"
-"\n"
-
-#: ../../network/isdn.pm_.c:54
-msgid "New configuration (isdn-light)"
-msgstr "Ny konfiguration (isdn-light)"
-
-#: ../../network/isdn.pm_.c:54
-msgid "Old configuration (isdn4net)"
-msgstr "Gammel konfiguration (isdn4net)"
-
-#: ../../network/isdn.pm_.c:170 ../../network/isdn.pm_.c:188
-#: ../../network/isdn.pm_.c:198 ../../network/isdn.pm_.c:205
-#: ../../network/isdn.pm_.c:215
-msgid "ISDN Configuration"
-msgstr "ISDN konfiguration"
-
-#: ../../network/isdn.pm_.c:170
-msgid ""
-"Select your provider.\n"
-" If it's not in the list, choose Unlisted"
-msgstr ""
-"Vęlg din udbyder.\n"
-" Hvis de ikke er i listen, vęlg Ikke listet"
-
-#: ../../network/isdn.pm_.c:183
-msgid "Europe protocol"
-msgstr "Europaprotokollen"
-
-#: ../../network/isdn.pm_.c:183
-msgid "Europe protocol (EDSS1)"
-msgstr "Protokol for Europa (EDSS1)"
-
-#: ../../network/isdn.pm_.c:185
-msgid "Protocol for the rest of the world"
-msgstr "Protokol for resten af verden"
-
-#: ../../network/isdn.pm_.c:185
-msgid ""
-"Protocol for the rest of the world \n"
-" no D-Channel (leased lines)"
-msgstr ""
-"Protokol for resten af verden \n"
-" ingen D-kanal (lejet linje)"
-
-#: ../../network/isdn.pm_.c:189
-msgid "Which protocol do you want to use ?"
-msgstr "Hvilken protokol ųnsker du at bruge?"
-
-#: ../../network/isdn.pm_.c:199
-msgid "What kind of card do you have?"
-msgstr "Hvad slags kort har du?"
-
-#: ../../network/isdn.pm_.c:200
-msgid "I don't know"
-msgstr "Det ved jeg ikke"
-
-#: ../../network/isdn.pm_.c:200
-msgid "ISA / PCMCIA"
-msgstr "ISA / PCMCIA"
-
-#: ../../network/isdn.pm_.c:200
-msgid "PCI"
-msgstr "PCI"
-
-#: ../../network/isdn.pm_.c:206
-msgid ""
-"\n"
-"If you have an ISA card, the values on the next screen should be right.\n"
-"\n"
-"If you have a PCMCIA card, you have to know the irq and io of your card.\n"
-msgstr ""
-"\n"
-"Hvis du har et ISA kort burde vęrdiene i nęste billede vęre rigtige.\n"
-"\n"
-"Hvis du har et PCMCIA kort skal du vide irq og io for kortet.\n"
-
-#: ../../network/isdn.pm_.c:210
-msgid "Abort"
-msgstr "Afbryd"
-
-#: ../../network/isdn.pm_.c:210
-msgid "Continue"
-msgstr "Fortsęt"
-
-#: ../../network/isdn.pm_.c:216
-msgid "Which is your ISDN card ?"
-msgstr "Hvilket er dit ISDN-kort?"
-
-#: ../../network/isdn.pm_.c:235
-msgid ""
-"I have detected an ISDN PCI Card, but I don't know the type. Please select "
-"one PCI card on the next screen."
-msgstr ""
-"Jeg har opdaget et ISDN PCI-kort, men jeg ved ikke hvilken type. Vęlg et PCI-"
-"kort i nęste skęrmbillede."
-
-#: ../../network/isdn.pm_.c:244
-msgid "No ISDN PCI card found. Please select one on the next screen."
-msgstr "Ingen ISDN PCI-kort fundet. Vęlg ét i nęste skęrmbillede."
-
-#: ../../network/modem.pm_.c:39
-msgid "Please choose which serial port your modem is connected to."
-msgstr "Angiv hvilken seriel port dit modem er forbundet til."
-
-#: ../../network/modem.pm_.c:44
-msgid "Dialup options"
-msgstr "Opkaldsindstillinger"
-
-#: ../../network/modem.pm_.c:45 ../../standalone/draknet_.c:622
-msgid "Connection name"
-msgstr "Navn på forbindelsen"
-
-#: ../../network/modem.pm_.c:46 ../../standalone/draknet_.c:623
-msgid "Phone number"
-msgstr "Telefonnummer"
-
-#: ../../network/modem.pm_.c:47 ../../standalone/draknet_.c:624
-msgid "Login ID"
-msgstr "Brugernavn"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "CHAP"
-msgstr "CHAP"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "PAP"
-msgstr "PAP"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Script-based"
-msgstr "Skript-baseret"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Terminal-based"
-msgstr "Terminal-baseret"
-
-#: ../../network/modem.pm_.c:50 ../../standalone/draknet_.c:627
-msgid "Domain name"
-msgstr "Domęnenavn"
-
-#: ../../network/modem.pm_.c:51 ../../standalone/draknet_.c:628
-msgid "First DNS Server (optional)"
-msgstr "Fųrste DNS-server (valgfri)"
-
-#: ../../network/modem.pm_.c:52 ../../standalone/draknet_.c:629
-msgid "Second DNS Server (optional)"
-msgstr "Anden DNS-server (valgfri)"
-
-#: ../../network/netconnect.pm_.c:34
-msgid ""
-"\n"
-"You can disconnect or reconfigure your connection."
-msgstr ""
-"\n"
-"Du kan lukke forbindelsen til Internettet eller genkonfigurere din "
-"forbindelse."
-
-#: ../../network/netconnect.pm_.c:34 ../../network/netconnect.pm_.c:37
-msgid ""
-"\n"
-"You can reconfigure your connection."
-msgstr ""
-"\n"
-"Du kan genkonfigurere din forbindelse"
-
-#: ../../network/netconnect.pm_.c:34
-msgid "You are currently connected to internet."
-msgstr "Du har forbindelse til Internettet nu."
-
-#: ../../network/netconnect.pm_.c:37
-msgid ""
-"\n"
-"You can connect to Internet or reconfigure your connection."
-msgstr ""
-"\n"
-"Du kan lave forbindelse til Internettet eller omkonfigurere din forbindelse."
-
-#: ../../network/netconnect.pm_.c:37
-msgid "You are not currently connected to Internet."
-msgstr "Du er ikke forbundet til Internettet nu."
-
-#: ../../network/netconnect.pm_.c:41
-msgid "Connect"
-msgstr "Tilslut"
-
-#: ../../network/netconnect.pm_.c:43
-msgid "Disconnect"
-msgstr "Afbryd"
-
-#: ../../network/netconnect.pm_.c:45
-msgid "Configure the connection"
-msgstr "Konfigurér forbindelsen"
-
-#: ../../network/netconnect.pm_.c:50
-msgid "Internet connection & configuration"
-msgstr "Internetforbindelse & -konfiguration"
-
-#: ../../network/netconnect.pm_.c:100
-#, c-format
-msgid "We are now going to configure the %s connection."
-msgstr "Vi skal nu konfigurere opkoblingen '%s'."
-
-#: ../../network/netconnect.pm_.c:109
-#, c-format
-msgid ""
-"\n"
-"\n"
-"\n"
-"We are now going to configure the %s connection.\n"
-"\n"
-"\n"
-"Press OK to continue."
-msgstr ""
-"\n"
-"\n"
-"\n"
-"Vi skal nu konfigurere opkoblingen '%s'.\n"
-"\n"
-"\n"
-"Tryk OK for at begynde."
-
-#: ../../network/netconnect.pm_.c:138 ../../network/netconnect.pm_.c:252
-#: ../../network/netconnect.pm_.c:271 ../../network/tools.pm_.c:57
-msgid "Network Configuration"
-msgstr "Konfigurér netvęrk"
-
-#: ../../network/netconnect.pm_.c:139
-msgid ""
-"Because you are doing a network installation, your network is already "
-"configured.\n"
-"Click on Ok to keep your configuration, or cancel to reconfigure your "
-"Internet & Network connection.\n"
-msgstr ""
-"Da du er i gang med en netvęrksinstallation er dit netvęrk allerede "
-"konfigureret.\n"
-"Klik OK for at beholde din konfiguration, eller annullér for at "
-"omkonfigurere din Internet- og netvęrksforbindelse.\n"
-
-#: ../../network/netconnect.pm_.c:165
-msgid ""
-"Welcome to The Network Configuration Wizard\n"
-"\n"
-"We are about to configure your internet/network connection.\n"
-"If you don't want to use the auto detection, deselect the checkbox.\n"
-msgstr ""
-"Velkommen til Netvęrkskonfigurations-vejlederen\n"
-"\n"
-"Vi skal til at konfigurere din internet- eller netvęrksforbindelse.\n"
-"Hvis du ikke ųnsker at bruge autodetektering, så fravęlg afkrydsningsboksen\n"
-
-#: ../../network/netconnect.pm_.c:167
-msgid "Choose the profile to configure"
-msgstr "Vęlg profilen der skal konfigureres"
-
-#: ../../network/netconnect.pm_.c:168
-msgid "Use auto detection"
-msgstr "Brug automatisk detektion"
-
-#: ../../network/netconnect.pm_.c:175
-msgid "Detecting devices..."
-msgstr "Detekterer enheder..."
-
-#: ../../network/netconnect.pm_.c:186 ../../network/netconnect.pm_.c:195
-msgid "Normal modem connection"
-msgstr "Normal modemforbindelse"
-
-#: ../../network/netconnect.pm_.c:186 ../../network/netconnect.pm_.c:195
-#, c-format
-msgid "detected on port %s"
-msgstr "Detekteret på port %s"
-
-#: ../../network/netconnect.pm_.c:187 ../../network/netconnect.pm_.c:196
-msgid "ISDN connection"
-msgstr "ISDN-forbindelse"
-
-#: ../../network/netconnect.pm_.c:187 ../../network/netconnect.pm_.c:196
-#, c-format
-msgid "detected %s"
-msgstr "Detekteret %s"
-
-#: ../../network/netconnect.pm_.c:188 ../../network/netconnect.pm_.c:197
-msgid "ADSL connection"
-msgstr "ADSL opkobling"
-
-#: ../../network/netconnect.pm_.c:188 ../../network/netconnect.pm_.c:197
-#, c-format
-msgid "detected on interface %s"
-msgstr "Detekteret på gręnseflade %s"
-
-#: ../../network/netconnect.pm_.c:189 ../../network/netconnect.pm_.c:198
-msgid "Cable connection"
-msgstr "Kabelforbindelse"
-
-#: ../../network/netconnect.pm_.c:189 ../../network/netconnect.pm_.c:198
-msgid "cable connection detected"
-msgstr "Kabelopkobling detekteret"
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-msgid "LAN connection"
-msgstr "Lokalnet-konfiguration"
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-msgid "ethernet card(s) detected"
-msgstr "ethernet-kort detekteret"
-
-#: ../../network/netconnect.pm_.c:202
-msgid "Choose the connection you want to configure"
-msgstr "Vęlg den opkobling, du ųnsker at konfigurere"
-
-#: ../../network/netconnect.pm_.c:226
-msgid ""
-"You have configured multiple ways to connect to the Internet.\n"
-"Choose the one you want to use.\n"
-"\n"
-msgstr ""
-"Du har konfigureret flere måder at koble dig mod internet på.\n"
-"Venligst vęlg den du ųnsker at bruger.\n"
-"\n"
-
-#: ../../network/netconnect.pm_.c:227
-msgid "Internet connection"
-msgstr "Internet opkobling"
-
-#: ../../network/netconnect.pm_.c:233
-msgid "Do you want to start the connection at boot?"
-msgstr "Ųnsker du at starte din forbindelse ved opstart?"
-
-#: ../../network/netconnect.pm_.c:247
-msgid "Network configuration"
-msgstr "Netvęrks konfiguration"
-
-#: ../../network/netconnect.pm_.c:248
-msgid "The network needs to be restarted"
-msgstr "Netvęrket skal startes op igen"
-
-#: ../../network/netconnect.pm_.c:252
-#, c-format
-msgid ""
-"A problem occured while restarting the network: \n"
-"\n"
-"%s"
-msgstr ""
-"Et problem opstod ved genstart af netvęrket: \n"
-"\n"
-"%s"
-
-#: ../../network/netconnect.pm_.c:261
-msgid ""
-"Congratulations, the network and Internet configuration is finished.\n"
-"The configuration will now be applied to your system.\n"
-"\n"
-msgstr ""
-"Tillykke, netvęrks- og internetkonfigurationen er fęrdig.\n"
-"Konfigurationen vil nu blive anvendt på dit system.\n"
-"\n"
-
-#: ../../network/netconnect.pm_.c:265
-msgid ""
-"After this is done, we recommend that you restart your X environment to "
-"avoid any hostname-related problems."
-msgstr ""
-"Derefter anbefaler vi at du genstarter dit X-miljų for\n"
-"at undgå problemer med det ęndrede vęrtsnavn"
-
-#: ../../network/netconnect.pm_.c:266
-msgid ""
-"Problems occured during configuration.\n"
-"Test your connection via net_monitor or mcc. If your connection doesn't "
-"work, you might want to relaunch the configuration"
-msgstr ""
-"Problemer indtraf under konfigurationen.\n"
-"Afprųv din forbindelse med net_monitor eller mcc. Hvis din forbindelse ikke "
-"virker, kan du prųve at genstarte konfigurationen."
-
-#: ../../network/network.pm_.c:292
-msgid ""
-"WARNING: This device has been previously configured to connect to the "
-"Internet.\n"
-"Simply accept to keep this device configured.\n"
-"Modifying the fields below will override this configuration."
-msgstr ""
-"ADVARSEL: Denne enhed er tidligere blevet konfigureret til at lave "
-"forbindelse til Internettet.\n"
-"Ved kun at trykke på OK beholder du den nuvęrende konfiguration.\n"
-"Ęndringer i felterne nedenunder vil overskrive denne konfiguration."
-
-#: ../../network/network.pm_.c:297
-msgid ""
-"Please enter the IP configuration for this machine.\n"
-"Each item should be entered as an IP address in dotted-decimal\n"
-"notation (for example, 1.2.3.4)."
-msgstr ""
-"Indtast IP konfigurationen for denne maskine. Hvert felt skal udfyldes\n"
-"med en IP adresse i `dotted-decimal' notation (for eksempel 1.2.3.4)."
-
-#: ../../network/network.pm_.c:306 ../../network/network.pm_.c:307
-#, c-format
-msgid "Configuring network device %s"
-msgstr "Konfigurerer netvęrksenheden %s"
-
-#: ../../network/network.pm_.c:307
-#, c-format
-msgid " (driver %s)"
-msgstr " (drivprogram %s)"
-
-#: ../../network/network.pm_.c:309 ../../standalone/draknet_.c:232
-#: ../../standalone/draknet_.c:468
-msgid "IP address"
-msgstr "IP-adresse"
-
-#: ../../network/network.pm_.c:310 ../../standalone/draknet_.c:469
-msgid "Netmask"
-msgstr "Netmaske"
-
-#: ../../network/network.pm_.c:311
-msgid "(bootp/dhcp)"
-msgstr "(bootp/dhcp)"
-
-#: ../../network/network.pm_.c:311
-msgid "Automatic IP"
-msgstr "Automatisk IP"
-
-#: ../../network/network.pm_.c:332 ../../printerdrake.pm_.c:712
-msgid "IP address should be in format 1.2.3.4"
-msgstr "IP adresse skal have formatet 1.2.3.4"
-
-#: ../../network/network.pm_.c:361
-msgid ""
-"Please enter your host name.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''.\n"
-"You may also enter the IP address of the gateway if you have one"
-msgstr ""
-"Indtast domęnenavn, vęrtsnavn og IP adressen for evt. ekstra navne-servere.\n"
-"Dit vęrtsnavn skal vęre et fuldt kvalificeret vęrtsnavn inklusive domęne,\n"
-"f.eks. minpc.mitfirma.dk. Hvis du ikke har nogen ekstra navne-servere,\n"
-"så lad navne-server-felterne vęre blanke."
-
-#: ../../network/network.pm_.c:366
-msgid "DNS server"
-msgstr "DNS-server"
-
-#: ../../network/network.pm_.c:367
-#, c-format
-msgid "Gateway (e.g. %s)"
-msgstr "Gateway (fx %s)"
-
-#: ../../network/network.pm_.c:369
-msgid "Gateway device"
-msgstr "Gateway enhed"
-
-#: ../../network/network.pm_.c:381
-msgid "Proxies configuration"
-msgstr "Konfiguration af mellemvęrt (proxy)"
-
-#: ../../network/network.pm_.c:382
-msgid "HTTP proxy"
-msgstr "HTTP-proxy"
-
-#: ../../network/network.pm_.c:383
-msgid "FTP proxy"
-msgstr "FTP-proxy"
-
-#: ../../network/network.pm_.c:384
-msgid "Track network card id (usefull for laptops)"
-msgstr "Fųlg id for netvęrkskort (nyttigt for bęrbare)"
-
-#: ../../network/network.pm_.c:387
-msgid "Proxy should be http://..."
-msgstr "Proxy skal vęre http://..."
-
-#: ../../network/network.pm_.c:388
-msgid "Proxy should be ftp://..."
-msgstr "Proxy skal vęre ftp://..."
-
-#: ../../network/tools.pm_.c:39
-msgid "Internet configuration"
-msgstr "Internet-konfiguration"
-
-#: ../../network/tools.pm_.c:40
-msgid "Do you want to try to connect to the Internet now?"
-msgstr "Ųnsker du at forsųge at skabe forbindelse til Internettet nu?"
-
-#: ../../network/tools.pm_.c:44 ../../standalone/draknet_.c:197
-msgid "Testing your connection..."
-msgstr "Tester din forbindelse..."
-
-#: ../../network/tools.pm_.c:50
-msgid "The system is now connected to Internet."
-msgstr "Systemet er ikke forbundet til Internettet nu."
-
-#: ../../network/tools.pm_.c:51
-msgid "For Security reason, it will be disconnected now."
-msgstr "Af sikkerhedsgrunde vil det blive afbrudt nu."
-
-#: ../../network/tools.pm_.c:52
-msgid ""
-"The system doesn't seem to be connected to internet.\n"
-"Try to reconfigure your connection."
-msgstr ""
-"Det lader ikke til at dit system har forbindelse til Internettet.\n"
-"Prųv at omkonfigurere din forbindelse."
-
-#: ../../network/tools.pm_.c:76
-msgid "Connection Configuration"
-msgstr "Forbindelses-konfiguration"
-
-#: ../../network/tools.pm_.c:77
-msgid "Please fill or check the field below"
-msgstr "Udfyld eller markér feltet nedenunder"
-
-#: ../../network/tools.pm_.c:79 ../../standalone/draknet_.c:608
-msgid "Card IRQ"
-msgstr "Kort IRQ"
-
-#: ../../network/tools.pm_.c:80 ../../standalone/draknet_.c:609
-msgid "Card mem (DMA)"
-msgstr "Kort mem (DMA)"
-
-#: ../../network/tools.pm_.c:81 ../../standalone/draknet_.c:610
-msgid "Card IO"
-msgstr "Kort IO"
-
-#: ../../network/tools.pm_.c:82 ../../standalone/draknet_.c:611
-msgid "Card IO_0"
-msgstr "Kort IO_0"
-
-#: ../../network/tools.pm_.c:83 ../../standalone/draknet_.c:612
-msgid "Card IO_1"
-msgstr "Kort IO_1"
-
-#: ../../network/tools.pm_.c:84 ../../standalone/draknet_.c:613
-msgid "Your personal phone number"
-msgstr "Dit personlige telefonnummer"
-
-#: ../../network/tools.pm_.c:85 ../../standalone/draknet_.c:614
-msgid "Provider name (ex provider.net)"
-msgstr "Navn på udbyder (f.eks. udbyder.net)"
-
-#: ../../network/tools.pm_.c:86 ../../standalone/draknet_.c:615
-msgid "Provider phone number"
-msgstr "Udbyders telefonnummer"
-
-#: ../../network/tools.pm_.c:87 ../../standalone/draknet_.c:616
-msgid "Provider dns 1 (optional)"
-msgstr "Udbyder DNS 1 (valgfri)"
-
-#: ../../network/tools.pm_.c:88 ../../standalone/draknet_.c:617
-msgid "Provider dns 2 (optional)"
-msgstr "Udbyder DNS 2 (valgfri)"
-
-#: ../../network/tools.pm_.c:89
-msgid "Choose your country"
-msgstr "Vęlg dit land"
-
-#: ../../network/tools.pm_.c:90 ../../standalone/draknet_.c:620
-msgid "Dialing mode"
-msgstr "Opringningsmåde"
-
-#: ../../network/tools.pm_.c:91 ../../standalone/draknet_.c:632
-msgid "Connection speed"
-msgstr "Opkoblingshastighed"
-
-#: ../../network/tools.pm_.c:92 ../../standalone/draknet_.c:633
-msgid "Connection timeout (in sec)"
-msgstr "Opkoblingens tidsudlųb (i sekunder)"
-
-#: ../../network/tools.pm_.c:93 ../../standalone/draknet_.c:618
-msgid "Account Login (user name)"
-msgstr "Konto-login (brugernavn)"
-
-#: ../../network/tools.pm_.c:94 ../../standalone/draknet_.c:619
-msgid "Account Password"
-msgstr "Kodeord for konto"
-
-#: ../../partition_table.pm_.c:600
-msgid "mount failed: "
-msgstr "montering mislykkedes: "
-
-#: ../../partition_table.pm_.c:664
-msgid "Extended partition not supported on this platform"
-msgstr "Udvidet partition ikke understųttet på denne platform"
-
-#: ../../partition_table.pm_.c:682
-msgid ""
-"You have a hole in your partition table but I can't use it.\n"
-"The only solution is to move your primary partitions to have the hole next "
-"to the extended partitions"
-msgstr ""
-"Du har plads tilovers i din partitionstabel, men jeg kan ikke udnytte den.\n"
-"Den eneste lųsning er at flytte dine primęre partitioner, således at\n"
-"\"hullet\" bliver placeret ved siden af de udvidede partitioner."
-
-#: ../../partition_table.pm_.c:770
-#, c-format
-msgid "Restoring from file %s failed: %s"
-msgstr "Genskabning fra fil %s mislykkedes: %s"
-
-#: ../../partition_table.pm_.c:772
-msgid "Bad backup file"
-msgstr "Fejl i sikkerhedskopien"
-
-#: ../../partition_table.pm_.c:794
-#, c-format
-msgid "Error writing to file %s"
-msgstr "Fejl ved skrivning til fil %s"
-
-#: ../../partition_table_raw.pm_.c:186
-msgid ""
-"Something bad is happening on your drive. \n"
-"A test to check the integrity of data has failed. \n"
-"It means writing anything on the disk will end up with random trash"
-msgstr ""
-"Noget slemt sker på dit drev. \n"
-"En test for at tjekke integriteten af data er mislykkedes. \n"
-"Dette betyder at alt på disken vil ende som tilfęldigt snavs"
-
-#: ../../pkgs.pm_.c:24
-msgid "must have"
-msgstr "skal have"
-
-#: ../../pkgs.pm_.c:25
-msgid "important"
-msgstr "vigtigt"
-
-#: ../../pkgs.pm_.c:26
-msgid "very nice"
-msgstr "meget rart"
-
-#: ../../pkgs.pm_.c:27
-msgid "nice"
-msgstr "rart"
-
-#: ../../pkgs.pm_.c:28
-msgid "maybe"
-msgstr "måske"
-
-#: ../../printer.pm_.c:23
-msgid "CUPS - Common Unix Printing System"
-msgstr "CUPS - Common Unix Printing System"
-
-#: ../../printer.pm_.c:24
-msgid "LPRng - LPR New Generation"
-msgstr "LPRng - LPR New Generation"
-
-#: ../../printer.pm_.c:25
-msgid "LPD - Line Printer Daemon"
-msgstr "LPD - Line Printer Dęmon"
-
-#: ../../printer.pm_.c:26
-msgid "PDQ - Print, Don't Queue"
-msgstr "PDQ - Print, Don't Queue"
-
-#: ../../printer.pm_.c:32 ../../printer.pm_.c:871
-msgid "CUPS"
-msgstr "CUPS"
-
-#: ../../printer.pm_.c:33
-msgid "LPRng"
-msgstr "LPRng"
-
-#: ../../printer.pm_.c:34
-msgid "LPD"
-msgstr "LPD"
-
-#: ../../printer.pm_.c:35
-msgid "PDQ"
-msgstr "PDQ"
-
-#: ../../printer.pm_.c:47
-msgid "Local printer"
-msgstr "Lokal printer"
-
-#: ../../printer.pm_.c:48
-msgid "Remote printer"
-msgstr "Ekstern printer"
-
-#: ../../printer.pm_.c:49
-msgid "Printer on remote CUPS server"
-msgstr "Printer på ekstern CUPS server"
-
-#: ../../printer.pm_.c:50 ../../printerdrake.pm_.c:734
-msgid "Printer on remote lpd server"
-msgstr "Printer på ekstern lpd server"
-
-#: ../../printer.pm_.c:51
-msgid "Network printer (TCP/Socket)"
-msgstr "Netvęrksprinter (TCP/sokkel)"
-
-#: ../../printer.pm_.c:52
-msgid "Printer on SMB/Windows 95/98/NT server"
-msgstr "Printer på SMB/Windows 95/98/NT server"
-
-#: ../../printer.pm_.c:53
-msgid "Printer on NetWare server"
-msgstr "Printer på en NetWare server"
-
-#: ../../printer.pm_.c:54 ../../printerdrake.pm_.c:738
-msgid "Enter a printer device URI"
-msgstr "Indtast en printerenheds-URI"
-
-#: ../../printer.pm_.c:55
-msgid "Pipe job into a command"
-msgstr "kanalisér opgave ind i kommando"
-
-#: ../../printer.pm_.c:504 ../../printer.pm_.c:695 ../../printer.pm_.c:1017
-#: ../../printerdrake.pm_.c:1665 ../../printerdrake.pm_.c:2730
-msgid "Unknown model"
-msgstr "Ukendt model"
-
-#: ../../printer.pm_.c:532
-msgid "Local Printers"
-msgstr "Lokale printere"
-
-#: ../../printer.pm_.c:534 ../../printer.pm_.c:872
-msgid "Remote Printers"
-msgstr "Eksterne printere"
-
-#: ../../printer.pm_.c:541 ../../printerdrake.pm_.c:248
-#, c-format
-msgid " on parallel port \\/*%s"
-msgstr " på parallelport \\/*%s"
-
-#: ../../printer.pm_.c:544 ../../printerdrake.pm_.c:250
-#, c-format
-msgid ", USB printer \\/*%s"
-msgstr ", USB printer \\/*%s"
-
-#: ../../printer.pm_.c:549
-#, c-format
-msgid ", multi-function device on parallel port \\/*%s"
-msgstr ", multi-funktions-enhed på parallel port \\/*%s"
-
-#: ../../printer.pm_.c:552
-msgid ", multi-function device on USB"
-msgstr ", multi-funktions-enhed på USB"
-
-#: ../../printer.pm_.c:554
-msgid ", multi-function device on HP JetDirect"
-msgstr ", multi-funktions-enhed på HP JetDirect"
-
-#: ../../printer.pm_.c:556
-msgid ", multi-function device"
-msgstr ", multi-funktions-enhed"
-
-#: ../../printer.pm_.c:559
-#, c-format
-msgid ", printing to %s"
-msgstr ", skriver til %s"
-
-#: ../../printer.pm_.c:561
-#, c-format
-msgid "on LPD server \"%s\", printer \"%s\""
-msgstr "på LPD-server \"%s\", printer \"%s\""
-
-#: ../../printer.pm_.c:563
-#, c-format
-msgid ", TCP/IP host \"%s\", port %s"
-msgstr ", TCP/IP vęrt \"%s\", port %s"
-
-#: ../../printer.pm_.c:567
-#, c-format
-msgid "on Windows server \"%s\", share \"%s\""
-msgstr "på Windows-server \"%s\", deling \"%s\""
-
-#: ../../printer.pm_.c:571
-#, c-format
-msgid "on Novell server \"%s\", printer \"%s\""
-msgstr "på Novell-server \"%s\", printer \"%s\""
-
-#: ../../printer.pm_.c:573
-#, c-format
-msgid ", using command %s"
-msgstr ", med kommando %s"
-
-#: ../../printer.pm_.c:692 ../../printerdrake.pm_.c:1136
-msgid "Raw printer (No driver)"
-msgstr "Rå printer (ingen driver)"
-
-#: ../../printer.pm_.c:841
-#, c-format
-msgid "(on %s)"
-msgstr "(på %s)"
-
-#: ../../printer.pm_.c:843
-msgid "(on this machine)"
-msgstr "(på denne maskine)"
-
-#: ../../printer.pm_.c:868
-#, c-format
-msgid "On CUPS server \"%s\""
-msgstr "På CUPS-server '%s'"
-
-#: ../../printer.pm_.c:874 ../../printerdrake.pm_.c:2391
-#: ../../printerdrake.pm_.c:2402 ../../printerdrake.pm_.c:2618
-#: ../../printerdrake.pm_.c:2670 ../../printerdrake.pm_.c:2697
-#: ../../printerdrake.pm_.c:2867 ../../printerdrake.pm_.c:2869
-msgid " (Default)"
-msgstr " (Forvalgt)"
-
-#: ../../printerdrake.pm_.c:22
-msgid "Select Printer Connection"
-msgstr "Vęlg printer-forbindelse"
-
-#: ../../printerdrake.pm_.c:23
-msgid "How is the printer connected?"
-msgstr "Hvordan er printeren tilsluttet?"
-
-#: ../../printerdrake.pm_.c:25
-msgid ""
-"\n"
-"Printers on remote CUPS servers you do not have to configure here; these "
-"printers will be automatically detected."
-msgstr ""
-"\n"
-"Eksterne CUPS-servere behųver du ikke at konfigurere her: \n"
-"disse printere vil automatisk blive fundet."
-
-#: ../../printerdrake.pm_.c:69 ../../printerdrake.pm_.c:2454
-msgid "CUPS configuration"
-msgstr "CUPS-Konfiguration"
-
-#: ../../printerdrake.pm_.c:70 ../../printerdrake.pm_.c:2455
-msgid "Specify CUPS server"
-msgstr "Angiv CUPS server"
-
-#: ../../printerdrake.pm_.c:71
-msgid ""
-"To get access to printers on remote CUPS servers in your local network you "
-"do not have to configure anything; the CUPS servers inform your machine "
-"automatically about their printers. All printers currently known to your "
-"machine are listed in the \"Remote printers\" section in the main window of "
-"Printerdrake. When your CUPS server is not in your local network, you have "
-"to enter the CUPS server IP address and optionally the port number to get "
-"the printer information from the server, otherwise leave these fields blank."
-msgstr ""
-"Du behųver ikke at konfigurere nogen printere hér for at få adgang til "
-"eksterne CUPS-servere; CUPS-serverne informerer automatisk din maskine "
-"information om deres printere. Alle printere som for ųjeblikket er kendt af "
-"din maskine vil vęre opfųrt under \"Eksterne printere\". Når CUPS-serveren "
-"ikke er på dit lokalnetvęrk skal du opgive CUPS-serverens IP-adresse og "
-"eventuelle portnummer for at få printerinformation fra serveren, ellers kan "
-"du lade disse felter vęre blanke."
-
-#: ../../printerdrake.pm_.c:72
-msgid ""
-"\n"
-"Normally, CUPS is automatically configured according to your network "
-"environment, so that you can access the printers on the CUPS servers in your "
-"local network. If this does not work correctly, turn off \"Automatic CUPS "
-"configuration\" and edit your file /etc/cups/cupsd.conf manually. Do not "
-"forget to restart CUPS afterwards (command: \"service cups restart\")."
-msgstr ""
-"\n"
-"Normalt bliver CUPS konfigureret automatisk i overensstemmelse med dit "
-"netvęrksmiljų, så du kan få fat i printerne på CUPS-serverne på dit "
-"lokalnetvęrk. Hvis dette ikke virker ordentligt, så deaktivér 'Automatisk "
-"CUPS-konfiguration' og redigér din fil /etc/cups/cupsd.conf selv. Glem ikke "
-"at genstarte CUPS bagefter. (kommando: 'service cups restart')."
-
-#: ../../printerdrake.pm_.c:76
-msgid "The IP address should look like 192.168.1.20"
-msgstr "IP-adressen bųr se ud som 192.168.1.20"
-
-#: ../../printerdrake.pm_.c:80 ../../printerdrake.pm_.c:862
-msgid "The port number should be an integer!"
-msgstr "Port-nummeret bųr vęre et heltal!"
-
-#: ../../printerdrake.pm_.c:87
-msgid "CUPS server IP"
-msgstr "CUPS-serverens IP"
-
-#: ../../printerdrake.pm_.c:88 ../../printerdrake.pm_.c:855
-msgid "Port"
-msgstr "Port"
-
-#: ../../printerdrake.pm_.c:90
-msgid "Automatic CUPS configuration"
-msgstr "Automatisk CUPS-konfiguration"
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-msgid "Detecting devices ..."
-msgstr "Sųger efter enheder..."
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-msgid "Test ports"
-msgstr "Afprųv porte"
-
-#: ../../printerdrake.pm_.c:167 ../../printerdrake.pm_.c:2437
-#: ../../printerdrake.pm_.c:2556
-msgid "Add a new printer"
-msgstr "Tilfųj en ny printer"
-
-#: ../../printerdrake.pm_.c:168
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard allows you to install local or remote printers to be used from "
-"this machine and also from other machines in the network.\n"
-"\n"
-"It asks you for all necessary information to set up the printer and gives "
-"you access to all available printer drivers, driver options, and printer "
-"connection types."
-msgstr ""
-"\n"
-"Velkommen til vejlederen for printeropsętning\n"
-"\n"
-"Denne vejleder lader dig installere lokale eller eksterne printere som skal "
-"bruges fra denne maskine, og også fra andre maskiner i netvęrket.\n"
-"\n"
-"Den spųrger dig om alle nųdvendige oplysninger til at opsętte printere og "
-"giver dig adgang til alle tilgęngelige printerdrivere, drivermuligheder og "
-"opkoblingstyper for printere."
-
-#: ../../printerdrake.pm_.c:176 ../../printerdrake.pm_.c:203
-#: ../../printerdrake.pm_.c:378 ../../printerdrake.pm_.c:393
-#: ../../printerdrake.pm_.c:403 ../../printerdrake.pm_.c:466
-msgid "Local Printer"
-msgstr "Lokal printer"
-
-#: ../../printerdrake.pm_.c:177
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard will help you to install your printer(s) connected to this "
-"computer.\n"
-"\n"
-"Please plug in your printer(s) on this computer and turn it/them on. Click "
-"on \"Next\" when you are ready, and on \"Cancel\" when you do not want to "
-"set up your printer(s) now.\n"
-"\n"
-"Note that some computers can crash during the printer auto-detection, turn "
-"off \"Auto-detect printers\" to do a printer installation without auto-"
-"detection. Use the \"Expert Mode\" of printerdrake when you want to set up "
-"printing on a remote printer if printerdrake does not list it automatically."
-msgstr ""
-"\n"
-"Velkommen til vejlederen for printeropsętning\n"
-"\n"
-"Denne vejleder vil hjęlpe dig med at installere dine printere tilsluttet "
-"denne maskine.\n"
-"\n"
-"Tilslut dine printere til maskinen og tęnd dem. Klik på \"Nęste\" når du er "
-"klar, eller på \"Annullér\" hvis du ikke vil opsętte dine printere nu.\n"
-"\n"
-"Bemęrk at nogen maskiner kan gå ned under den automatiske sųgning efter "
-"printere; slå 'Auto-opdagelse af printere' fra for at lave en printer "
-"installation uden auto-sųgning. Brug printerdrakes 'Ekspert-udgave' hvis du "
-"ųnsker at opsętte udskrift på en ekstern printer og Printerdrake ikke lister "
-"denne automatisk."
-
-#: ../../printerdrake.pm_.c:186
-msgid "Auto-detect printers"
-msgstr "Auto-opdagelse af printere"
-
-#: ../../printerdrake.pm_.c:204
-msgid ""
-"\n"
-"Congratulations, your printer is now installed and configured!\n"
-"\n"
-"You can print using the \"Print\" command of your application (usually in "
-"the \"File\" menu).\n"
-"\n"
-"If you want to add, remove, or rename a printer, or if you want to change "
-"the default option settings (paper input tray, printout quality, ...), "
-"select \"Printer\" in the \"Hardware\" section of the Mandrake Control "
-"Center."
-msgstr ""
-"\n"
-"Tillykke, din printer er nu installeret og konfigureret!\n"
-"\n"
-"Du kan udskrive med 'Udskriv'-kommandoen i dit program (normalt i 'Filer'-"
-"menuen).\n"
-"\n"
-"Hvis du ųnsker at tilfųje, fjerne eller omdųbe en printer, eller hvis du "
-"ųnsker at ęndre på standard-indstillingerne (papirbakke, printkvalitet ...), "
-"så vęlg 'Printer' i 'Udstyr'-afsnittet i Mandrake Kontrolcentret."
-
-#: ../../printerdrake.pm_.c:223
-msgid "Auto-Detection of Printers"
-msgstr "Auto-opdagelse af printere"
-
-#: ../../printerdrake.pm_.c:224
-msgid ""
-"Printerdrake is able to auto-detect your locally connected parallel and USB "
-"printers for you, but note that on some systems the auto-detection CAN "
-"FREEZE YOUR SYSTEM AND THIS CAN LEAD TO CORRUPTED FILE SYSTEMS! So do it ON "
-"YOUR OWN RISK!\n"
-"\n"
-"Do you really want to get your printers auto-detected?"
-msgstr ""
-"Printerdrake er i stand til at automatisk opdage dine lokalt forbundne "
-"parallelle og USB-printere for dig, men bemęrk at på nogen systemer KAN DEN "
-"AUTOMATISKE OPDAGELSE FRYSE DIT SYSTEM OG ENDOG ŲDELĘGGE DINE FILSYSTEMER! "
-"Så gųr det på EGET ANSVAR!\n"
-"\n"
-"Ųnsker du virkeligt at få dine printere automatisk opdaget?"
-
-#: ../../printerdrake.pm_.c:227 ../../printerdrake.pm_.c:229
-#: ../../printerdrake.pm_.c:230
-msgid "Do auto-detection"
-msgstr "Udfųr automatisk detektion"
-
-#: ../../printerdrake.pm_.c:228
-msgid "Set up printer manually"
-msgstr "Opsęt printer manuelt"
-
-#: ../../printerdrake.pm_.c:256
-#, c-format
-msgid "Detected %s"
-msgstr "Fandt %s"
-
-#: ../../printerdrake.pm_.c:260 ../../printerdrake.pm_.c:287
-#: ../../printerdrake.pm_.c:306
-#, c-format
-msgid "Printer on parallel port \\/*%s"
-msgstr "Printer på parallel port \\/*%s"
-
-#: ../../printerdrake.pm_.c:262 ../../printerdrake.pm_.c:289
-#: ../../printerdrake.pm_.c:311
-#, c-format
-msgid "USB printer \\/*%s"
-msgstr "USB-printer \\/*%s"
-
-#: ../../printerdrake.pm_.c:379
-msgid ""
-"No local printer found! To manually install a printer enter a device name/"
-"file name in the input line (Parallel Ports: /dev/lp0, /dev/lp1, ..., "
-"equivalent to LPT1:, LPT2:, ..., 1st USB printer: /dev/usb/lp0, 2nd USB "
-"printer: /dev/usb/lp1, ...)."
-msgstr ""
-"Ingen lokal printer fundet! For at installere en printer i hånden skal du "
-"indtaste et enhedsnavn/filnavn i inddatalinjen (parallelporte: /dev/lp0, /"
-"dev/lp1 ..., svarende til LPT1:, LPT2: ..., fųrste USB-printer: /dev/usb/"
-"lp0, 2. USB-printer: /dev/usb/lp1 ...)."
-
-#: ../../printerdrake.pm_.c:383
-msgid "You must enter a device or file name!"
-msgstr "Du skal indtaste en enhed eller et filnavn!"
-
-#: ../../printerdrake.pm_.c:394
-msgid ""
-"No local printer found!\n"
-"\n"
-msgstr ""
-"Ingen lokal printer fundet!\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:395
-msgid ""
-"Network printers can only be installed after the installation. Choose "
-"\"Hardware\" and then \"Printer\" in the Mandrake Control Center."
-msgstr ""
-"Netvęrksprintere kan kun installeres efter installeringen. Vęlg 'Udstyr' og "
-"dernęst 'Printer' i Mandrake kontrolcentret."
-
-#: ../../printerdrake.pm_.c:396
-msgid ""
-"To install network printers, click \"Cancel\", switch to the \"Expert Mode"
-"\", and click \"Add a new printer\" again."
-msgstr ""
-"For at installere netvęrksprintere skal du klikke på 'Annullér', skifte til "
-"'Ekspert-version' og klikke på 'Tilfųj en ny printer' igen."
-
-#: ../../printerdrake.pm_.c:407
-msgid ""
-"The following printer was auto-detected, if it is not the one you want to "
-"configure, enter a device name/file name in the input line"
-msgstr ""
-"Den fųlgende printer blev opdaget automatisk. Hvis det ikke er den du ųnsker "
-"at opsętte så indtast et enhedsnavn/filnavn på inddatalinjen"
-
-#: ../../printerdrake.pm_.c:408
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up or enter a device name/file name in the input line"
-msgstr ""
-"Her er en liste over alle automatisk opdagede printere. Vęlg den printer du "
-"ųnsker at opsętte eller indtast et enhedsnavn/filnavn på inddatalinjen"
-
-#: ../../printerdrake.pm_.c:410
-msgid ""
-"The following printer was auto-detected. The configuration of the printer "
-"will work fully automatically. If your printer was not correctly detected or "
-"if you prefer a customized printer configuration, turn on \"Manual "
-"configuration\"."
-msgstr ""
-"Den fųlgende printer blev opdaget automatisk. Konfigurationen af printeren "
-"vil ske fuldstęndigt automatisk. Hvis din printer ikke blev fundet korrekt "
-"eller hvis du foretrękker en tilpasset printerkonfiguration, så slå 'Manuel "
-"konfiguration' til."
-
-#: ../../printerdrake.pm_.c:411
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up. The configuration of the printer will work fully "
-"automatically. If your printer was not correctly detected or if you prefer a "
-"customized printer configuration, turn on \"Manual configuration\"."
-msgstr ""
-"Her er en liste over alle automatisk opdagede printere. Vęlg den printer du "
-"ųnsker at opsętte. Konfigurationen af printeren vil ske fuldstęndigt "
-"automatisk. Hvis din printer ikke blev fundet korrekt eller hvis du "
-"foretrękker en tilpasset printerkonfiguration, så slå 'Manuel konfiguration' "
-"til."
-
-#: ../../printerdrake.pm_.c:413
-msgid ""
-"Please choose the port where your printer is connected to or enter a device "
-"name/file name in the input line"
-msgstr ""
-"Angiv hvilken port din printer er forbundet til eller indtast et enhedsnavn/"
-"filnavn på inddatalinjen"
-
-#: ../../printerdrake.pm_.c:414
-msgid "Please choose the port where your printer is connected to."
-msgstr "Angiv hvilken port din printer er forbundet til."
-
-#: ../../printerdrake.pm_.c:416
-msgid ""
-" (Parallel Ports: /dev/lp0, /dev/lp1, ..., equivalent to LPT1:, LPT2:, ..., "
-"1st USB printer: /dev/usb/lp0, 2nd USB printer: /dev/usb/lp1, ...)."
-msgstr ""
-"(parallelporte: /dev/lp0, /dev/lp1 ..., svarende til LPT1:, LPT2: ..., "
-"fųrste USB-printer: /dev/usb/lp0, 2. USB-printer: /dev/usb/lp1 ...)."
-
-#: ../../printerdrake.pm_.c:421
-msgid "You must choose/enter a printer/device!"
-msgstr "Du skal vęlge eller indtaste en printer/enhed!"
-
-#: ../../printerdrake.pm_.c:441
-msgid "Manual configuration"
-msgstr "Manuel konfiguration"
-
-#: ../../printerdrake.pm_.c:467
-msgid ""
-"Is your printer a multi-function device from HP (OfficeJet, PSC, PhotoSmart, "
-"LaserJet 1100/1200/1220/3200/3300 with scanner)?"
-msgstr ""
-"Er din printer en multi-funktionsenhed fra HP (OfficeJet, PSC, PhotoSmart, "
-"LaserJet 1100/1200/1220/3200/3300 med skanner)?"
-
-#: ../../printerdrake.pm_.c:482
-msgid "Installing HPOJ package..."
-msgstr "Installerer HPOJ-pakke..."
-
-#: ../../printerdrake.pm_.c:487
-msgid "Checking device and configuring HPOJ ..."
-msgstr "Tjekker enhed og konfigurerer HPOJ ..."
-
-#: ../../printerdrake.pm_.c:505
-msgid "Installing SANE package..."
-msgstr "Installerer SANE-pakke..."
-
-#: ../../printerdrake.pm_.c:517
-msgid "Scanning on your HP multi-function device"
-msgstr "Skanner på din HP multi-funktionsenhed"
-
-#: ../../printerdrake.pm_.c:534
-msgid "Making printer port available for CUPS ..."
-msgstr "Gųr printerport tilgęngelig for CUPS ..."
-
-#: ../../printerdrake.pm_.c:544 ../../printerdrake.pm_.c:1018
-#: ../../printerdrake.pm_.c:1132
-msgid "Reading printer database ..."
-msgstr "Lęser database over printere ..."
-
-#: ../../printerdrake.pm_.c:624
-msgid "Remote lpd Printer Options"
-msgstr "Parametre til ekstern lpd"
-
-#: ../../printerdrake.pm_.c:625
-msgid ""
-"To use a remote lpd printer, you need to supply the hostname of the printer "
-"server and the printer name on that server."
-msgstr ""
-"For at bruge en ekstern printer, skal du opgive vęrtsnavnet\n"
-"for printerserveren og navnet på printeren på denne server."
-
-#: ../../printerdrake.pm_.c:626
-msgid "Remote host name"
-msgstr "Eksternt vęrtsnavn"
-
-#: ../../printerdrake.pm_.c:627
-msgid "Remote printer name"
-msgstr "Eksternt printernavn"
-
-#: ../../printerdrake.pm_.c:630
-msgid "Remote host name missing!"
-msgstr "Eksternt vęrtsnavn mangler"
-
-#: ../../printerdrake.pm_.c:634
-msgid "Remote printer name missing!"
-msgstr "Det eksterne vęrtsnavn mangler!"
-
-#: ../../printerdrake.pm_.c:702
-msgid "SMB (Windows 9x/NT) Printer Options"
-msgstr "SMB (Windows 9x/NT)-printer indstillinger"
-
-#: ../../printerdrake.pm_.c:703
-msgid ""
-"To print to a SMB printer, you need to provide the SMB host name (Note! It "
-"may be different from its TCP/IP hostname!) and possibly the IP address of "
-"the print server, as well as the share name for the printer you wish to "
-"access and any applicable user name, password, and workgroup information."
-msgstr ""
-"For at skrive til en SMB printer skal du angive vęrtsnavnet på SMB maskinen "
-"(bemęrk at dette navn kan vęre forskelligt fra TCP/IP-navnet!) og muligvis "
-"IP-adressen på printerserveren, så vel som delenavnet for printeren du vil "
-"bruge samt nųdvendig information om brugernavn, adgangskode og arbejdsgruppe."
-
-#: ../../printerdrake.pm_.c:704
-msgid "SMB server host"
-msgstr "SMB-servervęrt"
-
-#: ../../printerdrake.pm_.c:705
-msgid "SMB server IP"
-msgstr "SMB-serverens IP"
-
-#: ../../printerdrake.pm_.c:706
-msgid "Share name"
-msgstr "Dele-navn"
-
-#: ../../printerdrake.pm_.c:709
-msgid "Workgroup"
-msgstr "Arbejdsgruppe"
-
-#: ../../printerdrake.pm_.c:716
-msgid "Either the server name or the server's IP must be given!"
-msgstr "Enten servernavnet eller serverens IP skal angives!"
-
-#: ../../printerdrake.pm_.c:720
-msgid "Samba share name missing!"
-msgstr "Samba-delenavn mangler!"
-
-#: ../../printerdrake.pm_.c:725
-msgid "SECURITY WARNING!"
-msgstr "SIKKERHEDSADVARSEL!"
-
-#: ../../printerdrake.pm_.c:726
-#, c-format
-msgid ""
-"You are about to set up printing to a Windows account with password. Due to "
-"a fault in the architecture of the Samba client software the password is put "
-"in clear text into the command line of the Samba client used to transmit the "
-"print job to the Windows server. So it is possible for every user on this "
-"machine to display the password on the screen by issuing commands as \"ps "
-"auxwww\".\n"
-"\n"
-"We recommend to make use of one of the following alternatives (in all cases "
-"you have to make sure that only machines from your local network have access "
-"to your Windows server, for example by means of a firewall):\n"
-"\n"
-"Use a password-less account on your Windows server, as the \"GUEST\" account "
-"or a special account dedicated for printing. Do not remove the password "
-"protection from a personal account or the administrator account.\n"
-"\n"
-"Set up your Windows server to make the printer available under the LPD "
-"protocol. Then set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-"Du er ved at opsętte udskrivning til en Windows-konto med adgangskode. "
-"Grundet en fejl i arkitekturen af Sambas klientprogrammel bliver "
-"adgangskoden lagt i klar tekst i Samba-klientens kommandolinje, som bruges "
-"til at sende printjobbet til Windows-serveren. Så det er muligt for enhver "
-"bruger på denne maskine at vise adgangskoden på skęrmen ved at angive "
-"kommandoer som 'ps auxwww'.\n"
-"\n"
-"Vi anbefaler at bruge en af de fųlgende alternativer (i alle tilfęlde skal "
-"du forsikre dig om at kun maskiner fra dit lokalnetvęrk har adgang til din "
-"Windows-server, for eksempel ved hjęlp af en brandmur):\n"
-"\n"
-"Brug en konto uden adgangskode på din Windows-server, såsom 'GUEST'-kontoen "
-"eller en speciel konto som kun anvendes til udskrift. Fjern ikke "
-"adgangskodebeskyttelsen fra en personlig konto eller en administrator-"
-"konto.\n"
-"\n"
-"Opsęt din Windows-server så printeren er tilgęngelig under LPD-protokollen. "
-"Opsęt dernęst udskrift fra denne maskine med '%s'-opkoblingstypen i "
-"Printerdrake.\n"
-
-#: ../../printerdrake.pm_.c:736
-#, c-format
-msgid ""
-"Set up your Windows server to make the printer available under the IPP "
-"protocol and set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-"Opsęt din Windows-server til at gųre printeren tilgęngelig under IPP-"
-"protokollen, og opsęt udskrift fra denne maskine med '%s'-opkoblingstypen i "
-"Printerdrake.\n"
-
-#: ../../printerdrake.pm_.c:739
-msgid ""
-"Connect your printer to a Linux server and let your Windows machine(s) "
-"connect to it as a client.\n"
-"\n"
-"Do you really want to continue setting up this printer as you are doing now?"
-msgstr ""
-"Forbind din printer til en Linux-server og lad dine Windows-maskiner "
-"tilslutte sig til den som klienter.\n"
-"\n"
-"Ųnsker du virkelig at fortsętte med at opsętte din printer som du gųr nu?"
-
-#: ../../printerdrake.pm_.c:801
-msgid "NetWare Printer Options"
-msgstr "NetWare printer-parametre"
-
-#: ../../printerdrake.pm_.c:802
-msgid ""
-"To print on a NetWare printer, you need to provide the NetWare print server "
-"name (Note! it may be different from its TCP/IP hostname!) as well as the "
-"print queue name for the printer you wish to access and any applicable user "
-"name and password."
-msgstr ""
-"For at skrive til en NetWare printer skal du angive navnet på NetWare "
-"printerserveren (bemęrk at dette navn kan vęre forskelligt fra TCP/IP-"
-"navnet!) såvel som kųnavnet for den printer du vil benytte samt om "
-"nųdvendigt et brugernavn og en adgangskode."
-
-#: ../../printerdrake.pm_.c:803
-msgid "Printer Server"
-msgstr "Printer-server"
-
-#: ../../printerdrake.pm_.c:804
-msgid "Print Queue Name"
-msgstr "Printerkų-navn"
-
-#: ../../printerdrake.pm_.c:809
-msgid "NCP server name missing!"
-msgstr "NCP-servernavn mangler!"
-
-#: ../../printerdrake.pm_.c:813
-msgid "NCP queue name missing!"
-msgstr "NCP-kųnavn mangler!"
-
-#: ../../printerdrake.pm_.c:852
-msgid "TCP/Socket Printer Options"
-msgstr "TCP/Sokkel-printer-parametre"
-
-#: ../../printerdrake.pm_.c:853
-msgid ""
-"To print to a TCP or socket printer, you need to provide the host name of "
-"the printer and optionally the port number. On HP JetDirect servers the port "
-"number is usually 9100, on other servers it can vary. See the manual of your "
-"hardware."
-msgstr ""
-"For at skrive til en TCP eller sokkel-printer skal du angive vęrtsnavnet på "
-"printeren, og eventuelt portnummer. På HP JetDirect-servere er portnummeret "
-"normalt 9100, på andre servere varierer det. Tjek manualen for dit udstyr."
-
-#: ../../printerdrake.pm_.c:854
-msgid "Printer host name"
-msgstr "printer-vęrtsnavn"
-
-#: ../../printerdrake.pm_.c:858
-msgid "Printer host name missing!"
-msgstr "printer-vęrtsnavn mangler!"
-
-#: ../../printerdrake.pm_.c:887 ../../printerdrake.pm_.c:889
-msgid "Printer Device URI"
-msgstr "Printer-enheds URI"
-
-#: ../../printerdrake.pm_.c:888
-msgid ""
-"You can specify directly the URI to access the printer. The URI must fulfill "
-"either the CUPS or the Foomatic specifications. Note that not all URI types "
-"are supported by all the spoolers."
-msgstr ""
-"Du kan direkte opgive URI til printeren. URIen skal vęre i henhold til enten "
-"CUPS- eller Foomatic-standarden. Bemęrk at ikke alle typer URIer "
-"understųttes af alle kų-behandlere."
-
-#: ../../printerdrake.pm_.c:903
-msgid "A valid URI must be entered!"
-msgstr "En korrekt URI skal opgives!"
-
-#: ../../printerdrake.pm_.c:1004
-msgid ""
-"Every printer needs a name (for example \"printer\"). The Description and "
-"Location fields do not need to be filled in. They are comments for the users."
-msgstr ""
-"Alle printere behųver et navn (f.eks. 'printer').\n"
-"Beskrivelsen og lokaliseringsfelterne behųver ikke \n"
-"udfyldes. De er kommentarer til brugerne."
-
-#: ../../printerdrake.pm_.c:1005
-msgid "Name of printer"
-msgstr "Navn på printer"
-
-#: ../../printerdrake.pm_.c:1006
-msgid "Description"
-msgstr "Beskrivelse"
-
-#: ../../printerdrake.pm_.c:1007
-msgid "Location"
-msgstr "Placering"
-
-#: ../../printerdrake.pm_.c:1021
-msgid "Preparing printer database ..."
-msgstr "Forbereder printerdatabase: ..."
-
-#: ../../printerdrake.pm_.c:1112
-msgid "Your printer model"
-msgstr "Din printermodel"
-
-#: ../../printerdrake.pm_.c:1113
-#, c-format
-msgid ""
-"Printerdrake has compared the model name resulting from the printer auto-"
-"detection with the models listed in its printer database to find the best "
-"match. This choice can be wrong, especially when your printer is not listed "
-"at all in the database. So check whether the choice is correct and click "
-"\"The model is correct\" if so and if not, click \"Select model manually\" "
-"so that you can choose your printer model manually on the next screen.\n"
-"\n"
-"For your printer Printerdrake has found:\n"
-"\n"
-"%s"
-msgstr ""
-"Printerdrake har sammenlignet modelnavnet fra den automatiske genkendelse af "
-"printeren med modellerne listet i dens printerdatabase for at finde den "
-"bedste match. Dette valg kan vęre forkert, isęr når din printer slet ikke er "
-"listet i databasen. Så tjek om valget er korrekt og klik \"Modellen er "
-"korrekt\" hvis den er, og hvis ikke så klik \"Vęlg model manuelt\" så du kan "
-"udvęlge din printermodel manuelt på den nęste skęrm.\n"
-"\n"
-"Som din printer har Printerdrake fundet:\n"
-"\n"
-"%s"
-
-#: ../../printerdrake.pm_.c:1118 ../../printerdrake.pm_.c:1121
-msgid "The model is correct"
-msgstr "Modellen er korrekt"
-
-#: ../../printerdrake.pm_.c:1119 ../../printerdrake.pm_.c:1120
-#: ../../printerdrake.pm_.c:1123
-msgid "Select model manually"
-msgstr "Vęlg model manuelt"
-
-#: ../../printerdrake.pm_.c:1139
-msgid "Printer model selection"
-msgstr "Valg af printermodel"
-
-#: ../../printerdrake.pm_.c:1140
-msgid "Which printer model do you have?"
-msgstr "Hvilken printermodel har du?"
-
-#: ../../printerdrake.pm_.c:1141
-msgid ""
-"\n"
-"\n"
-"Please check whether Printerdrake did the auto-detection of your printer "
-"model correctly. Search the correct model in the list when the cursor is "
-"standing on a wrong model or on \"Raw printer\"."
-msgstr ""
-"\n"
-"\n"
-"Tjek venligst om Printerdrake udfųrte \n"
-"autodetekteringen af din printermodel\n"
-"korrekt. Opsųg den korrekte model i listen\n"
-"når markųren står på en forkert model, eller\n"
-"på 'Rå printer'."
-
-#: ../../printerdrake.pm_.c:1144
-msgid ""
-"If your printer is not listed, choose a compatible (see printer manual) or a "
-"similar one."
-msgstr ""
-"Hvis din printer ikke er listet, så vęlg en kompatibel (se printermanual) "
-"eller en lignende printer."
-
-#: ../../printerdrake.pm_.c:1220
-msgid "OKI winprinter configuration"
-msgstr "OKI konfiguration af winprinter"
-
-#: ../../printerdrake.pm_.c:1221
-msgid ""
-"You are configuring an OKI laser winprinter. These printers\n"
-"use a very special communication protocol and therefore they work only when "
-"connected to the first parallel port. When your printer is connected to "
-"another port or to a print server box please connect the printer to the "
-"first parallel port before you print a test page. Otherwise the printer will "
-"not work. Your connection type setting will be ignored by the driver."
-msgstr ""
-"Du konfigurerer en OKI laser-winprinter. Disse printere bruger en meget "
-"speciel kommunikationsprotokol og derfor virker de kun når de er forbundet "
-"til den fųrste parallelle port. Når din printer er forbundet til en anden "
-"port eller til en printserverboks, så forbind printeren til den fųrste "
-"parallelle port fųr du udskriver en prųveside. Ellers vil printeren ikke "
-"virke. Din opsętning af forbindelsestype vil blive ignoreret af driveren."
-
-#: ../../printerdrake.pm_.c:1264 ../../printerdrake.pm_.c:1291
-msgid "Lexmark inkjet configuration"
-msgstr "Lexmark inkjet konfiguration"
-
-#: ../../printerdrake.pm_.c:1265
-msgid ""
-"The inkjet printer drivers provided by Lexmark only support local printers, "
-"no printers on remote machines or print server boxes. Please connect your "
-"printer to a local port or configure it on the machine where it is connected "
-"to."
-msgstr ""
-"Printerdriverne til inkjet som leveres af Lexmark understųtter kun lokale "
-"printere, ikke printere på eksterne maskiner eller printserverbokse. Forbind "
-"din printer til en lokal port eller konfigurér den på den maskine, den er "
-"forbundet til."
-
-#: ../../printerdrake.pm_.c:1292
-msgid ""
-"To be able to print with your Lexmark inkjet and this configuration, you "
-"need the inkjet printer drivers provided by Lexmark (http://www.lexmark."
-"com/). Go to the US site and click on the \"Drivers\" button. Then choose "
-"your model and afterwards \"Linux\" as operating system. The drivers come as "
-"RPM packages or shell scripts with interactive graphical installation. You "
-"do not need to do this configuration by the graphical frontends. Cancel "
-"directly after the license agreement. Then print printhead alignment pages "
-"with \"lexmarkmaintain\" and adjust the head alignment settings with this "
-"program."
-msgstr ""
-"For at kunne udskrive på din Lexmark inkjet fra denne konfigurering skal du "
-"bruge inkjet printerdriverne leveret af Lexmark (http://www.lexmark.com/). "
-"Gå til webstedet i USA og klik på 'Drivers'-knappen. Vęlg så din model og "
-"derefter 'Linux' som operativsystem. Driverne kommer som RPM-pakker eller "
-"skal-skripter med interaktiv grafisk installation. Du behųver ikke lave "
-"denne konfiguration via de grafiske gręnseflader. Annullér direkte efter "
-"licensaftalen. Udskriv derefter justeringsider for skrivehovedet med "
-"'lexmarkmaintain', og justér opsętningen af justeringen af hovedet med dette "
-"program."
-
-#: ../../printerdrake.pm_.c:1508
-msgid ""
-"Printer default settings\n"
-"\n"
-"You should make sure that the page size and the ink type/printing mode (if "
-"available) and also the hardware configuration of laser printers (memory, "
-"duplex unit, extra trays) are set correctly. Note that with a very high "
-"printout quality/resolution printing can get substantially slower."
-msgstr ""
-"Standardprinterens indstillinger\n"
-"\n"
-"Du bųr tjekke at sidestųrrelsen og blęktypen/udskriftstilstanden (hvis til "
-"stede) og også konfigurationen af laserprinterudstyr (hukommelse, duplex-"
-"enhed, ekstra bakker) er sat rigtigt. Bemęrk at en meget god "
-"udskriftskvalitet kan gųre udskriften betydeligt langsommere."
-
-#: ../../printerdrake.pm_.c:1517
-#, c-format
-msgid "Option %s must be an integer number!"
-msgstr "Valg %s skal vęre et helt tal!"
-
-#: ../../printerdrake.pm_.c:1521
-#, c-format
-msgid "Option %s must be a number!"
-msgstr "Valg %s skal vęre et tal!"
-
-#: ../../printerdrake.pm_.c:1526
-#, c-format
-msgid "Option %s out of range!"
-msgstr "Valg %s er udenfor område!"
-
-#: ../../printerdrake.pm_.c:1565
-#, c-format
-msgid ""
-"Do you want to set this printer (\"%s\")\n"
-"as the default printer?"
-msgstr ""
-"Ųnsker du fremover at bruge printeren \"%s\"\n"
-"som standard?"
-
-#: ../../printerdrake.pm_.c:1582
-msgid "Test pages"
-msgstr "Testsider"
-
-#: ../../printerdrake.pm_.c:1583
-msgid ""
-"Please select the test pages you want to print.\n"
-"Note: the photo test page can take a rather long time to get printed and on "
-"laser printers with too low memory it can even not come out. In most cases "
-"it is enough to print the standard test page."
-msgstr ""
-"Vęlg testsiderne du ųnsker at udskrive.\n"
-"Bemęrk: fototestsiden kan tage ret lang tid at skrive ud, og på "
-"laserprintere med for lidt hukommelse vil den måske ikke skrives ud i det "
-"hele taget. Som regel vil det vęre nok at udskrive standard-testsiden."
-
-#: ../../printerdrake.pm_.c:1587
-msgid "No test pages"
-msgstr "Ingen testsider"
-
-#: ../../printerdrake.pm_.c:1588
-msgid "Print"
-msgstr "Udskriv"
-
-#: ../../printerdrake.pm_.c:1590
-msgid "Standard test page"
-msgstr "Standard testside"
-
-#: ../../printerdrake.pm_.c:1593
-msgid "Alternative test page (Letter)"
-msgstr "Alternativ testside (letter)"
-
-#: ../../printerdrake.pm_.c:1596
-msgid "Alternative test page (A4)"
-msgstr "Alternativ testside (A4)"
-
-#: ../../printerdrake.pm_.c:1598
-msgid "Photo test page"
-msgstr "Fototestside"
-
-#: ../../printerdrake.pm_.c:1602
-msgid "Do not print any test page"
-msgstr "Udskriv ikke nogen testsider"
-
-#: ../../printerdrake.pm_.c:1610 ../../printerdrake.pm_.c:1747
-msgid "Printing test page(s)..."
-msgstr "Udskriver testsider..."
-
-#: ../../printerdrake.pm_.c:1635
-#, c-format
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-"Printing status:\n"
-"%s\n"
-"\n"
-msgstr ""
-"Testsider er blevet sendt til printeren.\n"
-"Dette kan tage lidt tid fųr printeren starter.\n"
-"Udskrivningsstatus:\n"
-"%s\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:1639
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-msgstr ""
-"Testsider er sendt til printeren.\n"
-"Det kan tage lidt tid fųr printeren starter.\n"
-
-#: ../../printerdrake.pm_.c:1646
-msgid "Did it work properly?"
-msgstr "Fungerer det korrekt?"
-
-#: ../../printerdrake.pm_.c:1667 ../../printerdrake.pm_.c:2732
-msgid "Raw printer"
-msgstr "Rå printer"
-
-#: ../../printerdrake.pm_.c:1685
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) you can either use "
-"the command \"%s <file>\" or a graphical printing tool: \"xpp <file>\" or "
-"\"kprinter <file>\". The graphical tools allow you to choose the printer and "
-"to modify the option settings easily.\n"
-msgstr ""
-"For at skrive en fil fra kommandolinjen (terminalvinduet) kan du enten bruge "
-"programmet '%s <fil>' eller et grafisk printervęrktųj: 'xpp <fil>' eller "
-"'kprinter <fil>'. De grafiske vęrktųjer lader dig vęlge printeren og ęndre "
-"indstillingerne på en nem måde.\n"
-
-#: ../../printerdrake.pm_.c:1687
-msgid ""
-"These commands you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications, but here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-"Disse kommandoer kan du også bruge fra 'udskrivningskommando'-feltet i "
-"udskriftsdialogerne i mange programmer, men lad vęre med at angive filnavnet "
-"her, fordi filen der skal udskrives leveres af programmet.\n"
-
-#: ../../printerdrake.pm_.c:1690 ../../printerdrake.pm_.c:1706
-#: ../../printerdrake.pm_.c:1716
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" command also allows to modify the option settings for a "
-"particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\". "
-msgstr ""
-"\n"
-"'%s'-kommandoen tillader også ęndring af indstillingsmulighederne for et "
-"bestemt udskriftsjob. Tilfųj blot de ųnskede indstillinger til "
-"kommandolinjen, fx '%s <fil>\". "
-
-#: ../../printerdrake.pm_.c:1693 ../../printerdrake.pm_.c:1732
-#, c-format
-msgid ""
-"To know about the options available for the current printer read either the "
-"list shown below or click on the \"Print option list\" button.%s\n"
-"\n"
-msgstr ""
-"Hvilke muligheder der er for den aktuelle printer kan du enten lęse på "
-"listen vist nedenfor, eller klikke på knappen 'liste med printermuligheder'%"
-"s.\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:1696
-msgid ""
-"Here is a list of the available printing options for the current printer:\n"
-"\n"
-msgstr ""
-"Her er en liste over tilgęngelige printmuligheder for den aktuelle printer:\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:1701 ../../printerdrake.pm_.c:1711
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\".\n"
-msgstr ""
-"For at udskrive en fil fra kommandolinjen (terminalvinduet) brug da "
-"kommandoen '%s <fil>'.\n"
-
-#: ../../printerdrake.pm_.c:1703 ../../printerdrake.pm_.c:1713
-#: ../../printerdrake.pm_.c:1723
-msgid ""
-"This command you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications. But here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-"Denne kommando kan du også bruge fra 'udskrivningskommando'-feltet i "
-"udskriftsdialogerne i mange programmer, men lad vęre med at angive filnavnet "
-"her, fordi filen der skal udskrives leveres af programmet.\n"
-
-#: ../../printerdrake.pm_.c:1708 ../../printerdrake.pm_.c:1718
-msgid ""
-"To get a list of the options available for the current printer click on the "
-"\"Print option list\" button."
-msgstr ""
-"For at få en liste af tilgęngelige muligheder for den aktuelle printer kan "
-"du klikke på knappen 'Liste med printermuligheder'."
-
-#: ../../printerdrake.pm_.c:1721
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\" or \"%s <file>\".\n"
-msgstr ""
-"For at udskrive en fil fra kommandolinjen (terminalvinduet) brug da "
-"kommandoen '%s <fil>' eller '%s <fil>'.\n"
-
-#: ../../printerdrake.pm_.c:1725
-msgid ""
-"You can also use the graphical interface \"xpdq\" for setting options and "
-"handling printing jobs.\n"
-"If you are using KDE as desktop environment you have a \"panic button\", an "
-"icon on the desktop, labeled with \"STOP Printer!\", which stops all print "
-"jobs immediately when you click it. This is for example useful for paper "
-"jams.\n"
-msgstr ""
-"Du kan også bruge den grafiske gręnseflade 'xpdq' til at sętte "
-"valgmuligheder og behandle udskriftsopgaver.\n"
-"Hvis du bruger KDE som skrivebordsmiljų, har du en 'panik-knap', en ikon på "
-"skrivebordet, benęvnt med 'STOP printer!', som stopper alle udskriftsopgaver "
-"ųjeblikkeligt når du klikker på den. Dette er fx nyttigt hvis papiret "
-"krųller sammen.\n"
-
-#: ../../printerdrake.pm_.c:1729
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" and \"%s\" commands also allow to modify the option settings for "
-"a particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\".\n"
-msgstr ""
-"\n"
-"'%s'- og '%s'-kommandoerne tillader også ęndring af indstillingsmulighederne "
-"for et bestemt udskriftsjob. Tilfųj blot de ųnskede indstillinger til "
-"kommandolinjen, fx '%s <fil>'.\n"
-
-#: ../../printerdrake.pm_.c:1738 ../../printerdrake.pm_.c:1744
-#: ../../printerdrake.pm_.c:1745 ../../printerdrake.pm_.c:1746
-#: ../../printerdrake.pm_.c:2716 ../../standalone/drakbackup_.c:754
-#: ../../standalone/drakbackup_.c:2458 ../../standalone/drakfont_.c:577
-#: ../../standalone/drakfont_.c:791
-msgid "Close"
-msgstr "Luk"
-
-#: ../../printerdrake.pm_.c:1741 ../../printerdrake.pm_.c:1753
-#, c-format
-msgid "Printing/Scanning on \"%s\""
-msgstr "Udskriver eller skanner på '%s'"
-
-#: ../../printerdrake.pm_.c:1742 ../../printerdrake.pm_.c:1754
-#, c-format
-msgid "Printing on the printer \"%s\""
-msgstr "Udskriver på printeren '%s'"
-
-#: ../../printerdrake.pm_.c:1744
-msgid "Print option list"
-msgstr "Liste med printermuligheder"
-
-#: ../../printerdrake.pm_.c:1766
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan with \"scanimage\" (\"scanimage -d hp:%s\" to specify "
-"the scanner when you have more than one) from the command line or with the "
-"graphical interfaces \"xscanimage\" or \"xsane\". If you are using the GIMP, "
-"you can also scan by choosing the appropriate point in the \"File\"/\"Acquire"
-"\" menu. Call also \"man scanimage\" and \"man sane-hp\" on the command line "
-"to get more information.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-"Din HP-multifunktionsenhed blev konfigureret automatisk til at kunne skanne. "
-"Nu kan du skanne med 'scanimage' ('scanimage -d hp:%s' for at angive "
-"skanneren hvis du har mere end én) fra kommandolinjen eller med den grafiske "
-"gręnseflade 'xscanimage' eller 'xsane'. Hvis du bruger GIMP kan du også "
-"skanne ved at vęlge det passende punkt i menuen 'Filer/Hent'. Brug også 'man "
-"scanimage' og 'man sane-hp' på kommandolinjen for at få mere information\n"
-"\n"
-"Brug ikke \"scannerdrake\" på denne enhed!"
-
-#: ../../printerdrake.pm_.c:1772
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan from the command line with \"ptal-hp %s scan ...\". "
-"Scanning via a graphical interface or from the GIMP is not supported yet for "
-"your device. More information you will find in the \"/usr/share/doc/hpoj-0.8/"
-"ptal-hp-scan.html\" file on your system. If you have an HP LaserJet 1100 or "
-"1200 you can only scan when you have the scanner option installed.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-"Din HP-multifunktionsenhed blev konfigureret automatisk til at kunne skanne. "
-"Nu kan du skanne med 'ptal-hp %s scan ...' fra kommandolinjen. Skanning via "
-"en grafisk gręnseflade eller fra GIMP er endnu ikke understųttet for din "
-"enhed. Du kan finde mere information i filen \"/usr/share/doc/hpoj-0.8/ptal-"
-"hp-scan.html\" på dit system. Hvis du har en HP LaserJet 1100 eller 1200 kan "
-"du kun skanne når du har skannermuligheden installeret på udstyret.\n"
-"\n"
-"Brug ikke \"scannerdrake\" på denne enhed!"
-
-#: ../../printerdrake.pm_.c:1794 ../../printerdrake.pm_.c:2221
-#: ../../printerdrake.pm_.c:2485 ../../standalone/printerdrake_.c:49
-msgid "Reading printer data ..."
-msgstr "Lęser printerdata ..."
-
-#: ../../printerdrake.pm_.c:1814 ../../printerdrake.pm_.c:1842
-#: ../../printerdrake.pm_.c:1877
-msgid "Transfer printer configuration"
-msgstr "Overfųr printerkonfiguration"
-
-#: ../../printerdrake.pm_.c:1815
-#, c-format
-msgid ""
-"You can copy the printer configuration which you have done for the spooler %"
-"s to %s, your current spooler. All the configuration data (printer name, "
-"description, location, connection type, and default option settings) is "
-"overtaken, but jobs will not be transferred.\n"
-"Not all queues can be transferred due to the following reasons:\n"
-msgstr ""
-"Du kan kopiere printerkonfigurationen du har sat op for kųserveren %s til %"
-"s, din nuvęrende kųserver. Al konfigurationsdata (printernavn, beskrivelse, "
-"opkoblingstype og standardindstillinger) bliver overtaget, men ikke "
-"opgaver.\n"
-"Ikke alle kųer kan overfųres på grund af:\n"
-
-#: ../../printerdrake.pm_.c:1818
-msgid ""
-"CUPS does not support printers on Novell servers or printers sending the "
-"data into a free-formed command.\n"
-msgstr ""
-"CUPS understųtter ikke printere på Novellservere eller printere som sender "
-"dataene ind i en frit-formet kommando.\n"
-
-#: ../../printerdrake.pm_.c:1820
-msgid ""
-"PDQ only supports local printers, remote LPD printers, and Socket/TCP "
-"printers.\n"
-msgstr ""
-"PDQ understųtter kun lokale printere, eksterne LPD printere, og Sokkel/TCP "
-"printere.\n"
-
-#: ../../printerdrake.pm_.c:1822
-msgid "LPD and LPRng do not support IPP printers.\n"
-msgstr "LPD og LPRng understųtter ikke IPP printere.\n"
-
-#: ../../printerdrake.pm_.c:1824
-msgid ""
-"In addition, queues not created with this program or \"foomatic-configure\" "
-"cannot be transferred."
-msgstr ""
-"Desuden kan kųer lavet med dette program eller \"foomatic -configure\" ikke "
-"overflyttes."
-
-#: ../../printerdrake.pm_.c:1825
-msgid ""
-"\n"
-"Also printers configured with the PPD files provided by their manufacturers "
-"or with native CUPS drivers cannot be transferred."
-msgstr ""
-"\n"
-"Printere konfigureret med PPD-filerne, som producenten har lavet, eller med "
-"CUPS egne drivere kan heller ikke overflyttes."
-
-#: ../../printerdrake.pm_.c:1826
-msgid ""
-"\n"
-"Mark the printers which you want to transfer and click \n"
-"\"Transfer\"."
-msgstr ""
-"\n"
-"Vęlg printerene som du vil overflytte og klik\n"
-"\"Overfųr\"."
-
-#: ../../printerdrake.pm_.c:1829
-msgid "Do not transfer printers"
-msgstr "Overfųr ikke printere"
-
-#: ../../printerdrake.pm_.c:1830 ../../printerdrake.pm_.c:1847
-msgid "Transfer"
-msgstr "Overfųr"
-
-#: ../../printerdrake.pm_.c:1843
-#, c-format
-msgid ""
-"A printer named \"%s\" already exists under %s. \n"
-"Click \"Transfer\" to overwrite it.\n"
-"You can also type a new name or skip this printer."
-msgstr ""
-"En printer med navnet \"%s\" eksisterer allerede på %s. \n"
-"Klik \"Overfųr\" for at overskrive.\n"
-"Du kan også give et nyt printernavn, eller overspringe denne printer."
-
-#: ../../printerdrake.pm_.c:1851
-msgid "Name of printer should contain only letters, numbers and the underscore"
-msgstr "Navn på printer bųr kun indeholde bogstaver, tal og understregen _"
-
-#: ../../printerdrake.pm_.c:1856
-#, c-format
-msgid ""
-"The printer \"%s\" already exists,\n"
-"do you really want to overwrite its configuration?"
-msgstr ""
-"Printeren \"%s\" eksisterer allerede,\n"
-"ųnsker du virkelig at overskrive dens konfiguration?"
-
-#: ../../printerdrake.pm_.c:1864
-msgid "New printer name"
-msgstr "Nyt printernavn"
-
-#: ../../printerdrake.pm_.c:1867
-#, c-format
-msgid "Transferring %s ..."
-msgstr "Overfųrer %s ..."
-
-#: ../../printerdrake.pm_.c:1878
-#, c-format
-msgid ""
-"You have transferred your former default printer (\"%s\"), Should it be also "
-"the default printer under the new printing system %s?"
-msgstr ""
-"Du har overfųrt din tidligere standard-printer '%s', skal den også vęre "
-"standard-printer under det nye printersystem %s?"
-
-#: ../../printerdrake.pm_.c:1887
-msgid "Refreshing printer data ..."
-msgstr "Opfrisker printerdata ..."
-
-#: ../../printerdrake.pm_.c:1895 ../../printerdrake.pm_.c:1966
-#: ../../printerdrake.pm_.c:1978
-msgid "Configuration of a remote printer"
-msgstr "Konfiguration af en ekstern printer"
-
-#: ../../printerdrake.pm_.c:1896
-msgid "Starting network ..."
-msgstr "Starter netvęrk ..."
-
-#: ../../printerdrake.pm_.c:1930 ../../printerdrake.pm_.c:1934
-#: ../../printerdrake.pm_.c:1936
-msgid "Configure the network now"
-msgstr "Konfigurér netvęrket nu"
-
-#: ../../printerdrake.pm_.c:1931
-msgid "Network functionality not configured"
-msgstr "Netvęrksfunktionalitet ikke konfigureret"
-
-#: ../../printerdrake.pm_.c:1932
-msgid ""
-"You are going to configure a remote printer. This needs working network "
-"access, but your network is not configured yet. If you go on without network "
-"configuration, you will not be able to use the printer which you are "
-"configuring now. How do you want to proceed?"
-msgstr ""
-"Du er ved at konfigurere en ekstern printer. Dette kręver en virkende "
-"netvęrksadgang, men dit netvęrk er endnu ikke konfigureret. Hvis du vil "
-"fortsętte uden en netvęrkskonfiguration, vil du ikke kunne bruge printeren "
-"som du konfigurerer nu. Hvordan ųnsker du at fortsętte?"
-
-#: ../../printerdrake.pm_.c:1935
-msgid "Go on without configuring the network"
-msgstr "Fortsęt med konfigurering af netvęrk"
-
-#: ../../printerdrake.pm_.c:1968
-msgid ""
-"The network configuration done during the installation cannot be started "
-"now. Please check whether the network gets accessable after booting your "
-"system and correct the configuration using the Mandrake Control Center, "
-"section \"Network & Internet\"/\"Connection\", and afterwards set up the "
-"printer, also using the Mandrake Control Center, section \"Hardware\"/"
-"\"Printer\""
-msgstr ""
-"Netvęrksopsętningen lavet under installationen kan ikke startes nu. Tjek om "
-"netvęrket bliver tilgęngeligt efter opstart af dit system, og ret "
-"konfigurationen med Mandrake Kontrolcenter, afsnittet 'Netvęrk og internet'/ "
-"'Forbindelse', og konfigurér derefter printeren også med Mandrake "
-"Kontrolcenter, afsnittet om 'Maskinel'/'Printer'"
-
-#: ../../printerdrake.pm_.c:1969
-msgid ""
-"The network access was not running and could not be started. Please check "
-"your configuration and your hardware. Then try to configure your remote "
-"printer again."
-msgstr ""
-"Netvęrksadgangen kųrte ikke og kunne ikke startes. Tjek din konfiguration og "
-"dit udstyr. Prųv derefter at konfigurere din eksterne printer igen."
-
-#: ../../printerdrake.pm_.c:1979
-msgid "Restarting printing system ..."
-msgstr "Genstarter printsystemet ..."
-
-#: ../../printerdrake.pm_.c:2017
-msgid "high"
-msgstr "hųj"
-
-#: ../../printerdrake.pm_.c:2017
-msgid "paranoid"
-msgstr "paranoid"
-
-#: ../../printerdrake.pm_.c:2018
-#, c-format
-msgid "Installing a printing system in the %s security level"
-msgstr "Installerer et printersystem på sikkerhedsniveauet %s"
-
-#: ../../printerdrake.pm_.c:2019
-#, c-format
-msgid ""
-"You are about to install the printing system %s on a system running in the %"
-"s security level.\n"
-"\n"
-"This printing system runs a daemon (background process) which waits for "
-"print jobs and handles them. This daemon is also accessable by remote "
-"machines through the network and so it is a possible point for attacks. "
-"Therefore only a few selected daemons are started by default in this "
-"security level.\n"
-"\n"
-"Do you really want to configure printing on this machine?"
-msgstr ""
-"Du er ved at installere printsystemet %s på et system kųrende på "
-"sikkerhedsniveau %s.\n"
-"\n"
-"Dette printsystem kųrer som en dęmon (baggrundsproces) som venter på "
-"printeropgaver og behandler dem. Denne dęmon er også tilgęngelig for "
-"eksterne maskiner via netvęrket, og derfor er det et muligt angrebspunkt. "
-"Derfor bliver kun nogle få udvalgte dęmoner startet op som standard i dette "
-"sikkerhedsniveau.\n"
-"\n"
-"Ųnsker du virkelig at konfigurere udskrivning på denne maskine?"
-
-#: ../../printerdrake.pm_.c:2051
-msgid "Starting the printing system at boot time"
-msgstr "Starter printsystemet ved opstart"
-
-#: ../../printerdrake.pm_.c:2052
-#, c-format
-msgid ""
-"The printing system (%s) will not be started automatically when the machine "
-"is booted.\n"
-"\n"
-"It is possible that the automatic starting was turned off by changing to a "
-"higher security level, because the printing system is a potential point for "
-"attacks.\n"
-"\n"
-"Do you want to have the automatic starting of the printing system turned on "
-"again?"
-msgstr ""
-"Printsystemet (%s) vil ikke blive startet automatisk, når maskinen startes "
-"op.\n"
-"Det er muligt at den automatiske opstart blev slået fra ved ęndring til et "
-"hųjere sikkerhedsniveau, fordi printsystemet er et muligt angrebspunkt.\n"
-"\n"
-"Ųnsker du at have den automatiske opstart af printsystemet slået til igen?"
-
-#: ../../printerdrake.pm_.c:2075 ../../printerdrake.pm_.c:2113
-#: ../../printerdrake.pm_.c:2143 ../../printerdrake.pm_.c:2176
-#: ../../printerdrake.pm_.c:2281
-msgid "Checking installed software..."
-msgstr "Tjekker installeret programmel..."
-
-#: ../../printerdrake.pm_.c:2117
-msgid "Removing LPRng..."
-msgstr "Fjerner LPRng..."
-
-#: ../../printerdrake.pm_.c:2147
-msgid "Removing LPD..."
-msgstr "Fjerner LPD..."
-
-#: ../../printerdrake.pm_.c:2205
-msgid "Select Printer Spooler"
-msgstr "Vęlg printerkų-behandler"
-
-#: ../../printerdrake.pm_.c:2206
-msgid "Which printing system (spooler) do you want to use?"
-msgstr "Hvilket printersystem (spooler) ųnsker du at bruge?"
-
-#: ../../printerdrake.pm_.c:2239
-#, c-format
-msgid "Configuring printer \"%s\" ..."
-msgstr "Konfigurerer printer '%s'..."
-
-#: ../../printerdrake.pm_.c:2252
-msgid "Installing Foomatic ..."
-msgstr "Installerer Foomatic..."
-
-#: ../../printerdrake.pm_.c:2309 ../../printerdrake.pm_.c:2348
-#: ../../printerdrake.pm_.c:2733 ../../printerdrake.pm_.c:2803
-msgid "Printer options"
-msgstr "Printer-muligheder"
-
-#: ../../printerdrake.pm_.c:2318
-msgid "Preparing PrinterDrake ..."
-msgstr "Forbereder PrinterDrake ..."
-
-#: ../../printerdrake.pm_.c:2335 ../../printerdrake.pm_.c:2890
-msgid "Configuring applications..."
-msgstr "Konfigurerer programmer..."
-
-#: ../../printerdrake.pm_.c:2355
-msgid "Would you like to configure printing?"
-msgstr "Vil du gerne konfigurere udskrivning?"
-
-#: ../../printerdrake.pm_.c:2367
-msgid "Printing system: "
-msgstr "Printsystem: "
-
-#: ../../printerdrake.pm_.c:2415
-msgid "Printerdrake"
-msgstr "Printerdrake"
-
-#: ../../printerdrake.pm_.c:2419
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; to view information about it; "
-"or to make a printer on a remote CUPS server available for Star Office/"
-"OpenOffice.org."
-msgstr ""
-"De fųlgende printere er konfigureret. Dobbeltklik på en printer for at ęndre "
-"dens indstillinger; for at gųre den til standard-printer: for at se "
-"information om den; eller for at gųre en ekstern CUPS-printer tilgęngelig "
-"for Star Office/OpenOffice.org.org."
-
-#: ../../printerdrake.pm_.c:2420
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; or to view information about "
-"it."
-msgstr ""
-"De fųlgende printere er konfigureret. Dobbeltklik på en printer for at ęndre "
-"dens indstillinger, for at gųre den til standard-printer, eller for at se "
-"information om den."
-
-#: ../../printerdrake.pm_.c:2446
-msgid "Refresh printer list (to display all available remote CUPS printers)"
-msgstr ""
-"Opfrisk printerliste (for at vise alle tilgęngelige eksterne CUPS-printere)"
-
-#: ../../printerdrake.pm_.c:2464
-msgid "Change the printing system"
-msgstr "Ęndr printsystemet"
-
-#: ../../printerdrake.pm_.c:2469 ../../standalone/draknet_.c:278
-msgid "Normal Mode"
-msgstr "Normal udgave"
-
-#: ../../printerdrake.pm_.c:2625 ../../printerdrake.pm_.c:2675
-#: ../../printerdrake.pm_.c:2884
-msgid "Do you want to configure another printer?"
-msgstr "Ųnsker du at konfigurere en anden printer?"
-
-#: ../../printerdrake.pm_.c:2711
-msgid "Modify printer configuration"
-msgstr "Ęndr printerkonfiguration"
-
-#: ../../printerdrake.pm_.c:2713
-#, c-format
-msgid ""
-"Printer %s\n"
-"What do you want to modify on this printer?"
-msgstr ""
-"Printer %s\n"
-"Hvad ųnsker du at forandre på, på denne printer?"
-
-#: ../../printerdrake.pm_.c:2717
-msgid "Do it!"
-msgstr "Gųr det!"
-
-#: ../../printerdrake.pm_.c:2722 ../../printerdrake.pm_.c:2777
-msgid "Printer connection type"
-msgstr "Printeropkoblingstype"
-
-#: ../../printerdrake.pm_.c:2723 ../../printerdrake.pm_.c:2781
-msgid "Printer name, description, location"
-msgstr "Printernavn, beskrivelse, sted"
-
-#: ../../printerdrake.pm_.c:2725 ../../printerdrake.pm_.c:2796
-msgid "Printer manufacturer, model, driver"
-msgstr "Printerproducent, model, driver"
-
-#: ../../printerdrake.pm_.c:2726 ../../printerdrake.pm_.c:2797
-msgid "Printer manufacturer, model"
-msgstr "Printerproducent, model"
-
-#: ../../printerdrake.pm_.c:2735 ../../printerdrake.pm_.c:2807
-msgid "Set this printer as the default"
-msgstr "Sęt printeren som standard-printer"
-
-#: ../../printerdrake.pm_.c:2737 ../../printerdrake.pm_.c:2812
-msgid "Add this printer to Star Office/OpenOffice.org"
-msgstr "Tilfųj denne printer til Star Office/OpenOffice.org.org"
-
-#: ../../printerdrake.pm_.c:2738 ../../printerdrake.pm_.c:2821
-msgid "Remove this printer from Star Office/OpenOffice.org"
-msgstr "Fjern denne printer fra Star Office/OpenOffice.org.org"
-
-#: ../../printerdrake.pm_.c:2739 ../../printerdrake.pm_.c:2830
-msgid "Print test pages"
-msgstr "Udskriver testsider"
-
-#: ../../printerdrake.pm_.c:2740 ../../printerdrake.pm_.c:2832
-msgid "Know how to use this printer"
-msgstr "Véd hvordan denne printer bruges"
-
-#: ../../printerdrake.pm_.c:2742 ../../printerdrake.pm_.c:2834
-msgid "Remove printer"
-msgstr "Fjern printer"
-
-#: ../../printerdrake.pm_.c:2786
-#, c-format
-msgid "Removing old printer \"%s\" ..."
-msgstr "Fjerner gammel printer \"%s\" ..."
-
-#: ../../printerdrake.pm_.c:2810
-msgid "Default printer"
-msgstr "Standard printer"
-
-#: ../../printerdrake.pm_.c:2811
-#, c-format
-msgid "The printer \"%s\" is set as the default printer now."
-msgstr "Printeren '%s' er nu sat som standard-printer."
-
-#: ../../printerdrake.pm_.c:2815 ../../printerdrake.pm_.c:2818
-msgid "Adding printer to Star Office/OpenOffice.org"
-msgstr "Tilfųjer printer til Star Office/OpenOffice.org.org"
-
-#: ../../printerdrake.pm_.c:2816
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully added to Star Office/OpenOffice.org."
-msgstr "Printeren \"%s\" blev tilfųjet til Star Office/OpenOffice.org.org."
-
-#: ../../printerdrake.pm_.c:2819
-#, c-format
-msgid "Failed to add the printer \"%s\" to Star Office/OpenOffice.org."
-msgstr ""
-"Kunne ikke tilfųje printeren \"%s\" til Star Office/OpenOffice.org.org."
-
-#: ../../printerdrake.pm_.c:2824 ../../printerdrake.pm_.c:2827
-msgid "Removing printer from Star Office/OpenOffice.org"
-msgstr "Fjerner printer fra Star Office/OpenOffice.org.org"
-
-#: ../../printerdrake.pm_.c:2825
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully removed from Star Office/OpenOffice.org."
-msgstr "Printeren \"%s\" blev fjernet fra Star Office/OpenOffice.org.org."
-
-#: ../../printerdrake.pm_.c:2828
-#, c-format
-msgid "Failed to remove the printer \"%s\" from Star Office/OpenOffice.org."
-msgstr "Kunne ikke fjerne printeren \"%s\" fra Star Office/OpenOffice.org.org."
-
-#: ../../printerdrake.pm_.c:2836
-#, c-format
-msgid "Do you really want to remove the printer \"%s\"?"
-msgstr "Ųnsker du virkelig at fjerne printeren \"%s\"?"
-
-#: ../../printerdrake.pm_.c:2838
-#, c-format
-msgid "Removing printer \"%s\" ..."
-msgstr "Fjerner printer \"%s\" ..."
-
-#: ../../proxy.pm_.c:29 ../../proxy.pm_.c:37 ../../proxy.pm_.c:58
-#: ../../proxy.pm_.c:78
-msgid "Proxy configuration"
-msgstr "Konfiguration af proxy (mellemvęrt)"
-
-#: ../../proxy.pm_.c:30
-msgid ""
-"Welcome to the proxy configuration utility.\n"
-"\n"
-"Here, you'll be able to set up your http and ftp proxies\n"
-"with or without login and password\n"
-msgstr ""
-"Velkommen til programmet for proxy-konfigurering.\n"
-"\n"
-"Her vil du kunne opsętte dine http- og ftp-proxyer\n"
-"med eller uden brugernavn og adgangskode\n"
-
-#: ../../proxy.pm_.c:38
-msgid ""
-"Please fill in the http proxy informations\n"
-"Leave it blank if you don't want an http proxy"
-msgstr ""
-"Udfyld venligst oplysningerne om http-proxy\n"
-"Lad det vęre blankt hvis du ikke ųnsker en http-proxy"
-
-#: ../../proxy.pm_.c:39 ../../proxy.pm_.c:60
-msgid "URL"
-msgstr "URL"
-
-#: ../../proxy.pm_.c:40 ../../proxy.pm_.c:61
-msgid "port"
-msgstr "port"
-
-#: ../../proxy.pm_.c:44
-msgid "Url should begin with 'http:'"
-msgstr "Url burde begynde med 'http:'"
-
-#: ../../proxy.pm_.c:48 ../../proxy.pm_.c:69
-msgid "The port part should be numeric"
-msgstr "Port-delen bųr vęre numerisk"
-
-#: ../../proxy.pm_.c:59
-msgid ""
-"Please fill in the ftp proxy informations\n"
-"Leave it blank if you don't want an ftp proxy"
-msgstr ""
-"Udfyld venligst oplysningerne om ftp-proxy\n"
-"Lad det vęre blankt hvis du ikke ųnsker en ftp-proxy"
-
-#: ../../proxy.pm_.c:65
-msgid "Url should begin with 'ftp:'"
-msgstr "Url burde begynde med 'ftp:'"
-
-#: ../../proxy.pm_.c:79
-msgid ""
-"Please enter proxy login and password, if any.\n"
-"Leave it blank if you don't want login/passwd"
-msgstr ""
-"Indtast brugernavn og adgangskode på proxy, hvis nųdvendigt.\n"
-"Lad det vęre blankt hvis du ikke ųnsker brugernavn/adgangskode"
-
-#: ../../proxy.pm_.c:80
-msgid "login"
-msgstr "brugernavn"
-
-#: ../../proxy.pm_.c:82
-msgid "password"
-msgstr "adgangskode"
-
-#: ../../proxy.pm_.c:84
-msgid "re-type password"
-msgstr "genindtast adgangskode"
-
-#: ../../proxy.pm_.c:88
-msgid "The passwords don't match. Try again!"
-msgstr "Adgangskoderne stemmer ikke overens. Prųv igen!"
-
-#: ../../raid.pm_.c:35
-#, c-format
-msgid "Can't add a partition to _formatted_ RAID md%d"
-msgstr "Kan ikke tilfųje en partition til _formatéret_ RAID md%d"
-
-#: ../../raid.pm_.c:111
-#, c-format
-msgid "Can't write file %s"
-msgstr "Kan ikke skrive filen %s"
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed"
-msgstr "mkraid fejlede"
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed (maybe raidtools are missing?)"
-msgstr "mkraid fejlede (måske mangler raidtools?)"
-
-#: ../../raid.pm_.c:152
-#, c-format
-msgid "Not enough partitions for RAID level %d\n"
-msgstr "Ikke nok partitioner til at benytte RAID level %d\n"
-
-#: ../../services.pm_.c:14
-msgid "Launch the ALSA (Advanced Linux Sound Architecture) sound system"
-msgstr "Start ALSA (Advanced Linux Sound Architecture) lydsystemet"
-
-#: ../../services.pm_.c:15
-msgid "Anacron a periodic command scheduler."
-msgstr "Anacron en periodisk kommando planlęgger"
-
-#: ../../services.pm_.c:16
-msgid ""
-"apmd is used for monitoring batery status and logging it via syslog.\n"
-"It can also be used for shutting down the machine when the battery is low."
-msgstr ""
-"apmd bruges til at overvåge batteristatus og skrive log til syslog.\n"
-"Den kan også bruges til at lukke maskinen når batteriet er på lav."
-
-#: ../../services.pm_.c:18
-msgid ""
-"Runs commands scheduled by the at command at the time specified when\n"
-"at was run, and runs batch commands when the load average is low enough."
-msgstr ""
-"Kųrer planlagte kommandoer med 'at' kommandoen på tiden specificeret da 'at' "
-"blev kųrt, og kųrer batch kommandoer når den gennemsnitlige systembelastning "
-"er lav nok"
-
-#: ../../services.pm_.c:20
-msgid ""
-"cron is a standard UNIX program that runs user-specified programs\n"
-"at periodic scheduled times. vixie cron adds a number of features to the "
-"basic\n"
-"UNIX cron, including better security and more powerful configuration options."
-msgstr ""
-"cron er et standard UNIX program der kųrer bruger-specifikke programmer på "
-"planlagte tidspunkter. Vixie cron tilfųjer en del forbedringer til den "
-"basale UNIX cron, inklusive bedre sikkerhed og stęrkere "
-"konfigurationsmuligheder."
-
-#: ../../services.pm_.c:23
-msgid ""
-"GPM adds mouse support to text-based Linux applications such the\n"
-"Midnight Commander. It also allows mouse-based console cut-and-paste "
-"operations,\n"
-"and includes support for pop-up menus on the console."
-msgstr ""
-"GPM tilfųjer muse-support til tekst-baserede Linux applikationer såsom "
-"Midnight Commander. Den tillader muse-baseret kopiér-og-sętind operationer "
-"på konsollen og inkluderer support for pop-op-menuer i konsollen."
-
-#: ../../services.pm_.c:26
-msgid ""
-"HardDrake runs a hardware probe, and optionally configures\n"
-"new/changed hardware."
-msgstr ""
-"HardDrake kųrer en sųgning efter maskinel, og kan konfigurere nyt/ęndret "
-"maskinel."
-
-#: ../../services.pm_.c:28 ../../standalone/logdrake_.c:412
-msgid ""
-"Apache is a World Wide Web server. It is used to serve HTML files and CGI."
-msgstr "Apache er en webserver. Den bruges til at betjene HTML-filer og CGI."
-
-#: ../../services.pm_.c:29
-msgid ""
-"The internet superserver daemon (commonly called inetd) starts a\n"
-"variety of other internet services as needed. It is responsible for "
-"starting\n"
-"many services, including telnet, ftp, rsh, and rlogin. Disabling inetd "
-"disables\n"
-"all of the services it is responsible for."
-msgstr ""
-"Internet superserver-dęmonen (kaldet inetd) starter forskellige internet-"
-"tjenester efter behov. Den er ansvarlig for at starte tjenester som telnet, "
-"ftp, rsh og rlogin. Hvis inetd deaktiveres, deaktiveres alle de tjenester, "
-"den er ansvarlig for."
-
-#: ../../services.pm_.c:33
-msgid ""
-"Launch packet filtering for Linux kernel 2.2 series, to set\n"
-"up a firewall to protect your machine from network attacks."
-msgstr ""
-"Start pakkefiltrering for Linux kerne 2.2 serien for at opsętte en brandmur "
-"til at beskytte din maskine mod netvęrksangreb."
-
-#: ../../services.pm_.c:35
-msgid ""
-"This package loads the selected keyboard map as set in\n"
-"/etc/sysconfig/keyboard. This can be selected using the kbdconfig utility.\n"
-"You should leave this enabled for most machines."
-msgstr ""
-"Denne pakke indlęser den valgte tastatur-tabel, som valgt i /etc/sysconfig/"
-"keyboard. Dette kan vęlges i kbdconfig programmet. Dette bųr vęre slået til "
-"på de fleste maskiner."
-
-#: ../../services.pm_.c:38
-msgid ""
-"Automatic regeneration of kernel header in /boot for\n"
-"/usr/include/linux/{autoconf,version}.h"
-msgstr ""
-"Automatisk regenerering af kernehoved i /boot for\n"
-"/usr/include/linux/{autoconf,version}.h"
-
-#: ../../services.pm_.c:40
-msgid "Automatic detection and configuration of hardware at boot."
-msgstr "automatisk opdagelse og konfigurering af maskinel ved opstart."
-
-#: ../../services.pm_.c:41
-msgid ""
-"Linuxconf will sometimes arrange to perform various tasks\n"
-"at boot-time to maintain the system configuration."
-msgstr ""
-"Linuxconf vil nogen gange arrangere udfųrelse af forskellige opgaver ved "
-"opstart for at vedligeholde systemkonfigurationen."
-
-#: ../../services.pm_.c:43
-msgid ""
-"lpd is the print daemon required for lpr to work properly. It is\n"
-"basically a server that arbitrates print jobs to printer(s)."
-msgstr ""
-"lpd er printer-dęmonen som er nųdvendig for at lpr virker.\n"
-"Den er basalt en server der håndterer udskrifts-opgaver."
-
-#: ../../services.pm_.c:45
-msgid ""
-"Linux Virtual Server, used to build a high-performance and highly\n"
-"available server."
-msgstr ""
-"Linux Virtuel Server, brugt til at bygge en server med hųj ydelse og\n"
-"tilgęngelighed."
-
-#: ../../services.pm_.c:47 ../../standalone/logdrake_.c:413
-msgid ""
-"named (BIND) is a Domain Name Server (DNS) that is used to resolve host "
-"names to IP addresses."
-msgstr ""
-"named (BIND) er en domęne-navneserver (DNS) der bruges til opslag af IP-"
-"adresser for vęrtsnavne."
-
-#: ../../services.pm_.c:48
-msgid ""
-"Mounts and unmounts all Network File System (NFS), SMB (Lan\n"
-"Manager/Windows), and NCP (NetWare) mount points."
-msgstr ""
-"Monterer og afmonterer alle netvęrks filsystemer (NFS), SMB (LanManager/"
-"Windows) og NCP (NetWare) monterings-stier"
-
-#: ../../services.pm_.c:50
-msgid ""
-"Activates/Deactivates all network interfaces configured to start\n"
-"at boot time."
-msgstr ""
-"Aktiverer/deaktiverer alle netvęrks-kort som er konfigureret\n"
-"til at starte ved opstart"
-
-#: ../../services.pm_.c:52
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP networks.\n"
-"This service provides NFS server functionality, which is configured via the\n"
-"/etc/exports file."
-msgstr ""
-"NFS er en populęr protokol til fildeling over TCP/IP netvęrk.\n"
-"Denne tjeneste giver NFS-serverfunktionalitet, som konfigureres gennem /etc/"
-"exports filen"
-
-#: ../../services.pm_.c:55
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP\n"
-"networks. This service provides NFS file locking functionality."
-msgstr ""
-"NFS er en populęr protokol til fildeling over TCP/IP\n"
-"netvęrk. Denne service giver NFS fillåsnings funktionalitet"
-
-#: ../../services.pm_.c:57
-msgid ""
-"Automatically switch on numlock key locker under console\n"
-"and XFree at boot."
-msgstr ""
-"Aktiverer automatisk numlock-tast i konsol og XFree ved\n"
-"opstart."
-
-#: ../../services.pm_.c:59
-msgid "Support the OKI 4w and compatible winprinters."
-msgstr "Stųtter OKI 4w og kompatible winprintere."
-
-#: ../../services.pm_.c:60
-msgid ""
-"PCMCIA support is usually to support things like ethernet and\n"
-"modems in laptops. It won't get started unless configured so it is safe to "
-"have\n"
-"it installed on machines that don't need it."
-msgstr ""
-"PCMCIA understųttelse er normalt til at understųtte ting som ethernet og "
-"modemer på bęrbare. Den vil ikke blive startet medmindre den er "
-"konfigureret, så det er sikkert at have den installeret på maskiner der ikke "
-"har behov for den."
-
-#: ../../services.pm_.c:63
-msgid ""
-"The portmapper manages RPC connections, which are used by\n"
-"protocols such as NFS and NIS. The portmap server must be running on "
-"machines\n"
-"which act as servers for protocols which make use of the RPC mechanism."
-msgstr ""
-"Portmapper håndterer RPC tilslutninger, som bliver brugt af protokoller som "
-"NFS og NIS. Portmap serveren skal kųre på maskiner som bruger protokoller "
-"der udnytter RPC mekanismen"
-
-#: ../../services.pm_.c:66 ../../standalone/logdrake_.c:415
-msgid ""
-"Postfix is a Mail Transport Agent, which is the program that moves mail from "
-"one machine to another."
-msgstr ""
-"Postfix er en transport-agent for post, som bruges af programmer der flytter "
-"post fra en maskine til en anden."
-
-#: ../../services.pm_.c:67
-msgid ""
-"Saves and restores system entropy pool for higher quality random\n"
-"number generation."
-msgstr ""
-"Gemmer og henter systemets entropipųl for en hųjre kvalitet\n"
-"ved generering af tilfęldige tal."
-
-#: ../../services.pm_.c:69
-msgid ""
-"Assign raw devices to block devices (such as hard drive\n"
-"partitions), for the use of applications such as Oracle"
-msgstr ""
-"Tilordn rå enheder til blokenheder (som harddisk-\n"
-"partitioner) til brug af applikationer som Oracle"
-
-#: ../../services.pm_.c:71
-msgid ""
-"The routed daemon allows for automatic IP router table updated via\n"
-"the RIP protocol. While RIP is widely used on small networks, more complex\n"
-"routing protocols are needed for complex networks."
-msgstr ""
-"Routed dęmonen giver mulighed for automatisk IP rutetabel opdatering via RIP "
-"protokollen. RIP kan bruges til små netvęrk, men når det kommer til mere "
-"komplekse netvęrk er der behov for en mere kompleks protokol."
-
-#: ../../services.pm_.c:74
-msgid ""
-"The rstat protocol allows users on a network to retrieve\n"
-"performance metrics for any machine on that network."
-msgstr ""
-"rstat protokollen tillader brugere på et netvęrk at hente systeminformation "
-"fra enhver maskine på dette netvęrk."
-
-#: ../../services.pm_.c:76
-msgid ""
-"The rusers protocol allows users on a network to identify who is\n"
-"logged in on other responding machines."
-msgstr ""
-"rusers protokollen tillader brugere på et netvęrk a identificere\n"
-"hvem der er logget på andre maskiner"
-
-#: ../../services.pm_.c:78
-msgid ""
-"The rwho protocol lets remote users get a list of all of the users\n"
-"logged into a machine running the rwho daemon (similiar to finger)."
-msgstr ""
-"rwho protokollen tillader eksterne brugere at hente en liste over alle "
-"brugere der er logget ind på en maskine, der kųrer rwho dęmonen (minder om "
-"finger)."
-
-#: ../../services.pm_.c:80
-msgid "Launch the sound system on your machine"
-msgstr "Start lydsystemet på din maskine"
-
-#: ../../services.pm_.c:81
-msgid ""
-"Syslog is the facility by which many daemons use to log messages\n"
-"to various system log files. It is a good idea to always run syslog."
-msgstr ""
-"Syslog er en facilitet som mange dęmoner bruger til log beskeder\n"
-"Det er en god idé altid at kųre syslog"
-
-#: ../../services.pm_.c:83
-msgid "Load the drivers for your usb devices."
-msgstr "Indlęs driverne for dine usb-enheder."
-
-#: ../../services.pm_.c:84
-msgid "Starts the X Font Server (this is mandatory for XFree to run)."
-msgstr ""
-"Starter X-font serveren (dette er obligatorisk for at XFree skal kųre)."
-
-#: ../../services.pm_.c:110 ../../services.pm_.c:152
-msgid "Choose which services should be automatically started at boot time"
-msgstr "Vęlg hvilke tjenester der skal startes automatisk ved opstart"
-
-#: ../../services.pm_.c:122
-msgid "Printing"
-msgstr "Printning"
-
-#: ../../services.pm_.c:123
-msgid "Internet"
-msgstr "Internet"
-
-#: ../../services.pm_.c:126
-msgid "File sharing"
-msgstr "Fildeling"
-
-#: ../../services.pm_.c:128 ../../standalone/drakbackup_.c:934
-msgid "System"
-msgstr "System"
-
-#: ../../services.pm_.c:133
-msgid "Remote Administration"
-msgstr "Ekstern administration"
-
-#: ../../services.pm_.c:141
-msgid "Database Server"
-msgstr "Databaseserver"
-
-#: ../../services.pm_.c:170
-#, c-format
-msgid "Services: %d activated for %d registered"
-msgstr "Tjenester: %d aktiverede for %d registrerede"
-
-#: ../../services.pm_.c:186
-msgid "Services"
-msgstr "Tjenester"
-
-#: ../../services.pm_.c:198
-msgid "running"
-msgstr "kųrer"
-
-#: ../../services.pm_.c:198
-msgid "stopped"
-msgstr "stoppet"
-
-#: ../../services.pm_.c:212
-msgid "Services and deamons"
-msgstr "Tjenester og dęmoner"
-
-#: ../../services.pm_.c:217
-msgid ""
-"No additional information\n"
-"about this service, sorry."
-msgstr ""
-"Beklager, der er ingen ekstra\n"
-"information om denne tjeneste."
-
-#: ../../services.pm_.c:224
-msgid "On boot"
-msgstr "Ved opstart"
-
-#: ../../services.pm_.c:236
-msgid "Start"
-msgstr "Start"
-
-#: ../../services.pm_.c:236
-msgid "Stop"
-msgstr "Stop"
-
-#: ../../share/advertising/00-thanks.pl_.c:9
-msgid "Thank you for choosing Mandrake Linux 8.2"
-msgstr "Tak fordi du valgte Mandrake Linux 8.2"
-
-#: ../../share/advertising/00-thanks.pl_.c:10
-msgid "Welcome to the Open Source world"
-msgstr "Velkommen til en verden af åben kildekode"
-
-#: ../../share/advertising/00-thanks.pl_.c:11
-msgid ""
-"The success of MandrakeSoft is based upon the principle of Free Software. "
-"Your new operating system is the result of collaborative work on the part of "
-"the worldwide Linux Community"
-msgstr ""
-"MandrakeSofts succes er baseret på princippet om frit programmel. Dit nye "
-"operativsystem er resultatet af et samarbejde i det verdensomspęndende Linux-"
-"samfund"
-
-#: ../../share/advertising/01-gnu.pl_.c:9
-msgid "Join the Free Software world"
-msgstr "Vęr med i det frie programmels verden"
-
-#: ../../share/advertising/01-gnu.pl_.c:10
-msgid ""
-"Get to know the Open Source community and become a member. Learn, teach, and "
-"help others by joining the many discussion forums that you will find in our "
-"\"Community\" webpages"
-msgstr ""
-"Kom til at kende Åben Kildekode-samfundet og bliv medlem. Lęr, undervis og "
-"hjęlp andre ved at vęre med i de mange diskussionsfora som du finder på "
-"vores 'Samfunds'-netsider."
-
-#: ../../share/advertising/02-internet.pl_.c:9
-msgid "Internet and Messaging"
-msgstr "Internet og beskeder"
-
-#: ../../share/advertising/02-internet.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best software to access everything the "
-"Internet has to offer: Surf the web & view animations with Mozilla and "
-"Konqueror, exchange email & organize your personal information with "
-"Evolution and Kmail, and much more"
-msgstr ""
-"Mandrake Linux 8.2 giver dig det bedste programmel til at få adgang til alt "
-"hvad internettet har at tilbyde. Surf på nettet og se animationer med "
-"Mozilla og Konqueror, udveksl post og organiser dine personlige "
-"informationer med Evolution og Kmail, og meget mere."
-
-#: ../../share/advertising/03-graphic.pl_.c:9
-msgid "Multimedia and Graphics"
-msgstr "Multimedie og Grafik"
-
-#: ../../share/advertising/03-graphic.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 lets you push your multimedia computer to its limits! Use "
-"the latest software to play music and audio files, edit and organize your "
-"images and photos, watch TV and videos, and much more"
-msgstr ""
-"Mandrake Linux 8.2 vil kunne presse din mulitimediemaskine til det yderste! "
-"Brug det nyeste programmel til at afspille musik og lydfiler, redigér og "
-"organiser dine billeder eller foto, se tv, og videoer, og meget mere"
-
-#: ../../share/advertising/04-develop.pl_.c:9
-msgid "Development"
-msgstr "Udvikling"
-
-#: ../../share/advertising/04-develop.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 is the ultimate development platform. Discover the power "
-"of the GNU gcc compiler as well as the best Open Source development "
-"environments"
-msgstr ""
-"Mandrake Linux 8.2 er den ultimative udviklingsplatform. Opdag styrken i GNU "
-"gcc-oversętteren og de bedste Åben Kildekode-udviklingsmiljųer"
-
-#: ../../share/advertising/05-contcenter.pl_.c:9
-msgid "Mandrake Control Center"
-msgstr "Mandrake Kontrolcenter"
-
-#: ../../share/advertising/05-contcenter.pl_.c:10
-msgid ""
-"The Mandrake Linux 8.2 Control Center is a one-stop location for fully "
-"customizing and configuring your Mandrake system"
-msgstr ""
-"Mandrake Linux 8.2 kontrolcenter er et samlet sted til fuldt ud at tilpasse "
-"og konfigurere dit Mandrake-system"
-
-#: ../../share/advertising/06-user.pl_.c:9
-msgid "User interfaces"
-msgstr "Brugergręnseflader"
-
-#: ../../share/advertising/06-user.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides 11 different graphical desktop environments and "
-"window managers to choose from including GNOME 1.4, KDE 2.2.2, Window Maker "
-"0.8, and the rest"
-msgstr ""
-"Mandrake Linux tilbyder at vęlge mellem 11 forskellige grafiske "
-"skrivebordsmiljųer og vindueshåndteringer, inklusive GNOME 1.4, KDE 2.2.2, "
-"Window Maker og resten"
-
-#: ../../share/advertising/07-server.pl_.c:9
-msgid "Server Software"
-msgstr "Serverprogrammel"
-
-#: ../../share/advertising/07-server.pl_.c:10
-msgid ""
-"Transform your machine into a powerful server with just a few clicks of the "
-"mouse: Web server, email, firewall, router, file and print server, ..."
-msgstr ""
-"Lav din maskine om til en stęrk server med bare nogen få klik med musen: "
-"Webserver, post, brandmur, ruter, fil- og print-server, ..."
-
-#: ../../share/advertising/08-games.pl_.c:9
-msgid "Games"
-msgstr "Spil"
-
-#: ../../share/advertising/08-games.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best Open Source games - arcade, action, "
-"cards, sports, strategy, ..."
-msgstr ""
-"Mandrake Linux 8.2 tilbyder det bedste i Åben Kildekode-spil - arkade, kort, "
-"sport, action, strategi, ..."
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:9
-msgid "MandrakeCampus"
-msgstr "MandrakeCampus"
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:10
-msgid ""
-"Would you like to learn Linux simply, quickly, and for free? MandrakeSoft "
-"provides free Linux training, as well as a way to test your progress, at "
-"MandrakeCampus -- our online training center"
-msgstr ""
-"Har du lyst til at lęre Linux nemt, hurtigt og gratis? MandrakeSoft tilbyder "
-"gratis tręning i Linux, så vel som en måde at afprųve dine fremskridt, via "
-"MandrakeCampus - vores tręningscenter på nettet"
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:9
-msgid "MandrakeExpert"
-msgstr "MandrakeExpert"
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:10
-msgid ""
-"Quality support from the Linux Community, and from MandrakeSoft, is just "
-"around the corner. And if you're already a Linux veteran, become an \"Expert"
-"\" and share your knowledge at our support website"
-msgstr ""
-"Kvalitetssupport fra Linux-samfundet, og fra MandrakeSoft, er lige om "
-"hjųrnet! Og hvis du allerede er en Linux-veteran kan du blive en ekspert og "
-"dele ud af din viden på vores support-netsted"
-
-#: ../../share/advertising/11-consul.pl_.c:9
-msgid "MandrakeConsulting"
-msgstr "MandrakeConsulting"
-
-#: ../../share/advertising/11-consul.pl_.c:10
-msgid ""
-"For all of your IT projects, our consultants are ready to analyze your "
-"requirements and offer a customized solution. Benefit from MandrakeSoft's "
-"vast experience as a Linux producer to provide a true IT alternative for "
-"your business organization"
-msgstr ""
-"Vores konsulenter er klar for ethvert af jeres IT-projekter til at analysere "
-"jeres krav og tilbyde en tilpasset lųsning. Drag fordel af MandrakeSofts "
-"udstrakte erfaring som Linux-producent til at fremkomme med et ęgte IT-"
-"alternativ for jeres organisation."
-
-#: ../../share/advertising/12-MDKstore.pl_.c:9
-msgid "MandrakeStore"
-msgstr "MandrakeStore"
-
-#: ../../share/advertising/12-MDKstore.pl_.c:10
-msgid ""
-"A full range of Linux solutions, as well as special offers on products and "
-"'goodies', are available online at our e-store"
-msgstr ""
-"Et komplet udvalg af Linux-lųsninger, så vel som specialtilbud på vores "
-"produkter og godbidder, er tilgęngelige i vores e-butik"
-
-#: ../../share/advertising/13-Nvert.pl_.c:9
-msgid ""
-"For more information on MandrakeSoft's Professional Services and commercial "
-"offerings, please see the following web page:"
-msgstr ""
-"For yderligere information om MandrakeSofts professionelle tjenester og "
-"kommercielle tilbud kan du se på den fųlgende netside:"
-
-#: ../../share/advertising/13-Nvert.pl_.c:11
-msgid "http://www.mandrakesoft.com/sales/contact"
-msgstr "http://www.mandrakesoft.com/sales/contact"
-
-#: ../../standalone.pm_.c:25
-msgid "Installing packages..."
-msgstr "Installerer pakker..."
-
-#: ../../standalone/diskdrake_.c:85
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I'll try to go on blanking bad partitions"
-msgstr ""
-"Jeg kan ikke lęse din partitionstabel, den er for ųdelagt :(\n"
-"Jeg vil forsųge mig med at slette de beskadigede partitioner"
-
-#: ../../standalone/drakautoinst_.c:45
-msgid "Error!"
-msgstr "Fejl!"
-
-#: ../../standalone/drakautoinst_.c:46
-#, c-format
-msgid "I can't find needed image file `%s'."
-msgstr "Jeg kan ikke finde filen '%s' som jeg behųver."
-
-#: ../../standalone/drakautoinst_.c:48
-msgid "Auto Install Configurator"
-msgstr "Autoinstallationskonfigurering"
-
-#: ../../standalone/drakautoinst_.c:49
-msgid ""
-"You are about to configure an Auto Install floppy. This feature is somewhat "
-"dangerous and must be used circumspectly.\n"
-"\n"
-"With that feature, you will be able to replay the installation you've "
-"performed on this computer, being interactively prompted for some steps, in "
-"order to change their values.\n"
-"\n"
-"For maximum safety, the partitioning and formatting will never be performed "
-"automatically, whatever you chose during the install of this computer.\n"
-"\n"
-"Do you want to continue?"
-msgstr ""
-"Du er ved at konfigurere en automatisk installationsdiskette. Denne mulighed "
-"er lidt farlig, og må bruges med forsigtighed.\n"
-"\n"
-"Med denne mulighed vil du igen kunne kųre installationen du gennemfųrte på "
-"denne maskine, med muligheden for at selv kunne ęndre på nogen af "
-"indstillingerne.\n"
-"\n"
-"For maksimal sikkerhed vil partitioneringen og formateringen aldrig blive "
-"gennemfųrt automatisk, uanset hvad du valgte under installationen.\n"
-"\n"
-"Ųnsker du at fortsętte?"
-
-#: ../../standalone/drakautoinst_.c:71
-msgid "Automatic Steps Configuration"
-msgstr "Konfiguration af automatiske skridt"
-
-#: ../../standalone/drakautoinst_.c:72
-msgid ""
-"Please choose for each step whether it will replay like your install, or it "
-"will be manual"
-msgstr ""
-"Vęlg for hvert skridt om det skal vęre som under installationen, eller "
-"manuelt"
-
-#: ../../standalone/drakautoinst_.c:145
-msgid ""
-"\n"
-"Welcome.\n"
-"\n"
-"The parameters of the auto-install are available in the sections on the left"
-msgstr ""
-"\n"
-"Velkommen.\n"
-"\n"
-"Parametrene for autokonfigurationen kan ses i afsnittene til venstre"
-
-#: ../../standalone/drakautoinst_.c:243 ../../standalone/drakgw_.c:671
-#: ../../standalone/scannerdrake_.c:106
-msgid "Congratulations!"
-msgstr "Tillykke!"
-
-#: ../../standalone/drakautoinst_.c:244
-msgid ""
-"The floppy has been successfully generated.\n"
-"You may now replay your installation."
-msgstr ""
-"Disketten er blevet genereret.\n"
-"Du kan nu gennemfųre installationen igen."
-
-#: ../../standalone/drakautoinst_.c:282
-msgid "Auto Install"
-msgstr "Autoinstallation"
-
-#: ../../standalone/drakautoinst_.c:352
-msgid "Add an item"
-msgstr "Tilfųj et element"
-
-#: ../../standalone/drakautoinst_.c:359
-msgid "Remove the last item"
-msgstr "Fjern det sidste element"
-
-#: ../../standalone/drakbackup_.c:448 ../../standalone/drakbackup_.c:451
-#: ../../standalone/drakbackup_.c:455
-msgid ""
-"***********************************************************************\n"
-"\n"
-msgstr ""
-"***********************************************************************\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:449
-msgid ""
-"\n"
-" DrakBackup Report \n"
-"\n"
-msgstr ""
-"\n"
-" DrakBackup Rapport \n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:450
-msgid ""
-"\n"
-" DrakBackup Daemon Report\n"
-"\n"
-"\n"
-msgstr ""
-"\n"
-" DrakBackup Dęmon-Rapport\n"
-"\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:453
-msgid ""
-"\n"
-"\n"
-"***********************************************************************\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"***********************************************************************\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:454
-msgid ""
-"\n"
-" DrakBackup Report Details\n"
-"\n"
-"\n"
-msgstr ""
-"\n"
-" DrakBackup Rapportdetaljer\n"
-"\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:476
-msgid "total progess"
-msgstr "total fremdrift"
-
-#: ../../standalone/drakbackup_.c:555 ../../standalone/drakbackup_.c:602
-msgid "Backup system files..."
-msgstr "Sikkerhedskopiér systemfiler..."
-
-#: ../../standalone/drakbackup_.c:603 ../../standalone/drakbackup_.c:667
-msgid "Hard Disk Backup files..."
-msgstr "Sikkerhedskopifiler for disk..."
-
-#: ../../standalone/drakbackup_.c:615
-msgid "Backup User files..."
-msgstr "Sikkerhedskopiér brugerfiler..."
-
-#: ../../standalone/drakbackup_.c:616
-msgid "Hard Disk Backup Progress..."
-msgstr "Fremdrift for sikkerhedskopiering af disk..."
-
-#: ../../standalone/drakbackup_.c:666
-msgid "Backup Other files..."
-msgstr "Sikkerhedskopiér andre filer..."
-
-#: ../../standalone/drakbackup_.c:674
-#, c-format
-msgid ""
-"file list send by FTP : %s\n"
-" "
-msgstr ""
-"filliste sending via FTP: %s\n"
-" "
-
-#: ../../standalone/drakbackup_.c:677
-msgid ""
-"\n"
-"(!) FTP connexion problem: It was not possible to send your backup files by "
-"FTP.\n"
-msgstr ""
-"\n"
-"(!) FTP forbindelsesproblem: Det var ikke muligt at sende dine backupfiler "
-"via FTP.\n"
-
-#: ../../standalone/drakbackup_.c:687
-msgid "(!) Error during mail sending. \n"
-msgstr "(!) Fejl ved afsendelse af post. \n"
-
-#: ../../standalone/drakbackup_.c:728 ../../standalone/drakbackup_.c:739
-#: ../../standalone/drakbackup_.c:750 ../../standalone/drakfont_.c:787
-msgid "File Selection"
-msgstr "Valg af filer"
-
-#: ../../standalone/drakbackup_.c:755
-msgid "Select the files or directories and click on 'Add'"
-msgstr "Vęlg filerne eller katalogerne og klik på 'Tilfųj'"
-
-#: ../../standalone/drakbackup_.c:790
-msgid ""
-"\n"
-"Please check all options that you need.\n"
-msgstr ""
-"\n"
-"Markér alle muligheder som du behųver.\n"
-
-#: ../../standalone/drakbackup_.c:791
-msgid ""
-"These options can backup and restore all files in your /etc directory.\n"
-msgstr ""
-"Disse valgmuligheder kan sikkerhedskopiere og genskabe alle filer i dit /etc "
-"katalog.\n"
-
-#: ../../standalone/drakbackup_.c:792
-msgid "Backup your System files. ( /etc directory )"
-msgstr "Lav sikkerhedkopi af dine systemfiler. ( /etc kataloget)"
-
-#: ../../standalone/drakbackup_.c:793
-msgid "Use incremental backup (do not replace old backups)"
-msgstr "Brug inkrementalbackup (overskriv ikke gamle sikkerhedskopier)"
-
-#: ../../standalone/drakbackup_.c:794
-msgid "Do not include critical files (passwd, group, fstab)"
-msgstr "Medtag ikke kritiske filer (passwd, group, fstab)"
-
-#: ../../standalone/drakbackup_.c:795
-msgid ""
-"With this option you will be able to restore any version\n"
-" of your /etc directory."
-msgstr ""
-"Med denne valgmulighed vil du vęre i stand til at kunne genskabe\n"
-"enhver version af dit /etc katalog."
-
-#: ../../standalone/drakbackup_.c:812
-msgid "Please check all users that you want to include in your backup."
-msgstr "Markér alle brugere som du vil have med i din sikkerhedskopi."
-
-#: ../../standalone/drakbackup_.c:839
-msgid "Do not include the browser cache"
-msgstr "Medtag ikke cache for netlęser"
-
-#: ../../standalone/drakbackup_.c:840 ../../standalone/drakbackup_.c:864
-msgid "Use Incremental Backups (do not replace old backups)"
-msgstr "Brug inkrementalbackup (overskriv ikke gamle sikkerhedskopier)"
-
-#: ../../standalone/drakbackup_.c:862 ../../standalone/drakfont_.c:827
-msgid "Remove Selected"
-msgstr "Fjern valgte"
-
-#: ../../standalone/drakbackup_.c:900
-msgid "Windows (FAT32)"
-msgstr "Windows (FAT32)"
-
-#: ../../standalone/drakbackup_.c:939
-msgid "Users"
-msgstr "Brugere"
-
-#: ../../standalone/drakbackup_.c:964
-msgid "Use FTP connection to backup"
-msgstr "Brug FTP forbindelse til sikkerhedskopiering"
-
-#: ../../standalone/drakbackup_.c:967
-msgid "Please enter the host name or IP."
-msgstr "Indtast vęrtsnavn eller IP."
-
-#: ../../standalone/drakbackup_.c:972
-msgid ""
-"Please enter the directory to\n"
-" put the backup on this host."
-msgstr ""
-"Indtast kataloget hvori\n"
-" sikkerhedskopien skal lęgges på denne maskine."
-
-#: ../../standalone/drakbackup_.c:977
-msgid "Please enter your login"
-msgstr "Indtast dit brugernavn"
-
-#: ../../standalone/drakbackup_.c:982
-msgid "Please enter your password"
-msgstr "Indtast din adgangskode"
-
-#: ../../standalone/drakbackup_.c:988
-msgid "Remember this password"
-msgstr "Husk denne adgangskode"
-
-#: ../../standalone/drakbackup_.c:1052 ../../standalone/drakbackup_.c:2048
-msgid "FTP Connection"
-msgstr "FTP forbindelse"
-
-#: ../../standalone/drakbackup_.c:1059 ../../standalone/drakbackup_.c:2056
-msgid "Secure Connection"
-msgstr "Sikker forbindelse"
-
-#: ../../standalone/drakbackup_.c:1085 ../../standalone/drakbackup_.c:2889
-msgid "Use CD/DVDROM to backup"
-msgstr "Brug CD/DVDROM til sikkerhedskopiering"
-
-#: ../../standalone/drakbackup_.c:1088 ../../standalone/drakbackup_.c:2893
-msgid "Please choose your CD space"
-msgstr "Vęlg din cd-plads"
-
-#: ../../standalone/drakbackup_.c:1094 ../../standalone/drakbackup_.c:2905
-msgid "Please check if you are using CDRW media"
-msgstr "Markér om du bruger et CDRW-medie"
-
-#: ../../standalone/drakbackup_.c:1100 ../../standalone/drakbackup_.c:2911
-msgid "Please check if you want to erase your CDRW before"
-msgstr "Markér om du vil slette din CDRW fųr ny skrivning"
-
-#: ../../standalone/drakbackup_.c:1106
-msgid ""
-"Please check if you want to include\n"
-" install boot on your CD."
-msgstr ""
-"Markér om du ųnsker at medtage\n"
-" installeringsopstart på din cd."
-
-#: ../../standalone/drakbackup_.c:1112
-msgid ""
-"Please enter your CD Writer device name\n"
-" ex: 0,1,0"
-msgstr ""
-"Indtast din CD-bręnders enhedsnavn\n"
-" fx: 0,1,0"
-
-#: ../../standalone/drakbackup_.c:1153
-msgid "Use tape to backup"
-msgstr "brug bånd til sikkerhedskopieringen"
-
-#: ../../standalone/drakbackup_.c:1156
-msgid "Please enter the device name to use for backup"
-msgstr "Indtast endhedsnavnet der skal bruges til sikkerhedskopiering"
-
-#: ../../standalone/drakbackup_.c:1162 ../../standalone/drakbackup_.c:1203
-#: ../../standalone/drakbackup_.c:2013
-msgid ""
-"Please enter the maximum size\n"
-" allowed for Drakbackup"
-msgstr ""
-"Indtast den maksimale stųrrelse\n"
-" tilladt for Drakbackup"
-
-#: ../../standalone/drakbackup_.c:1195 ../../standalone/drakbackup_.c:2005
-msgid "Please enter the directory to save:"
-msgstr "Indtast kataloget der skal gemmes:"
-
-#: ../../standalone/drakbackup_.c:1209 ../../standalone/drakbackup_.c:2019
-msgid "Use quota for backup files."
-msgstr "Brug kvoter for sikkerhedskopieringsfiler"
-
-#: ../../standalone/drakbackup_.c:1267
-msgid "Network"
-msgstr "Netvęrk"
-
-#: ../../standalone/drakbackup_.c:1272
-msgid "CDROM / DVDROM"
-msgstr "CDROM / DVDROM"
-
-#: ../../standalone/drakbackup_.c:1277
-msgid "HardDrive / NFS"
-msgstr "Diskdrev / NFS"
-
-#: ../../standalone/drakbackup_.c:1297 ../../standalone/drakbackup_.c:1301
-#: ../../standalone/drakbackup_.c:1305
-msgid "hourly"
-msgstr "timeligt"
-
-#: ../../standalone/drakbackup_.c:1298 ../../standalone/drakbackup_.c:1302
-#: ../../standalone/drakbackup_.c:1305
-msgid "daily"
-msgstr "dagligt"
-
-#: ../../standalone/drakbackup_.c:1299 ../../standalone/drakbackup_.c:1303
-#: ../../standalone/drakbackup_.c:1305
-msgid "weekly"
-msgstr "ugentligt"
-
-#: ../../standalone/drakbackup_.c:1300 ../../standalone/drakbackup_.c:1304
-#: ../../standalone/drakbackup_.c:1305
-msgid "monthly"
-msgstr "månedligt"
-
-#: ../../standalone/drakbackup_.c:1312
-msgid "Use daemon"
-msgstr "Brug dęmon"
-
-#: ../../standalone/drakbackup_.c:1317
-msgid ""
-"Please choose the time \n"
-"interval between each backup"
-msgstr ""
-"Vęlg tidsinterval mellem\n"
-"hver sikkerhedskopiering"
-
-#: ../../standalone/drakbackup_.c:1323
-msgid ""
-"Please choose the\n"
-"media for backup."
-msgstr ""
-"Vęlg mediet for\n"
-"sikkerhedskopiering."
-
-#: ../../standalone/drakbackup_.c:1327
-msgid "Use Hard Drive with daemon"
-msgstr "Brug diskdrev med dęmon"
-
-#: ../../standalone/drakbackup_.c:1329
-msgid "Use FTP with daemon"
-msgstr "Brug FTP med dęmon"
-
-#: ../../standalone/drakbackup_.c:1333
-msgid "Please be sure that the cron daemon is included in your services."
-msgstr "Forsikr dig gerne at cron-dęmonen er med i dine tjenester."
-
-#: ../../standalone/drakbackup_.c:1369
-msgid "Send mail report after each backup to :"
-msgstr "Send epost-rapport efter hver sikkerhedskopiering til:"
-
-#: ../../standalone/drakbackup_.c:1411
-msgid "What"
-msgstr "Hvad"
-
-#: ../../standalone/drakbackup_.c:1416
-msgid "Where"
-msgstr "Hvor"
-
-#: ../../standalone/drakbackup_.c:1421
-msgid "When"
-msgstr "Hvornår"
-
-#: ../../standalone/drakbackup_.c:1426
-msgid "More Options"
-msgstr "Flere muligheder"
-
-#: ../../standalone/drakbackup_.c:1445 ../../standalone/drakbackup_.c:2801
-msgid "Drakbackup Configuration"
-msgstr "Drakbackup konfiguration"
-
-#: ../../standalone/drakbackup_.c:1463
-msgid "Please choose where you want to backup"
-msgstr "Vęlg hvor du ųnsker at sikkerhedskopiere"
-
-#: ../../standalone/drakbackup_.c:1465
-msgid "on Hard Drive"
-msgstr "på diskdrev"
-
-#: ../../standalone/drakbackup_.c:1476
-msgid "across Network"
-msgstr "over netvęrk"
-
-#: ../../standalone/drakbackup_.c:1540
-msgid "Please choose what you want to backup"
-msgstr "Vęlg hvad du vil sikkerhedkopiere"
-
-#: ../../standalone/drakbackup_.c:1541
-msgid "Backup system"
-msgstr "Lav sikkerhedskopi af system"
-
-#: ../../standalone/drakbackup_.c:1542
-msgid "Backup Users"
-msgstr "Lav sikkerhedskopi af brugere"
-
-#: ../../standalone/drakbackup_.c:1545
-msgid "Select user manually"
-msgstr "Håndpluk bruger"
-
-#: ../../standalone/drakbackup_.c:1627
-msgid ""
-"\n"
-"Backup Sources: \n"
-msgstr ""
-"\n"
-"Kilder for sikkerhedskopi: \n"
-
-#: ../../standalone/drakbackup_.c:1628
-msgid ""
-"\n"
-"- System Files:\n"
-msgstr ""
-"\n"
-"- Systemfiler:\n"
-
-#: ../../standalone/drakbackup_.c:1630
-msgid ""
-"\n"
-"- User Files:\n"
-msgstr ""
-"\n"
-"- Brugerfiler:\n"
-
-#: ../../standalone/drakbackup_.c:1632
-msgid ""
-"\n"
-"- Other Files:\n"
-msgstr ""
-"\n"
-"- Andre filer:\n"
-
-#: ../../standalone/drakbackup_.c:1634
-#, c-format
-msgid ""
-"\n"
-"- Save on Hard drive on path : %s\n"
-msgstr ""
-"\n"
-"- Gem til diskdrev på stien: %s\n"
-
-#: ../../standalone/drakbackup_.c:1635
-#, c-format
-msgid ""
-"\n"
-"- Save on FTP on host : %s\n"
-msgstr ""
-"\n"
-"- Gem via FTP på vęrt : %s\n"
-
-#: ../../standalone/drakbackup_.c:1636
-#, c-format
-msgid ""
-"\t\t user name: %s\n"
-"\t\t on path: %s \n"
-msgstr ""
-"\t\t brugernavn: %s\n"
-"\t\t på sti: %s \n"
-
-#: ../../standalone/drakbackup_.c:1637
-msgid ""
-"\n"
-"- Options:\n"
-msgstr ""
-"\n"
-"- Muligheder:\n"
-
-#: ../../standalone/drakbackup_.c:1638
-msgid "\tDo not include System Files\n"
-msgstr "\tMedtag ikke systemfiler\n"
-
-#: ../../standalone/drakbackup_.c:1639
-msgid "\tBackups use tar and bzip2\n"
-msgstr "\tSikkerhedskopiering bruger tar og bzip2\n"
-
-#: ../../standalone/drakbackup_.c:1640
-msgid "\tBackups use tar and gzip\n"
-msgstr "\tSikkerhedskopiering bruger tar og gzip\n"
-
-#: ../../standalone/drakbackup_.c:1641
-#, c-format
-msgid ""
-"\n"
-"- Daemon (%s) include :\n"
-msgstr ""
-"\n"
-"- Dęmon (%s) indeholder:\n"
-
-#: ../../standalone/drakbackup_.c:1642
-msgid "\t-Hard drive.\n"
-msgstr "\t-Diskdrev.\n"
-
-#: ../../standalone/drakbackup_.c:1643
-msgid "\t-CDROM.\n"
-msgstr "\t-cdrom.\n"
-
-#: ../../standalone/drakbackup_.c:1644
-msgid "\t-Network by FTP.\n"
-msgstr "\t-Netvęrk via FTP.\n"
-
-#: ../../standalone/drakbackup_.c:1645
-msgid "\t-Network by SSH.\n"
-msgstr "\t-Netvęrk via SSH.\n"
-
-#: ../../standalone/drakbackup_.c:1647
-msgid "No configuration, please click Wizard or Advanced.\n"
-msgstr "Ingen konfiguration, klik på Vejleder eller Avanceret.\n"
-
-#: ../../standalone/drakbackup_.c:1652
-msgid ""
-"List of data to restore:\n"
-"\n"
-msgstr ""
-"Liste over data som skal genskabes:\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:1753
-msgid ""
-"List of data corrupted:\n"
-"\n"
-msgstr ""
-"Liste over data der er ųdelagt:\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:1755
-msgid "Please uncheck or remove it on next time."
-msgstr "Afmarkér eller fjern det gerne nęste gang."
-
-#: ../../standalone/drakbackup_.c:1765
-msgid "Backup files are corrupted"
-msgstr "Sikkerhedskopifiler er ųdelagte"
-
-#: ../../standalone/drakbackup_.c:1786
-msgid " All your selectionned data have been "
-msgstr " Alle dine valgte data er blevet "
-
-#: ../../standalone/drakbackup_.c:1787
-#, c-format
-msgid " Successfuly Restored on %s "
-msgstr " genskabt uden fejl på %s "
-
-#: ../../standalone/drakbackup_.c:1886
-msgid " Restore Configuration "
-msgstr " Genskab konfiguration "
-
-#: ../../standalone/drakbackup_.c:1904
-msgid "OK to restore the other files."
-msgstr "O.k. at genskabe de andre filer."
-
-#: ../../standalone/drakbackup_.c:1922
-msgid "User list to restore (only the most recent date per user is important)"
-msgstr "Brugerliste at genskabe (kun den nyeste dato per bruger er vigtig)"
-
-#: ../../standalone/drakbackup_.c:1972
-msgid "Backup the system files before:"
-msgstr "Lav sikkerhedskopi af systemfiler fųr:"
-
-#: ../../standalone/drakbackup_.c:1974
-msgid "please choose the date to restore"
-msgstr "Vęlg dato for genskabning"
-
-#: ../../standalone/drakbackup_.c:2002
-msgid "Use Hard Disk to backup"
-msgstr "Brug disk til sikkerhedskopiering"
-
-#: ../../standalone/drakbackup_.c:2083
-msgid "Restore from Hard Disk."
-msgstr "Genskab fra disk."
-
-#: ../../standalone/drakbackup_.c:2085
-msgid "Please enter the directory where backups are stored"
-msgstr "Indtast kataloget hvor sikkerhedskopier gemmes"
-
-#: ../../standalone/drakbackup_.c:2143
-msgid "Select another media to restore from"
-msgstr "Vęlg et andet medie at genskabe fra"
-
-#: ../../standalone/drakbackup_.c:2145
-msgid "Other Media"
-msgstr "Andet medie"
-
-#: ../../standalone/drakbackup_.c:2151
-msgid "Restore system"
-msgstr "Genskab system"
-
-#: ../../standalone/drakbackup_.c:2152
-msgid "Restore Users"
-msgstr "Genskab brugere"
-
-#: ../../standalone/drakbackup_.c:2153
-msgid "Restore Other"
-msgstr "Genskab andet"
-
-#: ../../standalone/drakbackup_.c:2155
-msgid "select path to restore (instead of / )"
-msgstr "vęlg sti at genskabe (i stedet for / )"
-
-#: ../../standalone/drakbackup_.c:2159
-msgid "Do new backup before restore (only for incremental backups.)"
-msgstr "Lav ny sikkerhedskopi fųr genskabning (kun for inkrementalbackupper)."
-
-#: ../../standalone/drakbackup_.c:2160
-msgid "Remove user directories before restore."
-msgstr "Fjern brugerkataloger fųr genskabning."
-
-#: ../../standalone/drakbackup_.c:2217
-msgid "Restore all backups"
-msgstr "Genskab alle sikkerhedskopier"
-
-#: ../../standalone/drakbackup_.c:2225
-msgid "Custom Restore"
-msgstr "Tilpasset genskabelse"
-
-#: ../../standalone/drakbackup_.c:2266 ../../standalone/drakbackup_.c:2291
-#: ../../standalone/drakbackup_.c:2312 ../../standalone/drakbackup_.c:2333
-#: ../../standalone/drakbackup_.c:2351 ../../standalone/drakbackup_.c:2383
-#: ../../standalone/drakbackup_.c:2399 ../../standalone/drakbackup_.c:2419
-#: ../../standalone/drakbackup_.c:2438 ../../standalone/drakbackup_.c:2460
-#: ../../standalone/drakfont_.c:575
-msgid "Help"
-msgstr "Hjęlp"
-
-#: ../../standalone/drakbackup_.c:2269 ../../standalone/drakbackup_.c:2296
-#: ../../standalone/drakbackup_.c:2315 ../../standalone/drakbackup_.c:2336
-#: ../../standalone/drakbackup_.c:2354 ../../standalone/drakbackup_.c:2402
-#: ../../standalone/drakbackup_.c:2422 ../../standalone/drakbackup_.c:2441
-msgid "Previous"
-msgstr "Forrige"
-
-#: ../../standalone/drakbackup_.c:2271 ../../standalone/drakbackup_.c:2338
-#: ../../standalone/logdrake_.c:224
-msgid "Save"
-msgstr "Gem"
-
-#: ../../standalone/drakbackup_.c:2317
-msgid "Build Backup"
-msgstr "Opbyg sikkerhedskopien"
-
-#: ../../standalone/drakbackup_.c:2356 ../../standalone/drakbackup_.c:3033
-msgid "Restore"
-msgstr "Genskab"
-
-#: ../../standalone/drakbackup_.c:2404 ../../standalone/drakbackup_.c:2424
-#: ../../standalone/drakbackup_.c:2445
-msgid "Next"
-msgstr "Nęste"
-
-#: ../../standalone/drakbackup_.c:2478
-msgid ""
-"Please Build backup before to restore it...\n"
-" or verify that your path to save is correct."
-msgstr ""
-"Lav sikkerhedskopieringen fųr genskablesen af den...\n"
-" eller efterse at stien til gemning er korrekt."
-
-#: ../../standalone/drakbackup_.c:2499
-msgid ""
-"Error durind sendmail\n"
-" your report mail was not sent\n"
-" Please configure sendmail"
-msgstr ""
-"Fejl ved sendmail.\n"
-" din rapport blev ikke sendt\n"
-" Konfigurér venligst sendmail"
-
-#: ../../standalone/drakbackup_.c:2522
-msgid "Package List to Install"
-msgstr "Pakkeliste til installation"
-
-#: ../../standalone/drakbackup_.c:2550
-msgid ""
-"Error durind sending file via FTP.\n"
-" Please correct your FTP configuration."
-msgstr ""
-"Fejl ved sending af fil via FTP.\n"
-" Ret venligst din FTP-konfiguration."
-
-#: ../../standalone/drakbackup_.c:2573
-msgid "Please select data to restore..."
-msgstr "Udvęlg de data du vil genskabe..."
-
-#: ../../standalone/drakbackup_.c:2594
-msgid "Please select media for backup..."
-msgstr "Vęlg medie for sikkerhedskopi..."
-
-#: ../../standalone/drakbackup_.c:2616
-msgid "Please select data to backup..."
-msgstr "Vęlg data for sikkerhedskopi..."
-
-#: ../../standalone/drakbackup_.c:2638
-msgid ""
-"No configuration file found \n"
-"please click Wizard or Advanced."
-msgstr ""
-"ingen konfigurationsfil fundet \n"
-"klik på Vejleder eller Avanceret."
-
-#: ../../standalone/drakbackup_.c:2659
-msgid "Under Devel ... please wait."
-msgstr "Under udvikling ... vent venligst:-)"
-
-#: ../../standalone/drakbackup_.c:2739
-msgid "Backup system files"
-msgstr "Lav sikkerhedskopi af systemfiler"
-
-#: ../../standalone/drakbackup_.c:2741
-msgid "Backup user files"
-msgstr "Lav sikkerhedskopi af brugerfiler"
-
-#: ../../standalone/drakbackup_.c:2743
-msgid "Backup other files"
-msgstr "Lav sikkerhedskopi af andre filer"
-
-#: ../../standalone/drakbackup_.c:2745 ../../standalone/drakbackup_.c:2776
-msgid "Total Progress"
-msgstr "Total fremdrift"
-
-#: ../../standalone/drakbackup_.c:2767
-msgid "files sending by FTP"
-msgstr "Filer sendes via FTP"
-
-#: ../../standalone/drakbackup_.c:2771
-msgid "Sending files..."
-msgstr "Sender filer..."
-
-#: ../../standalone/drakbackup_.c:2841
-msgid "Data list to include on CDROM."
-msgstr "Dataliste som skal medtages på cdrom."
-
-#: ../../standalone/drakbackup_.c:2899
-msgid "Please enter the cd writer speed"
-msgstr "Indtast hastighed på cd-bręnder"
-
-#: ../../standalone/drakbackup_.c:2917
-msgid "Please enter your CD Writer device name (ex: 0,1,0)"
-msgstr "Indtast navnet på enheden for din cd-bręnder (fx: 0,1,0)"
-
-#: ../../standalone/drakbackup_.c:2923
-msgid "Please check if you want to include install boot on your CD."
-msgstr "Markér om du ųnsker at medtage installeringsopstart på din cd."
-
-#: ../../standalone/drakbackup_.c:2989
-msgid "Backup Now from configuration file"
-msgstr "Lav sikkerhedskopi nu ud fra konfigurationsfil"
-
-#: ../../standalone/drakbackup_.c:2999
-msgid "View Backup Configuration."
-msgstr "Se konfiguration af sikkerhedskopiering."
-
-#: ../../standalone/drakbackup_.c:3020
-msgid "Wizard Configuration"
-msgstr "Konfiguration med vejleder"
-
-#: ../../standalone/drakbackup_.c:3024
-msgid "Advanced Configuration"
-msgstr "Avanceret konfiguration"
-
-#: ../../standalone/drakbackup_.c:3028
-msgid "Backup Now"
-msgstr "Lav sikkerhedskopiering nu"
-
-#: ../../standalone/drakbackup_.c:3053
-msgid "Drakbackup"
-msgstr "Drakbackup"
-
-#: ../../standalone/drakbackup_.c:3104
-msgid ""
-"options description:\n"
-"\n"
-" In this step Drakbackup allow you to change:\n"
-"\n"
-" - The compression mode:\n"
-" \n"
-" If you check bzip2 compression, you will compress\n"
-" your data better than gzip (about 2-10 %).\n"
-" This option is not checked by default because\n"
-" this compression mode needs more time ( about 1000% more).\n"
-" \n"
-" - The update mode:\n"
-"\n"
-" This option will update your backup, but this\n"
-" option is not really useful because you need to\n"
-" decompress your backup before you can update it.\n"
-" \n"
-" - the .backupignore mode:\n"
-"\n"
-" Like with cvs, Drakbackup will ignore all references\n"
-" included in .backupignore files in each directories.\n"
-" ex: \n"
-" /*> cat .backupignore*/\n"
-" *.o\n"
-" *~\n"
-" ...\n"
-" \n"
-"\n"
-msgstr ""
-"beskrivelse af valgmuligheder:\n"
-"\n"
-" På dette trin vil Drakbackup lade dig ęndre:\n"
-"\n"
-" - Komprimeringsmåden:\n"
-" \n"
-" Hvis du markerer bzip2-komprimering, vil du komprimere\n"
-" dine data bedre end gzip (omkring 2-10 %).\n"
-" Denne valgmulighed er ikke markeret som standard fordi\n"
-" denne komprimeringsmåde kręver mere tid (omkring 1000% mere).\n"
-" \n"
-" - Opdateringsmåden:\n"
-"\n"
-" Denne valgmulighed vil opdatere din backup, men denne\n"
-" valgmulighed er ikke rigtigt nyttig fordi du skal\n"
-" dekomprimere din backup fųr du kan opdatere den.\n"
-" \n"
-" - Måden for .backupignore:\n"
-"\n"
-" som med cvs vil Drakbackup ignorere alle referencer\n"
-" indeholdt i .backupignore-filer i hvert katalog.\n"
-" fx: \n"
-" /*> cat .backupignore*/\n"
-" *.o\n"
-" *~\n"
-" ...\n"
-" \n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3134
-msgid ""
-"\n"
-" Some errors during sendmail are caused by \n"
-" a bad configuration of postfix. To solve it you have to\n"
-" set myhostname or mydomain in /etc/postfix/main.cf\n"
-"\n"
-msgstr ""
-"\n"
-" Nogle fejl under sendmail kommer fra \n"
-" en dårlig konfiguration af postfix. For at lųse dette skal du\n"
-" sętte myhostname eller mydomain i /etc/postfix/main.cf\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3142
-msgid ""
-"options description:\n"
-"\n"
-" - Backup system files:\n"
-" \n"
-"\tThis option allows you to backup your /etc directory,\n"
-"\twhich contains all configuration files. Please be\n"
-"\tcareful during the restore step to not overwrite:\n"
-"\t\t/etc/passwd \n"
-"\t\t/etc/group \n"
-"\t\t/etc/fstab\n"
-"\n"
-" - Backup User files: \n"
-"\n"
-"\tThis option allows you select all users that you want \n"
-"\tto backup.\n"
-"\tTo preserve disk space, it is recommended that you \n"
-"\tdo not include web browser's cache.\n"
-"\n"
-" - Backup Other files: \n"
-"\n"
-"\tThis option allows you to add more data to save.\n"
-"\tWith the other backup it's not possible at the \n"
-"\tmoment to select select incremental backup.\t\t\n"
-" \n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerful \n"
-"\toption for backup. This option allows you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed afterward.\n"
-"\tThen you will be able, during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this option all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-msgstr ""
-"beskrivelse af valgmuligheder:\n"
-"\n"
-" - Lav sikkerhedskopi af systemfiler:\n"
-" \n"
-"\tDenne mulighed lader dig sikkerhedskopiere dit /etc katalog,\n"
-"\tsom indeholder alle konfigurationsfiler. Vęr \n"
-"\tforsigtig på genskabelsestrinnet med ikke at overskrive:\n"
-"\t\t/etc/passwd \n"
-"\t\t/etc/group \n"
-"\t\t/etc/fstab\n"
-"\n"
-" - Lav sikkerhedskopi af brugerfiler: \n"
-"\n"
-"\tDenne mulighed lader dig vęlge alle de brugere som du vil lave\n"
-"\tsikkerhedskopier for.\n"
-"\tFor at spare på diskplads anbefales du ikke medtager netlęseres\n"
-"\tcache.\n"
-"\n"
-" - Lav sikkerhedskopi af andre filer: \n"
-"\n"
-"\tDenne mulighed lader dig tilfųje mere data som skal gemmes.\n"
-"\tMed denne sikkerhedskopieringsmåde er det ikke muligt i ųjeblikket \n"
-"\tat vęlge inkrementalbackup.\t\t\n"
-" \n"
-" - Inkrementalbackupper:\n"
-"\n"
-"\tInkrementalbackup er den stęrkeste valgmulighed for \n"
-"\tsikkerhedskopiering. Denne mulighed lader dig sikkerhedskopiere \n"
-"\talle dine data den fųrste gang, og derefter kun de ęndrede data.\n"
-"\tSå vil du i genskabelsestrinnet kunne genskabe dine data fra en \n"
-"\tangivet dato.\n"
-"\tHvis du ikke har valgt denne mulighed vil alle gamle\n"
-"\tsikkerhedskopier blive slettet fųr hver sikkerhedskopiering. \n"
-"\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3181
-msgid ""
-"restore description:\n"
-" \n"
-"Only the most recent date will be used ,because with incremental \n"
-"backups it is necesarry to restore one by one each older backups.\n"
-"\n"
-"So if you don't like to restore an user please unselect all his\n"
-"check box.\n"
-"\n"
-"Otherwise, you are able to select only one of this\n"
-"\n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerfull \n"
-"\toption to use backup, this option allow you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed after.\n"
-"\tSo you will be able during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this options all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-"beskrivelse af genskabelse:\n"
-" \n"
-"Kun den nyeste dato vil blive brugt fordi med inkrementalbackup \n"
-"er det nųdvendigt at genskabe hver gammel sikkerhedskopi én for én.\n"
-"\n"
-"Så hvis du ikke ųnsker at genskabe en bruger, så fravęlg denne helt.\n"
-"\n"
-"Ellers kan du vęlge blot én af disse\n"
-"\n"
-" - Inkrementalbackupper:\n"
-"\n"
-"\tInkrementalbackup er den stęrkeste valgmulighed for \n"
-"\tsikkerhedskopiering. Denne mulighed lader dig sikkerhedskopiere \n"
-"\talle dine data den fųrste gang, og derefter kun de ęndrede data.\n"
-"\tSå vil du i genskabelsestrinnet kunne genskabe dine data fra en \n"
-"\tangivet dato.\n"
-"\tHvis du ikke har valgt denne mulighed vil alle gamle\n"
-"\tsikkerhedskopier blive slettet fųr hver sikkerhedskopiering. \n"
-"\n"
-"\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3207 ../../standalone/drakbackup_.c:3282
-msgid ""
-" Copyright (C) 2001 MandrakeSoft by DUPONT Sebastien <dupont_s\\@epita.fr>"
-msgstr ""
-" Copyright (C) 2001 MandrakeSoft ved DUPONT Sebastien <dupont_s\\@epita.fr>"
-
-#: ../../standalone/drakbackup_.c:3209 ../../standalone/drakbackup_.c:3284
-msgid ""
-" This program is free software; you can redistribute it and/or modify\n"
-" it under the terms of the GNU General Public License as published by\n"
-" the Free Software Foundation; either version 2, or (at your option)\n"
-" any later version.\n"
-"\n"
-" This program is distributed in the hope that it will be useful,\n"
-" but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-" GNU General Public License for more details.\n"
-"\n"
-" You should have received a copy of the GNU General Public License\n"
-" along with this program; if not, write to the Free Software\n"
-" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
-msgstr ""
-"Dette program er gratis programmel; du kan redistribuere det og/eller ęndre\n"
-"det i henhold til betingelserne i GNU General Public License, som publiceret "
-"af\n"
-"Free Software Foundation; enten version 2, eller enhver senere udgave\n"
-"af licensen.\n"
-"\n"
-"Dette program er udgivet i håb om at det vil vęre anvendeligt, men\n"
-"UDEN NOGEN FORM FOR GARANTI; heller ikke garanti om\n"
-"SALGBARHED eller EGNETHED TIL ET BESTEMT FORMÅL. Se GNU\n"
-"General Public License for flere detaljer.\n"
-"\n"
-"Du skulle have modtaget en kopi af GNU General Public License\n"
-"sammen med dette program; hvis ikke, skriv til Free Software\n"
-"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-"USA."
-
-#: ../../standalone/drakbackup_.c:3223
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select: \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, DrakBackup will remove \n"
-" your original directory and verify that all \n"
-" backup files are not corrupted. It is recommended \n"
-" you do a last backup before restoring.\n"
-"\n"
-"\n"
-msgstr ""
-"Beskrivelse:\n"
-"\n"
-" Drakbackup bruges til at lave sikkehedskopier af dit system.\n"
-" I konfigurationen kan du vęlge: \n"
-"\t- Systemfiler, \n"
-"\t- Brugeres filer, \n"
-"\t- Andre filer.\n"
-"\teller Hele dit system ... eller Andet (såsom Windows partitioner)\n"
-"\n"
-" Drakbackup lader dig tage sikkerhedskopier af dit system på:\n"
-"\t- Ddisk.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (med autoboot, redning og autoinstallering.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Bånd.\n"
-"\n"
-" Drakbackup lader dig genskabe dit system på\n"
-" et katalog valgt af brugeren.\n"
-"\n"
-" Som standard vil alle sikkerhedskopier blive lagret i dit\n"
-" /var/lib/drakbackup katalog\n"
-"\n"
-" Konfigurationsfil:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"Genskabelsestrin:\n"
-" \n"
-" I genskabelsestrinnet vil Drakbackup fjerne dit nuvęrende katalog \n"
-" og kontrollere at alle dine backupfiler ikke er ųdelagte. Det \n"
-" anbefales at du laver en sidste sikkerhedskopiering fųr genskabelse.\n"
-" \n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3261
-msgid ""
-"options description:\n"
-"\n"
-"Please be careful when you are using ftp backup, because only \n"
-"backups that are already built are sent to the server.\n"
-"So at the moment, you need to build the backup on your hard \n"
-"drive before sending it to the server.\n"
-"\n"
-msgstr ""
-"beskrivelse af valgmuligheder:\n"
-"\n"
-"Vęr forsigtig når du bruger ftp-backup, fordi kun \n"
-"sikkerhedskopier som er opbygget allerede bliver sendt til serveren.\n"
-"Så for ųjeblikket skal du bygge sikkerhedskopien på din disk \n"
-"fųr den sendes til ftp-serveren.\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3270
-msgid ""
-"\n"
-"Restore Backup Problems:\n"
-"\n"
-"During the restore step, Drakbackup will verify all your\n"
-"backup files before restoring them.\n"
-"Before the restore, Drakbackup will remove \n"
-"your original directory, and you will loose all your \n"
-"data. It is important to be careful and not modify the \n"
-"backup data files by hand.\n"
-msgstr ""
-"\n"
-"Problemer med genskabelse af sikkerhedskopier:\n"
-"\n"
-"I genskabelsestrinnet vil Drakbackup kontrollere alle dine\n"
-"backupfiler fųr genskabelse af dem.\n"
-"Fųr genskabelsen vil Drakbackup fjerne \n"
-"dit nuvęrende katalog, og alle dine data vil gå tabt.\n"
-"Det er vigtigt at vęre forsigtig og ikke ęndre sikkerhedskopieringens\n"
-"datafiler i hånden.\n"
-
-#: ../../standalone/drakbackup_.c:3298
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, Drakbackup will remove\n"
-" your original directory and verify that all\n"
-" backup files are not corrupted. It is recommended\n"
-" you do a last backup before restoring.\n"
-" \n"
-"\n"
-msgstr ""
-"Beskrivelse:\n"
-"\n"
-" Drakbackup bruges til at lave sikkehedskopier af dit system.\n"
-" I konfigurationen kan du vęlge \n"
-"\t- Systemfiler, \n"
-"\t- Brugeres filer, \n"
-"\t- Andre filer.\n"
-"\teller Hele dit system ... eller Andet (såsom Windows partitioner)\n"
-"\n"
-" Drakbackup lader dig tage sikkerhedskopier af dit system på:\n"
-"\t- Ddisk.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (med autoboot, redning og autoinstallering.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Bånd.\n"
-"\n"
-" Drakbackup lader dig genskabe dit system på\n"
-" et katalog valgt af brugeren.\n"
-"\n"
-" Som standard vil alle sikkerhedskopier blive lagret i dit\n"
-" /var/lib/drakbackup katalog\n"
-"\n"
-" Konfigurationsfil:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"Genskabelsestrin:\n"
-" \n"
-" I genskabelsestrinnet vil Drakbackup fjerne dit nuvęrende katalog \n"
-" og kontrollere at alle dine backupfiler ikke er ųdelagte. Det \n"
-" anbefales at du laver en sidste sikkerhedskopiering fųr genskabelse.\n"
-" \n"
-"\n"
-
-#: ../../standalone/drakboot_.c:58
-#, c-format
-msgid "Installation of %s failed. The following error occured:"
-msgstr "Installationen af %s mislykkedes. Fųlgende fejl opstod:"
-
-#: ../../standalone/drakfont_.c:229
-msgid "Search installed fonts"
-msgstr "Sųg efter installerede skrifttyper"
-
-#: ../../standalone/drakfont_.c:231
-msgid "Unselect fonts installed"
-msgstr "Fravęlg installerede skrifttyper"
-
-#: ../../standalone/drakfont_.c:252
-msgid "parse all fonts"
-msgstr "fortolk alle skrifttyper"
-
-#: ../../standalone/drakfont_.c:253
-msgid "no fonts found"
-msgstr "kunne ikke finde nogen skrifttyper"
-
-#: ../../standalone/drakfont_.c:261 ../../standalone/drakfont_.c:303
-#: ../../standalone/drakfont_.c:352 ../../standalone/drakfont_.c:410
-#: ../../standalone/drakfont_.c:417 ../../standalone/drakfont_.c:443
-#: ../../standalone/drakfont_.c:455 ../../standalone/drakfont_.c:468
-msgid "done"
-msgstr "fęrdig"
-
-#: ../../standalone/drakfont_.c:265
-msgid "could not find any font in your mounted partitions"
-msgstr "Kunne ikke finde nogen skrifttyper i dine monterede partitioner"
-
-#: ../../standalone/drakfont_.c:301
-msgid "Reselect correct fonts"
-msgstr "Genvęlg korrekte skrifttyper"
-
-#: ../../standalone/drakfont_.c:304
-msgid "could not find any font.\n"
-msgstr "Kunne ikke finde nogen skrifttyper.\n"
-
-#: ../../standalone/drakfont_.c:327
-msgid "Search fonts in installed list"
-msgstr "Sųg efter skrifttyper i installeret liste"
-
-#: ../../standalone/drakfont_.c:350
-msgid "Fonts copy"
-msgstr "Kopi af skrifttyper"
-
-#: ../../standalone/drakfont_.c:353
-msgid "True Type fonts installation"
-msgstr "Installation af True Type-skrifttyper"
-
-#: ../../standalone/drakfont_.c:357
-msgid "please wait during ttmkfdir..."
-msgstr "Vent venligst på ttmkfdir..."
-
-#: ../../standalone/drakfont_.c:359
-msgid "True Type install done"
-msgstr "Installation af True Type fęrdig"
-
-#: ../../standalone/drakfont_.c:366 ../../standalone/drakfont_.c:382
-msgid "Fonts conversion"
-msgstr "Konvertering af skrifttyper"
-
-#: ../../standalone/drakfont_.c:370 ../../standalone/drakfont_.c:386
-#: ../../standalone/drakfont_.c:406
-msgid "type1inst building"
-msgstr "opbyg type1inst"
-
-#: ../../standalone/drakfont_.c:375 ../../standalone/drakfont_.c:390
-msgid "Ghostscript referencing"
-msgstr "Ghostscript referencer"
-
-#: ../../standalone/drakfont_.c:397
-msgid "ttf fonts conversion"
-msgstr "Konvertering af ttf-skrifttyper"
-
-#: ../../standalone/drakfont_.c:401
-msgid "pfm fonts conversion"
-msgstr "Konvertering af pfm-skrifttyper"
-
-#: ../../standalone/drakfont_.c:411
-msgid "Suppress temporary Files"
-msgstr "Undertryk midlertidige filer"
-
-#: ../../standalone/drakfont_.c:414
-msgid "Restart XFS"
-msgstr "Genstart XFS"
-
-#: ../../standalone/drakfont_.c:453 ../../standalone/drakfont_.c:463
-msgid "Suppress Fonts Files"
-msgstr "Undertryk skrifttypefiler"
-
-#: ../../standalone/drakfont_.c:465
-msgid "xfs restart"
-msgstr "genstart af xfs"
-
-#: ../../standalone/drakfont_.c:472 ../../standalone/drakfont_.c:760
-msgid ""
-"Before installing any fonts, be sure that you have the right to use and "
-"install them on your system.\n"
-"\n"
-"-You can install the fonts using the normal way. In rare cases, bogus fonts "
-"may hang up your X Server."
-msgstr ""
-"Fųr du installerer nogen skrifttyper bųr du vęre sikker på at du har lov til "
-"at bruge og installere dem på dit system. \n"
-"\n"
-"-Du kan installere skrifttyperne på normal måde. I sjęldne tilfęlde kan "
-"fejlbehęftede skrifttyper få din X-server til at hęnge."
-
-#: ../../standalone/drakfont_.c:547
-msgid "Fonts Importation"
-msgstr "Import af skrifttyper"
-
-#: ../../standalone/drakfont_.c:562
-msgid "Get Windows Fonts"
-msgstr "Hent skrifttyper fra Windows"
-
-#: ../../standalone/drakfont_.c:564
-msgid "Uninstall Fonts"
-msgstr "Afinstallér skrifttyper"
-
-#: ../../standalone/drakfont_.c:568
-msgid "Advanced Options"
-msgstr "Avancerede muligheder"
-
-#: ../../standalone/drakfont_.c:570
-msgid "Font List"
-msgstr "Liste over skrifttyper"
-
-#: ../../standalone/drakfont_.c:739
-msgid "Choose the applications that will support the fonts :"
-msgstr "Vęlg de programpakker som vil understųtte skrifttyperne:"
-
-#: ../../standalone/drakfont_.c:743
-msgid "Ghostscript"
-msgstr "Ghostscript"
-
-#: ../../standalone/drakfont_.c:747
-msgid "StarOffice"
-msgstr "StarOffice"
-
-#: ../../standalone/drakfont_.c:751
-msgid "Abiword"
-msgstr "Abiword"
-
-#: ../../standalone/drakfont_.c:755
-msgid "Generic Printers"
-msgstr "Generelle printere"
-
-#: ../../standalone/drakfont_.c:792
-msgid "Select the font file or directory and click on 'Add'"
-msgstr "Vęlg skrifttypefilen eller -kataloget oh klik på 'Tilfųj'"
-
-#: ../../standalone/drakfont_.c:828
-msgid "Install List"
-msgstr "Installationsliste"
-
-#: ../../standalone/drakfont_.c:858
-msgid "click here if you are sure."
-msgstr "Klik her hvis du er sikker."
-
-#: ../../standalone/drakfont_.c:860
-msgid "here if no."
-msgstr "Her hvis ikke."
-
-#: ../../standalone/drakfont_.c:897
-msgid "Unselected All"
-msgstr "Fravalgte alt"
-
-#: ../../standalone/drakfont_.c:899
-msgid "Selected All"
-msgstr "Valgte alt"
-
-#: ../../standalone/drakfont_.c:901
-msgid "Remove List"
-msgstr "Fjern liste"
-
-#: ../../standalone/drakfont_.c:919 ../../standalone/drakfont_.c:939
-msgid "Initials tests"
-msgstr "Begyndelsestester"
-
-#: ../../standalone/drakfont_.c:920
-msgid "Copy fonts on your system"
-msgstr "Kopiér skrifttyper på dit system"
-
-#: ../../standalone/drakfont_.c:921
-msgid "Install & convert Fonts"
-msgstr "Installér og konvertér skrifttyper"
-
-#: ../../standalone/drakfont_.c:922
-msgid "Post Install"
-msgstr "Efterbehandling for installering"
-
-#: ../../standalone/drakfont_.c:940
-msgid "Remove fonts on your system"
-msgstr "Fjern skrifttyper på dit system"
-
-#: ../../standalone/drakfont_.c:941
-msgid "Post Uninstall"
-msgstr "Efterbehandling for afinstallering"
-
-#: ../../standalone/drakgw_.c:43 ../../standalone/drakgw_.c:200
-msgid "Internet Connection Sharing"
-msgstr "Deling af internetforbindelse"
-
-#: ../../standalone/drakgw_.c:138
-msgid "Internet Connection Sharing currently enabled"
-msgstr "Deling af internetforbindelse er slået til"
-
-#: ../../standalone/drakgw_.c:139
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently enabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-"Indstilling af deling af internetforbindelse er allerede gjort.\n"
-"Deling er aktiveret.\n"
-"\n"
-"Hvad ųnsker du at gųre?"
-
-#: ../../standalone/drakgw_.c:143
-msgid "disable"
-msgstr "de-aktivér"
-
-#: ../../standalone/drakgw_.c:143 ../../standalone/drakgw_.c:168
-msgid "dismiss"
-msgstr "tręd af"
-
-#: ../../standalone/drakgw_.c:143 ../../standalone/drakgw_.c:168
-msgid "reconfigure"
-msgstr "genkonfigurér"
-
-#: ../../standalone/drakgw_.c:146
-msgid "Disabling servers..."
-msgstr "Slår servere fra..."
-
-#: ../../standalone/drakgw_.c:154
-msgid "Internet connection sharing is now disabled."
-msgstr "Deling af internetforbindelse er nu slået fra"
-
-#: ../../standalone/drakgw_.c:163
-msgid "Internet Connection Sharing currently disabled"
-msgstr "Deling af internetforbindelse er slået fra"
-
-#: ../../standalone/drakgw_.c:164
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently disabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-"Indstilling af deling af internetforbindelse er allerede gjort.\n"
-"Den er de-aktiveret for nęrvęrende\n"
-"Hvad ųnsker du at gųre?"
-
-#: ../../standalone/drakgw_.c:168
-msgid "enable"
-msgstr "aktivér"
-
-#: ../../standalone/drakgw_.c:175
-msgid "Enabling servers..."
-msgstr "Aktiverer servere..."
-
-#: ../../standalone/drakgw_.c:180
-msgid "Internet connection sharing is now enabled."
-msgstr "Deling af internetforbindelse er nu slået til"
-
-#: ../../standalone/drakgw_.c:201
-msgid ""
-"You are about to configure your computer to share its Internet connection.\n"
-"With that feature, other computers on your local network will be able to use "
-"this computer's Internet connection.\n"
-"\n"
-"Note: you need a dedicated Network Adapter to set up a Local Area Network "
-"(LAN)."
-msgstr ""
-"Du er ved at konfigurere din maskine til at dele sin internetforbindelse.\n"
-"Med denne mulighed vil andre maskiner på dit lokale netvęrk kunne bruge "
-"internetforbindelsen på denne maskine.\n"
-"\n"
-"Bemęrk: du skal bruge en dediceret netvęrksadapter, for at lave et lokalt "
-"netvęrk (LAN)."
-
-#: ../../standalone/drakgw_.c:227
-#, c-format
-msgid "Interface %s (using module %s)"
-msgstr "Gręnseflade %s (benytter modul %s)"
-
-#: ../../standalone/drakgw_.c:228
-#, c-format
-msgid "Interface %s"
-msgstr "Gręnseflade %s"
-
-#: ../../standalone/drakgw_.c:236
-msgid "No network adapter on your system!"
-msgstr "Ikke nogen netvęrksadapter i dit system!"
-
-#: ../../standalone/drakgw_.c:237
-msgid ""
-"No ethernet network adapter has been detected on your system. Please run the "
-"hardware configuration tool."
-msgstr ""
-"Ingen ethernet netvęrksadapter er blevet fundet på dit system. Kųr venligst "
-"vęrktųjet til maskinel konfiguration."
-
-#: ../../standalone/drakgw_.c:243
-msgid "Network interface"
-msgstr "Netvęrksgręnsesnit"
-
-#: ../../standalone/drakgw_.c:244
-#, c-format
-msgid ""
-"There is only one configured network adapter on your system:\n"
-"\n"
-"%s\n"
-"\n"
-"I am about to setup your Local Area Network with that adapter."
-msgstr ""
-"Der er kun én konfigureret netvęrksadapter i dit system:\n"
-"\n"
-"%s\n"
-"\n"
-"Jeg skal til at sętte dit lokalnet på med den adapter."
-
-#: ../../standalone/drakgw_.c:253
-msgid ""
-"Please choose what network adapter will be connected to your Local Area "
-"Network."
-msgstr "Vęlg hvilken netvęrksadapter som skal forbindes til dit lokalnet."
-
-#: ../../standalone/drakgw_.c:271
-msgid "Network interface already configured"
-msgstr "Netvęrksgręnsesnit allerede konfigureret"
-
-#: ../../standalone/drakgw_.c:272
-#, c-format
-msgid ""
-"Warning, the network adapter (%s) is already configured.\n"
-"\n"
-"Do you want an automatic re-configuration?\n"
-"\n"
-"You can do it manually but you need to know what you're doing."
-msgstr ""
-"Advarsel, netvęrkskortet (%s) er allerede konfigureret.\n"
-"\n"
-"Ųnsker du en automatisk re-konfiguration?\n"
-"\n"
-"Du kan gųre det i hånden, men du skal vide hvad du gųr."
-
-#: ../../standalone/drakgw_.c:277
-msgid "Automatic reconfiguration"
-msgstr "Automatisk rekonfiguration"
-
-#: ../../standalone/drakgw_.c:278
-msgid "Show current interface configuration"
-msgstr "Vis aktuelle gręnsesnitskonfiguration"
-
-#: ../../standalone/drakgw_.c:280
-#, c-format
-msgid ""
-"Current configuration of `%s':\n"
-"\n"
-"Network: %s\n"
-"IP address: %s\n"
-"IP attribution: %s\n"
-"Driver: %s"
-msgstr ""
-"Nuvęrende konfiguration af `%s':\n"
-"\n"
-"Netvęrk: %s\n"
-"IP-adresse: %s\n"
-"IP-attribut: %s\n"
-"Driver: %s"
-
-#: ../../standalone/drakgw_.c:292
-msgid ""
-"I can keep your current configuration and assume you already set up a DHCP "
-"server; in that case please verify I correctly read the C-Class Network that "
-"you use for your local network; I will not reconfigure it and I will not "
-"touch your DHCP server configuration.\n"
-"\n"
-"Else, I can reconfigure your interface and (re)configure a DHCP server for "
-"you.\n"
-"\n"
-msgstr ""
-"Jeg kan beholde din aktuelle konfiguration og antage at du allerede har sat "
-"en DHCP-server op; i så tilfęlde kontrollér da gerne at jeg har lęst det C-"
-"klasse-netvęrk korrekt, som du bruger for dit lokalnetvęrk; jeg vil ikke "
-"genkonfigurere det og jeg vil ikke rųre ved din konfiguration af DHCP-"
-"serveren.\n"
-"\n"
-"Ellers kan jeg genkonfigurere dit gręnsesnit og genkonfigurere en DHCP-"
-"server for dig.\n"
-"\n"
-
-#: ../../standalone/drakgw_.c:297
-msgid "C-Class Local Network"
-msgstr "C-klasse lokalnetvęrk"
-
-#: ../../standalone/drakgw_.c:298
-msgid "(This) DHCP Server IP"
-msgstr "(Denne) DHCP-servers IP-adresse"
-
-#: ../../standalone/drakgw_.c:299
-msgid "Re-configure interface and DHCP server"
-msgstr "Rekonfigurér gręnsesnit og DHCP-server"
-
-#: ../../standalone/drakgw_.c:306
-msgid "The Local Network did not finish with `.0', bailing out."
-msgstr "Lokalnetvęrket endte ikke med `.0', står af."
-
-#: ../../standalone/drakgw_.c:317
-#, c-format
-msgid "Potential LAN address conflict found in current config of %s!\n"
-msgstr "Mulig LAN-adresse konflikt fundet i konfigurationen til %s!\n"
-
-#: ../../standalone/drakgw_.c:325 ../../standalone/drakgw_.c:331
-msgid "Firewalling configuration detected!"
-msgstr "Brandmurkonfiguration fundet!"
-
-#: ../../standalone/drakgw_.c:326 ../../standalone/drakgw_.c:332
-msgid ""
-"Warning! An existing firewalling configuration has been detected. You may "
-"need some manual fix after installation."
-msgstr ""
-"Advarsel! En eksisterende brandmurkonfiguration er blevet fundet. Du skal "
-"muligvis lave manuelle rettelser efter installationen."
-
-#: ../../standalone/drakgw_.c:340
-msgid "Configuring..."
-msgstr "Konfigurerer..."
-
-#: ../../standalone/drakgw_.c:341
-msgid "Configuring scripts, installing software, starting servers..."
-msgstr "Konfigurerer skript, installerer programmel, starter servere..."
-
-#: ../../standalone/drakgw_.c:378
-#, c-format
-msgid "Problems installing package %s"
-msgstr "Problemer med installation af %s"
-
-#: ../../standalone/drakgw_.c:672
-msgid ""
-"Everything has been configured.\n"
-"You may now share Internet connection with other computers on your Local "
-"Area Network, using automatic network configuration (DHCP)."
-msgstr ""
-"Alt er blevet konfigureret.\n"
-"Du kan nu dele din internetforbindelse med andre maskiner på dit lokale "
-"netvęrk, ved at bruge DHCP."
-
-#: ../../standalone/drakgw_.c:689
-msgid "The setup has already been done, but it's currently disabled."
-msgstr "Indstilling er allerede gjort. men er de-aktiveret for nęrvęrende."
-
-#: ../../standalone/drakgw_.c:690
-msgid "The setup has already been done, and it's currently enabled."
-msgstr "Indstilling er allerede gjort. og er for nęrvęrende aktiv."
-
-#: ../../standalone/drakgw_.c:691
-msgid "No Internet Connection Sharing has ever been configured."
-msgstr "Deling af Internetforbindelse har aldrig vęret konfigureret."
-
-#: ../../standalone/drakgw_.c:696
-msgid "Internet connection sharing configuration"
-msgstr "Konfiguration af deling af internetforbindelse"
-
-#: ../../standalone/drakgw_.c:703
-#, c-format
-msgid ""
-"Welcome to the Internet Connection Sharing utility!\n"
-"\n"
-"%s\n"
-"\n"
-"Click on Configure to launch the setup wizard."
-msgstr ""
-"Velkommen til vęrktųjet til deling af internetforbindelse!\n"
-"%s\n"
-"\n"
-"Klik på Konfigurér for at starte programmet til at dele din "
-"internetforbindelse!"
-
-#: ../../standalone/draknet_.c:80
-#, c-format
-msgid "Network configuration (%d adapters)"
-msgstr "Netvęrkskonfiguration (%d adaptorer)"
-
-#: ../../standalone/draknet_.c:87 ../../standalone/draknet_.c:595
-msgid "Profile: "
-msgstr "Profil: "
-
-#: ../../standalone/draknet_.c:95
-msgid "Del profile..."
-msgstr "Slet profil..."
-
-#: ../../standalone/draknet_.c:101
-msgid "Profile to delete:"
-msgstr "Profil der skal slettes:"
-
-#: ../../standalone/draknet_.c:129
-msgid "New profile..."
-msgstr "Ny profil..."
-
-#: ../../standalone/draknet_.c:135
-msgid ""
-"Name of the profile to create (the new profile is created as a copy of the "
-"current one) :"
-msgstr ""
-"Navnet på profilen der skal oprettes (den nye profil oprettes som en \n"
-"kopi af den nuvęrende) :"
-
-#: ../../standalone/draknet_.c:161
-msgid "Hostname: "
-msgstr "Vęrtsnavn: "
-
-#: ../../standalone/draknet_.c:168
-msgid "Internet access"
-msgstr "Internetadgang"
-
-#: ../../standalone/draknet_.c:181
-msgid "Type:"
-msgstr "Type:"
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-msgid "Gateway:"
-msgstr "Gateway:"
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-msgid "Interface:"
-msgstr "Gręnseflade:"
-
-#: ../../standalone/draknet_.c:195
-msgid "Status:"
-msgstr "Status:"
-
-#: ../../standalone/draknet_.c:202
-msgid "Wait please"
-msgstr "Vent venligst"
-
-#: ../../standalone/draknet_.c:220
-msgid "Configure Internet Access..."
-msgstr "Konfigurér Internetadgang..."
-
-#: ../../standalone/draknet_.c:227 ../../standalone/draknet_.c:449
-msgid "LAN configuration"
-msgstr "LAN konfiguration"
-
-#: ../../standalone/draknet_.c:232
-msgid "Driver"
-msgstr "Drivprogram"
-
-#: ../../standalone/draknet_.c:232
-msgid "Interface"
-msgstr "Gręnseflade"
-
-#: ../../standalone/draknet_.c:232
-msgid "Protocol"
-msgstr "Protokol"
-
-#: ../../standalone/draknet_.c:232
-msgid "State"
-msgstr "Status"
-
-#: ../../standalone/draknet_.c:244
-msgid "Configure Local Area Network..."
-msgstr "Konfigurér lokalnetvęrk..."
-
-#: ../../standalone/draknet_.c:256
-msgid "Click here to launch the wizard ->"
-msgstr "Klik her for at starte vejlederen ->"
-
-#: ../../standalone/draknet_.c:257
-msgid "Wizard..."
-msgstr "Vejleder..."
-
-#: ../../standalone/draknet_.c:283
-msgid "Apply"
-msgstr "Anvend"
-
-#: ../../standalone/draknet_.c:302
-msgid "Please Wait... Applying the configuration"
-msgstr "Vent venligst... Sętter konfigurationen i anvendelse"
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-msgid "Connected"
-msgstr "Tilsluttet"
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-msgid "Not connected"
-msgstr "Ikke tilsluttet"
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Connect..."
-msgstr "Tilslut..."
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Disconnect..."
-msgstr "Afbrud..."
-
-#: ../../standalone/draknet_.c:404
-msgid ""
-"Warning, another Internet connection has been detected, maybe using your "
-"network"
-msgstr ""
-"Advarsel, en anden internetforbindelse er blevet fundet, der måske bruger "
-"dit netvęrk"
-
-#: ../../standalone/draknet_.c:431
-msgid ""
-"You don't have any configured interface.\n"
-"Configure them first by clicking on 'Configure'"
-msgstr ""
-"Du har ingen konfigurerede gręnsesnit.\n"
-"Konfigurér disse fųrst ved at klikke på 'Konfigurér'"
-
-#: ../../standalone/draknet_.c:453
-msgid "LAN Configuration"
-msgstr "LAN konfiguration"
-
-#: ../../standalone/draknet_.c:464
-#, c-format
-msgid "Adapter %s: %s"
-msgstr "Adapter %s: %s"
-
-#: ../../standalone/draknet_.c:470
-msgid "Boot Protocol"
-msgstr "Opstartsprotokol"
-
-#: ../../standalone/draknet_.c:471
-msgid "Started on boot"
-msgstr "Startede med opstart"
-
-#: ../../standalone/draknet_.c:472
-msgid "DHCP client"
-msgstr "DHCP-klient"
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-msgid "activate now"
-msgstr "aktivér nu"
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-msgid "deactivate now"
-msgstr "deaktivér nu"
-
-#: ../../standalone/draknet_.c:503
-msgid ""
-"This interface has not been configured yet.\n"
-"Launch the configuration wizard in the main window"
-msgstr ""
-"Dette gręnsesnit er ikke blevet konfigureret endnu.\n"
-"Start konfigurationsvejlederen i hovedvinduet"
-
-#: ../../standalone/draknet_.c:560
-msgid ""
-"You don't have any internet connection.\n"
-"Create one first by clicking on 'Configure'"
-msgstr ""
-"Du har ingen internet-opkobling.\n"
-"Opret én fųrst ved at klikke på 'Konfigurér'"
-
-#: ../../standalone/draknet_.c:584
-msgid "Internet connection configuration"
-msgstr "Konfiguration af Internetforbindelse"
-
-#: ../../standalone/draknet_.c:588
-msgid "Internet Connection Configuration"
-msgstr "Konfiguration af Internetforbindelse"
-
-#: ../../standalone/draknet_.c:597
-msgid "Connection type: "
-msgstr "Type af forbindelse"
-
-#: ../../standalone/draknet_.c:603
-msgid "Parameters"
-msgstr "Parametre"
-
-#: ../../standalone/draknet_.c:621
-msgid "Gateway"
-msgstr "Gateway"
-
-#: ../../standalone/draknet_.c:630
-msgid "Ethernet Card"
-msgstr "Ethernet-kort"
-
-#: ../../standalone/draknet_.c:631
-msgid "DHCP Client"
-msgstr "DHCP-Klient"
-
-#: ../../standalone/draksec_.c:31
-msgid "Setting security level"
-msgstr "Indstiller sikkerhedsniveau"
-
-#: ../../standalone/drakxconf_.c:47
-msgid "Control Center"
-msgstr "Kontrolcenter"
-
-#: ../../standalone/drakxconf_.c:48
-msgid "Choose the tool you want to use"
-msgstr "Vęlg det vęrktųj du ųnsker at benytte"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "Canada (cable)"
-msgstr "Canada (kabel)"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (bcast)"
-msgstr "USA (bcast)"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (cable)"
-msgstr "USA (kabel)"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (cable-hrc)"
-msgstr "USA (kabel-hrc)"
-
-#: ../../standalone/drakxtv_.c:49
-msgid "China (bcast)"
-msgstr "Kina (bcast)"
-
-#: ../../standalone/drakxtv_.c:49
-msgid "Japan (bcast)"
-msgstr "Japan (bcast)"
-
-#: ../../standalone/drakxtv_.c:49
-msgid "Japan (cable)"
-msgstr "Japan (kabel)"
-
-#: ../../standalone/drakxtv_.c:50
-msgid "East Europe"
-msgstr "Ųsteuropa"
-
-#: ../../standalone/drakxtv_.c:50
-msgid "Ireland"
-msgstr "Irland"
-
-#: ../../standalone/drakxtv_.c:50
-msgid "West Europe"
-msgstr "Vesteuropa"
-
-#: ../../standalone/drakxtv_.c:51
-msgid "Australia"
-msgstr "Australien"
-
-#: ../../standalone/drakxtv_.c:51
-msgid "Newzealand"
-msgstr "New Zealand"
-
-#: ../../standalone/drakxtv_.c:52
-msgid "South Africa"
-msgstr "Sydafrika"
-
-#: ../../standalone/drakxtv_.c:53
-msgid "Argentina"
-msgstr "Argentina"
-
-#: ../../standalone/drakxtv_.c:58
-msgid ""
-"Please,\n"
-"type in your tv norm and country"
-msgstr "Indtast din tv-standard og land"
-
-#: ../../standalone/drakxtv_.c:60
-msgid "TV norm :"
-msgstr "TV-standard:"
-
-#: ../../standalone/drakxtv_.c:61
-msgid "Area :"
-msgstr "Område:"
-
-#: ../../standalone/drakxtv_.c:65
-msgid "Scanning for TV channels in progress ..."
-msgstr "Skanning for tv-kanaler i gang..."
-
-#: ../../standalone/drakxtv_.c:72
-msgid "Scanning for TV channels"
-msgstr "Skanner for tv-kanaler"
-
-#: ../../standalone/drakxtv_.c:83
-msgid "No TV Card detected!"
-msgstr "Intet tv-kort genkendt!"
-
-#: ../../standalone/drakxtv_.c:84
-msgid ""
-"No TV Card has been detected on your machine. Please verify that a Linux-"
-"supported Video/TV Card is correctly plugged in.\n"
-"\n"
-"\n"
-"You can visit our hardware database at:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/hardware.php3"
-msgstr ""
-"Intet tv-kort blev genkendt på din maskine. Tjek venligst at et video/tv-"
-"kort der understųttes af Linux er korrekt isat.\n"
-"\n"
-"\n"
-"Du kan besųge vores database over udstyr på:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/hardware.php3"
-
-#: ../../standalone/keyboarddrake_.c:16
-msgid "usage: keyboarddrake [--expert] [keyboard]\n"
-msgstr "brug: keyboarddrake [--expert] [tastatur]\n"
-
-#: ../../standalone/keyboarddrake_.c:29
-msgid "Please, choose your keyboard layout."
-msgstr "Vęlg tastaturlayout."
-
-#: ../../standalone/keyboarddrake_.c:36
-msgid "Do you want the BackSpace to return Delete in console?"
-msgstr "Vil du have at Bak-tasten giver Delete i konsollen?"
-
-#: ../../standalone/livedrake_.c:24
-msgid "Change Cd-Rom"
-msgstr "Skift cdrom"
-
-#: ../../standalone/livedrake_.c:25
-msgid ""
-"Please insert the Installation Cd-Rom in your drive and press Ok when done.\n"
-"If you don't have it, press Cancel to avoid live upgrade."
-msgstr ""
-"Indsęt installations-cdrom'en i dit cdrom-drev og tryk på Ok, når det gjort\n"
-"Hvis du ikke har den - tryk på Annullér, så undgås levende opgradering"
-
-#: ../../standalone/livedrake_.c:35
-msgid "Unable to start live upgrade !!!\n"
-msgstr "Kan ikke starte levende opgradering!!!\n"
-
-#: ../../standalone/localedrake_.c:32
-msgid "The change is done, but to be effective you must logout"
-msgstr "Ęndringen er fortaget, men for at vęre effektiv skal du logge ud"
-
-#: ../../standalone/logdrake_.c:85 ../../standalone/logdrake_.c:501
-msgid "logdrake"
-msgstr "logdrake"
-
-#: ../../standalone/logdrake_.c:95
-msgid "Show only for the selected day"
-msgstr "Vis kun for den valgte dag"
-
-#: ../../standalone/logdrake_.c:102
-msgid "/File/_New"
-msgstr "/Fil/_Ny"
-
-#: ../../standalone/logdrake_.c:102
-msgid "<control>N"
-msgstr "<Ctrl>N"
-
-#: ../../standalone/logdrake_.c:103
-msgid "/File/_Open"
-msgstr "/Fil/_Åbn"
-
-#: ../../standalone/logdrake_.c:103
-msgid "<control>O"
-msgstr "<Ctrl>O"
-
-#: ../../standalone/logdrake_.c:104
-msgid "/File/_Save"
-msgstr "/Fil/_Gem"
-
-#: ../../standalone/logdrake_.c:104
-msgid "<control>S"
-msgstr "<Ctrl>S"
-
-#: ../../standalone/logdrake_.c:105
-msgid "/File/Save _As"
-msgstr "/Fil/Gem _som"
-
-#: ../../standalone/logdrake_.c:106
-msgid "/File/-"
-msgstr "/Fil/-"
-
-#: ../../standalone/logdrake_.c:108
-msgid "/_Options"
-msgstr "/_Indstillinger"
-
-#: ../../standalone/logdrake_.c:109
-msgid "/Options/Test"
-msgstr "/Indstillinger/Test"
-
-#: ../../standalone/logdrake_.c:110
-msgid "/_Help"
-msgstr "/_Hjęlp"
-
-#: ../../standalone/logdrake_.c:111
-msgid "/Help/_About..."
-msgstr "/Hjęlp/_Om"
-
-#: ../../standalone/logdrake_.c:118
-msgid "-misc-fixed-medium-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr "-misc-fixed-medium-r-*-*-*-100-*-*-*-*-*-*,*"
-
-#: ../../standalone/logdrake_.c:119
-msgid "-misc-fixed-bold-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr "-misc-fixed-bold-r-*-*-*-100-*-*-*-*-*-*,*"
-
-#: ../../standalone/logdrake_.c:173
-msgid "User"
-msgstr "Bruger"
-
-#: ../../standalone/logdrake_.c:174
-msgid "Messages"
-msgstr "Beskeder"
-
-#: ../../standalone/logdrake_.c:175
-msgid "Syslog"
-msgstr "System"
-
-#: ../../standalone/logdrake_.c:176
-msgid "Mandrake Tools Explanations"
-msgstr "Forklaringer til Mandrake-vęrktųjer"
-
-#: ../../standalone/logdrake_.c:179
-msgid "search"
-msgstr "sųg"
-
-#: ../../standalone/logdrake_.c:185
-msgid "A tool to monitor your logs"
-msgstr "Et vęrktųj til at overvåge dine logfiler"
-
-#: ../../standalone/logdrake_.c:186
-msgid "Settings"
-msgstr "Indstillinger"
-
-#: ../../standalone/logdrake_.c:191
-msgid "matching"
-msgstr "Samstemmende:"
-
-#: ../../standalone/logdrake_.c:192
-msgid "but not matching"
-msgstr "Men ikke samstemmende"
-
-#: ../../standalone/logdrake_.c:196
-msgid "Choose file"
-msgstr "Vęlg fil"
-
-#: ../../standalone/logdrake_.c:201
-msgid "Calendar"
-msgstr "Kalender"
-
-#: ../../standalone/logdrake_.c:211
-msgid "Content of the file"
-msgstr "Indhold af filen"
-
-#: ../../standalone/logdrake_.c:215 ../../standalone/logdrake_.c:390
-msgid "Mail/SMS alert"
-msgstr "Post og SMS påmindelse"
-
-#: ../../standalone/logdrake_.c:268
-#, c-format
-msgid "please wait, parsing file: %s"
-msgstr "vent venligst, fortolker filen: %s"
-
-#: ../../standalone/logdrake_.c:405
-msgid "Mail/SMS alert configuration"
-msgstr "Post og SMS påmindelseskonfiguration"
-
-#: ../../standalone/logdrake_.c:406
-msgid ""
-"Welcome to the mail/SMS configuration utility.\n"
-"\n"
-"Here, you'll be able to set up the alert system.\n"
-msgstr ""
-"Velkommen til programmet for post og SMS-konfigurering.\n"
-"\n"
-"Her vil du kunne opsętte påmindelsessystemet\n"
-
-#: ../../standalone/logdrake_.c:414
-msgid "proftpd"
-msgstr "proftpd"
-
-#: ../../standalone/logdrake_.c:417
-msgid "sshd"
-msgstr "sshd"
-
-#: ../../standalone/logdrake_.c:418
-msgid "webmin"
-msgstr "webmin"
-
-#: ../../standalone/logdrake_.c:419
-msgid "xinetd"
-msgstr "xinetd"
-
-#: ../../standalone/logdrake_.c:422
-msgid "service setting"
-msgstr "Opsętning af tjenester"
-
-#: ../../standalone/logdrake_.c:423
-msgid ""
-"You will receive an alert if one of the selected service is no more running"
-msgstr ""
-"Du vil modtage en advarsel hvis en af de valgte tjenester ikke lęngere kųrer"
-
-#: ../../standalone/logdrake_.c:433
-msgid "load setting"
-msgstr "indlęs opsętning"
-
-#: ../../standalone/logdrake_.c:434
-msgid "You will receive an alert if the load is higher than this value"
-msgstr "Du vil modtage en advarsel hvis belastningen er hųjere end denne vęrdi"
-
-#: ../../standalone/logdrake_.c:447
-msgid "alert configuration"
-msgstr "advarsels-konfiguration"
-
-#: ../../standalone/logdrake_.c:448
-msgid "Configure the way the system will alert you"
-msgstr "Konfigurerer måden systemet vil advare dig på"
-
-#: ../../standalone/logdrake_.c:478
-msgid "Save as.."
-msgstr "Gem som..."
-
-#: ../../standalone/mousedrake_.c:49
-msgid "Please, choose the type of your mouse."
-msgstr "Vęlg muse-type."
-
-#: ../../standalone/mousedrake_.c:59
-msgid "no serial_usb found\n"
-msgstr "ingen seriel_usb fundet\n"
-
-#: ../../standalone/mousedrake_.c:63
-msgid "Emulate third button?"
-msgstr "Emulering af tredje knap?"
-
-#: ../../standalone/scannerdrake_.c:53
-#, c-format
-msgid "%s found on %s, configure it ?"
-msgstr "%s fundet på %s, skal det konfigureres?"
-
-#: ../../standalone/scannerdrake_.c:60
-msgid "Select a scanner"
-msgstr "Vęlg en skanner"
-
-#: ../../standalone/scannerdrake_.c:80
-#, c-format
-msgid "This %s scanner is unsupported"
-msgstr "Denne %s-skanner er ikke understųttet"
-
-#: ../../standalone/scannerdrake_.c:94
-#, c-format
-msgid ""
-"Scannerdrake was not able to detect your %s scanner.\n"
-"Please select the device where your scanner is plugged"
-msgstr ""
-"Scannerdrake kunne ikke genkende din %s-skanner.\n"
-"Vęlg venligst den enhed hvor din skanner er isat"
-
-#: ../../standalone/scannerdrake_.c:96
-msgid "choose device"
-msgstr "vęlg enhed"
-
-#: ../../standalone/scannerdrake_.c:102
-#, c-format
-msgid ""
-"This %s scanner must be configured by printerdrake.\n"
-"You can launch printerdrake from the Mandrake Control Center in Hardware "
-"section."
-msgstr ""
-"Denne %s-skanner skal vęre konfigureret af printerdrake.\n"
-"Du kan starte printerdrake fra Mandrake Kontrolcenter i Udstyr-afsnittet."
-
-#: ../../standalone/scannerdrake_.c:107
-#, c-format
-msgid ""
-"Your %s scanner has been configured.\n"
-"You may now scan documents using ``XSane'' from Multimedia/Graphics in the "
-"applications menu."
-msgstr ""
-"Din %s-skanner er blevet konfigureret.\n"
-"Du kan nu skanne dokumenter med 'XSane' fra Multimedie/grafik iprogrammenuen."
-
-#: ../../standalone/tinyfirewall_.c:31
-msgid "Firewalling Configuration"
-msgstr "Brandmurskonfiguration"
-
-#: ../../standalone/tinyfirewall_.c:44
-msgid "Firewalling configuration"
-msgstr "Brandmurskonfiguration"
-
-#: ../../standalone/tinyfirewall_.c:79
-msgid ""
-"Firewalling\n"
-"\n"
-"You already have set up a firewall.\n"
-"Click on Configure to change or remove the firewall"
-msgstr ""
-"Brandmure\n"
-"\n"
-"Du har allerede indstillet en brandmur.\n"
-"Klik på Konfigurér for at ęndre eller fjerne brandmuren"
-
-#: ../../standalone/tinyfirewall_.c:83
-msgid ""
-"Firewalling\n"
-"\n"
-"Click on Configure to set up a standard firewall"
-msgstr ""
-"Brandmure\n"
-"\n"
-"Klik på Konfigurér for at sętte en standard-brandmur op"
-
-#: ../../steps.pm_.c:14
-msgid "Choose your language"
-msgstr "Vęlg sprog"
-
-#: ../../steps.pm_.c:15
-msgid "Select installation class"
-msgstr "Vęlg installations-metode"
-
-#: ../../steps.pm_.c:16
-msgid "Hard drive detection"
-msgstr "Harddisk bestemmelse"
-
-#: ../../steps.pm_.c:17
-msgid "Configure mouse"
-msgstr "Konfigurér mus"
-
-#: ../../steps.pm_.c:18
-msgid "Choose your keyboard"
-msgstr "Vęlg tastatur"
-
-#: ../../steps.pm_.c:19
-msgid "Security"
-msgstr "Sikkerhed"
-
-#: ../../steps.pm_.c:20
-msgid "Setup filesystems"
-msgstr "Vęlg filsystemer"
-
-#: ../../steps.pm_.c:21
-msgid "Format partitions"
-msgstr "Formatér partitioner"
-
-#: ../../steps.pm_.c:22
-msgid "Choose packages to install"
-msgstr "Vęlg pakker til installation"
-
-#: ../../steps.pm_.c:23
-msgid "Install system"
-msgstr "Installér system"
-
-#: ../../steps.pm_.c:25
-msgid "Add a user"
-msgstr "Tilfųj bruger"
-
-#: ../../steps.pm_.c:26
-msgid "Configure networking"
-msgstr "Konfigurér netvęrk"
-
-#: ../../steps.pm_.c:28
-msgid "Configure services"
-msgstr "Konfigurér tjenester"
-
-#: ../../steps.pm_.c:29
-msgid "Install bootloader"
-msgstr "Installér systemopstarter"
-
-#: ../../steps.pm_.c:31
-msgid "Create a bootdisk"
-msgstr "Opret opstartsdiskette"
-
-#: ../../steps.pm_.c:33
-msgid "Configure X"
-msgstr "Konfigurér X"
-
-#: ../../steps.pm_.c:34
-msgid "Install system updates"
-msgstr "Installér opdateringer"
-
-#: ../../steps.pm_.c:35
-msgid "Exit install"
-msgstr "Afslut installation"
-
-#: ../../tinyfirewall.pm_.c:9
-msgid ""
-"tinyfirewall configurator\n"
-"\n"
-"This configures a personal firewall for this Mandrake Linux machine.\n"
-"For a powerful dedicated firewall solution, please look to the\n"
-"specialized MandrakeSecurity Firewall distribution."
-msgstr ""
-"tinyfirewall-konfigurator\n"
-"\n"
-"Dette konfigurerer en personlig brandmur for denne Mandrake Linux maskine.\n"
-"For en stęrk dedikeret brandmurs-lųsning se venligst den specialiserede "
-"MandrakeSecurity Firewall-distribution."
-
-#: ../../tinyfirewall.pm_.c:14
-msgid ""
-"We'll now ask you questions about which services you'd like to allow\n"
-"the Internet to connect to. Please think carefully about these\n"
-"questions, as your computer's security is important.\n"
-"\n"
-"Please, if you're not currently using one of these services, firewall\n"
-"it off. You can change this configuration anytime you like by\n"
-"re-running this application!"
-msgstr ""
-"Vi vil nu spųrge dig om hvilke tjenester du gerne vil tillade\n"
-"internettet at forbinde til. Tęnk grundigt over disse\n"
-"spųrgsmål, da din maskines sikkerhed er vigtig.\n"
-"\n"
-"Hvis du ikke bruger nogle af disse tjenester så skęrm dem af\n"
-"med brandmuren. Du kan altid ęndre indstillingerne når du vil\n"
-"ved at kųre dette program igen!"
-
-#: ../../tinyfirewall.pm_.c:21
-msgid ""
-"Are you running a web server on this machine that you need the whole\n"
-"Internet to see? If you are running a webserver that only needs to be\n"
-"accessed by this machine, you can safely answer NO here.\n"
-"\n"
-msgstr ""
-"Kųrer du en webserver på denne maskine som du har brug for at hele\n"
-"internettet kan se? Hvis du kųrer en webserver som kun behųver at blive\n"
-"tilgået af denne maskine kan du roligt svare NEJ her.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:26
-msgid ""
-"Are you running a name server on this machine? If you didn't set one\n"
-"up to give away IP and zone information to the whole Internet, please\n"
-"answer no.\n"
-"\n"
-msgstr ""
-"Kųrer du en DNS-navneserver på denne maskine? Hvis du ikke har sat\n"
-"en op til at give IP- og zone-information til hele internettet kan du svare\n"
-"nej her.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:31
-msgid ""
-"Do you want to allow incoming Secure Shell (ssh) connections? This\n"
-"is a telnet-replacement that you might use to login. If you're using\n"
-"telnet now, you should definitely switch to ssh. telnet is not\n"
-"encrypted -- so some attackers can steal your password if you use\n"
-"it. ssh is encrypted and doesn't allow for this eavesdropping."
-msgstr ""
-"Ųnsker du at tillade indgående Secure Shell ssh-forbindelser?\n"
-"Det er en erstatning for telnet som du måske vil bruge til at logge ind.\n"
-"Hvis du bruger telnet nu bųr du afgjort skifte til ssh. telnet er ikke\n"
-"krypteret - så nogle angribere kan stjęle din adgangskode hvis du bruger\n"
-"den. ssh er krypteret og tillader ikke den slags aflytning."
-
-#: ../../tinyfirewall.pm_.c:36
-msgid ""
-"Do you want to allow incoming telnet connections?\n"
-"This is horribly unsafe, as we explained in the previous screen. We\n"
-"strongly recommend answering No here and using ssh in place of\n"
-"telnet.\n"
-msgstr ""
-"Vil du tillade indgående telnet-forbindelser?\n"
-"Dette er virkeligt usikkert som vi har forklaret i det foregående billede. "
-"Vi\n"
-"anbefaler stęrkt at du svarer NEJ her og bruger ssh i stedet for telnet.\n"
-
-#: ../../tinyfirewall.pm_.c:41
-msgid ""
-"Are you running an FTP server here that you need accessible to the\n"
-"Internet? If you are, we strongly recommend that you only use it for\n"
-"Anonymous transfers. Any passwords sent by FTP can be stolen by some\n"
-"attackers, since FTP also uses no encryption for transferring passwords.\n"
-msgstr ""
-"Kųrer du en FTP-tjeneste på denne maskine som du har brug for at hele\n"
-"internettet har adgang til? Hvis du har så anbefaler vi stęrkt at du kun\n"
-"bruger den til anonyme overfųrsler. En hvilkensomhelst adgangskode sendt\n"
-"over FTP kan stjęles af visse angribere, siden FTP heller ikke bruger\n"
-"kryptering til at overfųre adgangskoder.\n"
-
-#: ../../tinyfirewall.pm_.c:46
-msgid ""
-"Are you running a mail server here? If you're sending you \n"
-"messages through pine, mutt or any other text-based mail client,\n"
-"you probably are. Otherwise, you should firewall this off.\n"
-"\n"
-msgstr ""
-"Kųrer du en post-server her? Hvis du sender beskeder med\n"
-"pine, mutt eller en anden tekstbaseret post-klient er det sandsynligt.\n"
-"Ellers bųr du skęrme den vęk.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:51
-msgid ""
-"Are you running a POP or IMAP server here? This would\n"
-"be used to host non-web-based mail accounts for people via \n"
-"this machine.\n"
-"\n"
-msgstr ""
-"Kųrer du en POP- eller IMAP-tjeneste her? Dette kan bruges til at betjene "
-"ikke-webbaserede postkonti for folk via denne maskine.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:56
-msgid ""
-"You appear to be running a 2.2 kernel. If your network IP\n"
-"is automatically set by a computer in your home or office \n"
-"(dynamically assigned), we need to allow for this. Is\n"
-"this the case?\n"
-msgstr ""
-"Du ser ud til at kųre en 2.2-kerne. Hvis din IP-netvęrksadresse\n"
-"bliver sat automatisk af en maskine i dit hjem eller kontor\n"
-"(dynamisk tildelt) bųr vi tillade dette. Er dette tilfęldet?\n"
-
-#: ../../tinyfirewall.pm_.c:61
-msgid ""
-"Is your computer getting time syncronized to another computer?\n"
-"Mostly, this is used by medium-large Unix/Linux organizations\n"
-"to synchronize time for logging and such. If you're not part\n"
-"of a larger office and haven't heard of this, you probably \n"
-"aren't."
-msgstr ""
-"Får din maskine tiden synkroniseret efter en anden maskine?\n"
-"Oftest er dette brugt af stųrre Unix/Linux-organisationer for at\n"
-"synkronisere tiden for logning og lignende. Hvis du ikke er en del\n"
-"af et stųrre kontor og ikke har hųrt om dette er det sandsynligvis\n"
-"ikke tilfęldet."
-
-#: ../../tinyfirewall.pm_.c:66
-msgid ""
-"Configuration complete. May we write these changes to disk?\n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-"Konfigurationen er fęrdig. Skal vi skrive disse ęndringer til disken?\n"
-"\n"
-"\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:82
-#, c-format
-msgid "Can't open %s: %s\n"
-msgstr "Kan ikke åbne %s: %s\n"
-
-#: ../../tinyfirewall.pm_.c:84
-#, c-format
-msgid "Can't open %s for writing: %s\n"
-msgstr "Kan ikke åbne %s for skrivning: %s\n"
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "No I don't need DHCP"
-msgstr "Nej, jeg har ikke brug for DHCP"
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "Yes I need DHCP"
-msgstr "Ja, jeg har brug for DHCP"
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "No I don't need NTP"
-msgstr "Nej, jeg har ikke brug for NTP"
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "Yes I need NTP"
-msgstr "Ja, jeg har brug for NTP"
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-msgid "Don't Save"
-msgstr "Gem ikke"
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-#: ../../tinyfirewall.pm_.c:206
-msgid "Save & Quit"
-msgstr "Gem og afslut"
-
-#: ../../tinyfirewall.pm_.c:197 ../../tinyfirewall.pm_.c:201
-msgid "Firewall Configuration Wizard"
-msgstr "Vejleder til brandmurskonfiguration"
-
-#: ../../tinyfirewall.pm_.c:199
-msgid "No (firewall this off from the internet)"
-msgstr "Nej (sęt en brandmur op mod internettet)"
-
-#: ../../tinyfirewall.pm_.c:200
-msgid "Yes (allow this through the firewall)"
-msgstr "Nej (tillad dette gennem brandmuren)"
-
-#: ../../tinyfirewall.pm_.c:232
-msgid "Please Wait... Verifying installed packages"
-msgstr "Vent venligst..., kontrollerer installerede pakker"
-
-#: ../../tinyfirewall.pm_.c:238
-#, c-format
-msgid ""
-"Failure installing the needed packages : %s and Bastille.\n"
-" Try to install them manually."
-msgstr ""
-"Kunne ikke installere de kręvede pakker: %s og Bastille.\n"
-" Prųv at installere dem manuelt."
-
-#: ../../share/compssUsers:999
-msgid "Web/FTP"
-msgstr "Web/FTP"
-
-#: ../../share/compssUsers:999
-msgid "Network Computer (client)"
-msgstr "Netvęrksmaskine (klient)"
-
-#: ../../share/compssUsers:999
-msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr "NFS-vęrt, SMB-vęrt, mellemvęrt (proxy), SSH-vęrt"
-
-#: ../../share/compssUsers:999
-msgid "Office"
-msgstr "Kontor"
-
-#: ../../share/compssUsers:999
-msgid "Gnome Workstation"
-msgstr "Gnome-arbejdsstation"
-
-#: ../../share/compssUsers:999
-msgid "Tools for your Palm Pilot or your Visor"
-msgstr "Vęrktųjer til Palm Pilot og Visor"
-
-#: ../../share/compssUsers:999
-msgid "Workstation"
-msgstr "Arbejdsstation"
-
-#: ../../share/compssUsers:999
-msgid "Firewall/Router"
-msgstr "Brandmur/router"
-
-#: ../../share/compssUsers:999
-msgid "Domain Name and Network Information Server"
-msgstr "Server for domęnenavne (DNS) og netvęrksinformation (NIS)"
-
-#: ../../share/compssUsers:999
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-"Kontor-programmer: Tekstbehandler (kword, abiword), regneark (kspread, "
-"gnumeric), pdf-visere, o.lign."
-
-#: ../../share/compssUsers:999
-msgid "Audio-related tools: mp3 or midi players, mixers, etc"
-msgstr "Lyd-relaterede vęrktųjer: mp3 eller midi-afspillere, mixere o.lign."
-
-#: ../../share/compssUsers:999
-msgid "Books and Howto's on Linux and Free Software"
-msgstr "Bųger og vejledninger om Linux og Frit Programmel"
-
-#: ../../share/compssUsers:999
-msgid "KDE Workstation"
-msgstr "KDE-arbejdsstation"
-
-#: ../../share/compssUsers:999
-msgid "Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm, Window Maker, Enlightenment, Fvwm, etc"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Video"
-msgstr "Multimedie - Video"
-
-#: ../../share/compssUsers:999
-msgid "Set of tools for mail, news, web, file transfer, and chat"
-msgstr "Samling af vęrktųjer til post, nyheder, filoverfųrsel og chat"
-
-#: ../../share/compssUsers:999
-msgid "Database"
-msgstr "Database"
-
-#: ../../share/compssUsers:999
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL eller MySQL database-server"
-
-#: ../../share/compssUsers:999
-msgid "Tools to ease the configuration of your computer"
-msgstr "Vęrktųjer til at lette indstillingen af din maskine"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Sound"
-msgstr "Multimedie - Lyd"
-
-#: ../../share/compssUsers:999
-msgid "Utilities"
-msgstr "Vęrktųjer"
-
-#: ../../share/compssUsers:999
-msgid "Documentation"
-msgstr "Dokumentation"
-
-#: ../../share/compssUsers:999
-msgid "Console Tools"
-msgstr "Konsolvęrktųjer"
-
-#: ../../share/compssUsers:999
-msgid "Postfix mail server, Inn news server"
-msgstr "Postfix postserver, Inn nyhedsserver"
-
-#: ../../share/compssUsers:999
-msgid "Internet station"
-msgstr "Internet-station"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia station"
-msgstr "Multimedie-station"
-
-#: ../../share/compssUsers:999
-msgid "Configuration"
-msgstr "Konfiguration"
-
-#: ../../share/compssUsers:999
-msgid "More Graphical Desktops (Gnome, IceWM)"
-msgstr "Flere grafiske miljųer (Gnome, IceWM)"
-
-#: ../../share/compssUsers:999
-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."
-
-#: ../../share/compssUsers:999
-msgid "Graphical Environment"
-msgstr "Grafisk miljų"
-
-#: ../../share/compssUsers:999
-msgid "Apache, Pro-ftpd"
-msgstr "Apache og Pro-ftpd"
-
-#: ../../share/compssUsers:999
-msgid "Tools to create and burn CD's"
-msgstr "Vęrktųjer til at skabe og bręnde CD-er"
-
-#: ../../share/compssUsers:999
-msgid "Office Workstation"
-msgstr "Kontor-arbejdsstation"
-
-#: ../../share/compssUsers:999
-msgid "Server"
-msgstr "Server"
-
-#: ../../share/compssUsers:999
-msgid "Gnome, Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Gnome, Icewm, Window Maker, Enlightenment, Fvwm, o.lign."
-
-#: ../../share/compssUsers:999
-msgid "Graphics programs such as The Gimp"
-msgstr "Grafiske programmer som fx The Gimp"
-
-#: ../../share/compssUsers:999
-msgid "DNS/NIS "
-msgstr "DNS/NIS "
-
-#: ../../share/compssUsers:999
-msgid "C and C++ development libraries, programs and include files"
-msgstr "C og C++ udviklingsbiblioteker, programmer, og include-filer."
-
-#: ../../share/compssUsers:999
-msgid "Network Computer server"
-msgstr "Netvęrksmaskine server"
-
-#: ../../share/compssUsers:999
-msgid "Mail/Groupware/News"
-msgstr "Post/diskussionsgrupper"
-
-#: ../../share/compssUsers:999
-msgid "Game station"
-msgstr "Spillemaskine"
-
-#: ../../share/compssUsers:999
-msgid "Video players and editors"
-msgstr "Videoafspillere og redigeringsvęrktųjer"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Graphics"
-msgstr "Multimedie - Grafik"
-
-#: ../../share/compssUsers:999
-msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr "Underholdnings-programmer: arkade, bręt, strategi, osv."
-
-#: ../../share/compssUsers:999
-msgid ""
-"Set of tools to read and send mail and news (pine, mutt, tin..) and to "
-"browse the Web"
-msgstr ""
-"Vęrktųjssęt til at lęse samt sende post og nyheder (pine, mutt, tin..) , og "
-"til at browse på nettet"
-
-#: ../../share/compssUsers:999
-msgid "Archiving, emulators, monitoring"
-msgstr "Arkivering, emulering, overvågning"
-
-#: ../../share/compssUsers:999
-msgid "Personal Finance"
-msgstr "Personlig ųkonomi"
-
-#: ../../share/compssUsers:999
-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/compssUsers:999
-msgid "Clients for different protocols including ssh"
-msgstr "Klienter for forskellige protokoller inklusiv ssh"
-
-#: ../../share/compssUsers:999
-msgid "Internet gateway"
-msgstr "Internetadgang"
-
-#: ../../share/compssUsers:999
-msgid "Sound and video playing/editing programs"
-msgstr "Lyd- og video-afspillere og redigeringsvęrktųjer"
-
-#: ../../share/compssUsers:999
-msgid "Other Graphical Desktops"
-msgstr "Andre grafiske miljųer"
-
-#: ../../share/compssUsers:999
-msgid "Editors, shells, file tools, terminals"
-msgstr "Redigeringsvęrktųjer, skaller, filvęrktųjer, terminaler"
-
-#: ../../share/compssUsers:999
-msgid "Programs to manage your finance, such as gnucash"
-msgstr "Programmer til at håndtere din ųkonomi, som fx gnucash"
-
-#: ../../share/compssUsers:999
-msgid "Personal Information Management"
-msgstr "Personlig informationshåndtering"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - CD Burning"
-msgstr "Multimedie - CD-bręnding"
-
-#: ../../share/compssUsers:999
-msgid "Scientific Workstation"
-msgstr "Videnskabelig arbejdsstation"
-
-#~ msgid "About"
-#~ msgstr "Om"
-
-#~ msgid " Help "
-#~ msgstr " Hjęlp "
-
-#~ msgid ""
-#~ "XawTV isn't installed ...\n"
-#~ "You should install it.\n"
-#~ " Just type \"urpmi xawtv\""
-#~ msgstr ""
-#~ "XawTV er ikke installeret ...\n"
-#~ "Dų bųr installere den.\n"
-#~ " Bare skriv \"urpmi xawtv\""
-
-#~ msgid "-adobe-utopia-medium-r-normal-*-12-*-*-*-p-*-iso8859-*,*-r-*"
-#~ msgstr "-adobe-utopia-medium-r-normal-*-12-*-*-*-p-*-iso8859-*,*-r-*"
-
-#~ msgid ""
-#~ "Can't access kernel modules corresponding to your kernel (file %s is "
-#~ "missing)"
-#~ msgstr ""
-#~ "Kan ikke få fat i kernemoduler svarende til din kerne (fil %s mangler)"
-
-#~ msgid "$f-$g %s)"
-#~ msgstr "$f-$g %s)"
-
-#~ msgid "None"
-#~ msgstr "Ingenting"
-
-#~ msgid "Choose a default printer!"
-#~ msgstr "Vęlg en forvalgt printer!"
-
-#~ msgid "Apply/Re-read printers"
-#~ msgstr "Brug/Opfrisk printerliste"
-
-#~ msgid "You may now provide its options to module %s."
-#~ msgstr "Du kan nu give dens parametre til modul %s."
-
-#~ msgid "mount failed"
-#~ msgstr "montering mislykkedes"
-
-#~ msgid ""
-#~ "The characters of your language can't be displayed in console,\n"
-#~ "so the messages will be displayed in english during installation"
-#~ msgstr ""
-#~ "Tegnene i dit sprog kan ikke vises i konsollen\n"
-#~ "så beskederne vil blive vist på engelsk under installationen"
diff --git a/perl-install/share/po/de.po b/perl-install/share/po/de.po
deleted file mode 100644
index 9629e8953..000000000
--- a/perl-install/share/po/de.po
+++ /dev/null
@@ -1,12653 +0,0 @@
-# german translation of DrakX (cooker/gi/perl-install/share/po/de.po).
-# Copyright (C) 1999,2000,2001 MandrakeSoft.
-# Dr. Hinrich Gƶhlmann <hgoehlmann@gmx.de>, 1999,2000
-# Stefan Siegel <siegel@linux-mandrake.com>, 1999,2000,2001,2002
-# Daniel Haischt <daniel.haischt@student.fh-reutlingen.de>, 2000
-# Peer Dunker <peer46@gmx.net>, 2001
-msgid ""
-msgstr ""
-"Project-Id-Version: DrakX\n"
-"POT-Creation-Date: 2002-03-11 18:29+0100\n"
-"PO-Revision-Date: 2002-03-10 11:56+0100\n"
-"Last-Translator: Stefan Siegel <siegel@linux-mandrake.com>\n"
-"Language-Team: German <cooker-i18n@linux-mandrake.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../Xconfigurator.pm_.c:242
-msgid "Configure all heads independently"
-msgstr "Alle Karten getrennt konfigurieren"
-
-#: ../../Xconfigurator.pm_.c:243
-msgid "Use Xinerama extension"
-msgstr "Xinerama Erweiterung verwenden"
-
-#: ../../Xconfigurator.pm_.c:246
-#, c-format
-msgid "Configure only card \"%s\" (%s)"
-msgstr "Nur Karte ā€˛%sā€ (%s) konfigurieren"
-
-#: ../../Xconfigurator.pm_.c:249
-msgid "Multi-head configuration"
-msgstr "Mehrkarten-Einstellung"
-
-#: ../../Xconfigurator.pm_.c:250
-msgid ""
-"Your system support multiple head configuration.\n"
-"What do you want to do?"
-msgstr ""
-"Ihr System erlaubt die Verwendung einer Mehrkarten Konfiguration.\n"
-"Was wollen Sie tun?"
-
-#: ../../Xconfigurator.pm_.c:261
-msgid "Graphic card"
-msgstr "Grafikkarte"
-
-#: ../../Xconfigurator.pm_.c:262
-msgid "Select a graphic card"
-msgstr "WƤhlen Sie Ihre Grafikkarte"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "Choose a X server"
-msgstr "WƤhlen Sie einen X Server"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "X server"
-msgstr "X Server"
-
-#: ../../Xconfigurator.pm_.c:293
-msgid "Choose a X driver"
-msgstr "WƤhlen Sie einen X Treiber"
-
-#: ../../Xconfigurator.pm_.c:293
-msgid "X driver"
-msgstr "X Treiber"
-
-#: ../../Xconfigurator.pm_.c:360 ../../Xconfigurator.pm_.c:366
-#: ../../Xconfigurator.pm_.c:416 ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s"
-msgstr "XFree %s"
-
-#: ../../Xconfigurator.pm_.c:363
-msgid "Which configuration of XFree do you want to have?"
-msgstr "Welche XFree-Konfiguration wollen Sie verwenden?"
-
-#: ../../Xconfigurator.pm_.c:374
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"Ihre Grafikkarte kann 3D-hardwarebeschleunigt werden, allerdings nur mit \n"
-"XFree %s. Ihre Karte wird auch von XFree %s unterstĆ¼tzt, wodurch Sie \n"
-"bessere 2D-UnterstĆ¼tzung erhalten kƶnnen."
-
-#: ../../Xconfigurator.pm_.c:376 ../../Xconfigurator.pm_.c:409
-#, c-format
-msgid "Your card can have 3D hardware acceleration support with XFree %s."
-msgstr "Ihre Grafikkarte kann mit XFree %s 3D-hardwarebeschleunigt werden."
-
-#: ../../Xconfigurator.pm_.c:378 ../../Xconfigurator.pm_.c:411
-#: ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s with 3D hardware acceleration"
-msgstr "XFree %s mit 3D-Hardwarebeschleunigung"
-
-#: ../../Xconfigurator.pm_.c:386 ../../Xconfigurator.pm_.c:400
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER."
-msgstr ""
-"Ihre Karte kann 3D-hardwarebeschleunigt werden, allerdings nur mit \n"
-"XFree %s. BEMERKUNG: DIESE FUNKTION IST NOCH IM EXPERIMENTIERSTADIUM \n"
-"UND KANN ZUM STEHENBLEIBEN IHRES RECHNERS FĆHREN."
-
-#: ../../Xconfigurator.pm_.c:388 ../../Xconfigurator.pm_.c:402
-#, c-format
-msgid "XFree %s with EXPERIMENTAL 3D hardware acceleration"
-msgstr "XFree %s mit EXPERIMENTELLER 3D-Hardwarebeschleunigung"
-
-#: ../../Xconfigurator.pm_.c:397
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"Ihre Karte kann 3D-hardwarebeschleunigt werden, allerdings nur mit \n"
-"XFree %s. BEM: DIESE FUNKTION IST NOCH IM EXPERIMENTIERSTADIUM UND KANN \n"
-"ZUM STEHENBLEIBEN IHRES RECHNERS FĆHREN. Ihre Karte wird auch von \n"
-"XFree %s unterstĆ¼tzt, wodurch Sie bessere 2D-UnterstĆ¼tzung erhalten \n"
-"kƶnnen."
-
-#: ../../Xconfigurator.pm_.c:417
-msgid "Xpmac (installation display driver)"
-msgstr "Xpmac (Installationsbildschirmtreiber)"
-
-#: ../../Xconfigurator.pm_.c:421
-msgid "XFree configuration"
-msgstr "XFree konfigurieren"
-
-#: ../../Xconfigurator.pm_.c:496
-msgid "Select the memory size of your graphic card"
-msgstr "WƤhlen Sie die SpeichergrƶĆe Ihrer Grafikkarte"
-
-#: ../../Xconfigurator.pm_.c:550
-msgid "Choose options for server"
-msgstr "WƤhlen Sie die Einstellungen fĆ¼r den Server"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Choose a monitor"
-msgstr "WƤhlen Sie Ihren Monitor"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Monitor"
-msgstr "Monitor"
-
-#: ../../Xconfigurator.pm_.c:577
-msgid ""
-"The two critical parameters are the vertical refresh rate, which is the "
-"rate\n"
-"at which the whole screen is refreshed, and most importantly the horizontal\n"
-"sync rate, which is the rate at which scanlines are displayed.\n"
-"\n"
-"It is VERY IMPORTANT that you do not specify a monitor type with a sync "
-"range\n"
-"that is beyond the capabilities of your monitor: you may damage your "
-"monitor.\n"
-" If in doubt, choose a conservative setting."
-msgstr ""
-"Die beiden kritischen Parameter sind die vertikale Wiederholfrequenz\n"
-"(wie oft der gesamte Bildschirm neu angezeigt wird) und insbesondere die\n"
-"horizontale Synchronisationsfrequenz (wie oft Scanlinien angezeigt werden).\n"
-"Es ist SEHR WICHTIG, dass Sie keinen Monitortyp mit einer falschen \n"
-"Synchronisationsrate auswƤhlen, da Sie sonst Ihren Monitor beschƤdigen \n"
-"kƶnnten. Im Zweifelsfall wƤhlen Sie bitte eine konservativere \n"
-"Einstellung."
-
-#: ../../Xconfigurator.pm_.c:584
-msgid "Horizontal refresh rate"
-msgstr "Horizontale Wiederholfrequenz"
-
-#: ../../Xconfigurator.pm_.c:585
-msgid "Vertical refresh rate"
-msgstr "Vertikale Wiederholfrequenz"
-
-#: ../../Xconfigurator.pm_.c:622
-msgid "Monitor not configured"
-msgstr "Ihr Monitor ist nicht konfiguriert"
-
-#: ../../Xconfigurator.pm_.c:625
-msgid "Graphic card not configured yet"
-msgstr "Ihre Grafikkarte ist noch nicht konfiguriert"
-
-#: ../../Xconfigurator.pm_.c:628
-msgid "Resolutions not chosen yet"
-msgstr "Die Auflƶsungen wurden noch nicht ausgewƤhlt"
-
-#: ../../Xconfigurator.pm_.c:646
-msgid "Do you want to test the configuration?"
-msgstr "Mƶchten Sie die vorgenommenen Einstellungen prĆ¼fen?"
-
-#: ../../Xconfigurator.pm_.c:650
-msgid "Warning: testing this graphic card may freeze your computer"
-msgstr "Warnung: Testen dieser Grafikkarte kann Ihren Rechner anhalten"
-
-#: ../../Xconfigurator.pm_.c:653
-msgid "Test of the configuration"
-msgstr "PrĆ¼fen der Einstellungen"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid ""
-"\n"
-"try to change some parameters"
-msgstr ""
-"\n"
-"Versuchen Sie bitte, einige Einstellungen zu Ƥndern"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid "An error has occurred:"
-msgstr "Ein Fehler ist aufgetreten:"
-
-#: ../../Xconfigurator.pm_.c:731
-#, c-format
-msgid "Leaving in %d seconds"
-msgstr "Verlassen in %d Sekunden"
-
-#: ../../Xconfigurator.pm_.c:742
-msgid "Is this the correct setting?"
-msgstr "Ist dies richtig?"
-
-#: ../../Xconfigurator.pm_.c:751
-msgid "An error has occurred, try to change some parameters"
-msgstr ""
-"Ein Fehler ist aufgetreten. Versuchen Sie bitte, einige Parameter zu Ƥndern"
-
-#: ../../Xconfigurator.pm_.c:822
-msgid "Resolution"
-msgstr "Auflƶsung"
-
-#: ../../Xconfigurator.pm_.c:874
-msgid "Choose the resolution and the color depth"
-msgstr "WƤhlen Sie bitte Auflƶsung und Farbtiefe"
-
-#: ../../Xconfigurator.pm_.c:876
-#, c-format
-msgid "Graphic card: %s"
-msgstr "Grafikkarte: %s"
-
-#: ../../Xconfigurator.pm_.c:877
-#, c-format
-msgid "XFree86 server: %s"
-msgstr "XFree86 Server: %s"
-
-#: ../../Xconfigurator.pm_.c:891 ../../diskdrake/interactive.pm_.c:259
-#: ../../install_steps_interactive.pm_.c:208
-msgid "More"
-msgstr "Mehr"
-
-#: ../../Xconfigurator.pm_.c:891 ../../install_gtk.pm_.c:84
-#: ../../install_steps_gtk.pm_.c:328 ../../interactive.pm_.c:127
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_http.pm_.c:104
-#: ../../interactive_newt.pm_.c:170 ../../interactive_stdio.pm_.c:141
-#: ../../interactive_stdio.pm_.c:142 ../../my_gtk.pm_.c:686
-#: ../../my_gtk.pm_.c:1019 ../../my_gtk.pm_.c:1041
-#: ../../standalone/drakbackup_.c:2298 ../../standalone/drakbackup_.c:2369
-#: ../../standalone/drakbackup_.c:2385
-msgid "Ok"
-msgstr "OK"
-
-#: ../../Xconfigurator.pm_.c:893 ../../network/netconnect.pm_.c:169
-#: ../../printerdrake.pm_.c:2470 ../../standalone/draknet_.c:275
-#: ../../standalone/draknet_.c:278
-msgid "Expert Mode"
-msgstr "Experten-Modus"
-
-#: ../../Xconfigurator.pm_.c:894
-msgid "Show all"
-msgstr "Alle anzeigen"
-
-#: ../../Xconfigurator.pm_.c:939
-msgid "Resolutions"
-msgstr "Auflƶsungen"
-
-#: ../../Xconfigurator.pm_.c:1509
-#, c-format
-msgid "Keyboard layout: %s\n"
-msgstr "Tastaturtyp: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1510
-#, c-format
-msgid "Mouse type: %s\n"
-msgstr "Maustyp: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1511
-#, c-format
-msgid "Mouse device: %s\n"
-msgstr "Mausschnittstelle: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1512
-#, c-format
-msgid "Monitor: %s\n"
-msgstr "Monitor: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1513
-#, c-format
-msgid "Monitor HorizSync: %s\n"
-msgstr "Monitor Horiz. Frequenz: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1514
-#, c-format
-msgid "Monitor VertRefresh: %s\n"
-msgstr "Monitor Vert. Frequenz: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1515
-#, c-format
-msgid "Graphic card: %s\n"
-msgstr "Grafikkarte: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1516
-#, c-format
-msgid "Graphic card identification: %s\n"
-msgstr "Grafikkartenidentifikation: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1517
-#, c-format
-msgid "Graphic memory: %s kB\n"
-msgstr "Grafikkartenspeicher: %s KB\n"
-
-#: ../../Xconfigurator.pm_.c:1519
-#, c-format
-msgid "Color depth: %s\n"
-msgstr "Farbtiefe: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1520
-#, c-format
-msgid "Resolution: %s\n"
-msgstr "Auflƶsung: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1522
-#, c-format
-msgid "XFree86 server: %s\n"
-msgstr "XFree86 Server: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1523
-#, c-format
-msgid "XFree86 driver: %s\n"
-msgstr "XFree86 Treiber: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1541
-msgid "Preparing X-Window configuration"
-msgstr "X-Window Konfiguration vorbereiten"
-
-#: ../../Xconfigurator.pm_.c:1561
-msgid "What do you want to do?"
-msgstr "Was wollen Sie machen?"
-
-#: ../../Xconfigurator.pm_.c:1566
-msgid "Change Monitor"
-msgstr "Monitor Ƥndern"
-
-#: ../../Xconfigurator.pm_.c:1567
-msgid "Change Graphic card"
-msgstr "Grafikkarte Ƥndern"
-
-#: ../../Xconfigurator.pm_.c:1570
-msgid "Change Server options"
-msgstr "Server Einstellungen Ƥndern"
-
-#: ../../Xconfigurator.pm_.c:1571
-msgid "Change Resolution"
-msgstr "Auflƶsung Ƥndern"
-
-#: ../../Xconfigurator.pm_.c:1572
-msgid "Show information"
-msgstr "Informationen anzeigen"
-
-#: ../../Xconfigurator.pm_.c:1573
-msgid "Test again"
-msgstr "Nochmals testen"
-
-#: ../../Xconfigurator.pm_.c:1574 ../../printerdrake.pm_.c:2473
-#: ../../standalone/logdrake_.c:225
-msgid "Quit"
-msgstr "Verlassen"
-
-#: ../../Xconfigurator.pm_.c:1582
-#, c-format
-msgid ""
-"Keep the changes?\n"
-"Current configuration is:\n"
-"\n"
-"%s"
-msgstr ""
-"Die Ć„nderungen beibehalten?\n"
-"Momentan wƤre dies:\n"
-"\n"
-"%s"
-
-#: ../../Xconfigurator.pm_.c:1603
-msgid "X at startup"
-msgstr "X zur Startzeit"
-
-#: ../../Xconfigurator.pm_.c:1604
-msgid ""
-"I can set up your computer to automatically start X upon booting.\n"
-"Would you like X to start when you reboot?"
-msgstr ""
-"Ich kann GNU/Linux so einrichten, dass bei jedem Systemstart\n"
-"automatisch die grafische OberflƤche (= der X Server) aktiviert wird.\n"
-"Wollen Sie, dass X nach jedem Neustart direkt zur VerfĆ¼gung steht?"
-
-#: ../../Xconfigurator.pm_.c:1610
-#, c-format
-msgid "Please relog into %s to activate the changes"
-msgstr ""
-"Bitte loggen Sie sich erneut in %s ein, \n"
-"um die Ć„nderungen wirksam werden zu lassen."
-
-#: ../../Xconfigurator.pm_.c:1625
-msgid "Please log out and then use Ctrl-Alt-BackSpace"
-msgstr "Bitte loggen Sie sich aus, und drĆ¼cken Sie Ctrl-Alt-RĆ¼cktaste"
-
-#: ../../Xconfigurator_consts.pm_.c:6
-msgid "256 colors (8 bits)"
-msgstr "256 Farben (8 Bit)"
-
-#: ../../Xconfigurator_consts.pm_.c:7
-msgid "32 thousand colors (15 bits)"
-msgstr "32.000 Farben (15 Bit)"
-
-#: ../../Xconfigurator_consts.pm_.c:8
-msgid "65 thousand colors (16 bits)"
-msgstr "65.000 Farben (16 Bit)"
-
-#: ../../Xconfigurator_consts.pm_.c:9
-msgid "16 million colors (24 bits)"
-msgstr "16 Millionen Farben (24 Bit)"
-
-#: ../../Xconfigurator_consts.pm_.c:10
-msgid "4 billion colors (32 bits)"
-msgstr "4 Milliarden Farben (32 Bit)"
-
-#: ../../Xconfigurator_consts.pm_.c:113
-msgid "256 kB"
-msgstr "256 KB"
-
-#: ../../Xconfigurator_consts.pm_.c:114
-msgid "512 kB"
-msgstr "512 KB"
-
-#: ../../Xconfigurator_consts.pm_.c:115
-msgid "1 MB"
-msgstr "1 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:116
-msgid "2 MB"
-msgstr "2 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:117
-msgid "4 MB"
-msgstr "4 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:118
-msgid "8 MB"
-msgstr "8 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:119
-msgid "16 MB"
-msgstr "16 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:120
-msgid "32 MB"
-msgstr "32 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:121
-msgid "64 MB or more"
-msgstr "64 MB oder mehr"
-
-#: ../../Xconfigurator_consts.pm_.c:129
-msgid "Standard VGA, 640x480 at 60 Hz"
-msgstr "Standard VGA, 640Ć—480 bei 60 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:130
-msgid "Super VGA, 800x600 at 56 Hz"
-msgstr "Super VGA, 800Ć—600 bei 56 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:131
-msgid "8514 Compatible, 1024x768 at 87 Hz interlaced (no 800x600)"
-msgstr "8514 kompatibel, 1024Ć—768 bei 87 Hz, interlaced (kein 800Ć—600)"
-
-#: ../../Xconfigurator_consts.pm_.c:132
-msgid "Super VGA, 1024x768 at 87 Hz interlaced, 800x600 at 56 Hz"
-msgstr "Super VGA, 1024Ć—768 bei 87 Hz, interlaced und 800Ć—600 bei 56 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:133
-msgid "Extended Super VGA, 800x600 at 60 Hz, 640x480 at 72 Hz"
-msgstr "Extended Super VGA, 800Ć—600 bei 60 Hz und 640Ć—480 bei 72 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:134
-msgid "Non-Interlaced SVGA, 1024x768 at 60 Hz, 800x600 at 72 Hz"
-msgstr "Non-Interlaced SVGA, 1024Ć—768 bei 60 Hz und 800Ć—600 bei 72 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:135
-msgid "High Frequency SVGA, 1024x768 at 70 Hz"
-msgstr "Hochfrequenz SVGA, 1024Ć—768 bei 70 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:136
-msgid "Multi-frequency that can do 1280x1024 at 60 Hz"
-msgstr "Mehrfrequenz mit der FƤhigkeit fĆ¼r 1280Ć—1024 bei 60 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:137
-msgid "Multi-frequency that can do 1280x1024 at 74 Hz"
-msgstr "Mehrfrequenz mit der FƤhigkeit fĆ¼r 1280Ć—1024 bei 74 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:138
-msgid "Multi-frequency that can do 1280x1024 at 76 Hz"
-msgstr "Mehrfrequenz mit der FƤhigkeit fĆ¼r 1280Ć—1024 bei 76 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:139
-msgid "Monitor that can do 1600x1200 at 70 Hz"
-msgstr "Ihr Monitor kann 1600Ć—1200 bei 70 Hz darstellen"
-
-#: ../../Xconfigurator_consts.pm_.c:140
-msgid "Monitor that can do 1600x1200 at 76 Hz"
-msgstr "Ihr Monitor kann 1600Ć—1200 bei 76 Hz darstellen"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141
-msgid "First sector of boot partition"
-msgstr "Erster Sektor der Boot-Partition"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141 ../../any.pm_.c:218
-msgid "First sector of drive (MBR)"
-msgstr "Erster Sektor der Platte (MBR)"
-
-#: ../../any.pm_.c:120
-msgid "SILO Installation"
-msgstr "SILO Installation"
-
-#: ../../any.pm_.c:121 ../../any.pm_.c:134
-msgid "Where do you want to install the bootloader?"
-msgstr "Wo soll der Betriebssystemstarter installiert werden?"
-
-#: ../../any.pm_.c:133
-msgid "LILO/grub Installation"
-msgstr "LILO/Grub Installation"
-
-#: ../../any.pm_.c:145 ../../any.pm_.c:159
-msgid "SILO"
-msgstr "SILO"
-
-#: ../../any.pm_.c:147
-msgid "LILO with text menu"
-msgstr "LILO mit TextmenĆ¼"
-
-#: ../../any.pm_.c:148 ../../any.pm_.c:159
-msgid "LILO with graphical menu"
-msgstr "LILO mit grafischem MenĆ¼"
-
-#: ../../any.pm_.c:151
-msgid "Grub"
-msgstr "Grub"
-
-#: ../../any.pm_.c:155
-msgid "Boot from DOS/Windows (loadlin)"
-msgstr "Boot von DOS/Windows aus (loadlin)"
-
-#: ../../any.pm_.c:157 ../../any.pm_.c:159
-msgid "Yaboot"
-msgstr "Yaboot"
-
-#: ../../any.pm_.c:166 ../../any.pm_.c:198
-msgid "Bootloader main options"
-msgstr "Haupt-Optionen des Betriebssystemstarters"
-
-#: ../../any.pm_.c:167 ../../any.pm_.c:199
-msgid "Bootloader to use"
-msgstr "Zu verwendender Betriebssystemstarter"
-
-#: ../../any.pm_.c:169
-msgid "Bootloader installation"
-msgstr "Installation des Betriebssystemstarters"
-
-#: ../../any.pm_.c:171 ../../any.pm_.c:201
-msgid "Boot device"
-msgstr "Boot GerƤt"
-
-#: ../../any.pm_.c:172
-msgid "LBA (doesn't work on old BIOSes)"
-msgstr "LBA (funktioniert nicht mit alten BIOS Versionen)"
-
-#: ../../any.pm_.c:173
-msgid "Compact"
-msgstr "Kompakt"
-
-#: ../../any.pm_.c:173
-msgid "compact"
-msgstr "Kompakt"
-
-#: ../../any.pm_.c:174 ../../any.pm_.c:298
-msgid "Video mode"
-msgstr "Video Modus"
-
-#: ../../any.pm_.c:176
-msgid "Delay before booting default image"
-msgstr "Wartezeit vorm Starten des Standard Betriebssystems"
-
-#: ../../any.pm_.c:178 ../../any.pm_.c:796
-#: ../../install_steps_interactive.pm_.c:1115 ../../network/modem.pm_.c:48
-#: ../../printerdrake.pm_.c:708 ../../printerdrake.pm_.c:806
-#: ../../standalone/draknet_.c:625
-msgid "Password"
-msgstr "Passwort"
-
-#: ../../any.pm_.c:179 ../../any.pm_.c:797
-#: ../../install_steps_interactive.pm_.c:1116
-msgid "Password (again)"
-msgstr "Passwort (erneut)"
-
-#: ../../any.pm_.c:180
-msgid "Restrict command line options"
-msgstr "Gebrauch der Kommandozeilen-Parameter einschrƤnken"
-
-#: ../../any.pm_.c:180
-msgid "restrict"
-msgstr "EinschrƤnken"
-
-#: ../../any.pm_.c:182
-msgid "Clean /tmp at each boot"
-msgstr "Die Partition /tmp bei jedem Systemstart sƤubern"
-
-#: ../../any.pm_.c:183
-#, c-format
-msgid "Precise RAM size if needed (found %d MB)"
-msgstr "Geben Sie, falls nƶtig, die genaue RAM GrƶĆe an (%d MB gefunden)"
-
-#: ../../any.pm_.c:185
-msgid "Enable multi profiles"
-msgstr "Mehrere Profile einschalten"
-
-#: ../../any.pm_.c:189
-msgid "Give the ram size in MB"
-msgstr "Geben Sie die RAM GrƶĆe in MB an"
-
-#: ../../any.pm_.c:191
-msgid ""
-"Option ``Restrict command line options'' is of no use without a password"
-msgstr ""
-"Die Option ā€˛Gebrauch der Kommandozeilen-Parameter einschrƤnkenā€ ist ohne \n"
-"Angabe eines Passworts wirkungslos"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../diskdrake/interactive.pm_.c:1135
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "Please try again"
-msgstr "Bitte versuchen Sie es erneut"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "The passwords do not match"
-msgstr "Die Passwƶrter stimmen nicht Ć¼berein"
-
-#: ../../any.pm_.c:200
-msgid "Init Message"
-msgstr "Init Nachricht"
-
-#: ../../any.pm_.c:202
-msgid "Open Firmware Delay"
-msgstr "Open Firmware Verzƶgerung"
-
-#: ../../any.pm_.c:203
-msgid "Kernel Boot Timeout"
-msgstr "BS-Startverzƶgerung fĆ¼r den Kern"
-
-#: ../../any.pm_.c:204
-msgid "Enable CD Boot?"
-msgstr "BS-Start von CD erlauben"
-
-#: ../../any.pm_.c:205
-msgid "Enable OF Boot?"
-msgstr "Open Firmware Start erlauben"
-
-#: ../../any.pm_.c:206
-msgid "Default OS?"
-msgstr "Standard BS"
-
-#: ../../any.pm_.c:240
-msgid ""
-"You decided to install the bootloader on a partition.\n"
-"This implies you already have a bootloader on the hard drive you boot (eg: "
-"System Commander).\n"
-"\n"
-"On which drive are you booting?"
-msgstr ""
-"Sie haben sich entschieden, Ihren Betriebssystemstarter auf einer Partition "
-"zu starten.\n"
-"Das impliziert, dass Sie einen anderen Betriebssystemstarter im Master-Boot-"
-"Record haben (etwa System Commander).\n"
-"\n"
-"Von welchem Verzeichnis wollen Sie starten?"
-
-#: ../../any.pm_.c:255
-msgid ""
-"Here are the different entries.\n"
-"You can add some more or change the existing ones."
-msgstr ""
-"Hier sind die verschiedenen EintrƤge.\n"
-"Sie kƶnnen weitere hinzufĆ¼gen oder existierende Ƥndern."
-
-#: ../../any.pm_.c:265 ../../standalone/drakbackup_.c:752
-#: ../../standalone/drakbackup_.c:861 ../../standalone/drakfont_.c:789
-#: ../../standalone/drakfont_.c:826
-msgid "Add"
-msgstr "HinzufĆ¼gen"
-
-#: ../../any.pm_.c:265 ../../any.pm_.c:784 ../../diskdrake/hd_gtk.pm_.c:153
-#: ../../diskdrake/removable.pm_.c:27 ../../diskdrake/smbnfs_gtk.pm_.c:86
-#: ../../interactive_http.pm_.c:153
-msgid "Done"
-msgstr "Fertig"
-
-#: ../../any.pm_.c:265
-msgid "Modify"
-msgstr "Ć„ndern"
-
-#: ../../any.pm_.c:273
-msgid "Which type of entry do you want to add?"
-msgstr "Welche Art Eintrag wollen Sie hinzufĆ¼gen?"
-
-#: ../../any.pm_.c:274 ../../standalone/drakbackup_.c:895
-msgid "Linux"
-msgstr "Linux"
-
-#: ../../any.pm_.c:274
-msgid "Other OS (SunOS...)"
-msgstr "Anderes Betriebssystem (SunOS ...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (MacOS...)"
-msgstr "Anderes Betriebssystem (MacOS ...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (windows...)"
-msgstr "Anderes Betriebssystem (Windows ...)"
-
-#: ../../any.pm_.c:294
-msgid "Image"
-msgstr "Kern"
-
-#: ../../any.pm_.c:295 ../../any.pm_.c:306
-msgid "Root"
-msgstr "Verzeichnisbaumwurzel"
-
-#: ../../any.pm_.c:296 ../../any.pm_.c:325
-msgid "Append"
-msgstr "Ćbergeben"
-
-#: ../../any.pm_.c:300
-msgid "Initrd"
-msgstr "Init-RamDisk"
-
-#: ../../any.pm_.c:301
-msgid "Read-write"
-msgstr "Schreiben/Lesen"
-
-#: ../../any.pm_.c:308
-msgid "Table"
-msgstr "Tabelle"
-
-#: ../../any.pm_.c:309
-msgid "Unsafe"
-msgstr "Unsicher"
-
-#: ../../any.pm_.c:316 ../../any.pm_.c:321 ../../any.pm_.c:324
-msgid "Label"
-msgstr "Identifikator"
-
-#: ../../any.pm_.c:318 ../../any.pm_.c:329
-msgid "Default"
-msgstr "Standard"
-
-#: ../../any.pm_.c:326
-msgid "Initrd-size"
-msgstr "GrƶĆe der Init-RamDisk"
-
-#: ../../any.pm_.c:328
-msgid "NoVideo"
-msgstr "NoVideo"
-
-#: ../../any.pm_.c:336
-msgid "Remove entry"
-msgstr "Eintrag lƶschen"
-
-#: ../../any.pm_.c:339
-msgid "Empty label not allowed"
-msgstr "Leere EintrƤge sind nicht erlaubt"
-
-#: ../../any.pm_.c:340
-msgid "You must specify a kernel image"
-msgstr "Sie MĆ¼ssen ein Kern-Abbild angeben"
-
-#: ../../any.pm_.c:340
-msgid "You must specify a root partition"
-msgstr "Sie mĆ¼ssen die Verzeichnisbaumwurzel festlegen"
-
-#: ../../any.pm_.c:341
-msgid "This label is already used"
-msgstr "Dieser Eintrag existiert bereits"
-
-#: ../../any.pm_.c:656
-#, c-format
-msgid "Found %s %s interfaces"
-msgstr "Schnittstelle(n) %s %s gefunden"
-
-#: ../../any.pm_.c:657
-msgid "Do you have another one?"
-msgstr "VerfĆ¼gen Sie Ć¼ber weitere?"
-
-#: ../../any.pm_.c:658
-#, c-format
-msgid "Do you have any %s interfaces?"
-msgstr "VerfĆ¼gen Sie Ć¼ber %s Schnittstellen?"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:832 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "No"
-msgstr "Nein"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:831 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "Yes"
-msgstr "Ja"
-
-#: ../../any.pm_.c:661
-msgid "See hardware info"
-msgstr "Hardware Informationen anzeigen"
-
-#. -PO: the first %s is the card type (scsi, network, sound,...)
-#. -PO: the second is the vendor+model name
-#: ../../any.pm_.c:695
-#, c-format
-msgid "Installing driver for %s card %s"
-msgstr "Installation des Treibers fĆ¼r die Karte %s %s"
-
-#: ../../any.pm_.c:696
-#, c-format
-msgid "(module %s)"
-msgstr "(Modul %s)"
-
-#. -PO: the %s is the driver type (scsi, network, sound,...)
-#: ../../any.pm_.c:707
-#, c-format
-msgid "Which %s driver should I try?"
-msgstr "Welchen %s-Treiber soll ich versuchen?"
-
-#: ../../any.pm_.c:715
-#, c-format
-msgid ""
-"In some cases, the %s driver needs to have extra information to work\n"
-"properly, although it normally works fine without. Would you like to "
-"specify\n"
-"extra options for it or allow the driver to probe your machine for the\n"
-"information it needs? Occasionally, probing will hang a computer, but it "
-"should\n"
-"not cause any damage."
-msgstr ""
-"In einigen FƤllen benƶtigt der ā€˛%sā€ Treiber zusƤtzliche Informationen,\n"
-"um korrekt zu funktionieren, meistens sollte er jedoch auch ohne \n"
-"funktionieren. Wollen Sie solche Informationen angeben oder es dem Treiber "
-"Ć¼berlassen, nach geeigneten Parametern zu suchen? (Das Austesten durch den "
-"Treiber kann in seltenen FƤllen zum ā€˛HƤngenbleibenā€ des Rechners fĆ¼hren, was "
-"jedoch keine HardwareschƤden nach sich ziehen sollte)"
-
-#: ../../any.pm_.c:720
-msgid "Autoprobe"
-msgstr "Automatische Erkennung"
-
-#: ../../any.pm_.c:720
-msgid "Specify options"
-msgstr "Optionen angeben"
-
-#: ../../any.pm_.c:725
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Note that any address should be entered with the prefix 0x like '0x123'"
-msgstr ""
-"Sie mĆ¼ssen nun die Optionen fĆ¼r Modul %s angeben.\n"
-"Bedenken Sie, dass Adressen alle mit ā€˛0xā€ beginnen mĆ¼ssen, etwa ā€˛0x300ā€"
-
-#: ../../any.pm_.c:731
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Options are in format ``name=value name2=value2 ...''.\n"
-"For instance, ``io=0x300 irq=7''"
-msgstr ""
-"Sie mĆ¼ssen nun die Optionen fĆ¼r Modul %s angeben.\n"
-"Optionen haben die Form ā€˛name=wert name2=wert2ā€.\n"
-"Beispielsweise: ā€˛io=0x300 irq=7ā€"
-
-#: ../../any.pm_.c:734
-msgid "Module options:"
-msgstr "Modul-Optionen:"
-
-#: ../../any.pm_.c:745
-#, c-format
-msgid ""
-"Loading module %s failed.\n"
-"Do you want to try again with other parameters?"
-msgstr ""
-"Laden von Modul %s schlug Fehl.\n"
-"Wollen Sie es erneut mit anderen Parametern versuchen?"
-
-#: ../../any.pm_.c:761
-msgid "access to X programs"
-msgstr "Zugriff auf X-Programme"
-
-#: ../../any.pm_.c:762
-msgid "access to rpm tools"
-msgstr "Zugriff auf RPM-Werkzeuge"
-
-#: ../../any.pm_.c:763
-msgid "allow \"su\""
-msgstr "ā€˛suā€ erlauben"
-
-#: ../../any.pm_.c:764
-msgid "access to administrative files"
-msgstr "Zugriff auf Verwaltungsdateien"
-
-#: ../../any.pm_.c:769
-#, c-format
-msgid "(already added %s)"
-msgstr "(%s wurde bereits hinzugefĆ¼gt)"
-
-#: ../../any.pm_.c:774
-msgid "This password is too simple"
-msgstr "Dieses Passwort ist zu einfach"
-
-#: ../../any.pm_.c:775
-msgid "Please give a user name"
-msgstr "Bitte geben Sie ein Benutzerkennzeichen an"
-
-#: ../../any.pm_.c:776
-msgid ""
-"The user name must contain only lower cased letters, numbers, `-' and `_'"
-msgstr ""
-"Das Benutzerkennzeichen sollte nur aus Kleinbuchstaben, Ziffern, \n"
-"ā€˛-ā€ und ā€˛_ā€ bestehen"
-
-#: ../../any.pm_.c:777
-msgid "This user name is already added"
-msgstr "Dieses Benutzerkennzeichen existiert bereits"
-
-#: ../../any.pm_.c:781
-msgid "Add user"
-msgstr "Benutzer hinzufĆ¼gen"
-
-#: ../../any.pm_.c:782
-#, c-format
-msgid ""
-"Enter a user\n"
-"%s"
-msgstr ""
-"Benutzerkennzeichen einrichten\n"
-"%s"
-
-#: ../../any.pm_.c:783
-msgid "Accept user"
-msgstr "Benutzer akzeptieren"
-
-#: ../../any.pm_.c:794
-msgid "Real name"
-msgstr "Benutzername"
-
-#: ../../any.pm_.c:795 ../../printerdrake.pm_.c:707
-#: ../../printerdrake.pm_.c:805
-msgid "User name"
-msgstr "Benutzerkennzeichen"
-
-#: ../../any.pm_.c:798
-msgid "Shell"
-msgstr "Shell"
-
-#: ../../any.pm_.c:800
-msgid "Icon"
-msgstr "Symbol"
-
-#: ../../any.pm_.c:828
-msgid "Autologin"
-msgstr "Autologin"
-
-#: ../../any.pm_.c:829
-msgid ""
-"I can set up your computer to automatically log on one user.\n"
-"Do you want to use this feature?"
-msgstr ""
-"Ich kann GNU/Linux so einrichten, dass beim Systemstart automatisch \n"
-"ein Benutzer angemeldet wird.\n"
-"Wollen Sie davon Gebrauch machen?"
-
-#: ../../any.pm_.c:833
-msgid "Choose the default user:"
-msgstr "WƤhlen Sie den Standard-Nutzer:"
-
-#: ../../any.pm_.c:834
-msgid "Choose the window manager to run:"
-msgstr "WƤhlen Sie den Window-Manager, den Sie verwenden wollen:"
-
-#: ../../any.pm_.c:849
-msgid "Please choose a language to use."
-msgstr "Bitte wƤhlen Sie die zu verwendende Sprache."
-
-#: ../../any.pm_.c:851
-msgid "You can choose other languages that will be available after install"
-msgstr ""
-"Sie kƶnnen andere Sprachen auswƤhlen, die nach der Installation zur "
-"VerfĆ¼gung stehen."
-
-#: ../../any.pm_.c:863 ../../install_steps_interactive.pm_.c:719
-#: ../../standalone/drakxtv_.c:54
-msgid "All"
-msgstr "Alle"
-
-#: ../../any.pm_.c:955
-msgid "Allow all users"
-msgstr "Allen Benutzern erlauben"
-
-#: ../../any.pm_.c:955 ../../install_steps_interactive.pm_.c:521
-msgid "Custom"
-msgstr "Benutzerdefiniert"
-
-#: ../../any.pm_.c:955
-msgid "No sharing"
-msgstr "Kein Teilen"
-
-#: ../../any.pm_.c:965 ../../network/smbnfs.pm_.c:45
-#, c-format
-msgid "The package %s needs to be installed. Do you want to install it?"
-msgstr "Das Paket %s muss installiert sein. Soll ich es installieren?"
-
-#: ../../any.pm_.c:968
-msgid "You can export using NFS or Samba. Which one do you want"
-msgstr ""
-"Sie kƶnnen die Dateien mittels Samba oder NFS anbieten. Welche Variante "
-"wollen Sie?"
-
-#: ../../any.pm_.c:976 ../../network/smbnfs.pm_.c:49
-#, c-format
-msgid "Mandatory package %s is missing"
-msgstr "Das zwingend benƶtigte Paket ā€˛%sā€ fehlt."
-
-#: ../../any.pm_.c:982
-msgid ""
-"Do you want to allow users to export some directories in their home?\n"
-"Allowing this will permit users to simply click on \"Share\" in konqueror "
-"and nautilus.\n"
-"\n"
-"\"Custom\" permit a per-user granularity.\n"
-msgstr ""
-"Wollen Sie Benutzern erlaubern, Verzeichnisse freizugeben?\n"
-"Wenn Sie das erlauben, kƶnnen die Anwender Verzeichnisse in Konqueror oder "
-"Nautilus im KontextmenĆ¼ der eintsprechenden Verzeichnisses freigeben.\n"
-"\n"
-"Mit ā€˛Benutzerdefiniertā€ kƶnnen Sie eine Einstellung pro Kennzeichen "
-"vornehmen.\n"
-
-#: ../../any.pm_.c:996 ../../bootlook.pm_.c:161
-#: ../../diskdrake/smbnfs_gtk.pm_.c:85 ../../install_steps_gtk.pm_.c:464
-#: ../../install_steps_gtk.pm_.c:522 ../../install_steps_interactive.pm_.c:594
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_stdio.pm_.c:141
-#: ../../my_gtk.pm_.c:687 ../../my_gtk.pm_.c:690 ../../my_gtk.pm_.c:1019
-#: ../../network/netconnect.pm_.c:47 ../../printerdrake.pm_.c:1586
-#: ../../standalone/drakautoinst_.c:204 ../../standalone/drakbackup_.c:2264
-#: ../../standalone/drakbackup_.c:2289 ../../standalone/drakbackup_.c:2310
-#: ../../standalone/drakbackup_.c:2331 ../../standalone/drakbackup_.c:2349
-#: ../../standalone/drakbackup_.c:2397 ../../standalone/drakbackup_.c:2417
-#: ../../standalone/drakbackup_.c:2436 ../../standalone/drakfont_.c:767
-#: ../../standalone/drakgw_.c:721 ../../standalone/draknet_.c:116
-#: ../../standalone/draknet_.c:148 ../../standalone/draknet_.c:290
-#: ../../standalone/draknet_.c:538 ../../standalone/draknet_.c:680
-#: ../../standalone/logdrake_.c:225 ../../standalone/logdrake_.c:512
-#: ../../standalone/tinyfirewall_.c:65
-msgid "Cancel"
-msgstr "Abbruch"
-
-#: ../../any.pm_.c:996
-msgid "Launch userdrake"
-msgstr "Userdrake starten"
-
-#: ../../any.pm_.c:998
-msgid ""
-"The per-user sharing uses the group \"fileshare\". \n"
-"You can use userdrake to add a user in this group."
-msgstr ""
-"Das Teilen zwichen Benutzern verwendet die Gruppe ā€˛fileshareā€.\n"
-"Sie kƶnnen UserDrake verwenden, um Benutzerkennzeichen in diese Gruppe "
-"aufzunehmen."
-
-#: ../../any.pm_.c:1035
-msgid "Welcome To Crackers"
-msgstr "Cracker-Spielplatz"
-
-#: ../../any.pm_.c:1036
-msgid "Poor"
-msgstr "Schwach"
-
-#: ../../any.pm_.c:1037 ../../mouse.pm_.c:31
-msgid "Standard"
-msgstr "Standard"
-
-#: ../../any.pm_.c:1038
-msgid "High"
-msgstr "Hoch"
-
-#: ../../any.pm_.c:1039
-msgid "Higher"
-msgstr "Hƶher"
-
-#: ../../any.pm_.c:1040
-msgid "Paranoid"
-msgstr "Paranoid"
-
-#: ../../any.pm_.c:1043
-msgid ""
-"This level is to be used with care. It makes your system more easy to use,\n"
-"but very sensitive: it must not be used for a machine connected to others\n"
-"or to the Internet. There is no password access."
-msgstr ""
-"Diese Ebene ist mit Vorsicht zu verwenden. Zwar macht sie Ihr System \n"
-"einfacher handhabbar, aber auch leichter angreifbar: In dieser Form darf \n"
-"der Rechner nicht als Netzwerkrechner (LAN oder Modem) verwendet werden, \n"
-"da Angreifer mangels Passwort an Ihre Daten gelangen kƶnnen!"
-
-#: ../../any.pm_.c:1046
-msgid ""
-"Password are now enabled, but use as a networked computer is still not "
-"recommended."
-msgstr ""
-"Passwortabfragen sind nun eingeschaltet, aber die Verwendung als \n"
-"Netzwerkrechner kann hier nicht empfohlen werden."
-
-#: ../../any.pm_.c:1047
-msgid ""
-"This is the standard security recommended for a computer that will be used "
-"to connect to the Internet as a client."
-msgstr ""
-"Das ist die Standard-Sicherheitsebene fĆ¼r Rechner, mit Internetzugang \n"
-"als Klient."
-
-#: ../../any.pm_.c:1048
-msgid ""
-"There are already some restrictions, and more automatic checks are run every "
-"night."
-msgstr ""
-"Es gibt bereits mehr Restriktionen und jede Nacht werden automatische "
-"Sicherheitstests durchgefĆ¼hrt."
-
-#: ../../any.pm_.c:1049
-msgid ""
-"With this security level, the use of this system as a server becomes "
-"possible.\n"
-"The security is now high enough to use the system as a server which accept\n"
-"connections from many clients. Note: if your machine is only a client on the "
-"Internet, you should better choose a lower level."
-msgstr ""
-"Mit dieser Sicherheitsebene wird es mƶglich, das System als einen \n"
-"Server zu verwenden.\n"
-"Die Sicherheit ist nun ausreichend hoch, um das System als Server \n"
-"einzusetzen, der einer Vielzahl von Klienten einen Verbindungsaufbau \n"
-"erlaubt. Es sei hier angemerkt, dass Ihr Rechner, wenn Sie nur als \n"
-"Klient ins Internet gehen, besser eine niedrigere Sicherhetsebene \n"
-"verwenden sollte."
-
-#: ../../any.pm_.c:1052
-msgid ""
-"Based on the previous level, but the system is entirely closed.\n"
-"Security features are at their maximum."
-msgstr ""
-"Diese Ebene bietet die selbe FunktionalitƤt, wie die vorherige. Jedoch ist \n"
-"das System nun komplett geschlossen. Es ist die hƶchste Sicherheitsebene."
-
-#: ../../any.pm_.c:1058
-msgid "Choose security level"
-msgstr "WƤhlen Sie eine Sicherheitsebene"
-
-#: ../../any.pm_.c:1061
-msgid "Security level"
-msgstr "Sicherheitsebene"
-
-#: ../../any.pm_.c:1063
-msgid "Use libsafe for servers"
-msgstr "ā€˛libsafeā€ bei Servern verwenden"
-
-#: ../../any.pm_.c:1064
-msgid ""
-"A library which defends against buffer overflow and format string attacks."
-msgstr "Eine Bibliothek, die gegen sog. ā€˛buffer overflowā€-Angriffe schĆ¼tzt."
-
-# NOTE: this message will be displayed at boot time; that is
-# only the ascii charset will be available on most machines
-# so use only 7bit for this message (and do transliteration or
-# leave it in English, as it is the best for your language)
-#
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#: ../../bootloader.pm_.c:355
-#, c-format
-msgid ""
-"Welcome to %s the operating system chooser!\n"
-"\n"
-"Choose an operating system in the list above or\n"
-"wait %d seconds for default boot.\n"
-"\n"
-msgstr ""
-"Willkommen zum Betriebssystem-Starter %s\n"
-"\n"
-"Markieren Sie in obiger Liste ein Betriebssystem\n"
-"oder warten Sie %d Sekunden, dann starte ich Ihr Standard-System.\n"
-"\n"
-
-# NOTE: this message will be displayed by grub at boot time; that is
-# using the BIOS font; that means cp437 charset on 99.99% of PC computers
-# out there. It is the nsuggested that for non latin languages an ascii
-# transliteration be used; or maybe the english text be used; as it is best
-#
-# The lines must fit on screen, aka length < 80
-#
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:928
-msgid "Welcome to GRUB the operating system chooser!"
-msgstr "Willkommen zum Betriebssystem-Starter GRUB!"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:931
-#, c-format
-msgid "Use the %c and %c keys for selecting which entry is highlighted."
-msgstr "Verwenden Sie die Tasten %c und %c um ein Betriebssystem zu wĀ„hlen."
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:934
-msgid "Press enter to boot the selected OS, 'e' to edit the"
-msgstr "Zum Starten des BS drĀcken Sie <Return>. Mit <e> kĀ”nnen Sie das"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:937
-msgid "commands before booting, or 'c' for a command-line."
-msgstr "Kommando vorher editieren, mit <c> erhalten Sie eine Kommandozeile."
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:940
-#, c-format
-msgid "The highlighted entry will be booted automatically in %d seconds."
-msgstr "In %d Sekunden wird das gewĀ„hlte BS automatisch gestartet."
-
-#: ../../bootloader.pm_.c:944
-msgid "not enough room in /boot"
-msgstr "Sie haben nicht genug Platz in ā€˛/bootā€"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#. -PO: so you may need to put them in English or in a different language if MS-windows doesn't exist in your language
-#: ../../bootloader.pm_.c:1044
-msgid "Desktop"
-msgstr "ArbeitsoberflƤche"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#: ../../bootloader.pm_.c:1046
-msgid "Start Menu"
-msgstr "Start-MenĆ¼"
-
-#: ../../bootloader.pm_.c:1065
-#, c-format
-msgid "You can't install the bootloader on a %s partition\n"
-msgstr ""
-"Sie kƶnnen den Betriebssystemstarter\n"
-"nicht auf einer %s Partition installieren!\n"
-
-#: ../../bootlook.pm_.c:46
-msgid "no help implemented yet.\n"
-msgstr "Es steht noch keine Hilfe zur VerfĆ¼gung.\n"
-
-#: ../../bootlook.pm_.c:62
-msgid "Boot Style Configuration"
-msgstr "Konfiguration der Boot-Einstellungen"
-
-#: ../../bootlook.pm_.c:79 ../../standalone/logdrake_.c:101
-msgid "/_File"
-msgstr "/_Datei"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "/File/_Quit"
-msgstr "/Datei/_Beenden"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "<control>Q"
-msgstr "<control>Q"
-
-#: ../../bootlook.pm_.c:91
-msgid "NewStyle Categorizing Monitor"
-msgstr "Neuer kategorisierter Monitor"
-
-#: ../../bootlook.pm_.c:92
-msgid "NewStyle Monitor"
-msgstr "Neuer Stil"
-
-#: ../../bootlook.pm_.c:93
-msgid "Traditional Monitor"
-msgstr "Herkƶmmlicher Stil"
-
-#: ../../bootlook.pm_.c:94
-msgid "Traditional Gtk+ Monitor"
-msgstr "Herkƶmmlicher Gtk+ Stil"
-
-#: ../../bootlook.pm_.c:95
-msgid "Launch Aurora at boot time"
-msgstr "Aurora beim Hochfahren starten"
-
-#: ../../bootlook.pm_.c:98
-msgid "Lilo/grub mode"
-msgstr "LILO/GRUB Modus"
-
-#: ../../bootlook.pm_.c:98
-msgid "Yaboot mode"
-msgstr "Yaboot Modus"
-
-#: ../../bootlook.pm_.c:104
-#, c-format
-msgid ""
-"You are currently using %s as Boot Manager.\n"
-"Click on Configure to launch the setup wizard."
-msgstr ""
-"Sie verwenden momentan ā€˛%sā€ als Betriebssystemstarter.\n"
-"WƤhlen Sie ā€˛Konfigurierenā€, wenn Sie den Assistenten starten wollen."
-
-#: ../../bootlook.pm_.c:106 ../../standalone/drakbackup_.c:1467
-#: ../../standalone/drakbackup_.c:1478 ../../standalone/drakgw_.c:715
-#: ../../standalone/tinyfirewall_.c:59
-msgid "Configure"
-msgstr "Konfigurieren"
-
-#: ../../bootlook.pm_.c:141
-msgid "System mode"
-msgstr "System-Modus"
-
-#: ../../bootlook.pm_.c:143
-msgid "Launch the X-Window system at start"
-msgstr "X-Window nach dem Hochfahren automatisch starten "
-
-#: ../../bootlook.pm_.c:148
-msgid "No, I don't want autologin"
-msgstr "Nein ich will kein Autologin"
-
-#: ../../bootlook.pm_.c:150
-msgid "Yes, I want autologin with this (user, desktop)"
-msgstr "Ja ich will Autologin mit diesem Kennzeichen und dieser OberflƤche"
-
-#: ../../bootlook.pm_.c:160 ../../network/netconnect.pm_.c:102
-#: ../../standalone/drakbackup_.c:2441 ../../standalone/drakbackup_.c:3345
-#: ../../standalone/drakfont_.c:532 ../../standalone/drakfont_.c:655
-#: ../../standalone/drakfont_.c:719 ../../standalone/drakfont_.c:765
-#: ../../standalone/draknet_.c:109 ../../standalone/draknet_.c:141
-#: ../../standalone/draknet_.c:297 ../../standalone/draknet_.c:436
-#: ../../standalone/draknet_.c:522 ../../standalone/draknet_.c:565
-#: ../../standalone/draknet_.c:666 ../../standalone/logdrake_.c:505
-msgid "OK"
-msgstr "OK"
-
-#: ../../bootlook.pm_.c:229
-#, c-format
-msgid "can not open /etc/inittab for reading: %s"
-msgstr "Ich kann ā€˛/etc/inittabā€ nicht zum lesen ƶffnen: %s"
-
-#: ../../common.pm_.c:94
-msgid "GB"
-msgstr "GB"
-
-#: ../../common.pm_.c:94
-msgid "KB"
-msgstr "KB"
-
-#: ../../common.pm_.c:94
-msgid "MB"
-msgstr "MB"
-
-#: ../../common.pm_.c:102
-msgid "TB"
-msgstr "TB"
-
-#: ../../common.pm_.c:110
-#, c-format
-msgid "%d minutes"
-msgstr "%d Minuten"
-
-#: ../../common.pm_.c:112
-msgid "1 minute"
-msgstr "1 Minute"
-
-#: ../../common.pm_.c:114
-#, c-format
-msgid "%d seconds"
-msgstr "%d Sekunden"
-
-#: ../../common.pm_.c:159
-msgid "Can't make screenshots before partitioning"
-msgstr ""
-"Vor der Partitionierung kann ich keine Bildschim-SchnappschĆ¼sse machen."
-
-#: ../../common.pm_.c:166
-#, c-format
-msgid "Screenshots will be available after install in %s"
-msgstr "Die Bildschim-SchnappschĆ¼sse liegen nach der Installation unter ā€˛%sā€"
-
-#: ../../crypto.pm_.c:12 ../../crypto.pm_.c:26 ../../standalone/drakxtv_.c:50
-msgid "France"
-msgstr "Frankreich"
-
-#: ../../crypto.pm_.c:13
-msgid "Costa Rica"
-msgstr "Costa Rica"
-
-#: ../../crypto.pm_.c:14 ../../crypto.pm_.c:27
-msgid "Belgium"
-msgstr "Belgien"
-
-#: ../../crypto.pm_.c:15 ../../crypto.pm_.c:28
-msgid "Czech Republic"
-msgstr "Tschechische Republik"
-
-#: ../../crypto.pm_.c:16 ../../crypto.pm_.c:29
-msgid "Germany"
-msgstr "Deutschland"
-
-#: ../../crypto.pm_.c:17 ../../crypto.pm_.c:30
-msgid "Greece"
-msgstr "Griechenland"
-
-#: ../../crypto.pm_.c:18 ../../crypto.pm_.c:31
-msgid "Norway"
-msgstr "Norwegen"
-
-#: ../../crypto.pm_.c:19 ../../crypto.pm_.c:32
-msgid "Sweden"
-msgstr "Schweden"
-
-#: ../../crypto.pm_.c:20 ../../crypto.pm_.c:34
-msgid "Netherlands"
-msgstr "Holland"
-
-#: ../../crypto.pm_.c:21 ../../crypto.pm_.c:35 ../../standalone/drakxtv_.c:50
-msgid "Italy"
-msgstr "Italien"
-
-#: ../../crypto.pm_.c:22 ../../crypto.pm_.c:36
-msgid "Austria"
-msgstr "Ć–stereich"
-
-#: ../../crypto.pm_.c:33 ../../crypto.pm_.c:67
-msgid "United States"
-msgstr "Vereinigte Staaten von Amerika"
-
-#: ../../diskdrake/hd_gtk.pm_.c:94
-msgid "Please make a backup of your data first"
-msgstr "Bitte machen Sie erst eine Sicherheitskopie Ihrer Daten!"
-
-#: ../../diskdrake/hd_gtk.pm_.c:94 ../../diskdrake/interactive.pm_.c:891
-#: ../../diskdrake/interactive.pm_.c:900 ../../diskdrake/interactive.pm_.c:954
-msgid "Read carefully!"
-msgstr "Lesen Sie bitte aufmerksam!"
-
-#: ../../diskdrake/hd_gtk.pm_.c:97
-msgid ""
-"If you plan to use aboot, be carefull to leave a free space (2048 sectors is "
-"enough)\n"
-"at the beginning of the disk"
-msgstr ""
-"Wenn Sie aboot verwenden wollen, mĆ¼ssen Sie ausreichend Platz am Anfang \n"
-"der Platte lassen (2048 Sektoren reichen aus)."
-
-#: ../../diskdrake/hd_gtk.pm_.c:116 ../../diskdrake/interactive.pm_.c:325
-#: ../../diskdrake/interactive.pm_.c:340 ../../diskdrake/smbnfs_gtk.pm_.c:45
-#: ../../install_steps.pm_.c:75 ../../install_steps_interactive.pm_.c:67
-#: ../../install_steps_interactive.pm_.c:356 ../../interactive_http.pm_.c:119
-#: ../../interactive_http.pm_.c:120 ../../standalone/diskdrake_.c:84
-msgid "Error"
-msgstr "Fehler"
-
-#: ../../diskdrake/hd_gtk.pm_.c:151
-msgid "Wizard"
-msgstr "Assistent"
-
-#: ../../diskdrake/hd_gtk.pm_.c:181 ../../diskdrake/removable_gtk.pm_.c:24
-msgid "Choose action"
-msgstr "WƤhlen Sie ein Aktion aus"
-
-#: ../../diskdrake/hd_gtk.pm_.c:185
-msgid ""
-"You have one big FAT partition\n"
-"(generally used by MicroSoft Dos/Windows).\n"
-"I suggest you first resize that partition\n"
-"(click on it, then click on \"Resize\")"
-msgstr ""
-"Sie haben eine groĆe FAT Partition \n"
-"(diese enthƤlt hƤufig nur Microsoft DOS/Windows).\n"
-"Ich rate Ihnen, diese Partition erst zu verkleinern\n"
-"(WƤhlen Sie sie an und drĆ¼cken Sie dann ā€˛GrƶĆe verƤndernā€)"
-
-#: ../../diskdrake/hd_gtk.pm_.c:188
-msgid "Please click on a partition"
-msgstr "Bitte klicken Sie auf eine Partition"
-
-#: ../../diskdrake/hd_gtk.pm_.c:202 ../../diskdrake/smbnfs_gtk.pm_.c:67
-#: ../../install_steps_gtk.pm_.c:523
-msgid "Details"
-msgstr "Details"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Ext2"
-msgstr "Ext2"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "FAT"
-msgstr "FAT"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "HFS"
-msgstr "HFS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Journalised FS"
-msgstr "Journalisierendes FS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "SunOS"
-msgstr "SunOS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Swap"
-msgstr "Auslagerung"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../diskdrake/interactive.pm_.c:1050
-msgid "Empty"
-msgstr "Leer"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../install_steps_gtk.pm_.c:379
-#: ../../install_steps_gtk.pm_.c:439 ../../mouse.pm_.c:162
-#: ../../services.pm_.c:157 ../../standalone/drakbackup_.c:944
-msgid "Other"
-msgstr "Andere"
-
-#: ../../diskdrake/hd_gtk.pm_.c:325
-msgid "Filesystem types:"
-msgstr "Dateisystemtypen:"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:386
-msgid "Create"
-msgstr "Erzeugen"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:365
-#: ../../diskdrake/interactive.pm_.c:499 ../../diskdrake/removable.pm_.c:26
-#: ../../diskdrake/removable.pm_.c:49 ../../diskdrake/removable_gtk.pm_.c:17
-msgid "Type"
-msgstr "Typ"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/hd_gtk.pm_.c:344
-#, c-format
-msgid "Use ``%s'' instead"
-msgstr "Verwenden Sie stattdessen ā€˛%sā€"
-
-#: ../../diskdrake/hd_gtk.pm_.c:344 ../../diskdrake/interactive.pm_.c:374
-msgid "Delete"
-msgstr "Lƶschen"
-
-#: ../../diskdrake/hd_gtk.pm_.c:348
-msgid "Use ``Unmount'' first"
-msgstr "Verwenden Sie erst ā€˛umountā€"
-
-#: ../../diskdrake/hd_gtk.pm_.c:349 ../../diskdrake/interactive.pm_.c:491
-#, c-format
-msgid ""
-"After changing type of partition %s, all data on this partition will be lost"
-msgstr ""
-"Nach Ƅnderung des Partitionstyps von %s, werden sƤmtliche Daten darauf "
-"gelƶscht"
-
-#: ../../diskdrake/interactive.pm_.c:171
-msgid "Choose a partition"
-msgstr "WƤhlen Sie eine Partition"
-
-#: ../../diskdrake/interactive.pm_.c:171
-msgid "Choose another partition"
-msgstr "WƤhlen Sie eine andere Partition"
-
-#: ../../diskdrake/interactive.pm_.c:196
-msgid "Exit"
-msgstr "Verlassen"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to expert mode"
-msgstr "In den Experten-Modus wechseln"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to normal mode"
-msgstr "In den Normal-Modus wechseln"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Undo"
-msgstr "RĆ¼ckgƤngig"
-
-#: ../../diskdrake/interactive.pm_.c:237
-msgid "Continue anyway?"
-msgstr "Wollen Sie trotzdem fortfahren?"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without saving"
-msgstr "Beenden ohne speichern"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without writing the partition table?"
-msgstr "Beenden ohne die Partitionstabelle zu speichern?"
-
-#: ../../diskdrake/interactive.pm_.c:247
-msgid "Do you want to save /etc/fstab modifications"
-msgstr "Mƶchten Sie die vorgenommenen Ć„nderungen in ā€˛/etc/fstabā€ speichern?"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Auto allocate"
-msgstr "Automatisches Erstellen"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Clear all"
-msgstr "Alles lƶschen"
-
-#: ../../diskdrake/interactive.pm_.c:262
-msgid "Hard drive information"
-msgstr "Festplatten-Informationen"
-
-#: ../../diskdrake/interactive.pm_.c:283
-msgid "All primary partitions are used"
-msgstr "Alle PrimƤrpartitionen sind in Gebrauch"
-
-#: ../../diskdrake/interactive.pm_.c:284
-msgid "I can't add any more partition"
-msgstr "Ich kann keinen weiteren Partitionen hinzufĆ¼gen"
-
-#: ../../diskdrake/interactive.pm_.c:285
-msgid ""
-"To have more partitions, please delete one to be able to create an extended "
-"partition"
-msgstr ""
-"Um mehr Partitionen einrichten zu kƶnnen, mĆ¼ssen Sie zunƤchst eine Partition "
-"lƶschen und anschlieĆend eine erweiterte Partition erzeugen"
-
-#: ../../diskdrake/interactive.pm_.c:295
-msgid "Save partition table"
-msgstr "Partitionstabelle schreiben"
-
-#: ../../diskdrake/interactive.pm_.c:296
-msgid "Restore partition table"
-msgstr "Partitionstabelle wiederherstellen"
-
-#: ../../diskdrake/interactive.pm_.c:297
-msgid "Rescue partition table"
-msgstr "Partitionstabelle retten"
-
-#: ../../diskdrake/interactive.pm_.c:299
-msgid "Reload partition table"
-msgstr "Partitionstabelle neu laden"
-
-#: ../../diskdrake/interactive.pm_.c:304
-msgid "Removable media automounting"
-msgstr "Wechselmedien automatisch EinhƤngen"
-
-#: ../../diskdrake/interactive.pm_.c:313 ../../diskdrake/interactive.pm_.c:333
-msgid "Select file"
-msgstr "Datei auswƤhlen"
-
-#: ../../diskdrake/interactive.pm_.c:320
-msgid ""
-"The backup partition table has not the same size\n"
-"Still continue?"
-msgstr ""
-"Die gesicherte Partitionstabelle hat nicht dieselbe GrƶĆe\n"
-"Soll trotzdem fortgefahren werden?"
-
-#: ../../diskdrake/interactive.pm_.c:334
-msgid "Warning"
-msgstr "Warnung"
-
-#: ../../diskdrake/interactive.pm_.c:335
-msgid ""
-"Insert a floppy in drive\n"
-"All data on this floppy will be lost"
-msgstr ""
-"Legen Sie eine Diskette in das Laufwerk\n"
-"Alle Daten auf dieser Diskette werden gelƶscht!"
-
-#: ../../diskdrake/interactive.pm_.c:346
-msgid "Trying to rescue partition table"
-msgstr "Ich Versuche, die Partitionstabelle zu retten"
-
-#: ../../diskdrake/interactive.pm_.c:352
-msgid "Detailed information"
-msgstr "AusfĆ¼hrliche Informationen"
-
-#: ../../diskdrake/interactive.pm_.c:364 ../../diskdrake/interactive.pm_.c:534
-#: ../../diskdrake/interactive.pm_.c:554 ../../diskdrake/removable.pm_.c:24
-#: ../../diskdrake/removable_gtk.pm_.c:15 ../../diskdrake/smbnfs_gtk.pm_.c:83
-msgid "Mount point"
-msgstr "EinhƤngpunkt"
-
-#: ../../diskdrake/interactive.pm_.c:366 ../../diskdrake/removable.pm_.c:25
-#: ../../diskdrake/removable_gtk.pm_.c:16 ../../diskdrake/smbnfs_gtk.pm_.c:84
-msgid "Options"
-msgstr "Optionen"
-
-#: ../../diskdrake/interactive.pm_.c:367 ../../diskdrake/interactive.pm_.c:621
-msgid "Resize"
-msgstr "GrƶĆe verƤndern"
-
-#: ../../diskdrake/interactive.pm_.c:368 ../../diskdrake/interactive.pm_.c:674
-msgid "Move"
-msgstr "Bewegen"
-
-#: ../../diskdrake/interactive.pm_.c:369
-msgid "Format"
-msgstr "Formatieren"
-
-#: ../../diskdrake/interactive.pm_.c:370 ../../diskdrake/smbnfs_gtk.pm_.c:80
-msgid "Mount"
-msgstr "EinhƤngen"
-
-#: ../../diskdrake/interactive.pm_.c:371
-msgid "Add to RAID"
-msgstr "Zum RAID hinzufĆ¼gen"
-
-#: ../../diskdrake/interactive.pm_.c:372
-msgid "Add to LVM"
-msgstr "Zum LVM hinzufĆ¼gen"
-
-#: ../../diskdrake/interactive.pm_.c:373 ../../diskdrake/smbnfs_gtk.pm_.c:79
-msgid "Unmount"
-msgstr "AushƤngen"
-
-#: ../../diskdrake/interactive.pm_.c:375
-msgid "Remove from RAID"
-msgstr "Lƶschen aus dem RAID"
-
-#: ../../diskdrake/interactive.pm_.c:376
-msgid "Remove from LVM"
-msgstr "Lƶschen aus dem LVM"
-
-#: ../../diskdrake/interactive.pm_.c:377
-msgid "Modify RAID"
-msgstr "RAID modifizieren"
-
-#: ../../diskdrake/interactive.pm_.c:378
-msgid "Use for loopback"
-msgstr "Als Loopback verwenden"
-
-#: ../../diskdrake/interactive.pm_.c:417
-msgid "Create a new partition"
-msgstr "Erzeuge eine neue Partition"
-
-#: ../../diskdrake/interactive.pm_.c:420
-msgid "Start sector: "
-msgstr "Anfangssektor: "
-
-#: ../../diskdrake/interactive.pm_.c:422 ../../diskdrake/interactive.pm_.c:773
-msgid "Size in MB: "
-msgstr "GrƶĆe in MB:"
-
-#: ../../diskdrake/interactive.pm_.c:423 ../../diskdrake/interactive.pm_.c:774
-msgid "Filesystem type: "
-msgstr "Dateisystemtyp: "
-
-#: ../../diskdrake/interactive.pm_.c:424
-#: ../../diskdrake/interactive.pm_.c:1034
-#: ../../diskdrake/interactive.pm_.c:1108
-msgid "Mount point: "
-msgstr "EinhƤngpunkt: "
-
-#: ../../diskdrake/interactive.pm_.c:428
-msgid "Preference: "
-msgstr "Einstellung: "
-
-#: ../../diskdrake/interactive.pm_.c:472
-msgid "Remove the loopback file?"
-msgstr "Die Loopback-Datei entfernen?"
-
-#: ../../diskdrake/interactive.pm_.c:497
-msgid "Change partition type"
-msgstr "Partitionstyp Ƥndern"
-
-#: ../../diskdrake/interactive.pm_.c:498 ../../diskdrake/removable.pm_.c:48
-msgid "Which filesystem do you want?"
-msgstr "Welches Dateisystem wollen Sie verwenden?"
-
-#: ../../diskdrake/interactive.pm_.c:502
-msgid "Switching from ext2 to ext3"
-msgstr "Konvertiere ext2 zu ext3"
-
-#: ../../diskdrake/interactive.pm_.c:532
-#, c-format
-msgid "Where do you want to mount loopback file %s?"
-msgstr "Wo wollen Sie die Loopback-Datei %s einhƤngen?"
-
-#: ../../diskdrake/interactive.pm_.c:533 ../../diskdrake/interactive.pm_.c:553
-#, c-format
-msgid "Where do you want to mount device %s?"
-msgstr "Wo wollen Sie das GerƤt %s einhƤngen?"
-
-#: ../../diskdrake/interactive.pm_.c:539
-msgid ""
-"Can't unset mount point as this partition is used for loop back.\n"
-"Remove the loopback first"
-msgstr ""
-"Ich kann diesen EinhƤngpunkt nicht zurĆ¼cksetzen, da diese Partition als \n"
-"Loopback verwendet wird. Bitte entfernen Sie erst diesen Loopback."
-
-#: ../../diskdrake/interactive.pm_.c:577
-msgid "Computing FAT filesystem bounds"
-msgstr "Errechne die Grenzen des FAT Dateisystems"
-
-#: ../../diskdrake/interactive.pm_.c:577 ../../diskdrake/interactive.pm_.c:636
-#: ../../install_interactive.pm_.c:130
-msgid "Resizing"
-msgstr "Neuberechnen der GrƶĆe"
-
-#: ../../diskdrake/interactive.pm_.c:609
-msgid "This partition is not resizeable"
-msgstr "Die GrƶĆe dieser Partition kann ich nicht Ƥndern"
-
-#: ../../diskdrake/interactive.pm_.c:614
-msgid "All data on this partition should be backed-up"
-msgstr "Sie sollten ein Backup sƤmtlicher Daten dieser Partition erstellen"
-
-#: ../../diskdrake/interactive.pm_.c:616
-#, c-format
-msgid "After resizing partition %s, all data on this partition will be lost"
-msgstr ""
-"Durch VerƤnderung der PartitionsgrƶĆe von %s, gehen sƤmtliche Daten darauf "
-"verloren"
-
-#: ../../diskdrake/interactive.pm_.c:621
-msgid "Choose the new size"
-msgstr "WƤhlen Sie die neue GrƶĆe"
-
-#: ../../diskdrake/interactive.pm_.c:622
-msgid "New size in MB: "
-msgstr "Neue GrƶĆe in MB:"
-
-#: ../../diskdrake/interactive.pm_.c:675
-msgid "Which disk do you want to move it to?"
-msgstr "Zu welcher Platte wollen Sie wechseln?"
-
-#: ../../diskdrake/interactive.pm_.c:676
-msgid "Sector"
-msgstr "Sektor"
-
-#: ../../diskdrake/interactive.pm_.c:677
-msgid "Which sector do you want to move it to?"
-msgstr "Zu welchem Sektor wollen Sie wechseln?"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving"
-msgstr "wechsele"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving partition..."
-msgstr "Bewege Partition..."
-
-#: ../../diskdrake/interactive.pm_.c:697
-msgid "Choose an existing RAID to add to"
-msgstr "WƤhlen Sie einen vorhandenen RAID"
-
-#: ../../diskdrake/interactive.pm_.c:698 ../../diskdrake/interactive.pm_.c:716
-msgid "new"
-msgstr "Neu"
-
-#: ../../diskdrake/interactive.pm_.c:714
-msgid "Choose an existing LVM to add to"
-msgstr "WƤhlen Sie einen vorhandenen LVM"
-
-#: ../../diskdrake/interactive.pm_.c:719
-msgid "LVM name?"
-msgstr "LVM Name?"
-
-#: ../../diskdrake/interactive.pm_.c:759
-msgid "This partition can't be used for loopback"
-msgstr "Diese Partition kann nicht als Loopback verwendet werden"
-
-#: ../../diskdrake/interactive.pm_.c:771
-msgid "Loopback"
-msgstr "Loopback"
-
-#: ../../diskdrake/interactive.pm_.c:772
-msgid "Loopback file name: "
-msgstr "Name der Loopback-Datei: "
-
-#: ../../diskdrake/interactive.pm_.c:777
-msgid "Give a file name"
-msgstr "Dateinamen angeben"
-
-#: ../../diskdrake/interactive.pm_.c:780
-msgid "File already used by another loopback, choose another one"
-msgstr ""
-"Diese Datei wird bereits von einer anderen Loopback-VerknĆ¼pfung verwendet, "
-"wƤhlen Sie eine andere Datei."
-
-#: ../../diskdrake/interactive.pm_.c:781
-msgid "File already exists. Use it?"
-msgstr ""
-"Es existiert bereits eine Datei mit diesem Namen. Soll ich sie verwenden?"
-
-#: ../../diskdrake/interactive.pm_.c:804
-msgid "Mount options"
-msgstr "EinhƤng-Optionen"
-
-#: ../../diskdrake/interactive.pm_.c:811
-msgid "Various"
-msgstr "Verschiedene"
-
-#: ../../diskdrake/interactive.pm_.c:874
-msgid "device"
-msgstr "GerƤt"
-
-#: ../../diskdrake/interactive.pm_.c:875
-msgid "level"
-msgstr "Level"
-
-#: ../../diskdrake/interactive.pm_.c:876
-msgid "chunk size"
-msgstr "BlockgrƶĆe"
-
-#: ../../diskdrake/interactive.pm_.c:891
-msgid "Be careful: this operation is dangerous."
-msgstr "Vorsicht: Diese Aktion ist gefƤhrlich."
-
-#: ../../diskdrake/interactive.pm_.c:906
-msgid "What type of partitioning?"
-msgstr "Welcher Partitionstyp?"
-
-#: ../../diskdrake/interactive.pm_.c:924
-msgid ""
-"Sorry I won't accept to create /boot so far onto the drive (on a cylinder > "
-"1024).\n"
-"Either you use LILO and it won't work, or you don't use LILO and you don't "
-"need /boot"
-msgstr ""
-"Es tut mir Leid, aber ich weigere mich, eine ā€˛/bootā€ Partition \n"
-"hinter dem Zylinder 1024 anzulegen.\n"
-"Entweder verwenden Sie LILO und es wird nicht funktionieren, oder Sie "
-"verwenden \n"
-"LILO nicht, dann benƶtigen Sie keine ā€˛/bootā€ Partition."
-
-#: ../../diskdrake/interactive.pm_.c:928
-msgid ""
-"The partition you've selected to add as root (/) is physically located "
-"beyond\n"
-"the 1024th cylinder of the hard drive, and you have no /boot partition.\n"
-"If you plan to use the LILO boot manager, be careful to add a /boot partition"
-msgstr ""
-"Die Partition, die Sie als Verzeichnisbaumwurzel (/) ausgewƤhlt haben, ist "
-"physikalisch hinter dem 1024ten Zylinder Ihrer Festplatte gelegen und Sie "
-"haben keine ā€˛/bootā€ Partition eingerichtet. Falls Sie den LILO "
-"Betriebssystemstarter einsetzen wollen, vergessen Sie bitte nicht, eine ā€˛/"
-"bootā€ Partition anzulegen!"
-
-#: ../../diskdrake/interactive.pm_.c:934
-msgid ""
-"You've selected a software RAID partition as root (/).\n"
-"No bootloader is able to handle this without a /boot partition.\n"
-"So be careful to add a /boot partition"
-msgstr ""
-"Sie haben eine Software-RAID-Partition als Verzeichnisbaumwurzel "
-"ausgewƤhlt. \n"
-"Zur Zeit kann kein Betriebssystemstarter damit ohne Verwendung einer \n"
-"ā€˛/bootā€-Partition arbeiten. Sie sollten also daran denken, eine solche \n"
-"Partition zu erstellen."
-
-#: ../../diskdrake/interactive.pm_.c:954
-#, c-format
-msgid "Partition table of drive %s is going to be written to disk!"
-msgstr "Die Partitionstabelle der Platte ā€˛%sā€ wird gespeichert!"
-
-#: ../../diskdrake/interactive.pm_.c:958
-msgid "You'll need to reboot before the modification can take place"
-msgstr ""
-"Sie mĆ¼ssen Ihren Rechner neu starten, damit die VerƤnderungen wirksam werden"
-
-#: ../../diskdrake/interactive.pm_.c:969
-#, c-format
-msgid "After formatting partition %s, all data on this partition will be lost"
-msgstr ""
-"Nach Formatieren der Partition %s, werden sƤmtliche Daten darauf gelƶscht"
-
-#: ../../diskdrake/interactive.pm_.c:971
-msgid "Formatting"
-msgstr "Formatiere"
-
-#: ../../diskdrake/interactive.pm_.c:972
-#, c-format
-msgid "Formatting loopback file %s"
-msgstr "Formatiere Loopback-Datei %s"
-
-#: ../../diskdrake/interactive.pm_.c:973
-#: ../../install_steps_interactive.pm_.c:465
-#, c-format
-msgid "Formatting partition %s"
-msgstr "Formatiere Partition %s"
-
-#: ../../diskdrake/interactive.pm_.c:984
-msgid "Hide files"
-msgstr "Dateien verstecken"
-
-#: ../../diskdrake/interactive.pm_.c:984
-msgid "Move files to the new partition"
-msgstr "Dateien auf die neue Partition verschieben."
-
-#: ../../diskdrake/interactive.pm_.c:985
-#, c-format
-msgid ""
-"Directory %s already contain some data\n"
-"(%s)"
-msgstr ""
-"Das Verzeichnis ā€˛%sā€ enthƤlt bereits Daten\n"
-"(%s)"
-
-#: ../../diskdrake/interactive.pm_.c:996
-msgid "Moving files to the new partition"
-msgstr "Dateien auf die neue Partition verschieben."
-
-#: ../../diskdrake/interactive.pm_.c:1000
-#, c-format
-msgid "Copying %s"
-msgstr "Kopiere: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1004
-#, c-format
-msgid "Removing %s"
-msgstr "Entferne: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1014
-#, c-format
-msgid "partition %s is now known as %s"
-msgstr "Die Partition %s heiĆt nun %s"
-
-#: ../../diskdrake/interactive.pm_.c:1035
-#: ../../diskdrake/interactive.pm_.c:1094
-msgid "Device: "
-msgstr "GerƤt: "
-
-#: ../../diskdrake/interactive.pm_.c:1036
-#, c-format
-msgid "DOS drive letter: %s (just a guess)\n"
-msgstr "DOS Laufwerksbuchstabe: %s (vermutlich?)\n"
-
-#: ../../diskdrake/interactive.pm_.c:1040
-#: ../../diskdrake/interactive.pm_.c:1048
-#: ../../diskdrake/interactive.pm_.c:1112
-msgid "Type: "
-msgstr "Typ:"
-
-#: ../../diskdrake/interactive.pm_.c:1044
-msgid "Name: "
-msgstr "Name: "
-
-#: ../../diskdrake/interactive.pm_.c:1052
-#, c-format
-msgid "Start: sector %s\n"
-msgstr "Anfang: Sektor %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1053
-#, c-format
-msgid "Size: %s"
-msgstr "GrƶĆe: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1055
-#, c-format
-msgid ", %s sectors"
-msgstr ", %s Sektoren"
-
-#: ../../diskdrake/interactive.pm_.c:1057
-#, c-format
-msgid "Cylinder %d to %d\n"
-msgstr "Zylinder %d bis %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1058
-msgid "Formatted\n"
-msgstr "Formatiert\n"
-
-#: ../../diskdrake/interactive.pm_.c:1059
-msgid "Not formatted\n"
-msgstr "Nicht formatiert\n"
-
-#: ../../diskdrake/interactive.pm_.c:1060
-msgid "Mounted\n"
-msgstr "EingehƤngt\n"
-
-#: ../../diskdrake/interactive.pm_.c:1061
-#, c-format
-msgid "RAID md%s\n"
-msgstr "RAID md%s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1063
-#, c-format
-msgid ""
-"Loopback file(s):\n"
-" %s\n"
-msgstr ""
-"Loopback Datei(en):\n"
-" %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1064
-msgid ""
-"Partition booted by default\n"
-" (for MS-DOS boot, not for lilo)\n"
-msgstr ""
-"Partition wird standardmƤĆig geladen\n"
-" (fĆ¼r MS-DOS Boot, nicht jedoch fĆ¼r LILO)\n"
-
-#: ../../diskdrake/interactive.pm_.c:1066
-#, c-format
-msgid "Level %s\n"
-msgstr "Level %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1067
-#, c-format
-msgid "Chunk size %s\n"
-msgstr "BlockgrƶĆe %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1068
-#, c-format
-msgid "RAID-disks %s\n"
-msgstr "RAID Platten %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1070
-#, c-format
-msgid "Loopback file name: %s"
-msgstr "Dateiname des Loopbacks: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1073
-msgid ""
-"\n"
-"Chances are, this partition is\n"
-"a Driver partition, you should\n"
-"probably leave it alone.\n"
-msgstr ""
-"\n"
-"Es besteht die Wahrscheinlichkeit,\n"
-"dass es sich um eine Treiber-\n"
-"Partition handelt. Sie sollten sie\n"
-"daher unverƤndert lassen.\n"
-
-#: ../../diskdrake/interactive.pm_.c:1076
-msgid ""
-"\n"
-"This special Bootstrap\n"
-"partition is for\n"
-"dual-booting your system.\n"
-msgstr ""
-"\n"
-"Diese spezielle Start-Partition\n"
-"ist fĆ¼r die Verwendung mehrerer\n"
-"Betriebssysteme auf dem selben\n"
-"Rechner.\n"
-
-#: ../../diskdrake/interactive.pm_.c:1095
-#, c-format
-msgid "Size: %s\n"
-msgstr "GrƶĆe: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1096
-#, c-format
-msgid "Geometry: %s cylinders, %s heads, %s sectors\n"
-msgstr "Geometrie: %s Zylinder, %s Kƶpfe, %s Sektoren\n"
-
-#: ../../diskdrake/interactive.pm_.c:1097
-msgid "Info: "
-msgstr "Info: "
-
-#: ../../diskdrake/interactive.pm_.c:1098
-#, c-format
-msgid "LVM-disks %s\n"
-msgstr "LVM Platten %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1099
-#, c-format
-msgid "Partition table type: %s\n"
-msgstr "Partitionstabellen Typ: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1100
-#, c-format
-msgid "on bus %d id %d\n"
-msgstr "auf Bus %d ID %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1114
-#, c-format
-msgid "Options: %s"
-msgstr "Optionen: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1130
-msgid "Filesystem encryption key"
-msgstr "Dateisystem-SchlĆ¼ssel"
-
-#: ../../diskdrake/interactive.pm_.c:1131
-msgid "Choose your filesystem encryption key"
-msgstr "WƤhlen Sie Ihren Dateisystem-SchlĆ¼ssel (Passwort)"
-
-#: ../../diskdrake/interactive.pm_.c:1134
-#, c-format
-msgid "This encryption key is too simple (must be at least %d characters long)"
-msgstr ""
-"Dieses Passwort ist zu einfach (es muss mindestens %d Zeichen lang sein)!"
-
-#: ../../diskdrake/interactive.pm_.c:1135
-msgid "The encryption keys do not match"
-msgstr "Die Passwƶrter stimmen nicht Ć¼berein"
-
-#: ../../diskdrake/interactive.pm_.c:1138
-msgid "Encryption key"
-msgstr "SchlĆ¼ssel"
-
-#: ../../diskdrake/interactive.pm_.c:1139
-msgid "Encryption key (again)"
-msgstr "SchlĆ¼ssel (erneut)"
-
-#: ../../diskdrake/removable.pm_.c:47
-msgid "Change type"
-msgstr "Typ Ƥndern"
-
-#: ../../diskdrake/removable_gtk.pm_.c:28
-msgid "Please click on a media"
-msgstr "Bitte wƤhlen Sie ein Medium"
-
-#: ../../diskdrake/smbnfs_gtk.pm_.c:165
-msgid "Search servers"
-msgstr "Server suchen"
-
-#: ../../fs.pm_.c:485 ../../fs.pm_.c:495 ../../fs.pm_.c:499 ../../fs.pm_.c:503
-#: ../../fs.pm_.c:507 ../../fs.pm_.c:511
-#, c-format
-msgid "%s formatting of %s failed"
-msgstr "%s formatieren von %s schlug Fehl"
-
-#: ../../fs.pm_.c:548
-#, c-format
-msgid "I don't know how to format %s in type %s"
-msgstr ""
-"Ich bin nicht in der Lage, %s mit einem Dateisystem vom Typ %s zu "
-"formatieren."
-
-#: ../../fs.pm_.c:620 ../../fs.pm_.c:649 ../../fs.pm_.c:655
-#, c-format
-msgid "mounting partition %s in directory %s failed"
-msgstr "Das EinhƤngen der Partition %s in das Verzeichnis %s schlug fehl."
-
-#: ../../fs.pm_.c:640
-#, c-format
-msgid "fsck failed with exit code %d or signal %d"
-msgstr ""
-"Der Dateisystemcheck (fsck) schlug fehl mit dem RĆ¼ckgabewert %d oder Signal %"
-"d."
-
-#: ../../fs.pm_.c:670 ../../partition_table.pm_.c:596
-#, c-format
-msgid "error unmounting %s: %s"
-msgstr "Fehler beim AushƤngen von %s: %s"
-
-#: ../../fsedit.pm_.c:21
-msgid "simple"
-msgstr "Einfach"
-
-#: ../../fsedit.pm_.c:25
-msgid "with /usr"
-msgstr "mit ā€˛/usrā€"
-
-#: ../../fsedit.pm_.c:30
-msgid "server"
-msgstr "Server"
-
-#: ../../fsedit.pm_.c:467
-msgid "You can't use JFS for partitions smaller than 16MB"
-msgstr ""
-"Sie kƶnnen JFS nicht fĆ¼r Partitionen verwenden, die kleiner als 16MB sind!"
-
-#: ../../fsedit.pm_.c:468
-msgid "You can't use ReiserFS for partitions smaller than 32MB"
-msgstr ""
-"Sie kƶnnen ReiserFS nicht fĆ¼r Partitionen verwenden, die kleiner als 32MB "
-"sind!"
-
-#: ../../fsedit.pm_.c:477
-msgid "Mount points must begin with a leading /"
-msgstr "EinhƤngpunkte mĆ¼ssen mit einem / beginnen."
-
-#: ../../fsedit.pm_.c:478
-#, c-format
-msgid "There is already a partition with mount point %s\n"
-msgstr "Es gibt bereits eine Partition, mit dem EinhƤngpunkt %s\n"
-
-#: ../../fsedit.pm_.c:482
-#, c-format
-msgid "You can't use a LVM Logical Volume for mount point %s"
-msgstr ""
-"Sie kƶnnen kein logisches LVM Medium fĆ¼r den EinhƤngpunkt %s verwenden."
-
-#: ../../fsedit.pm_.c:484
-msgid "This directory should remain within the root filesystem"
-msgstr "Dieses Verzeichnis muss in der Verzeichnisbaumwurzel bleiben"
-
-#: ../../fsedit.pm_.c:486
-msgid "You need a true filesystem (ext2, reiserfs) for this mount point\n"
-msgstr ""
-"Sie benƶtigen ein echtes GNU/Linux Dateisystem (Ext2, ReiserFS) fĆ¼r \n"
-"diesen EinhƤngpunkt.\n"
-
-#: ../../fsedit.pm_.c:488
-#, c-format
-msgid "You can't use an encrypted file system for mount point %s"
-msgstr ""
-"Sie kƶnnen kein verschlĆ¼sseltes Medium fĆ¼r den EinhƤngpunkt %s verwenden."
-
-# ../../diskdrak1
-#: ../../fsedit.pm_.c:546
-msgid "Not enough free space for auto-allocating"
-msgstr "Nicht genug freier Platz, damit ich selbst Partition anlegen kann."
-
-#: ../../fsedit.pm_.c:548
-msgid "Nothing to do"
-msgstr "Nichts zu tun."
-
-#: ../../fsedit.pm_.c:612
-#, c-format
-msgid "Error opening %s for writing: %s"
-msgstr "Fehler beim Ć–ffnen von %s zum Schreiben: %s"
-
-#: ../../fsedit.pm_.c:697
-msgid ""
-"An error has occurred - no valid devices were found on which to create new "
-"filesystems. Please check your hardware for the cause of this problem"
-msgstr ""
-"Ein Fehler ist aufgetreten - es wurden keine gĆ¼ltigen GerƤte gefunden, auf "
-"denen neue Dateisysteme erstellt werden kƶnnen. Bitte Ć¼berprĆ¼fen Sie Ihre "
-"Hardware(-Konfiguration) auf mƶgliche Fehler und falsche Einstellungen."
-
-#: ../../fsedit.pm_.c:720
-msgid "You don't have any partitions!"
-msgstr "Sie haben keine Partitionen!"
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:13
-msgid ""
-"GNU/Linux is a multiuser system, and this means that each user can have his\n"
-"own preferences, his own files and so on. You can read the ``User Guide''\n"
-"to learn more. But unlike \"root\", which is the administrator, the users\n"
-"you will add here will not be entitled to change anything except their own\n"
-"files and their own configuration. You will have to create at least one\n"
-"regular user for yourself. That account is where you should log in for\n"
-"routine use. Although it is very practical to log in as \"root\" everyday,\n"
-"it may also be very dangerous! The slightest mistake could mean that your\n"
-"system would not work any more. If you make a serious mistake as a regular\n"
-"user, you may only lose some information, but not the entire system.\n"
-"\n"
-"First, you have to enter your real name. This is not mandatory, of course\n"
-"as you can actually enter whatever you want. DrakX will then take the first\n"
-"word you have entered in the box and will bring it over to the \"User\n"
-"name\". This is the name this particular user will use to log onto the\n"
-"system. You can change it. You then have to enter a password here. A\n"
-"non-privileged (regular) user's password is not as crucial as \"root\"' one\n"
-"from a security point of view, but that is no reason to neglect it: after\n"
-"all, your files are at risk.\n"
-"\n"
-"If you click on \"Accept user\", you can then add as many as you want. Add\n"
-"a user for each one of your friends: your father or your sister, for\n"
-"example. When you finish adding all the users you want, select \"Done\".\n"
-"\n"
-"Clicking the \"Advanced\" button allows you to change the default \"shell\"\n"
-"for that user (bash by default)."
-msgstr ""
-"GNU/Linux ist ein Mehrbenutzer-System, das bedeutet konkret jedes\n"
-"Benutzerkennzeichen hat eigene PrƤferenzen (Grafische Umgebung,\n"
-"Programmeinstellungen, etc.), sowie ein eigenes Heim-Verzeichnis, in dem\n"
-"diese Einstellungen gespeichert werden. Falls Sie mehr wissen wollen,\n"
-"kƶnnen Sie im Benutzerhandbuch nachsehen. Sie kƶnnen mehrere normale\n"
-"Benutzerkonten einrichten, im Gegensatz zum ā€˛privilegiertenā€ Kennzeichen:\n"
-"Ā»rootĀ«, das einmalig ist. Im Gegensatz zu Ā»rootĀ« kƶnnen diese normalen\n"
-"Benutzer jedoch nur ihre eigenen Dateien und Konfigurationen verƤndern. Sie\n"
-"kƶnnen sogar mehrere Benutzerkennzeichen pro Person einrichten, denen Sie\n"
-"Zugang zu Ihrem GNU/Linux-System gewƤhren wollen. Erstellen Sie sich ein\n"
-"eigenes Benutzerkennzeichen, auch wenn Sie der einzige Anwender sind, der\n"
-"diesen Rechner nutzt. Sie sollten nicht stƤndig mit dem privilegierten\n"
-"Kennzeichen arbeiten! Das ist ein hohes Sicherheitsrisiko! Wenn Sie einen\n"
-"schweren Fehler als einfacher Benutzer machen, dann kƶnnen Sie maximal\n"
-"Daten verlieren, jedoch nicht Ihr gesamtes System unbrauchbar machen.\n"
-"\n"
-"Zuerst geben Sie bitte einen normalen Namen an. Das muss nicht\n"
-"notwendigerweise Ihr richtiger Name sein. ā€˛DrakXā€ wird das erste Wort, das\n"
-"Sie eingegeben haben, in das Feld ā€˛Benutzerkennzeichenā€ eintragen. Dies ist\n"
-"der Name, den Sie zum Anmelden fĆ¼r dieses Kennzeichen benƶtigen. NatĆ¼rlich\n"
-"kƶnnen Sie ihn hier nach Belieben verƤndern. Dann geben Sie Ihrem Konto ein\n"
-"Passwort. FĆ¼r ein Benutzerkennzeichen ist dieses zwar nicht von so\n"
-"herausragender Bedeutung wie das fĆ¼r Ā»rootĀ«, doch Sie sollten trotzdem\n"
-"etwas Sorgfalt walten lassen. Immerhin sind es Ihre Daten...\n"
-"\n"
-"Klicken Sie auf ā€˛Benutzer akzeptierenā€, um das Kennzeichen zu erstellen.\n"
-"AnschlieĆend kƶnnen Sie direkt weitere Benutzer hinzufĆ¼gen. Wenn Sie allen\n"
-"Kennzeichen erstellt haben, klicken Sie auf ā€˛Fertigā€.\n"
-"\n"
-"Durch Anwahl der SchaltflƤche ā€˛Fortgeschrittenā€ haben Sie auch die\n"
-"Mƶglichkeit, die Standard-Shell dieses Benutzers Ƥndern (normalerweise ist\n"
-"dies die ā€˛Bashā€)."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:41
-msgid ""
-"Listed above are the existing Linux partitions detected on your hard 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"
-"able to install enough software. If you want to store your data on a\n"
-"separate partition, you will also need to create a partition for \"/home\"\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 drive type\", \"hard 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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
-"\"second lowest SCSI ID\", etc."
-msgstr ""
-"Oben sehen Sie die auf Ihrer Festplatte gefundenen Linux-Partitionen. Als\n"
-"normaler Linuxanwender kƶnnen Sie problemlos die VorschlƤge des Assistenten\n"
-"Ć¼bernehmen. Sollten Sie diesen Vorschlag Ƥndern, mĆ¼ssen Sie zumindest eine\n"
-"Partition als Verzeichnisbaumwurzel (ā€˛/ā€) definieren. WƤhlen Sie keine zu\n"
-"kleine Partition, da sie sonst nicht genug Software installieren kƶnnen.\n"
-"Falls Sie Ihre persƶnlichen Daten auf einer getrennten Partition speichern\n"
-"mƶchten, mĆ¼ssen Sie eine Linux-Partition fĆ¼r ihre persƶnlichen\n"
-"Verzeichnisse (ā€˛/homeā€) definieren (Dies geht natĆ¼rlich nur, wenn Sie mehr\n"
-"als nur eine Linux Partition haben).\n"
-"\n"
-"Alle Partitionen werden folgendermaĆen aufgefĆ¼hrt: ā€˛Nameā€, ā€˛KapazitƤtā€\n"
-"\n"
-"ā€˛Nameā€ ist zusammengesetzt aus: ā€˛Festplattentypā€, ā€˛Festplattennummerā€ und\n"
-"ā€˛Partitionsnummerā€ (etwa, ā€˛hda1ā€ oder ā€˛sdb4ā€).\n"
-"\n"
-"ā€˛Festplattentypā€ ist ā€˛hdā€ falls es sich um einen IDE Platte handelt und\n"
-"ā€˛sdā€ wenn es eine SCSI Platte ist.\n"
-"\n"
-"ā€˛Festplattennummerā€ ist der Buchstabe hinter ā€˛hdā€ oder ā€˛sdā€. Bei IDE\n"
-"Platten bedeutet:\n"
-"\n"
-" * ā€˛aā€ - ā€˛Master Festplatte am primƤren IDE Kontrollerā€,\n"
-"\n"
-" * ā€˛bā€ - ā€˛Slave Festplatte am primƤren IDE Kontrollerā€,\n"
-"\n"
-" * ā€˛cā€ - ā€˛Master Festplatte am sekundƤren IDE Kontrollerā€,\n"
-"\n"
-" * ā€˛dā€ - ā€˛Slave Festplatte am sekundƤren IDE Kontrollerā€,\n"
-"\n"
-"Bei SCSI Platten steht ā€˛aā€ fĆ¼r ā€˛erste Festplatte am Busā€, ā€˛bā€ fĆ¼r ā€˛zweite\n"
-"Festplatte am Busā€, etc."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:72
-msgid ""
-"The Mandrake Linux 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."
-msgstr ""
-"Da die Mandrake Linux-Distribution stetig wƤchst, wurde sie in mehrere\n"
-"CD-ROMs unterteilt. Es kann daher vorkommen, dass ā€˛DrakXā€ Pakete von\n"
-"anderen, als der Installations-CD-ROM installieren will. In diesem Fall\n"
-"wird es die aktuelle CD-ROM auswerfen und nach einer anderen fragen."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:77
-msgid ""
-"It is now time to specify which programs you wish to install on your\n"
-"system. There are thousands of packages available for Mandrake Linux, 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"
-"be asked to specify the CDs you currently have (in Expert mode only). Check\n"
-"the CD labels and highlight the boxes corresponding to the CDs you have\n"
-"available for installation. Click \"OK\" when you are ready to continue.\n"
-"\n"
-"Packages are sorted in groups corresponding to a particular use of your\n"
-"machine. The groups themselves are sorted into four sections:\n"
-"\n"
-" * \"Workstation\": if you plan to use your machine as a workstation, "
-"select\n"
-"one or more of the corresponding groups;\n"
-"\n"
-" * \"Development\": if your machine is to be used for programming, choose\n"
-"the desired group(s);\n"
-"\n"
-" * \"Server\": if your machine is intended to be a server, you will be able\n"
-"to select which of the most common services you wish to install on your\n"
-"machine;\n"
-"\n"
-" * \"Graphical Environment\": finally, this is where you will choose your\n"
-"preferred graphical environment. At least one must be selected if you want\n"
-"to have a graphical workstation!\n"
-"\n"
-"Moving the mouse cursor over a group name will display a short explanatory\n"
-"text about that group. If you deselect all groups when performing a regular\n"
-"installation (by opposition to an upgrade), a dialog will pop up proposing\n"
-"different options for a minimal installation:\n"
-"\n"
-" * \"With X\": install the fewer packages possible to have a working\n"
-"graphical desktop;\n"
-"\n"
-" * \"With basic documentation\": installs the base system plus basic\n"
-"utilities and their documentation. This installation is suitable for\n"
-"setting up a server;\n"
-"\n"
-" * \"Truly minimal install\": will install the strict minimum necessary to\n"
-"get a working Linux system, in command line only. This installation is\n"
-"about 65Mb large.\n"
-"\n"
-"You can check the \"Individual package selection\" box, which is useful if\n"
-"you are familiar with the packages being offered or if you want to have\n"
-"total control over what will be installed.\n"
-"\n"
-"If you started the installation in \"Upgrade\" mode, you can unselect all\n"
-"groups to avoid installing any new package. This is useful for repairing or\n"
-"updating an existing system."
-msgstr ""
-"Nun ist es Zeit sich zu entscheiden, welche Programme Sie auf Ihrem Rechner\n"
-"installieren wollen. Es gibt tausende von Paketen fĆ¼r Mandrake Linux, und\n"
-"Sie mĆ¼ssen sie nicht alle auswendig kennen.\n"
-"\n"
-"Wenn Sie eine klassische CD-ROM-Installation vornehmen, werden Sie zuerst\n"
-"nach den Ihnen zur VerfĆ¼gung stehenden CDs gefragt (nur im Expertenmodus).\n"
-"Markieren Sie die Zeilen anhand der CDs die Sie vorliegen haben und klicken\n"
-"Sie auf die SchaltflƤche ā€˛OKā€.\n"
-"\n"
-"Die Pakete sind nach ihrer Verwendung in Gruppen eingeteilt. Diese Gruppen\n"
-"wiederum enthalten vier Abschnitte:\n"
-"\n"
-" * ā€˛Arbeitsplatzrechnerā€: Falls Ihr Rechner als Arbeitsplatzrechner\n"
-"verwendet werden soll, markieren Sie eine oder mehrere Gruppen.\n"
-"\n"
-" * ā€˛Entwicklungsplattformā€: Falls Sie mit Ihrem Rechner programmieren\n"
-"wollen, sollten Sie diese Gruppe markieren.\n"
-"\n"
-" * ā€˛Serverā€: Wenn Ihre Maschine ein Server werden soll, kƶnnen Sie hier die\n"
-"wichtigsten Dienste auswƤhlen, die auf Ihren Rechner installiert werden\n"
-"sollen.\n"
-"\n"
-" * ā€˛Grafische OberflƤcheā€: WƤhlen Sie hier Ihre bevorzugte grafische\n"
-"ArbeitsoberflƤche. Wenn Sie eine grafische OberflƤche verwenden wollen, so\n"
-"mĆ¼ssen Sie hier zumindest eine Gruppe auswƤhlen.\n"
-"\n"
-"Wenn Sie die Maus Ć¼ber eine Gruppe bewegen, erhalten Sie einen kurzen\n"
-"erklƤrenden Text Ć¼ber die Gruppe. Falls Sie bei einer Installation alle\n"
-"Markierungen entfernen, erscheint ein Dialog, in dem Sie zwischen\n"
-"verschiedenen Minimalinstallationen wƤhlen kƶnnen.\n"
-"\n"
-" * ā€˛Mit Xā€ Installiert eine rudimentƤre grafische OberflƤche;\n"
-"\n"
-" * ā€˛Mit minimaler Dokumentationā€ Installiert das Basissystem zuzĆ¼glich\n"
-"grundlegender Werkzeuge inklusive deren Dokumentation. Dies ist die\n"
-"sinnvollste Wahl fĆ¼r eine Serverinstallation.\n"
-"\n"
-" * ā€˛Extrem minimale Installationā€ Sie erhalten eine komplett ā€˛nackteā€\n"
-"Linux-Distribution (speziell auch ohne urpmi!). Es versteht sich von\n"
-"selbst, dass das nur eine Kommandozeileninstallation sein kann.\n"
-"\n"
-"Wenn Sie die SchaltflƤche ā€˛Fortgeschrittenā€ anwƤhlen, erhalten Sie die\n"
-"Mƶglichkeit, eine ā€˛Individuelle Paketauswahlā€ durchzufĆ¼hren. Das macht nur\n"
-"Sinn, wenn Sie die Pakete genau kennen oder wenn Sie volle Kontrolle\n"
-"darĆ¼ber haben wollen, was installiert werden soll.\n"
-"\n"
-"Haben Sie die Installation als ā€˛Aktualisierungā€ gestartet, kƶnnen Sie die\n"
-"Markierungen aller Gruppen entfernen, um die Installation neuer Pakete zu\n"
-"vermeiden. Hierdurch werden nur bereits installierte Pakete aktualisiert\n"
-"oder repariert."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:128
-msgid ""
-"Finally, depending on whether or not you selected individual packages, you\n"
-"will be presented a tree containing all packages classified by groups and\n"
-"subgroups. While browsing the tree, you can select entire groups,\n"
-"subgroups, or individual packages.\n"
-"\n"
-"Whenever you select a package on the tree, a description appears on the\n"
-"right. When your selection is finished, click the \"Install\" button which\n"
-"will then launch the installation process. Depending on the speed of your\n"
-"hardware and the number of packages that need to be installed, it may take\n"
-"a while to complete the process. An estimate of the time it will take to\n"
-"install everything is displayed on the screen, to help you gauge if there\n"
-"is sufficient time to enjoy a cup of coffee.\n"
-"\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 Mandrake Linux, 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 Mandrake Linux 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"
-"default. !!\n"
-"\n"
-"The \"Automatic dependencies\" option simply disables the warning dialog\n"
-"which appears whenever the installer automatically selects a package. This\n"
-"occurs because it has determined that it needs to satisfy a dependency with\n"
-"another package in order to successfully complete the installation.\n"
-"\n"
-"The tiny floppy disk icon at the bottom of the list allows to load the\n"
-"package list chosen during a previous installation. Clicking on this icon\n"
-"will ask you to insert a floppy disk previously created at the end of\n"
-"another installation. See the second tip of last step on how to create such\n"
-"a floppy."
-msgstr ""
-"Schlussendlich erhalten Sie (falls Sie sich fĆ¼r ā€˛Individuelle Paketauswahlā€\n"
-"entschieden haben) eine Baumliste aller Pakete die zu den von Ihnen\n"
-"gewĆ¼nschten Gruppen gehƶren. Diese Pakete sind nach Gruppen und\n"
-"Untergruppen klassifiziert. Beim Durchstƶbern des Baums, kƶnnen Sie\n"
-"Gruppen, Untergruppen oder einzelne Pakete markieren oder deren Markierung\n"
-"entfernen.\n"
-"\n"
-"Sobald Sie ein Paket auswƤhlen, erscheint rechts eine kurze Beschreibung.\n"
-"Sobald Sie die Auswahl abgeschlossen haben, bestƤtigen Sie das durch\n"
-"DrĆ¼cken der SchaltflƤche ā€˛Installationā€. Nun beginnt die eigentliche\n"
-"Installation. Falls Sie eine Vielzahl von Paketen installieren wollen,\n"
-"kƶnnen Sie nun getrost einen Kaffee trinken gehen.\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 Mandrake Linux werden installierte Server und Dienste automatisch\n"
-"beim 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 ā€˛Neinā€. Falls Sie\n"
-"mit ā€˛Jaā€ antworten, werden die Dienste und Server installiert und stehen\n"
-"Ihnen nach der Installation standardmƤĆig zur VerfĆ¼gung. !!\n"
-"\n"
-"Die Option ā€˛Automatische AbhƤngigkeitenā€ unterdrĆ¼ckt nur die Warnungen, die\n"
-"erscheinen, wenn das Installationsprogramm Pakete automatisch markiert, um\n"
-"PaketabhƤngigkeiten aufzulƶsen, wenn Sie ein Paket auswƤhlen.\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"
-"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"
-"Installationsschrittes."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:164
-msgid ""
-"You are now proposed to set up your Internet/network connection. If you\n"
-"wish to connect your computer to the Internet or to a local network, click\n"
-"\"OK\". The autodetection of network devices and modem will be launched. If\n"
-"this detection fails, uncheck the \"Use auto detection\" box next time. You\n"
-"may also choose not to configure the network, or do it later; in that case,\n"
-"simply click the \"Cancel\" button.\n"
-"\n"
-"Available connections are: traditional modem, ISDN modem, ADSL connection,\n"
-"cable modem, and finally a simple LAN connection (Ethernet).\n"
-"\n"
-"Here, we will not detail each configuration. Simply make sure that you have\n"
-"all the parameters from your Internet Service Provider or system\n"
-"administrator.\n"
-"\n"
-"You can consult the ``User Guide'' chapter about Internet connections for\n"
-"details about the configuration, or simply wait until your system is\n"
-"installed and use the program described there to configure your connection.\n"
-"\n"
-"If you wish to configure the network later after installation, or if you\n"
-"are finished configuring your network connection, click \"Cancel\"."
-msgstr ""
-"Wenn Sie Ihren Computer mit dem Internet oder mit einem lokalen Netzwerk\n"
-"verbinden wollen, dann wƤhlen Sie bitte die entsprechende Option aus. Bitte\n"
-"schalten Sie jedoch zuvor, falls nƶtig, die dafĆ¼r benƶtigten GerƤte ein,\n"
-"damit ā€˛DrakXā€ sie automatisch erkennen kann.\n"
-"\n"
-"Mandrake Linux bietet Ihnen die Mƶglichkeit, Ihre Internet-Verbindung\n"
-"bereits wƤhrend der Installation zu konfigurieren. Zur Auswahl stehen\n"
-"folgende Verbindungsarten: Herkƶmmliches Modem, ISDN Modem, ADSL\n"
-"Verbindung, Kabelmodem oder eine einfache LAN Verbindung (Ethernet).\n"
-"\n"
-"Wir wollen hier nicht weiter ins Detail gehen, nur soviel: Stellen Sie\n"
-"sicher, dass sie die nƶtigen Parameter von Ihrem Internet Provider oder\n"
-"Systemadministrator erhalten haben.\n"
-"\n"
-"Weitere Einzelheiten, die hier bereits hilfreich sein kƶnnen, erhalten Sie\n"
-"im Kapitel DrakNet. Falls Sie unsicher sind, warten Sie ab, bis die\n"
-"Installation beendet ist und verwenden Sie danach das beschriebene\n"
-"Programm, um Ihre Verbindung einzurichten.\n"
-"\n"
-"Wenn Sie Ihr Netzwerk erst nach Abschluss der Installation einrichten\n"
-"wollen oder sobald Sie die Konfiguration beendet haben, klicken Sie auf\n"
-"ā€˛Abbrechenā€."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:186
-msgid ""
-"You may now choose which services you wish to start at boot time.\n"
-"\n"
-"Here are presented all the services available with the current\n"
-"installation. Review them carefully and uncheck those which are not always\n"
-"needed at boot time.\n"
-"\n"
-"You can get a short explanatory text about a service by selecting a\n"
-"specific service. However, if you are not sure whether a service is useful\n"
-"or not, 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 will probably not want to start any services which you do not\n"
-"need. Please remember that several services can be dangerous if they are\n"
-"enabled on a server. In general, select only the services you really need.\n"
-"!!"
-msgstr ""
-"Als nƤchstes kƶnnen Sie die Dienste auswƤhlen, die wƤhrend des\n"
-"Betriebssystemstarts aktiviert werden sollen.\n"
-"\n"
-"Hier werden alle Dienste, die nach der aktuellen Installation zum BS-Start\n"
-"zur VerfĆ¼gung stehen, angezeigt. Lesen Sie diese Liste sorgfƤltig durch und\n"
-"markieren Sie nur die Dienste, die Sie immer ab dem BS-Start zur VerfĆ¼gung\n"
-"haben wollen.\n"
-"\n"
-"Wenn Sie einen Dienst anwƤhlen, erhalten Sie eine kurze ErklƤrung dazu.\n"
-"Wenn Sie nicht sicher sind, ob ein Dienst bzw. Server sinnvoll ist oder\n"
-"nicht, verƤndern Sie am Besten die voreingestellten Markierungen nicht.\n"
-"\n"
-"!! Sollten Sie Ihren Rechner als Server verwenden wollen, so mĆ¼ssen Sie an\n"
-"dieser Stelle besonders vorsichtig sein: wƤhlen Sie alle Dienste ab, die\n"
-"Sie nicht benƶtigen. Denken Sie daran, dass etliche Dienste eine\n"
-"potentielle Einbruchstelle in das System von auĆen darstellen, wenn diese\n"
-"im Serverbetrieb laufen. Also, nur die Dienste einschalten, die Sie\n"
-"wirklich brauchen! !!"
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:203
-msgid ""
-"GNU/Linux manages time in GMT (Greenwich Mean Time) and translates it in\n"
-"local time according to the time zone you selected. It is however possible\n"
-"to deactivate this by deselecting \"Hardware clock set to GMT\" so that the\n"
-"hardware clock is the same as the system clock. This is useful when the\n"
-"machine is hosting another operating system like Windows.\n"
-"\n"
-"The \"Automatic time synchronization\" option will automatically regulate\n"
-"the clock by connecting to a remote time server on the Internet. In the\n"
-"list that is presented, choose a server located near you. Of course you\n"
-"must have a working Internet connection for this feature to work. It will\n"
-"actually install on your machine a time server which can be optionally used\n"
-"by other machines on your local network."
-msgstr ""
-"GNU/Linux arbeitet mit GMT (Greenwich Mean Time) und Ć¼bersetzt diese anhand\n"
-"der Zeitzone in Ihre lokale Zeit.\n"
-"\n"
-"Da MicrosoftWindows(TM) nicht sinnvoll mit GMT umgehen kann, mĆ¼ssen Sie\n"
-"ā€˛Neinā€ wƤhlen, falls Sie auch ein Betriebssystem aus dem Hause Microsoft\n"
-"auf Ihrem Rechner ā€˛beherbergenā€\n"
-"\n"
-"Die Verwendung der Option ā€˛Automatische Zeit-Synchronisationā€ reguliert\n"
-"Ihre Uhr, indem sie Verbindung mit einem Zeitserver im Internet aufnimmt.\n"
-"WƤhlen Sie aus der Liste einen Server in Ihrer NƤhe. Damit die funktioniert\n"
-"benƶtigen Sie eine stƤndige Internetverbindung."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:217
-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 Mandrake Linux rely. In this section, DrakX\n"
-"will try to configure X automatically.\n"
-"\n"
-"It is extremely rare for it to fail, unless the hardware is very old (or\n"
-"very new). If it succeeds, it will start X automatically with the best\n"
-"resolution possible, depending on the size of the monitor. A window will\n"
-"then appear and ask you if you can see it.\n"
-"\n"
-"If you are doing an \"Expert\" installation, you will enter the X\n"
-"configuration wizard. See the corresponding section of the manual for more\n"
-"information about this wizard.\n"
-"\n"
-"If you can see the message during the test, and answer \"Yes\", then DrakX\n"
-"will proceed to the next step. If you cannot see the message, it simply\n"
-"means that the configuration was wrong and the test will automatically end\n"
-"after 10 seconds, restoring the screen."
-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 Mandrake Linux Ihnen anbietet (wie etwa KDE, GNOME,\n"
-"AfterStep oder WindowMaker). Auch hier wird ā€˛DrakXā€ die Konfiguration\n"
-"soweit wie mƶglich selbststƤndig vollziehen.\n"
-"\n"
-"Sollten Sie nicht gerade sehr alte, sehr neue oder exotische Grafikhardware\n"
-"einsetzen, wird ā€˛DrakXā€ die Konfiguration erfolgreich durchfĆ¼hren und\n"
-"anschlieĆend die grafische OberflƤche mit der bestmƶglichen Auflƶsung\n"
-"starten! Es erscheint ein Testfenster und Sie werden anschlieĆend gefragt,\n"
-"ob die Anzeige einwandfrei war.\n"
-"\n"
-"Falls Sie eine ā€˛Experteā€n-Installation vornehmen, werden Sie in den\n"
-"folgenden Schritten von dem ā€˛DrakXā€-Konfigurationsassistenten begleitet.\n"
-"\n"
-"Falls das Bild korrekt dargestellt wird, wƤhlen Sie bitte die SchaltflƤche\n"
-"ā€˛Jaā€ an, ā€˛DrakXā€ wird dann mit dem nƤchsten Schritt der Installation\n"
-"fortfahren. Sollte der Schirm aus irgendwelchen GrĆ¼nden nicht lesbar sein,\n"
-"mĆ¼ssen Sie nur 10 Sekunden warten. AnschlieĆend sollte wieder das\n"
-"KonfigurationsmenĆ¼ erscheinen."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:237
-msgid ""
-"The first time you try the X configuration, you may not be very satisfied\n"
-"with its display (screen is too small, shifted left or right...). Hence,\n"
-"even if X starts up correctly, DrakX then asks you if the configuration\n"
-"suits you. It will also propose to change it by displaying a list of valid\n"
-"modes it could find, asking you to select one.\n"
-"\n"
-"As a last resort, if you still cannot get X to work, choose \"Change\n"
-"graphics card\", select \"Unlisted card\", and when prompted on which\n"
-"server, choose \"FBDev\". This is a failsafe option which works with any\n"
-"modern graphics card. Then choose \"Test again\" to be sure."
-msgstr ""
-"Es kann Ihnen passieren, dass der erste Versuch noch nicht korrekt ist (Der\n"
-"Schirm ist zu klein, liegt zu weit rechts oder links...). Daher werden Sie\n"
-"selbst dann mit der Frage konfrontiert, wenn der ā€˛DrakXā€-Server sich\n"
-"starten lies, ā€˛DrakXā€ also davon ausgehen kƶnnte, dass alles in Ordnung\n"
-"ist. Sie erhalten daher eine Liste von gĆ¼ltigen Modi, aus denen Sie\n"
-"versuchen sollten den besten auszuwƤhlen.\n"
-"\n"
-"Sollten alle stricke reiĆen, und ā€˛DrakXā€ immer noch nicht laufen, wƤhlen\n"
-"Sie einfach im UntermenĆ¼ ā€˛Grafikkarte Ƥndernā€, den Punkt ā€˛Nicht\n"
-"aufgefĆ¼hrtā€. Wenn Sie dann nach dem Server gefragt werden, wƤhlen Sie den\n"
-"ā€˛FBDevā€: Diese Variante sollte mit allen modernen Grafikkarten\n"
-"funktionieren. Ein ā€˛Nochmals testenā€ sollte Gewissheit bringen."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:249
-msgid ""
-"Finally, you will be asked whether you want to see the graphical interface\n"
-"at boot. Note this question will be asked even if you chose not to test the\n"
-"configuration. Obviously, you want to answer \"No\" if your machine is to\n"
-"act as a server, or if you were not successful in getting the display\n"
-"configured."
-msgstr ""
-"Letztlich werden Sie gefragt, ob sie direkt in die grafische OberflƤche\n"
-"starten wollen. Diese Frage wird auch erscheinen, wenn Sie das Testen der\n"
-"Konfiguration Ć¼bersprungen haben. Schlug die Konfiguration der grafischen\n"
-"Umgebung fehl oder wollen Sie den Rechner als Server laufen lassen, geben\n"
-"Sie natĆ¼rlich ā€˛Neinā€ an."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:256
-msgid ""
-"The Mandrake LinuxCD-ROM has a built-in rescue mode. You can access it by\n"
-"booting from the CD-ROM, press the >>F1<< key at boot and type >>rescue<<\n"
-"at the prompt. But in case your computer cannot boot from the CD-ROM, you\n"
-"should come back to this step for help in at least two situations:\n"
-"\n"
-" * when installing the bootloader, DrakX will rewrite the boot sector (MBR)\n"
-"of your main disk (unless you are using another boot manager), to allow you\n"
-"to start up with either Windows or GNU/Linux (assuming you have Windows in\n"
-"your system). If you need to reinstall Windows, the Microsoft install\n"
-"process will rewrite the boot sector, and then you will not be able to\n"
-"start GNU/Linux!\n"
-"\n"
-" * if a problem arises and you cannot start up GNU/Linux from the hard "
-"disk,\n"
-"this floppy disk will be the only means of starting up GNU/Linux. It\n"
-"contains a fair number of system tools for restoring a system, which has\n"
-"crashed due to a power failure, an unfortunate typing error, a typo in a\n"
-"password, or any other reason.\n"
-"\n"
-"When you click on this step, you will be asked to enter a disk inside the\n"
-"drive. The floppy disk you will insert must be empty or contain data which\n"
-"you do not need. You will not have to format it since DrakX will rewrite\n"
-"the whole disk."
-msgstr ""
-"Die Mandrake LinuxCD-ROM hat einen eingebauten Rettungsmodus. Sie erreichen\n"
-"ihn durch Starten von CD-ROM, und DrĆ¼cken von Ā»F1Ā« bei Bootbeginn. Geben\n"
-"Sie dann Ā»rescueĀ« an der Eingabeaufforderung ein. Falls Ihr Rechner nicht\n"
-"von CD-ROM starten kann, sollten Sie diesen Punkt unbedingt aus zwei\n"
-"GrĆ¼nden abarbeiten:\n"
-"\n"
-" * Wenn ā€˛DrakXā€ den Betriebssystemstarter installiert, schreibt es den\n"
-"Boot-Sektor (MBR) Ihrer primƤren Festplatte neu (auĆer Sie wollen einen\n"
-"anderen Betriebssystemstarter verwenden), damit Sie die verschiedenen,\n"
-"vorhandenen Betriebssysteme starten kƶnnen (etwa Windows und GNU/Linux).\n"
-"Sollten Sie etwa Windows neu installieren, wird dieses - ohne Sie zu fragen\n"
-"- Ihren Boot-Sektor Ć¼berschreiben. Somit werden Sie Ihr GNU/Linux nicht\n"
-"mehr starten kƶnnen! Mit einer Startdiskette kƶnnen Sie Ihr\n"
-"GNU/Linux-System dann trotzdem hochfahren und diese Ć„nderungen rĆ¼ckgƤngig\n"
-"machen.\n"
-"\n"
-" * Sollten Ihnen andere schwerwiegende Systemfehler das Starten von\n"
-"GNU/Linux von der Festplatte unmƶglich machen, ist diese Startdiskette so\n"
-"ziemlich die einzige Mƶglichkeit, auf Ihr System zuzugreifen. Zudem enthƤlt\n"
-"sie eine Anzahl von Systemprogrammen, die Ihnen bei der Behebung von\n"
-"Systemfehlern (nach einem Stromausfall, einen unglĆ¼cklichen Tippfehler in\n"
-"einem Passwort, etc.) helfen werden.\n"
-"\n"
-"Wenn Sie diesen Schritt anwƤhlen, wird ā€˛DrakXā€ Sie bitten, eine Diskette in\n"
-"ein Laufwerk zu legen. Die Diskette sollte natĆ¼rlich leer sein (zumindest\n"
-"keine relevanten Daten enthalten). Sie muss nicht formatiert sein, ā€˛DrakXā€\n"
-"kĆ¼mmert sich um alles."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:280
-msgid ""
-"At this point, you need to choose where you want to install the Mandrake\n"
-"Linux operating system on your hard drive. If your hard drive is empty or\n"
-"if an existing operating system is using all the available space, you will\n"
-"need to partition it. Basically, partitioning a hard drive consists of\n"
-"logically dividing it to create space to install your new Mandrake Linux\n"
-"system.\n"
-"\n"
-"Because the partitioning process' effects are usually irreversible,\n"
-"partitioning can be intimidating and stressful if you are an inexperienced\n"
-"user. Fortunately, there is a wizard which simplifies this process. Before\n"
-"beginning, please consult the manual and take your time.\n"
-"\n"
-"If you are running the installation in Expert mode, you will enter\n"
-"DiskDrake, the Mandrake Linux partitioning tool, which allows you to\n"
-"fine-tune your partitions. See the DiskDrake section in the ``User Guide''.\n"
-"From the installation interface, you can use the wizards as described here\n"
-"by clicking the dialog's \"Wizard\" button.\n"
-"\n"
-"If partitions have already been defined, either from a previous\n"
-"installation or from another partitioning tool, simply select those to\n"
-"install your Linux system.\n"
-"\n"
-"If partitions are not defined, you will need to create them using the\n"
-"wizard. Depending on your hard drive configuration, several options are\n"
-"available:\n"
-"\n"
-" * \"Use free space\": this option will simply lead to an automatic\n"
-"partitioning of your blank drive(s). You will not be prompted further;\n"
-"\n"
-" * \"Use existing partition\": the wizard has detected one or more existing\n"
-"Linux partitions on your hard drive. If you want to use them, choose this\n"
-"option;\n"
-"\n"
-" * \"Use the free space on the Windows; partition\": if MicrosoftWindows is\n"
-"installed on your hard drive and takes all the space available on it, you\n"
-"have to create free space for Linux data. To do so, you can delete your\n"
-"MicrosoftWindows partition and data (see ``Erase entire disk'' or ``Expert\n"
-"mode'' solutions) or resize your MicrosoftWindows partition. Resizing can\n"
-"be performed without the loss of any data, provided you previously\n"
-"defragment the Windows partition. Backing up your data won't hurt either..\n"
-"This solution is recommended if you want to use both Mandrake Linux and\n"
-"MicrosoftWindows on the same computer.\n"
-"\n"
-" Before choosing this option, please understand that after this "
-"procedure,\n"
-"the size of your MicrosoftWindows partition will be smaller than at the\n"
-"present time. You will have less free space under MicrosoftWindows to store\n"
-"your data or to install new software;\n"
-"\n"
-" * \"Erase entire disk\": if you want to delete all data and all partitions\n"
-"present on your hard drive and replace them with your new Mandrake Linux\n"
-"system, choose this option. Be careful with this solution because you will\n"
-"not be able to revert your choice after you confirm;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Remove Windows\": this will simply erase everything on the drive and\n"
-"begin fresh, partitioning everything from scratch. All data on your disk\n"
-"will be lost;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Expert mode\": choose this option if you want to manually partition\n"
-"your hard drive. Be careful it is a powerful but dangerous choice. You can\n"
-"very easily lose all your data. Hence, do not choose this unless you know\n"
-"what you are doing."
-msgstr ""
-"Sie mĆ¼ssen nun entscheiden, wo auf Ihrer/n Festplatte(n) Ihr Mandrake Linux\n"
-"System installiert werden soll. Sofern alles leer ist bzw. ein\n"
-"Betriebssystem alles belegt, mĆ¼ssen die Platte(n) neu partitioniert werden.\n"
-"Prinzipiell besteht das Partitionieren der Platte(n) darin, den\n"
-"Plattenplatz so aufzuteilen, dass Ihr Mandrake Linux darauf installiert\n"
-"werden kann.\n"
-"\n"
-"Da dieser Schritt normalerweise irreversibel ist, kann das Partitionieren\n"
-"fĆ¼r unerfahrene Anwender unangenehm und stressig sein. Dieser Assistent\n"
-"kann Ihnen diesen Schritt abnehmen. Lesen Sie dennoch vor Beginn im\n"
-"Handbuch die entsprechenden Passagen und lassen Sie sich Zeit mit der\n"
-"Entscheidung.\n"
-"\n"
-"Wenn Sie die Installation im Expertenmodus durchfĆ¼hren, werden Sie nun das\n"
-"Mandrake Linux Partitionier-Werkzeug kennen lernen: ā€˛DiskDrakeā€. Es erlaubt\n"
-"Ihnen Ihre Partitionen genau auf Ihre BedĆ¼rfnisse abzustimmen. Falls Sie\n"
-"keine Ahnung haben, wie Sie die Festplatte partitionieren sollen, wƤhlen\n"
-"Sie die SchaltflƤche ā€˛Assistentā€ und Ć¼berlassen diesem damit die gesamte\n"
-"Arbeit.\n"
-"\n"
-"Sollten Sie bereits Partitionen haben (etwa von einer alten GNU/Linux\n"
-"Installation oder solche, die mit einem anderen Partitionierungswerkzeug\n"
-"erstellt wurden), die Sie fĆ¼r die Installation von Mandrake Linux verwenden\n"
-"wollen, wƤhlen Sie diese hier einfach aus.\n"
-"\n"
-"Falls noch keine Partitionen existieren, mĆ¼ssen Sie sie erstellen.\n"
-"Verwenden Sie dafĆ¼r obigen Assistenten. AbhƤngig vom aktuellen Zustand\n"
-"Ihrer Platte(n) haben Sie verschiedene Alternativen:\n"
-"\n"
-" * ā€˛Freien Platz verwendenā€: Dies fĆ¼hrt einfach dazu, dass Ihre leere(n)\n"
-"Festplatte(n) automatisch partitioniert werden; Sie mĆ¼ssen sich also um\n"
-"nichts weiter kĆ¼mmern.(*)\n"
-"\n"
-" * ā€˛Verwende existierendeā€: Der Assistent hat eine oder mehrere "
-"existierende\n"
-"Linux Partitionen auf Ihrer Platte gefunden. WƤhlen Sie diese SchaltflƤche,\n"
-"falls Sie sie behalten wollen.\n"
-"\n"
-" * ā€˛Komplette Platte lƶschenā€: Falls Sie alle Daten Ihrer Platte verlieren,\n"
-"und sie durch Ihr neues Mandrake Linux System ersetzen wollen, wƤhlen Sie\n"
-"diese SchaltflƤche. Beachten Sie, dass dieser Schritt nicht rĆ¼ckgƤngig\n"
-"gemacht werden kann.\n"
-"\n"
-" * ā€˛Freien Platz der Windows Partition verwendenā€: Falls der gesamte\n"
-"Plattenplatz aktuell fĆ¼r MicrosoftWindows(TM) verschwendet ist, mĆ¼ssen Sie\n"
-"fĆ¼r Linux Platz schaffen. Um dies zu erreichen, kƶnnen Sie entweder Ihre\n"
-"MicrosoftWindows(TM) Partition(en) samt Daten lƶschen (siehe ā€˛Komplette\n"
-"Platte lƶschenā€ oder ā€˛Experten-Modusā€) oder Ihre Windows Partition\n"
-"verkleinern. Letzteres geht ohne Datenverlust. Sie sollten diese Variante\n"
-"wƤhlen, falls Sie beide Betriebssysteme (Windows und Mandrake Linux)\n"
-"nebeneinander nutzen wollen.\n"
-"\n"
-" Bevor Sie sich fĆ¼r diese Variante entscheiden, sei hier noch einmal "
-"betont,\n"
-"dass das bedeutet, Sie haben weniger Platz fĆ¼r Windows als momentan.\n"
-"\n"
-" * ā€˛Windows(TM) lƶschenā€: Bei dieser Variante werden alle Windows\n"
-"Partitionen gelƶscht und die Platte(n) komplett neu partitioniert.\n"
-"\n"
-" !! Alle Daten auf den Platten gehen dadurch verloren! !!\n"
-"\n"
-" * ā€˛Expertenmodusā€: Wenn Sie Ihre Festplatte selber von Hand partitionieren\n"
-"wollen, dann kƶnnen Sie diese Option wƤhlen. Seien Sie bitte sehr\n"
-"sorgfƤltig, wenn Sie diese Lƶsung wƤhlen, da Sie zwar alle mƶglichen\n"
-"Einstellungen vornehmen, aber gleichzeitig auch sehr leicht Daten verlieren\n"
-"kƶnnen. Diese Option ist nur geeignet, wenn Sie wissen, was Sie tun.\n"
-"\n"
-"(*) In Deutschland ist es quasi unmƶglich, Komplettrechner mit leeren\n"
-"Festplatten zu erhalten, da laut Gesetz nur Rechner mit BS verkauft werden\n"
-"dĆ¼rfen. Diese Regelung stammt noch aus der Zeit, als Politiker nur\n"
-"proprietƤre kommerzielle BSe kannten und sich nicht vorstellen konnten,\n"
-"dass es freie und sogar kostenlose Alternativen gibt. Jeder KƤufer eines\n"
-"Komplettrechners ohne BS wurde quasi mit einem Raubkopierer von Produkten\n"
-"aus Redmond gleichgesetzt."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:347
-msgid ""
-"There you are. Installation is now complete and your GNU/Linux system is\n"
-"ready to use. Just click \"OK\" to reboot the system. You can start\n"
-"GNU/Linux or Windows, whichever you prefer (if you are dual-booting), as\n"
-"soon as the computer has booted up again.\n"
-"\n"
-"The \"Advanced\" button (in Expert mode only) shows two more buttons to:\n"
-"\n"
-" * \"generate auto-install floppy\": to create an installation floppy disk\n"
-"which will automatically perform a whole installation without the help of\n"
-"an operator, similar to the installation you just configured.\n"
-"\n"
-" Note that two different options are available after clicking the button:\n"
-"\n"
-" * \"Replay\". This is a partially automated installation as the\n"
-"partitioning step (and only this one) remains interactive;\n"
-"\n"
-" * \"Automated\". Fully automated installation: the hard disk is "
-"completely\n"
-"rewritten, all data is lost.\n"
-"\n"
-" This feature is very handy when installing a great number of similar\n"
-"machines. See the Auto install section on our web site;\n"
-"\n"
-" * \"Save packages selection\"(*): saves the package selection as done\n"
-"previously. Then, when doing another installation, insert the floppy inside\n"
-"the drive and run the installation going to the help screen by pressing on\n"
-"the [F1] key, and by issuing >>linux defcfg=\"floppy\"<<.\n"
-"\n"
-"(*) You need a FAT-formatted floppy (to create one under GNU/Linux, type\n"
-"\"mformat a:\")"
-msgstr ""
-"Nun ist es soweit, die Installation ist abgeschlossen und Ihr neues\n"
-"Betriebssystem sollte einsatzbereit sein. Bei einem Neustart kƶnnen Sie\n"
-"zwischen den auf Ihrer Platte installierten Betriebssystemen auswƤhlen.\n"
-"Klicken Sie nur noch auf ā€˛OKā€ und das System wird neu gestartet.\n"
-"\n"
-"Die SchaltflƤche ā€˛Fortgeschrittenā€ liefert zwei weitere SchaltflƤchen:\n"
-"\n"
-" * ā€˛Erstellen einer Auto-Installationsdisketteā€: Hiermit kƶnnen Sie eine\n"
-"Installationsdiskette erstellen, mit deren Hilfe Sie eine identische\n"
-"automatische Installation ohne Interaktion eines Administrators\n"
-"durchzufĆ¼hren kƶnnen.\n"
-"\n"
-" Es gibt zwei verschiedene Alternativen, nachdem Sie diese SchaltflƤche\n"
-"aktiviert haben:\n"
-"\n"
-" * ā€˛Erneut abspielenā€: Diese Installation ist nur teilweise automatisch, "
-"da\n"
-"der Partitionierungsschritt (aber nur dieser!) immer noch interaktiv\n"
-"vonstatten geht.\n"
-"\n"
-" * ā€˛Automatisiertā€: Vollautomatische Installation: Die Festplatte wird\n"
-"vollstƤndig reorganisiert. Alle darauf vorhandenen Daten gehen verloren!\n"
-"\n"
-" Diese Funktion ist besonders nĆ¼tzlich, wenn man eine Menge von "
-"identischer\n"
-"Rechner einrichten will. Weitere Informationen erhalten Sie auch auf der\n"
-"Seite Auto install\n"
-"\n"
-" * ā€˛Paketauswahl speichernā€: (*) Sie speichern damit die Paketauswahl, die\n"
-"Sie vorher getroffen haben. Wenn Sie spƤter eine erneute Installation\n"
-"vornehmen wollen, legen Sie einfach die Diskette ins Laufwerk und starten\n"
-"Sie die Installation mittels [F1] an der ersten Eingabeaufforderung. Geben\n"
-"Sie dann Ā»linux defcfg=\"floppy\"Ā« ein.\n"
-"\n"
-"(*) Sie benƶtigen eine FAT formatierte Diskette (Mittels ā€˛mformat a:ā€\n"
-"kƶnnen Sie unter GNU/Linux eine solche erstellen)."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:378
-msgid ""
-"Any partitions that have been newly defined must be formatted for use\n"
-"(formatting means creating a filesystem).\n"
-"\n"
-"At this time, you may wish to reformat some already existing partitions to\n"
-"erase any data they contain. If you wish to do that, please select those\n"
-"partitions as well.\n"
-"\n"
-"Please note that it is 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\n"
-"reformat partitions containing data that you wish to keep (typically\n"
-"\"/home\").\n"
-"\n"
-"Please be careful when selecting partitions. After formatting, all data on\n"
-"the selected partitions will be deleted and you will not be able to recover\n"
-"any of it.\n"
-"\n"
-"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"
-"Mandrake Linux operating system installation.\n"
-"\n"
-"Click on \"Advanced\" if you wish to select partitions that will be checked\n"
-"for bad blocks on the disk."
-msgstr ""
-"Alle neu angelegten Partitionen mĆ¼ssen formatiert (= ein Dateisystem darauf\n"
-"erzeugt) werden, bevor Sie sie verwenden kƶnnen.\n"
-"\n"
-"Mƶglicherweise wollen Sie auch einige bereits existierende Partitionen\n"
-"formatieren, um alle darauf vorhandenen Daten zu lƶschen. Falls ja,\n"
-"markieren Sie diese ebenfalls.\n"
-"\n"
-"Es sei angemerkt, dass bereits existierende Partitionen nicht erneut\n"
-"formatiert werden mĆ¼ssen. Sie sollten Partitionen, die Teile des\n"
-"Betriebssystems enthalten neu formatieren (etwa ā€˛/ā€, ā€˛/usrā€ oder ā€˛/varā€),\n"
-"Partitionen mit Ihren privaten Daten (normalerweise ā€˛/homeā€) sollten Sie\n"
-"jedoch nicht neu formatieren.\n"
-"\n"
-"Seien Sie in diesem Schritt sehr sorgfƤltig. Nach dem Formatieren einer\n"
-"Partition ist der komplette Inhalt unwiederbringlich gelƶscht!\n"
-"\n"
-"WƤhlen Sie ā€˛OKā€, sobald Sie bereit sind die Partitionen zu formatieren.\n"
-"\n"
-"WƤhlen Sie ā€˛Abbruchā€, falls Sie andere Partitionen verwenden wollen, um Ihr\n"
-"Mandrake Linux darauf zu installieren.\n"
-"\n"
-"WƤhlen Sie ā€˛Fortgeschrittenā€, um die Mƶglichkeit zu erhalten, Partitionen\n"
-"anzugeben, die auf defekte Blƶcke untersucht werden sollen."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:404
-msgid ""
-"Your new Mandrake Linux operating system is currently being installed.\n"
-"Depending on the number of packages you will be installing and the speed of\n"
-"your computer, this operation could take from a few minutes to a\n"
-"significant amount of time.\n"
-"\n"
-"Please be patient."
-msgstr ""
-"Ihre neue Mandrake Linux Distribution wird nun installiert. Das dauert\n"
-"einige Minuten (abhƤngig von der Anzahl zu installierender Pakete und der\n"
-"Geschwindigkeit Ihres Rechners).\n"
-"\n"
-"Bitte haben Sie etwas Geduld."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:412
-msgid ""
-"At the time you are installing Mandrake Linux, it is likely that some\n"
-"packages have been updated since the initial release. Some bugs may have\n"
-"been fixed, and security issues solved. To allow you to benefit from these\n"
-"updates, you are now proposed to download them from the Internet. Choose\n"
-"\"Yes\" if you have a working Internet connection, or \"No\" if you prefer\n"
-"to install updated packages later.\n"
-"\n"
-"Choosing \"Yes\" displays a list of places from which updates can be\n"
-"retrieved. Choose the one nearest you. Then a package-selection tree\n"
-"appears: review the selection, and press \"Install\" to retrieve and\n"
-"install the selected package(s), or \"Cancel\" to abort."
-msgstr ""
-"Es ist sehr wahrscheinlich, dass zum Zeitpunkt Ihrer Mandrake 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 ā€˛Jaā€, wenn Sie einen\n"
-"Internetzugang haben, um die Pakete zu installieren, andernfalls betƤtigen\n"
-"Sie die SchaltflƤche ā€˛Neinā€. Sie kƶnnen diese Pakete natĆ¼rlich auch\n"
-"jederzeit nach der Installation noch installieren.\n"
-"\n"
-"BetƤtigen der SchaltflƤche ā€˛Jaā€ 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 ā€˛Installierenā€.\n"
-"Die Pakete werden nun angefordert und installiert. Sollten Sie das nicht\n"
-"wĆ¼nschen, betƤtigen Sie einfach die SchaltflƤche ā€˛Abbruchā€."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:425
-msgid ""
-"Before continuing, you should read carefully the terms of the license. It\n"
-"covers the whole Mandrake Linux 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."
-msgstr ""
-"Lesen Sie bitte aufmerksam die die Lizenz, bevor Sie fortfahren. Sie\n"
-"umfasst die gesamte Mandrake Linux Distribution. Sollten Sie nicht in allen\n"
-"Punkten zustimmen, betƤtigen Sie bitte die SchaltflƤche ā€˛ZurĆ¼ckweisenā€, um\n"
-"die Installation abzubrechen. Um mit der Installation fortzufahren\n"
-"betƤtigen Sie die SchaltflƤche ā€˛Akzeptierenā€."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:432
-msgid ""
-"At this point, it is time to choose the security level desired for the\n"
-"machine. As a rule of thumb, the more exposed the machine is, and the more\n"
-"the data stored in it is crucial, the higher the security level should be.\n"
-"However, a higher security level is generally obtained at the expense of\n"
-"easiness of use. Refer to the \"msec\" chapter of the ``Reference Manual''\n"
-"to get more information about the meaning of these levels.\n"
-"\n"
-"If you do not know what to choose, keep the default option."
-msgstr ""
-"Nun ist es an der Zeit, die gewĆ¼nschte Sicherheitsebene fĆ¼r Ihr System\n"
-"festzulegen. Als Faustregel sollte hier dienen: Je zugƤnglicher die\n"
-"Maschine ist und je kritischer die auf ihr gesicherten Daten sind, desto\n"
-"hƶher sollte die Sicherheitsebene sein. Andererseits geht die gewonnene\n"
-"Sicherheit zulasten der Benutzerfreundlichkeit und Einfachheit, mit der\n"
-"gewisse Befehle/AblƤufe durchgefĆ¼hrt werden kƶnnen. AusfĆ¼hrlichere\n"
-"ErlƤuterungen zu den verschiedenen Sicherheitsebenen erhalten Sie im\n"
-"Kapitel MSEC des Referenzhandbuchs.\n"
-"\n"
-"Sollten Sie sich an dieser Stelle nicht sicher sein, so behalten Sie die\n"
-"Standardeinstellung bei."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:442
-msgid ""
-"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandrake Linux 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"
-"partitions must be defined.\n"
-"\n"
-"To create partitions, you must first select a hard 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"
-"\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"
-"\n"
-" * \"More\": gives access to additional features:\n"
-"\n"
-" * \"Save partition table\": saves the partition table to a floppy. "
-"Useful\n"
-"for later partition-table recovery if necessary. It is strongly recommended\n"
-"to perform this step;\n"
-"\n"
-" * \"Restore partition table\": allows to restore a previously saved\n"
-"partition table from floppy disk;\n"
-"\n"
-" * \"Rescue partition table\": if your partition table is damaged, you "
-"can\n"
-"try to recover it using this option. Please be careful and remember that it\n"
-"can fail;\n"
-"\n"
-" * \"Reload partition table\": discards all changes and loads your "
-"initial\n"
-"partition table;\n"
-"\n"
-" * \"Removable media automounting\": unchecking this option will force "
-"users\n"
-"to manually mount and unmount removable medias such as floppies and\n"
-"CD-ROMs.\n"
-"\n"
-" * \"Wizard\": 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 knowledge of\n"
-"partitioning;\n"
-"\n"
-" * \"Undo\": use this option to cancel your changes;\n"
-"\n"
-" * \"Toggle to normal/expert mode\": allows additional actions on "
-"partitions\n"
-"(type, options, format) and gives more information;\n"
-"\n"
-" * \"Done\": when you are finished partitioning your hard 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"
-"partitions using [Tab] and [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"
-"\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 Partition(en) Ihr neues Mandrake\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"
-" * ā€˛Alles lƶschenā€: BetƤtigen dieser SchaltflƤche lƶscht alle Partitionen\n"
-"auf der markierten Festplatte.\n"
-"\n"
-" * ā€˛Automatisches Erstellenā€: Diese SchaltflƤche erstellt automatisch Ext2-\n"
-"und Swap-Partitionen im ungenutzten Bereich Ihrer Festplatte.\n"
-"\n"
-" * ā€˛Partitionstabelle rettenā€: Falls Ihre Partitionstabelle defekt ist,\n"
-"kƶnnen Sie durch DrĆ¼cken dieser SchaltflƤche versuchen Sie wieder\n"
-"herzustellen. Seien Sie vorsichtig und denken Sie immer daran, dass dieser\n"
-"Versuch misslingen kann.\n"
-"\n"
-" * ā€˛RĆ¼ckgƤngigā€: Mit dieser SchaltflƤche kƶnnen Sie alle Einstellungen\n"
-"rĆ¼ckgƤngig machen.\n"
-"\n"
-" * ā€˛Neu ladenā€: Sie kƶnnen durch BetƤtigen dieser SchaltflƤche alle\n"
-"Einstellungen rĆ¼ckgƤngig machen und die (noch bestehende) Partitionstabelle\n"
-"neu laden.\n"
-"\n"
-" * ā€˛Assistentā€: Falls Sie keine Ahnung haben wie Sie die Festplatte\n"
-"partitionieren sollen, wƤhlen Sie diese SchaltflƤche. Sie Ć¼berlassen damit\n"
-"die gesamte Arbeit unserem Assistenten, der mittels ā€˛Abra Kadabraā€(TM) Ihre\n"
-"Platte partitioniert.\n"
-"\n"
-" * ā€˛Von Diskette wiederherstellenā€: Falls Sie Ihre Partitionstabelle vor\n"
-"Beginn auf eine Diskette gespeichert haben, kƶnnen Sie sie mittels dieser\n"
-"SchaltflƤche wieder zurĆ¼ckschreiben.\n"
-"\n"
-" * ā€˛Auf Diskette speichernā€: Falls Sie Ihre aktuelle Partitionstabelle auf\n"
-"Diskette speichern wollen, falls Sie sie spƤter wiederherstellen wollen,\n"
-"kƶnnen Sie das mit Hilfe dieser SchaltflƤche tun.\n"
-"\n"
-" * ā€˛Fertigā€: Nachdem Sie das Partitionieren Ihrer Festplatte beendet haben,\n"
-"aktivieren Sie diese SchaltflƤche, um Ihre Ƅnderungen zu speichern.\n"
-"\n"
-"Information: Sie kƶnnen alle Einstellungen per Tastatur vornehmen. Sie\n"
-"kƶnnen sich mittels [Tab] und den Pfeiltasten 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] - dem EinhƤngpunkt festlegen\n"
-"\n"
-"Falls Sie die Installation auf einem PPC-Rechner vornehmen, sollten Sie\n"
-"eine mindestens 1 MB groĆe HFS Start-Partition fĆ¼r den\n"
-"Betriebssystemstarter ā€˛Yabootā€ erstellen. Wenn Sie diese Partition etwas\n"
-"grƶĆer dimensionieren, etwa 50 MB, haben Sie einen geeigneten Platz, um\n"
-"einen Rettungskern samt RamDisk abzulegen, um in NotfƤllen starten zu\n"
-"kƶnnen."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:513
-msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
-"Please choose the one you want to resize in order to install your new\n"
-"Mandrake Linux 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"
-"\"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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard 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"
-"disk or partition is called \"C:\")."
-msgstr ""
-"Es wurde mehr als nur eine MicrosoftWindows(TM) Partition auf Ihrer Platte\n"
-"gefunden. Bitte wƤhlen Sie welche Sie verkleinern wollen, um Ihr neues\n"
-"Betriebssystem Mandrake Linux installieren zu kƶnnen.\n"
-"\n"
-"Zu Ihrer Information sind alle Partitionen folgendermaĆen aufgefĆ¼hrt:\n"
-"ā€˛Linuxnameā€, ā€˛Windowsnameā€, ā€˛KapazitƤtā€.\n"
-"\n"
-"ā€˛Linuxnameā€ ist zusammengesetzt aus: ā€˛Festplattentypā€, ā€˛Festplattennummerā€\n"
-"und ā€˛Partitionsnummerā€ (etwa, ā€˛hda1ā€ oder ā€˛sdb4ā€).\n"
-"\n"
-"ā€˛Festplattentypā€ ist ā€˛hdā€ falls es sich um einen IDE Platte handelt und\n"
-"ā€˛sdā€ wenn es eine SCSI Platte ist.\n"
-"\n"
-"ā€˛Festplattennummerā€ ist der Buchstabe hinter ā€˛hdā€ oder ā€˛sdā€. Bei IDE\n"
-"Platten bedeutet:\n"
-"\n"
-" * ā€˛aā€ - ā€˛Master Festplatte am primƤren IDE Kontrollerā€,\n"
-"\n"
-" * ā€˛bā€ - ā€˛Slave Festplatte am primƤren IDE Kontrollerā€,\n"
-"\n"
-" * ā€˛cā€ - ā€˛Master Festplatte am sekundƤren IDE Kontrollerā€,\n"
-"\n"
-" * ā€˛dā€ - ā€˛Slave Festplatte am sekundƤren IDE Kontrollerā€.\n"
-"\n"
-"Bei SCSI Platten steht ā€˛aā€ fĆ¼r ā€˛erste Festplatte am Busā€, ā€˛bā€ fĆ¼r ā€˛zweite\n"
-"Festplatte am Busā€, etc.\n"
-"\n"
-"ā€˛Windowsnameā€ ist der Laufwerksbuchstabe, wie er von Windows vergeben wird\n"
-"(die erste FAT Partition der ersten Platte heiĆt ā€˛C:ā€)."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:544
-msgid "Please be patient. This operation can take several minutes."
-msgstr "Bitte gedulden Sie sich etwas. Es kann einige Minuten dauern."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:547
-msgid ""
-"DrakX now needs to know if you want to perform a default (\"Recommended\")\n"
-"installation or if you want to have greater control (\"Expert\"). You can\n"
-"also choose to do a new install or an upgrade of an existing Mandrake Linux\n"
-"system:\n"
-"\n"
-" * \"Install\": completely wipes out the old system. In fact, depending on\n"
-"what currently holds your machine, you will be able to keep some old (Linux\n"
-"or other) partitions unchanged;\n"
-"\n"
-" * \"Upgrade\": this installation class allows to simply update the "
-"packages\n"
-"currently installed on your Mandrake Linux system. It keeps the current\n"
-"partitions of your hard drives as well as user configurations. All other\n"
-"configuration steps remain available with respect to plain installation;\n"
-"\n"
-" * \"Upgrade Packages Only\": this brand new class allows to upgrade an\n"
-"existing Mandrake Linux system while keeping all system configurations\n"
-"unchanged. Adding new packages to the current installation is also\n"
-"possible.\n"
-"\n"
-"Upgrades should work fine for Mandrake Linux systems starting from \"8.1\"\n"
-"release.\n"
-"\n"
-"Depending on your knowledge of GNU/Linux, select one of the following\n"
-"choices:\n"
-"\n"
-" * Recommended: choose this if you have never installed a GNU/Linux\n"
-"operating system. The installation will be very easy and you will only be\n"
-"asked a few questions;\n"
-"\n"
-" * Expert: if you have a good knowledge of GNU/Linux, you can choose this\n"
-"installation class. The expert installation will allow you to perform a\n"
-"highly-customized installation. Answering some of the questions can be\n"
-"difficult if you do not have a good knowledge of GNU/Linux, so do not\n"
-"choose this unless you know what you are doing."
-msgstr ""
-"ā€˛DrakXā€ fragt Sie nun nach der gewĆ¼nschten Installationsart. Sie haben die\n"
-"Wahl zwischen einer Standardinstallation (ā€˛Empfehlenswertā€) und einer\n"
-"Variante, in der Sie mehr Einfluss ausĆ¼ben kƶnnen (ā€˛Experteā€). Sie mĆ¼ssen\n"
-"sich nun auch entscheiden, ob Sie eine Installation oder eine\n"
-"Aktualisierung einer bereits vorhandenen Mandrake Linux-Version vornehmen\n"
-"wollen. Es ist mƶglich, die Installation Ć¼ber ein existierendes BS zu\n"
-"installieren und dieses damit zu entfernen. Sie kƶnnen auch eine\n"
-"Aktualisierung vornehmen, um eine existierende Installation zu reparieren.\n"
-"WƤhlen Sie:\n"
-"\n"
-" * ā€˛Installierenā€: Entfernt komplett Ƥltere Versionen von Mandrake Linux,\n"
-"die noch installiert sind um genau zu sein kƶnnen Sie je nach aktuellem\n"
-"Inhalt Ihrer Platte auch einige Ƥltere Linux- oder anderweitige Partitionen\n"
-"unangetastet behalten.\n"
-"\n"
-" * ā€˛Aktualisierenā€: Mit dieser Variante kƶnnen Sie eine existierende\n"
-"Mandrake Linux Version aktualisieren. Die Partitionstabellen sowie die\n"
-"persƶnlichen Verzeichnisse der Anwender bleiben erhalten. Alle anderen\n"
-"Installationsschritte werden wie bei einer Installation ausgefĆ¼hrt.\n"
-"\n"
-" * ā€˛Nur Pakete aktualisierenā€: In dieser Variante werden alle Schritte der\n"
-"Installation, bis auf die Auswahl der zu installierenden Pakete,\n"
-"Ć¼bersprungen.\n"
-"\n"
-"Je nachdem, wie viel Erfahrung Sie mit GNU/Linux haben, kƶnnen Sie sich fĆ¼r\n"
-"eine der folgenden Installations- oder Aktualisierungsarten fĆ¼r Ihr\n"
-"Mandrake Linux System entscheiden:\n"
-"\n"
-" * Empfehlenswert: Falls Sie noch nie ein GNU/Linux Betriebssystem\n"
-"installiert haben. Die Installation wird sehr einfach sein und es werden\n"
-"Ihnen nur sehr wenige Fragen gestellt werden.\n"
-"\n"
-" * Experte: Wenn Sie den Umgang mit GNU/Linux ā€˛im Schlafā€ beherrschen und\n"
-"hochgranulare Wahlmƶglichkeiten wĆ¼nschen, ist dies Ihre\n"
-"Installationsmethode. Wie bei der benutzerdefinierten Installation kƶnnen\n"
-"Sie die hauptsƤchliche Verwendung festlegen: ā€˛Arbeitsplatzrechnerā€,\n"
-"ā€˛Entwicklungsplattformā€ oder ā€˛Serverā€. Seien Sie sehr vorsichtig, wenn Sie\n"
-"sich fĆ¼r diese Installationsklasse entscheiden. Die Antworten auf einige\n"
-"Fragen kƶnnen sehr schwierig sein und Auswirkungen auf Sicherheit und\n"
-"StabilitƤt Ihrer Distribution haben. WƤhlen Sie diese Installationsklasse\n"
-"also wirklich nur wenn Sie wissen, was Sie tun!"
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:583
-msgid ""
-"Normally, DrakX selects the right keyboard for you (depending on the\n"
-"language you have chosen) and you won't even see this step. However, you\n"
-"might not have a keyboard that corresponds exactly to your language: for\n"
-"example, if you are an English speaking Swiss person, you may still want\n"
-"your keyboard to be a Swiss keyboard. Or if you speak English but are\n"
-"located in Quebec, you may find yourself in the same situation. In both\n"
-"cases, you will have to go back to this installation step and select an\n"
-"appropriate keyboard from the list.\n"
-"\n"
-"Click on the \"More\" button to be presented with the complete list of\n"
-"supported keyboards."
-msgstr ""
-"ā€˛DrakXā€ wird aufgrund Ihrer Sprachauswahl das fĆ¼r Sie passende\n"
-"Tastaturlayout bereits ausgewƤhlt haben, Sie sollten diesen Schritt\n"
-"eigentlich nicht einmal angezeigt bekommen. Doch vielleicht sind Sie mit\n"
-"dieser Auswahl nicht zufrieden (wenn Sie beispielsweise eine vom Layout\n"
-"abweichende Sprache bevorzugen). Dann gehen Sie zu diesem\n"
-"Konfigurationsschritt zurĆ¼ck und wƤhlen Sie ein passendes Layout aus der\n"
-"Liste.\n"
-"\n"
-"Sollten Sie eine andere als die zur gewƤhlten Sprache gehƶrende Tastatur\n"
-"verwenden wollen, wƤhlen Sie die SchaltflƤche ā€˛Mehrā€. Sie erhalten dann\n"
-"eine Liste aller unterstĆ¼tzten Tastaturen."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:596
-msgid ""
-"Please choose your preferred language for installation and system usage.\n"
-"\n"
-"Clicking on the \"Advanced\" button will allow you to select other\n"
-"languages to be installed on your workstation. Selecting other languages\n"
-"will install the language-specific files for system documentation and\n"
-"applications. For example, if you will host users from Spain on your\n"
-"machine, select English as the main language in the tree view and in the\n"
-"Advanced section click on the box corresponding to \"Spanish|Spain\".\n"
-"\n"
-"Note that multiple languages may be installed. Once you have selected any\n"
-"additional locales, click the \"OK\" button to continue."
-msgstr ""
-"WƤhlen Sie Ihre bevorzugte Sprache fĆ¼r den Installationsvorgang und\n"
-"Systemlaufzeit.\n"
-"\n"
-"Durch BetƤtigen der SchaltflƤche ā€˛Fortgeschrittenā€ erhalten Sie die\n"
-"Mƶglichkeit, weitere Sprachen auf Ihrem Rechner zu installieren, um diese\n"
-"spƤter verwenden zu kƶnnen. Wollen Sie etwa Spaniern muttersprachlichen\n"
-"Zugang zu Ihrem System erlauben, wƤhlen Sie deutsch als Hauptsprache in der\n"
-"Liste und im Fortgeschrittenen-Bereich ā€˛Spanish|Spainā€.\n"
-"\n"
-"Haben Sie eine Sprache markiert und die Wahl mit ā€˛OKā€ bestƤtigt, gelangen\n"
-"Sie automatisch zum nƤchsten Schritt."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:609
-msgid ""
-"DrakX generally detects the number of buttons your mouse has. If not, it\n"
-"assumes you have a two-button mouse and will set it up for third-button\n"
-"emulation. DrakX will automatically know whether it is a PS/2, serial or\n"
-"USB mouse.\n"
-"\n"
-"If you wish to specify a different type of mouse select the appropriate\n"
-"type from the provided list.\n"
-"\n"
-"If you choose a mouse other than the default, a test screen will be\n"
-"displayed. Use the buttons and wheel to verify that the settings are\n"
-"correct. If the mouse is not working well, press the space bar or [Return]\n"
-"to \"Cancel\" and choose again."
-msgstr ""
-"ā€˛DrakXā€ versucht normalerweise die Anzahl Tasten Ihrer Maus zu erkennen.\n"
-"Sollte das nicht mƶglich sein, so behandelt es Ihre Maus als\n"
-"Zwei-Tasten-Maus und emuliert die mittlere Taste. Es erkennt Ć¼blicherweise\n"
-"korrekt, ob es sich um eine serielle, eine PS/2- oder um eine USB-Maus\n"
-"handelt.\n"
-"\n"
-"Sollte dies nicht Ihren Vorstellungen entsprechen: WƤhlen Sie einfach Ihren\n"
-"Maustyp aus der Liste, die Ihnen angezeigt wird.\n"
-"\n"
-"AnschlieĆend kƶnnen Sie die FunktionstĆ¼chtigkeit Ihrer Maus Ć¼berprĆ¼fen.\n"
-"Verwenden Sie auch die Knƶpfe und gegebenenfalls das Mausrad, um\n"
-"sicherzustellen, dass die festgelegten Einstellungen funktionieren. Falls\n"
-"nicht, klicken Sie auf ā€˛Abbrechenā€ und wƤhlen einen anderen Treiber aus."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:623
-msgid ""
-"Please select the correct port. For example, the \"COM1\" port under\n"
-"Windows is named \"ttyS0\" under GNU/Linux."
-msgstr ""
-"Bitte wƤhlen Sie den richtigen Anschluss aus. Die COM1-Schnittstelle unter\n"
-"Windows wird beispielsweise unter GNU/Linux als ā€˛ttyS0ā€ bezeichnet."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:627
-msgid ""
-"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 choose\n"
-"not to enter a password, but we strongly advise you against this if only\n"
-"for one reason: do not think that because you booted GNU/Linux that your\n"
-"other operating systems are safe from mistakes. Since \"root\" can overcome\n"
-"all limitations and unintentionally erase all data on partitions by\n"
-"carelessly accessing the partitions themselves, it is important for it to\n"
-"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."
-msgstr ""
-"Sie kƶnnen nun das Ā»rootĀ« Passwort fĆ¼r Ihr Mandrake Linux System eingeben.\n"
-"Das Passwort muss zweimal eingegeben werden, um sicher zu stellen, dass sie\n"
-"es korrekt eingegeben haben.\n"
-"\n"
-"Ā»rootĀ« ist das Benutzerkennzeichen des Systemadministrators. Er ist der\n"
-"einzige der berechtigt ist, neue Software zu installieren, Systemdateien zu\n"
-"Ƥndern oder neue Benutzerkennzeichen anzulegen. Kurz gesagt: Ā»rootĀ« darf\n"
-"alles! WƤhlen Sie deshalb das Passwort sehr sorgfƤltig aus! Unberechtigter\n"
-"Zugang zu diesem Kennzeichen ist extrem gefƤhrlich fĆ¼r die IntegritƤt Ihres\n"
-"Systems und der darauf enthaltenen Daten. Daher mĆ¼ssen Sie auch ein\n"
-"Passwort auswƤhlen, was nicht leicht zu erraten ist; ā€˛DrakXā€ teilt Ihnen\n"
-"mit, wenn das Passwort zu einfach ist. Sie sehen, dass es auch mƶglich ist,\n"
-"kein Passwort zu vergeben. Wir raten Ihnen jedoch dringend davon ab!\n"
-"Glauben Sie nicht, dass nur, weil Sie GNU/Linux geladen haben, Ihre anderen\n"
-"Betriebssysteme vor Fehlern sicher sind. Ā»rootĀ« hat keine BeschrƤnkungen.\n"
-"Er kƶnnte beispielsweise unbeabsichtigterweise alle Daten auf allen\n"
-"Partitionen lƶschen, weil er unvorsichtigerweise auf die Partitionen selber\n"
-"zugegriffen hat!\n"
-"\n"
-"Das Passwort sollte eine Mischung aus alphanumerischen Zeichen sein und\n"
-"mindestens 8 Zeichen lang sein. 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"
-"Sie mĆ¼ssen das Passwort zweimal eingeben - ein Tippfehler beim ersten\n"
-"Versuch kƶnnte sonst zu einem Problem werden, da Sie anschlieĆend das\n"
-"ā€˛falscheā€ Passwort bei der Verbindung mit dem System eingeben mĆ¼ssten.\n"
-"\n"
-"Im Expertenmodus werden Ihnen zusƤtzliche Optionen zur VerfĆ¼gung gestellt.\n"
-"Diese hƤngen davon ab, ob Sie mit sich mit einem Authentifizierungsserver\n"
-"verbinden wollen oder nicht.\n"
-"\n"
-"Falls in Ihrem Netzwerk das LDAP (oder NIS) Protokoll fĆ¼r die\n"
-"Authentifizierung verwendet wird, wƤhlen Sie bitte den entsprechenden\n"
-"MenĆ¼punkt. Falls Sie nicht wissen, welches Protokoll Sie verwenden, fragen\n"
-"Sie Ihren Netzwerkadministrator.\n"
-"\n"
-"Falls Ihr Rechner nicht an einem administrierten Netzwerk hƤngt, wƤhlen Sie\n"
-"bitte ā€˛Lokale Dateienā€ zur Authentifizierung."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:663
-msgid ""
-"LILO and grub are GNU/Linux bootloaders. This stage, normally, is totally\n"
-"automated. In fact, DrakX analyzes the disk boot sector and acts\n"
-"accordingly, depending on what it finds here:\n"
-"\n"
-" * if a Windows boot sector is found, it will replace it with a grub/LILO\n"
-"boot sector. Hence, you will be able to load either GNU/Linux or another\n"
-"OS;\n"
-"\n"
-" * if a grub or LILO boot sector is found, it will replace it with a new\n"
-"one.\n"
-"\n"
-"If in doubt, DrakX will display a dialog with various options.\n"
-"\n"
-" * \"Bootloader to use\": you have three choices:\n"
-"\n"
-" * \"GRUB\": if you prefer grub (text menu).\n"
-"\n"
-" * \"LILO with graphical menu\": if you prefer LILO with its graphical\n"
-"interface.\n"
-"\n"
-" * \"LILO with text menu\": if you prefer LILO with its text menu "
-"interface.\n"
-"\n"
-" * \"Boot device\": in most cases, you will not change the default\n"
-"(\"/dev/hda\"), but if you prefer, the bootloader can be installed on the\n"
-"second hard drive (\"/dev/hdb\"), or even on a floppy disk (\"/dev/fd0\");\n"
-"\n"
-" * \"Delay before booting the default image\": when rebooting the computer,\n"
-"this is the delay granted to the user to choose in the bootloader menu,\n"
-"another boot entry than the default one.\n"
-"\n"
-"!! Beware that if you choose not to install a bootloader (by selecting\n"
-"\"Cancel\" here), you must ensure that you have a way to boot your Mandrake\n"
-"Linux system! Also, be sure you know what you do before changing any of the\n"
-"options. !!\n"
-"\n"
-"Clicking the \"Advanced\" button in this dialog will offer many advanced\n"
-"options, which are reserved to the expert user.\n"
-"\n"
-"After you have configured the general bootloader parameters, the list of\n"
-"boot options which will be available at boot time will be displayed.\n"
-"\n"
-"If there is another operating system installed on your machine, it will\n"
-"automatically be added to the boot menu. Here, you can choose to fine-tune\n"
-"the existing options. Select an entry and click \"Modify\" to modify or\n"
-"remove it; \"Add\" creates a new entry; and \"Done\" goes on to the next\n"
-"installation step."
-msgstr ""
-"ā€˛LILOā€ und ā€˛grubā€ sind Betriebssystemstarter fĆ¼r GNU/Linux. Diese\n"
-"Installationsphase lƤuft in den meisten FƤllen vƶllig automatisch ab.\n"
-"ā€˛DrakXā€ analysiert den Bootsektor und ergreift dann die passenden\n"
-"MaĆnahmen:\n"
-"\n"
-" * Findet ā€˛DrakXā€ einen Windows-Bootsektor, ersetzt es ihn durch einen\n"
-"ā€˛grubā€ oder ā€˛LILOā€-Bootsektor. Sie erhalten dadurch die Mƶglichkeit, beim\n"
-"Systemstart zwischen Windows (bzw. anderen Betriebssystemen, sofern\n"
-"vorhanden) und Windows auszuwƤhlen;\n"
-"\n"
-" * Findet ā€˛DrakXā€ einen Linux-Bootsektor vor, ersetzt es ihn durch einen\n"
-"neuen;\n"
-"\n"
-"Im Zweifelsfall bietet ā€˛DrakXā€ Ihnen einen Dialog mit verschiedenen\n"
-"Auswahlmƶglichkeiten.\n"
-"\n"
-" * ā€˛Zu verwendender Betriebssystemstarterā€: Hier erhalten Sie drei\n"
-"Alternativen:\n"
-"\n"
-" * ā€˛Grubā€: Falls Sie ā€˛grubā€ (TextmenĆ¼) bevorzugen.\n"
-"\n"
-" * ā€˛LILO mit grafischem MenĆ¼ā€: Falls Sie ā€˛LILOā€ mit seiner grafischen\n"
-"OberflƤche bevorzugen.\n"
-"\n"
-" * ā€˛LILO mit TextmenĆ¼ā€: Falls Sie ā€˛LILOā€ mit TextmenĆ¼ als Ihren "
-"Favoriten\n"
-"ansehen.\n"
-"\n"
-" * ā€˛Boot GerƤtā€: Normalerweise mĆ¼ssen Sie hier nichts Ƥndern (ā€˛/dev/hdaā€),\n"
-"Sie kƶnnten jedoch den Starter auch auf der zweiten Platte installieren,\n"
-"(ā€˛/dev/hdbā€) oder sogar auf einer Diskette (ā€˛/dev/fd0ā€).\n"
-"\n"
-" * ā€˛Wartezeit vorm Starten des Standard Betriebssystemsā€: Wenn Sie Ihren\n"
-"Rechner neu starten erhalten Sie im MenĆ¼ der zur VerfĆ¼gung stehenden BSe\n"
-"eine gewisse Zeit um auszuwƤhlen, was Sie starten mƶchten. Sollten Sie\n"
-"wƤhrend dieser Zeit keine Wahl getroffen haben, wird Ihr Standard-BS\n"
-"gestartet.\n"
-"\n"
-"!! Machen Sie sich klar, dass Sie sich selbst darum kĆ¼mmern mĆ¼ssen,\n"
-"irgendwie Ihr Mandrake Linux-System zu starten, wenn Sie hier keinen\n"
-"Betriebssystemstarter installieren (durch Auswahl von ā€˛Abbruchā€). Stellen\n"
-"Sie auch sicher, dass Sie wissen was Sie tun, wenn Sie hier Einstellungen\n"
-"verƤndern... !!\n"
-"\n"
-"Durch wƤhlen der SchaltflƤche ā€˛Fortgeschrittenā€ erhalten Sie etliche\n"
-"Optionen, die dem fortgeschrittenen Anwender vorbehalten bleiben.\n"
-"\n"
-"Mandrake Linux installiert normalerweise seinen eigenen\n"
-"Betriebssystemstarter, der Sie sowohl GNU/Linux, als auch alle anderen\n"
-"installierten Betriebssysteme starten lƤsst.\n"
-"\n"
-"Sollte sich auf Ihrem Rechner bereits ein anderes Betriebssystem befinden,\n"
-"so wird dieses sofern es erkannt wird automatisch zu dem StartmenĆ¼\n"
-"hinzugefĆ¼gt. Hier kƶnnen Sie noch einige Feineinstellungen fĆ¼r die\n"
-"bestehenden Optionen vornehmen. Markieren Sie einen bestehenden Eintrag und\n"
-"betƤtigen Sie die SchaltflƤche ā€˛Ć„ndernā€, um ihn anzupassen oder zu lƶschen;\n"
-"ā€˛HinzufĆ¼genā€ erzeugt einen neuen Eintrag und ā€˛Fertigā€ bringt Sie zum\n"
-"nƤchsten Installationsschritt."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:711
-msgid ""
-"LILO (the LInux LOader) and grub are bootloaders: they are able to boot\n"
-"either GNU/Linux or any other operating system present on your computer.\n"
-"Normally, these other operating systems are correctly detected and\n"
-"installed. If this is not the case, you can add an entry by hand in this\n"
-"screen. Be careful to choose the correct parameters.\n"
-"\n"
-"You may also not want to give access to these other operating systems to\n"
-"anyone. In which case, you can delete the corresponding entries. But then,\n"
-"you will need a boot disk in order to boot those other operating systems!"
-msgstr ""
-"ā€˛LILOā€ (der LInux LOader) und ā€˛grubā€ sind Betriebssystemstarter: Diese\n"
-"Programme starten entweder GNU/Linux oder die anderen Betriebssysteme, die\n"
-"auf Ihrem Rechner vorhanden sind. Normalerweise erkennen diese Werkzeuge\n"
-"alle existierenden Betriebssysteme korrekt und bieten Sie als\n"
-"Startalternativen an. Ist dies einmal nicht der Fall, kƶnnen Sie hier\n"
-"manuell helfend eingreifen. Seien Sie jedoch vorsichtig, dass sie die\n"
-"korrekten Parameter eingeben.\n"
-"\n"
-"Eventuell mƶchten Sie anderen Anwendern nicht die Mƶglichkeit geben, diese\n"
-"anderen Betriebssysteme zu verwenden, in diesem Fall kƶnnen Sie den\n"
-"entsprechenden Eintrag einfach lƶschen. Das hat jedoch zur Folge, dass sie\n"
-"eine Startdiskette benƶtigen, um diese Betriebssysteme in Zukunft starten\n"
-"zu kƶnnen."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:722
-msgid ""
-"You must indicate where you wish to place the information required to boot\n"
-"to GNU/Linux.\n"
-"\n"
-"Unless you know exactly what you are doing, choose \"First sector of drive\n"
-"(MBR)\"."
-msgstr ""
-"Sie mĆ¼ssen nun entscheiden, wo die Informationen zum Starten Ihrer\n"
-"GNU/Linux Distribution erstellt werden sollen.\n"
-"\n"
-"Sofern Sie nicht genau wissen, was sie machen sollen, wƤhlen Sie ā€˛Erster\n"
-"Sektor der Platte (MBR)ā€"
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:729
-msgid ""
-"Here, we select a printing system for your computer. Other OSs may offer\n"
-"you one, but Mandrake Linux offers three.\n"
-"\n"
-" * \"pdq\" which means ``print, don't queue'', is the choice if you have a\n"
-"direct connection to your printer and you want to be able to panic out of\n"
-"printer jams, and you do not have networked printers. It will handle only\n"
-"very simple network cases and is somewhat slow for networks. Pick \"pdq\"\n"
-"if this is your maiden voyage to GNU/Linux. You can change your choices\n"
-"after installation by running PrinterDrake from the Mandrake Control Center\n"
-"and clicking the expert button.\n"
-"\n"
-" * \"CUPS\"``Common Unix Printing System'', is excellent at printing to "
-"your\n"
-"local printer and also halfway-around the planet. It is simple and can act\n"
-"as a server or a client for the ancient \"lpd\" printing system. Hence, it\n"
-"is compatible with the systems that went before. It can do many tricks, but\n"
-"the basic setup is almost as easy as \"pdq\". If you need this to emulate\n"
-"an \"lpd\" server, you must turn on the \"cups-lpd\" daemon. It has\n"
-"graphical front-ends for printing or choosing printer options.\n"
-"\n"
-" * \"lprNG\"``line printer daemon New Generation''. This system can do\n"
-"approximately the same things the others can do, but it will print to\n"
-"printers mounted on a Novell Network, because it supports the IPX protocol,\n"
-"and it can print directly to shell commands. If you have need of Novell or\n"
-"printing to commands without using a separate pipe construct, use lprNG.\n"
-"Otherwise, CUPS is preferable as it is simpler and better at working over\n"
-"networks."
-msgstr ""
-"Sie kƶnnen nun ein Drucksystem wƤhlen. Wo andere Betriebssysteme Ihnen nur\n"
-"eins bieten, bietet Mandrake Linux Ihnen drei:\n"
-"\n"
-" * ā€˛pdqā€ - Es steht fĆ¼r ā€˛print, don't queueā€ (engl. fĆ¼r ā€˛Drucken ohne\n"
-"Warteschlangeā€). Falls Sie einen Drucker haben, der direkt an Ihrem Rechner\n"
-"hƤngt und Sie keine Netzwerkdrucker verwenden wollen, ist dies das\n"
-"Drucksystem Ihrer Wahl. Es kann zwar auch mit Netzwerkdruckern umgehen, ist\n"
-"dabei aber extrem langsam. WƤhlen Sie ā€˛pdqā€, wenn Sie ein GNU/Linux Neuling\n"
-"sind. Sie kƶnnen diese Wahl spƤter immer wieder Ƥndern, indem Sie\n"
-"PrinterDrake im Mandrake Kontrollzentrum starten und dort die SchaltflƤche\n"
-"ā€˛Expertenmodusā€ betƤtigen.\n"
-"\n"
-" * ā€˛CUPSā€ - Mit dem ā€˛Common Unix Printing Systemā€ (engl. fĆ¼r ā€˛Allgemeines\n"
-"Unix-Drucksystemā€) kƶnnen Sie ebenso gut um auf Ihrem direkt\n"
-"angeschlossenen Drucker drucken, wie auf einem Drucker, der an einem Server\n"
-"auf der anderen Seite der Welt hƤngt. Es ist einfach zu bedienen und kann\n"
-"sowohl als Server als auch als Klient fĆ¼r das alte ā€˛lpdā€-Drucksystem\n"
-"verwendet werden - Es ist somit rĆ¼ckwƤrtskompatibel. Es ist sehr mƤchtig,\n"
-"in seiner Grundeinstellung verhƤlt es sich jedoch genau wie ā€˛pdqā€. Wenn Sie\n"
-"einen ā€˛lpdā€ Server benƶtigen, mĆ¼ssen Sie einfach nur den ā€˛cups-lpdā€ DƤmon\n"
-"starten. ā€˛CUPSā€ bietet grafische Konfigurations- und DruckmenĆ¼s.\n"
-"\n"
-" * ā€˛LPRngā€ - ā€˛Line Printer Daemon new generationā€ (engl. fĆ¼r\n"
-"ā€˛Zeilendrucker-DƤmon - Neue Generationā€). Dieses System bietet etwa das\n"
-"gleiche, was die beiden vorherigen kƶnnen, es erlaubt Ihnen jedoch auch auf\n"
-"Drucker in Novell Netzwerken zuzugreifen, da es das IPX Protokoll\n"
-"beherrscht. Falls Sie das benƶtigen, verwenden Sie LPRng. Andernfalls ist\n"
-"ā€˛CUPSā€ vorzuziehen, da es benutzerfreundlicher ist und in\n"
-"Nicht-IPX-Netzwerken besser funktioniert."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:757
-msgid ""
-"DrakX now detects any IDE device present in your computer. It will also\n"
-"scan for one or more PCI SCSI card(s) on your system. If a SCSI card is\n"
-"found, DrakX will automatically install the appropriate driver.\n"
-"\n"
-"Because hardware detection does not always detect a piece of hardware,\n"
-"DrakX will ask you to confirm if a PCI SCSI card is present. Click \"Yes\"\n"
-"if you know that there is a SCSI card installed in your machine. You will\n"
-"be presented a list of SCSI cards to choose from. Click \"No\" if you have\n"
-"no SCSI hardware. If you are unsure, you can check the list of hardware\n"
-"detected in your machine by selecting \"See hardware info\" and clicking\n"
-"\"OK\". Examine the list of hardware and then click on the \"OK\" button to\n"
-"return to the SCSI interface question.\n"
-"\n"
-"If you have to manually specify your adapter, DrakX will ask if you want to\n"
-"specify options for it. You should allow DrakX to probe the hardware for\n"
-"the card-specific options which the hardware needs to initialize. This\n"
-"usually works well.\n"
-"\n"
-"If DrakX is not able to probe for the options which need to be passed, you\n"
-"will need to provide options to the driver manually. Please review the\n"
-"``User Guide'' (chapter 3, in the ``Collecting Information on Your\n"
-"Hardware'' section) for hints on retrieving the parameters required from\n"
-"hardware documentation, from the manufacturer's web site (if you have\n"
-"Internet access) or from MicrosoftWindows (if you used this hardware with\n"
-"Windows on your system)."
-msgstr ""
-"ā€˛DrakXā€ versucht nun alle IDE Festplatten Ihres Systems zu finden. Unter\n"
-"Anderem sucht ā€˛DrakXā€ auch nach PCISCSI-Karten, die es kennt, um sie\n"
-"automatisch mit dem richtigen Treiber einzubinden.\n"
-"\n"
-"Falls Sie Ć¼ber keinen SCSI Adapter verfĆ¼gen, es sich um einen ISASCSI\n"
-"Adapter handelt oder um einen PCISCSI Adapter, bei dem ā€˛DrakXā€ nicht weiĆ,\n"
-"welcher Treiber funktioniert, werden Sie gebeten, ā€˛DrakXā€ zu helfen.\n"
-"\n"
-"Ist in Ihrem Rechner kein SCSI Adapter, wƤhlen Sie einfach ā€˛Neinā€. Sollten\n"
-"Sie Sich fĆ¼r ā€˛Jaā€ entscheiden, erscheint eine Liste, aus der Sie Ihren\n"
-"Adapter auswƤhlen kƶnnen.\n"
-"\n"
-"Mussten Sie den Adapter aus der Liste wƤhlen, fragt ā€˛DrakXā€ Sie, ob Sie dem\n"
-"Modul Optionen Ć¼bergeben wollen. Sie kƶnnen ā€˛DrakXā€ ruhig erlauben, erst\n"
-"einmal selbst zu versuchen, diese herauszufinden. In den meisten FƤllen\n"
-"funktioniert das.\n"
-"\n"
-"Falls nicht, mĆ¼ssen Sie die Optionen angeben. Schauen Sie im\n"
-"Installationshandbuch, wie Sie diese Informationen erhalten kƶnnen: etwa\n"
-"unter Windows (sofern das auf Ihren Rechner installiert ist), aus den\n"
-"HandbĆ¼chern, die sie mit dem Adapter erhalten haben oder von den Web-Seiten\n"
-"des Hardware-Anbieters (sofern Sie einen WWW-Zugang haben)."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:784
-msgid ""
-"You can add additional entries for yaboot, either for other operating\n"
-"systems, alternate kernels, or for an emergency boot image.\n"
-"\n"
-"For other OSs, the entry consists only of a label and the \"root\"\n"
-"partition.\n"
-"\n"
-"For Linux, there are a few possible options:\n"
-"\n"
-" * Label: this is simply the name you will have to type at the yaboot "
-"prompt\n"
-"to select this boot option;\n"
-"\n"
-" * Image: this would be the name of the kernel to boot. Typically, vmlinux\n"
-"or a variation of vmlinux with an extension;\n"
-"\n"
-" * Root: the \"root\" device or ``/'' for your Linux installation;\n"
-"\n"
-" * Append: on Apple hardware, the kernel append option is used quite often\n"
-"to assist in initializing video hardware, or to enable keyboard mouse\n"
-"button emulation for the often lacking 2nd and 3rd mouse buttons on a stock\n"
-"Apple mouse. The following are some examples:\n"
-"\n"
-" video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111 "
-"hda=autotune\n"
-"\n"
-" video=atyfb:vmode:12,cmode:24 adb_buttons=103,111\n"
-"\n"
-" * Initrd: this option can be used either to load initial modules, before\n"
-"the boot device is available, or to load a ramdisk image for an emergency\n"
-"boot situation;\n"
-"\n"
-" * Initrd-size: the default ramdisk size is generally 4,096 bytes. If you\n"
-"need to allocate a large ramdisk, this option can be used;\n"
-"\n"
-" * Read-write: normally the \"root\" partition is initially brought up in\n"
-"read-only, to allow a file system check before the system becomes ``live''.\n"
-"Here, you can override this option;\n"
-"\n"
-" * NoVideo: should the Apple video hardware prove to be exceptionally\n"
-"problematic, you can select this option to boot in ``novideo'' mode, with\n"
-"native frame buffer support;\n"
-"\n"
-" * Default: selects this entry as being the default Linux selection,\n"
-"selectable by just pressing ENTER at the yaboot prompt. This entry will\n"
-"also be highlighted with a ``*'', if you press [Tab] to see the boot\n"
-"selections."
-msgstr ""
-"Sie kƶnnen weitere ā€˛Yabootā€ EintrƤge angeben, etwa fĆ¼r andere\n"
-"Betriebssysteme, alternative Kerne oder ein Rettungssystem.\n"
-"\n"
-"FĆ¼r ein anderes BS kƶnnen Sie nur einen Namen und die Start-Partition\n"
-"angeben.\n"
-"\n"
-"FĆ¼r Linux gibt es einige Parameter:\n"
-"\n"
-" * ā€˛Identifikatorā€: Es handelt sich um den Namen, den Sie an der ā€˛Yabootā€\n"
-"Eingabeaufforderung angeben mĆ¼ssen, um diese Alternative zu wƤhlen.\n"
-"\n"
-" * ā€˛Kernā€: Der Name des BS-Kerns, den sie starten wollen. Normalerweise\n"
-"handelt es sich um ā€˛vmlinuzā€ oder eine Variante von ā€˛vmlinuzā€ mit einer\n"
-"Versionsnummer.\n"
-"\n"
-" * ā€˛Verzeichnisbaumwurzelā€: Die Verzeichnisbaumwurzel ā€˛/ā€ Ihrer Linux\n"
-"Installation.\n"
-"\n"
-" * ā€˛Ćbergebenā€: Auf Apple Hardware, wird die Ćbergabemƶglichkeit weiterer\n"
-"Kernparameter hƤufig verwendet, um die Grafikausgabe richtig zu\n"
-"konfigurieren oder die Tastaturemulation der Mausknƶpfe einzuschalten, da\n"
-"klassische Apple-MƤuse von Hause aus mit 2 fehlenden Maustasten\n"
-"ausgeliefert werden. Hier einige Beispiele:\n"
-"\n"
-" video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111 "
-"hda=autotune\n"
-"\n"
-" video=atyfb:vmode:12,cmode:24 adb_buttons=103,111\n"
-"\n"
-" * ā€˛Init-RamDiskā€: Dieser Parameter kann entweder verwendet werden, um beim\n"
-"Betriebssystemstart bereits zusƤtzliche Kern-Module zur VerfĆ¼gung zu haben,\n"
-"ohne dass das Start-GerƤt zur VerfĆ¼gung steht oder um ein RamDisk Abbild\n"
-"fĆ¼r den BS-Start in NotfƤllen zur VerfĆ¼gung zu haben.\n"
-"\n"
-" * ā€˛GrƶĆe der Init-RamDiskā€: StandardmƤĆig ist eine RamDisk 4096 Bytes "
-"groĆ.\n"
-"Sollten Sie eine grƶĆere RamDisk benƶtigen, kƶnnen Sie das mit diesem\n"
-"Parameter einstellen.\n"
-"\n"
-" * ā€˛Schreiben/Lesenā€: Normalerweise wird die Verzeichnisbaumwurzel zuerst "
-"im\n"
-"Nur-Lese-Modus eingehƤngt, um eine Dateisystem Verifikation durchfĆ¼hren zu\n"
-"kƶnnen, bevor das Betriebssystem seinen Dienst aufnimmt. Diesen Umstand\n"
-"kƶnnen Sie hier abstellen.\n"
-"\n"
-" * ā€˛NoVideoā€: Sollte sich die Apple Grafik-Hardware als extrem "
-"problematisch\n"
-"erweisen, kƶnnen Sie diesen Parameter verwenden um im sog. ā€˛novideoā€-Modus,\n"
-"also im FrameBuffer-Modus zu starten.\n"
-"\n"
-" * ā€˛Standardā€: WƤhlt diesen Eintrag als Standard Linux-Kern, den Sie durch\n"
-"DrĆ¼cken von [Enter] an der ā€˛Yabootā€ Eingabeaufforderung gestartet bekommen.\n"
-"Wenn Sie die [Tab]-Taste an der Eingabeaufforderung drĆ¼cken, erhalten Sie\n"
-"eine Liste der verfĆ¼gbaren Alternativen. Der Standardeintrag wird mit einem\n"
-"Stern ā€˛*ā€ markiert."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:830
-msgid ""
-"Yaboot is a bootloader for NewWorld MacIntosh hardware. It is able to boot\n"
-"either GNU/Linux, MacOS or MacOSX if present on your computer. Normally,\n"
-"these other operating systems are correctly detected and installed. If this\n"
-"is not the case, you can add an entry by hand in this screen. Be careful to\n"
-"choose the correct parameters.\n"
-"\n"
-"Yaboot's main options are:\n"
-"\n"
-" * Init Message: a simple text message displayed before the boot prompt;\n"
-"\n"
-" * Boot Device: indicates where you want to place the information required\n"
-"to boot to GNU/Linux. Generally, you set up a bootstrap partition earlier\n"
-"to hold this information;\n"
-"\n"
-" * Open Firmware Delay: unlike LILO, there are two delays available with\n"
-"yaboot. The first delay is measured in seconds and at this point, you can\n"
-"choose between CD, OF boot, MacOS or Linux;\n"
-"\n"
-" * Kernel Boot Timeout: this timeout is similar to the LILO boot delay.\n"
-"After selecting Linux, you will have this delay in 0.1 second before your\n"
-"default kernel description is selected;\n"
-"\n"
-" * Enable CD Boot?: checking this option allows you to choose ``C'' for CD\n"
-"at the first boot prompt;\n"
-"\n"
-" * Enable OF Boot?: checking this option allows you to choose ``N'' for "
-"Open\n"
-"Firmware at the first boot prompt;\n"
-"\n"
-" * Default OS: you can select which OS will boot by default when the Open\n"
-"Firmware Delay expires."
-msgstr ""
-"ā€˛Yabootā€ ist ein BS-Starter fĆ¼r NewWorld MacIntosh Rechner. Er kann sowohl\n"
-"GNU/Linux als auch MacOS oder MacOS X starten, falls diese auf Ihrem\n"
-"Rechner installiert sind. Normalerweise werden diese Betriebssysteme alle\n"
-"automatisch gefunden und eingebunden. Sollte dies nicht der Fall sein,\n"
-"kƶnnen Sie diese hier manuell hinzufĆ¼gen. Stellen Sie jedoch sicher, die\n"
-"richtigen Parameter zu verwenden.\n"
-"\n"
-"Die Hauptparameter von ā€˛Yabootā€ sind:\n"
-"\n"
-" * ā€˛Init Nachrichtā€: Ein Text, der vor der Eingabeaufforderung angezeigt\n"
-"wird.\n"
-"\n"
-" * ā€˛Boot GerƤtā€: Hiermit wird angegeben, wohin die Informationen zum "
-"Starten\n"
-"Ihres GNU/Linux Systems geschrieben werden sollen. Sie sollten in einem\n"
-"frĆ¼heren Schritt bereits eine Boot-Partition angelegt haben, um diese Daten\n"
-"zu beherbergen.\n"
-"\n"
-" * ā€˛Open Firmware Verzƶgerungā€: Im Gegensatz zu ā€˛LILOā€, stehen mit ā€˛Yabootā€\n"
-"zwei Verzƶgerungen zur VerfĆ¼gung. Die erste Verzƶgerung wird in Sekunden\n"
-"angegeben und dient zur Auswahl zwischen CD, OF Boot, MacOS oder Linux.\n"
-"\n"
-" * ā€˛BS-Startverzƶgerung fĆ¼r den Kernā€: Diese Verzƶgerung entspricht der\n"
-"ā€˛LILOā€ Start-Verzƶgerung. Sie haben nach der Auswahl von GNU/Linux diese\n"
-"Verzƶgerung (in 0,1 Sekunden Schritten) Zeit, bis der Standardkern geladen\n"
-"wird.\n"
-"\n"
-" * ā€˛BS-Start von CD erlaubenā€: Markieren dieses Punkts erlaubt es Ihnen an\n"
-"der ersten Eingabeaufforderung ā€˛Cā€ fĆ¼r den Start von CD zu wƤhlen.\n"
-"\n"
-" * ā€˛Open Firmware Start erlaubenā€: Markieren dieses Punkts erlaubt es Ihnen\n"
-"an der ersten Eingabeaufforderung ā€˛Nā€ fĆ¼r den Open Firmware Start zu\n"
-"wƤhlen.\n"
-"\n"
-" * ā€˛Standard BSā€: Hiermit stellen Sie ein, welches Betriebssystem nach\n"
-"Ablauf der Open Firmware Verzƶgerung automatisch gestartet werden soll."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:862
-msgid ""
-"Here are presented various parameters concerning your machine. Depending on\n"
-"your installed hardware, you may or not, see the following entries:\n"
-"\n"
-" * \"Mouse\": check the current mouse configuration and click on the button\n"
-"to change it if necessary;\n"
-"\n"
-" * \"Keyboard\": check the current keyboard map configuration and click on\n"
-"the button to change that if necessary;\n"
-"\n"
-" * \"Timezone\": DrakX, by default, guesses your time zone from the "
-"language\n"
-"you have chosen. But here again, as for the choice of a keyboard, you may\n"
-"not be in the country for which the chosen language should correspond.\n"
-"Hence, you may need to click on the \"Timezone\" button in order to\n"
-"configure the clock according to the time zone you are in;\n"
-"\n"
-" * \"Printer\": clicking on the \"No Printer\" button will open the printer\n"
-"configuration wizard;\n"
-"\n"
-" * \"Sound card\": if a sound card is detected on your system, it is\n"
-"displayed here. No modification possible at installation time;\n"
-"\n"
-" * \"TV card\": if a TV card is detected on your system, it is displayed\n"
-"here. No modification possible at installation time;\n"
-"\n"
-" * \"ISDN card\": if an ISDN card is detected on your system, it is\n"
-"displayed here. You can click on the button to change the parameters\n"
-"associated with it."
-msgstr ""
-"Hier bekommen Sie verschiedene Parameter Ihres Systems angezeigt. Je nach\n"
-"vorhandener Hardware sehen Sie hier (oder eben nicht) folgende EintrƤge:\n"
-"\n"
-" * ā€˛Mausā€: Kontrollieren Sie die konfigurierte Maus und betƤtigen Sie, "
-"falls\n"
-"notwendig, die SchaltflƤche.\n"
-"\n"
-" * ā€˛Tastaturā€: Kontrollieren Sie die aktuelle Tastaturvorgabe und wƤhlen "
-"Sie\n"
-"die SchaltflƤche, falls Sie die Vorgabe Ƥndern wollen.\n"
-"\n"
-" * ā€˛Zeitzoneā€: ā€˛DrakXā€ versucht die Zeitzone anhand der gewƤhlten Sprache "
-"zu\n"
-"ā€˛erratenā€. Es ist jedoch mƶglich, dass Sie sich nicht in dem Land befinden,\n"
-"das die vorgegebene Sprache erahnen lƤsst. In diesem Fall sollten Sie die\n"
-"SchaltflƤche anwƤhlen, um die Uhr entsprechend Ihrer lokalen Zeitzone zu\n"
-"setzen.\n"
-"\n"
-" * ā€˛Druckerā€: Durch Anwahl der SchaltflƤche ā€˛Kein Druckerā€ starten Sie den\n"
-"Druckerassistenten.\n"
-"\n"
-" * ā€˛Soundkarteā€: Falls eine Soundkarte in Ihrem Rechner gefunden wurde, "
-"wird\n"
-"sie hier angezeigt. Es ist jedoch keine Ƅnderung wƤhrend der Installation\n"
-"mƶglich.\n"
-"\n"
-" * ā€˛TV-Karteā€: Falls eine TV-Karte in Ihrem Rechner gefunden wurde, wird "
-"sie\n"
-"hier angezeigt. Es ist jedoch keine Ƅnderung wƤhrend der Installation\n"
-"mƶglich.\n"
-"\n"
-" * ā€˛ISDN Karteā€: Falls eine ISDN Karte in Ihrem Rechner gefunden wurde, "
-"wird\n"
-"sie hier angezeigt. Durch Anwahl der SchaltflƤche kƶnnen Sie die Parameter\n"
-"Ƥndern."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:891
-msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandrake Linux partition. Be careful, all data present on it will be lost\n"
-"and will not be recoverable!"
-msgstr ""
-"WƤhlen Sie die Festplatte, die sie lƶschen wollen, um Ihre neue Mandrake\n"
-"Linux Distribution darauf zu installieren. Achtung: Alle darauf\n"
-"befindlichen Daten gehen bei diesem Schritt unwiederbringlich verloren!"
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/de/drakx-help.xml
-#: ../../help.pm_.c:896
-msgid ""
-"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"
-"any Windows data.\n"
-"\n"
-"Click on \"Cancel\" to cancel this operation without losing any data and\n"
-"partitions present on this hard drive."
-msgstr ""
-"WƤhlen Sie ā€˛OKā€, wenn Sie alle Partitionen (damit auch alle Daten) dieser\n"
-"Festplatte lƶschen wollen. Achtung: durch BetƤtigen dieser SchaltflƤche\n"
-"werden alle Daten auf der Festplatte unwiederbringlich gelƶscht (auch alle\n"
-"evtl. vorhandenen Windows(TM)-Daten)!\n"
-"\n"
-"WƤhlen Sie ā€˛Abbruchā€, um die vorhandenen Daten unangetastet zu lassen und\n"
-"die Operation abzubrechen."
-
-#: ../../install2.pm_.c:113
-#, c-format
-msgid ""
-"Can't 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 ""
-"Ich kann die Kernmodule, die zu diesem Kern passen, nicht finden (Datei %s "
-"fehlt). Das bedeutet normalerweise das Ihre Startdiskette nicht mit dem "
-"Installationsmedium Ć¼bereinstimmt (Bitte erstellen Sie eine neue "
-"Startdiskette). "
-
-#: ../../install2.pm_.c:169
-#, c-format
-msgid "You must also format %s"
-msgstr "Sie mĆ¼ssen auch %s formatieren."
-
-#: ../../install_any.pm_.c:411
-#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They don't have any known security\n"
-"issues, but some new could be found. In that case, you must make sure to "
-"upgrade\n"
-"as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
-msgstr ""
-"Sie haben die folgenden Server ausgewƤhlt: %s\n"
-"\n"
-"\n"
-"Diese Server werden standardmƤĆig aktiviert. Sie haben keine bekannten\n"
-"Sicherheitsprobleme, es kƶnnen jedoch irgendwann welche gefunden werden.\n"
-"In diesem Fall mĆ¼ssen Sie sicherstellen, dass Sie so schnell wie mƶglich\n"
-" eine Paketaktualisierung vornehmen.\n"
-"\n"
-"\n"
-"Wollen Sie diese Server wirklich installieren?\n"
-
-#: ../../install_any.pm_.c:447
-msgid "Can't use broadcast with no NIS domain"
-msgstr ""
-"Ich kann kein Broadcast machen,\n"
-"da keine NIS DomƤne angegeben wurde"
-
-#: ../../install_any.pm_.c:793
-#, c-format
-msgid "Insert a FAT formatted floppy in drive %s"
-msgstr "Legen Sie eine leere, FAT formatierte Diskette in Laufwerk %s ein."
-
-#: ../../install_any.pm_.c:797
-msgid "This floppy is not FAT formatted"
-msgstr "Diese Diskette ist nich FAT formatiert"
-
-#: ../../install_any.pm_.c:809
-msgid ""
-"To use this saved packages selection, boot installation with ``linux "
-"defcfg=floppy''"
-msgstr ""
-"Um diese gespeicherte Paketauswahl zu verwenden, starten Sie die \n"
-"Installation bitte mit: ā€˛boot defcfg=floppyā€"
-
-#: ../../install_any.pm_.c:831 ../../partition_table.pm_.c:763
-#, c-format
-msgid "Error reading file %s"
-msgstr "Fehler beim Lesen der Datei %s"
-
-#: ../../install_interactive.pm_.c:23
-#, 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"
-
-#: ../../install_interactive.pm_.c:58
-msgid ""
-"You must have a root partition.\n"
-"For this, create a partition (or click on an existing one).\n"
-"Then choose action ``Mount point'' and set it to `/'"
-msgstr ""
-"Sie brauchen eine Verzeichnisbaumwurzel.\n"
-"Erzeugen Sie eine Partition (oder klicken Sie auf eine existierende).\n"
-"WƤhlen Sie ā€˛EinhƤngpunktā€ und setzen Sie ihn auf ā€˛/ā€"
-
-#: ../../install_interactive.pm_.c:63
-msgid "You must have a swap partition"
-msgstr "Sie benƶtigen eine Auslagerungspartition"
-
-#: ../../install_interactive.pm_.c:64
-msgid ""
-"You don't have a swap partition\n"
-"\n"
-"Continue anyway?"
-msgstr ""
-"Sie haben keine Auslagerungspartition\n"
-"\n"
-"Wollen Sie trotzdem fortfahren?"
-
-#: ../../install_interactive.pm_.c:67 ../../install_steps.pm_.c:163
-msgid "You must have a FAT partition mounted in /boot/efi"
-msgstr "Sie mĆ¼ssen eine FAT Partition in ā€˛/boot/efiā€ eingehƤngt haben."
-
-#: ../../install_interactive.pm_.c:90
-msgid "Use free space"
-msgstr "Freien Platz verwenden"
-
-#: ../../install_interactive.pm_.c:92
-msgid "Not enough free space to allocate new partitions"
-msgstr "Nicht genug freier Platz, um die neue Partition anlegen zu kƶnnen."
-
-#: ../../install_interactive.pm_.c:100
-msgid "Use existing partition"
-msgstr "Verwende existierende Partition(en)"
-
-#: ../../install_interactive.pm_.c:102
-msgid "There is no existing partition to use"
-msgstr "Es gibt keine existierende Partition, die ich verwenden kann."
-
-#: ../../install_interactive.pm_.c:109
-msgid "Use the Windows partition for loopback"
-msgstr "Auf der Windows Partition Loopbacks anlegen"
-
-#: ../../install_interactive.pm_.c:112
-msgid "Which partition do you want to use for Linux4Win?"
-msgstr "Auf welche Partition wollen Sie Linux4Win installieren?"
-
-#: ../../install_interactive.pm_.c:114
-msgid "Choose the sizes"
-msgstr "WƤhlen Sie die GrƶĆen"
-
-#: ../../install_interactive.pm_.c:115
-msgid "Root partition size in MB: "
-msgstr "GrƶĆe der Verzeichnisbaumwurzel-Partition in MB: "
-
-#: ../../install_interactive.pm_.c:116
-msgid "Swap partition size in MB: "
-msgstr "GrƶĆe der Auslagerungspartition in MB: "
-
-#: ../../install_interactive.pm_.c:125
-msgid "Use the free space on the Windows partition"
-msgstr "Den freien Platz der Windows Partition verwenden"
-
-#: ../../install_interactive.pm_.c:128
-msgid "Which partition do you want to resize?"
-msgstr "Bei welcher Partition wollen Sie die GrƶĆe Ƥndern?"
-
-#: ../../install_interactive.pm_.c:130
-msgid "Computing Windows filesystem bounds"
-msgstr "Errechne die Grenzen des Windows Dateisystems"
-
-#: ../../install_interactive.pm_.c:133
-#, c-format
-msgid ""
-"The FAT resizer is unable to handle your partition, \n"
-"the following error occured: %s"
-msgstr ""
-"Das Werkzeug zum VerƤndern der FAT PartitionsgrƶĆe kann mit der \n"
-"Partition nicht arbeiten. Folgender Fehler trat auf:\n"
-"%s"
-
-#: ../../install_interactive.pm_.c:136
-msgid "Your Windows partition is too fragmented, please run ``defrag'' first"
-msgstr ""
-"Ihre Windows-Partition ist zu sehr fragmentiert.\n"
-"Starten Sie bitte erst ā€˛defragā€ unter Windows."
-
-#: ../../install_interactive.pm_.c:137
-msgid ""
-"WARNING!\n"
-"\n"
-"DrakX will now resize your Windows partition. Be careful:\n"
-"this operation is dangerous. If you have not already done\n"
-"so, you should first exit the installation, run scandisk\n"
-"under Windows (and optionally run defrag), then restart the\n"
-"installation. You should also backup your data.\n"
-"When sure, press Ok."
-msgstr ""
-"WARNUNG!\n"
-"\n"
-"DrakX wird nun die GrƶĆe Ihrer Windows Partition verƤndern.\n"
-"Seien Sie Vorsichtig: Diese Aktion ist gefƤhrlich. Falls Sie es noch\n"
-"nicht getan haben, sollten Sie nun die Installation abbrechen, um\n"
-"scandisk (sowie mƶglicherweise defrag) unter Windows auf die Partition \n"
-"anzuwenden. AnschlieĆend kƶnnen Sie die Installation erneut starten.\n"
-"Sie sollten natĆ¼rlich generell Sicherheitskopien Ihrer Daten angelegt\n"
-"haben. Falls dies der Fall ist, kƶnnen Sie mit OK fortfahren."
-
-#: ../../install_interactive.pm_.c:147
-msgid "Which size do you want to keep for windows on"
-msgstr "Wieviel Platz benƶtigen sie noch fĆ¼r Windows auf"
-
-#: ../../install_interactive.pm_.c:148
-#, c-format
-msgid "partition %s"
-msgstr "Partition %s"
-
-#: ../../install_interactive.pm_.c:155
-#, c-format
-msgid "FAT resizing failed: %s"
-msgstr "FAT GrƶĆenanpassung schlug Fehl: %s"
-
-#: ../../install_interactive.pm_.c:170
-msgid ""
-"There is no FAT partitions to resize or to use as loopback (or not enough "
-"space left)"
-msgstr ""
-"Sie haben keine FAT Partition, deren GrƶĆe ich anpassen kann, bzw. die\n"
-"ich als Loopback verwenden kann (mƶglicherweise haben Sie auch einfach\n"
-"nur nichtmehr genĆ¼gend freien Speicher)."
-
-#: ../../install_interactive.pm_.c:176
-msgid "Erase entire disk"
-msgstr "Komplette Platte lƶschen"
-
-#: ../../install_interactive.pm_.c:176
-msgid "Remove Windows(TM)"
-msgstr "Windows(TM) lƶschen"
-
-#: ../../install_interactive.pm_.c:179
-msgid "You have more than one hard drive, which one do you install linux on?"
-msgstr ""
-"Sie haben mehr als eine Festplatte.\n"
-"Auf welche soll GNU/Linux installiert werden?"
-
-#: ../../install_interactive.pm_.c:182
-#, c-format
-msgid "ALL existing partitions and their data will be lost on drive %s"
-msgstr ""
-"SĆ„MTLICHE existierende Partitionen samt der derauf befindlichen Daten \n"
-"auf Laufwerk %s gehen dabei verloren"
-
-#: ../../install_interactive.pm_.c:190
-msgid "Custom disk partitioning"
-msgstr "Benutzerdefinierte Partitionierung"
-
-#: ../../install_interactive.pm_.c:194
-msgid "Use fdisk"
-msgstr "Fdisk verwenden"
-
-#: ../../install_interactive.pm_.c:197
-#, c-format
-msgid ""
-"You can now partition %s.\n"
-"When you are done, don't forget to save using `w'"
-msgstr ""
-"Sie kƶnnen nun %s partitionieren.\n"
-"Vergessen Sie nicht die Einstellungen mittels ,w` zu speichern, \n"
-"sobald Sie fertig sind."
-
-#: ../../install_interactive.pm_.c:226
-msgid "You don't have enough free space on your Windows partition"
-msgstr "Sie haben nicht genug freien Platz auf Ihrer Windows Partition."
-
-#: ../../install_interactive.pm_.c:242
-msgid "I can't find any room for installing"
-msgstr "Ich finde nicht genug Platz fĆ¼r die Installation."
-
-#: ../../install_interactive.pm_.c:246
-msgid "The DrakX Partitioning wizard found the following solutions:"
-msgstr "Der DrakX Partitionierungsassistent fand folgende Lƶsung:"
-
-#: ../../install_interactive.pm_.c:251
-#, c-format
-msgid "Partitioning failed: %s"
-msgstr "Das Partitionieren schlug Fehl: %s"
-
-#: ../../install_interactive.pm_.c:261
-msgid "Bringing up the network"
-msgstr "Netzwerkverbindung herstellen"
-
-#: ../../install_interactive.pm_.c:266
-msgid "Bringing down the network"
-msgstr "Netzwerkverbindung trennen"
-
-#: ../../install_steps.pm_.c:76
-msgid ""
-"An error occurred, but I don't 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!"
-
-#: ../../install_steps.pm_.c:205
-#, c-format
-msgid "Duplicate mount point %s"
-msgstr "Den EinhƤngpunkt %s kopieren"
-
-#: ../../install_steps.pm_.c:388
-msgid ""
-"Some important packages didn't get installed properly.\n"
-"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl Mandrake/RPMS/*.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"
-"Mandrake/rpms/*.rpmā€\n"
-
-#: ../../install_steps.pm_.c:458
-#, c-format
-msgid "Welcome to %s"
-msgstr "Willkommen auf %s"
-
-#: ../../install_steps.pm_.c:513 ../../install_steps.pm_.c:755
-msgid "No floppy drive available"
-msgstr "Kein Disketten-Laufwerk verfĆ¼gbar"
-
-#: ../../install_steps_auto_install.pm_.c:76
-#: ../../install_steps_stdio.pm_.c:22
-#, c-format
-msgid "Entering step `%s'\n"
-msgstr "Beginn von Schritt ā€˛%sā€\n"
-
-#: ../../install_steps_gtk.pm_.c:148
-msgid ""
-"Your system is low on resource. You may have some problem installing\n"
-"Mandrake Linux. 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."
-
-#: ../../install_steps_gtk.pm_.c:159 ../../install_steps_interactive.pm_.c:224
-msgid "Install Class"
-msgstr "Installationsart"
-
-#: ../../install_steps_gtk.pm_.c:162
-msgid "Please choose one of the following classes of installation:"
-msgstr "Bitte wƤhlen Sie eine der folgenden Installationsklassen:"
-
-#: ../../install_steps_gtk.pm_.c:228
-#, c-format
-msgid ""
-"The total size for the groups you have selected is approximately %d MB.\n"
-msgstr "Die GesamtgrƶĆe der zu installierenden Pakete betrƤgt etwa %d MB.\n"
-
-#: ../../install_steps_gtk.pm_.c:230
-#, c-format
-msgid ""
-"If you wish to install less than this size,\n"
-"select the percentage of packages that you want to install.\n"
-"\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of 100%% will install all selected packages."
-msgstr ""
-"Falls Sie weniger als diese Menge installieren wollen, \n"
-"geben Sie (in Prozent) an, wie viele Pakete Sie installieren wollen.\n"
-"\n"
-"Ein geringer Prozentsatz installiert nur die wichtigsten Pakete;\n"
-"100%% installiert alle ausgewƤhlten Pakete."
-
-#: ../../install_steps_gtk.pm_.c:235
-#, c-format
-msgid ""
-"You have space on your disk for only %d%% of these packages.\n"
-"\n"
-"If you wish to install less than this,\n"
-"select the percentage of packages that you want to install.\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of %d%% will install as many packages as possible."
-msgstr ""
-"Sie haben nur Platz fĆ¼r %d%% der ausgewƤhlten Pakete. \n"
-"\n"
-"Falls Sie weniger als diese Menge installieren wollen, \n"
-"geben Sie (in Prozent) an, wie viele Pakete Sie installieren wollen.\n"
-"Ein geringer Prozentsatz installiert nur die wichtigsten Pakete;\n"
-"%d%% installiert so viele Pakete wie mƶglich."
-
-#: ../../install_steps_gtk.pm_.c:241
-msgid "You will be able to choose them more specifically in the next step."
-msgstr "Im nƤchsten Schritt kƶnnen Sie genauer auswƤhlen"
-
-#: ../../install_steps_gtk.pm_.c:243
-msgid "Percentage of packages to install"
-msgstr "Prozent der zu installierenden Pakete"
-
-#: ../../install_steps_gtk.pm_.c:291 ../../install_steps_interactive.pm_.c:705
-msgid "Package Group Selection"
-msgstr "Auswahl der Paketgruppen"
-
-#: ../../install_steps_gtk.pm_.c:323 ../../install_steps_interactive.pm_.c:720
-msgid "Individual package selection"
-msgstr "Individuelle Paketauswahl"
-
-#: ../../install_steps_gtk.pm_.c:346 ../../install_steps_interactive.pm_.c:645
-#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "GesamtgrƶĆe: %d / %d MB"
-
-#: ../../install_steps_gtk.pm_.c:391
-msgid "Bad package"
-msgstr "UngĆ¼ltiges Paket"
-
-#: ../../install_steps_gtk.pm_.c:392
-#, c-format
-msgid "Name: %s\n"
-msgstr "Name: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:393
-#, c-format
-msgid "Version: %s\n"
-msgstr "Version: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:394
-#, c-format
-msgid "Size: %d KB\n"
-msgstr "GrƶĆe: %d KB\n"
-
-#: ../../install_steps_gtk.pm_.c:395
-#, c-format
-msgid "Importance: %s\n"
-msgstr "Wichtigkeit: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:417
-msgid ""
-"You can't 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."
-
-#: ../../install_steps_gtk.pm_.c:422
-msgid "The following packages are going to be installed"
-msgstr "Die folgenden Pakete werden installiert werden"
-
-#: ../../install_steps_gtk.pm_.c:423
-msgid "The following packages are going to be removed"
-msgstr "Die folgenden Pakete werden entfernt"
-
-#: ../../install_steps_gtk.pm_.c:435
-msgid "You can't select/unselect this package"
-msgstr "Sie kƶnnen dieses Paket nicht auswƤhlen/es aus der Auswahl entfernen."
-
-#: ../../install_steps_gtk.pm_.c:447
-msgid "This is a mandatory package, it can't be unselected"
-msgstr "Dieses Paket ist existenziell, sie kƶnnen es nicht deselektieren"
-
-#: ../../install_steps_gtk.pm_.c:449
-msgid "You can't unselect this package. It is already installed"
-msgstr ""
-"Sie kƶnnen dieses Paket nicht aus der Auswahl entfernen. \n"
-"Es ist bereits installiert!"
-
-#: ../../install_steps_gtk.pm_.c:453
-msgid ""
-"This package must be upgraded\n"
-"Are you sure you want to deselect it?"
-msgstr ""
-"Dieses Paket muss aktualisiert werden.\n"
-"Sind Sie sicher, dass Sie es aus der Auswahl entfernen wollen?"
-
-#: ../../install_steps_gtk.pm_.c:457
-msgid "You can't unselect this package. It must be upgraded"
-msgstr ""
-"Sie kƶnnen dieses Paket nicht aus der Auswahl entfernen. \n"
-"Es muss aktualisiert werden!"
-
-#: ../../install_steps_gtk.pm_.c:462
-msgid "Show automatically selected packages"
-msgstr "Anzeige automatisch markierter Pakete"
-
-#: ../../install_steps_gtk.pm_.c:463 ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Install"
-msgstr "Installation"
-
-#: ../../install_steps_gtk.pm_.c:466
-msgid "Load/Save on floppy"
-msgstr "Laden von/Speichern auf Diskette"
-
-#: ../../install_steps_gtk.pm_.c:467
-msgid "Updating package selection"
-msgstr "Erneuere Paket Auswahl"
-
-#: ../../install_steps_gtk.pm_.c:472
-msgid "Minimal install"
-msgstr "Minimal-Installation"
-
-#: ../../install_steps_gtk.pm_.c:487 ../../install_steps_interactive.pm_.c:555
-msgid "Choose the packages you want to install"
-msgstr "Zu installierende Pakete auswƤhlen"
-
-#: ../../install_steps_gtk.pm_.c:503 ../../install_steps_interactive.pm_.c:787
-msgid "Installing"
-msgstr "Installation wird durchgefĆ¼hrt"
-
-#: ../../install_steps_gtk.pm_.c:509
-msgid "Estimating"
-msgstr "SchƤtzung"
-
-#: ../../install_steps_gtk.pm_.c:516
-msgid "Time remaining "
-msgstr "Verbleibende Zeit "
-
-#: ../../install_steps_gtk.pm_.c:528
-msgid "Please wait, preparing installation"
-msgstr "Bitte warten, bereite Installation vor"
-
-#: ../../install_steps_gtk.pm_.c:611
-#, c-format
-msgid "%d packages"
-msgstr "%d Pakete"
-
-#: ../../install_steps_gtk.pm_.c:616
-#, c-format
-msgid "Installing package %s"
-msgstr "Installation des Pakets %s"
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-#: ../../standalone/drakautoinst_.c:203
-msgid "Accept"
-msgstr "Akzeptieren"
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-msgid "Refuse"
-msgstr "ZurĆ¼ckweisen"
-
-#: ../../install_steps_gtk.pm_.c:658 ../../install_steps_interactive.pm_.c:812
-#, c-format
-msgid ""
-"Change your Cd-Rom!\n"
-"\n"
-"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
-"done.\n"
-"If you don't have it, press Cancel to avoid installation from this Cd-Rom."
-msgstr ""
-"Bitte wechseln Sie die CD!\n"
-"\n"
-"Bitte legen Sie die CD-ROM ā€˛%sā€ in Ihr Laufwerk,\n"
-"dann drĆ¼cken Sie OK.\n"
-"Falls Sie sie nicht vorliegen haben, drĆ¼cken Sie Abbruch."
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_gtk.pm_.c:676
-#: ../../install_steps_interactive.pm_.c:824
-#: ../../install_steps_interactive.pm_.c:828
-msgid "Go on anyway?"
-msgstr "Wollen Sie trotzdem fortfahren?"
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_interactive.pm_.c:824
-msgid "There was an error ordering packages:"
-msgstr "Bei der Anforderung folgender Pakete trat ein Fehler auf:"
-
-#: ../../install_steps_gtk.pm_.c:676 ../../install_steps_interactive.pm_.c:828
-msgid "There was an error installing packages:"
-msgstr "Bei der Installation der Pakete trat ein Fehler auf:"
-
-#: ../../install_steps_interactive.pm_.c:10
-msgid ""
-"\n"
-"Warning\n"
-"\n"
-"Please read carefully the terms below. If you disagree with any\n"
-"portion, you are not allowed to install the next CD media. Press 'Refuse' \n"
-"to continue the installation without using these media.\n"
-"\n"
-"\n"
-"Some components contained in the next CD media are not governed\n"
-"by the GPL License or similar agreements. Each such component is then\n"
-"governed by the terms and conditions of its own specific license. \n"
-"Please read carefully and comply with such specific licenses before \n"
-"you use or redistribute the said components. \n"
-"Such licenses will in general prevent the transfer, duplication \n"
-"(except for backup purposes), redistribution, reverse engineering, \n"
-"de-assembly, de-compilation or modification of the component. \n"
-"Any breach of agreement will immediately terminate your rights under \n"
-"the specific license. Unless the specific license terms grant you such\n"
-"rights, you usually cannot install the programs on more than one\n"
-"system, or adapt it to be used on a network. In doubt, please contact \n"
-"directly the distributor or editor of the component. \n"
-"Transfer to third parties or copying of such components including the \n"
-"documentation is usually forbidden.\n"
-"\n"
-"\n"
-"All rights to the components of the next CD media belong to their \n"
-"respective authors and are protected by intellectual property and \n"
-"copyright laws applicable to software programs.\n"
-msgstr ""
-"\n"
-"Achtung\n"
-"\n"
-"Bitte lesen Sie die nachfolgenden AusfĆ¼hrungen sorgfƤltig. Wenn Sie mit\n"
-"irgendeinem Teil nicht einverstanden sind, dĆ¼rfen Sie nicht den Inhalt\n"
-"der folgenden CDs installieren. Klicken Sie auf ā€˛ZurĆ¼ckweisenā€, um die\n"
-"Installation ohne Verwendung dieser CDs fortzusetzen.\n"
-"\n"
-"\n"
-"Einige Komponenten auf den nachfolgenden CDs unterliegen nicht der GPL\n"
-"oder Ƥhnlichen Lizenzabkommen. Jede dieser Komponenten unterliegt dann\n"
-"den Bedingungen ihrer eigenen spezifischen Lizenz.\n"
-"Bitte lesen Sie diese Lizenzen sorgfƤltig und nur wenn Sie mit ihnen\n"
-"einverstanden sind, dĆ¼rfen Sie die entsprechenden Produkte entsprechend\n"
-"ihrer Lizenz benutzen und weitergeben.\n"
-"Solche Lizenzen verbieten im allgemeinen das Transferieren, Duplizieren\n"
-"(auĆer fĆ¼r Sicherheitskopien), Weitergeben, Decompilieren, Disassamblen\n"
-"oder VerƤndern der Komponente.\n"
-"Jeder Bruch des Lizenzabkommens beendet sofort die Ihnen im Rahmen der\n"
-"Lizenz eingerƤumten Rechte. Wenn die jeweilige Lizenz Ihnen nicht\n"
-"entsprechende Rechte einrƤumt, dĆ¼rfen Sie die Programme nicht auf mehr\n"
-"als einem System installieren oder zur Benutzung in einem Netzwerk\n"
-"einrichten. Im Zweifelsfall kontaktieren Sie bitte den Vertreiber oder\n"
-"Herausgeber der jeweiligen Komponente.\n"
-"Transfer an Dritte oder Kopieren solcher Komponenten inklusive ihrer\n"
-"Dokumentation ist normalerweise verboten.\n"
-"\n"
-"\n"
-"Alle Rechte an den Komponenten der nachfolgenden CDs liegen bei den\n"
-"jeweiligen Autoren und sind durch die Urheberrechtsgesetze fĆ¼r\n"
-"Softwareprodukte geschĆ¼tzt.\n"
-
-#: ../../install_steps_interactive.pm_.c:67
-msgid "An error occurred"
-msgstr "Es ist ein Fehler aufgetreten"
-
-#: ../../install_steps_interactive.pm_.c:85
-msgid "Do you really want to leave the installation?"
-msgstr "Mƶchten Sie die Installation wirklich beenden?"
-
-#: ../../install_steps_interactive.pm_.c:108
-msgid "License agreement"
-msgstr "Lizenz"
-
-#: ../../install_steps_interactive.pm_.c:109
-msgid ""
-"Introduction\n"
-"\n"
-"The operating system and the different components available in the Mandrake "
-"Linux distribution \n"
-"shall be called the \"Software Products\" hereafter. The Software Products "
-"include, but are not \n"
-"restricted to, the set of programs, methods, rules and documentation related "
-"to the operating \n"
-"system and the different components of the Mandrake Linux distribution.\n"
-"\n"
-"\n"
-"1. License Agreement\n"
-"\n"
-"Please read carefully this document. This document is a license agreement "
-"between you and \n"
-"MandrakeSoft S.A. which applies to the Software Products.\n"
-"By installing, duplicating or using the Software Products in any manner, you "
-"explicitly \n"
-"accept and fully agree to conform to the terms and conditions of this "
-"License. \n"
-"If you disagree with any portion of the License, you are not allowed to "
-"install, duplicate or use \n"
-"the Software Products. \n"
-"Any attempt to install, duplicate or use the Software Products in a manner "
-"which does not comply \n"
-"with the terms and conditions of this License is void and will terminate "
-"your rights under this \n"
-"License. Upon termination of the License, you must immediately destroy all "
-"copies of the \n"
-"Software Products.\n"
-"\n"
-"\n"
-"2. Limited Warranty\n"
-"\n"
-"The Software Products and attached documentation are provided \"as is\", "
-"with no warranty, to the \n"
-"extent permitted by law.\n"
-"MandrakeSoft S.A. will, in no circumstances and to the extent permitted by "
-"law, be liable for any special,\n"
-"incidental, direct or indirect damages whatsoever (including without "
-"limitation damages for loss of \n"
-"business, interruption of business, financial loss, legal fees and penalties "
-"resulting from a court \n"
-"judgment, or any other consequential loss) arising out of the use or "
-"inability to use the Software \n"
-"Products, even if MandrakeSoft S.A. has been advised of the possibility or "
-"occurance of such \n"
-"damages.\n"
-"\n"
-"LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN SOME "
-"COUNTRIES\n"
-"\n"
-"To the extent permitted by law, MandrakeSoft S.A. or its distributors will, "
-"in no circumstances, be \n"
-"liable for any special, incidental, direct or indirect damages whatsoever "
-"(including without \n"
-"limitation damages for loss of business, interruption of business, financial "
-"loss, legal fees \n"
-"and penalties resulting from a court judgment, or any other consequential "
-"loss) arising out \n"
-"of the possession and use of software components or arising out of "
-"downloading software components \n"
-"from one of Mandrake Linux sites which are prohibited or restricted in some "
-"countries by local laws.\n"
-"This limited liability applies to, but is not restricted to, the strong "
-"cryptography components \n"
-"included in the Software Products.\n"
-"\n"
-"\n"
-"3. The GPL License and Related Licenses\n"
-"\n"
-"The Software Products consist of components created by different persons or "
-"entities. Most \n"
-"of these components are governed under the terms and conditions of the GNU "
-"General Public \n"
-"Licence, hereafter called \"GPL\", or of similar licenses. Most of these "
-"licenses allow you to use, \n"
-"duplicate, adapt or redistribute the components which they cover. Please "
-"read carefully the terms \n"
-"and conditions of the license agreement for each component before using any "
-"component. Any question \n"
-"on a component license should be addressed to the component author and not "
-"to MandrakeSoft.\n"
-"The programs developed by MandrakeSoft S.A. are governed by the GPL License. "
-"Documentation written \n"
-"by MandrakeSoft S.A. is governed by a specific license. Please refer to the "
-"documentation for \n"
-"further details.\n"
-"\n"
-"\n"
-"4. Intellectual Property Rights\n"
-"\n"
-"All rights to the components of the Software Products belong to their "
-"respective authors and are \n"
-"protected by intellectual property and copyright laws applicable to software "
-"programs.\n"
-"MandrakeSoft S.A. reserves its rights to modify or adapt the Software "
-"Products, as a whole or in \n"
-"parts, by all means and for all purposes.\n"
-"\"Mandrake\", \"Mandrake Linux\" and associated logos are trademarks of "
-"MandrakeSoft S.A. \n"
-"\n"
-"\n"
-"5. Governing Laws \n"
-"\n"
-"If any portion of this agreement is held void, illegal or inapplicable by a "
-"court judgment, this \n"
-"portion is excluded from this contract. You remain bound by the other "
-"applicable sections of the \n"
-"agreement.\n"
-"The terms and conditions of this License are governed by the Laws of "
-"France.\n"
-"All disputes on the terms of this license will preferably be settled out of "
-"court. As a last \n"
-"resort, the dispute will be referred to the appropriate Courts of Law of "
-"Paris - France.\n"
-"For any question on this document, please contact MandrakeSoft S.A. \n"
-msgstr ""
-"Bei dieser Ćbersetzung handelt es sich um eine inoffizielle Ćbersetzung\n"
-"der Mandrake Linux-Lizenz in die deutsche Sprache. Sie ist keine\n"
-"rechtsverbindliche Darstellung der Lizenzbedingungen der Software in\n"
-"dieser Distribution - nur der ursprĆ¼ngliche franzƶsische Text der\n"
-"Mandrake Linux Lizenz ist rechtsverbindlich. Wir hoffen aber, dass diese\n"
-"Ćbersetzung den deutschsprechenden Benutzern das VerstƤndnis dieser\n"
-"Lizenz erleichtert.\n"
-"\n"
-"\n"
-"EinfĆ¼hrung\n"
-"\n"
-"Das Betriebssystem und die anderen Komponenten, die in Mandrake Linux\n"
-"enthalten sind, werden hier ā€˛Software-Produkteā€ genannt. Die\n"
-"Software-Produkte umfassen, aber sind nicht beschrƤnkt auf, die\n"
-"Gesamtheit der Programme, Methoden, Regeln, und Dokumentation, welche\n"
-"zum Betriebssystem und den anderen Komponenten der Mandrake Linux\n"
-"Distribution gehƶren.\n"
-"\n"
-"\n"
-"1. Lizenzabkommen\n"
-"\n"
-"Bitte lesen Sie dieses Dokument sorgfƤltig. Dieses Dokument ist ein\n"
-"Lizenzabkommen zwischen Ihnen und MandrakeSoft S. A. welches sich auf\n"
-"die Software-Produkte bezieht.\n"
-"Durch Installation, Duplizierung oder Benutzung der Software-Produkte in\n"
-"irgendeiner Art und Weise erklƤren Sie sich mit den Bedingungen dieser\n"
-"Lizenz einverstanden.\n"
-"Wenn Sie mit irgendeinem Punkt dieser Lizenz nicht einverstanden sind,\n"
-"ist es Ihnen nicht erlaubt, die Software-Produkte zu installieren,\n"
-"duplizieren oder zu benutzen.\n"
-"Mit jedem Versuch, die Software-Produkte in einer Art und Weise zu\n"
-"benutzen, die nicht den Bedingungen dieser Lizenz entspricht, verlieren\n"
-"Sie die Ihnen mit dieser Lizenz eingerƤumten Rechte. In diesem Fall\n"
-"haben Sie unverzĆ¼glich alle Kopien der Software-Produkte zu vernichten.\n"
-"\n"
-"\n"
-"2. EingeschrƤnkte Garantie\n"
-"\n"
-"Die Software-Produkte und die beigefĆ¼gte Dokumentation werden dem\n"
-"Benutzer lediglich zur VerfĆ¼gung gestellt, es wird keinerlei Garantie\n"
-"gegeben soweit es gesetzlich zulƤssig ist.\n"
-"MandrakeSoft S. A. haftet unter keinen UmstƤnden, soweit gesetzlich\n"
-"zulƤssig, fĆ¼r direkte oder indirekte SchƤden irgendwelcher Art,\n"
-"(inklusive uneingeschrƤnkt SchƤden aufgrund Verlust von\n"
-"GeschƤftsbeziehungen, Unterbrechung von GeschƤftsvorgƤngen,\n"
-"finanziellen Verlust, GebĆ¼hren oder Strafen aufgrund gerichtlicher\n"
-"Entscheide, oder jegliche FolgeschƤden) die aufgrund der Benutzung oder\n"
-"der Unmƶglichkeit der Benutzung der Software-Produkte entstehen, auch\n"
-"wenn MandrakeSoft S. A. Ć¼ber die Mƶglichkeit und das Auftreten\n"
-"derartiger SchƤden unterrichtet wurde.\n"
-"\n"
-"\n"
-"EINGESCHRĆ„NKTE VERANTWORTLICHKEIT BEZOGEN AUF DEN BESITZ UND DIE\n"
-"BENUTZUNG VON SOFTWARE, DIE IN EINIGEN LĆ„NDERN VERBOTEN IST.\n"
-"\n"
-"\n"
-"Soweit gesetzlich zulƤssig, haften MandrakeSoft S. A. und deren\n"
-"Vertreiber unter keinen UmstƤnden fĆ¼r direkte oder indirekte SchƤden\n"
-"irgendwelcher Art, (inklusive uneingeschrƤnkt SchƤden aufgrund Verlust\n"
-"von GeschƤftsbeziehungen, Unterbrechung von GeschƤftsvorgƤngen,\n"
-"finanziellen Verlust, GebĆ¼hren oder Strafen aufgrund gerichtlicher\n"
-"Entscheide, oder jegliche FolgeschƤden) die aufgrund des Besitzes und\n"
-"der Benutzung von Software-Komponenten oder aufgrund des Ladens von\n"
-"Software-Komponenten von den Internet-Servern von MandrakeSoft S. A.,\n"
-"deren Besitz und Benutzung in einigen LƤndern aufgrund lokaler Gesetze\n"
-"nicht gestattet ist, entstehen.\n"
-"Diese EinschrƤnkung der Verantwortlichkeit bezieht sich auch, aber nicht\n"
-"nur, auf die Komponenten fĆ¼r starke Kryptografie enthalten in den\n"
-"Software-Produkten.\n"
-"\n"
-"\n"
-"3. Die GPL und verwandte Lizenzen\n"
-"\n"
-"Die Software-Produkte bestehen aus Komponenten, die von verschiedenen\n"
-"Personen und Einrichtungen erstellt wurden. Die meisten Komponenten\n"
-"unterliegen den Bedingungen der GNU General Public License, im folgenden\n"
-"ā€˛GPLā€ genannt, oder Ƥhnlichen Lizenzen. Die meisten dieser Lizenzen\n"
-"erlauben es, die Komponenten, die diesen Lizenzen unterliegen, zu\n"
-"benutzen, zu duplizieren, anzupassen, und weiterzugeben. Bitte lesen sie\n"
-"sorgfƤltig die Bedingungen der Lizenzabkommen von jeder Komponente,\n"
-"bevor Sie sie benutzen. Jegliche Frage zur Lizenz einer Komponente ist an\n"
-"den Autor der Komponente und nicht an MandrakeSoft S. A. zu richten. Die\n"
-"von MandrakeSoft S. A. erstellten Programme unterliegen der GPL.\n"
-"Von MandrakeSoft S. A. geschriebene Dokumentation unterliegt einer\n"
-"spezifischen Lizenz. Bitte lesen Sie die Dokumentation fĆ¼r weitere\n"
-"Details.\n"
-"\n"
-"\n"
-"4. Geistiges Eigentum\n"
-"\n"
-"Alle Rechte an den Komponenten der Software-Produkte liegen bei den\n"
-"entsprechenden Autoren und sind durch die Urheberrechtsgesetze fĆ¼r\n"
-"Softwareprodukte geschĆ¼tzt.\n"
-"MandrakeSoft S. A. behƤlt sich das Recht vor, die Software-Produkte zu\n"
-"modifizieren und anzupassen.\n"
-"ā€˛Mandrakeā€, ā€˛Mandrake Linuxā€ und entsprechende Logos sind eingetragene\n"
-"Warenzeichen der MandrakeSoft S. A..\n"
-"\n"
-"\n"
-"5. Gesetzliche Bestimmungen\n"
-"\n"
-"Wenn irgendein Teil dieses Lizenzabkommens durch einen Gerichtsentscheid\n"
-"fĆ¼r ungĆ¼ltig, illegal oder inakzeptabel erklƤrt wird, wird dieser Teil\n"
-"aus dem Abkommen ausgeschlossen. Sie bleiben weiterhin an die anderen,\n"
-"anwendbaren Teile gebunden.\n"
-"Die Bedingungen dieses Lizenzabkommens unterliegen den Gesetzen von\n"
-"Frankreich. Alle Unstimmigkeiten bezĆ¼glich der Bedingungen dieser Lizenz\n"
-"werden vorzugsweise auĆergerichtlich beigelegt. Letztes Mittel ist das\n"
-"zustƤndige Gericht in Paris, Frankreich.\n"
-"Zu jeglicher Frage zu diesem Dokument kontaktieren Sie bitte\n"
-"MandrakeSoft S. A..\n"
-"Introduction\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"Hier die franzƶsche Version:\n"
-"\n"
-"Le systĆØme d'exploitation et les divers composants disponibles dans la \n"
-"distribution Mandrake Linux sont ci-aprĆØs dĆ©nommĆ©s ensemble les \n"
-"Ā« Logiciels Ā». Les Logiciels comprennent notamment, mais de faƧon non \n"
-"limitative, l'ensemble des programmes, procĆ©dĆ©s, rĆØgles et documentations \n"
-"relatifs au systĆØme d'exploitation et aux divers composants de la \n"
-"distribution Mandrake Linux.\n"
-"\n"
-"\n"
-"1. Licence\n"
-"\n"
-"Veuillez lire attentivement le prƩsent document. Ce document constitue \n"
-"un contrat de licence entre vous (personne physique ou personne morale) et \n"
-"MandrakeSoft S.A. portant sur les Logiciels.\n"
-"Le fait d'installer, de reproduire ou d'utiliser les Logiciels de quelque \n"
-"maniĆØre que ce soit indique que vous reconnaissez avoir prĆ©alablement eu \n"
-"connaissance et que vous acceptez de vous conformer aux termes et "
-"conditions \n"
-"du prƩsent contrat de licence. En cas de dƩsaccord avec le prƩsent "
-"document \n"
-"vous n'ĆŖtes pas autorisĆ© Ć  installer, reproduire et utiliser de quelque \n"
-"maniĆØre que ce soit ce produit.\n"
-"Le contrat de licence sera rƩsiliƩ automatiquement et sans prƩavis dans le \n"
-"cas oĆ¹ vous ne vous conformeriez pas aux dispositions du prĆ©sent document. \n"
-"En cas de rƩsiliation vous devrez immƩdiatement dƩtruire tout exemplaire "
-"et \n"
-"toute copie de tous programmes et de toutes documentations qui constituent \n"
-"le systĆØme d'exploitation et les divers composants disponibles dans la \n"
-"distribution Mandrake Linux.\n"
-"\n"
-"\n"
-"2. Garantie et limitations de garantie\n"
-"\n"
-"Les Logiciels et la documentation qui les accompagne sont fournis en "
-"l'Ć©tat \n"
-"et sans aucune garantie. MandrakeSoft S.A. dƩcline toute responsabilitƩ \n"
-"dƩcoulant d'un dommage direct, spƩcial, indirect ou accessoire, de quelque \n"
-"nature que ce soit, en relation avec l'utilisation des Logiciels, "
-"notamment \n"
-"et de faƧon non limitative, tout dommage entraƮnƩ par les pertes de \n"
-"bƩnƩfices, interruptions d'activitƩ, pertes d'informations commerciales ou \n"
-"autres pertes pƩcuniaires, ainsi que des Ʃventuelles condamnations et \n"
-"indemnitĆ©s devant ĆŖtre versĆ©es par suite d'une dĆ©cision de justice, et ce \n"
-"mĆŖme si MandrakeSoft S.A. a Ć©tĆ© informĆ©e de la survenue ou de \n"
-"l'ƩventualitƩ de tels dommages.\n"
-"\n"
-"AVERTISSEMENT QUANT A LA DETENTION OU L'UTILISATION DE LOGICIELS \n"
-"PROHIBES DANS CERTAINS PAYS \n"
-"\n"
-"En aucun cas, ni MandrakeSoft S.A. ni ses fournisseurs ne pourront ĆŖtre \n"
-"tenus responsable Ơ raison d'un prƩjudice spƩcial, direct, indirect ou \n"
-"accessoire, de quelque nature que ce soit (notamment et de faƧon non \n"
-"limitative les pertes de bƩnƩfices, interruptions d'activitƩ, pertes \n"
-"d'informations commerciales ou autres pertes pƩcuniaires, ainsi que \n"
-"des Ć©ventuelles condamnations et indemnitĆ©s devant ĆŖtre versĆ©es par suite \n"
-"d'une dƩcision de justice) qui ferait suite Ơ l'utilisation, la dƩtention \n"
-"ou au simple tƩlƩchargement depuis l'un des sites de tƩlƩchargement de \n"
-"Mandrake Linux de logiciels prohibƩs par la lƩgislation Ơ laquelle vous \n"
-"ĆŖtes soumis. Cet avertissement concerne notamment certains logiciels de \n"
-"cryptographie fournis avec les Logiciels.\n"
-"\n"
-"\n"
-"3. Licence GPL et autres licences\n"
-"\n"
-"Les Logiciels sont constituƩs de modules logiciels crƩƩs par diverses \n"
-"personnes (physiques ou morales). Nombre d'entre eux sont distribuƩs sous \n"
-"les termes de la GNU General Public Licence (ci-aprĆØs dĆ©nommĆ©e Ā« GPL Ā») ou \n"
-"d'autres licences similaires. La plupart de ces licences vous permettent \n"
-"de copier, d'adapter ou de redistribuer les modules logiciels qu'elles \n"
-"rƩgissent. Veuillez lire et agrƩer les termes et conditions des licences \n"
-"accompagnant chacun d'entre eux avant de les utiliser. Toute question \n"
-"concernant la licence de chaque Logiciel est Ć  soumettre Ć  l'auteur (ou \n"
-"ses reprƩsentants) du Logiciel et non Ơ MandrakeSoft. \n"
-"Les programmes conƧus par MandrakeSoft sont rƩgis par la licence GPL. \n"
-"La documentation rƩdigƩe par MandrakeSoft fait l'objet d'une licence \n"
-"spƩcifique. Veuillez vous rƩfƩrez Ơ la documentation pour obtenir plus \n"
-"de prƩcisions.\n"
-"\n"
-"\n"
-"4. PropriƩtƩ intellectuelle\n"
-"\n"
-"Tous les droits, titres et intĆ©rĆŖts des diffĆ©rents Logiciels sont la \n"
-"propriƩtƩ exclusive de leurs auteurs respectifs et sont protƩgƩs au titre \n"
-"des droits de propriƩtƩ intellectuelle et autres lois rƩgissant le droit \n"
-"des Logiciels. Les marques Ā« Mandrake Ā» et Ā« Mandrake Linux Ā» ainsi que "
-"les \n"
-"logotypes associƩs sont dƩposƩs par MandrakeSoft S.A. \n"
-"\n"
-"\n"
-"5. Dispositions diverses\n"
-"\n"
-"Si une disposition de ce contrat de licence devait ĆŖtre dĆ©clarĆ©e nulle, \n"
-"illƩgale ou inapplicable par un tribunal compƩtent, cette disposition sera \n"
-"exclue du prĆ©sent contrat. Vous continuerez Ć  ĆŖtre liĆ©s aux autres \n"
-"dispositions, qui recevront leurs pleins effets. Le contrat de licence \n"
-"est soumis Ơ la Loi franƧaise. Toute contestation relative aux prƩsentes \n"
-"sera rƩglƩe prƩalablement par voie amiable. A dƩfaut d'accord avec \n"
-"MandrakeSoft S.A., les tribunaux compƩtents de Paris seront saisis du \n"
-"litige. Pour toute question relative au prƩsent document, veuillez \n"
-"contacter MandrakeSoft S.A.\n"
-
-#: ../../install_steps_interactive.pm_.c:205
-#: ../../install_steps_interactive.pm_.c:1045
-#: ../../standalone/keyboarddrake_.c:28
-msgid "Keyboard"
-msgstr "Tastatur"
-
-#: ../../install_steps_interactive.pm_.c:206
-msgid "Please choose your keyboard layout."
-msgstr "Bitte wƤhlen Sie Ihren Tastaturtyp."
-
-#: ../../install_steps_interactive.pm_.c:207
-msgid "Here is the full list of keyboards available"
-msgstr "Hier die Liste aller Tastaturen"
-
-#: ../../install_steps_interactive.pm_.c:224
-msgid "Which installation class do you want?"
-msgstr "Welche Installationsart wollen Sie durchfĆ¼hren?"
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Install/Update"
-msgstr "Installation/Aktualisierung"
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Is this an install or an update?"
-msgstr "Handelt es sich um eine Installation oder eine Aktualisierung?"
-
-#: ../../install_steps_interactive.pm_.c:235
-msgid "Recommended"
-msgstr "Empfehlenswert"
-
-#: ../../install_steps_interactive.pm_.c:238
-#: ../../install_steps_interactive.pm_.c:241
-msgid "Expert"
-msgstr "Experte"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Upgrade"
-msgstr "Aktualisierung"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Upgrade packages only"
-msgstr "Nur Pakete aktualisieren"
-
-#: ../../install_steps_interactive.pm_.c:266
-msgid "Please choose the type of your mouse."
-msgstr "Bitte wƤhlen Sie Ihren Maustyp."
-
-#: ../../install_steps_interactive.pm_.c:272 ../../standalone/mousedrake_.c:65
-msgid "Mouse Port"
-msgstr "Maus Port"
-
-#: ../../install_steps_interactive.pm_.c:273 ../../standalone/mousedrake_.c:66
-msgid "Please choose on which serial port your mouse is connected to."
-msgstr "Bitte wƤhlen Sie den seriellen Anschluss, an dem Ihre Maus hƤngt."
-
-#: ../../install_steps_interactive.pm_.c:281
-msgid "Buttons emulation"
-msgstr "Tastenemulation"
-
-#: ../../install_steps_interactive.pm_.c:283
-msgid "Button 2 Emulation"
-msgstr "Emulation der 2. Taste"
-
-#: ../../install_steps_interactive.pm_.c:284
-msgid "Button 3 Emulation"
-msgstr "Emulation der 3. Taste"
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "Configuring PCMCIA cards..."
-msgstr "PCMCIA Karten konfigurieren ..."
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "PCMCIA"
-msgstr "PCMCIA"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "Configuring IDE"
-msgstr "IDE konfigurieren"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "IDE"
-msgstr "IDE"
-
-#: ../../install_steps_interactive.pm_.c:327
-msgid "no available partitions"
-msgstr "Keine Partition verfĆ¼gbar"
-
-#: ../../install_steps_interactive.pm_.c:330
-msgid "Scanning partitions to find mount points"
-msgstr "Durchsuchen der Partitionen, um die EinhƤngpunkte zu finden."
-
-#: ../../install_steps_interactive.pm_.c:338
-msgid "Choose the mount points"
-msgstr "WƤhlen Sie die EinhƤngpunkte"
-
-#: ../../install_steps_interactive.pm_.c:357
-#, c-format
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I can try to go on blanking bad partitions (ALL DATA will be lost!).\n"
-"The other solution is to disallow DrakX to modify the partition table.\n"
-"(the error is %s)\n"
-"\n"
-"Do you agree to loose all the partitions?\n"
-msgstr ""
-"Vermutlich ist Ihre Partitionstabelle fehlerhaft, ich habe Probleme,\n"
-"sie zu lesen :-( (Folgender Fehler trat auf: ā€˛%sā€).\n"
-"Ich kann fortfahren, indem ich die fehlerhaften Partitionen lƶsche \n"
-"(dabei gehen ALLE darauf vorhandenen DATEN VERLOREN!). Alternativ kƶnnen \n"
-"Sie mir jedoch auch verbieten, die Partitionstabelle zu verƤndern.\n"
-"\n"
-"Sind Sie einverstanden, dass ich die problematischen Partitionen lƶsche?\n"
-
-#: ../../install_steps_interactive.pm_.c:370
-msgid ""
-"DiskDrake failed to read correctly the partition table.\n"
-"Continue at your own risk!"
-msgstr ""
-"DiskDrake ist nicht in der Lage, Ihre Partitionstabelle korrekt zu \n"
-"interpretieren. Sie kƶnnen fortfahren, jedoch auf eigenes Risiko!"
-
-#: ../../install_steps_interactive.pm_.c:386
-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."
-
-#: ../../install_steps_interactive.pm_.c:395
-msgid "No root partition found to perform an upgrade"
-msgstr ""
-"Es wurde keine Verzeichnisbaumwurzel gefunden, die aktualisiert werden kann."
-
-#: ../../install_steps_interactive.pm_.c:396
-msgid "Root Partition"
-msgstr "Verzeichnisbaumwurzel"
-
-#: ../../install_steps_interactive.pm_.c:397
-msgid "What is the root partition (/) of your system?"
-msgstr "Welche Partition ist Ihre Verzeichnisbaumwurzel?"
-
-#: ../../install_steps_interactive.pm_.c:411
-msgid "You need to reboot for the partition table modifications to take place"
-msgstr ""
-"Sie mĆ¼ssen Ihren Rechner neu starten, um die Ć„nderungen \n"
-"der Partitionstabelle wirksam werden zu lassen."
-
-#: ../../install_steps_interactive.pm_.c:435
-msgid "Choose the partitions you want to format"
-msgstr "Zu formatierende Partitionen auswƤhlen"
-
-#: ../../install_steps_interactive.pm_.c:436
-msgid "Check bad blocks?"
-msgstr "Soll ich nach defekten Blƶcken suchen?"
-
-#: ../../install_steps_interactive.pm_.c:462
-msgid "Formatting partitions"
-msgstr "Partitionen formatieren"
-
-#: ../../install_steps_interactive.pm_.c:464
-#, c-format
-msgid "Creating and formatting file %s"
-msgstr "Erzeugen und formatieren der Datei %s"
-
-#: ../../install_steps_interactive.pm_.c:467
-msgid "Not enough swap to fulfill installation, please add some"
-msgstr ""
-"Der Swap-Bereich ist zu klein, um die Installation zu ermƶglichen! \n"
-"Bitte vergrƶĆern Sie den Bereich."
-
-#: ../../install_steps_interactive.pm_.c:473
-msgid "Looking for available packages"
-msgstr "Suche nach vorhandenen Paketen"
-
-#: ../../install_steps_interactive.pm_.c:479
-msgid "Finding packages to upgrade"
-msgstr "Finden der zu aktualisierenden Pakete"
-
-#: ../../install_steps_interactive.pm_.c:496
-#, c-format
-msgid ""
-"Your system has not enough space left for installation or upgrade (%d > %d)"
-msgstr ""
-"Es steht auf Ihrem System nicht genĆ¼gend Speicherplatz fĆ¼r die \n"
-"Installation bzw. Aktualisierung zur VerfĆ¼gung (%d > %d)."
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Complete (%dMB)"
-msgstr "Komplett (%d MB)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Minimum (%dMB)"
-msgstr "Minimal (%d MB)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Recommended (%dMB)"
-msgstr "Empfohlen (%d MB)"
-
-#: ../../install_steps_interactive.pm_.c:568
-msgid ""
-"Please choose load or save package selection on floppy.\n"
-"The format is the same as auto_install generated floppies."
-msgstr ""
-"Bitte wƤhlen Sie, ob die Paketauswahl von Diskette geladen \n"
-"oder darauf gespeichert werden soll. Es handelt sich um das \n"
-"selbe Format, wie die unter ā€˛auto_installā€ erzeugten Disketten."
-
-#: ../../install_steps_interactive.pm_.c:571
-msgid "Load from floppy"
-msgstr "Von Diskette laden"
-
-#: ../../install_steps_interactive.pm_.c:573
-msgid "Loading from floppy"
-msgstr "Laden von Diskette ..."
-
-#: ../../install_steps_interactive.pm_.c:573
-msgid "Package selection"
-msgstr "Auswahl der Pakete"
-
-#: ../../install_steps_interactive.pm_.c:578
-msgid "Insert a floppy containing package selection"
-msgstr ""
-"Legen Sie eine Diskette ein, auf der Ihre Paketauswahl gespeichert ist."
-
-#: ../../install_steps_interactive.pm_.c:590
-msgid "Save on floppy"
-msgstr "Auf Diskette speichern"
-
-#: ../../install_steps_interactive.pm_.c:658
-msgid "Selected size is larger than available space"
-msgstr "GewĆ¼nschte GrƶĆe Ć¼bersteigt den verfĆ¼gbaren Platz"
-
-#: ../../install_steps_interactive.pm_.c:671
-msgid "Type of install"
-msgstr "Installationsklasse"
-
-#: ../../install_steps_interactive.pm_.c:672
-msgid ""
-"You haven't 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."
-
-#: ../../install_steps_interactive.pm_.c:675
-msgid "With X"
-msgstr "Mit X"
-
-#: ../../install_steps_interactive.pm_.c:677
-msgid "With basic documentation (recommended!)"
-msgstr "Mit minimaler Dokumentation (Empfohlen)"
-
-#: ../../install_steps_interactive.pm_.c:678
-msgid "Truly minimal install (especially no urpmi)"
-msgstr "Extrem minimale Installation (ohne ā€˛urpmiā€)"
-
-#: ../../install_steps_interactive.pm_.c:762
-msgid ""
-"If you have all the CDs in the list below, click Ok.\n"
-"If you have none of those CDs, click Cancel.\n"
-"If only some CDs are missing, unselect them, then click Ok."
-msgstr ""
-"Falls Sie alle aufgefĆ¼hrten CDs haben, wƤhlen Sie ā€˛OKā€, \n"
-"falls Sie keine der aufgefĆ¼hrten CDs haben, wƤhlen Sie ā€˛Abbruchā€,\n"
-"falls nur einige der aufgefĆ¼hrten CDs fehlen, entfernen Sie die \n"
-"entsprechende Markierung und wƤhlen Sie dann ā€˛OKā€."
-
-#: ../../install_steps_interactive.pm_.c:767
-#, c-format
-msgid "Cd-Rom labeled \"%s\""
-msgstr "CD-ROM ā€˛%sā€"
-
-#: ../../install_steps_interactive.pm_.c:787
-msgid "Preparing installation"
-msgstr "Installation vorbereiten"
-
-#: ../../install_steps_interactive.pm_.c:796
-#, c-format
-msgid ""
-"Installing package %s\n"
-"%d%%"
-msgstr ""
-"Installiere Paket %s\n"
-"%d%%"
-
-#: ../../install_steps_interactive.pm_.c:842
-msgid "Post-install configuration"
-msgstr "Einstellungen fĆ¼r nach der Installation"
-
-#: ../../install_steps_interactive.pm_.c:848
-#, c-format
-msgid "Please insert the Boot floppy used in drive %s"
-msgstr "Bitte legen Sie die Startdiskette in Laufwerk %s ein."
-
-#: ../../install_steps_interactive.pm_.c:854
-#, c-format
-msgid "Please insert the Update Modules floppy in drive %s"
-msgstr ""
-"Bitte legen Sie die Diskette der zu aktualisiernden Module in Laufwerk %s "
-"ein."
-
-#: ../../install_steps_interactive.pm_.c:874
-msgid ""
-"You have now the possibility to download software aimed for encryption.\n"
-"\n"
-"WARNING:\n"
-"\n"
-"Due to different general requirements applicable to these software and "
-"imposed\n"
-"by various jurisdictions, customer and/or end user of theses software "
-"should\n"
-"ensure that the laws of his/their jurisdiction allow him/them to download, "
-"stock\n"
-"and/or use these software.\n"
-"\n"
-"In addition customer and/or end user shall particularly be aware to not "
-"infringe\n"
-"the laws of his/their jurisdiction. Should customer and/or end user not\n"
-"respect the provision of these applicable laws, he/they will incure serious\n"
-"sanctions.\n"
-"\n"
-"In no event shall Mandrakesoft nor its manufacturers and/or suppliers be "
-"liable\n"
-"for special, indirect or incidental damages whatsoever (including, but not\n"
-"limited to loss of profits, business interruption, loss of commercial data "
-"and\n"
-"other pecuniary losses, and eventual liabilities and indemnification to be "
-"paid\n"
-"pursuant to a court decision) arising out of use, possession, or the sole\n"
-"downloading of these software, to which customer and/or end user could\n"
-"eventually have access after having sign up the present agreement.\n"
-"\n"
-"\n"
-"For any queries relating to these agreement, please contact \n"
-"Mandrakesoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA"
-msgstr ""
-"Sie haben nun die Mƶglichkeit Software mit starker VerschlĆ¼sselung aus dem \n"
-"Internet zu laden.\n"
-"\n"
-"WARNUNG:\n"
-"\n"
-"Due to different general requirements applicable to these software and "
-"imposed\n"
-"by various jurisdictions, customer and/or end user of theses software "
-"should\n"
-"ensure that the laws of his/their jurisdiction allow him/them to download, "
-"stock\n"
-"and/or use these software.\n"
-"\n"
-"In addition customer and/or end user shall particularly be aware to not "
-"infringe\n"
-"the laws of his/their jurisdiction. Should customer and/or end user not\n"
-"respect the provision of these applicable laws, he/they will incure serious\n"
-"sanctions.\n"
-"\n"
-"In no event shall MandrakeSoft nor its manufacturers and/or suppliers be "
-"liable\n"
-"for special, indirect or incidental damages whatsoever (including, but not\n"
-"limited to loss of profits, business interruption, loss of commercial data "
-"and\n"
-"other pecuniary losses, and eventual liabilities and indemnification to be "
-"paid\n"
-"pursuant to a court decision) arising out of use, possession, or the sole\n"
-"downloading of these software, to which customer and/or end user could\n"
-"eventually have access after having sign up the present agreement.\n"
-"\n"
-"\n"
-"Bitte wenden Sie sich fĆ¼r alle weiteren Fragen bzgl. dieser Ćbereinkunft "
-"an: \n"
-"MandrakeSoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA"
-
-#: ../../install_steps_interactive.pm_.c:912
-msgid ""
-"You have now the possibility to download updated packages that have\n"
-"been released after the distribution has been made available.\n"
-"\n"
-"You will get security fixes or bug fixes, but you need to have an\n"
-"Internet connection configured to proceed.\n"
-"\n"
-"Do you want to install the updates ?"
-msgstr ""
-"Sie haben nun die Mƶglichkeit Pakete zu installieren, die nach Erscheinen\n"
-"der Distribution aktualisiert wurden. Es handelt sich um \n"
-"Sicherheitsaktualisierungen und Fehlerkorrekturen.\n"
-"\n"
-"Allerdings benƶtigen Sie dafĆ¼r eine funktionierende Internertverbindung.\n"
-"\n"
-"Mƶchten Sie die Aktualisierungen vornehmen?"
-
-#: ../../install_steps_interactive.pm_.c:926
-msgid "Contacting Mandrake Linux web site to get the list of available mirrors"
-msgstr ""
-"Verbindung mit dem Mandrake Linux Web-Server aufbauen, um eine Liste\n"
-"verfĆ¼gbarer Pakete zu erhalten."
-
-#: ../../install_steps_interactive.pm_.c:931
-msgid "Choose a mirror from which to get the packages"
-msgstr "Bitte wƤhlen Sie einen Mirror, von dem Sie die Pakete holen wollen."
-
-#: ../../install_steps_interactive.pm_.c:940
-msgid "Contacting the mirror to get the list of available packages"
-msgstr ""
-"Verbindung mit dem Mirror aufbauen, um eine Liste verfĆ¼gbarer Pakete zu "
-"erhalten."
-
-#: ../../install_steps_interactive.pm_.c:967
-msgid "Which is your timezone?"
-msgstr "WƤhlen Sie Ihre Zeitzone"
-
-#: ../../install_steps_interactive.pm_.c:972
-msgid "Hardware clock set to GMT"
-msgstr "Hardware Uhr liefert GMT"
-
-#: ../../install_steps_interactive.pm_.c:973
-msgid "Automatic time synchronization (using NTP)"
-msgstr "Automatische Zeit-Synchronisation (durch NTP)"
-
-#: ../../install_steps_interactive.pm_.c:980
-msgid "NTP Server"
-msgstr "NTP Server"
-
-#: ../../install_steps_interactive.pm_.c:1014
-#: ../../install_steps_interactive.pm_.c:1022
-msgid "Remote CUPS server"
-msgstr "CUPS-Server auf der Gegenseite"
-
-#: ../../install_steps_interactive.pm_.c:1015
-msgid "No printer"
-msgstr "Kein Drucker"
-
-#: ../../install_steps_interactive.pm_.c:1032
-msgid "Do you have an ISA sound card?"
-msgstr "VerfĆ¼gen Sie Ć¼ber eine ISA soundkarte?"
-
-#: ../../install_steps_interactive.pm_.c:1034
-msgid "Run \"sndconfig\" after installation to configure your sound card"
-msgstr ""
-"Starten Sie ā€˛sndconfigā€ nach der Installation, um Ihre Soundkarte "
-"einzurichten."
-
-#: ../../install_steps_interactive.pm_.c:1036
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Es wurde keine Soundkarte gefunden. Versuchen Sie ā€˛harddrakeā€nach der "
-"Installation."
-
-#: ../../install_steps_interactive.pm_.c:1041 ../../steps.pm_.c:27
-msgid "Summary"
-msgstr "Zusammenfassung"
-
-#: ../../install_steps_interactive.pm_.c:1044
-msgid "Mouse"
-msgstr "Maus"
-
-#: ../../install_steps_interactive.pm_.c:1046
-msgid "Timezone"
-msgstr "Zeitzone"
-
-#: ../../install_steps_interactive.pm_.c:1047 ../../printerdrake.pm_.c:2276
-#: ../../printerdrake.pm_.c:2354
-msgid "Printer"
-msgstr "Drucker"
-
-#: ../../install_steps_interactive.pm_.c:1049
-msgid "ISDN card"
-msgstr "ISDN Karte"
-
-#: ../../install_steps_interactive.pm_.c:1052
-#: ../../install_steps_interactive.pm_.c:1054
-msgid "Sound card"
-msgstr "Soundkarte"
-
-#: ../../install_steps_interactive.pm_.c:1056
-msgid "TV card"
-msgstr "TV-Karte"
-
-#: ../../install_steps_interactive.pm_.c:1094
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1122
-msgid "LDAP"
-msgstr "LDAP"
-
-#: ../../install_steps_interactive.pm_.c:1095
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1131
-msgid "NIS"
-msgstr "NIS"
-
-#: ../../install_steps_interactive.pm_.c:1096
-#: ../../install_steps_interactive.pm_.c:1118
-msgid "Local files"
-msgstr "Lokale Dateien"
-
-#: ../../install_steps_interactive.pm_.c:1105
-#: ../../install_steps_interactive.pm_.c:1106 ../../steps.pm_.c:24
-msgid "Set root password"
-msgstr "Root-Passwort setzen"
-
-#: ../../install_steps_interactive.pm_.c:1107
-msgid "No password"
-msgstr "Kein Passwort"
-
-#: ../../install_steps_interactive.pm_.c:1112
-#, c-format
-msgid "This password is too simple (must be at least %d characters long)"
-msgstr ""
-"Dieses Passwort ist zu einfach (es muss mindestens %d Zeichen lang sein)!"
-
-#: ../../install_steps_interactive.pm_.c:1118 ../../network/modem.pm_.c:49
-#: ../../standalone/draknet_.c:626 ../../standalone/logdrake_.c:172
-msgid "Authentication"
-msgstr "Authentifizierung"
-
-#: ../../install_steps_interactive.pm_.c:1126
-msgid "Authentication LDAP"
-msgstr "LDAP Authentifizierung"
-
-#: ../../install_steps_interactive.pm_.c:1127
-msgid "LDAP Base dn"
-msgstr "LDAP Base dn"
-
-#: ../../install_steps_interactive.pm_.c:1128
-msgid "LDAP Server"
-msgstr "LDAP Server"
-
-#: ../../install_steps_interactive.pm_.c:1134
-msgid "Authentication NIS"
-msgstr "NIS Authentifizierung"
-
-#: ../../install_steps_interactive.pm_.c:1135
-msgid "NIS Domain"
-msgstr "NIS Domain"
-
-#: ../../install_steps_interactive.pm_.c:1136
-msgid "NIS Server"
-msgstr "NIS Server"
-
-#: ../../install_steps_interactive.pm_.c:1171
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"SILO on your system, or another operating system removes SILO, or SILO "
-"doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures.\n"
-"\n"
-"If you want to create a bootdisk for your system, insert a floppy in the "
-"first\n"
-"drive and press \"Ok\"."
-msgstr ""
-"Mit einer individuellen Startdiskette kƶnnen Sie Ihr LINUX-System starten, \n"
-"ohne auf einen Betriebssystemstarter angewiesen zu sein. Dies ist "
-"nĆ¼tzlich, \n"
-"wenn Sie SILO nicht auf Ihrem System installieren mƶchten, wenn ein \n"
-"anderes Betriebssystem SILO entfernt hat oder Ihre Hardware-Konfiguration \n"
-"die Verwendung eines BS-Starters nicht korrekt verarbeitet. \n"
-"Eine individuelle Startdiskette kann auch in Verbindung mit der \n"
-"Mandrake Linux Rettungsdiskette verwendet werden, wodurch das System \n"
-"nach schwerwiegenden Fehlern viel einfacher wiederhergestellt werden \n"
-"kann.\n"
-"\n"
-"Falls Sie eine Startdiskette erstellen wollen, legen Sie eine Diskette \n"
-"ohne relevante Daten in ihr erstes Laufwerk und drĆ¼cken Sie ā€˛OKā€."
-
-#: ../../install_steps_interactive.pm_.c:1187
-msgid "First floppy drive"
-msgstr "erste Disketten-Laufwerk"
-
-#: ../../install_steps_interactive.pm_.c:1188
-msgid "Second floppy drive"
-msgstr "zweite Disketten-Laufwerk"
-
-#: ../../install_steps_interactive.pm_.c:1189 ../../printerdrake.pm_.c:1848
-msgid "Skip"
-msgstr "Ćberspringen"
-
-#: ../../install_steps_interactive.pm_.c:1194
-#, c-format
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"LILO (or grub) on your system, or another operating system removes LILO, or "
-"LILO doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures. Would you like to create a bootdisk for your system?\n"
-"%s"
-msgstr ""
-"Mit einer individuellen Startdiskette kƶnnen Sie Ihr LINUX-System starten, \n"
-"ohne auf den normalen Betriebssystemstarter angewiesen zu sein. Dies ist "
-"nĆ¼tzlich, wenn \n"
-"Sie weder LILO noch Grub auf Ihrem System installieren mƶchten, wenn ein \n"
-"anderes Betriebssystem Ihren Betriebssystemstarter entfernt hat oder Ihre "
-"Hardware-Konfiguration die Verwendung eines Betriebssystemstarters nicht "
-"korrekt \n"
-"verarbeitet. Eine individuelle Startdiskette kann auch mit der Linux \n"
-"Mandrake Rettungsdiskette verwendet werden, wodurch das System nach \n"
-"schwerwiegenden Fehlern viel einfacher wiederhergestellt werden kann.\n"
-"\n"
-"Mƶchten Sie jetzt eine Startdiskette fĆ¼r Ihr System erstellen?\n"
-"%s"
-
-#: ../../install_steps_interactive.pm_.c:1200
-msgid ""
-"\n"
-"\n"
-"(WARNING! You're using XFS for your root partition,\n"
-"creating a bootdisk on a 1.44 Mb floppy will probably fail,\n"
-"because XFS needs a very large driver)."
-msgstr ""
-"\n"
-"\n"
-"(WARNUNG! Sie verwenden XFS fĆ¼r Ihre Verzeichnisbaumwurzel.\n"
-"Das Erstellen einer Startdiskette auf einem 1,44 MB Medium \n"
-"schlƤ sicher fehl, da XFS einen sehr groĆen Treiber benƶtigt)."
-
-#: ../../install_steps_interactive.pm_.c:1208
-msgid "Sorry, no floppy drive available"
-msgstr "Ich kann kein Laufwerk finden"
-
-#: ../../install_steps_interactive.pm_.c:1212
-msgid "Choose the floppy drive you want to use to make the bootdisk"
-msgstr ""
-"WƤhlen Sie das Laufwerk, in dem Sie die Start-Diskette erstellen wollen"
-
-#: ../../install_steps_interactive.pm_.c:1216
-#, c-format
-msgid "Insert a floppy in %s"
-msgstr ""
-"Legen Sie eine Diskette, die keine relevanten Daten mehr enthƤllt in das %s "
-"ein."
-
-#: ../../install_steps_interactive.pm_.c:1219
-msgid "Creating bootdisk"
-msgstr "Startdiskette wird erstellt..."
-
-#: ../../install_steps_interactive.pm_.c:1226
-msgid "Preparing bootloader"
-msgstr "Betriebssystemstarter vorbereiten"
-
-#: ../../install_steps_interactive.pm_.c:1237
-msgid ""
-"You appear to have an OldWorld or Unknown\n"
-" machine, the yaboot bootloader will not work for you.\n"
-"The install will continue, but you'll\n"
-" need to use BootX to boot your machine"
-msgstr ""
-"Sie scheinen einen ā€˛OldWorldā€ oder unbekannten\n"
-"Rechner zu verwenden. Der Betriebssystemstarter\n"
-"ā€˛yabootā€ wird daher leider nicht funktionieren.\n"
-"Die Installation wird fortgesetzt, sie werden jedoch \n"
-"ā€˛BootXā€ verwenden mĆ¼ssen um LINUX auf Ihrem Rechner\n"
-"zu starten."
-
-#: ../../install_steps_interactive.pm_.c:1243
-msgid "Do you want to use aboot?"
-msgstr "Mƶchten Sie ā€˛abootā€ verwenden?"
-
-#: ../../install_steps_interactive.pm_.c:1246
-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?"
-
-#: ../../install_steps_interactive.pm_.c:1253
-msgid "Installing bootloader"
-msgstr "BS-Starter installieren"
-
-#: ../../install_steps_interactive.pm_.c:1259
-msgid "Installation of bootloader failed. The following error occured:"
-msgstr ""
-"Die Installation des BS-Starters schlug Fehl. Folgender Fehler trat auf:"
-
-#: ../../install_steps_interactive.pm_.c:1267
-#, c-format
-msgid ""
-"You may need to change your Open Firmware boot-device to\n"
-" enable the bootloader. If you don't 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\n"
-"At your next boot you should see the bootloader prompt."
-msgstr ""
-"Sie mĆ¼ssen Ihr Open Firmware StartgerƤt anpassen, dass es den \n"
-"BS-Starter erkennt. Falls Sie beim Neustart nicht die \n"
-"Eingabeaufforderung des BS-Starters sehen, drĆ¼cken Sie \n"
-"Strg-Option-O-F und geben Sie folgendes ein:\n"
-" setenv boot-device %s,\\\\:tbxi\n"
-"Tippen Sie dann: shut-down\n"
-"Beim darauffolgenden Neustart sollte Sie die Eingabeaufforderung sehen."
-
-#: ../../install_steps_interactive.pm_.c:1311
-#: ../../standalone/drakautoinst_.c:81
-#, c-format
-msgid "Insert a blank floppy in drive %s"
-msgstr "Legen Sie eine leere Diskette in das %s ein."
-
-#: ../../install_steps_interactive.pm_.c:1315
-#: ../../standalone/drakautoinst_.c:83
-msgid "Creating auto install floppy"
-msgstr "Erstellen einer Auto-Installationsdiskette"
-
-#: ../../install_steps_interactive.pm_.c:1326
-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?"
-
-#: ../../install_steps_interactive.pm_.c:1337
-msgid ""
-"Congratulations, installation is complete.\n"
-"Remove the boot media and press return to reboot.\n"
-"\n"
-"\n"
-"For information on fixes which are available for this release of Mandrake "
-"Linux,\n"
-"consult the Errata available from:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/82errata.php3\n"
-"\n"
-"\n"
-"Information on configuring your system is available in the post\n"
-"install chapter of the Official Mandrake Linux User's Guide."
-msgstr ""
-"Herzlichen GlĆ¼ckwunsch, die Installation ist abgeschlossen.\n"
-"Entfernen Sie die Startmedien (CD-ROMs / Disketten) und drĆ¼cken Sie die "
-"Eingabetaste zum Neustart Ihres Rechners.\n"
-"\n"
-"FĆ¼r Informationen zu Sicherheitsaktualisierungen dieser Version von Mandrake "
-"Linux informieren Sie sich bitte unter \n"
-"\n"
-"http://www.mandrakelinux.com/en/82errata.php3\n"
-"\n"
-"Wie Sie Ihr System warten kƶnnen, erfahren Sie im Kapitel ā€˛Nach der "
-"Installationā€ im offiziellen Benutzerhandbuch von Mandrake Linux."
-
-#: ../../install_steps_interactive.pm_.c:1354
-msgid "Generate auto install floppy"
-msgstr "Erstellen einer Auto-Installationsdiskette"
-
-#: ../../install_steps_interactive.pm_.c:1356
-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"
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Automated"
-msgstr "Automatisiert"
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Replay"
-msgstr "Erneut abspielen"
-
-#: ../../install_steps_interactive.pm_.c:1364
-msgid "Save packages selection"
-msgstr "Paketauswahl speichern"
-
-#: ../../install_steps_newt.pm_.c:22
-#, c-format
-msgid "Mandrake Linux Installation %s"
-msgstr "Mandrake Linux Installation %s"
-
-#: ../../install_steps_newt.pm_.c:34
-msgid ""
-" <Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen "
-msgstr ""
-" <Tab>/<Alt-Tab> nƤchstes Element | <Leertaste> auswƤhlen | <F12> weiter "
-
-#: ../../interactive.pm_.c:87
-msgid "kdesu missing"
-msgstr "Ich kann ā€˛kdesuā€ nicht finden!"
-
-#: ../../interactive.pm_.c:89 ../../interactive.pm_.c:100
-msgid "consolehelper missing"
-msgstr "Das Programm ā€˛consolehelperā€ wurde nicht gefunden."
-
-#: ../../interactive.pm_.c:152
-msgid "Choose a file"
-msgstr "WƤhlen Sie eine Datei"
-
-#: ../../interactive.pm_.c:314
-msgid "Advanced"
-msgstr "Fortgeschritten"
-
-#: ../../interactive.pm_.c:315
-msgid "Basic"
-msgstr "Einfach"
-
-#: ../../interactive.pm_.c:386
-msgid "Please wait"
-msgstr "Bitte warten"
-
-#: ../../interactive_gtk.pm_.c:605 ../../services.pm_.c:222
-msgid "Info"
-msgstr "Info"
-
-#: ../../interactive_gtk.pm_.c:715
-msgid "Expand Tree"
-msgstr "Baum erweitern"
-
-#: ../../interactive_gtk.pm_.c:716
-msgid "Collapse Tree"
-msgstr "Baum verkleinern"
-
-#: ../../interactive_gtk.pm_.c:717
-msgid "Toggle between flat and group sorted"
-msgstr "Umschalten zwischen unsortiert und gruppiert"
-
-#: ../../interactive_stdio.pm_.c:29 ../../interactive_stdio.pm_.c:147
-msgid "Bad choice, try again\n"
-msgstr "Schlechte Wahl, bitte versuchen Sie es noch einmal\n"
-
-#: ../../interactive_stdio.pm_.c:30 ../../interactive_stdio.pm_.c:148
-#, c-format
-msgid "Your choice? (default %s) "
-msgstr "Ihre Wahl? (Standard ā€%sā€) "
-
-#: ../../interactive_stdio.pm_.c:52
-#, c-format
-msgid ""
-"Entries you'll have to fill:\n"
-"%s"
-msgstr ""
-"Angaben, die Sie machen mĆ¼ssen:\n"
-"%s"
-
-#: ../../interactive_stdio.pm_.c:68
-#, c-format
-msgid "Your choice? (0/1, default `%s') "
-msgstr "Ihre Wahl? (0/1, Standard ā€%sā€) "
-
-#: ../../interactive_stdio.pm_.c:93
-#, c-format
-msgid "Button `%s': %s"
-msgstr "SchaltflƤche ā€˛%sā€: %s"
-
-#: ../../interactive_stdio.pm_.c:94
-msgid "Do you want to click on this button? "
-msgstr "Mƶchten Sie diese SchaltflƤche betƤtigen?"
-
-#: ../../interactive_stdio.pm_.c:103
-#, c-format
-msgid "Your choice? (default `%s'%s) "
-msgstr "Ihre Wahl? (Standard ā€˛%sā€ %s) "
-
-#: ../../interactive_stdio.pm_.c:121
-#, c-format
-msgid "=> There are many things to choose from (%s).\n"
-msgstr "=> Es gibt zahlreiche Auswahlmƶglichkeiten (%s).\n"
-
-#: ../../interactive_stdio.pm_.c:124
-msgid ""
-"Please choose the first number of the 10-range you wish to edit,\n"
-"or just hit Enter to proceed.\n"
-"Your choice? "
-msgstr ""
-"Bitte wƤhlen Sie die Nummer aus dem Bereich, die Sie bearbeiten wollen,\n"
-"oder betƤgen Sie die Eingabetaste um fort zu fahren.Ihre Wahl? "
-
-#: ../../interactive_stdio.pm_.c:137
-#, c-format
-msgid ""
-"=> Notice, a label changed:\n"
-"%s"
-msgstr ""
-"=> Anmerkung: Ein Eintrag wurde geƤndert:\n"
-"%s"
-
-#: ../../interactive_stdio.pm_.c:144
-msgid "Re-submit"
-msgstr "Erneut verschicken"
-
-#: ../../keyboard.pm_.c:174 ../../keyboard.pm_.c:205
-msgid "Czech (QWERTZ)"
-msgstr "Tschechien (QWERTZ)"
-
-#: ../../keyboard.pm_.c:175 ../../keyboard.pm_.c:207
-msgid "German"
-msgstr "Deutschland"
-
-#: ../../keyboard.pm_.c:176
-msgid "Dvorak"
-msgstr "Dvorak"
-
-#: ../../keyboard.pm_.c:177 ../../keyboard.pm_.c:214
-msgid "Spanish"
-msgstr "Spanien"
-
-#: ../../keyboard.pm_.c:178 ../../keyboard.pm_.c:215
-msgid "Finnish"
-msgstr "Finnland"
-
-#: ../../keyboard.pm_.c:179 ../../keyboard.pm_.c:216
-msgid "French"
-msgstr "Frankreich"
-
-#: ../../keyboard.pm_.c:180 ../../keyboard.pm_.c:241
-msgid "Norwegian"
-msgstr "Norwegen"
-
-#: ../../keyboard.pm_.c:181
-msgid "Polish"
-msgstr "Polen"
-
-#: ../../keyboard.pm_.c:182 ../../keyboard.pm_.c:249
-msgid "Russian"
-msgstr "Russland"
-
-#: ../../keyboard.pm_.c:184 ../../keyboard.pm_.c:251
-msgid "Swedish"
-msgstr "Schweden"
-
-#: ../../keyboard.pm_.c:185 ../../keyboard.pm_.c:266
-msgid "UK keyboard"
-msgstr "GrĆbritannien"
-
-#: ../../keyboard.pm_.c:186 ../../keyboard.pm_.c:267
-msgid "US keyboard"
-msgstr "Vereinigte Staaten von Amerika"
-
-#: ../../keyboard.pm_.c:188
-msgid "Albanian"
-msgstr "Albanien"
-
-#: ../../keyboard.pm_.c:189
-msgid "Armenian (old)"
-msgstr "Armenien (alt)"
-
-#: ../../keyboard.pm_.c:190
-msgid "Armenian (typewriter)"
-msgstr "Armenien (Schreibmaschine)"
-
-#: ../../keyboard.pm_.c:191
-msgid "Armenian (phonetic)"
-msgstr "Armenien (Phonetisch)"
-
-#: ../../keyboard.pm_.c:196
-msgid "Azerbaidjani (latin)"
-msgstr "Aserbeidschan (Lateinisches Layout)"
-
-#: ../../keyboard.pm_.c:198
-msgid "Belgian"
-msgstr "Belgien"
-
-#: ../../keyboard.pm_.c:199
-msgid "Bulgarian (phonetic)"
-msgstr "Bulgarien (Phonetisch)"
-
-#: ../../keyboard.pm_.c:200
-msgid "Bulgarian (BDS)"
-msgstr "Bulgarien (BDS)"
-
-#: ../../keyboard.pm_.c:201
-msgid "Brazilian (ABNT-2)"
-msgstr "Brasilien (ABNT-2)"
-
-#: ../../keyboard.pm_.c:202
-msgid "Belarusian"
-msgstr "WeiĆrussland"
-
-#: ../../keyboard.pm_.c:203
-msgid "Swiss (German layout)"
-msgstr "Schweiz (deutsches Layout)"
-
-#: ../../keyboard.pm_.c:204
-msgid "Swiss (French layout)"
-msgstr "Schweiz (franzƶsisches Layout)"
-
-#: ../../keyboard.pm_.c:206
-msgid "Czech (QWERTY)"
-msgstr "Tschechien (QWERTY)"
-
-#: ../../keyboard.pm_.c:208
-msgid "German (no dead keys)"
-msgstr "Deutschland (ohne Tod-Tasten)"
-
-#: ../../keyboard.pm_.c:209
-msgid "Danish"
-msgstr "DƤnemark"
-
-#: ../../keyboard.pm_.c:210
-msgid "Dvorak (US)"
-msgstr "Dvorak (USA)"
-
-#: ../../keyboard.pm_.c:211
-msgid "Dvorak (Norwegian)"
-msgstr "Dvorak (Norwegen)"
-
-#: ../../keyboard.pm_.c:212
-msgid "Dvorak (Swedish)"
-msgstr "Dvorak (Schweden)"
-
-#: ../../keyboard.pm_.c:213
-msgid "Estonian"
-msgstr "Estland"
-
-#: ../../keyboard.pm_.c:217
-msgid "Georgian (\"Russian\" layout)"
-msgstr "Georgien (Kyrillisches Layout)"
-
-#: ../../keyboard.pm_.c:218
-msgid "Georgian (\"Latin\" layout)"
-msgstr "Georgien (Lateinisches Layout)"
-
-#: ../../keyboard.pm_.c:219
-msgid "Greek"
-msgstr "Griechenland"
-
-#: ../../keyboard.pm_.c:220
-msgid "Hungarian"
-msgstr "Ungarn"
-
-#: ../../keyboard.pm_.c:221
-msgid "Croatian"
-msgstr "Kroatien"
-
-#: ../../keyboard.pm_.c:222
-msgid "Israeli"
-msgstr "Israel"
-
-#: ../../keyboard.pm_.c:223
-msgid "Israeli (Phonetic)"
-msgstr "Israel (Phonetisch)"
-
-#: ../../keyboard.pm_.c:224
-msgid "Iranian"
-msgstr "Iran"
-
-#: ../../keyboard.pm_.c:225
-msgid "Icelandic"
-msgstr "Island"
-
-#: ../../keyboard.pm_.c:226
-msgid "Italian"
-msgstr "Italien"
-
-#: ../../keyboard.pm_.c:228
-msgid "Japanese 106 keys"
-msgstr "Japan (106 Tasten)"
-
-#: ../../keyboard.pm_.c:231
-msgid "Korean keyboard"
-msgstr "Korea"
-
-#: ../../keyboard.pm_.c:232
-msgid "Latin American"
-msgstr "Lateinamerika"
-
-#: ../../keyboard.pm_.c:233
-msgid "Lithuanian AZERTY (old)"
-msgstr "Litauen (AZERTY - alt)"
-
-#: ../../keyboard.pm_.c:235
-msgid "Lithuanian AZERTY (new)"
-msgstr "Litauen (AZERTY - neu)"
-
-#: ../../keyboard.pm_.c:236
-msgid "Lithuanian \"number row\" QWERTY"
-msgstr "Litauen (QWERTY - ā€˛number rowā€)"
-
-#: ../../keyboard.pm_.c:237
-msgid "Lithuanian \"phonetic\" QWERTY"
-msgstr "Litauen (QWERTY - Phonetisch)"
-
-#: ../../keyboard.pm_.c:238
-msgid "Latvian"
-msgstr "Lettland"
-
-#: ../../keyboard.pm_.c:239
-msgid "Macedonian"
-msgstr "Mazedonien"
-
-#: ../../keyboard.pm_.c:240
-msgid "Dutch"
-msgstr "Niederlande"
-
-#: ../../keyboard.pm_.c:242
-msgid "Polish (qwerty layout)"
-msgstr "Polen (QWERTY Layout)"
-
-#: ../../keyboard.pm_.c:243
-msgid "Polish (qwertz layout)"
-msgstr "Polen (QWERTZ Layout)"
-
-#: ../../keyboard.pm_.c:244
-msgid "Portuguese"
-msgstr "Portugal"
-
-#: ../../keyboard.pm_.c:245
-msgid "Canadian (Quebec)"
-msgstr "Kanada (Quebec)"
-
-#: ../../keyboard.pm_.c:247
-msgid "Romanian (qwertz)"
-msgstr "RumƤnien (QWERTZ)"
-
-#: ../../keyboard.pm_.c:248
-msgid "Romanian (qwerty)"
-msgstr "RumƤnien (QWERTY)"
-
-#: ../../keyboard.pm_.c:250
-msgid "Russian (Yawerty)"
-msgstr "Russland (YaWERTY)"
-
-#: ../../keyboard.pm_.c:252
-msgid "Slovenian"
-msgstr "Slowenien"
-
-#: ../../keyboard.pm_.c:253
-msgid "Slovakian (QWERTZ)"
-msgstr "Slowakei (QWERTZ)"
-
-#: ../../keyboard.pm_.c:254
-msgid "Slovakian (QWERTY)"
-msgstr "Slowakei (QWERTY)"
-
-#: ../../keyboard.pm_.c:256
-msgid "Serbian (cyrillic)"
-msgstr "Serbien (Kyrillisches Layout)"
-
-#: ../../keyboard.pm_.c:258
-msgid "Tamil"
-msgstr "Indien (Tamilisches Layout)"
-
-#: ../../keyboard.pm_.c:259
-msgid "Thai keyboard"
-msgstr "ThailƤndische Tastatur"
-
-#: ../../keyboard.pm_.c:261
-msgid "Tajik keyboard"
-msgstr "Tadschikistan"
-
-#: ../../keyboard.pm_.c:262
-msgid "Turkish (traditional \"F\" model)"
-msgstr "TĆ¼rkei (traditionelles ā€˛Fā€ Modell)"
-
-#: ../../keyboard.pm_.c:263
-msgid "Turkish (modern \"Q\" model)"
-msgstr "TĆ¼rkei (modernes ā€˛Qā€ Modell)"
-
-#: ../../keyboard.pm_.c:265
-msgid "Ukrainian"
-msgstr "Ukraine"
-
-#: ../../keyboard.pm_.c:268
-msgid "US keyboard (international)"
-msgstr "Vereinigte Staaten von Amerika (international)"
-
-#: ../../keyboard.pm_.c:269
-msgid "Vietnamese \"numeric row\" QWERTY"
-msgstr "Vietnam QWERTY (ā€˛number rowā€)"
-
-#: ../../keyboard.pm_.c:270
-msgid "Yugoslavian (latin)"
-msgstr "Jugoslawien (Lateinisches Layout)"
-
-#: ../../keyboard.pm_.c:278
-msgid "Right Alt key"
-msgstr "AltGr-Taste"
-
-#: ../../keyboard.pm_.c:279
-msgid "Both Shift keys simultaneously"
-msgstr "Beide Umschalttasten gleichzeitig"
-
-#: ../../keyboard.pm_.c:280
-msgid "Control and Shift keys simultaneously"
-msgstr "Strg und Umschalttaste gleichzeititg"
-
-#: ../../keyboard.pm_.c:281
-msgid "CapsLock key"
-msgstr "CapsLock Taste"
-
-#: ../../keyboard.pm_.c:282
-msgid "Ctrl and Alt keys simultaneously"
-msgstr "Strg und Alt gleichzeitig"
-
-#: ../../keyboard.pm_.c:283
-msgid "Alt and Shift keys simultaneously"
-msgstr "Alt und Umschalttaste gleichzeitig"
-
-#: ../../keyboard.pm_.c:284
-msgid "\"Menu\" key"
-msgstr "MenĆ¼taste"
-
-#: ../../keyboard.pm_.c:285
-msgid "Left \"Windows\" key"
-msgstr "Linke ā€˛Windowsā€-Taste"
-
-#: ../../keyboard.pm_.c:286
-msgid "Right \"Windows\" key"
-msgstr "Rechte ā€˛Windowsā€-Taste"
-
-#: ../../loopback.pm_.c:32
-#, c-format
-msgid "Circular mounts %s\n"
-msgstr "Schleife bei den EinhƤngpunkten %s\n"
-
-#: ../../lvm.pm_.c:88
-msgid "Remove the logical volumes first\n"
-msgstr "Entfernen Sie erst die Logischen Medien\n"
-
-#: ../../modules.pm_.c:826
-msgid ""
-"PCMCIA support no longer exist for 2.2 kernels. Please use a 2.4 kernel."
-msgstr ""
-"Die PCMCIA-UnterstĆ¼tzung fĆ¼r 2.2er Kerne wurde eingestellt. Verwenden Sie "
-"bitte einen 2.4er Kern."
-
-#: ../../mouse.pm_.c:25
-msgid "Sun - Mouse"
-msgstr "Sun - Maus"
-
-#: ../../mouse.pm_.c:32
-msgid "Logitech MouseMan+"
-msgstr "Logitech MausMan/FirstMaus (Seriell)"
-
-#: ../../mouse.pm_.c:33
-msgid "Generic PS2 Wheel Mouse"
-msgstr "Generische PS2 Rad-Maus"
-
-#: ../../mouse.pm_.c:34
-msgid "GlidePoint"
-msgstr "GlidePoint"
-
-#: ../../mouse.pm_.c:36 ../../mouse.pm_.c:63
-msgid "Kensington Thinking Mouse"
-msgstr "Kensington Thinking Maus"
-
-#: ../../mouse.pm_.c:37 ../../mouse.pm_.c:59
-msgid "Genius NetMouse"
-msgstr "Genius NetMaus"
-
-#: ../../mouse.pm_.c:38
-msgid "Genius NetScroll"
-msgstr "Genius NetScroll"
-
-#: ../../mouse.pm_.c:43 ../../mouse.pm_.c:68
-msgid "1 button"
-msgstr "1 Taste"
-
-#: ../../mouse.pm_.c:44 ../../mouse.pm_.c:51
-msgid "Generic 2 Button Mouse"
-msgstr "Generische 2 Tasten Maus"
-
-#: ../../mouse.pm_.c:45
-msgid "Generic"
-msgstr "Generisch"
-
-#: ../../mouse.pm_.c:46
-msgid "Wheel"
-msgstr "Rad"
-
-#: ../../mouse.pm_.c:49
-msgid "serial"
-msgstr "Seriell"
-
-#: ../../mouse.pm_.c:52
-msgid "Generic 3 Button Mouse"
-msgstr "Generische 3 Tasten Maus"
-
-#: ../../mouse.pm_.c:53
-msgid "Microsoft IntelliMouse"
-msgstr "Microsoft IntelliMaus"
-
-#: ../../mouse.pm_.c:54
-msgid "Logitech MouseMan"
-msgstr "Logitech MausMan/FirstMaus"
-
-#: ../../mouse.pm_.c:55
-msgid "Mouse Systems"
-msgstr "Mouse Systems"
-
-#: ../../mouse.pm_.c:57
-msgid "Logitech CC Series"
-msgstr "Logitech CC Serie"
-
-#: ../../mouse.pm_.c:58
-msgid "Logitech MouseMan+/FirstMouse+"
-msgstr "Logitech MausMan+/FirstMaus+"
-
-#: ../../mouse.pm_.c:60
-msgid "MM Series"
-msgstr "MM Serie"
-
-#: ../../mouse.pm_.c:61
-msgid "MM HitTablet"
-msgstr "MM HitTablet"
-
-#: ../../mouse.pm_.c:62
-msgid "Logitech Mouse (serial, old C7 type)"
-msgstr "Logitech Maus (Seriell, alter C7 Typ)"
-
-#: ../../mouse.pm_.c:66
-msgid "busmouse"
-msgstr "Bus-Maus"
-
-#: ../../mouse.pm_.c:69
-msgid "2 buttons"
-msgstr "2 Tasten"
-
-#: ../../mouse.pm_.c:70
-msgid "3 buttons"
-msgstr "3 Tasten"
-
-#: ../../mouse.pm_.c:73
-msgid "none"
-msgstr "keine"
-
-#: ../../mouse.pm_.c:75
-msgid "No mouse"
-msgstr "Keine Maus"
-
-#: ../../mouse.pm_.c:499
-msgid "Please test the mouse"
-msgstr "Bitte testen Sie Ihre Maus"
-
-#: ../../mouse.pm_.c:500
-msgid "To activate the mouse,"
-msgstr "Um Ihre Maus zu aktivieren:"
-
-#: ../../mouse.pm_.c:501
-msgid "MOVE YOUR WHEEL!"
-msgstr "BEWEGEN SIE IHR MAUS-RAD!"
-
-#: ../../my_gtk.pm_.c:651
-msgid "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"
-msgstr "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"
-
-#: ../../my_gtk.pm_.c:686
-msgid "Finish"
-msgstr "Beenden"
-
-#: ../../my_gtk.pm_.c:686 ../../printerdrake.pm_.c:1588
-msgid "Next ->"
-msgstr "Weiter ->"
-
-#: ../../my_gtk.pm_.c:687 ../../printerdrake.pm_.c:1586
-msgid "<- Previous"
-msgstr "<- ZurĆ¼ck"
-
-#: ../../my_gtk.pm_.c:1019
-msgid "Is this correct?"
-msgstr "Ist dies richtig?"
-
-#: ../../network/adsl.pm_.c:19 ../../network/ethernet.pm_.c:36
-msgid "Connect to the Internet"
-msgstr "Internetverbindung"
-
-#: ../../network/adsl.pm_.c:20
-msgid ""
-"The most common way to connect with adsl is pppoe.\n"
-"Some connections use pptp, a few ones use dhcp.\n"
-"If you don't know, choose 'use pppoe'"
-msgstr ""
-"Der gebrƤuchlichste Weg mit ADSL eine Verbindung aufzubauen ist pppoe.\n"
-"Einige Verbindungen benutzen jedoch pptp, andere dhcp.\n"
-"Wenn Sie nicht wissen was Sie brauchen, wƤhlen Sie ā€˛pppoe verwendenā€"
-
-#: ../../network/adsl.pm_.c:22
-msgid "Alcatel speedtouch usb"
-msgstr "Alcatel speedtouch USB"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use dhcp"
-msgstr "DHCP verwenden"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pppoe"
-msgstr "PPPOE verwenden"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pptp"
-msgstr "PPTP verwenden"
-
-#: ../../network/ethernet.pm_.c:37
-msgid ""
-"Which dhcp client do you want to use?\n"
-"Default is dhcpcd"
-msgstr ""
-"Welchen DHCP Klienten wollen Sie verwenden?\n"
-"Voreingestellt ist ā€˛dhcpcdā€"
-
-#: ../../network/ethernet.pm_.c:88
-msgid ""
-"No ethernet network adapter has been detected on your system.\n"
-"I cannot set up this connection type."
-msgstr ""
-"Ich habe keine Ethernet-Netzwerkkarte finden kƶnnen, daher kanndieser "
-"Verbindungstyp nicht konfiguriert werden."
-
-#: ../../network/ethernet.pm_.c:92 ../../standalone/drakgw_.c:252
-msgid "Choose the network interface"
-msgstr "WƤhlen Sie die Netzwerkkarte"
-
-#: ../../network/ethernet.pm_.c:93
-msgid ""
-"Please choose which network adapter you want to use to connect to Internet"
-msgstr ""
-"Bitte wƤhlen Sie, Ć¼ber welches NetzwerkgerƤt Sie die \n"
-"Internetverbindung herstellen wollen."
-
-#: ../../network/ethernet.pm_.c:178
-msgid "no network card found"
-msgstr "Keine Netzwerkkarte gefunden"
-
-#: ../../network/ethernet.pm_.c:202 ../../network/network.pm_.c:360
-msgid "Configuring network"
-msgstr "Netzwerk konfigurieren"
-
-#: ../../network/ethernet.pm_.c:203
-msgid ""
-"Please enter your host name if you know it.\n"
-"Some DHCP servers require the hostname to work.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''."
-msgstr ""
-"Bitte geben Sie ihren Rechnernamen an.\n"
-"Einige DHCP-Server benƶtigen ihn, um korrekt zu arbeiten.\n"
-"Ihr Rechnername sollte auch die Domain beinhalten,\n"
-"etwa ā€˛meinrechner.meineabteilung.meinefirma.deā€."
-
-#: ../../network/ethernet.pm_.c:207 ../../network/network.pm_.c:365
-msgid "Host name"
-msgstr "Rechnername"
-
-#: ../../network/isdn.pm_.c:21 ../../network/isdn.pm_.c:44
-#: ../../network/netconnect.pm_.c:95 ../../network/netconnect.pm_.c:109
-#: ../../network/netconnect.pm_.c:164 ../../network/netconnect.pm_.c:175
-#: ../../network/netconnect.pm_.c:202 ../../network/netconnect.pm_.c:225
-#: ../../network/netconnect.pm_.c:233
-msgid "Network Configuration Wizard"
-msgstr "Netzwerk Konfigurationsassistent"
-
-#: ../../network/isdn.pm_.c:22
-msgid "External ISDN modem"
-msgstr "Externes ISDN Modem"
-
-#: ../../network/isdn.pm_.c:22
-msgid "Internal ISDN card"
-msgstr "Interne ISDN Karte"
-
-#: ../../network/isdn.pm_.c:22
-msgid "What kind is your ISDN connection?"
-msgstr "Um welchen Typ ISDN-Verbindung handelt es sich?"
-
-#: ../../network/isdn.pm_.c:45
-msgid ""
-"Which ISDN configuration do you prefer?\n"
-"\n"
-"* The Old configuration uses isdn4net. It contains powerfull\n"
-" tools, but is tricky to configure, and not standard.\n"
-"\n"
-"* The New configuration is easier to understand, more\n"
-" standard, but with less tools.\n"
-"\n"
-"We recommand the light configuration.\n"
-msgstr ""
-"Welche ISDN Konfiguration wollen Sie durchfĆ¼hren?\n"
-"\n"
-"* Die alte Konfiguration verwendet ā€˛isdn4netā€. Sie \n"
-" enthƤllt mƤchtigere Werkzeuge, ist jedoch komplizierter \n"
-" einzurichten und nicht voll standardkonform.\n"
-"\n"
-"* Die neue Konfiguration mit ā€˛isdn-lightā€ ist \n"
-" verstƤndlicher und standardkonformer, sie enthƤllt \n"
-" jedoch weniger Werkzeuge.\n"
-"\n"
-"Wir empfehlen die ā€˛isdn-lightā€ Variante.\n"
-
-#: ../../network/isdn.pm_.c:54
-msgid "New configuration (isdn-light)"
-msgstr "Neue Konfiguration (isdn-light)"
-
-#: ../../network/isdn.pm_.c:54
-msgid "Old configuration (isdn4net)"
-msgstr "Alte Konfiguration (isdn4net)"
-
-#: ../../network/isdn.pm_.c:170 ../../network/isdn.pm_.c:188
-#: ../../network/isdn.pm_.c:198 ../../network/isdn.pm_.c:205
-#: ../../network/isdn.pm_.c:215
-msgid "ISDN Configuration"
-msgstr "ISDN Konfiguration"
-
-#: ../../network/isdn.pm_.c:170
-msgid ""
-"Select your provider.\n"
-" If it's not in the list, choose Unlisted"
-msgstr ""
-"WƤhlen Sie Ihren Netzanbieter.\n"
-"Sollte er nicht aufgefĆ¼hrt sein, wƤhlen Sie ā€˛Nicht aufgefĆ¼hrtā€"
-
-#: ../../network/isdn.pm_.c:183
-msgid "Europe protocol"
-msgstr "EuropƤisches Protokoll"
-
-#: ../../network/isdn.pm_.c:183
-msgid "Europe protocol (EDSS1)"
-msgstr "EuropƤisches Protokoll (EDSS1)"
-
-#: ../../network/isdn.pm_.c:185
-msgid "Protocol for the rest of the world"
-msgstr "Protokoll fĆ¼r den Rest der Welt"
-
-#: ../../network/isdn.pm_.c:185
-msgid ""
-"Protocol for the rest of the world \n"
-" no D-Channel (leased lines)"
-msgstr ""
-"Protokoll fĆ¼r den Rest der Welt \n"
-"ohne D-Kanal (Leased Lines)"
-
-#: ../../network/isdn.pm_.c:189
-msgid "Which protocol do you want to use ?"
-msgstr "Welches Protokoll wollen Sie verwenden?"
-
-#: ../../network/isdn.pm_.c:199
-msgid "What kind of card do you have?"
-msgstr "Welchen Kartentyp verwenden Sie?"
-
-#: ../../network/isdn.pm_.c:200
-msgid "I don't know"
-msgstr "Keine Ahnung"
-
-#: ../../network/isdn.pm_.c:200
-msgid "ISA / PCMCIA"
-msgstr "ISA/PCMCIA"
-
-#: ../../network/isdn.pm_.c:200
-msgid "PCI"
-msgstr "PCI"
-
-#: ../../network/isdn.pm_.c:206
-msgid ""
-"\n"
-"If you have an ISA card, the values on the next screen should be right.\n"
-"\n"
-"If you have a PCMCIA card, you have to know the irq and io of your card.\n"
-msgstr ""
-"\n"
-"Falls Sie eine ISA-Karte besitzen, sollten die Einstellungen auf dem "
-"nƤchsten Schirm korrekt sein.\n"
-"\n"
-"Falls Sie eine PCMCIA-Karte besitzen, mĆ¼ssen Sie IRQ und E/A-Bereich Ihrer "
-"Karte kennen.\n"
-
-#: ../../network/isdn.pm_.c:210
-msgid "Abort"
-msgstr "Abbruch"
-
-#: ../../network/isdn.pm_.c:210
-msgid "Continue"
-msgstr "Fortfahren"
-
-#: ../../network/isdn.pm_.c:216
-msgid "Which is your ISDN card ?"
-msgstr "Bitte wƤhlen Sie Ihre ISDN Karte"
-
-#: ../../network/isdn.pm_.c:235
-msgid ""
-"I have detected an ISDN PCI Card, but I don't know the type. Please select "
-"one PCI card on the next screen."
-msgstr ""
-"Ich habe eine PCI ISDN-Karte gefunden, \n"
-"kenne sie jedoch nicht. Bitte helfen Sie mir,\n"
-"indem Sie im nƤchsten MenĆ¼ eine auswƤhlen."
-
-#: ../../network/isdn.pm_.c:244
-msgid "No ISDN PCI card found. Please select one on the next screen."
-msgstr ""
-"Ich konnte keine PCI ISDN-Karte finden.\n"
-"Bitte wƤhlen Sie im nƤchsten MenĆ¼ eine aus."
-
-#: ../../network/modem.pm_.c:39
-msgid "Please choose which serial port your modem is connected to."
-msgstr "Bitte wƤhlen Sie den seriellen Anschluss, an dem Ihr Modem hƤngt."
-
-#: ../../network/modem.pm_.c:44
-msgid "Dialup options"
-msgstr "Einwahl Parameter"
-
-#: ../../network/modem.pm_.c:45 ../../standalone/draknet_.c:622
-msgid "Connection name"
-msgstr "Name der Verbindung"
-
-#: ../../network/modem.pm_.c:46 ../../standalone/draknet_.c:623
-msgid "Phone number"
-msgstr "Telefonnummer"
-
-#: ../../network/modem.pm_.c:47 ../../standalone/draknet_.c:624
-msgid "Login ID"
-msgstr "Login ID"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "CHAP"
-msgstr "CHAP"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "PAP"
-msgstr "PAP"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Script-based"
-msgstr "Skript-basiert"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Terminal-based"
-msgstr "Terminal-basiert"
-
-#: ../../network/modem.pm_.c:50 ../../standalone/draknet_.c:627
-msgid "Domain name"
-msgstr "Name der DomƤne"
-
-#: ../../network/modem.pm_.c:51 ../../standalone/draknet_.c:628
-msgid "First DNS Server (optional)"
-msgstr "Erster DNS Server (optional)"
-
-#: ../../network/modem.pm_.c:52 ../../standalone/draknet_.c:629
-msgid "Second DNS Server (optional)"
-msgstr "Zweiter DNS Server (optional)"
-
-#: ../../network/netconnect.pm_.c:34
-msgid ""
-"\n"
-"You can disconnect or reconfigure your connection."
-msgstr ""
-"\n"
-"Sie kƶnnen die Verbindung trennen oder sie neu konfigurieren."
-
-#: ../../network/netconnect.pm_.c:34 ../../network/netconnect.pm_.c:37
-msgid ""
-"\n"
-"You can reconfigure your connection."
-msgstr ""
-"\n"
-"Sie kƶnnen Ihre Internetverbindung neu konfigurieren"
-
-#: ../../network/netconnect.pm_.c:34
-msgid "You are currently connected to internet."
-msgstr "Sie sind momentan mit dem Internet verbunden."
-
-#: ../../network/netconnect.pm_.c:37
-msgid ""
-"\n"
-"You can connect to Internet or reconfigure your connection."
-msgstr ""
-"\n"
-"Sie kƶnnen eine Internetverbindung aufbauen oder die Verbindung neu "
-"konfigurieren"
-
-#: ../../network/netconnect.pm_.c:37
-msgid "You are not currently connected to Internet."
-msgstr "Sie sind momentan nicht mit dem Internet verbunden."
-
-#: ../../network/netconnect.pm_.c:41
-msgid "Connect"
-msgstr "Verbinden"
-
-#: ../../network/netconnect.pm_.c:43
-msgid "Disconnect"
-msgstr "Verbindung trennen"
-
-#: ../../network/netconnect.pm_.c:45
-msgid "Configure the connection"
-msgstr "Die Verbindung konfigurieren"
-
-#: ../../network/netconnect.pm_.c:50
-msgid "Internet connection & configuration"
-msgstr "Internetverbindung und -einrichtung"
-
-#: ../../network/netconnect.pm_.c:100
-#, c-format
-msgid "We are now going to configure the %s connection."
-msgstr "Wir werden nun die Verbindung ā€˛%sā€ konfigurieren."
-
-#: ../../network/netconnect.pm_.c:109
-#, c-format
-msgid ""
-"\n"
-"\n"
-"\n"
-"We are now going to configure the %s connection.\n"
-"\n"
-"\n"
-"Press OK to continue."
-msgstr ""
-"\n"
-"\n"
-"\n"
-"Wir werden nun die Verbindung ā€˛%sā€ konfigurieren.\n"
-"\n"
-"\n"
-"WƤhlen Sie ā€˛OKā€, um fortzufahren."
-
-#: ../../network/netconnect.pm_.c:138 ../../network/netconnect.pm_.c:252
-#: ../../network/netconnect.pm_.c:271 ../../network/tools.pm_.c:57
-msgid "Network Configuration"
-msgstr "Netzwerk konfigurieren"
-
-#: ../../network/netconnect.pm_.c:139
-msgid ""
-"Because you are doing a network installation, your network is already "
-"configured.\n"
-"Click on Ok to keep your configuration, or cancel to reconfigure your "
-"Internet & Network connection.\n"
-msgstr ""
-"Da Sie eine Netzwerkinstallation durchfĆ¼hren, ist Ihr Netzwerk bereits\n"
-"konfiguriert. WƤhlen Sie ā€˛OKā€, um diese Einstellung beizubehalten oder\n"
-"ā€˛Abbruchā€, um Ihre Internet- und Netzwerk-Konfiguration neu zu\n"
-"konfigurieren.\n"
-
-#: ../../network/netconnect.pm_.c:165
-msgid ""
-"Welcome to The Network Configuration Wizard\n"
-"\n"
-"We are about to configure your internet/network connection.\n"
-"If you don't want to use the auto detection, deselect the checkbox.\n"
-msgstr ""
-"Willkommen zum Netzwerk Konfigurationsassistent.\n"
-"\n"
-"Ich versuche nun Ihre Internet-/Netzwerk-Verbindung zu konfigurieren.\n"
-"Falls Sie keine Autodetektion wĆ¼nschen, entfernen Sie bitte die Markierung.\n"
-
-#: ../../network/netconnect.pm_.c:167
-msgid "Choose the profile to configure"
-msgstr "WƤhlen Sie das Profil, dass eingestellt werden soll"
-
-#: ../../network/netconnect.pm_.c:168
-msgid "Use auto detection"
-msgstr "Autoerkennung benutzen"
-
-#: ../../network/netconnect.pm_.c:175
-msgid "Detecting devices..."
-msgstr "GerƤteerkennung..."
-
-#: ../../network/netconnect.pm_.c:186 ../../network/netconnect.pm_.c:195
-msgid "Normal modem connection"
-msgstr "Normale Modem Verbindung"
-
-#: ../../network/netconnect.pm_.c:186 ../../network/netconnect.pm_.c:195
-#, c-format
-msgid "detected on port %s"
-msgstr "an Prot %s gefunden"
-
-#: ../../network/netconnect.pm_.c:187 ../../network/netconnect.pm_.c:196
-msgid "ISDN connection"
-msgstr "ISDN Verbindung"
-
-#: ../../network/netconnect.pm_.c:187 ../../network/netconnect.pm_.c:196
-#, c-format
-msgid "detected %s"
-msgstr "%s gefunden"
-
-#: ../../network/netconnect.pm_.c:188 ../../network/netconnect.pm_.c:197
-msgid "ADSL connection"
-msgstr "ADSL Verbindung"
-
-#: ../../network/netconnect.pm_.c:188 ../../network/netconnect.pm_.c:197
-#, c-format
-msgid "detected on interface %s"
-msgstr "an Schnittstelle %s gefunden"
-
-#: ../../network/netconnect.pm_.c:189 ../../network/netconnect.pm_.c:198
-msgid "Cable connection"
-msgstr "Kabel Verbindung"
-
-#: ../../network/netconnect.pm_.c:189 ../../network/netconnect.pm_.c:198
-msgid "cable connection detected"
-msgstr "Kabel Verbindung gefunden"
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-msgid "LAN connection"
-msgstr "LAN Verbindung"
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-msgid "ethernet card(s) detected"
-msgstr "Netzwerkkarte(n) gefunden"
-
-#: ../../network/netconnect.pm_.c:202
-msgid "Choose the connection you want to configure"
-msgstr "WƤhlen Sie die Verbindung, die Sie konfigurieren wollen"
-
-#: ../../network/netconnect.pm_.c:226
-msgid ""
-"You have configured multiple ways to connect to the Internet.\n"
-"Choose the one you want to use.\n"
-"\n"
-msgstr ""
-"Sie haben verschiedene Varianten eingerichtet, sich mit dem\n"
-"Internet zu verbinden. Bitte wƤhlen Sie, welche Verbindungsart\n"
-"ich versuchen soll.\n"
-"\n"
-
-#: ../../network/netconnect.pm_.c:227
-msgid "Internet connection"
-msgstr "Internet-Verbindung"
-
-#: ../../network/netconnect.pm_.c:233
-msgid "Do you want to start the connection at boot?"
-msgstr "Mƶchten Sie die Verbindung bei Betriebssystemstart herstellen?"
-
-#: ../../network/netconnect.pm_.c:247
-msgid "Network configuration"
-msgstr "Netzwerk Konfiguration"
-
-#: ../../network/netconnect.pm_.c:248
-msgid "The network needs to be restarted"
-msgstr "Das Netzwerk muss neu gestartet werden"
-
-#: ../../network/netconnect.pm_.c:252
-#, c-format
-msgid ""
-"A problem occured while restarting the network: \n"
-"\n"
-"%s"
-msgstr ""
-"Beim Neustart des Netzwerks trat ein Fehler auf: \n"
-"\n"
-"%s"
-
-#: ../../network/netconnect.pm_.c:261
-msgid ""
-"Congratulations, the network and Internet configuration is finished.\n"
-"The configuration will now be applied to your system.\n"
-"\n"
-msgstr ""
-"Herzlichen GlĆ¼ckwunsch, die Netzwerk-/Internet-Einrichtung ist beendet.\n"
-"\n"
-"Die Konfiguration wird nun in Ihr System integriert.\n"
-
-#: ../../network/netconnect.pm_.c:265
-msgid ""
-"After this is done, we recommend that you restart your X environment to "
-"avoid any hostname-related problems."
-msgstr ""
-"Es ist sehr empfehlenswert, im Anschluss Ihre X-OberflƤche\n"
-"neu zu starten, um Probleme, die durch die Ć„nderung des\n"
-"Rechnernamens hervorgerufen werden, zu vermeiden."
-
-#: ../../network/netconnect.pm_.c:266
-msgid ""
-"Problems occured during configuration.\n"
-"Test your connection via net_monitor or mcc. If your connection doesn't "
-"work, you might want to relaunch the configuration"
-msgstr ""
-"WƤhrend der Konfiguration traten Fehler auf.\n"
-"Kontrollieren Sie Ihre Verbindung mit ā€˛net_monitorā€ oder dem Mandrake "
-"Kontrollzentrum. Falls die Verbindung nicht funktioniert, sollten Sie erneut "
-"die Konfguration starten."
-
-#: ../../network/network.pm_.c:292
-msgid ""
-"WARNING: This device has been previously configured to connect to the "
-"Internet.\n"
-"Simply accept to keep this device configured.\n"
-"Modifying the fields below will override this configuration."
-msgstr ""
-"WARNUNG: Dieses GerƤt wurde bereits zum Herstellen einer Internetverbindung "
-"konfiguriert.\n"
-"DrĆ¼cken Sie einfach ā€˛OKā€, um die Einstellungen zu behalten.\n"
-"Fall Sie Felder verƤndern, wird die Konfiguration Ć¼berschrieben."
-
-#: ../../network/network.pm_.c:297
-msgid ""
-"Please enter the IP configuration for this machine.\n"
-"Each item should be entered as an IP address in dotted-decimal\n"
-"notation (for example, 1.2.3.4)."
-msgstr ""
-"Bitte geben Sie die IP Parameter dieser Maschine ein.\n"
-"Jeder Eintrag muss als dezimale IP-Adresse in Punktschreibweise \n"
-"angegeben werden (etwa ā€˛192.168.1.42ā€)."
-
-#: ../../network/network.pm_.c:306 ../../network/network.pm_.c:307
-#, c-format
-msgid "Configuring network device %s"
-msgstr "Konfigurieren der Netzwerkkarte %s"
-
-#: ../../network/network.pm_.c:307
-#, c-format
-msgid " (driver %s)"
-msgstr " (Treiber %s)"
-
-#: ../../network/network.pm_.c:309 ../../standalone/draknet_.c:232
-#: ../../standalone/draknet_.c:468
-msgid "IP address"
-msgstr "IP Adresse"
-
-#: ../../network/network.pm_.c:310 ../../standalone/draknet_.c:469
-msgid "Netmask"
-msgstr "Netzmaske"
-
-#: ../../network/network.pm_.c:311
-msgid "(bootp/dhcp)"
-msgstr "(BOOTP/DHCP)"
-
-#: ../../network/network.pm_.c:311
-msgid "Automatic IP"
-msgstr "Automatische IP-Adressen Zuweisung"
-
-#: ../../network/network.pm_.c:332 ../../printerdrake.pm_.c:712
-msgid "IP address should be in format 1.2.3.4"
-msgstr "Die IP Adresse sollte etwa die Form ā€˛192.168.1.42ā€ haben!"
-
-#: ../../network/network.pm_.c:361
-msgid ""
-"Please enter your host name.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''.\n"
-"You may also enter the IP address of the gateway if you have one"
-msgstr ""
-"Bitte geben Sie ihren Rechnernamen an.\n"
-"Ihr Rechnername sollte auch die Domain beinhalten,\n"
-"etwa ā€˛meinrechner.meineabteilung.meinefirma.deā€.\n"
-"Falls Sie ein Gateway verwenden, sollten Sie auch dessen IP-Adresse angeben."
-
-#: ../../network/network.pm_.c:366
-msgid "DNS server"
-msgstr "DNS-Server"
-
-#: ../../network/network.pm_.c:367
-#, c-format
-msgid "Gateway (e.g. %s)"
-msgstr "Gateway (etwa %s)"
-
-#: ../../network/network.pm_.c:369
-msgid "Gateway device"
-msgstr "Gateway GerƤt"
-
-#: ../../network/network.pm_.c:381
-msgid "Proxies configuration"
-msgstr "Proxies einstellen"
-
-#: ../../network/network.pm_.c:382
-msgid "HTTP proxy"
-msgstr "HTTP Proxy"
-
-#: ../../network/network.pm_.c:383
-msgid "FTP proxy"
-msgstr "FTP Proxy"
-
-#: ../../network/network.pm_.c:384
-msgid "Track network card id (usefull for laptops)"
-msgstr "Netzwerkkarten-ID Ć¼berwachen (sinnvoll fĆ¼r Laptops)"
-
-#: ../../network/network.pm_.c:387
-msgid "Proxy should be http://..."
-msgstr "Proxy muss ā€˛http://...ā€ sein"
-
-#: ../../network/network.pm_.c:388
-msgid "Proxy should be ftp://..."
-msgstr "Proxy muss ā€˛ftp://...ā€ sein"
-
-#: ../../network/tools.pm_.c:39
-msgid "Internet configuration"
-msgstr "Internet Konfiguration"
-
-#: ../../network/tools.pm_.c:40
-msgid "Do you want to try to connect to the Internet now?"
-msgstr "Mƶchten Sie jetzt versuchen eine Internetverbindung aufzubauen?"
-
-#: ../../network/tools.pm_.c:44 ../../standalone/draknet_.c:197
-msgid "Testing your connection..."
-msgstr "Ich teste gerade Ihre Verbindung..."
-
-#: ../../network/tools.pm_.c:50
-msgid "The system is now connected to Internet."
-msgstr "Sie sind jetzt mit dem Internet verbunden."
-
-#: ../../network/tools.pm_.c:51
-msgid "For Security reason, it will be disconnected now."
-msgstr "Aus SicherheitsgrĆ¼nden wird die Verbindung nun unterbrochen."
-
-#: ../../network/tools.pm_.c:52
-msgid ""
-"The system doesn't seem to be connected to internet.\n"
-"Try to reconfigure your connection."
-msgstr ""
-"Sie sind momentan nicht mit dem Internet verbunden.\n"
-"Versuchen Sie Ihre Internetverbindung wieder zu konfigurieren."
-
-#: ../../network/tools.pm_.c:76
-msgid "Connection Configuration"
-msgstr "Verbindungskonfiguration"
-
-#: ../../network/tools.pm_.c:77
-msgid "Please fill or check the field below"
-msgstr ""
-"Bitte fĆ¼llen Sie die folgen Felder aus \n"
-"bzw. makieren Sie die korrekten Angaben"
-
-#: ../../network/tools.pm_.c:79 ../../standalone/draknet_.c:608
-msgid "Card IRQ"
-msgstr "Karten IRQ"
-
-#: ../../network/tools.pm_.c:80 ../../standalone/draknet_.c:609
-msgid "Card mem (DMA)"
-msgstr "Karten Mem (DMA)"
-
-#: ../../network/tools.pm_.c:81 ../../standalone/draknet_.c:610
-msgid "Card IO"
-msgstr "Karten E/A"
-
-#: ../../network/tools.pm_.c:82 ../../standalone/draknet_.c:611
-msgid "Card IO_0"
-msgstr "Karten IO_0"
-
-#: ../../network/tools.pm_.c:83 ../../standalone/draknet_.c:612
-msgid "Card IO_1"
-msgstr "Karten IO_1"
-
-#: ../../network/tools.pm_.c:84 ../../standalone/draknet_.c:613
-msgid "Your personal phone number"
-msgstr "Ihre eigene Telefonnummer"
-
-#: ../../network/tools.pm_.c:85 ../../standalone/draknet_.c:614
-msgid "Provider name (ex provider.net)"
-msgstr "Name des Providers (z.B. provider.net) "
-
-#: ../../network/tools.pm_.c:86 ../../standalone/draknet_.c:615
-msgid "Provider phone number"
-msgstr "Telefonnummer des Providers"
-
-#: ../../network/tools.pm_.c:87 ../../standalone/draknet_.c:616
-msgid "Provider dns 1 (optional)"
-msgstr "Erster DNS des Providers (optional)"
-
-#: ../../network/tools.pm_.c:88 ../../standalone/draknet_.c:617
-msgid "Provider dns 2 (optional)"
-msgstr "Zweiter DNS des Providers (optional)"
-
-#: ../../network/tools.pm_.c:89
-msgid "Choose your country"
-msgstr "Land auswƤhlen"
-
-#: ../../network/tools.pm_.c:90 ../../standalone/draknet_.c:620
-msgid "Dialing mode"
-msgstr "Wahlmodus"
-
-#: ../../network/tools.pm_.c:91 ../../standalone/draknet_.c:632
-msgid "Connection speed"
-msgstr "Verbindungsgeschwindigkeit"
-
-#: ../../network/tools.pm_.c:92 ../../standalone/draknet_.c:633
-msgid "Connection timeout (in sec)"
-msgstr "VerbindungsTimeout (in Sec)"
-
-#: ../../network/tools.pm_.c:93 ../../standalone/draknet_.c:618
-msgid "Account Login (user name)"
-msgstr "Kennzeichen (Login)"
-
-#: ../../network/tools.pm_.c:94 ../../standalone/draknet_.c:619
-msgid "Account Password"
-msgstr "Passwort"
-
-#: ../../partition_table.pm_.c:600
-msgid "mount failed: "
-msgstr "Fehler beim EinhƤngen: "
-
-#: ../../partition_table.pm_.c:664
-msgid "Extended partition not supported on this platform"
-msgstr "Diese Rechnerarchitektur kennt keine erweiterten Partitionen"
-
-#: ../../partition_table.pm_.c:682
-msgid ""
-"You have a hole in your partition table but I can't use it.\n"
-"The only solution is to move your primary partitions to have the hole next "
-"to the extended partitions"
-msgstr ""
-"Sie haben einen unbenutzten Bereich in Ihrer Partitionstabelle, \n"
-"den ich nicht ansprechen kann. Die einzige Lƶsung ist, dass Sie \n"
-"Ihre primƤren Partitionen so verschieben, dass der Bereich direkt \n"
-"neben der erweiterten Partition zu liegen kommt."
-
-#: ../../partition_table.pm_.c:770
-#, c-format
-msgid "Restoring from file %s failed: %s"
-msgstr "Restaurieren aus der Datei %s schlug Fehl: %s"
-
-#: ../../partition_table.pm_.c:772
-msgid "Bad backup file"
-msgstr "Fehlerhafte Backup-Datei"
-
-#: ../../partition_table.pm_.c:794
-#, c-format
-msgid "Error writing to file %s"
-msgstr "Fehler beim Schreiben in Datei %s"
-
-#: ../../partition_table_raw.pm_.c:186
-msgid ""
-"Something bad is happening on your drive. \n"
-"A test to check the integrity of data has failed. \n"
-"It means writing anything on the disk will end up with random trash"
-msgstr ""
-"Mit Ihrer Platte stimmt etwas nicht!\n"
-"Der vorgenommene IntegritƤtstest schlug Fehl.\n"
-"Das bedeutet, dass jeder Schreibvorgang auf der Platte zu einem \n"
-"unvorhersagbaren Ergebnis fĆ¼hren wird."
-
-#: ../../pkgs.pm_.c:24
-msgid "must have"
-msgstr "unbedingt notwendig"
-
-#: ../../pkgs.pm_.c:25
-msgid "important"
-msgstr "wichtig"
-
-#: ../../pkgs.pm_.c:26
-msgid "very nice"
-msgstr "sehr angenehm"
-
-#: ../../pkgs.pm_.c:27
-msgid "nice"
-msgstr "angenehm"
-
-#: ../../pkgs.pm_.c:28
-msgid "maybe"
-msgstr "eventuell"
-
-#: ../../printer.pm_.c:23
-msgid "CUPS - Common Unix Printing System"
-msgstr "CUPS - Common Unix Printing System"
-
-#: ../../printer.pm_.c:24
-msgid "LPRng - LPR New Generation"
-msgstr "LPRng - LPR New Generation"
-
-#: ../../printer.pm_.c:25
-msgid "LPD - Line Printer Daemon"
-msgstr "LPD - Line Printer Daemon"
-
-#: ../../printer.pm_.c:26
-msgid "PDQ - Print, Don't Queue"
-msgstr "PDQ - Print, Don't Queue"
-
-#: ../../printer.pm_.c:32 ../../printer.pm_.c:871
-msgid "CUPS"
-msgstr "CUPS"
-
-#: ../../printer.pm_.c:33
-msgid "LPRng"
-msgstr "LPRng"
-
-#: ../../printer.pm_.c:34
-msgid "LPD"
-msgstr "LPD"
-
-#: ../../printer.pm_.c:35
-msgid "PDQ"
-msgstr "PDQ"
-
-#: ../../printer.pm_.c:47
-msgid "Local printer"
-msgstr "Lokaler Drucker"
-
-#: ../../printer.pm_.c:48
-msgid "Remote printer"
-msgstr "Entfernter Drucker"
-
-#: ../../printer.pm_.c:49
-msgid "Printer on remote CUPS server"
-msgstr "Drucker an CUPS-Server auf der Gegenseite"
-
-#: ../../printer.pm_.c:50 ../../printerdrake.pm_.c:734
-msgid "Printer on remote lpd server"
-msgstr "Drucker an lpd-Server auf der Gegenseite"
-
-#: ../../printer.pm_.c:51
-msgid "Network printer (TCP/Socket)"
-msgstr "Netzwerkdrucker (TCP/Socket)"
-
-#: ../../printer.pm_.c:52
-msgid "Printer on SMB/Windows 95/98/NT server"
-msgstr "Drucker an SMB/Windows 9x/ME/NT"
-
-#: ../../printer.pm_.c:53
-msgid "Printer on NetWare server"
-msgstr "Drucker an NetWare Server"
-
-#: ../../printer.pm_.c:54 ../../printerdrake.pm_.c:738
-msgid "Enter a printer device URI"
-msgstr "Druckeranschluss URI"
-
-#: ../../printer.pm_.c:55
-msgid "Pipe job into a command"
-msgstr "Den Auftrag an ein Kommando weiterleiten"
-
-#: ../../printer.pm_.c:504 ../../printer.pm_.c:695 ../../printer.pm_.c:1017
-#: ../../printerdrake.pm_.c:1665 ../../printerdrake.pm_.c:2730
-msgid "Unknown model"
-msgstr "Unbekanntes Modell"
-
-#: ../../printer.pm_.c:532
-msgid "Local Printers"
-msgstr "Lokale Drucker"
-
-#: ../../printer.pm_.c:534 ../../printer.pm_.c:872
-msgid "Remote Printers"
-msgstr "Entfernte Drucker"
-
-#: ../../printer.pm_.c:541 ../../printerdrake.pm_.c:248
-#, c-format
-msgid " on parallel port \\/*%s"
-msgstr " an Parallelport \\/*%s"
-
-#: ../../printer.pm_.c:544 ../../printerdrake.pm_.c:250
-#, c-format
-msgid ", USB printer \\/*%s"
-msgstr ", USB-Drucker \\/*%s"
-
-#: ../../printer.pm_.c:549
-#, c-format
-msgid ", multi-function device on parallel port \\/*%s"
-msgstr ", MultifunktionsgerƤt am Parallelport \\/*%s"
-
-#: ../../printer.pm_.c:552
-msgid ", multi-function device on USB"
-msgstr ", USB MultifunktionsgerƤt"
-
-#: ../../printer.pm_.c:554
-msgid ", multi-function device on HP JetDirect"
-msgstr ", MultifunktionsgerƤt am HP JedDirect"
-
-#: ../../printer.pm_.c:556
-msgid ", multi-function device"
-msgstr ", MultifunktionsgerƤt"
-
-#: ../../printer.pm_.c:559
-#, c-format
-msgid ", printing to %s"
-msgstr ", drucken auf %s"
-
-#: ../../printer.pm_.c:561
-#, c-format
-msgid "on LPD server \"%s\", printer \"%s\""
-msgstr "auf LDP-Server ā€˛%sā€, Drucker ā€˛%sā€"
-
-#: ../../printer.pm_.c:563
-#, c-format
-msgid ", TCP/IP host \"%s\", port %s"
-msgstr ", TCP/IP Drucker ā€˛%sā€, Port %s"
-
-#: ../../printer.pm_.c:567
-#, c-format
-msgid "on Windows server \"%s\", share \"%s\""
-msgstr "auf Windows-Server ā€˛%sā€, Freigabe ā€˛%sā€"
-
-#: ../../printer.pm_.c:571
-#, c-format
-msgid "on Novell server \"%s\", printer \"%s\""
-msgstr "auf dem Novell-Server ā€˛%sā€, Drucker ā€˛%sā€"
-
-#: ../../printer.pm_.c:573
-#, c-format
-msgid ", using command %s"
-msgstr ", mittels Kommando ā€˛%sā€"
-
-#: ../../printer.pm_.c:692 ../../printerdrake.pm_.c:1136
-msgid "Raw printer (No driver)"
-msgstr "Rohdaten-Drucker (kein Treiber)"
-
-#: ../../printer.pm_.c:841
-#, c-format
-msgid "(on %s)"
-msgstr "(an %s)"
-
-#: ../../printer.pm_.c:843
-msgid "(on this machine)"
-msgstr "(an diesem Rechner)"
-
-#: ../../printer.pm_.c:868
-#, c-format
-msgid "On CUPS server \"%s\""
-msgstr "Auf CUPS-Server ā€˛%sā€"
-
-#: ../../printer.pm_.c:874 ../../printerdrake.pm_.c:2391
-#: ../../printerdrake.pm_.c:2402 ../../printerdrake.pm_.c:2618
-#: ../../printerdrake.pm_.c:2670 ../../printerdrake.pm_.c:2697
-#: ../../printerdrake.pm_.c:2867 ../../printerdrake.pm_.c:2869
-msgid " (Default)"
-msgstr " (Standard)"
-
-#: ../../printerdrake.pm_.c:22
-msgid "Select Printer Connection"
-msgstr "WƤhlen Sie die Drucker-Anbindung"
-
-#: ../../printerdrake.pm_.c:23
-msgid "How is the printer connected?"
-msgstr "Wie ist der Drucker mit Ihrem Rechner verbunden?"
-
-#: ../../printerdrake.pm_.c:25
-msgid ""
-"\n"
-"Printers on remote CUPS servers you do not have to configure here; these "
-"printers will be automatically detected."
-msgstr ""
-"\n"
-"Falls auf der Gegenseite ein CUPS-Server lƤuft, mĆ¼ssen Sie\n"
-"hier keine Einstellungen vornehmen, die Drucker werden \n"
-"automatisch erkannt und Ć¼bernommen."
-
-#: ../../printerdrake.pm_.c:69 ../../printerdrake.pm_.c:2454
-msgid "CUPS configuration"
-msgstr "CUPS Konfiguration"
-
-#: ../../printerdrake.pm_.c:70 ../../printerdrake.pm_.c:2455
-msgid "Specify CUPS server"
-msgstr "CUPS-Server angeben"
-
-#: ../../printerdrake.pm_.c:71
-msgid ""
-"To get access to printers on remote CUPS servers in your local network you "
-"do not have to configure anything; the CUPS servers inform your machine "
-"automatically about their printers. All printers currently known to your "
-"machine are listed in the \"Remote printers\" section in the main window of "
-"Printerdrake. When your CUPS server is not in your local network, you have "
-"to enter the CUPS server IP address and optionally the port number to get "
-"the printer information from the server, otherwise leave these fields blank."
-msgstr ""
-"Falls auf der Gegenseite ein CUPS-Server lƤuft, mĆ¼ssen Sie\n"
-"hier keine Einstellungen vornehmen; CUPS Server informieren Ihren\n"
-"Rechner Ć¼ber die von ihnen verwalteten Drucker. Alle Drucker,\n"
-"die Ihr Rechner momentan kennt sind unter ā€˛Entfernte Druckerā€ aufgefĆ¼hrt.\n"
-"Sollte der entfernte CUPS Server jedoch in einem anderen Subnetz\n"
-"beheimatet sein, mĆ¼ssen Sie mindestens seine IP-Adresse, evtl. auch\n"
-"die Port Nummer angeben. Im lokalen Subnetz kƶnnen Sie die Felder\n"
-"frei lassen."
-
-#: ../../printerdrake.pm_.c:72
-msgid ""
-"\n"
-"Normally, CUPS is automatically configured according to your network "
-"environment, so that you can access the printers on the CUPS servers in your "
-"local network. If this does not work correctly, turn off \"Automatic CUPS "
-"configuration\" and edit your file /etc/cups/cupsd.conf manually. Do not "
-"forget to restart CUPS afterwards (command: \"service cups restart\")."
-msgstr ""
-"\n"
-"Normalerweise wird CUPS automatisch entsprechend Ihres Netzwerks\n"
-"eingerichtet, damit Sie alle Drucker im lokalen Netzwerk verwenden\n"
-"kƶnnen. Falls das nicht funktioniert, schalten Sie ā€˛Automatische\n"
-"CUPS Konfigurationā€ aus und editieren Sie die Datei\n"
-"ā€˛/etc/cups/cupsd.confā€ selbst. Vergessen Sie nicht, CUPS anschlieĆend\n"
-"neu zu starten (Befehl: ā€˛service cups restartā€)."
-
-#: ../../printerdrake.pm_.c:76
-msgid "The IP address should look like 192.168.1.20"
-msgstr "Die IP Adresse sollte etwa die Form ā€˛192.168.1.42ā€ haben!"
-
-#: ../../printerdrake.pm_.c:80 ../../printerdrake.pm_.c:862
-msgid "The port number should be an integer!"
-msgstr "Die Prot Nummer muss eine Zahl sein!"
-
-#: ../../printerdrake.pm_.c:87
-msgid "CUPS server IP"
-msgstr "CUPS-Server-IP"
-
-#: ../../printerdrake.pm_.c:88 ../../printerdrake.pm_.c:855
-msgid "Port"
-msgstr "Port"
-
-#: ../../printerdrake.pm_.c:90
-msgid "Automatic CUPS configuration"
-msgstr "Automatische CUPS Konfiguration"
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-msgid "Detecting devices ..."
-msgstr "GerƤteerkennung..."
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-msgid "Test ports"
-msgstr "Test der AnschlĆ¼sse"
-
-#: ../../printerdrake.pm_.c:167 ../../printerdrake.pm_.c:2437
-#: ../../printerdrake.pm_.c:2556
-msgid "Add a new printer"
-msgstr "Drucker hinzufĆ¼gen"
-
-#: ../../printerdrake.pm_.c:168
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard allows you to install local or remote printers to be used from "
-"this machine and also from other machines in the network.\n"
-"\n"
-"It asks you for all necessary information to set up the printer and gives "
-"you access to all available printer drivers, driver options, and printer "
-"connection types."
-msgstr ""
-"\n"
-"Willkommen zum Druckereinrichtungsassistenten\n"
-"\n"
-"Dieser Assistent hilft Ihnen lokale oder entfernte Drucker so einzurichten, "
-"dass dieser Rechner bzw. andere in Ihrem Netzwerk darauf drucken kƶnnen.\n"
-"\n"
-"Sie werden nur nach den nƶtigen Informationen Ć¼ber den Drucker gefragt, um "
-"Ihnen dann Zugriff auf Treiber, Druckoptionen und Anschlussart zu erhalten."
-
-#: ../../printerdrake.pm_.c:176 ../../printerdrake.pm_.c:203
-#: ../../printerdrake.pm_.c:378 ../../printerdrake.pm_.c:393
-#: ../../printerdrake.pm_.c:403 ../../printerdrake.pm_.c:466
-msgid "Local Printer"
-msgstr "Lokaler Drucker"
-
-#: ../../printerdrake.pm_.c:177
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard will help you to install your printer(s) connected to this "
-"computer.\n"
-"\n"
-"Please plug in your printer(s) on this computer and turn it/them on. Click "
-"on \"Next\" when you are ready, and on \"Cancel\" when you do not want to "
-"set up your printer(s) now.\n"
-"\n"
-"Note that some computers can crash during the printer auto-detection, turn "
-"off \"Auto-detect printers\" to do a printer installation without auto-"
-"detection. Use the \"Expert Mode\" of printerdrake when you want to set up "
-"printing on a remote printer if printerdrake does not list it automatically."
-msgstr ""
-"\n"
-"Willkommen zum Druckereinrichtungsassistenten\n"
-"\n"
-"Dieser Assistent hilft Ihnen lokale Drucker einzurichten, dass dieser "
-"Rechner bzw. andere in Ihrem Netzwerk darauf drucken kƶnnen.\n"
-"\n"
-"Bitte schlieĆen sie Ihre(n) Drucker an, und stellen Sie sicher dass das "
-"GerƤt/die GerƤte eingeschaltet ist/sind. BetƤtigen sie die SchaltflƤche "
-"ā€˛Weiterā€, wenn Sie fortfahren mƶchten bzw. ā€˛Abbruchā€, wenn Sie jetzt keinen "
-"Drucker einrichten mƶchten.\n"
-"\n"
-"In seltenen FƤllen kann es zum totalen stenenbleien des Rechners fĆ¼hren, "
-"wenn Sie eine Drucker-Selbsterkennung durchfĆ¼hren. Schalten Sie diese "
-"einfach aus, wenn Sie einen Drucker ohne Selbsterkennung durchfĆ¼hren wollen. "
-"Verwenden Sie den ā€˛Expertenmodusā€ von PrinterDrake, um einen entfernten "
-"Drucker einzurichten, falls er nicht automatisch aufgefĆ¼hrt wird."
-
-#: ../../printerdrake.pm_.c:186
-msgid "Auto-detect printers"
-msgstr "Drucker-Selbsterkennung"
-
-#: ../../printerdrake.pm_.c:204
-msgid ""
-"\n"
-"Congratulations, your printer is now installed and configured!\n"
-"\n"
-"You can print using the \"Print\" command of your application (usually in "
-"the \"File\" menu).\n"
-"\n"
-"If you want to add, remove, or rename a printer, or if you want to change "
-"the default option settings (paper input tray, printout quality, ...), "
-"select \"Printer\" in the \"Hardware\" section of the Mandrake Control "
-"Center."
-msgstr ""
-"\n"
-"Herzlichen GlĆ¼ckwunsch, Ihr Drucker ist nun installiert und eingerichtet!\n"
-"\n"
-"Sie kƶnnen nun mit dem ā€˛Druckenā€ Befehl Ihrer Anwendungen (meistens im "
-"ā€˛Dateiā€-MenĆ¼ zu finden) drucken.\n"
-"\n"
-"Falls Sie einen Drucker hinzufĆ¼gen, entfernen oder umbenennen wollen,\n"
-"oder wenn Sie die Standardeinstellungen wie Papierschacht oder \n"
-"DruckqualitƤt) anpassen wollen, wƤhlen Sie ā€˛Druckerā€ im ā€˛Hardwareā€\n"
-"Bereich des Mandrake Kontrollzentrums."
-
-#: ../../printerdrake.pm_.c:223
-msgid "Auto-Detection of Printers"
-msgstr "Selbsterkennung von Druckern"
-
-#: ../../printerdrake.pm_.c:224
-msgid ""
-"Printerdrake is able to auto-detect your locally connected parallel and USB "
-"printers for you, but note that on some systems the auto-detection CAN "
-"FREEZE YOUR SYSTEM AND THIS CAN LEAD TO CORRUPTED FILE SYSTEMS! So do it ON "
-"YOUR OWN RISK!\n"
-"\n"
-"Do you really want to get your printers auto-detected?"
-msgstr ""
-"PrinterDrake ist in der Lage Ihre Parallelport- und USB-Drucker selbst\n"
-"zu erkennen und einzurichten. In einigen seltenen FƤllen KANN ES JEDOCH\n"
-"ZUM TOTALEN STEHENBLEIBEN DES BETRIEBSSYSTEMS FĆHREN! Verwenden Sie \n"
-"diese Variante also AUF IHR RISIKO!\n"
-"\n"
-"Wollen Sie wirklich, dass PrinterDrake eine Selbsterkennung versucht?"
-
-#: ../../printerdrake.pm_.c:227 ../../printerdrake.pm_.c:229
-#: ../../printerdrake.pm_.c:230
-msgid "Do auto-detection"
-msgstr "Autoerkennung durchfĆ¼hren"
-
-#: ../../printerdrake.pm_.c:228
-msgid "Set up printer manually"
-msgstr "Drucker selbst einrichten"
-
-#: ../../printerdrake.pm_.c:256
-#, c-format
-msgid "Detected %s"
-msgstr "%s gefunden"
-
-#: ../../printerdrake.pm_.c:260 ../../printerdrake.pm_.c:287
-#: ../../printerdrake.pm_.c:306
-#, c-format
-msgid "Printer on parallel port \\/*%s"
-msgstr "Drucker an Parallelport \\/*%s"
-
-#: ../../printerdrake.pm_.c:262 ../../printerdrake.pm_.c:289
-#: ../../printerdrake.pm_.c:311
-#, c-format
-msgid "USB printer \\/*%s"
-msgstr "USB-Drucker \\/*%s"
-
-#: ../../printerdrake.pm_.c:379
-msgid ""
-"No local printer found! To manually install a printer enter a device name/"
-"file name in the input line (Parallel Ports: /dev/lp0, /dev/lp1, ..., "
-"equivalent to LPT1:, LPT2:, ..., 1st USB printer: /dev/usb/lp0, 2nd USB "
-"printer: /dev/usb/lp1, ...)."
-msgstr ""
-"Es wurde kein lokaler Drucker erkannt! Um ihn manuell hinzuzufĆ¼gen geben Sie "
-"einfach einen GerƤte- oder Dateinamen in der Eingabezeile an (Parallele "
-"AnschlĆ¼sse: /dev/lp0, /dev/lp1, ..., Ƥquivalent zu LPT1:, LPT2:, ...; Erster "
-"USB Drucker: /dev/usb/lp0, zweier USB Drucker: /dev/usb/lp1, ...)."
-
-#: ../../printerdrake.pm_.c:383
-msgid "You must enter a device or file name!"
-msgstr "Sie mĆ¼ssen einen GerƤte- oder Dateinamen eingeben!"
-
-#: ../../printerdrake.pm_.c:394
-msgid ""
-"No local printer found!\n"
-"\n"
-msgstr ""
-"Kein Lokaler Drucker erkannt!\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:395
-msgid ""
-"Network printers can only be installed after the installation. Choose "
-"\"Hardware\" and then \"Printer\" in the Mandrake Control Center."
-msgstr ""
-"Netzwerkdrucker kƶnnen erst nach der Installation eingerichtet werden. "
-"WƤhlen Sie ā€˛Einstellungen/Hardware/Druckerā€ im Mandrake Kontrollzentrum."
-
-#: ../../printerdrake.pm_.c:396
-msgid ""
-"To install network printers, click \"Cancel\", switch to the \"Expert Mode"
-"\", and click \"Add a new printer\" again."
-msgstr ""
-"Um Netzwerkdrucker zu installieren wƤen Sie bitte ā€˛Abbruchā€, wechseln in den "
-"ā€˛Expertenmodunsā€ und wƤhlen erneut ā€˛Drucker hinzufĆ¼genā€."
-
-#: ../../printerdrake.pm_.c:407
-msgid ""
-"The following printer was auto-detected, if it is not the one you want to "
-"configure, enter a device name/file name in the input line"
-msgstr ""
-"Der folgende Drucker wurde automatisch erkannt, falls es sich nicht um den "
-"Drucker handelt, den Sie einrichten wollen, geben Sie einen GerƤte- oder "
-"Dateinamen in der Eingabezeile an."
-
-#: ../../printerdrake.pm_.c:408
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up or enter a device name/file name in the input line"
-msgstr ""
-"Hier eine Liste aller automatisch erkannten Drucker. Bitte wƤhlen Sie den "
-"gewĆ¼nschten Drucker oder geben Sie einen GerƤte- oder Dateinamen in der "
-"Eingabezeile an."
-
-#: ../../printerdrake.pm_.c:410
-msgid ""
-"The following printer was auto-detected. The configuration of the printer "
-"will work fully automatically. If your printer was not correctly detected or "
-"if you prefer a customized printer configuration, turn on \"Manual "
-"configuration\"."
-msgstr ""
-"Der folgende Drucker wurde automatisch erkannt. Die Einrichtung wird voll "
-"automatisch erfolgen. Sollte Ihr Drucker nicht richtig erkannt worden sein, "
-"oder wollen Sie die Einrichtung selbst vornehmen, wƤhlen Sie ā€˛Manuelle "
-"Konfigurationā€."
-
-#: ../../printerdrake.pm_.c:411
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up. The configuration of the printer will work fully "
-"automatically. If your printer was not correctly detected or if you prefer a "
-"customized printer configuration, turn on \"Manual configuration\"."
-msgstr ""
-"Hier eine Liste aller automatisch erkannten Drucker. Bitte wƤhlen Sie den "
-"gewĆ¼nschten Drucker. Die Einrichtung wird voll automatisch erfolgen. Sollte "
-"Ihr Drucker nicht richtig erkannt worden sein, oder wollen Sie die "
-"Einrichtung selbst vornehmen, wƤhlen Sie ā€˛Manuelle Konfigurationā€."
-
-#: ../../printerdrake.pm_.c:413
-msgid ""
-"Please choose the port where your printer is connected to or enter a device "
-"name/file name in the input line"
-msgstr ""
-"Bitte wƤhlen Sie den Anschluss, an dem der Drucker hƤngt oder geben Sie "
-"einen GerƤte- oder Dateinamen in der Eingabezeile an."
-
-#: ../../printerdrake.pm_.c:414
-msgid "Please choose the port where your printer is connected to."
-msgstr "Bitte wƤhlen Sie den Anschluss, an dem Ihr Drucker hƤngt."
-
-#: ../../printerdrake.pm_.c:416
-msgid ""
-" (Parallel Ports: /dev/lp0, /dev/lp1, ..., equivalent to LPT1:, LPT2:, ..., "
-"1st USB printer: /dev/usb/lp0, 2nd USB printer: /dev/usb/lp1, ...)."
-msgstr ""
-" (Parallele AnschlĆ¼sse: /dev/lp0, /dev/lp1, ..., Ƥquivalent zu LPT1:, "
-"LPT2:, ..., Erster USB Drucker: /dev/usb/lp0, zweier USB Drucker: /dev/usb/"
-"lp1, ...)."
-
-#: ../../printerdrake.pm_.c:421
-msgid "You must choose/enter a printer/device!"
-msgstr "Sie mĆ¼ssen einen Drucker wƤhlen/ein GerƤt eingeben!"
-
-#: ../../printerdrake.pm_.c:441
-msgid "Manual configuration"
-msgstr "Manuelle Konfiguration"
-
-#: ../../printerdrake.pm_.c:467
-msgid ""
-"Is your printer a multi-function device from HP (OfficeJet, PSC, PhotoSmart, "
-"LaserJet 1100/1200/1220/3200/3300 with scanner)?"
-msgstr ""
-"Ist Ihr Drucker ein MultifunktionsgerƤt von HP (OfficeJet, PSC, PhotoSmart, "
-"LaserJet 1100/1200/1220/3200/3300 mit Scanner)?"
-
-#: ../../printerdrake.pm_.c:482
-msgid "Installing HPOJ package..."
-msgstr "Installiere das ā€˛HPOJā€-Paket ..."
-
-#: ../../printerdrake.pm_.c:487
-msgid "Checking device and configuring HPOJ ..."
-msgstr "GerƤte untersuchen und HPOJ einrichten ..."
-
-#: ../../printerdrake.pm_.c:505
-msgid "Installing SANE package..."
-msgstr "Installiere das ā€˛SANEā€-Paket ..."
-
-#: ../../printerdrake.pm_.c:517
-msgid "Scanning on your HP multi-function device"
-msgstr "Scannen mit Ihrem HP-MultifunktionsgerƤt"
-
-#: ../../printerdrake.pm_.c:534
-msgid "Making printer port available for CUPS ..."
-msgstr "CUPS den Drucker-Port zugƤnglich machen ..."
-
-#: ../../printerdrake.pm_.c:544 ../../printerdrake.pm_.c:1018
-#: ../../printerdrake.pm_.c:1132
-msgid "Reading printer database ..."
-msgstr "Lesen der Drucker-Datenbank ..."
-
-#: ../../printerdrake.pm_.c:624
-msgid "Remote lpd Printer Options"
-msgstr "Optionen fĆ¼r Netzwerk-Druckerspooler"
-
-#: ../../printerdrake.pm_.c:625
-msgid ""
-"To use a remote lpd printer, you need to supply the hostname of the printer "
-"server and the printer name on that server."
-msgstr ""
-"Um eine entfernte lpd Warteschlange zu verwenden, mĆ¼ssen Sie den "
-"Rechnernamen des Drucker-Servers sowie den Druckernamen auf diesem Server "
-"angeben, an den die AuftrƤge Ć¼bertragen werden sollen."
-
-#: ../../printerdrake.pm_.c:626
-msgid "Remote host name"
-msgstr "Name des entfernten Rechners"
-
-#: ../../printerdrake.pm_.c:627
-msgid "Remote printer name"
-msgstr "Name des entfernten Druckers"
-
-#: ../../printerdrake.pm_.c:630
-msgid "Remote host name missing!"
-msgstr "Der Name des entfernten Rechners fehlt!"
-
-#: ../../printerdrake.pm_.c:634
-msgid "Remote printer name missing!"
-msgstr "Der Name des entfernten Druckers fehlt!"
-
-#: ../../printerdrake.pm_.c:702
-msgid "SMB (Windows 9x/NT) Printer Options"
-msgstr "SMB (Windows 9x/NT) Drucker-Parameter"
-
-#: ../../printerdrake.pm_.c:703
-msgid ""
-"To print to a SMB printer, you need to provide the SMB host name (Note! It "
-"may be different from its TCP/IP hostname!) and possibly the IP address of "
-"the print server, as well as the share name for the printer you wish to "
-"access and any applicable user name, password, and workgroup information."
-msgstr ""
-"Um auf einem SMB-Drucker zu drucken sind folgende Angaben erforderlich: Der "
-"SMB-Rechnername des Drucker-Servers (entspricht nicht immer dem TCP/IP-"
-"Rechnernamen des Computers) und mƶglicherweise die IP-Adresse, Freigabename "
-"fĆ¼r den Drucker, auf den Sie zugreifen mƶchten, sowie entsprechender "
-"Benutzername, Passwort und Arbeitsgruppe."
-
-#: ../../printerdrake.pm_.c:704
-msgid "SMB server host"
-msgstr "SMB-Server"
-
-#: ../../printerdrake.pm_.c:705
-msgid "SMB server IP"
-msgstr "SMB-Server-IP"
-
-#: ../../printerdrake.pm_.c:706
-msgid "Share name"
-msgstr "Freigabename"
-
-#: ../../printerdrake.pm_.c:709
-msgid "Workgroup"
-msgstr "Arbeitsgruppe"
-
-#: ../../printerdrake.pm_.c:716
-msgid "Either the server name or the server's IP must be given!"
-msgstr "Sie mĆ¼ssen entweder Den Servernamen oder seine IP-Adresse angeben!"
-
-#: ../../printerdrake.pm_.c:720
-msgid "Samba share name missing!"
-msgstr "Der Name der Samba-Freigabe fehlt!"
-
-#: ../../printerdrake.pm_.c:725
-msgid "SECURITY WARNING!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:726
-#, c-format
-msgid ""
-"You are about to set up printing to a Windows account with password. Due to "
-"a fault in the architecture of the Samba client software the password is put "
-"in clear text into the command line of the Samba client used to transmit the "
-"print job to the Windows server. So it is possible for every user on this "
-"machine to display the password on the screen by issuing commands as \"ps "
-"auxwww\".\n"
-"\n"
-"We recommend to make use of one of the following alternatives (in all cases "
-"you have to make sure that only machines from your local network have access "
-"to your Windows server, for example by means of a firewall):\n"
-"\n"
-"Use a password-less account on your Windows server, as the \"GUEST\" account "
-"or a special account dedicated for printing. Do not remove the password "
-"protection from a personal account or the administrator account.\n"
-"\n"
-"Set up your Windows server to make the printer available under the LPD "
-"protocol. Then set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:736
-#, c-format
-msgid ""
-"Set up your Windows server to make the printer available under the IPP "
-"protocol and set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:739
-msgid ""
-"Connect your printer to a Linux server and let your Windows machine(s) "
-"connect to it as a client.\n"
-"\n"
-"Do you really want to continue setting up this printer as you are doing now?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:801
-msgid "NetWare Printer Options"
-msgstr "Optionen fĆ¼r NetWare-Drucker"
-
-#: ../../printerdrake.pm_.c:802
-msgid ""
-"To print on a NetWare printer, you need to provide the NetWare print server "
-"name (Note! it may be different from its TCP/IP hostname!) as well as the "
-"print queue name for the printer you wish to access and any applicable user "
-"name and password."
-msgstr ""
-"Um auf einem NetWare-Drucker zu drucken sind folgende Angaben erforderlich: "
-"Name des NetWare-Drucker-Servers (entspricht nicht immer dem TCP/IP-"
-"Rechnernamen des Computers), Name der Drucker-Warteschlange, sowie falls "
-"notwendig, den entsprechenden Benutzernamen samt Passwort."
-
-#: ../../printerdrake.pm_.c:803
-msgid "Printer Server"
-msgstr "Drucker-Server"
-
-#: ../../printerdrake.pm_.c:804
-msgid "Print Queue Name"
-msgstr "Name der Druckerwarteschlange"
-
-#: ../../printerdrake.pm_.c:809
-msgid "NCP server name missing!"
-msgstr "Der NCP Servername fehlt!"
-
-#: ../../printerdrake.pm_.c:813
-msgid "NCP queue name missing!"
-msgstr "Der NCP Warteschlangen-Name fehlt!"
-
-#: ../../printerdrake.pm_.c:852
-msgid "TCP/Socket Printer Options"
-msgstr "Optionen fĆ¼r TCP/Socket-Drucker"
-
-#: ../../printerdrake.pm_.c:853
-msgid ""
-"To print to a TCP or socket printer, you need to provide the host name of "
-"the printer and optionally the port number. On HP JetDirect servers the port "
-"number is usually 9100, on other servers it can vary. See the manual of your "
-"hardware."
-msgstr ""
-"Um einen TCP- oder Socket-Drucker verwenden zu kƶnnen, mĆ¼ssen Sie auf alle "
-"FƤlle dessen Rechnernamen, mƶglicherweise auch den Port, angeben. Bei HP "
-"JetDirect Servern ist dies normalerweise die Port-Adresse 9100, bei anderen "
-"Servern kann es eine andere sein. Schauen Sie im Zweifelsfall in die "
-"Unterlagen Ihrer Hardware."
-
-#: ../../printerdrake.pm_.c:854
-msgid "Printer host name"
-msgstr "Rechnername des Druckers"
-
-#: ../../printerdrake.pm_.c:858
-msgid "Printer host name missing!"
-msgstr "Der Rechnername des Druckers fehlt!"
-
-#: ../../printerdrake.pm_.c:887 ../../printerdrake.pm_.c:889
-msgid "Printer Device URI"
-msgstr "Druckeranschluss URI"
-
-#: ../../printerdrake.pm_.c:888
-msgid ""
-"You can specify directly the URI to access the printer. The URI must fulfill "
-"either the CUPS or the Foomatic specifications. Note that not all URI types "
-"are supported by all the spoolers."
-msgstr ""
-"Sie kƶnnen hier direkt die URI eines Druckers angeben. Die URI muss den CUPS "
-"bzw. den Foomatic Spezifikationen genĆ¼gen. Es sei hier noch angemerkt, dass "
-"nicht alle URI-Typen von allen Drucksystemem unterstĆ¼tzt werden."
-
-#: ../../printerdrake.pm_.c:903
-msgid "A valid URI must be entered!"
-msgstr "Sie mĆ¼ssen eine gĆ¼ltige URI eingeben!"
-
-#: ../../printerdrake.pm_.c:1004
-msgid ""
-"Every printer needs a name (for example \"printer\"). The Description and "
-"Location fields do not need to be filled in. They are comments for the users."
-msgstr ""
-"Jeder Drucker benƶtigt einen Namen (etwa ā€˛Druckerā€).\n"
-"Beschreibung und Standort mĆ¼ssen nicht ausgefĆ¼llt werden.\n"
-"Sie dienen nur als Kommentare fĆ¼r den Anwender."
-
-#: ../../printerdrake.pm_.c:1005
-msgid "Name of printer"
-msgstr "Druckername"
-
-#: ../../printerdrake.pm_.c:1006
-msgid "Description"
-msgstr "Beschreibung"
-
-#: ../../printerdrake.pm_.c:1007
-msgid "Location"
-msgstr "Standort"
-
-#: ../../printerdrake.pm_.c:1021
-msgid "Preparing printer database ..."
-msgstr "Vorbereiten der Drucker-Datenbank ..."
-
-#: ../../printerdrake.pm_.c:1112
-msgid "Your printer model"
-msgstr "Ihr Druckermodell"
-
-#: ../../printerdrake.pm_.c:1113
-#, c-format
-msgid ""
-"Printerdrake has compared the model name resulting from the printer auto-"
-"detection with the models listed in its printer database to find the best "
-"match. This choice can be wrong, especially when your printer is not listed "
-"at all in the database. So check whether the choice is correct and click "
-"\"The model is correct\" if so and if not, click \"Select model manually\" "
-"so that you can choose your printer model manually on the next screen.\n"
-"\n"
-"For your printer Printerdrake has found:\n"
-"\n"
-"%s"
-msgstr ""
-"PrinterDrake hat den Modellnamen der Selbsterkennung mit den Modellen in der "
-"Datenbank verglichen, um den besten Treiber zu finden. Die Auswahl kann "
-"jedoch falsch sein, etwa wenn Ihr Drucker nicht in der Datenbank vorhanden "
-"ist. Kontrollieren Sie, ob die Wahl korrekt ist und wƤhlen Sie die "
-"SchaltflƤche ā€˛Das Modell ist richtigā€, wenn der Treiber Ihren WĆ¼n "
-"entspricht, andernfalls betƤgen Sie ā€˛Modell auswƤhlenā€, um die Auswahl "
-"selbst vorzunehmen.\n"
-"\n"
-"Folgender Drucker wurde gefunden:\n"
-"\n"
-"%s"
-
-#: ../../printerdrake.pm_.c:1118 ../../printerdrake.pm_.c:1121
-msgid "The model is correct"
-msgstr "Das Modell ist richtig"
-
-#: ../../printerdrake.pm_.c:1119 ../../printerdrake.pm_.c:1120
-#: ../../printerdrake.pm_.c:1123
-msgid "Select model manually"
-msgstr "Modell auswƤhlen"
-
-#: ../../printerdrake.pm_.c:1139
-msgid "Printer model selection"
-msgstr "Auswahl des Druckertyps"
-
-#: ../../printerdrake.pm_.c:1140
-msgid "Which printer model do you have?"
-msgstr "Ćber welchen Druckertyp verfĆ¼gen Sie?"
-
-#: ../../printerdrake.pm_.c:1141
-msgid ""
-"\n"
-"\n"
-"Please check whether Printerdrake did the auto-detection of your printer "
-"model correctly. Search the correct model in the list when the cursor is "
-"standing on a wrong model or on \"Raw printer\"."
-msgstr ""
-"\n"
-"\n"
-"Kontrollieren Sie bitte, ob PrinterDrake Ihern Drucker korrekt erkannt hat. "
-"Falls die Markierung auf einem falschen GerƤt oder auf ā€˛Rohdaten-Druckerā€ "
-"steht, suchen Sie bitte selbst Ihren Drucker in der Liste."
-
-#: ../../printerdrake.pm_.c:1144
-msgid ""
-"If your printer is not listed, choose a compatible (see printer manual) or a "
-"similar one."
-msgstr ""
-"Falls Ihr Drucker nicht aufgefĆ¼hrt ist wƤhlen Sie bitte ein kompatibles bzw "
-"Ƥhnliches Modell (FĆ¼r Einzelheiten schauen Sie bitte in Ihr Druckerhandbuch)."
-
-#: ../../printerdrake.pm_.c:1220
-msgid "OKI winprinter configuration"
-msgstr "OKI Win-Drucker Konfiguration"
-
-#: ../../printerdrake.pm_.c:1221
-msgid ""
-"You are configuring an OKI laser winprinter. These printers\n"
-"use a very special communication protocol and therefore they work only when "
-"connected to the first parallel port. When your printer is connected to "
-"another port or to a print server box please connect the printer to the "
-"first parallel port before you print a test page. Otherwise the printer will "
-"not work. Your connection type setting will be ignored by the driver."
-msgstr ""
-"Sie versuchen, eine OKI Win-Laserdrucker einzurichten. Da diese Drucker ein "
-"sehr eigenwilliges Protokol verwenden, funktionieren sie nur, wenn sie am "
-"ersten Parallelport angeschlossen sind. Sollte Ihr Druker an einer anderen "
-"Schnittstelle oder an einer Printserver-Box hƤngen, schlieĆen Sie ihn bitte "
-"an den ersten Parallelport, bevor Sie versuchen eine Testseite zu drucken ..."
-
-#: ../../printerdrake.pm_.c:1264 ../../printerdrake.pm_.c:1291
-msgid "Lexmark inkjet configuration"
-msgstr "Lexmark Tintenstrahl-Konfiguration"
-
-#: ../../printerdrake.pm_.c:1265
-msgid ""
-"The inkjet printer drivers provided by Lexmark only support local printers, "
-"no printers on remote machines or print server boxes. Please connect your "
-"printer to a local port or configure it on the machine where it is connected "
-"to."
-msgstr ""
-"Der Lexmark Tintenstrahl-Druckertriber unterstĆ¼tzt nur lokale Drucker, keine "
-"Drucker auf entfernten Rechnern oder an Printserver-Boxen. Bitte schlieĆen "
-"Sie den Druker direkt an Ihren Rechner oder richten Sie ihn auf dem Rechner "
-"ein, an den er angeschlossen ist."
-
-#: ../../printerdrake.pm_.c:1292
-msgid ""
-"To be able to print with your Lexmark inkjet and this configuration, you "
-"need the inkjet printer drivers provided by Lexmark (http://www.lexmark."
-"com/). Go to the US site and click on the \"Drivers\" button. Then choose "
-"your model and afterwards \"Linux\" as operating system. The drivers come as "
-"RPM packages or shell scripts with interactive graphical installation. You "
-"do not need to do this configuration by the graphical frontends. Cancel "
-"directly after the license agreement. Then print printhead alignment pages "
-"with \"lexmarkmaintain\" and adjust the head alignment settings with this "
-"program."
-msgstr ""
-"Um mit Ihrem Lexmark Tintenstrahldrucker drucken zu kƶnnen, benƶtigen Sie "
-"die Treiber, die von Lexmark bereitgestellt werden (http://www.lexmark."
-"com/). Gehen Sie auf die amerikanische Seite und wƤlen Sie die SchaltfƤe "
-"ā€˛Driversā€. WƤhlen Sie dann das Drukermodell und geben Sie ā€˛Linuxā€ als "
-"Bertiebssystem an. Sie erhalten die Treiber als RPM-Paket oder als "
-"Shellskript mit interaktiver Grafikinstallation. Sie mĆ¼ssen die Einrichtung "
-"nicht mit dem Lexmark Klicktool vornehmen. Sie kƶnnen direkt nach der Lizenz "
-"auf ā€˛Abbruchā€ drĆ¼cken. Drucken Sie dann Druckkopf-Einrichtungsseiten mit "
-"ā€˛lexmarkmaintainā€ und justieren Sie damit den Druckkopf."
-
-#: ../../printerdrake.pm_.c:1508
-msgid ""
-"Printer default settings\n"
-"\n"
-"You should make sure that the page size and the ink type/printing mode (if "
-"available) and also the hardware configuration of laser printers (memory, "
-"duplex unit, extra trays) are set correctly. Note that with a very high "
-"printout quality/resolution printing can get substantially slower."
-msgstr ""
-"Standard-Einstellungen des Druckers\n"
-"\n"
-"Sie sollten sicherstellen, dass PapiergrƶĆe, Farbangaben, DruckqualitƤt "
-"sowie Informationen zu vorhandenem Speicher, Duplexeinheit und PapierfƤchern "
-"richtig eingestellt sind. Es sei auch angemerkt, dass hƤufig mit steigender "
-"DruckqualitƤt die Druckgeschwindigkeit sinkt."
-
-#: ../../printerdrake.pm_.c:1517
-#, c-format
-msgid "Option %s must be an integer number!"
-msgstr "Der Parameter %s muss eine Zahl sein!"
-
-#: ../../printerdrake.pm_.c:1521
-#, c-format
-msgid "Option %s must be a number!"
-msgstr "Der Parameter %s muss eine Zahl sein!"
-
-#: ../../printerdrake.pm_.c:1526
-#, c-format
-msgid "Option %s out of range!"
-msgstr "Der Parameter %s ist yu groĆ oder zu klein!"
-
-#: ../../printerdrake.pm_.c:1565
-#, c-format
-msgid ""
-"Do you want to set this printer (\"%s\")\n"
-"as the default printer?"
-msgstr ""
-"Mƶchten Sie diesen Drucker (ā€˛%sā€)\n"
-"als Standarddrucker verwenden?"
-
-#: ../../printerdrake.pm_.c:1582
-msgid "Test pages"
-msgstr "Testseiten"
-
-#: ../../printerdrake.pm_.c:1583
-msgid ""
-"Please select the test pages you want to print.\n"
-"Note: the photo test page can take a rather long time to get printed and on "
-"laser printers with too low memory it can even not come out. In most cases "
-"it is enough to print the standard test page."
-msgstr ""
-"Bitte wƤhlen Sie, welche Testseiten Sie drucken wollen.\n"
-"\n"
-"Bemerkung: Der Druck der Foto-Testseite dauert hƤufig extrem lange. Bei "
-"Laserdruckern mit wenig Speicher kann es auch vorkommen, dass sie gar nicht "
-"gedruckt wird. Normalerweise sollte es ausreichen, die Standard-Testseiten "
-"auszudrucken."
-
-#: ../../printerdrake.pm_.c:1587
-msgid "No test pages"
-msgstr "Keine Testseiten"
-
-#: ../../printerdrake.pm_.c:1588
-msgid "Print"
-msgstr "Drucken"
-
-#: ../../printerdrake.pm_.c:1590
-msgid "Standard test page"
-msgstr "Standard-Testseite"
-
-#: ../../printerdrake.pm_.c:1593
-msgid "Alternative test page (Letter)"
-msgstr "Alternative Testseite (US-Format - ā€˛Letterā€)"
-
-#: ../../printerdrake.pm_.c:1596
-msgid "Alternative test page (A4)"
-msgstr "Alternative Testseite (A4)"
-
-#: ../../printerdrake.pm_.c:1598
-msgid "Photo test page"
-msgstr "Foto-Testseite"
-
-#: ../../printerdrake.pm_.c:1602
-msgid "Do not print any test page"
-msgstr "Keine Testseite(n) drucken"
-
-#: ../../printerdrake.pm_.c:1610 ../../printerdrake.pm_.c:1747
-msgid "Printing test page(s)..."
-msgstr "Druck der Testseite(n) ..."
-
-#: ../../printerdrake.pm_.c:1635
-#, c-format
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-"Printing status:\n"
-"%s\n"
-"\n"
-msgstr ""
-"Die Testseite(n) wurden an den Drucker gesandt.\n"
-"Es kann einen Augenblick dauern, bevor der Drucker seine Arbeit aufnimmt.\n"
-"Druckstatus:\n"
-"%s\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:1639
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-msgstr ""
-"Die Testseite(n) wurden an den Drucker gesandt.\n"
-"Es kann einen Augenblick dauern, bevor der Drucker seine Arbeit aufnimmt.\n"
-
-#: ../../printerdrake.pm_.c:1646
-msgid "Did it work properly?"
-msgstr "War der Ausdruck korrekt?"
-
-#: ../../printerdrake.pm_.c:1667 ../../printerdrake.pm_.c:2732
-msgid "Raw printer"
-msgstr "Rohdaten-Drucker"
-
-#: ../../printerdrake.pm_.c:1685
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) you can either use "
-"the command \"%s <file>\" or a graphical printing tool: \"xpp <file>\" or "
-"\"kprinter <file>\". The graphical tools allow you to choose the printer and "
-"to modify the option settings easily.\n"
-msgstr ""
-"Sie kƶnnen sowohl den Befehl ā€˛%s <datei>ā€ verwenden, wenn Sie in einer "
-"Konsole die Datei ā€˛<datei>ā€ drucken wollen, als auch ein grafisches "
-"Hilfsprogramm verwenden: ā€˛xpp <datei>ā€ oder ā€˛kprinter <datei>ā€. Die "
-"grafischen Hilfsprogramme erlauben Ihnen auf einfache Weise den richtigen "
-"Drucker zu wƤhlen und die notwendigen Druckerparameter anzugeben.\n"
-
-#: ../../printerdrake.pm_.c:1687
-msgid ""
-"These commands you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications, but here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-"Sie kƶnnen diese Befehle auch in der ā€˛Druck-Kommandoā€-Zeile des Druckdialogs "
-"zahlreicher Anwendungen angeben, lassen Sie jedoch den Dateinamen weg, da "
-"die zu druckende Datei von der Anwendung geliefert wird.\n"
-
-#: ../../printerdrake.pm_.c:1690 ../../printerdrake.pm_.c:1706
-#: ../../printerdrake.pm_.c:1716
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" command also allows to modify the option settings for a "
-"particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\". "
-msgstr ""
-"\n"
-"Der Befehl ā€˛%sā€ erlaubt es Ihnen auch zahlreiche Einstellungen fĆ¼r einen "
-"bestimmten Druckauftrag zu Ƥndern. Geben Sie die gewĆ¼nschten Angaben einfach "
-"in der Kommandozeile mit an, etwa: ā€˛%s <Datei>ā€. "
-
-#: ../../printerdrake.pm_.c:1693 ../../printerdrake.pm_.c:1732
-#, c-format
-msgid ""
-"To know about the options available for the current printer read either the "
-"list shown below or click on the \"Print option list\" button.%s\n"
-"\n"
-msgstr ""
-"Um alle existierenden Optionen des Druckers zu erfahren, lesen Sie entweder "
-"die unten angegebene Liste oder betƤtigen Sie die SchaltflƤche ā€˛Liste der "
-"Drucker-Optionenā€. %s\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:1696
-msgid ""
-"Here is a list of the available printing options for the current printer:\n"
-"\n"
-msgstr ""
-"Hier die Liste vorhandener Drucker-Parameter des aktuellen Druckers:\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:1701 ../../printerdrake.pm_.c:1711
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\".\n"
-msgstr ""
-"Verwenden Sie den Befehl ā€˛%s <Datei>ā€, um die Datei <Datei> in der "
-"Kommandozeile auszudrucken.\n"
-
-#: ../../printerdrake.pm_.c:1703 ../../printerdrake.pm_.c:1713
-#: ../../printerdrake.pm_.c:1723
-msgid ""
-"This command you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications. But here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-"Sie kƶnnen diesen Befehl auch im ā€˛Druckkommandoā€-Feld vieler Programme "
-"angeben. Tragen Sie bitte keinen Dateinamen ein, da dieser vom Programm "
-"ergƤnzt wird.\n"
-
-#: ../../printerdrake.pm_.c:1708 ../../printerdrake.pm_.c:1718
-msgid ""
-"To get a list of the options available for the current printer click on the "
-"\"Print option list\" button."
-msgstr ""
-"Um eine Liste der Drucker-Parameter Ihres Druckers zu erhalten, betƤtigen "
-"Sie bitte die SchaltflƤche ā€˛Liste der Drucker-Optionenā€."
-
-#: ../../printerdrake.pm_.c:1721
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\" or \"%s <file>\".\n"
-msgstr ""
-"Verwenden Sie einen der Befehle ā€˛%s <Datei>ā€ oder ā€˛%s <Datei>ā€, um die Datei "
-"<Datei> in der Kommandozeile auszudrucken.\n"
-
-#: ../../printerdrake.pm_.c:1725
-msgid ""
-"You can also use the graphical interface \"xpdq\" for setting options and "
-"handling printing jobs.\n"
-"If you are using KDE as desktop environment you have a \"panic button\", an "
-"icon on the desktop, labeled with \"STOP Printer!\", which stops all print "
-"jobs immediately when you click it. This is for example useful for paper "
-"jams.\n"
-msgstr ""
-"Sie kƶnnen auch das Grafikwerkzeug ā€˛xpdqā€ zum setzen der Optionen und "
-"Verwalten der Druckjobs verwenden.\n"
-"Falls Sie KDE als ArbeitsoberflƤche nutzen, haben Sie eine Panik-Abschaltung "
-"in Forma des ArbeitsflƤchensymbols ā€˛STOP Printer!ā€, dass sofort alle "
-"DruckauftrƤge anhƤ, wenn Sie es betƤgen. Das kann beispielsweise dann "
-"hilfreich sein, wenn Sie einen Papierstau in Ihrem Drucker haben.\n"
-
-#: ../../printerdrake.pm_.c:1729
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" and \"%s\" commands also allow to modify the option settings for "
-"a particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\".\n"
-msgstr ""
-"\n"
-"Die Befehle ā€˛%sā€ und ā€˛%sā€ erlauben es Ihnen ebenfals die Optionen eines "
-"spezeiellen Druckjobs zu konfigurieren. FĆ¼gen Sie einfach die gewĆ¼nschten "
-"Einstellungen in der Kommandozeile ein, etwa ā€˛%s <Datei>ā€.\n"
-
-#: ../../printerdrake.pm_.c:1738 ../../printerdrake.pm_.c:1744
-#: ../../printerdrake.pm_.c:1745 ../../printerdrake.pm_.c:1746
-#: ../../printerdrake.pm_.c:2716 ../../standalone/drakbackup_.c:754
-#: ../../standalone/drakbackup_.c:2458 ../../standalone/drakfont_.c:577
-#: ../../standalone/drakfont_.c:791
-msgid "Close"
-msgstr "SchlieĆen"
-
-#: ../../printerdrake.pm_.c:1741 ../../printerdrake.pm_.c:1753
-#, c-format
-msgid "Printing/Scanning on \"%s\""
-msgstr "Drucken/Scannen mit ā€˛%sā€"
-
-#: ../../printerdrake.pm_.c:1742 ../../printerdrake.pm_.c:1754
-#, c-format
-msgid "Printing on the printer \"%s\""
-msgstr "Drucken auf Drucker ā€˛%sā€"
-
-#: ../../printerdrake.pm_.c:1744
-msgid "Print option list"
-msgstr "Liste der Drucker-Optionen"
-
-#: ../../printerdrake.pm_.c:1766
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan with \"scanimage\" (\"scanimage -d hp:%s\" to specify "
-"the scanner when you have more than one) from the command line or with the "
-"graphical interfaces \"xscanimage\" or \"xsane\". If you are using the GIMP, "
-"you can also scan by choosing the appropriate point in the \"File\"/\"Acquire"
-"\" menu. Call also \"man scanimage\" and \"man sane-hp\" on the command line "
-"to get more information.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-"Ihr HP-MultifunktionsgerƤt wurde automatisch auch zum Scannen eingerichtet. "
-"Sie kƶnnen nun mit ā€˛scanimageā€ (ā€˛scanimage -d hp:%sā€ um den Scanner "
-"auszuwƤhlen, falls Sie mehrere angeschlossen haben) aus der Kommandozeile "
-"oder mit ā€˛xscanimageā€ bzw. ā€˛xsaneā€ - wenn Sie eine grafisches Werkzeug "
-"verwenden wollen - scannen. Wenn sie mit dem GIMP arbeiten wollen, kƶnnen "
-"Sie dies ebenfalls tun. WƤhlen Sie einfach im MenĆ¼ ā€˛Datei/Holenā€ den "
-"entsprechenden Eintrag. Sie kƶnnen sich auch mittels ā€˛man scanimageā€ bzw "
-"ā€˛man sane-hpā€ in der Kommandozeile weitere Informationen ausgeben lassen.\n"
-"\n"
-"Verwenden Sie fĆ¼r dieses GerƤt nicht ā€˛ScannerDrakeā€!"
-
-#: ../../printerdrake.pm_.c:1772
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan from the command line with \"ptal-hp %s scan ...\". "
-"Scanning via a graphical interface or from the GIMP is not supported yet for "
-"your device. More information you will find in the \"/usr/share/doc/hpoj-0.8/"
-"ptal-hp-scan.html\" file on your system. If you have an HP LaserJet 1100 or "
-"1200 you can only scan when you have the scanner option installed.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-"Ihr HP-MultifunktionsgerƤt wurde automatisch auch zum Scannen eingerichtet. "
-"Sie kƶnnen nun in der Kommandozeile mittels ā€˛ptal-hp %s scan ...ā€ scannen. "
-"Zur Zeit existieren leider keine grafischen Werkzeuge, mit deren Hilfe Sie "
-"Scannen kƶnnen - Ihr MultifunktionsgerƤt wird noch nicht unterstĆ¼tzt. "
-"Weitetre Informationen finden Sie in der Datei ā€˛/usr/share/doc/hpoj-0.8/ptal-"
-"hp-scan.htmlā€ auf Ihrem Rechner. Falls Sie einen HP LaserJet 1100 oder 1200 "
-"haben, kƶnnen Sie nur scannen, wenn Sie die Scanner-Option installiert "
-"haben.\n"
-"\n"
-"Verwenden Sie fĆ¼r dieses GerƤt nicht ā€˛ScannerDrakeā€!"
-
-#: ../../printerdrake.pm_.c:1794 ../../printerdrake.pm_.c:2221
-#: ../../printerdrake.pm_.c:2485 ../../standalone/printerdrake_.c:49
-msgid "Reading printer data ..."
-msgstr "Lesen der Treiber-Datenbank ..."
-
-#: ../../printerdrake.pm_.c:1814 ../../printerdrake.pm_.c:1842
-#: ../../printerdrake.pm_.c:1877
-msgid "Transfer printer configuration"
-msgstr "Drucker-Einstellung transferieren"
-
-#: ../../printerdrake.pm_.c:1815
-#, c-format
-msgid ""
-"You can copy the printer configuration which you have done for the spooler %"
-"s to %s, your current spooler. All the configuration data (printer name, "
-"description, location, connection type, and default option settings) is "
-"overtaken, but jobs will not be transferred.\n"
-"Not all queues can be transferred due to the following reasons:\n"
-msgstr ""
-"Sie kƶnnen die Druckerkonfiguration, die Sie fĆ¼r den Spooler ā€˛%sā€ "
-"vorgenommen haben fĆ¼r ā€˛%sā€, ihren aktuellen Spooler, verwenden. Alle Daten "
-"(Name, Beschreibung, Standort, Verbindungsart und standard "
-"Optionseinstellungen) werden Ć¼bernommen, Druckjobs in der alten "
-"Warteschlange gehen jedoch verloren.\n"
-"Nicht alle Warteschlangen kƶnnen Ć¼bernommen werden:\n"
-
-#: ../../printerdrake.pm_.c:1818
-msgid ""
-"CUPS does not support printers on Novell servers or printers sending the "
-"data into a free-formed command.\n"
-msgstr ""
-"CUPS unterstĆ¼tzt keine Druker an Novel Servern oder Drucker, die ihre Daten "
-"in ein frei gewƤhltes Kommando senden.\n"
-
-#: ../../printerdrake.pm_.c:1820
-msgid ""
-"PDQ only supports local printers, remote LPD printers, and Socket/TCP "
-"printers.\n"
-msgstr ""
-"PDQ unterstĆ¼tzt nur lokale Drucker, entfernte LPD Drucker und Socket/TCP "
-"Drucker.\n"
-
-#: ../../printerdrake.pm_.c:1822
-msgid "LPD and LPRng do not support IPP printers.\n"
-msgstr "LPD und LPRng unterstĆ¼keine IPP Drucker.\n"
-
-#: ../../printerdrake.pm_.c:1824
-msgid ""
-"In addition, queues not created with this program or \"foomatic-configure\" "
-"cannot be transferred."
-msgstr ""
-"Warteschlangen, die nicht mit diesem Programm oder ā€˛foomatic-configureā€ "
-"ertellt wurden, kƶnnen nicht Ć¼bertragen werden."
-
-#: ../../printerdrake.pm_.c:1825
-msgid ""
-"\n"
-"Also printers configured with the PPD files provided by their manufacturers "
-"or with native CUPS drivers cannot be transferred."
-msgstr ""
-"\n"
-"Drucker, die mit den PPD-Dateien ihrer Hersteller oder CUPS-spezifischen "
-"Treibern eingerichtet wurden, kƶnnen nicht Ć¼bertragen werden."
-
-#: ../../printerdrake.pm_.c:1826
-msgid ""
-"\n"
-"Mark the printers which you want to transfer and click \n"
-"\"Transfer\"."
-msgstr ""
-"\n"
-"Markieren Sie die Druckerwarteschlangen, die sie Ć¼bertragen wollen und "
-"betƤtigen Sie die SchaltflƤche ā€˛Ćbertragenā€."
-
-#: ../../printerdrake.pm_.c:1829
-msgid "Do not transfer printers"
-msgstr "Druckerdaten nicht Ć¼bertragen"
-
-#: ../../printerdrake.pm_.c:1830 ../../printerdrake.pm_.c:1847
-msgid "Transfer"
-msgstr "Ćbertragen"
-
-#: ../../printerdrake.pm_.c:1843
-#, c-format
-msgid ""
-"A printer named \"%s\" already exists under %s. \n"
-"Click \"Transfer\" to overwrite it.\n"
-"You can also type a new name or skip this printer."
-msgstr ""
-"Es existiert bereits ein Drucker mit Namen ā€˛%sā€ unter %s.\n"
-"Durch betƤtigen der SchaltfƤche ā€˛Ćbertragenā€ kƶnnen Sie ihn\n"
-"Ć¼berschreiben. Sie kƶnnen dem Drucker auch einen neuen \n"
-"Namen geben oder ihn einfach Ć¼berspringen."
-
-#: ../../printerdrake.pm_.c:1851
-msgid "Name of printer should contain only letters, numbers and the underscore"
-msgstr ""
-"Druckernamen sollten nur Buchstaben, Ziffern und den Unterstrich unterhalten"
-
-#: ../../printerdrake.pm_.c:1856
-#, c-format
-msgid ""
-"The printer \"%s\" already exists,\n"
-"do you really want to overwrite its configuration?"
-msgstr ""
-"Der Drucker ā€˛%sā€ existiert bereits. Wollen Sie ihn wirklich \n"
-"ersetzen?"
-
-#: ../../printerdrake.pm_.c:1864
-msgid "New printer name"
-msgstr "Neuer Druckername"
-
-#: ../../printerdrake.pm_.c:1867
-#, c-format
-msgid "Transferring %s ..."
-msgstr "Ćbertragen von ā€˛%sā€ ..."
-
-#: ../../printerdrake.pm_.c:1878
-#, c-format
-msgid ""
-"You have transferred your former default printer (\"%s\"), Should it be also "
-"the default printer under the new printing system %s?"
-msgstr ""
-"Sie haben Ihren alten Standarddrucker (ā€˛%sā€) Ć¼bertragen, soll es auch Ihr "
-"Standarddrucker unter dem neuen Drucksystem ā€˛%sā€ werden?"
-
-#: ../../printerdrake.pm_.c:1887
-msgid "Refreshing printer data ..."
-msgstr "Aktualisieren der Druckerdaten ..."
-
-#: ../../printerdrake.pm_.c:1895 ../../printerdrake.pm_.c:1966
-#: ../../printerdrake.pm_.c:1978
-msgid "Configuration of a remote printer"
-msgstr "Konfiguration eines entfernten Druckers"
-
-#: ../../printerdrake.pm_.c:1896
-msgid "Starting network ..."
-msgstr "Netzwerk starten ..."
-
-#: ../../printerdrake.pm_.c:1930 ../../printerdrake.pm_.c:1934
-#: ../../printerdrake.pm_.c:1936
-msgid "Configure the network now"
-msgstr "Netzwerk jetzt konfigurieren"
-
-#: ../../printerdrake.pm_.c:1931
-msgid "Network functionality not configured"
-msgstr "Ihr Netzwerk ist nicht konfiguriert"
-
-#: ../../printerdrake.pm_.c:1932
-msgid ""
-"You are going to configure a remote printer. This needs working network "
-"access, but your network is not configured yet. If you go on without network "
-"configuration, you will not be able to use the printer which you are "
-"configuring now. How do you want to proceed?"
-msgstr ""
-"Sie wollen einen entfernten Drucker einrichten. Sie benƶtigen dafĆ¼r ein "
-"funktionerendes Netzwerk, aber Ihr Netzwerk ist noch nicht eingerichtet. "
-"Sollten Sie dennoch fortfahren, ohne Ihr Netzwerk einzurichten, ist der "
-"Drucker hinterher nicht zu verwenden. Wie wollen Sie fortfahren?"
-
-#: ../../printerdrake.pm_.c:1935
-msgid "Go on without configuring the network"
-msgstr "Weiter ohne Netzwerkkonfiguration"
-
-#: ../../printerdrake.pm_.c:1968
-msgid ""
-"The network configuration done during the installation cannot be started "
-"now. Please check whether the network gets accessable after booting your "
-"system and correct the configuration using the Mandrake Control Center, "
-"section \"Network & Internet\"/\"Connection\", and afterwards set up the "
-"printer, also using the Mandrake Control Center, section \"Hardware\"/"
-"\"Printer\""
-msgstr ""
-"Das von Ihnen wƤhrend der Installation eingerichtete Netzwerk kann jetzt "
-"nicht gestartet werden. Testen Sie bitte, ob es nach einem Neustart zur "
-"VerfĆ¼gung steht. Falls nicht, berichtigen Sie die Einstellungen im Mandrake "
-"Kontrollzentrum unter ā€˛Netzwerk & Internet/Verbindungā€. Versuchen Sie "
-"anschlieĆend erneut den Drucker mittels ā€˛Hardware/Druckerā€im Kontrollzentrum "
-"einzurichten."
-
-#: ../../printerdrake.pm_.c:1969
-msgid ""
-"The network access was not running and could not be started. Please check "
-"your configuration and your hardware. Then try to configure your remote "
-"printer again."
-msgstr ""
-"Es wurde kein aktives Netzwerk gefunden und es konnte auch keine "
-"Netzwerkverbindung hergestellt werden. Kontrollieren Sie bitte Ihre Hardware "
-"und Ihre Softwareeinstellngen. Versuchen Sie anschlieĆend erneut den "
-"entfernten Drucker einzurichten."
-
-#: ../../printerdrake.pm_.c:1979
-msgid "Restarting printing system ..."
-msgstr "Drucksystem neu starten ..."
-
-#: ../../printerdrake.pm_.c:2017
-msgid "high"
-msgstr "Hoch"
-
-#: ../../printerdrake.pm_.c:2017
-msgid "paranoid"
-msgstr "Paranoid"
-
-#: ../../printerdrake.pm_.c:2018
-#, c-format
-msgid "Installing a printing system in the %s security level"
-msgstr "Installation eines Drucksystems in Sicherheitsebene %s"
-
-#: ../../printerdrake.pm_.c:2019
-#, c-format
-msgid ""
-"You are about to install the printing system %s on a system running in the %"
-"s security level.\n"
-"\n"
-"This printing system runs a daemon (background process) which waits for "
-"print jobs and handles them. This daemon is also accessable by remote "
-"machines through the network and so it is a possible point for attacks. "
-"Therefore only a few selected daemons are started by default in this "
-"security level.\n"
-"\n"
-"Do you really want to configure printing on this machine?"
-msgstr ""
-"Sie sind dabei das Drucksystem %s auf einem Rechner mit Sicherheitsebene %s "
-"zu installieren.\n"
-"\n"
-"Dieses Drucksystem lƤuft als DƤmon (Hintergrundprozess), der auf "
-"DruckauftrƤge wartet, um sie abzuarbeiten. Da der DƤmon auch fĆ¼r andere "
-"Rechner Ihres Netzwerks erreichbar ist,schaffen Sie damit einen mƶglichen "
-"Angriffspunkt. Aus SicherheitsgrĆ¼nden werden in dieser Sicherheitsebene "
-"standardmƤĆig nur einige ausgewƤhlte DƤmons gestartet.\n"
-"\n"
-"Wollen Sie wirklich dieses Drucksystem auf diesem Rechner installieren?"
-
-#: ../../printerdrake.pm_.c:2051
-msgid "Starting the printing system at boot time"
-msgstr "Drucksystem beim BS-Start aktivieren"
-
-#: ../../printerdrake.pm_.c:2052
-#, c-format
-msgid ""
-"The printing system (%s) will not be started automatically when the machine "
-"is booted.\n"
-"\n"
-"It is possible that the automatic starting was turned off by changing to a "
-"higher security level, because the printing system is a potential point for "
-"attacks.\n"
-"\n"
-"Do you want to have the automatic starting of the printing system turned on "
-"again?"
-msgstr ""
-"Das Drucksystem (%s) wird nicht automatisch beim Betriebssystemstart "
-"aktiviert.\n"
-"Es ist mƶglich, dass der Start durch den Wechsel in eine hƶhere "
-"Sicherheitsebene deaktiviert wurde, da das Drucksystem einen potentienllen "
-"Angriffspunkt darstellt.\n"
-"\n"
-"Wollen sie den automatischen Start des Drucksystems wieder herstellen?"
-
-#: ../../printerdrake.pm_.c:2075 ../../printerdrake.pm_.c:2113
-#: ../../printerdrake.pm_.c:2143 ../../printerdrake.pm_.c:2176
-#: ../../printerdrake.pm_.c:2281
-msgid "Checking installed software..."
-msgstr "Suche nach installierter Software"
-
-#: ../../printerdrake.pm_.c:2117
-msgid "Removing LPRng..."
-msgstr "Entfernen von LPRng ..."
-
-#: ../../printerdrake.pm_.c:2147
-msgid "Removing LPD..."
-msgstr "Entfernen des LPD ..."
-
-#: ../../printerdrake.pm_.c:2205
-msgid "Select Printer Spooler"
-msgstr "WƤhlen Sie das Drucksystem"
-
-#: ../../printerdrake.pm_.c:2206
-msgid "Which printing system (spooler) do you want to use?"
-msgstr "Welches Drucksystem (Spooler) wollen Sie verwenden?"
-
-#: ../../printerdrake.pm_.c:2239
-#, c-format
-msgid "Configuring printer \"%s\" ..."
-msgstr "Konfigurieren von Drucker ā€˛%sā€ ..."
-
-#: ../../printerdrake.pm_.c:2252
-msgid "Installing Foomatic ..."
-msgstr "Installieren des Pakets Foomatic ..."
-
-#: ../../printerdrake.pm_.c:2309 ../../printerdrake.pm_.c:2348
-#: ../../printerdrake.pm_.c:2733 ../../printerdrake.pm_.c:2803
-msgid "Printer options"
-msgstr "Drucker-Optionen"
-
-#: ../../printerdrake.pm_.c:2318
-msgid "Preparing PrinterDrake ..."
-msgstr "PrinterDrake vorbereiten ..."
-
-#: ../../printerdrake.pm_.c:2335 ../../printerdrake.pm_.c:2890
-msgid "Configuring applications..."
-msgstr "Anwendungen konfigurieren ..."
-
-#: ../../printerdrake.pm_.c:2355
-msgid "Would you like to configure printing?"
-msgstr "Mƶchten Sie einen Drucker konfigurieren?"
-
-#: ../../printerdrake.pm_.c:2367
-msgid "Printing system: "
-msgstr "Drucksystem: "
-
-#: ../../printerdrake.pm_.c:2415
-msgid "Printerdrake"
-msgstr "PrinterDrake"
-
-#: ../../printerdrake.pm_.c:2419
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; to view information about it; "
-"or to make a printer on a remote CUPS server available for Star Office/"
-"OpenOffice.org."
-msgstr ""
-"Die folgenden Drucker sind bereits eingerichtet. FĆ¼hren Sie einen "
-"Doppelklick auf einem aus, um ihn zu Ƥndern, als Standarddrucker zu "
-"verwenden, Informtionen Ć¼ber ihn zu erhalten oder einen entfernten CUPS-"
-"Server fĆ¼r Star/OpenOffice zugƤnglich zu machen."
-
-#: ../../printerdrake.pm_.c:2420
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; or to view information about "
-"it."
-msgstr ""
-"Die folgenden Drucker sind bereits eingerichtet. FĆ¼hren Sie einen "
-"Doppelklick auf einem aus, um ihn zu Ƥndern, als Standarddrucker zu "
-"verwenden oder Informtionen Ć¼ber ihn zu erhalten."
-
-#: ../../printerdrake.pm_.c:2446
-msgid "Refresh printer list (to display all available remote CUPS printers)"
-msgstr "Aktualisiere Druckerliste (um alle entfernten CUPS-Drucker anzuzeigen)"
-
-#: ../../printerdrake.pm_.c:2464
-msgid "Change the printing system"
-msgstr "Drucksystem Ƥndern"
-
-#: ../../printerdrake.pm_.c:2469 ../../standalone/draknet_.c:278
-msgid "Normal Mode"
-msgstr "Normaler Modus"
-
-#: ../../printerdrake.pm_.c:2625 ../../printerdrake.pm_.c:2675
-#: ../../printerdrake.pm_.c:2884
-msgid "Do you want to configure another printer?"
-msgstr "Mƶchten Sie einen weiteren Drucker einrichten?"
-
-#: ../../printerdrake.pm_.c:2711
-msgid "Modify printer configuration"
-msgstr "Drucker-Konfiguration Ƥndern"
-
-#: ../../printerdrake.pm_.c:2713
-#, c-format
-msgid ""
-"Printer %s\n"
-"What do you want to modify on this printer?"
-msgstr ""
-"Drucker %s\n"
-"Was wollen Sie an diesem Drucker Ƥndern?"
-
-#: ../../printerdrake.pm_.c:2717
-msgid "Do it!"
-msgstr "AusfĆ¼hren!"
-
-#: ../../printerdrake.pm_.c:2722 ../../printerdrake.pm_.c:2777
-msgid "Printer connection type"
-msgstr "Art der Druckeranbindung"
-
-#: ../../printerdrake.pm_.c:2723 ../../printerdrake.pm_.c:2781
-msgid "Printer name, description, location"
-msgstr "Druckername, Beschreibung, Standort"
-
-#: ../../printerdrake.pm_.c:2725 ../../printerdrake.pm_.c:2796
-msgid "Printer manufacturer, model, driver"
-msgstr "Druckerproduzent, Modell, Treiber"
-
-#: ../../printerdrake.pm_.c:2726 ../../printerdrake.pm_.c:2797
-msgid "Printer manufacturer, model"
-msgstr "Druckerproduzent, Modell"
-
-#: ../../printerdrake.pm_.c:2735 ../../printerdrake.pm_.c:2807
-msgid "Set this printer as the default"
-msgstr "Als Standarddrucker verwenden"
-
-#: ../../printerdrake.pm_.c:2737 ../../printerdrake.pm_.c:2812
-msgid "Add this printer to Star Office/OpenOffice.org"
-msgstr "Diesen Drucker fĆ¼r StarOffice/OpenOffice.org hinzufĆ¼gen"
-
-#: ../../printerdrake.pm_.c:2738 ../../printerdrake.pm_.c:2821
-msgid "Remove this printer from Star Office/OpenOffice.org"
-msgstr "Diesen Drucker fĆ¼r StarOffice/OpenOffice.org entfernen"
-
-#: ../../printerdrake.pm_.c:2739 ../../printerdrake.pm_.c:2830
-msgid "Print test pages"
-msgstr "Testseite(n) drucken"
-
-#: ../../printerdrake.pm_.c:2740 ../../printerdrake.pm_.c:2832
-msgid "Know how to use this printer"
-msgstr "Wie dieser Drucker genutzt werden kann"
-
-#: ../../printerdrake.pm_.c:2742 ../../printerdrake.pm_.c:2834
-msgid "Remove printer"
-msgstr "Drucker entfernen"
-
-#: ../../printerdrake.pm_.c:2786
-#, c-format
-msgid "Removing old printer \"%s\" ..."
-msgstr "Alten Drucker ā€˛%sā€ entfernen ..."
-
-#: ../../printerdrake.pm_.c:2810
-msgid "Default printer"
-msgstr "Standarddrucker"
-
-#: ../../printerdrake.pm_.c:2811
-#, c-format
-msgid "The printer \"%s\" is set as the default printer now."
-msgstr "Der Drucker ā€˛%sā€ ist jetzt Ihr Standarddruckerā€"
-
-#: ../../printerdrake.pm_.c:2815 ../../printerdrake.pm_.c:2818
-msgid "Adding printer to Star Office/OpenOffice.org"
-msgstr "Drucker fĆ¼r StarOffice/OpenOffice.org hinzufĆ¼gen"
-
-#: ../../printerdrake.pm_.c:2816
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully added to Star Office/OpenOffice.org."
-msgstr ""
-"Der Drucker ā€˛%sā€ wurde erfogrich zu StarOffice/OpenOffice.org hinzugefĆ¼gt."
-
-#: ../../printerdrake.pm_.c:2819
-#, c-format
-msgid "Failed to add the printer \"%s\" to Star Office/OpenOffice.org."
-msgstr "Fehler beim HinzufĆ¼gen von ā€˛%sā€ fĆ¼r StarOffice/OpenOffice.org."
-
-#: ../../printerdrake.pm_.c:2824 ../../printerdrake.pm_.c:2827
-msgid "Removing printer from Star Office/OpenOffice.org"
-msgstr "Drucker fĆ¼r StarOffice/OpenOffice.org entfernen"
-
-#: ../../printerdrake.pm_.c:2825
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully removed from Star Office/OpenOffice.org."
-msgstr ""
-"Der Drucker ā€˛%sā€ wurde erfogrich fĆ¼r StarOffice/OpenOffice.org entfernt."
-
-#: ../../printerdrake.pm_.c:2828
-#, c-format
-msgid "Failed to remove the printer \"%s\" from Star Office/OpenOffice.org."
-msgstr "Fehler beim Entfernen von ā€˛%sā€ fĆ¼r StarOffice/OpenOffice.org."
-
-#: ../../printerdrake.pm_.c:2836
-#, c-format
-msgid "Do you really want to remove the printer \"%s\"?"
-msgstr "Mƶchten Sie den Drucker ā€˛%sā€ wirklich entfernen?"
-
-#: ../../printerdrake.pm_.c:2838
-#, c-format
-msgid "Removing printer \"%s\" ..."
-msgstr "Drucker ā€˛%sā€ entfernen ..."
-
-#: ../../proxy.pm_.c:29 ../../proxy.pm_.c:37 ../../proxy.pm_.c:58
-#: ../../proxy.pm_.c:78
-msgid "Proxy configuration"
-msgstr "Proxies einstellen"
-
-#: ../../proxy.pm_.c:30
-msgid ""
-"Welcome to the proxy configuration utility.\n"
-"\n"
-"Here, you'll be able to set up your http and ftp proxies\n"
-"with or without login and password\n"
-msgstr ""
-"Herzlich willkommen zum Proxy Konfigurationsassistenten.\n"
-"\n"
-"Hier kƶnnen Sie Ihre HTTP und FTP Proxies mit oder ohne\n"
-"Anmeldung und Passwortabfrage einrichten\n"
-
-#: ../../proxy.pm_.c:38
-msgid ""
-"Please fill in the http proxy informations\n"
-"Leave it blank if you don't want an http proxy"
-msgstr ""
-"Bitte fĆ¼llen Sie die HTTP Proxy Informationen aus\n"
-"Falls sie keinen HTTP Proxy wolen, lassen Sie einfach\n"
-"alle Felder leer."
-
-#: ../../proxy.pm_.c:39 ../../proxy.pm_.c:60
-msgid "URL"
-msgstr "URL"
-
-#: ../../proxy.pm_.c:40 ../../proxy.pm_.c:61
-msgid "port"
-msgstr "Port"
-
-#: ../../proxy.pm_.c:44
-msgid "Url should begin with 'http:'"
-msgstr "Die URL muss mit ā€˛http:ā€ beginnen"
-
-#: ../../proxy.pm_.c:48 ../../proxy.pm_.c:69
-msgid "The port part should be numeric"
-msgstr "Die Prot Nummer muss eine Zahl sein!"
-
-#: ../../proxy.pm_.c:59
-msgid ""
-"Please fill in the ftp proxy informations\n"
-"Leave it blank if you don't want an ftp proxy"
-msgstr ""
-"Bitte fĆ¼llen Sie die FTP Proxy Informationen aus\n"
-"Falls sie keinen FTP Proxy wolen, lassen Sie einfach\n"
-"alle Felder leer."
-
-#: ../../proxy.pm_.c:65
-msgid "Url should begin with 'ftp:'"
-msgstr "Die URL muss mit ā€˛ftp:ā€ beginnen"
-
-#: ../../proxy.pm_.c:79
-msgid ""
-"Please enter proxy login and password, if any.\n"
-"Leave it blank if you don't want login/passwd"
-msgstr ""
-"Bitte geben Sie - falls nƶtig - Kennzeichen und Passwort fĆ¼r den Proxy \n"
-"an. Lassen Sie die Felder leer, falls Sie sie kein Kennzeichen/Passwort \n"
-"wollen."
-
-#: ../../proxy.pm_.c:80
-msgid "login"
-msgstr "Kennzeichen"
-
-#: ../../proxy.pm_.c:82
-msgid "password"
-msgstr "Passwort"
-
-#: ../../proxy.pm_.c:84
-msgid "re-type password"
-msgstr "Passwort (erneut)"
-
-#: ../../proxy.pm_.c:88
-msgid "The passwords don't match. Try again!"
-msgstr "Die Passwƶrter stimmen nicht Ć¼berein. Bitte versuchen Sie es eneut!"
-
-#: ../../raid.pm_.c:35
-#, c-format
-msgid "Can't add a partition to _formatted_ RAID md%d"
-msgstr "Ich kann keine Partition zu dem _formatierten_ RAID md%d hinzufĆ¼gen"
-
-#: ../../raid.pm_.c:111
-#, c-format
-msgid "Can't write file %s"
-msgstr "Ich kann Datei ā€˛%sā€ nicht schreiben"
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed"
-msgstr "mkraid schlug Fehl"
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed (maybe raidtools are missing?)"
-msgstr "mkraid schlug Fehl (Mƶglicherweise fehlen die RAID-Tools)"
-
-#: ../../raid.pm_.c:152
-#, c-format
-msgid "Not enough partitions for RAID level %d\n"
-msgstr "Nicht genĆ¼gend Partitionen fĆ¼r RAID Level %d\n"
-
-#: ../../services.pm_.c:14
-msgid "Launch the ALSA (Advanced Linux Sound Architecture) sound system"
-msgstr "Startet das ALSA (Advanced Linux Sound Architecture) Sound System"
-
-#: ../../services.pm_.c:15
-msgid "Anacron a periodic command scheduler."
-msgstr ""
-"Mit dem Dienst anacron kƶnnen cron-Prozesse auch zu anderen als den \n"
-"vorgegebenen Zeiten gestartet werden. Dies ist vor Allem dann \n"
-"sinnvoll, wenn Ihr Rechner nicht rund um die Uhr lƤuft, da sonst \n"
-"Prozesse, die etwa zwischen Mitternacht und 6:00 Uhr gestartet \n"
-"werden sollten, nie ausgefĆ¼hrt wĆ¼rden."
-
-#: ../../services.pm_.c:16
-msgid ""
-"apmd is used for monitoring batery status and logging it via syslog.\n"
-"It can also be used for shutting down the machine when the battery is low."
-msgstr ""
-"Der APM-Dienst (apmd) wird von Laptops verwendet, um den Ladestatus \n"
-"der Batterie durch den Syslog-Dienst erfassen zu lassen. Mit seiner \n"
-"Hilfe kann man den Rechner auch rechtzeitig herunterfahren lassen, \n"
-"bevor die Batterien leer sind."
-
-#: ../../services.pm_.c:18
-msgid ""
-"Runs commands scheduled by the at command at the time specified when\n"
-"at was run, and runs batch commands when the load average is low enough."
-msgstr ""
-"Dieser Dienst startet Applikationen der at-Warteschlange wenn der \n"
-"dafĆ¼r vorgesehene Zeitpunkt erreicht ist. LƤsst die Systemauslastung \n"
-"es zu, werden sog. Batch-Anwendungen gestartet."
-
-#: ../../services.pm_.c:20
-msgid ""
-"cron is a standard UNIX program that runs user-specified programs\n"
-"at periodic scheduled times. vixie cron adds a number of features to the "
-"basic\n"
-"UNIX cron, including better security and more powerful configuration options."
-msgstr ""
-"Der Befehl cron wird unter UNIX/Linux dazu verwendet, Benutzerprogramme \n"
-"zu vordefinierten regelmƤĆigen Zeiten abzuarbeiten. \n"
-"Der Dienst vixie cron erweitert dieses Konzept um weitere Funktionen, etwa \n"
-"ein verbessertes Sicherheitskonzept und einfachere Konfiguration."
-
-#: ../../services.pm_.c:23
-msgid ""
-"GPM adds mouse support to text-based Linux applications such the\n"
-"Midnight Commander. It also allows mouse-based console cut-and-paste "
-"operations,\n"
-"and includes support for pop-up menus on the console."
-msgstr ""
-"Der GPM-Dienst stellt Ihnen MausunterstĆ¼tzung auf Text-Konsolen zur \n"
-"VerfĆ¼gung. Sie erhalten damit die Mƶglichkeit Ausschneiden und \n"
-"EinfĆ¼gen von Text wie unter X zu verwenden. In einigen Applikationen \n"
-"kƶnnen Sie auch Pop-Up-MenĆ¼s damit bedienen."
-
-#: ../../services.pm_.c:26
-msgid ""
-"HardDrake runs a hardware probe, and optionally configures\n"
-"new/changed hardware."
-msgstr ""
-"HardDrake fĆ¼hrt Hardwaretests durch, und konfiguriert (falls nƶtig) \n"
-"neue/geƤnderte Hardware."
-
-#: ../../services.pm_.c:28 ../../standalone/logdrake_.c:412
-msgid ""
-"Apache is a World Wide Web server. It is used to serve HTML files and CGI."
-msgstr ""
-"Apache ist ein World-Wide-Web-Server. Mit seiner Hilfe kƶnnen Sie \n"
-"HTML-Dateien Ć¼ber HTTP publizieren. Der Server ist CGI-fƤhig."
-
-#: ../../services.pm_.c:29
-msgid ""
-"The internet superserver daemon (commonly called inetd) starts a\n"
-"variety of other internet services as needed. It is responsible for "
-"starting\n"
-"many services, including telnet, ftp, rsh, and rlogin. Disabling inetd "
-"disables\n"
-"all of the services it is responsible for."
-msgstr ""
-"Der Internet Superserver-Dienst (inetd) startet je nach Bedarf \n"
-"etliche andere Internet-Dienste, so etwa telnet, ftp, rsh oder \n"
-"rlogin. Dies jedoch nur, wenn die entsprechenden Dienste in der \n"
-"Datei ā€˛/etc/inetd.confā€ freigeschaltet sind. \n"
-"Schalten Sie diesen Dienst ab, kƶnnen Sie keine der von inetd \n"
-"verwalteten Dienste mehr zugreifen."
-
-#: ../../services.pm_.c:33
-msgid ""
-"Launch packet filtering for Linux kernel 2.2 series, to set\n"
-"up a firewall to protect your machine from network attacks."
-msgstr ""
-"Startet Paketfilterung fĆ¼r Linux 2.2er Kerne, um Ihren Rechner \n"
-"durch eine Firewall vor Angriffen aus dem Netz zu schĆ¼tzen."
-
-#: ../../services.pm_.c:35
-msgid ""
-"This package loads the selected keyboard map as set in\n"
-"/etc/sysconfig/keyboard. This can be selected using the kbdconfig utility.\n"
-"You should leave this enabled for most machines."
-msgstr ""
-"Dieser Dienst lƤdt die Tastaturbelegung, die in der Datei \n"
-"ā€˛/etc/sysconfig/keyboardā€ angegeben ist. Mittels ā€˛kbdconfigā€ \n"
-"kƶnnen Sie diese Einstellung Ƥndern. Schalten Sie diesen Dienst ab, \n"
-"mĆ¼ssen Sie ab dem nƤchsten Systemstart mit der amerikanischen \n"
-"Tastatur vorlieb nehmen."
-
-#: ../../services.pm_.c:38
-msgid ""
-"Automatic regeneration of kernel header in /boot for\n"
-"/usr/include/linux/{autoconf,version}.h"
-msgstr ""
-"Automatische Neuerstellung der Kern-Header in /boot fĆ¼r\n"
-"/usr/include/linux/{autoconf,version}.h"
-
-#: ../../services.pm_.c:40
-msgid "Automatic detection and configuration of hardware at boot."
-msgstr ""
-"Automatische Erkennung und Konfiguration neuer Hardware wƤhrend des \n"
-"Betriebssystemstarts."
-
-#: ../../services.pm_.c:41
-msgid ""
-"Linuxconf will sometimes arrange to perform various tasks\n"
-"at boot-time to maintain the system configuration."
-msgstr ""
-"Linuxconf versucht beim Betriebssystemstart einige Verwaltungsaufgaben \n"
-"auszufĆ¼hren."
-
-#: ../../services.pm_.c:43
-msgid ""
-"lpd is the print daemon required for lpr to work properly. It is\n"
-"basically a server that arbitrates print jobs to printer(s)."
-msgstr ""
-"Der Dienst lpd ist der Drucker-Server Ihres Rechners. Wenn Sie \n"
-"diesen Dienst abschalten werden DruckauftrƤge nicht mehr abgearbeitet.\n"
-"Hauptaufgabe von lpd ist es, DruckauftrƤge an den jeweiligen \n"
-"zustƤndigen Drucker (dieser kann auch einen anderen Rechner hƤngen) \n"
-"zu senden."
-
-#: ../../services.pm_.c:45
-msgid ""
-"Linux Virtual Server, used to build a high-performance and highly\n"
-"available server."
-msgstr ""
-"Der Linux Virtual Server kann verwendet werden, um um ein \n"
-"hochperformanten HochverfĆ¼gbarkeitsserver aufzusetzen."
-
-#: ../../services.pm_.c:47 ../../standalone/logdrake_.c:413
-msgid ""
-"named (BIND) is a Domain Name Server (DNS) that is used to resolve host "
-"names to IP addresses."
-msgstr ""
-"Der Dienst named (BIND) stellt ihnen einen Server zur VerfĆ¼gung, \n"
-"mit dessen Hilfe Rechnernamen in IP-Adressen umgesetzt werden. \n"
-"Ein solcher Dienst wird ā€˛Domain Name Serverā€ (DNS) genannt. \n"
-"Falls Sie nur einen Rechner besitzen, mit dem Sie per Modem/ISDN ins \n"
-"Netz gehen, benƶtigen Sie diesen Dienst nicht."
-
-#: ../../services.pm_.c:48
-msgid ""
-"Mounts and unmounts all Network File System (NFS), SMB (Lan\n"
-"Manager/Windows), and NCP (NetWare) mount points."
-msgstr ""
-"Dieser Dienst ist verantwortlich dafĆ¼r, dass alle Netzwerk-Dateisysteme \n"
-"(NFS) bei Systemstart eingehƤngt werden, etwa SMB (Lan Manager/Windows) \n"
-"und NCP (NetWare)."
-
-#: ../../services.pm_.c:50
-msgid ""
-"Activates/Deactivates all network interfaces configured to start\n"
-"at boot time."
-msgstr ""
-"Dieser Dienst aktiviert NetzwerkgerƤte (etwa Netzwerkkarten), die \n"
-"so konfiguriert wurden, dass sie ab dem Systemstart zur VerfĆ¼gung \n"
-"stehen sollen."
-
-#: ../../services.pm_.c:52
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP networks.\n"
-"This service provides NFS server functionality, which is configured via the\n"
-"/etc/exports file."
-msgstr ""
-"NFS ist ein gelƤufiges Protokoll in TCP/IP Netzwerken um Dateien \n"
-"durch verschiedene Rechner gemeinsam nutzen zu kƶnnen. \n"
-"Dieser Dienst stellt Ihnen einen solchen Server zur VerfĆ¼gung. \n"
-"Konfiguriert wird er in der Datei ā€˛/etc/exportsā€."
-
-#: ../../services.pm_.c:55
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP\n"
-"networks. This service provides NFS file locking functionality."
-msgstr ""
-"NFS ist ein gelƤufiges Protokoll in TCP/IP Netzwerken um Dateien \n"
-"durch verschiedene Rechner gemeinsam nutzen zu kƶnnen. \n"
-"Der Dienst nfslock stellt Ihnen hierfĆ¼r Locking-Mechanismen zur \n"
-"VerfĆ¼gung, damit eine Datei nicht durch mehrere Personen \n"
-"gleichzeitig verƤndert werden kann."
-
-#: ../../services.pm_.c:57
-msgid ""
-"Automatically switch on numlock key locker under console\n"
-"and XFree at boot."
-msgstr ""
-"Schaltet beim Betriebssystemstart automatisch die ā€˛Numā€-Taste fĆ¼r \n"
-"die virtuellen Konsolen und XFree ein."
-
-#: ../../services.pm_.c:59
-msgid "Support the OKI 4w and compatible winprinters."
-msgstr "UnterstĆ¼tzung fĆ¼r den OKI 4w und kompatible WinDrucker."
-
-#: ../../services.pm_.c:60
-msgid ""
-"PCMCIA support is usually to support things like ethernet and\n"
-"modems in laptops. It won't get started unless configured so it is safe to "
-"have\n"
-"it installed on machines that don't need it."
-msgstr ""
-"PCMCIA wird normalerweise in Laptops verwendet, um Ethernet-Karten \n"
-"oder Modems verwenden zu kƶnnen. Dieser Dienst wird nur gestartet, \n"
-"wenn Sie ihn vorher konfiguriert haben. Daher schadet es nicht, \n"
-"wenn Sie ihn auf Rechnern aktivieren, auf denen er nutzlos ist."
-
-#: ../../services.pm_.c:63
-msgid ""
-"The portmapper manages RPC connections, which are used by\n"
-"protocols such as NFS and NIS. The portmap server must be running on "
-"machines\n"
-"which act as servers for protocols which make use of the RPC mechanism."
-msgstr ""
-"Mittels portmapper werden RPC-Verbindungen verwaltet, die etwa von \n"
-"den Protokollen NFS und NIS verwendet werden. Auf Rechnern, die \n"
-"solche Server (RPC-basierte) beherbergen, muss dieser Dienst \n"
-"aktiviert sein."
-
-#: ../../services.pm_.c:66 ../../standalone/logdrake_.c:415
-msgid ""
-"Postfix is a Mail Transport Agent, which is the program that moves mail from "
-"one machine to another."
-msgstr ""
-"Postfix ist ein E-Mail Transport-Dienst. Mit seiner Hilfe werden \n"
-"E-Mails zwischen verschiedenen Rechnern weitergeleitet."
-
-#: ../../services.pm_.c:67
-msgid ""
-"Saves and restores system entropy pool for higher quality random\n"
-"number generation."
-msgstr ""
-"Dieser Dienst speichert beim Herunterfahren des Rechners den Zustand \n"
-"des Zufallszahlengenerators, um ihn beim nƤchsten Systemstart \n"
-"wieder zu restaurieren. Die QualitƤt erzeugter Zufallszahlen \n"
-"wird dadurch verbessert."
-
-#: ../../services.pm_.c:69
-msgid ""
-"Assign raw devices to block devices (such as hard drive\n"
-"partitions), for the use of applications such as Oracle"
-msgstr ""
-"Weist Roh-GerƤten ein blockorientiertes GerƤt (etwa eine\n"
-"Festplattenpartition) zu. Dies wird fĆ¼r Anwendungen wie\n"
-"etwa ORACLE benƶtigt"
-
-#: ../../services.pm_.c:71
-msgid ""
-"The routed daemon allows for automatic IP router table updated via\n"
-"the RIP protocol. While RIP is widely used on small networks, more complex\n"
-"routing protocols are needed for complex networks."
-msgstr ""
-"Der Dienst routed ermƶglicht ein automatisches Aktualisieren der \n"
-"IP-Routing-Tabellen mittels RIP Protokoll. Zwar wird RIP in kleinen \n"
-"Netzwerken verwendet, jedoch wird fĆ¼r komplexere Netzwerke ein \n"
-"anderer Dienst benƶtigt."
-
-#: ../../services.pm_.c:74
-msgid ""
-"The rstat protocol allows users on a network to retrieve\n"
-"performance metrics for any machine on that network."
-msgstr ""
-"Der Dienst rstat ermƶglicht es Anwendern anderer Rechner des \n"
-"Netzwerks Preformance-Daten dieses Rechners zu erhalten."
-
-#: ../../services.pm_.c:76
-msgid ""
-"The rusers protocol allows users on a network to identify who is\n"
-"logged in on other responding machines."
-msgstr ""
-"Der Dienst rusers ermƶglicht es Anwendern anderer Rechner \n"
-"herauszubekommen, welche Benutzerkennzeichen auf diesem Rechner \n"
-"gerade angemeldet sind."
-
-#: ../../services.pm_.c:78
-msgid ""
-"The rwho protocol lets remote users get a list of all of the users\n"
-"logged into a machine running the rwho daemon (similiar to finger)."
-msgstr ""
-"Der Dienst rwho erlaubt es Benutzern entfernter Rechner eine Liste\n"
-"momentan angemeldeter Benutzerkennzeichen Ć¼bermittelt zu bekommen \n"
-"(Ƥhnlich wie finger)."
-
-#: ../../services.pm_.c:80
-msgid "Launch the sound system on your machine"
-msgstr "Starten des Sound-Systems Ihres Rechners"
-
-#: ../../services.pm_.c:81
-msgid ""
-"Syslog is the facility by which many daemons use to log messages\n"
-"to various system log files. It is a good idea to always run syslog."
-msgstr ""
-"Mittels Syslog versuchen zahlreiche Dienste Verlaufsprotokolle \n"
-"in vorgesehene Dateien zu sichern. Es ist sinnvoll Syslog immer \n"
-"aktiviert zu haben."
-
-#: ../../services.pm_.c:83
-msgid "Load the drivers for your usb devices."
-msgstr "LƤdt die Treiber fĆ¼r Ihre USB-GerƤte."
-
-#: ../../services.pm_.c:84
-msgid "Starts the X Font Server (this is mandatory for XFree to run)."
-msgstr ""
-"Dieser Dienst startet den X-Font-Server. Er ist notwendig, \n"
-"damit XFree gestartet werden kann!"
-
-#: ../../services.pm_.c:110 ../../services.pm_.c:152
-msgid "Choose which services should be automatically started at boot time"
-msgstr ""
-"WƤhlen Sie, welche Dienste\n"
-"automatisch beim Systemstart\n"
-"aktiviert werden sollen"
-
-#: ../../services.pm_.c:122
-msgid "Printing"
-msgstr "Drucken"
-
-#: ../../services.pm_.c:123
-msgid "Internet"
-msgstr "Internet"
-
-#: ../../services.pm_.c:126
-msgid "File sharing"
-msgstr "Gemeinsamer Dateizugriff"
-
-#: ../../services.pm_.c:128 ../../standalone/drakbackup_.c:934
-msgid "System"
-msgstr "System"
-
-#: ../../services.pm_.c:133
-msgid "Remote Administration"
-msgstr "Fernwartung"
-
-#: ../../services.pm_.c:141
-msgid "Database Server"
-msgstr "Datenbankserver"
-
-#: ../../services.pm_.c:170
-#, c-format
-msgid "Services: %d activated for %d registered"
-msgstr "Dienste: %d aktiviert von %d registrierten."
-
-#: ../../services.pm_.c:186
-msgid "Services"
-msgstr "Dienste"
-
-#: ../../services.pm_.c:198
-msgid "running"
-msgstr "aktiv"
-
-#: ../../services.pm_.c:198
-msgid "stopped"
-msgstr "gestoppt"
-
-#: ../../services.pm_.c:212
-msgid "Services and deamons"
-msgstr "Dienste und DƤmonen"
-
-#: ../../services.pm_.c:217
-msgid ""
-"No additional information\n"
-"about this service, sorry."
-msgstr ""
-"Es existieren leider keine\n"
-"weiteren Informationen zu\n"
-"diesem Dienst."
-
-#: ../../services.pm_.c:224
-msgid "On boot"
-msgstr "Bei BS-Start"
-
-#: ../../services.pm_.c:236
-msgid "Start"
-msgstr "Start"
-
-#: ../../services.pm_.c:236
-msgid "Stop"
-msgstr "Stopp"
-
-#: ../../share/advertising/00-thanks.pl_.c:9
-msgid "Thank you for choosing Mandrake Linux 8.2"
-msgstr "Danke, dass Sie sich fĆ¼r Mandrake Linux 8.2 entschieden haben"
-
-#: ../../share/advertising/00-thanks.pl_.c:10
-msgid "Welcome to the Open Source world"
-msgstr "Willkommen in der Open Source Welt."
-
-#: ../../share/advertising/00-thanks.pl_.c:11
-msgid ""
-"The success of MandrakeSoft is based upon the principle of Free Software. "
-"Your new operating system is the result of collaborative work on the part of "
-"the worldwide Linux Community"
-msgstr ""
-"Der Erfolg von MandrakeSoft basiert auf dem Prinzip freier Software. Ihr "
-"neues Betriebssystem ist das Ergebnis einer weltweiten Zusammenarbeit der "
-"GNU/Linux-Gemeinde."
-
-#: ../../share/advertising/01-gnu.pl_.c:9
-msgid "Join the Free Software world"
-msgstr "Betreten Sie die Welt der Freien Software"
-
-#: ../../share/advertising/01-gnu.pl_.c:10
-msgid ""
-"Get to know the Open Source community and become a member. Learn, teach, and "
-"help others by joining the many discussion forums that you will find in our "
-"\"Community\" webpages"
-msgstr ""
-"Wollen Sie die Open Source Gemeinde kennen lernen? Ein Teil von ihr werden? "
-"Beteiligen Sie sich an den Diskussionsforen, die Sie auf unseren ā€˛Communityā€-"
-"Seiten finden."
-
-#: ../../share/advertising/02-internet.pl_.c:9
-msgid "Internet and Messaging"
-msgstr "Internet und Messaging"
-
-#: ../../share/advertising/02-internet.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best software to access everything the "
-"Internet has to offer: Surf the web & view animations with Mozilla and "
-"Konqueror, exchange email & organize your personal information with "
-"Evolution and Kmail, and much more"
-msgstr ""
-"Mandrake Linux 8.2 stellt Ihnen die beste Softwareauswahl bereit, um auf "
-"alles, was das Internet bietet, zugreifen zu kƶnnen. Surfen Sie im Web mit "
-"Mozilla oder Konqueror, bearbeiten Sie E-Mails und verwalten Sie persƶnliche "
-"Informationen mit Evolution, KMail oder zahlreichen anderen Programmen."
-
-#: ../../share/advertising/03-graphic.pl_.c:9
-msgid "Multimedia and Graphics"
-msgstr "Multimedia und Grafik"
-
-#: ../../share/advertising/03-graphic.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 lets you push your multimedia computer to its limits! Use "
-"the latest software to play music and audio files, edit and organize your "
-"images and photos, watch TV and videos, and much more"
-msgstr ""
-"Mandrake Linux 8.2 reizt Ihren Multimediarechner voll aus! Verwenden Sie die "
-"neuste Software, um Audiodateien abzuspielen, Ihre Fotos und Bilder zu "
-"bearbeiten sowie Videos abzuspielen..."
-
-#: ../../share/advertising/04-develop.pl_.c:9
-msgid "Development"
-msgstr "Entwicklungsplattform"
-
-#: ../../share/advertising/04-develop.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 is the ultimate development platform. Discover the power "
-"of the GNU gcc compiler as well as the best Open Source development "
-"environments"
-msgstr ""
-"Mandrake Linux 8.2 ist die ultimative Entwicklungsplattform. Nutzen Sie die "
-"volle Power des GNU C Compilers sowie der besten Open Source "
-"Entwicklungsumgebungen."
-
-#: ../../share/advertising/05-contcenter.pl_.c:9
-msgid "Mandrake Control Center"
-msgstr "Mandrake Kontrollzentrum"
-
-#: ../../share/advertising/05-contcenter.pl_.c:10
-msgid ""
-"The Mandrake Linux 8.2 Control Center is a one-stop location for fully "
-"customizing and configuring your Mandrake system"
-msgstr ""
-"Das Mandrake Linux 8.2 Kontrollzentrum ist der zentrale Ort, an dem Sie Ihr "
-"System nach Ihren WĆ¼nschen anpassen kƶnnen."
-
-#: ../../share/advertising/06-user.pl_.c:9
-msgid "User interfaces"
-msgstr "Arbeitsumgebungen"
-
-#: ../../share/advertising/06-user.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides 11 different graphical desktop environments and "
-"window managers to choose from including GNOME 1.4, KDE 2.2.2, Window Maker "
-"0.8, and the rest"
-msgstr ""
-"Mandrake Linux 8.2 bietet 11 verschiedene grafische Arbeitsumgebungen und "
-"Windowmanager. Darunter GNOME 1.4, KDE 2.2.2 und Window Maker 0.8"
-
-#: ../../share/advertising/07-server.pl_.c:9
-msgid "Server Software"
-msgstr "Server Software"
-
-#: ../../share/advertising/07-server.pl_.c:10
-msgid ""
-"Transform your machine into a powerful server with just a few clicks of the "
-"mouse: Web server, email, firewall, router, file and print server, ..."
-msgstr ""
-"Verwandeln Sie Ihren Rechner mit ein paar Mausklicks in einen "
-"leistungsfƤhigen Server: Web, E-Mail, Firewall, Router, Datei- und "
-"Druckserver, ..."
-
-#: ../../share/advertising/08-games.pl_.c:9
-msgid "Games"
-msgstr "Spiele"
-
-#: ../../share/advertising/08-games.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best Open Source games - arcade, action, "
-"cards, sports, strategy, ..."
-msgstr ""
-"Mandrake Linux 8.2 bietet die besten Open Source Spiele - Arcade, Baller, "
-"Karten, Sport, Strategie, ..."
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:9
-msgid "MandrakeCampus"
-msgstr "MandrakeCampus"
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:10
-msgid ""
-"Would you like to learn Linux simply, quickly, and for free? MandrakeSoft "
-"provides free Linux training, as well as a way to test your progress, at "
-"MandrakeCampus -- our online training center"
-msgstr ""
-"Sie wollen GNU/Linux in eine einfache, schnelle und vor Allem freie Weise "
-"erlernen? MandrakeSoft bieten ein freies Linux Training sowie einen Weg "
-"Ihren Fortschirtt mit unserem Online Trainingcenter ā€˛MandrakeCampusā€ zu "
-"testen."
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:9
-msgid "MandrakeExpert"
-msgstr "MandrakeExpert"
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:10
-msgid ""
-"Quality support from the Linux Community, and from MandrakeSoft, is just "
-"around the corner. And if you're already a Linux veteran, become an \"Expert"
-"\" and share your knowledge at our support website"
-msgstr ""
-"Qualitativ hochwertiger Support aus der GNU/Linux Gemeinde und von "
-"MandrakeSoft ist nur einen Mausklick weit entfernt. Sind Sie bereits ein "
-"ā€˛alter Haseā€ in Sachen GNU/Linux, werden Sie ein Experte, und teilen Sie Ihr "
-"Wissen mit Anderen auf unserer Support-Seite."
-
-#: ../../share/advertising/11-consul.pl_.c:9
-msgid "MandrakeConsulting"
-msgstr "MandrakeConsulting"
-
-#: ../../share/advertising/11-consul.pl_.c:10
-msgid ""
-"For all of your IT projects, our consultants are ready to analyze your "
-"requirements and offer a customized solution. Benefit from MandrakeSoft's "
-"vast experience as a Linux producer to provide a true IT alternative for "
-"your business organization"
-msgstr ""
-"Unsere Consultants sind bereit, Ihnen fĆ¼r alle Ihre IT-Projekte individuelle "
-"Lƶsungen anzubieten, die genau Ihren BedĆ¼rfnissen entsprechen. MandrakeSoft "
-"als erfahrener Linux-Distributor bietet eine echte IT-Alternative fĆ¼r Ihr "
-"Unternehmen."
-
-#: ../../share/advertising/12-MDKstore.pl_.c:9
-msgid "MandrakeStore"
-msgstr "MandrakeStore"
-
-#: ../../share/advertising/12-MDKstore.pl_.c:10
-msgid ""
-"A full range of Linux solutions, as well as special offers on products and "
-"'goodies', are available online at our e-store"
-msgstr ""
-"Unsere Linux Komplettlƶsungen, Sonderangebote und Mandrake Fan-Artikel "
-"bekommen Sie in unserem E-Shop"
-
-#: ../../share/advertising/13-Nvert.pl_.c:9
-msgid ""
-"For more information on MandrakeSoft's Professional Services and commercial "
-"offerings, please see the following web page:"
-msgstr ""
-"Weitere Informationen Ć¼ber MandrakeSofts professionelle Dienstleistungs- und "
-"gewerbliche Angebote erhalten Sie unter:"
-
-#: ../../share/advertising/13-Nvert.pl_.c:11
-msgid "http://www.mandrakesoft.com/sales/contact"
-msgstr "http://www.mandrakesoft.com/sales/contact/"
-
-#: ../../standalone.pm_.c:25
-msgid "Installing packages..."
-msgstr "Pakete Installieren ..."
-
-#: ../../standalone/diskdrake_.c:85
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I'll try to go on blanking bad partitions"
-msgstr ""
-"Ich kann Ihre Partitionstabelle nicht lesen, sie ist fehlerhaft :-(\n"
-"Um fortfahren zu kƶnnen setze ich die fehlerhaften Partitionen zurĆ¼ck"
-
-#: ../../standalone/drakautoinst_.c:45
-msgid "Error!"
-msgstr "Fehler!"
-
-#: ../../standalone/drakautoinst_.c:46
-#, c-format
-msgid "I can't find needed image file `%s'."
-msgstr "Ich kann die benƶtigte Abbild-Datei ā€˛%sā€ nicht finden."
-
-#: ../../standalone/drakautoinst_.c:48
-msgid "Auto Install Configurator"
-msgstr "Auto-Installationskonfigurator"
-
-#: ../../standalone/drakautoinst_.c:49
-msgid ""
-"You are about to configure an Auto Install floppy. This feature is somewhat "
-"dangerous and must be used circumspectly.\n"
-"\n"
-"With that feature, you will be able to replay the installation you've "
-"performed on this computer, being interactively prompted for some steps, in "
-"order to change their values.\n"
-"\n"
-"For maximum safety, the partitioning and formatting will never be performed "
-"automatically, whatever you chose during the install of this computer.\n"
-"\n"
-"Do you want to continue?"
-msgstr ""
-"Sie sind dabei, eine Auto-Installationsdiskette zu erstellen. Diese\n"
-"Mƶglichkeit ist gefƤhrlich und sollte mit Vorsicht verwendet werden!\n"
-"\n"
-"Sie kƶnnen mit diesem Werkzeug die Installation, die Sie auf Ihrem\n"
-"Rechner erneut durchspielen, wobei Sie an einigen Stellen interaktiv\n"
-"Einfluss nehmen zu kƶnnen.\n"
-"\n"
-"Aus SicherheitsgrĆ¼nden wird die Partitionierung und Formatierung nie\n"
-"automatisch durchgefĆ¼hrt.\n"
-"\n"
-"Wollen Sie fortfahren?"
-
-#: ../../standalone/drakautoinst_.c:71
-msgid "Automatic Steps Configuration"
-msgstr "Automatische Konfiguration der Schritte"
-
-#: ../../standalone/drakautoinst_.c:72
-msgid ""
-"Please choose for each step whether it will replay like your install, or it "
-"will be manual"
-msgstr ""
-"Bitte wƤhlen Sie fĆ¼r jeden Schritt, ob er wie bei Ihrer Installation "
-"vorgenommen werden soll, oder ob Sie ihn manuell durchfĆ¼hren wollen."
-
-#: ../../standalone/drakautoinst_.c:145
-msgid ""
-"\n"
-"Welcome.\n"
-"\n"
-"The parameters of the auto-install are available in the sections on the left"
-msgstr ""
-"\n"
-"Willkommen.\n"
-"\n"
-"Die Parameter der Autoinstallation sind in den Abschnitten rechts verfĆ¼gbar."
-
-#: ../../standalone/drakautoinst_.c:243 ../../standalone/drakgw_.c:671
-#: ../../standalone/scannerdrake_.c:106
-msgid "Congratulations!"
-msgstr "Gratuliere!"
-
-#: ../../standalone/drakautoinst_.c:244
-msgid ""
-"The floppy has been successfully generated.\n"
-"You may now replay your installation."
-msgstr ""
-"Die Diskette wurde erfolgreich erstellt.\n"
-"Sie kƶnnen die Installation nun automatisch durchfĆ¼hren."
-
-#: ../../standalone/drakautoinst_.c:282
-msgid "Auto Install"
-msgstr "Auto-Installation"
-
-#: ../../standalone/drakautoinst_.c:352
-msgid "Add an item"
-msgstr "Eintrag hinzufĆ¼gen"
-
-#: ../../standalone/drakautoinst_.c:359
-msgid "Remove the last item"
-msgstr "Letzten Eintrag entfernen?"
-
-#: ../../standalone/drakbackup_.c:448 ../../standalone/drakbackup_.c:451
-#: ../../standalone/drakbackup_.c:455
-msgid ""
-"***********************************************************************\n"
-"\n"
-msgstr ""
-"***********************************************************************\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:449
-msgid ""
-"\n"
-" DrakBackup Report \n"
-"\n"
-msgstr ""
-"\n"
-" DrakBackup Report \n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:450
-msgid ""
-"\n"
-" DrakBackup Daemon Report\n"
-"\n"
-"\n"
-msgstr ""
-"\n"
-" DrakBackup DƤmon Report\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:453
-msgid ""
-"\n"
-"\n"
-"***********************************************************************\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"***********************************************************************\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:454
-msgid ""
-"\n"
-" DrakBackup Report Details\n"
-"\n"
-"\n"
-msgstr ""
-"\n"
-" DrakBackup Report Details\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:476
-msgid "total progess"
-msgstr "Vortschritt"
-
-#: ../../standalone/drakbackup_.c:555 ../../standalone/drakbackup_.c:602
-msgid "Backup system files..."
-msgstr "Systemdateien sichern ..."
-
-#: ../../standalone/drakbackup_.c:603 ../../standalone/drakbackup_.c:667
-msgid "Hard Disk Backup files..."
-msgstr "Backup-Dateien auf der Festplatte ..."
-
-#: ../../standalone/drakbackup_.c:615
-msgid "Backup User files..."
-msgstr "Benutzerdateien sichern ..."
-
-#: ../../standalone/drakbackup_.c:616
-msgid "Hard Disk Backup Progress..."
-msgstr "Festplattenbackup in Bearbeitung ..."
-
-#: ../../standalone/drakbackup_.c:666
-msgid "Backup Other files..."
-msgstr "Andere Dateien sichern ..."
-
-#: ../../standalone/drakbackup_.c:674
-#, c-format
-msgid ""
-"file list send by FTP : %s\n"
-" "
-msgstr ""
-"Dateiliste per FTP senden: %s\n"
-" "
-
-#: ../../standalone/drakbackup_.c:677
-msgid ""
-"\n"
-"(!) FTP connexion problem: It was not possible to send your backup files by "
-"FTP.\n"
-msgstr ""
-"\n"
-"(!) FTP Verbindungsprobleme: Es war nicht mƶglich, Ihre Dateien per FTP zu "
-"Ć¼bertragen.\n"
-
-#: ../../standalone/drakbackup_.c:687
-msgid "(!) Error during mail sending. \n"
-msgstr "(!) Fehler beim Verschicken der Mail. \n"
-
-#: ../../standalone/drakbackup_.c:728 ../../standalone/drakbackup_.c:739
-#: ../../standalone/drakbackup_.c:750 ../../standalone/drakfont_.c:787
-msgid "File Selection"
-msgstr "Dateiauswahl"
-
-#: ../../standalone/drakbackup_.c:755
-msgid "Select the files or directories and click on 'Add'"
-msgstr ""
-"WƤhlen Sie die Dateien oder Verzeichnisse und betƤtigen Sie die SchaltflƤche "
-"ā€˛HinzufĆ¼genā€"
-
-#: ../../standalone/drakbackup_.c:790
-msgid ""
-"\n"
-"Please check all options that you need.\n"
-msgstr ""
-"\n"
-"Bitte wƤhlen Sie alle benƶtigten Parameter.\n"
-
-#: ../../standalone/drakbackup_.c:791
-msgid ""
-"These options can backup and restore all files in your /etc directory.\n"
-msgstr ""
-"Diese Optionen kƶn alle Ihre Dateien im Verzeichnis ā€˛/etcā€ sichern und "
-"wiederherstellen\n"
-
-#: ../../standalone/drakbackup_.c:792
-msgid "Backup your System files. ( /etc directory )"
-msgstr "Sichern Ihrer Systemdateien (Verzeicnis ā€˛/etcā€)"
-
-#: ../../standalone/drakbackup_.c:793
-msgid "Use incremental backup (do not replace old backups)"
-msgstr "Inkrementelles Backup (alte Backups nicht Ć¼berschreiben)"
-
-#: ../../standalone/drakbackup_.c:794
-msgid "Do not include critical files (passwd, group, fstab)"
-msgstr "Keine kritischen Dateien (passwd, group, fstab)"
-
-#: ../../standalone/drakbackup_.c:795
-msgid ""
-"With this option you will be able to restore any version\n"
-" of your /etc directory."
-msgstr ""
-"Mit dieser Option sind Sie in der Lage, jede Version Ihres \n"
-"ā€˛/etcā€ Verzeichnisses wiederherzustellen."
-
-#: ../../standalone/drakbackup_.c:812
-msgid "Please check all users that you want to include in your backup."
-msgstr ""
-"Bitte wƤhlen Sie alle Kennzeichen, deren Dateinen mitgesichert werden sollen."
-
-#: ../../standalone/drakbackup_.c:839
-msgid "Do not include the browser cache"
-msgstr "Die Browser-Caches nicht archivieren."
-
-#: ../../standalone/drakbackup_.c:840 ../../standalone/drakbackup_.c:864
-msgid "Use Incremental Backups (do not replace old backups)"
-msgstr "Inkrementelle Archivierung (alte Archive nicht ersetzen)"
-
-#: ../../standalone/drakbackup_.c:862 ../../standalone/drakfont_.c:827
-msgid "Remove Selected"
-msgstr "Markierte entfernen"
-
-#: ../../standalone/drakbackup_.c:900
-msgid "Windows (FAT32)"
-msgstr "Windows (FAT32)"
-
-#: ../../standalone/drakbackup_.c:939
-msgid "Users"
-msgstr "Benutzer"
-
-#: ../../standalone/drakbackup_.c:964
-msgid "Use FTP connection to backup"
-msgstr "FTP-Verbindung zum erstellen der Sicherungskopien verwenden"
-
-#: ../../standalone/drakbackup_.c:967
-msgid "Please enter the host name or IP."
-msgstr "Rechnernamen oder IP eingeben."
-
-#: ../../standalone/drakbackup_.c:972
-msgid ""
-"Please enter the directory to\n"
-" put the backup on this host."
-msgstr ""
-"Bitte geben Sie das Verzeichnis an,\n"
-" in dem die Archive erstellt werden sollen."
-
-#: ../../standalone/drakbackup_.c:977
-msgid "Please enter your login"
-msgstr "Bitte geben Sie Ihr Benutzerkennzeichen ein"
-
-#: ../../standalone/drakbackup_.c:982
-msgid "Please enter your password"
-msgstr "Bitte geben Sie Ihr Passwort ein"
-
-#: ../../standalone/drakbackup_.c:988
-msgid "Remember this password"
-msgstr "Passwort behalten"
-
-#: ../../standalone/drakbackup_.c:1052 ../../standalone/drakbackup_.c:2048
-msgid "FTP Connection"
-msgstr "FTP Verbindung"
-
-#: ../../standalone/drakbackup_.c:1059 ../../standalone/drakbackup_.c:2056
-msgid "Secure Connection"
-msgstr "Sichere Verbindung"
-
-#: ../../standalone/drakbackup_.c:1085 ../../standalone/drakbackup_.c:2889
-msgid "Use CD/DVDROM to backup"
-msgstr "Sicherungskopie auf CD/DVDROM"
-
-#: ../../standalone/drakbackup_.c:1088 ../../standalone/drakbackup_.c:2893
-msgid "Please choose your CD space"
-msgstr "Bitte wƤhlen Sie Ihren CD-Paltz"
-
-#: ../../standalone/drakbackup_.c:1094 ../../standalone/drakbackup_.c:2905
-msgid "Please check if you are using CDRW media"
-msgstr "Kontrollieren Sie, ob Sie ein CDRW-Medium verwenden."
-
-#: ../../standalone/drakbackup_.c:1100 ../../standalone/drakbackup_.c:2911
-msgid "Please check if you want to erase your CDRW before"
-msgstr "Kontrollieren Sie, ob Sie die CDRW vorher lƶschen wollen."
-
-#: ../../standalone/drakbackup_.c:1106
-msgid ""
-"Please check if you want to include\n"
-" install boot on your CD."
-msgstr ""
-"Bitte markieren, falls Sie \n"
-"ā€˛install bootā€ auf Ihrer CD haben wollen."
-
-#: ../../standalone/drakbackup_.c:1112
-msgid ""
-"Please enter your CD Writer device name\n"
-" ex: 0,1,0"
-msgstr ""
-"Bitte geben Sie den GerƤtenamen \n"
-"Ihres Brenners an, etwa ā€˛0,1,0ā€."
-
-#: ../../standalone/drakbackup_.c:1153
-msgid "Use tape to backup"
-msgstr "Auf Bandlaufwerk sichern"
-
-#: ../../standalone/drakbackup_.c:1156
-msgid "Please enter the device name to use for backup"
-msgstr "Bitte geben Sie den GerƤtenamen fĆ¼ Archivierung an."
-
-#: ../../standalone/drakbackup_.c:1162 ../../standalone/drakbackup_.c:1203
-#: ../../standalone/drakbackup_.c:2013
-msgid ""
-"Please enter the maximum size\n"
-" allowed for Drakbackup"
-msgstr ""
-"Bitte geben Sie die MaximalgrƶĆe \n"
-"fĆ¼r DrakBackup an."
-
-#: ../../standalone/drakbackup_.c:1195 ../../standalone/drakbackup_.c:2005
-msgid "Please enter the directory to save:"
-msgstr "Bitte geben Sie das Archivverzeichnis an:"
-
-#: ../../standalone/drakbackup_.c:1209 ../../standalone/drakbackup_.c:2019
-msgid "Use quota for backup files."
-msgstr "Quota fĆ¼r Backup-Datei verwenden."
-
-#: ../../standalone/drakbackup_.c:1267
-msgid "Network"
-msgstr "Netzwerk"
-
-#: ../../standalone/drakbackup_.c:1272
-msgid "CDROM / DVDROM"
-msgstr "CDROM/DVDROM"
-
-#: ../../standalone/drakbackup_.c:1277
-msgid "HardDrive / NFS"
-msgstr "Festplatte/NFS"
-
-#: ../../standalone/drakbackup_.c:1297 ../../standalone/drakbackup_.c:1301
-#: ../../standalone/drakbackup_.c:1305
-msgid "hourly"
-msgstr "stĆ¼ndlich"
-
-#: ../../standalone/drakbackup_.c:1298 ../../standalone/drakbackup_.c:1302
-#: ../../standalone/drakbackup_.c:1305
-msgid "daily"
-msgstr "tƤglich"
-
-#: ../../standalone/drakbackup_.c:1299 ../../standalone/drakbackup_.c:1303
-#: ../../standalone/drakbackup_.c:1305
-msgid "weekly"
-msgstr "wƶchendlich"
-
-#: ../../standalone/drakbackup_.c:1300 ../../standalone/drakbackup_.c:1304
-#: ../../standalone/drakbackup_.c:1305
-msgid "monthly"
-msgstr "monatlich"
-
-#: ../../standalone/drakbackup_.c:1312
-msgid "Use daemon"
-msgstr "DƤmon verwenden"
-
-#: ../../standalone/drakbackup_.c:1317
-msgid ""
-"Please choose the time \n"
-"interval between each backup"
-msgstr ""
-"Bitte wƤhlen Sie das Zeitintervall \n"
-"zwischen zwei Sicherungen."
-
-#: ../../standalone/drakbackup_.c:1323
-msgid ""
-"Please choose the\n"
-"media for backup."
-msgstr ""
-"Bitte wƤhlen Sie ein\n"
-"Sicherungsmedium."
-
-#: ../../standalone/drakbackup_.c:1327
-msgid "Use Hard Drive with daemon"
-msgstr "Festplatte mit DƤmin verwenden"
-
-#: ../../standalone/drakbackup_.c:1329
-msgid "Use FTP with daemon"
-msgstr "FTP mit DƤmon verwenden"
-
-#: ../../standalone/drakbackup_.c:1333
-msgid "Please be sure that the cron daemon is included in your services."
-msgstr "Stellen Sie sicher, dass der Cron-DƤmon als Dienst aktiviert ist."
-
-#: ../../standalone/drakbackup_.c:1369
-msgid "Send mail report after each backup to :"
-msgstr "E-Mail Bericht nach jedem Sicherungsvorgang an: "
-
-#: ../../standalone/drakbackup_.c:1411
-msgid "What"
-msgstr "Was"
-
-#: ../../standalone/drakbackup_.c:1416
-msgid "Where"
-msgstr "Wo"
-
-#: ../../standalone/drakbackup_.c:1421
-msgid "When"
-msgstr "Wann"
-
-#: ../../standalone/drakbackup_.c:1426
-msgid "More Options"
-msgstr "Mehr Parameter"
-
-#: ../../standalone/drakbackup_.c:1445 ../../standalone/drakbackup_.c:2801
-msgid "Drakbackup Configuration"
-msgstr "DrakBackup Konfiguration"
-
-#: ../../standalone/drakbackup_.c:1463
-msgid "Please choose where you want to backup"
-msgstr "Bitte wƤhlen Sie wohin Sie die Sicherungskopien machen wollen."
-
-#: ../../standalone/drakbackup_.c:1465
-msgid "on Hard Drive"
-msgstr "auf Festplatte"
-
-#: ../../standalone/drakbackup_.c:1476
-msgid "across Network"
-msgstr "Ć¼ber Netzwerk"
-
-#: ../../standalone/drakbackup_.c:1540
-msgid "Please choose what you want to backup"
-msgstr "Bitte wƤhlen Sie, was Sie sichern wollen"
-
-#: ../../standalone/drakbackup_.c:1541
-msgid "Backup system"
-msgstr "System sichern"
-
-#: ../../standalone/drakbackup_.c:1542
-msgid "Backup Users"
-msgstr "Benutzerkennzeichen sichern"
-
-#: ../../standalone/drakbackup_.c:1545
-msgid "Select user manually"
-msgstr "Benutzerkennzeichen auswƤhlen"
-
-#: ../../standalone/drakbackup_.c:1627
-msgid ""
-"\n"
-"Backup Sources: \n"
-msgstr ""
-"\n"
-"Sicherungsquellen: \n"
-
-#: ../../standalone/drakbackup_.c:1628
-msgid ""
-"\n"
-"- System Files:\n"
-msgstr ""
-"\n"
-"- Systemdateien:\n"
-
-#: ../../standalone/drakbackup_.c:1630
-msgid ""
-"\n"
-"- User Files:\n"
-msgstr ""
-"\n"
-"- Benutzerdateien:\n"
-
-#: ../../standalone/drakbackup_.c:1632
-msgid ""
-"\n"
-"- Other Files:\n"
-msgstr ""
-"\n"
-"- Sonstige Dateien:\n"
-
-#: ../../standalone/drakbackup_.c:1634
-#, c-format
-msgid ""
-"\n"
-"- Save on Hard drive on path : %s\n"
-msgstr ""
-"\n"
-"- Auf Festplatte sichern unter: %s\n"
-
-#: ../../standalone/drakbackup_.c:1635
-#, c-format
-msgid ""
-"\n"
-"- Save on FTP on host : %s\n"
-msgstr ""
-"\n"
-"- Via FTP sichern auf: %s\n"
-
-#: ../../standalone/drakbackup_.c:1636
-#, c-format
-msgid ""
-"\t\t user name: %s\n"
-"\t\t on path: %s \n"
-msgstr ""
-"\t\t Benutzer: %s\n"
-"\t\t Pfad: %s \n"
-
-#: ../../standalone/drakbackup_.c:1637
-msgid ""
-"\n"
-"- Options:\n"
-msgstr ""
-"\n"
-"- Optionen:\n"
-
-#: ../../standalone/drakbackup_.c:1638
-msgid "\tDo not include System Files\n"
-msgstr "\tKeine Systemdateien\n"
-
-#: ../../standalone/drakbackup_.c:1639
-msgid "\tBackups use tar and bzip2\n"
-msgstr "\tSicherungen verwenden ā€˛tarā€ und ā€˛bzip2ā€\n"
-
-#: ../../standalone/drakbackup_.c:1640
-msgid "\tBackups use tar and gzip\n"
-msgstr "\tSicherungen verwenden ā€˛tarā€ und ā€˛gzipā€\n"
-
-#: ../../standalone/drakbackup_.c:1641
-#, c-format
-msgid ""
-"\n"
-"- Daemon (%s) include :\n"
-msgstr ""
-"\n"
-"- DƤmon (%s) enthƤlt:\n"
-
-#: ../../standalone/drakbackup_.c:1642
-msgid "\t-Hard drive.\n"
-msgstr "\t- Festplatte.\n"
-
-#: ../../standalone/drakbackup_.c:1643
-msgid "\t-CDROM.\n"
-msgstr "\t- CD-ROM.\n"
-
-#: ../../standalone/drakbackup_.c:1644
-msgid "\t-Network by FTP.\n"
-msgstr "\t- Netzwerk per FTP.\n"
-
-#: ../../standalone/drakbackup_.c:1645
-msgid "\t-Network by SSH.\n"
-msgstr "\t- Netzwerk per SSH.\n"
-
-#: ../../standalone/drakbackup_.c:1647
-msgid "No configuration, please click Wizard or Advanced.\n"
-msgstr ""
-"Keine Konfiguration. WƤhlen Sie dein Assistenten oder Fortgeschritten.\n"
-
-#: ../../standalone/drakbackup_.c:1652
-msgid ""
-"List of data to restore:\n"
-"\n"
-msgstr ""
-"Liste der wiederherzustellenden Daten:\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:1753
-msgid ""
-"List of data corrupted:\n"
-"\n"
-msgstr ""
-"Liste der beschƤdigten Daten:\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:1755
-msgid "Please uncheck or remove it on next time."
-msgstr ""
-"Bitte entfernen Sie die Markierung oder lƶschen Sie sie das nƤchste Mal."
-
-#: ../../standalone/drakbackup_.c:1765
-msgid "Backup files are corrupted"
-msgstr "Die Sicherungen sind beschƤdigt."
-
-#: ../../standalone/drakbackup_.c:1786
-msgid " All your selectionned data have been "
-msgstr " Alle Ihre gewƤlhten Daten wurden "
-
-#: ../../standalone/drakbackup_.c:1787
-#, c-format
-msgid " Successfuly Restored on %s "
-msgstr " erfolgreich auf %s wiederhergestellt "
-
-#: ../../standalone/drakbackup_.c:1886
-msgid " Restore Configuration "
-msgstr " Konfiguration wiederherstellen "
-
-#: ../../standalone/drakbackup_.c:1904
-msgid "OK to restore the other files."
-msgstr "OK, die Ć¼brigen Dateien zu aktualisieren."
-
-#: ../../standalone/drakbackup_.c:1922
-msgid "User list to restore (only the most recent date per user is important)"
-msgstr ""
-"Liste wiederherzustellender Kennzeichen (letztes Datum per Kennzeichen ist "
-"wichtig)"
-
-#: ../../standalone/drakbackup_.c:1972
-msgid "Backup the system files before:"
-msgstr "Systemdateien sichern vor:"
-
-#: ../../standalone/drakbackup_.c:1974
-msgid "please choose the date to restore"
-msgstr "Bitte wƤhlen Sie, welches Datum wiederhergestellt werden soll."
-
-#: ../../standalone/drakbackup_.c:2002
-msgid "Use Hard Disk to backup"
-msgstr "Auf Festpaltte sichern"
-
-#: ../../standalone/drakbackup_.c:2083
-msgid "Restore from Hard Disk."
-msgstr "Von Festplatte wiederherstellen"
-
-#: ../../standalone/drakbackup_.c:2085
-msgid "Please enter the directory where backups are stored"
-msgstr "Bitte geben Sie das Verzeichnis an, in dem die Sicherungskopien liegen"
-
-#: ../../standalone/drakbackup_.c:2143
-msgid "Select another media to restore from"
-msgstr "WƤhlen Sie ein anderes Medium von dem Sie wiederherstellen wollen."
-
-#: ../../standalone/drakbackup_.c:2145
-msgid "Other Media"
-msgstr "Anderes Medium"
-
-#: ../../standalone/drakbackup_.c:2151
-msgid "Restore system"
-msgstr "System wiederherstellen"
-
-#: ../../standalone/drakbackup_.c:2152
-msgid "Restore Users"
-msgstr "Benutzerkennzeichen wiederherstellen"
-
-#: ../../standalone/drakbackup_.c:2153
-msgid "Restore Other"
-msgstr "Sonstiges wiederherstellen"
-
-#: ../../standalone/drakbackup_.c:2155
-msgid "select path to restore (instead of / )"
-msgstr "Auswahl des Pfades der wiederhergestellt werden soll (statt ā€˛/ā€"
-
-#: ../../standalone/drakbackup_.c:2159
-msgid "Do new backup before restore (only for incremental backups.)"
-msgstr ""
-"Erstelle Sicherung vor dem Wiederherstellen (nur fĆ¼r inkrementelle "
-"Sicherungen)."
-
-#: ../../standalone/drakbackup_.c:2160
-msgid "Remove user directories before restore."
-msgstr "Benutzerkennzeichen vor dem Wiederherstellen entfernen."
-
-#: ../../standalone/drakbackup_.c:2217
-msgid "Restore all backups"
-msgstr "Alle Sicherungen wiederherstellen"
-
-#: ../../standalone/drakbackup_.c:2225
-msgid "Custom Restore"
-msgstr "BenutzergefĆ¼hrte Wiederherstellung"
-
-#: ../../standalone/drakbackup_.c:2266 ../../standalone/drakbackup_.c:2291
-#: ../../standalone/drakbackup_.c:2312 ../../standalone/drakbackup_.c:2333
-#: ../../standalone/drakbackup_.c:2351 ../../standalone/drakbackup_.c:2383
-#: ../../standalone/drakbackup_.c:2399 ../../standalone/drakbackup_.c:2419
-#: ../../standalone/drakbackup_.c:2438 ../../standalone/drakbackup_.c:2460
-#: ../../standalone/drakfont_.c:575
-msgid "Help"
-msgstr "Hilfe"
-
-#: ../../standalone/drakbackup_.c:2269 ../../standalone/drakbackup_.c:2296
-#: ../../standalone/drakbackup_.c:2315 ../../standalone/drakbackup_.c:2336
-#: ../../standalone/drakbackup_.c:2354 ../../standalone/drakbackup_.c:2402
-#: ../../standalone/drakbackup_.c:2422 ../../standalone/drakbackup_.c:2441
-msgid "Previous"
-msgstr "<- ZurĆ¼ck"
-
-#: ../../standalone/drakbackup_.c:2271 ../../standalone/drakbackup_.c:2338
-#: ../../standalone/logdrake_.c:224
-msgid "Save"
-msgstr "Speichern"
-
-#: ../../standalone/drakbackup_.c:2317
-msgid "Build Backup"
-msgstr "Sicherung erstellen"
-
-#: ../../standalone/drakbackup_.c:2356 ../../standalone/drakbackup_.c:3033
-msgid "Restore"
-msgstr "Wiederherstellen"
-
-#: ../../standalone/drakbackup_.c:2404 ../../standalone/drakbackup_.c:2424
-#: ../../standalone/drakbackup_.c:2445
-msgid "Next"
-msgstr "Weiter ->"
-
-#: ../../standalone/drakbackup_.c:2478
-msgid ""
-"Please Build backup before to restore it...\n"
-" or verify that your path to save is correct."
-msgstr ""
-"Bitte erstellen Sie eine Sicherung, bevor Sie wiederherstellen kƶnnen.\n"
-"oder stellen Sie sicher, dass der Pfad zu den Sicherungen korrekt ist."
-
-#: ../../standalone/drakbackup_.c:2499
-msgid ""
-"Error durind sendmail\n"
-" your report mail was not sent\n"
-" Please configure sendmail"
-msgstr ""
-"Sendmail Fehler\n"
-" Ihre Bericht-Mail konnte nicht versandt werden.\n"
-" Bitte richten Sie Sendmail korrekt ein."
-
-#: ../../standalone/drakbackup_.c:2522
-msgid "Package List to Install"
-msgstr "Zu installierende Pakete"
-
-#: ../../standalone/drakbackup_.c:2550
-msgid ""
-"Error durind sending file via FTP.\n"
-" Please correct your FTP configuration."
-msgstr ""
-"Fehler bei der Ćertragung via FTP.\n"
-"Bitte korrigieren Sie Ihre FTP-Konfiguration."
-
-#: ../../standalone/drakbackup_.c:2573
-msgid "Please select data to restore..."
-msgstr "Bitte wƤhlen Sie die wiederherzustellenden Daten..."
-
-#: ../../standalone/drakbackup_.c:2594
-msgid "Please select media for backup..."
-msgstr "Bitte wƤhlen Sie ein Sicherungsmedium..."
-
-#: ../../standalone/drakbackup_.c:2616
-msgid "Please select data to backup..."
-msgstr "Bitte wƤhlen Sie die zu sichernden Daten..."
-
-#: ../../standalone/drakbackup_.c:2638
-msgid ""
-"No configuration file found \n"
-"please click Wizard or Advanced."
-msgstr ""
-"Keine Konfigurationsdatei gefunde.\n"
-"Bitte wƤhlen Sie den ā€˛Assistentenā€ oder ā€˛Erweitertā€."
-
-#: ../../standalone/drakbackup_.c:2659
-msgid "Under Devel ... please wait."
-msgstr "In Entwicklung, haben Sie noch etwas Geduld ..."
-
-#: ../../standalone/drakbackup_.c:2739
-msgid "Backup system files"
-msgstr "Systemdateien sichern"
-
-#: ../../standalone/drakbackup_.c:2741
-msgid "Backup user files"
-msgstr "Benutzerdateien sichern"
-
-#: ../../standalone/drakbackup_.c:2743
-msgid "Backup other files"
-msgstr "Andere Dateien sichern"
-
-#: ../../standalone/drakbackup_.c:2745 ../../standalone/drakbackup_.c:2776
-msgid "Total Progress"
-msgstr "Fortschritt"
-
-#: ../../standalone/drakbackup_.c:2767
-msgid "files sending by FTP"
-msgstr "DatenĆ¼agung via FTP"
-
-#: ../../standalone/drakbackup_.c:2771
-msgid "Sending files..."
-msgstr "Dateien Ć¼bertragen ..."
-
-#: ../../standalone/drakbackup_.c:2841
-msgid "Data list to include on CDROM."
-msgstr "Liste der Daten, die auf CD-ROM sollen."
-
-#: ../../standalone/drakbackup_.c:2899
-msgid "Please enter the cd writer speed"
-msgstr "Bitte geben Sie die CD-Brenngeschwindigkeit ein"
-
-#: ../../standalone/drakbackup_.c:2917
-msgid "Please enter your CD Writer device name (ex: 0,1,0)"
-msgstr "Bitte geben Sie den CD-Brenner an (etwa 0,1,0)"
-
-#: ../../standalone/drakbackup_.c:2923
-msgid "Please check if you want to include install boot on your CD."
-msgstr "Bitte markieren, falls Sie ā€˛install bootā€ auf Ihrer CD haben wollen."
-
-#: ../../standalone/drakbackup_.c:2989
-msgid "Backup Now from configuration file"
-msgstr "Jetzt Sicherung anhand der Konfigurationsdatei erstellen."
-
-#: ../../standalone/drakbackup_.c:2999
-msgid "View Backup Configuration."
-msgstr "Sicherungskonfiguration anzeiegen"
-
-#: ../../standalone/drakbackup_.c:3020
-msgid "Wizard Configuration"
-msgstr "AssistentengestĆ¼tzte Konfiguration"
-
-#: ../../standalone/drakbackup_.c:3024
-msgid "Advanced Configuration"
-msgstr "Expertenkonfiguration"
-
-#: ../../standalone/drakbackup_.c:3028
-msgid "Backup Now"
-msgstr "Jetzt sichern"
-
-#: ../../standalone/drakbackup_.c:3053
-msgid "Drakbackup"
-msgstr "DrakBackup"
-
-#: ../../standalone/drakbackup_.c:3104
-msgid ""
-"options description:\n"
-"\n"
-" In this step Drakbackup allow you to change:\n"
-"\n"
-" - The compression mode:\n"
-" \n"
-" If you check bzip2 compression, you will compress\n"
-" your data better than gzip (about 2-10 %).\n"
-" This option is not checked by default because\n"
-" this compression mode needs more time ( about 1000% more).\n"
-" \n"
-" - The update mode:\n"
-"\n"
-" This option will update your backup, but this\n"
-" option is not really useful because you need to\n"
-" decompress your backup before you can update it.\n"
-" \n"
-" - the .backupignore mode:\n"
-"\n"
-" Like with cvs, Drakbackup will ignore all references\n"
-" included in .backupignore files in each directories.\n"
-" ex: \n"
-" /*> cat .backupignore*/\n"
-" *.o\n"
-" *~\n"
-" ...\n"
-" \n"
-"\n"
-msgstr ""
-"Parameter:\n"
-"\n"
-" In diesem Schritt erlaubt Ihnen DrakBackup folgende Ć„nderungen:\n"
-"\n"
-" - Kompressionsmodus:\n"
-" \n"
-" Mit der ā€˛bzip2ā€ Kompression, werden Ihre Daten\n"
-" besser als mit ā€˛gzipā€ komprimiert (ca. 2-10 %).\n"
-" StandardmƤĆig ist dier Modus deaktiviert, da er\n"
-" mehr Zeit benƶtigt (bis zu 1.000%).\n"
-" \n"
-" - Aktualisierungsmodus:\n"
-"\n"
-" Mit dieser Option kƶnnen Sie Ihre Sicherungskopie\n"
-" aktuialisieren. Das ist momentan nicht sehr sinnvoll,\n"
-" da Sie Ihre Kopie auspacken mĆ¼ssen, um sie \n"
-" aktualisieren zu kƶnnen.\n"
-" \n"
-" - Der ā€˛.backupignoreā€-Mode:\n"
-"\n"
-" Vie bei dem Programm ā€˛cvsā€, wird DrakBackup alle\n"
-" Dateien/Ordner, die in der Datei ā€˛.backupignoreā€\n"
-" des aktuellen Verzeichnisses aufgefĆ¼hrt sind,\n"
-" von der Sicherung ausschlieĆen.\n"
-" Beispiel:\n"
-" > cat .backupignore\n"
-" *.o\n"
-" *~\n"
-" \n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3134
-msgid ""
-"\n"
-" Some errors during sendmail are caused by \n"
-" a bad configuration of postfix. To solve it you have to\n"
-" set myhostname or mydomain in /etc/postfix/main.cf\n"
-"\n"
-msgstr ""
-"\n"
-" Einige der Sendmail-Fehler beruhen auf einer\n"
-" fehlerhaften PostFix Konfiguration. Um sie zu\n"
-" beheben mĆ¼ssen Sie ā€˛myhostnameā€ oder ā€˛mydomainā€\n"
-" in ā€˛/etc/postfix/main.cfā€ korrigieren.\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3142
-msgid ""
-"options description:\n"
-"\n"
-" - Backup system files:\n"
-" \n"
-"\tThis option allows you to backup your /etc directory,\n"
-"\twhich contains all configuration files. Please be\n"
-"\tcareful during the restore step to not overwrite:\n"
-"\t\t/etc/passwd \n"
-"\t\t/etc/group \n"
-"\t\t/etc/fstab\n"
-"\n"
-" - Backup User files: \n"
-"\n"
-"\tThis option allows you select all users that you want \n"
-"\tto backup.\n"
-"\tTo preserve disk space, it is recommended that you \n"
-"\tdo not include web browser's cache.\n"
-"\n"
-" - Backup Other files: \n"
-"\n"
-"\tThis option allows you to add more data to save.\n"
-"\tWith the other backup it's not possible at the \n"
-"\tmoment to select select incremental backup.\t\t\n"
-" \n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerful \n"
-"\toption for backup. This option allows you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed afterward.\n"
-"\tThen you will be able, during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this option all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-msgstr ""
-"Parameter:\n"
-"\n"
-" - Systemdateien sichern:\n"
-" \n"
-"\tDiese Option erlaub es Ihnen Ihr ā€˛/etcā€ Verzeichnis\n"
-"\tmit den darin enthaltenen Konfigurationsdateien zu\n"
-"\tsichern. Seien Sie vorsichtig, damit Sie wƤhrend der\n"
-"\tWiederherstellung folgende Dateien nicht Ć¼berschreiben:\n"
-"\t\t/etc/passwd \n"
-"\t\t/etc/group \n"
-"\t\t/etc/fstab\n"
-"\n"
-" - Benutzerdateien sichern:\n"
-"\n"
-"\tDiese Option erlaubt es Ihnen die Benutzerkenn-\n"
-"\tzeichen zu wƤhlen, deren Daten gesichert werden\n"
-"\tsollen.\n"
-"\tEs ist sinnvoll, die Browser-Caches vom Sichern\n"
-"\tauszunehmen, um Sicherungsplatz zu sparen.\n"
-"\n"
-" - Andere Dateien sichern:\n"
-"\n"
-"\tMit dieser Option kƶnnen Sie weitere Dateienn\n"
-"\tzum Sichern vorsehen. Sollten Sie diese Version\n"
-"\tverwenden, kƶnnen Sie momentan keine inkre-\n"
-"\tmentellen Aktualisierungen vornehmen.\n"
-"\n"
-" - Inkrementelle Archivierung:\n"
-"\n"
-"\tInkrementelle Archivierung ist die mƤchtigste\n"
-"\tder vorhandenen Optionen. Sie erlaubt es\n"
-"\tIhnen beim ersten Aufruf eine komplette\n"
-"\tSicherungskopie Ihres Systems zu erstellen und\n"
-"\tanschlieĆnd nur noch Ć„nderungen zu speichern.\n"
-"\tSomit sind Sie in der Lage, wƤhrend des Wieder-\n"
-"\therstellens, den Datenbestand eines bestimmten\n"
-"\tZeitpunkts zu erzeugen.\n"
-"\tSollten sie diese Alernative nicht gewƤhlt haben,\n"
-"\twerden die alten Sicherungen vor dem Ertellen\n"
-"\teiner neuen Sicherungskopie gelƶscht.\n"
-"\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3181
-msgid ""
-"restore description:\n"
-" \n"
-"Only the most recent date will be used ,because with incremental \n"
-"backups it is necesarry to restore one by one each older backups.\n"
-"\n"
-"So if you don't like to restore an user please unselect all his\n"
-"check box.\n"
-"\n"
-"Otherwise, you are able to select only one of this\n"
-"\n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerfull \n"
-"\toption to use backup, this option allow you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed after.\n"
-"\tSo you will be able during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this options all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3207 ../../standalone/drakbackup_.c:3282
-msgid ""
-" Copyright (C) 2001 MandrakeSoft by DUPONT Sebastien <dupont_s\\@epita.fr>"
-msgstr ""
-" Copyright (C) 2001 MandrakeSoft by Sebastien DUPONT <dupont_s\\@epita.fr>"
-
-#: ../../standalone/drakbackup_.c:3209 ../../standalone/drakbackup_.c:3284
-msgid ""
-" This program is free software; you can redistribute it and/or modify\n"
-" it under the terms of the GNU General Public License as published by\n"
-" the Free Software Foundation; either version 2, or (at your option)\n"
-" any later version.\n"
-"\n"
-" This program is distributed in the hope that it will be useful,\n"
-" but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-" GNU General Public License for more details.\n"
-"\n"
-" You should have received a copy of the GNU General Public License\n"
-" along with this program; if not, write to the Free Software\n"
-" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
-msgstr ""
-" This program is free software; you can redistribute it and/or modify\n"
-" it under the terms of the GNU General Public License as published by\n"
-" the Free Software Foundation; either version 2, or (at your option)\n"
-" any later version.\n"
-"\n"
-" This program is distributed in the hope that it will be useful,\n"
-" but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-" GNU General Public License for more details.\n"
-"\n"
-" You should have received a copy of the GNU General Public License\n"
-" along with this program; if not, write to the Free Software\n"
-" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
-
-#: ../../standalone/drakbackup_.c:3223
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select: \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, DrakBackup will remove \n"
-" your original directory and verify that all \n"
-" backup files are not corrupted. It is recommended \n"
-" you do a last backup before restoring.\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3261
-msgid ""
-"options description:\n"
-"\n"
-"Please be careful when you are using ftp backup, because only \n"
-"backups that are already built are sent to the server.\n"
-"So at the moment, you need to build the backup on your hard \n"
-"drive before sending it to the server.\n"
-"\n"
-msgstr ""
-"Parameter:\n"
-"\n"
-"Seien Sie vorsichtig, wenn Sie FTP-Sicherungskopien verwenden, \n"
-"da nur vollstƤndig erstelle Sicherungskopien sum Server kopiert.\n"
-"werden. Die Sicherungskopie muss also erst lokal auf Ihrem \n"
-"Rechner erstellt werden.\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3270
-msgid ""
-"\n"
-"Restore Backup Problems:\n"
-"\n"
-"During the restore step, Drakbackup will verify all your\n"
-"backup files before restoring them.\n"
-"Before the restore, Drakbackup will remove \n"
-"your original directory, and you will loose all your \n"
-"data. It is important to be careful and not modify the \n"
-"backup data files by hand.\n"
-msgstr ""
-"\n"
-"Wiederherstellungsprobleme:\n"
-"\n"
-"DrakBackup wird bei der Wiederherstellung alle Dateien \n"
-"kontrollieren, bevor sie wiederhergestellt werden.\n"
-"Da vor der Wiederherstellung alle Dateien im \n"
-"Zielverzeichnis von DrakBackup gelƶscht werden, \n"
-"gehen alle darin entghaltenen Daten verloren! \n"
-"Seien Sie daher vorsichtig und Ƥndern Sie die Sicherungskopien \n"
-"nicht manuell.\n"
-
-#: ../../standalone/drakbackup_.c:3298
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, Drakbackup will remove\n"
-" your original directory and verify that all\n"
-" backup files are not corrupted. It is recommended\n"
-" you do a last backup before restoring.\n"
-" \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakboot_.c:58
-#, c-format
-msgid "Installation of %s failed. The following error occured:"
-msgstr "Die Installation von %s schlug Fehl. Folgender Fehler trat auf:"
-
-#: ../../standalone/drakfont_.c:229
-msgid "Search installed fonts"
-msgstr "Suche installierte Schriften"
-
-#: ../../standalone/drakfont_.c:231
-msgid "Unselect fonts installed"
-msgstr "Auswahl installierter Schriften zurĆ¼cksetzen"
-
-#: ../../standalone/drakfont_.c:252
-msgid "parse all fonts"
-msgstr "Alle Schriften analysieren"
-
-#: ../../standalone/drakfont_.c:253
-msgid "no fonts found"
-msgstr "Keine Schriften gefunden"
-
-#: ../../standalone/drakfont_.c:261 ../../standalone/drakfont_.c:303
-#: ../../standalone/drakfont_.c:352 ../../standalone/drakfont_.c:410
-#: ../../standalone/drakfont_.c:417 ../../standalone/drakfont_.c:443
-#: ../../standalone/drakfont_.c:455 ../../standalone/drakfont_.c:468
-msgid "done"
-msgstr "Fertig"
-
-#: ../../standalone/drakfont_.c:265
-msgid "could not find any font in your mounted partitions"
-msgstr "Ich konnte keine Schriften in Ihren eingehƤngten Partitionen finden"
-
-#: ../../standalone/drakfont_.c:301
-msgid "Reselect correct fonts"
-msgstr "Neuwahl korrekter Schriften"
-
-#: ../../standalone/drakfont_.c:304
-msgid "could not find any font.\n"
-msgstr "Konnte keine Schriften finden.\n"
-
-#: ../../standalone/drakfont_.c:327
-msgid "Search fonts in installed list"
-msgstr "Suche installierter Schriften"
-
-#: ../../standalone/drakfont_.c:350
-msgid "Fonts copy"
-msgstr "Kopiere Schriften"
-
-#: ../../standalone/drakfont_.c:353
-msgid "True Type fonts installation"
-msgstr "Installation von TrueType Schriften"
-
-#: ../../standalone/drakfont_.c:357
-msgid "please wait during ttmkfdir..."
-msgstr "Bitte warten Sie ttmkfdir arbeitet ..."
-
-#: ../../standalone/drakfont_.c:359
-msgid "True Type install done"
-msgstr "TrueType Installation beendet"
-
-#: ../../standalone/drakfont_.c:366 ../../standalone/drakfont_.c:382
-msgid "Fonts conversion"
-msgstr "Konvertieren der Schriften"
-
-#: ../../standalone/drakfont_.c:370 ../../standalone/drakfont_.c:386
-#: ../../standalone/drakfont_.c:406
-msgid "type1inst building"
-msgstr "Erzeuge ā€˛type1instā€"
-
-#: ../../standalone/drakfont_.c:375 ../../standalone/drakfont_.c:390
-msgid "Ghostscript referencing"
-msgstr "Ghostscriptreferenz"
-
-#: ../../standalone/drakfont_.c:397
-msgid "ttf fonts conversion"
-msgstr "ttf-Schriftkonvertierung"
-
-#: ../../standalone/drakfont_.c:401
-msgid "pfm fonts conversion"
-msgstr "pfm-Schriftkonvertierung"
-
-#: ../../standalone/drakfont_.c:411
-msgid "Suppress temporary Files"
-msgstr "TemporƤre Dateien lƶschen"
-
-#: ../../standalone/drakfont_.c:414
-msgid "Restart XFS"
-msgstr "Neustart des X-FontServers"
-
-#: ../../standalone/drakfont_.c:453 ../../standalone/drakfont_.c:463
-msgid "Suppress Fonts Files"
-msgstr "Schriftdateien lƶschen"
-
-#: ../../standalone/drakfont_.c:465
-msgid "xfs restart"
-msgstr "xfs Neustart"
-
-#: ../../standalone/drakfont_.c:472 ../../standalone/drakfont_.c:760
-msgid ""
-"Before installing any fonts, be sure that you have the right to use and "
-"install them on your system.\n"
-"\n"
-"-You can install the fonts using the normal way. In rare cases, bogus fonts "
-"may hang up your X Server."
-msgstr ""
-"Stellen Sie sicher, das Sie das Recht haben, die Schriften die Sie \n"
-"in Ihr System einbinden wollen, zu verwenden.\n"
-"\n"
-"- Sie kƶnnen die Schriften auf normalem Weg einbinden. In seltenen FƤllen \n"
-"kƶnnen defekte Schriften den X-Server lahmlegen."
-
-#: ../../standalone/drakfont_.c:547
-msgid "Fonts Importation"
-msgstr "Schriften einbinden"
-
-#: ../../standalone/drakfont_.c:562
-msgid "Get Windows Fonts"
-msgstr "Windows-Schriften verwenden"
-
-#: ../../standalone/drakfont_.c:564
-msgid "Uninstall Fonts"
-msgstr "Schiften deinstallieren"
-
-#: ../../standalone/drakfont_.c:568
-msgid "Advanced Options"
-msgstr "Erweiterte Einstellungen"
-
-#: ../../standalone/drakfont_.c:570
-msgid "Font List"
-msgstr "Font-Liste"
-
-#: ../../standalone/drakfont_.c:739
-msgid "Choose the applications that will support the fonts :"
-msgstr "WƤhlen Sie die Programme, die die Schriften verwenden sollen:"
-
-#: ../../standalone/drakfont_.c:743
-msgid "Ghostscript"
-msgstr "Ghostscript"
-
-#: ../../standalone/drakfont_.c:747
-msgid "StarOffice"
-msgstr "StarOffice"
-
-#: ../../standalone/drakfont_.c:751
-msgid "Abiword"
-msgstr "Abiword"
-
-#: ../../standalone/drakfont_.c:755
-msgid "Generic Printers"
-msgstr "Generische Drucker"
-
-#: ../../standalone/drakfont_.c:792
-msgid "Select the font file or directory and click on 'Add'"
-msgstr ""
-"WƤhlen Sie eine Schriftdatei bzw. ein Verzeichnis und betƤtigen Sie "
-"ā€˛HinzufĆ¼genā€"
-
-#: ../../standalone/drakfont_.c:828
-msgid "Install List"
-msgstr "Liste installieren"
-
-#: ../../standalone/drakfont_.c:858
-msgid "click here if you are sure."
-msgstr "Klicken Sie hier, wenn Sie sicher sind."
-
-#: ../../standalone/drakfont_.c:860
-msgid "here if no."
-msgstr "Hier, falls nicht."
-
-#: ../../standalone/drakfont_.c:897
-msgid "Unselected All"
-msgstr "Markierung lƶschen"
-
-#: ../../standalone/drakfont_.c:899
-msgid "Selected All"
-msgstr "Alle auswƤhlen"
-
-#: ../../standalone/drakfont_.c:901
-msgid "Remove List"
-msgstr "Liste entfernen"
-
-#: ../../standalone/drakfont_.c:919 ../../standalone/drakfont_.c:939
-msgid "Initials tests"
-msgstr "Vortests"
-
-#: ../../standalone/drakfont_.c:920
-msgid "Copy fonts on your system"
-msgstr "Schriften auf Ihren Rechner kopieren"
-
-#: ../../standalone/drakfont_.c:921
-msgid "Install & convert Fonts"
-msgstr "Installiere und konvertiere Fonts"
-
-#: ../../standalone/drakfont_.c:922
-msgid "Post Install"
-msgstr "Nach der Installation"
-
-#: ../../standalone/drakfont_.c:940
-msgid "Remove fonts on your system"
-msgstr "Entfernen von Schriftarten auf Ihrem Rechner"
-
-#: ../../standalone/drakfont_.c:941
-msgid "Post Uninstall"
-msgstr "Nach dem Entfernen"
-
-#: ../../standalone/drakgw_.c:43 ../../standalone/drakgw_.c:200
-msgid "Internet Connection Sharing"
-msgstr "Teilen der Internet-Verbindung"
-
-#: ../../standalone/drakgw_.c:138
-msgid "Internet Connection Sharing currently enabled"
-msgstr "Teilen der Internetverbindung momentan eingeschaltet."
-
-#: ../../standalone/drakgw_.c:139
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently enabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-"Es wurde bereits eine geteilte Internet-Verbindung aufgesetzt.\n"
-"Momentan ist sie aktiviert.\n"
-"\n"
-"Was wollen Sie tun?"
-
-#: ../../standalone/drakgw_.c:143
-msgid "disable"
-msgstr "deaktivieren"
-
-#: ../../standalone/drakgw_.c:143 ../../standalone/drakgw_.c:168
-msgid "dismiss"
-msgstr "Verwerfen"
-
-#: ../../standalone/drakgw_.c:143 ../../standalone/drakgw_.c:168
-msgid "reconfigure"
-msgstr "neu konfigurieren"
-
-#: ../../standalone/drakgw_.c:146
-msgid "Disabling servers..."
-msgstr "Server deaktivieren ..."
-
-#: ../../standalone/drakgw_.c:154
-msgid "Internet connection sharing is now disabled."
-msgstr "Teilen der Internet-Verbindung ist nun abgeschaltet."
-
-#: ../../standalone/drakgw_.c:163
-msgid "Internet Connection Sharing currently disabled"
-msgstr "Teilen der Internet-Verbindung momentan abgeschaltet."
-
-#: ../../standalone/drakgw_.c:164
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently disabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-"Es wurde bereits eine geteilte Internet-Verbindung aufgesetzt.\n"
-"Momentan ist sie deaktiviert.\n"
-"\n"
-"Was wollen Sie tun?"
-
-#: ../../standalone/drakgw_.c:168
-msgid "enable"
-msgstr "aktivieren"
-
-#: ../../standalone/drakgw_.c:175
-msgid "Enabling servers..."
-msgstr "Server aktivieren ..."
-
-#: ../../standalone/drakgw_.c:180
-msgid "Internet connection sharing is now enabled."
-msgstr "Teilen der Internetverbindung ist nun eingeschaltet."
-
-#: ../../standalone/drakgw_.c:201
-msgid ""
-"You are about to configure your computer to share its Internet connection.\n"
-"With that feature, other computers on your local network will be able to use "
-"this computer's Internet connection.\n"
-"\n"
-"Note: you need a dedicated Network Adapter to set up a Local Area Network "
-"(LAN)."
-msgstr ""
-"Sie sind dabei, Ihren Rechner zu konfigurieren, dass er die eingerichtete \n"
-"Internetverbindung mit einem lokalem Netzwerk teilt.\n"
-"\n"
-"Anmerkung: Sie benƶtigen eine Netzwerkkarte, mit deren Hilfe Sie ein \n"
-"lokales Netz (LAN) aufsetzen kƶnnen."
-
-#: ../../standalone/drakgw_.c:227
-#, c-format
-msgid "Interface %s (using module %s)"
-msgstr "Schnittstelle %s (verwendet Modul %s)"
-
-#: ../../standalone/drakgw_.c:228
-#, c-format
-msgid "Interface %s"
-msgstr "Schnittstelle: %s"
-
-#: ../../standalone/drakgw_.c:236
-msgid "No network adapter on your system!"
-msgstr "Sie haben keine Netzwerkkarte!"
-
-#: ../../standalone/drakgw_.c:237
-msgid ""
-"No ethernet network adapter has been detected on your system. Please run the "
-"hardware configuration tool."
-msgstr ""
-"Ihr Rechner hat keine konfigurierte Netzwerkkarte. Bitte verwenden Sie erst "
-"HardDrake, bevor Sie weiter machen."
-
-#: ../../standalone/drakgw_.c:243
-msgid "Network interface"
-msgstr "Netzwerkkarte"
-
-#: ../../standalone/drakgw_.c:244
-#, c-format
-msgid ""
-"There is only one configured network adapter on your system:\n"
-"\n"
-"%s\n"
-"\n"
-"I am about to setup your Local Area Network with that adapter."
-msgstr ""
-"Sie haben nur eine konfiguriertes NetzwerkgerƤt an Ihrem Rechner:\n"
-"\n"
-"%s\n"
-"\n"
-"Ich setze ihr lokales Netz damit auf."
-
-#: ../../standalone/drakgw_.c:253
-msgid ""
-"Please choose what network adapter will be connected to your Local Area "
-"Network."
-msgstr ""
-"Bitte wƤhlen Sie die Netzwerkkarte, die mit Ihrem lokalen Netzwerk \n"
-"verbunden ist."
-
-#: ../../standalone/drakgw_.c:271
-msgid "Network interface already configured"
-msgstr "Ihr Netzwerk ist bereits konfiguriert"
-
-#: ../../standalone/drakgw_.c:272
-#, c-format
-msgid ""
-"Warning, the network adapter (%s) is already configured.\n"
-"\n"
-"Do you want an automatic re-configuration?\n"
-"\n"
-"You can do it manually but you need to know what you're doing."
-msgstr ""
-"Warnung, das NetzwerkgerƤt ā€˛%sā€ ist bereits konfiguriert.\n"
-"\n"
-"Wollen Sie eine automatische Neukonfiguration?\n"
-"\n"
-"Sie kƶnnen auch eine manuelle Einrichtung vornehmen - dafĆ¼r sollten Sie "
-"jedoch wissen, wie das funktioniert."
-
-#: ../../standalone/drakgw_.c:277
-msgid "Automatic reconfiguration"
-msgstr "Automatische Rekonfiguration"
-
-#: ../../standalone/drakgw_.c:278
-msgid "Show current interface configuration"
-msgstr "Aktuelle Schnittstellenkonfiguration anzeigen"
-
-#: ../../standalone/drakgw_.c:280
-#, c-format
-msgid ""
-"Current configuration of `%s':\n"
-"\n"
-"Network: %s\n"
-"IP address: %s\n"
-"IP attribution: %s\n"
-"Driver: %s"
-msgstr ""
-"Aktuelle Konfiguration von ā€˛%sā€:\n"
-"\n"
-"Netzwerk: %s\n"
-"IP-Adresse: %s\n"
-"IP-Eigenschaften: %s\n"
-"Treiber: %s"
-
-#: ../../standalone/drakgw_.c:292
-msgid ""
-"I can keep your current configuration and assume you already set up a DHCP "
-"server; in that case please verify I correctly read the C-Class Network that "
-"you use for your local network; I will not reconfigure it and I will not "
-"touch your DHCP server configuration.\n"
-"\n"
-"Else, I can reconfigure your interface and (re)configure a DHCP server for "
-"you.\n"
-"\n"
-msgstr ""
-"Ich kann Ihre aktuelle Konfiguration beibehalten und annehmen, dass Sie "
-"bereits einen DHCP-Server eingerichtet haben. Stellen Sie in diesem Fall "
-"sicher, dass ich Ihr Klasse-C Netzwerk korrekt erkannt habe. Ich werde es "
-"weder neukonfigurieren, noch Ihre DHCP-Konfiguration Ƥndern.\n"
-"\n"
-"Ich kann jedoch auch Ihre Schnittstelle neu konfigurieren und einen DHCP-"
-"Server fĆ¼r Sie aufsetzen.\n"
-"\n"
-
-#: ../../standalone/drakgw_.c:297
-msgid "C-Class Local Network"
-msgstr "Lokales Klasse-C Netzwerk"
-
-#: ../../standalone/drakgw_.c:298
-msgid "(This) DHCP Server IP"
-msgstr "(Diese) DHCP-Server IP"
-
-#: ../../standalone/drakgw_.c:299
-msgid "Re-configure interface and DHCP server"
-msgstr "Neu konfigurieren des GerƤts und des DHCP-Servers"
-
-#: ../../standalone/drakgw_.c:306
-msgid "The Local Network did not finish with `.0', bailing out."
-msgstr "Das lokale Netzwerk endet nicht auf ā€˛.0ā€ - bereinige."
-
-#: ../../standalone/drakgw_.c:317
-#, c-format
-msgid "Potential LAN address conflict found in current config of %s!\n"
-msgstr ""
-"Es liegt ein mƶglicher LAN-Adressen Konflikt in der Konfiguration\n"
-"von %s vor!\n"
-
-#: ../../standalone/drakgw_.c:325 ../../standalone/drakgw_.c:331
-msgid "Firewalling configuration detected!"
-msgstr "Ich habe eine Firewall-Konfiguration gefunden!"
-
-#: ../../standalone/drakgw_.c:326 ../../standalone/drakgw_.c:332
-msgid ""
-"Warning! An existing firewalling configuration has been detected. You may "
-"need some manual fix after installation."
-msgstr ""
-"WARNUNG: Ich habe eine eine Firewall-Konfiguration gefunden. \n"
-"Mƶglicherweise mĆ¼ssen Sie nach der Installation einige Einstellungen \n"
-"von Hand vornehmen."
-
-#: ../../standalone/drakgw_.c:340
-msgid "Configuring..."
-msgstr "Konfigurieren ..."
-
-#: ../../standalone/drakgw_.c:341
-msgid "Configuring scripts, installing software, starting servers..."
-msgstr "Skripte konfigurieren, Software installieren, Dienste starten ..."
-
-#: ../../standalone/drakgw_.c:378
-#, c-format
-msgid "Problems installing package %s"
-msgstr "Probleme beim Installieren von Paket %s"
-
-#: ../../standalone/drakgw_.c:672
-msgid ""
-"Everything has been configured.\n"
-"You may now share Internet connection with other computers on your Local "
-"Area Network, using automatic network configuration (DHCP)."
-msgstr ""
-"Es wurde alles eingerichtet.\n"
-"Sie kƶnnen Ihre Internetverbindung nun anderen Rechnern in Ihrem \n"
-"lokalen Netz mittels automatischer Netzwerk-Konfiguration (DHCP) \n"
-"teilen."
-
-#: ../../standalone/drakgw_.c:689
-msgid "The setup has already been done, but it's currently disabled."
-msgstr ""
-"Die Einstellungen wurden bereits vorgenommen, sie sind nur nicht aktiviert."
-
-#: ../../standalone/drakgw_.c:690
-msgid "The setup has already been done, and it's currently enabled."
-msgstr "Die Einstellungen wurden bereits vorgenommen und sind aktiv."
-
-#: ../../standalone/drakgw_.c:691
-msgid "No Internet Connection Sharing has ever been configured."
-msgstr "Teilen der Internetverbindung wurde noch nicht konfiguriert."
-
-#: ../../standalone/drakgw_.c:696
-msgid "Internet connection sharing configuration"
-msgstr "Teilen der Internetverbindung - Konfiguration"
-
-#: ../../standalone/drakgw_.c:703
-#, c-format
-msgid ""
-"Welcome to the Internet Connection Sharing utility!\n"
-"\n"
-"%s\n"
-"\n"
-"Click on Configure to launch the setup wizard."
-msgstr ""
-"Willkommen zu DrakGW -\n"
-"das Werkzeug zum Teilen Ihrer Internetverbindung\n"
-"\n"
-"%s\n"
-"\n"
-"WƤhlen Sie ā€˛Konfigurierenā€ wenn Sie den Assistenten starten wollen."
-
-#: ../../standalone/draknet_.c:80
-#, c-format
-msgid "Network configuration (%d adapters)"
-msgstr "Netzwerk Konfiguration (%d Karten)"
-
-#: ../../standalone/draknet_.c:87 ../../standalone/draknet_.c:595
-msgid "Profile: "
-msgstr "Profil: "
-
-#: ../../standalone/draknet_.c:95
-msgid "Del profile..."
-msgstr "Profil lƶschen..."
-
-#: ../../standalone/draknet_.c:101
-msgid "Profile to delete:"
-msgstr "Zu lƶschendes Profil: "
-
-#: ../../standalone/draknet_.c:129
-msgid "New profile..."
-msgstr "Neues Profil..."
-
-#: ../../standalone/draknet_.c:135
-msgid ""
-"Name of the profile to create (the new profile is created as a copy of the "
-"current one) :"
-msgstr "Name des neuen Profils (es wird als Kopie des aktuellen erstellt):"
-
-#: ../../standalone/draknet_.c:161
-msgid "Hostname: "
-msgstr "Rechnername: "
-
-#: ../../standalone/draknet_.c:168
-msgid "Internet access"
-msgstr "Internetzugang"
-
-#: ../../standalone/draknet_.c:181
-msgid "Type:"
-msgstr "Typ:"
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-msgid "Gateway:"
-msgstr "Gateway:"
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-msgid "Interface:"
-msgstr "Schnittstelle:"
-
-#: ../../standalone/draknet_.c:195
-msgid "Status:"
-msgstr "Status:"
-
-#: ../../standalone/draknet_.c:202
-msgid "Wait please"
-msgstr "Bitte Warten"
-
-#: ../../standalone/draknet_.c:220
-msgid "Configure Internet Access..."
-msgstr "Internet-Zugang konfigurieren"
-
-#: ../../standalone/draknet_.c:227 ../../standalone/draknet_.c:449
-msgid "LAN configuration"
-msgstr "LAN Konfiguration"
-
-#: ../../standalone/draknet_.c:232
-msgid "Driver"
-msgstr "Treiber"
-
-#: ../../standalone/draknet_.c:232
-msgid "Interface"
-msgstr "Schnittstelle"
-
-#: ../../standalone/draknet_.c:232
-msgid "Protocol"
-msgstr "Protokoll"
-
-#: ../../standalone/draknet_.c:232
-msgid "State"
-msgstr "Status"
-
-#: ../../standalone/draknet_.c:244
-msgid "Configure Local Area Network..."
-msgstr "Netzwerk konfigurieren"
-
-#: ../../standalone/draknet_.c:256
-msgid "Click here to launch the wizard ->"
-msgstr "Hier starten Sie den Assistenten ->"
-
-#: ../../standalone/draknet_.c:257
-msgid "Wizard..."
-msgstr "Assistent..."
-
-#: ../../standalone/draknet_.c:283
-msgid "Apply"
-msgstr "Anwenden"
-
-#: ../../standalone/draknet_.c:302
-msgid "Please Wait... Applying the configuration"
-msgstr "Einen Moment ... ich richte die Konfiguration ein"
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-msgid "Connected"
-msgstr "Verbunden"
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-msgid "Not connected"
-msgstr "Nicht Verbunden"
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Connect..."
-msgstr "Verbinden ..."
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Disconnect..."
-msgstr "Trenne Verbindung ..."
-
-#: ../../standalone/draknet_.c:404
-msgid ""
-"Warning, another Internet connection has been detected, maybe using your "
-"network"
-msgstr ""
-"WARNUNG: Es wurde bereits eine Internetverbindung gefunden. Vielleicht nutzt "
-"diese ihr Netzwerk."
-
-#: ../../standalone/draknet_.c:431
-msgid ""
-"You don't have any configured interface.\n"
-"Configure them first by clicking on 'Configure'"
-msgstr ""
-"Sie haben noch keine Schnittstelle eingerichtet.\n"
-"Sie kƶnnen dies tun, indem Sie die SchaltflƤche \n"
-"ā€˛Konfigurierenā€ betƤtigen."
-
-#: ../../standalone/draknet_.c:453
-msgid "LAN Configuration"
-msgstr "LAN Konfiguration"
-
-#: ../../standalone/draknet_.c:464
-#, c-format
-msgid "Adapter %s: %s"
-msgstr "Adapter %s: %s"
-
-#: ../../standalone/draknet_.c:470
-msgid "Boot Protocol"
-msgstr "Boot-Protokoll"
-
-#: ../../standalone/draknet_.c:471
-msgid "Started on boot"
-msgstr "Beim Hochfahren gestartet"
-
-#: ../../standalone/draknet_.c:472
-msgid "DHCP client"
-msgstr "DHCP Klient"
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-msgid "activate now"
-msgstr "Jetzt aktivieren"
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-msgid "deactivate now"
-msgstr "Jetzt deaktivieren"
-
-#: ../../standalone/draknet_.c:503
-msgid ""
-"This interface has not been configured yet.\n"
-"Launch the configuration wizard in the main window"
-msgstr ""
-"Diese Schnittstelle wurde noch nicht eingerichtet.\n"
-"Starten Sie den Konfigurationsassistenten im Hauptfenster."
-
-#: ../../standalone/draknet_.c:560
-msgid ""
-"You don't have any internet connection.\n"
-"Create one first by clicking on 'Configure'"
-msgstr ""
-"Sie haben noch keine Internetverbindung eingerichtet.\n"
-"Sie kƶnnen dies tun, indem Sie die SchaltflƤche \n"
-"ā€˛Konfigurierenā€ betƤtigen."
-
-#: ../../standalone/draknet_.c:584
-msgid "Internet connection configuration"
-msgstr "Konfiguration der Internetverbindung"
-
-#: ../../standalone/draknet_.c:588
-msgid "Internet Connection Configuration"
-msgstr "Konfiguration der Internetverbindung"
-
-#: ../../standalone/draknet_.c:597
-msgid "Connection type: "
-msgstr "Verbindungstyp: "
-
-#: ../../standalone/draknet_.c:603
-msgid "Parameters"
-msgstr "Parameter"
-
-#: ../../standalone/draknet_.c:621
-msgid "Gateway"
-msgstr "Gateway"
-
-#: ../../standalone/draknet_.c:630
-msgid "Ethernet Card"
-msgstr "Netzwerkkarte"
-
-#: ../../standalone/draknet_.c:631
-msgid "DHCP Client"
-msgstr "DHCP-Klient"
-
-#: ../../standalone/draksec_.c:31
-msgid "Setting security level"
-msgstr "Sicherheitsebene einstellen"
-
-#: ../../standalone/drakxconf_.c:47
-msgid "Control Center"
-msgstr "Kontrollzentrum"
-
-#: ../../standalone/drakxconf_.c:48
-msgid "Choose the tool you want to use"
-msgstr "WƤhlen Sie das Werkzeug, das Sie verwenden wollen"
-
-# ../../standalone/drakxtv_.c:37Ƨ
-#: ../../standalone/drakxtv_.c:48
-msgid "Canada (cable)"
-msgstr "Kanada (Kabel)"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (bcast)"
-msgstr "USA (terrestrisch)"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (cable)"
-msgstr "USA (Kabel)"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (cable-hrc)"
-msgstr "USA (Kabel-hrc)"
-
-#: ../../standalone/drakxtv_.c:49
-msgid "China (bcast)"
-msgstr "China (terrestrisch)"
-
-#: ../../standalone/drakxtv_.c:49
-msgid "Japan (bcast)"
-msgstr "Japan (terrestrisch)"
-
-#: ../../standalone/drakxtv_.c:49
-msgid "Japan (cable)"
-msgstr "Japan (Kabel)"
-
-#: ../../standalone/drakxtv_.c:50
-msgid "East Europe"
-msgstr "Osteuropa"
-
-#: ../../standalone/drakxtv_.c:50
-msgid "Ireland"
-msgstr "Irland"
-
-#: ../../standalone/drakxtv_.c:50
-msgid "West Europe"
-msgstr "Westeuropa"
-
-#: ../../standalone/drakxtv_.c:51
-msgid "Australia"
-msgstr "Australien"
-
-#: ../../standalone/drakxtv_.c:51
-msgid "Newzealand"
-msgstr "Neuseeland"
-
-#: ../../standalone/drakxtv_.c:52
-msgid "South Africa"
-msgstr "SĆ¼dafrika"
-
-#: ../../standalone/drakxtv_.c:53
-msgid "Argentina"
-msgstr "Argentinien"
-
-#: ../../standalone/drakxtv_.c:58
-msgid ""
-"Please,\n"
-"type in your tv norm and country"
-msgstr "Bitte geben Sie Ihre Fernsehnorm und Region ein"
-
-#: ../../standalone/drakxtv_.c:60
-msgid "TV norm :"
-msgstr "Fernsehnorm:"
-
-#: ../../standalone/drakxtv_.c:61
-msgid "Area :"
-msgstr "Region:"
-
-#: ../../standalone/drakxtv_.c:65
-msgid "Scanning for TV channels in progress ..."
-msgstr "Sendersuche ..."
-
-#: ../../standalone/drakxtv_.c:72
-msgid "Scanning for TV channels"
-msgstr "Sendersuche..."
-
-#: ../../standalone/drakxtv_.c:83
-msgid "No TV Card detected!"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:84
-msgid ""
-"No TV Card has been detected on your machine. Please verify that a Linux-"
-"supported Video/TV Card is correctly plugged in.\n"
-"\n"
-"\n"
-"You can visit our hardware database at:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/hardware.php3"
-msgstr ""
-
-#: ../../standalone/keyboarddrake_.c:16
-msgid "usage: keyboarddrake [--expert] [keyboard]\n"
-msgstr "Verwendung: keyboarddrake [--expert] [keyboard]\n"
-
-#: ../../standalone/keyboarddrake_.c:29
-msgid "Please, choose your keyboard layout."
-msgstr "Bitte wƤhlen Sie Ihren Tastaturtyp."
-
-#: ../../standalone/keyboarddrake_.c:36
-msgid "Do you want the BackSpace to return Delete in console?"
-msgstr "Wollen Sie, dass die RĆ¼cktaste auf den Konsolen Entfernen sendet?"
-
-#: ../../standalone/livedrake_.c:24
-msgid "Change Cd-Rom"
-msgstr "CD-ROM wechseln"
-
-#: ../../standalone/livedrake_.c:25
-msgid ""
-"Please insert the Installation Cd-Rom in your drive and press Ok when done.\n"
-"If you don't have it, press Cancel to avoid live upgrade."
-msgstr ""
-"Bitte legen Sie die Installations-CD-ROM in Ihr Laufwerk und drĆ¼cken \n"
-"Sie dann ā€˛OKā€. Falls Sie sie nicht vorliegen haben, drĆ¼cken Sie \n"
-"ā€˛Abbruchā€."
-
-#: ../../standalone/livedrake_.c:35
-msgid "Unable to start live upgrade !!!\n"
-msgstr "Ich bin nicht in der Lage, eine Live Aktualisierung durchzufĆ¼hren!!!\n"
-
-#: ../../standalone/localedrake_.c:32
-msgid "The change is done, but to be effective you must logout"
-msgstr ""
-"Die Einstellungen wurden vorgenommen, werden jedoch erst nach einer "
-"Neuanmeldung wirksam"
-
-#: ../../standalone/logdrake_.c:85 ../../standalone/logdrake_.c:501
-msgid "logdrake"
-msgstr "LogDrake"
-
-#: ../../standalone/logdrake_.c:95
-msgid "Show only for the selected day"
-msgstr "Nur fĆ¼r diesen Tag zeigen"
-
-#: ../../standalone/logdrake_.c:102
-msgid "/File/_New"
-msgstr "/Datei/_Neu"
-
-#: ../../standalone/logdrake_.c:102
-msgid "<control>N"
-msgstr "<control>N"
-
-#: ../../standalone/logdrake_.c:103
-msgid "/File/_Open"
-msgstr "/Datei/_Ć–ffnen"
-
-#: ../../standalone/logdrake_.c:103
-msgid "<control>O"
-msgstr "<control>O"
-
-#: ../../standalone/logdrake_.c:104
-msgid "/File/_Save"
-msgstr "/Datei/_Speichern"
-
-#: ../../standalone/logdrake_.c:104
-msgid "<control>S"
-msgstr "<control>S"
-
-#: ../../standalone/logdrake_.c:105
-msgid "/File/Save _As"
-msgstr "/Datei/Speichern_als"
-
-#: ../../standalone/logdrake_.c:106
-msgid "/File/-"
-msgstr "/Datei/-"
-
-#: ../../standalone/logdrake_.c:108
-msgid "/_Options"
-msgstr "/_Optionen"
-
-#: ../../standalone/logdrake_.c:109
-msgid "/Options/Test"
-msgstr "/Optionen/Test"
-
-#: ../../standalone/logdrake_.c:110
-msgid "/_Help"
-msgstr "/_Hilfe"
-
-#: ../../standalone/logdrake_.c:111
-msgid "/Help/_About..."
-msgstr "/_Hilfe/_Ćber..."
-
-#: ../../standalone/logdrake_.c:118
-msgid "-misc-fixed-medium-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr "-misc-fixed-medium-r-*-*-*-100-*-*-*-*-*-*,*"
-
-#: ../../standalone/logdrake_.c:119
-msgid "-misc-fixed-bold-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr "-misc-fixed-bold-r-*-*-*-100-*-*-*-*-*-*,*"
-
-#: ../../standalone/logdrake_.c:173
-msgid "User"
-msgstr "Benutzer"
-
-#: ../../standalone/logdrake_.c:174
-msgid "Messages"
-msgstr "Nachrichten"
-
-#: ../../standalone/logdrake_.c:175
-msgid "Syslog"
-msgstr "SysLog"
-
-#: ../../standalone/logdrake_.c:176
-msgid "Mandrake Tools Explanations"
-msgstr "ErklƤrung der Mandrake Programme"
-
-#: ../../standalone/logdrake_.c:179
-msgid "search"
-msgstr "Suche starten"
-
-#: ../../standalone/logdrake_.c:185
-msgid "A tool to monitor your logs"
-msgstr "Ihre LogbĆ¼cher betrachen"
-
-#: ../../standalone/logdrake_.c:186
-msgid "Settings"
-msgstr "Einstellungen"
-
-#: ../../standalone/logdrake_.c:191
-msgid "matching"
-msgstr "Ćbereinstimmung mit"
-
-#: ../../standalone/logdrake_.c:192
-msgid "but not matching"
-msgstr "keine Ćbereinstimmung mit"
-
-#: ../../standalone/logdrake_.c:196
-msgid "Choose file"
-msgstr "Dateien wƤhlen"
-
-#: ../../standalone/logdrake_.c:201
-msgid "Calendar"
-msgstr "Kalender"
-
-#: ../../standalone/logdrake_.c:211
-msgid "Content of the file"
-msgstr "Inhalt der LogbĆ¼cher"
-
-#: ../../standalone/logdrake_.c:215 ../../standalone/logdrake_.c:390
-msgid "Mail/SMS alert"
-msgstr "E-Mail/SMS Benachrichtigung"
-
-#: ../../standalone/logdrake_.c:268
-#, c-format
-msgid "please wait, parsing file: %s"
-msgstr "Einen Moment, ich durchsuche: %s"
-
-#: ../../standalone/logdrake_.c:405
-msgid "Mail/SMS alert configuration"
-msgstr "Mail/SMS Benachrichtigungskonfiguration"
-
-#: ../../standalone/logdrake_.c:406
-msgid ""
-"Welcome to the mail/SMS configuration utility.\n"
-"\n"
-"Here, you'll be able to set up the alert system.\n"
-msgstr ""
-"Herzlich willkommen zum E-Mail/SMS Konfigurationsassistenten.\n"
-"\n"
-"Hier kƶnnen Sie Ihr Benachrichtigungssystem einrichten.\n"
-
-#: ../../standalone/logdrake_.c:414
-msgid "proftpd"
-msgstr "Pro-ftpd"
-
-#: ../../standalone/logdrake_.c:417
-msgid "sshd"
-msgstr "sshd"
-
-#: ../../standalone/logdrake_.c:418
-msgid "webmin"
-msgstr "webmin"
-
-#: ../../standalone/logdrake_.c:419
-msgid "xinetd"
-msgstr "xinetd"
-
-#: ../../standalone/logdrake_.c:422
-msgid "service setting"
-msgstr "Dienste einstellen"
-
-#: ../../standalone/logdrake_.c:423
-msgid ""
-"You will receive an alert if one of the selected service is no more running"
-msgstr ""
-"Sie weden benachrtichtigt, falls einer der gewƤhlten Dienste nichtmehr "
-"verfĆ¼gbar ist."
-
-#: ../../standalone/logdrake_.c:433
-msgid "load setting"
-msgstr "Einstellungen laden"
-
-#: ../../standalone/logdrake_.c:434
-msgid "You will receive an alert if the load is higher than this value"
-msgstr "Sie erhalten eine Nachricht, wen die Load Ć¼ber diesen Wert steigt"
-
-#: ../../standalone/logdrake_.c:447
-msgid "alert configuration"
-msgstr "Benachrichtigungskonfiguration"
-
-#: ../../standalone/logdrake_.c:448
-msgid "Configure the way the system will alert you"
-msgstr "Stellen Sie ein, wie das System Sie benachrichtigen soll"
-
-#: ../../standalone/logdrake_.c:478
-msgid "Save as.."
-msgstr "Speichern unter..."
-
-#: ../../standalone/mousedrake_.c:49
-msgid "Please, choose the type of your mouse."
-msgstr "Bitte wƤhlen Sie Ihren Maustyp."
-
-#: ../../standalone/mousedrake_.c:59
-msgid "no serial_usb found\n"
-msgstr "Kein ā€˛serial_usbā€ gefunden\n"
-
-#: ../../standalone/mousedrake_.c:63
-msgid "Emulate third button?"
-msgstr "Die dritte Maustaste emulieren?"
-
-#: ../../standalone/scannerdrake_.c:53
-#, c-format
-msgid "%s found on %s, configure it ?"
-msgstr "%s an %s gefunden. Wolen Sie ihn einrichten?"
-
-#: ../../standalone/scannerdrake_.c:60
-msgid "Select a scanner"
-msgstr "WƤhlen Sie einen Scanner"
-
-#: ../../standalone/scannerdrake_.c:80
-#, c-format
-msgid "This %s scanner is unsupported"
-msgstr "Dieser %s Scanner wird nicht unterstĆ¼tzt"
-
-#: ../../standalone/scannerdrake_.c:94
-#, c-format
-msgid ""
-"Scannerdrake was not able to detect your %s scanner.\n"
-"Please select the device where your scanner is plugged"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:96
-#, fuzzy
-msgid "choose device"
-msgstr "Boot GerƤt"
-
-#: ../../standalone/scannerdrake_.c:102
-#, c-format
-msgid ""
-"This %s scanner must be configured by printerdrake.\n"
-"You can launch printerdrake from the Mandrake Control Center in Hardware "
-"section."
-msgstr ""
-"Dieser %s Scanner muss von PrinterDrake konfiguriert werden.\n"
-"Sie kƶnnen Pronterdrake im Mandrake-Kontrollzentrum im Hardware-Bereich "
-"starten."
-
-#: ../../standalone/scannerdrake_.c:107
-#, c-format
-msgid ""
-"Your %s scanner has been configured.\n"
-"You may now scan documents using ``XSane'' from Multimedia/Graphics in the "
-"applications menu."
-msgstr ""
-
-#: ../../standalone/tinyfirewall_.c:31
-msgid "Firewalling Configuration"
-msgstr "Firewall-Konfiguration"
-
-#: ../../standalone/tinyfirewall_.c:44
-msgid "Firewalling configuration"
-msgstr "Firewall-Konfiguration"
-
-#: ../../standalone/tinyfirewall_.c:79
-msgid ""
-"Firewalling\n"
-"\n"
-"You already have set up a firewall.\n"
-"Click on Configure to change or remove the firewall"
-msgstr ""
-"Firewall\n"
-"\n"
-"Sie haben bereits eine Firewall eingerichtet.\n"
-"WƤhlen Sie die SchaltflƤche ā€˛Konfigurierenā€,\n"
-"um sie zu lƶschen oder zu verƤndern."
-
-#: ../../standalone/tinyfirewall_.c:83
-msgid ""
-"Firewalling\n"
-"\n"
-"Click on Configure to set up a standard firewall"
-msgstr ""
-"Firewall\n"
-"\n"
-"WƤhlen Sie die SchaltflƤche ā€˛Konfigurierenā€,\n"
-"um eine Standard-Firewall einzurichten."
-
-#: ../../steps.pm_.c:14
-msgid "Choose your language"
-msgstr "Sprache auswƤhlen"
-
-#: ../../steps.pm_.c:15
-msgid "Select installation class"
-msgstr "Installationsart auswƤhlen"
-
-#: ../../steps.pm_.c:16
-msgid "Hard drive detection"
-msgstr "Festplatten suchen"
-
-#: ../../steps.pm_.c:17
-msgid "Configure mouse"
-msgstr "Maus konfigurieren"
-
-#: ../../steps.pm_.c:18
-msgid "Choose your keyboard"
-msgstr "Tastatur auswƤhlen"
-
-#: ../../steps.pm_.c:19
-msgid "Security"
-msgstr "Sicherheit"
-
-#: ../../steps.pm_.c:20
-msgid "Setup filesystems"
-msgstr "Dateisysteme einrichten"
-
-#: ../../steps.pm_.c:21
-msgid "Format partitions"
-msgstr "Partitionen formatieren"
-
-#: ../../steps.pm_.c:22
-msgid "Choose packages to install"
-msgstr "Zu installierende Pakete"
-
-#: ../../steps.pm_.c:23
-msgid "Install system"
-msgstr "System installieren"
-
-#: ../../steps.pm_.c:25
-msgid "Add a user"
-msgstr "Benutzer hinzufĆ¼gen"
-
-#: ../../steps.pm_.c:26
-msgid "Configure networking"
-msgstr "Netzwerk konfigurieren"
-
-#: ../../steps.pm_.c:28
-msgid "Configure services"
-msgstr "Dienste konfigurieren"
-
-#: ../../steps.pm_.c:29
-msgid "Install bootloader"
-msgstr "BS-Starter installieren"
-
-#: ../../steps.pm_.c:31
-msgid "Create a bootdisk"
-msgstr "Startdiskette erstellen"
-
-#: ../../steps.pm_.c:33
-msgid "Configure X"
-msgstr "X konfigurieren"
-
-#: ../../steps.pm_.c:34
-msgid "Install system updates"
-msgstr "Systemaktualisierungen"
-
-#: ../../steps.pm_.c:35
-msgid "Exit install"
-msgstr "Installation beenden"
-
-#: ../../tinyfirewall.pm_.c:9
-msgid ""
-"tinyfirewall configurator\n"
-"\n"
-"This configures a personal firewall for this Mandrake Linux machine.\n"
-"For a powerful dedicated firewall solution, please look to the\n"
-"specialized MandrakeSecurity Firewall distribution."
-msgstr ""
-"TinyFirewall Konfigurierer\n"
-"\n"
-"Hiermit konfigurieren Sie eine persƶnliche Firewall fĆ¼r diesen\n"
-"Mandrake Linux Rechner. Sollten Sie an einer speziellen ausgereiften\n"
-"Firewall-Lƶsung interessiert sein, schauen Sie sich nach der speziell\n"
-"dafĆ¼r entwickelten MandrakeSecurity Firewall Distribution um."
-
-#: ../../tinyfirewall.pm_.c:14
-msgid ""
-"We'll now ask you questions about which services you'd like to allow\n"
-"the Internet to connect to. Please think carefully about these\n"
-"questions, as your computer's security is important.\n"
-"\n"
-"Please, if you're not currently using one of these services, firewall\n"
-"it off. You can change this configuration anytime you like by\n"
-"re-running this application!"
-msgstr ""
-"Wir fragen Sie nun, welchen Diensten Sie direkten Internetzugang\n"
-"gestatten wollen. Bitte machen Sie sich sorgfƤltig Gedanken Ć¼ber diese\n"
-"Fragen. Es geht hierbei schlieĆlich um die Sicherheit Ihres Systems!\n"
-"\n"
-"Bitte schotten Sie jeden Dienst, den sie aktuell nicht verwenden, vom \n"
-"Netz ab. Sie kƶnnen die vorgenommenen Einstellungen mit Hilfe dieses \n"
-"Programms jederzeit wieder Ƥndern!"
-
-#: ../../tinyfirewall.pm_.c:21
-msgid ""
-"Are you running a web server on this machine that you need the whole\n"
-"Internet to see? If you are running a webserver that only needs to be\n"
-"accessed by this machine, you can safely answer NO here.\n"
-"\n"
-msgstr ""
-"Betreiben Sie auf Ihrem Rechner einen Web-Server, der im gesamten\n"
-"Internet sichtbar sein soll? Falls der Server nur auf Ihrer Maschine\n"
-"zugreifbar sein soll, kƶnnen Sie hier getrost NEIN antworten.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:26
-msgid ""
-"Are you running a name server on this machine? If you didn't set one\n"
-"up to give away IP and zone information to the whole Internet, please\n"
-"answer no.\n"
-"\n"
-msgstr ""
-"Betreiben Sie einen Name-Server auf Ihrem Rechner? Falls Sie keinen\n"
-"Eingerichtet haben, um dem gesamten Internet IP und Bereichsinformationen\n"
-"anzubieten, antworten Sie hier NEIN.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:31
-msgid ""
-"Do you want to allow incoming Secure Shell (ssh) connections? This\n"
-"is a telnet-replacement that you might use to login. If you're using\n"
-"telnet now, you should definitely switch to ssh. telnet is not\n"
-"encrypted -- so some attackers can steal your password if you use\n"
-"it. ssh is encrypted and doesn't allow for this eavesdropping."
-msgstr ""
-"Wollen Sie eingehende Secure Shell (ssh) Verbindungen gestatten?\n"
-"Es handelt sich hierbei um einen Ersatz fĆ¼r Telnet. Falls sie noch\n"
-"Telnet verwenden, sollten Sie definitiv auf dieses Protokoll wechseln.\n"
-"Telnet Ć¼bertrƤgt Ihre gesamte Kommunikation (also auch Passwƶrter)\n"
-"UNVERSCHLĆSSELT! Sie bieten damit einem potentiellen Angreife ein\n"
-"leichtes Spiel. Die SSH hingegen verschlĆ¼sselt die komplette\n"
-"Kommunikation und warnt sogar falls sie eine UnregelmƤĆigkeit bemerkt."
-
-#: ../../tinyfirewall.pm_.c:36
-msgid ""
-"Do you want to allow incoming telnet connections?\n"
-"This is horribly unsafe, as we explained in the previous screen. We\n"
-"strongly recommend answering No here and using ssh in place of\n"
-"telnet.\n"
-msgstr ""
-"Wollen Sie eingehende Telnet-Verbindungen gestatten?\n"
-"Dienst extrem unsicher, wie wir bereits frĆ¼her erwƤhnten. Wir empfehlen\n"
-"Ihnen daher nachdrĆ¼cklich mit NEIN zu antworten und im Bedarfsfall auf\n"
-"die SSH auszuweichen.\n"
-
-#: ../../tinyfirewall.pm_.c:41
-msgid ""
-"Are you running an FTP server here that you need accessible to the\n"
-"Internet? If you are, we strongly recommend that you only use it for\n"
-"Anonymous transfers. Any passwords sent by FTP can be stolen by some\n"
-"attackers, since FTP also uses no encryption for transferring passwords.\n"
-msgstr ""
-"Betreiben Sie einen FTP Server der aus dem Internet zugreifbar sein soll?\n"
-"Falls ja, sollten Sie ihn jedoch nur fĆ¼r ā€˛anonymen Transferā€ verwenden,\n"
-"da das Protokoll keine VerschlĆ¼sselung Ć¼bertragener Passwƶrter vorsieht."
-"Verwenden Sie ā€˛scpā€ aus dem SSH Paket zum verschlĆ¼sselten\n"
-"Datentransfer zwischen zwei Rechnern.\n"
-
-#: ../../tinyfirewall.pm_.c:46
-msgid ""
-"Are you running a mail server here? If you're sending you \n"
-"messages through pine, mutt or any other text-based mail client,\n"
-"you probably are. Otherwise, you should firewall this off.\n"
-"\n"
-msgstr ""
-"Betreiben Sie einen Mail-Server? Falls Sie Ihre Nachrichten mit\n"
-"einem textbasierten E-Mail Programm wie pine oder mutt schreiben\n"
-"ist dies vermutlich der Fall. Andernfalls sollten Sie den Dienst\n"
-"abschalten.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:51
-msgid ""
-"Are you running a POP or IMAP server here? This would\n"
-"be used to host non-web-based mail accounts for people via \n"
-"this machine.\n"
-"\n"
-msgstr ""
-"Betreiben Sie einen POP oder IMAP Server? Sie wĆ¼rden damit\n"
-"PostfƤcher fĆ¼r nicht-web-basierten E-Mail Zugriff Ć¼ber diese\n"
-"Maschine bereitstellen.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:56
-msgid ""
-"You appear to be running a 2.2 kernel. If your network IP\n"
-"is automatically set by a computer in your home or office \n"
-"(dynamically assigned), we need to allow for this. Is\n"
-"this the case?\n"
-msgstr ""
-"Sie scheinen einen 2.2er Kern zu verwenden. Falls Sie Ihre\n"
-"IP-Adresse automatisch im lokalen Netzwerk erhalten sollen,\n"
-"mĆ¼ssen wir dies gestatten. Ist das bei Ihnen der Fall?\n"
-
-#: ../../tinyfirewall.pm_.c:61
-msgid ""
-"Is your computer getting time syncronized to another computer?\n"
-"Mostly, this is used by medium-large Unix/Linux organizations\n"
-"to synchronize time for logging and such. If you're not part\n"
-"of a larger office and haven't heard of this, you probably \n"
-"aren't."
-msgstr ""
-"Wird die Zeit Ihres Rechners automatisch mit anderen Rechnern\n"
-"synchronisiert? Dies ist hƤufig ab mittelgroĆen UNIX/Linux Betrieben\n"
-"der Fall. Damit wird ein einheitliches Zeitschema, etwa fĆ¼r die\n"
-"Datensicherung zugrunde gelegt. Wenn Sie nicht in einem grƶĆeren\n"
-"Betrieb arbeiten oder noch nie etwas zu diesem Thema gehƶrt haben,\n"
-"trifft es fĆ¼r Sie vermutlich nicht zu."
-
-#: ../../tinyfirewall.pm_.c:66
-msgid ""
-"Configuration complete. May we write these changes to disk?\n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-"Konfiguration beendet. Soll ich die Ć„nderungen auf Platte schreiben?\n"
-"\n"
-"\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:82
-#, c-format
-msgid "Can't open %s: %s\n"
-msgstr "Ich kann ā€˛%sā€ nicht ƶffnen: %s\n"
-
-#: ../../tinyfirewall.pm_.c:84
-#, c-format
-msgid "Can't open %s for writing: %s\n"
-msgstr "Ich kann ā€˛%sā€ nicht zum Schreiben ƶffnen: %s\n"
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "No I don't need DHCP"
-msgstr "Nein, ich benƶtige kein DHCP"
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "Yes I need DHCP"
-msgstr "Ja, ich benƶtige DHCP"
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "No I don't need NTP"
-msgstr "Nein, ich benƶtige kein NTP"
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "Yes I need NTP"
-msgstr "Ja, ich benƶtige NTP"
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-msgid "Don't Save"
-msgstr "Nicht speichern"
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-#: ../../tinyfirewall.pm_.c:206
-msgid "Save & Quit"
-msgstr "Speichern und beenden"
-
-#: ../../tinyfirewall.pm_.c:197 ../../tinyfirewall.pm_.c:201
-msgid "Firewall Configuration Wizard"
-msgstr "Firewall-Konfigurationsassistent"
-
-#: ../../tinyfirewall.pm_.c:199
-msgid "No (firewall this off from the internet)"
-msgstr "Nein (Vom externen Netz abschirmen)"
-
-#: ../../tinyfirewall.pm_.c:200
-msgid "Yes (allow this through the firewall)"
-msgstr "Ja (durch die Firewall erlauben)"
-
-#: ../../tinyfirewall.pm_.c:232
-msgid "Please Wait... Verifying installed packages"
-msgstr "Bitte warten, Kontrolle der installierten Pakete ..."
-
-#: ../../tinyfirewall.pm_.c:238
-#, c-format
-msgid ""
-"Failure installing the needed packages : %s and Bastille.\n"
-" Try to install them manually."
-msgstr ""
-"Fehler bein Versuch die gewĆ¼nschten Pakete (%s und Bastille) zu "
-"installieren!\n"
-"Versuchen Sie es manuell."
-
-#: ../../share/compssUsers:999
-msgid "Web/FTP"
-msgstr "Server, Web/FTP"
-
-#
-#: ../../share/compssUsers:999
-msgid "Network Computer (client)"
-msgstr "Netzwerk-Computer (Klient)"
-
-#: ../../share/compssUsers:999
-msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr "NFS-Server, SMB-Server, Proxy-Server, SSH-Server"
-
-#: ../../share/compssUsers:999
-msgid "Office"
-msgstr "Office"
-
-#: ../../share/compssUsers:999
-msgid "Gnome Workstation"
-msgstr "Gnome-Arbeitsplatz"
-
-#: ../../share/compssUsers:999
-msgid "Tools for your Palm Pilot or your Visor"
-msgstr "Werkzeuge fĆ¼r Ihren Palm Pilot oder Ihren Visor"
-
-#: ../../share/compssUsers:999
-msgid "Workstation"
-msgstr "Arbeitsplatzrechner"
-
-#: ../../share/compssUsers:999
-msgid "Firewall/Router"
-msgstr "Server, Firewall/Router"
-
-#: ../../share/compssUsers:999
-msgid "Domain Name and Network Information Server"
-msgstr "DomƤnen- (DNS) und Netzwerk Informationsserver (NIS)"
-
-#: ../../share/compssUsers:999
-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/compssUsers:999
-msgid "Audio-related tools: mp3 or midi players, mixers, etc"
-msgstr "Audio Programme: MP3- und Midi-Abspieler, Mixer, usw."
-
-#: ../../share/compssUsers:999
-msgid "Books and Howto's on Linux and Free Software"
-msgstr "BĆ¼cher und HOWTOs zu GNU/Linux und Freier Software"
-
-#: ../../share/compssUsers:999
-msgid "KDE Workstation"
-msgstr "KDE-Arbeitsplatz"
-
-#: ../../share/compssUsers:999
-msgid "Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm, Window Maker, Enlightenment, Fvwm, usw."
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Video"
-msgstr "Multimedia / Video"
-
-#: ../../share/compssUsers:999
-msgid "Set of tools for mail, news, web, file transfer, and chat"
-msgstr "Programme fĆ¼r Mail, News, WWW, FTP und Chat"
-
-#: ../../share/compssUsers:999
-msgid "Database"
-msgstr "Server, Datenbank"
-
-#: ../../share/compssUsers:999
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgeSQL oder MySQL Datenbankserver"
-
-#
-#: ../../share/compssUsers:999
-msgid "Tools to ease the configuration of your computer"
-msgstr "Werkzeuge, die die Konfiguration Ihres Rechners erleichtern"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Sound"
-msgstr "Multimedia / Sound"
-
-#: ../../share/compssUsers:999
-msgid "Utilities"
-msgstr "Werkzeuge"
-
-#: ../../share/compssUsers:999
-msgid "Documentation"
-msgstr "Dokumentation"
-
-#: ../../share/compssUsers:999
-msgid "Console Tools"
-msgstr "Konsolen-Werkzeuge"
-
-#: ../../share/compssUsers:999
-msgid "Postfix mail server, Inn news server"
-msgstr ""
-"Postfix E-Mail-Server und\n"
-"Inn Diskussionsforen-Server"
-
-#
-#: ../../share/compssUsers:999
-msgid "Internet station"
-msgstr "Internetrechner"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia station"
-msgstr "Multimediarechner"
-
-#: ../../share/compssUsers:999
-msgid "Configuration"
-msgstr "Konfiguration"
-
-#: ../../share/compssUsers:999
-msgid "More Graphical Desktops (Gnome, IceWM)"
-msgstr "Weitere ArbeitsoberflƤchen (GNOME, IceWM)"
-
-#: ../../share/compssUsers:999
-msgid ""
-"The K Desktop Environment, the basic graphical environment with a collection "
-"of accompanying tools"
-msgstr ""
-"Das K Desktop Environment, die Standard-ArbeitsoberflƤche mit einer Sammlung "
-"zugehƶriger Programme"
-
-#: ../../share/compssUsers:999
-msgid "Graphical Environment"
-msgstr "Grafische ArbeitsoberflƤche"
-
-#: ../../share/compssUsers:999
-msgid "Apache, Pro-ftpd"
-msgstr "Apache und Pro-ftpd"
-
-#: ../../share/compssUsers:999
-msgid "Tools to create and burn CD's"
-msgstr "Werkzeuge zur Erstellung und zum Brennen von CDs"
-
-#: ../../share/compssUsers:999
-msgid "Office Workstation"
-msgstr "BĆ¼ro-Arbeitsplatz"
-
-#: ../../share/compssUsers:999
-msgid "Server"
-msgstr "Server"
-
-#: ../../share/compssUsers:999
-msgid "Gnome, Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr "GNOME, IceWM, Window Maker, Enlightenment, Fvwm, usw."
-
-#: ../../share/compssUsers:999
-msgid "Graphics programs such as The Gimp"
-msgstr "Bildverarbeitungsprogramme wie der GIMP"
-
-#: ../../share/compssUsers:999
-msgid "DNS/NIS "
-msgstr "DNS/NIS"
-
-#: ../../share/compssUsers:999
-msgid "C and C++ development libraries, programs and include files"
-msgstr "C und C++ Entwicklung: Bibliotheken, Programme und Include-Dateien"
-
-#: ../../share/compssUsers:999
-msgid "Network Computer server"
-msgstr "Netzwerkrechner Server"
-
-#: ../../share/compssUsers:999
-msgid "Mail/Groupware/News"
-msgstr "Server, Mail/Groupware/News"
-
-#: ../../share/compssUsers:999
-msgid "Game station"
-msgstr "Spiel-Station"
-
-#: ../../share/compssUsers:999
-msgid "Video players and editors"
-msgstr "Videoabspieler und Editoren"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Graphics"
-msgstr "Multimedia / Grafik"
-
-#: ../../share/compssUsers:999
-msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr "Spiele: Arcade-, Brett-, Strategiespiele, usw."
-
-#: ../../share/compssUsers:999
-msgid ""
-"Set of tools to read and send mail and news (pine, mutt, tin..) and to "
-"browse the Web"
-msgstr ""
-"Programme zum E-Mail bzw. News lesen und senden (pine, mutt, tin, ...)sowie "
-"zum durchstƶbern des WWW"
-
-#: ../../share/compssUsers:999
-msgid "Archiving, emulators, monitoring"
-msgstr "Archivierung, Emulation, Ćberwachung"
-
-#: ../../share/compssUsers:999
-msgid "Personal Finance"
-msgstr "Finanzverwaltung"
-
-#: ../../share/compssUsers:999
-msgid ""
-"A graphical environment with user-friendly set of applications and desktop "
-"tools"
-msgstr ""
-"Eine grafische OberflƤche mit anwenderfreundlichen Anwendungen und Werkzeugen"
-
-#: ../../share/compssUsers:999
-msgid "Clients for different protocols including ssh"
-msgstr "Klienten fĆ¼r verschiedene Protokolle, u.a. SSH"
-
-#: ../../share/compssUsers:999
-msgid "Internet gateway"
-msgstr "Internet-Gateway"
-
-#: ../../share/compssUsers:999
-msgid "Sound and video playing/editing programs"
-msgstr "Sound- und Video-Abspieler/Editoren"
-
-#: ../../share/compssUsers:999
-msgid "Other Graphical Desktops"
-msgstr "Andere grafische ArbeitsoberflƤchen"
-
-#: ../../share/compssUsers:999
-msgid "Editors, shells, file tools, terminals"
-msgstr "Editoren, Shells, Dateiwerkzeuge, Konsolen"
-
-#: ../../share/compssUsers:999
-msgid "Programs to manage your finance, such as gnucash"
-msgstr "Finanzverwaltungsprogramme, etwa Gnucash"
-
-#: ../../share/compssUsers:999
-msgid "Personal Information Management"
-msgstr "Persƶnliches Informationsmanagement"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - CD Burning"
-msgstr "Multimedia / CD-Brenner"
-
-#: ../../share/compssUsers:999
-msgid "Scientific Workstation"
-msgstr "Wissenschaftlicher Arbeitsplatzrechner"
diff --git a/perl-install/share/po/el.po b/perl-install/share/po/el.po
deleted file mode 100644
index 1de4183da..000000000
--- a/perl-install/share/po/el.po
+++ /dev/null
@@ -1,13124 +0,0 @@
-# Greek Translation of DrakX.
-# Copyright (c) 1999 MandrakeSoft
-# FIRST AUTHOR Theodore J. Soldatos <theodore@eexi.gr>, 1999-2000.
-# Thanos Kyritsis <djart@hellug.gr>, 2001
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: DrakX VERSION\n"
-"POT-Creation-Date: 2002-03-11 18:29+0100\n"
-"PO-Revision-Date: 2001-08-23 23:59+0300\n"
-"Last-Translator: Thanos Kyritsis <djart@hellug.gr>\n"
-"Language-Team: Greek <nls@tux.hellug.gr>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-7\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 0.8\n"
-
-#: ../../Xconfigurator.pm_.c:242
-msgid "Configure all heads independently"
-msgstr "Ńżčģéóē üėłķ ōłķ źåöįėžķ įķåīÜńōēōį"
-
-#: ../../Xconfigurator.pm_.c:243
-msgid "Use Xinerama extension"
-msgstr "×ńŽóē åšŻźōįóēņ Xinerama"
-
-#: ../../Xconfigurator.pm_.c:246
-#, c-format
-msgid "Configure only card \"%s\" (%s)"
-msgstr "Ńżčģéóē ģüķļ ōēņ źÜńōįņ \"%s\" (%s)"
-
-#: ../../Xconfigurator.pm_.c:249
-msgid "Multi-head configuration"
-msgstr "Ńżčģéóē šļėėžķ źåöįėžķ"
-
-#: ../../Xconfigurator.pm_.c:250
-msgid ""
-"Your system support multiple head configuration.\n"
-"What do you want to do?"
-msgstr ""
-"Ōļ óżóōēģÜ óįņ õšļóōēńßęåé ńżčģéóē šļėėįšėžķ źåöįėžķ.\n"
-"Ōß čŻėåōå ķį źÜķåōå;"
-
-#: ../../Xconfigurator.pm_.c:261
-msgid "Graphic card"
-msgstr "ŹÜńōį ćńįöéźžķ"
-
-#: ../../Xconfigurator.pm_.c:262
-msgid "Select a graphic card"
-msgstr "ÅšéėŻīōå źÜńōį ćńįöéźžķ"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "Choose a X server"
-msgstr "ÅšéėŻīōå X server (ļäēćüņ źÜńōįņ ćńįöéźžķ)"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "X server"
-msgstr "åīõšēńåōēōŽņ X Window"
-
-#: ../../Xconfigurator.pm_.c:293
-#, fuzzy
-msgid "Choose a X driver"
-msgstr "ÅšéėŻīōå X server (ļäēćüņ źÜńōįņ ćńįöéźžķ)"
-
-#: ../../Xconfigurator.pm_.c:293
-#, fuzzy
-msgid "X driver"
-msgstr "åīõšēńåōēōŽņ X Window"
-
-#: ../../Xconfigurator.pm_.c:360 ../../Xconfigurator.pm_.c:366
-#: ../../Xconfigurator.pm_.c:416 ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s"
-msgstr "XFree %s"
-
-#: ../../Xconfigurator.pm_.c:363
-msgid "Which configuration of XFree do you want to have?"
-msgstr "Ōß ōżšļõ XFree čŻėåōå ķį Ż÷åōå;"
-
-#: ../../Xconfigurator.pm_.c:374
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"Ē źÜńōį ćńįöéźžķ óįņ õšļóōēńßęåé åšéōÜ÷õķóē ōńéóäéÜóōįōłķ ćńįöéźžķ ģüķļ \n"
-"ģå ōį XFree %s. Ē źÜńōį óįņ õšļóōēńßęåōįé įšü ōį XFree %s ōį ļšļßį ģšļńåß ķį "
-"äßķļõķ \n"
-"źįėżōåńē õšļóōŽńéīē ćéį äéóäéÜóōįōį ćńįöéźÜ."
-
-#: ../../Xconfigurator.pm_.c:376 ../../Xconfigurator.pm_.c:409
-#, c-format
-msgid "Your card can have 3D hardware acceleration support with XFree %s."
-msgstr ""
-"Ē źÜńōį ćńįöéźžķ óįņ õšļóōēńßęåé åšéōÜ÷õķóē ōńéóäéÜóōįōłķ ćńįöéźžķ óōį XFree "
-"%s."
-
-#: ../../Xconfigurator.pm_.c:378 ../../Xconfigurator.pm_.c:411
-#: ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s with 3D hardware acceleration"
-msgstr "XFree %s ģå åšéōÜ÷õķóē ōńéóäéÜóōįōłķ ćńįöéźžķ"
-
-#: ../../Xconfigurator.pm_.c:386 ../../Xconfigurator.pm_.c:400
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER."
-msgstr ""
-"Ē źÜńōį ćńįöéźžķ óįņ õšļóōēńßęåé åšéōÜ÷õķóē ōńéóäéÜóōįōłķ ćńįöéźžķ óōį XFree "
-"%s,\n"
-"ŠŃĻÓĻ×Ē: ŠÅÉŃĮĢĮŌÉŹĒ ÕŠĻÓŌĒŃÉĪĒ - ĢŠĻŃÅÉ ĶĮ ŠĮĆŁÓÅÉ ŌĻĶ ÕŠĻĖĻĆÉÓŌĒ ÓĮÓ!"
-
-#: ../../Xconfigurator.pm_.c:388 ../../Xconfigurator.pm_.c:402
-#, c-format
-msgid "XFree %s with EXPERIMENTAL 3D hardware acceleration"
-msgstr "XFree %s ģå ŠÅÉŃĮĢĮŌÉŹĒ åšéōÜ÷õķóē ōńéóäéÜóōįōłķ ćńįöéźžķ"
-
-#: ../../Xconfigurator.pm_.c:397
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"Ē źÜńōį ćńįöéźžķ óįņ õšļóōēńßęåé åšéōÜ÷õķóē ōńéóäéÜóōįōłķ ćńįöéźžķ ģüķļ \n"
-"ģå ōį XFree %s. ŠŃĻÓĻ×Ē: ŠÅÉŃĮĢĮŌÉŹĒ ÕŠĻÓŌĒŃÉĪĒ - ĢŠĻŃÅÉ ĶĮ ŠĮĆŁÓÅÉ ŌĻĶ "
-"ÕŠĻĖĻĆÉÓŌĒ ÓĮÓ!\n"
-"Ē źÜńōį óįņ õšļóōēńßęåōįé įšü ōį XFree %s ōį ļšļßį ģšļńåß ķį äßķļõķ źįėżōåńē "
-"õšļóōŽńéīē\n"
-"ćéį äéóäéÜóōįōį ćńįöéźÜ."
-
-#: ../../Xconfigurator.pm_.c:417
-msgid "Xpmac (installation display driver)"
-msgstr "Xpmac (ļäēćüņ šńļāļėŽņ åćźįōÜóōįóēņ)"
-
-#: ../../Xconfigurator.pm_.c:421
-msgid "XFree configuration"
-msgstr "Ńõčģßóåéņ XFree"
-
-#: ../../Xconfigurator.pm_.c:496
-msgid "Select the memory size of your graphic card"
-msgstr "ĢŻćåčļņ ģķŽģēņ źÜńōįņ ćńįöéźžķ"
-
-#: ../../Xconfigurator.pm_.c:550
-msgid "Choose options for server"
-msgstr "Ńõčģßóåéņ X server"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Choose a monitor"
-msgstr "ÅšéėŻīōå ļčüķē"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Monitor"
-msgstr "Ļčüķē"
-
-#: ../../Xconfigurator.pm_.c:577
-msgid ""
-"The two critical parameters are the vertical refresh rate, which is the "
-"rate\n"
-"at which the whole screen is refreshed, and most importantly the horizontal\n"
-"sync rate, which is the rate at which scanlines are displayed.\n"
-"\n"
-"It is VERY IMPORTANT that you do not specify a monitor type with a sync "
-"range\n"
-"that is beyond the capabilities of your monitor: you may damage your "
-"monitor.\n"
-" If in doubt, choose a conservative setting."
-msgstr ""
-"Ļé äżļ źńßóéģåņ šįńÜģåōńļé åßķįé ē óõ÷ķüōēōį źįōįźüńõöēņ įķįķŻłóēņ, ēļšļßį "
-"åßķįé\n"
-"óõ÷ķüōēōį ģå ōēķ ļšļßį įķįķåžķåōįé ļėüźėēńē ē ļčüķē, źįčžņ źįé ē óõ÷ķüōēōį\n"
-"ļńéęüķōéįņ įķįķŻłóēņ, ē ļšļßį åßķįé ē óõ÷ķüōēōį ģå ōēķ ļšļßį įķįķåžķļķōįé\n"
-"ļé ļńéęüķōéåņ ćńįģģŻņ.\n"
-"\n"
-"Åßķįé ŠĻĖÕ ÓĒĢĮĶŌÉŹĻ ķį ģŽķ åšéėŻīåōå ōżšļ ļčüķēņ ōļõ ļšļßļõ ļé óõ÷ķüōēōåņ\n"
-"įķįķŻłóēņ åßķįé åźōüņ ōłķ ļńßłķ ōēņ ļčüķēņ óįņ: õšÜń÷åé źßķäõķļņ "
-"źįōįóōńļöŽņ\n"
-"ōēņ ļčüķēņ óįņ. Įķ äåķ åßóōå óßćļõńļé, źÜķōå ģéį óõķōēńēō韎 åšéėļćŽ."
-
-#: ../../Xconfigurator.pm_.c:584
-msgid "Horizontal refresh rate"
-msgstr "Óõ÷ķüōēōį ļńéęüķōéįņ įķįķŻłóēņ"
-
-#: ../../Xconfigurator.pm_.c:585
-msgid "Vertical refresh rate"
-msgstr "Óõ÷ķüōēōį źįōįźüńõöēņ įķįķŻłóēņ"
-
-#: ../../Xconfigurator.pm_.c:622
-msgid "Monitor not configured"
-msgstr "Ē ļčüķē äåķ Ż÷åé ńõčģéóōåß įźüģē"
-
-#: ../../Xconfigurator.pm_.c:625
-msgid "Graphic card not configured yet"
-msgstr "Ē źÜńōį ćńįöéźžķ äåķ Ż÷åé ńõčģéóōåß įźüģē"
-
-#: ../../Xconfigurator.pm_.c:628
-msgid "Resolutions not chosen yet"
-msgstr "Äåķ Ż÷ļõķ åšéėåćåß įķįėżóåéņ įźüģē"
-
-#: ../../Xconfigurator.pm_.c:646
-msgid "Do you want to test the configuration?"
-msgstr "ČŻėåōå ķį äļźéģÜóåōå ōéņ ńõčģßóåéņ;"
-
-#: ../../Xconfigurator.pm_.c:650
-msgid "Warning: testing this graphic card may freeze your computer"
-msgstr "Šńļóļ÷Ž: Ē äļźéģŽ åßķįé åšéźßķäõķē óå įõōŽ ōēķ źÜńōį ćńįöéźžķ"
-
-#: ../../Xconfigurator.pm_.c:653
-msgid "Test of the configuration"
-msgstr "ÄļźéģŽ ńõčģßóåłķ"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid ""
-"\n"
-"try to change some parameters"
-msgstr ""
-"\n"
-"äļźéģÜóōå ķį įėėÜīåōå źÜšļéåņ šįńįģŻōńļõņ"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid "An error has occurred:"
-msgstr "ŠńļźėŽčēźå óöÜėģį:"
-
-#: ../../Xconfigurator.pm_.c:731
-#, c-format
-msgid "Leaving in %d seconds"
-msgstr "øīļäļņ óå %d äåõōåńüėåšōį"
-
-#: ../../Xconfigurator.pm_.c:742
-msgid "Is this the correct setting?"
-msgstr "Åßķįé įõōŽ ē ółóōŽ ńżčģéóē;"
-
-#: ../../Xconfigurator.pm_.c:751
-msgid "An error has occurred, try to change some parameters"
-msgstr "ŠńļźėŽčēźå óöÜėģį, äļźéģÜóōå ķį įėėÜīåōå źÜšļéåņ šįńįģŻōńļõņ"
-
-#: ../../Xconfigurator.pm_.c:822
-msgid "Resolution"
-msgstr "ĮķÜėõóē"
-
-#: ../../Xconfigurator.pm_.c:874
-msgid "Choose the resolution and the color depth"
-msgstr "ÅšéėŻīōå įķÜėõóē źįé āÜčļņ ÷ńžģįōļņ"
-
-#: ../../Xconfigurator.pm_.c:876
-#, c-format
-msgid "Graphic card: %s"
-msgstr "ŹÜńōį ćńįöéźžķ: %s"
-
-#: ../../Xconfigurator.pm_.c:877
-#, c-format
-msgid "XFree86 server: %s"
-msgstr "XFree86 server: %s"
-
-#: ../../Xconfigurator.pm_.c:891 ../../diskdrake/interactive.pm_.c:259
-#: ../../install_steps_interactive.pm_.c:208
-msgid "More"
-msgstr "¶ėėį"
-
-#: ../../Xconfigurator.pm_.c:891 ../../install_gtk.pm_.c:84
-#: ../../install_steps_gtk.pm_.c:328 ../../interactive.pm_.c:127
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_http.pm_.c:104
-#: ../../interactive_newt.pm_.c:170 ../../interactive_stdio.pm_.c:141
-#: ../../interactive_stdio.pm_.c:142 ../../my_gtk.pm_.c:686
-#: ../../my_gtk.pm_.c:1019 ../../my_gtk.pm_.c:1041
-#: ../../standalone/drakbackup_.c:2298 ../../standalone/drakbackup_.c:2369
-#: ../../standalone/drakbackup_.c:2385
-msgid "Ok"
-msgstr "Ļź"
-
-#: ../../Xconfigurator.pm_.c:893 ../../network/netconnect.pm_.c:169
-#: ../../printerdrake.pm_.c:2470 ../../standalone/draknet_.c:275
-#: ../../standalone/draknet_.c:278
-msgid "Expert Mode"
-msgstr "ŹįōÜóōįóē šńļ÷łńēģŻķłķ"
-
-#: ../../Xconfigurator.pm_.c:894
-msgid "Show all"
-msgstr "ÅģöÜķéóē üėłķ"
-
-#: ../../Xconfigurator.pm_.c:939
-msgid "Resolutions"
-msgstr "Įķįėżóåéņ"
-
-#: ../../Xconfigurator.pm_.c:1509
-#, c-format
-msgid "Keyboard layout: %s\n"
-msgstr "Äéįńżčģéóē šėēźōńļėļćßļõ: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1510
-#, c-format
-msgid "Mouse type: %s\n"
-msgstr "Ōżšļņ šļķōéźéļż: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1511
-#, c-format
-msgid "Mouse device: %s\n"
-msgstr "ÓõóźåõŽ šļķōéźéļż: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1512
-#, c-format
-msgid "Monitor: %s\n"
-msgstr "Ļčüķē: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1513
-#, c-format
-msgid "Monitor HorizSync: %s\n"
-msgstr "Óõ÷ķüōēōį ļńéęüķōéįņ įķįķŻłóēņ: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1514
-#, c-format
-msgid "Monitor VertRefresh: %s\n"
-msgstr "Óõ÷ķüōēōį źįōįźüńõöēņ įķįķŻłóēņ: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1515
-#, c-format
-msgid "Graphic card: %s\n"
-msgstr "ŹÜńōį ćńįöéźžķ: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1516
-#, fuzzy, c-format
-msgid "Graphic card identification: %s\n"
-msgstr "ŹÜńōį ćńįöéźžķ: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1517
-#, c-format
-msgid "Graphic memory: %s kB\n"
-msgstr "ĢķŽģē źÜńōįņ ćńįöéźžķ: %s kb\n"
-
-#: ../../Xconfigurator.pm_.c:1519
-#, c-format
-msgid "Color depth: %s\n"
-msgstr "ĀÜčļņ ÷ńžģįōļņ: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1520
-#, c-format
-msgid "Resolution: %s\n"
-msgstr "ĮķÜėõóē: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1522
-#, c-format
-msgid "XFree86 server: %s\n"
-msgstr "XFree86 server: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1523
-#, c-format
-msgid "XFree86 driver: %s\n"
-msgstr "Ļäēćüņ XFree86: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1541
-msgid "Preparing X-Window configuration"
-msgstr "Šńļåōļéģįóßį ńõčģßóåłķ ćńįöéźļż šåńéāÜėėļķōļņ (X-Window)"
-
-#: ../../Xconfigurator.pm_.c:1561
-msgid "What do you want to do?"
-msgstr "Ōé čŻėåōå ķį źÜķåōå;"
-
-#: ../../Xconfigurator.pm_.c:1566
-msgid "Change Monitor"
-msgstr "ĮėėįćŽ ļčüķēņ"
-
-#: ../../Xconfigurator.pm_.c:1567
-msgid "Change Graphic card"
-msgstr "ĮėėįćŽ źÜńōįņ ćńįöéźžķ"
-
-#: ../../Xconfigurator.pm_.c:1570
-msgid "Change Server options"
-msgstr "ĮėėįćŽ ńõčģßóåłķ X server"
-
-#: ../../Xconfigurator.pm_.c:1571
-msgid "Change Resolution"
-msgstr "ĮėėįćŽ įķÜėõóēņ"
-
-#: ../../Xconfigurator.pm_.c:1572
-msgid "Show information"
-msgstr "ŠńļāļėŽ šėēńļöļńéžķ"
-
-#: ../../Xconfigurator.pm_.c:1573
-msgid "Test again"
-msgstr "ÅšįķÜėēųē äļźéģŽņ"
-
-#: ../../Xconfigurator.pm_.c:1574 ../../printerdrake.pm_.c:2473
-#: ../../standalone/logdrake_.c:225
-msgid "Quit"
-msgstr "øīļäļņ"
-
-#: ../../Xconfigurator.pm_.c:1582
-#, c-format
-msgid ""
-"Keep the changes?\n"
-"Current configuration is:\n"
-"\n"
-"%s"
-msgstr ""
-"ÄéįōŽńēóē õšįń÷üķōłķ ńõčģßóåłķ;\n"
-"Ļé ōńŻ÷ļõóåņ ńõčģßóåéņ åßķįé:\n"
-"\n"
-"%s"
-
-#: ../../Xconfigurator.pm_.c:1603
-msgid "X at startup"
-msgstr "Ćńįöéźü šåńéāÜėėļķ (X) óōēķ åźźßķēóē"
-
-#: ../../Xconfigurator.pm_.c:1604
-msgid ""
-"I can set up your computer to automatically start X upon booting.\n"
-"Would you like X to start when you reboot?"
-msgstr ""
-"Ģšļńž ķį ńõčģßół ōļ óżóōēģÜ óįņ Żōóé žóōå ķį īåźéķÜåé įõōüģįōį óå\n"
-"ćńįöéźü šåńéāÜėėļķ (X-Windows).\n"
-"Åšéčõģåßōå įõōüģįōē åźźßķēóē ćńįöéźļż šåńéāÜėėļķōļņ;"
-
-#: ../../Xconfigurator.pm_.c:1610
-#, c-format
-msgid "Please relog into %s to activate the changes"
-msgstr "Šįńįźįėž åšįķįóõķäåčåßōå łņ %s ćéį åķåńćļšļßēóē ōłķ įėėįćžķ"
-
-#: ../../Xconfigurator.pm_.c:1625
-msgid "Please log out and then use Ctrl-Alt-BackSpace"
-msgstr "Šįńįźįėž įšļóõķäåčåßōå źįé ģåōÜ šįōŽóōå Ctrl-Alt-BackSpace"
-
-#: ../../Xconfigurator_consts.pm_.c:6
-msgid "256 colors (8 bits)"
-msgstr "256 ÷ńžģįōį (8 bits)"
-
-#: ../../Xconfigurator_consts.pm_.c:7
-msgid "32 thousand colors (15 bits)"
-msgstr "32 ÷éėéÜäåņ ÷ńžģįōį (15 bits)"
-
-#: ../../Xconfigurator_consts.pm_.c:8
-msgid "65 thousand colors (16 bits)"
-msgstr "65 ÷éėéÜäåņ ÷ńžģįōį (16 bits)"
-
-#: ../../Xconfigurator_consts.pm_.c:9
-msgid "16 million colors (24 bits)"
-msgstr "16 åźįōļģģżńéį ÷ńžģįōį (24 bits)"
-
-#: ../../Xconfigurator_consts.pm_.c:10
-msgid "4 billion colors (32 bits)"
-msgstr "4 äéóåźįōļģģżńéį ÷ńžģįōį (32 bits)"
-
-#: ../../Xconfigurator_consts.pm_.c:113
-msgid "256 kB"
-msgstr "256 kb"
-
-#: ../../Xconfigurator_consts.pm_.c:114
-msgid "512 kB"
-msgstr "512 kb"
-
-#: ../../Xconfigurator_consts.pm_.c:115
-msgid "1 MB"
-msgstr "1 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:116
-msgid "2 MB"
-msgstr "2 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:117
-msgid "4 MB"
-msgstr "4 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:118
-msgid "8 MB"
-msgstr "8 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:119
-msgid "16 MB"
-msgstr "16 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:120
-msgid "32 MB"
-msgstr "32 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:121
-msgid "64 MB or more"
-msgstr "64 MB Ž šåńéóóüōåńį"
-
-#: ../../Xconfigurator_consts.pm_.c:129
-msgid "Standard VGA, 640x480 at 60 Hz"
-msgstr "Standard VGA, 640x480 óōį 60 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:130
-msgid "Super VGA, 800x600 at 56 Hz"
-msgstr "Super VGA, 800x600 óōį 56 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:131
-msgid "8514 Compatible, 1024x768 at 87 Hz interlaced (no 800x600)"
-msgstr "8514 Compatible, 1024x768 óōį 87 Hz interlaced (no 800x600)"
-
-#: ../../Xconfigurator_consts.pm_.c:132
-msgid "Super VGA, 1024x768 at 87 Hz interlaced, 800x600 at 56 Hz"
-msgstr "Super VGA, 1024x768 óōį 87 Hz interlaced, 800x600 óōį 56 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:133
-msgid "Extended Super VGA, 800x600 at 60 Hz, 640x480 at 72 Hz"
-msgstr "Extended Super VGA, 800x600 óōį 60 Hz, 640x480 óōį 72 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:134
-msgid "Non-Interlaced SVGA, 1024x768 at 60 Hz, 800x600 at 72 Hz"
-msgstr "Non-Interlaced SVGA, 1024x768 óōį 60 Hz, 800x600 óōį 72 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:135
-msgid "High Frequency SVGA, 1024x768 at 70 Hz"
-msgstr "High Frequency SVGA, 1024x768 óōį 70 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:136
-msgid "Multi-frequency that can do 1280x1024 at 60 Hz"
-msgstr "Multi-frequency šļõ ģšļńåß ķį įšåéźļķßóåé įķÜėõóē 1280x1024 óōį 60 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:137
-msgid "Multi-frequency that can do 1280x1024 at 74 Hz"
-msgstr "Multi-frequency šļõ ģšļńåß ķį įšåéźļķßóåé įķÜėõóē 1280x1024 óōį 74 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:138
-msgid "Multi-frequency that can do 1280x1024 at 76 Hz"
-msgstr "Multi-frequency šļõ ģšļńåß ķį įšåéźļķßóåé įķÜėõóē 1280x1024 óōį 76 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:139
-msgid "Monitor that can do 1600x1200 at 70 Hz"
-msgstr "Ļčüķē šļõ ģšļńåß ķį įšåéźļķßóåé įķÜėõóē 1600x1200 óōį 70 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:140
-msgid "Monitor that can do 1600x1200 at 76 Hz"
-msgstr "Ļčüķē šļõ ģšļńåß ķį įšåéźļķßóåé įķÜėõóē 1600x1200 óōį 76 Hz"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141
-msgid "First sector of boot partition"
-msgstr "Šńžōļņ ōļģŻįņ ōēņ źįōÜōģēóēņ åźźßķēóēņ"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141 ../../any.pm_.c:218
-msgid "First sector of drive (MBR)"
-msgstr "Šńžōļņ ōļģŻįņ ōļõ äßóźļõ (MBR)"
-
-#: ../../any.pm_.c:120
-msgid "SILO Installation"
-msgstr "ÅćźįōÜóōįóē SILO"
-
-#: ../../any.pm_.c:121 ../../any.pm_.c:134
-msgid "Where do you want to install the bootloader?"
-msgstr "Šļż čŻėåōå ķį åćźįōįóōŽóåōå ōļ šńüćńįģģį åźźßķēóēņ;"
-
-#: ../../any.pm_.c:133
-msgid "LILO/grub Installation"
-msgstr "ÅćźįōÜóōįóē LILO/grub"
-
-#: ../../any.pm_.c:145 ../../any.pm_.c:159
-msgid "SILO"
-msgstr "SILO"
-
-#: ../../any.pm_.c:147
-msgid "LILO with text menu"
-msgstr "LILO ģå ģåķļż źåéģŻķļõ"
-
-#: ../../any.pm_.c:148 ../../any.pm_.c:159
-msgid "LILO with graphical menu"
-msgstr "LILO ģå ćńįöéźü ģåķļż"
-
-#: ../../any.pm_.c:151
-msgid "Grub"
-msgstr "Grub"
-
-#: ../../any.pm_.c:155
-msgid "Boot from DOS/Windows (loadlin)"
-msgstr "Åźźßķēóē įšü ōļ DOS/Windows (loadlin)"
-
-#: ../../any.pm_.c:157 ../../any.pm_.c:159
-msgid "Yaboot"
-msgstr "Yaboot"
-
-#: ../../any.pm_.c:166 ../../any.pm_.c:198
-msgid "Bootloader main options"
-msgstr "Āįó韯ņ åšéėļćŻņ šńļćńÜģģįōļņ åźźßķēóēņ"
-
-#: ../../any.pm_.c:167 ../../any.pm_.c:199
-msgid "Bootloader to use"
-msgstr "Bootloader ćéį ÷ńŽóē"
-
-#: ../../any.pm_.c:169
-msgid "Bootloader installation"
-msgstr "ÅćźįōÜóōįóē šńļćńÜģģįōļņ åźźßķēóēņ"
-
-#: ../../any.pm_.c:171 ../../any.pm_.c:201
-msgid "Boot device"
-msgstr "ÓõóźåõŽ åźźßķēóēņ"
-
-#: ../../any.pm_.c:172
-msgid "LBA (doesn't work on old BIOSes)"
-msgstr "LBA (äåķ ėåéōļõńćåß ģå šįėįéüōåńį BIOS)"
-
-#: ../../any.pm_.c:173
-msgid "Compact"
-msgstr "ÓõģšįćŽņ"
-
-#: ../../any.pm_.c:173
-msgid "compact"
-msgstr "óõģšįćŽņ"
-
-#: ../../any.pm_.c:174 ../../any.pm_.c:298
-msgid "Video mode"
-msgstr "ĮķÜėõóē ļčüķēņ"
-
-#: ../../any.pm_.c:176
-msgid "Delay before booting default image"
-msgstr "ŹįčõóōŻńēóē šńéķ ōēķ åźźéķēóē"
-
-#: ../../any.pm_.c:178 ../../any.pm_.c:796
-#: ../../install_steps_interactive.pm_.c:1115 ../../network/modem.pm_.c:48
-#: ../../printerdrake.pm_.c:708 ../../printerdrake.pm_.c:806
-#: ../../standalone/draknet_.c:625
-msgid "Password"
-msgstr "Óõķčēģįōéźü"
-
-#: ../../any.pm_.c:179 ../../any.pm_.c:797
-#: ../../install_steps_interactive.pm_.c:1116
-msgid "Password (again)"
-msgstr "Óõķčēģįōéźü (īįķÜ)"
-
-#: ../../any.pm_.c:180
-msgid "Restrict command line options"
-msgstr "Įšįćüńåõóē åšéėļćžķ ćńįģģŽņ åķōļėŽņ"
-
-#: ../../any.pm_.c:180
-msgid "restrict"
-msgstr "įšįćüńåõóē"
-
-#: ../../any.pm_.c:182
-msgid "Clean /tmp at each boot"
-msgstr "Źįčįńéóģüņ /tmp óå źÜčå åźźßķēóē"
-
-#: ../../any.pm_.c:183
-#, c-format
-msgid "Precise RAM size if needed (found %d MB)"
-msgstr "ĮźńéāŽņ šļóüōēōįņ ģķŽģēņ įķ ÷ńåéÜęåōįé (Ż÷ł åķōļšßóåé %d MB)"
-
-#: ../../any.pm_.c:185
-msgid "Enable multi profiles"
-msgstr "Åķåńćļšļßēóē šļėėįšėžķ profiles"
-
-#: ../../any.pm_.c:189
-msgid "Give the ram size in MB"
-msgstr "ÅéóÜćåōå ģŻćåčļņ ģķŽģēņ óå Mb"
-
-#: ../../any.pm_.c:191
-msgid ""
-"Option ``Restrict command line options'' is of no use without a password"
-msgstr ""
-"Ē åšéėļćŽ ``Įšįćüńåõóē åšéėļćžķ ćńįģģŽņ åķōļėŽņ'' åßķįé Ü÷ńēóōē ÷łńßņ "
-"óõķčēģįōéźü"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../diskdrake/interactive.pm_.c:1135
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "Please try again"
-msgstr "Šįńįźįėž šńļóšįčŽóōå īįķÜ"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "The passwords do not match"
-msgstr "Ōį óõķčēģįōéźÜ åßķįé įķüģļéį"
-
-#: ../../any.pm_.c:200
-msgid "Init Message"
-msgstr "ĢŽķõģį Init"
-
-#: ../../any.pm_.c:202
-msgid "Open Firmware Delay"
-msgstr "¶ķļéćģį ŹįčõóōŻńēóēņ Firmware"
-
-#: ../../any.pm_.c:203
-msgid "Kernel Boot Timeout"
-msgstr "ŌŻėļņ ×ńüķļõ Åźźßķēóēņ ŠõńŽķį"
-
-#: ../../any.pm_.c:204
-msgid "Enable CD Boot?"
-msgstr "Åķåńćļšļßēóē åźźßķēóēņ įšü CD;"
-
-#: ../../any.pm_.c:205
-msgid "Enable OF Boot?"
-msgstr "Åķåńćļšļßēóē OF åźźßķēóēņ;"
-
-#: ../../any.pm_.c:206
-msgid "Default OS?"
-msgstr "Åī' ļńéóģļż ėåéōļõńćéźü óżóōēģį;"
-
-#: ../../any.pm_.c:240
-msgid ""
-"You decided to install the bootloader on a partition.\n"
-"This implies you already have a bootloader on the hard drive you boot (eg: "
-"System Commander).\n"
-"\n"
-"On which drive are you booting?"
-msgstr ""
-
-#: ../../any.pm_.c:255
-msgid ""
-"Here are the different entries.\n"
-"You can add some more or change the existing ones."
-msgstr ""
-"ÕšÜń÷ļõķ ļé įźüėļõčåņ åšéėļćŻņ.\n"
-"Ģšļńåßōå ķį šńļóčŻóåōå źé Üėėåņ Ž ķį įėėÜīåōå ōéņ õšÜń÷ļõóåņ."
-
-#: ../../any.pm_.c:265 ../../standalone/drakbackup_.c:752
-#: ../../standalone/drakbackup_.c:861 ../../standalone/drakfont_.c:789
-#: ../../standalone/drakfont_.c:826
-msgid "Add"
-msgstr "Šńļó莟ē"
-
-#: ../../any.pm_.c:265 ../../any.pm_.c:784 ../../diskdrake/hd_gtk.pm_.c:153
-#: ../../diskdrake/removable.pm_.c:27 ../../diskdrake/smbnfs_gtk.pm_.c:86
-#: ../../interactive_http.pm_.c:153
-msgid "Done"
-msgstr "Ļėļźėēńžčēźå"
-
-#: ../../any.pm_.c:265
-msgid "Modify"
-msgstr "Ōńļšļšļßēóē"
-
-#: ../../any.pm_.c:273
-msgid "Which type of entry do you want to add?"
-msgstr "Ōß ōżšļõ åšéėļćŽ čŻėåōå ķį šńļóčŻóåōå"
-
-#: ../../any.pm_.c:274 ../../standalone/drakbackup_.c:895
-msgid "Linux"
-msgstr "Linux"
-
-#: ../../any.pm_.c:274
-msgid "Other OS (SunOS...)"
-msgstr "¶ėėļ ėåéōļõńćéźü (SunOS...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (MacOS...)"
-msgstr "¶ėėļ ėåéōļõńćéźü (MacOS...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (windows...)"
-msgstr "¶ėėļ ėåéōļõńćéźü (windows...)"
-
-#: ../../any.pm_.c:294
-msgid "Image"
-msgstr "Image"
-
-#: ../../any.pm_.c:295 ../../any.pm_.c:306
-msgid "Root"
-msgstr "Root"
-
-#: ../../any.pm_.c:296 ../../any.pm_.c:325
-msgid "Append"
-msgstr "Append"
-
-#: ../../any.pm_.c:300
-msgid "Initrd"
-msgstr "Initrd"
-
-#: ../../any.pm_.c:301
-msgid "Read-write"
-msgstr "Read-write"
-
-#: ../../any.pm_.c:308
-msgid "Table"
-msgstr "Šßķįźįņ"
-
-#: ../../any.pm_.c:309
-msgid "Unsafe"
-msgstr "ĮķįóöįėŻņ"
-
-#: ../../any.pm_.c:316 ../../any.pm_.c:321 ../../any.pm_.c:324
-msgid "Label"
-msgstr "Åō韯ōōį"
-
-#: ../../any.pm_.c:318 ../../any.pm_.c:329
-msgid "Default"
-msgstr "ÅšéėļćŽ åī' ļńéóģļż"
-
-#: ../../any.pm_.c:326
-msgid "Initrd-size"
-msgstr "Initrd-ģŻćåčļņ"
-
-#: ../../any.pm_.c:328
-msgid "NoVideo"
-msgstr "׳ńßņVideo"
-
-#: ../../any.pm_.c:336
-msgid "Remove entry"
-msgstr "Įöįßńåóē åšéėļćŽņ"
-
-#: ../../any.pm_.c:339
-msgid "Empty label not allowed"
-msgstr "Äåķ åšéōńŻšåōįé Üäåéį åō韯ōōį"
-
-#: ../../any.pm_.c:340
-msgid "You must specify a kernel image"
-msgstr ""
-
-#: ../../any.pm_.c:340
-#, fuzzy
-msgid "You must specify a root partition"
-msgstr "ŠńŻšåé ķį Ż÷åōå ģéį źįōÜōģēóē swap"
-
-#: ../../any.pm_.c:341
-msgid "This label is already used"
-msgstr "ĮõōŽ ē åōéźåōōį ÷ńēóéģļšļéåßōįé Žäē"
-
-#: ../../any.pm_.c:656
-#, c-format
-msgid "Found %s %s interfaces"
-msgstr "ĀńŽźį %s %s šńļóįńģļćåßņ"
-
-#: ../../any.pm_.c:657
-msgid "Do you have another one?"
-msgstr "ø÷åōå įėėļķ;"
-
-#: ../../any.pm_.c:658
-#, c-format
-msgid "Do you have any %s interfaces?"
-msgstr "ø÷åōå źÜšļéļķ šńļóįńģļćŻį %s;"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:832 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "No"
-msgstr "¼÷é"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:831 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "Yes"
-msgstr "Ķįé"
-
-#: ../../any.pm_.c:661
-msgid "See hardware info"
-msgstr "ŠńļāļėŽ šėēńļöļńéžķ õėéźļż"
-
-#. -PO: the first %s is the card type (scsi, network, sound,...)
-#. -PO: the second is the vendor+model name
-#: ../../any.pm_.c:695
-#, c-format
-msgid "Installing driver for %s card %s"
-msgstr "ÅćźįōÜóōįóē ļäēćļż ćéį %s źÜńōį %s"
-
-#: ../../any.pm_.c:696
-#, c-format
-msgid "(module %s)"
-msgstr "(module %s)"
-
-#. -PO: the %s is the driver type (scsi, network, sound,...)
-#: ../../any.pm_.c:707
-#, c-format
-msgid "Which %s driver should I try?"
-msgstr "Šļéüķ %s ļäēćü ķį äļźéģÜół;"
-
-#: ../../any.pm_.c:715
-#, c-format
-msgid ""
-"In some cases, the %s driver needs to have extra information to work\n"
-"properly, although it normally works fine without. Would you like to "
-"specify\n"
-"extra options for it or allow the driver to probe your machine for the\n"
-"information it needs? Occasionally, probing will hang a computer, but it "
-"should\n"
-"not cause any damage."
-msgstr ""
-"Óå ģåń韯ņ šåńéšōžóåéņ, ļ %s ļäēćüņ ÷ńåéÜęåōįé åšéšėŻļķ šįńįģŻōńļõņ ćéį\n"
-"ķį ėåéōļõńćŽóåé ółóōÜ, šįń' üėļ šļõ óõķŽčłņ ėåéōļõńćåß źįé ÷łńßņ įõōŻņ.\n"
-"Čį čŻėįōå ķį äžóåōå åšéšėŻļķ åšéėļćŻņ Ž ķį įöŽóåōå ōļķ ļäēćü ķį åīåōÜóåé\n"
-"ōļ õėéźü óįņ ćéį ōéņ šįńįģŻōńļõņ šļõ ÷ńåéÜęåōįé; Ē åīŻōįóē įõōŽ ßółņ\n"
-"šńļźįėŻóåé źüėėēģį ōļõ óõóōŽģįōļņ, įėėÜ äåķ čį šńļźįėŻóåé āėÜāē."
-
-#: ../../any.pm_.c:720
-msgid "Autoprobe"
-msgstr "Įõōüģįōē åīŻōįóē"
-
-#: ../../any.pm_.c:720
-msgid "Specify options"
-msgstr "Šńļóäéļńéóģüņ šįńįģŻōńłķ"
-
-#: ../../any.pm_.c:725
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Note that any address should be entered with the prefix 0x like '0x123'"
-msgstr ""
-
-#: ../../any.pm_.c:731
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Options are in format ``name=value name2=value2 ...''.\n"
-"For instance, ``io=0x300 irq=7''"
-msgstr ""
-"Ģšļńåßōå ōžńį ķį äžóåōå ōéņ šįńįģŻōńļõņ ćéį ōļķ ļäēćü %s.\n"
-"Ļé šįńÜģåōńļé Ż÷ļõķ ōēķ ģļńöŽ ``üķļģį=ōéģŽ üķļģį2=ōéģŽ2 ...''.\n"
-"Ćéį šįńÜäåéćģį, ``io=0x300 irq=7''"
-
-#: ../../any.pm_.c:734
-msgid "Module options:"
-msgstr "ŠįńÜģåōńļé ļäēćļż"
-
-#: ../../any.pm_.c:745
-#, c-format
-msgid ""
-"Loading module %s failed.\n"
-"Do you want to try again with other parameters?"
-msgstr ""
-"Ē öļńōłóē ōļõ ļäēćļż %s įšåōõ÷å.\n"
-"ČŻėåōå ķį äļźéģÜóåōå īįķÜ ģå äéįöļńåō韯ņ šįńįģŻōńļõņ;"
-
-#: ../../any.pm_.c:761
-msgid "access to X programs"
-msgstr ""
-
-#: ../../any.pm_.c:762
-msgid "access to rpm tools"
-msgstr ""
-
-#: ../../any.pm_.c:763
-msgid "allow \"su\""
-msgstr ""
-
-#: ../../any.pm_.c:764
-msgid "access to administrative files"
-msgstr ""
-
-#: ../../any.pm_.c:769
-#, c-format
-msgid "(already added %s)"
-msgstr "(ōļ %s Ż÷åé Žäē šńļóōåčåß)"
-
-#: ../../any.pm_.c:774
-msgid "This password is too simple"
-msgstr "Ōļ óõķčēģįōéźü åßķįé šļėż įšėü"
-
-#: ../../any.pm_.c:775
-msgid "Please give a user name"
-msgstr "Šįńįźįėž åéóÜćåōå źłäéźü üķļģį"
-
-#: ../../any.pm_.c:776
-msgid ""
-"The user name must contain only lower cased letters, numbers, `-' and `_'"
-msgstr ""
-"Ōļ źłäéźü üķļģį ģšļńåß ķį šåńéŻ÷åé ģüķļ šåęÜ ćńÜģģįōį, įńéčģļżņ, `-' źįé `_'"
-
-#: ../../any.pm_.c:777
-msgid "This user name is already added"
-msgstr "Įõōü ōļ źłäéźü üķļģį õšÜń÷åé Žäē"
-
-#: ../../any.pm_.c:781
-msgid "Add user"
-msgstr "Šńļó莟ē ÷ńŽóōē"
-
-#: ../../any.pm_.c:782
-#, c-format
-msgid ""
-"Enter a user\n"
-"%s"
-msgstr ""
-"ÅéóÜćåōå ÷ńŽóōē\n"
-"%s"
-
-#: ../../any.pm_.c:783
-msgid "Accept user"
-msgstr "Įšļäļ÷Ž ÷ńŽóōē"
-
-#: ../../any.pm_.c:794
-msgid "Real name"
-msgstr "Šńįćģįōéźü üķļģį"
-
-#: ../../any.pm_.c:795 ../../printerdrake.pm_.c:707
-#: ../../printerdrake.pm_.c:805
-msgid "User name"
-msgstr "Źłäéźü üķļģį"
-
-#: ../../any.pm_.c:798
-msgid "Shell"
-msgstr "Öėļéüņ (shell)"
-
-#: ../../any.pm_.c:800
-msgid "Icon"
-msgstr "Åéźļķßäéļ"
-
-#: ../../any.pm_.c:828
-msgid "Autologin"
-msgstr "Įõōüģįōē óżķäåóē (Autologin)"
-
-#: ../../any.pm_.c:829
-#, fuzzy
-msgid ""
-"I can set up your computer to automatically log on one user.\n"
-"Do you want to use this feature?"
-msgstr ""
-"Ģšļńž ķį ńõčģßół ōļ óżóōēģÜ óįņ Żōóé žóōå ķį óõķäŻåōįé įõōüģįōį źįōÜ\n"
-"ōēķ åźźßķēóē óå Żķįķ óõćźåźńéģŻķļ ÷ńŽóōē.\n"
-"ÅÜķ äåķ čŻėåōå ķį óõģāįßķåé įõōü, šįōŽóōå óōļ źļõģšß įźżńłóēņ."
-
-#: ../../any.pm_.c:833
-msgid "Choose the default user:"
-msgstr "ÅšéėŻīōå ōļķ åī' ļńéóģļż ÷ńŽóōē:"
-
-#: ../../any.pm_.c:834
-msgid "Choose the window manager to run:"
-msgstr "ÅšéėŻīōå ōļķ äéį÷åéńéóōŽ šįńįčżńłķ šļõ čŻėåōå ķį ÷ńēóéģļšļéŽóåōå"
-
-#: ../../any.pm_.c:849
-#, fuzzy
-msgid "Please choose a language to use."
-msgstr "Šįńįźįėž åšéėŻīōå ģéį ćėžóóį."
-
-#: ../../any.pm_.c:851
-msgid "You can choose other languages that will be available after install"
-msgstr ""
-"Ģšļńåßōå ķį åšéėŻīåōå źįé Üėėåņ ćėžóóåņ šļõ čį åßķįé äéįčŻóéģåņ ģåōÜ ōļ "
-"šŻńįņ ōēņ åćźįōÜóōįóēņ"
-
-#: ../../any.pm_.c:863 ../../install_steps_interactive.pm_.c:719
-#: ../../standalone/drakxtv_.c:54
-msgid "All"
-msgstr "¼ėį"
-
-#: ../../any.pm_.c:955
-#, fuzzy
-msgid "Allow all users"
-msgstr "Šńļó莟ē ÷ńŽóōē"
-
-#: ../../any.pm_.c:955 ../../install_steps_interactive.pm_.c:521
-msgid "Custom"
-msgstr "ŠńļóįńģļóģŻķļ"
-
-#: ../../any.pm_.c:955
-#, fuzzy
-msgid "No sharing"
-msgstr "Åźźßķēóē CUPS"
-
-#: ../../any.pm_.c:965 ../../network/smbnfs.pm_.c:45
-#, fuzzy, c-format
-msgid "The package %s needs to be installed. Do you want to install it?"
-msgstr ""
-"Įõōü ōļ šįźŻōļ šńŻšåé ķį įķįāįčģéóōåß\n"
-"Åßóōå óßćļõńļņ üōé čŻėåōå ķį ōļ įšļåšéėŻīåōå;"
-
-#: ../../any.pm_.c:968
-msgid "You can export using NFS or Samba. Which one do you want"
-msgstr ""
-
-#: ../../any.pm_.c:976 ../../network/smbnfs.pm_.c:49
-#, c-format
-msgid "Mandatory package %s is missing"
-msgstr ""
-
-#: ../../any.pm_.c:982
-msgid ""
-"Do you want to allow users to export some directories in their home?\n"
-"Allowing this will permit users to simply click on \"Share\" in konqueror "
-"and nautilus.\n"
-"\n"
-"\"Custom\" permit a per-user granularity.\n"
-msgstr ""
-
-#: ../../any.pm_.c:996 ../../bootlook.pm_.c:161
-#: ../../diskdrake/smbnfs_gtk.pm_.c:85 ../../install_steps_gtk.pm_.c:464
-#: ../../install_steps_gtk.pm_.c:522 ../../install_steps_interactive.pm_.c:594
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_stdio.pm_.c:141
-#: ../../my_gtk.pm_.c:687 ../../my_gtk.pm_.c:690 ../../my_gtk.pm_.c:1019
-#: ../../network/netconnect.pm_.c:47 ../../printerdrake.pm_.c:1586
-#: ../../standalone/drakautoinst_.c:204 ../../standalone/drakbackup_.c:2264
-#: ../../standalone/drakbackup_.c:2289 ../../standalone/drakbackup_.c:2310
-#: ../../standalone/drakbackup_.c:2331 ../../standalone/drakbackup_.c:2349
-#: ../../standalone/drakbackup_.c:2397 ../../standalone/drakbackup_.c:2417
-#: ../../standalone/drakbackup_.c:2436 ../../standalone/drakfont_.c:767
-#: ../../standalone/drakgw_.c:721 ../../standalone/draknet_.c:116
-#: ../../standalone/draknet_.c:148 ../../standalone/draknet_.c:290
-#: ../../standalone/draknet_.c:538 ../../standalone/draknet_.c:680
-#: ../../standalone/logdrake_.c:225 ../../standalone/logdrake_.c:512
-#: ../../standalone/tinyfirewall_.c:65
-msgid "Cancel"
-msgstr "Įźżńłóē"
-
-#: ../../any.pm_.c:996
-msgid "Launch userdrake"
-msgstr ""
-
-#: ../../any.pm_.c:998
-msgid ""
-"The per-user sharing uses the group \"fileshare\". \n"
-"You can use userdrake to add a user in this group."
-msgstr ""
-
-#: ../../any.pm_.c:1035
-msgid "Welcome To Crackers"
-msgstr "Źįėžņ Žńčįōå óōļõņ Crackers"
-
-#: ../../any.pm_.c:1036
-msgid "Poor"
-msgstr "Öōł÷ü"
-
-#: ../../any.pm_.c:1037 ../../mouse.pm_.c:31
-msgid "Standard"
-msgstr "Ōõšéźü"
-
-#: ../../any.pm_.c:1038
-msgid "High"
-msgstr "Õųēėü"
-
-#: ../../any.pm_.c:1039
-#, fuzzy
-msgid "Higher"
-msgstr "Õųēėü"
-
-#: ../../any.pm_.c:1040
-msgid "Paranoid"
-msgstr "Šįńįķļśźü"
-
-#: ../../any.pm_.c:1043
-msgid ""
-"This level is to be used with care. It makes your system more easy to use,\n"
-"but very sensitive: it must not be used for a machine connected to others\n"
-"or to the Internet. There is no password access."
-msgstr ""
-"Įõōü ōļ åšßšåäļ šńŻšåé ķį ÷ńēóéģļšļéēčåß ģå šńļóļ÷Ž. ŹÜķåé ōļ óżóōēģÜ óįņ\n"
-"šéļ åõźļėü÷ńēóōļ, įėėÜ šļėż åõįßóčēōļ. Äåķ šńŻšåé ķį ÷ńēóéģļšļéēčåß óå "
-"óżóōēģį\n"
-"óõķäåäåģŻķļ óōļ Internet Ž LAN. Äåķ õšÜń÷ļõķ ėŻīåéņ źėåéäéÜ."
-
-#: ../../any.pm_.c:1046
-msgid ""
-"Password are now enabled, but use as a networked computer is still not "
-"recommended."
-msgstr ""
-"Ōžńį õšÜń÷ļõķ ėŻīåéņ źėåéäéÜ, įėėÜ ē ÷ńŽóē ōļõ óõóōŽģįōļņ óå äßźōõļ \n"
-"äåķ óõķßóōįōįé."
-
-#: ../../any.pm_.c:1047
-#, fuzzy
-msgid ""
-"This is the standard security recommended for a computer that will be used "
-"to connect to the Internet as a client."
-msgstr ""
-"Įõōü åßķįé ōļ óõķēčéóģŻķļ åšßšåäļ įóöįėåßįņ ćéį Żķį óżóōēģį šļõ čį óõķäåčåß\n"
-"łņ šåėÜōēņ óōļ Internet. ÕšÜń÷ļõķ ōžńį Żėåć÷ļé įóöįėåßįņ."
-
-#: ../../any.pm_.c:1048
-msgid ""
-"There are already some restrictions, and more automatic checks are run every "
-"night."
-msgstr ""
-
-#: ../../any.pm_.c:1049
-#, fuzzy
-msgid ""
-"With this security level, the use of this system as a server becomes "
-"possible.\n"
-"The security is now high enough to use the system as a server which accept\n"
-"connections from many clients. Note: if your machine is only a client on the "
-"Internet, you should better choose a lower level."
-msgstr ""
-"Ģå įõōü ōļ åšßšåäļ įóöįėåßįņ åßķįé äõķįōŽ ē ÷ńŽóē ōļõ óõóōŽģįōļņ óōļ \n"
-"Internet łņ åīõšēńåōēōŽ. Ē įóöÜėåéį åßķįé įńźåōÜ õųēėŽ žóōå ķį äŻ÷åōįé\n"
-"ōįõōü÷ńļķåņ óõķäŻóåéņ įšü šļėėļżņ šåėÜōåņ."
-
-#: ../../any.pm_.c:1052
-#, fuzzy
-msgid ""
-"Based on the previous level, but the system is entirely closed.\n"
-"Security features are at their maximum."
-msgstr ""
-"ĮóöÜėåéį åšéšŻäļõ 4, ģå ōļ óżóōēģį ōåėåßłņ źėåéóōü. ĮóöÜėåéį \n"
-"óōļ ģŻćéóōļ äõķįōü."
-
-#: ../../any.pm_.c:1058
-msgid "Choose security level"
-msgstr "ÅšéėŻīōå åšßšåäļ įóöįėåßįņ"
-
-#: ../../any.pm_.c:1061
-#, fuzzy
-msgid "Security level"
-msgstr "Ńżčģéóē åšéšŻäļõ įóöįėåßįņ"
-
-#: ../../any.pm_.c:1063
-#, fuzzy
-msgid "Use libsafe for servers"
-msgstr "Ńõčģßóåéņ X server"
-
-#: ../../any.pm_.c:1064
-msgid ""
-"A library which defends against buffer overflow and format string attacks."
-msgstr ""
-
-# NOTE: this message will be displayed at boot time; that is
-# only the ascii charset will be available on most machines
-# so use only 7bit for this message (and do transliteration or
-# leave it in English, as it is the best for your language)
-#
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#: ../../bootloader.pm_.c:355
-#, c-format
-msgid ""
-"Welcome to %s the operating system chooser!\n"
-"\n"
-"Choose an operating system in the list above or\n"
-"wait %d seconds for default boot.\n"
-"\n"
-msgstr ""
-"KALOS HRTHATE STON EPILOGEA LEITOURGIKOU SYSTHMATOS %s!\n"
-"\n"
-"EPILEXTE LEITORGIKO SYSTHMA APO TON PARAPANO KATALOGO \n"
-"H PERIMENETE %d DEUTEROLEPTA GIA THN AYTOMATH EPILOGH.\n"
-"\n"
-
-# NOTE: this message will be displayed by grub at boot time; that is
-# using the BIOS font; that means cp437 charset on 99.99% of PC computers
-# out there. It is the nsuggested that for non latin languages an ascii
-# transliteration be used; or maybe the english text be used; as it is best
-#
-# The lines must fit on screen, aka length < 80
-#
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:928
-msgid "Welcome to GRUB the operating system chooser!"
-msgstr "Welcome to GRUB the operating system chooser!"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:931
-#, c-format
-msgid "Use the %c and %c keys for selecting which entry is highlighted."
-msgstr "Use the %c and %c keys for selecting which entry is highlighted."
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:934
-msgid "Press enter to boot the selected OS, 'e' to edit the"
-msgstr "Press enter to boot the selected OS, 'e' to edit the"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:937
-msgid "commands before booting, or 'c' for a command-line."
-msgstr "commands before booting, or 'c' for a command-line."
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:940
-#, c-format
-msgid "The highlighted entry will be booted automatically in %d seconds."
-msgstr "The highlighted entry will be booted automatically in %d seconds."
-
-#: ../../bootloader.pm_.c:944
-msgid "not enough room in /boot"
-msgstr "äåķ õšÜń÷åé įńźåōüņ ÷žńļņ óōļ /boot"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#. -PO: so you may need to put them in English or in a different language if MS-windows doesn't exist in your language
-#: ../../bootloader.pm_.c:1044
-msgid "Desktop"
-msgstr "Desktop"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#: ../../bootloader.pm_.c:1046
-msgid "Start Menu"
-msgstr "Start Menu"
-
-#: ../../bootloader.pm_.c:1065
-#, fuzzy, c-format
-msgid "You can't install the bootloader on a %s partition\n"
-msgstr "Šļż čŻėåōå ķį åćźįōįóōŽóåōå ōļ šńüćńįģģį åźźßķēóēņ;"
-
-#: ../../bootlook.pm_.c:46
-msgid "no help implemented yet.\n"
-msgstr "äåķ õšÜń÷åé āļŽčåéį äéįčŻóéģē įźüģį.\n"
-
-#: ../../bootlook.pm_.c:62
-msgid "Boot Style Configuration"
-msgstr "Boot Ōżšļõ Ńżčģéóē"
-
-#: ../../bootlook.pm_.c:79 ../../standalone/logdrake_.c:101
-msgid "/_File"
-msgstr "/_Įń÷åßļ"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "/File/_Quit"
-msgstr "/Įń÷åßļ/ø_īļäļņ"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "<control>Q"
-msgstr "<control>Q"
-
-#: ../../bootlook.pm_.c:91
-msgid "NewStyle Categorizing Monitor"
-msgstr "NewStyle Categorizing Ļčüķē"
-
-#: ../../bootlook.pm_.c:92
-msgid "NewStyle Monitor"
-msgstr "NewStyle Ļčüķē"
-
-#: ../../bootlook.pm_.c:93
-msgid "Traditional Monitor"
-msgstr "ŠįńįäļóéįźŽ Ļčüķē"
-
-#: ../../bootlook.pm_.c:94
-msgid "Traditional Gtk+ Monitor"
-msgstr "ŠįńįäļóéįźŽ Gtk+ Ļčüķē"
-
-#: ../../bootlook.pm_.c:95
-msgid "Launch Aurora at boot time"
-msgstr "Åźźßķēóē ōļõ Aurora źįōÜ ōēķ åźźßķēóē ōļõ óõóōŽģįōļņ"
-
-#: ../../bootlook.pm_.c:98
-msgid "Lilo/grub mode"
-msgstr "Ėåéōļõńćßį Lilo/grub"
-
-#: ../../bootlook.pm_.c:98
-msgid "Yaboot mode"
-msgstr "Ėåéōļõńćßį Yaboot"
-
-#: ../../bootlook.pm_.c:104
-#, c-format
-msgid ""
-"You are currently using %s as Boot Manager.\n"
-"Click on Configure to launch the setup wizard."
-msgstr ""
-"×ńēóéģļšļéåßōå ōļķ %s łņ Boot Manager.\n"
-"ŹÜķōå źėßź óōļ Ńżčģéóē ćéį ķį īåźéķŽóåōå ōļķ ļäēćü åćźįōÜóōįóēņ."
-
-#: ../../bootlook.pm_.c:106 ../../standalone/drakbackup_.c:1467
-#: ../../standalone/drakbackup_.c:1478 ../../standalone/drakgw_.c:715
-#: ../../standalone/tinyfirewall_.c:59
-msgid "Configure"
-msgstr "Ńżčģéóē"
-
-#: ../../bootlook.pm_.c:141
-msgid "System mode"
-msgstr "ŹįōÜóōįóē óõóōŽģįōļņ"
-
-#: ../../bootlook.pm_.c:143
-msgid "Launch the X-Window system at start"
-msgstr "¶ķļéćģį ōļõ X-Window źįōÜ ōēķ åźźßķēóē ōļõ óõóōŽģįōļņ"
-
-#: ../../bootlook.pm_.c:148
-msgid "No, I don't want autologin"
-msgstr "¼÷é, äåķ åšéčõģž įõōüģįōļ login"
-
-#: ../../bootlook.pm_.c:150
-msgid "Yes, I want autologin with this (user, desktop)"
-msgstr "Ķįé, åšéčõģž įõōüģįōļ login ģå įõōü (user, desktop)"
-
-#: ../../bootlook.pm_.c:160 ../../network/netconnect.pm_.c:102
-#: ../../standalone/drakbackup_.c:2441 ../../standalone/drakbackup_.c:3345
-#: ../../standalone/drakfont_.c:532 ../../standalone/drakfont_.c:655
-#: ../../standalone/drakfont_.c:719 ../../standalone/drakfont_.c:765
-#: ../../standalone/draknet_.c:109 ../../standalone/draknet_.c:141
-#: ../../standalone/draknet_.c:297 ../../standalone/draknet_.c:436
-#: ../../standalone/draknet_.c:522 ../../standalone/draknet_.c:565
-#: ../../standalone/draknet_.c:666 ../../standalone/logdrake_.c:505
-msgid "OK"
-msgstr "OK"
-
-#: ../../bootlook.pm_.c:229
-#, c-format
-msgid "can not open /etc/inittab for reading: %s"
-msgstr "įäõķįģßį įķļßćģįōļņ ōļõ /etc/inittab ćéį įķÜćķłóē: %s"
-
-#: ../../common.pm_.c:94
-msgid "GB"
-msgstr "GB"
-
-#: ../../common.pm_.c:94
-msgid "KB"
-msgstr "KB"
-
-#: ../../common.pm_.c:94
-msgid "MB"
-msgstr "MB"
-
-#: ../../common.pm_.c:102
-msgid "TB"
-msgstr "TB"
-
-#: ../../common.pm_.c:110
-#, c-format
-msgid "%d minutes"
-msgstr "%d ėåšōÜ"
-
-#: ../../common.pm_.c:112
-msgid "1 minute"
-msgstr "1 ėåšōü"
-
-#: ../../common.pm_.c:114
-#, c-format
-msgid "%d seconds"
-msgstr "%d äåõōåńüėåšōį"
-
-#: ../../common.pm_.c:159
-#, fuzzy
-msgid "Can't make screenshots before partitioning"
-msgstr "Äåķ ģšļńž ķį šńļóčŻół źįōįōģēóåéņ"
-
-#: ../../common.pm_.c:166
-#, fuzzy, c-format
-msgid "Screenshots will be available after install in %s"
-msgstr ""
-"Ģšļńåßōå ķį åšéėŻīåōå źįé Üėėåņ ćėžóóåņ šļõ čį åßķįé äéįčŻóéģåņ ģåōÜ ōļ "
-"šŻńįņ ōēņ åćźįōÜóōįóēņ"
-
-#: ../../crypto.pm_.c:12 ../../crypto.pm_.c:26 ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "France"
-msgstr "Ćįėėéźü"
-
-#: ../../crypto.pm_.c:13
-msgid "Costa Rica"
-msgstr ""
-
-#: ../../crypto.pm_.c:14 ../../crypto.pm_.c:27
-#, fuzzy
-msgid "Belgium"
-msgstr "Āåėćéźü"
-
-#: ../../crypto.pm_.c:15 ../../crypto.pm_.c:28
-msgid "Czech Republic"
-msgstr ""
-
-#: ../../crypto.pm_.c:16 ../../crypto.pm_.c:29
-#, fuzzy
-msgid "Germany"
-msgstr "Ćåńģįķéźü"
-
-#: ../../crypto.pm_.c:17 ../../crypto.pm_.c:30
-#, fuzzy
-msgid "Greece"
-msgstr "Åėėēķéźü"
-
-#: ../../crypto.pm_.c:18 ../../crypto.pm_.c:31
-#, fuzzy
-msgid "Norway"
-msgstr "Ķļńāēćéźü"
-
-#: ../../crypto.pm_.c:19 ../../crypto.pm_.c:32
-#, fuzzy
-msgid "Sweden"
-msgstr "Óļõēäéźü"
-
-#: ../../crypto.pm_.c:20 ../../crypto.pm_.c:34
-msgid "Netherlands"
-msgstr ""
-
-#: ../../crypto.pm_.c:21 ../../crypto.pm_.c:35 ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "Italy"
-msgstr "Éōįėéźü"
-
-#: ../../crypto.pm_.c:22 ../../crypto.pm_.c:36
-#, fuzzy
-msgid "Austria"
-msgstr "óåéńéįźü"
-
-#: ../../crypto.pm_.c:33 ../../crypto.pm_.c:67
-msgid "United States"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:94
-msgid "Please make a backup of your data first"
-msgstr "Šįńįźįėž źÜķōå šńžōį Żķį įķōßćńįöļ įóöįėåßįņ ōłķ äåäļģŻķłķ óįņ"
-
-#: ../../diskdrake/hd_gtk.pm_.c:94 ../../diskdrake/interactive.pm_.c:891
-#: ../../diskdrake/interactive.pm_.c:900 ../../diskdrake/interactive.pm_.c:954
-msgid "Read carefully!"
-msgstr "ÄéįāÜóōå šńļóåźōéźÜ!"
-
-#: ../../diskdrake/hd_gtk.pm_.c:97
-msgid ""
-"If you plan to use aboot, be carefull to leave a free space (2048 sectors is "
-"enough)\n"
-"at the beginning of the disk"
-msgstr ""
-"ÅÜķ óźļšåżåōå ķį ÷ńēóéģļšļéŽóåōå ōļ aboot, šńļóŻīōå ķį įöŽóåōå åėåżčåńļ ÷žńļ "
-"2048 ōļģåßņ åßķįé įńźåōļß)\n"
-"óōēķ įń÷Ž ōļõ äßóźļõ"
-
-#: ../../diskdrake/hd_gtk.pm_.c:116 ../../diskdrake/interactive.pm_.c:325
-#: ../../diskdrake/interactive.pm_.c:340 ../../diskdrake/smbnfs_gtk.pm_.c:45
-#: ../../install_steps.pm_.c:75 ../../install_steps_interactive.pm_.c:67
-#: ../../install_steps_interactive.pm_.c:356 ../../interactive_http.pm_.c:119
-#: ../../interactive_http.pm_.c:120 ../../standalone/diskdrake_.c:84
-msgid "Error"
-msgstr "ÓöÜėģį"
-
-#: ../../diskdrake/hd_gtk.pm_.c:151
-msgid "Wizard"
-msgstr "ĢÜćļņ"
-
-#: ../../diskdrake/hd_gtk.pm_.c:181 ../../diskdrake/removable_gtk.pm_.c:24
-msgid "Choose action"
-msgstr "ÅšéėŻīōå šńÜīē"
-
-#: ../../diskdrake/hd_gtk.pm_.c:185
-msgid ""
-"You have one big FAT partition\n"
-"(generally used by MicroSoft Dos/Windows).\n"
-"I suggest you first resize that partition\n"
-"(click on it, then click on \"Resize\")"
-msgstr ""
-"ø÷åōå ģéį ģåćÜėē FAT źįōÜōģēóē\n"
-"(óõķŽčłņ ÷ńēóéģļšļéļżģåķē įšü Dos Ž Windows).\n"
-"Óõķéóōž ķį įėėÜīåōå ōļ ģŻćåčüņ ōēņ šńžōį\n"
-"(åšéėŻīōå ōēķ, ģåōÜ åšéėŻīōå \"ĮėėįćŽ ģåćŻčļõņ\")"
-
-#: ../../diskdrake/hd_gtk.pm_.c:188
-msgid "Please click on a partition"
-msgstr "Šįńįźįėž źÜķōå źėéź óå ģéį źįōÜōģēóē"
-
-#: ../../diskdrake/hd_gtk.pm_.c:202 ../../diskdrake/smbnfs_gtk.pm_.c:67
-#: ../../install_steps_gtk.pm_.c:523
-msgid "Details"
-msgstr "ĖåšōļģŻńåéåņ"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Ext2"
-msgstr "Ext2"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "FAT"
-msgstr "FAT"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "HFS"
-msgstr "HFS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-#, fuzzy
-msgid "Journalised FS"
-msgstr "óżķäåóē įšŻōõ÷å"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "SunOS"
-msgstr "SunOS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Swap"
-msgstr "Swap"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../diskdrake/interactive.pm_.c:1050
-msgid "Empty"
-msgstr "¶äåéļ"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../install_steps_gtk.pm_.c:379
-#: ../../install_steps_gtk.pm_.c:439 ../../mouse.pm_.c:162
-#: ../../services.pm_.c:157 ../../standalone/drakbackup_.c:944
-msgid "Other"
-msgstr "¶ėėļ"
-
-#: ../../diskdrake/hd_gtk.pm_.c:325
-msgid "Filesystem types:"
-msgstr "Ōżšļé óõóōŽģįōļņ įń÷åßłķ:"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:386
-msgid "Create"
-msgstr "Äēģéļõńćßį"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:365
-#: ../../diskdrake/interactive.pm_.c:499 ../../diskdrake/removable.pm_.c:26
-#: ../../diskdrake/removable.pm_.c:49 ../../diskdrake/removable_gtk.pm_.c:17
-msgid "Type"
-msgstr "Ōżšļņ"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/hd_gtk.pm_.c:344
-#, c-format
-msgid "Use ``%s'' instead"
-msgstr "×ńēóéģļšļéŽóōå ``%s'' óōē čŻóē ōļõ"
-
-#: ../../diskdrake/hd_gtk.pm_.c:344 ../../diskdrake/interactive.pm_.c:374
-msgid "Delete"
-msgstr "ÄéįćńįöŽ"
-
-#: ../../diskdrake/hd_gtk.pm_.c:348
-msgid "Use ``Unmount'' first"
-msgstr "ŹÜķōå šńžōį ``Įšļóżķäåóē''"
-
-#: ../../diskdrake/hd_gtk.pm_.c:349 ../../diskdrake/interactive.pm_.c:491
-#, c-format
-msgid ""
-"After changing type of partition %s, all data on this partition will be lost"
-msgstr ""
-"ĢåōÜ ōēķ įėėįćŽ ōżšļõ óōēķ źįōÜōģēóē %s, üėį ōį äåäļģŻķį óå įõōŽķ ōēķ "
-"źįōÜōģēóē čį ÷įčļżķ"
-
-#: ../../diskdrake/interactive.pm_.c:171
-#, fuzzy
-msgid "Choose a partition"
-msgstr "ÅšéėŻīōå šńÜīē"
-
-#: ../../diskdrake/interactive.pm_.c:171
-#, fuzzy
-msgid "Choose another partition"
-msgstr "Äēģéļõńćßį ķŻįņ źįōÜōģēóēņ"
-
-#: ../../diskdrake/interactive.pm_.c:196
-#, fuzzy
-msgid "Exit"
-msgstr "Ext2"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to expert mode"
-msgstr "ĢåōįšŽäēóē óå šńļ÷łńēģŻķļ ōńüšļ ėåéōļõńćßįņ"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to normal mode"
-msgstr "ĢåōįšŽäēóē óå źįķļķéźü ōńüšļ ėåéōļõńćßįņ"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Undo"
-msgstr "Įźżńłóē ōåėåõōįßįņ šńÜīēņ"
-
-#: ../../diskdrake/interactive.pm_.c:237
-msgid "Continue anyway?"
-msgstr "Ķį óõķå÷éół;"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without saving"
-msgstr "øīļäļņ ÷łńßņ įšļ莟åõóē"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without writing the partition table?"
-msgstr "øīļäļņ ÷łńßņ įšļ莟åõóē ōļõ šßķįźį źįōįōģŽóåłķ;"
-
-#: ../../diskdrake/interactive.pm_.c:247
-#, fuzzy
-msgid "Do you want to save /etc/fstab modifications"
-msgstr "ČŻėåōå ķį äļźéģÜóåōå ōéņ ńõčģßóåéņ;"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Auto allocate"
-msgstr "Įõōļģįōē źįōįķļģŽ"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Clear all"
-msgstr "Źįčįńéóģüņ üėłķ"
-
-#: ../../diskdrake/interactive.pm_.c:262
-#, fuzzy
-msgid "Hard drive information"
-msgstr "Åķōļšéóģüņ óźėēńļż äßóźļõ"
-
-#: ../../diskdrake/interactive.pm_.c:283
-msgid "All primary partitions are used"
-msgstr "¼ėåņ ļé šńłōåżļõóåņ źįōįōģŽóåéņ åßķįé óå ÷ńŽóē"
-
-#: ../../diskdrake/interactive.pm_.c:284
-msgid "I can't add any more partition"
-msgstr "Äåķ ģšļńž ķį šńļóčŻół źįōįōģēóåéņ"
-
-#: ../../diskdrake/interactive.pm_.c:285
-msgid ""
-"To have more partitions, please delete one to be able to create an extended "
-"partition"
-msgstr ""
-"Ćéį ķį šńļóčŻóåōå źįōįōģŽóåéņ, šįńįźįėž äéįćńÜųōå ģßį åōóé žóōåķį åßķįé "
-"äõķįōŽ ē šńļó莟ē åźōåōįģŻķēņ źįōÜōģēóēņ"
-
-#: ../../diskdrake/interactive.pm_.c:295
-#, fuzzy
-msgid "Save partition table"
-msgstr "Įšļ莟åõóē šßķįźį źįōįōģŽóåłķ"
-
-#: ../../diskdrake/interactive.pm_.c:296
-#, fuzzy
-msgid "Restore partition table"
-msgstr "Šßķįźįņ źįōįōģŽóåłķ äéÜółóēņ"
-
-#: ../../diskdrake/interactive.pm_.c:297
-msgid "Rescue partition table"
-msgstr "Šßķįźįņ źįōįōģŽóåłķ äéÜółóēņ"
-
-#: ../../diskdrake/interactive.pm_.c:299
-#, fuzzy
-msgid "Reload partition table"
-msgstr "Šßķįźįņ źįōįōģŽóåłķ äéÜółóēņ"
-
-#: ../../diskdrake/interactive.pm_.c:304
-#, fuzzy
-msgid "Removable media automounting"
-msgstr "Įõōüģįōē óżķäåóē įšļóšžģåķłķ ģļķÜäłķ įšļ莟åõóēņ"
-
-#: ../../diskdrake/interactive.pm_.c:313 ../../diskdrake/interactive.pm_.c:333
-msgid "Select file"
-msgstr "ÅšéėŻīōå įń÷åßļ"
-
-#: ../../diskdrake/interactive.pm_.c:320
-msgid ""
-"The backup partition table has not the same size\n"
-"Still continue?"
-msgstr ""
-"Ļ åöåäńéźüņ šßķįźįņ źįōįōģŽóåłķ Ż÷åé äéįöļńåōéźü ģŻćåčļņ\n"
-"Ķį óõķå÷ßół;"
-
-#: ../../diskdrake/interactive.pm_.c:334
-msgid "Warning"
-msgstr "Šńļåéäļšļßēóē"
-
-#: ../../diskdrake/interactive.pm_.c:335
-msgid ""
-"Insert a floppy in drive\n"
-"All data on this floppy will be lost"
-msgstr ""
-"ÅéóÜćåōå ģéį äéóźŻōōį óōļķ ļäēćü äéóźŻōōįņ\n"
-"¼ėį ōį äåäļģŻķį óå įõōŽ ōē äéóźŻōōį čį ÷įčļżķ"
-
-#: ../../diskdrake/interactive.pm_.c:346
-msgid "Trying to rescue partition table"
-msgstr "ŠńļóšÜčåéį äéÜółóēņ šßķįźį źįōįōģŽóåłķ"
-
-#: ../../diskdrake/interactive.pm_.c:352
-#, fuzzy
-msgid "Detailed information"
-msgstr "ŠńļāļėŽ šėēńļöļńéžķ"
-
-#: ../../diskdrake/interactive.pm_.c:364 ../../diskdrake/interactive.pm_.c:534
-#: ../../diskdrake/interactive.pm_.c:554 ../../diskdrake/removable.pm_.c:24
-#: ../../diskdrake/removable_gtk.pm_.c:15 ../../diskdrake/smbnfs_gtk.pm_.c:83
-msgid "Mount point"
-msgstr "Óēģåßļ óżķäåóēņ"
-
-#: ../../diskdrake/interactive.pm_.c:366 ../../diskdrake/removable.pm_.c:25
-#: ../../diskdrake/removable_gtk.pm_.c:16 ../../diskdrake/smbnfs_gtk.pm_.c:84
-msgid "Options"
-msgstr "ÅšéėļćŻņ"
-
-#: ../../diskdrake/interactive.pm_.c:367 ../../diskdrake/interactive.pm_.c:621
-msgid "Resize"
-msgstr "ĮėėįćŽ ģåćŻčļõņ"
-
-#: ../../diskdrake/interactive.pm_.c:368 ../../diskdrake/interactive.pm_.c:674
-msgid "Move"
-msgstr "Ģåōįźßķēóē"
-
-#: ../../diskdrake/interactive.pm_.c:369
-msgid "Format"
-msgstr "Ģļńöļšļßēóē"
-
-#: ../../diskdrake/interactive.pm_.c:370 ../../diskdrake/smbnfs_gtk.pm_.c:80
-msgid "Mount"
-msgstr "Óżķäåóē"
-
-#: ../../diskdrake/interactive.pm_.c:371
-msgid "Add to RAID"
-msgstr "Šńļó莟ē óōļ RAID"
-
-#: ../../diskdrake/interactive.pm_.c:372
-msgid "Add to LVM"
-msgstr "Šńļó莟ē óōļ LVM"
-
-#: ../../diskdrake/interactive.pm_.c:373 ../../diskdrake/smbnfs_gtk.pm_.c:79
-msgid "Unmount"
-msgstr "Įšļóżķäåóē"
-
-#: ../../diskdrake/interactive.pm_.c:375
-msgid "Remove from RAID"
-msgstr "Įöįßńåóē įšü ōļ RAID"
-
-#: ../../diskdrake/interactive.pm_.c:376
-msgid "Remove from LVM"
-msgstr "Įöįßńåóē įšü ōļ LVM"
-
-#: ../../diskdrake/interactive.pm_.c:377
-msgid "Modify RAID"
-msgstr "Ōńļšļšļßēóē RAID"
-
-#: ../../diskdrake/interactive.pm_.c:378
-msgid "Use for loopback"
-msgstr "×ńŽóē ćéį loopback"
-
-#: ../../diskdrake/interactive.pm_.c:417
-msgid "Create a new partition"
-msgstr "Äēģéļõńćßį ķŻįņ źįōÜōģēóēņ"
-
-#: ../../diskdrake/interactive.pm_.c:420
-msgid "Start sector: "
-msgstr "Įń÷Ž óōļķ ōļģŻį: "
-
-#: ../../diskdrake/interactive.pm_.c:422 ../../diskdrake/interactive.pm_.c:773
-msgid "Size in MB: "
-msgstr "ĢŻćåčļņ óå MB"
-
-#: ../../diskdrake/interactive.pm_.c:423 ../../diskdrake/interactive.pm_.c:774
-msgid "Filesystem type: "
-msgstr "Ōżšļņ óõóōŽģįōļņ įń÷åßłķ: "
-
-#: ../../diskdrake/interactive.pm_.c:424
-#: ../../diskdrake/interactive.pm_.c:1034
-#: ../../diskdrake/interactive.pm_.c:1108
-msgid "Mount point: "
-msgstr "Óēģåßļ óżķäåóēņ: "
-
-#: ../../diskdrake/interactive.pm_.c:428
-msgid "Preference: "
-msgstr "Šńļōßģēóē: "
-
-#: ../../diskdrake/interactive.pm_.c:472
-#, fuzzy
-msgid "Remove the loopback file?"
-msgstr "Ģļńöļšļßēóē įń÷åßļõ loopback %s"
-
-#: ../../diskdrake/interactive.pm_.c:497
-msgid "Change partition type"
-msgstr "ĮėėįćŽ ōżšļõ źįōÜōģēóēņ"
-
-#: ../../diskdrake/interactive.pm_.c:498 ../../diskdrake/removable.pm_.c:48
-msgid "Which filesystem do you want?"
-msgstr "Šļéü óżōēģį įń÷åßłķ šńļōéģÜōå;"
-
-#: ../../diskdrake/interactive.pm_.c:502
-msgid "Switching from ext2 to ext3"
-msgstr "ĮėėįćŽ įšü ext2 óå ext3"
-
-#: ../../diskdrake/interactive.pm_.c:532
-#, c-format
-msgid "Where do you want to mount loopback file %s?"
-msgstr "Šļż čŻėåōå ķį óõķäŻóåōå ōļ įń÷åßļ loopback %s;"
-
-#: ../../diskdrake/interactive.pm_.c:533 ../../diskdrake/interactive.pm_.c:553
-#, c-format
-msgid "Where do you want to mount device %s?"
-msgstr "Šļż čŻėåōå ķį óõķäŻóåōå ōēķ óõóźåõŽ %s;"
-
-#: ../../diskdrake/interactive.pm_.c:539
-msgid ""
-"Can't unset mount point as this partition is used for loop back.\n"
-"Remove the loopback first"
-msgstr ""
-"Äåķ ģšļńž ķį įöįéńŻół ōļ óēģåßļ óżķäåóēņ źįčžņ įõōŽ ē źįōÜōģēóē "
-"÷ńēóéģļšļéåßōįé\n"
-"ćéį loopback. ĮöįéńŻóōå šńžōį ōļ loopback"
-
-#: ../../diskdrake/interactive.pm_.c:577
-msgid "Computing FAT filesystem bounds"
-msgstr "Õšļėļćéóģüņ fat filesystem bounds"
-
-#: ../../diskdrake/interactive.pm_.c:577 ../../diskdrake/interactive.pm_.c:636
-#: ../../install_interactive.pm_.c:130
-msgid "Resizing"
-msgstr "ĢåōįāļėŽ ģåćŻčļõņ"
-
-#: ../../diskdrake/interactive.pm_.c:609
-msgid "This partition is not resizeable"
-msgstr "Įõōüņ ļ ōżšļņ źįōÜōģēóēņ äåķ ģšļńåß ķ' įėėÜīåé ģŻćåčļņ."
-
-#: ../../diskdrake/interactive.pm_.c:614
-msgid "All data on this partition should be backed-up"
-msgstr ""
-"ŠńŻšåé ķį ćßķåé įķōßćńįöļ įóöįėåßįņ üėłķ ōłķ äåäļģŻķłķ óå įõōŽ ōēķ źįōÜōģēóē"
-
-#: ../../diskdrake/interactive.pm_.c:616
-#, c-format
-msgid "After resizing partition %s, all data on this partition will be lost"
-msgstr ""
-"ĢåōÜ ōēķ įėėįćŽ ģåćŻčļõņ óōēķ źįōÜōģēóē %s, üėį ōį äåäļģŻķį óå įõōŽķ ōēķ "
-"źįōÜōģēóē čį ÷įčļżķ"
-
-#: ../../diskdrake/interactive.pm_.c:621
-msgid "Choose the new size"
-msgstr "ÅšéėŻīōå ōļ ķŻļ ģŻćåčļņ"
-
-#: ../../diskdrake/interactive.pm_.c:622
-#, fuzzy
-msgid "New size in MB: "
-msgstr "ĢŻćåčļņ óå MB"
-
-#: ../../diskdrake/interactive.pm_.c:675
-msgid "Which disk do you want to move it to?"
-msgstr "Óå šļéüķ äßóźļ čŻėåōå ķį ģåōįźéķēčåßōå;"
-
-#: ../../diskdrake/interactive.pm_.c:676
-msgid "Sector"
-msgstr "ŌļģŻįņ"
-
-#: ../../diskdrake/interactive.pm_.c:677
-msgid "Which sector do you want to move it to?"
-msgstr "Óå šļéüķ ōļģŻį čŻėåōå ķį ģåōįźéķēčåßōå;"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving"
-msgstr "Ģåōįźßķēóē óå åīŻėéīē"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving partition..."
-msgstr "Ģåōįźßķēóē źįōÜōģēóēņ óå åīŻėéīē..."
-
-#: ../../diskdrake/interactive.pm_.c:697
-msgid "Choose an existing RAID to add to"
-msgstr "ÅšéėŻīōå Żķį õšÜń÷ļķ RAID óōļ ļšļßļ čį ćßķåé ē šńļó莟ē"
-
-#: ../../diskdrake/interactive.pm_.c:698 ../../diskdrake/interactive.pm_.c:716
-msgid "new"
-msgstr "ķŻļ"
-
-#: ../../diskdrake/interactive.pm_.c:714
-msgid "Choose an existing LVM to add to"
-msgstr "ÅšéėŻīōå Żķį õšÜń÷ļķ LVM óōļ ļšļßļ čį ćßķåé ē šńļó莟ē"
-
-#: ../../diskdrake/interactive.pm_.c:719
-msgid "LVM name?"
-msgstr "üķļģį LVM;"
-
-#: ../../diskdrake/interactive.pm_.c:759
-msgid "This partition can't be used for loopback"
-msgstr "ĮõōŽ ē źįōÜōģēóē äåķ ģšļńåß ķį ÷ńēóéģļšļéēčåß ćéį loopback"
-
-#: ../../diskdrake/interactive.pm_.c:771
-msgid "Loopback"
-msgstr "Loopback"
-
-#: ../../diskdrake/interactive.pm_.c:772
-msgid "Loopback file name: "
-msgstr "¼ķļģį įń÷åßļõ loopback: "
-
-#: ../../diskdrake/interactive.pm_.c:777
-#, fuzzy
-msgid "Give a file name"
-msgstr "Šńįćģįōéźü üķļģį"
-
-#: ../../diskdrake/interactive.pm_.c:780
-msgid "File already used by another loopback, choose another one"
-msgstr "Ōļ įń÷åßļ ÷ńēóéģšļšļéåßōįé Žäē, åšéėŻīōå Żķį Üėėļ"
-
-#: ../../diskdrake/interactive.pm_.c:781
-msgid "File already exists. Use it?"
-msgstr "Ōļ įń÷åßļ õšÜń÷åé Žäē. Ķį ōļ ÷ńēóéģļšļéŽół;"
-
-#: ../../diskdrake/interactive.pm_.c:804
-#, fuzzy
-msgid "Mount options"
-msgstr "ŠįńÜģåōńļé ļäēćļż"
-
-#: ../../diskdrake/interactive.pm_.c:811
-msgid "Various"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:874
-msgid "device"
-msgstr "óõóźåõŽ"
-
-#: ../../diskdrake/interactive.pm_.c:875
-msgid "level"
-msgstr "åšßšåäļ"
-
-#: ../../diskdrake/interactive.pm_.c:876
-msgid "chunk size"
-msgstr "ģŻćåčļņ chunk"
-
-#: ../../diskdrake/interactive.pm_.c:891
-msgid "Be careful: this operation is dangerous."
-msgstr "Šńļóļ÷Ž: ĮõōŽ ē äéįäéźįóßį åßķįé åšéźßķäõķē."
-
-#: ../../diskdrake/interactive.pm_.c:906
-msgid "What type of partitioning?"
-msgstr "Ōß ōżšļõ partitioning;"
-
-#: ../../diskdrake/interactive.pm_.c:924
-msgid ""
-"Sorry I won't accept to create /boot so far onto the drive (on a cylinder > "
-"1024).\n"
-"Either you use LILO and it won't work, or you don't use LILO and you don't "
-"need /boot"
-msgstr ""
-"Óõććķžģē, įėėÜ äåķ ģšļńž ķį äēģéļõńćŽół ōļķ źįōÜėļćļ /boot óå źżėéķäńļ "
-"ģåćįėżōåńļ ōļõ 1024.\n"
-"Åßōå ÷ńēóéģļšļéåßōå LILO źįé äåķ čį äļõėŻųåé, åßōå äåķ ÷ńēóéģļšļéåßōåLILO "
-"źįé äåķ ÷ńåéÜęåóōå ōļ /boot"
-
-#: ../../diskdrake/interactive.pm_.c:928
-msgid ""
-"The partition you've selected to add as root (/) is physically located "
-"beyond\n"
-"the 1024th cylinder of the hard drive, and you have no /boot partition.\n"
-"If you plan to use the LILO boot manager, be careful to add a /boot partition"
-msgstr ""
-"Ē źįōÜōģēóē šļõ åšéėŻīįōå łņ root (/) āńßóźåōįé ģåōÜ ōļķ źżėéķäńļ 1024 źįé\n"
-"äåķ Ż÷åōå źįōÜōģēóē /boot.\n"
-"Įķ óźļšåżåōå ķį ÷ńēóéģļšļéŽóåōå LILO, šńļóčŻóōå ģßį źįōÜōģēóē /boot."
-
-#: ../../diskdrake/interactive.pm_.c:934
-msgid ""
-"You've selected a software RAID partition as root (/).\n"
-"No bootloader is able to handle this without a /boot partition.\n"
-"So be careful to add a /boot partition"
-msgstr ""
-"ÅšéėŻīįōå ģéį software RAID źįōÜōģēóē łņ root (/).\n"
-"ŹįķŻķį šńüćńįģģį åźźßķēóēņ äåķ ģšļńåß ķį ōļ ÷åéńéóōåß įõōü ÷łńßņ ģéį "
-"źįōÜōģēóē /boot.\n"
-"Öńļķōßóōå ėļéšüķ ķį šńļóčŻóåōå ģéį źįōÜōģēóē /boot."
-
-#: ../../diskdrake/interactive.pm_.c:954
-#, c-format
-msgid "Partition table of drive %s is going to be written to disk!"
-msgstr "Ļ šßķįźįņ źįōįōģŽóåłķ ōļõ äßóźļõ %s čį įšļčēźåõōåß óōļķ äßóźļ!"
-
-#: ../../diskdrake/interactive.pm_.c:958
-msgid "You'll need to reboot before the modification can take place"
-msgstr "Įšįéōåßōįé åšįķåźźßķēóē ćéį ķį åöįńģļóōļżķ ļé įėėįćŻņ"
-
-#: ../../diskdrake/interactive.pm_.c:969
-#, c-format
-msgid "After formatting partition %s, all data on this partition will be lost"
-msgstr ""
-"ĢåōÜ ōēķ ģļńöļšļßēóē ōēņ źįōÜōģēóēņ %s, üėį ōį äåäļģŻķį óå įõōŽķ ōēķ "
-"źįōÜōģēóē čį ÷įčļżķ"
-
-#: ../../diskdrake/interactive.pm_.c:971
-msgid "Formatting"
-msgstr "Ģļńöļšļßēóē"
-
-#: ../../diskdrake/interactive.pm_.c:972
-#, c-format
-msgid "Formatting loopback file %s"
-msgstr "Ģļńöļšļßēóē įń÷åßļõ loopback %s"
-
-#: ../../diskdrake/interactive.pm_.c:973
-#: ../../install_steps_interactive.pm_.c:465
-#, c-format
-msgid "Formatting partition %s"
-msgstr "Ģļńöļšļßēóē źįōÜōģēóēņ %s"
-
-#: ../../diskdrake/interactive.pm_.c:984
-#, fuzzy
-msgid "Hide files"
-msgstr "įšļōõ÷ßį mkraid"
-
-#: ../../diskdrake/interactive.pm_.c:984
-#, fuzzy
-msgid "Move files to the new partition"
-msgstr "Äåķ õšÜń÷åé įńźåōüņ åėåżčåńļņ ÷žńļņ ćéį äēģéļõńćßį ķŻłķ źįōįōģŽóåłķ"
-
-#: ../../diskdrake/interactive.pm_.c:985
-#, c-format
-msgid ""
-"Directory %s already contain some data\n"
-"(%s)"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:996
-#, fuzzy
-msgid "Moving files to the new partition"
-msgstr "Äåķ õšÜń÷åé įńźåōüņ åėåżčåńļņ ÷žńļņ ćéį äēģéļõńćßį ķŻłķ źįōįōģŽóåłķ"
-
-#: ../../diskdrake/interactive.pm_.c:1000
-#, c-format
-msgid "Copying %s"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1004
-#, fuzzy, c-format
-msgid "Removing %s"
-msgstr "ĮķÜėõóē: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1014
-#, c-format
-msgid "partition %s is now known as %s"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1035
-#: ../../diskdrake/interactive.pm_.c:1094
-msgid "Device: "
-msgstr "ÓõóźåõŽ: "
-
-#: ../../diskdrake/interactive.pm_.c:1036
-#, c-format
-msgid "DOS drive letter: %s (just a guess)\n"
-msgstr "Šéčįķü DOS ćńÜģģį äßóźļõ: %s \n"
-
-#: ../../diskdrake/interactive.pm_.c:1040
-#: ../../diskdrake/interactive.pm_.c:1048
-#: ../../diskdrake/interactive.pm_.c:1112
-msgid "Type: "
-msgstr "Ōżšļņ: "
-
-#: ../../diskdrake/interactive.pm_.c:1044
-msgid "Name: "
-msgstr "¼ķļģį: "
-
-#: ../../diskdrake/interactive.pm_.c:1052
-#, c-format
-msgid "Start: sector %s\n"
-msgstr "Įń÷Ž: ōļģŻįņ %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1053
-#, c-format
-msgid "Size: %s"
-msgstr "ĢŻćåčļņ: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1055
-#, c-format
-msgid ", %s sectors"
-msgstr ", %s ōļģåßņ"
-
-#: ../../diskdrake/interactive.pm_.c:1057
-#, fuzzy, c-format
-msgid "Cylinder %d to %d\n"
-msgstr "Źżėéķäńļņ %d åžņ źżėéķäńļņ %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1058
-msgid "Formatted\n"
-msgstr "ĢļńöļšļéēģŻķļņ\n"
-
-#: ../../diskdrake/interactive.pm_.c:1059
-msgid "Not formatted\n"
-msgstr "Įģļńöļšļßēōļņ\n"
-
-#: ../../diskdrake/interactive.pm_.c:1060
-msgid "Mounted\n"
-msgstr "ÓõķäåäåģŻķļņ\n"
-
-#: ../../diskdrake/interactive.pm_.c:1061
-#, c-format
-msgid "RAID md%s\n"
-msgstr "RAID md%s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1063
-#, fuzzy, c-format
-msgid ""
-"Loopback file(s):\n"
-" %s\n"
-msgstr "Įń÷åßį loopback: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1064
-msgid ""
-"Partition booted by default\n"
-" (for MS-DOS boot, not for lilo)\n"
-msgstr ""
-"ŹįōÜōģēóē åźźßķēóēņ åī ļńéóģļż\n"
-" (įšü MS-DOS, ü÷é įšü lilo)\n"
-
-#: ../../diskdrake/interactive.pm_.c:1066
-#, c-format
-msgid "Level %s\n"
-msgstr "Åšßšåäļ %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1067
-#, c-format
-msgid "Chunk size %s\n"
-msgstr "ĢŻćåčļņ chunk %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1068
-#, c-format
-msgid "RAID-disks %s\n"
-msgstr "Äßóźļé RAID %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1070
-#, c-format
-msgid "Loopback file name: %s"
-msgstr "¼ķļģį įń÷åßļõ loopback: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1073
-msgid ""
-"\n"
-"Chances are, this partition is\n"
-"a Driver partition, you should\n"
-"probably leave it alone.\n"
-msgstr ""
-"\n"
-"Ļé šéčįķüōēōåņ åßķįé, įõōŽ ē źįōÜōģēóē ķį åßķįé\n"
-"ģéį źįōÜōģēóē Ļäēćžķ, čį šńŻšåé šéčįķüōįōį\n"
-"ķį ōēķ įöŽóåōå Žóõ÷ē.\n"
-
-#: ../../diskdrake/interactive.pm_.c:1076
-msgid ""
-"\n"
-"This special Bootstrap\n"
-"partition is for\n"
-"dual-booting your system.\n"
-msgstr ""
-"\n"
-"ĮõōŽ åßķįé åéä韎 Bootstrap\n"
-"źįōÜōģēóē ćéį\n"
-"dual-booting ōļ óżóōēģÜ óįņ.\n"
-
-#: ../../diskdrake/interactive.pm_.c:1095
-#, c-format
-msgid "Size: %s\n"
-msgstr "ĢŻćåčļņ: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1096
-#, c-format
-msgid "Geometry: %s cylinders, %s heads, %s sectors\n"
-msgstr "Ćåłģåōńßį: %s źżėéķäńļé, %s źåöįėŻņ, %s ōļģåßņ\n"
-
-#: ../../diskdrake/interactive.pm_.c:1097
-msgid "Info: "
-msgstr "Šėēńļöļńßåņ: "
-
-#: ../../diskdrake/interactive.pm_.c:1098
-#, c-format
-msgid "LVM-disks %s\n"
-msgstr "Äßóźļé LVM %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1099
-#, c-format
-msgid "Partition table type: %s\n"
-msgstr "Ōżšļņ šßķįźį źįōįōģŽóåłķ: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1100
-#, c-format
-msgid "on bus %d id %d\n"
-msgstr "óōļ bus %d id %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1114
-#, c-format
-msgid "Options: %s"
-msgstr "ÅšéėļćŻņ: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1130
-#, fuzzy
-msgid "Filesystem encryption key"
-msgstr "Ōżšļņ óõóōŽģįōļņ įń÷åßłķ: "
-
-#: ../../diskdrake/interactive.pm_.c:1131
-msgid "Choose your filesystem encryption key"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1134
-#, fuzzy, c-format
-msgid "This encryption key is too simple (must be at least %d characters long)"
-msgstr ""
-"Įõōü ōļ óõķčēģįōéźü åßķįé šļėż įšėü (šńŻšåé ķį åßķįé ōļõėÜ÷éóōļķ %d "
-"÷įńįźōŽńåņ ģįźńż)"
-
-#: ../../diskdrake/interactive.pm_.c:1135
-#, fuzzy
-msgid "The encryption keys do not match"
-msgstr "Ōį óõķčēģįōéźÜ åßķįé įķüģļéį"
-
-#: ../../diskdrake/interactive.pm_.c:1138
-msgid "Encryption key"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1139
-msgid "Encryption key (again)"
-msgstr ""
-
-#: ../../diskdrake/removable.pm_.c:47
-#, fuzzy
-msgid "Change type"
-msgstr "ĮėėįćŽ ōżšļõ źįōÜōģēóēņ"
-
-#: ../../diskdrake/removable_gtk.pm_.c:28
-#, fuzzy
-msgid "Please click on a media"
-msgstr "Šįńįźįėž źÜķōå źėéź óå ģéį źįōÜōģēóē"
-
-#: ../../diskdrake/smbnfs_gtk.pm_.c:165
-#, fuzzy
-msgid "Search servers"
-msgstr "ÅīõšēńåōēōŽņ DNS"
-
-#: ../../fs.pm_.c:485 ../../fs.pm_.c:495 ../../fs.pm_.c:499 ../../fs.pm_.c:503
-#: ../../fs.pm_.c:507 ../../fs.pm_.c:511
-#, c-format
-msgid "%s formatting of %s failed"
-msgstr "%s ģļńöļšļßēóē ōļõ %s įšŻōõ÷å"
-
-#: ../../fs.pm_.c:548
-#, c-format
-msgid "I don't know how to format %s in type %s"
-msgstr "äåķ īŻńł šžņ ķį ģļńöļšļéŽół ōļ %s óå ōżšļ %s"
-
-#: ../../fs.pm_.c:620 ../../fs.pm_.c:649 ../../fs.pm_.c:655
-#, c-format
-msgid "mounting partition %s in directory %s failed"
-msgstr ""
-
-#: ../../fs.pm_.c:640
-#, c-format
-msgid "fsck failed with exit code %d or signal %d"
-msgstr "ōļ fsck įšŻōõ÷å ģå źłäéźü åīüäļõ %d Ž óŽģį %d"
-
-#: ../../fs.pm_.c:670 ../../partition_table.pm_.c:596
-#, c-format
-msgid "error unmounting %s: %s"
-msgstr "óöÜėģį źįōÜ ōēķ įšļóżķäåóē ōļõ %s: %s"
-
-#: ../../fsedit.pm_.c:21
-msgid "simple"
-msgstr "įšėü"
-
-#: ../../fsedit.pm_.c:25
-msgid "with /usr"
-msgstr ""
-
-#: ../../fsedit.pm_.c:30
-msgid "server"
-msgstr "åīõšēńåōēōŽņ"
-
-#: ../../fsedit.pm_.c:467
-msgid "You can't use JFS for partitions smaller than 16MB"
-msgstr ""
-"Äåķ ģšļńåßōå ķį ÷ńēóéģļšļéŽóåōå ōļ JFS ćéį źįōįōģŽóåéņ ģéźńüōåńåņ įšü 16MB"
-
-#: ../../fsedit.pm_.c:468
-msgid "You can't use ReiserFS for partitions smaller than 32MB"
-msgstr ""
-"Äåķ ģšļńåßōå ķį ÷ńēóéģļšļéŽóåōå ōļ ReiserFS ćéį źįōįōģŽóåéņ ģéźńüōåńåņ įšü "
-"32MB"
-
-#: ../../fsedit.pm_.c:477
-msgid "Mount points must begin with a leading /"
-msgstr "Ōļ óēģåßļ óżķäåóēņ šńŻšåé ķį īåźéķÜåé ģå /"
-
-#: ../../fsedit.pm_.c:478
-#, c-format
-msgid "There is already a partition with mount point %s\n"
-msgstr "ÕšÜń÷åé Žäē źįōÜōģēóē ģå óēģåßļ óżķäåóēņ %s\n"
-
-#: ../../fsedit.pm_.c:482
-#, c-format
-msgid "You can't use a LVM Logical Volume for mount point %s"
-msgstr "Äåķ ģšļńåßōå ķį ÷ńēóéģļšļéŽóåōå ģéį źįōÜōģēóē LVM ćéį šńļóÜńōēóē %s"
-
-#: ../../fsedit.pm_.c:484
-msgid "This directory should remain within the root filesystem"
-msgstr ""
-"Įõōüņ ļ źįōÜėļćļņ šńŻšåé ķį šįńįģåßķåé óōļ ńéęéźü óżóōēģį įń÷åßłķ (root)"
-
-#: ../../fsedit.pm_.c:486
-msgid "You need a true filesystem (ext2, reiserfs) for this mount point\n"
-msgstr ""
-"×ńåéÜęåóōå Żķį šńįćģįōéźü óżóōēģį įń÷åßłķ (ext2, reiserfs) ćéį įõōü ōļ "
-"óēģåßļ óżķäåóēņ\n"
-
-#: ../../fsedit.pm_.c:488
-#, fuzzy, c-format
-msgid "You can't use an encrypted file system for mount point %s"
-msgstr "Äåķ ģšļńåßōå ķį ÷ńēóéģļšļéŽóåōå ģéį źįōÜōģēóē LVM ćéį šńļóÜńōēóē %s"
-
-#: ../../fsedit.pm_.c:546
-#, fuzzy
-msgid "Not enough free space for auto-allocating"
-msgstr ""
-"Äåķ õšÜń÷åé įńźåōüņ åėåżčåńļņ ÷žńļņ ćéį įõōüģįōē äēģéļõńćßį ķŻłķ źįōįōģŽóåłķ"
-
-#: ../../fsedit.pm_.c:548
-msgid "Nothing to do"
-msgstr ""
-
-#: ../../fsedit.pm_.c:612
-#, c-format
-msgid "Error opening %s for writing: %s"
-msgstr "ÓöÜėģį źįōÜ ōļ Üķļéćģį ōļõ %s ćéį åććńįöŽ: %s"
-
-#: ../../fsedit.pm_.c:697
-msgid ""
-"An error has occurred - no valid devices were found on which to create new "
-"filesystems. Please check your hardware for the cause of this problem"
-msgstr ""
-"ŠńļźėŽčēźå óöÜėģį - äåķ āńŻčēźįķ óõóźåõŻņ óōéņ ļšļßåņ ķį åßķįé äõķįōŽē "
-"äēģéļõńćßį ķŻłķ óõóōēģÜōłķ įń÷åßłķ. Šįńįźįėž åėåćīōå ōļ õėéźü óįņ ćéįōēķ "
-"įéōßį įõōļż ōļõ šńļāėŽģįōļņ"
-
-#: ../../fsedit.pm_.c:720
-msgid "You don't have any partitions!"
-msgstr "Äåķ õšÜń÷åé źįģßį źįōÜōģēóē!"
-
-#: ../../help.pm_.c:13
-msgid ""
-"GNU/Linux is a multiuser system, and this means that each user can have his\n"
-"own preferences, his own files and so on. You can read the ``User Guide''\n"
-"to learn more. But unlike \"root\", which is the administrator, the users\n"
-"you will add here will not be entitled to change anything except their own\n"
-"files and their own configuration. You will have to create at least one\n"
-"regular user for yourself. That account is where you should log in for\n"
-"routine use. Although it is very practical to log in as \"root\" everyday,\n"
-"it may also be very dangerous! The slightest mistake could mean that your\n"
-"system would not work any more. If you make a serious mistake as a regular\n"
-"user, you may only lose some information, but not the entire system.\n"
-"\n"
-"First, you have to enter your real name. This is not mandatory, of course\n"
-"as you can actually enter whatever you want. DrakX will then take the first\n"
-"word you have entered in the box and will bring it over to the \"User\n"
-"name\". This is the name this particular user will use to log onto the\n"
-"system. You can change it. You then have to enter a password here. A\n"
-"non-privileged (regular) user's password is not as crucial as \"root\"' one\n"
-"from a security point of view, but that is no reason to neglect it: after\n"
-"all, your files are at risk.\n"
-"\n"
-"If you click on \"Accept user\", you can then add as many as you want. Add\n"
-"a user for each one of your friends: your father or your sister, for\n"
-"example. When you finish adding all the users you want, select \"Done\".\n"
-"\n"
-"Clicking the \"Advanced\" button allows you to change the default \"shell\"\n"
-"for that user (bash by default)."
-msgstr ""
-
-#: ../../help.pm_.c:41
-#, fuzzy
-msgid ""
-"Listed above are the existing Linux partitions detected on your hard 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"
-"able to install enough software. If you want to store your data on a\n"
-"separate partition, you will also need to create a partition for \"/home\"\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 drive type\", \"hard 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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
-"\"second lowest SCSI ID\", etc."
-msgstr ""
-"ŠįńįšÜķł āėŻšåōå Żķįķ źįōÜėļćļ ģå ōéņ źįōįōģŽóåéņ Linux šļõ åķōļšßóōēźįķ "
-"óōļķ \n"
-"äßóźļ óįņ. Ģšļńåßōå ķį źńįōŽóåōå ōéņ įõōüģįōåņ åšéėļćŻņ, åßķįé źįėŻņ ćéį \n"
-"óõķēčéóģŻķē ÷ńŽóē. ÅÜķ įėėÜīåōå įõōŻņ ōéņ åšéėļćŻņ, šńŻšåé ķį Ż÷åōå "
-"ōļõėÜ÷éóōļķ\n"
-"ģéį āįó韎 źįōÜōģēóē (root, \"/\"). Ģēķ åšéėŻīåōå ģéį šļėż ģéźńŽ źįōÜōģēóē "
-"ćéįōß\n"
-"äåķ čį Ż÷åōå ÷žńļ ćéį åćźįōÜóōįóē ėļćéóģéźļż. ÅÜķ čŻėåōå ķį įšļčēźåżåōå ōį "
-"äåäļģŻķį\n"
-"óįņ óå īå÷łńéóōŽ źįōÜōģēóē, šńŻšåé ķį åšéėŻīåōå ģéį źįōÜōģēóē ćéį \"/home"
-"\" (äõķįōüķ\n"
-"ģüķļ įķ Ż÷åōå šįńįšÜķł įšü ģßį Linux źįōÜōģēóē äéįčŻóéģē).\n"
-"\n"
-"\n"
-"ŠėēńļöļńéįźÜ, źÜčå źįōÜōģēóē įķįöŻńåōįé łņ: \"¼ķļģį\", \"׳ńēōéźüōēōį\".\n"
-"\n"
-"\n"
-"Ōļ üķļģį óēģįßķåé ōį åīŽņ: Ōżšļņ äßóźļõ, įńéčģüņ äßóźļõ, įńéčģüņ "
-"źįōÜōģēóēņ \n"
-"ćéį šįńÜäåéćģį, \"hda1\").\n"
-"\n"
-"\n"
-"Ļ ōżšļņ åßķįé \"hd\" åÜķ šńüźåéōįé ćéį äßóźļ IDE źįé \"sd\" ćéį SCSI äßóźļ.\n"
-"\n"
-"\n"
-"Ļ įńéčģüņ äßóźļõ åßķįé šÜķōį Żķį ćńÜģģį ģåōÜ ōļ \"hd\" Ž \"sd\". Ćéį ōļõņ "
-"IDE \n"
-"äßóźļõņ: \n"
-"\n"
-" * \"a\" åßķįé ļ master äßóźļņ óōļķ šńžōļ åėåćźōŽ IDE,\n"
-"\n"
-" * \"b\" åßķįé ļ slave äßóźļņ óōļķ šńžōļ åėåćźōŽ IDE,\n"
-"\n"
-" * \"c\" åßķįé ļ master äßóźļņ óōļķ äåżōåńļ åėåćźōŽ IDE,\n"
-"\n"
-" * \"d\" åßķįé ļ slave äßóźļņ óōļķ äåżōåńļ åėåćźōŽ IDE.\n"
-"\n"
-"\n"
-"Ćéį äßóźļõņ SCSI, \"a\" åßķįé ļ šńžōļņ äßóźļņ, \"b\" åßķįé ļ äåżōåńļņ äßóźļņ "
-"źėš..."
-
-#: ../../help.pm_.c:72
-msgid ""
-"The Mandrake Linux 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."
-msgstr ""
-
-#: ../../help.pm_.c:77
-msgid ""
-"It is now time to specify which programs you wish to install on your\n"
-"system. There are thousands of packages available for Mandrake Linux, 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"
-"be asked to specify the CDs you currently have (in Expert mode only). Check\n"
-"the CD labels and highlight the boxes corresponding to the CDs you have\n"
-"available for installation. Click \"OK\" when you are ready to continue.\n"
-"\n"
-"Packages are sorted in groups corresponding to a particular use of your\n"
-"machine. The groups themselves are sorted into four sections:\n"
-"\n"
-" * \"Workstation\": if you plan to use your machine as a workstation, "
-"select\n"
-"one or more of the corresponding groups;\n"
-"\n"
-" * \"Development\": if your machine is to be used for programming, choose\n"
-"the desired group(s);\n"
-"\n"
-" * \"Server\": if your machine is intended to be a server, you will be able\n"
-"to select which of the most common services you wish to install on your\n"
-"machine;\n"
-"\n"
-" * \"Graphical Environment\": finally, this is where you will choose your\n"
-"preferred graphical environment. At least one must be selected if you want\n"
-"to have a graphical workstation!\n"
-"\n"
-"Moving the mouse cursor over a group name will display a short explanatory\n"
-"text about that group. If you deselect all groups when performing a regular\n"
-"installation (by opposition to an upgrade), a dialog will pop up proposing\n"
-"different options for a minimal installation:\n"
-"\n"
-" * \"With X\": install the fewer packages possible to have a working\n"
-"graphical desktop;\n"
-"\n"
-" * \"With basic documentation\": installs the base system plus basic\n"
-"utilities and their documentation. This installation is suitable for\n"
-"setting up a server;\n"
-"\n"
-" * \"Truly minimal install\": will install the strict minimum necessary to\n"
-"get a working Linux system, in command line only. This installation is\n"
-"about 65Mb large.\n"
-"\n"
-"You can check the \"Individual package selection\" box, which is useful if\n"
-"you are familiar with the packages being offered or if you want to have\n"
-"total control over what will be installed.\n"
-"\n"
-"If you started the installation in \"Upgrade\" mode, you can unselect all\n"
-"groups to avoid installing any new package. This is useful for repairing or\n"
-"updating an existing system."
-msgstr ""
-
-#: ../../help.pm_.c:128
-msgid ""
-"Finally, depending on whether or not you selected individual packages, you\n"
-"will be presented a tree containing all packages classified by groups and\n"
-"subgroups. While browsing the tree, you can select entire groups,\n"
-"subgroups, or individual packages.\n"
-"\n"
-"Whenever you select a package on the tree, a description appears on the\n"
-"right. When your selection is finished, click the \"Install\" button which\n"
-"will then launch the installation process. Depending on the speed of your\n"
-"hardware and the number of packages that need to be installed, it may take\n"
-"a while to complete the process. An estimate of the time it will take to\n"
-"install everything is displayed on the screen, to help you gauge if there\n"
-"is sufficient time to enjoy a cup of coffee.\n"
-"\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 Mandrake Linux, 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 Mandrake Linux 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"
-"default. !!\n"
-"\n"
-"The \"Automatic dependencies\" option simply disables the warning dialog\n"
-"which appears whenever the installer automatically selects a package. This\n"
-"occurs because it has determined that it needs to satisfy a dependency with\n"
-"another package in order to successfully complete the installation.\n"
-"\n"
-"The tiny floppy disk icon at the bottom of the list allows to load the\n"
-"package list chosen during a previous installation. Clicking on this icon\n"
-"will ask you to insert a floppy disk previously created at the end of\n"
-"another installation. See the second tip of last step on how to create such\n"
-"a floppy."
-msgstr ""
-
-#: ../../help.pm_.c:164
-msgid ""
-"You are now proposed to set up your Internet/network connection. If you\n"
-"wish to connect your computer to the Internet or to a local network, click\n"
-"\"OK\". The autodetection of network devices and modem will be launched. If\n"
-"this detection fails, uncheck the \"Use auto detection\" box next time. You\n"
-"may also choose not to configure the network, or do it later; in that case,\n"
-"simply click the \"Cancel\" button.\n"
-"\n"
-"Available connections are: traditional modem, ISDN modem, ADSL connection,\n"
-"cable modem, and finally a simple LAN connection (Ethernet).\n"
-"\n"
-"Here, we will not detail each configuration. Simply make sure that you have\n"
-"all the parameters from your Internet Service Provider or system\n"
-"administrator.\n"
-"\n"
-"You can consult the ``User Guide'' chapter about Internet connections for\n"
-"details about the configuration, or simply wait until your system is\n"
-"installed and use the program described there to configure your connection.\n"
-"\n"
-"If you wish to configure the network later after installation, or if you\n"
-"are finished configuring your network connection, click \"Cancel\"."
-msgstr ""
-
-#: ../../help.pm_.c:186
-#, fuzzy
-msgid ""
-"You may now choose which services you wish to start at boot time.\n"
-"\n"
-"Here are presented all the services available with the current\n"
-"installation. Review them carefully and uncheck those which are not always\n"
-"needed at boot time.\n"
-"\n"
-"You can get a short explanatory text about a service by selecting a\n"
-"specific service. However, if you are not sure whether a service is useful\n"
-"or not, 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 will probably not want to start any services which you do not\n"
-"need. Please remember that several services can be dangerous if they are\n"
-"enabled on a server. In general, select only the services you really need.\n"
-"!!"
-msgstr ""
-"Ģšļńåßōå ōžńį ķį åšéėŻīåōå šļéŻņ õšēńåóßåņ čŻėåōå ķį īåźéķļżķ źįōÜ ōēķ \n"
-"åźźßķēóē.\n"
-"\n"
-"\n"
-"ÅÜķ ģåōįźéķŽóåōå ōļķ äńļģŻį ōļõ šļķōéźéļż šÜķł óå ģßį įšü įõōŻņ, \n"
-"čį åģöįķéóōåß Żķį ģšįėļķÜźé āļēčåßįņ šļõ čį åīēćåß ōļķ ńüėļ ōēņ.\n"
-"\n"
-"\n"
-"ŠńļóŻīōå įõōü ōļ āŽģį åÜķ óźļšåżåōå ķį ÷ńēóéģļšļéŽóåōå óōļ óżóōēģį óįķ \n"
-"åīõšēńåōēōŽ. Äåķ čį čŻėįōå ķį īåźéķŽóåōå õšēńåóßåņ šļõ äåķ ÷ńåéÜęåóōå, \n"
-"äéüōé ļńéóģŻķåņ õšēńåóßåņ åģšåńéŻ÷ļõķ źéķäżķļõņ įóöįėåßįņ åÜķ õšÜń÷ļõķ \n"
-"óå åīõšēńåōēōŽ.\n"
-"ĆåķéźÜ, åšéėŻīōå ģüķļ ōéņ õšēńåóßåņ šļõ ÷ńåéÜęåóōå šńįćģįōéźÜ."
-
-#: ../../help.pm_.c:203
-msgid ""
-"GNU/Linux manages time in GMT (Greenwich Mean Time) and translates it in\n"
-"local time according to the time zone you selected. It is however possible\n"
-"to deactivate this by deselecting \"Hardware clock set to GMT\" so that the\n"
-"hardware clock is the same as the system clock. This is useful when the\n"
-"machine is hosting another operating system like Windows.\n"
-"\n"
-"The \"Automatic time synchronization\" option will automatically regulate\n"
-"the clock by connecting to a remote time server on the Internet. In the\n"
-"list that is presented, choose a server located near you. Of course you\n"
-"must have a working Internet connection for this feature to work. It will\n"
-"actually install on your machine a time server which can be optionally used\n"
-"by other machines on your local network."
-msgstr ""
-
-#: ../../help.pm_.c:217
-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 Mandrake Linux rely. In this section, DrakX\n"
-"will try to configure X automatically.\n"
-"\n"
-"It is extremely rare for it to fail, unless the hardware is very old (or\n"
-"very new). If it succeeds, it will start X automatically with the best\n"
-"resolution possible, depending on the size of the monitor. A window will\n"
-"then appear and ask you if you can see it.\n"
-"\n"
-"If you are doing an \"Expert\" installation, you will enter the X\n"
-"configuration wizard. See the corresponding section of the manual for more\n"
-"information about this wizard.\n"
-"\n"
-"If you can see the message during the test, and answer \"Yes\", then DrakX\n"
-"will proceed to the next step. If you cannot see the message, it simply\n"
-"means that the configuration was wrong and the test will automatically end\n"
-"after 10 seconds, restoring the screen."
-msgstr ""
-
-#: ../../help.pm_.c:237
-msgid ""
-"The first time you try the X configuration, you may not be very satisfied\n"
-"with its display (screen is too small, shifted left or right...). Hence,\n"
-"even if X starts up correctly, DrakX then asks you if the configuration\n"
-"suits you. It will also propose to change it by displaying a list of valid\n"
-"modes it could find, asking you to select one.\n"
-"\n"
-"As a last resort, if you still cannot get X to work, choose \"Change\n"
-"graphics card\", select \"Unlisted card\", and when prompted on which\n"
-"server, choose \"FBDev\". This is a failsafe option which works with any\n"
-"modern graphics card. Then choose \"Test again\" to be sure."
-msgstr ""
-
-#: ../../help.pm_.c:249
-msgid ""
-"Finally, you will be asked whether you want to see the graphical interface\n"
-"at boot. Note this question will be asked even if you chose not to test the\n"
-"configuration. Obviously, you want to answer \"No\" if your machine is to\n"
-"act as a server, or if you were not successful in getting the display\n"
-"configured."
-msgstr ""
-
-#: ../../help.pm_.c:256
-msgid ""
-"The Mandrake LinuxCD-ROM has a built-in rescue mode. You can access it by\n"
-"booting from the CD-ROM, press the >>F1<< key at boot and type >>rescue<<\n"
-"at the prompt. But in case your computer cannot boot from the CD-ROM, you\n"
-"should come back to this step for help in at least two situations:\n"
-"\n"
-" * when installing the bootloader, DrakX will rewrite the boot sector (MBR)\n"
-"of your main disk (unless you are using another boot manager), to allow you\n"
-"to start up with either Windows or GNU/Linux (assuming you have Windows in\n"
-"your system). If you need to reinstall Windows, the Microsoft install\n"
-"process will rewrite the boot sector, and then you will not be able to\n"
-"start GNU/Linux!\n"
-"\n"
-" * if a problem arises and you cannot start up GNU/Linux from the hard "
-"disk,\n"
-"this floppy disk will be the only means of starting up GNU/Linux. It\n"
-"contains a fair number of system tools for restoring a system, which has\n"
-"crashed due to a power failure, an unfortunate typing error, a typo in a\n"
-"password, or any other reason.\n"
-"\n"
-"When you click on this step, you will be asked to enter a disk inside the\n"
-"drive. The floppy disk you will insert must be empty or contain data which\n"
-"you do not need. You will not have to format it since DrakX will rewrite\n"
-"the whole disk."
-msgstr ""
-
-#: ../../help.pm_.c:280
-#, fuzzy
-msgid ""
-"At this point, you need to choose where you want to install the Mandrake\n"
-"Linux operating system on your hard drive. If your hard drive is empty or\n"
-"if an existing operating system is using all the available space, you will\n"
-"need to partition it. Basically, partitioning a hard drive consists of\n"
-"logically dividing it to create space to install your new Mandrake Linux\n"
-"system.\n"
-"\n"
-"Because the partitioning process' effects are usually irreversible,\n"
-"partitioning can be intimidating and stressful if you are an inexperienced\n"
-"user. Fortunately, there is a wizard which simplifies this process. Before\n"
-"beginning, please consult the manual and take your time.\n"
-"\n"
-"If you are running the installation in Expert mode, you will enter\n"
-"DiskDrake, the Mandrake Linux partitioning tool, which allows you to\n"
-"fine-tune your partitions. See the DiskDrake section in the ``User Guide''.\n"
-"From the installation interface, you can use the wizards as described here\n"
-"by clicking the dialog's \"Wizard\" button.\n"
-"\n"
-"If partitions have already been defined, either from a previous\n"
-"installation or from another partitioning tool, simply select those to\n"
-"install your Linux system.\n"
-"\n"
-"If partitions are not defined, you will need to create them using the\n"
-"wizard. Depending on your hard drive configuration, several options are\n"
-"available:\n"
-"\n"
-" * \"Use free space\": this option will simply lead to an automatic\n"
-"partitioning of your blank drive(s). You will not be prompted further;\n"
-"\n"
-" * \"Use existing partition\": the wizard has detected one or more existing\n"
-"Linux partitions on your hard drive. If you want to use them, choose this\n"
-"option;\n"
-"\n"
-" * \"Use the free space on the Windows; partition\": if MicrosoftWindows is\n"
-"installed on your hard drive and takes all the space available on it, you\n"
-"have to create free space for Linux data. To do so, you can delete your\n"
-"MicrosoftWindows partition and data (see ``Erase entire disk'' or ``Expert\n"
-"mode'' solutions) or resize your MicrosoftWindows partition. Resizing can\n"
-"be performed without the loss of any data, provided you previously\n"
-"defragment the Windows partition. Backing up your data won't hurt either..\n"
-"This solution is recommended if you want to use both Mandrake Linux and\n"
-"MicrosoftWindows on the same computer.\n"
-"\n"
-" Before choosing this option, please understand that after this "
-"procedure,\n"
-"the size of your MicrosoftWindows partition will be smaller than at the\n"
-"present time. You will have less free space under MicrosoftWindows to store\n"
-"your data or to install new software;\n"
-"\n"
-" * \"Erase entire disk\": if you want to delete all data and all partitions\n"
-"present on your hard drive and replace them with your new Mandrake Linux\n"
-"system, choose this option. Be careful with this solution because you will\n"
-"not be able to revert your choice after you confirm;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Remove Windows\": this will simply erase everything on the drive and\n"
-"begin fresh, partitioning everything from scratch. All data on your disk\n"
-"will be lost;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Expert mode\": choose this option if you want to manually partition\n"
-"your hard drive. Be careful it is a powerful but dangerous choice. You can\n"
-"very easily lose all your data. Hence, do not choose this unless you know\n"
-"what you are doing."
-msgstr ""
-"Óå įõōü ōļ óēģåßļ, šńŻšåé ķį įšļöįóßóåōå šļż čį åćźįōįóōŽóåōå ōļ GNU/Linux\n"
-"óōļķ óźėēńü óįņ äßóźļ. ÅÜķ åßķįé Üäåéļņ Ž åÜķ Żķį Üėėļ ėåéōļõńćéźü "
-"÷ńēóéģļšļéåß\n"
-"üėļķ ōļķ ÷žńļ, čį ÷ńåéįóōåß ķį ōļķ źįōįōģŽóåōå, äēėįäŽ ķį źÜķåōå Żķįķ ėļćéźü "
-"äéį÷łńéóģü\n"
-"ōļõ äßóźļõ óå äéįģåńßóģįōį, žóōå ķį äēģéļõńćŽóåōå ÷žńļ ćéį ōēķ åćźįōÜóōįóē "
-"ōļõ Mandrake Linux.\n"
-"\n"
-"\n"
-"ÅšåéäŽ ē źįōÜōģēóē åßķįé óõķŽčłņ ģéį ģē įķōéóōńåšōŽ åńćįóßį, ģšļńåß ķį åßķįé "
-"äżóźļėē źįé \n"
-"įć÷łō韎 ćéį Żķįķ įń÷Üńéļ ÷ńŽóōē.\n"
-"Įõōü ōļ šńüćńįģģį įšėļšļéåß ōēķ äéįäéźįóßį. Šńéķ įń÷ßóåōå, šįńįźįėž "
-"óõģāļõėåõčåßōå ōļ \n"
-"åć÷åéńßäéļ ÷ńŽóēņ źįé ģēķ āéįóōåßōå.\n"
-"\n"
-"\n"
-"Čį ÷ńåéįóōåßōå ōļõėÜ÷éóōļķ äżļ źįōįōģŽóåéņ. Ģßį ćéį ōļ ėåéōļõńćéźü óżóōēģį "
-"źįé Üėėē ģßį ćéį \n"
-"ōēķ åéźļķ韎 ģķŽģē (swap).\n"
-"\n"
-"\n"
-"ÅÜķ õšÜń÷ļõķ Žäē źįōįōģŽóåéņ įšü šńļēćļżģåķē åćźįōÜóōįóē Ž įšü Üėėļ "
-"åńćįėåßļ, čį ÷ńåéįóōåß\n"
-"įšėžņ ķį åšéėŻīåōå óå šļéŻņ įšü įõōŻņ čį åćźįōįóōŽóåōå ōļ Linux óįņ.\n"
-"\n"
-"\n"
-"ÅÜķ äåķ õšÜń÷ļõķ źįōįōģŽóåéņ, šńŻšåé ķį ōéņ äēģéļõńćŽóåōå ģå ōļ šįńįšÜķł "
-"åńćįėŻéļ. ĮķÜėļćį ģå \n"
-"ōēķ źįōÜóōįóē ōļõ äßóźļõ óįņ, õšÜń÷ļõķ äéÜöļńåņ ėżóåéņ:\n"
-"\n"
-"* ×ńŽóē õšÜń÷ļķōłķ źįōįōģŽóåłķ: ĀńŻčēźįķ ģßį Ž šåńéóóüōåńåņ źįōįōģŽóåéņ "
-"Linux óōļ óżóōēģÜ óįņ.\n"
-" ÅÜķ čŻėåōå ķį ōéņ źńįōŽóåōå, åšéėŻīōå įõōŽķ ōēķ åšéėļćŽ.\n"
-"\n"
-"\n"
-"* ÄéįćńįöŽ ļėüźėēńļõ ōļõ äßóźļõ: ÅÜķ čŻėåōå ķį äéįćńÜųåōå üėį ōį äåäļģŻķį "
-"źįé üėåņ ōéņ õšÜń÷ļõóåņ\n"
-" źįōįōģŽóåéņ źįé ķį ōį įķéźįōįóōŽóåōå ģå ōļ ķŻļ óįņ Mandrake Linux óżóōēģį, "
-"åšéėŻīōå įõōŽķ ōēķ \n"
-" åšéėļćŽ. ŠŃĻÓĻ×Ē: Äåķ õšÜń÷åé ōńüšļņ ķį įķōéóōńŻųåōå ōēķ äéįäéźįóßį\n"
-" įķ įėėÜīåōå ćķžģē įńćüōåńį! ¼ėį ōį äåäļģŻķį čį źįōįóōńįöļżķ!\n"
-"\n"
-"\n"
-"* ×ńŽóē åėåżčåńļõ ÷žńļõ óōēķ źįōÜōģēóē ōłķ Windows: ÅÜķ Ż÷åōå åćźįōåóōēģŻķį "
-"ōį Microsoft Windows\n"
-" źįé źįōįėįģāÜķļõķ üėļ ōļķ ÷žńļ ōļõ äßóźļõ, šńŻšåé ķį äēģéļõńńćŽóåōå "
-"åėŻõčåńļ ÷žńļ ćéį ōļ Linux.\n"
-" Ćéį ķį ćßķåé įõōü, ģšļńåßōå åßōå ķį äéįćńÜųåōå ōēķ źįōÜōģēóē ōłķ Windows "
-"źįé üėį ōį äåäļģŻķį ōļõņ\n"
-" (äåņ \"ÄéįćńįöŽ ļėüźėēńļõ ōļõ äßóźļõ\" Ž \"Åéäéźüņ\") Ž ķį óõńńéźķžóåōå "
-"ōēķ źįōÜōģēóē ōłķ Windows.\n"
-" Ē óõńńßźķłóē ģšļńåß ķį ćßķåé ÷łńßņ įšžėåéį äåäļģŻķłķ. ĮõōŽ ē ėżóē "
-"óõķßóōįōįé åÜķ čŻėåōå ķį ÷ńēóéģļšļéåßōå\n"
-" Microsoft Windows źįé Mandrake Linux óōļķ ßäéļ õšļėļćéóōŽ.\n"
-"\n"
-"\n"
-" Šńéķ įšļöįóßóåōå ķį óõńńéźķžóåōå ōļķ äßóźļ, šńŻšåé ķį źįōįėÜāåōå üōé ģåōÜ "
-"įšü įõōŽķ ōēķ äéįäéźįóßį\n"
-" čį Ż÷åōå ėéćüōåńļ ÷žńļ äéįčŻóéģļ įšü ōį Windows ćéį įšļ莟åõóē äåäļģŻķłķ Ž "
-"åćźįōÜóōįóē åöįńģļćžķ.\n"
-"\n"
-"\n"
-"* Åéäéźüņ: ÅÜķ čŻėåōå ķį źįōįōģŽóåōå åóåßņ ōļķ äßóźļ óįņ, ÷łńßņ įõōüģįōåņ "
-"įšļöÜóåéņ. Åßķįé ģéį \n"
-" åšéėļćŽ ģå šļėėŻņ äõķįōüōēōåņ įėėÜ åšéźßķäõķē, ģéį źįé ģšļńåßōå ķį ÷Üóåōå "
-"üėį ōį äåäļģŻķį óįņ\n"
-" åÜķ źÜķåōå źÜšļéļ ėÜčļņ. Āåāįéłčåßōå üōé īŻńåōå ōé źÜķåōå šńłōļż "
-"šńļ÷łńŽóåōå."
-
-#: ../../help.pm_.c:347
-msgid ""
-"There you are. Installation is now complete and your GNU/Linux system is\n"
-"ready to use. Just click \"OK\" to reboot the system. You can start\n"
-"GNU/Linux or Windows, whichever you prefer (if you are dual-booting), as\n"
-"soon as the computer has booted up again.\n"
-"\n"
-"The \"Advanced\" button (in Expert mode only) shows two more buttons to:\n"
-"\n"
-" * \"generate auto-install floppy\": to create an installation floppy disk\n"
-"which will automatically perform a whole installation without the help of\n"
-"an operator, similar to the installation you just configured.\n"
-"\n"
-" Note that two different options are available after clicking the button:\n"
-"\n"
-" * \"Replay\". This is a partially automated installation as the\n"
-"partitioning step (and only this one) remains interactive;\n"
-"\n"
-" * \"Automated\". Fully automated installation: the hard disk is "
-"completely\n"
-"rewritten, all data is lost.\n"
-"\n"
-" This feature is very handy when installing a great number of similar\n"
-"machines. See the Auto install section on our web site;\n"
-"\n"
-" * \"Save packages selection\"(*): saves the package selection as done\n"
-"previously. Then, when doing another installation, insert the floppy inside\n"
-"the drive and run the installation going to the help screen by pressing on\n"
-"the [F1] key, and by issuing >>linux defcfg=\"floppy\"<<.\n"
-"\n"
-"(*) You need a FAT-formatted floppy (to create one under GNU/Linux, type\n"
-"\"mformat a:\")"
-msgstr ""
-
-#: ../../help.pm_.c:378
-#, fuzzy
-msgid ""
-"Any partitions that have been newly defined must be formatted for use\n"
-"(formatting means creating a filesystem).\n"
-"\n"
-"At this time, you may wish to reformat some already existing partitions to\n"
-"erase any data they contain. If you wish to do that, please select those\n"
-"partitions as well.\n"
-"\n"
-"Please note that it is 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\n"
-"reformat partitions containing data that you wish to keep (typically\n"
-"\"/home\").\n"
-"\n"
-"Please be careful when selecting partitions. After formatting, all data on\n"
-"the selected partitions will be deleted and you will not be able to recover\n"
-"any of it.\n"
-"\n"
-"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"
-"Mandrake Linux operating system installation.\n"
-"\n"
-"Click on \"Advanced\" if you wish to select partitions that will be checked\n"
-"for bad blocks on the disk."
-msgstr ""
-"Ļé ķŻåņ źįōįōģŽóåéņ šńŻšåé ķį öļńģįńéóōļżķ (äēėįäŽ ķį äēģéļõńćēčåß Żķį "
-"óżóōēģį\n"
-"įń÷åßłķ) šńłōļż ÷ńēóéģļšļéēčļżķ.\n"
-"\n"
-"\n"
-"Ģšļńåßōå åšßóēņ ķį öļńģÜńåōå źÜšļéåņ šńļūšÜń÷ļõóåņ źįōįōģŽóåéņ ćéį ķį "
-"äéįćńÜųåōå \n"
-"ōį äåäļģŻķį ōļõņ. ÅÜķ čŻėåōå źÜōé ōŻōļéļ, šįńįźįėž åšéėŻīōå ōéņ źįōįōģŽóåéņ "
-"šļõ \n"
-"čŻėåōå ķį öļńģÜńåōå.\n"
-"\n"
-"\n"
-"Óēģåéžóōå üōé äåķ åßķįé įšįńįßōēōļ ķį öļńģÜńåōå üėåņ ōéņ šńļūšÜń÷ļõóåņ "
-"źįōįōģŽóåéņ.\n"
-"ŠńŻšåé ķį öļńģÜńåōå ōéņ źįōįōģŽóåéņ šļõ šåńéŻ÷ļõķ ōļ ėåéōļõńćéźü óżóōēģį "
-"(üšłņ ļé \n"
-"\"/\", \"/usr\" źįé \"/var\"), įėėÜ äåķ ÷ńåéÜęåōįé ķį öļńģÜńåōå źįōįōģŽóåéņ "
-"šļõ šåńéŻ÷ļõķ \n"
-"äåäļģŻķį šļõ čŻėåōå ķį źńįōŽóåōå (óõķŽčłņ ē \"/home\").\n"
-"\n"
-"\n"
-"Šįńįźįėž ķį åßóōå šńļóåźōéźļß źįčžņ ģåōÜ įšü įõōŽķ ōēķ äéįäéźįóßį üėį ōį "
-"äåäļģŻķį \n"
-"óōéņ źįōįōģŽóåéņ įõōŻņ čį ÷įčļżķ įģåōÜźėēōį.\n"
-"\n"
-"\n"
-"ŠįōŽóōå \"OK\" üōįķ åßóōå Żōļéģļé ķį īåźéķŽóåōå ōēķ äéįäéźįóßį.\n"
-"\n"
-"\n"
-"ŠįōŽóōå \"Įźżńłóē\" åÜķ čŻėåōå ķį įėėÜīåōå ōéņ åšéėļćŻņ óįņ źįé ķį "
-"÷ńēóéģļšļéŽóåōå \n"
-"Üėėåņ źįōįōģŽóåéņ ćéį ōēķ åćźįōÜóōįóē ōļõ Mandrake Linux."
-
-#: ../../help.pm_.c:404
-#, fuzzy
-msgid ""
-"Your new Mandrake Linux operating system is currently being installed.\n"
-"Depending on the number of packages you will be installing and the speed of\n"
-"your computer, this operation could take from a few minutes to a\n"
-"significant amount of time.\n"
-"\n"
-"Please be patient."
-msgstr ""
-"Ōļ ķŻļ óįņ ėåéōļõńćéźü óżóōēģį Mandrake Linux åćźįčßóōįōįé.\n"
-"ĮõōŽ ē äéįäéźįóßį čį šÜńåé źÜšļéį žńį, įķÜėļćį ģå ōļ ģŻćåčļņ \n"
-"ōēņ åćźįōóōįóēņ šļõ åšéėŻīįōå źįé ōēķ ōį÷żōēōį ōļõ õšļėļćéóōŽ óįņ.\n"
-"\n"
-"\n"
-"Šįńįźįėž šåńéģŻķåōå õšļģļķåōéźÜ."
-
-#: ../../help.pm_.c:412
-msgid ""
-"At the time you are installing Mandrake Linux, it is likely that some\n"
-"packages have been updated since the initial release. Some bugs may have\n"
-"been fixed, and security issues solved. To allow you to benefit from these\n"
-"updates, you are now proposed to download them from the Internet. Choose\n"
-"\"Yes\" if you have a working Internet connection, or \"No\" if you prefer\n"
-"to install updated packages later.\n"
-"\n"
-"Choosing \"Yes\" displays a list of places from which updates can be\n"
-"retrieved. Choose the one nearest you. Then a package-selection tree\n"
-"appears: review the selection, and press \"Install\" to retrieve and\n"
-"install the selected package(s), or \"Cancel\" to abort."
-msgstr ""
-
-#: ../../help.pm_.c:425
-msgid ""
-"Before continuing, you should read carefully the terms of the license. It\n"
-"covers the whole Mandrake Linux 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."
-msgstr ""
-
-#: ../../help.pm_.c:432
-msgid ""
-"At this point, it is time to choose the security level desired for the\n"
-"machine. As a rule of thumb, the more exposed the machine is, and the more\n"
-"the data stored in it is crucial, the higher the security level should be.\n"
-"However, a higher security level is generally obtained at the expense of\n"
-"easiness of use. Refer to the \"msec\" chapter of the ``Reference Manual''\n"
-"to get more information about the meaning of these levels.\n"
-"\n"
-"If you do not know what to choose, keep the default option."
-msgstr ""
-
-#: ../../help.pm_.c:442
-#, fuzzy
-msgid ""
-"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandrake Linux 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"
-"partitions must be defined.\n"
-"\n"
-"To create partitions, you must first select a hard 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"
-"\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"
-"\n"
-" * \"More\": gives access to additional features:\n"
-"\n"
-" * \"Save partition table\": saves the partition table to a floppy. "
-"Useful\n"
-"for later partition-table recovery if necessary. It is strongly recommended\n"
-"to perform this step;\n"
-"\n"
-" * \"Restore partition table\": allows to restore a previously saved\n"
-"partition table from floppy disk;\n"
-"\n"
-" * \"Rescue partition table\": if your partition table is damaged, you "
-"can\n"
-"try to recover it using this option. Please be careful and remember that it\n"
-"can fail;\n"
-"\n"
-" * \"Reload partition table\": discards all changes and loads your "
-"initial\n"
-"partition table;\n"
-"\n"
-" * \"Removable media automounting\": unchecking this option will force "
-"users\n"
-"to manually mount and unmount removable medias such as floppies and\n"
-"CD-ROMs.\n"
-"\n"
-" * \"Wizard\": 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 knowledge of\n"
-"partitioning;\n"
-"\n"
-" * \"Undo\": use this option to cancel your changes;\n"
-"\n"
-" * \"Toggle to normal/expert mode\": allows additional actions on "
-"partitions\n"
-"(type, options, format) and gives more information;\n"
-"\n"
-" * \"Done\": when you are finished partitioning your hard 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"
-"partitions using [Tab] and [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"
-"\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"
-"ōļ Mandrake Linux. ÅÜķ šńļūšÜń÷ļõķ źįōįōģŽóåéņ, įšü šįėįéüōåńē åćźįōÜóōįóē Ž "
-"įšü \n"
-"Üėėļ åńćįėåßļ, ģšļńåßōå ķį ōéņ ÷ńēóéģļšļéŽóåōå. Įėėéžņ, čį šńŻšåé ķį "
-"ļńßóåōå \n"
-"ķŻåņ źįōįōģŽóåéņ.\n"
-"\n"
-"\n"
-"Ćéį ķį äēģéļõńćŽóåōå źįōįōģŽóåéņ, šńŻšåé šńžōį ķį åšéėŻīåōå óźėēńü äßóźļ, "
-"źÜķļķōįņ\n"
-"źėéź ģå ōļ šļķōßźé óōļ \"hda\" óōļķ šńžōļ IDE äßóźļ, \"hdb\" óōļķ äåżōåńļ "
-"IDE, \"sda\"\n"
-"óōļķ šńžōļ SCSI äßóźļ źėš\n"
-"\n"
-"\n"
-"Ćéį ķį źįōįōģŽóåōå äßóźļ óįņ, ģšļńåßōå ķį åšéėŻīåōå:\n"
-"\n"
-" * ŠėŽńēņ äéįćńįöŽ: įõōŽ ē åšéėļćŽ äéįćńÜöåé üėåņ ōéņ źįōįōģŽóåéņ ōļõ \n"
-" åšéėåćģŻķļõ äßóźļõ.\n"
-"\n"
-"\n"
-" * Įõōüģįōē åšéėļćŽ: ĮõōŽ ē åšéėļćŽ äēģéļõńćåß įõōüģįōį źįōįōģŽóåéņ \n"
-" ext2 źįé swap óōļķ åėåżčåńļ ÷žńļ ōļõ äßóźļõ.\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"
-"Ģåōįźéķēčåßōå óōéņ źįōįōģŽóåéņ ÷ńēóéģļšļéžķōįņ ōļ šėŽźōńļ Tab źįé ōį "
-"āåėÜźéį.\n"
-"\n"
-"\n"
-"¼ōįķ Ż÷åōå åšéėŻīåé ģéį źįōÜōģēóē, ģšļńåßōå ķį šįōŽóåōå:\n"
-"\n"
-" * Ctrl-c ćéį äēģéļõńćßį źįōÜōģēóēņ (üōįķ Ż÷åōå åšéėŻīåé Üäåéļ "
-"÷žńļ)\n"
-"\n"
-" * Ctrl-d ćéį äéįćńįöŽ źįōÜōģēóēņ\n"
-"\n"
-" * Ctrl-m ćéį ļńéóģü óēģåßļõ óżķäåóēņ \n"
-"\n"
-" \n"
-"Åįķ źÜķåōå åćźįōÜóōįóē óå Żķį PPC ģē÷Üķēģį, čį čŻėåōå ķį äēģéļõńćŽóåōå ģéį "
-"ģéźńŽ HFS 'bootstrap' źįōÜōģēóē ōļõėÜ÷éóōļķ 1ĢĀ ćéį ÷ńŽóē\n"
-"įšü ōļķ yaboot bootloader. ÅÜķ óźļšåżåōå ķį źÜķåōå ōēķ źįōÜōģēóē ģåćįėżōåńē, "
-"š.÷. 50ĢĀ, ßółņ ōēķ āńåßōå ÷ńŽóéģē ćéį įšļ莟åõóē \n"
-"åķüņ šõńŽķį źįé ramdisk image ćéį åšßćļõóåņ źįōįóōÜóåéņ."
-
-#: ../../help.pm_.c:513
-#, fuzzy
-msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
-"Please choose the one you want to resize in order to install your new\n"
-"Mandrake Linux 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"
-"\"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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard 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"
-"disk or partition is called \"C:\")."
-msgstr ""
-"Šåńéóóüōåńåņ ōłķ ģßį źįōįōģŽóåéņ Windows āńŻčēźįķ óōļķ äßóźļ óįņ. Šįńįźįėž \n"
-"åšéėŻīōå šļéÜ čŻėåōå ķį óõńńéźķžóåōå ćéį ķį åćźįōįóōŽóåōå ōļ Mandrake "
-"Linux.\n"
-"\n"
-"\n"
-"ŠėēńļöļńéįźÜ, źÜčå źįōÜōģēóē įķįöŻńåōįé łņ: \"¼ķļģį Linux\", \"¼ķļģį Windows"
-"\", \"׳ńēōéźüōēōį\".\n"
-"\n"
-"\n"
-"Ōļ üķļģį Linux óēģįßķåé ōį åīŽņ: Ōżšļņ äßóźļõ, įńéčģüņ äßóźļõ, įńéčģüņ "
-"źįōÜōģēóēņ \n"
-"ćéį šįńÜäåéćģį, \"hda1\").\n"
-"\n"
-"\n"
-"Ļ ōżšļņ åßķįé \"hd\" åÜķ šńüźåéōįé ćéį äßóźļ IDE źįé \"sd\" ćéį SCSI äßóźļ.\n"
-"\n"
-"\n"
-"Ļ įńéčģüņ äßóźļõ åßķįé šÜķōį Żķį ćńÜģģį ģåōÜ ōļ \"hd\" Ž \"sd\". Ćéį ōļõņ "
-"IDE \n"
-"äßóźļõņ: \n"
-"\n"
-" * \"a\" åßķįé ļ master äßóźļņ óōļķ šńžōļ åėåćźōŽ IDE,\n"
-"\n"
-" * \"b\" åßķįé ļ slave äßóźļņ óōļķ šńžōļ åėåćźōŽ IDE,\n"
-"\n"
-" * \"c\" åßķįé ļ master äßóźļņ óōļķ äåżōåńļ åėåćźōŽ IDE,\n"
-"\n"
-" * \"d\" åßķįé ļ slave äßóźļņ óōļķ äåżōåńļ åėåćźōŽ IDE.\n"
-"\n"
-"\n"
-"Ćéį äßóźļõņ SCSI, \"a\" åßķįé ļ šńžōļņ äßóźļņ, \"b\" åßķįé ļ äåżōåńļņ äßóźļņ "
-"źėš...\n"
-"\n"
-"\n"
-"Ōļ üķļģį Windows åßķįé ōļ ćńÜģģį ōēņ źįōÜōģēóēņ üšłņ öįßķåōįé įšü ōį "
-"Windows\n"
-"(ļ šńžōļņ äßóźļņ Ž źįōÜōģēóē ėŻćåōįé \"C:\")."
-
-#: ../../help.pm_.c:544
-msgid "Please be patient. This operation can take several minutes."
-msgstr "Šįńįźįėž šåńéģŻķåōå. ĮõōŽ ē äéįäéźįóßį ģšļńåß ķį šÜńåé ģåńéźÜ ėåšōÜ."
-
-#: ../../help.pm_.c:547
-#, fuzzy
-msgid ""
-"DrakX now needs to know if you want to perform a default (\"Recommended\")\n"
-"installation or if you want to have greater control (\"Expert\"). You can\n"
-"also choose to do a new install or an upgrade of an existing Mandrake Linux\n"
-"system:\n"
-"\n"
-" * \"Install\": completely wipes out the old system. In fact, depending on\n"
-"what currently holds your machine, you will be able to keep some old (Linux\n"
-"or other) partitions unchanged;\n"
-"\n"
-" * \"Upgrade\": this installation class allows to simply update the "
-"packages\n"
-"currently installed on your Mandrake Linux system. It keeps the current\n"
-"partitions of your hard drives as well as user configurations. All other\n"
-"configuration steps remain available with respect to plain installation;\n"
-"\n"
-" * \"Upgrade Packages Only\": this brand new class allows to upgrade an\n"
-"existing Mandrake Linux system while keeping all system configurations\n"
-"unchanged. Adding new packages to the current installation is also\n"
-"possible.\n"
-"\n"
-"Upgrades should work fine for Mandrake Linux systems starting from \"8.1\"\n"
-"release.\n"
-"\n"
-"Depending on your knowledge of GNU/Linux, select one of the following\n"
-"choices:\n"
-"\n"
-" * Recommended: choose this if you have never installed a GNU/Linux\n"
-"operating system. The installation will be very easy and you will only be\n"
-"asked a few questions;\n"
-"\n"
-" * Expert: if you have a good knowledge of GNU/Linux, you can choose this\n"
-"installation class. The expert installation will allow you to perform a\n"
-"highly-customized installation. Answering some of the questions can be\n"
-"difficult if you do not have a good knowledge of GNU/Linux, so do not\n"
-"choose this unless you know what you are doing."
-msgstr ""
-"Šįńįźįėž åšéėŻīōå \"ÅćźįōÜóōįóē\" åÜķ äåķ õšÜń÷åé åćźįōåóōēģŻķē šįėįéüōåńē "
-"Żźäļóē ōļõ Mandrake Linux\n"
-"Ž åÜķ čŻėåōå ķį ÷ńēóéģļšļéŽóåōå šåńéóóüōåńį ōļõ åķüņ ėåéōļõńćéźÜ óõóōŽģįōį.\n"
-"\n"
-"\n"
-"ÅšéėŻīōå \"ĮķįāÜčģéóē\" åÜķ čŻėåōå ķį įķįāįčģßóåōå ģéį šńļūšÜń÷ļõóį "
-"åćźįōÜóōįóē ōļõ Mandrake Linux\n"
-"\n"
-"\n"
-"ĮķÜėļćį ģå ōéņ ćķžóåéņ óįņ óōļ GNU/Linux, ģšļńåßōå ķį åšéėŻīåōå Żķį įšü ōį "
-"šįńįźÜōł åšßšåäį åćźįōÜóōįóēņ\n"
-"Ž įķįāÜčģéóēņ ōļõ Mandrake Linux:\n"
-"\n"
-"* Óõķéóōžģåķļ: ÅÜķ äåķ Ż÷åōå īįķįåćźįōįóōŽóåé šļōŻ Żķį GNU/Linux óżóōēģį. Ē "
-"åćźįōÜóōįóē čį åßķįé \n"
-" šļėż åżźļėē źįé čį óįņ ęēōēčåß ķį įšįķōŽóåōå ėßćåņ åńłōŽóåéņ.\n"
-"\n"
-"\n"
-"* ŠńļóįńģļóģŻķē: ÅÜķ åßóōå åīļéźåéłģŻķļņ ģå ōļ GNU/Linux, ģšļńåßōå ķį "
-"åšéėŻīåōå ōēķ āįó韎 ÷ńŽóē\n"
-" (åīõšēńåōēōŽņ, óōįčģüņ åńćįóßįņ) ōļõ óõóōŽģįōüņ óįņ. Čį ÷ńåéįóōåß ķį "
-"įšįķōŽóåōå óå šåńéóóüōåńåņ\n"
-" åńłōŽóåéņ, ļšüōå čį šńŻšåé ķį Ż÷åōå źÜšļéåņ āįó韯ņ ćķžóåéņ ó÷åōéźÜ ģå ōēķ "
-"ėåéōļõńćßį ōļõ GNU/Linux.\n"
-"\n"
-"\n"
-"* Åéäéźüņ: ÅÜķ Ż÷åōå åģšåéńßį ģå ōļ GNU/Linux. ¼šłņ źįé šįńįšÜķł, ģšļńåßōå "
-"ķį åšéėŻīåōå ōēķ āįó韎\n"
-" ÷ńŽóē ōļõ óõóōŽģįōļņ. Čį ģšļńŻóåōå åšßóēņ ķį šńļóįńģüóåōå ōļ óżóōēģį óōéņ "
-"įķÜćźåņ óįņ ėåšōļģåńžņ,\n"
-" įėėÜ čį ÷ńåéįóōåß ķį įšįķōŽóåōå óå åīåéäéźåõģŻķåņ åńłōŽóåéņ šļõ "
-"šńļūšļčŻōļõķ åīåéäéźåõģŻķåņ ćķžóåéņ.\n"
-" Āåāįéłčåßōå üōé īŻńåōå ōé źÜķåōå šńłōļż åšéėŻīåōå įõōŽķ ōēķ åćźįōÜóōįóē."
-
-#: ../../help.pm_.c:583
-msgid ""
-"Normally, DrakX selects the right keyboard for you (depending on the\n"
-"language you have chosen) and you won't even see this step. However, you\n"
-"might not have a keyboard that corresponds exactly to your language: for\n"
-"example, if you are an English speaking Swiss person, you may still want\n"
-"your keyboard to be a Swiss keyboard. Or if you speak English but are\n"
-"located in Quebec, you may find yourself in the same situation. In both\n"
-"cases, you will have to go back to this installation step and select an\n"
-"appropriate keyboard from the list.\n"
-"\n"
-"Click on the \"More\" button to be presented with the complete list of\n"
-"supported keyboards."
-msgstr ""
-
-#: ../../help.pm_.c:596
-msgid ""
-"Please choose your preferred language for installation and system usage.\n"
-"\n"
-"Clicking on the \"Advanced\" button will allow you to select other\n"
-"languages to be installed on your workstation. Selecting other languages\n"
-"will install the language-specific files for system documentation and\n"
-"applications. For example, if you will host users from Spain on your\n"
-"machine, select English as the main language in the tree view and in the\n"
-"Advanced section click on the box corresponding to \"Spanish|Spain\".\n"
-"\n"
-"Note that multiple languages may be installed. Once you have selected any\n"
-"additional locales, click the \"OK\" button to continue."
-msgstr ""
-
-#: ../../help.pm_.c:609
-msgid ""
-"DrakX generally detects the number of buttons your mouse has. If not, it\n"
-"assumes you have a two-button mouse and will set it up for third-button\n"
-"emulation. DrakX will automatically know whether it is a PS/2, serial or\n"
-"USB mouse.\n"
-"\n"
-"If you wish to specify a different type of mouse select the appropriate\n"
-"type from the provided list.\n"
-"\n"
-"If you choose a mouse other than the default, a test screen will be\n"
-"displayed. Use the buttons and wheel to verify that the settings are\n"
-"correct. If the mouse is not working well, press the space bar or [Return]\n"
-"to \"Cancel\" and choose again."
-msgstr ""
-
-#: ../../help.pm_.c:623
-#, fuzzy
-msgid ""
-"Please select the correct port. For example, the \"COM1\" port under\n"
-"Windows is named \"ttyS0\" under GNU/Linux."
-msgstr ""
-"Šįńįźįėž åšéėŻīōå ōēķ źįōÜėėēėē čżńį. Ćéį šįńÜäåéćģį,\n"
-"ē COM1 óōį Windows ļķļģÜęåōįé ttyS0 óōļ GNU/Linux."
-
-#: ../../help.pm_.c:627
-msgid ""
-"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 choose\n"
-"not to enter a password, but we strongly advise you against this if only\n"
-"for one reason: do not think that because you booted GNU/Linux that your\n"
-"other operating systems are safe from mistakes. Since \"root\" can overcome\n"
-"all limitations and unintentionally erase all data on partitions by\n"
-"carelessly accessing the partitions themselves, it is important for it to\n"
-"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."
-msgstr ""
-
-#: ../../help.pm_.c:663
-msgid ""
-"LILO and grub are GNU/Linux bootloaders. This stage, normally, is totally\n"
-"automated. In fact, DrakX analyzes the disk boot sector and acts\n"
-"accordingly, depending on what it finds here:\n"
-"\n"
-" * if a Windows boot sector is found, it will replace it with a grub/LILO\n"
-"boot sector. Hence, you will be able to load either GNU/Linux or another\n"
-"OS;\n"
-"\n"
-" * if a grub or LILO boot sector is found, it will replace it with a new\n"
-"one.\n"
-"\n"
-"If in doubt, DrakX will display a dialog with various options.\n"
-"\n"
-" * \"Bootloader to use\": you have three choices:\n"
-"\n"
-" * \"GRUB\": if you prefer grub (text menu).\n"
-"\n"
-" * \"LILO with graphical menu\": if you prefer LILO with its graphical\n"
-"interface.\n"
-"\n"
-" * \"LILO with text menu\": if you prefer LILO with its text menu "
-"interface.\n"
-"\n"
-" * \"Boot device\": in most cases, you will not change the default\n"
-"(\"/dev/hda\"), but if you prefer, the bootloader can be installed on the\n"
-"second hard drive (\"/dev/hdb\"), or even on a floppy disk (\"/dev/fd0\");\n"
-"\n"
-" * \"Delay before booting the default image\": when rebooting the computer,\n"
-"this is the delay granted to the user to choose in the bootloader menu,\n"
-"another boot entry than the default one.\n"
-"\n"
-"!! Beware that if you choose not to install a bootloader (by selecting\n"
-"\"Cancel\" here), you must ensure that you have a way to boot your Mandrake\n"
-"Linux system! Also, be sure you know what you do before changing any of the\n"
-"options. !!\n"
-"\n"
-"Clicking the \"Advanced\" button in this dialog will offer many advanced\n"
-"options, which are reserved to the expert user.\n"
-"\n"
-"After you have configured the general bootloader parameters, the list of\n"
-"boot options which will be available at boot time will be displayed.\n"
-"\n"
-"If there is another operating system installed on your machine, it will\n"
-"automatically be added to the boot menu. Here, you can choose to fine-tune\n"
-"the existing options. Select an entry and click \"Modify\" to modify or\n"
-"remove it; \"Add\" creates a new entry; and \"Done\" goes on to the next\n"
-"installation step."
-msgstr ""
-
-#: ../../help.pm_.c:711
-#, fuzzy
-msgid ""
-"LILO (the LInux LOader) and grub are bootloaders: they are able to boot\n"
-"either GNU/Linux or any other operating system present on your computer.\n"
-"Normally, these other operating systems are correctly detected and\n"
-"installed. If this is not the case, you can add an entry by hand in this\n"
-"screen. Be careful to choose the correct parameters.\n"
-"\n"
-"You may also not want to give access to these other operating systems to\n"
-"anyone. In which case, you can delete the corresponding entries. But then,\n"
-"you will need a boot disk in order to boot those other operating systems!"
-msgstr ""
-"Ōļ LILO źįé ōļ Grub åßķįé šńļćńÜģģįōį åźźßķēóēņ: Ģšļńļżķ ķį åźźéķŽóļõķ \n"
-"ōļ GNU/Linux Ž ļšļéļ䎚ļōå Üėėļ ėåéōļõńćéźü õšÜń÷åé óōļ óżóōēģÜ óįņ. "
-"ŹįķļķéźÜ, \n"
-"ōį åšéšėŻļķ ėåéōļõńćéźÜ šńļóäéļńßęļķōįé źįé ńõčģßęļķōįé ółóōÜ. ÅÜķ įõōü "
-"äåķ \n"
-"óõķŻāē, ģšļńåßōå ķį šńļóčŻóåōå åšéšėŻļķ åšéėļćŻņ óå įõōŽķ ōēķ ļčüķē. \n"
-"ŠńļóŻīōå ķį åšéėŻīåōå ōéņ ółóōŻņ šįńįģŻōńļõņ.\n"
-"\n"
-"Ģšļńåßōå åšßóēņ ķį įšļźėåßóåōå ōēķ šńüóāįóē óå Üėėį ėåéōļõńćéźÜ óõóōŽģįōį "
-"įöįéńžķōįņ\n"
-"ōéņ įķōßóōļé÷åņ åšéėļćŻņ. Óå įõōŽķ üģłņ ōēķ šåńßšōłóē, čį ÷ńåéįóōåßōå "
-"äéóźŻōōį åźźßķēóēņ\n"
-"ćéį ķį ōį ÷ńēóéģļšļéŽóåōå!"
-
-#: ../../help.pm_.c:722
-#, fuzzy
-msgid ""
-"You must indicate where you wish to place the information required to boot\n"
-"to GNU/Linux.\n"
-"\n"
-"Unless you know exactly what you are doing, choose \"First sector of drive\n"
-"(MBR)\"."
-msgstr ""
-"ŠńŻšåé ķį šńļóäéļńßóåōå šļż čŻėåōå ķį åćźįōįóōįčļżķ ļé \n"
-"šėēńļöļńßåņ šļõ åßķįé įšįńįßōēōåņ ćéį ōēķ åźźßķēóē ōļõ \n"
-"GNU/Linux.\n"
-"\n"
-"\n"
-"Åźōüņ źįé įķ īŻńåōå šļėż źįėÜ ōé źÜķåōå, åšéėŻīōå \"Šńžōļņ ōļģŻįņ\n"
-"ōļõ äßóźļõ (MBR)\"."
-
-#: ../../help.pm_.c:729
-msgid ""
-"Here, we select a printing system for your computer. Other OSs may offer\n"
-"you one, but Mandrake Linux offers three.\n"
-"\n"
-" * \"pdq\" which means ``print, don't queue'', is the choice if you have a\n"
-"direct connection to your printer and you want to be able to panic out of\n"
-"printer jams, and you do not have networked printers. It will handle only\n"
-"very simple network cases and is somewhat slow for networks. Pick \"pdq\"\n"
-"if this is your maiden voyage to GNU/Linux. You can change your choices\n"
-"after installation by running PrinterDrake from the Mandrake Control Center\n"
-"and clicking the expert button.\n"
-"\n"
-" * \"CUPS\"``Common Unix Printing System'', is excellent at printing to "
-"your\n"
-"local printer and also halfway-around the planet. It is simple and can act\n"
-"as a server or a client for the ancient \"lpd\" printing system. Hence, it\n"
-"is compatible with the systems that went before. It can do many tricks, but\n"
-"the basic setup is almost as easy as \"pdq\". If you need this to emulate\n"
-"an \"lpd\" server, you must turn on the \"cups-lpd\" daemon. It has\n"
-"graphical front-ends for printing or choosing printer options.\n"
-"\n"
-" * \"lprNG\"``line printer daemon New Generation''. This system can do\n"
-"approximately the same things the others can do, but it will print to\n"
-"printers mounted on a Novell Network, because it supports the IPX protocol,\n"
-"and it can print directly to shell commands. If you have need of Novell or\n"
-"printing to commands without using a separate pipe construct, use lprNG.\n"
-"Otherwise, CUPS is preferable as it is simpler and better at working over\n"
-"networks."
-msgstr ""
-
-#: ../../help.pm_.c:757
-#, fuzzy
-msgid ""
-"DrakX now detects any IDE device present in your computer. It will also\n"
-"scan for one or more PCI SCSI card(s) on your system. If a SCSI card is\n"
-"found, DrakX will automatically install the appropriate driver.\n"
-"\n"
-"Because hardware detection does not always detect a piece of hardware,\n"
-"DrakX will ask you to confirm if a PCI SCSI card is present. Click \"Yes\"\n"
-"if you know that there is a SCSI card installed in your machine. You will\n"
-"be presented a list of SCSI cards to choose from. Click \"No\" if you have\n"
-"no SCSI hardware. If you are unsure, you can check the list of hardware\n"
-"detected in your machine by selecting \"See hardware info\" and clicking\n"
-"\"OK\". Examine the list of hardware and then click on the \"OK\" button to\n"
-"return to the SCSI interface question.\n"
-"\n"
-"If you have to manually specify your adapter, DrakX will ask if you want to\n"
-"specify options for it. You should allow DrakX to probe the hardware for\n"
-"the card-specific options which the hardware needs to initialize. This\n"
-"usually works well.\n"
-"\n"
-"If DrakX is not able to probe for the options which need to be passed, you\n"
-"will need to provide options to the driver manually. Please review the\n"
-"``User Guide'' (chapter 3, in the ``Collecting Information on Your\n"
-"Hardware'' section) for hints on retrieving the parameters required from\n"
-"hardware documentation, from the manufacturer's web site (if you have\n"
-"Internet access) or from MicrosoftWindows (if you used this hardware with\n"
-"Windows on your system)."
-msgstr ""
-"Ōļ DrakX čį šńļóšįčŽóåé ķį åķōļšßóåé šńļóįńģļćåßņ SCSI ōżšļõ PCI.\n"
-"ÅÜķ ōļ DrakX åķōļšßóåé Żķįķ šńļóįńģļćŻį šļõ īŻńåé šžņ ķį ōļķ "
-"÷ńēóéģļšļéŽóåé,\n"
-"čį åćźįōįóōŽóåé įõōüģįōį ōļķ źįōÜėėēėļ ļäēćü\n"
-"\n"
-"\n"
-"ÅÜķ Ż÷åōå šńļóįńģļćŻį SCSI ōżšļõ ISA, źÜšļéļķ ģŽ įķįćķłńßóéģļ PCI "
-"šńļóįńģļćŻį \n"
-"Ž äåķ Ż÷åōå źįķŻķįķ šńļóįńģļćŻį SCSI, ōļ DrakX čį óįņ ńłōŽóåé åÜķ Ż÷åōå "
-"źÜšļéļķ \n"
-"šńļóįńģļćŻį SCSI óōļ óżóōēģÜ óįņ. ÅÜķ äåķ Ż÷åōå, šįōŽóōå įšėžņ '¼÷é'. ÅÜķ "
-"šįōŽóåōå\n"
-"'Ķįé', čį óįņ ęēōēčåß ķį įšéėŻīåōå ōļķ ōżšļ ōļõ įšü Żķįķ źįōÜėļćļ.\n"
-"\n"
-"\n"
-"ÅÜķ åšéėŻīåōå šńļóįńģļćŻį, ōļ DrakX čį óįņ ńłōŽóåé åÜķ čŻėåōå ķį ļńßóåōå "
-"åšéėļćŻņ.\n"
-"ÓõķŽčłņ, įöŽķļķōįņ ōļ DrakX ķį ńõčģßóåé įõōüģįōį ōļķ šńļóįńģļćŻį, äåķ čį "
-"Ż÷åōå šńüāėēģį.\n"
-"\n"
-"\n"
-"Óå įķōßčåōē šåńßšōłóē, čį šńŻšåé ķį äžóåōå åšéėļćŻņ ćéį ōļķ ļäēćü. \n"
-"Óõģāļõėåõōåßōå ōļķ Ļäēćü ÅćźįōÜóōįóēņ ćéį ōļ šžņ čį āńåßōå įõōŻņ ōéņ \n"
-"šėēńļöļńßåņ įšü ōēķ åćźįōÜóōįóē ōłķ Windows (įķ õšÜń÷åé), įšü ōēķ "
-"ōåźģēńßłóē\n"
-"ōļõ õėéźļż Ž įšü ōēķ éóōļóåėßäį ōļõ źįōįóźåõįóōŽ (įķ Ż÷åōå šńüóāįóē óōļ "
-"Internet)."
-
-#: ../../help.pm_.c:784
-#, fuzzy
-msgid ""
-"You can add additional entries for yaboot, either for other operating\n"
-"systems, alternate kernels, or for an emergency boot image.\n"
-"\n"
-"For other OSs, the entry consists only of a label and the \"root\"\n"
-"partition.\n"
-"\n"
-"For Linux, there are a few possible options:\n"
-"\n"
-" * Label: this is simply the name you will have to type at the yaboot "
-"prompt\n"
-"to select this boot option;\n"
-"\n"
-" * Image: this would be the name of the kernel to boot. Typically, vmlinux\n"
-"or a variation of vmlinux with an extension;\n"
-"\n"
-" * Root: the \"root\" device or ``/'' for your Linux installation;\n"
-"\n"
-" * Append: on Apple hardware, the kernel append option is used quite often\n"
-"to assist in initializing video hardware, or to enable keyboard mouse\n"
-"button emulation for the often lacking 2nd and 3rd mouse buttons on a stock\n"
-"Apple mouse. The following are some examples:\n"
-"\n"
-" video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111 "
-"hda=autotune\n"
-"\n"
-" video=atyfb:vmode:12,cmode:24 adb_buttons=103,111\n"
-"\n"
-" * Initrd: this option can be used either to load initial modules, before\n"
-"the boot device is available, or to load a ramdisk image for an emergency\n"
-"boot situation;\n"
-"\n"
-" * Initrd-size: the default ramdisk size is generally 4,096 bytes. If you\n"
-"need to allocate a large ramdisk, this option can be used;\n"
-"\n"
-" * Read-write: normally the \"root\" partition is initially brought up in\n"
-"read-only, to allow a file system check before the system becomes ``live''.\n"
-"Here, you can override this option;\n"
-"\n"
-" * NoVideo: should the Apple video hardware prove to be exceptionally\n"
-"problematic, you can select this option to boot in ``novideo'' mode, with\n"
-"native frame buffer support;\n"
-"\n"
-" * Default: selects this entry as being the default Linux selection,\n"
-"selectable by just pressing ENTER at the yaboot prompt. This entry will\n"
-"also be highlighted with a ``*'', if you press [Tab] to see the boot\n"
-"selections."
-msgstr ""
-"You can add additional entries for yaboot, either for other operating "
-"systems,\n"
-"alternate kernels, or for an emergency boot image.\n"
-"\n"
-"\n"
-"For other OS's - the entry consists only of a label and the root partition.\n"
-"\n"
-"\n"
-"For Linux, there are a few possible options: \n"
-"\n"
-"\n"
-" - Label: This is simply the name will type at the yaboot prompt to select "
-"this \n"
-"boot option.\n"
-"\n"
-"\n"
-" - Image: This would be the name of the kernel to boot. Typically vmlinux "
-"or\n"
-"a variation of vmlinux with an extension.\n"
-"\n"
-"\n"
-" - Root: The root device or '/' for your Linux installation.\n"
-"\n"
-"\n"
-" \n"
-" - Append: On Apple hardware, the kernel append option is used quite often "
-"to\n"
-"assist in initializing video hardware, or to enable keyboard mouse button "
-"emulation\n"
-"for the often lacking 2nd and 3rd mouse buttons on a stock Apple mouse. The "
-"following \n"
-"are some examples:\n"
-"\n"
-"\n"
-"\t video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111 "
-"hda=autotune\n"
-"\n"
-"\t video=atyfb:vmode:12,cmode:24 adb_buttons=103,111 \n"
-"\n"
-"\n"
-" \n"
-" - Initrd: This option can be used either to load initial modules, before "
-"the boot \n"
-"device is available, or to load a ramdisk image for an emergency boot "
-"situation.\n"
-"\n"
-"\n"
-" - Initrd-size: The default ramdisk size is generally 4096 bytes. If you "
-"should need\n"
-"to allocate a large ramdisk, this option can be used.\n"
-"\n"
-"\n"
-" - Read-write: Normally the 'root' partition is initially brought up read-"
-"only, to allow\n"
-"a filesystem check before the system becomes 'live'. You can override this "
-"option here.\n"
-"\n"
-"\n"
-" - NoVideo: Should the Apple video hardware prove to be exceptionally "
-"problematic, you can\n"
-"select this option to boot in 'novideo' mode, with native framebuffer "
-"support.\n"
-"\n"
-"\n"
-" - Default: Selects this entry as being the default Linux selection, "
-"selectable by just\n"
-"pressing ENTER at the yaboot prompt. This entry will also be highlighted "
-"with a '*', if you\n"
-"press TAB to see the boot selections."
-
-#: ../../help.pm_.c:830
-#, fuzzy
-msgid ""
-"Yaboot is a bootloader for NewWorld MacIntosh hardware. It is able to boot\n"
-"either GNU/Linux, MacOS or MacOSX if present on your computer. Normally,\n"
-"these other operating systems are correctly detected and installed. If this\n"
-"is not the case, you can add an entry by hand in this screen. Be careful to\n"
-"choose the correct parameters.\n"
-"\n"
-"Yaboot's main options are:\n"
-"\n"
-" * Init Message: a simple text message displayed before the boot prompt;\n"
-"\n"
-" * Boot Device: indicates where you want to place the information required\n"
-"to boot to GNU/Linux. Generally, you set up a bootstrap partition earlier\n"
-"to hold this information;\n"
-"\n"
-" * Open Firmware Delay: unlike LILO, there are two delays available with\n"
-"yaboot. The first delay is measured in seconds and at this point, you can\n"
-"choose between CD, OF boot, MacOS or Linux;\n"
-"\n"
-" * Kernel Boot Timeout: this timeout is similar to the LILO boot delay.\n"
-"After selecting Linux, you will have this delay in 0.1 second before your\n"
-"default kernel description is selected;\n"
-"\n"
-" * Enable CD Boot?: checking this option allows you to choose ``C'' for CD\n"
-"at the first boot prompt;\n"
-"\n"
-" * Enable OF Boot?: checking this option allows you to choose ``N'' for "
-"Open\n"
-"Firmware at the first boot prompt;\n"
-"\n"
-" * Default OS: you can select which OS will boot by default when the Open\n"
-"Firmware Delay expires."
-msgstr ""
-"Yaboot is a bootloader for NewWorld MacIntosh hardware. It is able\n"
-"to boot either GNU/Linux, MacOS, or MacOSX, if present on your computer.\n"
-"Normally, these other operating systems are correctly detected and\n"
-"installed. If this is not the case, you can add an entry by hand in this\n"
-"screen. Be careful as to choose the correct parameters.\n"
-"\n"
-"\n"
-"Yaboot main options are:\n"
-"\n"
-"\n"
-" - Init Message: A simple text message that is displayed before the boot\n"
-"prompt.\n"
-"\n"
-"\n"
-" - Boot Device: Indicate where you want to place the information required "
-"to \n"
-"boot to GNU/Linux. Generally, you will have setup a bootstrap partition "
-"earlier \n"
-"to hold this information.\n"
-"\n"
-"\n"
-" - Open Firmware Delay: Unlike LILO, there are two delays available with \n"
-"yaboot. The first delay is measured in seconds and at this point you can \n"
-"choose between CD, OF boot, MacOS, or Linux.\n"
-"\n"
-"\n"
-" - Kernel Boot Timeout: This timeout is similar to the LILO boot delay. "
-"After \n"
-"selecting Linux, you will have this delay in 0.1 seconds before your "
-"default\n"
-"kernel description is selected.\n"
-"\n"
-"\n"
-" - Enable CD Boot?: Checking this option will allow you to choose 'C' for "
-"CD at\n"
-"the first boot prompt.\n"
-"\n"
-"\n"
-" - Enable OF Boot?: Checking this option will allow you to choose 'N' for "
-"Open\n"
-"Firmware at the first boot prompt.\n"
-"\n"
-"\n"
-" - Default OS: You can select which OS will boot by default when the Open "
-"Firmware \n"
-"Delay expires."
-
-#: ../../help.pm_.c:862
-msgid ""
-"Here are presented various parameters concerning your machine. Depending on\n"
-"your installed hardware, you may or not, see the following entries:\n"
-"\n"
-" * \"Mouse\": check the current mouse configuration and click on the button\n"
-"to change it if necessary;\n"
-"\n"
-" * \"Keyboard\": check the current keyboard map configuration and click on\n"
-"the button to change that if necessary;\n"
-"\n"
-" * \"Timezone\": DrakX, by default, guesses your time zone from the "
-"language\n"
-"you have chosen. But here again, as for the choice of a keyboard, you may\n"
-"not be in the country for which the chosen language should correspond.\n"
-"Hence, you may need to click on the \"Timezone\" button in order to\n"
-"configure the clock according to the time zone you are in;\n"
-"\n"
-" * \"Printer\": clicking on the \"No Printer\" button will open the printer\n"
-"configuration wizard;\n"
-"\n"
-" * \"Sound card\": if a sound card is detected on your system, it is\n"
-"displayed here. No modification possible at installation time;\n"
-"\n"
-" * \"TV card\": if a TV card is detected on your system, it is displayed\n"
-"here. No modification possible at installation time;\n"
-"\n"
-" * \"ISDN card\": if an ISDN card is detected on your system, it is\n"
-"displayed here. You can click on the button to change the parameters\n"
-"associated with it."
-msgstr ""
-
-#: ../../help.pm_.c:891
-#, fuzzy
-msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandrake Linux partition. Be careful, all data present on it will be lost\n"
-"and will not be recoverable!"
-msgstr ""
-"ÅšéėŻīōå ōļķ äßóźļ šļõ čŻėåōå ķį äéįćńÜųåōå ćéį ķį åćźįōįóōŽóåōå \n"
-"ōēķ ķŻį źįōÜōģēóē Mandrake Linux. ŠŃĻÓĻ×Ē: ¼ėį ōį äåäļģŻķį čį äéįćńįöļżķ\n"
-"źįé čį åßķįé įäżķįōē ē åšįķįöļńÜ ōļõņ."
-
-#: ../../help.pm_.c:896
-#, fuzzy
-msgid ""
-"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"
-"any Windows data.\n"
-"\n"
-"Click on \"Cancel\" to cancel this operation without losing any data and\n"
-"partitions present on this hard drive."
-msgstr ""
-"ŠįōŽóōå \"OK\" åÜķ čŻėåōå ķį äéįćńÜųåōå üėį ōį äåäļģŻķį źįé ōéņ \n"
-"źįōįōģŽóåéņ óå įõōüķ ōļķ äßóźļ. Šńļóļ÷Ž, ģåōÜ įšü įõōü äåķ čį ģšļńåßōå \n"
-"ķį åšįķįöŻńåōå ļšļéį䎚ļōå äåäļģŻķį šļõ āńßóźļķōįé įõōŽ ōē óōéćģŽ óōļķ \n"
-"äßóźļ, óõģšåńéėįģāįķļģŻķłķ źįé ļšļéļķ䎚ļōå äåäļģŻķłķ įšü ōį Windows.\n"
-"\n"
-"\n"
-"ŠįōŽóōå \"Įźżńłóē\" ćéį ķį įźõńžóåōå įõōŽķ ōēķ äéįäéźįóßį ÷łńßņ ķį ÷Üóåōå \n"
-"äåäļģŻķį źįé źįōįōģŽóåéņ šļõ āńßóźļķōįé óōļķ äßóźļ."
-
-#: ../../install2.pm_.c:113
-#, c-format
-msgid ""
-"Can't 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 ""
-
-#: ../../install2.pm_.c:169
-#, c-format
-msgid "You must also format %s"
-msgstr ""
-
-#: ../../install_any.pm_.c:411
-#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They don't have any known security\n"
-"issues, but some new could be found. In that case, you must make sure to "
-"upgrade\n"
-"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"
-
-#: ../../install_any.pm_.c:447
-msgid "Can't use broadcast with no NIS domain"
-msgstr "Äåķ ģšļńž ķį ÷ńēóéģļšļéŽół broadcast ÷łńßņ NIS domain"
-
-#: ../../install_any.pm_.c:793
-#, c-format
-msgid "Insert a FAT formatted floppy in drive %s"
-msgstr "ÅéóÜćåōå ģéį FAT ģļńöļšļéēģŻķē äéóźŻōōį óōļķ ļäēćü %s"
-
-#: ../../install_any.pm_.c:797
-msgid "This floppy is not FAT formatted"
-msgstr "ĮõōŽ ē äéóźŻōōį äåķ åßķįé ģļńöļšļéēģŻķē FAT"
-
-#: ../../install_any.pm_.c:809
-msgid ""
-"To use this saved packages selection, boot installation with ``linux "
-"defcfg=floppy''"
-msgstr ""
-"Ćéį ķį ÷ńēóéģļšļéŽóåōå įõōŽķ ōēķ įšļčēźåõģŻķē åšéėļćŽ šįźŻōłķ, īåźéķŽóōå ōēķ "
-"åćźįōÜóōįóē ģå ``linux defcfg=floppy''"
-
-#: ../../install_any.pm_.c:831 ../../partition_table.pm_.c:763
-#, c-format
-msgid "Error reading file %s"
-msgstr "ÓöÜėģį źįōÜ ōēķ įķÜćķłóē ōļõ įń÷åßļõ %s"
-
-#: ../../install_interactive.pm_.c:23
-#, 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"
-
-#: ../../install_interactive.pm_.c:58
-msgid ""
-"You must have a root partition.\n"
-"For this, create a partition (or click on an existing one).\n"
-"Then choose action ``Mount point'' and set it to `/'"
-msgstr ""
-"ŠńŻšåé ķį Ż÷åōå ģéį āįó韎 źįōÜōģēóē.\n"
-"ÄēģéoõńćŽóōå Ž åšéėŻīōå ģéį źįōÜōģēóē.\n"
-"ĢåōÜ ļńßóōå łņ óēģåßļ óżķäåóēņ ōļ `/'"
-
-#: ../../install_interactive.pm_.c:63
-msgid "You must have a swap partition"
-msgstr "ŠńŻšåé ķį Ż÷åōå ģéį źįōÜōģēóē swap"
-
-#: ../../install_interactive.pm_.c:64
-msgid ""
-"You don't have a swap partition\n"
-"\n"
-"Continue anyway?"
-msgstr ""
-"Äåķ Ż÷åōå ļńßóåé źįōÜōģēóē swap\n"
-"\n"
-"Ķį óõķå÷ßół;"
-
-#: ../../install_interactive.pm_.c:67 ../../install_steps.pm_.c:163
-msgid "You must have a FAT partition mounted in /boot/efi"
-msgstr "ŠńŻšåé ķį Ż÷åōå ģéį źįōÜōģēóē FAT mounted óōļ /boot/efi"
-
-#: ../../install_interactive.pm_.c:90
-msgid "Use free space"
-msgstr "×ńŽóē åėåżčåńļõ ÷žńļõ"
-
-#: ../../install_interactive.pm_.c:92
-msgid "Not enough free space to allocate new partitions"
-msgstr "Äåķ õšÜń÷åé įńźåōüņ åėåżčåńļņ ÷žńļņ ćéį äēģéļõńćßį ķŻłķ źįōįōģŽóåłķ"
-
-#: ../../install_interactive.pm_.c:100
-msgid "Use existing partition"
-msgstr "×ńŽóē õšÜń÷ļķōłķ źįōįōģŽóåłķ"
-
-#: ../../install_interactive.pm_.c:102
-msgid "There is no existing partition to use"
-msgstr "Äåķ õšÜń÷ļõķ źįōįōģŽóåéņ šńļņ ÷ńŽóē"
-
-#: ../../install_interactive.pm_.c:109
-msgid "Use the Windows partition for loopback"
-msgstr "×ńŽóē źįōÜōģēóēņ Windows ćéį loopback"
-
-#: ../../install_interactive.pm_.c:112
-msgid "Which partition do you want to use for Linux4Win?"
-msgstr "ŠļéÜ źįōÜōģēóē čŻėåōå ķį ÷ńēóéģļšļéŽóåōå ćéį ōļ Linux4Win;"
-
-#: ../../install_interactive.pm_.c:114
-msgid "Choose the sizes"
-msgstr "ÅšéėŻīōå ōį ģåćŻčē"
-
-#: ../../install_interactive.pm_.c:115
-msgid "Root partition size in MB: "
-msgstr "ĢŻćåčļņ āįó韎ņ źįōÜōģēóēņ óõóōŽģįōļņ óå MB:"
-
-#: ../../install_interactive.pm_.c:116
-msgid "Swap partition size in MB: "
-msgstr "ĢŻćåčļņ źįōÜōģēóēņ swap óå MB"
-
-#: ../../install_interactive.pm_.c:125
-msgid "Use the free space on the Windows partition"
-msgstr "×ńŽóē ōļõ åėåżčåńļõ ÷žńļõ óōēķ źįōÜōģēóē ōłķ Windows"
-
-#: ../../install_interactive.pm_.c:128
-msgid "Which partition do you want to resize?"
-msgstr "Óå ōé ōżšļ źįōÜōģēóēņ čŻėåōå ķį įėėÜīåōå ģŻćåčļņ;"
-
-#: ../../install_interactive.pm_.c:130
-msgid "Computing Windows filesystem bounds"
-msgstr "Õšļėļćéóģüņ ļńßłķ óõóōŽģįōļņ įń÷åßłķ Windows"
-
-#: ../../install_interactive.pm_.c:133
-#, c-format
-msgid ""
-"The FAT resizer is unable to handle your partition, \n"
-"the following error occured: %s"
-msgstr ""
-"Äåķ ģšļńž ķį įėėÜīł ģŻćåčļņ óōēķ źįōÜōģēóē FAT, \n"
-"šńļźėŽčēźå ōļ šįńįźÜōł ėÜčļņ: %s"
-
-#: ../../install_interactive.pm_.c:136
-msgid "Your Windows partition is too fragmented, please run ``defrag'' first"
-msgstr ""
-"Ē źįōÜōģēóē ōłķ Windows åßķįé šļėż źįōįźåńģįōéóģŻķē, šįńįźįėž ōńŻīōå šńžōį "
-"ōļ ``defrag'' "
-
-#: ../../install_interactive.pm_.c:137
-#, fuzzy
-msgid ""
-"WARNING!\n"
-"\n"
-"DrakX will now resize your Windows partition. Be careful:\n"
-"this operation is dangerous. If you have not already done\n"
-"so, you should first exit the installation, run scandisk\n"
-"under Windows (and optionally run defrag), then restart the\n"
-"installation. You should also backup your data.\n"
-"When sure, press Ok."
-msgstr ""
-"ŠŃĻÓĻ×Ē!\n"
-"\n"
-"Ōļ DrakX šńŻšåé ōžńį ķį įėėÜīåé ōļ ģŻćåčļņ ōēņ źįōÜōģēóēņ ōłķ Windows.\n"
-"Ē äéįäéźįóßį įõōŽ åģšåńéŻ÷åé źéķäżķļõņ. ÅÜķ äåķ ōļ Ż÷åōå źÜķåé Žäē,\n"
-"čį šńŻšåé ķį åėŻćīåōå ōēķ źįōÜōģēóē ģå źÜšļéļ ó÷åōéźü šńüćńįģģį (š÷\n"
-"scandisk) źįé źįōÜ šåńßšōłóē ķį ōēķ įšļźįōįźåńģįōļšļéŽóåōå (defragment).\n"
-"ĢåōÜ čį šńŻšåé ķį źńįōŽóåōå įķōßćńįöļ įóöįėåßįņ ōłķ äåäļģŻķłķ óįņ.\n"
-"ÅÜķ åßóōå óßćļõńļé, šįōŽóōå Ok."
-
-#: ../../install_interactive.pm_.c:147
-msgid "Which size do you want to keep for windows on"
-msgstr "Ōé ÷žńļ čŻėåōå ķį źńįōŽóåōå ćéį ōį windows óōļ"
-
-#: ../../install_interactive.pm_.c:148
-#, c-format
-msgid "partition %s"
-msgstr "źįōÜōģēóē %s"
-
-#: ../../install_interactive.pm_.c:155
-#, c-format
-msgid "FAT resizing failed: %s"
-msgstr "ĮėėįćŽ ģåćŻčļõņ FAT įšŻōõ÷å: %s"
-
-#: ../../install_interactive.pm_.c:170
-msgid ""
-"There is no FAT partitions to resize or to use as loopback (or not enough "
-"space left)"
-msgstr ""
-"Äåķ õšÜń÷ļõķ FAT źįōįōģŽóåéņ ćéį įėėįćŽ ģåćŻčļõņ Ž ćéį ÷ńŽóē łņ loopback (Ž "
-"äåķ õšÜń÷åé įńźåōüņ ÷žńļņ)"
-
-#: ../../install_interactive.pm_.c:176
-msgid "Erase entire disk"
-msgstr "ÄéįćńįöŽ ļėüźėēńļõ ōļõ äßóźļõ"
-
-#: ../../install_interactive.pm_.c:176
-msgid "Remove Windows(TM)"
-msgstr "Įöįßńåóē Windows(TM)"
-
-#: ../../install_interactive.pm_.c:179
-msgid "You have more than one hard drive, which one do you install linux on?"
-msgstr ""
-"ø÷åōå šåńéóóüōåńļõņ įšü Żķįķ äßóźļõņ, óå šļéüķ čŻėåōå ķį åćźįōįóōŽóåōå ōļ "
-"Linux;"
-
-#: ../../install_interactive.pm_.c:182
-#, c-format
-msgid "ALL existing partitions and their data will be lost on drive %s"
-msgstr ""
-"¼ėåņ ļé õšÜń÷ļõóåņ źįōįōģŽóåéņ źįé ōį äåäļģŻķį ōļõņ óōļķ äßóźļ %s čį ÷įčļżķ"
-
-#: ../../install_interactive.pm_.c:190
-msgid "Custom disk partitioning"
-msgstr "ŠńļóįńģļóģŻķåņ źįōįōģŽóåéņ äßóźļõ"
-
-#: ../../install_interactive.pm_.c:194
-msgid "Use fdisk"
-msgstr "×ńŽóē fdisk"
-
-#: ../../install_interactive.pm_.c:197
-#, c-format
-msgid ""
-"You can now partition %s.\n"
-"When you are done, don't forget to save using `w'"
-msgstr ""
-"Ģšļńåßōå ōžńį ķį źįōįōģŽóåōå ōļķ äßóźļ %s\n"
-"¼ōįķ ōåėåéžóåōå, ģēķ īå÷Üóåōå ķį įšļčēźåżóåōå šįōžķōįņ `w'"
-
-#: ../../install_interactive.pm_.c:226
-msgid "You don't have enough free space on your Windows partition"
-msgstr "Äåķ Ż÷åōå įńźåōü åėåżčåńļ ÷žńļ óōēķ źįōÜōģēóē ōłķ Windows"
-
-#: ../../install_interactive.pm_.c:242
-msgid "I can't find any room for installing"
-msgstr "Äåķ ģšļńž ķį āńž įńźåōü ÷žńļ ćéį åćźįōÜóōįóē"
-
-#: ../../install_interactive.pm_.c:246
-msgid "The DrakX Partitioning wizard found the following solutions:"
-msgstr "Ōļ DrakX āńŽźå ōéņ šįńįźÜōł ėżóåéņ:"
-
-#: ../../install_interactive.pm_.c:251
-#, c-format
-msgid "Partitioning failed: %s"
-msgstr "Ē źįōÜōģēóē įšŻōõ÷å: %s"
-
-#: ../../install_interactive.pm_.c:261
-msgid "Bringing up the network"
-msgstr "Åźźßķēóē äéźōżļõ"
-
-#: ../../install_interactive.pm_.c:266
-msgid "Bringing down the network"
-msgstr "ÄéįźļšŽ ėåéōļõńćßįņ äéźōżļõ."
-
-#: ../../install_steps.pm_.c:76
-msgid ""
-"An error occurred, but I don't know how to handle it nicely.\n"
-"Continue at your own risk."
-msgstr ""
-"ŠńļźėŽčēźå óöÜėģį šļõ äåķ īŻńł šžņ ķį ōļ ÷åéńéóōž.\n"
-"ōļõ õėéźļż Ž įšü ōēķ éóōļóåėßäį ōļõ źįōįóźåõįóōŽ (įķ Ż÷åōå šńüóāįóē óōļ "
-"Internet).Óõķå÷ßóōå ģå äéźéÜ óįņ åõčżķē."
-
-#: ../../install_steps.pm_.c:205
-#, c-format
-msgid "Duplicate mount point %s"
-msgstr "Äéšėü óēģåßļ óżķäåóēņ %s"
-
-#: ../../install_steps.pm_.c:388
-msgid ""
-"Some important packages didn't get installed properly.\n"
-"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl Mandrake/RPMS/*.rpm"
-"\"\n"
-msgstr ""
-"ĢåńéźÜ óēģįķōéźÜ šįźŻōį äåķ åćįōįóōÜčēźįķ ółóōÜ.\n"
-"Ļ ļäēćüņ CD-ROM Ž ōļ CD-ROM åßķįé åėėįōłģįōéźü.\n"
-"ÅėŻćīōå ōļ CD-ROM óå Żķį Üėėļ óżóōēģį ÷ńēóéģļšļéžķōįņ ōēķ åķōļėŽ \"rpm -qpl "
-"Mandrake/RPMS/*.rpm\"\n"
-
-#: ../../install_steps.pm_.c:458
-#, c-format
-msgid "Welcome to %s"
-msgstr "Źįėžņ Žńčįōå óōļ %s"
-
-#: ../../install_steps.pm_.c:513 ../../install_steps.pm_.c:755
-msgid "No floppy drive available"
-msgstr "Äåķ õšÜń÷åé äéįčŻóéģļņ ļäēćüņ äéóźŻōōįņ"
-
-#: ../../install_steps_auto_install.pm_.c:76
-#: ../../install_steps_stdio.pm_.c:22
-#, c-format
-msgid "Entering step `%s'\n"
-msgstr "ĀŽģį `%s'\n"
-
-#: ../../install_steps_gtk.pm_.c:148
-msgid ""
-"Your system is low on resource. You may have some problem installing\n"
-"Mandrake Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
-"press `F1' when booting on CDROM, then enter `text'."
-msgstr ""
-"Ōļ óżóōēģÜ óįņ äåķ Ż÷åé įńźåōļżņ šüńļõņ. Ģšļńåß ķį įķōéģåōłšßóåōå "
-"šńļāėŽģįōį\n"
-"óōēķ åćźįōÜóōįóē ōļõ Mandrake Linux. ÅÜķ óõģāåß įõōü, ģšļńåßōå ķį äļźéģÜóåōå "
-"åćźįōÜóōįóē źåéģŻķļõ.\n"
-"ŠįōŽóōå F1 źįōÜ ōēķ åźźßķēóē įšü CDROM, ģåōÜ ćńÜųōå `text'."
-
-#: ../../install_steps_gtk.pm_.c:159 ../../install_steps_interactive.pm_.c:224
-msgid "Install Class"
-msgstr "Ōżšļņ åćźįōÜóōįóēņ"
-
-#: ../../install_steps_gtk.pm_.c:162
-#, fuzzy
-msgid "Please choose one of the following classes of installation:"
-msgstr "Šįńįźįėž åéóÜćåōå ōéņ šįńįźÜōł šėēńļöļńßåņ"
-
-#: ../../install_steps_gtk.pm_.c:228
-#, c-format
-msgid ""
-"The total size for the groups you have selected is approximately %d MB.\n"
-msgstr "Ōļ óõķļėéźü ģŻćåčļņ ōłķ ļģÜäłķ šļõ åšéėŻīįōå åßķįé šåńßšļõ %d MB.\n"
-
-#: ../../install_steps_gtk.pm_.c:230
-#, c-format
-msgid ""
-"If you wish to install less than this size,\n"
-"select the percentage of packages that you want to install.\n"
-"\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of 100%% will install all selected packages."
-msgstr ""
-"ÅÜķ čŻėåōå ķį åćźįōįóōŽóåōå ėéćüōåńį,\n"
-"åšéėŻīōå ōļ šļóļóōü ōłķ šįźŻōłķ šļõ čŻėåōå ķį åćźįōįóōŽóåōå.\n"
-"\n"
-"øķį ÷įģēėü šļóļóōü čį åćźįōįóōŽóåé ģüķļ ōį šéļ óēģįķōéźÜ šįźŻōį.\n"
-"øķį šļóļóōü 100% čį åćźįōįóōŽóåé üėį ōį åšéėåćģŻķį šįźŻōį."
-
-#: ../../install_steps_gtk.pm_.c:235
-#, c-format
-msgid ""
-"You have space on your disk for only %d%% of these packages.\n"
-"\n"
-"If you wish to install less than this,\n"
-"select the percentage of packages that you want to install.\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of %d%% will install as many packages as possible."
-msgstr ""
-"ø÷åōå óōļ äßóźļ óįņ ÷žńļ ģüķļ ćéį ōļ %d%% įõōžķ ōłķ šįźŻōłķ.\n"
-"\n"
-"ÅÜķ čŻėåōå ķį åćźįōįóōŽóåōå ėéćüōåńį įšü įõōÜ,\n"
-"åšéėŻīōå ōļ šļóļóōü ōłķ šįźŻōłķ šļõ čŻėåōå ķį åćźįōįóōŽóåōå.\n"
-"øķį ÷įģēėü šļóļóōü čį åćźįōįóōŽóåé ģüķļ ōį šéļ óēģįķōéźÜ šįźŻōį.\n"
-"øķį šļóļóōü %d%% čį åćźįōįóōŽóåé üóļ šåńéóóüōåńį ćßķåōįé."
-
-#: ../../install_steps_gtk.pm_.c:241
-msgid "You will be able to choose them more specifically in the next step."
-msgstr "Čį ģšļńŻóåōå ķį źÜķåōå ėåšōļģåńŻóōåńē åšéėļćŽ óōļ åšüģåķļ āŽģį."
-
-#: ../../install_steps_gtk.pm_.c:243
-msgid "Percentage of packages to install"
-msgstr "Šļóļóōü šįźŻōłķ šńļņ åćźįōÜóōįóē"
-
-#: ../../install_steps_gtk.pm_.c:291 ../../install_steps_interactive.pm_.c:705
-msgid "Package Group Selection"
-msgstr "ÅšéėļćŽ ļģÜäłķ šįźŻōłķ"
-
-#: ../../install_steps_gtk.pm_.c:323 ../../install_steps_interactive.pm_.c:720
-msgid "Individual package selection"
-msgstr "ÅšéėļćŽ īå÷łńéóōžķ šįźŻōłķ"
-
-#: ../../install_steps_gtk.pm_.c:346 ../../install_steps_interactive.pm_.c:645
-#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Óõķļėéźü ģŻćåčļņ: %d / %d MB"
-
-#: ../../install_steps_gtk.pm_.c:391
-msgid "Bad package"
-msgstr "ĖÜčļņ šįźŻōļ"
-
-#: ../../install_steps_gtk.pm_.c:392
-#, c-format
-msgid "Name: %s\n"
-msgstr "¼ķļģį: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:393
-#, c-format
-msgid "Version: %s\n"
-msgstr "øźäļóē: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:394
-#, c-format
-msgid "Size: %d KB\n"
-msgstr "ĢŻćåčļņ: %d KB\n"
-
-#: ../../install_steps_gtk.pm_.c:395
-#, c-format
-msgid "Importance: %s\n"
-msgstr "Óēģįóßį: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:417
-msgid ""
-"You can't select this package as there is not enough space left to install it"
-msgstr ""
-"Äåķ ģšļńåßōå ķį åšéėŻīåōå įõōü ōļ šįźŻōļ äéüōé äåķ õšÜń÷åé įńźåōüņ ÷žńļņ"
-
-#: ../../install_steps_gtk.pm_.c:422
-msgid "The following packages are going to be installed"
-msgstr "Čį åćźįōįóōįčļżķ ōį šįńįźÜōł šįźŻōį"
-
-#: ../../install_steps_gtk.pm_.c:423
-msgid "The following packages are going to be removed"
-msgstr "Čį įöįéńåčļżķ ōį šįńįźÜōł šįźŻōį "
-
-#: ../../install_steps_gtk.pm_.c:435
-msgid "You can't select/unselect this package"
-msgstr "Äåķ ģšļńåßōå ķį åšéėŻīåōå/įšļåšéėŻīåōå įõōü ōļ šįźŻōļ"
-
-#: ../../install_steps_gtk.pm_.c:447
-msgid "This is a mandatory package, it can't be unselected"
-msgstr "Įõōü åßķįé įšįéōļżģåķļ šįźŻōļ, äåķ ģšļńåß ķį įšļåšéėåćåß"
-
-#: ../../install_steps_gtk.pm_.c:449
-msgid "You can't unselect this package. It is already installed"
-msgstr "Äåķ ģšļńåßōå ķį įšļåšéėŻīåōå įõōü ōļ šįźŻōļ. Åßķįé Žäē åćźįōåóōēģŻķļ"
-
-#: ../../install_steps_gtk.pm_.c:453
-msgid ""
-"This package must be upgraded\n"
-"Are you sure you want to deselect it?"
-msgstr ""
-"Įõōü ōļ šįźŻōļ šńŻšåé ķį įķįāįčģéóōåß\n"
-"Åßóōå óßćļõńļņ üōé čŻėåōå ķį ōļ įšļåšéėŻīåōå;"
-
-#: ../../install_steps_gtk.pm_.c:457
-msgid "You can't unselect this package. It must be upgraded"
-msgstr "Äåķ ģšļńåßōå ķį įšļåšéėŻīåōå įõōü ōļ šįźŻōļ. ŠńŻšåé ķį įķįāįčģéóōåß"
-
-#: ../../install_steps_gtk.pm_.c:462
-msgid "Show automatically selected packages"
-msgstr "Įõōüģįōē šńļāļėŽ åšéėåćģŻķłķ šįźŻōłķ"
-
-#: ../../install_steps_gtk.pm_.c:463 ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Install"
-msgstr "ÅćźįōÜóōįóē"
-
-#: ../../install_steps_gtk.pm_.c:466
-msgid "Load/Save on floppy"
-msgstr "Öüńōłóē/Įšļ莟åõóē óå äéóźŻōōį"
-
-#: ../../install_steps_gtk.pm_.c:467
-msgid "Updating package selection"
-msgstr "ĮķįķŻłóē åšéėåćģŻķłķ šįźŻōłķ"
-
-#: ../../install_steps_gtk.pm_.c:472
-msgid "Minimal install"
-msgstr "ÅėÜ÷éóōē ÅćźįōÜóōįóē"
-
-#: ../../install_steps_gtk.pm_.c:487 ../../install_steps_interactive.pm_.c:555
-msgid "Choose the packages you want to install"
-msgstr "ÅšéėŻīōå ōį šįźŻōį šļõ čŻėåōå ķį åćźįōįóōŽóåōå"
-
-#: ../../install_steps_gtk.pm_.c:503 ../../install_steps_interactive.pm_.c:787
-msgid "Installing"
-msgstr "ÅćźįōÜóōįóē"
-
-#: ../../install_steps_gtk.pm_.c:509
-msgid "Estimating"
-msgstr "Åźōßģēóē"
-
-#: ../../install_steps_gtk.pm_.c:516
-msgid "Time remaining "
-msgstr "ÅķįšļģŻķłķ ÷ńüķļņ "
-
-#: ../../install_steps_gtk.pm_.c:528
-msgid "Please wait, preparing installation"
-msgstr "Šįńįźįėž šåńéģŻķåōå, šńļåōļéģįóßį åćźįōÜóōįóēņ"
-
-#: ../../install_steps_gtk.pm_.c:611
-#, c-format
-msgid "%d packages"
-msgstr "%d šįźŻōį"
-
-#: ../../install_steps_gtk.pm_.c:616
-#, c-format
-msgid "Installing package %s"
-msgstr "ÅćźįōÜóōįóē šįźŻōļõ %s"
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-#: ../../standalone/drakautoinst_.c:203
-msgid "Accept"
-msgstr "Įšļäļ÷Ž"
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-msgid "Refuse"
-msgstr "¶ńķēóē"
-
-#: ../../install_steps_gtk.pm_.c:658 ../../install_steps_interactive.pm_.c:812
-#, c-format
-msgid ""
-"Change your Cd-Rom!\n"
-"\n"
-"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
-"done.\n"
-"If you don't have it, press Cancel to avoid installation from this Cd-Rom."
-msgstr ""
-"ĮėėįćŽ Cd-Rom!\n"
-"\n"
-"Šįńįźįėž åéóÜćåōå ōļ Cd-Rom ģå üķļģį \"%s\" óōļķ ļäēćü óįņ źįé šįōŽóōå Ļź.\n"
-"ÅÜķ äåķ ōļ Ż÷åōå, šįōŽóōå Įźżńłóē ćéį įšļöõćŽ åćźįōÜóōįóēņ įšü įõōü ōļ CdRom."
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_gtk.pm_.c:676
-#: ../../install_steps_interactive.pm_.c:824
-#: ../../install_steps_interactive.pm_.c:828
-msgid "Go on anyway?"
-msgstr "Ķį óõķå÷ßół;"
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_interactive.pm_.c:824
-msgid "There was an error ordering packages:"
-msgstr "ŠńļźėŽčēźå óöÜėģį źįōÜ ōēķ ōįīéķüģēóē ōłķ šįźŻōłķ:"
-
-#: ../../install_steps_gtk.pm_.c:676 ../../install_steps_interactive.pm_.c:828
-msgid "There was an error installing packages:"
-msgstr "ŠńļźėŽčēźå óöÜėģį źįōÜ ōēķ åćźįōÜóōįóē ōłķ šįźŻōłķ:"
-
-#: ../../install_steps_interactive.pm_.c:10
-msgid ""
-"\n"
-"Warning\n"
-"\n"
-"Please read carefully the terms below. If you disagree with any\n"
-"portion, you are not allowed to install the next CD media. Press 'Refuse' \n"
-"to continue the installation without using these media.\n"
-"\n"
-"\n"
-"Some components contained in the next CD media are not governed\n"
-"by the GPL License or similar agreements. Each such component is then\n"
-"governed by the terms and conditions of its own specific license. \n"
-"Please read carefully and comply with such specific licenses before \n"
-"you use or redistribute the said components. \n"
-"Such licenses will in general prevent the transfer, duplication \n"
-"(except for backup purposes), redistribution, reverse engineering, \n"
-"de-assembly, de-compilation or modification of the component. \n"
-"Any breach of agreement will immediately terminate your rights under \n"
-"the specific license. Unless the specific license terms grant you such\n"
-"rights, you usually cannot install the programs on more than one\n"
-"system, or adapt it to be used on a network. In doubt, please contact \n"
-"directly the distributor or editor of the component. \n"
-"Transfer to third parties or copying of such components including the \n"
-"documentation is usually forbidden.\n"
-"\n"
-"\n"
-"All rights to the components of the next CD media belong to their \n"
-"respective authors and are protected by intellectual property and \n"
-"copyright laws applicable to software programs.\n"
-msgstr ""
-"\n"
-"Šńļåéäļšļßēóē\n"
-"\n"
-"Šįńįźįėž äéįāÜóōå šńļóå÷ōéźÜ ōļõņ üńļõņ šįńįźÜōł. Åįķ äéįöłķåßōå ģå \n"
-"ļšļéļ䎚ļōå źļģģÜōé, äåķ óįņ åšéōńŻšåōįé ķį åćźįōįóōŽóåōå ōļ åšüģåķļ ģŻóļ "
-"CD. ŠįōŽóōå \n"
-"'Äéįöłķž' ćéį ķį óõķå÷ßóåōå ōēķ åćźįōÜóōįóē ÷łńßņ įõōÜ ōį ģŻóį.\n"
-"\n"
-"\n"
-"Some components contained in the next CD media are not governed\n"
-"by the GPL License or similar agreements. Each such component is then\n"
-"governed by the terms and conditions of its own specific license. \n"
-"Please read carefully and comply with such specific licenses before \n"
-"you use or redistribute the said components. \n"
-"Such licenses will in general prevent the transfer, duplication \n"
-"(except for backup purposes), redistribution, reverse engineering, \n"
-"de-assembly, de-compilation or modification of the component. \n"
-"Any breach of agreement will immediately terminate your rights under \n"
-"the specific license. Unless the specific license terms grant you such\n"
-"rights, you usually cannot install the programs on more than one\n"
-"system, or adapt it to be used on a network. In doubt, please contact \n"
-"directly the distributor or editor of the component. \n"
-"Transfer to third parties or copying of such components including the \n"
-"documentation is usually forbidden.\n"
-"\n"
-"\n"
-"All rights to the components of the next CD media belong to their \n"
-"respective authors and are protected by intellectual property and \n"
-"copyright laws applicable to software programs.\n"
-
-#: ../../install_steps_interactive.pm_.c:67
-msgid "An error occurred"
-msgstr "ŠńļźėŽčēźå óöÜėģį"
-
-#: ../../install_steps_interactive.pm_.c:85
-#, fuzzy
-msgid "Do you really want to leave the installation?"
-msgstr "ČŻėåōå ķį åšįķåźźéķŽóåōå ōļ äßźōõļ;"
-
-#: ../../install_steps_interactive.pm_.c:108
-msgid "License agreement"
-msgstr "¶äåéį ÷ńŽóēņ"
-
-#: ../../install_steps_interactive.pm_.c:109
-msgid ""
-"Introduction\n"
-"\n"
-"The operating system and the different components available in the Mandrake "
-"Linux distribution \n"
-"shall be called the \"Software Products\" hereafter. The Software Products "
-"include, but are not \n"
-"restricted to, the set of programs, methods, rules and documentation related "
-"to the operating \n"
-"system and the different components of the Mandrake Linux distribution.\n"
-"\n"
-"\n"
-"1. License Agreement\n"
-"\n"
-"Please read carefully this document. This document is a license agreement "
-"between you and \n"
-"MandrakeSoft S.A. which applies to the Software Products.\n"
-"By installing, duplicating or using the Software Products in any manner, you "
-"explicitly \n"
-"accept and fully agree to conform to the terms and conditions of this "
-"License. \n"
-"If you disagree with any portion of the License, you are not allowed to "
-"install, duplicate or use \n"
-"the Software Products. \n"
-"Any attempt to install, duplicate or use the Software Products in a manner "
-"which does not comply \n"
-"with the terms and conditions of this License is void and will terminate "
-"your rights under this \n"
-"License. Upon termination of the License, you must immediately destroy all "
-"copies of the \n"
-"Software Products.\n"
-"\n"
-"\n"
-"2. Limited Warranty\n"
-"\n"
-"The Software Products and attached documentation are provided \"as is\", "
-"with no warranty, to the \n"
-"extent permitted by law.\n"
-"MandrakeSoft S.A. will, in no circumstances and to the extent permitted by "
-"law, be liable for any special,\n"
-"incidental, direct or indirect damages whatsoever (including without "
-"limitation damages for loss of \n"
-"business, interruption of business, financial loss, legal fees and penalties "
-"resulting from a court \n"
-"judgment, or any other consequential loss) arising out of the use or "
-"inability to use the Software \n"
-"Products, even if MandrakeSoft S.A. has been advised of the possibility or "
-"occurance of such \n"
-"damages.\n"
-"\n"
-"LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN SOME "
-"COUNTRIES\n"
-"\n"
-"To the extent permitted by law, MandrakeSoft S.A. or its distributors will, "
-"in no circumstances, be \n"
-"liable for any special, incidental, direct or indirect damages whatsoever "
-"(including without \n"
-"limitation damages for loss of business, interruption of business, financial "
-"loss, legal fees \n"
-"and penalties resulting from a court judgment, or any other consequential "
-"loss) arising out \n"
-"of the possession and use of software components or arising out of "
-"downloading software components \n"
-"from one of Mandrake Linux sites which are prohibited or restricted in some "
-"countries by local laws.\n"
-"This limited liability applies to, but is not restricted to, the strong "
-"cryptography components \n"
-"included in the Software Products.\n"
-"\n"
-"\n"
-"3. The GPL License and Related Licenses\n"
-"\n"
-"The Software Products consist of components created by different persons or "
-"entities. Most \n"
-"of these components are governed under the terms and conditions of the GNU "
-"General Public \n"
-"Licence, hereafter called \"GPL\", or of similar licenses. Most of these "
-"licenses allow you to use, \n"
-"duplicate, adapt or redistribute the components which they cover. Please "
-"read carefully the terms \n"
-"and conditions of the license agreement for each component before using any "
-"component. Any question \n"
-"on a component license should be addressed to the component author and not "
-"to MandrakeSoft.\n"
-"The programs developed by MandrakeSoft S.A. are governed by the GPL License. "
-"Documentation written \n"
-"by MandrakeSoft S.A. is governed by a specific license. Please refer to the "
-"documentation for \n"
-"further details.\n"
-"\n"
-"\n"
-"4. Intellectual Property Rights\n"
-"\n"
-"All rights to the components of the Software Products belong to their "
-"respective authors and are \n"
-"protected by intellectual property and copyright laws applicable to software "
-"programs.\n"
-"MandrakeSoft S.A. reserves its rights to modify or adapt the Software "
-"Products, as a whole or in \n"
-"parts, by all means and for all purposes.\n"
-"\"Mandrake\", \"Mandrake Linux\" and associated logos are trademarks of "
-"MandrakeSoft S.A. \n"
-"\n"
-"\n"
-"5. Governing Laws \n"
-"\n"
-"If any portion of this agreement is held void, illegal or inapplicable by a "
-"court judgment, this \n"
-"portion is excluded from this contract. You remain bound by the other "
-"applicable sections of the \n"
-"agreement.\n"
-"The terms and conditions of this License are governed by the Laws of "
-"France.\n"
-"All disputes on the terms of this license will preferably be settled out of "
-"court. As a last \n"
-"resort, the dispute will be referred to the appropriate Courts of Law of "
-"Paris - France.\n"
-"For any question on this document, please contact MandrakeSoft S.A. \n"
-msgstr ""
-"ÅéóįćłćŽ\n"
-"\n"
-"The operating system and the different components available in the Mandrake "
-"Linux distribution \n"
-"shall be called the \"Software Products\" hereafter. The Software Products "
-"include, but are not \n"
-"restricted to, the set of programs, methods, rules and documentation related "
-"to the operating \n"
-"system and the different components of the Mandrake Linux distribution.\n"
-"\n"
-"\n"
-"1. License Agreement\n"
-"\n"
-"Please read carefully this document. This document is a license agreement "
-"between you and \n"
-"MandrakeSoft S.A. which applies to the Software Products.\n"
-"By installing, duplicating or using the Software Products in any manner, you "
-"explicitly \n"
-"accept and fully agree to conform to the terms and conditions of this "
-"License. \n"
-"If you disagree with any portion of the License, you are not allowed to "
-"install, duplicate or use \n"
-"the Software Products. \n"
-"Any attempt to install, duplicate or use the Software Products in a manner "
-"which does not comply \n"
-"with the terms and conditions of this License is void and will terminate "
-"your rights under this \n"
-"License. Upon termination of the License, you must immediately destroy all "
-"copies of the \n"
-"Software Products.\n"
-"\n"
-"\n"
-"2. Limited Warranty\n"
-"\n"
-"The Software Products and attached documentation are provided \"as is\", "
-"with no warranty, to the \n"
-"extent permitted by law.\n"
-"MandrakeSoft S.A. will, in no circumstances and to the extent permitted by "
-"law, be liable for any special,\n"
-"incidental, direct or indirect damages whatsoever (including without "
-"limitation damages for loss of \n"
-"business, interruption of business, financial loss, legal fees and penalties "
-"resulting from a court \n"
-"judgment, or any other consequential loss) arising out of the use or "
-"inability to use the Software \n"
-"Products, even if MandrakeSoft S.A. has been advised of the possibility or "
-"occurance of such \n"
-"damages.\n"
-"\n"
-"LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN SOME "
-"COUNTRIES\n"
-"\n"
-"To the extent permitted by law, MandrakeSoft S.A. or its distributors will, "
-"in no circumstances, be \n"
-"liable for any special, incidental, direct or indirect damages whatsoever "
-"(including without \n"
-"limitation damages for loss of business, interruption of business, financial "
-"loss, legal fees \n"
-"and penalties resulting from a court judgment, or any other consequential "
-"loss) arising out \n"
-"of the possession and use of software components or arising out of "
-"downloading software components \n"
-"from one of Mandrake Linux sites which are prohibited or restricted in some "
-"countries by local laws.\n"
-"This limited liability applies to, but is not restricted to, the strong "
-"cryptography components \n"
-"included in the Software Products.\n"
-"\n"
-"\n"
-"3. The GPL License and Related Licenses\n"
-"\n"
-"The Software Products consist of components created by different persons or "
-"entities. Most \n"
-"of these components are governed under the terms and conditions of the GNU "
-"General Public \n"
-"Licence, hereafter called \"GPL\", or of similar licenses. Most of these "
-"licenses allow you to use, \n"
-"duplicate, adapt or redistribute the components which they cover. Please "
-"read carefully the terms \n"
-"and conditions of the license agreement for each component before using any "
-"component. Any question \n"
-"on a component license should be addressed to the component author and not "
-"to MandrakeSoft.\n"
-"The programs developed by MandrakeSoft S.A. are governed by the GPL License. "
-"Documentation written \n"
-"by MandrakeSoft S.A. is governed by a specific license. Please refer to the "
-"documentation for \n"
-"further details.\n"
-"\n"
-"\n"
-"4. Intellectual Property Rights\n"
-"\n"
-"All rights to the components of the Software Products belong to their "
-"respective authors and are \n"
-"protected by intellectual property and copyright laws applicable to software "
-"programs.\n"
-"MandrakeSoft S.A. reserves its rights to modify or adapt the Software "
-"Products, as a whole or in \n"
-"parts, by all means and for all purposes.\n"
-"\"Mandrake\", \"Mandrake Linux\" and associated logos are trademarks of "
-"MandrakeSoft S.A. \n"
-"\n"
-"\n"
-"5. Governing Laws \n"
-"\n"
-"If any portion of this agreement is held void, illegal or inapplicable by a "
-"court judgment, this \n"
-"portion is excluded from this contract. You remain bound by the other "
-"applicable sections of the \n"
-"agreement.\n"
-"The terms and conditions of this License are governed by the Laws of "
-"France.\n"
-"All disputes on the terms of this license will preferably be settled out of "
-"court. As a last \n"
-"resort, the dispute will be referred to the appropriate Courts of Law of "
-"Paris - France.\n"
-"For any question on this document, please contact MandrakeSoft S.A. \n"
-
-#: ../../install_steps_interactive.pm_.c:205
-#: ../../install_steps_interactive.pm_.c:1045
-#: ../../standalone/keyboarddrake_.c:28
-msgid "Keyboard"
-msgstr "Šėēźōńļėüćéļ"
-
-#: ../../install_steps_interactive.pm_.c:206
-#, fuzzy
-msgid "Please choose your keyboard layout."
-msgstr "Šįńįźįėž åšéėŻīōå äéįńżčģéóē šėēźōńļėļćßļõ."
-
-#: ../../install_steps_interactive.pm_.c:207
-msgid "Here is the full list of keyboards available"
-msgstr "ĮõōŽ åßķįé ē šėŽńēņ ėßóōį ōłķ äéįčŻóéģłķ šėēźōńļėļćßłķ"
-
-#: ../../install_steps_interactive.pm_.c:224
-msgid "Which installation class do you want?"
-msgstr "Ōé ōżšļ åćźįōÜóōįóēņ šńļōéģÜōå;"
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Install/Update"
-msgstr "ÅćźįōÜóōįóē/ĮķįāÜčģéóē"
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Is this an install or an update?"
-msgstr "Šńüźåéōįé ćéį åćźįōÜóōįóē Ž ćéį įķįāÜčģéóē;"
-
-#: ../../install_steps_interactive.pm_.c:235
-msgid "Recommended"
-msgstr "Óõķéóōžģåķļ"
-
-#: ../../install_steps_interactive.pm_.c:238
-#: ../../install_steps_interactive.pm_.c:241
-msgid "Expert"
-msgstr "Ćéį åéäéźļżņ"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-#, fuzzy
-msgid "Upgrade"
-msgstr "ĮķįāÜčģéóē"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-#, fuzzy
-msgid "Upgrade packages only"
-msgstr "ĮķįķŻłóē åšéėåćģŻķłķ šįźŻōłķ"
-
-#: ../../install_steps_interactive.pm_.c:266
-#, fuzzy
-msgid "Please choose the type of your mouse."
-msgstr "Šįńįźįėž åšéėŻīōå ōżšļ šļķōéźéļż."
-
-#: ../../install_steps_interactive.pm_.c:272 ../../standalone/mousedrake_.c:65
-msgid "Mouse Port"
-msgstr "Čżńį šļķōéźéļż"
-
-#: ../../install_steps_interactive.pm_.c:273 ../../standalone/mousedrake_.c:66
-msgid "Please choose on which serial port your mouse is connected to."
-msgstr ""
-"Šįńįźįėž åšéėŻīōå óåéńéįźŽ čżńį óōēķ ļšļßį åßķįé óõķäåäåģŻķļ ōļ šļķōßźé óįņ."
-
-#: ../../install_steps_interactive.pm_.c:281
-msgid "Buttons emulation"
-msgstr "Šńļóļģļßłóē Źļõģšéžķ"
-
-#: ../../install_steps_interactive.pm_.c:283
-msgid "Button 2 Emulation"
-msgstr "Šńļóļģļßłóē 2 Źļõģšéžķ"
-
-#: ../../install_steps_interactive.pm_.c:284
-msgid "Button 3 Emulation"
-msgstr "Šńļóļģļßłóē 3 Źļõģšéžķ"
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "Configuring PCMCIA cards..."
-msgstr "Ńżčģéóē źįńōžķ PCMCIA "
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "PCMCIA"
-msgstr "PCMCIA"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "Configuring IDE"
-msgstr "Ńżčģéóē IDE"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "IDE"
-msgstr "IDE"
-
-#: ../../install_steps_interactive.pm_.c:327
-msgid "no available partitions"
-msgstr "äåķ õšÜń÷ļõķ äéįčŻóéģåņ źįōįōģŽóåéņ"
-
-#: ../../install_steps_interactive.pm_.c:330
-msgid "Scanning partitions to find mount points"
-msgstr "ĮķÜėõóē źįōįōģŽóåłķ ćéį šńļóäéļńéóģü óēģåßłķ óżķäåóēņ."
-
-#: ../../install_steps_interactive.pm_.c:338
-msgid "Choose the mount points"
-msgstr "ÅšéėŻīōå óēģåßį óżķäåóēņ"
-
-#: ../../install_steps_interactive.pm_.c:357
-#, c-format
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I can try to go on blanking bad partitions (ALL DATA will be lost!).\n"
-"The other solution is to disallow DrakX to modify the partition table.\n"
-"(the error is %s)\n"
-"\n"
-"Do you agree to loose all the partitions?\n"
-msgstr ""
-"Äåķ ģšļńž ķį äéįāÜół ōļķ šßķįźį źįōįōģŽóåłķ, åßķįé šļėż źįōåóōńįģŻķļņ :(\n"
-"Čį šńļóšįčŽół ķį óõķå÷ßół įöįéńžķōįņ ōéņ ėįķčįóģŻķåņ źįōįōģŽóåéņ źįé ĻĖĮ\n"
-"ōį äåäļģŻķį čį ÷įčļżķ. Ē Üėėē åšéėļćŽ óįņ åßķįé ķį ģēķ åšéōńŻųåōå óōļ \n"
-"DrakX ķį įććßīåé ōļķ šßķįźį źįōįōģŽóåłķ. Ōļ óöÜėģį åßķįé: %s\n"
-"\n"
-"Óõģöłķåßōå ķį äéįćńįöļżķ üėåņ ļé źįōįōģŽóåéņ;\n"
-
-#: ../../install_steps_interactive.pm_.c:370
-msgid ""
-"DiskDrake failed to read correctly the partition table.\n"
-"Continue at your own risk!"
-msgstr ""
-"Ōļ DiskDrake įšŻōõ÷å ķį äéįāÜóåé ółóōÜ ōļķ šßķįźį źįōįōģŽóåłķ.\n"
-"Óõķå÷ßóōå ģå ä韎 óįņ åõčżķē!"
-
-#: ../../install_steps_interactive.pm_.c:386
-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"
-
-#: ../../install_steps_interactive.pm_.c:395
-msgid "No root partition found to perform an upgrade"
-msgstr "Äåķ āńŻčēźå źįōÜōģēóē root ćéį ōēķ šńįćģįōļšļßēóē ōēņ įķįāÜčģéóēņ"
-
-#: ../../install_steps_interactive.pm_.c:396
-msgid "Root Partition"
-msgstr "Root Partition (āįó韎 źįōÜōģēóē óõóōŽģįōļņ)"
-
-#: ../../install_steps_interactive.pm_.c:397
-msgid "What is the root partition (/) of your system?"
-msgstr "ŠļéÜ åßķįé ē āįó韎 źįōÜōģēóē (/) ōļõ óõóōŽģįōüņ óįņ;"
-
-#: ../../install_steps_interactive.pm_.c:411
-msgid "You need to reboot for the partition table modifications to take place"
-msgstr ""
-"Įšįéōåßōįé åšįķåźźßķēóē ćéį ķį åķåńćļšļéēčļżķ ļé įėėįćŻņ óōļķ šßķįźį "
-"źįōįōģŽóåłķ"
-
-#: ../../install_steps_interactive.pm_.c:435
-msgid "Choose the partitions you want to format"
-msgstr "ÅšéėŻīōå źįōįōģŽóåéņ šńļņ ģļńöļšļßēóē"
-
-#: ../../install_steps_interactive.pm_.c:436
-msgid "Check bad blocks?"
-msgstr "øėåć÷ļņ ćéį ÷įėįóģŻķį blocks;"
-
-#: ../../install_steps_interactive.pm_.c:462
-msgid "Formatting partitions"
-msgstr "Ģļńöļšļßēóē źįōįōģŽóåłķ"
-
-#: ../../install_steps_interactive.pm_.c:464
-#, c-format
-msgid "Creating and formatting file %s"
-msgstr "Äēģéļõńćßį źįé ģļńöļšļßēóē įń÷åßļõ %s"
-
-#: ../../install_steps_interactive.pm_.c:467
-msgid "Not enough swap to fulfill installation, please add some"
-msgstr ""
-"Äåķ õšÜń÷åé įńźåōü swap ćéį ōēķ ļėļźėŽńłóē ōēņ åćźįōÜóōįóēņ, šįńįźįėž "
-"šńļóčŻóōå"
-
-#: ../../install_steps_interactive.pm_.c:473
-msgid "Looking for available packages"
-msgstr "ŲÜ÷ķł ćéį äéįčŻóéģį šįźŻōį"
-
-#: ../../install_steps_interactive.pm_.c:479
-msgid "Finding packages to upgrade"
-msgstr "Šńļóäéļńéóģüņ šįźŻōłķ šńļņ įķįāÜčģéóē"
-
-#: ../../install_steps_interactive.pm_.c:496
-#, c-format
-msgid ""
-"Your system has not enough space left for installation or upgrade (%d > %d)"
-msgstr ""
-"Ōļ óżóōēģÜ óįņ äåķ Ż÷åé įńźåōü äéįčŻóéģļ ÷žńļ ćéį åćźįōÜóōįóē Ž įķįāÜčģéóē (%"
-"d > %d)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Complete (%dMB)"
-msgstr "ŠėŽńēņ (%dMB)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Minimum (%dMB)"
-msgstr "ÅėÜ÷éóōē (%dMB)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Recommended (%dMB)"
-msgstr "Óõķéóōžģåķē (%dMB)"
-
-#: ../../install_steps_interactive.pm_.c:568
-msgid ""
-"Please choose load or save package selection on floppy.\n"
-"The format is the same as auto_install generated floppies."
-msgstr ""
-"Šįńįźįėž åšéėŻīōå ōē öüńōłóē Ž įšļ莟åõóē ōłķ åšéėļćŽņ šįźŻōłķ óōē "
-"äéóźŻōōį.\n"
-"Ē ģļńöļšļßēóē åßķįé ē ßäéį ģå ōéņ äéóźŻōōåņ įõōüģįōēņ åćźįōÜóōįóēņ."
-
-#: ../../install_steps_interactive.pm_.c:571
-msgid "Load from floppy"
-msgstr "Öüńōłóē įšü äéóźŻōōį"
-
-#: ../../install_steps_interactive.pm_.c:573
-msgid "Loading from floppy"
-msgstr "Öüńōłóē įšü äéóźŻōōį"
-
-#: ../../install_steps_interactive.pm_.c:573
-msgid "Package selection"
-msgstr "ÅšéėļćŽ šįźŻōłķ"
-
-#: ../../install_steps_interactive.pm_.c:578
-msgid "Insert a floppy containing package selection"
-msgstr "ÅéóÜćåōå äéóźŻōōį šļõ šåńéŻ÷åé ōēķ åšéėļćŽ šįźŻōłķ"
-
-#: ../../install_steps_interactive.pm_.c:590
-msgid "Save on floppy"
-msgstr "Įšļ莟åõóē óå äéóźŻōōį"
-
-#: ../../install_steps_interactive.pm_.c:658
-msgid "Selected size is larger than available space"
-msgstr "Ōļ åšéėåćģŻķļ ģŻćåčļņ åßķįé ģåćįėżōåńļ įšü ōļ äéįčŻóéģļ ÷žńļ"
-
-#: ../../install_steps_interactive.pm_.c:671
-msgid "Type of install"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:672
-msgid ""
-"You haven't selected any group of packages.\n"
-"Please choose the minimal installation you want:"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:675
-msgid "With X"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:677
-msgid "With basic documentation (recommended!)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:678
-msgid "Truly minimal install (especially no urpmi)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:762
-msgid ""
-"If you have all the CDs in the list below, click Ok.\n"
-"If you have none of those CDs, click Cancel.\n"
-"If only some CDs are missing, unselect them, then click Ok."
-msgstr ""
-"ÅÜķ Ż÷åōå üėį ōį šįńįźÜōł CDs, šįōŽóōå Ok.\n"
-"ÅÜķ äåķ Ż÷åōå źįķŻķį įšü ōį šįńįźÜōł CDs, šįōŽóōå Įźżńłóē.\n"
-"ÅÜķ äåķ Ż÷åōå źÜšļéį įšü įõōÜ, įšļåšéėŻīōå ōį źįé šįōŽóōå Ok."
-
-#: ../../install_steps_interactive.pm_.c:767
-#, c-format
-msgid "Cd-Rom labeled \"%s\""
-msgstr "Cd-Rom ļķüģįōé \"%s\""
-
-#: ../../install_steps_interactive.pm_.c:787
-msgid "Preparing installation"
-msgstr "Šńļåōļéģįóßį åćźįōÜóōįóēņ"
-
-#: ../../install_steps_interactive.pm_.c:796
-#, c-format
-msgid ""
-"Installing package %s\n"
-"%d%%"
-msgstr ""
-"ÅćźįōÜóōįóē šįźŻōļõ %s\n"
-"%d%%"
-
-#: ../../install_steps_interactive.pm_.c:842
-msgid "Post-install configuration"
-msgstr "Ńõčģßóåéņ ģåōÜ ōēķ åćźįōÜóōįóē"
-
-#: ../../install_steps_interactive.pm_.c:848
-#, c-format
-msgid "Please insert the Boot floppy used in drive %s"
-msgstr "Šįńįźįėž åéóÜćåōå ōē äéóźŻōōį Åźźßķēóēņ óōļķ ļäēćü %s"
-
-#: ../../install_steps_interactive.pm_.c:854
-#, c-format
-msgid "Please insert the Update Modules floppy in drive %s"
-msgstr "Šįńįźįėž åéóÜćåōå ōē äéóźŻōōį ĮķįķŻłóēņ ĮńčńłģÜōłķ óōļķ ļäēćü %s"
-
-#: ../../install_steps_interactive.pm_.c:874
-msgid ""
-"You have now the possibility to download software aimed for encryption.\n"
-"\n"
-"WARNING:\n"
-"\n"
-"Due to different general requirements applicable to these software and "
-"imposed\n"
-"by various jurisdictions, customer and/or end user of theses software "
-"should\n"
-"ensure that the laws of his/their jurisdiction allow him/them to download, "
-"stock\n"
-"and/or use these software.\n"
-"\n"
-"In addition customer and/or end user shall particularly be aware to not "
-"infringe\n"
-"the laws of his/their jurisdiction. Should customer and/or end user not\n"
-"respect the provision of these applicable laws, he/they will incure serious\n"
-"sanctions.\n"
-"\n"
-"In no event shall Mandrakesoft nor its manufacturers and/or suppliers be "
-"liable\n"
-"for special, indirect or incidental damages whatsoever (including, but not\n"
-"limited to loss of profits, business interruption, loss of commercial data "
-"and\n"
-"other pecuniary losses, and eventual liabilities and indemnification to be "
-"paid\n"
-"pursuant to a court decision) arising out of use, possession, or the sole\n"
-"downloading of these software, to which customer and/or end user could\n"
-"eventually have access after having sign up the present agreement.\n"
-"\n"
-"\n"
-"For any queries relating to these agreement, please contact \n"
-"Mandrakesoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA"
-msgstr ""
-"Ģšļńåßōå ōžńį ķį źįōåāÜóåōå źńõšōļćńįöéźü ėļćéóģéźü.\n"
-"\n"
-"ŠŃĻÓĻ×Ē:\n"
-"\n"
-"Ėüćł ōłķ äéįöļńåōéźžķ ķüģłķ šļõ éó÷żļõķ óå äéÜöļńį ģŻńē ó÷åōéźÜ ģå ōēķ "
-"źńõšōļćńįößį,\n"
-"ļ ÷ńŽóōēņ šńŻšåé ķį āåāįéłčåß üōé ļé ķüģļé šļõ ōļķ įöļńļżķ ōļõ åšéōńŻšļõķ ķį "
-"źįōåāÜóåé,\n"
-"įšļčēźåżóåé źįé/ē ÷ńēóéģļšļéŽóåé įõōü ōļ ėļćéóģéźü.\n"
-"\n"
-"Ļ ÷ńŽóōēņ šńŻšåé ķį šńļóŻīåé ķį ģēķ šįńįāåß ōļõņ ó÷åōéźļżņ ķüģļõņ. Ōõ÷üķ "
-"šįńįāßįóē įõōžķ\n"
-"ōłķ ķüģłķ, ģšļńåß ķį åšéöŻńåé źõńžóåéņ.\n"
-"\n"
-"Óå źįģßį šåńßšōłóē ē Mandrakesoft, ļé źįōįóźåõįóōŻņ źįé ļé šńļģēčåõōŻņ ōēņ "
-"äåķ öŻńļõķ åõčżķē\n"
-"ćéį ļšļéåó䎚ļōå ęēģéŻņ (šļõ šåńéėįģāÜķļõķ ģåōįīż Üėėłķ įšžėåéį źåńäžķ, "
-"äéįōÜńįīē ėåéōļõńćßįņ\n"
-"åšé÷åßńēóēņ, įšžėåéį šėēńļöļńéžķ źįé ōõ÷üķ źüóōē šļõ čį šńļźżųļõķ įšü "
-"ķļģ韯ņ åõčżķåņ.\n"
-"\n"
-"Ćéį šåńéóóüōåńåņ šėēńļöļńßåņ åšéźļéķłķŽóōå \n"
-"Mandrakesoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA"
-
-#: ../../install_steps_interactive.pm_.c:912
-msgid ""
-"You have now the possibility to download updated packages that have\n"
-"been released after the distribution has been made available.\n"
-"\n"
-"You will get security fixes or bug fixes, but you need to have an\n"
-"Internet connection configured to proceed.\n"
-"\n"
-"Do you want to install the updates ?"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:926
-#, fuzzy
-msgid "Contacting Mandrake Linux web site to get the list of available mirrors"
-msgstr "Óżķäåóē ćéį ėŽųē šįźŻōłķ"
-
-#: ../../install_steps_interactive.pm_.c:931
-msgid "Choose a mirror from which to get the packages"
-msgstr "ÅšéėŻīōå ōüšļ įšü ōļķ ļšļßļ čį ćßķåé ē ėŽųē šįźŻōłķ"
-
-#: ../../install_steps_interactive.pm_.c:940
-msgid "Contacting the mirror to get the list of available packages"
-msgstr "Óżķäåóē ćéį ėŽųē šįźŻōłķ"
-
-#: ../../install_steps_interactive.pm_.c:967
-msgid "Which is your timezone?"
-msgstr "ŠļéÜ åßķįé ē ęžķē žńįņ;"
-
-#: ../../install_steps_interactive.pm_.c:972
-msgid "Hardware clock set to GMT"
-msgstr "Ōļ ńļėüé ōļõ õšļėļćéóōŽ óįņ åßķįé ńõčģéóģŻķļ óå GMT (žńį ĆźńŽķļõśōņ)"
-
-#: ../../install_steps_interactive.pm_.c:973
-msgid "Automatic time synchronization (using NTP)"
-msgstr "Įõōüģįōļņ óõć÷ńļķéóģüņ žńįņ (÷ńŽóē NTP)"
-
-#: ../../install_steps_interactive.pm_.c:980
-msgid "NTP Server"
-msgstr "ÅīõšēńåōēōŽņ NTP"
-
-#: ../../install_steps_interactive.pm_.c:1014
-#: ../../install_steps_interactive.pm_.c:1022
-msgid "Remote CUPS server"
-msgstr "ĮšļģåģįźńõóģŻķļņ åīõšēńåōēōŽņ CUPS"
-
-#: ../../install_steps_interactive.pm_.c:1015
-msgid "No printer"
-msgstr "ŹįķŻķįņ åźōõšłōŽņ"
-
-#: ../../install_steps_interactive.pm_.c:1032
-#, fuzzy
-msgid "Do you have an ISA sound card?"
-msgstr "ø÷åōå įėėļķ;"
-
-#: ../../install_steps_interactive.pm_.c:1034
-msgid "Run \"sndconfig\" after installation to configure your sound card"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1036
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1041 ../../steps.pm_.c:27
-msgid "Summary"
-msgstr "Šåńßėēųē"
-
-#: ../../install_steps_interactive.pm_.c:1044
-msgid "Mouse"
-msgstr "Šļķōßźé"
-
-#: ../../install_steps_interactive.pm_.c:1046
-msgid "Timezone"
-msgstr "ŁńļėļćéįźŽ Ęžķē"
-
-#: ../../install_steps_interactive.pm_.c:1047 ../../printerdrake.pm_.c:2276
-#: ../../printerdrake.pm_.c:2354
-msgid "Printer"
-msgstr "ÅźōõšłōŽņ"
-
-#: ../../install_steps_interactive.pm_.c:1049
-msgid "ISDN card"
-msgstr "KÜńōį ISDN"
-
-#: ../../install_steps_interactive.pm_.c:1052
-#: ../../install_steps_interactive.pm_.c:1054
-msgid "Sound card"
-msgstr "ŹÜńōį Ž÷ļõ"
-
-#: ../../install_steps_interactive.pm_.c:1056
-msgid "TV card"
-msgstr "ŹÜńōį TV"
-
-#: ../../install_steps_interactive.pm_.c:1094
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1122
-msgid "LDAP"
-msgstr "LDAP"
-
-#: ../../install_steps_interactive.pm_.c:1095
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1131
-msgid "NIS"
-msgstr "NIS"
-
-#: ../../install_steps_interactive.pm_.c:1096
-#: ../../install_steps_interactive.pm_.c:1118
-msgid "Local files"
-msgstr "ŌļšéźÜ įń÷åßį"
-
-#: ../../install_steps_interactive.pm_.c:1105
-#: ../../install_steps_interactive.pm_.c:1106 ../../steps.pm_.c:24
-msgid "Set root password"
-msgstr "Óõķčēģįōéźü root"
-
-#: ../../install_steps_interactive.pm_.c:1107
-msgid "No password"
-msgstr "׳ńßņ óõķčēģįōéźü"
-
-#: ../../install_steps_interactive.pm_.c:1112
-#, c-format
-msgid "This password is too simple (must be at least %d characters long)"
-msgstr ""
-"Įõōü ōļ óõķčēģįōéźü åßķįé šļėż įšėü (šńŻšåé ķį åßķįé ōļõėÜ÷éóōļķ %d "
-"÷įńįźōŽńåņ ģįźńż)"
-
-#: ../../install_steps_interactive.pm_.c:1118 ../../network/modem.pm_.c:49
-#: ../../standalone/draknet_.c:626 ../../standalone/logdrake_.c:172
-msgid "Authentication"
-msgstr "Šéóōļšļßēóē ōįõōüōēōįņ"
-
-#: ../../install_steps_interactive.pm_.c:1126
-msgid "Authentication LDAP"
-msgstr "Šéóōļšļßēóē LDAP"
-
-#: ../../install_steps_interactive.pm_.c:1127
-msgid "LDAP Base dn"
-msgstr "LDAP Base dn"
-
-#: ../../install_steps_interactive.pm_.c:1128
-msgid "LDAP Server"
-msgstr "ÅīõšēńåōēōŽņ LDAP"
-
-#: ../../install_steps_interactive.pm_.c:1134
-msgid "Authentication NIS"
-msgstr "Åīįźńßāłóē NIS"
-
-#: ../../install_steps_interactive.pm_.c:1135
-msgid "NIS Domain"
-msgstr "Šåńéļ÷Ž (domain) NIS"
-
-#: ../../install_steps_interactive.pm_.c:1136
-msgid "NIS Server"
-msgstr "ÅīõšēńåōēōŽņ NIS"
-
-#: ../../install_steps_interactive.pm_.c:1171
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"SILO on your system, or another operating system removes SILO, or SILO "
-"doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures.\n"
-"\n"
-"If you want to create a bootdisk for your system, insert a floppy in the "
-"first\n"
-"drive and press \"Ok\"."
-msgstr ""
-"Ģéį šńļóįńģļóģŻķē äéóźŻōōį åźźßķēóēņ óįņ äßķåé ōēķ äõķįōüōēōį ķį åźźéķŽóåōå\n"
-"ōļ óżóōēģÜ óįņ ÷łńßņ ōēķ ÷ńŽóē ōļõ šńļćńÜģģįōļņ åźźßķēóēņ. Įõōü åßķįé "
-"÷ńŽóéģļ åÜķ äåķ čŻėåōå\n"
-"ķį åćźįōįóōŽóåōå ōļ SILO , åÜķ źÜšļéļ Üėėļ ėåéōļõńćéźü źįōįóōńŻųåé ōļ SILO\n"
-"Ž åÜķ ļé ńõčģßóåéņ óįņ äåķ åšéōńŻšļõķ ōē ÷ńŽóē SILO. ĮõōŽ ē äéóźŻōōį ģšļńåß\n"
-"åšßóēņ ķį ÷ńēóéģļšļéēčåß óå óõķäõįóģü ģå ōēķ äéóźŻōōį äéÜółóēņ ōļõ "
-"Mandrake,\n"
-"źÜķļķōįņ åõźļėüōåńē ōēķ åšįķįöļńÜ ōļõ óõóōŽģįōļņ ģåōÜ įšü óļāįńŽ āėÜāē.\n"
-"ČŻėåōå ķį äēģéļõńćŽóåōå äéóźŻōōį åźźßķēóēņ;"
-
-#: ../../install_steps_interactive.pm_.c:1187
-msgid "First floppy drive"
-msgstr "Šńžōļņ ļäēćüņ äéóźŻōįņ"
-
-#: ../../install_steps_interactive.pm_.c:1188
-msgid "Second floppy drive"
-msgstr "Äåżōåńļņ ļäēćüņ äéóźŻōįņ"
-
-#: ../../install_steps_interactive.pm_.c:1189 ../../printerdrake.pm_.c:1848
-msgid "Skip"
-msgstr "ŠįńÜėåéųē"
-
-#: ../../install_steps_interactive.pm_.c:1194
-#, c-format
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"LILO (or grub) on your system, or another operating system removes LILO, or "
-"LILO doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures. Would you like to create a bootdisk for your system?\n"
-"%s"
-msgstr ""
-"Ģéį šńļóįńģļóģŻķē äéóźŻōōį åźźßķēóēņ óįņ äßķåé ōēķ äõķįōüōēōį ķį åźźéķŽóåōå\n"
-"ōļ óżóōēģÜ óįņ ÷łńßņ ōēķ ÷ńŽóē ōļõ šńļćńÜģģįōļņ åźźßķēóēņ. Įõōü åßķįé "
-"÷ńŽóéģļ åÜķ äåķ čŻėåōå\n"
-"ķį åćźįōįóōŽóåōå ōļ LILO (Ž ōļ grub), åÜķ źÜšļéļ Üėėļ ėåéōļõńćéźü "
-"źįōįóōńŻųåé ōļ LILO\n"
-"Ž åÜķ ļé ńõčģßóåéņ óįņ äåķ åšéōńŻšļõķ ōē ÷ńŽóē LILO. ĮõōŽ ē äéóźŻōōį ģšļńåß\n"
-"åšßóēņ ķį ÷ńēóéģļšļéēčåß óå óõķäõįóģü ģå ōēķ äéóźŻōōį äéÜółóēņ ōļõ "
-"Mandrake,\n"
-"źÜķļķōįņ åõźļėüōåńē ōēķ åšįķįöļńÜ ōļõ óõóōŽģįōļņ ģåōÜ įšü óļāįńŽ āėÜāē.\n"
-"ČŻėåōå ķį äēģéļõńćŽóåōå äéóźŻōōį åźźßķēóēņ;\n"
-"%s"
-
-#: ../../install_steps_interactive.pm_.c:1200
-msgid ""
-"\n"
-"\n"
-"(WARNING! You're using XFS for your root partition,\n"
-"creating a bootdisk on a 1.44 Mb floppy will probably fail,\n"
-"because XFS needs a very large driver)."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1208
-msgid "Sorry, no floppy drive available"
-msgstr "ĖõšÜģįé, äåķ õšÜń÷åé äéįčŻóéģļņ ļäēćüņ äéóźŻōōįņ"
-
-#: ../../install_steps_interactive.pm_.c:1212
-msgid "Choose the floppy drive you want to use to make the bootdisk"
-msgstr "ÅšéėŻīōå ļäēćü äéóźŻōōįņ ćéį äēģéļõńćßį äéóźŻōōįņ åźźßķēóēņ"
-
-#: ../../install_steps_interactive.pm_.c:1216
-#, fuzzy, c-format
-msgid "Insert a floppy in %s"
-msgstr "ÅéóÜćåōå äéóźŻōōį óōļķ ļäēćü %s"
-
-#: ../../install_steps_interactive.pm_.c:1219
-msgid "Creating bootdisk"
-msgstr "Äēģéļõńćßį äßóźļõ åźźßķēóēņ"
-
-#: ../../install_steps_interactive.pm_.c:1226
-msgid "Preparing bootloader"
-msgstr "Šńļåōļéģįóßį šńļćńÜģģįōļņ åźźßķēóēņ"
-
-#: ../../install_steps_interactive.pm_.c:1237
-msgid ""
-"You appear to have an OldWorld or Unknown\n"
-" machine, the yaboot bootloader will not work for you.\n"
-"The install will continue, but you'll\n"
-" need to use BootX to boot your machine"
-msgstr ""
-"Öįßķåōįé šłņ Ż÷åōå Żķį Įń÷įßļ Ž ¶ćķłóōļ\n"
-" ģē÷Üķēģį, ļ yaboot bootloader äåķ čį äļõėŻųåé ćéį óįņ.\n"
-"Ē åćźįōÜóōįóē čį óõķå÷éóōåß, įėėÜ\n"
-"čį ÷ńåéįóōåß ķį ÷ńēóéģļšļéŽóåōå ōļ BootX ćéį ķį īåźéķŽóåōå ōļ ģē÷ÜķēģÜ óįņ"
-
-#: ../../install_steps_interactive.pm_.c:1243
-msgid "Do you want to use aboot?"
-msgstr "ČŻėåōå ķį ÷ńēóéģļšļéŽóåōå ōļ aboot;"
-
-#: ../../install_steps_interactive.pm_.c:1246
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"ÓöÜėģį źįōÜ ōēķ åćźįōÜóōįóē ōļõ aboot, \n"
-"šńļóšÜčåéį āåāéįóģŻķēņ åćźįōÜóōįóēņ, įźüģį źįé įķ įõōü Ż÷åé óįķ įšļōŻėåóģį "
-"ōēķ źįōįóōńļöŽ ōēņ šńžōēņ źįōÜōģēóēņ;"
-
-#: ../../install_steps_interactive.pm_.c:1253
-#, fuzzy
-msgid "Installing bootloader"
-msgstr "Åćź. šń. åźźßķēóēņ"
-
-#: ../../install_steps_interactive.pm_.c:1259
-msgid "Installation of bootloader failed. The following error occured:"
-msgstr ""
-"Ē åćźįōÜóōįóē ōļõ šńļćńÜģģįōļņ åźźßķēóēņ įšŻōõ÷å. ŠńļźėŽčēźå ōļ įźüėļõčļ "
-"óöÜėģį:"
-
-#: ../../install_steps_interactive.pm_.c:1267
-#, fuzzy, c-format
-msgid ""
-"You may need to change your Open Firmware boot-device to\n"
-" enable the bootloader. If you don't 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\n"
-"At your next boot you should see the bootloader prompt."
-msgstr ""
-"Ģšļńåß ķį ÷ńåéįóōåß ķį įėėÜīåōå ōēķ Open Firmware boot-óõóźåõŽ žóōå ķį\n"
-" åķåńćļšļéŽóåōå ōļķ bootloader. Įķ óōļ reboot äåķ äåßōå ōēķ šńļōńļšŽ ōļõ\n"
-" bootloader, šįōŽóōå ōļ Command-Option-O-F źįōÜ ōļ reboot źįé åéóÜćåōå:\n"
-" setenv boot-device $of_boot,\\\\:tbxi\n"
-" Ōüōå ōõšžóōå: shut-down\n"
-"Óōēķ åšüģåķē åźźßķēóē čį šńŻšåé ķį äåßōå ōēķ šńļōńļšŽ ōļõ bootloader."
-
-#: ../../install_steps_interactive.pm_.c:1311
-#: ../../standalone/drakautoinst_.c:81
-#, c-format
-msgid "Insert a blank floppy in drive %s"
-msgstr "ÅéóÜćåōå Üäåéį äéóźŻōōį óōļķ ļäēćü %s"
-
-#: ../../install_steps_interactive.pm_.c:1315
-#: ../../standalone/drakautoinst_.c:83
-msgid "Creating auto install floppy"
-msgstr "Šńļåōļéģįóßį äéóźŻōįņ įõōüģįōēņ åćźįōÜóōįóēņ"
-
-#: ../../install_steps_interactive.pm_.c:1326
-msgid ""
-"Some steps are not completed.\n"
-"\n"
-"Do you really want to quit now?"
-msgstr ""
-"ĢåńéźÜ āŽģįōį äåķ ļėļźėēńžčēźįķ.\n"
-"\n"
-"ČŻėåōå óßćļõńį ķį åćźįōįėåßųåōå ōžńį;"
-
-#: ../../install_steps_interactive.pm_.c:1337
-msgid ""
-"Congratulations, installation is complete.\n"
-"Remove the boot media and press return to reboot.\n"
-"\n"
-"\n"
-"For information on fixes which are available for this release of Mandrake "
-"Linux,\n"
-"consult the Errata available from:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/82errata.php3\n"
-"\n"
-"\n"
-"Information on configuring your system is available in the post\n"
-"install chapter of the Official Mandrake Linux User's Guide."
-msgstr ""
-"Óõć÷įńēōŽńéį, ē åćźįōÜóōįóē ļėļźėēńžčēźå.\n"
-"ĮöįéńŻóōå ōēķ äéóźŻōōį Ž ōļ CD åźźßķēóēņ źįé šįōŽóōå return ćéį "
-"åšįķåźźßķēóē.\n"
-"\n"
-"\n"
-"Ćéį šėēńļöļńßåņ ó÷åōéźÜ ģå äéļńčžóåéņ įõōŽņ ōēņ Żźäļóēņ ōļõ Mandrake Linux,\n"
-"óõģāļõėåõōåßōå ōēķ óåėßäį \n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/82errata.php3\n"
-"\n"
-"\n"
-"Šėēńļöļńßåņ ó÷åōéźÜ ģå ōéņ ńõčģßóåéņ ōļõ óõóōŽģįōüņ óįņ õšÜń÷ļõķ óōļ "
-"ó÷åōéźü\n"
-"źåöÜėįéļ ōļõ åšßóēģļõ ļäēćļż ÷ńŽóēņ ōļõ Mandrake Linux."
-
-#: ../../install_steps_interactive.pm_.c:1354
-msgid "Generate auto install floppy"
-msgstr "Šńļåōļéģįóßį äéóźŻōōįņ įõōüģįōēņ åćźįōÜóōįóēņ"
-
-#: ../../install_steps_interactive.pm_.c:1356
-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"
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Automated"
-msgstr "Įõōüģįōļ"
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Replay"
-msgstr "Åšįķįöüńōłóē"
-
-#: ../../install_steps_interactive.pm_.c:1364
-msgid "Save packages selection"
-msgstr "Įšļ莟åõóē åšéėļćŽņ šįźŻōłķ"
-
-#: ../../install_steps_newt.pm_.c:22
-#, c-format
-msgid "Mandrake Linux Installation %s"
-msgstr "ÅćźįōÜóōįóē Mandrake Linux %s"
-
-#: ../../install_steps_newt.pm_.c:34
-msgid ""
-" <Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen "
-msgstr ""
-" <Tab>/<Alt-Tab> ĮėėįćŽ šåäßļõ | <Space> åšéėļćŽ | <F12> åšüģåķē ļč. "
-
-#: ../../interactive.pm_.c:87
-msgid "kdesu missing"
-msgstr "ōļ kdesu ėåßšåé"
-
-#: ../../interactive.pm_.c:89 ../../interactive.pm_.c:100
-msgid "consolehelper missing"
-msgstr ""
-
-#: ../../interactive.pm_.c:152
-#, fuzzy
-msgid "Choose a file"
-msgstr "ÅšéėŻīōå šńÜīē"
-
-#: ../../interactive.pm_.c:314
-msgid "Advanced"
-msgstr " Ćéį Šńļ÷łńēģŻķļõņ"
-
-#: ../../interactive.pm_.c:315
-msgid "Basic"
-msgstr ""
-
-#: ../../interactive.pm_.c:386
-msgid "Please wait"
-msgstr "Šįńįźįėž šåńéģŻķåōå"
-
-#: ../../interactive_gtk.pm_.c:605 ../../services.pm_.c:222
-msgid "Info"
-msgstr "Šėēńļöļńßåņ"
-
-#: ../../interactive_gtk.pm_.c:715
-msgid "Expand Tree"
-msgstr "ĮķÜšōõīē äŻķōńļõ"
-
-#: ../../interactive_gtk.pm_.c:716
-msgid "Collapse Tree"
-msgstr "Óżģšōõīē äŻķōńļõ"
-
-#: ../../interactive_gtk.pm_.c:717
-msgid "Toggle between flat and group sorted"
-msgstr "ÅķįėėįćŽ ģåōįīż åšßšåäēņ źįé ļģįä韎ņ ōįīéķüģēóēņ"
-
-#: ../../interactive_stdio.pm_.c:29 ../../interactive_stdio.pm_.c:147
-msgid "Bad choice, try again\n"
-msgstr "ŹįźŽ åšéėļćŽ, īįķįäļźéģÜóōå\n"
-
-#: ../../interactive_stdio.pm_.c:30 ../../interactive_stdio.pm_.c:148
-#, c-format
-msgid "Your choice? (default %s) "
-msgstr "Ē åšéėļćŽ óįņ; (åī' ļńéóģļż %s)"
-
-#: ../../interactive_stdio.pm_.c:52
-#, c-format
-msgid ""
-"Entries you'll have to fill:\n"
-"%s"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:68
-#, fuzzy, c-format
-msgid "Your choice? (0/1, default `%s') "
-msgstr "Ē åšéėļćŽ óįņ; (åī' ļńéóģļż %s)"
-
-#: ../../interactive_stdio.pm_.c:93
-#, fuzzy, c-format
-msgid "Button `%s': %s"
-msgstr "ÅšéėļćŻņ: %s"
-
-#: ../../interactive_stdio.pm_.c:94
-#, fuzzy
-msgid "Do you want to click on this button? "
-msgstr "ČŻėåōå ķį ÷ńēóéģļšļéŽóåōå ōļ aboot;"
-
-#: ../../interactive_stdio.pm_.c:103
-#, fuzzy, c-format
-msgid "Your choice? (default `%s'%s) "
-msgstr "Ē åšéėļćŽ óįņ; (åī' ļńéóģļż %s)"
-
-#: ../../interactive_stdio.pm_.c:121
-#, c-format
-msgid "=> There are many things to choose from (%s).\n"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:124
-msgid ""
-"Please choose the first number of the 10-range you wish to edit,\n"
-"or just hit Enter to proceed.\n"
-"Your choice? "
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:137
-#, c-format
-msgid ""
-"=> Notice, a label changed:\n"
-"%s"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:144
-msgid "Re-submit"
-msgstr ""
-
-#: ../../keyboard.pm_.c:174 ../../keyboard.pm_.c:205
-msgid "Czech (QWERTZ)"
-msgstr "ŌóŻ÷éźļ (QWERTZ)"
-
-#: ../../keyboard.pm_.c:175 ../../keyboard.pm_.c:207
-msgid "German"
-msgstr "Ćåńģįķéźü"
-
-#: ../../keyboard.pm_.c:176
-msgid "Dvorak"
-msgstr "Dvorak"
-
-#: ../../keyboard.pm_.c:177 ../../keyboard.pm_.c:214
-msgid "Spanish"
-msgstr "Éóšįķéźü"
-
-#: ../../keyboard.pm_.c:178 ../../keyboard.pm_.c:215
-msgid "Finnish"
-msgstr "Öéķėįķäéźü"
-
-#: ../../keyboard.pm_.c:179 ../../keyboard.pm_.c:216
-msgid "French"
-msgstr "Ćįėėéźü"
-
-#: ../../keyboard.pm_.c:180 ../../keyboard.pm_.c:241
-msgid "Norwegian"
-msgstr "Ķļńāēćéźü"
-
-#: ../../keyboard.pm_.c:181
-msgid "Polish"
-msgstr "Šļėłķéźü"
-
-#: ../../keyboard.pm_.c:182 ../../keyboard.pm_.c:249
-msgid "Russian"
-msgstr "Ńłóéźü"
-
-#: ../../keyboard.pm_.c:184 ../../keyboard.pm_.c:251
-msgid "Swedish"
-msgstr "Óļõēäéźü"
-
-#: ../../keyboard.pm_.c:185 ../../keyboard.pm_.c:266
-msgid "UK keyboard"
-msgstr "ĢåćÜėē Āńåōįķķßį (UK)"
-
-#: ../../keyboard.pm_.c:186 ../../keyboard.pm_.c:267
-msgid "US keyboard"
-msgstr "Ē.Š.Į. (US)"
-
-#: ../../keyboard.pm_.c:188
-msgid "Albanian"
-msgstr "Įėāįķéźü"
-
-#: ../../keyboard.pm_.c:189
-msgid "Armenian (old)"
-msgstr "Įńģåķéźü (šįėéü)"
-
-#: ../../keyboard.pm_.c:190
-msgid "Armenian (typewriter)"
-msgstr "Įńģåķéźü (ćńįöļģē÷įķŽ)"
-
-#: ../../keyboard.pm_.c:191
-msgid "Armenian (phonetic)"
-msgstr "Įńģåķéźü (öłķēōéźü)"
-
-#: ../../keyboard.pm_.c:196
-msgid "Azerbaidjani (latin)"
-msgstr "ĮęåńģšįśōęÜķ (Ėįōéķéźü)"
-
-#: ../../keyboard.pm_.c:198
-msgid "Belgian"
-msgstr "Āåėćéźü"
-
-#: ../../keyboard.pm_.c:199
-#, fuzzy
-msgid "Bulgarian (phonetic)"
-msgstr "Įńģåķéźü (öłķēōéźü)"
-
-#: ../../keyboard.pm_.c:200
-#, fuzzy
-msgid "Bulgarian (BDS)"
-msgstr "Āļõėćįńéźü"
-
-#: ../../keyboard.pm_.c:201
-msgid "Brazilian (ABNT-2)"
-msgstr "ĀńįęéėéÜķéźļ"
-
-#: ../../keyboard.pm_.c:202
-msgid "Belarusian"
-msgstr "Ėåõźļńłóßįņ"
-
-#: ../../keyboard.pm_.c:203
-msgid "Swiss (German layout)"
-msgstr "Åėāåōéźü (Ćåńģįķ韎 äéįńżčģéóē)"
-
-#: ../../keyboard.pm_.c:204
-msgid "Swiss (French layout)"
-msgstr "Åėāåōéźü (Ćįėė韎 äéįńżčģéóē)"
-
-#: ../../keyboard.pm_.c:206
-msgid "Czech (QWERTY)"
-msgstr "ŌóŻ÷éźļ (QWERTY)"
-
-#: ../../keyboard.pm_.c:208
-msgid "German (no dead keys)"
-msgstr "Ćåńģįķéźü (÷łńßņ ķåźńÜ šėŽźōńį)"
-
-#: ../../keyboard.pm_.c:209
-msgid "Danish"
-msgstr "Äįķéźü"
-
-#: ../../keyboard.pm_.c:210
-msgid "Dvorak (US)"
-msgstr "Dvorak (ĒŠĮ)"
-
-#: ../../keyboard.pm_.c:211
-msgid "Dvorak (Norwegian)"
-msgstr "Dvorak (Ķļńāēćéźü)"
-
-#: ../../keyboard.pm_.c:212
-#, fuzzy
-msgid "Dvorak (Swedish)"
-msgstr "Dvorak (ĒŠĮ)"
-
-#: ../../keyboard.pm_.c:213
-msgid "Estonian"
-msgstr "Åóčļķéźü"
-
-#: ../../keyboard.pm_.c:217
-msgid "Georgian (\"Russian\" layout)"
-msgstr "Ćåłńćßį (\"Ńłóéźē\" äéįńżčģéóē)"
-
-#: ../../keyboard.pm_.c:218
-msgid "Georgian (\"Latin\" layout)"
-msgstr "Ćåłńćßį (\"Ėįōéķ韎\" äéįńżčģéóē)"
-
-#: ../../keyboard.pm_.c:219
-msgid "Greek"
-msgstr "Åėėēķéźü"
-
-#: ../../keyboard.pm_.c:220
-msgid "Hungarian"
-msgstr "Ļõććńéźü"
-
-#: ../../keyboard.pm_.c:221
-msgid "Croatian"
-msgstr "Źńļįōéźü"
-
-#: ../../keyboard.pm_.c:222
-msgid "Israeli"
-msgstr "ÉóńįŽė"
-
-#: ../../keyboard.pm_.c:223
-msgid "Israeli (Phonetic)"
-msgstr "ÉóńįŽė (öłķēōéźü)"
-
-#: ../../keyboard.pm_.c:224
-msgid "Iranian"
-msgstr "Éńįķéźü"
-
-#: ../../keyboard.pm_.c:225
-msgid "Icelandic"
-msgstr "Éóėįķäéźü"
-
-#: ../../keyboard.pm_.c:226
-msgid "Italian"
-msgstr "Éōįėéźü"
-
-#: ../../keyboard.pm_.c:228
-msgid "Japanese 106 keys"
-msgstr "Éįšłķéźü 106 šėŽźōńłķ"
-
-#: ../../keyboard.pm_.c:231
-msgid "Korean keyboard"
-msgstr "ŹļńåÜōéźļ Šėēźōńļėüćéļ"
-
-#: ../../keyboard.pm_.c:232
-msgid "Latin American"
-msgstr "Ėįōéķ韎ņ Įģåń韎ņ"
-
-#: ../../keyboard.pm_.c:233
-msgid "Lithuanian AZERTY (old)"
-msgstr "Ėéčļõįķéźü AZERTY (šįėéü)"
-
-#: ../../keyboard.pm_.c:235
-msgid "Lithuanian AZERTY (new)"
-msgstr "Ėéčļõįķéźü AZERTY (ķŻļ)"
-
-#: ../../keyboard.pm_.c:236
-msgid "Lithuanian \"number row\" QWERTY"
-msgstr "Ėéčļõįķéźü \"number row\" QWERTY"
-
-#: ../../keyboard.pm_.c:237
-msgid "Lithuanian \"phonetic\" QWERTY"
-msgstr "Ėéčļõįķéźü \"öłķēōéźü\" QWERTY"
-
-#: ../../keyboard.pm_.c:238
-#, fuzzy
-msgid "Latvian"
-msgstr "Ōļšļčåóßį"
-
-#: ../../keyboard.pm_.c:239
-msgid "Macedonian"
-msgstr "Ģįźåäļķ韎"
-
-#: ../../keyboard.pm_.c:240
-msgid "Dutch"
-msgstr "Ļėėįķäéźü"
-
-#: ../../keyboard.pm_.c:242
-msgid "Polish (qwerty layout)"
-msgstr "Šļėłķéźü (äéįńżčģéóē qwerty)"
-
-#: ../../keyboard.pm_.c:243
-msgid "Polish (qwertz layout)"
-msgstr "Šļėłķéźü (äéįńżčģéóē qwertz)"
-
-#: ../../keyboard.pm_.c:244
-msgid "Portuguese"
-msgstr "Šļńōļćįėėéźü"
-
-#: ../../keyboard.pm_.c:245
-msgid "Canadian (Quebec)"
-msgstr "Źįķįäéźü (ŹåģšŻź)"
-
-#: ../../keyboard.pm_.c:247
-msgid "Romanian (qwertz)"
-msgstr "Ńļõģįķéźü (qwertz)"
-
-#: ../../keyboard.pm_.c:248
-msgid "Romanian (qwerty)"
-msgstr "Ńļõģįķéźü (qwerty)"
-
-#: ../../keyboard.pm_.c:250
-msgid "Russian (Yawerty)"
-msgstr "Ńłóéźü (Yawerty)"
-
-#: ../../keyboard.pm_.c:252
-msgid "Slovenian"
-msgstr "Óėļāåķßįņ"
-
-#: ../../keyboard.pm_.c:253
-msgid "Slovakian (QWERTZ)"
-msgstr "Óėļāįźßįņ (QWERTZ)"
-
-#: ../../keyboard.pm_.c:254
-msgid "Slovakian (QWERTY)"
-msgstr "Óėļāįźßįņ (QWERTY)"
-
-#: ../../keyboard.pm_.c:256
-#, fuzzy
-msgid "Serbian (cyrillic)"
-msgstr "ĮęåńģšįśōęÜķ (źõńéėėéźü)"
-
-#: ../../keyboard.pm_.c:258
-#, fuzzy
-msgid "Tamil"
-msgstr "Šßķįźįņ"
-
-#: ../../keyboard.pm_.c:259
-msgid "Thai keyboard"
-msgstr "Thai"
-
-#: ../../keyboard.pm_.c:261
-#, fuzzy
-msgid "Tajik keyboard"
-msgstr "Thai"
-
-#: ../../keyboard.pm_.c:262
-msgid "Turkish (traditional \"F\" model)"
-msgstr "Ōļõńźéźü (šįńįäļóéįźü \"F\" ģļķōŻėļ)"
-
-#: ../../keyboard.pm_.c:263
-msgid "Turkish (modern \"Q\" model)"
-msgstr "Ōļõńźéźü (ģļķōŻńķļ \"Q\" ģļķōŻėļ)"
-
-#: ../../keyboard.pm_.c:265
-msgid "Ukrainian"
-msgstr "Ļõźńįķéźü"
-
-#: ../../keyboard.pm_.c:268
-msgid "US keyboard (international)"
-msgstr "US äéåčķŻņ"
-
-#: ../../keyboard.pm_.c:269
-msgid "Vietnamese \"numeric row\" QWERTY"
-msgstr "ĀéåōķÜģ \"numeric row\" QWERTY"
-
-#: ../../keyboard.pm_.c:270
-#, fuzzy
-msgid "Yugoslavian (latin)"
-msgstr "Ćéļõćźļóėįāéźü (ėįōéķéźü/źõńéėėéźü)"
-
-#: ../../keyboard.pm_.c:278
-msgid "Right Alt key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:279
-msgid "Both Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:280
-msgid "Control and Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:281
-msgid "CapsLock key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:282
-msgid "Ctrl and Alt keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:283
-msgid "Alt and Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:284
-msgid "\"Menu\" key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:285
-msgid "Left \"Windows\" key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:286
-msgid "Right \"Windows\" key"
-msgstr ""
-
-#: ../../loopback.pm_.c:32
-#, c-format
-msgid "Circular mounts %s\n"
-msgstr "Źõźė韯ņ óõķäŻóåéņ %s\n"
-
-#: ../../lvm.pm_.c:88
-msgid "Remove the logical volumes first\n"
-msgstr "ĮöįéńŻóōå ōį logical volumes šńžōį\n"
-
-#: ../../modules.pm_.c:826
-msgid ""
-"PCMCIA support no longer exist for 2.2 kernels. Please use a 2.4 kernel."
-msgstr ""
-
-#: ../../mouse.pm_.c:25
-msgid "Sun - Mouse"
-msgstr "Sun - Mouse"
-
-#: ../../mouse.pm_.c:32
-msgid "Logitech MouseMan+"
-msgstr "Logitech MouseMan+"
-
-#: ../../mouse.pm_.c:33
-msgid "Generic PS2 Wheel Mouse"
-msgstr "Ćåķéźļż ōżšļõ šļķōßźé PS2 ģå ńļäÜźé"
-
-#: ../../mouse.pm_.c:34
-msgid "GlidePoint"
-msgstr "GlidePoint"
-
-#: ../../mouse.pm_.c:36 ../../mouse.pm_.c:63
-msgid "Kensington Thinking Mouse"
-msgstr "Kensington Thinking Mouse"
-
-#: ../../mouse.pm_.c:37 ../../mouse.pm_.c:59
-msgid "Genius NetMouse"
-msgstr "Genius NetMouse"
-
-#: ../../mouse.pm_.c:38
-msgid "Genius NetScroll"
-msgstr "Genius NetScroll"
-
-#: ../../mouse.pm_.c:43 ../../mouse.pm_.c:68
-msgid "1 button"
-msgstr "1 šėŽźōńļõ"
-
-#: ../../mouse.pm_.c:44 ../../mouse.pm_.c:51
-msgid "Generic 2 Button Mouse"
-msgstr "Ćåķéźļż ōżšļõ ģå 2 šėŽźōńį"
-
-#: ../../mouse.pm_.c:45
-msgid "Generic"
-msgstr "Ćåķéźü"
-
-#: ../../mouse.pm_.c:46
-msgid "Wheel"
-msgstr "Ģå ńļäÜźé"
-
-#: ../../mouse.pm_.c:49
-msgid "serial"
-msgstr "óåéńéįźü"
-
-#: ../../mouse.pm_.c:52
-msgid "Generic 3 Button Mouse"
-msgstr "Ćåķéźļż ōżšļõ ģå 3 šėŽźōńį"
-
-#: ../../mouse.pm_.c:53
-msgid "Microsoft IntelliMouse"
-msgstr "Microsoft IntelliMouse"
-
-#: ../../mouse.pm_.c:54
-msgid "Logitech MouseMan"
-msgstr "Logitech MouseMan"
-
-#: ../../mouse.pm_.c:55
-msgid "Mouse Systems"
-msgstr "Mouse Systems"
-
-#: ../../mouse.pm_.c:57
-msgid "Logitech CC Series"
-msgstr "Logitech CC Series"
-
-#: ../../mouse.pm_.c:58
-msgid "Logitech MouseMan+/FirstMouse+"
-msgstr "Logitech MouseMan+/FirstMouse+"
-
-#: ../../mouse.pm_.c:60
-msgid "MM Series"
-msgstr "MM Series"
-
-#: ../../mouse.pm_.c:61
-msgid "MM HitTablet"
-msgstr "MM HitTablet"
-
-#: ../../mouse.pm_.c:62
-msgid "Logitech Mouse (serial, old C7 type)"
-msgstr "Logitech Mouse (óåéńéįźü, šįėéüņ C7 ōżšļņ)"
-
-#: ../../mouse.pm_.c:66
-msgid "busmouse"
-msgstr "busmouse"
-
-#: ../../mouse.pm_.c:69
-msgid "2 buttons"
-msgstr "Äżļ šėŽźōńłķ"
-
-#: ../../mouse.pm_.c:70
-msgid "3 buttons"
-msgstr "Ōńéžķ šėŽźōńłķ"
-
-#: ../../mouse.pm_.c:73
-msgid "none"
-msgstr "źįķŻķį"
-
-#: ../../mouse.pm_.c:75
-msgid "No mouse"
-msgstr "׳ńßņ šļķōßźé"
-
-#: ../../mouse.pm_.c:499
-msgid "Please test the mouse"
-msgstr "Šįńįźįėž äļźéģÜóōå ōļ šļķōßźé"
-
-#: ../../mouse.pm_.c:500
-msgid "To activate the mouse,"
-msgstr "Ćéį åķåńćļšļßēóē šļķōéźéļż"
-
-#: ../../mouse.pm_.c:501
-msgid "MOVE YOUR WHEEL!"
-msgstr "ŹÉĶĒÓŌÅ ŌĻ ŃĻÄĮŹÉ!"
-
-#: ../../my_gtk.pm_.c:651
-msgid "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"
-msgstr "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"
-
-#: ../../my_gtk.pm_.c:686
-msgid "Finish"
-msgstr "ŌŻėļņ"
-
-#: ../../my_gtk.pm_.c:686 ../../printerdrake.pm_.c:1588
-msgid "Next ->"
-msgstr "Åšüģåķļ -»"
-
-#: ../../my_gtk.pm_.c:687 ../../printerdrake.pm_.c:1586
-msgid "<- Previous"
-msgstr "<- Šńļēćļżģåķļ"
-
-#: ../../my_gtk.pm_.c:1019
-msgid "Is this correct?"
-msgstr "Ółóōü;"
-
-#: ../../network/adsl.pm_.c:19 ../../network/ethernet.pm_.c:36
-msgid "Connect to the Internet"
-msgstr "Óżķäåóē óōļ Äéįäßźōõļ"
-
-#: ../../network/adsl.pm_.c:20
-msgid ""
-"The most common way to connect with adsl is pppoe.\n"
-"Some connections use pptp, a few ones use dhcp.\n"
-"If you don't know, choose 'use pppoe'"
-msgstr ""
-"Ļ šéļ źļéķüņ ōńüšļņ óżķäåóēņ adsl åßķįé pppoe.\n"
-"ĻńéóģŻķåņ óõķäŻóåéņ ÷ńēóéģļšļéļżķ pptp, źÜšļéåņ ėßćåņ dhcp.\n"
-"ÅÜķ äåķ īŻńåōå, åšéėŻīōå '÷ńŽóē pppoe'"
-
-#: ../../network/adsl.pm_.c:22
-msgid "Alcatel speedtouch usb"
-msgstr ""
-
-#: ../../network/adsl.pm_.c:22
-msgid "use dhcp"
-msgstr "÷ńŽóē dhcp"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pppoe"
-msgstr "÷ńŽóē pppoe"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pptp"
-msgstr "÷ńŽóē pptp"
-
-#: ../../network/ethernet.pm_.c:37
-msgid ""
-"Which dhcp client do you want to use?\n"
-"Default is dhcpcd"
-msgstr ""
-"Šļéüķ šåėÜōē dhcp čŻėåōå ķį ÷ńēóéģļšļéŽóåōå;\n"
-"Ē šńļåšéėļćŽ åßķįé dhcpcd"
-
-#: ../../network/ethernet.pm_.c:88
-msgid ""
-"No ethernet network adapter has been detected on your system.\n"
-"I cannot set up this connection type."
-msgstr ""
-"Äåķ āńŻčēźå šńļóįńģļćŻįņ äéźōżļõ Ethernet óōļ óżóōēģÜ óįņ.\n"
-"Äåķ ģšļńž ķį ńõčģßół įõōļż ōļõ ōżšļõ ōēķ óżķäåóē."
-
-#: ../../network/ethernet.pm_.c:92 ../../standalone/drakgw_.c:252
-msgid "Choose the network interface"
-msgstr "ÅšéėŻīōå óõóźåõŽ äéźōżļõ"
-
-#: ../../network/ethernet.pm_.c:93
-msgid ""
-"Please choose which network adapter you want to use to connect to Internet"
-msgstr ""
-"Šįńįźįėž åšéėŻīōå šļéÜ óõóźåõŽ äéźōżļõ čŻėåōå ķį ÷ńēóéģļšļéŽóåōå ćéį ōēķ "
-"óżķäåóē óōļ Äéįäßźōõļ"
-
-#: ../../network/ethernet.pm_.c:178
-msgid "no network card found"
-msgstr "äåķ āńŻčēźå šńļóįńģļćŻįņ äéźōżļõ"
-
-#: ../../network/ethernet.pm_.c:202 ../../network/network.pm_.c:360
-msgid "Configuring network"
-msgstr "Ńżčģéóē äéźōżļõ"
-
-#: ../../network/ethernet.pm_.c:203
-msgid ""
-"Please enter your host name if you know it.\n"
-"Some DHCP servers require the hostname to work.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''."
-msgstr ""
-"Šįńįźįėž åéóÜćåōå ōļ üķļģį ōļõ óõóōŽģįōļņ Żįķ ōļ īŻńåōå.\n"
-"ĻńéóģŻķļé åīõšēńåōēōŻņ DHCP äåķ ėåéōļõńćļżķ ÷łńßņ įõōü.\n"
-"Ōļ üķļģį įõōü šńŻšåé ķį åßķįé Żķį šėŽńåņ üķļģį óõóōŽģįōļņ,\n"
-"üšłņ š.÷. ``mybox.mylab.myco.com''."
-
-#: ../../network/ethernet.pm_.c:207 ../../network/network.pm_.c:365
-msgid "Host name"
-msgstr "¼ķļģį óõóōŽģįōļņ"
-
-#: ../../network/isdn.pm_.c:21 ../../network/isdn.pm_.c:44
-#: ../../network/netconnect.pm_.c:95 ../../network/netconnect.pm_.c:109
-#: ../../network/netconnect.pm_.c:164 ../../network/netconnect.pm_.c:175
-#: ../../network/netconnect.pm_.c:202 ../../network/netconnect.pm_.c:225
-#: ../../network/netconnect.pm_.c:233
-msgid "Network Configuration Wizard"
-msgstr "Ļäēćüņ Ńżčģéóēņ Äéźōżļõ"
-
-#: ../../network/isdn.pm_.c:22
-msgid "External ISDN modem"
-msgstr "Åīłōåńéźü ISDN modem"
-
-#: ../../network/isdn.pm_.c:22
-msgid "Internal ISDN card"
-msgstr "Åółōåń韎 źÜńōį ISDN"
-
-#: ../../network/isdn.pm_.c:22
-msgid "What kind is your ISDN connection?"
-msgstr "Ōß åßäļõņ åßķįé ē ISDN óżķäåóŽ óįņ;"
-
-#: ../../network/isdn.pm_.c:45
-msgid ""
-"Which ISDN configuration do you prefer?\n"
-"\n"
-"* The Old configuration uses isdn4net. It contains powerfull\n"
-" tools, but is tricky to configure, and not standard.\n"
-"\n"
-"* The New configuration is easier to understand, more\n"
-" standard, but with less tools.\n"
-"\n"
-"We recommand the light configuration.\n"
-msgstr ""
-"ŠļéÜ ISDN ńżčģéóē šńļōéģÜōå;\n"
-"\n"
-"* Ē šįėéÜ ńżčģéóē ÷ńēóéģļšļéåß ōļ isdn4net. ŠåńéŻ÷åé ÷ńŽóéģį åńćįėåßį,\n"
-" įėėÜ åßķįé ėßćļ äżóźļėļ ćéį Żķįķ įń÷Üńéļ ķį ńõčģéóōåß źįé ü÷é óōåńåüōõšļ.\n"
-"\n"
-"* Ē ĶŻį ńżčģéóē åßķįé åõźļėüōåńē óōēķ źįōįķüēóē, šåńéóóüōåńļ óōåńåüōõšē,\n"
-" įėėÜ ģå ėéćüōåńį åńćįėåßį.\n"
-"\n"
-"Šńļōåßķļõģå ōēķ åėįöńéÜ ńżčģéóē.\n"
-"\n"
-
-#: ../../network/isdn.pm_.c:54
-msgid "New configuration (isdn-light)"
-msgstr "ĶŻį ńżģčéóē (isdn-light)"
-
-#: ../../network/isdn.pm_.c:54
-msgid "Old configuration (isdn4net)"
-msgstr "ŠįėéÜ ńżģčéóē (isdn4net)"
-
-#: ../../network/isdn.pm_.c:170 ../../network/isdn.pm_.c:188
-#: ../../network/isdn.pm_.c:198 ../../network/isdn.pm_.c:205
-#: ../../network/isdn.pm_.c:215
-msgid "ISDN Configuration"
-msgstr "Ńõčģßóåéņ ISDN"
-
-#: ../../network/isdn.pm_.c:170
-msgid ""
-"Select your provider.\n"
-" If it's not in the list, choose Unlisted"
-msgstr ""
-"ÅšéėŻīōå ōļķ šįńļ÷Żį óįņ\n"
-" ÅÜķ äåķ åßķįé óōļķ źįōÜėļćļ, åšéėŻīōå Unlisted"
-
-#: ../../network/isdn.pm_.c:183
-#, fuzzy
-msgid "Europe protocol"
-msgstr "Šńłōüźļėėļ Åźźßķēóēņ"
-
-#: ../../network/isdn.pm_.c:183
-#, fuzzy
-msgid "Europe protocol (EDSS1)"
-msgstr "Åõńžšē (EDSS1)"
-
-#: ../../network/isdn.pm_.c:185
-#, fuzzy
-msgid "Protocol for the rest of the world"
-msgstr "Õšüėļéšļņ źüóģļņ"
-
-#: ../../network/isdn.pm_.c:185
-#, fuzzy
-msgid ""
-"Protocol for the rest of the world \n"
-" no D-Channel (leased lines)"
-msgstr ""
-"Õšüėļéšļņ źüóģļņ \n"
-" ÷łńßņ D-Channel (ģéóčłģŻķåņ ćńįģģŻņ)"
-
-#: ../../network/isdn.pm_.c:189
-msgid "Which protocol do you want to use ?"
-msgstr "Šļéü šńłōüźļėėļ čŻėåōå ķį ÷ńēóéģļšļéŽóåōå;"
-
-#: ../../network/isdn.pm_.c:199
-msgid "What kind of card do you have?"
-msgstr "Ōß źÜńōį Ż÷åōå;"
-
-#: ../../network/isdn.pm_.c:200
-msgid "I don't know"
-msgstr "Äåķ īŻńł"
-
-#: ../../network/isdn.pm_.c:200
-msgid "ISA / PCMCIA"
-msgstr "ISA / PCMCIA"
-
-#: ../../network/isdn.pm_.c:200
-msgid "PCI"
-msgstr "PCI"
-
-#: ../../network/isdn.pm_.c:206
-msgid ""
-"\n"
-"If you have an ISA card, the values on the next screen should be right.\n"
-"\n"
-"If you have a PCMCIA card, you have to know the irq and io of your card.\n"
-msgstr ""
-"\n"
-"ÅÜķ Ż÷åōå ISA źÜńōį, ļé ōéģŻņ óōēķ åšüģåķē ļčüķē čį šńŻšåé ķį åßķįé ółóōŻņ.\n"
-"\n"
-"ÅÜķ Ż÷åōå PCMCIA źÜńōį, šńŻšåé ķį īŻńåōå ōļ irq źįé ōļ io ōēņ źÜńōįņ óįņ.\n"
-
-#: ../../network/isdn.pm_.c:210
-msgid "Abort"
-msgstr "Įźżńłóē"
-
-#: ../../network/isdn.pm_.c:210
-msgid "Continue"
-msgstr "ÓõķŻ÷åéį"
-
-#: ../../network/isdn.pm_.c:216
-msgid "Which is your ISDN card ?"
-msgstr "ŠļéÜ åßķįé ē ISDN źÜńōį óįņ;"
-
-#: ../../network/isdn.pm_.c:235
-msgid ""
-"I have detected an ISDN PCI Card, but I don't know the type. Please select "
-"one PCI card on the next screen."
-msgstr ""
-"Åķōüšéóį ģéį ISDN źÜńōį, įėėÜ äåķ īŻńł ōļķ ōżšļ ōēņ. Šįńįźįėž åšéėŻīōå ģéį "
-"źÜńōį PCI įšü ōēķ šįńįźÜōł ļčüķē."
-
-#: ../../network/isdn.pm_.c:244
-msgid "No ISDN PCI card found. Please select one on the next screen."
-msgstr "Äåķ āńŻčēźå źÜńōį ISDN. Šįńįźįėž åšéėŻīōå ģéį įšü ōēķ šįńįźÜōł ļčüķē."
-
-#: ../../network/modem.pm_.c:39
-msgid "Please choose which serial port your modem is connected to."
-msgstr "Óå šļéÜ óåéńéįźŽ šüńōį åßķįé óõķäåäåģŻķļ ōļ modem óįņ;"
-
-#: ../../network/modem.pm_.c:44
-msgid "Dialup options"
-msgstr "ÅšéėļćŻņ dialup"
-
-#: ../../network/modem.pm_.c:45 ../../standalone/draknet_.c:622
-msgid "Connection name"
-msgstr "¼ķļģį óżķäåóēņ"
-
-#: ../../network/modem.pm_.c:46 ../../standalone/draknet_.c:623
-msgid "Phone number"
-msgstr "Įńéčģüņ ōēėåöžķļõ"
-
-#: ../../network/modem.pm_.c:47 ../../standalone/draknet_.c:624
-msgid "Login ID"
-msgstr "Login ID"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "CHAP"
-msgstr ""
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "PAP"
-msgstr "PAP"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Script-based"
-msgstr "×ńŽóē script"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Terminal-based"
-msgstr "×ńŽóē ōåńģįōéźļż"
-
-#: ../../network/modem.pm_.c:50 ../../standalone/draknet_.c:627
-msgid "Domain name"
-msgstr "¼ķļģį äéźōżļõ"
-
-#: ../../network/modem.pm_.c:51 ../../standalone/draknet_.c:628
-msgid "First DNS Server (optional)"
-msgstr "Šńžōļņ åīõšēńåōēōŽņ DNS (šńļįéńåōéźü)"
-
-#: ../../network/modem.pm_.c:52 ../../standalone/draknet_.c:629
-msgid "Second DNS Server (optional)"
-msgstr "Äåżōåńļņ åīõšēńåōēōŽņ DNS (šńļįéńåōéźü)"
-
-#: ../../network/netconnect.pm_.c:34
-msgid ""
-"\n"
-"You can disconnect or reconfigure your connection."
-msgstr ""
-"\n"
-"Ģšļńåßōå ķį įšļóõķäåčåßōå Ž ķį åšįķįńõčģßóåōå ōēķ óżķäåóŽ óįņ."
-
-#: ../../network/netconnect.pm_.c:34 ../../network/netconnect.pm_.c:37
-msgid ""
-"\n"
-"You can reconfigure your connection."
-msgstr ""
-"\n"
-"Ģšļńåßōå ķį åšįķįńõčģßóåōå ōēķ óżķäåóŽ óįņ."
-
-#: ../../network/netconnect.pm_.c:34
-msgid "You are currently connected to internet."
-msgstr "ĮõōŽ ōē óōéćģŽ åßóōå óõķäåäåģŻķļé óōļ Äéįäßźōõļ."
-
-#: ../../network/netconnect.pm_.c:37
-msgid ""
-"\n"
-"You can connect to Internet or reconfigure your connection."
-msgstr ""
-"\n"
-"Ģšļńåßōå ķį óõķäåčåßōå óōļ Äéįäßźōõļ Ž ķį åšįķįńõčģßóåōå ōēķ óżķäåóŽ óįņ."
-
-#: ../../network/netconnect.pm_.c:37
-msgid "You are not currently connected to Internet."
-msgstr "ĮõōŽ ōē óōéćģŽ äåķ åßóōå óõķäåäåģŻķļé óōļ Äéįäßźōõļ."
-
-#: ../../network/netconnect.pm_.c:41
-msgid "Connect"
-msgstr "Óżķäåóē"
-
-#: ../../network/netconnect.pm_.c:43
-msgid "Disconnect"
-msgstr "Įšļóżķäåóē"
-
-#: ../../network/netconnect.pm_.c:45
-#, fuzzy
-msgid "Configure the connection"
-msgstr "Ńżčģéóē äéźōżļõ"
-
-#: ../../network/netconnect.pm_.c:50
-msgid "Internet connection & configuration"
-msgstr "Óżķäåóē źįé ńżčģéóē Äéįäéźōżļõ (internet)"
-
-#: ../../network/netconnect.pm_.c:100
-#, c-format
-msgid "We are now going to configure the %s connection."
-msgstr "Ōžńį čį ńõčģßóļõģå ōēķ %s óżķäåóē."
-
-#: ../../network/netconnect.pm_.c:109
-#, c-format
-msgid ""
-"\n"
-"\n"
-"\n"
-"We are now going to configure the %s connection.\n"
-"\n"
-"\n"
-"Press OK to continue."
-msgstr ""
-"\n"
-"\n"
-"\n"
-"Ōžńį čį ńõčģßóļõģå ōēķ %s óżķäåóē.\n"
-"\n"
-"\n"
-"ŠįōŽóōå ōļ OK ćéį ķį īåźéķŽóåōå"
-
-#: ../../network/netconnect.pm_.c:138 ../../network/netconnect.pm_.c:252
-#: ../../network/netconnect.pm_.c:271 ../../network/tools.pm_.c:57
-msgid "Network Configuration"
-msgstr "Ńõčģßóåéņ äéźōżļõ"
-
-#: ../../network/netconnect.pm_.c:139
-msgid ""
-"Because you are doing a network installation, your network is already "
-"configured.\n"
-"Click on Ok to keep your configuration, or cancel to reconfigure your "
-"Internet & Network connection.\n"
-msgstr ""
-"ÅšåéäŽ źÜķåōå ģéį äéźōõįźŽ åćźįōÜóōįóē, ōļ äßźōõļ åßķįé Žäē ńõčģéóģŻķļ.\n"
-"ŹÜķōå źėßź óōļ Ļź ćéį ķį äéįōēńŽóåōå ōéņ ńõčģßóåéņ óįņ, Ž Üźõńļ ćéį ķį "
-"īįķįńõčģßóåōå ōē óżķäåóē óōļ Internet.\n"
-
-#: ../../network/netconnect.pm_.c:165
-msgid ""
-"Welcome to The Network Configuration Wizard\n"
-"\n"
-"We are about to configure your internet/network connection.\n"
-"If you don't want to use the auto detection, deselect the checkbox.\n"
-msgstr ""
-"Źįėžņ Žėčįōå óōļķ Ļäēćü Ńżčģéóēņ ōļõ Äéźōżļõ\n"
-"\n"
-"Åßģįóōå Żōļéģļé ķį ńõčģßóļõģå ōē óżķäåóŽ óįņ óōļ internet/äßźōõļ.\n"
-"Įķ äåķ čŻėåōå ķį ÷ńēóéģļšļéŽóåōå ōēķ įõōüģįōē įķß÷ķåõóē, īåōóåźÜńåōå ōļ "
-"checkbox.\n"
-
-#: ../../network/netconnect.pm_.c:167
-msgid "Choose the profile to configure"
-msgstr "ÅšéėŻīōå ōļ šńļößė ćéį ńżčģéóē"
-
-#: ../../network/netconnect.pm_.c:168
-msgid "Use auto detection"
-msgstr "×ńŽóē įõōüģįōēņ įķß÷ķåõóēņ"
-
-#: ../../network/netconnect.pm_.c:175
-msgid "Detecting devices..."
-msgstr "Åķōļšéóģüņ óõóźåõžķ..."
-
-#: ../../network/netconnect.pm_.c:186 ../../network/netconnect.pm_.c:195
-msgid "Normal modem connection"
-msgstr "ĮšėŽ óżķäåóē ģå modem"
-
-#: ../../network/netconnect.pm_.c:186 ../../network/netconnect.pm_.c:195
-#, c-format
-msgid "detected on port %s"
-msgstr "įķé÷ķåżčēźå óōēķ šüńōį %s"
-
-#: ../../network/netconnect.pm_.c:187 ../../network/netconnect.pm_.c:196
-msgid "ISDN connection"
-msgstr "Óżķäåóē ISDN"
-
-#: ../../network/netconnect.pm_.c:187 ../../network/netconnect.pm_.c:196
-#, c-format
-msgid "detected %s"
-msgstr "įķé÷ķåżčēźå ōļ %s"
-
-#: ../../network/netconnect.pm_.c:188 ../../network/netconnect.pm_.c:197
-msgid "ADSL connection"
-msgstr "Óżķäåóē ADSL"
-
-#: ../../network/netconnect.pm_.c:188 ../../network/netconnect.pm_.c:197
-#, c-format
-msgid "detected on interface %s"
-msgstr "įķé÷ķåżōēźå óōēķ äéåšéöÜķåéį %s"
-
-#: ../../network/netconnect.pm_.c:189 ../../network/netconnect.pm_.c:198
-msgid "Cable connection"
-msgstr "ŹįėłäéįźŽ óżķäåóē"
-
-#: ../../network/netconnect.pm_.c:189 ../../network/netconnect.pm_.c:198
-msgid "cable connection detected"
-msgstr "įķé÷ķåżčēźå źįėłäéįźŽ óżķäåóē"
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-msgid "LAN connection"
-msgstr "Óżķäåóē LAN"
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-msgid "ethernet card(s) detected"
-msgstr "źÜńōį(åņ) ethernet įķé÷ķåżčēźįķ"
-
-#: ../../network/netconnect.pm_.c:202
-msgid "Choose the connection you want to configure"
-msgstr "ÅšéėŻīōå ōē óżķäåóē šļõ čŻėåōå ķį ńõčģßóåōå"
-
-#: ../../network/netconnect.pm_.c:226
-msgid ""
-"You have configured multiple ways to connect to the Internet.\n"
-"Choose the one you want to use.\n"
-"\n"
-msgstr ""
-"ø÷åōå ńõčģßóåé šļėėļżņ ōńüšļõņ ćéį ķį óõķäŻåóōå óōļ Internet.\n"
-"ÅšéėŻīōå įõōüķ šļõ čŻėåōå ķį ÷ńēóéģļšļéŽóåōå.\n"
-"\n"
-
-#: ../../network/netconnect.pm_.c:227
-msgid "Internet connection"
-msgstr "Óżķäåóē Internet"
-
-#: ../../network/netconnect.pm_.c:233
-msgid "Do you want to start the connection at boot?"
-msgstr "ČŻėåōå ķį óõķäŻåóōå źįōÜ ōēķ åźźßķēóē;"
-
-#: ../../network/netconnect.pm_.c:247
-msgid "Network configuration"
-msgstr "Ńõčģßóåéņ äéźōżļõ"
-
-#: ../../network/netconnect.pm_.c:248
-msgid "The network needs to be restarted"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:252
-#, c-format
-msgid ""
-"A problem occured while restarting the network: \n"
-"\n"
-"%s"
-msgstr ""
-"øķį šńüāėēģį åģöįķßóōēźå źįōÜ ōēķ åšįķåźźßķēóē ōļõ äéźōżļõ: \n"
-"\n"
-"%s"
-
-#: ../../network/netconnect.pm_.c:261
-msgid ""
-"Congratulations, the network and Internet configuration is finished.\n"
-"The configuration will now be applied to your system.\n"
-"\n"
-msgstr ""
-"Óõć÷įńēōŽńéį, ē ńżčģéóē äéźōżļõ źįé internet ōåėåßłóå.\n"
-"\n"
-"Ļé ńõčģßóåéņ čį åöįńģļóōļżķ ōžńį óōļ óżóōēģÜ óįņ.\n"
-
-#: ../../network/netconnect.pm_.c:265
-msgid ""
-"After this is done, we recommend that you restart your X environment to "
-"avoid any hostname-related problems."
-msgstr ""
-"Įöļż ćßķåé įõōü, šńļōåßķļõģå ķį īįķįīåźéķŽóåōå ōļ ×\n"
-"šåńéāÜėėļķ ćéį ķį įšļöżćåōå ōį šńļāėŽģįōį įėėįćŽņ hostname."
-
-#: ../../network/netconnect.pm_.c:266
-msgid ""
-"Problems occured during configuration.\n"
-"Test your connection via net_monitor or mcc. If your connection doesn't "
-"work, you might want to relaunch the configuration"
-msgstr ""
-
-#: ../../network/network.pm_.c:292
-msgid ""
-"WARNING: This device has been previously configured to connect to the "
-"Internet.\n"
-"Simply accept to keep this device configured.\n"
-"Modifying the fields below will override this configuration."
-msgstr ""
-"ŠŃĻÓĻ×Ē: ĮõōŽ ē óõóźåõŽ åßķįé Žäē ńõčģéóģŻķē ćéį ķį óõķäŻåōįé ģå ōļ "
-"Äéįäßźōõļ.\n"
-"ĮšėÜ šįōŽóōå OK ćéį ķį źńįōŽóåōå ōéņ õšÜń÷ļõóåņ ńõčģßóåéņ.\n"
-"ĮėėÜęļķōįņ ōį šįńįźÜōł šåäßį čį įėėÜīåōå ōēķ õšÜń÷ļõóį ńżčģéóē."
-
-#: ../../network/network.pm_.c:297
-msgid ""
-"Please enter the IP configuration for this machine.\n"
-"Each item should be entered as an IP address in dotted-decimal\n"
-"notation (for example, 1.2.3.4)."
-msgstr ""
-"Šįńįźįėž åéóÜćåōå ōéņ IP ńõčģßóåéņ ćéį įõōü ōļ óżóōēģį.\n"
-"ŹÜčå óōļé÷åßļ šńŻšåé ķį åéóį÷čåß łņ IP äéåżčõķóē óå ļźōįä韎\n"
-"ģļńöŽ (šįńÜäåéćģį: 1.2.3.4)."
-
-#: ../../network/network.pm_.c:306 ../../network/network.pm_.c:307
-#, c-format
-msgid "Configuring network device %s"
-msgstr "Ńżčģéóē óõóźåõŽņ äéźōżļõ %s"
-
-#: ../../network/network.pm_.c:307
-#, c-format
-msgid " (driver %s)"
-msgstr " (driver %s)"
-
-#: ../../network/network.pm_.c:309 ../../standalone/draknet_.c:232
-#: ../../standalone/draknet_.c:468
-msgid "IP address"
-msgstr "Äéåżčõķóē IP"
-
-#: ../../network/network.pm_.c:310 ../../standalone/draknet_.c:469
-msgid "Netmask"
-msgstr "ĢÜóźį äéźōżļõ"
-
-#: ../../network/network.pm_.c:311
-msgid "(bootp/dhcp)"
-msgstr "(bootp/dhcp)"
-
-#: ../../network/network.pm_.c:311
-msgid "Automatic IP"
-msgstr "Įõōüģįōļ IP"
-
-#: ../../network/network.pm_.c:332 ../../printerdrake.pm_.c:712
-msgid "IP address should be in format 1.2.3.4"
-msgstr "Ē IP äéåżčõķóē šńŻšåé ķį åßķįé óå ģļńöŽ 1.2.3.4"
-
-#: ../../network/network.pm_.c:361
-msgid ""
-"Please enter your host name.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''.\n"
-"You may also enter the IP address of the gateway if you have one"
-msgstr ""
-"Šįńįźįėž åéóÜćåōå ōļ üķļģį ōļõ óõóōŽģįōļņ.\n"
-"Ōļ üķļģį įõōü šńŻšåé ķį åßķįé Żķį šėŽńåņ üķļģį óõóōŽģįōļņ,\n"
-"üšłņ š.÷. ``mybox.mylab.myco.com''.\n"
-"Ģšļńåßōå åšßóēņ ķį åéóÜćåōå źįé ōēķ äéåżčõķóē IP ōēņ šżėēņ äéźōżļõ"
-
-#: ../../network/network.pm_.c:366
-msgid "DNS server"
-msgstr "ÅīõšēńåōēōŽņ DNS"
-
-#: ../../network/network.pm_.c:367
-#, c-format
-msgid "Gateway (e.g. %s)"
-msgstr ""
-
-#: ../../network/network.pm_.c:369
-msgid "Gateway device"
-msgstr "ÓõóźåõŽ šżėēņ"
-
-#: ../../network/network.pm_.c:381
-msgid "Proxies configuration"
-msgstr "Ńõčģßóåéņ proxies"
-
-#: ../../network/network.pm_.c:382
-msgid "HTTP proxy"
-msgstr "HTTP proxy"
-
-#: ../../network/network.pm_.c:383
-msgid "FTP proxy"
-msgstr "FTP proxy"
-
-#: ../../network/network.pm_.c:384
-msgid "Track network card id (usefull for laptops)"
-msgstr ""
-
-#: ../../network/network.pm_.c:387
-msgid "Proxy should be http://..."
-msgstr "Ļ proxy šńŻšåé ķį åßķįé http://..."
-
-#: ../../network/network.pm_.c:388
-msgid "Proxy should be ftp://..."
-msgstr "Ļ proxy šńŻšåé ķį åßķįé ftp://..."
-
-#: ../../network/tools.pm_.c:39
-msgid "Internet configuration"
-msgstr "Ńõčģßóåéņ Äéįäéźōżļõ (Internet)"
-
-#: ../../network/tools.pm_.c:40
-msgid "Do you want to try to connect to the Internet now?"
-msgstr "ČŻėåōå ķį äļźéģÜóåōå ķį óõķäåčåßōå óōļ Äéįäßźōõļ ōžńį;"
-
-#: ../../network/tools.pm_.c:44 ../../standalone/draknet_.c:197
-msgid "Testing your connection..."
-msgstr "ÄļźéģŽ óżķäåóēņ... "
-
-#: ../../network/tools.pm_.c:50
-msgid "The system is now connected to Internet."
-msgstr "Ōļ óżóōēģį äåķ åßķįé óõķäåäåģŻķļ óōļ Äéįäßźōõļ."
-
-#: ../../network/tools.pm_.c:51
-msgid "For Security reason, it will be disconnected now."
-msgstr "Ćéį ėüćļ ĮóöÜėåéįņ, čį įšļóõķäåčåßōå ōžńį."
-
-#: ../../network/tools.pm_.c:52
-msgid ""
-"The system doesn't seem to be connected to internet.\n"
-"Try to reconfigure your connection."
-msgstr ""
-"Ōļ óżóōēģÜ óįņ äåķ öįßķåōįé ķį åßķįé óõķäåäåģŻķļ óōļ Äéįäßźōõļ.\n"
-"ÄļźéģÜóōå ķį åšįķįńõčģßóåōå ōēķ óżķäåóŽ óįņ."
-
-#: ../../network/tools.pm_.c:76
-msgid "Connection Configuration"
-msgstr "Ńõčģßóåéņ óėõķäåóēņ"
-
-#: ../../network/tools.pm_.c:77
-msgid "Please fill or check the field below"
-msgstr "Šįńįźįėž åėŻćīōå Ž óõģšėēńžóōå ōļ šįńįźÜōł šåäßļ"
-
-#: ../../network/tools.pm_.c:79 ../../standalone/draknet_.c:608
-msgid "Card IRQ"
-msgstr "IRQ źÜńōįņ"
-
-#: ../../network/tools.pm_.c:80 ../../standalone/draknet_.c:609
-msgid "Card mem (DMA)"
-msgstr "DMA źÜńōįņ"
-
-#: ../../network/tools.pm_.c:81 ../../standalone/draknet_.c:610
-msgid "Card IO"
-msgstr "IO źÜńōįņ"
-
-#: ../../network/tools.pm_.c:82 ../../standalone/draknet_.c:611
-msgid "Card IO_0"
-msgstr "IO_0 źÜńōįņ"
-
-#: ../../network/tools.pm_.c:83 ../../standalone/draknet_.c:612
-msgid "Card IO_1"
-msgstr "IO_1 źÜńōįņ"
-
-#: ../../network/tools.pm_.c:84 ../../standalone/draknet_.c:613
-msgid "Your personal phone number"
-msgstr "Šńļółšéźüņ įńéčģüņ ōēėåöžķļõ"
-
-#: ../../network/tools.pm_.c:85 ../../standalone/draknet_.c:614
-msgid "Provider name (ex provider.net)"
-msgstr "¼ķļģį šįńļ÷Żį (š.÷. provider.net)"
-
-#: ../../network/tools.pm_.c:86 ../../standalone/draknet_.c:615
-msgid "Provider phone number"
-msgstr "Įńéčģüņ ōēėåöžķļõ šįńļ÷Żį"
-
-#: ../../network/tools.pm_.c:87 ../../standalone/draknet_.c:616
-msgid "Provider dns 1 (optional)"
-msgstr "Provider dns 1 (šńļįéńåōéźü)"
-
-#: ../../network/tools.pm_.c:88 ../../standalone/draknet_.c:617
-msgid "Provider dns 2 (optional)"
-msgstr "Provider dns 2 (šńļįéńåōéźü)"
-
-#: ../../network/tools.pm_.c:89
-#, fuzzy
-msgid "Choose your country"
-msgstr "ÅšéėŻīōå šėēźōńļėüćéļ"
-
-#: ../../network/tools.pm_.c:90 ../../standalone/draknet_.c:620
-msgid "Dialing mode"
-msgstr "Ōńüšļņ źėŽóēņ"
-
-#: ../../network/tools.pm_.c:91 ../../standalone/draknet_.c:632
-msgid "Connection speed"
-msgstr "Ōį÷żōēōį óżķäåóēņ"
-
-#: ../../network/tools.pm_.c:92 ../../standalone/draknet_.c:633
-#, fuzzy
-msgid "Connection timeout (in sec)"
-msgstr "×ńüķļņ óżķäåóēņ: "
-
-#: ../../network/tools.pm_.c:93 ../../standalone/draknet_.c:618
-msgid "Account Login (user name)"
-msgstr "'Ļķļģį ėļćįńéįģļż (user name)"
-
-#: ../../network/tools.pm_.c:94 ../../standalone/draknet_.c:619
-msgid "Account Password"
-msgstr "Óõķčēģįōéźü ėļćįńéįóģļż"
-
-#: ../../partition_table.pm_.c:600
-msgid "mount failed: "
-msgstr "óżķäåóē įšŻōõ÷å: "
-
-#: ../../partition_table.pm_.c:664
-msgid "Extended partition not supported on this platform"
-msgstr "Ē åźōåōįģŻķē źįōÜōģēóē äåķ õšļóōēńßęåōįé óå įõōüķ ōļķ ōżšļ óõóōŽģįōļņ"
-
-#: ../../partition_table.pm_.c:682
-msgid ""
-"You have a hole in your partition table but I can't use it.\n"
-"The only solution is to move your primary partitions to have the hole next "
-"to the extended partitions"
-msgstr ""
-"ÕšÜń÷åé Żķį źåķü óōļķ šßķįźį źįōįōģŽóåłķ ģį äåķ ģšļńž ķį ōļ ÷ńēóéģļšļéŽół.\n"
-"Ē ģļķįä韎 ėżóē åßķįé ķį ģåōįźéķŽóåōå ōéņ šńłōåżļõóåņ źįōįōģŽóåéņ óįņ Żōóé "
-"žóōå ōļ źåķü ķį āńåčåß äßšėį óōēķ åźōåōįģŻķē źįōÜōģēóē"
-
-#: ../../partition_table.pm_.c:770
-#, c-format
-msgid "Restoring from file %s failed: %s"
-msgstr "Ē åšįķįöļńÜ įšü ōļ įń÷åßļ %s įšŻōõ÷å: %s"
-
-#: ../../partition_table.pm_.c:772
-msgid "Bad backup file"
-msgstr "ŹįōåóōńįģŻķļ åöåäńéźü įń÷åßļ"
-
-#: ../../partition_table.pm_.c:794
-#, c-format
-msgid "Error writing to file %s"
-msgstr "ÓöÜėģį åććńįöŽņ óōļ įń÷åßļ %s"
-
-#: ../../partition_table_raw.pm_.c:186
-msgid ""
-"Something bad is happening on your drive. \n"
-"A test to check the integrity of data has failed. \n"
-"It means writing anything on the disk will end up with random trash"
-msgstr ""
-"ŹÜōé źįźü óõģāįßķåé óōļ äßóźļ óįņ. \n"
-"øķį ōŻóō åėŻć÷ļõ ōēņ įźåńįéüōēōįņ ōłķ äåäļģŻķłķ įšŻōõ÷å. \n"
-"Įõōü óēģįßķåé šłņ ē ļšļéį䎚ļōå åććńįöŽ óōļ äßóźļ čį źįōįėŽīåé óįķ ōõ÷įßį "
-"óźļõšßäéį"
-
-#: ../../pkgs.pm_.c:24
-msgid "must have"
-msgstr "šńŻšåé ķį õšÜń÷åé"
-
-#: ../../pkgs.pm_.c:25
-msgid "important"
-msgstr "óēģįķōéźü"
-
-#: ../../pkgs.pm_.c:26
-msgid "very nice"
-msgstr "šļėż źįėü"
-
-#: ../../pkgs.pm_.c:27
-msgid "nice"
-msgstr "źįėü"
-
-#: ../../pkgs.pm_.c:28
-msgid "maybe"
-msgstr "ßółņ"
-
-#: ../../printer.pm_.c:23
-msgid "CUPS - Common Unix Printing System"
-msgstr "CUPS - Common Unix Printing System"
-
-#: ../../printer.pm_.c:24
-msgid "LPRng - LPR New Generation"
-msgstr "LPRng - LPR New Generation"
-
-#: ../../printer.pm_.c:25
-msgid "LPD - Line Printer Daemon"
-msgstr "LPD - Line Printer Daemon"
-
-#: ../../printer.pm_.c:26
-msgid "PDQ - Print, Don't Queue"
-msgstr "PDQ - Print, Don't Queue"
-
-#: ../../printer.pm_.c:32 ../../printer.pm_.c:871
-msgid "CUPS"
-msgstr ""
-
-#: ../../printer.pm_.c:33
-msgid "LPRng"
-msgstr ""
-
-#: ../../printer.pm_.c:34
-msgid "LPD"
-msgstr ""
-
-#: ../../printer.pm_.c:35
-msgid "PDQ"
-msgstr ""
-
-#: ../../printer.pm_.c:47
-msgid "Local printer"
-msgstr "Ōļšéźüņ åźōõšłōŽņ"
-
-#: ../../printer.pm_.c:48
-msgid "Remote printer"
-msgstr "ĮšļģåģįźńõóģŻķļņ åźōõšłōŽņ"
-
-#: ../../printer.pm_.c:49
-#, fuzzy
-msgid "Printer on remote CUPS server"
-msgstr "ĮšļģåģįźńõóģŻķļņ åīõšēńåōēōŽņ CUPS"
-
-#: ../../printer.pm_.c:50 ../../printerdrake.pm_.c:734
-#, fuzzy
-msgid "Printer on remote lpd server"
-msgstr "ĮšļģåģįźńõóģŻķļņ åīõšēńåōēōŽņ lpd"
-
-#: ../../printer.pm_.c:51
-msgid "Network printer (TCP/Socket)"
-msgstr "ÅźōõšłōŽņ äéźōżļõ (TCP/Socket)"
-
-#: ../../printer.pm_.c:52
-#, fuzzy
-msgid "Printer on SMB/Windows 95/98/NT server"
-msgstr "SMB/Windows 95/98/NT"
-
-#: ../../printer.pm_.c:53
-#, fuzzy
-msgid "Printer on NetWare server"
-msgstr "ÅīõšēńåōēōŽņ åźōõšžóåłķ"
-
-#: ../../printer.pm_.c:54 ../../printerdrake.pm_.c:738
-#, fuzzy
-msgid "Enter a printer device URI"
-msgstr "ÓõóźåõŽ åźōõšłōŽ URI"
-
-#: ../../printer.pm_.c:55
-#, fuzzy
-msgid "Pipe job into a command"
-msgstr "ÄéįółėŽķłóē óōēķ åķōļėŽ"
-
-#: ../../printer.pm_.c:504 ../../printer.pm_.c:695 ../../printer.pm_.c:1017
-#: ../../printerdrake.pm_.c:1665 ../../printerdrake.pm_.c:2730
-msgid "Unknown model"
-msgstr ""
-
-#: ../../printer.pm_.c:532
-#, fuzzy
-msgid "Local Printers"
-msgstr "Ōļšéźüņ åźōõšłōŽņ"
-
-#: ../../printer.pm_.c:534 ../../printer.pm_.c:872
-#, fuzzy
-msgid "Remote Printers"
-msgstr "ĮšļģåģįźńõóģŻķļņ åźōõšłōŽņ"
-
-#: ../../printer.pm_.c:541 ../../printerdrake.pm_.c:248
-#, c-format
-msgid " on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printer.pm_.c:544 ../../printerdrake.pm_.c:250
-#, c-format
-msgid ", USB printer \\/*%s"
-msgstr ""
-
-#: ../../printer.pm_.c:549
-#, c-format
-msgid ", multi-function device on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printer.pm_.c:552
-msgid ", multi-function device on USB"
-msgstr ""
-
-#: ../../printer.pm_.c:554
-msgid ", multi-function device on HP JetDirect"
-msgstr ""
-
-#: ../../printer.pm_.c:556
-msgid ", multi-function device"
-msgstr ""
-
-#: ../../printer.pm_.c:559
-#, fuzzy, c-format
-msgid ", printing to %s"
-msgstr "ÓöÜėģį åććńįöŽņ óōļ įń÷åßļ %s"
-
-#: ../../printer.pm_.c:561
-#, c-format
-msgid "on LPD server \"%s\", printer \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:563
-#, c-format
-msgid ", TCP/IP host \"%s\", port %s"
-msgstr ""
-
-#: ../../printer.pm_.c:567
-#, c-format
-msgid "on Windows server \"%s\", share \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:571
-#, c-format
-msgid "on Novell server \"%s\", printer \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:573
-#, c-format
-msgid ", using command %s"
-msgstr ""
-
-#: ../../printer.pm_.c:692 ../../printerdrake.pm_.c:1136
-msgid "Raw printer (No driver)"
-msgstr ""
-
-#: ../../printer.pm_.c:841
-#, fuzzy, c-format
-msgid "(on %s)"
-msgstr "(module %s)"
-
-#: ../../printer.pm_.c:843
-msgid "(on this machine)"
-msgstr ""
-
-#: ../../printer.pm_.c:868
-#, fuzzy, c-format
-msgid "On CUPS server \"%s\""
-msgstr "IP äéåżčõķóē åīõšēńåōēōŽ CUPS:"
-
-#: ../../printer.pm_.c:874 ../../printerdrake.pm_.c:2391
-#: ../../printerdrake.pm_.c:2402 ../../printerdrake.pm_.c:2618
-#: ../../printerdrake.pm_.c:2670 ../../printerdrake.pm_.c:2697
-#: ../../printerdrake.pm_.c:2867 ../../printerdrake.pm_.c:2869
-msgid " (Default)"
-msgstr " (ÅšéėļćŽ åī' ļńéóģļż)"
-
-#: ../../printerdrake.pm_.c:22
-msgid "Select Printer Connection"
-msgstr "Ōńüšļņ óżķäåóēņ åźōõšłōŽ"
-
-#: ../../printerdrake.pm_.c:23
-msgid "How is the printer connected?"
-msgstr "Šžņ åßķįé óõķäåäåģŻķļņ ļ åźōõšłōŽņ óįņ;"
-
-#: ../../printerdrake.pm_.c:25
-#, fuzzy
-msgid ""
-"\n"
-"Printers on remote CUPS servers you do not have to configure here; these "
-"printers will be automatically detected."
-msgstr ""
-"Ģå ōēķ ÷ńŽóē åīõšēńåōēōŽ CUPS, äåķ ÷ńåéÜęåōįé ķį ńõčģßóåōå åźōõšłōŻņ \n"
-"åäž. Ļé åźōõšłōŻņ čį įķįćķłńéóōļżķ įõōüģįōį, åźōüņ įķ Ż÷åōå åīõšēńåōēōŽ\n"
-"óå äéįöļńåōéźü äßźōõļ. Óå įõōŽķ ōēķ šåńßšōłóē, čį šńŻšåé ķį äēėžóåōå ōēķ\n"
-"IP äéåżčõķóē ōļõ åīõšēńåōēōŽ CUPS źįé ßółņ źįé ōļķ įńéčģü čżńįņ."
-
-#: ../../printerdrake.pm_.c:69 ../../printerdrake.pm_.c:2454
-#, fuzzy
-msgid "CUPS configuration"
-msgstr "Ńżčģéóē LĮĶ"
-
-#: ../../printerdrake.pm_.c:70 ../../printerdrake.pm_.c:2455
-#, fuzzy
-msgid "Specify CUPS server"
-msgstr "ĮšļģåģįźńõóģŻķļņ åīõšēńåōēōŽņ CUPS"
-
-#: ../../printerdrake.pm_.c:71
-msgid ""
-"To get access to printers on remote CUPS servers in your local network you "
-"do not have to configure anything; the CUPS servers inform your machine "
-"automatically about their printers. All printers currently known to your "
-"machine are listed in the \"Remote printers\" section in the main window of "
-"Printerdrake. When your CUPS server is not in your local network, you have "
-"to enter the CUPS server IP address and optionally the port number to get "
-"the printer information from the server, otherwise leave these fields blank."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:72
-msgid ""
-"\n"
-"Normally, CUPS is automatically configured according to your network "
-"environment, so that you can access the printers on the CUPS servers in your "
-"local network. If this does not work correctly, turn off \"Automatic CUPS "
-"configuration\" and edit your file /etc/cups/cupsd.conf manually. Do not "
-"forget to restart CUPS afterwards (command: \"service cups restart\")."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:76
-msgid "The IP address should look like 192.168.1.20"
-msgstr "Ē IP äéåżčõķóē šńŻšåé ķį åßķįé óå ģļńöŽ 192.168.1.20"
-
-#: ../../printerdrake.pm_.c:80 ../../printerdrake.pm_.c:862
-msgid "The port number should be an integer!"
-msgstr "Ļ įńéčģüņ čżńįņ šńŻšåé ķį åßķįé įźŻńįéļņ įńéčģüņ!"
-
-#: ../../printerdrake.pm_.c:87
-msgid "CUPS server IP"
-msgstr "IP äéåżčõķóē åīõšēńåōēōŽ CUPS:"
-
-#: ../../printerdrake.pm_.c:88 ../../printerdrake.pm_.c:855
-msgid "Port"
-msgstr "Čżńį"
-
-#: ../../printerdrake.pm_.c:90
-#, fuzzy
-msgid "Automatic CUPS configuration"
-msgstr "Boot Ōżšļõ Ńżčģéóē"
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-#, fuzzy
-msgid "Detecting devices ..."
-msgstr "Åķōļšéóģüņ óõóźåõžķ..."
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-msgid "Test ports"
-msgstr "ÄļźéģŽ čõńžķ"
-
-#: ../../printerdrake.pm_.c:167 ../../printerdrake.pm_.c:2437
-#: ../../printerdrake.pm_.c:2556
-#, fuzzy
-msgid "Add a new printer"
-msgstr "Šńļó莟ē åźōõšłōŽ"
-
-#: ../../printerdrake.pm_.c:168
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard allows you to install local or remote printers to be used from "
-"this machine and also from other machines in the network.\n"
-"\n"
-"It asks you for all necessary information to set up the printer and gives "
-"you access to all available printer drivers, driver options, and printer "
-"connection types."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:176 ../../printerdrake.pm_.c:203
-#: ../../printerdrake.pm_.c:378 ../../printerdrake.pm_.c:393
-#: ../../printerdrake.pm_.c:403 ../../printerdrake.pm_.c:466
-#, fuzzy
-msgid "Local Printer"
-msgstr "Ōļšéźüņ åźōõšłōŽņ"
-
-#: ../../printerdrake.pm_.c:177
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard will help you to install your printer(s) connected to this "
-"computer.\n"
-"\n"
-"Please plug in your printer(s) on this computer and turn it/them on. Click "
-"on \"Next\" when you are ready, and on \"Cancel\" when you do not want to "
-"set up your printer(s) now.\n"
-"\n"
-"Note that some computers can crash during the printer auto-detection, turn "
-"off \"Auto-detect printers\" to do a printer installation without auto-"
-"detection. Use the \"Expert Mode\" of printerdrake when you want to set up "
-"printing on a remote printer if printerdrake does not list it automatically."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:186
-#, fuzzy
-msgid "Auto-detect printers"
-msgstr "ĮšļģåģįźńõóģŻķļņ åźōõšłōŽņ"
-
-#: ../../printerdrake.pm_.c:204
-msgid ""
-"\n"
-"Congratulations, your printer is now installed and configured!\n"
-"\n"
-"You can print using the \"Print\" command of your application (usually in "
-"the \"File\" menu).\n"
-"\n"
-"If you want to add, remove, or rename a printer, or if you want to change "
-"the default option settings (paper input tray, printout quality, ...), "
-"select \"Printer\" in the \"Hardware\" section of the Mandrake Control "
-"Center."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:223
-msgid "Auto-Detection of Printers"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:224
-msgid ""
-"Printerdrake is able to auto-detect your locally connected parallel and USB "
-"printers for you, but note that on some systems the auto-detection CAN "
-"FREEZE YOUR SYSTEM AND THIS CAN LEAD TO CORRUPTED FILE SYSTEMS! So do it ON "
-"YOUR OWN RISK!\n"
-"\n"
-"Do you really want to get your printers auto-detected?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:227 ../../printerdrake.pm_.c:229
-#: ../../printerdrake.pm_.c:230
-#, fuzzy
-msgid "Do auto-detection"
-msgstr "×ńŽóē įõōüģįōēņ įķß÷ķåõóēņ"
-
-#: ../../printerdrake.pm_.c:228
-#, fuzzy
-msgid "Set up printer manually"
-msgstr "ĮšļģåģįźńõóģŻķļņ åźōõšłōŽņ"
-
-#: ../../printerdrake.pm_.c:256
-#, fuzzy, c-format
-msgid "Detected %s"
-msgstr "įķé÷ķåżčēźå ōļ %s"
-
-#: ../../printerdrake.pm_.c:260 ../../printerdrake.pm_.c:287
-#: ../../printerdrake.pm_.c:306
-#, c-format
-msgid "Printer on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:262 ../../printerdrake.pm_.c:289
-#: ../../printerdrake.pm_.c:311
-#, c-format
-msgid "USB printer \\/*%s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:379
-msgid ""
-"No local printer found! To manually install a printer enter a device name/"
-"file name in the input line (Parallel Ports: /dev/lp0, /dev/lp1, ..., "
-"equivalent to LPT1:, LPT2:, ..., 1st USB printer: /dev/usb/lp0, 2nd USB "
-"printer: /dev/usb/lp1, ...)."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:383
-#, fuzzy
-msgid "You must enter a device or file name!"
-msgstr "ÓõóźåõŽ åźōõšłōŽ URI"
-
-#: ../../printerdrake.pm_.c:394
-#, fuzzy
-msgid ""
-"No local printer found!\n"
-"\n"
-msgstr "Ōļšéźüņ åźōõšłōŽņ"
-
-#: ../../printerdrake.pm_.c:395
-msgid ""
-"Network printers can only be installed after the installation. Choose "
-"\"Hardware\" and then \"Printer\" in the Mandrake Control Center."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:396
-msgid ""
-"To install network printers, click \"Cancel\", switch to the \"Expert Mode"
-"\", and click \"Add a new printer\" again."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:407
-msgid ""
-"The following printer was auto-detected, if it is not the one you want to "
-"configure, enter a device name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:408
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up or enter a device name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:410
-msgid ""
-"The following printer was auto-detected. The configuration of the printer "
-"will work fully automatically. If your printer was not correctly detected or "
-"if you prefer a customized printer configuration, turn on \"Manual "
-"configuration\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:411
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up. The configuration of the printer will work fully "
-"automatically. If your printer was not correctly detected or if you prefer a "
-"customized printer configuration, turn on \"Manual configuration\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:413
-msgid ""
-"Please choose the port where your printer is connected to or enter a device "
-"name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:414
-#, fuzzy
-msgid "Please choose the port where your printer is connected to."
-msgstr "Óå šļéÜ óåéńéįźŽ šüńōį åßķįé óõķäåäåģŻķļ ōļ modem óįņ;"
-
-#: ../../printerdrake.pm_.c:416
-msgid ""
-" (Parallel Ports: /dev/lp0, /dev/lp1, ..., equivalent to LPT1:, LPT2:, ..., "
-"1st USB printer: /dev/usb/lp0, 2nd USB printer: /dev/usb/lp1, ...)."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:421
-#, fuzzy
-msgid "You must choose/enter a printer/device!"
-msgstr "ÓõóźåõŽ åźōõšłōŽ URI"
-
-#: ../../printerdrake.pm_.c:441
-#, fuzzy
-msgid "Manual configuration"
-msgstr "Ńõčģßóåéņ ÷ńłģÜōłķ"
-
-#: ../../printerdrake.pm_.c:467
-msgid ""
-"Is your printer a multi-function device from HP (OfficeJet, PSC, PhotoSmart, "
-"LaserJet 1100/1200/1220/3200/3300 with scanner)?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:482
-#, fuzzy
-msgid "Installing HPOJ package..."
-msgstr "ÅćźįōÜóōįóē šįźŻōļõ %s"
-
-#: ../../printerdrake.pm_.c:487
-msgid "Checking device and configuring HPOJ ..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:505
-#, fuzzy
-msgid "Installing SANE package..."
-msgstr "ÅćźįōÜóōįóē šįźŻōļõ %s"
-
-#: ../../printerdrake.pm_.c:517
-msgid "Scanning on your HP multi-function device"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:534
-#, fuzzy
-msgid "Making printer port available for CUPS ..."
-msgstr "ĮķÜćķłóē āÜóēņ ļäēćžķ CUPS"
-
-#: ../../printerdrake.pm_.c:544 ../../printerdrake.pm_.c:1018
-#: ../../printerdrake.pm_.c:1132
-#, fuzzy
-msgid "Reading printer database ..."
-msgstr "ĮķÜćķłóē āÜóēņ ļäēćžķ CUPS"
-
-#: ../../printerdrake.pm_.c:624
-msgid "Remote lpd Printer Options"
-msgstr "ÅšéėļćŻņ įšļģåģįźńõóģŻķļõ lpd åźōõšłōŽ"
-
-#: ../../printerdrake.pm_.c:625
-#, fuzzy
-msgid ""
-"To use a remote lpd printer, you need to supply the hostname of the printer "
-"server and the printer name on that server."
-msgstr ""
-"Ćéį ķį ÷ńēóéģļšļéŽóåōå ģéį įšļģåģįźńõóģŻķē ļõńÜ åźōżšłóēņ\n"
-"lpd, šńŻšåé ķį äžóåōå ōļ äéźōõįźü üķļģį ōļõ åīõšēńåōēōŽ \n"
-"åźōõšžóåłķ, źįčžņ źįé ōļ üķļģį ōēņ ļõńÜņ ōēķ ļšļßį čį \n"
-"÷ńēóéģļšļéŽóåōå óå įõōüķ ōļķ åīõšēńåōēōŽ."
-
-#: ../../printerdrake.pm_.c:626
-#, fuzzy
-msgid "Remote host name"
-msgstr "ĮšļģåģįźńõóģŻķļ äéźōõįźü üķļģį:"
-
-#: ../../printerdrake.pm_.c:627
-#, fuzzy
-msgid "Remote printer name"
-msgstr "ĮšļģåģįźńõóģŻķļņ åźōõšłōŽņ"
-
-#: ../../printerdrake.pm_.c:630
-msgid "Remote host name missing!"
-msgstr "ĮšļģåģįźńõóģŻķļ äéźōõįźü üķļģį ėåßšåé!"
-
-#: ../../printerdrake.pm_.c:634
-#, fuzzy
-msgid "Remote printer name missing!"
-msgstr "ĮšļģåģįźńõóģŻķļ äéźōõįźü üķļģį ėåßšåé!"
-
-#: ../../printerdrake.pm_.c:702
-msgid "SMB (Windows 9x/NT) Printer Options"
-msgstr "ÅšéėļćŻņ åźōõšłōŽ SMB (Windows 9x/NT)"
-
-#: ../../printerdrake.pm_.c:703
-#, fuzzy
-msgid ""
-"To print to a SMB printer, you need to provide the SMB host name (Note! It "
-"may be different from its TCP/IP hostname!) and possibly the IP address of "
-"the print server, as well as the share name for the printer you wish to "
-"access and any applicable user name, password, and workgroup information."
-msgstr ""
-"Ćéį ķį åźōõšžóåōå óå Żķįķ SMB åźōõšłōŽ, šńŻšåé ķį äžóåōå ōļ \n"
-"SMB äéźōõįźü üķļģį (Óēģåßłóē! Ģšļńåß ķį åßķįé äéįöļńåōéźü įšü \n"
-"ōļ äéźōõįźü üķļģį TCP/IP!) źįé ßółņ źįé ōēķ äéåżčõķóē IP ōļõ \n"
-"åīõšēńåōēōŽ åźōõšžóåłķ, ōļ üķļģį ōļõ åźōõšłōŽ óōļķ ļšļßļ åšéčõģåßōå \n"
-"šńüóāįóē, źįčžņ źįé ļšļéį䎚ļōå įšįńįßōēōē šėēńļöļńßį šåńß źłäéźļż \n"
-"÷ńŽóōē, ėŻīēņ źėåéäß źįé ōļģŻį Ž ļģÜäįņ åńćįóßįņ."
-
-#: ../../printerdrake.pm_.c:704
-msgid "SMB server host"
-msgstr "Äéźōõįźü üķļģį SMB åīõšēńåōēōŽ:"
-
-#: ../../printerdrake.pm_.c:705
-msgid "SMB server IP"
-msgstr "IP äéåżčõķóē SMB åīõšēńåōēōŽ:"
-
-#: ../../printerdrake.pm_.c:706
-msgid "Share name"
-msgstr "¼ķļģį šüńļõ:"
-
-#: ../../printerdrake.pm_.c:709
-msgid "Workgroup"
-msgstr "ĻģÜäį åńćįóßįņ:"
-
-#: ../../printerdrake.pm_.c:716
-msgid "Either the server name or the server's IP must be given!"
-msgstr "Åßōå ōļ üķļģį ōļõ åīõšēńåōēōŽ Ž ē IP ōļõ šńŻšåé ķį äļčļżķ!"
-
-#: ../../printerdrake.pm_.c:720
-msgid "Samba share name missing!"
-msgstr "Ōļ üķļģį ćéį ōēķ Samba ėåßšåé!"
-
-#: ../../printerdrake.pm_.c:725
-msgid "SECURITY WARNING!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:726
-#, c-format
-msgid ""
-"You are about to set up printing to a Windows account with password. Due to "
-"a fault in the architecture of the Samba client software the password is put "
-"in clear text into the command line of the Samba client used to transmit the "
-"print job to the Windows server. So it is possible for every user on this "
-"machine to display the password on the screen by issuing commands as \"ps "
-"auxwww\".\n"
-"\n"
-"We recommend to make use of one of the following alternatives (in all cases "
-"you have to make sure that only machines from your local network have access "
-"to your Windows server, for example by means of a firewall):\n"
-"\n"
-"Use a password-less account on your Windows server, as the \"GUEST\" account "
-"or a special account dedicated for printing. Do not remove the password "
-"protection from a personal account or the administrator account.\n"
-"\n"
-"Set up your Windows server to make the printer available under the LPD "
-"protocol. Then set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:736
-#, c-format
-msgid ""
-"Set up your Windows server to make the printer available under the IPP "
-"protocol and set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:739
-msgid ""
-"Connect your printer to a Linux server and let your Windows machine(s) "
-"connect to it as a client.\n"
-"\n"
-"Do you really want to continue setting up this printer as you are doing now?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:801
-msgid "NetWare Printer Options"
-msgstr "ÅšéėļćŻņ åźōõšłōŽ NetWare"
-
-#: ../../printerdrake.pm_.c:802
-#, fuzzy
-msgid ""
-"To print on a NetWare printer, you need to provide the NetWare print server "
-"name (Note! it may be different from its TCP/IP hostname!) as well as the "
-"print queue name for the printer you wish to access and any applicable user "
-"name and password."
-msgstr ""
-"Ćéį ķį åźōõšžóåōå óå Żķįķ åźōõšłōŽ NetWare, šńŻšåé ķį äžóåōå\n"
-"ōļ üķļģį ōļõ åīõšēńåōēōŽ åźōõšžóåłķ NetWare (Óēģåßłóē! Ģšļńåß\n"
-"ķį åßķįé äéįöļńåōéźü įšü ōļ äéźōõįźü üķļģį TCP/IP!), \n"
-"ōļ üķļģį ōļõ åźōõšłōŽ óōļķ ļšļßļ åšéčõģåßōå šńüóāįóē, źįčžņ źįé\n"
-"ļšļéį䎚ļōå įšįńįßōēōē šėēńļöļńßį šåńß źłäéźļż ÷ńŽóōē źįé ėŻīēņ źėåéäß."
-
-#: ../../printerdrake.pm_.c:803
-msgid "Printer Server"
-msgstr "ÅīõšēńåōēōŽņ åźōõšžóåłķ"
-
-#: ../../printerdrake.pm_.c:804
-msgid "Print Queue Name"
-msgstr "¼ķļģį ļõńÜņ åźōõšłōŽ"
-
-#: ../../printerdrake.pm_.c:809
-msgid "NCP server name missing!"
-msgstr "Ōļ üķļģį ōļõ åīõšēńåōēōŽ NCP ėåßšåé!"
-
-#: ../../printerdrake.pm_.c:813
-msgid "NCP queue name missing!"
-msgstr "Ōļ üķļģį ōēņ NCP ļõńÜņ ėåßšåé!"
-
-#: ../../printerdrake.pm_.c:852
-#, fuzzy
-msgid "TCP/Socket Printer Options"
-msgstr "ÅšéėļćŻņ åźōõšłōŽ socket"
-
-#: ../../printerdrake.pm_.c:853
-#, fuzzy
-msgid ""
-"To print to a TCP or socket printer, you need to provide the host name of "
-"the printer and optionally the port number. On HP JetDirect servers the port "
-"number is usually 9100, on other servers it can vary. See the manual of your "
-"hardware."
-msgstr ""
-"Ćéį ķį åźōõšžóåōå óå Żķįķ åźōõšłōŽ socket, šńŻšåé ķį äžóåōå ōļ \n"
-"äéźōõįźü üķļģį ōļõ åźōõšłōŽ źįé šńļįéńåōéźÜ ōļķ įńéčģü čżńįņ."
-
-#: ../../printerdrake.pm_.c:854
-#, fuzzy
-msgid "Printer host name"
-msgstr "¼ķļģį åźōõšłōŽ"
-
-#: ../../printerdrake.pm_.c:858
-msgid "Printer host name missing!"
-msgstr "¼ķļģį åźōõšłōŽ ėåßšåé!"
-
-#: ../../printerdrake.pm_.c:887 ../../printerdrake.pm_.c:889
-msgid "Printer Device URI"
-msgstr "ÓõóźåõŽ åźōõšłōŽ URI"
-
-#: ../../printerdrake.pm_.c:888
-#, fuzzy
-msgid ""
-"You can specify directly the URI to access the printer. The URI must fulfill "
-"either the CUPS or the Foomatic specifications. Note that not all URI types "
-"are supported by all the spoolers."
-msgstr ""
-"Ģšļńåßōå ķį ļńßóåōå źįōåõčåßįķ ōļ URI ćéį ōēķ šńüóāįóē óōļķ åźōõšłōŽ. Ōļ URI "
-"šńŻšåé ķį ōēńåß åßōå ōéņ CUPS åßōå ōéņ Foomatic šńļäéįćńįöŻņ. ¼÷é šłņ äåķ "
-"õšļóōēńßęļķōįé üėļé ļé URI ōżšļé įšü üėį ōį spoolers."
-
-#: ../../printerdrake.pm_.c:903
-msgid "A valid URI must be entered!"
-msgstr "øķį ółóōü URI šńŻšåé ķį åéóį÷čåß!"
-
-#: ../../printerdrake.pm_.c:1004
-#, fuzzy
-msgid ""
-"Every printer needs a name (for example \"printer\"). The Description and "
-"Location fields do not need to be filled in. They are comments for the users."
-msgstr ""
-"ŹÜčå åźōõšłēņ ÷ńåéÜęåōįé Żķį üķļģį (š.÷. lp).\n"
-"Ōį šåäßį ŠåńéćńįöŽ źįé Ōļšļčåóßį äåķ ÷ńåéÜęåōįé ķį \n"
-"óõģšėēńłčļżķ. Åßķįé įšėÜ ó÷üėéį ćéį ōļõņ ÷ńŽóōåņ."
-
-#: ../../printerdrake.pm_.c:1005
-msgid "Name of printer"
-msgstr "¼ķļģį åźōõšłōŽ"
-
-#: ../../printerdrake.pm_.c:1006
-msgid "Description"
-msgstr "ŠåńéćńįöŽ"
-
-#: ../../printerdrake.pm_.c:1007
-msgid "Location"
-msgstr "Ōļšļčåóßį"
-
-#: ../../printerdrake.pm_.c:1021
-#, fuzzy
-msgid "Preparing printer database ..."
-msgstr "ĮķÜćķłóē āÜóēņ ļäēćžķ CUPS"
-
-#: ../../printerdrake.pm_.c:1112
-#, fuzzy
-msgid "Your printer model"
-msgstr "ĮšļģåģįźńõóģŻķļņ åźōõšłōŽņ"
-
-#: ../../printerdrake.pm_.c:1113
-#, c-format
-msgid ""
-"Printerdrake has compared the model name resulting from the printer auto-"
-"detection with the models listed in its printer database to find the best "
-"match. This choice can be wrong, especially when your printer is not listed "
-"at all in the database. So check whether the choice is correct and click "
-"\"The model is correct\" if so and if not, click \"Select model manually\" "
-"so that you can choose your printer model manually on the next screen.\n"
-"\n"
-"For your printer Printerdrake has found:\n"
-"\n"
-"%s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1118 ../../printerdrake.pm_.c:1121
-#, fuzzy
-msgid "The model is correct"
-msgstr "Ółóōü;"
-
-#: ../../printerdrake.pm_.c:1119 ../../printerdrake.pm_.c:1120
-#: ../../printerdrake.pm_.c:1123
-#, fuzzy
-msgid "Select model manually"
-msgstr "ĮšļģåģįźńõóģŻķļņ åźōõšłōŽņ"
-
-#: ../../printerdrake.pm_.c:1139
-msgid "Printer model selection"
-msgstr "ÅšéėļćŽ ģļķōŻėļõ åźōõšłōŽ"
-
-#: ../../printerdrake.pm_.c:1140
-msgid "Which printer model do you have?"
-msgstr "Ōß ōżšļõ åźōõšłōŽ Ż÷åōå;"
-
-#: ../../printerdrake.pm_.c:1141
-msgid ""
-"\n"
-"\n"
-"Please check whether Printerdrake did the auto-detection of your printer "
-"model correctly. Search the correct model in the list when the cursor is "
-"standing on a wrong model or on \"Raw printer\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1144
-msgid ""
-"If your printer is not listed, choose a compatible (see printer manual) or a "
-"similar one."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1220
-#, fuzzy
-msgid "OKI winprinter configuration"
-msgstr "Ńõčģßóåéņ Äéįäéźōżļõ (Internet)"
-
-#: ../../printerdrake.pm_.c:1221
-msgid ""
-"You are configuring an OKI laser winprinter. These printers\n"
-"use a very special communication protocol and therefore they work only when "
-"connected to the first parallel port. When your printer is connected to "
-"another port or to a print server box please connect the printer to the "
-"first parallel port before you print a test page. Otherwise the printer will "
-"not work. Your connection type setting will be ignored by the driver."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1264 ../../printerdrake.pm_.c:1291
-#, fuzzy
-msgid "Lexmark inkjet configuration"
-msgstr "Ńõčģßóåéņ Äéįäéźōżļõ (Internet)"
-
-#: ../../printerdrake.pm_.c:1265
-msgid ""
-"The inkjet printer drivers provided by Lexmark only support local printers, "
-"no printers on remote machines or print server boxes. Please connect your "
-"printer to a local port or configure it on the machine where it is connected "
-"to."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1292
-msgid ""
-"To be able to print with your Lexmark inkjet and this configuration, you "
-"need the inkjet printer drivers provided by Lexmark (http://www.lexmark."
-"com/). Go to the US site and click on the \"Drivers\" button. Then choose "
-"your model and afterwards \"Linux\" as operating system. The drivers come as "
-"RPM packages or shell scripts with interactive graphical installation. You "
-"do not need to do this configuration by the graphical frontends. Cancel "
-"directly after the license agreement. Then print printhead alignment pages "
-"with \"lexmarkmaintain\" and adjust the head alignment settings with this "
-"program."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1508
-msgid ""
-"Printer default settings\n"
-"\n"
-"You should make sure that the page size and the ink type/printing mode (if "
-"available) and also the hardware configuration of laser printers (memory, "
-"duplex unit, extra trays) are set correctly. Note that with a very high "
-"printout quality/resolution printing can get substantially slower."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1517
-#, c-format
-msgid "Option %s must be an integer number!"
-msgstr "ÅšéėļćŽ %s šńŻšåé ķį åßķįé įźŻńįéļņ įńéčģüņ!"
-
-#: ../../printerdrake.pm_.c:1521
-#, c-format
-msgid "Option %s must be a number!"
-msgstr "ÅšéėļćŽ %s šńŻšåé ķį åßķįé įńéčģüņ!"
-
-#: ../../printerdrake.pm_.c:1526
-#, c-format
-msgid "Option %s out of range!"
-msgstr "ÅšéėļćŽ %s åźōüņ ļńßļõ!"
-
-#: ../../printerdrake.pm_.c:1565
-#, fuzzy, c-format
-msgid ""
-"Do you want to set this printer (\"%s\")\n"
-"as the default printer?"
-msgstr "ČŻėåōå ķį åźōõšžóåōå ģéį äļźéģįóō韎 óåėßäį;"
-
-#: ../../printerdrake.pm_.c:1582
-#, fuzzy
-msgid "Test pages"
-msgstr "ÄļźéģŽ čõńžķ"
-
-#: ../../printerdrake.pm_.c:1583
-msgid ""
-"Please select the test pages you want to print.\n"
-"Note: the photo test page can take a rather long time to get printed and on "
-"laser printers with too low memory it can even not come out. In most cases "
-"it is enough to print the standard test page."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1587
-msgid "No test pages"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1588
-#, fuzzy
-msgid "Print"
-msgstr "ÅźōõšłōŽņ"
-
-#: ../../printerdrake.pm_.c:1590
-#, fuzzy
-msgid "Standard test page"
-msgstr "Ōõšéźü"
-
-#: ../../printerdrake.pm_.c:1593
-msgid "Alternative test page (Letter)"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1596
-#, fuzzy
-msgid "Alternative test page (A4)"
-msgstr "Åźōżšłóē äļźéģįóōéźžķ óåėßäłķ..."
-
-#: ../../printerdrake.pm_.c:1598
-#, fuzzy
-msgid "Photo test page"
-msgstr "Åźōżšłóē äļźéģįóōéźžķ óåėßäłķ..."
-
-#: ../../printerdrake.pm_.c:1602
-#, fuzzy
-msgid "Do not print any test page"
-msgstr "Åźōżšłóē äļźéģįóōéźžķ óåėßäłķ..."
-
-#: ../../printerdrake.pm_.c:1610 ../../printerdrake.pm_.c:1747
-msgid "Printing test page(s)..."
-msgstr "Åźōżšłóē äļźéģįóōéźžķ óåėßäłķ..."
-
-#: ../../printerdrake.pm_.c:1635
-#, fuzzy, c-format
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-"Printing status:\n"
-"%s\n"
-"\n"
-msgstr ""
-"Ģßį Ž šåńéóóüōåńåņ äļźéģįóō韯ņ óåėßäåņ óōÜėčēźįķ óōļķ åźōõšłōŽ.\n"
-"Ģšļńåß ķį šåńÜóåé źÜšļéļņ ÷ńüķļņ ģŻ÷ńé ē åźōżšłóē ķį īåźéķŽóåé.\n"
-"ŹįōÜóōįóē åźōżšłóēņ:\n"
-"%s\n"
-"\n"
-"øćéķå ółóōÜ ē åźōżšłóē"
-
-#: ../../printerdrake.pm_.c:1639
-#, fuzzy
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-msgstr ""
-"Ģßį Ž šåńéóóüōåńåņ äļźéģįóō韯ņ óåėßäåņ óōÜėčēźįķ óōļķ åźōõšłōŽ.\n"
-"Ģšļńåß ķį šåńÜóåé źÜšļéļņ ÷ńüķļņ ģŻ÷ńé ē åźōżšłóē ķį īåźéķŽóåé.\n"
-"øćéķå ółóōÜ ē åźōżšłóē;"
-
-#: ../../printerdrake.pm_.c:1646
-msgid "Did it work properly?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1667 ../../printerdrake.pm_.c:2732
-#, fuzzy
-msgid "Raw printer"
-msgstr "ŹįķŻķįņ åźōõšłōŽņ"
-
-#: ../../printerdrake.pm_.c:1685
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) you can either use "
-"the command \"%s <file>\" or a graphical printing tool: \"xpp <file>\" or "
-"\"kprinter <file>\". The graphical tools allow you to choose the printer and "
-"to modify the option settings easily.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1687
-msgid ""
-"These commands you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications, but here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1690 ../../printerdrake.pm_.c:1706
-#: ../../printerdrake.pm_.c:1716
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" command also allows to modify the option settings for a "
-"particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\". "
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1693 ../../printerdrake.pm_.c:1732
-#, c-format
-msgid ""
-"To know about the options available for the current printer read either the "
-"list shown below or click on the \"Print option list\" button.%s\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1696
-msgid ""
-"Here is a list of the available printing options for the current printer:\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1701 ../../printerdrake.pm_.c:1711
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\".\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1703 ../../printerdrake.pm_.c:1713
-#: ../../printerdrake.pm_.c:1723
-msgid ""
-"This command you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications. But here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1708 ../../printerdrake.pm_.c:1718
-msgid ""
-"To get a list of the options available for the current printer click on the "
-"\"Print option list\" button."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1721
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\" or \"%s <file>\".\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1725
-msgid ""
-"You can also use the graphical interface \"xpdq\" for setting options and "
-"handling printing jobs.\n"
-"If you are using KDE as desktop environment you have a \"panic button\", an "
-"icon on the desktop, labeled with \"STOP Printer!\", which stops all print "
-"jobs immediately when you click it. This is for example useful for paper "
-"jams.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1729
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" and \"%s\" commands also allow to modify the option settings for "
-"a particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\".\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1738 ../../printerdrake.pm_.c:1744
-#: ../../printerdrake.pm_.c:1745 ../../printerdrake.pm_.c:1746
-#: ../../printerdrake.pm_.c:2716 ../../standalone/drakbackup_.c:754
-#: ../../standalone/drakbackup_.c:2458 ../../standalone/drakfont_.c:577
-#: ../../standalone/drakfont_.c:791
-msgid "Close"
-msgstr "Źėåßóéģļ"
-
-#: ../../printerdrake.pm_.c:1741 ../../printerdrake.pm_.c:1753
-#, fuzzy, c-format
-msgid "Printing/Scanning on \"%s\""
-msgstr "ÄéįźļšŽ ėåéōļõńćßįņ äéźōżļõ."
-
-#: ../../printerdrake.pm_.c:1742 ../../printerdrake.pm_.c:1754
-#, fuzzy, c-format
-msgid "Printing on the printer \"%s\""
-msgstr "ÄéįźļšŽ ėåéōļõńćßįņ äéźōżļõ."
-
-#: ../../printerdrake.pm_.c:1744
-#, fuzzy
-msgid "Print option list"
-msgstr "ÅšéėļćŻņ åźōõšłōŽ"
-
-#: ../../printerdrake.pm_.c:1766
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan with \"scanimage\" (\"scanimage -d hp:%s\" to specify "
-"the scanner when you have more than one) from the command line or with the "
-"graphical interfaces \"xscanimage\" or \"xsane\". If you are using the GIMP, "
-"you can also scan by choosing the appropriate point in the \"File\"/\"Acquire"
-"\" menu. Call also \"man scanimage\" and \"man sane-hp\" on the command line "
-"to get more information.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1772
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan from the command line with \"ptal-hp %s scan ...\". "
-"Scanning via a graphical interface or from the GIMP is not supported yet for "
-"your device. More information you will find in the \"/usr/share/doc/hpoj-0.8/"
-"ptal-hp-scan.html\" file on your system. If you have an HP LaserJet 1100 or "
-"1200 you can only scan when you have the scanner option installed.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1794 ../../printerdrake.pm_.c:2221
-#: ../../printerdrake.pm_.c:2485 ../../standalone/printerdrake_.c:49
-msgid "Reading printer data ..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1814 ../../printerdrake.pm_.c:1842
-#: ../../printerdrake.pm_.c:1877
-#, fuzzy
-msgid "Transfer printer configuration"
-msgstr "Ńõčģßóåéņ Äéįäéźōżļõ (Internet)"
-
-#: ../../printerdrake.pm_.c:1815
-#, c-format
-msgid ""
-"You can copy the printer configuration which you have done for the spooler %"
-"s to %s, your current spooler. All the configuration data (printer name, "
-"description, location, connection type, and default option settings) is "
-"overtaken, but jobs will not be transferred.\n"
-"Not all queues can be transferred due to the following reasons:\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1818
-msgid ""
-"CUPS does not support printers on Novell servers or printers sending the "
-"data into a free-formed command.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1820
-msgid ""
-"PDQ only supports local printers, remote LPD printers, and Socket/TCP "
-"printers.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1822
-msgid "LPD and LPRng do not support IPP printers.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1824
-msgid ""
-"In addition, queues not created with this program or \"foomatic-configure\" "
-"cannot be transferred."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1825
-msgid ""
-"\n"
-"Also printers configured with the PPD files provided by their manufacturers "
-"or with native CUPS drivers cannot be transferred."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1826
-msgid ""
-"\n"
-"Mark the printers which you want to transfer and click \n"
-"\"Transfer\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1829
-msgid "Do not transfer printers"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1830 ../../printerdrake.pm_.c:1847
-msgid "Transfer"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1843
-#, c-format
-msgid ""
-"A printer named \"%s\" already exists under %s. \n"
-"Click \"Transfer\" to overwrite it.\n"
-"You can also type a new name or skip this printer."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1851
-msgid "Name of printer should contain only letters, numbers and the underscore"
-msgstr ""
-"Ōļ üķļģį ōļõ åźōõšłōŽ šńŻšåé ķį šåńéŻ÷åé ģüķļ ćńÜģģįōį, įńéčģļżņ źįé ōļķ "
-"÷įńįźōŽńį underscore"
-
-#: ../../printerdrake.pm_.c:1856
-#, c-format
-msgid ""
-"The printer \"%s\" already exists,\n"
-"do you really want to overwrite its configuration?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1864
-#, fuzzy
-msgid "New printer name"
-msgstr "ŹįķŻķįņ åźōõšłōŽņ"
-
-#: ../../printerdrake.pm_.c:1867
-#, c-format
-msgid "Transferring %s ..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1878
-#, c-format
-msgid ""
-"You have transferred your former default printer (\"%s\"), Should it be also "
-"the default printer under the new printing system %s?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1887
-#, fuzzy
-msgid "Refreshing printer data ..."
-msgstr "ĮķÜćķłóē āÜóēņ ļäēćžķ CUPS"
-
-#: ../../printerdrake.pm_.c:1895 ../../printerdrake.pm_.c:1966
-#: ../../printerdrake.pm_.c:1978
-msgid "Configuration of a remote printer"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1896
-#, fuzzy
-msgid "Starting network ..."
-msgstr "Åźźßķēóē óżķäåóēņ..."
-
-#: ../../printerdrake.pm_.c:1930 ../../printerdrake.pm_.c:1934
-#: ../../printerdrake.pm_.c:1936
-#, fuzzy
-msgid "Configure the network now"
-msgstr "Ńżčģéóē äéźōżļõ"
-
-#: ../../printerdrake.pm_.c:1931
-#, fuzzy
-msgid "Network functionality not configured"
-msgstr "Ē ļčüķē äåķ Ż÷åé ńõčģéóōåß įźüģē"
-
-#: ../../printerdrake.pm_.c:1932
-msgid ""
-"You are going to configure a remote printer. This needs working network "
-"access, but your network is not configured yet. If you go on without network "
-"configuration, you will not be able to use the printer which you are "
-"configuring now. How do you want to proceed?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1935
-#, fuzzy
-msgid "Go on without configuring the network"
-msgstr "Ńżčģéóē äéźōżļõ"
-
-#: ../../printerdrake.pm_.c:1968
-msgid ""
-"The network configuration done during the installation cannot be started "
-"now. Please check whether the network gets accessable after booting your "
-"system and correct the configuration using the Mandrake Control Center, "
-"section \"Network & Internet\"/\"Connection\", and afterwards set up the "
-"printer, also using the Mandrake Control Center, section \"Hardware\"/"
-"\"Printer\""
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1969
-msgid ""
-"The network access was not running and could not be started. Please check "
-"your configuration and your hardware. Then try to configure your remote "
-"printer again."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1979
-#, fuzzy
-msgid "Restarting printing system ..."
-msgstr "Šļéü óżóōēģį åźōżšłóēņ čŻėåōå ķį ÷ńēóéģļšļéŽóåōå;"
-
-#: ../../printerdrake.pm_.c:2017
-#, fuzzy
-msgid "high"
-msgstr "Õųēėü"
-
-#: ../../printerdrake.pm_.c:2017
-#, fuzzy
-msgid "paranoid"
-msgstr "Šįńįķļśźü"
-
-#: ../../printerdrake.pm_.c:2018
-#, c-format
-msgid "Installing a printing system in the %s security level"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2019
-#, c-format
-msgid ""
-"You are about to install the printing system %s on a system running in the %"
-"s security level.\n"
-"\n"
-"This printing system runs a daemon (background process) which waits for "
-"print jobs and handles them. This daemon is also accessable by remote "
-"machines through the network and so it is a possible point for attacks. "
-"Therefore only a few selected daemons are started by default in this "
-"security level.\n"
-"\n"
-"Do you really want to configure printing on this machine?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2051
-#, fuzzy
-msgid "Starting the printing system at boot time"
-msgstr "Šļéü óżóōēģį åźōżšłóēņ čŻėåōå ķį ÷ńēóéģļšļéŽóåōå;"
-
-#: ../../printerdrake.pm_.c:2052
-#, c-format
-msgid ""
-"The printing system (%s) will not be started automatically when the machine "
-"is booted.\n"
-"\n"
-"It is possible that the automatic starting was turned off by changing to a "
-"higher security level, because the printing system is a potential point for "
-"attacks.\n"
-"\n"
-"Do you want to have the automatic starting of the printing system turned on "
-"again?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2075 ../../printerdrake.pm_.c:2113
-#: ../../printerdrake.pm_.c:2143 ../../printerdrake.pm_.c:2176
-#: ../../printerdrake.pm_.c:2281
-msgid "Checking installed software..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2117
-msgid "Removing LPRng..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2147
-msgid "Removing LPD..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2205
-msgid "Select Printer Spooler"
-msgstr "ÅšéėļćŽ Spooler EźōõšłōŽ"
-
-#: ../../printerdrake.pm_.c:2206
-msgid "Which printing system (spooler) do you want to use?"
-msgstr "Šļéü óżóōēģį åźōżšłóēņ čŻėåōå ķį ÷ńēóéģļšļéŽóåōå;"
-
-#: ../../printerdrake.pm_.c:2239
-#, fuzzy, c-format
-msgid "Configuring printer \"%s\" ..."
-msgstr "Ńżčģéóē åźōõšłōŽ"
-
-#: ../../printerdrake.pm_.c:2252
-#, fuzzy
-msgid "Installing Foomatic ..."
-msgstr "ÅćźįōÜóōįóē šįźŻōļõ %s"
-
-#: ../../printerdrake.pm_.c:2309 ../../printerdrake.pm_.c:2348
-#: ../../printerdrake.pm_.c:2733 ../../printerdrake.pm_.c:2803
-msgid "Printer options"
-msgstr "ÅšéėļćŻņ åźōõšłōŽ"
-
-#: ../../printerdrake.pm_.c:2318
-msgid "Preparing PrinterDrake ..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2335 ../../printerdrake.pm_.c:2890
-#, fuzzy
-msgid "Configuring applications..."
-msgstr "Ńżčģéóē åźōõšłōŽ"
-
-#: ../../printerdrake.pm_.c:2355
-msgid "Would you like to configure printing?"
-msgstr "Čį čŻėįōå ķį ńõčģßóåōå Żķįķ åźōõšłōŽ;"
-
-#: ../../printerdrake.pm_.c:2367
-msgid "Printing system: "
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2415
-#, fuzzy
-msgid "Printerdrake"
-msgstr "ÅźōõšłōŽņ"
-
-#: ../../printerdrake.pm_.c:2419
-#, fuzzy
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; to view information about it; "
-"or to make a printer on a remote CUPS server available for Star Office/"
-"OpenOffice.org."
-msgstr ""
-"ÕšÜń÷ļõķ ļé įźüėļõčåņ ļõńŻņ åźōżšłóēņ.\n"
-"Ģšļńåßōå ķį šńļóčŻóåōå źé Üėėåņ Ž ķį įėėÜīåōå ōéņ õšÜń÷ļõóåņ."
-
-#: ../../printerdrake.pm_.c:2420
-#, fuzzy
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; or to view information about "
-"it."
-msgstr ""
-"ÕšÜń÷ļõķ ļé įźüėļõčåņ ļõńŻņ åźōżšłóēņ.\n"
-"Ģšļńåßōå ķį šńļóčŻóåōå źé Üėėåņ Ž ķį įėėÜīåōå ōéņ õšÜń÷ļõóåņ."
-
-#: ../../printerdrake.pm_.c:2446
-msgid "Refresh printer list (to display all available remote CUPS printers)"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2464
-#, fuzzy
-msgid "Change the printing system"
-msgstr "Ńżčģéóē äéźōżļõ"
-
-#: ../../printerdrake.pm_.c:2469 ../../standalone/draknet_.c:278
-msgid "Normal Mode"
-msgstr "Źįķļķ韎 ŹįōÜóōįóē"
-
-#: ../../printerdrake.pm_.c:2625 ../../printerdrake.pm_.c:2675
-#: ../../printerdrake.pm_.c:2884
-#, fuzzy
-msgid "Do you want to configure another printer?"
-msgstr "ČŻėåōå ķį äļźéģÜóåōå ōéņ ńõčģßóåéņ;"
-
-#: ../../printerdrake.pm_.c:2711
-#, fuzzy
-msgid "Modify printer configuration"
-msgstr "Ńõčģßóåéņ Äéįäéźōżļõ (Internet)"
-
-#: ../../printerdrake.pm_.c:2713
-#, fuzzy, c-format
-msgid ""
-"Printer %s\n"
-"What do you want to modify on this printer?"
-msgstr "ČŻėåōå ķį äļźéģÜóåōå ōéņ ńõčģßóåéņ;"
-
-#: ../../printerdrake.pm_.c:2717
-msgid "Do it!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2722 ../../printerdrake.pm_.c:2777
-#, fuzzy
-msgid "Printer connection type"
-msgstr "Óżķäåóē Internet"
-
-#: ../../printerdrake.pm_.c:2723 ../../printerdrake.pm_.c:2781
-#, fuzzy
-msgid "Printer name, description, location"
-msgstr "ÅšéėļćŽ ģļķōŻėļõ åźōõšłōŽ"
-
-#: ../../printerdrake.pm_.c:2725 ../../printerdrake.pm_.c:2796
-msgid "Printer manufacturer, model, driver"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2726 ../../printerdrake.pm_.c:2797
-msgid "Printer manufacturer, model"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2735 ../../printerdrake.pm_.c:2807
-msgid "Set this printer as the default"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2737 ../../printerdrake.pm_.c:2812
-msgid "Add this printer to Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2738 ../../printerdrake.pm_.c:2821
-msgid "Remove this printer from Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2739 ../../printerdrake.pm_.c:2830
-#, fuzzy
-msgid "Print test pages"
-msgstr "Åźōżšłóē äļźéģįóōéźžķ óåėßäłķ..."
-
-#: ../../printerdrake.pm_.c:2740 ../../printerdrake.pm_.c:2832
-#, fuzzy
-msgid "Know how to use this printer"
-msgstr "ČŻėåōå ķį äļźéģÜóåōå ōéņ ńõčģßóåéņ;"
-
-#: ../../printerdrake.pm_.c:2742 ../../printerdrake.pm_.c:2834
-#, fuzzy
-msgid "Remove printer"
-msgstr "ĮšļģåģįźńõóģŻķļņ åźōõšłōŽņ"
-
-#: ../../printerdrake.pm_.c:2786
-#, fuzzy, c-format
-msgid "Removing old printer \"%s\" ..."
-msgstr "ĮšļģåģįźńõóģŻķļņ åźōõšłōŽņ"
-
-#: ../../printerdrake.pm_.c:2810
-#, fuzzy
-msgid "Default printer"
-msgstr "Ōļšéźüņ åźōõšłōŽņ"
-
-#: ../../printerdrake.pm_.c:2811
-#, c-format
-msgid "The printer \"%s\" is set as the default printer now."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2815 ../../printerdrake.pm_.c:2818
-msgid "Adding printer to Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2816
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully added to Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2819
-#, c-format
-msgid "Failed to add the printer \"%s\" to Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2824 ../../printerdrake.pm_.c:2827
-msgid "Removing printer from Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2825
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully removed from Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2828
-#, c-format
-msgid "Failed to remove the printer \"%s\" from Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2836
-#, fuzzy, c-format
-msgid "Do you really want to remove the printer \"%s\"?"
-msgstr "ČŻėåōå ķį åšįķåźźéķŽóåōå ōļ äßźōõļ;"
-
-#: ../../printerdrake.pm_.c:2838
-#, fuzzy, c-format
-msgid "Removing printer \"%s\" ..."
-msgstr "ĮšļģåģįźńõóģŻķļņ åźōõšłōŽņ"
-
-#: ../../proxy.pm_.c:29 ../../proxy.pm_.c:37 ../../proxy.pm_.c:58
-#: ../../proxy.pm_.c:78
-msgid "Proxy configuration"
-msgstr "Ńżčģéóē proxy"
-
-#: ../../proxy.pm_.c:30
-msgid ""
-"Welcome to the proxy configuration utility.\n"
-"\n"
-"Here, you'll be able to set up your http and ftp proxies\n"
-"with or without login and password\n"
-msgstr ""
-"Źįėžņ Žėčįōå óōļ åńćįėåßļ ńżčģéóēņ ōļõ proxy.\n"
-"\n"
-"Åäž, čį ģšļńŻóåōå ķį ńõčģßóåōå ōļõņ http źįé ftp proxies\n"
-"ģå Ž ÷łńßņ login źįé źłäéźü šńüóāįóēņ\n"
-
-#: ../../proxy.pm_.c:38
-msgid ""
-"Please fill in the http proxy informations\n"
-"Leave it blank if you don't want an http proxy"
-msgstr ""
-"Šįńįźįėž óõģšėēńžóōå ōéņ šėēńļöļńßåņ ćéį ōļ http proxy\n"
-"ĮöŽóōå ōį źåķÜ įķ äåķ åšéčõģåßōå http proxy"
-
-#: ../../proxy.pm_.c:39 ../../proxy.pm_.c:60
-msgid "URL"
-msgstr "URL"
-
-#: ../../proxy.pm_.c:40 ../../proxy.pm_.c:61
-msgid "port"
-msgstr "šüńōį"
-
-#: ../../proxy.pm_.c:44
-msgid "Url should begin with 'http:'"
-msgstr "Ōļ URL šńŻšåé ķį īåźéķÜ ģå 'http:'"
-
-#: ../../proxy.pm_.c:48 ../../proxy.pm_.c:69
-msgid "The port part should be numeric"
-msgstr "Ļ įńéčģüņ čżńįņ šńŻšåé ķį åßķįé įńéčģēōéźüņ"
-
-#: ../../proxy.pm_.c:59
-msgid ""
-"Please fill in the ftp proxy informations\n"
-"Leave it blank if you don't want an ftp proxy"
-msgstr ""
-"Šįńįźįėž óõģšėēńžóōå ōéņ šėēńļöļńßåņ ćéį ōļ ftp proxy\n"
-"ĮöŽóōå ōį źåķÜ įķ äåķ åšéčõģåßōå ftp proxy"
-
-#: ../../proxy.pm_.c:65
-msgid "Url should begin with 'ftp:'"
-msgstr "Ōļ Url šńŻšåé ķį īåźéķÜ ģå'ftp:'"
-
-#: ../../proxy.pm_.c:79
-msgid ""
-"Please enter proxy login and password, if any.\n"
-"Leave it blank if you don't want login/passwd"
-msgstr ""
-"Šįńįźįėž åéóÜćåōå proxy login źįé źłäéźü šńüóāįóēņ.\n"
-"ĮöŽóōå ōį źåķÜ åÜķ äåķ åšéčõģåßōå login/passwd"
-
-#: ../../proxy.pm_.c:80
-msgid "login"
-msgstr "login"
-
-#: ../../proxy.pm_.c:82
-msgid "password"
-msgstr "źłäéźüņ šńüóāįóēņ"
-
-#: ../../proxy.pm_.c:84
-msgid "re-type password"
-msgstr "īįķįšėēźōńļėļćŽóōå ōļķ źłäéźü šńüóāįóēņ"
-
-#: ../../proxy.pm_.c:88
-msgid "The passwords don't match. Try again!"
-msgstr "Ļé źłäéźļß šńüóāįóēņ åßķįé įķüģļéļé. ŠńļóšįčŽóōå īįķÜ!"
-
-#: ../../raid.pm_.c:35
-#, c-format
-msgid "Can't add a partition to _formatted_ RAID md%d"
-msgstr "Äåķ ģšļńž ķį šńļóčŻół źįōÜōģēóē óōļ _ģļńöļšļéēģŻķļ_ RAID md%d"
-
-#: ../../raid.pm_.c:111
-#, c-format
-msgid "Can't write file %s"
-msgstr "Äåķ ģšļńž ķį įšļčēźåżół ōļ įń÷åßļ %s"
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed"
-msgstr "įšļōõ÷ßį mkraid"
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed (maybe raidtools are missing?)"
-msgstr "įšļōõ÷ßį mkraid (ģŽšłņ įšļõóéÜęļõķ ōį raidtools;)"
-
-#: ../../raid.pm_.c:152
-#, c-format
-msgid "Not enough partitions for RAID level %d\n"
-msgstr "Äåķ õšÜń÷ļõķ įńźåōŻņ źįōįōģŽóåéņ ćéį RAID åšéšŻäļõ %d\n"
-
-#: ../../services.pm_.c:14
-msgid "Launch the ALSA (Advanced Linux Sound Architecture) sound system"
-msgstr "Åźźßķēóē ōļõ ALSA (Advanced Linux Sound Architecture) óõóōŽģįōļņ Ž÷ļõ"
-
-#: ../../services.pm_.c:15
-msgid "Anacron a periodic command scheduler."
-msgstr "Anacron, Żķį šńüćńįģģį šåńéļä韎ņ åźōŻėåóēņ åķōļėžķ."
-
-#: ../../services.pm_.c:16
-msgid ""
-"apmd is used for monitoring batery status and logging it via syslog.\n"
-"It can also be used for shutting down the machine when the battery is low."
-msgstr ""
-"Ōļ apmd šįńįźļėļõčåß źįé źįōįćńÜöåé ōēķ źįōÜóōįóē ōēņ ģšįōįńßįņ.\n"
-"Ģšļńåß åšßóēņ ķį ÷ńēóéģļšļéēčåß ćéį ōļ įõōüģįōļ źėåßóéģļ ōļõ óõóōŽģįōļņ óå \n"
-"šåńßšōłóē ÷įģēėŽņ öüńōéóēņ ōēņ ģšįōįńßįņ."
-
-#: ../../services.pm_.c:18
-msgid ""
-"Runs commands scheduled by the at command at the time specified when\n"
-"at was run, and runs batch commands when the load average is low enough."
-msgstr ""
-"Åźōåėåß åķōļėŻņ šńļćńįģģįōéóģŻķåņ įšü ōēķ åķōļėŽ at źįé äŻóģåņ åķōļėžķ\n"
-"üōįķ ļ öüńōļņ ōļõ óõóōŽģįōļņ åßķįé įńźåōÜ ÷įģēėüņ."
-
-#: ../../services.pm_.c:20
-msgid ""
-"cron is a standard UNIX program that runs user-specified programs\n"
-"at periodic scheduled times. vixie cron adds a number of features to the "
-"basic\n"
-"UNIX cron, including better security and more powerful configuration options."
-msgstr ""
-"Ōļ cron åßķįé ģéį āįó韎 õšēńåóßį UNIX šļõ ōńŻ÷åé åķōļėŻņ źįčļńéóģŻķåņ įšü \n"
-"ōļķ ÷ńŽóōē óå ōįźōÜ ÷ńļķéźÜ äéįóōŽģįōį. Ōļ vixie cron šńļóčŻōåé Żķįķ "
-"įńéčģü \n"
-"åšéšėŻļķ äõķįōļōŽōłķ šļõ šåńéėįģāÜķļõķ źįėżōåńē įóöÜėåéį źįé šéļ éó÷õńŻņ "
-"ńõčģßóåéņ."
-
-#: ../../services.pm_.c:23
-msgid ""
-"GPM adds mouse support to text-based Linux applications such the\n"
-"Midnight Commander. It also allows mouse-based console cut-and-paste "
-"operations,\n"
-"and includes support for pop-up menus on the console."
-msgstr ""
-"Ōļ GPM šńļóčŻōåé õšļóōŽńéīē mouse óå åöįńģļćŻņ āįóéóģŻķåņ óå źļķóüėį\n"
-"źåéģŻķļõ źįé åšéōńŻšåé ėåéōļõńćßåņ įšļźļšŽņ źįé åšéźüėėēóēņ ģå ÷ńŽóē \n"
-"mouse óōēķ źļķóüėį, źįčžņ źįé õšļóōŽńéīē įķįäõļģŻķłķ menu."
-
-#: ../../services.pm_.c:26
-msgid ""
-"HardDrake runs a hardware probe, and optionally configures\n"
-"new/changed hardware."
-msgstr ""
-"Ōļ HardDrake ōńŻ÷åé ģéį įķß÷ķåõóē õėéźļż źįé šńļįéńåōéźÜ ńõčģßęåé\n"
-"ōļ ķŻļ/įėėįćģŻķļ õėéźü."
-
-#: ../../services.pm_.c:28 ../../standalone/logdrake_.c:412
-msgid ""
-"Apache is a World Wide Web server. It is used to serve HTML files and CGI."
-msgstr ""
-"Ļ Apache åßķįé Żķįņ åīõšēńåōēōŽņ WWW. Ģšļńåß ķį åīõšēńåōŽóåé įń÷åßį\n"
-"HTML źįé CGI."
-
-#: ../../services.pm_.c:29
-msgid ""
-"The internet superserver daemon (commonly called inetd) starts a\n"
-"variety of other internet services as needed. It is responsible for "
-"starting\n"
-"many services, including telnet, ftp, rsh, and rlogin. Disabling inetd "
-"disables\n"
-"all of the services it is responsible for."
-msgstr ""
-"Ē õšēńåóßį õšåńåīõšēńåōēōŽ Internet (inetd) īåźéķÜåé ģéį šļéźéėßį\n"
-"Üėėłķ õšēńåóéžķ inetrnet üšļōå ÷ńåéÜęļķōįé. Åßķįé õšåżčõķē ćéį ōēķ \n"
-"åźźßķēóē šļėėžķ õšēńåóéžķ, üšłņ telnet, ftp, rsh źįé rlogin. Ē "
-"įšåķåńćļšļßēóē\n"
-"įõōŽņ ōēņ õšēńåóßįņ įšåķåńćļšļéåß åšßóēņ źįé ōéņ õšēńåóßåņ ćéį ōéņ ļšļßåņ\n"
-"åßķįé õšåżčõķē."
-
-#: ../../services.pm_.c:33
-msgid ""
-"Launch packet filtering for Linux kernel 2.2 series, to set\n"
-"up a firewall to protect your machine from network attacks."
-msgstr ""
-"Åźźßķēóē šįźŻōļõ filtering ćéį Linux šõńŽķį ōēņ óåéńÜņ 2.2, ćéį ńżčģéóē\n"
-"åķüņ firewall šļõ čį šńļóōįōåżåé ōļ ģē÷ÜķēģÜ óįņ įšü äéźōõįźŻņ åšéčŻóåéņ."
-
-#: ../../services.pm_.c:35
-msgid ""
-"This package loads the selected keyboard map as set in\n"
-"/etc/sysconfig/keyboard. This can be selected using the kbdconfig utility.\n"
-"You should leave this enabled for most machines."
-msgstr ""
-"Įõōü ōļ šįźŻōļ öļńōžķåé ōēķ åšéėåćģŻķē äéįńżčģéóē šėēźōńļėļćßļõ šļõ Ż÷åé \n"
-"åšéėåćåß óōļ /etc/sysconfig/keyboard. Įõōü ģšļńåß ķį ńõčģéóōåß ģå ōēķ \n"
-"÷ńŽóē ōļõ åńćįėåßļõ kbdconfig. ŠńŻšåé ó÷åäüķ šÜķōį ķį åßķįé åķåńćļšļéēģŻķļ."
-
-#: ../../services.pm_.c:38
-msgid ""
-"Automatic regeneration of kernel header in /boot for\n"
-"/usr/include/linux/{autoconf,version}.h"
-msgstr ""
-"Įõōüģįōē šįńįćłćŽ ōēņ åšéźåöįėßäįņ ōļõ šõńŽķį óōļ /boot ćéį ōļ\n"
-"/usr/include/linux/{autoconf,version}.h"
-
-#: ../../services.pm_.c:40
-msgid "Automatic detection and configuration of hardware at boot."
-msgstr ""
-"Įõōüģįōē įķß÷ķåõóē źįé ńżčģéóē óõóźåõžķ źįōÜ ōēķ åźźßķēóē ōļõ óõóōŽģįōļņ."
-
-#: ../../services.pm_.c:41
-msgid ""
-"Linuxconf will sometimes arrange to perform various tasks\n"
-"at boot-time to maintain the system configuration."
-msgstr ""
-"Ōļ Linuxconf źįģéÜ öļńÜ źÜķåé äéÜöļńåņ åńćįóßåņ\n"
-"źįōÜ ōēķ åźźßķēóē ōļõ óõóōŽģįōļņ ćéį ķį äéįōēńŽóåé ōē ńżčģéóē ōļõ óõóōŽģįōļņ."
-
-#: ../../services.pm_.c:43
-msgid ""
-"lpd is the print daemon required for lpr to work properly. It is\n"
-"basically a server that arbitrates print jobs to printer(s)."
-msgstr ""
-"Ōļ lpd åßķįé ē õšēńåóßį åźōõšžóåłķ šļõ įšįéōåßōįé ćéį ķį ėåéōļõńćåß \n"
-"ē åķōļėŽ lpd. Åßķįé āįóéźÜ Żķįņ åīõšēńåōēōŽņ šļõ šńļłčåß ōį įń÷åßį \n"
-"óōļõņ åźōõšłōŻņ."
-
-#: ../../services.pm_.c:45
-msgid ""
-"Linux Virtual Server, used to build a high-performance and highly\n"
-"available server."
-msgstr ""
-"Linux Virtual ÅīõšēńåōēōŽņ, ÷ńēóéģļšļéåßōįé ćéį ķį äēģéļõńćŽóåé Żķįķ õųēėŽņ\n"
-"įšüäļóēņ źįé äéįčåóéģüōēōįņ åīõšēńåōēōŽ."
-
-#: ../../services.pm_.c:47 ../../standalone/logdrake_.c:413
-#, fuzzy
-msgid ""
-"named (BIND) is a Domain Name Server (DNS) that is used to resolve host "
-"names to IP addresses."
-msgstr ""
-"Ļ named (BIND) åßķįé Żķįņ Domain Name Server (DNS) šļõ ÷ńēóéģļšļéåßōįé\n"
-"ćéį ķį ģåōįōńŻšåé ļķüģįōį óå äéåõčżķóåéņ IP."
-
-#: ../../services.pm_.c:48
-msgid ""
-"Mounts and unmounts all Network File System (NFS), SMB (Lan\n"
-"Manager/Windows), and NCP (NetWare) mount points."
-msgstr ""
-"ÓõķäŻåé źįé įšļóõķäŻåé üėį ōį äéźōõįźÜ óõóōŽģįōį įń÷åßłķ (NFS, \n"
-"SMB źįé NCP (Netware))."
-
-#: ../../services.pm_.c:50
-msgid ""
-"Activates/Deactivates all network interfaces configured to start\n"
-"at boot time."
-msgstr ""
-"Åķåńćļšļéåß/įšåķåńćļšļéåß üėį ōį õšļóõóōŽģįōį äéźōżļõ šļõ Ż÷ļõķ \n"
-"ńõčģéóōåß ķį īåźéķļżķ źįōÜ ōēķ åźźßķēóē."
-
-#: ../../services.pm_.c:52
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP networks.\n"
-"This service provides NFS server functionality, which is configured via the\n"
-"/etc/exports file."
-msgstr ""
-"Ōļ NFS åßķįé Żķį äēģļöéėŻņ šńłōüźļėļ ćéį ōļķ äéįģļéńįóģü įń÷åßłķ óå \n"
-"äßźōõį TCP/IP. ĮõōŽ ē õšēńåóßį šńļóöŻńåé ėåéōļõńćßåņ åīõšēńåōēōŽ, ļ \n"
-"ļšļßļņ ńõčģßęåōįé įšü ōļ įń÷åßļ /etc/exports."
-
-#: ../../services.pm_.c:55
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP\n"
-"networks. This service provides NFS file locking functionality."
-msgstr ""
-"Ōļ NFS åßķįé Żķį äēģļöéėŻņ šńłōüźļėļ ćéį ōļķ äéįģļéńįóģü įń÷åßłķ óå \n"
-"äßźōõį TCP/IP. ĮõōŽ ē õšēńåóßį šńļóöŻńåé ėåéōļõńćßåņ źėåéäžģįōļņ įń÷åßłķ."
-
-#: ../../services.pm_.c:57
-msgid ""
-"Automatically switch on numlock key locker under console\n"
-"and XFree at boot."
-msgstr ""
-"Įõōüģįōē åķåńćļšļßēóē ōļõ numlock šėŽźōńļõ óōēķ źļķóüėį\n"
-"źįé ōį XFree źįōį ōēķ åźźßķēóē ōļõ óõóōŽģįōļņ."
-
-#: ../../services.pm_.c:59
-msgid "Support the OKI 4w and compatible winprinters."
-msgstr "ÕšļóōŽńéīē ōłķ OKI 4w źįé óõģāįōžķ winprinters."
-
-#: ../../services.pm_.c:60
-msgid ""
-"PCMCIA support is usually to support things like ethernet and\n"
-"modems in laptops. It won't get started unless configured so it is safe to "
-"have\n"
-"it installed on machines that don't need it."
-msgstr ""
-"Ē õšļóōŽńéīē PCMCIA šńļóöŻńåé õšļóōŽńéīē ćéį źÜńōåņ äéźōżļõ, modems źėš \n"
-"óõķŽčłņ óå óõóōŽģįōį laptop. Äåķ čį åźźéķŽóåé åźōüņ įķ įõōü ęēōēčåß įšü "
-"ōļķ \n"
-"÷ńŽóōē, ļšüōå åßķįé įóöįėŻņ ķį åćźįōįóōįčåß óå óõóōŽģįōį šļõ äåķ ōļ "
-"÷ńåéÜęļķōįé."
-
-#: ../../services.pm_.c:63
-msgid ""
-"The portmapper manages RPC connections, which are used by\n"
-"protocols such as NFS and NIS. The portmap server must be running on "
-"machines\n"
-"which act as servers for protocols which make use of the RPC mechanism."
-msgstr ""
-"Ļ portmapper äéį÷åéńßęåōįé óõķäŻóåéņ RPC, ļé ļšļßåņ ÷ńēóéģļšļéļżķōįé\n"
-"įšü šńļōüźļėį üšłņ ōļ NFS źįé ōļ NIS. ŠńŻšåé ķį åßķįé åķåńćļšļéēģŻķļ óå \n"
-"óõóōŽģįōį šļõ äńļõķ łņ åīõšēńåōēōŻņ ōŻōļéłķ šńļōļźüėłķ."
-
-#: ../../services.pm_.c:66 ../../standalone/logdrake_.c:415
-#, fuzzy
-msgid ""
-"Postfix is a Mail Transport Agent, which is the program that moves mail from "
-"one machine to another."
-msgstr ""
-"Ōļ postfix åßķįé Żķįņ šńÜźōļńįņ ģåōįöļńÜņ įėėēėļćńįößįņ, ōļ \n"
-"šńüćńįģģį šļõ öńļķōßęåé ćéį ōēķ ģåōįöļńÜ įėėēėļćńįößįņ įšü ōļ \n"
-"Żķį óżóōēģį óōļ Üėėļ."
-
-#: ../../services.pm_.c:67
-msgid ""
-"Saves and restores system entropy pool for higher quality random\n"
-"number generation."
-msgstr ""
-"Įšļčēźåżåé źįé åšįķįöŻńåé ōēķ šēćŽ åķōńļšßįņ ōļõ óõóōŽģįōļņ ćéį \n"
-"ōēķ äēģéļõńćßį źįėżōåńēņ šļéüōēōįņ ōõ÷įßłķ įńéčģžķ."
-
-#: ../../services.pm_.c:69
-msgid ""
-"Assign raw devices to block devices (such as hard drive\n"
-"partitions), for the use of applications such as Oracle"
-msgstr ""
-"Ļńéóģüņ raw óõóźåõžķ łņ block óõóźåõžķ (üšłņ źįōįōģŽóåéņ óźėēńžķ\n"
-"äßóźłķ), ćéį ōē ÷ńŽóē ōļõņ įšü åöįńģļćŻņ üšłņ ē Oracle"
-
-#: ../../services.pm_.c:71
-msgid ""
-"The routed daemon allows for automatic IP router table updated via\n"
-"the RIP protocol. While RIP is widely used on small networks, more complex\n"
-"routing protocols are needed for complex networks."
-msgstr ""
-"Ē õšēńåóßį routed åšéōńŻšåé ōēķ įõōüģįōē åķēģŻńłóē ōļõ šßķįźį äńļģļėüćēóēņ \n"
-"IP ģŻół ōļõ šńłōļźüėļõ RIP. Šįń' üėļ šļõ ōļ RIP åßķįé åõńŻłņ äéįäåäļģŻķļ "
-"óå \n"
-"ģéźńÜ äßźōõį, ģåćįėżōåńį äßźōõį įšįéōļżķ šåńéšėļźüōåńį šńļōüźļėį."
-
-#: ../../services.pm_.c:74
-msgid ""
-"The rstat protocol allows users on a network to retrieve\n"
-"performance metrics for any machine on that network."
-msgstr ""
-"Ōļ šńłōüźļėļ rstat åšéōńŻšåé óōļõņ ÷ńŽóōåņ åķüņ äéźōżļõ ōēķ\n"
-"óõėėļćŽ ģåōńŽóåłķ åšéäüóåłķ ćéį ļšļéļ䎚ļōå óżóōēģį óå įõōü \n"
-"ōļ äßźōõļ."
-
-#: ../../services.pm_.c:76
-msgid ""
-"The rusers protocol allows users on a network to identify who is\n"
-"logged in on other responding machines."
-msgstr ""
-"Ōļ šńłōüźļėļ rusers åšéōńŻšåé óōļõņ ÷ńŽóōåņ åķüņ äéźōżļõ ķį \n"
-"šńļóäéļńßóļõķ ōļõņ óõķäåäåģŻķļõņ ÷ńŽóōåņ Üėėłķ óõóōēģÜōłķ."
-
-#: ../../services.pm_.c:78
-msgid ""
-"The rwho protocol lets remote users get a list of all of the users\n"
-"logged into a machine running the rwho daemon (similiar to finger)."
-msgstr ""
-"Ōļ šńłōüźļėļ rwho åšéōńŻšåé óå įšļģåģįźńõóģŻķļõņ ÷ńŽóōåņ ķį äļõķ Żķįķ \n"
-"źįōÜėļćļ ōłķ ÷ńēóōžķ ōļõ óõóōŽģįōļņ (šįńüģļéļ ģå ōļ finger)."
-
-#: ../../services.pm_.c:80
-msgid "Launch the sound system on your machine"
-msgstr "Åźźßķēóē ōļõ óõóōŽģįōļņ Ž÷ļõ óōļ ģē÷ÜķēģÜ óįņ"
-
-#: ../../services.pm_.c:81
-msgid ""
-"Syslog is the facility by which many daemons use to log messages\n"
-"to various system log files. It is a good idea to always run syslog."
-msgstr ""
-"Ōļ Syslog åßķįé ē õšēńåóßį šļõ ÷ńēóéģļšļéļżķ šļėėŻņ Üėėåņ õšēńåóßåņ \n"
-"ćéį ķį źÜķļõķ åććńįöŻņ óōį įń÷åßį šįńįźļėļżčēóēņ óõóōŽģįōļņ (log files)\n"
-"Óõķßóōįōįé ē óõķå÷Žņ ėåéōļõńćßį įõōŽņ ōēņ õšēńåóßįņ."
-
-#: ../../services.pm_.c:83
-msgid "Load the drivers for your usb devices."
-msgstr "Öüńōłóē ōłķ ļäēćžķ ćéį ōéņ usb óõóźåõŻņ óįņ."
-
-#: ../../services.pm_.c:84
-msgid "Starts the X Font Server (this is mandatory for XFree to run)."
-msgstr ""
-"ĪåźéķÜåé ōēķ õšēńåóßį åīõšēńåōēōŽ ćńįģģįōļóåéńžķ X Font Server (įõōü åßķįé "
-"įšįńįßōēōļ ćéį ķį ōńŻ÷ļõķ ōį XFree)."
-
-#: ../../services.pm_.c:110 ../../services.pm_.c:152
-msgid "Choose which services should be automatically started at boot time"
-msgstr ""
-
-#: ../../services.pm_.c:122
-#, fuzzy
-msgid "Printing"
-msgstr "ÅźōõšłōŽņ"
-
-#: ../../services.pm_.c:123
-msgid "Internet"
-msgstr "Éķōåńķåō"
-
-#: ../../services.pm_.c:126
-msgid "File sharing"
-msgstr ""
-
-#: ../../services.pm_.c:128 ../../standalone/drakbackup_.c:934
-#, fuzzy
-msgid "System"
-msgstr "ŹįōÜóōįóē óõóōŽģįōļņ"
-
-#: ../../services.pm_.c:133
-#, fuzzy
-msgid "Remote Administration"
-msgstr "ÅšéėļćŻņ įšļģåģįźńõóģŻķļõ lpd åźōõšłōŽ"
-
-#: ../../services.pm_.c:141
-#, fuzzy
-msgid "Database Server"
-msgstr "ĀÜóē ÄåäļģŻķłķ"
-
-#: ../../services.pm_.c:170
-#, c-format
-msgid "Services: %d activated for %d registered"
-msgstr ""
-
-#: ../../services.pm_.c:186
-#, fuzzy
-msgid "Services"
-msgstr "ÅīõšēńåōēōŽņ"
-
-#: ../../services.pm_.c:198
-#, fuzzy
-msgid "running"
-msgstr "Šńļåéäļšļßēóē"
-
-#: ../../services.pm_.c:198
-#, fuzzy
-msgid "stopped"
-msgstr "Append"
-
-#: ../../services.pm_.c:212
-msgid "Services and deamons"
-msgstr ""
-
-#: ../../services.pm_.c:217
-msgid ""
-"No additional information\n"
-"about this service, sorry."
-msgstr ""
-
-#: ../../services.pm_.c:224
-#, fuzzy
-msgid "On boot"
-msgstr "Yaboot"
-
-#: ../../services.pm_.c:236
-#, fuzzy
-msgid "Start"
-msgstr "ŹįōÜóōįóē:"
-
-#: ../../services.pm_.c:236
-#, fuzzy
-msgid "Stop"
-msgstr "ŌļģŻįņ"
-
-#: ../../share/advertising/00-thanks.pl_.c:9
-msgid "Thank you for choosing Mandrake Linux 8.2"
-msgstr ""
-
-#: ../../share/advertising/00-thanks.pl_.c:10
-msgid "Welcome to the Open Source world"
-msgstr ""
-
-#: ../../share/advertising/00-thanks.pl_.c:11
-msgid ""
-"The success of MandrakeSoft is based upon the principle of Free Software. "
-"Your new operating system is the result of collaborative work on the part of "
-"the worldwide Linux Community"
-msgstr ""
-
-#: ../../share/advertising/01-gnu.pl_.c:9
-#, fuzzy
-msgid "Join the Free Software world"
-msgstr "Õšüėļéšļņ źüóģļņ"
-
-#: ../../share/advertising/01-gnu.pl_.c:10
-msgid ""
-"Get to know the Open Source community and become a member. Learn, teach, and "
-"help others by joining the many discussion forums that you will find in our "
-"\"Community\" webpages"
-msgstr ""
-
-#: ../../share/advertising/02-internet.pl_.c:9
-#, fuzzy
-msgid "Internet and Messaging"
-msgstr "Šńüóāįóē óōļ Internet"
-
-#: ../../share/advertising/02-internet.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best software to access everything the "
-"Internet has to offer: Surf the web & view animations with Mozilla and "
-"Konqueror, exchange email & organize your personal information with "
-"Evolution and Kmail, and much more"
-msgstr ""
-
-#: ../../share/advertising/03-graphic.pl_.c:9
-#, fuzzy
-msgid "Multimedia and Graphics"
-msgstr "ŠļėõģŻóį - ĆńįöéźÜ"
-
-#: ../../share/advertising/03-graphic.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 lets you push your multimedia computer to its limits! Use "
-"the latest software to play music and audio files, edit and organize your "
-"images and photos, watch TV and videos, and much more"
-msgstr ""
-
-#: ../../share/advertising/04-develop.pl_.c:9
-msgid "Development"
-msgstr "ĮķÜšōõīē"
-
-#: ../../share/advertising/04-develop.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 is the ultimate development platform. Discover the power "
-"of the GNU gcc compiler as well as the best Open Source development "
-"environments"
-msgstr ""
-
-#: ../../share/advertising/05-contcenter.pl_.c:9
-#, fuzzy
-msgid "Mandrake Control Center"
-msgstr "ŹŻķōńļ ÅėŻć÷ļõ"
-
-#: ../../share/advertising/05-contcenter.pl_.c:10
-msgid ""
-"The Mandrake Linux 8.2 Control Center is a one-stop location for fully "
-"customizing and configuring your Mandrake system"
-msgstr ""
-
-#: ../../share/advertising/06-user.pl_.c:9
-#, fuzzy
-msgid "User interfaces"
-msgstr "ÓõóźåõŽ äéźōżļõ"
-
-#: ../../share/advertising/06-user.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides 11 different graphical desktop environments and "
-"window managers to choose from including GNOME 1.4, KDE 2.2.2, Window Maker "
-"0.8, and the rest"
-msgstr ""
-
-#: ../../share/advertising/07-server.pl_.c:9
-#, fuzzy
-msgid "Server Software"
-msgstr "Äéźōõįźü üķļģį SMB åīõšēńåōēōŽ:"
-
-#: ../../share/advertising/07-server.pl_.c:10
-msgid ""
-"Transform your machine into a powerful server with just a few clicks of the "
-"mouse: Web server, email, firewall, router, file and print server, ..."
-msgstr ""
-
-#: ../../share/advertising/08-games.pl_.c:9
-msgid "Games"
-msgstr "Šįé÷ķßäéį"
-
-#: ../../share/advertising/08-games.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best Open Source games - arcade, action, "
-"cards, sports, strategy, ..."
-msgstr ""
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:9
-msgid "MandrakeCampus"
-msgstr ""
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:10
-msgid ""
-"Would you like to learn Linux simply, quickly, and for free? MandrakeSoft "
-"provides free Linux training, as well as a way to test your progress, at "
-"MandrakeCampus -- our online training center"
-msgstr ""
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:9
-#, fuzzy
-msgid "MandrakeExpert"
-msgstr "Ćéį åéäéźļżņ"
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:10
-msgid ""
-"Quality support from the Linux Community, and from MandrakeSoft, is just "
-"around the corner. And if you're already a Linux veteran, become an \"Expert"
-"\" and share your knowledge at our support website"
-msgstr ""
-
-#: ../../share/advertising/11-consul.pl_.c:9
-msgid "MandrakeConsulting"
-msgstr ""
-
-#: ../../share/advertising/11-consul.pl_.c:10
-msgid ""
-"For all of your IT projects, our consultants are ready to analyze your "
-"requirements and offer a customized solution. Benefit from MandrakeSoft's "
-"vast experience as a Linux producer to provide a true IT alternative for "
-"your business organization"
-msgstr ""
-
-#: ../../share/advertising/12-MDKstore.pl_.c:9
-msgid "MandrakeStore"
-msgstr ""
-
-#: ../../share/advertising/12-MDKstore.pl_.c:10
-msgid ""
-"A full range of Linux solutions, as well as special offers on products and "
-"'goodies', are available online at our e-store"
-msgstr ""
-
-#: ../../share/advertising/13-Nvert.pl_.c:9
-msgid ""
-"For more information on MandrakeSoft's Professional Services and commercial "
-"offerings, please see the following web page:"
-msgstr ""
-
-#: ../../share/advertising/13-Nvert.pl_.c:11
-msgid "http://www.mandrakesoft.com/sales/contact"
-msgstr ""
-
-#: ../../standalone.pm_.c:25
-#, fuzzy
-msgid "Installing packages..."
-msgstr "ÅćźįōÜóōįóē šįźŻōļõ %s"
-
-#: ../../standalone/diskdrake_.c:85
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I'll try to go on blanking bad partitions"
-msgstr ""
-"Äåķ ģšļńž ķį äéįāÜół ōļķ šßķįźį źįōįōģŽóåłķ, åßķįé šļėż źįōåóōńįģŻķļņ :(\n"
-"Čį šńļóšįčŽół ķį óõķå÷ßół įöįéńžķōįņ ōéņ ėįķčįóģŻķåņ źįōįōģŽóåéņ"
-
-#: ../../standalone/drakautoinst_.c:45
-msgid "Error!"
-msgstr "ÓöÜėģį!"
-
-#: ../../standalone/drakautoinst_.c:46
-#, c-format
-msgid "I can't find needed image file `%s'."
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:48
-#, fuzzy
-msgid "Auto Install Configurator"
-msgstr "Ńõčģßóåéņ ģåōÜ ōēķ åćźįōÜóōįóē"
-
-#: ../../standalone/drakautoinst_.c:49
-msgid ""
-"You are about to configure an Auto Install floppy. This feature is somewhat "
-"dangerous and must be used circumspectly.\n"
-"\n"
-"With that feature, you will be able to replay the installation you've "
-"performed on this computer, being interactively prompted for some steps, in "
-"order to change their values.\n"
-"\n"
-"For maximum safety, the partitioning and formatting will never be performed "
-"automatically, whatever you chose during the install of this computer.\n"
-"\n"
-"Do you want to continue?"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:71
-#, fuzzy
-msgid "Automatic Steps Configuration"
-msgstr "Boot Ōżšļõ Ńżčģéóē"
-
-#: ../../standalone/drakautoinst_.c:72
-msgid ""
-"Please choose for each step whether it will replay like your install, or it "
-"will be manual"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:145
-msgid ""
-"\n"
-"Welcome.\n"
-"\n"
-"The parameters of the auto-install are available in the sections on the left"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:243 ../../standalone/drakgw_.c:671
-#: ../../standalone/scannerdrake_.c:106
-msgid "Congratulations!"
-msgstr "Óõć÷įńēōŽńéį!"
-
-#: ../../standalone/drakautoinst_.c:244
-msgid ""
-"The floppy has been successfully generated.\n"
-"You may now replay your installation."
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:282
-#, fuzzy
-msgid "Auto Install"
-msgstr "ÅćźįōÜóōįóē"
-
-#: ../../standalone/drakautoinst_.c:352
-#, fuzzy
-msgid "Add an item"
-msgstr "Šńļó莟ē ÷ńŽóōē"
-
-#: ../../standalone/drakautoinst_.c:359
-#, fuzzy
-msgid "Remove the last item"
-msgstr "Ģļńöļšļßēóē įń÷åßļõ loopback %s"
-
-#: ../../standalone/drakbackup_.c:448 ../../standalone/drakbackup_.c:451
-#: ../../standalone/drakbackup_.c:455
-msgid ""
-"***********************************************************************\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:449
-msgid ""
-"\n"
-" DrakBackup Report \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:450
-msgid ""
-"\n"
-" DrakBackup Daemon Report\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:453
-msgid ""
-"\n"
-"\n"
-"***********************************************************************\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:454
-msgid ""
-"\n"
-" DrakBackup Report Details\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:476
-msgid "total progess"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:555 ../../standalone/drakbackup_.c:602
-msgid "Backup system files..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:603 ../../standalone/drakbackup_.c:667
-#, fuzzy
-msgid "Hard Disk Backup files..."
-msgstr "ŹįōåóōńįģŻķļ åöåäńéźü įń÷åßļ"
-
-#: ../../standalone/drakbackup_.c:615
-#, fuzzy
-msgid "Backup User files..."
-msgstr "ŹįōåóōńįģŻķļ åöåäńéźü įń÷åßļ"
-
-#: ../../standalone/drakbackup_.c:616
-msgid "Hard Disk Backup Progress..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:666
-#, fuzzy
-msgid "Backup Other files..."
-msgstr "ŹįōåóōńįģŻķļ åöåäńéźü įń÷åßļ"
-
-#: ../../standalone/drakbackup_.c:674
-#, c-format
-msgid ""
-"file list send by FTP : %s\n"
-" "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:677
-msgid ""
-"\n"
-"(!) FTP connexion problem: It was not possible to send your backup files by "
-"FTP.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:687
-msgid "(!) Error during mail sending. \n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:728 ../../standalone/drakbackup_.c:739
-#: ../../standalone/drakbackup_.c:750 ../../standalone/drakfont_.c:787
-#, fuzzy
-msgid "File Selection"
-msgstr "ÅšéėļćŽ šįźŻōłķ"
-
-#: ../../standalone/drakbackup_.c:755
-msgid "Select the files or directories and click on 'Add'"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:790
-msgid ""
-"\n"
-"Please check all options that you need.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:791
-msgid ""
-"These options can backup and restore all files in your /etc directory.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:792
-msgid "Backup your System files. ( /etc directory )"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:793
-msgid "Use incremental backup (do not replace old backups)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:794
-msgid "Do not include critical files (passwd, group, fstab)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:795
-msgid ""
-"With this option you will be able to restore any version\n"
-" of your /etc directory."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:812
-#, fuzzy
-msgid "Please check all users that you want to include in your backup."
-msgstr "Šįńįźįėž åšéėŻīōå ōį šįźŻōį šļõ čŻėåōå ķį åćźįōįóōŽóåōå"
-
-#: ../../standalone/drakbackup_.c:839
-msgid "Do not include the browser cache"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:840 ../../standalone/drakbackup_.c:864
-msgid "Use Incremental Backups (do not replace old backups)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:862 ../../standalone/drakfont_.c:827
-#, fuzzy
-msgid "Remove Selected"
-msgstr "ÄéįćńįöŽ ļõńÜņ"
-
-#: ../../standalone/drakbackup_.c:900
-#, fuzzy
-msgid "Windows (FAT32)"
-msgstr "Įöįßńåóē Windows(TM)"
-
-#: ../../standalone/drakbackup_.c:939
-#, fuzzy
-msgid "Users"
-msgstr "Źłäéźü üķļģį"
-
-#: ../../standalone/drakbackup_.c:964
-msgid "Use FTP connection to backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:967
-#, fuzzy
-msgid "Please enter the host name or IP."
-msgstr "Šįńįźįėž äļźéģÜóōå ōļ šļķōßźé"
-
-#: ../../standalone/drakbackup_.c:972
-msgid ""
-"Please enter the directory to\n"
-" put the backup on this host."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:977
-#, fuzzy
-msgid "Please enter your login"
-msgstr "Šįńįźįėž šńļóšįčŽóōå īįķÜ"
-
-#: ../../standalone/drakbackup_.c:982
-#, fuzzy
-msgid "Please enter your password"
-msgstr "Šįńįźįėž šńļóšįčŽóōå īįķÜ"
-
-#: ../../standalone/drakbackup_.c:988
-#, fuzzy
-msgid "Remember this password"
-msgstr "īįķįšėēźōńļėļćŽóōå ōļķ źłäéźü šńüóāįóēņ"
-
-#: ../../standalone/drakbackup_.c:1052 ../../standalone/drakbackup_.c:2048
-#, fuzzy
-msgid "FTP Connection"
-msgstr "Óżķäåóē LAN"
-
-#: ../../standalone/drakbackup_.c:1059 ../../standalone/drakbackup_.c:2056
-#, fuzzy
-msgid "Secure Connection"
-msgstr "Ōńüšļņ óżķäåóēņ åźōõšłōŽ"
-
-#: ../../standalone/drakbackup_.c:1085 ../../standalone/drakbackup_.c:2889
-msgid "Use CD/DVDROM to backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1088 ../../standalone/drakbackup_.c:2893
-#, fuzzy
-msgid "Please choose your CD space"
-msgstr "Šįńįźįėž åšéėŻīōå äéįńżčģéóē šėēźōńļėļćßļõ."
-
-#: ../../standalone/drakbackup_.c:1094 ../../standalone/drakbackup_.c:2905
-#, fuzzy
-msgid "Please check if you are using CDRW media"
-msgstr "Šįńįźįėž źÜķōå źėéź óå ģéį źįōÜōģēóē"
-
-#: ../../standalone/drakbackup_.c:1100 ../../standalone/drakbackup_.c:2911
-msgid "Please check if you want to erase your CDRW before"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1106
-#, fuzzy
-msgid ""
-"Please check if you want to include\n"
-" install boot on your CD."
-msgstr "Šįńįźįėž åšéėŻīōå ōį šįźŻōį šļõ čŻėåōå ķį åćźįōįóōŽóåōå"
-
-#: ../../standalone/drakbackup_.c:1112
-msgid ""
-"Please enter your CD Writer device name\n"
-" ex: 0,1,0"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1153
-#, fuzzy
-msgid "Use tape to backup"
-msgstr "ŹįōåóōńįģŻķļ åöåäńéźü įń÷åßļ"
-
-#: ../../standalone/drakbackup_.c:1156
-msgid "Please enter the device name to use for backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1162 ../../standalone/drakbackup_.c:1203
-#: ../../standalone/drakbackup_.c:2013
-msgid ""
-"Please enter the maximum size\n"
-" allowed for Drakbackup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1195 ../../standalone/drakbackup_.c:2005
-#, fuzzy
-msgid "Please enter the directory to save:"
-msgstr "Šįńįźįėž äļźéģÜóōå ōļ šļķōßźé"
-
-#: ../../standalone/drakbackup_.c:1209 ../../standalone/drakbackup_.c:2019
-#, fuzzy
-msgid "Use quota for backup files."
-msgstr "ŹįōåóōńįģŻķļ åöåäńéźü įń÷åßļ"
-
-#: ../../standalone/drakbackup_.c:1267
-#, fuzzy
-msgid "Network"
-msgstr "ÓõóźåõŽ äéźōżļõ"
-
-#: ../../standalone/drakbackup_.c:1272
-msgid "CDROM / DVDROM"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1277
-msgid "HardDrive / NFS"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1297 ../../standalone/drakbackup_.c:1301
-#: ../../standalone/drakbackup_.c:1305
-msgid "hourly"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1298 ../../standalone/drakbackup_.c:1302
-#: ../../standalone/drakbackup_.c:1305
-msgid "daily"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1299 ../../standalone/drakbackup_.c:1303
-#: ../../standalone/drakbackup_.c:1305
-msgid "weekly"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1300 ../../standalone/drakbackup_.c:1304
-#: ../../standalone/drakbackup_.c:1305
-msgid "monthly"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1312
-#, fuzzy
-msgid "Use daemon"
-msgstr "Źłäéźü üķļģį"
-
-#: ../../standalone/drakbackup_.c:1317
-#, fuzzy
-msgid ""
-"Please choose the time \n"
-"interval between each backup"
-msgstr "Šįńįźįėž åšéėŻīōå ōį šįźŻōį šļõ čŻėåōå ķį åćźįōįóōŽóåōå"
-
-#: ../../standalone/drakbackup_.c:1323
-#, fuzzy
-msgid ""
-"Please choose the\n"
-"media for backup."
-msgstr "Šįńįźįėž åšéėŻīōå ģéį ćėžóóį."
-
-#: ../../standalone/drakbackup_.c:1327
-#, fuzzy
-msgid "Use Hard Drive with daemon"
-msgstr "Åķōļšéóģüņ óźėēńļż äßóźļõ"
-
-#: ../../standalone/drakbackup_.c:1329
-#, fuzzy
-msgid "Use FTP with daemon"
-msgstr "Źłäéźü üķļģį"
-
-#: ../../standalone/drakbackup_.c:1333
-msgid "Please be sure that the cron daemon is included in your services."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1369
-msgid "Send mail report after each backup to :"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1411
-msgid "What"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1416
-#, fuzzy
-msgid "Where"
-msgstr "Ģå ńļäÜźé"
-
-#: ../../standalone/drakbackup_.c:1421
-#, fuzzy
-msgid "When"
-msgstr "Ģå ńļäÜźé"
-
-#: ../../standalone/drakbackup_.c:1426
-#, fuzzy
-msgid "More Options"
-msgstr "ŠįńÜģåōńļé ļäēćļż"
-
-#: ../../standalone/drakbackup_.c:1445 ../../standalone/drakbackup_.c:2801
-#, fuzzy
-msgid "Drakbackup Configuration"
-msgstr "Ńõčģßóåéņ äéźōżļõ"
-
-#: ../../standalone/drakbackup_.c:1463
-#, fuzzy
-msgid "Please choose where you want to backup"
-msgstr "Šįńįźįėž åšéėŻīōå ōį šįźŻōį šļõ čŻėåōå ķį åćźįōįóōŽóåōå"
-
-#: ../../standalone/drakbackup_.c:1465
-msgid "on Hard Drive"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1476
-msgid "across Network"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1540
-#, fuzzy
-msgid "Please choose what you want to backup"
-msgstr "Šįńįźįėž åšéėŻīōå ōį šįźŻōį šļõ čŻėåōå ķį åćźįōįóōŽóåōå"
-
-#: ../../standalone/drakbackup_.c:1541
-#, fuzzy
-msgid "Backup system"
-msgstr "Šńļåō. óõó. įń÷."
-
-#: ../../standalone/drakbackup_.c:1542
-msgid "Backup Users"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1545
-msgid "Select user manually"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1627
-msgid ""
-"\n"
-"Backup Sources: \n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1628
-msgid ""
-"\n"
-"- System Files:\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1630
-msgid ""
-"\n"
-"- User Files:\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1632
-msgid ""
-"\n"
-"- Other Files:\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1634
-#, c-format
-msgid ""
-"\n"
-"- Save on Hard drive on path : %s\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1635
-#, c-format
-msgid ""
-"\n"
-"- Save on FTP on host : %s\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1636
-#, c-format
-msgid ""
-"\t\t user name: %s\n"
-"\t\t on path: %s \n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1637
-#, fuzzy
-msgid ""
-"\n"
-"- Options:\n"
-msgstr "ÅšéėļćŻņ"
-
-#: ../../standalone/drakbackup_.c:1638
-msgid "\tDo not include System Files\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1639
-msgid "\tBackups use tar and bzip2\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1640
-msgid "\tBackups use tar and gzip\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1641
-#, c-format
-msgid ""
-"\n"
-"- Daemon (%s) include :\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1642
-msgid "\t-Hard drive.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1643
-msgid "\t-CDROM.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1644
-msgid "\t-Network by FTP.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1645
-msgid "\t-Network by SSH.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1647
-msgid "No configuration, please click Wizard or Advanced.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1652
-msgid ""
-"List of data to restore:\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1753
-msgid ""
-"List of data corrupted:\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1755
-#, fuzzy
-msgid "Please uncheck or remove it on next time."
-msgstr "Óå šļéÜ óåéńéįźŽ šüńōį åßķįé óõķäåäåģŻķļ ōļ modem óįņ;"
-
-#: ../../standalone/drakbackup_.c:1765
-msgid "Backup files are corrupted"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1786
-msgid " All your selectionned data have been "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1787
-#, c-format
-msgid " Successfuly Restored on %s "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1886
-#, fuzzy
-msgid " Restore Configuration "
-msgstr "Ńõčģßóåéņ äéźōżļõ"
-
-#: ../../standalone/drakbackup_.c:1904
-msgid "OK to restore the other files."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1922
-msgid "User list to restore (only the most recent date per user is important)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1972
-#, fuzzy
-msgid "Backup the system files before:"
-msgstr "ŹįōåóōńįģŻķļ åöåäńéźü įń÷åßļ"
-
-#: ../../standalone/drakbackup_.c:1974
-#, fuzzy
-msgid "please choose the date to restore"
-msgstr "Šįńįźįėž åšéėŻīōå ōżšļ šļķōéźéļż."
-
-#: ../../standalone/drakbackup_.c:2002
-#, fuzzy
-msgid "Use Hard Disk to backup"
-msgstr "ŹįōåóōńįģŻķļ åöåäńéźü įń÷åßļ"
-
-#: ../../standalone/drakbackup_.c:2083
-#, fuzzy
-msgid "Restore from Hard Disk."
-msgstr "ÅšįķįöļńÜ įšü äéóźŻōōį"
-
-#: ../../standalone/drakbackup_.c:2085
-msgid "Please enter the directory where backups are stored"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2143
-#, fuzzy
-msgid "Select another media to restore from"
-msgstr "Šįńįźįėž åšéėŻīōå ōżšļ šļķōéźéļż."
-
-#: ../../standalone/drakbackup_.c:2145
-#, fuzzy
-msgid "Other Media"
-msgstr "¶ėėļ"
-
-#: ../../standalone/drakbackup_.c:2151
-#, fuzzy
-msgid "Restore system"
-msgstr "ÅćźįōÜóōįóē óõóōŽģįōļņ"
-
-#: ../../standalone/drakbackup_.c:2152
-#, fuzzy
-msgid "Restore Users"
-msgstr "ÅšįķįöļńÜ įšü įń÷åßļ"
-
-#: ../../standalone/drakbackup_.c:2153
-#, fuzzy
-msgid "Restore Other"
-msgstr "ÅšįķįöļńÜ įšü įń÷åßļ"
-
-#: ../../standalone/drakbackup_.c:2155
-msgid "select path to restore (instead of / )"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2159
-msgid "Do new backup before restore (only for incremental backups.)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2160
-msgid "Remove user directories before restore."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2217
-msgid "Restore all backups"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2225
-#, fuzzy
-msgid "Custom Restore"
-msgstr "ŠńļóįńģļóģŻķļ"
-
-#: ../../standalone/drakbackup_.c:2266 ../../standalone/drakbackup_.c:2291
-#: ../../standalone/drakbackup_.c:2312 ../../standalone/drakbackup_.c:2333
-#: ../../standalone/drakbackup_.c:2351 ../../standalone/drakbackup_.c:2383
-#: ../../standalone/drakbackup_.c:2399 ../../standalone/drakbackup_.c:2419
-#: ../../standalone/drakbackup_.c:2438 ../../standalone/drakbackup_.c:2460
-#: ../../standalone/drakfont_.c:575
-#, fuzzy
-msgid "Help"
-msgstr "/_ĀļŽčåéį"
-
-#: ../../standalone/drakbackup_.c:2269 ../../standalone/drakbackup_.c:2296
-#: ../../standalone/drakbackup_.c:2315 ../../standalone/drakbackup_.c:2336
-#: ../../standalone/drakbackup_.c:2354 ../../standalone/drakbackup_.c:2402
-#: ../../standalone/drakbackup_.c:2422 ../../standalone/drakbackup_.c:2441
-#, fuzzy
-msgid "Previous"
-msgstr "<- Šńļēćļżģåķļ"
-
-#: ../../standalone/drakbackup_.c:2271 ../../standalone/drakbackup_.c:2338
-#: ../../standalone/logdrake_.c:224
-#, fuzzy
-msgid "Save"
-msgstr "ŹįōÜóōįóē:"
-
-#: ../../standalone/drakbackup_.c:2317
-#, fuzzy
-msgid "Build Backup"
-msgstr "ŹįōåóōńįģŻķļ åöåäńéźü įń÷åßļ"
-
-#: ../../standalone/drakbackup_.c:2356 ../../standalone/drakbackup_.c:3033
-#, fuzzy
-msgid "Restore"
-msgstr "ÅšįķįöļńÜ įšü įń÷åßļ"
-
-#: ../../standalone/drakbackup_.c:2404 ../../standalone/drakbackup_.c:2424
-#: ../../standalone/drakbackup_.c:2445
-#, fuzzy
-msgid "Next"
-msgstr "Åšüģåķļ -»"
-
-#: ../../standalone/drakbackup_.c:2478
-msgid ""
-"Please Build backup before to restore it...\n"
-" or verify that your path to save is correct."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2499
-msgid ""
-"Error durind sendmail\n"
-" your report mail was not sent\n"
-" Please configure sendmail"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2522
-#, fuzzy
-msgid "Package List to Install"
-msgstr "ÅšéėļćŽ šįźŻōłķ"
-
-#: ../../standalone/drakbackup_.c:2550
-msgid ""
-"Error durind sending file via FTP.\n"
-" Please correct your FTP configuration."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2573
-#, fuzzy
-msgid "Please select data to restore..."
-msgstr "Šįńįźįėž åšéėŻīōå ģéį ćėžóóį."
-
-#: ../../standalone/drakbackup_.c:2594
-#, fuzzy
-msgid "Please select media for backup..."
-msgstr "Šįńįźįėž åšéėŻīōå ģéį ćėžóóį."
-
-#: ../../standalone/drakbackup_.c:2616
-#, fuzzy
-msgid "Please select data to backup..."
-msgstr "Šįńįźįėž åšéėŻīōå ģéį ćėžóóį."
-
-#: ../../standalone/drakbackup_.c:2638
-msgid ""
-"No configuration file found \n"
-"please click Wizard or Advanced."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2659
-msgid "Under Devel ... please wait."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2739
-#, fuzzy
-msgid "Backup system files"
-msgstr "ŹįōåóōńįģŻķļ åöåäńéźü įń÷åßļ"
-
-#: ../../standalone/drakbackup_.c:2741
-#, fuzzy
-msgid "Backup user files"
-msgstr "ŹįōåóōńįģŻķļ åöåäńéźü įń÷åßļ"
-
-#: ../../standalone/drakbackup_.c:2743
-#, fuzzy
-msgid "Backup other files"
-msgstr "ŹįōåóōńįģŻķļ åöåäńéźü įń÷åßļ"
-
-#: ../../standalone/drakbackup_.c:2745 ../../standalone/drakbackup_.c:2776
-msgid "Total Progress"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2767
-msgid "files sending by FTP"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2771
-#, fuzzy
-msgid "Sending files..."
-msgstr "Įšļ莟åõóē óå įń÷åßļ"
-
-#: ../../standalone/drakbackup_.c:2841
-msgid "Data list to include on CDROM."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2899
-#, fuzzy
-msgid "Please enter the cd writer speed"
-msgstr "Šįńįźįėž äļźéģÜóōå ōļ šļķōßźé"
-
-#: ../../standalone/drakbackup_.c:2917
-msgid "Please enter your CD Writer device name (ex: 0,1,0)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2923
-#, fuzzy
-msgid "Please check if you want to include install boot on your CD."
-msgstr "Šįńįźįėž åšéėŻīōå ōį šįźŻōį šļõ čŻėåōå ķį åćźįōįóōŽóåōå"
-
-#: ../../standalone/drakbackup_.c:2989
-#, fuzzy
-msgid "Backup Now from configuration file"
-msgstr "Ńõčģßóåéņ äéźōżļõ"
-
-#: ../../standalone/drakbackup_.c:2999
-#, fuzzy
-msgid "View Backup Configuration."
-msgstr "Ńõčģßóåéņ äéźōżļõ"
-
-#: ../../standalone/drakbackup_.c:3020
-#, fuzzy
-msgid "Wizard Configuration"
-msgstr "Ńżčģéóē LĮĶ"
-
-#: ../../standalone/drakbackup_.c:3024
-#, fuzzy
-msgid "Advanced Configuration"
-msgstr "Ńżčģéóē LĮĶ"
-
-#: ../../standalone/drakbackup_.c:3028
-#, fuzzy
-msgid "Backup Now"
-msgstr "Šńļåō. óõó. įń÷."
-
-#: ../../standalone/drakbackup_.c:3053
-msgid "Drakbackup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3104
-msgid ""
-"options description:\n"
-"\n"
-" In this step Drakbackup allow you to change:\n"
-"\n"
-" - The compression mode:\n"
-" \n"
-" If you check bzip2 compression, you will compress\n"
-" your data better than gzip (about 2-10 %).\n"
-" This option is not checked by default because\n"
-" this compression mode needs more time ( about 1000% more).\n"
-" \n"
-" - The update mode:\n"
-"\n"
-" This option will update your backup, but this\n"
-" option is not really useful because you need to\n"
-" decompress your backup before you can update it.\n"
-" \n"
-" - the .backupignore mode:\n"
-"\n"
-" Like with cvs, Drakbackup will ignore all references\n"
-" included in .backupignore files in each directories.\n"
-" ex: \n"
-" /*> cat .backupignore*/\n"
-" *.o\n"
-" *~\n"
-" ...\n"
-" \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3134
-msgid ""
-"\n"
-" Some errors during sendmail are caused by \n"
-" a bad configuration of postfix. To solve it you have to\n"
-" set myhostname or mydomain in /etc/postfix/main.cf\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3142
-msgid ""
-"options description:\n"
-"\n"
-" - Backup system files:\n"
-" \n"
-"\tThis option allows you to backup your /etc directory,\n"
-"\twhich contains all configuration files. Please be\n"
-"\tcareful during the restore step to not overwrite:\n"
-"\t\t/etc/passwd \n"
-"\t\t/etc/group \n"
-"\t\t/etc/fstab\n"
-"\n"
-" - Backup User files: \n"
-"\n"
-"\tThis option allows you select all users that you want \n"
-"\tto backup.\n"
-"\tTo preserve disk space, it is recommended that you \n"
-"\tdo not include web browser's cache.\n"
-"\n"
-" - Backup Other files: \n"
-"\n"
-"\tThis option allows you to add more data to save.\n"
-"\tWith the other backup it's not possible at the \n"
-"\tmoment to select select incremental backup.\t\t\n"
-" \n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerful \n"
-"\toption for backup. This option allows you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed afterward.\n"
-"\tThen you will be able, during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this option all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3181
-msgid ""
-"restore description:\n"
-" \n"
-"Only the most recent date will be used ,because with incremental \n"
-"backups it is necesarry to restore one by one each older backups.\n"
-"\n"
-"So if you don't like to restore an user please unselect all his\n"
-"check box.\n"
-"\n"
-"Otherwise, you are able to select only one of this\n"
-"\n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerfull \n"
-"\toption to use backup, this option allow you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed after.\n"
-"\tSo you will be able during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this options all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3207 ../../standalone/drakbackup_.c:3282
-msgid ""
-" Copyright (C) 2001 MandrakeSoft by DUPONT Sebastien <dupont_s\\@epita.fr>"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3209 ../../standalone/drakbackup_.c:3284
-msgid ""
-" This program is free software; you can redistribute it and/or modify\n"
-" it under the terms of the GNU General Public License as published by\n"
-" the Free Software Foundation; either version 2, or (at your option)\n"
-" any later version.\n"
-"\n"
-" This program is distributed in the hope that it will be useful,\n"
-" but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-" GNU General Public License for more details.\n"
-"\n"
-" You should have received a copy of the GNU General Public License\n"
-" along with this program; if not, write to the Free Software\n"
-" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3223
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select: \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, DrakBackup will remove \n"
-" your original directory and verify that all \n"
-" backup files are not corrupted. It is recommended \n"
-" you do a last backup before restoring.\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3261
-msgid ""
-"options description:\n"
-"\n"
-"Please be careful when you are using ftp backup, because only \n"
-"backups that are already built are sent to the server.\n"
-"So at the moment, you need to build the backup on your hard \n"
-"drive before sending it to the server.\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3270
-msgid ""
-"\n"
-"Restore Backup Problems:\n"
-"\n"
-"During the restore step, Drakbackup will verify all your\n"
-"backup files before restoring them.\n"
-"Before the restore, Drakbackup will remove \n"
-"your original directory, and you will loose all your \n"
-"data. It is important to be careful and not modify the \n"
-"backup data files by hand.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3298
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, Drakbackup will remove\n"
-" your original directory and verify that all\n"
-" backup files are not corrupted. It is recommended\n"
-" you do a last backup before restoring.\n"
-" \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakboot_.c:58
-#, c-format
-msgid "Installation of %s failed. The following error occured:"
-msgstr "Ē åćźįōÜóōįóē ōļõ %s įšŻōõ÷å. ŠńļźėŽčēźå ōļ įźüėļõčļ óöÜėģį:"
-
-#: ../../standalone/drakfont_.c:229
-msgid "Search installed fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:231
-msgid "Unselect fonts installed"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:252
-msgid "parse all fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:253
-#, fuzzy
-msgid "no fonts found"
-msgstr "äåķ āńŻčēźå šńļóįńģļćŻįņ äéźōżļõ"
-
-#: ../../standalone/drakfont_.c:261 ../../standalone/drakfont_.c:303
-#: ../../standalone/drakfont_.c:352 ../../standalone/drakfont_.c:410
-#: ../../standalone/drakfont_.c:417 ../../standalone/drakfont_.c:443
-#: ../../standalone/drakfont_.c:455 ../../standalone/drakfont_.c:468
-#, fuzzy
-msgid "done"
-msgstr "Ļėļźėēńžčēźå"
-
-#: ../../standalone/drakfont_.c:265
-msgid "could not find any font in your mounted partitions"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:301
-msgid "Reselect correct fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:304
-msgid "could not find any font.\n"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:327
-msgid "Search fonts in installed list"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:350
-msgid "Fonts copy"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:353
-#, fuzzy
-msgid "True Type fonts installation"
-msgstr "Šńļåōļéģįóßį åćźįōÜóōįóēņ"
-
-#: ../../standalone/drakfont_.c:357
-msgid "please wait during ttmkfdir..."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:359
-msgid "True Type install done"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:366 ../../standalone/drakfont_.c:382
-msgid "Fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:370 ../../standalone/drakfont_.c:386
-#: ../../standalone/drakfont_.c:406
-msgid "type1inst building"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:375 ../../standalone/drakfont_.c:390
-msgid "Ghostscript referencing"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:397
-msgid "ttf fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:401
-msgid "pfm fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:411
-msgid "Suppress temporary Files"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:414
-msgid "Restart XFS"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:453 ../../standalone/drakfont_.c:463
-msgid "Suppress Fonts Files"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:465
-#, fuzzy
-msgid "xfs restart"
-msgstr "įšįćüńåõóē"
-
-#: ../../standalone/drakfont_.c:472 ../../standalone/drakfont_.c:760
-msgid ""
-"Before installing any fonts, be sure that you have the right to use and "
-"install them on your system.\n"
-"\n"
-"-You can install the fonts using the normal way. In rare cases, bogus fonts "
-"may hang up your X Server."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:547
-#, fuzzy
-msgid "Fonts Importation"
-msgstr "Ģļńöļš. źįōįōģŽó."
-
-#: ../../standalone/drakfont_.c:562
-msgid "Get Windows Fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:564
-msgid "Uninstall Fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:568
-#, fuzzy
-msgid "Advanced Options"
-msgstr "Ńżčģéóē LĮĶ"
-
-#: ../../standalone/drakfont_.c:570
-#, fuzzy
-msgid "Font List"
-msgstr "Óēģåßļ óżķäåóēņ"
-
-#: ../../standalone/drakfont_.c:739
-#, fuzzy
-msgid "Choose the applications that will support the fonts :"
-msgstr "ÅšéėŻīōå źįōįōģŽóåéņ šńļņ ģļńöļšļßēóē"
-
-#: ../../standalone/drakfont_.c:743
-msgid "Ghostscript"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:747
-#, fuzzy
-msgid "StarOffice"
-msgstr "Ćńįöåßļ"
-
-#: ../../standalone/drakfont_.c:751
-#, fuzzy
-msgid "Abiword"
-msgstr "Įźżńłóē"
-
-#: ../../standalone/drakfont_.c:755
-#, fuzzy
-msgid "Generic Printers"
-msgstr "ÅźōõšłōŽņ"
-
-#: ../../standalone/drakfont_.c:792
-msgid "Select the font file or directory and click on 'Add'"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:828
-#, fuzzy
-msgid "Install List"
-msgstr "ÅćźįōÜóōįóē óõóōŽģįōļņ"
-
-#: ../../standalone/drakfont_.c:858
-msgid "click here if you are sure."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:860
-msgid "here if no."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:897
-msgid "Unselected All"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:899
-#, fuzzy
-msgid "Selected All"
-msgstr "ÅšéėŻīōå įń÷åßļ"
-
-#: ../../standalone/drakfont_.c:901
-#, fuzzy
-msgid "Remove List"
-msgstr "ĮšļģåģįźńõóģŻķļņ åźōõšłōŽņ"
-
-#: ../../standalone/drakfont_.c:919 ../../standalone/drakfont_.c:939
-#, fuzzy
-msgid "Initials tests"
-msgstr "ĢŽķõģį Init"
-
-#: ../../standalone/drakfont_.c:920
-#, fuzzy
-msgid "Copy fonts on your system"
-msgstr "Äåķ āńŻčēźå šńļóįńģļćŻįņ äéźōżļõ óōļ óżóōēģÜ óįņ!"
-
-#: ../../standalone/drakfont_.c:921
-msgid "Install & convert Fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:922
-#, fuzzy
-msgid "Post Install"
-msgstr "ÅćźįōÜóōįóē"
-
-#: ../../standalone/drakfont_.c:940
-#, fuzzy
-msgid "Remove fonts on your system"
-msgstr "Äåķ āńŻčēźå šńļóįńģļćŻįņ äéźōżļõ óōļ óżóōēģÜ óįņ!"
-
-#: ../../standalone/drakfont_.c:941
-#, fuzzy
-msgid "Post Uninstall"
-msgstr "øīļäļņ"
-
-#: ../../standalone/drakgw_.c:43 ../../standalone/drakgw_.c:200
-msgid "Internet Connection Sharing"
-msgstr "Åšéģåńéóģüņ óżķäåóēņ Internet"
-
-#: ../../standalone/drakgw_.c:138
-msgid "Internet Connection Sharing currently enabled"
-msgstr "Åšéģåńéóģüņ óżķäåóēņ Internet åķåńćļšļéēģŻķļņ"
-
-#: ../../standalone/drakgw_.c:139
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently enabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-"Ē ńżčģéóē ōļõ åšéģåńéóģļż óżķäåóēņ Internet Ż÷åé Žäē ćßķåé.\n"
-"ĮõōŽ ōē óōéćģŽ åßķįé åķåńćŽ.\n"
-"\n"
-"Ōß čŻėåōå ķį źÜķåōå;"
-
-#: ../../standalone/drakgw_.c:143
-msgid "disable"
-msgstr "įšåķåńćļšļßēóē"
-
-#: ../../standalone/drakgw_.c:143 ../../standalone/drakgw_.c:168
-msgid "dismiss"
-msgstr "Üźõńļ"
-
-#: ../../standalone/drakgw_.c:143 ../../standalone/drakgw_.c:168
-msgid "reconfigure"
-msgstr "åšįķįńżčģéóē"
-
-#: ../../standalone/drakgw_.c:146
-msgid "Disabling servers..."
-msgstr "Įšåķåńćļšļßēóē åīõšēńåōēōžķ..."
-
-#: ../../standalone/drakgw_.c:154
-msgid "Internet connection sharing is now disabled."
-msgstr "Åšéģåńéóģüņ óżķäåóēņ Internet įšåķåńćļšļéēģŻķļņ"
-
-#: ../../standalone/drakgw_.c:163
-msgid "Internet Connection Sharing currently disabled"
-msgstr "Åšéģåńéóģüņ óżķäåóēņ Internet įšåķåńćļšļéēģŻķļņ"
-
-#: ../../standalone/drakgw_.c:164
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently disabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-"Ē ńżčģéóē ōļõ åšéģåńéóģļż óżķäåóēņ Internet Ż÷åé Žäē ćßķåé.\n"
-"ĮõōŽ ōē óōéćģŽ åßķįé įķåķåńćüņ.\n"
-"\n"
-"Ōß čŻėåōå ķį źÜķåōå;"
-
-#: ../../standalone/drakgw_.c:168
-msgid "enable"
-msgstr "åķåńćļšļßēóē"
-
-#: ../../standalone/drakgw_.c:175
-msgid "Enabling servers..."
-msgstr "Åķåńćļšļßēóē åīõšēńåōēōžķ..."
-
-#: ../../standalone/drakgw_.c:180
-msgid "Internet connection sharing is now enabled."
-msgstr "Åšéģåńéóģüņ óżķäåóēņ Internet åķåńćļšļéēģŻķļņ"
-
-#: ../../standalone/drakgw_.c:201
-msgid ""
-"You are about to configure your computer to share its Internet connection.\n"
-"With that feature, other computers on your local network will be able to use "
-"this computer's Internet connection.\n"
-"\n"
-"Note: you need a dedicated Network Adapter to set up a Local Area Network "
-"(LAN)."
-msgstr ""
-"Ļ õšļėļćéóōŽņ óįņ ģšļńåß ķį ńõčģéóōåß Żōóé žóōå ķį ģļéńÜęåōįé \n"
-"ōēķ óżķäåóē ģå ōļ äéįäßźōõļ ģå Üėėļõņ õšļėļćéóōŻņ.\n"
-"\n"
-"Óēģåßłóē: ×ńåéÜęåóōå Żķįķ šńļóįńģļćŻį äéźōżļõ Żōóé žóōå ķį äēģéļõńćŽóåōå Żķį "
-"ōļšéźü äßźōõļ (LAN)."
-
-#: ../../standalone/drakgw_.c:227
-#, c-format
-msgid "Interface %s (using module %s)"
-msgstr "ÄéåšéöÜķåéį %s (÷ńŽóē įńčńžģįōļņ %s)"
-
-#: ../../standalone/drakgw_.c:228
-#, c-format
-msgid "Interface %s"
-msgstr "ÄéåšéöÜķåéį %s"
-
-#: ../../standalone/drakgw_.c:236
-msgid "No network adapter on your system!"
-msgstr "Äåķ āńŻčēźå šńļóįńģļćŻįņ äéźōżļõ óōļ óżóōēģÜ óįņ!"
-
-#: ../../standalone/drakgw_.c:237
-msgid ""
-"No ethernet network adapter has been detected on your system. Please run the "
-"hardware configuration tool."
-msgstr ""
-"Äåķ āńŻčēźå šńļóįńģļćŻįņ äéźōżļõ Ethernet óōļ óżóōēģÜ óįņ. Šįńįźįėž "
-"÷ńēóéģļšļéåßóōå ōļ šńüćńįģģį ńżčģéóēņ õėéźļż."
-
-#: ../../standalone/drakgw_.c:243
-msgid "Network interface"
-msgstr "ÓõóźåõŽ äéźōżļõ"
-
-#: ../../standalone/drakgw_.c:244
-#, c-format
-msgid ""
-"There is only one configured network adapter on your system:\n"
-"\n"
-"%s\n"
-"\n"
-"I am about to setup your Local Area Network with that adapter."
-msgstr ""
-"ÕšÜń÷åé ģüķļ Żķįņ ńõčģéóģŻķļņ šńļóįńģļćŻįņ äéźōżļõ óōļ óżóōēģÜ óįņ:\n"
-"\n"
-"%s\n"
-"\n"
-"Čį ńõčģéóōåß ōļ Ōļšéźü óįņ Äßźōõļ ģå įõōüķ ōļķ šńļóįńģļćŻį."
-
-#: ../../standalone/drakgw_.c:253
-msgid ""
-"Please choose what network adapter will be connected to your Local Area "
-"Network."
-msgstr ""
-"Šįńįźįėž åšéėŻīōå ōé šńļóįńģļćŻįņ äéźōżļõ čį óõķäåčåß\n"
-"óōļ ōļšéźü óįņ äßźōõļ."
-
-#: ../../standalone/drakgw_.c:271
-#, fuzzy
-msgid "Network interface already configured"
-msgstr "Ē ļčüķē äåķ Ż÷åé ńõčģéóōåß įźüģē"
-
-#: ../../standalone/drakgw_.c:272
-#, c-format
-msgid ""
-"Warning, the network adapter (%s) is already configured.\n"
-"\n"
-"Do you want an automatic re-configuration?\n"
-"\n"
-"You can do it manually but you need to know what you're doing."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:277
-#, fuzzy
-msgid "Automatic reconfiguration"
-msgstr "Boot Ōżšļõ Ńżčģéóē"
-
-#: ../../standalone/drakgw_.c:278
-#, fuzzy
-msgid "Show current interface configuration"
-msgstr "Ńõčģßóåéņ Äéįäéźōżļõ (Internet)"
-
-#: ../../standalone/drakgw_.c:280
-#, c-format
-msgid ""
-"Current configuration of `%s':\n"
-"\n"
-"Network: %s\n"
-"IP address: %s\n"
-"IP attribution: %s\n"
-"Driver: %s"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:292
-msgid ""
-"I can keep your current configuration and assume you already set up a DHCP "
-"server; in that case please verify I correctly read the C-Class Network that "
-"you use for your local network; I will not reconfigure it and I will not "
-"touch your DHCP server configuration.\n"
-"\n"
-"Else, I can reconfigure your interface and (re)configure a DHCP server for "
-"you.\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:297
-msgid "C-Class Local Network"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:298
-#, fuzzy
-msgid "(This) DHCP Server IP"
-msgstr "IP äéåżčõķóē åīõšēńåōēōŽ CUPS:"
-
-#: ../../standalone/drakgw_.c:299
-msgid "Re-configure interface and DHCP server"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:306
-msgid "The Local Network did not finish with `.0', bailing out."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:317
-#, c-format
-msgid "Potential LAN address conflict found in current config of %s!\n"
-msgstr ""
-"ŠéčįķŽ åšįķį÷ńēóéģļšļßēóē ōēņ äéåżčõķóēņ LAN óōēķ ōńŻ÷ļõóį ńżčģéóē ōļõ %s!\n"
-
-#: ../../standalone/drakgw_.c:325 ../../standalone/drakgw_.c:331
-msgid "Firewalling configuration detected!"
-msgstr "Įķé÷ķåżōēźå ńżčģéóē firewall!"
-
-#: ../../standalone/drakgw_.c:326 ../../standalone/drakgw_.c:332
-msgid ""
-"Warning! An existing firewalling configuration has been detected. You may "
-"need some manual fix after installation."
-msgstr ""
-"Šńļóļ÷Ž! Įķé÷ķåżōēźå õšÜń÷ļõóį ńżčģéóē firewall. ŗółņ ÷ńåéįóōļżķ ļńéóģŻķåņ"
-"\"÷åéńļźßķēōåņ\" ńõčģßóåéņ ģåōÜ ōēķ åćźįōÜóōįóē."
-
-#: ../../standalone/drakgw_.c:340
-msgid "Configuring..."
-msgstr "Ńżčģéóē..."
-
-#: ../../standalone/drakgw_.c:341
-msgid "Configuring scripts, installing software, starting servers..."
-msgstr "Ńżčģéóē, åćźįōÜóōįóē ėļćéóģéźļż, åźźßķēóē åīõšēńåōēōžķ..."
-
-#: ../../standalone/drakgw_.c:378
-#, c-format
-msgid "Problems installing package %s"
-msgstr "Šńüāėēģį źįōÜ ōēķ åćźįōÜóōįóē ōļõ šįźŻōļõ %s"
-
-#: ../../standalone/drakgw_.c:672
-msgid ""
-"Everything has been configured.\n"
-"You may now share Internet connection with other computers on your Local "
-"Area Network, using automatic network configuration (DHCP)."
-msgstr ""
-"'Ļėį Ż÷ļõķ ńõčģéóōåß.\n"
-"Ģšļńåßōå ōžńį ķį ģļéńÜęåóōå ōēķ óżķäåóŽ óįņ óōļ Äéįäßźōõļ ģå Üėėļõņ "
-"õšļėļćéóōŻņ óōļ ōļšéźü óįņ äßźōõļ, ģå ōēķ ÷ńŽóē įõōüģįōēņ ńżčģéóēņ äéźōżļõ "
-"(DHCP)."
-
-#: ../../standalone/drakgw_.c:689
-msgid "The setup has already been done, but it's currently disabled."
-msgstr "Ē ńżčģéóē Ż÷åé Žäē ćßķåé, įėėÜ įõōŽ ōē óōéćģŽ åßķįé įšåķåńćļšļéēģŻķē."
-
-#: ../../standalone/drakgw_.c:690
-msgid "The setup has already been done, and it's currently enabled."
-msgstr "Ē ńżčģéóē Ż÷åé Žäē ćßķåé, źįé įõōŽ ōē óōéćģŽ åßķįé åķåńćļšļéēģŻķē."
-
-#: ../../standalone/drakgw_.c:691
-msgid "No Internet Connection Sharing has ever been configured."
-msgstr "Ļ Åšéģåńéóģüņ óżķäåóēņ Internet äåķ Ż÷åé ńõčģéóōåß šļōŻ."
-
-#: ../../standalone/drakgw_.c:696
-msgid "Internet connection sharing configuration"
-msgstr "Ńżčģéóē åšéģåńéóģļż óżķäåóēņ Äéįäéźōżļõ (internet)"
-
-#: ../../standalone/drakgw_.c:703
-#, c-format
-msgid ""
-"Welcome to the Internet Connection Sharing utility!\n"
-"\n"
-"%s\n"
-"\n"
-"Click on Configure to launch the setup wizard."
-msgstr ""
-"Źįėłņ Žėčįōå óōļ åńćįėåßļ ńżčģéóēņ ōļõ Åšéģåńéóģļż óżķäåóēņ Internet!\n"
-"\n"
-"%s\n"
-"\n"
-"ŹÜķōå źėßź óōļ Ńżčģéóē ćéį ķį īåźéķŽóåōå ōļķ ļäēćü åćźįōÜóōįóēņ."
-
-#: ../../standalone/draknet_.c:80
-#, c-format
-msgid "Network configuration (%d adapters)"
-msgstr "Ńżčģéóē äéźōżļõ (%d adapters)"
-
-#: ../../standalone/draknet_.c:87 ../../standalone/draknet_.c:595
-msgid "Profile: "
-msgstr "Šńļößė: "
-
-#: ../../standalone/draknet_.c:95
-msgid "Del profile..."
-msgstr "ÄéįćńįöŽ šńļößė..."
-
-#: ../../standalone/draknet_.c:101
-msgid "Profile to delete:"
-msgstr "Šńļößė ćéį äéįćńįöŽ:"
-
-#: ../../standalone/draknet_.c:129
-msgid "New profile..."
-msgstr "ĶŻļ šńļößė..."
-
-#: ../../standalone/draknet_.c:135
-msgid ""
-"Name of the profile to create (the new profile is created as a copy of the "
-"current one) :"
-msgstr ""
-
-#: ../../standalone/draknet_.c:161
-msgid "Hostname: "
-msgstr "¼ķļģį óõóōŽģįōļņ: "
-
-#: ../../standalone/draknet_.c:168
-msgid "Internet access"
-msgstr "Šńüóāįóē óōļ Internet"
-
-#: ../../standalone/draknet_.c:181
-msgid "Type:"
-msgstr "Ōżšļņ:"
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-msgid "Gateway:"
-msgstr "Šżėē äéźōżļõ:"
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-msgid "Interface:"
-msgstr "ÄéåšéöÜķåéį:"
-
-#: ../../standalone/draknet_.c:195
-msgid "Status:"
-msgstr "ŹįōÜóōįóē:"
-
-#: ../../standalone/draknet_.c:202
-msgid "Wait please"
-msgstr ""
-
-#: ../../standalone/draknet_.c:220
-msgid "Configure Internet Access..."
-msgstr "Ńżčģéóē Šńüóāįóēņ óōļ Internet..."
-
-#: ../../standalone/draknet_.c:227 ../../standalone/draknet_.c:449
-msgid "LAN configuration"
-msgstr "Ńżčģéóē LAN"
-
-#: ../../standalone/draknet_.c:232
-msgid "Driver"
-msgstr "Ļäēćüņ"
-
-#: ../../standalone/draknet_.c:232
-msgid "Interface"
-msgstr "ÄéåšéöÜķåéį"
-
-#: ../../standalone/draknet_.c:232
-msgid "Protocol"
-msgstr "Šńłōüźļėėļ"
-
-#: ../../standalone/draknet_.c:232
-#, fuzzy
-msgid "State"
-msgstr "ŹįōÜóōįóē:"
-
-#: ../../standalone/draknet_.c:244
-msgid "Configure Local Area Network..."
-msgstr "Ńżčģéóē ōļšéźļż äéźōżļõ..."
-
-#: ../../standalone/draknet_.c:256
-msgid "Click here to launch the wizard ->"
-msgstr ""
-
-#: ../../standalone/draknet_.c:257
-msgid "Wizard..."
-msgstr "ĢÜćļņ..."
-
-#: ../../standalone/draknet_.c:283
-msgid "Apply"
-msgstr "Åķåńćļšļßēóē"
-
-#: ../../standalone/draknet_.c:302
-msgid "Please Wait... Applying the configuration"
-msgstr "Šįńįźįėž šåńéģŻķåōå... ÅöįńģļćŽ ńõčģßóåłķ"
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-msgid "Connected"
-msgstr "ÓõķäŻčēźå"
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-msgid "Not connected"
-msgstr "Äå óõķäŻčēźå"
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Connect..."
-msgstr "Óżķäåóē..."
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Disconnect..."
-msgstr "Įšļóżķäåóē..."
-
-#: ../../standalone/draknet_.c:404
-msgid ""
-"Warning, another Internet connection has been detected, maybe using your "
-"network"
-msgstr ""
-
-#: ../../standalone/draknet_.c:431
-msgid ""
-"You don't have any configured interface.\n"
-"Configure them first by clicking on 'Configure'"
-msgstr ""
-"Äåķ Ż÷åōå źÜšļéį ńõčéóģŻķē äéåšéöÜķåéį.\n"
-"Ńõčģßóōå ōéņ źÜķļķōįņ źėßź óōļ 'Ńżčģéóē'"
-
-#: ../../standalone/draknet_.c:453
-msgid "LAN Configuration"
-msgstr "Ńżčģéóē LĮĶ"
-
-#: ../../standalone/draknet_.c:464
-#, c-format
-msgid "Adapter %s: %s"
-msgstr "ŠńļóįńģļćŻįņ %s: %s"
-
-#: ../../standalone/draknet_.c:470
-msgid "Boot Protocol"
-msgstr "Šńłōüźļėėļ Åźźßķēóēņ"
-
-#: ../../standalone/draknet_.c:471
-msgid "Started on boot"
-msgstr "Īåźßķēóįķ óōēķ åźźßķēóē óõóōŽģįōļņ"
-
-#: ../../standalone/draknet_.c:472
-msgid "DHCP client"
-msgstr "šåėÜōēņ DHCP"
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-msgid "activate now"
-msgstr ""
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-msgid "deactivate now"
-msgstr ""
-
-#: ../../standalone/draknet_.c:503
-msgid ""
-"This interface has not been configured yet.\n"
-"Launch the configuration wizard in the main window"
-msgstr ""
-
-#: ../../standalone/draknet_.c:560
-msgid ""
-"You don't have any internet connection.\n"
-"Create one first by clicking on 'Configure'"
-msgstr ""
-"Äåķ Ż÷åōå óżķäåóē ģå ōļ internet.\n"
-"ÄēģéļõńćŽóōå ģßį źÜķļķōįņ źėßź óōļ 'Ńżčģéóē'"
-
-#: ../../standalone/draknet_.c:584
-msgid "Internet connection configuration"
-msgstr "Ńżčģéóē óżķäåóēņ Äéįäéźōżļõ (internet)"
-
-#: ../../standalone/draknet_.c:588
-msgid "Internet Connection Configuration"
-msgstr "Ńżčģéóē Óżķäåóēņ Äéįäéźōżļõ (internet)"
-
-#: ../../standalone/draknet_.c:597
-msgid "Connection type: "
-msgstr "Ōżšļņ óżķäåóēņ: "
-
-#: ../../standalone/draknet_.c:603
-msgid "Parameters"
-msgstr "ŠįńÜģåōńļé"
-
-#: ../../standalone/draknet_.c:621
-msgid "Gateway"
-msgstr "Šżėē äéźōżļõ"
-
-#: ../../standalone/draknet_.c:630
-msgid "Ethernet Card"
-msgstr "ŹÜńōį Ethernet"
-
-#: ../../standalone/draknet_.c:631
-msgid "DHCP Client"
-msgstr "ŠåėÜōēņ DHCP"
-
-#: ../../standalone/draksec_.c:31
-msgid "Setting security level"
-msgstr "Ńżčģéóē åšéšŻäļõ įóöįėåßįņ"
-
-#: ../../standalone/drakxconf_.c:47
-msgid "Control Center"
-msgstr "ŹŻķōńļ ÅėŻć÷ļõ"
-
-#: ../../standalone/drakxconf_.c:48
-msgid "Choose the tool you want to use"
-msgstr "ÅšéėŻīōå ōļ åńćįėåßļ šļõ čŻėåōå ķį ÷ńēóéģļšļéŽóåōå"
-
-#: ../../standalone/drakxtv_.c:48
-#, fuzzy
-msgid "Canada (cable)"
-msgstr "Źįķįäéźü (ŹåģšŻź)"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (bcast)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (cable)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (cable-hrc)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:49
-msgid "China (bcast)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:49
-msgid "Japan (bcast)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:49
-msgid "Japan (cable)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "East Europe"
-msgstr "Åõńžšē"
-
-#: ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "Ireland"
-msgstr "Éóėįķäéźü"
-
-#: ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "West Europe"
-msgstr "Åõńžšē"
-
-#: ../../standalone/drakxtv_.c:51
-#, fuzzy
-msgid "Australia"
-msgstr "óåéńéįźü"
-
-#: ../../standalone/drakxtv_.c:51
-msgid "Newzealand"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:52
-msgid "South Africa"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:53
-msgid "Argentina"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:58
-msgid ""
-"Please,\n"
-"type in your tv norm and country"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:60
-msgid "TV norm :"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:61
-msgid "Area :"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:65
-msgid "Scanning for TV channels in progress ..."
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:72
-msgid "Scanning for TV channels"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:83
-msgid "No TV Card detected!"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:84
-msgid ""
-"No TV Card has been detected on your machine. Please verify that a Linux-"
-"supported Video/TV Card is correctly plugged in.\n"
-"\n"
-"\n"
-"You can visit our hardware database at:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/hardware.php3"
-msgstr ""
-
-#: ../../standalone/keyboarddrake_.c:16
-msgid "usage: keyboarddrake [--expert] [keyboard]\n"
-msgstr "×ńŽóē: keyboarddrake [--expert] [keyboard]\n"
-
-#: ../../standalone/keyboarddrake_.c:29
-msgid "Please, choose your keyboard layout."
-msgstr "Šįńįźįėž åšéėŻīōå äéįńżčģéóē šėēźōńļėļćßļõ."
-
-#: ../../standalone/keyboarddrake_.c:36
-msgid "Do you want the BackSpace to return Delete in console?"
-msgstr "ČŻėåōå ōļ BackSpace ķį åšéóōńŻöåé Delete óōēķ źļķóüėį;"
-
-#: ../../standalone/livedrake_.c:24
-msgid "Change Cd-Rom"
-msgstr "ĮėėįćŽ Cd-Rom"
-
-#: ../../standalone/livedrake_.c:25
-msgid ""
-"Please insert the Installation Cd-Rom in your drive and press Ok when done.\n"
-"If you don't have it, press Cancel to avoid live upgrade."
-msgstr ""
-"Šįńįźįėž åéóÜćåōå ōļ CD åćźįōÜóōįóēņ óōļķ ļäēćü óįņ źįé šįōŽóōå Ļź.\n"
-"ÅÜķ äåķ ōļ Ż÷åōå, šįōŽóōå Įźżńłóē ćéį įšļöõćŽ äéźōõįźŽņ įķįāÜčģéóēņ."
-
-#: ../../standalone/livedrake_.c:35
-msgid "Unable to start live upgrade !!!\n"
-msgstr "Äåķ ģšļńž ķį īåźéķŽół ōļ live upgrade!!!\n"
-
-#: ../../standalone/localedrake_.c:32
-msgid "The change is done, but to be effective you must logout"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:85 ../../standalone/logdrake_.c:501
-msgid "logdrake"
-msgstr "logdrake"
-
-#: ../../standalone/logdrake_.c:95
-msgid "Show only for the selected day"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:102
-msgid "/File/_New"
-msgstr "/Įń÷åßļ/_ĶŻļ"
-
-#: ../../standalone/logdrake_.c:102
-msgid "<control>N"
-msgstr "<control>N"
-
-#: ../../standalone/logdrake_.c:103
-msgid "/File/_Open"
-msgstr "/Įń÷åßļ/_Įķļéćģį"
-
-#: ../../standalone/logdrake_.c:103
-msgid "<control>O"
-msgstr "<control>O"
-
-#: ../../standalone/logdrake_.c:104
-msgid "/File/_Save"
-msgstr "/Įń÷åßļ/Įšļ_莟åõóē"
-
-#: ../../standalone/logdrake_.c:104
-msgid "<control>S"
-msgstr "<control>S"
-
-#: ../../standalone/logdrake_.c:105
-msgid "/File/Save _As"
-msgstr "/Įń÷åßļ/Įšļ莟åõóē _Łņ"
-
-#: ../../standalone/logdrake_.c:106
-msgid "/File/-"
-msgstr "/Įń÷åßļ/-"
-
-#: ../../standalone/logdrake_.c:108
-msgid "/_Options"
-msgstr "/_ÅšéėļćŻņ"
-
-#: ../../standalone/logdrake_.c:109
-msgid "/Options/Test"
-msgstr "/ÅšéėļćŻņ/ŌŻóō"
-
-#: ../../standalone/logdrake_.c:110
-msgid "/_Help"
-msgstr "/_ĀļŽčåéį"
-
-#: ../../standalone/logdrake_.c:111
-msgid "/Help/_About..."
-msgstr "/ĀļŽčåéį/_Ó÷åōéźÜ ģå..."
-
-#: ../../standalone/logdrake_.c:118
-msgid "-misc-fixed-medium-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr "-misc-fixed-medium-r-*-*-*-100-*-*-*-*-*-*,*"
-
-#: ../../standalone/logdrake_.c:119
-msgid "-misc-fixed-bold-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr "-misc-fixed-bold-r-*-*-*-100-*-*-*-*-*-*,*"
-
-#: ../../standalone/logdrake_.c:173
-#, fuzzy
-msgid "User"
-msgstr "Źłäéźü üķļģį"
-
-#: ../../standalone/logdrake_.c:174
-#, fuzzy
-msgid "Messages"
-msgstr "ģēķżģįōį"
-
-#: ../../standalone/logdrake_.c:175
-#, fuzzy
-msgid "Syslog"
-msgstr "syslog"
-
-#: ../../standalone/logdrake_.c:176
-msgid "Mandrake Tools Explanations"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:179
-msgid "search"
-msgstr "įķįęŽōēóē"
-
-#: ../../standalone/logdrake_.c:185
-msgid "A tool to monitor your logs"
-msgstr "øķį åńćįėåßļ ćéį ķį āėŻšåōå ōį log óįņ"
-
-#: ../../standalone/logdrake_.c:186
-msgid "Settings"
-msgstr "Ńõčģßóåéņ"
-
-#: ../../standalone/logdrake_.c:191
-msgid "matching"
-msgstr "ōįéńéÜęåé"
-
-#: ../../standalone/logdrake_.c:192
-msgid "but not matching"
-msgstr "äåķ ōįéńéÜęåé"
-
-#: ../../standalone/logdrake_.c:196
-msgid "Choose file"
-msgstr "ÅšéėŻīōå Żķį įń÷åßļ"
-
-#: ../../standalone/logdrake_.c:201
-msgid "Calendar"
-msgstr "Ēģåńļėüćéļ"
-
-#: ../../standalone/logdrake_.c:211
-msgid "Content of the file"
-msgstr "Šåńéå÷üģåķļ ōļõ įń÷åßļõ"
-
-#: ../../standalone/logdrake_.c:215 ../../standalone/logdrake_.c:390
-msgid "Mail/SMS alert"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:268
-#, c-format
-msgid "please wait, parsing file: %s"
-msgstr "šįńįźįėž šåńéģŻķåōå, åšåīåńćįóßį įń÷åßļõ: %s"
-
-#: ../../standalone/logdrake_.c:405
-#, fuzzy
-msgid "Mail/SMS alert configuration"
-msgstr "ÅėįöńéÜ ńżčģéóē"
-
-#: ../../standalone/logdrake_.c:406
-#, fuzzy
-msgid ""
-"Welcome to the mail/SMS configuration utility.\n"
-"\n"
-"Here, you'll be able to set up the alert system.\n"
-msgstr ""
-"Źįėžņ Žėčįōå óōļ åńćįėåßļ ńżčģéóēņ ōļõ proxy.\n"
-"\n"
-"Åäž, čį ģšļńŻóåōå ķį ńõčģßóåōå ōļõņ http źįé ftp proxies\n"
-"ģå Ž ÷łńßņ login źįé źłäéźü šńüóāįóēņ\n"
-
-#: ../../standalone/logdrake_.c:414
-#, fuzzy
-msgid "proftpd"
-msgstr "Apache, Pro-ftpd"
-
-#: ../../standalone/logdrake_.c:417
-msgid "sshd"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:418
-msgid "webmin"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:419
-#, fuzzy
-msgid "xinetd"
-msgstr "Ext2"
-
-#: ../../standalone/logdrake_.c:422
-#, fuzzy
-msgid "service setting"
-msgstr "ÅīõšēńåōēōŽņ"
-
-#: ../../standalone/logdrake_.c:423
-msgid ""
-"You will receive an alert if one of the selected service is no more running"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:433
-#, fuzzy
-msgid "load setting"
-msgstr "Ģļńöļšļßēóē"
-
-#: ../../standalone/logdrake_.c:434
-msgid "You will receive an alert if the load is higher than this value"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:447
-#, fuzzy
-msgid "alert configuration"
-msgstr "Ńõčģßóåéņ ÷ńłģÜōłķ"
-
-#: ../../standalone/logdrake_.c:448
-msgid "Configure the way the system will alert you"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:478
-msgid "Save as.."
-msgstr "Įšļ莟åõóē Łņ"
-
-#: ../../standalone/mousedrake_.c:49
-msgid "Please, choose the type of your mouse."
-msgstr "Šįńįźįėž åšéėŻīōå ōżšļ šļķōéźéļż."
-
-#: ../../standalone/mousedrake_.c:59
-msgid "no serial_usb found\n"
-msgstr "äåķ āńŻčēźå serial_usb\n"
-
-#: ../../standalone/mousedrake_.c:63
-msgid "Emulate third button?"
-msgstr "Åīļģļßłóē ōńßōļõ šėŽźōńļõ;"
-
-#: ../../standalone/scannerdrake_.c:53
-#, c-format
-msgid "%s found on %s, configure it ?"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:60
-#, fuzzy
-msgid "Select a scanner"
-msgstr "ÅšéėŻīōå źÜńōį ćńįöéźžķ"
-
-#: ../../standalone/scannerdrake_.c:80
-#, c-format
-msgid "This %s scanner is unsupported"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:94
-#, c-format
-msgid ""
-"Scannerdrake was not able to detect your %s scanner.\n"
-"Please select the device where your scanner is plugged"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:96
-#, fuzzy
-msgid "choose device"
-msgstr "ÓõóźåõŽ åźźßķēóēņ"
-
-#: ../../standalone/scannerdrake_.c:102
-#, c-format
-msgid ""
-"This %s scanner must be configured by printerdrake.\n"
-"You can launch printerdrake from the Mandrake Control Center in Hardware "
-"section."
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:107
-#, c-format
-msgid ""
-"Your %s scanner has been configured.\n"
-"You may now scan documents using ``XSane'' from Multimedia/Graphics in the "
-"applications menu."
-msgstr ""
-
-#: ../../standalone/tinyfirewall_.c:31
-msgid "Firewalling Configuration"
-msgstr "Ńżčģéóē Firewalling"
-
-#: ../../standalone/tinyfirewall_.c:44
-msgid "Firewalling configuration"
-msgstr "Ńżčģéóē firewalling"
-
-#: ../../standalone/tinyfirewall_.c:79
-msgid ""
-"Firewalling\n"
-"\n"
-"You already have set up a firewall.\n"
-"Click on Configure to change or remove the firewall"
-msgstr ""
-"Firewalling\n"
-"\n"
-"ø÷åōå Žäē óōēģģŻķļ Żķį firewall.\n"
-"ŹÜķōå źėßź óōļ Ńżčģéóē ćéį ķį įėėÜīåōå Ž ķį äéįćńÜųåōå ōļ firewall"
-
-#: ../../standalone/tinyfirewall_.c:83
-msgid ""
-"Firewalling\n"
-"\n"
-"Click on Configure to set up a standard firewall"
-msgstr ""
-"Firewalling\n"
-"\n"
-"ŹÜķōå źėßź óōļ Ńżčģéóē ćéį ķį óōŽóåōå Żķį ōõšéźü firewall"
-
-#: ../../steps.pm_.c:14
-msgid "Choose your language"
-msgstr "ÅšéėŻīōå ćėžóóį"
-
-#: ../../steps.pm_.c:15
-msgid "Select installation class"
-msgstr "ÅšéėŻīōå åćźįōÜóōįóē"
-
-#: ../../steps.pm_.c:16
-msgid "Hard drive detection"
-msgstr "Åķōļšéóģüņ óźėēńļż äßóźļõ"
-
-#: ../../steps.pm_.c:17
-msgid "Configure mouse"
-msgstr "Ńżčģéóē šļķōéźéļż"
-
-#: ../../steps.pm_.c:18
-msgid "Choose your keyboard"
-msgstr "ÅšéėŻīōå šėēźōńļėüćéļ"
-
-#: ../../steps.pm_.c:19
-msgid "Security"
-msgstr "ĮóöÜėåéį"
-
-#: ../../steps.pm_.c:20
-msgid "Setup filesystems"
-msgstr "Šńļåō. óõó. įń÷."
-
-#: ../../steps.pm_.c:21
-msgid "Format partitions"
-msgstr "Ģļńöļš. źįōįōģŽó."
-
-#: ../../steps.pm_.c:22
-msgid "Choose packages to install"
-msgstr "ÅšéėļćŽ šįźŻōłķ"
-
-#: ../../steps.pm_.c:23
-msgid "Install system"
-msgstr "ÅćźįōÜóōįóē óõóōŽģįōļņ"
-
-#: ../../steps.pm_.c:25
-msgid "Add a user"
-msgstr "Šńļó莟ē ÷ńŽóōē"
-
-#: ../../steps.pm_.c:26
-msgid "Configure networking"
-msgstr "Ńżčģéóē äéźōżļõ"
-
-#: ../../steps.pm_.c:28
-msgid "Configure services"
-msgstr "Ńżčģéóē õšēńåóéžķ"
-
-#: ../../steps.pm_.c:29
-msgid "Install bootloader"
-msgstr "Åćź. šń. åźźßķēóēņ"
-
-#: ../../steps.pm_.c:31
-msgid "Create a bootdisk"
-msgstr "ÄéóźŻōį åźźßķēóēņ"
-
-#: ../../steps.pm_.c:33
-msgid "Configure X"
-msgstr "Ńżčģéóē ×"
-
-#: ../../steps.pm_.c:34
-#, fuzzy
-msgid "Install system updates"
-msgstr "ÅćźįōÜóōįóē óõóōŽģįōļņ"
-
-#: ../../steps.pm_.c:35
-msgid "Exit install"
-msgstr "øīļäļņ"
-
-#: ../../tinyfirewall.pm_.c:9
-msgid ""
-"tinyfirewall configurator\n"
-"\n"
-"This configures a personal firewall for this Mandrake Linux machine.\n"
-"For a powerful dedicated firewall solution, please look to the\n"
-"specialized MandrakeSecurity Firewall distribution."
-msgstr ""
-"ńżčģéóē tinyfirewall\n"
-"\n"
-"Įõōü ńõčģßęåé ōļ šńļółšéźü óįņ firewall ćéį įõōü ōļ ģē÷Üķēģį Mandrake "
-"Linux.\n"
-"Ćéį ģéį éó÷õńŽ įöļóéłģŻķē ėżóē firewall, šįńįźįėž źļéōÜīōå óōēķ\n"
-"åéäéźåõģŻķē MandrakeSecurity Firewall äéįķļģŽ."
-
-#: ../../tinyfirewall.pm_.c:14
-msgid ""
-"We'll now ask you questions about which services you'd like to allow\n"
-"the Internet to connect to. Please think carefully about these\n"
-"questions, as your computer's security is important.\n"
-"\n"
-"Please, if you're not currently using one of these services, firewall\n"
-"it off. You can change this configuration anytime you like by\n"
-"re-running this application!"
-msgstr ""
-"Ōžńį čį óįņ źÜķļõģå åńłōŽóåéņ ćéį ōļ šļéŻņ õšēńåóßåņ čŻėåōå ķį įöŽóåōå\n"
-"ķį óõķäŻļķōįé óōļ Internet. Šįńįźįėž óźåöōåßōå šńļóåźōéźÜ ćéį įõōŻņ ōéņ\n"
-"åńłōŽóåéņ, źįčžņ ē įóöÜėåéį ōļõ õšļėļćéóōŽ óįņ åßķįé óēģįķō韎.\n"
-"\n"
-"Šįńįźįėž, įķ ōēķ ōńŻ÷ļõóį óōéćģŽ äåķ ÷ńēóéģļšļéåßōå źÜšļéį įšü įõōŻņ ōéņ "
-"õšēńåóßåņ,\n"
-"āćÜėōå ōēķ įšü ōļ firewall. Ģšļńåßōå ķį įėėÜīåōå įõōŻņ ōéņ ńõčģßóåéņ "
-"ļšļéį䎚ļōå\n"
-"óōéćģŽ čŻėåōå īįķįōńŻ÷ļķōįņ įõōŽķ ōēķ åöįńģļćŽ!"
-
-#: ../../tinyfirewall.pm_.c:21
-msgid ""
-"Are you running a web server on this machine that you need the whole\n"
-"Internet to see? If you are running a webserver that only needs to be\n"
-"accessed by this machine, you can safely answer NO here.\n"
-"\n"
-msgstr ""
-"ŌńŻ÷åōå Żķįķ åīõšēńåōēōŽ web óå įõōü ōļ ģē÷Üķēģį šļõ ÷ńåéÜęåóōå ķį ōļķ "
-"āėŻšåé\n"
-"ļėüźėēńļ ōļ internet; Įķ ōńŻ÷åōå Żķįķ åīõšńåōēōŽ web šļõ ģüķļ įõōü ōļ "
-"ģē÷Üķēģį\n"
-"÷ńåéÜęåōįé ķį ōļķ āėŻšåé, ōüōå ģšļńåßōå ķį įšįķōŽóåōå Ļ×É ģå įóöÜėåéį åäł.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:26
-msgid ""
-"Are you running a name server on this machine? If you didn't set one\n"
-"up to give away IP and zone information to the whole Internet, please\n"
-"answer no.\n"
-"\n"
-msgstr ""
-"ŌńŻ÷åōå name åīõšēńåōēōŽ óå įõōü ōļ ģē÷Üķēģį; Įķ äåķ ńõčģßóįōå Żķįķ\n"
-"žóōå ķį äßķåé IP źįé šėēńļöļńßåņ ęžķēņ óå üėļ ōļ internet, šįńįźįėž\n"
-"įšįķōŽóōå ü÷é.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:31
-msgid ""
-"Do you want to allow incoming Secure Shell (ssh) connections? This\n"
-"is a telnet-replacement that you might use to login. If you're using\n"
-"telnet now, you should definitely switch to ssh. telnet is not\n"
-"encrypted -- so some attackers can steal your password if you use\n"
-"it. ssh is encrypted and doesn't allow for this eavesdropping."
-msgstr ""
-"Do you want to allow incoming Secure Shell (ssh) connections? This\n"
-"is a telnet-replacement that you might use to login. If you're using\n"
-"telnet now, you should definitely switch to ssh. telnet is not\n"
-"encrypted -- so some attackers can steal your password if you use\n"
-"it. ssh is encrypted and doesn't allow for this eavesdropping.äåķ åßķįé\n"
-"źńõšōļćńįöēģŻķļ -- ļšüōå źÜšļéļé ōįńįīßåņ ģšļńļżķ ķį źėŻųļõķ ōļķ źłäéźü\n"
-"šńüóāįóēņ įķ ōļ ÷ńēóéģļšļéåßōå. To ssh åßķįé źńõšōļćńįöēģŻķļ źįé äåķ ōļ "
-"åšéōńŻšåé įõōü."
-
-#: ../../tinyfirewall.pm_.c:36
-msgid ""
-"Do you want to allow incoming telnet connections?\n"
-"This is horribly unsafe, as we explained in the previous screen. We\n"
-"strongly recommend answering No here and using ssh in place of\n"
-"telnet.\n"
-msgstr ""
-"ČŻėåōå ķį åšéōńŻųåōå åéóåń÷üģåķåņ óõķäŻóåéņ telnet;\n"
-"Įõōü åßķįé ōńįćéźÜ ģē įóöįėŻņ, üšłņ åīēćŽóįģå óōēķ šńļēćļżģåķē ļčüķē.\n"
-"Šńļōåßķļõģå ķį įšįķōŽóåōå ü÷é åäž źįé ķį ÷ńēóéģļšļéŽóåōå ōļ ssh óōē čŻóē "
-"ōļõ\n"
-"telnet.\n"
-
-#: ../../tinyfirewall.pm_.c:41
-msgid ""
-"Are you running an FTP server here that you need accessible to the\n"
-"Internet? If you are, we strongly recommend that you only use it for\n"
-"Anonymous transfers. Any passwords sent by FTP can be stolen by some\n"
-"attackers, since FTP also uses no encryption for transferring passwords.\n"
-msgstr ""
-"ŌńŻ÷åōå Żķįķ FTP åīõšēńåōēōŽ šļõ ÷ńåéÜęåōįé ķį åßķįé šńļóāÜóéģļņ óōļ "
-"Internet;\n"
-"Åįķ ķįé, ōüōå šńļōåßķļõģå ķį ōļ ÷ńēóéģļšļéåßōå ćéį Įķžķõģåņ ģåōįöļńŻņ. "
-"Ļšļé䎚ļōå\n"
-"źłäéźļß šńüóāįóēņ óōŻėķļķōįé įšü ōļ FTP ģšļńļżķ ķį źėįšļżķ įšü źÜšļéļõņ "
-"ōįńįīßåņ,\n"
-"įöļż ōļ FTP åšßóēņ äåķ ÷ńēóéģļšļéåß źńõšōļćńÜöēóē ćéį ōēķ ģåōįöļńÜ źłäéźžķ "
-"šńüóāįóēņ\n"
-
-#: ../../tinyfirewall.pm_.c:46
-msgid ""
-"Are you running a mail server here? If you're sending you \n"
-"messages through pine, mutt or any other text-based mail client,\n"
-"you probably are. Otherwise, you should firewall this off.\n"
-"\n"
-msgstr ""
-"ŌńŻ÷åōå Żķįķ åīõšēńåōēōŽ ōį÷õäńļģåßļõ åäž; Åįķ óōŻėķåōå ōį \n"
-"ģēķżģįōÜ óįņ ģŻół pine, mutt Ž Üėėļõ šåėÜōē ōį÷õäńļģåßļõ įšü ōēķ źļķóüėį,\n"
-"ōüōå šéčįķüķ ķį ōńŻ÷åōå. Įėėéžņ čį šńŻšåé ķį ōļ šåńéļńßóåōå ģå firewall "
-"įõōü.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:51
-msgid ""
-"Are you running a POP or IMAP server here? This would\n"
-"be used to host non-web-based mail accounts for people via \n"
-"this machine.\n"
-"\n"
-msgstr ""
-"ŌńŻ÷åōå Żķįķ POP Ž IMAP åīõšēńåōēōŽ åäž; Įõōü ÷ńēóéģļšļéåßōįé\n"
-"ćéį šįńļ÷Ž ėļćįńéįóģžķ ōį÷õäńļģåßļõ ģē āįóéóģŻķļõ óōļ web ćéį įķčńžšļõņ \n"
-"ģŻół įõōļż ōļõ ģē÷įķŽģįōļņ.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:56
-msgid ""
-"You appear to be running a 2.2 kernel. If your network IP\n"
-"is automatically set by a computer in your home or office \n"
-"(dynamically assigned), we need to allow for this. Is\n"
-"this the case?\n"
-msgstr ""
-"Öįßķåōįé šłņ ōńŻ÷åōå Żķįķ 2.2 šõńŽķį. ÅÜķ ē IP óįņ\n"
-"åßķįé äõķįģ韎, šńŻšåé ķį ōļ åšéōńŻųļõģå įõōü. Åßķįé įõōŽ \n"
-"ē šåńßšōłóŽ óįņ;\n"
-
-#: ../../tinyfirewall.pm_.c:61
-msgid ""
-"Is your computer getting time syncronized to another computer?\n"
-"Mostly, this is used by medium-large Unix/Linux organizations\n"
-"to synchronize time for logging and such. If you're not part\n"
-"of a larger office and haven't heard of this, you probably \n"
-"aren't."
-msgstr ""
-"Óõć÷ńļķßęåōįé ē žńį ōļõ õšļėļćéóōŽ óįņ ģå Üėėļķ õšļėļćéóōŽ;\n"
-"Šåńéóóüōåńļ, įõōü ÷ńēóéģļšļéåßōįé įšü ģåćįėļģåóįßļõņ ļńćįķéóģļżņ\n"
-"ģå Unix/Linux ćéį ķį óõć÷ńļķßęļķōįé ōį logs źėš. Åįķ äåķ åßóōå ģŻńļņ\n"
-"åķüņ ģåćÜėļõ ćńįöåßļõ źįé äåķ Ż÷åōå įźļżóåé ćéį įõōü, ōüōå šéčįķüķ \n"
-"ķį ģēķ éó÷żåé įõōü."
-
-#: ../../tinyfirewall.pm_.c:66
-msgid ""
-"Configuration complete. May we write these changes to disk?\n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-"Ē Ńżčģéóē ļėļźėēńžčēźå. Ķį ćńįöōļżķ įõōŻņ ļé įėėįćŻņ óōļ äßóźļ;\n"
-"\n"
-"\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:82
-#, c-format
-msgid "Can't open %s: %s\n"
-msgstr "Įäõķįģßį įķļßćģįōļņ %s: %s\n"
-
-#: ../../tinyfirewall.pm_.c:84
-#, c-format
-msgid "Can't open %s for writing: %s\n"
-msgstr "ÓöÜėģį źįōÜ ōļ Üķļéćģį ōļõ %s ćéį åććńįöŽ: %s\n"
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "No I don't need DHCP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "Yes I need DHCP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "No I don't need NTP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "Yes I need NTP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-msgid "Don't Save"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-#: ../../tinyfirewall.pm_.c:206
-msgid "Save & Quit"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:197 ../../tinyfirewall.pm_.c:201
-#, fuzzy
-msgid "Firewall Configuration Wizard"
-msgstr "Ńżčģéóē Firewalling"
-
-#: ../../tinyfirewall.pm_.c:199
-msgid "No (firewall this off from the internet)"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:200
-msgid "Yes (allow this through the firewall)"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:232
-#, fuzzy
-msgid "Please Wait... Verifying installed packages"
-msgstr "Šįńįźįėž šåńéģŻķåōå, šńļåōļéģįóßį åćźįōÜóōįóēņ"
-
-#: ../../tinyfirewall.pm_.c:238
-#, c-format
-msgid ""
-"Failure installing the needed packages : %s and Bastille.\n"
-" Try to install them manually."
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Web/FTP"
-msgstr "Web/FTP"
-
-#: ../../share/compssUsers:999
-msgid "Network Computer (client)"
-msgstr "ÕšļėļćéóōŽņ Äéźōżļõ (šåėÜōēņ)"
-
-#: ../../share/compssUsers:999
-msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr "NFS server, SMB server, Proxy server, ssh server"
-
-#: ../../share/compssUsers:999
-msgid "Office"
-msgstr "Ćńįöåßļ"
-
-#: ../../share/compssUsers:999
-msgid "Gnome Workstation"
-msgstr "Óōįčģüņ åńćįóßįņ Gnome"
-
-#: ../../share/compssUsers:999
-msgid "Tools for your Palm Pilot or your Visor"
-msgstr "Åńćįėåßį ćéį Palm Pilot Ž Visor"
-
-#: ../../share/compssUsers:999
-msgid "Workstation"
-msgstr "Óōįčģüņ åńćįóßįņ"
-
-#: ../../share/compssUsers:999
-msgid "Firewall/Router"
-msgstr "Firewall/Router"
-
-#: ../../share/compssUsers:999
-msgid "Domain Name and Network Information Server"
-msgstr "Domain Name źįé Network Information Server"
-
-#: ../../share/compssUsers:999
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr "Åńćįėåßį ćńįöåßļõ: ÅšåīåńćįóōŻņ źåéģŻķļõ, ėļćéóōéźÜ öżėėį źėš"
-
-#: ../../share/compssUsers:999
-msgid "Audio-related tools: mp3 or midi players, mixers, etc"
-msgstr "Åńćįėåßį Ž÷ļõ: mp3 Ž midi players, ģßźōåņ źėš"
-
-#: ../../share/compssUsers:999
-msgid "Books and Howto's on Linux and Free Software"
-msgstr "Āéāėßį źįé ļäēćļß ćéį ōļ Linux źįé ōļ åėåżčåńļ ėļćéóģéźü"
-
-#: ../../share/compssUsers:999
-msgid "KDE Workstation"
-msgstr "Óōįčģüņ åńćįóßįņ KDE"
-
-#: ../../share/compssUsers:999
-msgid "Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm, Window Maker, Enlightenment, Fvwm, źėš"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Video"
-msgstr "ŠļėõģŻóį - Video"
-
-#: ../../share/compssUsers:999
-msgid "Set of tools for mail, news, web, file transfer, and chat"
-msgstr "Åńćįėåßį ćéį įėėēėļćńįößį, ķŻį, web, ģåōįöļńÜ įń÷åßłķ źįé óõķļģéėßį"
-
-#: ../../share/compssUsers:999
-msgid "Database"
-msgstr "ĀÜóē ÄåäļģŻķłķ"
-
-#: ../../share/compssUsers:999
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL Ž MySQL database åīõšēńåōēōŽņ"
-
-#: ../../share/compssUsers:999
-msgid "Tools to ease the configuration of your computer"
-msgstr "Åńćįėåßį ćéį ķį äéåõźļėõķčåßōå óōē ńżčģéóē ōļõ õšļėļćéóōŽ óįņ"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Sound"
-msgstr "ŠļėõģŻóį - ¹÷ļņ"
-
-#: ../../share/compssUsers:999
-msgid "Utilities"
-msgstr "Åńćįėåßį"
-
-#: ../../share/compssUsers:999
-msgid "Documentation"
-msgstr "Ōåźģēńßłóē"
-
-#: ../../share/compssUsers:999
-msgid "Console Tools"
-msgstr "Åńćįėåßį źļķóüėįņ"
-
-#: ../../share/compssUsers:999
-msgid "Postfix mail server, Inn news server"
-msgstr "ÅīõšēńåōēōŽņ ōį÷õäńļģåßļõ Postfix, åīõšēńåōēōŽņ ķåžķ Inn"
-
-#: ../../share/compssUsers:999
-msgid "Internet station"
-msgstr "Óōįčģüņ Internet"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia station"
-msgstr "Óōįčģüņ šļėõģŻółķ"
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Configuration"
-msgstr "Ńżčģéóē LĮĶ"
-
-#: ../../share/compssUsers:999
-msgid "More Graphical Desktops (Gnome, IceWM)"
-msgstr "Šåńéóóüōåńį ćńįöéźÜ šåńéāÜėėļķōį (Gnome, IceWM)"
-
-#: ../../share/compssUsers:999
-msgid ""
-"The K Desktop Environment, the basic graphical environment with a collection "
-"of accompanying tools"
-msgstr "Ōļ šåńéāÜėėļķ ćńįöåßļõ KDE ģå ģéį óõėėļćŽ óõķļäåõōéźžķ åńćįėåßłķ"
-
-#: ../../share/compssUsers:999
-msgid "Graphical Environment"
-msgstr "Ćńįöéźü ŠåńéāÜėėļķ"
-
-#: ../../share/compssUsers:999
-msgid "Apache, Pro-ftpd"
-msgstr "Apache, Pro-ftpd"
-
-#: ../../share/compssUsers:999
-msgid "Tools to create and burn CD's"
-msgstr "Åńćįėåßį ćéį äēģéļõńćßį źįé åććńįöŽ CD"
-
-#: ../../share/compssUsers:999
-msgid "Office Workstation"
-msgstr "Óōįčģüņ åńćįóßįņ ćńįöåßļõ"
-
-#: ../../share/compssUsers:999
-msgid "Server"
-msgstr "ÅīõšēńåōēōŽņ"
-
-#: ../../share/compssUsers:999
-msgid "Gnome, Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Gnome, Icewm, Window Maker, Enlightenment, Fvwm, źėš"
-
-#: ../../share/compssUsers:999
-msgid "Graphics programs such as The Gimp"
-msgstr "ŠńļćńÜģģįōį ćńįöéźžķ üšłņ ōļ Gimp"
-
-#: ../../share/compssUsers:999
-msgid "DNS/NIS "
-msgstr "DNS/NIS "
-
-#: ../../share/compssUsers:999
-msgid "C and C++ development libraries, programs and include files"
-msgstr "Āéāėéļ莟åņ įķÜšōõīēņ C źįé C++, šńļćńÜģģįōį źįé Üėėį įń÷åßį"
-
-#: ../../share/compssUsers:999
-msgid "Network Computer server"
-msgstr "ÅīõšēńåōēōŽņ äéźōżļõ"
-
-#: ../../share/compssUsers:999
-msgid "Mail/Groupware/News"
-msgstr "Mail/Groupware/News"
-
-#: ../../share/compssUsers:999
-msgid "Game station"
-msgstr "Óōįčģüņ šįé÷ķéäéžķ"
-
-#: ../../share/compssUsers:999
-msgid "Video players and editors"
-msgstr "ŠńļćńÜģģįōį įķįšįńįćłćŽņ źįé äéį÷åßńēóēņ video"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Graphics"
-msgstr "ŠļėõģŻóį - ĆńįöéźÜ"
-
-#: ../../share/compssUsers:999
-msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr "ÄéįóźŻäįóē (šįé÷ķßäéį)"
-
-#: ../../share/compssUsers:999
-msgid ""
-"Set of tools to read and send mail and news (pine, mutt, tin..) and to "
-"browse the Web"
-msgstr ""
-"Åńćįėåßį ćéį įšļóōļėŽ źįé ėŽųē įėėēėļćńįößįņ źįé news (pine, mutt, tin...) "
-"źįé Web Browsers"
-
-#: ../../share/compssUsers:999
-msgid "Archiving, emulators, monitoring"
-msgstr "Įń÷åéļčŻōēóē, åīļģļéłōŻņ, šįńįźļėļżčēóē"
-
-#: ../../share/compssUsers:999
-msgid "Personal Finance"
-msgstr "Äéį÷åßńēóē šńļółšéźžķ ļéźļķļģéźžķ äåäļģŻķłķ"
-
-#: ../../share/compssUsers:999
-msgid ""
-"A graphical environment with user-friendly set of applications and desktop "
-"tools"
-msgstr "Ćńįöéźü šåńéāÜėėļķ ģå öéėéźÜ åńćįėåßį źįé åöįńģļćŻņ"
-
-#: ../../share/compssUsers:999
-msgid "Clients for different protocols including ssh"
-msgstr "ŠåėÜōåņ ćéį äéįöļńåōéźÜ šńłōüźļėėį óõģšåńéėįģāįķļģŻķļõ ōļõ ssh"
-
-#: ../../share/compssUsers:999
-msgid "Internet gateway"
-msgstr "Šżėē Éķōåńķåō"
-
-#: ../../share/compssUsers:999
-msgid "Sound and video playing/editing programs"
-msgstr "ŠńļćńÜģģįōį įķįšįńįćłćŽņ źįé äéį÷åßńēóēņ video źįé Ž÷ļõ"
-
-#: ../../share/compssUsers:999
-msgid "Other Graphical Desktops"
-msgstr "¶ėėį ćńįöéźÜ šåńéāÜėėļķōį"
-
-#: ../../share/compssUsers:999
-msgid "Editors, shells, file tools, terminals"
-msgstr "ÅšåīåńćįóōŻņ źåéģŻķļõ, źåėżöē, åńćįėåßį įń÷åßłķ, ōåńģįōéźÜ"
-
-#: ../../share/compssUsers:999
-msgid "Programs to manage your finance, such as gnucash"
-msgstr "ŠńļćńÜģģįōį ļéźļķļģ韎ņ äéį÷åßńēóēņ, üšłņ ōļ gnucash"
-
-#: ../../share/compssUsers:999
-msgid "Personal Information Management"
-msgstr "Äéį÷åßńēóē šńļółšéźžķ äåäļģŻķłķ"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - CD Burning"
-msgstr "ŠļėõģŻóį - ÅććńįöŽ CD"
-
-#: ../../share/compssUsers:999
-msgid "Scientific Workstation"
-msgstr "Óōįčģüņ Åńćįóßįņ Åšéóōēģļķéźžķ åöįńģļćžķ"
-
-#, fuzzy
-#~ msgid "About"
-#~ msgstr "Įźżńłóē"
-
-#, fuzzy
-#~ msgid "-adobe-utopia-medium-r-normal-*-12-*-*-*-p-*-iso8859-*,*-r-*"
-#~ msgstr "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"
-
-#~ msgid "$f-$g %s)"
-#~ msgstr "$f-$g %s)"
-
-#, fuzzy
-#~ msgid "None"
-#~ msgstr "Ļėļźėēńžčēźå"
-
-#, fuzzy
-#~ msgid "Choose a default printer!"
-#~ msgstr "ÅšéėŻīōå ōļķ åī' ļńéóģļż ÷ńŽóōē:"
-
-#, fuzzy
-#~ msgid "Apply/Re-read printers"
-#~ msgstr "ĮšļģåģįźńõóģŻķļņ åźōõšłōŽņ"
-
-#~ msgid "You may now provide its options to module %s."
-#~ msgstr "Ģšļńåßōå ōžńį ķį äžóåōå šįńįģŻōńļõņ ćéį ōļķ ļäēćü %s"
-
-#~ msgid "mount failed"
-#~ msgstr "óżķäåóē įšŻōõ÷å"
-
-#~ msgid "Low"
-#~ msgstr "×įģēėü"
-
-#~ msgid "Medium"
-#~ msgstr "ĢŻōńéļ"
-
-#~ msgid ""
-#~ "Few improvements for this security level, the main one is that there are\n"
-#~ "more security warnings and checks."
-#~ msgstr ""
-#~ "Ėßćåņ āåėōéžóåéņ įóöįėåßįņ, ē źżńéį åßķįé üōé õšÜń÷ļõķ šåńéóóüōåńåņ \n"
-#~ "šńļåéäļšļéŽóåéņ źįé Żėåć÷ļé."
-
-#~ msgid "Boot mode"
-#~ msgstr "Ėåéōļõńćßį åźźßķēóēņ"
-
-#, fuzzy
-#~ msgid "Export"
-#~ msgstr "Ćéį åéäéźļżņ"
-
-#~ msgid ""
-#~ "GNU/Linux manages time in GMT (Greenwich Mean Time) and translates it in\n"
-#~ "local time according to the time zone you selected."
-#~ msgstr ""
-#~ "Ōļ GNU/Linux ÷åéńßęåōįé ōēķ žńį óå GMT (\"Greenwich Mean Time\" Ž \n"
-#~ "\"ĢåóēģāńéķŽ æńį ĆźńŽķļõéōņ\") źįé ōēķ ģåōįōńŻšåé óå ōļšéźŽ žńį\n"
-#~ "āÜóåé ōēņ ęžķēņ žńįņ šļõ čį åšéėŻīåōå."
-
-#~ msgid "Connect to Internet"
-#~ msgstr "Óżķäåóē óōļ äéįäßźōõļ (internet)"
-
-#~ msgid "Disconnect from Internet"
-#~ msgstr "Įšļóżķäåóē įšü ōļ äéįäßźōõļ (internet)"
-
-#~ msgid "Configure network connection (LAN or Internet)"
-#~ msgstr "Ńżčģéóē óżķäåóēņ óōļ äßźōõļ (ōļšéźü Ž Äéįäßźōõļ)"
-
-#, fuzzy
-#~ msgid "Detected %s, do you want to set it up?"
-#~ msgstr "Óå šļéüķ äßóźļ čŻėåōå ķį ģåōįźéķēčåßōå;"
-
-#, fuzzy
-#~ msgid "Please choose the printer you want to set up."
-#~ msgstr "Šįńįźįėž åšéėŻīōå ōį šįźŻōį šļõ čŻėåōå ķį åćźįōįóōŽóåōå"
-
-#, fuzzy
-#~ msgid "Infos"
-#~ msgstr "Šėēńļöļńßåņ"
-
-#, fuzzy
-#~ msgid "Windows Importation"
-#~ msgstr "Óōįčģüņ åńćįóßįņ Gnome"
-
-#~ msgid "authentification"
-#~ msgstr "įõčåķōéźüōēōį"
-
-#~ msgid "user"
-#~ msgstr "÷ńŽóōēņ"
-
-#, fuzzy
-#~ msgid ""
-#~ "Please choose the desired printer/printer port.\n"
-#~ "\n"
-#~ msgstr "Šįńįźįėž åšéėŻīōå ōżšļ šļķōéźéļż."
-
-#, fuzzy
-#~ msgid "\\@quit"
-#~ msgstr "øīļäļņ"
-
-#, fuzzy
-#~ msgid "Removable media"
-#~ msgstr "Įõōüģįōē óżķäåóē įšļóšžģåķłķ ģļķÜäłķ įšļ莟åõóēņ"
-
-#~ msgid "Active"
-#~ msgstr "Åķåńćü"
-
-#, fuzzy
-#~ msgid "No X"
-#~ msgstr "¼÷é"
-
-#~ msgid "A printer, model \"%s\", has been detected on "
-#~ msgstr "øķįņ åźōõšłōŽņ ōżšļõ \"%s\" åķōļšßóōēźå óōļ "
-
-#~ msgid "Local Printer Device"
-#~ msgstr "ÓõóźåõŽ ōļšéźļż åźōõšłōŽ"
-
-#~ msgid "Printer Device"
-#~ msgstr "ÓõóźåõŽ åźōõšłōŽ"
-
-#~ msgid "Device/file name missing!"
-#~ msgstr "Ōļ įń÷åßļ óõóźåõŽņ ėåßšåé!"
-
-#, fuzzy
-#~ msgid "Printer(s) on remote CUPS server(s)"
-#~ msgstr "ĮšļģåģįźńõóģŻķļņ åīõšēńåōēōŽņ CUPS"
-
-#, fuzzy
-#~ msgid "Printer(s) on remote server(s)"
-#~ msgstr "ĮšļģåģįźńõóģŻķļņ åīõšēńåōēōŽņ CUPS"
-
-#, fuzzy
-#~ msgid " Linux "
-#~ msgstr "Linux"
-
-#, fuzzy
-#~ msgid " System "
-#~ msgstr "ŹįōÜóōįóē óõóōŽģįōļņ"
-
-#, fuzzy
-#~ msgid " Other "
-#~ msgstr "¶ėėļ"
-
-#, fuzzy
-#~ msgid "please choose your CD space"
-#~ msgstr "Šįńįźįėž åšéėŻīōå äéįńżčģéóē šėēźōńļėļćßļõ."
-
-#, fuzzy
-#~ msgid " Please check if you are using CDRW media"
-#~ msgstr "Šįńįźįėž źÜķōå źėéź óå ģéį źįōÜōģēóē"
-
-#, fuzzy
-#~ msgid " Tape "
-#~ msgstr "Ōżšļņ: "
-
-#, fuzzy
-#~ msgid " Use .backupignore files"
-#~ msgstr "ŹįōåóōńįģŻķļ åöåäńéźü įń÷åßļ"
-
-#, fuzzy
-#~ msgid "Configure it"
-#~ msgstr "Ńżčģéóē ×"
-
-#, fuzzy
-#~ msgid "on Tape Device"
-#~ msgstr "ÓõóźåõŽ åźōõšłōŽ"
-
-#, fuzzy
-#~ msgid " Cancel "
-#~ msgstr "Įźżńłóē"
-
-#, fuzzy
-#~ msgid " Ok "
-#~ msgstr "Ļź"
-
-#, fuzzy
-#~ msgid "close"
-#~ msgstr "Źėåßóéģļ"
-
-#~ msgid "Starting your connection..."
-#~ msgstr "Åźźßķēóē óżķäåóēņ..."
-
-#~ msgid "Closing your connection..."
-#~ msgstr "Źėåßóéģļ óżķäåóēņ..."
-
-#~ msgid ""
-#~ "The connection is not closed.\n"
-#~ "Try to do it manually by running\n"
-#~ "/etc/sysconfig/network-scripts/net_cnx_down\n"
-#~ "in root."
-#~ msgstr ""
-#~ "Ē óżķäåóē äåķ Żźėåéóå.\n"
-#~ "ŠńļóšįčŽóōå ķį ōļ źÜķåōå ģüķļņ óįņ ōńŻ÷ļķōįņ\n"
-#~ "/etc/sysconfig/network-scripts/net_cnx_down\n"
-#~ "łņ root."
-
-#~ msgid "The system is now disconnected."
-#~ msgstr "Ōļ óżóōēģį äåķ åßķįé óõķäåäåģŻķļ óōļ Äéįäßźōõļ."
-
-#~ msgid "Choose the size you want to install"
-#~ msgstr "ÅšéėŻīōå ōļ ģŻćåčļņ šļõ čŻėåōå ķį åćźįōįóōŽóåōå"
-
-#~ msgid "Total size: "
-#~ msgstr "Óõķļėéźü ģŻćåčļņ: "
-
-#~ msgid "Please wait, "
-#~ msgstr "Šįńįźįėž šåńéģŻķåōå, "
-
-#~ msgid "Total time "
-#~ msgstr "Óõķļėéźüņ ÷ńüķļņ "
-
-#~ msgid "Use existing configuration for X11?"
-#~ msgstr "Ķį ÷ńēóéģļšļéŽół ōéņ õšÜń÷ļõóåņ ńõčģßóåéņ ćéį ōį ×11;"
-
-#~ msgid ""
-#~ "What device is your printer connected to \n"
-#~ "(note that /dev/lp0 is equivalent to LPT1:)?\n"
-#~ msgstr ""
-#~ "Óå šļéÜ óõóźåõŽ åßķįé óõķäåäåģŻķļņ ļ åźōõšłōŽņ óįņ;\n"
-#~ "(óēģåßłóē: ōļ /dev/lp0 įķōéóōļé÷åß óōļ LPT1:)\n"
-
-#~ msgid "$_"
-#~ msgstr "$_"
-
-#~ msgid ""
-#~ "Warning, the network adapter is already configured. I will reconfigure it."
-#~ msgstr ""
-#~ "Šńļóļ÷Ž, ļ šńļóįńģļćŻįņ äéźōżļõ åßķįé Žäē ńõčģéóģŻķļņ. Čį ōļķ "
-#~ "åšįķįńõčģßół."
-
-#~ msgid "New"
-#~ msgstr "ĶŻļ"
-
-#, fuzzy
-#~ msgid "Remote"
-#~ msgstr "¼ķļģį įšļģåģįźńõóģŻķēņ ļõńÜņ"
-
-#, fuzzy
-#~ msgid ""
-#~ "Please click on a button above\n"
-#~ "\n"
-#~ "Or use \"New\""
-#~ msgstr "Šįńįźįėž źÜķōå źėéź óå ģéį źįōÜōģēóē"
-
-#~ msgid "Ambiguity (%s), be more precise\n"
-#~ msgstr "Įģöéāļėļ (%s), šįńįźįėž šńļóäéļńéóōå źįėżōåńį\n"
-
-#~ msgid " ? (default %s) "
-#~ msgstr " ; (åī' ļńéóģļż %s) "
-
-#~ msgid "Your choice? (default %s enter `none' for none) "
-#~ msgstr "Ē åšéėļćŽ óįņ; (åī' ļńéóģļż %s åéóÜćåōå `none' ćéį źįķŻķį) "
-
-#~ msgid "can not open /etc/sysconfig/autologin for reading: %s"
-#~ msgstr "įäõķįģßį įķļßćģįōļņ ōļõ /etc/sysconfig/autologin ćéį įķÜćķłóē: %s"
-
-#~ msgid "Do you want to restart the network"
-#~ msgstr "ČŻėåōå ķį åšįķåźźéķŽóåōå ōļ äßźōõļ;"
-
-#~ msgid ""
-#~ "\n"
-#~ "Do you agree?"
-#~ msgstr ""
-#~ "\n"
-#~ "Óõģöłķåßōå;"
-
-#~ msgid "I'm about to restart the network device:\n"
-#~ msgstr "Čį åšįķåźźéķŽół ōēķ šįńįźÜōł óõóźåõŽ äéźōżļõ:\n"
-
-#~ msgid "I'm about to restart the network device %s. Do you agree?"
-#~ msgstr "Čį åšįķåźźéķŽół ōēķ óõóźåõŽ äéźōżļõ %s. Óõģöłķåßōå;"
-
-#, fuzzy
-#~ msgid ""
-#~ "Unless you know specifically otherwise, the usual choice is \"/dev/hda\"\n"
-#~ "(primary master IDE disk) or \"/dev/sda\" (first SCSI disk)."
-#~ msgstr ""
-#~ "Åźōüņ źįé įķ åßóōå óßćļõńļé üōé äåķ åßķįé Żōóé, ē óõķēčéóģŻķē åšéėļćŽ\n"
-#~ "åßķįé \"/dev/hda\" (ļ šńžōļņ äßóźļņ óōļ šńžōļ źįķÜėé), Ž \"/dev/sda\n"
-#~ "(ļ šńžōļņ SCSI äßóźļņ)."
-
-#, fuzzy
-#~ msgid "Could not set \"%s\" as the default printer!"
-#~ msgstr "ÅšéėŻīōå ōļķ åī' ļńéóģļż ÷ńŽóōē:"
-
-#~ msgid "Spooler: "
-#~ msgstr "Spooler: "
-
-#~ msgid "Test the mouse here."
-#~ msgstr "ÄļźéģÜóōå ōļ šļķōßźé åäž."
-
-#~ msgid "Press next to continue."
-#~ msgstr "ŠįōŽóōå åšüģåķļ ćéį ķį óõķå÷ßóåōå."
-
-#~ msgid ""
-#~ "Please choose your preferred language for installation and system usage."
-#~ msgstr "Šįńįźįėž åšéėŻīōå ćėžóóį ćéį åćźįōÜóōįóē źįé ÷ńŽóē."
-
-#~ msgid ""
-#~ "You need to accept the terms of the above license to continue "
-#~ "installation.\n"
-#~ "\n"
-#~ "\n"
-#~ "Please click on \"Accept\" if you agree with its terms.\n"
-#~ "\n"
-#~ "\n"
-#~ "Please click on \"Refuse\" if you disagree with its terms. Installation "
-#~ "will end without modifying your current\n"
-#~ "configuration."
-#~ msgstr ""
-#~ "ŠńŻšåé ķį įšļäå÷čåßōå ōļõņ üńļõņ ōēņ Üäåéįņ ÷ńŽóēņ šńéķ óõķå÷ßóåōå ōēķ "
-#~ "åćźįōÜóōįóē.\n"
-#~ "\n"
-#~ "\n"
-#~ "Šįńįźįėž åšéėŻīōå \"Įšļäļ÷Ž\" åÜķ óõģöłķåßōå ģå ōļõņ üńļõņ.\n"
-#~ "\n"
-#~ "\n"
-#~ "Šįńįźįėž åšéėŻīōå \"¶ńķēóē\" åÜķ äåķ óõģöłķåßōå. Ē åćźįōÜóōįóē čį "
-#~ "óōįģįōŽóåé ÷łńßņ ķį\n"
-#~ "šåéńį÷ōåß ōßšļōį."
-
-#~ msgid "Choose the layout corresponding to your keyboard from the list above"
-#~ msgstr ""
-#~ "ÅšéėŻīōå ōēķ äéįńżčģéóē šļõ įķōéóōļé÷åß óōļ šėēźōńļėüćéü óįņįšü ōēķ "
-#~ "šįńįšÜķł ėßóōį"
-
-#~ msgid ""
-#~ "If you wish other languages (than the one you choose at\n"
-#~ "beginning of installation) will be available after installation, please "
-#~ "chose\n"
-#~ "them in list above. If you want select all, you just need to select \"All"
-#~ "\"."
-#~ msgstr ""
-#~ "ÅÜķ čŻėåōå źįé Üėėåņ ćėžóóåņ (åźōüņ įšü įõōŽ šļõ åšéėŻīįōå óōēķ įń÷Ž)\n"
-#~ "šįńįźįėž åšéėŻīōå ōéņ įšü ōļķ šįńįšÜķł źįōÜėļćļ."
-
-#~ msgid ""
-#~ "Select:\n"
-#~ "\n"
-#~ " - Customized: If you are familiar enough with GNU/Linux, you may then "
-#~ "choose\n"
-#~ " the primary usage for your machine. See below for details.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Expert: This supposes that you are fluent with GNU/Linux and want to\n"
-#~ " perform a highly customized installation. As for a \"Customized\"\n"
-#~ " installation class, you will be able to select the usage for your "
-#~ "system.\n"
-#~ " But please, please, DO NOT CHOOSE THIS UNLESS YOU KNOW WHAT YOU ARE "
-#~ "DOING!"
-#~ msgstr ""
-#~ "ÅšéėŻīōå:\n"
-#~ "\n"
-#~ " - ŠńļóįńģļóģŻķē: ÅÜķ åßóōå åīļéźåéłģŻķļņ ģå ōļ Linux, čį ģšļńŻóåōå ķį \n"
-#~ "åšéėŻīåōå ģåōįīż óõóōŽģįōļņ ćåķ韎ņ ÷ńŽóēņ, óõóōŽģįōļņ įķÜšōõīēņ Ž "
-#~ "åīõšēńåōēōŽ\n"
-#~ "äéźōżļõ.\n"
-#~ "\n"
-#~ "\n"
-#~ " - ÅīåéäéźåõģŻķē: ÅÜķ åßóōå šļėż åīļéźåéłģŻķļņ ģå óõóōŽģįōį GNU/Linux "
-#~ "źįé\n"
-#~ "čŻėåōå ķį šńįćģįōļšļéŽóåōå ģéį åīįéńåōéźÜ šńļóįńģļóģŻķē åćźįōÜóōįóē, "
-#~ "ōüōå\n"
-#~ "įõōŽ ē åšéėļćŽ åßķįé ćéį óįņ. Čį ģšļńŻóåōå ķį åšéėŻīåōå ōżšļ "
-#~ "åćźįōÜóōįóēņ\n"
-#~ "üšłņ źįé óōēķ šįńįšÜķł (\"ŠńļóįńģļóģŻķē\") åšéėļćŽ."
-
-#~ msgid ""
-#~ "You must now define your machine usage. Choices are:\n"
-#~ "\n"
-#~ "* Workstation: this the ideal choice if you intend to use your machine "
-#~ "primarily for everyday use, at office or\n"
-#~ " at home.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Development: if you intend to use your machine primarily for software "
-#~ "development, it is the good choice. You\n"
-#~ " will then have a complete collection of software installed in order to "
-#~ "compile, debug and format source code,\n"
-#~ " or create software packages.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Server: if you intend to use this machine as a server, it is the good "
-#~ "choice. Either a file server (NFS or\n"
-#~ " SMB), a print server (Unix style or Microsoft Windows style), an "
-#~ "authentication server (NIS), a database\n"
-#~ " server and so on. As such, do not expect any gimmicks (KDE, GNOME, "
-#~ "etc.) to be installed."
-#~ msgstr ""
-#~ "Ļé åšéėļćŻņ šļõ Ż÷åōå ó÷åōéźÜ ģå ōēķ ÷ńŽóē ōļõ óõóōŽģįōüņ óįņ \n"
-#~ "åßķįé ļé įźüėļõčåņ:\n"
-#~ "\n"
-#~ "* Óōįčģüņ åńćįóßįņ: ÅšéėŻīōå įõōŽķ åÜķ óźļšåżåōå ķį ÷ńēóéģļšļéēóåōå ōļ "
-#~ "óżóōēģÜ\n"
-#~ " óįņ źõńßłņ ćéį źįčēģåńéķŽ ÷ńŽóē, óōļ óšßōé Ž óōļ ćńįöåßļ. \n"
-#~ "\n"
-#~ "* ĮķÜšōõīē: ÅšéėŻīōå įõōü åÜķ óźļšåżåōå ķį ÷ńēóéģļšļéŽóåōå ōļ óżóōēģÜ "
-#~ "óįņ\n"
-#~ " źõńßłņ ćéį įķÜšōõīē ėļćéóģéźļż. Čį åćźįōįóōįčåß ģéį šėŽńēņ óõėėļćŽ "
-#~ "åńćįėåßłķ\n"
-#~ " ćéį ģåōįćėžōéóē, įšļóöįėģÜōłóē źįé ģļńöļšļßēóē šēćįßļõ źžäéźį, źįčžņ "
-#~ "źįé\n"
-#~ " äēģéļõńćßį šįźŻōłķ ėļćéóģéźļż.\n"
-#~ "\n"
-#~ "* ÅīõšēńåōēōŽņ: ÅšéėŻīōå įõōü åÜķ óźļšåżåōå ķį ÷ńēóéģļšļéŽóåōå ōļ óżóōēģÜ "
-#~ "óįņ\n"
-#~ " łņ åīõšēńåōēōŽ, åßōå įń÷åßłķ (NFS Ž SMB), åßōå åźōõšžóåłķ (lp Ž SMB), "
-#~ "åßōå\n"
-#~ " šéóōļšļßēóēņ (NIS), āÜóēņ äåäļģŻķłķ źėš. Óå įõōŽķ ōēķ šåńßšōłóē, äåķ "
-#~ "čį\n"
-#~ " åćźįōįóōįčļżķ šńÜćģįōį üšłņ ōļ KDE, ōļ Gnome źėš."
-
-#~ msgid ""
-#~ "You may now select the group of packages you wish to\n"
-#~ "install or upgrade.\n"
-#~ "\n"
-#~ "\n"
-#~ "DrakX will then check whether you have enough room to install them all. "
-#~ "If not,\n"
-#~ "it will warn you about it. If you want to go on anyway, it will proceed "
-#~ "onto the\n"
-#~ "installation of all selected groups but will drop some packages of "
-#~ "lesser\n"
-#~ "interest. At the bottom of the list you can select the option \n"
-#~ "\"Individual package selection\"; in this case you will have to browse "
-#~ "through\n"
-#~ "more than 1000 packages..."
-#~ msgstr ""
-#~ "Ģšļńåßōå ōžńį ķį åšéėŻīåōå ōéņ ļģÜäåņ šįźŻōłķ šļõ åšéčõģåßōå ķį "
-#~ "åćźįōįóōŽóåōå Ž ķį įķįāįčģßóåōå.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ōļ DrakX čį šńļóäéļńßóåé åÜķ Ż÷åōå įńźåōü ÷žńļ óōļķ äßóźļ óįņ.\n"
-#~ "ÅÜķ ü÷é, čį ėÜāåōå ģéį šńļåéäļšļßēóē. ÅÜķ čŻėåōå ķį óõķå÷ßóåōå, čį "
-#~ "åćźįōįóōįčļżķ\n"
-#~ "üėåņ ļé åšéėåćģŻķåņ ļģÜäåņ, įėėÜ čį įöįéńåčļżķ źÜšļéį šįźŻōį åėÜóóļķļņ "
-#~ "åķäéįöŻńļķōļņ.\n"
-#~ "Óōļ źÜōł ģŻńļņ ōēņ ėßóōįņ ģšļńåßōå ķį åšéėŻīåōå \"ÅšéėļćŽ įķåīÜńōēōłķ "
-#~ "šįźŻōłķ\". Óå įõōŽ\n"
-#~ "ōē šåńßšōłóē čį šńŻšåé ķį åšéėŻīåōå įķÜģåóį óå šįńįšÜķł įšü 1000 šįźŻōį."
-
-#~ msgid ""
-#~ "You can now choose individually all the packages you\n"
-#~ "wish to install.\n"
-#~ "\n"
-#~ "\n"
-#~ "You can expand or collapse the tree by clicking on options in the left "
-#~ "corner of\n"
-#~ "the packages window.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you prefer to see packages sorted in alphabetic order, click on the "
-#~ "icon\n"
-#~ "\"Toggle flat and group sorted\".\n"
-#~ "\n"
-#~ "\n"
-#~ "If you want not to be warned on dependencies, click on \"Automatic\n"
-#~ "dependencies\". If you do this, note that unselecting one package may "
-#~ "silently\n"
-#~ "unselect several other packages which depend on it."
-#~ msgstr ""
-#~ "Ģšļńåßōå ōžńį ķį åšéėŻīåōå įķåīÜńōēōį üėį ōį šįźŻōį šļõ åšéčõģåßōå \n"
-#~ "ķį åćźįōįóōŽóåōå.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ģšļńåßōå ķį įķįšōżīåōå Ž ķį óõģšōżīåōå ōļ äŻķōńļ åšéėŻćļķōįņ ōéņ "
-#~ "åšéėļćŻņ\n"
-#~ "óōēķ įńéóōåńŽ ćłķßį ōļõ šįńįčżńļõ ōłķ šįźŻōłķ.\n"
-#~ "\n"
-#~ "\n"
-#~ "ÅÜķ šńļōéģÜōå ķį ķį āėŻšåōå ōį šįźŻōį ōįīéķļģēģŻķį įėöįāēōéźÜ, šįōŽóōå\n"
-#~ "\"ÅķįėėįćŽ ļģįäļšļßēóēņ\".\n"
-#~ "\n"
-#~ "\n"
-#~ "ÅÜķ äåķ čŻėåōå ķį ėįģāÜķåōå šńļåéäļšļéŽóåéņ ćéį åīįńōŽóåéņ, šįōŽóōå\n"
-#~ "\"Įõōüģįōåņ åīįńōŽóåéņ\". Óēģåéžóōå üōé óå įõōŽķ ōēķ šåńßšōłóē, ē \n"
-#~ "įšļåšéėļćŽ åķüņ šįźŻōļõ ģšļńåß ķį šńļźįėŻóåé ōēķ óéłšēėŽ įšļåšéėļćŽ \n"
-#~ "źįé Üėėłķ šįźŻōłķ šļõ åīįńōžķōįé įšü įõōü."
-
-#~ msgid ""
-#~ "If you have all the CDs in the list above, click Ok. If you have\n"
-#~ "none of those CDs, click Cancel. If only some CDs are missing, unselect "
-#~ "them,\n"
-#~ "then click Ok."
-#~ msgstr ""
-#~ "ÅÜķ Ż÷åōå üėį ōį šįńįšÜķł CDs, šįōŽóōå Ok.\n"
-#~ "ÅÜķ äåķ Ż÷åōå źįķŻķį įšü ōį šįńįšÜķł CDs, šįōŽóōå Įźżńłóē.\n"
-#~ "ÅÜķ äåķ Ż÷åōå źÜšļéį įšü įõōÜ, įšļåšéėŻīōå ōį źįé šįōŽóōå Ok."
-
-#~ msgid ""
-#~ "You can now test your mouse. Use buttons and wheel to verify\n"
-#~ "if settings are good. If not, you can click on \"Cancel\" to choose "
-#~ "another\n"
-#~ "driver.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you are installing on an Apple machine with a 1-button mouse, you "
-#~ "will\n"
-#~ "be given the opportunity to define some keyboard keys to emulate the 2nd\n"
-#~ "and 3rd mouse buttons. This will allow you to be able to access the "
-#~ "full\n"
-#~ "functionality of the mouse in both the Linux console and the X Window "
-#~ "GUI.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you have an ADB mouse, please select USB, as the Linux kernel will "
-#~ "take\n"
-#~ "care of mapping your mouse hardware correctly."
-#~ msgstr ""
-#~ "Ōžńį ģšļńåßōå ķį äļźéģÜóåōå ōļ šļķōßźé óįņ. ×ńēóéģļšļéŽóōå ōį źļõģšéÜ źįé "
-#~ "ōē ńļäŻėį ćéį ķį\n"
-#~ "åšéāåāįéžóåōå šłņ ļé ńõčģßóåéņ åßķįé ółóōŻņ. Įķ äåķ åßķįé, ģšļńåßōå ķį "
-#~ "źÜķåōå źėßź óōļ \"¶źõńļ\"\n"
-#~ "ćéį ķį åšéėŻīåōå Żķįķ Üėėļ ļäēćü.\n"
-#~ "\n"
-#~ "\n"
-#~ "Åįķ źÜķåōå åćźįōÜóōįóē óå Żķį ģē÷Üķēģį Apple ģå šļķōßźé åķüņ źļõģšéļż, čį "
-#~ "óįņ äļčåß ē\n"
-#~ "åõźįéńåßį ķį ļńßóåōå źÜšļéį źļõģšéÜ ōļõ šėēźōńļėļćßļõ žóōå ķį åīļģļéžóåōå "
-#~ "ōļ 2ļ źįé ōļ 3ļ\n"
-#~ "źļõģšß ōļõ šļķōéźéļż. Įõōü čį óįņ åšéōńŻųåé ķį Ż÷åōå šńüóāįóē óōēķ šėŽńē "
-#~ "ėåéōļõńćéźüōēōį\n"
-#~ "ōļõ šļķōéźéļż ōüóļ óōēķ źļķóüėį ōļõ Linux üóļ źįé óōļ X Window GUI.\n"
-#~ "\n"
-#~ "\n"
-#~ "Įķ Ż÷åōå Żķį ADB šļķōßźé, šįńįźįėž åšéėŻīōå USB, źįčžņ ļ šõńŽķįņ ōļõ "
-#~ "Linux čį öńļķōßóåé\n"
-#~ "ćéį ōļ šļķōßźé óįņ źįōÜėėēėį."
-
-#~ msgid ""
-#~ "If you wish to connect your computer to the Internet or\n"
-#~ "to a local network please choose the correct option. Please turn on your "
-#~ "device\n"
-#~ "before choosing the correct option to let DrakX detect it automatically.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you do not have any connection to the Internet or a local network, "
-#~ "choose\n"
-#~ "\"Disable networking\".\n"
-#~ "\n"
-#~ "\n"
-#~ "If you wish to configure the network later after installation, or if you "
-#~ "have\n"
-#~ "finished to configure your network connection, choose \"Done\"."
-#~ msgstr ""
-#~ "ÅÜķ čŻėåōå ķį óõķäŻóåōå ōļķ õšļėļćéóōŽ óįņ óōļ Äéįäßźōõļ Ž óå Żķį "
-#~ "ōļšéźü \n"
-#~ "äßźōõļ, šįńįźįėž źÜķōå ōēķ źįōÜėėēėē åšéėļćŽ, įöļż įķļßīåōå ōēķ äéźōõįźŽ "
-#~ "óįņ \n"
-#~ "óõóźåõŽ žóōå ōļ DrakX ķį ōēķ åķōļšßóåé įõōüģįōį.\n"
-#~ "\n"
-#~ "\n"
-#~ "ÅÜķ äåķ Ż÷åōå źįģßį äéźōõįźŽ óżķäåóē, åšéėŻīōå \"Įšåķåńćļšļßēóē äéźōżļõ"
-#~ "\".\n"
-#~ "\n"
-#~ "\n"
-#~ "ÅÜķ čŻėåōå ķį ńõčģßóåōå ōļ äßźōõļ įńćüōåńį, Ž įķ ōåėåéžóįōå ģå ōéņ \n"
-#~ "ńõčģßóåéņ äéźōżļõ, åšéėŻīōå \"ŌŻėļņ\"."
-
-#~ msgid ""
-#~ "No modem has been detected. Please select the serial port on which it is "
-#~ "plugged.\n"
-#~ "\n"
-#~ "\n"
-#~ "For information, the first serial port (called \"COM1\" under Microsoft\n"
-#~ "Windows) is called \"ttyS0\" under Linux."
-#~ msgstr ""
-#~ "Äåķ åķōļšßóōēźå modem. Šįńįźįėž åšéėŻīōå ōēķ óåéńéįźŽ čżńį óōēķ ļšļßį\n"
-#~ "åßķįé óõķäåäåģŻķļ.\n"
-#~ "\n"
-#~ "\n"
-#~ "ŠėēńļöļńéįźÜ, ē šńžōē čżńį (šļõ ļķļģÜęåōįé \"COM1\" óōį Microsoft "
-#~ "Windows),\n"
-#~ "óōļ Linux ļķļģÜęåōįé \"ttyS0\"."
-
-#~ msgid ""
-#~ "You may now enter dialup options. If you don't know\n"
-#~ "or are not sure what to enter, the correct informations can be obtained "
-#~ "from\n"
-#~ "your Internet Service Provider. If you do not enter the DNS (name "
-#~ "server)\n"
-#~ "information here, this information will be obtained from your Internet "
-#~ "Service\n"
-#~ "Provider at connection time."
-#~ msgstr ""
-#~ "Ģšļńåßōå ōžńį ķį åšéėŻīåōå ōéņ ńõčģßóåéņ dial-up. ÅÜķ äåķ īŻńåōå Ž äåķ "
-#~ "åßóōå\n"
-#~ "óßćļõńļņ ćéį įõōŻņ ōéņ ńõčģßóåéņ, ģšļńåßōå ķį ōéņ šėēńļöļńēčåßōå įšü "
-#~ "ōļķ \n"
-#~ "šįńļ÷Żį óįņ. ÅÜķ äåķ ļńßóåōå åīõšēńåōēōŽ ļķļģÜōłķ (DNS), čį ļńéóōåß "
-#~ "įõōüģįōį \n"
-#~ "źįōÜ ōēķ óżķäåóē."
-
-#~ msgid ""
-#~ "If your modem is an external modem, please turn on it now to let DrakX "
-#~ "detect it automatically."
-#~ msgstr ""
-#~ "ÅÜķ ōļ modem óįņ åßķįé åīłōåńéźü, šįńįźįėž įķļßīōå ōļ žóōå ōļ DrakX ķį "
-#~ "ģšļńŻóåé ķį ōļ åķōļšßóåé įõōüģįōį."
-
-#~ msgid "Please turn on your modem and choose the correct one."
-#~ msgstr "Šįńįźįėž įķļßīōå ōļ modem óįņ źįé åšéėŻīōå ōļ ółóōü."
-
-#~ msgid ""
-#~ "If you are not sure if informations above are\n"
-#~ "correct or if you don't know or are not sure what to enter, the correct\n"
-#~ "informations can be obtained from your Internet Service Provider. If you "
-#~ "do not\n"
-#~ "enter the DNS (name server) information here, this information will be "
-#~ "obtained\n"
-#~ "from your Internet Service Provider at connection time."
-#~ msgstr ""
-#~ "Ģšļńåßōå ōžńį ķį åšéėŻīåōå ōéņ ńõčģßóåéņ dial-up. ÅÜķ äåķ īŻńåōå Ž äåķ "
-#~ "åßóōå\n"
-#~ "óßćļõńļņ ćéį įõōŻņ ōéņ ńõčģßóåéņ, ģšļńåßōå ķį ōéņ šėēńļöļńēčåßōå įšü "
-#~ "ōļķ \n"
-#~ "šįńļ÷Żį óįņ. ÅÜķ äåķ ļńßóåōå åīõšēńåōēōŽ ļķļģÜōłķ (DNS), čį ļńéóōåß "
-#~ "įõōüģįōį \n"
-#~ "źįōÜ ōēķ óżķäåóē."
-
-#~ msgid ""
-#~ "You may now enter your host name if needed. If you\n"
-#~ "don't know or are not sure what to enter, the correct informations can "
-#~ "be\n"
-#~ "obtained from your Internet Service Provider."
-#~ msgstr ""
-#~ "Ģšļńåßōå ōžńį ķį åéóÜćåōå ōļ äéźōõįźü üķļģį (åÜķ ÷ńåéÜęåōįé). ÅÜķ äåķ "
-#~ "åßóōå óßćļõńļņ,\n"
-#~ "ģšļńåßōå ķį ęēōŽóåōå šėēńļöļńßåņ įšü ōļķ šįńļ÷Żį óįņ."
-
-#~ msgid ""
-#~ "You may now configure your network device.\n"
-#~ "\n"
-#~ " * IP address: if you don't know or are not sure what to enter, ask "
-#~ "your network administrator.\n"
-#~ " You should not enter an IP address if you select the option "
-#~ "\"Automatic IP\" below.\n"
-#~ "\n"
-#~ " * Netmask: \"255.255.255.0\" is generally a good choice. If you don't "
-#~ "know or are not sure what to enter,\n"
-#~ " ask your network administrator.\n"
-#~ "\n"
-#~ " * Automatic IP: if your network uses BOOTP or DHCP protocol, select "
-#~ "this option. If selected, no value is needed in\n"
-#~ " \"IP address\". If you don't know or are not sure if you need to "
-#~ "select this option, ask your network administrator."
-#~ msgstr ""
-#~ "Ģšļńåßōå ōžńį ķį ńõčģßóåōå ōēķ óõóźåõŽ äéźōżļõ.\n"
-#~ "\n"
-#~ " - Äéåżčõķóē IP: ÅÜķ äåķ ōēķ īŻńåōå, ńłōŽóōå ōļķ õšåżčõķļ äéźōżļõ Ž\n"
-#~ "ōļķ šįńļ÷Żį óįņ.\n"
-#~ "Äåķ šńŻšåé ķį åéóÜćåōå äéåżčõķóē IP åÜķ åšéėŻīåōå \"Įõōüģįōē įšüäļóē IP"
-#~ "\"\n"
-#~ "šįńįźÜōł.\n"
-#~ "\n"
-#~ "\n"
-#~ " - ĢÜóźį äéźōżļõ: \"255.255.255.0\" åßķįé óõķŽčłņ źįėŽ åšéėļćŽ. ÅÜķ äåķ\n"
-#~ "åßóōå óßćļõńļņ, ńłōŽóōå ōļķ õšåżčõķļ äéźōżļõ Ž ōļķ šįńļ÷Żį óįņ.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Įõōüģįōē įšüäļóē IP: ÅÜķ ōļ äßźōõü óįņ ÷ńēóéģļšļéåß Żķį įšü ōį "
-#~ "šńļōüźļėėį\n"
-#~ "BOOTP Ž DHCP, åšéėŻīōå įõōü. Óå įõōŽ ōēķ šåńßšōłóē, äåķ ÷ńåéÜęåōįé ķį "
-#~ "äžóåōå\n"
-#~ "äéåżčõķóē IP. ÅÜķ äåķ åßóōå óßćļõńļņ, ńłōŽóōå ōļķ õšåżčõķļ äéźōżļõ Ž\n"
-#~ "ōļķ šįńļ÷Żį óįņ."
-
-#~ msgid ""
-#~ "You may now enter your host name if needed. If you\n"
-#~ "don't know or are not sure what to enter, ask your network administrator."
-#~ msgstr ""
-#~ "Ģšļńåßōå ōžńį ķį åéóÜćåōå ōļ äéźōõįźü óįņ üķļģį. ÅÜķ äåķ\n"
-#~ "åßóōå óßćļõńļé, óõģāļõėåõčåßōå ōļķ õšåżčõķļ äéźōżļõ."
-
-#~ msgid ""
-#~ "You may now enter your host name if needed. If you\n"
-#~ "don't know or are not sure what to enter, leave blank."
-#~ msgstr ""
-#~ "Ģšļńåßōå ōžńį ķį åéóÜćåōå ōļ äéźōõįźü óįņ üķļģį. ÅÜķ äåķ\n"
-#~ "åßóōå óßćļõńļé, įöŽóōå ōļ źåķü."
-
-#~ msgid ""
-#~ "You may now enter dialup options. If you're not sure what to enter, the\n"
-#~ "correct information can be obtained from your ISP."
-#~ msgstr ""
-#~ "Ģšļńåßōå ōžńį ķį åéóÜćåōå ōéņ åšéėļćŻņ ōļõ dialup. ÅÜķ äåķ åßóōå "
-#~ "óßćļõńļņ,\n"
-#~ "ģšļńåßōå ķį ęēōŽóåōå šėēńļöļńßåņ įšü ōļķ šįńļ÷Żį óįņ."
-
-#~ msgid ""
-#~ "If you will use proxies, please configure them now. If you don't know if\n"
-#~ "you should use proxies, ask your network administrator or your ISP."
-#~ msgstr ""
-#~ "ÅÜķ ÷ńēóéģļšļéŽóåōå proxies, šįńįźįėž ńõčģßóōå ōļõņ ōžńį. ÅÜķ äåķ "
-#~ "īŻńåōå,\n"
-#~ "ńłōŽóōå ōļķ šįńļ÷Żį óįņ Ž ōļķ õšåżčõķļ äéźōżļõ."
-
-#~ msgid ""
-#~ "You can install cryptographic package if your internet connection has "
-#~ "been\n"
-#~ "set up correctly. First choose a mirror where you wish to download "
-#~ "packages and\n"
-#~ "after that select the packages to install.\n"
-#~ "\n"
-#~ "\n"
-#~ "Note you have to select mirror and cryptographic packages according\n"
-#~ "to your legislation."
-#~ msgstr ""
-#~ "Įķ ē óżķäåóŽ óįņ ģå ōļ Äéįäßźōõļ åßķįé ółóōÜ ńõčģéóģŻķē, ģšļńåßōå ķį\n"
-#~ "åćźįōįóōŽóåōå šįźŻōļ źńõšōļćńįößįņ. Šńžōį åšéėŻīōå Żķįķ ōüšļ įš'\n"
-#~ "üšļõ čį źįōåāÜóåōå ōį šįźŻōį źįé ģåōÜ åšéėŻīōå šļéÜ šįźŻōį čį\n"
-#~ "åćźįōįóōŽóåōå.\n"
-#~ "\n"
-#~ "Óēģåéžóōå üōé šńŻšåé ķį åšéėŻīåōå ōüšļ źįé šįźŻōį óżģöłķį ģå ōēķ\n"
-#~ "ķļģļčåóßį óįņ."
-
-#~ msgid "You can now select your timezone according to where you live."
-#~ msgstr "Ģšļńåßōå ōžńį ķį åšéėŻīåōå ęžķē žńįņ įķÜėļćį ģå ōēķ ōļšļčåóßį óįņ."
-
-#~ msgid ""
-#~ "You can configure a local printer (connected to your computer) or remote\n"
-#~ "printer (accessible via a Unix, Netware or Microsoft Windows network)."
-#~ msgstr ""
-#~ "Ģšļńåßōå ķį ļńßóåōå Żķįķ ōļšéźü åźōõšłōŽ (óõķäåäåģŻķļ óōļķ õšļėļćéóōŽ "
-#~ "óįņ) \n"
-#~ "Ž Żķįķ įšļģåģįźńõóģŻķļ (šńļóāÜóéģļ ģŻół UNIX äéźōżļõ, Netware Ž äéźōżļõ \n"
-#~ "Microsoft Windows)."
-
-#~ msgid ""
-#~ "If you wish to be able to print, please choose one printing system "
-#~ "between\n"
-#~ "CUPS and LPR.\n"
-#~ "\n"
-#~ "\n"
-#~ "CUPS is a new, powerful and flexible printing system for Unix systems "
-#~ "(CUPS\n"
-#~ "means \"Common Unix Printing System\"). It is the default printing system "
-#~ "in\n"
-#~ "Mandrake Linux.\n"
-#~ "\n"
-#~ "\n"
-#~ "LPR is the old printing system used in previous Mandrake Linux "
-#~ "distributions.\n"
-#~ "\n"
-#~ "\n"
-#~ "If you don't have printer, click on \"None\"."
-#~ msgstr ""
-#~ "ÅÜķ čŻėåōå ķį åźōõšžķåōå, åšéėŻīōå Żķį óšü ōį äżļ óõóōŽģįōį åźōżšłóēņ \n"
-#~ "(CUPS źįé LPR.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ōļ CUPS åßķįé Żķį ķŻļ, äõķįōü źįé åõŻėéźōļ óżóōēģį åźōżšłóēņ ćéį UNIX \n"
-#~ "óõóōŽģįōį. ĮõōŽ åßķįé ē āįó韎 åšéėļćŽ ćéį ōļ Mandrake Linux.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ōļ LPR åßķįé ōļ šįėéü źėįóóéźü óżóōēģį åźōżšłóēņ.\n"
-#~ "\n"
-#~ "ÅÜķ äåķ Ż÷åōå óźōõšłōŽ, åšéėŻīōå \"ŹįķŻķį\"."
-
-#~ msgid ""
-#~ "GNU/Linux can deal with many types of printer. Each of these types "
-#~ "requires\n"
-#~ "a different setup.\n"
-#~ "\n"
-#~ "\n"
-#~ "If your printer is physically connected to your computer, select \"Local\n"
-#~ "printer\".\n"
-#~ "\n"
-#~ "\n"
-#~ "If you want to access a printer located on a remote Unix machine, select\n"
-#~ "\"Remote printer\".\n"
-#~ "\n"
-#~ "\n"
-#~ "If you want to access a printer located on a remote Microsoft Windows "
-#~ "machine\n"
-#~ "(or on Unix machine using SMB protocol), select \"SMB/Windows 95/98/NT\"."
-#~ msgstr ""
-#~ "Ōļ GNU/Linux ģšļńåß ķį óõķåńćįóōåß ģå äéÜöļńļõņ ōżšļõņ åźōõšłōžķ. Ļ "
-#~ "źįčŻķįņ įšü\n"
-#~ "įõōļżņ ÷ńåéÜęåōįé äéįöļńåō韯ņ ńõčģßóåéņ.\n"
-#~ "\n"
-#~ "ÅÜķ ļ åźōõšłōŽņ óįņ åßķįé óõķäåäåģŻķļņ óōļ óżóōēģÜ óįņ, åšéėŻīōå "
-#~ "\"Ōļšéźüņ\n"
-#~ "ÅźōõšłōŽņ\".\n"
-#~ "\n"
-#~ "ÅÜķ čŻėåōå ķį åźōõšžķåōå óå Żķįķ åźōõšłōŽ ōļšļčåōēģŻķļ óå įšļģåģįźńõóģŻķļ "
-#~ "UNIX\n"
-#~ "óżóōēģį, åšéėŻīōå \"ĮšļģåģįźńõóģŻķļņ åźōõšłōŽņ\".\n"
-#~ "\n"
-#~ "\n"
-#~ "ÅÜķ čŻėåōå ķį åźōõšžķåōå óå Żķįķ åźōõšłōŽ ōļšļčåōēģŻķļ óå įšļģåģįźńõóģŻķļ "
-#~ "Windows\n"
-#~ "óżóōēģį (Ž UNIX ģå SMB šńłōüźļėėļ), åšéėŻīōå \"SMB/Windows 95/98/NT\"."
-
-#~ msgid ""
-#~ "Please turn on your printer before continuing to let DrakX detect it.\n"
-#~ "\n"
-#~ "You have to enter some informations here.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Name of printer: the print spooler uses \"lp\" as default printer "
-#~ "name. So, you must have a printer named \"lp\".\n"
-#~ " If you have only one printer, you can use several names for it. You "
-#~ "just need to separate them by a pipe\n"
-#~ " character (a \"|\"). So, if you prefer a more meaningful name, you "
-#~ "have to put it first, eg: \"My printer|lp\".\n"
-#~ " The printer having \"lp\" in its name(s) will be the default "
-#~ "printer.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Description: this is optional but can be useful if several printers "
-#~ "are connected to your computer or if you allow\n"
-#~ " other computers to access to this printer.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Location: if you want to put some information on your\n"
-#~ " printer location, put it here (you are free to write what\n"
-#~ " you want, for example \"2nd floor\").\n"
-#~ msgstr ""
-#~ "Šįńįźįėž įķÜųōå ōļķ åźōõšłōŽ óįņ ćéį ķį ōļ įķé÷ķåżóåé ōļ DrakX.\n"
-#~ "\n"
-#~ "ŠńŻšåé ķį åéóÜćåōå źÜšļéåņ šėēńļöļńßåņ åäž.\n"
-#~ "\n"
-#~ "\n"
-#~ "...* ¼ķļģį åźōõšłōŽ: ļ print spooler ÷ńēóéģļšļéåß ōļ \"lp\"łņ ōļ "
-#~ "šńļźįčļńéóģŻķļ üķļģį. Ļšüōå, šńŻšåé ķį Ż÷åōå Żķįķ åźōõšłōŽ ļķüģįōé \"lp"
-#~ "\".\n"
-#~ " Åįķ Ż÷åōå ģüķļ Żķįķ åźōõšłōŽ, ģšļńåßōå ķį ÷ńēóéģļšļéŽōå šļėėÜ "
-#~ "ļķüģįōį ćéį įõōüķ.Įšėžņ čį šńŻšåé ķį ōį äéį÷łńßóåōå ģå Żķį pipe\n"
-#~ " ÷įńįźōŽńį (Żķį \"|\"). Ļšüōå, åįķ šńļōéģÜōå Żķį šļéļ óēģįķōéźü "
-#~ "üķļģį, šńŻšåé ķį ōļ āÜėåōå šńžōļ, š.÷: \"My printer|lp\".\n"
-#~ " Ļ åźōõšłōŽņ šļõ Ż÷åé ōļ \"lp\" óōį ļķüģįōÜ ōļõ čį åßķįé ļ "
-#~ "šńļźįčļńéóģŻķļņ åźōõšłōŽņ.\n"
-#~ "\n"
-#~ "\n"
-#~ "...* ŠåńéćńįöŽ: įõōü åßķįé šńļįéńåōéźü įėėÜ ģšļńåß ķį åßķįé ÷ńŽóéģļ åįķ "
-#~ "šļėėļß åźōõšłōŻņ åßķįé óõķäåäåģŻķļé óōļķ õšļėļćéóōŽ óįņ Ž įķ åšéōńŻšåōå\n"
-#~ " Üėėļõņ õšļėļćéóōŻņ ķį Ż÷ļõķ šńüóāįóē óå įõōüķ ōļķ åźōõšłōŽ.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Ōļšļčåóßį: åįķ čŻėåōå ķį äžóåōå źÜšļéåņ šėēńļöļńßåņ ó÷åōéźÜ ģå ōēķ\n"
-#~ " ōļšļčåóßį ōļõ åźōõšłōŽ óįņ, āÜėōå ōéņ åäž (åßóōå åėåżčåńļņ ķį "
-#~ "ćńÜųåōå üōé\n"
-#~ " čŻėåōå, ćéį šįńÜäåéćģį \"2ļņ üńļöļņ\").\n"
-
-#~ msgid ""
-#~ "You need to enter some informations here.\n"
-#~ "\n"
-#~ "\n"
-#~ " * Name of queue: the print spooler uses \"lp\" as default printer "
-#~ "name. So, you need have a printer named \"lp\".\n"
-#~ " If you have only one printer, you can use several names for it. You "
-#~ "just need to separate them by a pipe\n"
-#~ " character (a \"|\"). So, if you prefer to have a more meaningful "
-#~ "name, you have to put it first, eg: \"My printer|lp\".\n"
-#~ " The printer having \"lp\" in its name(s) will be the default "
-#~ "printer.\n"
-#~ "\n"
-#~ " \n"
-#~ " * Spool directory: it is in this directory that printing jobs are "
-#~ "stored. Keep the default choice\n"
-#~ " if you don't know what to use\n"
-#~ "\n"
-#~ "\n"
-#~ " * Printer Connection: If your printer is physically connected to your "
-#~ "computer, select \"Local printer\".\n"
-#~ " If you want to access a printer located on a remote Unix machine, "
-#~ "select \"Remote lpd printer\".\n"
-#~ "\n"
-#~ "\n"
-#~ " If you want to access a printer located on a remote Microsoft "
-#~ "Windows machine (or on Unix machine using SMB\n"
-#~ " protocol), select \"SMB/Windows 95/98/NT\".\n"
-#~ "\n"
-#~ "\n"
-#~ " If you want to acces a printer located on NetWare network, select "
-#~ "\"NetWare\".\n"
-#~ msgstr ""
-#~ "ŠńŻšåé ķį åéóÜćåōå źÜšļéåņ šėēńļöļńßåņ åäž.\n"
-#~ "\n"
-#~ "\n"
-#~ " * ¼ķļģį ļõńÜņ: ļ print spooler ÷ńēóéģļšļéåß ōļ \"lp\" łņ ōļ "
-#~ "šńļźįčļńéóģŻķļ üķļģį åźōõšłōŽ. Ļšüōå, šńŻšåé ķį Ż÷åōå Żķįķ åźōõšłōŽ ģå ōļ "
-#~ "üķļģį \"lp\".\n"
-#~ " Åįķ Ż÷åōå ģüķļ Żķįķ åźōõšłōŽ, ģšļńåßōå ķį ÷ńēóéģļšļéŽóåōå šļėėÜ "
-#~ "ļķüģįōį ćéį įõōüķ. ĮšėÜ šńŻšåé ķį ōį ÷łńßóåōå ģå Żķį pipe\n"
-#~ " ÷įńįźōŽńį (Żķį \"|\"). Ļšüōå, åįķ šńļōéģÜōå ķį Ż÷åōå Żķį šéļ "
-#~ "óēģįķōéźü üķļģį, šńŻšåé ķį ōļ āÜėåōå šńžōļ, š.÷: \"My printer|lp\".\n"
-#~ " Ļ åźōõšłōŽņ ģå ōļ \"lp\" óōį ļķüģįōÜ ōļõ čį åßķįé ļ šńļźįčļńéóģŻķļņ "
-#~ "åźōõšłōŽņ.\n"
-#~ "\n"
-#~ " \n"
-#~ " * ŹįōÜėļćļņ Spool: įõōüņ åßķįé ļ źįōÜėļćļņ šļõ įšļčēźåżļķōįé ļé "
-#~ "åńćįóßåņ ōļõ åźōõšłōŽ. ÄéįōēńŽóōå ōēķ åī' ļńéóģļż åšéėļćŽ\n"
-#~ " åįķ äåķ īŻńåōå ōß ķį ÷ńēóéģļšļéŽóåōå\n"
-#~ "\n"
-#~ "\n"
-#~ " * Óżķäåóē ÅźōõšłōŽ: Åįķ ļ åźōõšłōŽņ óįņ åßķįé öõóéźžņ óõķäåäåģŻķļņ "
-#~ "óōļķ õšļėļćéóōŽ óįņ, åšéėŻīōå \"Ōļšéźüņ åźōõšłōŽņ\".\n"
-#~ " Åįķ čŻėåōå ķį Ż÷åōå šńüóāįóē óå Żķįķ åźōõšłōŽ šļõ āńßóźåōįé óå Żķį "
-#~ "įšļģįźńõóģŻķļ Unix ģē÷Üķēģį, åšéėŻīōå \"ĮšļģįźńõóģŻķļņ lpd åźōõšłōŽņ\".\n"
-#~ "\n"
-#~ "\n"
-#~ " Åįķ čŻėåōå ķį Ż÷åōå šńüóāįóē óå Żķįķ åźōõšłōŽ šļõ āńßóźåōįé óå Żķį "
-#~ "įšļģįźńõóģŻķļ Microsoft Windows ģē÷Üķēģį (Ž óå Żķį Unix ģē÷Üķēģį ģå SMB\n"
-#~ " šńłōüźļėėļ), åšéėŻīōå \"SMB/Windows 95/98/NT\".\n"
-#~ "\n"
-#~ "\n"
-#~ " Åįķ čŻėåōå ķį Ż÷åōå šńüóāįóē óå Żķįķ åźōõšłōŽ šļõ āńßóźåōįé óå Żķį "
-#~ "NetWare äßźōõļ, åšéėŻīōå \"NetWare\".\n"
-
-#~ msgid ""
-#~ "Your printer has not been detected. Please enter the name of the device "
-#~ "on\n"
-#~ "which it is connected.\n"
-#~ "\n"
-#~ "\n"
-#~ "For information, most printers are connected on the first parallel port. "
-#~ "This\n"
-#~ "one is called \"/dev/lp0\" under GNU/Linux and \"LPT1\" under Microsoft "
-#~ "Windows."
-#~ msgstr ""
-#~ "Äåķ åķōļšßóōēźå åźōõšłōŽņ. Šįńįźįėž åéóÜćåōå ōļ üķļģį ōēņ óõóźåõŽņ óōēķ\n"
-#~ " ļšļßį åßķįé óõķäåäåģŻķļņ.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ļé šåńéóóüōåńļé åźōõšłōŻņ óõķäŻļķōįé óōēķ šńžōē šįńÜėėēėē čżńį. ĮõōŽ "
-#~ "ļķļģÜęåōįé\n"
-#~ "\"/dev/lp0\" óōļ GNU/Linux źįé \"LPT1\" óōį Microsoft Windows."
-
-#~ msgid "You must now select your printer in the above list."
-#~ msgstr "ÅšéėŻīōå ōļķ åźōõšłōŽ óįņ óōļķ šįńįšÜķł źįōÜėļćļ"
-
-#~ msgid ""
-#~ "Please select the right options according to your printer.\n"
-#~ "Please see its documentation if you don't know what choose here.\n"
-#~ "\n"
-#~ "\n"
-#~ "You will be able to test your configuration in next step and you will be "
-#~ "able to modify it if it doesn't work as you want."
-#~ msgstr ""
-#~ "Šįńįźįėž åšéėŻīōå ōéņ źįōÜėėēėåņ ńõčģßóåéņ ćéį ōļķ åźōõšłōŽ óįņ.\n"
-#~ "ŹļéōÜīōå ōēķ ōåźģēńßłóē ōļõ åźōõšłōŽ åÜķ äåķ īŻńåōå ōé ķį åšéėŻīåōå.\n"
-#~ "\n"
-#~ "\n"
-#~ "ø÷åōå ōēķ äõķįōüōēōį ķį åėŻćīåōå ōéņ åšéėļćŻņ óįņ óōļ åšüģåķļ āŽģį źįé "
-#~ "ķįōéņ ōńļšļšļéŽóåōå įķ äåķ ėåéōļõńćļżķ üšłņ čį čŻėįōå."
-
-#~ msgid ""
-#~ "You can now enter the root password for your Mandrake Linux system.\n"
-#~ "The password must be entered twice to verify that both password entries "
-#~ "are identical.\n"
-#~ "\n"
-#~ "\n"
-#~ "Root is the system's administrator and is the only user allowed to modify "
-#~ "the\n"
-#~ "system configuration. Therefore, choose this password carefully. \n"
-#~ "Unauthorized use of the root account can be extemely dangerous to the "
-#~ "integrity\n"
-#~ "of the system, its data and other system connected to it.\n"
-#~ "\n"
-#~ "\n"
-#~ "The password should be a mixture of alphanumeric characters and at least "
-#~ "8\n"
-#~ "characters long. It should never be written down.\n"
-#~ "\n"
-#~ "\n"
-#~ "Do not make the password too long or complicated, though: you must be "
-#~ "able to\n"
-#~ "remember it without too much effort."
-#~ msgstr ""
-#~ "Ģšļńåßōå ōžńį ķį ļńßóåōå ōē ėŻīē-źėåéäß ćéį ōļķ ÷ńŽóōē \"root\".\n"
-#~ "Ē ėŻīē šńŻšåé ķį åéóį÷čåß åéņ äéšėļżķ ćéį åšéāåāįßłóē.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ļ root åßķįé ļ äéį÷åéńéóōŽņ ōļõ óõóōŽģįōļņ źįé ļ ģüķļņ šļõ Ż÷åé \n"
-#~ "ōļ äéźįßłģį ķį įėėÜīåé ōéņ ńõčģßóåéņ ōļõ óõóōŽģįōļņ. Ćé įõōü, \n"
-#~ "åšéėŻīōå šńļóåźōéźÜ įõōŽ ōē ėŻīē źėåéäß! Ģē åīļõóéļäļōēģŻķē \n"
-#~ "šńüóāįóē óōļ root ģšļńåß ķį åßķįéåīįéńåōéźÜ åšéźßķäõķē ćéį \n"
-#~ "ōēķ įźåńįéüōēōį ōļõ óõóōŽģįōļņ źįé ōłķ äåäļģŻķłķ ōļõ, źįčžņ \n"
-#~ "źįé ćéį Üėėį óõóōŽģįōį óõķäåäåģŻķį óå įõōü. \n"
-#~ "\n"
-#~ "\n"
-#~ "Ē ėŻīē źėåéäß šńŻšåé ķį åßķįé ģéį ģßīē įėöįńéčģēōéźžķ ÷įńįźōŽńłķ \n"
-#~ "źįé ģå ģŽźļņ ōļõėÜ÷éóōļķ ļźōž (8) ÷įńįźōŽńłķ. Äåķ šńŻšåé *šļōŻ* \n"
-#~ "ķį ōļ ćńÜųåōå óå ÷įńōß."
-
-#~ msgid ""
-#~ "If your network uses the LDAP (or NIS) protocol for authentication, "
-#~ "select\n"
-#~ "\"LDAP\" (or \"NIS\") as authentication. If you don't know, ask your "
-#~ "network\n"
-#~ "administrator.\n"
-#~ "\n"
-#~ "If your computer is not connected to any administrated network, you may "
-#~ "want to\n"
-#~ "choose \"Local files\" for authentication."
-#~ msgstr ""
-#~ "Įķ ōļ äßźōõü óįņ õšļóōēńßęåé LDAP (Ž NIS) šńłōüźļėėļ ćéį åīįźńßāłóē, "
-#~ "åšéėŻīōå\n"
-#~ "\"LDAP\" (Ž \"NIS\") łņ åīįźńßāłóē. Įķ äåķ ćķłńßęåōå, ńłōŽóōå ōļķ "
-#~ "äéį÷åéńéóōŽ\n"
-#~ "äéźōżļõ óįņ.\n"
-#~ "Įķ ļ õšļėļćéóōŽņ óįņ äåķ åßķįé óõķäåäåģŻķļņ óå äßźōõļ ģå äéį÷åéńéóōŽ, "
-#~ "ōüōå šéčįķüōįōį ķį čŻėåōå ķį\n"
-#~ "åšéėŻīåōå \"ŌļšéźÜ įń÷åßį\" ćéį åīįźńßāłóē."
-
-#~ msgid ""
-#~ "You may now create one or more \"regular\" user account(s), as\n"
-#~ "opposed to the \"privileged\" user account, root. You can create\n"
-#~ "one or more account(s) for each person you want to allow to use\n"
-#~ "the computer. Note that each user account will have its own\n"
-#~ "preferences (graphical environment, program settings, etc.)\n"
-#~ "and its own \"home directory\", in which these preferences are\n"
-#~ "stored.\n"
-#~ "\n"
-#~ "\n"
-#~ "First of all, create an account for yourself! Even if you will be the "
-#~ "only user\n"
-#~ "of the machine, you may NOT connect as root for daily use of the system: "
-#~ "it's a\n"
-#~ "very high security risk. Making the system unusable is very often a typo "
-#~ "away.\n"
-#~ "\n"
-#~ "\n"
-#~ "Therefore, you should connect to the system using the user account\n"
-#~ "you will have created here, and login as root only for administration\n"
-#~ "and maintenance purposes."
-#~ msgstr ""
-#~ "Ģšļńåßōå ōžńį ķį äēģéļõńćŽóåōå Żķįķ Ž šåńéóóüōåńļõņ \"įšėļżņ\" ÷ńŽóōåņ,\n"
-#~ "(óå įķōßčåóē ģå ōļķ \"åīļõóéļäļōēģŻķļ\" ÷ńŽóōē, root). Ģšļńåßōå ķį \n"
-#~ "äēģéļõńćŽóåōå Żķįķ Ž šåńéóóüōåńļõņ ÷ńŽóōåņ ćéį źÜčå šńüółšļ šļõ čŻėåōå\n"
-#~ "ķį Ż÷åé šńüóāįóē óōļ óżóōēģÜ óįņ. Óēģåéžóōå üōé źÜčå ÷ńŽóōēņ Ż÷åé ōéņ\n"
-#~ "ä韯ņ ōļõ ńõčģßóåéņ (ćńįöéźü šåńéāÜėėļķ, ńõčģßóåéņ åöįńģļćžķ źėš),\n"
-#~ "źįčžņ źįé ōļ äéźü ōļõ \"home directory\", óōļ ļšļßļ įšļčēźåżļķōįé\n"
-#~ "įõōŻņ ļé ńõčģßóåéņ.\n"
-#~ "\n"
-#~ "\n"
-#~ "Źįō' įń÷Žķ, äēģéļõńćŽóōå Żķįķ ÷ńŽóōē ćéį ōļķ åįõōü óįņ! Įźüģį źįé åÜķ\n"
-#~ "åßóōå ļ ģļķįäéźüņ ÷ńēóōēņ ōļõ óõóōŽģįōļņ, ÄÅĶ šńŻšåé ķį ÷ńēóéģļšļéåßōå\n"
-#~ "ōļ root ćéį ōēķ źįčēģåńéķŽ ÷ńŽóē ōļõ óõóōŽģįōļņ, äéüōé įõōü čį \n"
-#~ "äēģéļõńćļżóå źéķäõķļõņ. øķį įšėü ėÜčļņ šėēźōńļėüćēóēņ åßķįé įńźåōü\n"
-#~ "ćéį ķį źįōįóōńŻųåé ōēķ åćźįōÜóōįóŽ óįņ üōįķ åńćÜęåóōå łņ root.\n"
-#~ "\n"
-#~ "\n"
-#~ "Ćé įõōü, čį šńŻšåé ķį óõķäŻåóōå óōļ óżóōēģÜ óįņ ÷ńēóéģļšļéžķōįņ Żķįķ\n"
-#~ "źłäéźü įšėļż ÷ńŽóōē źįé ķį óõķäŻåóōå łņ root ģüķļ ćéį åńćįóßåņ äéļßźēóēņ\n"
-#~ "źįé óõķōŽńēóēņ ōļõ óõóōŽģįōļņ."
-
-#~ msgid ""
-#~ "Creating a boot disk is strongly recommended. If you can't\n"
-#~ "boot your computer, it's the only way to rescue your system without\n"
-#~ "reinstalling it."
-#~ msgstr ""
-#~ "Óõķßóōįōįé ķį äēģéļõńćŽóåōå Żķįķ äßóźļ åźźßķēóēņ. ÅÜķ äåķ \n"
-#~ "ģšļńåßōå ķį åźźéķŽóåōå ōļķ õšļėļćéóōŽ óįņ, åßķįé ļ ģüķļņ ōńüšļņ \n"
-#~ "ķį äéįóžóåōå ōļ óżóōēģÜ óįņ ÷łńßņ åšįķåćźįōÜóōįóē."
-
-#~ msgid ""
-#~ "LILO and grub main options are:\n"
-#~ " - Boot device: Sets the name of the device (e.g. a hard disk\n"
-#~ "partition) that contains the boot sector. Unless you know specifically\n"
-#~ "otherwise, choose \"/dev/hda\".\n"
-#~ "\n"
-#~ "\n"
-#~ " - Delay before booting default image: Specifies the number in tenths\n"
-#~ "of a second the boot loader should wait before booting the first image.\n"
-#~ "This is useful on systems that immediately boot from the hard disk after\n"
-#~ "enabling the keyboard. The boot loader doesn't wait if \"delay\" is\n"
-#~ "omitted or is set to zero.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Video mode: This specifies the VGA text mode that should be selected\n"
-#~ "when booting. The following values are available: \n"
-#~ "\n"
-#~ " * normal: select normal 80x25 text mode.\n"
-#~ "\n"
-#~ " * <number>: use the corresponding text mode.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Clean \"/tmp\" at each boot: if you want delete all files and "
-#~ "directories\n"
-#~ "stored in \"/tmp\" when you boot your system, select this option.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Precise RAM if needed: unfortunately, there is no standard method to "
-#~ "ask the\n"
-#~ "BIOS about the amount of RAM present in your computer. As consequence, "
-#~ "Linux may\n"
-#~ "fail to detect your amount of RAM correctly. If this is the case, you "
-#~ "can\n"
-#~ "specify the correct amount or RAM here. Please note that a difference of "
-#~ "2 or 4\n"
-#~ "MB between detected memory and memory present in your system is normal."
-#~ msgstr ""
-#~ "Ļé źżńéåņ åšéėļćŻņ ōļõ LILO źįé ōļõ grub åßķįé:\n"
-#~ " - ÓõóźåõŽ åźźßķēóēņ: Ļńßęåé ōļ üķļģį ōēņ óõóźåõŽņ (š.÷. ģéį \n"
-#~ "źįōÜōģēóē) šļõ šåńéŻ÷åé ōļķ ōļģŻį åźźßķēóēņ. Åźōüņ źįé įķ åßóōå\n"
-#~ "óßćļõńļé üōé åßķįé įėėéžņ, åšéėŻīōå \"/dev/hda\".\n"
-#~ "\n"
-#~ "\n"
-#~ " - ŹįčõóōŻńēóē šńéķ ōēķ åźźßķēóē: Ļńßęåé ōį 䯟įōį ōļõ äåõōåńļėŻšōļõ\n"
-#~ "šļõ ōļ óżóōēģį čį šåńéģŻķåé šńéķ åźźéķŽóåé ōļ šńžōļ ėåéōļõńćéźü.\n"
-#~ "Įõōü åßķįé óõķŽčłņ ÷ńŽóéģļ óå óõóōŽģįōį šļõ åźźéķļżķ įšü ōļķ äßóźļ\n"
-#~ "įģŻółņ ģåōÜ ōēķ åķåńćļšļßēóē ōļõ šėēźōńļėļćßļõ. Äåķ õšÜń÷åé źįčõóōŻńēóē\n"
-#~ "åÜķ ļ įńéčģüņ šįńįėåéöčåß Ž åßķįé ģēäŻķ.\n"
-#~ "\n"
-#~ "\n"
-#~ " - ĮķÜėõóē ļčüķēņ: Įõōü ļńßęåé ōēķ VGA įķÜėõóē źåéģŻķļõ šļõ čį åšéėåćåß\n"
-#~ "źįōÜ ōēķ åźźßķēóē. ÕšÜń÷ļõķ ļé šįńįźÜōł åšéėļćŻņ: \n"
-#~ "\n"
-#~ " * normal: Źįķļķ韎 įķÜėõóē źåéģŻķļõ 80×25.\n"
-#~ "\n"
-#~ " * <įńéčģüņ>: ÷ńŽóē ōēņ įķōßóōļé÷ēņ įķÜėõóēņ źåéģŻķļõ.\n"
-#~ "\n"
-#~ " - Źįčįńéóģüņ \"/tmp\" óå źÜčå åźźßķēóē: åįķ čŻėåōå ķį óāŽķåōå üėį ōį "
-#~ "įń÷åßį źįé ōļõ öįźŻėļõņ\n"
-#~ "šļõ åßķįé óōļ \"/tmp\" üōįķ īåźéķÜōå ōļ óżóōēģÜ óįņ, åķåńćļšļéŽóōå įõōŽķ "
-#~ "ōēķ åšéėļćŽ.\n"
-#~ "\n"
-#~ "\n"
-#~ " - ĮźńéāŽņ RAM įķ ÷ńåéÜęåōįé: äõóōõ÷žņ, äåķ õšÜń÷åé óōåńåüōõšē ģŻčļäļņ "
-#~ "ķį äžóåé ōļ\n"
-#~ "BIOS ōļķ įźńéāŽ įńéčģü RAM ōļõ õšļėļćéóōŽ óįņ. Óįķ óõķŻšåéį, ōļ Linux "
-#~ "ßółņ\n"
-#~ "įšļōż÷åé ķį įķé÷ķåżóåé ōēķ RAM ółóōÜ. Óå įõōŽķ ōēķ šåńßšōłóē, ģšļńåßōå\n"
-#~ "ķį ļńßóåōå ōļķ ółóōü įńéčģü åäž. Šįńįźįėž óēģåéžóōå šłņ ģéį äéįöļńÜ ōēņ "
-#~ "ōÜīēņ ōłķ 2 Ž 4\n"
-#~ "MB ģåōįīż ōēņ ģķŽģēņ šļõ įķé÷ķåżōēźå źįé ōēņ šńįćģįō韎ņ RAM ōļõ "
-#~ "óõóōŽģįōüņ óįņ åßķįé źįķļķ韎."
-
-#~ msgid ""
-#~ "SILO is a bootloader for SPARC: it is able to boot\n"
-#~ "either GNU/Linux or any other operating system present on your computer.\n"
-#~ "Normally, these other operating systems are correctly detected and\n"
-#~ "installed. If this is not the case, you can add an entry by hand in this\n"
-#~ "screen. Be careful as to choose the correct parameters.\n"
-#~ "\n"
-#~ "\n"
-#~ "You may also want not to give access to these other operating systems to\n"
-#~ "anyone, in which case you can delete the corresponding entries. But\n"
-#~ "in this case, you will need a boot disk in order to boot them!"
-#~ msgstr ""
-#~ "Ōļ SILO åßķįé šńüćńįģģį åźźßķēóēņ ćéį SPARC: Ģšļńåß ķį åźźéķŽóåé \n"
-#~ "ōļ GNU/Linux Ž ļšļéļ䎚ļōå Üėėļ ėåéōļõńćéźü õšÜń÷åé óōļ óżóōēģÜ óįņ. "
-#~ "ŹįķļķéźÜ, \n"
-#~ "ōį åšéšėŻļķ ėåéōļõńćéźÜ šńļóäéļńßęļķōįé źįé ńõčģßęļķōįé ółóōÜ. ÅÜķ įõōü "
-#~ "äåķ \n"
-#~ "óõķŻāē, ģšļńåßōå ķį šńļóčŻóåōå åšéšėŻļķ åšéėļćŻņ óå įõōŽķ ōēķ ļčüķē. \n"
-#~ "ŠńļóŻīōå ķį åšéėŻīåōå ōéņ ółóōŻņ šįńįģŻōńļõņ.\n"
-#~ "\n"
-#~ "Ģšļńåßōå åšßóēņ ķį įšļźėåßóåōå ōēķ šńüóāįóē óå Üėėį ėåéōļõńćéźÜ óõóōŽģįōį "
-#~ "įöįéńžķōįņ\n"
-#~ "ōéņ įķōßóōļé÷åņ åšéėļćŻņ. Óå įõōŽķ üģłņ ōēķ šåńßšōłóē, čį ÷ńåéįóōåßōå "
-#~ "äéóźŻōōį åźźßķēóēņ\n"
-#~ "ćéį ķį ōį ÷ńēóéģļšļéŽóåōå!"
-
-#~ msgid ""
-#~ "SILO main options are:\n"
-#~ " - Bootloader installation: Indicate where you want to place the\n"
-#~ "information required to boot to GNU/Linux. Unless you know exactly\n"
-#~ "what you are doing, choose \"First sector of drive (MBR)\".\n"
-#~ "\n"
-#~ "\n"
-#~ " - Delay before booting default image: Specifies the number in tenths\n"
-#~ "of a second the boot loader should wait before booting the first image.\n"
-#~ "This is useful on systems that immediately boot from the hard disk after\n"
-#~ "enabling the keyboard. The boot loader doesn't wait if \"delay\" is\n"
-#~ "omitted or is set to zero."
-#~ msgstr ""
-#~ "Ļé źżńéåņ åšéėļćŻņ ōļõ SILO åßķįé:\n"
-#~ " - ÅćźįōÜóōįóē bootloader: Ļńßęåé ōļ šļż čŻėåōå ķį åćźįōįóōįčļżķ ļé "
-#~ "įšįńįßōēōåņ\n"
-#~ "ćéį ōēķ åźźßķēóē ōļõ GNU/Linux šėēńļöļńßåņ. Åźōüņ źé įķ īŻńåōå ōé įźńéāžņ "
-#~ "źÜķåōå,\n"
-#~ "åšéėŻīōå \"Šńžōļņ ōļģŻįņ ōļõ äßóźļõ (MBR)\".\n"
-#~ "\n"
-#~ "\n"
-#~ " - ŹįčõóōŻńēóē šńéķ ōēķ åźźßķēóē: Ļńßęåé ōį 䯟įōį ōļõ äåõōåńļėŻšōļõ\n"
-#~ "šļõ ōļ óżóōēģį čį šåńéģŻķåé šńéķ åźźéķŽóåé ōļ šńžōļ ėåéōļõńćéźü.\n"
-#~ "Įõōü åßķįé óõķŽčłņ ÷ńŽóéģļ óå óõóōŽģįōį šļõ åźźéķļżķ įšü ōļķ äßóźļ\n"
-#~ "įģŻółņ ģåōÜ ōēķ åķåńćļšļßēóē ōļõ šėēźōńļėļćßļõ. Äåķ õšÜń÷åé źįčõóōŻńēóē\n"
-#~ "åÜķ ļ įńéčģüņ šįńįėåéöčåß Ž åßķįé ģēäŻķ."
-
-#~ msgid ""
-#~ "Now it's time to configure the X Window System, which is the\n"
-#~ "core of the GNU/Linux GUI (Graphical User Interface). For this purpose,\n"
-#~ "you must configure your video card and monitor. Most of these\n"
-#~ "steps are automated, though, therefore your work may only consist\n"
-#~ "of verifying what has been done and accept the settings :)\n"
-#~ "\n"
-#~ "\n"
-#~ "When the configuration is over, X will be started (unless you\n"
-#~ "ask DrakX not to) so that you can check and see if the\n"
-#~ "settings suit you. If they don't, you can come back and\n"
-#~ "change them, as many times as necessary."
-#~ msgstr ""
-#~ "Ōžńį šńŻšåé ķį ńõčģßóåōå ōļ X Window System, ōļ ļšļßļ åßķįé ļ \n"
-#~ "šõńŽķįņ ōļõ ćńįöéźļż šåńéāÜėėļķōļņ (GUI) ōļõ GNU/Linux. ŠńŻšåé ķį\n"
-#~ "ńõčģßóåōå ōēķ źÜńōį ćńįöéźžķ źįé ōēķ ļčüķē óįņ. Ōļ ģåćįėżōåńļ\n"
-#~ "ģŻńļņ ōēņ äéįäéźįóßįņ åßķįé įõōļģįōļšļéēģŻķļ, ļšüōå ē óõģāļėŽ\n"
-#~ "óįņ óõķßóōįōįé óōēķ åšéāåāįßłóē źįé įšļäļ÷Ž ōłķ įõōļģÜōłķ \n"
-#~ "ńõčģßóåłķ :)\n"
-#~ "\n"
-#~ "\n"
-#~ "¼ōįķ ļėļźėēńłčåß ē äéįäéźįóßį ńżčģéóēņ, čį īåźéķŽóåé ōļ\n"
-#~ "X Window óżóōēģį (åźōüņ åÜķ åóåßņ įšļöįóßóåōå įėėéžņ), ćéį\n"
-#~ "ķį åėŻćīåōå åÜķ ļé ńõčģßóåéņ óįņ éźįķļšļéļżķ. ÅÜķ ü÷é, \n"
-#~ "ģšļńåßōå ķį åšéóōńŻųåōå åäž źįé ķį åšįķįėÜāåōå ōéņ ńõčģßóåéņ\n"
-#~ "üóåņ öļńŻņ ÷ńåéįóōåß."
-
-#~ msgid ""
-#~ "If something is wrong in X configuration, use these options to correctly\n"
-#~ "configure the X Window System."
-#~ msgstr ""
-#~ "ÅÜķ źÜōé äåķ šÜåé źįėÜ ģå ōéņ ńõčģßóåéņ ōłķ ×, ÷ńēóéģļšļéåßóōå įõōŻņ ōéņ\n"
-#~ "åšéėļćŻņ ćéį ķį ńõčģßóåōå ółóōÜ ōļ ćńįöéźü šåńéāÜėėļķ (X Window System)."
-
-#~ msgid ""
-#~ "If you prefer to use a graphical login, select \"Yes\". Otherwise, "
-#~ "select\n"
-#~ "\"No\"."
-#~ msgstr ""
-#~ "ÅÜķ šńļōéģÜōå åźźßķēóē óå ćńįöéźü šåńéāÜėėļķ åšéėŻīōå \"Ķįé\". Įėėéžņ, \n"
-#~ "åšéėŻīōå \"¼÷é\"."
-
-#~ msgid ""
-#~ "You can choose a security level for your system. Please refer to the "
-#~ "manual for complete\n"
-#~ " information. Basically, if you don't know what to choose, keep the "
-#~ "default option.\n"
-#~ msgstr ""
-#~ "Ģšļńåßōå ķį åšéėŻīåōå Żķį åšßšåäļ įóöÜėåéįņ ćéį ōļ óżóōēģÜ óįņ. Šįńįźįėž "
-#~ "äéįāÜóōå ōļ manual ćéį šėŽńåéņ\n"
-#~ " šėēńļöļńßåņ. ĀįóéźÜ, įķ äåķ īŻńåōå ōß ķį åšéėŻīåōå, źńįōŽóōå ōēņ "
-#~ "šńļźįčļńéóģŻķåņ åšéėļćŻņ.\n"
-
-#~ msgid ""
-#~ "Your system is going to reboot.\n"
-#~ "\n"
-#~ "After rebooting, your new Mandrake Linux system will load automatically.\n"
-#~ "If you want to boot into another existing operating system, please read\n"
-#~ "the additional instructions."
-#~ msgstr ""
-#~ "Ōļ óżóōēģÜ óįņ čį åšįķåźźéķŽóåé.\n"
-#~ "\n"
-#~ "ĢåōÜ ōēķ åšįķåźźßķēóē, ōļ ķŻļ óįņ Mandrake Linux óżóōēģį čį īåźéķŽóåé\n"
-#~ "įõōüģįōį. ÅÜķ čŻėåōå ķį åźźéķŽóåōå Żķį Üėėļ õšÜń÷ļķ ėåéōļõńćéźü, "
-#~ "šįńįźįėž\n"
-#~ "äéįāÜóōå ōéņ ó÷åō韯ņ ļäēćßåņ."
-
-#~ msgid "Czech (Programmers)"
-#~ msgstr "ŌóŻ÷éźļ (ŠńļćńįģģįōéóōŻņ)"
-
-#~ msgid "Slovakian (Programmers)"
-#~ msgstr "Óėļāįźßįņ (šńļćńįģģįōéóōŻņ)"
-
-#~ msgid "Name of the profile to create:"
-#~ msgstr "¼ķļģį ōļõ šńļößė ćéį äēģéļõńćßį:"
-
-#~ msgid "Default Runlevel"
-#~ msgstr "Åī' ļńéóģļż Runlevel"
-
-#~ msgid "Write /etc/fstab"
-#~ msgstr "Įšļ莟åõóē /etc/fstab"
-
-#~ msgid "Format all"
-#~ msgstr "Ģļńöļšļßēóē üėłķ"
-
-#~ msgid "After formatting all partitions,"
-#~ msgstr "ĢåōÜ ōēķ ģļńöļšļßēóē üėłķ ōłķ źįōįōģŽóåłķ,"
-
-#~ msgid "all data on these partitions will be lost"
-#~ msgstr "üėį ōį äåäļģŻķį óå įõōŻņ ōéņ źįōįōģŽóåéņ čį ÷įčļżķ"
-
-#~ msgid "Reload"
-#~ msgstr "Åšįķįöüńōłóē"
-
-#~ msgid ""
-#~ "Do you want to generate an auto install floppy for linux replication?"
-#~ msgstr ""
-#~ "ČŻėåōå ķį äēģéļõńćŽóåōå ģéį äéóźŻōōį įõōüģįōēņ åćźįōÜóōįóēņ ćéį "
-#~ "źėłķļšļßēóē įõōŽņ ōēņ åćźįōÜóōįóēņ;"
-
-#~ msgid "ADSL configuration"
-#~ msgstr "Ńõčģßóåéņ ADSL"
-
-#~ msgid "NetWare"
-#~ msgstr "NetWare"
-
-#~ msgid "Remote queue name missing!"
-#~ msgstr "¼ķļģį įšļģåģįźńõóģŻķēņ ļõńÜņ ėåßšåé!"
-
-#~ msgid ""
-#~ "Here you can specify any arbitrary command line into which the job should "
-#~ "be piped instead of being sent directly to a printer."
-#~ msgstr ""
-#~ "Åäž ģšļńåßōå ķį ļńßóåōå ģéį ćńįģģŽ åķōļėžķ óōēķ ļšļßį ē äéåńćįóßį čį "
-#~ "äéįółėēķžķåōįé įķōß ķį óōŻėķåōįé źįōåõčåßįķ óōļķ åźōõšłōŽ."
-
-#~ msgid "Command line"
-#~ msgstr "ĆńįģģŽ åķōļėžķ"
-
-#~ msgid "A command line must be entered!"
-#~ msgstr "Ģéį ćńįģģŽ åķōļėžķ šńŻšåé ķį åéóį÷čåß!"
-
-#~ msgid "Enter Printer Name and Comments"
-#~ msgstr "ÅéóÜćåōå ōļ üķļģį ōļõ åźōõšłōŽ źįé ó÷üėéį"
-
-#~ msgid "Config file content could not be interpreted."
-#~ msgstr "Ōį šåńéå÷üģåķį ōļõ įń÷åßļõ ńõčģßóåłķ äåķ ģšļńļżķ ķį ģåōįöńįóōļżķ"
-
-#~ msgid "Unrecognized config file"
-#~ msgstr "Ģē įķįćķłńßóéģļ įń÷åßļ ńõčģßóåłķ"
-
-#~ msgid "Adapter"
-#~ msgstr "Adapter"
-
-#~ msgid "Disable network"
-#~ msgstr "Įšåķåńćļšļßēóē äéźōżļõ"
-
-#~ msgid "Enable network"
-#~ msgstr "Åķåńćļšļßēóē äéźōżļõ"
-
-#~ msgid "Network Monitoring"
-#~ msgstr "Åšßāėåųē Äéźōżļõ"
-
-#~ msgid "Profile "
-#~ msgstr "Šńļößė "
-
-#~ msgid "Statistics"
-#~ msgstr "ÓōįōéóōéźÜ"
-
-#~ msgid "Sending Speed:"
-#~ msgstr "Ōį÷żōēōį ĮšļóōļėŽņ: "
-
-#~ msgid "Receiving Speed:"
-#~ msgstr "Ōį÷żōēōį ĖŽųēņ: "
-
-#~ msgid "Logs"
-#~ msgstr "Logs"
-
-#~ msgid "Connecting to Internet "
-#~ msgstr "Óżķäåóē óōļ äéįäßźōõļ (internet)"
-
-#~ msgid "Disconnecting from Internet "
-#~ msgstr "Įšļóżķäåóē įšü ōļ äéįäßźōõļ (internet)"
-
-#~ msgid "Disconnection from Internet failed."
-#~ msgstr "Įšļóżķäåóē įšü ōļ äéįäßźōõļ (internet) įšŻōõ÷å."
-
-#~ msgid "Disconnection from Internet complete."
-#~ msgstr "Įšļóżķäåóē įšü ōļ äéįäßźōõļ (internet) ļėļźėēńžčēźå"
-
-#~ msgid "Connection complete."
-#~ msgstr "Ē óżķäåóē ļėļźėēńžčēźå"
-
-#~ msgid ""
-#~ "Connection failed.\n"
-#~ "Verify your configuration in the Mandrake Control Center."
-#~ msgstr ""
-#~ "Ē óżķäåóē įšŻōõ÷å.\n"
-#~ "Åšéāåāįéžóōå ōéņ ńõčģßóåéņ óįņ óōļ ŹŻķōńļ ÅėŻć÷ļõ Mandrake."
-
-#~ msgid "sent: "
-#~ msgstr "įšļóōÜėčēźįķ: "
-
-#~ msgid "received: "
-#~ msgstr "åėŽöčēóįķ: "
-
-#~ msgid "average"
-#~ msgstr "ģŻóļņ üńļņ"
-
-#~ msgid ""
-#~ "You can now test your mouse. Use buttons and wheel to verify\n"
-#~ "if settings are good. If not, you can click on \"Cancel\" to choose "
-#~ "another\n"
-#~ "driver."
-#~ msgstr ""
-#~ "Ģšļńåßōå ōžńį ķį äļźéģÜóåōå ōļ šļķōßźé óįņ. ÄļźéģÜóōå ōį šėŽźōńį źįé ōļ\n"
-#~ "ńļäÜźé źįé āåāįéłčåßōå üōé üėį ėåéōļõńćļżķ üšłņ šńŻšåé. Įķ ü÷é, åšéėŻīōå\n"
-#~ "\"Įźżńłóē\" źįé åšéėŻīōå Üėėļķ ļäēćü."
-
-#~ msgid "DSL (or ADSL) connection"
-#~ msgstr "Óżķäåóē DSL (Ž ADSL)"
-
-#~ msgid "Choose"
-#~ msgstr "ÅšéėļćŽ"
-
-#~ msgid "You can specify directly the URI to access the printer with CUPS."
-#~ msgstr ""
-#~ "Ģšļńåßōå ķį äžóåōå źįōåõčåßįķ ōļ URI ćéį šńüóāįóē óōļķ åźōõšłōŽ ģŻół CUPS."
-
-#~ msgid "Yes, print ASCII test page"
-#~ msgstr "Ķįé, óōåßėå äļźéģįóō韎 óåėßäį ASCII"
-
-#~ msgid "Yes, print PostScript test page"
-#~ msgstr "Ķįé, óōåßėå äļźéģįóō韎 óåėßäį PostScrip"
-
-#~ msgid "Yes, print both test pages"
-#~ msgstr "Ķįé, óōåßėå źįé ōéņ äżļ äļźéģįóō韯ņ óåėßäåņ"
-
-#~ msgid "Paper Size"
-#~ msgstr "ĢŻćåčļņ ÷įńōéļż"
-
-#~ msgid "Eject page after job?"
-#~ msgstr "ĮšļāļėŽ ÷įńōéļż ģå ōļ šŻńįņ ōēņ åźōżšłóēņ;"
-
-#~ msgid "Uniprint driver options"
-#~ msgstr "ÅšéėļćŻņ ļäēćļż Uniprint"
-
-#~ msgid "Color depth options"
-#~ msgstr "ÅšéėļćŻņ āÜčļõņ ÷ńžģįōļņ"
-
-#~ msgid "Print text as PostScript?"
-#~ msgstr "Åźōżšłóē źåéģŻķļõ óįķ PostScript;"
-
-#~ msgid "Fix stair-stepping text?"
-#~ msgstr "Äéüńčłóē źåéģŻķļõ-óźÜėįņ;"
-
-#~ msgid "Number of pages per output pages"
-#~ msgstr "Įńéčģüņ óåėßäłķ įķÜ óåėßäåņ åīüäļõ"
-
-#~ msgid "Right/Left margins in points (1/72 of inch)"
-#~ msgstr "ĮńéóōåńÜ/äåīéÜ šåńéčžńéį óå óōéćģŻņ (1/72 ōēņ ßķōóįņ)"
-
-#~ msgid "Top/Bottom margins in points (1/72 of inch)"
-#~ msgstr "ŠÜķł/źÜōł šåńéčžńéį óå óōéćģŻņ (1/72 ōēņ ßķōóįņ)"
-
-#~ msgid "Extra GhostScript options"
-#~ msgstr "ÅšéšėŻļķ åšéėļćŻņ GhostScript"
-
-#~ msgid "Extra Text options"
-#~ msgstr "ÅšéšėŻļķ åšéėļćŻņ źåéģŻķļõ"
-
-#~ msgid "Reverse page order"
-#~ msgstr "Įķōßóōńļöē óåéńÜ óåėßäłķ;"
-
-#~ msgid "Select Remote Printer Connection"
-#~ msgstr "Ōńüšļņ óżķäåóēņ įšļģåģįźńõóģŻķļõ åźōõšłōŽ"
-
-#~ msgid ""
-#~ "With a remote CUPS server, you do not have to configure\n"
-#~ "any printer here; printers will be automatically detected.\n"
-#~ "In case of doubt, select \"Remote CUPS server\"."
-#~ msgstr ""
-#~ "Ģå ōēķ ÷ńŽóē åīõšēńåōēōŽ CUPS, äåķ ÷ńåéÜęåōįé ķį ńõčģßóåōå åźōõšłōŻņ \n"
-#~ "åäž. Ļé åźōõšłōŻņ čį įķįćķłńéóōļżķ įõōüģįōį. Įķ Ż÷åōå įģöéāļėßį, "
-#~ "åšéėŻīōå\n"
-#~ "\"ÅīõšēńåōēōŽ CUPS\"."
-
-#~ msgid ""
-#~ "Every printer need a name (for example lp).\n"
-#~ "Other parameters such as the description of the printer or its location\n"
-#~ "can be defined. What name should be used for this printer and\n"
-#~ "how is the printer connected?"
-#~ msgstr ""
-#~ "ŹÜčå åźōõšłōŽņ ÷ńåéÜęåōįé Żķį üķļģį (ćéį šįńÜäåéćģį lp). Ģšļńļżķ åšßóēņ "
-#~ "ķį \n"
-#~ "ļńéóōļżķ Üėėåņ šįńÜģåōńļé üšłņ šåńéćńįöŽ Ž ē ōļšļčåóßį. Ōé üķļģį ķį \n"
-#~ "ļńßół ćé įõōüķ ōļķ åźōõšłōŽ źįé šžņ åßķįé óõķäåäåģŻķļņ ļ åźōõšłōēņ;"
-
-#~ msgid ""
-#~ "Every print queue (which print jobs are directed to) needs a\n"
-#~ "name (often lp) and a spool directory associated with it. What\n"
-#~ "name and directory should be used for this queue and how is the printer "
-#~ "connected?"
-#~ msgstr ""
-#~ "ŹÜčå ļõńÜ åźōõšłōŽ (óōēķ ļšļßį óōŻėķļķōįé ļé åźōõšžóåéņ) ÷ńåéÜęåōįé\n"
-#~ "Żķį üķļģį (óõ÷ķÜ lp) źįé Żķįķ źįōÜėļćļ. Ōé üķļģį źįé źįōÜėļćļ ķį \n"
-#~ "ļńßół ćé įõōŽķ ōēķ ļõńÜ åźōõšłōŽ źįé šžņ åßķįé óõķäåäåģŻķļņ ļ åźōõšłōēņ;"
-
-#~ msgid "Name of queue"
-#~ msgstr "¼ķļģį ļõńÜņ"
-
-#~ msgid "Spool directory"
-#~ msgstr "ŹįōÜėļćļņ"
-
-#~ msgid "Provider dns 1"
-#~ msgstr "DNS 1"
-
-#~ msgid "Provider dns 2"
-#~ msgstr "DNS 2"
diff --git a/perl-install/share/po/eo.po b/perl-install/share/po/eo.po
deleted file mode 100644
index 431df175c..000000000
--- a/perl-install/share/po/eo.po
+++ /dev/null
@@ -1,11770 +0,0 @@
-#
-# MESAŲOJ DE DrakX
-# D. Dale Gulledge <dsplat@rochester.rr.com>, 2000
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: DrakX VERSION\n"
-"POT-Creation-Date: 2002-03-11 18:29+0100\n"
-"PO-Revision-Date: 2001-08-02 22:36-0500\n"
-"Last-Translator: D. Dale Gulledge <dsplat@rochester.rr.com>\n"
-"Language-Team: Esperanto <eo@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-3\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../Xconfigurator.pm_.c:242
-msgid "Configure all heads independently"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:243
-msgid "Use Xinerama extension"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:246
-#, c-format
-msgid "Configure only card \"%s\" (%s)"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:249
-msgid "Multi-head configuration"
-msgstr "Plur-ekrana konfigura¼o"
-
-#: ../../Xconfigurator.pm_.c:250
-msgid ""
-"Your system support multiple head configuration.\n"
-"What do you want to do?"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:261
-msgid "Graphic card"
-msgstr "Grafika karto"
-
-#: ../../Xconfigurator.pm_.c:262
-msgid "Select a graphic card"
-msgstr "Elektu grafikan karton"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "Choose a X server"
-msgstr "Elektu X servilon"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "X server"
-msgstr "X servilo"
-
-#: ../../Xconfigurator.pm_.c:293
-#, fuzzy
-msgid "Choose a X driver"
-msgstr "Elektu X servilon"
-
-#: ../../Xconfigurator.pm_.c:293
-#, fuzzy
-msgid "X driver"
-msgstr "X servilo"
-
-#: ../../Xconfigurator.pm_.c:360 ../../Xconfigurator.pm_.c:366
-#: ../../Xconfigurator.pm_.c:416 ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s"
-msgstr "XFree %s"
-
-#: ../../Xconfigurator.pm_.c:363
-msgid "Which configuration of XFree do you want to have?"
-msgstr "Kiun konfiguron de XFree vi deziras havi?"
-
-#: ../../Xconfigurator.pm_.c:374
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"Via karto povas havi 3D aparatan akceladon, sed nur kun XFree %s.\n"
-"XFree %s subtenas vian karton kiu eble havas pli bonan subtenon en 2D."
-
-#: ../../Xconfigurator.pm_.c:376 ../../Xconfigurator.pm_.c:409
-#, c-format
-msgid "Your card can have 3D hardware acceleration support with XFree %s."
-msgstr "Vi povas havi 3D aparatan akceladan subtenon kun XFree %s."
-
-#: ../../Xconfigurator.pm_.c:378 ../../Xconfigurator.pm_.c:411
-#: ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s with 3D hardware acceleration"
-msgstr "XFree %s kun 3D aparata akcelado"
-
-#: ../../Xconfigurator.pm_.c:386 ../../Xconfigurator.pm_.c:400
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER."
-msgstr ""
-"Via karto povas havi 3D aparatan akceladon, sed nur kun XFree %s.\n"
-"NOTU KE ĘI TIO ESTAS EKSPERIMENTA SUBTENO KAJ EBLE SVENIGOS VIAN KOMPUTILON."
-
-#: ../../Xconfigurator.pm_.c:388 ../../Xconfigurator.pm_.c:402
-#, c-format
-msgid "XFree %s with EXPERIMENTAL 3D hardware acceleration"
-msgstr "XFree %s kun EKSPERIMENTA 3D aparata akcelado"
-
-#: ../../Xconfigurator.pm_.c:397
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"Via karto povas havi 3D aparatan akceladon, sed nur kun XFree %s.\n"
-"NOTU KE ĘI TIO ESTAS EKSPERIMENTA SUBTENO KAJ EBLE SVENIGOS VIAN "
-"KOMPUTILON.\n"
-"XFree %s subtenas vian karton kiu eble havas pli bonan subtenon en 2D."
-
-#: ../../Xconfigurator.pm_.c:417
-msgid "Xpmac (installation display driver)"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:421
-msgid "XFree configuration"
-msgstr "XFree Konfigurado"
-
-#: ../../Xconfigurator.pm_.c:496
-msgid "Select the memory size of your graphic card"
-msgstr "Elektu memorkapaciton de via grafika karto"
-
-#: ../../Xconfigurator.pm_.c:550
-msgid "Choose options for server"
-msgstr "Elektu opciojn por servilo"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Choose a monitor"
-msgstr "Elektu ekranon"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Monitor"
-msgstr "Ekrano"
-
-#: ../../Xconfigurator.pm_.c:577
-msgid ""
-"The two critical parameters are the vertical refresh rate, which is the "
-"rate\n"
-"at which the whole screen is refreshed, and most importantly the horizontal\n"
-"sync rate, which is the rate at which scanlines are displayed.\n"
-"\n"
-"It is VERY IMPORTANT that you do not specify a monitor type with a sync "
-"range\n"
-"that is beyond the capabilities of your monitor: you may damage your "
-"monitor.\n"
-" If in doubt, choose a conservative setting."
-msgstr ""
-"La du gravegaj parametroj estas la vertikala refrežigrapido (vertical\n"
-"refresh rate) kiu estas la rapido por refrežigi la tutan ekranon, kaj\n"
-"plej grave la horizontala sinkronrapido (horizontal sync rate), kiu estas\n"
-"la rapido por montri skanliniojn.\n"
-"\n"
-"Ųi estas TRE GRAVA ke vi ne elektas specon de ekrano kiu havas\n"
-"sinkronamplekson kiu estas preter la kapabloj de via ekrano: vi eble\n"
-"difektus vian ekranon. Se vi dubas, elektu zorgeman opcion."
-
-#: ../../Xconfigurator.pm_.c:584
-msgid "Horizontal refresh rate"
-msgstr "Horizontala sinkronrapido (horizontal sync rate)"
-
-#: ../../Xconfigurator.pm_.c:585
-msgid "Vertical refresh rate"
-msgstr "Vertikala refrežigrapido (vertical refresh rate)"
-
-#: ../../Xconfigurator.pm_.c:622
-msgid "Monitor not configured"
-msgstr "Ekrano ne estas konfigurata"
-
-#: ../../Xconfigurator.pm_.c:625
-msgid "Graphic card not configured yet"
-msgstr "Grafika karto ne jam konfigurita"
-
-#: ../../Xconfigurator.pm_.c:628
-msgid "Resolutions not chosen yet"
-msgstr "Vi ne jam elektas distingivojn"
-
-#: ../../Xconfigurator.pm_.c:646
-msgid "Do you want to test the configuration?"
-msgstr "Ęu vi deziras provi la konfigura¼on?"
-
-#: ../../Xconfigurator.pm_.c:650
-msgid "Warning: testing this graphic card may freeze your computer"
-msgstr "Averto: provado de ęi tiu grafika karto eble svenigos vian komputilon"
-
-#: ../../Xconfigurator.pm_.c:653
-msgid "Test of the configuration"
-msgstr "Provu konfigura¼on"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid ""
-"\n"
-"try to change some parameters"
-msgstr ""
-"\n"
-"penu žanųi iom da parametroj"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid "An error has occurred:"
-msgstr "Eraro okazis:"
-
-#: ../../Xconfigurator.pm_.c:731
-#, c-format
-msgid "Leaving in %d seconds"
-msgstr "Mi eliros post %d sekundoj"
-
-#: ../../Xconfigurator.pm_.c:742
-msgid "Is this the correct setting?"
-msgstr "Ęu tio ęi pravas?"
-
-#: ../../Xconfigurator.pm_.c:751
-msgid "An error has occurred, try to change some parameters"
-msgstr "Eraro okazis, penu žanųi iom da parametroj"
-
-#: ../../Xconfigurator.pm_.c:822
-msgid "Resolution"
-msgstr "Distingivo"
-
-#: ../../Xconfigurator.pm_.c:874
-msgid "Choose the resolution and the color depth"
-msgstr "Elektu distingivon kaj kolorprofundon"
-
-#: ../../Xconfigurator.pm_.c:876
-#, c-format
-msgid "Graphic card: %s"
-msgstr "Grafika karto: %s"
-
-#: ../../Xconfigurator.pm_.c:877
-#, c-format
-msgid "XFree86 server: %s"
-msgstr "XFree86 servilo: %s"
-
-#: ../../Xconfigurator.pm_.c:891 ../../diskdrake/interactive.pm_.c:259
-#: ../../install_steps_interactive.pm_.c:208
-msgid "More"
-msgstr "Plu"
-
-#: ../../Xconfigurator.pm_.c:891 ../../install_gtk.pm_.c:84
-#: ../../install_steps_gtk.pm_.c:328 ../../interactive.pm_.c:127
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_http.pm_.c:104
-#: ../../interactive_newt.pm_.c:170 ../../interactive_stdio.pm_.c:141
-#: ../../interactive_stdio.pm_.c:142 ../../my_gtk.pm_.c:686
-#: ../../my_gtk.pm_.c:1019 ../../my_gtk.pm_.c:1041
-#: ../../standalone/drakbackup_.c:2298 ../../standalone/drakbackup_.c:2369
-#: ../../standalone/drakbackup_.c:2385
-msgid "Ok"
-msgstr "Jeso"
-
-#: ../../Xconfigurator.pm_.c:893 ../../network/netconnect.pm_.c:169
-#: ../../printerdrake.pm_.c:2470 ../../standalone/draknet_.c:275
-#: ../../standalone/draknet_.c:278
-msgid "Expert Mode"
-msgstr "Spertula Modalo"
-
-#: ../../Xconfigurator.pm_.c:894
-msgid "Show all"
-msgstr "Montru tuton"
-
-#: ../../Xconfigurator.pm_.c:939
-msgid "Resolutions"
-msgstr "Distingivoj"
-
-#: ../../Xconfigurator.pm_.c:1509
-#, c-format
-msgid "Keyboard layout: %s\n"
-msgstr "Klavara aranųo: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1510
-#, c-format
-msgid "Mouse type: %s\n"
-msgstr "Speco de muso: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1511
-#, c-format
-msgid "Mouse device: %s\n"
-msgstr "Musaparato: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1512
-#, c-format
-msgid "Monitor: %s\n"
-msgstr "Ekrano: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1513
-#, c-format
-msgid "Monitor HorizSync: %s\n"
-msgstr "Ekrana horizontala sinkronrapido (horizontal sync rate): %s\n"
-
-#: ../../Xconfigurator.pm_.c:1514
-#, c-format
-msgid "Monitor VertRefresh: %s\n"
-msgstr "Ekrana vertikala refrežigrapido (vertical refresh rate): %s\n"
-
-#: ../../Xconfigurator.pm_.c:1515
-#, c-format
-msgid "Graphic card: %s\n"
-msgstr "Grafika karto: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1516
-#, fuzzy, c-format
-msgid "Graphic card identification: %s\n"
-msgstr "Grafika karto: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1517
-#, c-format
-msgid "Graphic memory: %s kB\n"
-msgstr "Graifka memoro: %s KB\n"
-
-#: ../../Xconfigurator.pm_.c:1519
-#, c-format
-msgid "Color depth: %s\n"
-msgstr "Kolorprofuneco: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1520
-#, c-format
-msgid "Resolution: %s\n"
-msgstr "Distingivo: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1522
-#, c-format
-msgid "XFree86 server: %s\n"
-msgstr "XFree86 servilo: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1523
-#, c-format
-msgid "XFree86 driver: %s\n"
-msgstr "XFree86 pelilo: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1541
-msgid "Preparing X-Window configuration"
-msgstr "Preparas X-Fenestran konfigura¼on"
-
-#: ../../Xconfigurator.pm_.c:1561
-msgid "What do you want to do?"
-msgstr "Kion vi deziras fari?"
-
-#: ../../Xconfigurator.pm_.c:1566
-msgid "Change Monitor"
-msgstr "Žanųu Ekranon"
-
-#: ../../Xconfigurator.pm_.c:1567
-msgid "Change Graphic card"
-msgstr "Žanųu Grafika karto"
-
-#: ../../Xconfigurator.pm_.c:1570
-msgid "Change Server options"
-msgstr "Žanųu Servilajn opciojn"
-
-#: ../../Xconfigurator.pm_.c:1571
-msgid "Change Resolution"
-msgstr "Žanųu distingivon"
-
-#: ../../Xconfigurator.pm_.c:1572
-msgid "Show information"
-msgstr "Montru informon"
-
-#: ../../Xconfigurator.pm_.c:1573
-msgid "Test again"
-msgstr "Provu denove"
-
-#: ../../Xconfigurator.pm_.c:1574 ../../printerdrake.pm_.c:2473
-#: ../../standalone/logdrake_.c:225
-msgid "Quit"
-msgstr "Ęesu"
-
-#: ../../Xconfigurator.pm_.c:1582
-#, c-format
-msgid ""
-"Keep the changes?\n"
-"Current configuration is:\n"
-"\n"
-"%s"
-msgstr ""
-"Ęu vi deziras teni la žanųojn?\n"
-"Nuna konfiguro estas:\n"
-"\n"
-"%s"
-
-#: ../../Xconfigurator.pm_.c:1603
-msgid "X at startup"
-msgstr "X Fenestro ęe komenco"
-
-#: ../../Xconfigurator.pm_.c:1604
-msgid ""
-"I can set up your computer to automatically start X upon booting.\n"
-"Would you like X to start when you reboot?"
-msgstr ""
-"Mi povas konfiguri vian komputilon tiel ke ųi ażtomate lanęos X kiam ųi\n"
-"ekfunkcias. Ęu vi deziras ke X ażtomate lanęos?"
-
-#: ../../Xconfigurator.pm_.c:1610
-#, c-format
-msgid "Please relog into %s to activate the changes"
-msgstr "Bonvolu resaluti en %s-n por aktivigi la žanųojn."
-
-#: ../../Xconfigurator.pm_.c:1625
-msgid "Please log out and then use Ctrl-Alt-BackSpace"
-msgstr ""
-"Bonvole adiażu kaj sekve uzu Kontrol-Alt-Retropažo (Ctrl-Alt-Backspace)."
-
-#: ../../Xconfigurator_consts.pm_.c:6
-msgid "256 colors (8 bits)"
-msgstr "256 koloroj (8 bitoj)"
-
-#: ../../Xconfigurator_consts.pm_.c:7
-msgid "32 thousand colors (15 bits)"
-msgstr "32 mil koloroj (15 bitoj)"
-
-#: ../../Xconfigurator_consts.pm_.c:8
-msgid "65 thousand colors (16 bits)"
-msgstr "65 mil koloroj (16 bitoj)"
-
-#: ../../Xconfigurator_consts.pm_.c:9
-msgid "16 million colors (24 bits)"
-msgstr "16 milionoj koloroj (24 bitoj)"
-
-#: ../../Xconfigurator_consts.pm_.c:10
-msgid "4 billion colors (32 bits)"
-msgstr "4 miliardoj koloroj (32 bitoj)"
-
-#: ../../Xconfigurator_consts.pm_.c:113
-msgid "256 kB"
-msgstr "256 KB"
-
-#: ../../Xconfigurator_consts.pm_.c:114
-msgid "512 kB"
-msgstr "512 KB"
-
-#: ../../Xconfigurator_consts.pm_.c:115
-msgid "1 MB"
-msgstr "1 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:116
-msgid "2 MB"
-msgstr "2 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:117
-msgid "4 MB"
-msgstr "4 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:118
-msgid "8 MB"
-msgstr "8 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:119
-msgid "16 MB"
-msgstr "16 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:120
-msgid "32 MB"
-msgstr "32 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:121
-msgid "64 MB or more"
-msgstr "64 MB aż pli"
-
-#: ../../Xconfigurator_consts.pm_.c:129
-msgid "Standard VGA, 640x480 at 60 Hz"
-msgstr "Normala VGA, 640x480 ęe 60 hercoj (Hz)"
-
-#: ../../Xconfigurator_consts.pm_.c:130
-msgid "Super VGA, 800x600 at 56 Hz"
-msgstr "Supera VGA, 800x600 ęe 56 hercoj (Hz)"
-
-#: ../../Xconfigurator_consts.pm_.c:131
-msgid "8514 Compatible, 1024x768 at 87 Hz interlaced (no 800x600)"
-msgstr ""
-"8514 kongrua karto, 1024x768 ęe 87 hercoj (Hz) interplektita (neniu 800x600)"
-
-#: ../../Xconfigurator_consts.pm_.c:132
-msgid "Super VGA, 1024x768 at 87 Hz interlaced, 800x600 at 56 Hz"
-msgstr ""
-"Supera VGA, 1024x768 ęe 87 hercoj (Hz) interplektita, 800x600 ęe 56 hercoj"
-
-#: ../../Xconfigurator_consts.pm_.c:133
-msgid "Extended Super VGA, 800x600 at 60 Hz, 640x480 at 72 Hz"
-msgstr "Etendita Supera VGA, 800x600 ęe 60 hercoj (Hz), 640x480 ęe 72 hercoj"
-
-#: ../../Xconfigurator_consts.pm_.c:134
-msgid "Non-Interlaced SVGA, 1024x768 at 60 Hz, 800x600 at 72 Hz"
-msgstr ""
-"Neinterplektita Supera VGA, 1024x768 ęe 60 hercoj (Hz), 640x480 ęe 72 hercoj"
-
-#: ../../Xconfigurator_consts.pm_.c:135
-msgid "High Frequency SVGA, 1024x768 at 70 Hz"
-msgstr "Altfrekvenca Supera VGA, 1024x768 ęe 70 hercoj (Hz)"
-
-#: ../../Xconfigurator_consts.pm_.c:136
-msgid "Multi-frequency that can do 1280x1024 at 60 Hz"
-msgstr "Plurfrekvenca kiu povas fari 1024x768 ęe 60 hercoj (Hz)"
-
-#: ../../Xconfigurator_consts.pm_.c:137
-msgid "Multi-frequency that can do 1280x1024 at 74 Hz"
-msgstr "Plurfrekvenca kiu povas fari 1280x1024 ęe 74 hercoj (Hz)"
-
-#: ../../Xconfigurator_consts.pm_.c:138
-msgid "Multi-frequency that can do 1280x1024 at 76 Hz"
-msgstr "Plurfrekvenca kiu povas fari 1280x1024 ęe 76 hercoj (Hz)"
-
-#: ../../Xconfigurator_consts.pm_.c:139
-msgid "Monitor that can do 1600x1200 at 70 Hz"
-msgstr "Ekrano kiu povas fari 1600x1200 ęe 70 hercoj (Hz)"
-
-#: ../../Xconfigurator_consts.pm_.c:140
-msgid "Monitor that can do 1600x1200 at 76 Hz"
-msgstr "Ekrano kiu povas fari 1600x1200 ęe 76 hercoj (Hz)"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141
-msgid "First sector of boot partition"
-msgstr "Unua sektoro de starta subdisko"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141 ../../any.pm_.c:218
-msgid "First sector of drive (MBR)"
-msgstr "Unu sektoro de drajvo (ĘefStartRikordo)"
-
-#: ../../any.pm_.c:120
-msgid "SILO Installation"
-msgstr "SILO Instalado"
-
-#: ../../any.pm_.c:121 ../../any.pm_.c:134
-msgid "Where do you want to install the bootloader?"
-msgstr "Kie vi deziras instali la startžargilon?"
-
-#: ../../any.pm_.c:133
-msgid "LILO/grub Installation"
-msgstr "LILO/grub Instalado"
-
-#: ../../any.pm_.c:145 ../../any.pm_.c:159
-msgid "SILO"
-msgstr ""
-
-#: ../../any.pm_.c:147
-msgid "LILO with text menu"
-msgstr ""
-
-#: ../../any.pm_.c:148 ../../any.pm_.c:159
-msgid "LILO with graphical menu"
-msgstr ""
-
-#: ../../any.pm_.c:151
-msgid "Grub"
-msgstr ""
-
-#: ../../any.pm_.c:155
-msgid "Boot from DOS/Windows (loadlin)"
-msgstr ""
-
-#: ../../any.pm_.c:157 ../../any.pm_.c:159
-msgid "Yaboot"
-msgstr "Yaboot"
-
-#: ../../any.pm_.c:166 ../../any.pm_.c:198
-msgid "Bootloader main options"
-msgstr "Startžargilo ęefaj opcioj"
-
-#: ../../any.pm_.c:167 ../../any.pm_.c:199
-msgid "Bootloader to use"
-msgstr "Startžargilo por uzi"
-
-#: ../../any.pm_.c:169
-msgid "Bootloader installation"
-msgstr "Startžargila instalado"
-
-#: ../../any.pm_.c:171 ../../any.pm_.c:201
-msgid "Boot device"
-msgstr "Starta aparato"
-
-#: ../../any.pm_.c:172
-msgid "LBA (doesn't work on old BIOSes)"
-msgstr "LBA (ne funkcias kun malnovaj BIOSoj)"
-
-#: ../../any.pm_.c:173
-msgid "Compact"
-msgstr "Kompakta"
-
-#: ../../any.pm_.c:173
-msgid "compact"
-msgstr "kompakta"
-
-#: ../../any.pm_.c:174 ../../any.pm_.c:298
-msgid "Video mode"
-msgstr "Grafika reųimo"
-
-#: ../../any.pm_.c:176
-msgid "Delay before booting default image"
-msgstr "Prokrastoperiodo antaż starti defażltan sistemon"
-
-#: ../../any.pm_.c:178 ../../any.pm_.c:796
-#: ../../install_steps_interactive.pm_.c:1115 ../../network/modem.pm_.c:48
-#: ../../printerdrake.pm_.c:708 ../../printerdrake.pm_.c:806
-#: ../../standalone/draknet_.c:625
-msgid "Password"
-msgstr "Pasvorto"
-
-#: ../../any.pm_.c:179 ../../any.pm_.c:797
-#: ../../install_steps_interactive.pm_.c:1116
-msgid "Password (again)"
-msgstr "Pasvorto (denove)"
-
-#: ../../any.pm_.c:180
-msgid "Restrict command line options"
-msgstr "Limigu komandliniajn opciojn"
-
-#: ../../any.pm_.c:180
-msgid "restrict"
-msgstr "limigu"
-
-#: ../../any.pm_.c:182
-msgid "Clean /tmp at each boot"
-msgstr "Purigu /tmp dum ęiuj startadoj"
-
-#: ../../any.pm_.c:183
-#, c-format
-msgid "Precise RAM size if needed (found %d MB)"
-msgstr "Preciza kvanto de memoro se bezonata (trovis %d MB)"
-
-#: ../../any.pm_.c:185
-msgid "Enable multi profiles"
-msgstr "Ebligu multoblajn profilojn"
-
-#: ../../any.pm_.c:189
-msgid "Give the ram size in MB"
-msgstr "Donu kvanton de memoro en MB"
-
-#: ../../any.pm_.c:191
-msgid ""
-"Option ``Restrict command line options'' is of no use without a password"
-msgstr "Opcio ``Limigu komandliniajn opciojn'' ne estas utila sen pasvorto"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../diskdrake/interactive.pm_.c:1135
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "Please try again"
-msgstr "Bonvole provu denove"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "The passwords do not match"
-msgstr "La pasvortoj ne egalas"
-
-#: ../../any.pm_.c:200
-msgid "Init Message"
-msgstr ""
-
-#: ../../any.pm_.c:202
-msgid "Open Firmware Delay"
-msgstr ""
-
-#: ../../any.pm_.c:203
-msgid "Kernel Boot Timeout"
-msgstr ""
-
-#: ../../any.pm_.c:204
-msgid "Enable CD Boot?"
-msgstr ""
-
-#: ../../any.pm_.c:205
-msgid "Enable OF Boot?"
-msgstr ""
-
-#: ../../any.pm_.c:206
-msgid "Default OS?"
-msgstr "Defażlta Mastruma Sistemo?"
-
-#: ../../any.pm_.c:240
-msgid ""
-"You decided to install the bootloader on a partition.\n"
-"This implies you already have a bootloader on the hard drive you boot (eg: "
-"System Commander).\n"
-"\n"
-"On which drive are you booting?"
-msgstr ""
-
-#: ../../any.pm_.c:255
-msgid ""
-"Here are the different entries.\n"
-"You can add some more or change the existing ones."
-msgstr ""
-"Jen la diversaj enskriboj.\n"
-"Vi povas aldoni pli aż žanųi la ekzistantajn."
-
-#: ../../any.pm_.c:265 ../../standalone/drakbackup_.c:752
-#: ../../standalone/drakbackup_.c:861 ../../standalone/drakfont_.c:789
-#: ../../standalone/drakfont_.c:826
-msgid "Add"
-msgstr "Aldonu"
-
-#: ../../any.pm_.c:265 ../../any.pm_.c:784 ../../diskdrake/hd_gtk.pm_.c:153
-#: ../../diskdrake/removable.pm_.c:27 ../../diskdrake/smbnfs_gtk.pm_.c:86
-#: ../../interactive_http.pm_.c:153
-msgid "Done"
-msgstr "Finata"
-
-#: ../../any.pm_.c:265
-msgid "Modify"
-msgstr "Žanųu"
-
-#: ../../any.pm_.c:273
-msgid "Which type of entry do you want to add?"
-msgstr "Kiun specon de enskribo vi deziras aldoni"
-
-#: ../../any.pm_.c:274 ../../standalone/drakbackup_.c:895
-msgid "Linux"
-msgstr "Linukso"
-
-#: ../../any.pm_.c:274
-msgid "Other OS (SunOS...)"
-msgstr "Alia Mastruma Sistemo (SunOS...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (MacOS...)"
-msgstr "Alia Mastruma Sistemo (MacOS...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (windows...)"
-msgstr "Alia Mastruma Sistemo (Vindozo...)"
-
-#: ../../any.pm_.c:294
-msgid "Image"
-msgstr "Kerna bildo"
-
-#: ../../any.pm_.c:295 ../../any.pm_.c:306
-msgid "Root"
-msgstr "Radiko"
-
-#: ../../any.pm_.c:296 ../../any.pm_.c:325
-msgid "Append"
-msgstr "Alfiksu"
-
-#: ../../any.pm_.c:300
-msgid "Initrd"
-msgstr "Initrd"
-
-#: ../../any.pm_.c:301
-msgid "Read-write"
-msgstr "Lega-skriba"
-
-#: ../../any.pm_.c:308
-msgid "Table"
-msgstr "Tabelo"
-
-#: ../../any.pm_.c:309
-msgid "Unsafe"
-msgstr "Danųera"
-
-#: ../../any.pm_.c:316 ../../any.pm_.c:321 ../../any.pm_.c:324
-msgid "Label"
-msgstr "Etikedo"
-
-#: ../../any.pm_.c:318 ../../any.pm_.c:329
-msgid "Default"
-msgstr "Defażlta"
-
-#: ../../any.pm_.c:326
-msgid "Initrd-size"
-msgstr "Initrd-grandeco"
-
-#: ../../any.pm_.c:328
-msgid "NoVideo"
-msgstr ""
-
-#: ../../any.pm_.c:336
-msgid "Remove entry"
-msgstr "Forigu enskribon"
-
-#: ../../any.pm_.c:339
-msgid "Empty label not allowed"
-msgstr "Malplena etikedo ne estas permesata"
-
-#: ../../any.pm_.c:340
-msgid "You must specify a kernel image"
-msgstr ""
-
-#: ../../any.pm_.c:340
-#, fuzzy
-msgid "You must specify a root partition"
-msgstr "Vi devas havi interžanųan subdiskon"
-
-#: ../../any.pm_.c:341
-msgid "This label is already used"
-msgstr "Ęi tiu etikedo estas jam uzata"
-
-#: ../../any.pm_.c:656
-#, c-format
-msgid "Found %s %s interfaces"
-msgstr "Trovis %s %s interfacojn"
-
-#: ../../any.pm_.c:657
-msgid "Do you have another one?"
-msgstr "Ęu vi havas alian?"
-
-#: ../../any.pm_.c:658
-#, c-format
-msgid "Do you have any %s interfaces?"
-msgstr "Ęu vi havas iun %s interfacon?"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:832 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "No"
-msgstr "Ne"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:831 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "Yes"
-msgstr "Jes"
-
-#: ../../any.pm_.c:661
-msgid "See hardware info"
-msgstr "Vidu hardvaran informon"
-
-#. -PO: the first %s is the card type (scsi, network, sound,...)
-#. -PO: the second is the vendor+model name
-#: ../../any.pm_.c:695
-#, c-format
-msgid "Installing driver for %s card %s"
-msgstr "Instalas pelilon por %s karto %s"
-
-#: ../../any.pm_.c:696
-#, c-format
-msgid "(module %s)"
-msgstr "(modulo %s)"
-
-#. -PO: the %s is the driver type (scsi, network, sound,...)
-#: ../../any.pm_.c:707
-#, c-format
-msgid "Which %s driver should I try?"
-msgstr "Kiun %s pelilon devus mi provi?"
-
-#: ../../any.pm_.c:715
-#, c-format
-msgid ""
-"In some cases, the %s driver needs to have extra information to work\n"
-"properly, although it normally works fine without. Would you like to "
-"specify\n"
-"extra options for it or allow the driver to probe your machine for the\n"
-"information it needs? Occasionally, probing will hang a computer, but it "
-"should\n"
-"not cause any damage."
-msgstr ""
-"Iuokaze, la %s pelilo bezonas havi aldonan informon por ųuste funkcii,\n"
-"kvankam ųi normale funkcias bone sen la informo. Ęu vi deziras specifi\n"
-"aldonajn opciojn por ųi aż permesi al la pelilo esplori vian komputilon\n"
-"por la informo ųi bezonas? Kelkfoje, esplori svenas komputilon, sed\n"
-"ųi ne devus każzi difekton."
-
-#: ../../any.pm_.c:720
-msgid "Autoprobe"
-msgstr "Ażtomate esploru"
-
-#: ../../any.pm_.c:720
-msgid "Specify options"
-msgstr "Specifu opciojn"
-
-#: ../../any.pm_.c:725
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Note that any address should be entered with the prefix 0x like '0x123'"
-msgstr ""
-
-#: ../../any.pm_.c:731
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Options are in format ``name=value name2=value2 ...''.\n"
-"For instance, ``io=0x300 irq=7''"
-msgstr ""
-"Nun vi povas provizi ųiajn opciojn al modulo %s.\n"
-"Opcioj estas en la formo ``nomo=valoro nomo2=valoro2 ...''.\n"
-"Ekzemple, ``io=0x300 irq=7''"
-
-#: ../../any.pm_.c:734
-msgid "Module options:"
-msgstr "Modulaj opcioj:"
-
-#: ../../any.pm_.c:745
-#, c-format
-msgid ""
-"Loading module %s failed.\n"
-"Do you want to try again with other parameters?"
-msgstr ""
-"Žargado de modulo %s malsukcesis.\n"
-"Ęu vi deziras trovi denove kun aliaj parametroj?"
-
-#: ../../any.pm_.c:761
-msgid "access to X programs"
-msgstr ""
-
-#: ../../any.pm_.c:762
-msgid "access to rpm tools"
-msgstr ""
-
-#: ../../any.pm_.c:763
-msgid "allow \"su\""
-msgstr ""
-
-#: ../../any.pm_.c:764
-msgid "access to administrative files"
-msgstr ""
-
-#: ../../any.pm_.c:769
-#, c-format
-msgid "(already added %s)"
-msgstr "(jam aldonis %s)"
-
-#: ../../any.pm_.c:774
-msgid "This password is too simple"
-msgstr "Ęi tiu pasvorto estas tro simpla"
-
-#: ../../any.pm_.c:775
-msgid "Please give a user name"
-msgstr "Bonvole donu salutnomon"
-
-#: ../../any.pm_.c:776
-msgid ""
-"The user name must contain only lower cased letters, numbers, `-' and `_'"
-msgstr "Salutnomo devas enhavi nur minusklojn, ciferojn, `-' kaj `_'"
-
-#: ../../any.pm_.c:777
-msgid "This user name is already added"
-msgstr "Ęi tiu salutnomo estas jam aldonita"
-
-#: ../../any.pm_.c:781
-msgid "Add user"
-msgstr "Aldonu uzanto"
-
-#: ../../any.pm_.c:782
-#, c-format
-msgid ""
-"Enter a user\n"
-"%s"
-msgstr ""
-"Enigu uzanton\n"
-"%s"
-
-#: ../../any.pm_.c:783
-msgid "Accept user"
-msgstr "Akceptu uzanto"
-
-#: ../../any.pm_.c:794
-msgid "Real name"
-msgstr "Vera nomo"
-
-#: ../../any.pm_.c:795 ../../printerdrake.pm_.c:707
-#: ../../printerdrake.pm_.c:805
-msgid "User name"
-msgstr "Salutnomo"
-
-#: ../../any.pm_.c:798
-msgid "Shell"
-msgstr "Želo"
-
-#: ../../any.pm_.c:800
-msgid "Icon"
-msgstr "Piktogramo"
-
-#: ../../any.pm_.c:828
-msgid "Autologin"
-msgstr "Ażtomata-enregistrado"
-
-#: ../../any.pm_.c:829
-#, fuzzy
-msgid ""
-"I can set up your computer to automatically log on one user.\n"
-"Do you want to use this feature?"
-msgstr ""
-"Mi povas konfiguri vian komputilon por ażtomate enregistri unu uzulon kiam\n"
-"ųi startas. Se vi ne deziras uzi ęi tion, alklaku la `Nuligu' butonon."
-
-#: ../../any.pm_.c:833
-msgid "Choose the default user:"
-msgstr "Elektu la defażltan uzulon:"
-
-#: ../../any.pm_.c:834
-msgid "Choose the window manager to run:"
-msgstr "Elektu la fenestro-administrilon por lanęi:"
-
-#: ../../any.pm_.c:849
-#, fuzzy
-msgid "Please choose a language to use."
-msgstr "Bonvole, elektu lingvon por uzi."
-
-#: ../../any.pm_.c:851
-msgid "You can choose other languages that will be available after install"
-msgstr ""
-"Vi povas elektu aliajn lingvojn kiujn estos uzeblaj malantaż la instalado"
-
-#: ../../any.pm_.c:863 ../../install_steps_interactive.pm_.c:719
-#: ../../standalone/drakxtv_.c:54
-msgid "All"
-msgstr "Ęiuj"
-
-#: ../../any.pm_.c:955
-#, fuzzy
-msgid "Allow all users"
-msgstr "Aldonu uzulon"
-
-#: ../../any.pm_.c:955 ../../install_steps_interactive.pm_.c:521
-msgid "Custom"
-msgstr "Akomodata"
-
-#: ../../any.pm_.c:955
-#, fuzzy
-msgid "No sharing"
-msgstr "CUPS startas"
-
-#: ../../any.pm_.c:965 ../../network/smbnfs.pm_.c:45
-#, fuzzy, c-format
-msgid "The package %s needs to be installed. Do you want to install it?"
-msgstr ""
-"Ęi tiu paka¼o devus esti promociata.\n"
-"Ęu vi certas ke vi deziras malelekti ųin?"
-
-#: ../../any.pm_.c:968
-msgid "You can export using NFS or Samba. Which one do you want"
-msgstr ""
-
-#: ../../any.pm_.c:976 ../../network/smbnfs.pm_.c:49
-#, c-format
-msgid "Mandatory package %s is missing"
-msgstr ""
-
-#: ../../any.pm_.c:982
-msgid ""
-"Do you want to allow users to export some directories in their home?\n"
-"Allowing this will permit users to simply click on \"Share\" in konqueror "
-"and nautilus.\n"
-"\n"
-"\"Custom\" permit a per-user granularity.\n"
-msgstr ""
-
-#: ../../any.pm_.c:996 ../../bootlook.pm_.c:161
-#: ../../diskdrake/smbnfs_gtk.pm_.c:85 ../../install_steps_gtk.pm_.c:464
-#: ../../install_steps_gtk.pm_.c:522 ../../install_steps_interactive.pm_.c:594
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_stdio.pm_.c:141
-#: ../../my_gtk.pm_.c:687 ../../my_gtk.pm_.c:690 ../../my_gtk.pm_.c:1019
-#: ../../network/netconnect.pm_.c:47 ../../printerdrake.pm_.c:1586
-#: ../../standalone/drakautoinst_.c:204 ../../standalone/drakbackup_.c:2264
-#: ../../standalone/drakbackup_.c:2289 ../../standalone/drakbackup_.c:2310
-#: ../../standalone/drakbackup_.c:2331 ../../standalone/drakbackup_.c:2349
-#: ../../standalone/drakbackup_.c:2397 ../../standalone/drakbackup_.c:2417
-#: ../../standalone/drakbackup_.c:2436 ../../standalone/drakfont_.c:767
-#: ../../standalone/drakgw_.c:721 ../../standalone/draknet_.c:116
-#: ../../standalone/draknet_.c:148 ../../standalone/draknet_.c:290
-#: ../../standalone/draknet_.c:538 ../../standalone/draknet_.c:680
-#: ../../standalone/logdrake_.c:225 ../../standalone/logdrake_.c:512
-#: ../../standalone/tinyfirewall_.c:65
-msgid "Cancel"
-msgstr "Nuligu"
-
-#: ../../any.pm_.c:996
-msgid "Launch userdrake"
-msgstr ""
-
-#: ../../any.pm_.c:998
-msgid ""
-"The per-user sharing uses the group \"fileshare\". \n"
-"You can use userdrake to add a user in this group."
-msgstr ""
-
-#: ../../any.pm_.c:1035
-msgid "Welcome To Crackers"
-msgstr "Bonvenon Al Rompistoj"
-
-#: ../../any.pm_.c:1036
-msgid "Poor"
-msgstr "Malbona"
-
-#: ../../any.pm_.c:1037 ../../mouse.pm_.c:31
-msgid "Standard"
-msgstr "Lażnorma"
-
-#: ../../any.pm_.c:1038
-msgid "High"
-msgstr "Alta"
-
-#: ../../any.pm_.c:1039
-#, fuzzy
-msgid "Higher"
-msgstr "Alta"
-
-#: ../../any.pm_.c:1040
-msgid "Paranoid"
-msgstr "Paranoja"
-
-#: ../../any.pm_.c:1043
-msgid ""
-"This level is to be used with care. It makes your system more easy to use,\n"
-"but very sensitive: it must not be used for a machine connected to others\n"
-"or to the Internet. There is no password access."
-msgstr ""
-"vi devus uzi ęi tiun nivelon zorge. Ųi faras vian komputilon pli facila\n"
-"por uzi, sed delikatega: vi devus neniam uzi ųi surrete.\n"
-"Ųi ne havas pasvortojn."
-
-#: ../../any.pm_.c:1046
-msgid ""
-"Password are now enabled, but use as a networked computer is still not "
-"recommended."
-msgstr ""
-"Pasvortoj nun estas ebligataj, sed uzado kiel reta komputilo estas ankoraż\n"
-"ne rekomendita."
-
-#: ../../any.pm_.c:1047
-#, fuzzy
-msgid ""
-"This is the standard security recommended for a computer that will be used "
-"to connect to the Internet as a client."
-msgstr ""
-"Ęi tiu estas la normala sekureco rekomendata por komputilo kiu estos uzata\n"
-"por konekti al la Interreto kiel kliento. Nun estas sekurecaj kontroloj."
-
-#: ../../any.pm_.c:1048
-msgid ""
-"There are already some restrictions, and more automatic checks are run every "
-"night."
-msgstr ""
-
-#: ../../any.pm_.c:1049
-#, fuzzy
-msgid ""
-"With this security level, the use of this system as a server becomes "
-"possible.\n"
-"The security is now high enough to use the system as a server which accept\n"
-"connections from many clients. Note: if your machine is only a client on the "
-"Internet, you should better choose a lower level."
-msgstr ""
-"Kun ęi tiu sekurnivelo, uzado de ęi tiu komputilo kiel servilo ebliųas.\n"
-"La sekureco nun estas sufięe alta por uzi la sistemon kiel servilo kiu\n"
-"akceptas konektojn de multaj klientoj."
-
-#: ../../any.pm_.c:1052
-#, fuzzy
-msgid ""
-"Based on the previous level, but the system is entirely closed.\n"
-"Security features are at their maximum."
-msgstr ""
-"Ni uzas aspektojn de la kvara nivelo, sed nun la komputilo estas tute\n"
-"malfermita. Sekurecaj aspektoj estas ęe iliaj maksimumoj."
-
-#: ../../any.pm_.c:1058
-msgid "Choose security level"
-msgstr "Elektu sekurnivelon?"
-
-#: ../../any.pm_.c:1061
-#, fuzzy
-msgid "Security level"
-msgstr "Elektas sekurnivelon"
-
-#: ../../any.pm_.c:1063
-#, fuzzy
-msgid "Use libsafe for servers"
-msgstr "Elektu opciojn por servilo"
-
-#: ../../any.pm_.c:1064
-msgid ""
-"A library which defends against buffer overflow and format string attacks."
-msgstr ""
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#: ../../bootloader.pm_.c:355
-#, c-format
-msgid ""
-"Welcome to %s the operating system chooser!\n"
-"\n"
-"Choose an operating system in the list above or\n"
-"wait %d seconds for default boot.\n"
-"\n"
-msgstr ""
-"Bonvenon al %s, la mastruma sistema elektilo!\n"
-"\n"
-"Elektu mastruman sistemon de la supra listo aż\n"
-"atendu dum %d sekundoj por defażlta starto.\n"
-"\n"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:928
-msgid "Welcome to GRUB the operating system chooser!"
-msgstr "Bonvenon al GRUB la elektilo por mastrumaj sistemoj!"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:931
-#, c-format
-msgid "Use the %c and %c keys for selecting which entry is highlighted."
-msgstr "Uzu la %c kaj %c klavoj por elekti kiun enskribon estas emfazata."
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:934
-msgid "Press enter to boot the selected OS, 'e' to edit the"
-msgstr ""
-"Premu la enenklavon por starti la elektatan mastruman sistemon, 'e' por\n"
-"redakti la"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:937
-msgid "commands before booting, or 'c' for a command-line."
-msgstr "ordonoj antaux startado, aux 'c' por uzi komandan linion."
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:940
-#, c-format
-msgid "The highlighted entry will be booted automatically in %d seconds."
-msgstr "La emfazata enskribo startos auxtomate post %d sekundoj."
-
-#: ../../bootloader.pm_.c:944
-msgid "not enough room in /boot"
-msgstr "mankas sufięe da spaco en /boot"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#. -PO: so you may need to put them in English or in a different language if MS-windows doesn't exist in your language
-#: ../../bootloader.pm_.c:1044
-msgid "Desktop"
-msgstr "Desktop"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#: ../../bootloader.pm_.c:1046
-msgid "Start Menu"
-msgstr "Start Menu"
-
-#: ../../bootloader.pm_.c:1065
-#, fuzzy, c-format
-msgid "You can't install the bootloader on a %s partition\n"
-msgstr "Kie vi deziras instali la startžargilon?"
-
-#: ../../bootlook.pm_.c:46
-msgid "no help implemented yet.\n"
-msgstr ""
-
-#: ../../bootlook.pm_.c:62
-#, fuzzy
-msgid "Boot Style Configuration"
-msgstr "Post-instala konfigurado"
-
-#: ../../bootlook.pm_.c:79 ../../standalone/logdrake_.c:101
-msgid "/_File"
-msgstr "/_Dosiero"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "/File/_Quit"
-msgstr "/Dosiero/_Eliru"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "<control>Q"
-msgstr "<control>E"
-
-#: ../../bootlook.pm_.c:91
-msgid "NewStyle Categorizing Monitor"
-msgstr ""
-
-#: ../../bootlook.pm_.c:92
-msgid "NewStyle Monitor"
-msgstr "NovStila Ekrano"
-
-#: ../../bootlook.pm_.c:93
-msgid "Traditional Monitor"
-msgstr "Tradicia Ekrano"
-
-#: ../../bootlook.pm_.c:94
-msgid "Traditional Gtk+ Monitor"
-msgstr "Tradicia Gtk+ Ekrano"
-
-#: ../../bootlook.pm_.c:95
-msgid "Launch Aurora at boot time"
-msgstr ""
-
-#: ../../bootlook.pm_.c:98
-msgid "Lilo/grub mode"
-msgstr "Lilo/grub modalo"
-
-#: ../../bootlook.pm_.c:98
-msgid "Yaboot mode"
-msgstr "Yaboot modalo"
-
-#: ../../bootlook.pm_.c:104
-#, fuzzy, c-format
-msgid ""
-"You are currently using %s as Boot Manager.\n"
-"Click on Configure to launch the setup wizard."
-msgstr "Disdividado de Interreta Konekto"
-
-#: ../../bootlook.pm_.c:106 ../../standalone/drakbackup_.c:1467
-#: ../../standalone/drakbackup_.c:1478 ../../standalone/drakgw_.c:715
-#: ../../standalone/tinyfirewall_.c:59
-msgid "Configure"
-msgstr "Konfiguru"
-
-#: ../../bootlook.pm_.c:141
-msgid "System mode"
-msgstr "Sistema modalo"
-
-#: ../../bootlook.pm_.c:143
-msgid "Launch the X-Window system at start"
-msgstr ""
-
-#: ../../bootlook.pm_.c:148
-msgid "No, I don't want autologin"
-msgstr ""
-
-#: ../../bootlook.pm_.c:150
-msgid "Yes, I want autologin with this (user, desktop)"
-msgstr ""
-
-#: ../../bootlook.pm_.c:160 ../../network/netconnect.pm_.c:102
-#: ../../standalone/drakbackup_.c:2441 ../../standalone/drakbackup_.c:3345
-#: ../../standalone/drakfont_.c:532 ../../standalone/drakfont_.c:655
-#: ../../standalone/drakfont_.c:719 ../../standalone/drakfont_.c:765
-#: ../../standalone/draknet_.c:109 ../../standalone/draknet_.c:141
-#: ../../standalone/draknet_.c:297 ../../standalone/draknet_.c:436
-#: ../../standalone/draknet_.c:522 ../../standalone/draknet_.c:565
-#: ../../standalone/draknet_.c:666 ../../standalone/logdrake_.c:505
-msgid "OK"
-msgstr "Jes"
-
-#: ../../bootlook.pm_.c:229
-#, c-format
-msgid "can not open /etc/inittab for reading: %s"
-msgstr ""
-
-#: ../../common.pm_.c:94
-msgid "GB"
-msgstr "GB"
-
-#: ../../common.pm_.c:94
-msgid "KB"
-msgstr "KB"
-
-#: ../../common.pm_.c:94
-msgid "MB"
-msgstr "MB"
-
-#: ../../common.pm_.c:102
-msgid "TB"
-msgstr "TB"
-
-#: ../../common.pm_.c:110
-#, c-format
-msgid "%d minutes"
-msgstr "%d minutoj"
-
-#: ../../common.pm_.c:112
-msgid "1 minute"
-msgstr "1 minuto"
-
-#: ../../common.pm_.c:114
-#, c-format
-msgid "%d seconds"
-msgstr "%d sekundoj"
-
-#: ../../common.pm_.c:159
-#, fuzzy
-msgid "Can't make screenshots before partitioning"
-msgstr "Mi ne povas aldoni plu da subdiskoj"
-
-#: ../../common.pm_.c:166
-#, fuzzy, c-format
-msgid "Screenshots will be available after install in %s"
-msgstr ""
-"Vi povas elektu aliajn lingvojn kiujn estos uzeblaj malantaż la instalado"
-
-#: ../../crypto.pm_.c:12 ../../crypto.pm_.c:26 ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "France"
-msgstr "Franca"
-
-#: ../../crypto.pm_.c:13
-msgid "Costa Rica"
-msgstr ""
-
-#: ../../crypto.pm_.c:14 ../../crypto.pm_.c:27
-#, fuzzy
-msgid "Belgium"
-msgstr "Belga"
-
-#: ../../crypto.pm_.c:15 ../../crypto.pm_.c:28
-msgid "Czech Republic"
-msgstr ""
-
-#: ../../crypto.pm_.c:16 ../../crypto.pm_.c:29
-#, fuzzy
-msgid "Germany"
-msgstr "Germana"
-
-#: ../../crypto.pm_.c:17 ../../crypto.pm_.c:30
-#, fuzzy
-msgid "Greece"
-msgstr "Greka"
-
-#: ../../crypto.pm_.c:18 ../../crypto.pm_.c:31
-#, fuzzy
-msgid "Norway"
-msgstr "Norvega"
-
-#: ../../crypto.pm_.c:19 ../../crypto.pm_.c:32
-#, fuzzy
-msgid "Sweden"
-msgstr "Sveda"
-
-#: ../../crypto.pm_.c:20 ../../crypto.pm_.c:34
-msgid "Netherlands"
-msgstr ""
-
-#: ../../crypto.pm_.c:21 ../../crypto.pm_.c:35 ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "Italy"
-msgstr "Itala"
-
-#: ../../crypto.pm_.c:22 ../../crypto.pm_.c:36
-#, fuzzy
-msgid "Austria"
-msgstr "seria"
-
-#: ../../crypto.pm_.c:33 ../../crypto.pm_.c:67
-msgid "United States"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:94
-msgid "Please make a backup of your data first"
-msgstr "Bonvolu fari rezervan kopion de via dateno antaże"
-
-#: ../../diskdrake/hd_gtk.pm_.c:94 ../../diskdrake/interactive.pm_.c:891
-#: ../../diskdrake/interactive.pm_.c:900 ../../diskdrake/interactive.pm_.c:954
-msgid "Read carefully!"
-msgstr "Legu zorge"
-
-#: ../../diskdrake/hd_gtk.pm_.c:97
-msgid ""
-"If you plan to use aboot, be carefull to leave a free space (2048 sectors is "
-"enough)\n"
-"at the beginning of the disk"
-msgstr ""
-"Se vi intencas uzi \"aboot\", zorgu lasi liberan spacon (2048 sektoroj "
-"sufięas)\n"
-"ęe la komenco de la disko"
-
-#: ../../diskdrake/hd_gtk.pm_.c:116 ../../diskdrake/interactive.pm_.c:325
-#: ../../diskdrake/interactive.pm_.c:340 ../../diskdrake/smbnfs_gtk.pm_.c:45
-#: ../../install_steps.pm_.c:75 ../../install_steps_interactive.pm_.c:67
-#: ../../install_steps_interactive.pm_.c:356 ../../interactive_http.pm_.c:119
-#: ../../interactive_http.pm_.c:120 ../../standalone/diskdrake_.c:84
-msgid "Error"
-msgstr "Eraro"
-
-#: ../../diskdrake/hd_gtk.pm_.c:151
-msgid "Wizard"
-msgstr "Soręisto"
-
-#: ../../diskdrake/hd_gtk.pm_.c:181 ../../diskdrake/removable_gtk.pm_.c:24
-msgid "Choose action"
-msgstr "Elektu agon"
-
-#: ../../diskdrake/hd_gtk.pm_.c:185
-msgid ""
-"You have one big FAT partition\n"
-"(generally used by MicroSoft Dos/Windows).\n"
-"I suggest you first resize that partition\n"
-"(click on it, then click on \"Resize\")"
-msgstr ""
-"Vi havas unu grandan FAT subdiskon.\n"
-"(ųenerale uzata de MicroSoft DOS/Vindozo).\n"
-"Mi sugestas ke vi unue regrandecigi tiun subdiskon\n"
-"(klaku sur ųin, kaj poste klaku sur \"Regrandecigu\")"
-
-#: ../../diskdrake/hd_gtk.pm_.c:188
-msgid "Please click on a partition"
-msgstr "Bonvolu klaki sur subdiskon"
-
-#: ../../diskdrake/hd_gtk.pm_.c:202 ../../diskdrake/smbnfs_gtk.pm_.c:67
-#: ../../install_steps_gtk.pm_.c:523
-msgid "Details"
-msgstr "Detaloj"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Ext2"
-msgstr "2a Etendata (Ext2)"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "FAT"
-msgstr "Dosierlokigtabelo (FAT)"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "HFS"
-msgstr "HFS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-#, fuzzy
-msgid "Journalised FS"
-msgstr "muntado malsukcesis"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "SunOS"
-msgstr "SunOS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Swap"
-msgstr "Interžanųa"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../diskdrake/interactive.pm_.c:1050
-msgid "Empty"
-msgstr "Malplena"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../install_steps_gtk.pm_.c:379
-#: ../../install_steps_gtk.pm_.c:439 ../../mouse.pm_.c:162
-#: ../../services.pm_.c:157 ../../standalone/drakbackup_.c:944
-msgid "Other"
-msgstr "Alia"
-
-#: ../../diskdrake/hd_gtk.pm_.c:325
-msgid "Filesystem types:"
-msgstr "Specoj de dosiersistemoj:"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:386
-msgid "Create"
-msgstr "Kreu"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:365
-#: ../../diskdrake/interactive.pm_.c:499 ../../diskdrake/removable.pm_.c:26
-#: ../../diskdrake/removable.pm_.c:49 ../../diskdrake/removable_gtk.pm_.c:17
-msgid "Type"
-msgstr "Tipo"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/hd_gtk.pm_.c:344
-#, c-format
-msgid "Use ``%s'' instead"
-msgstr "Uzu ``%s'' anstataże"
-
-#: ../../diskdrake/hd_gtk.pm_.c:344 ../../diskdrake/interactive.pm_.c:374
-msgid "Delete"
-msgstr "Forigu"
-
-#: ../../diskdrake/hd_gtk.pm_.c:348
-msgid "Use ``Unmount'' first"
-msgstr "Uzu ``Malmuntu'' antaże"
-
-#: ../../diskdrake/hd_gtk.pm_.c:349 ../../diskdrake/interactive.pm_.c:491
-#, c-format
-msgid ""
-"After changing type of partition %s, all data on this partition will be lost"
-msgstr ""
-"Post vi žanųas la specon de subdisko %s, ęiuj datenoj en ęi tiu subdisko "
-"estos\n"
-"perdata"
-
-#: ../../diskdrake/interactive.pm_.c:171
-#, fuzzy
-msgid "Choose a partition"
-msgstr "Elektu agon"
-
-#: ../../diskdrake/interactive.pm_.c:171
-#, fuzzy
-msgid "Choose another partition"
-msgstr "Kreu novan subdiskon"
-
-#: ../../diskdrake/interactive.pm_.c:196
-#, fuzzy
-msgid "Exit"
-msgstr "2a Etendata (Ext2)"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to expert mode"
-msgstr "Žanųu al Spertula reųimo"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to normal mode"
-msgstr "Žanųu al Normala reųimo"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Undo"
-msgstr "Malfaru"
-
-#: ../../diskdrake/interactive.pm_.c:237
-msgid "Continue anyway?"
-msgstr "Ęu mi devus dażri malgraże?"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without saving"
-msgstr "Ęu eliru sen konservi"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without writing the partition table?"
-msgstr "Ęu eliru sen skribi la subdisktabelon?"
-
-#: ../../diskdrake/interactive.pm_.c:247
-#, fuzzy
-msgid "Do you want to save /etc/fstab modifications"
-msgstr "Ęu vi deziras provi la konfigura¼on?"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Auto allocate"
-msgstr "Ażtomate disponigu"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Clear all"
-msgstr "Forvižu ęion"
-
-#: ../../diskdrake/interactive.pm_.c:262
-#, fuzzy
-msgid "Hard drive information"
-msgstr "Detektado de fiksdisko(j)"
-
-#: ../../diskdrake/interactive.pm_.c:283
-msgid "All primary partitions are used"
-msgstr "Ęiuj el la subdiskoj estas uzata"
-
-#: ../../diskdrake/interactive.pm_.c:284
-msgid "I can't add any more partition"
-msgstr "Mi ne povas aldoni plu da subdiskoj"
-
-#: ../../diskdrake/interactive.pm_.c:285
-msgid ""
-"To have more partitions, please delete one to be able to create an extended "
-"partition"
-msgstr ""
-"Por havi plu da subdiskoj, bonvole forigu unu por povi krei etendigitan\n"
-"subdiskon"
-
-#: ../../diskdrake/interactive.pm_.c:295
-#, fuzzy
-msgid "Save partition table"
-msgstr "Skribu subdiskotabelon"
-
-#: ../../diskdrake/interactive.pm_.c:296
-#, fuzzy
-msgid "Restore partition table"
-msgstr "Sava subdiskotabelo"
-
-#: ../../diskdrake/interactive.pm_.c:297
-msgid "Rescue partition table"
-msgstr "Sava subdiskotabelo"
-
-#: ../../diskdrake/interactive.pm_.c:299
-#, fuzzy
-msgid "Reload partition table"
-msgstr "Sava subdiskotabelo"
-
-#: ../../diskdrake/interactive.pm_.c:304
-#, fuzzy
-msgid "Removable media automounting"
-msgstr "Ażtomata muntado de demetebla medio"
-
-#: ../../diskdrake/interactive.pm_.c:313 ../../diskdrake/interactive.pm_.c:333
-msgid "Select file"
-msgstr "Elektu dosieron"
-
-#: ../../diskdrake/interactive.pm_.c:320
-msgid ""
-"The backup partition table has not the same size\n"
-"Still continue?"
-msgstr ""
-"La rezerva subdisktabelo ne estas la sama grandeco\n"
-"Ęu dażras tamen?"
-
-#: ../../diskdrake/interactive.pm_.c:334
-msgid "Warning"
-msgstr "Averto"
-
-#: ../../diskdrake/interactive.pm_.c:335
-msgid ""
-"Insert a floppy in drive\n"
-"All data on this floppy will be lost"
-msgstr ""
-"Enžovu disketon en drajvo\n"
-"Ęiuj datenoj sur tiu disketo estos perdata"
-
-#: ../../diskdrake/interactive.pm_.c:346
-msgid "Trying to rescue partition table"
-msgstr "Provas savi subdisktabelon"
-
-#: ../../diskdrake/interactive.pm_.c:352
-#, fuzzy
-msgid "Detailed information"
-msgstr "Montru informon"
-
-#: ../../diskdrake/interactive.pm_.c:364 ../../diskdrake/interactive.pm_.c:534
-#: ../../diskdrake/interactive.pm_.c:554 ../../diskdrake/removable.pm_.c:24
-#: ../../diskdrake/removable_gtk.pm_.c:15 ../../diskdrake/smbnfs_gtk.pm_.c:83
-msgid "Mount point"
-msgstr "Surmetingo"
-
-#: ../../diskdrake/interactive.pm_.c:366 ../../diskdrake/removable.pm_.c:25
-#: ../../diskdrake/removable_gtk.pm_.c:16 ../../diskdrake/smbnfs_gtk.pm_.c:84
-msgid "Options"
-msgstr "Opcioj"
-
-#: ../../diskdrake/interactive.pm_.c:367 ../../diskdrake/interactive.pm_.c:621
-msgid "Resize"
-msgstr "Regrandecigu"
-
-#: ../../diskdrake/interactive.pm_.c:368 ../../diskdrake/interactive.pm_.c:674
-msgid "Move"
-msgstr "Movu"
-
-#: ../../diskdrake/interactive.pm_.c:369
-msgid "Format"
-msgstr "Formatu"
-
-#: ../../diskdrake/interactive.pm_.c:370 ../../diskdrake/smbnfs_gtk.pm_.c:80
-msgid "Mount"
-msgstr "Muntu"
-
-#: ../../diskdrake/interactive.pm_.c:371
-msgid "Add to RAID"
-msgstr "Aldonu al RAID (Redundanca Aro de Malmultekostaj Diskoj)"
-
-#: ../../diskdrake/interactive.pm_.c:372
-msgid "Add to LVM"
-msgstr "Aldonu al LVM (Redundanca Aro de Malmultekostaj Diskoj)"
-
-#: ../../diskdrake/interactive.pm_.c:373 ../../diskdrake/smbnfs_gtk.pm_.c:79
-msgid "Unmount"
-msgstr "Malmuntu"
-
-#: ../../diskdrake/interactive.pm_.c:375
-msgid "Remove from RAID"
-msgstr "Forigu de RAID (Redundanca Aro de Malmultekostaj Diskoj)"
-
-#: ../../diskdrake/interactive.pm_.c:376
-msgid "Remove from LVM"
-msgstr "Forigu de LVM (Redundanca Aro de Malmultekostaj Diskoj)"
-
-#: ../../diskdrake/interactive.pm_.c:377
-msgid "Modify RAID"
-msgstr "Žanųu RAID (Redundanca Aro de Malmultekostaj Diskoj)"
-
-#: ../../diskdrake/interactive.pm_.c:378
-msgid "Use for loopback"
-msgstr "Uzu por retrokonektado"
-
-#: ../../diskdrake/interactive.pm_.c:417
-msgid "Create a new partition"
-msgstr "Kreu novan subdiskon"
-
-#: ../../diskdrake/interactive.pm_.c:420
-msgid "Start sector: "
-msgstr "Komenca sektoro: "
-
-#: ../../diskdrake/interactive.pm_.c:422 ../../diskdrake/interactive.pm_.c:773
-msgid "Size in MB: "
-msgstr "Grandeco en MB: "
-
-#: ../../diskdrake/interactive.pm_.c:423 ../../diskdrake/interactive.pm_.c:774
-msgid "Filesystem type: "
-msgstr "Speco de dosiersistemo: "
-
-#: ../../diskdrake/interactive.pm_.c:424
-#: ../../diskdrake/interactive.pm_.c:1034
-#: ../../diskdrake/interactive.pm_.c:1108
-msgid "Mount point: "
-msgstr "Surmetingo: "
-
-#: ../../diskdrake/interactive.pm_.c:428
-msgid "Preference: "
-msgstr "Prefero: "
-
-#: ../../diskdrake/interactive.pm_.c:472
-#, fuzzy
-msgid "Remove the loopback file?"
-msgstr "Formatas retrokonektan dosieron %s"
-
-#: ../../diskdrake/interactive.pm_.c:497
-msgid "Change partition type"
-msgstr "Žanųu subdiskspecon"
-
-#: ../../diskdrake/interactive.pm_.c:498 ../../diskdrake/removable.pm_.c:48
-msgid "Which filesystem do you want?"
-msgstr "Kiun dosierosistemo vi deziras uzi?"
-
-#: ../../diskdrake/interactive.pm_.c:502
-msgid "Switching from ext2 to ext3"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:532
-#, c-format
-msgid "Where do you want to mount loopback file %s?"
-msgstr "Kie vi deziras munti retrokonektan dosieron %s?"
-
-#: ../../diskdrake/interactive.pm_.c:533 ../../diskdrake/interactive.pm_.c:553
-#, c-format
-msgid "Where do you want to mount device %s?"
-msgstr "Kie vi deziras munti aparato %s?"
-
-#: ../../diskdrake/interactive.pm_.c:539
-msgid ""
-"Can't unset mount point as this partition is used for loop back.\n"
-"Remove the loopback first"
-msgstr ""
-"Ne povas malfiksi surmetingon ęar ęi tiu subdisko estas uzata por\n"
-"retrokonektado. Unue forigu la retrokonektadon."
-
-#: ../../diskdrake/interactive.pm_.c:577
-msgid "Computing FAT filesystem bounds"
-msgstr "Kalkulas FAT dosiersistemajn limojn"
-
-#: ../../diskdrake/interactive.pm_.c:577 ../../diskdrake/interactive.pm_.c:636
-#: ../../install_interactive.pm_.c:130
-msgid "Resizing"
-msgstr "Regrandecigas"
-
-#: ../../diskdrake/interactive.pm_.c:609
-msgid "This partition is not resizeable"
-msgstr "Ęi tiu subdisko ne estas regrandecigebla"
-
-#: ../../diskdrake/interactive.pm_.c:614
-msgid "All data on this partition should be backed-up"
-msgstr "Ęiuj datenoj en ęi tiu subdisko devus esti rezervata"
-
-#: ../../diskdrake/interactive.pm_.c:616
-#, c-format
-msgid "After resizing partition %s, all data on this partition will be lost"
-msgstr ""
-"Post vi regrandecigas subdiskon %s, ęiuj datenoj en ęi tiu subdisko estos\n"
-"perdata"
-
-#: ../../diskdrake/interactive.pm_.c:621
-msgid "Choose the new size"
-msgstr "Elektu la novan grandecon"
-
-#: ../../diskdrake/interactive.pm_.c:622
-#, fuzzy
-msgid "New size in MB: "
-msgstr "Grandeco en MB: "
-
-#: ../../diskdrake/interactive.pm_.c:675
-msgid "Which disk do you want to move it to?"
-msgstr "Al kiu disko vi deziras movi?"
-
-#: ../../diskdrake/interactive.pm_.c:676
-msgid "Sector"
-msgstr "Sektoro"
-
-#: ../../diskdrake/interactive.pm_.c:677
-msgid "Which sector do you want to move it to?"
-msgstr "Al kiu sektoro vi deziras movi?"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving"
-msgstr "Movante"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving partition..."
-msgstr "Movas subdisko..."
-
-#: ../../diskdrake/interactive.pm_.c:697
-msgid "Choose an existing RAID to add to"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:698 ../../diskdrake/interactive.pm_.c:716
-msgid "new"
-msgstr "nova"
-
-#: ../../diskdrake/interactive.pm_.c:714
-msgid "Choose an existing LVM to add to"
-msgstr ""
-"Elektu ekzistantan RAID (Redundanca Aro de Malmultekostaj Diskoj) por\n"
-"aldoni al"
-
-#: ../../diskdrake/interactive.pm_.c:719
-msgid "LVM name?"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:759
-msgid "This partition can't be used for loopback"
-msgstr "Vi ne povas uzi ęi tiun subdiskon por retrokonektado"
-
-#: ../../diskdrake/interactive.pm_.c:771
-msgid "Loopback"
-msgstr "Retrokonektado"
-
-#: ../../diskdrake/interactive.pm_.c:772
-msgid "Loopback file name: "
-msgstr "Retrokonekta dosieronomo: "
-
-#: ../../diskdrake/interactive.pm_.c:777
-#, fuzzy
-msgid "Give a file name"
-msgstr "Vera nomo"
-
-#: ../../diskdrake/interactive.pm_.c:780
-msgid "File already used by another loopback, choose another one"
-msgstr "Alia retrokonektado jam uzas tiun dosieron, elektu alian"
-
-#: ../../diskdrake/interactive.pm_.c:781
-msgid "File already exists. Use it?"
-msgstr "Dosiero jam ekzistas. Ęu vi deziras uzi ųin?"
-
-#: ../../diskdrake/interactive.pm_.c:804
-#, fuzzy
-msgid "Mount options"
-msgstr "Modulaj opcioj:"
-
-#: ../../diskdrake/interactive.pm_.c:811
-msgid "Various"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:874
-msgid "device"
-msgstr "aparato"
-
-#: ../../diskdrake/interactive.pm_.c:875
-msgid "level"
-msgstr "nivelo"
-
-#: ../../diskdrake/interactive.pm_.c:876
-msgid "chunk size"
-msgstr "grandeco de pecoj"
-
-#: ../../diskdrake/interactive.pm_.c:891
-msgid "Be careful: this operation is dangerous."
-msgstr "Zorgu: ęi tiu operacio estas danųera."
-
-#: ../../diskdrake/interactive.pm_.c:906
-msgid "What type of partitioning?"
-msgstr "Kiun specon de subdiskado?"
-
-#: ../../diskdrake/interactive.pm_.c:924
-msgid ""
-"Sorry I won't accept to create /boot so far onto the drive (on a cylinder > "
-"1024).\n"
-"Either you use LILO and it won't work, or you don't use LILO and you don't "
-"need /boot"
-msgstr ""
-"Bedażrinde mi ne kreas /boot tiom longe sur la drajvon (ęe cilindro > "
-"1024).\n"
-"Aż vi uzos LILO kaj ųi ne funkcios, aż vi ne uzos LILO kaj vi ne bezonas\n"
-"/boot."
-
-#: ../../diskdrake/interactive.pm_.c:928
-msgid ""
-"The partition you've selected to add as root (/) is physically located "
-"beyond\n"
-"the 1024th cylinder of the hard drive, and you have no /boot partition.\n"
-"If you plan to use the LILO boot manager, be careful to add a /boot partition"
-msgstr ""
-"La subdiskon vi elektis por aldoni kiel la radiko (root, /) estas fizike\n"
-"situanta preter la 1024a cilindro de la drajvo, kaj vi ne havas /boot\n"
-"subdiskon. Se vi intencas uzi la LILO startadministranto, zorgu aldoni\n"
-"/boot subdiskon."
-
-#: ../../diskdrake/interactive.pm_.c:934
-msgid ""
-"You've selected a software RAID partition as root (/).\n"
-"No bootloader is able to handle this without a /boot partition.\n"
-"So be careful to add a /boot partition"
-msgstr ""
-"Vi elektis softvaran RAID-an subdiskon por la radika dosiersistemo (/).\n"
-"Neniu startžargilo povas trakti tiun sen /boot subdisko.\n"
-"Do zorgu aldoni /boot subdiskon."
-
-#: ../../diskdrake/interactive.pm_.c:954
-#, c-format
-msgid "Partition table of drive %s is going to be written to disk!"
-msgstr "La subdisktabelo de drajvo %s estos skribata al disko!"
-
-#: ../../diskdrake/interactive.pm_.c:958
-msgid "You'll need to reboot before the modification can take place"
-msgstr "Vi bezonos restarti antaż ol la žanųo povas efektiviųi"
-
-#: ../../diskdrake/interactive.pm_.c:969
-#, c-format
-msgid "After formatting partition %s, all data on this partition will be lost"
-msgstr ""
-"Post vi formatas la subdiskon %s, ęiuj datenoj en ęi tiu subdisko estos\n"
-"perdata"
-
-#: ../../diskdrake/interactive.pm_.c:971
-msgid "Formatting"
-msgstr "Formatas"
-
-#: ../../diskdrake/interactive.pm_.c:972
-#, c-format
-msgid "Formatting loopback file %s"
-msgstr "Formatas retrokonektan dosieron %s"
-
-#: ../../diskdrake/interactive.pm_.c:973
-#: ../../install_steps_interactive.pm_.c:465
-#, c-format
-msgid "Formatting partition %s"
-msgstr "Formatas subdiskon %s"
-
-#: ../../diskdrake/interactive.pm_.c:984
-#, fuzzy
-msgid "Hide files"
-msgstr "mkraid malsukcesis"
-
-#: ../../diskdrake/interactive.pm_.c:984
-#, fuzzy
-msgid "Move files to the new partition"
-msgstr "Mankas sufięan da libera spaco por disponigi novajn subdiskojn"
-
-#: ../../diskdrake/interactive.pm_.c:985
-#, c-format
-msgid ""
-"Directory %s already contain some data\n"
-"(%s)"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:996
-#, fuzzy
-msgid "Moving files to the new partition"
-msgstr "Mankas sufięan da libera spaco por disponigi novajn subdiskojn"
-
-#: ../../diskdrake/interactive.pm_.c:1000
-#, c-format
-msgid "Copying %s"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1004
-#, fuzzy, c-format
-msgid "Removing %s"
-msgstr "Distingivo: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1014
-#, c-format
-msgid "partition %s is now known as %s"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1035
-#: ../../diskdrake/interactive.pm_.c:1094
-msgid "Device: "
-msgstr "Aparato: "
-
-#: ../../diskdrake/interactive.pm_.c:1036
-#, c-format
-msgid "DOS drive letter: %s (just a guess)\n"
-msgstr "DOS-a diskingolitero: %s (nur konjekto)\n"
-
-#: ../../diskdrake/interactive.pm_.c:1040
-#: ../../diskdrake/interactive.pm_.c:1048
-#: ../../diskdrake/interactive.pm_.c:1112
-msgid "Type: "
-msgstr "Speco: "
-
-#: ../../diskdrake/interactive.pm_.c:1044
-msgid "Name: "
-msgstr "Nomo: "
-
-#: ../../diskdrake/interactive.pm_.c:1052
-#, c-format
-msgid "Start: sector %s\n"
-msgstr "Komenco: sektoro %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1053
-#, c-format
-msgid "Size: %s"
-msgstr "Grandeco: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1055
-#, c-format
-msgid ", %s sectors"
-msgstr ", %s sektoroj"
-
-#: ../../diskdrake/interactive.pm_.c:1057
-#, fuzzy, c-format
-msgid "Cylinder %d to %d\n"
-msgstr "De cilindro %d al cilindro %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1058
-msgid "Formatted\n"
-msgstr "Formatita\n"
-
-#: ../../diskdrake/interactive.pm_.c:1059
-msgid "Not formatted\n"
-msgstr "Ne formatita\n"
-
-#: ../../diskdrake/interactive.pm_.c:1060
-msgid "Mounted\n"
-msgstr "Muntita\n"
-
-#: ../../diskdrake/interactive.pm_.c:1061
-#, c-format
-msgid "RAID md%s\n"
-msgstr "RAID (Redundanca Aro de Malmultekostaj Diskoj) md%s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1063
-#, fuzzy, c-format
-msgid ""
-"Loopback file(s):\n"
-" %s\n"
-msgstr "Retrokonekta(j) dosiero(j): %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1064
-msgid ""
-"Partition booted by default\n"
-" (for MS-DOS boot, not for lilo)\n"
-msgstr ""
-"Subdisko startata defażlte\n"
-" (por MS-DOS starto, ne por \"lilo\")\n"
-
-#: ../../diskdrake/interactive.pm_.c:1066
-#, c-format
-msgid "Level %s\n"
-msgstr "Nivelo %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1067
-#, c-format
-msgid "Chunk size %s\n"
-msgstr "Grandeco de pecoj %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1068
-#, c-format
-msgid "RAID-disks %s\n"
-msgstr "RAID-aj (Redundanca Aro de Malmultekostaj Diskoj) diskoj %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1070
-#, c-format
-msgid "Loopback file name: %s"
-msgstr "Retrokonekta dosieronomo: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1073
-msgid ""
-"\n"
-"Chances are, this partition is\n"
-"a Driver partition, you should\n"
-"probably leave it alone.\n"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1076
-msgid ""
-"\n"
-"This special Bootstrap\n"
-"partition is for\n"
-"dual-booting your system.\n"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1095
-#, c-format
-msgid "Size: %s\n"
-msgstr "Grandeco: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1096
-#, c-format
-msgid "Geometry: %s cylinders, %s heads, %s sectors\n"
-msgstr "Geometrio: %s cilindroj, %s kapoj, %s sektoroj\n"
-
-#: ../../diskdrake/interactive.pm_.c:1097
-msgid "Info: "
-msgstr "Informo: "
-
-#: ../../diskdrake/interactive.pm_.c:1098
-#, c-format
-msgid "LVM-disks %s\n"
-msgstr "LVM-aj (Redundanca Aro de Malmultekostaj Diskoj) diskoj %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1099
-#, c-format
-msgid "Partition table type: %s\n"
-msgstr "Subdiskotabelospeco: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1100
-#, c-format
-msgid "on bus %d id %d\n"
-msgstr "ęe buso %d identiga¼o %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1114
-#, c-format
-msgid "Options: %s"
-msgstr "Opcioj: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1130
-#, fuzzy
-msgid "Filesystem encryption key"
-msgstr "Speco de dosiersistemo: "
-
-#: ../../diskdrake/interactive.pm_.c:1131
-msgid "Choose your filesystem encryption key"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1134
-#, fuzzy, c-format
-msgid "This encryption key is too simple (must be at least %d characters long)"
-msgstr ""
-"Ęi tiu pasvorto ests tro simpla (ųi devas esti almenaż %d signoj longa)"
-
-#: ../../diskdrake/interactive.pm_.c:1135
-#, fuzzy
-msgid "The encryption keys do not match"
-msgstr "La pasvortoj ne egalas"
-
-#: ../../diskdrake/interactive.pm_.c:1138
-msgid "Encryption key"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1139
-msgid "Encryption key (again)"
-msgstr ""
-
-#: ../../diskdrake/removable.pm_.c:47
-#, fuzzy
-msgid "Change type"
-msgstr "Žanųu subdiskspecon"
-
-#: ../../diskdrake/removable_gtk.pm_.c:28
-#, fuzzy
-msgid "Please click on a media"
-msgstr "Bonvolu klaki sur subdiskon"
-
-#: ../../diskdrake/smbnfs_gtk.pm_.c:165
-#, fuzzy
-msgid "Search servers"
-msgstr "DNA servilo"
-
-#: ../../fs.pm_.c:485 ../../fs.pm_.c:495 ../../fs.pm_.c:499 ../../fs.pm_.c:503
-#: ../../fs.pm_.c:507 ../../fs.pm_.c:511
-#, c-format
-msgid "%s formatting of %s failed"
-msgstr "%s formatado de %s malsukcesis"
-
-#: ../../fs.pm_.c:548
-#, c-format
-msgid "I don't know how to format %s in type %s"
-msgstr "ne scias kiel formati %s kiel speco %s"
-
-#: ../../fs.pm_.c:620 ../../fs.pm_.c:649 ../../fs.pm_.c:655
-#, c-format
-msgid "mounting partition %s in directory %s failed"
-msgstr ""
-
-#: ../../fs.pm_.c:640
-#, c-format
-msgid "fsck failed with exit code %d or signal %d"
-msgstr ""
-
-#: ../../fs.pm_.c:670 ../../partition_table.pm_.c:596
-#, c-format
-msgid "error unmounting %s: %s"
-msgstr "eraro dum malmunti %s: %s"
-
-#: ../../fsedit.pm_.c:21
-msgid "simple"
-msgstr "simpla"
-
-#: ../../fsedit.pm_.c:25
-msgid "with /usr"
-msgstr ""
-
-#: ../../fsedit.pm_.c:30
-msgid "server"
-msgstr "servilo"
-
-#: ../../fsedit.pm_.c:467
-msgid "You can't use JFS for partitions smaller than 16MB"
-msgstr "Vi ne povas uzi JFS por subdisko pli malgranda ol 16MB"
-
-#: ../../fsedit.pm_.c:468
-msgid "You can't use ReiserFS for partitions smaller than 32MB"
-msgstr "Vi ne povas uzi ReiserFS por subdisko pli malgranda ol 32MB"
-
-#: ../../fsedit.pm_.c:477
-msgid "Mount points must begin with a leading /"
-msgstr "Surmetingoj devas komenci kun antaża /"
-
-#: ../../fsedit.pm_.c:478
-#, c-format
-msgid "There is already a partition with mount point %s\n"
-msgstr "Jam estas subdisko kun surmetingo ęe %s\n"
-
-#: ../../fsedit.pm_.c:482
-#, c-format
-msgid "You can't use a LVM Logical Volume for mount point %s"
-msgstr ""
-
-#: ../../fsedit.pm_.c:484
-msgid "This directory should remain within the root filesystem"
-msgstr "Ęi tiu dosierujo devus resti interne de la radika dosierosistemo (/)"
-
-#: ../../fsedit.pm_.c:486
-msgid "You need a true filesystem (ext2, reiserfs) for this mount point\n"
-msgstr "Vi bezonas veran dosiersistemon (ext2, reiserfs) por tiu surmetingo\n"
-
-#: ../../fsedit.pm_.c:488
-#, fuzzy, c-format
-msgid "You can't use an encrypted file system for mount point %s"
-msgstr "Vi bezonas veran dosiersistemon (ext2, reiserfs) por tiu surmetingo\n"
-
-#: ../../fsedit.pm_.c:546
-#, fuzzy
-msgid "Not enough free space for auto-allocating"
-msgstr "Mankas sufięan da libera spaco por disponigi novajn subdiskojn"
-
-#: ../../fsedit.pm_.c:548
-msgid "Nothing to do"
-msgstr ""
-
-#: ../../fsedit.pm_.c:612
-#, c-format
-msgid "Error opening %s for writing: %s"
-msgstr "Eraro dum malfermado de %s por skribi: %s"
-
-#: ../../fsedit.pm_.c:697
-msgid ""
-"An error has occurred - no valid devices were found on which to create new "
-"filesystems. Please check your hardware for the cause of this problem"
-msgstr ""
-"Eraro okazis - neniuj validaj aparatoj estis trovata sur kiuj vi povas krei "
-"novajn dosiersistemojn. Bonvolu kontroli vian ekipa¼on por la każzo de ęi "
-"tiu problemo."
-
-#: ../../fsedit.pm_.c:720
-msgid "You don't have any partitions!"
-msgstr "Vi ne havas iujn ajn subdiskojn!"
-
-#: ../../help.pm_.c:13
-msgid ""
-"GNU/Linux is a multiuser system, and this means that each user can have his\n"
-"own preferences, his own files and so on. You can read the ``User Guide''\n"
-"to learn more. But unlike \"root\", which is the administrator, the users\n"
-"you will add here will not be entitled to change anything except their own\n"
-"files and their own configuration. You will have to create at least one\n"
-"regular user for yourself. That account is where you should log in for\n"
-"routine use. Although it is very practical to log in as \"root\" everyday,\n"
-"it may also be very dangerous! The slightest mistake could mean that your\n"
-"system would not work any more. If you make a serious mistake as a regular\n"
-"user, you may only lose some information, but not the entire system.\n"
-"\n"
-"First, you have to enter your real name. This is not mandatory, of course\n"
-"as you can actually enter whatever you want. DrakX will then take the first\n"
-"word you have entered in the box and will bring it over to the \"User\n"
-"name\". This is the name this particular user will use to log onto the\n"
-"system. You can change it. You then have to enter a password here. A\n"
-"non-privileged (regular) user's password is not as crucial as \"root\"' one\n"
-"from a security point of view, but that is no reason to neglect it: after\n"
-"all, your files are at risk.\n"
-"\n"
-"If you click on \"Accept user\", you can then add as many as you want. Add\n"
-"a user for each one of your friends: your father or your sister, for\n"
-"example. When you finish adding all the users you want, select \"Done\".\n"
-"\n"
-"Clicking the \"Advanced\" button allows you to change the default \"shell\"\n"
-"for that user (bash by default)."
-msgstr ""
-
-#: ../../help.pm_.c:41
-msgid ""
-"Listed above are the existing Linux partitions detected on your hard 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"
-"able to install enough software. If you want to store your data on a\n"
-"separate partition, you will also need to create a partition for \"/home\"\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 drive type\", \"hard 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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
-"\"second lowest SCSI ID\", etc."
-msgstr ""
-
-#: ../../help.pm_.c:72
-msgid ""
-"The Mandrake Linux 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."
-msgstr ""
-
-#: ../../help.pm_.c:77
-msgid ""
-"It is now time to specify which programs you wish to install on your\n"
-"system. There are thousands of packages available for Mandrake Linux, 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"
-"be asked to specify the CDs you currently have (in Expert mode only). Check\n"
-"the CD labels and highlight the boxes corresponding to the CDs you have\n"
-"available for installation. Click \"OK\" when you are ready to continue.\n"
-"\n"
-"Packages are sorted in groups corresponding to a particular use of your\n"
-"machine. The groups themselves are sorted into four sections:\n"
-"\n"
-" * \"Workstation\": if you plan to use your machine as a workstation, "
-"select\n"
-"one or more of the corresponding groups;\n"
-"\n"
-" * \"Development\": if your machine is to be used for programming, choose\n"
-"the desired group(s);\n"
-"\n"
-" * \"Server\": if your machine is intended to be a server, you will be able\n"
-"to select which of the most common services you wish to install on your\n"
-"machine;\n"
-"\n"
-" * \"Graphical Environment\": finally, this is where you will choose your\n"
-"preferred graphical environment. At least one must be selected if you want\n"
-"to have a graphical workstation!\n"
-"\n"
-"Moving the mouse cursor over a group name will display a short explanatory\n"
-"text about that group. If you deselect all groups when performing a regular\n"
-"installation (by opposition to an upgrade), a dialog will pop up proposing\n"
-"different options for a minimal installation:\n"
-"\n"
-" * \"With X\": install the fewer packages possible to have a working\n"
-"graphical desktop;\n"
-"\n"
-" * \"With basic documentation\": installs the base system plus basic\n"
-"utilities and their documentation. This installation is suitable for\n"
-"setting up a server;\n"
-"\n"
-" * \"Truly minimal install\": will install the strict minimum necessary to\n"
-"get a working Linux system, in command line only. This installation is\n"
-"about 65Mb large.\n"
-"\n"
-"You can check the \"Individual package selection\" box, which is useful if\n"
-"you are familiar with the packages being offered or if you want to have\n"
-"total control over what will be installed.\n"
-"\n"
-"If you started the installation in \"Upgrade\" mode, you can unselect all\n"
-"groups to avoid installing any new package. This is useful for repairing or\n"
-"updating an existing system."
-msgstr ""
-
-#: ../../help.pm_.c:128
-msgid ""
-"Finally, depending on whether or not you selected individual packages, you\n"
-"will be presented a tree containing all packages classified by groups and\n"
-"subgroups. While browsing the tree, you can select entire groups,\n"
-"subgroups, or individual packages.\n"
-"\n"
-"Whenever you select a package on the tree, a description appears on the\n"
-"right. When your selection is finished, click the \"Install\" button which\n"
-"will then launch the installation process. Depending on the speed of your\n"
-"hardware and the number of packages that need to be installed, it may take\n"
-"a while to complete the process. An estimate of the time it will take to\n"
-"install everything is displayed on the screen, to help you gauge if there\n"
-"is sufficient time to enjoy a cup of coffee.\n"
-"\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 Mandrake Linux, 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 Mandrake Linux 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"
-"default. !!\n"
-"\n"
-"The \"Automatic dependencies\" option simply disables the warning dialog\n"
-"which appears whenever the installer automatically selects a package. This\n"
-"occurs because it has determined that it needs to satisfy a dependency with\n"
-"another package in order to successfully complete the installation.\n"
-"\n"
-"The tiny floppy disk icon at the bottom of the list allows to load the\n"
-"package list chosen during a previous installation. Clicking on this icon\n"
-"will ask you to insert a floppy disk previously created at the end of\n"
-"another installation. See the second tip of last step on how to create such\n"
-"a floppy."
-msgstr ""
-
-#: ../../help.pm_.c:164
-msgid ""
-"You are now proposed to set up your Internet/network connection. If you\n"
-"wish to connect your computer to the Internet or to a local network, click\n"
-"\"OK\". The autodetection of network devices and modem will be launched. If\n"
-"this detection fails, uncheck the \"Use auto detection\" box next time. You\n"
-"may also choose not to configure the network, or do it later; in that case,\n"
-"simply click the \"Cancel\" button.\n"
-"\n"
-"Available connections are: traditional modem, ISDN modem, ADSL connection,\n"
-"cable modem, and finally a simple LAN connection (Ethernet).\n"
-"\n"
-"Here, we will not detail each configuration. Simply make sure that you have\n"
-"all the parameters from your Internet Service Provider or system\n"
-"administrator.\n"
-"\n"
-"You can consult the ``User Guide'' chapter about Internet connections for\n"
-"details about the configuration, or simply wait until your system is\n"
-"installed and use the program described there to configure your connection.\n"
-"\n"
-"If you wish to configure the network later after installation, or if you\n"
-"are finished configuring your network connection, click \"Cancel\"."
-msgstr ""
-
-#: ../../help.pm_.c:186
-#, fuzzy
-msgid ""
-"You may now choose which services you wish to start at boot time.\n"
-"\n"
-"Here are presented all the services available with the current\n"
-"installation. Review them carefully and uncheck those which are not always\n"
-"needed at boot time.\n"
-"\n"
-"You can get a short explanatory text about a service by selecting a\n"
-"specific service. However, if you are not sure whether a service is useful\n"
-"or not, 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 will probably not want to start any services which you do not\n"
-"need. Please remember that several services can be dangerous if they are\n"
-"enabled on a server. In general, select only the services you really need.\n"
-"!!"
-msgstr ""
-"Nun vi povas elekti kiujn servojn vi deziras starti kiam vi startas\n"
-"vian komputilon. Kiam via muso estas supre de ero, malgranda balono\n"
-"ekaperas por helpi vin. Ųi priskribas la rolon de la servo.\n"
-"\n"
-"Zorgegu en ęi tiu pažo se vi intencas uzi vian komputilon kiel servilo:\n"
-"ne startu servojn kiujn vi ne deziras uzi."
-
-#: ../../help.pm_.c:203
-msgid ""
-"GNU/Linux manages time in GMT (Greenwich Mean Time) and translates it in\n"
-"local time according to the time zone you selected. It is however possible\n"
-"to deactivate this by deselecting \"Hardware clock set to GMT\" so that the\n"
-"hardware clock is the same as the system clock. This is useful when the\n"
-"machine is hosting another operating system like Windows.\n"
-"\n"
-"The \"Automatic time synchronization\" option will automatically regulate\n"
-"the clock by connecting to a remote time server on the Internet. In the\n"
-"list that is presented, choose a server located near you. Of course you\n"
-"must have a working Internet connection for this feature to work. It will\n"
-"actually install on your machine a time server which can be optionally used\n"
-"by other machines on your local network."
-msgstr ""
-
-#: ../../help.pm_.c:217
-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 Mandrake Linux rely. In this section, DrakX\n"
-"will try to configure X automatically.\n"
-"\n"
-"It is extremely rare for it to fail, unless the hardware is very old (or\n"
-"very new). If it succeeds, it will start X automatically with the best\n"
-"resolution possible, depending on the size of the monitor. A window will\n"
-"then appear and ask you if you can see it.\n"
-"\n"
-"If you are doing an \"Expert\" installation, you will enter the X\n"
-"configuration wizard. See the corresponding section of the manual for more\n"
-"information about this wizard.\n"
-"\n"
-"If you can see the message during the test, and answer \"Yes\", then DrakX\n"
-"will proceed to the next step. If you cannot see the message, it simply\n"
-"means that the configuration was wrong and the test will automatically end\n"
-"after 10 seconds, restoring the screen."
-msgstr ""
-
-#: ../../help.pm_.c:237
-msgid ""
-"The first time you try the X configuration, you may not be very satisfied\n"
-"with its display (screen is too small, shifted left or right...). Hence,\n"
-"even if X starts up correctly, DrakX then asks you if the configuration\n"
-"suits you. It will also propose to change it by displaying a list of valid\n"
-"modes it could find, asking you to select one.\n"
-"\n"
-"As a last resort, if you still cannot get X to work, choose \"Change\n"
-"graphics card\", select \"Unlisted card\", and when prompted on which\n"
-"server, choose \"FBDev\". This is a failsafe option which works with any\n"
-"modern graphics card. Then choose \"Test again\" to be sure."
-msgstr ""
-
-#: ../../help.pm_.c:249
-msgid ""
-"Finally, you will be asked whether you want to see the graphical interface\n"
-"at boot. Note this question will be asked even if you chose not to test the\n"
-"configuration. Obviously, you want to answer \"No\" if your machine is to\n"
-"act as a server, or if you were not successful in getting the display\n"
-"configured."
-msgstr ""
-
-#: ../../help.pm_.c:256
-msgid ""
-"The Mandrake LinuxCD-ROM has a built-in rescue mode. You can access it by\n"
-"booting from the CD-ROM, press the >>F1<< key at boot and type >>rescue<<\n"
-"at the prompt. But in case your computer cannot boot from the CD-ROM, you\n"
-"should come back to this step for help in at least two situations:\n"
-"\n"
-" * when installing the bootloader, DrakX will rewrite the boot sector (MBR)\n"
-"of your main disk (unless you are using another boot manager), to allow you\n"
-"to start up with either Windows or GNU/Linux (assuming you have Windows in\n"
-"your system). If you need to reinstall Windows, the Microsoft install\n"
-"process will rewrite the boot sector, and then you will not be able to\n"
-"start GNU/Linux!\n"
-"\n"
-" * if a problem arises and you cannot start up GNU/Linux from the hard "
-"disk,\n"
-"this floppy disk will be the only means of starting up GNU/Linux. It\n"
-"contains a fair number of system tools for restoring a system, which has\n"
-"crashed due to a power failure, an unfortunate typing error, a typo in a\n"
-"password, or any other reason.\n"
-"\n"
-"When you click on this step, you will be asked to enter a disk inside the\n"
-"drive. The floppy disk you will insert must be empty or contain data which\n"
-"you do not need. You will not have to format it since DrakX will rewrite\n"
-"the whole disk."
-msgstr ""
-
-#: ../../help.pm_.c:280
-msgid ""
-"At this point, you need to choose where you want to install the Mandrake\n"
-"Linux operating system on your hard drive. If your hard drive is empty or\n"
-"if an existing operating system is using all the available space, you will\n"
-"need to partition it. Basically, partitioning a hard drive consists of\n"
-"logically dividing it to create space to install your new Mandrake Linux\n"
-"system.\n"
-"\n"
-"Because the partitioning process' effects are usually irreversible,\n"
-"partitioning can be intimidating and stressful if you are an inexperienced\n"
-"user. Fortunately, there is a wizard which simplifies this process. Before\n"
-"beginning, please consult the manual and take your time.\n"
-"\n"
-"If you are running the installation in Expert mode, you will enter\n"
-"DiskDrake, the Mandrake Linux partitioning tool, which allows you to\n"
-"fine-tune your partitions. See the DiskDrake section in the ``User Guide''.\n"
-"From the installation interface, you can use the wizards as described here\n"
-"by clicking the dialog's \"Wizard\" button.\n"
-"\n"
-"If partitions have already been defined, either from a previous\n"
-"installation or from another partitioning tool, simply select those to\n"
-"install your Linux system.\n"
-"\n"
-"If partitions are not defined, you will need to create them using the\n"
-"wizard. Depending on your hard drive configuration, several options are\n"
-"available:\n"
-"\n"
-" * \"Use free space\": this option will simply lead to an automatic\n"
-"partitioning of your blank drive(s). You will not be prompted further;\n"
-"\n"
-" * \"Use existing partition\": the wizard has detected one or more existing\n"
-"Linux partitions on your hard drive. If you want to use them, choose this\n"
-"option;\n"
-"\n"
-" * \"Use the free space on the Windows; partition\": if MicrosoftWindows is\n"
-"installed on your hard drive and takes all the space available on it, you\n"
-"have to create free space for Linux data. To do so, you can delete your\n"
-"MicrosoftWindows partition and data (see ``Erase entire disk'' or ``Expert\n"
-"mode'' solutions) or resize your MicrosoftWindows partition. Resizing can\n"
-"be performed without the loss of any data, provided you previously\n"
-"defragment the Windows partition. Backing up your data won't hurt either..\n"
-"This solution is recommended if you want to use both Mandrake Linux and\n"
-"MicrosoftWindows on the same computer.\n"
-"\n"
-" Before choosing this option, please understand that after this "
-"procedure,\n"
-"the size of your MicrosoftWindows partition will be smaller than at the\n"
-"present time. You will have less free space under MicrosoftWindows to store\n"
-"your data or to install new software;\n"
-"\n"
-" * \"Erase entire disk\": if you want to delete all data and all partitions\n"
-"present on your hard drive and replace them with your new Mandrake Linux\n"
-"system, choose this option. Be careful with this solution because you will\n"
-"not be able to revert your choice after you confirm;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Remove Windows\": this will simply erase everything on the drive and\n"
-"begin fresh, partitioning everything from scratch. All data on your disk\n"
-"will be lost;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Expert mode\": choose this option if you want to manually partition\n"
-"your hard drive. Be careful it is a powerful but dangerous choice. You can\n"
-"very easily lose all your data. Hence, do not choose this unless you know\n"
-"what you are doing."
-msgstr ""
-
-#: ../../help.pm_.c:347
-msgid ""
-"There you are. Installation is now complete and your GNU/Linux system is\n"
-"ready to use. Just click \"OK\" to reboot the system. You can start\n"
-"GNU/Linux or Windows, whichever you prefer (if you are dual-booting), as\n"
-"soon as the computer has booted up again.\n"
-"\n"
-"The \"Advanced\" button (in Expert mode only) shows two more buttons to:\n"
-"\n"
-" * \"generate auto-install floppy\": to create an installation floppy disk\n"
-"which will automatically perform a whole installation without the help of\n"
-"an operator, similar to the installation you just configured.\n"
-"\n"
-" Note that two different options are available after clicking the button:\n"
-"\n"
-" * \"Replay\". This is a partially automated installation as the\n"
-"partitioning step (and only this one) remains interactive;\n"
-"\n"
-" * \"Automated\". Fully automated installation: the hard disk is "
-"completely\n"
-"rewritten, all data is lost.\n"
-"\n"
-" This feature is very handy when installing a great number of similar\n"
-"machines. See the Auto install section on our web site;\n"
-"\n"
-" * \"Save packages selection\"(*): saves the package selection as done\n"
-"previously. Then, when doing another installation, insert the floppy inside\n"
-"the drive and run the installation going to the help screen by pressing on\n"
-"the [F1] key, and by issuing >>linux defcfg=\"floppy\"<<.\n"
-"\n"
-"(*) You need a FAT-formatted floppy (to create one under GNU/Linux, type\n"
-"\"mformat a:\")"
-msgstr ""
-
-#: ../../help.pm_.c:378
-msgid ""
-"Any partitions that have been newly defined must be formatted for use\n"
-"(formatting means creating a filesystem).\n"
-"\n"
-"At this time, you may wish to reformat some already existing partitions to\n"
-"erase any data they contain. If you wish to do that, please select those\n"
-"partitions as well.\n"
-"\n"
-"Please note that it is 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\n"
-"reformat partitions containing data that you wish to keep (typically\n"
-"\"/home\").\n"
-"\n"
-"Please be careful when selecting partitions. After formatting, all data on\n"
-"the selected partitions will be deleted and you will not be able to recover\n"
-"any of it.\n"
-"\n"
-"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"
-"Mandrake Linux operating system installation.\n"
-"\n"
-"Click on \"Advanced\" if you wish to select partitions that will be checked\n"
-"for bad blocks on the disk."
-msgstr ""
-
-#: ../../help.pm_.c:404
-msgid ""
-"Your new Mandrake Linux operating system is currently being installed.\n"
-"Depending on the number of packages you will be installing and the speed of\n"
-"your computer, this operation could take from a few minutes to a\n"
-"significant amount of time.\n"
-"\n"
-"Please be patient."
-msgstr ""
-
-#: ../../help.pm_.c:412
-msgid ""
-"At the time you are installing Mandrake Linux, it is likely that some\n"
-"packages have been updated since the initial release. Some bugs may have\n"
-"been fixed, and security issues solved. To allow you to benefit from these\n"
-"updates, you are now proposed to download them from the Internet. Choose\n"
-"\"Yes\" if you have a working Internet connection, or \"No\" if you prefer\n"
-"to install updated packages later.\n"
-"\n"
-"Choosing \"Yes\" displays a list of places from which updates can be\n"
-"retrieved. Choose the one nearest you. Then a package-selection tree\n"
-"appears: review the selection, and press \"Install\" to retrieve and\n"
-"install the selected package(s), or \"Cancel\" to abort."
-msgstr ""
-
-#: ../../help.pm_.c:425
-msgid ""
-"Before continuing, you should read carefully the terms of the license. It\n"
-"covers the whole Mandrake Linux 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."
-msgstr ""
-
-#: ../../help.pm_.c:432
-msgid ""
-"At this point, it is time to choose the security level desired for the\n"
-"machine. As a rule of thumb, the more exposed the machine is, and the more\n"
-"the data stored in it is crucial, the higher the security level should be.\n"
-"However, a higher security level is generally obtained at the expense of\n"
-"easiness of use. Refer to the \"msec\" chapter of the ``Reference Manual''\n"
-"to get more information about the meaning of these levels.\n"
-"\n"
-"If you do not know what to choose, keep the default option."
-msgstr ""
-
-#: ../../help.pm_.c:442
-msgid ""
-"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandrake Linux 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"
-"partitions must be defined.\n"
-"\n"
-"To create partitions, you must first select a hard 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"
-"\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"
-"\n"
-" * \"More\": gives access to additional features:\n"
-"\n"
-" * \"Save partition table\": saves the partition table to a floppy. "
-"Useful\n"
-"for later partition-table recovery if necessary. It is strongly recommended\n"
-"to perform this step;\n"
-"\n"
-" * \"Restore partition table\": allows to restore a previously saved\n"
-"partition table from floppy disk;\n"
-"\n"
-" * \"Rescue partition table\": if your partition table is damaged, you "
-"can\n"
-"try to recover it using this option. Please be careful and remember that it\n"
-"can fail;\n"
-"\n"
-" * \"Reload partition table\": discards all changes and loads your "
-"initial\n"
-"partition table;\n"
-"\n"
-" * \"Removable media automounting\": unchecking this option will force "
-"users\n"
-"to manually mount and unmount removable medias such as floppies and\n"
-"CD-ROMs.\n"
-"\n"
-" * \"Wizard\": 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 knowledge of\n"
-"partitioning;\n"
-"\n"
-" * \"Undo\": use this option to cancel your changes;\n"
-"\n"
-" * \"Toggle to normal/expert mode\": allows additional actions on "
-"partitions\n"
-"(type, options, format) and gives more information;\n"
-"\n"
-" * \"Done\": when you are finished partitioning your hard 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"
-"partitions using [Tab] and [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"
-"\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_.c:513
-msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
-"Please choose the one you want to resize in order to install your new\n"
-"Mandrake Linux 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"
-"\"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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard 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"
-"disk or partition is called \"C:\")."
-msgstr ""
-
-#: ../../help.pm_.c:544
-msgid "Please be patient. This operation can take several minutes."
-msgstr ""
-
-#: ../../help.pm_.c:547
-msgid ""
-"DrakX now needs to know if you want to perform a default (\"Recommended\")\n"
-"installation or if you want to have greater control (\"Expert\"). You can\n"
-"also choose to do a new install or an upgrade of an existing Mandrake Linux\n"
-"system:\n"
-"\n"
-" * \"Install\": completely wipes out the old system. In fact, depending on\n"
-"what currently holds your machine, you will be able to keep some old (Linux\n"
-"or other) partitions unchanged;\n"
-"\n"
-" * \"Upgrade\": this installation class allows to simply update the "
-"packages\n"
-"currently installed on your Mandrake Linux system. It keeps the current\n"
-"partitions of your hard drives as well as user configurations. All other\n"
-"configuration steps remain available with respect to plain installation;\n"
-"\n"
-" * \"Upgrade Packages Only\": this brand new class allows to upgrade an\n"
-"existing Mandrake Linux system while keeping all system configurations\n"
-"unchanged. Adding new packages to the current installation is also\n"
-"possible.\n"
-"\n"
-"Upgrades should work fine for Mandrake Linux systems starting from \"8.1\"\n"
-"release.\n"
-"\n"
-"Depending on your knowledge of GNU/Linux, select one of the following\n"
-"choices:\n"
-"\n"
-" * Recommended: choose this if you have never installed a GNU/Linux\n"
-"operating system. The installation will be very easy and you will only be\n"
-"asked a few questions;\n"
-"\n"
-" * Expert: if you have a good knowledge of GNU/Linux, you can choose this\n"
-"installation class. The expert installation will allow you to perform a\n"
-"highly-customized installation. Answering some of the questions can be\n"
-"difficult if you do not have a good knowledge of GNU/Linux, so do not\n"
-"choose this unless you know what you are doing."
-msgstr ""
-
-#: ../../help.pm_.c:583
-msgid ""
-"Normally, DrakX selects the right keyboard for you (depending on the\n"
-"language you have chosen) and you won't even see this step. However, you\n"
-"might not have a keyboard that corresponds exactly to your language: for\n"
-"example, if you are an English speaking Swiss person, you may still want\n"
-"your keyboard to be a Swiss keyboard. Or if you speak English but are\n"
-"located in Quebec, you may find yourself in the same situation. In both\n"
-"cases, you will have to go back to this installation step and select an\n"
-"appropriate keyboard from the list.\n"
-"\n"
-"Click on the \"More\" button to be presented with the complete list of\n"
-"supported keyboards."
-msgstr ""
-
-#: ../../help.pm_.c:596
-msgid ""
-"Please choose your preferred language for installation and system usage.\n"
-"\n"
-"Clicking on the \"Advanced\" button will allow you to select other\n"
-"languages to be installed on your workstation. Selecting other languages\n"
-"will install the language-specific files for system documentation and\n"
-"applications. For example, if you will host users from Spain on your\n"
-"machine, select English as the main language in the tree view and in the\n"
-"Advanced section click on the box corresponding to \"Spanish|Spain\".\n"
-"\n"
-"Note that multiple languages may be installed. Once you have selected any\n"
-"additional locales, click the \"OK\" button to continue."
-msgstr ""
-
-#: ../../help.pm_.c:609
-msgid ""
-"DrakX generally detects the number of buttons your mouse has. If not, it\n"
-"assumes you have a two-button mouse and will set it up for third-button\n"
-"emulation. DrakX will automatically know whether it is a PS/2, serial or\n"
-"USB mouse.\n"
-"\n"
-"If you wish to specify a different type of mouse select the appropriate\n"
-"type from the provided list.\n"
-"\n"
-"If you choose a mouse other than the default, a test screen will be\n"
-"displayed. Use the buttons and wheel to verify that the settings are\n"
-"correct. If the mouse is not working well, press the space bar or [Return]\n"
-"to \"Cancel\" and choose again."
-msgstr ""
-
-#: ../../help.pm_.c:623
-#, fuzzy
-msgid ""
-"Please select the correct port. For example, the \"COM1\" port under\n"
-"Windows is named \"ttyS0\" under GNU/Linux."
-msgstr ""
-"Bonvolu elekti la ųustan pordon. Ekzemple, la COM1-a\n"
-"pordo sub MS Vindozo estas nomata ttyS0 sub GNU/Linukso."
-
-#: ../../help.pm_.c:627
-msgid ""
-"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 choose\n"
-"not to enter a password, but we strongly advise you against this if only\n"
-"for one reason: do not think that because you booted GNU/Linux that your\n"
-"other operating systems are safe from mistakes. Since \"root\" can overcome\n"
-"all limitations and unintentionally erase all data on partitions by\n"
-"carelessly accessing the partitions themselves, it is important for it to\n"
-"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."
-msgstr ""
-
-#: ../../help.pm_.c:663
-msgid ""
-"LILO and grub are GNU/Linux bootloaders. This stage, normally, is totally\n"
-"automated. In fact, DrakX analyzes the disk boot sector and acts\n"
-"accordingly, depending on what it finds here:\n"
-"\n"
-" * if a Windows boot sector is found, it will replace it with a grub/LILO\n"
-"boot sector. Hence, you will be able to load either GNU/Linux or another\n"
-"OS;\n"
-"\n"
-" * if a grub or LILO boot sector is found, it will replace it with a new\n"
-"one.\n"
-"\n"
-"If in doubt, DrakX will display a dialog with various options.\n"
-"\n"
-" * \"Bootloader to use\": you have three choices:\n"
-"\n"
-" * \"GRUB\": if you prefer grub (text menu).\n"
-"\n"
-" * \"LILO with graphical menu\": if you prefer LILO with its graphical\n"
-"interface.\n"
-"\n"
-" * \"LILO with text menu\": if you prefer LILO with its text menu "
-"interface.\n"
-"\n"
-" * \"Boot device\": in most cases, you will not change the default\n"
-"(\"/dev/hda\"), but if you prefer, the bootloader can be installed on the\n"
-"second hard drive (\"/dev/hdb\"), or even on a floppy disk (\"/dev/fd0\");\n"
-"\n"
-" * \"Delay before booting the default image\": when rebooting the computer,\n"
-"this is the delay granted to the user to choose in the bootloader menu,\n"
-"another boot entry than the default one.\n"
-"\n"
-"!! Beware that if you choose not to install a bootloader (by selecting\n"
-"\"Cancel\" here), you must ensure that you have a way to boot your Mandrake\n"
-"Linux system! Also, be sure you know what you do before changing any of the\n"
-"options. !!\n"
-"\n"
-"Clicking the \"Advanced\" button in this dialog will offer many advanced\n"
-"options, which are reserved to the expert user.\n"
-"\n"
-"After you have configured the general bootloader parameters, the list of\n"
-"boot options which will be available at boot time will be displayed.\n"
-"\n"
-"If there is another operating system installed on your machine, it will\n"
-"automatically be added to the boot menu. Here, you can choose to fine-tune\n"
-"the existing options. Select an entry and click \"Modify\" to modify or\n"
-"remove it; \"Add\" creates a new entry; and \"Done\" goes on to the next\n"
-"installation step."
-msgstr ""
-
-#: ../../help.pm_.c:711
-#, fuzzy
-msgid ""
-"LILO (the LInux LOader) and grub are bootloaders: they are able to boot\n"
-"either GNU/Linux or any other operating system present on your computer.\n"
-"Normally, these other operating systems are correctly detected and\n"
-"installed. If this is not the case, you can add an entry by hand in this\n"
-"screen. Be careful to choose the correct parameters.\n"
-"\n"
-"You may also not want to give access to these other operating systems to\n"
-"anyone. In which case, you can delete the corresponding entries. But then,\n"
-"you will need a boot disk in order to boot those other operating systems!"
-msgstr ""
-"LILO (la Linuksa Žargilo) kaj Grub estas startžargiloj: ili povas starti\n"
-"aż GNU/Linukson aż iun ajn mastruman sistemon ęeestanta ęe via komputilo.\n"
-"Normale, ęi tiuj aliaj mastrumaj sistemoj estas ųuste detektata kaj\n"
-"instalada. Se tiel ne estas, vi povas aldoni enskribon mane per ęi tiu\n"
-"ekrano. Zorgu elekti la ųustajn parametrojn.\n"
-"\n"
-"\n"
-"Eble vi ankaż ne deziras doni atingon al ęi tiuj aliaj mastrumaj sistemoj\n"
-"al iu ajn. Ęiokaze vi povas forstreki la respondajn enskribojn. Sed\n"
-"ęiokaze, vi bezonos startdiskon por starti ilin!"
-
-#: ../../help.pm_.c:722
-#, fuzzy
-msgid ""
-"You must indicate where you wish to place the information required to boot\n"
-"to GNU/Linux.\n"
-"\n"
-"Unless you know exactly what you are doing, choose \"First sector of drive\n"
-"(MBR)\"."
-msgstr ""
-"Vi bezonas indiki kie vi deziras meti la informon postulata\n"
-"por starti GNU/Linukson.\n"
-"\n"
-"\n"
-"Krom se vi scias precize kion vi faras, elektu \"Unua sektoro de\n"
-"drajvo (MBR)\""
-
-#: ../../help.pm_.c:729
-msgid ""
-"Here, we select a printing system for your computer. Other OSs may offer\n"
-"you one, but Mandrake Linux offers three.\n"
-"\n"
-" * \"pdq\" which means ``print, don't queue'', is the choice if you have a\n"
-"direct connection to your printer and you want to be able to panic out of\n"
-"printer jams, and you do not have networked printers. It will handle only\n"
-"very simple network cases and is somewhat slow for networks. Pick \"pdq\"\n"
-"if this is your maiden voyage to GNU/Linux. You can change your choices\n"
-"after installation by running PrinterDrake from the Mandrake Control Center\n"
-"and clicking the expert button.\n"
-"\n"
-" * \"CUPS\"``Common Unix Printing System'', is excellent at printing to "
-"your\n"
-"local printer and also halfway-around the planet. It is simple and can act\n"
-"as a server or a client for the ancient \"lpd\" printing system. Hence, it\n"
-"is compatible with the systems that went before. It can do many tricks, but\n"
-"the basic setup is almost as easy as \"pdq\". If you need this to emulate\n"
-"an \"lpd\" server, you must turn on the \"cups-lpd\" daemon. It has\n"
-"graphical front-ends for printing or choosing printer options.\n"
-"\n"
-" * \"lprNG\"``line printer daemon New Generation''. This system can do\n"
-"approximately the same things the others can do, but it will print to\n"
-"printers mounted on a Novell Network, because it supports the IPX protocol,\n"
-"and it can print directly to shell commands. If you have need of Novell or\n"
-"printing to commands without using a separate pipe construct, use lprNG.\n"
-"Otherwise, CUPS is preferable as it is simpler and better at working over\n"
-"networks."
-msgstr ""
-
-#: ../../help.pm_.c:757
-#, fuzzy
-msgid ""
-"DrakX now detects any IDE device present in your computer. It will also\n"
-"scan for one or more PCI SCSI card(s) on your system. If a SCSI card is\n"
-"found, DrakX will automatically install the appropriate driver.\n"
-"\n"
-"Because hardware detection does not always detect a piece of hardware,\n"
-"DrakX will ask you to confirm if a PCI SCSI card is present. Click \"Yes\"\n"
-"if you know that there is a SCSI card installed in your machine. You will\n"
-"be presented a list of SCSI cards to choose from. Click \"No\" if you have\n"
-"no SCSI hardware. If you are unsure, you can check the list of hardware\n"
-"detected in your machine by selecting \"See hardware info\" and clicking\n"
-"\"OK\". Examine the list of hardware and then click on the \"OK\" button to\n"
-"return to the SCSI interface question.\n"
-"\n"
-"If you have to manually specify your adapter, DrakX will ask if you want to\n"
-"specify options for it. You should allow DrakX to probe the hardware for\n"
-"the card-specific options which the hardware needs to initialize. This\n"
-"usually works well.\n"
-"\n"
-"If DrakX is not able to probe for the options which need to be passed, you\n"
-"will need to provide options to the driver manually. Please review the\n"
-"``User Guide'' (chapter 3, in the ``Collecting Information on Your\n"
-"Hardware'' section) for hints on retrieving the parameters required from\n"
-"hardware documentation, from the manufacturer's web site (if you have\n"
-"Internet access) or from MicrosoftWindows (if you used this hardware with\n"
-"Windows on your system)."
-msgstr ""
-"DrakX provos seręi PCI-a(j)n SCSI-a(j)n adaptilo(j)n\n"
-"Se DrakX trovas SCSI-an adaptilon kaj scias kiun pelilon ųi devas uzi\n"
-"ųi ażtomate instalos ųin (aż ilin).\n"
-"\n"
-"Se vi havas neniom da SCSI-aj adaptiloj, ISA-an SCSI-an adapilon, aż\n"
-"PCI-an SCSI-an adaptilon kiun DrakX ne rekonas DrakX demandos al vi\n"
-"se vi havas SCSI-an adaptilon sur via komputilo. Se vi ne havas adaptilon\n"
-"vi povas nur klaki 'Ne'. Se vi klakos 'Jes', DrakX montros al vi liston de\n"
-"peliloj. Vi povos elekti vian specifan pelilon de la listo.\n"
-"\n"
-"\n"
-"Se vi devas permane elekti vian adaptilon, DrakX demandos\n"
-"ęu vi deziras specifi opciojn por ųi. Vi devus permesi al DrakX\n"
-"esplori la aparaton por la opcioj. Ęi tiu kutime bone funkcias.\n"
-"\n"
-"Se ne, vi bezonos provizi opciojn al la pelilo.\n"
-"Reviziu la Instalgvidlibron por sugestoj pri ekstrakado de ęi tiu\n"
-"informo de Vindozo (se vi havas ųin sur via komputilo),\n"
-"de dokumenta¼o de aparato, aż de la TTT-ejo de la fabrikanto\n"
-"(se vi havas atingon al la reto)."
-
-#: ../../help.pm_.c:784
-msgid ""
-"You can add additional entries for yaboot, either for other operating\n"
-"systems, alternate kernels, or for an emergency boot image.\n"
-"\n"
-"For other OSs, the entry consists only of a label and the \"root\"\n"
-"partition.\n"
-"\n"
-"For Linux, there are a few possible options:\n"
-"\n"
-" * Label: this is simply the name you will have to type at the yaboot "
-"prompt\n"
-"to select this boot option;\n"
-"\n"
-" * Image: this would be the name of the kernel to boot. Typically, vmlinux\n"
-"or a variation of vmlinux with an extension;\n"
-"\n"
-" * Root: the \"root\" device or ``/'' for your Linux installation;\n"
-"\n"
-" * Append: on Apple hardware, the kernel append option is used quite often\n"
-"to assist in initializing video hardware, or to enable keyboard mouse\n"
-"button emulation for the often lacking 2nd and 3rd mouse buttons on a stock\n"
-"Apple mouse. The following are some examples:\n"
-"\n"
-" video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111 "
-"hda=autotune\n"
-"\n"
-" video=atyfb:vmode:12,cmode:24 adb_buttons=103,111\n"
-"\n"
-" * Initrd: this option can be used either to load initial modules, before\n"
-"the boot device is available, or to load a ramdisk image for an emergency\n"
-"boot situation;\n"
-"\n"
-" * Initrd-size: the default ramdisk size is generally 4,096 bytes. If you\n"
-"need to allocate a large ramdisk, this option can be used;\n"
-"\n"
-" * Read-write: normally the \"root\" partition is initially brought up in\n"
-"read-only, to allow a file system check before the system becomes ``live''.\n"
-"Here, you can override this option;\n"
-"\n"
-" * NoVideo: should the Apple video hardware prove to be exceptionally\n"
-"problematic, you can select this option to boot in ``novideo'' mode, with\n"
-"native frame buffer support;\n"
-"\n"
-" * Default: selects this entry as being the default Linux selection,\n"
-"selectable by just pressing ENTER at the yaboot prompt. This entry will\n"
-"also be highlighted with a ``*'', if you press [Tab] to see the boot\n"
-"selections."
-msgstr ""
-
-#: ../../help.pm_.c:830
-msgid ""
-"Yaboot is a bootloader for NewWorld MacIntosh hardware. It is able to boot\n"
-"either GNU/Linux, MacOS or MacOSX if present on your computer. Normally,\n"
-"these other operating systems are correctly detected and installed. If this\n"
-"is not the case, you can add an entry by hand in this screen. Be careful to\n"
-"choose the correct parameters.\n"
-"\n"
-"Yaboot's main options are:\n"
-"\n"
-" * Init Message: a simple text message displayed before the boot prompt;\n"
-"\n"
-" * Boot Device: indicates where you want to place the information required\n"
-"to boot to GNU/Linux. Generally, you set up a bootstrap partition earlier\n"
-"to hold this information;\n"
-"\n"
-" * Open Firmware Delay: unlike LILO, there are two delays available with\n"
-"yaboot. The first delay is measured in seconds and at this point, you can\n"
-"choose between CD, OF boot, MacOS or Linux;\n"
-"\n"
-" * Kernel Boot Timeout: this timeout is similar to the LILO boot delay.\n"
-"After selecting Linux, you will have this delay in 0.1 second before your\n"
-"default kernel description is selected;\n"
-"\n"
-" * Enable CD Boot?: checking this option allows you to choose ``C'' for CD\n"
-"at the first boot prompt;\n"
-"\n"
-" * Enable OF Boot?: checking this option allows you to choose ``N'' for "
-"Open\n"
-"Firmware at the first boot prompt;\n"
-"\n"
-" * Default OS: you can select which OS will boot by default when the Open\n"
-"Firmware Delay expires."
-msgstr ""
-
-#: ../../help.pm_.c:862
-msgid ""
-"Here are presented various parameters concerning your machine. Depending on\n"
-"your installed hardware, you may or not, see the following entries:\n"
-"\n"
-" * \"Mouse\": check the current mouse configuration and click on the button\n"
-"to change it if necessary;\n"
-"\n"
-" * \"Keyboard\": check the current keyboard map configuration and click on\n"
-"the button to change that if necessary;\n"
-"\n"
-" * \"Timezone\": DrakX, by default, guesses your time zone from the "
-"language\n"
-"you have chosen. But here again, as for the choice of a keyboard, you may\n"
-"not be in the country for which the chosen language should correspond.\n"
-"Hence, you may need to click on the \"Timezone\" button in order to\n"
-"configure the clock according to the time zone you are in;\n"
-"\n"
-" * \"Printer\": clicking on the \"No Printer\" button will open the printer\n"
-"configuration wizard;\n"
-"\n"
-" * \"Sound card\": if a sound card is detected on your system, it is\n"
-"displayed here. No modification possible at installation time;\n"
-"\n"
-" * \"TV card\": if a TV card is detected on your system, it is displayed\n"
-"here. No modification possible at installation time;\n"
-"\n"
-" * \"ISDN card\": if an ISDN card is detected on your system, it is\n"
-"displayed here. You can click on the button to change the parameters\n"
-"associated with it."
-msgstr ""
-
-#: ../../help.pm_.c:891
-msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandrake Linux partition. Be careful, all data present on it will be lost\n"
-"and will not be recoverable!"
-msgstr ""
-
-#: ../../help.pm_.c:896
-msgid ""
-"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"
-"any Windows data.\n"
-"\n"
-"Click on \"Cancel\" to cancel this operation without losing any data and\n"
-"partitions present on this hard drive."
-msgstr ""
-
-#: ../../install2.pm_.c:113
-#, c-format
-msgid ""
-"Can't 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 ""
-
-#: ../../install2.pm_.c:169
-#, c-format
-msgid "You must also format %s"
-msgstr ""
-
-#: ../../install_any.pm_.c:411
-#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They don't have any known security\n"
-"issues, but some new could be found. In that case, you must make sure to "
-"upgrade\n"
-"as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
-msgstr ""
-
-#: ../../install_any.pm_.c:447
-msgid "Can't use broadcast with no NIS domain"
-msgstr ""
-
-#: ../../install_any.pm_.c:793
-#, fuzzy, c-format
-msgid "Insert a FAT formatted floppy in drive %s"
-msgstr "Enžovu disketon en drajvo %s"
-
-#: ../../install_any.pm_.c:797
-msgid "This floppy is not FAT formatted"
-msgstr ""
-
-#: ../../install_any.pm_.c:809
-msgid ""
-"To use this saved packages selection, boot installation with ``linux "
-"defcfg=floppy''"
-msgstr ""
-
-#: ../../install_any.pm_.c:831 ../../partition_table.pm_.c:763
-#, c-format
-msgid "Error reading file %s"
-msgstr "Eraro legante dosiero %s"
-
-#: ../../install_interactive.pm_.c:23
-#, c-format
-msgid ""
-"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
-"You can find some information about them at: %s"
-msgstr ""
-"Iuj aparatoj sur via komputilo bezonas \"proprietajn\" pelilojn por "
-"funkcii.\n"
-"Vi povas trovi iun informon pri ili ęe: %s"
-
-#: ../../install_interactive.pm_.c:58
-msgid ""
-"You must have a root partition.\n"
-"For this, create a partition (or click on an existing one).\n"
-"Then choose action ``Mount point'' and set it to `/'"
-msgstr ""
-"Vi devas havi radikan subdiskon.\n"
-"Por ęi tiu, kreu subdiskon (aż klaku estantan).\n"
-"Sekve elektu la agon \"Surmetingo\" kaj faru ųin '/'"
-
-#: ../../install_interactive.pm_.c:63
-msgid "You must have a swap partition"
-msgstr "Vi devas havi interžanųan subdiskon"
-
-#: ../../install_interactive.pm_.c:64
-msgid ""
-"You don't have a swap partition\n"
-"\n"
-"Continue anyway?"
-msgstr ""
-"Vi ne havas interžanųan subdiskon\n"
-"\n"
-"Ęu vi deziras dażri tamen?"
-
-#: ../../install_interactive.pm_.c:67 ../../install_steps.pm_.c:163
-#, fuzzy
-msgid "You must have a FAT partition mounted in /boot/efi"
-msgstr "Vi devas havi interžanųan subdiskon"
-
-#: ../../install_interactive.pm_.c:90
-msgid "Use free space"
-msgstr "Uzu liberan spacon"
-
-#: ../../install_interactive.pm_.c:92
-msgid "Not enough free space to allocate new partitions"
-msgstr "Mankas sufięan da libera spaco por disponigi novajn subdiskojn"
-
-#: ../../install_interactive.pm_.c:100
-msgid "Use existing partition"
-msgstr "Uzu ekzistantajn subdiskojn"
-
-#: ../../install_interactive.pm_.c:102
-msgid "There is no existing partition to use"
-msgstr "Ne ekzistas subdiskojn por uzi"
-
-#: ../../install_interactive.pm_.c:109
-msgid "Use the Windows partition for loopback"
-msgstr "Uzu la Vindoza subdiskon por retrokonektado"
-
-#: ../../install_interactive.pm_.c:112
-#, fuzzy
-msgid "Which partition do you want to use for Linux4Win?"
-msgstr "Kiun subdiskon vi deziras uzi por meti Linux4Win?"
-
-#: ../../install_interactive.pm_.c:114
-msgid "Choose the sizes"
-msgstr "Elektu la grandecojn"
-
-#: ../../install_interactive.pm_.c:115
-msgid "Root partition size in MB: "
-msgstr "Radikosubdiska grandeco en MB: "
-
-#: ../../install_interactive.pm_.c:116
-msgid "Swap partition size in MB: "
-msgstr "Interžanųa subdiska grandeco en MB: "
-
-#: ../../install_interactive.pm_.c:125
-msgid "Use the free space on the Windows partition"
-msgstr "Uzu la liberan spacon sur la Vindoza subdisko"
-
-#: ../../install_interactive.pm_.c:128
-msgid "Which partition do you want to resize?"
-msgstr "Kiun subdiskon vi deziras regrandecigi?"
-
-#: ../../install_interactive.pm_.c:130
-msgid "Computing Windows filesystem bounds"
-msgstr "Kalkulas Vindozajn dosiersistemajn limojn"
-
-#: ../../install_interactive.pm_.c:133
-#, c-format
-msgid ""
-"The FAT resizer is unable to handle your partition, \n"
-"the following error occured: %s"
-msgstr ""
-"La regrandecigilo por la FAT (Dosiero-Atingo-Tablo) ne povas trakti\n"
-"vian subdiskon, la sekvanta eraro okazis: %s"
-
-#: ../../install_interactive.pm_.c:136
-msgid "Your Windows partition is too fragmented, please run ``defrag'' first"
-msgstr ""
-"Via Vindoza subdisko estas tro fragmentigata, bonvole uzu ``defrag'' antaże"
-
-#: ../../install_interactive.pm_.c:137
-#, fuzzy
-msgid ""
-"WARNING!\n"
-"\n"
-"DrakX will now resize your Windows partition. Be careful:\n"
-"this operation is dangerous. If you have not already done\n"
-"so, you should first exit the installation, run scandisk\n"
-"under Windows (and optionally run defrag), then restart the\n"
-"installation. You should also backup your data.\n"
-"When sure, press Ok."
-msgstr ""
-"AVERTO!\n"
-"\n"
-"DrakX nun regrandecigas vian Vindozan subdiskon. Zorgu: ęi tiu operacio "
-"estas\n"
-"danųera. Se vi ne jam faris ųin, vi devus antaże eliru el la instalado, "
-"uzi\n"
-"\"scandisk\" sub Vindozo (kaj lażvole \"defrag\"), kaj sekve relanęu la\n"
-"instaladon. Ankaż vi devus fari rezervan kopion de via dateno.\n"
-"Kiam vi estas certa, klaku \"Jeso\"."
-
-#: ../../install_interactive.pm_.c:147
-msgid "Which size do you want to keep for windows on"
-msgstr "Kiun grandecon vi deziras teni por Vindozo?"
-
-#: ../../install_interactive.pm_.c:148
-#, c-format
-msgid "partition %s"
-msgstr "subdisko: %s"
-
-#: ../../install_interactive.pm_.c:155
-#, c-format
-msgid "FAT resizing failed: %s"
-msgstr "Regrandeciųo de FAT malsukcesis: %s"
-
-#: ../../install_interactive.pm_.c:170
-msgid ""
-"There is no FAT partitions to resize or to use as loopback (or not enough "
-"space left)"
-msgstr ""
-"Ne ekzistas FAT-ajn (Dosiero-Atingo-Tablo) subdiskojn por regrandecigi\n"
-"aż uzi kiel retrokonektaj subdiskoj (aż ne estas sufięa da spaco)"
-
-#: ../../install_interactive.pm_.c:176
-msgid "Erase entire disk"
-msgstr "Forvižu la tutan diskon"
-
-#: ../../install_interactive.pm_.c:176
-msgid "Remove Windows(TM)"
-msgstr "Forigu Vindozon"
-
-#: ../../install_interactive.pm_.c:179
-msgid "You have more than one hard drive, which one do you install linux on?"
-msgstr "Vi havas pli ol unu fiksdisko, sur kiu vi deziras instali Linukson?"
-
-#: ../../install_interactive.pm_.c:182
-#, c-format
-msgid "ALL existing partitions and their data will be lost on drive %s"
-msgstr ""
-"Ęiuj ekzistantaj subdiskoj kaj iliaj datenoj estos perdata sur drajvo %s"
-
-#: ../../install_interactive.pm_.c:190
-#, fuzzy
-msgid "Custom disk partitioning"
-msgstr "Uzu ekzistantajn subdiskojn"
-
-#: ../../install_interactive.pm_.c:194
-msgid "Use fdisk"
-msgstr "Uzu fdisk"
-
-#: ../../install_interactive.pm_.c:197
-#, c-format
-msgid ""
-"You can now partition %s.\n"
-"When you are done, don't forget to save using `w'"
-msgstr ""
-"Nun vi povas dispartigi %s.\n"
-"Kiam vi finiųos, ne forgesu savi kun `w'."
-
-#: ../../install_interactive.pm_.c:226
-#, fuzzy
-msgid "You don't have enough free space on your Windows partition"
-msgstr "Uzu la liberan spacon sur la Vindoza subdisko"
-
-#: ../../install_interactive.pm_.c:242
-#, fuzzy
-msgid "I can't find any room for installing"
-msgstr "Mi ne povas aldoni plu da subdiskoj"
-
-#: ../../install_interactive.pm_.c:246
-msgid "The DrakX Partitioning wizard found the following solutions:"
-msgstr "La Dispartigsoręilo de DrakX trovis ęi tiujn solvojn:"
-
-#: ../../install_interactive.pm_.c:251
-#, c-format
-msgid "Partitioning failed: %s"
-msgstr "Dispartigado malsukcesis: %s"
-
-#: ../../install_interactive.pm_.c:261
-msgid "Bringing up the network"
-msgstr "Startado de la reto"
-
-#: ../../install_interactive.pm_.c:266
-msgid "Bringing down the network"
-msgstr "Haltas de la reto"
-
-#: ../../install_steps.pm_.c:76
-msgid ""
-"An error occurred, but I don't know how to handle it nicely.\n"
-"Continue at your own risk."
-msgstr ""
-"Eraro okazis, sed mi ne scias kiel trakti ųin bone.\n"
-"Dażri je via propra risko."
-
-#: ../../install_steps.pm_.c:205
-#, c-format
-msgid "Duplicate mount point %s"
-msgstr "Duobla surmetingo %s"
-
-#: ../../install_steps.pm_.c:388
-msgid ""
-"Some important packages didn't get installed properly.\n"
-"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl Mandrake/RPMS/*.rpm"
-"\"\n"
-msgstr ""
-"Iuj gravaj paka¼oj ne estis tażge instalata.\n"
-"Aż via KDROM drajvo aż via KDROM disko estas difektita.\n"
-"Kontrolu la KDROM sur instalata komputilo per\n"
-"\"rpm -qpl Mandrake/RPMS/*.rpm\"\n"
-
-#: ../../install_steps.pm_.c:458
-#, c-format
-msgid "Welcome to %s"
-msgstr "Bonvenon al %s"
-
-#: ../../install_steps.pm_.c:513 ../../install_steps.pm_.c:755
-msgid "No floppy drive available"
-msgstr "Neniu disketilo havebla"
-
-#: ../../install_steps_auto_install.pm_.c:76
-#: ../../install_steps_stdio.pm_.c:22
-#, c-format
-msgid "Entering step `%s'\n"
-msgstr "Eniras pažon `%s'\n"
-
-#: ../../install_steps_gtk.pm_.c:148
-msgid ""
-"Your system is low on resource. You may have some problem installing\n"
-"Mandrake Linux. 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"
-"instaladon. Por ęi tio, premu `F1' kiam vi startas de KDROM, kaj sekve\n"
-"tajpu `text'."
-
-#: ../../install_steps_gtk.pm_.c:159 ../../install_steps_interactive.pm_.c:224
-msgid "Install Class"
-msgstr "Instalklaso"
-
-#: ../../install_steps_gtk.pm_.c:162
-#, fuzzy
-msgid "Please choose one of the following classes of installation:"
-msgstr "Bonvole, elektu unu el la sekvantaj specoj de instalado:"
-
-#: ../../install_steps_gtk.pm_.c:228
-#, c-format
-msgid ""
-"The total size for the groups you have selected is approximately %d MB.\n"
-msgstr "La totala grandeco de la grupoj vi elektis estas proksimume %d MB.\n"
-
-#: ../../install_steps_gtk.pm_.c:230
-#, c-format
-msgid ""
-"If you wish to install less than this size,\n"
-"select the percentage of packages that you want to install.\n"
-"\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of 100%% will install all selected packages."
-msgstr ""
-"Se vi volas instali malpli ol ęi tiu grandeco,\n"
-"elektu la procenton el la paka¼oj kiuj vi deziras instali.\n"
-"\n"
-"Malalta procento instalos nur la plej gravajn paka¼ojn;\n"
-"100%% instalos ęiujn paka¼ojn."
-
-#: ../../install_steps_gtk.pm_.c:235
-#, c-format
-msgid ""
-"You have space on your disk for only %d%% of these packages.\n"
-"\n"
-"If you wish to install less than this,\n"
-"select the percentage of packages that you want to install.\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of %d%% will install as many packages as possible."
-msgstr ""
-"Vi havas spacon ęe via disko por nur %d%% da ęi tiuj paka¼oj.\n"
-"\n"
-"Se vi deziras instali malpli ol tiom,\n"
-"elektu la procenton el la paka¼oj kiun vi deziras instali.\n"
-"Malalta procento instalos nur la plej gravajn paka¼ojn;\n"
-"%d%% instalos tiom paka¼ojn kiom eblajn."
-
-#: ../../install_steps_gtk.pm_.c:241
-msgid "You will be able to choose them more specifically in the next step."
-msgstr "Vi povos elekti ilin pli precize en la sekvanta pažo."
-
-#: ../../install_steps_gtk.pm_.c:243
-msgid "Percentage of packages to install"
-msgstr "Procento da paka¼oj por instali"
-
-#: ../../install_steps_gtk.pm_.c:291 ../../install_steps_interactive.pm_.c:705
-msgid "Package Group Selection"
-msgstr "Elektado de Paka¼aj Grupoj"
-
-#: ../../install_steps_gtk.pm_.c:323 ../../install_steps_interactive.pm_.c:720
-msgid "Individual package selection"
-msgstr "Elektado de individuaj paka¼oj"
-
-#: ../../install_steps_gtk.pm_.c:346 ../../install_steps_interactive.pm_.c:645
-#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Tuta grandeco: %d / %d MB"
-
-#: ../../install_steps_gtk.pm_.c:391
-msgid "Bad package"
-msgstr "Malbona paka¼o"
-
-#: ../../install_steps_gtk.pm_.c:392
-#, c-format
-msgid "Name: %s\n"
-msgstr "Nomo: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:393
-#, c-format
-msgid "Version: %s\n"
-msgstr "Versio: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:394
-#, c-format
-msgid "Size: %d KB\n"
-msgstr "Grandeco: %d KB\n"
-
-#: ../../install_steps_gtk.pm_.c:395
-#, c-format
-msgid "Importance: %s\n"
-msgstr "Graveco: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:417
-msgid ""
-"You can't 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."
-
-#: ../../install_steps_gtk.pm_.c:422
-msgid "The following packages are going to be installed"
-msgstr "La sekvaj paka¼oj estos instalataj"
-
-#: ../../install_steps_gtk.pm_.c:423
-msgid "The following packages are going to be removed"
-msgstr "La sekvaj paka¼oj estos malinstalataj"
-
-#: ../../install_steps_gtk.pm_.c:435
-msgid "You can't select/unselect this package"
-msgstr "Vi ne povas elektu/malelektu ęi tiun paka¼on"
-
-#: ../../install_steps_gtk.pm_.c:447
-msgid "This is a mandatory package, it can't be unselected"
-msgstr "Ęi tiu estas deviga paka¼o, vi ne povas malelekti ųin"
-
-#: ../../install_steps_gtk.pm_.c:449
-msgid "You can't unselect this package. It is already installed"
-msgstr "Vi ne povas malelekti ęi tiun paka¼on. Ųi estas jam instalita."
-
-#: ../../install_steps_gtk.pm_.c:453
-msgid ""
-"This package must be upgraded\n"
-"Are you sure you want to deselect it?"
-msgstr ""
-"Ęi tiu paka¼o devus esti promociata.\n"
-"Ęu vi certas ke vi deziras malelekti ųin?"
-
-#: ../../install_steps_gtk.pm_.c:457
-msgid "You can't unselect this package. It must be upgraded"
-msgstr "Vi ne povas malelekti ęi tiun paka¼on. Ųi devus esti promociata."
-
-#: ../../install_steps_gtk.pm_.c:462
-msgid "Show automatically selected packages"
-msgstr ""
-
-#: ../../install_steps_gtk.pm_.c:463 ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Install"
-msgstr "Instalu"
-
-#: ../../install_steps_gtk.pm_.c:466
-msgid "Load/Save on floppy"
-msgstr "Žargu/Konservu sur disketo"
-
-#: ../../install_steps_gtk.pm_.c:467
-#, fuzzy
-msgid "Updating package selection"
-msgstr "Elektado de individuaj paka¼oj"
-
-#: ../../install_steps_gtk.pm_.c:472
-#, fuzzy
-msgid "Minimal install"
-msgstr "Eliru instalprogramon"
-
-#: ../../install_steps_gtk.pm_.c:487 ../../install_steps_interactive.pm_.c:555
-msgid "Choose the packages you want to install"
-msgstr "Elektu la paka¼ojn kiuj vi deziras instali"
-
-#: ../../install_steps_gtk.pm_.c:503 ../../install_steps_interactive.pm_.c:787
-msgid "Installing"
-msgstr "Instalanta"
-
-#: ../../install_steps_gtk.pm_.c:509
-msgid "Estimating"
-msgstr "Taksas"
-
-#: ../../install_steps_gtk.pm_.c:516
-msgid "Time remaining "
-msgstr "Tempo restanta "
-
-#: ../../install_steps_gtk.pm_.c:528
-#, fuzzy
-msgid "Please wait, preparing installation"
-msgstr "Preparas instaladon"
-
-#: ../../install_steps_gtk.pm_.c:611
-#, c-format
-msgid "%d packages"
-msgstr "%d paka¼oj"
-
-#: ../../install_steps_gtk.pm_.c:616
-#, c-format
-msgid "Installing package %s"
-msgstr "Instalanta paka¼o %s"
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-#: ../../standalone/drakautoinst_.c:203
-msgid "Accept"
-msgstr "Akceptu"
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-msgid "Refuse"
-msgstr "Malakceptu"
-
-#: ../../install_steps_gtk.pm_.c:658 ../../install_steps_interactive.pm_.c:812
-#, c-format
-msgid ""
-"Change your Cd-Rom!\n"
-"\n"
-"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
-"done.\n"
-"If you don't have it, press Cancel to avoid installation from this Cd-Rom."
-msgstr ""
-"Žanųu vian KDROM!\n"
-"\n"
-"Bonvole, enžovu la KDROM-on etikedatan \"%s\" en via drajvo kaj klaku \"Jes"
-"\"\n"
-"kiam vi finos.\n"
-"Se vi ne havas ųin, klaku \"Nuligu\" por eviti la instaladon de ęi tiu KDROM."
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_gtk.pm_.c:676
-#: ../../install_steps_interactive.pm_.c:824
-#: ../../install_steps_interactive.pm_.c:828
-msgid "Go on anyway?"
-msgstr "Ęu vi deziras dażri tamen?"
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_interactive.pm_.c:824
-msgid "There was an error ordering packages:"
-msgstr "Estis eraro ordigi paka¼ojn:"
-
-#: ../../install_steps_gtk.pm_.c:676 ../../install_steps_interactive.pm_.c:828
-msgid "There was an error installing packages:"
-msgstr "Estis eraro dum instalado de paka¼oj:"
-
-#: ../../install_steps_interactive.pm_.c:10
-msgid ""
-"\n"
-"Warning\n"
-"\n"
-"Please read carefully the terms below. If you disagree with any\n"
-"portion, you are not allowed to install the next CD media. Press 'Refuse' \n"
-"to continue the installation without using these media.\n"
-"\n"
-"\n"
-"Some components contained in the next CD media are not governed\n"
-"by the GPL License or similar agreements. Each such component is then\n"
-"governed by the terms and conditions of its own specific license. \n"
-"Please read carefully and comply with such specific licenses before \n"
-"you use or redistribute the said components. \n"
-"Such licenses will in general prevent the transfer, duplication \n"
-"(except for backup purposes), redistribution, reverse engineering, \n"
-"de-assembly, de-compilation or modification of the component. \n"
-"Any breach of agreement will immediately terminate your rights under \n"
-"the specific license. Unless the specific license terms grant you such\n"
-"rights, you usually cannot install the programs on more than one\n"
-"system, or adapt it to be used on a network. In doubt, please contact \n"
-"directly the distributor or editor of the component. \n"
-"Transfer to third parties or copying of such components including the \n"
-"documentation is usually forbidden.\n"
-"\n"
-"\n"
-"All rights to the components of the next CD media belong to their \n"
-"respective authors and are protected by intellectual property and \n"
-"copyright laws applicable to software programs.\n"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:67
-msgid "An error occurred"
-msgstr "Eraro okazis"
-
-#: ../../install_steps_interactive.pm_.c:85
-#, fuzzy
-msgid "Do you really want to leave the installation?"
-msgstr "Ęu vi deziras provi la konfigura¼on?"
-
-#: ../../install_steps_interactive.pm_.c:108
-msgid "License agreement"
-msgstr "Licenca kontrakto"
-
-#: ../../install_steps_interactive.pm_.c:109
-msgid ""
-"Introduction\n"
-"\n"
-"The operating system and the different components available in the Mandrake "
-"Linux distribution \n"
-"shall be called the \"Software Products\" hereafter. The Software Products "
-"include, but are not \n"
-"restricted to, the set of programs, methods, rules and documentation related "
-"to the operating \n"
-"system and the different components of the Mandrake Linux distribution.\n"
-"\n"
-"\n"
-"1. License Agreement\n"
-"\n"
-"Please read carefully this document. This document is a license agreement "
-"between you and \n"
-"MandrakeSoft S.A. which applies to the Software Products.\n"
-"By installing, duplicating or using the Software Products in any manner, you "
-"explicitly \n"
-"accept and fully agree to conform to the terms and conditions of this "
-"License. \n"
-"If you disagree with any portion of the License, you are not allowed to "
-"install, duplicate or use \n"
-"the Software Products. \n"
-"Any attempt to install, duplicate or use the Software Products in a manner "
-"which does not comply \n"
-"with the terms and conditions of this License is void and will terminate "
-"your rights under this \n"
-"License. Upon termination of the License, you must immediately destroy all "
-"copies of the \n"
-"Software Products.\n"
-"\n"
-"\n"
-"2. Limited Warranty\n"
-"\n"
-"The Software Products and attached documentation are provided \"as is\", "
-"with no warranty, to the \n"
-"extent permitted by law.\n"
-"MandrakeSoft S.A. will, in no circumstances and to the extent permitted by "
-"law, be liable for any special,\n"
-"incidental, direct or indirect damages whatsoever (including without "
-"limitation damages for loss of \n"
-"business, interruption of business, financial loss, legal fees and penalties "
-"resulting from a court \n"
-"judgment, or any other consequential loss) arising out of the use or "
-"inability to use the Software \n"
-"Products, even if MandrakeSoft S.A. has been advised of the possibility or "
-"occurance of such \n"
-"damages.\n"
-"\n"
-"LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN SOME "
-"COUNTRIES\n"
-"\n"
-"To the extent permitted by law, MandrakeSoft S.A. or its distributors will, "
-"in no circumstances, be \n"
-"liable for any special, incidental, direct or indirect damages whatsoever "
-"(including without \n"
-"limitation damages for loss of business, interruption of business, financial "
-"loss, legal fees \n"
-"and penalties resulting from a court judgment, or any other consequential "
-"loss) arising out \n"
-"of the possession and use of software components or arising out of "
-"downloading software components \n"
-"from one of Mandrake Linux sites which are prohibited or restricted in some "
-"countries by local laws.\n"
-"This limited liability applies to, but is not restricted to, the strong "
-"cryptography components \n"
-"included in the Software Products.\n"
-"\n"
-"\n"
-"3. The GPL License and Related Licenses\n"
-"\n"
-"The Software Products consist of components created by different persons or "
-"entities. Most \n"
-"of these components are governed under the terms and conditions of the GNU "
-"General Public \n"
-"Licence, hereafter called \"GPL\", or of similar licenses. Most of these "
-"licenses allow you to use, \n"
-"duplicate, adapt or redistribute the components which they cover. Please "
-"read carefully the terms \n"
-"and conditions of the license agreement for each component before using any "
-"component. Any question \n"
-"on a component license should be addressed to the component author and not "
-"to MandrakeSoft.\n"
-"The programs developed by MandrakeSoft S.A. are governed by the GPL License. "
-"Documentation written \n"
-"by MandrakeSoft S.A. is governed by a specific license. Please refer to the "
-"documentation for \n"
-"further details.\n"
-"\n"
-"\n"
-"4. Intellectual Property Rights\n"
-"\n"
-"All rights to the components of the Software Products belong to their "
-"respective authors and are \n"
-"protected by intellectual property and copyright laws applicable to software "
-"programs.\n"
-"MandrakeSoft S.A. reserves its rights to modify or adapt the Software "
-"Products, as a whole or in \n"
-"parts, by all means and for all purposes.\n"
-"\"Mandrake\", \"Mandrake Linux\" and associated logos are trademarks of "
-"MandrakeSoft S.A. \n"
-"\n"
-"\n"
-"5. Governing Laws \n"
-"\n"
-"If any portion of this agreement is held void, illegal or inapplicable by a "
-"court judgment, this \n"
-"portion is excluded from this contract. You remain bound by the other "
-"applicable sections of the \n"
-"agreement.\n"
-"The terms and conditions of this License are governed by the Laws of "
-"France.\n"
-"All disputes on the terms of this license will preferably be settled out of "
-"court. As a last \n"
-"resort, the dispute will be referred to the appropriate Courts of Law of "
-"Paris - France.\n"
-"For any question on this document, please contact MandrakeSoft S.A. \n"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:205
-#: ../../install_steps_interactive.pm_.c:1045
-#: ../../standalone/keyboarddrake_.c:28
-msgid "Keyboard"
-msgstr "Klavaro"
-
-#: ../../install_steps_interactive.pm_.c:206
-#, fuzzy
-msgid "Please choose your keyboard layout."
-msgstr "Bonvole, elektu vian klavaran aranųon."
-
-#: ../../install_steps_interactive.pm_.c:207
-msgid "Here is the full list of keyboards available"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:224
-msgid "Which installation class do you want?"
-msgstr "Kiun instalklaso deziras vi?"
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Install/Update"
-msgstr "Instalu/Ųisdatigu"
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Is this an install or an update?"
-msgstr "Ęu tiu ęi estas instalado aż ųisdatigado?"
-
-#: ../../install_steps_interactive.pm_.c:235
-msgid "Recommended"
-msgstr "Rekomendata"
-
-#: ../../install_steps_interactive.pm_.c:238
-#: ../../install_steps_interactive.pm_.c:241
-msgid "Expert"
-msgstr "Spertulo"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-#, fuzzy
-msgid "Upgrade"
-msgstr "Ųisdatigu"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-#, fuzzy
-msgid "Upgrade packages only"
-msgstr "Elektado de individuaj paka¼oj"
-
-#: ../../install_steps_interactive.pm_.c:266
-#, fuzzy
-msgid "Please choose the type of your mouse."
-msgstr "Bonvole, elektu la specon de via muso."
-
-#: ../../install_steps_interactive.pm_.c:272 ../../standalone/mousedrake_.c:65
-msgid "Mouse Port"
-msgstr "Muspordo"
-
-#: ../../install_steps_interactive.pm_.c:273 ../../standalone/mousedrake_.c:66
-msgid "Please choose on which serial port your mouse is connected to."
-msgstr "Bonvole, elektu al kiu seria pordo estas via muso konektata."
-
-#: ../../install_steps_interactive.pm_.c:281
-msgid "Buttons emulation"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:283
-msgid "Button 2 Emulation"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:284
-msgid "Button 3 Emulation"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "Configuring PCMCIA cards..."
-msgstr "Konfiguras PCMCIA kartojn..."
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "PCMCIA"
-msgstr "PCMCIA"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "Configuring IDE"
-msgstr "Konfiguras IDE"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "IDE"
-msgstr "IDE"
-
-#: ../../install_steps_interactive.pm_.c:327
-msgid "no available partitions"
-msgstr "neniuj haveblaj subdiskoj"
-
-#: ../../install_steps_interactive.pm_.c:330
-msgid "Scanning partitions to find mount points"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:338
-msgid "Choose the mount points"
-msgstr "Elektu surmetingojn"
-
-#: ../../install_steps_interactive.pm_.c:357
-#, c-format
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I can try to go on blanking bad partitions (ALL DATA will be lost!).\n"
-"The other solution is to disallow DrakX to modify the partition table.\n"
-"(the error is %s)\n"
-"\n"
-"Do you agree to loose all the partitions?\n"
-msgstr ""
-"Mi ne povas legi vian subdisktabelon, ųi estas tro difektita por mi :(\n"
-"Mi povas peni dażri per blankigi difektitajn subdiskojn (ĘIOM DA DATUMO\n"
-"pereos!). La alia solvo estas malpermesi al DrakX žanųi la subdisktabelon.\n"
-"(la eraro estas %s)\n"
-"\n"
-"Ęu vi konsentas perdi ęiujn subdiskojn?\n"
-
-#: ../../install_steps_interactive.pm_.c:370
-msgid ""
-"DiskDrake failed to read correctly the partition table.\n"
-"Continue at your own risk!"
-msgstr ""
-"DiskDrake malsukcesis ųuste legi la subdisktabelon.\n"
-"Dażri je via propra risko!"
-
-#: ../../install_steps_interactive.pm_.c:386
-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 ""
-
-#: ../../install_steps_interactive.pm_.c:395
-#, fuzzy
-msgid "No root partition found to perform an upgrade"
-msgstr "Elektu la subdiskoj kiuj vi deziras formati"
-
-#: ../../install_steps_interactive.pm_.c:396
-msgid "Root Partition"
-msgstr "Radikosubdisko"
-
-#: ../../install_steps_interactive.pm_.c:397
-msgid "What is the root partition (/) of your system?"
-msgstr "Kiu estas la radikosubdisko (/) ęe via sistemo?"
-
-#: ../../install_steps_interactive.pm_.c:411
-msgid "You need to reboot for the partition table modifications to take place"
-msgstr "Vi bezonas restarti por la žanųoj al la subdisktabelo efektivigi"
-
-#: ../../install_steps_interactive.pm_.c:435
-msgid "Choose the partitions you want to format"
-msgstr "Elektu la subdiskoj kiuj vi deziras formati"
-
-#: ../../install_steps_interactive.pm_.c:436
-msgid "Check bad blocks?"
-msgstr "Ęu kontrolas malbonajn blokojn?"
-
-#: ../../install_steps_interactive.pm_.c:462
-msgid "Formatting partitions"
-msgstr "Formatas subdiskojn"
-
-#: ../../install_steps_interactive.pm_.c:464
-#, c-format
-msgid "Creating and formatting file %s"
-msgstr "Kreas kaj formatas dosieron %s"
-
-#: ../../install_steps_interactive.pm_.c:467
-msgid "Not enough swap to fulfill installation, please add some"
-msgstr "Nesufięa interžanųospaco por plenumi instalado, bonvolu aldoni iom"
-
-#: ../../install_steps_interactive.pm_.c:473
-msgid "Looking for available packages"
-msgstr "Seręas haveblajn paka¼ojn"
-
-#: ../../install_steps_interactive.pm_.c:479
-msgid "Finding packages to upgrade"
-msgstr "Trovadas paka¼ojn por promocii"
-
-#: ../../install_steps_interactive.pm_.c:496
-#, c-format
-msgid ""
-"Your system has not enough space left for installation or upgrade (%d > %d)"
-msgstr ""
-"Via komputilo ne havas sufięe da spaco por instalado aż promocio (%d > %d)."
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Complete (%dMB)"
-msgstr "Kompleta (%dMB)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Minimum (%dMB)"
-msgstr "Minimuma (%dMB)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Recommended (%dMB)"
-msgstr "Rekomendata (%dMB)"
-
-#: ../../install_steps_interactive.pm_.c:568
-msgid ""
-"Please choose load or save package selection on floppy.\n"
-"The format is the same as auto_install generated floppies."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:571
-msgid "Load from floppy"
-msgstr "Žargu de disketo"
-
-#: ../../install_steps_interactive.pm_.c:573
-msgid "Loading from floppy"
-msgstr "Žargas de disketo"
-
-#: ../../install_steps_interactive.pm_.c:573
-msgid "Package selection"
-msgstr "Elektado de Paka¼oj"
-
-#: ../../install_steps_interactive.pm_.c:578
-#, fuzzy
-msgid "Insert a floppy containing package selection"
-msgstr "Enžovu disketon en drajvo %s"
-
-#: ../../install_steps_interactive.pm_.c:590
-msgid "Save on floppy"
-msgstr "Konservu sur disketo"
-
-#: ../../install_steps_interactive.pm_.c:658
-msgid "Selected size is larger than available space"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:671
-msgid "Type of install"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:672
-msgid ""
-"You haven't selected any group of packages.\n"
-"Please choose the minimal installation you want:"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:675
-msgid "With X"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:677
-msgid "With basic documentation (recommended!)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:678
-msgid "Truly minimal install (especially no urpmi)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:762
-msgid ""
-"If you have all the CDs in the list below, click Ok.\n"
-"If you have none of those CDs, click Cancel.\n"
-"If only some CDs are missing, unselect them, then click Ok."
-msgstr ""
-"Se vi havas ęiujn de la KDROM-oj en la listo sube, klaku \"Jes\".\n"
-"Se vi havas neniujn de ęi tiuj KDROM-oj, klaku \"Nuligu\".\n"
-"Se vi mankas nur iujn de la KDROM-oj, malelektu ilin, kaj poste klaku \"Jes"
-"\"."
-
-#: ../../install_steps_interactive.pm_.c:767
-#, c-format
-msgid "Cd-Rom labeled \"%s\""
-msgstr "KDROM etikedata \"%s\""
-
-#: ../../install_steps_interactive.pm_.c:787
-msgid "Preparing installation"
-msgstr "Preparas instaladon"
-
-#: ../../install_steps_interactive.pm_.c:796
-#, c-format
-msgid ""
-"Installing package %s\n"
-"%d%%"
-msgstr ""
-"Instalas paka¼o %s\n"
-"%d%%"
-
-#: ../../install_steps_interactive.pm_.c:842
-msgid "Post-install configuration"
-msgstr "Post-instala konfigurado"
-
-#: ../../install_steps_interactive.pm_.c:848
-#, fuzzy, c-format
-msgid "Please insert the Boot floppy used in drive %s"
-msgstr "Enžovu disketon en drajvo %s"
-
-#: ../../install_steps_interactive.pm_.c:854
-#, fuzzy, c-format
-msgid "Please insert the Update Modules floppy in drive %s"
-msgstr "Enžovu malplenan disketon en drajvo %s"
-
-#: ../../install_steps_interactive.pm_.c:874
-msgid ""
-"You have now the possibility to download software aimed for encryption.\n"
-"\n"
-"WARNING:\n"
-"\n"
-"Due to different general requirements applicable to these software and "
-"imposed\n"
-"by various jurisdictions, customer and/or end user of theses software "
-"should\n"
-"ensure that the laws of his/their jurisdiction allow him/them to download, "
-"stock\n"
-"and/or use these software.\n"
-"\n"
-"In addition customer and/or end user shall particularly be aware to not "
-"infringe\n"
-"the laws of his/their jurisdiction. Should customer and/or end user not\n"
-"respect the provision of these applicable laws, he/they will incure serious\n"
-"sanctions.\n"
-"\n"
-"In no event shall Mandrakesoft nor its manufacturers and/or suppliers be "
-"liable\n"
-"for special, indirect or incidental damages whatsoever (including, but not\n"
-"limited to loss of profits, business interruption, loss of commercial data "
-"and\n"
-"other pecuniary losses, and eventual liabilities and indemnification to be "
-"paid\n"
-"pursuant to a court decision) arising out of use, possession, or the sole\n"
-"downloading of these software, to which customer and/or end user could\n"
-"eventually have access after having sign up the present agreement.\n"
-"\n"
-"\n"
-"For any queries relating to these agreement, please contact \n"
-"Mandrakesoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA"
-msgstr ""
-"Nun vi havas la žancon elžuti softvaron por ęifrado.\n"
-"\n"
-"AVERTO:\n"
-"\n"
-"Pro malsamaj ųeneralaj kondięoj aplikeblaj al ęi tiu softvaro kaj trudata\n"
-"de diversaj jurisdikcioj, la kliento kaj/aż fina uzanto de tiu softvaro\n"
-"devus certigi ke la leųoj de lia/ilia jurisdikcio permesas li/ili elžuti,\n"
-"stoki kaj/aż uzi tiun softvaron.\n"
-"\n"
-"Plue, la kliento kaj/aż fina uzanto scios specife atentos ne malobei la\n"
-"leųojn de lia/ilia jurisdikcio. Se la kliento kaj/aż la fina uzanto\n"
-"malobeas tiujn aplikeblajn leųojn, li/ili altiros sur sin gravajn "
-"sankciojn.\n"
-"\n"
-"Neniuokaze aż Mandrakesoft aż ųiaj fabrikistoj responsigos por specialaj,\n"
-"nerektaj aż hazardaj reparacioj kiuj ajn (inkluzive, sed ne limigite al\n"
-"perdo de profitoj, interrompo de komerco, perdo de komerca dateno kaj\n"
-"aliaj monaj malprofitoj, kaj rezultaj žuldoj kaj indemizo pagenda konforme\n"
-"al prijuųo) rezulte el uzado, posedado, aż sole elžutado de tiu softvaro, "
-"al\n"
-"kiu la kliento kaj/aż fina uzanto ne povis atingi post subskribi la nunan\n"
-"kontrakton.\n"
-"\n"
-"Por iuj demandoj rilate al tiu kontrakto, bonvole demandu de\n"
-"Mandrakesoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA"
-
-#: ../../install_steps_interactive.pm_.c:912
-msgid ""
-"You have now the possibility to download updated packages that have\n"
-"been released after the distribution has been made available.\n"
-"\n"
-"You will get security fixes or bug fixes, but you need to have an\n"
-"Internet connection configured to proceed.\n"
-"\n"
-"Do you want to install the updates ?"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:926
-#, fuzzy
-msgid "Contacting Mandrake Linux web site to get the list of available mirrors"
-msgstr "Kontaktu la spegulon por havigi la liston de havebla paka¼oj"
-
-#: ../../install_steps_interactive.pm_.c:931
-msgid "Choose a mirror from which to get the packages"
-msgstr "Elektu spegulon de kiu havigi la paka¼ojn"
-
-#: ../../install_steps_interactive.pm_.c:940
-msgid "Contacting the mirror to get the list of available packages"
-msgstr "Kontaktu la spegulon por havigi la liston de havebla paka¼oj"
-
-#: ../../install_steps_interactive.pm_.c:967
-msgid "Which is your timezone?"
-msgstr "kio estas vian horzonon?"
-
-#: ../../install_steps_interactive.pm_.c:972
-#, fuzzy
-msgid "Hardware clock set to GMT"
-msgstr "Ęu via hardvara horloųo estas ųustigata en GMT?"
-
-#: ../../install_steps_interactive.pm_.c:973
-msgid "Automatic time synchronization (using NTP)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:980
-msgid "NTP Server"
-msgstr "NTP Servilo"
-
-#: ../../install_steps_interactive.pm_.c:1014
-#: ../../install_steps_interactive.pm_.c:1022
-msgid "Remote CUPS server"
-msgstr "Malproksima CUPS-a servilo"
-
-#: ../../install_steps_interactive.pm_.c:1015
-msgid "No printer"
-msgstr "Neniu printilo"
-
-#: ../../install_steps_interactive.pm_.c:1032
-#, fuzzy
-msgid "Do you have an ISA sound card?"
-msgstr "Ęu vi havas alian?"
-
-#: ../../install_steps_interactive.pm_.c:1034
-msgid "Run \"sndconfig\" after installation to configure your sound card"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1036
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1041 ../../steps.pm_.c:27
-msgid "Summary"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1044
-msgid "Mouse"
-msgstr "Muso"
-
-#: ../../install_steps_interactive.pm_.c:1046
-msgid "Timezone"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1047 ../../printerdrake.pm_.c:2276
-#: ../../printerdrake.pm_.c:2354
-msgid "Printer"
-msgstr "Printilo"
-
-#: ../../install_steps_interactive.pm_.c:1049
-msgid "ISDN card"
-msgstr "ISDN-karto"
-
-#: ../../install_steps_interactive.pm_.c:1052
-#: ../../install_steps_interactive.pm_.c:1054
-msgid "Sound card"
-msgstr "Sonkarto"
-
-#: ../../install_steps_interactive.pm_.c:1056
-msgid "TV card"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1094
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1122
-msgid "LDAP"
-msgstr "LDAP"
-
-#: ../../install_steps_interactive.pm_.c:1095
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1131
-msgid "NIS"
-msgstr "NIS"
-
-#: ../../install_steps_interactive.pm_.c:1096
-#: ../../install_steps_interactive.pm_.c:1118
-msgid "Local files"
-msgstr "Lokaj dosieroj"
-
-#: ../../install_steps_interactive.pm_.c:1105
-#: ../../install_steps_interactive.pm_.c:1106 ../../steps.pm_.c:24
-msgid "Set root password"
-msgstr "Difinu pasvorton de root"
-
-#: ../../install_steps_interactive.pm_.c:1107
-msgid "No password"
-msgstr "Neniu pasvorto"
-
-#: ../../install_steps_interactive.pm_.c:1112
-#, c-format
-msgid "This password is too simple (must be at least %d characters long)"
-msgstr ""
-"Ęi tiu pasvorto ests tro simpla (ųi devas esti almenaż %d signoj longa)"
-
-#: ../../install_steps_interactive.pm_.c:1118 ../../network/modem.pm_.c:49
-#: ../../standalone/draknet_.c:626 ../../standalone/logdrake_.c:172
-msgid "Authentication"
-msgstr "Ażtentikigado"
-
-#: ../../install_steps_interactive.pm_.c:1126
-msgid "Authentication LDAP"
-msgstr "Ażtentikiga LDAP"
-
-#: ../../install_steps_interactive.pm_.c:1127
-msgid "LDAP Base dn"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1128
-msgid "LDAP Server"
-msgstr "LDAP Servilo"
-
-#: ../../install_steps_interactive.pm_.c:1134
-msgid "Authentication NIS"
-msgstr "Ażtentikiga NIS"
-
-#: ../../install_steps_interactive.pm_.c:1135
-msgid "NIS Domain"
-msgstr "NIS Domajno"
-
-#: ../../install_steps_interactive.pm_.c:1136
-msgid "NIS Server"
-msgstr "NIS Servilo"
-
-#: ../../install_steps_interactive.pm_.c:1171
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"SILO on your system, or another operating system removes SILO, or SILO "
-"doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures.\n"
-"\n"
-"If you want to create a bootdisk for your system, insert a floppy in the "
-"first\n"
-"drive and press \"Ok\"."
-msgstr ""
-"Akomodita startdisketo provizas manieron de starti via Linuksa sistemo\n"
-"sendepende de la normala startžargilo. Ęi tiu estas utila se vi ne deziras\n"
-"instali SILO sur via sistemo, aż alia mastruma sistemo forigas SILO,\n"
-"aż SILO ne funkcias kun via aparato-konfigura¼o. Akomodita startdisketo "
-"ankaż\n"
-"povas esti uzata kun la Mandrejka savdisko, kiu plifaciligas resaniųi de\n"
-"severaj sistemaj paneoj.\n"
-"\n"
-"Se vi deziras krei startdisketon por via sistemo, enžovu disketon en la\n"
-"unua drajvo kaj klaku \"JES\"."
-
-#: ../../install_steps_interactive.pm_.c:1187
-msgid "First floppy drive"
-msgstr "Unua disketa drajvo"
-
-#: ../../install_steps_interactive.pm_.c:1188
-msgid "Second floppy drive"
-msgstr "Dua disketa drajvo"
-
-#: ../../install_steps_interactive.pm_.c:1189 ../../printerdrake.pm_.c:1848
-msgid "Skip"
-msgstr "Ellasu"
-
-#: ../../install_steps_interactive.pm_.c:1194
-#, c-format
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"LILO (or grub) on your system, or another operating system removes LILO, or "
-"LILO doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures. Would you like to create a bootdisk for your system?\n"
-"%s"
-msgstr ""
-"Akomodita startdisketo provizas manieron de starti via Linuksa sistemo\n"
-"sendepende de la normala startžargilo. Ęi tiu estas utila se vi ne deziras\n"
-"instali LILO (aż grub) sur via sistemo, aż alia mastruma sistemo forigas "
-"LILO,\n"
-"aż LILO ne funkcias kun via komputilo. Akomodita startdisketo ankaż povas\n"
-"esti uzata kun la Mandrejka savdisko, kiu plifaciligas resaniųi de severaj\n"
-"sistemaj paneoj. Ęu vi deziras krei startdisketo por via sistemo?\n"
-"%s"
-
-#: ../../install_steps_interactive.pm_.c:1200
-msgid ""
-"\n"
-"\n"
-"(WARNING! You're using XFS for your root partition,\n"
-"creating a bootdisk on a 1.44 Mb floppy will probably fail,\n"
-"because XFS needs a very large driver)."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1208
-msgid "Sorry, no floppy drive available"
-msgstr "Bedażrinde, neniu disketdrajvo havebla"
-
-#: ../../install_steps_interactive.pm_.c:1212
-msgid "Choose the floppy drive you want to use to make the bootdisk"
-msgstr "Elektu la disketdrajvo vi deziras uzi por krei la startdisketon"
-
-#: ../../install_steps_interactive.pm_.c:1216
-#, fuzzy, c-format
-msgid "Insert a floppy in %s"
-msgstr "Enžovu disketon en drajvo %s"
-
-#: ../../install_steps_interactive.pm_.c:1219
-msgid "Creating bootdisk"
-msgstr "Kreas startdisketon"
-
-#: ../../install_steps_interactive.pm_.c:1226
-msgid "Preparing bootloader"
-msgstr "Preparas startžargilon"
-
-#: ../../install_steps_interactive.pm_.c:1237
-msgid ""
-"You appear to have an OldWorld or Unknown\n"
-" machine, the yaboot bootloader will not work for you.\n"
-"The install will continue, but you'll\n"
-" need to use BootX to boot your machine"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1243
-msgid "Do you want to use aboot?"
-msgstr "Ęu vi deziras uzi aboot-on?"
-
-#: ../../install_steps_interactive.pm_.c:1246
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Eraro dażre mi instalis \"aboot\",\n"
-"Ęu mi devus provi perforte instali eę se tio detruas la unuan subdiskon?"
-
-#: ../../install_steps_interactive.pm_.c:1253
-#, fuzzy
-msgid "Installing bootloader"
-msgstr "Instalu restart-žargilon"
-
-#: ../../install_steps_interactive.pm_.c:1259
-msgid "Installation of bootloader failed. The following error occured:"
-msgstr "Instalado de startžargilo malsukcesis. La sekvanta eraro okazis:"
-
-#: ../../install_steps_interactive.pm_.c:1267
-#, c-format
-msgid ""
-"You may need to change your Open Firmware boot-device to\n"
-" enable the bootloader. If you don't 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\n"
-"At your next boot you should see the bootloader prompt."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1311
-#: ../../standalone/drakautoinst_.c:81
-#, c-format
-msgid "Insert a blank floppy in drive %s"
-msgstr "Enžovu malplenan disketon en drajvo %s"
-
-#: ../../install_steps_interactive.pm_.c:1315
-#: ../../standalone/drakautoinst_.c:83
-msgid "Creating auto install floppy"
-msgstr "Kreas ażtoinstalan disketon"
-
-#: ../../install_steps_interactive.pm_.c:1326
-msgid ""
-"Some steps are not completed.\n"
-"\n"
-"Do you really want to quit now?"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1337
-msgid ""
-"Congratulations, installation is complete.\n"
-"Remove the boot media and press return to reboot.\n"
-"\n"
-"\n"
-"For information on fixes which are available for this release of Mandrake "
-"Linux,\n"
-"consult the Errata available from:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/82errata.php3\n"
-"\n"
-"\n"
-"Information on configuring your system is available in the post\n"
-"install chapter of the Official Mandrake Linux User's Guide."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1354
-msgid "Generate auto install floppy"
-msgstr "Kreu ażtoinstalan disketon"
-
-#: ../../install_steps_interactive.pm_.c:1356
-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 ""
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Automated"
-msgstr "Ażtomata"
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Replay"
-msgstr "Reludu"
-
-#: ../../install_steps_interactive.pm_.c:1364
-#, fuzzy
-msgid "Save packages selection"
-msgstr "Elektado de individuaj paka¼oj"
-
-#: ../../install_steps_newt.pm_.c:22
-#, c-format
-msgid "Mandrake Linux Installation %s"
-msgstr "Linuks-Mandrejka Instalado %s"
-
-#: ../../install_steps_newt.pm_.c:34
-msgid ""
-" <Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen "
-msgstr " <Tabo>/<Alt-Tabo> inter eroj | <Spaco> elektas | <F12> sekva ekrano "
-
-#: ../../interactive.pm_.c:87
-msgid "kdesu missing"
-msgstr "kdesu mankas"
-
-#: ../../interactive.pm_.c:89 ../../interactive.pm_.c:100
-msgid "consolehelper missing"
-msgstr ""
-
-#: ../../interactive.pm_.c:152
-#, fuzzy
-msgid "Choose a file"
-msgstr "Elektu agon"
-
-#: ../../interactive.pm_.c:314
-msgid "Advanced"
-msgstr ""
-
-#: ../../interactive.pm_.c:315
-msgid "Basic"
-msgstr ""
-
-#: ../../interactive.pm_.c:386
-msgid "Please wait"
-msgstr "Bonvole atendu"
-
-#: ../../interactive_gtk.pm_.c:605 ../../services.pm_.c:222
-msgid "Info"
-msgstr "Informo"
-
-#: ../../interactive_gtk.pm_.c:715
-msgid "Expand Tree"
-msgstr "Etendu Arbon"
-
-#: ../../interactive_gtk.pm_.c:716
-msgid "Collapse Tree"
-msgstr "Maletendu Arbon"
-
-#: ../../interactive_gtk.pm_.c:717
-msgid "Toggle between flat and group sorted"
-msgstr "Žanųu inter ebena kaj ordigita je grupoj"
-
-#: ../../interactive_stdio.pm_.c:29 ../../interactive_stdio.pm_.c:147
-msgid "Bad choice, try again\n"
-msgstr "Malbona elekta¼o, provu denove\n"
-
-#: ../../interactive_stdio.pm_.c:30 ../../interactive_stdio.pm_.c:148
-#, c-format
-msgid "Your choice? (default %s) "
-msgstr "Via elekta¼o? (defażlo estas %s) "
-
-#: ../../interactive_stdio.pm_.c:52
-#, c-format
-msgid ""
-"Entries you'll have to fill:\n"
-"%s"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:68
-#, fuzzy, c-format
-msgid "Your choice? (0/1, default `%s') "
-msgstr "Via elekta¼o? (defażlo estas %s) "
-
-#: ../../interactive_stdio.pm_.c:93
-#, fuzzy, c-format
-msgid "Button `%s': %s"
-msgstr "Opcioj: %s"
-
-#: ../../interactive_stdio.pm_.c:94
-#, fuzzy
-msgid "Do you want to click on this button? "
-msgstr "Ęu vi deziras uzi aboot-on?"
-
-#: ../../interactive_stdio.pm_.c:103
-#, fuzzy, c-format
-msgid "Your choice? (default `%s'%s) "
-msgstr "Via elekta¼o? (defażlo estas %s) "
-
-#: ../../interactive_stdio.pm_.c:121
-#, c-format
-msgid "=> There are many things to choose from (%s).\n"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:124
-msgid ""
-"Please choose the first number of the 10-range you wish to edit,\n"
-"or just hit Enter to proceed.\n"
-"Your choice? "
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:137
-#, c-format
-msgid ""
-"=> Notice, a label changed:\n"
-"%s"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:144
-msgid "Re-submit"
-msgstr ""
-
-#: ../../keyboard.pm_.c:174 ../../keyboard.pm_.c:205
-msgid "Czech (QWERTZ)"
-msgstr "Ęe¶a (QWERTZ)"
-
-#: ../../keyboard.pm_.c:175 ../../keyboard.pm_.c:207
-msgid "German"
-msgstr "Germana"
-
-#: ../../keyboard.pm_.c:176
-msgid "Dvorak"
-msgstr "Dvorak-a"
-
-#: ../../keyboard.pm_.c:177 ../../keyboard.pm_.c:214
-msgid "Spanish"
-msgstr "Hispana"
-
-#: ../../keyboard.pm_.c:178 ../../keyboard.pm_.c:215
-msgid "Finnish"
-msgstr "Finna"
-
-#: ../../keyboard.pm_.c:179 ../../keyboard.pm_.c:216
-msgid "French"
-msgstr "Franca"
-
-#: ../../keyboard.pm_.c:180 ../../keyboard.pm_.c:241
-msgid "Norwegian"
-msgstr "Norvega"
-
-#: ../../keyboard.pm_.c:181
-msgid "Polish"
-msgstr "Pola"
-
-#: ../../keyboard.pm_.c:182 ../../keyboard.pm_.c:249
-msgid "Russian"
-msgstr "Rusa"
-
-#: ../../keyboard.pm_.c:184 ../../keyboard.pm_.c:251
-msgid "Swedish"
-msgstr "Sveda"
-
-#: ../../keyboard.pm_.c:185 ../../keyboard.pm_.c:266
-msgid "UK keyboard"
-msgstr "Unuiųinta Regna klavaro"
-
-#: ../../keyboard.pm_.c:186 ../../keyboard.pm_.c:267
-msgid "US keyboard"
-msgstr "Usona klavaro"
-
-#: ../../keyboard.pm_.c:188
-msgid "Albanian"
-msgstr "Albana"
-
-#: ../../keyboard.pm_.c:189
-msgid "Armenian (old)"
-msgstr "Armena (malnova)"
-
-#: ../../keyboard.pm_.c:190
-msgid "Armenian (typewriter)"
-msgstr "Armena (skribmažina)"
-
-#: ../../keyboard.pm_.c:191
-msgid "Armenian (phonetic)"
-msgstr "Armena (fonetika)"
-
-#: ../../keyboard.pm_.c:196
-msgid "Azerbaidjani (latin)"
-msgstr "Azerbajųana (latina)"
-
-#: ../../keyboard.pm_.c:198
-msgid "Belgian"
-msgstr "Belga"
-
-#: ../../keyboard.pm_.c:199
-#, fuzzy
-msgid "Bulgarian (phonetic)"
-msgstr "Armena (fonetika)"
-
-#: ../../keyboard.pm_.c:200
-#, fuzzy
-msgid "Bulgarian (BDS)"
-msgstr "Bulgara"
-
-#: ../../keyboard.pm_.c:201
-msgid "Brazilian (ABNT-2)"
-msgstr "Brazila (ABNT-2)"
-
-#: ../../keyboard.pm_.c:202
-msgid "Belarusian"
-msgstr "Belarusa"
-
-#: ../../keyboard.pm_.c:203
-msgid "Swiss (German layout)"
-msgstr "Svisa (germana aranųo)"
-
-#: ../../keyboard.pm_.c:204
-msgid "Swiss (French layout)"
-msgstr "Svisa (franca aranųo)"
-
-#: ../../keyboard.pm_.c:206
-msgid "Czech (QWERTY)"
-msgstr "Ęe¶a (QWERTY)"
-
-#: ../../keyboard.pm_.c:208
-msgid "German (no dead keys)"
-msgstr "Germana (neniom da mortaj klavoj)"
-
-#: ../../keyboard.pm_.c:209
-msgid "Danish"
-msgstr "Dana"
-
-#: ../../keyboard.pm_.c:210
-msgid "Dvorak (US)"
-msgstr "Dvorak-a (US)"
-
-#: ../../keyboard.pm_.c:211
-msgid "Dvorak (Norwegian)"
-msgstr "Dvorak-a (Norvega)"
-
-#: ../../keyboard.pm_.c:212
-#, fuzzy
-msgid "Dvorak (Swedish)"
-msgstr "Dvorak-a (US)"
-
-#: ../../keyboard.pm_.c:213
-msgid "Estonian"
-msgstr "Estona"
-
-#: ../../keyboard.pm_.c:217
-msgid "Georgian (\"Russian\" layout)"
-msgstr "Kartvela (\"Rusa\" aranųo)"
-
-#: ../../keyboard.pm_.c:218
-msgid "Georgian (\"Latin\" layout)"
-msgstr "Kartvela (\"Latina\" aranųo)"
-
-#: ../../keyboard.pm_.c:219
-msgid "Greek"
-msgstr "Greka"
-
-#: ../../keyboard.pm_.c:220
-msgid "Hungarian"
-msgstr "Hungara"
-
-#: ../../keyboard.pm_.c:221
-msgid "Croatian"
-msgstr "Kroata"
-
-#: ../../keyboard.pm_.c:222
-msgid "Israeli"
-msgstr "Israela"
-
-#: ../../keyboard.pm_.c:223
-msgid "Israeli (Phonetic)"
-msgstr "Israela (fonetika)"
-
-#: ../../keyboard.pm_.c:224
-msgid "Iranian"
-msgstr "Irana"
-
-#: ../../keyboard.pm_.c:225
-msgid "Icelandic"
-msgstr "Islanda"
-
-#: ../../keyboard.pm_.c:226
-msgid "Italian"
-msgstr "Itala"
-
-#: ../../keyboard.pm_.c:228
-msgid "Japanese 106 keys"
-msgstr "Japana 106 klavoj"
-
-#: ../../keyboard.pm_.c:231
-msgid "Korean keyboard"
-msgstr "Korea klavaro"
-
-#: ../../keyboard.pm_.c:232
-msgid "Latin American"
-msgstr "Latinamerika"
-
-#: ../../keyboard.pm_.c:233
-msgid "Lithuanian AZERTY (old)"
-msgstr "Litova AZERTY-a (malnova)"
-
-#: ../../keyboard.pm_.c:235
-msgid "Lithuanian AZERTY (new)"
-msgstr "Litova AZERTY-a (nova)"
-
-#: ../../keyboard.pm_.c:236
-msgid "Lithuanian \"number row\" QWERTY"
-msgstr "Litova \"numero-vica\" QWERTY-a"
-
-#: ../../keyboard.pm_.c:237
-msgid "Lithuanian \"phonetic\" QWERTY"
-msgstr "Litova \"fonetika\" QWERTY-a"
-
-#: ../../keyboard.pm_.c:238
-#, fuzzy
-msgid "Latvian"
-msgstr "Loko"
-
-#: ../../keyboard.pm_.c:239
-msgid "Macedonian"
-msgstr "Macedona"
-
-#: ../../keyboard.pm_.c:240
-msgid "Dutch"
-msgstr "Nederlanda"
-
-#: ../../keyboard.pm_.c:242
-msgid "Polish (qwerty layout)"
-msgstr "Pola (qwerty aranųo)"
-
-#: ../../keyboard.pm_.c:243
-msgid "Polish (qwertz layout)"
-msgstr "Pola (qwertz aranųo)"
-
-#: ../../keyboard.pm_.c:244
-msgid "Portuguese"
-msgstr "Portugala"
-
-#: ../../keyboard.pm_.c:245
-msgid "Canadian (Quebec)"
-msgstr "Kanada (Kebeka)"
-
-#: ../../keyboard.pm_.c:247
-msgid "Romanian (qwertz)"
-msgstr "Rumana (qwertz-a)"
-
-#: ../../keyboard.pm_.c:248
-msgid "Romanian (qwerty)"
-msgstr "Rumana (qwerty-a)"
-
-#: ../../keyboard.pm_.c:250
-msgid "Russian (Yawerty)"
-msgstr "Rusa (Yawerty-a)"
-
-#: ../../keyboard.pm_.c:252
-msgid "Slovenian"
-msgstr "Slovena"
-
-#: ../../keyboard.pm_.c:253
-msgid "Slovakian (QWERTZ)"
-msgstr "Slovaka (QWERTZ)"
-
-#: ../../keyboard.pm_.c:254
-msgid "Slovakian (QWERTY)"
-msgstr "Slovaka (QWERTY)"
-
-#: ../../keyboard.pm_.c:256
-#, fuzzy
-msgid "Serbian (cyrillic)"
-msgstr "Azerbajųana (cirila)"
-
-#: ../../keyboard.pm_.c:258
-#, fuzzy
-msgid "Tamil"
-msgstr "Tabelo"
-
-#: ../../keyboard.pm_.c:259
-msgid "Thai keyboard"
-msgstr "Taja klavaro"
-
-#: ../../keyboard.pm_.c:261
-#, fuzzy
-msgid "Tajik keyboard"
-msgstr "Taja klavaro"
-
-#: ../../keyboard.pm_.c:262
-msgid "Turkish (traditional \"F\" model)"
-msgstr "Turka (tradicia \"F\" modelo)"
-
-#: ../../keyboard.pm_.c:263
-msgid "Turkish (modern \"Q\" model)"
-msgstr "Turka (moderna \"Q\" modelo)"
-
-#: ../../keyboard.pm_.c:265
-msgid "Ukrainian"
-msgstr "Ukrajna"
-
-#: ../../keyboard.pm_.c:268
-msgid "US keyboard (international)"
-msgstr "Usona klavaro (internacia)"
-
-#: ../../keyboard.pm_.c:269
-msgid "Vietnamese \"numeric row\" QWERTY"
-msgstr "Vjetnama \"numero-vica\" QWERTY-a"
-
-#: ../../keyboard.pm_.c:270
-#, fuzzy
-msgid "Yugoslavian (latin)"
-msgstr "Jugoslava (latina/cirila)"
-
-#: ../../keyboard.pm_.c:278
-msgid "Right Alt key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:279
-msgid "Both Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:280
-msgid "Control and Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:281
-msgid "CapsLock key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:282
-msgid "Ctrl and Alt keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:283
-msgid "Alt and Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:284
-msgid "\"Menu\" key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:285
-msgid "Left \"Windows\" key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:286
-msgid "Right \"Windows\" key"
-msgstr ""
-
-#: ../../loopback.pm_.c:32
-#, c-format
-msgid "Circular mounts %s\n"
-msgstr "Cirklaj surmetingoj %s\n"
-
-#: ../../lvm.pm_.c:88
-msgid "Remove the logical volumes first\n"
-msgstr ""
-
-#: ../../modules.pm_.c:826
-msgid ""
-"PCMCIA support no longer exist for 2.2 kernels. Please use a 2.4 kernel."
-msgstr ""
-
-#: ../../mouse.pm_.c:25
-msgid "Sun - Mouse"
-msgstr "Sun - Muso"
-
-#: ../../mouse.pm_.c:32
-msgid "Logitech MouseMan+"
-msgstr "Loųiteka MouseMan+"
-
-#: ../../mouse.pm_.c:33
-msgid "Generic PS2 Wheel Mouse"
-msgstr "Nespecifa PS2 RadoMuso"
-
-#: ../../mouse.pm_.c:34
-msgid "GlidePoint"
-msgstr "GlidePoint"
-
-#: ../../mouse.pm_.c:36 ../../mouse.pm_.c:63
-msgid "Kensington Thinking Mouse"
-msgstr "Kensington Thinking Mouse"
-
-#: ../../mouse.pm_.c:37 ../../mouse.pm_.c:59
-msgid "Genius NetMouse"
-msgstr "Genius NetMouse"
-
-#: ../../mouse.pm_.c:38
-msgid "Genius NetScroll"
-msgstr "Genius NetScroll"
-
-#: ../../mouse.pm_.c:43 ../../mouse.pm_.c:68
-msgid "1 button"
-msgstr "1 butona"
-
-#: ../../mouse.pm_.c:44 ../../mouse.pm_.c:51
-msgid "Generic 2 Button Mouse"
-msgstr "Nespecifa 2 Butona Muso"
-
-#: ../../mouse.pm_.c:45
-msgid "Generic"
-msgstr "Genera"
-
-#: ../../mouse.pm_.c:46
-msgid "Wheel"
-msgstr "Rado"
-
-#: ../../mouse.pm_.c:49
-msgid "serial"
-msgstr "seria"
-
-#: ../../mouse.pm_.c:52
-msgid "Generic 3 Button Mouse"
-msgstr "Nespecifa 3 Butona Muso"
-
-#: ../../mouse.pm_.c:53
-msgid "Microsoft IntelliMouse"
-msgstr "Mikrosofta IntelliMouse"
-
-#: ../../mouse.pm_.c:54
-msgid "Logitech MouseMan"
-msgstr "Loųiteka MouseMan"
-
-#: ../../mouse.pm_.c:55
-msgid "Mouse Systems"
-msgstr "Mouse Systems"
-
-#: ../../mouse.pm_.c:57
-msgid "Logitech CC Series"
-msgstr "Loųiteka CC serio"
-
-#: ../../mouse.pm_.c:58
-msgid "Logitech MouseMan+/FirstMouse+"
-msgstr "Loųiteka MouseMan+/FirstMouse+"
-
-#: ../../mouse.pm_.c:60
-msgid "MM Series"
-msgstr "MM Serio"
-
-#: ../../mouse.pm_.c:61
-msgid "MM HitTablet"
-msgstr "MM HitTablet"
-
-#: ../../mouse.pm_.c:62
-msgid "Logitech Mouse (serial, old C7 type)"
-msgstr "Loųiteka Muso (seria, malnova C7 speco)"
-
-#: ../../mouse.pm_.c:66
-#, fuzzy
-msgid "busmouse"
-msgstr "Neniu Muso"
-
-#: ../../mouse.pm_.c:69
-msgid "2 buttons"
-msgstr "2 butonoj"
-
-#: ../../mouse.pm_.c:70
-msgid "3 buttons"
-msgstr "3 butonoj"
-
-#: ../../mouse.pm_.c:73
-msgid "none"
-msgstr "neniu"
-
-#: ../../mouse.pm_.c:75
-msgid "No mouse"
-msgstr "Neniu Muso"
-
-#: ../../mouse.pm_.c:499
-msgid "Please test the mouse"
-msgstr "Bonvole, provu la muson"
-
-#: ../../mouse.pm_.c:500
-#, fuzzy
-msgid "To activate the mouse,"
-msgstr "Bonvole, provu la muson"
-
-#: ../../mouse.pm_.c:501
-msgid "MOVE YOUR WHEEL!"
-msgstr "MOVU VIAN RADON!"
-
-#: ../../my_gtk.pm_.c:651
-msgid "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"
-msgstr ""
-
-#: ../../my_gtk.pm_.c:686
-msgid "Finish"
-msgstr "Finu"
-
-#: ../../my_gtk.pm_.c:686 ../../printerdrake.pm_.c:1588
-msgid "Next ->"
-msgstr "Sekvanta ->"
-
-#: ../../my_gtk.pm_.c:687 ../../printerdrake.pm_.c:1586
-msgid "<- Previous"
-msgstr "<- Antaża"
-
-#: ../../my_gtk.pm_.c:1019
-msgid "Is this correct?"
-msgstr "Ęu tio ęi pravas?"
-
-#: ../../network/adsl.pm_.c:19 ../../network/ethernet.pm_.c:36
-msgid "Connect to the Internet"
-msgstr "Konektu al la Interreto"
-
-#: ../../network/adsl.pm_.c:20
-#, fuzzy
-msgid ""
-"The most common way to connect with adsl is pppoe.\n"
-"Some connections use pptp, a few ones use dhcp.\n"
-"If you don't know, choose 'use pppoe'"
-msgstr ""
-"La plej ofte uzata maniero por konekti kun ADSL estas dhcp + pppoe.\n"
-"Tamen, ekzistas konektojn kiuj nur uzas dhcp.\n"
-"Se vi ne scias, elektu 'uzu pppoe'"
-
-#: ../../network/adsl.pm_.c:22
-msgid "Alcatel speedtouch usb"
-msgstr ""
-
-#: ../../network/adsl.pm_.c:22
-msgid "use dhcp"
-msgstr "uzu dhcp"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pppoe"
-msgstr "uzu pppoe"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pptp"
-msgstr "uzu pptp"
-
-#: ../../network/ethernet.pm_.c:37
-msgid ""
-"Which dhcp client do you want to use?\n"
-"Default is dhcpcd"
-msgstr ""
-"Kiun dhcp-an klienton vi deziras uzi?\n"
-"La defażlto estas dhcpcd"
-
-#: ../../network/ethernet.pm_.c:88
-#, fuzzy
-msgid ""
-"No ethernet network adapter has been detected on your system.\n"
-"I cannot set up this connection type."
-msgstr ""
-"Mi ne detektas eterretan retadaptilom sur via sistemo. Bonvole lanęu la\n"
-"aparatokonfigurilon."
-
-#: ../../network/ethernet.pm_.c:92 ../../standalone/drakgw_.c:252
-msgid "Choose the network interface"
-msgstr "Elektu la retan interfacon"
-
-#: ../../network/ethernet.pm_.c:93
-msgid ""
-"Please choose which network adapter you want to use to connect to Internet"
-msgstr ""
-"Bonvole elektu kiun retadaptilon vi deziras uzi por konekti al la interreto"
-
-#: ../../network/ethernet.pm_.c:178
-msgid "no network card found"
-msgstr "neniu retkarto trovita"
-
-#: ../../network/ethernet.pm_.c:202 ../../network/network.pm_.c:360
-msgid "Configuring network"
-msgstr "Konfiguras reto"
-
-#: ../../network/ethernet.pm_.c:203
-msgid ""
-"Please enter your host name if you know it.\n"
-"Some DHCP servers require the hostname to work.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''."
-msgstr ""
-"Bonvole enigu vian požtejon se vi scias ųin.\n"
-"Iuj DHCP-aj serviloj bezonas požtejon por funkcii.\n"
-"Via požtejo devus esti plene specifita požtejo,\n"
-"ekzemple ``miakomputilo.mialaborejo.miafirmao.com''."
-
-#: ../../network/ethernet.pm_.c:207 ../../network/network.pm_.c:365
-msgid "Host name"
-msgstr "Požtejo"
-
-#: ../../network/isdn.pm_.c:21 ../../network/isdn.pm_.c:44
-#: ../../network/netconnect.pm_.c:95 ../../network/netconnect.pm_.c:109
-#: ../../network/netconnect.pm_.c:164 ../../network/netconnect.pm_.c:175
-#: ../../network/netconnect.pm_.c:202 ../../network/netconnect.pm_.c:225
-#: ../../network/netconnect.pm_.c:233
-#, fuzzy
-msgid "Network Configuration Wizard"
-msgstr "ISDN-a Konfigura¼on"
-
-#: ../../network/isdn.pm_.c:22
-#, fuzzy
-msgid "External ISDN modem"
-msgstr "Interna ISDN-karto"
-
-#: ../../network/isdn.pm_.c:22
-msgid "Internal ISDN card"
-msgstr "Interna ISDN-karto"
-
-#: ../../network/isdn.pm_.c:22
-msgid "What kind is your ISDN connection?"
-msgstr "Kia estas via ISDN-a konekta¼o?"
-
-#: ../../network/isdn.pm_.c:45
-msgid ""
-"Which ISDN configuration do you prefer?\n"
-"\n"
-"* The Old configuration uses isdn4net. It contains powerfull\n"
-" tools, but is tricky to configure, and not standard.\n"
-"\n"
-"* The New configuration is easier to understand, more\n"
-" standard, but with less tools.\n"
-"\n"
-"We recommand the light configuration.\n"
-msgstr ""
-
-#: ../../network/isdn.pm_.c:54
-#, fuzzy
-msgid "New configuration (isdn-light)"
-msgstr "Konfigura¼o de barilo detektata!"
-
-#: ../../network/isdn.pm_.c:54
-#, fuzzy
-msgid "Old configuration (isdn4net)"
-msgstr "Konfigura¼o de barilo detektata!"
-
-#: ../../network/isdn.pm_.c:170 ../../network/isdn.pm_.c:188
-#: ../../network/isdn.pm_.c:198 ../../network/isdn.pm_.c:205
-#: ../../network/isdn.pm_.c:215
-msgid "ISDN Configuration"
-msgstr "ISDN-a Konfigura¼on"
-
-#: ../../network/isdn.pm_.c:170
-msgid ""
-"Select your provider.\n"
-" If it's not in the list, choose Unlisted"
-msgstr ""
-"Elektu vian interretprovizanton.\n"
-" Se ųin ne estas en la listo, elektu Nelistiųitan"
-
-#: ../../network/isdn.pm_.c:183
-#, fuzzy
-msgid "Europe protocol"
-msgstr "Protokolo"
-
-#: ../../network/isdn.pm_.c:183
-#, fuzzy
-msgid "Europe protocol (EDSS1)"
-msgstr "Eżropo (EDSS1)"
-
-#: ../../network/isdn.pm_.c:185
-#, fuzzy
-msgid "Protocol for the rest of the world"
-msgstr "La cetero de la mondo"
-
-#: ../../network/isdn.pm_.c:185
-#, fuzzy
-msgid ""
-"Protocol for the rest of the world \n"
-" no D-Channel (leased lines)"
-msgstr ""
-"La cetero de la mondo \n"
-" neniom da D-Kanelo (lukontraktataj lineoj)"
-
-#: ../../network/isdn.pm_.c:189
-msgid "Which protocol do you want to use ?"
-msgstr "Kiun protokolon vi deziras uzi?"
-
-#: ../../network/isdn.pm_.c:199
-msgid "What kind of card do you have?"
-msgstr "Kiun specon de karto vi havas?"
-
-#: ../../network/isdn.pm_.c:200
-msgid "I don't know"
-msgstr "Mi ne scias"
-
-#: ../../network/isdn.pm_.c:200
-msgid "ISA / PCMCIA"
-msgstr "ISA / PCMCIA"
-
-#: ../../network/isdn.pm_.c:200
-msgid "PCI"
-msgstr "PCI"
-
-#: ../../network/isdn.pm_.c:206
-msgid ""
-"\n"
-"If you have an ISA card, the values on the next screen should be right.\n"
-"\n"
-"If you have a PCMCIA card, you have to know the irq and io of your card.\n"
-msgstr ""
-"\n"
-"Se via havas ISA-an karton, la valoro sur la sekvanta ekrano devus esti "
-"ųusta.\n"
-"\n"
-"Se vi havas PCMCIA-an karton, vi bezonas scii la IRQ-o kaj I/O (Eneligo)\n"
-"por via karto.\n"
-
-#: ../../network/isdn.pm_.c:210
-msgid "Abort"
-msgstr "Ęesigu"
-
-#: ../../network/isdn.pm_.c:210
-msgid "Continue"
-msgstr "Ęu mi devus dażri?"
-
-#: ../../network/isdn.pm_.c:216
-msgid "Which is your ISDN card ?"
-msgstr "Kiu estas via ISDN-a karto?"
-
-#: ../../network/isdn.pm_.c:235
-msgid ""
-"I have detected an ISDN PCI Card, but I don't know the type. Please select "
-"one PCI card on the next screen."
-msgstr ""
-"Mi detektis ISDN-an PCI-an Karton, sed mi ne scias la specon. Bonvole "
-"elektu\n"
-"unu el la PCI-aj kartojn sur la sekvanta ekrano."
-
-#: ../../network/isdn.pm_.c:244
-msgid "No ISDN PCI card found. Please select one on the next screen."
-msgstr ""
-"Neniu ISDN-a PCI-a karto trovata. Bonvole elektu unu el la PCI-aj kartojn "
-"sur\n"
-"la sekvanta ekrano."
-
-#: ../../network/modem.pm_.c:39
-msgid "Please choose which serial port your modem is connected to."
-msgstr "Bonvole, elektu al kiu seria pordo estas via modemo konektata?"
-
-#: ../../network/modem.pm_.c:44
-msgid "Dialup options"
-msgstr "Telefon-konektaj opcioj"
-
-#: ../../network/modem.pm_.c:45 ../../standalone/draknet_.c:622
-msgid "Connection name"
-msgstr "Nomo de konekto"
-
-#: ../../network/modem.pm_.c:46 ../../standalone/draknet_.c:623
-msgid "Phone number"
-msgstr "Telefonnumero"
-
-#: ../../network/modem.pm_.c:47 ../../standalone/draknet_.c:624
-msgid "Login ID"
-msgstr "Salutnomo"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "CHAP"
-msgstr ""
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "PAP"
-msgstr "PAP (Pasvorta Ażtentikigada Protokolo)"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Script-based"
-msgstr "Programeto-bazata"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Terminal-based"
-msgstr "Finaparato-bazata"
-
-#: ../../network/modem.pm_.c:50 ../../standalone/draknet_.c:627
-msgid "Domain name"
-msgstr "Domajna nomo"
-
-#: ../../network/modem.pm_.c:51 ../../standalone/draknet_.c:628
-msgid "First DNS Server (optional)"
-msgstr "Unu DNS-a Servilo (nedeviga)"
-
-#: ../../network/modem.pm_.c:52 ../../standalone/draknet_.c:629
-msgid "Second DNS Server (optional)"
-msgstr "Du DNS-a Servilo (nedeviga)"
-
-#: ../../network/netconnect.pm_.c:34
-msgid ""
-"\n"
-"You can disconnect or reconfigure your connection."
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:34 ../../network/netconnect.pm_.c:37
-#, fuzzy
-msgid ""
-"\n"
-"You can reconfigure your connection."
-msgstr "Konfiguru interretan konekta¼on"
-
-#: ../../network/netconnect.pm_.c:34
-#, fuzzy
-msgid "You are currently connected to internet."
-msgstr "Kiel vi deziras konekti al la Interreto?"
-
-#: ../../network/netconnect.pm_.c:37
-#, fuzzy
-msgid ""
-"\n"
-"You can connect to Internet or reconfigure your connection."
-msgstr "Konektu al la Interreto / Konfiguru lokan Reton"
-
-#: ../../network/netconnect.pm_.c:37
-#, fuzzy
-msgid "You are not currently connected to Internet."
-msgstr "Kiel vi deziras konekti al la Interreto?"
-
-#: ../../network/netconnect.pm_.c:41
-msgid "Connect"
-msgstr "Konektu"
-
-#: ../../network/netconnect.pm_.c:43
-msgid "Disconnect"
-msgstr "Malkonektu"
-
-#: ../../network/netconnect.pm_.c:45
-#, fuzzy
-msgid "Configure the connection"
-msgstr "Konfiguru retumon"
-
-#: ../../network/netconnect.pm_.c:50
-msgid "Internet connection & configuration"
-msgstr "Interreta konekta¼o kaj konfiguro"
-
-#: ../../network/netconnect.pm_.c:100
-#, fuzzy, c-format
-msgid "We are now going to configure the %s connection."
-msgstr "Konfiguru interretan konekta¼on"
-
-#: ../../network/netconnect.pm_.c:109
-#, fuzzy, c-format
-msgid ""
-"\n"
-"\n"
-"\n"
-"We are now going to configure the %s connection.\n"
-"\n"
-"\n"
-"Press OK to continue."
-msgstr "Konfiguru interretan konekta¼on"
-
-#: ../../network/netconnect.pm_.c:138 ../../network/netconnect.pm_.c:252
-#: ../../network/netconnect.pm_.c:271 ../../network/tools.pm_.c:57
-msgid "Network Configuration"
-msgstr "Reta Konfigura¼o"
-
-#: ../../network/netconnect.pm_.c:139
-msgid ""
-"Because you are doing a network installation, your network is already "
-"configured.\n"
-"Click on Ok to keep your configuration, or cancel to reconfigure your "
-"Internet & Network connection.\n"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:165
-msgid ""
-"Welcome to The Network Configuration Wizard\n"
-"\n"
-"We are about to configure your internet/network connection.\n"
-"If you don't want to use the auto detection, deselect the checkbox.\n"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:167
-#, fuzzy
-msgid "Choose the profile to configure"
-msgstr "Elektu la defażltan uzulon:"
-
-#: ../../network/netconnect.pm_.c:168
-msgid "Use auto detection"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:175
-msgid "Detecting devices..."
-msgstr "Detektas aparatojn..."
-
-#: ../../network/netconnect.pm_.c:186 ../../network/netconnect.pm_.c:195
-#, fuzzy
-msgid "Normal modem connection"
-msgstr "Konfiguru interretan konekta¼on"
-
-#: ../../network/netconnect.pm_.c:186 ../../network/netconnect.pm_.c:195
-#, fuzzy, c-format
-msgid "detected on port %s"
-msgstr "Duobla surmetingo %s"
-
-#: ../../network/netconnect.pm_.c:187 ../../network/netconnect.pm_.c:196
-#, fuzzy
-msgid "ISDN connection"
-msgstr "Konfiguru interretan konekta¼on"
-
-#: ../../network/netconnect.pm_.c:187 ../../network/netconnect.pm_.c:196
-#, c-format
-msgid "detected %s"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:188 ../../network/netconnect.pm_.c:197
-#, fuzzy
-msgid "ADSL connection"
-msgstr "LAN Konfigura¼o"
-
-#: ../../network/netconnect.pm_.c:188 ../../network/netconnect.pm_.c:197
-#, fuzzy, c-format
-msgid "detected on interface %s"
-msgstr "Reta interfaco"
-
-#: ../../network/netconnect.pm_.c:189 ../../network/netconnect.pm_.c:198
-#, fuzzy
-msgid "Cable connection"
-msgstr "Konfiguru interretan konekta¼on"
-
-#: ../../network/netconnect.pm_.c:189 ../../network/netconnect.pm_.c:198
-#, fuzzy
-msgid "cable connection detected"
-msgstr "Konfiguru interretan konekta¼on"
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-msgid "LAN connection"
-msgstr "LAN Konfigura¼o"
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-msgid "ethernet card(s) detected"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:202
-#, fuzzy
-msgid "Choose the connection you want to configure"
-msgstr "Elektu la ilon kiun vi deziras instali"
-
-#: ../../network/netconnect.pm_.c:226
-msgid ""
-"You have configured multiple ways to connect to the Internet.\n"
-"Choose the one you want to use.\n"
-"\n"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:227
-#, fuzzy
-msgid "Internet connection"
-msgstr "Disdividado de Interreta Konekto"
-
-#: ../../network/netconnect.pm_.c:233
-msgid "Do you want to start the connection at boot?"
-msgstr "Ęu vi deziras starti vian konekta¼on je startado de la sistemo?"
-
-#: ../../network/netconnect.pm_.c:247
-msgid "Network configuration"
-msgstr "Reta Konfigura¼o"
-
-#: ../../network/netconnect.pm_.c:248
-msgid "The network needs to be restarted"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:252
-#, fuzzy, c-format
-msgid ""
-"A problem occured while restarting the network: \n"
-"\n"
-"%s"
-msgstr "Ęu vi deziras provi la konfigura¼on?"
-
-#: ../../network/netconnect.pm_.c:261
-msgid ""
-"Congratulations, the network and Internet configuration is finished.\n"
-"The configuration will now be applied to your system.\n"
-"\n"
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:265
-msgid ""
-"After this is done, we recommend that you restart your X environment to "
-"avoid any hostname-related problems."
-msgstr ""
-
-#: ../../network/netconnect.pm_.c:266
-msgid ""
-"Problems occured during configuration.\n"
-"Test your connection via net_monitor or mcc. If your connection doesn't "
-"work, you might want to relaunch the configuration"
-msgstr ""
-
-#: ../../network/network.pm_.c:292
-#, fuzzy
-msgid ""
-"WARNING: This device has been previously configured to connect to the "
-"Internet.\n"
-"Simply accept to keep this device configured.\n"
-"Modifying the fields below will override this configuration."
-msgstr ""
-"AVERTO: Ęi tiu aparato estis antaże konfigurata por konekti al la "
-"Interreto.\n"
-"Simple klaki JES por teni la konfiguron de ęi tiu aparato.\n"
-"Se vi modifos la subajn kampojn, vi žanųos ęi tiun konfiguron."
-
-#: ../../network/network.pm_.c:297
-msgid ""
-"Please enter the IP configuration for this machine.\n"
-"Each item should be entered as an IP address in dotted-decimal\n"
-"notation (for example, 1.2.3.4)."
-msgstr ""
-"Bonvole enigu la IP-an konfigurājon por ęi tiu komputilo.\n"
-"Ęiu ero devus esti enigata kiel IP-adreson en punktita-decimala notacio\n"
-"(ekzemple, 1.2.3.4)."
-
-#: ../../network/network.pm_.c:306 ../../network/network.pm_.c:307
-#, c-format
-msgid "Configuring network device %s"
-msgstr "Konfiguras retan aparaton %s"
-
-#: ../../network/network.pm_.c:307
-#, fuzzy, c-format
-msgid " (driver %s)"
-msgstr "XFree86 pelilo: %s\n"
-
-#: ../../network/network.pm_.c:309 ../../standalone/draknet_.c:232
-#: ../../standalone/draknet_.c:468
-msgid "IP address"
-msgstr "IP-adreso"
-
-#: ../../network/network.pm_.c:310 ../../standalone/draknet_.c:469
-msgid "Netmask"
-msgstr "Retmasko"
-
-#: ../../network/network.pm_.c:311
-msgid "(bootp/dhcp)"
-msgstr "(bootp/dhcp)"
-
-#: ../../network/network.pm_.c:311
-msgid "Automatic IP"
-msgstr "Ażtomata IP"
-
-#: ../../network/network.pm_.c:332 ../../printerdrake.pm_.c:712
-msgid "IP address should be in format 1.2.3.4"
-msgstr "IP-adreso devus esti en la notacio 1.2.3.4"
-
-#: ../../network/network.pm_.c:361
-msgid ""
-"Please enter your host name.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''.\n"
-"You may also enter the IP address of the gateway if you have one"
-msgstr ""
-"Bonvole enigu vian požtejon.\n"
-"Via požtejo devus esti plene specifita požtejo,\n"
-"ekzemple ``miakomputilo.mialaborejo.miafirmao.com''.\n"
-"Vi ankaż povas enigi la IP-adreson de la prokura kluzo se via havas unu."
-
-#: ../../network/network.pm_.c:366
-msgid "DNS server"
-msgstr "DNA servilo"
-
-#: ../../network/network.pm_.c:367
-#, c-format
-msgid "Gateway (e.g. %s)"
-msgstr ""
-
-#: ../../network/network.pm_.c:369
-msgid "Gateway device"
-msgstr "Prokura kluzaparato"
-
-#: ../../network/network.pm_.c:381
-msgid "Proxies configuration"
-msgstr "Konfigurado de prokuraj serviloj"
-
-#: ../../network/network.pm_.c:382
-msgid "HTTP proxy"
-msgstr "HTTP prokura servilo"
-
-#: ../../network/network.pm_.c:383
-msgid "FTP proxy"
-msgstr "FTP prokura servilo"
-
-#: ../../network/network.pm_.c:384
-msgid "Track network card id (usefull for laptops)"
-msgstr ""
-
-#: ../../network/network.pm_.c:387
-msgid "Proxy should be http://..."
-msgstr "Prokura servilo devus esti http://..."
-
-#: ../../network/network.pm_.c:388
-msgid "Proxy should be ftp://..."
-msgstr "Prokura servilo devus esti ftp://..."
-
-#: ../../network/tools.pm_.c:39
-msgid "Internet configuration"
-msgstr "Interreta Konfigurado"
-
-#: ../../network/tools.pm_.c:40
-msgid "Do you want to try to connect to the Internet now?"
-msgstr "Ęu vi deziras provi konekti al la interreto nun?"
-
-#: ../../network/tools.pm_.c:44 ../../standalone/draknet_.c:197
-#, fuzzy
-msgid "Testing your connection..."
-msgstr "Konfiguru interretan konekta¼on"
-
-#: ../../network/tools.pm_.c:50
-#, fuzzy
-msgid "The system is now connected to Internet."
-msgstr "Kiel vi deziras konekti al la Interreto?"
-
-#: ../../network/tools.pm_.c:51
-msgid "For Security reason, it will be disconnected now."
-msgstr ""
-
-#: ../../network/tools.pm_.c:52
-#, fuzzy
-msgid ""
-"The system doesn't seem to be connected to internet.\n"
-"Try to reconfigure your connection."
-msgstr "Konektu al la Interreto / Konfiguru lokan Reton"
-
-#: ../../network/tools.pm_.c:76
-msgid "Connection Configuration"
-msgstr "Konfigurado de Konekto"
-
-#: ../../network/tools.pm_.c:77
-msgid "Please fill or check the field below"
-msgstr "Bonvole plenigu aż marku la suban kampon"
-
-#: ../../network/tools.pm_.c:79 ../../standalone/draknet_.c:608
-msgid "Card IRQ"
-msgstr "IRQ de Karto"
-
-#: ../../network/tools.pm_.c:80 ../../standalone/draknet_.c:609
-msgid "Card mem (DMA)"
-msgstr "Memoro de Karto (DMA)"
-
-#: ../../network/tools.pm_.c:81 ../../standalone/draknet_.c:610
-msgid "Card IO"
-msgstr "I/O (Eneligo) de Karto"
-
-#: ../../network/tools.pm_.c:82 ../../standalone/draknet_.c:611
-msgid "Card IO_0"
-msgstr "I/O 0 (Eneligo 0) de Karto"
-
-#: ../../network/tools.pm_.c:83 ../../standalone/draknet_.c:612
-msgid "Card IO_1"
-msgstr "I/O 1 (Eneligo 1) de Karto"
-
-#: ../../network/tools.pm_.c:84 ../../standalone/draknet_.c:613
-msgid "Your personal phone number"
-msgstr "Via persona telefonnumero"
-
-#: ../../network/tools.pm_.c:85 ../../standalone/draknet_.c:614
-msgid "Provider name (ex provider.net)"
-msgstr "Nomo de interretprovizanto (ekz-e provizanto.net)"
-
-#: ../../network/tools.pm_.c:86 ../../standalone/draknet_.c:615
-msgid "Provider phone number"
-msgstr "Telefonnumero de interretprovizanto"
-
-#: ../../network/tools.pm_.c:87 ../../standalone/draknet_.c:616
-msgid "Provider dns 1 (optional)"
-msgstr "Provizanto DNS 1 (nedeviga)"
-
-#: ../../network/tools.pm_.c:88 ../../standalone/draknet_.c:617
-msgid "Provider dns 2 (optional)"
-msgstr "Provizanto DNS 2 (nedeviga)"
-
-#: ../../network/tools.pm_.c:89
-#, fuzzy
-msgid "Choose your country"
-msgstr "Elektu vian klavaron"
-
-#: ../../network/tools.pm_.c:90 ../../standalone/draknet_.c:620
-msgid "Dialing mode"
-msgstr "Diskuma modalo"
-
-#: ../../network/tools.pm_.c:91 ../../standalone/draknet_.c:632
-#, fuzzy
-msgid "Connection speed"
-msgstr "Speco de konekto"
-
-#: ../../network/tools.pm_.c:92 ../../standalone/draknet_.c:633
-#, fuzzy
-msgid "Connection timeout (in sec)"
-msgstr "Speco de konekto"
-
-#: ../../network/tools.pm_.c:93 ../../standalone/draknet_.c:618
-msgid "Account Login (user name)"
-msgstr "Konta Salutnomo (uzula nomo)"
-
-#: ../../network/tools.pm_.c:94 ../../standalone/draknet_.c:619
-msgid "Account Password"
-msgstr "Konta Pasvorto"
-
-#: ../../partition_table.pm_.c:600
-msgid "mount failed: "
-msgstr "muntado malsukcesis: "
-
-#: ../../partition_table.pm_.c:664
-msgid "Extended partition not supported on this platform"
-msgstr "Ęi tiu platformo ne subtenas etendatajn subdiskojn"
-
-#: ../../partition_table.pm_.c:682
-msgid ""
-"You have a hole in your partition table but I can't use it.\n"
-"The only solution is to move your primary partitions to have the hole next "
-"to the extended partitions"
-msgstr ""
-"Vi havas truon en via subdisktabelo sed mi ne povas uzi ųin.\n"
-"La sola solvo estas movi viajn ęefajn subdiskojn por situigi la truon\n"
-"apud la etendataj subdiskoj."
-
-#: ../../partition_table.pm_.c:770
-#, c-format
-msgid "Restoring from file %s failed: %s"
-msgstr "Restażris el dosiero %s malsukcesis: %s"
-
-#: ../../partition_table.pm_.c:772
-msgid "Bad backup file"
-msgstr "Malbona rezerva dosiero"
-
-#: ../../partition_table.pm_.c:794
-#, c-format
-msgid "Error writing to file %s"
-msgstr "Eraro skribante al dosiero %s"
-
-#: ../../partition_table_raw.pm_.c:186
-msgid ""
-"Something bad is happening on your drive. \n"
-"A test to check the integrity of data has failed. \n"
-"It means writing anything on the disk will end up with random trash"
-msgstr ""
-
-#: ../../pkgs.pm_.c:24
-msgid "must have"
-msgstr "havenda"
-
-#: ../../pkgs.pm_.c:25
-msgid "important"
-msgstr "grava(j)"
-
-#: ../../pkgs.pm_.c:26
-msgid "very nice"
-msgstr "tre agrabla(j)"
-
-#: ../../pkgs.pm_.c:27
-msgid "nice"
-msgstr "agrabla(j)"
-
-#: ../../pkgs.pm_.c:28
-msgid "maybe"
-msgstr "elbe"
-
-#: ../../printer.pm_.c:23
-msgid "CUPS - Common Unix Printing System"
-msgstr ""
-
-#: ../../printer.pm_.c:24
-msgid "LPRng - LPR New Generation"
-msgstr ""
-
-#: ../../printer.pm_.c:25
-msgid "LPD - Line Printer Daemon"
-msgstr ""
-
-#: ../../printer.pm_.c:26
-msgid "PDQ - Print, Don't Queue"
-msgstr ""
-
-#: ../../printer.pm_.c:32 ../../printer.pm_.c:871
-msgid "CUPS"
-msgstr ""
-
-#: ../../printer.pm_.c:33
-msgid "LPRng"
-msgstr ""
-
-#: ../../printer.pm_.c:34
-msgid "LPD"
-msgstr ""
-
-#: ../../printer.pm_.c:35
-msgid "PDQ"
-msgstr ""
-
-#: ../../printer.pm_.c:47
-msgid "Local printer"
-msgstr "Loka printilo"
-
-#: ../../printer.pm_.c:48
-msgid "Remote printer"
-msgstr "Malproksima printilo"
-
-#: ../../printer.pm_.c:49
-#, fuzzy
-msgid "Printer on remote CUPS server"
-msgstr "Malproksima CUPS-a servilo"
-
-#: ../../printer.pm_.c:50 ../../printerdrake.pm_.c:734
-#, fuzzy
-msgid "Printer on remote lpd server"
-msgstr "Malproksimaj lpd servilo"
-
-#: ../../printer.pm_.c:51
-msgid "Network printer (TCP/Socket)"
-msgstr "Reta Printilo (TCP/ingo)"
-
-#: ../../printer.pm_.c:52
-#, fuzzy
-msgid "Printer on SMB/Windows 95/98/NT server"
-msgstr "SMB/Vindozo 95/98/NT"
-
-#: ../../printer.pm_.c:53
-#, fuzzy
-msgid "Printer on NetWare server"
-msgstr "Printservilo"
-
-#: ../../printer.pm_.c:54 ../../printerdrake.pm_.c:738
-#, fuzzy
-msgid "Enter a printer device URI"
-msgstr "Printila Aparato URI"
-
-#: ../../printer.pm_.c:55
-msgid "Pipe job into a command"
-msgstr ""
-
-#: ../../printer.pm_.c:504 ../../printer.pm_.c:695 ../../printer.pm_.c:1017
-#: ../../printerdrake.pm_.c:1665 ../../printerdrake.pm_.c:2730
-msgid "Unknown model"
-msgstr ""
-
-#: ../../printer.pm_.c:532
-#, fuzzy
-msgid "Local Printers"
-msgstr "Loka printilo"
-
-#: ../../printer.pm_.c:534 ../../printer.pm_.c:872
-#, fuzzy
-msgid "Remote Printers"
-msgstr "Malproksima printilo"
-
-#: ../../printer.pm_.c:541 ../../printerdrake.pm_.c:248
-#, c-format
-msgid " on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printer.pm_.c:544 ../../printerdrake.pm_.c:250
-#, c-format
-msgid ", USB printer \\/*%s"
-msgstr ""
-
-#: ../../printer.pm_.c:549
-#, c-format
-msgid ", multi-function device on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printer.pm_.c:552
-msgid ", multi-function device on USB"
-msgstr ""
-
-#: ../../printer.pm_.c:554
-msgid ", multi-function device on HP JetDirect"
-msgstr ""
-
-#: ../../printer.pm_.c:556
-msgid ", multi-function device"
-msgstr ""
-
-#: ../../printer.pm_.c:559
-#, fuzzy, c-format
-msgid ", printing to %s"
-msgstr "Eraro skribante al dosiero %s"
-
-#: ../../printer.pm_.c:561
-#, c-format
-msgid "on LPD server \"%s\", printer \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:563
-#, c-format
-msgid ", TCP/IP host \"%s\", port %s"
-msgstr ""
-
-#: ../../printer.pm_.c:567
-#, c-format
-msgid "on Windows server \"%s\", share \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:571
-#, c-format
-msgid "on Novell server \"%s\", printer \"%s\""
-msgstr ""
-
-#: ../../printer.pm_.c:573
-#, c-format
-msgid ", using command %s"
-msgstr ""
-
-#: ../../printer.pm_.c:692 ../../printerdrake.pm_.c:1136
-msgid "Raw printer (No driver)"
-msgstr ""
-
-#: ../../printer.pm_.c:841
-#, fuzzy, c-format
-msgid "(on %s)"
-msgstr "(modulo %s)"
-
-#: ../../printer.pm_.c:843
-msgid "(on this machine)"
-msgstr ""
-
-#: ../../printer.pm_.c:868
-#, fuzzy, c-format
-msgid "On CUPS server \"%s\""
-msgstr "IP de SMB servilo"
-
-#: ../../printer.pm_.c:874 ../../printerdrake.pm_.c:2391
-#: ../../printerdrake.pm_.c:2402 ../../printerdrake.pm_.c:2618
-#: ../../printerdrake.pm_.c:2670 ../../printerdrake.pm_.c:2697
-#: ../../printerdrake.pm_.c:2867 ../../printerdrake.pm_.c:2869
-msgid " (Default)"
-msgstr " (Defażlta)"
-
-#: ../../printerdrake.pm_.c:22
-msgid "Select Printer Connection"
-msgstr "Elektu Printilan Konekton"
-
-#: ../../printerdrake.pm_.c:23
-msgid "How is the printer connected?"
-msgstr "Kiel estas la printilo konektata?"
-
-#: ../../printerdrake.pm_.c:25
-#, fuzzy
-msgid ""
-"\n"
-"Printers on remote CUPS servers you do not have to configure here; these "
-"printers will be automatically detected."
-msgstr ""
-"Kun malproksima CUPS servilo, vi ne devas konfiguri iun printilon\n"
-"ęi tie; printiloj estos ażtomate dektektataj. Se vi havas dubojn,\n"
-"elektu \"Malproksima CUPS servilo\"."
-
-#: ../../printerdrake.pm_.c:69 ../../printerdrake.pm_.c:2454
-#, fuzzy
-msgid "CUPS configuration"
-msgstr "LAN Konfigura¼o"
-
-#: ../../printerdrake.pm_.c:70 ../../printerdrake.pm_.c:2455
-#, fuzzy
-msgid "Specify CUPS server"
-msgstr "Malproksima CUPS-a servilo"
-
-#: ../../printerdrake.pm_.c:71
-msgid ""
-"To get access to printers on remote CUPS servers in your local network you "
-"do not have to configure anything; the CUPS servers inform your machine "
-"automatically about their printers. All printers currently known to your "
-"machine are listed in the \"Remote printers\" section in the main window of "
-"Printerdrake. When your CUPS server is not in your local network, you have "
-"to enter the CUPS server IP address and optionally the port number to get "
-"the printer information from the server, otherwise leave these fields blank."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:72
-msgid ""
-"\n"
-"Normally, CUPS is automatically configured according to your network "
-"environment, so that you can access the printers on the CUPS servers in your "
-"local network. If this does not work correctly, turn off \"Automatic CUPS "
-"configuration\" and edit your file /etc/cups/cupsd.conf manually. Do not "
-"forget to restart CUPS afterwards (command: \"service cups restart\")."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:76
-#, fuzzy
-msgid "The IP address should look like 192.168.1.20"
-msgstr "IP-adreso devus esti en la notacio 1.2.3.4"
-
-#: ../../printerdrake.pm_.c:80 ../../printerdrake.pm_.c:862
-msgid "The port number should be an integer!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:87
-#, fuzzy
-msgid "CUPS server IP"
-msgstr "IP de SMB servilo"
-
-#: ../../printerdrake.pm_.c:88 ../../printerdrake.pm_.c:855
-msgid "Port"
-msgstr "Pordo"
-
-#: ../../printerdrake.pm_.c:90
-#, fuzzy
-msgid "Automatic CUPS configuration"
-msgstr "Post-instala konfigurado"
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-#, fuzzy
-msgid "Detecting devices ..."
-msgstr "Detektas aparatojn..."
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-msgid "Test ports"
-msgstr "Provu pordojn"
-
-#: ../../printerdrake.pm_.c:167 ../../printerdrake.pm_.c:2437
-#: ../../printerdrake.pm_.c:2556
-#, fuzzy
-msgid "Add a new printer"
-msgstr "Neniu printilo"
-
-#: ../../printerdrake.pm_.c:168
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard allows you to install local or remote printers to be used from "
-"this machine and also from other machines in the network.\n"
-"\n"
-"It asks you for all necessary information to set up the printer and gives "
-"you access to all available printer drivers, driver options, and printer "
-"connection types."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:176 ../../printerdrake.pm_.c:203
-#: ../../printerdrake.pm_.c:378 ../../printerdrake.pm_.c:393
-#: ../../printerdrake.pm_.c:403 ../../printerdrake.pm_.c:466
-#, fuzzy
-msgid "Local Printer"
-msgstr "Loka printilo"
-
-#: ../../printerdrake.pm_.c:177
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard will help you to install your printer(s) connected to this "
-"computer.\n"
-"\n"
-"Please plug in your printer(s) on this computer and turn it/them on. Click "
-"on \"Next\" when you are ready, and on \"Cancel\" when you do not want to "
-"set up your printer(s) now.\n"
-"\n"
-"Note that some computers can crash during the printer auto-detection, turn "
-"off \"Auto-detect printers\" to do a printer installation without auto-"
-"detection. Use the \"Expert Mode\" of printerdrake when you want to set up "
-"printing on a remote printer if printerdrake does not list it automatically."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:186
-#, fuzzy
-msgid "Auto-detect printers"
-msgstr "Malproksima printilo"
-
-#: ../../printerdrake.pm_.c:204
-msgid ""
-"\n"
-"Congratulations, your printer is now installed and configured!\n"
-"\n"
-"You can print using the \"Print\" command of your application (usually in "
-"the \"File\" menu).\n"
-"\n"
-"If you want to add, remove, or rename a printer, or if you want to change "
-"the default option settings (paper input tray, printout quality, ...), "
-"select \"Printer\" in the \"Hardware\" section of the Mandrake Control "
-"Center."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:223
-msgid "Auto-Detection of Printers"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:224
-msgid ""
-"Printerdrake is able to auto-detect your locally connected parallel and USB "
-"printers for you, but note that on some systems the auto-detection CAN "
-"FREEZE YOUR SYSTEM AND THIS CAN LEAD TO CORRUPTED FILE SYSTEMS! So do it ON "
-"YOUR OWN RISK!\n"
-"\n"
-"Do you really want to get your printers auto-detected?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:227 ../../printerdrake.pm_.c:229
-#: ../../printerdrake.pm_.c:230
-#, fuzzy
-msgid "Do auto-detection"
-msgstr "Malproksima printilo"
-
-#: ../../printerdrake.pm_.c:228
-#, fuzzy
-msgid "Set up printer manually"
-msgstr "Malproksima printilo"
-
-#: ../../printerdrake.pm_.c:256
-#, fuzzy, c-format
-msgid "Detected %s"
-msgstr "Duobla surmetingo %s"
-
-#: ../../printerdrake.pm_.c:260 ../../printerdrake.pm_.c:287
-#: ../../printerdrake.pm_.c:306
-#, c-format
-msgid "Printer on parallel port \\/*%s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:262 ../../printerdrake.pm_.c:289
-#: ../../printerdrake.pm_.c:311
-#, c-format
-msgid "USB printer \\/*%s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:379
-msgid ""
-"No local printer found! To manually install a printer enter a device name/"
-"file name in the input line (Parallel Ports: /dev/lp0, /dev/lp1, ..., "
-"equivalent to LPT1:, LPT2:, ..., 1st USB printer: /dev/usb/lp0, 2nd USB "
-"printer: /dev/usb/lp1, ...)."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:383
-#, fuzzy
-msgid "You must enter a device or file name!"
-msgstr "Printila Aparato URI"
-
-#: ../../printerdrake.pm_.c:394
-#, fuzzy
-msgid ""
-"No local printer found!\n"
-"\n"
-msgstr "Loka printilo"
-
-#: ../../printerdrake.pm_.c:395
-msgid ""
-"Network printers can only be installed after the installation. Choose "
-"\"Hardware\" and then \"Printer\" in the Mandrake Control Center."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:396
-msgid ""
-"To install network printers, click \"Cancel\", switch to the \"Expert Mode"
-"\", and click \"Add a new printer\" again."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:407
-msgid ""
-"The following printer was auto-detected, if it is not the one you want to "
-"configure, enter a device name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:408
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up or enter a device name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:410
-msgid ""
-"The following printer was auto-detected. The configuration of the printer "
-"will work fully automatically. If your printer was not correctly detected or "
-"if you prefer a customized printer configuration, turn on \"Manual "
-"configuration\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:411
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up. The configuration of the printer will work fully "
-"automatically. If your printer was not correctly detected or if you prefer a "
-"customized printer configuration, turn on \"Manual configuration\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:413
-msgid ""
-"Please choose the port where your printer is connected to or enter a device "
-"name/file name in the input line"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:414
-#, fuzzy
-msgid "Please choose the port where your printer is connected to."
-msgstr "Bonvole, elektu al kiu seria pordo estas via modemo konektata?"
-
-#: ../../printerdrake.pm_.c:416
-msgid ""
-" (Parallel Ports: /dev/lp0, /dev/lp1, ..., equivalent to LPT1:, LPT2:, ..., "
-"1st USB printer: /dev/usb/lp0, 2nd USB printer: /dev/usb/lp1, ...)."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:421
-#, fuzzy
-msgid "You must choose/enter a printer/device!"
-msgstr "Printila Aparato URI"
-
-#: ../../printerdrake.pm_.c:441
-#, fuzzy
-msgid "Manual configuration"
-msgstr "Interreta Konfigurado"
-
-#: ../../printerdrake.pm_.c:467
-msgid ""
-"Is your printer a multi-function device from HP (OfficeJet, PSC, PhotoSmart, "
-"LaserJet 1100/1200/1220/3200/3300 with scanner)?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:482
-#, fuzzy
-msgid "Installing HPOJ package..."
-msgstr "Instalanta paka¼o %s"
-
-#: ../../printerdrake.pm_.c:487
-msgid "Checking device and configuring HPOJ ..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:505
-#, fuzzy
-msgid "Installing SANE package..."
-msgstr "Instalanta paka¼o %s"
-
-#: ../../printerdrake.pm_.c:517
-msgid "Scanning on your HP multi-function device"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:534
-#, fuzzy
-msgid "Making printer port available for CUPS ..."
-msgstr "Legas datumbason de CUPS peliloj..."
-
-#: ../../printerdrake.pm_.c:544 ../../printerdrake.pm_.c:1018
-#: ../../printerdrake.pm_.c:1132
-#, fuzzy
-msgid "Reading printer database ..."
-msgstr "Legas datumbason de CUPS peliloj..."
-
-#: ../../printerdrake.pm_.c:624
-msgid "Remote lpd Printer Options"
-msgstr "Malproksimaj lpd Printilaj Opcioj"
-
-#: ../../printerdrake.pm_.c:625
-#, fuzzy
-msgid ""
-"To use a remote lpd printer, you need to supply the hostname of the printer "
-"server and the printer name on that server."
-msgstr ""
-"Por uzi malproksima lpd printvico, vi devas provizi la požtejon de la\n"
-"printservilo kaj la printviconomon ęe tiu servilo en kiun taskoj devus\n"
-"esti metata."
-
-#: ../../printerdrake.pm_.c:626
-#, fuzzy
-msgid "Remote host name"
-msgstr "Malproksima požtejo"
-
-#: ../../printerdrake.pm_.c:627
-#, fuzzy
-msgid "Remote printer name"
-msgstr "Malproksima printilo"
-
-#: ../../printerdrake.pm_.c:630
-#, fuzzy
-msgid "Remote host name missing!"
-msgstr "Malproksima požtejo"
-
-#: ../../printerdrake.pm_.c:634
-#, fuzzy
-msgid "Remote printer name missing!"
-msgstr "Malproksima požtejo"
-
-#: ../../printerdrake.pm_.c:702
-msgid "SMB (Windows 9x/NT) Printer Options"
-msgstr "SMB (Vindozo 9x/NT) Printilaj Opcioj"
-
-#: ../../printerdrake.pm_.c:703
-#, fuzzy
-msgid ""
-"To print to a SMB printer, you need to provide the SMB host name (Note! It "
-"may be different from its TCP/IP hostname!) and possibly the IP address of "
-"the print server, as well as the share name for the printer you wish to "
-"access and any applicable user name, password, and workgroup information."
-msgstr ""
-"Por printi al SMB-a printilo, vi devas provizi la SMB požtejon (Notu! Ųi "
-"eble\n"
-"estas malsama de ųia TCP/IP nomo!) kaj eble la IP-adreson de la "
-"printservilo,\n"
-"aldone al la opuzan nomon de la printilo vi deziras atingi kaj iun ajn\n"
-"tażgan salutnomon, pasvorton, kaj laborgrupan informon."
-
-#: ../../printerdrake.pm_.c:704
-msgid "SMB server host"
-msgstr "Požtejo de SMB servilo"
-
-#: ../../printerdrake.pm_.c:705
-msgid "SMB server IP"
-msgstr "IP de SMB servilo"
-
-#: ../../printerdrake.pm_.c:706
-msgid "Share name"
-msgstr "Opuza nomo"
-
-#: ../../printerdrake.pm_.c:709
-msgid "Workgroup"
-msgstr "Laborgrupo"
-
-#: ../../printerdrake.pm_.c:716
-msgid "Either the server name or the server's IP must be given!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:720
-msgid "Samba share name missing!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:725
-msgid "SECURITY WARNING!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:726
-#, c-format
-msgid ""
-"You are about to set up printing to a Windows account with password. Due to "
-"a fault in the architecture of the Samba client software the password is put "
-"in clear text into the command line of the Samba client used to transmit the "
-"print job to the Windows server. So it is possible for every user on this "
-"machine to display the password on the screen by issuing commands as \"ps "
-"auxwww\".\n"
-"\n"
-"We recommend to make use of one of the following alternatives (in all cases "
-"you have to make sure that only machines from your local network have access "
-"to your Windows server, for example by means of a firewall):\n"
-"\n"
-"Use a password-less account on your Windows server, as the \"GUEST\" account "
-"or a special account dedicated for printing. Do not remove the password "
-"protection from a personal account or the administrator account.\n"
-"\n"
-"Set up your Windows server to make the printer available under the LPD "
-"protocol. Then set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:736
-#, c-format
-msgid ""
-"Set up your Windows server to make the printer available under the IPP "
-"protocol and set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:739
-msgid ""
-"Connect your printer to a Linux server and let your Windows machine(s) "
-"connect to it as a client.\n"
-"\n"
-"Do you really want to continue setting up this printer as you are doing now?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:801
-msgid "NetWare Printer Options"
-msgstr "NetWare Printilaj Opcioj"
-
-#: ../../printerdrake.pm_.c:802
-#, fuzzy
-msgid ""
-"To print on a NetWare printer, you need to provide the NetWare print server "
-"name (Note! it may be different from its TCP/IP hostname!) as well as the "
-"print queue name for the printer you wish to access and any applicable user "
-"name and password."
-msgstr ""
-"Por print al NetWare printilo, vi devas provizi la NetWare printservilan\n"
-"nomon (Notu! Ųi eble estas malsama de ųia TCP/IP nomo!) aldone al la\n"
-"printvican nomon por la printilo vi deziras atingi kaj iun ajn tażgan\n"
-"salutnomon kaj pasvorton."
-
-#: ../../printerdrake.pm_.c:803
-msgid "Printer Server"
-msgstr "Printservilo"
-
-#: ../../printerdrake.pm_.c:804
-msgid "Print Queue Name"
-msgstr "Printvica Nomo"
-
-#: ../../printerdrake.pm_.c:809
-msgid "NCP server name missing!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:813
-msgid "NCP queue name missing!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:852
-#, fuzzy
-msgid "TCP/Socket Printer Options"
-msgstr "Ing-Printilaj Opcioj"
-
-#: ../../printerdrake.pm_.c:853
-#, fuzzy
-msgid ""
-"To print to a TCP or socket printer, you need to provide the host name of "
-"the printer and optionally the port number. On HP JetDirect servers the port "
-"number is usually 9100, on other servers it can vary. See the manual of your "
-"hardware."
-msgstr ""
-"Por printi al inga printilo, vi bezonas provizi la\n"
-"požtejon de la printilo kaj opcie la pordnumeron."
-
-#: ../../printerdrake.pm_.c:854
-#, fuzzy
-msgid "Printer host name"
-msgstr "Printilaj Požtejo"
-
-#: ../../printerdrake.pm_.c:858
-#, fuzzy
-msgid "Printer host name missing!"
-msgstr "Printilaj Požtejo"
-
-#: ../../printerdrake.pm_.c:887 ../../printerdrake.pm_.c:889
-msgid "Printer Device URI"
-msgstr "Printila Aparato URI"
-
-#: ../../printerdrake.pm_.c:888
-msgid ""
-"You can specify directly the URI to access the printer. The URI must fulfill "
-"either the CUPS or the Foomatic specifications. Note that not all URI types "
-"are supported by all the spoolers."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:903
-msgid "A valid URI must be entered!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1004
-msgid ""
-"Every printer needs a name (for example \"printer\"). The Description and "
-"Location fields do not need to be filled in. They are comments for the users."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1005
-msgid "Name of printer"
-msgstr "Nomo de printilo"
-
-#: ../../printerdrake.pm_.c:1006
-msgid "Description"
-msgstr "Priskribo"
-
-#: ../../printerdrake.pm_.c:1007
-msgid "Location"
-msgstr "Loko"
-
-#: ../../printerdrake.pm_.c:1021
-#, fuzzy
-msgid "Preparing printer database ..."
-msgstr "Legas datumbason de CUPS peliloj..."
-
-#: ../../printerdrake.pm_.c:1112
-#, fuzzy
-msgid "Your printer model"
-msgstr "Malproksima printilo"
-
-#: ../../printerdrake.pm_.c:1113
-#, c-format
-msgid ""
-"Printerdrake has compared the model name resulting from the printer auto-"
-"detection with the models listed in its printer database to find the best "
-"match. This choice can be wrong, especially when your printer is not listed "
-"at all in the database. So check whether the choice is correct and click "
-"\"The model is correct\" if so and if not, click \"Select model manually\" "
-"so that you can choose your printer model manually on the next screen.\n"
-"\n"
-"For your printer Printerdrake has found:\n"
-"\n"
-"%s"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1118 ../../printerdrake.pm_.c:1121
-#, fuzzy
-msgid "The model is correct"
-msgstr "Ęu tio ęi pravas?"
-
-#: ../../printerdrake.pm_.c:1119 ../../printerdrake.pm_.c:1120
-#: ../../printerdrake.pm_.c:1123
-#, fuzzy
-msgid "Select model manually"
-msgstr "Malproksima printilo"
-
-#: ../../printerdrake.pm_.c:1139
-#, fuzzy
-msgid "Printer model selection"
-msgstr "Printilan Konekton"
-
-#: ../../printerdrake.pm_.c:1140
-#, fuzzy
-msgid "Which printer model do you have?"
-msgstr "Kiun specon de printilo vi havas?"
-
-#: ../../printerdrake.pm_.c:1141
-msgid ""
-"\n"
-"\n"
-"Please check whether Printerdrake did the auto-detection of your printer "
-"model correctly. Search the correct model in the list when the cursor is "
-"standing on a wrong model or on \"Raw printer\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1144
-msgid ""
-"If your printer is not listed, choose a compatible (see printer manual) or a "
-"similar one."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1220
-#, fuzzy
-msgid "OKI winprinter configuration"
-msgstr "Interreta Konfigurado"
-
-#: ../../printerdrake.pm_.c:1221
-msgid ""
-"You are configuring an OKI laser winprinter. These printers\n"
-"use a very special communication protocol and therefore they work only when "
-"connected to the first parallel port. When your printer is connected to "
-"another port or to a print server box please connect the printer to the "
-"first parallel port before you print a test page. Otherwise the printer will "
-"not work. Your connection type setting will be ignored by the driver."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1264 ../../printerdrake.pm_.c:1291
-#, fuzzy
-msgid "Lexmark inkjet configuration"
-msgstr "Interreta Konfigurado"
-
-#: ../../printerdrake.pm_.c:1265
-msgid ""
-"The inkjet printer drivers provided by Lexmark only support local printers, "
-"no printers on remote machines or print server boxes. Please connect your "
-"printer to a local port or configure it on the machine where it is connected "
-"to."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1292
-msgid ""
-"To be able to print with your Lexmark inkjet and this configuration, you "
-"need the inkjet printer drivers provided by Lexmark (http://www.lexmark."
-"com/). Go to the US site and click on the \"Drivers\" button. Then choose "
-"your model and afterwards \"Linux\" as operating system. The drivers come as "
-"RPM packages or shell scripts with interactive graphical installation. You "
-"do not need to do this configuration by the graphical frontends. Cancel "
-"directly after the license agreement. Then print printhead alignment pages "
-"with \"lexmarkmaintain\" and adjust the head alignment settings with this "
-"program."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1508
-msgid ""
-"Printer default settings\n"
-"\n"
-"You should make sure that the page size and the ink type/printing mode (if "
-"available) and also the hardware configuration of laser printers (memory, "
-"duplex unit, extra trays) are set correctly. Note that with a very high "
-"printout quality/resolution printing can get substantially slower."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1517
-#, c-format
-msgid "Option %s must be an integer number!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1521
-#, c-format
-msgid "Option %s must be a number!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1526
-#, c-format
-msgid "Option %s out of range!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1565
-#, fuzzy, c-format
-msgid ""
-"Do you want to set this printer (\"%s\")\n"
-"as the default printer?"
-msgstr "Ęu vi deziras provi printado?"
-
-#: ../../printerdrake.pm_.c:1582
-#, fuzzy
-msgid "Test pages"
-msgstr "Provu pordojn"
-
-#: ../../printerdrake.pm_.c:1583
-msgid ""
-"Please select the test pages you want to print.\n"
-"Note: the photo test page can take a rather long time to get printed and on "
-"laser printers with too low memory it can even not come out. In most cases "
-"it is enough to print the standard test page."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1587
-#, fuzzy
-msgid "No test pages"
-msgstr "Jes, printu ambaż de la provpaųojn"
-
-#: ../../printerdrake.pm_.c:1588
-#, fuzzy
-msgid "Print"
-msgstr "Printilo"
-
-#: ../../printerdrake.pm_.c:1590
-#, fuzzy
-msgid "Standard test page"
-msgstr "Lażnorma"
-
-#: ../../printerdrake.pm_.c:1593
-msgid "Alternative test page (Letter)"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1596
-#, fuzzy
-msgid "Alternative test page (A4)"
-msgstr "Printas provpaųo(j)n..."
-
-#: ../../printerdrake.pm_.c:1598
-#, fuzzy
-msgid "Photo test page"
-msgstr "Printas provpaųo(j)n..."
-
-#: ../../printerdrake.pm_.c:1602
-#, fuzzy
-msgid "Do not print any test page"
-msgstr "Printas provpaųo(j)n..."
-
-#: ../../printerdrake.pm_.c:1610 ../../printerdrake.pm_.c:1747
-msgid "Printing test page(s)..."
-msgstr "Printas provpaųo(j)n..."
-
-#: ../../printerdrake.pm_.c:1635
-#, fuzzy, c-format
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-"Printing status:\n"
-"%s\n"
-"\n"
-msgstr ""
-"Provpaųo(j)n estis sendataj al la printila demono.\n"
-"Ęi tiu eble postulas iom da tempo antaż ol la printilo komencas.\n"
-"Printada stato:\n"
-"%s\n"
-"\n"
-"Ęu ųi ųuste funkcias?"
-
-#: ../../printerdrake.pm_.c:1639
-#, fuzzy
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-msgstr ""
-"Provpaųo(j)n estis sendataj al la printila demono.\n"
-"Ęi tiu eble postulas iom da tempo antaż ol la printilo komencas.\n"
-"Ęu ųi ųuste funkcias?"
-
-#: ../../printerdrake.pm_.c:1646
-msgid "Did it work properly?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1667 ../../printerdrake.pm_.c:2732
-#, fuzzy
-msgid "Raw printer"
-msgstr "Neniu printilo"
-
-#: ../../printerdrake.pm_.c:1685
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) you can either use "
-"the command \"%s <file>\" or a graphical printing tool: \"xpp <file>\" or "
-"\"kprinter <file>\". The graphical tools allow you to choose the printer and "
-"to modify the option settings easily.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1687
-msgid ""
-"These commands you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications, but here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1690 ../../printerdrake.pm_.c:1706
-#: ../../printerdrake.pm_.c:1716
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" command also allows to modify the option settings for a "
-"particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\". "
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1693 ../../printerdrake.pm_.c:1732
-#, c-format
-msgid ""
-"To know about the options available for the current printer read either the "
-"list shown below or click on the \"Print option list\" button.%s\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1696
-msgid ""
-"Here is a list of the available printing options for the current printer:\n"
-"\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1701 ../../printerdrake.pm_.c:1711
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\".\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1703 ../../printerdrake.pm_.c:1713
-#: ../../printerdrake.pm_.c:1723
-msgid ""
-"This command you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications. But here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1708 ../../printerdrake.pm_.c:1718
-msgid ""
-"To get a list of the options available for the current printer click on the "
-"\"Print option list\" button."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1721
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\" or \"%s <file>\".\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1725
-msgid ""
-"You can also use the graphical interface \"xpdq\" for setting options and "
-"handling printing jobs.\n"
-"If you are using KDE as desktop environment you have a \"panic button\", an "
-"icon on the desktop, labeled with \"STOP Printer!\", which stops all print "
-"jobs immediately when you click it. This is for example useful for paper "
-"jams.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1729
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" and \"%s\" commands also allow to modify the option settings for "
-"a particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\".\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1738 ../../printerdrake.pm_.c:1744
-#: ../../printerdrake.pm_.c:1745 ../../printerdrake.pm_.c:1746
-#: ../../printerdrake.pm_.c:2716 ../../standalone/drakbackup_.c:754
-#: ../../standalone/drakbackup_.c:2458 ../../standalone/drakfont_.c:577
-#: ../../standalone/drakfont_.c:791
-msgid "Close"
-msgstr "Malfermu"
-
-#: ../../printerdrake.pm_.c:1741 ../../printerdrake.pm_.c:1753
-#, fuzzy, c-format
-msgid "Printing/Scanning on \"%s\""
-msgstr "Haltas de la reto"
-
-#: ../../printerdrake.pm_.c:1742 ../../printerdrake.pm_.c:1754
-#, fuzzy, c-format
-msgid "Printing on the printer \"%s\""
-msgstr "Haltas de la reto"
-
-#: ../../printerdrake.pm_.c:1744
-#, fuzzy
-msgid "Print option list"
-msgstr "Printilaj opcioj"
-
-#: ../../printerdrake.pm_.c:1766
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan with \"scanimage\" (\"scanimage -d hp:%s\" to specify "
-"the scanner when you have more than one) from the command line or with the "
-"graphical interfaces \"xscanimage\" or \"xsane\". If you are using the GIMP, "
-"you can also scan by choosing the appropriate point in the \"File\"/\"Acquire"
-"\" menu. Call also \"man scanimage\" and \"man sane-hp\" on the command line "
-"to get more information.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1772
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan from the command line with \"ptal-hp %s scan ...\". "
-"Scanning via a graphical interface or from the GIMP is not supported yet for "
-"your device. More information you will find in the \"/usr/share/doc/hpoj-0.8/"
-"ptal-hp-scan.html\" file on your system. If you have an HP LaserJet 1100 or "
-"1200 you can only scan when you have the scanner option installed.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1794 ../../printerdrake.pm_.c:2221
-#: ../../printerdrake.pm_.c:2485 ../../standalone/printerdrake_.c:49
-#, fuzzy
-msgid "Reading printer data ..."
-msgstr "Legas datumbason de CUPS peliloj..."
-
-#: ../../printerdrake.pm_.c:1814 ../../printerdrake.pm_.c:1842
-#: ../../printerdrake.pm_.c:1877
-#, fuzzy
-msgid "Transfer printer configuration"
-msgstr "Interreta Konfigurado"
-
-#: ../../printerdrake.pm_.c:1815
-#, c-format
-msgid ""
-"You can copy the printer configuration which you have done for the spooler %"
-"s to %s, your current spooler. All the configuration data (printer name, "
-"description, location, connection type, and default option settings) is "
-"overtaken, but jobs will not be transferred.\n"
-"Not all queues can be transferred due to the following reasons:\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1818
-msgid ""
-"CUPS does not support printers on Novell servers or printers sending the "
-"data into a free-formed command.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1820
-msgid ""
-"PDQ only supports local printers, remote LPD printers, and Socket/TCP "
-"printers.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1822
-msgid "LPD and LPRng do not support IPP printers.\n"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1824
-msgid ""
-"In addition, queues not created with this program or \"foomatic-configure\" "
-"cannot be transferred."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1825
-msgid ""
-"\n"
-"Also printers configured with the PPD files provided by their manufacturers "
-"or with native CUPS drivers cannot be transferred."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1826
-msgid ""
-"\n"
-"Mark the printers which you want to transfer and click \n"
-"\"Transfer\"."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1829
-msgid "Do not transfer printers"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1830 ../../printerdrake.pm_.c:1847
-msgid "Transfer"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1843
-#, c-format
-msgid ""
-"A printer named \"%s\" already exists under %s. \n"
-"Click \"Transfer\" to overwrite it.\n"
-"You can also type a new name or skip this printer."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1851
-msgid "Name of printer should contain only letters, numbers and the underscore"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1856
-#, c-format
-msgid ""
-"The printer \"%s\" already exists,\n"
-"do you really want to overwrite its configuration?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1864
-#, fuzzy
-msgid "New printer name"
-msgstr "Neniu printilo"
-
-#: ../../printerdrake.pm_.c:1867
-#, c-format
-msgid "Transferring %s ..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1878
-#, c-format
-msgid ""
-"You have transferred your former default printer (\"%s\"), Should it be also "
-"the default printer under the new printing system %s?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1887
-#, fuzzy
-msgid "Refreshing printer data ..."
-msgstr "Legas datumbason de CUPS peliloj..."
-
-#: ../../printerdrake.pm_.c:1895 ../../printerdrake.pm_.c:1966
-#: ../../printerdrake.pm_.c:1978
-msgid "Configuration of a remote printer"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1896
-#, fuzzy
-msgid "Starting network ..."
-msgstr "Startas vian konekta¼on..."
-
-#: ../../printerdrake.pm_.c:1930 ../../printerdrake.pm_.c:1934
-#: ../../printerdrake.pm_.c:1936
-#, fuzzy
-msgid "Configure the network now"
-msgstr "Konfiguru retumon"
-
-#: ../../printerdrake.pm_.c:1931
-#, fuzzy
-msgid "Network functionality not configured"
-msgstr "Ekrano ne estas konfigurata"
-
-#: ../../printerdrake.pm_.c:1932
-msgid ""
-"You are going to configure a remote printer. This needs working network "
-"access, but your network is not configured yet. If you go on without network "
-"configuration, you will not be able to use the printer which you are "
-"configuring now. How do you want to proceed?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1935
-#, fuzzy
-msgid "Go on without configuring the network"
-msgstr "Konfiguras reto"
-
-#: ../../printerdrake.pm_.c:1968
-msgid ""
-"The network configuration done during the installation cannot be started "
-"now. Please check whether the network gets accessable after booting your "
-"system and correct the configuration using the Mandrake Control Center, "
-"section \"Network & Internet\"/\"Connection\", and afterwards set up the "
-"printer, also using the Mandrake Control Center, section \"Hardware\"/"
-"\"Printer\""
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1969
-msgid ""
-"The network access was not running and could not be started. Please check "
-"your configuration and your hardware. Then try to configure your remote "
-"printer again."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:1979
-#, fuzzy
-msgid "Restarting printing system ..."
-msgstr "Kiun printsistemo vi deziras uzi?"
-
-#: ../../printerdrake.pm_.c:2017
-#, fuzzy
-msgid "high"
-msgstr "Alta"
-
-#: ../../printerdrake.pm_.c:2017
-#, fuzzy
-msgid "paranoid"
-msgstr "Paranoja"
-
-#: ../../printerdrake.pm_.c:2018
-#, c-format
-msgid "Installing a printing system in the %s security level"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2019
-#, c-format
-msgid ""
-"You are about to install the printing system %s on a system running in the %"
-"s security level.\n"
-"\n"
-"This printing system runs a daemon (background process) which waits for "
-"print jobs and handles them. This daemon is also accessable by remote "
-"machines through the network and so it is a possible point for attacks. "
-"Therefore only a few selected daemons are started by default in this "
-"security level.\n"
-"\n"
-"Do you really want to configure printing on this machine?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2051
-#, fuzzy
-msgid "Starting the printing system at boot time"
-msgstr "Kiun printsistemo vi deziras uzi?"
-
-#: ../../printerdrake.pm_.c:2052
-#, c-format
-msgid ""
-"The printing system (%s) will not be started automatically when the machine "
-"is booted.\n"
-"\n"
-"It is possible that the automatic starting was turned off by changing to a "
-"higher security level, because the printing system is a potential point for "
-"attacks.\n"
-"\n"
-"Do you want to have the automatic starting of the printing system turned on "
-"again?"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2075 ../../printerdrake.pm_.c:2113
-#: ../../printerdrake.pm_.c:2143 ../../printerdrake.pm_.c:2176
-#: ../../printerdrake.pm_.c:2281
-msgid "Checking installed software..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2117
-msgid "Removing LPRng..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2147
-msgid "Removing LPD..."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2205
-#, fuzzy
-msgid "Select Printer Spooler"
-msgstr "Elektu Printilan Konekton"
-
-#: ../../printerdrake.pm_.c:2206
-#, fuzzy
-msgid "Which printing system (spooler) do you want to use?"
-msgstr "Kiun printsistemo vi deziras uzi?"
-
-#: ../../printerdrake.pm_.c:2239
-#, fuzzy, c-format
-msgid "Configuring printer \"%s\" ..."
-msgstr "Konfiguru Printilon"
-
-#: ../../printerdrake.pm_.c:2252
-#, fuzzy
-msgid "Installing Foomatic ..."
-msgstr "Instalanta paka¼o %s"
-
-#: ../../printerdrake.pm_.c:2309 ../../printerdrake.pm_.c:2348
-#: ../../printerdrake.pm_.c:2733 ../../printerdrake.pm_.c:2803
-msgid "Printer options"
-msgstr "Printilaj opcioj"
-
-#: ../../printerdrake.pm_.c:2318
-#, fuzzy
-msgid "Preparing PrinterDrake ..."
-msgstr "Legas datumbason de CUPS peliloj..."
-
-#: ../../printerdrake.pm_.c:2335 ../../printerdrake.pm_.c:2890
-#, fuzzy
-msgid "Configuring applications..."
-msgstr "Konfiguru Printilon"
-
-#: ../../printerdrake.pm_.c:2355
-#, fuzzy
-msgid "Would you like to configure printing?"
-msgstr "Ęu vi deziras konfiguri printilon?"
-
-#: ../../printerdrake.pm_.c:2367
-msgid "Printing system: "
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2415
-#, fuzzy
-msgid "Printerdrake"
-msgstr "Printilo"
-
-#: ../../printerdrake.pm_.c:2419
-#, fuzzy
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; to view information about it; "
-"or to make a printer on a remote CUPS server available for Star Office/"
-"OpenOffice.org."
-msgstr ""
-"Jen la sekvantaj printvicoj.\n"
-"Vi povas aldoni pli aż žanųi la ekzistantajn."
-
-#: ../../printerdrake.pm_.c:2420
-#, fuzzy
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; or to view information about "
-"it."
-msgstr ""
-"Jen la sekvantaj printvicoj.\n"
-"Vi povas aldoni pli aż žanųi la ekzistantajn."
-
-#: ../../printerdrake.pm_.c:2446
-msgid "Refresh printer list (to display all available remote CUPS printers)"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2464
-#, fuzzy
-msgid "Change the printing system"
-msgstr "Konfiguru retumon"
-
-#: ../../printerdrake.pm_.c:2469 ../../standalone/draknet_.c:278
-msgid "Normal Mode"
-msgstr "Normala Modalo"
-
-#: ../../printerdrake.pm_.c:2625 ../../printerdrake.pm_.c:2675
-#: ../../printerdrake.pm_.c:2884
-#, fuzzy
-msgid "Do you want to configure another printer?"
-msgstr "Ęu vi deziras provi la konfigura¼on?"
-
-#: ../../printerdrake.pm_.c:2711
-#, fuzzy
-msgid "Modify printer configuration"
-msgstr "Interreta Konfigurado"
-
-#: ../../printerdrake.pm_.c:2713
-#, fuzzy, c-format
-msgid ""
-"Printer %s\n"
-"What do you want to modify on this printer?"
-msgstr "Ęu vi deziras provi la konfigura¼on?"
-
-#: ../../printerdrake.pm_.c:2717
-msgid "Do it!"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2722 ../../printerdrake.pm_.c:2777
-#, fuzzy
-msgid "Printer connection type"
-msgstr "Disdividado de Interreta Konekto"
-
-#: ../../printerdrake.pm_.c:2723 ../../printerdrake.pm_.c:2781
-#, fuzzy
-msgid "Printer name, description, location"
-msgstr "Printilan Konekton"
-
-#: ../../printerdrake.pm_.c:2725 ../../printerdrake.pm_.c:2796
-msgid "Printer manufacturer, model, driver"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2726 ../../printerdrake.pm_.c:2797
-msgid "Printer manufacturer, model"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2735 ../../printerdrake.pm_.c:2807
-msgid "Set this printer as the default"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2737 ../../printerdrake.pm_.c:2812
-msgid "Add this printer to Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2738 ../../printerdrake.pm_.c:2821
-msgid "Remove this printer from Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2739 ../../printerdrake.pm_.c:2830
-#, fuzzy
-msgid "Print test pages"
-msgstr "Printas provpaųo(j)n..."
-
-#: ../../printerdrake.pm_.c:2740 ../../printerdrake.pm_.c:2832
-#, fuzzy
-msgid "Know how to use this printer"
-msgstr "Ęu vi deziras provi la konfigura¼on?"
-
-#: ../../printerdrake.pm_.c:2742 ../../printerdrake.pm_.c:2834
-#, fuzzy
-msgid "Remove printer"
-msgstr "Malproksima printilo"
-
-#: ../../printerdrake.pm_.c:2786
-#, fuzzy, c-format
-msgid "Removing old printer \"%s\" ..."
-msgstr "Legas datumbason de CUPS peliloj..."
-
-#: ../../printerdrake.pm_.c:2810
-#, fuzzy
-msgid "Default printer"
-msgstr "Loka printilo"
-
-#: ../../printerdrake.pm_.c:2811
-#, c-format
-msgid "The printer \"%s\" is set as the default printer now."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2815 ../../printerdrake.pm_.c:2818
-msgid "Adding printer to Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2816
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully added to Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2819
-#, c-format
-msgid "Failed to add the printer \"%s\" to Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2824 ../../printerdrake.pm_.c:2827
-msgid "Removing printer from Star Office/OpenOffice.org"
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2825
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully removed from Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2828
-#, c-format
-msgid "Failed to remove the printer \"%s\" from Star Office/OpenOffice.org."
-msgstr ""
-
-#: ../../printerdrake.pm_.c:2836
-#, fuzzy, c-format
-msgid "Do you really want to remove the printer \"%s\"?"
-msgstr "Ęu vi deziras provi la konfigura¼on?"
-
-#: ../../printerdrake.pm_.c:2838
-#, fuzzy, c-format
-msgid "Removing printer \"%s\" ..."
-msgstr "Legas datumbason de CUPS peliloj..."
-
-#: ../../proxy.pm_.c:29 ../../proxy.pm_.c:37 ../../proxy.pm_.c:58
-#: ../../proxy.pm_.c:78
-#, fuzzy
-msgid "Proxy configuration"
-msgstr "Konfigurado de prokuraj serviloj"
-
-#: ../../proxy.pm_.c:30
-msgid ""
-"Welcome to the proxy configuration utility.\n"
-"\n"
-"Here, you'll be able to set up your http and ftp proxies\n"
-"with or without login and password\n"
-msgstr ""
-
-#: ../../proxy.pm_.c:38
-msgid ""
-"Please fill in the http proxy informations\n"
-"Leave it blank if you don't want an http proxy"
-msgstr ""
-
-#: ../../proxy.pm_.c:39 ../../proxy.pm_.c:60
-msgid "URL"
-msgstr ""
-
-#: ../../proxy.pm_.c:40 ../../proxy.pm_.c:61
-msgid "port"
-msgstr "porto"
-
-#: ../../proxy.pm_.c:44
-#, fuzzy
-msgid "Url should begin with 'http:'"
-msgstr "Prokura servilo devus esti http://..."
-
-#: ../../proxy.pm_.c:48 ../../proxy.pm_.c:69
-msgid "The port part should be numeric"
-msgstr ""
-
-#: ../../proxy.pm_.c:59
-msgid ""
-"Please fill in the ftp proxy informations\n"
-"Leave it blank if you don't want an ftp proxy"
-msgstr ""
-
-#: ../../proxy.pm_.c:65
-#, fuzzy
-msgid "Url should begin with 'ftp:'"
-msgstr "Prokura servilo devus esti ftp://..."
-
-#: ../../proxy.pm_.c:79
-msgid ""
-"Please enter proxy login and password, if any.\n"
-"Leave it blank if you don't want login/passwd"
-msgstr ""
-
-#: ../../proxy.pm_.c:80
-#, fuzzy
-msgid "login"
-msgstr "Ażtomata-enregistrado"
-
-#: ../../proxy.pm_.c:82
-msgid "password"
-msgstr "pasvorto"
-
-#: ../../proxy.pm_.c:84
-#, fuzzy
-msgid "re-type password"
-msgstr "Neniu pasvorto"
-
-#: ../../proxy.pm_.c:88
-msgid "The passwords don't match. Try again!"
-msgstr "La pasvortoj ne egalas. Provu denove!"
-
-#: ../../raid.pm_.c:35
-#, c-format
-msgid "Can't add a partition to _formatted_ RAID md%d"
-msgstr "Ne povas aldoni subdiskon al _formatita_ RAID md%d"
-
-#: ../../raid.pm_.c:111
-#, c-format
-msgid "Can't write file %s"
-msgstr "Ne povas skribi dosieron %s."
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed"
-msgstr "mkraid malsukcesis"
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed (maybe raidtools are missing?)"
-msgstr "mkraid malsukcesis (eble raidtools mankas)"
-
-#: ../../raid.pm_.c:152
-#, c-format
-msgid "Not enough partitions for RAID level %d\n"
-msgstr "Ne estas sufięaj subdiskoj por RAID nivelo %d\n"
-
-#: ../../services.pm_.c:14
-msgid "Launch the ALSA (Advanced Linux Sound Architecture) sound system"
-msgstr ""
-
-#: ../../services.pm_.c:15
-msgid "Anacron a periodic command scheduler."
-msgstr "Anacron, perioda ordonvicigilo."
-
-#: ../../services.pm_.c:16
-msgid ""
-"apmd is used for monitoring batery status and logging it via syslog.\n"
-"It can also be used for shutting down the machine when the battery is low."
-msgstr ""
-"apmd estas uzata por monitori la bateriostaton kaj registri ųin en la\n"
-"sistemlogdosiero (syslog). Vi ankaż povas uzi ųin por halti la komputilon\n"
-"kiam la bateriožargo estas malgranda."
-
-#: ../../services.pm_.c:18
-msgid ""
-"Runs commands scheduled by the at command at the time specified when\n"
-"at was run, and runs batch commands when the load average is low enough."
-msgstr ""
-"Lanęas ordonojn vicigitajn per la 'at' ordono je la horo specifita kiam\n"
-"'at' estis uzata, kaj lanęas baęajn ordonojn kiam la žargmezo estas\n"
-"sufięe malgranda."
-
-#: ../../services.pm_.c:20
-msgid ""
-"cron is a standard UNIX program that runs user-specified programs\n"
-"at periodic scheduled times. vixie cron adds a number of features to the "
-"basic\n"
-"UNIX cron, including better security and more powerful configuration options."
-msgstr ""
-"cron estas norma Uniksa programo kiu lanęas programojn kiujn la uzulo\n"
-"specifas je periodaj tempoj. vixie cron aldonas kelkajn trajtojn al la\n"
-"baza Uniksa cron, inkluzive de pli bona sekureco kaj pli fortaj\n"
-"konfiguraj opcioj."
-
-#: ../../services.pm_.c:23
-msgid ""
-"GPM adds mouse support to text-based Linux applications such the\n"
-"Midnight Commander. It also allows mouse-based console cut-and-paste "
-"operations,\n"
-"and includes support for pop-up menus on the console."
-msgstr ""
-"GPM aldonas subtenon por musoj al teksta-reųimaj Linuksaj aplikoj ekzemple\n"
-"la 'Midnight Commander' (Meznokta Estro). Ankaż ųi permesas uzi la muson\n"
-"por transpožigi ęe la konzolo (Sen X Fenestroj)."
-
-#: ../../services.pm_.c:26
-msgid ""
-"HardDrake runs a hardware probe, and optionally configures\n"
-"new/changed hardware."
-msgstr ""
-
-#: ../../services.pm_.c:28 ../../standalone/logdrake_.c:412
-msgid ""
-"Apache is a World Wide Web server. It is used to serve HTML files and CGI."
-msgstr ""
-"Apache estas Tut-Tera Teksa¼a servilo. Ųi liveras HTML-ajn dosierojn\n"
-"kaj CGI (komunakluza interfaco)."
-
-#: ../../services.pm_.c:29
-msgid ""
-"The internet superserver daemon (commonly called inetd) starts a\n"
-"variety of other internet services as needed. It is responsible for "
-"starting\n"
-"many services, including telnet, ftp, rsh, and rlogin. Disabling inetd "
-"disables\n"
-"all of the services it is responsible for."
-msgstr ""
-"La interreta superservila demono (kutime nomata inetd) lanęas sortimenton\n"
-"da aliaj interretaj servoj lażbezone. Ųi respondas por la lanęo de multaj\n"
-"servoj, inkluzive de telnet, ftp, rsh, kaj rlogin. Se vi malžaltas inetd,\n"
-"ve malžaltas ęiujn el la servoj por kiuj ųi respondas."
-
-#: ../../services.pm_.c:33
-msgid ""
-"Launch packet filtering for Linux kernel 2.2 series, to set\n"
-"up a firewall to protect your machine from network attacks."
-msgstr ""
-
-#: ../../services.pm_.c:35
-msgid ""
-"This package loads the selected keyboard map as set in\n"
-"/etc/sysconfig/keyboard. This can be selected using the kbdconfig utility.\n"
-"You should leave this enabled for most machines."
-msgstr ""
-"Ęi tiu paka¼o žargas la elektitan klavarmapon laż /etc/sysconfig/keyboard.\n"
-"Vi povas elekti ęi tion per la kbdconfig utilprogramo. Vi lasus ęi tion\n"
-"ebligatan por la plejmulto da sistemoj."
-
-#: ../../services.pm_.c:38
-msgid ""
-"Automatic regeneration of kernel header in /boot for\n"
-"/usr/include/linux/{autoconf,version}.h"
-msgstr ""
-
-#: ../../services.pm_.c:40
-msgid "Automatic detection and configuration of hardware at boot."
-msgstr ""
-
-#: ../../services.pm_.c:41
-msgid ""
-"Linuxconf will sometimes arrange to perform various tasks\n"
-"at boot-time to maintain the system configuration."
-msgstr ""
-
-#: ../../services.pm_.c:43
-msgid ""
-"lpd is the print daemon required for lpr to work properly. It is\n"
-"basically a server that arbitrates print jobs to printer(s)."
-msgstr ""
-"lpd estas la printvica dajmono bezonata por lpr tażge funkcii. Ųi estas\n"
-"baze servilo kiu arbitracias printajn taskojn al printilo(j)."
-
-#: ../../services.pm_.c:45
-msgid ""
-"Linux Virtual Server, used to build a high-performance and highly\n"
-"available server."
-msgstr ""
-
-#: ../../services.pm_.c:47 ../../standalone/logdrake_.c:413
-#, fuzzy
-msgid ""
-"named (BIND) is a Domain Name Server (DNS) that is used to resolve host "
-"names to IP addresses."
-msgstr ""
-"'named' (BIND) estas Domajna NomServilo (DNS) kiun vi uzas por trovi\n"
-"požtejojn de IP adresoj."
-
-#: ../../services.pm_.c:48
-msgid ""
-"Mounts and unmounts all Network File System (NFS), SMB (Lan\n"
-"Manager/Windows), and NCP (NetWare) mount points."
-msgstr ""
-"Muntas kaj malmuntas ęiujn RetDosierSistemajn (NFS), SMB (Lan\n"
-"Manager/Vindozaj), kaj NCP (NetWare) surmetingojn."
-
-#: ../../services.pm_.c:50
-msgid ""
-"Activates/Deactivates all network interfaces configured to start\n"
-"at boot time."
-msgstr ""
-"Žaltas/Malžaltas ęiujn retajn interfacojn konfiguratajn por lanęi\n"
-"dum sistemstartado."
-
-#: ../../services.pm_.c:52
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP networks.\n"
-"This service provides NFS server functionality, which is configured via the\n"
-"/etc/exports file."
-msgstr ""
-"NFS estas populara protokolo por dosierdistribuado tra TCP/IP retoj.\n"
-"Ęi tiu servo provizas NFS dosieržlosado, kiun vi konfiguras per la\n"
-"/etc/exports dosiero."
-
-#: ../../services.pm_.c:55
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP\n"
-"networks. This service provides NFS file locking functionality."
-msgstr ""
-"NFS estas populara protokolo por dosierdistribuado tra TCP/IP retoj.\n"
-"Ęi tiu servo provizas NFS dosieržlosado."
-
-#: ../../services.pm_.c:57
-msgid ""
-"Automatically switch on numlock key locker under console\n"
-"and XFree at boot."
-msgstr ""
-
-#: ../../services.pm_.c:59
-msgid "Support the OKI 4w and compatible winprinters."
-msgstr ""
-
-#: ../../services.pm_.c:60
-msgid ""
-"PCMCIA support is usually to support things like ethernet and\n"
-"modems in laptops. It won't get started unless configured so it is safe to "
-"have\n"
-"it installed on machines that don't need it."
-msgstr ""
-"PCMCIA subteno kutime estas subteno de a¼o kiel ethernet kaj modemoj en\n"
-"tekkomputiloj. Ųi ne estos lanęata krom se vi konfiguras ųi por ke ųi\n"
-"estu sendanųera ęe komputiloj kiuj ne bezonas ųin."
-
-#: ../../services.pm_.c:63
-msgid ""
-"The portmapper manages RPC connections, which are used by\n"
-"protocols such as NFS and NIS. The portmap server must be running on "
-"machines\n"
-"which act as servers for protocols which make use of the RPC mechanism."
-msgstr ""
-"La pordmapilo direktas RPC konektojn, kiujn protokoloj kiel NFS kaj NIS "
-"uzas.\n"
-"La pordmapservilo devas esti uzata ęe komputiloj kiuj agas kiel serviloj\n"
-"por protokoloj kiuj uzas la RPC mekanismon."
-
-#: ../../services.pm_.c:66 ../../standalone/logdrake_.c:415
-#, fuzzy
-msgid ""
-"Postfix is a Mail Transport Agent, which is the program that moves mail from "
-"one machine to another."
-msgstr ""
-"\"Postfix\" estas PožtTransportPerilo, kiu estas la programo kiu movas\n"
-"retpožton de unu komputilo al alia."
-
-#: ../../services.pm_.c:67
-msgid ""
-"Saves and restores system entropy pool for higher quality random\n"
-"number generation."
-msgstr ""
-"Savas kaj restażras sisteman entropikomuna¼on por pli altkvalita\n"
-"generado de aleatoraj nombroj."
-
-#: ../../services.pm_.c:69
-msgid ""
-"Assign raw devices to block devices (such as hard drive\n"
-"partitions), for the use of applications such as Oracle"
-msgstr ""
-
-#: ../../services.pm_.c:71
-msgid ""
-"The routed daemon allows for automatic IP router table updated via\n"
-"the RIP protocol. While RIP is widely used on small networks, more complex\n"
-"routing protocols are needed for complex networks."
-msgstr ""
-"La routed dajmono permesas ażtomatan ųisdatigon de la IP enkursigila tabelo\n"
-"per la RIP protokolo. Kvankam RIP estas vaste uzata je malgrandaj retoj,\n"
-"pli malsimplaj enkursigaj protokoloj estas bezonataj por malsimplaj retoj."
-
-#: ../../services.pm_.c:74
-msgid ""
-"The rstat protocol allows users on a network to retrieve\n"
-"performance metrics for any machine on that network."
-msgstr ""
-"La rstat protokolo permesas al uzuloj sur reto ekstrakti metrikojn\n"
-"pri la rapideco de iu ajn komputilo sur tiu reto."
-
-#: ../../services.pm_.c:76
-msgid ""
-"The rusers protocol allows users on a network to identify who is\n"
-"logged in on other responding machines."
-msgstr ""
-"La ruser protokolo permesas al uzuloj sur reto identigi kiujn estas\n"
-"konektataj ęe aliaj respondantaj komputiloj."
-
-#: ../../services.pm_.c:78
-msgid ""
-"The rwho protocol lets remote users get a list of all of the users\n"
-"logged into a machine running the rwho daemon (similiar to finger)."
-msgstr ""
-"La rwho protokolo permesas al uzuloj havigi liston de ęiuj el la uzuloj\n"
-"konektataj ęe komputilo kiu estas uzanta la rwho dajmono (simila al finger)."
-
-#: ../../services.pm_.c:80
-msgid "Launch the sound system on your machine"
-msgstr ""
-
-#: ../../services.pm_.c:81
-msgid ""
-"Syslog is the facility by which many daemons use to log messages\n"
-"to various system log files. It is a good idea to always run syslog."
-msgstr ""
-"Syslog (sistemlogilo) estas la rimedo per kiu multaj dajmonoj registras\n"
-"mesaųojn al diversaj sistemlogdosieroj. Ųi estas bona ideo ęiam uzi\n"
-"syslog."
-
-#: ../../services.pm_.c:83
-msgid "Load the drivers for your usb devices."
-msgstr ""
-
-#: ../../services.pm_.c:84
-#, fuzzy
-msgid "Starts the X Font Server (this is mandatory for XFree to run)."
-msgstr ""
-"Startas kaj ęesigas la X Tiparan Servilon je starttempo kaj ęesiga tempo."
-
-#: ../../services.pm_.c:110 ../../services.pm_.c:152
-msgid "Choose which services should be automatically started at boot time"
-msgstr ""
-
-#: ../../services.pm_.c:122
-#, fuzzy
-msgid "Printing"
-msgstr "Printilo"
-
-#: ../../services.pm_.c:123
-msgid "Internet"
-msgstr "Interreto"
-
-#: ../../services.pm_.c:126
-msgid "File sharing"
-msgstr ""
-
-#: ../../services.pm_.c:128 ../../standalone/drakbackup_.c:934
-#, fuzzy
-msgid "System"
-msgstr "Sistema modalo"
-
-#: ../../services.pm_.c:133
-#, fuzzy
-msgid "Remote Administration"
-msgstr "Malproksimaj lpd Printilaj Opcioj"
-
-#: ../../services.pm_.c:141
-#, fuzzy
-msgid "Database Server"
-msgstr "Datumbazoj"
-
-#: ../../services.pm_.c:170
-#, c-format
-msgid "Services: %d activated for %d registered"
-msgstr ""
-
-#: ../../services.pm_.c:186
-#, fuzzy
-msgid "Services"
-msgstr "Servilo"
-
-#: ../../services.pm_.c:198
-#, fuzzy
-msgid "running"
-msgstr "Averto"
-
-#: ../../services.pm_.c:198
-#, fuzzy
-msgid "stopped"
-msgstr "Alfiksu"
-
-#: ../../services.pm_.c:212
-msgid "Services and deamons"
-msgstr ""
-
-#: ../../services.pm_.c:217
-msgid ""
-"No additional information\n"
-"about this service, sorry."
-msgstr ""
-
-#: ../../services.pm_.c:224
-#, fuzzy
-msgid "On boot"
-msgstr "Yaboot"
-
-#: ../../services.pm_.c:236
-#, fuzzy
-msgid "Start"
-msgstr "Stato:"
-
-#: ../../services.pm_.c:236
-#, fuzzy
-msgid "Stop"
-msgstr "Sektoro"
-
-#: ../../share/advertising/00-thanks.pl_.c:9
-msgid "Thank you for choosing Mandrake Linux 8.2"
-msgstr ""
-
-#: ../../share/advertising/00-thanks.pl_.c:10
-msgid "Welcome to the Open Source world"
-msgstr ""
-
-#: ../../share/advertising/00-thanks.pl_.c:11
-msgid ""
-"The success of MandrakeSoft is based upon the principle of Free Software. "
-"Your new operating system is the result of collaborative work on the part of "
-"the worldwide Linux Community"
-msgstr ""
-
-#: ../../share/advertising/01-gnu.pl_.c:9
-#, fuzzy
-msgid "Join the Free Software world"
-msgstr "La cetero de la mondo"
-
-#: ../../share/advertising/01-gnu.pl_.c:10
-msgid ""
-"Get to know the Open Source community and become a member. Learn, teach, and "
-"help others by joining the many discussion forums that you will find in our "
-"\"Community\" webpages"
-msgstr ""
-
-#: ../../share/advertising/02-internet.pl_.c:9
-#, fuzzy
-msgid "Internet and Messaging"
-msgstr "Interreto"
-
-#: ../../share/advertising/02-internet.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best software to access everything the "
-"Internet has to offer: Surf the web & view animations with Mozilla and "
-"Konqueror, exchange email & organize your personal information with "
-"Evolution and Kmail, and much more"
-msgstr ""
-
-#: ../../share/advertising/03-graphic.pl_.c:9
-#, fuzzy
-msgid "Multimedia and Graphics"
-msgstr "Plurmedia - Grafiko"
-
-#: ../../share/advertising/03-graphic.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 lets you push your multimedia computer to its limits! Use "
-"the latest software to play music and audio files, edit and organize your "
-"images and photos, watch TV and videos, and much more"
-msgstr ""
-
-#: ../../share/advertising/04-develop.pl_.c:9
-#, fuzzy
-msgid "Development"
-msgstr "Programisto"
-
-#: ../../share/advertising/04-develop.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 is the ultimate development platform. Discover the power "
-"of the GNU gcc compiler as well as the best Open Source development "
-"environments"
-msgstr ""
-
-#: ../../share/advertising/05-contcenter.pl_.c:9
-#, fuzzy
-msgid "Mandrake Control Center"
-msgstr "Konekti al la interreto"
-
-#: ../../share/advertising/05-contcenter.pl_.c:10
-msgid ""
-"The Mandrake Linux 8.2 Control Center is a one-stop location for fully "
-"customizing and configuring your Mandrake system"
-msgstr ""
-
-#: ../../share/advertising/06-user.pl_.c:9
-#, fuzzy
-msgid "User interfaces"
-msgstr "Reta interfaco"
-
-#: ../../share/advertising/06-user.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides 11 different graphical desktop environments and "
-"window managers to choose from including GNOME 1.4, KDE 2.2.2, Window Maker "
-"0.8, and the rest"
-msgstr ""
-
-#: ../../share/advertising/07-server.pl_.c:9
-#, fuzzy
-msgid "Server Software"
-msgstr "Požtejo de SMB servilo"
-
-#: ../../share/advertising/07-server.pl_.c:10
-msgid ""
-"Transform your machine into a powerful server with just a few clicks of the "
-"mouse: Web server, email, firewall, router, file and print server, ..."
-msgstr ""
-
-#: ../../share/advertising/08-games.pl_.c:9
-msgid "Games"
-msgstr "Ludoj"
-
-#: ../../share/advertising/08-games.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best Open Source games - arcade, action, "
-"cards, sports, strategy, ..."
-msgstr ""
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:9
-msgid "MandrakeCampus"
-msgstr ""
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:10
-msgid ""
-"Would you like to learn Linux simply, quickly, and for free? MandrakeSoft "
-"provides free Linux training, as well as a way to test your progress, at "
-"MandrakeCampus -- our online training center"
-msgstr ""
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:9
-#, fuzzy
-msgid "MandrakeExpert"
-msgstr "Spertulo"
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:10
-msgid ""
-"Quality support from the Linux Community, and from MandrakeSoft, is just "
-"around the corner. And if you're already a Linux veteran, become an \"Expert"
-"\" and share your knowledge at our support website"
-msgstr ""
-
-#: ../../share/advertising/11-consul.pl_.c:9
-msgid "MandrakeConsulting"
-msgstr ""
-
-#: ../../share/advertising/11-consul.pl_.c:10
-msgid ""
-"For all of your IT projects, our consultants are ready to analyze your "
-"requirements and offer a customized solution. Benefit from MandrakeSoft's "
-"vast experience as a Linux producer to provide a true IT alternative for "
-"your business organization"
-msgstr ""
-
-#: ../../share/advertising/12-MDKstore.pl_.c:9
-msgid "MandrakeStore"
-msgstr ""
-
-#: ../../share/advertising/12-MDKstore.pl_.c:10
-msgid ""
-"A full range of Linux solutions, as well as special offers on products and "
-"'goodies', are available online at our e-store"
-msgstr ""
-
-#: ../../share/advertising/13-Nvert.pl_.c:9
-msgid ""
-"For more information on MandrakeSoft's Professional Services and commercial "
-"offerings, please see the following web page:"
-msgstr ""
-
-#: ../../share/advertising/13-Nvert.pl_.c:11
-msgid "http://www.mandrakesoft.com/sales/contact"
-msgstr ""
-
-#: ../../standalone.pm_.c:25
-#, fuzzy
-msgid "Installing packages..."
-msgstr "Instalanta paka¼o %s"
-
-#: ../../standalone/diskdrake_.c:85
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I'll try to go on blanking bad partitions"
-msgstr ""
-"Mi ne povas legi vian subdisktabelon, ųi estas tro difektita por mi :(\n"
-"Mi penos dażri per blankigi difektitajn subdiskojn"
-
-#: ../../standalone/drakautoinst_.c:45
-#, fuzzy
-msgid "Error!"
-msgstr "Eraro"
-
-#: ../../standalone/drakautoinst_.c:46
-#, c-format
-msgid "I can't find needed image file `%s'."
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:48
-#, fuzzy
-msgid "Auto Install Configurator"
-msgstr "Post-instala konfigurado"
-
-#: ../../standalone/drakautoinst_.c:49
-msgid ""
-"You are about to configure an Auto Install floppy. This feature is somewhat "
-"dangerous and must be used circumspectly.\n"
-"\n"
-"With that feature, you will be able to replay the installation you've "
-"performed on this computer, being interactively prompted for some steps, in "
-"order to change their values.\n"
-"\n"
-"For maximum safety, the partitioning and formatting will never be performed "
-"automatically, whatever you chose during the install of this computer.\n"
-"\n"
-"Do you want to continue?"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:71
-#, fuzzy
-msgid "Automatic Steps Configuration"
-msgstr "Post-instala konfigurado"
-
-#: ../../standalone/drakautoinst_.c:72
-msgid ""
-"Please choose for each step whether it will replay like your install, or it "
-"will be manual"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:145
-msgid ""
-"\n"
-"Welcome.\n"
-"\n"
-"The parameters of the auto-install are available in the sections on the left"
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:243 ../../standalone/drakgw_.c:671
-#: ../../standalone/scannerdrake_.c:106
-msgid "Congratulations!"
-msgstr "Gratulojn!"
-
-#: ../../standalone/drakautoinst_.c:244
-msgid ""
-"The floppy has been successfully generated.\n"
-"You may now replay your installation."
-msgstr ""
-
-#: ../../standalone/drakautoinst_.c:282
-#, fuzzy
-msgid "Auto Install"
-msgstr "Instalu"
-
-#: ../../standalone/drakautoinst_.c:352
-#, fuzzy
-msgid "Add an item"
-msgstr "Aldonu uzulon"
-
-#: ../../standalone/drakautoinst_.c:359
-#, fuzzy
-msgid "Remove the last item"
-msgstr "Formatas retrokonektan dosieron %s"
-
-#: ../../standalone/drakbackup_.c:448 ../../standalone/drakbackup_.c:451
-#: ../../standalone/drakbackup_.c:455
-msgid ""
-"***********************************************************************\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:449
-msgid ""
-"\n"
-" DrakBackup Report \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:450
-msgid ""
-"\n"
-" DrakBackup Daemon Report\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:453
-msgid ""
-"\n"
-"\n"
-"***********************************************************************\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:454
-msgid ""
-"\n"
-" DrakBackup Report Details\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:476
-msgid "total progess"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:555 ../../standalone/drakbackup_.c:602
-msgid "Backup system files..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:603 ../../standalone/drakbackup_.c:667
-#, fuzzy
-msgid "Hard Disk Backup files..."
-msgstr "Malbona rezerva dosiero"
-
-#: ../../standalone/drakbackup_.c:615
-#, fuzzy
-msgid "Backup User files..."
-msgstr "Malbona rezerva dosiero"
-
-#: ../../standalone/drakbackup_.c:616
-msgid "Hard Disk Backup Progress..."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:666
-#, fuzzy
-msgid "Backup Other files..."
-msgstr "Malbona rezerva dosiero"
-
-#: ../../standalone/drakbackup_.c:674
-#, c-format
-msgid ""
-"file list send by FTP : %s\n"
-" "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:677
-msgid ""
-"\n"
-"(!) FTP connexion problem: It was not possible to send your backup files by "
-"FTP.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:687
-msgid "(!) Error during mail sending. \n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:728 ../../standalone/drakbackup_.c:739
-#: ../../standalone/drakbackup_.c:750 ../../standalone/drakfont_.c:787
-#, fuzzy
-msgid "File Selection"
-msgstr "Elektado de Paka¼oj"
-
-#: ../../standalone/drakbackup_.c:755
-msgid "Select the files or directories and click on 'Add'"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:790
-msgid ""
-"\n"
-"Please check all options that you need.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:791
-msgid ""
-"These options can backup and restore all files in your /etc directory.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:792
-msgid "Backup your System files. ( /etc directory )"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:793
-msgid "Use incremental backup (do not replace old backups)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:794
-msgid "Do not include critical files (passwd, group, fstab)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:795
-msgid ""
-"With this option you will be able to restore any version\n"
-" of your /etc directory."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:812
-#, fuzzy
-msgid "Please check all users that you want to include in your backup."
-msgstr "Bonvole, elektu la paka¼ojn kiujn vi deziras instali."
-
-#: ../../standalone/drakbackup_.c:839
-msgid "Do not include the browser cache"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:840 ../../standalone/drakbackup_.c:864
-msgid "Use Incremental Backups (do not replace old backups)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:862 ../../standalone/drakfont_.c:827
-#, fuzzy
-msgid "Remove Selected"
-msgstr "Malinstalu printvicon"
-
-#: ../../standalone/drakbackup_.c:900
-#, fuzzy
-msgid "Windows (FAT32)"
-msgstr "Forigu Vindozon"
-
-#: ../../standalone/drakbackup_.c:939
-#, fuzzy
-msgid "Users"
-msgstr "Salutnomo"
-
-#: ../../standalone/drakbackup_.c:964
-msgid "Use FTP connection to backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:967
-#, fuzzy
-msgid "Please enter the host name or IP."
-msgstr "Bonvole, provu la muson"
-
-#: ../../standalone/drakbackup_.c:972
-msgid ""
-"Please enter the directory to\n"
-" put the backup on this host."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:977
-#, fuzzy
-msgid "Please enter your login"
-msgstr "Bonvole provu denove"
-
-#: ../../standalone/drakbackup_.c:982
-#, fuzzy
-msgid "Please enter your password"
-msgstr "Bonvole provu denove"
-
-#: ../../standalone/drakbackup_.c:988
-#, fuzzy
-msgid "Remember this password"
-msgstr "Neniu pasvorto"
-
-#: ../../standalone/drakbackup_.c:1052 ../../standalone/drakbackup_.c:2048
-#, fuzzy
-msgid "FTP Connection"
-msgstr "LAN Konfigura¼o"
-
-#: ../../standalone/drakbackup_.c:1059 ../../standalone/drakbackup_.c:2056
-#, fuzzy
-msgid "Secure Connection"
-msgstr "Elektu Printilan Konekton"
-
-#: ../../standalone/drakbackup_.c:1085 ../../standalone/drakbackup_.c:2889
-msgid "Use CD/DVDROM to backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1088 ../../standalone/drakbackup_.c:2893
-#, fuzzy
-msgid "Please choose your CD space"
-msgstr "Bonvole, elektu vian klavaran aranųon."
-
-#: ../../standalone/drakbackup_.c:1094 ../../standalone/drakbackup_.c:2905
-#, fuzzy
-msgid "Please check if you are using CDRW media"
-msgstr "Bonvolu klaki sur subdiskon"
-
-#: ../../standalone/drakbackup_.c:1100 ../../standalone/drakbackup_.c:2911
-msgid "Please check if you want to erase your CDRW before"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1106
-#, fuzzy
-msgid ""
-"Please check if you want to include\n"
-" install boot on your CD."
-msgstr "Bonvole, elektu la paka¼ojn kiujn vi deziras instali."
-
-#: ../../standalone/drakbackup_.c:1112
-msgid ""
-"Please enter your CD Writer device name\n"
-" ex: 0,1,0"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1153
-#, fuzzy
-msgid "Use tape to backup"
-msgstr "Malbona rezerva dosiero"
-
-#: ../../standalone/drakbackup_.c:1156
-msgid "Please enter the device name to use for backup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1162 ../../standalone/drakbackup_.c:1203
-#: ../../standalone/drakbackup_.c:2013
-msgid ""
-"Please enter the maximum size\n"
-" allowed for Drakbackup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1195 ../../standalone/drakbackup_.c:2005
-#, fuzzy
-msgid "Please enter the directory to save:"
-msgstr "Bonvole, provu la muson"
-
-#: ../../standalone/drakbackup_.c:1209 ../../standalone/drakbackup_.c:2019
-#, fuzzy
-msgid "Use quota for backup files."
-msgstr "Malbona rezerva dosiero"
-
-#: ../../standalone/drakbackup_.c:1267
-#, fuzzy
-msgid "Network"
-msgstr "Reta interfaco"
-
-#: ../../standalone/drakbackup_.c:1272
-msgid "CDROM / DVDROM"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1277
-msgid "HardDrive / NFS"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1297 ../../standalone/drakbackup_.c:1301
-#: ../../standalone/drakbackup_.c:1305
-msgid "hourly"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1298 ../../standalone/drakbackup_.c:1302
-#: ../../standalone/drakbackup_.c:1305
-msgid "daily"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1299 ../../standalone/drakbackup_.c:1303
-#: ../../standalone/drakbackup_.c:1305
-msgid "weekly"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1300 ../../standalone/drakbackup_.c:1304
-#: ../../standalone/drakbackup_.c:1305
-msgid "monthly"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1312
-#, fuzzy
-msgid "Use daemon"
-msgstr "Salutnomo"
-
-#: ../../standalone/drakbackup_.c:1317
-#, fuzzy
-msgid ""
-"Please choose the time \n"
-"interval between each backup"
-msgstr "Bonvole, elektu la paka¼ojn kiujn vi deziras instali."
-
-#: ../../standalone/drakbackup_.c:1323
-#, fuzzy
-msgid ""
-"Please choose the\n"
-"media for backup."
-msgstr "Bonvole, elektu lingvon por uzi."
-
-#: ../../standalone/drakbackup_.c:1327
-#, fuzzy
-msgid "Use Hard Drive with daemon"
-msgstr "Detektado de fiksdisko(j)"
-
-#: ../../standalone/drakbackup_.c:1329
-#, fuzzy
-msgid "Use FTP with daemon"
-msgstr "Salutnomo"
-
-#: ../../standalone/drakbackup_.c:1333
-msgid "Please be sure that the cron daemon is included in your services."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1369
-msgid "Send mail report after each backup to :"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1411
-msgid "What"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1416
-#, fuzzy
-msgid "Where"
-msgstr "Rado"
-
-#: ../../standalone/drakbackup_.c:1421
-#, fuzzy
-msgid "When"
-msgstr "Rado"
-
-#: ../../standalone/drakbackup_.c:1426
-#, fuzzy
-msgid "More Options"
-msgstr "Modulaj opcioj:"
-
-#: ../../standalone/drakbackup_.c:1445 ../../standalone/drakbackup_.c:2801
-#, fuzzy
-msgid "Drakbackup Configuration"
-msgstr "Reta Konfigura¼o"
-
-#: ../../standalone/drakbackup_.c:1463
-#, fuzzy
-msgid "Please choose where you want to backup"
-msgstr "Bonvole, elektu la paka¼ojn kiujn vi deziras instali."
-
-#: ../../standalone/drakbackup_.c:1465
-msgid "on Hard Drive"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1476
-msgid "across Network"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1540
-#, fuzzy
-msgid "Please choose what you want to backup"
-msgstr "Bonvole, elektu la paka¼ojn kiujn vi deziras instali."
-
-#: ../../standalone/drakbackup_.c:1541
-#, fuzzy
-msgid "Backup system"
-msgstr "Dosiersistemo konfiguro"
-
-#: ../../standalone/drakbackup_.c:1542
-msgid "Backup Users"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1545
-msgid "Select user manually"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1627
-msgid ""
-"\n"
-"Backup Sources: \n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1628
-msgid ""
-"\n"
-"- System Files:\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1630
-msgid ""
-"\n"
-"- User Files:\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1632
-msgid ""
-"\n"
-"- Other Files:\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1634
-#, c-format
-msgid ""
-"\n"
-"- Save on Hard drive on path : %s\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1635
-#, c-format
-msgid ""
-"\n"
-"- Save on FTP on host : %s\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1636
-#, c-format
-msgid ""
-"\t\t user name: %s\n"
-"\t\t on path: %s \n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1637
-#, fuzzy
-msgid ""
-"\n"
-"- Options:\n"
-msgstr "Opcioj"
-
-#: ../../standalone/drakbackup_.c:1638
-msgid "\tDo not include System Files\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1639
-msgid "\tBackups use tar and bzip2\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1640
-msgid "\tBackups use tar and gzip\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1641
-#, c-format
-msgid ""
-"\n"
-"- Daemon (%s) include :\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1642
-msgid "\t-Hard drive.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1643
-msgid "\t-CDROM.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1644
-msgid "\t-Network by FTP.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1645
-msgid "\t-Network by SSH.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1647
-msgid "No configuration, please click Wizard or Advanced.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1652
-msgid ""
-"List of data to restore:\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1753
-msgid ""
-"List of data corrupted:\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1755
-#, fuzzy
-msgid "Please uncheck or remove it on next time."
-msgstr "Bonvole, elektu al kiu seria pordo estas via modemo konektata?"
-
-#: ../../standalone/drakbackup_.c:1765
-msgid "Backup files are corrupted"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1786
-msgid " All your selectionned data have been "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1787
-#, c-format
-msgid " Successfuly Restored on %s "
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1886
-#, fuzzy
-msgid " Restore Configuration "
-msgstr "Reta Konfigura¼o"
-
-#: ../../standalone/drakbackup_.c:1904
-msgid "OK to restore the other files."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1922
-msgid "User list to restore (only the most recent date per user is important)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:1972
-#, fuzzy
-msgid "Backup the system files before:"
-msgstr "Malbona rezerva dosiero"
-
-#: ../../standalone/drakbackup_.c:1974
-#, fuzzy
-msgid "please choose the date to restore"
-msgstr "Bonvole, elektu la specon de via muso."
-
-#: ../../standalone/drakbackup_.c:2002
-#, fuzzy
-msgid "Use Hard Disk to backup"
-msgstr "Malbona rezerva dosiero"
-
-#: ../../standalone/drakbackup_.c:2083
-#, fuzzy
-msgid "Restore from Hard Disk."
-msgstr "Restażru de disketo"
-
-#: ../../standalone/drakbackup_.c:2085
-msgid "Please enter the directory where backups are stored"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2143
-#, fuzzy
-msgid "Select another media to restore from"
-msgstr "Bonvole, elektu la specon de via muso."
-
-#: ../../standalone/drakbackup_.c:2145
-#, fuzzy
-msgid "Other Media"
-msgstr "Alia"
-
-#: ../../standalone/drakbackup_.c:2151
-#, fuzzy
-msgid "Restore system"
-msgstr "Instalu sistemon"
-
-#: ../../standalone/drakbackup_.c:2152
-#, fuzzy
-msgid "Restore Users"
-msgstr "Restażru de dosiero"
-
-#: ../../standalone/drakbackup_.c:2153
-#, fuzzy
-msgid "Restore Other"
-msgstr "Restażru de dosiero"
-
-#: ../../standalone/drakbackup_.c:2155
-msgid "select path to restore (instead of / )"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2159
-msgid "Do new backup before restore (only for incremental backups.)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2160
-msgid "Remove user directories before restore."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2217
-msgid "Restore all backups"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2225
-#, fuzzy
-msgid "Custom Restore"
-msgstr "Akomodata"
-
-#: ../../standalone/drakbackup_.c:2266 ../../standalone/drakbackup_.c:2291
-#: ../../standalone/drakbackup_.c:2312 ../../standalone/drakbackup_.c:2333
-#: ../../standalone/drakbackup_.c:2351 ../../standalone/drakbackup_.c:2383
-#: ../../standalone/drakbackup_.c:2399 ../../standalone/drakbackup_.c:2419
-#: ../../standalone/drakbackup_.c:2438 ../../standalone/drakbackup_.c:2460
-#: ../../standalone/drakfont_.c:575
-#, fuzzy
-msgid "Help"
-msgstr "/_Helpo"
-
-#: ../../standalone/drakbackup_.c:2269 ../../standalone/drakbackup_.c:2296
-#: ../../standalone/drakbackup_.c:2315 ../../standalone/drakbackup_.c:2336
-#: ../../standalone/drakbackup_.c:2354 ../../standalone/drakbackup_.c:2402
-#: ../../standalone/drakbackup_.c:2422 ../../standalone/drakbackup_.c:2441
-#, fuzzy
-msgid "Previous"
-msgstr "<- Antaża"
-
-#: ../../standalone/drakbackup_.c:2271 ../../standalone/drakbackup_.c:2338
-#: ../../standalone/logdrake_.c:224
-#, fuzzy
-msgid "Save"
-msgstr "Stato:"
-
-#: ../../standalone/drakbackup_.c:2317
-#, fuzzy
-msgid "Build Backup"
-msgstr "Malbona rezerva dosiero"
-
-#: ../../standalone/drakbackup_.c:2356 ../../standalone/drakbackup_.c:3033
-#, fuzzy
-msgid "Restore"
-msgstr "Restażru de dosiero"
-
-#: ../../standalone/drakbackup_.c:2404 ../../standalone/drakbackup_.c:2424
-#: ../../standalone/drakbackup_.c:2445
-#, fuzzy
-msgid "Next"
-msgstr "Sekvanta ->"
-
-#: ../../standalone/drakbackup_.c:2478
-msgid ""
-"Please Build backup before to restore it...\n"
-" or verify that your path to save is correct."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2499
-msgid ""
-"Error durind sendmail\n"
-" your report mail was not sent\n"
-" Please configure sendmail"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2522
-#, fuzzy
-msgid "Package List to Install"
-msgstr "Elektu paka¼ojn"
-
-#: ../../standalone/drakbackup_.c:2550
-msgid ""
-"Error durind sending file via FTP.\n"
-" Please correct your FTP configuration."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2573
-#, fuzzy
-msgid "Please select data to restore..."
-msgstr "Bonvole, elektu lingvon por uzi."
-
-#: ../../standalone/drakbackup_.c:2594
-#, fuzzy
-msgid "Please select media for backup..."
-msgstr "Bonvole, elektu lingvon por uzi."
-
-#: ../../standalone/drakbackup_.c:2616
-#, fuzzy
-msgid "Please select data to backup..."
-msgstr "Bonvole, elektu lingvon por uzi."
-
-#: ../../standalone/drakbackup_.c:2638
-msgid ""
-"No configuration file found \n"
-"please click Wizard or Advanced."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2659
-msgid "Under Devel ... please wait."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2739
-#, fuzzy
-msgid "Backup system files"
-msgstr "Malbona rezerva dosiero"
-
-#: ../../standalone/drakbackup_.c:2741
-#, fuzzy
-msgid "Backup user files"
-msgstr "Malbona rezerva dosiero"
-
-#: ../../standalone/drakbackup_.c:2743
-#, fuzzy
-msgid "Backup other files"
-msgstr "Malbona rezerva dosiero"
-
-#: ../../standalone/drakbackup_.c:2745 ../../standalone/drakbackup_.c:2776
-msgid "Total Progress"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2767
-msgid "files sending by FTP"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2771
-#, fuzzy
-msgid "Sending files..."
-msgstr "Konservu en dosiero"
-
-#: ../../standalone/drakbackup_.c:2841
-msgid "Data list to include on CDROM."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2899
-#, fuzzy
-msgid "Please enter the cd writer speed"
-msgstr "Bonvole, provu la muson"
-
-#: ../../standalone/drakbackup_.c:2917
-msgid "Please enter your CD Writer device name (ex: 0,1,0)"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:2923
-#, fuzzy
-msgid "Please check if you want to include install boot on your CD."
-msgstr "Bonvole, elektu la paka¼ojn kiujn vi deziras instali."
-
-#: ../../standalone/drakbackup_.c:2989
-#, fuzzy
-msgid "Backup Now from configuration file"
-msgstr "Reta Konfigura¼o"
-
-#: ../../standalone/drakbackup_.c:2999
-#, fuzzy
-msgid "View Backup Configuration."
-msgstr "Reta Konfigura¼o"
-
-#: ../../standalone/drakbackup_.c:3020
-#, fuzzy
-msgid "Wizard Configuration"
-msgstr "LAN Konfigura¼o"
-
-#: ../../standalone/drakbackup_.c:3024
-#, fuzzy
-msgid "Advanced Configuration"
-msgstr "LAN Konfigura¼o"
-
-#: ../../standalone/drakbackup_.c:3028
-#, fuzzy
-msgid "Backup Now"
-msgstr "Dosiersistemo konfiguro"
-
-#: ../../standalone/drakbackup_.c:3053
-msgid "Drakbackup"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3104
-msgid ""
-"options description:\n"
-"\n"
-" In this step Drakbackup allow you to change:\n"
-"\n"
-" - The compression mode:\n"
-" \n"
-" If you check bzip2 compression, you will compress\n"
-" your data better than gzip (about 2-10 %).\n"
-" This option is not checked by default because\n"
-" this compression mode needs more time ( about 1000% more).\n"
-" \n"
-" - The update mode:\n"
-"\n"
-" This option will update your backup, but this\n"
-" option is not really useful because you need to\n"
-" decompress your backup before you can update it.\n"
-" \n"
-" - the .backupignore mode:\n"
-"\n"
-" Like with cvs, Drakbackup will ignore all references\n"
-" included in .backupignore files in each directories.\n"
-" ex: \n"
-" /*> cat .backupignore*/\n"
-" *.o\n"
-" *~\n"
-" ...\n"
-" \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3134
-msgid ""
-"\n"
-" Some errors during sendmail are caused by \n"
-" a bad configuration of postfix. To solve it you have to\n"
-" set myhostname or mydomain in /etc/postfix/main.cf\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3142
-msgid ""
-"options description:\n"
-"\n"
-" - Backup system files:\n"
-" \n"
-"\tThis option allows you to backup your /etc directory,\n"
-"\twhich contains all configuration files. Please be\n"
-"\tcareful during the restore step to not overwrite:\n"
-"\t\t/etc/passwd \n"
-"\t\t/etc/group \n"
-"\t\t/etc/fstab\n"
-"\n"
-" - Backup User files: \n"
-"\n"
-"\tThis option allows you select all users that you want \n"
-"\tto backup.\n"
-"\tTo preserve disk space, it is recommended that you \n"
-"\tdo not include web browser's cache.\n"
-"\n"
-" - Backup Other files: \n"
-"\n"
-"\tThis option allows you to add more data to save.\n"
-"\tWith the other backup it's not possible at the \n"
-"\tmoment to select select incremental backup.\t\t\n"
-" \n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerful \n"
-"\toption for backup. This option allows you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed afterward.\n"
-"\tThen you will be able, during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this option all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3181
-msgid ""
-"restore description:\n"
-" \n"
-"Only the most recent date will be used ,because with incremental \n"
-"backups it is necesarry to restore one by one each older backups.\n"
-"\n"
-"So if you don't like to restore an user please unselect all his\n"
-"check box.\n"
-"\n"
-"Otherwise, you are able to select only one of this\n"
-"\n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerfull \n"
-"\toption to use backup, this option allow you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed after.\n"
-"\tSo you will be able during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this options all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3207 ../../standalone/drakbackup_.c:3282
-msgid ""
-" Copyright (C) 2001 MandrakeSoft by DUPONT Sebastien <dupont_s\\@epita.fr>"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3209 ../../standalone/drakbackup_.c:3284
-msgid ""
-" This program is free software; you can redistribute it and/or modify\n"
-" it under the terms of the GNU General Public License as published by\n"
-" the Free Software Foundation; either version 2, or (at your option)\n"
-" any later version.\n"
-"\n"
-" This program is distributed in the hope that it will be useful,\n"
-" but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-" GNU General Public License for more details.\n"
-"\n"
-" You should have received a copy of the GNU General Public License\n"
-" along with this program; if not, write to the Free Software\n"
-" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3223
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select: \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, DrakBackup will remove \n"
-" your original directory and verify that all \n"
-" backup files are not corrupted. It is recommended \n"
-" you do a last backup before restoring.\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3261
-msgid ""
-"options description:\n"
-"\n"
-"Please be careful when you are using ftp backup, because only \n"
-"backups that are already built are sent to the server.\n"
-"So at the moment, you need to build the backup on your hard \n"
-"drive before sending it to the server.\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3270
-msgid ""
-"\n"
-"Restore Backup Problems:\n"
-"\n"
-"During the restore step, Drakbackup will verify all your\n"
-"backup files before restoring them.\n"
-"Before the restore, Drakbackup will remove \n"
-"your original directory, and you will loose all your \n"
-"data. It is important to be careful and not modify the \n"
-"backup data files by hand.\n"
-msgstr ""
-
-#: ../../standalone/drakbackup_.c:3298
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, Drakbackup will remove\n"
-" your original directory and verify that all\n"
-" backup files are not corrupted. It is recommended\n"
-" you do a last backup before restoring.\n"
-" \n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakboot_.c:58
-#, c-format
-msgid "Installation of %s failed. The following error occured:"
-msgstr "Instalado de %s malsukcesis. La sekvanta eraro okazis:"
-
-#: ../../standalone/drakfont_.c:229
-msgid "Search installed fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:231
-msgid "Unselect fonts installed"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:252
-msgid "parse all fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:253
-#, fuzzy
-msgid "no fonts found"
-msgstr "neniu retkarto trovita"
-
-#: ../../standalone/drakfont_.c:261 ../../standalone/drakfont_.c:303
-#: ../../standalone/drakfont_.c:352 ../../standalone/drakfont_.c:410
-#: ../../standalone/drakfont_.c:417 ../../standalone/drakfont_.c:443
-#: ../../standalone/drakfont_.c:455 ../../standalone/drakfont_.c:468
-#, fuzzy
-msgid "done"
-msgstr "Finata"
-
-#: ../../standalone/drakfont_.c:265
-msgid "could not find any font in your mounted partitions"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:301
-msgid "Reselect correct fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:304
-msgid "could not find any font.\n"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:327
-msgid "Search fonts in installed list"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:350
-msgid "Fonts copy"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:353
-#, fuzzy
-msgid "True Type fonts installation"
-msgstr "Preparas instaladon"
-
-#: ../../standalone/drakfont_.c:357
-msgid "please wait during ttmkfdir..."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:359
-msgid "True Type install done"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:366 ../../standalone/drakfont_.c:382
-msgid "Fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:370 ../../standalone/drakfont_.c:386
-#: ../../standalone/drakfont_.c:406
-msgid "type1inst building"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:375 ../../standalone/drakfont_.c:390
-msgid "Ghostscript referencing"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:397
-msgid "ttf fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:401
-msgid "pfm fonts conversion"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:411
-msgid "Suppress temporary Files"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:414
-#, fuzzy
-msgid "Restart XFS"
-msgstr "limigu"
-
-#: ../../standalone/drakfont_.c:453 ../../standalone/drakfont_.c:463
-msgid "Suppress Fonts Files"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:465
-#, fuzzy
-msgid "xfs restart"
-msgstr "limigu"
-
-#: ../../standalone/drakfont_.c:472 ../../standalone/drakfont_.c:760
-msgid ""
-"Before installing any fonts, be sure that you have the right to use and "
-"install them on your system.\n"
-"\n"
-"-You can install the fonts using the normal way. In rare cases, bogus fonts "
-"may hang up your X Server."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:547
-#, fuzzy
-msgid "Fonts Importation"
-msgstr "Formatu subdiskojn"
-
-#: ../../standalone/drakfont_.c:562
-msgid "Get Windows Fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:564
-msgid "Uninstall Fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:568
-#, fuzzy
-msgid "Advanced Options"
-msgstr "LAN Konfigura¼o"
-
-#: ../../standalone/drakfont_.c:570
-#, fuzzy
-msgid "Font List"
-msgstr "Surmetingo"
-
-#: ../../standalone/drakfont_.c:739
-#, fuzzy
-msgid "Choose the applications that will support the fonts :"
-msgstr "Elektu la subdiskoj kiuj vi deziras formati"
-
-#: ../../standalone/drakfont_.c:743
-msgid "Ghostscript"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:747
-#, fuzzy
-msgid "StarOffice"
-msgstr "Oficejo"
-
-#: ../../standalone/drakfont_.c:751
-#, fuzzy
-msgid "Abiword"
-msgstr "Ęesigu"
-
-#: ../../standalone/drakfont_.c:755
-#, fuzzy
-msgid "Generic Printers"
-msgstr "Printilo"
-
-#: ../../standalone/drakfont_.c:792
-msgid "Select the font file or directory and click on 'Add'"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:828
-#, fuzzy
-msgid "Install List"
-msgstr "Instalu sistemon"
-
-#: ../../standalone/drakfont_.c:858
-msgid "click here if you are sure."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:860
-msgid "here if no."
-msgstr ""
-
-#: ../../standalone/drakfont_.c:897
-msgid "Unselected All"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:899
-#, fuzzy
-msgid "Selected All"
-msgstr "Elektu dosieron"
-
-#: ../../standalone/drakfont_.c:901
-#, fuzzy
-msgid "Remove List"
-msgstr "Malproksima printilo"
-
-#: ../../standalone/drakfont_.c:919 ../../standalone/drakfont_.c:939
-msgid "Initials tests"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:920
-#, fuzzy
-msgid "Copy fonts on your system"
-msgstr "Via komputilo ne havas retadaptilon!"
-
-#: ../../standalone/drakfont_.c:921
-msgid "Install & convert Fonts"
-msgstr ""
-
-#: ../../standalone/drakfont_.c:922
-#, fuzzy
-msgid "Post Install"
-msgstr "Instalu"
-
-#: ../../standalone/drakfont_.c:940
-#, fuzzy
-msgid "Remove fonts on your system"
-msgstr "Via komputilo ne havas retadaptilon!"
-
-#: ../../standalone/drakfont_.c:941
-#, fuzzy
-msgid "Post Uninstall"
-msgstr "Eliru instalprogramon"
-
-#: ../../standalone/drakgw_.c:43 ../../standalone/drakgw_.c:200
-msgid "Internet Connection Sharing"
-msgstr "Disdividado de Interreta Konekto"
-
-#: ../../standalone/drakgw_.c:138
-msgid "Internet Connection Sharing currently enabled"
-msgstr "Disdividado de Interreta Konekto nuntempe kapabligata"
-
-#: ../../standalone/drakgw_.c:139
-#, fuzzy
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently enabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-"La konfigurado de la disdividado de la Interreta konekto jam estas farita.\n"
-
-#: ../../standalone/drakgw_.c:143
-msgid "disable"
-msgstr "malebligu"
-
-#: ../../standalone/drakgw_.c:143 ../../standalone/drakgw_.c:168
-msgid "dismiss"
-msgstr "forsendu"
-
-#: ../../standalone/drakgw_.c:143 ../../standalone/drakgw_.c:168
-msgid "reconfigure"
-msgstr "rekonfiguru"
-
-#: ../../standalone/drakgw_.c:146
-#, fuzzy
-msgid "Disabling servers..."
-msgstr "Detektas aparatojn..."
-
-#: ../../standalone/drakgw_.c:154
-#, fuzzy
-msgid "Internet connection sharing is now disabled."
-msgstr "Disdividado de Interreta Konekto nuntempe malkapabligata"
-
-#: ../../standalone/drakgw_.c:163
-msgid "Internet Connection Sharing currently disabled"
-msgstr "Disdividado de Interreta Konekto nuntempe malkapabligata"
-
-#: ../../standalone/drakgw_.c:164
-#, fuzzy
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently disabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-"La konfigurado de la disdividado de la Interreta konekto jam estas farita.\n"
-
-#: ../../standalone/drakgw_.c:168
-msgid "enable"
-msgstr "ebligu"
-
-#: ../../standalone/drakgw_.c:175
-msgid "Enabling servers..."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:180
-#, fuzzy
-msgid "Internet connection sharing is now enabled."
-msgstr "Disdividado de Interreta Konekto nuntempe kapabligata"
-
-#: ../../standalone/drakgw_.c:201
-#, fuzzy
-msgid ""
-"You are about to configure your computer to share its Internet connection.\n"
-"With that feature, other computers on your local network will be able to use "
-"this computer's Internet connection.\n"
-"\n"
-"Note: you need a dedicated Network Adapter to set up a Local Area Network "
-"(LAN)."
-msgstr ""
-"Nun kiam via Interreta konekto estas konfigurata,\n"
-"vi povas konfiguri vian komputilon por disdividi ųian Interretan konekton.\n"
-"Notu: vi bezonas dedięan Retadaptilon por konfiguri Lokan Reton (LAN).\n"
-"\n"
-"Ęu vi deziras konfiguri Disdividadon de Interreta Konekto?\n"
-
-#: ../../standalone/drakgw_.c:227
-#, c-format
-msgid "Interface %s (using module %s)"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:228
-#, c-format
-msgid "Interface %s"
-msgstr "Interfaco %s"
-
-#: ../../standalone/drakgw_.c:236
-msgid "No network adapter on your system!"
-msgstr "Via komputilo ne havas retadaptilon!"
-
-#: ../../standalone/drakgw_.c:237
-msgid ""
-"No ethernet network adapter has been detected on your system. Please run the "
-"hardware configuration tool."
-msgstr ""
-"Mi ne detektas eterretan retadaptilom sur via sistemo. Bonvole lanęu la\n"
-"aparatokonfigurilon."
-
-#: ../../standalone/drakgw_.c:243
-msgid "Network interface"
-msgstr "Reta interfaco"
-
-#: ../../standalone/drakgw_.c:244
-#, c-format
-msgid ""
-"There is only one configured network adapter on your system:\n"
-"\n"
-"%s\n"
-"\n"
-"I am about to setup your Local Area Network with that adapter."
-msgstr ""
-"Ekzitas nur unu konfigurita retadaptilo sur via sistemo:\n"
-"\n"
-"%s\n"
-"\n"
-"Ęu vi deziras konfiguri vian Lokan Reton (LAN) kun ęi tiu adaptilo?"
-
-#: ../../standalone/drakgw_.c:253
-msgid ""
-"Please choose what network adapter will be connected to your Local Area "
-"Network."
-msgstr ""
-"Bonvole elektu kiun retadaptilon estos konektata al via Loka Reto (LAN)."
-
-#: ../../standalone/drakgw_.c:271
-#, fuzzy
-msgid "Network interface already configured"
-msgstr "Ekrano ne estas konfigurata"
-
-#: ../../standalone/drakgw_.c:272
-#, c-format
-msgid ""
-"Warning, the network adapter (%s) is already configured.\n"
-"\n"
-"Do you want an automatic re-configuration?\n"
-"\n"
-"You can do it manually but you need to know what you're doing."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:277
-#, fuzzy
-msgid "Automatic reconfiguration"
-msgstr "Post-instala konfigurado"
-
-#: ../../standalone/drakgw_.c:278
-#, fuzzy
-msgid "Show current interface configuration"
-msgstr "Interreta Konfigurado"
-
-#: ../../standalone/drakgw_.c:280
-#, c-format
-msgid ""
-"Current configuration of `%s':\n"
-"\n"
-"Network: %s\n"
-"IP address: %s\n"
-"IP attribution: %s\n"
-"Driver: %s"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:292
-msgid ""
-"I can keep your current configuration and assume you already set up a DHCP "
-"server; in that case please verify I correctly read the C-Class Network that "
-"you use for your local network; I will not reconfigure it and I will not "
-"touch your DHCP server configuration.\n"
-"\n"
-"Else, I can reconfigure your interface and (re)configure a DHCP server for "
-"you.\n"
-"\n"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:297
-msgid "C-Class Local Network"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:298
-#, fuzzy
-msgid "(This) DHCP Server IP"
-msgstr "IP de SMB servilo"
-
-#: ../../standalone/drakgw_.c:299
-msgid "Re-configure interface and DHCP server"
-msgstr ""
-
-#: ../../standalone/drakgw_.c:306
-msgid "The Local Network did not finish with `.0', bailing out."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:317
-#, c-format
-msgid "Potential LAN address conflict found in current config of %s!\n"
-msgstr "Ebla konflikto pri Loka-Reta adreso trovata en nuna konfiguro de %s!\n"
-
-#: ../../standalone/drakgw_.c:325 ../../standalone/drakgw_.c:331
-msgid "Firewalling configuration detected!"
-msgstr "Konfigura¼o de barilo detektata!"
-
-#: ../../standalone/drakgw_.c:326 ../../standalone/drakgw_.c:332
-msgid ""
-"Warning! An existing firewalling configuration has been detected. You may "
-"need some manual fix after installation."
-msgstr ""
-"Averto. Ekzistanta konfigura¼o de barilo detektata. Vi eble devas permane\n"
-"fiksi ųin poste de la instalado."
-
-#: ../../standalone/drakgw_.c:340
-msgid "Configuring..."
-msgstr "Mi konfiguras..."
-
-#: ../../standalone/drakgw_.c:341
-msgid "Configuring scripts, installing software, starting servers..."
-msgstr ""
-"Mi konfiguras komandodosierojn, instalas programojn, startas servilojn..."
-
-#: ../../standalone/drakgw_.c:378
-#, c-format
-msgid "Problems installing package %s"
-msgstr "Problemoj instalante paka¼on %s"
-
-#: ../../standalone/drakgw_.c:672
-msgid ""
-"Everything has been configured.\n"
-"You may now share Internet connection with other computers on your Local "
-"Area Network, using automatic network configuration (DHCP)."
-msgstr ""
-
-#: ../../standalone/drakgw_.c:689
-#, fuzzy
-msgid "The setup has already been done, but it's currently disabled."
-msgstr ""
-"La konfigurado de la disdividado de la Interreta konekto jam estas farita.\n"
-
-#: ../../standalone/drakgw_.c:690
-#, fuzzy
-msgid "The setup has already been done, and it's currently enabled."
-msgstr ""
-"La konfigurado de la disdividado de la Interreta konekto jam estas farita.\n"
-
-#: ../../standalone/drakgw_.c:691
-#, fuzzy
-msgid "No Internet Connection Sharing has ever been configured."
-msgstr "Disdividado de Interreta Konekto nuntempe kapabligata"
-
-#: ../../standalone/drakgw_.c:696
-#, fuzzy
-msgid "Internet connection sharing configuration"
-msgstr "Interreta konekta¼o kaj konfiguro"
-
-#: ../../standalone/drakgw_.c:703
-#, fuzzy, c-format
-msgid ""
-"Welcome to the Internet Connection Sharing utility!\n"
-"\n"
-"%s\n"
-"\n"
-"Click on Configure to launch the setup wizard."
-msgstr "Disdividado de Interreta Konekto"
-
-#: ../../standalone/draknet_.c:80
-#, fuzzy, c-format
-msgid "Network configuration (%d adapters)"
-msgstr "ISDN-a Konfigura¼on"
-
-#: ../../standalone/draknet_.c:87 ../../standalone/draknet_.c:595
-#, fuzzy
-msgid "Profile: "
-msgstr "muntado malsukcesis: "
-
-#: ../../standalone/draknet_.c:95
-msgid "Del profile..."
-msgstr ""
-
-#: ../../standalone/draknet_.c:101
-msgid "Profile to delete:"
-msgstr ""
-
-#: ../../standalone/draknet_.c:129
-msgid "New profile..."
-msgstr ""
-
-#: ../../standalone/draknet_.c:135
-msgid ""
-"Name of the profile to create (the new profile is created as a copy of the "
-"current one) :"
-msgstr ""
-
-#: ../../standalone/draknet_.c:161
-msgid "Hostname: "
-msgstr "Požtejo: "
-
-#: ../../standalone/draknet_.c:168
-#, fuzzy
-msgid "Internet access"
-msgstr "Interreto"
-
-#: ../../standalone/draknet_.c:181
-msgid "Type:"
-msgstr "Speco:"
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-msgid "Gateway:"
-msgstr "Kluzo:"
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-#, fuzzy
-msgid "Interface:"
-msgstr "Interreto"
-
-#: ../../standalone/draknet_.c:195
-msgid "Status:"
-msgstr "Stato:"
-
-#: ../../standalone/draknet_.c:202
-msgid "Wait please"
-msgstr ""
-
-#: ../../standalone/draknet_.c:220
-#, fuzzy
-msgid "Configure Internet Access..."
-msgstr "Konfiguru servojn"
-
-#: ../../standalone/draknet_.c:227 ../../standalone/draknet_.c:449
-msgid "LAN configuration"
-msgstr "LAN Konfigura¼o"
-
-#: ../../standalone/draknet_.c:232
-msgid "Driver"
-msgstr "Pelilo"
-
-#: ../../standalone/draknet_.c:232
-msgid "Interface"
-msgstr "Interfaco"
-
-#: ../../standalone/draknet_.c:232
-msgid "Protocol"
-msgstr "Protokolo"
-
-#: ../../standalone/draknet_.c:232
-#, fuzzy
-msgid "State"
-msgstr "Stato:"
-
-#: ../../standalone/draknet_.c:244
-#, fuzzy
-msgid "Configure Local Area Network..."
-msgstr "Konfiguru lokan reton"
-
-#: ../../standalone/draknet_.c:256
-msgid "Click here to launch the wizard ->"
-msgstr ""
-
-#: ../../standalone/draknet_.c:257
-msgid "Wizard..."
-msgstr "Soręisto..."
-
-#: ../../standalone/draknet_.c:283
-msgid "Apply"
-msgstr "Apliku"
-
-#: ../../standalone/draknet_.c:302
-#, fuzzy
-msgid "Please Wait... Applying the configuration"
-msgstr "Provu konfigura¼on"
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-msgid "Connected"
-msgstr "Konektita"
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-msgid "Not connected"
-msgstr "Ne konektita"
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Connect..."
-msgstr "Konektu..."
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Disconnect..."
-msgstr "Malkonektu..."
-
-#: ../../standalone/draknet_.c:404
-msgid ""
-"Warning, another Internet connection has been detected, maybe using your "
-"network"
-msgstr ""
-
-#: ../../standalone/draknet_.c:431
-msgid ""
-"You don't have any configured interface.\n"
-"Configure them first by clicking on 'Configure'"
-msgstr ""
-
-#: ../../standalone/draknet_.c:453
-msgid "LAN Configuration"
-msgstr "LAN Konfigura¼o"
-
-#: ../../standalone/draknet_.c:464
-#, c-format
-msgid "Adapter %s: %s"
-msgstr "Adaptilo %s: %s"
-
-#: ../../standalone/draknet_.c:470
-msgid "Boot Protocol"
-msgstr ""
-
-#: ../../standalone/draknet_.c:471
-msgid "Started on boot"
-msgstr ""
-
-#: ../../standalone/draknet_.c:472
-msgid "DHCP client"
-msgstr ""
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-#, fuzzy
-msgid "activate now"
-msgstr "Aktiva"
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-#, fuzzy
-msgid "deactivate now"
-msgstr "Aktiva"
-
-#: ../../standalone/draknet_.c:503
-msgid ""
-"This interface has not been configured yet.\n"
-"Launch the configuration wizard in the main window"
-msgstr ""
-
-#: ../../standalone/draknet_.c:560
-msgid ""
-"You don't have any internet connection.\n"
-"Create one first by clicking on 'Configure'"
-msgstr ""
-
-#: ../../standalone/draknet_.c:584
-#, fuzzy
-msgid "Internet connection configuration"
-msgstr "Interreta konekta¼o kaj konfiguro"
-
-#: ../../standalone/draknet_.c:588
-#, fuzzy
-msgid "Internet Connection Configuration"
-msgstr "Interreta konekta¼o kaj konfiguro"
-
-#: ../../standalone/draknet_.c:597
-msgid "Connection type: "
-msgstr "Speco de konekto"
-
-#: ../../standalone/draknet_.c:603
-msgid "Parameters"
-msgstr ""
-
-#: ../../standalone/draknet_.c:621
-msgid "Gateway"
-msgstr "Kluzo"
-
-#: ../../standalone/draknet_.c:630
-msgid "Ethernet Card"
-msgstr ""
-
-#: ../../standalone/draknet_.c:631
-msgid "DHCP Client"
-msgstr ""
-
-#: ../../standalone/draksec_.c:31
-msgid "Setting security level"
-msgstr "Elektas sekurnivelon"
-
-#: ../../standalone/drakxconf_.c:47
-#, fuzzy
-msgid "Control Center"
-msgstr "Konekti al la interreto"
-
-#: ../../standalone/drakxconf_.c:48
-msgid "Choose the tool you want to use"
-msgstr "Elektu la ilon kiun vi deziras instali"
-
-#: ../../standalone/drakxtv_.c:48
-#, fuzzy
-msgid "Canada (cable)"
-msgstr "Kanada (Kebeka)"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (bcast)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (cable)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (cable-hrc)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:49
-msgid "China (bcast)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:49
-msgid "Japan (bcast)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:49
-msgid "Japan (cable)"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "East Europe"
-msgstr "Eżropo"
-
-#: ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "Ireland"
-msgstr "Islanda"
-
-#: ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "West Europe"
-msgstr "Eżropo"
-
-#: ../../standalone/drakxtv_.c:51
-#, fuzzy
-msgid "Australia"
-msgstr "seria"
-
-#: ../../standalone/drakxtv_.c:51
-msgid "Newzealand"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:52
-msgid "South Africa"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:53
-msgid "Argentina"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:58
-msgid ""
-"Please,\n"
-"type in your tv norm and country"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:60
-msgid "TV norm :"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:61
-msgid "Area :"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:65
-msgid "Scanning for TV channels in progress ..."
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:72
-msgid "Scanning for TV channels"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:83
-msgid "No TV Card detected!"
-msgstr ""
-
-#: ../../standalone/drakxtv_.c:84
-msgid ""
-"No TV Card has been detected on your machine. Please verify that a Linux-"
-"supported Video/TV Card is correctly plugged in.\n"
-"\n"
-"\n"
-"You can visit our hardware database at:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/hardware.php3"
-msgstr ""
-
-#: ../../standalone/keyboarddrake_.c:16
-msgid "usage: keyboarddrake [--expert] [keyboard]\n"
-msgstr "uzado: keyboarddrake [--expert] [klavaro]\n"
-
-#: ../../standalone/keyboarddrake_.c:29
-msgid "Please, choose your keyboard layout."
-msgstr "Bonvole, elektu vian klavaran aranųon."
-
-#: ../../standalone/keyboarddrake_.c:36
-msgid "Do you want the BackSpace to return Delete in console?"
-msgstr ""
-
-#: ../../standalone/livedrake_.c:24
-msgid "Change Cd-Rom"
-msgstr "Žanųu KD-ROM-on"
-
-#: ../../standalone/livedrake_.c:25
-#, fuzzy
-msgid ""
-"Please insert the Installation Cd-Rom in your drive and press Ok when done.\n"
-"If you don't have it, press Cancel to avoid live upgrade."
-msgstr ""
-"Žanųu vian KDROM!\n"
-"\n"
-"Bonvole, enžovu la KDROM-on etikedatan \"%s\" en via drajvo kaj klaku \"Jes"
-"\"\n"
-"kiam vi finos.\n"
-"Se vi ne havas ųin, klaku \"Nuligu\" por eviti la instaladon de ęi tiu KDROM."
-
-#: ../../standalone/livedrake_.c:35
-msgid "Unable to start live upgrade !!!\n"
-msgstr ""
-
-#: ../../standalone/localedrake_.c:32
-msgid "The change is done, but to be effective you must logout"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:85 ../../standalone/logdrake_.c:501
-msgid "logdrake"
-msgstr "logdrake"
-
-#: ../../standalone/logdrake_.c:95
-#, fuzzy
-msgid "Show only for the selected day"
-msgstr "Montru nur por ęi tiu tago"
-
-#: ../../standalone/logdrake_.c:102
-msgid "/File/_New"
-msgstr "/Dosiero/_Nova"
-
-#: ../../standalone/logdrake_.c:102
-msgid "<control>N"
-msgstr "<control>N"
-
-#: ../../standalone/logdrake_.c:103
-msgid "/File/_Open"
-msgstr "/Dosiero/_Malfermu"
-
-#: ../../standalone/logdrake_.c:103
-msgid "<control>O"
-msgstr "<control>M"
-
-#: ../../standalone/logdrake_.c:104
-msgid "/File/_Save"
-msgstr "/Dosiero/_Savu"
-
-#: ../../standalone/logdrake_.c:104
-msgid "<control>S"
-msgstr "<control>S"
-
-#: ../../standalone/logdrake_.c:105
-msgid "/File/Save _As"
-msgstr "/Dosiero/Savu _Kiel"
-
-#: ../../standalone/logdrake_.c:106
-msgid "/File/-"
-msgstr "/Dosiero/-"
-
-#: ../../standalone/logdrake_.c:108
-msgid "/_Options"
-msgstr "/_Opcioj"
-
-#: ../../standalone/logdrake_.c:109
-msgid "/Options/Test"
-msgstr "/Opcioj/Provu"
-
-#: ../../standalone/logdrake_.c:110
-msgid "/_Help"
-msgstr "/_Helpo"
-
-#: ../../standalone/logdrake_.c:111
-msgid "/Help/_About..."
-msgstr "/Helpo/_Pri..."
-
-#: ../../standalone/logdrake_.c:118
-msgid "-misc-fixed-medium-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr "-misc-fixed-medium-r-*-*-*-100-*-*-*-*-iso8859-3,*"
-
-#: ../../standalone/logdrake_.c:119
-msgid "-misc-fixed-bold-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr "-misc-fixed-bold-r-*-*-*-100-*-*-*-*-iso8859-3,*"
-
-#: ../../standalone/logdrake_.c:173
-#, fuzzy
-msgid "User"
-msgstr "Salutnomo"
-
-#: ../../standalone/logdrake_.c:174
-#, fuzzy
-msgid "Messages"
-msgstr "mesaųoj"
-
-#: ../../standalone/logdrake_.c:175
-#, fuzzy
-msgid "Syslog"
-msgstr "sistema logdosiero (syslog)"
-
-#: ../../standalone/logdrake_.c:176
-msgid "Mandrake Tools Explanations"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:179
-msgid "search"
-msgstr "seręu"
-
-#: ../../standalone/logdrake_.c:185
-msgid "A tool to monitor your logs"
-msgstr "Ilo por vidi vian logdosieron"
-
-#: ../../standalone/logdrake_.c:186
-msgid "Settings"
-msgstr "Konfigura¼oj"
-
-#: ../../standalone/logdrake_.c:191
-msgid "matching"
-msgstr "konformanta(j)"
-
-#: ../../standalone/logdrake_.c:192
-msgid "but not matching"
-msgstr "sed ne konformanta(j)"
-
-#: ../../standalone/logdrake_.c:196
-msgid "Choose file"
-msgstr "Elektu dosieron"
-
-#: ../../standalone/logdrake_.c:201
-msgid "Calendar"
-msgstr "Kalendaro"
-
-#: ../../standalone/logdrake_.c:211
-msgid "Content of the file"
-msgstr "Enhavoj de la dosiero"
-
-#: ../../standalone/logdrake_.c:215 ../../standalone/logdrake_.c:390
-msgid "Mail/SMS alert"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:268
-#, c-format
-msgid "please wait, parsing file: %s"
-msgstr "bonvole atendu, mi vortanalizas la dosieron: %s"
-
-#: ../../standalone/logdrake_.c:405
-#, fuzzy
-msgid "Mail/SMS alert configuration"
-msgstr "Konfigura¼on"
-
-#: ../../standalone/logdrake_.c:406
-msgid ""
-"Welcome to the mail/SMS configuration utility.\n"
-"\n"
-"Here, you'll be able to set up the alert system.\n"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:414
-msgid "proftpd"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:417
-msgid "sshd"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:418
-msgid "webmin"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:419
-#, fuzzy
-msgid "xinetd"
-msgstr "2a Etendata (Ext2)"
-
-#: ../../standalone/logdrake_.c:422
-#, fuzzy
-msgid "service setting"
-msgstr "Servilo"
-
-#: ../../standalone/logdrake_.c:423
-msgid ""
-"You will receive an alert if one of the selected service is no more running"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:433
-#, fuzzy
-msgid "load setting"
-msgstr "Formatas"
-
-#: ../../standalone/logdrake_.c:434
-msgid "You will receive an alert if the load is higher than this value"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:447
-#, fuzzy
-msgid "alert configuration"
-msgstr "Interreta Konfigurado"
-
-#: ../../standalone/logdrake_.c:448
-msgid "Configure the way the system will alert you"
-msgstr ""
-
-#: ../../standalone/logdrake_.c:478
-msgid "Save as.."
-msgstr "Savu Kiel..."
-
-#: ../../standalone/mousedrake_.c:49
-msgid "Please, choose the type of your mouse."
-msgstr "Bonvole, elektu la specon de via muso."
-
-#: ../../standalone/mousedrake_.c:59
-msgid "no serial_usb found\n"
-msgstr "neniu serial_usb (seria USB) trovita\n"
-
-#: ../../standalone/mousedrake_.c:63
-msgid "Emulate third button?"
-msgstr "Ęu vi deziras emuli trian musbutonon?"
-
-#: ../../standalone/scannerdrake_.c:53
-#, c-format
-msgid "%s found on %s, configure it ?"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:60
-#, fuzzy
-msgid "Select a scanner"
-msgstr "Elektu grafikan karton"
-
-#: ../../standalone/scannerdrake_.c:80
-#, c-format
-msgid "This %s scanner is unsupported"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:94
-#, c-format
-msgid ""
-"Scannerdrake was not able to detect your %s scanner.\n"
-"Please select the device where your scanner is plugged"
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:96
-#, fuzzy
-msgid "choose device"
-msgstr "Starta aparato"
-
-#: ../../standalone/scannerdrake_.c:102
-#, c-format
-msgid ""
-"This %s scanner must be configured by printerdrake.\n"
-"You can launch printerdrake from the Mandrake Control Center in Hardware "
-"section."
-msgstr ""
-
-#: ../../standalone/scannerdrake_.c:107
-#, c-format
-msgid ""
-"Your %s scanner has been configured.\n"
-"You may now scan documents using ``XSane'' from Multimedia/Graphics in the "
-"applications menu."
-msgstr ""
-
-#: ../../standalone/tinyfirewall_.c:31
-msgid "Firewalling Configuration"
-msgstr "Konfigura¼o de barilo"
-
-#: ../../standalone/tinyfirewall_.c:44
-msgid "Firewalling configuration"
-msgstr "Konfigura¼o de barilo"
-
-#: ../../standalone/tinyfirewall_.c:79
-msgid ""
-"Firewalling\n"
-"\n"
-"You already have set up a firewall.\n"
-"Click on Configure to change or remove the firewall"
-msgstr ""
-
-#: ../../standalone/tinyfirewall_.c:83
-msgid ""
-"Firewalling\n"
-"\n"
-"Click on Configure to set up a standard firewall"
-msgstr ""
-
-#: ../../steps.pm_.c:14
-msgid "Choose your language"
-msgstr "Elektu vian lingvon"
-
-#: ../../steps.pm_.c:15
-msgid "Select installation class"
-msgstr "Elektu instalklason"
-
-#: ../../steps.pm_.c:16
-msgid "Hard drive detection"
-msgstr "Detektado de fiksdisko(j)"
-
-#: ../../steps.pm_.c:17
-msgid "Configure mouse"
-msgstr "Konfiguru muson"
-
-#: ../../steps.pm_.c:18
-msgid "Choose your keyboard"
-msgstr "Elektu vian klavaron"
-
-#: ../../steps.pm_.c:19
-msgid "Security"
-msgstr ""
-
-#: ../../steps.pm_.c:20
-msgid "Setup filesystems"
-msgstr "Dosiersistemo konfiguro"
-
-#: ../../steps.pm_.c:21
-msgid "Format partitions"
-msgstr "Formatu subdiskojn"
-
-#: ../../steps.pm_.c:22
-msgid "Choose packages to install"
-msgstr "Elektu paka¼ojn"
-
-#: ../../steps.pm_.c:23
-msgid "Install system"
-msgstr "Instalu sistemon"
-
-#: ../../steps.pm_.c:25
-msgid "Add a user"
-msgstr "Aldonu uzulon"
-
-#: ../../steps.pm_.c:26
-msgid "Configure networking"
-msgstr "Konfiguru retumon"
-
-#: ../../steps.pm_.c:28
-msgid "Configure services"
-msgstr "Konfiguru servojn"
-
-#: ../../steps.pm_.c:29
-msgid "Install bootloader"
-msgstr "Instalu restart-žargilon"
-
-#: ../../steps.pm_.c:31
-msgid "Create a bootdisk"
-msgstr "Kreu pražargdisketon"
-
-#: ../../steps.pm_.c:33
-msgid "Configure X"
-msgstr "Konfiguru X"
-
-#: ../../steps.pm_.c:34
-#, fuzzy
-msgid "Install system updates"
-msgstr "Instalu sistemon"
-
-#: ../../steps.pm_.c:35
-msgid "Exit install"
-msgstr "Eliru instalprogramon"
-
-#: ../../tinyfirewall.pm_.c:9
-msgid ""
-"tinyfirewall configurator\n"
-"\n"
-"This configures a personal firewall for this Mandrake Linux machine.\n"
-"For a powerful dedicated firewall solution, please look to the\n"
-"specialized MandrakeSecurity Firewall distribution."
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:14
-msgid ""
-"We'll now ask you questions about which services you'd like to allow\n"
-"the Internet to connect to. Please think carefully about these\n"
-"questions, as your computer's security is important.\n"
-"\n"
-"Please, if you're not currently using one of these services, firewall\n"
-"it off. You can change this configuration anytime you like by\n"
-"re-running this application!"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:21
-msgid ""
-"Are you running a web server on this machine that you need the whole\n"
-"Internet to see? If you are running a webserver that only needs to be\n"
-"accessed by this machine, you can safely answer NO here.\n"
-"\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:26
-msgid ""
-"Are you running a name server on this machine? If you didn't set one\n"
-"up to give away IP and zone information to the whole Internet, please\n"
-"answer no.\n"
-"\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:31
-msgid ""
-"Do you want to allow incoming Secure Shell (ssh) connections? This\n"
-"is a telnet-replacement that you might use to login. If you're using\n"
-"telnet now, you should definitely switch to ssh. telnet is not\n"
-"encrypted -- so some attackers can steal your password if you use\n"
-"it. ssh is encrypted and doesn't allow for this eavesdropping."
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:36
-msgid ""
-"Do you want to allow incoming telnet connections?\n"
-"This is horribly unsafe, as we explained in the previous screen. We\n"
-"strongly recommend answering No here and using ssh in place of\n"
-"telnet.\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:41
-msgid ""
-"Are you running an FTP server here that you need accessible to the\n"
-"Internet? If you are, we strongly recommend that you only use it for\n"
-"Anonymous transfers. Any passwords sent by FTP can be stolen by some\n"
-"attackers, since FTP also uses no encryption for transferring passwords.\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:46
-msgid ""
-"Are you running a mail server here? If you're sending you \n"
-"messages through pine, mutt or any other text-based mail client,\n"
-"you probably are. Otherwise, you should firewall this off.\n"
-"\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:51
-msgid ""
-"Are you running a POP or IMAP server here? This would\n"
-"be used to host non-web-based mail accounts for people via \n"
-"this machine.\n"
-"\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:56
-msgid ""
-"You appear to be running a 2.2 kernel. If your network IP\n"
-"is automatically set by a computer in your home or office \n"
-"(dynamically assigned), we need to allow for this. Is\n"
-"this the case?\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:61
-msgid ""
-"Is your computer getting time syncronized to another computer?\n"
-"Mostly, this is used by medium-large Unix/Linux organizations\n"
-"to synchronize time for logging and such. If you're not part\n"
-"of a larger office and haven't heard of this, you probably \n"
-"aren't."
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:66
-msgid ""
-"Configuration complete. May we write these changes to disk?\n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:82
-#, c-format
-msgid "Can't open %s: %s\n"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:84
-#, c-format
-msgid "Can't open %s for writing: %s\n"
-msgstr "Ne povis malfermi %s por skribi: %s\n"
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "No I don't need DHCP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "Yes I need DHCP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "No I don't need NTP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "Yes I need NTP"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-msgid "Don't Save"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-#: ../../tinyfirewall.pm_.c:206
-msgid "Save & Quit"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:197 ../../tinyfirewall.pm_.c:201
-#, fuzzy
-msgid "Firewall Configuration Wizard"
-msgstr "Konfigura¼o de barilo"
-
-#: ../../tinyfirewall.pm_.c:199
-msgid "No (firewall this off from the internet)"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:200
-msgid "Yes (allow this through the firewall)"
-msgstr ""
-
-#: ../../tinyfirewall.pm_.c:232
-#, fuzzy
-msgid "Please Wait... Verifying installed packages"
-msgstr "Preparas instaladon"
-
-#: ../../tinyfirewall.pm_.c:238
-#, c-format
-msgid ""
-"Failure installing the needed packages : %s and Bastille.\n"
-" Try to install them manually."
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Web/FTP"
-msgstr "TTT/FTP"
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Network Computer (client)"
-msgstr "Reta Printilo (ingo)"
-
-#: ../../share/compssUsers:999
-msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Office"
-msgstr "Oficejo"
-
-#: ../../share/compssUsers:999
-msgid "Gnome Workstation"
-msgstr "Gnoma Laborstacio"
-
-#: ../../share/compssUsers:999
-msgid "Tools for your Palm Pilot or your Visor"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Workstation"
-msgstr "Laborstacio"
-
-#: ../../share/compssUsers:999
-msgid "Firewall/Router"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Domain Name and Network Information Server"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Audio-related tools: mp3 or midi players, mixers, etc"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Books and Howto's on Linux and Free Software"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "KDE Workstation"
-msgstr "KDE Laborstacio"
-
-#: ../../share/compssUsers:999
-msgid "Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Video"
-msgstr "Plurmedia - Video"
-
-#: ../../share/compssUsers:999
-msgid "Set of tools for mail, news, web, file transfer, and chat"
-msgstr ""
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Database"
-msgstr "Datumbazoj"
-
-#: ../../share/compssUsers:999
-msgid "PostgreSQL or MySQL database server"
-msgstr ""
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Tools to ease the configuration of your computer"
-msgstr "Ęu vi deziras provi la konfigura¼on?"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Sound"
-msgstr "Plurmedia - Sono"
-
-#: ../../share/compssUsers:999
-msgid "Utilities"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Documentation"
-msgstr "Dokumentaro"
-
-#: ../../share/compssUsers:999
-msgid "Console Tools"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Postfix mail server, Inn news server"
-msgstr ""
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Internet station"
-msgstr "Interreta Konfigurado"
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Multimedia station"
-msgstr "Plurmedia - Sono"
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Configuration"
-msgstr "LAN Konfigura¼o"
-
-#: ../../share/compssUsers:999
-msgid "More Graphical Desktops (Gnome, IceWM)"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid ""
-"The K Desktop Environment, the basic graphical environment with a collection "
-"of accompanying tools"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Graphical Environment"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Apache, Pro-ftpd"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Tools to create and burn CD's"
-msgstr ""
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Office Workstation"
-msgstr "Laborstacio"
-
-#: ../../share/compssUsers:999
-msgid "Server"
-msgstr "Servilo"
-
-#: ../../share/compssUsers:999
-msgid "Gnome, Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Graphics programs such as The Gimp"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "DNS/NIS "
-msgstr "DNS/NIS"
-
-#: ../../share/compssUsers:999
-msgid "C and C++ development libraries, programs and include files"
-msgstr "C kaj C++ programadaj bibliotekoj, programoj kaj ęapdosieroj"
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Network Computer server"
-msgstr "Reta Printilo (ingo)"
-
-#: ../../share/compssUsers:999
-msgid "Mail/Groupware/News"
-msgstr ""
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Game station"
-msgstr "Dokumentaro"
-
-#: ../../share/compssUsers:999
-msgid "Video players and editors"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Graphics"
-msgstr "Plurmedia - Grafiko"
-
-#: ../../share/compssUsers:999
-msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid ""
-"Set of tools to read and send mail and news (pine, mutt, tin..) and to "
-"browse the Web"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Archiving, emulators, monitoring"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Personal Finance"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid ""
-"A graphical environment with user-friendly set of applications and desktop "
-"tools"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Clients for different protocols including ssh"
-msgstr ""
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Internet gateway"
-msgstr "Interreto"
-
-#: ../../share/compssUsers:999
-msgid "Sound and video playing/editing programs"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Other Graphical Desktops"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Editors, shells, file tools, terminals"
-msgstr "Redaktiloj, želoj, dosieriloj, terminaloj"
-
-#: ../../share/compssUsers:999
-msgid "Programs to manage your finance, such as gnucash"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Personal Information Management"
-msgstr ""
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - CD Burning"
-msgstr "Plurmedia - KD-ROM Kreado"
-
-#: ../../share/compssUsers:999
-#, fuzzy
-msgid "Scientific Workstation"
-msgstr "Laborstacio"
-
-#, fuzzy
-#~ msgid "About"
-#~ msgstr "Ęesigu"
-
-#~ msgid "$f-$g %s)"
-#~ msgstr "$f-$g %s)"
-
-#, fuzzy
-#~ msgid "None"
-#~ msgstr "Finata"
-
-#, fuzzy
-#~ msgid "Choose a default printer!"
-#~ msgstr "Elektu la defażltan uzulon:"
-
-#, fuzzy
-#~ msgid "Apply/Re-read printers"
-#~ msgstr "Malproksima printilo"
-
-#~ msgid "You may now provide its options to module %s."
-#~ msgstr "Nun vi povas provizi ųiajn opciojn al modulo %s."
-
-#~ msgid "mount failed"
-#~ msgstr "muntado malsukcesis"
-
-#~ msgid "Low"
-#~ msgstr "Malalta"
-
-#~ msgid "Medium"
-#~ msgstr "Meza"
-
-#~ msgid ""
-#~ "Few improvements for this security level, the main one is that there are\n"
-#~ "more security warnings and checks."
-#~ msgstr ""
-#~ "Malmultaj plibonigoj ęe ęi tiu sekurnivelo, la ęefa estas ke ųi havas "
-#~ "pli\n"
-#~ "multajn sekurecajn avertojn kaj kontrolojn."
-
-#~ msgid "Boot mode"
-#~ msgstr "Starta modalo"
-
-#, fuzzy
-#~ msgid "Export"
-#~ msgstr "Spertulo"
-
-#~ msgid ""
-#~ "GNU/Linux manages time in GMT (Greenwich Mean Time) and translates it in\n"
-#~ "local time according to the time zone you selected."
-#~ msgstr ""
-#~ "GNU/Linukso administras tempon en GMT aż \"Grenvięa Meza Tempo\" kaj "
-#~ "tradukas ųin\n"
-#~ "en lokan tempon laż la horzono vi elektis."
-
-#~ msgid "Connect to Internet"
-#~ msgstr "Konektu al la Interreto"
-
-#~ msgid "Disconnect from Internet"
-#~ msgstr "Malkonektu el la Interreto"
-
-#, fuzzy
-#~ msgid "Configure network connection (LAN or Internet)"
-#~ msgstr "Konfiguru interretan konekta¼on"
-
-#, fuzzy
-#~ msgid "Detected %s, do you want to set it up?"
-#~ msgstr "Al kiu disko vi deziras movi?"
-
-#, fuzzy
-#~ msgid "Please choose the printer you want to set up."
-#~ msgstr "Bonvole, elektu la paka¼ojn kiujn vi deziras instali."
-
-#, fuzzy
-#~ msgid "Infos"
-#~ msgstr "Informo"
-
-#, fuzzy
-#~ msgid "Windows Importation"
-#~ msgstr "Gnoma Laborstacio"
-
-#~ msgid "authentification"
-#~ msgstr "ażtentikigado"
-
-#~ msgid "user"
-#~ msgstr "uzanto"
-
-#, fuzzy
-#~ msgid ""
-#~ "Please choose the desired printer/printer port.\n"
-#~ "\n"
-#~ msgstr "Bonvole, elektu la specon de via muso."
-
-#, fuzzy
-#~ msgid "\\@quit"
-#~ msgstr "Ęesu"
-
-#, fuzzy
-#~ msgid "Removable media"
-#~ msgstr "Ażtomata muntado de demetebla medio"
-
-#~ msgid "Active"
-#~ msgstr "Aktiva"
-
-#, fuzzy
-#~ msgid "No X"
-#~ msgstr "Ne"
-
-#~ msgid "A printer, model \"%s\", has been detected on "
-#~ msgstr "Printilo, tipo \"%s\", estas detektita ęe "
-
-#~ msgid "Local Printer Device"
-#~ msgstr "Loka Printila Aparato"
-
-#~ msgid "Printer Device"
-#~ msgstr "Printila Aparato"
-
-#, fuzzy
-#~ msgid "Printer(s) on remote CUPS server(s)"
-#~ msgstr "Malproksima CUPS-a servilo"
-
-#, fuzzy
-#~ msgid "Printer(s) on remote server(s)"
-#~ msgstr "Malproksima CUPS-a servilo"
-
-#, fuzzy
-#~ msgid " Linux "
-#~ msgstr "Linukso"
-
-#, fuzzy
-#~ msgid " System "
-#~ msgstr "Sistema modalo"
-
-#, fuzzy
-#~ msgid " Other "
-#~ msgstr "Alia"
-
-#, fuzzy
-#~ msgid "please choose your CD space"
-#~ msgstr "Bonvole, elektu vian klavaran aranųon."
-
-#, fuzzy
-#~ msgid " Please check if you are using CDRW media"
-#~ msgstr "Bonvolu klaki sur subdiskon"
-
-#, fuzzy
-#~ msgid " Tape "
-#~ msgstr "Speco: "
-
-#, fuzzy
-#~ msgid " Use .backupignore files"
-#~ msgstr "Malbona rezerva dosiero"
-
-#, fuzzy
-#~ msgid "Configure it"
-#~ msgstr "Konfiguru X"
-
-#, fuzzy
-#~ msgid "on Tape Device"
-#~ msgstr "Printila Aparato"
-
-#, fuzzy
-#~ msgid " Cancel "
-#~ msgstr "Nuligu"
-
-#, fuzzy
-#~ msgid " Ok "
-#~ msgstr "Jeso"
-
-#, fuzzy
-#~ msgid "close"
-#~ msgstr "Malfermu"
-
-#~ msgid "Starting your connection..."
-#~ msgstr "Startas vian konekta¼on..."
-
-#~ msgid "Closing your connection..."
-#~ msgstr "Fermas vian konekta¼on..."
-
-#, fuzzy
-#~ msgid "The system is now disconnected."
-#~ msgstr "Kiel vi deziras konekti al la Interreto?"
-
-#~ msgid "Choose the size you want to install"
-#~ msgstr "Elektu la grandecon kiu vi deziras instali"
-
-#~ msgid "Total size: "
-#~ msgstr "Tuta grandeco: "
-
-#~ msgid "Please wait, "
-#~ msgstr "Bonvolu atendi"
-
-#~ msgid "Total time "
-#~ msgstr "Tuta tempo "
-
-#~ msgid "Use existing configuration for X11?"
-#~ msgstr "Uzu ekzistantan konfiguron de X11 (X-fenestroj)?"
-
-#~ msgid ""
-#~ "What device is your printer connected to \n"
-#~ "(note that /dev/lp0 is equivalent to LPT1:)?\n"
-#~ msgstr ""
-#~ "Al kiu aparato estas via printilo konektata\n"
-#~ "(notu ke /dev/lp0 egalas LPT1:)?\n"
-
-#~ msgid "$_"
-#~ msgstr "$_"
-
-#, fuzzy
-#~ msgid ""
-#~ "Warning, the network adapter is already configured. I will reconfigure it."
-#~ msgstr ""
-#~ "Averto, la retadaptilo estas jam konfigurata.\n"
-#~ "Ęu vi deziras rekonfiguri ųin?"
-
-#~ msgid "New"
-#~ msgstr "Nova"
-
-#, fuzzy
-#~ msgid "Remote"
-#~ msgstr "Malproksima printvico"
-
-#, fuzzy
-#~ msgid ""
-#~ "Please click on a button above\n"
-#~ "\n"
-#~ "Or use \"New\""
-#~ msgstr "Bonvolu klaki sur subdiskon"
-
-#~ msgid "Ambiguity (%s), be more precise\n"
-#~ msgstr "Ambigueco (%s), esti pli preciza\n"
-
-#~ msgid " ? (default %s) "
-#~ msgstr " ? (defażlto estas %s) "
-
-#~ msgid "Your choice? (default %s enter `none' for none) "
-#~ msgstr "Via elekta¼o (defażlto estas %s enigu `neniu' por elekti neniu) "
-
-#, fuzzy
-#~ msgid "Do you want to restart the network"
-#~ msgstr "Ęu vi deziras provi la konfigura¼on?"
-
-#~ msgid ""
-#~ "\n"
-#~ "Do you agree?"
-#~ msgstr ""
-#~ "\n"
-#~ "Ęu vi konsentas?"
-
-#, fuzzy
-#~ msgid "I'm about to restart the network device:\n"
-#~ msgstr "Ęu vi deziras provi la konfigura¼on?"
-
-#, fuzzy
-#~ msgid "I'm about to restart the network device %s. Do you agree?"
-#~ msgstr "Ęu vi deziras provi la konfigura¼on?"
-
-#, fuzzy
-#~ msgid ""
-#~ "Unless you know specifically otherwise, the usual choice is \"/dev/hda\"\n"
-#~ "(primary master IDE disk) or \"/dev/sda\" (first SCSI disk)."
-#~ msgstr ""
-#~ "Krom se vi scias precize alie, la kutima elekto estas \"/dev/hda\"\n"
-#~ " (unua ęefa IDE-a disko) aż \"/dev/sda\" (unua SCSI-a disko)."
-
-#, fuzzy
-#~ msgid "Connection timeout (in sec) [ beta, not yet implemented ]"
-#~ msgstr "Speco de konekto"
-
-#, fuzzy
-#~ msgid "Could not set \"%s\" as the default printer!"
-#~ msgstr "Elektu la defażltan uzulon:"
-
-#, fuzzy
-#~ msgid "Test the mouse here."
-#~ msgstr "Bonvole, provu la muson"
-
-#~ msgid ""
-#~ "Please choose your preferred language for installation and system usage."
-#~ msgstr ""
-#~ "Bonvole elektu vian preferatan lingvon por instalado kaj sistema uzado."
-
-#~ msgid "Choose the layout corresponding to your keyboard from the list above"
-#~ msgstr "Elektu la aranųon de via klavaro el la listo supre"
-
-#~ msgid ""
-#~ "Select:\n"
-#~ "\n"
-#~ " - Customized: If you are familiar enough with GNU/Linux, you may then "
-#~ "choose\n"
-#~ " the primary usage for your machine. See below for details.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Expert: This supposes that you are fluent with GNU/Linux and want to\n"
-#~ " perform a highly customized installation. As for a \"Customized\"\n"
-#~ " installation class, you will be able to select the usage for your "
-#~ "system.\n"
-#~ " But please, please, DO NOT CHOOSE THIS UNLESS YOU KNOW WHAT YOU ARE "
-#~ "DOING!"
-#~ msgstr ""
-#~ "Elektu:\n"
-#~ "\n"
-#~ " - Akomodata: Se vi sufięe konas GNU/Linukson, vi povas elektu la ęefan\n"
-#~ " uzadon por via komputilo. Vidu malantaże por detaloj.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Spertulo: Ęi tio supoza ke vi flue konas GNU/Linukson kaj deziras "
-#~ "fari\n"
-#~ " treege akomodatan instaladon. Simile kiel \"Akomodata\" instalado, "
-#~ "vi povos\n"
-#~ " elekti la uzado por via komputilo.\n"
-#~ " Sed bonvolege, NE ELEKTU ĘI TION KROM SE VI SCIAS KION VI FARAS!"
-
-#~ msgid ""
-#~ "You must now define your machine usage. Choices are:\n"
-#~ "\n"
-#~ "* Workstation: this the ideal choice if you intend to use your machine "
-#~ "primarily for everyday use, at office or\n"
-#~ " at home.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Development: if you intend to use your machine primarily for software "
-#~ "development, it is the good choice. You\n"
-#~ " will then have a complete collection of software installed in order to "
-#~ "compile, debug and format source code,\n"
-#~ " or create software packages.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Server: if you intend to use this machine as a server, it is the good "
-#~ "choice. Either a file server (NFS or\n"
-#~ " SMB), a print server (Unix style or Microsoft Windows style), an "
-#~ "authentication server (NIS), a database\n"
-#~ " server and so on. As such, do not expect any gimmicks (KDE, GNOME, "
-#~ "etc.) to be installed."
-#~ msgstr ""
-#~ "Nun vi devas elekti la uzadon por via komputilo. Jen la elektoj:\n"
-#~ "\n"
-#~ "* Laborstacio: ęi tio estas la ideala opcio se vi intencas uzi vian\n"
-#~ " komputilon ęefe por ęiutaga uzado ęe la oficejo aż hejme.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Programado: se vi intencas uzi vian komputilon ęefe por programado,\n"
-#~ " ęi tio estas bona opcio. Vi havos plenan aron de programiloj por\n"
-#~ " kompili, erarseręi, formati programfontojn, kaj krei\n"
-#~ " programpaka¼ojn.\n"
-#~ "\n"
-#~ "\n"
-#~ "* Servilo: se vi intencas uzi ęi tiun komputilon kiel servilo, ęi tio\n"
-#~ " estas bona opcio. Aż dosierservilo (NFS aż SMB), printservilo\n"
-#~ " (Uniksa stilo aż Mikrosofta Vindoza stilo), ażtentikada servilo\n"
-#~ " (NIS), aż datumbaza servilo, ktp. Kiel tia, ne atendu umojn (KDE,\n"
-#~ " GNOME, ktp.) estas instalotaj."
-
-#, fuzzy
-#~ msgid ""
-#~ "You may now select the group of packages you wish to\n"
-#~ "install or upgrade.\n"
-#~ "\n"
-#~ "\n"
-#~ "DrakX will then check whether you have enough room to install them all. "
-#~ "If not,\n"
-#~ "it will warn you about it. If you want to go on anyway, it will proceed "
-#~ "onto the\n"
-#~ "installation of all selected groups but will drop some packages of "
-#~ "lesser\n"
-#~ "interest. At the bottom of the list you can select the option \n"
-#~ "\"Individual package selection\"; in this case you will have to browse "
-#~ "through\n"
-#~ "more than 1000 packages..."
-#~ msgstr ""
-#~ "Nun vi povas elekti la paka¼aron kiun vi deziras instali aż promocii.\n"
-#~ "\n"
-#~ "Tiam DrakX kontrolos ęu vi havas sufięe da spaco por instali ęiujn de "
-#~ "ili.\n"
-#~ "Se ne, ųi informas vin pir ųi. Se vi deziras antażeniri malgraże, ųi\n"
-#~ "antażeniros je la instalado de ęiuj de la elektitaj paka¼aroj sed lasos\n"
-#~ "fali iujn paka¼ojn kiujn estas malpli interesaj. Suben de la listo vi\n"
-#~ "povas elekti la opcion \"Elektado de apartaj paka¼oj\"; ęiokaze vi devus\n"
-#~ "foliumi tra pli ol 1000 paka¼oj..."
-
-#, fuzzy
-#~ msgid ""
-#~ "If you have all the CDs in the list above, click Ok. If you have\n"
-#~ "none of those CDs, click Cancel. If only some CDs are missing, unselect "
-#~ "them,\n"
-#~ "then click Ok."
-#~ msgstr ""
-#~ "Se vi havas ęiujn de la KDROM-oj en la listo sube, klaku \"Jes\".\n"
-#~ "Se vi havas neniujn de ęi tiuj KDROM-oj, klaku \"Nuligu\".\n"
-#~ "Se vi mankas nur iujn de la KDROM-oj, malelektu ilin, kaj poste klaku "
-#~ "\"Jes\"."
-
-#, fuzzy
-#~ msgid ""
-#~ "You may now enter your host name if needed. If you\n"
-#~ "don't know or are not sure what to enter, the correct informations can "
-#~ "be\n"
-#~ "obtained from your Internet Service Provider."
-#~ msgstr ""
-#~ "Nun vi povas enigi telefon-konektajn opciojn. Se vi ne estas certa kio "
-#~ "enigi,\n"
-#~ "vi povas havigi la ųustan informon de via interretprovizanto."
-
-#, fuzzy
-#~ msgid ""
-#~ "You may now configure your network device.\n"
-#~ "\n"
-#~ " * IP address: if you don't know or are not sure what to enter, ask "
-#~ "your network administrator.\n"
-#~ " You should not enter an IP address if you select the option "
-#~ "\"Automatic IP\" below.\n"
-#~ "\n"
-#~ " * Netmask: \"255.255.255.0\" is generally a good choice. If you don't "
-#~ "know or are not sure what to enter,\n"
-#~ " ask your network administrator.\n"
-#~ "\n"
-#~ " * Automatic IP: if your network uses BOOTP or DHCP protocol, select "
-#~ "this option. If selected, no value is needed in\n"
-#~ " \"IP address\". If you don't know or are not sure if you need to "
-#~ "select this option, ask your network administrator."
-#~ msgstr ""
-#~ "Enigu:\n"
-#~ "\n"
-#~ " - IP-adreson: Se vi ne scias, demandu al via retadministranto.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Retmaskon: \"255.255.255.0\" ųenerale estas bona elekta¼o. Se vi ne\n"
-#~ "estas certa, demandu al via retadministranto aż interretprovizanto.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Ażtomata IP-adreson: Se via reto uzas BOOTP-an aż DHCP-an "
-#~ "protokolon,\n"
-#~ "elektu ęi tiun opcion. Se elektita, neniu valoro estas bezonata en\n"
-#~ "\"IP-adreson\". Se vi ne estas certa, demandu al via retadministranto\n"
-#~ "aż interretprovizanto.\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "You may now enter your host name if needed. If you\n"
-#~ "don't know or are not sure what to enter, ask your network administrator."
-#~ msgstr ""
-#~ "Se via reto uzas NIS, elektu \"Uzu NIS\". Se vi ne scias, demandu al "
-#~ "via\n"
-#~ "retadministranto."
-
-#~ msgid ""
-#~ "You may now enter dialup options. If you're not sure what to enter, the\n"
-#~ "correct information can be obtained from your ISP."
-#~ msgstr ""
-#~ "Nun vi povas enigi telefon-konektajn opciojn. Se vi ne estas certa kio "
-#~ "enigi,\n"
-#~ "vi povas havigi la ųustan informon de via interretprovizanto."
-
-#~ msgid ""
-#~ "If you will use proxies, please configure them now. If you don't know if\n"
-#~ "you should use proxies, ask your network administrator or your ISP."
-#~ msgstr ""
-#~ "Se vi uzos prokurajn servilojn, bonvolu konfiguri ilin nune. Se vi ne\n"
-#~ "scias ęu vi uzos prokurajn servilojn, demandu al via retadministranto aż\n"
-#~ "interretprovizanto."
-
-#, fuzzy
-#~ msgid ""
-#~ "You can install cryptographic package if your internet connection has "
-#~ "been\n"
-#~ "set up correctly. First choose a mirror where you wish to download "
-#~ "packages and\n"
-#~ "after that select the packages to install.\n"
-#~ "\n"
-#~ "\n"
-#~ "Note you have to select mirror and cryptographic packages according\n"
-#~ "to your legislation."
-#~ msgstr ""
-#~ "Vi povas instali kriptografian paka¼on se via interreta konekto estas "
-#~ "ųuste\n"
-#~ "pretigita. Unue elektu spegulon de kie vi deziras elžuti paka¼ojn kaj "
-#~ "poste\n"
-#~ "elektu la paka¼ojn por instali.\n"
-#~ "\n"
-#~ "Notu ke vi devas elekti spegulon kaj kriptografiajn paka¼ojn laż la "
-#~ "leųdonoj\n"
-#~ "de via lando."
-
-#, fuzzy
-#~ msgid ""
-#~ "You can now enter the root password for your Mandrake Linux system.\n"
-#~ "The password must be entered twice to verify that both password entries "
-#~ "are identical.\n"
-#~ "\n"
-#~ "\n"
-#~ "Root is the system's administrator and is the only user allowed to modify "
-#~ "the\n"
-#~ "system configuration. Therefore, choose this password carefully. \n"
-#~ "Unauthorized use of the root account can be extemely dangerous to the "
-#~ "integrity\n"
-#~ "of the system, its data and other system connected to it.\n"
-#~ "\n"
-#~ "\n"
-#~ "The password should be a mixture of alphanumeric characters and at least "
-#~ "8\n"
-#~ "characters long. It should never be written down.\n"
-#~ "\n"
-#~ "\n"
-#~ "Do not make the password too long or complicated, though: you must be "
-#~ "able to\n"
-#~ "remember it without too much effort."
-#~ msgstr ""
-#~ "Nun vi povas enigi la \"root\" (radiko) pasvorto por via Linuks-"
-#~ "Mandrejka\n"
-#~ "sistemo. Vi devas enigi la pasvorton dufoje por konfirmi ke ambaż fojoj\n"
-#~ "estas identaj.\n"
-#~ "\n"
-#~ "\n"
-#~ "La \"root\"-a uzanto estas la administranto de la sistemo, kaj estas la "
-#~ "sola\n"
-#~ "uzanto permesata žanųi la sisteman konfigura¼on. Tial, elektu ęi tiun\n"
-#~ "pasvorton zorge! Nepermesata uzado de la \"root\"-a uzanto povas esti\n"
-#~ "treege danųera al la sistema integreco kaj dateno, kaj al aliaj sistemoj\n"
-#~ "konektata al ųi. La pasvorto devus esti miksa¼o de literciferaj signoj "
-#~ "kaj\n"
-#~ "almenaż 8 signoj longa. *Neniam* surpaperigu ųin. Tamen, ne elektu tro\n"
-#~ "longan aż komplikan pasvorton: vi devas povi memori ųin sen tro multe da\n"
-#~ "peno."
-
-#~ msgid ""
-#~ "You may now create one or more \"regular\" user account(s), as\n"
-#~ "opposed to the \"privileged\" user account, root. You can create\n"
-#~ "one or more account(s) for each person you want to allow to use\n"
-#~ "the computer. Note that each user account will have its own\n"
-#~ "preferences (graphical environment, program settings, etc.)\n"
-#~ "and its own \"home directory\", in which these preferences are\n"
-#~ "stored.\n"
-#~ "\n"
-#~ "\n"
-#~ "First of all, create an account for yourself! Even if you will be the "
-#~ "only user\n"
-#~ "of the machine, you may NOT connect as root for daily use of the system: "
-#~ "it's a\n"
-#~ "very high security risk. Making the system unusable is very often a typo "
-#~ "away.\n"
-#~ "\n"
-#~ "\n"
-#~ "Therefore, you should connect to the system using the user account\n"
-#~ "you will have created here, and login as root only for administration\n"
-#~ "and maintenance purposes."
-#~ msgstr ""
-#~ "Nun vi povas krei unu aż pli \"ordinara(j)\" uzanto(j), male al la\n"
-#~ "\"privilegia\" uzanto, \"root\". Vi povas krei unu aż pli uzanto(j) por\n"
-#~ "ęiu persono vi deziras permesi uzi la komputilon. Notu ke ęiu uzanto\n"
-#~ "havos viajn proprajn preferojn (grafikan medion, programajn aranųojn,\n"
-#~ "ktp.) kaj ųian propran \"hejman dosierujon\", kie ęi tiuj preferoj estas\n"
-#~ "konservata.\n"
-#~ "\n"
-#~ "\n"
-#~ "Antaż ęio, krei uzanton por vi mem! Eę se vi estos la sola uzulo ęe la\n"
-#~ "komputilo, vi ne devus konekti kiel \"root\" por ęiutaga uzado de la\n"
-#~ "sistemo: ųi estas tre alta sekureca risko. Fari la sistemon neuzebla\n"
-#~ "estas oftege nur unu misklavo fora.\n"
-#~ "\n"
-#~ "\n"
-#~ "Tial, vi devus konekti al la sistemo per ordinara uzanto vi kreos ęi "
-#~ "tie,\n"
-#~ "kaj saluti kiel \"root\" nur por administraj kaj flegadaj kialoj."
-
-#, fuzzy
-#~ msgid ""
-#~ "LILO and grub main options are:\n"
-#~ " - Boot device: Sets the name of the device (e.g. a hard disk\n"
-#~ "partition) that contains the boot sector. Unless you know specifically\n"
-#~ "otherwise, choose \"/dev/hda\".\n"
-#~ "\n"
-#~ "\n"
-#~ " - Delay before booting default image: Specifies the number in tenths\n"
-#~ "of a second the boot loader should wait before booting the first image.\n"
-#~ "This is useful on systems that immediately boot from the hard disk after\n"
-#~ "enabling the keyboard. The boot loader doesn't wait if \"delay\" is\n"
-#~ "omitted or is set to zero.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Video mode: This specifies the VGA text mode that should be selected\n"
-#~ "when booting. The following values are available: \n"
-#~ "\n"
-#~ " * normal: select normal 80x25 text mode.\n"
-#~ "\n"
-#~ " * <number>: use the corresponding text mode.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Clean \"/tmp\" at each boot: if you want delete all files and "
-#~ "directories\n"
-#~ "stored in \"/tmp\" when you boot your system, select this option.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Precise RAM if needed: unfortunately, there is no standard method to "
-#~ "ask the\n"
-#~ "BIOS about the amount of RAM present in your computer. As consequence, "
-#~ "Linux may\n"
-#~ "fail to detect your amount of RAM correctly. If this is the case, you "
-#~ "can\n"
-#~ "specify the correct amount or RAM here. Please note that a difference of "
-#~ "2 or 4\n"
-#~ "MB between detected memory and memory present in your system is normal."
-#~ msgstr ""
-#~ "LILO kaj Grub ęefaj opcioj estas:\n"
-#~ " - Startaparato: Fiksas la nomon de la aparato (ekz-e subdisko de "
-#~ "fiksdisko)\n"
-#~ "tiu enhavas la startsektoron. Krom se vi scias specife alie, elektu\n"
-#~ "\"/dev/hda\".\n"
-#~ "\n"
-#~ "\n"
-#~ " - Prokrastoperiodo antaż starti defażltan sistemon: Elektas la nombron\n"
-#~ "da dekonoj de sekundo ke la startžargilo devus atendi antaż starti la\n"
-#~ "unuan sistemon. Ęi tiu utilas ęe sistemoj kiuj tuj startas de la\n"
-#~ "fiksdisko malantaż ili ebligas la klavaron. La startžargilo ne atendas "
-#~ "se\n"
-#~ "\"delay\" (prokrastoperiodo) estas ellasita aż estas fiksita al nul.\n"
-#~ "\n"
-#~ "\n"
-#~ " - Grafika reųimo: Ęi tiu specifas la VGA tekstan reųimon por uzi dum\n"
-#~ "start. La sekvantaj valoroj estas uzeblaj:\n"
-#~ " * normala: elektu normalan 80 per 25 tekstan reųimon.\n"
-#~ " * <numero>: uzu la respondan tekstan reųimon."
-
-#~ msgid ""
-#~ "SILO is a bootloader for SPARC: it is able to boot\n"
-#~ "either GNU/Linux or any other operating system present on your computer.\n"
-#~ "Normally, these other operating systems are correctly detected and\n"
-#~ "installed. If this is not the case, you can add an entry by hand in this\n"
-#~ "screen. Be careful as to choose the correct parameters.\n"
-#~ "\n"
-#~ "\n"
-#~ "You may also want not to give access to these other operating systems to\n"
-#~ "anyone, in which case you can delete the corresponding entries. But\n"
-#~ "in this case, you will need a boot disk in order to boot them!"
-#~ msgstr ""
-#~ "SILO estas startžargilo por Sparc: ųi povas starti aż Linukson aż iun "
-#~ "ajn\n"
-#~ "mastruman sistemon ęeestanta ęe via komputilo. Normale, ęi tiuj aliaj\n"
-#~ "mastrumaj sistemoj estas ųuste detektata kaj instalada. Se tiel ne "
-#~ "estas,\n"
-#~ "vi povas aldoni enskribon mane per ęi tiu ekrano. Zorgu elekti la "
-#~ "ųustajn\n"
-#~ "parametrojn.\n"
-#~ "\n"
-#~ "\n"
-#~ "Eble vi ankaż ne deziras doni atingon al ęi tiuj aliaj mastrumaj "
-#~ "sistemoj\n"
-#~ "al iu ajn. Ęiokaze vi povas forstreki la respondajn enskribojn. Sed\n"
-#~ "ęiokaze, vi bezonos startdiskon por starti ilin!"
-
-#~ msgid ""
-#~ "SILO main options are:\n"
-#~ " - Bootloader installation: Indicate where you want to place the\n"
-#~ "information required to boot to GNU/Linux. Unless you know exactly\n"
-#~ "what you are doing, choose \"First sector of drive (MBR)\".\n"
-#~ "\n"
-#~ "\n"
-#~ " - Delay before booting default image: Specifies the number in tenths\n"
-#~ "of a second the boot loader should wait before booting the first image.\n"
-#~ "This is useful on systems that immediately boot from the hard disk after\n"
-#~ "enabling the keyboard. The boot loader doesn't wait if \"delay\" is\n"
-#~ "omitted or is set to zero."
-#~ msgstr ""
-#~ "SILO ęefaj opcioj estas:\n"
-#~ " - Instalado de Startžargilo: Indiki kie vi deziras meti la informon\n"
-#~ "bezonata por start GNU/Linukso. Krom se vi scias specife kion vi faras,\n"
-#~ "elektu \"Unua sektoro de drajvo (MBR)\".\n"
-#~ "\n"
-#~ "\n"
-#~ " - Prokrastoperiodo antaż starti defażltan sistemon: Elektas la nombron\n"
-#~ "da dekonoj de sekundo ke la startžargilo devus atendi antaż starti la\n"
-#~ "unuan sistemon. Ęi tiu utilas ęe sistemoj kiuj tuj startas de la\n"
-#~ "fiksdisko malantaż ili ebligas la klavaron. La startžargilo ne atendas "
-#~ "se\n"
-#~ "\"delay\" (prokrastoperiodo) estas ellasita aż estas fiksita al nul."
-
-#~ msgid ""
-#~ "Now it's time to configure the X Window System, which is the\n"
-#~ "core of the GNU/Linux GUI (Graphical User Interface). For this purpose,\n"
-#~ "you must configure your video card and monitor. Most of these\n"
-#~ "steps are automated, though, therefore your work may only consist\n"
-#~ "of verifying what has been done and accept the settings :)\n"
-#~ "\n"
-#~ "\n"
-#~ "When the configuration is over, X will be started (unless you\n"
-#~ "ask DrakX not to) so that you can check and see if the\n"
-#~ "settings suit you. If they don't, you can come back and\n"
-#~ "change them, as many times as necessary."
-#~ msgstr ""
-#~ "Nun estas tempo por konfiguri la X Fenestra Sistemo, kiu estas la kerno\n"
-#~ "de la GNU/Linuksa GUI (Grafika UzulInterfaco). Por tiu celo, vi devas\n"
-#~ "konfiguri vian grafikan karton kaj ekranon. La plejparto de ęi tiuj "
-#~ "pažoj\n"
-#~ "estas ażtomatitaj, tamen, do via laboro eble konsistos en konfirmi kion\n"
-#~ "estis farata kaj akcepti la aranųojn. :)\n"
-#~ "\n"
-#~ "\n"
-#~ "Kiam la konfigurado estas kompleta, X lanęiųos (krom se vi demandas al\n"
-#~ "DrakX ne fari tion) pro ke vi kontrolu ųin la observu se la aranųojn\n"
-#~ "tażgas por vi. Se ne, vi povas reveni kaj žanųi ilin, tiom da tempoj "
-#~ "kiom\n"
-#~ "estas necesa."
-
-#~ msgid ""
-#~ "If something is wrong in X configuration, use these options to correctly\n"
-#~ "configure the X Window System."
-#~ msgstr ""
-#~ "Se iu misas en la X-a konfigura¼o, uzu ęi tiujn opciojn por ųuste "
-#~ "konfiguri\n"
-#~ "la X Fenestran Sistemon."
-
-#~ msgid ""
-#~ "If you prefer to use a graphical login, select \"Yes\". Otherwise, "
-#~ "select\n"
-#~ "\"No\"."
-#~ msgstr ""
-#~ "Se vi preferas uzi grafikan saluton, elektu \"Jes\". Aliokaze, elektu "
-#~ "\"Ne\"."
-
-#~ msgid ""
-#~ "Your system is going to reboot.\n"
-#~ "\n"
-#~ "After rebooting, your new Mandrake Linux system will load automatically.\n"
-#~ "If you want to boot into another existing operating system, please read\n"
-#~ "the additional instructions."
-#~ msgstr ""
-#~ "Via sistemo restartos.\n"
-#~ "\n"
-#~ "Post restartado, via nova Linuks-Mandrejka sistemo žargiųos ażtomate. Se "
-#~ "vi\n"
-#~ "deziras starti en alian ekzistanta mastruman sistemon, bonvole legu la\n"
-#~ "pluan instrukcion."
-
-#~ msgid "Czech (Programmers)"
-#~ msgstr "Ęe¶a (Programistoj)"
-
-#~ msgid "Slovakian (Programmers)"
-#~ msgstr "Slovaka (Programistoj)"
-
-#~ msgid "Write /etc/fstab"
-#~ msgstr "Skribu /etc/fstab"
-
-#~ msgid "Format all"
-#~ msgstr "Formatu ęion"
-
-#~ msgid "After formatting all partitions,"
-#~ msgstr "Post formatado de ęiuj subdisko,"
-
-#~ msgid "all data on these partitions will be lost"
-#~ msgstr "ęiuj datenoj sur tiuj subdisko estos perdata"
-
-#~ msgid "Reload"
-#~ msgstr "Režargu"
-
-#~ msgid ""
-#~ "Do you want to generate an auto install floppy for linux replication?"
-#~ msgstr "Ęu vi deziras krei ażtoinstalan disketon por replikado de Linukso?"
-
-#~ msgid "ADSL configuration"
-#~ msgstr "ADSL Konfigura¼o"
-
-#, fuzzy
-#~ msgid ""
-#~ "With a remote CUPS server, you do not have to configure\n"
-#~ "any printer here; printers will be automatically detected\n"
-#~ "unless you have a server on a different network; in the\n"
-#~ "latter case, you have to give the CUPS server IP address\n"
-#~ "and optionally the port number."
-#~ msgstr ""
-#~ "Kun malproksima CUPS servilo, vi ne devas konfiguri iun printilon\n"
-#~ "ęi tie; printiloj estos ażtomate dektektataj. Se vi havas dubojn,\n"
-#~ "elektu \"Malproksima CUPS servilo\"."
-
-#, fuzzy
-#~ msgid "Remote queue name missing!"
-#~ msgstr "Malproksima printvico"
-
-#, fuzzy
-#~ msgid "Command line"
-#~ msgstr "Domajna nomo"
-
-#, fuzzy
-#~ msgid "Modify printer"
-#~ msgstr "Neniu printilo"
-
-#, fuzzy
-#~ msgid "Network Monitoring"
-#~ msgstr "ISDN-a Konfigura¼on"
-
-#, fuzzy
-#~ msgid "Profile "
-#~ msgstr "muntado malsukcesis: "
-
-#~ msgid "Sending Speed:"
-#~ msgstr "Sendrapideco: "
-
-#~ msgid "Receiving Speed:"
-#~ msgstr "Ricevrapideco: "
-
-#, fuzzy
-#~ msgid "Connection Time: "
-#~ msgstr "Speco de konekto"
-
-#~ msgid "Connecting to Internet "
-#~ msgstr "Konektas al la Interreto"
-
-#, fuzzy
-#~ msgid "Disconnecting from Internet "
-#~ msgstr "Malkonektas el la Interreto"
-
-#~ msgid "Disconnection from Internet failed."
-#~ msgstr "Malkonektado el la Interreto malsukcesis."
-
-#~ msgid "Disconnection from Internet complete."
-#~ msgstr "Malkonektado el la Interreto finis."
-
-#, fuzzy
-#~ msgid "Connection complete."
-#~ msgstr "Nomo de konekto"
-
-#~ msgid "sent: "
-#~ msgstr "sendita(j): "
-
-#~ msgid "received: "
-#~ msgstr "ricevita(j): "
-
-#, fuzzy
-#~ msgid "Default Runlevel"
-#~ msgstr "Defażlta"
-
-#~ msgid "NetWare"
-#~ msgstr "NetWare"
-
-#~ msgid "Config file content could not be interpreted."
-#~ msgstr "Mi ne povas kompreni la enhavon de la konfigurodosiero."
-
-#~ msgid "Adapter"
-#~ msgstr "Adaptilo"
-
-#, fuzzy
-#~ msgid "Disable network"
-#~ msgstr "Malebligu"
-
-#, fuzzy
-#~ msgid "Enable network"
-#~ msgstr "Ebligu"
-
-#, fuzzy
-#~ msgid "DSL (or ADSL) connection"
-#~ msgstr "Konfiguru interretan konekta¼on"
-
-#~ msgid "Choose"
-#~ msgstr "Elektu"
-
-#~ msgid "You can specify directly the URI to access the printer with CUPS."
-#~ msgstr "Vi povas specifi rekte la URI por atingi la printilon per CUPS."
-
-#~ msgid "Yes, print ASCII test page"
-#~ msgstr "Jes, printu Askian provpaųon"
-
-#~ msgid "Yes, print PostScript test page"
-#~ msgstr "Jes, printu PostSkriban provpaųon"
-
-#~ msgid "Paper Size"
-#~ msgstr "Papergrandeco"
-
-#~ msgid "Eject page after job?"
-#~ msgstr "El¼etu paųon post tasko?"
-
-#~ msgid "Uniprint driver options"
-#~ msgstr "Uniprint-aj pelilaj opcioj"
-
-#~ msgid "Color depth options"
-#~ msgstr "Kolorprofunecaj opcioj"
-
-#~ msgid "Print text as PostScript?"
-#~ msgstr "Printu tekston kiel PostScripto?"
-
-#~ msgid "Fix stair-stepping text?"
-#~ msgstr "Riparu žtuparan tekston?"
-
-#~ msgid "Number of pages per output pages"
-#~ msgstr "Nombro de paųoj en eliga paųo"
-
-#~ msgid "Right/Left margins in points (1/72 of inch)"
-#~ msgstr ""
-#~ "Dekstra/Maldrekstra marųenoj en punktoj (1/72 de colo, proksimume 1/3 mm)"
-
-#~ msgid "Top/Bottom margins in points (1/72 of inch)"
-#~ msgstr ""
-#~ "Supra/Malsupra marųenoj en punktoj (1/72 de colo, proksimume 1/3 mm)"
-
-#~ msgid "Extra GhostScript options"
-#~ msgstr "Aldonaj GhostScript-aj opcioj"
-
-#~ msgid "Extra Text options"
-#~ msgstr "Aldonaj Tekstaj opcioj"
-
-#~ msgid "Reverse page order"
-#~ msgstr "Inversigu ordon de paųoj"
-
-#~ msgid "Select Remote Printer Connection"
-#~ msgstr "Elektu Malproksiman Printilan Konekton"
-
-#~ msgid ""
-#~ "Every printer need a name (for example lp).\n"
-#~ "Other parameters such as the description of the printer or its location\n"
-#~ "can be defined. What name should be used for this printer and\n"
-#~ "how is the printer connected?"
-#~ msgstr ""
-#~ "Ęiuj printilo bezonas nomon (ekzemple lp).\n"
-#~ "Aliaj parametroj, ekzemple la priskribon de la printilo aż ųian lokon\n"
-#~ "vi povas difini. Kiu nomo devus uzata por ęi tiu printilo kaj kiel\n"
-#~ "ųi estas konektata?"
-
-#~ msgid ""
-#~ "Every print queue (which print jobs are directed to) needs a\n"
-#~ "name (often lp) and a spool directory associated with it. What\n"
-#~ "name and directory should be used for this queue and how is the printer "
-#~ "connected?"
-#~ msgstr ""
-#~ "Ęiuj printvico (al kiu printajn taskojn estas direktata) bezonas nomon\n"
-#~ "(ofte lp) kaj fonan eneligan dosierujon asociata kun ųi. Kiu nomo kaj\n"
-#~ "dosierujo devus uzata por ęi tiu printvico?"
-
-#~ msgid "Name of queue"
-#~ msgstr "Nomo de printvico"
-
-#~ msgid "Spool directory"
-#~ msgstr "Fona eneliga dosierujo"
diff --git a/perl-install/share/po/es.po b/perl-install/share/po/es.po
deleted file mode 100644
index fb6f837b3..000000000
--- a/perl-install/share/po/es.po
+++ /dev/null
@@ -1,12570 +0,0 @@
-# Translation file (spanish) of Mandrake graphic install
-# Copyright (C) 1999 Mandrakesoft
-# Pablo Saratxaga <pablo@mandrakesoft.com>, 1999-2000
-# Fabian Mandelbaum <fabman@mandrakesoft.com>, 2000, 2001, 2002
-# Juan Manuel GarcĆ­a Molina <juanma_gm@wanadoo.es>, 2000-2002
-# Carlos SĆnchez <vcbsaorc@vc.ehu.es>, 2002
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: DrakX\n"
-"POT-Creation-Date: 2002-03-11 18:29+0100\n"
-"PO-Revision-Date: 2002-03-15 10:34-0300\n"
-"Last-Translator: Fabian Mandelbaum <fabman@mandrakesoft.com>\n"
-"Language-Team: Spanish <cooker-i18n@linux-mandrake.com>\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"
-
-#: ../../Xconfigurator.pm_.c:242
-msgid "Configure all heads independently"
-msgstr "Configurar los monitores independientemente"
-
-#: ../../Xconfigurator.pm_.c:243
-msgid "Use Xinerama extension"
-msgstr "Usar extensiĆ³n Xinerama"
-
-#: ../../Xconfigurator.pm_.c:246
-#, c-format
-msgid "Configure only card \"%s\" (%s)"
-msgstr "Configurar sĆ³lo la tarjeta \"%s\" (%s)"
-
-#: ../../Xconfigurator.pm_.c:249
-msgid "Multi-head configuration"
-msgstr "ConfiguraciĆ³n multi-monitor"
-
-#: ../../Xconfigurator.pm_.c:250
-msgid ""
-"Your system support multiple head configuration.\n"
-"What do you want to do?"
-msgstr ""
-"Su sistema soporta configuraciĆ³n multi-monitor.\n"
-"ĀæQuĆ© desea hacer?"
-
-#: ../../Xconfigurator.pm_.c:261
-msgid "Graphic card"
-msgstr "Tarjeta grĆfica"
-
-#: ../../Xconfigurator.pm_.c:262
-msgid "Select a graphic card"
-msgstr "Seleccione una tarjeta grĆfica"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "Choose a X server"
-msgstr "Elija un servidor X"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "X server"
-msgstr "Servidor X"
-
-#: ../../Xconfigurator.pm_.c:293
-msgid "Choose a X driver"
-msgstr "Elija un controlador X"
-
-#: ../../Xconfigurator.pm_.c:293
-msgid "X driver"
-msgstr "Controlador X"
-
-#: ../../Xconfigurator.pm_.c:360 ../../Xconfigurator.pm_.c:366
-#: ../../Xconfigurator.pm_.c:416 ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s"
-msgstr "XFree %s"
-
-#: ../../Xconfigurator.pm_.c:363
-msgid "Which configuration of XFree do you want to have?"
-msgstr "ĀæQuĆ© tipo de configuraciĆ³n de XFree desea tener?"
-
-#: ../../Xconfigurator.pm_.c:374
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"Su tarjeta puede admitir aceleraciĆ³n 3D pero sĆ³lo con XFree %s.\n"
-"XFree %s admite su tarjeta y puede tener mejor comportamiento en 2D."
-
-#: ../../Xconfigurator.pm_.c:376 ../../Xconfigurator.pm_.c:409
-#, c-format
-msgid "Your card can have 3D hardware acceleration support with XFree %s."
-msgstr "Su tarjeta puede admitir aceleraciĆ³n 3D por hardware con XFree %s."
-
-#: ../../Xconfigurator.pm_.c:378 ../../Xconfigurator.pm_.c:411
-#: ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s with 3D hardware acceleration"
-msgstr "XFree %s con aceleraciĆ³n 3D por hardware"
-
-#: ../../Xconfigurator.pm_.c:386 ../../Xconfigurator.pm_.c:400
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER."
-msgstr ""
-"Su tarjeta puede admitir aceleraciĆ³n 3D por hardware con XFree %s,\n"
-"ADVIERTA QUE ESTO ES EXPERIMENTAL Y PUEDE COLGAR SU ORDENADOR."
-
-#: ../../Xconfigurator.pm_.c:388 ../../Xconfigurator.pm_.c:402
-#, c-format
-msgid "XFree %s with EXPERIMENTAL 3D hardware acceleration"
-msgstr "XFree %s con aceleraciĆ³n 3D EXPERIMENTAL por hardware"
-
-#: ../../Xconfigurator.pm_.c:397
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"Su tarjeta sĆ³lo puede admitir aceleraciĆ³n de 3D por hardware con XFree %s,\n"
-"ADVIERTA QUE ESTO ES EXPERIMENTAL Y PUEDE COLGAR SU ORDENADOR.\n"
-"XFree %s admite su tarjeta y puede tener un mejor comportamiento en 2D."
-
-#: ../../Xconfigurator.pm_.c:417
-msgid "Xpmac (installation display driver)"
-msgstr "Xpmac (instalaciĆ³n del controlador de la pantalla)"
-
-#: ../../Xconfigurator.pm_.c:421
-msgid "XFree configuration"
-msgstr "ConfiguraciĆ³n de XFree"
-
-#: ../../Xconfigurator.pm_.c:496
-msgid "Select the memory size of your graphic card"
-msgstr "Seleccione la cantidad de memoria de su tarjeta grĆfica"
-
-#: ../../Xconfigurator.pm_.c:550
-msgid "Choose options for server"
-msgstr "Elija las opciones para el servidor"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Choose a monitor"
-msgstr "Elija un monitor"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Monitor"
-msgstr "Monitor"
-
-#: ../../Xconfigurator.pm_.c:577
-msgid ""
-"The two critical parameters are the vertical refresh rate, which is the "
-"rate\n"
-"at which the whole screen is refreshed, and most importantly the horizontal\n"
-"sync rate, which is the rate at which scanlines are displayed.\n"
-"\n"
-"It is VERY IMPORTANT that you do not specify a monitor type with a sync "
-"range\n"
-"that is beyond the capabilities of your monitor: you may damage your "
-"monitor.\n"
-" If in doubt, choose a conservative setting."
-msgstr ""
-"Los dos parĆmetros crĆ­ticos son la frecuencia de barrido vertical, que "
-"indica la frecuencia\n"
-"a la cual se refresca la pantalla entera, y mĆs importante aĆŗn, la "
-"frecuencia de sincronizaciĆ³n\n"
-"horizontal, la cual es la frecuencia de las lĆ­neas de barrido horizontal.\n"
-"\n"
-"Es MUY IMPORTANTE que no especifique un tipo de monitor con una\n"
-"frecuencia de sincronizaciĆ³n superior a la capacidad real de su monitor:\n"
-"puede daƱar su monitor.\n"
-" En caso de duda, elija una configuraciĆ³n conservadora."
-
-#: ../../Xconfigurator.pm_.c:584
-msgid "Horizontal refresh rate"
-msgstr "Frecuencia de barrido horizontal"
-
-#: ../../Xconfigurator.pm_.c:585
-msgid "Vertical refresh rate"
-msgstr "Frecuencia de barrido vertical"
-
-#: ../../Xconfigurator.pm_.c:622
-msgid "Monitor not configured"
-msgstr "El monitor no estĆ configurado"
-
-#: ../../Xconfigurator.pm_.c:625
-msgid "Graphic card not configured yet"
-msgstr "La tarjeta grĆfica todavĆ­a no estĆ configurada"
-
-#: ../../Xconfigurator.pm_.c:628
-msgid "Resolutions not chosen yet"
-msgstr "AĆŗn no ha elegido las resoluciones"
-
-#: ../../Xconfigurator.pm_.c:646
-msgid "Do you want to test the configuration?"
-msgstr "ĀæDesea probar la configuraciĆ³n?"
-
-#: ../../Xconfigurator.pm_.c:650
-msgid "Warning: testing this graphic card may freeze your computer"
-msgstr ""
-"Advertencia: probar con esta tarjeta de vĆ­deo puede colgar su ordenador"
-
-#: ../../Xconfigurator.pm_.c:653
-msgid "Test of the configuration"
-msgstr "Probar la configuraciĆ³n"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid ""
-"\n"
-"try to change some parameters"
-msgstr ""
-"\n"
-"intente cambiar algunos parĆmetros"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid "An error has occurred:"
-msgstr "OcurriĆ³ un error:"
-
-#: ../../Xconfigurator.pm_.c:731
-#, c-format
-msgid "Leaving in %d seconds"
-msgstr "Saliendo en %d segundos"
-
-#: ../../Xconfigurator.pm_.c:742
-msgid "Is this the correct setting?"
-msgstr "ĀæEs Ć©sta la configuraciĆ³n correcta?"
-
-#: ../../Xconfigurator.pm_.c:751
-msgid "An error has occurred, try to change some parameters"
-msgstr "OcurriĆ³ un error, intente cambiar algunos parĆmetros"
-
-#: ../../Xconfigurator.pm_.c:822
-msgid "Resolution"
-msgstr "ResoluciĆ³n"
-
-#: ../../Xconfigurator.pm_.c:874
-msgid "Choose the resolution and the color depth"
-msgstr "Elija la resoluciĆ³n y la profundidad de colores"
-
-#: ../../Xconfigurator.pm_.c:876
-#, c-format
-msgid "Graphic card: %s"
-msgstr "Tarjeta grĆfica: %s"
-
-#: ../../Xconfigurator.pm_.c:877
-#, c-format
-msgid "XFree86 server: %s"
-msgstr "Servidor XFree86: %s"
-
-#: ../../Xconfigurator.pm_.c:891 ../../diskdrake/interactive.pm_.c:259
-#: ../../install_steps_interactive.pm_.c:208
-msgid "More"
-msgstr "MĆs"
-
-#: ../../Xconfigurator.pm_.c:891 ../../install_gtk.pm_.c:84
-#: ../../install_steps_gtk.pm_.c:328 ../../interactive.pm_.c:127
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_http.pm_.c:104
-#: ../../interactive_newt.pm_.c:170 ../../interactive_stdio.pm_.c:141
-#: ../../interactive_stdio.pm_.c:142 ../../my_gtk.pm_.c:686
-#: ../../my_gtk.pm_.c:1019 ../../my_gtk.pm_.c:1041
-#: ../../standalone/drakbackup_.c:2298 ../../standalone/drakbackup_.c:2369
-#: ../../standalone/drakbackup_.c:2385
-msgid "Ok"
-msgstr "Aceptar"
-
-#: ../../Xconfigurator.pm_.c:893 ../../network/netconnect.pm_.c:169
-#: ../../printerdrake.pm_.c:2470 ../../standalone/draknet_.c:275
-#: ../../standalone/draknet_.c:278
-msgid "Expert Mode"
-msgstr "Modo experto"
-
-#: ../../Xconfigurator.pm_.c:894
-msgid "Show all"
-msgstr "Mostrar todo"
-
-#: ../../Xconfigurator.pm_.c:939
-msgid "Resolutions"
-msgstr "Resoluciones"
-
-#: ../../Xconfigurator.pm_.c:1509
-#, c-format
-msgid "Keyboard layout: %s\n"
-msgstr "DistribuciĆ³n del teclado: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1510
-#, c-format
-msgid "Mouse type: %s\n"
-msgstr "Tipo de ratĆ³n: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1511
-#, c-format
-msgid "Mouse device: %s\n"
-msgstr "Dispositivo del ratĆ³n: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1512
-#, c-format
-msgid "Monitor: %s\n"
-msgstr "Monitor: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1513
-#, c-format
-msgid "Monitor HorizSync: %s\n"
-msgstr "Frecuencia horizontal del monitor: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1514
-#, c-format
-msgid "Monitor VertRefresh: %s\n"
-msgstr "Frecuencia vertical del monitor: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1515
-#, c-format
-msgid "Graphic card: %s\n"
-msgstr "Tarjeta grĆfica: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1516
-#, c-format
-msgid "Graphic card identification: %s\n"
-msgstr "IdentificaciĆ³n de la tarjeta grĆfica: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1517
-#, c-format
-msgid "Graphic memory: %s kB\n"
-msgstr "Memoria de la tarjeta grĆfica: %s KB\n"
-
-#: ../../Xconfigurator.pm_.c:1519
-#, c-format
-msgid "Color depth: %s\n"
-msgstr "Profundidad de color: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1520
-#, c-format
-msgid "Resolution: %s\n"
-msgstr "ResoluciĆ³n: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1522
-#, c-format
-msgid "XFree86 server: %s\n"
-msgstr "Servidor XFree86: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1523
-#, c-format
-msgid "XFree86 driver: %s\n"
-msgstr "Controlador XFree86: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1541
-msgid "Preparing X-Window configuration"
-msgstr "Preparando la configuraciĆ³n de X-Window"
-
-#: ../../Xconfigurator.pm_.c:1561
-msgid "What do you want to do?"
-msgstr "ĀæQuĆ© desea hacer?"
-
-#: ../../Xconfigurator.pm_.c:1566
-msgid "Change Monitor"
-msgstr "Cambiar el monitor"
-
-#: ../../Xconfigurator.pm_.c:1567
-msgid "Change Graphic card"
-msgstr "Cambiar la tarjeta grĆfica"
-
-#: ../../Xconfigurator.pm_.c:1570
-msgid "Change Server options"
-msgstr "Cambiar las opciones del servidor X"
-
-#: ../../Xconfigurator.pm_.c:1571
-msgid "Change Resolution"
-msgstr "Cambiar la resoluciĆ³n"
-
-#: ../../Xconfigurator.pm_.c:1572
-msgid "Show information"
-msgstr "Mostrar informaciĆ³n"
-
-#: ../../Xconfigurator.pm_.c:1573
-msgid "Test again"
-msgstr "Probar de nuevo"
-
-#: ../../Xconfigurator.pm_.c:1574 ../../printerdrake.pm_.c:2473
-#: ../../standalone/logdrake_.c:225
-msgid "Quit"
-msgstr "Salir"
-
-#: ../../Xconfigurator.pm_.c:1582
-#, c-format
-msgid ""
-"Keep the changes?\n"
-"Current configuration is:\n"
-"\n"
-"%s"
-msgstr ""
-"ĀæConservar los cambios?\n"
-"La configuraciĆ³n actual es:\n"
-"\n"
-"%s"
-
-#: ../../Xconfigurator.pm_.c:1603
-msgid "X at startup"
-msgstr "X al arrancar"
-
-#: ../../Xconfigurator.pm_.c:1604
-msgid ""
-"I can set up your computer to automatically start X upon booting.\n"
-"Would you like X to start when you reboot?"
-msgstr ""
-"Puede configurar su computadora para que inicie X automĆticamente\n"
-"al arrancar. ĀæDesea que se lance X cuando reinicie?"
-
-#: ../../Xconfigurator.pm_.c:1610
-#, c-format
-msgid "Please relog into %s to activate the changes"
-msgstr "Abra de nuevo una sesiĆ³n %s para activar los cambios"
-
-#: ../../Xconfigurator.pm_.c:1625
-msgid "Please log out and then use Ctrl-Alt-BackSpace"
-msgstr "Por favor salga de la sesiĆ³n y luego pulse Ctrl-Alt-BackSpace"
-
-#: ../../Xconfigurator_consts.pm_.c:6
-msgid "256 colors (8 bits)"
-msgstr "256 colores (8 bits)"
-
-#: ../../Xconfigurator_consts.pm_.c:7
-msgid "32 thousand colors (15 bits)"
-msgstr "32 mil colores (15 bits)"
-
-#: ../../Xconfigurator_consts.pm_.c:8
-msgid "65 thousand colors (16 bits)"
-msgstr "65 mil colores (16 bits)"
-
-#: ../../Xconfigurator_consts.pm_.c:9
-msgid "16 million colors (24 bits)"
-msgstr "16 millones de colores (24 bits)"
-
-#: ../../Xconfigurator_consts.pm_.c:10
-msgid "4 billion colors (32 bits)"
-msgstr "4 billones de colores (32 bits)"
-
-#: ../../Xconfigurator_consts.pm_.c:113
-msgid "256 kB"
-msgstr "256 KB"
-
-#: ../../Xconfigurator_consts.pm_.c:114
-msgid "512 kB"
-msgstr "512 KB"
-
-#: ../../Xconfigurator_consts.pm_.c:115
-msgid "1 MB"
-msgstr "1 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:116
-msgid "2 MB"
-msgstr "2 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:117
-msgid "4 MB"
-msgstr "4 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:118
-msgid "8 MB"
-msgstr "8 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:119
-msgid "16 MB"
-msgstr "16 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:120
-msgid "32 MB"
-msgstr "32 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:121
-msgid "64 MB or more"
-msgstr "64 MB o mĆs"
-
-#: ../../Xconfigurator_consts.pm_.c:129
-msgid "Standard VGA, 640x480 at 60 Hz"
-msgstr "VGA estĆndar, 640x480 a 60 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:130
-msgid "Super VGA, 800x600 at 56 Hz"
-msgstr "Super VGA, 800x600 a 56 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:131
-msgid "8514 Compatible, 1024x768 at 87 Hz interlaced (no 800x600)"
-msgstr "Compatible 8514, 1024x768 a 87 Hz entrelazado (sin 800x600)"
-
-#: ../../Xconfigurator_consts.pm_.c:132
-msgid "Super VGA, 1024x768 at 87 Hz interlaced, 800x600 at 56 Hz"
-msgstr "Super VGA, 1024x768 a 87 Hz entrelazado, 800x600 a 56 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:133
-msgid "Extended Super VGA, 800x600 at 60 Hz, 640x480 at 72 Hz"
-msgstr "Super VGA extendido, 800x600 a 60 Hz, 640x480 a 72 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:134
-msgid "Non-Interlaced SVGA, 1024x768 at 60 Hz, 800x600 at 72 Hz"
-msgstr "SVGA no-entrelazado, 1024x768 a 60 Hz, 800x600 a 72 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:135
-msgid "High Frequency SVGA, 1024x768 at 70 Hz"
-msgstr "SVGA alta-frecuencia, 1024x768 a 70 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:136
-msgid "Multi-frequency that can do 1280x1024 at 60 Hz"
-msgstr "Monitor multi-frecuencia que soporta 1280x1024 a 60 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:137
-msgid "Multi-frequency that can do 1280x1024 at 74 Hz"
-msgstr "Monitor multi-frecuencia que soporta 1280x1024 a 74 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:138
-msgid "Multi-frequency that can do 1280x1024 at 76 Hz"
-msgstr "Monitor multi-frecuencia que soporta 1280x1024 a 76 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:139
-msgid "Monitor that can do 1600x1200 at 70 Hz"
-msgstr "Monitor que soporta 1600x1200 a 70 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:140
-msgid "Monitor that can do 1600x1200 at 76 Hz"
-msgstr "Monitor que soporta 1600x1200 a 76 Hz"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141
-msgid "First sector of boot partition"
-msgstr "Primer sector de la particiĆ³n de arranque"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141 ../../any.pm_.c:218
-msgid "First sector of drive (MBR)"
-msgstr "Primer sector del disco (MBR)"
-
-#: ../../any.pm_.c:120
-msgid "SILO Installation"
-msgstr "InstalaciĆ³n de SILO"
-
-#: ../../any.pm_.c:121 ../../any.pm_.c:134
-msgid "Where do you want to install the bootloader?"
-msgstr "ĀæDĆ³nde quiere instalar el cargador de arranque?"
-
-#: ../../any.pm_.c:133
-msgid "LILO/grub Installation"
-msgstr "InstalaciĆ³n de LILO/grub"
-
-#: ../../any.pm_.c:145 ../../any.pm_.c:159
-msgid "SILO"
-msgstr "SILO"
-
-#: ../../any.pm_.c:147
-msgid "LILO with text menu"
-msgstr "LILO con menĆŗ de texto"
-
-#: ../../any.pm_.c:148 ../../any.pm_.c:159
-msgid "LILO with graphical menu"
-msgstr "LILO con menĆŗ grĆfico"
-
-#: ../../any.pm_.c:151
-msgid "Grub"
-msgstr "Grub"
-
-#: ../../any.pm_.c:155
-msgid "Boot from DOS/Windows (loadlin)"
-msgstr "Arrancar desde DOS/Windows (loadlin)"
-
-#: ../../any.pm_.c:157 ../../any.pm_.c:159
-msgid "Yaboot"
-msgstr "Yaboot"
-
-#: ../../any.pm_.c:166 ../../any.pm_.c:198
-msgid "Bootloader main options"
-msgstr "Opciones principales del cargador de arranque"
-
-#: ../../any.pm_.c:167 ../../any.pm_.c:199
-msgid "Bootloader to use"
-msgstr "Cargador de arranque a usar"
-
-#: ../../any.pm_.c:169
-msgid "Bootloader installation"
-msgstr "InstalaciĆ³n del cargador de arranque"
-
-#: ../../any.pm_.c:171 ../../any.pm_.c:201
-msgid "Boot device"
-msgstr "Dispositivo de arranque"
-
-#: ../../any.pm_.c:172
-msgid "LBA (doesn't work on old BIOSes)"
-msgstr "LBA (no funciona con BIOS antiguos)"
-
-#: ../../any.pm_.c:173
-msgid "Compact"
-msgstr "Compacto"
-
-#: ../../any.pm_.c:173
-msgid "compact"
-msgstr "compacto"
-
-#: ../../any.pm_.c:174 ../../any.pm_.c:298
-msgid "Video mode"
-msgstr "Modo de vĆ­deo"
-
-#: ../../any.pm_.c:176
-msgid "Delay before booting default image"
-msgstr "Demora antes de arrancar la imagen predeterminada"
-
-#: ../../any.pm_.c:178 ../../any.pm_.c:796
-#: ../../install_steps_interactive.pm_.c:1115 ../../network/modem.pm_.c:48
-#: ../../printerdrake.pm_.c:708 ../../printerdrake.pm_.c:806
-#: ../../standalone/draknet_.c:625
-msgid "Password"
-msgstr "ContraseƱa"
-
-#: ../../any.pm_.c:179 ../../any.pm_.c:797
-#: ../../install_steps_interactive.pm_.c:1116
-msgid "Password (again)"
-msgstr "ContraseƱa (de nuevo)"
-
-#: ../../any.pm_.c:180
-msgid "Restrict command line options"
-msgstr "Restringir las opciones de la lĆ­nea de comandos"
-
-#: ../../any.pm_.c:180
-msgid "restrict"
-msgstr "restringir"
-
-#: ../../any.pm_.c:182
-msgid "Clean /tmp at each boot"
-msgstr "Limpiar /tmp en cada inicio del equipo"
-
-#: ../../any.pm_.c:183
-#, c-format
-msgid "Precise RAM size if needed (found %d MB)"
-msgstr "Precise el tamaƱo de la RAM si es necesario (se encontraron %d MB)"
-
-#: ../../any.pm_.c:185
-msgid "Enable multi profiles"
-msgstr "Activar perfiles mĆŗltiples"
-
-#: ../../any.pm_.c:189
-msgid "Give the ram size in MB"
-msgstr "Proporcione el tamaƱo de la RAM en MB"
-
-#: ../../any.pm_.c:191
-msgid ""
-"Option ``Restrict command line options'' is of no use without a password"
-msgstr ""
-"La opciĆ³n \"Restringir las opciones de la lĆ­nea de comandos\"\n"
-"no tiene sentido sin contraseƱa"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../diskdrake/interactive.pm_.c:1135
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "Please try again"
-msgstr "Vuelva a intentarlo, por favor"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "The passwords do not match"
-msgstr "Las contraseƱas no coinciden"
-
-#: ../../any.pm_.c:200
-msgid "Init Message"
-msgstr "Mensaje de inicio"
-
-#: ../../any.pm_.c:202
-msgid "Open Firmware Delay"
-msgstr "Demora de open firmware"
-
-#: ../../any.pm_.c:203
-msgid "Kernel Boot Timeout"
-msgstr "Tiempo de espera de arranque del nĆŗcleo"
-
-#: ../../any.pm_.c:204
-msgid "Enable CD Boot?"
-msgstr "ĀæHabilitar el arranque desde CD?"
-
-#: ../../any.pm_.c:205
-msgid "Enable OF Boot?"
-msgstr "ĀæHabilitar el arranque de OF?"
-
-#: ../../any.pm_.c:206
-msgid "Default OS?"
-msgstr "ĀæSO predeterminado?"
-
-#: ../../any.pm_.c:240
-msgid ""
-"You decided to install the bootloader on a partition.\n"
-"This implies you already have a bootloader on the hard drive you boot (eg: "
-"System Commander).\n"
-"\n"
-"On which drive are you booting?"
-msgstr ""
-"DecidiĆ³ instalar el cargador de arranque en una particiĆ³n.\n"
-"Esto implica que ya tiene un cargador de arranque en el disco desde el que "
-"arranca (ej: System Commander).\n"
-"\n"
-"ĀæDesde quĆ© disco arranca?"
-
-#: ../../any.pm_.c:255
-msgid ""
-"Here are the different entries.\n"
-"You can add some more or change the existing ones."
-msgstr ""
-"AquĆ­ estĆn las diferentes entradas.\n"
-"Puede aƱadir otras o cambiar las que ya existen."
-
-#: ../../any.pm_.c:265 ../../standalone/drakbackup_.c:752
-#: ../../standalone/drakbackup_.c:861 ../../standalone/drakfont_.c:789
-#: ../../standalone/drakfont_.c:826
-msgid "Add"
-msgstr "AƱadir"
-
-#: ../../any.pm_.c:265 ../../any.pm_.c:784 ../../diskdrake/hd_gtk.pm_.c:153
-#: ../../diskdrake/removable.pm_.c:27 ../../diskdrake/smbnfs_gtk.pm_.c:86
-#: ../../interactive_http.pm_.c:153
-msgid "Done"
-msgstr "Hecho"
-
-#: ../../any.pm_.c:265
-msgid "Modify"
-msgstr "Modificar"
-
-#: ../../any.pm_.c:273
-msgid "Which type of entry do you want to add?"
-msgstr "ĀæQuĆ© tipo de entrada desea aƱadir?"
-
-#: ../../any.pm_.c:274 ../../standalone/drakbackup_.c:895
-msgid "Linux"
-msgstr "Linux"
-
-#: ../../any.pm_.c:274
-msgid "Other OS (SunOS...)"
-msgstr "Otro SO (SunOS...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (MacOS...)"
-msgstr "Otro SO (MacOS...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (windows...)"
-msgstr "Otro SO (windows...)"
-
-#: ../../any.pm_.c:294
-msgid "Image"
-msgstr "Imagen"
-
-#: ../../any.pm_.c:295 ../../any.pm_.c:306
-msgid "Root"
-msgstr "RaĆ­z"
-
-#: ../../any.pm_.c:296 ../../any.pm_.c:325
-msgid "Append"
-msgstr "AƱadir"
-
-#: ../../any.pm_.c:300
-msgid "Initrd"
-msgstr "Initrd"
-
-#: ../../any.pm_.c:301
-msgid "Read-write"
-msgstr "Lectura/Escritura"
-
-#: ../../any.pm_.c:308
-msgid "Table"
-msgstr "Tabla"
-
-#: ../../any.pm_.c:309
-msgid "Unsafe"
-msgstr "Inseguro"
-
-#: ../../any.pm_.c:316 ../../any.pm_.c:321 ../../any.pm_.c:324
-msgid "Label"
-msgstr "Etiqueta"
-
-#: ../../any.pm_.c:318 ../../any.pm_.c:329
-msgid "Default"
-msgstr "Por defecto"
-
-#: ../../any.pm_.c:326
-msgid "Initrd-size"
-msgstr "TamaƱo de initrd"
-
-#: ../../any.pm_.c:328
-msgid "NoVideo"
-msgstr "NoVideo"
-
-#: ../../any.pm_.c:336
-msgid "Remove entry"
-msgstr "Quitar entrada"
-
-#: ../../any.pm_.c:339
-msgid "Empty label not allowed"
-msgstr "No se admite una etiqueta vacĆ­a"
-
-#: ../../any.pm_.c:340
-msgid "You must specify a kernel image"
-msgstr "Debe especificar una imĆgen del nĆŗcleo"
-
-#: ../../any.pm_.c:340
-msgid "You must specify a root partition"
-msgstr "Debe especificar una particiĆ³n raĆ­z"
-
-#: ../../any.pm_.c:341
-msgid "This label is already used"
-msgstr "Esta etiqueta ya estĆ en uso"
-
-#: ../../any.pm_.c:656
-#, c-format
-msgid "Found %s %s interfaces"
-msgstr "%s interfaces %s encontradas"
-
-#: ../../any.pm_.c:657
-msgid "Do you have another one?"
-msgstr "ĀæTiene alguna otra?"
-
-#: ../../any.pm_.c:658
-#, c-format
-msgid "Do you have any %s interfaces?"
-msgstr "ĀæTiene alguna interfaz %s?"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:832 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "No"
-msgstr "No"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:831 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "Yes"
-msgstr "SĆ­"
-
-#: ../../any.pm_.c:661
-msgid "See hardware info"
-msgstr "Ver informaciĆ³n sobre el hardware"
-
-#. -PO: the first %s is the card type (scsi, network, sound,...)
-#. -PO: the second is the vendor+model name
-#: ../../any.pm_.c:695
-#, c-format
-msgid "Installing driver for %s card %s"
-msgstr "Instalando controlador para la tarjeta %s %s"
-
-#: ../../any.pm_.c:696
-#, c-format
-msgid "(module %s)"
-msgstr "(mĆ³dulo %s)"
-
-#. -PO: the %s is the driver type (scsi, network, sound,...)
-#: ../../any.pm_.c:707
-#, c-format
-msgid "Which %s driver should I try?"
-msgstr "ĀæQuĆ© controlador de %s debo probar?"
-
-#: ../../any.pm_.c:715
-#, c-format
-msgid ""
-"In some cases, the %s driver needs to have extra information to work\n"
-"properly, although it normally works fine without. Would you like to "
-"specify\n"
-"extra options for it or allow the driver to probe your machine for the\n"
-"information it needs? Occasionally, probing will hang a computer, but it "
-"should\n"
-"not cause any damage."
-msgstr ""
-"En algunos casos, el controlador de %s necesita informaciĆ³n extra\n"
-"para funcionar correctamente, aunque normalmente funcione sin ella.\n"
-"ĀæDesea especificar informaciĆ³n extra para el controlador o dejar que el "
-"mismo\n"
-"pruebe su equipo y encuentre la informaciĆ³n que necesita? A veces,\n"
-"el probar el equipo puede provocar que Ć©ste se cuelgue, pero no deberĆ­a\n"
-"causar ningĆŗn daƱo."
-
-#: ../../any.pm_.c:720
-msgid "Autoprobe"
-msgstr "AutodetecciĆ³n"
-
-#: ../../any.pm_.c:720
-msgid "Specify options"
-msgstr "Especificar las opciones"
-
-#: ../../any.pm_.c:725
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Note that any address should be entered with the prefix 0x like '0x123'"
-msgstr ""
-"Ahora puede proporcionar las opciones al mĆ³dulo %s.\n"
-"Note que cualquier direcciĆ³n debe ingresarse con el prefijo 0x como '0x123'"
-
-#: ../../any.pm_.c:731
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Options are in format ``name=value name2=value2 ...''.\n"
-"For instance, ``io=0x300 irq=7''"
-msgstr ""
-"AquĆ­ deben ir las diferentes opciones para el mĆ³dulo %s.\n"
-"Las opciones son de la forma \"nombre=valor nombre2=valor2 ...\".\n"
-"Por ejemplo, \"io=0x300 irq=7\""
-
-#: ../../any.pm_.c:734
-msgid "Module options:"
-msgstr "Opciones de los mĆ³dulos:"
-
-#: ../../any.pm_.c:745
-#, c-format
-msgid ""
-"Loading module %s failed.\n"
-"Do you want to try again with other parameters?"
-msgstr ""
-"Error al cargar el mĆ³dulo %s.\n"
-"ĀæDesea intentarlo de nuevo con otros parĆmetros?"
-
-#: ../../any.pm_.c:761
-msgid "access to X programs"
-msgstr "acceso a programas X"
-
-#: ../../any.pm_.c:762
-msgid "access to rpm tools"
-msgstr "acceso a herramientas rpm"
-
-#: ../../any.pm_.c:763
-msgid "allow \"su\""
-msgstr "permitir \"su\""
-
-#: ../../any.pm_.c:764
-msgid "access to administrative files"
-msgstr "acceso a archivos administrativos"
-
-#: ../../any.pm_.c:769
-#, c-format
-msgid "(already added %s)"
-msgstr "(%s ya fue aƱadido)"
-
-#: ../../any.pm_.c:774
-msgid "This password is too simple"
-msgstr "Esta contraseƱa es demasiado sencilla"
-
-#: ../../any.pm_.c:775
-msgid "Please give a user name"
-msgstr "Introduzca el nombre de usuario"
-
-#: ../../any.pm_.c:776
-msgid ""
-"The user name must contain only lower cased letters, numbers, `-' and `_'"
-msgstr ""
-"El nombre de usuario (login) sĆ³lo debe contener letras, nĆŗmeros, `-' y `_'"
-
-#: ../../any.pm_.c:777
-msgid "This user name is already added"
-msgstr "Este nombre de usuario ya fue aƱadido"
-
-#: ../../any.pm_.c:781
-msgid "Add user"
-msgstr "AƱadir un usuario"
-
-#: ../../any.pm_.c:782
-#, c-format
-msgid ""
-"Enter a user\n"
-"%s"
-msgstr ""
-"Introduzca un usuario\n"
-"%s"
-
-#: ../../any.pm_.c:783
-msgid "Accept user"
-msgstr "Aceptar el usuario"
-
-#: ../../any.pm_.c:794
-msgid "Real name"
-msgstr "Nombre y apellidos"
-
-#: ../../any.pm_.c:795 ../../printerdrake.pm_.c:707
-#: ../../printerdrake.pm_.c:805
-msgid "User name"
-msgstr "Nombre del usuario"
-
-#: ../../any.pm_.c:798
-msgid "Shell"
-msgstr "Shell"
-
-#: ../../any.pm_.c:800
-msgid "Icon"
-msgstr "Icono"
-
-#: ../../any.pm_.c:828
-msgid "Autologin"
-msgstr "Entrada automĆtica"
-
-#: ../../any.pm_.c:829
-msgid ""
-"I can set up your computer to automatically log on one user.\n"
-"Do you want to use this feature?"
-msgstr ""
-"Puede configurar su computadora para que entre automĆticamente\n"
-"en sesiĆ³n con un usuario dado al arrancar. ĀæDesea esa funcionalidad?"
-
-#: ../../any.pm_.c:833
-msgid "Choose the default user:"
-msgstr "Elija el usuario predeterminado:"
-
-#: ../../any.pm_.c:834
-msgid "Choose the window manager to run:"
-msgstr "Elija el gestor de ventanas a ejecutar:"
-
-#: ../../any.pm_.c:849
-msgid "Please choose a language to use."
-msgstr "Por favor, elija el idioma a usar."
-
-#: ../../any.pm_.c:851
-msgid "You can choose other languages that will be available after install"
-msgstr ""
-"Puede elegir otros idiomas, que estarĆn disponibles despuĆ©s de la instalaciĆ³n"
-
-#: ../../any.pm_.c:863 ../../install_steps_interactive.pm_.c:719
-#: ../../standalone/drakxtv_.c:54
-msgid "All"
-msgstr "Todo"
-
-#: ../../any.pm_.c:955
-msgid "Allow all users"
-msgstr "Permitir a todos los usuarios"
-
-#: ../../any.pm_.c:955 ../../install_steps_interactive.pm_.c:521
-msgid "Custom"
-msgstr "Personalizada"
-
-#: ../../any.pm_.c:955
-msgid "No sharing"
-msgstr "No compartir"
-
-#: ../../any.pm_.c:965 ../../network/smbnfs.pm_.c:45
-#, c-format
-msgid "The package %s needs to be installed. Do you want to install it?"
-msgstr "Se necesita instalar el paquete %s. ĀæQuiere instalarlo?"
-
-#: ../../any.pm_.c:968
-msgid "You can export using NFS or Samba. Which one do you want"
-msgstr "Puede exportar usando NFS o Samba. ĀæCuĆl elige"
-
-#: ../../any.pm_.c:976 ../../network/smbnfs.pm_.c:49
-#, c-format
-msgid "Mandatory package %s is missing"
-msgstr "Falta el paquete obligatorio %s"
-
-#: ../../any.pm_.c:982
-msgid ""
-"Do you want to allow users to export some directories in their home?\n"
-"Allowing this will permit users to simply click on \"Share\" in konqueror "
-"and nautilus.\n"
-"\n"
-"\"Custom\" permit a per-user granularity.\n"
-msgstr ""
-"ĀæDesea permitir a los usuarios exportar algunos directorios personales?\n"
-"Si lo hace, los usuarios podrĆn simplemente hacer clic sobre \"Compartir\" en konqueror y nautilus.\n"
-"\n"
-"\"Personalizar\" permite una granularidad por usuario.\n"
-
-#: ../../any.pm_.c:996 ../../bootlook.pm_.c:161
-#: ../../diskdrake/smbnfs_gtk.pm_.c:85 ../../install_steps_gtk.pm_.c:464
-#: ../../install_steps_gtk.pm_.c:522 ../../install_steps_interactive.pm_.c:594
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_stdio.pm_.c:141
-#: ../../my_gtk.pm_.c:687 ../../my_gtk.pm_.c:690 ../../my_gtk.pm_.c:1019
-#: ../../network/netconnect.pm_.c:47 ../../printerdrake.pm_.c:1586
-#: ../../standalone/drakautoinst_.c:204 ../../standalone/drakbackup_.c:2264
-#: ../../standalone/drakbackup_.c:2289 ../../standalone/drakbackup_.c:2310
-#: ../../standalone/drakbackup_.c:2331 ../../standalone/drakbackup_.c:2349
-#: ../../standalone/drakbackup_.c:2397 ../../standalone/drakbackup_.c:2417
-#: ../../standalone/drakbackup_.c:2436 ../../standalone/drakfont_.c:767
-#: ../../standalone/drakgw_.c:721 ../../standalone/draknet_.c:116
-#: ../../standalone/draknet_.c:148 ../../standalone/draknet_.c:290
-#: ../../standalone/draknet_.c:538 ../../standalone/draknet_.c:680
-#: ../../standalone/logdrake_.c:225 ../../standalone/logdrake_.c:512
-#: ../../standalone/tinyfirewall_.c:65
-msgid "Cancel"
-msgstr "Cancelar"
-
-#: ../../any.pm_.c:996
-msgid "Launch userdrake"
-msgstr "Lanzar userdrake"
-
-#: ../../any.pm_.c:998
-msgid ""
-"The per-user sharing uses the group \"fileshare\". \n"
-"You can use userdrake to add a user in this group."
-msgstr ""
-"La comparticiĆ³n por usuario utiliza el grupo \"fileshare\". \n"
-"Puede utilizar userdrake para aƱadir un usuario a este grupo."
-
-#: ../../any.pm_.c:1035
-msgid "Welcome To Crackers"
-msgstr "Bienvenidos, crackers"
-
-#: ../../any.pm_.c:1036
-msgid "Poor"
-msgstr "Pobre"
-
-#: ../../any.pm_.c:1037 ../../mouse.pm_.c:31
-msgid "Standard"
-msgstr "EstĆndar"
-
-#: ../../any.pm_.c:1038
-msgid "High"
-msgstr "Alta"
-
-#: ../../any.pm_.c:1039
-msgid "Higher"
-msgstr "MĆs alta"
-
-#: ../../any.pm_.c:1040
-msgid "Paranoid"
-msgstr "Paranoica"
-
-#: ../../any.pm_.c:1043
-msgid ""
-"This level is to be used with care. It makes your system more easy to use,\n"
-"but very sensitive: it must not be used for a machine connected to others\n"
-"or to the Internet. There is no password access."
-msgstr ""
-"Este nivel se debe usar con mucho cuidado. Hace su sistema mĆs simple de\n"
-"usar, pero tambiĆ©n mucho mĆs vulnerable: no debe usarse para una mĆquina\n"
-"conectada en red con otras o a Internet. No hay contraseƱas de acceso."
-
-#: ../../any.pm_.c:1046
-msgid ""
-"Password are now enabled, but use as a networked computer is still not "
-"recommended."
-msgstr ""
-"Las contraseƱas estĆn activadas, pero tampoco se recomienda usar este\n"
-"nivel para un ordenador conectado a una red."
-
-#: ../../any.pm_.c:1047
-msgid ""
-"This is the standard security recommended for a computer that will be used "
-"to connect to the Internet as a client."
-msgstr ""
-"Ɖste es el nivel de seguridad estĆndar recomendado para una mĆquina que se\n"
-"utilizarĆ para conectarse a la Internet como cliente."
-
-#: ../../any.pm_.c:1048
-msgid ""
-"There are already some restrictions, and more automatic checks are run every "
-"night."
-msgstr ""
-"Ya hay algunas restricciones, y todas las noches se corren mĆs "
-"verificaciones automĆticas."
-
-#: ../../any.pm_.c:1049
-msgid ""
-"With this security level, the use of this system as a server becomes "
-"possible.\n"
-"The security is now high enough to use the system as a server which accept\n"
-"connections from many clients. Note: if your machine is only a client on the "
-"Internet, you should better choose a lower level."
-msgstr ""
-"Con este nivel de seguridad, es posible utilizar el sistema como un "
-"servidor.\n"
-"La seguridad es lo suficientemente alta como para usar el sistema como un\n"
-"servidor que acepte conexiones de mĆŗltiples clientes. Nota: si su mĆquina "
-"sĆ³lo es un cliente en la Internet, mejor deberĆ­a elegir un nivel inferior."
-
-#: ../../any.pm_.c:1052
-msgid ""
-"Based on the previous level, but the system is entirely closed.\n"
-"Security features are at their maximum."
-msgstr ""
-"Basado en el nivel anterior, pero el sistema estĆ completamente cerrado.\n"
-"Las caracterĆ­sticas de seguridad estĆn al mĆximo."
-
-#: ../../any.pm_.c:1058
-msgid "Choose security level"
-msgstr "Elegir el nivel de seguridad"
-
-#: ../../any.pm_.c:1061
-msgid "Security level"
-msgstr "Nivel de seguridad"
-
-#: ../../any.pm_.c:1063
-msgid "Use libsafe for servers"
-msgstr "Utilizar libsafe para los servidores"
-
-#: ../../any.pm_.c:1064
-msgid ""
-"A library which defends against buffer overflow and format string attacks."
-msgstr ""
-"Una biblioteca que le defiende ante ataques de desbordamiento de bĆŗfer y "
-"ataques con cadenas de formato."
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#: ../../bootloader.pm_.c:355
-#, c-format
-msgid ""
-"Welcome to %s the operating system chooser!\n"
-"\n"
-"Choose an operating system in the list above or\n"
-"wait %d seconds for default boot.\n"
-"\n"
-msgstr ""
-"ĀBienvenido a %s, el selector de SO de arranque!\n"
-"\n"
-"Elija un sistema operativo de la lista o espere %d segundos\n"
-"para que arranque el sistema predeterminado.\n"
-"\n"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:928
-msgid "Welcome to GRUB the operating system chooser!"
-msgstr "ĀBienvenido a GRUB, el selector de SO de arranque!"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:931
-#, c-format
-msgid "Use the %c and %c keys for selecting which entry is highlighted."
-msgstr "Use las teclas %c y %c para seleccionar una entrada."
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:934
-msgid "Press enter to boot the selected OS, 'e' to edit the"
-msgstr "Pulse intro para iniciar el SO elegido, pulse 'e' para editar"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:937
-msgid "commands before booting, or 'c' for a command-line."
-msgstr "los comandos antes de iniciar, o pulse 'c' para una linea de comandos."
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:940
-#, c-format
-msgid "The highlighted entry will be booted automatically in %d seconds."
-msgstr "Se va a iniciar la entrada resaltada en %d segundos."
-
-#: ../../bootloader.pm_.c:944
-msgid "not enough room in /boot"
-msgstr "no hay espacio suficiente en /boot"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#. -PO: so you may need to put them in English or in a different language if MS-windows doesn't exist in your language
-#: ../../bootloader.pm_.c:1044
-msgid "Desktop"
-msgstr "Escritorio"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#: ../../bootloader.pm_.c:1046
-msgid "Start Menu"
-msgstr "MenĆŗ inicio"
-
-#: ../../bootloader.pm_.c:1065
-#, c-format
-msgid "You can't install the bootloader on a %s partition\n"
-msgstr "No puede instalar el cargador de arranque en una particiĆ³n %s\n"
-
-#: ../../bootlook.pm_.c:46
-msgid "no help implemented yet.\n"
-msgstr "todavĆ­a no estĆ implementada la ayuda.\n"
-
-#: ../../bootlook.pm_.c:62
-msgid "Boot Style Configuration"
-msgstr "ConfiguraciĆ³n del estilo de arranque"
-
-#: ../../bootlook.pm_.c:79 ../../standalone/logdrake_.c:101
-msgid "/_File"
-msgstr "/_Archivo"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "/File/_Quit"
-msgstr "/Archivo/_Salir"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "<control>Q"
-msgstr "<control>S"
-
-#: ../../bootlook.pm_.c:91
-msgid "NewStyle Categorizing Monitor"
-msgstr "Monitor categorizante de estilo nuevo"
-
-#: ../../bootlook.pm_.c:92
-msgid "NewStyle Monitor"
-msgstr "Monitor de estilo nuevo"
-
-#: ../../bootlook.pm_.c:93
-msgid "Traditional Monitor"
-msgstr "Monitor tradicional"
-
-#: ../../bootlook.pm_.c:94
-msgid "Traditional Gtk+ Monitor"
-msgstr "Monitor tradicional Gtk+"
-
-#: ../../bootlook.pm_.c:95
-msgid "Launch Aurora at boot time"
-msgstr "Iniciar Aurora en el momento del arranque"
-
-#: ../../bootlook.pm_.c:98
-msgid "Lilo/grub mode"
-msgstr "Modo de Lilo/Grub"
-
-#: ../../bootlook.pm_.c:98
-msgid "Yaboot mode"
-msgstr "Modo de Yaboot"
-
-#: ../../bootlook.pm_.c:104
-#, c-format
-msgid ""
-"You are currently using %s as Boot Manager.\n"
-"Click on Configure to launch the setup wizard."
-msgstr ""
-"En este momento estĆ usando %s como gestor de arranque.\n"
-"Haga click sobre configurar para lanzar el asistente de configuraciĆ³n."
-
-#: ../../bootlook.pm_.c:106 ../../standalone/drakbackup_.c:1467
-#: ../../standalone/drakbackup_.c:1478 ../../standalone/drakgw_.c:715
-#: ../../standalone/tinyfirewall_.c:59
-msgid "Configure"
-msgstr "Configurar"
-
-#: ../../bootlook.pm_.c:141
-msgid "System mode"
-msgstr "Modo del sistema"
-
-#: ../../bootlook.pm_.c:143
-msgid "Launch the X-Window system at start"
-msgstr "Lanzar el sistema X-Window al comenzar"
-
-#: ../../bootlook.pm_.c:148
-msgid "No, I don't want autologin"
-msgstr "No, no deseo entrada automĆtica"
-
-#: ../../bootlook.pm_.c:150
-msgid "Yes, I want autologin with this (user, desktop)"
-msgstr "SĆ­, deseo entrada automĆtica con este (usuario, escritorio)"
-
-#: ../../bootlook.pm_.c:160 ../../network/netconnect.pm_.c:102
-#: ../../standalone/drakbackup_.c:2441 ../../standalone/drakbackup_.c:3345
-#: ../../standalone/drakfont_.c:532 ../../standalone/drakfont_.c:655
-#: ../../standalone/drakfont_.c:719 ../../standalone/drakfont_.c:765
-#: ../../standalone/draknet_.c:109 ../../standalone/draknet_.c:141
-#: ../../standalone/draknet_.c:297 ../../standalone/draknet_.c:436
-#: ../../standalone/draknet_.c:522 ../../standalone/draknet_.c:565
-#: ../../standalone/draknet_.c:666 ../../standalone/logdrake_.c:505
-msgid "OK"
-msgstr "Aceptar"
-
-#: ../../bootlook.pm_.c:229
-#, c-format
-msgid "can not open /etc/inittab for reading: %s"
-msgstr "Āno se puede abrir /etc/inittab para lectura: %s !"
-
-#: ../../common.pm_.c:94
-msgid "GB"
-msgstr "GB"
-
-#: ../../common.pm_.c:94
-msgid "KB"
-msgstr "KB"
-
-#: ../../common.pm_.c:94
-msgid "MB"
-msgstr "MB"
-
-#: ../../common.pm_.c:102
-msgid "TB"
-msgstr "TB"
-
-#: ../../common.pm_.c:110
-#, c-format
-msgid "%d minutes"
-msgstr "%d minutos"
-
-#: ../../common.pm_.c:112
-msgid "1 minute"
-msgstr "1 minuto"
-
-#: ../../common.pm_.c:114
-#, c-format
-msgid "%d seconds"
-msgstr "%d segundos"
-
-#: ../../common.pm_.c:159
-msgid "Can't make screenshots before partitioning"
-msgstr "No se pueden realizar instantĆneas de pantalla antes del particionado"
-
-#: ../../common.pm_.c:166
-#, 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"
-
-#: ../../crypto.pm_.c:12 ../../crypto.pm_.c:26 ../../standalone/drakxtv_.c:50
-msgid "France"
-msgstr "Francia"
-
-#: ../../crypto.pm_.c:13
-msgid "Costa Rica"
-msgstr "Costa Rica"
-
-#: ../../crypto.pm_.c:14 ../../crypto.pm_.c:27
-msgid "Belgium"
-msgstr "BĆ©lgica"
-
-#: ../../crypto.pm_.c:15 ../../crypto.pm_.c:28
-msgid "Czech Republic"
-msgstr "RepĆŗblica Checa"
-
-#: ../../crypto.pm_.c:16 ../../crypto.pm_.c:29
-msgid "Germany"
-msgstr "Alemania"
-
-#: ../../crypto.pm_.c:17 ../../crypto.pm_.c:30
-msgid "Greece"
-msgstr "Grecia"
-
-#: ../../crypto.pm_.c:18 ../../crypto.pm_.c:31
-msgid "Norway"
-msgstr "Noruega"
-
-#: ../../crypto.pm_.c:19 ../../crypto.pm_.c:32
-msgid "Sweden"
-msgstr "Suecia"
-
-#: ../../crypto.pm_.c:20 ../../crypto.pm_.c:34
-msgid "Netherlands"
-msgstr "Holanda"
-
-#: ../../crypto.pm_.c:21 ../../crypto.pm_.c:35 ../../standalone/drakxtv_.c:50
-msgid "Italy"
-msgstr "Italia"
-
-#: ../../crypto.pm_.c:22 ../../crypto.pm_.c:36
-msgid "Austria"
-msgstr "Austria"
-
-#: ../../crypto.pm_.c:33 ../../crypto.pm_.c:67
-msgid "United States"
-msgstr "Estados Unidos"
-
-#: ../../diskdrake/hd_gtk.pm_.c:94
-msgid "Please make a backup of your data first"
-msgstr "Por favor, haga primero una copia de seguridad de sus datos"
-
-#: ../../diskdrake/hd_gtk.pm_.c:94 ../../diskdrake/interactive.pm_.c:891
-#: ../../diskdrake/interactive.pm_.c:900 ../../diskdrake/interactive.pm_.c:954
-msgid "Read carefully!"
-msgstr "ĀLea con cuidado!"
-
-#: ../../diskdrake/hd_gtk.pm_.c:97
-msgid ""
-"If you plan to use aboot, be carefull to leave a free space (2048 sectors is "
-"enough)\n"
-"at the beginning of the disk"
-msgstr ""
-"Si piensa usar aboot, no olvide dejar espacio libre (2048 sectores es\n"
-"suficiente) al principio del disco"
-
-#: ../../diskdrake/hd_gtk.pm_.c:116 ../../diskdrake/interactive.pm_.c:325
-#: ../../diskdrake/interactive.pm_.c:340 ../../diskdrake/smbnfs_gtk.pm_.c:45
-#: ../../install_steps.pm_.c:75 ../../install_steps_interactive.pm_.c:67
-#: ../../install_steps_interactive.pm_.c:356 ../../interactive_http.pm_.c:119
-#: ../../interactive_http.pm_.c:120 ../../standalone/diskdrake_.c:84
-msgid "Error"
-msgstr "Error"
-
-#: ../../diskdrake/hd_gtk.pm_.c:151
-msgid "Wizard"
-msgstr "Asistente"
-
-#: ../../diskdrake/hd_gtk.pm_.c:181 ../../diskdrake/removable_gtk.pm_.c:24
-msgid "Choose action"
-msgstr "Elija una acciĆ³n"
-
-#: ../../diskdrake/hd_gtk.pm_.c:185
-msgid ""
-"You have one big FAT partition\n"
-"(generally used by MicroSoft Dos/Windows).\n"
-"I suggest you first resize that partition\n"
-"(click on it, then click on \"Resize\")"
-msgstr ""
-"Tiene una particiĆ³n FAT de gran tamaƱo\n"
-"(generalmente usada por DOS/Windows de MicroSoft).\n"
-"Le sugiero que primero cambie el tamaƱo de la misma\n"
-"(para eso haga clic sobre ella, y luego sobre \"Redimensionar\")"
-
-#: ../../diskdrake/hd_gtk.pm_.c:188
-msgid "Please click on a partition"
-msgstr "Por favor, haga clic sobre una particiĆ³n"
-
-#: ../../diskdrake/hd_gtk.pm_.c:202 ../../diskdrake/smbnfs_gtk.pm_.c:67
-#: ../../install_steps_gtk.pm_.c:523
-msgid "Details"
-msgstr "Detalles"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Ext2"
-msgstr "Ext2"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "FAT"
-msgstr "FAT"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "HFS"
-msgstr "HFS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Journalised FS"
-msgstr "Sistema de. archivos. con journal"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "SunOS"
-msgstr "SunOS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Swap"
-msgstr "Intercambio"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../diskdrake/interactive.pm_.c:1050
-msgid "Empty"
-msgstr "VacĆ­o"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../install_steps_gtk.pm_.c:379
-#: ../../install_steps_gtk.pm_.c:439 ../../mouse.pm_.c:162
-#: ../../services.pm_.c:157 ../../standalone/drakbackup_.c:944
-msgid "Other"
-msgstr "Otros"
-
-#: ../../diskdrake/hd_gtk.pm_.c:325
-msgid "Filesystem types:"
-msgstr "Tipos de sistemas de archivos:"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:386
-msgid "Create"
-msgstr "Crear"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:365
-#: ../../diskdrake/interactive.pm_.c:499 ../../diskdrake/removable.pm_.c:26
-#: ../../diskdrake/removable.pm_.c:49 ../../diskdrake/removable_gtk.pm_.c:17
-msgid "Type"
-msgstr "Tipo"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/hd_gtk.pm_.c:344
-#, c-format
-msgid "Use ``%s'' instead"
-msgstr "Use \"%s\" en su lugar"
-
-#: ../../diskdrake/hd_gtk.pm_.c:344 ../../diskdrake/interactive.pm_.c:374
-msgid "Delete"
-msgstr "Borrar"
-
-#: ../../diskdrake/hd_gtk.pm_.c:348
-msgid "Use ``Unmount'' first"
-msgstr "Use \"Desmontar\" primero"
-
-#: ../../diskdrake/hd_gtk.pm_.c:349 ../../diskdrake/interactive.pm_.c:491
-#, c-format
-msgid ""
-"After changing type of partition %s, all data on this partition will be lost"
-msgstr ""
-"Se perderĆn todos los datos de la particiĆ³n %s despuĆ©s de cambiar su tipo"
-
-#: ../../diskdrake/interactive.pm_.c:171
-msgid "Choose a partition"
-msgstr "Elija una particiĆ³n"
-
-#: ../../diskdrake/interactive.pm_.c:171
-msgid "Choose another partition"
-msgstr "Elija otra particiĆ³n"
-
-#: ../../diskdrake/interactive.pm_.c:196
-msgid "Exit"
-msgstr "Salir"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to expert mode"
-msgstr "Cambiar al modo experto"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to normal mode"
-msgstr "Cambiar al modo normal"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Undo"
-msgstr "Deshacer"
-
-#: ../../diskdrake/interactive.pm_.c:237
-msgid "Continue anyway?"
-msgstr "ĀæSeguir adelante?"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without saving"
-msgstr "Salir sin grabar"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without writing the partition table?"
-msgstr "ĀæSalir del programa sin grabar la tabla de particiones?"
-
-#: ../../diskdrake/interactive.pm_.c:247
-msgid "Do you want to save /etc/fstab modifications"
-msgstr "ĀæDesea guardar las modificaciones en /etc/fstab?"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Auto allocate"
-msgstr "AsignaciĆ³n automĆtica"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Clear all"
-msgstr "Borrar todas"
-
-#: ../../diskdrake/interactive.pm_.c:262
-msgid "Hard drive information"
-msgstr "InformaciĆ³n del disco rĆ­gido"
-
-#: ../../diskdrake/interactive.pm_.c:283
-msgid "All primary partitions are used"
-msgstr "Todas las particiones primarias estĆn usadas"
-
-#: ../../diskdrake/interactive.pm_.c:284
-msgid "I can't add any more partition"
-msgstr "No se pueden agregar mĆs particiones"
-
-#: ../../diskdrake/interactive.pm_.c:285
-msgid ""
-"To have more partitions, please delete one to be able to create an extended "
-"partition"
-msgstr ""
-"Por favor, para tener mĆs particiones borre alguna para poder crear una "
-"particiĆ³n extendida"
-
-#: ../../diskdrake/interactive.pm_.c:295
-msgid "Save partition table"
-msgstr "Guardar la tabla de particiones"
-
-#: ../../diskdrake/interactive.pm_.c:296
-msgid "Restore partition table"
-msgstr "Restaurar la tabla de particiones"
-
-#: ../../diskdrake/interactive.pm_.c:297
-msgid "Rescue partition table"
-msgstr "Rescatar la tabla de particiones"
-
-#: ../../diskdrake/interactive.pm_.c:299
-msgid "Reload partition table"
-msgstr "Volver a cargar la tabla de particiones"
-
-#: ../../diskdrake/interactive.pm_.c:304
-msgid "Removable media automounting"
-msgstr "Montaje automĆtico de dispositivos extraĆ­bles"
-
-#: ../../diskdrake/interactive.pm_.c:313 ../../diskdrake/interactive.pm_.c:333
-msgid "Select file"
-msgstr "Elija un archivo"
-
-#: ../../diskdrake/interactive.pm_.c:320
-msgid ""
-"The backup partition table has not the same size\n"
-"Still continue?"
-msgstr ""
-"La tabla de particiones de respaldo no tiene\n"
-"el mismo tamaƱo. ĀæDesea continuar de todas formas?"
-
-#: ../../diskdrake/interactive.pm_.c:334
-msgid "Warning"
-msgstr "Advertencia"
-
-#: ../../diskdrake/interactive.pm_.c:335
-msgid ""
-"Insert a floppy in drive\n"
-"All data on this floppy will be lost"
-msgstr ""
-"Inserte un disquete en la unidad\n"
-"Se perderĆn todos los datos del disquete"
-
-#: ../../diskdrake/interactive.pm_.c:346
-msgid "Trying to rescue partition table"
-msgstr "Tratando de rescatar la tabla de particiones"
-
-#: ../../diskdrake/interactive.pm_.c:352
-msgid "Detailed information"
-msgstr "InformaciĆ³n detallada"
-
-#: ../../diskdrake/interactive.pm_.c:364 ../../diskdrake/interactive.pm_.c:534
-#: ../../diskdrake/interactive.pm_.c:554 ../../diskdrake/removable.pm_.c:24
-#: ../../diskdrake/removable_gtk.pm_.c:15 ../../diskdrake/smbnfs_gtk.pm_.c:83
-msgid "Mount point"
-msgstr "Punto de montaje"
-
-#: ../../diskdrake/interactive.pm_.c:366 ../../diskdrake/removable.pm_.c:25
-#: ../../diskdrake/removable_gtk.pm_.c:16 ../../diskdrake/smbnfs_gtk.pm_.c:84
-msgid "Options"
-msgstr "Opciones"
-
-#: ../../diskdrake/interactive.pm_.c:367 ../../diskdrake/interactive.pm_.c:621
-msgid "Resize"
-msgstr "Redimensionar"
-
-#: ../../diskdrake/interactive.pm_.c:368 ../../diskdrake/interactive.pm_.c:674
-msgid "Move"
-msgstr "Desplazar"
-
-#: ../../diskdrake/interactive.pm_.c:369
-msgid "Format"
-msgstr "Formatear"
-
-#: ../../diskdrake/interactive.pm_.c:370 ../../diskdrake/smbnfs_gtk.pm_.c:80
-msgid "Mount"
-msgstr "Montar"
-
-#: ../../diskdrake/interactive.pm_.c:371
-msgid "Add to RAID"
-msgstr "AƱadir al RAID"
-
-#: ../../diskdrake/interactive.pm_.c:372
-msgid "Add to LVM"
-msgstr "AƱadir al LVM"
-
-#: ../../diskdrake/interactive.pm_.c:373 ../../diskdrake/smbnfs_gtk.pm_.c:79
-msgid "Unmount"
-msgstr "Desmontar"
-
-#: ../../diskdrake/interactive.pm_.c:375
-msgid "Remove from RAID"
-msgstr "Quitar del RAID"
-
-#: ../../diskdrake/interactive.pm_.c:376
-msgid "Remove from LVM"
-msgstr "Quitar del LVM"
-
-#: ../../diskdrake/interactive.pm_.c:377
-msgid "Modify RAID"
-msgstr "Modificar el RAID"
-
-#: ../../diskdrake/interactive.pm_.c:378
-msgid "Use for loopback"
-msgstr "Usar para loopback"
-
-#: ../../diskdrake/interactive.pm_.c:417
-msgid "Create a new partition"
-msgstr "Crear una particiĆ³n nueva"
-
-#: ../../diskdrake/interactive.pm_.c:420
-msgid "Start sector: "
-msgstr "Sector de comienzo: "
-
-#: ../../diskdrake/interactive.pm_.c:422 ../../diskdrake/interactive.pm_.c:773
-msgid "Size in MB: "
-msgstr "TamaƱo en MB: "
-
-#: ../../diskdrake/interactive.pm_.c:423 ../../diskdrake/interactive.pm_.c:774
-msgid "Filesystem type: "
-msgstr "Tipo de sistema de. archivos: "
-
-#: ../../diskdrake/interactive.pm_.c:424
-#: ../../diskdrake/interactive.pm_.c:1034
-#: ../../diskdrake/interactive.pm_.c:1108
-msgid "Mount point: "
-msgstr "Punto de montaje: "
-
-#: ../../diskdrake/interactive.pm_.c:428
-msgid "Preference: "
-msgstr "Preferencia: "
-
-#: ../../diskdrake/interactive.pm_.c:472
-msgid "Remove the loopback file?"
-msgstr "ĀæBorrar el archivo de loopback?"
-
-#: ../../diskdrake/interactive.pm_.c:497
-msgid "Change partition type"
-msgstr "Cambiar el tipo de particiĆ³n"
-
-#: ../../diskdrake/interactive.pm_.c:498 ../../diskdrake/removable.pm_.c:48
-msgid "Which filesystem do you want?"
-msgstr "ĀæQuĆ© sistema de archivos desea?"
-
-#: ../../diskdrake/interactive.pm_.c:502
-msgid "Switching from ext2 to ext3"
-msgstr "Cambiando de ext2 a ext3"
-
-#: ../../diskdrake/interactive.pm_.c:532
-#, c-format
-msgid "Where do you want to mount loopback file %s?"
-msgstr "ĀæDonde desea montar el archivo de loopback %s?"
-
-#: ../../diskdrake/interactive.pm_.c:533 ../../diskdrake/interactive.pm_.c:553
-#, c-format
-msgid "Where do you want to mount device %s?"
-msgstr "ĀæDĆ³nde desea montar el dispositivo %s?"
-
-#: ../../diskdrake/interactive.pm_.c:539
-msgid ""
-"Can't unset mount point as this partition is used for loop back.\n"
-"Remove the loopback first"
-msgstr ""
-"No se puede deseleccionar el punto de montaje ya que esta particiĆ³n\n"
-"se usa para un montaje en loopback.\n"
-"Quite el montaje de loopback primero"
-
-#: ../../diskdrake/interactive.pm_.c:577
-msgid "Computing FAT filesystem bounds"
-msgstr "Calculando los lĆ­mites del sistema de archivos FAT"
-
-#: ../../diskdrake/interactive.pm_.c:577 ../../diskdrake/interactive.pm_.c:636
-#: ../../install_interactive.pm_.c:130
-msgid "Resizing"
-msgstr "Redimensionando"
-
-#: ../../diskdrake/interactive.pm_.c:609
-msgid "This partition is not resizeable"
-msgstr "Esta particiĆ³n no es redimensionable"
-
-#: ../../diskdrake/interactive.pm_.c:614
-msgid "All data on this partition should be backed-up"
-msgstr ""
-"DeberĆ­a hacer una copia de seguridad de todos los datos de esta particiĆ³n"
-
-#: ../../diskdrake/interactive.pm_.c:616
-#, c-format
-msgid "After resizing partition %s, all data on this partition will be lost"
-msgstr "Se perderĆn todos los datos de la particiĆ³n %s tras cambiar su tamaƱo"
-
-#: ../../diskdrake/interactive.pm_.c:621
-msgid "Choose the new size"
-msgstr "Eligiendo el tamaƱo nuevo"
-
-#: ../../diskdrake/interactive.pm_.c:622
-msgid "New size in MB: "
-msgstr "TamaƱo nuevo en MB: "
-
-#: ../../diskdrake/interactive.pm_.c:675
-msgid "Which disk do you want to move it to?"
-msgstr "ĀæA quĆ© disco desea desplazarla?"
-
-#: ../../diskdrake/interactive.pm_.c:676
-msgid "Sector"
-msgstr "Sector"
-
-#: ../../diskdrake/interactive.pm_.c:677
-msgid "Which sector do you want to move it to?"
-msgstr "ĀæA quĆ© sector desea desplazarla?"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving"
-msgstr "Desplazando"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving partition..."
-msgstr "Desplazando una particiĆ³n..."
-
-#: ../../diskdrake/interactive.pm_.c:697
-msgid "Choose an existing RAID to add to"
-msgstr "Elegir un RAID existente al que aƱadir"
-
-#: ../../diskdrake/interactive.pm_.c:698 ../../diskdrake/interactive.pm_.c:716
-msgid "new"
-msgstr "nuevo"
-
-#: ../../diskdrake/interactive.pm_.c:714
-msgid "Choose an existing LVM to add to"
-msgstr "Elegir un LVM existente al que aƱadir"
-
-#: ../../diskdrake/interactive.pm_.c:719
-msgid "LVM name?"
-msgstr "Āænombre de LVM?"
-
-#: ../../diskdrake/interactive.pm_.c:759
-msgid "This partition can't be used for loopback"
-msgstr "Esta particiĆ³n no puede usarse para el loopback"
-
-#: ../../diskdrake/interactive.pm_.c:771
-msgid "Loopback"
-msgstr "Loopback"
-
-#: ../../diskdrake/interactive.pm_.c:772
-msgid "Loopback file name: "
-msgstr "Nombre del archivo de loopback: "
-
-#: ../../diskdrake/interactive.pm_.c:777
-msgid "Give a file name"
-msgstr "Indique el nombre de un archivo"
-
-#: ../../diskdrake/interactive.pm_.c:780
-msgid "File already used by another loopback, choose another one"
-msgstr ""
-"El archivo ya lo utiliza otro dispositivo loopback.\n"
-"Elija otro archivo, por favor"
-
-#: ../../diskdrake/interactive.pm_.c:781
-msgid "File already exists. Use it?"
-msgstr "El archivo ya existe. ĀæDesea usarlo?"
-
-#: ../../diskdrake/interactive.pm_.c:804
-msgid "Mount options"
-msgstr "Opciones de montaje"
-
-#: ../../diskdrake/interactive.pm_.c:811
-msgid "Various"
-msgstr "Varios"
-
-#: ../../diskdrake/interactive.pm_.c:874
-msgid "device"
-msgstr "dispositivo"
-
-#: ../../diskdrake/interactive.pm_.c:875
-msgid "level"
-msgstr "nivel"
-
-#: ../../diskdrake/interactive.pm_.c:876
-msgid "chunk size"
-msgstr "tamaƱo de los bloques"
-
-#: ../../diskdrake/interactive.pm_.c:891
-msgid "Be careful: this operation is dangerous."
-msgstr "Cuidado: esta operaciĆ³n es peligrosa."
-
-#: ../../diskdrake/interactive.pm_.c:906
-msgid "What type of partitioning?"
-msgstr "ĀæQuĆ© tipo de particionamiento?"
-
-#: ../../diskdrake/interactive.pm_.c:924
-msgid ""
-"Sorry I won't accept to create /boot so far onto the drive (on a cylinder > "
-"1024).\n"
-"Either you use LILO and it won't work, or you don't use LILO and you don't "
-"need /boot"
-msgstr ""
-"Disculpe, pero no se permite la creaciĆ³n de una particiĆ³n /boot tan lejos\n"
-"en el disco (en un cilindro > 1024). Puede usar lilo LILO (y es probable "
-"que\n"
-"no funcione), o bien no utiliza LILO (y entonces no necesita /boot)"
-
-#: ../../diskdrake/interactive.pm_.c:928
-msgid ""
-"The partition you've selected to add as root (/) is physically located "
-"beyond\n"
-"the 1024th cylinder of the hard drive, and you have no /boot partition.\n"
-"If you plan to use the LILO boot manager, be careful to add a /boot partition"
-msgstr ""
-"La particiĆ³n que escogiĆ³ para usar como raĆ­z (/) estĆ fĆ­sicamente ubicada\n"
-"despuĆ©s del 1024Āŗ cilindro del disco rĆ­gido, y no tiene particiĆ³n /boot.\n"
-"Si piensa usar el cargador de arranque LILO, tenga en cuenta que tiene\n"
-"que aƱadir una particiĆ³n /boot"
-
-#: ../../diskdrake/interactive.pm_.c:934
-msgid ""
-"You've selected a software RAID partition as root (/).\n"
-"No bootloader is able to handle this without a /boot partition.\n"
-"So be careful to add a /boot partition"
-msgstr ""
-"EligiĆ³ una particiĆ³n RAID en software como particiĆ³n raĆ­z (/).\n"
-"NingĆŗn cargador de arranque es capaz de manejarlo sin una particiĆ³n /boot.\n"
-"AsĆ­ que tenga en cuenta que tiene que aƱadir una particiĆ³n /boot."
-
-#: ../../diskdrake/interactive.pm_.c:954
-#, c-format
-msgid "Partition table of drive %s is going to be written to disk!"
-msgstr "ĀSe escribirĆ al disco la tabla de particiones de la unidad %s!"
-
-#: ../../diskdrake/interactive.pm_.c:958
-msgid "You'll need to reboot before the modification can take place"
-msgstr "Necesita reiniciar el equipo para que la modificaciĆ³n tenga efecto"
-
-#: ../../diskdrake/interactive.pm_.c:969
-#, c-format
-msgid "After formatting partition %s, all data on this partition will be lost"
-msgstr "Se perderĆn todos los datos de la particiĆ³n %s despuĆ©s de formatearla"
-
-#: ../../diskdrake/interactive.pm_.c:971
-msgid "Formatting"
-msgstr "Formateando"
-
-#: ../../diskdrake/interactive.pm_.c:972
-#, c-format
-msgid "Formatting loopback file %s"
-msgstr "Formateando el archivo de loopback %s"
-
-#: ../../diskdrake/interactive.pm_.c:973
-#: ../../install_steps_interactive.pm_.c:465
-#, c-format
-msgid "Formatting partition %s"
-msgstr "Formateando la particiĆ³n %s"
-
-#: ../../diskdrake/interactive.pm_.c:984
-msgid "Hide files"
-msgstr "Ocultar archivos"
-
-#: ../../diskdrake/interactive.pm_.c:984
-msgid "Move files to the new partition"
-msgstr "Mover los archivos a la nueva particiĆ³n"
-
-#: ../../diskdrake/interactive.pm_.c:985
-#, c-format
-msgid ""
-"Directory %s already contain some data\n"
-"(%s)"
-msgstr ""
-"El directorio %s ya tiene algunos datos\n"
-"(%s)"
-
-#: ../../diskdrake/interactive.pm_.c:996
-msgid "Moving files to the new partition"
-msgstr "Moviendo los archivos a la nueva particiĆ³n"
-
-#: ../../diskdrake/interactive.pm_.c:1000
-#, c-format
-msgid "Copying %s"
-msgstr "Copiando %s"
-
-#: ../../diskdrake/interactive.pm_.c:1004
-#, c-format
-msgid "Removing %s"
-msgstr "Borrando %s"
-
-#: ../../diskdrake/interactive.pm_.c:1014
-#, c-format
-msgid "partition %s is now known as %s"
-msgstr "la particiĆ³n %s ahora se conoce como %s"
-
-#: ../../diskdrake/interactive.pm_.c:1035
-#: ../../diskdrake/interactive.pm_.c:1094
-msgid "Device: "
-msgstr "Dispositivo: "
-
-#: ../../diskdrake/interactive.pm_.c:1036
-#, c-format
-msgid "DOS drive letter: %s (just a guess)\n"
-msgstr "Letra DOS: %s (simplemente una adivinanza)\n"
-
-#: ../../diskdrake/interactive.pm_.c:1040
-#: ../../diskdrake/interactive.pm_.c:1048
-#: ../../diskdrake/interactive.pm_.c:1112
-msgid "Type: "
-msgstr "Tipo: "
-
-#: ../../diskdrake/interactive.pm_.c:1044
-msgid "Name: "
-msgstr "Nombre: "
-
-#: ../../diskdrake/interactive.pm_.c:1052
-#, c-format
-msgid "Start: sector %s\n"
-msgstr "Comienzo: sector %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1053
-#, c-format
-msgid "Size: %s"
-msgstr "TamaƱo: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1055
-#, c-format
-msgid ", %s sectors"
-msgstr ", %s sectores"
-
-#: ../../diskdrake/interactive.pm_.c:1057
-#, c-format
-msgid "Cylinder %d to %d\n"
-msgstr "Cilindros %d a %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1058
-msgid "Formatted\n"
-msgstr "Formateado\n"
-
-#: ../../diskdrake/interactive.pm_.c:1059
-msgid "Not formatted\n"
-msgstr "No formateado\n"
-
-#: ../../diskdrake/interactive.pm_.c:1060
-msgid "Mounted\n"
-msgstr "Montado\n"
-
-#: ../../diskdrake/interactive.pm_.c:1061
-#, c-format
-msgid "RAID md%s\n"
-msgstr "RAID md%s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1063
-#, c-format
-msgid ""
-"Loopback file(s):\n"
-" %s\n"
-msgstr ""
-"Archivo(s) de loopback:\n"
-" %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1064
-msgid ""
-"Partition booted by default\n"
-" (for MS-DOS boot, not for lilo)\n"
-msgstr ""
-"ParticiĆ³n predeterminada de arranque\n"
-" (para arranque de MS-DOS, no para lilo)\n"
-
-#: ../../diskdrake/interactive.pm_.c:1066
-#, c-format
-msgid "Level %s\n"
-msgstr "Nivel %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1067
-#, c-format
-msgid "Chunk size %s\n"
-msgstr "TamaƱo de los bloques %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1068
-#, c-format
-msgid "RAID-disks %s\n"
-msgstr "Discos-RAID %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1070
-#, c-format
-msgid "Loopback file name: %s"
-msgstr "Nombre del archivo de loopback: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1073
-msgid ""
-"\n"
-"Chances are, this partition is\n"
-"a Driver partition, you should\n"
-"probably leave it alone.\n"
-msgstr ""
-"\n"
-"Es probable que esta particiĆ³n sea\n"
-"una particiĆ³n de Controlador, probablemente\n"
-"deberĆ­a dejarla como estĆ.\n"
-
-#: ../../diskdrake/interactive.pm_.c:1076
-msgid ""
-"\n"
-"This special Bootstrap\n"
-"partition is for\n"
-"dual-booting your system.\n"
-msgstr ""
-"\n"
-"Esta particiĆ³n especial de Bootstrap\n"
-"es para el arranque\n"
-"dual de su sistema.\n"
-
-#: ../../diskdrake/interactive.pm_.c:1095
-#, c-format
-msgid "Size: %s\n"
-msgstr "TamaƱo: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1096
-#, c-format
-msgid "Geometry: %s cylinders, %s heads, %s sectors\n"
-msgstr "GeometrĆ­a: %s cilindros, %s cabezas, %s sectores\n"
-
-#: ../../diskdrake/interactive.pm_.c:1097
-msgid "Info: "
-msgstr "Info: "
-
-#: ../../diskdrake/interactive.pm_.c:1098
-#, c-format
-msgid "LVM-disks %s\n"
-msgstr "Discos-LVM %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1099
-#, c-format
-msgid "Partition table type: %s\n"
-msgstr "Tipo de la tabla de particiones: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1100
-#, c-format
-msgid "on bus %d id %d\n"
-msgstr "en el bus %d id %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1114
-#, c-format
-msgid "Options: %s"
-msgstr "Opciones: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1130
-msgid "Filesystem encryption key"
-msgstr "Clave de cifrado del sistema de archivos"
-
-#: ../../diskdrake/interactive.pm_.c:1131
-msgid "Choose your filesystem encryption key"
-msgstr "Elija la clave de cifrado de su sistema de archivos"
-
-#: ../../diskdrake/interactive.pm_.c:1134
-#, c-format
-msgid "This encryption key is too simple (must be at least %d characters long)"
-msgstr ""
-"Esta clave de cifrado es demasiado simple\n"
-"(tiene que tener por lo menos una longitud de %d caracteres)"
-
-#: ../../diskdrake/interactive.pm_.c:1135
-msgid "The encryption keys do not match"
-msgstr "Las claves de cifrado no coinciden"
-
-#: ../../diskdrake/interactive.pm_.c:1138
-msgid "Encryption key"
-msgstr "Clave de cifrado"
-
-#: ../../diskdrake/interactive.pm_.c:1139
-msgid "Encryption key (again)"
-msgstr "Clave de cifrado (otra vez)"
-
-#: ../../diskdrake/removable.pm_.c:47
-msgid "Change type"
-msgstr "Cambiar tipo"
-
-#: ../../diskdrake/removable_gtk.pm_.c:28
-msgid "Please click on a media"
-msgstr "Por favor, haga clic sobre un medio"
-
-#: ../../diskdrake/smbnfs_gtk.pm_.c:165
-msgid "Search servers"
-msgstr "Buscar servidores"
-
-#: ../../fs.pm_.c:485 ../../fs.pm_.c:495 ../../fs.pm_.c:499 ../../fs.pm_.c:503
-#: ../../fs.pm_.c:507 ../../fs.pm_.c:511
-#, c-format
-msgid "%s formatting of %s failed"
-msgstr "%s formateo de %s fallĆ³"
-
-#: ../../fs.pm_.c:548
-#, c-format
-msgid "I don't know how to format %s in type %s"
-msgstr "No sĆ© cĆ³mo formatear %s en el tipo %s"
-
-#: ../../fs.pm_.c:620 ../../fs.pm_.c:649 ../../fs.pm_.c:655
-#, c-format
-msgid "mounting partition %s in directory %s failed"
-msgstr "fallĆ³ el montaje de la particiĆ³n %s en el directorio %s"
-
-#: ../../fs.pm_.c:640
-#, c-format
-msgid "fsck failed with exit code %d or signal %d"
-msgstr "fsck fallĆ³ con cĆ³digo de salida %d o seƱal %d"
-
-#: ../../fs.pm_.c:670 ../../partition_table.pm_.c:596
-#, c-format
-msgid "error unmounting %s: %s"
-msgstr "error desmontando %s: %s"
-
-#: ../../fsedit.pm_.c:21
-msgid "simple"
-msgstr "simple"
-
-#: ../../fsedit.pm_.c:25
-msgid "with /usr"
-msgstr "con /usr"
-
-#: ../../fsedit.pm_.c:30
-msgid "server"
-msgstr "servidor"
-
-#: ../../fsedit.pm_.c:467
-msgid "You can't use JFS for partitions smaller than 16MB"
-msgstr "No se puede usar JFS para particiones menores de 32MB"
-
-#: ../../fsedit.pm_.c:468
-msgid "You can't use ReiserFS for partitions smaller than 32MB"
-msgstr "No se puede usar ReiserFS para particiones menores de 32MB"
-
-#: ../../fsedit.pm_.c:477
-msgid "Mount points must begin with a leading /"
-msgstr "Los puntos de montaje deben comenzar con una /"
-
-#: ../../fsedit.pm_.c:478
-#, c-format
-msgid "There is already a partition with mount point %s\n"
-msgstr "Ya existe una particiĆ³n con el punto de montaje %s\n"
-
-#: ../../fsedit.pm_.c:482
-#, c-format
-msgid "You can't use a LVM Logical Volume for mount point %s"
-msgstr "No puede usar un Volumen LĆ³gico LVM para el punto de montaje %s"
-
-#: ../../fsedit.pm_.c:484
-msgid "This directory should remain within the root filesystem"
-msgstr "Este directorio deberĆ­a permanecer dentro del sistema de archivos raĆ­z"
-
-#: ../../fsedit.pm_.c:486
-msgid "You need a true filesystem (ext2, reiserfs) for this mount point\n"
-msgstr ""
-"Necesita un sistema de archivos verdadero (ext2, reiserfs) para este punto "
-"de montaje\n"
-
-#: ../../fsedit.pm_.c:488
-#, c-format
-msgid "You can't use an encrypted file system for mount point %s"
-msgstr ""
-"No puede usar un sistema de archivos cifrado para el punto de montaje %s"
-
-#: ../../fsedit.pm_.c:546
-msgid "Not enough free space for auto-allocating"
-msgstr "No hay espacio libre suficiente para la asignaciĆ³n automĆtica"
-
-#: ../../fsedit.pm_.c:548
-msgid "Nothing to do"
-msgstr "Nada para hacer"
-
-#: ../../fsedit.pm_.c:612
-#, c-format
-msgid "Error opening %s for writing: %s"
-msgstr "Error al abrir %s para escribir: %s"
-
-#: ../../fsedit.pm_.c:697
-msgid ""
-"An error has occurred - no valid devices were found on which to create new "
-"filesystems. Please check your hardware for the cause of this problem"
-msgstr ""
-"OcurriĆ³ un error - no se encontrĆ³ ningĆŗn dispositivo vĆlido para crear los "
-"nuevos sistemas de archivos. Por favor, verifique su equipo para saber la "
-"razĆ³n de este fallo"
-
-#: ../../fsedit.pm_.c:720
-msgid "You don't have any partitions!"
-msgstr "ĀNo tiene ninguna particiĆ³n!"
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:13
-msgid ""
-"GNU/Linux is a multiuser system, and this means that each user can have his\n"
-"own preferences, his own files and so on. You can read the ``User Guide''\n"
-"to learn more. But unlike \"root\", which is the administrator, the users\n"
-"you will add here will not be entitled to change anything except their own\n"
-"files and their own configuration. You will have to create at least one\n"
-"regular user for yourself. That account is where you should log in for\n"
-"routine use. Although it is very practical to log in as \"root\" everyday,\n"
-"it may also be very dangerous! The slightest mistake could mean that your\n"
-"system would not work any more. If you make a serious mistake as a regular\n"
-"user, you may only lose some information, but not the entire system.\n"
-"\n"
-"First, you have to enter your real name. This is not mandatory, of course\n"
-"as you can actually enter whatever you want. DrakX will then take the first\n"
-"word you have entered in the box and will bring it over to the \"User\n"
-"name\". This is the name this particular user will use to log onto the\n"
-"system. You can change it. You then have to enter a password here. A\n"
-"non-privileged (regular) user's password is not as crucial as \"root\"' one\n"
-"from a security point of view, but that is no reason to neglect it: after\n"
-"all, your files are at risk.\n"
-"\n"
-"If you click on \"Accept user\", you can then add as many as you want. Add\n"
-"a user for each one of your friends: your father or your sister, for\n"
-"example. When you finish adding all the users you want, select \"Done\".\n"
-"\n"
-"Clicking the \"Advanced\" button allows you to change the default \"shell\"\n"
-"for that user (bash by default)."
-msgstr ""
-"GNU/Linux es un sistema multiusuario, y esto significa que cada usuario\n"
-"puede tener sus preferencias propias, sus archivos propios, y asĆ­\n"
-"sucesivamente. Puede leer la \"GuĆ­a del Usuario\" para aprender mĆs. Pero,\n"
-"a diferencia de \"root\", que es el administrador, los usuarios que agregue\n"
-"aquĆ­ no podrĆn cambiar nada excepto su configuraciĆ³n y sus archivos\n"
-"propios. TendrĆ que crear al menos un usuario no privilegiado para Usted\n"
-"mismo. Esa cuenta es donde deberĆ­a conectarse para el uso diario. Aunque es\n"
-"muy prĆctico ingresar como \"root\" diariamente, ĀtambiĆ©n puede ser muy\n"
-"peligroso! El error mĆs leve podrĆ­a significar que su sistema deje de\n"
-"funcionar. Si comete un error serio como usuario no privilegiado, sĆ³lo\n"
-"puede llegar a perder algo de informaciĆ³n, pero no todo el sistema.\n"
-"\n"
-"Primero tendrĆ que ingresar su nombre real. Esto no es obligatorio, por\n"
-"supuesto ya que, en realidad, puede ingresar lo que desee. DrakX tomarĆ\n"
-"entonces la primer palabra que ingresĆ³ y la copiarĆ al campo \"Nombre de\n"
-"usuario\". Este es el nombre que este usuario en particular usarĆ para\n"
-"ingresar al sistema. Lo puede cambiar. Luego tendrĆ que ingresar una\n"
-"contraseƱa aquƭ. La contraseƱa de un usuario no privilegiado (regular) no\n"
-"es tan crucial como la de \"root\" desde el punto de vista de la seguridad,\n"
-"pero esto no es razĆ³n alguna para obviarla - despuĆ©s de todo, son sus\n"
-"archivos los que estĆn en riesgo.\n"
-"\n"
-"Si hace clic sobre \"Aceptar usuario\", entonces puede agregar tantos como\n"
-"desee. Agregue un usuario para cada uno de sus amigos: por ejemplo su padre\n"
-"o su hermana. Cuando haya terminado de agregar todos los usuarios que\n"
-"desee, seleccione \"Hecho\".\n"
-"\n"
-"Hacer clic sobre el botĆ³n \"Avanzadas\" le permite cambiar el \"shell\"\n"
-"predeterminado para ese usuario (bash por defecto)."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:41
-msgid ""
-"Listed above are the existing Linux partitions detected on your hard 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"
-"able to install enough software. If you want to store your data on a\n"
-"separate partition, you will also need to create a partition for \"/home\"\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 drive type\", \"hard 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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
-"\"second lowest SCSI ID\", etc."
-msgstr ""
-"Arriba se listan las particiones Linux existentes que se detectaron en su\n"
-"disco rĆ­gido. Puede mantener las elecciones hechas por el asistente, las\n"
-"mismas son buenas para las instalaciones mĆs comunes. Si hace cambios, al\n"
-"menos debe definir una particiĆ³n raĆ­z (\"/\"). No elija una particiĆ³n muy\n"
-"pequeƱa o no podrĆ instalar software suficiente. Si desea almacenar sus\n"
-"datos en una particiĆ³n separada, tambiĆ©n puede necesitar crear una\n"
-"particiĆ³n para \"/home\" (sĆ³lo es posible si tiene mĆs de una particiĆ³n\n"
-"Linux disponible).\n"
-"\n"
-"Cada particiĆ³n se lista como sigue: \"Nombre\", \"Capacidad\".\n"
-"\n"
-"\"Nombre\" estĆ estructurado: \"tipo de disco rĆ­gido\", \"nĆŗmero de disco\n"
-"rĆ­gido\", \"nĆŗmero de particiĆ³n\" (por ejemplo, \"hda1\").\n"
-"\n"
-"\"Tipo de disco rĆ­gido\" es \"hd\" si su disco es un disco IDE y \"sd\" si\n"
-"el mismo es un disco SCSI.\n"
-"\n"
-"\"NĆŗmero de disco rĆ­gido\" siempre es una letra que sigue a \"hd\" o a\n"
-"\"sd\". Para los discos IDE:\n"
-"\n"
-" * \"a\" significa \"disco rĆ­gido maestro en la controladora IDE primaria"
-"\",\n"
-"\n"
-" * \"b\" significa \"disco rĆ­gido esclavo en la controladora IDE primaria"
-"\",\n"
-"\n"
-" * \"c\" significa \"disco rĆ­gido maestro en la controladora IDE\n"
-"secundaria\",\n"
-"\n"
-" * \"d\" significa \"disco rĆ­gido esclavo en la controladora IDE\n"
-"secundaria\".\n"
-"\n"
-"Para los discos SCSI, una \"a\" significa \"SCSI ID menor\", una \"b\"\n"
-"significa \"segunda SCSI ID menor\", etc."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:72
-msgid ""
-"The Mandrake Linux 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."
-msgstr ""
-"La instalaciĆ³n Mandrake Linux se divide en varios CD-ROMs. DrakX sabe si un\n"
-"paquete seleccionado se encuentra en otro CD y expulsarĆ el CD corriente y\n"
-"le pedirĆ que inserte uno diferente cuando sea necesario."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:77
-msgid ""
-"It is now time to specify which programs you wish to install on your\n"
-"system. There are thousands of packages available for Mandrake Linux, 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"
-"be asked to specify the CDs you currently have (in Expert mode only). Check\n"
-"the CD labels and highlight the boxes corresponding to the CDs you have\n"
-"available for installation. Click \"OK\" when you are ready to continue.\n"
-"\n"
-"Packages are sorted in groups corresponding to a particular use of your\n"
-"machine. The groups themselves are sorted into four sections:\n"
-"\n"
-" * \"Workstation\": if you plan to use your machine as a workstation, "
-"select\n"
-"one or more of the corresponding groups;\n"
-"\n"
-" * \"Development\": if your machine is to be used for programming, choose\n"
-"the desired group(s);\n"
-"\n"
-" * \"Server\": if your machine is intended to be a server, you will be able\n"
-"to select which of the most common services you wish to install on your\n"
-"machine;\n"
-"\n"
-" * \"Graphical Environment\": finally, this is where you will choose your\n"
-"preferred graphical environment. At least one must be selected if you want\n"
-"to have a graphical workstation!\n"
-"\n"
-"Moving the mouse cursor over a group name will display a short explanatory\n"
-"text about that group. If you deselect all groups when performing a regular\n"
-"installation (by opposition to an upgrade), a dialog will pop up proposing\n"
-"different options for a minimal installation:\n"
-"\n"
-" * \"With X\": install the fewer packages possible to have a working\n"
-"graphical desktop;\n"
-"\n"
-" * \"With basic documentation\": installs the base system plus basic\n"
-"utilities and their documentation. This installation is suitable for\n"
-"setting up a server;\n"
-"\n"
-" * \"Truly minimal install\": will install the strict minimum necessary to\n"
-"get a working Linux system, in command line only. This installation is\n"
-"about 65Mb large.\n"
-"\n"
-"You can check the \"Individual package selection\" box, which is useful if\n"
-"you are familiar with the packages being offered or if you want to have\n"
-"total control over what will be installed.\n"
-"\n"
-"If you started the installation in \"Upgrade\" mode, you can unselect all\n"
-"groups to avoid installing any new package. This is useful for repairing or\n"
-"updating an existing system."
-msgstr ""
-"Ahora es el momento de especificar los programas que desea instalar en su\n"
-"sistema. Hay miles de paquetes disponibles para Mandrake Linux, y no se\n"
-"supone que los conozca a todos de memoria.\n"
-"\n"
-"Si estĆ realizando una instalaciĆ³n estĆndar desde un CD-ROM, primero se le\n"
-"pedirĆ que especifique los CDs que tiene (sĆ³lo en modo Experto). Verifique\n"
-"las etiquetas de los CDs y marque las casillas que corresponden a los que\n"
-"tiene disponibles para la instalaciĆ³n. Haga clic sobre \"Aceptar\" cuando\n"
-"estƩ listo para continuar.\n"
-"\n"
-"Los paquetes se ordenan en grupos que corresponden a un uso particular de\n"
-"su mĆquina. Los grupos en sĆ­ mismos estĆn clasificados en cuatro secciones:\n"
-"\n"
-" * \"EstaciĆ³n de trabajo\": si planea utilizar su mĆquina como una estaciĆ³n\n"
-"de trabajo, seleccione uno o mĆs grupos correspondientes.\n"
-"\n"
-" * \"Desarrollo\": si la mĆquina se utilizarĆ para programaciĆ³n, elija\n"
-"el(los) grupo(s) deseado(s).\n"
-"\n"
-" * \"Servidor\": finalmente, si se pretende usar la mĆquina como un "
-"servidor\n"
-"aquĆ­ puede seleccionar los servicios mĆs comunes que desea que se instalen\n"
-"en la misma.\n"
-"\n"
-" * \"Entorno grĆfico\": seleccione aquĆ­ su entorno grĆfico preferido. Si\n"
-"desea tener una estaciĆ³n de trabajo grĆfica, Āseleccione al menos uno!\n"
-"\n"
-"Si mueve el cursor del ratĆ³n sobre el nombre de un grupo se mostrarĆ un\n"
-"pequeƱo texto explicativo acerca de ese grupo. Si deselecciona todos los\n"
-"grupos cuando estĆ realizando una instalaciĆ³n regular (es decir, no una\n"
-"actualizaciĆ³n), aparecerĆ un diĆlogo que propone opciones diferentes para\n"
-"una instalaciĆ³n mĆ­nima:\n"
-"\n"
-" * \"Con X\": instala la menor cantidad de paquetes posible para tener un\n"
-"escritorio grĆfico que funcione;\n"
-"\n"
-" * \"Con documentaciĆ³n bĆsica\": instala el sistema base mĆs algunos\n"
-"utilitarios bĆsicos y la documentaciĆ³n de los mismos. Esta instalaciĆ³n es\n"
-"adecuada para configurar un servidor;\n"
-"\n"
-" * \"InstalaciĆ³n realmente mĆ­nima\": instalarĆ el mĆ­nimo necesario estricto\n"
-"para obtener un sistema Linux que funciona, sĆ³lo en lĆ­nea de comandos. Esta\n"
-"instalaciĆ³n ocupa alrededor de 65Mb.\n"
-"\n"
-"Puede marcar la opciĆ³n \"SelecciĆ³n por paquetes individuales\" que es Ćŗtil\n"
-"si estĆ familiarizado con los paquetes que se ofrecen o si desea tener un\n"
-"control total sobre lo que se instalarĆ.\n"
-"\n"
-"Si iniciĆ³ la instalaciĆ³n en el modo \"ActualizaciĆ³n\", puede deseleccionar\n"
-"todos los grupos para evitar instalar cualquier paquete nuevo. Esto es Ćŗtil\n"
-"para reparar o actualizar un sistema existente."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:128
-msgid ""
-"Finally, depending on whether or not you selected individual packages, you\n"
-"will be presented a tree containing all packages classified by groups and\n"
-"subgroups. While browsing the tree, you can select entire groups,\n"
-"subgroups, or individual packages.\n"
-"\n"
-"Whenever you select a package on the tree, a description appears on the\n"
-"right. When your selection is finished, click the \"Install\" button which\n"
-"will then launch the installation process. Depending on the speed of your\n"
-"hardware and the number of packages that need to be installed, it may take\n"
-"a while to complete the process. An estimate of the time it will take to\n"
-"install everything is displayed on the screen, to help you gauge if there\n"
-"is sufficient time to enjoy a cup of coffee.\n"
-"\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 Mandrake Linux, 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 Mandrake Linux 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"
-"default. !!\n"
-"\n"
-"The \"Automatic dependencies\" option simply disables the warning dialog\n"
-"which appears whenever the installer automatically selects a package. This\n"
-"occurs because it has determined that it needs to satisfy a dependency with\n"
-"another package in order to successfully complete the installation.\n"
-"\n"
-"The tiny floppy disk icon at the bottom of the list allows to load the\n"
-"package list chosen during a previous installation. Clicking on this icon\n"
-"will ask you to insert a floppy disk previously created at the end of\n"
-"another installation. See the second tip of last step on how to create such\n"
-"a floppy."
-msgstr ""
-"Finalmente, dependiendo de si Usted elige seleccionar los paquetes\n"
-"individuales o no, se le presentarĆ un Ćrbol que contiene todos los\n"
-"paquetes clasificados por grupos y sub-grupos. Mientras navega por el\n"
-"Ćrbol, puede seleccionar grupos enteros, sub-grupos, o simplemente\n"
-"paquetes.\n"
-"\n"
-"Tan pronto como selecciona un paquete en el Ćrbol, aparece una descripciĆ³n\n"
-"del mismo sobre la derecha. Cuando ha finalizado con su selecciĆ³n, haga\n"
-"clic sobre el botĆ³n \"Instalar\" que lanzarĆ el proceso de instalaciĆ³n.\n"
-"Dependiendo de la velocidad de su hardware y de la cantidad de paquetes que\n"
-"se deben instalar, el proceso puede tardar un rato en completarse. En la\n"
-"pantalla se muestra una estimaciĆ³n del tiempo necesario para completar la\n"
-"instalaciĆ³n para ayudarlo a considerar si tiene tiempo suficiente par\n"
-"disfrutar una taza de cafƩ.\n"
-"\n"
-"!! Si ha sido seleccionado un paquete de servidor ya sea intencionalmente o\n"
-"porque era parte de un grupo completo, se le pedirĆ que confirme que\n"
-"realmente desea que se instalen esos servidores. Bajo Mandrake Linux,\n"
-"cualquier servidor instalado se inicia de manera predeterminada al momento\n"
-"del arranque. Aunque estos son seguros y no tienen problemas conocidos al\n"
-"momento en que se publicĆ³ la distribuciĆ³n, puede ocurrir que mĆs tarde se\n"
-"descubran vulnerabilidades en la seguridad. En particular, si no sabe que\n"
-"es lo que se supone que hace un servicio o la razĆ³n por la cual se estĆ\n"
-"instalando, entonces haga clic sobre \"No\". Si hace clic sobre \"SĆ­\" se\n"
-"instalarĆn todos los servicios listados y de manera predeterminada los\n"
-"mismos arrancarĆn automĆticamente. !!\n"
-"\n"
-"La opciĆ³n \"Dependencias automĆticas\" simplemente deshabilita el diĆlogo\n"
-"de advertencia cuando el instalador selecciona automĆticamente un paquete.\n"
-"Esto ocurre porque se determina que es necesario para satisfacer una\n"
-"dependencia con otro paquete para poder completar la instalaciĆ³n\n"
-"satisfactoriamente.\n"
-"\n"
-"El pequeƱo icono del disquete al final de la lista le permite cargar la\n"
-"lista de paquetes elegida durante una instalaciĆ³n previa. Haga clic sobre\n"
-"este icono y se le pedirĆ que inserte un disquete creado con anterioridad\n"
-"al final de otra instalaciĆ³n. Vea el segundo consejo del Ćŗltimo paso para\n"
-"informaciĆ³n sobre como crear dicho disquete."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:164
-msgid ""
-"You are now proposed to set up your Internet/network connection. If you\n"
-"wish to connect your computer to the Internet or to a local network, click\n"
-"\"OK\". The autodetection of network devices and modem will be launched. If\n"
-"this detection fails, uncheck the \"Use auto detection\" box next time. You\n"
-"may also choose not to configure the network, or do it later; in that case,\n"
-"simply click the \"Cancel\" button.\n"
-"\n"
-"Available connections are: traditional modem, ISDN modem, ADSL connection,\n"
-"cable modem, and finally a simple LAN connection (Ethernet).\n"
-"\n"
-"Here, we will not detail each configuration. Simply make sure that you have\n"
-"all the parameters from your Internet Service Provider or system\n"
-"administrator.\n"
-"\n"
-"You can consult the ``User Guide'' chapter about Internet connections for\n"
-"details about the configuration, or simply wait until your system is\n"
-"installed and use the program described there to configure your connection.\n"
-"\n"
-"If you wish to configure the network later after installation, or if you\n"
-"are finished configuring your network connection, click \"Cancel\"."
-msgstr ""
-"Ahora se le propone configurar su conexiĆ³n de red/Internet. Si desea\n"
-"conectar su computadora a la Internet o a una red de Ćrea local, haga clic\n"
-"sobre \"Aceptar\". Se lanzarĆ la detecciĆ³n automĆtica de dispositivos de\n"
-"red y mĆ³dems. Si esta detecciĆ³n falla, quite la marca de la casilla \"Usar\n"
-"detecciĆ³n automĆtica\" la prĆ³xima vez. TambiĆ©n puede elegir no configurar\n"
-"la red, o hacerlo mĆs tarde; en ese caso simplemente haga clic sobre el\n"
-"botĆ³n \"Cancelar\".\n"
-"\n"
-"Los tipos de conexiĆ³n disponibles son: mĆ³dem tradicional, mĆ³dem RDSI\n"
-"(ISDN), conexiĆ³n ADSL, cable mĆ³dem, y finalmente una simple conexiĆ³n LAN\n"
-"(Ethernet).\n"
-"\n"
-"AquĆ­ no entraremos en detalle en cada configuraciĆ³n. Simplemente debe\n"
-"asegurarse que su Proveedor de Servicios de Internet o su administrador del\n"
-"sistema le proporcionaron todos los parĆmetros de configuraciĆ³n.\n"
-"\n"
-"Puede consultar el capĆ­tulo de \"GuĆ­a del Usuario\" sobre las conexiones a\n"
-"la Internet para detalles acerca de la configuraciĆ³n, o simplemente esperar\n"
-"hasta que su sistema estƩ instalado y usar el programa que se describe aquƭ\n"
-"para configurar su conexiĆ³n.\n"
-"\n"
-"Si desea configurar la red mĆs tarde, luego de la instalaciĆ³n, o si ha\n"
-"finalizado de configurar su conexiĆ³n de red, haga clic sobre \"Cancelar\"."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:186
-msgid ""
-"You may now choose which services you wish to start at boot time.\n"
-"\n"
-"Here are presented all the services available with the current\n"
-"installation. Review them carefully and uncheck those which are not always\n"
-"needed at boot time.\n"
-"\n"
-"You can get a short explanatory text about a service by selecting a\n"
-"specific service. However, if you are not sure whether a service is useful\n"
-"or not, 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 will probably not want to start any services which you do not\n"
-"need. Please remember that several services can be dangerous if they are\n"
-"enabled on a server. In general, select only the services you really need.\n"
-"!!"
-msgstr ""
-"Ahora puede elegir los servicios que desea iniciar durante el arranque.\n"
-"\n"
-"AquĆ­ se presentan todos los servicios disponibles con la instalaciĆ³n\n"
-"corriente. Debe revisarlos con cuidado y quitar la marca de aquellos que no\n"
-"siempre son necesarios al arrancar.\n"
-"\n"
-"Puede obtener un pequeƱo texto explicativo acerca de un servicio\n"
-"seleccionando un servicio especĆ­fico. Sin embargo, si no estĆ seguro si un\n"
-"servicio es Ćŗtil o no, es mĆs seguro dejar el comportamiento\n"
-"predeterminado.\n"
-"\n"
-"!! Tenga mucho cuidado en esta etapa si pretende usar su mĆquina como un\n"
-"servidor: probablemente no desearĆ arrancar servicios que no necesita. Por\n"
-"favor recuerde que varios servicios pueden ser peligrosos si se habilitan\n"
-"en un servidor. En general, seleccione sĆ³lo aquellos servicios que\n"
-"realmente necesita. !!"
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:203
-msgid ""
-"GNU/Linux manages time in GMT (Greenwich Mean Time) and translates it in\n"
-"local time according to the time zone you selected. It is however possible\n"
-"to deactivate this by deselecting \"Hardware clock set to GMT\" so that the\n"
-"hardware clock is the same as the system clock. This is useful when the\n"
-"machine is hosting another operating system like Windows.\n"
-"\n"
-"The \"Automatic time synchronization\" option will automatically regulate\n"
-"the clock by connecting to a remote time server on the Internet. In the\n"
-"list that is presented, choose a server located near you. Of course you\n"
-"must have a working Internet connection for this feature to work. It will\n"
-"actually install on your machine a time server which can be optionally used\n"
-"by other machines on your local network."
-msgstr ""
-"GNU/Linux administra la hora en GMT (\"Greenwich Mean Time\", Hora del\n"
-"Meridiano de Greenwich) y la traduce a la hora local de acuerdo al huso\n"
-"horario que Usted seleccionĆ³. Sin embargo, es posible desactivar esto\n"
-"quitando la marca de la casilla \"Reloj interno puesto a GMT\" de forma tal\n"
-"que el reloj de hardware es el mismo que el del sistema. Esto es Ćŗtil\n"
-"cuando la mĆquina alberga otro sistema operativo como Windows.\n"
-"\n"
-"La opciĆ³n \"SincronizaciĆ³n automĆtica de hora (usando NTP)\" regularĆ\n"
-"automĆticamente el reloj conectĆndose a un servidor remoto de la hora en la\n"
-"Internet. Elija un servidor ubicado cerca suyo en la lista que se presenta.\n"
-"Por supuesto debe tener una conexiĆ³n con la Internet funcionando para que\n"
-"esta caracterĆ­stica funcione. La misma instalarĆ en su mĆquina un servidor\n"
-"de la hora que, opcionalmente, puede ser utilizado por otras mĆquinas en su\n"
-"red local."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:217
-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 Mandrake Linux rely. In this section, DrakX\n"
-"will try to configure X automatically.\n"
-"\n"
-"It is extremely rare for it to fail, unless the hardware is very old (or\n"
-"very new). If it succeeds, it will start X automatically with the best\n"
-"resolution possible, depending on the size of the monitor. A window will\n"
-"then appear and ask you if you can see it.\n"
-"\n"
-"If you are doing an \"Expert\" installation, you will enter the X\n"
-"configuration wizard. See the corresponding section of the manual for more\n"
-"information about this wizard.\n"
-"\n"
-"If you can see the message during the test, and answer \"Yes\", then DrakX\n"
-"will proceed to the next step. If you cannot see the message, it simply\n"
-"means that the configuration was wrong and the test will automatically end\n"
-"after 10 seconds, restoring the screen."
-msgstr ""
-"X (por X Window System) es el corazĆ³n de la interfaz grĆfica de GNU/Linux\n"
-"en el que se apoyan todos los entornos grĆficos (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) que se incluyen con Mandrake Linux. En esta secciĆ³n,\n"
-"DrakX intentarĆ configurar a X automĆticamente.\n"
-"\n"
-"Es extremadamente raro que esto falle, a menos que el hardware sea muy\n"
-"antiguo (o muy nuevo). Si no falla, arrancarĆ X automĆticamente con la\n"
-"mejor resoluciĆ³n posible dependiendo del tamaƱo de su monitor. Luego\n"
-"aparecerĆ una ventana que le pregunta si la puede ver.\n"
-"\n"
-"Si estĆ haciendo una instalaciĆ³n en modo \"Experto\", ingresarĆ al\n"
-"asistente de configuraciĆ³n de X. Para mĆs informaciĆ³n sobre este asistente\n"
-"vea la secciĆ³n correspondiente del manual.\n"
-"\n"
-"Si puede ver el mensaje y responde \"SĆ­\", entonces DrakX continuarĆ con el\n"
-"paso siguiente. Si no puede ver el mensaje, simplemente significa que la\n"
-"configuraciĆ³n no era la correcta y la prueba terminarĆ automĆticamente\n"
-"luego de 10 segundos, restaurando la pantalla."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:237
-msgid ""
-"The first time you try the X configuration, you may not be very satisfied\n"
-"with its display (screen is too small, shifted left or right...). Hence,\n"
-"even if X starts up correctly, DrakX then asks you if the configuration\n"
-"suits you. It will also propose to change it by displaying a list of valid\n"
-"modes it could find, asking you to select one.\n"
-"\n"
-"As a last resort, if you still cannot get X to work, choose \"Change\n"
-"graphics card\", select \"Unlisted card\", and when prompted on which\n"
-"server, choose \"FBDev\". This is a failsafe option which works with any\n"
-"modern graphics card. Then choose \"Test again\" to be sure."
-msgstr ""
-"La primera vez que intenta la configuraciĆ³n de X Usted puede no estar muy\n"
-"satisfecho con el resultado (la pantalla es muy pequeƱa, estĆ corrida hacia\n"
-"la izquierda o hacia la derecha...). Es por esto que, incluso si X arranca\n"
-"correctamente, DrakX le preguntarĆ si la configuraciĆ³n le conviene. TambiĆ©n\n"
-"propondrĆ cambiarla mostrando una lista de modos vĆlidos que pudo\n"
-"encontrar, y le pedirĆ que seleccione alguno.\n"
-"\n"
-"Como Ćŗltimo recurso, si todavĆ­a no puede hacer que X funcione, elija\n"
-"\"Cambiar la tarjeta grĆfica\", seleccione \"Tarjeta no listada\", y cuando\n"
-"se le pregunte acerca de que servidor desea elija \"FBDev\". Esta es una\n"
-"opciĆ³n a prueba de fallos que funciona con cualquier tarjeta grĆfica\n"
-"moderna. Luego elija \"Probar nuevamente\" para estar seguro que funciona."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:249
-msgid ""
-"Finally, you will be asked whether you want to see the graphical interface\n"
-"at boot. Note this question will be asked even if you chose not to test the\n"
-"configuration. Obviously, you want to answer \"No\" if your machine is to\n"
-"act as a server, or if you were not successful in getting the display\n"
-"configured."
-msgstr ""
-"Finalmente, se le preguntarĆ si desea ver la interfaz grĆfica en el\n"
-"arranque. Note que esta pregunta se le formula incluso si eligiĆ³ no probar\n"
-"la configuraciĆ³n. Obviamente, querrĆ responder \"No\" si su mĆquina va a\n"
-"actuar como un servidor, o si no tuvo Ć©xito con la configuraciĆ³n de la\n"
-"pantalla."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:256
-msgid ""
-"The Mandrake LinuxCD-ROM has a built-in rescue mode. You can access it by\n"
-"booting from the CD-ROM, press the >>F1<< key at boot and type >>rescue<<\n"
-"at the prompt. But in case your computer cannot boot from the CD-ROM, you\n"
-"should come back to this step for help in at least two situations:\n"
-"\n"
-" * when installing the bootloader, DrakX will rewrite the boot sector (MBR)\n"
-"of your main disk (unless you are using another boot manager), to allow you\n"
-"to start up with either Windows or GNU/Linux (assuming you have Windows in\n"
-"your system). If you need to reinstall Windows, the Microsoft install\n"
-"process will rewrite the boot sector, and then you will not be able to\n"
-"start GNU/Linux!\n"
-"\n"
-" * if a problem arises and you cannot start up GNU/Linux from the hard "
-"disk,\n"
-"this floppy disk will be the only means of starting up GNU/Linux. It\n"
-"contains a fair number of system tools for restoring a system, which has\n"
-"crashed due to a power failure, an unfortunate typing error, a typo in a\n"
-"password, or any other reason.\n"
-"\n"
-"When you click on this step, you will be asked to enter a disk inside the\n"
-"drive. The floppy disk you will insert must be empty or contain data which\n"
-"you do not need. You will not have to format it since DrakX will rewrite\n"
-"the whole disk."
-msgstr ""
-"El CD-ROM de Mandrake Linux tiene un modo de rescate incorporado. Usted\n"
-"puede acceder al mismo arrancando desde el CD-ROM, presionando la tecla\n"
-">>F1<< durante el arranque y tecleando >>rescue<< en el prompt. Pero en\n"
-"caso que su computadora no pueda arrancar desde el CD-ROM, Usted deberĆ­a\n"
-"recurrir a este paso al menos en dos situaciones:\n"
-"\n"
-" * cuando instala el cargador de arranque, DrakX sobreescribirĆ el sector "
-"de\n"
-"arranque (MBR) de su disco principal (a menos que estƩ utilizando otro\n"
-"administrador de arranque) de forma tal que pueda iniciar o bien Windows o\n"
-"bien GNU/Linux (asumiendo que tiene Windows en su sistema). Si necesita\n"
-"volver a instalar Windows, el proceso de instalaciĆ³n de Microsoft\n"
-"sobreescribirĆ el sector de arranque, y entonces ĀUsted no podrĆ iniciar\n"
-"GNU/Linux!\n"
-"\n"
-" * si surge un problema y Usted no puede iniciar GNU/Linux desde el disco\n"
-"rĆ­gido, este disquete serĆ la Ćŗnica manera de iniciar GNU/Linux. El mismo\n"
-"contiene una buena cantidad de herramientas del sistema para restaurar un\n"
-"sistema que colapsĆ³ debido a una falla de energĆ­a, un error de tecleo\n"
-"infortunado, un error en una contraseƱa, o cualquier otro motivo.\n"
-"\n"
-"Cuando haga clic sobre este paso se le pedirĆ que inserte un disquete\n"
-"dentro de la disquetera. El disquete que insertarĆ debe estar vacĆ­o o\n"
-"contener datos que no necesite. No tendrĆ que formatearlo ya que DrakX\n"
-"sobreescribirĆ el disquete por completo."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:280
-msgid ""
-"At this point, you need to choose where you want to install the Mandrake\n"
-"Linux operating system on your hard drive. If your hard drive is empty or\n"
-"if an existing operating system is using all the available space, you will\n"
-"need to partition it. Basically, partitioning a hard drive consists of\n"
-"logically dividing it to create space to install your new Mandrake Linux\n"
-"system.\n"
-"\n"
-"Because the partitioning process' effects are usually irreversible,\n"
-"partitioning can be intimidating and stressful if you are an inexperienced\n"
-"user. Fortunately, there is a wizard which simplifies this process. Before\n"
-"beginning, please consult the manual and take your time.\n"
-"\n"
-"If you are running the installation in Expert mode, you will enter\n"
-"DiskDrake, the Mandrake Linux partitioning tool, which allows you to\n"
-"fine-tune your partitions. See the DiskDrake section in the ``User Guide''.\n"
-"From the installation interface, you can use the wizards as described here\n"
-"by clicking the dialog's \"Wizard\" button.\n"
-"\n"
-"If partitions have already been defined, either from a previous\n"
-"installation or from another partitioning tool, simply select those to\n"
-"install your Linux system.\n"
-"\n"
-"If partitions are not defined, you will need to create them using the\n"
-"wizard. Depending on your hard drive configuration, several options are\n"
-"available:\n"
-"\n"
-" * \"Use free space\": this option will simply lead to an automatic\n"
-"partitioning of your blank drive(s). You will not be prompted further;\n"
-"\n"
-" * \"Use existing partition\": the wizard has detected one or more existing\n"
-"Linux partitions on your hard drive. If you want to use them, choose this\n"
-"option;\n"
-"\n"
-" * \"Use the free space on the Windows; partition\": if MicrosoftWindows is\n"
-"installed on your hard drive and takes all the space available on it, you\n"
-"have to create free space for Linux data. To do so, you can delete your\n"
-"MicrosoftWindows partition and data (see ``Erase entire disk'' or ``Expert\n"
-"mode'' solutions) or resize your MicrosoftWindows partition. Resizing can\n"
-"be performed without the loss of any data, provided you previously\n"
-"defragment the Windows partition. Backing up your data won't hurt either..\n"
-"This solution is recommended if you want to use both Mandrake Linux and\n"
-"MicrosoftWindows on the same computer.\n"
-"\n"
-" Before choosing this option, please understand that after this "
-"procedure,\n"
-"the size of your MicrosoftWindows partition will be smaller than at the\n"
-"present time. You will have less free space under MicrosoftWindows to store\n"
-"your data or to install new software;\n"
-"\n"
-" * \"Erase entire disk\": if you want to delete all data and all partitions\n"
-"present on your hard drive and replace them with your new Mandrake Linux\n"
-"system, choose this option. Be careful with this solution because you will\n"
-"not be able to revert your choice after you confirm;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Remove Windows\": this will simply erase everything on the drive and\n"
-"begin fresh, partitioning everything from scratch. All data on your disk\n"
-"will be lost;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Expert mode\": choose this option if you want to manually partition\n"
-"your hard drive. Be careful it is a powerful but dangerous choice. You can\n"
-"very easily lose all your data. Hence, do not choose this unless you know\n"
-"what you are doing."
-msgstr ""
-"Ahora necesita elegir el lugar de su disco rĆ­gido donde se instalarĆ su\n"
-"sistema operativo Mandrake Linux. 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 Mandrake Linux nuevo.\n"
-"\n"
-"Debido a que los efectos del particionado por lo general son irreversibles,\n"
-"el particionado puede ser intimidante y estresante si Usted es un usuario\n"
-"inexperto. Por fortuna, hay un asistente que simplifica este proceso. Antes\n"
-"de comenzar, por favor consulte el manual y tĆ³mese su tiempo.\n"
-"\n"
-"Si estĆ corriendo la instalaciĆ³n en modo Experto, ingresarĆ a DiskDrake, la\n"
-"herramienta de particionado de Mandrake Linux, que le permite un ajuste\n"
-"fino de sus particiones. Vea la secciĆ³n DiskDrake en la \"GuĆ­a del\n"
-"Usuario\". Desde la interfaz de instalaciĆ³n, puede utilizar los asistentes\n"
-"como se describe aquĆ­ haciendo clic sobre el botĆ³n \"Asistente\" del\n"
-"diĆlogo.\n"
-"\n"
-"Si ya se han definido particiones, ya sea de una instalaciĆ³n previa o por\n"
-"medio de otra herramienta de particionado, simplemente seleccione esas para\n"
-"instalar su sistema Linux.\n"
-"\n"
-"Si no hay particiones definidas, necesitarĆ crearlas usando el asistente.\n"
-"Dependiendo de la configuraciĆ³n de su disco rĆ­gido, estĆn disponibles\n"
-"varias opciones:\n"
-"\n"
-" * \"Usar espacio libre\": esta opciĆ³n simplemente llevarĆ a un "
-"particionado\n"
-"automĆtico de su(s) disco(s) vacĆ­o(s). No se le pedirĆn mĆs detalles ni se\n"
-"le formularĆn mĆs preguntas.\n"
-"\n"
-" * \"Usar particiĆ³n existente\": el asistente ha detectado una o mĆs\n"
-"particiones Linux existentes en su disco rĆ­gido. Si desea utilizarlas,\n"
-"elija esta opciĆ³n.\n"
-"\n"
-" * \"Usar el espacio libre en la particiĆ³n Windows\": si MicrosoftWindows\n"
-"estĆ instalado en su disco rĆ­gido y ocupa todo el espacio disponible en el\n"
-"mismo, Usted tiene que liberar espacio para los datos de Linux. Para\n"
-"hacerlo, puede borrar su particiĆ³n y datos MicrosoftWindows (vea las\n"
-"soluciones \"Borrar el disco completo\" o \"Modo experto\") o cambie el\n"
-"tamaƱo de su particiĆ³n Windows. El cambio de tamaƱo se puede realizar sin\n"
-"la pƩrdida de datos, siempre y cuando Usted ha desfragmentado con\n"
-"anterioridad la particiĆ³n Windows. TambiĆ©n se recomienda hacer una copia de\n"
-"respaldo de sus datos.. Se recomienda esta soluciĆ³n si desea utilizar tanto\n"
-"Mandrake Linux como MicrosoftWindows en la misma computadora.\n"
-"\n"
-" Antes de elegir esta opciĆ³n, por favor comprenda que despuĆ©s de este\n"
-"procedimiento, el tamaƱo de su particiĆ³n MicrosoftWindows serĆ mĆs pequeƱo\n"
-"que ahora. TendrĆ menos espacio bajo MicrosoftWindows para almacenar sus\n"
-"datos o instalar software nuevo.\n"
-"\n"
-" * \"Borrar el disco entero\": si desea borrar todos los datos y todas las\n"
-"particiones presentes en su disco rĆ­gido y reemplazarlas con su nuevo\n"
-"sistema Mandrake Linux, elija esta opciĆ³n. Tenga cuidado con esta soluciĆ³n\n"
-"ya 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"
-"\n"
-" * \"Quitar Windows\": simplemente esto borrarĆ todo en el disco y "
-"comenzarĆ\n"
-"particionando todo desde cero. Se perderĆn todos los datos en su disco.\n"
-"\n"
-" !! Si elige esta opciĆ³n, se perderĆn todos los datos en su disco. !!\n"
-"\n"
-" * \"Modo experto\": elija esta opciĆ³n si desea particionar manualmente su\n"
-"disco rĆ­gido. Tenga cuidado - esta es una elecciĆ³n potente pero peligrosa.\n"
-"Puede perder todos sus datos con facilidad. Por lo tanto, no elija esta\n"
-"opciĆ³n a menos que sepa lo que estĆ haciendo."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:347
-msgid ""
-"There you are. Installation is now complete and your GNU/Linux system is\n"
-"ready to use. Just click \"OK\" to reboot the system. You can start\n"
-"GNU/Linux or Windows, whichever you prefer (if you are dual-booting), as\n"
-"soon as the computer has booted up again.\n"
-"\n"
-"The \"Advanced\" button (in Expert mode only) shows two more buttons to:\n"
-"\n"
-" * \"generate auto-install floppy\": to create an installation floppy disk\n"
-"which will automatically perform a whole installation without the help of\n"
-"an operator, similar to the installation you just configured.\n"
-"\n"
-" Note that two different options are available after clicking the button:\n"
-"\n"
-" * \"Replay\". This is a partially automated installation as the\n"
-"partitioning step (and only this one) remains interactive;\n"
-"\n"
-" * \"Automated\". Fully automated installation: the hard disk is "
-"completely\n"
-"rewritten, all data is lost.\n"
-"\n"
-" This feature is very handy when installing a great number of similar\n"
-"machines. See the Auto install section on our web site;\n"
-"\n"
-" * \"Save packages selection\"(*): saves the package selection as done\n"
-"previously. Then, when doing another installation, insert the floppy inside\n"
-"the drive and run the installation going to the help screen by pressing on\n"
-"the [F1] key, and by issuing >>linux defcfg=\"floppy\"<<.\n"
-"\n"
-"(*) You need a FAT-formatted floppy (to create one under GNU/Linux, type\n"
-"\"mformat a:\")"
-msgstr ""
-"AquĆ­ tiene. Ahora la instalaciĆ³n estĆ completa y su sistema GNU/Linux estĆ\n"
-"listo para ser utilizado. Simplemente haga clic sobre \"Aceptar\" para\n"
-"volver a arrancar el sistema. Puede iniciar GNU/Linux o Windows, cualquiera\n"
-"que prefiera (si estĆ usando el arranque dual) tan pronto como su mĆquina\n"
-"haya vuelto a arrancar.\n"
-"\n"
-"El botĆ³n \"Avanzadas\" (sĆ³lo en modo Experto) le muestra dos botones mĆs\n"
-"para:\n"
-"\n"
-" * \"Generar un disquete de instalaciĆ³n automĆtica\": para crear un "
-"disquete\n"
-"de instalaciĆ³n que realizarĆ una instalaciĆ³n completa sin la asistencia de\n"
-"un operador, similar a la instalaciĆ³n que ha configurado reciĆ©n.\n"
-"\n"
-" Note que hay dos opciones diferentes disponibles despuƩs de hacer clic\n"
-"sobre el botĆ³n:\n"
-"\n"
-" * \"Reproducir\". Esta es una instalaciĆ³n parcialmente automatizada ya "
-"que\n"
-"la etapa de particionado (y sĆ³lo esta etapa) permanece interactiva.\n"
-"\n"
-" * \"Automatizada\". InstalaciĆ³n completamente automatizada: el disco "
-"rĆ­gido\n"
-"se sobreescribe por completo, y se pierden todos los datos.\n"
-"\n"
-" Esta caracterĆ­stica es muy Ćŗtil cuando se instala una cantidad grande de\n"
-"mĆquinas similares. Vea la secciĆ³n Auto install (en inglĆ©s) en nuestro\n"
-"sitio web.\n"
-"\n"
-" * \"Guardar selecciĆ³n de paquetes\"(*): guarda la selecciĆ³n de paquetes\n"
-"como se hizo con anterioridad. Luego, cuando haga otra instalaciĆ³n, inserte\n"
-"el disquete en la disquetera y ejecute la instalaciĆ³n yendo a la pantalla\n"
-"de ayuda con [F1], e ingrese >>linux defcfg=\"floppy\"<<.\n"
-"\n"
-"(*) Necesita un disquete formateado con FAT (para crear uno bajo GNU/Linux\n"
-"teclee \"mformat a:\")"
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:378
-msgid ""
-"Any partitions that have been newly defined must be formatted for use\n"
-"(formatting means creating a filesystem).\n"
-"\n"
-"At this time, you may wish to reformat some already existing partitions to\n"
-"erase any data they contain. If you wish to do that, please select those\n"
-"partitions as well.\n"
-"\n"
-"Please note that it is 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\n"
-"reformat partitions containing data that you wish to keep (typically\n"
-"\"/home\").\n"
-"\n"
-"Please be careful when selecting partitions. After formatting, all data on\n"
-"the selected partitions will be deleted and you will not be able to recover\n"
-"any of it.\n"
-"\n"
-"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"
-"Mandrake Linux operating system installation.\n"
-"\n"
-"Click on \"Advanced\" if you wish to select partitions that will be checked\n"
-"for bad blocks on the disk."
-msgstr ""
-"Se debe formatear cualquier particiĆ³n nueva que ha sido definida para que\n"
-"se pueda utilizar (formatear significa crear un sistema de archivos).\n"
-"\n"
-"Puede desear volver a formatear algunas particiones ya existentes para\n"
-"borrar cualquier dato que pudieran contener. Si asĆ­ lo desea, por favor\n"
-"seleccione tambiƩn dichas particiones.\n"
-"\n"
-"Por favor note que no es necesario volver a formatear todas las particiones\n"
-"pre-existentes. Debe volver a formatear las particiones que contienen el\n"
-"sistema operativo (tales como \"/\", \"/usr\" o \"/var\") pero no tiene que\n"
-"volver a formatear particiones que contienen datos que desea preservar\n"
-"(tĆ­picamente \"/home\").\n"
-"\n"
-"Tenga sumo cuidado cuando selecciona las particiones. DespuƩs de formatear,\n"
-"se borrarĆn todos los datos en las particiones seleccionadas y no podrĆ\n"
-"recuperarlos en absoluto.\n"
-"\n"
-"Haga clic sobre \"Aceptar\" cuando estƩ listo para formatear las\n"
-"particiones.\n"
-"\n"
-"Haga clic sobre \"Cancelar\" si desea elegir otra particiĆ³n para la\n"
-"instalaciĆ³n de su sistema operativo Mandrake Linux nuevo.\n"
-"\n"
-"Haga clic sobre \"Avanzado\" si desea seleccionar las particiones en las\n"
-"que se buscarĆn bloques defectuosos en el disco."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:404
-msgid ""
-"Your new Mandrake Linux operating system is currently being installed.\n"
-"Depending on the number of packages you will be installing and the speed of\n"
-"your computer, this operation could take from a few minutes to a\n"
-"significant amount of time.\n"
-"\n"
-"Please be patient."
-msgstr ""
-"En este momento se estĆ instalando su sistema operativo Mandrake Linux\n"
-"nuevo. Dependiendo de la cantidad de paquetes que instalarĆ y de la\n"
-"velocidad de su computadora, esta operaciĆ³n puede tomar desde unos pocos\n"
-"minutos hasta una cantidad de tiempo significativa.\n"
-"\n"
-"Por favor, tenga paciencia."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:412
-msgid ""
-"At the time you are installing Mandrake Linux, it is likely that some\n"
-"packages have been updated since the initial release. Some bugs may have\n"
-"been fixed, and security issues solved. To allow you to benefit from these\n"
-"updates, you are now proposed to download them from the Internet. Choose\n"
-"\"Yes\" if you have a working Internet connection, or \"No\" if you prefer\n"
-"to install updated packages later.\n"
-"\n"
-"Choosing \"Yes\" displays a list of places from which updates can be\n"
-"retrieved. Choose the one nearest you. Then a package-selection tree\n"
-"appears: review the selection, and press \"Install\" to retrieve and\n"
-"install the selected package(s), or \"Cancel\" to abort."
-msgstr ""
-"Puede ser que cuando estĆ instalando Mandrake Linux algunos paquetes se\n"
-"hayan actualizado desde la publicaciĆ³n inicial. Se pueden haber corregido\n"
-"algunos errores, y solucionado problemas de seguridad. Para permitir que\n"
-"Usted se beneficie de estas actualizaciones, ahora se le propone\n"
-"transferirlas desde la Internet. Elija \"SĆ­\" si tiene funcionando una\n"
-"conexiĆ³n con la Internet, o \"No\" si prefiere instalar los paquetes\n"
-"actualizados mĆs tarde.\n"
-"\n"
-"Si elije \"SĆ­\" se muestra una lista de lugares desde los que se pueden\n"
-"obtener las actualizaciones. Elija el mĆs cercano a Usted. Luego aparece un\n"
-"Ćrbol de selecciĆ³n de paquetes: revise la selecciĆ³n y presione \"Instalar\"\n"
-"para transferir e instalar los paquetes seleccionados, o \"Cancelar\" para\n"
-"abortar."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:425
-msgid ""
-"Before continuing, you should read carefully the terms of the license. It\n"
-"covers the whole Mandrake Linux 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."
-msgstr ""
-"Antes de continuar, deberƭa leer cuidadosamente los tƩrminos de la\n"
-"licencia. Los mismos cubren a toda la distribuciĆ³n Mandrake Linux, y si\n"
-"Usted no estĆ de acuerdo con todos los tĆ©rminos en la misma, haga clic\n"
-"sobre el botĆ³n \"Rechazar\". Esto terminarĆ la instalaciĆ³n inmediatamente.\n"
-"Para continuar con la instalaciĆ³n, haga clic sobre el botĆ³n \"Aceptar\"."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:432
-msgid ""
-"At this point, it is time to choose the security level desired for the\n"
-"machine. As a rule of thumb, the more exposed the machine is, and the more\n"
-"the data stored in it is crucial, the higher the security level should be.\n"
-"However, a higher security level is generally obtained at the expense of\n"
-"easiness of use. Refer to the \"msec\" chapter of the ``Reference Manual''\n"
-"to get more information about the meaning of these levels.\n"
-"\n"
-"If you do not know what to choose, keep the default option."
-msgstr ""
-"En este punto, es tiempo de elegir el nivel de seguridad deseado para su\n"
-"mĆquina. Como regla general, cuanto mĆs expuesta estĆ la mĆquina, y cuantos\n"
-"mĆs cruciales sean los datos que tenga almacenados el nivel de seguridad en\n"
-"la misma deberĆ ser mĆs alto. Sin embargo, un nivel de seguridad mĆs alto\n"
-"generalmente se obtiene a expensas de la facilidad de uso. Consulte el\n"
-"capĆ­tulo \"msec\" del \"Manual de Referencia\" para obtener mĆs informaciĆ³n\n"
-"sobre el significado de dichos niveles.\n"
-"\n"
-"Si no sabe que elegir, mantenga la opciĆ³n predeterminada."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:442
-msgid ""
-"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandrake Linux 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"
-"partitions must be defined.\n"
-"\n"
-"To create partitions, you must first select a hard 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"
-"\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"
-"\n"
-" * \"More\": gives access to additional features:\n"
-"\n"
-" * \"Save partition table\": saves the partition table to a floppy. "
-"Useful\n"
-"for later partition-table recovery if necessary. It is strongly recommended\n"
-"to perform this step;\n"
-"\n"
-" * \"Restore partition table\": allows to restore a previously saved\n"
-"partition table from floppy disk;\n"
-"\n"
-" * \"Rescue partition table\": if your partition table is damaged, you "
-"can\n"
-"try to recover it using this option. Please be careful and remember that it\n"
-"can fail;\n"
-"\n"
-" * \"Reload partition table\": discards all changes and loads your "
-"initial\n"
-"partition table;\n"
-"\n"
-" * \"Removable media automounting\": unchecking this option will force "
-"users\n"
-"to manually mount and unmount removable medias such as floppies and\n"
-"CD-ROMs.\n"
-"\n"
-" * \"Wizard\": 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 knowledge of\n"
-"partitioning;\n"
-"\n"
-" * \"Undo\": use this option to cancel your changes;\n"
-"\n"
-" * \"Toggle to normal/expert mode\": allows additional actions on "
-"partitions\n"
-"(type, options, format) and gives more information;\n"
-"\n"
-" * \"Done\": when you are finished partitioning your hard 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"
-"partitions using [Tab] and [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"
-"\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 Mandrake Linux. Si las particiones ya han sido definidas, ya sea\n"
-"por una instalaciĆ³n previa de GNU/Linux o con otra herramienta de\n"
-"particionado, puede utilizarlas. En caso contrario se deben definir\n"
-"particiones en el disco rĆ­gido.\n"
-"\n"
-"Para crear particiones, primero debe seleccionar un disco rĆ­gido. Puede\n"
-"seleccionar el disco a particionar haciendo clic sobre \"hda\" para el\n"
-"primer disco IDE, \"hdb\" para el segundo, \"sda\" para el primer disco\n"
-"SCSI y asĆ­ sucesivamente.\n"
-"\n"
-"Para particionar el disco rĆ­gido seleccionado, puede utilizar estas\n"
-"opciones:\n"
-"\n"
-" * \"Borrar todo\": esta opciĆ³n borra todas las particiones sobre el disco\n"
-"seleccionado.\n"
-"\n"
-" * \"AsignaciĆ³n automĆtica\": esta opciĆ³n le permite crear particiones\n"
-"\"Ext2\" y swap automĆticamente en el espacio libre de su disco rĆ­gido.\n"
-"\n"
-" * \"Rescatar tabla de particiones\": si su tabla de particiones estĆ\n"
-"daƱada, puede intentar recuperarla usando esta opciĆ³n. Por favor, tenga\n"
-"cuidado y recuerde que puede fallar.\n"
-"\n"
-" * \"MĆs\": le da acceso a caracterĆ­sticas adicionales:\n"
-"\n"
-" * \"Guardar tabla de particiones\": guarda la tabla de particiones en "
-"un\n"
-"disquete. Ćtil para recuperar la tabla de particiones mĆs adelante en caso\n"
-"que sea necesario. Es altamente recomendable realizar este paso.\n"
-"\n"
-" * \"Recuperar tabla de particiones\": esta opciĆ³n le permitirĆ "
-"restaurar\n"
-"una tabla de particiones guardada previamente en un disquete.\n"
-"\n"
-" * \"Rescatar tabla de particiones\": si su tabla de particiones estĆ "
-"daƱada\n"
-"puede intentar recuperarla utilizando esta opciĆ³n. Por favor, tenga cuidado\n"
-"y recuerde que puede fallar.\n"
-"\n"
-" * \"Volver a cargar\": descarta todos los cambios y carga su tabla de\n"
-"particiones inicial.\n"
-"\n"
-" * \"Montaje automĆtico de soportes removibles\": si desmarca esta "
-"opciĆ³n\n"
-"los usuarios estarĆn forzados a montar y desmontar manualmente los soportes\n"
-"removibles como los disquetes y los CD-ROMs.\n"
-"\n"
-" * \"Asistente\": use esta opciĆ³n si desea utilizar un asistente para\n"
-"particionar su disco rĆ­gido. Se recomienda esto si no tiene un buen\n"
-"conocimiento del particionado.\n"
-"\n"
-" * \"Deshacer\": use esta opciĆ³n para cancelar sus cambios.\n"
-"\n"
-" * \"Cambiar a modo normal/experto\": permite realizar acciones adicionales\n"
-"sobre las particiones (tipo, opciones, formatear) y brinda mĆs informaciĆ³n.\n"
-"\n"
-" * \"Hecho\": cuando ha terminado de particionar su disco rĆ­gido, esto\n"
-"guardarĆ sus cambios en el disco.\n"
-"\n"
-"Nota: todas las opciones son accesibles por medio del teclado. Navegue a\n"
-"travƩs de las particiones usando [Tab] y las flechas [Arriba/Abajo].\n"
-"\n"
-"Cuando se selecciona una particiĆ³n, puede utilizar:\n"
-"\n"
-" * Ctrl-c para crear una particiĆ³n nueva (cuando estĆ seleccionada una\n"
-"particiĆ³n vacĆ­a);\n"
-"\n"
-" * Ctrl-d para borrar una particiĆ³n;\n"
-"\n"
-" * Ctrl-m para configurar el punto de montaje.\n"
-"\n"
-"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 1MB 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."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:513
-msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
-"Please choose the one you want to resize in order to install your new\n"
-"Mandrake Linux 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"
-"\"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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard 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"
-"disk or partition is called \"C:\")."
-msgstr ""
-"Se ha detectado mĆs de una particiĆ³n MicrosoftWindows en su disco rĆ­gido.\n"
-"Por favor, elija aquella a la cual desea cambiarle el tamaƱo para poder\n"
-"instalar su sistema operativo Mandrake Linux nuevo.\n"
-"\n"
-"Cada particiĆ³n se lista como sigue: \"Nombre Linux\", \"Nombre Windows\"\n"
-"\"Capacidad\".\n"
-"\n"
-"\"Nombre Linux\" estĆ estructurado: \"tipo de disco rĆ­gido\", \"nĆŗmero de\n"
-"disco rĆ­gido\", \"nĆŗmero de particiĆ³n\" (por ejemplo, \"hda1\").\n"
-"\n"
-"\"Tipo de disco rĆ­gido\" es \"hd\" si su disco es un disco IDE y \"sd\" si\n"
-"el mismo es un disco SCSI.\n"
-"\n"
-"\"NĆŗmero de disco rĆ­gido\" siempre es una letra que sigue a \"hd\" o a\n"
-"\"sd\". Para los discos IDE:\n"
-"\n"
-" * \"a\" significa \"disco rĆ­gido maestro en la controladora IDE primaria"
-"\",\n"
-"\n"
-" * \"b\" significa \"disco rĆ­gido esclavo en la controladora IDE primaria"
-"\",\n"
-"\n"
-" * \"c\" significa \"disco rĆ­gido maestro en la controladora IDE\n"
-"secundaria\",\n"
-"\n"
-" * \"d\" significa \"disco rĆ­gido esclavo en la controladora IDE\n"
-"secundaria\".\n"
-"\n"
-"Para los discos SCSI, una \"a\" significa \"SCSI ID menor\", una \"b\"\n"
-"significa \"segunda SCSI ID menor\", etc.\n"
-"\n"
-"\"Nombre Windows\" es la letra de su unidad de disco bajo Windows (el\n"
-"primer disco o particiĆ³n se denomina \"C:\")."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:544
-msgid "Please be patient. This operation can take several minutes."
-msgstr "Por favor, tenga paciencia. Esta operaciĆ³n puede tomar varios minutos."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:547
-msgid ""
-"DrakX now needs to know if you want to perform a default (\"Recommended\")\n"
-"installation or if you want to have greater control (\"Expert\"). You can\n"
-"also choose to do a new install or an upgrade of an existing Mandrake Linux\n"
-"system:\n"
-"\n"
-" * \"Install\": completely wipes out the old system. In fact, depending on\n"
-"what currently holds your machine, you will be able to keep some old (Linux\n"
-"or other) partitions unchanged;\n"
-"\n"
-" * \"Upgrade\": this installation class allows to simply update the "
-"packages\n"
-"currently installed on your Mandrake Linux system. It keeps the current\n"
-"partitions of your hard drives as well as user configurations. All other\n"
-"configuration steps remain available with respect to plain installation;\n"
-"\n"
-" * \"Upgrade Packages Only\": this brand new class allows to upgrade an\n"
-"existing Mandrake Linux system while keeping all system configurations\n"
-"unchanged. Adding new packages to the current installation is also\n"
-"possible.\n"
-"\n"
-"Upgrades should work fine for Mandrake Linux systems starting from \"8.1\"\n"
-"release.\n"
-"\n"
-"Depending on your knowledge of GNU/Linux, select one of the following\n"
-"choices:\n"
-"\n"
-" * Recommended: choose this if you have never installed a GNU/Linux\n"
-"operating system. The installation will be very easy and you will only be\n"
-"asked a few questions;\n"
-"\n"
-" * Expert: if you have a good knowledge of GNU/Linux, you can choose this\n"
-"installation class. The expert installation will allow you to perform a\n"
-"highly-customized installation. Answering some of the questions can be\n"
-"difficult if you do not have a good knowledge of GNU/Linux, so do not\n"
-"choose this unless you know what you are doing."
-msgstr ""
-"DrakX ahora necesita saber si desea realizar una instalaciĆ³n por defecto\n"
-"(\"Recomendada\") o si desea tener un control mayor (\"Experto\"). TambiƩn\n"
-"puede elegir realizar una instalaciĆ³n nueva o una actualizaciĆ³n de un\n"
-"sistema Mandrake Linux existente:\n"
-"\n"
-" * \"Instalar\": el sistema anterior se borrarĆ por completo. De hecho,\n"
-"dependiendo de lo que su mĆquina contiene actualmente, podrĆ mantener\n"
-"algunas particiones antiguas (Linux u otras) sin cambios;\n"
-"\n"
-" * \"ActualizaciĆ³n\": esta clase de instalaciĆ³n le permite simplemente\n"
-"actualizar los paquetes que en este momento estĆn instalados en su sistema\n"
-"Mandrake Linux. La misma mantiene las particiones corrientes de sus discos\n"
-"asƭ como tambiƩn las configuraciones de usuarios. Todos los otros pasos de\n"
-"instalaciĆ³n permanecen disponibles con respecto a la instalaciĆ³n simple;\n"
-"\n"
-" * \"SĆ³lo actualizar paquetes\": esta clase completamente nueva le permite\n"
-"actualizar un sistema Mandrake Linux existente a la vez que mantiene todas\n"
-"las configuraciones del sistema sin cambios. TambiƩn es posible aƱadir\n"
-"paquetes nuevos a la instalaciĆ³n corriente.\n"
-"\n"
-"Las actualizaciones deberĆ­an funcionar sin problemas para los sistemas\n"
-"Mandrake Linux comenzando desde la versiĆ³n \"8.1\".\n"
-"\n"
-"Dependiendo de su conocimiento de GNU/Linux, por favor elija una de los\n"
-"opciones siguientes:\n"
-"\n"
-" * Recomendada: elija esta si nunca ha instalado un sistema operativo\n"
-"GNU/Linux. La instalaciĆ³n serĆ muy fĆcil y sĆ³lo se le formularĆn unas pocas\n"
-"preguntas;\n"
-"\n"
-" * Experto: si tiene un conocimiento bueno de GNU/Linux, puede elegir esta\n"
-"clase de instalaciĆ³n. La instalaciĆ³n experta le permitirĆ realizar una\n"
-"instalaciĆ³n altamente personalizada. Contestar a algunas de las preguntas\n"
-"puede ser difĆ­cil si no tiene un buen conocimiento de GNU/Linux, entonces\n"
-"no elija esto a menos que sepa lo que estĆ haciendo."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:583
-msgid ""
-"Normally, DrakX selects the right keyboard for you (depending on the\n"
-"language you have chosen) and you won't even see this step. However, you\n"
-"might not have a keyboard that corresponds exactly to your language: for\n"
-"example, if you are an English speaking Swiss person, you may still want\n"
-"your keyboard to be a Swiss keyboard. Or if you speak English but are\n"
-"located in Quebec, you may find yourself in the same situation. In both\n"
-"cases, you will have to go back to this installation step and select an\n"
-"appropriate keyboard from the list.\n"
-"\n"
-"Click on the \"More\" button to be presented with the complete list of\n"
-"supported keyboards."
-msgstr ""
-"Normalmente, DrakX selecciona el teclado adecuado para Usted (dependiendo\n"
-"del idioma que eligiĆ³) y Usted ni siquiera verĆ este paso. Sin embargo,\n"
-"podrĆ­a no tener un teclado que se corresponde exactamente con su idioma:\n"
-"por ejemplo, si Usted es una persona hispano-parlante que estĆ en Argentina\n"
-"o MĆ©jico, su teclado serĆ un teclado Latinoamericano, pero si estĆ en\n"
-"EspaƱa serĆ uno EspaƱol. En ambos casos, Usted tendrĆ que volver a este\n"
-"paso de la instalaciĆ³n y elegir un teclado apropiado de la lista.\n"
-"\n"
-"Haga clic sobre el botĆ³n \"MĆs\" para que se le presente la lista completa\n"
-"de los teclados soportados."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:596
-msgid ""
-"Please choose your preferred language for installation and system usage.\n"
-"\n"
-"Clicking on the \"Advanced\" button will allow you to select other\n"
-"languages to be installed on your workstation. Selecting other languages\n"
-"will install the language-specific files for system documentation and\n"
-"applications. For example, if you will host users from Spain on your\n"
-"machine, select English as the main language in the tree view and in the\n"
-"Advanced section click on the box corresponding to \"Spanish|Spain\".\n"
-"\n"
-"Note that multiple languages may be installed. Once you have selected any\n"
-"additional locales, click the \"OK\" button to continue."
-msgstr ""
-"Por favor, elija su idioma preferido para la instalaciĆ³n y el uso del\n"
-"sistema.\n"
-"\n"
-"Al hacer clic sobre el botĆ³n \"Avanzado\" podrĆ seleccionar otros idiomas\n"
-"para instalar en su estaciĆ³n de trabajo. Seleccionar otros idiomas\n"
-"instalarĆ los archivos especĆ­ficos para la documentaciĆ³n del sistema y las\n"
-"aplicaciones. Por ejemplo, si albergarĆ a gente de Francia en su mĆquina,\n"
-"seleccione EspaƱol como idioma principal en la vista de Ćrbol y en la\n"
-"secciĆ³n avanzada haga clic sobre la estrella gris que corresponde a\n"
-"\"FrancƩs|Francia\".\n"
-"\n"
-"Note que se pueden instalar mĆŗltiples idiomas. Una vez que ha seleccionado\n"
-"cualquier idioma adicional haga clic sobre el botĆ³n \"Aceptar\" para\n"
-"continuar."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:609
-msgid ""
-"DrakX generally detects the number of buttons your mouse has. If not, it\n"
-"assumes you have a two-button mouse and will set it up for third-button\n"
-"emulation. DrakX will automatically know whether it is a PS/2, serial or\n"
-"USB mouse.\n"
-"\n"
-"If you wish to specify a different type of mouse select the appropriate\n"
-"type from the provided list.\n"
-"\n"
-"If you choose a mouse other than the default, a test screen will be\n"
-"displayed. Use the buttons and wheel to verify that the settings are\n"
-"correct. If the mouse is not working well, press the space bar or [Return]\n"
-"to \"Cancel\" and choose again."
-msgstr ""
-"DrakX generalmente detecta la cantidad de botones que tiene su ratĆ³n. Si\n"
-"no, asume que Usted tiene un ratĆ³n de dos botones y lo configurarĆ para que\n"
-"emule el tercer botĆ³n. DrakX sabrĆ automĆticamente si es un ratĆ³n PS/2,\n"
-"serie o USB.\n"
-"\n"
-"Si desea especificar un tipo de ratĆ³n diferente, seleccione el tipo\n"
-"apropiado de la lista que se proporciona.\n"
-"\n"
-"Si elije un ratĆ³n distinto al predeterminado, se le presentarĆ una pantalla\n"
-"de prueba. Use los botones y la rueda para verificar que la configuraciĆ³n\n"
-"es correcta. Si el ratĆ³n no estĆ funcionando correctamente, presione la\n"
-"barra espaciadora o [Intro] para \"Cancelar\" y vuelva a elegir."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:623
-msgid ""
-"Please select the correct port. For example, the \"COM1\" port under\n"
-"Windows is named \"ttyS0\" under GNU/Linux."
-msgstr ""
-"Por favor seleccione el puerto correcto. Por ejemplo, el puerto \"COM1\"\n"
-"bajo Windows se denomina \"ttyS0\" bajo GNU/Linux."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:627
-msgid ""
-"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 choose\n"
-"not to enter a password, but we strongly advise you against this if only\n"
-"for one reason: do not think that because you booted GNU/Linux that your\n"
-"other operating systems are safe from mistakes. Since \"root\" can overcome\n"
-"all limitations and unintentionally erase all data on partitions by\n"
-"carelessly accessing the partitions themselves, it is important for it to\n"
-"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."
-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\". \"root\" es el\n"
-"administrador del sistema y es el Ćŗnico autorizado a hacer actualizaciones,\n"
-"agregar usuarios, cambiar la configuraciĆ³n general del sistema, etc.\n"
-"Resumiendo, Ā\"root\" puede hacer de todo!. Es por esto que deberĆ elegir\n"
-"una contraseƱa que sea difĆ­cil de adivinar DrakX le dirĆ si la que eligiĆ³\n"
-"es demasiado fĆcil. Como puede ver, puede optar por no ingresar una\n"
-"contraseƱa, pero le recomendamos encarecidamente que ingrese una, aunque\n"
-"sea sĆ³lo por una razĆ³n: no piense que debido a que Usted arrancĆ³ GNU/Linux,\n"
-"sus otros sistemas operativos estĆn seguros contra los errores. Eso no es\n"
-"cierto debido a que \"root\" puede sobrepasar todas las limitaciones y\n"
-"borrar, sin intenciĆ³n, todos los datos que se encuentran en las particiones\n"
-"accediendo a las mismas sin el cuidado suficiente. Es por esto que es\n"
-"importante que sea difĆ­cil convertirse en \"root\".\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"
-"eso hace que sea muy fĆcil comprometer a un sistema.\n"
-"\n"
-"Sin embargo, por favor no haga la contraseƱa muy larga o complicada debido\n"
-"a que Usted debe poder recordarla sin realizar mucho esfuerzo.\n"
-"\n"
-"La contraseƱa no se mostrarĆ en la pantalla a medida que Usted la teclee.\n"
-"Por lo tanto, tendrĆ que teclear la contraseƱa dos veces para reducir la\n"
-"posibilidad de un error de tecleo. Si ocurre que Usted comete dos veces el\n"
-"mismo error de tecleo, tendrĆ que utilizar esta contraseƱa \"incorrecta\"\n"
-"la primera vez que se conecte.\n"
-"\n"
-"En modo experto, se le preguntarĆ si se conectarĆ a un servidor de\n"
-"autenticaciĆ³n, por ejemplo NIS o LDAP.\n"
-"\n"
-"Si su red usa el protocolo LDAP (o NIS) para la autenticaciĆ³n, seleccione\n"
-"\"LDAP\" (o \"NIS\") como autenticaciĆ³n. Si no sabe, pregunte al\n"
-"administrador de su red.\n"
-"\n"
-"Si su computadora no estĆ conectada a alguna red administrada, querrĆ\n"
-"elegir \"Archivos locales\" para la autenticaciĆ³n."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:663
-msgid ""
-"LILO and grub are GNU/Linux bootloaders. This stage, normally, is totally\n"
-"automated. In fact, DrakX analyzes the disk boot sector and acts\n"
-"accordingly, depending on what it finds here:\n"
-"\n"
-" * if a Windows boot sector is found, it will replace it with a grub/LILO\n"
-"boot sector. Hence, you will be able to load either GNU/Linux or another\n"
-"OS;\n"
-"\n"
-" * if a grub or LILO boot sector is found, it will replace it with a new\n"
-"one.\n"
-"\n"
-"If in doubt, DrakX will display a dialog with various options.\n"
-"\n"
-" * \"Bootloader to use\": you have three choices:\n"
-"\n"
-" * \"GRUB\": if you prefer grub (text menu).\n"
-"\n"
-" * \"LILO with graphical menu\": if you prefer LILO with its graphical\n"
-"interface.\n"
-"\n"
-" * \"LILO with text menu\": if you prefer LILO with its text menu "
-"interface.\n"
-"\n"
-" * \"Boot device\": in most cases, you will not change the default\n"
-"(\"/dev/hda\"), but if you prefer, the bootloader can be installed on the\n"
-"second hard drive (\"/dev/hdb\"), or even on a floppy disk (\"/dev/fd0\");\n"
-"\n"
-" * \"Delay before booting the default image\": when rebooting the computer,\n"
-"this is the delay granted to the user to choose in the bootloader menu,\n"
-"another boot entry than the default one.\n"
-"\n"
-"!! Beware that if you choose not to install a bootloader (by selecting\n"
-"\"Cancel\" here), you must ensure that you have a way to boot your Mandrake\n"
-"Linux system! Also, be sure you know what you do before changing any of the\n"
-"options. !!\n"
-"\n"
-"Clicking the \"Advanced\" button in this dialog will offer many advanced\n"
-"options, which are reserved to the expert user.\n"
-"\n"
-"After you have configured the general bootloader parameters, the list of\n"
-"boot options which will be available at boot time will be displayed.\n"
-"\n"
-"If there is another operating system installed on your machine, it will\n"
-"automatically be added to the boot menu. Here, you can choose to fine-tune\n"
-"the existing options. Select an entry and click \"Modify\" to modify or\n"
-"remove it; \"Add\" creates a new entry; and \"Done\" goes on to the next\n"
-"installation step."
-msgstr ""
-"LILO y grub son cargadores de arranque para GNU/Linux. Normalmente, esta\n"
-"etapa estĆ completamente automatizada. De hecho, DrakX analiza el sector de\n"
-"arranque del disco y actĆŗa en funciĆ³n de lo que encuentre allĆ­:\n"
-"\n"
-" * si encuentra un sector de arranque de Windows, lo reemplazarĆ con un\n"
-"sector de arranque de grub/LILO de forma tal que Usted pueda arrancar\n"
-"GNU/Linux u otro sistema operativo;\n"
-"\n"
-" * si encuentra un sector de arranque de grub o LILO, lo reemplazarĆ con "
-"uno\n"
-"nuevo;\n"
-"\n"
-"En caso de duda, DrakX mostrarĆ un diĆlogo con varias opciones.\n"
-"\n"
-" * \"Cargador de arranque a usar\": tiene tres opciones:\n"
-"\n"
-" * \"LILO con menĆŗ grĆfico\": si prefiere a LILO con su interfaz "
-"grĆfica.\n"
-"\n"
-" * \"GRUB\": si prefiere a grub (menĆŗ de texto).\n"
-"\n"
-" * \"LILO con menĆŗ de texto\": si prefiere a LILO con su interfaz de "
-"texto.\n"
-"\n"
-" * \"Dispositivo de arranque\": en la mayorĆ­a de los casos, no cambiarĆ lo\n"
-"predeterminado (\"/dev/hda\"), pero si lo prefiere, el cargador de arranque\n"
-"se puede instalar en el segundo disco rĆ­gido (\"/dev/hdb\"), o incluso en\n"
-"un disquete (\"/dev/fd0\").\n"
-"\n"
-" * \"Demora antes de arrancar la imagen predeterminada\": cuando vuelve a\n"
-"arrancar la computadora, esta es la demora que se garantiza al usuario para\n"
-"elegir en el menĆŗ del cargador de arranque, una entrada distinta a la\n"
-"predeterminada.\n"
-"\n"
-"!! Tenga presente que si no elige instalar un cargador de arranque\n"
-"(seleccionando \"Cancelar\"), ĀDebe asegurarse que tiene una forma de\n"
-"arrancar a su sistema Mandrake Linux! TambiƩn debe asegurarse que sabe lo\n"
-"que hace antes de cambiar cualquier opciĆ³n. !!\n"
-"\n"
-"Haciendo clic sobre el botĆ³n \"Avanzadas\" en este diĆlogo se le ofrecerĆn\n"
-"muchas opciones avanzadas que estĆn reservadas para el usuario experto.\n"
-"\n"
-"Luego que haya configurado los parĆmetros generales del cargador de\n"
-"arranque se mostrarĆ la lista de opciones de arranque que estarĆn\n"
-"disponibles al momento de arrancar.\n"
-"\n"
-"Si hay otro sistema operativo instalado en su mĆquina, se agregarĆ el mismo\n"
-"automĆticamente al menĆŗ de arranque. AquĆ­ puede elegir ajustar las opciones\n"
-"existentes. Seleccione una entrada y haga clic sobre \"Modificar\" para\n"
-"cambiar los parĆmetros de la misma o quitarla; \"AƱadir\" crea una entrada\n"
-"nueva; y \"Hecho\" va al paso de instalaciĆ³n siguiente."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:711
-msgid ""
-"LILO (the LInux LOader) and grub are bootloaders: they are able to boot\n"
-"either GNU/Linux or any other operating system present on your computer.\n"
-"Normally, these other operating systems are correctly detected and\n"
-"installed. If this is not the case, you can add an entry by hand in this\n"
-"screen. Be careful to choose the correct parameters.\n"
-"\n"
-"You may also not want to give access to these other operating systems to\n"
-"anyone. In which case, you can delete the corresponding entries. But then,\n"
-"you will need a boot disk in order to boot those other operating systems!"
-msgstr ""
-"LILO (el LInux LOader) y grub son cargadores de arranque: permiten arrancar\n"
-"ya sea GNU/Linux como cualquier otro sistema operativo presente en su\n"
-"computadora. Normalmente, estos otros sistemas operativos se detectan e\n"
-"instalan correctamente. Si este no es el caso, puede aƱadir una entrada a\n"
-"mano en esta pantalla. Tenga cuidado de elegir los parĆmetros correctos.\n"
-"\n"
-"TambiƩn puede no desear dar acceso a estos otros sistemas operativos a\n"
-"cualquiera. En ese caso, puede borrar las entradas correspondientes. Pero\n"
-"entonces, ĀnecesitarĆ un disquete de arranque para poder arrancar esos\n"
-"otros sistemas operativos!"
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:722
-msgid ""
-"You must indicate where you wish to place the information required to boot\n"
-"to GNU/Linux.\n"
-"\n"
-"Unless you know exactly what you are doing, choose \"First sector of drive\n"
-"(MBR)\"."
-msgstr ""
-"Debe indicar donde desea colocar la informaciĆ³n necesaria para arrancar en\n"
-"GNU/Linux.\n"
-"\n"
-"A menos que sepa exactamente lo que estĆ haciendo, elija \"Primer sector\n"
-"del disco (MBR)\"."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:729
-msgid ""
-"Here, we select a printing system for your computer. Other OSs may offer\n"
-"you one, but Mandrake Linux offers three.\n"
-"\n"
-" * \"pdq\" which means ``print, don't queue'', is the choice if you have a\n"
-"direct connection to your printer and you want to be able to panic out of\n"
-"printer jams, and you do not have networked printers. It will handle only\n"
-"very simple network cases and is somewhat slow for networks. Pick \"pdq\"\n"
-"if this is your maiden voyage to GNU/Linux. You can change your choices\n"
-"after installation by running PrinterDrake from the Mandrake Control Center\n"
-"and clicking the expert button.\n"
-"\n"
-" * \"CUPS\"``Common Unix Printing System'', is excellent at printing to "
-"your\n"
-"local printer and also halfway-around the planet. It is simple and can act\n"
-"as a server or a client for the ancient \"lpd\" printing system. Hence, it\n"
-"is compatible with the systems that went before. It can do many tricks, but\n"
-"the basic setup is almost as easy as \"pdq\". If you need this to emulate\n"
-"an \"lpd\" server, you must turn on the \"cups-lpd\" daemon. It has\n"
-"graphical front-ends for printing or choosing printer options.\n"
-"\n"
-" * \"lprNG\"``line printer daemon New Generation''. This system can do\n"
-"approximately the same things the others can do, but it will print to\n"
-"printers mounted on a Novell Network, because it supports the IPX protocol,\n"
-"and it can print directly to shell commands. If you have need of Novell or\n"
-"printing to commands without using a separate pipe construct, use lprNG.\n"
-"Otherwise, CUPS is preferable as it is simpler and better at working over\n"
-"networks."
-msgstr ""
-"AquĆ­ seleccionamos un sistema de impresiĆ³n para que use su computadora.\n"
-"Otros sistemas operativos pueden ofrecerle uno, pero Mandrake Linux le\n"
-"ofrece tres.\n"
-"\n"
-" * \"pdq\"\"print, don't queue\" (imprimir sin poner en cola), es la\n"
-"elecciĆ³n si Usted tiene una conexiĆ³n directa a su impresora y desea evitar\n"
-"el pĆnico de los papeles trabados, y no tiene impresora en red alguna.\n"
-"ManejarĆ sĆ³lo casos de red muy simples y es algo lento para las redes.\n"
-"Elija \"pdq\" si esta es su luna de miel con GNU/Linux. DespuƩs de la\n"
-"instalaciĆ³n puede cambiar sus elecciones ejecutando PrinterDrake desde el\n"
-"Centro de Control Mandrake y eligiendo el modo experto.\n"
-"\n"
-" * \"CUPS\"\"Common Unix Printing System\" (Sistema de ImpresiĆ³n ComĆŗn de\n"
-"Unix) es excelente imprimiendo en su impresora local y tambiƩn en la otra\n"
-"punta del planeta. Es simple y puede actuar como servidor o cliente para el\n"
-"sistema de impresiĆ³n antiguo \"lpd\", por lo que es compatible con los\n"
-"sistemas anteriores. Puede hacer muchas cosas, pero la configuraciĆ³n bĆsica\n"
-"es tan simple como la de \"pdq\". Si necesita que emule a un servidor\n"
-"\"lpd\", debe encender el demonio \"cups-lpd\". Tiene interfaces grĆficas\n"
-"para imprimir o elegir las opciones de la impresora.\n"
-"\n"
-" * \"lprNG\"\"line printer daemon New Generation\" (servidor de impresora "
-"de\n"
-"lĆ­neas Nueva GeneraciĆ³n). Este sistema puede hacer aproximadamente las\n"
-"mismas cosas que los otros, pero imprimirĆ en impresoras montadas sobre una\n"
-"red Novell, debido a que soporta el protocolo IPX, y puede imprimir\n"
-"directamente a comandos del shell. Si necesita Novell o imprimir a comandos\n"
-"de sin utilizar tuberĆ­as, utilice lprNG. De no ser asĆ­, se prefiere a CUPS\n"
-"ya que es mĆs simple y es mejor al trabajar sobre redes."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:757
-msgid ""
-"DrakX now detects any IDE device present in your computer. It will also\n"
-"scan for one or more PCI SCSI card(s) on your system. If a SCSI card is\n"
-"found, DrakX will automatically install the appropriate driver.\n"
-"\n"
-"Because hardware detection does not always detect a piece of hardware,\n"
-"DrakX will ask you to confirm if a PCI SCSI card is present. Click \"Yes\"\n"
-"if you know that there is a SCSI card installed in your machine. You will\n"
-"be presented a list of SCSI cards to choose from. Click \"No\" if you have\n"
-"no SCSI hardware. If you are unsure, you can check the list of hardware\n"
-"detected in your machine by selecting \"See hardware info\" and clicking\n"
-"\"OK\". Examine the list of hardware and then click on the \"OK\" button to\n"
-"return to the SCSI interface question.\n"
-"\n"
-"If you have to manually specify your adapter, DrakX will ask if you want to\n"
-"specify options for it. You should allow DrakX to probe the hardware for\n"
-"the card-specific options which the hardware needs to initialize. This\n"
-"usually works well.\n"
-"\n"
-"If DrakX is not able to probe for the options which need to be passed, you\n"
-"will need to provide options to the driver manually. Please review the\n"
-"``User Guide'' (chapter 3, in the ``Collecting Information on Your\n"
-"Hardware'' section) for hints on retrieving the parameters required from\n"
-"hardware documentation, from the manufacturer's web site (if you have\n"
-"Internet access) or from MicrosoftWindows (if you used this hardware with\n"
-"Windows on your system)."
-msgstr ""
-"DrakX ahora detecta cualquier dispositivo IDE presente en su computadora.\n"
-"TambiĆ©n buscarĆ una o mĆs tarjetas SCSI PCI en su sistema. Si se encuentra\n"
-"una tarjeta SCSI DrakX instalarĆ el controlador apropiado automĆticamente.\n"
-"\n"
-"Debido a que la detecciĆ³n de hardware a veces no detectarĆ alguna pieza de\n"
-"hardware DrakX le pedirĆ que confirme si tiene una tarjeta SCSI PCI. Haga\n"
-"clic sobre \"SĆ­\" si sabe que hay una tarjeta SCSI instalada en su mĆquina.\n"
-"Se le presentarĆ una lista de tarjetas SCSI de la cual elegir. Haga clic\n"
-"sobre \"No\" si no tiene hardware SCSI. Si no estĆ seguro puede verificar\n"
-"la lista de hardware detectado en su mĆquina seleccionando \"Ver\n"
-"informaciĆ³n sobre el hardware\" y haciendo clic sobre \"Aceptar\". Examine\n"
-"la lista de hardware y luego haga clic sobre el botĆ³n \"Aceptar\" para\n"
-"volver a la pregunta sobre la interfaz SCSI.\n"
-"\n"
-"Si tiene que seleccionar su adaptador manualmente, DrakX le preguntarĆ si\n"
-"desea especificar opciones para el mismo. DeberĆ­a permitir que DrakX sondee\n"
-"el hardware buscando las opciones especĆ­ficas que necesita el hardware para\n"
-"inicializarse. Por lo general esto funciona bien.\n"
-"\n"
-"Si DrakX no puede sondear las opciones que deben pasarse, necesitarĆ\n"
-"proporcionar manualmente las opciones al controlador. Por favor revise la\n"
-"\"GuĆ­a del Usuario\" (capĆ­tulo 3, secciĆ³n \"Recopilando informaciĆ³n acerca\n"
-"de su hardware\") en busca de consejos para recopilar los parĆmetros\n"
-"necesarios a partir de la documentaciĆ³n del hardware, desde el sitio web\n"
-"del fabricante (si tiene acceso a la Internet) o desde MicrosoftWindows (si\n"
-"utilizaba este hardware con Windows en su sistema)."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:784
-msgid ""
-"You can add additional entries for yaboot, either for other operating\n"
-"systems, alternate kernels, or for an emergency boot image.\n"
-"\n"
-"For other OSs, the entry consists only of a label and the \"root\"\n"
-"partition.\n"
-"\n"
-"For Linux, there are a few possible options:\n"
-"\n"
-" * Label: this is simply the name you will have to type at the yaboot "
-"prompt\n"
-"to select this boot option;\n"
-"\n"
-" * Image: this would be the name of the kernel to boot. Typically, vmlinux\n"
-"or a variation of vmlinux with an extension;\n"
-"\n"
-" * Root: the \"root\" device or ``/'' for your Linux installation;\n"
-"\n"
-" * Append: on Apple hardware, the kernel append option is used quite often\n"
-"to assist in initializing video hardware, or to enable keyboard mouse\n"
-"button emulation for the often lacking 2nd and 3rd mouse buttons on a stock\n"
-"Apple mouse. The following are some examples:\n"
-"\n"
-" video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111 "
-"hda=autotune\n"
-"\n"
-" video=atyfb:vmode:12,cmode:24 adb_buttons=103,111\n"
-"\n"
-" * Initrd: this option can be used either to load initial modules, before\n"
-"the boot device is available, or to load a ramdisk image for an emergency\n"
-"boot situation;\n"
-"\n"
-" * Initrd-size: the default ramdisk size is generally 4,096 bytes. If you\n"
-"need to allocate a large ramdisk, this option can be used;\n"
-"\n"
-" * Read-write: normally the \"root\" partition is initially brought up in\n"
-"read-only, to allow a file system check before the system becomes ``live''.\n"
-"Here, you can override this option;\n"
-"\n"
-" * NoVideo: should the Apple video hardware prove to be exceptionally\n"
-"problematic, you can select this option to boot in ``novideo'' mode, with\n"
-"native frame buffer support;\n"
-"\n"
-" * Default: selects this entry as being the default Linux selection,\n"
-"selectable by just pressing ENTER at the yaboot prompt. This entry will\n"
-"also be highlighted with a ``*'', if you press [Tab] to see the boot\n"
-"selections."
-msgstr ""
-"Puede agregar entradas adicionales para Yaboot, ya sea para otros sistemas\n"
-"operativos, nĆŗcleos alternativos, o para una imagen de arranque de\n"
-"emergencia.\n"
-"\n"
-"Para otros sistemas operativos, la entrada consiste sĆ³lo de una etiqueta y\n"
-"la particiĆ³n raĆ­z.\n"
-"\n"
-"Para Linux, hay algunas opciones posibles:\n"
-"\n"
-" * Etiqueta: esta es simplemente el nombre que deberĆ teclear en el prompt\n"
-"de yaboot para seleccionar esta opciĆ³n de arranque.\n"
-"\n"
-" * Imagen: esta deberĆ­a ser el nombre del nĆŗcleo a arrancar. TĆ­picamente,\n"
-"vmlinux o una variaciĆ³n de vmlinux con una extensiĆ³n.\n"
-"\n"
-" * RaĆ­z: el dispositivo \"root\" o \"/\" para su instalaciĆ³n Linux.\n"
-"\n"
-" * AƱadir: la opciĆ³n de aƱadir al nĆŗcleo se usa bastante sobre el hardware\n"
-"Apple para asistir en la inicializaciĆ³n del hardware de vĆ­deo, o para\n"
-"habilitar la emulaciĆ³n de los botones del ratĆ³n con el teclado para los\n"
-"botones 2do y 3ro del ratĆ³n que por lo general no tienen los ratones\n"
-"estĆndar de Apple. Algunos ejemplos son los siguientes:\n"
-"\n"
-" video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111 "
-"hda=autotune\n"
-"\n"
-" video=atyfb:vmode:12,cmode:24 adb_buttons=103,111\n"
-"\n"
-" * Initrd: esta opciĆ³n se puede usar o bien para cargar los mĆ³dulos\n"
-"iniciales, antes que estƩ disponible el dispositivo de arranque, o bien\n"
-"cargar una imagen de ramdisk para una situaciĆ³n de arranque de emergencia.\n"
-"\n"
-" * TamaƱo de Initrd: generalmente el tamaƱo por defecto del ramdisk es 4096\n"
-"bytes. Puede usar esta opciĆ³n si necesita asignar un ramdisk mayor.\n"
-"\n"
-" * Lectura-Escritura: normalmente la particiĆ³n \"root\" se levanta en modo\n"
-"de sĆ³lo lectura, para permitir una verificaciĆ³n del sistema de archivos\n"
-"antes que el sistema se levante por completo. AquĆ­ puede cambiar esta\n"
-"opciĆ³n.\n"
-"\n"
-" * NoVideo: en caso que el hardware de vĆ­deo de Apple sea excepcionalmente\n"
-"problemĆtico, puede seleccionar esta opciĆ³n para arrancar en el modo\n"
-"\"novideo\", con soporte nativo para el frame-buffer.\n"
-"\n"
-" * Predeterminada: selecciona a esta entrada como la opciĆ³n Linux por\n"
-"defecto, que se puede elegir simplemente presionando [Intro] en el prompt\n"
-"de Yaboot. Esta entrada tambiĆ©n se marcarĆ con un \"*\", si presiona [Tab]\n"
-"para ver las selecciones del arranque."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:830
-msgid ""
-"Yaboot is a bootloader for NewWorld MacIntosh hardware. It is able to boot\n"
-"either GNU/Linux, MacOS or MacOSX if present on your computer. Normally,\n"
-"these other operating systems are correctly detected and installed. If this\n"
-"is not the case, you can add an entry by hand in this screen. Be careful to\n"
-"choose the correct parameters.\n"
-"\n"
-"Yaboot's main options are:\n"
-"\n"
-" * Init Message: a simple text message displayed before the boot prompt;\n"
-"\n"
-" * Boot Device: indicates where you want to place the information required\n"
-"to boot to GNU/Linux. Generally, you set up a bootstrap partition earlier\n"
-"to hold this information;\n"
-"\n"
-" * Open Firmware Delay: unlike LILO, there are two delays available with\n"
-"yaboot. The first delay is measured in seconds and at this point, you can\n"
-"choose between CD, OF boot, MacOS or Linux;\n"
-"\n"
-" * Kernel Boot Timeout: this timeout is similar to the LILO boot delay.\n"
-"After selecting Linux, you will have this delay in 0.1 second before your\n"
-"default kernel description is selected;\n"
-"\n"
-" * Enable CD Boot?: checking this option allows you to choose ``C'' for CD\n"
-"at the first boot prompt;\n"
-"\n"
-" * Enable OF Boot?: checking this option allows you to choose ``N'' for "
-"Open\n"
-"Firmware at the first boot prompt;\n"
-"\n"
-" * Default OS: you can select which OS will boot by default when the Open\n"
-"Firmware Delay expires."
-msgstr ""
-"Yaboot es un cargador de arranque para el hardware NewWorld MacIntosh. El\n"
-"mismo puede arrancar o GNU/Linux, o MacOS o MacOSX si se encuentran en su\n"
-"computadora. Normalmente, estos sistemas operativos se detectan e instalan\n"
-"correctamente. Si este no es el caso, puede agregar una entrada a mano en\n"
-"esta pantalla. Tenga cuidado de elegir los parĆmetros correctos.\n"
-"\n"
-"Las opciones principales de Yaboot son:\n"
-"\n"
-" * Mensaje de Init: un mensaje de texto simple que se muestra antes del\n"
-"prompt de arranque.\n"
-"\n"
-" * Dispositivo de arranque: indica donde desea colocar la informaciĆ³n\n"
-"necesaria para arrancar en GNU/Linux. Generalmente, se configura una\n"
-"particiĆ³n bootstrap con anterioridad para contener esta informaciĆ³n.\n"
-"\n"
-" * Demora de Open Firmware: a diferencia de LILO, hay dos demoras\n"
-"disponibles con Yaboot. La primera se mide en segundos y aquĆ­ puede elegir\n"
-"entre CD, arranque OF, MacOS o Linux.\n"
-"\n"
-" * Demora de arranque del nĆŗcleo: esta demora es similar a la demora de\n"
-"arranque de LILO. Luego de seleccionar Linux, tendrĆ esta demora en dĆ©cimas\n"
-"de segundo antes que se seleccione su descripciĆ³n del nĆŗcleo\n"
-"predeterminada.\n"
-"\n"
-" * ĀæHabilitar arranque desde el CD?: marcando esta opciĆ³n Usted puede "
-"elegir\n"
-"\"C\" para el CD en el primer prompt de arranque.\n"
-"\n"
-" * ĀæHabilitar arranque OF?: marcando esta opciĆ³n Usted puede elegir \"N\"\n"
-"para Open Firmware en el primer prompt de arranque.\n"
-"\n"
-" * SO predeterminado: puede seleccionar quĆ© sistema operativo arrancarĆ por\n"
-"defecto cuando expira la demora de Open Firmware."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:862
-msgid ""
-"Here are presented various parameters concerning your machine. Depending on\n"
-"your installed hardware, you may or not, see the following entries:\n"
-"\n"
-" * \"Mouse\": check the current mouse configuration and click on the button\n"
-"to change it if necessary;\n"
-"\n"
-" * \"Keyboard\": check the current keyboard map configuration and click on\n"
-"the button to change that if necessary;\n"
-"\n"
-" * \"Timezone\": DrakX, by default, guesses your time zone from the "
-"language\n"
-"you have chosen. But here again, as for the choice of a keyboard, you may\n"
-"not be in the country for which the chosen language should correspond.\n"
-"Hence, you may need to click on the \"Timezone\" button in order to\n"
-"configure the clock according to the time zone you are in;\n"
-"\n"
-" * \"Printer\": clicking on the \"No Printer\" button will open the printer\n"
-"configuration wizard;\n"
-"\n"
-" * \"Sound card\": if a sound card is detected on your system, it is\n"
-"displayed here. No modification possible at installation time;\n"
-"\n"
-" * \"TV card\": if a TV card is detected on your system, it is displayed\n"
-"here. No modification possible at installation time;\n"
-"\n"
-" * \"ISDN card\": if an ISDN card is detected on your system, it is\n"
-"displayed here. You can click on the button to change the parameters\n"
-"associated with it."
-msgstr ""
-"AquĆ­ se le presentan varios parĆmetros que conciernen a su mĆquina.\n"
-"Dependiendo de su hardware instalado, puede o no, ver las entradas\n"
-"siguientes:\n"
-"\n"
-" * \"RatĆ³n\": verifique la configuraciĆ³n del ratĆ³n y haga clic sobre el\n"
-"botĆ³n para cambiarla, si es necesario.\n"
-"\n"
-" * \"Teclado\": verifique la configuraciĆ³n de la disposiciĆ³n del teclado y\n"
-"haga clic sobre el botĆ³n para cambiarla, si es necesario.\n"
-"\n"
-" * \"Huso horario\": DrakX, de manera predeterminada, adivina su huso\n"
-"horario a partir del idioma que Usted ha elegido. Pero nuevamente, al igual\n"
-"que con la elecciĆ³n del teclado, puede ocurrir que no se encuentre en el\n"
-"paĆ­s que sugiere el idioma elegido. De ser asĆ­, puede necesitar hacer clic\n"
-"sobre el botĆ³n \"Huso horario\" para configurar el reloj de acuerdo al huso\n"
-"horario en el que se encuentre.\n"
-"\n"
-" * \"Impresora\": al hacer clic sobre el botĆ³n \"Sin impresora\" se abrirĆ\n"
-"el asistente de configuraciĆ³n de la impresora.\n"
-"\n"
-" * \"Tarjeta de sonido\": si se detecta una tarjeta de sonido en su "
-"sistema,\n"
-"la misma se muestra aquĆ­. Durante la instalaciĆ³n no es posible modificaciĆ³n\n"
-"alguna.\n"
-"\n"
-" * \"Tarjeta de TV\": si se detecta una tarjeta de TV en su sistema, la\n"
-"misma se muestra aquĆ­. Durante la instalaciĆ³n no es posible modificaciĆ³n\n"
-"alguna.\n"
-"\n"
-" * \"Tarjeta RDSI\": si se detecta una tarjeta RDSI en su sistema, la misma\n"
-"se muestra aquĆ­. Puede hacer clic sobre el botĆ³n para cambiar los\n"
-"parĆmetros asociados a la misma."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:891
-msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandrake Linux partition. Be careful, all data present on it will be lost\n"
-"and will not be recoverable!"
-msgstr ""
-"Elija la unidad de disco que desea borrar para instalar su particiĆ³n\n"
-"Mandrake Linux nueva. Tenga cuidado, Āse perderĆn todos los datos de la\n"
-"misma y no se podrĆn recuperar!."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandrakesoft.com:/cooker/doc/manual/literal/drakx/es/drakx-help.xml
-#: ../../help.pm_.c:896
-msgid ""
-"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"
-"any Windows data.\n"
-"\n"
-"Click on \"Cancel\" to cancel this operation without losing any data and\n"
-"partitions present on this hard drive."
-msgstr ""
-"Haga clic sobre \"Aceptar\" si desea borrar todos los datos y particiones\n"
-"presentes en esta unidad de disco. Tenga cuidado, luego de hacer clic sobre\n"
-"\"Aceptar\", no podrĆ recuperar los datos y las particiones presentes en\n"
-"esta unidad de disco, incluyendo los datos de Windows.\n"
-"\n"
-"Haga clic sobre \"Cancelar\" para cancelar esta operaciĆ³n sin perder los\n"
-"datos y las particiones presentes en esta unidad de disco."
-
-#: ../../install2.pm_.c:113
-#, c-format
-msgid ""
-"Can't 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 singnifica 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)"
-
-#: ../../install2.pm_.c:169
-#, c-format
-msgid "You must also format %s"
-msgstr "TĆŗ tambiĆ©n debes formatear %s"
-
-#: ../../install_any.pm_.c:411
-#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They don't have any known security\n"
-"issues, but some new could be found. In that case, you must make sure to "
-"upgrade\n"
-"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, "
-"debeasegurarse de\n"
-"actualizarlos tan pronto como sea posible.\n"
-"\n"
-"\n"
-"ĀæRealmente desea instalar estos servidores?\n"
-
-#: ../../install_any.pm_.c:447
-msgid "Can't use broadcast with no NIS domain"
-msgstr "No se puede usar difusiĆ³n sin un dominio NIS"
-
-#: ../../install_any.pm_.c:793
-#, c-format
-msgid "Insert a FAT formatted floppy in drive %s"
-msgstr "Inserte un disquete formateado con FAT en la disquetera %s"
-
-#: ../../install_any.pm_.c:797
-msgid "This floppy is not FAT formatted"
-msgstr "Este disquete no estĆ formateado con FAT"
-
-#: ../../install_any.pm_.c:809
-msgid ""
-"To use this saved packages selection, boot installation with ``linux "
-"defcfg=floppy''"
-msgstr ""
-"Para utilizar esta selecciĆ³n de paquetes salvada, arranque la instalaciĆ³n "
-"con \"linux defcfg=floppy\""
-
-#: ../../install_any.pm_.c:831 ../../partition_table.pm_.c:763
-#, c-format
-msgid "Error reading file %s"
-msgstr "Error al leer el archivo %s"
-
-#: ../../install_interactive.pm_.c:23
-#, c-format
-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"
-
-#: ../../install_interactive.pm_.c:58
-msgid ""
-"You must have a root partition.\n"
-"For this, create a partition (or click on an existing one).\n"
-"Then choose action ``Mount point'' and set it to `/'"
-msgstr ""
-"Debe tener una particiĆ³n raĆ­z.\n"
-"Para ello, cree una particiĆ³n (o haga clic sobre una que ya existe).\n"
-"Luego elija la acciĆ³n \"Punto de montaje\" y defĆ­nalo como '/'"
-
-#: ../../install_interactive.pm_.c:63
-msgid "You must have a swap partition"
-msgstr "Debe tener una particiĆ³n de intercambio"
-
-#: ../../install_interactive.pm_.c:64
-msgid ""
-"You don't have a swap partition\n"
-"\n"
-"Continue anyway?"
-msgstr ""
-"No dispone de una particiĆ³n de intercambio\n"
-"\n"
-"ĀæDesea continuar de todas formas?"
-
-#: ../../install_interactive.pm_.c:67 ../../install_steps.pm_.c:163
-msgid "You must have a FAT partition mounted in /boot/efi"
-msgstr "Debe tener una particiĆ³n FAT montada en /boot/efi"
-
-#: ../../install_interactive.pm_.c:90
-msgid "Use free space"
-msgstr "Usar el espacio libre"
-
-#: ../../install_interactive.pm_.c:92
-msgid "Not enough free space to allocate new partitions"
-msgstr "No hay espacio libre suficiente para asignar las particiones nuevas"
-
-#: ../../install_interactive.pm_.c:100
-msgid "Use existing partition"
-msgstr "Usar la particiĆ³n existente"
-
-#: ../../install_interactive.pm_.c:102
-msgid "There is no existing partition to use"
-msgstr "No hay ninguna particiĆ³n existente para usar"
-
-#: ../../install_interactive.pm_.c:109
-msgid "Use the Windows partition for loopback"
-msgstr "Usar la particiĆ³n de Windows para loopback"
-
-#: ../../install_interactive.pm_.c:112
-msgid "Which partition do you want to use for Linux4Win?"
-msgstr "ĀæQuĆ© particiĆ³n desea usar para Linux4Win?"
-
-#: ../../install_interactive.pm_.c:114
-msgid "Choose the sizes"
-msgstr "Elija los tamaƱos"
-
-#: ../../install_interactive.pm_.c:115
-msgid "Root partition size in MB: "
-msgstr "TamaƱo de la particiĆ³n raĆ­z en MB: "
-
-#: ../../install_interactive.pm_.c:116
-msgid "Swap partition size in MB: "
-msgstr "TamaƱo de la particiĆ³n de intercambio en MB: "
-
-#: ../../install_interactive.pm_.c:125
-msgid "Use the free space on the Windows partition"
-msgstr "Usar el espacio libre de la particiĆ³n Windows"
-
-#: ../../install_interactive.pm_.c:128
-msgid "Which partition do you want to resize?"
-msgstr "ĀæA quĆ© particiĆ³n desea cambiarle el tamaƱo?"
-
-#: ../../install_interactive.pm_.c:130
-msgid "Computing Windows filesystem bounds"
-msgstr "Calculando los lĆ­mites del sistema de archivos Windows"
-
-#: ../../install_interactive.pm_.c:133
-#, c-format
-msgid ""
-"The FAT resizer is unable to handle your partition, \n"
-"the following error occured: %s"
-msgstr ""
-"El redimensionador de tamaƱo de la FAT no puede gestionar su particiĆ³n, \n"
-"ocurriĆ³ el error siguiente: %s"
-
-#: ../../install_interactive.pm_.c:136
-msgid "Your Windows partition is too fragmented, please run ``defrag'' first"
-msgstr ""
-"Su particiĆ³n Windows estĆ muy fragmentada, por favor primero ejecute \"defrag"
-"\""
-
-#: ../../install_interactive.pm_.c:137
-msgid ""
-"WARNING!\n"
-"\n"
-"DrakX will now resize your Windows partition. Be careful:\n"
-"this operation is dangerous. If you have not already done\n"
-"so, you should first exit the installation, run scandisk\n"
-"under Windows (and optionally run defrag), then restart the\n"
-"installation. You should also backup your data.\n"
-"When sure, press Ok."
-msgstr ""
-"ĀADVERTENCIA!\n"
-"\n"
-"Ahora DrakX cambiarĆ el tamaƱo de su particiĆ³n Windows. Proceda con "
-"cuidado:\n"
-"esta operaciĆ³n es peligrosa. Si aĆŗn no lo hizo, primero deberĆ­a salir de\n"
-"la instalaciĆ³n, ejecutar scandisk bajo Windows (y opcionalmente ejecutar "
-"defrag),\n"
-"y luego volver a iniciar la instalaciĆ³n. TambiĆ©n deberĆ­a hacer una copia de\n"
-" seguridad de sus datos.\n"
-"Cuando estƩ seguro, pulse sobre Aceptar."
-
-#: ../../install_interactive.pm_.c:147
-msgid "Which size do you want to keep for windows on"
-msgstr "ĀæQuĆ© tamaƱo desea conservar para windows en la"
-
-#: ../../install_interactive.pm_.c:148
-#, c-format
-msgid "partition %s"
-msgstr "particiĆ³n %s"
-
-#: ../../install_interactive.pm_.c:155
-#, c-format
-msgid "FAT resizing failed: %s"
-msgstr "FallĆ³ el redimensionado de la FAT: %s"
-
-#: ../../install_interactive.pm_.c:170
-msgid ""
-"There is no FAT partitions to resize or to use as loopback (or not enough "
-"space left)"
-msgstr ""
-"No hay particiones FAT para redimensionar o para usar como loopback (o no "
-"queda espacio suficiente)"
-
-#: ../../install_interactive.pm_.c:176
-msgid "Erase entire disk"
-msgstr "Borrar el disco entero"
-
-#: ../../install_interactive.pm_.c:176
-msgid "Remove Windows(TM)"
-msgstr "Quitar Windows(TM)"
-
-#: ../../install_interactive.pm_.c:179
-msgid "You have more than one hard drive, which one do you install linux on?"
-msgstr "Tiene mĆs de un disco rĆ­gido, Āæsobre cuĆl desea instalar Linux?"
-
-#: ../../install_interactive.pm_.c:182
-#, c-format
-msgid "ALL existing partitions and their data will be lost on drive %s"
-msgstr "Se perderĆn TODAS las particiones y sus datos en la unidad %s"
-
-#: ../../install_interactive.pm_.c:190
-msgid "Custom disk partitioning"
-msgstr "Particionamiento de disco personalizado"
-
-#: ../../install_interactive.pm_.c:194
-msgid "Use fdisk"
-msgstr "Usar fdisk"
-
-#: ../../install_interactive.pm_.c:197
-#, c-format
-msgid ""
-"You can now partition %s.\n"
-"When you are done, don't forget to save using `w'"
-msgstr ""
-"Ahora puede particionar %s.\n"
-"Cuando haya terminado, no se olvide de guardar usando 'w'"
-
-#: ../../install_interactive.pm_.c:226
-msgid "You don't have enough free space on your Windows partition"
-msgstr "No queda espacio libre suficiente en la particiĆ³n de Windows"
-
-#: ../../install_interactive.pm_.c:242
-msgid "I can't find any room for installing"
-msgstr "No se puede encontrar nada de espacio para instalar"
-
-#: ../../install_interactive.pm_.c:246
-msgid "The DrakX Partitioning wizard found the following solutions:"
-msgstr ""
-"El asistente de particionamiento de DrakX encontrĆ³ las siguientes soluciones:"
-
-#: ../../install_interactive.pm_.c:251
-#, c-format
-msgid "Partitioning failed: %s"
-msgstr "FallĆ³ el particionamiento: %s"
-
-#: ../../install_interactive.pm_.c:261
-msgid "Bringing up the network"
-msgstr "Levantando la red"
-
-#: ../../install_interactive.pm_.c:266
-msgid "Bringing down the network"
-msgstr "Bajando la red"
-
-#: ../../install_steps.pm_.c:76
-msgid ""
-"An error occurred, but I don't know how to handle it nicely.\n"
-"Continue at your own risk."
-msgstr ""
-"OcurriĆ³ un error y no se puede gestionar de forma adecuada.\n"
-"ContinĆŗe bajo su propio riesgo."
-
-#: ../../install_steps.pm_.c:205
-#, c-format
-msgid "Duplicate mount point %s"
-msgstr "Punto de montaje %s duplicado"
-
-#: ../../install_steps.pm_.c:388
-msgid ""
-"Some important packages didn't get installed properly.\n"
-"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl Mandrake/RPMS/*.rpm"
-"\"\n"
-msgstr ""
-"Algunos paquetes importantes no fueron instalados correctamente.\n"
-"Seguramente su lector de CD o su CD de instalaciĆ³n sean defectuosos.\n"
-"Compruebe el CD de instalaciĆ³n en un sistema ya existente con el comando:\n"
-" rpm -qpl Mandrake/RPMS/*.rpm\n"
-
-#: ../../install_steps.pm_.c:458
-#, c-format
-msgid "Welcome to %s"
-msgstr "Bienvenido a %s"
-
-#: ../../install_steps.pm_.c:513 ../../install_steps.pm_.c:755
-msgid "No floppy drive available"
-msgstr "Ninguna disquetera disponible"
-
-#: ../../install_steps_auto_install.pm_.c:76
-#: ../../install_steps_stdio.pm_.c:22
-#, c-format
-msgid "Entering step `%s'\n"
-msgstr "Entrando en la etapa '%s'\n"
-
-#: ../../install_steps_gtk.pm_.c:148
-msgid ""
-"Your system is low on resource. You may have some problem installing\n"
-"Mandrake Linux. 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"
-"Mandrake Linux. Si eso ocurre, puede intentar una instalaciĆ³n tipo texto.\n"
-"Para ello, presione 'F1' cuando arranque desde el CDROM, e introduzca 'text'."
-
-#: ../../install_steps_gtk.pm_.c:159 ../../install_steps_interactive.pm_.c:224
-msgid "Install Class"
-msgstr "Tipo de instalaciĆ³n"
-
-#: ../../install_steps_gtk.pm_.c:162
-msgid "Please choose one of the following classes of installation:"
-msgstr "Por favor, elija uno de los siguentes tipos de instalaciĆ³n:"
-
-#: ../../install_steps_gtk.pm_.c:228
-#, c-format
-msgid ""
-"The total size for the groups you have selected is approximately %d MB.\n"
-msgstr ""
-"El tamaƱo total para los grupos que seleccionĆ³ es de aproximadamente %d MB.\n"
-
-#: ../../install_steps_gtk.pm_.c:230
-#, c-format
-msgid ""
-"If you wish to install less than this size,\n"
-"select the percentage of packages that you want to install.\n"
-"\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of 100%% will install all selected packages."
-msgstr ""
-"Si desea instalar un tamaƱo total inferior,\n"
-"elija el porcentaje de paquetes que desea instalar.\n"
-"\n"
-"Un porcentaje bajo instalarĆ sĆ³lo los paquetes mĆs importantes;\n"
-"un porcentaje de 100%% instalarĆ todos los paquetes seleccionados."
-
-#: ../../install_steps_gtk.pm_.c:235
-#, c-format
-msgid ""
-"You have space on your disk for only %d%% of these packages.\n"
-"\n"
-"If you wish to install less than this,\n"
-"select the percentage of packages that you want to install.\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of %d%% will install as many packages as possible."
-msgstr ""
-"Tiene espacio en disco para sĆ³lo %d%% de esos paquetes.\n"
-"\n"
-"Si desea instalar menos de esto,\n"
-"elija el porcentaje de paquetes que desea instalar.\n"
-"Un porcentaje bajo instalarĆ sĆ³lo los paquetes mĆs importantes;\n"
-"un porcentaje de %d%% instalarĆ todos los que sea posible."
-
-#: ../../install_steps_gtk.pm_.c:241
-msgid "You will be able to choose them more specifically in the next step."
-msgstr "PodrĆ elegirlos mĆs detalladamente en la etapa siguiente"
-
-#: ../../install_steps_gtk.pm_.c:243
-msgid "Percentage of packages to install"
-msgstr "Porcentaje de paquetes a instalar"
-
-#: ../../install_steps_gtk.pm_.c:291 ../../install_steps_interactive.pm_.c:705
-msgid "Package Group Selection"
-msgstr "SelecciĆ³n de grupos de paquetes"
-
-#: ../../install_steps_gtk.pm_.c:323 ../../install_steps_interactive.pm_.c:720
-msgid "Individual package selection"
-msgstr "SelecciĆ³n de paquetes individuales"
-
-#: ../../install_steps_gtk.pm_.c:346 ../../install_steps_interactive.pm_.c:645
-#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "TamaƱo total: %d / %d MB"
-
-#: ../../install_steps_gtk.pm_.c:391
-msgid "Bad package"
-msgstr "Paquete incorrecto"
-
-#: ../../install_steps_gtk.pm_.c:392
-#, c-format
-msgid "Name: %s\n"
-msgstr "Nombre: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:393
-#, c-format
-msgid "Version: %s\n"
-msgstr "VersiĆ³n: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:394
-#, c-format
-msgid "Size: %d KB\n"
-msgstr "TamaƱo: %d KB\n"
-
-#: ../../install_steps_gtk.pm_.c:395
-#, c-format
-msgid "Importance: %s\n"
-msgstr "Importancia: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:417
-msgid ""
-"You can't 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 "
-"instalarlo"
-
-#: ../../install_steps_gtk.pm_.c:422
-msgid "The following packages are going to be installed"
-msgstr "Se van a instalar los siguientes paquetes"
-
-#: ../../install_steps_gtk.pm_.c:423
-msgid "The following packages are going to be removed"
-msgstr "Se van a quitar los siguientes paquetes"
-
-#: ../../install_steps_gtk.pm_.c:435
-msgid "You can't select/unselect this package"
-msgstr "No puede seleccionar/deseleccionar este paquete"
-
-#: ../../install_steps_gtk.pm_.c:447
-msgid "This is a mandatory package, it can't be unselected"
-msgstr "Este es un paquete obligatorio, no puede desmarcarlo"
-
-#: ../../install_steps_gtk.pm_.c:449
-msgid "You can't unselect this package. It is already installed"
-msgstr "No puede desmarcar este paquete. Ya estĆ instalado"
-
-#: ../../install_steps_gtk.pm_.c:453
-msgid ""
-"This package must be upgraded\n"
-"Are you sure you want to deselect it?"
-msgstr ""
-"Se debe actualizar este paquete\n"
-"ĀæEstĆ seguro que quiere desmarcarlo?"
-
-#: ../../install_steps_gtk.pm_.c:457
-msgid "You can't unselect this package. It must be upgraded"
-msgstr "No puede desmarcar este paquete. Debe ser actualizado"
-
-#: ../../install_steps_gtk.pm_.c:462
-msgid "Show automatically selected packages"
-msgstr "Mostrar los paquetes seleccionados automĆticamente"
-
-#: ../../install_steps_gtk.pm_.c:463 ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Install"
-msgstr "Instalar"
-
-#: ../../install_steps_gtk.pm_.c:466
-msgid "Load/Save on floppy"
-msgstr "Cargar/Guardar en un disquete"
-
-#: ../../install_steps_gtk.pm_.c:467
-msgid "Updating package selection"
-msgstr "Actualizando la selecciĆ³n de paquetes"
-
-#: ../../install_steps_gtk.pm_.c:472
-msgid "Minimal install"
-msgstr "InstalaciĆ³n mĆ­nima"
-
-#: ../../install_steps_gtk.pm_.c:487 ../../install_steps_interactive.pm_.c:555
-msgid "Choose the packages you want to install"
-msgstr "Elija los paquetes que desea instalar"
-
-#: ../../install_steps_gtk.pm_.c:503 ../../install_steps_interactive.pm_.c:787
-msgid "Installing"
-msgstr "Instalando"
-
-#: ../../install_steps_gtk.pm_.c:509
-msgid "Estimating"
-msgstr "Estimando"
-
-#: ../../install_steps_gtk.pm_.c:516
-msgid "Time remaining "
-msgstr "Tiempo restante "
-
-#: ../../install_steps_gtk.pm_.c:528
-msgid "Please wait, preparing installation"
-msgstr "Preparando la instalaciĆ³n. Espere, por favor"
-
-#: ../../install_steps_gtk.pm_.c:611
-#, c-format
-msgid "%d packages"
-msgstr "%d paquetes"
-
-#: ../../install_steps_gtk.pm_.c:616
-#, c-format
-msgid "Installing package %s"
-msgstr "Instalando el paquete %s"
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-#: ../../standalone/drakautoinst_.c:203
-msgid "Accept"
-msgstr "Aceptar"
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-msgid "Refuse"
-msgstr "Rechazar"
-
-#: ../../install_steps_gtk.pm_.c:658 ../../install_steps_interactive.pm_.c:812
-#, c-format
-msgid ""
-"Change your Cd-Rom!\n"
-"\n"
-"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
-"done.\n"
-"If you don't have it, press Cancel to avoid installation from this Cd-Rom."
-msgstr ""
-"ĀCambie su CD-ROM!\n"
-"\n"
-"Inserte el CD-ROM etiquetado como \"%s\" en la unidad y pulse Aceptar cuando "
-"lo haya hecho.\n"
-"Si no lo posee, pulse Cancelar para cancelar la instalaciĆ³n desde este CD-"
-"ROM."
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_gtk.pm_.c:676
-#: ../../install_steps_interactive.pm_.c:824
-#: ../../install_steps_interactive.pm_.c:828
-msgid "Go on anyway?"
-msgstr "ĀæSeguir adelante?"
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_interactive.pm_.c:824
-msgid "There was an error ordering packages:"
-msgstr "Hubo un error al ordenar los paquetes:"
-
-#: ../../install_steps_gtk.pm_.c:676 ../../install_steps_interactive.pm_.c:828
-msgid "There was an error installing packages:"
-msgstr "Hubo un error al instalar los paquetes:"
-
-#: ../../install_steps_interactive.pm_.c:10
-msgid ""
-"\n"
-"Warning\n"
-"\n"
-"Please read carefully the terms below. If you disagree with any\n"
-"portion, you are not allowed to install the next CD media. Press 'Refuse' \n"
-"to continue the installation without using these media.\n"
-"\n"
-"\n"
-"Some components contained in the next CD media are not governed\n"
-"by the GPL License or similar agreements. Each such component is then\n"
-"governed by the terms and conditions of its own specific license. \n"
-"Please read carefully and comply with such specific licenses before \n"
-"you use or redistribute the said components. \n"
-"Such licenses will in general prevent the transfer, duplication \n"
-"(except for backup purposes), redistribution, reverse engineering, \n"
-"de-assembly, de-compilation or modification of the component. \n"
-"Any breach of agreement will immediately terminate your rights under \n"
-"the specific license. Unless the specific license terms grant you such\n"
-"rights, you usually cannot install the programs on more than one\n"
-"system, or adapt it to be used on a network. In doubt, please contact \n"
-"directly the distributor or editor of the component. \n"
-"Transfer to third parties or copying of such components including the \n"
-"documentation is usually forbidden.\n"
-"\n"
-"\n"
-"All rights to the components of the next CD media belong to their \n"
-"respective authors and are protected by intellectual property and \n"
-"copyright laws applicable to software programs.\n"
-msgstr ""
-"\n"
-"Importante\n"
-"\n"
-"Haga el favor de leer cuidadosamente el presente documento. En caso de "
-"desacuerdo\n"
-"con el presente documento, no estĆ autorizado a instalar los demĆs\n"
-"CDs. En este caso seleccione 'Rechazar' para seguir la instalaciĆ³n sin\n"
-"estos CDs.\n"
-"\n"
-"\n"
-"Algunos componentes de software contenidos en los siguientes CDs no\n"
-"estĆn sometidos a las licencias GPL o similares que permitan la copia,\n"
-"adaptaciĆ³n o redistribuciĆ³n. Cada uno de los componentes de software\n"
-"esta distribuido bajo los tƩrminos y condiciones de un acuerdo de\n"
-"licencia propio. Por favor, dirĆjase a Ć©ste y acĆ©ptelo antes de instalarlo,\n"
-"usarlo o redistribuirlo. Generalmente, estas licencias no autorizan la\n"
-"copia (salvo las destinadas a copias de seguridad), la distribuciĆ³n, "
-"decompilaciĆ³n,\n"
-"desensamblado, ingenierĆ­a inversa, reconstituciĆ³n de la lĆ³gica del\n"
-"programa y/o modificaciĆ³n, salvo en la medida y para las necesidades\n"
-"autorizadas por las leyes vigentes. Toda violaciĆ³n de la licencia\n"
-"vigente implica generalmente la caducidad de estĆ, sin perjuicio a\n"
-"todos los demĆs derechos o acciones dirigidos en contra de Ud. Salvo si\n"
-"el acuerdo de licencia lo autoriza, no puede instalar estos programas\n"
-"en mĆs de una mĆquina, ni adaptarlos para un uso en red. Si fuese\n"
-"necesario, contacte con el distribuidor de cada programa para\n"
-"obtener licencias adicionales. La distribuciĆ³n a terceros de copias de\n"
-"los programas o de la documentaciĆ³n que lo acompaƱa generalmente\n"
-"suele estar prohibida.\n"
-"\n"
-"\n"
-"Todos los derechos, tĆ­tulos e intereses de esos programas son la\n"
-"propiedad exclusiva de sus autores respectivos y estĆn protegidos por el\n"
-"derecho de la propiedad intelectual y otras leyes aplicables al derecho\n"
-"del software.\n"
-
-#: ../../install_steps_interactive.pm_.c:67
-msgid "An error occurred"
-msgstr "OcurriĆ³ un error"
-
-#: ../../install_steps_interactive.pm_.c:85
-msgid "Do you really want to leave the installation?"
-msgstr "ĀæRealmente desea salir de la instalaciĆ³n?"
-
-#: ../../install_steps_interactive.pm_.c:108
-msgid "License agreement"
-msgstr "Acuerdo de licencia"
-
-#: ../../install_steps_interactive.pm_.c:109
-msgid ""
-"Introduction\n"
-"\n"
-"The operating system and the different components available in the Mandrake "
-"Linux distribution \n"
-"shall be called the \"Software Products\" hereafter. The Software Products "
-"include, but are not \n"
-"restricted to, the set of programs, methods, rules and documentation related "
-"to the operating \n"
-"system and the different components of the Mandrake Linux distribution.\n"
-"\n"
-"\n"
-"1. License Agreement\n"
-"\n"
-"Please read carefully this document. This document is a license agreement "
-"between you and \n"
-"MandrakeSoft S.A. which applies to the Software Products.\n"
-"By installing, duplicating or using the Software Products in any manner, you "
-"explicitly \n"
-"accept and fully agree to conform to the terms and conditions of this "
-"License. \n"
-"If you disagree with any portion of the License, you are not allowed to "
-"install, duplicate or use \n"
-"the Software Products. \n"
-"Any attempt to install, duplicate or use the Software Products in a manner "
-"which does not comply \n"
-"with the terms and conditions of this License is void and will terminate "
-"your rights under this \n"
-"License. Upon termination of the License, you must immediately destroy all "
-"copies of the \n"
-"Software Products.\n"
-"\n"
-"\n"
-"2. Limited Warranty\n"
-"\n"
-"The Software Products and attached documentation are provided \"as is\", "
-"with no warranty, to the \n"
-"extent permitted by law.\n"
-"MandrakeSoft S.A. will, in no circumstances and to the extent permitted by "
-"law, be liable for any special,\n"
-"incidental, direct or indirect damages whatsoever (including without "
-"limitation damages for loss of \n"
-"business, interruption of business, financial loss, legal fees and penalties "
-"resulting from a court \n"
-"judgment, or any other consequential loss) arising out of the use or "
-"inability to use the Software \n"
-"Products, even if MandrakeSoft S.A. has been advised of the possibility or "
-"occurance of such \n"
-"damages.\n"
-"\n"
-"LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN SOME "
-"COUNTRIES\n"
-"\n"
-"To the extent permitted by law, MandrakeSoft S.A. or its distributors will, "
-"in no circumstances, be \n"
-"liable for any special, incidental, direct or indirect damages whatsoever "
-"(including without \n"
-"limitation damages for loss of business, interruption of business, financial "
-"loss, legal fees \n"
-"and penalties resulting from a court judgment, or any other consequential "
-"loss) arising out \n"
-"of the possession and use of software components or arising out of "
-"downloading software components \n"
-"from one of Mandrake Linux sites which are prohibited or restricted in some "
-"countries by local laws.\n"
-"This limited liability applies to, but is not restricted to, the strong "
-"cryptography components \n"
-"included in the Software Products.\n"
-"\n"
-"\n"
-"3. The GPL License and Related Licenses\n"
-"\n"
-"The Software Products consist of components created by different persons or "
-"entities. Most \n"
-"of these components are governed under the terms and conditions of the GNU "
-"General Public \n"
-"Licence, hereafter called \"GPL\", or of similar licenses. Most of these "
-"licenses allow you to use, \n"
-"duplicate, adapt or redistribute the components which they cover. Please "
-"read carefully the terms \n"
-"and conditions of the license agreement for each component before using any "
-"component. Any question \n"
-"on a component license should be addressed to the component author and not "
-"to MandrakeSoft.\n"
-"The programs developed by MandrakeSoft S.A. are governed by the GPL License. "
-"Documentation written \n"
-"by MandrakeSoft S.A. is governed by a specific license. Please refer to the "
-"documentation for \n"
-"further details.\n"
-"\n"
-"\n"
-"4. Intellectual Property Rights\n"
-"\n"
-"All rights to the components of the Software Products belong to their "
-"respective authors and are \n"
-"protected by intellectual property and copyright laws applicable to software "
-"programs.\n"
-"MandrakeSoft S.A. reserves its rights to modify or adapt the Software "
-"Products, as a whole or in \n"
-"parts, by all means and for all purposes.\n"
-"\"Mandrake\", \"Mandrake Linux\" and associated logos are trademarks of "
-"MandrakeSoft S.A. \n"
-"\n"
-"\n"
-"5. Governing Laws \n"
-"\n"
-"If any portion of this agreement is held void, illegal or inapplicable by a "
-"court judgment, this \n"
-"portion is excluded from this contract. You remain bound by the other "
-"applicable sections of the \n"
-"agreement.\n"
-"The terms and conditions of this License are governed by the Laws of "
-"France.\n"
-"All disputes on the terms of this license will preferably be settled out of "
-"court. As a last \n"
-"resort, the dispute will be referred to the appropriate Courts of Law of "
-"Paris - France.\n"
-"For any question on this document, please contact MandrakeSoft S.A. \n"
-msgstr ""
-"EL PRESENTE TEXTO ES UNA TRADUCCIĆ“N A PROPĆ“SITO EXCLUSIVAMENTE\n"
-"INFORMATIVO DE LOS TƉRMINOS DE LA LICENCIA DE MANDRAKE LINUX. EN\n"
-"NINGĆN CASO LA PRESENTE TRADUCCIĆ“N TIENE VALOR LEGAL SIENDO OFICIAL\n"
-"EXCLUSIVAMENTE LA VERSIƓN EN FRANCƉS DE LA LICENCIA DE LINUX-MANDRAKE.\n"
-"No obstante, esperamos que esta traducciĆ³n ayudarĆ a los que hablan\n"
-"castellano a entenderla mejor.\n"
-"\n"
-"\n"
-"IntroducciĆ³n\n"
-"\n"
-"El conjunto de elementos que incluye el sistema operativo y los\n"
-"diferentes componentes disponibles en la distribuciĆ³n Mandrake Linux\n"
-"se denominarĆn en adelante \"Programas\". Los programas incluyen en\n"
-"particular, pero de manera no limitativa, el conjunto de programas,\n"
-"procedimientos, reglas y documentaciones relativas al sistema\n"
-"operativo y a los diferentes componentes de la distribuciĆ³n\n"
-"Mandrake Linux.\n"
-"\n"
-"\n"
-"1. Licencia\n"
-"\n"
-"Le rogamos leer cuidadosamente este documento. Ɖste constituye un\n"
-"contrato de licencia entre Ud. (persona fĆ­sica o persona moral) y\n"
-"MandrakeSoft S.A. aplicado a los programas. El hecho de instalar, \n"
-"duplicar o usar los programas de cualquier manera, indica\n"
-"que acepta explƭcitamente los tƩrminos y condiciones de esta licencia\n"
-"y que estĆ totalmente de acuerdo en lo referente a los tĆ©rminos de la "
-"misma.\n"
-"En caso de no estar de acuerdo con el presente documento, no estĆ\n"
-"autorizado a instalar, duplicar ni usar de ninguna manera\n"
-"este producto. El contrato de licencia sera automĆticamente anulado\n"
-"sin aviso previo en el caso que no se cumplan las disposiciones\n"
-"de este documento. En caso de anulaciĆ³n Ud. tendrĆ que anular\n"
-"inmediatamente todo ejemplar y todas las copias de todos los programas\n"
-"y de todas las documentaciones que constituyen el sistema operativo y\n"
-"los diferentes componentes disponibles en en la distribuciĆ³n\n"
-"Mandrake Linux.\n"
-"\n"
-"\n"
-"2. GarantĆ­a y limitaciones de garantĆ­a\n"
-"\n"
-"Los programas y la documentaciĆ³n que los acompaƱa son proporcionados\n"
-"tal cual y sin ninguna garantĆ­a. MandrakeSoft S.A.\n"
-"no se responsabiliza de las consecuencias de un daƱo directo,\n"
-"especial, indirecto o accesorio, de cualquiera naturaleza que sea, en\n"
-"relaciĆ³n con la utilizaciĆ³n de los programas, en particular y de\n"
-"manera no limitada, todos daƱos resultados por perdidas de\n"
-"beneficio, interrupciĆ³n de actividad, pĆ©rdida de informaciones\n"
-"comerciales u otras perdidas financieras, asĆ­ que por eventuales\n"
-"condenaciones e indemnizaciones debidas como consecuencia de una decisiĆ³n "
-"de\n"
-"la justicia, y eso incluso si MandrakeSoft S.A. hubiera sido informada de "
-"la\n"
-"apariciĆ³n o eventualidad de tales daƱos.\n"
-"\n"
-"ADVERTENCIA EN CUANTO A LA POSESIĆ“N O USO DE PROGRAMAS PROHIBIDOS\n"
-"EN CIERTOS PAƨSES\n"
-"\n"
-"En ningĆŗn caso, ni MandrakeSoft S.A. ni sus proveedores podrĆn ser\n"
-"responsabilizados por un perjuicio especial, directo, indirecto o\n"
-"accesorio, de cualquier naturaleza (en particular y de manera\n"
-"no limitada, pĆ©rdidas de beneficio, interrupciĆ³n de actividad,\n"
-"pƩrdida de informaciones comerciales u otras pƩrdidas financieras, asƭ\n"
-"como por posibles condenaciones e indemnizaciones debidas\n"
-"consecuentes a una decisiĆ³n de justicia) que resultarĆ­a de la\n"
-"utilizaciĆ³n, detenciĆ³n o simple descarga desde uno de los sitios de\n"
-"transferencia de Mandrake Linux de programas prohibidos por la\n"
-"legislaciĆ³n a la que estĆ sometido. Esta advertencia se aplica en\n"
-"particular a algunos componentes de criptografĆ­a fuerte incluĆ­dos en los\n"
-"programas.\n"
-"\n"
-"\n"
-"3. Licencia GPL y otras licencias\n"
-"\n"
-"Los Programas estĆn constituidos por mĆ³dulos de programas creados por\n"
-"diversas personas (fĆ­sicas o legales). Muchos de ellos se\n"
-"distribuyen bajo los tĆ©rminos de la Licencia PĆŗblica General GNU\n"
-"(denominada a partir de ahora \"GPL\") u otras licencias parecidas. La "
-"mayorĆ­a\n"
-"de estas licencias le permiten copiar, adaptar o redistribuir los\n"
-"mĆ³dulos de los programas que cubren. Haga el favor de leer y de aceptar los "
-"tƩrminos y\n"
-"condiciones de las licencias que acompaƱan a cada uno de ellos antes de\n"
-"usarlos. Toda pregunta relativa a la licencia se debe dirigir al autor\n"
-"(o su representante) de dicho programa, y no a MandrakeSoft. Los\n"
-"programas desarrollados por MandrakeSoft estĆn sometidos a la licencia\n"
-"GPL. La documentaciĆ³n escrita por MandrakeSoft esta sometida a una\n"
-"licencia especifica. Haga el favor de dirigirse a la documentaciĆ³n para\n"
-"obtener mĆs informaciĆ³n.\n"
-"\n"
-"\n"
-"4. Propiedad intelectual\n"
-"\n"
-"Todos los derechos, tĆ­tulos e intereses de los diferentes programas\n"
-"son propiedad exclusiva de sus autores respectivos y estĆn protegidos\n"
-"por el derecho de la propiedad intelectual y otras leyes aplicadas a los\n"
-"derechos de los programas. Las marcas \"Mandrake\" y \"Mandrake Linux\" "
-"asĆ­\n"
-"como los logotipos asociados son registrados por MandrakeSoft S.A.\n"
-"\n"
-"\n"
-"5. Disposiciones diversas\n"
-" \n"
-"Si alguna disposiciĆ³n de este contrato de licencia fuera declarada\n"
-"nula, ilegal o inaplicable por un tribunal competente, esta\n"
-"disposiciĆ³n serĆ­a excluida del presente contrato. Sin embargo\n"
-"Ud. seguirĆ sometido a las otras disposiciones, que tendrĆn\n"
-"plenos efectos. El contrato de licencia estĆ regido por las leyes\n"
-"francesas. Toda disputa relativa a los presentes tĆ©rminos serĆ\n"
-"resuelta, preferentemente, por vĆ­a amigable. En caso de desacuerdo con\n"
-"MandrakeSoft S.A., el litigio serĆ tramitado a los tribunales\n"
-"competentes de ParĆ­s, Francia. Para cualquier pregunta relacionada con\n"
-"este documento, por favor, pĆ³ngase en contacto con MandrakeSoft S.A.\n"
-
-#: ../../install_steps_interactive.pm_.c:205
-#: ../../install_steps_interactive.pm_.c:1045
-#: ../../standalone/keyboarddrake_.c:28
-msgid "Keyboard"
-msgstr "Teclado"
-
-#: ../../install_steps_interactive.pm_.c:206
-msgid "Please choose your keyboard layout."
-msgstr "Seleccione la distribuciĆ³n de su teclado."
-
-#: ../../install_steps_interactive.pm_.c:207
-msgid "Here is the full list of keyboards available"
-msgstr "AquĆ­ tiene la lista completa de teclados disponibles"
-
-#: ../../install_steps_interactive.pm_.c:224
-msgid "Which installation class do you want?"
-msgstr "ĀæQuĆ© tipo de instalaciĆ³n desea?"
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Install/Update"
-msgstr "InstalaciĆ³n/ActualizaciĆ³n"
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Is this an install or an update?"
-msgstr "ĀæEs una instalaciĆ³n o una actualizaciĆ³n?"
-
-#: ../../install_steps_interactive.pm_.c:235
-msgid "Recommended"
-msgstr "Recomendada"
-
-#: ../../install_steps_interactive.pm_.c:238
-#: ../../install_steps_interactive.pm_.c:241
-msgid "Expert"
-msgstr "Experto"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Upgrade"
-msgstr "ActualizaciĆ³n"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Upgrade packages only"
-msgstr "SĆ³lo actualizar los paquetes."
-
-#: ../../install_steps_interactive.pm_.c:266
-msgid "Please choose the type of your mouse."
-msgstr "Por favor, seleccione el tipo de su ratĆ³n."
-
-#: ../../install_steps_interactive.pm_.c:272 ../../standalone/mousedrake_.c:65
-msgid "Mouse Port"
-msgstr "Puerto del ratĆ³n"
-
-#: ../../install_steps_interactive.pm_.c:273 ../../standalone/mousedrake_.c:66
-msgid "Please choose on which serial port your mouse is connected to."
-msgstr "Seleccione el puerto serie al que estĆ conectado el ratĆ³n, por favor."
-
-#: ../../install_steps_interactive.pm_.c:281
-msgid "Buttons emulation"
-msgstr "EmulaciĆ³n de los botones"
-
-#: ../../install_steps_interactive.pm_.c:283
-msgid "Button 2 Emulation"
-msgstr "EmulaciĆ³n del botĆ³n 2"
-
-#: ../../install_steps_interactive.pm_.c:284
-msgid "Button 3 Emulation"
-msgstr "EmulaciĆ³n del botĆ³n 3"
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "Configuring PCMCIA cards..."
-msgstr "Configurando tarjetas PCMCIA..."
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "PCMCIA"
-msgstr "PCMCIA"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "Configuring IDE"
-msgstr "Configurando dispositivos IDE"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "IDE"
-msgstr "IDE"
-
-#: ../../install_steps_interactive.pm_.c:327
-msgid "no available partitions"
-msgstr "no hay particiones disponibles"
-
-#: ../../install_steps_interactive.pm_.c:330
-msgid "Scanning partitions to find mount points"
-msgstr "Rastreando las particiones para encontrar los puntos de montaje"
-
-#: ../../install_steps_interactive.pm_.c:338
-msgid "Choose the mount points"
-msgstr "Seleccione los puntos de montaje"
-
-#: ../../install_steps_interactive.pm_.c:357
-#, c-format
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I can try to go on blanking bad partitions (ALL DATA will be lost!).\n"
-"The other solution is to disallow DrakX to modify the partition table.\n"
-"(the error is %s)\n"
-"\n"
-"Do you agree to loose all the partitions?\n"
-msgstr ""
-"No se puede leer su tabla de particiones, estĆ demasiado deteriorada :(\n"
-"Se intentarĆ seguir y vaciar las particiones malas (Āse perderĆn TODOS LOS "
-"DATOS!).\n"
-"La otra soluciĆ³n es no permitir que DrakX modifique la tabla de "
-"particiones.\n"
-"(el error es %s)\n"
-"\n"
-"ĀæEstĆ de acuerdo en perder todas las particiones?\n"
-
-#: ../../install_steps_interactive.pm_.c:370
-msgid ""
-"DiskDrake failed to read correctly the partition table.\n"
-"Continue at your own risk!"
-msgstr ""
-"DiskDrake no pudo leer correctamente la tabla de particiones.\n"
-"ĀContinĆŗe bajo su propio riesgo!"
-
-#: ../../install_steps_interactive.pm_.c:386
-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 hay 1MB de espacio para bootstrap! La instalaciĆ³n continuarĆ, pero para "
-"arrancar su sistema, necesitarĆ crear la particiĆ³n bootstrap en DiskDrake"
-
-#: ../../install_steps_interactive.pm_.c:395
-msgid "No root partition found to perform an upgrade"
-msgstr "No se encontrĆ³ particiĆ³n raĆ­z para efectuar la actualizaciĆ³n"
-
-#: ../../install_steps_interactive.pm_.c:396
-msgid "Root Partition"
-msgstr "ParticiĆ³n raĆ­z"
-
-#: ../../install_steps_interactive.pm_.c:397
-msgid "What is the root partition (/) of your system?"
-msgstr "ĀæCual es la particiĆ³n raĆ­z (/) de su sistema?"
-
-#: ../../install_steps_interactive.pm_.c:411
-msgid "You need to reboot for the partition table modifications to take place"
-msgstr ""
-"Necesita reiniciar el equipo para que se efectĆŗe la modificaciĆ³n de la tabla "
-"de particiones"
-
-#: ../../install_steps_interactive.pm_.c:435
-msgid "Choose the partitions you want to format"
-msgstr "Elija las particiones que desea formatear"
-
-#: ../../install_steps_interactive.pm_.c:436
-msgid "Check bad blocks?"
-msgstr "ĀæVerificar el disco en busca de bloques malos?"
-
-#: ../../install_steps_interactive.pm_.c:462
-msgid "Formatting partitions"
-msgstr "Formateando las particiones"
-
-#: ../../install_steps_interactive.pm_.c:464
-#, c-format
-msgid "Creating and formatting file %s"
-msgstr "Creando y formateando el archivo %s"
-
-#: ../../install_steps_interactive.pm_.c:467
-msgid "Not enough swap to fulfill installation, please add some"
-msgstr ""
-"Espacio de intercambio insuficiente para completar la instalaciĆ³n, aƱada un "
-"poco mĆs"
-
-#: ../../install_steps_interactive.pm_.c:473
-msgid "Looking for available packages"
-msgstr "Buscando los paquetes disponibles"
-
-#: ../../install_steps_interactive.pm_.c:479
-msgid "Finding packages to upgrade"
-msgstr "Encontrando los paquetes a actualizar"
-
-#: ../../install_steps_interactive.pm_.c:496
-#, c-format
-msgid ""
-"Your system has not enough space left for installation or upgrade (%d > %d)"
-msgstr ""
-"Su sistema no tiene espacio suficiente para instalar o actualizar (%d > %d)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Complete (%dMB)"
-msgstr "Completa (%dMB)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Minimum (%dMB)"
-msgstr "MĆ­nima (%d MB)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Recommended (%dMB)"
-msgstr "Recomendada (%dMB)"
-
-#: ../../install_steps_interactive.pm_.c:568
-msgid ""
-"Please choose load or save package selection on floppy.\n"
-"The format is the same as auto_install generated floppies."
-msgstr ""
-"Por favor, seleccione cargar o guardar la selecciĆ³n de paquetes en "
-"disquete.\n"
-"El formato es el mismo que los disquetes generados para la instalaciĆ³n "
-"automĆtica."
-
-#: ../../install_steps_interactive.pm_.c:571
-msgid "Load from floppy"
-msgstr "Cargar desde un disquete"
-
-#: ../../install_steps_interactive.pm_.c:573
-msgid "Loading from floppy"
-msgstr "Cargando desde un disquete"
-
-#: ../../install_steps_interactive.pm_.c:573
-msgid "Package selection"
-msgstr "SelecciĆ³n de paquetes"
-
-#: ../../install_steps_interactive.pm_.c:578
-msgid "Insert a floppy containing package selection"
-msgstr "Introduzca un disquete que contenga la selecciĆ³n de paquetes"
-
-#: ../../install_steps_interactive.pm_.c:590
-msgid "Save on floppy"
-msgstr "Guardar en un disquete"
-
-#: ../../install_steps_interactive.pm_.c:658
-msgid "Selected size is larger than available space"
-msgstr "El tamaƱo seleccionado es mayor que el disponible"
-
-#: ../../install_steps_interactive.pm_.c:671
-msgid "Type of install"
-msgstr "Tipo de instalaciĆ³n."
-
-#: ../../install_steps_interactive.pm_.c:672
-msgid ""
-"You haven't 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 mĆ­nima instalaciĆ³n que quiera."
-
-#: ../../install_steps_interactive.pm_.c:675
-msgid "With X"
-msgstr "Con X"
-
-#: ../../install_steps_interactive.pm_.c:677
-msgid "With basic documentation (recommended!)"
-msgstr "Con documentaciĆ³n bĆsica (Ārecomendado!)"
-
-#: ../../install_steps_interactive.pm_.c:678
-msgid "Truly minimal install (especially no urpmi)"
-msgstr "InstalaciĆ³n mĆ­nima \"en serio\" (especialmente sin urpmi)"
-
-#: ../../install_steps_interactive.pm_.c:762
-msgid ""
-"If you have all the CDs in the list below, click Ok.\n"
-"If you have none of those CDs, click Cancel.\n"
-"If only some CDs are missing, unselect them, then click Ok."
-msgstr ""
-"Si tiene todos los CDs de la lista siguiente, haga clic sobre \"Aceptar\".\n"
-"Si no tiene ningĆŗn CD, haga clic sobre \"Cancelar\".\n"
-"Si sĆ³lo le faltan algunos CDs, desmĆrquelos y haga clic sobre \"Aceptar\"."
-
-#: ../../install_steps_interactive.pm_.c:767
-#, c-format
-msgid "Cd-Rom labeled \"%s\""
-msgstr "CD-ROM etiquetado como \"%s\""
-
-#: ../../install_steps_interactive.pm_.c:787
-msgid "Preparing installation"
-msgstr "Preparando la instalaciĆ³n"
-
-#: ../../install_steps_interactive.pm_.c:796
-#, c-format
-msgid ""
-"Installing package %s\n"
-"%d%%"
-msgstr ""
-"Instalando el paquete %s\n"
-"%d%%"
-
-#: ../../install_steps_interactive.pm_.c:842
-msgid "Post-install configuration"
-msgstr "ConfiguraciĆ³n posterior a la instalaciĆ³n"
-
-#: ../../install_steps_interactive.pm_.c:848
-#, c-format
-msgid "Please insert the Boot floppy used in drive %s"
-msgstr "Por favor, inserte el disquete de arranque en la unidad %s"
-
-#: ../../install_steps_interactive.pm_.c:854
-#, c-format
-msgid "Please insert the Update Modules floppy in drive %s"
-msgstr "Por favor, inserte el disquete de mĆ³dulos actualizados en la unidad %s"
-
-#: ../../install_steps_interactive.pm_.c:874
-msgid ""
-"You have now the possibility to download software aimed for encryption.\n"
-"\n"
-"WARNING:\n"
-"\n"
-"Due to different general requirements applicable to these software and "
-"imposed\n"
-"by various jurisdictions, customer and/or end user of theses software "
-"should\n"
-"ensure that the laws of his/their jurisdiction allow him/them to download, "
-"stock\n"
-"and/or use these software.\n"
-"\n"
-"In addition customer and/or end user shall particularly be aware to not "
-"infringe\n"
-"the laws of his/their jurisdiction. Should customer and/or end user not\n"
-"respect the provision of these applicable laws, he/they will incure serious\n"
-"sanctions.\n"
-"\n"
-"In no event shall Mandrakesoft nor its manufacturers and/or suppliers be "
-"liable\n"
-"for special, indirect or incidental damages whatsoever (including, but not\n"
-"limited to loss of profits, business interruption, loss of commercial data "
-"and\n"
-"other pecuniary losses, and eventual liabilities and indemnification to be "
-"paid\n"
-"pursuant to a court decision) arising out of use, possession, or the sole\n"
-"downloading of these software, to which customer and/or end user could\n"
-"eventually have access after having sign up the present agreement.\n"
-"\n"
-"\n"
-"For any queries relating to these agreement, please contact \n"
-"Mandrakesoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA"
-msgstr ""
-"Ahora tiene la posibilidad de bajar por la red paquetes especĆ­ficos\n"
-"durante el procedimiento de instalaciĆ³n, incuĆ­dos programas de cifrado.\n"
-"\n"
-"ADVERTENCIA:\n"
-"\n"
-"Debido a las diferencias de los requisitos aplicables a ese tipo de\n"
-"programas por las distintas jurisdicciones, es el cliente y/o el usuario "
-"final\n"
-"de dichos programas quien debe verificar que las leyes de su jurisdicciĆ³n "
-"le\n"
-"permitan bajar, guardar y/o utilizar dichos programas.\n"
-"\n"
-"En particular el cliente y/o usuario final debe tener un cuidado especial\n"
-"de no violar las leyes de su de su jurisdicciĆ³n. En el caso de que el "
-"cliente y/o\n"
-"el usuario final no respetase las condiciones de las leyes que le son\n"
-"aplicables, es posible que sea severamente sancionado por la ley.\n"
-"\n"
-"En ningĆŗn caso MandrakeSoft ni ninguno de sus fabricantes y/o\n"
-"distribuidores se puede considerar responsable por daƱos especiales, "
-"directos\n"
-"o indirectos de cualquier tipo (incluyendo, pero sin limitarse a ello, "
-"pƩrdida\n"
-"de beneficios, ruptura de negocios, pƩrdida de datos comerciales u otras\n"
-"pƩrdidas pecuniarias, o eventuales responsabilidades e indemnizaciones\n"
-"a pagar debido a decisiones de la justicia) que puedan ocurrir mediante el\n"
-"uso, posesiĆ³n o el sĆ³lo hecho de descargar de Internet o por otro medio, "
-"programas\n"
-"a los cuales el cliente y/o usuario final tenga acceso despuƩs de haber\n"
-"firmado el presente convenio.\n"
-"\n"
-"Para preguntas relativas a este convenio, pĆ³ngase en contacto con\n"
-"Mandrakesoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA"
-
-#: ../../install_steps_interactive.pm_.c:912
-msgid ""
-"You have now the possibility to download updated packages that have\n"
-"been released after the distribution has been made available.\n"
-"\n"
-"You will get security fixes or bug fixes, but you need to have an\n"
-"Internet connection configured to proceed.\n"
-"\n"
-"Do you want to install the updates ?"
-msgstr ""
-"Ahora tiene la posibilidad de bajarse paquetes actualizados,\n"
-"que han salido despues de que se haya hecho la distribuciĆ³n.\n"
-"\n"
-"ConseguirĆ actualizaciones de fallos y de seguridad, pero debe\n"
-"tener una conexiĆ³n a la Internet configurada para proceder.\n"
-"\n"
-"ĀæDesea instalar las actualizaciones?"
-
-#: ../../install_steps_interactive.pm_.c:926
-msgid "Contacting Mandrake Linux web site to get the list of available mirrors"
-msgstr ""
-"Contactando con el sitio web de Mandrake Linux para obtener la lista de las "
-"rƩplicas disponibles"
-
-#: ../../install_steps_interactive.pm_.c:931
-msgid "Choose a mirror from which to get the packages"
-msgstr "Elija un sitio de rƩplica del que bajar los paquetes"
-
-#: ../../install_steps_interactive.pm_.c:940
-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"
-
-#: ../../install_steps_interactive.pm_.c:967
-msgid "Which is your timezone?"
-msgstr "ĀæCuĆl es su huso horario?"
-
-#: ../../install_steps_interactive.pm_.c:972
-msgid "Hardware clock set to GMT"
-msgstr "Reloj interno puesto a GMT"
-
-#: ../../install_steps_interactive.pm_.c:973
-msgid "Automatic time synchronization (using NTP)"
-msgstr "SincronizaciĆ³n automĆtica de hora (usando NTP)"
-
-#: ../../install_steps_interactive.pm_.c:980
-msgid "NTP Server"
-msgstr "Servidor NTP"
-
-#: ../../install_steps_interactive.pm_.c:1014
-#: ../../install_steps_interactive.pm_.c:1022
-msgid "Remote CUPS server"
-msgstr "Servidor CUPS remoto"
-
-#: ../../install_steps_interactive.pm_.c:1015
-msgid "No printer"
-msgstr "Sin impresora"
-
-#: ../../install_steps_interactive.pm_.c:1032
-msgid "Do you have an ISA sound card?"
-msgstr "ĀæTiene una tarjeta de sonido ISA?"
-
-#: ../../install_steps_interactive.pm_.c:1034
-msgid "Run \"sndconfig\" after installation to configure your sound card"
-msgstr ""
-"Use \"sndconfig\" luego de la instalaciĆ³n para configurar su tarjeta de "
-"sonido"
-
-#: ../../install_steps_interactive.pm_.c:1036
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"No se detectĆ³ tarjeta de sonido. Pruebe \"harddrake\" luego de la instalaciĆ³n"
-
-#: ../../install_steps_interactive.pm_.c:1041 ../../steps.pm_.c:27
-msgid "Summary"
-msgstr "Resumen"
-
-#: ../../install_steps_interactive.pm_.c:1044
-msgid "Mouse"
-msgstr "RatĆ³n"
-
-#: ../../install_steps_interactive.pm_.c:1046
-msgid "Timezone"
-msgstr "Huso horario"
-
-#: ../../install_steps_interactive.pm_.c:1047 ../../printerdrake.pm_.c:2276
-#: ../../printerdrake.pm_.c:2354
-msgid "Printer"
-msgstr "Impresora"
-
-#: ../../install_steps_interactive.pm_.c:1049
-msgid "ISDN card"
-msgstr "Tarjeta RDSI"
-
-#: ../../install_steps_interactive.pm_.c:1052
-#: ../../install_steps_interactive.pm_.c:1054
-msgid "Sound card"
-msgstr "Tarjeta de sonido"
-
-#: ../../install_steps_interactive.pm_.c:1056
-msgid "TV card"
-msgstr "Tarjeta de TV"
-
-#: ../../install_steps_interactive.pm_.c:1094
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1122
-msgid "LDAP"
-msgstr "LDAP"
-
-#: ../../install_steps_interactive.pm_.c:1095
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1131
-msgid "NIS"
-msgstr "NIS"
-
-#: ../../install_steps_interactive.pm_.c:1096
-#: ../../install_steps_interactive.pm_.c:1118
-msgid "Local files"
-msgstr "Archivos locales"
-
-#: ../../install_steps_interactive.pm_.c:1105
-#: ../../install_steps_interactive.pm_.c:1106 ../../steps.pm_.c:24
-msgid "Set root password"
-msgstr "ContraseƱa de root"
-
-#: ../../install_steps_interactive.pm_.c:1107
-msgid "No password"
-msgstr "Sin contraseƱa"
-
-#: ../../install_steps_interactive.pm_.c:1112
-#, c-format
-msgid "This password is too simple (must be at least %d characters long)"
-msgstr ""
-"Esta contraseƱa es demasiado simple\n"
-"(tiene que tener por lo menos una longitud de %d caracteres)"
-
-#: ../../install_steps_interactive.pm_.c:1118 ../../network/modem.pm_.c:49
-#: ../../standalone/draknet_.c:626 ../../standalone/logdrake_.c:172
-msgid "Authentication"
-msgstr "AutentificaciĆ³n"
-
-#: ../../install_steps_interactive.pm_.c:1126
-msgid "Authentication LDAP"
-msgstr "AutentificaciĆ³n LDAP"
-
-#: ../../install_steps_interactive.pm_.c:1127
-msgid "LDAP Base dn"
-msgstr "LDAP Base dn"
-
-#: ../../install_steps_interactive.pm_.c:1128
-msgid "LDAP Server"
-msgstr "Servidor LDAP"
-
-#: ../../install_steps_interactive.pm_.c:1134
-msgid "Authentication NIS"
-msgstr "AutentificaciĆ³n NIS"
-
-#: ../../install_steps_interactive.pm_.c:1135
-msgid "NIS Domain"
-msgstr "Dominio NIS"
-
-#: ../../install_steps_interactive.pm_.c:1136
-msgid "NIS Server"
-msgstr "Servidor NIS"
-
-#: ../../install_steps_interactive.pm_.c:1171
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"SILO on your system, or another operating system removes SILO, or SILO "
-"doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures.\n"
-"\n"
-"If you want to create a bootdisk for your system, insert a floppy in the "
-"first\n"
-"drive and press \"Ok\"."
-msgstr ""
-"Un disquete de arranque personalizado da la posibilidad de arrancar su "
-"equipo\n"
-"bajo Linux sin depender del cargador de arranque normal. Esto puede ser "
-"Ćŗtil\n"
-"si no desea instalar SILO en su sistema, o si cualquier otro sistema "
-"operativo borra\n"
-"SILO, o si SILO no funciona con su configuraciĆ³n de hardware. Un disquete\n"
-"de arranque personalizado tambiƩn se puede usar con la imagen de rescate de\n"
-" Mandrake haciendo asĆ­ mucho mĆs fĆcil la recuperaciĆ³n en caso de fallo\n"
-"grave del sistema.\n"
-"\n"
-"Si desea crear un disquete de arranque para su sistema, inserte un disquete\n"
-"en la primer disquetera y presione \"Aceptar\"."
-
-#: ../../install_steps_interactive.pm_.c:1187
-msgid "First floppy drive"
-msgstr "Primera disquetera"
-
-#: ../../install_steps_interactive.pm_.c:1188
-msgid "Second floppy drive"
-msgstr "Segunda disquetera"
-
-#: ../../install_steps_interactive.pm_.c:1189 ../../printerdrake.pm_.c:1848
-msgid "Skip"
-msgstr "Omitir"
-
-#: ../../install_steps_interactive.pm_.c:1194
-#, c-format
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"LILO (or grub) on your system, or another operating system removes LILO, or "
-"LILO doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures. Would you like to create a bootdisk for your system?\n"
-"%s"
-msgstr ""
-"Un disquete de arranque personalizado da la posibilidad de arrancar su "
-"equipo\n"
-"bajo Linux sin depender del cargador de arranque normal. Esto puede ser "
-"Ćŗtil\n"
-"si no desea instalar LILO (o grub) en su sistema, o si cualquier otro "
-"sistema operativo borra\n"
-"LILO, o si LILO no funciona con su configuraciĆ³n de hardware. Un disquete\n"
-"de arranque personalizado tambiƩn se puede usar con la imagen de rescate de\n"
-"Mandrake haciendo asĆ­ mucho mĆs fĆcil la recuperaciĆ³n en caso de fallo\n"
-"grave del sistema. ĀæDesea crear un disquete de arranque para su sistema?\n"
-"%s"
-
-#: ../../install_steps_interactive.pm_.c:1200
-msgid ""
-"\n"
-"\n"
-"(WARNING! You're using XFS for your root partition,\n"
-"creating a bootdisk on a 1.44 Mb floppy will probably fail,\n"
-"because XFS needs a very large driver)."
-msgstr ""
-"\n"
-"\n"
-"(ĀATENCIĆ“N! EstĆ utilizando XFS en su particiĆ³n raĆ­z,\n"
-"la creaciĆ³n de un disquete de arranque en un disquete de 1.44Mb puede "
-"fallar\n"
-"porque XFS necesita un controlador muy grande)."
-
-#: ../../install_steps_interactive.pm_.c:1208
-msgid "Sorry, no floppy drive available"
-msgstr "Disculpe, pero no hay ninguna disquetera disponible"
-
-#: ../../install_steps_interactive.pm_.c:1212
-msgid "Choose the floppy drive you want to use to make the bootdisk"
-msgstr "Elija la disquetera que desea usar para crear el disco de arranque"
-
-#: ../../install_steps_interactive.pm_.c:1216
-#, c-format
-msgid "Insert a floppy in %s"
-msgstr "Inserte un disquete en %s"
-
-#: ../../install_steps_interactive.pm_.c:1219
-msgid "Creating bootdisk"
-msgstr "Creando el disquete de arranque"
-
-#: ../../install_steps_interactive.pm_.c:1226
-msgid "Preparing bootloader"
-msgstr "Preparando el cargador de arranque"
-
-#: ../../install_steps_interactive.pm_.c:1237
-msgid ""
-"You appear to have an OldWorld or Unknown\n"
-" machine, the yaboot bootloader will not work for you.\n"
-"The install will continue, but you'll\n"
-" need to use BootX to boot your machine"
-msgstr ""
-"Parece que tiene una mĆquina desconocida o demasiado\n"
-"antigua. El gestor de arranque yaboot no funcionarĆ.\n"
-"La instalaciĆ³n continuarĆ, pero necesitarĆ\n"
-"utilizar BootX para arrancar su mĆquina."
-
-#: ../../install_steps_interactive.pm_.c:1243
-msgid "Do you want to use aboot?"
-msgstr "ĀæDesea usar aboot?"
-
-#: ../../install_steps_interactive.pm_.c:1246
-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?"
-
-#: ../../install_steps_interactive.pm_.c:1253
-msgid "Installing bootloader"
-msgstr "Instalando cargador de arranque"
-
-#: ../../install_steps_interactive.pm_.c:1259
-msgid "Installation of bootloader failed. The following error occured:"
-msgstr ""
-"FallĆ³ la instalaciĆ³n del cargador de arranque. OcurriĆ³ el siguiente error:"
-
-#: ../../install_steps_interactive.pm_.c:1267
-#, c-format
-msgid ""
-"You may need to change your Open Firmware boot-device to\n"
-" enable the bootloader. If you don't 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\n"
-"At your next boot you should see the bootloader prompt."
-msgstr ""
-"Puede necesitar cambiar el dispositivo de arranque de Open Firmware para\n"
-" activar el cargador de arranque. Si no ve el prompt del cargador de\n"
-" arranque al reiniciar, mantenga presionado Command-Option-O-F al\n"
-" reiniciar e introduzca:\n"
-" setenv boot-device %s, \\\\:tbxi\n"
-" Luego escriba: shut-down\n"
-"La prĆ³xima vez que arranque deberĆ­a ver el prompt del cargador de arranque."
-
-#: ../../install_steps_interactive.pm_.c:1311
-#: ../../standalone/drakautoinst_.c:81
-#, c-format
-msgid "Insert a blank floppy in drive %s"
-msgstr "Inserte un disquete en blanco en la unidad %s"
-
-#: ../../install_steps_interactive.pm_.c:1315
-#: ../../standalone/drakautoinst_.c:83
-msgid "Creating auto install floppy"
-msgstr "Creando el disquete de instalaciĆ³n automĆtica"
-
-#: ../../install_steps_interactive.pm_.c:1326
-msgid ""
-"Some steps are not completed.\n"
-"\n"
-"Do you really want to quit now?"
-msgstr ""
-"Algunas de las etapas no fueron completadas.\n"
-"\n"
-"ĀæRealmente desea salir ahora?"
-
-#: ../../install_steps_interactive.pm_.c:1337
-msgid ""
-"Congratulations, installation is complete.\n"
-"Remove the boot media and press return to reboot.\n"
-"\n"
-"\n"
-"For information on fixes which are available for this release of Mandrake "
-"Linux,\n"
-"consult the Errata available from:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/82errata.php3\n"
-"\n"
-"\n"
-"Information on configuring your system is available in the post\n"
-"install chapter of the Official Mandrake Linux User's Guide."
-msgstr ""
-"Felicidades, la instalaciĆ³n estĆ completa.\n"
-"Extraiga el soporte de arranque y presione Intro para reiniciar.\n"
-"\n"
-"Para obtener informaciĆ³n sobre correcciones disponibles para esta versiĆ³n\n"
-"de Mandrake Linux, consulte el archivo de erratas disponible en\n"
-"\n"
-"http://www.linux-mandrake.com/en/82errata.php3\n"
-"\n"
-"\n"
-"Hay informaciĆ³n disponible sobre cĆ³mo configurar su sistema en el capĆ­tulo "
-"de\n"
-"configuraciĆ³n tras la instalaciĆ³n de la guĆ­a de usuario oficial de Mandrake "
-"Linux."
-
-#: ../../install_steps_interactive.pm_.c:1354
-msgid "Generate auto install floppy"
-msgstr "Generar un disquete de instalaciĆ³n automĆtica"
-
-#: ../../install_steps_interactive.pm_.c:1356
-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"
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Automated"
-msgstr "Automatizada"
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Replay"
-msgstr "Reproducir"
-
-#: ../../install_steps_interactive.pm_.c:1364
-msgid "Save packages selection"
-msgstr "Guardar la selecciĆ³n de paquetes"
-
-#: ../../install_steps_newt.pm_.c:22
-#, c-format
-msgid "Mandrake Linux Installation %s"
-msgstr "InstalaciĆ³n %s de Mandrake Linux"
-
-#: ../../install_steps_newt.pm_.c:34
-msgid ""
-" <Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen "
-msgstr ""
-" <Tab>/<Alt-Tab> entre elementos | <espacio> seleccionar | <F12> pantalla "
-"sig. "
-
-#: ../../interactive.pm_.c:87
-msgid "kdesu missing"
-msgstr "no se encuentra kdesu"
-
-#: ../../interactive.pm_.c:89 ../../interactive.pm_.c:100
-msgid "consolehelper missing"
-msgstr "falta \"consolehelper\""
-
-#: ../../interactive.pm_.c:152
-msgid "Choose a file"
-msgstr "Elija un archivo"
-
-#: ../../interactive.pm_.c:314
-msgid "Advanced"
-msgstr "Avanzada"
-
-#: ../../interactive.pm_.c:315
-msgid "Basic"
-msgstr "BĆsico"
-
-#: ../../interactive.pm_.c:386
-msgid "Please wait"
-msgstr "Espere, por favor"
-
-#: ../../interactive_gtk.pm_.c:605 ../../services.pm_.c:222
-msgid "Info"
-msgstr "Info"
-
-#: ../../interactive_gtk.pm_.c:715
-msgid "Expand Tree"
-msgstr "Expandir el Ćrbol"
-
-#: ../../interactive_gtk.pm_.c:716
-msgid "Collapse Tree"
-msgstr "Contraer el Ćrbol"
-
-#: ../../interactive_gtk.pm_.c:717
-msgid "Toggle between flat and group sorted"
-msgstr "Cambiar entre vista plana y ordenada por grupos"
-
-#: ../../interactive_stdio.pm_.c:29 ../../interactive_stdio.pm_.c:147
-msgid "Bad choice, try again\n"
-msgstr "ElecciĆ³n incorrecta, intĆ©ntelo de nuevo\n"
-
-#: ../../interactive_stdio.pm_.c:30 ../../interactive_stdio.pm_.c:148
-#, c-format
-msgid "Your choice? (default %s) "
-msgstr "ĀæSu elecciĆ³n? (por defecto %s)"
-
-#: ../../interactive_stdio.pm_.c:52
-#, c-format
-msgid ""
-"Entries you'll have to fill:\n"
-"%s"
-msgstr ""
-"Entradas que tendrĆ que rellenar:\n"
-"%s"
-
-#: ../../interactive_stdio.pm_.c:68
-#, c-format
-msgid "Your choice? (0/1, default `%s') "
-msgstr "ĀæSu elecciĆ³n? (0/1, por defecto '%s') "
-
-#: ../../interactive_stdio.pm_.c:93
-#, c-format
-msgid "Button `%s': %s"
-msgstr "BotĆ³n `%s': %s"
-
-#: ../../interactive_stdio.pm_.c:94
-msgid "Do you want to click on this button? "
-msgstr "ĀæDesea pulsar este botĆ³n?"
-
-#: ../../interactive_stdio.pm_.c:103
-#, c-format
-msgid "Your choice? (default `%s'%s) "
-msgstr "ĀæSu elecciĆ³n? (por defecto %s'%s) "
-
-#: ../../interactive_stdio.pm_.c:121
-#, c-format
-msgid "=> There are many things to choose from (%s).\n"
-msgstr "=> Hay muchas cosas para seleccionar (%s).\n"
-
-#: ../../interactive_stdio.pm_.c:124
-msgid ""
-"Please choose the first number of the 10-range you wish to edit,\n"
-"or just hit Enter to proceed.\n"
-"Your choice? "
-msgstr ""
-"Por favor, seleccione el primer nĆŗmero del rango de 10 que desee\n"
-"editar, o pulse Intro para continuar.\n"
-"ĀæSu elecciĆ³n?"
-
-#: ../../interactive_stdio.pm_.c:137
-#, c-format
-msgid ""
-"=> Notice, a label changed:\n"
-"%s"
-msgstr ""
-"=> Aviso, una etiqueta cambiĆ³:\n"
-"%s"
-
-#: ../../interactive_stdio.pm_.c:144
-msgid "Re-submit"
-msgstr "Reenviar"
-
-#: ../../keyboard.pm_.c:174 ../../keyboard.pm_.c:205
-msgid "Czech (QWERTZ)"
-msgstr "Checo (QWERTZ)"
-
-#: ../../keyboard.pm_.c:175 ../../keyboard.pm_.c:207
-msgid "German"
-msgstr "AlemĆn"
-
-#: ../../keyboard.pm_.c:176
-msgid "Dvorak"
-msgstr "Dvorak"
-
-#: ../../keyboard.pm_.c:177 ../../keyboard.pm_.c:214
-msgid "Spanish"
-msgstr "EspaƱol"
-
-#: ../../keyboard.pm_.c:178 ../../keyboard.pm_.c:215
-msgid "Finnish"
-msgstr "FinlandƩs"
-
-#: ../../keyboard.pm_.c:179 ../../keyboard.pm_.c:216
-msgid "French"
-msgstr "FrancƩs"
-
-#: ../../keyboard.pm_.c:180 ../../keyboard.pm_.c:241
-msgid "Norwegian"
-msgstr "Noruego"
-
-#: ../../keyboard.pm_.c:181
-msgid "Polish"
-msgstr "Polaco"
-
-#: ../../keyboard.pm_.c:182 ../../keyboard.pm_.c:249
-msgid "Russian"
-msgstr "Ruso"
-
-#: ../../keyboard.pm_.c:184 ../../keyboard.pm_.c:251
-msgid "Swedish"
-msgstr "Sueco"
-
-#: ../../keyboard.pm_.c:185 ../../keyboard.pm_.c:266
-msgid "UK keyboard"
-msgstr "BritĆnico"
-
-#: ../../keyboard.pm_.c:186 ../../keyboard.pm_.c:267
-msgid "US keyboard"
-msgstr "Estadounidense"
-
-#: ../../keyboard.pm_.c:188
-msgid "Albanian"
-msgstr "Albano"
-
-#: ../../keyboard.pm_.c:189
-msgid "Armenian (old)"
-msgstr "Armenio (antiguo)"
-
-#: ../../keyboard.pm_.c:190
-msgid "Armenian (typewriter)"
-msgstr "Armenio (nuevo)"
-
-#: ../../keyboard.pm_.c:191
-msgid "Armenian (phonetic)"
-msgstr "Armenio (fonƩtico)"
-
-#: ../../keyboard.pm_.c:196
-msgid "Azerbaidjani (latin)"
-msgstr "AzerbadjĆn (latĆ­n)"
-
-#: ../../keyboard.pm_.c:198
-msgid "Belgian"
-msgstr "Belga"
-
-#: ../../keyboard.pm_.c:199
-msgid "Bulgarian (phonetic)"
-msgstr "BĆŗlgaro (fonĆ©tico)"
-
-#: ../../keyboard.pm_.c:200
-msgid "Bulgarian (BDS)"
-msgstr "BĆŗlgaro (BDS)"
-
-#: ../../keyboard.pm_.c:201
-msgid "Brazilian (ABNT-2)"
-msgstr "BrasileƱo (ABNT-2)"
-
-#: ../../keyboard.pm_.c:202
-msgid "Belarusian"
-msgstr "Bielorruso"
-
-#: ../../keyboard.pm_.c:203
-msgid "Swiss (German layout)"
-msgstr "Suizo (germĆnico)"
-
-#: ../../keyboard.pm_.c:204
-msgid "Swiss (French layout)"
-msgstr "Suizo (francƩs)"
-
-#: ../../keyboard.pm_.c:206
-msgid "Czech (QWERTY)"
-msgstr "Checo (QWERTY)"
-
-#: ../../keyboard.pm_.c:208
-msgid "German (no dead keys)"
-msgstr "AlemĆn (sin teclas muertas)"
-
-#: ../../keyboard.pm_.c:209
-msgid "Danish"
-msgstr "DanƩs"
-
-#: ../../keyboard.pm_.c:210
-msgid "Dvorak (US)"
-msgstr "Dvorak (US)"
-
-#: ../../keyboard.pm_.c:211
-msgid "Dvorak (Norwegian)"
-msgstr "Dvorak (Noruego)"
-
-#: ../../keyboard.pm_.c:212
-msgid "Dvorak (Swedish)"
-msgstr "Dvorak (Sueco)"
-
-#: ../../keyboard.pm_.c:213
-msgid "Estonian"
-msgstr "Estonio"
-
-#: ../../keyboard.pm_.c:217
-msgid "Georgian (\"Russian\" layout)"
-msgstr "Georgiano (estilo \"ruso\")"
-
-#: ../../keyboard.pm_.c:218
-msgid "Georgian (\"Latin\" layout)"
-msgstr "Georgiano (estilo \"latĆ­n\")"
-
-#: ../../keyboard.pm_.c:219
-msgid "Greek"
-msgstr "Griego"
-
-#: ../../keyboard.pm_.c:220
-msgid "Hungarian"
-msgstr "HĆŗngaro"
-
-#: ../../keyboard.pm_.c:221
-msgid "Croatian"
-msgstr "Croata"
-
-#: ../../keyboard.pm_.c:222
-msgid "Israeli"
-msgstr "IsraelĆ­"
-
-#: ../../keyboard.pm_.c:223
-msgid "Israeli (Phonetic)"
-msgstr "Israelƭ (fonƩtico)"
-
-#: ../../keyboard.pm_.c:224
-msgid "Iranian"
-msgstr "IranĆ­"
-
-#: ../../keyboard.pm_.c:225
-msgid "Icelandic"
-msgstr "IslandƩs"
-
-#: ../../keyboard.pm_.c:226
-msgid "Italian"
-msgstr "Italiano"
-
-#: ../../keyboard.pm_.c:228
-msgid "Japanese 106 keys"
-msgstr "JaponƩs de 106 teclas"
-
-#: ../../keyboard.pm_.c:231
-msgid "Korean keyboard"
-msgstr "Coreano"
-
-#: ../../keyboard.pm_.c:232
-msgid "Latin American"
-msgstr "Latinoamericano"
-
-#: ../../keyboard.pm_.c:233
-msgid "Lithuanian AZERTY (old)"
-msgstr "Lituano AZERTY (antiguo)"
-
-#: ../../keyboard.pm_.c:235
-msgid "Lithuanian AZERTY (new)"
-msgstr "Lituano AZERTY (nuevo)"
-
-#: ../../keyboard.pm_.c:236
-msgid "Lithuanian \"number row\" QWERTY"
-msgstr "Lituano \"numƩrico\" QWERTY"
-
-#: ../../keyboard.pm_.c:237
-msgid "Lithuanian \"phonetic\" QWERTY"
-msgstr "Lituano \"fonƩtico\" QWERTY"
-
-#: ../../keyboard.pm_.c:238
-msgid "Latvian"
-msgstr "LetĆ³n"
-
-#: ../../keyboard.pm_.c:239
-msgid "Macedonian"
-msgstr "Macedonio"
-
-#: ../../keyboard.pm_.c:240
-msgid "Dutch"
-msgstr "HolandƩs"
-
-#: ../../keyboard.pm_.c:242
-msgid "Polish (qwerty layout)"
-msgstr "Polaco (distribuciĆ³n qwerty)"
-
-#: ../../keyboard.pm_.c:243
-msgid "Polish (qwertz layout)"
-msgstr "Polaco (distribuciĆ³n qwertz)"
-
-#: ../../keyboard.pm_.c:244
-msgid "Portuguese"
-msgstr "PortuguƩs"
-
-#: ../../keyboard.pm_.c:245
-msgid "Canadian (Quebec)"
-msgstr "Canadiense (Quebec)"
-
-#: ../../keyboard.pm_.c:247
-msgid "Romanian (qwertz)"
-msgstr "Rumano (qwertz)"
-
-#: ../../keyboard.pm_.c:248
-msgid "Romanian (qwerty)"
-msgstr "Rumano (qwerty)"
-
-#: ../../keyboard.pm_.c:250
-msgid "Russian (Yawerty)"
-msgstr "Ruso (Yawerty)"
-
-#: ../../keyboard.pm_.c:252
-msgid "Slovenian"
-msgstr "Esloveno"
-
-#: ../../keyboard.pm_.c:253
-msgid "Slovakian (QWERTZ)"
-msgstr "Eslovaco (QWERTZ)"
-
-#: ../../keyboard.pm_.c:254
-msgid "Slovakian (QWERTY)"
-msgstr "Eslovaco (QWERTY)"
-
-#: ../../keyboard.pm_.c:256
-msgid "Serbian (cyrillic)"
-msgstr "Serbio (cirĆ­lico)"
-
-#: ../../keyboard.pm_.c:258
-msgid "Tamil"
-msgstr "Tamil"
-
-#: ../../keyboard.pm_.c:259
-msgid "Thai keyboard"
-msgstr "Teclado tailandƩs"
-
-#: ../../keyboard.pm_.c:261
-msgid "Tajik keyboard"
-msgstr "Teclado tajik"
-
-#: ../../keyboard.pm_.c:262
-msgid "Turkish (traditional \"F\" model)"
-msgstr "Turco (modelo \"F\" tradicional)"
-
-#: ../../keyboard.pm_.c:263
-msgid "Turkish (modern \"Q\" model)"
-msgstr "Turco (modelo \"Q\" moderno)"
-
-#: ../../keyboard.pm_.c:265
-msgid "Ukrainian"
-msgstr "Ucraniano"
-
-#: ../../keyboard.pm_.c:268
-msgid "US keyboard (international)"
-msgstr "Estadounidense (internacional)"
-
-#: ../../keyboard.pm_.c:269
-msgid "Vietnamese \"numeric row\" QWERTY"
-msgstr "Vietnamita \"numƩrico\" QWERTY"
-
-#: ../../keyboard.pm_.c:270
-msgid "Yugoslavian (latin)"
-msgstr "Yugoslavo (latĆ­n)"
-
-#: ../../keyboard.pm_.c:278
-msgid "Right Alt key"
-msgstr "Tecla Alt derecha"
-
-#: ../../keyboard.pm_.c:279
-msgid "Both Shift keys simultaneously"
-msgstr "Ambas teclas Shift simultĆneamente"
-
-#: ../../keyboard.pm_.c:280
-msgid "Control and Shift keys simultaneously"
-msgstr "Las teclas Control y Shift simultĆneamente"
-
-#: ../../keyboard.pm_.c:281
-msgid "CapsLock key"
-msgstr "Tecla CapsLock"
-
-#: ../../keyboard.pm_.c:282
-msgid "Ctrl and Alt keys simultaneously"
-msgstr "Las teclas Ctrl y Alt simultĆneamente"
-
-#: ../../keyboard.pm_.c:283
-msgid "Alt and Shift keys simultaneously"
-msgstr "Las teclas Alt y Shift simultĆneamente"
-
-#: ../../keyboard.pm_.c:284
-msgid "\"Menu\" key"
-msgstr "La tecla \"MenĆŗ\""
-
-#: ../../keyboard.pm_.c:285
-msgid "Left \"Windows\" key"
-msgstr "Tecla \"Windows\" de la izquierda"
-
-#: ../../keyboard.pm_.c:286
-msgid "Right \"Windows\" key"
-msgstr "Tecla \"Windows\" de la derecha"
-
-#: ../../loopback.pm_.c:32
-#, c-format
-msgid "Circular mounts %s\n"
-msgstr "Montajes circulares %s\n"
-
-#: ../../lvm.pm_.c:88
-msgid "Remove the logical volumes first\n"
-msgstr "Quite los volĆŗmenes lĆ³gicos primero\n"
-
-#: ../../modules.pm_.c:826
-msgid ""
-"PCMCIA support no longer exist for 2.2 kernels. Please use a 2.4 kernel."
-msgstr ""
-"El soporte PCMCIA no existe en los nĆŗcleos 2.2. Por favor, utilice un nĆŗcleo "
-"2.4."
-
-#: ../../mouse.pm_.c:25
-msgid "Sun - Mouse"
-msgstr "RatĆ³n Sun"
-
-#: ../../mouse.pm_.c:32
-msgid "Logitech MouseMan+"
-msgstr "Logitech MouseMan+"
-
-#: ../../mouse.pm_.c:33
-msgid "Generic PS2 Wheel Mouse"
-msgstr "RatĆ³n genĆ©rico PS2 con rueda"
-
-#: ../../mouse.pm_.c:34
-msgid "GlidePoint"
-msgstr "GlidePoint"
-
-#: ../../mouse.pm_.c:36 ../../mouse.pm_.c:63
-msgid "Kensington Thinking Mouse"
-msgstr "Kensington Thinking Mouse"
-
-#: ../../mouse.pm_.c:37 ../../mouse.pm_.c:59
-msgid "Genius NetMouse"
-msgstr "Genius NetMouse"
-
-#: ../../mouse.pm_.c:38
-msgid "Genius NetScroll"
-msgstr "Genius NetScroll"
-
-#: ../../mouse.pm_.c:43 ../../mouse.pm_.c:68
-msgid "1 button"
-msgstr "1 botĆ³n"
-
-#: ../../mouse.pm_.c:44 ../../mouse.pm_.c:51
-msgid "Generic 2 Button Mouse"
-msgstr "RatĆ³n de 2 botones genĆ©rico"
-
-#: ../../mouse.pm_.c:45
-msgid "Generic"
-msgstr "GenƩrico"
-
-#: ../../mouse.pm_.c:46
-msgid "Wheel"
-msgstr "Rueda"
-
-#: ../../mouse.pm_.c:49
-msgid "serial"
-msgstr "serie"
-
-#: ../../mouse.pm_.c:52
-msgid "Generic 3 Button Mouse"
-msgstr "RatĆ³n de 3 botones genĆ©rico"
-
-#: ../../mouse.pm_.c:53
-msgid "Microsoft IntelliMouse"
-msgstr "Microsoft IntelliMouse"
-
-#: ../../mouse.pm_.c:54
-msgid "Logitech MouseMan"
-msgstr "Logitech MouseMan"
-
-#: ../../mouse.pm_.c:55
-msgid "Mouse Systems"
-msgstr "Mouse Systems"
-
-#: ../../mouse.pm_.c:57
-msgid "Logitech CC Series"
-msgstr "Logitech CC Series"
-
-#: ../../mouse.pm_.c:58
-msgid "Logitech MouseMan+/FirstMouse+"
-msgstr "Logitech MouseMan+/FirstMouse+"
-
-#: ../../mouse.pm_.c:60
-msgid "MM Series"
-msgstr "MM Series"
-
-#: ../../mouse.pm_.c:61
-msgid "MM HitTablet"
-msgstr "MM HitTablet"
-
-#: ../../mouse.pm_.c:62
-msgid "Logitech Mouse (serial, old C7 type)"
-msgstr "RatĆ³n Logitech (serie, antiguo tipo C7)"
-
-#: ../../mouse.pm_.c:66
-msgid "busmouse"
-msgstr "ratĆ³n bus"
-
-#: ../../mouse.pm_.c:69
-msgid "2 buttons"
-msgstr "2 botones"
-
-#: ../../mouse.pm_.c:70
-msgid "3 buttons"
-msgstr "3 botones"
-
-#: ../../mouse.pm_.c:73
-msgid "none"
-msgstr "ninguno"
-
-#: ../../mouse.pm_.c:75
-msgid "No mouse"
-msgstr "Sin ratĆ³n"
-
-#: ../../mouse.pm_.c:499
-msgid "Please test the mouse"
-msgstr "Pruebe su ratĆ³n, por favor."
-
-#: ../../mouse.pm_.c:500
-msgid "To activate the mouse,"
-msgstr "Para activar el ratĆ³n,"
-
-#: ../../mouse.pm_.c:501
-msgid "MOVE YOUR WHEEL!"
-msgstr "ĀMUEVA SU RUEDA!"
-
-#: ../../my_gtk.pm_.c:651
-msgid "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"
-msgstr "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"
-
-#: ../../my_gtk.pm_.c:686
-msgid "Finish"
-msgstr "Finalizar"
-
-#: ../../my_gtk.pm_.c:686 ../../printerdrake.pm_.c:1588
-msgid "Next ->"
-msgstr "Siguiente ->"
-
-#: ../../my_gtk.pm_.c:687 ../../printerdrake.pm_.c:1586
-msgid "<- Previous"
-msgstr "<- Anterior"
-
-#: ../../my_gtk.pm_.c:1019
-msgid "Is this correct?"
-msgstr "ĀæEs correcto?"
-
-#: ../../network/adsl.pm_.c:19 ../../network/ethernet.pm_.c:36
-msgid "Connect to the Internet"
-msgstr "Conectar a Internet"
-
-#: ../../network/adsl.pm_.c:20
-msgid ""
-"The most common way to connect with adsl is pppoe.\n"
-"Some connections use pptp, a few ones use dhcp.\n"
-"If you don't know, choose 'use pppoe'"
-msgstr ""
-"La forma mĆs comĆŗn de conexiĆ³n ADSL es con pppoe.\n"
-"Algunas conexiones usan pptp, otras pocas usan dhcp.\n"
-"Si no lo sabe con seguridad, elija 'usar pppoe'"
-
-#: ../../network/adsl.pm_.c:22
-msgid "Alcatel speedtouch usb"
-msgstr "Alcatel Speedtouch usb"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use dhcp"
-msgstr "usar dhcp"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pppoe"
-msgstr "usar pppoe"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pptp"
-msgstr "usar pptp"
-
-#: ../../network/ethernet.pm_.c:37
-msgid ""
-"Which dhcp client do you want to use?\n"
-"Default is dhcpcd"
-msgstr ""
-"ĀæQuĆ© cliente dhcp desea utilizar?\n"
-"dhcpcd es el predeterminado"
-
-#: ../../network/ethernet.pm_.c:88
-msgid ""
-"No ethernet network adapter has been detected on your system.\n"
-"I cannot set up this connection type."
-msgstr ""
-"No se ha detectado ningĆŗn adaptador de red ethernet en su sistema.\n"
-"No se puede configurar este tipo de conexiĆ³n."
-
-#: ../../network/ethernet.pm_.c:92 ../../standalone/drakgw_.c:252
-msgid "Choose the network interface"
-msgstr "Elija la interfaz de red"
-
-#: ../../network/ethernet.pm_.c:93
-msgid ""
-"Please choose which network adapter you want to use to connect to Internet"
-msgstr ""
-"Por favor, elija el adaptador de red que desea usar para conectarse a "
-"Internet"
-
-#: ../../network/ethernet.pm_.c:178
-msgid "no network card found"
-msgstr "no se encontrĆ³ ninguna tarjeta de red"
-
-#: ../../network/ethernet.pm_.c:202 ../../network/network.pm_.c:360
-msgid "Configuring network"
-msgstr "Configurando la red"
-
-#: ../../network/ethernet.pm_.c:203
-msgid ""
-"Please enter your host name if you know it.\n"
-"Some DHCP servers require the hostname to work.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''."
-msgstr ""
-"Por favor introduzca el nombre de su mĆquina (host) si lo conoce.\n"
-"Algunos servidores DHCP necesitan del nombre de la mĆquina para funcionar.\n"
-"El nombre de su mĆquina deberĆ­a ser un nombre de mĆquina clasificado "
-"completamente,\n"
-"como \"mimaquina.milabo.micompa.com\"."
-
-#: ../../network/ethernet.pm_.c:207 ../../network/network.pm_.c:365
-msgid "Host name"
-msgstr "Nombre de la mĆquina"
-
-#: ../../network/isdn.pm_.c:21 ../../network/isdn.pm_.c:44
-#: ../../network/netconnect.pm_.c:95 ../../network/netconnect.pm_.c:109
-#: ../../network/netconnect.pm_.c:164 ../../network/netconnect.pm_.c:175
-#: ../../network/netconnect.pm_.c:202 ../../network/netconnect.pm_.c:225
-#: ../../network/netconnect.pm_.c:233
-msgid "Network Configuration Wizard"
-msgstr "Asistente para la configuraciĆ³n de la red"
-
-#: ../../network/isdn.pm_.c:22
-msgid "External ISDN modem"
-msgstr "MĆ³dem RDSI externo"
-
-#: ../../network/isdn.pm_.c:22
-msgid "Internal ISDN card"
-msgstr "Tarjeta RDSI interna"
-
-#: ../../network/isdn.pm_.c:22
-msgid "What kind is your ISDN connection?"
-msgstr "ĀæDe quĆ© tipo es su conexiĆ³n RDSI?"
-
-#: ../../network/isdn.pm_.c:45
-msgid ""
-"Which ISDN configuration do you prefer?\n"
-"\n"
-"* The Old configuration uses isdn4net. It contains powerfull\n"
-" tools, but is tricky to configure, and not standard.\n"
-"\n"
-"* The New configuration is easier to understand, more\n"
-" standard, but with less tools.\n"
-"\n"
-"We recommand the light configuration.\n"
-msgstr ""
-"ĀæQuĆ© configuraciĆ³n de RDSI prefiere?\n"
-"\n"
-"* La configuraciĆ³n antigua utiliza isdn4net. Tiene herramientas\n"
-" poderosas, pero es algo complicada de configurar para un reciƩn \n"
-" llegado, y no es estĆndar.\n"
-"* La configuraciĆ³n nueva es mĆs fĆcil de entender, mĆs estĆndar,\n"
-" pero con menos herramientas.\n"
-"\n"
-"Le recomendamos la configuraciĆ³n ligera (esto es, la nueva).\n"
-
-#: ../../network/isdn.pm_.c:54
-msgid "New configuration (isdn-light)"
-msgstr "ConfiguraciĆ³n nueva (isdn-light)"
-
-#: ../../network/isdn.pm_.c:54
-msgid "Old configuration (isdn4net)"
-msgstr "ConfiguraciĆ³n antigua (isdn4net)"
-
-#: ../../network/isdn.pm_.c:170 ../../network/isdn.pm_.c:188
-#: ../../network/isdn.pm_.c:198 ../../network/isdn.pm_.c:205
-#: ../../network/isdn.pm_.c:215
-msgid "ISDN Configuration"
-msgstr "ConfiguraciĆ³n de RDSI"
-
-#: ../../network/isdn.pm_.c:170
-msgid ""
-"Select your provider.\n"
-" If it's not in the list, choose Unlisted"
-msgstr ""
-"Seleccione su proveedor.\n"
-" Si no estĆ en la lista, elija No listado"
-
-#: ../../network/isdn.pm_.c:183
-msgid "Europe protocol"
-msgstr "Protocolo de Europa"
-
-#: ../../network/isdn.pm_.c:183
-msgid "Europe protocol (EDSS1)"
-msgstr "Protocolo de Europa (EDSS1)"
-
-#: ../../network/isdn.pm_.c:185
-msgid "Protocol for the rest of the world"
-msgstr "Protocolo para el resto del mundo"
-
-#: ../../network/isdn.pm_.c:185
-msgid ""
-"Protocol for the rest of the world \n"
-" no D-Channel (leased lines)"
-msgstr ""
-"Protocolo para el resto del mundo \n"
-" sin canal D (lĆ­neas alquiladas)"
-
-#: ../../network/isdn.pm_.c:189
-msgid "Which protocol do you want to use ?"
-msgstr "ĀæQuĆ© protocolo desea utilizar?"
-
-#: ../../network/isdn.pm_.c:199
-msgid "What kind of card do you have?"
-msgstr "ĀæQuĆ© tipo de tarjeta tiene?"
-
-#: ../../network/isdn.pm_.c:200
-msgid "I don't know"
-msgstr "No lo sƩ"
-
-#: ../../network/isdn.pm_.c:200
-msgid "ISA / PCMCIA"
-msgstr "ISA / PCMCIA"
-
-#: ../../network/isdn.pm_.c:200
-msgid "PCI"
-msgstr "PCI"
-
-#: ../../network/isdn.pm_.c:206
-msgid ""
-"\n"
-"If you have an ISA card, the values on the next screen should be right.\n"
-"\n"
-"If you have a PCMCIA card, you have to know the irq and io of your card.\n"
-msgstr ""
-"\n"
-"Si tiene una tarjeta ISA, los valores de la prĆ³xima pantalla deberĆ­an ser "
-"correctos.\n"
-"\n"
-"Si tiene una tarjeta PCMCIA, tiene que saber la irq y la e/s de su tarjeta.\n"
-
-#: ../../network/isdn.pm_.c:210
-msgid "Abort"
-msgstr "Abortar"
-
-#: ../../network/isdn.pm_.c:210
-msgid "Continue"
-msgstr "Continuar"
-
-#: ../../network/isdn.pm_.c:216
-msgid "Which is your ISDN card ?"
-msgstr "ĀæCuĆl es su tarjeta RDSI?"
-
-#: ../../network/isdn.pm_.c:235
-msgid ""
-"I have detected an ISDN PCI Card, but I don't know the type. Please select "
-"one PCI card on the next screen."
-msgstr ""
-"Se ha detectado una tarjeta RDSI PCI, pero no se conoce el tipo. Por favor, "
-"seleccione una tarjeta PCI en la pantalla siguiente."
-
-#: ../../network/isdn.pm_.c:244
-msgid "No ISDN PCI card found. Please select one on the next screen."
-msgstr ""
-"No se encontrĆ³ tarjeta PCI RDSI. Por favor, seleccione una en la pantalla "
-"siguiente."
-
-#: ../../network/modem.pm_.c:39
-msgid "Please choose which serial port your modem is connected to."
-msgstr "Seleccione el puerto serie al que estĆ conectado su mĆ³dem."
-
-#: ../../network/modem.pm_.c:44
-msgid "Dialup options"
-msgstr "Opciones de llamada por mĆ³dem"
-
-#: ../../network/modem.pm_.c:45 ../../standalone/draknet_.c:622
-msgid "Connection name"
-msgstr "Nombre de la conexiĆ³n"
-
-#: ../../network/modem.pm_.c:46 ../../standalone/draknet_.c:623
-msgid "Phone number"
-msgstr "NĆŗmero de telĆ©fono"
-
-#: ../../network/modem.pm_.c:47 ../../standalone/draknet_.c:624
-msgid "Login ID"
-msgstr "ID de conexiĆ³n"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "CHAP"
-msgstr "CHAP"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "PAP"
-msgstr "PAP"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Script-based"
-msgstr "Por script"
-
-#: ../../network/modem.pm_.c:49 ../../standalone/draknet_.c:626
-msgid "Terminal-based"
-msgstr "Por terminal"
-
-#: ../../network/modem.pm_.c:50 ../../standalone/draknet_.c:627
-msgid "Domain name"
-msgstr "Nombre de dominio"
-
-#: ../../network/modem.pm_.c:51 ../../standalone/draknet_.c:628
-msgid "First DNS Server (optional)"
-msgstr "Primer servidor DNS (opcional)"
-
-#: ../../network/modem.pm_.c:52 ../../standalone/draknet_.c:629
-msgid "Second DNS Server (optional)"
-msgstr "Segundo servidor DNS (opcional)"
-
-#: ../../network/netconnect.pm_.c:34
-msgid ""
-"\n"
-"You can disconnect or reconfigure your connection."
-msgstr ""
-"\n"
-"Puede desconectarse o volver a configurar su conexiĆ³n."
-
-#: ../../network/netconnect.pm_.c:34 ../../network/netconnect.pm_.c:37
-msgid ""
-"\n"
-"You can reconfigure your connection."
-msgstr ""
-"\n"
-"Puede volver a configurar su conexiĆ³n."
-
-#: ../../network/netconnect.pm_.c:34
-msgid "You are currently connected to internet."
-msgstr "Ahora estĆ conectado a Internet."
-
-#: ../../network/netconnect.pm_.c:37
-msgid ""
-"\n"
-"You can connect to Internet or reconfigure your connection."
-msgstr ""
-"\n"
-"Se puede conectar a Internet o volver a configurar su conexiĆ³n."
-
-#: ../../network/netconnect.pm_.c:37
-msgid "You are not currently connected to Internet."
-msgstr "Ahora no estĆ conectado a Internet."
-
-#: ../../network/netconnect.pm_.c:41
-msgid "Connect"
-msgstr "Conectar"
-
-#: ../../network/netconnect.pm_.c:43
-msgid "Disconnect"
-msgstr "Desconectar"
-
-#: ../../network/netconnect.pm_.c:45
-msgid "Configure the connection"
-msgstr "Configurar la conexiĆ³n"
-
-#: ../../network/netconnect.pm_.c:50
-msgid "Internet connection & configuration"
-msgstr "ConfiguraciĆ³n y conexiĆ³n a Internet"
-
-#: ../../network/netconnect.pm_.c:100
-#, c-format
-msgid "We are now going to configure the %s connection."
-msgstr "Ahora vamos a configurar la conexiĆ³n %s."
-
-#: ../../network/netconnect.pm_.c:109
-#, c-format
-msgid ""
-"\n"
-"\n"
-"\n"
-"We are now going to configure the %s connection.\n"
-"\n"
-"\n"
-"Press OK to continue."
-msgstr ""
-"\n"
-"\n"
-"\n"
-"Ahora vamos a configurar la conexiĆ³n %s.\n"
-"\n"
-"\n"
-"Pulse siguiente para continuar."
-
-#: ../../network/netconnect.pm_.c:138 ../../network/netconnect.pm_.c:252
-#: ../../network/netconnect.pm_.c:271 ../../network/tools.pm_.c:57
-msgid "Network Configuration"
-msgstr "ConfiguraciĆ³n de la red"
-
-#: ../../network/netconnect.pm_.c:139
-msgid ""
-"Because you are doing a network installation, your network is already "
-"configured.\n"
-"Click on Ok to keep your configuration, or cancel to reconfigure your "
-"Internet & Network connection.\n"
-msgstr ""
-"Puesto que estĆ realizando una instalaciĆ³n por red, su red ya estĆ "
-"configurada.\n"
-"Haga clic sobre aceptar para mantener su configuraciĆ³n, o pulse cancelar "
-"para\n"
-"volver a configurar sus conexiones de red y a Internet.\n"
-
-#: ../../network/netconnect.pm_.c:165
-msgid ""
-"Welcome to The Network Configuration Wizard\n"
-"\n"
-"We are about to configure your internet/network connection.\n"
-"If you don't want to use the auto detection, deselect the checkbox.\n"
-msgstr ""
-"Bienvenido al asistente para la configuraciĆ³n de la red\n"
-"\n"
-"Estamos a punto de configurar su conexiĆ³n de red/Internet.\n"
-"Si no desea usar la detecciĆ³n automĆtica, desmarque la casilla.\n"
-
-#: ../../network/netconnect.pm_.c:167
-msgid "Choose the profile to configure"
-msgstr "Elija el perfil a configurar"
-
-#: ../../network/netconnect.pm_.c:168
-msgid "Use auto detection"
-msgstr "Usar detecciĆ³n automĆtica"
-
-#: ../../network/netconnect.pm_.c:175
-msgid "Detecting devices..."
-msgstr "Detectando los dispositivos..."
-
-#: ../../network/netconnect.pm_.c:186 ../../network/netconnect.pm_.c:195
-msgid "Normal modem connection"
-msgstr "ConexiĆ³n normal por mĆ³dem"
-
-#: ../../network/netconnect.pm_.c:186 ../../network/netconnect.pm_.c:195
-#, c-format
-msgid "detected on port %s"
-msgstr "detectada en el puerto %s"
-
-#: ../../network/netconnect.pm_.c:187 ../../network/netconnect.pm_.c:196
-msgid "ISDN connection"
-msgstr "ConexiĆ³n RDSI"
-
-#: ../../network/netconnect.pm_.c:187 ../../network/netconnect.pm_.c:196
-#, c-format
-msgid "detected %s"
-msgstr "detectada %s"
-
-#: ../../network/netconnect.pm_.c:188 ../../network/netconnect.pm_.c:197
-msgid "ADSL connection"
-msgstr "ConexiĆ³n ADSL"
-
-#: ../../network/netconnect.pm_.c:188 ../../network/netconnect.pm_.c:197
-#, c-format
-msgid "detected on interface %s"
-msgstr "detectada en la interfaz %s"
-
-#: ../../network/netconnect.pm_.c:189 ../../network/netconnect.pm_.c:198
-msgid "Cable connection"
-msgstr "ConexiĆ³n por cable"
-
-#: ../../network/netconnect.pm_.c:189 ../../network/netconnect.pm_.c:198
-msgid "cable connection detected"
-msgstr "detectada conexiĆ³n por cable"
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-msgid "LAN connection"
-msgstr "ConexiĆ³n a la red local"
-
-#: ../../network/netconnect.pm_.c:190 ../../network/netconnect.pm_.c:199
-msgid "ethernet card(s) detected"
-msgstr "tarjeta(s) de red detectada(s)"
-
-#: ../../network/netconnect.pm_.c:202
-msgid "Choose the connection you want to configure"
-msgstr "Elija la conexiĆ³n que desea configurar"
-
-#: ../../network/netconnect.pm_.c:226
-msgid ""
-"You have configured multiple ways to connect to the Internet.\n"
-"Choose the one you want to use.\n"
-"\n"
-msgstr ""
-"Ha configurado mĆŗltiples formas de conectarse a Internet.\n"
-"Seleccione la que quiere utilizar.\n"
-"\n"
-
-#: ../../network/netconnect.pm_.c:227
-msgid "Internet connection"
-msgstr "ConexiĆ³n a Internet"
-
-#: ../../network/netconnect.pm_.c:233
-msgid "Do you want to start the connection at boot?"
-msgstr "ĀæDesea iniciar su conexiĆ³n al arrancar?"
-
-#: ../../network/netconnect.pm_.c:247
-msgid "Network configuration"
-msgstr "ConfiguraciĆ³n de la red"
-
-#: ../../network/netconnect.pm_.c:248
-msgid "The network needs to be restarted"
-msgstr "La red necesita ser reiniciada"
-
-#: ../../network/netconnect.pm_.c:252
-#, c-format
-msgid ""
-"A problem occured while restarting the network: \n"
-"\n"
-"%s"
-msgstr ""
-"OcurriĆ³ un problema mientras se reiniciaba la red: \n"
-"\n"
-"%s"
-
-#: ../../network/netconnect.pm_.c:261
-msgid ""
-"Congratulations, the network and Internet configuration is finished.\n"
-"The configuration will now be applied to your system.\n"
-"\n"
-msgstr ""
-"Felicidades, la configuraciĆ³n de la red y de Internet ha terminado.\n"
-"\n"
-"Ahora se aplicarĆ la configuraciĆ³n a su sistema.\n"
-
-#: ../../network/netconnect.pm_.c:265
-msgid ""
-"After this is done, we recommend that you restart your X environment to "
-"avoid any hostname-related problems."
-msgstr ""
-"DespuƩs de esto, se recomienda que reinicie su entorno X\n"
-"para evitar el problema del cambio del nombre de la mĆquina."
-
-#: ../../network/netconnect.pm_.c:266
-msgid ""
-"Problems occured during configuration.\n"
-"Test your connection via net_monitor or mcc. If your connection doesn't "
-"work, you might want to relaunch the configuration"
-msgstr ""
-"Ocurrieron problemas durante la configuraciĆ³n.\n"
-"Verifique su conexiĆ³n con net_monitor o mcc. Si su conexiĆ³n no funciona, "
-"puede que desee volver a iniciar la configuraciĆ³n"
-
-#: ../../network/network.pm_.c:292
-msgid ""
-"WARNING: This device has been previously configured to connect to the "
-"Internet.\n"
-"Simply accept to keep this device configured.\n"
-"Modifying the fields below will override this configuration."
-msgstr ""
-"ADVERTENCIA: Previamente se ha configurado este dispositivo para conectarse "
-"con Internet.\n"
-"Simplemente acepte para mantener la configuraciĆ³n del dispositivo.\n"
-"Al modificar los campos de abajo se ignorarĆ esta configuraciĆ³n."
-
-#: ../../network/network.pm_.c:297
-msgid ""
-"Please enter the IP configuration for this machine.\n"
-"Each item should be entered as an IP address in dotted-decimal\n"
-"notation (for example, 1.2.3.4)."
-msgstr ""
-"Por favor, introduzca la direcciĆ³n IP de esta mĆquina.\n"
-"Cada valor tiene que introducirse como una direcciĆ³n IP en notaciĆ³n\n"
-"decimal con puntos (por ejemplo: 1.2.3.4)."
-
-#: ../../network/network.pm_.c:306 ../../network/network.pm_.c:307
-#, c-format
-msgid "Configuring network device %s"
-msgstr "Configurando el dispositivo de red %s"
-
-#: ../../network/network.pm_.c:307
-#, c-format
-msgid " (driver %s)"
-msgstr " (controlador %s)"
-
-#: ../../network/network.pm_.c:309 ../../standalone/draknet_.c:232
-#: ../../standalone/draknet_.c:468
-msgid "IP address"
-msgstr "DirecciĆ³n IP"
-
-#: ../../network/network.pm_.c:310 ../../standalone/draknet_.c:469
-msgid "Netmask"
-msgstr "MĆscara de red"
-
-#: ../../network/network.pm_.c:311
-msgid "(bootp/dhcp)"
-msgstr "(bootp/dhcp)"
-
-#: ../../network/network.pm_.c:311
-msgid "Automatic IP"
-msgstr "DirecciĆ³n IP automĆtica"
-
-#: ../../network/network.pm_.c:332 ../../printerdrake.pm_.c:712
-msgid "IP address should be in format 1.2.3.4"
-msgstr "Las direcciones IP deben estar en el formato 1.2.3.4"
-
-#: ../../network/network.pm_.c:361
-msgid ""
-"Please enter your host name.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''.\n"
-"You may also enter the IP address of the gateway if you have one"
-msgstr ""
-"Por favor, defina el nombre de su mĆquina.\n"
-"El nombre de su mĆquina deberĆ­a ser un nombre de mĆquina clasificado "
-"completamente,\n"
-"como \"mimaquina.milabo.micompa.com\".TambiĆ©n puede introducir la direcciĆ³n "
-"IP de la pasarela si tiene una"
-
-#: ../../network/network.pm_.c:366
-msgid "DNS server"
-msgstr "Servidor DNS"
-
-#: ../../network/network.pm_.c:367
-#, c-format
-msgid "Gateway (e.g. %s)"
-msgstr "Pasarela de red (ej %s)"
-
-#: ../../network/network.pm_.c:369
-msgid "Gateway device"
-msgstr "Dispositivo de pasarela de red"
-
-#: ../../network/network.pm_.c:381
-msgid "Proxies configuration"
-msgstr "ConfiguraciĆ³n de los proxies"
-
-#: ../../network/network.pm_.c:382
-msgid "HTTP proxy"
-msgstr "Proxy HTTP"
-
-#: ../../network/network.pm_.c:383
-msgid "FTP proxy"
-msgstr "Proxy FTP"
-
-#: ../../network/network.pm_.c:384
-msgid "Track network card id (usefull for laptops)"
-msgstr "Id tarjeta de red (Ćŗtil para portĆtiles)"
-
-#: ../../network/network.pm_.c:387
-msgid "Proxy should be http://..."
-msgstr "El nombre del proxy debe ser http://..."
-
-#: ../../network/network.pm_.c:388
-msgid "Proxy should be ftp://..."
-msgstr "El nombre del proxy debe ser ftp://..."
-
-#: ../../network/tools.pm_.c:39
-msgid "Internet configuration"
-msgstr "ConfiguraciĆ³n de Internet"
-
-#: ../../network/tools.pm_.c:40
-msgid "Do you want to try to connect to the Internet now?"
-msgstr "ĀæDesea intentar conectarse a Internet ahora?"
-
-#: ../../network/tools.pm_.c:44 ../../standalone/draknet_.c:197
-msgid "Testing your connection..."
-msgstr "Probando su conexiĆ³n..."
-
-#: ../../network/tools.pm_.c:50
-msgid "The system is now connected to Internet."
-msgstr "Ahora no estĆ conectado a Internet."
-
-#: ../../network/tools.pm_.c:51
-msgid "For Security reason, it will be disconnected now."
-msgstr "Por motivos de seguridad, ahora serĆ desconectado."
-
-#: ../../network/tools.pm_.c:52
-msgid ""
-"The system doesn't seem to be connected to internet.\n"
-"Try to reconfigure your connection."
-msgstr ""
-"El sistema no parece estar conectado al Internet.\n"
-"Intente volver a configurar su conexiĆ³n."
-
-#: ../../network/tools.pm_.c:76
-msgid "Connection Configuration"
-msgstr "ConfiguraciĆ³n de la conexiĆ³n"
-
-#: ../../network/tools.pm_.c:77
-msgid "Please fill or check the field below"
-msgstr "Por favor, complete o verifique el campo de abajo"
-
-#: ../../network/tools.pm_.c:79 ../../standalone/draknet_.c:608
-msgid "Card IRQ"
-msgstr "IRQ de la tarjeta"
-
-#: ../../network/tools.pm_.c:80 ../../standalone/draknet_.c:609
-msgid "Card mem (DMA)"
-msgstr "Memoria (DMA) de la tarjeta"
-
-#: ../../network/tools.pm_.c:81 ../../standalone/draknet_.c:610
-msgid "Card IO"
-msgstr "E/S de la tarjeta"
-
-#: ../../network/tools.pm_.c:82 ../../standalone/draknet_.c:611
-msgid "Card IO_0"
-msgstr "E/S_0 de la tarjeta"
-
-#: ../../network/tools.pm_.c:83 ../../standalone/draknet_.c:612
-msgid "Card IO_1"
-msgstr "E/S_1 de la tarjeta"
-
-#: ../../network/tools.pm_.c:84 ../../standalone/draknet_.c:613
-msgid "Your personal phone number"
-msgstr "Su nĆŗmero de telĆ©fono personal"
-
-#: ../../network/tools.pm_.c:85 ../../standalone/draknet_.c:614
-msgid "Provider name (ex provider.net)"
-msgstr "Nombre del proveedor (ej proveedor.net)"
-
-#: ../../network/tools.pm_.c:86 ../../standalone/draknet_.c:615
-msgid "Provider phone number"
-msgstr "NĆŗmero de telĆ©fono del proveedor"
-
-#: ../../network/tools.pm_.c:87 ../../standalone/draknet_.c:616
-msgid "Provider dns 1 (optional)"
-msgstr "DNS 1 del proveedor (opcional)"
-
-#: ../../network/tools.pm_.c:88 ../../standalone/draknet_.c:617
-msgid "Provider dns 2 (optional)"
-msgstr "DNS 2 del proveedor (opcional)"
-
-#: ../../network/tools.pm_.c:89
-msgid "Choose your country"
-msgstr "Elija su paĆ­s"
-
-#: ../../network/tools.pm_.c:90 ../../standalone/draknet_.c:620
-msgid "Dialing mode"
-msgstr "Modo de marcaciĆ³n"
-
-#: ../../network/tools.pm_.c:91 ../../standalone/draknet_.c:632
-msgid "Connection speed"
-msgstr "Velocidad de la conexiĆ³n"
-
-#: ../../network/tools.pm_.c:92 ../../standalone/draknet_.c:633
-msgid "Connection timeout (in sec)"
-msgstr "Demora de la conexiĆ³n (en seg)"
-
-#: ../../network/tools.pm_.c:93 ../../standalone/draknet_.c:618
-msgid "Account Login (user name)"
-msgstr "Usuario de la cuenta (nombre de usuario)"
-
-#: ../../network/tools.pm_.c:94 ../../standalone/draknet_.c:619
-msgid "Account Password"
-msgstr "ContraseƱa de la cuenta"
-
-#: ../../partition_table.pm_.c:600
-msgid "mount failed: "
-msgstr "mount fallĆ³: "
-
-#: ../../partition_table.pm_.c:664
-msgid "Extended partition not supported on this platform"
-msgstr "La particiĆ³n extendida no estĆ disponible en esta plataforma"
-
-#: ../../partition_table.pm_.c:682
-msgid ""
-"You have a hole in your partition table but I can't use it.\n"
-"The only solution is to move your primary partitions to have the hole next "
-"to the extended partitions"
-msgstr ""
-"Tiene un hueco en la tabla de particiones, pero no se puede usar.\n"
-"La Ćŗnica soluciĆ³n es desplazar sus particiones primarias para que el hueco "
-"estƩ despuƩs de las particiones extendidas"
-
-#: ../../partition_table.pm_.c:770
-#, c-format
-msgid "Restoring from file %s failed: %s"
-msgstr "FallĆ³ la restauraciĆ³n a partir del archivo %s: %s"
-
-#: ../../partition_table.pm_.c:772
-msgid "Bad backup file"
-msgstr "Archivo de respaldo incorrecto"
-
-#: ../../partition_table.pm_.c:794
-#, c-format
-msgid "Error writing to file %s"
-msgstr "Error al escribir en el archivo %s"
-
-#: ../../partition_table_raw.pm_.c:186
-msgid ""
-"Something bad is happening on your drive. \n"
-"A test to check the integrity of data has failed. \n"
-"It means writing anything on the disk will end up with random trash"
-msgstr ""
-"EstĆ ocurriendo algo malo en su disco. \n"
-"Ha fallado una prueba para verificar la integridad de los datos. \n"
-"Esto significa que escribir cualquier cosa en el disco terminarĆ produciendo "
-"basura al azar"
-
-#: ../../pkgs.pm_.c:24
-msgid "must have"
-msgstr "necesario"
-
-#: ../../pkgs.pm_.c:25
-msgid "important"
-msgstr "importante"
-
-#: ../../pkgs.pm_.c:26
-msgid "very nice"
-msgstr "muy bueno"
-
-#: ../../pkgs.pm_.c:27
-msgid "nice"
-msgstr "bueno"
-
-#: ../../pkgs.pm_.c:28
-msgid "maybe"
-msgstr "quizĆs"
-
-#: ../../printer.pm_.c:23
-msgid "CUPS - Common Unix Printing System"
-msgstr ""
-"CUPS - Common Unix Printing System (Sistema de impresiĆ³n comĆŗn de Unix)"
-
-#: ../../printer.pm_.c:24
-msgid "LPRng - LPR New Generation"
-msgstr "LPRng - LPR de nueva generaciĆ³n"
-
-#: ../../printer.pm_.c:25
-msgid "LPD - Line Printer Daemon"
-msgstr "LPD - Line Printer Daemon (Demonio de impresora de lĆ­neas)"
-
-#: ../../printer.pm_.c:26
-msgid "PDQ - Print, Don't Queue"
-msgstr "PDQ - Print, Don't Queue (Imprimir, no encolar)"
-
-#: ../../printer.pm_.c:32 ../../printer.pm_.c:871
-msgid "CUPS"
-msgstr "CUPS"
-
-#: ../../printer.pm_.c:33
-msgid "LPRng"
-msgstr "LPRng"
-
-#: ../../printer.pm_.c:34
-msgid "LPD"
-msgstr "LPD"
-
-#: ../../printer.pm_.c:35
-msgid "PDQ"
-msgstr "PDQ"
-
-#: ../../printer.pm_.c:47
-msgid "Local printer"
-msgstr "Impresora local"
-
-#: ../../printer.pm_.c:48
-msgid "Remote printer"
-msgstr "Impresora remota"
-
-#: ../../printer.pm_.c:49
-msgid "Printer on remote CUPS server"
-msgstr "Impresora en un servidor CUPS remoto"
-
-#: ../../printer.pm_.c:50 ../../printerdrake.pm_.c:734
-msgid "Printer on remote lpd server"
-msgstr "Impresora en un servidor lpd remoto"
-
-#: ../../printer.pm_.c:51
-msgid "Network printer (TCP/Socket)"
-msgstr "Impresora de red (TCP/Socket)"
-
-#: ../../printer.pm_.c:52
-msgid "Printer on SMB/Windows 95/98/NT server"
-msgstr "Impresora en un servidor SMB/Windows 95/98/NT"
-
-#: ../../printer.pm_.c:53
-msgid "Printer on NetWare server"
-msgstr "Impresora en un servidor NetWare"
-
-#: ../../printer.pm_.c:54 ../../printerdrake.pm_.c:738
-msgid "Enter a printer device URI"
-msgstr "Introduzca el URI del dispositivo de impresiĆ³n"
-
-#: ../../printer.pm_.c:55
-msgid "Pipe job into a command"
-msgstr "Filtrar el trabajo en un comando"
-
-#: ../../printer.pm_.c:504 ../../printer.pm_.c:695 ../../printer.pm_.c:1017
-#: ../../printerdrake.pm_.c:1665 ../../printerdrake.pm_.c:2730
-msgid "Unknown model"
-msgstr "Modelo desconocido"
-
-#: ../../printer.pm_.c:532
-msgid "Local Printers"
-msgstr "Impresoras locales"
-
-#: ../../printer.pm_.c:534 ../../printer.pm_.c:872
-msgid "Remote Printers"
-msgstr "Impresoras remotas"
-
-#: ../../printer.pm_.c:541 ../../printerdrake.pm_.c:248
-#, c-format
-msgid " on parallel port \\/*%s"
-msgstr " en el puerto paralelo \\/*%s"
-
-#: ../../printer.pm_.c:544 ../../printerdrake.pm_.c:250
-#, c-format
-msgid ", USB printer \\/*%s"
-msgstr ", impresora USB \\/*%s"
-
-#: ../../printer.pm_.c:549
-#, c-format
-msgid ", multi-function device on parallel port \\/*%s"
-msgstr ", dispositivo multifunciĆ³n en puerto paralelo \\/*%s"
-
-#: ../../printer.pm_.c:552
-msgid ", multi-function device on USB"
-msgstr ", dispositivo multi-funciĆ³n en USB"
-
-#: ../../printer.pm_.c:554
-msgid ", multi-function device on HP JetDirect"
-msgstr ", dispositivo multifunciĆ³n en HP JetDirect"
-
-#: ../../printer.pm_.c:556
-msgid ", multi-function device"
-msgstr ", dispositivo multifunciĆ³n"
-
-#: ../../printer.pm_.c:559
-#, c-format
-msgid ", printing to %s"
-msgstr ", imprimiendo en %s"
-
-#: ../../printer.pm_.c:561
-#, c-format
-msgid "on LPD server \"%s\", printer \"%s\""
-msgstr " en servidor LDP \"%s\", impresora \"%s\""
-
-#: ../../printer.pm_.c:563
-#, c-format
-msgid ", TCP/IP host \"%s\", port %s"
-msgstr ", host TCP/IP \"%s\", puerto \"%s\""
-
-#: ../../printer.pm_.c:567
-#, c-format
-msgid "on Windows server \"%s\", share \"%s\""
-msgstr " en servidor Windows \"%s\", compartida como \"%s\""
-
-#: ../../printer.pm_.c:571
-#, c-format
-msgid "on Novell server \"%s\", printer \"%s\""
-msgstr "en servidor Novell \"%s\", impresora \"%s\""
-
-#: ../../printer.pm_.c:573
-#, c-format
-msgid ", using command %s"
-msgstr ", usando comando %s"
-
-#: ../../printer.pm_.c:692 ../../printerdrake.pm_.c:1136
-msgid "Raw printer (No driver)"
-msgstr "Impresora \"en crudo\" (sin controlador)"
-
-#: ../../printer.pm_.c:841
-#, c-format
-msgid "(on %s)"
-msgstr "(en %s)"
-
-#: ../../printer.pm_.c:843
-msgid "(on this machine)"
-msgstr "(en esta mĆquina)"
-
-#: ../../printer.pm_.c:868
-#, c-format
-msgid "On CUPS server \"%s\""
-msgstr "En servidor CUPS \"%s\""
-
-#: ../../printer.pm_.c:874 ../../printerdrake.pm_.c:2391
-#: ../../printerdrake.pm_.c:2402 ../../printerdrake.pm_.c:2618
-#: ../../printerdrake.pm_.c:2670 ../../printerdrake.pm_.c:2697
-#: ../../printerdrake.pm_.c:2867 ../../printerdrake.pm_.c:2869
-msgid " (Default)"
-msgstr " (Por defecto)"
-
-#: ../../printerdrake.pm_.c:22
-msgid "Select Printer Connection"
-msgstr "Seleccione la conexiĆ³n de la impresora"
-
-#: ../../printerdrake.pm_.c:23
-msgid "How is the printer connected?"
-msgstr "ĀæComo estĆ conectada la impresora?"
-
-#: ../../printerdrake.pm_.c:25
-msgid ""
-"\n"
-"Printers on remote CUPS servers you do not have to configure here; these "
-"printers will be automatically detected."
-msgstr ""
-"\n"
-"AquĆ­ no tiene que configurar las impresoras en los servidores CUPS remotos; "
-"las mismas se detectarĆn automĆticamente."
-
-#: ../../printerdrake.pm_.c:69 ../../printerdrake.pm_.c:2454
-msgid "CUPS configuration"
-msgstr "ConfiguraciĆ³n de CUPS"
-
-#: ../../printerdrake.pm_.c:70 ../../printerdrake.pm_.c:2455
-msgid "Specify CUPS server"
-msgstr "Especificar servidor CUPS"
-
-#: ../../printerdrake.pm_.c:71
-msgid ""
-"To get access to printers on remote CUPS servers in your local network you "
-"do not have to configure anything; the CUPS servers inform your machine "
-"automatically about their printers. All printers currently known to your "
-"machine are listed in the \"Remote printers\" section in the main window of "
-"Printerdrake. When your CUPS server is not in your local network, you have "
-"to enter the CUPS server IP address and optionally the port number to get "
-"the printer information from the server, otherwise leave these fields blank."
-msgstr ""
-"Para obtener acceso a las impresoras en servidores CUPS remotos en su red "
-"local nada tiene que configurar; los servidores CUPS le informan a su "
-"mĆquina automĆticamente sobre sus impresoras. En la secciĆ³n \"Impresoras "
-"remotas\" de la ventana principal de Printerdrake se listan todas las "
-"impresoras que su mĆquina conoce. Cuando CUPS no estĆ en la red local, tiene "
-"que ingresar la direcciĆ³n IP del servidor CUPS y, opcionalmente, el nĆŗmero "
-"de puerto para obtener la informaciĆ³n de la impresora desde el servidor, de "
-"lo contrario, deje los campos en blanco."
-
-#: ../../printerdrake.pm_.c:72
-msgid ""
-"\n"
-"Normally, CUPS is automatically configured according to your network "
-"environment, so that you can access the printers on the CUPS servers in your "
-"local network. If this does not work correctly, turn off \"Automatic CUPS "
-"configuration\" and edit your file /etc/cups/cupsd.conf manually. Do not "
-"forget to restart CUPS afterwards (command: \"service cups restart\")."
-msgstr ""
-"\n"
-"Normalmente, CUPS se configura automĆticamente de acuerdo con su\n"
-"entorno de red, para que pueda acceder a las impresoras de los\n"
-"servidores CUPS de su red local. Si esto no funciona correctamente,\n"
-"desactive la \"ConfiguraciĆ³n automĆtica de CUPS\" y edite manualmente\n"
-"su archivo /etc/cups/cupsd.conf. No olvide reiniciar CUPS tras esto\n"
-"(comando: \"service cups restart\")."
-
-#: ../../printerdrake.pm_.c:76
-msgid "The IP address should look like 192.168.1.20"
-msgstr "Las direcciones IP deberĆ­an parecerse a 192.168.1.20"
-
-#: ../../printerdrake.pm_.c:80 ../../printerdrake.pm_.c:862
-msgid "The port number should be an integer!"
-msgstr "ĀEl nĆŗmero de puerto debe ser un nĆŗmero entero!"
-
-#: ../../printerdrake.pm_.c:87
-msgid "CUPS server IP"
-msgstr "IP del servidor CUPS"
-
-#: ../../printerdrake.pm_.c:88 ../../printerdrake.pm_.c:855
-msgid "Port"
-msgstr "Puerto"
-
-#: ../../printerdrake.pm_.c:90
-msgid "Automatic CUPS configuration"
-msgstr "ConfiguraciĆ³n automĆtica de CUPS"
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-msgid "Detecting devices ..."
-msgstr "Detectando dispositivos..."
-
-#: ../../printerdrake.pm_.c:145 ../../standalone/scannerdrake_.c:42
-msgid "Test ports"
-msgstr "Probar puertos"
-
-#: ../../printerdrake.pm_.c:167 ../../printerdrake.pm_.c:2437
-#: ../../printerdrake.pm_.c:2556
-msgid "Add a new printer"
-msgstr "AƱadir una impresora nueva"
-
-#: ../../printerdrake.pm_.c:168
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard allows you to install local or remote printers to be used from "
-"this machine and also from other machines in the network.\n"
-"\n"
-"It asks you for all necessary information to set up the printer and gives "
-"you access to all available printer drivers, driver options, and printer "
-"connection types."
-msgstr ""
-"\n"
-"Bienvenido al asistente de configuraciĆ³n de la impresora\n"
-"\n"
-"Este asistente le permite instalar impresoras locales o remotas para usarlas "
-"desde esta mĆquina y tambiĆ©n desde otras mĆquinas de la red.\n"
-"\n"
-"Se le solicitarĆ la informaciĆ³n necesaria para configurar la impresora y "
-"darle acceso a los controladores de todas las impresoras disponibles, "
-"opciones del controlador y tipos de conexiĆ³n de impresoras."
-
-#: ../../printerdrake.pm_.c:176 ../../printerdrake.pm_.c:203
-#: ../../printerdrake.pm_.c:378 ../../printerdrake.pm_.c:393
-#: ../../printerdrake.pm_.c:403 ../../printerdrake.pm_.c:466
-msgid "Local Printer"
-msgstr "Impresora local"
-
-#: ../../printerdrake.pm_.c:177
-msgid ""
-"\n"
-"Welcome to the Printer Setup Wizard\n"
-"\n"
-"This wizard will help you to install your printer(s) connected to this "
-"computer.\n"
-"\n"
-"Please plug in your printer(s) on this computer and turn it/them on. Click "
-"on \"Next\" when you are ready, and on \"Cancel\" when you do not want to "
-"set up your printer(s) now.\n"
-"\n"
-"Note that some computers can crash during the printer auto-detection, turn "
-"off \"Auto-detect printers\" to do a printer installation without auto-"
-"detection. Use the \"Expert Mode\" of printerdrake when you want to set up "
-"printing on a remote printer if printerdrake does not list it automatically."
-msgstr ""
-"\n"
-"Bienvenido al asistente de configuraciĆ³n de la impresora\n"
-"\n"
-"Este asistente le ayudarĆ a instalar su(s) impresora(s) conectada(s) a esta "
-"computadora.\n"
-"\n"
-"Por favor, conecte su(s) impresora(s) a este ordenador y enciƩndala(s). Haga "
-"clic en \"Siguiente\" cuando estƩ listo, y en \"Cancelar\" si no quiere "
-"configurar ahora su(s) impresora(s).\n"
-"\n"
-"FĆ­jese en que algunas computadoras pueden colgarse durante la detecciĆ³n "
-"automĆtica de la impresora. En este caso, desactive \"Detectar las "
-"impresoras automĆticamente\" para hacer una instalaciĆ³n sin detecciĆ³n "
-"automĆtica. Use el \"Modo experto\" de printerdrake si quiere configurar la "
-"impresiĆ³n en una impresora remota si printerdrake no la lista "
-"automĆticamente."
-
-#: ../../printerdrake.pm_.c:186
-msgid "Auto-detect printers"
-msgstr "DetecciĆ³n automĆtica de impresoras"
-
-#: ../../printerdrake.pm_.c:204
-msgid ""
-"\n"
-"Congratulations, your printer is now installed and configured!\n"
-"\n"
-"You can print using the \"Print\" command of your application (usually in "
-"the \"File\" menu).\n"
-"\n"
-"If you want to add, remove, or rename a printer, or if you want to change "
-"the default option settings (paper input tray, printout quality, ...), "
-"select \"Printer\" in the \"Hardware\" section of the Mandrake Control "
-"Center."
-msgstr ""
-"\n"
-"Enhorabuena, su impresora estĆ instalada y configurada.\n"
-"\n"
-"Puede imprimir usando el comando \"Imprimir\" de su aplicaciĆ³n (normalmente "
-"se encuentra en el menĆŗ \"Archivo\").\n"
-"\n"
-"Si quiere aƱadir, borrar o renombrar una impresora, o si quiere cambiar las "
-"opciones de configuraciĆ³n por defecto (bandeja de entrada de papel, calidad "
-"de impresiĆ³n, ...), seleccione \"Impresora\" en la secciĆ³n de \"Hardware\" "
-"del Centro de control de Mandrake."
-
-#: ../../printerdrake.pm_.c:223
-msgid "Auto-Detection of Printers"
-msgstr "AutodetecciĆ³n de impresoras."
-
-#: ../../printerdrake.pm_.c:224
-msgid ""
-"Printerdrake is able to auto-detect your locally connected parallel and USB "
-"printers for you, but note that on some systems the auto-detection CAN "
-"FREEZE YOUR SYSTEM AND THIS CAN LEAD TO CORRUPTED FILE SYSTEMS! So do it ON "
-"YOUR OWN RISK!\n"
-"\n"
-"Do you really want to get your printers auto-detected?"
-msgstr ""
-"Printerdrake puede detectar automĆticamente sus impresoras de puerto "
-"paralelo y USB conectadas localmente, pero fĆ­jese en que en algunos sistemas "
-"esto PUEDE COLGAR EL SISTEMA E INCLUSO CORROMPER SUS SITEMAS DE ARCHIVOS. "
-"Entonces, HĆGALO BAJO SU PROPIO RIESGO.\n"
-"\n"
-"ĀæSeguro que desea detectar automĆticamente sus impresoras?"
-
-#: ../../printerdrake.pm_.c:227 ../../printerdrake.pm_.c:229
-#: ../../printerdrake.pm_.c:230
-msgid "Do auto-detection"
-msgstr "Realizar detecciĆ³n automĆtica"
-
-#: ../../printerdrake.pm_.c:228
-msgid "Set up printer manually"
-msgstr "Configurar la impresora manualmente"
-
-#: ../../printerdrake.pm_.c:256
-#, c-format
-msgid "Detected %s"
-msgstr "Detectada %s"
-
-#: ../../printerdrake.pm_.c:260 ../../printerdrake.pm_.c:287
-#: ../../printerdrake.pm_.c:306
-#, c-format
-msgid "Printer on parallel port \\/*%s"
-msgstr "Impresora en puerto paralelo \\/*%s"
-
-#: ../../printerdrake.pm_.c:262 ../../printerdrake.pm_.c:289
-#: ../../printerdrake.pm_.c:311
-#, c-format
-msgid "USB printer \\/*%s"
-msgstr "Impresora USB \\/*%s"
-
-#: ../../printerdrake.pm_.c:379
-msgid ""
-"No local printer found! To manually install a printer enter a device name/"
-"file name in the input line (Parallel Ports: /dev/lp0, /dev/lp1, ..., "
-"equivalent to LPT1:, LPT2:, ..., 1st USB printer: /dev/usb/lp0, 2nd USB "
-"printer: /dev/usb/lp1, ...)."
-msgstr ""
-"No se encontrĆ³ ninguna impresora local. Para instalar una manualmente, "
-"introduzca un nombre de dispositivo/nombre de archivo en la lĆ­nea de entrada "
-"(Puertos paralelos: /dev/lp0, /dev/lp1, ..., equivalen a LPT1:, LPT2, ..., "
-"1ĀŖ impresora USB: /dev/usb/lp0, 2ĀŖ impresora USB: /dev/usb/lp1, ...)."
-
-#: ../../printerdrake.pm_.c:383
-msgid "You must enter a device or file name!"
-msgstr "Debe introducir un dispositivo un un nombre de archivo"
-
-#: ../../printerdrake.pm_.c:394
-msgid ""
-"No local printer found!\n"
-"\n"
-msgstr ""
-"ĀNo se encontrarĆ³ ninguna impresora local!\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:395
-msgid ""
-"Network printers can only be installed after the installation. Choose "
-"\"Hardware\" and then \"Printer\" in the Mandrake Control Center."
-msgstr ""
-"Las impresoras en red sĆ³lo se pueden instalar tras la inslaciĆ³n. Seleccione "
-"\"Hardware\" y luego \"Impresora\" en el Centro de control de Mandrake."
-
-#: ../../printerdrake.pm_.c:396
-msgid ""
-"To install network printers, click \"Cancel\", switch to the \"Expert Mode"
-"\", and click \"Add a new printer\" again."
-msgstr ""
-"Para instalar impresoras en red, haga clic en \"Cancelar\", cambie al \"Modo "
-"experto\", y haga clic en \"AƱadir una nueva impresora\" de nuevo."
-
-#: ../../printerdrake.pm_.c:407
-msgid ""
-"The following printer was auto-detected, if it is not the one you want to "
-"configure, enter a device name/file name in the input line"
-msgstr ""
-"Se detectĆ³ automĆticamente la siguiente impresora, si no es una de las que "
-"quiere configurar, introduzca en la lĆ­nea de entrada un nombre de "
-"dispositivo/nombre de archivo en la lĆ­nea de entrada"
-
-#: ../../printerdrake.pm_.c:408
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up or enter a device name/file name in the input line"
-msgstr ""
-"AquĆ­ tiene una lista de todas las impresoras detectadas automĆticamente. Por "
-"favor, seleccione la impresora que quiere configurar o introduzca un nombre "
-"de dispositivo/nombre de archivo en la lĆ­nea de entrada"
-
-#: ../../printerdrake.pm_.c:410
-msgid ""
-"The following printer was auto-detected. The configuration of the printer "
-"will work fully automatically. If your printer was not correctly detected or "
-"if you prefer a customized printer configuration, turn on \"Manual "
-"configuration\"."
-msgstr ""
-"La siguiente impresora se detectĆ³ automĆticamente. La configuraciĆ³n de la "
-"impresora se harĆ de forma totalmente automatizada. Si su impresora no se "
-"detectĆ³ correctamente o si prefiere una configuraciĆ³n personalizada, active "
-"la \"ConfiguraciĆ³n manual\"."
-
-#: ../../printerdrake.pm_.c:411
-msgid ""
-"Here is a list of all auto-detected printers. Please choose the printer you "
-"want to set up. The configuration of the printer will work fully "
-"automatically. If your printer was not correctly detected or if you prefer a "
-"customized printer configuration, turn on \"Manual configuration\"."
-msgstr ""
-"AquĆ­ tiene una lista de las impresoras detectadas automĆticamente. Por "
-"favor, seleccione la impresora que quiera configurar. La configuraciĆ³n de la "
-"impresora se harĆ de forma totalmente automatizada. Si su impresora no se "
-"detectĆ³ correctamente o si prefiere una configuraciĆ³n personalizada, active "
-"la \"ConfiguraciĆ³n manual\"."
-
-#: ../../printerdrake.pm_.c:413
-msgid ""
-"Please choose the port where your printer is connected to or enter a device "
-"name/file name in the input line"
-msgstr ""
-"Por favor, elija el puerto donde estĆ conectada su impresora o ingrese el "
-"nombre de un dispositivo o archivo en la lĆ­nea de entrada"
-
-#: ../../printerdrake.pm_.c:414
-msgid "Please choose the port where your printer is connected to."
-msgstr "Por favor, elija el puerto al que estĆ conectado su impresora."
-
-#: ../../printerdrake.pm_.c:416
-msgid ""
-" (Parallel Ports: /dev/lp0, /dev/lp1, ..., equivalent to LPT1:, LPT2:, ..., "
-"1st USB printer: /dev/usb/lp0, 2nd USB printer: /dev/usb/lp1, ...)."
-msgstr ""
-"(Puertos paralelo: /dev/lp0, /dev/lp1, ..., equivalen a LPT1:, LPT2, ..., "
-"1er impresora USB: /dev/usb/lp0, 2da impresora USB: /dev/usb/lp1, ...) "
-
-#: ../../printerdrake.pm_.c:421
-msgid "You must choose/enter a printer/device!"
-msgstr "ĀDebe elegir/ingresar una impresora o un dispositivo!"
-
-#: ../../printerdrake.pm_.c:441
-msgid "Manual configuration"
-msgstr "ConfiguraciĆ³n manual"
-
-#: ../../printerdrake.pm_.c:467
-msgid ""
-"Is your printer a multi-function device from HP (OfficeJet, PSC, PhotoSmart, "
-"LaserJet 1100/1200/1220/3200/3300 with scanner)?"
-msgstr ""
-"ĀæEs su impresora un dispositivo multifunciĆ³n de HP (OfficeJet, PSC, "
-"PhotoSmart LaserJet 1100/1200/1220/3200/3300 con escĆner)?"
-
-#: ../../printerdrake.pm_.c:482
-msgid "Installing HPOJ package..."
-msgstr "Instalando el paquete HPOJ..."
-
-#: ../../printerdrake.pm_.c:487
-msgid "Checking device and configuring HPOJ ..."
-msgstr "Verificando el dispositivo y configurando HPOJ ..."
-
-#: ../../printerdrake.pm_.c:505
-msgid "Installing SANE package..."
-msgstr "Instalando el paquete SANE..."
-
-#: ../../printerdrake.pm_.c:517
-msgid "Scanning on your HP multi-function device"
-msgstr "Escaneando en su dispositivo multifunciĆ³n de HP"
-
-#: ../../printerdrake.pm_.c:534
-msgid "Making printer port available for CUPS ..."
-msgstr "Haciendo que el puerto de impresora estƩ disponible para CUPS ..."
-
-#: ../../printerdrake.pm_.c:544 ../../printerdrake.pm_.c:1018
-#: ../../printerdrake.pm_.c:1132
-msgid "Reading printer database ..."
-msgstr "Leyendo base de datos de impresoras ..."
-
-#: ../../printerdrake.pm_.c:624
-msgid "Remote lpd Printer Options"
-msgstr "Opciones de la impresora remota lpd"
-
-#: ../../printerdrake.pm_.c:625
-msgid ""
-"To use a remote lpd printer, you need to supply the hostname of the printer "
-"server and the printer name on that server."
-msgstr ""
-"Para utilizar impresora LPD remota, necesita proporcionar el nombre de host "
-"del servidor de impresiĆ³n y el nombre de la impresora en ese servidor."
-
-#: ../../printerdrake.pm_.c:626
-msgid "Remote host name"
-msgstr "Nombre de host del servidor remoto"
-
-#: ../../printerdrake.pm_.c:627
-msgid "Remote printer name"
-msgstr "Nombre de la impresora remota"
-
-#: ../../printerdrake.pm_.c:630
-msgid "Remote host name missing!"
-msgstr "ĀFalta el nombre del host remoto!"
-
-#: ../../printerdrake.pm_.c:634
-msgid "Remote printer name missing!"
-msgstr "ĀFalta el nombre de la impresora remota!"
-
-#: ../../printerdrake.pm_.c:702
-msgid "SMB (Windows 9x/NT) Printer Options"
-msgstr "Opciones de la impresora SMB (Windows 9x/NT)"
-
-#: ../../printerdrake.pm_.c:703
-msgid ""
-"To print to a SMB printer, you need to provide the SMB host name (Note! It "
-"may be different from its TCP/IP hostname!) and possibly the IP address of "
-"the print server, as well as the share name for the printer you wish to "
-"access and any applicable user name, password, and workgroup information."
-msgstr ""
-"Para imprimir en una impresora SMB, necesita proporcionar el nombre del "
-"servidor SMB (ĀNote que puede ser diferente al nombre de hostTCP/IP del "
-"mismo!) y posiblemente la direcciĆ³n IP del servidor de impresiĆ³n, asĆ­ como "
-"el nombre del recurso compartido para la impresora que se quiere usar y "
-"cualquier otra informaciĆ³n del nombre de usuario, contraseƱa y grupo de "
-"trabajo que haga falta."
-
-#: ../../printerdrake.pm_.c:704
-msgid "SMB server host"
-msgstr "MĆquina del servidor SMB"
-
-#: ../../printerdrake.pm_.c:705
-msgid "SMB server IP"
-msgstr "IP del servidor SMB"
-
-#: ../../printerdrake.pm_.c:706
-msgid "Share name"
-msgstr "Nombre del recurso compartido"
-
-#: ../../printerdrake.pm_.c:709
-msgid "Workgroup"
-msgstr "Grupo de trabajo"
-
-#: ../../printerdrake.pm_.c:716
-msgid "Either the server name or the server's IP must be given!"
-msgstr "ĀDebe indicar el nombre o la direcciĆ³n IP del servidor!"
-
-#: ../../printerdrake.pm_.c:720
-msgid "Samba share name missing!"
-msgstr "ĀNo se encuentra el nombre del recurso compartido de Samba!"
-
-#: ../../printerdrake.pm_.c:725
-msgid "SECURITY WARNING!"
-msgstr "ĀADVERTENCIA DE SEGURIDAD!"
-
-#: ../../printerdrake.pm_.c:726
-#, c-format
-msgid ""
-"You are about to set up printing to a Windows account with password. Due to "
-"a fault in the architecture of the Samba client software the password is put "
-"in clear text into the command line of the Samba client used to transmit the "
-"print job to the Windows server. So it is possible for every user on this "
-"machine to display the password on the screen by issuing commands as \"ps "
-"auxwww\".\n"
-"\n"
-"We recommend to make use of one of the following alternatives (in all cases "
-"you have to make sure that only machines from your local network have access "
-"to your Windows server, for example by means of a firewall):\n"
-"\n"
-"Use a password-less account on your Windows server, as the \"GUEST\" account "
-"or a special account dedicated for printing. Do not remove the password "
-"protection from a personal account or the administrator account.\n"
-"\n"
-"Set up your Windows server to make the printer available under the LPD "
-"protocol. Then set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr ""
-"EstĆ a punto de configurar la impresiĆ³n a una cuenta Windows con contraseƱa. Debido a una falla en la arquitectura del cliente Samba la contraseƱa se pone como texto plano en la lĆ­nea de comandos del cliente Samba que se usa para transmitir el trabajo de impresiĆ³n al servidor Windows. Por lo tanto, es posible que cada usuario de esta mĆquina vea la clave en pantalla ejecutando \"ps auxwww\".\n"
-"\n"
-"Recomendamos utilizar alguna de las alternativas siguientes (en todos los casos tiene que asegurarse que sĆ³lo las mĆquinas de su red local tienen acceso al servidor Windows, por ejemplo utilizando un cortafuegos):\n"
-"\n"
-"Usar una cuenta sin contraseƱa en su servidor Windows, por ej. la cuenta \"GUEST\" o una cuenta especial dedicada a la impresiĆ³n. No quite la protecciĆ³n con contraseƱa de una cuenta personal o de la cuenta del administrador.\n"
-"\n"
-"Configure a su servidor Windows para que la impresiĆ³n estĆ© disponible bajo el protocolo LPD y configure la impresiĆ³n desde esta mĆquina bajo el tipo de conexiĆ³n \"%s\" en PrinterDrake.\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:736
-#, c-format
-msgid ""
-"Set up your Windows server to make the printer available under the IPP "
-"protocol and set up printing from this machine with the \"%s\" connection "
-"type in Printerdrake.\n"
-"\n"
-msgstr "Configure a su servidor Windows para que la impresiĆ³n estĆ© disponible bajo el protocolo IPP y configure la impresiĆ³n desde esta mĆquina bajo el tipo de conexiĆ³n \"%s\" en PrinterDrake.\n\n"
-
-#: ../../printerdrake.pm_.c:739
-msgid ""
-"Connect your printer to a Linux server and let your Windows machine(s) "
-"connect to it as a client.\n"
-"\n"
-"Do you really want to continue setting up this printer as you are doing now?"
-msgstr ""
-"Conecte su impresora a un servidor Linux y permita que su(s) mĆquina(s) Windows se conecten al mismo como un cliente.\n"
-"\n"
-"ĀæRealmente desea continuar configurando esta impresora como lo estĆ haciendo?"
-
-#: ../../printerdrake.pm_.c:801
-msgid "NetWare Printer Options"
-msgstr "Opciones de la impresora NetWare"
-
-#: ../../printerdrake.pm_.c:802
-msgid ""
-"To print on a NetWare printer, you need to provide the NetWare print server "
-"name (Note! it may be different from its TCP/IP hostname!) as well as the "
-"print queue name for the printer you wish to access and any applicable user "
-"name and password."
-msgstr ""
-"Para imprimir en una impresora NetWare, es necesario escribir el nombre del "
-"servidor de impresiĆ³n NetWare (ĀNote que puede no ser el mismo que el nombre "
-"de la mĆquina en TCP/IP) asĆ­ como el nombre de la cola de impresiĆ³n que "
-"desea usar y el nombre de usuario y la contraseƱa apropiados."
-
-#: ../../printerdrake.pm_.c:803
-msgid "Printer Server"
-msgstr "Servidor de impresiĆ³n"
-
-#: ../../printerdrake.pm_.c:804
-msgid "Print Queue Name"
-msgstr "Nombre de la cola de impresiĆ³n"
-
-#: ../../printerdrake.pm_.c:809
-msgid "NCP server name missing!"
-msgstr "ĀNo se encuentra el nombre del servidor NCP!"
-
-#: ../../printerdrake.pm_.c:813
-msgid "NCP queue name missing!"
-msgstr "ĀNo se encuentra la cola del servidor NCP!"
-
-#: ../../printerdrake.pm_.c:852
-msgid "TCP/Socket Printer Options"
-msgstr "Opciones de la impresora por socket/TCP"
-
-#: ../../printerdrake.pm_.c:853
-msgid ""
-"To print to a TCP or socket printer, you need to provide the host name of "
-"the printer and optionally the port number. On HP JetDirect servers the port "
-"number is usually 9100, on other servers it can vary. See the manual of your "
-"hardware."
-msgstr ""
-"Para imprimir en una impresora por socket o TCP, necesita proporcionar el "
-"nombre de host de la impresora y opcionalmente el nĆŗmero de puerto. En "
-"servidores HP JetDirect el nĆŗmero de puerto por lo general es 9100, en otros "
-"servidores puede variar. Consulte el manual de su hardware."
-
-#: ../../printerdrake.pm_.c:854
-msgid "Printer host name"
-msgstr "Nombre de host de la impresora"
-
-#: ../../printerdrake.pm_.c:858
-msgid "Printer host name missing!"
-msgstr "ĀNo se encuentra el nombre de la mĆquina de la impresora!"
-
-#: ../../printerdrake.pm_.c:887 ../../printerdrake.pm_.c:889
-msgid "Printer Device URI"
-msgstr "URI del dispositivo de impresiĆ³n"
-
-#: ../../printerdrake.pm_.c:888
-msgid ""
-"You can specify directly the URI to access the printer. The URI must fulfill "
-"either the CUPS or the Foomatic specifications. Note that not all URI types "
-"are supported by all the spoolers."
-msgstr ""
-"Puede especificar directamente el URI para acceder a la impresora. El URI "
-"debe cumplir con las especificaciones Foomatic o CUPS. Recuerde que no todos "
-"los sistemas de impresiĆ³n admiten URIs."
-
-#: ../../printerdrake.pm_.c:903
-msgid "A valid URI must be entered!"
-msgstr "ĀDebe introducir un URI vĆlido!"
-
-#: ../../printerdrake.pm_.c:1004
-msgid ""
-"Every printer needs a name (for example \"printer\"). The Description and "
-"Location fields do not need to be filled in. They are comments for the users."
-msgstr ""
-"Cada impresora necesita un nombre (por ejemplo, \"impresora\"). No tiene por "
-"quĆ© rellenar los campos DescripciĆ³n ni UbicaciĆ³n. Son comentarios para los "
-"usuarios."
-
-#: ../../printerdrake.pm_.c:1005
-msgid "Name of printer"
-msgstr "Nombre de la impresora"
-
-#: ../../printerdrake.pm_.c:1006
-msgid "Description"
-msgstr "DescripciĆ³n"
-
-#: ../../printerdrake.pm_.c:1007
-msgid "Location"
-msgstr "UbicaciĆ³n"
-
-#: ../../printerdrake.pm_.c:1021
-msgid "Preparing printer database ..."
-msgstr "Preparando base de datos de impresoras ..."
-
-#: ../../printerdrake.pm_.c:1112
-msgid "Your printer model"
-msgstr "El modelo de su impresora"
-
-#: ../../printerdrake.pm_.c:1113
-#, c-format
-msgid ""
-"Printerdrake has compared the model name resulting from the printer auto-"
-"detection with the models listed in its printer database to find the best "
-"match. This choice can be wrong, especially when your printer is not listed "
-"at all in the database. So check whether the choice is correct and click "
-"\"The model is correct\" if so and if not, click \"Select model manually\" "
-"so that you can choose your printer model manually on the next screen.\n"
-"\n"
-"For your printer Printerdrake has found:\n"
-"\n"
-"%s"
-msgstr ""
-"Printerdrake ha comparado el modelo que resultĆ³ de la detecciĆ³n automĆtica "
-"con los modelos listados en su base de datos de impresoras para encontrar la "
-"mejor coincidencia. Esta elecciĆ³n puede estar equivocada, especialmente si "
-"su impresora no estĆ listada en absoluto en la base de datos. Entonces, "
-"verifique si la elecciĆ³n es correcta y haga clic en \"El modelo es correcto"
-"\" , caso contrario, haga clic en \"Seleccionar el modelo manualmente\" de "
-"forma tal que pueda elegir el modelo de su impresora manualmente en la "
-"pantalla siguiente.\n"
-"\n"
-"Para su impresora Printerdrake ha encontrado:\n"
-"\n"
-"%s"
-
-#: ../../printerdrake.pm_.c:1118 ../../printerdrake.pm_.c:1121
-msgid "The model is correct"
-msgstr "El modelo es correcto"
-
-#: ../../printerdrake.pm_.c:1119 ../../printerdrake.pm_.c:1120
-#: ../../printerdrake.pm_.c:1123
-msgid "Select model manually"
-msgstr "Seleccionar el modelo manualmente"
-
-#: ../../printerdrake.pm_.c:1139
-msgid "Printer model selection"
-msgstr "SelecciĆ³n del modelo de impresora"
-
-#: ../../printerdrake.pm_.c:1140
-msgid "Which printer model do you have?"
-msgstr "ĀæQuĆ© modelo de impresora tiene?"
-
-#: ../../printerdrake.pm_.c:1141
-msgid ""
-"\n"
-"\n"
-"Please check whether Printerdrake did the auto-detection of your printer "
-"model correctly. Search the correct model in the list when the cursor is "
-"standing on a wrong model or on \"Raw printer\"."
-msgstr ""
-"\n"
-"\n"
-"Por favor, verifique que Printerdrake hizo correctamente la detecciĆ³n "
-"automĆtica del modelo de su impresora. Busque el modelo correcto en la lista "
-"si el cursor estĆ sobre un modelo equivocado o si estĆ en \"Impresora en "
-"crudo\"."
-
-#: ../../printerdrake.pm_.c:1144
-msgid ""
-"If your printer is not listed, choose a compatible (see printer manual) or a "
-"similar one."
-msgstr ""
-"Si no se lista su impresora, elija una compatible (vea el manual de la "
-"misma) o una simliar."
-
-#: ../../printerdrake.pm_.c:1220
-msgid "OKI winprinter configuration"
-msgstr "ConfiguraciĆ³n de impresora de windows OKI"
-
-#: ../../printerdrake.pm_.c:1221
-msgid ""
-"You are configuring an OKI laser winprinter. These printers\n"
-"use a very special communication protocol and therefore they work only when "
-"connected to the first parallel port. When your printer is connected to "
-"another port or to a print server box please connect the printer to the "
-"first parallel port before you print a test page. Otherwise the printer will "
-"not work. Your connection type setting will be ignored by the driver."
-msgstr ""
-"Va a configurar una impresora laser de windows OKI. Estas impresoras\n"
-"utilizan un protocolo de comunicaciĆ³n muy especial y sĆ³lo funcionan cuando "
-"se conectan al primer puerto paralelo. Cuando su impresora estĆ conectada a "
-"otro puerto o a un servidor de impresiĆ³n, por favor conĆ©ctela al primer "
-"puerto paralelo antes de imprimir una pĆgina de prueba. De no ser asĆ­, la "
-"impresora no funcionarĆ. El controlador ignorarĆ la configuraciĆ³n del tipo "
-"de conexiĆ³n."
-
-#: ../../printerdrake.pm_.c:1264 ../../printerdrake.pm_.c:1291
-msgid "Lexmark inkjet configuration"
-msgstr "ConfiguraciĆ³n de impresora de inyecciĆ³n de tinta Lexmark"
-
-#: ../../printerdrake.pm_.c:1265
-msgid ""
-"The inkjet printer drivers provided by Lexmark only support local printers, "
-"no printers on remote machines or print server boxes. Please connect your "
-"printer to a local port or configure it on the machine where it is connected "
-"to."
-msgstr ""
-"Los controladores de impresiĆ³n de inkjet que proporciona Lexmark sĆ³lo "
-"admiten impresoras locales, no impresoras en mĆquinas remotas o servidores "
-"de impresiĆ³n. Por favor, conecte su impresora a un puerto local o "
-"configĆŗrelo en la mĆquina a la que estĆ conectada."
-
-#: ../../printerdrake.pm_.c:1292
-msgid ""
-"To be able to print with your Lexmark inkjet and this configuration, you "
-"need the inkjet printer drivers provided by Lexmark (http://www.lexmark."
-"com/). Go to the US site and click on the \"Drivers\" button. Then choose "
-"your model and afterwards \"Linux\" as operating system. The drivers come as "
-"RPM packages or shell scripts with interactive graphical installation. You "
-"do not need to do this configuration by the graphical frontends. Cancel "
-"directly after the license agreement. Then print printhead alignment pages "
-"with \"lexmarkmaintain\" and adjust the head alignment settings with this "
-"program."
-msgstr ""
-"Para permitir imprimir con su impresora de inyecciĆ³n de tinta Lexmark y esta "
-"configuraciĆ³n, necesita los controladores de impresoras de inyecciĆ³n de "
-"tinta proporcionados por Lexmark (http://www.lexmark.com/). Vaya al sitio de "
-"EEUU y haga clic en el botĆ³n \"Drivers\". Luego, seleccione su modelo y "
-"posteriormente \"Linux\" como sistema operativo. Los controladores vienen "
-"vienen como paquetes RPM o como scripts de la shell con instalaciĆ³n grĆfica "
-"interactiva. No necesita hacer esta configuraciĆ³n con los interfaces "
-"grĆficos. Cancele directamente tras el acuerdo de licencia. Luego imprima "
-"pĆginas alineadas con la cabeza de impresiĆ³n \"lexmarkmaintain\" y ajuste la "
-"configuraciĆ³n de la alineaciĆ³n de la cabeza con este programa."
-
-#: ../../printerdrake.pm_.c:1508
-msgid ""
-"Printer default settings\n"
-"\n"
-"You should make sure that the page size and the ink type/printing mode (if "
-"available) and also the hardware configuration of laser printers (memory, "
-"duplex unit, extra trays) are set correctly. Note that with a very high "
-"printout quality/resolution printing can get substantially slower."
-msgstr ""
-"Configuraciones predeterminadas de la impresora\n"
-"\n"
-"DeberĆ­a asegurarse que el tamaƱo de pĆgina y el tipo de tinta/modo de "
-"impresiĆ³n (si corresponde) y tambiĆ©n la configuraciĆ³n de hardware de las "
-"impresoras lĆser (memoria, unidad de dĆŗplex, bandejas adicionales) estĆn "
-"configurados correctamente. Note que una calidad de impresiĆ³n o resoluciĆ³n "
-"extremadamente alta puede ser bastante lenta."
-
-#: ../../printerdrake.pm_.c:1517
-#, c-format
-msgid "Option %s must be an integer number!"
-msgstr "ĀLa opciĆ³n %s debe ser un nĆŗmero entero!"
-
-#: ../../printerdrake.pm_.c:1521
-#, c-format
-msgid "Option %s must be a number!"
-msgstr "ĀLa opciĆ³n %s debe ser un nĆŗmero!"
-
-#: ../../printerdrake.pm_.c:1526
-#, c-format
-msgid "Option %s out of range!"
-msgstr "ĀLa opciĆ³n %s estĆ fuera de rango"
-
-#: ../../printerdrake.pm_.c:1565
-#, c-format
-msgid ""
-"Do you want to set this printer (\"%s\")\n"
-"as the default printer?"
-msgstr ""
-"ĀæQuiere configurar esta impresora (\"%s\")\n"
-"como la impresora predeterminada?"
-
-#: ../../printerdrake.pm_.c:1582
-msgid "Test pages"
-msgstr "PĆginas de prueba"
-
-#: ../../printerdrake.pm_.c:1583
-msgid ""
-"Please select the test pages you want to print.\n"
-"Note: the photo test page can take a rather long time to get printed and on "
-"laser printers with too low memory it can even not come out. In most cases "
-"it is enough to print the standard test page."
-msgstr ""
-"Por favor, seleccione las pĆginas de prueba que quiere imprimir.\n"
-"Nota: la pĆgina de prueba de foto puede tardar mucho tiempo en ser impresa e "
-"incluso en impresoras lĆser con muy poca memoria puede que no salga. En la "
-"mayorĆ­a de los casos, basta con imprimir la pĆgina de prueba estĆndar."
-
-#: ../../printerdrake.pm_.c:1587
-msgid "No test pages"
-msgstr "No hay pĆginas de prueba"
-
-#: ../../printerdrake.pm_.c:1588
-msgid "Print"
-msgstr "Imprimir"
-
-#: ../../printerdrake.pm_.c:1590
-msgid "Standard test page"
-msgstr "PĆgina de prueba estĆndar"
-
-#: ../../printerdrake.pm_.c:1593
-msgid "Alternative test page (Letter)"
-msgstr "PĆgina de prueba alternativa (Letter)"
-
-#: ../../printerdrake.pm_.c:1596
-msgid "Alternative test page (A4)"
-msgstr "PĆgina de prueba alternativa (A4)"
-
-#: ../../printerdrake.pm_.c:1598
-msgid "Photo test page"
-msgstr "PĆgina de prueba de foto"
-
-#: ../../printerdrake.pm_.c:1602
-msgid "Do not print any test page"
-msgstr "No imprimir ninguna pĆgina de prueba"
-
-#: ../../printerdrake.pm_.c:1610 ../../printerdrake.pm_.c:1747
-msgid "Printing test page(s)..."
-msgstr "Imprimir la(s) pĆgina(s) de prueba..."
-
-#: ../../printerdrake.pm_.c:1635
-#, c-format
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-"Printing status:\n"
-"%s\n"
-"\n"
-msgstr ""
-"La(s) pĆgina(s) de prueba se enviaron a la impresora.\n"
-"Puede que pase algo de tiempo antes de que comience la impresiĆ³n.\n"
-"Estado de la impresiĆ³n:\n"
-"%s\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:1639
-msgid ""
-"Test page(s) have been sent to the printer.\n"
-"It may take some time before the printer starts.\n"
-msgstr ""
-"La(s) pĆgina(s) de prueba se enviaron al demonio de impresiĆ³n.\n"
-"Puede que pase algo de tiempo antes de que comience la impresiĆ³n.\n"
-
-#: ../../printerdrake.pm_.c:1646
-msgid "Did it work properly?"
-msgstr "ĀæFuncionĆ³ adecuadamente?"
-
-#: ../../printerdrake.pm_.c:1667 ../../printerdrake.pm_.c:2732
-msgid "Raw printer"
-msgstr "Impresora en crudo"
-
-#: ../../printerdrake.pm_.c:1685
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) you can either use "
-"the command \"%s <file>\" or a graphical printing tool: \"xpp <file>\" or "
-"\"kprinter <file>\". The graphical tools allow you to choose the printer and "
-"to modify the option settings easily.\n"
-msgstr ""
-"Para imprimir un archivo desde la lĆ­nea de comando (ventana de terminal) "
-"utilice el comando \"%s <archivo>\" o una herramienta de impresiĆ³n grĆfica: "
-"\"xpp <archivo>\" o \"kprinter <archivo>\". Las herramientas grĆficas le "
-"permiten seleccionar la impresora y modificar las opciones de configuraciĆ³n "
-"fĆcilmente.\n"
-
-#: ../../printerdrake.pm_.c:1687
-msgid ""
-"These commands you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications, but here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-"Estos comando tambiĆ©n se utilizan en el campo \"Comando de impresiĆ³n\" de "
-"los diĆlogos de impresiĆ³n de muchas aplicaciones, pero aquĆ­ no se indica el "
-"nombre del archivo porque el archivo a imprimir lo proporciona la "
-"aplicaciĆ³n.\n"
-
-#: ../../printerdrake.pm_.c:1690 ../../printerdrake.pm_.c:1706
-#: ../../printerdrake.pm_.c:1716
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" command also allows to modify the option settings for a "
-"particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\". "
-msgstr ""
-"\n"
-"El comando \"%s\" tambiĆ©n permite modificar las opciones de configuraciĆ³n "
-"para un trabajo de impresiĆ³n determinado. Simplemente, aƱada las "
-"configuraciones deseadas a la lĆ­nea de comando, por ejemplo \"%s <archivo>"
-"\". "
-
-#: ../../printerdrake.pm_.c:1693 ../../printerdrake.pm_.c:1732
-#, c-format
-msgid ""
-"To know about the options available for the current printer read either the "
-"list shown below or click on the \"Print option list\" button.%s\n"
-"\n"
-msgstr ""
-"Para obtener una lista con las opciones disponibles para la impresora actual "
-"lea la lista que se muestra debajo o haga clic en el botĆ³n \"Imprimir lista "
-"de opciones\".%s\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:1696
-msgid ""
-"Here is a list of the available printing options for the current printer:\n"
-"\n"
-msgstr ""
-"AquĆ­ tiene una lista de las opciones disponibles para la impresora actual:\n"
-"\n"
-
-#: ../../printerdrake.pm_.c:1701 ../../printerdrake.pm_.c:1711
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\".\n"
-msgstr ""
-"Para imprimir un archivo desde la lĆ­nea de comando (ventana de terminal) use "
-"el comando \"%s <archivo>\".\n"
-
-#: ../../printerdrake.pm_.c:1703 ../../printerdrake.pm_.c:1713
-#: ../../printerdrake.pm_.c:1723
-msgid ""
-"This command you can also use in the \"Printing command\" field of the "
-"printing dialogs of many applications. But here do not supply the file name "
-"because the file to print is provided by the application.\n"
-msgstr ""
-"Este comando tambiĆ©n se utiliza en el campo \"Comando de impresiĆ³n\" de los "
-"diĆlogos de impresiĆ³n de muchas aplicaciones. Pero aquĆ­ no se da el nombre "
-"del archivo porque el nombre del archivo a imprimir lo proporciona la "
-"aplicaciĆ³n.\n"
-
-#: ../../printerdrake.pm_.c:1708 ../../printerdrake.pm_.c:1718
-msgid ""
-"To get a list of the options available for the current printer click on the "
-"\"Print option list\" button."
-msgstr ""
-"Para obtener una lista de las opciones disponibles para la impresora actual, "
-"haga clic en el botĆ³n \"Imprimir lista de opciones\"."
-
-#: ../../printerdrake.pm_.c:1721
-#, c-format
-msgid ""
-"To print a file from the command line (terminal window) use the command \"%s "
-"<file>\" or \"%s <file>\".\n"
-msgstr ""
-"Para imprimir un archivo desde la lĆ­nea de comando (ventana de terminal) use "
-"el comando \"%s <archivo>\" o \"%s <archivo>\".\n"
-
-#: ../../printerdrake.pm_.c:1725
-msgid ""
-"You can also use the graphical interface \"xpdq\" for setting options and "
-"handling printing jobs.\n"
-"If you are using KDE as desktop environment you have a \"panic button\", an "
-"icon on the desktop, labeled with \"STOP Printer!\", which stops all print "
-"jobs immediately when you click it. This is for example useful for paper "
-"jams.\n"
-msgstr ""
-"TambiĆ©n puede utilizar el interfaz grĆfico \"xpdq\" para configurar las "
-"opciones y manipular los trabajos de impresiĆ³n.\n"
-"Si estĆ usando KDE como entorno de escritorio tiene un \"botĆ³n de pĆnico\", "
-"un icono en su escritorio etiquetado como \"ĀDETENER impresora!\", que "
-"detiene todos los trabajos de impresiĆ³n inmediatamente cuando hace clic en "
-"Ć©l. Esto es Ćŗtil, por ejemplo, para atascos de papel.\n"
-
-#: ../../printerdrake.pm_.c:1729
-#, c-format
-msgid ""
-"\n"
-"The \"%s\" and \"%s\" commands also allow to modify the option settings for "
-"a particular printing job. Simply add the desired settings to the command "
-"line, e. g. \"%s <file>\".\n"
-msgstr ""
-"\n"
-" Los comandos \"%s\" y \"%s\" tambiƩn permiten modificar las opciones de "
-"configuraciĆ³n para un trabajo de impresiĆ³n particular. Simplemente aƱada las "
-"opciones deseadas a la lĆ­nea de comando, por ejemplo \"%s <archivo>\".\n"
-
-#: ../../printerdrake.pm_.c:1738 ../../printerdrake.pm_.c:1744
-#: ../../printerdrake.pm_.c:1745 ../../printerdrake.pm_.c:1746
-#: ../../printerdrake.pm_.c:2716 ../../standalone/drakbackup_.c:754
-#: ../../standalone/drakbackup_.c:2458 ../../standalone/drakfont_.c:577
-#: ../../standalone/drakfont_.c:791
-msgid "Close"
-msgstr "Cerrar"
-
-#: ../../printerdrake.pm_.c:1741 ../../printerdrake.pm_.c:1753
-#, c-format
-msgid "Printing/Scanning on \"%s\""
-msgstr "Imprimiendo/Escaneando en \"%s\""
-
-#: ../../printerdrake.pm_.c:1742 ../../printerdrake.pm_.c:1754
-#, c-format
-msgid "Printing on the printer \"%s\""
-msgstr "Imprimiendo en la impresora \"%s\""
-
-#: ../../printerdrake.pm_.c:1744
-msgid "Print option list"
-msgstr "Imprimir lista de opciones"
-
-#: ../../printerdrake.pm_.c:1766
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan with \"scanimage\" (\"scanimage -d hp:%s\" to specify "
-"the scanner when you have more than one) from the command line or with the "
-"graphical interfaces \"xscanimage\" or \"xsane\". If you are using the GIMP, "
-"you can also scan by choosing the appropriate point in the \"File\"/\"Acquire"
-"\" menu. Call also \"man scanimage\" and \"man sane-hp\" on the command line "
-"to get more information.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-"Su dispositivo multifunciĆ³n de HP se configurĆ³ automĆticamente para ser "
-"capaz de escanear. Ahora puede escanear con \"scanimage\" (\"scanimage -d hp:"
-"%s\" para especificar el escĆner si tiene mĆs de uno) desde la lĆ­nea de "
-"comandos o con los interfaces grĆficos \"xscanimage\" o \"xsane\". Si estĆ "
-"usando el GIMP, tambiƩn puede escanear seleccionado el punto apropiado del "
-"menĆŗ \"Archivo\"/\"Adquirir\". Lance tambiĆ©n \"man scanimage\" y \"man sane-"
-"hp\" en la lĆ­nea de comandos para obtener mĆs informaciĆ³n.\n"
-"\n"
-"No use \"scannerdrake\" para este dispositivo."
-
-#: ../../printerdrake.pm_.c:1772
-#, c-format
-msgid ""
-"Your HP multi-function device was configured automatically to be able to "
-"scan. Now you can scan from the command line with \"ptal-hp %s scan ...\". "
-"Scanning via a graphical interface or from the GIMP is not supported yet for "
-"your device. More information you will find in the \"/usr/share/doc/hpoj-0.8/"
-"ptal-hp-scan.html\" file on your system. If you have an HP LaserJet 1100 or "
-"1200 you can only scan when you have the scanner option installed.\n"
-"\n"
-"Do not use \"scannerdrake\" for this device!"
-msgstr ""
-"Su dispositivo multifunciĆ³n HP se configurĆ³ automĆticamente para ser capaz "
-"de escanear. Ahora puede escanear desde la lĆ­nea comandos con \"ptal-hp %s "
-"scan ...\". No se soporta aĆŗn el escaneo por medio de un interfaz grĆfico e "
-"desde el GIMP para su dispositivo. EncontrarĆ mĆs informaciĆ³n en el archivo "
-"de su sistema \"/usr/share/doc/hpoj-0.8/ptal-hp-scan.html\". Si tiene una HP "
-"LaserJet 1100 o 1200 puede escanear cuando tenga la opciĆ³n del escĆner "
-"instalada.\n"
-"No use \"scannerdrake\" para este dispositivo."
-
-#: ../../printerdrake.pm_.c:1794 ../../printerdrake.pm_.c:2221
-#: ../../printerdrake.pm_.c:2485 ../../standalone/printerdrake_.c:49
-msgid "Reading printer data ..."
-msgstr "Leyendo los datos de la impresora ..."
-
-#: ../../printerdrake.pm_.c:1814 ../../printerdrake.pm_.c:1842
-#: ../../printerdrake.pm_.c:1877
-msgid "Transfer printer configuration"
-msgstr "Transferir configuraciĆ³n de la impresora"
-
-#: ../../printerdrake.pm_.c:1815
-#, c-format
-msgid ""
-"You can copy the printer configuration which you have done for the spooler %"
-"s to %s, your current spooler. All the configuration data (printer name, "
-"description, location, connection type, and default option settings) is "
-"overtaken, but jobs will not be transferred.\n"
-"Not all queues can be transferred due to the following reasons:\n"
-msgstr ""
-"Puede copiar la configuraciĆ³n de la impresora que ha realizado para la cola %"
-"s a %s, su cola corriente. Todos los datos de configuraciĆ³n (nombre de la "
-"impresora, descripciĆ³n, ubicaciĆ³n, tipo de conexiĆ³n, y opciones "
-"predeterminadas) se transfieren, pero los trabajos de impresiĆ³n no se "
-"transfieren.\n"
-"Debido a las siguientes razones no todas las colas se pueden transferir:\n"
-
-#: ../../printerdrake.pm_.c:1818
-msgid ""
-"CUPS does not support printers on Novell servers or printers sending the "
-"data into a free-formed command.\n"
-msgstr ""
-"CUPS no soporta impresoras en servidores Novell o impresoras que envĆ­an los "
-"datos en un comando formado libremente.\n"
-
-#: ../../printerdrake.pm_.c:1820
-msgid ""
-"PDQ only supports local printers, remote LPD printers, and Socket/TCP "
-"printers.\n"
-msgstr ""
-"PDQ sĆ³lo soporta impresoras locales, impresoras LPD remotas, e impresoras "
-"Socket/TCP.\n"
-
-#: ../../printerdrake.pm_.c:1822
-msgid "LPD and LPRng do not support IPP printers.\n"
-msgstr "LPD y LPRng no soportan impresoras IPP.\n"
-
-#: ../../printerdrake.pm_.c:1824
-msgid ""
-"In addition, queues not created with this program or \"foomatic-configure\" "
-"cannot be transferred."
-msgstr ""
-"AdemĆs, las colas no creadas con este programa o con \"foomatic-configure\" "
-"no se pueden transferir."
-
-#: ../../printerdrake.pm_.c:1825
-msgid ""
-"\n"
-"Also printers configured with the PPD files provided by their manufacturers "
-"or with native CUPS drivers cannot be transferred."
-msgstr ""
-"\n"
-"Tampoco se pueden transferir las impresoras configuradas con los archivos "
-"PPD provistos por sus fabricantes o con controladores CUPS nativos."
-
-#: ../../printerdrake.pm_.c:1826
-msgid ""
-"\n"
-"Mark the printers which you want to transfer and click \n"
-"\"Transfer\"."
-msgstr ""
-"\n"
-"Marque las impresoras que desea transferir y haga clic \n"
-"sobre \"Transferir\"."
-
-#: ../../printerdrake.pm_.c:1829
-msgid "Do not transfer printers"
-msgstr "No transferir impresoras"
-
-#: ../../printerdrake.pm_.c:1830 ../../printerdrake.pm_.c:1847
-msgid "Transfer"
-msgstr "Transferir"
-
-#: ../../printerdrake.pm_.c:1843
-#, c-format
-msgid ""
-"A printer named \"%s\" already exists under %s. \n"
-"Click \"Transfer\" to overwrite it.\n"
-"You can also type a new name or skip this printer."
-msgstr ""
-"Ya existe una impresora denominada \"%s\" bajo %s. \n"
-"Haga clic sobre \"Transferir\" para sobre-escribirla.\n"
-"TambiƩn puede ingresar un nombre nuevo o saltear esta impresora."
-
-#: ../../printerdrake.pm_.c:1851
-msgid "Name of printer should contain only letters, numbers and the underscore"
-msgstr ""
-"El nombre de la impresora sĆ³lo deberĆ­a contener letras, nĆŗmeros y el guiĆ³n "
-"bajo"
-
-#: ../../printerdrake.pm_.c:1856
-#, c-format
-msgid ""
-"The printer \"%s\" already exists,\n"
-"do you really want to overwrite its configuration?"
-msgstr ""
-"La impresora \"%s\" ya existe,\n"
-"Āærealmente desea sobre-escribir la configuraciĆ³n de la misma?"
-
-#: ../../printerdrake.pm_.c:1864
-msgid "New printer name"
-msgstr "Nuevo nombre de la impresora"
-
-#: ../../printerdrake.pm_.c:1867
-#, c-format
-msgid "Transferring %s ..."
-msgstr "Transfiriendo %s ..."
-
-#: ../../printerdrake.pm_.c:1878
-#, c-format
-msgid ""
-"You have transferred your former default printer (\"%s\"), Should it be also "
-"the default printer under the new printing system %s?"
-msgstr ""
-"Ha transferido su impresora por defecto anterior (\"%s\"), ĀæDeberĆ­a ser "
-"tambiĆ©n la impresora por defecto bajo el nuevo sistema de impresiĆ³n %s?"
-
-#: ../../printerdrake.pm_.c:1887
-msgid "Refreshing printer data ..."
-msgstr "Refrescando datos de impresora ..."
-
-#: ../../printerdrake.pm_.c:1895 ../../printerdrake.pm_.c:1966
-#: ../../printerdrake.pm_.c:1978
-msgid "Configuration of a remote printer"
-msgstr "ConfiguraciĆ³n de una impresora remota"
-
-#: ../../printerdrake.pm_.c:1896
-msgid "Starting network ..."
-msgstr "Iniciando la red ..."
-
-#: ../../printerdrake.pm_.c:1930 ../../printerdrake.pm_.c:1934
-#: ../../printerdrake.pm_.c:1936
-msgid "Configure the network now"
-msgstr "Configurar la red ahora"
-
-#: ../../printerdrake.pm_.c:1931
-msgid "Network functionality not configured"
-msgstr "Funcionalidad de red no configurada"
-
-#: ../../printerdrake.pm_.c:1932
-msgid ""
-"You are going to configure a remote printer. This needs working network "
-"access, but your network is not configured yet. If you go on without network "
-"configuration, you will not be able to use the printer which you are "
-"configuring now. How do you want to proceed?"
-msgstr ""
-"Va a configurar una impresora remota. Para esto, se necesita un acceso a la "
-"red funcionando, pero aĆŗn no ha configurado su red. Si sigue sin "
-"configuraciĆ³n de red, no podrĆ utilizar la impresoara que estĆ configurando "
-"ahora. ĀæCĆ³mo desea proceder?"
-
-#: ../../printerdrake.pm_.c:1935
-msgid "Go on without configuring the network"
-msgstr "Continuar sin configurar la red"
-
-#: ../../printerdrake.pm_.c:1968
-msgid ""
-"The network configuration done during the installation cannot be started "
-"now. Please check whether the network gets accessable after booting your "
-"system and correct the configuration using the Mandrake Control Center, "
-"section \"Network & Internet\"/\"Connection\", and afterwards set up the "
-"printer, also using the Mandrake Control Center, section \"Hardware\"/"
-"\"Printer\""
-msgstr ""
-"La configuraciĆ³n de la red hecha durante la instalaciĆ³n no se puede iniciar "
-"ahora. Por favor, verifique si la red se hace accesible tras reiniciar su "
-"sistema y corrija la configuraciĆ³n usando el Centro de control de Mandrake, "
-"secciĆ³n \"Redes e Internet\"/\"ConexiĆ³n\", y tras esto configure la "
-"impresora, tambiĆ©n utilizando el Centro de Control de Mandrake, secciĆ³n "
-"\"Hardware\"/\"Impresora\"."
-
-#: ../../printerdrake.pm_.c:1969
-msgid ""
-"The network access was not running and could not be started. Please check "
-"your configuration and your hardware. Then try to configure your remote "
-"printer again."
-msgstr ""
-"El acceso a la red no estaba corriendo y no se puede iniciar. Por favor, "
-"verifique su configuraciĆ³n y su hardware. Luego, intente configurar su "
-"impresora remota de nuevo."
-
-#: ../../printerdrake.pm_.c:1979
-msgid "Restarting printing system ..."
-msgstr "Reiniciando el sistema de impresiĆ³n ..."
-
-#: ../../printerdrake.pm_.c:2017
-msgid "high"
-msgstr "Alta"
-
-#: ../../printerdrake.pm_.c:2017
-msgid "paranoid"
-msgstr "Paranoica"
-
-#: ../../printerdrake.pm_.c:2018
-#, c-format
-msgid "Installing a printing system in the %s security level"
-msgstr "Instalando un sistema de impresiĆ³n en el nivel de seguridad %s"
-
-#: ../../printerdrake.pm_.c:2019
-#, c-format
-msgid ""
-"You are about to install the printing system %s on a system running in the %"
-"s security level.\n"
-"\n"
-"This printing system runs a daemon (background process) which waits for "
-"print jobs and handles them. This daemon is also accessable by remote "
-"machines through the network and so it is a possible point for attacks. "
-"Therefore only a few selected daemons are started by default in this "
-"security level.\n"
-"\n"
-"Do you really want to configure printing on this machine?"
-msgstr ""
-"Va a instalar el sistema de impresiĆ³n %s sobre un sistema corriendo en el "
-"nivel de seguridad %s.\n"
-"\n"
-"Este sistema de impresiĆ³n ejecuta un demonio (proceso en segundo plano) que "
-"espera trabajos de impresiĆ³n y los gestiona. Las mĆquinas remotas pueden "
-"acceder tambiƩn a este demonio a travƩs de la red, asƭ que es un potencial "
-"punto de ataque. Por eso, sĆ³lo unos pocos demonios seleccionados se inician "
-"por defecto en este nivel de seguridad.\n"
-"\n"
-"ĀæSeguro que desea configurar la impresiĆ³n para esta mĆquina?"
-
-#: ../../printerdrake.pm_.c:2051
-msgid "Starting the printing system at boot time"
-msgstr "Iniciar el sistema de impresiĆ³n al arrancar"
-
-#: ../../printerdrake.pm_.c:2052
-#, c-format
-msgid ""
-"The printing system (%s) will not be started automatically when the machine "
-"is booted.\n"
-"\n"
-"It is possible that the automatic starting was turned off by changing to a "
-"higher security level, because the printing system is a potential point for "
-"attacks.\n"
-"\n"
-"Do you want to have the automatic starting of the printing system turned on "
-"again?"
-msgstr ""
-"El sistema de impresiĆ³n (%s) no se iniciarĆ automĆticamente cuando arranque "
-"la mĆquina.\n"
-"\n"
-"Es posible que el inicio automĆtico se desactivĆ³ al cambiar a un nivel de "
-"seguridad mayor, porque el sistema de impresiĆ³n es un potencial punto de "
-"ataques.\n"
-"\n"
-"ĀæDesea volver a activar el inicio automĆtico de la impresiĆ³n cuando el "
-"sistema se vuelva a encender?"
-
-#: ../../printerdrake.pm_.c:2075 ../../printerdrake.pm_.c:2113
-#: ../../printerdrake.pm_.c:2143 ../../printerdrake.pm_.c:2176
-#: ../../printerdrake.pm_.c:2281
-msgid "Checking installed software..."
-msgstr "Verificando software instalado..."
-
-#: ../../printerdrake.pm_.c:2117
-msgid "Removing LPRng..."
-msgstr "Quitando LPRng..."
-
-#: ../../printerdrake.pm_.c:2147
-msgid "Removing LPD..."
-msgstr "Quitando LPD..."
-
-#: ../../printerdrake.pm_.c:2205
-msgid "Select Printer Spooler"
-msgstr "Seleccione sistema de impresiĆ³n (spooler)"
-
-#: ../../printerdrake.pm_.c:2206
-msgid "Which printing system (spooler) do you want to use?"
-msgstr "ĀæQuĆ© sistema de impresiĆ³n (spooler) desea usar?"
-
-#: ../../printerdrake.pm_.c:2239
-#, c-format
-msgid "Configuring printer \"%s\" ..."
-msgstr "ConfiguraciĆ³n la impresora \"%s\" ..."
-
-#: ../../printerdrake.pm_.c:2252
-msgid "Installing Foomatic ..."
-msgstr "Instalando Foomatic ..."
-
-#: ../../printerdrake.pm_.c:2309 ../../printerdrake.pm_.c:2348
-#: ../../printerdrake.pm_.c:2733 ../../printerdrake.pm_.c:2803
-msgid "Printer options"
-msgstr "Opciones de impresiĆ³n"
-
-#: ../../printerdrake.pm_.c:2318
-msgid "Preparing PrinterDrake ..."
-msgstr "Preparando PrinterDrake ..."
-
-#: ../../printerdrake.pm_.c:2335 ../../printerdrake.pm_.c:2890
-msgid "Configuring applications..."
-msgstr "Configurando las aplicaciones..."
-
-#: ../../printerdrake.pm_.c:2355
-msgid "Would you like to configure printing?"
-msgstr "ĀæDesea configurar la impresiĆ³n?"
-
-#: ../../printerdrake.pm_.c:2367
-msgid "Printing system: "
-msgstr "Sistema de impresiĆ³n: "
-
-#: ../../printerdrake.pm_.c:2415
-msgid "Printerdrake"
-msgstr "Printerdrake"
-
-#: ../../printerdrake.pm_.c:2419
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; to view information about it; "
-"or to make a printer on a remote CUPS server available for Star Office/"
-"OpenOffice.org."
-msgstr ""
-"EstĆn configuradas las impresoras siguientes. Haga doble clic sobre una para "
-"cambiar sus parĆmetros; para hacerla la predeterminada; para ver informaciĆ³n "
-"acerca de la misma o para hacer que una impresora en un servidor CUPS remoto "
-"estƩ disponible para Star Office/OpenOffice.org."
-
-#: ../../printerdrake.pm_.c:2420
-msgid ""
-"The following printers are configured. Double-click on a printer to change "
-"its settings; to make it the default printer; or to view information about "
-"it."
-msgstr ""
-"EstĆn configuradas las impresoras siguientes. Haga doble clic sobre una de "
-"ellas para modificarla, para configurarla como predeterminada, o para "
-"obtener informaciĆ³n sobre la misma."
-
-#: ../../printerdrake.pm_.c:2446
-msgid "Refresh printer list (to display all available remote CUPS printers)"
-msgstr ""
-"Refrescar la lista de impresoras (para visualizar todas las impresoras CUPS "
-"remotas)"
-
-#: ../../printerdrake.pm_.c:2464
-msgid "Change the printing system"
-msgstr "Cambiar el sistema de impresiĆ³n"
-
-#: ../../printerdrake.pm_.c:2469 ../../standalone/draknet_.c:278
-msgid "Normal Mode"
-msgstr "Modo normal"
-
-#: ../../printerdrake.pm_.c:2625 ../../printerdrake.pm_.c:2675
-#: ../../printerdrake.pm_.c:2884
-msgid "Do you want to configure another printer?"
-msgstr "ĀæDesea configurar otra impresora?"
-
-#: ../../printerdrake.pm_.c:2711
-msgid "Modify printer configuration"
-msgstr "Modificar configuraciĆ³n de la impresora"
-
-#: ../../printerdrake.pm_.c:2713
-#, c-format
-msgid ""
-"Printer %s\n"
-"What do you want to modify on this printer?"
-msgstr ""
-"Impresora %s\n"
-"ĀæQuĆ© desea modificar de esta impresora?"
-
-#: ../../printerdrake.pm_.c:2717
-msgid "Do it!"
-msgstr "ĀHacerlo!"
-
-#: ../../printerdrake.pm_.c:2722 ../../printerdrake.pm_.c:2777
-msgid "Printer connection type"
-msgstr "Tipo de conexiĆ³n de la impresora"
-
-#: ../../printerdrake.pm_.c:2723 ../../printerdrake.pm_.c:2781
-msgid "Printer name, description, location"
-msgstr "Nombre de la impresora, descripciĆ³n, ubicaciĆ³n"
-
-#: ../../printerdrake.pm_.c:2725 ../../printerdrake.pm_.c:2796
-msgid "Printer manufacturer, model, driver"
-msgstr "Fabricante de la impresora, modelo, controlador"
-
-#: ../../printerdrake.pm_.c:2726 ../../printerdrake.pm_.c:2797
-msgid "Printer manufacturer, model"
-msgstr "Fabricante de la impresora, modelo"
-
-#: ../../printerdrake.pm_.c:2735 ../../printerdrake.pm_.c:2807
-msgid "Set this printer as the default"
-msgstr "Poner esta impresora como predeterminada"
-
-#: ../../printerdrake.pm_.c:2737 ../../printerdrake.pm_.c:2812
-msgid "Add this printer to Star Office/OpenOffice.org"
-msgstr "Agregar esta impresora a Star Office/OpenOffice.org"
-
-#: ../../printerdrake.pm_.c:2738 ../../printerdrake.pm_.c:2821
-msgid "Remove this printer from Star Office/OpenOffice.org"
-msgstr "Quitar esta impresora de Star Office/OpenOffice.org"
-
-#: ../../printerdrake.pm_.c:2739 ../../printerdrake.pm_.c:2830
-msgid "Print test pages"
-msgstr "Imprimir la(s) pĆgina(s) de prueba"
-
-#: ../../printerdrake.pm_.c:2740 ../../printerdrake.pm_.c:2832
-msgid "Know how to use this printer"
-msgstr "Se sabe cĆ³mo usar esta impresora"
-
-#: ../../printerdrake.pm_.c:2742 ../../printerdrake.pm_.c:2834
-msgid "Remove printer"
-msgstr "Borrar impresora"
-
-#: ../../printerdrake.pm_.c:2786
-#, c-format
-msgid "Removing old printer \"%s\" ..."
-msgstr "Borrando la impresora antigua \"%s\" ..."
-
-#: ../../printerdrake.pm_.c:2810
-msgid "Default printer"
-msgstr "Impresora predeterminada"
-
-#: ../../printerdrake.pm_.c:2811
-#, c-format
-msgid "The printer \"%s\" is set as the default printer now."
-msgstr "La impresora \"%s\" ahora es la impresora predeterminada."
-
-#: ../../printerdrake.pm_.c:2815 ../../printerdrake.pm_.c:2818
-msgid "Adding printer to Star Office/OpenOffice.org"
-msgstr "Agregando impresora a Star Office/OpenOffice.org"
-
-#: ../../printerdrake.pm_.c:2816
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully added to Star Office/OpenOffice.org."
-msgstr ""
-"La impresora \"%s\" se agregĆ³ satisfactoriamente a Star Office/OpenOffice."
-"org."
-
-#: ../../printerdrake.pm_.c:2819
-#, c-format
-msgid "Failed to add the printer \"%s\" to Star Office/OpenOffice.org."
-msgstr "No se pudo agregar la impresora \"%s\" a Star Office/OpenOffice.org."
-
-#: ../../printerdrake.pm_.c:2824 ../../printerdrake.pm_.c:2827
-msgid "Removing printer from Star Office/OpenOffice.org"
-msgstr "Quitando la impresora de Star Office/OpenOffice.org"
-
-#: ../../printerdrake.pm_.c:2825
-#, c-format
-msgid ""
-"The printer \"%s\" was successfully removed from Star Office/OpenOffice.org."
-msgstr ""
-"La impresora \"%s\" se quitĆ³ satisfactoriamnete de Star Office/OpenOffice."
-"org."
-
-#: ../../printerdrake.pm_.c:2828
-#, c-format
-msgid "Failed to remove the printer \"%s\" from Star Office/OpenOffice.org."
-msgstr "No se pudo quitar la impresora \"%s\" de Star Office/OpenOffice.org."
-
-#: ../../printerdrake.pm_.c:2836
-#, c-format
-msgid "Do you really want to remove the printer \"%s\"?"
-msgstr "ĀæSeguro que quiere borrar la impresora \"%s\"?"
-
-#: ../../printerdrake.pm_.c:2838
-#, c-format
-msgid "Removing printer \"%s\" ..."
-msgstr "Borrando la impresora \"%s\" ..."
-
-#: ../../proxy.pm_.c:29 ../../proxy.pm_.c:37 ../../proxy.pm_.c:58
-#: ../../proxy.pm_.c:78
-msgid "Proxy configuration"
-msgstr "ConfiguraciĆ³n del proxy"
-
-#: ../../proxy.pm_.c:30
-msgid ""
-"Welcome to the proxy configuration utility.\n"
-"\n"
-"Here, you'll be able to set up your http and ftp proxies\n"
-"with or without login and password\n"
-msgstr ""
-"Bienvenido a la herramienta de configuraciĆ³n del proxy.\n"
-"\n"
-"AquĆ­ podrĆ configurar sus proxies http y ftp con o sin\n"
-"usuario y contraseƱa.\n"
-
-#: ../../proxy.pm_.c:38
-msgid ""
-"Please fill in the http proxy informations\n"
-"Leave it blank if you don't want an http proxy"
-msgstr ""
-"Por favor, rellene las informaciones del proxy http.\n"
-"DĆ©jelo en blanco si no quiere un proxy http."
-
-#: ../../proxy.pm_.c:39 ../../proxy.pm_.c:60
-msgid "URL"
-msgstr "URL"
-
-#: ../../proxy.pm_.c:40 ../../proxy.pm_.c:61
-msgid "port"
-msgstr "puerto"
-
-#: ../../proxy.pm_.c:44
-msgid "Url should begin with 'http:'"
-msgstr "La Url deberĆ­a empezar por 'http:'"
-
-#: ../../proxy.pm_.c:48 ../../proxy.pm_.c:69
-msgid "The port part should be numeric"
-msgstr "La parte del puerto deberƭa ser numƩrica"
-
-#: ../../proxy.pm_.c:59
-msgid ""
-"Please fill in the ftp proxy informations\n"
-"Leave it blank if you don't want an ftp proxy"
-msgstr ""
-"Por favor, rellene las informaciones del proxy ftp.\n"
-"DĆ©jelo en blanco si no quiere un proxy ftp."
-
-#: ../../proxy.pm_.c:65
-msgid "Url should begin with 'ftp:'"
-msgstr "La Url deberĆ­a empezar por 'ftp:'"
-
-#: ../../proxy.pm_.c:79
-msgid ""
-"Please enter proxy login and password, if any.\n"
-"Leave it blank if you don't want login/passwd"
-msgstr ""
-"Por favor, introduzca usuario y contraseƱa del proxy, si es necesario.\n"
-"DƩjelo en blanco si no desea usuario/contraseƱa."
-
-#: ../../proxy.pm_.c:80
-msgid "login"
-msgstr "usuario"
-
-#: ../../proxy.pm_.c:82
-msgid "password"
-msgstr "contraseƱa"
-
-#: ../../proxy.pm_.c:84
-msgid "re-type password"
-msgstr "contraseƱa (otra vez)"
-
-#: ../../proxy.pm_.c:88
-msgid "The passwords don't match. Try again!"
-msgstr "Las contraseƱas no coinciden. ĀIntĆ©ntelo de nuevo!"
-
-#: ../../raid.pm_.c:35
-#, c-format
-msgid "Can't add a partition to _formatted_ RAID md%d"
-msgstr "No se puede aƱadir una particiĆ³n al RAID md%d _ya formateado_"
-
-#: ../../raid.pm_.c:111
-#, c-format
-msgid "Can't write file %s"
-msgstr "No se puede escribir el archivo %s"
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed"
-msgstr "FallĆ³ mkraid"
-
-#: ../../raid.pm_.c:136
-msgid "mkraid failed (maybe raidtools are missing?)"
-msgstr "FallĆ³ mkraid (ĀæquizĆs no estĆ©n las herramientas de raid (raidtools)?)"
-
-#: ../../raid.pm_.c:152
-#, c-format
-msgid "Not enough partitions for RAID level %d\n"
-msgstr "No hay suficientes particiones para un RAID de nivel %d\n"
-
-#: ../../services.pm_.c:14
-msgid "Launch the ALSA (Advanced Linux Sound Architecture) sound system"
-msgstr ""
-"Lanzar el sistema de sonido ALSA (Arquitectura avanzada de sonido de Linux)"
-
-#: ../../services.pm_.c:15
-msgid "Anacron a periodic command scheduler."
-msgstr "Anacron, un planificador de comandos periĆ³dicos."
-
-#: ../../services.pm_.c:16
-msgid ""
-"apmd is used for monitoring batery status and logging it via syslog.\n"
-"It can also be used for shutting down the machine when the battery is low."
-msgstr ""
-"apmd se usa para monitorizar el estado de las baterĆ­as y enviar esa\n"
-"informaciĆ³n a syslogd. TambiĆ©n puede usarse para apagar el equipo cuando\n"
-"la baterĆ­a estĆ casi descargada."
-
-#: ../../services.pm_.c:18
-msgid ""
-"Runs commands scheduled by the at command at the time specified when\n"
-"at was run, and runs batch commands when the load average is low enough."
-msgstr ""
-"Ejecuta los comandos programados por el comando at en el momento\n"
-"especificado al lanzar at, y ejecuta comandos por lotes (batch) cuando\n"
-"la carga promedio del sistema es suficientemente baja."
-
-#: ../../services.pm_.c:20
-msgid ""
-"cron is a standard UNIX program that runs user-specified programs\n"
-"at periodic scheduled times. vixie cron adds a number of features to the "
-"basic\n"
-"UNIX cron, including better security and more powerful configuration options."
-msgstr ""
-"cron es un programa UNIX estĆndar que ejecuta programas especificados por\n"
-"el usuario periĆ³dicamente. El cron de Vixie aƱade varias funcionalidades al "
-"cron de Unix \n"
-"bĆsico, incluyendo una mayor seguridad y opciones de configuraciĆ³n mĆs "
-"potentes."
-
-#: ../../services.pm_.c:23
-msgid ""
-"GPM adds mouse support to text-based Linux applications such the\n"
-"Midnight Commander. It also allows mouse-based console cut-and-paste "
-"operations,\n"
-"and includes support for pop-up menus on the console."
-msgstr ""
-"GPM aƱade soporte del ratĆ³n para los programas Linux en modo texto, como\n"
-"el Midnight Commander. TambiƩn permite operaciones de cortar-y-pegar con\n"
-"el ratĆ³n en la consola, e incluye soporte para menĆŗes emergentes en la "
-"consola."
-
-#: ../../services.pm_.c:26
-msgid ""
-"HardDrake runs a hardware probe, and optionally configures\n"
-"new/changed hardware."
-msgstr ""
-"HardDrake lanza una prueba del hardware, y opcionalmente configura\n"
-"el hardware nuevo/cambiado."
-
-#: ../../services.pm_.c:28 ../../standalone/logdrake_.c:412
-msgid ""
-"Apache is a World Wide Web server. It is used to serve HTML files and CGI."
-msgstr ""
-"Apache es un servidor de pĆginas web. Se usa para servir archivos HTML y "
-"programas CGI."
-
-#: ../../services.pm_.c:29
-msgid ""
-"The internet superserver daemon (commonly called inetd) starts a\n"
-"variety of other internet services as needed. It is responsible for "
-"starting\n"
-"many services, including telnet, ftp, rsh, and rlogin. Disabling inetd "
-"disables\n"
-"all of the services it is responsible for."
-msgstr ""
-"El demonio para el superservidor de internet (normalmente llamado inetd) "
-"inicia\n"
-"una variedad de servicios adicionales de internet segĆŗn sea necesario.\n"
-"Es el responsable de iniciar varios servicios, incluyendo telnet, ftp, rsh\n"
-"y rlogin. Al desactivar inetd, se desactivan todos los servicios que "
-"dependen de Ć©l."
-
-#: ../../services.pm_.c:33
-msgid ""
-"Launch packet filtering for Linux kernel 2.2 series, to set\n"
-"up a firewall to protect your machine from network attacks."
-msgstr ""
-"Lanza el filtrado de paquetes para los nĆŗcleos de Linux de la serie 2.2,\n"
-"para configurar un cortafuegos que protege a su mĆquina de los ataques de la "
-"red."
-
-#: ../../services.pm_.c:35
-msgid ""
-"This package loads the selected keyboard map as set in\n"
-"/etc/sysconfig/keyboard. This can be selected using the kbdconfig utility.\n"
-"You should leave this enabled for most machines."
-msgstr ""
-"Este paquete carga la definiciĆ³n de teclado que se indica en\n"
-"/etc/sysconfig/keyboard. Puede ser configurado con el programa kbdconfig.\n"
-"Debe dejarse activo en la mayorĆ­a de las mĆquinas."
-
-#: ../../services.pm_.c:38
-msgid ""
-"Automatic regeneration of kernel header in /boot for\n"
-"/usr/include/linux/{autoconf,version}.h"
-msgstr ""
-"RegeneraciĆ³n automĆtica de la cabecera del nĆŗcleo en /boot para\n"
-"/usr/include/linux/{autoconf,version}.h"
-
-#: ../../services.pm_.c:40
-msgid "Automatic detection and configuration of hardware at boot."
-msgstr "DetecciĆ³n y configuraciĆ³n automĆtica del hardware al arrancar."
-
-#: ../../services.pm_.c:41
-msgid ""
-"Linuxconf will sometimes arrange to perform various tasks\n"
-"at boot-time to maintain the system configuration."
-msgstr ""
-"Linuxconf a veces realizarĆ varias tareas al arrancar para\n"
-"mantener la configuraciĆ³n del sistema."
-
-#: ../../services.pm_.c:43
-msgid ""
-"lpd is the print daemon required for lpr to work properly. It is\n"
-"basically a server that arbitrates print jobs to printer(s)."
-msgstr ""
-"lpd es el demonio de impresiĆ³n, necesario para que lpr funcione\n"
-"correctamente. BĆsicamente, es un servidor que coloca las tareas de\n"
-"impresiĆ³n en las colas de impresiĆ³n adecuadas para cada impresora."
-
-#: ../../services.pm_.c:45
-msgid ""
-"Linux Virtual Server, used to build a high-performance and highly\n"
-"available server."
-msgstr ""
-"El servidor virtual de Linux (LVS) se usa para construir servidores de alto\n"
-"rendimiento y alta disponibilidad."
-
-#: ../../services.pm_.c:47 ../../standalone/logdrake_.c:413
-msgid ""
-"named (BIND) is a Domain Name Server (DNS) that is used to resolve host "
-"names to IP addresses."
-msgstr ""
-"named (BIND) es un servidor de nombres de dominio (DNS) usado para convertir "
-"los nombres de mĆquinas en direcciones IP."
-
-#: ../../services.pm_.c:48
-msgid ""
-"Mounts and unmounts all Network File System (NFS), SMB (Lan\n"
-"Manager/Windows), and NCP (NetWare) mount points."
-msgstr ""
-"Monta y desmonta todos los puntos de montaje de sistemas de archivos\n"
-"compartidos por medio de la red; como NFS (Network File System),\n"
-"SMB (Lan Manager/Windows) y NCP (Netware)"
-
-#: ../../services.pm_.c:50
-msgid ""
-"Activates/Deactivates all network interfaces configured to start\n"
-"at boot time."
-msgstr ""
-"Activa/desactiva todas las interfaces de red configuradas para iniciarse\n"
-"en el arranque del sistema."
-
-#: ../../services.pm_.c:52
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP networks.\n"
-"This service provides NFS server functionality, which is configured via the\n"
-"/etc/exports file."
-msgstr ""
-"NFS es un protocolo muy popular para compartir archivos en redes TCP/IP.\n"
-"Este servicio proporciona la funcionalidad de servidor NFS, que se "
-"configura\n"
-"a travƩs del archivo /etc/exports."
-
-#: ../../services.pm_.c:55
-msgid ""
-"NFS is a popular protocol for file sharing across TCP/IP\n"
-"networks. This service provides NFS file locking functionality."
-msgstr ""
-"NFS es un protocolo muy popular para compartir archivos en redes TCP/IP.\n"
-"Este servicio proporciona la funcionalidad de bloqueo de archivos por NFS."
-
-#: ../../services.pm_.c:57
-msgid ""
-"Automatically switch on numlock key locker under console\n"
-"and XFree at boot."
-msgstr ""
-"Activar el bloqueo numĆ©rico automĆticamente bajo la consola y\n"
-"XFree al arrancar."
-
-#: ../../services.pm_.c:59
-msgid "Support the OKI 4w and compatible winprinters."
-msgstr "Admitir las win-impresoras OKI 4w y compatibles."
-
-#: ../../services.pm_.c:60
-msgid ""
-"PCMCIA support is usually to support things like ethernet and\n"
-"modems in laptops. It won't get started unless configured so it is safe to "
-"have\n"
-"it installed on machines that don't need it."
-msgstr ""
-"El soporte PCMCIA se usa por lo general para admitir cosas como tarjetas\n"
-"de red o mĆ³dems en ordenadores portĆtiles. No se iniciarĆ salvo que\n"
-"estƩ configurado, por lo que no es un problema tenerlo instalado\n"
-"en mĆquinas que no lo necesiten."
-
-#: ../../services.pm_.c:63
-msgid ""
-"The portmapper manages RPC connections, which are used by\n"
-"protocols such as NFS and NIS. The portmap server must be running on "
-"machines\n"
-"which act as servers for protocols which make use of the RPC mechanism."
-msgstr ""
-"El portmapper gestiona las conexiones RPC; que usan protocolos como\n"
-"NFS y NIS. El servidor portmap se debe estar ejecutando en los sistemas que "
-"actĆŗan\n"
-"como servidores para protocolos que usan el mecanismo RPC."
-
-#: ../../services.pm_.c:66 ../../standalone/logdrake_.c:415
-msgid ""
-"Postfix is a Mail Transport Agent, which is the program that moves mail from "
-"one machine to another."
-msgstr ""
-"Postfix es un agente de transporte de correo (MTA), es decir el programa "
-"encargado de enviar el correo electrĆ³nico de una mĆquina a otra."
-
-#: ../../services.pm_.c:67
-msgid ""
-"Saves and restores system entropy pool for higher quality random\n"
-"number generation."
-msgstr ""
-"Guarda y recupera el mecanismo de entropĆ­a del sistema; usado para la\n"
-"generaciĆ³n de nĆŗmeros aleatorios de gran calidad."
-
-#: ../../services.pm_.c:69
-msgid ""
-"Assign raw devices to block devices (such as hard drive\n"
-"partitions), for the use of applications such as Oracle"
-msgstr ""
-"Asignar dispositivos 'crudos' a dispositivos de bloque (como las "
-"particiones\n"
-"de los discos), para usar aplicaciones como Oracle"
-
-#: ../../services.pm_.c:71
-msgid ""
-"The routed daemon allows for automatic IP router table updated via\n"
-"the RIP protocol. While RIP is widely used on small networks, more complex\n"
-"routing protocols are needed for complex networks."
-msgstr ""
-"El demonio routed permite actualizar automĆticamente las tablas de "
-"enrutamiento IP\n"
-"gracias al protocolo RIP. Mientras que RIP se usa bastante en redes "
-"pequeƱas,\n"
-"para redes mĆs complejas, se necesitan protocolos de enrutamiento mĆs "
-"complejos."
-
-#: ../../services.pm_.c:74
-msgid ""
-"The rstat protocol allows users on a network to retrieve\n"
-"performance metrics for any machine on that network."
-msgstr ""
-"El protocolo rstat permite a los usuarios de una red recoger\n"
-"informaciĆ³n sobre el rendimiento de cualquier mĆquina de dicha red."
-
-#: ../../services.pm_.c:76
-msgid ""
-"The rusers protocol allows users on a network to identify who is\n"
-"logged in on other responding machines."
-msgstr ""
-"El protocolo rusers permite que los usuarios de una red identifiquen\n"
-"quien estĆ conectado en otras mĆquinas que respondan."
-
-#: ../../services.pm_.c:78
-msgid ""
-"The rwho protocol lets remote users get a list of all of the users\n"
-"logged into a machine running the rwho daemon (similiar to finger)."
-msgstr ""
-"El protocolo rwho permite que los usuarios remotos obtengan una lista\n"
-"de todos los usuarios conectados a una mĆquina que ejecuta el demonio rwho\n"
-"(similar al finger)."
-
-#: ../../services.pm_.c:80
-msgid "Launch the sound system on your machine"
-msgstr "Lanza el sistema de sonido en su mĆquina"
-
-#: ../../services.pm_.c:81
-msgid ""
-"Syslog is the facility by which many daemons use to log messages\n"
-"to various system log files. It is a good idea to always run syslog."
-msgstr ""
-"Syslog es el servicio a travƩs del que varios demonios van a enviar\n"
-"sus mensajes de registro, que syslog va a redirigir a varios archivos\n"
-"de registro(log). Es una buena idea ejecutar siempre syslog."
-
-#: ../../services.pm_.c:83
-msgid "Load the drivers for your usb devices."
-msgstr "Carga los controladores para sus dispositivos USB."
-
-#: ../../services.pm_.c:84
-msgid "Starts the X Font Server (this is mandatory for XFree to run)."
-msgstr "Inicia el servidor de tipografĆ­as X11 (obligatorio para correr XFree)."
-
-#: ../../services.pm_.c:110 ../../services.pm_.c:152
-msgid "Choose which services should be automatically started at boot time"
-msgstr "Seleccione quĆ© servicios se deben iniciar automĆticamente al arrancar"
-
-#: ../../services.pm_.c:122
-msgid "Printing"
-msgstr "Imprimiendo"
-
-#: ../../services.pm_.c:123
-msgid "Internet"
-msgstr "Internet"
-
-#: ../../services.pm_.c:126
-msgid "File sharing"
-msgstr "Compartir archivos"
-
-#: ../../services.pm_.c:128 ../../standalone/drakbackup_.c:934
-msgid "System"
-msgstr "Sistema"
-
-#: ../../services.pm_.c:133
-msgid "Remote Administration"
-msgstr "AdministraciĆ³n remota"
-
-#: ../../services.pm_.c:141
-msgid "Database Server"
-msgstr "Servidor de base de datos"
-
-#: ../../services.pm_.c:170
-#, c-format
-msgid "Services: %d activated for %d registered"
-msgstr "Servicios: %d activados de %d registrados"
-
-#: ../../services.pm_.c:186
-msgid "Services"
-msgstr "Servicios"
-
-#: ../../services.pm_.c:198
-msgid "running"
-msgstr "corriendo"
-
-#: ../../services.pm_.c:198
-msgid "stopped"
-msgstr "parado"
-
-#: ../../services.pm_.c:212
-msgid "Services and deamons"
-msgstr "Servicios y demonios"
-
-#: ../../services.pm_.c:217
-msgid ""
-"No additional information\n"
-"about this service, sorry."
-msgstr ""
-"No hay informaciĆ³n adicional para\n"
-"este servicio. Disculpe."
-
-#: ../../services.pm_.c:224
-msgid "On boot"
-msgstr "Al iniciar"
-
-#: ../../services.pm_.c:236
-msgid "Start"
-msgstr "Iniciar"
-
-#: ../../services.pm_.c:236
-msgid "Stop"
-msgstr "Parar"
-
-#: ../../share/advertising/00-thanks.pl_.c:9
-msgid "Thank you for choosing Mandrake Linux 8.2"
-msgstr "Gracias por elegir Mandrake Linux 8.2"
-
-#: ../../share/advertising/00-thanks.pl_.c:10
-msgid "Welcome to the Open Source world"
-msgstr "Bienvenido al mundo del CĆ³digo Abierto (Open Source)"
-
-#: ../../share/advertising/00-thanks.pl_.c:11
-msgid ""
-"The success of MandrakeSoft is based upon the principle of Free Software. "
-"Your new operating system is the result of collaborative work on the part of "
-"the worldwide Linux Community"
-msgstr ""
-"El Ć©xito de MandrakeSoft se basa en el principio del Software Libre. Su "
-"sistema operativo es el resultado del trabajo colaborativo de parte de la "
-"Comunidad Linux mundial"
-
-#: ../../share/advertising/01-gnu.pl_.c:9
-msgid "Join the Free Software world"
-msgstr "Ćnase al mundo del Software Libre"
-
-#: ../../share/advertising/01-gnu.pl_.c:10
-msgid ""
-"Get to know the Open Source community and become a member. Learn, teach, and "
-"help others by joining the many discussion forums that you will find in our "
-"\"Community\" webpages"
-msgstr ""
-"Conozca a la comunidad Open Source y sea un miembro. Aprenda, enseƱe, y "
-"ayude a otros uniĆ©ndose a los foros de discusiĆ³n que encontrarĆ en nuestras "
-"pĆginas web para la \"Comunidad\""
-
-#: ../../share/advertising/02-internet.pl_.c:9
-msgid "Internet and Messaging"
-msgstr "Internet y MensajerĆ­a"
-
-#: ../../share/advertising/02-internet.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best software to access everything the "
-"Internet has to offer: Surf the web & view animations with Mozilla and "
-"Konqueror, exchange email & organize your personal information with "
-"Evolution and Kmail, and much more"
-msgstr ""
-"Mandrake Linux 8.2 le brinda la mejor selecciĆ³n de software para acceder a "
-"todo lo que tiene para ofrecer la Internet: Navegue la web y vea animaciones "
-"con Mozilla y Konqueror, intercambie correo-e y organice su informaciĆ³n "
-"personal con Evolution y KMail, y mucho mĆs"
-
-#: ../../share/advertising/03-graphic.pl_.c:9
-msgid "Multimedia and Graphics"
-msgstr "Multimedios y GrĆficos"
-
-#: ../../share/advertising/03-graphic.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 lets you push your multimedia computer to its limits! Use "
-"the latest software to play music and audio files, edit and organize your "
-"images and photos, watch TV and videos, and much more"
-msgstr ""
-"ĀMandrake Linux 8.2 le permitirĆ llevar a su computadora multimedios al "
-"lĆ­mite! Use el Ćŗltimo software para reproducir mĆŗsica y archivos de audio, "
-"edite y organice sus imĆgenes y fotos, mire TV y reproduzca vĆ­deos, y mucho "
-"mĆs"
-
-#: ../../share/advertising/04-develop.pl_.c:9
-msgid "Development"
-msgstr "Desarrollo"
-
-#: ../../share/advertising/04-develop.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 is the ultimate development platform. Discover the power "
-"of the GNU gcc compiler as well as the best Open Source development "
-"environments"
-msgstr ""
-"Mandrake Linux 8.2 es la plataforma de desarrollo definitiva. Descubra el "
-"poder del compilador GNU gcc asƭ como tambiƩn los mejores entornos de "
-"desarrollo de CĆ³digo Abierto"
-
-#: ../../share/advertising/05-contcenter.pl_.c:9
-msgid "Mandrake Control Center"
-msgstr "Centro de control de Mandrake"
-
-#: ../../share/advertising/05-contcenter.pl_.c:10
-msgid ""
-"The Mandrake Linux 8.2 Control Center is a one-stop location for fully "
-"customizing and configuring your Mandrake system"
-msgstr ""
-"El Centro de Control de Mandrake Linux 8.2 es un lugar Ćŗnico para "
-"personalizar y configurar su sistema Mandrake por completo"
-
-#: ../../share/advertising/06-user.pl_.c:9
-msgid "User interfaces"
-msgstr "Interfaces de usuario"
-
-#: ../../share/advertising/06-user.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides 11 different graphical desktop environments and "
-"window managers to choose from including GNOME 1.4, KDE 2.2.2, Window Maker "
-"0.8, and the rest"
-msgstr ""
-"Mandrake Linux 8.2 brinda 11 entornos de escritorio grĆficos y "
-"administradores de ventanas distintos para elegir, incluyendo a GNOME 1.4, "
-"KDE 2.2.2, Window Maker 0.8, y otros"
-
-#: ../../share/advertising/07-server.pl_.c:9
-msgid "Server Software"
-msgstr "Software de servidor"
-
-#: ../../share/advertising/07-server.pl_.c:10
-msgid ""
-"Transform your machine into a powerful server with just a few clicks of the "
-"mouse: Web server, email, firewall, router, file and print server, ..."
-msgstr ""
-"Transforme su mĆquina en un servidor potente con unos pocos clic del ratĆ³n: "
-"servidor web, de correo, cortafuegos, router, servidor de archivos e "
-"impresoras, ..."
-
-#: ../../share/advertising/08-games.pl_.c:9
-msgid "Games"
-msgstr "Juegos"
-
-#: ../../share/advertising/08-games.pl_.c:10
-msgid ""
-"Mandrake Linux 8.2 provides the best Open Source games - arcade, action, "
-"cards, sports, strategy, ..."
-msgstr ""
-"Mandrake Linux 8.2 brinda lo mejor en juegos de CĆ³digo Abierto - arcade, "
-"acciĆ³n, naipes, deportes, estrategia, ..."
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:9
-msgid "MandrakeCampus"
-msgstr "MandrakeCampus"
-
-#: ../../share/advertising/09-MDKcampus.pl_.c:10
-msgid ""
-"Would you like to learn Linux simply, quickly, and for free? MandrakeSoft "
-"provides free Linux training, as well as a way to test your progress, at "
-"MandrakeCampus -- our online training center"
-msgstr ""
-"ĀæDesea aprender Linux de manera simple, rĆpida, y gratis? MandrakeSoft le "
-"proporciona entrenamiento libre en Linux, asƭ como tambiƩn una manera de "
-"probar su progreso, en MandrakeCampus -- nuestro centro de entrenamiento en "
-"lĆ­nea"
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:9
-msgid "MandrakeExpert"
-msgstr "MandrakeExpert"
-
-#: ../../share/advertising/10-MDKexpert.pl_.c:10
-msgid ""
-"Quality support from the Linux Community, and from MandrakeSoft, is just "
-"around the corner. And if you're already a Linux veteran, become an \"Expert"
-"\" and share your knowledge at our support website"
-msgstr ""
-"El soporte de calidad de la Comunidad Linux, y de MandrakeSoft, estĆ "
-"simplemente a la vuelta de la esquina. y si ya es un veterano de Linux, "
-"conviƩrtase en \"Experto\" y comparta su conocimiento en nuestro sitio web "
-"de soporte"
-
-#: ../../share/advertising/11-consul.pl_.c:9
-msgid "MandrakeConsulting"
-msgstr "MandrakeConsulting"
-
-#: ../../share/advertising/11-consul.pl_.c:10
-msgid ""
-"For all of your IT projects, our consultants are ready to analyze your "
-"requirements and offer a customized solution. Benefit from MandrakeSoft's "
-"vast experience as a Linux producer to provide a true IT alternative for "
-"your business organization"
-msgstr ""
-"Nuestros consultores estĆn listos para analizar sus necesidades y ofrecerle "
-"una soluciĆ³n persoanlizada para todos sus proyectos de IT. Aproveche la "
-"vasta experiencia de MandrakeSoft como productor de Linux para brindar una "
-"alternativa IT verdadera para su organizaciĆ³n de negocios"
-
-#: ../../share/advertising/12-MDKstore.pl_.c:9
-msgid "MandrakeStore"
-msgstr "MandrakeStore"
-
-#: ../../share/advertising/12-MDKstore.pl_.c:10
-msgid ""
-"A full range of Linux solutions, as well as special offers on products and "
-"'goodies', are available online at our e-store"
-msgstr ""
-"En nuestra tienda electrĆ³nica en lĆ­nea estĆn disponibles el rango completo "
-"de soluciones Linux, asƭ como tambiƩn ofertas especiales sobre los productos "
-"y otras \"cositas\""
-
-#: ../../share/advertising/13-Nvert.pl_.c:9
-msgid ""
-"For more information on MandrakeSoft's Professional Services and commercial "
-"offerings, please see the following web page:"
-msgstr ""
-"Para mĆs informaciĆ³n sobre los Servicios Profesionales de MandrakeSoft y las "
-"ofertas comerciales, por favor vea la pĆgina web siguiente:"
-
-#: ../../share/advertising/13-Nvert.pl_.c:11
-msgid "http://www.mandrakesoft.com/sales/contact"
-msgstr "http://www.mandrakesoft.com/sales/contact"
-
-#: ../../standalone.pm_.c:25
-msgid "Installing packages..."
-msgstr "Instalando paquetes..."
-
-#: ../../standalone/diskdrake_.c:85
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I'll try to go on blanking bad partitions"
-msgstr ""
-"No se puede leer su tabla de particiones, estĆ demasiado deteriorada :-(\n"
-"Se intentarĆ ir poniendo en blanco las particiones malas"
-
-#: ../../standalone/drakautoinst_.c:45
-msgid "Error!"
-msgstr "ĀError!"
-
-#: ../../standalone/drakautoinst_.c:46
-#, c-format
-msgid "I can't find needed image file `%s'."
-msgstr "No se encuentra el archivo de imagen `%s' necesario."
-
-#: ../../standalone/drakautoinst_.c:48
-msgid "Auto Install Configurator"
-msgstr "Configurador de InstalaciĆ³n AutomĆtica"
-
-#: ../../standalone/drakautoinst_.c:49
-msgid ""
-"You are about to configure an Auto Install floppy. This feature is somewhat "
-"dangerous and must be used circumspectly.\n"
-"\n"
-"With that feature, you will be able to replay the installation you've "
-"performed on this computer, being interactively prompted for some steps, in "
-"order to change their values.\n"
-"\n"
-"For maximum safety, the partitioning and formatting will never be performed "
-"automatically, whatever you chose during the install of this computer.\n"
-"\n"
-"Do you want to continue?"
-msgstr ""
-"EstĆ a punto de configurar el un disquete de InstalaciĆ³n AutomĆtica. Esta "
-"caracterĆ­stica es algo peligrosa y debe ser utilizada con cuidado.\n"
-"\n"
-"Con esa caracterĆ­stica, podrĆ repetir la instalaciĆ³n que ha realizado en "
-"esta computadora, y se le consultarĆ interactivamente en algunos pasos, para "
-"poder cambiar los valores de los mismos.\n"
-"\n"
-"Para mĆxima seguridad, el particionado y formateado nunca serĆ realizado "
-"automĆticamente, sin importar lo que eligiĆ³ durante la instalaciĆ³n de esta "
-"computadora.\n"
-"\n"
-"ĀæDesea continuar?"
-
-#: ../../standalone/drakautoinst_.c:71
-msgid "Automatic Steps Configuration"
-msgstr "ConfiguraciĆ³n de pasos automĆticos"
-
-#: ../../standalone/drakautoinst_.c:72
-msgid ""
-"Please choose for each step whether it will replay like your install, or it "
-"will be manual"
-msgstr ""
-"Por favor, elija para cada paso si desea que se repita como su instalaciĆ³n, "
-"o el mismo serĆ manual"
-
-#: ../../standalone/drakautoinst_.c:145
-msgid ""
-"\n"
-"Welcome.\n"
-"\n"
-"The parameters of the auto-install are available in the sections on the left"
-msgstr ""
-"\n"
-"Bienvenido.\n"
-"\n"
-"Los parĆmetros de la instalaciĆ³n automĆticas estĆn disponibles en las "
-"secciones de la izquierda"
-
-#: ../../standalone/drakautoinst_.c:243 ../../standalone/drakgw_.c:671
-#: ../../standalone/scannerdrake_.c:106
-msgid "Congratulations!"
-msgstr "ĀFelicidades!"
-
-#: ../../standalone/drakautoinst_.c:244
-msgid ""
-"The floppy has been successfully generated.\n"
-"You may now replay your installation."
-msgstr ""
-"El disquete ha sido generado satisfactoriamente.\n"
-"Ahora puede repetir su instalaciĆ³n."
-
-#: ../../standalone/drakautoinst_.c:282
-msgid "Auto Install"
-msgstr "InstalaciĆ³n automĆtica"
-
-#: ../../standalone/drakautoinst_.c:352
-msgid "Add an item"
-msgstr "AƱadir un elemento"
-
-#: ../../standalone/drakautoinst_.c:359
-msgid "Remove the last item"
-msgstr "Borrar el Ćŗltimo elemento"
-
-#: ../../standalone/drakbackup_.c:448 ../../standalone/drakbackup_.c:451
-#: ../../standalone/drakbackup_.c:455
-msgid ""
-"***********************************************************************\n"
-"\n"
-msgstr ""
-"***********************************************************************\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:449
-msgid ""
-"\n"
-" DrakBackup Report \n"
-"\n"
-msgstr ""
-"\n"
-" Reporte de DrakBackup \n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:450
-msgid ""
-"\n"
-" DrakBackup Daemon Report\n"
-"\n"
-"\n"
-msgstr ""
-"\n"
-" Reporte del servidor DrakBackup\n"
-"\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:453
-msgid ""
-"\n"
-"\n"
-"***********************************************************************\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"***********************************************************************\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:454
-msgid ""
-"\n"
-" DrakBackup Report Details\n"
-"\n"
-"\n"
-msgstr ""
-"\n"
-" Detalles del reporte de DrakBackup\n"
-"\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:476
-msgid "total progess"
-msgstr "progreso total"
-
-#: ../../standalone/drakbackup_.c:555 ../../standalone/drakbackup_.c:602
-msgid "Backup system files..."
-msgstr "Respaldar archivos del sistema..."
-
-#: ../../standalone/drakbackup_.c:603 ../../standalone/drakbackup_.c:667
-msgid "Hard Disk Backup files..."
-msgstr "Respaldar archivos del disco rĆ­gido..."
-
-#: ../../standalone/drakbackup_.c:615
-msgid "Backup User files..."
-msgstr "Respaldar archivos de usuario..."
-
-#: ../../standalone/drakbackup_.c:616
-msgid "Hard Disk Backup Progress..."
-msgstr "Progreso de respaldo del disco rĆ­gido..."
-
-#: ../../standalone/drakbackup_.c:666
-msgid "Backup Other files..."
-msgstr "Respaldar otros archivos..."
-
-#: ../../standalone/drakbackup_.c:674
-#, c-format
-msgid ""
-"file list send by FTP : %s\n"
-" "
-msgstr ""
-"Lista de archivos envĆ­ada por FTP: %s\n"
-" "
-
-#: ../../standalone/drakbackup_.c:677
-msgid ""
-"\n"
-"(!) FTP connexion problem: It was not possible to send your backup files by "
-"FTP.\n"
-msgstr ""
-"\n"
-"(!) Problema en la conexiĆ³n FTP. No fue posible enviar sus archivos de copia "
-"de seguridad por FTP.\n"
-
-#: ../../standalone/drakbackup_.c:687
-msgid "(!) Error during mail sending. \n"
-msgstr "(!) Error durante el envĆ­o de correo. \n"
-
-#: ../../standalone/drakbackup_.c:728 ../../standalone/drakbackup_.c:739
-#: ../../standalone/drakbackup_.c:750 ../../standalone/drakfont_.c:787
-msgid "File Selection"
-msgstr "SelecciĆ³n de archivos."
-
-#: ../../standalone/drakbackup_.c:755
-msgid "Select the files or directories and click on 'Add'"
-msgstr "Seleccione los archivos o directorios y haga clic sobre 'Agregar'"
-
-#: ../../standalone/drakbackup_.c:790
-msgid ""
-"\n"
-"Please check all options that you need.\n"
-msgstr ""
-"\n"
-"Por favor, verifique todas las opciones que necesita.\n"
-
-#: ../../standalone/drakbackup_.c:791
-msgid ""
-"These options can backup and restore all files in your /etc directory.\n"
-msgstr ""
-"Estas opciones pueden respaldar y restaurar todos los archivos en el "
-"directorio /etc.\n"
-
-#: ../../standalone/drakbackup_.c:792
-msgid "Backup your System files. ( /etc directory )"
-msgstr "Respaldar archivos del sistema. (directorio /etc)"
-
-#: ../../standalone/drakbackup_.c:793
-msgid "Use incremental backup (do not replace old backups)"
-msgstr "Usar repaldo incremental (no reemplazar respaldos antiguos)"
-
-#: ../../standalone/drakbackup_.c:794
-msgid "Do not include critical files (passwd, group, fstab)"
-msgstr "No incluir archivos crĆ­ticos (passwd, group, fstab)"
-
-#: ../../standalone/drakbackup_.c:795
-msgid ""
-"With this option you will be able to restore any version\n"
-" of your /etc directory."
-msgstr ""
-"Con esta opciĆ³n podrĆ restaurar cualquier versiĆ³n de su\n"
-"directorio /etc."
-
-#: ../../standalone/drakbackup_.c:812
-msgid "Please check all users that you want to include in your backup."
-msgstr ""
-"Por favor, marque a todos los usuarios que desa incluir en la copia de "
-"respaldo"
-
-#: ../../standalone/drakbackup_.c:839
-msgid "Do not include the browser cache"
-msgstr "No incluir el cache del navegador"
-
-#: ../../standalone/drakbackup_.c:840 ../../standalone/drakbackup_.c:864
-msgid "Use Incremental Backups (do not replace old backups)"
-msgstr "Usar respaldos incrementales (no reemplazar respaldos antiguos)"
-
-#: ../../standalone/drakbackup_.c:862 ../../standalone/drakfont_.c:827
-msgid "Remove Selected"
-msgstr "Quitar los seleccionados."
-
-#: ../../standalone/drakbackup_.c:900
-msgid "Windows (FAT32)"
-msgstr "Windows (FAT32)"
-
-#: ../../standalone/drakbackup_.c:939
-msgid "Users"
-msgstr "Usuarios"
-
-#: ../../standalone/drakbackup_.c:964
-msgid "Use FTP connection to backup"
-msgstr "Usar conexiĆ³n FTP para realizar copia de respaldo"
-
-#: ../../standalone/drakbackup_.c:967
-msgid "Please enter the host name or IP."
-msgstr "Por favor, ingrese el nombre o la IP del host"
-
-#: ../../standalone/drakbackup_.c:972
-msgid ""
-"Please enter the directory to\n"
-" put the backup on this host."
-msgstr ""
-"Por favor, ingrese el directorio en este host para\n"
-" guardar la copia de respaldo."
-
-#: ../../standalone/drakbackup_.c:977
-msgid "Please enter your login"
-msgstr "Por favor, ingrese su nombre de usuario (login)"
-
-#: ../../standalone/drakbackup_.c:982
-msgid "Please enter your password"
-msgstr "Por favor, ingrese su contraseƱa"
-
-#: ../../standalone/drakbackup_.c:988
-msgid "Remember this password"
-msgstr "Recordar esta contraseƱa"
-
-#: ../../standalone/drakbackup_.c:1052 ../../standalone/drakbackup_.c:2048
-msgid "FTP Connection"
-msgstr "ConexiĆ³n FTP"
-
-#: ../../standalone/drakbackup_.c:1059 ../../standalone/drakbackup_.c:2056
-msgid "Secure Connection"
-msgstr "ConexiĆ³n segura"
-
-#: ../../standalone/drakbackup_.c:1085 ../../standalone/drakbackup_.c:2889
-msgid "Use CD/DVDROM to backup"
-msgstr "Usar CD/DVDROM para la copia de respaldo"
-
-#: ../../standalone/drakbackup_.c:1088 ../../standalone/drakbackup_.c:2893
-msgid "Please choose your CD space"
-msgstr "Por favor, elija el espacio de su CD"
-
-#: ../../standalone/drakbackup_.c:1094 ../../standalone/drakbackup_.c:2905
-msgid "Please check if you are using CDRW media"
-msgstr "Por favor, verifique que estĆ utilizando un soporte CDRW"
-
-#: ../../standalone/drakbackup_.c:1100 ../../standalone/drakbackup_.c:2911
-msgid "Please check if you want to erase your CDRW before"
-msgstr "Por favor, verifique si desea borrar su CDRW primero"
-
-#: ../../standalone/drakbackup_.c:1106
-msgid ""
-"Please check if you want to include\n"
-" install boot on your CD."
-msgstr ""
-"Por favor verifique si desea hacer que su\n"
-" CD arranque."
-
-#: ../../standalone/drakbackup_.c:1112
-msgid ""
-"Please enter your CD Writer device name\n"
-" ex: 0,1,0"
-msgstr ""
-"Por favor, ingrese el nombre del dispositivo de\n"
-" su grabadora de CD, ej: 0,1,0"
-
-#: ../../standalone/drakbackup_.c:1153
-msgid "Use tape to backup"
-msgstr "Usar cinta para realizar respaldo"
-
-#: ../../standalone/drakbackup_.c:1156
-msgid "Please enter the device name to use for backup"
-msgstr ""
-"Por favor, ingrese el nombre del dispositivo a utilizar para el respaldo"
-
-#: ../../standalone/drakbackup_.c:1162 ../../standalone/drakbackup_.c:1203
-#: ../../standalone/drakbackup_.c:2013
-msgid ""
-"Please enter the maximum size\n"
-" allowed for Drakbackup"
-msgstr ""
-"Por favor, ingrese el tamaƱo mĆximo\n"
-" permitido para Drakbackup"
-
-#: ../../standalone/drakbackup_.c:1195 ../../standalone/drakbackup_.c:2005
-msgid "Please enter the directory to save:"
-msgstr "Por favor, ingrese el directorio a guardar:"
-
-#: ../../standalone/drakbackup_.c:1209 ../../standalone/drakbackup_.c:2019
-msgid "Use quota for backup files."
-msgstr "Usar cuota para archivos de respaldo"
-
-#: ../../standalone/drakbackup_.c:1267
-msgid "Network"
-msgstr "Red"
-
-#: ../../standalone/drakbackup_.c:1272
-msgid "CDROM / DVDROM"
-msgstr "CDROM / DVDROM"
-
-#: ../../standalone/drakbackup_.c:1277
-msgid "HardDrive / NFS"
-msgstr "Disco rĆ­gido / NFS"
-
-#: ../../standalone/drakbackup_.c:1297 ../../standalone/drakbackup_.c:1301
-#: ../../standalone/drakbackup_.c:1305
-msgid "hourly"
-msgstr "Cada hora."
-
-#: ../../standalone/drakbackup_.c:1298 ../../standalone/drakbackup_.c:1302
-#: ../../standalone/drakbackup_.c:1305
-msgid "daily"
-msgstr "Cada dĆ­a."
-
-#: ../../standalone/drakbackup_.c:1299 ../../standalone/drakbackup_.c:1303
-#: ../../standalone/drakbackup_.c:1305
-msgid "weekly"
-msgstr "Cada semana."
-
-#: ../../standalone/drakbackup_.c:1300 ../../standalone/drakbackup_.c:1304
-#: ../../standalone/drakbackup_.c:1305
-msgid "monthly"
-msgstr "Cada mes."
-
-#: ../../standalone/drakbackup_.c:1312
-msgid "Use daemon"
-msgstr "Usar servidor"
-
-#: ../../standalone/drakbackup_.c:1317
-msgid ""
-"Please choose the time \n"
-"interval between each backup"
-msgstr ""
-"Por favor, elija el intervalo de\n"
-" tiempo entre cada copia de respaldo"
-
-#: ../../standalone/drakbackup_.c:1323
-msgid ""
-"Please choose the\n"
-"media for backup."
-msgstr ""
-"Por favor, elija el soporte\n"
-"para la copia de respaldo."
-
-#: ../../standalone/drakbackup_.c:1327
-msgid "Use Hard Drive with daemon"
-msgstr "Usar el disco rĆ­gido con servidor"
-
-#: ../../standalone/drakbackup_.c:1329
-msgid "Use FTP with daemon"
-msgstr "Usar FTP con servidor"
-
-#: ../../standalone/drakbackup_.c:1333
-msgid "Please be sure that the cron daemon is included in your services."
-msgstr ""
-"Por favor, asegĆŗrese que el servidor cron estĆ incluĆ­do entre sus servicios."
-
-#: ../../standalone/drakbackup_.c:1369
-msgid "Send mail report after each backup to :"
-msgstr "Enviar reporte por correo-e luego de cada respaldo a :"
-
-#: ../../standalone/drakbackup_.c:1411
-msgid "What"
-msgstr "QuƩ"
-
-#: ../../standalone/drakbackup_.c:1416
-msgid "Where"
-msgstr "DĆ³nde"
-
-#: ../../standalone/drakbackup_.c:1421
-msgid "When"
-msgstr "CuĆndo"
-
-#: ../../standalone/drakbackup_.c:1426
-msgid "More Options"
-msgstr "MĆs opciones"
-
-#: ../../standalone/drakbackup_.c:1445 ../../standalone/drakbackup_.c:2801
-msgid "Drakbackup Configuration"
-msgstr "ConfiguraciĆ³n de Drakbackup"
-
-#: ../../standalone/drakbackup_.c:1463
-msgid "Please choose where you want to backup"
-msgstr "Por favor, elija dĆ³nde desea realizar la copia de respaldo"
-
-#: ../../standalone/drakbackup_.c:1465
-msgid "on Hard Drive"
-msgstr "en disco rĆ­gido"
-
-#: ../../standalone/drakbackup_.c:1476
-msgid "across Network"
-msgstr "a travƩs de la red"
-
-#: ../../standalone/drakbackup_.c:1540
-msgid "Please choose what you want to backup"
-msgstr "Por favor, elija quƩ desea respaldar"
-
-#: ../../standalone/drakbackup_.c:1541
-msgid "Backup system"
-msgstr "Respaldar el sistema"
-
-#: ../../standalone/drakbackup_.c:1542
-msgid "Backup Users"
-msgstr "Respaldar usuarios"
-
-#: ../../standalone/drakbackup_.c:1545
-msgid "Select user manually"
-msgstr "Seleccionar manualmente el usuario"
-
-#: ../../standalone/drakbackup_.c:1627
-msgid ""
-"\n"
-"Backup Sources: \n"
-msgstr ""
-"\n"
-"Fuentes de respaldo: \n"
-
-#: ../../standalone/drakbackup_.c:1628
-msgid ""
-"\n"
-"- System Files:\n"
-msgstr ""
-"\n"
-"- Archivos del sistema:\n"
-
-#: ../../standalone/drakbackup_.c:1630
-msgid ""
-"\n"
-"- User Files:\n"
-msgstr ""
-"\n"
-"- Archivos de usuario:\n"
-
-#: ../../standalone/drakbackup_.c:1632
-msgid ""
-"\n"
-"- Other Files:\n"
-msgstr ""
-"\n"
-"- Otros archivos:\n"
-
-#: ../../standalone/drakbackup_.c:1634
-#, c-format
-msgid ""
-"\n"
-"- Save on Hard drive on path : %s\n"
-msgstr ""
-"\n"
-"- Guardar en el disco en la ruta : %s\n"
-
-#: ../../standalone/drakbackup_.c:1635
-#, c-format
-msgid ""
-"\n"
-"- Save on FTP on host : %s\n"
-msgstr ""
-"\n"
-"- Guardar por FTP en el host : %s\n"
-
-#: ../../standalone/drakbackup_.c:1636
-#, c-format
-msgid ""
-"\t\t user name: %s\n"
-"\t\t on path: %s \n"
-msgstr ""
-"\t\t nombre de usuario: %s\n"
-"\t\t en ruta: %s \n"
-
-#: ../../standalone/drakbackup_.c:1637
-msgid ""
-"\n"
-"- Options:\n"
-msgstr ""
-"\n"
-"- Opciones:\n"
-
-#: ../../standalone/drakbackup_.c:1638
-msgid "\tDo not include System Files\n"
-msgstr "\tNo incluir archivos del sistema\n"
-
-#: ../../standalone/drakbackup_.c:1639
-msgid "\tBackups use tar and bzip2\n"
-msgstr "\tRespaldar usando tar y bzip2\n"
-
-#: ../../standalone/drakbackup_.c:1640
-msgid "\tBackups use tar and gzip\n"
-msgstr "\tRespaldar usando tar y gzip\n"
-
-#: ../../standalone/drakbackup_.c:1641
-#, c-format
-msgid ""
-"\n"
-"- Daemon (%s) include :\n"
-msgstr ""
-"\n"
-"- Servidor (%s) incluye :\n"
-
-#: ../../standalone/drakbackup_.c:1642
-msgid "\t-Hard drive.\n"
-msgstr "\t-Disco rĆ­gido.\n"
-
-#: ../../standalone/drakbackup_.c:1643
-msgid "\t-CDROM.\n"
-msgstr "\t-CDROM.\n"
-
-#: ../../standalone/drakbackup_.c:1644
-msgid "\t-Network by FTP.\n"
-msgstr "\t-Red por FTP.\n"
-
-#: ../../standalone/drakbackup_.c:1645
-msgid "\t-Network by SSH.\n"
-msgstr "\t-Red por SSH.\n"
-
-#: ../../standalone/drakbackup_.c:1647
-msgid "No configuration, please click Wizard or Advanced.\n"
-msgstr ""
-"Sin configuraciĆ³n, por favor haga clic sobre el Asistente o Avanzado.\n"
-
-#: ../../standalone/drakbackup_.c:1652
-msgid ""
-"List of data to restore:\n"
-"\n"
-msgstr ""
-"Lista de datos a restaurar:\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:1753
-msgid ""
-"List of data corrupted:\n"
-"\n"
-msgstr ""
-"Lista de datos corruptos:\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:1755
-msgid "Please uncheck or remove it on next time."
-msgstr "Por favor, desmarque o quĆ­telo la prĆ³xima vez."
-
-#: ../../standalone/drakbackup_.c:1765
-msgid "Backup files are corrupted"
-msgstr "Los archivos de respaldo estĆn corruptos"
-
-#: ../../standalone/drakbackup_.c:1786
-msgid " All your selectionned data have been "
-msgstr " Todos los datos seleccionados han sido "
-
-#: ../../standalone/drakbackup_.c:1787
-#, c-format
-msgid " Successfuly Restored on %s "
-msgstr " Recuperados satisfactoriamente en %s"
-
-#: ../../standalone/drakbackup_.c:1886
-msgid " Restore Configuration "
-msgstr " ConfiguraciĆ³n de la restauraciĆ³n"
-
-#: ../../standalone/drakbackup_.c:1904
-msgid "OK to restore the other files."
-msgstr "Se pueden restaurar los otros archivos."
-
-#: ../../standalone/drakbackup_.c:1922
-msgid "User list to restore (only the most recent date per user is important)"
-msgstr ""
-"Lista de usuarios a restaurar (sĆ³lo importa la fecha mĆs reciente por "
-"usuario)"
-
-#: ../../standalone/drakbackup_.c:1972
-msgid "Backup the system files before:"
-msgstr "Respaldar los archivos del sistema anteriores a:"
-
-#: ../../standalone/drakbackup_.c:1974
-msgid "please choose the date to restore"
-msgstr "Por favor, elija la fecha para restaurar"
-
-#: ../../standalone/drakbackup_.c:2002
-msgid "Use Hard Disk to backup"
-msgstr "Usar el disco rĆ­gido para copia de respaldo"
-
-#: ../../standalone/drakbackup_.c:2083
-msgid "Restore from Hard Disk."
-msgstr "Restaurar desde el disco rĆ­gido."
-
-#: ../../standalone/drakbackup_.c:2085
-msgid "Please enter the directory where backups are stored"
-msgstr ""
-"Por favor, ingrese el directorio donde se almacenan las copias de respaldo"
-
-#: ../../standalone/drakbackup_.c:2143
-msgid "Select another media to restore from"
-msgstr "Elija otro soporte desde el cual restaurar"
-
-#: ../../standalone/drakbackup_.c:2145
-msgid "Other Media"
-msgstr "Otros soportes"
-
-#: ../../standalone/drakbackup_.c:2151
-msgid "Restore system"
-msgstr "Restaurar archivos del sistema"
-
-#: ../../standalone/drakbackup_.c:2152
-msgid "Restore Users"
-msgstr "Restaurar usuarios"
-
-#: ../../standalone/drakbackup_.c:2153
-msgid "Restore Other"
-msgstr "Restaurar otros"
-
-#: ../../standalone/drakbackup_.c:2155
-msgid "select path to restore (instead of / )"
-msgstr "seleccione la ruta para restaurar (en vez de /)"
-
-#: ../../standalone/drakbackup_.c:2159
-msgid "Do new backup before restore (only for incremental backups.)"
-msgstr ""
-"Realizar respaldo nuevo antes de restaurar (sĆ³lo para respaldos "
-"incrementales)"
-
-#: ../../standalone/drakbackup_.c:2160
-msgid "Remove user directories before restore."
-msgstr "Borrar directorios de los usuarios antes de restaurar."
-
-#: ../../standalone/drakbackup_.c:2217
-msgid "Restore all backups"
-msgstr "Restaurar todas las copias de respaldo"
-
-#: ../../standalone/drakbackup_.c:2225
-msgid "Custom Restore"
-msgstr "RestauraciĆ³n personalizada"
-
-#: ../../standalone/drakbackup_.c:2266 ../../standalone/drakbackup_.c:2291
-#: ../../standalone/drakbackup_.c:2312 ../../standalone/drakbackup_.c:2333
-#: ../../standalone/drakbackup_.c:2351 ../../standalone/drakbackup_.c:2383
-#: ../../standalone/drakbackup_.c:2399 ../../standalone/drakbackup_.c:2419
-#: ../../standalone/drakbackup_.c:2438 ../../standalone/drakbackup_.c:2460
-#: ../../standalone/drakfont_.c:575
-msgid "Help"
-msgstr "Ayuda"
-
-#: ../../standalone/drakbackup_.c:2269 ../../standalone/drakbackup_.c:2296
-#: ../../standalone/drakbackup_.c:2315 ../../standalone/drakbackup_.c:2336
-#: ../../standalone/drakbackup_.c:2354 ../../standalone/drakbackup_.c:2402
-#: ../../standalone/drakbackup_.c:2422 ../../standalone/drakbackup_.c:2441
-msgid "Previous"
-msgstr "Anterior"
-
-#: ../../standalone/drakbackup_.c:2271 ../../standalone/drakbackup_.c:2338
-#: ../../standalone/logdrake_.c:224
-msgid "Save"
-msgstr "Guardar"
-
-#: ../../standalone/drakbackup_.c:2317
-msgid "Build Backup"
-msgstr "Realizar copia de respaldo"
-
-#: ../../standalone/drakbackup_.c:2356 ../../standalone/drakbackup_.c:3033
-msgid "Restore"
-msgstr "Restaurar"
-
-#: ../../standalone/drakbackup_.c:2404 ../../standalone/drakbackup_.c:2424
-#: ../../standalone/drakbackup_.c:2445
-msgid "Next"
-msgstr "Siguiente"
-
-#: ../../standalone/drakbackup_.c:2478
-msgid ""
-"Please Build backup before to restore it...\n"
-" or verify that your path to save is correct."
-msgstr ""
-"Por favor, realize la copia de respaldo antes de restaurarla...\n"
-" o verifique que la ruta para almacenar es correcta."
-
-#: ../../standalone/drakbackup_.c:2499
-msgid ""
-"Error durind sendmail\n"
-" your report mail was not sent\n"
-" Please configure sendmail"
-msgstr ""
-"Error enviando correo con sendmail\n"
-" su correo-e de reporte no se enviĆ³\n"
-" Por favor, configure a sendmail"
-
-#: ../../standalone/drakbackup_.c:2522
-msgid "Package List to Install"
-msgstr "Lista de paquetes a instalar"
-
-#: ../../standalone/drakbackup_.c:2550
-msgid ""
-"Error durind sending file via FTP.\n"
-" Please correct your FTP configuration."
-msgstr ""
-"Error enviando el archivo por FTP.\n"
-" Por favor, corrija su configuraciĆ³n de FTP."
-
-#: ../../standalone/drakbackup_.c:2573
-msgid "Please select data to restore..."
-msgstr "Por favor, seleccione los datos a restaurar..."
-
-#: ../../standalone/drakbackup_.c:2594
-msgid "Please select media for backup..."
-msgstr "Por favor, seleccione el soporte para la copia de respaldo..."
-
-#: ../../standalone/drakbackup_.c:2616
-msgid "Please select data to backup..."
-msgstr "Por favor, elija los datos a respaldar..."
-
-#: ../../standalone/drakbackup_.c:2638
-msgid ""
-"No configuration file found \n"
-"please click Wizard or Advanced."
-msgstr ""
-"No se econtrĆ³ el archivo de configuraciĆ³n,\n"
-" por favor haga clic sobre Asistente o Avanzado."
-
-#: ../../standalone/drakbackup_.c:2659
-msgid "Under Devel ... please wait."
-msgstr "En desarrollo ... por favor, espere."
-
-#: ../../standalone/drakbackup_.c:2739
-msgid "Backup system files"
-msgstr "Respaldar archivos del sistema"
-
-#: ../../standalone/drakbackup_.c:2741
-msgid "Backup user files"
-msgstr "Respaldar archivos de usuarios"
-
-#: ../../standalone/drakbackup_.c:2743
-msgid "Backup other files"
-msgstr "Respaldar otros archivos"
-
-#: ../../standalone/drakbackup_.c:2745 ../../standalone/drakbackup_.c:2776
-msgid "Total Progress"
-msgstr "Progreso total"
-
-#: ../../standalone/drakbackup_.c:2767
-msgid "files sending by FTP"
-msgstr "EnvĆ­o de archivos por FTP"
-
-#: ../../standalone/drakbackup_.c:2771
-msgid "Sending files..."
-msgstr "Enviando archivos..."
-
-#: ../../standalone/drakbackup_.c:2841
-msgid "Data list to include on CDROM."
-msgstr "Lista de datos a incluir en el CDROM."
-
-#: ../../standalone/drakbackup_.c:2899
-msgid "Please enter the cd writer speed"
-msgstr "Por favor, ingrese la velocidad de la grabadora de CDs"
-
-#: ../../standalone/drakbackup_.c:2917
-msgid "Please enter your CD Writer device name (ex: 0,1,0)"
-msgstr ""
-"Por favor, ingrese el nombre del dispositivo de su grabadora de CDs (ej: "
-"0,1,0)"
-
-#: ../../standalone/drakbackup_.c:2923
-msgid "Please check if you want to include install boot on your CD."
-msgstr "Por favor, verifique si desea hacer que su CD arranque."
-
-#: ../../standalone/drakbackup_.c:2989
-msgid "Backup Now from configuration file"
-msgstr "Respaldar Ahora desde archivo de configuraciĆ³n"
-
-#: ../../standalone/drakbackup_.c:2999
-msgid "View Backup Configuration."
-msgstr "Ver configuraciĆ³n del respaldo"
-
-#: ../../standalone/drakbackup_.c:3020
-msgid "Wizard Configuration"
-msgstr "ConfiguraciĆ³n del Asistente"
-
-#: ../../standalone/drakbackup_.c:3024
-msgid "Advanced Configuration"
-msgstr "ConfiguraciĆ³n avanzada"
-
-#: ../../standalone/drakbackup_.c:3028
-msgid "Backup Now"
-msgstr "Respaldar Ahora"
-
-#: ../../standalone/drakbackup_.c:3053
-msgid "Drakbackup"
-msgstr "Drakbackup"
-
-#: ../../standalone/drakbackup_.c:3104
-msgid ""
-"options description:\n"
-"\n"
-" In this step Drakbackup allow you to change:\n"
-"\n"
-" - The compression mode:\n"
-" \n"
-" If you check bzip2 compression, you will compress\n"
-" your data better than gzip (about 2-10 %).\n"
-" This option is not checked by default because\n"
-" this compression mode needs more time ( about 1000% more).\n"
-" \n"
-" - The update mode:\n"
-"\n"
-" This option will update your backup, but this\n"
-" option is not really useful because you need to\n"
-" decompress your backup before you can update it.\n"
-" \n"
-" - the .backupignore mode:\n"
-"\n"
-" Like with cvs, Drakbackup will ignore all references\n"
-" included in .backupignore files in each directories.\n"
-" ex: \n"
-" /*> cat .backupignore*/\n"
-" *.o\n"
-" *~\n"
-" ...\n"
-" \n"
-"\n"
-msgstr ""
-"descripciĆ³n de las opciones:\n"
-"\n"
-" En este paso Drakbackup le permite cambiar:\n"
-"\n"
-" - El modo de compresiĆ³n:\n"
-" \n"
-" Si marca compresiĆ³n bzip2, comprimirĆ mejor sus datos\n"
-" que gzip (alrededor del 2-10 %).\n"
-" Por defecto, esta opciĆ³n no estĆ marcada dado que este\n"
-" modo de compresiĆ³n necesita mĆs tiempo (100 veces mĆs)\n"
-" \n"
-" - El modo de actualizaciĆ³n:\n"
-"\n"
-" Esta opciĆ³n actualizarĆ su respaldo, pero no es\n"
-" realmente Ćŗtil ya que necesita descomprimirlo\n"
-" antes que pueda actualizarlo.\n"
-" \n"
-" - el modo .backupignore:\n"
-"\n"
-" Al igual que cvs, Drakbackup ignorarĆ todas las referencias\n"
-" incluĆ­das en los archivos .backupignore de cada directorio.\n"
-" ej: \n"
-" /*> cat .backupignore*/\n"
-" *.o\n"
-" *~\n"
-" ...\n"
-" \n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3134
-msgid ""
-"\n"
-" Some errors during sendmail are caused by \n"
-" a bad configuration of postfix. To solve it you have to\n"
-" set myhostname or mydomain in /etc/postfix/main.cf\n"
-"\n"
-msgstr ""
-"\n"
-" Algunos errores con sendmail son causados por\n"
-" una configuraciĆ³n mala de postfix. Para resolverlo tiene\n"
-" que configurar myhostname o mydomain en /etc/postfix/main.cf\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3142
-msgid ""
-"options description:\n"
-"\n"
-" - Backup system files:\n"
-" \n"
-"\tThis option allows you to backup your /etc directory,\n"
-"\twhich contains all configuration files. Please be\n"
-"\tcareful during the restore step to not overwrite:\n"
-"\t\t/etc/passwd \n"
-"\t\t/etc/group \n"
-"\t\t/etc/fstab\n"
-"\n"
-" - Backup User files: \n"
-"\n"
-"\tThis option allows you select all users that you want \n"
-"\tto backup.\n"
-"\tTo preserve disk space, it is recommended that you \n"
-"\tdo not include web browser's cache.\n"
-"\n"
-" - Backup Other files: \n"
-"\n"
-"\tThis option allows you to add more data to save.\n"
-"\tWith the other backup it's not possible at the \n"
-"\tmoment to select select incremental backup.\t\t\n"
-" \n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerful \n"
-"\toption for backup. This option allows you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed afterward.\n"
-"\tThen you will be able, during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this option all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-msgstr ""
-"descripciĆ³n de las opciones:\n"
-"\n"
-" - Respladar archivos del sistema:\n"
-" \n"
-"\tEsta opciĆ³n permite respaldar su directorio /etc, que\n"
-"\tcontiene todos los archivos de configuraciĆ³n. Por favor\n"
-"\ttenga cuidado durante la restauraciĆ³n de no sobre-escribir:\n"
-"\t\t/etc/passwd \n"
-"\t\t/etc/group \n"
-"\t\t/etc/fstab\n"
-"\n"
-" - Respaldar archivos de usuario:\n"
-"\n"
-"\tEsta opciĆ³n permite seleccionar todos los usuarios que\n"
-"\tdesea respaldar.\n"
-"\tPara preservar espacio, se recomienda no incluir el\n"
-"\tcache del navegador web.\n"
-"\n"
-" - Respaldar otros archivos:\n"
-"\n"
-"\tEsta opciĆ³n permite aƱadir mĆs datos a guardar.\n"
-"\tCon el otro respaldo no es posible, por ahora,\n"
-"\tseleccionar el respaldo incremental.\t\t\n"
-" \n"
-" - Respaldo incremental:\n"
-"\n"
-"\tEl respaldo incremental es la opciĆ³n mĆs potente.\n"
-"\tLe permite respaldar todos sus datos la primera\n"
-"\tvez, y luego sĆ³lo aquellos que cambiaron.\n"
-"\tLuego, podrĆ, durante la etapa de restauraciĆ³n,n\trestaurar sus datos "
-"desde una fecha especificada.\n"
-"\t\n"
-"\tSi no ha seleccionado esta opciĆ³n todos los\n"
-"\trespaldos antiguos se borran antes de volver a respaldar.\n"
-"\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3181
-msgid ""
-"restore description:\n"
-" \n"
-"Only the most recent date will be used ,because with incremental \n"
-"backups it is necesarry to restore one by one each older backups.\n"
-"\n"
-"So if you don't like to restore an user please unselect all his\n"
-"check box.\n"
-"\n"
-"Otherwise, you are able to select only one of this\n"
-"\n"
-" - Incremental Backups:\n"
-"\n"
-"\tThe incremental backup is the most powerfull \n"
-"\toption to use backup, this option allow you \n"
-"\tto backup all your data the first time, and \n"
-"\tonly the changed after.\n"
-"\tSo you will be able during the restore\n"
-"\tstep, to restore your data from a specified\n"
-"\tdate.\n"
-"\tIf you have not selected this options all\n"
-"\told backups are deleted before each backup. \n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-"descripciĆ³n de la restauraciĆ³n:\n"
-" \n"
-"SĆ³lo se utilizarĆ la fecha mĆs reciente, ya que con respaldos\n"
-"incrementales sĆ³lo es necesario restaurar de uno de los antiguos.\n"
-"\n"
-"Por lo tanto, si no desea restaurar un usuario, por favor desmarque\n"
-"su casilla.\n"
-"\n"
-"En caso contrario, sĆ³lo puede seleccionar alguno de Ć©stos\n"
-"\n"
-" - Respaldos incrementales:\n"
-"\n"
-"\tEl respaldo incremental es la opciĆ³n mĆs potente.\n"
-"\tLe permite respaldar todos sus datos la primera\n"
-"\tvez, y luego sĆ³lo aquellos que cambiaron.\n"
-"\tLuego, podrĆ, durante la etapa de restauraciĆ³n,\n"
-"\trestaurar sus datos desde una fecha especificada.\n"
-"\tSi no ha seleccionado esta opciĆ³n todos los\n"
-"\trespaldos antiguos se borran antes de volver a respaldar...\n"
-"\n"
-"\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3207 ../../standalone/drakbackup_.c:3282
-msgid ""
-" Copyright (C) 2001 MandrakeSoft by DUPONT Sebastien <dupont_s\\@epita.fr>"
-msgstr ""
-" Copyright (C) 2001 MandrakeSoft por DUPONT Sebastien <dupont_s\\@epita.fr>"
-
-#: ../../standalone/drakbackup_.c:3209 ../../standalone/drakbackup_.c:3284
-msgid ""
-" This program is free software; you can redistribute it and/or modify\n"
-" it under the terms of the GNU General Public License as published by\n"
-" the Free Software Foundation; either version 2, or (at your option)\n"
-" any later version.\n"
-"\n"
-" This program is distributed in the hope that it will be useful,\n"
-" but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-" GNU General Public License for more details.\n"
-"\n"
-" You should have received a copy of the GNU General Public License\n"
-" along with this program; if not, write to the Free Software\n"
-" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
-msgstr ""
-" This program is free software; you can redistribute it and/or modify\n"
-" it under the terms of the GNU General Public License as published by\n"
-" the Free Software Foundation; either version 2, or (at your option)\n"
-" any later version.\n"
-"\n"
-" This program is distributed in the hope that it will be useful,\n"
-" but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-" GNU General Public License for more details.\n"
-"\n"
-" You should have received a copy of the GNU General Public License\n"
-" along with this program; if not, write to the Free Software\n"
-" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
-
-#: ../../standalone/drakbackup_.c:3223
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select: \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, DrakBackup will remove \n"
-" your original directory and verify that all \n"
-" backup files are not corrupted. It is recommended \n"
-" you do a last backup before restoring.\n"
-"\n"
-"\n"
-msgstr ""
-" Copyright (C) 2001 MandrakeSoft por DUPONT Sebastien <dupont_s\\@epita.fr>\n"
-"\n"
-" This program is free software; you can redistribute it and/or modify\n"
-" it under the terms of the GNU General Public License as published by\n"
-" the Free Software Foundation; either version 2, or (at your option)\n"
-" any later version.\n"
-"\n"
-" This program is distributed in the hope that it will be useful,\n"
-" but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-" GNU General Public License for more details.\n"
-"\n"
-" You should have received a copy of the GNU General Public License\n"
-" along with this program; if not, write to the Free Software\n"
-" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
-"\n"
-" _____________________\n"
-"\n"
-"DescripciĆ³n:\n"
-"\n"
-" Drakbackup se usa para respaldar su sistema.\n"
-" Durante la configuraciĆ³n puede seleccionar:\n"
-"\t- Archivos del sistema,\n"
-"\t- Archivos de usuarios,\n"
-"\t- Otros archivos.\n"
-"\to Todo su sistema ... y Otros (como Particiones Windows)\n"
-"\n"
-" Drakbackup le permite respaldar su sistema sobre:\n"
-"\t- Disco rĆ­gido.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (con autoboot, rescue y autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Cinta.\n"
-"\n"
-" Drakbackup le permite restaurar su sistema a un\n"
-" directorio seleccionado por el usuario.\n"
-"\n"
-" Predeterminadamente se almacenarĆn los respaldos en su\n"
-" directorio /var/drakbackup.\n"
-"\n"
-" Archivo de configuraciĆ³n:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"\n"
-"Paso de restauraciĆ³n:\n"
-" \n"
-" Durante la restauraciĆ³n, DrakBackup quitarĆ su \n"
-" directorio original y verificarĆ que todos \n"
-" los archivos de respaldo no estƩn corruptos. Se \n"
-" recomienda que haga un Ćŗltimo respaldo antes de restaurar.\n"
-"\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3261
-msgid ""
-"options description:\n"
-"\n"
-"Please be careful when you are using ftp backup, because only \n"
-"backups that are already built are sent to the server.\n"
-"So at the moment, you need to build the backup on your hard \n"
-"drive before sending it to the server.\n"
-"\n"
-msgstr ""
-"descricpiĆ³n de las opciones:\n"
-"\n"
-"Por favor, tenga cuidado cuando use respaldos por ftp, porque\n"
-"sĆ³lo los respaldos ya hechos se envĆ­an al servidor.\n"
-"Por el momento, necesita realizar el respaldo en su disco rĆ­gido\n"
-"antes de enviarlo al servidor.\n"
-"\n"
-
-#: ../../standalone/drakbackup_.c:3270
-msgid ""
-"\n"
-"Restore Backup Problems:\n"
-"\n"
-"During the restore step, Drakbackup will verify all your\n"
-"backup files before restoring them.\n"
-"Before the restore, Drakbackup will remove \n"
-"your original directory, and you will loose all your \n"
-"data. It is important to be careful and not modify the \n"
-"backup data files by hand.\n"
-msgstr ""
-"\n"
-"Problemas durante la restauraciĆ³n:\n"
-"\n"
-"Durante el paso de restauraciĆ³n, Drakbackup verificarĆ todos los\n"
-"archivos de respaldo antes de restaurarlos.\n"
-"Antes de la restuaraciĆ³n, Drakbackup quitarĆ el\n"
-"directorio original, y perderĆ todos los datos en el mismo.\n"
-"Es importante ser cuidadoso y no modificar los archivos de\n"
-"datos de respaldo a mano.\n"
-
-#: ../../standalone/drakbackup_.c:3298
-msgid ""
-"Description:\n"
-"\n"
-" Drakbackup is used to backup your system.\n"
-" During the configuration you can select \n"
-"\t- System files, \n"
-"\t- Users files, \n"
-"\t- Other files.\n"
-"\tor All your system ... and Other (like Windows Partitions)\n"
-"\n"
-" Drakbackup allows you to backup your system on:\n"
-"\t- Harddrive.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (with autoboot, rescue and autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Tape.\n"
-"\n"
-" Drakbackup allows you to restore your system to\n"
-" a user selected directory.\n"
-"\n"
-" Per default all backup will be stored on your\n"
-" /var/lib/drakbackup directory\n"
-"\n"
-" Configuration file:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"Restore Step:\n"
-" \n"
-" During the restore step, Drakbackup will remove\n"
-" your original directory and verify that all\n"
-" backup files are not corrupted. It is recommended\n"
-" you do a last backup before restoring.\n"
-" \n"
-"\n"
-msgstr ""
-"DescripciĆ³n:\n"
-"\n"
-" Drakbackup se usa para respaldar su sistema.\n"
-" Durante la configuraciĆ³n puede seleccionar:\n"
-"\t- Archivos del sistema,\n"
-"\t- Archivos de usuarios,\n"
-"\t- Otros archivos.\n"
-"\to Todo su sistema ... y Otros (como Particiones Windows)\n"
-"\n"
-" Drakbackup le permite respaldar su sistema sobre:\n"
-"\t- Disco rĆ­gido.\n"
-"\t- NFS.\n"
-"\t- CDROM (CDRW), DVDROM (con autoboot, rescue y autoinstall.).\n"
-"\t- FTP.\n"
-"\t- Rsync.\n"
-"\t- Webdav.\n"
-"\t- Cinta.\n"
-"\n"
-" Drakbackup le permite restaurar su sistema a un\n"
-" directorio seleccionado por el usuario.\n"
-"\n"
-" Por defecto, se almacenarĆn los respaldos en su\n"
-" directorio /var/lib/drakbackup.\n"
-"\n"
-" Archivo de configuraciĆ³n:\n"
-"\t/etc/drakconf/drakbackup/drakbakup.conf\n"
-"\n"
-"\n"
-"Paso de restauraciĆ³n:\n"
-" \n"
-" Durante la restauraciĆ³n, DrakBackup quitarĆ su \n"
-" directorio original y verificarĆ que todos \n"
-" los archivos de respaldo no estƩn corruptos. Se \n"
-" recomienda que haga un Ćŗltimo respaldo antes de restaurar.\n"
-" \n"
-"\n"
-
-#: ../../standalone/drakboot_.c:58
-#, c-format
-msgid "Installation of %s failed. The following error occured:"
-msgstr "FallĆ³ la instalaciĆ³n de %s. OcurriĆ³ el siguiente error:"
-
-#: ../../standalone/drakfont_.c:229
-msgid "Search installed fonts"
-msgstr "Buscar tipografĆ­as instaladas"
-
-#: ../../standalone/drakfont_.c:231
-msgid "Unselect fonts installed"
-msgstr "Desmarcar las tipografĆ­as instaladas"
-
-#: ../../standalone/drakfont_.c:252
-msgid "parse all fonts"
-msgstr "analizar todas las tipografĆ­as"
-
-#: ../../standalone/drakfont_.c:253
-msgid "no fonts found"
-msgstr "no se encontraron tipografĆ­as"
-
-#: ../../standalone/drakfont_.c:261 ../../standalone/drakfont_.c:303
-#: ../../standalone/drakfont_.c:352 ../../standalone/drakfont_.c:410
-#: ../../standalone/drakfont_.c:417 ../../standalone/drakfont_.c:443
-#: ../../standalone/drakfont_.c:455 ../../standalone/drakfont_.c:468
-msgid "done"
-msgstr "hecho"
-
-#: ../../standalone/drakfont_.c:265
-msgid "could not find any font in your mounted partitions"
-msgstr "no se pueden encontrar tipografĆ­as en las particiones montadas"
-
-#: ../../standalone/drakfont_.c:301
-msgid "Reselect correct fonts"
-msgstr "Volver a seleccionar tipografĆ­as correctas"
-
-#: ../../standalone/drakfont_.c:304
-msgid "could not find any font.\n"
-msgstr "no se pueden encontrar tipografĆ­as.\n"
-
-#: ../../standalone/drakfont_.c:327
-msgid "Search fonts in installed list"
-msgstr "Buscar tipografĆ­as en la lista de instaladas"
-
-#: ../../standalone/drakfont_.c:350
-msgid "Fonts copy"
-msgstr "Copiar tipografĆ­as"
-
-#: ../../standalone/drakfont_.c:353
-msgid "True Type fonts installation"
-msgstr "InstalaciĆ³n de tipografĆ­as True Type"
-
-#: ../../standalone/drakfont_.c:357
-msgid "please wait during ttmkfdir..."
-msgstr "por favor, espere mientras corre ttmkfdir..."
-
-#: ../../standalone/drakfont_.c:359
-msgid "True Type install done"
-msgstr "InstalaciĆ³n de True Type realizada"
-
-#: ../../standalone/drakfont_.c:366 ../../standalone/drakfont_.c:382
-msgid "Fonts conversion"
-msgstr "ConversiĆ³n de tipografĆ­as"
-
-#: ../../standalone/drakfont_.c:370 ../../standalone/drakfont_.c:386
-#: ../../standalone/drakfont_.c:406
-msgid "type1inst building"
-msgstr "Construyendo Type1"
-
-#: ../../standalone/drakfont_.c:375 ../../standalone/drakfont_.c:390
-msgid "Ghostscript referencing"
-msgstr "Referenciando a Ghostscript"
-
-#: ../../standalone/drakfont_.c:397
-msgid "ttf fonts conversion"
-msgstr "ConversiĆ³n de tipografĆ­as TTF"
-
-#: ../../standalone/drakfont_.c:401
-msgid "pfm fonts conversion"
-msgstr "ConversiĆ³n de tipografĆ­as PFM"
-
-#: ../../standalone/drakfont_.c:411
-msgid "Suppress temporary Files"
-msgstr "Suprimir archivos temporales"
-
-#: ../../standalone/drakfont_.c:414
-msgid "Restart XFS"
-msgstr "Reiniciar XFS"
-
-#: ../../standalone/drakfont_.c:453 ../../standalone/drakfont_.c:463
-msgid "Suppress Fonts Files"
-msgstr "Suprimir archivos de tipografĆ­as"
-
-#: ../../standalone/drakfont_.c:465
-msgid "xfs restart"
-msgstr "Reiniciar XFS"
-
-#: ../../standalone/drakfont_.c:472 ../../standalone/drakfont_.c:760
-msgid ""
-"Before installing any fonts, be sure that you have the right to use and "
-"install them on your system.\n"
-"\n"
-"-You can install the fonts using the normal way. In rare cases, bogus fonts "
-"may hang up your X Server."
-msgstr ""
-"Antes de instalar cualquier tipografĆ­a, asegĆŗrese que tiene derecho de "
-"usarlas\n"
-"e instalarlas en su sistema.\n"
-"\n"
-"-Puede instalar las tipografĆ­as usando la manera normal. En casos raros,\n"
-"puede ser que tipografĆ­as \"falsas\" congelen a su servidor X."
-
-#: ../../standalone/drakfont_.c:547
-msgid "Fonts Importation"
-msgstr "ImportaciĆ³n de tipografĆ­as"
-
-#: ../../standalone/drakfont_.c:562
-msgid "Get Windows Fonts"
-msgstr "Obtener tipografĆ­as de Windows"
-
-#: ../../standalone/drakfont_.c:564
-msgid "Uninstall Fonts"
-msgstr "Desinstalar tipografĆ­as"
-
-#: ../../standalone/drakfont_.c:568
-msgid "Advanced Options"
-msgstr "Opciones avanzadas"
-
-#: ../../standalone/drakfont_.c:570
-msgid "Font List"
-msgstr "Lista de tipografĆ­as"
-
-#: ../../standalone/drakfont_.c:739
-msgid "Choose the applications that will support the fonts :"
-msgstr "Elija las aplicaciones que soportarĆn las tipografĆ­as:"
-
-#: ../../standalone/drakfont_.c:743
-msgid "Ghostscript"
-msgstr "Ghostscript"
-
-#: ../../standalone/drakfont_.c:747
-msgid "StarOffice"
-msgstr "StarOffice"
-
-#: ../../standalone/drakfont_.c:751
-msgid "Abiword"
-msgstr "Abiword"
-
-#: ../../standalone/drakfont_.c:755
-msgid "Generic Printers"
-msgstr "Impresoras genƩricas"
-
-#: ../../standalone/drakfont_.c:792
-msgid "Select the font file or directory and click on 'Add'"
-msgstr ""
-"Seleccione el archivo o directorio de tipografĆ­as y haga clic sobre 'Agregar'"
-
-#: ../../standalone/drakfont_.c:828
-msgid "Install List"
-msgstr "Instalar lista"
-
-#: ../../standalone/drakfont_.c:858
-msgid "click here if you are sure."
-msgstr "haga clic aquĆ­ si estĆ seguro."
-
-#: ../../standalone/drakfont_.c:860
-msgid "here if no."
-msgstr "aquĆ­ si no lo estĆ."
-
-#: ../../standalone/drakfont_.c:897
-msgid "Unselected All"
-msgstr "Deseleccionar todas."
-
-#: ../../standalone/drakfont_.c:899
-msgid "Selected All"
-msgstr "Seleccionar todas."
-
-#: ../../standalone/drakfont_.c:901
-msgid "Remove List"
-msgstr "Quitar lista"
-
-#: ../../standalone/drakfont_.c:919 ../../standalone/drakfont_.c:939
-msgid "Initials tests"
-msgstr "Pruebas iniciales"
-
-#: ../../standalone/drakfont_.c:920
-msgid "Copy fonts on your system"
-msgstr "Copiar tipografĆ­as en su sistema"
-
-#: ../../standalone/drakfont_.c:921
-msgid "Install & convert Fonts"
-msgstr "Instalar y convertir tipografĆ­as"
-
-#: ../../standalone/drakfont_.c:922
-msgid "Post Install"
-msgstr "Post-instalaciĆ³n"
-
-#: ../../standalone/drakfont_.c:940
-msgid "Remove fonts on your system"
-msgstr "Quitar tipografĆ­as de su sistema"
-
-#: ../../standalone/drakfont_.c:941
-msgid "Post Uninstall"
-msgstr "Post-desinstalaciĆ³n"
-
-#: ../../standalone/drakgw_.c:43 ../../standalone/drakgw_.c:200
-msgid "Internet Connection Sharing"
-msgstr "Compartir la conexiĆ³n a Internet"
-
-#: ../../standalone/drakgw_.c:138
-msgid "Internet Connection Sharing currently enabled"
-msgstr "Ahora, la conexiĆ³n compartida a Internet estĆ activada ahora"
-
-#: ../../standalone/drakgw_.c:139
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently enabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-"Ya se ha realizado la configuraciĆ³n de la conexiĆ³n compartida a Internet.\n"
-"Ahora estĆ activa.\n"
-"\n"
-"ĀæQuĆ© desea hacer?"
-
-#: ../../standalone/drakgw_.c:143
-msgid "disable"
-msgstr "desactivar"
-
-#: ../../standalone/drakgw_.c:143 ../../standalone/drakgw_.c:168
-msgid "dismiss"
-msgstr "rechazar"
-
-#: ../../standalone/drakgw_.c:143 ../../standalone/drakgw_.c:168
-msgid "reconfigure"
-msgstr "reconfigurar"
-
-#: ../../standalone/drakgw_.c:146
-msgid "Disabling servers..."
-msgstr "Desactivando los servidores..."
-
-#: ../../standalone/drakgw_.c:154
-msgid "Internet connection sharing is now disabled."
-msgstr "Ahora, la conexiĆ³n compartida a Internet estĆ inactiva."
-
-#: ../../standalone/drakgw_.c:163
-msgid "Internet Connection Sharing currently disabled"
-msgstr "Ahora, la conexiĆ³n compartida a Internet estĆ desactivada"
-
-#: ../../standalone/drakgw_.c:164
-msgid ""
-"The setup of Internet connection sharing has already been done.\n"
-"It's currently disabled.\n"
-"\n"
-"What would you like to do?"
-msgstr ""
-"Ya se ha realizado la configuraciĆ³n de la conexiĆ³n compartida a Internet.\n"
-"Ahora estĆ inactiva.\n"
-"\n"
-"ĀæQuĆ© desea hacer?"
-
-#: ../../standalone/drakgw_.c:168
-msgid "enable"
-msgstr "activar"
-
-#: ../../standalone/drakgw_.c:175
-msgid "Enabling servers..."
-msgstr "Activando los servidores..."
-
-#: ../../standalone/drakgw_.c:180
-msgid "Internet connection sharing is now enabled."
-msgstr "Ahora, la conexiĆ³n compartida a Internet estĆ activa."
-
-#: ../../standalone/drakgw_.c:201
-msgid ""
-"You are about to configure your computer to share its Internet connection.\n"
-"With that feature, other computers on your local network will be able to use "
-"this computer's Internet connection.\n"
-"\n"
-"Note: you need a dedicated Network Adapter to set up a Local Area Network "
-"(LAN)."
-msgstr ""
-"Puede configurar su ordenador para compartir su conexiĆ³n a Internet.\n"
-"Con esta caracterĆ­stica, otras mĆquinas de su red local podrĆn usar la "
-"conexiĆ³n a Internet de este ordenador.\n"
-"\n"
-"Aviso: necesita un adaptador de red dedicado para configurar una red de Ćrea "
-"local (LAN)."
-
-#: ../../standalone/drakgw_.c:227
-#, c-format
-msgid "Interface %s (using module %s)"
-msgstr "Interfaz %s (usando el mĆ³dulo %s)"
-
-#: ../../standalone/drakgw_.c:228
-#, c-format
-msgid "Interface %s"
-msgstr "Interfaz %s"
-
-#: ../../standalone/drakgw_.c:236
-msgid "No network adapter on your system!"
-msgstr "ĀNo hay ningĆŗn adaptador de red en su sistema!"
-
-#: ../../standalone/drakgw_.c:237
-msgid ""
-"No ethernet network adapter has been detected on your system. Please run the "
-"hardware configuration tool."
-msgstr ""
-"No se ha detectado ningĆŗn adaptador de red en su sistema. Por favor, ejecute "
-"la herramienta de configuraciĆ³n del hardware."
-
-#: ../../standalone/drakgw_.c:243
-msgid "Network interface"
-msgstr "Interfaz de red"
-
-#: ../../standalone/drakgw_.c:244
-#, c-format
-msgid ""
-"There is only one configured network adapter on your system:\n"
-"\n"
-"%s\n"
-"\n"
-"I am about to setup your Local Area Network with that adapter."
-msgstr ""
-"SĆ³lo hay un adaptador de red configurado en su sistema:\n"
-"\n"
-"%s\n"
-"\n"
-"Se va a configurar su red de Ćrea local con ese adaptador."
-
-#: ../../standalone/drakgw_.c:253
-msgid ""
-"Please choose what network adapter will be connected to your Local Area "
-"Network."
-msgstr ""
-"Por favor, elija quĆ© adaptador de red estarĆ conectado a su red de Ćrea "
-"local."
-
-#: ../../standalone/drakgw_.c:271
-msgid "Network interface already configured"
-msgstr "Interfaz de red ya configurada"
-
-#: ../../standalone/drakgw_.c:272
-#, c-format
-msgid ""
-"Warning, the network adapter (%s) is already configured.\n"
-"\n"
-"Do you want an automatic re-configuration?\n"
-"\n"
-"You can do it manually but you need to know what you're doing."
-msgstr ""
-"AtenciĆ³n, el adaptador de red (%s) ya estĆ configurado.\n"
-"\n"
-"ĀæDesea volver a configurarlo automĆticamente?\n"
-"\n"
-"Puede hacerlo manualmente pero necesita saber lo que estĆ haciendo."
-
-#: ../../standalone/drakgw_.c:277
-msgid "Automatic reconfiguration"
-msgstr "Volver a configurar automĆticamente"
-
-#: ../../standalone/drakgw_.c:278
-msgid "Show current interface configuration"
-msgstr "Mostrar la configuraciĆ³n corriente de la interfaz"
-
-#: ../../standalone/drakgw_.c:280
-#, c-format
-msgid ""
-"Current configuration of `%s':\n"
-"\n"
-"Network: %s\n"
-"IP address: %s\n"
-"IP attribution: %s\n"
-"Driver: %s"
-msgstr ""
-"ConfiguraciĆ³n corriente de `%s':\n"
-"\n"
-"Red: %s\n"
-"DirecciĆ³n IP: %s\n"
-"Atributo IP: %s\n"
-"Controlador: %s"
-
-#: ../../standalone/drakgw_.c:292
-msgid ""
-"I can keep your current configuration and assume you already set up a DHCP "
-"server; in that case please verify I correctly read the C-Class Network that "
-"you use for your local network; I will not reconfigure it and I will not "
-"touch your DHCP server configuration.\n"
-"\n"
-"Else, I can reconfigure your interface and (re)configure a DHCP server for "
-"you.\n"
-"\n"
-msgstr ""
-"Puedo mantener su configuraciĆ³n corriente y asumir que ya configurĆ³ un "
-"servidor DHCP; en ese caso, por favor verifique que leo correctamente la Red "
-"Clase C que usĆ³ para su red local; no la volverĆ© a configurar y no tocarĆ© la "
-"configuraciĆ³n de su servidor DHCP.\n"
-"\n"
-"Caso contrario, puedo volver a configurar su interfaz y (volver a)configurar "
-"un servidor DHCP por Ud.\n"
-"\n"
-
-#: ../../standalone/drakgw_.c:297
-msgid "C-Class Local Network"
-msgstr "Red Local Clase C"
-
-#: ../../standalone/drakgw_.c:298
-msgid "(This) DHCP Server IP"
-msgstr "IP de (este) servidor DHCP"
-
-#: ../../standalone/drakgw_.c:299
-msgid "Re-configure interface and DHCP server"
-msgstr "Volver a configurar la interfaz y el servidor DHCP"
-
-#: ../../standalone/drakgw_.c:306
-msgid "The Local Network did not finish with `.0', bailing out."
-msgstr "La red local no finalizĆ³ con `.0', saliendo."
-
-#: ../../standalone/drakgw_.c:317
-#, c-format
-msgid "Potential LAN address conflict found in current config of %s!\n"
-msgstr ""
-"ĀSe encontrĆ³ un conflicto potencial de direcciones LAN en la configuraciĆ³n "
-"de %s!\n"
-
-#: ../../standalone/drakgw_.c:325 ../../standalone/drakgw_.c:331
-msgid "Firewalling configuration detected!"
-msgstr "ĀSe detectĆ³ la configuraciĆ³n del cortafuegos!"
-
-#: ../../standalone/drakgw_.c:326 ../../standalone/drakgw_.c:332
-msgid ""
-"Warning! An existing firewalling configuration has been detected. You may "
-"need some manual fix after installation."
-msgstr ""
-"ĀAtenciĆ³n! Se ha detectado la configuraciĆ³n del cortafuegos existente. Puede "
-"que necesite algĆŗn ajuste manual tras la instalaciĆ³n."
-
-#: ../../standalone/drakgw_.c:340
-msgid "Configuring..."
-msgstr "Configurando..."
-
-#: ../../standalone/drakgw_.c:341
-msgid "Configuring scripts, installing software, starting servers..."
-msgstr ""
-"Configurando los scripts, instalando el software, iniciando los servidores..."
-
-#: ../../standalone/drakgw_.c:378
-#, c-format
-msgid "Problems installing package %s"
-msgstr "Problemas al instalar el paquete %s"
-
-#: ../../standalone/drakgw_.c:672
-msgid ""
-"Everything has been configured.\n"
-"You may now share Internet connection with other computers on your Local "
-"Area Network, using automatic network configuration (DHCP)."
-msgstr ""
-"Se ha configurado todo.\n"
-"Ahora puede compartir su conexiĆ³n a Internet con otros ordenadores de su red "
-"de Ćrea local, usando la configuraciĆ³n automĆtica de la red (DHCP)."
-
-#: ../../standalone/drakgw_.c:689
-msgid "The setup has already been done, but it's currently disabled."
-msgstr "La configuraciĆ³n ya se ha hecho, pero ahora estĆ desactivada."
-
-#: ../../standalone/drakgw_.c:690
-msgid "The setup has already been done, and it's currently enabled."
-msgstr "La configuraciĆ³n ya se ha hecho, y ahora estĆ activada."
-
-#: ../../standalone/drakgw_.c:691
-msgid "No Internet Connection Sharing has ever been configured."
-msgstr "No se ha configurado la conexiĆ³n compartida a Internet."
-
-#: ../../standalone/drakgw_.c:696
-msgid "Internet connection sharing configuration"
-msgstr "ConfiguraciĆ³n de la conexiĆ³n compartida a Internet"
-
-#: ../../standalone/drakgw_.c:703
-#, c-format
-msgid ""
-"Welcome to the Internet Connection Sharing utility!\n"
-"\n"
-"%s\n"
-"\n"
-"Click on Configure to launch the setup wizard."
-msgstr ""
-"ĀBienvenido a la herramienta para compartir la conexiĆ³n a Internet!\n"
-"\n"
-"%s\n"
-"\n"
-"Haga click sobre Configurar para lanzar el asistente de configuraciĆ³n."
-
-#: ../../standalone/draknet_.c:80
-#, c-format
-msgid "Network configuration (%d adapters)"
-msgstr "ConfiguraciĆ³n de la red (%d adaptadores)"
-
-#: ../../standalone/draknet_.c:87 ../../standalone/draknet_.c:595
-msgid "Profile: "
-msgstr "Perfil: "
-
-#: ../../standalone/draknet_.c:95
-msgid "Del profile..."
-msgstr "Borrar perfil..."
-
-#: ../../standalone/draknet_.c:101
-msgid "Profile to delete:"
-msgstr "Perfil a borrar:"
-
-#: ../../standalone/draknet_.c:129
-msgid "New profile..."
-msgstr "Nuevo perfil..."
-
-#: ../../standalone/draknet_.c:135
-msgid ""
-"Name of the profile to create (the new profile is created as a copy of the "
-"current one) :"
-msgstr ""
-"Nombre del perfil a crear (el perfil nuevo se crea como copia del actual):"
-
-#: ../../standalone/draknet_.c:161
-msgid "Hostname: "
-msgstr "Nombre de la mĆquina: "
-
-#: ../../standalone/draknet_.c:168
-msgid "Internet access"
-msgstr "Acceso a Internet"
-
-#: ../../standalone/draknet_.c:181
-msgid "Type:"
-msgstr "Tipo:"
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-msgid "Gateway:"
-msgstr "Pasarela:"
-
-#: ../../standalone/draknet_.c:184 ../../standalone/draknet_.c:376
-msgid "Interface:"
-msgstr "Interfaz:"
-
-#: ../../standalone/draknet_.c:195
-msgid "Status:"
-msgstr "Estado:"
-
-#: ../../standalone/draknet_.c:202
-msgid "Wait please"
-msgstr "Por favor, espere"
-
-#: ../../standalone/draknet_.c:220
-msgid "Configure Internet Access..."
-msgstr "Configurar el acceso a Internet..."
-
-#: ../../standalone/draknet_.c:227 ../../standalone/draknet_.c:449
-msgid "LAN configuration"
-msgstr "ConfiguraciĆ³n de la red local"
-
-#: ../../standalone/draknet_.c:232
-msgid "Driver"
-msgstr "Controlador"
-
-#: ../../standalone/draknet_.c:232
-msgid "Interface"
-msgstr "Interfaz"
-
-#: ../../standalone/draknet_.c:232
-msgid "Protocol"
-msgstr "Protocolo"
-
-#: ../../standalone/draknet_.c:232
-msgid "State"
-msgstr "Estado"
-
-#: ../../standalone/draknet_.c:244
-msgid "Configure Local Area Network..."
-msgstr "Configurar la red de Ćrea local..."
-
-#: ../../standalone/draknet_.c:256
-msgid "Click here to launch the wizard ->"
-msgstr "Haga clic aquĆ­ para lanzar el asistente ->"
-
-#: ../../standalone/draknet_.c:257
-msgid "Wizard..."
-msgstr "Asistente..."
-
-#: ../../standalone/draknet_.c:283
-msgid "Apply"
-msgstr "Aplicar"
-
-#: ../../standalone/draknet_.c:302
-msgid "Please Wait... Applying the configuration"
-msgstr "Espere, por favor... Aplicando la configuraciĆ³n"
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-msgid "Connected"
-msgstr "Conectado"
-
-#: ../../standalone/draknet_.c:384 ../../standalone/draknet_.c:407
-msgid "Not connected"
-msgstr "No conectado"
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Connect..."
-msgstr "Conectar..."
-
-#: ../../standalone/draknet_.c:385 ../../standalone/draknet_.c:408
-msgid "Disconnect..."
-msgstr "Desconectar..."
-
-#: ../../standalone/draknet_.c:404
-msgid ""
-"Warning, another Internet connection has been detected, maybe using your "
-"network"
-msgstr ""
-"AtenciĆ³n, se ha detectado otra conexiĆ³n con la Internet, tal vez estĆ usando "
-"su red"
-
-#: ../../standalone/draknet_.c:431
-msgid ""
-"You don't have any configured interface.\n"
-"Configure them first by clicking on 'Configure'"
-msgstr ""
-"No tiene configurada ninguna interfaz.\n"
-"Configure la primera haciendo clic sobre 'Configurar'"
-
-#: ../../standalone/draknet_.c:453
-msgid "LAN Configuration"
-msgstr "ConfiguraciĆ³n LAN"
-
-#: ../../standalone/draknet_.c:464
-#, c-format
-msgid "Adapter %s: %s"
-msgstr "Adaptador %s: %s"
-
-#: ../../standalone/draknet_.c:470
-msgid "Boot Protocol"
-msgstr "Protocolo de arranque"
-
-#: ../../standalone/draknet_.c:471
-msgid "Started on boot"
-msgstr "Iniciado al arranque"
-
-#: ../../standalone/draknet_.c:472
-msgid "DHCP client"
-msgstr "cliente DHCP"
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-msgid "activate now"
-msgstr "activar ahora"
-
-#: ../../standalone/draknet_.c:497 ../../standalone/draknet_.c:500
-msgid "deactivate now"
-msgstr "desactivar ahora"
-
-#: ../../standalone/draknet_.c:503
-msgid ""
-"This interface has not been configured yet.\n"
-"Launch the configuration wizard in the main window"
-msgstr ""
-"TodavĆ­a no se ha configurado esta interfaz.\n"
-"Lance el asistente de configuraciĆ³n en la ventana principal"
-
-#: ../../standalone/draknet_.c:560
-msgid ""
-"You don't have any internet connection.\n"
-"Create one first by clicking on 'Configure'"
-msgstr ""
-"No tiene ninguna conexiĆ³n a Internet.\n"
-"Primero debe crear una haciendo clic sobre 'Configurar'"
-
-#: ../../standalone/draknet_.c:584
-msgid "Internet connection configuration"
-msgstr "ConfiguraciĆ³n de la conexiĆ³n a Internet"
-
-#: ../../standalone/draknet_.c:588
-msgid "Internet Connection Configuration"
-msgstr "ConfiguraciĆ³n de la conexiĆ³n a Internet"
-
-#: ../../standalone/draknet_.c:597
-msgid "Connection type: "
-msgstr "Tipo de conexiĆ³n: "
-
-#: ../../standalone/draknet_.c:603
-msgid "Parameters"
-msgstr "ParĆmetros"
-
-#: ../../standalone/draknet_.c:621
-msgid "Gateway"
-msgstr "Pasarela"
-
-#: ../../standalone/draknet_.c:630
-msgid "Ethernet Card"
-msgstr "Tarjeta ethernet"
-
-#: ../../standalone/draknet_.c:631
-msgid "DHCP Client"
-msgstr "Cliente DHCP"
-
-#: ../../standalone/draksec_.c:31
-msgid "Setting security level"
-msgstr "Definiendo el nivel de seguridad"
-
-#: ../../standalone/drakxconf_.c:47
-msgid "Control Center"
-msgstr "Centro de control"
-
-#: ../../standalone/drakxconf_.c:48
-msgid "Choose the tool you want to use"
-msgstr "Elija la herramienta que desea usar"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "Canada (cable)"
-msgstr "CanadĆ (cable)"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (bcast)"
-msgstr "EEUU (bcast)"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (cable)"
-msgstr "EEUU (cable)"
-
-#: ../../standalone/drakxtv_.c:48
-msgid "USA (cable-hrc)"
-msgstr "EEUU (cable-hrc)"
-
-#: ../../standalone/drakxtv_.c:49
-msgid "China (bcast)"
-msgstr "China (bcast)"
-
-#: ../../standalone/drakxtv_.c:49
-msgid "Japan (bcast)"
-msgstr "JapĆ³n (bcast)"
-
-#: ../../standalone/drakxtv_.c:49
-msgid "Japan (cable)"
-msgstr "JapĆ³n (cable)"
-
-#: ../../standalone/drakxtv_.c:50
-msgid "East Europe"
-msgstr "Europa del este"
-
-#: ../../standalone/drakxtv_.c:50
-msgid "Ireland"
-msgstr "Irlanda"
-
-#: ../../standalone/drakxtv_.c:50
-msgid "West Europe"
-msgstr "Europa del oeste"
-
-#: ../../standalone/drakxtv_.c:51
-msgid "Australia"
-msgstr "Australia"
-
-#: ../../standalone/drakxtv_.c:51
-msgid "Newzealand"
-msgstr "Nueva Zelanda"
-
-#: ../../standalone/drakxtv_.c:52
-msgid "South Africa"
-msgstr "SudĆfrica"
-
-#: ../../standalone/drakxtv_.c:53
-msgid "Argentina"
-msgstr "Argentina"
-
-#: ../../standalone/drakxtv_.c:58
-msgid ""
-"Please,\n"
-"type in your tv norm and country"
-msgstr ""
-"Por favor,\n"
-"teclee su norma de tv y paĆ­s"
-
-#: ../../standalone/drakxtv_.c:60
-msgid "TV norm :"
-msgstr "Norma de TV:"
-
-#: ../../standalone/drakxtv_.c:61
-msgid "Area :"
-msgstr "Ćrea:"
-
-#: ../../standalone/drakxtv_.c:65
-msgid "Scanning for TV channels in progress ..."
-msgstr "Buscando canales de TV, en progreso ..."
-
-#: ../../standalone/drakxtv_.c:72
-msgid "Scanning for TV channels"
-msgstr "Buscando canales de TV"
-
-#: ../../standalone/drakxtv_.c:83
-msgid "No TV Card detected!"
-msgstr "ĀNo se detectĆ³ tarjeta de TV!"
-
-#: ../../standalone/drakxtv_.c:84
-msgid ""
-"No TV Card has been detected on your machine. Please verify that a Linux-"
-"supported Video/TV Card is correctly plugged in.\n"
-"\n"
-"\n"
-"You can visit our hardware database at:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/hardware.php3"
-msgstr ""
-"No se detectĆ³ tarjeta de TV en su mĆquina. Por favor, verifique que tiene conectada correctamente una tarjeta de vĆ­deo/TV soportada por Linux.\n"
-"\n"
-"\n"
-"Puede visitar nuestra base de datos de hardware en:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/hardware.php3"
-
-#: ../../standalone/keyboarddrake_.c:16
-msgid "usage: keyboarddrake [--expert] [keyboard]\n"
-msgstr "uso: keyboarddrake [--expert] [teclado]\n"
-
-#: ../../standalone/keyboarddrake_.c:29
-msgid "Please, choose your keyboard layout."
-msgstr "Seleccione la distribuciĆ³n de su teclado."
-
-#: ../../standalone/keyboarddrake_.c:36
-msgid "Do you want the BackSpace to return Delete in console?"
-msgstr "ĀæDesea que la tecla BackSpace envĆ­e un Delete en la consola?"
-
-#: ../../standalone/livedrake_.c:24
-msgid "Change Cd-Rom"
-msgstr "Cambie el CD-ROM"
-
-#: ../../standalone/livedrake_.c:25
-msgid ""
-"Please insert the Installation Cd-Rom in your drive and press Ok when done.\n"
-"If you don't have it, press Cancel to avoid live upgrade."
-msgstr ""
-"Por favor, inserte el CD-ROM de la instalaciĆ³n en su unidad y presione "
-"Aceptar.\n"
-"Si no lo tiene, presione Cancelar para evitar la actualizaciĆ³n en vivo."
-
-#: ../../standalone/livedrake_.c:35
-msgid "Unable to start live upgrade !!!\n"
-msgstr "ĀĀĀ No se puede iniciar la actualizaciĆ³n en vivo !!!\n"
-
-#: ../../standalone/localedrake_.c:32
-msgid "The change is done, but to be effective you must logout"
-msgstr "Se ha realizado el cambio, pero no se harĆ efectivo hasta que salga"
-
-#: ../../standalone/logdrake_.c:85 ../../standalone/logdrake_.c:501
-msgid "logdrake"
-msgstr "logdrake"
-
-#: ../../standalone/logdrake_.c:95
-msgid "Show only for the selected day"
-msgstr "Mostrar sĆ³lo para el dĆ­a seleccionado"
-
-#: ../../standalone/logdrake_.c:102
-msgid "/File/_New"
-msgstr "/Archivo/_Nuevo"
-
-#: ../../standalone/logdrake_.c:102
-msgid "<control>N"
-msgstr "<control>N"
-
-#: ../../standalone/logdrake_.c:103
-msgid "/File/_Open"
-msgstr "/Archivo/_Abrir"
-
-#: ../../standalone/logdrake_.c:103
-msgid "<control>O"
-msgstr "<control>A"
-
-#: ../../standalone/logdrake_.c:104
-msgid "/File/_Save"
-msgstr "/Archivo/_Guardar"
-
-#: ../../standalone/logdrake_.c:104
-msgid "<control>S"
-msgstr "<control>G"
-
-#: ../../standalone/logdrake_.c:105
-msgid "/File/Save _As"
-msgstr "/Archivo/Guardar _como"
-
-#: ../../standalone/logdrake_.c:106
-msgid "/File/-"
-msgstr "/Archivo/-"
-
-#: ../../standalone/logdrake_.c:108
-msgid "/_Options"
-msgstr "/_Opciones"
-
-#: ../../standalone/logdrake_.c:109
-msgid "/Options/Test"
-msgstr "/Opciones/Prueba"
-
-#: ../../standalone/logdrake_.c:110
-msgid "/_Help"
-msgstr "/_Ayuda"
-
-#: ../../standalone/logdrake_.c:111
-msgid "/Help/_About..."
-msgstr "/Ayuda/_Acerca de..."
-
-#: ../../standalone/logdrake_.c:118
-msgid "-misc-fixed-medium-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr "-misc-fixed-medium-r-*-*-*-100-*-*-*-*-*-*,*"
-
-#: ../../standalone/logdrake_.c:119
-msgid "-misc-fixed-bold-r-*-*-*-100-*-*-*-*-*-*,*"
-msgstr "-misc-fixed-bold-r-*-*-*-100-*-*-*-*-*-*,*"
-
-#: ../../standalone/logdrake_.c:173
-msgid "User"
-msgstr "Usuario"
-
-#: ../../standalone/logdrake_.c:174
-msgid "Messages"
-msgstr "Mensajes"
-
-#: ../../standalone/logdrake_.c:175
-msgid "Syslog"
-msgstr "Syslog"
-
-#: ../../standalone/logdrake_.c:176
-msgid "Mandrake Tools Explanations"
-msgstr "Explicaciones de las herramientas de Mandrake"
-
-#: ../../standalone/logdrake_.c:179
-msgid "search"
-msgstr "buscar"
-
-#: ../../standalone/logdrake_.c:185
-msgid "A tool to monitor your logs"
-msgstr "Una herramienta para ver sus archivos de registro (logs)"
-
-#: ../../standalone/logdrake_.c:186
-msgid "Settings"
-msgstr "ConfiguraciĆ³n"
-
-#: ../../standalone/logdrake_.c:191
-msgid "matching"
-msgstr "coincidencia"
-
-#: ../../standalone/logdrake_.c:192
-msgid "but not matching"
-msgstr "pero no hay coincidencias"
-
-#: ../../standalone/logdrake_.c:196
-msgid "Choose file"
-msgstr "Elija un archivo"
-
-#: ../../standalone/logdrake_.c:201
-msgid "Calendar"
-msgstr "Calendario"
-
-#: ../../standalone/logdrake_.c:211
-msgid "Content of the file"
-msgstr "Contenido del archivo"
-
-#: ../../standalone/logdrake_.c:215 ../../standalone/logdrake_.c:390
-msgid "Mail/SMS alert"
-msgstr "Alerta por correo/SMS"
-
-#: ../../standalone/logdrake_.c:268
-#, c-format
-msgid "please wait, parsing file: %s"
-msgstr "por favor, espere, analizando el archivo: %s"
-
-#: ../../standalone/logdrake_.c:405
-msgid "Mail/SMS alert configuration"
-msgstr "ConfiguraciĆ³n de alerta por correo/SMS"
-
-#: ../../standalone/logdrake_.c:406
-msgid ""
-"Welcome to the mail/SMS configuration utility.\n"
-"\n"
-"Here, you'll be able to set up the alert system.\n"
-msgstr ""
-"Bienvenido a la herramienta de configuraciĆ³n del correo/SMS.\n"
-"\n"
-"AquĆ­ podrĆ configurar su sistema de alerta.\n"
-
-#: ../../standalone/logdrake_.c:414
-msgid "proftpd"
-msgstr "proftpd"
-
-#: ../../standalone/logdrake_.c:417
-msgid "sshd"
-msgstr "sshd"
-
-#: ../../standalone/logdrake_.c:418
-msgid "webmin"
-msgstr "webmin"
-
-#: ../../standalone/logdrake_.c:419
-msgid "xinetd"
-msgstr "xinetd"
-
-#: ../../standalone/logdrake_.c:422
-msgid "service setting"
-msgstr "configuraciĆ³n de servicios"
-
-#: ../../standalone/logdrake_.c:423
-msgid ""
-"You will receive an alert if one of the selected service is no more running"
-msgstr ""
-"RecibirĆ una alerta si se detiene la ejecuciĆ³n de uno de los servicios "
-"seleccionados"
-
-#: ../../standalone/logdrake_.c:433
-msgid "load setting"
-msgstr "configuraciĆ³n de la carga"
-
-#: ../../standalone/logdrake_.c:434
-msgid "You will receive an alert if the load is higher than this value"
-msgstr "RecibirĆ una alerta si la carga es mayor que este valor"
-
-#: ../../standalone/logdrake_.c:447
-msgid "alert configuration"
-msgstr "configuraciĆ³n de alerta"
-
-#: ../../standalone/logdrake_.c:448
-msgid "Configure the way the system will alert you"
-msgstr "Configura la forma en que el sistema le alertarĆ"
-
-#: ../../standalone/logdrake_.c:478
-msgid "Save as.."
-msgstr "Guardar como..."
-
-#: ../../standalone/mousedrake_.c:49
-msgid "Please, choose the type of your mouse."
-msgstr "Seleccione el tipo de su ratĆ³n, por favor."
-
-#: ../../standalone/mousedrake_.c:59
-msgid "no serial_usb found\n"
-msgstr "no se encontrĆ³ ningĆŗn usb_serie\n"
-
-#: ../../standalone/mousedrake_.c:63
-msgid "Emulate third button?"
-msgstr "ĀæEmular el tercer botĆ³n?"
-
-#: ../../standalone/scannerdrake_.c:53
-#, c-format
-msgid "%s found on %s, configure it ?"
-msgstr "se encontrĆ³ %s en %s, Āæconfigurarlo?"
-
-#: ../../standalone/scannerdrake_.c:60
-msgid "Select a scanner"
-msgstr "Seleccione un escĆner."
-
-#: ../../standalone/scannerdrake_.c:80
-#, c-format
-msgid "This %s scanner is unsupported"
-msgstr "El escĆner %s no estĆ soportado"
-
-#: ../../standalone/scannerdrake_.c:94
-#, c-format
-msgid ""
-"Scannerdrake was not able to detect your %s scanner.\n"
-"Please select the device where your scanner is plugged"
-msgstr ""
-"Scannerdrake no pudo detectar su escĆner %s.\n"
-"Por favor, seleccione el dispositivo donde estĆ conectado su escĆner"
-
-#: ../../standalone/scannerdrake_.c:96
-msgid "choose device"
-msgstr "elija el dispositivo"
-
-#: ../../standalone/scannerdrake_.c:102
-#, c-format
-msgid ""
-"This %s scanner must be configured by printerdrake.\n"
-"You can launch printerdrake from the Mandrake Control Center in Hardware "
-"section."
-msgstr ""
-"printerdrake puede configurar este escĆner %s.\n"
-"Puede lanzar printerdrake desde el Centro de control de Mandrake en la "
-"secciĆ³n Hardware."
-
-#: ../../standalone/scannerdrake_.c:107
-#, c-format
-msgid ""
-"Your %s scanner has been configured.\n"
-"You may now scan documents using ``XSane'' from Multimedia/Graphics in the "
-"applications menu."
-msgstr ""
-"Su escĆner %s ha sido configurado.\n"
-"Ahora puede escanear documentos usando \"XSane\" en el menĆŗ Multimedios/GrĆficos."
-
-#: ../../standalone/tinyfirewall_.c:31
-msgid "Firewalling Configuration"
-msgstr "ConfiguraciĆ³n del cortafuegos"
-
-#: ../../standalone/tinyfirewall_.c:44
-msgid "Firewalling configuration"
-msgstr "ConfiguraciĆ³n del cortafuegos"
-
-#: ../../standalone/tinyfirewall_.c:79
-msgid ""
-"Firewalling\n"
-"\n"
-"You already have set up a firewall.\n"
-"Click on Configure to change or remove the firewall"
-msgstr ""
-"Cortafuegos\n"
-"\n"
-"Ya tiene configurado un cortafuegos.\n"
-"Haga clic sobre Configurar para cambiar o quitar el cortafuegos"
-
-#: ../../standalone/tinyfirewall_.c:83
-msgid ""
-"Firewalling\n"
-"\n"
-"Click on Configure to set up a standard firewall"
-msgstr ""
-"Cortafuegos\n"
-"\n"
-"Haga clic sobre Configurar para configurar un cortafuegos estĆndar"
-
-#: ../../steps.pm_.c:14
-msgid "Choose your language"
-msgstr "Elija su idioma"
-
-#: ../../steps.pm_.c:15
-msgid "Select installation class"
-msgstr "Tipo de instalaciĆ³n"
-
-#: ../../steps.pm_.c:16
-msgid "Hard drive detection"
-msgstr "DetecciĆ³n del disco rĆ­gido"
-
-#: ../../steps.pm_.c:17
-msgid "Configure mouse"
-msgstr "ConfiguraciĆ³n del ratĆ³n"
-
-#: ../../steps.pm_.c:18
-msgid "Choose your keyboard"
-msgstr "Elija su teclado"
-
-#: ../../steps.pm_.c:19
-msgid "Security"
-msgstr "Seguridad"
-
-#: ../../steps.pm_.c:20
-msgid "Setup filesystems"
-msgstr "Sistemas de archivos"
-
-#: ../../steps.pm_.c:21
-msgid "Format partitions"
-msgstr "Formateo de particiones"
-
-#: ../../steps.pm_.c:22
-msgid "Choose packages to install"
-msgstr "Elija los paquetes a instalar"
-
-#: ../../steps.pm_.c:23
-msgid "Install system"
-msgstr "Instalar el sistema"
-
-#: ../../steps.pm_.c:25
-msgid "Add a user"
-msgstr "AƱadir un usuario"
-
-#: ../../steps.pm_.c:26
-msgid "Configure networking"
-msgstr "Configurar la red"
-
-#: ../../steps.pm_.c:28
-msgid "Configure services"
-msgstr "Servicios al inicio"
-
-#: ../../steps.pm_.c:29
-msgid "Install bootloader"
-msgstr "Cargador de arranque"
-
-#: ../../steps.pm_.c:31
-msgid "Create a bootdisk"
-msgstr "Crear un disco de arranque"
-
-#: ../../steps.pm_.c:33
-msgid "Configure X"
-msgstr "ConfiguraciĆ³n de X"
-
-#: ../../steps.pm_.c:34
-msgid "Install system updates"
-msgstr "Actualiz. del sistema"
-
-#: ../../steps.pm_.c:35
-msgid "Exit install"
-msgstr "Salir de la instalaciĆ³n"
-
-#: ../../tinyfirewall.pm_.c:9
-msgid ""
-"tinyfirewall configurator\n"
-"\n"
-"This configures a personal firewall for this Mandrake Linux machine.\n"
-"For a powerful dedicated firewall solution, please look to the\n"
-"specialized MandrakeSecurity Firewall distribution."
-msgstr ""
-"configurador de tinyfirewall\n"
-"\n"
-"Esto configura un cortafuegos personal para esta mĆquina Mandrake Linux.\n"
-"Para una soluciĆ³n potente de cortafuegos dedicada, por favor eche un "
-"vistazo\n"
-"a la distribuciĆ³n especializada MandrakeSecurity Firewall."
-
-#: ../../tinyfirewall.pm_.c:14
-msgid ""
-"We'll now ask you questions about which services you'd like to allow\n"
-"the Internet to connect to. Please think carefully about these\n"
-"questions, as your computer's security is important.\n"
-"\n"
-"Please, if you're not currently using one of these services, firewall\n"
-"it off. You can change this configuration anytime you like by\n"
-"re-running this application!"
-msgstr ""
-"Ahora le preguntaremos a quƩ servicios quiere permitir conectarse desde\n"
-"Internet. Por favor, piense cuidadosamente las respuestas, ya que la\n"
-"seguridad de su ordenador es importante.\n"
-"Por favor, si en este momento no estĆ usando alguno de estos servicios,\n"
-"protĆ©jalos. ĀPuede cambiar esta configuraciĆ³n cuando quiera\n"
-"volviendo a ejecutar esta aplicaciĆ³n!"
-
-#: ../../tinyfirewall.pm_.c:21
-msgid ""
-"Are you running a web server on this machine that you need the whole\n"
-"Internet to see? If you are running a webserver that only needs to be\n"
-"accessed by this machine, you can safely answer NO here.\n"
-"\n"
-msgstr ""
-"ĀæEstĆ corriendo un servidor web en esta mĆquina que quiere que vea toda\n"
-"Internet? Si estĆ corriendo un servidor web al que sĆ³lo necesita acceder\n"
-"desde esta mĆquina, aquĆ­ puede responder con seguridad NO.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:26
-msgid ""
-"Are you running a name server on this machine? If you didn't set one\n"
-"up to give away IP and zone information to the whole Internet, please\n"
-"answer no.\n"
-"\n"
-msgstr ""
-"ĀæEstĆ corriendo un servidor de nombres en esta mĆquina? Si no configurĆ³ uno\n"
-"para entregar informaciĆ³n de IP y de la zona a toda Internet, por favor\n"
-"responda no.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:31
-msgid ""
-"Do you want to allow incoming Secure Shell (ssh) connections? This\n"
-"is a telnet-replacement that you might use to login. If you're using\n"
-"telnet now, you should definitely switch to ssh. telnet is not\n"
-"encrypted -- so some attackers can steal your password if you use\n"
-"it. ssh is encrypted and doesn't allow for this eavesdropping."
-msgstr ""
-"ĀæDesea permitir conexiones de entrada de Secure Shell (ssh)? Este es un\n"
-"reemplazo de telnet que puede usar para la entrada al sistema. Si ahora estĆ "
-"usando\n"
-"telnet, definitivamente deberĆ­a cambiar a ssh. telnet no estĆ cifrado, por\n"
-"lo tanto algunos atacantes pueden robarle su contraseƱa si lo usa. ssh estĆ\n"
-"cifrado y no permite este tipo de ataque."
-
-#: ../../tinyfirewall.pm_.c:36
-msgid ""
-"Do you want to allow incoming telnet connections?\n"
-"This is horribly unsafe, as we explained in the previous screen. We\n"
-"strongly recommend answering No here and using ssh in place of\n"
-"telnet.\n"
-msgstr ""
-"ĀæDesea permitir conexiones entrantes por telnet?\n"
-"Esto es terriblemente inseguro, como explicamos en la pantalla anterior. Es\n"
-"altamente recomendable responder No aquĆ­ y usar ssh en lugar de\n"
-"telnet.\n"
-
-#: ../../tinyfirewall.pm_.c:41
-msgid ""
-"Are you running an FTP server here that you need accessible to the\n"
-"Internet? If you are, we strongly recommend that you only use it for\n"
-"Anonymous transfers. Any passwords sent by FTP can be stolen by some\n"
-"attackers, since FTP also uses no encryption for transferring passwords.\n"
-msgstr ""
-"ĀæEstĆ corriendo un servidor FTP que debe ser accesible desde Internet?\n"
-"En ese caso, es altamente recomendable que sĆ³lo lo use para transferencias\n"
-"anĆ³nimas. Algunos atacantes pueden robar cualquier contraseƱa enviada por "
-"FTP,\n"
-"ya que FTP tampoco usa cifrado para transferir las contraseƱas.\n"
-
-#: ../../tinyfirewall.pm_.c:46
-msgid ""
-"Are you running a mail server here? If you're sending you \n"
-"messages through pine, mutt or any other text-based mail client,\n"
-"you probably are. Otherwise, you should firewall this off.\n"
-"\n"
-msgstr ""
-"ĀæEstĆ corriendo un servidor de correo? Si envĆ­a sus mensajes con pine, "
-"mutt \n"
-"o cualquier otro cliente de correo de modo texto, probablemente sĆ­.\n"
-"En caso contrario, deberĆ­a proteger esto con el cortafuegos.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:51
-msgid ""
-"Are you running a POP or IMAP server here? This would\n"
-"be used to host non-web-based mail accounts for people via \n"
-"this machine.\n"
-"\n"
-msgstr ""
-"ĀæEstĆ corriendo un servidor POP o IMAP? Estos deberĆ­an ser\n"
-"usados para almacenar cuentas de correo no basadas en web para las\n"
-"personas en esta mĆquina.\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:56
-msgid ""
-"You appear to be running a 2.2 kernel. If your network IP\n"
-"is automatically set by a computer in your home or office \n"
-"(dynamically assigned), we need to allow for this. Is\n"
-"this the case?\n"
-msgstr ""
-"Parece que estĆ ejecutando un nĆŗcleo 2.2. Si una computadora en su casa\n"
-"o en la oficina configura su direcciĆ³n IP de red automĆticamente\n"
-"(asignaciĆ³n dinĆmica), debemos permitir esto. ĀæEs este el caso?\n"
-
-#: ../../tinyfirewall.pm_.c:61
-msgid ""
-"Is your computer getting time syncronized to another computer?\n"
-"Mostly, this is used by medium-large Unix/Linux organizations\n"
-"to synchronize time for logging and such. If you're not part\n"
-"of a larger office and haven't heard of this, you probably \n"
-"aren't."
-msgstr ""
-"ĀæEl reloj de su computadora estĆ sincronizado al reloj de otra computadora?\n"
-"Mayormente, esto es lo que usan las organizaciones con servidores Unix/"
-"Linux\n"
-"medianamente grandes para sincronizar los tiempos de conexiĆ³n y cosas asĆ­.\n"
-"Si no es parte de una oficina grande y nunca escuchĆ³ nada acerca de esto,\n"
-"probablemente no sea su situaciĆ³n."
-
-#: ../../tinyfirewall.pm_.c:66
-msgid ""
-"Configuration complete. May we write these changes to disk?\n"
-"\n"
-"\n"
-"\n"
-msgstr ""
-"ConfiguraciĆ³n completa. ĀæSe pueden escribir estos cambios al disco?\n"
-"\n"
-"\n"
-"\n"
-
-#: ../../tinyfirewall.pm_.c:82
-#, c-format
-msgid "Can't open %s: %s\n"
-msgstr "No se puede abrir %s: %s\n"
-
-#: ../../tinyfirewall.pm_.c:84
-#, c-format
-msgid "Can't open %s for writing: %s\n"
-msgstr "No se puede abrir %s para escribir: %s\n"
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "No I don't need DHCP"
-msgstr "No, no necesito DHCP"
-
-#: ../../tinyfirewall.pm_.c:180
-msgid "Yes I need DHCP"
-msgstr "SĆ­, necesito DHCP"
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "No I don't need NTP"
-msgstr "No, no necesito NTP"
-
-#: ../../tinyfirewall.pm_.c:181
-msgid "Yes I need NTP"
-msgstr "SĆ­, necesito NTP"
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-msgid "Don't Save"
-msgstr "No grabar"
-
-#: ../../tinyfirewall.pm_.c:182 ../../tinyfirewall.pm_.c:186
-#: ../../tinyfirewall.pm_.c:206
-msgid "Save & Quit"
-msgstr "Grabar y Salir"
-
-#: ../../tinyfirewall.pm_.c:197 ../../tinyfirewall.pm_.c:201
-msgid "Firewall Configuration Wizard"
-msgstr "Asistente para la configuraciĆ³n del Cortafuegos"
-
-#: ../../tinyfirewall.pm_.c:199
-msgid "No (firewall this off from the internet)"
-msgstr "No (proteger esto de la Internet detrĆs del cortafuegos)"
-
-#: ../../tinyfirewall.pm_.c:200
-msgid "Yes (allow this through the firewall)"
-msgstr "Sƭ (permitir esto a travƩs del cortafuegos)"
-
-#: ../../tinyfirewall.pm_.c:232
-msgid "Please Wait... Verifying installed packages"
-msgstr "Espere por favor... Verificando los paquetes instalados"
-
-#: ../../tinyfirewall.pm_.c:238
-#, c-format
-msgid ""
-"Failure installing the needed packages : %s and Bastille.\n"
-" Try to install them manually."
-msgstr ""
-"Fallo instalando los paquetes necesarios: %s y Bastille.\n"
-" Intente instalarlos a mano."
-
-#: ../../share/compssUsers:999
-msgid "Web/FTP"
-msgstr "Servidor, Web/FTP"
-
-#: ../../share/compssUsers:999
-msgid "Network Computer (client)"
-msgstr "Computadora de Red (cliente)"
-
-#: ../../share/compssUsers:999
-msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr "Servidor NFS, servidor SMB, servidor proxy, servidor SSH"
-
-#: ../../share/compssUsers:999
-msgid "Office"
-msgstr "Oficina"
-
-#: ../../share/compssUsers:999
-msgid "Gnome Workstation"
-msgstr "EstaciĆ³n de trabajo GNOME"
-
-#: ../../share/compssUsers:999
-msgid "Tools for your Palm Pilot or your Visor"
-msgstr "Herramientas para su Palm Pilot o su Visor"
-
-#: ../../share/compssUsers:999
-msgid "Workstation"
-msgstr "EstaciĆ³n de trabajo"
-
-#: ../../share/compssUsers:999
-msgid "Firewall/Router"
-msgstr "Servidor, Cortafuegos/Router"
-
-#: ../../share/compssUsers:999
-msgid "Domain Name and Network Information Server"
-msgstr "Servidor de InformaciĆ³n de Red y de Nombres de Dominio"
-
-#: ../../share/compssUsers:999
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-"Programas de Oficina: procesadores de palabras (kword, abiword), plantillas "
-"de cĆlculo (kspread, gnumeric), visualizadores PDF, etc"
-
-#: ../../share/compssUsers:999
-msgid "Audio-related tools: mp3 or midi players, mixers, etc"
-msgstr "Herramientas de audio: reproductores mp3 o midi, mezcladores, etc"
-
-#: ../../share/compssUsers:999
-msgid "Books and Howto's on Linux and Free Software"
-msgstr "Libros y COMOs sobre Linux y Software Libre"
-
-#: ../../share/compssUsers:999
-msgid "KDE Workstation"
-msgstr "EstaciĆ³n de trabajo KDE"
-
-#: ../../share/compssUsers:999
-msgid "Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm, Window Maker, Enlightenment, Fvwm, etc"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Video"
-msgstr "Multimedios - VĆ­deo"
-
-#: ../../share/compssUsers:999
-msgid "Set of tools for mail, news, web, file transfer, and chat"
-msgstr ""
-"Conjunto de herramientas para correo, noticias, web, transferencia de "
-"archivos, y chat"
-
-#: ../../share/compssUsers:999
-msgid "Database"
-msgstr "Servidor, Bases de Datos"
-
-#: ../../share/compssUsers:999
-msgid "PostgreSQL or MySQL database server"
-msgstr "Servidor de base de datos PostgreSQL o MySQL"
-
-#: ../../share/compssUsers:999
-msgid "Tools to ease the configuration of your computer"
-msgstr "Herramientas para facilitar la configuraciĆ³n de su computadora"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Sound"
-msgstr "Multimedios - Sonido"
-
-#: ../../share/compssUsers:999
-msgid "Utilities"
-msgstr "Utilitarios"
-
-#: ../../share/compssUsers:999
-msgid "Documentation"
-msgstr "DocumentaciĆ³n"
-
-#: ../../share/compssUsers:999
-msgid "Console Tools"
-msgstr "Herramientas para la consola"
-
-#: ../../share/compssUsers:999
-msgid "Postfix mail server, Inn news server"
-msgstr "Servidor de correo Postfix, servidor de noticias Inn"
-
-#: ../../share/compssUsers:999
-msgid "Internet station"
-msgstr "EstaciĆ³n Internet"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia station"
-msgstr "EstaciĆ³n Multimedios"
-
-#: ../../share/compssUsers:999
-msgid "Configuration"
-msgstr "ConfiguraciĆ³n"
-
-#: ../../share/compssUsers:999
-msgid "More Graphical Desktops (Gnome, IceWM)"
-msgstr "MĆs escritorios grĆficos (Gnome, IceWM)"
-
-#: ../../share/compssUsers:999
-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 "
-"herramientas que lo acompaƱan"
-
-#: ../../share/compssUsers:999
-msgid "Graphical Environment"
-msgstr "Entorno grĆfico"
-
-#: ../../share/compssUsers:999
-msgid "Apache, Pro-ftpd"
-msgstr "Apache y Pro-ftpd"
-
-#: ../../share/compssUsers:999
-msgid "Tools to create and burn CD's"
-msgstr "Herramientas para crear y grabar CDs"
-
-#: ../../share/compssUsers:999
-msgid "Office Workstation"
-msgstr "EstaciĆ³n de trabajo de Oficina"
-
-#: ../../share/compssUsers:999
-msgid "Server"
-msgstr "Servidor"
-
-#: ../../share/compssUsers:999
-msgid "Gnome, Icewm, Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Gnome, Icewm, Window Maker, Enlightenment, Fvwm, etc"
-
-#: ../../share/compssUsers:999
-msgid "Graphics programs such as The Gimp"
-msgstr "Programas grĆficos, tales como El Gimp"
-
-#: ../../share/compssUsers:999
-msgid "DNS/NIS "
-msgstr "DNS/NIS"
-
-#: ../../share/compssUsers:999
-msgid "C and C++ development libraries, programs and include files"
-msgstr "Bibliotecas de desarrollo C y C++, programas y archivos *.h"
-
-#: ../../share/compssUsers:999
-msgid "Network Computer server"
-msgstr "Computadora servidor de red"
-
-#: ../../share/compssUsers:999
-msgid "Mail/Groupware/News"
-msgstr "Servidor, Correo/Groupware/Noticias"
-
-#: ../../share/compssUsers:999
-msgid "Game station"
-msgstr "EstaciĆ³n de Juegos"
-
-#: ../../share/compssUsers:999
-msgid "Video players and editors"
-msgstr "Reproductores y editores de vĆ­deo"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - Graphics"
-msgstr "Multimedios - GrĆficos"
-
-#: ../../share/compssUsers:999
-msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr "Programas de entretenimiento: arcade, tableros, estrategia, etc"
-
-#: ../../share/compssUsers:999
-msgid ""
-"Set of tools to read and send mail and news (pine, mutt, tin..) and to "
-"browse the Web"
-msgstr ""
-"Conjunto de herramientas para leer y enviar correo y noticiar (pine, mutt, "
-"tin...) y para navegar por la Web"
-
-#: ../../share/compssUsers:999
-msgid "Archiving, emulators, monitoring"
-msgstr "Archivado, emuladores, monitoreo"
-
-#: ../../share/compssUsers:999
-msgid "Personal Finance"
-msgstr "Finanzas personales"
-
-#: ../../share/compssUsers:999
-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"
-
-#: ../../share/compssUsers:999
-msgid "Clients for different protocols including ssh"
-msgstr "Clientes para los distintos protocolos incluyendo a ssh"
-
-#: ../../share/compssUsers:999
-msgid "Internet gateway"
-msgstr "Pasarela de acceso a Internet"
-
-#: ../../share/compssUsers:999
-msgid "Sound and video playing/editing programs"
-msgstr "Programas de reproducciĆ³n/ediciĆ³n de sonido y vĆ­deo"
-
-#: ../../share/compssUsers:999
-msgid "Other Graphical Desktops"
-msgstr "Otros entornos grĆficos"
-
-#: ../../share/compssUsers:999
-msgid "Editors, shells, file tools, terminals"
-msgstr "Editores, shells, manipulaciĆ³n de archivos, terminales"
-
-#: ../../share/compssUsers:999
-msgid "Programs to manage your finance, such as gnucash"
-msgstr "Programas para administrar sus finanzas, tales como gnucash"
-
-#: ../../share/compssUsers:999
-msgid "Personal Information Management"
-msgstr "AdministraciĆ³n de la informaciĆ³n personal"
-
-#: ../../share/compssUsers:999
-msgid "Multimedia - CD Burning"
-msgstr "Multimedios - GrabaciĆ³n de CD"
-
-#: ../../share/compssUsers:999
-msgid "Scientific Workstation"
-msgstr "EstaciĆ³n de trabajo CientĆ­fica"
diff --git a/perl-install/share/po/et.po b/perl-install/share/po/et.po
deleted file mode 100644
index d088213a6..000000000
--- a/perl-install/share/po/et.po
+++ /dev/null
@@ -1,14194 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR Free Software Foundation, Inc.
-# Riho Kurg <rx@linux.ee>, 1999-2001.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: DrakX VERSION\n"
-"POT-Creation-Date: 2002-03-11 18:29+0100\n"
-"PO-Revision-Date: 1999-10-28 19:54+0200\n"
-"Last-Translator: Riho Kurg <rx@linux.ee>\n"
-"Language-Team: Estonian <et@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-15\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../Xconfigurator.pm_.c:242
-msgid "Configure all heads independently"
-msgstr "Seadista kõik monitorid sõltumatult"
-
-#: ../../Xconfigurator.pm_.c:243
-msgid "Use Xinerama extension"
-msgstr "Kasuta Xinerama laiendusi"
-
-#: ../../Xconfigurator.pm_.c:246
-#, c-format
-msgid "Configure only card \"%s\" (%s)"
-msgstr "Seadista ainult kaart \"%s\" (%s)"
-
-#
-#: ../../Xconfigurator.pm_.c:249
-msgid "Multi-head configuration"
-msgstr "Mitme monitori seadistamine"
-
-#: ../../Xconfigurator.pm_.c:250
-msgid ""
-"Your system support multiple head configuration.\n"
-"What do you want to do?"
-msgstr ""
-"Süsteemis on võimalik kasutada mitut monitori.\n"
-"Mida Te soovite teha?"
-
-#: ../../Xconfigurator.pm_.c:261
-msgid "Graphic card"
-msgstr "Graafikakaart"
-
-#: ../../Xconfigurator.pm_.c:262
-msgid "Select a graphic card"
-msgstr "Valige graafikakaart"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "Choose a X server"
-msgstr "Valige X server"
-
-#: ../../Xconfigurator.pm_.c:286
-msgid "X server"
-msgstr "X server"
-
-#: ../../Xconfigurator.pm_.c:293
-#, fuzzy
-msgid "Choose a X driver"
-msgstr "Valige X server"
-
-#: ../../Xconfigurator.pm_.c:293
-#, fuzzy
-msgid "X driver"
-msgstr "X server"
-
-#: ../../Xconfigurator.pm_.c:360 ../../Xconfigurator.pm_.c:366
-#: ../../Xconfigurator.pm_.c:416 ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s"
-msgstr "XFree86 %s"
-
-#: ../../Xconfigurator.pm_.c:363
-msgid "Which configuration of XFree do you want to have?"
-msgstr "Millise XFree konfiguratsiooni soovite kasutada?"
-
-#: ../../Xconfigurator.pm_.c:374
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"Teie videokaardi 3D graafikakiirendit saab kasutada vaid koos XFree %s-ga.\n"
-"XFree %s toetab Teie videokaarti ja võib omada paremat 2D tuge."
-
-#: ../../Xconfigurator.pm_.c:376 ../../Xconfigurator.pm_.c:409
-#, c-format
-msgid "Your card can have 3D hardware acceleration support with XFree %s."
-msgstr "Teie kaardi 3D graafikakiirendit toetab XFree %s."
-
-#: ../../Xconfigurator.pm_.c:378 ../../Xconfigurator.pm_.c:411
-#: ../../Xconfigurator.pm_.c:1507
-#, c-format
-msgid "XFree %s with 3D hardware acceleration"
-msgstr "XFree %s koos 3D graafikakiirendi toega"
-
-#: ../../Xconfigurator.pm_.c:386 ../../Xconfigurator.pm_.c:400
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER."
-msgstr ""
-"Teie videokaardi 3D graafikakiirendit saab kasutada koos XFree %s-ga.\n"
-"SEE ON AGA EKSPERIMENTAALNE JA VÕIB OLLA EBASTABIILNE."
-
-#: ../../Xconfigurator.pm_.c:388 ../../Xconfigurator.pm_.c:402
-#, c-format
-msgid "XFree %s with EXPERIMENTAL 3D hardware acceleration"
-msgstr "XFree %s koos EKSPERIMENTAALSE 3D kiirendi toega"
-
-#: ../../Xconfigurator.pm_.c:397
-#, c-format
-msgid ""
-"Your card can have 3D hardware acceleration support but only with XFree %s,\n"
-"NOTE THIS IS EXPERIMENTAL SUPPORT AND MAY FREEZE YOUR COMPUTER.\n"
-"Your card is supported by XFree %s which may have a better support in 2D."
-msgstr ""
-"Teie videokaardi 3D graafikakiirendit saab kasutada vaid koos XFree %s-ga.\n"
-"SEE ON AGA EKSPERIMENTAALNE JA VÕIB OLLA EBASTABIILNE.\n"
-"Teie kaarti toetab ka XFree %s, millel on ehk parem 2D tugi."
-
-#: ../../Xconfigurator.pm_.c:417
-msgid "Xpmac (installation display driver)"
-msgstr ""
-
-#: ../../Xconfigurator.pm_.c:421
-msgid "XFree configuration"
-msgstr "XFree sätted"
-
-#: ../../Xconfigurator.pm_.c:496
-msgid "Select the memory size of your graphic card"
-msgstr "Valige graafikamälu suurus"
-
-#: ../../Xconfigurator.pm_.c:550
-msgid "Choose options for server"
-msgstr "Valige X server"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Choose a monitor"
-msgstr "Valige monitor"
-
-#: ../../Xconfigurator.pm_.c:574
-msgid "Monitor"
-msgstr "Monitor"
-
-#: ../../Xconfigurator.pm_.c:577
-msgid ""
-"The two critical parameters are the vertical refresh rate, which is the "
-"rate\n"
-"at which the whole screen is refreshed, and most importantly the horizontal\n"
-"sync rate, which is the rate at which scanlines are displayed.\n"
-"\n"
-"It is VERY IMPORTANT that you do not specify a monitor type with a sync "
-"range\n"
-"that is beyond the capabilities of your monitor: you may damage your "
-"monitor.\n"
-" If in doubt, choose a conservative setting."
-msgstr ""
-"Kaks kriitilist suurust on ekraanisagedus, mis määrab kogu kuva\n"
-"uuendamise aja ja realaotussagedus\n"
-"\n"
-"On VÄGA TÄHTIS, et Te ei määraks siinkohal monitori, mille realaotus on\n"
-"suurem kui Teie monitor võimaldab. Vastasel juhul võib Teie monitor hävida.\n"
-"Kui kahtlete, valige pigem väiksem väärtus."
-
-#: ../../Xconfigurator.pm_.c:584
-msgid "Horizontal refresh rate"
-msgstr "Realaotussagedus"
-
-#: ../../Xconfigurator.pm_.c:585
-msgid "Vertical refresh rate"
-msgstr "Ekraaniuuendussagedus"
-
-#: ../../Xconfigurator.pm_.c:622
-msgid "Monitor not configured"
-msgstr "Monitor ei ole seadistatud"
-
-#: ../../Xconfigurator.pm_.c:625
-msgid "Graphic card not configured yet"
-msgstr "Graafikakaart ei ole veel seatud"
-
-#: ../../Xconfigurator.pm_.c:628
-msgid "Resolutions not chosen yet"
-msgstr "Kuvatihedus ei ole veel seatud"
-
-#: ../../Xconfigurator.pm_.c:646
-msgid "Do you want to test the configuration?"
-msgstr "Kas soovite seadistusi proovida?"
-
-#: ../../Xconfigurator.pm_.c:650
-msgid "Warning: testing this graphic card may freeze your computer"
-msgstr "Hoiatus: testimine võib Teie arvuti peatada"
-
-#: ../../Xconfigurator.pm_.c:653
-msgid "Test of the configuration"
-msgstr "Proovime seadistusi"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid ""
-"\n"
-"try to change some parameters"
-msgstr ""
-"\n"
-"proovige mõnd parameetrit muuta"
-
-#: ../../Xconfigurator.pm_.c:692 ../../Xconfigurator.pm_.c:704
-msgid "An error has occurred:"
-msgstr "Tekkis mingi viga:"
-
-#: ../../Xconfigurator.pm_.c:731
-#, c-format
-msgid "Leaving in %d seconds"
-msgstr "Jätkub %d sekundi pärast"
-
-#: ../../Xconfigurator.pm_.c:742
-msgid "Is this the correct setting?"
-msgstr "Kas see on õige?"
-
-#: ../../Xconfigurator.pm_.c:751
-msgid "An error has occurred, try to change some parameters"
-msgstr "Tekkis mingi viga, proovige mõnd parameetrit muuta"
-
-#: ../../Xconfigurator.pm_.c:822
-msgid "Resolution"
-msgstr "Kuvatihedus"
-
-#: ../../Xconfigurator.pm_.c:874
-msgid "Choose the resolution and the color depth"
-msgstr "Valige kuvatihedus ja värvisügavus"
-
-#: ../../Xconfigurator.pm_.c:876
-#, c-format
-msgid "Graphic card: %s"
-msgstr "Graafikakaart: %s"
-
-#: ../../Xconfigurator.pm_.c:877
-#, c-format
-msgid "XFree86 server: %s"
-msgstr "XFree86 server: %s"
-
-#: ../../Xconfigurator.pm_.c:891 ../../diskdrake/interactive.pm_.c:259
-#: ../../install_steps_interactive.pm_.c:208
-msgid "More"
-msgstr "Veel.."
-
-#: ../../Xconfigurator.pm_.c:891 ../../install_gtk.pm_.c:84
-#: ../../install_steps_gtk.pm_.c:328 ../../interactive.pm_.c:127
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_http.pm_.c:104
-#: ../../interactive_newt.pm_.c:170 ../../interactive_stdio.pm_.c:141
-#: ../../interactive_stdio.pm_.c:142 ../../my_gtk.pm_.c:686
-#: ../../my_gtk.pm_.c:1019 ../../my_gtk.pm_.c:1041
-#: ../../standalone/drakbackup_.c:2298 ../../standalone/drakbackup_.c:2369
-#: ../../standalone/drakbackup_.c:2385
-msgid "Ok"
-msgstr "OK"
-
-#: ../../Xconfigurator.pm_.c:893 ../../network/netconnect.pm_.c:169
-#: ../../printerdrake.pm_.c:2470 ../../standalone/draknet_.c:275
-#: ../../standalone/draknet_.c:278
-msgid "Expert Mode"
-msgstr "Ekspertresiim"
-
-#: ../../Xconfigurator.pm_.c:894
-msgid "Show all"
-msgstr "Näita kõike"
-
-#: ../../Xconfigurator.pm_.c:939
-msgid "Resolutions"
-msgstr "Kuvatihedused"
-
-#: ../../Xconfigurator.pm_.c:1509
-#, c-format
-msgid "Keyboard layout: %s\n"
-msgstr "Klaviatuuriasetus: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1510
-#, c-format
-msgid "Mouse type: %s\n"
-msgstr "Hiire tüüp: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1511
-#, c-format
-msgid "Mouse device: %s\n"
-msgstr "Hiire port: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1512
-#, c-format
-msgid "Monitor: %s\n"
-msgstr "Monitor: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1513
-#, c-format
-msgid "Monitor HorizSync: %s\n"
-msgstr "Realaotussagedus: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1514
-#, c-format
-msgid "Monitor VertRefresh: %s\n"
-msgstr "Ekraanisagedus: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1515
-#, c-format
-msgid "Graphic card: %s\n"
-msgstr "Graafikakaart: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1516
-#, fuzzy, c-format
-msgid "Graphic card identification: %s\n"
-msgstr "Graafikakaart: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1517
-#, c-format
-msgid "Graphic memory: %s kB\n"
-msgstr "Videomälu: %s kB\n"
-
-#: ../../Xconfigurator.pm_.c:1519
-#, c-format
-msgid "Color depth: %s\n"
-msgstr "Värvisügavus: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1520
-#, c-format
-msgid "Resolution: %s\n"
-msgstr "Kuvatihedus: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1522
-#, c-format
-msgid "XFree86 server: %s\n"
-msgstr "XFree86 server: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1523
-#, c-format
-msgid "XFree86 driver: %s\n"
-msgstr "XFree86 juhtprogramm: %s\n"
-
-#: ../../Xconfigurator.pm_.c:1541
-msgid "Preparing X-Window configuration"
-msgstr "Valmistume X-i seadistamiseks"
-
-#: ../../Xconfigurator.pm_.c:1561
-msgid "What do you want to do?"
-msgstr "Mida Te soovite teha?"
-
-#: ../../Xconfigurator.pm_.c:1566
-msgid "Change Monitor"
-msgstr "Muuda monitori"
-
-#: ../../Xconfigurator.pm_.c:1567
-msgid "Change Graphic card"
-msgstr "Muuda graafikakaardi"
-
-#: ../../Xconfigurator.pm_.c:1570
-msgid "Change Server options"
-msgstr "Muuda serveri parameetreid"
-
-#: ../../Xconfigurator.pm_.c:1571
-msgid "Change Resolution"
-msgstr "Muuda kuvatihedust"
-
-#: ../../Xconfigurator.pm_.c:1572
-msgid "Show information"
-msgstr "Näita lisainfot"
-
-#: ../../Xconfigurator.pm_.c:1573
-msgid "Test again"
-msgstr "Proovi veel"
-
-#: ../../Xconfigurator.pm_.c:1574 ../../printerdrake.pm_.c:2473
-#: ../../standalone/logdrake_.c:225
-msgid "Quit"
-msgstr "Välju"
-
-#: ../../Xconfigurator.pm_.c:1582
-#, c-format
-msgid ""
-"Keep the changes?\n"
-"Current configuration is:\n"
-"\n"
-"%s"
-msgstr ""
-"Säilita muutused?\n"
-"Olemasolevad sätted:\n"
-"\n"
-"%s"
-
-#: ../../Xconfigurator.pm_.c:1603
-msgid "X at startup"
-msgstr "X stardib nüüd"
-
-#: ../../Xconfigurator.pm_.c:1604
-msgid ""
-"I can set up your computer to automatically start X upon booting.\n"
-"Would you like X to start when you reboot?"
-msgstr ""
-"Teie arvutis on võimalik käivitada X juba alglaadimisel.\n"
-"Kas soovite nii teha?"
-
-# c-format
-#: ../../Xconfigurator.pm_.c:1610
-#, c-format
-msgid "Please relog into %s to activate the changes"
-msgstr "Muudatuste aktiveerimiseks käivitage %s uuesti"
-
-#: ../../Xconfigurator.pm_.c:1625
-msgid "Please log out and then use Ctrl-Alt-BackSpace"
-msgstr "Palun väljuge ja vajutage siis Ctrl-Alt-BackSpace"
-
-#: ../../Xconfigurator_consts.pm_.c:6
-msgid "256 colors (8 bits)"
-msgstr "256 värvi (8 bitti)"
-
-#: ../../Xconfigurator_consts.pm_.c:7
-msgid "32 thousand colors (15 bits)"
-msgstr "32 tuhat värvi (15 bitti)"
-
-#: ../../Xconfigurator_consts.pm_.c:8
-msgid "65 thousand colors (16 bits)"
-msgstr "65 tuhat värvi (16 bitti)"
-
-#: ../../Xconfigurator_consts.pm_.c:9
-msgid "16 million colors (24 bits)"
-msgstr "16 miljonit värvi (24 bitti)"
-
-#: ../../Xconfigurator_consts.pm_.c:10
-msgid "4 billion colors (32 bits)"
-msgstr "4 miljardit värvi (32 bitti)"
-
-#: ../../Xconfigurator_consts.pm_.c:113
-msgid "256 kB"
-msgstr "256 kB"
-
-#: ../../Xconfigurator_consts.pm_.c:114
-msgid "512 kB"
-msgstr "512 kB"
-
-#: ../../Xconfigurator_consts.pm_.c:115
-msgid "1 MB"
-msgstr "1 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:116
-msgid "2 MB"
-msgstr "2 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:117
-msgid "4 MB"
-msgstr "4 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:118
-msgid "8 MB"
-msgstr "8 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:119
-#, fuzzy
-msgid "16 MB"
-msgstr "1 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:120
-#, fuzzy
-msgid "32 MB"
-msgstr "2 MB"
-
-#: ../../Xconfigurator_consts.pm_.c:121
-#, fuzzy
-msgid "64 MB or more"
-msgstr "16 MB või rohkem"
-
-#: ../../Xconfigurator_consts.pm_.c:129
-msgid "Standard VGA, 640x480 at 60 Hz"
-msgstr "VGA, 640x400 sagedusel 60 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:130
-msgid "Super VGA, 800x600 at 56 Hz"
-msgstr "SVGA, 800x600 sagedusel 56 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:131
-msgid "8514 Compatible, 1024x768 at 87 Hz interlaced (no 800x600)"
-msgstr "8514-ühilduv, 1024x768, 87 Hz vahelejätuga "
-
-#: ../../Xconfigurator_consts.pm_.c:132
-msgid "Super VGA, 1024x768 at 87 Hz interlaced, 800x600 at 56 Hz"
-msgstr "SVGA, 1024x768, 87 Hz vahelejätuga, 800x600, 56 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:133
-msgid "Extended Super VGA, 800x600 at 60 Hz, 640x480 at 72 Hz"
-msgstr "SVGA, 800x600 sagedusel 60 Hz, 640x480 sagedusel 72 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:134
-msgid "Non-Interlaced SVGA, 1024x768 at 60 Hz, 800x600 at 72 Hz"
-msgstr "SVGA, 1024x768 sagedusel 60 Hz, 800x600 sagedusel 72 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:135
-msgid "High Frequency SVGA, 1024x768 at 70 Hz"
-msgstr "Kõrgsageduslik SVGA, 1024x768, 70 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:136
-msgid "Multi-frequency that can do 1280x1024 at 60 Hz"
-msgstr "Mitmesageduslik, 1280x1024 sagedusel 60 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:137
-msgid "Multi-frequency that can do 1280x1024 at 74 Hz"
-msgstr "Mitmesageduslik, 1280x1024 sagedusel 74 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:138
-msgid "Multi-frequency that can do 1280x1024 at 76 Hz"
-msgstr "Mitmesageduslik, 1280x1024 sagedusel 76 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:139
-msgid "Monitor that can do 1600x1200 at 70 Hz"
-msgstr "Kuvatihedus saab olla 1600x1200 sagedusel 70 Hz"
-
-#: ../../Xconfigurator_consts.pm_.c:140
-msgid "Monitor that can do 1600x1200 at 76 Hz"
-msgstr "Kuvatihedus saab olla 1600x1200 sagedusel 76 Hz"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141
-msgid "First sector of boot partition"
-msgstr "Partitsiooni algusesse"
-
-#: ../../any.pm_.c:116 ../../any.pm_.c:141 ../../any.pm_.c:218
-msgid "First sector of drive (MBR)"
-msgstr "Ketta algusesse (MBR)"
-
-#: ../../any.pm_.c:120
-msgid "SILO Installation"
-msgstr "SILO installimine"
-
-#: ../../any.pm_.c:121 ../../any.pm_.c:134
-msgid "Where do you want to install the bootloader?"
-msgstr "Kuhu soovite alglaaduri installida"
-
-#: ../../any.pm_.c:133
-msgid "LILO/grub Installation"
-msgstr "LILO/grub installimine"
-
-#: ../../any.pm_.c:145 ../../any.pm_.c:159
-msgid "SILO"
-msgstr "SILO"
-
-#: ../../any.pm_.c:147
-msgid "LILO with text menu"
-msgstr "LILO tekstiresiimis"
-
-#: ../../any.pm_.c:148 ../../any.pm_.c:159
-msgid "LILO with graphical menu"
-msgstr "LILO graafikaresiimis"
-
-#: ../../any.pm_.c:151
-msgid "Grub"
-msgstr "Grub"
-
-#: ../../any.pm_.c:155
-msgid "Boot from DOS/Windows (loadlin)"
-msgstr "Laadimine DOS/Windowsist (loadlin)"
-
-#: ../../any.pm_.c:157 ../../any.pm_.c:159
-msgid "Yaboot"
-msgstr "Yaboot"
-
-#: ../../any.pm_.c:166 ../../any.pm_.c:198
-msgid "Bootloader main options"
-msgstr "Alglaaduri peasätted"
-
-#: ../../any.pm_.c:167 ../../any.pm_.c:199
-msgid "Bootloader to use"
-msgstr "Eelistatav alglaadur"
-
-#: ../../any.pm_.c:169
-msgid "Bootloader installation"
-msgstr "Alglaaduri peasätted"
-
-#: ../../any.pm_.c:171 ../../any.pm_.c:201
-msgid "Boot device"
-msgstr "Alglaadimisseade"
-
-#: ../../any.pm_.c:172
-msgid "LBA (doesn't work on old BIOSes)"
-msgstr "LBA (ei tööta vanema BIOSi korral)"
-
-#: ../../any.pm_.c:173
-msgid "Compact"
-msgstr "Kompaktne"
-
-#: ../../any.pm_.c:173
-msgid "compact"
-msgstr "kompaktne"
-
-#: ../../any.pm_.c:174 ../../any.pm_.c:298
-msgid "Video mode"
-msgstr "Graafikamood"
-
-#: ../../any.pm_.c:176
-msgid "Delay before booting default image"
-msgstr "Ooteaeg alglaadimisel"
-
-#: ../../any.pm_.c:178 ../../any.pm_.c:796
-#: ../../install_steps_interactive.pm_.c:1115 ../../network/modem.pm_.c:48
-#: ../../printerdrake.pm_.c:708 ../../printerdrake.pm_.c:806
-#: ../../standalone/draknet_.c:625
-msgid "Password"
-msgstr "Salasõna"
-
-#: ../../any.pm_.c:179 ../../any.pm_.c:797
-#: ../../install_steps_interactive.pm_.c:1116
-msgid "Password (again)"
-msgstr "Salasõna (uuesti)"
-
-#: ../../any.pm_.c:180
-msgid "Restrict command line options"
-msgstr "Piira käsurea suvandeid"
-
-#: ../../any.pm_.c:180
-msgid "restrict"
-msgstr "piiratud"
-
-#: ../../any.pm_.c:182
-msgid "Clean /tmp at each boot"
-msgstr "Puhasta /tmp igal laadimisel"
-
-#: ../../any.pm_.c:183
-#, c-format
-msgid "Precise RAM size if needed (found %d MB)"
-msgstr "Kui vaja, täpsusta RAM suurust (leitud %d MB)"
-
-#: ../../any.pm_.c:185
-msgid "Enable multi profiles"
-msgstr "Võimalda mitut profiili"
-
-#: ../../any.pm_.c:189
-msgid "Give the ram size in MB"
-msgstr "Anna mälu suurus megabaitides"
-
-#: ../../any.pm_.c:191
-msgid ""
-"Option ``Restrict command line options'' is of no use without a password"
-msgstr "Säte ``Piira käsurea suvandeid'' on ilma salasõnata mittekasutatav"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../diskdrake/interactive.pm_.c:1135
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "Please try again"
-msgstr "Palun proovige veel"
-
-#: ../../any.pm_.c:192 ../../any.pm_.c:773
-#: ../../install_steps_interactive.pm_.c:1110
-msgid "The passwords do not match"
-msgstr "Salasõnad ei klapi"
-
-#: ../../any.pm_.c:200
-msgid "Init Message"
-msgstr "Initsialiseerimisteade"
-
-#: ../../any.pm_.c:202
-msgid "Open Firmware Delay"
-msgstr "Open Firmware viivitus"
-
-#: ../../any.pm_.c:203
-msgid "Kernel Boot Timeout"
-msgstr "Ajapiirang kerneli laadimisel"
-
-#: ../../any.pm_.c:204
-msgid "Enable CD Boot?"
-msgstr "CD-lt laadimine lubatud?"
-
-#: ../../any.pm_.c:205
-msgid "Enable OF Boot?"
-msgstr "OF laadimine lubatud?"
-
-#: ../../any.pm_.c:206
-msgid "Default OS?"
-msgstr "Vaikimisi OS?"
-
-#: ../../any.pm_.c:240
-msgid ""
-"You decided to install the bootloader on a partition.\n"
-"This implies you already have a bootloader on the hard drive you boot (eg: "
-"System Commander).\n"
-"\n"
-"On which drive are you booting?"
-msgstr ""
-
-#: ../../any.pm_.c:255
-msgid ""
-"Here are the different entries.\n"
-"You can add some more or change the existing ones."
-msgstr ""
-"Praegu on kasutusel sellised kirjed.\n"
-"Te võite neid lisada ning olemasolevaid muuta."
-
-#: ../../any.pm_.c:265 ../../standalone/drakbackup_.c:752
-#: ../../standalone/drakbackup_.c:861 ../../standalone/drakfont_.c:789
-#: ../../standalone/drakfont_.c:826
-msgid "Add"
-msgstr "Lisa"
-
-#: ../../any.pm_.c:265 ../../any.pm_.c:784 ../../diskdrake/hd_gtk.pm_.c:153
-#: ../../diskdrake/removable.pm_.c:27 ../../diskdrake/smbnfs_gtk.pm_.c:86
-#: ../../interactive_http.pm_.c:153
-msgid "Done"
-msgstr "Tehtud"
-
-#: ../../any.pm_.c:265
-#, fuzzy
-msgid "Modify"
-msgstr "Modifitseeri RAIDi"
-
-#: ../../any.pm_.c:273
-msgid "Which type of entry do you want to add?"
-msgstr "Millisele sektorile soovite seda tõsta?"
-
-#: ../../any.pm_.c:274 ../../standalone/drakbackup_.c:895
-msgid "Linux"
-msgstr "Linux"
-
-#: ../../any.pm_.c:274
-msgid "Other OS (SunOS...)"
-msgstr "Muu OS (SunOS...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (MacOS...)"
-msgstr "Muu OS (MacOS...)"
-
-#: ../../any.pm_.c:275
-msgid "Other OS (windows...)"
-msgstr "Muu OS (windows...)"
-
-#: ../../any.pm_.c:294
-msgid "Image"
-msgstr "Laadefail"
-
-#: ../../any.pm_.c:295 ../../any.pm_.c:306
-msgid "Root"
-msgstr "Juur"
-
-#: ../../any.pm_.c:296 ../../any.pm_.c:325
-msgid "Append"
-msgstr "Lisada"
-
-#: ../../any.pm_.c:300
-msgid "Initrd"
-msgstr "Initrd"
-
-#: ../../any.pm_.c:301
-msgid "Read-write"
-msgstr "Read-write"
-
-#: ../../any.pm_.c:308
-msgid "Table"
-msgstr "Tabel"
-
-#: ../../any.pm_.c:309
-msgid "Unsafe"
-msgstr "Ebaturvaline"
-
-#: ../../any.pm_.c:316 ../../any.pm_.c:321 ../../any.pm_.c:324
-msgid "Label"
-msgstr "Tähis"
-
-#: ../../any.pm_.c:318 ../../any.pm_.c:329
-msgid "Default"
-msgstr "Vaikimisi"
-
-#: ../../any.pm_.c:326
-msgid "Initrd-size"
-msgstr "Initrd suurus"
-
-#: ../../any.pm_.c:328
-msgid "NoVideo"
-msgstr "NoVideo"
-
-#: ../../any.pm_.c:336
-msgid "Remove entry"
-msgstr "Eemalda kirje"
-
-#: ../../any.pm_.c:339
-msgid "Empty label not allowed"
-msgstr "Tühi kirjetähis ei ole lubatud"
-
-#: ../../any.pm_.c:340
-msgid "You must specify a kernel image"
-msgstr ""
-
-#: ../../any.pm_.c:340
-#, fuzzy
-msgid "You must specify a root partition"
-msgstr "Teil peab olema saaleala"
-
-#: ../../any.pm_.c:341
-msgid "This label is already used"
-msgstr "Selline tähis on juba kasutusel"
-
-#: ../../any.pm_.c:656
-#, c-format
-msgid "Found %s %s interfaces"
-msgstr "Leiti %s %s liidest"
-
-#: ../../any.pm_.c:657
-msgid "Do you have another one?"
-msgstr "On Teil veel kaarte?"
-
-#: ../../any.pm_.c:658
-#, c-format
-msgid "Do you have any %s interfaces?"
-msgstr "Kas Teil on ikka mõni %s liides?"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:832 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "No"
-msgstr "Ei"
-
-#: ../../any.pm_.c:660 ../../any.pm_.c:831 ../../interactive.pm_.c:132
-#: ../../my_gtk.pm_.c:1018
-msgid "Yes"
-msgstr "Jah"
-
-#: ../../any.pm_.c:661
-msgid "See hardware info"
-msgstr "Info riistvara kohta"
-
-#. -PO: the first %s is the card type (scsi, network, sound,...)
-#. -PO: the second is the vendor+model name
-#: ../../any.pm_.c:695
-#, c-format
-msgid "Installing driver for %s card %s"
-msgstr "Installime juhtprogrammil %s kaardile %s"
-
-#: ../../any.pm_.c:696
-#, c-format
-msgid "(module %s)"
-msgstr "(moodul %s)"
-
-#. -PO: the %s is the driver type (scsi, network, sound,...)
-#: ../../any.pm_.c:707
-#, c-format
-msgid "Which %s driver should I try?"
-msgstr "Millist %s juhtprogrammi peaksime proovima?"
-
-#: ../../any.pm_.c:715
-#, c-format
-msgid ""
-"In some cases, the %s driver needs to have extra information to work\n"
-"properly, although it normally works fine without. Would you like to "
-"specify\n"
-"extra options for it or allow the driver to probe your machine for the\n"
-"information it needs? Occasionally, probing will hang a computer, but it "
-"should\n"
-"not cause any damage."
-msgstr ""
-"Mõnedel juhtudel vajab %s juhtprogramm tööks lisainformatsiooni\n"
-"kuigi tavaliselt saab ka ilma hakkama. Kas soovite eraldi parameetreid\n"
-"määratleda või lasta juhtprogrammil ise Teie arvutit kompida? Võib juhtuda,\n"
-"et see viib arvuti segadusse kuid ei tohiks mingit jäävat kahju teha."
-
-#: ../../any.pm_.c:720
-msgid "Autoprobe"
-msgstr "Proovida niisama"
-
-#: ../../any.pm_.c:720
-msgid "Specify options"
-msgstr "Määrake parameetrid"
-
-#: ../../any.pm_.c:725
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Note that any address should be entered with the prefix 0x like '0x123'"
-msgstr ""
-
-#: ../../any.pm_.c:731
-#, c-format
-msgid ""
-"You may now provide its options to module %s.\n"
-"Options are in format ``name=value name2=value2 ...''.\n"
-"For instance, ``io=0x300 irq=7''"
-msgstr ""
-"Nüüd võite moodulile %s parameetreid määrata.\n"
-"Parameetrid on vormingus \"nimi=väärtus nimi2=väärtus2 ...\".\n"
-"Näiteks: \"io=0x300 irq=7\""
-
-#: ../../any.pm_.c:734
-msgid "Module options:"
-msgstr "Mooduli parameetrid:"
-
-#: ../../any.pm_.c:745
-#, c-format
-msgid ""
-"Loading module %s failed.\n"
-"Do you want to try again with other parameters?"
-msgstr ""
-"Moodule %s laadimine ei õnnestunud.\n"
-"Kas soovite proovida parameetreid muuta?"
-
-#: ../../any.pm_.c:761
-msgid "access to X programs"
-msgstr ""
-
-#: ../../any.pm_.c:762
-msgid "access to rpm tools"
-msgstr ""
-
-#: ../../any.pm_.c:763
-msgid "allow \"su\""
-msgstr ""
-
-#: ../../any.pm_.c:764
-msgid "access to administrative files"
-msgstr ""
-
-#: ../../any.pm_.c:769
-#, c-format
-msgid "(already added %s)"
-msgstr "(juba lisatud %s)"
-
-#: ../../any.pm_.c:774
-msgid "This password is too simple"
-msgstr "Salasõna on liiga lihtne"
-
-#: ../../any.pm_.c:775
-msgid "Please give a user name"
-msgstr "Palun andke kasutajatunnus"
-
-#: ../../any.pm_.c:776
-msgid ""
-"The user name must contain only lower cased letters, numbers, `-' and `_'"
-msgstr "Kasutajatunnus tohib sisaldada ainult väikesi tähti, numbreid, - ja _"
-
-#: ../../any.pm_.c:777
-msgid "This user name is already added"
-msgstr "See kasutajatunnus on juba lisatud"
-
-#: ../../any.pm_.c:781
-msgid "Add user"
-msgstr "Lisa kasutaja"
-
-#: ../../any.pm_.c:782
-#, c-format
-msgid ""
-"Enter a user\n"
-"%s"
-msgstr ""
-"Sisesta kasutaja\n"
-"%s"
-
-#: ../../any.pm_.c:783
-msgid "Accept user"
-msgstr "Kasutaja õige"
-
-#: ../../any.pm_.c:794
-msgid "Real name"
-msgstr "Pärisnimi"
-
-#: ../../any.pm_.c:795 ../../printerdrake.pm_.c:707
-#: ../../printerdrake.pm_.c:805
-msgid "User name"
-msgstr "Kasutajatunnus"
-
-#: ../../any.pm_.c:798
-msgid "Shell"
-msgstr "Käsurida"
-
-#: ../../any.pm_.c:800
-msgid "Icon"
-msgstr "Ikoon"
-
-#: ../../any.pm_.c:828
-msgid "Autologin"
-msgstr "Vaikimisi sisenemine"
-
-#: ../../any.pm_.c:829
-#, fuzzy
-msgid ""
-"I can set up your computer to automatically log on one user.\n"
-"Do you want to use this feature?"
-msgstr ""
-"Teie arvutit saab seada vaikimisi kasutaja sisenemisele.\n"
-"Kui Te seda ei soovi, valige <Katkesta>"
-
-#: ../../any.pm_.c:833
-msgid "Choose the default user:"
-msgstr "Valige uus vaikimisi kasutaja :"
-
-#: ../../any.pm_.c:834
-msgid "Choose the window manager to run:"
-msgstr "Valige palun käivitatav aknahaldur:"
-
-#: ../../any.pm_.c:849
-#, fuzzy
-msgid "Please choose a language to use."
-msgstr "Palun valige kasutatav keel"
-
-#: ../../any.pm_.c:851
-msgid "You can choose other languages that will be available after install"
-msgstr "Teisi keeli saab valida pärast installimist"
-
-#: ../../any.pm_.c:863 ../../install_steps_interactive.pm_.c:719
-#: ../../standalone/drakxtv_.c:54
-msgid "All"
-msgstr "Kõik"
-
-#: ../../any.pm_.c:955
-#, fuzzy
-msgid "Allow all users"
-msgstr "Tavakasutaja"
-
-#: ../../any.pm_.c:955 ../../install_steps_interactive.pm_.c:521
-msgid "Custom"
-msgstr "Isetehtud"
-
-#: ../../any.pm_.c:955
-#, fuzzy
-msgid "No sharing"
-msgstr "CUPS käivitatakse"
-
-#: ../../any.pm_.c:965 ../../network/smbnfs.pm_.c:45
-#, fuzzy, c-format
-msgid "The package %s needs to be installed. Do you want to install it?"
-msgstr "Valige paketid mida soovite installida"
-
-#: ../../any.pm_.c:968
-msgid "You can export using NFS or Samba. Which one do you want"
-msgstr ""
-
-#: ../../any.pm_.c:976 ../../network/smbnfs.pm_.c:49
-#, c-format
-msgid "Mandatory package %s is missing"
-msgstr ""
-
-#: ../../any.pm_.c:982
-msgid ""
-"Do you want to allow users to export some directories in their home?\n"
-"Allowing this will permit users to simply click on \"Share\" in konqueror "
-"and nautilus.\n"
-"\n"
-"\"Custom\" permit a per-user granularity.\n"
-msgstr ""
-
-#: ../../any.pm_.c:996 ../../bootlook.pm_.c:161
-#: ../../diskdrake/smbnfs_gtk.pm_.c:85 ../../install_steps_gtk.pm_.c:464
-#: ../../install_steps_gtk.pm_.c:522 ../../install_steps_interactive.pm_.c:594
-#: ../../interactive.pm_.c:142 ../../interactive.pm_.c:317
-#: ../../interactive.pm_.c:349 ../../interactive_stdio.pm_.c:141
-#: ../../my_gtk.pm_.c:687 ../../my_gtk.pm_.c:690 ../../my_gtk.pm_.c:1019
-#: ../../network/netconnect.pm_.c:47 ../../printerdrake.pm_.c:1586
-#: ../../standalone/drakautoinst_.c:204 ../../standalone/drakbackup_.c:2264
-#: ../../standalone/drakbackup_.c:2289 ../../standalone/drakbackup_.c:2310
-#: ../../standalone/drakbackup_.c:2331 ../../standalone/drakbackup_.c:2349
-#: ../../standalone/drakbackup_.c:2397 ../../standalone/drakbackup_.c:2417
-#: ../../standalone/drakbackup_.c:2436 ../../standalone/drakfont_.c:767
-#: ../../standalone/drakgw_.c:721 ../../standalone/draknet_.c:116
-#: ../../standalone/draknet_.c:148 ../../standalone/draknet_.c:290
-#: ../../standalone/draknet_.c:538 ../../standalone/draknet_.c:680
-#: ../../standalone/logdrake_.c:225 ../../standalone/logdrake_.c:512
-#: ../../standalone/tinyfirewall_.c:65
-msgid "Cancel"
-msgstr "Katkesta"
-
-#: ../../any.pm_.c:996
-msgid "Launch userdrake"
-msgstr ""
-
-#: ../../any.pm_.c:998
-msgid ""
-"The per-user sharing uses the group \"fileshare\". \n"
-"You can use userdrake to add a user in this group."
-msgstr ""
-
-#: ../../any.pm_.c:1035
-msgid "Welcome To Crackers"
-msgstr "Tere tulemast, kräkkerid"
-
-#: ../../any.pm_.c:1036
-msgid "Poor"
-msgstr "Vähene"
-
-#: ../../any.pm_.c:1037 ../../mouse.pm_.c:31
-msgid "Standard"
-msgstr "Tavahiir"
-
-#: ../../any.pm_.c:1038
-msgid "High"
-msgstr "Kõrge"
-
-#: ../../any.pm_.c:1039
-#, fuzzy
-msgid "Higher"
-msgstr "Kõrge"
-
-#: ../../any.pm_.c:1040
-msgid "Paranoid"
-msgstr "Paranoiline"
-
-#: ../../any.pm_.c:1043
-msgid ""
-"This level is to be used with care. It makes your system more easy to use,\n"
-"but very sensitive: it must not be used for a machine connected to others\n"
-"or to the Internet. There is no password access."
-msgstr ""
-"Seda tase muudab küll süsteemi lihtsalt kasutatavaks, kui väga\n"
-"haavatavaks: ligipääsupiirangute puudumise tõttu ei peaks arvutit ühendama\n"
-"ei teiste arvutitega ega ka mitte Internetti."
-
-#: ../../any.pm_.c:1046
-msgid ""
-"Password are now enabled, but use as a networked computer is still not "
-"recommended."
-msgstr ""
-"Salasõnad on nüüd kasutusel, kuid võrku ühendamine ei ole siiski soovitav."
-
-#: ../../any.pm_.c:1047
-#, fuzzy
-msgid ""
-"This is the standard security recommended for a computer that will be used "
-"to connect to the Internet as a client."
-msgstr ""
-"See on sobilik turvatase arvutile, mis ühendatakse Internetti kui klient."
-
-#: ../../any.pm_.c:1048
-msgid ""
-"There are already some restrictions, and more automatic checks are run every "
-"night."
-msgstr ""
-
-#: ../../any.pm_.c:1049
-#, fuzzy
-msgid ""
-"With this security level, the use of this system as a server becomes "
-"possible.\n"
-"The security is now high enough to use the system as a server which accept\n"
-"connections from many clients. Note: if your machine is only a client on the "
-"Internet, you should better choose a lower level."
-msgstr "Sellel turvatasemel võib süsteemi kasutada Internetis ka serverina."
-
-#: ../../any.pm_.c:1052
-#, fuzzy
-msgid ""
-"Based on the previous level, but the system is entirely closed.\n"
-"Security features are at their maximum."
-msgstr ""
-"Süsteem on täielikult suletud. Võrgust kasutamine on võimalik ainult\n"
-"spetsiaalselt loodud juurdepääsuteid kasutades."
-
-#: ../../any.pm_.c:1058
-msgid "Choose security level"
-msgstr "Valige turvatase"
-
-#: ../../any.pm_.c:1061
-#, fuzzy
-msgid "Security level"
-msgstr "Turvataseme seadmine"
-
-#: ../../any.pm_.c:1063
-#, fuzzy
-msgid "Use libsafe for servers"
-msgstr "Valige X server"
-
-#: ../../any.pm_.c:1064
-msgid ""
-"A library which defends against buffer overflow and format string attacks."
-msgstr ""
-
-# NOTE: this message will be displayed at boot time; that is
-# only the ascii charset will be available on most machines
-# so use only 7bit for this message (and do transliteration or
-# leave it in English, as it is the best for your language)
-#
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#: ../../bootloader.pm_.c:355
-#, c-format
-msgid ""
-"Welcome to %s the operating system chooser!\n"
-"\n"
-"Choose an operating system in the list above or\n"
-"wait %d seconds for default boot.\n"
-"\n"
-msgstr ""
-"Tere tulemast! Laadimisel aitab Teid %s!\n"
-"\n"
-"Valige nimekirjast eelistatav OS,\n"
-"vaikimisi oodake %d sekundit.\n"
-"\n"
-
-# NOTE: this message will be displayed by grub at boot time; that is
-# using the BIOS font; that means cp437 charset on 99.99% of PC computers
-# out there. It is the nsuggested that for non latin languages an ascii
-# transliteration be used; or maybe the english text be used; as it is best
-#
-# The lines must fit on screen, aka length < 80
-# and only one line per string for the GRUB messages
-#
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:928
-msgid "Welcome to GRUB the operating system chooser!"
-msgstr "Tere tulemast! Laadimisel aitab Teid GRUB!"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:931
-#, c-format
-msgid "Use the %c and %c keys for selecting which entry is highlighted."
-msgstr "Kasutage valiku tegemiseks %c ja %c klahve"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:934
-msgid "Press enter to boot the selected OS, 'e' to edit the"
-msgstr "Enter laeb Teie valiku, 'e' laseb muuta"
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:937
-msgid "commands before booting, or 'c' for a command-line."
-msgstr "suvandeid enne laadimist ja 'c' veel enam."
-
-#. -PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
-#. -PO: and keep them smaller than 79 chars long
-#: ../../bootloader.pm_.c:940
-#, c-format
-msgid "The highlighted entry will be booted automatically in %d seconds."
-msgstr "Valik laetakse automaatselt %d sekundi jooksul"
-
-#: ../../bootloader.pm_.c:944
-msgid "not enough room in /boot"
-msgstr "/boot on liiga täis"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#. -PO: so you may need to put them in English or in a different language if MS-windows doesn't exist in your language
-#: ../../bootloader.pm_.c:1044
-msgid "Desktop"
-msgstr "Töölaud"
-
-#. -PO: "Desktop" and "Start Menu" are the name of the directories found in c:\windows
-#: ../../bootloader.pm_.c:1046
-msgid "Start Menu"
-msgstr "Startmenüü"
-
-#: ../../bootloader.pm_.c:1065
-#, fuzzy, c-format
-msgid "You can't install the bootloader on a %s partition\n"
-msgstr "Kuhu soovite alglaaduri installida"
-
-#: ../../bootlook.pm_.c:46
-msgid "no help implemented yet.\n"
-msgstr "selle kohta (veel) abi ei saa.\n"
-
-#: ../../bootlook.pm_.c:62
-msgid "Boot Style Configuration"
-msgstr "Alglaaduri stiil"
-
-#: ../../bootlook.pm_.c:79 ../../standalone/logdrake_.c:101
-msgid "/_File"
-msgstr "/_Fail"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "/File/_Quit"
-msgstr "/Fail/_Välju"
-
-#: ../../bootlook.pm_.c:80 ../../standalone/logdrake_.c:107
-msgid "<control>Q"
-msgstr "<control>Q"
-
-#: ../../bootlook.pm_.c:91
-msgid "NewStyle Categorizing Monitor"
-msgstr "NewStyle kategoriseeritud jälgimine"
-
-#: ../../bootlook.pm_.c:92
-msgid "NewStyle Monitor"
-msgstr "NewStyle jälgimine"
-
-#: ../../bootlook.pm_.c:93
-msgid "Traditional Monitor"
-msgstr "Tavaline jälgimine"
-
-#: ../../bootlook.pm_.c:94
-msgid "Traditional Gtk+ Monitor"
-msgstr "Traditsiooniline Gtk+ jälgimine"
-
-#: ../../bootlook.pm_.c:95
-msgid "Launch Aurora at boot time"
-msgstr "Käivita alglaadimisel Aurora"
-
-#: ../../bootlook.pm_.c:98
-#, fuzzy
-msgid "Lilo/grub mode"
-msgstr "Valimisviis"
-
-#: ../../bootlook.pm_.c:98
-#, fuzzy
-msgid "Yaboot mode"
-msgstr "Alglaadimismood"
-
-#: ../../bootlook.pm_.c:104
-#, fuzzy, c-format
-msgid ""
-"You are currently using %s as Boot Manager.\n"
-"Click on Configure to launch the setup wizard."
-msgstr ""
-"Internetiühenduse jagamise Abimees!\n"
-"\n"
-"%s\n"
-"\n"
-"Valige Abimehe käivitamiseks ``OK''"
-
-#: ../../bootlook.pm_.c:106 ../../standalone/drakbackup_.c:1467
-#: ../../standalone/drakbackup_.c:1478 ../../standalone/drakgw_.c:715
-#: ../../standalone/tinyfirewall_.c:59
-msgid "Configure"
-msgstr "Seadista"
-
-#: ../../bootlook.pm_.c:141
-msgid "System mode"
-msgstr "Töömood"
-
-#: ../../bootlook.pm_.c:143
-msgid "Launch the X-Window system at start"
-msgstr "Käivita X-Windows alglaadimisel"
-
-#: ../../bootlook.pm_.c:148
-msgid "No, I don't want autologin"
-msgstr "Ei taha automaatselt siseneda"
-
-#: ../../bootlook.pm_.c:150
-msgid "Yes, I want autologin with this (user, desktop)"
-msgstr ""
-"Jah, soovin automaatset sisselogimist sellele (kasutajale, keskkonnale)"
-
-#: ../../bootlook.pm_.c:160 ../../network/netconnect.pm_.c:102
-#: ../../standalone/drakbackup_.c:2441 ../../standalone/drakbackup_.c:3345
-#: ../../standalone/drakfont_.c:532 ../../standalone/drakfont_.c:655
-#: ../../standalone/drakfont_.c:719 ../../standalone/drakfont_.c:765
-#: ../../standalone/draknet_.c:109 ../../standalone/draknet_.c:141
-#: ../../standalone/draknet_.c:297 ../../standalone/draknet_.c:436
-#: ../../standalone/draknet_.c:522 ../../standalone/draknet_.c:565
-#: ../../standalone/draknet_.c:666 ../../standalone/logdrake_.c:505
-msgid "OK"
-msgstr "OK"
-
-#: ../../bootlook.pm_.c:229
-#, c-format
-msgid "can not open /etc/inittab for reading: %s"
-msgstr "ei saa lugeda faili /etc/inittab: %s"
-
-#: ../../common.pm_.c:94
-msgid "GB"
-msgstr "GB"
-
-#: ../../common.pm_.c:94
-msgid "KB"
-msgstr "KB"
-
-#: ../../common.pm_.c:94
-msgid "MB"
-msgstr "MB"
-
-#: ../../common.pm_.c:102
-msgid "TB"
-msgstr "TB"
-
-#: ../../common.pm_.c:110
-#, c-format
-msgid "%d minutes"
-msgstr "%d minutit"
-
-#: ../../common.pm_.c:112
-msgid "1 minute"
-msgstr "1 minut"
-
-#: ../../common.pm_.c:114
-#, c-format
-msgid "%d seconds"
-msgstr "%d sekundit"
-
-#: ../../common.pm_.c:159
-#, fuzzy
-msgid "Can't make screenshots before partitioning"
-msgstr "Partitsioone ei saa enam lisada"
-
-#: ../../common.pm_.c:166
-#, fuzzy, c-format
-msgid "Screenshots will be available after install in %s"
-msgstr "Teisi keeli saab valida pärast installimist"
-
-#: ../../crypto.pm_.c:12 ../../crypto.pm_.c:26 ../../standalone/drakxtv_.c:50
-msgid "France"
-msgstr "Prantsusmaa"
-
-#: ../../crypto.pm_.c:13
-msgid "Costa Rica"
-msgstr ""
-
-#: ../../crypto.pm_.c:14 ../../crypto.pm_.c:27
-#, fuzzy
-msgid "Belgium"
-msgstr "Belgia"
-
-#: ../../crypto.pm_.c:15 ../../crypto.pm_.c:28
-msgid "Czech Republic"
-msgstr ""
-
-#: ../../crypto.pm_.c:16 ../../crypto.pm_.c:29
-msgid "Germany"
-msgstr "Saksa"
-
-#: ../../crypto.pm_.c:17 ../../crypto.pm_.c:30
-#, fuzzy
-msgid "Greece"
-msgstr "Kreeka"
-
-#: ../../crypto.pm_.c:18 ../../crypto.pm_.c:31
-#, fuzzy
-msgid "Norway"
-msgstr "Norra"
-
-#: ../../crypto.pm_.c:19 ../../crypto.pm_.c:32
-#, fuzzy
-msgid "Sweden"
-msgstr "Vaata"
-
-#: ../../crypto.pm_.c:20 ../../crypto.pm_.c:34
-msgid "Netherlands"
-msgstr ""
-
-#: ../../crypto.pm_.c:21 ../../crypto.pm_.c:35 ../../standalone/drakxtv_.c:50
-#, fuzzy
-msgid "Italy"
-msgstr "Itaalia"
-
-#: ../../crypto.pm_.c:22 ../../crypto.pm_.c:36
-#, fuzzy
-msgid "Austria"
-msgstr "seerial"
-
-#: ../../crypto.pm_.c:33 ../../crypto.pm_.c:67
-msgid "United States"
-msgstr ""
-
-#: ../../diskdrake/hd_gtk.pm_.c:94
-msgid "Please make a backup of your data first"
-msgstr "Palun tehke oma andmetest enne tagavarakoopia"
-
-#: ../../diskdrake/hd_gtk.pm_.c:94 ../../diskdrake/interactive.pm_.c:891
-#: ../../diskdrake/interactive.pm_.c:900 ../../diskdrake/interactive.pm_.c:954
-msgid "Read carefully!"
-msgstr "Lugege hoolega!"
-
-#: ../../diskdrake/hd_gtk.pm_.c:97
-msgid ""
-"If you plan to use aboot, be carefull to leave a free space (2048 sectors is "
-"enough)\n"
-"at the beginning of the disk"
-msgstr ""
-"Kui soovite kasutada aboot-i, jätke palun ketta algusesse vähemalt 2048 \n"
-"sektorit vaba ruumi"
-
-#: ../../diskdrake/hd_gtk.pm_.c:116 ../../diskdrake/interactive.pm_.c:325
-#: ../../diskdrake/interactive.pm_.c:340 ../../diskdrake/smbnfs_gtk.pm_.c:45
-#: ../../install_steps.pm_.c:75 ../../install_steps_interactive.pm_.c:67
-#: ../../install_steps_interactive.pm_.c:356 ../../interactive_http.pm_.c:119
-#: ../../interactive_http.pm_.c:120 ../../standalone/diskdrake_.c:84
-msgid "Error"
-msgstr "Viga"
-
-#: ../../diskdrake/hd_gtk.pm_.c:151
-msgid "Wizard"
-msgstr "Abimees"
-
-#: ../../diskdrake/hd_gtk.pm_.c:181 ../../diskdrake/removable_gtk.pm_.c:24
-msgid "Choose action"
-msgstr "Valige tegevus"
-
-#: ../../diskdrake/hd_gtk.pm_.c:185
-msgid ""
-"You have one big FAT partition\n"
-"(generally used by MicroSoft Dos/Windows).\n"
-"I suggest you first resize that partition\n"
-"(click on it, then click on \"Resize\")"
-msgstr ""
-"Teil on üks suur FAT partitsioon.\n"
-"(tavaliselt kasutab sellist MS DOS/Windows)\n"
-"Soovitame teil esmalt selle suurust muuta\n"
-"(klikkige ja siis valige \"Muuda\")"
-
-#: ../../diskdrake/hd_gtk.pm_.c:188
-msgid "Please click on a partition"
-msgstr "Palun valige partitsioon"
-
-#: ../../diskdrake/hd_gtk.pm_.c:202 ../../diskdrake/smbnfs_gtk.pm_.c:67
-#: ../../install_steps_gtk.pm_.c:523
-msgid "Details"
-msgstr "Üksikasjad"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Ext2"
-msgstr "ext2"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "FAT"
-msgstr "FAT"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "HFS"
-msgstr "HFS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-#, fuzzy
-msgid "Journalised FS"
-msgstr "ühendamine ebaõnnestus"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "SunOS"
-msgstr "SunOS"
-
-#: ../../diskdrake/hd_gtk.pm_.c:320
-msgid "Swap"
-msgstr "Saaleala"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../diskdrake/interactive.pm_.c:1050
-msgid "Empty"
-msgstr "Tühi"
-
-#: ../../diskdrake/hd_gtk.pm_.c:321 ../../install_steps_gtk.pm_.c:379
-#: ../../install_steps_gtk.pm_.c:439 ../../mouse.pm_.c:162
-#: ../../services.pm_.c:157 ../../standalone/drakbackup_.c:944
-msgid "Other"
-msgstr "Muu"
-
-#: ../../diskdrake/hd_gtk.pm_.c:325
-msgid "Filesystem types:"
-msgstr "Failisüsteemi tüübid: "
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:386
-msgid "Create"
-msgstr "Tekita"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/interactive.pm_.c:365
-#: ../../diskdrake/interactive.pm_.c:499 ../../diskdrake/removable.pm_.c:26
-#: ../../diskdrake/removable.pm_.c:49 ../../diskdrake/removable_gtk.pm_.c:17
-msgid "Type"
-msgstr "Tüüp"
-
-#: ../../diskdrake/hd_gtk.pm_.c:342 ../../diskdrake/hd_gtk.pm_.c:344
-#, c-format
-msgid "Use ``%s'' instead"
-msgstr "Kasutage pigem ``%s''"
-
-#: ../../diskdrake/hd_gtk.pm_.c:344 ../../diskdrake/interactive.pm_.c:374
-msgid "Delete"
-msgstr "Kustuta"
-
-#: ../../diskdrake/hd_gtk.pm_.c:348
-msgid "Use ``Unmount'' first"
-msgstr "Kasutage enne \"Ühenda lahti\""
-
-#: ../../diskdrake/hd_gtk.pm_.c:349 ../../diskdrake/interactive.pm_.c:491
-#, c-format
-msgid ""
-"After changing type of partition %s, all data on this partition will be lost"
-msgstr "Partitsiooni %s tüübi muutmisel hävivad kõik seal olnud andmed"
-
-#: ../../diskdrake/interactive.pm_.c:171
-#, fuzzy
-msgid "Choose a partition"
-msgstr "Valige tegevus"
-
-#: ../../diskdrake/interactive.pm_.c:171
-#, fuzzy
-msgid "Choose another partition"
-msgstr "Looge uus partitsioon"
-
-#: ../../diskdrake/interactive.pm_.c:196
-#, fuzzy
-msgid "Exit"
-msgstr "ext2"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to expert mode"
-msgstr "Tavakasutaja > Ekspert"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Toggle to normal mode"
-msgstr "Ekspert > Tavakasutaja"
-
-#: ../../diskdrake/interactive.pm_.c:218
-msgid "Undo"
-msgstr "Tagasi"
-
-#: ../../diskdrake/interactive.pm_.c:237
-msgid "Continue anyway?"
-msgstr "Jätkate ikkagi?"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without saving"
-msgstr "Lõpeta ilma salvestamata"
-
-#: ../../diskdrake/interactive.pm_.c:242
-msgid "Quit without writing the partition table?"
-msgstr "Lõpetate ilma partitsioonitabelit salvestamata?"
-
-#: ../../diskdrake/interactive.pm_.c:247
-#, fuzzy
-msgid "Do you want to save /etc/fstab modifications"
-msgstr "Kas soovite seadistusi proovida?"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Auto allocate"
-msgstr "Paiguta ise"
-
-#: ../../diskdrake/interactive.pm_.c:259
-msgid "Clear all"
-msgstr "Kustuta kõik"
-
-#: ../../diskdrake/interactive.pm_.c:262
-#, fuzzy
-msgid "Hard drive information"
-msgstr "Meili informatsioon"
-
-#: ../../diskdrake/interactive.pm_.c:283
-msgid "All primary partitions are used"
-msgstr "Kõik primaarsed partitsioonid on kasutusel"
-
-#: ../../diskdrake/interactive.pm_.c:284
-msgid "I can't add any more partition"
-msgstr "Partitsioone ei saa enam lisada"
-
-#: ../../diskdrake/interactive.pm_.c:285
-msgid ""
-"To have more partitions, please delete one to be able to create an extended "
-"partition"
-msgstr ""
-"Et saada rohkem partitsioone, kustutage palun üks, et luua laiendatud "
-"partitsioon"
-
-#: ../../diskdrake/interactive.pm_.c:295
-#, fuzzy
-msgid "Save partition table"
-msgstr "Kirjuta partitsioonitabel"
-
-#: ../../diskdrake/interactive.pm_.c:296
-#, fuzzy
-msgid "Restore partition table"
-msgstr "Päästa partitsioonitabel"
-
-#: ../../diskdrake/interactive.pm_.c:297
-msgid "Rescue partition table"
-msgstr "Päästa partitsioonitabel"
-
-#: ../../diskdrake/interactive.pm_.c:299
-#, fuzzy
-msgid "Reload partition table"
-msgstr "Päästa partitsioonitabel"
-
-#: ../../diskdrake/interactive.pm_.c:304
-#, fuzzy
-msgid "Removable media automounting"
-msgstr "CD/flopi/.. autoühendamine"
-
-#: ../../diskdrake/interactive.pm_.c:313 ../../diskdrake/interactive.pm_.c:333
-msgid "Select file"
-msgstr "Valige fail"
-
-#: ../../diskdrake/interactive.pm_.c:320
-msgid ""
-"The backup partition table has not the same size\n"
-"Still continue?"
-msgstr ""
-"Tabeli tagavarakoopia ei ole sama suurusega\n"
-"Soovite jätkata?"
-
-#: ../../diskdrake/interactive.pm_.c:334
-msgid "Warning"
-msgstr "Hoiatus"
-
-#: ../../diskdrake/interactive.pm_.c:335
-msgid ""
-"Insert a floppy in drive\n"
-"All data on this floppy will be lost"
-msgstr ""
-"Pange tühi flopi masinasse\n"
-"Kõik andmed sellel hävivad"
-
-#: ../../diskdrake/interactive.pm_.c:346
-msgid "Trying to rescue partition table"
-msgstr "Proovin päästa partitsioonitabelit"
-
-#: ../../diskdrake/interactive.pm_.c:352
-#, fuzzy
-msgid "Detailed information"
-msgstr "Meili informatsioon"
-
-#: ../../diskdrake/interactive.pm_.c:364 ../../diskdrake/interactive.pm_.c:534
-#: ../../diskdrake/interactive.pm_.c:554 ../../diskdrake/removable.pm_.c:24
-#: ../../diskdrake/removable_gtk.pm_.c:15 ../../diskdrake/smbnfs_gtk.pm_.c:83
-msgid "Mount point"
-msgstr "Ühenduspunkt"
-
-#: ../../diskdrake/interactive.pm_.c:366 ../../diskdrake/removable.pm_.c:25
-#: ../../diskdrake/removable_gtk.pm_.c:16 ../../diskdrake/smbnfs_gtk.pm_.c:84
-msgid "Options"
-msgstr "Eelistused"
-
-#: ../../diskdrake/interactive.pm_.c:367 ../../diskdrake/interactive.pm_.c:621
-msgid "Resize"
-msgstr "Muuda suurust"
-
-#: ../../diskdrake/interactive.pm_.c:368 ../../diskdrake/interactive.pm_.c:674
-msgid "Move"
-msgstr "Liiguta"
-
-#: ../../diskdrake/interactive.pm_.c:369
-msgid "Format"
-msgstr "Vorminda"
-
-#: ../../diskdrake/interactive.pm_.c:370 ../../diskdrake/smbnfs_gtk.pm_.c:80
-msgid "Mount"
-msgstr "Ühenda"
-
-#: ../../diskdrake/interactive.pm_.c:371
-msgid "Add to RAID"
-msgstr "Lisa RAIDi"
-
-#: ../../diskdrake/interactive.pm_.c:372
-msgid "Add to LVM"
-msgstr "Lisa LVMi"
-
-#: ../../diskdrake/interactive.pm_.c:373 ../../diskdrake/smbnfs_gtk.pm_.c:79
-msgid "Unmount"
-msgstr "Ühenda lahti"
-
-#: ../../diskdrake/interactive.pm_.c:375
-msgid "Remove from RAID"
-msgstr "Eemalda RAIDist"
-
-#: ../../diskdrake/interactive.pm_.c:376
-msgid "Remove from LVM"
-msgstr "Eemalda LVMist"
-
-#: ../../diskdrake/interactive.pm_.c:377
-msgid "Modify RAID"
-msgstr "Modifitseeri RAIDi"
-
-#: ../../diskdrake/interactive.pm_.c:378
-msgid "Use for loopback"
-msgstr "Kasuta loopback-ina"
-
-#: ../../diskdrake/interactive.pm_.c:417
-msgid "Create a new partition"
-msgstr "Looge uus partitsioon"
-
-#: ../../diskdrake/interactive.pm_.c:420
-msgid "Start sector: "
-msgstr "Algsektor: "
-
-#: ../../diskdrake/interactive.pm_.c:422 ../../diskdrake/interactive.pm_.c:773
-msgid "Size in MB: "
-msgstr "Suurus (MB): "
-
-#: ../../diskdrake/interactive.pm_.c:423 ../../diskdrake/interactive.pm_.c:774
-msgid "Filesystem type: "
-msgstr "Failisüsteemi tüüp: "
-
-#: ../../diskdrake/interactive.pm_.c:424
-#: ../../diskdrake/interactive.pm_.c:1034
-#: ../../diskdrake/interactive.pm_.c:1108
-msgid "Mount point: "
-msgstr "Ühenduspunkt:"
-
-#: ../../diskdrake/interactive.pm_.c:428
-msgid "Preference: "
-msgstr "Eelistus: "
-
-#: ../../diskdrake/interactive.pm_.c:472
-#, fuzzy
-msgid "Remove the loopback file?"
-msgstr "Vormindan loopback faili %s"
-
-#: ../../diskdrake/interactive.pm_.c:497
-msgid "Change partition type"
-msgstr "Muuda partitsiooni tüüp"
-
-#: ../../diskdrake/interactive.pm_.c:498 ../../diskdrake/removable.pm_.c:48
-msgid "Which filesystem do you want?"
-msgstr "Mis failisüsteemi soovite kasutada?"
-
-#: ../../diskdrake/interactive.pm_.c:502
-msgid "Switching from ext2 to ext3"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:532
-#, c-format
-msgid "Where do you want to mount loopback file %s?"
-msgstr "Kuhu soovite loopback-faili %s ühendada?"
-
-#: ../../diskdrake/interactive.pm_.c:533 ../../diskdrake/interactive.pm_.c:553
-#, c-format
-msgid "Where do you want to mount device %s?"
-msgstr "Kuhu soovite seadme %s ühendada?"
-
-#: ../../diskdrake/interactive.pm_.c:539
-msgid ""
-"Can't unset mount point as this partition is used for loop back.\n"
-"Remove the loopback first"
-msgstr ""
-"Seda ühenduspunkti ei saa eemaldada, kuna partitsioon on kasutusel.\n"
-"loopback-ina. Eemaldage enne loopback"
-
-#: ../../diskdrake/interactive.pm_.c:577
-msgid "Computing FAT filesystem bounds"
-msgstr "Arvutan FAT failisüsteemi piire"
-
-#: ../../diskdrake/interactive.pm_.c:577 ../../diskdrake/interactive.pm_.c:636
-#: ../../install_interactive.pm_.c:130
-msgid "Resizing"
-msgstr "Muudan suurust"
-
-#: ../../diskdrake/interactive.pm_.c:609
-msgid "This partition is not resizeable"
-msgstr "See partitsioon ei ole muudetav"
-
-#: ../../diskdrake/interactive.pm_.c:614
-msgid "All data on this partition should be backed-up"
-msgstr "Selle partitsiooni andmetest võiks olla tagavarakoopia"
-
-#: ../../diskdrake/interactive.pm_.c:616
-#, c-format
-msgid "After resizing partition %s, all data on this partition will be lost"
-msgstr "Partitsiooni %s suuruse muutmisel hävivad sellel kõik andmed"
-
-#: ../../diskdrake/interactive.pm_.c:621
-msgid "Choose the new size"
-msgstr "Valige uus suurus"
-
-#: ../../diskdrake/interactive.pm_.c:622
-#, fuzzy
-msgid "New size in MB: "
-msgstr "Suurus (MB): "
-
-#: ../../diskdrake/interactive.pm_.c:675
-msgid "Which disk do you want to move it to?"
-msgstr "Millisele kettale soovite seda ümber paigutada?"
-
-#: ../../diskdrake/interactive.pm_.c:676
-msgid "Sector"
-msgstr "Sektor"
-
-#: ../../diskdrake/interactive.pm_.c:677
-msgid "Which sector do you want to move it to?"
-msgstr "Millisele sektorile soovite seda ümber paigutada?"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving"
-msgstr "Paigutan ümber"
-
-#: ../../diskdrake/interactive.pm_.c:680
-msgid "Moving partition..."
-msgstr "Liigutan partitsiooni..."
-
-#: ../../diskdrake/interactive.pm_.c:697
-msgid "Choose an existing RAID to add to"
-msgstr "Vali olemasolev RAID, millele lisada"
-
-#: ../../diskdrake/interactive.pm_.c:698 ../../diskdrake/interactive.pm_.c:716
-msgid "new"
-msgstr "uus"
-
-#: ../../diskdrake/interactive.pm_.c:714
-msgid "Choose an existing LVM to add to"
-msgstr "Vali olemasolev LVM, millele lisada"
-
-#: ../../diskdrake/interactive.pm_.c:719
-msgid "LVM name?"
-msgstr "LVM nimi?"
-
-#: ../../diskdrake/interactive.pm_.c:759
-msgid "This partition can't be used for loopback"
-msgstr "Seda partitsiooni ei saa loopback-ina kasutada"
-
-#: ../../diskdrake/interactive.pm_.c:771
-msgid "Loopback"
-msgstr "loopback"
-
-#: ../../diskdrake/interactive.pm_.c:772
-msgid "Loopback file name: "
-msgstr "loopback faili nimi:"
-
-#: ../../diskdrake/interactive.pm_.c:777
-#, fuzzy
-msgid "Give a file name"
-msgstr "Pärisnimi"
-
-#: ../../diskdrake/interactive.pm_.c:780
-msgid "File already used by another loopback, choose another one"
-msgstr "See fail on juba loopback-ina kasutusel, valige mõni muu"
-
-#: ../../diskdrake/interactive.pm_.c:781
-msgid "File already exists. Use it?"
-msgstr "Fail on juba olemas. Kas kasutan seda?"
-
-#: ../../diskdrake/interactive.pm_.c:804
-#, fuzzy
-msgid "Mount options"
-msgstr "Mooduli parameetrid:"
-
-#: ../../diskdrake/interactive.pm_.c:811
-msgid "Various"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:874
-msgid "device"
-msgstr "seade"
-
-#: ../../diskdrake/interactive.pm_.c:875
-msgid "level"
-msgstr "tase"
-
-#: ../../diskdrake/interactive.pm_.c:876
-msgid "chunk size"
-msgstr "ühiku suurus"
-
-#: ../../diskdrake/interactive.pm_.c:891
-msgid "Be careful: this operation is dangerous."
-msgstr "Vaadake ette: see võib olla ohtlik."
-
-#: ../../diskdrake/interactive.pm_.c:906
-msgid "What type of partitioning?"
-msgstr "Mis tüüpi partitsioonid teete?"
-
-#: ../../diskdrake/interactive.pm_.c:924
-msgid ""
-"Sorry I won't accept to create /boot so far onto the drive (on a cylinder > "
-"1024).\n"
-"Either you use LILO and it won't work, or you don't use LILO and you don't "
-"need /boot"
-msgstr ""
-"Vabandan, aga ei saa nõustuda /boot kataloogi paigutamisega kaugemale 1024-"
-"st silindrist.\n"
-"Kui kasutate LILO-t, ei tööta see sel moel, kui aga ei kasuta, ei ole Teile "
-"ka /boot vajalik"
-
-#: ../../diskdrake/interactive.pm_.c:928
-msgid ""
-"The partition you've selected to add as root (/) is physically located "
-"beyond\n"
-"the 1024th cylinder of the hard drive, and you have no /boot partition.\n"
-"If you plan to use the LILO boot manager, be careful to add a /boot partition"
-msgstr ""
-"Partitsioon, mida soovite kasutada juurkataloogi (/) hoidmiseks, asub\n"
-"füüsiliselt tagapool 1024-t silindrit ja Teil ei ole /boot partitsiooni.\n"
-"Kui plaanite kasutada LILO alglaadurit, lisage kindlasti /boot partitsioon"
-
-#: ../../diskdrake/interactive.pm_.c:934
-msgid ""
-"You've selected a software RAID partition as root (/).\n"
-"No bootloader is able to handle this without a /boot partition.\n"
-"So be careful to add a /boot partition"
-msgstr ""
-"Olete valinud juurpartitsiooniks (/) tarkvaralise RAID-i.\n"
-"Ilma /boot partitsioonita ei ole võimalik sellist süsteemi laadida.\n"
-"Lisage kindlasti /boot partitsioon!"
-
-#: ../../diskdrake/interactive.pm_.c:954
-#, c-format
-msgid "Partition table of drive %s is going to be written to disk!"
-msgstr "Ketta %s partitsioonitabel salvestatakse!"
-
-#: ../../diskdrake/interactive.pm_.c:958
-msgid "You'll need to reboot before the modification can take place"
-msgstr "Muudatuste jõustamiseks vajate alglaadimist"
-
-#: ../../diskdrake/interactive.pm_.c:969
-#, c-format
-msgid "After formatting partition %s, all data on this partition will be lost"
-msgstr "Partitsiooni %s vormindamisel hävivad sellel kõik andmed"
-
-#: ../../diskdrake/interactive.pm_.c:971
-msgid "Formatting"
-msgstr "Vormindan"
-
-#: ../../diskdrake/interactive.pm_.c:972
-#, c-format
-msgid "Formatting loopback file %s"
-msgstr "Vormindan loopback faili %s"
-
-#: ../../diskdrake/interactive.pm_.c:973
-#: ../../install_steps_interactive.pm_.c:465
-#, c-format
-msgid "Formatting partition %s"
-msgstr "Vormindan partitsiooni %s"
-
-#: ../../diskdrake/interactive.pm_.c:984
-#, fuzzy
-msgid "Hide files"
-msgstr "mkraid ebaõnnestus"
-
-#: ../../diskdrake/interactive.pm_.c:984
-#, fuzzy
-msgid "Move files to the new partition"
-msgstr "Ei ole piisavalt ruumi uute partitsioonide jaoks"
-
-#: ../../diskdrake/interactive.pm_.c:985
-#, c-format
-msgid ""
-"Directory %s already contain some data\n"
-"(%s)"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:996
-#, fuzzy
-msgid "Moving files to the new partition"
-msgstr "Ei ole piisavalt ruumi uute partitsioonide jaoks"
-
-#: ../../diskdrake/interactive.pm_.c:1000
-#, c-format
-msgid "Copying %s"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1004
-#, fuzzy, c-format
-msgid "Removing %s"
-msgstr "Kuvatihedus: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1014
-#, c-format
-msgid "partition %s is now known as %s"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1035
-#: ../../diskdrake/interactive.pm_.c:1094
-msgid "Device: "
-msgstr "Seade: "
-
-#: ../../diskdrake/interactive.pm_.c:1036
-#, c-format
-msgid "DOS drive letter: %s (just a guess)\n"
-msgstr "DOS kettatähis: %s (arvatavasti)\n"
-
-#: ../../diskdrake/interactive.pm_.c:1040
-#: ../../diskdrake/interactive.pm_.c:1048
-#: ../../diskdrake/interactive.pm_.c:1112
-msgid "Type: "
-msgstr "Tüüp: "
-
-#: ../../diskdrake/interactive.pm_.c:1044
-msgid "Name: "
-msgstr "Nimi: "
-
-#: ../../diskdrake/interactive.pm_.c:1052
-#, c-format
-msgid "Start: sector %s\n"
-msgstr "Algus: sektor %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1053
-#, c-format
-msgid "Size: %s"
-msgstr "Suurus: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1055
-#, c-format
-msgid ", %s sectors"
-msgstr ", %s sektorit"
-
-#: ../../diskdrake/interactive.pm_.c:1057
-#, fuzzy, c-format
-msgid "Cylinder %d to %d\n"
-msgstr "Silindrid %d kuni %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1058
-msgid "Formatted\n"
-msgstr "Vormindatud\n"
-
-#: ../../diskdrake/interactive.pm_.c:1059
-msgid "Not formatted\n"
-msgstr "Vormindamata\n"
-
-#: ../../diskdrake/interactive.pm_.c:1060
-msgid "Mounted\n"
-msgstr "Ühendatud\n"
-
-#: ../../diskdrake/interactive.pm_.c:1061
-#, c-format
-msgid "RAID md%s\n"
-msgstr "RAID md%s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1063
-#, fuzzy, c-format
-msgid ""
-"Loopback file(s):\n"
-" %s\n"
-msgstr "loopback fail(id): %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1064
-msgid ""
-"Partition booted by default\n"
-" (for MS-DOS boot, not for lilo)\n"
-msgstr ""
-"Partitsioonilt toimub alglaadimine\n"
-" (MS-DOS-i, mitte lilo jaoks)\n"
-
-#: ../../diskdrake/interactive.pm_.c:1066
-#, c-format
-msgid "Level %s\n"
-msgstr "Tase %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1067
-#, c-format
-msgid "Chunk size %s\n"
-msgstr "Ühiku suurus %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1068
-#, c-format
-msgid "RAID-disks %s\n"
-msgstr "RAID-kettad %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1070
-#, c-format
-msgid "Loopback file name: %s"
-msgstr "loopback faili nimi: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1073
-msgid ""
-"\n"
-"Chances are, this partition is\n"
-"a Driver partition, you should\n"
-"probably leave it alone.\n"
-msgstr ""
-"\n"
-"Võimalik, et on tegemist\n"
-"juhtpartitsiooniga, parem oleks\n"
-"seda mitte puutuda.\n"
-
-#: ../../diskdrake/interactive.pm_.c:1076
-msgid ""
-"\n"
-"This special Bootstrap\n"
-"partition is for\n"
-"dual-booting your system.\n"
-msgstr ""
-"\n"
-"See on eriline, alglaadimisel\n"
-"kasutatav partitsioon, mis\n"
-"võimaldab mitme operratsioonisüsteemi\n"
-"laadimist.\n"
-
-#: ../../diskdrake/interactive.pm_.c:1095
-#, c-format
-msgid "Size: %s\n"
-msgstr "Suurus: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1096
-#, c-format
-msgid "Geometry: %s cylinders, %s heads, %s sectors\n"
-msgstr "Geomeetria: %s silindrit, %s pead, %s sektorit\n"
-
-#: ../../diskdrake/interactive.pm_.c:1097
-msgid "Info: "
-msgstr "Info: "
-
-#: ../../diskdrake/interactive.pm_.c:1098
-#, c-format
-msgid "LVM-disks %s\n"
-msgstr "LVM-kettad %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1099
-#, c-format
-msgid "Partition table type: %s\n"
-msgstr "Partitsioonitabeli tüüp: %s\n"
-
-#: ../../diskdrake/interactive.pm_.c:1100
-#, c-format
-msgid "on bus %d id %d\n"
-msgstr "siinil %d id %d\n"
-
-#: ../../diskdrake/interactive.pm_.c:1114
-#, c-format
-msgid "Options: %s"
-msgstr "Eelistused: %s"
-
-#: ../../diskdrake/interactive.pm_.c:1130
-#, fuzzy
-msgid "Filesystem encryption key"
-msgstr "Failisüsteemi tüüp: "
-
-#: ../../diskdrake/interactive.pm_.c:1131
-msgid "Choose your filesystem encryption key"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1134
-#, fuzzy, c-format
-msgid "This encryption key is too simple (must be at least %d characters long)"
-msgstr "Salasõna on liiga lihtne (peaks olema vähemalt %d tähemärki)"
-
-#: ../../diskdrake/interactive.pm_.c:1135
-#, fuzzy
-msgid "The encryption keys do not match"
-msgstr "Salasõnad ei klapi"
-
-#: ../../diskdrake/interactive.pm_.c:1138
-msgid "Encryption key"
-msgstr ""
-
-#: ../../diskdrake/interactive.pm_.c:1139
-msgid "Encryption key (again)"
-msgstr ""
-
-#: ../../diskdrake/removable.pm_.c:47
-#, fuzzy
-msgid "Change type"
-msgstr "Muuda partitsiooni tüüp"
-
-#: ../../diskdrake/removable_gtk.pm_.c:28
-#, fuzzy
-msgid "Please click on a media"
-msgstr "Palun valige partitsioon"
-
-#: ../../diskdrake/smbnfs_gtk.pm_.c:165
-#, fuzzy
-msgid "Search servers"
-msgstr "Nimeserver"
-
-#: ../../fs.pm_.c:485 ../../fs.pm_.c:495 ../../fs.pm_.c:499 ../../fs.pm_.c:503
-#: ../../fs.pm_.c:507 ../../fs.pm_.c:511
-#, c-format
-msgid "%s formatting of %s failed"
-msgstr "%s vormindamine seadmel %s ebaõnnestus"
-
-#: ../../fs.pm_.c:548
-#, c-format
-msgid "I don't know how to format %s in type %s"
-msgstr "Ei oska seadet %s vormindada tüüpi %s"
-
-#: ../../fs.pm_.c:620 ../../fs.pm_.c:649 ../../fs.pm_.c:655
-#, c-format
-msgid "mounting partition %s in directory %s failed"
-msgstr ""
-
-#: ../../fs.pm_.c:640
-#, c-format
-msgid "fsck failed with exit code %d or signal %d"
-msgstr ""
-
-#: ../../fs.pm_.c:670 ../../partition_table.pm_.c:596
-#, c-format
-msgid "error unmounting %s: %s"
-msgstr "viga %s lahti ühendamisel: %s"
-
-#: ../../fsedit.pm_.c:21
-msgid "simple"
-msgstr "lihtne"
-
-#: ../../fsedit.pm_.c:25
-msgid "with /usr"
-msgstr ""
-
-#: ../../fsedit.pm_.c:30
-msgid "server"
-msgstr "server"
-
-#: ../../fsedit.pm_.c:467
-msgid "You can't use JFS for partitions smaller than 16MB"
-msgstr "JFS ei ole kasutatav alla 16MB partisioonidel"
-
-#: ../../fsedit.pm_.c:468
-msgid "You can't use ReiserFS for partitions smaller than 32MB"
-msgstr "ReiserFS ei ole kasutatav alla 32MB partisioonidel"
-
-#: ../../fsedit.pm_.c:477
-msgid "Mount points must begin with a leading /"
-msgstr "Ühenduspunktid peavad algama kaldkriipsuga (/)"
-
-# c-format
-#: ../../fsedit.pm_.c:478
-#, c-format
-msgid "There is already a partition with mount point %s\n"
-msgstr "Ühenduspunktile %s on juba üks partitsioon määratud\n"
-
-#: ../../fsedit.pm_.c:482
-#, c-format
-msgid "You can't use a LVM Logical Volume for mount point %s"
-msgstr "Te ei saa ühenduspunkti %s jaoks LVM loogilist ketast kasutada"
-
-#: ../../fsedit.pm_.c:484
-msgid "This directory should remain within the root filesystem"
-msgstr "See kataloog peab jääma kokku juurfailisüsteemiga"
-
-#: ../../fsedit.pm_.c:486
-msgid "You need a true filesystem (ext2, reiserfs) for this mount point\n"
-msgstr "See ühenduspunkt vajab tõelist (ext2, reiserfs) failisüsteemi\n"
-
-#: ../../fsedit.pm_.c:488
-#, fuzzy, c-format
-msgid "You can't use an encrypted file system for mount point %s"
-msgstr "Te ei saa ühenduspunkti %s jaoks LVM loogilist ketast kasutada"
-
-#: ../../fsedit.pm_.c:546
-#, fuzzy
-msgid "Not enough free space for auto-allocating"
-msgstr "Ei ole piisavalt ruumi automaatpaigutuseks"
-
-#: ../../fsedit.pm_.c:548
-msgid "Nothing to do"
-msgstr ""
-
-#: ../../fsedit.pm_.c:612
-#, c-format
-msgid "Error opening %s for writing: %s"
-msgstr "Seadme %s avamine kirjutamiseks ebaõnnestus: %s"
-
-#: ../../fsedit.pm_.c:697
-msgid ""
-"An error has occurred - no valid devices were found on which to create new "
-"filesystems. Please check your hardware for the cause of this problem"
-msgstr ""
-"Tekkis viga: failisüsteemi loomiseks ei leitud ühtki seadet. Palun\n"
-"kontrollige oma riistvara."
-
-#: ../../fsedit.pm_.c:720
-msgid "You don't have any partitions!"
-msgstr "Teil ei ole ühtki partitsiooni!"
-
-#: ../../help.pm_.c:13
-msgid ""
-"GNU/Linux is a multiuser system, and this means that each user can have his\n"
-"own preferences, his own files and so on. You can read the ``User Guide''\n"
-"to learn more. But unlike \"root\", which is the administrator, the users\n"
-"you will add here will not be entitled to change anything except their own\n"
-"files and their own configuration. You will have to create at least one\n"
-"regular user for yourself. That account is where you should log in for\n"
-"routine use. Although it is very practical to log in as \"root\" everyday,\n"
-"it may also be very dangerous! The slightest mistake could mean that your\n"
-"system would not work any more. If you make a serious mistake as a regular\n"
-"user, you may only lose some information, but not the entire system.\n"
-"\n"
-"First, you have to enter your real name. This is not mandatory, of course\n"
-"as you can actually enter whatever you want. DrakX will then take the first\n"
-"word you have entered in the box and will bring it over to the \"User\n"
-"name\". This is the name this particular user will use to log onto the\n"
-"system. You can change it. You then have to enter a password here. A\n"
-"non-privileged (regular) user's password is not as crucial as \"root\"' one\n"
-"from a security point of view, but that is no reason to neglect it: after\n"
-"all, your files are at risk.\n"
-"\n"
-"If you click on \"Accept user\", you can then add as many as you want. Add\n"
-"a user for each one of your friends: your father or your sister, for\n"
-"example. When you finish adding all the users you want, select \"Done\".\n"
-"\n"
-"Clicking the \"Advanced\" button allows you to change the default \"shell\"\n"
-"for that user (bash by default)."
-msgstr ""
-
-#: ../../help.pm_.c:41
-#, fuzzy
-msgid ""
-"Listed above are the existing Linux partitions detected on your hard 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"
-"able to install enough software. If you want to store your data on a\n"
-"separate partition, you will also need to create a partition for \"/home\"\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 drive type\", \"hard 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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
-"\"second lowest SCSI ID\", etc."
-msgstr ""
-"Ülalpool 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 "
-"installimisel\n"
-"Kasutajate jaoks on sageli mõistlik luua eraldi \"/home\" partitsioon.\n"
-"\n"
-"\n"
-"Iga partitsiooni juures on toodud abiinfona \"Nimi\" ja \"Mahutavus\".\n"
-"\n"
-"\n"
-"\"Nimi\" koosneb kõvakettatüübist, selle numbrist ja partitsiooni\n"
-"numbrist (näiteks \"hda1\").\n"
-"\n"
-"\n"
-"Kõvaketta tüüp on \"hd\" kui on tegemist IDE kettaga ja \"sd\" kui on\n"
-"tegemist SCSI kettaga.\n"
-"\n"
-"\n"
-"Kõvaketta number on alati täht \"hd\" või \"sd\" järel. IDE ketastel:\n"
-"\n"
-" * \"a\" - esmase IDE kontrolleri ülem,\n"
-"\n"
-" * \"b\" - esmase IDE kontrolleri alluv,\n"
-"\n"
-" * \"c\" - teisase IDE kontrolleri ülem,\n"
-"\n"
-" * \"d\" - teisase IDE kontrolleri alluv.\n"
-"\n"
-"SCSI ketaste puhul on \"a\" esimene, \"b\" teine ja nii edasi."
-
-#: ../../help.pm_.c:72
-msgid ""
-"The Mandrake Linux 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."
-msgstr ""
-
-#: ../../help.pm_.c:77
-msgid ""
-"It is now time to specify which programs you wish to install on your\n"
-"system. There are thousands of packages available for Mandrake Linux, 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"
-"be asked to specify the CDs you currently have (in Expert mode only). Check\n"
-"the CD labels and highlight the boxes corresponding to the CDs you have\n"
-"available for installation. Click \"OK\" when you are ready to continue.\n"
-"\n"
-"Packages are sorted in groups corresponding to a particular use of your\n"
-"machine. The groups themselves are sorted into four sections:\n"
-"\n"
-" * \"Workstation\": if you plan to use your machine as a workstation, "
-"select\n"
-"one or more of the corresponding groups;\n"
-"\n"
-" * \"Development\": if your machine is to be used for programming, choose\n"
-"the desired group(s);\n"
-"\n"
-" * \"Server\": if your machine is intended to be a server, you will be able\n"
-"to select which of the most common services you wish to install on your\n"
-"machine;\n"
-"\n"
-" * \"Graphical Environment\": finally, this is where you will choose your\n"
-"preferred graphical environment. At least one must be selected if you want\n"
-"to have a graphical workstation!\n"
-"\n"
-"Moving the mouse cursor over a group name will display a short explanatory\n"
-"text about that group. If you deselect all groups when performing a regular\n"
-"installation (by opposition to an upgrade), a dialog will pop up proposing\n"
-"different options for a minimal installation:\n"
-"\n"
-" * \"With X\": install the fewer packages possible to have a working\n"
-"graphical desktop;\n"
-"\n"
-" * \"With basic documentation\": installs the base system plus basic\n"
-"utilities and their documentation. This installation is suitable for\n"
-"setting up a server;\n"
-"\n"
-" * \"Truly minimal install\": will install the strict minimum necessary to\n"
-"get a working Linux system, in command line only. This installation is\n"
-"about 65Mb large.\n"
-"\n"
-"You can check the \"Individual package selection\" box, which is useful if\n"
-"you are familiar with the packages being offered or if you want to have\n"
-"total control over what will be installed.\n"
-"\n"
-"If you started the installation in \"Upgrade\" mode, you can unselect all\n"
-"groups to avoid installing any new package. This is useful for repairing or\n"
-"updating an existing system."
-msgstr ""
-
-#: ../../help.pm_.c:128
-msgid ""
-"Finally, depending on whether or not you selected individual packages, you\n"
-"will be presented a tree containing all packages classified by groups and\n"
-"subgroups. While browsing the tree, you can select entire groups,\n"
-"subgroups, or individual packages.\n"
-"\n"
-"Whenever you select a package on the tree, a description appears on the\n"
-"right. When your selection is finished, click the \"Install\" button which\n"
-"will then launch the installation process. Depending on the speed of your\n"
-"hardware and the number of packages that need to be installed, it may take\n"
-"a while to complete the process. An estimate of the time it will take to\n"
-"install everything is displayed on the screen, to help you gauge if there\n"
-"is sufficient time to enjoy a cup of coffee.\n"
-"\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 Mandrake Linux, 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 Mandrake Linux 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"
-"default. !!\n"
-"\n"
-"The \"Automatic dependencies\" option simply disables the warning dialog\n"
-"which appears whenever the installer automatically selects a package. This\n"
-"occurs because it has determined that it needs to satisfy a dependency with\n"
-"another package in order to successfully complete the installation.\n"
-"\n"
-"The tiny floppy disk icon at the bottom of the list allows to load the\n"
-"package list chosen during a previous installation. Clicking on this icon\n"
-"will ask you to insert a floppy disk previously created at the end of\n"
-"another installation. See the second tip of last step on how to create such\n"
-"a floppy."
-msgstr ""
-
-#: ../../help.pm_.c:164
-msgid ""
-"You are now proposed to set up your Internet/network connection. If you\n"
-"wish to connect your computer to the Internet or to a local network, click\n"
-"\"OK\". The autodetection of network devices and modem will be launched. If\n"
-"this detection fails, uncheck the \"Use auto detection\" box next time. You\n"
-"may also choose not to configure the network, or do it later; in that case,\n"
-"simply click the \"Cancel\" button.\n"
-"\n"
-"Available connections are: traditional modem, ISDN modem, ADSL connection,\n"
-"cable modem, and finally a simple LAN connection (Ethernet).\n"
-"\n"
-"Here, we will not detail each configuration. Simply make sure that you have\n"
-"all the parameters from your Internet Service Provider or system\n"
-"administrator.\n"
-"\n"
-"You can consult the ``User Guide'' chapter about Internet connections for\n"
-"details about the configuration, or simply wait until your system is\n"
-"installed and use the program described there to configure your connection.\n"
-"\n"
-"If you wish to configure the network later after installation, or if you\n"
-"are finished configuring your network connection, click \"Cancel\"."
-msgstr ""
-
-#: ../../help.pm_.c:186
-#, fuzzy
-msgid ""
-"You may now choose which services you wish to start at boot time.\n"
-"\n"
-"Here are presented all the services available with the current\n"
-"installation. Review them carefully and uncheck those which are not always\n"
-"needed at boot time.\n"
-"\n"
-"You can get a short explanatory text about a service by selecting a\n"
-"specific service. However, if you are not sure whether a service is useful\n"
-"or not, 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 will probably not want to start any services which you do not\n"
-"need. Please remember that several services can be dangerous if they are\n"
-"enabled on a server. In general, select only the services you really need.\n"
-"!!"
-msgstr ""
-"Nüüd saate valida, milliseid teenused peaks süsteemi laadimisel käivitama.\n"
-"\n"
-"\n"
-"Abiinfo balloonis antakse lühike kirjeldus igaühe kohta neist.\n"
-"\n"
-"Kui kavatsete oma süsteemi kasutada serverina, olge eriti tähelepanelik:\n"
-"tõenäoliselt ei soovi te käivitada mittevajalikke teenuseid."
-
-#: ../../help.pm_.c:203
-msgid ""
-"GNU/Linux manages time in GMT (Greenwich Mean Time) and translates it in\n"
-"local time according to the time zone you selected. It is however possible\n"
-"to deactivate this by deselecting \"Hardware clock set to GMT\" so that the\n"
-"hardware clock is the same as the system clock. This is useful when the\n"
-"machine is hosting another operating system like Windows.\n"
-"\n"
-"The \"Automatic time synchronization\" option will automatically regulate\n"
-"the clock by connecting to a remote time server on the Internet. In the\n"
-"list that is presented, choose a server located near you. Of course you\n"
-"must have a working Internet connection for this feature to work. It will\n"
-"actually install on your machine a time server which can be optionally used\n"
-"by other machines on your local network."
-msgstr ""
-
-#: ../../help.pm_.c:217
-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 Mandrake Linux rely. In this section, DrakX\n"
-"will try to configure X automatically.\n"
-"\n"
-"It is extremely rare for it to fail, unless the hardware is very old (or\n"
-"very new). If it succeeds, it will start X automatically with the best\n"
-"resolution possible, depending on the size of the monitor. A window will\n"
-"then appear and ask you if you can see it.\n"
-"\n"
-"If you are doing an \"Expert\" installation, you will enter the X\n"
-"configuration wizard. See the corresponding section of the manual for more\n"
-"information about this wizard.\n"
-"\n"
-"If you can see the message during the test, and answer \"Yes\", then DrakX\n"
-"will proceed to the next step. If you cannot see the message, it simply\n"
-"means that the configuration was wrong and the test will automatically end\n"
-"after 10 seconds, restoring the screen."
-msgstr ""
-
-#: ../../help.pm_.c:237
-msgid ""
-"The first time you try the X configuration, you may not be very satisfied\n"
-"with its display (screen is too small, shifted left or right...). Hence,\n"
-"even if X starts up correctly, DrakX then asks you if the configuration\n"
-"suits you. It will also propose to change it by displaying a list of valid\n"
-"modes it could find, asking you to select one.\n"
-"\n"
-"As a last resort, if you still cannot get X to work, choose \"Change\n"
-"graphics card\", select \"Unlisted card\", and when prompted on which\n"
-"server, choose \"FBDev\". This is a failsafe option which works with any\n"
-"modern graphics card. Then choose \"Test again\" to be sure."
-msgstr ""
-
-#: ../../help.pm_.c:249
-msgid ""
-"Finally, you will be asked whether you want to see the graphical interface\n"
-"at boot. Note this question will be asked even if you chose not to test the\n"
-"configuration. Obviously, you want to answer \"No\" if your machine is to\n"
-"act as a server, or if you were not successful in getting the display\n"
-"configured."
-msgstr ""
-
-#: ../../help.pm_.c:256
-msgid ""
-"The Mandrake LinuxCD-ROM has a built-in rescue mode. You can access it by\n"
-"booting from the CD-ROM, press the >>F1<< key at boot and type >>rescue<<\n"
-"at the prompt. But in case your computer cannot boot from the CD-ROM, you\n"
-"should come back to this step for help in at least two situations:\n"
-"\n"
-" * when installing the bootloader, DrakX will rewrite the boot sector (MBR)\n"
-"of your main disk (unless you are using another boot manager), to allow you\n"
-"to start up with either Windows or GNU/Linux (assuming you have Windows in\n"
-"your system). If you need to reinstall Windows, the Microsoft install\n"
-"process will rewrite the boot sector, and then you will not be able to\n"
-"start GNU/Linux!\n"
-"\n"
-" * if a problem arises and you cannot start up GNU/Linux from the hard "
-"disk,\n"
-"this floppy disk will be the only means of starting up GNU/Linux. It\n"
-"contains a fair number of system tools for restoring a system, which has\n"
-"crashed due to a power failure, an unfortunate typing error, a typo in a\n"
-"password, or any other reason.\n"
-"\n"
-"When you click on this step, you will be asked to enter a disk inside the\n"
-"drive. The floppy disk you will insert must be empty or contain data which\n"
-"you do not need. You will not have to format it since DrakX will rewrite\n"
-"the whole disk."
-msgstr ""
-
-#: ../../help.pm_.c:280
-#, fuzzy
-msgid ""
-"At this point, you need to choose where you want to install the Mandrake\n"
-"Linux operating system on your hard drive. If your hard drive is empty or\n"
-"if an existing operating system is using all the available space, you will\n"
-"need to partition it. Basically, partitioning a hard drive consists of\n"
-"logically dividing it to create space to install your new Mandrake Linux\n"
-"system.\n"
-"\n"
-"Because the partitioning process' effects are usually irreversible,\n"
-"partitioning can be intimidating and stressful if you are an inexperienced\n"
-"user. Fortunately, there is a wizard which simplifies this process. Before\n"
-"beginning, please consult the manual and take your time.\n"
-"\n"
-"If you are running the installation in Expert mode, you will enter\n"
-"DiskDrake, the Mandrake Linux partitioning tool, which allows you to\n"
-"fine-tune your partitions. See the DiskDrake section in the ``User Guide''.\n"
-"From the installation interface, you can use the wizards as described here\n"
-"by clicking the dialog's \"Wizard\" button.\n"
-"\n"
-"If partitions have already been defined, either from a previous\n"
-"installation or from another partitioning tool, simply select those to\n"
-"install your Linux system.\n"
-"\n"
-"If partitions are not defined, you will need to create them using the\n"
-"wizard. Depending on your hard drive configuration, several options are\n"
-"available:\n"
-"\n"
-" * \"Use free space\": this option will simply lead to an automatic\n"
-"partitioning of your blank drive(s). You will not be prompted further;\n"
-"\n"
-" * \"Use existing partition\": the wizard has detected one or more existing\n"
-"Linux partitions on your hard drive. If you want to use them, choose this\n"
-"option;\n"
-"\n"
-" * \"Use the free space on the Windows; partition\": if MicrosoftWindows is\n"
-"installed on your hard drive and takes all the space available on it, you\n"
-"have to create free space for Linux data. To do so, you can delete your\n"
-"MicrosoftWindows partition and data (see ``Erase entire disk'' or ``Expert\n"
-"mode'' solutions) or resize your MicrosoftWindows partition. Resizing can\n"
-"be performed without the loss of any data, provided you previously\n"
-"defragment the Windows partition. Backing up your data won't hurt either..\n"
-"This solution is recommended if you want to use both Mandrake Linux and\n"
-"MicrosoftWindows on the same computer.\n"
-"\n"
-" Before choosing this option, please understand that after this "
-"procedure,\n"
-"the size of your MicrosoftWindows partition will be smaller than at the\n"
-"present time. You will have less free space under MicrosoftWindows to store\n"
-"your data or to install new software;\n"
-"\n"
-" * \"Erase entire disk\": if you want to delete all data and all partitions\n"
-"present on your hard drive and replace them with your new Mandrake Linux\n"
-"system, choose this option. Be careful with this solution because you will\n"
-"not be able to revert your choice after you confirm;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Remove Windows\": this will simply erase everything on the drive and\n"
-"begin fresh, partitioning everything from scratch. All data on your disk\n"
-"will be lost;\n"
-"\n"
-" !! If you choose this option, all data on your disk will be lost. !!\n"
-"\n"
-" * \"Expert mode\": choose this option if you want to manually partition\n"
-"your hard drive. Be careful it is a powerful but dangerous choice. You can\n"
-"very easily lose all your data. Hence, do not choose this unless you know\n"
-"what you are doing."
-msgstr ""
-"Olete jõudnud punkti, kus peate otsustama, kuhu täpselt Mandrake Linux oma\n"
-"kõvakettal paigaldada. Kui kõvaketas on tühi või kui mõni muu \n"
-"operatsioonisüsteem seda täielikult kasutab, on vaja partitsioneerida.\n"
-"Partitsioneerimine on tegevus, mille käigus tekitatakse kettale loogilised\n"
-"piirkonnad Teie uue Mandrake Linux süsteemi installimiseks.\n"
-"\n"
-"\n"
-"Kuna partitsioneerimine ei ole pööratav protsess, siis peab kogemusteta\n"
-"kasutaja olema iseäranis ettevaatlik! Selle tegevuse lihtsustamiseks ja\n"
-"vigade vähendamiseks on Teie jaoks loodudki käesolev abimees. Siiski,\n"
-"palun varuga natuke ettevalmistusaega\n"
-"\n"
-"\n"
-"Mandrake Linux jaoks on Teil vaja vähemalt kaht partitsiooni. Ühele "
-"paigutatakse\n"
-"operatsioonisüsteem ise ja teisele luuakse virtuaalmälu (saaleala e. swap).\n"
-"\n"
-"\n"
-"Kui partitsioonid on juba loodud (eelmise installi või mõne muu vahendi\n"
-"abil), siis peate need lihtsalt Linuxi paigaldamise jaoks välja valima.\n"
-"\n"
-"\n"
-"Kui partitsioone ei ole varem loodud, peate kasutama ülalttoodud abimeest.\n"
-"Abimees hindab Teie kõvaketast ja pakub järgmised valikud:\n"
-"\n"
-"* Kasuta olemasolevaid partitsioone: abimees leidis kettalt Linuxi "
-"partitsioonid.\n"
-" Kui soovite neid kasutada, valige see.\n"
-"\n"
-"\n"
-"* Puhasta kogu ketas: kui soovite alustada Mandrake Linux installimist "
-"täiesti tühjale kettale.\n"
-" Tähelepanu: kõik andmed, mis enne kettal olid, hävivad!\n"
-"\n"
-"\n"
-"* Kasuta vaba ruumi Windowsi partitsioonil: kui Microsoft Windows kasutab "
-"kogu Teie kõvaketta vaba pinna,\n"
-" saate luua lisaruumi Windowsi partitsiooni suuruse muutmisel.\n"
-" Sageli on see mõistlik, kui soovite kasutada ka Windowst.\n"
-"\n"
-"* Asjatundja: kui soovite ise oma kõvaketast jagada, valige see. Nii on Teil "
-"kõige rohkem võimalusi,\n"
-" aga ka kõige rohkem ohtusid! Ärge valige seda, kui Te täpselt ei tea, mida "
-"teete."
-
-#: ../../help.pm_.c:347
-msgid ""
-"There you are. Installation is now complete and your GNU/Linux system is\n"
-"ready to use. Just click \"OK\" to reboot the system. You can start\n"
-"GNU/Linux or Windows, whichever you prefer (if you are dual-booting), as\n"
-"soon as the computer has booted up again.\n"
-"\n"
-"The \"Advanced\" button (in Expert mode only) shows two more buttons to:\n"
-"\n"
-" * \"generate auto-install floppy\": to create an installation floppy disk\n"
-"which will automatically perform a whole installation without the help of\n"
-"an operator, similar to the installation you just configured.\n"
-"\n"
-" Note that two different options are available after clicking the button:\n"
-"\n"
-" * \"Replay\". This is a partially automated installation as the\n"
-"partitioning step (and only this one) remains interactive;\n"
-"\n"
-" * \"Automated\". Fully automated installation: the hard disk is "
-"completely\n"
-"rewritten, all data is lost.\n"
-"\n"
-" This feature is very handy when installing a great number of similar\n"
-"machines. See the Auto install section on our web site;\n"
-"\n"
-" * \"Save packages selection\"(*): saves the package selection as done\n"
-"previously. Then, when doing another installation, insert the floppy inside\n"
-"the drive and run the installation going to the help screen by pressing on\n"
-"the [F1] key, and by issuing >>linux defcfg=\"floppy\"<<.\n"
-"\n"
-"(*) You need a FAT-formatted floppy (to create one under GNU/Linux, type\n"
-"\"mformat a:\")"
-msgstr ""
-
-#: ../../help.pm_.c:378
-#, fuzzy
-msgid ""
-"Any partitions that have been newly defined must be formatted for use\n"
-"(formatting means creating a filesystem).\n"
-"\n"
-"At this time, you may wish to reformat some already existing partitions to\n"
-"erase any data they contain. If you wish to do that, please select those\n"
-"partitions as well.\n"
-"\n"
-"Please note that it is 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\n"
-"reformat partitions containing data that you wish to keep (typically\n"
-"\"/home\").\n"
-"\n"
-"Please be careful when selecting partitions. After formatting, all data on\n"
-"the selected partitions will be deleted and you will not be able to recover\n"
-"any of it.\n"
-"\n"
-"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"
-"Mandrake Linux operating system installation.\n"
-"\n"
-"Click on \"Advanced\" if you wish to select partitions that will be checked\n"
-"for bad blocks on the disk."
-msgstr ""
-"Kõik värskelt loodud partitsioonid tuleb enne kasutamist vormindada\n"
-"ehk sinna tuleb luua failisüsteemid.\n"
-"\n"
-"\n"
-"Samuti võib vormindada varem olemas olnud partitsioonid, kui soovite\n"
-"seal leiduvad andmed ära kustutada.\n"
-"\n"
-"\n"
-"Paneme tähele, et alati ei ole kõigi vanade partitsioonide vormindamine\n"
-"vajalik.\n"
-"Kindlasti võib vormindada partitsioone, kus varem asus \"/\", \"/usr\"\n"
-"või \"/var\" aga kasutajate faile sisaldav \"/home\" võiks jääda\n"
-"alles.\n"
-"\n"
-"\n"
-"Klikkige \"OK\", kui olete vormindamiseks valmis."
-
-#: ../../help.pm_.c:404
-#, fuzzy
-msgid ""
-"Your new Mandrake Linux operating system is currently being installed.\n"
-"Depending on the number of packages you will be installing and the speed of\n"
-"your computer, this operation could take from a few minutes to a\n"
-"significant amount of time.\n"
-"\n"
-"Please be patient."
-msgstr ""
-"Teie Mandrake Linux süsteemi hakati nüüd installima. Selleks võib\n"
-"olenevalt Teie poolt valitud pakettide arvust ja Teie arvuti kiirusest\n"
-"kuluda mõnikümmend minutit.\n"
-"\n"
-"\n"
-"Palun veidi kannatlikkust."
-
-#: ../../help.pm_.c:412
-msgid ""
-"At the time you are installing Mandrake Linux, it is likely that some\n"
-"packages have been updated since the initial release. Some bugs may have\n"
-"been fixed, and security issues solved. To allow you to benefit from these\n"
-"updates, you are now proposed to download them from the Internet. Choose\n"
-"\"Yes\" if you have a working Internet connection, or \"No\" if you prefer\n"
-"to install updated packages later.\n"
-"\n"
-"Choosing \"Yes\" displays a list of places from which updates can be\n"
-"retrieved. Choose the one nearest you. Then a package-selection tree\n"
-"appears: review the selection, and press \"Install\" to retrieve and\n"
-"install the selected package(s), or \"Cancel\" to abort."
-msgstr ""
-
-#: ../../help.pm_.c:425
-msgid ""
-"Before continuing, you should read carefully the terms of the license. It\n"
-"covers the whole Mandrake Linux 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."
-msgstr ""
-
-#: ../../help.pm_.c:432
-msgid ""
-"At this point, it is time to choose the security level desired for the\n"
-"machine. As a rule of thumb, the more exposed the machine is, and the more\n"
-"the data stored in it is crucial, the higher the security level should be.\n"
-"However, a higher security level is generally obtained at the expense of\n"
-"easiness of use. Refer to the \"msec\" chapter of the ``Reference Manual''\n"
-"to get more information about the meaning of these levels.\n"
-"\n"
-"If you do not know what to choose, keep the default option."
-msgstr ""
-
-#: ../../help.pm_.c:442
-#, fuzzy
-msgid ""
-"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandrake Linux 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"
-"partitions must be defined.\n"
-"\n"
-"To create partitions, you must first select a hard 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"
-"\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"
-"\n"
-" * \"More\": gives access to additional features:\n"
-"\n"
-" * \"Save partition table\": saves the partition table to a floppy. "
-"Useful\n"
-"for later partition-table recovery if necessary. It is strongly recommended\n"
-"to perform this step;\n"
-"\n"
-" * \"Restore partition table\": allows to restore a previously saved\n"
-"partition table from floppy disk;\n"
-"\n"
-" * \"Rescue partition table\": if your partition table is damaged, you "
-"can\n"
-"try to recover it using this option. Please be careful and remember that it\n"
-"can fail;\n"
-"\n"
-" * \"Reload partition table\": discards all changes and loads your "
-"initial\n"
-"partition table;\n"
-"\n"
-" * \"Removable media automounting\": unchecking this option will force "
-"users\n"
-"to manually mount and unmount removable medias such as floppies and\n"
-"CD-ROMs.\n"
-"\n"
-" * \"Wizard\": 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 knowledge of\n"
-"partitioning;\n"
-"\n"
-" * \"Undo\": use this option to cancel your changes;\n"
-"\n"
-" * \"Toggle to normal/expert mode\": allows additional actions on "
-"partitions\n"
-"(type, options, format) and gives more information;\n"
-"\n"
-" * \"Done\": when you are finished partitioning your hard 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"
-"partitions using [Tab] and [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"
-"\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 Mandrake Linux installida.\n"
-"\n"
-"Partitsioon on loogiliselt eraldatud kõvaketta piirkond, mille suurust\n"
-"ei ole võimalik hiljem, töötavas süsteemis enam muuta. Samuti hävivad\n"
-"partitsiooni kustutamisel kõik sellel sisalduvad andmed.\n"
-"\n"
-"Et muuta seda tegevust lihtsamaks, on loodud Abimees, mille soovitused\n"
-"on harilikult mõistlikud.\n"
-"\n"
-"\n"
-"Partitsioonide loomiseks valige esmalt kõvaketas.\n"
-"\n"
-"\n"
-"Valitud ketta partitsioneerimiseks on järgmised võimalused:\n"
-"\n"
-" * Puhasta kõik: kustutatakse kõik olemasolevad partitsioonid sellel "
-"kettal\n"
-"\n"
-"\n"
-" * Paiguta ise: sel juhul tekitatakse Linuxi jaoks vajalikud partitsioonid "
-"vabale kettapinnale automaatselt.\n"
-"\n"
-"\n"
-" * Päästa partitsioonitabel: kui partitsioonitabel on vigastatud, võib "
-"proovida seda parandada. \n"
-" Palun ärge sellega igaks juhuks palju arvestage.\n"
-"\n"
-"\n"
-" * Lae uuesti: kui soovite tühistada kõik enda tehtud muutused ja alustada "
-"algse partitsioonitabeliga\n"
-"\n"
-"\n"
-" * Abimees: kui soovite uue partitsioonitabeli loomisel samm-sammulist "
-"juhatust.\n"
-" Soovitav, kui ei ole varem midagi sellist teinud.\n"
-"\n"
-"\n"
-" * Taasta flopilt: kui olete varem salvestanud koopia "
-"partitsioonitabelist\n"
-" flopile, tuleb see nüüd kasuks\n"
-"\n"
-"\n"
-" * Salvesta flopile: kui soovite salvestada partitsioonitabeli flopile, "
-"et\n"
-" vajadusel oleks võimalik sealt taastada.\n"
-"\n"
-"\n"
-" * Tehtud: kui olete partitsioneerimise lõpetanud, siis saate muutused "
-"nüüd salvestada\n"
-"\n"
-"\n"
-"Valitud partitsioonil on võimalikud järgmised tegevused:\n"
-"\n"
-" * Ctrl-c uue partitsiooni loomine\n"
-"\n"
-" * Ctrl-d partitsiooni kustutamine\n"
-"\n"
-" * Ctrl-m ühenduspunkti seadmine"
-
-#: ../../help.pm_.c:513
-#, fuzzy
-msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
-"Please choose the one you want to resize in order to install your new\n"
-"Mandrake Linux 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"
-"\"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"
-"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
-"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
-"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
-"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
-"\n"
-"With SCSI hard 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"
-"disk or partition is called \"C:\")."
-msgstr ""
-"Teie arvuti kõvakettal on rohkem kui üks Microsoft Windows partitsioon.\n"
-"Palun valige välja see, mille suurust soovite Mandrake Linux jaoks muuta.\n"
-"\n"
-"\n"
-"Teie abistamiseks on iga partitsioonidel näidatud \"Nimi Linuxis\", \"Nimi "
-"Windowsis\" ja \"Mahutavus\".\n"
-"\n"
-"\"Nimi Linuxis\" koosneb kõvakettatüübist, selle numbrist ja partitsiooni\n"
-"numbrist (näiteks \"hda1\").\n"
-"\n"
-"\n"
-"Kõvaketta tüüp on \"hd\" kui on tegemist IDE kettaga ja \"sd\" kui on\n"
-"tegemist SCSI kettaga.\n"
-"\n"
-"\n"
-"Kõvaketta number on alati täht \"hd\" või \"sd\" järel. IDE ketastel:\n"
-"\n"
-" * \"a\" - esmase IDE kontrolleri ülem,\n"
-"\n"
-" * \"b\" - esmase IDE kontrolleri alluv,\n"
-"\n"
-" * \"c\" - teisase IDE kontrolleri ülem,\n"
-"\n"
-" * \"d\" - teisase IDE kontrolleri alluv.\n"
-"\n"
-"SCSI ketaste puhul on \"a\" esimene, \"b\" teine ja nii edasi.\n"
-"\n"
-"\n"
-"\"Nimi Windowsis\" on täht, millega Microsoft Windows vastavat seadet\n"
-"tähistab."
-
-#: ../../help.pm_.c:544
-msgid "Please be patient. This operation can take several minutes."
-msgstr "Palun natuke kannatust. Selleks võib kuluda mõnigi minut."
-
-#: ../../help.pm_.c:547
-#, fuzzy
-msgid ""
-"DrakX now needs to know if you want to perform a default (\"Recommended\")\n"
-"installation or if you want to have greater control (\"Expert\"). You can\n"
-"also choose to do a new install or an upgrade of an existing Mandrake Linux\n"
-"system:\n"
-"\n"
-" * \"Install\": completely wipes out the old system. In fact, depending on\n"
-"what currently holds your machine, you will be able to keep some old (Linux\n"
-"or other) partitions unchanged;\n"
-"\n"
-" * \"Upgrade\": this installation class allows to simply update the "
-"packages\n"
-"currently installed on your Mandrake Linux system. It keeps the current\n"
-"partitions of your hard drives as well as user configurations. All other\n"
-"configuration steps remain available with respect to plain installation;\n"
-"\n"
-" * \"Upgrade Packages Only\": this brand new class allows to upgrade an\n"
-"existing Mandrake Linux system while keeping all system configurations\n"
-"unchanged. Adding new packages to the current installation is also\n"
-"possible.\n"
-"\n"
-"Upgrades should work fine for Mandrake Linux systems starting from \"8.1\"\n"
-"release.\n"
-"\n"
-"Depending on your knowledge of GNU/Linux, select one of the following\n"
-"choices:\n"
-"\n"
-" * Recommended: choose this if you have never installed a GNU/Linux\n"
-"operating system. The installation will be very easy and you will only be\n"
-"asked a few questions;\n"
-"\n"
-" * Expert: if you have a good knowledge of GNU/Linux, you can choose this\n"
-"installation class. The expert installation will allow you to perform a\n"
-"highly-customized installation. Answering some of the questions can be\n"
-"difficult if you do not have a good knowledge of GNU/Linux, so do not\n"
-"choose this unless you know what you are doing."
-msgstr ""
-"Palun valige \"Installimine\" kui Teie arvutis ei ole varasemat Mandrake "
-"Linux\n"
-"versiooni.\n"
-"\n"
-"\n"
-"Palun valige \"Uuendamine\" kui soovite uuendada varasemat Mandrake Linux "
-"versiooni.\n"
-"\n"
-"\n"
-"Sõltuvalt Teie GNU/Linuxi alastest teadmistest saate valida erineva tasemega "
-"installi- või uuendusmeetodi:\n"
-"\n"
-"* Soovituslik: Te ei ole varem GNU/Linuxit installinud. Kõik tehakse "
-"lihtsaks ja esitatakse vähe küsimusi\n"
-"\n"
-"\n"
-"* Isetehtud: Olete Linuxiga tuttav ja soovite süsteemi kohandada vastavalt\n"
-" Teie vajadustele. Järgmisena saate teha valikud sõltuvalt Teie arvuti \n"
-" edaspidisest kasutusalast.\n"
-"\n"
-"\n"
-"* Ekspert: Te tunnete end GNU/Linux keskkonnas vabalt ja soovite\n"
-" süsteemi, mis sobiks nagu valatult Teie täpsete ootustega.\n"
-" Aga palun, palun: ÄRGE VALIGE SEDA, KUI TE TÄPSELT EI TEA, MIDA TEETE!"
-
-#: ../../help.pm_.c:583
-msgid ""
-"Normally, DrakX selects the right keyboard for you (depending on the\n"
-"language you have chosen) and you won't even see this step. However, you\n"
-"might not have a keyboard that corresponds exactly to your language: for\n"
-"example, if you are an English speaking Swiss person, you may still want\n"
-"your keyboard to be a Swiss keyboard. Or if you speak English but are\n"
-"located in Quebec, you may find yourself in the same situation. In both\n"
-"cases, you will have to go back to this installation step and select an\n"
-"appropriate keyboard from the list.\n"
-"\n"
-"Click on the \"More\" button to be presented with the complete list of\n"
-"supported keyboards."
-msgstr ""
-
-#: ../../help.pm_.c:596
-msgid ""
-"Please choose your preferred language for installation and system usage.\n"
-"\n"
-"Clicking on the \"Advanced\" button will allow you to select other\n"
-"languages to be installed on your workstation. Selecting other languages\n"
-"will install the language-specific files for system documentation and\n"
-"applications. For example, if you will host users from Spain on your\n"
-"machine, select English as the main language in the tree view and in the\n"
-"Advanced section click on the box corresponding to \"Spanish|Spain\".\n"
-"\n"
-"Note that multiple languages may be installed. Once you have selected any\n"
-"additional locales, click the \"OK\" button to continue."
-msgstr ""
-
-#: ../../help.pm_.c:609
-msgid ""
-"DrakX generally detects the number of buttons your mouse has. If not, it\n"
-"assumes you have a two-button mouse and will set it up for third-button\n"
-"emulation. DrakX will automatically know whether it is a PS/2, serial or\n"
-"USB mouse.\n"
-"\n"
-"If you wish to specify a different type of mouse select the appropriate\n"
-"type from the provided list.\n"
-"\n"
-"If you choose a mouse other than the default, a test screen will be\n"
-"displayed. Use the buttons and wheel to verify that the settings are\n"
-"correct. If the mouse is not working well, press the space bar or [Return]\n"
-"to \"Cancel\" and choose again."
-msgstr ""
-
-#: ../../help.pm_.c:623
-#, fuzzy
-msgid ""
-"Please select the correct port. For example, the \"COM1\" port under\n"
-"Windows is named \"ttyS0\" under GNU/Linux."
-msgstr ""
-"Palun valige õige port. Näiteks MS Windows-i COM1 kannab GNU/Linuxis\n"
-"nime ttyS0."
-
-#: ../../help.pm_.c:627
-msgid ""
-"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 choose\n"
-"not to enter a password, but we strongly advise you against this if only\n"
-"for one reason: do not think that because you booted GNU/Linux that your\n"
-"other operating systems are safe from mistakes. Since \"root\" can overcome\n"
-"all limitations and unintentionally erase all data on partitions by\n"
-"carelessly accessing the partitions themselves, it is important for it to\n"
-"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."
-msgstr ""
-
-#: ../../help.pm_.c:663
-msgid ""
-"LILO and grub are GNU/Linux bootloaders. This stage, normally, is totally\n"
-"automated. In fact, DrakX analyzes the disk boot sector and acts\n"
-"accordingly, depending on what it finds here:\n"
-"\n"
-" * if a Windows boot sector is found, it will replace it with a grub/LILO\n"
-"boot sector. Hence, you will be able to load either GNU/Linux or another\n"
-"OS;\n"
-"\n"
-" * if a grub or LILO boot sector is found, it will replace it with a new\n"
-"one.\n"
-"\n"
-"If in doubt, DrakX will display a dialog with various options.\n"
-"\n"
-" * \"Bootloader to use\": you have three choices:\n"
-"\n"
-" * \"GRUB\": if you prefer grub (text menu).\n"
-"\n"
-" * \"LILO with graphical menu\": if you prefer LILO with its graphical\n"
-"interface.\n"
-"\n"
-" * \"LILO with text menu\": if you prefer LILO with its text menu "
-"interface.\n"
-"\n"
-" * \"Boot device\": in most cases, you will not change the default\n"
-"(\"/dev/hda\"), but if you prefer, the bootloader can be installed on the\n"
-"second hard drive (\"/dev/hdb\"), or even on a floppy disk (\"/dev/fd0\");\n"
-"\n"
-" * \"Delay before booting the default image\": when rebooting the computer,\n"
-"this is the delay granted to the user to choose in the bootloader menu,\n"
-"another boot entry than the default one.\n"
-"\n"
-"!! Beware that if you choose not to install a bootloader (by selecting\n"
-"\"Cancel\" here), you must ensure that you have a way to boot your Mandrake\n"
-"Linux system! Also, be sure you know what you do before changing any of the\n"
-"options. !!\n"
-"\n"
-"Clicking the \"Advanced\" button in this dialog will offer many advanced\n"
-"options, which are reserved to the expert user.\n"
-"\n"
-"After you have configured the general bootloader parameters, the list of\n"
-"boot options which will be available at boot time will be displayed.\n"
-"\n"
-"If there is another operating system installed on your machine, it will\n"
-"automatically be added to the boot menu. Here, you can choose to fine-tune\n"
-"the existing options. Select an entry and click \"Modify\" to modify or\n"
-"remove it; \"Add\" creates a new entry; and \"Done\" goes on to the next\n"
-"installation step."
-msgstr ""
-
-#: ../../help.pm_.c:711
-#, fuzzy
-msgid ""
-"LILO (the LInux LOader) and grub are bootloaders: they are able to boot\n"
-"either GNU/Linux or any other operating system present on your computer.\n"
-"Normally, these other operating systems are correctly detected and\n"
-"installed. If this is not the case, you can add an entry by hand in this\n"
-"screen. Be careful to choose the correct parameters.\n"
-"\n"
-"You may also not want to give access to these other operating systems to\n"
-"anyone. In which case, you can delete the corresponding entries. But then,\n"
-"you will need a boot disk in order to boot those other operating systems!"
-msgstr ""
-"LILO (ehk LInux LOader) ja Grub on alglaadurid: nad võimaldavad laadida\n"
-"kas GNU/Linuxi või mõne muu Teie arvutis olevad operatsioonisüsteemi.\n"
-"Tavaliselt tuvastakse teised operatsioonisüsteemid õigesti ja seadistatakse\n"
-"ka alglaadur. Kui Teil aga ei ole õnne, tuleb parameetrid seada\n"
-"käsitsi. Olge sel juhul hoolas valima õiged."
-
-#: ../../help.pm_.c:722
-#, fuzzy
-msgid ""
-"You must indicate where you wish to place the information required to boot\n"
-"to GNU/Linux.\n"
-"\n"
-"Unless you know exactly what you are doing, choose \"First sector of drive\n"
-"(MBR)\"."
-msgstr ""
-"Nüüd peate valima, milliselt kettaosalt soovite GNU/Linuxit laadida.\n"
-"\n"
-"Valige \"Kõvaketta esimene sektor (MBR)\", kui ei tea täpselt, mida\n"
-"teha."
-
-#: ../../help.pm_.c:729
-msgid ""
-"Here, we select a printing system for your computer. Other OSs may offer\n"
-"you one, but Mandrake Linux offers three.\n"
-"\n"
-" * \"pdq\" which means ``print, don't queue'', is the choice if you have a\n"
-"direct connection to your printer and you want to be able to panic out of\n"
-"printer jams, and you do not have networked printers. It will handle only\n"
-"very simple network cases and is somewhat slow for networks. Pick \"pdq\"\n"
-"if this is your maiden voyage to GNU/Linux. You can change your choices\n"
-"after installation by running PrinterDrake from the Mandrake Control Center\n"
-"and clicking the expert button.\n"
-"\n"
-" * \"CUPS\"``Common Unix Printing System'', is excellent at printing to "
-"your\n"
-"local printer and also halfway-around the planet. It is simple and can act\n"
-"as a server or a client for the ancient \"lpd\" printing system. Hence, it\n"
-"is compatible with the systems that went before. It can do many tricks, but\n"
-"the basic setup is almost as easy as \"pdq\". If you need this to emulate\n"
-"an \"lpd\" server, you must turn on the \"cups-lpd\" daemon. It has\n"
-"graphical front-ends for printing or choosing printer options.\n"
-"\n"
-" * \"lprNG\"``line printer daemon New Generation''. This system can do\n"
-"approximately the same things the others can do, but it will print to\n"
-"printers mounted on a Novell Network, because it supports the IPX protocol,\n"
-"and it can print directly to shell commands. If you have need of Novell or\n"
-"printing to commands without using a separate pipe construct, use lprNG.\n"
-"Otherwise, CUPS is preferable as it is simpler and better at working over\n"
-"networks."
-msgstr ""
-
-#: ../../help.pm_.c:757
-#, fuzzy
-msgid ""
-"DrakX now detects any IDE device present in your computer. It will also\n"
-"scan for one or more PCI SCSI card(s) on your system. If a SCSI card is\n"
-"found, DrakX will automatically install the appropriate driver.\n"
-"\n"
-"Because hardware detection does not always detect a piece of hardware,\n"
-"DrakX will ask you to confirm if a PCI SCSI card is present. Click \"Yes\"\n"
-"if you know that there is a SCSI card installed in your machine. You will\n"
-"be presented a list of SCSI cards to choose from. Click \"No\" if you have\n"
-"no SCSI hardware. If you are unsure, you can check the list of hardware\n"
-"detected in your machine by selecting \"See hardware info\" and clicking\n"
-"\"OK\". Examine the list of hardware and then click on the \"OK\" button to\n"
-"return to the SCSI interface question.\n"
-"\n"
-"If you have to manually specify your adapter, DrakX will ask if you want to\n"
-"specify options for it. You should allow DrakX to probe the hardware for\n"
-"the card-specific options which the hardware needs to initialize. This\n"
-"usually works well.\n"
-"\n"
-"If DrakX is not able to probe for the options which need to be passed, you\n"
-"will need to provide options to the driver manually. Please review the\n"
-"``User Guide'' (chapter 3, in the ``Collecting Information on Your\n"
-"Hardware'' section) for hints on retrieving the parameters required from\n"
-"hardware documentation, from the manufacturer's web site (if you have\n"
-"Internet access) or from MicrosoftWindows (if you used this hardware with\n"
-"Windows on your system)."
-msgstr ""
-"Esmalt otsib DrakX PCI siini SCSI liideseid. Kui neid leitakse, ja \n"
-"vastav(ad) juhtprogramm(id) on teada, siis laetakse ja installitakse \n"
-"kõik vajalik automaatselt.\n"
-"\n"
-"\n"
-"Kui Teie SCSI liides kasutab ISA siini või kui DrakX ei tea,\n"
-"millist juhtprogrammi kasutada või Teil ei ole üldse SCSI liidest,\n"
-"siis küsitakse Teilt selle kohta.\n"
-"Kui Teil SCSI liidest tõesti ei ole, vastake \"Ei\". Kui Teil aga siiski\n"
-"on, siis vastake \"Jah\". Seejärel lastakse Teil nimekirjast sobiv\n"
-"juhtprogramm valida.\n"
-"\n"
-"\n"
-"Kui olete juhtprogrammi välja valinud, on Teil võimalus anda sellele\n"
-"ka parameetreid. Siiski, enamasti läheb kõik kenasti ka ilma neid\n"
-"sisestamata: vastavad andmed leiab juhtprogramm ise.\n"
-"\n"
-"Kui automaatne parameetrite otsimine ei tööta, tutvuge palun lähemalt\n"
-"oma SCSI liidese dokumentatsiooniga või küsige abi riistvara müüjalt.\n"
-"Vaadake ka User Guide'i (peatükk 2, lõik \"Collective informations on your\n"
-"hardware\")\n"
-"Ka samas masinas olev Windows oskab vahel SCSI kohta kasulikku \n"
-"informatsiooni anda."
-
-#: ../../help.pm_.c:784
-#, fuzzy
-msgid ""
-"You can add additional entries for yaboot, either for other operating\n"
-"systems, alternate kernels, or for an emergency boot image.\n"
-"\n"
-"For other OSs, the entry consists only of a label and the \"root\"\n"
-"partition.\n"
-"\n"
-"For Linux, there are a few possible options:\n"
-"\n"
-" * Label: this is simply the name you will have to type at the yaboot "
-"prompt\n"
-"to select this boot option;\n"
-"\n"
-" * Image: this would be the name of the kernel to boot. Typically, vmlinux\n"
-"or a variation of vmlinux with an extension;\n"
-"\n"
-" * Root: the \"root\" device or ``/'' for your Linux installation;\n"
-"\n"
-" * Append: on Apple hardware, the kernel append option is used quite often\n"
-"to assist in initializing video hardware, or to enable keyboard mouse\n"
-"button emulation for the often lacking 2nd and 3rd mouse buttons on a stock\n"
-"Apple mouse. The following are some examples:\n"
-"\n"
-" video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111 "
-"hda=autotune\n"
-"\n"
-" video=atyfb:vmode:12,cmode:24 adb_buttons=103,111\n"
-"\n"
-" * Initrd: this option can be used either to load initial modules, before\n"
-"the boot device is available, or to load a ramdisk image for an emergency\n"
-"boot situation;\n"
-"\n"
-" * Initrd-size: the default ramdisk size is generally 4,096 bytes. If you\n"
-"need to allocate a large ramdisk, this option can be used;\n"
-"\n"
-" * Read-write: normally the \"root\" partition is initially brought up in\n"
-"read-only, to allow a file system check before the system becomes ``live''.\n"
-"Here, you can override this option;\n"
-"\n"
-" * NoVideo: should the Apple video hardware prove to be exceptionally\n"
-"problematic, you can select this option to boot in ``novideo'' mode, with\n"
-"native frame buffer support;\n"
-"\n"
-" * Default: selects this entry as being the default Linux selection,\n"
-"selectable by just pressing ENTER at the yaboot prompt. This entry will\n"
-"also be highlighted with a ``*'', if you press [Tab] to see the boot\n"
-"selections."
-msgstr ""
-"You can add additional entries for yaboot, either for other operating "
-"systems,\n"
-"alternate kernels, or for an emergency boot image.\n"
-"\n"
-"\n"
-"For other OS's - the entry consists only of a label and the root partition.\n"
-"\n"
-"\n"
-"For Linux, there are a few possible options: \n"
-"\n"
-"\n"
-" - Label: This is simply the name will type at the yaboot prompt to select "
-"this \n"
-"boot option.\n"
-"\n"
-"\n"
-" - Image: This would be the name of the kernel to boot. Typically vmlinux "
-"or\n"
-"a variation of vmlinux with an extension.\n"
-"\n"
-"\n"
-" - Root: The root device or '/' for your Linux installation.\n"
-"\n"
-"\n"
-" \n"
-" - Append: On Apple hardware, the kernel append option is used quite often "
-"to\n"
-"assist in initializing video hardware, or to enable keyboard mouse button "
-"emulation\n"
-"for the often lacking 2nd and 3rd mouse buttons on a stock Apple mouse. The "
-"following \n"
-"are some examples:\n"
-"\n"
-"\n"
-"\t video=aty128fb:vmode:17,cmode:32,mclk:71 adb_buttons=103,111 "
-"hda=autotune\n"
-"\n"
-"\t video=atyfb:vmode:12,cmode:24 adb_buttons=103,111 \n"
-"\n"
-"\n"
-" \n"
-" - Initrd: This option can be used either to load initial modules, before "
-"the boot \n"
-"device is available, or to load a ramdisk image for an emergency boot "
-"situation.\n"
-"\n"
-"\n"
-" - Initrd-size: The default ramdisk size is generally 4096 bytes. If you "
-"should need\n"
-"to allocate a large ramdisk, this option can be used.\n"
-"\n"
-"\n"
-" - Read-write: Normally the 'root' partition is initially brought up read-"
-"only, to allow\n"
-"a filesystem check before the system becomes 'live'. You can override this "
-"option here.\n"
-"\n"
-"\n"
-" - NoVideo: Should the Apple video hardware prove to be exceptionally "
-"problematic, you can\n"
-"select this option to boot in 'novideo' mode, with native framebuffer "
-"support.\n"
-"\n"
-"\n"
-" - Default: Selects this entry as being the default Linux selection, "
-"selectable by just\n"
-"pressing ENTER at the yaboot prompt. This entry will also be highlighted "
-"with a '*', if you\n"
-"press TAB to see the boot selections."
-
-#: ../../help.pm_.c:830
-#, fuzzy
-msgid ""
-"Yaboot is a bootloader for NewWorld MacIntosh hardware. It is able to boot\n"
-"either GNU/Linux, MacOS or MacOSX if present on your computer. Normally,\n"
-"these other operating systems are correctly detected and installed. If this\n"
-"is not the case, you can add an entry by hand in this screen. Be careful to\n"
-"choose the correct parameters.\n"
-"\n"
-"Yaboot's main options are:\n"
-"\n"
-" * Init Message: a simple text message displayed before the boot prompt;\n"
-"\n"
-" * Boot Device: indicates where you want to place the information required\n"
-"to boot to GNU/Linux. Generally, you set up a bootstrap partition earlier\n"
-"to hold this information;\n"
-"\n"
-" * Open Firmware Delay: unlike LILO, there are two delays available with\n"
-"yaboot. The first delay is measured in seconds and at this point, you can\n"
-"choose between CD, OF boot, MacOS or Linux;\n"
-"\n"
-" * Kernel Boot Timeout: this timeout is similar to the LILO boot delay.\n"
-"After selecting Linux, you will have this delay in 0.1 second before your\n"
-"default kernel description is selected;\n"
-"\n"
-" * Enable CD Boot?: checking this option allows you to choose ``C'' for CD\n"
-"at the first boot prompt;\n"
-"\n"
-" * Enable OF Boot?: checking this option allows you to choose ``N'' for "
-"Open\n"
-"Firmware at the first boot prompt;\n"
-"\n"
-" * Default OS: you can select which OS will boot by default when the Open\n"
-"Firmware Delay expires."
-msgstr ""
-"Yaboot is a bootloader for NewWorld MacIntosh hardware. It is able\n"
-"to boot either GNU/Linux, MacOS, or MacOSX, if present on your computer.\n"
-"Normally, these other operating systems are correctly detected and\n"
-"installed. If this is not the case, you can add an entry by hand in this\n"
-"screen. Be careful as to choose the correct parameters.\n"
-"\n"
-"\n"
-"Yaboot main options are:\n"
-"\n"
-"\n"
-" - Init Message: A simple text message that is displayed before the boot\n"
-"prompt.\n"
-"\n"
-"\n"
-" - Boot Device: Indicate where you want to place the information required "
-"to \n"
-"boot to GNU/Linux. Generally, you will have setup a bootstrap partition "
-"earlier \n"
-"to hold this information.\n"
-"\n"
-"\n"
-" - Open Firmware Delay: Unlike LILO, there are two delays available with \n"
-"yaboot. The first delay is measured in seconds and at this point you can \n"
-"choose between CD, OF boot, MacOS, or Linux.\n"
-"\n"
-"\n"
-" - Kernel Boot Timeout: This timeout is similar to the LILO boot delay. "
-"After \n"
-"selecting Linux, you will have this delay in 0.1 seconds before your "
-"default\n"
-"kernel description is selected.\n"
-"\n"
-"\n"
-" - Enable CD Boot?: Checking this option will allow you to choose 'C' for "
-"CD at\n"
-"the first boot prompt.\n"
-"\n"
-"\n"
-" - Enable OF Boot?: Checking this option will allow you to choose 'N' for "
-"Open\n"
-"Firmware at the first boot prompt.\n"
-"\n"
-"\n"
-" - Default OS: You can select which OS will boot by default when the Open "
-"Firmware \n"
-"Delay expires."
-
-#: ../../help.pm_.c:862
-msgid ""
-"Here are presented various parameters concerning your machine. Depending on\n"
-"your installed hardware, you may or not, see the following entries:\n"
-"\n"
-" * \"Mouse\": check the current mouse configuration and click on the button\n"
-"to change it if necessary;\n"
-"\n"
-" * \"Keyboard\": check the current keyboard map configuration and click on\n"
-"the button to change that if necessary;\n"
-"\n"
-" * \"Timezone\": DrakX, by default, guesses your time zone from the "
-"language\n"
-"you have chosen. But here again, as for the choice of a keyboard, you may\n"
-"not be in the country for which the chosen language should correspond.\n"
-"Hence, you may need to click on the \"Timezone\" button in order to\n"
-"configure the clock according to the time zone you are in;\n"
-"\n"
-" * \"Printer\": clicking on the \"No Printer\" button will open the printer\n"
-"configuration wizard;\n"
-"\n"
-" * \"Sound card\": if a sound card is detected on your system, it is\n"
-"displayed here. No modification possible at installation time;\n"
-"\n"
-" * \"TV card\": if a TV card is detected on your system, it is displayed\n"
-"here. No modification possible at installation time;\n"
-"\n"
-" * \"ISDN card\": if an ISDN card is detected on your system, it is\n"
-"displayed here. You can click on the button to change the parameters\n"
-"associated with it."
-msgstr ""
-
-#: ../../help.pm_.c:891
-#, fuzzy
-msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandrake Linux partition. Be careful, all data present on it will be lost\n"
-"and will not be recoverable!"
-msgstr ""
-"Valige kõvaketas, mida soovite Mandrake Linux installimiseks puhastada\n"
-"Ettevaatust, kõik sellel leiduvad andmed hävitatakse ja ei ole enam\n"
-"taastatavad."
-
-#: ../../help.pm_.c:896
-#, fuzzy
-msgid ""
-"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"
-"any Windows data.\n"
-"\n"
-"Click on \"Cancel\" to cancel this operation without losing any data and\n"
-"partitions present on this hard drive."
-msgstr ""
-"Valige \"OK\" kui soovite kustutada kõik sellel kettal asuvad "
-"partitsioonid.\n"
-"Ettevaatust, peale \"OK\" klikkimist ei ole enam võimalik sellelt kettalt\n"
-"andmeid taastada.\n"
-"\n"
-"\n"
-"Katkestamiseks valige \"Katkesta\"."
-
-#: ../../install2.pm_.c:113
-#, c-format
-msgid ""
-"Can't 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 ""
-
-#: ../../install2.pm_.c:169
-#, c-format
-msgid "You must also format %s"
-msgstr ""
-
-#: ../../install_any.pm_.c:411
-#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They don't have any known security\n"
-"issues, but some new could be found. In that case, you must make sure to "
-"upgrade\n"
-"as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
-msgstr ""
-
-#: ../../install_any.pm_.c:447
-msgid "Can't use broadcast with no NIS domain"
-msgstr "Üldlevi kasutamine on ilma NIS domeenita võimatu"
-
-#: ../../install_any.pm_.c:793
-#, c-format
-msgid "Insert a FAT formatted floppy in drive %s"
-msgstr "Pane FAT formaadis flopi seadmesse %s"
-
-#: ../../install_any.pm_.c:797
-msgid "This floppy is not FAT formatted"
-msgstr "See flopi ei ole FAT formaadis"
-
-#: ../../install_any.pm_.c:809
-msgid ""
-"To use this saved packages selection, boot installation with ``linux "
-"defcfg=floppy''"
-msgstr ""
-"Et kasutada seda paketivalikut, alustage installimist käsureaga \"linux "
-"defcfg=floppy\""
-
-#: ../../install_any.pm_.c:831 ../../partition_table.pm_.c:763
-#, c-format
-msgid "Error reading file %s"
-msgstr "Viga faili %s lugemisel"
-
-#: ../../install_interactive.pm_.c:23
-#, c-format
-msgid ""
-"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
-"You can find some information about them at: %s"
-msgstr ""
-"Osa teie riistvarast nõuab tarnijapoolseid juhtprogramme.\n"
-"Informatsiooni nende kohta saate: %s"
-
-#: ../../install_interactive.pm_.c:58
-msgid ""
-"You must have a root partition.\n"
-"For this, create a partition (or click on an existing one).\n"
-"Then choose action ``Mount point'' and set it to `/'"
-msgstr ""
-"Teil peab olema juurpartitsioon.\n"
-"Selleks looge uus partitsioon (või valige üks olemasolevatest).\n"
-"Siis valige tegevus \"Ühenduspunkt\" ja seadke see kui '/'"
-
-#: ../../install_interactive.pm_.c:63
-msgid "You must have a swap partition"
-msgstr "Teil peab olema saaleala"
-
-#: ../../install_interactive.pm_.c:64
-msgid ""
-"You don't have a swap partition\n"
-"\n"
-"Continue anyway?"
-msgstr ""
-"Saaleala ei ole määratud\n"
-"\n"
-"Jätkate ikkagi?"
-
-#: ../../install_interactive.pm_.c:67 ../../install_steps.pm_.c:163
-#, fuzzy
-msgid "You must have a FAT partition mounted in /boot/efi"
-msgstr "Teil peab olema saaleala"
-
-#: ../../install_interactive.pm_.c:90
-msgid "Use free space"
-msgstr "Kasuta vaba ruumi"
-
-#: ../../install_interactive.pm_.c:92
-msgid "Not enough free space to allocate new partitions"
-msgstr "Ei ole piisavalt ruumi uute partitsioonide jaoks"
-
-#: ../../install_interactive.pm_.c:100
-msgid "Use existing partition"
-msgstr "Kasuta olemasolevat partitsiooni"
-
-#: ../../install_interactive.pm_.c:102
-msgid "There is no existing partition to use"
-msgstr "Kasutatavat partitsiooni ei leitud"
-
-#: ../../install_interactive.pm_.c:109
-msgid "Use the Windows partition for loopback"
-msgstr "Kasuta Windowsi partitsiooni loopback-ina"
-
-#: ../../install_interactive.pm_.c:112
-msgid "Which partition do you want to use for Linux4Win?"
-msgstr "Millisele partitsioonile soovite installida Linux4Win?"
-
-#: ../../install_interactive.pm_.c:114
-msgid "Choose the sizes"
-msgstr "Valige suurused"
-
-#: ../../install_interactive.pm_.c:115
-msgid "Root partition size in MB: "
-msgstr "Juurpartitsiooni suurus (MB): "
-
-#: ../../install_interactive.pm_.c:116
-msgid "Swap partition size in MB: "
-msgstr "Saaleala suurus (MB): "
-
-#: ../../install_interactive.pm_.c:125
-msgid "Use the free space on the Windows partition"
-msgstr "Kasuta vaba ruumi Windowsi partitsioonil"
-
-#: ../../install_interactive.pm_.c:128
-msgid "Which partition do you want to resize?"
-msgstr "Mis partitsiooni soovite muuta?"
-
-#: ../../install_interactive.pm_.c:130
-msgid "Computing Windows filesystem bounds"
-msgstr "Arvutan Windowsi failisüsteemi piire"
-
-#: ../../install_interactive.pm_.c:133
-#, c-format
-msgid ""
-"The FAT resizer is unable to handle your partition, \n"
-"the following error occured: %s"
-msgstr ""
-"FAT partitsiooni suurust ei õnnestu muuta, \n"
-"ilmnes selline viga: %s"
-
-#: ../../install_interactive.pm_.c:136
-msgid "Your Windows partition is too fragmented, please run ``defrag'' first"
-msgstr ""
-"Teie Windowsi partitsioon on fragmenteerunud, palun kasutada 'defrag'-i"
-
-#: ../../install_interactive.pm_.c:137
-#, fuzzy
-msgid ""
-"WARNING!\n"
-"\n"
-"DrakX will now resize your Windows partition. Be careful:\n"
-"this operation is dangerous. If you have not already done\n"
-"so, you should first exit the installation, run scandisk\n"
-"under Windows (and optionally run defrag), then restart the\n"
-"installation. You should also backup your data.\n"
-"When sure, press Ok."
-msgstr ""
-"HOIATUS!\n"
-"\n"
-"DrakX hakkab Teie Windowsi partitsiooni suurust muutma. Olge ettevaatlik:\n"
-"see operatsioon võib olla ohtlik Teie failidele. Palun kasutage enne\n"
-"scandisk-i, defrag-i ja tehke tagavarakoopia.\n"
-"Kui olete oma otsuses kindel, vajutage OK."
-
-#: ../../install_interactive.pm_.c:147
-msgid "Which size do you want to keep for windows on"
-msgstr "Kui palju ruumi jätate Windowsi jaoks?"
-
-#: ../../install_interactive.pm_.c:148
-#, c-format
-msgid "partition %s"
-msgstr "Partitsioon %s"
-
-#: ../../install_interactive.pm_.c:155
-#, c-format
-msgid "FAT resizing failed: %s"
-msgstr "Suuruse muutmine ebaõnnestus: %s"
-
-#: ../../install_interactive.pm_.c:170
-msgid ""
-"There is no FAT partitions to resize or to use as loopback (or not enough "
-"space left)"
-msgstr "Sobivat FAT partitsiooni ei leitud (ei ole piisavalt ruumi)"
-
-#: ../../install_interactive.pm_.c:176
-msgid "Erase entire disk"
-msgstr "Tühjenda kogu ketas"
-
-#: ../../install_interactive.pm_.c:176
-msgid "Remove Windows(TM)"
-msgstr "Eemalda Windows(TM)"
-
-#: ../../install_interactive.pm_.c:179
-msgid "You have more than one hard drive, which one do you install linux on?"
-msgstr "Teil on rohkem kui üks kõvaketas, millisele neis installite Linuxi?"
-
-#: ../../install_interactive.pm_.c:182
-#, c-format
-msgid "ALL existing partitions and their data will be lost on drive %s"
-msgstr "Kettal %s hävivad KÕIK partitsioonid ja andmed"
-
-#: ../../install_interactive.pm_.c:190
-msgid "Custom disk partitioning"
-msgstr "Partitsioneerin ise"
-
-#: ../../install_interactive.pm_.c:194
-msgid "Use fdisk"
-msgstr "Kasuta fdisk-i"
-
-#: ../../install_interactive.pm_.c:197
-#, c-format
-msgid ""
-"You can now partition %s.\n"
-"When you are done, don't forget to save using `w'"
-msgstr ""
-"Nüüd saate partitsioneerida %s kõvaketta\n"
-"Kui olete valmis, salvestage käsuga 'w'"
-
-#: ../../install_interactive.pm_.c:226
-msgid "You don't have enough free space on your Windows partition"
-msgstr "Teil ei ole piisavalt vaba ruumi Windowsi partitsioonil"
-
-#: ../../install_interactive.pm_.c:242
-msgid "I can't find any room for installing"
-msgstr "Installimiseks ei ole üldse ruumi"
-
-#: ../../install_interactive.pm_.c:246
-msgid "The DrakX Partitioning wizard found the following solutions:"
-msgstr "DrakX kettajagamise abimees leidis sellised lahendused:"
-
-#: ../../install_interactive.pm_.c:251
-#, c-format
-msgid "Partitioning failed: %s"
-msgstr "Ketta jagamine ebaõnnestus: %s"
-
-#: ../../install_interactive.pm_.c:261
-msgid "Bringing up the network"
-msgstr "Käivitame võrguliidesed"
-
-#: ../../install_interactive.pm_.c:266
-msgid "Bringing down the network"
-msgstr "Seiskame võrguliidesed"
-
-#: ../../install_steps.pm_.c:76
-msgid ""
-"An error occurred, but I don't know how to handle it nicely.\n"
-"Continue at your own risk."
-msgstr ""
-"Tekkis mingi viga, aga seda ei suuda programm ise klaarida.\n"
-"Jätkake omal vastutusel."
-
-#: ../../install_steps.pm_.c:205
-#, c-format
-msgid "Duplicate mount point %s"
-msgstr "Ühenduspunkt %s on määratud topelt"
-
-#: ../../install_steps.pm_.c:388
-msgid ""
-"Some important packages didn't get installed properly.\n"
-"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl Mandrake/RPMS/*.rpm"
-"\"\n"
-msgstr ""
-"Mõned tähtsad paketid ei saanud korralikult paika.\n"
-"Teie CD-lugeja või CD on ilmselt vigane.\n"
-"Paketifaile CD-l saate kontrollida käsuga \"rpm -qpl Mandrake/RPMS/*.rpm\"\n"
-
-#: ../../install_steps.pm_.c:458
-#, c-format
-msgid "Welcome to %s"
-msgstr "See ongi %s"
-
-#: ../../install_steps.pm_.c:513 ../../install_steps.pm_.c:755
-msgid "No floppy drive available"
-msgstr "Flopiseade ei ole kättesaadav"
-
-#: ../../install_steps_auto_install.pm_.c:76
-#: ../../install_steps_stdio.pm_.c:22
-#, c-format
-msgid "Entering step `%s'\n"
-msgstr "Järgmine samm: '%s'\n"
-
-#: ../../install_steps_gtk.pm_.c:148
-msgid ""
-"Your system is low on resource. You may have some problem installing\n"
-"Mandrake Linux. 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 on ressursiprobleeme ja installimine võib ebaõnnestuda.\n"
-"Kui nii juhtub, proovige palun tekstipõhjalist paigaldust. Selleks \n"
-"vajutaga laadimisel F1 ja sisestage 'text'"
-
-#: ../../install_steps_gtk.pm_.c:159 ../../install_steps_interactive.pm_.c:224
-msgid "Install Class"
-msgstr "Installi klass"
-
-#: ../../install_steps_gtk.pm_.c:162
-#, fuzzy
-msgid "Please choose one of the following classes of installation:"
-msgstr "Palun valige üks järgnevatest paigaldusklassidest"
-
-#: ../../install_steps_gtk.pm_.c:228
-#, c-format
-msgid ""
-"The total size for the groups you have selected is approximately %d MB.\n"
-msgstr "Teie poolt valitud gruppide kogusuurus on umbes %d MB.\n"
-
-#: ../../install_steps_gtk.pm_.c:230
-#, c-format
-msgid ""
-"If you wish to install less than this size,\n"
-"select the percentage of packages that you want to install.\n"
-"\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of 100%% will install all selected packages."
-msgstr ""
-"Kui soovite installida sellest vähem, valige vastav protsent.\n"
-"\n"
-"Madalama protsendi puhul installitakse vaid kõige tähtsamad paketid;\n"
-"100%% tähendab kõige valitud pakettide installimist."
-
-#: ../../install_steps_gtk.pm_.c:235
-#, fuzzy, c-format
-msgid ""
-"You have space on your disk for only %d%% of these packages.\n"
-"\n"
-"If you wish to install less than this,\n"
-"select the percentage of packages that you want to install.\n"
-"A low percentage will install only the most important packages;\n"
-"a percentage of %d%% will install as many packages as possible."
-msgstr ""
-"Teil on kettal ruumi vaid %d%% pakettide jaoks.\n"
-"\n"
-"Kui soovite sellest vähem, valige väiksem protsent ja installimisele\n"
-"kuuluvad vaid olulisemad paketid."
-
-#: ../../install_steps_gtk.pm_.c:241
-msgid "You will be able to choose them more specifically in the next step."
-msgstr "Täpsemalt saate valida järgmisel sammul"
-
-#: ../../install_steps_gtk.pm_.c:243
-msgid "Percentage of packages to install"
-msgstr "Installitavate pakettide protsent"
-
-#: ../../install_steps_gtk.pm_.c:291 ../../install_steps_interactive.pm_.c:705
-msgid "Package Group Selection"
-msgstr "Paketigruppide valik"
-
-#: ../../install_steps_gtk.pm_.c:323 ../../install_steps_interactive.pm_.c:720
-msgid "Individual package selection"
-msgstr "Valik paketthaaval"
-
-#: ../../install_steps_gtk.pm_.c:346 ../../install_steps_interactive.pm_.c:645
-#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Suurus kokku: %d / %d MB"
-
-#: ../../install_steps_gtk.pm_.c:391
-msgid "Bad package"
-msgstr "Vigane pakett"
-
-#: ../../install_steps_gtk.pm_.c:392
-#, c-format
-msgid "Name: %s\n"
-msgstr "Nimi: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:393
-#, c-format
-msgid "Version: %s\n"
-msgstr "Versioon: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:394
-#, c-format
-msgid "Size: %d KB\n"
-msgstr "Suurus: %d kB\n"
-
-#: ../../install_steps_gtk.pm_.c:395
-#, c-format
-msgid "Importance: %s\n"
-msgstr "Tähtsus: %s\n"
-
-#: ../../install_steps_gtk.pm_.c:417
-msgid ""
-"You can't select this package as there is not enough space left to install it"
-msgstr "Seda paketti ei saa valida, kettaruumi ei ole paigalsuseks piisavalt"
-
-#: ../../install_steps_gtk.pm_.c:422
-msgid "The following packages are going to be installed"
-msgstr "Installimiseks on valitud järgmised paketid"
-
-#: ../../install_steps_gtk.pm_.c:423
-msgid "The following packages are going to be removed"
-msgstr "Eemaldamiseks on valitud järgmised paketid"
-
-#: ../../install_steps_gtk.pm_.c:435
-msgid "You can't select/unselect this package"
-msgstr "Seda paketti ei saa (mitte) valida"
-
-#: ../../install_steps_gtk.pm_.c:447
-msgid "This is a mandatory package, it can't be unselected"
-msgstr "See pakett on kohustuslik"
-
-#: ../../install_steps_gtk.pm_.c:449
-msgid "You can't unselect this package. It is already installed"
-msgstr "See pakett on juba installitud"
-
-#: ../../install_steps_gtk.pm_.c:453
-msgid ""
-"This package must be upgraded\n"
-"Are you sure you want to deselect it?"
-msgstr ""
-"Selle paketi peaks uuendame\n"
-"Olete kindel, et Te ei vali seda?"
-
-#: ../../install_steps_gtk.pm_.c:457
-msgid "You can't unselect this package. It must be upgraded"
-msgstr "Selle paketi peate valima, sest selle uuendamine on kohustuslik"
-
-#: ../../install_steps_gtk.pm_.c:462
-msgid "Show automatically selected packages"
-msgstr "Näita automaatselt valitud pakette"
-
-#: ../../install_steps_gtk.pm_.c:463 ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-msgid "Install"
-msgstr "Installimine"
-
-#: ../../install_steps_gtk.pm_.c:466
-#, fuzzy
-msgid "Load/Save on floppy"
-msgstr "Salvesta flopile"
-
-#: ../../install_steps_gtk.pm_.c:467
-#, fuzzy
-msgid "Updating package selection"
-msgstr "Salvest paketivalik"
-
-#: ../../install_steps_gtk.pm_.c:472
-#, fuzzy
-msgid "Minimal install"
-msgstr "Eemaldamine"
-
-#: ../../install_steps_gtk.pm_.c:487 ../../install_steps_interactive.pm_.c:555
-msgid "Choose the packages you want to install"
-msgstr "Valige paketid installimiseks"
-
-#: ../../install_steps_gtk.pm_.c:503 ../../install_steps_interactive.pm_.c:787
-msgid "Installing"
-msgstr "Installin"
-
-#: ../../install_steps_gtk.pm_.c:509
-msgid "Estimating"
-msgstr "Oletan"
-
-#: ../../install_steps_gtk.pm_.c:516
-msgid "Time remaining "
-msgstr "Aega jäänud "
-
-#: ../../install_steps_gtk.pm_.c:528
-msgid "Please wait, preparing installation"
-msgstr "Palun oodake, valmistun installimiseks"
-
-#: ../../install_steps_gtk.pm_.c:611
-#, c-format
-msgid "%d packages"
-msgstr "%d paketti"
-
-#: ../../install_steps_gtk.pm_.c:616
-#, c-format
-msgid "Installing package %s"
-msgstr "Paketi %s installimine"
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-#: ../../standalone/drakautoinst_.c:203
-msgid "Accept"
-msgstr "Nõus"
-
-#: ../../install_steps_gtk.pm_.c:657 ../../install_steps_interactive.pm_.c:185
-#: ../../install_steps_interactive.pm_.c:811
-msgid "Refuse"
-msgstr "Keeldun"
-
-#: ../../install_steps_gtk.pm_.c:658 ../../install_steps_interactive.pm_.c:812
-#, c-format
-msgid ""
-"Change your Cd-Rom!\n"
-"\n"
-"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
-"done.\n"
-"If you don't have it, press Cancel to avoid installation from this Cd-Rom."
-msgstr ""
-"Vahetage CD!\n"
-"\n"
-"Palun sisestage CD pealdisega \"%s\" lugejasse ja vajutage <OK>.\n"
-"Kui teil säherdust ei ole, vajutage <Katkesta>"
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_gtk.pm_.c:676
-#: ../../install_steps_interactive.pm_.c:824
-#: ../../install_steps_interactive.pm_.c:828
-msgid "Go on anyway?"
-msgstr "Ikkagi edasi?"
-
-#: ../../install_steps_gtk.pm_.c:672 ../../install_steps_interactive.pm_.c:824
-msgid "There was an error ordering packages:"
-msgstr "Pakettide tellimisel tekkis viga:"
-
-#: ../../install_steps_gtk.pm_.c:676 ../../install_steps_interactive.pm_.c:828
-msgid "There was an error installing packages:"
-msgstr "Pakettide installimisel tekkis viga:"
-
-#: ../../install_steps_interactive.pm_.c:10
-msgid ""
-"\n"
-"Warning\n"
-"\n"
-"Please read carefully the terms below. If you disagree with any\n"
-"portion, you are not allowed to install the next CD media. Press 'Refuse' \n"
-"to continue the installation without using these media.\n"
-"\n"
-"\n"
-"Some components contained in the next CD media are not governed\n"
-"by the GPL License or similar agreements. Each such component is then\n"
-"governed by the terms and conditions of its own specific license. \n"
-"Please read carefully and comply with such specific licenses before \n"
-"you use or redistribute the said components. \n"
-"Such licenses will in general prevent the transfer, duplication \n"
-"(except for backup purposes), redistribution, reverse engineering, \n"
-"de-assembly, de-compilation or modification of the component. \n"
-"Any breach of agreement will immediately terminate your rights under \n"
-"the specific license. Unless the specific license terms grant you such\n"
-"rights, you usually cannot install the programs on more than one\n"
-"system, or adapt it to be used on a network. In doubt, please contact \n"
-"directly the distributor or editor of the component. \n"
-"Transfer to third parties or copying of such components including the \n"
-"documentation is usually forbidden.\n"
-"\n"
-"\n"
-"All rights to the components of the next CD media belong to their \n"
-"respective authors and are protected by intellectual property and \n"
-"copyright laws applicable to software programs.\n"
-msgstr ""
-"\n"
-"Hoiatus\n"
-"\n"
-"Palun lugege hoolega alltoodud teksti. Kui Te ei ole kõigi alljärgnevate\n"
-"väidetega, on installimine järgmise CD pealt keelatud. Vajutage 'Keeldun', \n"
-"et jätkata installimist ilma selle CD-ta.\n"
-"\n"
-"\n"
-"Some components contained in the next CD media are not governed\n"
-"by the GPL License or similar agreements. Each such component is then\n"
-"governed by the terms and conditions of its own specific license. \n"
-"Please read carefully and comply with such specific licenses before \n"
-"you use or redistribute the said components. \n"
-"Such licenses will in general prevent the transfer, duplication \n"
-"(except for backup purposes), redistribution, reverse engineering, \n"
-"de-assembly, de-compilation or modification of the component. \n"
-"Any breach of agreement will immediately terminate your rights under \n"
-"the specific license. Unless the specific license terms grant you such\n"
-"rights, you usually cannot install the programs on more than one\n"
-"system, or adapt it to be used on a network. In doubt, please contact \n"
-"directly the distributor or editor of the component. \n"
-"Transfer to third parties or copying of such components including the \n"
-"documentation is usually forbidden.\n"
-"\n"
-"\n"
-"All rights to the components of the next CD media belong to their \n"
-"respective authors and are protected by intellectual property and \n"
-"copyright laws applicable to software programs.\n"
-
-#: ../../install_steps_interactive.pm_.c:67
-msgid "An error occurred"
-msgstr "Tekkis mingi viga"
-
-#: ../../install_steps_interactive.pm_.c:85
-#, fuzzy
-msgid "Do you really want to leave the installation?"
-msgstr "Kas soovite võrguühendust taaskäivitada?"
-
-#: ../../install_steps_interactive.pm_.c:108
-msgid "License agreement"
-msgstr "Lõppkasutaja litsentsileping"
-
-#: ../../install_steps_interactive.pm_.c:109
-msgid ""
-"Introduction\n"
-"\n"
-"The operating system and the different components available in the Mandrake "
-"Linux distribution \n"
-"shall be called the \"Software Products\" hereafter. The Software Products "
-"include, but are not \n"
-"restricted to, the set of programs, methods, rules and documentation related "
-"to the operating \n"
-"system and the different components of the Mandrake Linux distribution.\n"
-"\n"
-"\n"
-"1. License Agreement\n"
-"\n"
-"Please read carefully this document. This document is a license agreement "
-"between you and \n"
-"MandrakeSoft S.A. which applies to the Software Products.\n"
-"By installing, duplicating or using the Software Products in any manner, you "
-"explicitly \n"
-"accept and fully agree to conform to the terms and conditions of this "
-"License. \n"
-"If you disagree with any portion of the License, you are not allowed to "
-"install, duplicate or use \n"
-"the Software Products. \n"
-"Any attempt to install, duplicate or use the Software Products in a manner "
-"which does not comply \n"
-"with the terms and conditions of this License is void and will terminate "
-"your rights under this \n"
-"License. Upon termination of the License, you must immediately destroy all "
-"copies of the \n"
-"Software Products.\n"
-"\n"
-"\n"
-"2. Limited Warranty\n"
-"\n"
-"The Software Products and attached documentation are provided \"as is\", "
-"with no warranty, to the \n"
-"extent permitted by law.\n"
-"MandrakeSoft S.A. will, in no circumstances and to the extent permitted by "
-"law, be liable for any special,\n"
-"incidental, direct or indirect damages whatsoever (including without "
-"limitation damages for loss of \n"
-"business, interruption of business, financial loss, legal fees and penalties "
-"resulting from a court \n"
-"judgment, or any other consequential loss) arising out of the use or "
-"inability to use the Software \n"
-"Products, even if MandrakeSoft S.A. has been advised of the possibility or "
-"occurance of such \n"
-"damages.\n"
-"\n"
-"LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN SOME "
-"COUNTRIES\n"
-"\n"
-"To the extent permitted by law, MandrakeSoft S.A. or its distributors will, "
-"in no circumstances, be \n"
-"liable for any special, incidental, direct or indirect damages whatsoever "
-"(including without \n"
-"limitation damages for loss of business, interruption of business, financial "
-"loss, legal fees \n"
-"and penalties resulting from a court judgment, or any other consequential "
-"loss) arising out \n"
-"of the possession and use of software components or arising out of "
-"downloading software components \n"
-"from one of Mandrake Linux sites which are prohibited or restricted in some "
-"countries by local laws.\n"
-"This limited liability applies to, but is not restricted to, the strong "
-"cryptography components \n"
-"included in the Software Products.\n"
-"\n"
-"\n"
-"3. The GPL License and Related Licenses\n"
-"\n"
-"The Software Products consist of components created by different persons or "
-"entities. Most \n"
-"of these components are governed under the terms and conditions of the GNU "
-"General Public \n"
-"Licence, hereafter called \"GPL\", or of similar licenses. Most of these "
-"licenses allow you to use, \n"
-"duplicate, adapt or redistribute the components which they cover. Please "
-"read carefully the terms \n"
-"and conditions of the license agreement for each component before using any "
-"component. Any question \n"
-"on a component license should be addressed to the component author and not "
-"to MandrakeSoft.\n"
-"The programs developed by MandrakeSoft S.A. are governed by the GPL License. "
-"Documentation written \n"
-"by MandrakeSoft S.A. is governed by a specific license. Please refer to the "
-"documentation for \n"
-"further details.\n"
-"\n"
-"\n"
-"4. Intellectual Property Rights\n"
-"\n"
-"All rights to the components of the Software Products belong to their "
-"respective authors and are \n"
-"protected by intellectual property and copyright laws applicable to software "
-"programs.\n"
-"MandrakeSoft S.A. reserves its rights to modify or adapt the Software "
-"Products, as a whole or in \n"
-"parts, by all means and for all purposes.\n"
-"\"Mandrake\", \"Mandrake Linux\" and associated logos are trademarks of "
-"MandrakeSoft S.A. \n"
-"\n"
-"\n"
-"5. Governing Laws \n"
-"\n"
-"If any portion of this agreement is held void, illegal or inapplicable by a "
-"court judgment, this \n"
-"portion is excluded from this contract. You remain bound by the other "
-"applicable sections of the \n"
-"agreement.\n"
-"The terms and conditions of this License are governed by the Laws of "
-"France.\n"
-"All disputes on the terms of this license will preferably be settled out of "
-"court. As a last \n"
-"resort, the dispute will be referred to the appropriate Courts of Law of "
-"Paris - France.\n"
-"For any question on this document, please contact MandrakeSoft S.A. \n"
-msgstr ""
-"Järgnev lõppkasutaja litsents on eksimuste vältimiseks originaalkeeles\n"
-"\n"
-"Introduction\n"
-"\n"
-"The operating system and the different components available in the Mandrake "
-"Linux distribution \n"
-"shall be called the \"Software Products\" hereafter. The Software Products "
-"include, but are not \n"
-"restricted to, the set of programs, methods, rules and documentation related "
-"to the operating \n"
-"system and the different components of the Mandrake Linux distribution.\n"
-"\n"
-"\n"
-"1. License Agreement\n"
-"\n"
-"Please read carefully this document. This document is a license agreement "
-"between you and \n"
-"MandrakeSoft S.A. which applies to the Software Products.\n"
-"By installing, duplicating or using the Software Products in any manner, you "
-"explicitly \n"
-"accept and fully agree to conform to the terms and conditions of this "
-"License. \n"
-"If you disagree with any portion of the License, you are not allowed to "
-"install, duplicate or use \n"
-"the Software Products. \n"
-"Any attempt to install, duplicate or use the Software Products in a manner "
-"which does not comply \n"
-"with the terms and conditions of this License is void and will terminate "
-"your rights under this \n"
-"License. Upon termination of the License, you must immediately destroy all "
-"copies of the \n"
-"Software Products.\n"
-"\n"
-"\n"
-"2. Limited Warranty\n"
-"\n"
-"The Software Products and attached documentation are provided \"as is\", "
-"with no warranty, to the \n"
-"extent permitted by law.\n"
-"MandrakeSoft S.A. will, in no circumstances and to the extent permitted by "
-"law, be liable for any special,\n"
-"incidental, direct or indirect damages whatsoever (including without "
-"limitation damages for loss of \n"
-"business, interruption of business, financial loss, legal fees and penalties "
-"resulting from a court \n"
-"judgment, or any other consequential loss) arising out of the use or "
-"inability to use the Software \n"
-"Products, even if MandrakeSoft S.A. has been advised of the possibility or "
-"occurance of such \n"
-"damages.\n"
-"\n"
-"LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN SOME "
-"COUNTRIES\n"
-"\n"
-"To the extent permitted by law, MandrakeSoft S.A. or its distributors will, "
-"in no circumstances, be \n"
-"liable for any special, incidental, direct or indirect damages whatsoever "
-"(including without \n"
-"limitation damages for loss of business, interruption of business, financial "
-"loss, legal fees \n"
-"and penalties resulting from a court judgment, or any other consequential "
-"loss) arising out \n"
-"of the possession and use of software components or arising out of "
-"downloading software components \n"
-"from one of Mandrake Linux sites which are prohibited or restricted in some "
-"countries by local laws.\n"
-"This limited liability applies to, but is not restricted to, the strong "
-"cryptography components \n"
-"included in the Software Products.\n"
-"\n"
-"\n"
-"3. The GPL License and Related Licenses\n"
-"\n"
-"The Software Products consist of components created by different persons or "
-"entities. Most \n"
-"of these components are governed under the terms and conditions of the GNU "
-"General Public \n"
-"Licence, hereafter called \"GPL\", or of similar licenses. Most of these "
-"licenses allow you to use, \n"
-"duplicate, adapt or redistribute the components which they cover. Please "
-"read carefully the terms \n"
-"and conditions of the license agreement for each component before using any "
-"component. Any question \n"
-"on a component license should be addressed to the component author and not "
-"to MandrakeSoft.\n"
-"The programs developed by MandrakeSoft S.A. are governed by the GPL License. "
-"Documentation written \n"
-"by MandrakeSoft S.A. is governed by a specific license. Please refer to the "
-"documentation for \n"
-"further details.\n"
-"\n"
-"\n"
-"4. Intellectual Property Rights\n"
-"\n"
-"All rights to the components of the Software Products belong to their "
-"respective authors and are \n"
-"protected by intellectual property and copyright laws applicable to software "
-"programs.\n"
-"MandrakeSoft S.A. reserves its rights to modify or adapt the Software "
-"Products, as a whole or in \n"
-"parts, by all means and for all purposes.\n"
-"\"Mandrake\", \"Mandrake Linux\" and associated logos are trademarks of "
-"MandrakeSoft S.A. \n"
-"\n"
-"\n"
-"5. Governing Laws \n"
-"\n"
-"If any portion of this agreement is held void, illegal or inapplicable by a "
-"court judgment, this \n"
-"portion is excluded from this contract. You remain bound by the other "
-"applicable sections of the \n"
-"agreement.\n"
-"The terms and conditions of this License are governed by the Laws of "
-"France.\n"
-"All disputes on the terms of this license will preferably be settled out of "
-"court. As a last \n"
-"resort, the dispute will be referred to the appropriate Courts of Law of "
-"Paris - France.\n"
-"For any question on this document, please contact MandrakeSoft S.A. \n"
-
-#: ../../install_steps_interactive.pm_.c:205
-#: ../../install_steps_interactive.pm_.c:1045
-#: ../../standalone/keyboarddrake_.c:28
-msgid "Keyboard"
-msgstr "Klaviatuur"
-
-#: ../../install_steps_interactive.pm_.c:206
-#, fuzzy
-msgid "Please choose your keyboard layout."
-msgstr "Palun valige klaviatuuriasetus"
-
-#: ../../install_steps_interactive.pm_.c:207
-msgid "Here is the full list of keyboards available"
-msgstr "Võimalike klaviatuuride täielik nimekiri"
-
-#: ../../install_steps_interactive.pm_.c:224
-msgid "Which installation class do you want?"
-msgstr "Millist installi klassi Te soovite"
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Install/Update"
-msgstr "Installimine/Uuendus"
-
-#: ../../install_steps_interactive.pm_.c:226
-msgid "Is this an install or an update?"
-msgstr "On see installimine või taastamine?"
-
-#: ../../install_steps_interactive.pm_.c:235
-msgid "Recommended"
-msgstr "Soovituslik"
-
-#: ../../install_steps_interactive.pm_.c:238
-#: ../../install_steps_interactive.pm_.c:241
-msgid "Expert"
-msgstr "Ekspert"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-#, fuzzy
-msgid "Upgrade"
-msgstr "Uuendus"
-
-#: ../../install_steps_interactive.pm_.c:246
-#: ../../install_steps_interactive.pm_.c:250
-#, fuzzy
-msgid "Upgrade packages only"
-msgstr "Salvest paketivalik"
-
-#: ../../install_steps_interactive.pm_.c:266
-#, fuzzy
-msgid "Please choose the type of your mouse."
-msgstr "Palun valige hiire tüüp"
-
-#: ../../install_steps_interactive.pm_.c:272 ../../standalone/mousedrake_.c:65
-msgid "Mouse Port"
-msgstr "Hiire port"
-
-#: ../../install_steps_interactive.pm_.c:273 ../../standalone/mousedrake_.c:66
-msgid "Please choose on which serial port your mouse is connected to."
-msgstr "Millisesse seerialporti on Teie hiir ühendatud?"
-
-#: ../../install_steps_interactive.pm_.c:281
-msgid "Buttons emulation"
-msgstr "Nuppude teesklemine"
-
-#: ../../install_steps_interactive.pm_.c:283
-msgid "Button 2 Emulation"
-msgstr "Teeskle 2 hiirenupp"
-
-#: ../../install_steps_interactive.pm_.c:284
-msgid "Button 3 Emulation"
-msgstr "Teeskle 3 hiirenuppu"
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "Configuring PCMCIA cards..."
-msgstr "PCMCIA kaartide seadmine..."
-
-#: ../../install_steps_interactive.pm_.c:305
-msgid "PCMCIA"
-msgstr "PCMCIA"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "Configuring IDE"
-msgstr "IDE seadistamine"
-
-#: ../../install_steps_interactive.pm_.c:312
-msgid "IDE"
-msgstr "IDE"
-
-#: ../../install_steps_interactive.pm_.c:327
-msgid "no available partitions"
-msgstr "ei leia partitsioone"
-
-#: ../../install_steps_interactive.pm_.c:330
-msgid "Scanning partitions to find mount points"
-msgstr "Otsin partitsioonidelt ühenduspunkte"
-
-#: ../../install_steps_interactive.pm_.c:338
-msgid "Choose the mount points"
-msgstr "Valige ühenduspunktid"
-
-#: ../../install_steps_interactive.pm_.c:357
-#, c-format
-msgid ""
-"I can't read your partition table, it's too corrupted for me :(\n"
-"I can try to go on blanking bad partitions (ALL DATA will be lost!).\n"
-"The other solution is to disallow DrakX to modify the partition table.\n"
-"(the error is %s)\n"
-"\n"
-"Do you agree to loose all the partitions?\n"
-msgstr ""
-"Partitsioonitabel on loetamatu, liiga rikutud DrakX-i jaoks :(\n"
-"Proovin loetamatud kirjed puhastada kuid ANDMED NENDEL HÄVIVAD.\n"
-"Teine võimalus on keelata DrakX-il partitsioonitabeli muutmine.\n"
-"(Viga oli selline: %s)\n"
-"Kas olete nõus partitsioonide kaotamisega?\n"
-
-#: ../../install_steps_interactive.pm_.c:370
-msgid ""
-"DiskDrake failed to read correctly the partition table.\n"
-"Continue at your own risk!"
-msgstr ""
-"DiskDrake ei saanud partitsioonitabeli lugemisega hakkama.\n"
-"Jätkate omal vastutusel!"
-
-#: ../../install_steps_interactive.pm_.c:386
-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 ""
-
-#: ../../install_steps_interactive.pm_.c:395
-#, fuzzy
-msgid "No root partition found to perform an upgrade"
-msgstr "Juurpartitsiooni ei leitud"
-
-#: ../../install_steps_interactive.pm_.c:396
-msgid "Root Partition"
-msgstr "Juurpartitsioon"
-
-#: ../../install_steps_interactive.pm_.c:397
-msgid "What is the root partition (/) of your system?"
-msgstr "Millisel partitsioonil hoiate juurkataloogi (/)?"
-
-#: ../../install_steps_interactive.pm_.c:411
-msgid "You need to reboot for the partition table modifications to take place"
-msgstr "Partitsioonitabeli säilitamiseks vajate alglaadimist"
-
-#: ../../install_steps_interactive.pm_.c:435
-msgid "Choose the partitions you want to format"
-msgstr "Valige partitsioonid, mida soovite vormindada"
-
-#: ../../install_steps_interactive.pm_.c:436
-msgid "Check bad blocks?"
-msgstr "Blokkide kontroll?"
-
-#: ../../install_steps_interactive.pm_.c:462
-msgid "Formatting partitions"
-msgstr "Vormindan partitsioone"
-
-#: ../../install_steps_interactive.pm_.c:464
-#, c-format
-msgid "Creating and formatting file %s"
-msgstr "Loon ja vormindan faili %s"
-
-#: ../../install_steps_interactive.pm_.c:467
-msgid "Not enough swap to fulfill installation, please add some"
-msgstr "Saaleala on installimiseks liiga väike, palun lisage"
-
-#: ../../install_steps_interactive.pm_.c:473
-msgid "Looking for available packages"
-msgstr "Otsin kättesaadavaid pakette"
-
-#: ../../install_steps_interactive.pm_.c:479
-msgid "Finding packages to upgrade"
-msgstr "Otsin uuendatavaid pakette"
-
-#: ../../install_steps_interactive.pm_.c:496
-#, c-format
-msgid ""
-"Your system has not enough space left for installation or upgrade (%d > %d)"
-msgstr "Teie kõvakettal ei ole piisavalt vaba ruumi (%d > %d)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Complete (%dMB)"
-msgstr "Täielik (%d MB)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Minimum (%dMB)"
-msgstr "Minimaalne (%d MB)"
-
-#: ../../install_steps_interactive.pm_.c:515
-#, c-format
-msgid "Recommended (%dMB)"
-msgstr "Soovitatav (%d MB)"
-
-#: ../../install_steps_interactive.pm_.c:568
-msgid ""
-"Please choose load or save package selection on floppy.\n"
-"The format is the same as auto_install generated floppies."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:571
-#, fuzzy
-msgid "Load from floppy"
-msgstr "Taasta flopilt"
-
-#: ../../install_steps_interactive.pm_.c:573
-#, fuzzy
-msgid "Loading from floppy"
-msgstr "Taasta flopilt"
-
-#: ../../install_steps_interactive.pm_.c:573
-#, fuzzy
-msgid "Package selection"
-msgstr "Paketigruppide valik"
-
-#: ../../install_steps_interactive.pm_.c:578
-#, fuzzy
-msgid "Insert a floppy containing package selection"
-msgstr "Pane flopi seadmesse %s"
-
-#: ../../install_steps_interactive.pm_.c:590
-msgid "Save on floppy"
-msgstr "Salvesta flopile"
-
-#: ../../install_steps_interactive.pm_.c:658
-msgid "Selected size is larger than available space"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:671
-#, fuzzy
-msgid "Type of install"
-msgstr "Valige pakett installimiseks"
-
-#: ../../install_steps_interactive.pm_.c:672
-msgid ""
-"You haven't selected any group of packages.\n"
-"Please choose the minimal installation you want:"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:675
-#, fuzzy
-msgid "With X"
-msgstr "Oodake"
-
-#: ../../install_steps_interactive.pm_.c:677
-msgid "With basic documentation (recommended!)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:678
-msgid "Truly minimal install (especially no urpmi)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:762
-msgid ""
-"If you have all the CDs in the list below, click Ok.\n"
-"If you have none of those CDs, click Cancel.\n"
-"If only some CDs are missing, unselect them, then click Ok."
-msgstr ""
-"Kui Teil on olemas kõik alltoodud CD-d, klikkige <OK>.\n"
-"Kui Teil ei ole ühtki neist, klikkige <Katkesta>.\n"
-"Kui puuduvad mõned CD-d, märkige vaid olemasolevad ja siis <OK>."
-
-#: ../../install_steps_interactive.pm_.c:767
-#, c-format
-msgid "Cd-Rom labeled \"%s\""
-msgstr "CD pealdisega \"%s\""
-
-#: ../../install_steps_interactive.pm_.c:787
-msgid "Preparing installation"
-msgstr "Valmistun installimiseks"
-
-#: ../../install_steps_interactive.pm_.c:796
-#, c-format
-msgid ""
-"Installing package %s\n"
-"%d%%"
-msgstr ""
-"Paketi %s installimine\n"
-"%d%%"
-
-#: ../../install_steps_interactive.pm_.c:842
-msgid "Post-install configuration"
-msgstr "Paigaldusjärgsed sätted"
-
-#: ../../install_steps_interactive.pm_.c:848
-#, fuzzy, c-format
-msgid "Please insert the Boot floppy used in drive %s"
-msgstr "Pane flopi seadmesse %s"
-
-#: ../../install_steps_interactive.pm_.c:854
-#, fuzzy, c-format
-msgid "Please insert the Update Modules floppy in drive %s"
-msgstr "Pange palun tühi flopi seadmesse %s"
-
-#: ../../install_steps_interactive.pm_.c:874
-msgid ""
-"You have now the possibility to download software aimed for encryption.\n"
-"\n"
-"WARNING:\n"
-"\n"
-"Due to different general requirements applicable to these software and "
-"imposed\n"
-"by various jurisdictions, customer and/or end user of theses software "
-"should\n"
-"ensure that the laws of his/their jurisdiction allow him/them to download, "
-"stock\n"
-"and/or use these software.\n"
-"\n"
-"In addition customer and/or end user shall particularly be aware to not "
-"infringe\n"
-"the laws of his/their jurisdiction. Should customer and/or end user not\n"
-"respect the provision of these applicable laws, he/they will incure serious\n"
-"sanctions.\n"
-"\n"
-"In no event shall Mandrakesoft nor its manufacturers and/or suppliers be "
-"liable\n"
-"for special, indirect or incidental damages whatsoever (including, but not\n"
-"limited to loss of profits, business interruption, loss of commercial data "
-"and\n"
-"other pecuniary losses, and eventual liabilities and indemnification to be "
-"paid\n"
-"pursuant to a court decision) arising out of use, possession, or the sole\n"
-"downloading of these software, to which customer and/or end user could\n"
-"eventually have access after having sign up the present agreement.\n"
-"\n"
-"\n"
-"For any queries relating to these agreement, please contact \n"
-"Mandrakesoft, Inc.\n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA"
-msgstr ""
-"Nüüd on Teil võimalik oma süsteemi laadida krüptotarkvara.\n"
-"\n"
-"HOIATUS:\n"
-"\n"
-"Lähtuvalt erinevatest sellisele tarkvarale kohaldavatest nõuetest ja \n"
-"mõjutatuna eri jurisdiktsioonide normidest peavad kliendid ja/või \n"
-"lõppkasutajad olema kindlad, et nende asukohamaa jurisdiktsiooni "
-"õiguslikud \n"
-"aktid lubavad neil alla laadida, säilitada ja/või kasutada \n"
-"krüptograafiliste algoritmide realisatsioone sisaldavat tarkvara.\n"
-"\n"
-"Lisaks sellele peavad kliendid ja/või lõppkasutajad jälgima asukohamaa \n"
-"juriidiliste normide täitmist. Kui klient ja/või lõppkasutaja rikub "
-"kehtivaid \n"
-"õigusnorme, kohaldatakse karistus vastavalt asukohamaa seadustele.\n"
-"\n"
-"Mitte mingil juhul ei kanna Mandrakesoft S.A. ega tarkvara tarnija \n"
-"vastutust ei otseselt ega kaudselt tekkinud kahjude eest (kaasa arvatud, \n"
-"kuid mitte ainult, saamatajäänud tulu, äritegevuse katkestamine, äriinfo \n"
-"kaotsimine ja muud rahalised kaotused ning võimalikud kohtu poolt välja \n"
-"mõistetud hüvitused), mis tulenevad tarkvara, mis on kasutatav pärast \n"
-"käesoleva lepingu tingimustega nõustumist, alla laadimisest, hoidmisest \n"
-"või kasutamisest.\n"
-"\n"
-"Kõigi lepinguga seotud küsimuste asjus pöörduge palun aadressil: \n"
-"Mandrakesoft, Inc. \n"
-"2400 N. Lincoln Avenue Suite 243\n"
-"Altadena California 91001\n"
-"USA"
-
-#: ../../install_steps_interactive.pm_.c:912
-msgid ""
-"You have now the possibility to download updated packages that have\n"
-"been released after the distribution has been made available.\n"
-"\n"
-"You will get security fixes or bug fixes, but you need to have an\n"
-"Internet connection configured to proceed.\n"
-"\n"
-"Do you want to install the updates ?"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:926
-#, fuzzy
-msgid "Contacting Mandrake Linux web site to get the list of available mirrors"
-msgstr "Proovin lugeda peeglilt pakettide nimekirja"
-
-#: ../../install_steps_interactive.pm_.c:931
-msgid "Choose a mirror from which to get the packages"
-msgstr "Valige peegel, millelt lugeda pakettide nimekiri"
-
-#: ../../install_steps_interactive.pm_.c:940
-msgid "Contacting the mirror to get the list of available packages"
-msgstr "Proovin lugeda peeglilt pakettide nimekirja"
-
-#: ../../install_steps_interactive.pm_.c:967
-msgid "Which is your timezone?"
-msgstr "Millises ajavöötmes asute?"
-
-#: ../../install_steps_interactive.pm_.c:972
-#, fuzzy
-msgid "Hardware clock set to GMT"
-msgstr "Kas Teie arvuti sisekell on seatud GMT ajale?"
-
-#: ../../install_steps_interactive.pm_.c:973
-msgid "Automatic time synchronization (using NTP)"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:980
-#, fuzzy
-msgid "NTP Server"
-msgstr "NIS server:"
-
-#: ../../install_steps_interactive.pm_.c:1014
-#: ../../install_steps_interactive.pm_.c:1022
-msgid "Remote CUPS server"
-msgstr "CUPS printserver"
-
-#: ../../install_steps_interactive.pm_.c:1015
-msgid "No printer"
-msgstr "Printerit ei ole"
-
-#: ../../install_steps_interactive.pm_.c:1032
-#, fuzzy
-msgid "Do you have an ISA sound card?"
-msgstr "On Teil veel kaarte?"
-
-#: ../../install_steps_interactive.pm_.c:1034
-msgid "Run \"sndconfig\" after installation to configure your sound card"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1036
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1041 ../../steps.pm_.c:27
-msgid "Summary"
-msgstr "Kokkuvõte"
-
-#: ../../install_steps_interactive.pm_.c:1044
-msgid "Mouse"
-msgstr "Hiir"
-
-#: ../../install_steps_interactive.pm_.c:1046
-msgid "Timezone"
-msgstr "Ajavööde"
-
-#: ../../install_steps_interactive.pm_.c:1047 ../../printerdrake.pm_.c:2276
-#: ../../printerdrake.pm_.c:2354
-msgid "Printer"
-msgstr "Printer"
-
-#: ../../install_steps_interactive.pm_.c:1049
-msgid "ISDN card"
-msgstr "ISDN kaart"
-
-#: ../../install_steps_interactive.pm_.c:1052
-#: ../../install_steps_interactive.pm_.c:1054
-msgid "Sound card"
-msgstr "Helikaart"
-
-#: ../../install_steps_interactive.pm_.c:1056
-msgid "TV card"
-msgstr "TV kaart"
-
-#: ../../install_steps_interactive.pm_.c:1094
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1122
-msgid "LDAP"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1095
-#: ../../install_steps_interactive.pm_.c:1118
-#: ../../install_steps_interactive.pm_.c:1131
-#, fuzzy
-msgid "NIS"
-msgstr "Kasuta NIS-i"
-
-#: ../../install_steps_interactive.pm_.c:1096
-#: ../../install_steps_interactive.pm_.c:1118
-#, fuzzy
-msgid "Local files"
-msgstr "Kohalik printer"
-
-#: ../../install_steps_interactive.pm_.c:1105
-#: ../../install_steps_interactive.pm_.c:1106 ../../steps.pm_.c:24
-msgid "Set root password"
-msgstr "Juurkasutaja salasõna"
-
-#: ../../install_steps_interactive.pm_.c:1107
-msgid "No password"
-msgstr "Salasõna puudub"
-
-#: ../../install_steps_interactive.pm_.c:1112
-#, c-format
-msgid "This password is too simple (must be at least %d characters long)"
-msgstr "Salasõna on liiga lihtne (peaks olema vähemalt %d tähemärki)"
-
-#: ../../install_steps_interactive.pm_.c:1118 ../../network/modem.pm_.c:49
-#: ../../standalone/draknet_.c:626 ../../standalone/logdrake_.c:172
-msgid "Authentication"
-msgstr "Autentimisviis"
-
-#: ../../install_steps_interactive.pm_.c:1126
-#, fuzzy
-msgid "Authentication LDAP"
-msgstr "Autentimisviis"
-
-#: ../../install_steps_interactive.pm_.c:1127
-msgid "LDAP Base dn"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1128
-#, fuzzy
-msgid "LDAP Server"
-msgstr "NIS server:"
-
-#: ../../install_steps_interactive.pm_.c:1134
-#, fuzzy
-msgid "Authentication NIS"
-msgstr "NIS autentimine"
-
-#: ../../install_steps_interactive.pm_.c:1135
-msgid "NIS Domain"
-msgstr "NIS domeen"
-
-#: ../../install_steps_interactive.pm_.c:1136
-msgid "NIS Server"
-msgstr "NIS server:"
-
-#: ../../install_steps_interactive.pm_.c:1171
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"SILO on your system, or another operating system removes SILO, or SILO "
-"doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures.\n"
-"\n"
-"If you want to create a bootdisk for your system, insert a floppy in the "
-"first\n"
-"drive and press \"Ok\"."
-msgstr ""
-"Isetehtud alglaadimisketas annab Teile võimaluse laadida Linux flopilt\n"
-"sõltumata tavaliselt alglaadijast. See võib abiks olla, kui Te ei soovi\n"
-"SILO-t kõvakettale kirjutada või mõni muu operatsioonisüsteem SILO\n"
-"ära kustutab või ei õnnestu SILO-t Teie riistvara peal kasutada.\n"
-"Alglaadmisflopi on kasutatav ka hädaabikettana, kui kõvakettal oleva\n"
-"failisüsteemiga peaks mingi õnnetus juhtuma. Hoidke end ja Teid hoiab\n"
-"ka Jumal!\n"
-"\n"
-"Alglaadimisketta loomiseks asetage flopi esimesse seadmesse ning vajutage\n"
-"\"Ok\"."
-
-#: ../../install_steps_interactive.pm_.c:1187
-msgid "First floppy drive"
-msgstr "Esimene flopiseade"
-
-#: ../../install_steps_interactive.pm_.c:1188
-msgid "Second floppy drive"
-msgstr "Teine flopiseade"
-
-#: ../../install_steps_interactive.pm_.c:1189 ../../printerdrake.pm_.c:1848
-msgid "Skip"
-msgstr "Jäta vahele"
-
-#: ../../install_steps_interactive.pm_.c:1194
-#, c-format
-msgid ""
-"A custom bootdisk provides a way of booting into your Linux system without\n"
-"depending on the normal bootloader. This is useful if you don't want to "
-"install\n"
-"LILO (or grub) on your system, or another operating system removes LILO, or "
-"LILO doesn't\n"
-"work with your hardware configuration. A custom bootdisk can also be used "
-"with\n"
-"the Mandrake rescue image, making it much easier to recover from severe "
-"system\n"
-"failures. Would you like to create a bootdisk for your system?\n"
-"%s"
-msgstr ""
-"Isetehtud alglaadimisketas annab Teile võimaluse laadida Linux flopilt\n"
-"sõltumata tavaliselt alglaadijast. See võib abiks olla, kui Te ei soovi\n"
-"LILO-t (grubi) kõvakettale kirjutada või mõni muu operatsioonisüsteem LILO\n"
-"ära kustutab või ei õnnestu LILO-t Teie riistvara peal kasutada.\n"
-"Alglaadmisflopi on kasutatav ka hädaabikettana, kui kõvakettal oleva\n"
-"failisüsteemiga peaks mingi õnnetus juhtuma. Hoidke end ja Teid hoiab\n"
-"ka Jumal!\n"
-"%s"
-
-#: ../../install_steps_interactive.pm_.c:1200
-msgid ""
-"\n"
-"\n"
-"(WARNING! You're using XFS for your root partition,\n"
-"creating a bootdisk on a 1.44 Mb floppy will probably fail,\n"
-"because XFS needs a very large driver)."
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1208
-msgid "Sorry, no floppy drive available"
-msgstr "Flopiseade ei ole kättesaadav"
-
-#: ../../install_steps_interactive.pm_.c:1212
-msgid "Choose the floppy drive you want to use to make the bootdisk"
-msgstr "Vali flopiseade, mida kasutad alglaadimisketta tegemiseks"
-
-#: ../../install_steps_interactive.pm_.c:1216
-#, fuzzy, c-format
-msgid "Insert a floppy in %s"
-msgstr "Pane flopi seadmesse %s"
-
-#: ../../install_steps_interactive.pm_.c:1219
-msgid "Creating bootdisk"
-msgstr "Loome alglaadimisketta"
-
-#: ../../install_steps_interactive.pm_.c:1226
-msgid "Preparing bootloader"
-msgstr "Alglaaduri sätted"
-
-#: ../../install_steps_interactive.pm_.c:1237
-msgid ""
-"You appear to have an OldWorld or Unknown\n"
-" machine, the yaboot bootloader will not work for you.\n"
-"The install will continue, but you'll\n"
-" need to use BootX to boot your machine"
-msgstr ""
-
-#: ../../install_steps_interactive.pm_.c:1243
-msgid "Do you want to use aboot?"
-msgstr "Soovite aboot-i kasutada?"
-
-#: ../../install_steps_interactive.pm_.c:1246
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Viga aboot-i installimisel, \n"
-"kas forseerida, riskides esimese partitsiooni hävinguga?"
-
-#: ../../install_steps_interactive.pm_.c:1253
-#, fuzzy
-msgid "Installing bootloader"
-msgstr "Alglaaduri sätted"
-
-#: ../../install_steps_interactive.pm_.c:1259
-msgid "Installation of bootloader failed. The following error occured:"
-msgstr "Alglaaduri installimine ebaõnnestus. Tekkis järgnev viga:"
-
-#: ../../install_steps_interactive.pm_.c:1267
-#, fuzzy, c-format
-msgid ""
-"You may need to change your Open Firmware boot-device to\n"
-" enable the bootloader. If you don't 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\n"
-"At your next boot you should see the bootloader prompt."
-msgstr ""
-"You will need to change your Open Firmware boot-device to\n"
-" enable the bootloader. Hold down Command-Option-O-F\n"
-" at reboot and enter:\n"
-" setenv boot-device $of_boot,\\\\:tbxi\n"
-" Then type: shut-down\n"
-"At your next boot you should see the bootloader prompt."
-
-#: ../../install_steps_interactive.pm_.c:1311
-#: ../../standalone/drakautoinst_.c:81
-#, c-format
-msgid "Insert a blank floppy in drive %s"
-msgstr "Pange palun tühi flopi seadmesse %s"
-
-#: ../../install_steps_interactive.pm_.c:1315
-#: ../../standalone/drakautoinst_.c:83
-msgid "Creating auto install floppy"
-msgstr "Loon kiirpaigaldusflopi"
-
-#: ../../install_steps_interactive.pm_.c:1326
-msgid ""
-"Some steps are not completed.\n"
-"\n"
-"Do you really want to quit now?"
-msgstr ""
-"Mõned sammud ei ole lõpule viidud\n"
-"\n"
-"Olete kindel, et väljute programmist?"
-
-#: ../../install_steps_interactive.pm_.c:1337
-msgid ""
-"Congratulations, installation is complete.\n"
-"Remove the boot media and press return to reboot.\n"
-"\n"
-"\n"
-"For information on fixes which are available for this release of Mandrake "
-"Linux,\n"
-"consult the Errata available from:\n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/82errata.php3\n"
-"\n"
-"\n"
-"Information on configuring your system is available in the post\n"
-"install chapter of the Official Mandrake Linux User's Guide."
-msgstr ""
-"Õnnitlen, installimine on edukalt lõpetatud.\n"
-"Võtke palun välja flopi ja/või CD ja vajutage Enter alglaadimiseks.\n"
-"\n"
-"\n"
-"Informatsiooni selle distributsiooni paranduste kohta (Errata) saab\n"
-"Mandrake Linux koduleheküljelt \n"
-"\n"
-"\n"
-"http://www.linux-mandrake.com/en/82errata.php3\n"
-"\n"
-"\n"
-"Abi süsteemi edasiseks konfigureerimiseks saab eelkõige dokumendist\n"
-"\"Official Mandrake Linux User's Guide\""
-
-#: ../../install_steps_interactive.pm_.c:1354
-msgid "Generate auto install floppy"
-msgstr "Loo kiirpaigaldusflopi"
-
-#: ../../install_steps_interactive.pm_.c:1356
-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 install võib olla ka sedavõrd tegija,\n"
-"et kasutab ära kogu kõvaketta !!\n"
-"\n"
-"Võite valida ka lihtsalt installi kordamise.\n"
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Automated"
-msgstr "Automaatne"
-
-#: ../../install_steps_interactive.pm_.c:1361
-msgid "Replay"
-msgstr "Korda"
-
-#: ../../install_steps_interactive.pm_.c:1364
-msgid "Save packages selection"
-msgstr "Salvest paketivalik"
-
-#: ../../install_steps_newt.pm_.c:22
-#, c-format
-msgid "Mandrake Linux Installation %s"
-msgstr "Mandrake Linux installimine %s"
-
-#: ../../install_steps_newt.pm_.c:34
-msgid ""
-" <Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen "
-msgstr " <Tab>/<Alt-Tab> väljade vahel | <Space> valib | <F12> järgmine samm "
-
-#: ../../interactive.pm_.c:87
-msgid "kdesu missing"
-msgstr "kdesu puudub"
-
-#: ../../interactive.pm_.c:89 ../../interactive.pm_.c:100
-msgid "consolehelper missing"
-msgstr ""
-
-#: ../../interactive.pm_.c:152
-#, fuzzy
-msgid "Choose a file"
-msgstr "Valige tegevus"
-
-#: ../../interactive.pm_.c:314
-msgid "Advanced"
-msgstr "Edasijõudnud"
-
-#: ../../interactive.pm_.c:315
-msgid "Basic"
-msgstr ""
-
-#: ../../interactive.pm_.c:386
-msgid "Please wait"
-msgstr "Palun oodake"
-
-#: ../../interactive_gtk.pm_.c:605 ../../services.pm_.c:222
-msgid "Info"
-msgstr "Info"
-
-#: ../../interactive_gtk.pm_.c:715
-msgid "Expand Tree"
-msgstr "Ava puu"
-
-#: ../../interactive_gtk.pm_.c:716
-msgid "Collapse Tree"
-msgstr "Sule puu"
-
-#: ../../interactive_gtk.pm_.c:717
-msgid "Toggle between flat and group sorted"
-msgstr "Sorteeritud või sorteerimata"
-
-#: ../../interactive_stdio.pm_.c:29 ../../interactive_stdio.pm_.c:147
-msgid "Bad choice, try again\n"
-msgstr "Halb valik, proovige palun uuesti\n"
-
-#: ../../interactive_stdio.pm_.c:30 ../../interactive_stdio.pm_.c:148
-#, c-format
-msgid "Your choice? (default %s) "
-msgstr "Teie valik? (vaikimisi %s)"
-
-#: ../../interactive_stdio.pm_.c:52
-#, c-format
-msgid ""
-"Entries you'll have to fill:\n"
-"%s"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:68
-#, fuzzy, c-format
-msgid "Your choice? (0/1, default `%s') "
-msgstr "Teie valik? (vaikimisi %s)"
-
-#: ../../interactive_stdio.pm_.c:93
-#, fuzzy, c-format
-msgid "Button `%s': %s"
-msgstr "Eelistused: %s"
-
-#: ../../interactive_stdio.pm_.c:94
-#, fuzzy
-msgid "Do you want to click on this button? "
-msgstr "Soovite aboot-i kasutada?"
-
-#: ../../interactive_stdio.pm_.c:103
-#, fuzzy, c-format
-msgid "Your choice? (default `%s'%s) "
-msgstr "Teie valik? (vaikimisi %s)"
-
-#: ../../interactive_stdio.pm_.c:121
-#, c-format
-msgid "=> There are many things to choose from (%s).\n"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:124
-msgid ""
-"Please choose the first number of the 10-range you wish to edit,\n"
-"or just hit Enter to proceed.\n"
-"Your choice? "
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:137
-#, c-format
-msgid ""
-"=> Notice, a label changed:\n"
-"%s"
-msgstr ""
-
-#: ../../interactive_stdio.pm_.c:144
-msgid "Re-submit"
-msgstr ""
-
-#: ../../keyboard.pm_.c:174 ../../keyboard.pm_.c:205
-msgid "Czech (QWERTZ)"
-msgstr "TØehhi (QWERTZ)"
-
-#: ../../keyboard.pm_.c:175 ../../keyboard.pm_.c:207
-msgid "German"
-msgstr "Saksa"
-
-#: ../../keyboard.pm_.c:176
-msgid "Dvorak"
-msgstr "DVORAK"
-
-#: ../../keyboard.pm_.c:177 ../../keyboard.pm_.c:214
-msgid "Spanish"
-msgstr "Hispaania"
-
-#: ../../keyboard.pm_.c:178 ../../keyboard.pm_.c:215
-msgid "Finnish"
-msgstr "Soome"
-
-#: ../../keyboard.pm_.c:179 ../../keyboard.pm_.c:216
-msgid "French"
-msgstr "Prantsuse"
-
-#: ../../keyboard.pm_.c:180 ../../keyboard.pm_.c:241
-msgid "Norwegian"
-msgstr "Norra"
-
-#: ../../keyboard.pm_.c:181
-msgid "Polish"
-msgstr "Poola"
-
-#: ../../keyboard.pm_.c:182 ../../keyboard.pm_.c:249
-msgid "Russian"
-msgstr "Vene"
-
-#: ../../keyboard.pm_.c:184 ../../keyboard.pm_.c:251
-msgid "Swedish"
-msgstr "Rootsi"
-
-#: ../../keyboard.pm_.c:185 ../../keyboard.pm_.c:266
-msgid "UK keyboard"
-msgstr "Briti"
-
-#: ../../keyboard.pm_.c:186 ../../keyboard.pm_.c:267
-msgid "US keyboard"
-msgstr "US"
-
-#: ../../keyboard.pm_.c:188
-#, fuzzy
-msgid "Albanian"
-msgstr "Iraani"
-
-#: ../../keyboard.pm_.c:189
-msgid "Armenian (old)"
-msgstr "Armeenia (vanem)"
-
-#: ../../keyboard.pm_.c:190
-msgid "Armenian (typewriter)"
-msgstr "Armeenia (trükimasin)"
-
-#: ../../keyboard.pm_.c:191
-msgid "Armenian (phonetic)"
-msgstr "Armeenia (foneetiline)"
-
-#: ../../keyboard.pm_.c:196
-msgid "Azerbaidjani (latin)"
-msgstr "Aserbaidžaani (ladina)"
-
-#: ../../keyboard.pm_.c:198
-msgid "Belgian"
-msgstr "Belgia"
-
-#: ../../keyboard.pm_.c:199
-#, fuzzy
-msgid "Bulgarian (phonetic)"
-msgstr "Armeenia (foneetiline)"
-
-#: ../../keyboard.pm_.c:200
-#, fuzzy
-msgid "Bulgarian (BDS)"
-msgstr "Bulgaaria"
-
-#: ../../keyboard.pm_.c:201
-msgid "Brazilian (ABNT-2)"
-msgstr "Brasiilia (ABNT-2)"
-
-#: ../../keyboard.pm_.c:202
-msgid "Belarusian"
-msgstr "Valgevene"
-
-#: ../../keyboard.pm_.c:203
-msgid "Swiss (German layout)"
-msgstr "Šveitsi (Saksa asetus)"
-
-#: ../../keyboard.pm_.c:204
-msgid "Swiss (French layout)"
-msgstr "Šveitsi (Prantsuse asetus)"
-
-#: ../../keyboard.pm_.c:206
-msgid "Czech (QWERTY)"
-msgstr "Tšehhi (QWERTY)"
-
-#: ../../keyboard.pm_.c:208
-msgid "German (no dead keys)"
-msgstr "Saksa (ilma sammuta)"
-
-#: ../../keyboard.pm_.c:209
-msgid "Danish"
-msgstr "Taani"
-
-#: ../../keyboard.pm_.c:210
-msgid "Dvorak (US)"
-msgstr "DVORAK (US)"
-
-#: ../../keyboard.pm_.c:211
-msgid "Dvorak (Norwegian)"
-msgstr "DVORAK (Norra)"
-
-#: ../../keyboard.pm_.c:212
-#, fuzzy
-msgid "Dvorak (Swedish)"
-msgstr "DVORAK (US)"
-
-#: ../../keyboard.pm_.c:213
-msgid "Estonian"
-msgstr "Eesti"
-
-#: ../../keyboard.pm_.c:217
-msgid "Georgian (\"Russian\" layout)"
-msgstr "Gruusia (vene)"
-
-#: ../../keyboard.pm_.c:218
-msgid "Georgian (\"Latin\" layout)"
-msgstr "Gruusia (ladina)"
-
-#: ../../keyboard.pm_.c:219
-msgid "Greek"
-msgstr "Kreeka"
-
-#: ../../keyboard.pm_.c:220
-msgid "Hungarian"
-msgstr "Ungari"
-
-#: ../../keyboard.pm_.c:221
-msgid "Croatian"
-msgstr "Kroaadi"
-
-#: ../../keyboard.pm_.c:222
-msgid "Israeli"
-msgstr "Iisraeli"
-
-#: ../../keyboard.pm_.c:223
-msgid "Israeli (Phonetic)"
-msgstr "Iisraeli foneetiline"
-
-#: ../../keyboard.pm_.c:224
-msgid "Iranian"
-msgstr "Iraani"
-
-#: ../../keyboard.pm_.c:225
-msgid "Icelandic"
-msgstr "Islandi"
-
-#: ../../keyboard.pm_.c:226
-msgid "Italian"
-msgstr "Itaalia"
-
-#: ../../keyboard.pm_.c:228
-msgid "Japanese 106 keys"
-msgstr "Jaapani 106 klahviga"
-
-#: ../../keyboard.pm_.c:231
-msgid "Korean keyboard"
-msgstr "Korea"
-
-#: ../../keyboard.pm_.c:232
-msgid "Latin American"
-msgstr "Ladina-Ameerika"
-
-#: ../../keyboard.pm_.c:233
-msgid "Lithuanian AZERTY (old)"
-msgstr "Leedu AZERTY (vanem)"
-
-#: ../../keyboard.pm_.c:235
-msgid "Lithuanian AZERTY (new)"
-msgstr "Leedu AZERTY (uuem)"
-
-#: ../../keyboard.pm_.c:236
-msgid "Lithuanian \"number row\" QWERTY"
-msgstr "Leedu numbrireaga QWERTY"
-
-#: ../../keyboard.pm_.c:237
-msgid "Lithuanian \"phonetic\" QWERTY"
-msgstr "Leedu foneetiline QWERTY"
-
-#: ../../keyboard.pm_.c:238
-#, fuzzy
-msgid "Latvian"
-msgstr "Asukoht"
-
-#: ../../keyboard.pm_.c:239
-msgid "Macedonian"
-msgstr "Makedoonia"
-
-#: ../../keyboard.pm_.c:240
-msgid "Dutch"
-msgstr "Hollandi"
-
-#: ../../keyboard.pm_.c:242
-msgid "Polish (qwerty layout)"
-msgstr "Poola (QWERTY)"
-
-#: ../../keyboard.pm_.c:243
-msgid "Polish (qwertz layout)"
-msgstr "Poola (QWERTZ)"
-
-#: ../../keyboard.pm_.c:244
-msgid "Portuguese"
-msgstr "Portugali"
-
-#: ../../keyboard.pm_.c:245
-msgid "Canadian (Quebec)"
-msgstr "Kanada (Quebec)"
-
-#: ../../keyboard.pm_.c:247
-#, fuzzy
-msgid "Romanian (qwertz)"
-msgstr "Vene (Yawerty)"
-
-#: ../../keyboard.pm_.c:248
-#, fuzzy
-msgid "Romanian (qwerty)"
-msgstr "Vene (Yawerty)"
-
-#: ../../keyboard.pm_.c:250
-msgid "Russian (Yawerty)"
-msgstr "Vene (Yawerty)"
-
-#: ../../keyboard.pm_.c:252
-msgid "Slovenian"
-msgstr "Sloveenia"
-
-#: ../../keyboard.pm_.c:253
-msgid "Slovakian (QWERTZ)"
-msgstr "Slovaki (QWERTZ)"
-
-#: ../../keyboard.pm_.c:254
-msgid "Slovakian (QWERTY)"
-msgstr "Slovaki (QWERTY)"
-
-#: ../../keyboard.pm_.c:256
-#, fuzzy
-msgid "Serbian (cyrillic)"
-msgstr "Aserbaidžaani (kirillitsa)"
-
-#: ../../keyboard.pm_.c:258
-#, fuzzy
-msgid "Tamil"
-msgstr "Tabel"
-
-#: ../../keyboard.pm_.c:259
-msgid "Thai keyboard"
-msgstr "Tai"
-
-#: ../../keyboard.pm_.c:261
-#, fuzzy
-msgid "Tajik keyboard"
-msgstr "Tai"
-
-#: ../../keyboard.pm_.c:262
-msgid "Turkish (traditional \"F\" model)"
-msgstr "Türgi (\"F\" mudel)"
-
-#: ../../keyboard.pm_.c:263
-msgid "Turkish (modern \"Q\" model)"
-msgstr "Türgi (\"Q\" mudel)"
-
-#: ../../keyboard.pm_.c:265
-msgid "Ukrainian"
-msgstr "Ukraina"
-
-#: ../../keyboard.pm_.c:268
-msgid "US keyboard (international)"
-msgstr "US (rahvusvaheline)"
-
-#: ../../keyboard.pm_.c:269
-msgid "Vietnamese \"numeric row\" QWERTY"
-msgstr "Vietnami numbrireaga QWERTY"
-
-#: ../../keyboard.pm_.c:270
-#, fuzzy
-msgid "Yugoslavian (latin)"
-msgstr "Jugoslaavia (koos kirillitsaga)"
-
-#: ../../keyboard.pm_.c:278
-msgid "Right Alt key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:279
-msgid "Both Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:280
-msgid "Control and Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:281
-msgid "CapsLock key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:282
-msgid "Ctrl and Alt keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:283
-msgid "Alt and Shift keys simultaneously"
-msgstr ""
-
-#: ../../keyboard.pm_.c:284
-msgid "\"Menu\" key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:285
-msgid "Left \"Windows\" key"
-msgstr ""
-
-#: ../../keyboard.pm_.c:286
-msgid "Right \"Windows\" key"
-msgstr ""
-
-#: ../../loopback.pm_.c:32
-#, c-format
-msgid "Circular mounts %s\n"
-msgstr "Ringühendus %s\n"
-
-#: ../../lvm.pm_.c:88
-msgid "Remove the logical volumes first\n"
-msgstr "Eemalda enne kettarühmad (logical volumes)\n"
-
-#: ../../modules.pm_.c:826
-msgid ""
-"PCMCIA support no longer exist for 2.2 kernels. Please use a 2.4 kernel."
-msgstr ""
-
-#: ../../mouse.pm_.c:25
-msgid "Sun - Mouse"
-msgstr "Suni hiir"
-
-#: ../../mouse.pm_.c:32
-msgid "Logitech MouseMan+"
-msgstr "Logitech MouseMan+"
-
-#: ../../mouse.pm_.c:33
-msgid "Generic PS2 Wheel Mouse"
-msgstr "Lihtsalt PS2 rattaga hiir"
-
-#: ../../mouse.pm_.c:34
-msgid "GlidePoint"
-msgstr "GlidePoint"
-
-#: ../../mouse.pm_.c:36 ../../mouse.pm_.c:63
-msgid "Kensington Thinking Mouse"
-msgstr "Kensington Thinking Mouse"
-
-#: ../../mouse.pm_.c:37 ../../mouse.pm_.c:59
-msgid "Genius NetMouse"
-msgstr "Genius NetMouse"
-
-#: ../../mouse.pm_.c:38
-msgid "Genius NetScroll"
-msgstr "Genius NetScroll"
-
-#: ../../mouse.pm_.c:43 ../../mouse.pm_.c:68
-msgid "1 button"
-msgstr "1 nupp"
-
-#: ../../mouse.pm_.c:44 ../../mouse.pm_.c:51
-msgid "Generic 2 Button Mouse"
-msgstr "Lihtsalt 2-nupuline hiir"
-
-#: ../../mouse.pm_.c:45
-msgid "Generic"
-msgstr "Tavaline"
-
-#: ../../mouse.pm_.c:46
-msgid "Wheel"
-msgstr "Ratas"
-
-#: ../../mouse.pm_.c:49
-msgid "serial"
-msgstr "seerial"
-
-#: ../../mouse.pm_.c:52
-msgid "Generic 3 Button Mouse"
-msgstr "Lihtsalt 3-nupuline hiir"
-
-#: ../../mouse.pm_.c:53
-msgid "Microsoft IntelliMouse"
-msgstr "Microsoft IntelliMouse"
-
-#: ../../mouse.pm_.c:54
-msgid "Logitech MouseMan"
-msgstr "Logitech MouseMan"
-
-#: ../../mouse.pm_.c:55
-msgid "Mouse Systems"
-msgstr "Mouse Systems"
-
-#: ../../mouse.pm_.c:57
-msgid "Logitech CC Series"
-msgstr "Logitech CC seeria (seerial)"
-
-#: ../../mouse.pm_.c:58
-msgid "Logitech MouseMan+/FirstMouse+"
-msgstr "Logitech MouseMan+/FirstMouse+"
-
-#: ../../mouse.pm_.c:60
-msgid "MM Series"
-msgstr "MM Series"
-
-#: ../../mouse.pm_.c:61
-msgid "MM HitTablet"
-msgstr "MM HitTablet"
-
-#: ../../mouse.pm_.c:62
-msgid "Logitech Mouse (serial, old C7 type)"
-msgstr "Logitech (seerial, vana C7 tüüpi)"
-
-#: ../../mouse.pm_.c:66
-msgid "busmouse"
-msgstr "siinihiir"
-
-#: ../../mouse.pm_.c:69
-msgid "2 buttons"
-msgstr "2 nuppu"
-
-#: ../../mouse.pm_.c:70
-msgid "3 buttons"
-msgstr "3 nuppu"
-
-#: ../../mouse.pm_.c:73
-msgid "none"
-msgstr "ei soovi"
-
-#: ../../mouse.pm_.c:75
-msgid "No mouse"
-msgstr "Hiirt ei ole"
-
-#: ../../mouse.pm_.c:499
-msgid "Please test the mouse"
-msgstr "Palun testige hiirt"
-
-#: ../../mouse.pm_.c:500
-msgid "To activate the mouse,"
-msgstr "Hiire aktiveerimiseks"
-
-#: ../../mouse.pm_.c:501
-msgid "MOVE YOUR WHEEL!"
-msgstr "KEERUTAGE RATTAKEST!"
-
-#: ../../my_gtk.pm_.c:651
-msgid "-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"
-msgstr ""
-
-#: ../../my_gtk.pm_.c:686
-msgid "Finish"
-msgstr "Lõpeta"
-
-#: ../../my_gtk.pm_.c:686 ../../printerdrake.pm_.c:1588
-msgid "Next ->"
-msgstr "Järgmine ->"
-
-#: ../../my_gtk.pm_.c:687 ../../printerdrake.pm_.c:1586
-msgid "<- Previous"
-msgstr "<- Eelmine"
-
-#: ../../my_gtk.pm_.c:1019
-msgid "Is this correct?"
-msgstr "Kas see on sobiv?"
-
-#: ../../network/adsl.pm_.c:19 ../../network/ethernet.pm_.c:36
-msgid "Connect to the Internet"
-msgstr "Loo internetiühendus"
-
-#: ../../network/adsl.pm_.c:20
-msgid ""
-"The most common way to connect with adsl is pppoe.\n"
-"Some connections use pptp, a few ones use dhcp.\n"
-"If you don't know, choose 'use pppoe'"
-msgstr ""
-"Kõige tavalisem ühendusviis ADSL jaoks on pppoe.\n"
-"Mõnel juhul aga kasutatakse pptp-d, harva dhcp-d.\n"
-"Kui Te ei tea, kasutage pppoe-d"
-
-#: ../../network/adsl.pm_.c:22
-msgid "Alcatel speedtouch usb"
-msgstr ""
-
-#: ../../network/adsl.pm_.c:22
-msgid "use dhcp"
-msgstr "dhcp"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pppoe"
-msgstr "pppoe"
-
-#: ../../network/adsl.pm_.c:22
-msgid "use pptp"
-msgstr "pptp"
-
-#: ../../network/ethernet.pm_.c:37
-msgid ""
-"Which dhcp client do you want to use?\n"
-"Default is dhcpcd"
-msgstr ""
-"Mis DHCP klienti soovite kasutada?\n"
-"Vaikimisi on dhcpcd"
-
-#: ../../network/ethernet.pm_.c:88
-msgid ""
-"No ethernet network adapter has been detected on your system.\n"
-"I cannot set up this connection type."
-msgstr ""
-"Ühtki võrgukaarti ei õnnestunud tuvastada\n"
-"Seega ei saa ka sellist ühendust seadistada."
-
-#: ../../network/ethernet.pm_.c:92 ../../standalone/drakgw_.c:252
-msgid "Choose the network interface"
-msgstr "Valige võrguliides"
-
-#: ../../network/ethernet.pm_.c:93
-msgid ""
-"Please choose which network adapter you want to use to connect to Internet"
-msgstr ""
-"Palun valige, millist võrguliidest soovite internetiühenduse jaoks kasutada"
-
-#: ../../network/ethernet.pm_.c:178
-msgid "no network card found"
-msgstr "võrgukaarti ei leitud"
-
-#: ../../network/ethernet.pm_.c:202 ../../network/network.pm_.c:360
-msgid "Configuring network"
-msgstr "Võrguseadistused"
-
-#: ../../network/ethernet.pm_.c:203
-msgid ""
-"Please enter your host name if you know it.\n"
-"Some DHCP servers require the hostname to work.\n"
-"Your host name should be a fully-qualified host name,\n"
-"such as ``mybox.mylab.myco.com''."
-msgstr ""
-"Palun sisestage oma masina nimi.\n"
-"Seda nõuavad ka mõned DHCP serverid.\n"
-"Masina nimi peab olema esitatud täiskujul,\n"
-"nagu ``minumasin.minufirma.ee''."
-
-#: ../../network/ethernet.pm_.c:207 ../../network/network.pm_.c:365
-msgid "Host name"
-msgstr "Masinanimi"
-
-#: ../../network/isdn.pm_.c:21 ../../network/isdn.pm_.c:44
-#: ../../network/netconnect.pm_.c:95 ../../network/netconnect.pm_.c:109
-#: ../../network/netconnect.pm_.c:164 ../../network/netconnect.pm_.c:175
-#: ../../network/netconnect.pm_.c:202 ../../network/netconnect.pm_.c:225
-#: ../../network/netconnect.pm_.c:233
-msgid "Network Configuration Wizard"
-msgstr "Võrgu sätete abimees"
-
-#: ../../network/isdn.pm_.c:22
-msgid "External ISDN modem"
-msgstr "Väline ISDN modem"
-
-#: ../../network/isdn.pm_.c:22
-msgid "Internal ISDN card"
-msgstr "Sisemine ISDN kaart"
-
-#: ../../network/isdn.pm_.c:22
-msgid "What kind is your ISDN connection?"
-msgstr "Millist ISDN ühendust kasutate?"
-
-#: ../../network/isdn.pm_.c:45
-msgid ""
-"Which ISDN configuration do you prefer?\n"
-"\n"
-"* The Old configuration uses isdn4net. It contains powerfull\n"
-" tools, but is tricky to configure, and not standard.\n"
-"\n"
-"* The New configuration is easier to understand, more\n"
-" standard, but with less tools.\n"
-"\n"
-"We recommand the light configuration.\n"
-msgstr ""
-
-#
-#: ../../network/isdn.pm_.c:54
-#, fuzzy
-msgid "New configuration (isdn-light)"
-msgstr "Leitud tulemüüri sätted!"
-
-#
-#: ../../network/isdn.pm_.c:54
-#, fuzzy
-msgid "Old configuration (isdn4net)"
-msgstr "Leitud tulemüüri sätted!"
-
-#: ../../network/isdn.pm_.c:170 ../../network/isdn.pm_.c:188
-#: ../../network/isdn.pm_.c:198 ../../network/isdn.pm_.c:205
-#: ../../network/isdn.pm_.c:215
-msgid "ISDN Configuration"
-msgstr "ISDN sätted"
-
-#: ../../network/isdn.pm_.c:170
-msgid ""
-"Select your provider.\n"
-" If it's not in the list, choose Unlisted"
-msgstr ""
-"Vali oma teenusepakkuja.\n"
-" Kui see ei ole nimekirjas, vali Tundmatu"
-
-#: ../../network/isdn.pm_.c:183
-#, fuzzy
-msgid "Europe protocol"
-msgstr "Laadimisprotokoll"
-
-#: ../../network/isdn.pm_.c:183
-#, fuzzy
-msgid "Europe protocol (EDSS1)"
-msgstr "Euroopa (EDSS1)"
-
-#: ../../network/isdn.pm_.c:185
-#, fuzzy
-msgid "Protocol for the rest of the world"
-msgstr "Ülejäänud maailm"
-
-#: ../../network/isdn.pm_.c:185
-#, fuzzy
-msgid ""
-"Protocol for the rest of the world \n"
-" no D-Channel (leased lines)"
-msgstr ""
-"Ülejäänud maailm \n"
-" ilma D-kanalita"
-
-#: ../../network/isdn.pm_.c:189
-msgid "Which protocol do you want to use ?"
-msgstr "Mis protokolli soovite kasutada?"
-
-#: ../../network/isdn.pm_.c:199
-msgid "What kind of card do you have?"
-msgstr "Mis tüüpi kaart Teil on?"
-
-#: ../../network/isdn.pm_.c:200
-msgid "I don't know"
-msgstr "Ei tea"
-
-#: ../../network/isdn.pm_.c:200
-msgid "ISA / PCMCIA"
-msgstr "ISA / PCMCIA"
-
-#: ../../network/isdn.pm_.c:200
-msgid "PCI"
-msgstr "PCI"
-